Unità logica-aritmetica (ALU)

Un'unità logica-aritmetica (ALU) è la parte di un processore del computer (CPU) che esegue operazioni aritmetiche e logiche sugli operandi nelle parole di istruzione del computer. In alcuni processori, l'ALU è diviso in due unità, un'unità aritmetica (AU) e un'unità logica (LU). Alcuni processori contengono più di un AU, ad esempio uno per Punto fisso operazioni e un altro per virgola mobile operazioni. (Nei personal computer le operazioni in virgola mobile vengono talvolta eseguite da un'unità in virgola mobile su un chip separato chiamato coprocessore numerico.)

In genere, l'ALU ha accesso diretto in ingresso e in uscita al controller del processore, alla memoria principale (memoria ad accesso casuale o RAM in un personal computer) e ai dispositivi di input / output. Gli ingressi e le uscite scorrono lungo un percorso elettronico chiamato bus. L'ingresso consiste in una parola di istruzione (a volte chiamata parola di istruzione della macchina) che contiene un codice di operazione (a volte chiamato "codice operativo"), uno o più operandi e talvolta un codice di formato. Il codice dell'operazione indica all'ALU quale operazione eseguire e gli operandi vengono utilizzati nell'operazione. (Ad esempio, due operandi potrebbero essere sommati o confrontati logicamente.) Il formato può essere combinato con il codice operativo e indica, ad esempio, se si tratta di un'istruzione in virgola fissa o in virgola mobile. L'output consiste in un risultato che viene inserito in un archivio registro e le impostazioni che indicano se l'operazione è stata eseguita correttamente. (In caso contrario, una sorta di stato verrà memorizzato in una posizione permanente che a volte viene chiamata parola di stato della macchina.)

In generale, l'ALU include posizioni di memorizzazione per gli operandi di input, gli operandi che vengono aggiunti, il risultato accumulato (memorizzato in un accumulatore) e risultati spostati. Il flusso di bit e le operazioni eseguite su di essi nelle sottounità dell'ALU è controllato da circuiti gated. Le porte in questi circuiti sono controllate da un'unità logica di sequenza che utilizza un particolare algoritmo o sequenza per ciascun codice di operazione. Nell'unità aritmetica, la moltiplicazione e la divisione vengono eseguite mediante una serie di operazioni di addizione o sottrazione e spostamento. Esistono diversi modi per rappresentare i numeri negativi. Nell'unità logica, è possibile eseguire una delle 16 possibili operazioni logiche, come confrontare due operandi e identificare dove i bit non corrispondono.

Il design dell'ALU è ovviamente una parte critica del processore e vengono continuamente sviluppati nuovi approcci per velocizzare la gestione delle istruzioni.