La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


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

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

2 MULTIPLICACIONES Si el multiplicador y el multiplicando son de n bits, el número de dígitos del producto puede tener hasta 2n bits. El algoritmo de multiplicación básico es igual al que todos sabemos: Repetir 32 veces: Comprobar el bit mas bajo del multiplicador, si es uno, sumar el multiplicando al producto Desplazar el multiplicando 1 bit a la izquierda Desplazar el multiplicador 1 bit a la derecha

3 Hardware del multiplicador
ALU de 64 bits Multiplicando Multiplicador Producto Control Write Shift Left Shift Right suma bit0 32 bits 64 bits El multiplicando se inicializa con la mitad superior en cero. El multiplicando, el multiplicador y el producto se guardan en registros. El control genera las señales apropiadas, en el momento apropiado: Chequea el bit0 Si bit0=1, activa write del producto Activa las señales shift left y shift right.

4 Sistemas secuenciales y combinacionales
Un registro está formado por un conjunto de elementos de memoria Un elemento de memoria almacena un estado, y su salida en un instante del tiempo depende de su entrada y de su estado en el instante anterior. Se llaman secuenciales. En los sistemas combinacionales, las salidas solo dependen de las entradas. Por ejemplo: la ALU xt qt yt+1=f(xt, qt)

5 Sistemas secuenciales
Por ejemplo, un contador módulo 4. Los sistemas secuenciales pueden ser síncronos o asíncronos. En el primer caso, se utiliza una señal de reloj como entrada para señalar los tiempos en que el elemento de estado se debe actualizar. Q(t)=0 Q(t)=1 Q(t)=2 Q(t)=3 yt+1=1 yt+1=2 yt+1=3 yt+1=3

6 Elementos de Estado Relojes
Flanco de bajada T Flanco de subida El reloj es una señal con un tiempo de ciclo fijo.

7 Elementos de Estado : Memoria
Tienen dos Estados : Q=0 y Q=1 Pueden ser síncronos o asíncronos Síncronos: disparados por flanco o por nivel Flip-Flop = biestable síncrono por flanco

8 Biestable Asíncrono S-R
Q R S S R Q Q 0 0 Q Q 1 1 prohibida S=set R=reset

9 Biestable Asíncrono S-R (1-0)
R(t) Q(t) 1 Q R S Q(t+tpd)=S(t)+Q(t)=1+0=0 Q(t+tpd)=R(t)+Q(t)=0+1=0 Q(t+2tpd)=R(t+tpd)+Q(t+tdp)=0+0=1 Q(t+2tpd)=S(t+tpd)+Q(t+tdp)=1+0=0

10 Biestable Asíncrono S-R
R(t) Q(t) 1 Q R S Q=0 Q=1 Q=0

11 Combinación Inestable 1-1
Q R S S(t) 1 R(t) 1 Q(t) 1 Q(t) Q=0 oscilación Estado desconocido

12 Biestables Síncronos: Tipo D
Se construye a partir del biestable S-R. No tiene restricción respecto a las entradas Síncrono por flanco. D Q D D Q Q 0 0 1 1 1 0 clk Q

13 Registros Se construyen a partir de n biestables D.
La entrada se carga en el registro cuando la señal Write está habilitada y el clk da el flanco. Un registro desplazamiento tiene dos señales adicionales: una para desplazar a la izquierda y otra a la derecha. clk D0..7 D7 D6 D5 D4 D3 D2 D1 D0 Q0..7 Write Shift Left Shift Right

14 Mejora al algoritmo de la multiplicación
Suma el multiplicando a la parte alta del producto, luego de sumar desplaza a la derecha el producto. Trabaja con un sumador de 32 bits. Multiplicando 32 bits Shift Right Multiplicador ALU de 32 bits suma 32 bits bit0 Shift Right Producto Control Write 64 bits

15 Más mejoras al algoritmo de la multiplicación
Guarda el multiplicador en la parte baja del registro producto. ALU de 32 bits Multiplicando Producto Control Write suma bit0 32 bits 64 bits Shift Right

16 Multiplicaciones con signo
No funciona! ¿Que sucede si el multiplicando es negativo? Hay que extender el signo mientras lo acumulamos en el registro producto Incorrecto! Correcto!

17 Multiplicaciones con signo
Incorrecto! No funciona! ¿Que sucede si el multiplicador es negativo? No tiene sentido!!!!

18 Multiplicaciones con signo
No funciona si interpretamos los números con signo! Alternativas: Convertir el multiplicando y el multiplicador a números positivos, luego multiplicar, y luego aplicar el signo correspondiente al producto, recordando extender el signo a la izquierda. Buscar otros algoritmos

19 Multiplicaciones con signo
= = 26-22 = = Esto quiere decir que podemos generar el producto de forma diferente: restando al inicio de la cadena de unos sumando al final de una cadena de unos = = 26-22 = =

20 Multiplicaciones con signo
Observación: M * 1100= M* (23+ 22)= M* (24- 22) Incorrecto! Correcto!! Desplazar Desplazar Desplazar Desplazar Sumar Restar Sumar Desplazar

21 Algoritmo de Both (multiplicar)
Observa de a dos bits del multiplicador Bit Bit String Acción Actual Anterior cadena de ceros fin cadena de 1’s suma principio cadena de 1’s resta cadena de 1’s -- El algoritmo cambia el primer paso del algoritmo anterior en función de los dos bits observador. En el segundo paso, se desplaza el producto a la derecha. El número de iteraciones es igual a n.

22 Algoritmo de Both (multiplicar)
desplaza desplaza desplaza desplaza ¿Porqué funciona para números con signo?

23 Demostración actual anterior ai ai-1 (ai-1-ai) sumar b 1 -1 nada
1 -1 nada restar b El producto, para n=4, se puede escribir de la siguiente manera:

24 Demostración Observemos dos términos consecutivos:

25 Demostración Recordando que a-1 =0 a en C2
Conclusión: El algoritmo de Booth trata al multiplicador como un número en complemento a 2.

26 MIPS: MULT y MULTU mult rs, rt multu rs, rt
mult rs, rt rs rt 0x18 multu rs, rt rs rt 0x19 Ambas instrucciones dejan la palabra de menos peso en el registro Lo y la palabra de mas peso en el registro Hi. Ambas instrucciones ignoran el desbordamiento si el producto no cabe en 32 bits. Desbordamiento para números sin signo: el registro Hi es distinto de cero. Desbordamiento para números con signo: el registro Hi es distinto de la extensión de signo del registro Lo.

27 La División Dividendo Divisor 1001010 1000 - 1000 1001 00010 Cociente
El algoritmo de división básico es igual al que todos sabemos: Repetir 33 veces Resto=Resto menos Divisor Si Resto es mayor o igual a cero desplazar a la izquierda el cociente y escribir un 1 en su bit menos significativo Sino restaurar el valor original del Resto, desplazar el cociente e introducir un cero en su bit menos significativo Desplazar el divisor 1 bit a la derecha Ir a 1 Cociente 101 1010 - 1000 10 Resto

28 Hardware del divisor El resto se inicializa con el dividendo.
Shift Right 64 bits Shift Left Cociente ALU de 64 bits resta El resto se inicializa con el dividendo. El divisor, a cada iteración se desplaza a la derecha para alinearse con el dividendo. Ocupa inicialmente los 32 bits más altos del registro de 64 bits. suma 32 bits Resto Write Control 64 bits El control genera las señales apropiadas, en el momento apropiado. El algoritmo es el de prueba y error. Si hubo error (nocabe) hay que restaurar el valor del resto.

29 Ejemplo: 7 div 2 El divisor es de 32 bits, y se va desplazando a la derecha en un registro de 64 bits  se puede ahorrar espacio, y hardware si en lugar de desplazar el divisor a la derecha, se desplaza el resto a la izquierda. (mismo cambio que en el multiplicador). La ALU queda ahora de 32 bits.

30 Mejora al algoritmo de la división
Divisor 32 bits Shift Left Cociente suma ALU de 32 bits resta 32 bits Shift Left Resto Control Write 64 bits

31 Más mejoras al algoritmo de la división
Guarda el cociente en la parte baja del registro resto. ALU de 32 bits Divisor Resto Control Write suma 32 bits 64 bits Shift Right Shift Left resta

32 Ejemplo : 7 div 2

33 Mismo hw para multiplicar y dividir
ALU de 32 bits Divisor Resto Control Write suma 32 bits 64 bits Shift Right Shift Left ALU de 32 bits Multiplicando Producto Control Write suma bit0 32 bits 64 bits Shift Right resta

34 División con signo La solución mas simple es operar con los valores absolutos. Luego se ajustan los signos del cociente y del resto. Se debe cumplir que: Dividendo=Cociente*Divisor + Resto Regla: El dividendo y el resto deben tener el mismo signo

35 FIN Aritmética (3 de 3)


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

Presentaciones similares


Anuncios Google