CPU Design: la ALU operaia

Uno dei concetti più misteriosi e intriganti per la giovane matricola di ingegneria è quello di ALU. Sai che è qualcosa che sta dentro la CPU, non sai bene che cos’è né che cosa faccia, ma già perché sta dentro la CPU deve essere qualcosa di incredibile. Hai saputo? Quello si è progettato una ALU! Caspita! Ma in realtà una ALU non è niente di fantascientifico. La ALU è la manodopera della CPU, è il blocco di circuiti che fa tutto il lavoro, ma niente di più. Progettare una ALU significa mettere insieme un po’ di circuiteria in grado di eseguire le operazioni che si vuole che la CPU esegua per noi, ma il suo progetto si riduce sostanzialmente a progettare hardware aritmetico-logico dotato di una certa efficienza. In questo articolo vi parleremo di una serie di circuiti che la vostra CPU potrà usare per svolgere le operazioni più comuni, quelle che sicuramente vorrete che faccia. Il resto è alla vostra fantasia.

POTENZA DI CALCOLO

Si sente dire spesso che l’ingegno umano è capace di miracoli, e in effetti è vero. Pensate al computer o al telefono attraverso il quale state leggendo, alla rete di cavi e calcolatori e router e modem e switch che si scambiano incessantemente dati. Pensate ai satelliti attraverso i quali i dati rimbalzano, o alle sonde che si inoltrano nello spazio profondo e questi dati li mandano indietro. Quasi ogni angolo del mondo ormai contiene uno di questi prodigi. Ma si sente dire altrettanto spesso che l’ingegno umano è capace anche di cose tremende, e anche questo è vero. Quello di cui non si sente parlare spesso è di come generazioni di studenti siano state afflitte da una di queste nefandezze. Se frugaste in quello scatolone polveroso che vi guarda da sopra l’armadio, probabilmente trovereste una delle più terrificanti macchine di tortura mai concepite dalla mente umana: il regolo calcolatore (Figura 1).

 

Figura 1: Il regolo calcolatore.

Figura 1: il regolo calcolatore.

 

Gli ingegneri più vecchia scuola che hanno avuto a che fare con questo aggeggio sanno quanto fosse difficile da usare, e allo stesso tempo quanto fosse potente. La prossima volta che passano Apollo 13 in televisione fate caso al passaggio in cui gli ingegneri della NASA utilizzano i regoli per calcolare la traiettoria di rientro della navicella spaziale. Niente calcolatrici, all’epoca: la trigonometria sferica si calcolava su un righello. Gli ingegneri più giovani tra noi, che non hanno avuto di questi problemi, forse sottovalutano l’importanza di avere una buona calcolatrice sotto mano quando si deve fare un progetto, ma ancora oggi, circondati da oggetti in grado di fare calcoli, quella macchinetta piena di tasti è un grande strumento di lavoro.

In effetti, se ci pensate, una calcolatrice è il più semplice computer che possiate concepire: ogni volta che premete un tasto date, alla batteria di circuiti all’interno, una nuova istruzione da eseguire. Certe calcolatrici, addirittura, prima vi fanno inserire gli operandi, e poi decidere la funzione. È come se, da un certo punto di vista, eseguiste a mano due LD dalla vostra testa ai registi della calcolatrice e poi il calcolo desiderato. Una calcolatrice, sostanzialmente, è l’esempio perfetto di ALU: un insieme di circuiti aritmetico-logici che esegue le vostre istruzioni.

 

Figura 2: Schema di principio di una ALU.

Figura 2: schema di principio di una ALU.

 

Due sono dunque le cose che ci servono per progettare la ALU: una schiera di circuiti che lavorino in parallelo sui nostri dati, e un modo per selezionare l’uscita (ossia la funzione), che vogliamo (Figura 2). Nel caso della calcolatrice l’ingresso del multiplexer lo decide il tasto che abbiamo premuto; nel caso di un processore dovremo generarlo a partire dall’opcode dell’istruzione corrente. I vari circuiti dovranno avere, oltre agli ingressi dati, anche ulteriori ingressi di selezione: il blocco per le operazioni booleane, ad esempio, vorrà degli ingressi per decidere quale operazione logica eseguire, il blocco per le operazioni aritmetiche vorrà sapere se vogliamo fargli eseguire una somma, una sottrazione, ecc., e così via. Altri blocchi possono essere aggiunti in fondo alla colonna: basta allargare il multiplexer a destra, e ovviamente generare opportunamente i segnali di controllo a partire dagli opcode. Della selezione dei segnali di controllo vi parleremo nel prossimo articolo: qui il problema è cosa mettere dentro gli scatolini. [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 4063 parole ed è riservato agli abbonati PRO. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici MAKER e PRO inoltre potrai fare il download (PDF) dell'EOS-Book e di FIRMWARE del mese. ABBONATI ORA, è semplice e sicuro.

Abbonati alle riviste di elettronica

Una risposta

  1. Riccardo Ventrella Riccardo Ventrella 21 maggio 2018

Scrivi un commento

EOS-Academy
EOS-Academy