Diseño de un Conjunto de Instrucciones para una Arquitectura GPR
Clasificado en Informática
Escrito el en español con un tamaño de 4,05 KB
Arquitectura GPR
Se ha elegido una arquitectura GPR (General Purpose Register) para el almacenamiento interno de la CPU debido a las siguientes ventajas:
- Rápido acceso a memoria: Los registros son la forma más rápida de acceder a los datos, lo que acelera la ejecución de instrucciones.
- Facilidad de uso para los compiladores: Los registros simplifican la generación de código por parte de los compiladores, lo que facilita la traducción de lenguajes de alto nivel.
- Versatilidad: Los registros de propósito general se pueden utilizar para una variedad de tareas, como la evaluación de expresiones, el paso de parámetros y el almacenamiento de variables locales.
Número de Operandos en Memoria
Se ha decidido permitir un máximo de tres operandos direccionables en memoria para las instrucciones de la ALU. Esta elección ofrece un equilibrio entre la eficiencia y la complejidad:
- Eficiencia: Permite realizar operaciones complejas en un solo ciclo de instrucción, evitando la necesidad de cargar y almacenar datos intermedios.
- Complejidad: Un número mayor de operandos en memoria aumentaría la complejidad del hardware y podría afectar negativamente al rendimiento.
Se utilizarán las siguientes notaciones para indicar el tipo de operandos en las instrucciones:
- R-R: Ambos operandos se encuentran en registros.
- R-M: Un operando está en un registro y el otro en memoria.
- M-M: Ambos operandos se encuentran en memoria.
Modos de Direccionamiento
Se implementarán los modos de direccionamiento inmediato y de desplazamiento, ya que son los más utilizados y ofrecen un buen equilibrio entre flexibilidad y eficiencia. Otros modos de direccionamiento, como el indirecto, diferido o autoincremento, se pueden emular mediante secuencias de instrucciones más simples.
Tipos de Instrucciones
El conjunto de instrucciones incluirá las siguientes categorías:
- Aritmético-lógicas: Instrucciones para realizar operaciones aritméticas (suma, resta, multiplicación, división) y lógicas (AND, OR, XOR, NOT).
- Carga y almacenamiento: Instrucciones para mover datos entre la memoria y los registros.
- Control: Instrucciones para controlar el flujo de ejecución del programa, como saltos condicionales e incondicionales.
Además de estas instrucciones esenciales, se recomienda incluir instrucciones de coma flotante para mejorar el rendimiento en aplicaciones científicas y de ingeniería. También se pueden considerar instrucciones para el manejo de cadenas de caracteres y otros tipos de datos específicos de la aplicación.
Formato de las Instrucciones
Se utilizarán tres formatos de instrucción principales:
Instrucción de Tipo R
Utilizadas para operaciones con dos operandos en registros y un operando de destino en un registro.
6 5 5 5 16
Codop rs1 Rs2 rd funcio
- Codop: Código de operación (6 bits).
- rs1: Registro fuente 1 (5 bits).
- rs2: Registro fuente 2 (5 bits).
- rd: Registro destino (5 bits).
- funcio: Función (6 bits, especifica la operación a realizar).
Instrucción de Tipo I
6 5 5 16 Codop rs1 rd inmediato Instrucción de tipo R 6 5 5 5 16 Codop rs1 Rs2 rd funcio Instrucciones de tipo I 6 26 Codop Desplazamiento Número de operandos que se pueden direccionar en memoria en instrucciones ALUOptaríamos por la de 3 operandos ya que evitaríamos la destrucción de un operando fuente(nos ahorraría una carga auxiliar del dato de una de las fuentes) sin que nos afecte mucho el hecho de que consumamos un registro extra para la operación