La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 10.

Presentaciones similares


Presentación del tema: "ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 10."— Transcripción de la presentación:

1 ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 10

2 AGENDA Arquitectura MIPS Concepto de programa almacenado Conjunto de instrucciones MIPS El lenguaje ensamblador MIPS Registros en MIPS

3 Arquitectura MIPS

4 Componentes de la arquitectura El Contador de Programa (PC) Unidad de Control Unidad Aritmético-Lógica Registros Memoria de Datos Memoria de Instrucciones

5 Programa almacenado John von Neumann introdujo, por primera vez, en 1945, la idea de almacenar el programa en memoria El programa es almacenado dentro de la máquina para luego ser procesado internamente Las instrucciones y los datos son guardados en memoria como números Varios usuarios pueden utilizar un mismo computador para diferentes conductas, resultando en diferentes aplicaciones y dándole un carácter universal, como herramienta, al computador

6 Conjuntos de instrucciones Para darle órdenes al hardware de un computador, debemos hablar su idioma Las palabras del idioma de los computadores se denominan instrucciones, y su vocabulario es llamado conjunto de instrucciones Una instrucción, en lenguaje de máquina, es un código formado por voltajes altos y bajos Un conjunto de instrucciones debería: –Facilitar (Simplicidad) la construcción del hardware y el compilador –Maximizar el rendimiento –Minimizar el costo y el consumo de energía

7 Conjunto de instrucciones MIPS Utilizaremos el conjunto de instrucciones MIPS, desarrollado por MIPS technologies Otros conjunto de instrucciones son: –ARM: Del cual se construyeron 3000 millones de procesadores en el 2008 (Parecido a MIPS) –Intel x86: El cual fue implementado en alrededor de 330 millones de PCs en 2008.

8 Almacenamiento de variables en hardware add $t1,$s6,$s7 A diferencia de los programas de alto nivel, en el hardware se cuenta con un número limitado de localidades de memoria para ubicar allí los operandos y resultados temporales de operaciones aritméticas La arquitectura MIPS cuenta con 32 de estas localidades de memoria, denominadas registros Cada registro en MIPS, tiene un tamaño o capacidad de 32 bits.

9 Convención o compromiso de uso de los 32 registros del MIPS RegistroNombreConvención de uso 0$zeroSiempre tiene almacenado 0 (32 bits en 0). Las escrituras se ignoran. 1$atAssembler temporal. 2-3$v0-$v1Valores para resultados de funciones y evaluación de expresiones. Se pueden usar también para retornar 1 valor punto flotante. 4-7$a0-$a3Argumentos. 4 de precisión simple y 2 de doble precisión. 8-15$t0-$t7Valores temporales. Se pueden usar como se desee. 16-23$s0-$s7Temporales almacenados. Se pueden usar libremente. 24-25$t8-$t9Valores temporales. Se pueden usar como se desee. 26-27$k0-$k1Reservados para el kernel del SO y retorno de excepción. 28$gpGlobal pointer. 29$spStack pointer. 30$fpFrame pointer. 31$raReturn address, grabada por la función de llamada.

10 Almacenamiento de datos Los lenguajes de programación permiten tener estructuras que pueden contener muchos más datos o variables que los que se pueden guardar en 32 registros: ¿Cómo hace el computador para acceder y representar tal cantidad de datos? Los datos se mantienen en memoria Por lo tanto, se requieren instrucciones (Capacidades) para 1.Leer un dato desde memoria y guardarlo en un registro 2.Tomar un dato guardado en un registro y guardarlo en una localidad de memoria En MIPS, se pueden direccionar 2 30 palabras de memoria: Memory[0], Memory[4], Memory[8],..., Memory[4294967292]

11 Instrucciones de transferencia de datos Carga de datos desde memoria a un registro: lw $s1, 15($s2)# $s1=Memory[$s2+15] Almacenamiento de datos desde registros a memoria: sw $s1, 20($s2) # Memory[$s2+20]=$s1

12 Instrucciones Aritméticas Las instrucciones aritméticas y lógicas ocurren sólo sobre registros. Suma de dos enteros almacenados en registros add $s1,$s2,$s3# $s1=$s2+$s3 Resta de dos enteros almacenados en registros sub $s1,$s2,$s3 # $s1=$s2-$s3 Suma de un valor entero constante a un valor entero guardado en un registro addi $s1,$s2,5 # $s1=$s2+5

13 Instrucciones Lógicas Las operaciones lógicas realizan las operaciones bit a bit AND: and $t0,$t1,$t2 # $t0 = $t1 & $t2 OR: or $t0,$t1,$t2 # $t0 = $t1 | $t2 Desplazamiento a la izquierda: sll $s1,$s2,8 # $s1 = $s2 << 8 Desplazamiento a la derecha: srl $s1,$s2,6 # $s1 = $s2 >> 6

14 Instrucciones de Salto Lo que distingue a una computadora de una calculadora, es su capacidad para tomar decisiones CONDICIONAL: Saltar si son iguales dos operandos: beq $s5,$s6,Etiq# if ($s5==$s6) goto Etiq Salta si son diferentes dos operandos: bne $s3,$s4,Etiq# if ($s3!=$s4) goto Etiq INCONDICIONAL Salta a cierta dirección explicita o etiqueta: j Etiq # goto Etiq Salta a la dirección almacenada en el registro: jr $ra # goto $ra

15 Ejemplo 1 Programa en C: int a = 5; int b= 4; int c = a + b + 7; Programa en ensamblador: addiu $s0,$zero,5 addiu $s1,$zero,4 addu $t0,$s0,$s1 addiu $t0,$t0,7

16 Ejemplo 2 Programa en C: int f, g = 3, h = 1; int i = 4, j = 4; if (i==j) f=g+h; else f=g-h; Programa en ensamblador: addi $s1,$zero,3 addi $s2,$zero,1 addi $s3,$zero,4 addi $s4,$zero,4 bne $s3,$s4,Else add $t0,$s1,$s2 j Fin Else:sub $t0,$s1,$s2 Fin:

17 Simulador SPIM Permite ejecutar programas escritos en el lenguaje ensamblador MIPS32 También ofrece un depurador sencillo y servicios mínimos de sistema operativo Se puede descargar de la página http://pages.cs.wisc.edu/~larus/spim.html http://pages.cs.wisc.edu/~larus/spim.html


Descargar ppt "ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 10."

Presentaciones similares


Anuncios Google