miércoles, 5 de febrero de 2020

TIPOS DE REGISTROS DEL PROCESADOR



Dentro del procesador, hay un conjunto de registros que ofrecen un nivel de memoria que es más rápido y pequeño que la memoria principal. Los registros del procesador sirven para dos funciones:
 
Registros visibles de usuario: Un programador de lenguaje de máquina o ensamblador puede minimizar las referencias a memoria principal mediante un uso óptimo de estos registros. Con lenguajes de alto nivel, un compilador que optimice código intentará hacer una selección inteligente de qué variables asignar a registros y cuáles a ubicaciones de la memoria principal. Algunos lenguajes de alto nivel, como C, permiten que el programador indique al compilador qué variables se deben almacenar en registros.
Registros de control y de estado: Son utilizados por el procesador para el control de las operaciones o por rutinas privilegiadas del sistema operativo para controlar la ejecución de los programas.
 
No hay una separación clara de los registros en estas dos categorías. Por ejemplo, en algunas máquinas el contador de programa es visible para los usuarios, pero en otras muchas no lo es. Sin embargo, para el propósito de la discusión que viene a continuación, es conveniente emplear estas categorías.
 
Registros visibles de usuario
 
Un registro visible de usuario es aquél que puede ser referenciado por medio del lenguaje de máquina que ejecuta el procesador y es, por lo general, accesible para todos los programas, incluyendo tanto los programas de aplicación como los del sistema. Las clases de registro que, normalmente, están disponibles, son los registros de datos, los registros de dirección y los registros de códigos de condición.
 
Los registros de datos
Pueden ser asignados por el programador a diversas funciones. En algunos casos, son de propósito general y pueden ser empleados por cualquier instrucción de máquina que lleve a cabo operaciones sobre los datos. Sin embargo, suelen ponerse ciertas restricciones a menudo. Por ejemplo, puede haber registros dedicados a operaciones en coma flotante.
 
Los registros de dirección
Contienen direcciones en la memoria principal de datos e instrucciones o una parte de la dirección que se utiliza en el cálculo de la dirección completa. Estos registros pueden ser de propósito general o pueden estar dedicados a un modo específico de direccionamiento.
Entre los ejemplos se incluyen:
Registro índice: El direccionamiento indexado es un modo común de direccionamiento que implica sumar un índice a un valor base para obtener la dirección efectiva.
Puntero de segmento: Con direccionamiento segmentado, la memoria se divide en segmentos, que son bloques de palabras de tamaño variable. Una referencia a memoria consta de una referencia a un segmento particular y un desplazamiento dentro del segmento. En este modo, se utiliza un registro que alberga una dirección base (ubicación inicial) de un segmento. Puede haber varios registros de este tipo: por ejemplo, uno para el sistema operativo (es decir, cuando se ejecuta código del sistema operativo en el procesador) y otro para la aplicación que está en ejecución.
Puntero de pila: Si hay un direccionamiento de pila visible para los usuarios, la pila estará, por lo general, en la memoria principal, existiendo un registro dedicado a señalar la cima de la pila.
 
Esto permite el uso de instrucciones que no contienen ningún campo de dirección, tales como push (poner) y pop (sacar).
 
Una última categoría de registros que son, al menos, parcialmente visibles para los usuarios, son aquellos que contienen códigos de condición (también denominados indicadores o flags). Los códigos de condición son bits activados por el hardware del procesador como resultado de determinadas operaciones.
 
Por ejemplo, una operación aritmética puede producir un resultado positivo, negativo, cero o desbordamiento. Además de almacenar el resultado de esta operación en un registro o en memoria, también se activará un código de condición. Este código puede consultarse posteriormente como parte de una operación de salto condicional.
 
Los bits de código de condición se agrupan en uno o más registros. Estos forman generalmente parte de un registro de control. En general, las instrucciones de máquina permiten leer estos bits mediante referencias implícitas, pero no pueden ser alterados por el programador.
 
En algunas máquinas, una llamada a un procedimiento o subrutina provocará que los registros visibles de usuario se salven automáticamente, para luego restaurarlos al retomar. Este proceso de salvar y restaurar lo lleva a cabo el procesador como parte de la ejecución de las instrucciones de llamada y retomo. Esto permite que cada procedimiento pueda usar los registros de forma independiente. En otras máquinas, es responsabilidad del programador salvar los contenidos de los registros de usuario visibles que sean relevantes antes de hacer la llamada a un procedimiento, incluyendo instrucciones en el programa con tal propósito. Así pues, las instrucciones de salvar y restaurar pueden ser llevadas a cabo por el hardware o por el software, dependiendo de la máquina.
 
 
Registros de control y de estado
Varios registros se emplean para controlar las operaciones del procesador. En la mayoría de las máquinas, la mayor parte de estos registros no son visibles para los usuarios. Algunos de ellos pueden estar accesibles a las instrucciones de máquina ejecutadas en un modo de control o modo del sistema.
Por supuesto, máquinas diferentes tendrán organizaciones diferentes de registros y podrán usar terminologías distintas.
 
Además de los registros MAR, MBR, IOAR y IOBR mencionados anteriormente, los siguientes registros son esenciales en la ejecución de instrucciones;
Contador de programa (PC, Program Counter): Contiene la dirección de la instrucción a ser leída.
Registro de instrucción (IR, Instruction Regíster): Contiene la última instrucción leída. Todos los diseños de procesadores incluyen además un registro o conjunto de registros, conocidos a menudo como palabra de estado del programa (PSW, Program Status Word), que contiene información de estado. Normalmente, la PSW contiene códigos de condición junto a otra información de estado. Entre los campos e indicadores más comunes se incluyen los siguientes:
Signo: Contiene el bit del signo de la última operación aritmética efectuada.
Cero: Se activa cuando el resultado de una operación aritmética es cero.
Acarreo: Se activa cuando, como resultado de una suma o una resta, se produce un acarreo más allá del bit más significativo. Se utiliza en operaciones aritméticas de más de una palabra.
Igualdad: Se activa si una comparación lógica da como resultado la igualdad.
Desbordamiento: Empleado para señalar un desbordamiento aritmético.
Habilitar/inhahilitar interrupciónes: Empleado para habilitar o inhabilitar interrupciones. Cuando Las interrupciones están inhabilitadas, el procesador las ignora. Esto es muy deseable cuando el sistema operativo está ocupado en el tratamiento de otra interrupción.
Supervisor: Indica si el procesador está ejecutando en modo supervisor o en modo usuario. Ciertas instrucciones privilegiadas sólo se pueden ejecutar en modo supervisor y sólo se puede tener acceso a ciertas áreas de memoria en modo supervisor.
  •  
En el diseño de un procesador específico, se pueden encontrar una serie de registros relacionados con el estado y el control. Además de la PSW, puede haber un puntero a un bloque de memoria que contenga información de estado adicional. En máquinas que utilizan varios tipos de interrupción, se puede ofrecer una serie de registros con punteros a cada rutina de tratamiento de interrupción. Si se utiliza una pila para implementar ciertas funciones (por ejemplo, las llamadas a procedimientos), entonces se necesita un puntero a la pila. Por último, los registros también pueden utilizarse para el control de las operaciones de E/S.
 
Una serie de factores inciden en el diseño de la organización de los registros de control y estado. Un punto clave es el soporte del sistema operativo. Cierto tipo de información de control es de utilidad específica para el sistema operativo. Si el diseñador del procesador dispone de una visión funcional del sistema operativo, la organización de los registros puede adaptarse convenientemente.
Otra decisión clave del diseño es la asignación de información de control a los registros y la memoria. Es habitual dedicar los primeros centenares o miles de palabras (las más bajas) de memoria para el control. El diseñador debe decidir la cantidad de información de control que debe residir en los rápidos y costosos registros, junto a la cantidad que debe permanecer en memoria principal, que es más lenta y barata.



mapa mental


segundo ejercicio