View
11
Download
1
Category
Preview:
Citation preview
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)
Recommended