Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de...

30
Arquitectura MIPS: Formato de la instrucción máquina Arquitectura MIPS: Formato de la instrucción máquina La ruta de datos la diseñaremos para un subconjunto de instrucciones del procesador MIPS que La ruta de datos la diseñaremos para un subconjunto de instrucciones del procesador MIPS, que dispone de sólo 3 formatos de diferentes de longitud fija de 32 bits: Tipo R: 0 6 11 16 21 26 31 Aritmético-lógicas Tipo I: Referencia a memoria Aritméticas (inmediato) op rs rt rd desp funct 0 6 11 16 21 26 31 6 bits 6 bits 5 bits 5 bits 5 bits 5 bits 0 16 21 26 31 Aritméticas (inmediato) Salto condicional Tipo J: Salto incondicional op dirección 0 26 31 op rs rt inmediato 6 bits 16 bits 5 bits 5 bits El significado de los campos es el siguiente: op dirección 6 bits 26 bits op: código de operación (identificador de cada instrucción) rs, rt, rd: identificadores de los registros fuentes y destino de las operaciones desp: cantidad a desplazar en operaciones de desplazamiento funct: identificador de la operación aritmética a realizar inmediato: operando inmediato, o desplazamiento en direccionamiento base+desplazamiento dirección: dirección destino del salto 1 ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Transcript of Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de...

Page 1: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Arquitectura MIPS: Formato de la instrucción máquinaArquitectura MIPS: Formato de la instrucción máquina

• La ruta de datos la diseñaremos para un subconjunto de instrucciones del procesador MIPS que• La ruta de datos la diseñaremos para un subconjunto de instrucciones del procesador MIPS, que dispone de sólo 3 formatos de diferentes de longitud fija de 32 bits:

• Tipo R: 061116212631pAritmético-lógicas

• Tipo I: Referencia a memoriaAritméticas (inmediato)

op rs rt rd desp funct061116212631

6 bits 6 bits5 bits5 bits5 bits5 bits016212631

Aritméticas (inmediato) Salto condicional

• Tipo J: Salto incondicional op dirección

02631

op rs rt inmediato

6 bits 16 bits5 bits5 bits

• El significado de los campos es el siguiente:

op dirección6 bits 26 bits

op: código de operación (identificador de cada instrucción) rs, rt, rd: identificadores de los registros fuentes y destino de las operaciones desp: cantidad a desplazar en operaciones de desplazamiento funct: identificador de la operación aritmética a realizar inmediato: operando inmediato, o desplazamiento en direccionamiento base+desplazamiento dirección: dirección destino del salto

1

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 2: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Arquitectura MIPS: Semántica de las instrucciones seleccionadasArquitectura MIPS: Semántica de las instrucciones seleccionadas

• Instrucciones de referencia a memoria (formato tipo I):• Instrucciones de referencia a memoria (formato tipo I):

lw rt, inmed(rs) rt Memoria( rs + SignExt( inmed ) ) , PC PC + 4 sw rt, inmed(rs) Memoria( rs + SignExt( inmed ) ) rt , PC PC + 4

• Instrucciones aritmético-lógicas con operandos en registros (formato tipo R)

add rd, rs, rt rd rs + rt, PC PC + 4 sub rd, rs, rt rd rs - rt , PC PC + 4 and rd, rs, rt rd rs and rt , PC PC + 4 or rd, rs, rt rd rs or rt , PC PC + 4 slt rd, rs, rt ( si ( rs < rt ) entonces ( rd 1 )

en otro caso ( rd 0 ) ), PC PC+4

• Instrucciones de salto condicional (formato tipo I)

b i d i ( ) ( C C 4 4 Si ( i d ) ) beq rs, rt, inmed si ( rs = rt ) entonces ( PC PC + 4 + 4·SignExt( inmed ) ) caso contrario PC PC + 4

2

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 3: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos monociclo (1)•• ComponentesComponentes dede lala rutaruta dede datosdatos ((11))::

PCWrite

ComponentesComponentes dede lala rutaruta dede datosdatos ((11))::

Contador de programa

2 S d

PC

3232

2 Sumadores:o El primero para sumar 4 al PCo El segundo para sumar al PC el valor inmediato de salto. +

32

32

32

ALU: capaz de realizar:o Suma

RestaZero

3

ALUctr

32ALUctr función000 A and Bo Resta

o Ando Oro Comparación de igualdad mediante resta

ALU

32 32

000 A and B001 A or B010 A + B110 A – B

111 1 si (A<B),sino 0o Comparación de igualdad mediante resta

Extensor de signo:16 32

Exte

nsió

n de

sig

no

sino 0

Desplazador a la izquierda (para la multiplicar por 4):

<< 232 32

3

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 4: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos monociclo (2)•• Componentes de la ruta de datos (2): Banco de registrosComponentes de la ruta de datos (2): Banco de registrosComponentes de la ruta de datos (2): Banco de registrosComponentes de la ruta de datos (2): Banco de registros

Los 32 registros conforman un banco de registros. Dado que las instrucciones de tipo R requieren acceso simultáneo a 3 registros, el banco dispondrá de los siguientes elementos:

2 lid d d d 32 bi (b A b B)o 2 salidas de datos de 32 bits (busA y busB)o 1 entradas de datos de 32 bits (busW)o 3 entradas de 5 bits para la identificación de los registros (RA, RB y RW)o 1 entrada de control para habilitar la escritura sobre uno de los registros (RegWr)p g ( g )o 1 reloj que sólo actúa durante las operaciones de escritura, las de lectura son combinacionales

La lógica para estas operaciones de lectura y escritura es la siguiente:

Registro 0Registro 1

.... busAMU

X

RA

Registro 0C

CD

01

RegWr

RW ifica

dor

32

e s

RAbusA

Registro 31

M

RB

Registro 32

C

D3132

RW Registro 1

Registro 30

Dec

odi

5 a

RegWrB

anco

de

regi

stro

sRB

busBRW

busW

busB

MU

X

CD

DBusW

Registro 30

Registro 31

M i d it M i d l t

RegWr

4

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Mecanismo de escritura Mecanismo de lectura

Page 5: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos monociclo (3)•• Componentes de la ruta de datos (3): MemoriaComponentes de la ruta de datos (3): MemoriaComponentes de la ruta de datos (3): MemoriaComponentes de la ruta de datos (3): Memoria

Se supondrá dividida en dos para poder hacer dos accesos a memoria en el mismo ciclo:o Memoria de instruccioneso Memoria de datos

Será direccionable por bytes, pero capaz de aceptar/ofrecer 4 bytes por accesoo 1 entrada de direccióno 1 salida de datos de 32 bitso 1 entrada de datos de 32 bits (sólo en la de datos)

Se supondrá que se comporta temporalmente como el banco de registros (síncronamente) p q p p g ( )y que tiene un tiempo de acceso menor que el tiempo de ciclo

Existirá una entrada de control, MemWrite para seleccionar la operación de lectura/escritura sobre la memoria de datos

ADDR a os

MemWrite

ia cion

es

DW

Mem

oria

de d

ato

DRADDR

Mem

ori

de in

stru

cc

DR

5

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 6: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos monociclo (4)•• Interconexión de la ruta de datos (1)Interconexión de la ruta de datos (1)Interconexión de la ruta de datos (1)Interconexión de la ruta de datos (1)

La búsqueda de instrucciones implica leer la instrucción ubicada en la dirección de la memoria de instrucciones indicada por el contador de programa (PC). La ejecución secuencial de programas implica actualizar el contador de programa paraLa ejecución secuencial de programas implica actualizar el contador de programa para que apunte a la siguiente instrucción (sumando 4 por ser una memoria direccionable por bytes y una arquitectura con tamaño de palabra de 32 bits):

PC PC + 4

Luego la estructura necesaria para la búsqueda secuencial de instrucciones será:

4

+e ne

sPC ADDR

Mem

oria

de

inst

rucc

ion

DR instrucción

6

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 7: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos monociclo (5)•• Interconexión de la ruta de datos (2)Interconexión de la ruta de datos (2)Interconexión de la ruta de datos (2)Interconexión de la ruta de datos (2)

Las instrucciones aritmético lógicas (tipo-R) implican operar sobre el banco de registros BR y la ALU de la siguiente manera:

BR(rd) BR(rs) funct BR(rt)BR(rd) BR(rs) funct BR(rt) Por tanto será necesario:

o Leer dos registros cuyos identificadores se ubican en los campos rs y rt de la instruccióninstrucción

o Operar sobre ellos según el contenido del campo de código de operación aritmética (funct)

o Almacenar el resultado en otro registro cuyo identificador se localiza en el campo rd de la instrucción

RegWrite

Uo de ros

ALUCtr

busARA

RB

rs

rtucci

ón

3

ALU

Ban

core

gist

r

busBRW

busW

rdinst

ru

7

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 8: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos monociclo (6)•• InterconexiónInterconexión dede lala rutaruta dede datosdatos ((33))InterconexiónInterconexión dede lala rutaruta dede datosdatos ((33))

La instrucción de carga (lw) requiere la siguiente operación de transferencia:BR(rt) Memoria( BR(rs) + SignExt( inmed ) )

Lo que implica las siguientes operaciones elementales:Lo que implica las siguientes operaciones elementales:o Calcular la dirección efectiva de memoria:

- Leyendo el registro base cuyo identificador se ubica en el campo rs- Un desplazamiento de 32 bits de la extensión del operando inmediato (inmed)p p ( )- Sumando base y desplazamiento.

o Leer el dato de la memoria de datos cuya dirección es la anteriormente calculadao Almacenar el dato leído en el registro cuyo especificado en el campo rt

MemtoReg

ALUCtr

ALUSrc

RegDst

busARA

MemWrite

RegWrite

rs

0

0

1

10

1

MU

X

MU

X

MU

X

ALU

Ban

co d

ere

gist

ros

Mem

oria

de

atos

ADDR DR

busA

busB

RB

RW

busW

rt

rd0

Exte

nsió

n de

sig

no

M da

16 32DW

MemRead

inmed

8

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 9: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos monociclo (7)•• Interconexión de la ruta de datos (4)Interconexión de la ruta de datos (4)

La instrucción de almacenamiento (sw) requiere la siguiente operación:Memoria( BR(rs) + SignExt( inmed ) ) BR(rt)

Lo que implica las siguientes operaciones elementales:o Leer el dato almacenado en el registro cuyo identificador se especifica en rto Calcular la dirección efectiva de memoria:

- Leyendo el registro base cuyo identificador se ubica en el campo rsU d l i t d 32 bit ti d l t ió d l i d- Un desplazamiento de 32 bits a partir de la extensión del campo inmed

- Sumando base y desplazamiento.o Almacenar el dato leído de la memoria de datos en la dirección calculada

MemtoReg

ALUCtr

ALUSrc

RegDst

busARA

MemWrite

RegWrite

rs

0

0

1

10

1 MU

X

MU

X

ALU

Ban

co d

ere

gist

ros

Mem

oria

de

dato

s

ADDR DR

busA

busB

RB

RW

busW

rt

rd

MU

X

0

Exte

nsió

n de

sig

no

M da

16 32DW

MemRead

inmed

9

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 10: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos monociclo (8)•• InterconexiónInterconexión dede lala rutaruta dede datosdatos ((55))(( ))

La instrucción de salto condicional (beq) requiere la siguiente operación:Si ( BR(rs) = BR(rt) ) entonces ( PC PC + 4·SignExt( inmed ) )

Lo que implica las siguientes operaciones elementales:o Leer dos registros cuyos identificadores se ubican en los campos rs y rto Comparar la igualdad de sus contenidos y en función del resultado:

- Sumar al PC un desplazamiento de 32 bits obtenido a partir de la extensióndel campo de operando inmediato (inmed) odel campo de operando inmediato (inmed) o- No hacer nada

0

MU

X

4

1

M

+

<<2

+

ALUCtRegDst

PCSrcRegWrite

00

UX

X

ALU

anco

de

egis

tros

mor

ia d

etr

ucci

onesPC

rs

rtADDR

DR

ALUCtr

ALUSrc

busA

busB

RA

RB

RW

Zero

11

MU

MU

X

xten

sión

e

sign

o

Ba

re

Mem

inst rd

inmed 16 32

RW

busW

10

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Ex de

Page 11: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos monociclo (9)• Ruta de datos monocicloRuta de datos monociclo

La ejecución monociclo ha obligado a:o No usar más de una vez por instrucción cada recurso. Duplicarlo si es necesarioo Memoria de instrucciones y datos separadas

Añ di l i l d l d i d i fo Añadir multiplexores cuando un valor pueda provenir de varias fuentes

0

UX

4

1

MU

+

<<2

+

PCSrc

ee nesPC

Instrucción [25-21]

Instrucción [20-16]ADDR MemtoReg

ALUCtr

ALUSrc

RegDst

busARA

MemWrite

RegWrite

Zero

0

0

1

1

MU

X

0

1 MU

X

MU

X

ALU

Ban

co d

ere

gist

ros

Mem

oria

de

dato

sMem

oria

de

inst

rucc

ion Instrucción [20-16]

Instrucción [15-11]

DRADDR DR

bus

busB

RB

RW

busW

Exte

nsió

n de

sig

no

M d

Instrucción [15-0] 16 32DW

MemRead

11

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 12: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño del controlador de la ruta de datos monociclo (1)• La tarea del controlador es:La tarea del controlador es:

Seleccionar las operaciones a realizar por los módulos multifunción (ALU, etc.) Controlar el flujo de datos, activando la entrada de selección de los multiplexores y la señal de carga de los registrosse a de ca ga de os eg st os

•• Para ello hay que determinar los valores de los puntos de control para cada instrucción:Para ello hay que determinar los valores de los puntos de control para cada instrucción:

rt Memoria( rs + SignExt( inmed ) ) PC PC + 4Instrucción de carga Instrucción de carga ((lwlw))rt Memoria( rs + SignExt( inmed ) ), PC PC + 4

RegDest 0, RegWrite 1, ALUsrc 1, ALUctr 010, PCSrc 0, MemWrite 0, MemRead 1, MemtoReg 1

Instrucción de almacenamiento (Instrucción de almacenamiento (swsw))Memoria( rs + SignExt( inmed ) ) rs, PC PC + 4

RegDest X, RegWrite 0, ALUsrc 1, ALUctr 010, PCSrc 0, MemWrite 1, MemRead 0, MemtoReg X

Instrucción Instrucción andandrd rs and rt, PC PC + 4

RegDest 1, RegWrite 1, ALUsrc 0, ALUctr 000, PCSrc 0, MemWrite 0, MemRead 0, MemtoReg 0

Instrucción de salto condicional (Instrucción de salto condicional (beqbeq))si ( rs = rt ) entonces ( PC PC + 4 + 4·SignExp( inmed ) ) en otro caso PC PC + 4

RegDest X, RegWrite 0, ALUsrc 0, ALUctr 110, PCSrc Zero, MemWrite 0, MemRead 0, MemtoReg X

Instrucción de salto condicional (Instrucción de salto condicional (beqbeq))

12

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 13: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño del controlador de la ruta de datos monociclo (2)• Todas las operaciones aritméticas comparten el mismo código de operación y durante suTodas las operaciones aritméticas comparten el mismo código de operación y durante su ejecución todas las señales generales de la ruta de datos son iguales, por ello utilizaremos:

Un control principal para decodificar el campo de código de operación (op) y configurar globalmente la ruta de datosg

Un control local a la ALU que decodifique el campo de operación aritmética (funct) y seleccione la operación que debe realizar

• Adicionalmente en operaciones no aritméticas (lw sw y beq) el control principal puede ordenarAdicionalmente, en operaciones no aritméticas (lw, sw y beq) el control principal puede ordenar alguna operación a la ALU para calcular las DE o realizar comparaciones.

• Utilizaremos la señal intermedia ALUop cuyo valor será: 00 en operaciones con acceso a memoria00 en operaciones con acceso a memoria 01 en operaciones de salto 10 en operaciones aritméticas

• Del mismo modo para controlar qué dirección debe cargar el PC se utilizará una señalDel mismo modo para controlar qué dirección debe cargar el PC se utilizará una señal intermedia Branch (activada durante la instrucción beq) a la que se hará la y-lógica con la señal Zero que genera la ALU.

Cont

ALU

funct6

ALUctr

Control

principal

op6

trol deU

(local) 2ALUop

ALUctr3

BranchPCSrc

13

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Zero

Page 14: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño del controlador de la ruta de datos monociclo (3)

ALU•• Control de la ALUControl de la ALU ALUop

ALUctr2

ALUop0

ALUop1

f3

functALUctr1

ALUctr0

ALUctrf2

f1

f0

•• Control principalControl principal

op5op4op3Control principalControl principal op2op1

op0

tipo-R Iw sw beq RegDst

ALUSrc

MemtoReg

RegWrite

MemRead

MemWrite

Branch

ALUop1

ALU

14

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

ALUop0

Page 15: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño del procesador• Ruta de datos monociclo + controladorRuta de datos monociclo + controlador

0

UX

4

1

MU

<<2

++

l

BranchM R d

RegDst

Con

trol

prin

cipa

l

Instrucción [31-26]MemReadMemtoRegALUOpMemWriteALUSrcRegWrite

0 10

MU

X

UX X

ALU

Ban

co d

eeg

istr

os

ria d

e

emor

ia d

est

rucc

ione

s

PC

Instrucción [25-21]

Instrucción [20-16]ADDR

DR

Zero

ADDR DR

busA

busB

RA

RB

RW

01

M

MU

1 MU

X

trol

LUte

nsió

n si

gno

B re

Mem

orda

tosMe

ins Instrucción [15-11]

Instrucción [15-0] 16 32DW

busW

Con

tde

AExt

de s

Instrucción [5-0]

15

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 16: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos multiciclo (1)

• Inconvenientes de la ruta de datos monocicloInconvenientes de la ruta de datos monociclo

El reloj debe tener igual periodo que la instrucción más lenta

o Con un periodo fijo las instrucciones rápidas desaprovechan tiempo.

o En repertorios reales existen coexisten instrucciones cortas con otras muy largas: aritmética en punto flotante, modos de direccionamiento complejos, etc.

No se puede reutilizar hardwarep

o Si en una instrucción se necesitara hacer 4 sumas (resolver los 3 modos de direccionamiento de los operandos y sumarlos) se necesitarían 4 sumadores.

• Solución: dividir la ejecución de la instrucción en varios ciclos más pequeños

Cada instrucción usará el número de ciclos que necesite.

U i l h d d ili d i l j ió d Un mismo elemento hardware puede ser utilizado varias veces en la ejecución de una instrucción si se hace en ciclos diferentes.

Se requieren elementos adicionales para almacenar valores desde el ciclo en que se l l h t l i lcalculan hasta el ciclo en que se usan.

16

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 17: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos multiciclo (2)

ClkTiempo de acceso a la Memoria de Instrucciones

Tiempo de acceso al Banco de Registros

Retardo de la ALU

Tiempo de acceso a la Memoria de Datos

de n aje)clo

clo

Busqueda de instrucciones

Búsqueda de componentes

de DE

Cál

culo

dD

E Busqueda deoperando

Eje

cuci

ón(a

lmac

ena

ción

mon

ocic

ción

mon

ocic

Lógica combinacional acíclicaPC

BR

( x)

Mem

oria

ControladormonocicloTe

mpo

rizac

Tem

poriz

ac

B

Lóg Lóg Lóg Lóg LógB ut

R x)

o m

oria

Controlador Lóg.comb.

Lóg.comb.

Lóg.comb.

Lóg.comb.

Lóg.comb.PC IR

A o

B

ALU

o

MD

R

BR

( x

Nuevo Clk

o M

emControladormulticiclo

17

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Nuevo Clk

Page 18: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos multiciclo (3)

• Introducción de registros para almacenar datos intermedios entre ciclosg p

MemWriteIorD RegDstPCWrite IRWrite ALUSrcAAWrite OutWriteALUop

RegWrite

C

0

Control de ALU

Mem

oria

ADDR

DR

0

MU

X

1

Ban

co d

eeg

istr

os

busA

b B

RA

RB

RW ALU

ZeroPC

A

0

1

MU

X

ALU

out

IR 0

UX

Instrucción [25-21]

Instrucción [20-16]

MU

X

M

DW

MemRead

B re busBbusW

B

10

32

A

DR

0

MU

X

1

1

MU

Instrucción [15-11] 4

Exte

nsió

n de

sig

no

<<2

MD 1

Instruc. [15-0]ALUSrcB

MemtoReg

BWrite

MDRWrite

18

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 19: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos multiciclo (4)

• Ruta de datos multiciclo con busesRuta de datos multiciclo con buses

MemWrite RegDst AWriteMDRWrite RegWrite PCWriteBusA

busW

Decod.busA

0

X

Instrucción [25-21]

Instrucción [20-16]

Ban

co d

ere

gist

ros busA

busB

RA

RB

RW

AB Zero

MDR PC

1

MU

X

Instrucción [15-11]

Instruc. [15-0]

RW

ensi

ón

sign

o

<<2

ALU

ALU

out

Mem

oria

IRDR

ADDR

DW4

Exte

de s

Control de ALU

DW

Decod.busB

IRWriteMemRead BWrite OutWriteALUopBusB

19

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 20: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño de la ruta de datos multiciclo (5)

Instrucción de carga (Instrucción de carga (lwlw)) Instrucción de almacenaje (Instrucción de almacenaje (swsw))

Transferencias entre registros “lógicas”BR( rt ) Memoria( BR( rs ) + SignExt( inmed ) ), PC PC + 4

Transferencias entre registros “lógicas”Memoria( BR( rs ) + SignExt( inmed ) ) BR( rt ), PC PC + 4

Instrucción de carga (Instrucción de carga (lwlw)) Instrucción de almacenaje (Instrucción de almacenaje (swsw))

Transferencias entre registros “físicas”1. IR Memoria( PC ), PC PC + 42. A BR( rs )3. ALUout A + SignExt( inmed )

PC PC + 4Transferencias entre registros “físicas”

1. IR Memoria( PC ), PC PC + 42. A BR( rs ), B BR( rt )3 ALU A Si E ( i d )

g ( )4. MDR Memoria( ALUout )5. BR( rt ) MDR

3. ALUout A + SignExt( inmed )4. Memoria( ALUout ) B

Instrucción de salto condicional (Instrucción de salto condicional (beqbeq))Instrucción aritmética (tipoInstrucción aritmética (tipo--R)R)

Transferencias entre registros “lógicas”BR( rd ) BR( rs ) funct BR( rt ), PC PC + 4

Transferencias entre registros “lógicas”si ( BR( rs ) = BR( rt ) )

entonces PC PC + 4 + 4·SignExt( inmed )

Instrucción de salto condicional (Instrucción de salto condicional (beqbeq))Instrucción aritmética (tipoInstrucción aritmética (tipo R)R)

Transferencias entre registros “físicas”1. IR Memoria( PC ), PC PC + 42. A BR( rs ), B BR( rt )3. ALUout A funct B

sino PC PC + 4Transferencias entre registros “físicas”

1. IR Memoria( PC ), PC PC + 42. A BR( rs ), B BR( rt ),

Observaciones: en todas las instrucciones las acciones 1 y 2 son iguales (excepto en lw pero no habría problema en modificarla)

4. BR( rd ) ALUout( ) ( )

3. A - B4. si Zero entonces PC PC + 4·SignExt( inmed )

20

Observaciones: en todas las instrucciones las acciones 1. y 2. son iguales (excepto en lw, pero no habría problema en modificarla)

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 21: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño del controlador multiciclo

• Diagrama de estados del controlador multicicloDiagrama de estados del controlador multiciclo

IR Memoria( PC )PC PC + 4

0qu

eda

nstr

ucci

ón

A BR( rs )B BR( rt )

1

Bús

qde

inD

ecod

.

ALU t A f t B A - BALU t A + Si E t( i d )

op = ‘lw’

257 9

Zero = 0ALU t A + Si E t( i d )

Dcu

ción

ALUout A funct B A BALUout A + SignExt( inmed )

MDR M i ( ALU t ) M i ( ALU t ) B3

Zero = 1

ALUout A + SignExt( inmed )

6

Eje

cso

a

oria

MDR Memoria( ALUout ) Memoria( ALUout ) B

BR( ) MDR48 10

Acc

esm

emo

back

BR( rd ) ALUout BR( rt ) MDR PC PC + 4·SignExt( inmed )

Wri

te-b

21

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 22: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Optimización de la ruta de datos multiciclo

• Ahorro de registros temporales y tiempo de ejecuciónAhorro de registros temporales y tiempo de ejecución

PCWrite

ALUS A

PCsrc

TargetWritePCWriteCondMemWriteIorD

RegWrite Zero

RegDstIRWrite ALUSrcA0

1

PCWriteCond

oria

ADDR

DR

0

1

MU

X

co d

etr

os

busARA

RB

RegWrite

U

PC

A*

0

1

MU

X

R 0

Instrucción [25-21]

Instrucción [20-16]

Target

Mem

DR

DW

1

Ban

cre

gis

busBRW

busW

AL

10

32 M

UX

ALUout*

IR

0

UX

0

1

MU

X

Instrucción [15-11] 4

MemRead

Exte

nsió

n de

sig

no

<<2

MDR*1

MU

Instruc. [15-0]ALUSrcB

MemtoReg

Control de ALU

MemtoReg

ALUop

22

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 23: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Controlador multiciclo para la ruta de datos optimizada

• Diagrama de estados del controlador multicicloDiagrama de estados del controlador multiciclo Se ahorran los estados antiguos 5 y 10 y registros

IR Memoria( PC )

0ue

dauc

ción

PC PC + 4

A* BR( rs ), B* BR( rt )

1

Bús

qude

inst

ruod

.

Target PC + 4·SignExt( inmed )

26 8

Dec

oón

op = ‘lw’ o ‘sw’

ALUout* A* funct B* ALUout* A* + SignExt( inmed )

op = ‘lw’

2

3

6

A* - B*PC Target, si Zero=1

5

Ejec

ució

a a

MDR* Memoria( ALUout* ) Memoria( ALUout* ) B*3

7

5

Acc

eso

am

emor

iak

BR( rd ) ALUout* BR( rt ) MDR*47

Writ

e-ba

ck

23

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 24: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño del controlador multiciclo (1)•• El controlador se diseña como una máquina de estados finitos (FSM):El controlador se diseña como una máquina de estados finitos (FSM):

1. Se traducen las transferencias entre registros como conjuntos de activaciones de los puntos de control de la ruta de datos

2. Se codifican los estados3. Mediante tablas de verdad se describen las transiciones de estado en función del3. Mediante tablas de verdad se describen las transiciones de estado en función del

código de operación y del estado actual de la ruta de datos 4. Mediante tablas de verdad se describe el valor de las señales de control en función

del estado (máquina Moore) y adicionalmente en función del estado de la ruta de datos (máquina Mealy)(máquina Mealy).

5. La estructura del controlador estará formada por registro de estado y el conjunto de lógica combinacional de control que implementa las anteriores tablas

6

11

op

Zero Lógica combinacionalde control

Registroestado

IR

estado4

IRW

rite

PC

Writ

eB

Writ

eA

LUS

rcA

ALU

Src

BA

LUO

pem

Writ

eem

Rea

dIo

rDem

toR

egR

egD

est

Reg

Writ

e

AW

rite

Out

Writ

eD

RW

rite

24

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWAREP A A Me

Me

Me R RO

MD

Page 25: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Diseño del controlador multiciclo (2)•• Tabla de verdad del controladorTabla de verdad del controlador

25

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 26: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Segmentación (1)Segmentación (1)

•• La segmentación es una técnica que permite optimizar (minimizar) el tiempo de ejecución deLa segmentación es una técnica que permite optimizar (minimizar) el tiempo de ejecución deLa segmentación es una técnica que permite optimizar (minimizar) el tiempo de ejecución de La segmentación es una técnica que permite optimizar (minimizar) el tiempo de ejecución de los programas.los programas.

•• Consiste en aplicar el principio de Consiste en aplicar el principio de fabricación en cadena fabricación en cadena al proceso de ejecución de las al proceso de ejecución de las instrucciones solapando en el tiempo la ejecución de fases diferentes de diferentes instrucciones:instrucciones solapando en el tiempo la ejecución de fases diferentes de diferentes instrucciones:instrucciones, solapando en el tiempo la ejecución de fases diferentes de diferentes instrucciones:instrucciones, solapando en el tiempo la ejecución de fases diferentes de diferentes instrucciones:

Ejecución secuencial del programa

Tiempo2 4 6 8 10 12 14 16 18

Lw $1, 100($0)

Lw $2, 200($0)

Tiempo

IF ID EX MEM WBIF ID EX MEM WB

Lw $3, 300($0) IF ID

30ns30nsEjecución segmentada del programa

Lw $1, 100($0)

Tiempo2 4 6 8 10 12 14 16 18

IF ID EX MEM WB

Lw $2, 200($0)

Lw $3, 300($0)

IF ID EX MEM WBIF ID

1414

MEMEX WB

26

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

14ns14ns

Page 27: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

SegmentaciónSegmentación• Modificación de la ruta de datos para segmentar la ejecución de instruccionesModificación de la ruta de datos para segmentar la ejecución de instrucciones

Se replican los sumadores para actualizar el PC y calcular la dirección de memoria Se replica la memoria para datos e instrucciones

ID D difi ió d i ió EX Ej / Cál lIF Bú d d i ió WBID: Decodificación de instrucción / Lectura del banco de registros

EX: Ejecutar / Cálculo dirección efectiva.

0

1

MU

XIF: Búsqueda de instrucción MEM:

Acceso a memoriaWB: Escritura de registros

1

++4

<<2 +

de nes

PC

+

ADDR busA Ze s

RA

0

1

MU

X

ALU

Mem

oria

din

stru

ccio

n

DR

A

busB

Zero

Ban

co d

ere

gist

ros

RB

RW

busW0

1

MU

X

Mem

oria

de

dato

s

ADDR DR

D

Exte

nsió

n de

sig

no16 32

W

27

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 28: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Ruta de datos segmentada (1)• Se necesitan registros entre etapas para pasar la información de datos y control a la siguienteSe necesitan registros entre etapas para pasar la información de datos y control a la siguiente etapa y la actual quede libre para recibir una nueva instrucción

ID: Decodificación de instrucción / EX: Ejecutar / Cálculo IF: Búsqueda de instrucción MEM: WB: Lectura del banco de registros dirección efectiva.

0

1

MU

XAcceso a memoria Escritura de

registros

IF/ID ID/EX EX/MEM MEM/WB

++4

<<2

e esPC

+

ADDR busA

RA

0

1

MU

X

ALU

Mem

oria

de

inst

rucc

ioneP

DR

A

busB

Zero

Ban

co d

ere

gist

ros

RB

RW

busW0

1

MU

X

Mem

oria

de

dato

s

ADDR DR

D

Exte

nsió

nde

sig

no16 32

0M dDW

28

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 29: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Ruta de datos segmentada (2)• Modificación de algunas señalesModificación de algunas señales

ID: Decodificación de instrucción / Lectura del banco de registros

EX: Ejecutar / Cálculo dirección efectiva.

IF: Búsqueda de instrucción MEM: Acceso a memoria

WB: Escritura de registros

0

1

MU

X

IF/ID ID/EX EX/MEM MEM/WB

4

<<2

++

LUria d

ecc

ione

s

PC ADDR

DR

busA

busB

Zeroco

de

tros

RA

RB e

0

1

MU

X

AL

Mem

orin

stru

c

ón no16 32

DR busBB

anc

regi

sRW

busW0

1

MU

X

Mem

oria

de

dato

s

ADDR DR

DW

Exte

nsió

de s

ign16 32

29

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

Page 30: Arquitectura MIPS: Formato de la instrucción máquina 5 - Repaso...o 2 lid dd d32bi (2 salidas de datos de 32 bits (bAbusA y bBbusB) o 1 entradas de datos de 32 bits (busW) o 3 entradas

Ruta de datos segmentada• Nombramiento de los puntos de controlNombramiento de los puntos de control

PCSrcID: Decodificación de instrucción / Lectura del banco de registros

EX: Ejecutar / Cálculo dirección efectiva.

IF: Búsqueda de instrucción MEM: Acceso a memoria

WB: Escritura de registros

0

1

MU

XIF/ID ID/EX EX/MEM MEM/WB

4

+

<<2+

RegWrite

Branch

0

X

ALU

mor

ia d

eru

ccio

nes

PC ADDR

DR

busA

busBZero

nco

degi

stro

s

RA

RB

RW 1a de

sADDR DR

g

ALUSrc

MemWrite

MemtoReg

1

MU

X

Mem

inst

r

nsió

n ig

no

16 32

Ban

regRW

busW0

1

MU

X

Mem

ori a

dato

sADDR DR

DW

ntro

l A

LU

6

Exte

nde

si MemReadC

onde

A

ALUOp

0

1

MU

X

ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE

30

RegDst