Sunteți pe pagina 1din 27

CUPRINS

9. MICROPROGRAMARE ........................................................................................................................................... 9-1


9.1 NOIUNI I CONCEPTE DE BAZ ................................................................................................................................. 9-2
9.1.1 Organizarea memoriei de control ................................................................................................................... 9-4
9.1.2 Suportul fizic pentru pstrarea microprogramelor ........................................................................................ 9-7
9.1.3 Organizarea logic a instruciunilor .............................................................................................................. 9-8
9.1.3.1 Codificare vertical ....................................................................................................................................................... 9-8
9.1.3.2 Codificarea orizontal ................................................................................................................................................... 9-9
9.1.3.3 Codificarea minimal .................................................................................................................................................... 9-9
9.1.3.4 Codificarea cu control rezidual ................................................................................................................................... 9-10
9.1.3.5 Codificarea cu control prin adrese ............................................................................................................................... 9-11
9.1.3.6 Codificare mixt .......................................................................................................................................................... 9-11
9.1.4 Implementarea microinstruciunilor ............................................................................................................. 9-12
9.2 PROIECTAREA UNITII DE COMAND MICROPROGRAMAT A CALCULATORULUI DIDACTIC ................................. 9-14
9.2.1 Specificarea caracteristicilor unitii de comanda microprogramate pentru calculatorul didactic ........... 9-14
9.2.2 Specificarea detaliat a structurii calculatorului didactic ........................................................................... 9-15
9.2.3 Stabilirea operaiilor elementare pentru controlul resurselor calculatorului didactic ................................ 9-17
9.2.4 Stabilirea variabilelor de stare (condiiilor de test) ..................................................................................... 9-18
9.2.5 Stabilirea formatului microinstruciunilor .................................................................................................... 9-19
9.2.6 Proiectarea microsecveniatorului ............................................................................................................... 9-22
9.2.6.1 Descrierea microprogramului ...................................................................................................................................... 9-24


9-1

9. MICROPROGRAMARE


Obiective:

Obiectivele acestui capitol sunt orientate spre aprofundarea principiilor de realizare a unitii
centrale miroprogramate. Pentru exemplificare se proiecteaz n mod efectiv o unitate central
microprogramat pentru calculatorul didactic. Sunt dezvoltate microprogramele pentru citire-
interpretare i execuie a instruciunilor calculatorului didactic.

9-2

9.1 Noiuni i concepte de baz

Din punct de vedere structural unitile de comand sunt de dou tipuri:
convenionale n sensul propus de Von Newmann ;
microprogramate conform conceptului introdus de M.Wilkes.
Conceptul de microprogramare a fost introdus de Maurice Wilkes, de la Universitatea din
Cambridge, n anul 1951, ca o alternativ sistematic de proiectare a unitilor de comand ale
calculatoarelor numerice sau, n general, a procedurilor de control asupra primitivelor funcionale ale
unui sistem numeric.
Microprogramarea poate fi considerat o tehnic de proiectare i implementare a funciilor de
control al sistemelor de prelucrare a datelor numerice, ca o secven de semnale de control ce
interpreteaz static sau dinamic funciile de prelucrare a datelor. Semnalele de comand, necesare la un
moment dat pentru controlul primitivelor funcionale, sunt organizate ntr-un cuvnt de control,
memorat ntr-o memorie PROM sau RAM. Structura cuvntului de control este influenat de
semnificaia atribuit noiunii de microoperaie .
Microoperaia ( O ) este o primitiv a funciilor de prelucrare a datelor, care reprezint o
operaie elementar asupra unei primitive funcionale (transfer, aciune de nscriere sau de
incrementare, activare pe magistral, etc. ), ce se desfaoar de obicei ntr-o perioad de timp (perioada
de tact sau de ceas).
Microoperaia implic existena unui operator, care corespunde unei uniti funcionale i a
operanzilor asupra crora acioneaz.
Cuvntul de control este pus n coresponden cu noiunea de microinstruciune.
Microinstruciunea (I) este un set de microoperaii independente de date, fr conflict de
resurse, care se pot executa simultan (pe intervalul unei perioade de sincronizare).
n general, microinstruciunile sunt de dou tipuri:
microinstruciuni operaionale care controleaz primitivele funcionale ale unitii de
execuie a sistemului numeric, asigurnd fluxul de informaie i aciunile asupra
resurselor;
microinstruciune de ramificaie (de salt) care inspecteaz starea primitivelor
funcionale i asigur ramificaia n algoritmul de control, constituind suportul pentru
implementarea deciziilor.
Prin microprogram se nelege o secven de microinstruciuni ce implementeaz un algoritm
care descrie :
citirea interpretarea i execuia unui set de instruciuni main;
primitive ale sistemului de operare ;
primitive ale limbajelor de programare ;
etc.
Structura general a unui sistem de calcul cu unitate de comand microprogramat este
prezentat n Fig. 9.1.
Primitivele funcionale au urmtoarele semificaii :
M - memoria principal a sistemului, n care se pstreaz programele ca secven de instruciuni
main i datele care se prelucreaz ;
ML - memoria local a sistemului, reprezentat de registrele generale de lucru accesibile sau nu
utilizatorului;
UAL - unitatea aritmetic logic ;


S I/E - subsistemul de intrri / ieiri ;
MC - memoria de control n care se pstreaz microprogramul ca secven de microinstruciuni ;

9-3
RI - registrul de microinstruciuni, care pstreaz microinstruciunea curent ce se execut.
Coninutul su specific toate microoperaiile care se execut n acel moment n unitatea de
execuie ;
S - microsecveniatorul, unitatea de comand convenional, elementar, care asigur citirea
interpretarea i execuia microinstrucinilor din memoria de control precum i nlnuirea
acestora pe baza registrului de instruciuni main RI i a strii primitivelor funcionale.
UAL
ML/RG
SI/E
S
Unitate de comanda
Unitate de executie O microoperatii stari
cod instructiune
RI MC
RI
AM
M

Figura 9.1
Structura generala a unui sistem microprogramat
Din punctul de vedere al proiectantului de sistem, unitatea de comand microprogramat
reprezint un calculator primar capabil s interpreteze (emuleze) orice alt pseudo-calculator (calculator
virtual) aflat la un nivel superior celui al calculatorului primar.
Structura simplificat prezentat n Fig. 9.1 are rolul de a scoate n eviden faptul c
microprogramul conine informaiile (semnalele) de control ale primitivelor funcionale i c acestea
sunt memorate n memoria de control n acelai fel cum instruciunile main sunt memorate n
memoria principal a sistemului.
O instruciune main este citit, interpretat i executat de o secven de microinstruciuni
care controleaz i comand aciunile asupra primitivelor funcionale .
Implementarea sub form microprogramat a unitilor de comand a permis dezvoltarea
conceptului de emulare, care a aprut ca urmare a ncercrilor de a soluiona ntr-un mod eficient
problema transportabilitii programelor, adic de a executa programele de baz i de aplicaii ale unui
sistem pe alt sistem. Astfel, folosind aceleai resurse fizice, este posibil ca prin diferite microprograme
s se realizeze diverse structuri, care din punct de vedere funcional s se comporte diferit sau s
corespund unor calculatoare existente (dintr-o anumit clas).
n general, o structur microprogramat se caracterizeaz prin:
organizarea memoriei de control ;
suportul fizic pentru pstrarea microprogramelor ;

9-4
organizarea logic a microinstruciunilor ;
implementarea microinstruciunilor ;
9.1.1 Organizarea memoriei de control
Organizarea memoriei de control poate fi privit din dou puncte de vedere i anume:
relaia poziional ntre memoria de control MC i memoria principal M ;
structura memoriei de control MC .
Folosind drept criteriu de analiz relaia MC fa de M se ntlnesc trei tipuri de organizare a
memoriei de control :
1. memorie de control separat de memoria principal, att din punct de vedere fizic ct
i punct de vedere al adresrii logice, Fig. 9.2 .
Raportul dintre viteza de lucru a memoriei de control i cea a memoriei principale este
de circa 10 n favoarea memoriei de control, Vmc >> Vm .
O asfel de organizare ntlnim la calculatoarele din familia CORAL, I100, PDP 11,
IBM 360/50, etc.
MC M

Figura 9.2 Organizare cu memoria de control separat de memoria principal

2. memoria de control este implementat n acelai spaiu fizic i de adresare cu cel al
memoriei principale, Fig. 9.3 . Ambele au acelai ciclu de memorie i sunt adresate prin
aceeai logic . Divizarea n memorie de control i memorie principal se poate face la
nivel fizic sau la nivel logic.
Acest tip de organizare cere ca memoria s fie suficient de rapid pentru a fi folosit ca
MC i destul de ieftin pentru a fi folosit ca memorie principal.
O astfel de organizare ntlnim la calculatoarele IBM 370/145; IBM 360 /25 .
M
MC

Figura 9.3 Organizarea memorie de control n cadrul memoriei principale

3. memoria de control este implementat separat de memoria principal ns este
ncrcat din aceasta. Se utilizeaz un sistem de memorie ierarhic, Fig.9.4.
Memoria MC este ncrcat din memoria principal prin intermediul memoriei tampon
MT.
Acest tip de organizare este curent utilizat la calculatoarele mari cum ar fi IBM
370/145. Performanele acestui tip de organizare depind de structura mainii de
baz i de algoritmul de lucru cu memoria tampon.



9-5
M MT
MC

Figura 9.4
Organizarea MC separat de MP dar ncrcabil din aceasta

Din punctul de vedere al structurii memoriei de control MC aceasta poate fi organizat n mai
multe moduri i anume :
1. memorie de control cu o microinstruciune pe cuvnt, n care fiecrui cuvnt de
memorie i corespunde o singur microinstruciune, Fig. 9.5. Citirea unei
microinstruciuni presupune un singur acces la MC.
MC

Figura 9.5
Organizare cu memorie de control cu microinstruciune pe cuvnt

2. memorie de control cu organizare pe pagini, Fig. 9.6.
Unei adrese din memoria de control i se asociaz mai multe microinstruciuni, din
pagini diferite. n acest fel se asigur la nivel de microprogram execuia unei
microinstruciuni de tip CASE, care introduce facilitatea de decizii multiple .
O adres de MC va adresa aceeai locaie n toate paginile memoriei de control iar
vectorul de condiii de test va activa pagina ce specific microinstruciunea urmtoare
care se va executa.
MC
n
MC
1
MC
0

Figura 9.6
Memorie de control cu organizare pe pagini

3. memorie de control cu organizare pe blocuri, Fig. 9.7.
Pentru acest tip de organizare exist dou feluri de adrese:
-adrese de microinstruciuni din acelai bloc cu microinstruciunea curent ;
-adrese de blocuri .
mprirea memoriei de microprograme n blocuri se face innd seama att de structura
microprogramului ct i de resursele fizice disponibile. O organizare de acest fel
conduce, n general, la micorarea lungimii microinstruciunii ns introduce timp
suplimentar cu comutarea adreselor de blocuri.

9-6
MC
n
MC
1
MC
0

Figura 9.3
Memorie de control cu organizare pe blocuri

4. memorie de control divizat, Fig. 9.8.
Memoria de microprograme divizat este alctuit din dou uniti de memorie
distincte:
MI - memorie de microinstruciuni, care pstreaz toate microinstruciunile
distincte posibile necesare pentru controlul resurselor fizice ;
MA - memorie de adrese de microinstruciuni, care pstreaz programul
specificat, nu prin microinstruciuni ce controleaz resursele fizice, ci prin
adrese de microinstruciuni (adrese pentru memoria MI).
n general numrul de tipuri de microinstruciuni distincte este mult mai redus dect
microprogramul n sine, ceea ce implic ca numrul de bii necesari pentru adresarea
memoriei MI s fie i el redus. n acest fel, lungimea cuvntului din memoria MA este
mult mai mic dect al memoriei MI, ceea ce conduce la o reducere substanial a
memoriei de control.
n schimb, pentru a executa o microinstruciune trebuie fcute dou adresri, una la
memoria MA i una la memoria MI ceea ce conduce la un ciclu mai mare de
microinstruciune.
MI
I
MA
P
semnale
de
comanda

Figura 9.4
Memorie de control divizat

9-7

5. memorie de control structurat pe dou niveluri, Fig. 9.9

La o astfel de organizare mecanismul citirii interpretrii i execuiei unei instruciuni
main este urmtorul :
- o instruciune main este interpretat de un set de microinstruciuni rezident
n memoria de control MC (I) ;
- la rndul ei, o microinstruciune este interpretat de o secven de
nanoinstruciuni rezident n memoria MC (nI) .

MC(nI)
MC(I)

Figura 9.9
Memorie de control structurat pe dou niveluri

Aceast tehnic a nanoprogramrii este conceptual echivalent cu microprogramarea,
structurarea pe dou niveluri ofer o flexibilitate mai mare i posibilitatea implementrii
unor structuri de control foarte complexe.
O astfel de organizare ntlnim la calculatorul NANODATA QM1.
9.1.2 Suportul fizic pentru pstrarea microprogramelor
Memoria de microprograme MC este o unitate de memorie de mare vitez care pstreaz
microprogramele ce se execut .
n ceea ce privete suportul fizic, pentru pstrarea microprogramelor, acesta poate fi realizat cu
memorii PROM sau cu memorii RAM.
Realizarea memoriei de control cu componente de tip PROM confer o caracteristic static
structurii microprogramate, n timp ce utilizarea componentelor de tip RAM ofer o caracteristic
dinamic .
Caracteristica dinamic permite utilizatorului ca printr-un ansamblu de mijloace software s
aib acces la microprogramul din memoria de control. Accesul poate consta n modificarea parial, n
completarea microprogramului pentru a creea noi primitive software sau chiar n modificarea total a
microprogramului, ceea ce nseamn schimbarea arhitecturii mainii de baz.
Este foarte important n a face deosebire ntre :
maini microprogramate, i
maini microprogramabile eventual.

9-8
Prima categorie se refer la modalitatea de implementare a unitii de comand n sensul
conceptului introdus de Wilkes, fr a oferi resursele hardware i suportul de programe pentru accesul
utilizatorului la nivelul microprogramului.
Cea de a dou categorie ofer att resursele hardware ct i facilitile software pentru accesul
utilizatorului la nivelul microinstruciunilor.
Dintre calculatoarele cu memorie de control inscriptibil amintim BURROUGH 1700,
MICRODATA 1600, I102F, etc.
9.1.3 Organizarea logic a instruciunilor
Un cuvnt din memoria de control specific un set de microoperaii ce constituie componentele
primitive ale controlului resurselor sistemului. Organizarea logic a microinstruciunilor este
influenat de :
gradul de paralelism ntre microoperaii, care se dorete realizat;
structura mainii de baz ;
gradul de codificare sau de flexibilitate dorit ;
gradul de optimizare al lungimii cuvntului de control .
Presupunnd c microprogramele sunt specificate ca o secven de seturi disjuncte de
microoperaii, se pot distinge mai multe modaliti de codificare a acestora i anume:
codificare vertical sau maximal ;
codificare orizontal sau cu control direct ;
codificare minimal ;
codificare cu control rezidual ;
codificare cu control prin adrese ;
codificare mixt.
9.1.3.1 Codificare vertical
n cadrul codificrii verticale, fiecare microinstruciune operaional specific o singur
microoperaie. Setul de microoperaii (MO) necesar pentru controlul primitivelor funcionale se
codific n [ log
2
| (MO) ] bii, care constituie lungimea cuvntului din MC.
Pentru identificarea microoperaiei specificate de I se utilizeaz un decodificator, Fig. 9.10.
Aceast codificare reprezint un caz extrem, deoarece elimin orice posibilitate de desfurare
paralel a operaiilor elementare.
Din punctul de vedere al minimizrii cuvntului de control, codificarea vertical implic
numrul cel mai mic de bii. Dimensiunea mare a decodificatorului face ca realizarea fizic a acestuia
s aib loc pe mai multe niveluri, ceea ce conduce la introducerea de ntrzieri.
Un dezavantaj major al codificrii maximale l reprezint eliminarea controlului paralel asupra
resurselor precum i inflexibilitatea dezvoltrii sau completrii sistemului n ceea ce privete
introducerea de noi microoperaii. Este aplicabil numai n sisteme dedicate care au o structur
specific.

9-9
[log
2
|(0)|]-1
I
1 0
O
0
O
1
O
|(0)| -1
I DEC

Figura 9.10
Codificarea vertical a microoperaiilor
9.1.3.2 Codificarea orizontal
n cadrul acestei codificri, fiecare microoperaie din setul (MO) este pus n coresponden cu
un bit din cadrul cuvntului de control. Controlul microoperaiilor se face n mod direct, Fig. 9.11.
|(0)|-1
I
1 0
O
0
O
1
O
|(0)| -1

Figura 9.11 Codificarea orizontal
Codificarea orizontal realizeaz controlul tuturor microoperaiilor paralele, posibile, ce se pot
desfura n sistem.
Dei ofer o flexibilitate mare i asigur paralelismul maxim, utilizarea acestei codificri este
un caz extrem din cauza folosirii ineficiente a memoriei de control.
9.1.3.3 Codificarea minimal
Combin flexibilitatea i paralelismul potenial oferite de codificarea orizontal cu eficiena
codificrii verticale.
Ideea de baz este de a grupa n clase de compatibilitate setul de microoperaii care se exclud
reciproc (O dintr-o clas de compatibilitate nu se vor efectua niciodat simultan).
Microinstruciunea este mprit n cmpuri. Un cmp corespunde unei clase de
compatibilitate. La nivel de cmpuri se realizeaz o codificare orizontal iar n cadrul cmpurilor se
realizeaz o codificare vertical, Fig 9.12 a).

9-10
C
|C|-1
I C
0
C
1
|C
0
|
O O O
I DEC
|C|-1
DEC
1
DEC
0
[log2|C
0
|]

Figura 9.12 a)Codificare minimal
Pentru un cmp C
j
care codific |C
j
| microoperaii sunt necesari |log
2
(|C
j
|+1)| bii, deoarece
trebuie s se prevad i posibilitatea de a nu specifica nici o microoperaie din cadrul cmpului.
O variant a acestei codificri o reprezint codificarea pe dou niveluri sau indirect.
n codificarea pe dou niveluri, validarea unor cmpuri depinde de valoarea altui cmp de
control din microinstruciune, Fig 9.12 b).
C
|C|-1
I C
0
C
i
C
1
O O O
DEC
DEC
DEC
DEC

Fig. 9.12 b) Codificare minimal pe dou niveluri
9.1.3.4 Codificarea cu control rezidual
Aceast metod de codificare folosete registre de control rezidual pentru controlul primitivelor
funcionale. Cuvntul de control nu controleaz resursele direct ci, prin intermediul registrelor de
control rezidual ncrcate sub aciunea microinstruciunilor, Fig. 9.13
MC
|C
0
|
O O O
RCRZ
n
RCRZ
1
RCRZ
0

Figura 9.13 Codificare cu control rezidual
Microinstruciunile pot s nlocuiasc sau s modifice valoarea unuia sau mai multor registre de
control. Aceast tehnic, a controlului rezidual, asigur o economie de memorie de control atunci cnd

9-11
unele primitive funcionale realizeaz aceeai operaie n mod repetat sau cnd un set de microoperaii
este activ o perioad mare de timp, iar alte seturi de microoperaii se modific.
Registrele de control rezidual RCRZ
j
, care specific microoperaiile de control al resurselor
hardware, pot fi manevrate cu ajutorul unor microinstruciuni de dimensiuni reduse.
9.1.3.5 Codificarea cu control prin adrese
O modalitate de implementare a microinstruciunilor operaionale este aceea n care nu se
specific direct microoperaiile care trebuie s se desfoare, ci se specific o adres n cadrul unei
memorii, unde sunt memorate toate microinstruciunile distincte posibile ce controleaz sistemul, Fig.
9.14.

Adrresa
Adr. I
O
MI
distincte

Figura 9.14 Codificare cu control prin adrese

Aceast modalitate reprezint o form simplificat a conceptului de nanoprogramare.
Numrul de microinstruciuni distincte nu depinde de numrul de resurse controlate ci de
numrul de O disticte, de mrimea P i de numrul de variabile de stare testate .
Memoria care pstreaz microinstruciunile distincte va avea lungimea cuvntului suficient de
mare pentru a controla toate microoperaiile care se pot efectua simultan. Trebuie notat c fiecare I
este memorat o singur dat.
O astfel de implementare face ca microprogramul s fie format dintr-o secven de adrese care
apeleaz I pstrate n memoria de I.
Un dezavantaj al acestei metode const n faptul c necesit dou accese la memorie n cadrul
unui ciclu de microinstruciune, dar n schimb se realizeaz o economie important de memorie.
9.1.3.6 Codificare mixt
O variant utilizat mult n practic este aceea n care microinstruciunea este mprit n
cmpuri. Unele cmpuri controleaz direct microoperaiile (sub form codificat sau direct) iar altele
specific adrese de memorie ce conin un subset de microinstruciuni distincte, Fig. 9.15.
Adr.
DEC
C
n
C
1
C
0
I
O
O
MI
O

Figura 9.15 Codificare mixt


9-12

9.1.4 Implementarea microinstruciunilor
Microinstruciunile sunt citite, interpretate i executate de ctre microsecveniator (S) n
acelai fel n care o unitate de comand convenional execut instruciuni main.
Se poate defini o caracteristic serie-paralel care msoar cantitatea de suprapunere ntre faza
de execuie a I curente i citirea, interpretarea I urmtoare.
Din punctul de vedere al caracteristicii serie-paralel distingem trei tipuri de implementri :
implementare serie;
implementare serie-paralel ;
implementare paralel.
Fie CI-faza de citire interpretare i E-faza de execuie a unei I.
n implementarea serie, citirea microinstruciunii urmtoare nu ncepe dect dup ce s-a
terminat execuia microinstruciunii curente, Fig. 9.16.

A
I
nr.
i
i+1
i+2
CI E
CI E
CI E

Figura 9.16 Implementare serie

n implementarea paralel, Fig. 9.17, faza de citire a I urmtoare se desfoar n acelai timp
cu execuia I curente.
A
I
nr.
i
i+1
i+2
CI E
CI E
CI E

Figura 9.17 Implementare paralel

Se observ c ciclul de execuie al microprogramului se reduce.
O astfel de implementare impune existena unor resurse fizice de comand (microsecveniator,
etc.) mai complexe, care s poat anticipa adresa microinstruciunii urmtoare chiar i n cazul
salturilor condiionate.
O mbinare a performanelor implementrii paralele i a costului redus al implementrii serie
este realizat de implementarea serie-paralel a microinstruciunilor, Fig. 9.18.

9-13
A
I
nr.
i
i+1
i+2
CI E
CI E
CI E

Figura 9.18 Implementare serie-paralel

Faza de citire a I urmtoare se desfoar fie n timpul execuiei I curente, fie dup
terminarea ei, n funcie de tipul microinstruciunii curente.
Succesiunea de microinstruciuni operaionale se desfoar prin suprapunerea fazelor de citire
i execuie, iar cele imediat urmtoare unor ramificaii se citesc dup terminarea execuiei I curente
(de ramificaie).
Implementarea serie-paralel este caracteristic arhitecturilor "pipe line", i este cea mai
folosit.
Referitor la implementarea microinstruciunilor se poate defini i o caracteristic
monofaz-polifaz care se refer la numrul de faze utilizate ntr-un ciclu de microinstruciune.
ntr-o implementare monofaz, microoperaiile sunt generate simultan, toate semnalele de
control specificate de microinstruciune fiind active n acelai timp (pentru cele de tip impuls se ine
seama de front), Fig. 9.19.
b. a.
t
CI
TACT
CI CI
t
CI CI CI

Figura 9.19
Implementare monofaz
a. ciclul macroinstruciunii CI constant
b. ciclul macroinstruciunii CI variabil

ntr-o implementare polifazic, microinstruciunea este activ o perioad de tact ns semnalele
de control sunt repartizate pe faze ale ciclului, Fig. 9.20.

9-14
b. a.
t
CI
Faza 2
Faza 3
Faza 1
CI CI
t
CI CI CI

Figura 9.20
Implementare polifaz
a. ciclul microinstruciunii constant
b. ciclul microinstruciunii variabil

Ciclul unei microinstruciuni poate fi constant sau variabil n sensul c poate avea aceeai
durat pentru toate I, respectiv o durat pentru un grup de microinstruciuni i alt durat pentru un alt
grup de I.
9.2 Proiectarea unitii de comand microprogramat a calculatorului didactic

Proiectarea unitii de comand microprogramat a calculatorului didactic implic rezolvarea
urmtoarelor aspecte:
specificarea caracteristicilor unitii de comand microprogramate pentru calculatorul
didactic ;
specificarea detaliat a structurii calculatorului didactic;
stabilirea operaiilor elementare pentru controlul resurselor calculatorului didactic;
stabilirea variabilelor de stare (condiii de test);
stabilirea formatului microinstruciunilor;
proiectarea microsecveniatorului;
descrierea microprogramului.
9.2.1 Specificarea caracteristicilor unitii de comanda microprogramate pentru calculatorul
didactic

Aspectele principale care trebuie considerate n vederea specificrii unitii de comand
microprogramat au fost prezentate n paragraful 9.1. Analiznd aceste aspecte se constat c exist o
mare varietate de soluii i opiuni pentru specificarea unitii de comand.
Avnd n vedere structura calculatorului didactic se poate proiecta unitatea sa de comand sub
forma microprogramat cu urmtoarele atribute generale:
din punctul de vedere al relaiei poziionale ntre MC i memoria principal se va alege
o memorie de control separat de memoria principal;
implementarea memoriei de control se va face cu memorii de tip PROM;
memoria de control se va organiza asfel nct s se specifice o singur microinstruciune
ntr-un cuvnt de control;

9-15
organizarea logic a microinstruciunilor va fi de tip minimal (microinstruciunea
mprit n cmpuri );
implementarea microinstruciunilor va fi de tip serie-paralel;
se va considera o implementare monofaz a microinstruciunilor.
Avnd n vedere caracteristicile prezentate, structura general a unitii de comand
microprogramat pentru calculatorul didactic se prezint n Fig. 9.21 unde:
MC - memoria de control pstreaz microprogramul care implementeaz fazele de citire,
interpretare i execuie ale instruciunilor main. Este de tip PROM. Un cuvnt de control din
MC, echivalent cu o microinstruciune, genereaz toate semnalele de comand
(microoperaiile) ce sunt active la un moment dat pe durata unei perioade de sincronizare.
RI - registrul de microinstruciuni pstreaz microinstruciunea curent ce se execut.
CP - registrul de adrese al MC pstreaz adresa microinstruciunii urmtoare care se va citi.
S - microsecveniatorul reprezint unitatea de comand convenional care asigur citirea,
interpretarea i validarea aciunilor microinstruciunilor. Pe baza tipului microinstruciunii
curente, a strii primitivelor funcionale ale calculatorului didactic precum i a codului operaie
al instruciunii main curente (ce interpreteaz i se execut), S formeaz adresa I
urmtoare i valideaz (activeaz spre resursele unitii de execuie) microoperaiile din I
curent.

MC
PROM
CP
S
MUX
Logica
de
conditii
de
salt
Logica
de
decodificare
si
validare
RI
registrul
RI
stare
primitive functionale
a
CD

Figura 9.21 Structura general a unitii de comand microprogramat pentru calculatorul didactic
9.2.2 Specificarea detaliat a structurii calculatorului didactic

Pentru a stabili formatul microinstruciunilor i a proiecta microsecveniatorul este necesar s
detaliem structura prii operaionale (unitii de execuie) a calculatorului didactic.
n Fig.9.22 se prezint structura detaliat a unitii de execuie a calculatorului didactic, fr a
include subsistemul de intrri/ieiri.


16
M
AM RG M
U
X
AIE
T1
mux
Log, BC
MAP
mux
3:5
2
3
3
3
4
4
5
0
d p z
0
s
ai intr id inm ip
t
1
i
0:2
1
ADRRA(0)
ADRIS(3)
smux T1 act RG
UAL SRG
MAG
ADR
REG
smux RG
RM
smux BC
act BC
reset I
set I
act AM
dep AM
setip setai
cintr D cinm
act RI
resetRI
PRIL
dep RI
dep BC
dep AIE
MAG
acadri
___
sie
___
cie
dep T1
T2
selUAL
0:3
dep T2
act UAL
sm
act M
cm
RI
act CP
dep CP
init
inc CP
CP
Schema detaliata a unitatii de executie a CD

Figura 9.5
Este necesar s precizm c toate resursele care au acces la magistrala MAG trebuie s fie
prevzute cu ieiri cu trei stri. Acest deziderat se poate realiza n dou moduri :
alegem resurse cu ieiri cu trei stri (dac exist) ;
alegem resurse care nu au ieiri cu trei stri ns intercalm ntre ieirile lor i
magistral circuite separatoare cu trei stri ("buffere tri state ").
n schema detaliat nu se precizeaz tipul componentelor cu care se face implementarea ci
se stabilesc numai resursele i operaiile elementare asupra lor. Se pun n eviden funciile logice pe
care trebuie s le efectueze primitivele funcionale.
De exemplu, registrul CP, indiferent de componenta cu care se implementeaz, trebuie s fie
controlat de semnale (microoperaii) care specific :
iniializarea (tergerea)- initl ;
incrementarea - incCP ;
ncrcarea cu o valoare specificat de coninutul magistralei MAG -depCP ;
activarea pe magistrala MAG - actCP .
9.2.3 Stabilirea operaiilor elementare pentru controlul resurselor calculatorului didactic

Analiznd schema detaliat a unitii de execuie a calculatorului didactic, unde s-a precizat
modul de utilizare a primitivelor funcionale, rezult lista semnalelor de comand:

1.actAM - activeaz registrul de adrese al memoriei pe liniile de adrese spre memorie (s-a
considerat c trebuie s fie dezactivat cnd intervine DMA-ul);
2.depAM - depune (ncarc) coninutul magistralei MAG n AM;
3.cm - comand operaia de citire din memorie;
4.sm - comand operaia de scriere n memorie;
5.actM - activeaz coninutul celulei de memorie adresate pe magistrala MAG;
6.incCP - incrementeaz CP ;
7.depCP - depune n CP coninutul magistralei MAG ;
8.actCP - activeaz coninutul registrului CP pe magistrala MAG ;
9.depRI - depune n RI coninutul magistralei MAG ;
10.actRI - activeaz coninutul registrului RI pe magistrala MAG;
11.smuxRG
0:2
- selecteaz adresa memoriei locale RG, specificnd astfel registrul general implicat
n operaia curent ;
12.sRG - comand scrierea n memoria local RG ;
13.actRG - activeaz coninutul memoriei locale RG pe magistrala MAG (coninutul
registrului general selectat de smuxRG) ;
14.smuxT1
0:1
- selecteaz informaia care se nscrie n registrul T1;
15.depT1 - depune date (ncarc) n registrul T1 ;
16.depT2 - depune date (ncarc) n registrul T2 ;
17.selUAL
0:3
- specific operaia ce trebuie efectuat de UAL ;
18.actUAL - activeaz rezultatul din UAL pe magistrala MAG ;
19.smuxC - selecteaz informaia pentru transportul de intrare n UAL
20.smuxIND - selecteaz informaia ce se nscrie n indicatorii de condiii ;
21.depIND - depune (ncarc) datele selectate de multiplexorul smuxIND n indicatorii de
condiii IND (t,s,z,p,d,I) ;
22.actIND - activeaz pe magistrala MAG coninutul indicatorilor de condiii IND ;
23.depAIE -depune (ncarc) n registrul AIE informaia ce se gsete pe magistrala MAG
(adresa portului de intrare/ieire implicat n transfer);
24.cie - activeaz pe magistrala MAG coninutul portului de intrare (citete port de intrare)
;
25.sie - comand scrierea ntr-un port de ieire ;
26.setI - nscrie "1" (seteaz) n indicatorul I ;

9-18
27.resetI - nscrie "0" (reseteaz) n indicatorul I;
28.setip - nscrie "1" (seteaz) n bistabilul ip de cerere de ntrerupere prin program ;
29.setai - nscrie "1" n bistabilul de achitare ntrerupere ai;
30.resetbi - nscrie "0" (reseteaz) n bistabilul de cerere de ntrerupere corespunztor cererii
luate n considerare i n bistabilul de achitare ntrerupere (ai) ;
31.actADRI - activeaz pe magisrala MAG adresa celulei capcan corespunztoare nivelului de
ntrerupere ce urmeaz s fie tratat.

9.2.4 Stabilirea variabilelor de stare (condiiilor de test)

Pentru a asigura ramificaiile n cadrul microprogramului, microsecveniatorul (S) testeaz
starea primitivelor funcionale (caracterizat prin valoarea indicatorilor de condiii) i biii din
registrul de instruciuni (cod operaie, mod de adresare).
Lista variabilelor de stare (semnalelor testate) n fazele de citire, interpretare i execuie a
instruciunilor main rezult din analiza programului AHPL descris n capitolul 5 i este prezentat
n cele ce urmeaz .
n lista semnalelor testate se precizeaz semnalul sau combinaia de semnale analizate
precum i pasul AHPL n care are loc testul.
Lista semnalelor testate (sau a funciilor logice testate) n programul ce descrie fazele de
citire, interpretare i execuie ale instruciunilor main ale calculatorului didactic se prezint n
tabelul 9.1.
n lista semnalelor testate s-au pus n clar toate condiiile care au aprut n programul AHPL.
Aceast list se poate reduce din mai multe puncte de vedere i anume:
s se specifice numai semnalele directe iar decizia de testare pe "0" logic sau pe "1"
logic s fie luat prin microprogram;
grupurile de semnale specificate prin funcii logice pot fi testate individual, ns n
mai multe microinstruciuni de salt, ceea ce conduce la scderea performantelor
unitii de comand microprogramat.



9-19

9.2.5 Stabilirea formatului microinstruciunilor
Pentru unitatea de comand microprogramat a calculatorului didactic vom defini dou
tipuri de microinstruciuni i anume:
Tabelul 9.1
Nume semnal sau
funcie logic testat
pas AHPL
_____________
1.SL(SYN(starta)

1
2.id v inm 2
_________________
3.inm id (intrI)

2
4.RI
0
4
5.RI
8
^ RI
9
5,37,39,54
__
6.RI
8
^ RI
9
^ RI
13
^ RI
14


5
__
7.RI
9
^ RI
13


7
8.RI
9
^ RI
13
7
9.RI
9
10
__
10.RI
8


11
__
11.RI
15


22
12.RI
1
26
13.RI
3
27,60,66
14.RI
4
28
15.RI
5
28
16.RI
2
29,57,60
__
17.RI
7


30,59
___________
18.RI
7
^ RI
8
^ RI
9


30,59
19.RI
7
^ RI
8
^ RI
9
30,59
20.RI
7
31,58
__ _______
21.RI
7
^ RI
8
^ RI
9


31,58
__
22.RI
7
^ RI
8
^ RI
9


31,58
______
23.RI
8
^ RI
9


37,39,54
24.RI
6
38,53,69,72
25.RI
4:6
55,60
__
26.RI
2


60
__
27.RI
4
^ RI
5


67
__
28.RI
4
^ RI
5


67
29.RI
4
^ RI
5
67
__
30.RI
6


81
31.indicatori condiii +
funcii de indicatori condiii

85
32.salt necondiionat "1" 15,16,18,32,37,42,47,53,56,65,70,71,75,78,83,88

9-20
microinstruciune operaional, care specific controlul primitivelor funcionale ale
unitii de execuie ;
microinstruciune de ramificaie, care permite testarea strii primitivelor funcionale
i asigur ramificaia n microprogram .
Pentru a putea stabili structura microinstruciunilor trebuie analizate urmtoarele aspecte:
lista semnalelor care controleaz primitivele funcionale ale unitii de execuie ;
programul AHPL care descrie secvena de comand a fazelor de citire interpretare i
execuie a instruciunilor main pentru a stabili setul de microoperaii elementare ce
trebuie s se desfoare n paralel ;
lista semnalelor (funciilor logice de semnale) care reprezint condiiile de test n
cadrul algoritmului ce se implementeaz n microprogram .
Listele de semnale care controleaz primitivele funcionale respectiv condiiile de test au
fost prezentate anterior.
Din analiza programului AHPL care descrie fazele de citire, interpretare i execuie a
instruciunilor main pentru calculatorul didactic (prezentat n capitolul 5) rezult seturile de
operaii elementare ce trebuie s se desfoare n paralel. n cele ce urmeaz se prezint seturile de
operaii elementare ce se desfoar n paralel i paii AHPL cnd ele sunt active (lista este alctuit
numai pentru faza de citire- interpretare pas 1:25).
Lista seturilor de microoperaii elementare paralele:

Nr. crt. Seturi de microoperaii paralele pas AHPL
1. setai 2.1
2. actCP;depAM 2.2;13;20
3. actAM;cm;actM;depRI 3
4. smuxRG=0;actRG;smuxT1=0;depT1 6
5. smuxRG=1;actRG;depT2 8
6. selUAL=5;actUAL;smuxT1=0;depT1 9;15
7. incCP 12;19
8. actAM;cm;actM;depT2 14
9. selUAL=0BH;actUAL;smuxRG=1;sRG 16
10. smuxRG=1;actRG;depT2 17
11. selUAL=0CH;actUAL;smuxRG=1;sRG;depT2 18
12. actAM;cm;actM;smuxT1=0;depT1 21;24
13. selUAL=4;actUAL;depAM 23;25
14. etc pentru paii 25...

Formatul microinstruciunilor este prezentate n Fig 9.24, cele operaionale Fig.9.24 a) iar
cele de ramificaie n Fig.9.24 b).



9-21
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15
srg sie cie cm sm O
0-cit RG
0-scr I/E
0-cit I/E
0-scr mem
0-cit mem
operationala
set UAL
INC(T1)= 0
DEC(T1)= 1
_
T1+1 = 2
_
T1 = 3
T1 = 4
T1+T2 = 5
T1-T2 = 6
T1T2 = 7
T1T2 = 8
T1T2 = 9
T1+T1 = A
INC(T2) = B
DEC(T2)= C
T2 = D
smux RG
MAP0:2 = 0
MAP 3:5= 1
ADRRA= 2
ADRIS = 3
REG = 4
RM = 5
nop = 0
act RI = 1
act CP = 2
act IND = 3
act M = 4
act RG = 5
act UAL = 6
30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 31
smux IND
0 - log BC
1- MAG
act
ADRI
act AM smux C
0 - 0
1- t
smux T1
0 - T1
1-0,T1
2-T16,T1
nop = 0
setI = 1
resetI = 2
setip = 3
setai = 4
resetbi = 5
nop = 0
dep RI = 1
dep CP = 2
dep IND= 3
dep AM= 4
dep AIE = 5
inc CP = 6
nop = 0
dep T1 = 1
dep T2 = 2
X
a)
X

Figura 9.24 a)
Structura microinstruciunilor operaionale


9-22
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15
I/F - 1
conditie de test
SL(SYN(starta)) = 1
id inm = 2
inm id (intr I) =3
RI0 = 4
RI8 RI9 =5,37,39,54
RI8 RI9 R13 R14 = 5
adresa de salt
0 = salt la conditie adevarata
1 = salt la conditie falsa
conditionala
30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 31
X
b)
X X X X X X X X X X X X

Fig 9.24 b) Structura microinstruciunilor condiionale
n proiectarea microinstruciunilor s-a inut seama c microoperaiile paralele prezentate
anterior s fac parte din cmpuri distincte i de faptul c anumite microoperaii se exclud reciproc
(cum ar fi activarea unor resurse pe magistrala MAG ).
De asemenea s-a considerat, pentru a mri flexibilitatea n elaborarea microprogramelor, c
decizia n funcie de testarea unei condiii s poat fi luat la valoare adevrat sau fals. Pentru
aceasta s-a prevzut bitul 7 n microinstruciunea de ramificaie care face un "sau exclusiv " cu
condiia de test.
Lungimea microprogramului s-a considerat de maximum 2048 de locaii, rezultnd astfel un
numr de 11 bii n formatul microinstruciunii de ramificaie pentru adresa de salt (biii 8..18).
Observaie: Avnd n vedere faptul c n general memoriile de tip PROM sunt organizate pe 4
sau 8 bii, desi lungimea exact a microinstruciunii este de 30 de bii, s-a preferat s se lucreze cu o
lungime de 32 de bii.
9.2.6 Proiectarea microsecveniatorului

Avnd n vedere structura microinstruciunilor se poate descrie funcionarea
microsecveniatorului (S) care asigur citirea interpretarea i execuia microinstruciunilor
(activarea microoperaiilor spre unitatea de execuie a CD ).
Programul AHPL de descriere a unitii de comand microprogramat a calculatorului didactic
este :

MODULE: Unitatea de comand microprogramat

MEMORY: MC [2048;32]; RI [32]; CP [11]

INPUTS: lista condiiilor de test


9-23
OUTPUTS: lista semnalelor de comand

1. RI BUSFN(MC;DCD(CP))

/* se citete microinstruciunea curent n registrul de microinstruciuni RI */

2. RI
0
/(4)

/* se separ microinstruciunile de ramificaie la pas 4 i se continu cu cele operaionale */

3. cm,sm,cie,sie,sRG = RI
1:5
;

actRI,actCP,actIND,actM,actRG,actUAL = DCD
1:6
(RI
6:8
) ;

smuxRG
0:2
= RI
9:11
;

selUAL
0:3
= RI
12:15
;

smuxT1
0:1
= RI
16:17
;

smuxC = RI
18
;

smuxIND = RI
19
;

depRI,depCP,depIND,depAM,depAIE,incCP = DCD
1:6
(RI
20:22
) ;

depT1,depT2 = DCD
1:2
(RI
23:24
) ;

actAM = RI
25
;

setI,resetI,setip,setai,resetbi =DCD1:5(RI
26:28
) ;

actADRI = RI
29
;

CP INC(CP) ;

(1)


(1)

/* se formeaz adresa microinstruciunii urmtoare care poate fi adresa curent incrementat (dac
condiia de salt nu este ndeplinit) sau adresa de salt din microinstruciune (dac condiia de salt
este ndeplinit) dup care se merge la citirea microinstruciunii urmtoare */

END SEQUENCE

/* se activeaz cmpurile de microoperaii spre unitatea de execuie, se incrementeaz contorul de
adrese microinstruciuni i se revine la pas 1 pentru citire microinstruciunii urmtoare
_
4. CP (INC(CP) ! RI
8:18
) * (g,g)

9-24

S-a considerat c funcia g reprezint condiia de test i are urmtoarea form :

g = RI
7
(SL(SYN(starta))!(idinm)!(inmid (intrI))!RI
0
!RI
8
RI
9
!.......RI
6
! COND! 1)
*DCD
0:31
(RI
1:6
)

Semnalul de test COND reprezint ieirea unui multiplexor care are ca intrri indicatorii de
condiii sau funcii logice dintre acetia conform descrierii din tabelul 5.5, iar ca selecie biii RI
4:7

din codul operaie al instruciunii de salt condiionat.

9.2.6.1 Descrierea microprogramului

Descrierea microprogramului care implementeaz unitatea de comand microprogramat a
calculatorului didactic se poate face utiliznd un limbaj de microasamblare. Pentru aprofundarea
relaiei ntre cuvntul de control i semnalele de comand ce controleaz primitivele funcionale ale
unitii de execuie se exemplific descrierea unei seciuni de microprogram specificnd direct biii
din microinstruciune.

2.1 ai 1 ;

(91)

2.2 AM CP

Trebuie remarcat faptul c stabilindu-se microinstruciuni de tip operaional i de tip
condiional, paii AHPL care specific aciune i salt vor fi implementai n dou microinstruciuni
distincte iar paii AHPL care specific salturi multiple se implementeaz prin mai multe
microinstruciuni se ramificaie.

Imaginea memoriei de control pentru secvena prezentat anterior este urmtoarea:
______________
1. -> SL(SYN(starta)) /(1)
____________________
2. -> (inm id ip, inm id ip (intr I )) / (91,2.2)

9-25


Pas 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1. 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x
2. 1 0 0 0 0 0 1 0 adresa pasului 91 x x x x x x x x x x x x x
2. 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 x x x x x x x x x x x x x
2.1 0 1 1 1 1 1 0 0 0 x x x x x x x x x x x x 0 0 0 0 0 0 1 0 0 0 x
2.1 1 0 1 1 1 1 1 0 adresa pasului 91 x x x x x x x x x x x x x
2.2 0 1 1 1 1 1 0 1 0 x x x x x x x x x x x x 1 0 0 0 0 0 0 0 0 0 x

9-26