Tengo este proyecto para Arquitectura de Computadora, ya llegué al punto en el que dibujé una ALU de 1 bit para sumar y subs 2'C números. Supongamos que si quiero agregar un resultado de desbordamiento, ¿cómo lo agrego a esta ALU de 1 bit?
Tengo este proyecto para Arquitectura de Computadora, ya llegué al punto en el que dibujé una ALU de 1 bit para sumar y subs 2'C números. Supongamos que si quiero agregar un resultado de desbordamiento, ¿cómo lo agrego a esta ALU de 1 bit?
Un indicador de acarreo que se usa solo es relevante para enteros sin signo. Un indicador de desbordamiento solo es relevante para enteros con signo. Una ALU no "sabe" si se están utilizando enteros con o sin signo, por lo que se podrían establecer uno o ambos indicadores; depende del programador hacer lo que sea apropiado.
El acarreo se propaga a través de todos los bits de una ALU de múltiples bits (arrastre, arrastre) como se muestra aquí, con el indicador de acarreo final es el arrastre del bit más significativo (MSB). Sin embargo, el bit de desbordamiento solo se necesita en la MSB de una ALU.
Las reglas para activar el indicador de desbordamiento son:
Si la suma de dos números con los bits de signo desactivados produce un número de resultado con el bit de signo activado, el indicador de desbordamiento está activado.
por ejemplo 0100 + 0100 = 1000 (el indicador de desbordamiento está activado)
Si la suma de dos números con los bits de signo en produce un número de resultado con el bit de signo desactivado, el indicador de desbordamiento está activado.
por ejemplo 1000 + 1000 = 0000 (el indicador de desbordamiento está activado)
El indicador de desbordamiento es el XOR del acarreo que entra en el bit de signo (si cualquiera) con el acarreo que sale del bit de signo (si lo hay). Desbordamiento ocurre si el acarreo no es igual al realizado.
En el primer ejemplo anterior (0100 + 0100) el acarreo es 1 y el arrastre es 0, por lo tanto, desbordamiento. En el segundo ejemplo (1000 + 1000) el acarreo es 0 y el ejecutado es 1, nuevamente hay desbordamiento.
tcrosley ofrece una excelente explicación de lo que significa el bit de desbordamiento.
La implementación es sorprendentemente simple.
"Internamente, el indicador de desbordamiento generalmente se genera mediante un XOR (exclusivo o) del acarreo interno hacia y desde el bit de signo. Como el bit de signo es el mismo que el bit más significativo de un número considerado sin firmar, el indicador de desbordamiento no tiene sentido y normalmente se ignora cuando se suman o restan los números sin signo. - Wikipedia: indicador de desbordamiento .
Lea otras preguntas en las etiquetas alu