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 Modo de direccionamiento registro base + desplazamiento [100($1)]
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 desplazamiento dirección shamt
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
Tcpu = N · CPI · tciclo Introducción Depende del compilador y de la arquitectura del repertorio de instrucciones Dependen de la organización e implementación del procesador
Conceptos Básicos Ejecución de instrucciones: Pasos Común Similar 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
Visión General de la RD PC Memoria de Datos Memoria de Instrucciones Instrucción Dirección Memoria de Instrucciones PC Nº reg Dato Banco de Registros ALU Memoria de Datos
Elementos Básicos: Buscar instrucción Leer dirección PC Add Instrucción Memoria de Instrucciones
RD: Buscar instrucción Leer dirección Memoria de Instrucciones PC 4 Add
Elementos Básicos: Ejecutar instrucción RegWrite Leer registro 1 Leer registro 2 Escribir registro dato Dato leído 1 Banco de Registros leído 2 { Números de Registros } Datos result ALU Zero 3 Operación Dirección Escribir dato Memoria de Datos Dato leído MemWrite MemRead Extensión de signo 16 32
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 shamt funct
RD: Instrucciones aritmético-lógicas result ALU Zero RegWrite 3 Operación Leer registro 1 Leer registro 2 Escribir registro dato Dato leído 1 Banco de Registros leído 2 Instrucción
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 I op rs rt desplazamiento
RD: Instrucciones de acceso a memoria Extensión de signo result ALU Zero 16 32 RegWrite 3 Operación Dirección Escribir dato Memoria de Datos Leer registro 1 Leer registro 2 registro Dato leído 1 Banco de Registros leído 2 leído MemWrite MemRead Instrucción
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
RD: Instrucción de salto condicional Desplaz. izq. 2 Extensión de signo 32 RegWrite Add result ALU Leer registro 1 Leer registro 2 Escribir registro dato Dato leído 1 Banco de Registros leído 2 16 Instrucción PC+4 (de la ruta de datos) Zero 3 Operación A la lógica de saltos Dirección destino del salto
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
RD: Instrucción de salto incondicional Add 4 PC Desplaz. izq. 2 32 28 26 Instrucción[25-0] PC+4 [31-28]
Ruta de Datos Monociclo Cada recurso se utiliza una sola vez en cada ciclo Reutilización de bloques Multiplexor M u x Control
RD: Tipo R + lw/sw Instrucción RegWrite Banco de Registros Operación Extensión de signo result ALU Zero 16 32 M u x RegWrite ALUSrc 3 Operación Dirección Escribir dato Memoria de Datos Leer registro 1 Leer registro 2 registro Dato leído 1 Banco de Registros leído 2 leído MemWrite MemtoReg MemRead Instrucción
Añadir búsqueda de instrucción Leer dirección Memoria de Instrucciones PC 4 Add Extensión de signo result ALU Zero 16 32 M u x RegWrite ALUSrc 3 Operación Dirección Escribir dato Memoria de Datos Leer registro 1 Leer registro 2 registro Dato leído 1 Banco de Registros leído 2 leído MemWrite MemtoReg MemRead
Añadir salto condicional Instrucción Leer dirección Memoria de Instrucciones PC 4 Add Desplaz. izq. 2 Extensión de signo result ALU Zero 16 32 M u x RegWrite ALUSrc 3 Operación Dirección Escribir dato Memoria de Datos Leer registro 1 Leer registro 2 registro Dato leído 1 Banco de Registros leído 2 leído MemtoReg MemWrite MemRead PCSrc
Añadir salto incondicional Instrucción Leer dirección Memoria de Instrucciones PC 4 Add result ALU Desplaz. izq. 2 Leer registro 1 Leer registro 2 Escribir registro dato Dato leído 1 Banco de Registros Extensión de signo Zero 16 32 M u x RegWrite ALUSrc 3 Operación Dirección Memoria de Datos leído 2 leído MemWrite MemtoReg MemRead PCSrc1 PCSrc2 28 26 Instrucción[25-0] PC+4 [31-28]
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). M e m t o R g a d W r i A L U O p S c D s P C I n u y [ 3 1 – ] 2 6 5 4 P C S r c 3 2 I n s t r u c i o [ 1 5 – ] R e g W d a S x A L U l Z D m y M A L U A d d r e s u l t S h i f t l e f t 2 A L U M u M I n s t r u c t i o n [ 1 5 – 1 1 ] x u x 1 1 A L U c o n t r o l
Resumen (I) La organización del procesador condiciona el Tcpu 5 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 ...)
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)