Você está na página 1de 58

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.


raraya@inf.utfsm.cl

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