Microcod

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 15 noiembrie 2017; verificările necesită 5 modificări .

Microcode  este un program care implementează un set de instrucțiuni pentru procesor . Așa cum o singură instrucțiune de limbaj de nivel înalt este tradusă într-o serie de instrucțiuni de mașină , într-un procesor care utilizează microcod, fiecare instrucțiune de mașină este implementată ca o serie de microinstrucțiuni - microprogram, microcod.

Pe majoritatea computerelor care folosesc microcod, acesta nu este prezent în memoria principală , ci într-o memorie specială de mare viteză ( magazinul de control în limba engleză  ), cum ar fi, de exemplu, în chipset-ul din seria 588 cu ALU KA588VS2 și memoria de control ROM KA588VU2. Această memorie poate fi doar citire sau citire-scriere; în acest din urmă caz, microcodul poate fi încărcat din memoria numai în citire în timpul pornirii procesorului. Capacitatea de a schimba microcodul vă permite să remediați erorile găsite și să adăugați implementarea de noi instrucțiuni. Microcodul permite, de asemenea, configurarea microarhitecturii computerului pentru a emula o arhitectură diferită (de obicei mai complexă) .

Microprogramele sunt alcătuite dintr-o serie de microinstrucțiuni denumite adesea operații elementare . Microinstrucțiunile controlează procesorul la cel mai de jos nivel. De exemplu, o singură microinstrucțiune poate conține următoarele acțiuni:

Pentru ca o microinstrucțiune să descrie întregul set, microinstrucțiunile sunt adesea făcute destul de „large”, de exemplu, cu o lungime de 56 de biți sau chiar mai mult. Micro-instrucțiunile, sau micro-instrucțiunile, la rândul lor, inițiază așa-numitele micro-operații. Micro-operațiile sunt transformări elementare de date; exemplele includ următoarele:

  1. copiați operandul pentru înregistrare;
  2. setați steagul la 1;
  3. setați operandul la magistrală;
  4. incrementați conținutul din partea de sus a stivei cu 1 și așa mai departe.

Motive pentru apariție și utilizare

Abordarea procesoarelor de microprogramare (microcode) a fost propusă în 1953 de Vilks și Stringer [1] .

Inițial, microcodul a fost folosit ca o modalitate mai ușoară de a dezvolta un dispozitiv de control al procesorului. Anterior, setul de instrucțiuni era codificat, fiecare instrucțiune de mașină (adăugare, schimbare, copiere) a fost implementată direct în circuit . Acest lucru a dat viteză mare, dar pe măsură ce setul de instrucțiuni a crescut, a devenit din ce în ce mai dificil de implementat sub forma unui circuit și instrucțiuni de depanare de o complexitate din ce în ce mai mare. Microcode a atenuat această problemă, permițând inginerilor de proiectare să înlocuiască circuitele complexe cu microprogramare atunci când implementează o instrucțiune complexă. În plus, microcodul putea fi schimbat cu ușurință mai târziu în procesul de proiectare, dar circuitul a fost mult mai dificil de schimbat. În acest fel, microcodul a facilitat proiectarea procesoarelor, rezultând un set de instrucțiuni mai complex .

Utilizarea firmware-ului a atenuat, de asemenea, problema lățimii de bandă a memoriei. În anii 1970, creșterea vitezei procesorului a depășit cu mult creșterea vitezei memoriei. Unele metode de accelerare, cum ar fi cache -urile pe mai multe niveluri , au atenuat oarecum problema, dar nu au rezolvat-o. Utilizarea microcodului a ajutat foarte mult aici, deoarece mai puține instrucțiuni, mai complexe, necesitau mai puțin schimb de memorie. De exemplu, dacă întreaga operație pe un șir de caractere este efectuată de o instrucțiune de mașină, atunci în timpul executării acesteia nu este necesar să se preia alte instrucțiuni din memorie.

Lista arhitecturilor care utilizează principiul microcodului includea IBM System/360 și DEC VAX , al căror set de instrucțiuni a fost implementat folosind un firmware complex. Abordarea, care utilizează instrucțiuni de microcod din ce în ce mai complexe, a fost numită ulterior CISC .

Mișcarea RISC este uneori văzută ca opus arhitecturii cu microcod, dar numai procesoarele RISC timpurii nu au folosit microcod, în timp ce cele mai recente au putut [1] .

Note

  1. 1 2 VLSI Risc Architecture and Organization , SB Furber

Link -uri