Aparate pentru controlul microprogramelor

O abordare fundamental diferită care ne permite să depășim complexitatea CU cu logică rigidă a fost propusă de omul de știință britanic M. Wilks la începutul anilor '50. Ideea se bazează pe faptul că pentru a iniția orice micro-operare este suficient să se genereze semnalul de control corespunzător (SS) pe linia de control corespunzătoare, adică să se transfere o astfel de linie în starea activă. Aceasta poate fi reprezentată prin cifre binare 1 (stare activă - SS) și 0 (stare pasivă - fără SS). Pentru a indica micro-operațiile efectuate într-un anumit ceas, este posibil să se formeze un cuvânt de control în care fiecare bit corespunde unei linii de control. Un astfel de cuvânt de control se numește microcomandă (MK). Astfel, o microcomandă poate fi reprezentată de un cuvânt de control cu ​​propria combinație de zerouri și una. Secvența de microcomenzi care realizează o anumită etapă a ciclului mașinii formează un microprogram. În terminologia în limba engleză, un firmware este adesea denumit firmware, subliniind faptul că este ceva între hardware și software. Microprogramele pentru fiecare comandă VM și pentru fiecare etapă a ciclului de instrucțiuni sunt plasate într-o memorie specială numită memoria firmware-ului. Procesul de formare a unui CS poate fi implementat secvențial (cu fiecare puls de ceas) prin extragerea microinstrucțiilor firmware-ului din memorie și interpretarea informațiilor despre semnalele de control conținute în acestea. Ideea era de interes pentru mulți designeri VM, dar nu era fezabilă, deoarece necesita utilizarea memoriei rapide de capacitate relativ mare. Ei s-au întors în 1964, în timpul creării sistemului IBM 360. De atunci, dispozitivele de control logic programabile au devenit extrem de populare și au fost construite în mai multe VM-uri.







O caracteristică distinctivă a microprogramului cu logică programabilă este stocarea microcomandelor sub formă de coduri într-un dispozitiv de memorie specializat - memoria microprogramelor. Fiecare comandă VM din această memorie în formă explicită corespunde unui microprogram, adesea dispozitive de control, care includ un firmware cu logică programabilă, se numesc microprogram.

Fig. 1. Firmware cu logică programabilă.

unde NMK este numărul total de microcomenzi; NCC reprezintă numărul total de semnale de control generate.

La rândul său, capacitatea necesară a memoriei microprogramelor este

Informații despre care semnalele de control ar trebui să fie generate în timpul executării curentului MC, conținută în formă codificată în porțiunea mikrooperatsionnoy (MO) microinstrucțiunii. O metodă de codificare micro determină în mare măsură complexitatea dispozitivului de control al hardware-ului și caracteristicile sale de performanță. Folosit în exemplele de realizare de codificare a semnalelor de control microinstructiune pot fi reduse la trei grupe: codarea minimă (microprogramarea orizontală), codarea maximă (microprogramare verticală) și codarea run-lungime (microprogramare mixtă). Structuri microprogram automatelor pentru diferite metode de codificare micro prezentate în Fig. 2.

Cu microprogramarea pe orizontală (vezi. Fig. 2a) pentru fiecare semnal de comandă în parte a mikrooperatsionnoy microinstrucțiunii alocat un bit (= NSU RMO). Astfel, un singur microinstrucțiunii forma orice combinație de SU, care asigură performanța maximă a micro-paralelism. Mai mult, nu este nevoie de decodare a registrului MO și ieșirile microinstrucțiunilor pot fi conectate direct la punctele controlate respective VM. cu toate acestea, microprogramarea pe orizontală larg raspandita a preveni costul ridicat de stocare mikrooperatsionnyh piese microinstrucțiuni (EPMP = NMK „NSU), eficiența PMP devine scăzută, un număr mare de micro-op in fiecare MK este realizat doar una sau câteva dintre ele, care este, Majoritatea covârșitoare a categoriilor MO conține zerouri.







Fig. 2. Structuri MPA pentru diferite moduri de codificare a microoperațiilor:

a - minimal; b - maximul; in - maxim cu un encoder;

d - orizontal-vertical; d - vertical-orizontal.

Cu codificarea maximă (verticală) (vezi Fig.

Fig. 2, b) fiecărei micro-operații i se atribuie un anumit cod, de exemplu, numărul său secvențial în lista completă a posibilelor micro-operații. Acest cod este introdus în MO. Partea microoperatorie a MC are o lungime minima, definita ca logaritmul binar al numarului de semnale de control (microoperatii). Această metodă de codificare necesită costuri minime hardware în SRL depus microinstrucțiunilor, cu toate acestea, există o necesitate în decodor DshMK, care trebuie să fie convertite în semnal corespunzător de control al codului de micro-operare. Cu un număr mare de decodor SU introduce o întârziere semnificativă de timp, și cel mai important - în fiecare MK este indicat doar un semnal de control care inițiază doar o micro-operație, crescând astfel lungimea firmware-ului și momentul punerii sale în aplicare.

Acest din urmă dezavantaj este eliminat prin conectarea codorului (Ш) la ieșirile lui ДшМК (vezi figura 2, c), ceea ce duce la creșterea numărului de SS-uri formate simultan. În mod natural, pe lângă codurile de micro-operațiuni individuale, ar trebui prevăzute coduri care să reprezinte și anumite combinații de micro-operații. Pentru a îmbunătăți universalitatea encoderului, se recomandă construirea pe baza unui dispozitiv de stocare.

Codificarea minimă și maximă reprezintă cele două puncte extreme ale unei game largi de soluții posibile ale problemei de codare pentru CS. Poziția intermediară are codificare grupă sau mixtă.

Aici, toate semnalele de control (micro-operațiuni) sunt împărțite în grupuri disjuncte K. Metoda cea mai des utilizată de orizontală-verticală (vezi. Fig. 2d), în acest caz, fiecare grup incluzând semnale de control reciproc incompatibile (UOPs), adică SU care nu au loc într-un singur microinstrucțiunii. În acest caz, semnalele, formate în mod obișnuit în același ceas, sunt în grupuri diferite.

Nano-program unitate de control

Această abordare, păstrând în același timp toate avantajele microprogramării orizontale, reduce semnificativ capacitatea totală a memoriei de control. Principalul dezavantaj este Nanoprogrammirovaniya viteză redusă, deoarece executarea microinstrucțiunii necesită două accese la memorie, care, totuși, compensat parțial excepția circuitului decodificator, vertical microprogramare caracteristic.

Memoria microprogramelor poate fi implementată de dispozitive de memorie de diferite tipuri. În funcție de tipul de memorie utilizat, IPA se distinge prin microprogramare statică și dinamică. În primul caz PMP folosit ca memorie permanentă (ROM) sau jurnalele programabile Env array (PLA), în al doilea - memoria operațională.

microprogramare dinamică, spre deosebire de firmware statică poate modifica rapid W, schimbând astfel proprietățile funcționale-BM-funcționale. Principalul obstacol în calea utilizării pe scară largă a microprogramării dinamice este volatilitatea și viteza relativ scăzută a RAM.

Fig. 4. Organizarea memoriei de control

În Fig. 4 arată posibila amplasare a microinstrucțiilor în memoria firmware-ului. Conținutul mesajului SMS determină secvența de micro-operații care trebuie efectuate în fiecare etapă a ciclului de instrucțiuni, precum și succesiunea pașilor. Fiecare etapă este reprezentată de firmware-ul corespunzător. Microprogramele sunt terminate de un microprocesor de tranziție, care definește acțiunile ulterioare. În memoria de control există, de asemenea, un comutator microprogram special: în funcție de codul de operare curent, acesta indică în ce stadiu de execuție trebuie executată comanda.

Cele mai multe microcomenzi din firmware sunt executate secvențial, dar în general ordinea micro-operațiunilor nu este fixă. Din acest motiv, este necesar să se prevadă un sistem eficient pentru implementarea tranzițiilor în CU. Tranzițiile, atât necondiționate, cât și condiționale, fac parte integrantă din orice firmware.







Articole similare

Trimiteți-le prietenilor: