Control register

De la Viquipèdia, l'enciclopèdia lliure

Un registre de control és un registre de processador que canvia o controla el comportament general d'una CPU o un altre dispositiu digital. Les tasques habituals que realitzen els registres de control inclouen el control d'interrupcions, la commutació del mode d'adreçament, el control de paginació i el control del coprocessador.[1]

Als processadors Intel, hi ha registres de control que comencen per CR0. El registre CR0 sol tenir una longitud de 32 o 64 bits.[2]

Història[modifica]

Quan IBM va desenvolupar una versió de paginació del System/360, van afegir 16 registres de control[3][4] al disseny del que es va convertir en el 360/67. IBM no va proporcionar registres de control en altres models S/360, però els va convertir en una part estàndard[5] del System/370, encara que amb diferents assignacions de registre i bits. A mesura que IBM va afegir noves característiques a l'arquitectura, per exemple, DAS, S/370-XA, S/370-ESA, ESA/390, van afegir camps addicionals als registres de control. Amb z/Architecture, IBM va duplicar la mida del registre de control a 64 bits.[6]

Registres de control a IBM 360/67[modifica]

Al 360/67, CR0 i CR2 s'utilitzen per a la traducció d'adreces, CR 4-6 contenen senyals diversos, incloses màscares d'interrupció i mode de control estès, i CR 8-14 contenen la configuració de l'interruptor a la unitat de configuració 2167.

Registres de control a IBM S/390[modifica]

Els registres de control de l'ESA/390 a l'IBM S/390 són una millora evolutiva dels registres de control dels anteriors processadors ESA/370,[7] S/370-XA i S/370. Per obtenir més informació sobre quins camps depenen de característiques específiques, consulteu els Principis de funcionament.

Registres de control de la sèrie Intel x86[modifica]

El registre CR0 té 32 bits de llarg en els processadors 386 i superiors. Als processadors x64 en mode llarg, aquest (i els altres registres de control) té una longitud de 64 bits. CR0 té diversos indicadors de control que modifiquen el funcionament bàsic del processador. El registre CR0 és la versió de 32 bits de l'antic registre de la paraula d'estat de la màquina (MSW). El registre MSW es va ampliar al registre de control amb l'aparició del processador i386.[8]

Bit Nom Nom complet Descripció
0 PE Habilita el mode protegit Si 1, el sistema està en mode protegit, en cas contrari, el sistema està en mode real
1 MP Monitor coprocessador Controla la interacció de les instruccions WAIT/FWAIT amb el senyalador TS a CR0
2 EM Emulació Si s'estableix, no hi ha cap unitat de coma flotant x87, si està clara, hi ha FPU x87
3 TS Tasca canviada Permet desar el context de la tasca x87 en un canvi de tasca només després d'utilitzar la instrucció x87
4 ET Tipus d'extensió Al 386, permetia especificar si el coprocessador matemàtic extern era un 80287 o un 80387
5 NE Error numèric Habilita l'informe d'errors de coma flotant x87 intern quan s'estableixi, en cas contrari, habilita la detecció d'errors x87 d'estil de PC
16 WP Protecció d'escriptura Quan s'estableix, la CPU no pot escriure a pàgines de només lectura quan el nivell de privilegis és 0
18 AM Màscara d'alineació La comprovació d'alineació està activada si s'ha establert AM, la bandera AC (al registre EFLAGS) s'ha establert i el nivell de privilegi és 3
29 NO No escriure Activa/desactiva globalment la memòria cau d'escriptura
30 CD Desactivació de la memòria cau Activa/desactiva globalment la memòria cau
31 PG Paginació Si és 1, activeu la paginació i utilitzeu el § CR3Registre § CR3, sinó desactiva la paginació.

Referències[modifica]

  1. «General Purpose Registers» (en anglès americà), 25-11-2022. [Consulta: 3 desembre 2023].
  2. «Control Register - an overview | ScienceDirect Topics» (en anglès). [Consulta: 3 desembre 2023].
  3. M67prelim, p. 25-26, Control Registers.
  4. M67, p. 16, Table 4. Control Registers.
  5. S/370, p. 4-8-4-11 , Control Registers.
  6. «What is relation between Status register and Control register?» (en anglès). [Consulta: 3 desembre 2023].
  7. S/370-ESA.
  8. «Are "Control register" and "Status register" and "Data register" part of the device itself?» (en anglès). [Consulta: 3 desembre 2023].