Publicado el 8 de Mayo del 2018
578 visualizaciones desde el 8 de Mayo del 2018
2,8 MB
40 paginas
Creado hace 13a (11/08/2010)
Arquitectura de Computadores II
Clase #4
Facultad de Ingeniería
Universidad de la República
Instituto de Computación
Curso 2010
Contenido
Unidad de control
Control cableado
Control microprogramado
MIC-1
Arquitectura de Computadores II
La Unidad de Control
La instrucción contenida en el Instruction Register (IR)
determina la acción de la Unidad de Control
La ejecución incluye los siguientes pasos:
• Instruction Fetch (IF)
• Instruction Decode (ID)
• Operand Fetch (OF)
• Operation Execution (OE)
• Operand Store(OS)
La Unidad de Control debe controlar la secuencia de pasos
discretos que son necesarios para decodificar y ejecutar las
instrucciones; se puede ver como un problema que se
puede resolver en hardware o en software.
Arquitectura de Computadores II
Control cableado
Se implementa como un circuito secuencial, usando
compuertas y componentes (NAND, NOR, flip-flops,
contadores, etc.).
Los sistemas cableados son rápidos pero pueden ser
inflexibles
Las funciones de control son fijas; si se necesita agregar
instrucciones extra, el circuito debe rediseñarse
Algunos procesadores RISC usan control cableado para
aumentar la velocidad
Normalmente se usa una combinación de control
cableado para instrucciones sencillas y microcódigo
para instrucciones complejas y poco frecuentes
Arquitectura de Computadores II
Control microprogramado
Solución en software del control de la máquina
Un control microprogramado se puede ver como
un computador “interno” que implementa el ciclo
de instrucción de la CPU
Para cada “macroinstrucción” existe una
secuencia específica de microinstrucciones que la
implementa
El código elemental necesario para implementar
el ciclo de instrucción de la CPU se almacena en
memoria de microprograma de tipo ROM
Usualmente denominado firmware
Arquitectura de Computadores II
La Unidad de Control
La unidad de control emite señales:
Internas
Externas
Tiene como entradas:
Registro de instrucción
Estado
Señales de control externas
Arquitectura de Computadores II
Vista general de la Unidad de
Control
Registro de Instrucción
Señales de Control
internas a la CPU
Flags
Reloj
Unidad de Control
Señales de Control hacia
el Bus del sistema
Señales de Control desde
el Bus del sistema
Arquitectura de Computadores II
Bus de
Control
Entradas
Reloj
Una o varias micro-operaciones por ciclo
Registro de Instrucción (IR)
Opcode de la instrucción en ejecución
Determina qué micro-operaciones deben ser ejecutadas
Flags de condición
Estado de la CPU, resultado de operaciones previas
Del bus de control
Ej. Interrupciones
Arquitectura de Computadores II
Salidas
Internas a la CPU
Movimiento de datos entre registros
Activar funciones de ALU
Hacia el bus de control
Memoria
E/S
Ejemplo, señales de control en fetch
• Habilitar transferencia entre PC y MAR
• Habilitar transferencia entre MAR y bus de direcciones
• Señal de lectura de memoria
• Habilitar transferencia entre el bus de datos y MBR
Arquitectura de Computadores II
Repaso circuitos (i)
Arquitectura de Computadores II
Repaso circuitos (ii)
Arquitectura de Computadores II
Repaso circuitos (iii)
Arquitectura de Computadores II
Repaso circuitos (iv)
Arquitectura de Computadores II
Control implementado en
Hardware (i)
Las entradas, como flags, IR, y señales del bus
de control, determinan, junto con el estado
actual (ej. etapa del ciclo de instrucción), las
señales de control que deben enviarse a los
diferentes componentes de la CPU y hacia el
exterior de la CPU.
Instruction register
Cada código de operación (op-code) implica diferentes
señales de control
Se puede implementar usando un decodificador que
para cada código de operación activa una única salida
• n entradas binarias y 2n salidas
Arquitectura de Computadores II
Control implementado en
Hardware (ii)
Reloj
Secuencia de pulsos que determina la duración de las
micro-operaciones
El ciclo de reloj debe ser lo suficientemente largo para
permitir la propagación de las señales
Se deben generar señales de control en diferentes
intervalos dentro del ciclo de instrucción
Contador con diferentes señales para t1, t2 etc.
Problemas del control cableado
Lógica compleja
Difícil de diseñar y probar
Diseño inflexible
Difícil agregar nuevas instrucciones
Arquitectura de Computadores II
Control implementado en
Hardware (iii)
Arquitectura de Computadores II
Control implementado en
Hardware (iv)
Subciclo
Microoperaciones
Señales de Control
Fetch
t1: MAR <- PC
t2: MBR <- memory
PC <- PC+1
t3: IR <- MBR
C2
C5, CR
No se muestra en figura
C4
CR = Señal Read hacia el bus del sistema
Arquitectura de Computadores II
Unidad de Control
microprogramada
Arquitectura de Computadores II
Organización de la memoria de
Control
-
-
-
-
-
-
-
-
-
-
Jump to Indirect or Execute
Fetch cycle routine
Jump to Execute
Indirect Cycle routine
Jump to Fetch
Interrupt cycle routine
Jump to Op code routine
Execute cycle begin
Jump to Fetch or Interrupt
AND routine
ADD routine
Jump to Fetch or Interrupt
Arquitectura de Computadores II
Implementación
Asociar a cada señal de control un bit de micro-instrucción
Una palabra de control para cada micro-operación, o para
todas las micro-operaciones que pueden realizarse
concurrentemente
Secuencia de palabras de control para cada instrucción
Agregar un campo de dirección para especificar próxima
micro-instrucción, dependiendo de las flags de condición
Microprocesadores actuales
Muchas instrucciones y hardware complejo
Muchas señales de control
El resultado es una memoria de control que:
• Contiene una gran cantidad de palabras, debido al amplio
repertorio de instrucciones.
• Tiene un ancho de palabra grande, debido a la gran cantidad de
señales que se deben generar.
Arquitectura de Computadores II
Tipos de microinstrucciones
El ancho de palabra de la memoria de
microprograma depende de
Cómo se codifica la información de control
Cómo se especifica la dirección de la próxima micro-
instrucción
Microprogramación horizontal
Cada micro-instrucción especifica las señales de control
sin codificar (muchas señales se pueden generar en
paralelo)
Microprogramación vertical
Señales de control codificadas
Arquitectura de Computadores II
Micro-programación Horizontal
Palabra de microprograma ancha
Posibilidad de paralelismo
Poca codificación de la información de control
Internal CPU Control Signals
Micro-instruction Address
System Bus
Control Signals
Jump Condition
Compromiso
Dividir la información de control en grupos disjuntos
Codificar cada grupo en campos diferentes de la palabra de
control
Soporta un nivel “razonable” de paralelismo sin demasiada
complejidad
Arquitectura de Computadores II
Micro-programación Vertical
Palabra de microprograma angosta
n combinaciones de señales de control
codificadas en log2 n bits
Capacidad limitada para expresar paralelismo
La información de control codificada requiere un
decodificador externo para manipular las señales
de control
Micro-instruction Address
Function Codes
Jump
Condition
Arquitectura de Computadores II
Nanoprogramación
w bits
log2 m bits
Microprograma
Donde Mu[k]=Mn[Mi[k]]
n
n
w bits
m Nanoprograma
Memoria Mu
Memoria Mi
Memoria Mn
Tamaño(Mu) # Tamaño(Mn)+ Tamaño(Mi)
Arquitectura de Computadores II
a
d
a
m
a
r
g
o
r
p
o
r
c
i
m
d
a
d
n
U
i
Arquitectura de Computadores II
Ruta de los datos (i)
Arquitectura de Computadores II
Ruta de los datos (ii)
Arquitectura de Computadores II
Microinstrucción
Arquitectura de Computadores II
Microcódigo
El microcódigo se almacena en una memoria por
lo que no es más que una secuencia de ceros y
unos.
Una manera de especificar las instrucciones es
indicar para cada campo distinto de cero su
valor.
Ejemplo: Sumar el contenido del registro AC al
contenido del registro A y almacenar el resultado en
AC. ENC=1, C=1, B=1, A=10.
Sin embargo podemos definir un lenguaje de
más alto nivel -> Microassembler
Arquitectura de Computadores II
Registros
PC
AC
SP
IR
TIR
0, 1, -1, AMASK, SMASK
A al F
Arquitectura de Computadores II
Microassembler (i)
Microassembler permite especificar
microinstrucciones a más alto nivel, pero hay
que tener en cuenta las limitaciones impuestas
sobre una microinstrucción.
Asignación: ‘:=‘
Ejemplos
• ac := a
• ac := ac + a
El operando destino puede ser cualquiera de los
registros PC a F, MAR y MBR. Tener en cuenta que
entrada a MAR no pasa por ALU. MAR no puede ser
operando de origen.
Arquitectura de Computadores II
Microassembler (ii)
Funciones (i)
Suma
• Reg + Reg
• Ejemplos
• ac + a
• ac + (-1)
And
• band(Reg,Reg)
• Ejemplo
• band(ir,amask)
Arquitectura de Computadores II
Microassembler (iii)
Funciones (ii)
not
• inv(Reg)
• Ejemplo
• inv(b)
Arquitectura de Computadores II
Microassembler (iv)
Desplazamineto
A la izquierda
• lshift(AluFunc)
• Ejemplo
• lshift(ir)
• lshift(ir+ir)
A la derecha
• rshift(AluFunc)
• Ejemplo
• rshift(ir)
• rshift(ir+ir)
Arquitectura de Computadores II
Microassembler (v)
Memoria
Lectura: rd
Escritura: wr
Saltos incondicionales
goto direccion
Ejemplo: goto 20
Saltos condicionales
if (cond) then goto direccion
Ejemplos
• if n then goto 30
• if z then goto 10
Arquitectura de Computadores II
Microassembler (vi)
Pseudo variable
alu, permite utilizar un registro para testear
una condición.
Ejemplo: alu:=ac; if z then goto 0
Arquitectura de Computadores II
Microcodigo (i)
Fetch
{main loop}
{incrementa PC}
{obtiene IR y decodifica}
0: mar:=pc;rd
1: pc:=pc+1;rd
2: ir:=mbr;if n then goto 28
3: tir:=lshift(ir+ir);if n then goto 19{opco
Comentarios de: Clase 4 - Arquitectura de Computadoras II (0)
No hay comentarios