-Articolo a cura di Brentegani Bruno
Sono passati poco meno di 45 anni dalla progettazione dell’Intel 4004 il primo microprocessore integrato ad essere commercializzato. Era il 1971 e il nuovo nato di casa Intel, progettato dal fisico italiano Federico Faggin, avrebbe avuto un impatto enorme sul mondo dell’elettronica con risvolti significativi nella vita di tutti. Attualmente, a quasi mezzo secolo di distanza, ogni giorno sfruttiamo le innovazioni e le evoluzioni di quel progetto: personal computer, smartphone, lettori MP3, tutti dispositivi con sistemi a microprocessore “discendenti”, se così vogliamo definirli, dell’innovazione introdotta dagli ingegneri di Intel. Tuttavia i progettisti si trovano attualmente faccia a faccia con richieste di prestazioni sempre più esose ed una tecnologia sempre più al limite delle sue possibilità.
Le caratteristiche dell’Intel 4004, a confronto con i moderni processori, aiutano a comprendere lo scenario attuale e quello futuro dei processori in termini di performance e tecnologia costruttiva. Il 4004, composto da soli 2300 transistor, aveva una frequenza massima operativa di 740KHz, indirizzi a 12bit e poteva indirizzare fino a 640Byte di memoria RAM. Insomma, molto meno potente di un qualsiasi smartphone odierno, impensabile la competizione con i moderni processori, nei quali, grazie al progresso tecnologico sono presenti alcune centinaia di milioni di transistor, 560 milioni solo nell’Intel Core del 2010, con frequenze operative che si aggirano intorno ai pochi GHz, indirizzi da 64 bit e possibilità di indirizzare quantità enormi di memoria RAM.
Legge di Moore
Una progressione tecnologica così aggressiva da rendere obsoleta la legge di Moore, la quale prevedeva il raddoppio della potenza di un microprocessore ogni 18 mesi a parità di dimensioni, in poche decine di anni. Infatti, salvo qualche eccezione il trend previsto da Moore è stato rispettato fino ai primi anni ’90 con l’avvento dei processori della famiglia “Pentium” di Intel. La saturazione della legge di Moore e la sua parziale smentita di fatto arrivano nel momento in cui, per migliorare ulteriormente le prestazioni, un solo microprocessore non basta più e non è più possibile scalare le dimensioni dei transistor che compongono l’architettura del processore onde evitare problemi di affidabilità e di dissipazione del calore. Nasce quindi l’esigenza di porre più processori in parallelo per aumentare le performance, si crea quindi una spinta verso un evoluzione che riguarda la struttura dei sistemi a microprocessore.
Multicore computing
Il multicore computing è la risposta attuale all’evoluzione delle esigenze di performance richieste dai moderni sistemi ad alte prestazioni, che non solo sono in grado di servire miliardi di operazioni al secondo, ma devono anche risultare competitivi dal punto di vista dell’efficienza energetica.
L’unità di misura dell’efficienza energetica sono i MFLOPS/Watt ovvero, milioni di operazioni a virgola mobile per ogni watt di consumo. Ad oggi i più efficienti sistemi multi core raggiungono le centinaia di MFPLOS/Watt mentre i meno efficienti le decine di MFPLOS/Watt.
Ma come riescono i progettisti, almeno in linea di massima, a raggiungere tali performance? Quali sono le principali tecniche usate?
Principalmente alla base c’è un cambiamento del modo di intendere i sistemi a microprocessore, mandando di fatto in pensione l’architettura di Von Neumann, almeno nella realizzazione hardware, e spingendo in primo luogo su architetture sempre più eterogenee composte da sistemi con architetture dedicate solo a determinati compiti e strutture invece più flessibili, il tutto connesso attraverso architetture di comunicazioni che sempre più sì discostano dall’idea iniziale di bus di comunicazione.
Le strutture dedicate a compiti precisi sono i cosiddetti acceleratori hardware, sono strutture dedicate totalmente ad un solo compito che garantiscono velocità di esecuzioni e prestazioni energetiche elevatissime a scapito ovviamente della flessibilità. Un acceleratore hardware fa solo ciò per cui è stato pensato e progettato.
Le strutture più flessibili, che possono adempire a compiti diversi, possono essere acceleratori hardware programmabili in cui l’efficienza energetica viene leggermente compromessa per dare spazio alla flessibilità.
Bus vs. Network On Chip
L’architettura di comunicazione presenta un ulteriore evoluzione nascono in fatti le NOC (Network On Chip), vere e proprie reti nate per dare un flusso di dati enorme con una architettura che si distacca in parte da quella classica del bus condiviso. Le NoC, utilizzando i la tecnica dei canali virtuali e con protocolli di comunicazione studiati ad hoc, evitano congestione di dati e garantiscono un utilizzo delle risorse a disposizione molto efficiente, arrivando tranquillamente ad avere picchi di thrughput 100GB/s contro i 9GB/s di un normale bus di comunicazione, riuscendo comunque a contenere i consumi.
Infine non è da trascurare lo sviluppo di memorie sempre più veloci e di protocolli di comunicazione sempre più efficienti, sarebbe inutile infatti avere a disposizione risorse come quelle attuali utilizzate in maniera poco efficiente impattando non solo sulle funzionalità ma anche sull’efficienza energetica dell’intero dispositivo.