El procesador
Índice
- Introducción
- Objetivos
- 1.Organización del procesador
- 2.Ciclo de ejecución de las instrucciones
- 3.Registros
- 4.Unidad aritmética y lógica
- 5.Unidad de control
- 6.Computadores CISC y RISC
- Resumen
Introducción
-
Conjunto de registros.
-
Unidad aritmética y lógica.
-
Unidad de control.
Objetivos
-
Entender la organización de un procesador en lo relativo a las unidades funcionales que lo componen: registros, ALU y unidad de control.
-
Entender cómo ejecuta una instrucción un procesador.
-
Conocer la organización del conjunto de registros del procesador.
-
Ver los conceptos básicos relacionados con la ALU.
-
Entender el funcionamiento de la unidad de control del procesador.
-
Conocer las ideas clave para diseñar una unidad de control.
-
Saber las diferencias principales entre computadores RISC y CISC.
1.Organización del procesador
-
Unidades de ejecución SIMD: unidades especializadas en la ejecución de instrucciones SIMD (single instruction, multiple data), instrucciones que trabajan con estructuras de datos vectoriales, como por ejemplo instrucciones multimedia.
-
Memoria caché: prácticamente todos los procesadores modernos incorporan dentro del propio chip del procesador algunos niveles de memoria caché.
-
Unidad de gestión de memoria o memory management unit (MMU): gestiona el espacio de direcciones virtuales, traduciendo las direcciones de memoria virtual a direcciones de memoria física en tiempo de ejecución. Esta traducción permite proteger el espacio de direcciones de un programa del espacio de direcciones de otros programas y también permite separar el espacio de memoria del sistema operativo del espacio de memoria de los programas de usuario.
-
Unidad de punto flotante o floating point unit (FPU): unidad especializada en hacer operaciones en punto flotante; puede funcionar de manera autónoma, ya que dispone de un conjunto de registros propio.
2.Ciclo de ejecución de las instrucciones
2) Lectura de los operandos fuente.
3) Ejecución de la instrucción y almacenamiento del operando de destino.
4) Comprobación de interrupciones.
-
Almacenar el contador del programa y la palabra de estado (generalmente, se guardan en la pila).
-
Almacenar la dirección donde empieza la rutina para atender la interrupción en el contador del programa.
-
Ejecutar la rutina de servicio de interrupción.
-
Recuperar el contador del programa y la palabra de estado.
2.1.Segmentación de las instrucciones
-
¿Cómo hay que hacerlo para que las etapas estén bien equilibradas (que todas tengan la misma duración)?
-
¿Qué recursos son necesarios en cada etapa para que todas se puedan ejecutar simultáneamente?
-
¿Cómo hay que tratar las instrucciones de salto para minimizar los efectos en el rendimiento de la segmentación?
3.Registros
-
Registros de propósito general.
-
Registros de instrucción.
-
Registros de acceso a memoria.
-
Registros de estado y de control.
3.1.Registros de propósito general
3.2.Registros de instrucción
-
Program counter (PC): registro contador del programa, contiene la dirección de la instrucción siguiente que hay que leer de la memoria.
-
Instruction register (IR): registro de instrucción, contiene la instrucción que hay que ejecutar.
3.3.Registros de acceso a memoria
-
Memory address register (MAR): registro de direcciones de memoria, donde ponemos la dirección de memoria a la que queremos acceder.
-
Memory buffer register (MBR): registro de datos de memoria; registro donde la memoria deposita el dato leído o el dato que queremos escribir.
3.4.Registros de estado y de control
-
Bit de cero: se activa si el resultado obtenido es 0.
-
Bit de transporte: se activa si en el último bit que operamos en una operación aritmética se produce transporte; también puede deberse a una operación de desplazamiento.
-
Bit de desbordamiento: se activa si la última operación ha producido un resultado que no se puede representar en el formato que estamos utilizando.
-
Bit de signo: se activa si el resultado obtenido es negativo.
-
Bit de interrupción: indica si las interrupciones están habilitadas o inhibidas.
-
Bit de modo de operación: indica si la instrucción se ejecuta en modo supervisor o en modo usuario. Hay instrucciones que solo se ejecutan en modo supervisor.
-
Nivel de ejecución: indica el nivel de privilegio de un programa en ejecución. Un programa puede desalojar el programa que se ejecuta actualmente si su nivel de privilegio es superior.
4.Unidad aritmética y lógica
-
Precisión simple: números binarios en punto flotante de 32 bits, utilizan un bit de signo, 8 bits para el exponente y 23 para la mantisa.
-
Doble precisión: números binarios en punto flotante de 64 bits, utilizan un bit de signo, 11 bits para el exponente y 52 para la mantisa.
-
Cuádruple precisión: números binarios en punto flotante de 128 bits, utilizan un bit de signo, 15 bits para el exponente y 112 para la mantisa.
5.Unidad de control
5.1.Microoperaciones
5.1.1.Tipos de microoperaciones
Registro de destino ← Registro de origen <operación> Registro de origen / Valor
5.1.2.Ciclo de ejecución
Lectura de la instrucción
Lectura de los operandos fuente
-
Si el dato está en la instrucción misma, no hay que hacer nada porque ya lo tenemos en la misma instrucción.
-
Si el dato está en un registro, no hay que hacer nada porque ya lo tenemos disponible en un registro dentro del procesador.
-
Si el dato está en la memoria, hay que llevarlo al registro MBR.
-
Inmediato: el dato está en la misma instrucción y, por lo tanto, no hay que hacer nada: IR (operando).
-
Directo a registro: el dato está en un registro y, por lo tanto, no hay que hacer nada.
-
Relativo a registro índice:
-
MAR ← IR(Dirección operando) + Contenido IR(registro índice)
-
MBR ← Memoria: leemos el dato.
-
Ejecución de la instrucción y almacenamiento del operando de destino
-
MBR ← <Resultado ejecución>
-
MAR ← IR(Dirección operando)
-
Memoria ← MBR
-
MBR ← <Resultado ejecución>
-
MAR ← Contenido IR(RB) + IR(Desplazamiento operando)
-
Memoria ← MBR
Comprobación de interrupciones
-
MBR ← PC: se pone el contenido del PC en el registro MBR.
-
MAR ← Dirección de salvaguarda: se indica dónde se guarda el PC.
-
Memoria ← MBR: se guarda el PC en la memoria.
-
PC ← Dirección de la rutina: se posiciona el PC al inicio de la rutina de servicio de la interrupción.
5.2.Señales de control y temporización
-
F1: lectura de la instrucción.
-
F2: lectura de los operandos fuente.
-
F3: ejecución de la instrucción y almacenamiento del operando de destino.
-
F4: comprobación de interrupciones.
5.3.Unidad de control cableada
-
Control cableado.
-
Control microprogramado.
5.3.1.Organización de la unidad de control cableada
5.4.Unidad de control microprogramada
5.4.1.Microinstrucciones
5.4.2.Organización de una unidad de control microprogramada
5.4.3.Funcionamiento de la unidad de control microprogramada
Secuenciación de las microinstrucciones
-
El registro de instrucción, que solo se utiliza para determinar el microprograma propio de cada instrucción.
-
El registro de estado, que solo se utiliza cuando hay que romper la secuencia normal de ejecución de un programa, como sucede cuando se han de evaluar las condiciones en una instrucción de salto condicional.
-
El campo de condición de la microinstrucción. Es el factor que se utiliza más frecuentemente. Este es el factor que hay que evaluar para saber si se debe continuar en secuencia o hacer una bifurcación:
-
Si la condición indicada es falsa, la microinstrucción siguiente que se ejecutará es la que sigue en secuencia y la dirección de esta microinstrucción puede estar especificada en la misma microinstrucción o se puede obtener incrementando el valor actual del registro de direcciones de control.
-
Si la condición indicada es cierta, la microinstrucción siguiente que se ejecutará es la que indica la dirección de bifurcación y esta dirección se obtiene de la misma microinstrucción.
-
Generación de las señales de control
5.5.Comparación: unidad de control microprogramada y cableada
-
Simplifica el diseño.
-
Es más económica.
-
Es más flexible:
-
Adaptable a la incorporación de nuevas instrucciones.
-
Adaptable a cambios de organización, tecnológicos, etc.
-
-
Permite disponer de un juego de instrucciones con gran número de instrucciones. Solo hay que poseer una memoria de control de gran capacidad.
-
Permite disponer de varios juegos de instrucciones en una misma máquina (emulación de máquinas).
-
Permite ser compatible con máquinas anteriores de la misma familia.
-
Permite construir máquinas con diferentes organizaciones pero con un mismo juego de instrucciones.
-
Es más lenta: implica acceder a una memoria e interpretar las microinstrucciones necesarias para ejecutar cada instrucción.
-
Es necesario un entorno de desarrollo para los microprogramas.
-
Es necesario un compilador de microprogramas.
6.Computadores CISC y RISC
-
Computadores CISC (4) , cuyas características son:
-
El formato de instrucción es de longitud variable.
-
Dispone de un gran juego de instrucciones, habitualmente más de cien, para dar respuesta a la mayoría de las necesidades de los programadores.
-
Dispone de un número muy elevado de modos de direccionamiento.
-
Es una familia anterior a la de los procesadores RISC.
-
La unidad de control es microprogramada; es decir, la ejecución de instrucciones se realiza descomponiendo la instrucción en una secuencia de microinstrucciones muy simples.
-
Procesa instrucciones largas y de tamaño variable, lo que dificulta el procesamiento simultáneo de instrucciones.
-
-
Computadores RISC (5) , que tienen las características siguientes:
-
El formato de instrucción es de tamaño fijo y corto, lo que permite un procesamiento más fácil y rápido.
-
El juego de instrucciones se reduce a instrucciones básicas y simples, con las que se deben implementar todas las operaciones complejas. Una instrucción de un procesador CISC se tiene que escribir como un conjunto de instrucciones RISC.
-
Dispone de un número muy reducido de modos de direccionamiento.
-
La arquitectura es de tipo load-store (carga y almacena) o registro-registro. Las únicas instrucciones que tienen acceso a memoria son LOAD y STORE, y el resto de las instrucciones utilizan registros como operandos.
-
Dispone de un amplio banco de registros de propósito general.
-
Casi todas las instrucciones se pueden ejecutar en pocos ciclos de reloj.
-
Este tipo de juego de instrucción facilita la segmentación del ciclo de ejecución, lo que permite la ejecución simultánea de instrucciones.
-
La unidad de control es cableada y microprogramada.
-
Resumen
-
Conjunto de registros.
-
Unidad aritmética y lógica.
-
Unidad de control.
Inicio del ciclo de ejecución |
|
---|---|
Fase 1: lectura de la instrucción |
Leer la instrucción. |
Descodificar la instrucción. |
|
Actualizar el PC. |
|
Fase 2: lectura de los operandos fuente |
Calcular la dirección y leer el primer operando fuente. |
Calcular la dirección y leer el segundo operando fuente. |
|
Fase 3: ejecución de la instrucción y almacenamiento del operando de destino |
Ejecutar la instrucción. |
Fase 4: comprobación de interrupciones |
Comprobar si algún dispositivo ha solicitado una interrupción. |
-
Registros de propósito general.
-
Registros de instrucción.
-
Registros de acceso a memoria.
-
Registros de estado y de control.
-
Microoperaciones.
-
Señales de control y temporización.
-
Unidad de control cableada.
-
Unidad de control microprogramada.
-
Ventajas e inconvenientes de la unidad de control microprogramada con respecto a la implementación cableada.