ALU - unita aritmetico logica

L’unità aritmetico logica (ALU) è la calcolatrice del microprocessore. La sua composizione interna permette di elaborare operazioni di base fra i dati che giungono dalla CPU.

aritmetico logica

I circuiti della ALU (unità aritmetico logica) permettono l’esecuzione di operazioni aritmetiche semplici, quali addizioni, sottrazioni, moltiplicazioni o divisioni. Inoltre la ALU consente di eseguire operazioni logiche come l'unione (OR) o l'intersezione (AND) di due insiemi.

Indice.

Fra i numerosi tipi di circuiti digitali che fanno parte di un computer, la ALU (unità aritmetico logica) dispone di circuiti che possono eseguire operazioni aritmetiche semplici, quali addizioni, sottrazioni, moltiplicazioni o divisioni, e di circuiti che permettono la realizzazione di operazioni logiche come l'unione (OR) o l'intersezione (AND) di due insiemi.

Ricordiamo ancora che sia le operazioni aritmetiche sia quelle logiche si realizzano con dati o parole formati da zero e uno. ln questo caso i dati rappresentano un numero secondo il sistema di numerazione binano.

La maggiore o minore complessità delle operazioni che un unità aritmetico logica (ALU) può realizzare dipende dalla quantità di circuiti che la formano. Un altro dei concetti che dobbiamo introdurre per spiegare il funzionamento del computer è quello dei registri.

Cosa sono i registri e cosa servono.

Questi ultimi sono un altro tipo di circuiti logici formati fondamentalmente da elementi che consentono la memorizzazione dei dati. Ciascun dato immagazzinato individualmente è detto “bit”. D'accordo con i valori utilizzati nell’elettronica digitale, un bit può avere valore 1 o 0. A seconda del numero di elementi da cui sono formati, i registri possono essere di 4, 8, 16 o 32 bit.

unita aritmetico logica

Un numero di bit memorizzati in un registro come unità è detto “parola”. Anche se non è indispensabile che il numero di bit che formano una parola sia uguale alle dimensioni del registro, in linea di massima si può dire che una parola può avere 4, 8, 16 o 32 bit. ln particolare un gruppo formato da 8 bit è detto “byte”.

A seconda del numero di bit da cui una parola è formata, questa può rappresentare un diverso numero di valori o significati. Una parola di un bit, per esempio, può valere 0 o 1; una di due bit può avere quattro significati (00, 01, 10 e 11); una parola di tre bit fino a otto valori differenti (000, 001, 010, 011, 100, 101, 110 e 111). ln generale una parola di n bit può contenere sino a 2n significati diversi. Per parole di 4, 8, 16 o 32 bit, il numero di possibili valori diversi sarà 16, 256, 65.536 (64K) o 4294.967296 (4M), rispettivamente.

L’ALU (unità aritmetico logica) ha due entrate (una per ciascun operando) e un'unica uscita per il risultato. Ciascuna entrata è collegata a due registri, chiamati “registro accumulatore” e “registro temporaneo”, e l'uscita è nuovamente collegata al primo. Oltre all'unità di calcolo e ai registri a cui è collegata, l’unità aritmetico-logica è unita a un terzo registro addizionale, il “registro di stato”.

Registro accumulatore.

ll registro accumulatore è, come indica il nome stesso, un registro collegato all'unità di calcolo in cui si memorizza il risultato dell'operazione. Normalmente contiene uno degli operandi necessari a realizzare l'operazione. Questa struttura permette di effettuare operazioni concatenate, vale a dire di utilizzare il risultato di un'operazione come uno degli operandi della successiva. ll secondo operando è ottenuto dal bus dei dati attraverso il registro temporaneo.

Registro di stato.

Collegato all’unità di calcolo è il “registro di stato”, detto anche “registro di controllo” o “registro flag” (flag, bandiera in inglese). Ciascuno dei bit del registro di controllo può valere 0 o 1 a seconda del risultato prodotto nell’ultima operazione della ALU (unità aritmetico logica). Nella maggior parte dei microprocessori i bit di questo registro sono identificati da una lettera. Tali bit possono indicare: se il risultato dell'ultima operazione è stato uno zero (bit Z=1) o no (Z=0); se il risultato è stato un numero negativo (bit N=1) o positivo (N=0); e se il risultato è stato un numero maggiore della capacità del registro accumulatore (bit C=1) o minore (0:0).

Questi bit vengono utilizzati come segnali o bandiere (donde appunto il nome di “registro flag”) per prendere decisioni quando, nel corso dell’esecuzione del programma, sono utilizzate istruzioni che lo richiedano.

ll registro di stato svolge anche un’altra funzione: conservare un altro tipo di segnali, non necessariamente collegati con l’ultima operazione effettuata nella ALU (unità aritmetico logica). Cosi, per esempio, memorizza in un determinato bit la cosiddetta “maschera d’interruzione”, la cui funzione sarà analizzata nella sezione dedicata alle periferiche.

Le dimensioni dei registri accumulatore e temporaneo nella ALU (unità aritmetico logica) dipendono dalla capacità dell’unità di calcolo di operare sui dati, che a sua volta corrisponde alle dimensioni della parola che può essere gestita dal microprocessore. Anche se i microprocessori possono operare internamente con parole di un maggior numero di bit, generalmente sono classificati in base alle dimensioni del bus dei dati posseduto. Il primi microprocessori erano a 8 bit, come I'MP6502 della Rockwell, FMPGBOO della Motorola, liMP8085 della lntel o lo Z80 della Zilog, e contribuirono alla diffusione dei personal. La generazione dei microprocessori a 16bit, come I”MP8086 della Intel o I'MP68000 della Motorola, aprì la strada ai microprocessori di 32 bit.

logo Ramb10