Nel sistema informatico, ALU è un componente principale dell'unità di elaborazione centrale, che sta per unità logica aritmetica ed esegue operazioni aritmetiche e logiche. È noto anche come unità intera (IU) ed è un circuito integrato all'interno di una CPU o GPU, che è l'ultimo componente ad eseguire calcoli nel processore. Ha la capacità di eseguire tutti i processi relativi alle operazioni aritmetiche e logiche come operazioni di addizione, sottrazione e spostamento, inclusi i confronti booleani (operazioni XOR, OR, AND e NOT). Inoltre, i numeri binari possono eseguire operazioni matematiche e bit a bit. L'unità logica aritmetica è divisa in AU (unità aritmetica) e LU (unità logica). Gli operandi e il codice utilizzati dall'ALU le dicono quali operazioni devono eseguire in base ai dati di input. Quando l'ALU completa l'elaborazione dell'input, le informazioni vengono inviate alla memoria del computer.
Ad eccezione dell'esecuzione di calcoli relativi ad addizione e sottrazione, le ALU gestiscono la moltiplicazione di due numeri interi poiché sono progettate per eseguire calcoli con numeri interi; quindi, anche il suo risultato è un numero intero. Tuttavia, le operazioni di divisione comunemente potrebbero non essere eseguite da ALU poiché le operazioni di divisione potrebbero produrre come risultato un numero a virgola mobile. Invece, l'unità a virgola mobile (FPU) solitamente gestisce le operazioni di divisione; anche altri calcoli non interi possono essere eseguiti dalla FPU.
Inoltre, gli ingegneri possono progettare l'ALU per eseguire qualsiasi tipo di operazione. Tuttavia, l'ALU diventa più costosa man mano che le operazioni diventano più complesse perché l'ALU distrugge più calore e occupa più spazio nella CPU. Questo è il motivo per cui gli ingegneri hanno realizzato una potente ALU, che fornisce la garanzia che anche la CPU sia veloce e potente.
I calcoli necessari alla CPU sono gestiti dall'unità logica aritmetica (ALU); la maggior parte delle operazioni tra loro sono di natura logica. Se la CPU viene resa più potente, viene progettata l'ALU sulla base. Quindi crea più calore e richiede più potenza o energia. Pertanto, deve esserci moderazione tra la complessità e la potenza dell'ALU e non essere più costosa. Questo è il motivo principale per cui le CPU più veloci sono più costose; quindi, assorbono molta energia e distruggono più calore. Le operazioni aritmetiche e logiche sono le principali operazioni eseguite dall'ALU; esegue anche operazioni di spostamento di bit.
Sebbene l'ALU sia un componente importante del processore, il design e la funzione dell'ALU potrebbero essere diversi a seconda dei processori. Ad esempio, alcune ALU sono progettate per eseguire solo calcoli con numeri interi e alcune sono per operazioni in virgola mobile. Alcuni processori includono una singola unità logica aritmetica per eseguire operazioni, mentre altri possono contenere numerose ALU per completare i calcoli. Le operazioni eseguite da ALU sono:
Segnali dell'unità logico-aritmetica (ALU).
L'ALU contiene una varietà di connessioni elettriche di ingresso e uscita, che hanno portato a trasmettere i segnali digitali tra l'elettronica esterna e l'ALU.
L'ingresso ALU riceve segnali dai circuiti esterni e, in risposta, l'elettronica esterna riceve segnali di uscita dall'ALU.
Dati: L'ALU contiene tre bus paralleli, che includono due operandi di input e output. Questi tre bus gestiscono il numero di segnali, che sono gli stessi.
Codice operativo: Quando l'ALU eseguirà l'operazione, viene descritto dal codice di selezione dell'operazione quale tipo di operazione l'ALU eseguirà un'operazione aritmetica o logica.
Stato
Configurazioni dell'ALU
Di seguito viene fornita la descrizione di come l'ALU interagisce con il processore. Ogni unità logico-aritmetica prevede le seguenti configurazioni:
- Architettura del set di istruzioni
- Accumulatore
- Pila
- Registrati per registrarti
- Registra pila
- Registra la memoria
Accumulatore
Il risultato intermedio di ogni operazione è contenuto nell'accumulatore, il che significa che l'Instruction Set Architecture (ISA) non è più complessa perché è necessario contenere solo un bit.
Generalmente sono molto veloci e meno complessi ma servono a rendere l'Accumulatore più stabile; è necessario scrivere i codici aggiuntivi per riempirlo con valori corretti. Sfortunatamente, con un singolo processore, è molto difficile trovare accumulatori per eseguire il parallelismo. Un esempio di accumulatore è la calcolatrice da tavolo.
Pila
Ogni volta che vengono eseguite le ultime operazioni, queste vengono memorizzate nello stack che contiene i programmi in ordine dall'alto verso il basso, che è un piccolo registro. Quando i nuovi programmi vengono aggiunti per essere eseguiti, spingono a inserire i vecchi programmi.
Architettura registro-registro
Include uno spazio per 1 istruzione di destinazione e 2 istruzioni di origine, nota anche come macchina operativa a 3 registri. Questa architettura del set di istruzioni deve essere più lunga per memorizzare tre operandi, 1 destinazione e 2 sorgenti. Al termine delle operazioni, riscrivere i risultati sui Registri sarebbe difficoltoso, ed anche la lunghezza della parola dovrebbe essere più lunga. Tuttavia, potrebbero verificarsi ulteriori problemi con la sincronizzazione se in questa posizione viene seguita la regola di write back.
Il componente MIPS è un esempio dell'architettura registro-registro. Per l'input utilizza due operandi e per l'output utilizza un terzo componente distinto. Lo spazio di archiviazione è difficile da mantenere poiché ciascuno necessita di una memoria distinta; pertanto, deve essere sempre premium. Inoltre, potrebbe risultare difficile eseguire alcune operazioni.
Registrati - Architettura dello stack
Generalmente, la combinazione delle operazioni Register e Accumulator è nota come Register - Stack Architecture. Le operazioni che devono essere eseguite nell'architettura dello stack di registri vengono inserite in cima allo stack. E i suoi risultati vengono mantenuti in cima allo stack. Con l'aiuto del metodo Reverse Polish è possibile scomporre operazioni matematiche più complesse. Alcuni programmatori, per rappresentare gli operandi, utilizzano il concetto di albero binario. Ciò significa che la metodologia di lucidatura inversa può essere facile per questi programmatori, mentre può essere difficile per altri programmatori. Per eseguire le operazioni Push e Pop è necessario creare nuovo hardware.
Registro e memoria
In questa architettura, un operando proviene dal registro e l'altro dalla memoria esterna poiché è una delle architetture più complicate. Il motivo è che ogni programma potrebbe essere molto lungo poiché richiede di essere mantenuto nello spazio di memoria pieno. Generalmente questa tecnologia è integrata con la tecnologia Register-Register Register e praticamente non può essere utilizzata separatamente.
Vantaggi dell'ALU
ALU presenta vari vantaggi, che sono i seguenti:
- Supporta architetture parallele e applicazioni ad alte prestazioni.
- Ha la capacità di ottenere l'output desiderato simultaneamente e combinare variabili intere e a virgola mobile.
- Ha la capacità di eseguire istruzioni su un insieme molto ampio e ha un elevato range di precisione.
- Due operazioni aritmetiche nello stesso codice come addizione e moltiplicazione o addizione e sottrazione, oppure due operandi qualsiasi possono essere combinati dall'ALU. Ad esempio, A+B*C.
- Durante l'intero programma rimangono uniformi e sono distanziati in modo da non poter interrompere le parti intermedie.
- In generale è molto veloce; quindi, fornisce risultati rapidamente.
- Non ci sono problemi di sensibilità e nessuno spreco di memoria con ALU.
- Sono meno costosi e riducono al minimo i requisiti della porta logica.
Svantaggi dell'ALU
Gli svantaggi di ALU sono discussi di seguito:
- Con l'ALU, le variabili flottanti hanno più ritardi e il controller progettato non è facile da capire.
- I bug si verificherebbero nel nostro risultato se lo spazio di memoria fosse definito.
- È difficile capire i radioamatori perché il loro circuito è complesso; inoltre, il concetto di pipeline è complesso da comprendere.
- Uno svantaggio comprovato dell'ALU è che ci sono irregolarità nelle latenze.
- Un altro demerito è l’arrotondamento, che incide sulla precisione.