¿Es una ALU un multiplexor?

5

Estoy estudiando electrónica digital donde aparecen los componentes ALU y el multiplexor. Para mí, la ALU parece un multiplexor, pero no se menciona específicamente que este es el caso. ¿Es así, o por qué no?

    

5 respuestas

11

No, no es un multiplexor. Un multiplexor seleccionaría una de ambas entradas; en una ALU, ambas entradas pueden usarse simultáneamente, dependiendo de la operación pendiente.

ALU significa Unidad Aritmética y Lógica, y esos son los tipos de operaciones que realiza.

Si la operación requiere un desplazamiento a la izquierda del registro R1, entonces la segunda entrada se ignora, pero es posible que tenga que "agregar el contenido de la dirección RAM 0x1208 al registro R1", entonces se usan ambas entradas. Antes de que se pueda realizar el agregado, los datos de la RAM se deben buscar y colocar en una de las entradas, y el contenido de R1 en la otra.

Engeneral,unaALUpuederealizarvariasoperacioneslógicas,comoagregar,cambiar,borrar,etc.Esunalógicabastantecomplejaquefuncionaenlosoperandosdelasentradasyelcódigodeoperación.
Operacionescomo"borrar A" son simples, pero "multiplicar A y B" requiere muchas puertas.

    
respondido por el stevenvh
8

Como han señalado otros, la función de una ALU es realizar operaciones aritméticas y lógicas (generalmente binarias o unarias) en los buses de entrada. Puede dividir una ALU en tres etapas principales junto con cierta lógica de control que configura esas etapas.

  • Selección de argumento: esta etapa realmente es solo un multiplexor para cada entrada que permite la selección de varias entradas para cualquiera de los argumentos (es decir, RegisterA, RegisterB, MemoryLoad, Pipeline Byassed Value, etc.).
  • Cálculo aritmético / lógico: aquí es donde se realizan todos los cálculos matemáticos en paralelo en las entradas seleccionadas / enrutadas
  • Selección de salida: esto puede pensarse como un lógico como otro multiplexor, pero por razones de entrada / salida del ventilador a menudo se implementa como un bus de tres estados con las distintas habilitaciones de salida controladas por un decodificador basado en el instrucción op-code.

Este es un dibujo de muy alto nivel que preparé para ilustrar esta partición.

Puede haber un debate sobre si la primera etapa y la lógica de control son realmente parte de la ALU, o si es simplemente una parte de la etapa de Ejecución de la tubería de la CPU.

    
respondido por el vicatcu
6
  

Para mí, la ALU parece un multiplexor ...

Una ALU realiza muchas tareas.
 Un multiplexor esencialmente realiza una tarea.

A una ALU se le podría asignar una función de multiplexor como una de sus funciones, si lo desea.
 es decir, las capacidades de un multiplexor pueden ser un pequeño subconjunto de las capacidades de una ALU.

En una implementación típica, ambas tienen dos entradas y una salida.
 Pero el multiplexor solo realiza una selección de cualquiera de las dos entradas.  La ALU podría hacer esto más la suma, OR, AND, XOR, Add, Subtract, ...

Dada una única entrada de control C y un puerto n bit A (con los bits A0, A1, A2 ... An) y un puerto n bit B, se puede considerar que un multiplexor implementa.

Mout_x = A_x.C + B_x./C para todo x = 0 ... n

"." = AND lógico
 "+" = OR lógico.

    
respondido por el Russell McMahon
4

No, no es un multiplexor. Una ALU es una Unidad de lógica aritmética .

Hace lo que el nombre sugiere, realiza varias operaciones aritméticas y lógicas como sumar, restar, multiplicar, cambiar, AND, OR, etc.

    
respondido por el Oli Glaser
1

Una ALU realiza múltiples operaciones aritméticas / lógicas en función de la "función" seleccionada.

Es solo un mux en el sentido de que la "función" seleccionada seleccionará el resultado apropiado para enviar a la salida.

Como ejemplo, AGREGA dos números Y dos números juntos. Luego, la "función" multiplexa los resultados AGREGAR o ANDAR a la salida.

Por cierto, así es como se diseñan algunos ALU dentro de los microprocesadores.

    
respondido por el sybreon

Lea otras preguntas en las etiquetas