L’ALU (Arithmetic Logic Unit, unità aritmetico-logica) è l’unità funzionale del microprocessore che svolge le operazioni aritmetiche e logiche.
Le unità aritmetico-logiche più datate erano capaci di eseguire solo le operazioni aritmetiche più semplici, tra le quali rientrano l’addizione, la sottrazione e le operazioni logiche booleane (AND, OR, XOR, NOT). Le operazioni più complesse, come quelle di moltiplicazione e divisione, venivano emulate utilizzando ripetutamente somme o sottrazioni.
La tecnologia è riuscita, con il tempo, a superare alcuni ostacoli tecnici ed integrare nelle unità aritmetico-logiche anche le operazioni di moltiplicazione e di divisione, attraverso l’implementazione di reti logiche più complesse.
Per migliorare le prestazioni di una CPU si è reso possibile includere una o più unità aritmetico-logiche all’interno di alcune strutture come, ad esempio, le pipeline.
L’ALU contiene un sommatore. Il sommatore ha il compito di calcolare la somma tra due operandi e di gestire i riporti.
L’unità aritmetico-logica, inoltre, fa uso di un insieme di registri. Il registro più importante è l’accumulatore nel quale vengono memorizzati i risultati delle computazioni; la maggior parte delle istruzioni aritmetiche fa uso di questo registro. Solitamente ne è presente più di uno.
In sintesi, i registri del processore forniscono i dati all’ALU che vengono elaborati. Successivamente, il risultato viene salvato nel registro di uscita.
L’unità aritmetico-logica è in grado di effettuare calcoli in virgola mobile con la tecnica della emulazione. Quest’ultima penalizza la velocità di elaborazione delle istruzioni più complesse, ma permette di semplificare l’architettura del microprocessore riducendone il numero dei transistor impiegati e il costo complessivo di realizzazione.
La FPU (Floating Point Unit, unità di calcolo in virgola mobile) è una unità funzionale della CPU specializzata nel calcolo in virgola mobile ed è capace, in alcuni sistemi, di svolgere anche calcoli assai complessi come quelli esponenziali e trigonometrici.
Cosa significa virgola mobile? È il metodo diffuso per la rappresentazione dei numeri razionali e di approssimazione di quelli reali. Un numero in virgola mobile è rappresentato da tre campi: segno, esponente e mantissa.
Nei calcolatori più datati, la FPU era implementata nel sistema tramite un coprocessore matematico (opzionale nei sistemi di fascia medio-bassa) che veniva installato sulla scheda madre.
La Intel, già dalla realizzazione della CPU 80486, ha reso il microprocessore capace di effettuare calcoli in virgola mobile implementando il coprocessore matematico nei suoi sistemi.
In molti sistemi moderni, l’unità di calcolo in virgola mobile non è più una unità indipendente, ma è integrata nell’architettura del microprocessore. Esistono istruzioni, algoritmi e registri appositi per gestire il calcolo in virgola mobile. Ad esempio, i processori UltraSparc (prodotti dall’azienda Sun Microsystems) utilizzano le istruzioni VIS (Visual Instruction Set): un insieme di istruzioni ottimizzate per operare su dati a 8, 16 e 32 bit in aritmetica intera o in virgola mobile.
Le operazioni in virgola mobile, gestite dalla FPU, vengono eseguite tramite pipeline floating-point indipendenti. Si evita così di utilizzare la pipeline principale del microprocessore evitando di compromettere le prestazioni di tutto il sistema. Viceversa, le operazioni sui numeri interi e su quelli in virgola mobile, nei primi sistemi superscalari, venivano immesse in un’unica pipeline e separate solo in fase di esecuzione.
Un ulteriore esempio di processore che utilizza una FPU integrata è il PowerPC, una CPU con architettura RISC. La Floating Point Unit di questo processore è assai complessa, soprattutto nei modelli 604 e 604e. Quest’ultimi modelli presentano una FPU che implementa, nella sua architettura, tre stadi di execute. Il primo ciclo si occupa delle moltiplicazioni in virgola mobile a singola o doppia precisione; il secondo delle addizioni o confronti hardware; il terzo gestisce l’arrotondamento.
In alcuni sistemi informatici è possibile integrare più unità di calcolo in virgola mobile. L’ausilio di questa unità rende possibile la gestione di calcoli assai complessi che solitamente si riscontrano in applicazioni scientifiche, nei giochi tridimensionali e nei programmi di fotoritocco.
Sommario, Bibliografia e Sitografia
Vincenzo Barile
segue…