Sunteți pe pagina 1din 20

7.

UNITATEA DE COMAND I CONTROL


Funciile principale ale unitii de comand i control sunt urmtoarele:
Decodificarea codului operaiei;
Calculul adresei operanzilor care particip la operaie i extragerea lor din
memorie;
Generarea secvenei de comenzi necesare execuiei instruciunii;
Generarea secvenei de comenzi necesare memorrii rezultatului i a informa-
iilor de stare;
Calculul adresei instruciunii urmtoare i citirea acesteia din memorie.
7.1. Micro-operaii
Prelucrrile efectuate de UCP pentru execuia unei singure instruciuni repre-
zint un ciclu de instruciune. Fiecare ciclu de instruciune const din urmtoarele
subcicluri:
Subciclul de extragere a instruciunii din memorie;
Subciclul de execuie;
Subciclul de ntrerupere.
Pe lng aceste subcicluri prezentate n cadrul capitolului despre UCP, mai
exist un subciclu care poate apare la execuia unei instruciuni. Acesta este subciclul de
indirectare.
Execuia unei instruciuni poate necesita extragerea unuia sau a mai multor
operanzi din memorie. Dup extragerea instruciunii, se testeaz dac un operand este
adresat n modul indirect. n caz afirmativ, se ncarc operandul respectiv utiliznd adre-
sarea indirect.
Ciclul de instruciune, completat cu subciclul de indirectare, este reprezentat
simplificat n Figura 7.1.
7. Unitatea de comand i control 209
Figura 7.1. Ciclul de instruciune.
Fiecare subciclu al unei instruciuni poate fi descompus ntr-o serie de operaii
elementare. O asemenea operaie elementar, care realizeaz o prelucrare numeric a
informaiei sau un transfer al acesteia, care se efectueaz n paralel, pe durata unui sin-
gur impuls al generatorului de tact, se numete micro-operaie. Aceste micro-operaii
sunt operaiile fundamentale, indivizibile ale UCP.
Figura 7.2. Elementele componente ale execuiei unui program.
n Figura 7.2 se prezint execuia unui program, care const din execuia sec-
venial a instruciunilor. Fiecare instruciune se execut n timpul unui ciclu de instruc-
iune, format din subcicluri. Pentru fiecare subciclu se execut mai multe micro-operaii.
Unitatea de comand i control are rolul de a genera succesiunea semnalelor de
comand care asigur secvena corect de execuie a micro-operaiilor. Aceast succesi-
une este specific fiecrei instruciuni, fiind determinat att de codul operaiei, ct i de
recepionarea unor semnale de stare de la circuitele controlate, prin care se verific n-
deplinirea unor condiii.
Arhitectura calculatoarelor 210
n continuare se analizeaz subciclurile din care se compune execuia unei in-
struciuni i micro-operaiile din care se compune fiecare ciclu.
7.1.1. Subciclul de extragere
Presupunem c UCP utilizeaz urmtoarele registre:
Registrul de adrese al memoriei (RA). Este conectat la liniile de adres ale ma-
gistralei sistem. Conine adresa de memorie pentru o operaie de citire sau scri-
ere.
Registrul de date al memoriei (RD). Este conectat la liniile de date ale magis-
tralei sistem. Conine valoarea care trebuie depus n memorie sau ultima va-
loare citit din memorie.
Contorul de program (PC). Conine adresa urmtoarei instruciuni care se va
executa.
Registrul de instruciuni (RI). Conine ultima instruciune citit.
Figura 7.3 arat operaiile executate n subciclul de extragere.
Figura 7.3. Operaii executate n subciclul de extragere.
La nceputul unui subciclu de extragere, adresa urmtoarei instruciuni care se
va executa se afl n registrul PC. Primul pas este transferul adresei din PC n registrul
de adrese RA, care este singurul registru conectat la liniile de adrese ale magistralei sis-
tem. Al doilea pas este citirea instruciunii. Adresa din RA este depus pe magistrala de
adrese, unitatea de comand transmite o comand de citire pe magistrala de comenzi, iar
7. Unitatea de comand i control 211
rezultatul citirii (codul instruciunii) este plasat pe magistrala de date i copiat n RD.
Este necesar de asemenea incrementarea registrului PC cu 1 pentru a pregti citirea
urmtoarei instruciuni. Deoarece aceste dou operaii (citirea din memorie i incre-
mentarea PC) sunt independente, se pot efectua n acelai timp. Al treilea pas este
transferul registrului RD n RI, ceea ce elibereaz registrul de date pentru a se putea uti-
liza eventual n subciclul de indirectare.
Deci, subciclul de extragere const din trei pai i patru micro-operaii. Fiecare
micro-operaie implic transferul datelor n sau dintr-un registru.
Se presupune c exist un semnal de tact (ceas), care genereaz impulsuri la
intervale constante. Fiecare impuls de ceas definete o unitate de timp. Aceast unitate
de timp este aleas astfel nct fiecare micro-operaie s poat fie executat pe durata
unui singur impuls de ceas. Unitile de timp sunt notate cu t
1
, t
2
, t
3
.
Simbolic, secvena de micro-operaii se poate scrie astfel:
t
1
: RA PC
t
2
: RD Mem
PC PC + 1
t
3
: RI RD
A treia micro-operaie se poate executa i n unitatea de timp t
3
, fr a afecta
subciclul de extragere.
7.1.2. Subciclul de indirectare
Dup extragerea instruciunii din memorie, trebuie s se ncarce operanzii care
particip la operaie. Unitatea de comand examineaz coninutul registrului RI, i dac
se specific o adresare indirect, urmeaz un subciclu de indirectare care precede
subciclul de execuie.
Operaiile executate n acest subciclu sunt indicate n Figura 7.4.
Cmpul de adres din registrul de instruciuni RI este transferat n RA. Aceast
adres este utilizat apoi pentru ncrcarea adresei operandului n registrul de date RD.
Cmpul de adres din RI este actualizat pentru a conine adresa direct a operandului.
Descrierea simbolic a micro-operaiilor este urmtoarea:
t
1
: RA RI (ADR)
t
2
: RD Mem
t
3
: RI (ADR) RD (ADR)
Registrul RI este n acest moment n aceeai stare ca n cazul n care nu se utili-
za adresarea indirect, i este pregtit pentru subciclul de execuie.
Arhitectura calculatoarelor 212
Figura 7.4. Operaii executate n subciclul de indirectare.
7.1.3. Subciclul de execuie
Subciclurile de extragere i de indirectare, ca i subciclul de ntrerupere, impli-
c secvene fixe de micro-operaii. Subciclul de execuie difer n funcie de instruciu-
ne, pentru N coduri de operaie diferite existnd N secvene diferite de micro-operaii
care trebuie executate.
Considerm ca exemplu instruciunea:
ADD R1, X
care adun coninutul variabilei X la registrul R1. Execuia acestei instruciuni se poate
descrie astfel:
t
1
: RA RI (ADR)
t
2
: RD Mem
t
3
: R1 R1 + RD
RI conine codul instruciunii ADD. n primul pas, partea de adres din RI este
ncrcat n RA. Apoi, se citete locaia de memorie adresat i se depune n RD. n fi-
nal, coninutul registrului R1 i al RD sunt adunate de UAL.
Acesta este un exemplu simplificat, fiind necesare micro-operaii suplimentare
pentru adresarea registrului specificat i pentru a depune operanzii UAL n registre tem-
porare.
7. Unitatea de comand i control 213
7.1.4. Subciclul de ntrerupere
La terminarea subciclului de execuie, n cazul n care ntreruperile sunt vali-
date, se testeaz dac a aprut o cerere de ntrerupere. n caz afirmativ, se execut un
subciclu de ntrerupere. Secvena de operaii executate variaz de la un calculator la
altul. Un exemplu este prezentat n continuare.
n primul pas, coninutul contorului de program PC este transferat n registrul
de date RD, pentru a fi salvat n memorie, n scopul relurii operaiei dup terminarea
ntreruperii. n pasul al doilea, registrul de adrese RA este ncrcat cu adresa la care se
memoreaz coninutul PC. Salvarea se poate face ntr-o locaie special de memorie sau
n stiv; n ultimul caz coninutul indicatorului de stiv SP este transferat n RA. n ace-
lai pas poate fi ncrcat i contorul de program cu adresa rutinei de tratare a ntrerupe-
rii. Deoarece cele mai multe UCP permit mai multe tipuri i nivele de ntrerupere, sunt
necesare micro-operaii suplimentare pentru a obine adresa de salvare a registrului PC
i adresa rutinei de tratare. Ultimul pas const n memorarea registrului de date RD. Ast-
fel, n urmtorul subciclu se va ncrca prima instruciune a rutinei de tratare.
t
1
: RD PC
t
2
: RA Adresa_salvare
PC Adresa_rutin
t
3
: Mem RD
7.1.5. Ciclul de instruciune
Se prezint n Figura 7.5 secvena complet de micro-operaii care compun un
ciclu de instruciune.
Se introduce un registru de 2 bii, CCI, care conine codul ciclului de instruci-
une. Acest registru indic starea UCP, n funcie de subciclul executat:
00: Extragere
01: Indirectare
10: Execuie
11: ntrerupere
La sfritul fiecrui subciclu, registrul CCI este actualizat. Subciclul de
indirectare este urmat ntotdeauna de subciclul de execuie. Subciclul de ntrerupere este
urmat ntotdeauna de subciclul de extragere. Pentru subciclul de extragere i cel de exe-
cuie, urmtorul subciclu depinde de starea sistemului.
Arhitectura calculatoarelor 214
Figura 7.5. Secvena de micro-operaii ale unui ciclu de instruciune.
7.2. Controlul UCP
7.2.1. Cerine funcionale pentru unitatea de comand
Prin definirea operaiilor elementare care trebuie executate de UCP, se pot de-
fini operaiile care trebuie executate de unitatea de comand. Se pot defini deci cerinele
funcionale ale unitii de comand, care se vor utiliza pentru implementarea acestei
uniti.
Pentru realizarea unitii de comand, sunt necesare urmtoarele etape:
1. Definirea elementelor de baz ale UCP.
2. Descrierea micro-operaiilor executate de UCP.
3. Determinarea funciilor care trebuie executate de unitatea de comand pentru
execuia micro-operaiilor.
Elementele funcionale de baz ale UCP sunt urmtoarele:
UAL;
Registre;
Ci de date interne;
7. Unitatea de comand i control 215
Ci de date externe;
Unitatea de comand.
Registrele sunt utilizate pentru memorarea datelor interne ale UCP. Anumite
registre conin informaii de stare necesare pentru secvenierea instruciunilor (de exem-
plu, cuvntul de stare al programului). Altele conin date provenite de la UAL, memorie
sau module de I/E. Cile de date interne sunt utilizate pentru transferul datelor ntre
registre sau ntre registre i UAL. Cile de date externe efectueaz legtura ntre registre,
memorie i module de I/E, de obicei prin intermediul unei magistrale sistem.
Execuia unui program const din operaii executate cu aceste elemente ale
UCP. Micro-operaiile din care se compun aceste operaii se ncadreaz n urmtoarele
categorii:
Transferul datelor ntre registre;
Transferul datelor dintr-un registru la o interfa extern (de exemplu, magis-
trala sistem);
Transferul datelor de la o interfa extern ntr-un registru;
Execuia unei operaii aritmetice sau logice, utiliznd registrele pentru operanzi
i rezultat.
Unitatea de comand are dou funcii de baz:
Secveniere: Determin secvena corect a micro-operaiilor care trebuie exe-
cutate de UCP.
Execuie: Determin execuia fiecrei micro-operaii.
7.2.2. Semnale de control
Pentru a-i realiza funciile, unitatea de comand trebuie s aib intrri care s
permit determinarea strii sistemului, i ieiri care s permit controlul funcionrii
sistemului. Acestea reprezint specificaiile externe ale unitii de comand i definesc
interaciunea dintre unitatea de comand i alte elemente ale UCP.
Intrrile i ieirile unei uniti de comand i control se prezint n Figura 7.6.
Intrrile sunt urmtoarele:
Ceas: UCC determin execuia unei micro-operaii (sau a unui set de mi-
cro-operaii simultane) la fiecare impuls de ceas. Perioada semnalului de ceas
se mai numete ciclu de ceas.
Codul operaiei: Se citete din registrul de instruciuni, care pstreaz instruc-
iunea curent, i se utilizeaz pentru a determina micro-operaiile care trebuie
executate n timpul ciclului de execuie.
Arhitectura calculatoarelor 216
Figura 7.6. Intrrile i ieirile unei uniti de comand i control.
Indicatori de condiii: Sunt necesari pentru a determina starea UCP i rezultatul
operaiei precedente executate de UAL, n scopul executrii instruciunilor de
salt condiionat.
Semnale de control: Partea care reprezint magistrala de control din cadrul
magistralei sistem furnizeaz semnale pentru UCC, ca semnale de ntrerupere
sau de achitare a unei ntreruperi.
Ieirile sunt urmtoarele:
Semnale de control din cadrul UCP: Acestea sunt de dou tipuri: cele care de-
termin transferul datelor dintr-un registru n altul, i cele care activeaz funcii
specifice ale UAL.
Semnale de control transmise pe magistrala de control: Acestea sunt tot de
dou tipuri: semnale de control la memorie i semnale de control la modulele
de I/E.
Elementul care a fost introdus n aceast figur este semnalul de control. Se
utilizeaz trei tipuri de semnale de control:
Pentru activarea unei funcii a UAL;
Pentru activarea unei ci de date;
Semnale de pe magistrala extern a sistemului sau alt interfa extern.
Considerm din nou ciclul de ncrcare al unei instruciuni. UCC pstreaz evi-
dena urmtorului ciclu care va fi executat. Primul pas const n transferul:
RA PC
Acest transfer se efectueaz prin activarea unui semnal de control care deschide
(activeaz) porile dintre cele dou registre.
Urmtorul pas este citirea unui cuvnt din memorie n registrul de date i in-
crementarea contorului de program PC:
7. Unitatea de comand i control 217
RD Mem
PC PC + 1
Aceste operaii se efectueaz prin activarea simultan a urmtoarelor semnale
de control:
1. Un semnal de control care valideaz depunerea coninutului RA pe magistrala
de adrese.
2. Un semnal de control de pe magistrala de control, pentru citirea memoriei.
3. Un semnal de control care valideaz memorarea coninutului de pe magistrala
de date n registrul de date RD.
4. Semnale de control prin care se incrementeaz cu 1 coninutul PC i se depune
rezultatul napoi n PC.
Ultimul pas const n transferul:
RI RD
pentru care se activeaz un alt semnal de control care valideaz transferul.
n continuare UCC trebuie s decid dac urmeaz un ciclu de indirectare sau
un ciclu de execuie. Pentru aceasta, examineaz coninutul registrului de instruciuni RI
i testeaz dac se utilizeaz o adresare indirect.
Ciclurile de indirectare i de ntrerupere se execut similar. Pentru ciclul de
execuie, UCC testeaz codul de operaie al instruciunii, pe baza cruia decide secvena
de micro-operaii care va fi executat.
7.2.3. Exemplu de unitate de comand
Se consider o unitate central simpl cu un singur registru acumulator. Se in-
dic n Figura 7.7 cile de date ntre elemente i semnalele de control.
UCC primete intrri de la generatorul de ceas, registrul de instruciuni i indi-
catorii de condiii. La fiecare ciclu de ceas, UCC citete toate intrrile sale i genereaz
un set de semnale de control. Semnalele de control au trei destinaii separate:
Cile de date: UCC controleaz fluxul intern al datelor. Pentru fiecare cale
controlat, exist o poart (indicat printr-un cerc n figur). Un semnal de
control deschide (activeaz) temporar poarta pentru a permite transferul datei.
UAL: UCC controleaz funcionarea UAL printr-un set de semnale de control.
Aceste semnale activeaz diferite circuite din cadrul UAL.
Magistrala sistem: UCC transmite semnale de control pe liniile de control ale
magistralei sistem.
Arhitectura calculatoarelor 218
Figura 7.7. Cile de date ntre elementele unei uniti centrale i semnalele de control.
Secvenierea n timp a operaiilor este realizat cu ajutorul impulsurilor de
ceas, prevzndu-se un timp ntre diferitele operaii pentru stabilizarea nivelului semna-
lelor. n Tabelul 7.1 se indic semnalele de control care sunt necesare pentru o parte a
secvenelor de micro-operaii descrise anterior. Pentru simplitate, cile de date i sem-
nalele de control pentru incrementarea PC i pentru ncrcarea adreselor fixe n PC i
MA nu sunt indicate.
Tabelul 7.1. Micro-operaii i semnale de control.
Ciclu Micro-operaii Semnale de control active
Extragere: t1: RA PC
t2: RD M
PC PC + 1
t3: RI RD
C2
C5, CR
C4
Indirectare: t1: RA RI (ADR)
t2: RD M
t3: RI (ADR) RD (ADR)
C8
C5, CR
C4
ntrerupere: t1: RD PC
t2: RA Adresa_salvare
PC Adresa_rutinei
t3: M RD
C1
C12, CW
S-a notat cu: C
R
- semnal de citire de pe magistrala sistem;
C
W
- semnal de scriere pe magistrala sistem.
7. Unitatea de comand i control 219
7.3. Organizarea intern a UCP
Din cauza numrului mare al cilor de date, structura intern a UCP este com-
plex. Pentru simplificarea structurii, se utilizeaz o magistral intern, la care se co-
necteaz UAL i registrele UCP. Se adaug pori i semnale de control pentru transferul
datelor ntre magistral i fiecare registru. Alte semnale de control au rolul de a controla
transferul datelor la i de la magistrala sistem (extern) i funcionarea UAL.
Se prezint n Figura 7.8 structura UCP din exemplul precedent utiliznd o
magistral intern.
Figura 7.8. UCP utiliznd o magistral intern.
Cu aceast organizare, o operaie de adunare a unei valori din memorie la re-
gistrul acumulator va avea urmtoarele etape:
t
1
: RA RI (ADR)
t
2
: RD Mem
t
3
: Y RD
Arhitectura calculatoarelor 220
t
4
: Z AC + Y
t
5
: AC Z
Sunt posibile i alte organizri, dar n general se utilizeaz o magistral intern
sau un set de magistrale interne. Utilizarea cilor de date comune simplific schema de
interconectare i controlul UCP i reduce spaiul necesar.
7.4. Implementarea UCC
Pentru implementarea UCC se utilizeaz diferite metode, care se pot ncadra
ntr-una din dou categorii:
Implementare cablat;
Implementare microprogramat.
n cazul unei implementri cablate, UCC este n principiu un circuit secvenial
care transform semnalele logice de intrare ntr-un set de semnale de ieire, care repre-
zint semnalele de control. Modificarea funciilor unei astfel de uniti de comand ne-
cesit modificri ale structurii hardware a circuitului.
Se prezint cteva tipuri de UCC care utilizeaz implementarea cablat.
7.4.1. UCC care utilizeaz un bistabil pe stare
O astfel de unitate de comand conine n structura sa un bistabil independent
pentru fiecare stare prin care trece circuitul. La un moment dat, un singur bistabil se afl
n starea 1, cel care determin starea activ.
Aceast metod de implementare nu este optim, deoarece este necesar num-
rul maxim de bistabile (pentru 16 stri, sunt necesare 16 bistabile, n loc de minimul
necesar de 4). Metoda are ns i unele avantaje:
Proiectare simpl;
Partea combinaional este simpl;
Depanarea circuitului este mai uoar.
Structura general este prezentat n Figura 7.9, unde CC reprezint un circuit
combinaional.
Trecerea de la starea T
i
la starea T
j
este determinat att de semnalele de intra-
re, ct i de starea prezent a circuitului. Dac circuitul nu necesit intrri, acesta se re-
duce la un registru de deplasare n care valoarea 1 se deplaseaz de la un bistabil la
altul. Aceast soluie se ntlnete dac n partea de prelucrare se execut ntotdeauna
aceeai secven de micro-operaii.
7. Unitatea de comand i control 221
Figura 7.9. Structura general a unei uniti de comand i control care utilizeaz
un bistabil pe stare.
7.4.2. UCC care utilizeaz un decodificator
UCC utilizeaz codul instruciunii i va executa diferite aciuni pentru fiecare
instruciune. Codul instruciunii va fi decodificat cu ajutorul unui decodificator, care
primete un cod la intrare i activeaz un singur semnal de ieire. n general, un
decodificator are n intrri binare i 2
n
ieiri binare. Fiecare din cele 2
n
coduri de la intra-
re va activa o singur ieire care corespunde codului de intrare.
Generatorul de ceas genereaz o secven de impulsuri. Perioada acestor im-
pulsuri trebuie s fie suficient pentru a permite propagarea semnalelor prin cile de
date i prin circuitele UCP. UCC genereaz diferite semnale de control n diferitele uni-
ti de timp din cadrul aceluiai ciclu de instruciune. Se utilizeaz un generator de faze,
care genereaz semnalele de intrare T
1
, T
2
, ..., T
n
pentru UCC, pentru fiecare din acestea
fiind activate semnale de comand diferite. La sfritul fiecrui ciclu de instruciune,
UCC reiniializeaz generatorul de faze pentru a genera semnalul T
1
.
Structura UCC este prezentat n Figura 7.10.
Se va utiliza exemplul anterior pentru a arta modul n care se deduc ecuaiile
booleene ale semnalelor de comand n funcie de intrrile UCC. Se va considera un
singur semnal de control, C
5
. Acest semnal este activat pentru citirea datelor de pe ma-
gistrala de date n registrul de date RD. Din tabela cu secvenele de micro-operaii, se
observ c acest semnal este utilizat de dou ori, n dou subcicluri diferite. Se definesc
dou noi semnale de comand, P i Q, cu semnificaia urmtoare:
P Q = 00: Subciclu de extragere
P Q = 01: Subciclu de indirectare
P Q = 10: Subciclu de execuie
P Q = 11: Subciclu de ntrerupere
Arhitectura calculatoarelor 222
Figura 7.10. Structura general a unei uniti de comand i control care utilizeaz
un decodificator.
Semnalul C
5
va fi activat n a doua unitate de timp a subciclului de extragere i
a celui de indirectare, deci se poate defini prin ecuaia:
2 2 5
T Q P T Q P C + =
Acest semnal trebuie ns activat i n subciclul de execuie. Pentru acest
exemplu, se presupune c exist numai trei instruciuni care execut citirea memoriei:
LDA, ADD i AND. Se noteaz semnalele activate la ieirea decodificatorului cu numele
instruciunii respective. Atunci, C
5
se poate defini ca:
2 2 2 5
) ( T AND ADD LDA Q P T Q P T Q P C + + + + =
n acelai mod se scriu ecuaiile tuturor semnalelor de comand. Rezultatul va
fi un set de ecuaii booleene care definete funcionarea UCC.
UCC trebuie s controleze de asemenea starea ciclului de instruciune. La sfr-
itul fiecrui subciclu, trebuie s se actualizeze semnalele P i Q pentru a indica urmto-
rul subciclu care se va executa.
7.4.3. Uniti de comand microprogramate
7.4.3.1. Principiul UCC microprogramate
Semnalele de comand pot fi reunite sub forma unei succesiuni de cifre binare,
formnd un cuvnt numit cuvnt de comand. Fiecare micro-operaie se caracterizeaz
printr-un cuvnt specific de comand, iar succesiunea cuvintelor de comand prin care
se indic secvena corect a micro-operaiilor pentru fiecare operaie poate fi memorat
ntr-o memorie de comand.
7. Unitatea de comand i control 223
O unitate de comand n care succesiunea cuvintelor de comand, adic a valo-
rilor semnalelor de comand, este memorat, este numit unitate de comand micropro-
gramat. Fiecare cuvnt de comand memorat n memoria de comand formeaz o
microinstruciune, iar secvena de microinstruciuni formeaz un microprogram.
Deosebirea principal ntre o unitate de comand microprogramat i una ca-
blat const n modul n care circuitul trece dintr-o stare n alta pentru a genera semna-
lele de comand.
n cazul cablat, o stare corespunde unei faze, caracterizat prin activarea unui
semnal de faz. ntr-o faz sunt generate anumite semnale de comand necesa-
re execuiei unei funcii.
n cazul microprogramat, o stare corespunde unei microinstruciuni, care codi-
fic micro-operaiile care trebuie executate n timpul aceluiai semnal de ceas.
O unitate de comand microprogramat are dou funcii principale:
Funcia de control propriu-zis, prin care se definesc micro-operaiile care tre-
buie executate. Aceast definire cuprinde de obicei selecia operanzilor, a ope-
raiei de executat, selecia destinaiei rezultatului etc.
Funcia de secveniere, prin care se definete adresa microinstruciunii urm-
toare. Aceast definire se refer la identificarea sursei pentru adresa urmtoare,
la controlul condiiilor de test sau la generarea direct a valorii adresei.
Figura 7.11. Format tipic de microinstruciune orizontal.
Conform acestor funcii, o microinstruciune este format din urmtoarele cm-
puri principale:
Cmpul semnalelor de comand generate pentru controlul circuitelor;
Cmpul de adres, care conine adresa urmtoarei microinstruciuni care se va
executa, dac o anumit condiie este adevrat (de exemplu, dac bitul de
indirectare din codul instruciunii este 1). Dac aceast condiie este fals, se
va executa urmtoarea microinstruciune din memoria de comand.
Arhitectura calculatoarelor 224
Cmpul de condiii, care indic urmtoarea microinstruciune care va fi execu-
tat.
Acest tip de microinstruciune se numete microinstruciune orizontal (Figura
7.11). Pe lng acestea, exist i microinstruciuni verticale.
Exist cte un bit pentru fiecare semnal de comand intern al UCP i un bit
pentru fiecare semnal de control al magistralei sistem. Cmpul de condiie arat condiia
n care se execut un salt n microprogram, iar cmpul de adres conine adresa la acre
se efectueaz saltul. O asemenea microinstruciune este interpretat n modul descris mai
jos.
Figura 7.12. Amplasarea microinstruciunilor n memoria de comand.
1. Pentru execuia microinstruciunii, se activeaz toate semnalele de comand c-
rora le corespunde un bit de 1 n cmpul semnalelor de comand, i se dezacti-
veaz cele crora le corespunde un bit de 0. Semnalele de comand care vor fi
activate vor determina execuia uneia sau a mai multor micro-operaii.
2. n cazul n care condiia indicat de cmpul de condiie este fals, se execut
urmtoarea microinstruciune din microprogram.
3. n cazul n care condiia indicat de cmpul de condiie este adevrat, se exe-
cut microinstruciunea indicat de cmpul de adres.
7. Unitatea de comand i control 225
n Figura 7.12 se prezint amplasarea microinstruciunilor n memoria de co-
mand.
Microinstruciunile din fiecare rutin sunt executate secvenial. Fiecare rutin
se termin cu o instruciune de salt care indic urmtoarea rutin care va fi executat.
Exist o rutin special pentru nceputul unui subciclu de execuie, care indic rutina
care va fi executat pentru diferitele instruciuni (ADD, AND, ..., JMP), n funcie de codul
instruciunii.
Memoria de comand reprezint o descriere complet a funcionrii unitii de
comand, deoarece definete secvena de micro-operaii care trebuie executate n timpul
fiecrui subciclu (de extragere, de indirectare, de execuie, de ntrerupere), i specific
secvenierea acestor subcicluri.
7.4.3.2. Structura unei UCC microprogramate
n Figura 7.13 se prezint elementele principale ale unei uniti de comand
microprogramate.
Figura 7.13. Elementele principale ale unei uniti de comand microprogramate.
Registrul de microadrese (RMA) conine adresa urmtoarei microinstruciuni
care se va citi din memoria de comand. Dup citire, microinstruciunea este transferat
n registrul de microinstruciuni (RMI). Prin acest registru se activeaz semnalele de
comand. Citirea unei microinstruciuni din memoria de comand este echivalent cu
execuia microinstruciunii respective. Logica de secveniere ncarc registrul de
microinstruciuni i activeaz comanda se citire.
Structura mai detaliat a unitii de comand este prezentat n Figura 7.14.
Arhitectura calculatoarelor 226
Figura 7.14. Structura detaliat a unei uniti de comand microprogramate.
Comparativ cu o unitate de comand cablat, unitatea microprogramat are
aceleai intrri (RI, indicatori de condiii ai UAL, ceas) i ieiri (semnale de comand).
Unitatea de comand funcioneaz astfel:
1. Pentru execuia unei instruciuni, logica de secveniere activeaz un semnal de
citire a memoriei de comand.
2. Cuvntul a crei adres se specific n registrul de microadrese este citit n re-
gistrul de microinstruciuni.
3. Coninutul registrului de microinstruciuni activeaz semnalele de comand i
genereaz informaii despre adresa urmtoare pentru logica de secveniere.
7. Unitatea de comand i control 227
4. Logica de secveniere ncarc o nou adres n registrul de microadrese, pe ba-
za informaiilor despre adresa urmtoare de la registrul de microinstruciuni i
a indicatorilor de condiii ai UAL.
n Figura 7.14 exist dou decodificatoare. Primul decodificator translateaz
codul operaiei din registrul de instruciuni RI ntr-o adres a memoriei de comand. Al
doilea decodificator nu este utilizat pentru microinstruciunile orizontale, ci pentru cele
verticale. ntr-o microinstruciune orizontal, fiecrui bit al cmpului de comand i co-
respunde un semnal de comand. ntr-o microinstruciune vertical, se utilizeaz un cod
pentru fiecare operaie care trebuie executat, de exemplu RA PC, iar decodificatorul
translateaz acest cod n semnale de comand individuale.
Avantajul microinstruciunilor verticale este c ele sunt mai compacte, utiliznd
un numr mai mic de bii, cu preul unei logici suplimentare.
Avantajul principal al utilizrii microprogramrii pentru implementarea unit-
ilor de comand este simplificarea proiectrii acestora. O unitate de comand cablat
trebuie s conin o logic complex pentru secvenierea micro-operaiilor din ciclul de
instruciune. n schimb, decodificatoarele i logica de secveniere dintr-o unitate de co-
mand microprogramat sunt simple.
Dezavantajul principal al unitilor microprogramate este c sunt mai lente de-
ct cele cablate realizate ntr-o tehnologie comparabil. Cu toate acestea, micro-
programarea este tehnica cea mai utilizat pentru implementarea unitilor de comand.

S-ar putea să vă placă și