Sto studiando l'elettronica digitale dove compaiono i componenti ALU e multiplexer. A me l'ALU sembra un multiplexer ma non è specificamente menzionato che è così. È così o perché no?
Sto studiando l'elettronica digitale dove compaiono i componenti ALU e multiplexer. A me l'ALU sembra un multiplexer ma non è specificamente menzionato che è così. È così o perché no?
No, non è un multiplexer. Un multiplexer selezionerebbe uno di entrambi gli ingressi, in una ALU entrambi gli ingressi possono essere utilizzati contemporaneamente, a seconda dell'operazione in sospeso.
ALU sta per Arithmetic and Logic Unit, e questi sono i tipi di operazioni che esegue.
Se l'operazione richiede uno spostamento a sinistra del registro R1, il secondo ingresso viene ignorato, ma potresti anche avere "aggiungi il contenuto dall'indirizzo RAM 0x1208 al registro R1", quindi vengono utilizzati entrambi gli ingressi . Prima di poter eseguire l'aggiunta, i dati della RAM devono essere recuperati e posizionati su uno degli ingressi e il contenuto di R1 sull'altro.
Tutto sommato una ALU può eseguire diverse operazioni logiche, come l'aggiunta, lo spostamento, la cancellazione, ecc. È un pezzo di logica piuttosto complesso che funziona sugli operandi su gli input e il codice dell'operazione.
Operazioni come "cancella A" sono semplici, ma "moltiplica A e B" richiede molte porte.
Come altri hanno notato, la funzione di una ALU è quella di eseguire operazioni aritmetiche e logiche (tipicamente binarie o unarie) sui bus di ingresso. È possibile suddividere una ALU in tre fasi principali insieme ad una logica di controllo che configura tali fasi.
Ecco un disegno di altissimo livello che ho preparato per illustrare questo partizionamento.
Potrebbe esserci un dibattito sul fatto che il primo stadio e la logica di controllo siano davvero parte dell'ALU, o se facciano semplicemente parte della fase di esecuzione della pipeline della CPU. / p>
A me l'ALU sembra un multiplexer ...
Un'ALU esegue molti compiti.
Un multiplexer esegue essenzialmente un compito.
Una ALU potrebbe essere dotata di una funzione multiplexer come una delle sue caratteristiche, se lo si desidera.
cioè le capacità di un multiplexer possono essere un piccolo sottoinsieme delle capacità di una ALU.
In un'implementazione tipica, entrambi hanno due input e un output.
Ma il multiplexer esegue solo una selezione o / o tra i due input.
L'ALU potrebbe eseguire questa operazione più l'aggiunta, OR, AND, XOR, Add, Subtract, ...
Dato un singolo ingresso di controllo C e una porta n bit A (con bit A0, A1, A2 ... An) e un n porta bit B si può pensare di implementare un multiplexer.
Mout_x = A_x.C + B_x./C for all x = 0 ... n
"." = AND logico
"+" = OR logico.
No, non è un multiplexer. Una ALU è un ' unità logica aritmetica.
Fa ciò che suggerisce il nome, esegue varie operazioni aritmetiche e logiche come addizione, sottrazione, moltiplicazione, spostamento, AND, OR, ecc.
Una ALU esegue più operazioni aritmetiche / logiche a seconda della "funzione" selezionata.
È solo un mux, nel senso che la "funzione" selezionata selezionerà il risultato appropriato da inviare all'output.
Ad esempio, AGGIUNGI due numeri E due numeri insieme. Quindi, la "funzione" multiplexa i risultati ADD o AND nell'output.
Per inciso, questo è il modo in cui sono progettati alcuni ALU all'interno dei microprocessori.