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

Post on 03-Jan-2016

31 views 2 download

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

Diseño de la ruta de datos monociclo 1

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)]

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

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

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

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

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

Diseño de la ruta de datos monociclo 8

Elementos Básicos: Buscar instrucción

AddInstrucción

Leer dirección

Memoria deInstrucciones

PC

Diseño de la ruta de datos monociclo 9

RD: Buscar instrucción

Instrucción

Leer dirección

Memoria deInstrucciones

PC

4

Add

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

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

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

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

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

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

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

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

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]

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

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

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

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

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]

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

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 ...)

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)