Dispozitiv de control

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 31 august 2020; verificările necesită 2 modificări .

Mașina de control , dispozitivul de control al procesorului (CU) ( eng.  control unit, CU ) este un bloc, dispozitiv, componentă a hardware-ului computerului. Este un automat discret finit . Structural, dispozitivul de control este format din: un decodor de comenzi (operare) , un registru de comenzi , un nod pentru generarea (calcularea) adresei curente de execuție , un contor de comenzi .

Unitățile de control ale procesoarelor moderne sunt de obicei implementate sub forma unui automat de firmware , iar în acest caz unitatea de control include un ROM de microinstrucțiuni .

CU este conceput pentru a genera semnale de control pentru toate blocurile mașinii [1] .

În arhitectura von Neumann , este o parte integrantă a unității centrale de procesare [2] .

Cum funcționează

Când programul este executat, unitatea de control primește următoarea instrucțiune sau comandă de program la intrarea , care intră în registrul de instrucțiuni. Din punct de vedere structural, registrul de instrucțiuni este format din două părți: o parte stochează codul operației (COP), cealaltă parte conține adresele operanzilor implicați în control. Codul de operare intră în decodorul de operare, care pornește secvența de schimbare a stărilor a mașinii de stări CU, la mașinile moderne pornește un firmware stocat în firmware-ul ROM. Esența activității unității de control este setarea secvențială a combinațiilor de semnale de control pe liniile de control.

În timpul trecerii de la o stare internă la următoarea stare a mașinii de stări a CU, starea registrului de semne a rezultatului executării comenzii anterioare ( registrul pavilion ), starea intrărilor de control (pentru de exemplu, semnalele de pregătire ale dispozitivelor periferice, liniile de întrerupere hardware ) sunt de asemenea luate în considerare, iar CU scoate secvențe de impulsuri de control (transferuri între registre, semnale de adresare și transfer de date între aproape toate blocurile computerului - unitatea logică aritmetică ( ALU ), subsistem de intrare/ieșire, RAM și altele).

Aproape întotdeauna, pentru executarea unei comenzi/instrucțiuni, CU emite o secvență de mai multe impulsuri de control sau combinațiile acestora într-o secvență determinată de codul de comandă/instrucțiune. După finalizarea emiterii tuturor impulsurilor de control pentru executarea comenzii curente, unitatea de control citește codul comenzii următoare etc.

CU este de obicei sincronizat de impulsuri externe de ceas generate de generatorul de impulsuri de ceas (GTI), adică tranziția de la starea la starea mașinii de stări a CU are loc la fiecare impuls de ceas, în unele CU, pentru a crește viteza. , se generează impulsuri de control atât pe muchia ascendentă a pulsului , cât şi pe cea descendentă .

Exemple de lucru a CU la executarea comenzii

Transferarea datelor de la un registru intern al procesorului la altul.

Această comandă este executată în 2-3 cicluri de ceas. În primul ciclu, CU trimite starea contorului de programe (Program Counter - PC) către magistrala de adrese pentru a selecta următorul cod de comandă și un impuls către linia de citire a RAM, în timp ce analizează bitul RAM pregătit. Când memoria RAM este gata, codul de comandă este transferat în registrul comenzii curente. În caz contrar, CU execută ciclurile de așteptare fără a modifica starea liniilor de control/adresă.

Executarea efectivă a acestei comenzi se realizează în două cicluri de impulsuri de ceas, dacă comanda este preluată și decodificată într-un singur ciclu. În primul ciclu, CU decodifică codul registrului de comandă. În al doilea ciclu, starea registrului sursă este scoasă la magistrala de date comună internă cu ajutorul tastelor și, în același timp, intrarea registrului receptor este conectată prin alte taste la aceeași magistrală de date internă, ca un rezultat din care registrul receptor ia starea registrului sursă. Apoi, CU deschide tastele și trece la executarea următoarei comenzi.

Scrierea unui registru de procesor intern pe RAM la adresa din registrul de adrese.

Preluarea unei instrucțiuni din RAM este similară. Este nevoie de mai multe cicluri pentru a executa această comandă. Ca întotdeauna, în primul ciclu, codul de instrucțiune este citit și decodat. Apoi , starea registrului de adrese este transmisă magistralei de adrese externe cu chei controlate de la CU și, în același timp, starea registrului sursă este emisă magistralei de date externe, un semnal de scriere este emis către linia de control a scrierii în memorie. CU verifică semnalul de pregătire a memoriei, dacă RAM este gata, atunci CU elimină toate semnalele de control și trece la citirea următoarei comenzi, în caz contrar execută cicluri de așteptare goale.

Executarea unei instrucțiuni de săritură condiționată.

Pe lângă acțiunile similare descrise, CU analizează suplimentar registrul de stare intern al procesorului - rezultatul executării comenzii anterioare. De exemplu, dacă rezultatul instrucțiunii anterioare de adunare sau scădere a fost 0, atunci un semn zero este scris în bitul de registru de stare a procesorului (steagul). La executarea unei comenzi de salt condiționat (în acest exemplu, comanda este jump if zero , în limbajul de asamblare, codul mnemonic al comenzii este de obicei scris ca JZ <jump address> ) analizează acest flag și, în funcție de starea lui, fie încarcă adresa specificat în comandă în tranziția contorului de program sau, dacă condiția nu este îndeplinită, încarcă adresa următoarei instrucțiuni în ordine în program în contorul de programe.

Exemplele descrise sunt simplificate, în procesoarele moderne se străduiesc să efectueze cât mai multe acțiuni într-un singur ciclu de ceas, uneori acțiunile sunt efectuate în fața și căderea semnalului de ceas. Când o comandă ocupă mai multe cuvinte în memoria programului, atunci unitatea de comandă citește secvențial toate cuvintele codului de comandă și, abia după aceea, trece la executarea acestuia.

Automat de control al microprogramelor

La primele calculatoare, CU a fost proiectat și executat sub formă de „ logică dură ” - circuite logice combinaționale , flip- flops , registre, decodoare .

În 1951, M. V. Wilks a propus să proiecteze un dispozitiv de control sub forma unui automat cu microprogram, adică să genereze secvențe de impulsuri de control folosind un automat de microprogram controlat de microprograme constând din microinstrucțiuni stocate într-o memorie de microprogram permanentă sau reprogramabilă (reprogramabilă) a procesorul. Această abordare reduce semnificativ costurile forței de muncă pentru proiectarea mașinii de stare CU și, în plus, face relativ ușoară modificarea acesteia. Odată cu dezvoltarea tehnologiei semiconductoare și apariția pe piață a unui număr mare de controlere programabile, această abordare a devenit dominantă la crearea CU-urilor.

Cu toate acestea, în ultimii ani, pentru unele sisteme APCS, a existat tendința de a reveni (la un nou nivel tehnologic) la utilizarea sistemelor bazate pe logică hard, în special pentru că au un grad ridicat de protecție împotriva atacurilor informatice. .

Vezi și

Note

  1. Informatică: Manual / N. V. Makarova. — Finanțe și statistică, 2006. — 768 p. — ISBN 978-5-279-02202-1 .
  2. von Neumann . Prima schiță de raport privind EDVAC. 1945