En electrónica digital , especialmente en informática , los registros de hardware son circuitos compuestos normalmente por flip-flops , a menudo con muchas características similares a la memoria , como: [ cita requerida ]
Sin embargo, su característica distintiva es que también tienen funciones especiales relacionadas con el hardware, además de las de la memoria común. Por lo tanto, según el punto de vista, los registros de hardware son como una memoria con funciones adicionales relacionadas con el hardware; o los circuitos de memoria son como registros de hardware que simplemente almacenan datos. [ cita requerida ]
Los registros de hardware se utilizan en la interfaz entre el software y los periféricos . El software los escribe para enviar información al dispositivo y los lee para obtener información del dispositivo. Algunos dispositivos de hardware también incluyen registros que no son visibles para el software, para su uso interno.
Dependiendo de su complejidad, los dispositivos de hardware modernos pueden tener muchos registros. Los circuitos integrados estándar suelen documentar sus registros expuestos externamente como parte de la hoja de datos de sus componentes electrónicos .
Los usos típicos de los registros de hardware incluyen:
La lectura de un registro de hardware en "unidades periféricas" ( hardware informático fuera de la CPU) implica acceder a su dirección de E/S asignada a la memoria o a la dirección de E/S asignada al puerto con una instrucción de "carga" o "almacenamiento" emitida por el procesador. Los registros de hardware se direccionan en palabras, pero a veces solo se utilizan algunos bits de la palabra leída o escrita en el registro.
Las herramientas de diseño comercial simplifican y automatizan la especificación de registros mapeados en memoria y la generación de código para hardware , firmware , verificación de hardware , pruebas y documentación.
Los registros pueden ser de lectura/escritura, de solo lectura o de solo escritura.
Los registros de solo escritura generalmente se evitan. Son adecuados para registros que provocan una acción transitoria cuando se escriben pero que no almacenan datos persistentes para leer, como un registro de "reinicio de un periférico". Pueden ser la única opción en diseños que no pueden permitirse puertas para el circuito lógico relativamente grande y el enrutamiento de señales necesarios para la lectura de datos de registros, como el chip TIA de la consola de juegos Atari 2600. Sin embargo, los registros de solo escritura dificultan la depuración [2] y conducen al problema de lectura-modificación-escritura, por lo que se prefieren los registros de lectura/escritura. En las PC, los registros de solo escritura dificultaban que la Interfaz avanzada de configuración y energía (ACPI) determinara el estado del dispositivo al ingresar al modo de suspensión para restaurar ese estado al salir del modo de suspensión. [3]
Los registros de hardware dentro de una unidad central de procesamiento (CPU) se denominan registros de procesador .
Los registros estroboscópicos tienen la misma interfaz que los registros de hardware normales, pero en lugar de almacenar datos, activan una acción cada vez que se escribe en ellos (o, en casos excepcionales, se leen). Son un medio de señalización .
Los registros normalmente se miden por la cantidad de bits que pueden contener, por ejemplo, un " registro de 8 bits " o un " registro de 32 bits ".
Los diseñadores pueden implementar registros de una amplia variedad de formas, entre ellas:
Además de los registros "visibles para el programador" que se pueden leer y escribir con software, muchos chips tienen registros internos que se utilizan para máquinas de estados y canalización ; por ejemplo, memoria registrada .
SPIRIT IP-XACT y DITA SIDSC XML definen formatos XML estándar para registros mapeados en memoria. [4] [5] [6]
Una vez que el INS 8250 se haya inicializado correctamente, debemos hacer un uso adecuado del registro de estado del módem (MSR), el registro de estado de la línea (LSR) y el registro de identificación de interrupciones (IIR) para controlar el dispositivo durante el funcionamiento real.