stringtranslate.com

DLX

El DLX (pronunciado "Deluxe") es una arquitectura de procesador RISC diseñada por John L. Hennessy y David A. Patterson , los principales diseñadores de los diseños Stanford MIPS y Berkeley RISC (respectivamente), los dos ejemplos de referencia del diseño RISC (llamado así por el diseño de Berkeley).

El DLX es, en esencia, una CPU Stanford MIPS simplificada y mejorada (y modernizada). El DLX tiene una arquitectura de carga y almacenamiento de 32 bits simple, algo diferente de la CPU de arquitectura MIPS moderna . Como el DLX fue pensado principalmente para fines didácticos, el diseño del DLX se usa ampliamente en cursos de arquitectura informática de nivel universitario .

Existen dos implementaciones de hardware " softcore " conocidas: ASPIDA y VAMP. El proyecto ASPIDA dio como resultado un núcleo con muchas características interesantes: es de código abierto, es compatible con Wishbone , tiene un diseño asincrónico, admite múltiples ISA y está probado para ASIC . VAMP es una variante de DLX que se verificó matemáticamente como parte del proyecto Verisoft. Se especificó con PVS , se implementó en Verilog y se ejecuta en un FPGA Xilinx . Se construyó sobre él una pila completa desde el compilador hasta el núcleo y TCP/IP .

Historia

En la arquitectura MIPS de Stanford, uno de los métodos utilizados para ganar rendimiento era forzar que todas las instrucciones se completaran en un ciclo de reloj. Esto obligaba a los compiladores a insertar " operaciones no operativas " en los casos en los que la instrucción definitivamente tardaría más de un ciclo de reloj. Por lo tanto, las actividades de entrada y salida (como los accesos a la memoria) forzaban específicamente este comportamiento, lo que conducía a una hinchazón artificial del programa. En general, los programas MIPS se veían obligados a tener muchas instrucciones NOP inútiles, un comportamiento que era una consecuencia no deseada. La arquitectura DLX no fuerza la ejecución en un solo ciclo de reloj y, por lo tanto, es inmune a este problema.

En el diseño de DLX se utilizó un enfoque más moderno para manejar instrucciones largas: reenvío de datos y reordenamiento de instrucciones. En este caso, las instrucciones más largas se "detienen" en sus unidades funcionales y luego se reinsertan en el flujo de instrucciones cuando pueden completarse. Externamente, este comportamiento de diseño hace que parezca que la ejecución se ha producido de forma lineal.

Decodificación de instrucciones

Las instrucciones DLX se pueden dividir en tres tipos: tipo R , tipo I y tipo J. Las instrucciones de tipo R son instrucciones de registro puro , con tres referencias de registro contenidas en la palabra de 32 bits. Las instrucciones de tipo I especifican dos registros y utilizan 16 bits para almacenar un valor inmediato . Finalmente, las instrucciones de tipo J son saltos , que contienen una dirección de 26 bits.

Los códigos de operación tienen una longitud de 6 bits, lo que da un total de 64 instrucciones básicas posibles. Para seleccionar uno de los 32 registros se necesitan 5 bits.

Tubería

El DLX, al igual que el diseño MIPS, basa su rendimiento en el uso de un pipeline de instrucciones . En el diseño DLX, se trata de un pipeline bastante simple, de concepto RISC "clásico" . El pipeline contiene cinco etapas:

IF – Instrucción Unidad/ciclo de obtención
IR<-Mem(PC)
PNJ<-PC+4
Operación: Enviar la PC y buscar la instrucción de la memoria en el Registro de Instrucciones (IR) ; incrementar la PC en 4 para direccionar la siguiente instrucción secuencial. El IR se utiliza para almacenar la siguiente instrucción que será necesaria en los ciclos de reloj subsiguientes; de la misma manera, el registro NPC se utiliza para almacenar la siguiente PC secuencial.
ID – Unidad de decodificación de instrucciones
Operación: decodifica la instrucción y accede al archivo de registros para leer los registros. Esta unidad recibe la instrucción de IF y extrae el código de operación y el operando de esa instrucción. También recupera los valores de los registros si la operación lo solicita.
EX – Unidad de ejecución/ciclo de dirección efectiva
Operación: La ALU opera sobre los operandos preparados en el ciclo anterior, realizando una de las cuatro funciones dependiendo del tipo de instrucción DLX.
Referencia de memoria: Instrucción ALU de registro-registro, Instrucción ALU de registro-inmediato
Rama
MEM – Unidad de acceso a la memoria
Las instrucciones DLX activas en esta unidad son cargas, almacenes y ramas.
Referencia de memoria: accede a la memoria si es necesario. Si se carga la instrucción, los datos vuelven de la memoria y se colocan en el registro LMD (carga de datos de memoria)
Rama
WB – Unidad de escritura inversa
Generalmente se denomina "unidad de almacenamiento" en la terminología moderna. Escribe el resultado en el archivo de registro, ya sea que provenga del sistema de memoria o de la ALU.

Véase también

Referencias

Enlaces externos