Unidad de Control

Anuncio
Micro-Operaciones
En la ejecución de un programa en una
computadora, se ejecutan instrucciones,
que pueden subdividirse en ciclos:
• Búsqueda/Ejecución
• Cada ciclo se compone a su vez de una
serie de operaciones más sencillas,
llamadas microoperaciones
• Implican movimientos de información a
nivel de registros, y son las operaciones
más elementales e indivisibles del
computador.
Elementos constituyentes de la
ejecución de un programa
4 Registros básicos:
• Registro de Direcciones de Memoria (memoria
Address registro, MAR)
— Conectado al bus de direcciones
— Especifica la dirección en la que se lee o escribe un
operando
• Registro Separador de Memoria (Memory Buffer
registro, MBR)
— Conectado al bus de datos
— Almacena el dato a escribir o el último dato leído
• Contador de Programa (Program Counter, PC)
— Almacena la dirección de la próxima dirección a ser
ejecutada
• Registro de Instrucción (instrucción registro,IR)
— Almacena la última instrucción captada
Secuencia de Búsqueda (Captación)
• La dirección de la instrucción está en el PC.
• El valor de la dirección (MAR) se coloca en el
bus de direcciones.
• La Unidad de Control genera un comando READ
• El resultado (un dato desde la memoria)
aparece en el bus de datos
• El dato se copia al MBR desde el bus de datos.
• El PC se incrementa en 1 (en paralelo con la
búsqueda del dato desde la memoria)
• El dato (instrución) se mueve del MBR al IR
• El MBR queda libre para nuevas búsquedas de
datos
Secuencia de Búsqueda (simbólica)
• t1: MAR (PC) (tx = ciclo de reloj)
• t2: MBR (memoria)
•
PC (PC) +1
• t3: IR (MBR)
• ó:
• t1: MAR (PC)
• t2: MBR (memoria)
• t3: PC (PC) +1
•
IR (MBR)
Reglas para agrupamiento de µ-ops en un
mismo ciclo de reloj
• Debe seguirse la secuencia apropiada
—MAR (PC) debe preceder a MBR(memoria)
• Deben evitarse conflictos:
—No se debe leer ni escribir el mismo registro al
mismo tiempo.
—MBR (memoria) & IR (MBR) no deben
hacerse en el mismo ciclo
• También: PC (PC)+1 involucra una suma
—Se puede usar la ALU para disminuir la
circuitería
—Pero pueden ser necesarias más
microoperaciones
Ciclo indirecto
• MAR (IRdirección) - campo de dirección del
IR
• MBR (memoria)
• IRdirección (MBRdirección)
• El MBR contiene una dirección
• El IR está ahora en el mismo estado en que
estaría si se hubiera usado un
direccionamiento directo
Ciclo de interrupción
•
•
•
•
•
t1: MBR (PC)
t2: MAR dirección de salvaguarda
PC dirección de la rutina
t3: memoria (MBR)
Esto es un ciclo mínimo, ya que si el
procesador tiene más de un nivel o tipo
de interrupciones, pueden ser necesarias
más microoperaciones para obtener la
dirección de salvaguarda
Ciclo de Ejecución (ADD)
• Es diferente para cada instrucción
• P.ej.: ADD R1,X – suma el contenido de la
posición X al registro R1, dejando el
resultado en R1
•
•
•
•
t1: MAR (IRdirección)
t2: MBR (memoria)
t3: R1 R1 + (MBR)
No hay superposición de micro-operaciones
Ciclo de Ejecución (ISZ)
• ISZ X - incrementar y saltar si cero
—t1:
—t2:
—t3:
—t4:
—
MAR (IRdirección)
MBR (memoria)
MBR (MBR) + 1
memoria (MBR)
si (MBR) = 0 entonces PC (PC) + 1
• Notas:
—if es una micro-operación simple
—Se puede ejecutar al mismo tiempo que el
valor actualizador de MBR se coloca en la
memoria (t4).
Ciclo de Ejecución (BSA)
• BSA X – Saltar y guardar la dirección
—La dirección de la instrucción siguiente a BSA
se guarda en la posición X
—La ejecución continúa desde X+1
—t1:
—
—t2:
—
—t3:
MAR (IRdirección)
MBR (PC)
PC (IRdirección)
memoria (MBR)
PC (PC) + 1
Resúmen de un Ciclo de Instrucción
• Cada fase puede descomponerse en una serie
de micro-operaciones elementales
• P.ej., para los ciclos de búsqueda, indirecto, y
de interrupción
• Para el ciclo de ejecución
—Hay una secuencia de micro-operaciones para cada
código de operación
• Necesitamos unir las secuencias de
microoperaciones
• Suponemos un nuevo registro de 2 bits:
—Código de Ciclo de Instrucción (instrucción cycle
code, ICC), que determina el estado del procesador
en términos de que parte del ciclo se encuentra:
–
–
–
–
00:
01:
10:
11:
Búsqueda
Indirecto
Ejecucíón
Interrupción
Diagrama de flujo del Ciclo de Instrucción
Requerimientos funcionales de la Unidad
de Control
1) Definir los elementos básicos del
procesador
2) Describir las microoperaciones que
ejecuta el procesador
3) Determinar las funciones que debe
realizar las unidad de control para que se
ejecuten las operaciones.
1) Elementos básicos del Procesador
•
•
•
•
•
ALU
Registros
Caminos de datos internos
Caminos de datos externos
Unidad de Control
2) Tipos de Micro-operaciones
• Transferencia de datos entre registros
• Transferencia de datos desde un registro
a una interfaz externa (p.ej., el bus del
sistema)
• Transferencia de datos desde una interfaz
externa a un registro
• Realizar una operación aritmética o lógica
entre registros.
3) Funciones de la Unidad de Control
• Secuenciamiento
—Hacer que la CPU realice una serie de microoperaciones en la secuencia correcta, de
acuerdo al programa que se esta ejecutando.
• Ejecución
—Hacer que se ejecute cada micro-operación
• Esto se logra mediante la utilización de
señales de control.
Señales de Control - Entradas
• Reloj
—La señal que hace que se ejecute una microoperación (o un conjunto de microoperaciones simultáneas) por ciclo de reloj
• Registro de Instrucción
—Código de operación de la instrucción en curso
—Determina cuales micro-instrucciones se
realizan en el ciclo de ejecución
• Indicadores (Flags)
—Estado de la CPU
—Resultado de operaciones previas
• Señales de control de bus del sistema
—Interrupciones
—Reconocimientos
Modelo de una Unidad de Control
Señales de Control - Salidas
• Internas de la CPU
—Las que provocan movimientos de datos entre
registros
—Las que activan funciones específicas de la
ALU
• Hacia el bus de control
—Para la memoria
—Para los módulos de I/O
Ejemplo de Secuencia de Señales de
Control - Búsqueda
• MAR (PC)
— La Unidad de Control activa la señal para las
compuertas entre el PC y el MAR
• MBR (memoria)
—Activa las compuertas entre MAR y el bus de
direcciones
—Activa la señal de control de lectura de la
memoria
—Activa las compuertas entre el bus de datos y
el MBR
Caminos de datos y Señales de Control
Organización Interna
• Dada la complejidad de las conexiones, lo
usual es utilizar un bus interno
• Las compuertas controlan el movimiento
de datos desde y hacia el bus interno
• Las señales de control manejan la
transferencia de datos desde y hacia el
bus externo.
• Es necesario agregar registros temporales
(de entrada y de salida) para asegurar
una operación apropiada de la ALU
CPU con
Bus Interno
Implementación Cableada (1)
• La Unidad de Control es un circuito
secuencial, cuyas entradas son:
• Indicadores (Flags) y líneas del bus de
control
—Cada bit tiene un significado determinado
• Registro de Instrucción
—Cada código de operación genera diferentes
señales de control para cada instrucción
—Entoces, debe haber una entrada lógica única
para cada código de operación
—Esta función la realiza un decodificador
—n entradas binarias y 2n salidas
Implementación Cableada (2)
• Reloj
—Provee una secuencia repetitiva de pulsos
—Permite calcular la duración de cada microoperación
—Debe ser de una duración suficiente para
segurar la propagación de las señal a través
de las compuertas u buses
—Hay señales de control diferentes en unidades
de tiempo diferentes dentro de un único ciclo
de instrucción.
—Por lo tanto, se necesita un contador que
genere una señal de control diferente para t1,
t2, etc.
Unidad de Control con Entradas
Decodificadas
Problemas del diseño de Lógica Cableada
• La lógica del secuenciamiento y las microoperaciones resulta muy compleja
- Esto dificulta el diseño y el testeo
• El diseño resulta inflexible.
- Esto impide agregar nuevas instrucciones.
Control Micro-programado
• Usa una secuencia de intrucciones para
controlar operaciones complejas
• Esta secuencia se denomina microprogramación o firmware
Implementación
• Todo lo que una Unidad de Control hace es
generar un conjunto de señales de control
para cada micro-operación
• Cada señal de control está activa o inactiva
• Por lo tanto, se puede representar cada
señal de control con un bit
• El conjunto de bits de todas las señales de
control conformará una palabra de control
• Cada instrucción (código de máquina) tiene
una secuencia de palabras de control
• Se puede adicionar una dirección que
especifique la siguiente instrucción
(condicionales)
Tipos de Micro-instrucciones
• Cada micro-instrucción especifica una(o
pocas) micro-operaciones a ser realizadas
— (micro-programación vertical)
• Cada micro-instrucción especifica varias
diferentes micro-operaciones a ser
realizadas en paralelo
—(micro-programación horizontal)
Formatos de Microinstrucción típicos
Organización de
una Memoria de
Control
Unidad de
Control
Funcionamiento
de una Unidad de
Control microprogramada
Funcionamiento de la Unidad de Control
• La lógica de secunciamiento envía un comando
de lectura a la memoria de control
• La palabra especificada por el registro de
dirección de control es leída en el registro
intermedio de control.
• El registro intermedio de control genera las
señales de control y contiene la información de la
siguiente dirección
• La lógica de secuenciamiento carga la nueva
dirección en el registro de dirección de control,
basada en la información proporcionada por el
registro intermedio de control y por los
indicadores de la ALU
• Todo esto sucede en un ciclo de reloj.
Decisión de la Siguiente Dirección
• Dependiendo de los indicadores (flags) de
la ALU y del registro intermedio de control,
se decide una de las siguientes tres
decisiones:
—Buscar la siguiente instrucción
– Se suma 1 al registro de dirección de control
—Saltar a una nueva rutina según indica una
microinstrucción de salto
– El campo de dirección del registro intermedio de
control se carga en el registro de dirección de control
—Saltar a la rutina de una instrucción de máquina
– Se carga el registro de dirección de control en función
del código de operación almacenado en IR
Lectura Requerida
• Stallings capítulos 14-15
Descargar