Registre d'estat

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

Un registre d'estat, registre de senyal o registre de codi de condició (CCR) és una col·lecció de bits de senyal d'estat per a un processador. Alguns exemples d'aquests registres inclouen el registre FLAGS a l'arquitectura x86, els indicadors al registre de paraula d'estat del programa (PSW) a l'arquitectura IBM System/360 a través de z/Architecture i el registre d'estat del programa d'aplicació (APSR) a l'arquitectura ARM Cortex-A.[1]

El registre d'estat és un registre de maquinari que conté informació sobre l'estat del processador. Els bits individuals són llegits i/o escrits implícitament o explícitament per les instruccions del codi màquina que s'executen al processador. El registre d'estat permet que una instrucció prengui accions depenent del resultat d'una instrucció anterior.[2]

Normalment, els indicadors del registre d'estat es modifiquen com a efectes d'operacions aritmètiques i de manipulació de bits. Per exemple, es pot establir un bit Z si el resultat de l'operació és zero i esborrar si és diferent de zero. Altres classes d'instruccions també poden modificar els indicadors per indicar l'estat. Per exemple, una instrucció de cadena pot fer-ho per indicar si la instrucció s'ha acabat perquè ha trobat una coincidència/no coincidència o perquè ha trobat el final de la cadena. Els indicadors són llegits per una instrucció condicional posterior de manera que l'acció especificada (depenent del processador, un salt, una trucada, un retorn, o així successivament) només es produeix si els indicadors indiquen un resultat especificat de la instrucció anterior.

Algunes arquitectures de CPU, com ara MIPS i Alpha, no utilitzen un registre de senyalador dedicat. Altres no estableixen i/o llegeixen senyals implícitament. Aquestes màquines no passen informació d'estat implícita entre instruccions, o bé la passen en un registre de propòsit general seleccionat explícitament.

Sovint, un registre d'estat també pot tenir altres camps, com ara senyals més especialitzats, bits d'habilitació d'interrupció i tipus d'informació similars. Durant una interrupció, l'estat del fil que s'està executant actualment es pot conservar (i recuperar-lo més tard) emmagatzemant el valor actual del registre d'estat juntament amb el comptador del programa i altres registres actius a la pila de la màquina o alguna altra àrea reservada de memòria.[3]

Senyals d'estat més comuns[modifica]

Aquesta és una llista dels indicadors de registre d'estat de la CPU més comuns, implementats en gairebé tots els processadors moderns.

Senyal Nom Descripció
Z senyal zero Indica que el resultat d'una operació aritmètica o lògica (o, de vegades, d'una càrrega) va ser zero.
C Porta senyal Permet afegir o restar nombres més grans que una sola paraula transportant un dígit binari d'una paraula menys significativa al bit menys significatiu d'una paraula més significativa segons sigui necessari. També s'utilitza per ampliar els desplaçaments de bits i girar de manera similar en molts processadors (de vegades es fa mitjançant una senyal X dedicada).
S / N senyal de signe

senyal negativa

Indica que el resultat d'una operació matemàtica és negatiu. En alguns processadors,[4] les banderes N i S són diferents amb significats i ús diferents: un indica si l'últim resultat va ser negatiu mentre que l'altre indica si s'ha produït una resta o una suma.
V / O / W senyal de desbordament Indica que el resultat signat d'una operació és massa gran per adaptar-se a l'amplada del registre mitjançant la representació del complement a dos.

Referències[modifica]

  1. «ARM Information Center» (en anglès). infocenter.arm.com. http://infocenter.arm.com.+[Consulta: 18 maig 2019].
  2. «Status Register - an overview | ScienceDirect Topics» (en anglès). https://www.sciencedirect.com.+[Consulta: 1r setembre 2023].
  3. «General Purpose Registers» (en anglès americà). https://www.geeksforgeeks.org,+25-11-2022.+[Consulta: 1r setembre 2023].
  4. «Toshiba 900 Operation Manual, chap. 3» (en anglès). Arxivat de l'original el 2006-01-15.