Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
La Unidad de Control y el Camino de Datos
Prof. Rodrigo Araya E.
[email protected] Universidad Técnica Federico Santa Marı́a
Departamento de Informática
Valparaı́so, 1er Semestre 2006
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
1 Introducción
2 La Máquina de un Ciclo
3 Máquina Multiciclo
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Introducción
Veremos el diseño completo de un subconjunto de la Máquina
MIPS.
Las instrucciones de este subconjunto son:
lw, sw
add, sub, and, or, slt
beq, j
Comenzaremos por un modelo simple que considera un reloj
de un solo ciclo y posteriormente veremos un diseño con reloj
de múltiples ciclos.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
La Máquina de un Ciclo
¿Qué significa una Máquina de un ciclo?
Las etapas generales en la ejecución de una instrucción son:
IF: Fetch de instrucción.
ID: Decodificación y Fetch de registros.
EX: Ejecución y cálculo de la dirección efectiva.
MEM: Acceso a la memoria en lectura o escritura.
WB: Escritura de Registros en el archivo de registros.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
La máquina de un ciclo
En una Máquina de un solo ciclo todas estas etapas ocurren
dentro de un ciclo de reloj:
Para que esto sea posible se requiere separar la memoria en:
Memoria de datos.
Memoria de instrucciones.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Diagrama General de la Máquina
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Fetch e incremento de PC
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Formatos de instrucciones
¿De que manera interviene el tipo de instrucción en el Camino de
Datos?
Instrucción tipo R. (operaciones logicos y aritmeticas)
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Formatos de instrucciones
Instrucción tipo I. (load y store)
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Instrucción tipo R
Elementos para implementar insrucciones ALU tipo R.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Instrucción tipo R
Camino de datos simple para una instrucción tipo R.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Instrucción tipo I
Elementos para implementar insrucciones Load y Store de
tipo I.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Instrucción tipo I
Camino de datos simple para instrucciones Load y Store.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Instrucciones de Salto Condicional
Se usa la ALU para evaluar la condición del salto y otra ALU
para el cálculo de dirección de salto (target) relativo al PC.
(BEQ)
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Camino de Datos
Combinación del Camino de Datos para instrucciones ALU
tipo R e instrucciones de carga y almacenamiento.(load sttore)
Se incluyen además las lineas de control.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Camino de Datos
Se agrega la parte del Fetch al Camino de Datos anterior.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Camino de Datos
Camino de datos para una Máquina de un Ciclo.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Control de la ALU
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Control de la ALU
Tabla lógica para el control de la ALU:
opcode ALUOp Instrucción func Acción Control ALU
lw 00 lw x....x suma 010
sw 00 sw x....x suma 010
beq 01 beq x....x resta 110
R 10 + 100000 + 010
R 10 - 100010 - 110
R 10 and 100100 and 000
R 10 or 100101 or 001
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Control de la ALU
Ecuaciones para el control de la ALU
OP2 = ALUop0 + ALUop1 · F1
OP1 = ALUop1 + F2
OP0 = ALUop1 · (F0 + F3 )
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Control de la ALU
Circuito para el control de la ALU
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Control de la ALU
Camino de datos con el control para la ALU.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Camino de Datos
Camino de datos con la Unidad de Control.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Lineas de Control
El primer paso de una instrucción tipo R es un fetch de
instrucción y un incremento del PC.
Instruccion RegDst ALUSrc Mem Write Mem Mem Branch ALUOp1 ALUOp1
toReg Read Write
R-format 1 0 0 1 0 0 0 1 0
lw 0 1 1 1 1 0 0 0 0
sw X 1 X 0 0 1 0 0 0
beq X 0 X 0 0 0 1 0 1
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Ejecución de Instrucciones
El primer paso de una instrucción tipo R es un fetch de
instrucción y un incremento del PC.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Ejecución de Instrucciones
El segundo paso es leer los dos registros del archivo de
registros.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Ejecución de Instrucciones
El tercer paso involucra la ejecución de instrucciones tipo R
que se realizan en la ALU.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Ejecución de Instrucciones
El paso final de una instrucción tipo R involucra escribir el
resultado.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Ejecución de Instrucciones
La operación de una instrucción load.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Ejecución de Instrucciones
El Camino de Datos activo para una instrucción beq (branch
equal).
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Ejecución de Instrucciones
El Control y Camino de Datos se extienden para manejar la
instrucción j (jump).
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
La Unidad de Control
Unidad de Control para la máquina de un ciclo.
Salidas
Señal Tipo R lw sw beq
Entradas
Regdest 1 0 x x
Señal Tipo R lw sw beq
ALUSrc 0 1 1 0
OP5 0 1 1 0
MemtoReg 0 1 x x
OP4 0 0 0 0
→ RegWrite 1 1 0 0
OP3 0 0 1 0
MemRead 0 1 0 0
OP2 0 0 0 1
Memwrite 0 0 1 0
OP1 0 1 1 0
Branch 0 0 0 1
OP0 0 1 1 0
ALUOp1 1 0 0 0
ALUOp0 0 0 0 1
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
La Unidad de Control
Unidad de Control para la máquina de un ciclo.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Desempeño de la Máquina de un Ciclo
Para estimar el desempeño, asumiremos lo siguiente:
Tiempos asociados
Unidades de Memoria = 2nseg
ALU = 2nseg
Archivo de Registros = 1nseg
Muxs, compuertas,.... = 0 nseg
Existen dos alternativas para el reloj:
Cada instrucción toma un ciclo de tiempo fijo.
Cada instrucción se ejecuta en un ciclo pero de tiempo
variable, es decir ocupa el tiempo que necesita.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Tiempos crı́ticos para las instrucciones
Etapas de cada instrucción Cálculo de tiempos
Clase Clase IF ID EX MEM WB TOTAL
Tipo R IF ID EX WB Tipo R 2 1 2 0 1 6ns
lw IF ID EX MEM WB lw 2 1 2 2 1 8ns
sw IF ID EX MEM sw 2 1 2 2 7ns
beq IF ID EX beq 2 1 2 5ns
j IF j 2 2ns
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Discusión
La alternativa de ciclo fijo es ineficiente y además viola un
principio de diseño: hacer los casos frecuentes rápidos.
Técnicamente no se puede construir un reloj de ciclo variable
La solución es descomponer la ejecución de una instrucción en
una secuencia de etapas.
Esta implementación se denomina Multiciclo.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Discusión
La implementación Multiciclo tiene ventajas adicionales: es
posible usar unidades funcionales más de una vez por
instrucción.
Se utiliza: una memoria, una ALU simple.
Se agregan registros a las unidades funcionales para mantener
su valor cuando las entradas están cambiando.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Máquina Multiciclo
Esquema básico de la máquina multiciclo.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Máquina Multiciclo
Manejo de instrucciones básicas.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Máquina Multiciclo
Camino de datos con lineas de control.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Máquina Multiciclo
Camino de datos con unidad de control.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Ejecución de operaciones en una Máquina Multiciclo
La ejecución de instrucciones se realizará en varios ciclos de reloj,
por lo que:
La señal calculada en un ciclo, se utilizará en el ciclo siguiente.
Cada paso se restringe a solo un acceso al archivo de
registros, un acceso a la memoria, y una operación en la ALU.
Se identifican 5 pasos para la ejecución de instrucciones.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Pasos para la ejecución de instrucciones
Paso 1: Fetch de instrucción.
IR = Memoria[PC]
PC = PC+4
Paso 2: Decodificación de Instrucción y fetch de registros.
A = Registro[IR[25-21]] (rs)
B = Registro[IR[20-16]] (rt)
ALUOut = PC + (ext signo(IR[15-0])<<2)
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Pasos para la ejecución de instrucciones
Paso 3: Cálculo de la dirección de memoria, o terminación del
salto.
En este paso las acciones dependen del tipo de instrucción que se
esta ejecutando.
Referencia a Memoria
ALUOut = A + ext signo (IR[15-0])
Aritmética tipo R
ALUOut = A op B
Branch
if ( A == B) PC = ALUOut
Jump
PC = PC[31-28] | (IR[25-0] <<2)
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Pasos para la ejecución de instrucciones
Paso 4: Acceso a memoria, o terminación de la instrucción
tipo R.
Referencia a Memoria
si es lw:
MDR = Memoria[ALUOut]
o, si es sw:
Memoria[ALUOut] = B
Instrucción Aritmética tipo R
Registro[IR[15-11]] = ALUOut
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Pasos para la ejecución de instrucciones
Paso 5: Escritura desde memoria al archivo de registros. Se
completa la instrucción lw, cargando el valor de memoria en un
registro.
Registro[IR[20-16]] = MDR
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Pasos para la ejecución de instrucciones
Tipo R Referencias a memoria Branch Jump
PASO 1 IR=Memoria[PC]
PC=PC+4
PASO 2 A=Registro[IR[25-21]]
B=Registro[IR[20-16]]
ALUOut=PC+(ext signo(IR[15-0])<<2)
PASO 3 ALUOut = A op B ALUOut = A + if(A==B) PC PC = PC[31-28] |
ext signo(IR[15-0]) = ALUOut (IR[25-0] << 2)
PASO 4 Registro[IR[15-11]] = MDR= Memoria[ALUOut]
ALUOut o Memoria[ALUOut]=B
PASO 5 Registro[IR[20-16]] =
MDR
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Control del Multiciclo
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Control estados: Fetch y Decodificación
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Control estados: Referencia Memoria
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Control estados: Tipo R
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Control estados: Bifurcacion Beq
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Control estados: Jump
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Control del Multiciclo
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Controlador de estados finitos
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Controlador Microprogramado
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Observaciones
El control microprogramado se parece a un computador:
estados: direcciones de instrucciones.
Las palabras de control son microinstrucciones.
El registro de estado es el microPC.
Se puede usar un Assembler de microcódigo para codificar
secuencias de microinstrucciones.
Como un microprograma es una representación abstracta del
control, hay una gran flexibilidad en la forma de traducir el
microprograma en micro-operaciones.
RAE La Unidad de Control y el Camino de Datos
Contenido
Introducción
La Máquina de un Ciclo
Máquina Multiciclo
Fin...
Fin...
RAE La Unidad de Control y el Camino de Datos