Función Básica de un Computador
La función principal de un computador es la ejecución de instrucciones máquina (operaciones elementales). En estas instrucciones se especifican:
- La operación a realizar.
- Los datos o su localización.
- La localización del resultado.
Arquitectura Von Neumann
La Arquitectura Von Neumann se caracteriza por:
- Datos e instrucciones almacenados en una memoria única de lectura/escritura (memoria principal, Mp).
- El contenido de la memoria es accesible mediante direcciones.
- La ejecución es implícitamente secuencial, aunque permite saltos.
Ciclo de Bus
El ciclo de bus se refiere a los ciclos de lectura y escritura en la memoria. Este proceso:
- Implica un acceso al exterior de la CPU.
- Durante este tiempo, solo la CPU puede acceder a los buses (ningún periférico).
- Suele durar más de un ciclo de reloj.
Unidad Central de Proceso (CPU)
La Unidad Central de Proceso (CPU) se compone de varios elementos clave:
Unidad de Control (UC)
La Unidad de Control es responsable de:
- Extraer de la memoria principal (Mp) la instrucción a ejecutar.
- Analizarla (decodificarla).
- Dar las órdenes al resto de los componentes del sistema.
Unidad Aritmético-Lógica (ALU)
La ALU realiza las operaciones aritméticas y lógicas indicadas por la Unidad de Control sobre los datos de entrada.
Registros
Los registros son pequeñas unidades de memoria de muy alta velocidad, utilizadas para almacenamiento a corto plazo dentro de la CPU.
Modelos de Ejecución de Instrucciones
(Estos modelos afectan principalmente a las operaciones aritmético-lógicas)
Registro-Registro
En este modelo, tanto el operador fuente como el destino son registros. El operador fuente también puede ser un valor inmediato.
Registro-Memoria
Uno de los operadores fuente puede estar en memoria y el otro en un registro o ser un valor inmediato (o viceversa). El destino puede ser un registro o una posición de memoria.
Memoria-Memoria
En este modelo, todos los operandos, tanto el destino como las fuentes, pueden residir en memoria.
Tipos de Registros
- De Propósito General: Utilizados explícitamente por cualquier instrucción.
- De Propósito Específico (PC y SR): Su uso es muy concreto y está restringido a determinadas instrucciones máquina.
- Transparentes (IR, AR, DR): Son de uso interno de la CPU y no están disponibles directamente para el programador.
Registros que Afectan a la Unidad de Control
Los registros IR (Registro de Instrucción) y SR (Registro de Estado) son fundamentales. Las señales que controlan la Unidad de Control (UC) incluyen RD (Lectura), WR (Escritura) y MEMRQ (Solicitud de Memoria).
Fases de Ejecución de una Instrucción
El ciclo de vida de una instrucción se compone de las siguientes fases:
- Comienzo
- Fetch (Búsqueda de la instrucción)
- Decodificación (Análisis de la instrucción)
- Ejecución:
- Búsqueda de operandos.
- Realización de la operación.
- Almacenamiento de resultados.
- Preparación de la siguiente instrucción
- Fin
Módulo de Entrada/Salida (E/S)
Los módulos de E/S gestionan la comunicación con una gran variedad de periféricos, destacando los discos como memoria a largo plazo. Estos módulos:
- Se encargan de la comunicación con los periféricos.
- Ocultan las particularidades de cada dispositivo.
- Disponen de un registro de estado, un registro de control y un registro de datos.
Direccionamiento de E/S
El direccionamiento de E/S implica la selección del periférico deseado. Para ello:
- Cada registro de E/S tiene una dirección única.
- Se utilizan instrucciones especiales (como
in
/out
en contraste conld
/st
para memoria) para interactuar con ellos.
Modos de Realizar Operaciones de E/S
Existen diferentes modos para gestionar las operaciones de Entrada/Salida:
- E/S Programada: La CPU se encarga de toda la operación, dedicándose al 100% a la E/S.
- E/S Mediante Interrupciones: El módulo de E/S avisa a la CPU mediante una interrupción cuando tiene un dato listo.
- Acceso Directo a Memoria (DMA): La CPU apenas interviene. Cada vez que un dato está listo, un controlador DMA «roba» un ciclo de acceso a memoria a la CPU para transferir el dato directamente.
Afirmaciones y Correcciones
Afirmación: La Unidad de Control (UC) necesita como entrada el registro de estado y el registro de direcciones de memoria.
Corrección: Falso. El registro de direcciones de memoria no es una entrada directa para la UC; en su lugar, sería el registro de instrucción (IR).
Afirmación: La E/S programada permite que la operación en el dispositivo se realice más rápidamente.
Corrección: Falso. El tiempo de operación depende principalmente del periférico, no del tipo de E/S. La E/S programada, de hecho, puede ser más lenta debido a la dedicación exclusiva de la CPU.
Afirmación: En un computador con modelo de ejecución registro-registro se puede ejecutar ADD R1, [R2]
.
Corrección: Falso. No se puede ejecutar porque uno de los operandos fuente ([R2]
) está en memoria. El modelo de ejecución registro-registro exige que, para una instrucción aritmética como esta, los operandos fuente estén en un registro o sean un valor inmediato, y el destino sea un registro. Esta instrucción podría ejecutarse si el modelo de direccionamiento fuera registro-memoria o memoria-memoria.
Comportamiento de Registros en Fases de Ejecución
Ejemplo de Tabla de Registros (Contexto Implícito)
Si se proporciona una tabla de seguimiento de registros:
- El PC (Program Counter) inicial se incrementa con el tamaño de una palabra para obtener el PC de la fase de Fetch y Ejecución.
- Los demás registros de propósito general se mantienen, a menos que la instrucción los modifique explícitamente.
- El AR (Address Register) toma el valor del Fetch inicial y, en la fase de ejecución, toma el valor inicial del segundo registro (si aplica).
- El DR (Data Register) en la fase de Fetch no tiene un valor relevante, y en la fase de Ejecución toma el valor inicial del primer registro (si aplica).
Registros Modificados en la Fase de Fetch
Durante la fase de Fetch (búsqueda de instrucción), los siguientes registros se modifican:
- PC (Program Counter): Registro de propósito específico que guarda la dirección de la instrucción a ejecutar. Durante el Fetch, se actualiza para apuntar a la siguiente instrucción.
- AR (Address Register): Registro transparente donde se guarda la dirección de memoria a la que se quiere acceder para buscar la instrucción.
- DR (Data Register): Registro transparente donde se guarda el dato (en este caso, la instrucción) que se lee de la memoria principal (MP).
- IR (Instruction Register): Registro transparente que contiene la instrucción que acaba de ser buscada y que se va a ejecutar.
Conceptos Clave: Verdadero o Falso
Afirmación: La arquitectura Von Neumann de un computador se basa en una CPU que tiene instrucciones y datos en memorias separadas para que no haya errores de ejecución.
Corrección: Falso. El modelo Von Neumann se basa en utilizar una única memoria para almacenar tanto datos como instrucciones. Esto implica que, si la memoria no se organiza correctamente, podría intentarse ejecutar un dato como si fuera una instrucción, lo que podría llevar a errores.
Afirmación: El registro de instrucción (IR) es un registro de propósito específico que contiene la dirección de la siguiente instrucción a ejecutar.
Corrección: Falso. El IR es un registro transparente al usuario, cuya función específica es contener la instrucción que se está ejecutando en cada momento, no su dirección ni la de la siguiente instrucción.
Afirmación: Las únicas instrucciones en las que alguna de sus fases de ejecución conllevan un acceso a memoria son las instrucciones load
y store
.
Corrección: Falso. Existen otras instrucciones que pueden acceder a la pila, como PUSH
, POP
o RET
, las cuales también implican accesos a memoria durante su ejecución.
Afirmación: El registro puntero de pila es un registro transparente al usuario que puede contener direcciones y datos.
Corrección: Falso. El registro puntero de pila es un registro de propósito específico que solo contiene la dirección de memoria donde se encuentra la cima de la pila.
Afirmación: La E/S por DMA es la que proporciona mejor rendimiento en la transferencia de un bloque de datos a un periférico.
Corrección: Verdadero. La E/S por DMA (Acceso Directo a Memoria) proporciona mejores prestaciones que la E/S programada o por interrupciones, ya que libera a la CPU tanto de la sincronización del periférico como de la transferencia del dato, optimizando el rendimiento general del sistema.
Afirmación: El IR es un registro de propósito general que contiene la dirección de la instrucción que se está ejecutando en cada momento.
Corrección: Falso. El IR no es un registro de propósito general, sino que es transparente al usuario. Sin embargo, sí contiene la instrucción que se ejecuta en cada momento (no su dirección).
Afirmación: El modelo Von Neumann se basa en separar los datos e instrucciones en dos memorias diferentes, para que las interrupciones puedan estar almacenadas consecutivamente en memoria.
Corrección: Falso. El modelo Von Neumann se basa en utilizar una única memoria para almacenar tanto datos como instrucciones. Si la memoria no se organiza correctamente, podría intentarse ejecutar un dato como si fuera una instrucción, lo que podría llevar a errores.
Conceptos Adicionales de Arquitectura
Pregunta: ¿Qué significa que el tamaño de palabra de un computador sea ‘n’ bits?
Respuesta: El tamaño de palabra de un computador se refiere a la cantidad de información que se maneja en paralelo. Esto incluye:
- El número de bits que se leen/escriben en memoria en un solo acceso.
- El número de bits con los que opera la ALU en paralelo.
- El número de bits que se transfieren en paralelo por los buses internos y externos de datos.
Los tamaños de palabra típicos en la actualidad son 32 y 64 bits.
Afirmación: El SR (Status Register) es un registro de propósito específico que no es transparente al usuario, ya que lo puede referenciar en algunas instrucciones.
Corrección: Verdadero. El programador puede referenciar el SR en varias instrucciones, como los saltos condicionales, por lo que no es transparente al programador.
Afirmación: El PC (Program Counter) contiene siempre la instrucción siguiente a la que se está ejecutando.
Corrección: Falso. El PC contiene la dirección de la siguiente instrucción a ejecutar, no la instrucción en sí.
Afirmación: El tiempo de acceso a la memoria se indica por el parámetro MIPS.
Corrección: Falso. Los MIPS (Millones de Instrucciones Por Segundo) son un indicador de la capacidad de procesamiento de la CPU. El tiempo de acceso a memoria es el tiempo que tarda la memoria en acceder a una palabra máquina. La velocidad de la memoria se puede indicar por su caudal, o cantidad de información accesible por unidad de tiempo.