All'edizione Fall 2008 dell'
Intel Developer Forum sono stati rivelati nuovi dettagli sull'architettura
Larrabee destinata ai chip di Intel per applicazione legate al mondo della grafica, ma non solo. Non si tratta infatti di qualcosa di simile agli acceleratori grafici presentati ormai molti anni fa da Intel, ma di qualcosa di innovativo e decisamente sofisticato che ha nella flessibilità e nella compatibilità con il mondo x86 due dei principali punti di forza.
Una delle premesse per spiegare lo sviluppo di Larrabee è che gli sviluppatori software hanno bisogno di una
elevata programmabilità dalla pipeline grafica dei nuovi componenti e proprio su questo versante si sono mossi i progettisti di Intel.

Uno dei punti chiave del progetto Larrabee è infatti la
combinazione fra il parallelismo delle GPU (Graphics Processor Unit) e la programmabilità di tipo General Purpose tipica dei processori basati sull'architettura Intel x86, quella usata fin dai tempi del primo PC.Questa combinazione offre una elevata flessibilità ai programmatori per una gamma molto ampia di progetti.
Per ora la focalizzazione è principalmente sulla grafica, e sul versante della compatibilità con le attuali applicazioni, quelle basate su DirectX o OpenGL, non ci sono molte preoccupazioni: Intel dichiara che gli attuali giochi funzionano molto bene su Larrabee, ma questa nuova architettura è in grado di offrire molto di più in futuro.
[tit:Gli elementi principali dell'architettura]
Dal punto di vista dell'architettura, Larrabee
utilizza più core x86 e la pipeline scalare è derivata da quella di tipo dual-issue dei processori Pentium. A questo si
aggiungono però funzionalità come il multi threading, le estensioni a 64 bit e un sofisticato sistema di prefetching. Larrabee
supporta inoltre fino a 4 thread in esecuzione, con registri separati per ogni trhread. Da notare che l'esecuzione delle istruzioni è di tipo
in-order, aspetto che permette di ottenere risultati migliori nei calcoli paralleli rispetto alle CPU con esecuzione di tipo
out-of-order in termini di efficienza per Watt e per superficie.Questa soluzione offre anche miglioramenti in termini di flessibilità e di programmabilità rispetto alle GPU standard. Nelle GPU solitamente, infatti, molte operazioni sono indirizzate verso blocchi specifici, dedicati a compiti particolare come per esempio la rasterizzazione e il blending post shader. In realtà anche in Larrabee ci sono delle sezioni specializzate, come per esempio quelle destinate al filtraggio delle texture, ma il numero è limitato e la maggior parte delle orazioni è eseguito dai core x86.

Oltre ai core x86 c'è un
processore vettoriale (VPU) e alcune sezioni con logica appositamente a dedicata compiti specifici. Questo componente supporta un'ampia gamma di istruzioni con dati sia di tipo integer che floating point. à‰ interessante notare come la sezione VPU occupi circa un terzo della superficie del chip, ma è responsabile in larga misura delle prestazioni nei calcoli su integer e floating point.
Completano il processore Larrabee alcuni indispensabili componenti come il controller per l'I/O con la memoria e altri elementi eventualmente necessari. Per esempio se si usa l'architettura di Larrabee per realizzare una GPU stand alone, occorre implementare un controller per il bus PCI.
[tit:Le cache e il bus]
La presenza di una cache coerente al secondo livello permette di migliorare l'efficienza delle comunicazioni fra i diversi processori e un accesso con una ampia larghezza di banda ai dati locali da parte dei core. Ogni core ha accesso alla sua cache coerente
al secondo livello da 256 KByte. La cache al
primo livello, invece, è separata in 32 KByte per le istruzioni e 32 KByte per i dati.
I core comunicano fra loro grazie a
rete di interconnessione a anello a ampia banda. Si tratta di un sistema di comunicazione bidirezionale che permette ai core, ma anche alle cache al secondo livello e ad altri blocchi logici, di comunicare tra loro. L'architettura, nel caso si implementino più di 16 core, di di utilizzare diversi anelli più corti collegati fra loro. Questo sistema di collegamento permette anche alle cache al secondo livello di accedere alla memoria.
[tit:La pipeline]
Un aspetto interessante è che lo
scheduling dei task è gestito completamente via software, piuttosto che da sezioni logiche specifiche, come invece accade in altri casi.

La pipeline grafica di rendering è gestita dal software programmabile e usa la tecnica di binning (una tecnica di pre elaborazione dei dati) per limitare la necessità di larghezza di banda con la memoria, limitare i blocchi e i colli di bottiglia della serializzazione e aumentare le opportunità di usare il parallelismo, uno degli elementi chiave del progetto. Per la parte di elaborazione, l'architettura permette di migliorare le prestazioni in diversi casi, come nel casi di applicazione di effetti di filtraggio particolari Un esempio fatto all'IDF è quello dell'irregular Z-Buffer, che permette di migliorare la qualità di visualizzazione smussando gli artefatti negli angoli.
Come una CPU, Larrabee può compilare e eseguire gli shader e essere utilizzate per l'elaborazione delle immagini, ma vista la versatilità , può fare anche molto altro. Un esempio sono i complessi calcoli legati alla fisica presenti nei videogiochi, oppure l'elaborazione per il ray tracing in tempo reale. Altri possibili campi di utilizzo sono i calcoli per le simulazioni di fenomeni fisici.
Se questo articolo ti è piaciuto e vuoi rimanere sempre informato con le notizie di
BitCity.it iscriviti alla nostra
Newsletter gratuita.