Reporte Practica ALU - Equipo 6
Reporte Practica ALU - Equipo 6
Reporte Practica ALU - Equipo 6
ARQUITECTURA
COMPUTADORAS
Unidad ló gica-aritmética
EQUIPO #6
Cadena Montiel Jerson Jesús
Cárdenas Bahena Tomas Rafael
Espíritu de la Cruz Diego
Vallejo Martínez Oliver Francisco
OBJETIVO
El alumno comprenderá el funcionamiento de una unidad aritmética y lógica (UAL),
que es un circuito combinacional que realiza las operaciones aritméticas y lógicas
básicas en el computador, como son:
• Operaciones aritméticas básicas: suma, resta, multiplicación, división.
• Operaciones lógicas básicas: NOT, AND, OR, NAND, NOR.
INTRODUCCIÓN
En computación, la unidad aritmético lógica, también conocida como ALU (siglas en
inglés de arithmetic logic unit), es un circuito digital que calcula operaciones
aritméticas (como suma, resta, multiplicación, etc.) y operaciones lógicas (si, y, o,
no), entre dos números.
Por mucho, los más complejos circuitos electrónicos son los que están construidos
dentro de los chips de microprocesadores modernos. Por lo tanto, estos
procesadores tienen dentro de ellos un ALU muy complejo y potente. De hecho, un
microprocesador moderno (y los mainframes) pueden tener múltiples núcleos,
cada núcleo con múltiples unidades de ejecución, cada una de ellas con múltiples
ALU.
Operaciones simples
Las entradas a la ALU son los datos en los que se harán las operaciones (llamados
operandos) y un código desde la unidad de control indicando qué operación
realizar. Su salida es el resultado del cómputo de la operación.
Su misión es realizar las operaciones con los datos que recibe, siguiendo las
indicaciones dadas por la unidad de control.
Para que la unidad aritmética y lógica sea capaz de realizar una operación
aritmética, se le deben proporcionar, de alguna manera, los siguientes datos:
En esto tomamos en cuenta que el bloque sumador tenía tres entradas, dos
entradas para los bits a sumar y la tercera entrada para el carry de la suma anterior
o carry previo, que aquí llamaremos carry in.
Las salidas del bloque sumador serán el bit de resultado y el bit de carry de salida,
que aquí llamaremos carry out, y que a su vez será carry in para el siguiente
sumador. El bloque por el que representaremos el sumador.
Si ahora incorporamos el bloque sumador a nuestra ALU, que sólo realizaba
operaciones lógicas, tendremos una primera ALU elemental capaz de realizar
operaciones lógicas y aritméticas.
En esta primera ALU elemental, existen cuatro posibles operaciones, AND, OR, XOR
y Suma, a partir de los mismos operandos de entrada. La elección de una u otra se
realiza a través del multiplexor, la combinación binaria que aparece en las líneas de
selección del multiplexor indicarán cuál de las entradas (qué operación) aparece a
la salida de nuestra ALU elemental.
La combinación binaria de entrada viene dada por la señal Operación (compuesta
por dos bits) que se corresponde con la operación que queremos realizar.
Esquema de una ALU elemental con operaciones lógica y Sumador elemental
Queda ahora por añadir a esta ALU inicial la capacidad de restar dos bits. Realizar la
operación de restar es igual que sumar la versión negativa de un operando, o lo
que es lo mismo: (A - B) = A + (-B). Es de esta forma como los sumadores realizan la
resta.
Cuando se explicó la codificación de números enteros se vieron varios formatos;
uno de ellos es el denominado complemento a dos. En complemento a dos se vio
que era posible representar números positivos y negativos. Los números positivos
se representaban de la misma forma que en binario natural, y los números
negativos se obtenían a partir de la codificación binaria del número considerado
como positivo y luego complementándolo a dos, o lo que es lo mismo, invertir los
bits de la codificación binaria del número (los ceros pasan a unos y los unos a ceros,
esta operación a veces se denomina complemento a uno), y al resultado de la
operación anterior sumarle 1.
Para construir la operación aritmética de resta, si en nuestro esquema de ALU
elemental añadimos un nuevo multiplexor que nos permita elegir entre el
operando B o su negado, ya tendremos la mitad del camino recorrido (obtención
del inverso de la combinación binaria del número a restar). La señal Resta
controlará qué entrada del multiplexor se tomará, la normal o la invertida.
Para obtener el número negativo aún hemos de sumar 1 al número invertido.
Cada sumador elemental hemos visto que tiene tres entradas, los operandos A y B
y la entrada carry in o carry de la suma anterior. Sin embargo, el primer sumador
elemental, o el que suma los bits menos significativos, no necesitaría la señal carry
in, puesto que no existe ninguna suma anterior. Tendremos:
A + B + 1 = A + (B +1) = A + (-B) = A – B
Por tanto, con este esquema seremos capaces de realizar la resta de dos números.
Observar que no se ha aumentado excesivamente la complejidad de la ALU
elemental para realizar las operaciones de suma y resta, y es por este motivo que
se utiliza el complemento a dos como estándar para la aritmética entera en los
computadores.
Con esto finalizamos la construcción de la ALU elemental, que servirá de base para
la construcción de una ALU completa.
Los materiales que se emplearon en esta práctica son los siguientes, los cuales van conectados
directamente a una fuente de 5V y tierra se usa el 181 y leds e interruptores, y así es como
nosotros lo armamos.
CONCLUSIONES
Con esta práctica, podemos concluir que esta unidad es la encargada de realizar las
operaciones elementales de tipo aritmético (generalmente sumas o restas) y de
tipo lógico (generalmente comparaciones) en los computadores.
El uso de los multiplexores en el diseño de circuitos combinacionales, es una
herramienta eficiente para simplificar la aplicación de los mismos.
Los aprendizajes en esta práctica, más que el conocer cómo trabajan las
compuertas lógicas, cosa que ya vimos en la materia de diseño digital, fue el
aprender cómo es que trabajan los circuitos. También aprendimos cómo debe de
ser el cableado en las futuras prácticas, pero debemos de tomarlo en cuenta no
solo para esta materia, sino para tratar de que a futuro, cualquier circuito que
hagamos también tenga un orden y sea fácil de corregir en caso de cualquier error.