L’Unità Aritmetico Logica, componente della CPU, effettua calcoli e operazioni logiche. Riceve in input due bus (a 64 bit nelle architetture moderne) accompagnati da un bus parallelo detto opcode (Operation Code) per configurarla (scegliere l’operazione da effettuare tra i due bus) e ritorna in output il risultato dell’operazione tra i due bus, cioè un bus altrettanto lungo.
All’interno delle ALU è SEMPRE presente un full adder (FA).
esempio di ALU semplice a 3 bit
bit | prodotti dell’ALU (stato) |
---|---|
N | risultato negativo |
Z | risultato è 0 |
W | overflow |
C | carry in uscita |
A (input) B
(opcode) | |
____v_________v____ (stato/status)
C1 ->| |-> N
C0 ->| ALU |-> Z
Rin ->| |-> W
|_________________|-> C
|
v
R (risultato)
input:
- :
- vale 0 → pone a 0 l’operando
- vale 1 → passa
- :
- vale 0 → passa
- vale 1 → passa
- è il riporto in entrata al sommatore
output:
- :
- vale 0 se il risultato è 0
- vale 1 se il risultato è 1
- : bit di overflow
funzionamento:
risultato | |||
---|---|---|---|
0 | 0 | 0 | |
0 | 0 | 1 | |
0 | 1 | 0 | |
0 | 1 | 1 | |
1 | 0 | 0 | |
1 | 0 | 1 | |
1 | 1 | 0 | |
1 | 1 | 1 | |