Está en la página 1de 20

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

1
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

2
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

3
Vista general de la Unidad de
Control
Registro de Instrucción

Señales de Control
internas a la CPU

Flags

Señales de Control hacia


el Bus del sistema

Unidad de Control

Reloj

Señales de Control desde


el Bus del sistema

Bus de
Control
Arquitectura de Computadores II

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

4
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

5
Repaso circuitos (ii)

Arquitectura de Computadores II

Repaso circuitos (iii)

Arquitectura de Computadores II

6
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

7
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

8
Control implementado en
Hardware (iv)
Subciclo Microoperaciones Señales de Control
t1: MAR <- PC C2
t2: MBR <- memory C5, CR
Fetch
PC <- PC+1 No se muestra en figura
t3: IR <- MBR C4

CR = Señal Read hacia el bus del sistema

Arquitectura de Computadores II

Unidad de Control
microprogramada

Arquitectura de Computadores II

9
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
-
-
AND routine
Jump to Fetch or Interrupt
-
- 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

10
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 Jump Condition


Control Signals
 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

11
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

12
Unidad microprogramada

Arquitectura de Computadores II

Ruta de los datos (i)

Arquitectura de Computadores II

13
Ruta de los datos (ii)

Arquitectura de Computadores II

Microinstrucción

Arquitectura de Computadores II

14
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

15
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

16
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

17
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

18
Microcodigo (i)
 Fetch
0: mar:=pc;rd {main loop}
1: pc:=pc+1;rd {incrementa PC}
2: ir:=mbr;if n then goto 28 {obtiene IR y decodifica}
3: tir:=lshift(ir+ir);if n then goto 19{opcod 00xx o 01xx?}
4: tir:=lshift(tir);if n then goto 11 {opcod 000x o 001x?}
5: alu:=tir;if n then goto 9 {opcod 0000 o 0001?}

11: alu:=tir;if n then goto 15 {opcod 0010 o 0011?}

19: tir:=lshift(tir);if n then goto 25 {opcod 010x o 011x?}
20: alu:=tir;if n then goto 23 {opcod 0100 o 0101?}

Arquitectura de Computadores II

Microcodigo (ii)
 Ejecución
 Load direccion (0000dddddddddddd)
6: tir:=band(ir,amask) {obtengo direccion de IR }
7: mar:=tir;rd {coloco direccion en MAR}
8: rd
9: ac:=mbr;goto 0 {salto al ciclo de Fetch}
 O
6: mar:=ir;rd {coloco direccion en MAR}
7: rd
8: ac:=mbr;goto 0 {salto al ciclo de Fetch}

Arquitectura de Computadores II

19
Referencias
 Andrew S. Tanenbaum, Structured
Computer Organization, 3rd Edition,
Prentice Hall, 1989.
 Sitio web del simulador:
http://cis.stvincent.edu/carlsond/cs330/
mic1/mic1.html

Arquitectura de Computadores II

Preguntas

Arquitectura de Computadores II

20

También podría gustarte