Diseño del procesador MIPS R2000 Aula Virtual → IS09 Sergio Barrachina Mir Área de Arquitectura y Tecnología de Computadores Dpt. de Ingeniería y Ciencia de los Computadores Universidad Jaume I
Índice 1. Objetivos
4
2. Contenido y bibliografía
5
3. Introducción
6
3.1. Metodología de sincronización . . . . . . . . . . . . . . . 4. Construcción de la ruta de datos
11 14
4.1. Búsqueda de instrucciones e incremento del PC . . . . .
15
4.2. Instrucciones aritmético-logicas (tipo R) . . . . . . . . . .
17
4.3. Instrucciones de carga-almacenamiento . . . . . . . . . .
19
4.4. Instrucción de salto condicional . . . . . . . . . . . . . .
21
5. Rutas monociclo y multiciclo
23
6. Ruta de datos monociclo
24
7. Unidad de control monociclo
34
7.1. El control de la ALU . . . . . . . . . . . . . . . . . . . .
35
7.2. Formatos de instrucción . . . . . . . . . . . . . . . . . .
40
7.3. Ruta de datos con señales de control . . . . . . . . . . .
44
7.4. Ruta de datos monociclo con control . . . . . . . . . . . .
46
7.5. Añadir una nueva instrucción . . . . . . . . . . . . . . . .
56
7.6. Desventajas de la realización monociclo . . . . . . . . . .
59
1 Objetivos ➤ Dada una instrucción, conocer qué elementos y conexiones son necesarias para su ejecución.
➤ Poder construir la ruta de datos completa, tanto monociclo como multiciclo.
➤ Ser capaz de modificar la ruta de datos de un procesador monociclo o multiciclo para ampliar su juego de instrucciones.
➤ Conocer las ventajas y desventajas, en implementación y
▲
➲
Diseño del procesador MIPS R2000 – 4 / 59
I testtesttesttesttest
▲
rendimiento, de un procesador multiciclo frente a otro monociclo.
➲❏✘
2 Contenido y bibliografía ➤ Contenido: ➭ Introducción al diseño de un procesador. ➭ Construcción de la ruta de datos monociclo. ➭ Diseño de la unidad de control monociclo. ➭ Construcción de la ruta de datos multiciclo. ➭ Diseño de la unidad de control multiciclo. ➤ Bibliografía: ➭ Estructura y Diseño de Computadores: interficie circuitería/programación (2000). David A. Patterson y John L.
▲
➲
Diseño del procesador MIPS R2000 – 5 / 59
I testtesttesttesttest
▲
Hennessy. Capítulo 5.
➲❏✘
3 Introducción ➤ En este capítulo se va a construir: ➭ la ruta de datos y ➭ la unidad de control para dos realizaciones del siguiente subconjunto del repertorio de instrucciones del MIPS:
➭ Acceso a memoria: «lw» y «sw». ➭ Aritmético-lógicas: «add», «sub», «and», «or» y «slt».
▲
➲
Diseño del procesador MIPS R2000 – 6 / 59
I testtesttesttesttest
▲
➭ Salto: «beq» y, más adelante, «j».
➲❏✘
3 Introducción (II) ➤ Gran parte de lo necesario para construir las realizaciones de las anteriores instrucciones es común a todas ellas.
➤ Para cada instrucción, los dos primeros pasos son idénticos: 1. Enviar el contenido del PC a la memoria, cargar la instrucción de
▲
➲
Diseño del procesador MIPS R2000 – 7 / 59
I testtesttesttesttest
▲
memoria e incrementar el PC.
➲❏✘
3 Introducción (II) ➤ Gran parte de lo necesario para construir las realizaciones de las anteriores instrucciones es común a todas ellas.
➤ Para cada instrucción, los dos primeros pasos son idénticos: 1. Enviar el contenido del PC a la memoria, cargar la instrucción de memoria e incrementar el PC.
▲
➲
Diseño del procesador MIPS R2000 – 7 / 59
I testtesttesttesttest
▲
2. Leer uno o dos registros, dependiendo de la instrucción.
➲❏✘
3 Introducción (II) ➤ Gran parte de lo necesario para construir las realizaciones de las anteriores instrucciones es común a todas ellas.
➤ Para cada instrucción, los dos primeros pasos son idénticos: 1. Enviar el contenido del PC a la memoria, cargar la instrucción de memoria e incrementar el PC. 2. Leer uno o dos registros, dependiendo de la instrucción.
➤ Tras estos dos pasos, depende de la instrucción. ➤ Aún así, para las instrucciones del mismo tipo, las acciones
▲
➲
Diseño del procesador MIPS R2000 – 7 / 59
I testtesttesttesttest
▲
generalmente son las mismas.
➲❏✘
3 Introducción (III) ➤ Esquema de alto nivel de una realización del MIPS: Registros P C
Dirección de lectura Instrucción Memoria de Instrucciones
Reg. de lectura 1 Reg. de lectura 2 Reg. de escritura
Memoria de Datos
Dato leído 1 ALU
Dirección
Dato leído
Dato leído 2
Dato a escribir
Dato a escribir
▲
➲
Diseño del procesador MIPS R2000 – 8 / 59
I testtesttesttesttest
▲
➤ Este esquema se irá detallando a lo largo del tema.
➲❏✘
3 Introducción (IV) ➤ Las unidades funcionales que se utilizan son de dos tipos:
➭ Combinacionales. ➭ Secuenciales.
valor de las entradas.
3
ControlALU
▲
Diseño del procesador MIPS R2000 – 9 / 59
I testtesttesttesttest
Resultado de la ALU
▲
➭ La salida depende exclusivamente del
Cero
➲
➤ En las unidades combinacionales:
ALU
➲❏✘
3 Introducción (V) ➤ Las unidades secuenciales: ➭ Son aquellas cuya salida depende no sólo de las entradas, sino también del
EscribirMem
Memoria de Datos
estado que almacenan.
➭ Son las que definen el estado del
Dirección
Dato leído
computador: si se guarda su contenido, se apaga, se enciende y se restaura
→ como si no se hubiera apagado.
Dato a escribir
➭ Las unidades combinacionales deben
LeerMem
▲
➲
Diseño del procesador MIPS R2000 – 10 / 59
I testtesttesttesttest
▲
partir o llegar a una unidad secuencial.
➲❏✘
3.1 Metodología de sincronización ➤ Las unidades secuenciales síncronas poseen una entrada adicional: el reloj.
➤ Dicha entrada controla cuándo se debe escribir en los elementos de estado.
➤ La escritura puede provocarse por: ➭ Nivel: nivel alto o bajo. ➭ Flanco: flanco ascendente o descente. ➤ La metodología generalmente empleada es la de flanco.
▲
➲
Diseño del procesador MIPS R2000 – 11 / 59
I testtesttesttesttest
▲
➤ En la realización propuesta: flanco ascendente. ➲❏✘
3.1 Metodología de sincronización (II) ➤ Escritura controlada por flanco ascendente:
Elemento de estado 1
Lógica combinatoria
Elemento de estado 2
▲
➲
Diseño del procesador MIPS R2000 – 12 / 59
I testtesttesttesttest
▲
Ciclo de reloj
➲❏✘
3.1 Metodología de sincronización (III) ➤ La activación por flanco permite leer y escribir de un elemento de estado en el mismo ciclo de reloj (sin que se produzca una condición de carrera):
▲
▲
Diseño del procesador MIPS R2000 – 13 / 59
I testtesttesttesttest
Lógica combinatoria
➲
Elemento de estado
➲❏✘
4 Construcción de la ruta de datos ➤ Forma de construir la ruta de datos: ➭ Examinar los elementos requeridos para la ejecución de las distintas instrucciones.
➭ Construir las diferentes partes de la ruta de datos. ➭ Determinar las señales de control necesarias. ➭ Finalmente, unir las distintas partes para generar la ruta de datos:
➟ Las señales de control seleccionaran los diferentes caminos de
▲
➲
Diseño del procesador MIPS R2000 – 14 / 59
I testtesttesttesttest
▲
la ruta de datos.
➲❏✘
4.1 Búsqueda de instrucciones e incremento del PC
▲
➲
Diseño del procesador MIPS R2000 – 15 / 59
I testtesttesttesttest
▲
➤ Elementos necesarios:
➲❏✘
4.1 Búsqueda de instrucciones e incremento del PC ➤ Elementos necesarios:
Dirección de lectura Instrucción Sumador
Sumador
▲
Diseño del procesador MIPS R2000 – 15 / 59
I testtesttesttesttest
Contador de Programa
▲
Memoria de instrucciones
P C
➲
Memoria de Instrucciones
➲❏✘
4.1 Búsqueda de instrucciones e incremento del PC (II) ➤ Parte de la ruta de datos:
Sumador
4
P C
Dirección de lectura Instrucción
▲
➲
Diseño del procesador MIPS R2000 – 16 / 59
I testtesttesttesttest
▲
Memoria de Instrucciones
➲❏✘
4.2 Instrucciones aritmético-logicas (tipo R)
▲
➲
Diseño del procesador MIPS R2000 – 17 / 59
I testtesttesttesttest
▲
➤ Elementos necesarios para instrucciones tipo «add $t1,$t2,$t3»
➲❏✘
4.2 Instrucciones aritmético-logicas (tipo R) ➤ Elementos necesarios para instrucciones tipo «add $t1,$t2,$t3» EscrReg
5
Reg. de lectura 1 Reg. de lectura 2 Reg. de escritura
Dato leído 1 ALU Dato leído 2
Dato a escribir
Banco de Registros
Resultado de la ALU
3
ControlALU
ALU
▲
Diseño del procesador MIPS R2000 – 17 / 59
I testtesttesttesttest
Cero
▲
5
Registros
➲
5
➲❏✘
4.2 Instrucciones aritmético-logicas (tipo R) (II) ➤ Parte de la ruta de datos para las instrucciones aritmético-logicas: EscrReg
5
Instrucción
5
5
Registros Reg. de lectura 1 Reg. de lectura 2 Reg. de escritura
Dato leído 1
ALU Cero Resultado de la ALU
Dato leído 2
3
ControlALU
▲
➲
Diseño del procesador MIPS R2000 – 18 / 59
I testtesttesttesttest
▲
Dato a escribir
➲❏✘
4.3 Instrucciones de carga-almacenamiento
▲
➲
Diseño del procesador MIPS R2000 – 19 / 59
I testtesttesttesttest
▲
➤ Elementos necesarios para instrucciones tipo «lw $t1,desp($t2)» o «sw $t0,desp($t4)». Banco de registros, ALU y:
➲❏✘
4.3 Instrucciones de carga-almacenamiento ➤ Elementos necesarios para instrucciones tipo «lw $t1,desp($t2)» o «sw $t0,desp($t4)». Banco de registros, ALU y: EscribirMem
Memoria de Datos Dato leído
Dirección
Dato a escribir
16
Extensión de signo
32
LeerMem
▲
▲
Diseño del procesador MIPS R2000 – 19 / 59
I testtesttesttesttest
Extensión de signo
➲
Memoria de datos
➲❏✘
4.3 Instrucciones de carga-almacenamiento (II) ➤ Parte de la ruta de datos para las instrucciones de carga-almacenamiento: EscrReg
5
5
Reg. de lectura 1 Reg. de lectura 2 Reg. de escritura
Dato leído 1
ALU Cero Resultado de la ALU
Dato leído 2
3
Dato a escribir
16
Dirección
Dato leído
ControlALU
Dato a escribir Extensión de signo
32
LeerMem
▲
Diseño del procesador MIPS R2000 – 20 / 59
I testtesttesttesttest
Memoria de Datos
▲
Instrucción
EscribirMem
Registros
➲
5
➲❏✘
4.4 Instrucción de salto condicional
▲
➲
Diseño del procesador MIPS R2000 – 21 / 59
I testtesttesttesttest
▲
➤ Elementos necesarios para instrucciones tipo «beq $t1,$t2,bucle»
➲❏✘
4.4 Instrucción de salto condicional ➤ Elementos necesarios para instrucciones tipo «beq $t1,$t2,bucle» ➭ Banco de registros. ➭ ALU. ➭ Extensión del signo. ➭ Desplazamiento 2 bits a la izquierda.
▲
➲
Diseño del procesador MIPS R2000 – 21 / 59
I testtesttesttesttest
▲
➭ Sumador.
➲❏✘
4.4 Instrucción de salto condicional (II) ➤ Parte de la ruta de datos para la instrucción «beq»: PC+4 Sumador
Destino salto
Desp. 2 a la izqu. 5
Instrucción
5
Registros Reg. de lectura 1 Reg. de lectura 2 Reg. de escritura
Dato leído 1
ALU Cero
A la lógica de control de salto
Resultado de la ALU
Dato leído 2
3
ControlALU
Dato a escribir
▲
32
▲
Diseño del procesador MIPS R2000 – 22 / 59
I testtesttesttesttest
Extensión de signo
➲
16
➲❏✘
5 Rutas monociclo y multiciclo ➤ Para completar el procesador basta con: ➭ Combinar las rutas de datos vistas en una sóla y ➭ añadir las señales y unidad de control necesarias. ➤ En este tema se verán dos realizaciones posibles: ➭ Monociclo: todas las instrucciones se ejecutan en un único ciclo largo de instrucción.
➭ Multiciclo: utiliza múltiples ciclos de instrucción (más cortos) para
▲
➲
Diseño del procesador MIPS R2000 – 23 / 59
I testtesttesttesttest
▲
cada instrucción.
➲❏✘
6 Ruta de datos monociclo ➤ Ésta es la realización más sencilla posible de un procesador. ➤ Se construirá uniendo las partes vistas anteriormente y añadiendo las señales de control necesarias.
➤ Recordatorio: las instrucciones que se implementarán son: ➭ «add», «sub», «and», «or», «slt», ➭ «lw», «sw»,
▲
➲
Diseño del procesador MIPS R2000 – 24 / 59
I testtesttesttesttest
▲
➭ «beq», y posteriormente, «j».
➲❏✘
6 Ruta de datos monociclo (II) ➤ Todas las instrucciones se han de ejecutar en un sólo ciclo → Ningún elemento puede utilizarse más de una vez por instrucción → Cualquier recurso que se requiera más de una vez por instrucción deberá estar duplicado.
➤ Por ejemplo: la memoria debe estar separada en memoria de
▲
➲
Diseño del procesador MIPS R2000 – 25 / 59
I testtesttesttesttest
▲
instrucciones y memoria de datos.
➲❏✘
6 Ruta de datos monociclo (III) ➤ Por otro lado, podrán compartirse los elementos comúnes a distintas instrucciones. Cuando sea necesario, deberán proporcionarse:
➭ múltiples entradas, ➭ una señal de control para seleccionar la entrada adecuada. ➤ Esta selección se realiza normalmente mediante un multiplexor. Operando A (común) ALU Cero
Operando B (clase X)
Operando B (clase Y)
0
M u x 1
Resultado de la ALU
3
ControlALU
▲
➲
Diseño del procesador MIPS R2000 – 26 / 59
I testtesttesttesttest
▲
FuenteALU
➲❏✘
6 Ruta de datos monociclo (IV) ➤ Para la construcción de la ruta de dato vamos a: 1. Combinar las partes de la ruta de datos correspondiente a las instrucción aritmético-lógicas (tipo R) y las de carga-almacenamiento. 2. Añadir la parte correspondiente a la búsqueda de la instrucción e incremento del PC. 3. Combinar dicha ruta de datos con la parte correspondiente a la
▲
➲
Diseño del procesador MIPS R2000 – 27 / 59
I testtesttesttesttest
▲
instrucción «beq».
➲❏✘
6 Ruta de datos monociclo (V) ➤ Ejercicio 1: Combinar las rutas de datos de las instrucciones aritmético-lógicas y las de carga-almacenamiento. EscrReg
Instrucción
EscrReg
Instrucción
5
5
Reg. de lectura 1 Reg. de lectura 2 Reg. de escritura
Dato leído 1
5
ALU Cero
Reg. de lectura 1 Reg. de lectura 2 Reg. de escritura
Dato leído 1
Memoria de Datos
ALU Cero Resultado de la ALU
Dato leído 2
3
ControlALU
Dato a escribir
Dato a escribir
Resultado de la ALU
Dato leído 2
3
16
ControlALU
Dato a escribir
Extensión de signo
32
LeerMem
▲
Diseño del procesador MIPS R2000 – 28 / 59
I testtesttesttesttest
Dato leído
Dirección
➲
5
Registros
5
EscribirMem
Registros
▲
5
➲❏✘
6 Ruta de datos monociclo (VI) ➤ Solución: EscrReg
5
Reg. de lectura 2 Reg. de escritura
Dato leído 1
ALU Fuente ALU
Dato leído 2
M u x 1
Extensión de signo
Resultado de la ALU
Dirección
Dato leído
1
M u x
32
0
3
ControlALU
Dato a escribir LeerMem
▲
Diseño del procesador MIPS R2000 – 29 / 59
I testtesttesttesttest
Cero
MemaReg
0
Dato a escribir
16
Memoria de Datos
▲
Instrucción
5
Reg. de lectura 1
➲
5
EscribirMem
Registros
➲❏✘
6 Ruta de datos monociclo (VII) ➤ Ejercicio 2: Añadir la parte correspondiente a la búsqueda de la instrucción e incremento del PC a la ruta de datos obtenida: EscrReg
5
Instrucción Sumador
4
5
5
EscribirMem
Registros Reg. de lectura 1 Reg. de lectura 2 Reg. de escritura
Dato leído 1
ALU Fuente ALU
Dato leído 2
M u x 1
Dirección de lectura 16
Instrucción
Extensión de signo
Cero Resultado de la ALU
MemaReg
Dato leído
Dirección
1
M u x
0
Dato a escribir P C
Memoria de Datos
32
0
3
ControlALU
Dato a escribir LeerMem
▲
➲
Diseño del procesador MIPS R2000 – 30 / 59
I testtesttesttesttest
▲
Memoria de Instrucciones
➲❏✘
6 Ruta de datos monociclo (VIII) ➤ Solución: Sumador
4
Instrucción Memoria de Instrucciones
5
5
5
Reg. de lectura 1 Reg. de lectura 2 Reg. de escritura
Dato leído 1
ALU Fuente ALU
Dato leído 2
M u x
Resultado de la ALU
Dirección
Dato leído
1
M u x
32
0
3
ControlALU
Dato a escribir LeerMem
▲
Diseño del procesador MIPS R2000 – 31 / 59
I testtesttesttesttest
1
Extensión de signo
Cero
MemaReg
0
Dato a escribir
16
Memoria de Datos
▲
Dirección de lectura
EscribirMem
Registros
➲
P C
EscrReg
➲❏✘
6 Ruta de datos monociclo (IX) ➤ Ejercicio 3: Combinar la actual ruta de datos con la parte correspondiente a la instrucción «beq». PC+4 Sumador
Destino salto
Desp. 2 a la izqu. 5
Instrucción
5
Registros Reg. de lectura 1 Reg. de lectura 2 Reg. de escritura
Dato leído 1
ALU Cero
A la lógica de control de salto
Resultado de la ALU
Dato leído 2
3
ControlALU
Dato a escribir
▲
32
▲
Diseño del procesador MIPS R2000 – 32 / 59
I testtesttesttesttest
Extensión de signo
➲
16
➲❏✘
6 Ruta de datos monociclo (X) ➤ Solución: 0 Sumador Sumador
4
M u x 1
Desp. 2 a la izqu.
FuentePC
EscrReg
Instrucción Memoria de Instrucciones
5
5
Reg. de lectura 1 Reg. de lectura 2 Reg. de escritura
Dato leído 1
ALU Fuente ALU
Dato leído 2
M u x
Resultado de la ALU
Dirección
Dato leído
32
MemaReg 1
M u x 0
3
ControlALU
Dato a escribir LeerMem
▲
Diseño del procesador MIPS R2000 – 33 / 59
I testtesttesttesttest
1
Extensión de signo
Cero
0
Dato a escribir
16
Memoria de Datos
▲
Dirección de lectura
EscribirMem
Registros
➲
P C
5
➲❏✘
7 Unidad de control monociclo ➤ La unidad de control es quien determina el valor de las diferentes señales de control en un instante dado.
➤ Antes de diseñar la unidad de control es necesario disponer de todas las señales de control. Para ello, veremos a continuación:
➭ El control de la ALU. ➭ Qué información proporcionan las instrucciones. ¿Qué bits se utilizan para ello?
➭ Ruta de datos con todas las señales de control.
▲
➲
Diseño del procesador MIPS R2000 – 34 / 59
I testtesttesttesttest
▲
➤ Finalmente, se procederá al diseño de la Unidad de Control. ➲❏✘
7.1 El control de la ALU ➤ Supongamos que la señal ControlALU determina la operación de la ALU de acuerdo con la siguiente tabla de verdad: ControlALU
Función
ALU Cero
AND
001
OR
Resultado de la ALU
3
suma
110
resta
111
activar si menor que
▲
Diseño del procesador MIPS R2000 – 35 / 59
I testtesttesttesttest
➲
010
ControlALU
▲
000
➲❏✘
7.1 El control de la ALU (II) ➤ Sería posible que la Unidad de Control determinara el valor correcto de la señal ControlALU en función de la instrucción en curso.
➤ Sin embargo, para simplificar el diseño de la Unidad de Control, se pueden crear
ALU Cero Resultado de la ALU
elementos de control especializados.
➤ Así, para generar la señal ControlALU se va
3
ControlALU
a utilizar un elemento que llamaremos:
▲
➲
Diseño del procesador MIPS R2000 – 36 / 59
I testtesttesttesttest
▲
➭ Control de la ALU. ➲❏✘
7.1 El control de la ALU (III) ➤ El Control de la ALU dispondrá de 2 entradas: ➭ Señal de control ALUOp (generada por la Unidad de Control). ➭ Bits del campo función de la instrucción. y 1 salida: señal ControlALU. ALU Cero Resultado de la ALU
3
Campo función
ControlALU
Control de la ALU
▲
➲
Diseño del procesador MIPS R2000 – 37 / 59
I testtesttesttesttest
▲
ALUOp
➲❏✘
7.1 El control de la ALU (IV) ➤ Funcionamiento del Control de la ALU Código
ALUOp
operación
Campo de
Operación
función
Acción
ControlALU
deseada
00
XXXXXX
cargar palabra
suma
010
SW
00
XXXXXX
almacenar palabra
suma
010
Branch Equal
01
XXXXXX
saltar si igual
resta
110
R-type
10
100000
suma
suma
010
R-type
10
100010
resta
resta
110
R-type
10
100100
and
and
000
R-type
10
100101
or
or
001
R-type
10
101010
poner si menor
slt
111
▲
➲
Diseño del procesador MIPS R2000 – 38 / 59
I testtesttesttesttest
▲
LW
➲❏✘
7.1 El control de la ALU (V) ➤ Tabla de verdad del Control de la ALU
ALUOp
Campo de
ControlALU
XXXXXX
010
01
XXXXXX
110
1X
XX0000
010
1X
XX0010
110
1X
XX0100
000
1X
XX0101
001
1X
XX1010
111
▲
Diseño del procesador MIPS R2000 – 39 / 59
I testtesttesttesttest
➲
00
▲
función
➲❏✘
7.2 Formatos de instrucción RECORDATORIO
➤ Antes de diseñar la unidad de control es necesario disponer de todas las señales de control. Para ello, veremos a continuación:
➭ El control de la ALU. ➭ Qué información proporcionan las instrucciones. ¿Qué bits se utilizan para ello?
▲
➲
Diseño del procesador MIPS R2000 – 40 / 59
I testtesttesttesttest
▲
➭ Ruta de datos con todas las señales de control.
➲❏✘
7.2 Formatos de instrucción (II) ➤ Las instrucciones que queremos implementar pertenecen a uno de los siguientes formatos (con el código de operación indicado):
➭ Formato R («add», «sub», «and», etc.): 31
... 2625 ... 2120 ... 1615 ... 1110 ... 65
0
rs
rt
6 bits
5 bits
5 bits
...
0
rd shamt funct 5 bits
5 bits
6 bits
➭ Formato I («lw», «sw» y «beq»): ...
35/43
rs
rt
rd
6 bits
5 bits
5 bits
16 bits
31
... 2625 ... 2120 ... 1615
...
4
rs
rt
rd
6 bits
5 bits
5 bits
16 bits
0
▲
Diseño del procesador MIPS R2000 – 41 / 59
I testtesttesttesttest
0
▲
... 2625 ... 2120 ... 1615
➲
31
➲❏✘
7.2 Formatos de instrucción (III) ➤ Ejercicio 4: Modifica la siguiente parte de la ruta de datos de forma que se especifique qué bits de la instrucción van a qué entrada del banco de registros: EscrReg
5
Instrucción
5
5
Registros Reg. de lectura 1 Reg. de lectura 2 Reg. de escritura
Dato leído 1
Dato leído 2
▲
➲
Diseño del procesador MIPS R2000 – 42 / 59
I testtesttesttesttest
▲
Dato a escribir
➲❏✘
7.2 Formatos de instrucción (IV) ➤ Solución: EscrReg
Registros Instrucción [25−21]
Reg. de lectura 1
Instrucción [20−16]
Reg. de lectura 2
Instrucción
Dato leído 1
0
RegDest
Dato a escribir
▲
Diseño del procesador MIPS R2000 – 43 / 59
I testtesttesttesttest
Dato leído 2
▲
1
Reg. de escritura
➲
Instrucción [15−11]
M u x
➲❏✘
7.3 Ruta de datos con señales de control RECORDATORIO
➤ Antes de diseñar la unidad de control es necesario disponer de todas las señales de control. Para ello, veremos a continuación:
➭ El control de la ALU. ➭ Qué información proporcionan las instrucciones. ¿Qué bits se utilizan para ello?
▲
➲
Diseño del procesador MIPS R2000 – 44 / 59
I testtesttesttesttest
▲
➭ Ruta de datos con todas las señales de control.
➲❏✘
7.3 Ruta de datos con señales de control (II)
0 Sumador Sumador
4
M u x 1
Desp. 2 a la izqu.
FuentePC
EscrReg
Registros
Instrucción [25−21] P C
Dirección de lectura
Instrucción [20−16]
Instrucción [31−0] Memoria de Instrucciones
Reg. de lectura 1
0
Instrucción [15−11]
M u x 1
RegDest
Reg. de lectura 2 Reg. de escritura
EscrMem
Dato leído 1
Memoria de Datos
ALU Fuente ALU
Dato leído 2
0
Resultado de la ALU
Dirección
Dato leído
M u x
Dato a escribir
MemaReg
Cero 1
M u x 0
1
Dato a escribir Extensión de signo
Instrucción [5−0]
Control de la ALU
LeerMem
ALUOp
▲
Diseño del procesador MIPS R2000 – 45 / 59
I testtesttesttesttest
32
▲
16
➲
Instrucción [15−0]
➲❏✘
7.4 Ruta de datos monociclo con control 0 Sumador Sumador
4
M u x 1
Desp. 2 a la izqu.
Instrucción [31−26]
RegDest SaltoCond LeerMem MemaReg Control
Dirección de lectura
Memoria de Instrucciones
Reg. de lectura 1
Instrucción [20−16]
Instrucción [31−0]
0
Instrucción [15−11]
ALUOp EscrMem FuenteALU EscrReg
Registros
Instrucción [25−21] P C
FuentePC
M u x 1
Reg. de lectura 2 Reg. de escritura
Dato leído 1
Memoria de Datos
ALU Cero
Dato leído 2
Resultado de la ALU
0
Dirección
Dato leído
M u x
Dato a escribir
1
M u x 0
1
Dato a escribir Instrucción [15−0]
16
Extensión de signo
32
Control de la ALU
▲
➲
Diseño del procesador MIPS R2000 – 46 / 59
I testtesttesttesttest
▲
Instrucción [5−0]
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
ALUOp0 0 0 0 1
▲
ALUOp1
SaltoCond
EscrMem
LeerMem
EscrReg
1 0 0 0
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
MemaReg
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
0 0 0 1
▲
ALUOp0
SaltoCond
EscrMem
LeerMem
EscrReg
1 0 0 0
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
MemaReg
FuenteALU
1
ALUOp1
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
ALUOp0 0 0 0 1
▲
ALUOp1
SaltoCond
EscrMem
1 0 0 0
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
LeerMem
0
EscrReg
1
MemaReg
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
ALUOp0 0 0 0 1
▲
ALUOp1 1 0 0 0
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
SaltoCond
0
EscrMem
0
LeerMem
MemaReg
1
EscrReg
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
0 0 0 1
▲
1 0 0 0
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
ALUOp0
1
ALUOp1
0
SaltoCond
EscrReg
0
EscrMem
MemaReg
1
LeerMem
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
1
ALUOp0
LeerMem
0
ALUOp1
EscrReg
0
SaltoCond
MemaReg
1
EscrMem
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
EscrMem
1
0
0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
LeerMem
0
ALUOp0
EscrReg
0
ALUOp1
MemaReg
1
SaltoCond
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0
1
0
0
0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0
ALUOp0
MemaReg
1
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
EscrMem
SaltoCond
1
0
0
0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
LeerMem
0
ALUOp0
EscrReg
0
ALUOp1
MemaReg
1 0
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0
1
0
0
0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1
ALUOp0
MemaReg
1 0
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
0
1 0 0 0
0 0 0 1
▲
0
ALUOp0
0
ALUOp1
1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
SaltoCond
0 1
EscrMem
0 1
LeerMem
MemaReg
1 0
EscrReg
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0 1
1 1
0
0
0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1
ALUOp0
MemaReg
1 0
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0 1
1 1
0 1
0
0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1
ALUOp0
MemaReg
1 0
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0 1
1 1
0 1
0 0
0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1
ALUOp0
MemaReg
1 0
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0 1
1 1
0 1
0 0
0 0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1
ALUOp0
MemaReg
1 0
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
EscrMem
SaltoCond
1 1
0 1
0 0
0 0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
LeerMem
0 1
ALUOp0
EscrReg
0 1
ALUOp1
MemaReg
1 0 X
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0 1
1 1
0 1
0 0
0 0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1 1
ALUOp0
MemaReg
1 0 X
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
0 0
1 0 0 0
0 0 0 1
▲
0 0
ALUOp0
0 1
ALUOp1
1 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
SaltoCond
0 1 X
EscrMem
0 1 1
LeerMem
MemaReg
1 0 X
EscrReg
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0 1 X
1 1 0
0 1
0 0
0 0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1 1
ALUOp0
MemaReg
1 0 X
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0 1 X
1 1 0
0 1 0
0 0
0 0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1 1
ALUOp0
MemaReg
1 0 X
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0 1 X
1 1 0
0 1 0
0 0 1
0 0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1 1
ALUOp0
MemaReg
1 0 X
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0 1 X
1 1 0
0 1 0
0 0 1
0 0 0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1 1
ALUOp0
MemaReg
1 0 X
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
EscrMem
SaltoCond
1 1 0
0 1 0
0 0 1
0 0 0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
LeerMem
0 1 X
ALUOp0
EscrReg
0 1 1
ALUOp1
MemaReg
1 0 X X
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0 1 X
1 1 0
0 1 0
0 0 1
0 0 0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1 1 0
ALUOp0
MemaReg
1 0 X X
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
0 0 0
1 0 0 0
0 0 0 1
▲
0 0 1
ALUOp0
0 1 0
ALUOp1
1 1 0
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
SaltoCond
0 1 X X
EscrMem
0 1 1 0
LeerMem
MemaReg
1 0 X X
EscrReg
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0 1 X X
1 1 0 0
0 1 0
0 0 1
0 0 0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1 1 0
ALUOp0
MemaReg
1 0 X X
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0 1 X X
1 1 0 0
0 1 0 0
0 0 1
0 0 0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1 1 0
ALUOp0
MemaReg
1 0 X X
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
LeerMem
EscrMem
SaltoCond
0 1 X X
1 1 0 0
0 1 0 0
0 0 1 0
0 0 0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
1 0 0 0
▲
EscrReg
0 1 1 0
ALUOp0
MemaReg
1 0 X X
ALUOp1
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (II) ➤ Figura anterior → significado señales de control. ➤ El valor de las señales de control queda determinado por el código
MemaReg
EscrReg
LeerMem
EscrMem
SaltoCond
ALUOp1
ALUOp0
1 0 X X
0 1 1 0
0 1 X X
1 1 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 0 0 1
▲
Diseño del procesador MIPS R2000 – 47 / 59
I testtesttesttesttest
▲
FuenteALU
Formato R «lw» «sw» «beq»
➲
Instrucción
RegDest
de operación de la instrucción en curso:
➲❏✘
7.4 Ruta de datos monociclo con control (III) ➤ Tabla de verdad de la Unidad de Control monociclo:
ALUOp0
0 1 1 0
ALUOp1
0 1 1 0
SaltoCond
0 0 0 1
EscrMem
0 0 1 0
LeerMem
0 0 0 0
EscrReg
0 1 1 0
MemaReg
CO5 CO4 CO3 CO2 CO1 CO0
FuenteALU
Salidas RegDest
Entradas
1 0 X X
0 1 1 0
0 1 X X
1 1 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 0 0 1
▲
➲
Diseño del procesador MIPS R2000 – 48 / 59
I testtesttesttesttest
▲
➤ Tabla de verdad → ➲❏✘
7.4 Ruta de datos monociclo con control (III) ➤ Tabla de verdad de la Unidad de Control monociclo:
ALUOp0
0 1 1 0
ALUOp1
0 1 1 0
SaltoCond
0 0 0 1
EscrMem
0 0 1 0
LeerMem
0 0 0 0
EscrReg
0 1 1 0
MemaReg
CO5 CO4 CO3 CO2 CO1 CO0
FuenteALU
Salidas RegDest
Entradas
1 0 X X
0 1 1 0
0 1 X X
1 1 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 0 0 1
▲
➲
Diseño del procesador MIPS R2000 – 48 / 59
I testtesttesttesttest
▲
➤ Tabla de verdad → Simplificación → ➲❏✘
7.4 Ruta de datos monociclo con control (III) ➤ Tabla de verdad de la Unidad de Control monociclo:
ALUOp0
0 1 1 0
ALUOp1
0 1 1 0
SaltoCond
0 0 0 1
EscrMem
0 0 1 0
LeerMem
0 0 0 0
EscrReg
0 1 1 0
MemaReg
CO5 CO4 CO3 CO2 CO1 CO0
FuenteALU
Salidas RegDest
Entradas
1 0 X X
0 1 1 0
0 1 X X
1 1 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 0 0 1
▲
➲
Diseño del procesador MIPS R2000 – 48 / 59
I testtesttesttesttest
▲
➤ Tabla de verdad → Simplificación → ¡Circuito Combinacional! ➲❏✘
7.4 Ruta de datos monociclo con control (IV) ➤ A continuación se va mostrar el flujo a través de la ruta de datos de las siguientes instrucciones:
➭ «add $t1, $t2, $t3» ➭ «lw $t1, desp1($t2)» ➭ «beq $t1, $t2, desp» ➤ Se resaltarán en la ruta de datos: ➭ Elementos activos de la ruta de datos. ➭ Señales de control activadas.
▲
➲
Diseño del procesador MIPS R2000 – 49 / 59
I testtesttesttesttest
▲
(Si una señal de control está a cero, no se resaltará)
➲❏✘
7.4 Ruta de datos monociclo con control (V) 0 Sumador Sumador
4
M u x 1
Desp. 2 a la izqu.
Instrucción [31−26]
RegDest SaltoCond LeerMem MemaReg Control
Dirección de lectura
Memoria de Instrucciones
Reg. de lectura 1
Instrucción [20−16]
Instrucción [31−0]
0
Instrucción [15−11]
ALUOp EscrMem FuenteALU EscrReg
Registros
Instrucción [25−21] P C
FuentePC
M u x 1
Reg. de lectura 2 Reg. de escritura
Dato leído 1
Memoria de Datos
ALU Cero
Dato leído 2
Resultado de la ALU
0
Dirección
Dato leído
M u x
Dato a escribir
1
M u x 0
1
Dato a escribir 32
Control de la ALU
Instrucción [5−0]
▲
Diseño del procesador MIPS R2000 – 50 / 59
I testtesttesttesttest
Extensión de signo
▲
«add $t1, $t2, $t3» (1/4)
16
➲
Instrucción [15−0]
➲❏✘
7.4 Ruta de datos monociclo con control (VI) 0 Sumador Sumador
4
M u x 1
Desp. 2 a la izqu.
Instrucción [31−26]
Control
Dirección de lectura
Memoria de Instrucciones
Reg. de lectura 1
Instrucción [20−16]
Instrucción [31−0]
0
Instrucción [15−11]
RegDest SaltoCond LeerMem MemaReg ALUOp EscrMem FuenteALU EscrReg
Registros
Instrucción [25−21] P C
FuentePC
M u x 1
Reg. de lectura 2 Reg. de escritura
Dato leído 1
Memoria de Datos
ALU Cero
Dato leído 2
Resultado de la ALU
0
Dirección
Dato leído
M u x
Dato a escribir
1
M u x 0
1
Dato a escribir 32
Control de la ALU
Instrucción [5−0]
▲
Diseño del procesador MIPS R2000 – 51 / 59
I testtesttesttesttest
Extensión de signo
▲
«add $t1, $t2, $t3» (2/4)
16
➲
Instrucción [15−0]
➲❏✘
7.4 Ruta de datos monociclo con control (VII) 0 Sumador Sumador
4
M u x 1
Desp. 2 a la izqu.
Instrucción [31−26]
Control
Dirección de lectura
Memoria de Instrucciones
Reg. de lectura 1
Instrucción [20−16]
Instrucción [31−0]
0
Instrucción [15−11]
RegDest SaltoCond LeerMem MemaReg ALUOp EscrMem FuenteALU EscrReg
Registros
Instrucción [25−21] P C
FuentePC
M u x 1
Reg. de lectura 2 Reg. de escritura
Dato leído 1
Memoria de Datos
ALU Cero
Dato leído 2
Resultado de la ALU
0
Dirección
Dato leído
M u x
Dato a escribir
1
M u x 0
1
Dato a escribir 32
Control de la ALU
Instrucción [5−0]
▲
Diseño del procesador MIPS R2000 – 52 / 59
I testtesttesttesttest
Extensión de signo
▲
«add $t1, $t2, $t3» (3/4)
16
➲
Instrucción [15−0]
➲❏✘
7.4 Ruta de datos monociclo con control (VIII) 0 Sumador Sumador
4
M u x 1
Desp. 2 a la izqu.
Instrucción [31−26]
Control
Dirección de lectura
Memoria de Instrucciones
Reg. de lectura 1
Instrucción [20−16]
Instrucción [31−0]
0
Instrucción [15−11]
RegDest SaltoCond LeerMem MemaReg ALUOp EscrMem FuenteALU EscrReg
Registros
Instrucción [25−21] P C
FuentePC
M u x 1
Reg. de lectura 2 Reg. de escritura
Dato leído 1
Memoria de Datos
ALU Cero
Dato leído 2
Resultado de la ALU
0
Dirección
Dato leído
M u x
Dato a escribir
1
M u x 0
1
Dato a escribir 32
Control de la ALU
Instrucción [5−0]
▲
Diseño del procesador MIPS R2000 – 53 / 59
I testtesttesttesttest
Extensión de signo
▲
«add $t1, $t2, $t3» (4/4)
16
➲
Instrucción [15−0]
➲❏✘
7.4 Ruta de datos monociclo con control (IX) 0 Sumador Sumador
4
M u x 1
Desp. 2 a la izqu.
Instrucción [31−26]
RegDest SaltoCond LeerMem MemaReg Control
Dirección de lectura
Memoria de Instrucciones
Reg. de lectura 1
Instrucción [20−16]
Instrucción [31−0]
0
Instrucción [15−11]
ALUOp EscrMem FuenteALU EscrReg
Registros
Instrucción [25−21] P C
FuentePC
M u x 1
Reg. de lectura 2 Reg. de escritura
Dato leído 1
Memoria de Datos
ALU Cero
Dato leído 2
Resultado de la ALU
0
Dirección
Dato leído
M u x
Dato a escribir
1
M u x 0
1
Dato a escribir 32
Control de la ALU
Instrucción [5−0]
▲
Diseño del procesador MIPS R2000 – 54 / 59
I testtesttesttesttest
Extensión de signo
▲
«lw $t1, desp1($t2)»
16
➲
Instrucción [15−0]
➲❏✘
7.4 Ruta de datos monociclo con control (X) 0 Sumador Sumador
4
M u x 1
Desp. 2 a la izqu.
Instrucción [31−26]
Control
Dirección de lectura
Memoria de Instrucciones
Reg. de lectura 1
Instrucción [20−16]
Instrucción [31−0]
0
Instrucción [15−11]
RegDest SaltoCond LeerMem MemaReg ALUOp EscrMem FuenteALU EscrReg
Registros
Instrucción [25−21] P C
FuentePC
M u x 1
Reg. de lectura 2 Reg. de escritura
Dato leído 1
Memoria de Datos
ALU Cero
Dato leído 2
Resultado de la ALU
0
Dirección
Dato leído
M u x
Dato a escribir
1
M u x 0
1
Dato a escribir 32
Control de la ALU
Instrucción [5−0]
▲
Diseño del procesador MIPS R2000 – 55 / 59
I testtesttesttesttest
Extensión de signo
▲
«beq $t1, $t2, desp»
16
➲
Instrucción [15−0]
➲❏✘
7.5 Añadir una nueva instrucción ➤ Ejercicio 5: Amplía la ruta de datos de tal forma que sea capaz de ejecutar instrucciones de salto incondicional («j»).
➤ Recordatorio: La dirección de salto de una instrucción «j dest» se obtienen concatenando:
➭ Los 4 bits de mayor peso de «PC+4». ➭ Los 26 bits de menor peso de la instrucción «j».
▲
➲
Diseño del procesador MIPS R2000 – 56 / 59
I testtesttesttesttest
▲
➭ Dos bits a 0: (002 ).
➲❏✘
7.5 Añadir una nueva instrucción (II) ➤ Solución: Los elementos que se deben añadir son:
▲
➲
Diseño del procesador MIPS R2000 – 57 / 59
I testtesttesttesttest
▲
➭ Circuitería necesaria para generar la dirección de salto.
➲❏✘
7.5 Añadir una nueva instrucción (II) ➤ Solución: Los elementos que se deben añadir son:
➭ Circuitería necesaria para generar la dirección de salto. ➭ Multiplexor para seleccionar:
▲
➲
Diseño del procesador MIPS R2000 – 57 / 59
I testtesttesttesttest
▲
➟ Dirección de salto incodicional o ➟ PC+4 o dirección de salto condicional.
➲❏✘
7.5 Añadir una nueva instrucción (II) ➤ Solución: Los elementos que se deben añadir son:
➭ Circuitería necesaria para generar la dirección de salto. ➭ Multiplexor para seleccionar: ➟ Dirección de salto incodicional o ➟ PC+4 o dirección de salto condicional. ➭ Nueva señal de control, SaltoIncond, que:
▲
➲
Diseño del procesador MIPS R2000 – 57 / 59
I testtesttesttesttest
▲
➟ se active cuando la instrucción sea una «j» (CO=2) ➟ y controle el anterior multiplexor.
➲❏✘
7.5 Añadir una nueva instrucción (III) Instrucción [25−0] 26
Desp. 2 a la izqu.
28
32
Dirección de jump [31−0] 1
M u x
0
PC+4 [31−28] Sumador Sumador
4
M u x
0
1
Desp. 2 a la izqu.
FuentePC
RegDest SaltoIncond SaltoCond
Instrucción [31−26]
Control
LeerMem MemaReg ALUOp EscrMem FuenteALU EscrReg
Registros
Instrucción [25−21] P C
Dirección de lectura
Instrucción [20−16]
Instrucción [31−0] Memoria de Instrucciones
Reg. de lectura 1
0
Instrucción [15−11]
M u x 1
Reg. de lectura 2 Reg. de escritura
Dato leído 1
Memoria de Datos
ALU Cero
Dato leído 2
Resultado de la ALU
0
Dirección
Dato leído
1
M u x
M u x
Dato a escribir
0
1
Dato a escribir Instrucción [15−0]
16
Extensión de signo
32
Control de la ALU
▲
➲
Diseño del procesador MIPS R2000 – 58 / 59
I testtesttesttesttest
▲
Instrucción [5−0]
➲❏✘
7.6 Desventajas de la realización monociclo ➤ Es posible realizar un procesador utilizando esta técnica. ➤ Sin embargo, no se construyen debido a que es ineficiente: ➭ El tiempo de ciclo viene determinado por la instrucción más lenta → no es posible reducir el tiempo de las instrucciones rápidas.
▲
➲
Diseño del procesador MIPS R2000 – 59 / 59
I testtesttesttesttest
▲
➭ Las unidades funcionales sólo pueden utilizarse una vez por ciclo → encarece el coste de la realización.
➲❏✘
7.6 Desventajas de la realización monociclo ➤ Es posible realizar un procesador utilizando esta técnica. ➤ Sin embargo, no se construyen debido a que es ineficiente: ➭ El tiempo de ciclo viene determinado por la instrucción más lenta → no es posible reducir el tiempo de las instrucciones rápidas. ➭ Las unidades funcionales sólo pueden utilizarse una vez por ciclo → encarece el coste de la realización. ➤ Realizaciones alternativas: ➭ Ruta de datos Multiciclo.
▲
➲
Diseño del procesador MIPS R2000 – 59 / 59
I testtesttesttesttest
▲
➭ Ruta de datos Segmentada. ➲❏✘
Fin c 2006 Sergio Barrachina Mir Copyright Área de Arquitectura y Tecnología de Computadores Dpt. de Ingeniería y Ciencia de los Computadores Universidad Jaume I c 2002-5 Sergio Barrachina (
[email protected]) Realizada con ujislides