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.

Slides:



Advertisements
Presentaciones similares
Tema 7: Análisis y diseño con registros
Advertisements

COMO DIVIDIR CON 2 CIFRAS EN EL DIVISOR.
ORGANIZACIÓN COMPUTACIONAL
DESCRIBIR LOS PRINCIPIOS DE LA LÓGICA SECUENCIAL
MULTIPLICACION Y DIVISIÓN DE ENTEROS
PROGRAMACION DE ESTRUCTURAS DE DATOS
NIVEL DE LENGUAJES ORIENTADOS A PROBLEMAS NIVEL DE LENGUAJE ENSAMBLADOR NIVEL DE MAQUINA DEL SISTEMA OPERATIVO NIVEL DE MICROPROGRAMACIÓN NIVEL DE LÓGICA.
Unidad aritmético-lógica
Circuitos Combinacionales Comunes
Aritmética y Computadores. Refresco de aritmética binaria. Operaciones aritméticas y lógicas. Construcción de una ALU para MIPS. Multiplicación y División.
Potencias de exponente natural mayor que 1
Potencias de exponente natural mayor que 1
EXPONENTES Y RADICALES
Sistemas de Numeración
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.
DIVISIÓN DE POLINOMIOS 1
REGISTROS DE DESPLAZAMIENTO
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
DIVISIÓN DE EXPRESIONES ALGEBRAICAS
SISTEMAS DIGITALES SECUENCIALES
Sistemas decimal, binario, octal y hexadecimal
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
Sistemas de numeración
Conceptos Arquitectónicos del computador
Números Enteros 8° básico 2015.
UNIDAD VI: CIRCUITOS LÓGICOS SECUENCIALES
Organización del Computador 1 Sistemas de Representación.
OPERACIONES BINARIAS.
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
Aritmética PARA COMPUTADORAS
Unidad aritmético-lógica
La división (II).
Datapath para las instrucciones de carga y almacenamiento (load/store)
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 11.
Aritmética del Procesador
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
LA UNIDAD ARITMÉTICA Y LÓGICA
ARQUITECTURA DE COMPUTADORES
Área : Aritmética Tema 7: Números con signo Multiplicación y División.
Sistemas Secuenciales Electrónica Digital
Orden en las operaciones
POTENCIACIÓN.
Operaciones aritméticas
La división (I).
TEMA 2: POTENCIAS DE BASE ENTERA
Contenido Los puntos 9.7 y 9.8 no se dan 9.1. Revisión del concepto de máquina secuencial. Taxonomía Temporización en los circuitos lógicos síncronos.
CIFRAS SIGNIFICATIVAS
NÚMEROS RACIONALES Actualización junio 2010 Prof: Guiomar Mora de Reyes                                 
LA DIVISIÓN PARA 3º DE PRIMARIA.
Representación de datos
Organización del Computador I Verano Aritmética (2 de 3) Basado en el capítulo 4 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Alumno: Gerardo Mario Valdés Ortega

Sistema Binario.
José Alvarado – Cristian Anzola
NÚMEROS ENTEROS Y DECIMALES
Curso: Fundamentos de Computación
Ingeniería en Informática F UNDAMENTOS DE C OMPUTACIÓN B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
Máquinas de estado con VHDL
Arquitecturas de Computadoras Capitulo 2 Aritmética de enteros.
El microprocesador y su arquitectura
Tarea 1 Nombre: Maximiliano Orozco Castro Matemáticas para gastronomía.
Circuitos Combinacionales I
Circuitos secuenciales 2
Arquitectura de Computadores IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
Tema: 4 Los números enteros 1Matemáticas 1º Los números enteros Buena temperatura: + 20 ºC IMAGEN FINAL –7 – El submarino navega a.
Números y Fracciones 1.Los números naturales y los enterosLos números naturales y los enteros 2.Números primosNúmeros primos 3.Máximo común divisor y mínimo.
Sistema Numérico Binario Prof. Carlos Ortiz Muñoz.
Los números naturales y sus operaciones Preparado por: Yuli Domínguez. Portal Educa Panamá Matemáticas.
Transcripción de la presentación:

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

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

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.

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)

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

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

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

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

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

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

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

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

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

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

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

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!

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

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

Multiplicaciones con signo 00111100= 25+ 24 + 23 + 22 = 26-22 01101111= 26+ 25 + 23 + 22 + 21 + 20 = 27-25 + 24 -20 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 00111100= 25+ 24 + 23 + 22 = 26-22 01101111= 26+ 25 + 23 + 22 + 21 + 20 = 27-25 + 24 -20

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

Algoritmo de Both (multiplicar) Observa de a dos bits del multiplicador Bit Bit String Acción Actual Anterior 0 0 cadena de ceros -- 0 1 fin cadena de 1’s suma 1 0 principio cadena de 1’s resta 1 1 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.

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

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:

Demostración Observemos dos términos consecutivos:

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.

MIPS: MULT y MULTU mult rs, rt multu rs, rt 31 26 21 16 11 6 0 mult rs, rt rs rt 0x18 multu rs, rt 31 26 21 16 11 6 0 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.

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

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.

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.

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

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

Ejemplo : 7 div 2

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

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

FIN Aritmética (3 de 3)