Solución al trabajo evaluable 1 Diseño del repertorio de instrucciones Arquitectura de Computadores I. T. Informática de Gestión Curso 2006-2007 Tema 2: Hoja: 2 / 7 Diseño del repertorio de instrucciones Trabajo evaluable 1 Opción 1 Se desea diseñar un repertorio de instrucciones RISC en el que todas las instrucciones ocupen 32 bits y sean de modo registro-registro salvo las de carga almacenamiento. La máquina cuenta con 16 registros de 32 bits. z El repertorio de instrucciones será – Instrucciones de memoria: z LD R, Memoria (R Å Contenido de la Memoria) z ST Memoria, R (Contenido de la Memoria Å R) – Instrucciones de proceso: z ADDI / SUBI R1, R2, Inmediato (R1 = R2 +/- Dato inmediato) z ADD / SUB R1, R2, R3 (R1 = R2 +/- R3) – Instrucciones de control: z JE Dirección de salto (CP Å CP + Desplazamiento si se cumple la condición de igualdad) z JMP Dirección de salto (CP Å Dirección de salto) z Modos de direccionamiento permitidos: – Inmediato, para las instrucciones de proceso – Relativo a registro, para las instrucciones de acceso a memoria y la de salto condicional – Directo a memoria, para la instrucción de salto incondicional Se pide: z Diseño del repertorio de instrucciones anterior z Indicación de tiempos que se ha tardado en realizar el trabajo. Se deben indicar los tiempos (tanto de estudio en casa, en la biblioteca, consultas en Departamento de automática Área de Arquitectura y Tecnología de Computadores Arquitectura de Computadores I. T. Informática de Gestión Tema 2: Hoja: 3 / 7 Diseño del repertorio de instrucciones internet, consultas en tutorías) empleados en: encontrar la solución, en redactar el trabajo y en crear la presentación Solución Se cuenta con un total de 8 instrucciones, para lo cual se necesitará un código de operación de 3 bits. Instrucción LD ST ADD R1, R2, R3 SUB R1, R2, R3 ADDI R1, R2, Inm SUBI R1, R2, Inm JE Dirección JMP Dirección Código de operación O3 O2 O1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 En el enunciado nos indican que contamos con 16 registros con lo que se necesitarán 4 bits para poder identificar cada registro. Cada instrucción cuenta con un único modo de direccionamiento con lo que mediante el código de operación se puede conocer. Por lo tanto, el formato de instrucciones quedaría de la siguiente manera: Instrucciones de carga-almacenamiento: LD y ST Se necesitan dos registros, uno que será el origen o el destino de las instrucciones, y otro para que junto con el desplazamiento indique la posición de memoria (ya que se trata de un direccionamiento relativo) CO (3) R (4) R (4) Desplazamiento (21) Instrucciones aritmético-lógicas En este caso contamos con dos tipos de instrucciones: las que trabajan con dos registros y un dato inmediato y las que trabajan con tres registros. Departamento de automática Área de Arquitectura y Tecnología de Computadores Arquitectura de Computadores I. T. Informática de Gestión Tema 2: Hoja: 4 / 7 Diseño del repertorio de instrucciones ADDI y SUBI CO (3) R1 (4) R2 (4) Inmediato (21) ADD y SUB CO (3) R1 (4) R2 (4) R3 (4) No usado (17) Instrucciones de salto condicional /incondicional: JE Y JMP Como la instrucción de salto condicional es única y el direccionamiento es relativo, se puede hacer que el CP sea implícito y entonces su formato coincida con el caso del salto incondicional CO Desplazamiento / Dirección directa de memoria (29) (3) Opción 2 Se desea diseñar un repertorio de instrucciones RISC en el que todas las instrucciones ocupen 32 bits y sean de modo registro-registro salvo las de carga almacenamiento. La máquina cuenta con 16 registros de 32 bits. z El repertorio de instrucciones será – Instrucciones de memoria: z LD R, Memoria (R Å Contenido de la Memoria) z ST Memoria, R (Contenido de la Memoria Å R) – Instrucciones de inicialización de registro z LDI R, Inmediato (R Å Dato inmediato) – Instrucciones de proceso: z ADD / SUB R1, R2, R3 (R1 = R2 +/- R3) – Instrucciones de control: Departamento de automática Área de Arquitectura y Tecnología de Computadores Arquitectura de Computadores I. T. Informática de Gestión Tema 2: Hoja: 5 / 7 Diseño del repertorio de instrucciones z JZ Dirección de salto (CP Å CP + Desplazamiento si se cumple la condición de igualdad) z JC Dirección de salto (CP Å CP + Desplazamiento si se cumple la condición de acarreo) z JMP Dirección de salto (CP Å Dirección de salto) z Modos de direccionamiento permitidos: – Inmediato, para las instrucciones de inicialización de registro – Relativo a registro, para las instrucciones de acceso a memoria y la de salto condicional – Directo a memoria, para la instrucción de salto incondicional Se pide: z Diseño del repertorio de instrucciones anterior z Indicación de tiempos que se ha tardado en realizar el trabajo. Se deben indicar los tiempos (tanto de estudio en casa, en la biblioteca, consultas en internet, consultas en tutorías) empleados en: encontrar la solución, en redactar el trabajo y en crear la presentación Solución Se cuenta con un total de 8 instrucciones, para lo cual se necesitará un código de operación de 3 bits. Instrucción LD ST LDI ADD R1, R2, R3 SUB R1, R2, R3 JZ Dirección JC Dirección JMP Dirección Código de operación O3 O2 O1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 En el enunciado nos indican que contamos con 16 registros con lo que se necesitarán 4 bits para poder identificar cada registro. Departamento de automática Área de Arquitectura y Tecnología de Computadores Arquitectura de Computadores I. T. Informática de Gestión Tema 2: Hoja: 6 / 7 Diseño del repertorio de instrucciones Cada instrucción cuenta con un único modo de direccionamiento con lo que mediante el código de operación se puede conocer. Por lo tanto, el formato de instrucciones quedaría de la siguiente manera: Instrucciones de carga-almacenamiento: LD y ST Se necesitan dos registros, uno que será el origen o el destino de las instrucciones, y otro para que junto con el desplazamiento indique la posición de memoria (ya que se trata de un direccionamiento relativo) CO (3) R (4) R (4) Desplazamiento (21) Instrucción de inicialización de registro: LDI Necesitamos un registro, y un dato inmediato que ocupará el resto del formato. CO (3) R1 (4) Inmediato (25) Instrucciones aritmético-lógicas: ADD y SUB En este caso contamos con dos tipos de instrucciones: las que trabajan con dos registros y un dato inmediato y las que trabajan con tres registros. ADD y SUB CO (3) R1 (4) R2 (4) R3 (4) No usado (17) Instrucciones de salto condicional /incondicional: JZ, JC Y JMP Las instrucciones de salto condicional son dos instrucciones diferentes, por lo que no se necesita codificar la condición. Además si se hace que el CP sea un dato implícito, únicamente habría que poner el código de operación y el desplazamiento. En el caso del salto incondicional, los 29 bits que Departamento de automática Área de Arquitectura y Tecnología de Computadores Arquitectura de Computadores I. T. Informática de Gestión Tema 2: Hoja: 7 / 7 Diseño del repertorio de instrucciones sobran quitando el código de operación, serían para la dirección. De esta manera queda el mismo formato para las tres instrucciones. CO (3) Desplazamiento / Dirección directa de memoria (29) Departamento de automática Área de Arquitectura y Tecnología de Computadores Arquitectura de Computadores I. T. Informática de Gestión