Diseño de la ruta de datos monociclo para la arquitectura MIPS

26
eño de la ruta de datos monociclo 1 Diseño de la ruta de datos monociclo para la arquitectura MIPS

description

Diseño de la ruta de datos monociclo para la arquitectura MIPS. Conocimientos previos: Arquitectura MIPS. Registros 32 registros de propósito general, de 32 bits cada uno. ($0, $1, ..., $31) Memoria Direccionable por bytes en modo “big endian” Direcciones de 32 bits - PowerPoint PPT Presentation

Transcript of Diseño de la ruta de datos monociclo para la arquitectura MIPS

Page 1: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 1

Diseño de la ruta de datos monociclo para la arquitectura

MIPS

Page 2: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 2

Conocimientos previos: Arquitectura MIPS

Registros • 32 registros de propósito general, de 32 bits cada

uno. ($0, $1, ..., $31)

Memoria • Direccionable por bytes en modo “big endian”• Direcciones de 32 bits

Modo de direccionamiento• registro base + desplazamiento [100($1)]

Page 3: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 3

Conocimientos previos: Arquitectura MIPS

Repertorio de instrucciones • longitud fija de 32 bits. • 3 tipos de instrucciones

aritmético-lógicas: add, sub, and, or, slt

add $1, $2, $3

de referencia a memoria: lw, sw

lw $1, 100($2)

Saltos (condicionales o no): beq, j

beq $1, $2, 48

• 3 formatos formato R formato I

formato J

op rs rt rd funct

op rs rt desplazamiento

op dirección

shamt

Page 4: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 4

Objetivos

Construir una ruta de datos a partir de la especificación dada por la definición de la arquitectura del repertorio de instrucciones

Integración de conocimientos y puesta en práctica de conocimientos previos

Page 5: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 5

Introducción

Tcpu = N · CPI · tciclo

Depende del compilador yde la arquitectura del

repertorio de instrucciones

Dependen de la organización e implementación del

procesador

Page 6: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 6

Conceptos Básicos

Ejecución de instrucciones: Pasos

Común• Leer instrucción de la memoria con el PC• Leer registros especificados en la instrucción

Similar• Utilizar la ALU

Diferente• Terminación de ejecución de instrucción

Page 7: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 7

Visión General de la RD

Instrucción

Dirección

Memoria deInstrucciones

PC

Nº reg

Nº reg

Nº reg

Dato

Bancode

RegistrosALU Dirección

Dato

Memoria de Datos

Page 8: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 8

Elementos Básicos: Buscar instrucción

AddInstrucción

Leer dirección

Memoria deInstrucciones

PC

Page 9: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 9

RD: Buscar instrucción

Instrucción

Leer dirección

Memoria deInstrucciones

PC

4

Add

Page 10: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 10

Elementos Básicos: Ejecutar instrucción

Extensiónde

signo

16 32 Dirección

Escribirdato

Memoria de Datos

Datoleído

MemWrite

MemRead

resultALU

ALU Zero

3Operación

ALU

RegWrite

Leer registro 1

Leer registro 2

Escribirregistro

Escribirdato

Datoleído 1

Banco de Registros

Datoleído 2

{Números de Registros

{}Datos

Datos

Page 11: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 11

Instrucciones aritmético-lógicas

add, sub, and, or y slt

add rd, rs, rt Ejemplo: add $1, $2, $3 $1=$2+$3

Formato tipo R

op rs rt rd functshamt

Page 12: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 12

RD: Instrucciones aritmético-lógicas

resultALU

ALU Zero

RegWrite

3Operación

ALULeer registro 1

Leer registro 2

Escribirregistro

Escribirdato

Datoleído 1

Banco de Registros

Datoleído 2

Instrucción

Page 13: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 13

Instrucciones de acceso a memoria

lw y sw

lw rt, despl(rd) ó sw rt, despl(rd)

Ejemplos: lw $1, 24($2) $1= Mem[$2+24]

sw $1, 24($2) Mem[$2+24]= $1

Formato tipo Iop rs rt desplazamiento

Page 14: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 14

RD: Instrucciones de acceso a memoria

Extensiónde

signo

resultALU

ALU Zero

16 32

RegWrite

3Operación

ALU

Dirección

Escribirdato

Memoria de Datos

Leer registro 1

Leer registro 2Escribirregistro

Escribirdato

Datoleído 1

Banco de Registros

Datoleído 2

Datoleído

MemWrite

MemRead

Instrucción

Page 15: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 15

Instrucción de salto condicional

beq rs, rt, despl

Ejemplo:

beq $1, $2, despl si ($1=$2) PC=PC+despl

Formato tipo I

op rs rt desplazamiento

Page 16: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 16

RD: Instrucción de salto condicional

Desplaz.izq. 2

Extensiónde

signo

32

RegWrite

Add

resultALU

Leer registro 1

Leer registro 2

EscribirregistroEscribirdato

Datoleído 1

Banco de Registros

Datoleído 2

16

Instrucción

PC+4 (de la ruta de datos)

ALU

Zero

3 OperaciónALU

A la lógica de saltos

Dirección destino del salto

Page 17: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 17

Instrucción de salto incondicional

j dirección

Ejemplo:

j 1000 PC = PC[31-28] + 1000[27-2]+00[1-0]

Formato tipo J

op dirección

Page 18: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 18

RD: Instrucción de salto incondicional

Add

4

PC

Desplaz.izq. 2

322826

Instrucción[25-0]

PC+4 [31-28]

Page 19: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 19

Ruta de Datos Monociclo

Cada recurso se utiliza una sola vez en cada ciclo

Reutilización de bloques Multiplexor

M

u

x

Control

Page 20: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 20

RD: Tipo R + lw/sw

Extensiónde

signo

resultALU

ALU Zero

16 32

Mux

RegWrite

ALUSrc

3Operación

ALU

Dirección

Escribirdato

Memoria de Datos

Leer registro 1

Leer registro 2Escribirregistro

Escribirdato

Datoleído 1

Banco de Registros

Datoleído 2

Datoleído

Mux

MemWrite

MemtoReg

MemRead

Instrucción

Page 21: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 21

Añadir búsqueda de instrucción

Instrucción

Leer dirección

Memoria deInstrucciones

PC

4

Add

Extensiónde

signo

resultALU

ALUZero

16 32

Mux

RegWriteALUSrc

3Operación

ALU

Dirección

Escribirdato

Memoria de Datos

Leer registro 1

Leer registro 2

Escribirregistro

Escribirdato

Datoleído 1

Banco de Registros

Datoleído 2

Datoleído M

ux

MemWrite

MemtoReg

MemRead

Page 22: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 22

Añadir salto condicional

Instrucción

Leer dirección

Memoria deInstrucciones

PC

4 Add

Desplaz.izq. 2

Extensiónde

signo

resultALU

ALUZero

16 32

Mux

RegWriteALUSrc

3Operación

ALU

Dirección

Escribirdato

Memoria de Datos

Leer registro 1

Leer registro 2EscribirregistroEscribirdato

Datoleído 1

Banco de Registros

Datoleído 2

Datoleído

Mux

MemtoReg

MemWrite

MemRead

PCSrc

Mux

Add

Page 23: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 23

Añadir salto incondicional

Instrucción

Leer dirección

Memoria deInstrucciones

PC

4

Add

Add resultALU

Desplaz.izq. 2

Leer registro 1

Leer registro 2

Escribirregistro

Escribirdato

Datoleído 1

Banco de Registros

Extensiónde

signo

resultALU

ALUZero

16 32

Mux

RegWrite

ALUSrc

3Operación

ALU

Dirección

Escribirdato

Memoria de Datos

Datoleído 2

Datoleído

Mux

MemWrite

MemtoReg

MemRead

PCSrc1

Mux

PCSrc2

Mux

Desplaz.izq. 2

28

26

32Instrucción[25-0]

PC+4 [31-28]

Page 24: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 24

Esquema alternativo (sin instrucción j)

Camino de datos con todos los multiplexores y líneas de control necesarias (según figura del libro de texto).

MemtoReg

MemRead

MemWrite

ALUOp

ALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20– 16]

Instruction [25– 21]

Add

Instruction [5– 0]

RegWrite

4

16 32Instruction [15– 0]

0Registers

WriteregisterWritedata

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

ALUresult

Zero

Datamemory

Address Readdata

Mux

1

1

Mux

0

1

Mux

0

1

Mux

0

Instruction [15– 11]

ALUcontrol

Shiftleft 2

PCSrc

ALU

Add ALUresult

Page 25: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 25

Resumen (I)

La organización del procesador condiciona el Tcpu5 pasos en el diseño del procesador

• 1. Analizar repertorio de instrucciones Funcionalidad del camino de datos

• 2. Seleccionar componentes del camino de datos

• 3. Ensamblar camino de datos para proporcionar la funcionalidad requerida.

• 4. Analizar la implementación de cada instrucción para determinar la ubicación de los puntos de control que permitan ejecutar las transferencias entre registros.

• 5. Diseño de la unidad de control (a continuación ...)

Page 26: Diseño de la ruta de datos monociclo para la arquitectura  MIPS

Diseño de la ruta de datos monociclo 26

Resumen (II)

MIPS hace fácil la implementación de estos pasos

• Instrucciones del mismo tamaño

• Registro fuente (rs) siempre en la misma posición del formato de instrucción

• Valores inmediatos siempre del mismo tamaño (16 bits) y en la misma posición (bits 0-15)

• Operaciones siempre sobre registros/inmediatos

Camino de datos monociclo CPI=1 TCLK grande

A continuación: Paso 5 (diseño de la unidad de control)