Dispozitive de comandă cu logică programabilă

Denumirea lucrării: DISPOZITIVE DE CONTROL CU LOGIC PROGRAMABIL

Domeniu: Informatică, Cibernetică și Programare

Descriere: AK numărul PRELEGERII 13 gestionate dispozitive cu funcții logice programabile ale unității centrale de control calculator CU Unitatea de control implementează cursul de gestionare a proceselor de calcul prin furnizarea de execuție automată com







Mărime fișier: 181 KB

Lucrarea a fost descărcată: 27 de persoane.

AK LECTURE № 13 DISPOZITIVE DE CONTROL CU LOGICA PROGRAMABILA

Funcțiile unității centrale de comandă

Primul pas în ciclul mașinii este eșantionarea comenzii din memorie (etapa VC). Funcția obiectivă a acestei etape va fi denumită CF-VC.

După selectarea comenzii, urmează etapa de decodificare a părții sale de operare (cod de operare). Din motive de simplitate, pentru moment, vom considera această etapă ca o parte integrantă a etapei VC.

În final, în ultima etapă a ciclului mașinii, acțiunile sunt specificate de funcția de executare a sarcinii # 151; ZF-IR. Evident, numărul de modificări ale CF-IO este egal cu numărul de operații disponibile în sistemul de comandă VM.

Secvența funcțiilor obiective determină complet dinamica dispozitivului de comandă și întregul VM ca întreg. Această comandă este convenabilă pentru a defini și afișa sub forma unei scheme grafice a etapelor de execuție ale echipei (GSE). La fel ca schema grafică a firmware-ului, ESE conține vârfurile inițiale, finale, operator și condiționale. În vârfurile inițiale și finale se introduce o denumire condiționată a unei comenzi specifice și se scrie un verb condițional care afectează ordinea pașilor. Operatorii etapelor sunt înscriși în nodurile operatorului.

Conform formularului de înregistrare, operatorul pas # 151; Acesta este un operator de atribuire, în care:

• numele rezultatului acțiunilor efectuate în etapa respectivă este indicat în partea stângă a semnului de atribuire;

• identificatorul funcției obiectiv care definește acțiunile curente este scris în partea dreaptă a semnului de atribuire, urmat de lista datelor din etapa inițială (în paranteze).

Rezultatul operației este P0i. produs la etapa a cincea a ciclului mașinii, dependent de o opcode și comandă i-Kopi (Cy definește modificarea-IO) cod 0i operanzi primul și al doilea cod operandului # 151; din rezultatul operației anterioare P0i-1: P0i: = IO (KOn, 0i, P0i-1).

În concordanță cu structura etapelor schemei grafice, toate comenzile VM pot fi împărțite în trei tipuri:

• comenzi precum "Adăugarea" (C);

• comenzi precum "înregistrare" (3p);

• Comenzi de tipul "ramură condiționată" (UP).

Schemele grafice tipice ale etapelor sunt prezentate în Fig. 6.1.

Locația condiției de testare este, de asemenea, determinată de codul de operare K0n.

Structura dispozitivului de comandă

Microprogramele pentru implementarea funcțiilor țintă menționate mai sus sunt inițiate de echipamentul principal, care generează secvența necesară de semnale de control și face parte din partea de comandă a unității de comandă.

Partea de control a UU include:

• mașină de microprogramare (MPA);

• întreruperi ale nodurilor și priorități SCP).

Registrul instrucțiunii RK este destinat primirii următoarei instrucțiuni de la dispozitivul de memorie. firmware automată bazată pe rezultatele decodarea echipei de operare (CPC, CA) generează o secvență specifică de microinstrucțiuni, provocând executarea tuturor funcțiilor CU.

În funcție de metoda de formare a microcomandelor, se disting automatele microprogramelor:

• cu logică hard sau hardware;

• cu logică programabilă.

Nodul de întrerupere și prioritate vă permite să răspundeți la diferite situații legate atât de execuția programelor de lucru, cât și de starea VM.

• unitatea de operare a dispozitivului de comandă (OPSU);

• Contor de comandă (CK).

Indicii cu abrevieri P (Receive) și B (Issuance) indică faza codului transmis. Fiecare cifră binară a unui cod de o singură fază este transmisă unui circuit (și introduce numai intrarea S a declanșatorului corespunzător). Fiecare cifră binară a codului parafazic este transmisă pe două circuite (și ajunge la intrările S și R ale declanșatorului corespunzător), fără a se prelege inițial declanșatorul-receptor.

Structura CU poate include, de asemenea, noduri suplimentare, în special un nod pentru organizarea accesului direct la memorie. Acest nod este de obicei implementat ca un dispozitiv autonom # 151; controler de acces direct la memorie (KPDP). CPRM asigură faptul că dispozitivul de operare este compatibil cu procesul de schimb de informații între OP și alte dispozitive VM, mărind astfel performanța generală a aparatului.

Destul de des, registrele diferitelor noduri ale CU sunt combinate într-un nod separat de registre de control ale dispozitivului de comandă.

• IPA cu ォ rigid logica サ sau implementarea hardware;

• MPA cu logică programabilă.

Firmware cu logică programabilă

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ă folosind cifre binare 1 (starea activă # 151; este SS) și O (stare pasivă # 151; nu există SU). 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. În acest sens, ar trebui să menționăm patentat Academicianul Glushkov pas principiu microprogramare, el a realizat pentru prima dată în mașină Promin ォ サ.







Principiul controlului asupra unui microprogram stocat în memorie

O caracteristică distinctivă a mașinii de microprogram cu logică programabilă este stocarea microcomandelor sub formă de coduri într-un dispozitiv de stocare specializat # 151; firmware-ul de memorie. 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.

unde N MK # 151; numărul total de microcomenzi; NCY # 151; 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. 6.9.

Cu microprogramarea pe orizontală (vezi. Fig. 6.9, a) pentru fiecare semnal de comandă în parte a mikrooperatsionnoy microinstrucțiunii alocat un bit (R mo = N cy). 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 (emo = NMK * NCY), precum și eficiența utilizării PMP devine scăzută, un număr mare de micro-ops în fiecare MK este realizat doar una sau câteva dintre ele, care este, Majoritatea covârșitoare a categoriilor MO conține zerouri.

Cu codificarea maximă (verticală) (a se vedea figura 6.9, b), fiecărei microoperare i se atribuie un anumit cod, de exemplu, numărul său de serie în lista completă a posibilelor microoperări. Acest cod este introdus în MO. Partea microoperatorie a MC are lungimea minimă, definită ca logaritmul binar al numărului de semnale de control (microoperații) cu formula (6.2). 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 o cantitate mare de SS, decodorul introduce o întârziere semnificativă, și cel mai important # 151; în fiecare MC, este indicat un singur semnal de control, inițiând o singură micro-operație, mărind astfel lungimea firmware-ului și timpul în care acesta este realizat.

Ultimul dezavantaj este eliminat prin conectarea codorului (W) la iesirile DmM (vezi Figura 6.9, c), ceea ce duce la cresterea numarului 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.

Varianta prezentată în Fig. 6.9, c, este rațional dacă

unde ND # 151; număr de ieșiri de decodor. În aceste condiții, costurile hardware pentru stocarea pieselor micro-de operare ale MK sunt relativ mici:

Cu toate acestea, capacitatea totală a memoriei utilizate este

din care este clar că la aproape NMK și MD varianta își pierde semnificația.

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ții) sunt împărțite în grupuri K

În funcție de principiul de separare a micro-operațiunilor în grupuri, se disting codificarea orizontal-verticală și vertical-orizontală.

Metoda orizontală-verticală (vezi. Fig. 6,9 g) în fiecare grup a inclus semnalele 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. În cadrul fiecărui grup, semnalele de control sunt codificate în modul maxim (vertical), iar grupurile # 151; în mod minimal (orizontal).

Fiecărui grup Yt i se alocă un câmp separat în partea microoperatorie a MK, a cărei lățime totală este

unde N este # 151; numărul CS reprezentat de primul câmp (grup).

Capacitatea totală de memorie a microprogramelor variantei de codificare considerată este determinată din expresia:

În metoda orizontală, verticală (vezi. Fig. 6.9, d) întregul set de semnale de control (micro) este de asemenea împărțit în mai multe grupuri, dar grupul include semnalele de control (UOPs), cel mai frecvent apar împreună într-un singur ciclu de ceas. Câmpul MO este împărțit în două părți: M01 și M02. Câmpul M01. a cărei lungime este egală cu numărul maxim de semnal de control (micro) din grup, este codificat pe orizontală și câmpul M02 indicând apartenența la un anumit grup, # 151; pe verticală. Odată cu schimbarea grupului, punctele de control se schimbă, de asemenea, unde semnalele de comandă din fiecare poziție MO1 trebuie trimise. Acest lucru este realizat cu ajutorul demultiplexorilor (DMP), controlați de codul numeric al grupului din câmpul MO.

Cu metode verticale, verticale și orizontale-verticale de codificare a micro-operațiunilor, fiecare câmp al microcomandei poartă funcții fixe, adică există o codificare directă. Cu codificarea indirectă, unul dintre câmpuri este atribuit pentru a interpreta alte câmpuri. Un exemplu de codificare indirectă a micro-operațiunilor poate fi codarea vertical-orizontală.

Fig. 6.10. Nano-program unitate de control

Lăsați sistemul să genereze 200 de semnale de control, iar lungimea totală a firmware-ului este de 2048 microcomenzi. Să presupunem, de asemenea, că doar 256 de combinații diferite de semnale de control sunt de fapt utilizate. În cazul unui procesor convențional cu microprogramare orizontală, capacitatea memoriei de control ar fi 2048 x 200, - 409 600 biți. Conducerea nanoprogramării necesită o memorie de firmware de 2048 x 8 = 16 384 biți și o memorie de 256 x 200 = 51 200 de biți de nanocommand. Astfel, capacitatea totală a ambelor tipuri de memorie de control este de 67 584 de biți.

Cu alte cuvinte, memoria nano servește ca un codificator al semnalelor de control (vezi Figura 6.9, c). Următoarele relații sunt: ​​RM

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 pe două nivele este considerată ca o modalitate de a reduce capacitatea necesară a SMS-ului, utilizarea sa este recomandabilă numai atunci când micro-comenzile sunt repetate în mod repetat în microprogram.

Atunci când se împarte o microcomandă într-un câmp, pot funcționa două principii: în funcție de funcționalitatea CS și de resurse. Codarea funcțională presupune că fiecare câmp corespunde unei funcții din VM. De exemplu, informațiile din baterie pot fi înregistrate din diferite surse, iar pentru a indica sursa din microinstrucție, poate fi atribuit un câmp, în care fiecare combinație de coduri este atașată la o anumită sursă. Atunci când codarea resurselor VM este considerată ca un set de resurse independente (memorie, UVV, ALU etc.), fiecare dintre resursele din microcomandă este atribuit câmpului propriu.

Asigurarea coerenței execuției microcomandelor

În Fig. 6.11 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.







Trimiteți-le prietenilor: