Los diagramas a continuación son de un libro de texto llamado Organización y diseño de la computadora: La Interfaz de software del hardware: (Edición ARM) y se puede encontrar en el Apéndice A. Aunque no es el mejor libro de texto del mercado , hay algunos diagramas bastante buenos. Estos diagramas a continuación le mostrarán exactamente lo que hay dentro de una ALU.
Una ALU se diseña normalmente con estas operaciones lógicas y matemáticas: AND, OR, ADD, SUBTRACT, SLT (que es una operación de comparación "Establecer si es menor que") y NOR.
EstaessuALUtípicade1bit.Muysimple.Lasformasovalesconel0yel1representanunmultiplexorquecontrolasilosbitsAoBsonnegativos(utilizandoelcomplementode2).Laformaovaladacon0,1,2y3esotroMUXquecontrolaquéoperaciónmatemáticaológicaserealizay,porúltimo,esacasillaconelsímbolo"+" indica un sumador completo. Hay otros componentes como el "detector de desbordamiento" que hace exactamente lo que suena. También tiene el indicador "establecer" de la operación SLT. Esto es solo una simple ALU de 1 bit. Ahora veamos una ALU de 64 bits.
Séloquepodríaestarpensando:"¿Por qué los números en a63 y b63 se ven diferentes a los otros números?" Bueno, es porque tuve que hacer un photoshop con algunos errores tipográficos que se encontraron en el libro de texto (te dije que no es el libro de texto más ideal en el mercado). Pero estoy divagando ...
Ahora, como puedes ver. ¡Hay más operaciones! Ahora hay un detector de cero con ese O gigante que cierra el extremo con un inversor. Si básicamente está agregando 0 + 0, la compuerta OR al final envía un cero, luego el inversor hará que esa señal sea un 1 para enviar un indicador de cero.
PARA CONCLUIR CON SU PREGUNTA: tiene razón al suponer que ALU realiza operaciones aritméticas y así es como las computadoras pueden agregar, restar, comparar, etc. datos particulares que proporciona el usuario. También puedes crear tus propias operaciones como multiplicación o división, pero la multiplicación o división en binario es esencialmente una suma o resta recursiva. Por lo tanto, cuando observa el lenguaje de ensamblaje, las operaciones de multiplicación y división son pseudoinstrucciones , lo que significa que realmente utiliza instrucciones de suma y resta para realizar esa instrucción y, por lo tanto, el tiempo de ejecución suele durar un poco más. para ejecutar.