La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Organización del Computador I Verano Aritmética (1 de 3) Basado en el capítulo 4 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.

Presentaciones similares


Presentación del tema: "Organización del Computador I Verano Aritmética (1 de 3) Basado en el capítulo 4 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn."— Transcripción de la presentación:

1 Organización del Computador I Verano Aritmética (1 de 3) Basado en el capítulo 4 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn

2 Números Los números se representan con tiras de bits. La posición relativa de cada dígito binario determina su valor (igual que en el sistema decimal: unidades, decenas, centenas...) El valor decimal del número se calcula: La cantidad de bits de la representación, n, determina el máximo número representable. Por ejemplo: con 32 bits, se podrán representar los números del 0..2 32 -1. Muchas veces, después de una operación aritmética, el resultado obtenido no es representable con los n bits de la representación  Desbordamiento

3 Signo y Magnitud: Complemento a dos 000 = +0000 = +0 001 = +1001 = +1 010 = +2010 = +2 011 = +3011 = +3 100 = -0100 = -4 101 = -1101 = -3 110 = -2110 = -2 111 = -3111 = -1 ¿Cual elegir? balanceo, número de ceros, facilidad para el hardware Rango de la representación: –Signo y magnitud: -(2 n-1 -1)<=x<=2 n-1 -1 –Complemento a 2: -(2 n-1 )<=x<=2 n-1 -1 Representación de números negativos

4 Representación Complemento a 2 Se llama complemento a 2 porque la suma de cualquier número y su negativo dan 2 n. El complemento a 2 de un número x es: 2 n –x Los números positivos tienen una serie infinita de ceros a la izquierda, los números negativos tienen una serie infinita de unos a la izquierda. El bit mas significativo se llama “bit de signo”

5 Representación Complemento a 2 Los números enteros (positivos y negativos) se representan mediante una tira de n bits, el valor decimal de dicha tira se llama valor explícito. Ejemplo: n=4 5  xe=x=50101 -5  xe=16-5=111011

6 Representación Complemento a 2 Dado un valor explícito, el valor del número entero se obtiene: Ejemplo: 0111x=x e =7 1001x= -(16-9)=-7

7 Propiedad de la Representación Complemento a 2 Las operaciones de suma y resta se pueden hacer sin tomar en cuenta el signo del operando, es decir, se pueden sumar (o restar) directamente los valores explícitos. Se demuestra que

8 Ejemplos con n=4 bits DatoXYXeYeSeS Entero3-4312 (3+12)mod16=15-1 Natural312312 (3+12)mod16=1515 Entero-7-2914 (9+14)mod16=7-9 Natural914914 (9+14)mod16=723 El resultado (23) no es representable con 4 bits C=1, indica desbordamiento C=1, NO indica desbordamiento ¿Que sucede si interpretamos los números como enteros?

9 Desbordamiento para números con signo Al sumar: –Cuando los operandos tienen el mismo signo y se obtiene un resultado con signo contrario Al restar: –Cuando se resta un número negativo de un número positivo y el resultado es negativo –Cuando se resta un número positivo a uno negativo y el resultado da positivo.

10 Determinación de Desbordamiento para números enteros X n-1 Y n-1 CinCoutSV 000000 0 0 1011 010010 011100 100010 10 1100 110101 111110

11 Restas: Restar Sumando R= Y + (-X) Necesitamos la operación de cambio de signo -X = 2 n –X e Pero: no queremos restar!! -X = (2 n – 1 ) – X e + 1 Todos unos C a 1 de X C a 2 de X

12 Restas: Restar Sumando 1101 0011 0 1010 1101 1 1010

13 Números con signo de 32 bits: 0000 0000 0000 0000 0000 0000 0000 0000 two = 0 ten 0000 0000 0000 0000 0000 0000 0000 0001 two = + 1 ten 0000 0000 0000 0000 0000 0000 0000 0010 two = + 2 ten... 0111 1111 1111 1111 1111 1111 1111 1110 two = + 2,147,483,646 ten 0111 1111 1111 1111 1111 1111 1111 1111 two = + 2,147,483,647 ten 1000 0000 0000 0000 0000 0000 0000 0000 two = – 2,147,483,648 ten 1000 0000 0000 0000 0000 0000 0000 0001 two = – 2,147,483,647 ten 1000 0000 0000 0000 0000 0000 0000 0010 two = – 2,147,483,646 ten... 1111 1111 1111 1111 1111 1111 1111 1101 two = – 3 ten 1111 1111 1111 1111 1111 1111 1111 1110 two = – 2 ten 1111 1111 1111 1111 1111 1111 1111 1111 two = – 1 ten maxint minint MIPS

14 Se utiliza para convertir un número de n bits en un número de mas de n bits. –El operando inmediato de 16 bits debe convertirse en un operando de 32 bits para operar. –Se copia el bit más significativo (bit de signo) 0010 -> 0000 0010 1010 -> 1111 1010 La instrucción load byte (lb) trata el número como un número con signo, extendiendo el signo sobre el registro de 32 bits. La instrucción load byte unsigned (lbu), simplemente rellena con ceros los 24 bits del registro de 32. MIPS: Extensión de signo

15 Cuando se detecta desbordamiento, MIPS provoca una excepción: –El control del programa pasa a una dirección predefinida, donde se ejecuta un código de error. –La dirección del programa que ha causado la excepción se guarda en un registro especial llamado EPC (exception program counter). –La instrucción mfc0 permite copiar la dirección guardada en el EPC sobre un registro de propósito general para poder retornar el programa original. –Volveremos mas adelante sobre el tema de las excepciones...... MIPS: Efecto del Desbordamiento

16 No siempre nos interesa detectar el desdordamiento: por ejemplo, en la aritmética de direcciones (punteros), números sin signo. –MIPS diferencia dos tipos de instrucciones: las que ignoran el desbordamiento (addu,addiu,subu, etc) y las que generan excepciones (add, addi, sub, etc) –Los compiladores usan una u otra versión. –Observemos que, en las instrucciones con operando inmediato hay extensión de signo, de 16 a 32 bits, tanto para números con signo, como para números sin signo. –También observemos que hay dos instrucciones de comparación diferentes: sltu, (sltiu) y slt (slti). MIPS: Efecto del Desbordamiento

17 Códigos para detectar desbordamiento addu$t0,$t1,$t2#suma sin deteccion xor$t3,$t1,$t2#para comprobar los signos slt$t3,$t3,$zero #$t3=1 si los signos difieren bne$t3,$zero, no_hay # si los signos difieren no hay xor$t3,$t0, $t1 # puede haber.... slt$t3,$t3,$zero#los tres signos difieren=>hay Bne$t3,$zero, hayc addu$t0,$t1,$t2 nor$t3,$t1, $zero sltu$t3,$t3, $t2 bne$t0, $zero, hay

18 FIN Aritmética(1 de 3)


Descargar ppt "Organización del Computador I Verano Aritmética (1 de 3) Basado en el capítulo 4 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn."

Presentaciones similares


Anuncios Google