Diseño del procesador MIPS R2000

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 Cien

4 downloads 123 Views 651KB Size

Story Transcript

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

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.