arquitectura de computadores i ejemplo: el conjunto de instrucciones en el mips
TRANSCRIPT
Arquitectura de Arquitectura de Computadores IComputadores I
Ejemplo: El conjunto de instrucciones en el MIPS
Ejemplo: El conjunto de Ejemplo: El conjunto de instrucciones en el MIPSinstrucciones 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ónIntroducción
IntroducciónIntroducció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éticasOperaciones aritméticas
“Deben existir instrucciones para realizar operaciones aritméticas fundamentales”.
Principio de diseño 1Principio de diseño 1: La simplicidad : La simplicidad favorece la regularidad.favorece la regularidad.
Operaciones aritméticasOperaciones 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 ?
// Segmento 1:
a = b + c;
d = a – e;
// Segmento 2:
f = ( g + h ) – ( i + j );
Operandos para las Operandos para las instrucciones.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:Principio de diseño 2: Generalmente los Generalmente los diseños pequeños son más veloces. ”diseños pequeños son más veloces. ”
Operandos para las Operandos para las instrucciones.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 Operandos para las instrucciones.instrucciones.
Ejemplo: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.// Segmento 1:
A[12] = h + A[8];
// Segmento 2:
g = h + A[i];
Representación binaria Representación binaria de las instrucciones.de las instrucciones.
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 Representación binaria de las instruccionesde las instrucciones
Ejemplo: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 Instrucciones para la toma de decisiones.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 Instrucciones para la toma de decisiones.toma de decisiones.
Ejemplo: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.
Instrucciones para la Instrucciones para la toma de decisiones.toma de decisiones.
// Segmento 1:
if (i==j) f = g + h;
else f = g – h;
// Segmento 2:
Loop:
f = f + g;
g = g + 1;
if(g!=h)go to Loop;
// Segmengto 3:
while (A[j] == k)
f = f + g;