2 por hoja
Transcript of 2 por hoja
![Page 1: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/1.jpg)
1
Arquitectura de Computadores IIClase #4
Facultad de Ingeniería
Universidad de la República
Instituto de Computación
Curso 2010
Arquitectura de Computadores II
Contenido
� Unidad de control
� Control cableado
� Control microprogramado� MIC-1
![Page 2: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/2.jpg)
2
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ódigopara instrucciones complejas y poco frecuentes
![Page 3: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/3.jpg)
3
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
![Page 4: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/4.jpg)
4
Arquitectura de Computadores II
Vista general de la Unidad de Control
Unidad de Control
Registro de Instrucción
Flags
Reloj
Señales de Controlinternas a la CPU
Señales de Control desdeel Bus del sistema
Señales de Control haciael Bus del sistema
Bus deControl
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
![Page 5: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/5.jpg)
5
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)
![Page 6: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/6.jpg)
6
Arquitectura de Computadores II
Repaso circuitos (ii)
Arquitectura de Computadores II
Repaso circuitos (iii)
![Page 7: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/7.jpg)
7
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
![Page 8: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/8.jpg)
8
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)
![Page 9: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/9.jpg)
9
Arquitectura de Computadores II
Control implementado en Hardware (iv)
C2C5, CRNo se muestra en figura
C4
t1: MAR <- PC
t2: MBR <- memory
PC <- PC+1
t3: IR <- MBR
Fetch
Señales de ControlMicrooperacionesSubciclo
CR = Señal Read hacia el bus del sistema
Arquitectura de Computadores II
Unidad de Control microprogramada
![Page 10: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/10.jpg)
10
Arquitectura de Computadores II
Organización 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
Fetch cycle routine
Indirect Cycle routine
Interrupt cycle routine
Execute cycle begin
AND routine
ADD routine
Arquitectura de Computadores II
� 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.
Implementación
![Page 11: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/11.jpg)
11
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
Internal CPU Control Signals Micro-instruction Address
Jump ConditionSystem BusControl Signals
� Palabra de microprograma ancha
� Posibilidad de paralelismo
� Poca codificación de la información de control
� 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
![Page 12: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/12.jpg)
12
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
Microprograma
n
w bits
n
log2 m bits
w bits
m Nanoprograma
Memoria Mu Memoria Mn
Donde Mu[k]=Mn[Mi[k]]
Memoria Mi
Tamaño(Mu) # Tamaño(Mn)+ Tamaño(Mi)
![Page 13: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/13.jpg)
13
Arquitectura de Computadores IIUnidad m
icroprogramada
Arquitectura de Computadores II
Ruta de los datos (i)
![Page 14: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/14.jpg)
14
Arquitectura de Computadores II
Ruta de los datos (ii)
Arquitectura de Computadores II
Microinstrucción
![Page 15: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/15.jpg)
15
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
![Page 16: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/16.jpg)
16
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)
![Page 17: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/17.jpg)
17
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)
![Page 18: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/18.jpg)
18
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
![Page 19: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/19.jpg)
19
Arquitectura de Computadores II
Microcodigo (i)
� Fetch0: 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}
� O6: mar:=ir;rd {coloco direccion en MAR}
7: rd
8: ac:=mbr;goto 0 {salto al ciclo de Fetch}
![Page 20: 2 por hoja](https://reader034.fdocuments.ec/reader034/viewer/2022051319/5890677a1a28ab4f678c0ab5/html5/thumbnails/20.jpg)
20
Arquitectura de Computadores II
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