System-on-a-chip

Da Wikipedia, l'enciclopedia libera.

Un system on a chip (grafia alternativa: "system-on-a-chip"; abbreviazione utilizzata comunemente: "SoC"), in italiano: Sistema su circuito integrato è un circuito integrato che in un solo chip contiene un intero sistema, o meglio, oltre al processore centrale, integra anche un chipset ed eventualmente altri controller come quello per la memoria RAM, la circuiteria input/output o il sotto sistema video.

Un singolo chip può contenere componenti digitali, analogici e circuiti in radiofrequenza in un unico integrato. Questa tipologia di integrati viene utilizzata comunemente nelle applicazioni embedded, date le dimensioni ridotte che essi raggiungono con l'integrazione di tutti i componenti.

Se non può essere realizzato un SoC una buona alternativa sono i cosiddetti system in package (SiP), ovvero un singolo package che racchiude in sé diversi circuiti integrati.

Struttura di un SoC[modifica | modifica wikitesto]

Microcontrollore basato su system-on-a-chip

Un tipico sistema SoC comprende:

I vari blocchi funzionali sono collegati tramite BUS proprietari o BUS standard come il BUS AMBA progettato da ARM. Una gestione DMA dei trasferimenti tra la memoria e i bus esterni incrementa le prestazioni senza appesantire il processore.

Progetto di un SoC[modifica | modifica wikitesto]

Fasi del progetto di un SoC

Un Soc è composto dai blocchi descritti sopra ma anche dal software che controlla i vari componenti e li fa interagire. I programmi sono progettati in modo da creare dei flussi paralleli all'interno del chip in modo da seguire un approccio parallelo.

Molti SoC sono sviluppati a partire da blocchi standard che descrivono i componenti hardware e dai driver che gestiscono i blocchi. Di particolare importanza sono i driver che gestiscono l'interfacciamento con i bus standard. I moduli hardware sono uniti in un unico integrato tramite strumenti CAD mentre i singoli driver sono uniti in un unico programma tramite opportuni ambienti di sviluppo.

Il progetto di un sistema SoC passa per la fase fondamentale dell'emulazione. I moduli del sistema SoC vengono caricati entro un chip FPGA mentre il programma viene memorizzato dalla RAM dell'ambiente di sviluppo. Questo permette di testare e affinare il chip SoC in modo rapido e semplice dato che l'emulatore replica perfettamente il chip SoC ma consente una modifica rapida dell'hardware modificando semplicemente il programma caricato dall'FPGA.

Dopo la fase di emulazione il chip SoC segue le fasi classiche di sviluppo di un chip custom.

Il chip viene sottoposto alla fase di verifica. I linguaggi tipo Verilog e VHDL sono utilizzati per la verifica dell'integrato. Per integrati complessi si utilizzano anche sistemi come SystemVerilog, SystemC e Vera. I difetti e gli errori individuati dalla fase di verifica sono riferiti alla progettazione per le opportune correzioni. Normalmente il 70% del tempo di sviluppo di un chip viene utilizzato durante la fase di verifica.

Realizzazione[modifica | modifica wikitesto]

I SoC possono essere realizzati con diverse tecnologia, tra le quali:

I sistemi SoC normalmente sono dispositivi a basso consumo e a basso costo oltre ad avere un'affidabilità maggiore dei sistemi multichip che rimpiazzano. Il numero ridotto di componenti inoltre riducono il costo di montaggio e le dimensioni del prodotto.

Tuttavia come tutti i progetti VLSI gli elevati costi di sviluppo di soluzioni custom incidono in misura notevole sui costi totali e quindi questi integrati in genere finiscono per costare più di soluzioni basate su integrati generici.

Alcuni esempi di system on a chip[modifica | modifica wikitesto]

Intel, il più famoso produttore al mondo di microprocessori, aveva tentato già nel 2001 di sviluppare un SoC, grazie al progetto Timna (destinato ai PC economici) ma che venne poi abbandonato per questioni strategiche in favore del primo Pentium M Banias che era sempre un processore tradizionale.

Successivamente Intel non ha più parlato di SoC nelle sue presentazioni alla stampa o al pubblico, continuando a percorrere uno sviluppo hardware tradizionale. Altre compagnie tuttavia presentarono alcuni prodotti SoC e tra queste una delle più attive negli anni è stata VIA che li destinava però soprattutto per il settore embedded.

Nel 2007 Intel è tornata a parlare di SoC con il progetto Tolapai, destinato anch'esso proprio al settore embedded, e che integra al suo interno il controller della memoria RAM e la circuiteria di input/output. Tolapai quindi è un processore perfettamente integrato con il chipset, e in particolare sia con il Northbridge, sia con il Southbridge.

Quasi contemporaneamente è stato annunciato anche il prossimo arrivo del primo processore SoC destinato all'impiego nei sistemi ultra portatili UMPC, Lincroft, che sarà alla base della futura piattaforma Intel Moorestown prevista inizialmente per il 2009.

Altri sistemi SoC ormai disponibili da anni sono per esempio Nvidia Tegra, Qualcomm Snapdragon, Samsung Exynos, ST-Ericsson NovaThor, i.MX di Freescale Semiconductor, Apple Ax e ZiiLABS di ZMS.

I SoC sono il futuro?[modifica | modifica wikitesto]

Il rinato interesse per le soluzioni SoC, seppure timidamente, lascia intravedere uno scenario futuro in cui sempre più chip possano venir sviluppati secondo questo approccio. D'altra parte, la crescente evoluzione dei processi produttivi (attualmente giunti alle soluzioni a 32 nm) e la tendenza iniziata nel 2005 con le prime CPU dual core a produrre processori con un numero crescente di core, non può che semplificare la transizione verso soluzioni di questo tipo.

Lo storico passaggio dei processori da single core a dual core ha visto incrementi prestazionali nell'ordine del 70% (ovviamente con software sviluppati secondo criteri di calcolo parallelo e in grado quindi di avvantaggiarsi della presenza di 2 core elaborativi), mentre il passaggio a soluzioni a 4 core ha visto ridursi la velocità dell'aumento di prestazioni, in misura di circa il 30%. Si tratta di limitazioni ampiamente previste, in quanto all'aumento del numero di core, diventa sempre più difficile ripartire equamente il carico di lavoro sulle diverse unità di elaborazione e si aggiungono latenze e "colli di bottiglia". Proprio per questo motivo si pensa che in futuro i core non saranno più omogenei, ma eterogenei, con una o più unità di elaborazione specificatamente dedicata ad un particolare tipo di elaborazione.

Si può tranquillamente parlare di queste soluzioni come di soluzioni SoC, con più o meno livelli di integrazione, ma nelle quali l'idea originale rimane immutata.

Produttori[modifica | modifica wikitesto]

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]