Unidad Aritmetico Logica
Escuela Superior de Informática Universidad de Castilla-La Mancha
Contenido
• Introducción – Operaciones lógicas: desplazamientos lógicos – Operaciones aritméticas: multiplicación y división • Multiplicación – Sin signo: suma desplazamiento – Sin signo: sumas y restas – Con signo: Algoritmo de Booth • División – Con restauración – Sin restauración • Coma flotanteLa ALU dentro del computador
Operaciones lógicas: desplazamientos
Operaciones aritméticas: multiplicación y división
• La operación básica es la suma, que se supone conocida en este curso • También se suponen conocidos los multiplicadores paralelo de tipo combinacional • En este tema se estudian los algoritmos para realizar las operaciones desde el punto de vista de la arquitectura,centrados en la multiplicación y la división
MULTIPLICACIÓN BINARIA SIN SIGNO: SUMA DESPLAZAMIENTO
Fundamentos
Se multiplica cada bit del multiplicador, empezando por el menos significativo, por todos los bits del multiplicando Si es 0, el resultado es 0 Si es 1, el resultado es el multiplicando Cada vez que se considera un nuevo bit del multiplicador, se desplaza hacia la izquierda unaposición el nuevo producto y se añade a la suma parcial acumulada La última suma parcial será el resultado
Ejemplo
6x9=54
inicial
0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0
x
Primera suma parcial acumulada
Segunda suma parcial acumulada
0 0 0 1 0 0 1
1 1 0
Ultima suma parcial acumulada (RESULTADO)
IDEA BÁSICA
Hay que sumar las sumas acumuladascon el multiplicando DESPLAZADO A LA IZQUIERDA cuando el LSB del multiplicador sea 1. EN LUGAR DE DESPLAZAR A LA IZQUIERDA EL MULTIPLICANDO, SE DESPLAZAN A LA DERECHA LAS SUMAS PARCIALES
Necesidades
El producto de un número binario de n bits con otro de m bits necesita m+n bits Sea A el multiplicador y B el multiplicando En el caso de que m=n, se necesitan dos registros iguales para almacenarel resultado Sean R3 y R4 los registros donde se va almacenando el resultado
Arquitectura
Contador
R1
CON
R2
C
R3
R4
Algoritmo Suma Desplazamiento
Se inicializan a 0 el contador de bits del multiplicador y el registro R3 Se carga R1 con el multiplicando A y R2 con el multiplicador B Se analiza el LSB de R2 Si es 1, se suma R1+ R3 y el resultado se deja en R3 Si es 0,se suma R1 + 0 (es decir, no se hace nada) y el resultado se deja en R3 Se incrementa el contador Se produce un desplazamiento aritmético (con extensión de signo) de una posición hacia la derecha del conjunto C-R3-R4 Se realiza una rotación circular a derecha de R2 Se mira si el contador ha llegado hasta el final En caso negativo se repite el proceso, volviendo a preguntar por el LSB de R2 En casoafirmativo se finaliza el proceso y el resultado está en C-R3-R4
Inicio, R30, Cont0 R1A R2B R20? 1 R3 R3+R1 Incrementa contador C-R3-R4 desplaza derecha R2 rota circul NO Cont? SI Fin 0
SUMA DESPLAZAMIENTO
Ejemplo
Multiplicar A=0110 por B=1001
El resultado debe ser 6x9=54 (en binario 0011 0110)
Contador
R1
R2
C
R3
R4
Inicialización
Se carga A en R1 y B enR2.
Se pone a 0 el registro R3 y el contador
Contador
0110
0
1001
0
0000
XXXX
Comprobación de R20 y acción
Como el LSB de R2 es 1 se suman R3 + R1 y se deja el resultado en R3
Contador
0110
0
1001
0
0110
XXXX
Incremento contador
Se incrementa el contador en una unidad
Contador
0110
1
1001
0
0110
XXXX
Desplazamiento a derechaSe desplaza el conjunto C-R3-R4 una posición a la derecha
Contador
0110
1
1001
0
0011
0XXX
Rotación circular de R2
El registro R2 rota a la derecha de forma circular
Contador
0110
1
1100
0
0011
0XXX
¿Ha llegado al final?
Comprueba que el contador no es 4 y repite el bucle
Contador
0110
1
1100
0
0011
0XXX
Comprobación...
Regístrate para leer el documento completo.