Mikä on ohjausyksikkö: komponentit ja sen muotoilu

Kokeile Instrumenttia Ongelmien Poistamiseksi





Ohjausyksikkö on tietokoneissa olevan keskusyksikön (CPU) pääkomponentti, joka voi ohjata toimintoja ohjelman suorittamisen aikana prosessori /tietokone. Ohjausyksikön päätehtävä on hakea ja suorittaa ohjeita tietokoneen muistista. Se vastaanottaa syöttökäskyn / -informaation käyttäjältä ja muuntaa sen ohjaussignaalit , jotka sitten annetaan CPU: lle jatkoa varten. Se sisältyy John Neumannin kehittämään Von Neumannin arkkitehtuuriin. Se on vastuussa ajoitussignaalien ja ohjaussignaalien toimittamisesta ja ohjaa suorittimen suorittamaan ohjelman. Se sisältyy sisäiseen osaan keskusyksikköä nykyaikaisissa tietokoneissa. Tässä artikkelissa kuvataan täydelliset tiedot ohjausyksiköstä.

Mikä on ohjausyksikkö?

Komponentti, joka vastaanottaa tulosignaalin / informaation / käskyn käyttäjältä ja muuntuu ohjaussignaaleiksi suorittamista varten CPU: ssa. Se ohjaa ja ohjaa päämuistia, aritmeettista ja logiikkayksikköä (ALU), tulo- ja lähtölaitteita ja vastaa myös tietokoneen keskusyksikköön lähetetyistä ohjeista. Se hakee ohjeet päämuisti ja lähetetään prosessorin käskyrekisteriin, joka sisältää rekisterin sisällön.




Ohjausyksikön lohkokaavio

Ohjausyksikön lohkokaavio

Ohjausyksikkö muuntaa tulon ohjaussignaaleiksi ja lähettää sitten prosessorille ja ohjaa ohjelman suorittamista. Suoritettavat toiminnot ohjaa prosessori tietokoneella. Pääasiassa keskusyksikkö (CPU) ja Graafinen prosessointiyksikkö (GPU) vaativat ohjausyksikön sisäiseksi osaksi. Ohjausyksikön lohkokaavio on esitetty yllä.



Ohjausyksikön komponentit

Tämän laitteen komponentit ovat ohjeita rekisterit , ohjaussignaalit prosessorissa, ohjaussignaalit väylälle / väylältä, ohjausväylä, tuloliput ja kellosignaalit.

Langallisen ohjausyksikön komponentit ovat komentorekisteri (sisältää opkoodi- ja osoitekentän), ajoitusyksikkö, ohjaustila generaattori , ohjaussignaalin muodostusmatriisi ja käskydekooderi.
Mikro-ohjelmoidun ohjausyksikön komponentit ovat seuraava osoitegeneraattori, ohjausosoiterekisteri, ohjausmuisti ja ohjaustietorekisteri.

Toiminnot

ohjausyksikön toiminnot Sisällytä seuraavat.


  • Se ohjaa datasekvenssin prosessorin ja muiden laitteiden välillä.
  • Se pystyy tulkitsemaan ohjeet ja ohjaamaan prosessorin tietovirtaa.
  • Se tuottaa ohjaussignaalien sarjan vastaanotetuista käskyistä tai käskyistä rekisteristä.
  • Sen vastuulla on ohjata suoritusyksiköitä, kuten ALU, datapuskurit ja rekisterit tietokoneen CPU: ssa.
  • Sillä on kyky hakea, purkaa, käsitellä suoritusta ja tallentaa tuloksia.
  • Se ei voi käsitellä ja tallentaa tietoja
  • Tietojen siirtämiseksi se on yhteydessä tulo- ja lähtölaitteiden kanssa ja ohjaa kaikkia tietokoneen yksiköitä.

Ohjausyksikön suunnittelu

Tämän suunnittelu voidaan tehdä kahdella ohjausyksikön tyypit jotka sisältävät seuraavat.

  • Hardwire-pohjainen
  • Mikroprogrammittu (yksi- ja kaksitasoinen)

Langallinen ohjausyksikkö

Langallisen ohjausyksikön perusrakenne on esitetty yllä. Tässä tyypissä ohjaussignaalit luodaan erityisellä laitteistolla logiikkapiiri ilman muutoksia piirin rakenteessa. Tässä generoitua signaalia ei voida muokata suoritettavaksi prosessorissa.

Opkoodin perustiedot (käskyn toimintakoodi lähetetään komentodekooderille dekoodausta varten dekooderi on joukko dekoodereita dekoodaamaan erityyppisiä tietoja opkoodissa. Tämä johtaa lähtösignaaleihin, jotka sisältävät aktiivisten signaalien arvot, jotka annetaan tulona matriisigeneraattorille ohjaussignaalien generoimiseksi tietokoneen suorittimen suorittamaan ohjelmaa varten.

Hardwire-pohjainen ohjausyksikkö

Hardwire-pohjainen ohjausyksikkö

Matriisigeneraattori tarjoaa ohjausyksikön tilat ja prosessorista lähtevät signaalit (keskeytyssignaalit). Matrix on rakennettu ohjelmoitava logiikkaryhmä . Matriisigeneraattorin tuottamat ohjaussignaalit annetaan tulona seuraavaan generaattorimatriisiin ja yhdistyvät suorakulmaisia ​​kuvioita sisältävän ajoitusyksikön ajoitussignaaleihin.

Uuden käskyn noutamiseksi ohjausyksikkö muuttuu alkuvaiheeksi uuden käskyn suorittamiselle. Ohjausyksikkö pysyy alkuvaiheessa tai ensimmäisessä vaiheessa niin kauan kuin tietokoneen ajoitussignaalit, tulosignaalit ja ohjaustilat ovat muuttumattomia. Ohjausyksikön tilan muutosta voidaan nostaa, jos jossakin generoidussa signaalissa tapahtuu muutoksia.

Kun ulkoinen signaali tai keskeytys tapahtuu, ohjausyksikkö siirtyy seuraavaan tilaan ja suorittaa keskeytyssignaalin käsittelyn. Lippuja ja tiloja käytetään valitsemaan halutut tilat suorittamaan käskyn suoritusjakso.

Viimeisessä tilassa ohjausyksikkö hakee seuraavan käskyn ja lähettää lähdön ohjelmalaskurille, sitten muistiosoiterekisteriin, puskurirekisteriin ja sitten käskyrekisteriin käskyn lukemiseksi. Lopuksi, jos viimeinen käsky (jonka ohjausyksikkö noutaa) on loppukäsky, se siirtyy prosessorin toimintatilaan ja odottaa, kunnes käyttäjä ohjaa seuraavaa ohjelmaa.

Mikro-ohjelmoitu ohjausyksikkö

Tässä tyypissä ohjausvarastoa käytetään ohjaussignaalien tallentamiseen, jotka koodataan ohjelman suorituksen aikana. Ohjaussignaalia ei synny välittömästi ja se dekoodataan, koska mikroprogrammi tallentaa osoitekentän ohjausmuistiin. Koko prosessi on yksi taso.

Mikrooperaatiot suoritetaan mikrokäskyjen suorittamiseksi ohjelmassa. Mikro-ohjelmoidun ohjausyksikön lohkokaavio on esitetty yllä. Kaaviosta saadaan mikro-käskyn osoite ohjausmuistin osoiterekisteristä. Kaikki ohjausyksikön tiedot tallennetaan pysyvästi ROM-nimiseen ohjausmuistiin.

Mikroprogrammittu ohjausyksikkö

Mikroprogrammittu ohjausyksikkö

Ohjausmuistista tulevaa mikrokäskyä pitää ohjausrekisteri. Koska mikrokäsky on ohjaussanan muodossa (sisältää binäärisiä ohjausarvoja), joka tarvitsee yhden tai useamman mikrotoiminnon suoritettavaksi tietojenkäsittelyä varten.

Mikrokäskyjen suorittamisen aikana seuraava osoitegeneraattori laskee mikro-käskyn seuraavan osoitteen ja lähettää sen sitten ohjausosoitteiden rekisteriin lukemaan seuraavan mikro-käskyn.
Seuraava osoite-generaattori suorittaa mikro-ohjelman mikro-operaatioiden sekvenssin ja se toimii mikroprogram-sekvenssereinä saadakseen sekvenssin osoitteen, ts. Luetaan ohjausmuistista.

Ohjausyksikön Verilog-koodi

Ohjausyksikön Verilog-koodi on esitetty alla.

'sisältää' prj_definition.v '

moduuli CONTROL_UNIT (MEM_DATA, RF_DATA_W, RF_ADDR_W, RF_ADDR_R1, RF_ADDR_R2, RF_READ, RF_WRITE, ALU_OP1, ALU_OP2, ALU_OPRN, MEM_ADDR, MEM_READ, MEM_WRITE, RF_DATA_1, RF_DATA_1, RF_DATA_1, RF_DATA_1

// Lähtösignaalit
// Rekisteritiedoston lähdöt

lähtö [`DATA_INDEX_LIMIT: 0] RF_DATA_W
lähtö [`ADDRESS_INDEX_LIMIT: 0] RF_ADDR_W, RF_ADDR_R1, RF_ADDR_R2
lähtö RF_READ, RF_WRITE

// ALU: n lähdöt
lähtö [`DATA_INDEX_LIMIT: 0] ALU_OP1, ALU_OP2
lähtö [`ALU_OPRN_INDEX_LIMIT: 0] ALU_OPRN

// Muistilähdöt
lähtö [`ADDRESS_INDEX_LIMIT: 0] MEM_ADDR
lähtö MEM_READ, MEM_WRITE

// Tulosignaalit
tulo [`DATA_INDEX_LIMIT: 0] RF_DATA_R1, RF_DATA_R2, ALU_RESULT
tulo ZERO, CLK, RST

// Inout-signaali
inout [`DATA_INDEX_LIMIT: 0] MEM_DATA

// Valtionverkot
johto [2: 0] proc_state

// sisältää ohjelmalaskurin arvon, tallentaa nykyisen käskyn, pinon osoitinrekisterin

reg MEM_READ, MEM_WRITE
reg MEM_ADDR
reg ALU_OP1, ALU_OP2
reg ALU_OPRN
reg RF_ADDR_W, RF_ADDR_R1, RF_ADDR_R2
reg RF_DATA_W
reg [1: 0] tila, seuraava asema

PROC_SM tila_kone (.STATE (proc_state), CLK (CLK), RST (RST))

aina @ (posedge CLK)
alkaa
jos (RST)
osavaltio<= RST
muu
osavaltio<= next_state

loppuun

aina @ (osavaltio)
alkaa

MEM_READ = 1’b0 MEM_WRITE = 1’b0 MEM_ADDR = 1’b0
ALU_OP1 = 1’b0 ALU_OP2 = 1’b0 ALU_OPRN = 1’b0
RF_ADDR_R1 = 1’b0 RF_ADDR_R2 = 1’b0 RF_ADDR_W = 1’b0 RF_DATA_W = 1’b0

tapaus (osavaltio)

`PROC_FETCH: aloita
next_state = `PROC_DECODE
MEM_READ = 1’b1
RF_ADDR_R1 = 1’b0 RF_ADDR_R2 = 1’b0
RF_ADDR_W = 1’b1
loppuun

`PROC_DECODE: aloita
next_state = `PROC_EXE
MEM_ADDR = 1’b1
ALU_OP1 = 1’b1 ALU_OP2 = 1’b1 ALU_OPRN = 1’b1
MEM_WRITE = 1’b1
RF_ADDR_R1 = 1’b1 RF_ADDR_R2 = 1’b1
loppuun

`PROC_EXE: aloita
next_state = `PROC_MEM
ALU_OP1 = 1’b1 ALU_OP2 = 1’b1 ALU_OPRN = 1’b1
RF_ADDR_R1 = 1’b0
loppuun

`PROC_MEM: aloita
next_state = `PROC_WB
MEM_READ = 1’b1 MEM_WRITE = 1’b0
loppuun

`PROC_WB: aloita
next_state = `PROC_FETCH
MEM_READ = 1’b1 MEM_WRITE = 1’b0
loppuun
pääkotelo

loppuun
endmoduuli

moduuli PROC_SM (TILA, CLK, RST)
// tulojen luettelo
tulo CLK, RST
// tuotosluettelo
lähtö [2: 0] STATE

// syöteluettelo
tulo CLK, RST
// lähtöluettelo
lähtö STATE

reg [2: 0] VALTION
reg [1: 0] tila
reg [1: 0] seuraava asema

reg PC_REG, INST_REG, SP_REF

`määritä PROC_FETCH 3'h0
`määritä PROC_DECODE 3'h1
`määritä PROC_EXE 3'h2
`määritä PROC_MEM 3'h3
`määritä PROC_WB 3'h4

// tilan aloittaminen
varhainen
alkaa
tila = 2’bxx
next_state = `PROC_FETCH
loppuun

// nollaa signaalinkäsittely
aina @ (posedge RST)
alkaa
tila = `PROC_FETCH
next_state = `PROC_FETCH
loppuun
aina @ (posedge CLK)
alkaa
tila = seuraava asema
loppuun
aina @ (osavaltio)
alkaa
jos (ilmoita === `PROC_FETCH)
alkaa
next_state = `PROC_DECODE

print_instruction (INST_REG)
loppuun

jos (ilmoita === `PROC_DECODE)
alkaa
next_state = `PROC_EXE

loppuun

jos (ilmoita === `PROC_EXE)
alkaa
next_state = `PROC_MEM

print_instruction (SP_REF)
loppuun

jos (ilmoita === `PROC_MEM)
alkaa
next_state = `PROC_WB

loppuun

jos (ilmoita === `PROC_WB)
alkaa
next_state = `PROC_FETCH

print_instruction (PC_REG)
loppuun
loppuun

tehtävän tulostusohje

input [`DATA_INDEX_LIMIT: 0] inst

reg [5: 0] opkoodi
reg [4: 0] rs
reg [4: 0] rt
reg [4: 0] p
reg [4: 0] shamt reg [5: 0] funct reg [15: 0] välitön reg [25: 0] osoite

alkaa

// jäsennä käsky
// R-tyyppi

{opcode, rs, rt, rd, shamt, funct} = inst

// I-tyyppi
{opcode, rs, rt, välitön} = inst
// J-tyyppi
{opcode, address} = inst
$ write (“@% 6dns -> [0X% 08h]“, $ time, inst)
tapaus (opcode) // R-tyyppi
6'h00: alku
tapaus (toiminto)

6’h20: $ write (“lisää r [% 02d], r [% 02d], r [% 02d]”, rs, rt, rd)
6’h22: $ kirjoita (”sub r [% 02d], r [% 02d], r [% 02d]”, rs, rt, rd)
6’h2c: $ write (“mul r [% 02d], r [% 02d], r [% 02d]”, rs, rt, rd)
6’h24: $ write (“ja r [% 02d], r [% 02d], r [% 02d]”, rs, rt, rd)
6’h25: $ write (“tai r [% 02d], r [% 02d], r [% 02d]”, rs, rt, rd)
6’h27: $ write (“nor r [% 02d], r [% 02d], r [% 02d]”, rs, rt, rd)
6’h2a: $ write (“slt r [% 02d], r [% 02d], r [% 02d]”, rs, rt, rd)
6’h00: $ write (“sll r [% 02d],% 2d, r [% 02d]”, rs, shamt, rd)
6’h02: $ write (“srl r [% 02d], 0X% 02h, r [% 02d]”, rs, shamt, rd)
6’h08: $ write (“jr r [% 02d]”, rs)
oletus: $ write (“”)
pääkotelo
loppuun

// I-tyyppi

6’h08: $ write (“addi r [% 02d], r [% 02d], 0X% 04h”, rs, rt, välitön)
6’h1d: $ write (“muli r [% 02d], r [% 02d], 0X% 04h”, rs, rt, välitön)
6’h0c: $ write (“andi r [% 02d], r [% 02d], 0X% 04h”, rs, rt, välitön)
6’h0d: $ write (“ori r [% 02d], r [% 02d], 0X% 04h”, rs, rt, välitön)
6’h0f: $ write (“lui r [% 02d], 0X% 04h”, rt, välitön)
6’h0a: $ write (“slti r [% 02d], r [% 02d], 0X% 04h”, rs, rt, välitön)
6’h04: $ write (“beq r [% 02d], r [% 02d], 0X% 04h”, rs, rt, välitön)
6’h05: $ write (“bne r [% 02d], r [% 02d], 0X% 04h”, rs, rt, välitön)
6’h23: $ write (“lw r [% 02d], r [% 02d], 0X% 04h”, rs, rt, välitön)
6’h2b: $ write (“sw r [% 02d], r [% 02d], 0X% 04h”, rs, rt, välitön)

// J-tyyppi

6’h02: $ write (“jmp 0X% 07h”, osoite)
6’h03: $ write (“jal 0X% 07h”, osoite)
6’h1b: $ write (“push”)
6’h1c: $ write (“pop”)
oletus: $ write (“”)
pääkotelo
$ write (“ n”)
loppuun
lopputehtävä
loppumoduuli

UKK

1). Mikä on ohjausyksikön työ?

Ohjausyksikön tehtävänä on ohjata tietovirta tai ohjeet suorittimen suorittamaan tietokoneeseen. Se ohjaa, hallinnoi ja koordinoi päämuistia, ALU: ta, rekistereitä, tulo- ja lähtöyksiköitä. Se hakee ohjeet ja tuottaa ohjaussignaalit suoritusta varten.

2). Mikä on ohjausmuisti?

Ohjausmuisti on yleensä RAM- tai ROM-levy rekisterirekisterin osoitteen ja tietojen tallentamiseksi.

3). Mikä on Wilkes-ohjausyksikkö?

Peräkkäinen ja yhdistelmäpiirit langallisen ohjausyksikön osat korvataan Wilkes-ohjausyksiköllä. Se käyttää tallennusyksikköä mikro-ohjelman käskyjen tallentamiseen.

4). Mikä on langallinen ohjausyksikkö?

Langallinen ohjausyksikkö tuottaa ohjaussignaalit vaihtamalla tilasta toiseen jokaisessa kellopulssissa ilman fyysistä muutosta piirissä. Ohjaussignaalien generointi riippuu käskyrekisteristä, dekooderista ja keskeytyssignaaleista.

5). Mikä on ohjausmuisti?

Ohjausyksikön tiedot tai tiedot tallennetaan väliaikaisesti tai pysyvästi ohjausmuistiin.
Ohjausmuisti on kahden tyyppinen. Ne ovat Random Access Memory (RAM) ja Read-Only Memory (ROM).

Näin ollen kyse on määritelmästä, komponenteista, suunnittelusta, kaaviosta, toiminnoista ja ohjausyksikön tyypit . Tässä on kysymys sinulle: 'Mikä on valvontaosoiterekisterin tarkoitus?'