Ce este un registru de procesor?

Cel mai rapid acces la memoria stocabilă pe o unitate de procesare a computerului (CPU) este un registru de procesor. Arhitecturile computerelor proiectează procesorul înregistrează capacitatea de memorie într-un cache al CPU, astfel încât valorile accesate de procesele computerului în mod regulat să poată fi stocate acolo. Procesele pot accesa și executa rapid pe baza acestor valori stocate. Deoarece registrele procesorului sunt stocate pe CPU, ele sunt considerate a fi vârful ierarhiei memoriei de stocare, iar alocarea este de obicei determinată de variabile. Odată ce datele sunt procesate, acestea sunt apoi restaurate în cache, memoria cu acces aleatoriu (RAM) sau stocarea pe hard disk.

Procesoarele computerelor au registre de diferite tipuri, în funcție de instrucțiunile sau testele care operează asupra lor sau de conținutul lor specific. Datele, adresele și registrele de uz general conțin valori matematice și adrese pentru stocarea în memorie. Există registre condiționale cu valori de adevăr pentru instrucțiunile de operare logică, registre constante cu valori numai pentru citire, cum ar fi pi și zero, și registre cu scop special care păstrează un contor de program, un registru de stare și indicatori de stivă pentru utilizarea memoriei stivei. Registrele de control conțin instrucțiuni dintr-un set de instrucțiuni încorporat în arhitectura CPU; și există mai multe care preiau din RAM și circuite ale procesorului care accesează memorie tampon, date de memorie, intervale de tip de memorie și adrese. Variabilele nealocate unui registru de procesor sunt stocate în RAM și încărcate pentru operațiuni de citire și scriere, cu toate acestea, acestea au o procesare mai lentă.

Cunoscând diferența de viteză dintre procesarea în registre și RAM, dezvoltatorii de programe de calculator compilatoare își proiectează de obicei programele pentru a funcționa cât mai mult posibil în stocarea registrului procesorului pentru funcționarea rapidă a funcțiilor. Pentru programele compilatoare just-in-time, o tehnică de alocare a registrului cunoscută sub numele de alocare liniară de scanare urmărește operațiile de registru și eliberează rapid puterea de calcul a registrului înapoi la program. Tehnicile de alocare a registrelor încearcă să obțină cât mai multe dintre variabilele programului alocate registrelor și într-un flux operațional care maximizează cel mai mic număr de registre pentru o compilare rapidă.

Deoarece multe registre ale procesorului sunt pentru stocarea temporară a variabilelor și seturi de instrucțiuni, toate operațiunile pentru utilizarea programului pot fi stocate pentru manipulare de către CPU. În timpul funcționării, un procesor va căuta mai întâi în memoria cache a registrelor CPU pentru o copie a oricăror date care urmează să fie procesate în operațiuni de citire, scriere sau mutare, înainte de a căuta RAM și stocarea secundară pe hard disk. Începând cu 2011, majoritatea procesoarelor păstrează trei cache-uri individuale. Cache-urile de instrucțiuni se ocupă de preluarea execuției în funcție de instrucțiune, un buffer asemănător cu traducerea accelerează traducerea adreselor pentru adresele virtuale-fizice, iar un cache de date deține o stocare ierarhică pe mai multe niveluri a datelor pentru a fi manipulate de un set de instrucțiuni de registru al procesorului.