L’evoluzione dell’hardware è da sempre il volano dell’informatica: il software è sempre dietro all’hardware, per forza di cose, ed è sempre interessante vedere con l’evoluzione dell’uno condizioni l’evoluzione dell’altro. Negli ultimi anni stiamo assistendo ad una moda che ha preso trasversalmente tutti i principali produttori: l’integrazione nella CPU di quante più componenti possibile. Facciamo un po’ di storia.

Nel 1985 la statunitense MIPS rilascia il suo processore R2000, dotato di architettura RISC a 32 bit e integrante solamente un’unità di calcolo intero. La gestione della virgola mobile e delle eccezioni avveniva tramite due coprocessori appositi che non erano integrati all’interno dello stesso package e che dovevano essere gestiti separatamente. Ad esempio, per poter utilizzare il coprocessore 0 (virgola mobile) ed effettuare operazioni nel MIPS R3000 era necessario scrivere il codice seguente:

move $t0 $fp0 #muovo il valore contenuto nel registro a0 nel registro fp0
move $t1 $fp1 #idem come sopra, ma coi registri a1 e fp1
add.s $fp2 $fp0 $fp1 #esegue la somma in virgola mobile tra fp1 e fp0, il risultato in fp2

Anche i processori Intel 80386 non avevano al proprio interno una Floating Point Unit (FPU) e dovevano ricorrere ad un coprocessore esterno. Dal successore, 80486 o i486, la FPU venne integrata all’interno dello stesso die del processore. Con il Pentium venne aggiunta un’unità per l’elaborazione multimediale (con le relative istruzioni MMX), fino ad arrivare ai giorni nostri in cui il north bridge è stato integrato all’interno della CPU (controller di memoria, ecc) assieme alla GPU. In futuro anche il southbridge verrà integrato nello stesso chip.

La tendenza è quella di accentrare tutto nella CPU per eliminare quanto più possibile elementi esterni. Se questo è da un lato un bene, perché significa che c’è meno manutenzione da fare e meno possibilità di rotture e malfunzionamenti, dall’altro lato è un fatto negativo perché preclude la possibilità di scelta: se oggigiorno posso permettermi di scegliere una scheda madre piuttosto che un’altra anche in virtù delle caratteristiche come il chipset, la quantità e la tipologia delle porte di espansione, e così via.

E’ già da tempo che AMD propone le sue APU, o Accelerated Processing Unit, rappresentate nel concreto dal progetto Fusion. Tali CPU, la cui ultima generazione è rappresentata dai processori con nome in codice Trinity, integrano al loro interno CPU, GPU, northbridge, controller di memoria, controller PCI-Ex e UVD (Unified Video Decoder). Una bella differenza rispetto all’Intel 80386! Proprio l’integrazione di queste componenti all’interno della CPU fa sorgere la domanda: si può parlare ancora di CPU?

La risposta, a mio parere, è un sì secco. CPU sta per “Central Processing Unit”, o “Unità di Calcolo Centrale” e significa che è l’unità che si occupa dell’elaborazione dei dati e della loro gestione. Tanto più troviamo integrazione all’interno di questa dei componenti, tanto più val la pena di sottolineare il fatto che è l’unità centrale. L’integrazione di CPU, GPU, controller di memoria e PCI-Ex, northbridge ed altri componenti rende di fatto la CPU l’elemento fulcro del sistema a cui ruota attorno tutto il resto, e la rende sempre più simile ai SoC (system-on-a-chip). Tali chip, già adottati da tempo in ambito mobile, sembrano destinati a propagarsi anche in ambito PC e a diventare il centro dell’elaborazione di quasi tutti i dispositivi, dagli smartphone di fascia bassa alle workstation grafiche da decine di migliaia di dollari.

Coniare nuove terminologie come APU, HPU e così via ha poco senso: rimangono CPU a tutti gli effetti, anzi, sono ancora più centrali rispetto al passato. Il destino delle future CPU è di accentrare sempre più elementi, con conseguenti riduzioni di prezzo e aumento della capacità elaborativa. Alla fine anche CPU e GPU si fonderanno e saranno un’unica cosa. Siete pronti a vedere le CPU del futuro?