140 likes | 291 Views
Arquitectura de Computadores I. Ejemplo: El conjunto de instrucciones en el MIPS. Ejemplo: El conjunto de instrucciones en el MIPS. Introducción. Instrucciones aritméticas. Operandos: Registros y localidades de memoria.
E N D
Arquitectura de Computadores I Ejemplo: El conjunto de instrucciones en el MIPS
Ejemplo: El conjunto de instrucciones en el MIPS • Introducción. • Instrucciones aritméticas. • Operandos: Registros y localidades de memoria. • Lenguaje de máquina: Representación de las instrucciones en el computador. • Instrucciones de decisión.
Introducción • Instrucciones – conjunto de instrucciones. • Los diferentes conjuntos de instrucciones se parecen entre si. • La simplicidad en el diseño es uno de los objetivos de un desarrollador cuando escoge el conjunto de instrucciones. • Estudio del conjunto de instrucciones del MIPS. Usado por NEC, Nintendo, Silicon Graphics & Sony, entre otros.
Operaciones aritméticas “Deben existir instrucciones para realizar operaciones aritméticas fundamentales”. Principio de diseño 1: La simplicidad favorece la regularidad.
Operaciones aritméticas Ejemplo: A continuación se muestran 2 segmentos de código escritos en C para un programa particular. Asumiendo que las variables a, b, c, ... i, j existen dentro de sus respectivos entornos, ¿ cual sería el código MIPS que el compilador generaría para cada segmento ?
Operandos para las instrucciones. • Las variables en un lenguaje de alto nivel tienen su contraparte en el mundo del lenguaje de máquina. Se trata de los registros. • Un registro es una localidad especial ubicada en la unidad de procesamiento. • El tamaño de los registros en MIPS es de 32 bits. Así mismo, MIPS posee un total de 32 registros. • El compilador se encarga de hacer desbordamiento de variables para compensar la cantidad de registros. “ Principio de diseño 2: Generalmente los diseños pequeños son más veloces. ”
Operandos para las instrucciones. • La convención usada en MIPS es nombrar los registros con dos caracteres, precedidos por el carácter $. Ej: $s0, $s1, $t0, $t1. * • Las operaciones aritméticas ocurren solo entre registros de MIPS, por lo tanto deben existir instrucciones para transferir datos entre los registros y la memoria del sistema. Las dos instrucciones que usa MIPS para tales transferencias es lw y sw. ** • Por el tamaño de las palabrasen MIPS, se deben considerar dos conceptos: La restricción de alineamiento y el formato Big Endian para el almacenamiento de los bytes individuales en memoria.
Operandos para las instrucciones. Ejemplo: Compile el siguiente par de segmentos de código y genere el código equivalente para MIPS. Use la notación $s0, $s1, ... para representar las variables en el programa y $t0, $t1 .... para representar los elementos de tipo temporal. Asuma que la dirección base del arreglo A está almacenada en el registro $s3.
Dirección Instrucción Formato op rs rt rd shamt function add R 0 reg reg reg 0 32 sub R 0 reg reg reg 0 34 lw I 35 reg reg Address sw I 43 reg Reg Address Representación binaria de las instrucciones.
Representación binaria de las instrucciones Ejemplo: Compile y ensamble la siguiente línea de código escrita en C para MIPS. Asuma que el registro $s0 almacena la dirección base del arreglo A, mientras que la variable h corresponde al registro $s2. // Código en C: A[300] += h;
Instrucciones para la toma de decisiones. • Existen tres instrucciones en MIPS para controlar las estructuras de decisión y las repetitivas: beq, bne y slt. • El formato para bne y beq es el siguiente: • bne reg,reg,etiqueta • beq reg,reg,etiqueta • El formato para slt es: slt reg,reg,reg
Instrucciones para la toma de decisiones. Ejemplo: Usando las instrucciones de decisión vistas, compile los siguientes bloques de código escrito en C. Asuma que el registro base del arreglo A es $s0. Las variables f, g, h, i y j corresponden a los registros $s1, $s2, $s3, $s4 y $s5, respectivamente.