CPU Design: introduzione

Molti di voi probabilmente si saranno chiesti come funziona un microprocessore. Alcuni probabilmente si saranno anche dati una risposta, frugando su internet, o magari su qualche libro. Ma quanti di voi si sono detti “cavolo, mi piacerebbe proprio progettarne uno e fare concorrenza alla Intel!” Bene, questo e i successivi articoli sono proprio per quelli di voi affetti da manie di grandezza e che pensano di poter fare meglio della Intel. Vi guideremo passo passo nella progettazione di un moderno processore e, se siete abili con il VHDL, potrete anche implementarvelo su scheda. Iniziamo con questo articolo presentando l’architettura di Von Neumann e a grandi linee i componenti da essa definiti, ossia registri, ALU e program counter. Approfondiremo i vari punti negli articoli successivi.

NOI CHE NEGLI ANNI OTTANTA

Per noi bambini cresciuti negli anni ottanta, la vista di un computer non rientrava nell’ovvio come accade oggi, ma era qualcosa di affascinante e sorprendente. C’erano i Gameboy, certo, e i SegaMegaDrive, e Super Mario ovunque. C’era qualcuno che aveva il Commodore 64 e qualcun altro che trafficava con gli Amiga. E poi c’era chi aveva la scatola delle meraviglie, con lo schermo a colori, le finestre che si aprivano e chiudevano, e foto e documenti e videogiochi e paint per fare gli scarabocchi, e c’erano i cinque minuti che servivano per accendere il computer e i due per lanciare Word, ed era comunque dura spiegare al nonno che quella non era una televisione.

Era una cosa che prendeva, e prendeva al punto che ad un certo punto iniziavi a dare i numeri. Letteralmente. “Io ho 4k di RAM!” “Sei un pivello! Io ho 512 mega di hard disk!” “Il mio ha la scheda video dedicata!” Prendeva anche perché non sapevi bene che stavi dicendo. Sapevi quando la RAM era “poca” o quando era “tanta”, ma non di preciso che fosse una RAM o perché fosse un bene che fosse tanta. E poi c’erano tanti concetti strani. C’era la scheda madre, e c’era la scheda audio e quella video, c’era il nerd che parlava di coprocessore matematico e poi c’era lui, l’eroe, il mito, quello che è riuscito ad overclockare la CPU, qualunque cosa questo significasse. Avevi quindici anni e sgranavi gli occhi, un po’ perché non sapevi bene che cosa fosse un clock, un po’ perché Lui era riuscito a mettere mano al “cervello” del computer, al rettangolino misterioso che faceva funzionare tutto.

Crescendo, probabilmente il primo pugno nello stomaco che prende un bambino normale è la scoperta che Babbo Natale non esiste. Il primo pugno nello stomaco per un bambino nerd è forse lo scoprire che la CPU non è assolutamente un cervello, e che un lombrico è spaventosamente più intelligente del tuo computer. Scopri che la CPU è semplicemente un’ottima ape operaia, che esegue alla perfezione gli ordini che le dai, ma nulla di più. Non è in grado di pensiero indipendente: il massimo che riesce a fare è crashare quando il programma che la guida ha qualche baco.

Poi vai all’università e al primo anno, se sei sopravvissuto ad Analisi I e II e a Fisica I ed Elettromagnetismo, al primo corso di elettronica ti aspetti Guerre Stellari. Ma poi ti spiegano che in realtà il concetto odierno di architettura di un calcolatore è vecchio ormai di ottant’anni, e invece di pensare alla magia pensi a valvole e relè e schede perforate. Poi ti presentano l’equazione di Poisson, ti parlano di elettroni e lacune, di giunzioni pn, di AND, OR e NOR, di flip-flop e logica combinatoria. Ti fanno vedere come sia possibile scrivere sostanzialmente qualsiasi programma a partire da quattro istruzioni in croce. E poi vai a casa, inizi a giocare a Doom e ad un certo punto ti rendi conto che la magia è ancora lì. Perché in effetti, com’è possibile che quattro porte logiche e una manciata di istruzioni possano produrre tanto?

Già, com’è possibile?

DIETRO LA MAGIA

L’anno era il 1945 e il nome era John Von Neumann. Il progetto aveva il tipico imperscrutabile acronimo dei progetti militari: EDVAC. Si trattava di una serie di enormi armadi pieni di valvole, diodi e nastri magnetici, ed era anche un computer. Non era il primo, ce n’erano stati alcuni prima dell’EDVAC, il più famoso dei quali probabilmente fu un altro acronimo militare, l’ENIAC. Con i predecessori condivideva la tecnologia e le dimensioni, ma a differenza di essi si appoggiava su una nuova, potente idea, quella di architettura programmabile. Mentre sull’ENIAC il programma da eseguire era fisicamente cablato da un punto all’altro dei pannelli contenuti all’interno dei vari armadi, sull’EDVAC il circuito era fisso, e il programma veniva caricato su una memoria. Per far eseguire un nuovo compito al computer, mentre con l’ENIAC bisognava modificare fisicamente la circuiteria, con l’EDVAC bastava cambiare il programma memorizzato. Di massima, l’EDVAC era un gigantesco circuito di controllo collegato ad una memoria e a dei dispositivi per l’input/output dei dati. 

 

Figura 1: Architettura di Von Neumann

 

L’EDVAC conteneva 6000 valvole, 12000 diodi, consumava 56 kW, e pesava quasi otto tonnellate. Il vostro moderno PC, che contiene 700 milioni di transistor, che consuma 100 W scarsi, e che pesa giusto qualche chilo, ha la stessa, identica architettura interna (Figura 1). Gli ingegneri  [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 3656 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

2 Commenti

  1. Maurizio Di Paolo Emilio Maurizio Di Paolo Emilio 7 febbraio 2018
    • Cristiano Scavongelli Cristiano Scavongelli 8 febbraio 2018

Scrivi un commento

EOS-Academy
EOS-Academy