Anda di halaman 1dari 20

Arquitectura de Computadores II Clase #4

Facultad de Ingeniera Universidad de la Repblica

Instituto de Computacin Curso 2009

Contenido
Unidad de control Control cableado Control microprogramado

Arquitectura de Computadores II

La Unidad de Control
La instruccin contenida en el Instruction Register (IR) determina la accin de la Unidad de Control La ejecucin incluye los siguientes pasos:
Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Operation Execution (OE) Operand Store(OS)

La mayora de las instrucciones son registro-memoria o registro-registro 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 rpidos pero pueden ser inflexibles
Las funciones de control son fijas; si se necesita agregar instrucciones extra, la circuitera debe redisearse Algunos procesadores RISC usan control cableado para aumentar la velocidad

Normalmente se usa una combinacin de control cableado para instrucciones sencillas y microcdigo para instrucciones complejas y poco frecuentes
Arquitectura de Computadores II

Control microprogramado
Solucin en software del control de la mquina Un control microprogramado se puede ver como un computador interno que implementa las funciones requeridas por el set de instrucciones del computador externo Una secuencia de microinstrucciones ejecuta una macroinstruccin El cdigo elemental necesario para implementar las macroinstrucciones se almacena en memoria de microprograma
Usualmente denominado firmware
Arquitectura de Computadores II

La Unidad de Control
Es la encargada de controlar la ejecucin de una instruccin. Emite seales:
Internas. Externas.

Entrada
Registro de instruccin. Estado. Seales de control.
Arquitectura de Computadores II

Vista general de la Unidad de Control


Registro de Instruccin Seales de Control internas a la CPU Flags

Seales de Control hacia el Bus del sistema

Unidad de Control

Reloj

Seales 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 Instruccin (IR)


Opcode de la instruccin en ejecucin Determina qu micro-operaciones deben ser ejecutadas

Flags de condicin
Estado de la CPU, resultado de operaciones previas

Del bus de control


Interrupciones Acknowledgements

Arquitectura de Computadores II

Salidas
Internas a la CPU
Movimiento de datos entre registros Activar funciones

Hacia el bus de control


Memoria E/S

Ejemplo, seales de control en fetch


MAR<-(PC)
Habilitar transferencia entre PC y MAR

MBR<-(memory)
Habilitar transferencia entre MAR y bus de direcciones Seal 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 seales del bus de control, determinan, junto con el estado actual (ej. etapa del ciclo de instruccin), las seales de control que deben enviarse a los diferentes componentes de la CPU y hacia el exterior de la CPU. Instruction register
Cada cdigo de operacin (op-code) implica diferentes seales de control Lgica nica para cada op-code Se puede implementar con un decodificador que para cada entrada codificada produce una salida nica
n entradas binarias y 2n salidas

Arquitectura de Computadores II

Control implementado en Hardware (ii)


Reloj
Secuencia de pulsos que determina la duracin de las micro-operaciones El ciclo debe ser lo suficientemente largo para permitir la propagacin de la seal Se deben generar seales de control en diferentes intervalos dentro del ciclo de instruccin Contador con diferentes seales para t1, t2 etc.

Problemas del control cableado


Lgica de secuenciamiento y micro-operaciones compleja Difcil de disear y probar Diseo inflexible Difcil agregar nuevas instrucciones
Arquitectura de Computadores II

Control implementado en Hardware (iii)

Arquitectura de Computadores II

Control implementado en Hardware (iv)


Microoperaciones Fetch Temporizacin
t1: MAR <t2: MBR <PC <t3: IR <PC memory PC+1 MBR

Seales de Control
C2 C5, CR C4 C8 C5, CR C4 C1

Indirecto

t1: MAR <- IR(dir) t2: MBR <- memory t3: IR(dir) <- MBR(dir) t1: MBR <-t2: MAR <-PC <-t3: Mem <-PC dirRet dirInt MBR

Interrupcin

C12 , CW

Arquitectura de Computadores II

Unidad de Control microprogramada

Arquitectura de Computadores II

Organizacin de la memoria de Control


Jump to Indirect or Execute Jump to Execute Jump to Fetch Jump to Op code routine Jump to Fetch or Interrupt Jump to Fetch or Interrupt Arquitectura de Computadores II

Fetch cycle routine Indirect Cycle routine Interrupt cycle routine Execute cycle begin AND routine ADD routine

Implementacin
Representar cada seal de control por un bit Una palabra de control para cada micro-operacin, o para todas las micro-operaciones que pueden realizarse concurrentemente Secuencia de palabras de control para cada instruccin Agregar un campo de direccin para especificar prxima micro-instruccin, dependiendo de las flags de condicin Microprocesadores actuales
Muchas instrucciones y hardware de registros asociados Muchas seales 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 seales que se deben generar.
Arquitectura de Computadores II

10

Tipos de microinstrucciones
El ancho de palabra de la memoria de microprograma depende de
Mximo nmero de micro-operaciones simultaneas soportado En que forma se representa o codifica la informacin de control? Cmo se especifica la direccin de la prxima microinstruccin

Microprogramacin horizontal
Cada micro-instruccin especifica las seales de control sin codificar (muchas seales se pueden generar en paralelo)

Microprogramacin vertical
Seales de control codificadas
Arquitectura de Computadores II

Micro-programacin Horizontal
Palabra de microprograma ancha Posibilidad de paralelismo Poca codificacin de la informacin de control
Internal CPU Control Signals Micro-instruction Address

System Bus Control Signals

Jump Condition

Compromiso
Dividir la informacin de control en grupos disjuntos Implementar 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-programacin Vertical
Palabra de microprograma angosta n combinaciones de seales de control codificadas en log2 n bits Capacidad limitada para expresar paralelismo La informacin de control codificada requiere un decodificador externo para manipular las seales de control
Micro-instruction Address Function Codes Jump Condition
Arquitectura de Computadores II

Nanoprogramacin
w bits log2 m bits

Microprograma n n

Donde Mu[k]=Mn[Mi[k]]

w bits m Nanoprograma

Memoria Mu

Memoria Mi

Memoria Mn

Tamao(Mu) # Tamao(Mn)+ Tamao(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

Microinstruccin

Arquitectura de Computadores II

14

Microcdigo
El microcdigo se almacena en una memoria por lo que no es ms 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 ms 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 ms alto nivel, pero hay que tener en cuenta las limitaciones impuestas sobre una microinstruccin. Asignacin: :=
Ejemplos
ac := a ac := ac + a

El operando destino puede ser cualquiera de los registros PC a F, MAR y MBR.


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 condicin. 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)
Ejecucin
Load direccion (0000dddddddddddd)
6: 7: 8: 9: tir:=band(ir,amask) mar:=tir;rd rd ac:=mbr;goto 0 {obtengo direccion de IR } {coloco direccion en MAR} {salto al ciclo de Fetch} {coloco direccion en MAR} {salto al ciclo de Fetch}

O
6: mar:=ir;rd 7: rd 8: ac:=mbr;goto 0

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