Tema 4
El procesador: camino
de datos y unidad de
control
Índice
Introducción
Estructura básica de la CPU: camino de datos y
control
El ciclo de instrucción
Diseño de un procesador monociclo
Descomposición de la ejecución en etapas
Realización multiciclo
Diseño de la unidad de control
Procesamiento de excepciones
Introducción
En este tema se estudia la Unidad Central de Procesamiento (CPU)
√ Camino de datos:
Es la sección del computador encargada de manipular y transformar los datos procedentes de la memoria o los registros internos, para obtener los resultados
Su labor es soportar el conjunto de operaciones que precisan las instrucciones del repertorio que es capas de interpretar la unidad de control
√ Unidad de control:
Es la sección del computador encargada de interpretar las instrucciones del programa y gobernar la ejecución de las mismas
La organización de los procesadores ha evolucionado con el paso de los años, guiada por el desarrollo tecnológico y la necesidad de obtener altas prestaciones
En este tema se analizan las ideas básicas comunes a todos los procesadores, que sientan las bases para poder comprender los avances en arquitectura de computadores
Introducción El procesador es el que se encarga de ejecutar las
instrucciones especificadas por el programa.
Funciones básicas:
√ Captar instrucciones. El procesador debe leer instrucciones
de la memoria
√ Interpretar instrucciones. La instrucción debe decodificarse
para determinar qué acción es necesaria
√ Captar datos. La ejecución puede exigir leer datos de la
memoria o de un módulo de E/S
√ Procesar datos. La ejecución de una instrucción puede
exigir llevar a cabo alguna operación aritmética o lógica
√ Escribir datos. Los resultados de una ejecución pueden
tener que ser escritos en la memoria o en un módulo de E/S
Estructura básica de un procesador
El procesador se compone de varias partes:
1. La unidad de control
2. La unidad aritmético-lógica
3. Un banco de registros
4. Otros registros internos, algunos de los más importantes:
1. El contador de programa (PC)
2. El registro de instrucciones (IR)
Estructura básica de un procesador
Vamos a construir un camino de datos y su unidad de
control para dos realizaciones diferentes de un
subconjunto del repertorio de instrucciones del MIPS:
√ Instrucciones de acceso a memoria: lw, sw
√ Instrucciones aritmético-lógicas: add, sub, or, slt
√ Instrucción de salto condicional: beq
√ Instrucción de salto incondicional: j
Memoria deinstrucciones
Instrucción
Dirección
Memoria de Datos
Dirección
Datos
Datos
nº de registro
nº de registro
nº de registro
RegistrosPC
ALU
Estructura básica de un procesador
Metodología de sincronización
√ Las unidades funcionales se clasifican en dos tipos:
combinacionales y secuenciales
√ La metodología de sincronización define cuándo pueden leerse y
escribirse la diferentes señales
√ Asumimos sincronización por flancos
Estado 1 Estado 2
Ciclo de reloj
Lógica combinatoria
El ciclo de instrucción
El procesamiento que requiere una instrucción se denomina
ciclo de instrucción.
Ciclo básico de instrucción:
INICIO
Captura de
instrucción
Ejecución de
la instrucción
FIN
Ciclo de captación
Ciclo de ejecución
El ciclo de instrucción
Para el subconjunto de instrucciones MIPS, los dos primeros pasos son
idénticos:
√ Usar el contenido del PC para cargar, desde la memoria que contiene el
código, la siguiente instrucción
√ Leer uno o dos registros, utilizando para ello los campos de la instrucción
específicos para seleccionarlos
0x40000000 00000001010010110100100000100000
0x40000004 10010101001010100000000000000000
0x40000008 00010001010010111111111111111011
0x4000000C 00000000100001000001000100001010
0x40000004 PC
00000001010010110100100000100000 IR
0x40000000 00000001010010110100100000100000
0x40000008 00010001010010111111111111111011
0x4000000C 00000000100001000001000100001010
0x40000004 100101010010101000000000000000000x40000004 PC
1001010100101010000000000000000 IR
0x40000000 00000001010010110100100000100000
0x40000004 10010101001010100000000000000000
0x40000008 00010001010010111111111111111011
0x4000000C 00000000100001000001000100001010
0x40000008 PC
1001010100101010000000000000000 IR
Memoria Procesador
Diseño de un camino de datos sencillo
Procesador monociclo:
√ Comenzaremos por los elementos básicos y sus
funciones asociadas
√ Veremos los elementos necesarios para
implementarlos
√ Veremos un conjunto de instrucciones básico
√ Veremos como implementar estas instrucciones
Diseño de un camino de datos sencillo
Contador de programa:
√ Cada instrucción está en una dirección de memoria dada
√ Almacenamos la dirección en el registro PC
√ Tras procesar una instrucción avanzamos el contador hasta la
siguiente instrucción
Memoria deinstrucciones
Instrucción
DirecciónPC
Sumador4
Diseño de un camino de datos sencillo
Operaciones tipo R:
√ Involucran tres registros: dos de lectura y uno de
escritura
√ Usan la ALU para realizar las operaciones
Instrucción
EscribirReg
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
RE
GIS
TR
OS
3 Operación de la ALU
Cero
Resultadode la ALU
ALU
Diseño de un camino de datos sencillo
Acceso a memoria:
√ Instrucciones lw y sw
√ La dirección se indica con un registro más un
desplazamiento de 16 bits con signo
√ El desplazamiento se extiende a 32 bits
lw $t0, 8($s0) 100011 10000 01000 0000000000001000
sw $t0, 32($s0) 101011 10000 01000 0000000000100000
Diseño de un camino de datos sencillo
Memoria de Datos
Dirección
Dato aescribir
Datoleído
Instrucción
16 32
3 Operación de la ALU
EscribirReg
LeerMem
EscribirMem
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
RE
GIS
TR
OS
Cero
Resultadode la ALU
ALU
Extensiónde signo
Diseño de un camino de datos sencillo
Saltos condicionales:
√ Evalúan si dos registros contienen ó no el mismo
valor
√ Si la condición se cumple aplican el salto
√ El salto es relativo con signo
√ Los 16 bits se extienden a 32 y se desplazan 2
posiciones a la izquierda para direccionar sólo
palabras completas
√ El PC ya se ha actualizado a PC + 4
Diseño de un camino de datos sencillo
Instrucción
16 32
EscribirReg
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
RE
GIS
TR
OS
3 Operación de la ALU
Cero
ALU
Extensiónde signo
Desp.2 bits ala izq.
Resultado
Sumador
PC +4 del camino de datos de instrucciones
Destino salto
Decidir si se hace el salto
Diseño de un camino de datos sencillo
Todo junto:
√ Para construir el camino de datos hemos de
combinar los elementos explicados anteriormente
√ Intentaremos reutilizar parte del hardware
√ El hardware compartido selecciona los datos
mediante multiplexores
√ Parte del hardware no se podrá reutilizar y habrá que
replicarlo
Diseño de un camino de datos sencillo
Instrucción
16 32
EscribirReg
FuenteALU
Mem2reg
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
RE
GIS
TR
OS
Memoria de Datos
Dirección
Dato aescribir
Datoleído
3 Operación de la ALU
LeerMem
EscribirMem
Cero
Resultadode la ALU
ALU
Extensiónde signo
Mux
Mux
Aritmética + Acceso a Memoria
Diseño de un camino de datos sencillo
16 32
EscribirReg
FuenteALU
Mem2reg
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
RE
GIS
TR
OS
Memoria de Datos
Dirección
Dato aescribir
Datoleído
3 Operación de la ALU
LeerMem
EscribirMem
Cero
Resultadode la ALU
ALU
Extensiónde signo
Mux
Mux
Memoria deinstrucciones
Instrucción
Direcciónde lectura
PC
Sumador4
Incorporamos gestión de PC
Diseño de un camino de datos sencillo
16 32
EscribirReg
FuenteALU
Mem2reg
Origen del PC
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
RE
GIS
TR
OS
Memoria de Datos
Dirección
Dato aescribir
Datoleído
3 Operación de la ALU
LeerMem
EscribirMem
Cero
Resultadode la ALU
ALU
Extensiónde signo
Mux
Mux
Mux
Memoria deinstrucciones
Instrucción
Direcciónde lectura
PC
Sumador4
Desp.2 bits ala izq.
Resultado
Sumador
Añadimos saltos condicionales
Inconvenientes de la implementación
monociclo
El ciclo de reloj está definido por la instrucción
más lenta
No es posible reutilizar ninguna unidad funcional
Estos inconvenientes se verían agravados en
una arquitectura más compleja que la
arquitectura MIPS
Evaluación del rendimiento
√ Supóngase los tiempos de ejecución de las unidades
funcionales siguientes:
Acceso a memoria: 2ns
ALU y sumadores: 2ns
Acceso a registros: 1ns
√ ¿Cúal de las siguientes realizaciones será más rápida?
Una realización en la que cada instrucción se ejecuta en un ciclo
de tamaño fijo (cada instrucción tarda lo que tardaría la más
lenta).
Una realización donde cada instrucción se ejecuta en un ciclo de
longitud variable (cada instrucción tarda únicamente lo
necesario)
Cálculo del ciclo de reloj
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
RE
GIS
TR
OS
Cero
Resultadode la ALU
ALU
Extensiónde signo
Control
Mux
Mux
Memoria deinstrucciones
Instrucción
Direcciónde lectura
PC
Sumador4
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Inst. [25-21]
Inst. [20-16]
Inst. [15-11]
Inst. [31-26]
Inst. [25-0]
26 28
Dirección de jump. [31-0]
PC + 4 [31-28]
16 32Controlde laALU
Resultado
Sumador
Inst. [15-0]
Inst. [5-0]
Memoria de Datos
Dirección
Dato aescribir
Datoleído
Mux
Mux
Mux
EscribirReg
SaltoIncond
RegDest
Fuente ALU
Salt Cond
ALUop
Mem2regLeerMem
EscribirMem
1 ns1 ns2 ns2 ns
2 ns2 ns2 ns2 ns
2 ns2 ns2 ns2 ns
Cálculo del ciclo de reloj
Tipo de
instrucciónUnidades funcionales utilizadas por cada tipo de instrucción ns
AritméticaCargar
instrucción
Lectura de
registrosALU
Escritura de
registros6
lwCargar
instrucción
Lectura de
registrosALU
Lectura
memoria
Escritura de
registros8
swCargar
instrucción
Lectura de
registrosALU
Escritura en
memoria7
Salto
condicional
Cargar
instrucción
Lectura de
registrosALU 5
JumpCargar
instrucción2
Evaluación del rendimiento
Tiempo medio ejecución para monociclo: 8 ns
Tiempo medio ejecución ideal:
6 x 44% + 8 x 24% + 7 x 12% + 5 x 18% + 2 x 2% = 6.3 ns
Rendimiento relativo: 8 / 6.3 = 1.27
Aritméticas: 44% lw: 24% sw: 12%
Saltos condicionales: 18% Jump: 2%
Reducción de costes
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
RE
GIS
TR
OS
Cero
Resultadode la ALU
ALU
Extensiónde signo
Control
Mux
Mux
Memoria deinstrucciones
Instrucción
Direcciónde lectura
PC
Sumador4
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Inst. [25-21]
Inst. [20-16]
Inst. [15-11]
Inst. [31-26]
Inst. [25-0]
26 28
Dirección de jump. [31-0]
PC + 4 [31-28]
16 32Controlde laALU
Resultado
Sumador
Inst. [15-0]
Inst. [5-0]
Memoria de Datos
Dirección
Dato aescribir
Datoleído
Mux
Mux
Mux
Reducción de costes
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
RE
GIS
TR
OS
Cero
Resultadode la ALU
ALU
Extensiónde signo
Control
Mux
Mux
Memoria deinstrucciones
Instrucción
Direcciónde lectura
PC
Sumador4
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Inst. [25-21]
Inst. [20-16]
Inst. [15-11]
Inst. [31-26]
Inst. [25-0]
26 28
Dirección de jump. [31-0]
PC + 4 [31-28]
16 32Controlde laALU
Resultado
Sumador
Inst. [15-0]
Inst. [5-0]
Memoria de Datos
Dirección
Dato aescribir
Datoleído
Mux
Mux
Mux
Implementación multiciclo
Dedicaremos varios ciclos a cada instrucción
Necesitaremos
√ Más multiplexores
√ Más registros
Cada dato y resultado estará en un registro para
que no se destruya al terminar el ciclo
Esquema multiciclo
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
RE
GIS
TR
OSMemoria
Instruccioneso datos
Dirección
Resgistro de datos dememoria
Registro deinstrucciones
ALU
A
BDato
SalidaALU
PC
Sin coste adicional
Implementación multiciclo
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Carga de una instrucción
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucciones Aritmético-Lógicas: Búsqueda
de registros
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucciones Aritmético-Lógicas: Ejecución
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucciones Aritmético-Lógicas: Guarda
resultados en registro
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucción lw:
Búsqueda de registros
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucción lw:
Cálculo de la dirección
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucción lw:
Lectura de memoria
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucción lw:
Guarda dato en registro
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucción sw:
Búsqueda de registros
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucción sw:
Cálculo de la dirección
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucción sw:
Escritura en memoria
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucción beq:
Búsqueda de registros
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucción beq:
Comprobación con éxito
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucción beq:
Comprobación sin éxito
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
Instrucción Jump:
Ejecución del salto
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
CPI multiciclo
Hemos repartido las operaciones de forma que
el tiempo máximo de computación es el de una
unidad funcional
La unidades más lentas necesitan 2 ns para
completar su funcionamiento
Por tanto el ciclo de reloj durará 2 ns
Por ejemplo, una operación aritmética necesita
4 ciclos = 8 ns
CPI multiciclo
Tipo de instrucción % Multiciclo
Aritmética 44 4
lw 24 5
sw 12 4
Salto condicional 18 3
Jump 2 3
4,04
Diseño de la unidad de control
Realización monociclo: señales de control
Diseño de la unidad de control
Activación de las líneas determinada por el código de operación:
Diseño de la unidad de control
La función de control para una realización monociclo
está especificada por la siguiente tabla de verdad:señal Formato R Lw Sw beq
Op5 0 1 1 0
Op4 0 0 0 0
Op3 0 0 1 0
Op2 0 0 0 1
Op1 0 1 1 0
Op0 0 1 1 0
RegDest 1 0 X X
ALUSrc 0 1 1 0
MemtoReg 0 1 X X
RegWrite 1 1 0 0
MemRead 0 1 0 0
MemWrite 0 0 1 0
Branch 0 0 0 1
ALUOp1 1 0 0 0
ALUOp0 0 0 0 1
entr
adas
sa
lidas
Ejercicio:
Mapas de Karnaugh
Implementación
combinacional
Diseño de la unidad de control
Realización multiciclo: señales de control
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
SelALUAEscrRegRegDestEscrIREscrMemLeerMem
IoD
EscribirPC
Mem2Reg
ControlALU
ALUop
FuentePCSelALUB
Diseño de la unidad de control
Realización multiciclo: señales de control
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
SelALUA
EscrReg
RegDestEscrIR
EscrMem
LeerMem
IoD
Control
OP[31-26]
EscrPC
EscrPC Cond
Mem2Reg
ControlALU
ALUop
FuentePC
SelALUB
Diseño de la unidad de control
El control del camino de datos multiciclo debe
especificar:
√ Las señales que se van a inicializar en cada paso
√ El paso siguiente de la secuencia
Dos técnicas diferentes:
√ Control cableado. Se basa en las máquinas de
estados finitos.
√ Control microprogramado. Se representa en forma
de programa de control
Control cableado
Construiremos una máquina de estados finitos (autómata de Moore)
El camino de datos multiciclo se controla con las salidas de la unidad de control (la máquina de estados)
Las entradas de la unidad de control serán
√ Los bits de la instrucción
√ Los indicadores internos
Máquina de estados finitos:
√ Cada estado de la máquina representa una etapa y tarda un ciclo de reloj
√ Los dos primeros pasos son idénticos para todas las instrucciones
√ A partir de la tercera etapa depende del código de operación
√ Después de la última etapa la máquina debe volver al estado inicial
Control cableado
Realización de máquinas de estados finitos de control:
Estado 0
Inicio
Acceso a memoria
Estado 1
Cargade
instrucción
Decodificarinstrucciones
CargarRegistros
Aritmético-lógicas
beq jump
Estado 0. Cargar Instrucción
RE
GI S
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registrode datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
SelALUA
EscrReg
RegDestEscrIR
EscrMem
LeerMem
IoD
Control
OP[31-26]
EscrPC
EscrPC Cond
Mem2Reg
ControlALU
ALUop
FuentePC
SelALUB
Estado 0
Inicio
LeerMemSelALUA = 0
IoD = 0EscrIREscrPC
FuentePC = 00
selALUB = 01ALUOp = 00
A Estado 1
Estado 1. Decodificación
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
16
26
32
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
Saltoincond. [31-0]28
Mux
0
1
2
Cero
ResultadoALU
ALU
SalidaALU
SelALUA
EscrReg
RegDestEscrIR
EscrMem
LeerMem
IoD
Control
OP[31-26]
EscrPC
EscrPC Cond
Mem2Reg
ControlALU
ALUop
FuentePC
SelALUB
Estado 1
De Estado 0 SelALUA = 0selALUB = 11ALUOp = 00
Estado ?
Control del acceso a memoria
De Estado 1
Estado 4
Estado 5
Acceso a memoria
Acceso a memoria
(Op = “LW”) o (Op = “SW”)
(Op = “LW”) (Op = “SW”)
Cálculodirección de memoria
Etapa de escri tura
Estado 3
Estado 2
Vuelta al
Estado 0
SelALUA = 1
selALUB = 10ALUOp = 00
LeerMemIoD = 1
EscrMemI0D = 1
EscrRegMem2Reg = 1RegDest = 0
Control de operaciones aritmético-lógicas
De Estado 1
Finalización de la operación
(Op = Aritmético-lógica)
(Op = “LW”)
Ejecución de la operación
Estado 7
Estado 6
Vuelta al
Estado 0
SelALUA = 1selALUB = 00ALUOp = 10
RegDest = 1EscrReg
Mem2Reg
Control de beq
De Estado 1
(Op = “beq”)
Finalización de salto condicional
Estado 8
Vuelta al Estado 0
SelALUA = 1
selALUB = 00ALUOp = 01
EscrPCCondFuentePC = 01
Control de jump
De Estado 1
(Op = “j”)
Finalización de jump
Estado 9
Vuelta al Estado 0
EscrPCCondFuentePC = 10
Máquina de estados completa
Estado 0
Inicio
LeerMemSelALUA = 0
IoD = 0EscrIREscrPC
FuentePC = 00
selALUB = 01ALUOp = 00
Estado 1
SelALUA = 0selALUB = 11ALUOp = 00
(Op = “LW”) o (Op = “SW”)
Estado 4
Estado 5
Acceso a memoria
Acceso a memoria
(Op = “LW”) (Op = “SW”)
Cálculodirección de memoria
Etapa de escritura
Estado 3
Estado 2
SelALUA = 1selALUB = 10ALUOp = 00
LeerMemIoD = 1
EscrMemI0D = 1
EscrRegMem2Reg = 1RegDest = 0
Finalización de la operación
(Op
= A
ritm
étic
o-ló
gica
)
Ejecución de la operación
(Op =
“beq”)
Finalización de salto condicional
Estado 8
SelALUA = 1selALUB = 00ALUOp = 01EscrPCCond
FuentePC = 01
(Op = “j”)
Finalización de jump Estado 9
EscrPCCondFuentePC = 10
(Op = “LW”)
Estado 7
Estado 6
SelALUA = 1selALUB = 00ALUOp = 10
RegDest = 1EscrReg
Mem2Reg
Implementación física
Lógica de control
Salidas
Código de operación desde
el registro deinstrucción
Señales de controlpara el
camino de datos
Entradas
Registro de estado
Concepto Bits
Señales de
control16
Código de
operación6
Estado 4
ROM
Lógica de control
PLA y/ó ROM
Salidas
Entradas
Código de operaciónBits [31-26] del
registro de instrucción
Registro de estado
FuentePC (2)ALUop (2)SelALUASelALUB (2)EscrRegRegDestEscrPC condEscrPCIoDLeerMemEscrMemMem2RegEscrIR
ROM única
2 palabras de 20 bits
= 20480 bits
10
Código de operación desde
el registro deinstrucción
Estado Nuevoestado
Señales de control
ROM 1
2 palabras de 16 bits
= 256 bits
4EstadoSeñales de control
ROM 2
2 palabras de 4 bits
= 4096 bits
10
Código de operación desde
el registro deinstrucción
Estado
Nuevoestado
PLA
Lógica de control
PLA y/ó ROM
Salidas
Entradas
Código de operaciónBits [31-26] del
registro de instrucción
Registro de estado
FuentePC (2)ALUop (2)SelALUASelALUB (2)EscrRegRegDestEscrPC condEscrPCIoDLeerMemEscrMemMem2RegEscrIR
Op5
Op4
Op3
Op2
Op1
Op0
S3
S2
S1
S0
IoD
IEscrIR
LeerMem
EscrMem
EscrPC
EscrPC cond
Mem2Reg
FuentePC1
ALUOp1
SelALUB0
SelALUA
EscrReg
RegDest
NS3
NS2
NS1
NS0
SelALUB1
ALUOp2
FuentePC2
Control microprogramado
Cada grupo de señales causa la ejecución de una operación básica
específica: microoperación.
La interpretación y ejecución de una instrucción da lugar a una
secuencia de operaciones máquina básicas (microoperaciones),
cada una controlada por un grupo de señales de control,
microinstrucción.
Una secuencia de microinstrucciones constituye un microprograma.
El código de operación de una instrucción máquina, cuando es
decodificado, señala la microrrutina apropiada incluida en la
memoria microprogramada.
Las microinstrucciones suelen estar ubicadas en una ROM o en una
PLA, por lo que pueden asignarse direcciones a las
microinstrucciones.
Control microprogramado
Lógica de control
PLA y/ó ROM
Salidas
Entradas
Código de operaciónBits [31-26] del
registro de instrucción
Registro de estado
CtrlDir
Sumador
1
4
FuentePC (2)ALUop (2)
SelALUASelALUB (2)
EscrRegRegDestEscrPC condEscrPCIoDLeerMem
EscrMemMem2Reg
EscrIR
Selección
6
• El sumador avanza
secuencialmente por los
estados
• No en todos los casos se
pasa al estado siguiente:
• CtrlDir
• Selección
Secuencia de estados √ Tras terminar una instrucción se ha de retornar al estado 0
√ Las instrucciones sólo tienen algunos estados en común, después divergen
√ Esta divergencia puede ocurrir en varios lugares en el diagrama de estados
√ Necesitamos contemplar estos casos
PLA y/ó ROM
Entradas
Código de operaciónBits [31-26] del
registro de instrucción
Registro de estado
CtrlDir
Sumador
1
4
MUX3 2 1 0
Selección
Tabla de envío 2 Tabla de envío 1
6
0
• CtrlDir = 0
• Nueva instrucción
• CtrlDir = 1
• Tipo de instrucción
• CtrlDir = 2
• Leer/escribir memoria
• CtrlDir = 3
• Secuencia normal
Secuencia de estados
√ Cada tabla de envío está asociada a un estado del que no tiene un único
estado destino
√ En el caso general crearemos una tabla (ROM/PLA) para cada estado con
múltiples estados-destino
√ En general, en un procesador complejo, los estados se seleccionarán de
forma secuencial con pocas excepciones
Tipo de
instrucción
Tabla 1 Tabla2
lw 2 3
sw 2 5
aritmético-lógica 6
beq 8
jump 9
Formato de la microinstrucción
Etiqueta Control
ALU
Fuente
1
Fuente
2
Control
Regs
Memoria Control
EscrPC
Secuencia
Inicio Sumar PC 4 Leer PC ALU Siguiente
Sumar PC ExtShft Leer Tabla 1
Mem1 Sumar A Extend Tabla 2
LW2 Leer ALU Siguiente
Escr Mem Ir a 0
SW2 Escr ALU Ir a 0
Aritmetico1 Función A B Siguiente
Escr ALU Ir a 0
beq1 Restar A B Cond. ALU Ir a 0
jump1 dir. jump Ir a 0
Procesamiento de excepciones
Una excepción es un suceso inesperado que se produce en el procesador, por ejemplo el desbordamiento aritmético
Una interrupción es un suceso que provoca un cambio inesperado, pero se produce externamente al procesador
Ejemplos de implementación de excepciones:
√ Instrucción indefinida
√ Desbordamiento aritmético
Acciones a realizar:
√ Guardar la dirección de la instrucción causante en el registro contador de programa de la excepción (EPC)
√ Transferir el control al sistema operativo en alguna dirección específica
√ El sistema operativo ejecuta una rutina específica
√ Finalizar el programa o continuar con su ejecución, usando EPC para saber dónde retomar la ejecución
Procesamiento de excepciones
Ejemplo de implementación:
√ Saltaremos a la dirección 0xC0000000
√ Necesitamos lo siguientes registros
Un registro de 32 bits para el EPC
Un registro de 1 bit para el Registro de Causa
√ Y las señales de control
Escribir en EPC
Escribir en Registro de Causa
Tipo de excepción (1 bit)
Procesamiento de excepciones Camino de datos con los elementos necesarios para el
procesamiento de excepciones:
SelALUA
EscrReg
RegDestEscrIR
EscrMem
LeerMem
IoD
Control
OP[31-26]
EscrPC
EscrPC Cond
Mem2Reg
ALUop
FuentePC
EscrEPCCausaInt
EscrCausa
SelALUB
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
26
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
28
16 32
Saltoincond. [31-0]
C0000000
Mux
0
1
2
3
Cero
ResultadoALU
ALU
SalidaALU EPC
ControlALU
SelALUA
EscrReg
RegDestEscrIR
EscrMem
LeerMem
IoD
Control
OP[31-26]
EscrPC
EscrPC Cond
Mem2Reg
ALUop
FuentePC
EscrEPCCausaInt
EscrCausa
SelALUB
RE
GIS
TR
OS
Reg. delectura 1
Dato a escribir
Datoleído 1
Datoleído 2
Reg. delectura 2
Reg. deescritura
Instrucción[25-21]
Registro de instrucción
Instrucción[20-16]
Instrucción[15-0]
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
Mux
0
1
2
3
A
B
Registro de datos de
memoria Exten.signo
Desp.2 bits ala izq.
Desp.2 bits ala izq.
Memoria
Instruccioneso datos
Dirección
Datos
PC
Instr.[15-0]
26
4
Instr.[15-11]
Instrucción [25-0]
PC [31-28]
28
16 32
Saltoincond. [31-0]
C0000000
Mux
0
1
2
3
Cero
ResultadoALU
ALU
SalidaALU EPC
ControlALU
Procesamiento de excepciones
Procesamiento de excepciones
Estado 0
Inicio
LeerMemSelALUA = 0
IoD = 0EscrIREscrPC
FuentePC = 00
selALUB = 01ALUOp = 00
Estado 1
SelALUA = 0selALUB = 11ALUOp = 00
(Op = “LW”) o (Op = “SW”)
Estado 4
Estado 5
Acceso a memoria
Acceso a memoria
(Op = “LW”) (Op = “SW”)
Cálculodirección de memoria
Etapa de escritura
Estado 3
Estado 2
SelALUA = 1selALUB = 10ALUOp = 00
LeerMem
IoD = 1
EscrMem
I0D = 1
EscrRegMem2Reg = 1RegDest = 0
Finalización de la operación
(Op
= A
ritm
-Lóg
icas
)
Ejecución de la operac ión
(Op =
“beq”)
Finalización de salto condicional
Estado 8
SelALUA = 1selALUB = 00ALUOp = 01
EscrPCCondFuentePC = 01
(Op = “j”)(Op = otros) Estado 9
EscrPCCondFuentePC = 10
(Op = “LW”)
Estado 7
Estado 6
SelALUA = 1selALUB = 00ALUOp = 10
RegDest = 1EscrReg
Mem2Reg
Estado 10CausaInt=0EscrCausa
SelALUA = 0
EscrPCFuentePC = 11
selALUB = 01ALUOp = 01
EscrEPC
Estado 11CausaInt=1EscrCausa
SelALUA = 0
EscrPCFuentePC = 11
selALUB = 01ALUOp = 01
EscrEPCDesbordamiento
Finalización de jump
Top Related