La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.

Presentaciones similares


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

1 ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13

2 AGENDA 2do Examen Parcial: Martes 30/06/2009 Repaso Ejercicios

3 Representación de números binarios con signo A los números positivos y al cero, los hemos representado con n dígitos binarios, pero ¿Cómo representamos los números negativos en binario? Existen tres representaciones de números enteros con signo en binario: –Signo - Magnitud –Signo - Complemento: Complemento a 1 Complemento a 2 La representación utilizada en la actualidad, es el complemento a 2

4 Representación Signo - Magnitud El bit más significativo indica el signo del número: 0001 0110 → +22 1011 0100 → -52 Algunos inconvenientes: –Existen dos ceros +0 : 0000 0000 -0 : 1000 0000 –¿Cómo podríamos sumar dos dígitos en Signo - Magnitud? Comparar los signos: Iguales → Suma, Distintos → Resta anan a n-1 a n-2...…a0a0 a1a1 a2a2 …a -m Bit de signo n Bits: Parte enteram Bits: Parte decimal Sumar las magnitudes (Circuitería de suma) Colocarle el signo común Detectar el número mayor (Circuitería de detección de mayor) Restarle al número mayor el otro (Circuitería de resta) Asignarle al resultado el signo del mayor

5 Representación en Complemento a 1 El negativo de un número se obtiene al colocar todos los 1s como 0s y todos los 0s como 1s. 0001 0110 → +22 1110 1001 → -22 Algunos inconvenientes: –Existen dos ceros +0 : 0000 0000 -0 : 1111 1111 –¿Cómo podríamos sumar dígitos en Complemento a 1? Se realiza la suma (Circuitería de suma) Si hay un bit de acarreo, se suma (2da suma) Si los signos son distintos, se coloca el signo del mayor (Circuitería de detección del mayor) A = 2 n – a n-1 a n-2...a 1 a 0

6 Representación en Complemento a 2 El negativo de un número se obtiene al colocar el número en complemento a 1 y sumarle una unidad (1). 0001 0110 → +22 1110 1010 → -22 Una forma rápida de calcular el complemento a 2 es: –Recorriendo el número de derecha a izquierda, deje los 0s sin cambiar –Siguiendo el recorrido, deje al primer 1 sin modificar –A partir de allí, cambie los 0s por 1s y los 1s por 0s Características: –Existe un solo cero: 0000 0000 –¿Cómo se sumarían dos dígitos en Complemento a 2? Se realiza la suma (Circuitería de suma) A = 2 n – a n-1 a n-2...a 1 a 0 + 1

7 c) 1110 1010 → -22 0011 0100 → +52 1 0001 1110 → +30 Ejemplo de sumas en Complemento a 2 b) 0001 0110 → +22 1100 1100 → -52 1110 0010 → -30 a) 0001 0110 → +22 0011 0100 → +52 0100 1010 → +74 d) 1110 1010 → -22 1100 1100 → -52 1 1011 0110 → -74

8 Arquitectura MIPS

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

10 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

11 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

12 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.

13 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]

14 Formato de instrucción R Las instrucciones aritméticas registro a registro, utilizan el formato de instrucción R. — op es el código de instrucción, y func especifica una operación aritmética particular. — rs, rt y rd son los dos registros fuentes y el registro destino Un ejemplo de una instrucción y su codificación es: add$s4, $t1, $t2 oprsrtrdshamtfunc 6 bits5 bits 6 bits 00000001001010101010000000100000

15 Formato de instrucción I Las instrucciones lw, sw y beq instructions utilizan el formato de instrucción I. — rt es el destino para lw, pero una fuente para beq y sw. — dirección es una constante, con signo, de 16 bits. Dos ejemplos: lw$t0, – 4($sp) sw$a0, 16($sp) oprsrtdirección 6 bits5 bits 16 bits 10001111101010001111 1111 1111 1100 10101111101001000000 0000 0001 0000

16 Para las instrucciones de salto, la constante no es una dirección, sino un desplazamiento de instrucción desde el contador de programa actual, hasta la dirección deseada. beq$at, $0, Etiq add$v1, $v0, $0 add$v1, $v1, $v1 jEtiq Etiq:add$v1, $v0, $v0 La dirección destino Etiq está tres instrucciones después de beq, por lo que la codificación de la instrucción de salto tendrá 0000 0000 0000 0011 como campo de dirección. Las instrucciones tienen 4 bytes de largo, por lo que el desplazamiento real es de 12 bytes. Saltos 00010000001000000000 0000 0000 0011 oprsrtaddress

17 Arquitectura MIPS

18 El camino de datos final

19 Señales de control generales La unidad de control requiere 13 bits de entrada. –Seis bits del opcode de instrucción. –Seis bits del campo de instrucción func. –La salida Zero de la UAL. La unidad de control genera 10 bits de salida, correspondientes a las señales mencionadas en la lámina anterior. Leer dirección Memoria de Instrucciones Instrucción [31-0] Control I [31 - 26] I [5 - 0] RegWrite ALUSrc ALUOp MemWrite MemRead MemToReg RegDst PCSrc Zero

20 Instrucciones aritméticas

21 Instrucciones lógicas

22 Instrucciones de transferencia de datos

23 Instrucciones de salto condicional

24 Instrucciones de salto incondicional

25 Ejemplo 2 Programa en C: int i = 0, j = 5; while (vector[i]==j) i+=1; Programa en ensamblador: li $s1,0 li $s2,5 # vector en $s6=0x10010040 While: sll $t1,$s1,2 add $t1,$t1,$s6 lw $t2,0($t1) bne $t2,$s2,Fin addi $s1,$s1,1 j While Fin:

26 Ejemplo 3 Programa en C: x = 0; for(int i=0;i<100;i++) { x = x+i; } Programa en ensamblador: li $s1,0 # i = 0 li $s2,0 # x = 0 For: slti $t0,$s1,100 beq $t0,$zero,Fin add $s2,$s2,$s1 addi $s1,$s1,1 j For Fin:

27 Tarea Realizar un programa en lenguaje ensamblador MIPS, que calcule el factorial de un número (De manera no recursiva). Realizar un programa en lenguaje ensamblador MIPS, que calcule la multiplicación de dos números a través de sumas sucesivas.

28 Ejemplo 4 Programa en C: int i, x = 8,f=1; for(i=2;i<=x;i++) { f = f * i; } Programa en ensamblador: li $s1,2 # i = 2 li $s2,8 # x = 8 li $t0,1 # f = 1 For: slt $t1,$s2,$s1 bne $t1,$zero,Fin mult $t0,$s1 mflo $t0 addi $s1,$s1,1 j For Fin:

29 Ejemplo 5 Programa en C: int a = 4, b = 5; int suma = a; for(int = 1; i<b; i++) { suma = suma + a; } Programa en ensamblador: li $s0,1 # i = 1 li $s1,4 # a = 4 li $s2,5 # b = 5 add $t0,$zero,$s1 For: slt $t1,$s0,$s2 bne $t1,$zero,Fin add $t0,$t0,$s1 addi $s0,$s0,1 j For Fin:


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

Presentaciones similares


Anuncios Google