Reprezentarea numerelor si operatiilor aritmetice 1 Clasificarea nr



Yüklə 224,81 Kb.
səhifə3/3
tarix06.08.2018
ölçüsü224,81 Kb.
#67452
1   2   3

Sinteza circuitelor secventiale

Sinteza reprezinta procesul invers al analize. Procesul de sinteza are ca date de intrare descrierea modului de functionare a circuitului, si are ca rezultat schema practica.

La baza procesului de sinteza trebuie sa existe ca prima etapa formalizarea specificatiei intr-un algoritm. Specificarea problemei: 1) setul de intrare al semnalelor care controleaza functionarea circuitului (vectorul X); 2) setul marimilor de iesire (Y); 3) evolutia in timp a comenzilor raportata la evolutia in timp a semnalelor de intrare.

Un sistem de acces reprezinta un numar de senzori de prezenta, formati dintr-un sistem emitor-receptor.Daca obiectul este sesizat de senzori, atunci se deschid portile de garaj, altfel se deblocheaza o usa de intrare.









Implementarea de tip asincron (cu porti NAND)





Implementarea de tip asincron cu MUX 8/1:

Intrarile de adresare a2,a1,a0 se conecteaza direct la iesirile q2,q1,q0 ale MUX. Adresele sunt preluate de la iesirile celor 3 CBB de tip D, Q2,Q1,Q0.

Fiecare MUX transfera valoarea proprie, care va fi 000. La un moment dat, cod=1 => MUX0 va transfera dupa intarzierea proprie de propagare, la iesire valoarea “1”.



Circuitul JK are 2 intrari de control a functionarii. Conditia de tranzitie este validata de frontul descrescator al ceasului.

Daca Q=0, intrarea care controleaza este este J, iar K este indiferent. Daca Q=1, atunci intrarea care controleaza este K prin complementare, iar J este indiferent.

In sinteza circuitelor logice, J2 si K2 nu depind de Q2, J1, K1, care nu depind de Q1, iar J0 si K0 nu depind de Q0. In diagrama Ji se copiaza valoarea proprie gasita in diagrama lui Qi. In diagrama Ki se transfera valoarea negata din diagrama de tranzitie a lui Qi. Bistabilul JK este mai economic ca bistabilul D.Pentru sinteza se pot folosi MUX 4/1 adresate astfel: MUX lui J2 si K2 sunt adresate lui Q1, Q0; MUX pentru J1 si K2 sunt adresate lui Q2, Q0, iar MUX J0 si K0 sunt adresate lui Q2, Q1.









Sinteza semnalelor de iesire: DUP, RC, DUG, IUG.

DUP, DUG sunt active in “0” si RC, IUG sunt active in “1”.



Analiza functionarii in domeniul timp/frecventa

FT = bloc de tip combinational care genereaza functia de tranzitie; M=bloc memorie sincrona; FT depinde de X si de rezultatul memorarii lui M; CMD=memoria de intarziere a propagarii informatiei. Timpul de propagare a blocului FT reprezinta intervalele de timp intre momentul in care intrarile blocului capata valori logice stabile pana in momentul in care iesirile devin stabile. M memoreaza in momentul de decizie generat de semnalul CP informatia preluata de FT.



(set up time) este foarte scurt, chiar 0 la circuitele moderne. Din momentul ceasului, informatia din M devine la iesire vectorul binar Q (vectorul variabilelor de stare). Q se stabilizeaza intr-un interval de timp tp(M). Perioada ceasului se gaseste intre 2 fronturi crescatoare. Durata minima de existenta a unei stari este egala cu o perioada. Semnalele de intrare sunt independente in raport cu CP => asincron.

Diagrama de timp:

La ta se stabilizeaza variabilele de stare. X e stabil de t0. X se schimba in [t0,t1] de la o valoare necunoscuta la valoarea 1. In general, bitul critic pentru determinarea functiei este cel mai intarziat.

Deoarece semnalul de intrare e necorelat fata de ceas, este ultimul care comuta. Pentru o buna functionare e necesar ca toate intervalele de timp sa aduca informatie logica in t1 stabila pentru a se garanta tranzitia corecta catre una dintre starile succesoare.



=>

(frecventa maxima).


Daca starea succesoare atinsa la momentul ceasului este una dintre starile valide apare cursa critica, altfel este critica si supune masinasecventiala unei functii aleatoare. Probabilitatea de aparitie a unei curse critice este mica, deoarece semnalul de intrare trebuie sa comute intr-o fereastra de timp foarte ingusta dinaintea aparitiei ceasului.

Pentru a nu aparea o cursa critica punem o nula. Starile succesoare departajate printr-un bit de stare asincron trebuie sa aiba coduri adiacente.


Functionare bloc CMD: are drept surse de semnale de intrare vectorul de stare Q, iar de iesire Y => genereaza comenzi.

Poate genera semnale in mod fals => hazard combinational si se caracterizeaza prin aparitia falsa a semnalului de iesire pentru o perioada foarte scurta. Anumite componente ale lui Y pot fi conditii de functionare. Daca sunt comenzi de executie a unei conditii de lucru, atunci aparitia intr-un timp foarte scurt, conduce la memorarea comenzii de tip executie.

In cazul unui proiect, proiectantul trebuie sa ia in considerare existenta factorului timp de propagare a informatiei, in raport cu functionarea presupusa ideala.

Introducerea de stari tampon desface conditia de multitest pentru o anumita stare in conditie de test singular.



Registre – sunt CLS reprezentate printr-o multime de n registre elementare, fiecare registru elementar avand functiunea principala de memorare a informatiei de intrare.

Registrul elementar e format dintr-un bit elementar. Registrul de n biti este format din n registre elementare. Celulele pot fi independente una fata de cealalta. Memoria unui calculator e o mare colectie de registre.



Memorarea simultana a informatiei de intrare pentru cele n componente se defineste ca incarcare sau scriere paralela.

LOAD (WRITE) sau LD (WR) ; Prelucrare informatie: citire READ (RD). Cand inscrierea informatiei se face simultan pentru cei n biti, citirea se face analog.

CE = cip enable

DIN = date intrare


Registru P-P (paralel-paralel)
CE=0 activeaza iesirile pentru prelucrarea informatiei memorate ; CE=1 dezactiveaza iesirea ; Avem incarcare pe front crescator, cu CS pentru DOUT.

Registrele cu incarcare seriala a informatiei

REGISTRU S-P (Shift Register)

=> registru de deplasare

Informatia de intrare nu e oferita simultan pe n biti, ci pe un singur fir (intrare seriala SI). La fiecare impuls LD se incarca in Q0 valoarea lui SI si valorile lui Qo->…->Qn-1. In cazul incarcarii informatiei in paralel (un tact), datele de intrare stabilizeaza toate deodata. In cazul incarcarii informatiei seriala (n tacte) intrarea se modifica la fiecare tact. Deplasarea LSB -> MSB presupune inmultirea cu 2 a valorilor stocate pana in acel moment.

REGISTRU S-S

(FIFO=first in first out)

REGISTRU P-S REGISTRU FINO




CIRCUITE NUMARATOARE

Numaratoarele numara impulsurile ceasului de control, incarca informatia in paralel ca un registru paralel de intrare, pentru ca procesul de numarare sa inceapa de la o valoare prestabilita. Numaratoarele se pot proiecta astfel incat sa poata numara in sens crescator (incrementare) sau descrescator (decrementare). Numaratoarele reversibile numara in ambele sensuri. Capacitatea de numarare depinde de aplicatia in care se doreste utilizat numaratorul. Tipuri frecvente de numaratoare: numaratoare pe 4 biti (decadice ; hexazecimale) ; extensie de capacitate (prin conectarea in cascada sau in serie de module standard prin semnale de tip transport) ; incarcarea unei valori initiale (LOAD) ; Reset continut (toate celulele numaratorului trec in 0). Daca sunt indeplinite toate aceste proprietati, atunci numaratorul are capacitatea de adaptare mare.



Familia 74xx : 192 (decadic), 193 (hexa) (reversibile)

Q0-Q3 reprezinta starea numaratorului ; D0-D3 reprezinta datele de intrare care pot fi incarcate prin LD ; Semnalul LD asigura incarcarea datelor numaratorului. Este de tip asincron, cat timp LD este 0, fiecare celula preia valoarea din acel moment al intrarii corespunzatoare. Pe toata durata 1, celulele Qj sunt 0. LD=0 si CLR=1 reprezinta 2 conditii contradictorii, si rezultatul este indecis. In cazul in care ambele sunt active, ultimul care trece in pasiv va decide functia pe care o indeplineste. Semnalul CU (Count Up) este impulsul care determina numararea in sens crescator. Semnalul CD (Count Down) este ceasul care determina numararea in sens descrescator. Daca ambele sunt active, avem decizii contradictorii. Semnalele CY (Carry) si BW (Borrow) sunt semnale de iesire. Semnalul CY este copia intarziata a semnalului CU generat de catre circuit in starea finala (starea 9 pentru decadic si starea F pentru hexa).

BW este copia impulsului de decrementare in stare finala.

(decadic)

(hexa)

(ambele)

Exemlpu de numarator format dintr-o prima celula de tip decadic si a doua hexa:



S-a realizat un numarator modulo 60, in care cifra cea mai putin semnificativa este decadica. Intrarea CD este pasivizata la 1. Cand celulele comuta in acelasi timp, celula Hex comuta din 10 in 10 impulsuri ale lui Dec. Este necesar ca orice celula sa comute cand apare ceasul. Pentru numaratoare crescatoare, celula Qj comuta cand Qj=1, si pentru numaratoarea descrescatoare comuta cand Qj=0. Pentru numaratoarea directa (CU activ, CD=1 pasiv) avem conditia: . Pentru numaratoarea inversa avem conditia: (CD activ, CU=1 pasiv).





74xx : 168 dec ; 169 hex (reversibile; 16 pini)

162 dec ; 163 hex (numai crescator; 16 pini)

CP este ceas unic activ pe frontul crescator. DIR reprezinta directia de numarare. Pentru DIR=1 avem numaratoare in sens direct, iar pentru DIR=0 avem numaratoare in sens invers. Pentru 162,163, DIR are rolul de Clear activ in “0”.

P si T sunt semnale de activare/blocare a numararii si a transportului CY. Pentru 168,169, P si T sunt active in “0”, iar pentru 162,163 in “1”. Semnalul CY reprezinta semnalul de transport care decodifica starea logica finala, care este activa in 9 pentru decadic si in F pentru hexa. Generarea lui CY este activata sau dezactivata in functie de semnalul P. Daca P=1 pentru 162,163 numaratorul este 9 sau F => CY activ. Daca P=0, atunci CY este mascat. Pentru 168,169:


Primul impuls de ceas, trece celula Dec in 9 si numara in celula Hex. Toate celulele comuta in momentul ceasului.



Utilizarea numaratoarelor pentru realizarea controlerelor secvantiale

Pentru o functionare corecta, starea prezenta “a” trebuie sa cunoasca variabila/variabilele de intrare care determina tranzitia catre starile succesoare.



Dpdv fizic, “s1”, in cazul unei masini sincrone, nu trece intr-un tact de la “si” la 1,2,3,4 ci face 2 tacturi. In acest caz operarea este mai buna. Pentru o functionare completa, fiecare stare trebuie sa detina informatii despre variabilele de intrare care conditioneaza tranzitiile, codurile starilor de destinatie si semnalele de iesire pe care trebuie sa le genereze. Abstractizarea: Fiecare stare trebuie sa cunoasca variabilele care conditioneaza tranzitia. Avem ca starea “a” se bazeaza pe “xk” si starea “b” se bazeaza pe “xm”. Vom lua un MUX a carui dimensiune sa poata acomoda totalitatea semnalelor de intrare.

Cand masina secventiala se afla in “a”, atunci Adr MUX=”a” (in cod binar). Pe canalul “cod a” se afla conectat semnalul “xk”.

Tranzitia directa de la o stare la alta presupune: starea respectiva are doar un singur succesor, tranzitii neconditionate, tranzitii conditionate de constante logice. Facem cateva conventii de codificare. Starea succesoare a starii prezente, pentru t=1, sa fie impusa de regula: cod c = cod a + 1. Codul succesor (pentru t=1) se obtine prin incrementarea codului starii prezente: cob b = independent de a. Atribuirea lui b se face pe baza codurilor ramase neocupate. Deci, functia de tranzitie va trebui sintetizata numai pentru t=0.

Exemplu: Masina secventiala de mai mult de 8 stari si mai putin de 16 stari. Daca vor fi necesare stari auxiliare, vor fi desenate cu linie punctata.

Starile nu sunt codificate. Starea obtinuta prin tranzitie pe “1” trebuie sa fie incrementata cu o unitate a starii curente. Codurile sunt scrise in hexazecimal. Se vor introduce 2 stari auxiliare pentru a se putea respecta conditia de tranzitie implicita.

Astfel, variabilele de stare se vor introduce intr-un numarator pe 4 biti si vom alege numaratorul 74xx163. Daca LD=0, ceasul incarca informatia in numarator. Daca LD=1 si e validata conditia de numarare, atunci numaratorul este incrementat. F Tr 0 este functie de transfer pe 0. In cazul saltului eronat, automatul revine in s0 prin incrementarea numaratorului printr-un numar de tacte.

74xx163


Proiectarea functiilor blocului F Tr 0:

Se noteaza cu “-“ campurile b-f. Structura poate implementa orice masina secventiala de pana la 16 biti, pastrand structura MUX si a numaratorului conectand variabila particulara la intrarile in MUX.
Registre

Clasificare conform modului de exploatare: modulul de intarare (scriere) IN si modulul de iesire (citire) OUT.


1) Registrii PP (paralel-paralel) de 8 biti

74xx374 / 574 ; 74xx373 / 573

374

(chip enable – select)



20 pini

Incarcarea informatiei de intrare se face de catre frontul crescator al ceasului. Cei 8 biti de intrare au la iesire tamponul Buffer TS.

CE=0 => iesirile sunt active conform variabilelor incarcate in registru. Se pot conecta mai multe circuite de iesire la iesire, cu conditia sa nu fie active 2 in acelasi timp (multiplexare cablata). La 74xx373/573, CP este ctiv in “1” si incarcarea informatiei nu se face pe front ci se face pe toata durata activa a ceasului (incarcare de tip Hausparent).
2) Registrii S-P de 8 biti

74xx164 asincron 14 pini



SIN = Serial In ; Intre SIN0 si SIN1 avem un “SI” logic. La fiecare impuls de ceas, informatia de pe SIN0 – SIN1, intra in celula Q0, dupa care Q0 se transforma in Q1, Q1 se transforma in Q2 etc. Modul de incarcare a informatiei este serial, facandu-se prin deplasare de la MSB la LSB cu o celula la fiecare tact. ;

Dupa 8 tacte, cei 8 biti de informatie aplicati pe SIN, se regasesc pe celulele Q0…Q7. CLR este de tip asincron activ in “0” logic. CLR sterge continutul registrului.

3) Registru P-S pe 8 biti 74xx165

Intrarea se face in paralel, si avem o singura iesire.

M=mod de lucru

Bitul M asigura prin valoarea “0” si ceasul incarca in registru datele de intrare. Pentru M=1, datele de intrare sunt deplasate de la LSB la MSB, si sunt prezentate de la MSB la LSB pe iesirea OUT. Bitul CLR se inlocuieste cu semnalul STOP. Pentru STOP=0, circuitul intra in Standby, deci nu incarca si nu deplaseaza informatia. Pentru STOP=1, circuitul realizeaza una din cele 2 functii.

4) Registrul universal

74xx194 de 4 biti 16 pini

Circuitul contine: intrarea de ceas care asigura functionarea sincrona, intrarea CLR asincrona activa in “0” si prioritara fata de ceas, 2 intrari de mod de lucru M0,M1, intrarile de date D0,…,D3, SIR=Serial Input Right, SIL=Serial Input Left. Tabele de functionare:



Daca SIR=0, atunci o deplasare spre dreapta insemna inmultirea numerelor existente in registru cu 2.

Shift Right: 2n pentru SIR=0 si 2n+1 pentru SIR=1.

Shift Left: [n/2] pentru SIL=0 si [n/2]+2k-1 pentru SIL=1.



Exemplu: Proiectarea unei unitati aritmetice de calcul pentru adunarea si inmultirea numerelor reale in simpla precizie (32 biti). Numerele reale se reprezinta stfel: 1 bit semnul, 8 biti exponentul (putere a lui 2) si 32 biti mantisa (normalizata).

Vom avea urmatoarea structura: un controler care citeste operanzii din memorie de la adresa specificata si memoreaza cei 2 operanzi in registrii, un bloc de insumare, un acumulator care este un registru in care se se incarca rezultatul insumarii. Deci, vom avea nevoie, dpdv al resurselor hardware de: blocuri sumatoare, blocuri de deplasare a informatiei si numaratoare. Se va proiecta o unitate de comanda care exploateaza resursele externe, pentru realizarea +,-,*.



Proiectarea circuitelor secventiale sub forma microprogramabila

Un circuit secvential se caracterizeaza printr-un algoritm functional al carui element emitor reprezinta starea logica a circuitului respectiv. Complexitatea este data de numarul de stari necesare pentru implementarea algoritmului, de numarul variabilelor de intrare si de numarul variabilelor de iesire. O stare logica trebuie sa cunoasca: semnalul/semnalele de intrare care ii decid tranzitia spre starile succesoare, codurile starilor succesoare si setul comenzilor pe care trebuie sa le genereze starea. Fie urmatoarea structura elementara a unui circuit secvential:

Fiecare stare determina tranzitia generand codul starii de destinatie pe baza variabilelor individuale x(p).

Se inlocuiesc variabilele particulare x(p) printr-o variabila generala test care este particularizata de fiecare stare printr-un mod de adresare a unui MUX al starilor logice. Circuitul de memorie reprezinta un circuit format dintr-un numar de celule de tip registru capabile sa memoreze informatia. Registrul este organizat sub forma a 2n cuvinte ori m biti. Memoria poate fi exploatata prin: scriere (WRITE) in care se inscrie informatia utila in aceeasi memorie si citire (READ) in care se citeste informatia din memorie la nivelul unui intreg cuvant. Pentru a se realiza una dintre aceste operatii este necesar ca acel cuvant sa poata fi adresat.

Fie A=(an-1,…,a0) un cuvant de adresare. DIN=intrarea de scriere ; DOUT=iesirea de citire. Majoritatea circuitelor de memorie au magistrala DIN si DOUT comuna. Semnalul CE activeaza iesirea care este prezenta in forma TS (three state). Memoria permanenta (ROM=Read Only Memory) reprezinta memoria inscrisa prin anumite mijloace tehnice (P=programmable). Memoria EPROM (Erassable ROM) este memoria in care ce s-a scris mai poate fi si sters. EEPROM (Electrically EPROM) este memoria in care stergerea informatiei se face electric. FLASH reprezinta memoria cu caracter permanent. Memoria volatila (RAM=Random Access Memory) este caracterizata prin pierderea informatiei la scoaterea de sub tensiune. Avantajul este ca accesul la informatie este mult mai rapid decat in cazul memoriei permanente. Structura de tip paralel este mai rapida decat cea seriala, dar necesita ca lungimea cuvantului sa fie mare.

Structura microprogramata cu 2 adrese (cu 2 succesori)

CI=camp al intrarilor ;

AD0 si AD1 au aceeasi lungime l(AD) ; m=numarul de stari utile ;

Memorie de microprogram

Toate conditiile functionale sunt reprezentate in circuitul de memorie. CI=intrarea de adresa a MUX. Presupunem ca in momentul analizei, memoria microprogramului este adresata cu valoarea codului starii p. Informatia accesata la aceasta adresa determina generarea unui vector CI, unde trebuie conenctat semnalul x(p). Campurile AD0 si AD1 vor genera informatie despre codurile starilor s0(p) si s1(p). Primul impuls de ceas care soseste incarca in registrul RAD (paralel-paralel) valoarea codului egala cu adresa microinstructiunii succesoare microinstructiunii p. In general, circuitele de memorie permanenta sunt organizate pe 8 biti. In cazul utilizarii unei memorii permanente de tip 2048x8 biti, se utilizeaza 7 circuite integrate de memorie din acelasi model. MUXIN trebuie sa fie de 64 canale. Avem: 11 module de tip MUX 2/1, 2 registre paralel-paralel de 8 biti, 7 CI de memorie, 9 MUX 8/1, 3 CI MUX 2/1, 2 registre paralel-paralel de 8 biti = 21 cuvinte. Cu aceste resurse se pot implementa structuri controlate de maxim 64 de segmente de intrare si care sa genereze 26 de iesire.


Calculul frecventei limita superioara a structurilor microprogramate cu 2 adrese in conditiile de functionare sincrona

Marimile de intrare X se presupun sincronizate / intarziate prin trecerea lor printr-un registru. t(reg) reprezinta intervalul scurs de la momentul ceasului in frontul crescator pana cand informatia de la iesire se stabilizeaza. tSU reprezinta timpul de prestabilire. Memoria este adresata din registrul de adrese si ofera la iesire informatia de la adresa concreta. Timpul de acces de memorie reprezinta intervalul dintre momentul unei adrese stabile pana la stabilizarea informatiei de la adresa. De la adresa la iesire avem componenta tMUX(A/0) si de la intrare la iesire avem componenta tMUX(1/0), care le vom nota simplu tMUX.



Se intercaleaza dupa timpul de acces la memorie, intervalul t(MUXIN).






Metode de accelerare a frecventei limita superioara pentru structuri microprogramate

a) Metoda codului de test al tranzitiei



In starea p, campul CI0 detine informatia de cod sau adresare de care este conectat x(s0), iar campul CI1 pentru x(s1). La sosirea frontului crescator al ceasului, circuitul trece in s0 sau in s1 si RAIN (registru paralel-paralel) se incarca cu valoarea din CI0 sau CI1 care va selecta canalul x(s0) sau x(s1). Starea p comunica prin RAIN stari succesoare, canalul de pe care isi conditioneaza tranzitia. Costul circuitului creste, deci scorul de viteza este aparent minor.

b) Utilizarea tehnologiei TS pentru multiplexare cablata

care se refera la modul de generare a iesirii circuitului de memorie. Semnalele care activeaza/dezactiveaza iesirea sunt: CS (Chip Select), CE (Chip Enable), OE (Output). Daca CS=0, atunci iesirea devine valoarea logica completa. CI0 si AD0 sunt selectate de semnalul t=0. Daca t=1, atunci sunt active CI1 si AD1. Intervalul de timp necesar selectiei/ deselectiei este tCS(MEM).





=>





Structuri microprogramate cu format variabil si tranzitie incrementala

Structurile microprogramate au 2 adrese. Un circuit de memorie e construit pe un numar de biti organizati in cuvinte pe 8/16 biti. Astfel, se creeaza o noua structura care va diminua numarul de biti al cuvantului de memorie si care va profita de capacitatile memoriei.



Microinstructiunea p este transformata in 2 microinstructiuni: C(p’)=C(p) si x(p’’)=x(p). Tranzitia de la p’ la p’’ are un singur succesor, adica este o tranzitie neconditionata.

cod p’’=cod p’+1 ; cod s1=cod p’’+1

In memoria de microprogramate nu mai trebuie memorata decat adresa de tranzitie pentru situatia in carevariabila testata are valoarea “0”. Microinstructiunea p este sparta in 2 microinstructiuni: p’TIP=CMD (C) si p’’TIP=tranzitie (T).



Pentru toate microinstructiunile de tip C, campul CI trebuie sa emita codul canalului de intrare care este legat la “1” (t=1). Pentru toate microinstructiunile de tip T, CI emite codul starii x(p’). COUT este independent de CI si AD).



Lungimea microinstructiunii este maximul dintre l(COUT) si l(CI)+l(AD0). C/T indica daca microinstructiunea are tipul C sau tipul T. Daca C=1, atunci este de tip C, atfel de tip T.



VALID reprezinta o intrare a registrului care permite incarcarea informatiei din COUT in registrul ROUT. COUTS se incarca in momentul trecerii din p’ in p’’.



Structuri microprogramate cu mai multe adrese de specificare a tranzitiei

Intr-un limbaj de ASM al unui microprocesor se utilizeaza un repertoriu de instructiuni. Intr-un microprocesor, instructiunea e specificata pe un numar de biti. Prin inlantuirea mai multor instructiuni se asigura programarea in ASM (cod masina).



DECI reprezinta starea in care se incepe decodificarea instructiunii (8 biti). I0-I255 reprezinta adresa de intrare a descrierii concrete a fiecarei instructiuni din repertoriu. Dupa ce controlerul secvential definitiveaza executia instructiunii, trece trece la citirea unei noi instructiuni din zona de program a memoriei. Structura se bazeaza pe varianta cu MUX cablata, in care emitatorii de salt vor fi AD0, AD1 si DECI.



Registrul RINSTR este LD cu codul instructiunii ce urmeaza a fi executata, care se incarca se catre ceas putand fi validat de semnalele de control generate de catre microprogram (T/B). Semnalul T/B are rolul de a activa LD RINSTR si blocul TRI pe magistrala ADV. TRI=translator de instructiuni. Din DECI se trece in I0 daca TRI emite codul I0. Dupa procesul de decodificare, circuitul trece in regimul de lucru al unei structuri cu 2 adrese. CS0 se obtine doar cand T/B=0 si t=0, adica t+T/B, iar CS1 cand t(negat)+T/B.

ADV reprezinta adresa de tranzitie multipla.

Implementarea conceptului de procedura si macroinstructiunea in structura microprogramului paralel

In cadrul unui microprogram care implementeaza un algoritm de executie, este necesar ca anumite activitati sa fie repetate in diverse momente sau zone de executie de microprogram. Aceste activitati specifice, impun proiectarea unui set de microinstructiuni care se particularizeaza in functie de zona in care a ajuns microprogramul. Aceste activitati se definesc prin conceptul de macroinstructiune. Macroinstructiunea reprezinta un set de microinstructiuni care se insereaza intr-un anumit algoritm unde este necesar pentru executie. Un procesor aritmetic vectorial este dotat cu un algoritm de inmultire a doua matrice: M1(i,j) si M2(j,k) => M(i,k). Pentru determinarea unui singur element din matrice sunt necesare j inmultiri si j adunari. CALL=apelare. RETURN= intoarce la microprogramul apelant. Programul care apeleaza procedura se numeste program principal, adica CALL se realizeaza de programul principal, iar RETURN desfasoare executia procedurii. In cazul unei stive avem: PUSH=incarca si POP=reda controlul programului principal. Stiva poate fi organizata ca o memorie de tip volatil a carei adresare este realizata de registrul StockPointer=STK/STKPO.



POP extrage din stiva valoarea de la STKPO, apoi incrementeaza cu 1 si incarca in RAD. Celula stiva e conectata pe ADV.

PUSH=Count Up (STKPO)

POP=Count Down (STKPO)

In STK se va memora, pentru o adresa de n biti, RAD(1) in loc de RAD(0), si se injecteaza in stiva “1”.

Daca DIR=1, atuci se incrementeaza, iar pentru DIR=0 se decrementeaza. CS0 si CS1 sunt determinate de T/B, R si t.




TRI=1 => CSTRI



R=0 => STACK




Yüklə 224,81 Kb.

Dostları ilə paylaş:
1   2   3




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin