Sunteți pe pagina 1din 24

Universitatea Politehnica Bucureti

Facultatea de Electronica,Telecomunica ii i Tehnologia Informa iei

Proiect 2

Student: Voicu Eduard-Robert Grupa: 432A

Sisteme cu microprogramare hibrid

Cuprins
1. Introducere sisteme de calcul 2. Sisteme microprogramate 2.1. Principiul calculatoarelor microprogramate 2.2. Structura unei unit i de comand microprogramate 3. Microprogramarea pe orizontal 3.1 Exemplu de sistem de calcul microprogramat pe orizontal 3.1.1. Structura cii de date 3.1.2. Formatul microinstruc iunilor 3.1.3. Secven ierea microinstruc iunilor 4. Microprogramarea pe vertical 4.1 Exemplu de sistem de calcul microprogramat pe vertical 4.1.1. Microinstruciunile verticale 4.1.2. Structura sec iunii de control 5. Microprogramarea hibrid - concluzii 5. Bibliografie

1. Introducere
Sistem de calcul
Calculatorul este o maina care prelucreaz informaiile automat. Pentru aceasta trebuie s i se furnizeze datele pe care trebuie s le prelucreze (datele de intrare) i o list de instruciuni (programul), care s i indice cum s prelucreze aceste date. Daca pentru a ajunge la un rezultat trebuie s execute mai multe operaii, el le va efectua pe rand. Operaiile i ordinea acestora i sunt specificate calculatorului prin intermediul programului. Calculatorul va furniza utilizatorului rezultatele obinute n urma prelucrrii (date de ieire). In timpul prelucrrii pot s apara i date intermediare. Pentru a putea realiza aceste operaii, calculatorul este alctuit din doua componente:

Echipamentele fizice (partea material) - HARDWARE Programele si datele (partea logic) SOFTWARE

Hardware-ul. reprezint echipamentele fizice din care este alctuit un sistem de calcul, n care circuitele electronice prelucreaz automat informaiile i asigur comunicarea ntre utilizator i sistem. Von Newmann a stabilit c hardware-ul trebuie s asigure urmtoarele funcii:
1. funcia de memorare; 2. funcia de comand si control; 3. funcia de prelucrare; 4. funcia de intrare-ieire.

Funcia de memorare asigur memorarea datelor i a programelor i are ca suport memoria intern i memoria externa. n memoria intern sunt stocate programele i datele care sunt n lucru la un moment dat. n memoria extern sunt stocate toate programele i datele de care poate avea nevoie, n diferite situaii, sistemul de calcul. Funcia de comand i control asigur:

extragerea instruciunilor din memoria intern; analiza instruciunilor; comanda de executare a unei operaii; extragerea datelor de intrare din memoria intern; aranjarea datelor de ieire in memoria intern. Funcia este realizat de Unitatea de Comand si Control.

Funcia de prelucrare asigur efectuarea operaiilor aritmetice (adunare, scdere, nmulire i mprire) i logice (AND, IF, NOT). Funcia este realizat de Unitatea Aritmetic Logic.

Funcia de intrare-ieire asigur introducerea datelor i a programelor n memoria interna i furnizarea rezultatelor. Arhitectura unui calculator defineste un set de reguli prin care subansamblele hardware sunt conectate fizic, fara sa se tina cont de amplasarea lor. Subansamblele sunt definite dupa functia asigurata:

unitatea de comanda si control; unitatea aritmetica-logica; unitatea de memorie interna; unitatea de memorie externa; unitatile de intrare-iesire.

1. Unitatea Central de Prelucrare (Central Processing Unit CPU) sau Procesorul, este creierul calculatorului care coordoneaz i controleaz ntreaga lui activitate. Procesorul interpreteaz programele, identific instruciunile din program, decodific o instruciune, recunoate codurile operaiilor, activeaza circuitele electronice corespunztoare i executa operaii aritmetice i logice. Astzi, UCP-ul se bazeaz pe un singur circuit integrat, numit microprocesor. Circuitul integrat este o capsul n interiorul creia se gsesc sute de mii de circuite electronice. Acesta se mai numete i cip(chip) i se monteaza pe placa calculatorului. Microprocesorul este format din circuite electronice cu ajutorul crora el poate interpreta i executa instruciunile. Instruciunile reprezint codificarea comenzilor de operaii pe care trebuie s le execute calculatorul. Deoarece calculatorul este o masina cu doua stri, aceste instruciuni vor fi iruri de cifre binare, iar codul folosit se numete cod masin. Setul de instruciuni pe care microprocesorul l nelege i l executa se numete limbaj masin. Pentru executarea operaiilor, unitatea aritmetic-logica dispune de o memorie proprie, de dimensiuni reduse, organizat sub forma de registre. Atunci cnd procesorul execut o instruciune, din memoria interna sunt aduse in registre operaiile pe care trebuie s le execute UAL. Microprocesorul poate executa urmtoarele operaii:

cele patru operaii aritmetice de baz : adunarea , scderea, nmulirea i mprirea; operaiile logice: AND, OR, NOT i XOR, cu ajutorul crora se poate controla ordinea n care se execut operaiile, folosind: textul, adic operaia de comparare ntre dou operaii; saltul condiionat, adic executarea unei anumite instruciuni n funcie de o condiie; repetiia, adica executarea repetata a unei secvene de instruciuni.

2. Memoria interna este locul n care sunt aduse programele i datele pentru a fi prelucrate de procesor. ntrucat toate instruciunile i datele sunt codificate ntr-o reprezentare binar, memoria va depozita secvene de bii. Fiecare bit este reprezentat printr-un comutator electronic individual, cu dou stri:

comutator ON cifra binar 1; comutator OFF cifra binar 0. se masoar n unitai de msur a

Capacitatea de stocare a memoriei informaiei: Ko, Mo i Go sau Kb, Mb i Gb.

Informaia (instruciunile i datele) se gasete n memoria inter sub forma de cifre binare grupate n octei sau n cuvinte pe care le prelucreaz procesorul. Memoria intern este mprita n locaii de memorie (octei) identificate printr-o adres unic. Adresa este un cuvnt binar prelucrat de procesor, prin care acesta identific poziia unei locaii din memorie. 3. Unitatea de intrare-ieire asigura comunicarea calculatorului cu mediul prin intermediul unor echipamente specializate, numite Dispozitive Periferice. Aceste dispozitive sunt:

dispozitive de intrare; dispozitive de ieire; dispozitive de intrare-ieire. memoriile externe.

a) Dispozitivele de intrare asigura transmiterea informaiilor i comenzilor ctre calculator prin operaia de citire (READ). Din aceast categorie fac parte: tastatura, mouse-ul, cititorul de cartele, cititorul de band perforata, creionul optic, stiloul electronic, scanerul, microfonul, etc. Informaiile citite pot fi: texte, imagini, muzic, comenzi vocale, valori analogice. Indiferent de tipul informaiei, principiul de funcionare al unui dispozitiv de intrare este acelai: preia informaia, o mparte n unitai conform unui algoritm propriu, codifica fiecare unitate ntr-o secvena de bii i transmite aceti bii procesorului. b) Dispozitivele de ieire sunt folosite pentru a comunica utilizatorului rezultatele operatiilor executate si informatii despre stare sistemului prin informatii de scriere (WRITE). Din aceasta categorie fac parte: monitorul, imprimanta, ploterul, difuzorul. Aceste dispozitive primesc secvente de biti de la procesor pe care le decodifica, astfel incat sa poata fi intelese de utilizator sub forma naturala. c) Dispozitivele de intrare-iesire sunt utilizate pentru a realiza comunicarea n ambele sensuri, prin operaii de CITIRE i SCRIERE. Din aceasta categorie fac parte: interfaa de , consola, placa multimedia. Suporturile de informaie sunt obiecte folosite de calculator pentru a transmite informaii intre sistem i utilizator. Acestea pot fi: hartia, dispozitivele electromagnetice, etc. 4. Memoria extern este un suport electromagnetic reutilizabil, pe care informaia se pastreaza codificat sub form binara, prin magnetizarea particulelor feromagnetice dupa doua direcii de magnetizare, corespunzatoare celor doua cifre binare. Pastrarea informaiilor in afara sesiunii de lucru se face in memoria extern. Suporturile electromagnetice folosite ca memorii externe sunt: banda magnetic, discul magnetic, caseta magnetic. Pe baza componentelor prezentate mai nainte, rezult c un calculator poate avea o configuraie minim i o configuraie maxim. Configuraia minim este dat de numrul minimum de componente necesar pentru ca sistemul s fie operaional i cuprinde, de regul: procesorul, memoria intern, o unitate de memorie extern, tastatur si display-ul. Configuraia maxim este dat de numrul maxim de componente care pot fi conectate la procesor. ntre configuraia minim i configuraia maxim, utilizatorul o poate alege pe cea care s corespunda aplicaiilor dorite i posibilitailor financiare. Software-ul sistemului de calcul este format din programele destinate s asigure conducerea i controlul procesului de prelucrare a informaiei, precum i efectuarea unor lucrri curente.

Programul este o colecie organizat de comenzi de operaii care sunt transmise calculatorului. Aceste comenzi se numesc instruciuni. Ele sunt codificate n modul binar i sunt tratate de unitatea de comand i control. n instruciune nu se precizeaz operaii, ci adresele de memorie interna la care se gsesc aceti operanzi. De exemplu, o instruciune conine urmtoarele informaii:

codul operaiei de executat; adresa primului operand; adresa celui de-al doilea operand; adresa locaiei de memorie a rezultatului. Software-ul este format din dou componente:

sistemul de operare; programele de aplicaie.

SISTEMUL DE OPERARE cuprinde programele de baz care controleaz ntreaga activitate a calculatorului. Acesta asigur legtura dintre componentele logice i fizice ale sistemului, i este furnizat mpreuna cu sistemul de calcul de ctre firma productoare. PROGRAMELE DE APLICAIE sunt mulimi organizate de instruciuni care se atribuie calculatorului pentru a efectua operaiile specifice unei anumite aplicaii. Programele de aplicaie sunt scrise de programatori la cererea utilizatorilor i codific, ntr-un limbaj de programare, algoritmul de rezolvare al problemei respective.

Sistemul de operare gestioneaz resursele calculatorului, care sunt de dou tipuri:


resurse fizice componentele hardware; resurse logice componentele software.

Cele mai importante caracteristici ale unui sistem de calcul sunt:


capacitatea de memorare; viteza de prelucrare a informaiei; controlul prin programare; precizia executiei.

2. Sisteme microprogramate
Principiul calculatoarelor microprogramate
Calculatoarele microprogramate se caracterizeaz prin faptul c semnalele de comand sunt reunite sub forma unor succesiuni de cifre binare, n cuvinte numite cuvinte de comand. Succesiunea cuvintelor de comand prin care se indic secvena corect a operaiilor elementare (microoperaiilor) care trebuie executate pentru fiecare instruciune este memorat ntr-o memorie de comand (numit i memorie de control). Fiecare cuvnt de comand memorat n memoria de control reprezint o microinstruciune i execut una sau mai multe microoperaii. Secvena microinstruciunilor formeaz un microprogram. Deosebirea principal dintre un calculator cu o unitate de comand cablat i unul cu o unitate de comand microprogramat const n modul n care unitatea de comand trece dintr-o stare n alta pentru a genera semnalele de comand, astfel: n cazul cablat, o stare corespunde unei faze, caracterizat prin activarea unui semnal de faz. ntr-o faz sunt generate anumite semnale de comand necesare execuiei unei instruciuni. n cazul microprogramat, o stare corespunde unei microinstruciuni, care codific microoperaiile care trebuie executate n timpul aceluiai ciclu de ceas. Pentru execuia unei instruciuni a calculatorului, este necesar execuia unei secvene de microinstruciuni. O unitate de comand microprogramat are dou funcii principale: funcia de control propriu-zis, prin care se definesc microoperaiile care trebuie executate.Aceast definire cuprinde de obicei selecia operanzilor, a operaiei de executat, selecia destinaiei rezultatului etc. funcia de secveniere, prin care se definete adresa microinstruciunii urmtoare. Aceast definire se refer la identificarea sursei pentru adresa urmtoare, la controlul condiiilor de test sau la generarea direct a valorii adresei.

Structura unei uniti de comand microprogramate


n figura urmtoare se prezint elementele principale ale unei uniti de comand microprogramate.

Microinstruciunile sunt pstrate n memoria de control. Registrul de microadrese RMA conine adresa urmtoarei microinstruciuni care se va citi din memoria de control. Dup citire, microinstruciunea este transferat n registrul de microinstruciuni RMI. Prin acest registru se activeaz semnalele de control. Citirea unei microinstruciuni din memoria de control este echivalent cu execuia microinstruciunii respective. Logica de secveniere ncarc registrul de microadrese i activeaz semnalul se citire. Comparativ cu o unitate de comand cablat, unitatea microprogramat are aceleai intrri (registrul de instruciuni RI, indicatorii de condiii ai UAL, semnalul de ceas) i ieiri (semnalele de comand).

Unitatea de comand funcioneaz astfel: 1. Pentru execuia unei instruciuni, logica de secveniere activeaz semnalul de citire a memoriei de control. 2. Cuvntul a crei adres se specific n registrul de microadrese este citit n registrul de microinstruciuni. 3. Coninutul registrului de microinstruciuni activeaz semnalele de comand i genereaz informaii despre adresa urmtoare pentru logica de secveniere. 4. Logica de secveniere ncarc o nou adres n registrul de microadrese, pe baza informaiilor despre adresa urmtoare de la registrul de microinstruciuni i a indicatorilor de condiii ai UAL. n figura de mai sus exist dou decodificatoare. Primul decodificator translateaz codul operaiei din registrul de instruciuni RI ntr-o adres a memoriei de control. Al doilea decodificator nu este utilizat pentru microinstruciunile orizontale, ci pentru cele verticale. Acest decodificator translateaz codul operaiei din cadrul microinstruciunii n semnale de comand individuale. Memoria de control poate fi de tip ROM sau de tip RAM. n ultimul caz, coninutul acestei memorii se poate modifica sub controlul microprogramului, rezultnd o microprogramare dinamic. O structur de acest tip este denumit n mod uzual Writable Control Store i permite utilizatorilor s ncarce microprograme proprii n vederea extinderii setului de instruciuni existent. Unele structuri au o configuraie mixt, existnd att o memorie ROM, ct i o memorie de tip RAM. O parte din microprograme sunt fixe, iar altele pot fi pstrate temporar n memoria RAM. Dac trebuie executat o anumit instruciune i microprogramul asociat acesteia nu se afl n memoria RAM, este necesar ncrcarea acestui microprogram ntr-un spaiu liber din memorie. n acest caz, trebuie s existe posibilitatea de a ncrca un microprogram la orice adres de memorie. Adresele de salt ntr-un astfel de microprogram nu pot fi absolute, ci trebuie s fie relative, de obicei fa de adresa primei microinstruciuni din microprogram. Avantajul principal al utilizrii microprogramrii pentru implementarea unitilor de comand este simplificarea proiectrii acestora. O unitate de comand cablat trebuie s conin o logic complexpentru secvenierea microoperaiilor din ciclul de instruciune. n schimb, decodificatoarele i logica de secveniere utilizate ntr-o unitate de comand microprogramat sunt simple. Dezavantajul principal al unitilor de comand microprogramate este c acestea sunt mai lente dect cele cablate realizate ntr-o tehnologie comparabil. n mod obinuit, o microinstruciune este executat pe durata a dou perioade de ceas, necesare pentru citirea microinstruciunii, respective pentru activarea semnalelor de comand. La un calculator cu o unitate de comand cablat, fiecare microoperaie se execut ntr-o perioad de ceas. Exist diferite soluii pentru creterea vitezei, dintre care se amintesc urmtoarele: utilizarea unei memorii de control cu un timp de acces redus; suprapunerea execuiei microinstruciunii curente cu extragerea din memoria de control a microinstruciunii urmtoare; reducerea numrului de microinstruciuni, executnd mai multe operaii concurente pe durata unui ciclu de microinstruciune; combinarea microprogramrii cu comanda cablat, prin generarea de ctre fiecare microinstruciune a unei secvene de comand pentru mai multe cicluri de microoperaii.

3. Microprogramarea pe orizontal
n cazul microprogramrii pe orizontal, o microinstruciune este format din urmtoarele cmpuri principale (figura urmatoare):

Una sau mai multe cmpuri ale semnalelor de comand, prin care se activeaz semnalele de comand pentru controlul circuitelor. Cmpul de adres, care conine adresa urmtoarei microinstruciuni care se va executa dac o anumit condiie este adevrat. Dac aceast condiie este fals, se va executa urmtoarea microinstruciune din memoria de control.

Cmpul de condiii, care selecteaz urmtoarea microinstruciune care va fi executat.

Formatul general al unei microinstruciuni orizontale.

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 care se efectueaz saltul. O asemenea microinstruciune este interpretat astfel: 1. Pentru execuia microinstruciunii, se activeaz toate semnalele de comand crora le cores punde un bit de 1 n cmpul semnalelor de comand, i se dezactiveaz cele crora le corespunde un bit de 0. Semnalele de comand care vor fi activate determin execuia uneia sau a mai multor microoperaii. 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 execut micr instruciunea indicat de cmpul de adres. Microprogramarea pe orizontal se mai numete microprogramare hardware. Microinstruciunile au n acest caz o lungime mare i controleaz mai multe resurse hardware care funcioneaz n paralel. Fiecrei resurse din calculator i se aloc un cmp sau un bit prin care resursa este controlat. Semnificaiile asociate cmpurilor microinstruciunii nu depind de semnificaiile altor cmpuri. Nici un cmp nu poate avea, pentru valori identice coninute de cmpul respectiv, dou sau mai multe semnificaii distincte.

Dezavantajul microprogramrii pe orizontal este c nu se pot utiliza n mod eficient biii din cuvntul de microprogram. Nu toate microinstruciunile aloc semnificaii utile tuturor cmpurilor disponibile. Se poate concepe un cuvnt de microprogram cu un numr mai redus de bii, a cror semnificaie s depind de microinstruciunea respectiv. La limit, se poate obine un cuvnt de microprogram cu numai dou cmpuri: primul cmp conine un cod prin care se aloc celui de-al doilea cmp diferite semnificaii. Acest tip de microprogramare se numete microprogramare pe vertical. Toate resursele calculatorului sunt controlate de acelai cmp n momente distincte de timp, indicate de cmpul de semnificaii. Structura unui calculator care utilizeaz microprogramarea pe vertical poate fi simpl, dar viteza de execuie scade proporional cu numrul de semnificaii distincte ale cmpului de cod al microinstruciunii. Microinstruciunile verticale execut operaii simple, de exemplu: ncrcare, memorare, adunare, salt. Acest tip de microinstruciuni sunt asemntoare cu instruciunile n limbaj main, care conin un cod de operaie i unul sau mai muli operanzi, motiv pentru care microprogramarea pe vertical se mai numete microprogramare software. n practic, se utilizeaz microinstruciunile hibride, care combin caracteristicile microinstruciunilor orizontale cu cele verticale: au o capacitate mrit de control simultan al resurselor hardware ale calculatorului, i, n acelai timp, sunt uor de neles i de implementat. Lungimea unei microinstruciuni depinde nu numai de tipul acesteia (orizontal sau vertical), ci i de gradul de codificare. Microinstruciunea cea mai simpl nu este codificat deloc, astfel nct fiecrui bit i corespunde un semnal de comand. Aceast soluie ofer flexibilitate maxim, deoarece schimbarea unui microprogram necesit numai modificarea coninutului memoriei de control. Codificarea pe grupuri presupune combinarea n cmpuri diferite a biilor care controleaz resursele mutual exclusive ale calculatorului. Fiecrui cmp i se ataeaz un decodificator. La cealalt extrem, se poate realiza codificarea complet a microinstruciunii. Aceast soluie necesit un numr minim de bii pentru cuvntul de microinstruciune, dar flexibilitatea oferit este de asemenea minim.

Exemplu de calculator microprogramat pe orizontal


Structura cii de date
Microarhitectura care se prezint ca exemplu (figura de mai jos) conine 16 registre, care formeaz o memorie de lucru. Dintre acestea, sunt accesibile la nivelul instruciunilor (macroinstruciunilor) urmtoarele registre: PC AC SP Contor de program (Program Counter); Registru acumulator (Accumulator); Registru indicator de stiv (Stack Pointer).

Celelalte registre sunt accesibile numai la nivel de microprogramare. Acestea sunt urmtoarele: IR TIR Register); 0, +1, -1 AMASK, BMASK A, B, ..., F Registre care pstreaz constantele 0, +1, respectiv -1; Registre care pstreaz mti utilizate pentru extragerea unor cmpuri din cadrul cuvntului de instruciune; Registre care nu au funcii specificate. Registru de instruciuni (Instruction Register); Registru de instruciuni temporar (Temporary Instruction

Funcia UAL este selectat prin semnalele F0 i F1. UAL genereaz doi indicatori de stare: N (Negativ) i Z (Zero). Ieirea UAL este conectat la circuitul de deplasare, care poate efectua deplasarea la dreapta i la stnga cu o poziie. Este posibil deplasarea la stnga cu dou poziii a unui registru R, prin calcularea sumei R+R i deplasarea sumei la stnga cu o poziie. Funcia circuitului de deplasare este selectat prin semnalele S0 i S1. i LB. Magistralele A i B sunt conectate la UAL prin intermediul a dou circuite latch, LA

Acestea sunt necesare deoarece UAL este un circuit combinaional care calculeaz n mod continuu ieirea pentru intrrile curente i funcia selectat. Aceast organizare poate crea probleme n cazul unor instruciuni de forma A := A+B. Dup memorarea rezultatului n A, valoarea de pe magistrala A se modific, ceea ce face ca ieirea UAL i valoarea de pe magistrala C s se modifice de asemenea. n consecin, valoarea eronat se poate memora n A. Prin inserarea circuitelor latch pe magistralele A i B, acestea vor memora valorile iniiale A i B, astfel nct UAL este protejat fa de schimbrile de pe magistrale atunci cnd o nou valoare este memorat n registrele de lucru. ncrcarea LA i LB este controlat prin semnalele L0 i L1. Pentru comunicarea cu memoria, microarhitectura conine dou registre: registrul de adrese al memoriei MAR (Memory Address Register) i registrul de date al memoriei MBR (Memory Buffer Register). Registrul MAR se poate ncrca din LB, n paralel cu o operaie a UAL; ncrcarea este validat de semnalul M0. Registrul MBR se poate ncrca cu ieirea circuitului de deplasare n paralel cu, sau n locul memorrii n registre; semnalul de validare este M1. nscrierea n memorie din registrul MBR este validat de semnalul M2, iar citirea din memorie n registrul MBR este validat de semnalul M3. Data citit din memorie se poate aplica la intrarea din stnga a UAL prin multiplexorul AMUX. Semnalul A0 determin dac la intrarea UAL se aplic coninutul LA sau MBR.

Formatul microinstruciunilor
Pentru stabilirea formatului microinstruciunilor orizontale, trebuie s se precizeze mai nti toate semnalele necesare controlului cii de date. Acestea se pot mpri n urmtoarele grupe funcionale (se indic numrul de semnale din fiecare grup): 16 16 16 2 1 2 2 4 2 ncrcarea magistralei A; ncrcarea magistralei B; ncrcarea registrelor de pe magistrala C; Controlul circuitelor latch LA i LB (L0, L1); Controlul AMUX (A0); Controlul funciei UAL (F0, F1); Controlul circuitului de deplasare (S0, S1); Controlul registrelor MAR i MBR (M0, M1, M2, M3); Citirea sau scrierea din / n memorie (RD, WR).

Ca o prim soluie, se poate utiliza un registru de control de 61 bii, cu un bit pentru fiecare semnal de control. Se poate reduce numrul biilor necesari pentru controlul cii de date, cu preul unei creteri a numrului de circuite. Informaia de control pentru magistrala A se poate codifica pe 4 bii, utiliznd un decodificator pentru a genera cele 16 semnale de control. n mod similar se poate codifica informaia de control pentru magistrala B. n cazul magistralei C, n principiu este posibil memorarea simultan a unei valori n mai multe registre, dar aceast facilitate nu este util n practic. De aceea, se poate codifica i informaia de control pentru magistrala C. Se reduce astfel numrul de semnale cu 3*12 = 36, fiind necesare deci 25 de semnale. Semnalele L0 i L1 se pot nlocui cu semnalul de tact, deoarece aceste semnale sunt necesare ntotdeauna. Numrul de semnale necesare va fi atunci 23. Un semnal adiional care poate fi util este cel pentru validarea sau invalidarea memorrii coninutului magistralei C n registre. n anumite situaii, se dorete efectuarea unei operaii prin UAL pen- tru a poziiona indicatorii de stare N i Z, fr memorarea rezultatului. Acest semnal se va nota cu ENC (ENable C). n acest moment, exist 24 semnale de control. Semnalul RD se poate utiliza pentru a controla ncrcarea registrului MBR de pe magistrala sistem (n locul semnalului M3), iar semnalul WR se poate utiliza pentru a controla transferul acestui registru pe magistrala sistem (n locul semnalului M2). Aceast observaie reduce numrul semnalelor independente de control la 22.

Formatul microinstruciunilor orizontale.

n continuare se stabilete formatul microinstruciunilor. n figura de mai sus se indic un asemenea format, n care exist dou cmpuri adiionale: COND i ADR. Microinstruciunea conine 13 cmpuri, acestea fiind urmtoarele: AMUX COND UAL Controleaz intrarea din stnga a UAL: 0 = LA; 1 = MBR. Condiia de salt: 00 = fr salt; 01 = salt dac N = 1; 10 = salt dac Z = 1; 11 = salt necondiionat. Funcia UAL: 00 = A+B; 01 = A AND B; 10 = A; 11 = NOT A.

SH Funcia circuitului de deplasare: 00 = fr deplasare; 01 = deplasare la dreapta; 10 = deplasare la stnga. MBR ncrcarea MBR de la circuitul de deplasare: 0 = fr ncrcare; 1 = cu ncrcare. MAR RD WR ENC ncrcarea MAR din LB: 0 = fr ncrcare; 1 = cu ncrcare. Citire din memorie: 0 = fr citire; 1 = ncrcare MBR din memorie. Scriere n memorie: 0 = fr scriere; 1 = scriere MBR n memorie. Controlul memorrii n registre: 0 = fr memorare; 1 = cu memorare.

C Selecia registrului pentru memorare, dac ENC = 1: 0000 = PC, 0001 = AC, 0010 = SP etc. B A ADR Selecia sursei pentru magistrala B: 0000 = PC, 0001 = AC, 0010 = SP etc. Selecia sursei pentru magistrala A: 0000 = PC, 0001 = AC, 0010 = SP etc. Adresa de salt (0 - 255).

Secvenierea microinstruciunilor
Un ciclu de baz al UAL const din ncrcarea circuitelor latch LA i LB, efectuarea operaiei de ctre UAL i circuitul de deplasare, i memorarea rezultatului. Pentru a asigura secvenierea corect a operaiilor, se introduce un ceas cu 4 faze (subcicluri). Operaiile din fiecare subciclu sunt urmtoarele: 1. Se ncarc urmtoarea microinstruciune de executat n registrul de microinstruciuni RMI. 2. Se depune coninutul registrelor pe magistralele A i B i se memoreaz acest coninut n LA i LB. 3. Dup ce intrrile sunt stabile, se acord timp pentru ca UAL i circuitul de deplasare s genereze o ieire stabil i se ncarc registrul MAR, dac este necesar. 4. Dup ce ieirea circuitului de deplasare este stabil, se memoreaz coninutul magistralei C n registre i se ncarc registrul MBR, dac aceste operaii sunt necesare. Calea de date se completeaz cu o seciune de control. Schema bloc detaliat este prezentat n figura de mai jos. Memoria de control MC este o memorie rapid care pstreaz microinstruciunile. Microinstruciunile sunt de 32 de bii, iar spaiul de adresare este de 256 de cuvinte. Registrul de adrese al memoriei de control este contorul de microprogram MPC (Micro Program Counter), iar registrul de date al MC este registrul de microinstruciuni RMI.

Schema bloc detaliat a arhitecturii care utilizeaz microprogramarea pe orizontal.

n subciclul 1 se ncarc registrul de microinstruciuni RMI din memoria de control.

n subciclul 2 coninutul RMI este stabil, diferitele sale cmpuri controlnd calea de date. Decodificatoarele DEC A i DEC B efectueaz o decodificare 4:16 a fiecrui cmp, pentru a controla semnalele de validare a ieirilor registrelor. n acelai subciclu, semnalul de ceas activeaz circuitele latch LA i LB, furniznd intrri stabile pentru UAL n restul ciclului. n timpul depunerii datelor pe magistralele A i B, se incrementeaz MPC pentru a se genera adresa urmtoarei microinstruciuni. n subciclul 3 UAL i circuitul de deplasare produc rezultate valide. Dei UAL este un circuit combinaional, timpul necesar pentru generarea rezultatului este determinat de timpul de propagare al transportului, i nu de ntrzierile prin pori. n subciclul 4 coninutul magistralei C poate fi memorat n registrele de lucru i n registrul MBR. Decodificatorul DEC C are ca intrri cmpul ENC, a patra linie a generatorului de ceas i cmpul C, genernd 16 semnale de control. Un registru este ncrcat dac sunt ndeplinite urmtoarele condiii:

ENC = 1; Este subciclul 4; Registrul a fost selectat de cmpul C.

Registrul MBR este de asemenea ncrcat n subciclul 4 n cazul n care cmpul MBR este 1. Este necesar un mecanism pentru a permite salturi condiionate, pentru a se putea lua diferite decizii. n acest scop s-au prevzut dou cmpuri n fiecare microinstruciune: ADR, care este adresa succesorului potenial al microinstruciunii curente, i COND, care determin dac urmtoarea microinstruciune este ncrcat din contorul de microprogram MPC sau din cmpul ADR. Fiecare microinstruciune conine n mod potenial un salt, deoarece aceste salturi sunt des utilizate n microprograme. Permind ca fiecare microinstruciune s aib doi succesori, viteza de execuie va fi mai ridicat. Selectarea microinstruciunii urmtoare se efectueaz de circuitul de microsecveniere (MS) n timpul subciclului 4, cnd indicatorii de stare N i Z ai UAL sunt valizi. Circuitul MS combin indicatorii N i Z cu cei doi bii ai cmpului COND, pentru a genera un semnal de ieire. Ieirea circuitului MS controleaz multiplexorul MMUX. Accesul la memorie dureaz considerabil mai mult dect timpul necesar pentru execuia unei singure microinstruciuni. Pentru ca exemplul s fie mai realist, se va presupune c dac o microinstruciune ncepe citirea memoriei, prin activarea semnalului RD, trebuie ca acest semnal s fie activ i n timpul urmtoarei microinstruciuni executate. Data devine disponibil dup dou microinstruciuni din momentul n care este iniiat citirea.

4. Microprogramarea pe vertical
Pentru a clarifica distincia dintre microprogramarea pe orizontal i cea pe vertical, se va reproiecta microarhitectura prezentat, astfel nct s se utilizeze microinstruciuni verticale.

Microinstruciunile verticale
Microinstruciunile verticale vor conine trei cmpuri de cte 4 bii, cu un total de 12 bii. Primul cmp, notat cu OP, conine codul operaiei. Celelalte dou cmpuri sunt notate cu R1 i R2, specificnd dou registre. Cmpul R1 controleaz att magistrala A, ct i magistrala C. Pentru microinstruciunile de salt, aceste dou cmpuri sunt combinate pentru a forma un singur cmp de 8 bii, notat prin R. Fiecare microinstruciune vertical execut o singur funcie. Sunt necesare microinstruciuni diferite pentru operaiile UAL, citirea i scrierea memoriei, efectuarea salturilor n microprogram etc., deoarece cmpurile care controleaz aceste funcii nu mai sunt prezente. Lista microinstruciunilor verticale este prezentat n tabelul urmator:
Lista microinstruciunilor verticale.

Cod op. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011

Mnemonic ADD AND MOVE COMPL LSHIFT RSHIFT STMBR TEST BEGRD BEGWR CONRD CONWR

Semnificaie Adunare I logic Transfer ntre registre Complement logic Deplasare la stnga Deplasare la dreapta Memorare MBR n registru Test registru nceput citire nceput scriere Continuare citire Continuare scriere r1:=r1+r2

Operaii

r1:=r1 AND r2 r1:=r2 r1:=inv(r2) r1:=lshift(r2) r1:=rshift(r2) r1:=mbr if r1<0 then n:=1, if r1=0 then z:=1 mar:=r1; rd mar:=r1; mbr:=r2; wr rd wr

Structura seciunii de control


Calea de date este identic cu cea a arhitecturii care utilizeaz microprogramarea pe orizontal. Structura seciunii de control este modificat.

O mare parte a seciunii de control este aceeai. Memoria de control i registrul de microinstruciuni RMI conin cuvinte de 12 bii. Decodificatoarele 4:16 DEC R1 i DEC R2 pentru cmpurile R1, respectiv R2, sunt similare cu cele pentru cmpurile A, B i C ale microinstruciunilor orizontale. Diferenele principale sunt reprezentate de circuitele notate cu AND, NZ i DEC OP.

Circuitul AND este necesar deoarece cmpul R1 controleaz acum att magistrala A, ct i magistrala C. Magistrala A este ncrcat n timpul subciclului 2, dar registrele nu pot fi ncrcate de pe magistrala C doar dup ce coninutul circuitelor latch LA i LB este stabil, n subciclul 3. Se execut funcia I logic ntre cele 16 semnale decodificate de ctre circuitul DEC R1, semnalul de ceas corespunztor subciclului 4, i un semnal de la circuitul DEC OP, semnal care este echivalent cu vechiul semnal ENC. Rezultatul este c cele 16 semnale care valideaz ncrcarea datelor n registre sunt activate n aceleai condiii ca i la utilizarea microinstruciunilor orizontale. NZ este un registru de 2 bii care este utilizat pentru memorarea indicatorilor N i Z ai UAL. Aceast memorare este necesar deoarece UAL va executa operaia pe durata unei microinstruciuni, dar indicatorii de stare nu vor fi testai dect n urmtoarea microinstruciune. Deoarece UAL nu are memorie intern, iar indicatorii de stare sunt actualizai la o nou operaie n care este implicat UAL, valoarea indicatorilor se poate pierde dac acetia nu se memoreaz. Circuitul DEC OP are ca intrri cei 4 bii ai cmpului OP din microinstruciune, i genereaz 13 semnale distincte, care controleaz circuitul AND, circuitul de microsecveniere MS, circuitul NZ, multiplexorul AMUX, UAL, circuitul de deplasare DEPL, registrele MAR i MBR. Circuitul DEC OP genereaz de asemenea semnalele RD i WR. Pentru fiecare microinstruciune, trebuie s se determine care din cele 13 semnale sunt active. Pentru controlul UAL, a circuitului de deplasare i a circuitului de microsecveniere exist cte dou semnale, care sunt notate cu indicii 0 i 1. Valorile semnalelor generate de circuitul DEC OP pentru fiecare microinstruciune sunt indicate n tabelul de mai jos. De exemplu, microinstruciunile ADD, AND, MOVE i COMPL utilizeaz funcia de adunare, funcia I logic, funcia identic, respectiv funcia de complementare logic a UAL. Funcia UAL este selectat cu semnalele UAL1 i UAL0. Ca un alt exem- plu, microinstruciunea BEGRD utilizeaz funcia identic a UAL, ncarc registrul MAR i activeaz semnalul RD. Pentru ca circuitul de microsecveniere s fie compatibil cu cel utilizat la cealalt vari- ant de microarhitectur, semnalele MS1, MS0 trebuie s fie 00 pentru cazul n care nu se execut salt,01 pentru un salt condiionat de indicatorul N (JUMPN), 10 pentru un salt condiionat de indicatorul Z(JUMPZ), i 11 pentru un salt necondiionat (JUMP). Pentru scrierea microprogramelor utiliznd microinstruciunile verticale, se poate utiliza fie o notaie tipic pentru un limbaj de asamblare, fie un limbaj de tipul limbajului MAL. De notat c in struciunea MAL de forma alu:= registru utilizeaz microinstruciunea TEST pentru a seta indicatorii N i Z.

Semnalele de comand generate de circuitul DEC OP.


Cod op. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 Mnemonica UAL1 UAL0 SH1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 SH0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 NZ 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 AMUX 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 AND 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 MAR MBR 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 RD 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 WR 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 MS1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 MS0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1

ADD AND MOVE COMPL LSHIFT RSHIFT STMBR TEST BEGRD BEGWR CONRD CONWR JUMPN JUMPZ JUMP

0 0 1 1 1 1 1 1 1 1 1 1 1 1 1

0 1 0 1 0 0 0 0 0 0 0 0 0 0 0

5. Microprogramarea hibrid concluzii


Microprogramarea hibrid combin avantajele microprogramrii orizontale cu cele ale microprogramrii verticale,deoarece acestea au o capacitate marita de control al resurselor hardware si in acelasi timp sunt usor de inteles si de implementat. Avantajele microprogramrii orizontale sunt: Microinstruciunile au o lungime mare si pot controla mai multe resurse hardware care lucreaz in paralel; Fiecrei resurse din sistem i se aloc un camp sau un bit prin care acea resurs este controlat; Avantajele microprogramrii verticale sunt: Microinstructiunile sunt mai compacte, utiliznd un numar mic de bii;

Bibliografie

www.wikipedia.org Andrew Tanenbaum Structured Computer Organization www.scribd.com

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