I processori offrono supporto grafico sofisticato per una realtà sempre più visionaria

Di Jon Gabay

Contributo di Electronic Products


Limitarsi a comunicare con qualche riga di semplice testo non è più una strategia vincente. Allo scopo di attrarre e fascinare l'attenzione in un mondo di stimoli sensoriali rutilanti, qualsiasi visualizzazione di dati deve far leva sulla nostra natura estetica. Come risultato, anche le informazioni di base devono essere presentate con colori vibranti, ombreggiature complesse, animazioni e video.

Tuttavia, alta risoluzione, tavolozze di milioni di colori e animazioni in tempo reale mettono a dura prova la capacità dei processori di costruire, effettuare il rendering e visualizzare il risultato. Ci aspettiamo di vedere pagine nitide, senza artefatti o sfarfallii. Con il crescere della risoluzione dei display, la quantità dei contenuti, l'elaborazione in background e il trasferimento dei dati per ciascuna pagina, oltre alla capacità di rendere tutto ciò visibile, assorbono sempre più risorse del processore, specie in termini di tempo e memoria.

Questo articolo tratta di processori di fascia alta con potenza, risorse e ingegnerizzazione dell'architettura sufficienti a supportare grafica avanzata. Tale grafica in genere adotta percorsi dati interni a 32 bit o più e si avvale di clock ad alta velocità. La RAM cache interna ad alta velocità, così come la DMA interleaved sono anch'esse importanti. Tutti componenti, le schede dati, i tutorial e i kit di sviluppo che vengono citati sono reperibili nel sito Web di DigiKey.

Requisiti e scelte

La maggior parte di noi non è così fortunata da vedere i propri progetti prodotti in milioni di esemplari. Di conseguenza, spesso gli ASIC non sono un'opzione vantaggiosa nel rapporto tra costo/tempo/rischio ed efficacia, dunque non resta che specificare FPGA di maggior costo o un processore sufficientemente "corposo" da poter gestire la grafica e insieme altre funzioni di sistema.

Oggi, un video non è un compito banale. Formattare dati, arbitrare sprite, eseguire overlay, scrolling, miscelazione dei colori e tanto altro implica attività che si appoggiano pesantemente sull'elaborazione e sui percorsi. Il rendering e lo shading tridimensionale aggiungono un altro layer di funzionalità necessaria che assorbe risorse e tempo del processore.

Anche se alcuni processori ad alte prestazioni possono essere programmati come processori dedicati per periferica grafica, tali componenti possono anche gestire molte altre attività aggiuntive. Inoltre, le rispettive potenti periferiche possono includere un'interfaccia tattile capacitiva, suono stereo, porta Ethernet e altri protocolli di comunicazione per consentire al processore di applicazione di lavorare a pieno ritmo col minor numero possibile di interruzioni. È un po' come disporre di un altro core. In genere sono presenti anche una DMA ad alte prestazioni e una logica di interfaccia del bus esterno, oltre a numerosi I/O generici.

Un tipico tablet può avere un display TFT da 1024 x 600 a 2560 x 1600 pixel. Questo ampio intervallo impone requisiti severi sulle prestazioni di un sistema in particolare sulla quantità di risorse di memoria necessarie (Tabella 1). Con una tavolozza di colori a 24 bit, un display da 2560 x 1600 come quello usato sui tablet Samsung Galaxy, Amazon Kindle e Toshiba, ogni singola pagina richiede oltre 12 Mbyte di RAM.

Display di tablet tipici rispetto alla memoria per pagina

Tabella 1: Display di tablet tipici rispetto alla memoria per pagina.

Anche con un bus dati a 32 bit, per ridisegnare completamente uno stream video a 30 frame al secondo (fps), ogni secondo occorrono 368.640.000 trasferimenti in memoria a 24 bit per singolo ciclo. Ovvero 2,7 ns per trasferimento, non trascurabile per un processore che sta spostando dati ed eseguendo il rendering. Anche se non si esegue la decodifica in tempo reale di video in formato compresso come gli MPEG, il rendering non è poi così semplice come si potrebbe pensare.

Altro fattori importanti sono le velocità della RAM cache interna ad alta velocità e dell'interfaccia bus esterno. Ad alte velocità di clock, gli stati di attesa sulla RAM del bus esterno manderanno in crisi i processori e degraderanno le prestazioni. Una buona interfaccia SDRAM sull'interfaccia bus esterno del processore significa che le pagine possono essere aggiornate in background, consentendo al processore di lavorare totalmente sul rendering.

È possibile dedicare al controllo grafico un processore ad alte prestazioni, specialmente se ha la possibilità di trasferire i dati dentro e fuori molto velocemente. Un esempio di buona implementazione di interfaccia SDRAM ad alta velocità lo possiamo trovare in MPC8245LVV333D di Freescale, imperniato sul core Power PC MPC603e dell'azienda e che rientra nella serie MPC82xx. Questo processore a 32 bit, 352 pin lavora con clock a 333 MHz, mentre altre versioni della stessa famiglia possono andare ancora più veloci. Il processore è disponibile nelle versioni a 2, 1,8 e 1,5 V, il che può aiutare a ridurre i consumi di questo dispositivo da 4,5 milioni di transistor.

MPC8245 combina l'architettura del Power PC con un bridge PCI in modo che i progettisti possano rapidamente disegnare sistemi utilizzando le periferiche progettate per PCI e altre interfacce standard. Il suo core può funzionare a diverse velocità, consentendo ai progettisti di modulare le prestazioni in funzione del consumo energetico. Il syncing e il driving della SDRAM sono gestiti in modo indipendente dall'unità di controllo delle periferiche che inoltre esegue l'interleave della funzionalità della DMA nella logica dell'interfaccia bus esterno, consentendo il trasferimento dati autonomo ad alta velocità ai display e lasciando la potenza del processore libera di eseguire il rendering in background (Figura 1).

Un blocco processore efficiente abbinato a un'interfaccia di memoria esterna avanzata ad alta velocità

Figura 1: Un blocco processore efficiente abbinato a un'interfaccia di memoria esterna avanzata ad alta velocità è un buon candidato per un processore grafico dedicato e può fungere da periferica semi-autonoma di fascia alta. Per alcune applicazioni può essere la soluzione ottimale e completa.

Notare l'interfaccia SDRAM che supporta fino a 2 GB di SDRAM. Il bus a grande larghezza di banda può usare cicli di trasferimento a 32 o 64 bit. Il controller DMA integrato consente operazioni di scatter-gathering e supporta il chaining della DMA che collega automaticamente i buffer DMA. Ciò elimina un altro compito dall'agenda del micro principale.

Texas Instruments, sviluppatore pionieristico di imaging e grafica digitale, offre validi concorrenti, grazie ai suoi processori OMAP35x e relativi strumenti. La piattaforma OMAP combina un potente core ARM® Cortex™-A8 superscalare a 600 MHz con quattro possibili processori di applicazione OMAP.

Di particolare interesse OMAP3530, ritenuto il migliore elaboratore di grafica, video e immagini, che offre supporto diretto per streaming video, gaming mobile 2D/3D e acquisizione video. OMAP3530 contiene un acceleratore grafico e porte dedicate di ingresso/uscita video.

In particolare si apprezza il supporto per DMA a 64 canali e l'interfaccia DDR a bassa potenza. Come per altri processori, la RAM prende una grande area del die e in questo caso i 64 K di RAM per uso generico sono in grado di mantenere tipicamente una o due linee di scansione alla volta. Altrettanto vantaggiosa è la disponibilità di 256 Kbyte di RAM cache su chip di livello 2 in grado di mantenere template e alcune informazioni grafiche in background. Si noti anche la disponibilità di ulteriori 96 Kbyte di RAM per il rendering e l'uso di DSP. Nel 3530 è incluso anche un acceleratore grafico hardware.

Questi componenti sono supportati sia da TI che da altri sviluppatori di tool. BeagleBoard di Circuitco Electronics supporta OMAP3530 e offre connessioni alle interfacce SDRAM, S-Video e DVI-D, oltre che a tutti i segnali di interfaccia LCD (Figura 2). Presso DigiKey online, è disponibile un modulo didattico per BeagleBoard e un video illustrativo sul suo uso in ambiente Linux per pilotare un miniproiettore, strumento interessante come interfaccia video.

La BeagleBoard sfrutta a fondo l'architettura del processore OMAP

Figura 2: La BeagleBoard sfrutta a fondo l'architettura del processore OMAP ed è utilizzabile come potente piattaforma di test e sviluppo, in particolare per progetti con Linux embedded. Idoneo specialmente per il pilotaggio di display e miniproiettori.

Logic PD produce SOMOMAP3530-11-1782JFIR, una piattaforma di sviluppo e valutazione in grado di supportare OMAP3530; inoltre abbina un processore ARM Cortex-M8 con processore DSP TMS320C64x. Pur essendo un prodotto ideale per lo sviluppo dell'elaborazione di segnali, è anche utilizzabile come strumento di sviluppo di piattaforme.

Alternative multicore

Un chip multiprocessore può essere una buona alternativa per implementare una scheda multiprocessore. Anche se potrebbero esserci alcune limitazioni di larghezza di banda nella condivisione della stessa memoria o dei bus delle periferiche, i processori multicore hanno dimostrato la loro capacità prestazionale quando i task sono partizionati in modo efficiente.

Una famiglia tecnologica multicore ampiamente diffusa e supportata è quella di Freescale con la potente serie di processori i.MX 6 basati sulla famiglia ARM 8 – ARM 11 con opzioni scalate fino a un quad-core a 1,2 GHz con interfacce DDR 3 a 64 bit e due DDR 2 a 32 bit.

Un componente Freescale i.MX6sololite idoneo per grafica 2D e 3D, MCIMX6L3DVN10AA, è un processore a 432 pin ROMless con singolo core a 1 GHz. Rilevante la RAM su chip di 256 Kbyte e un'alimentazione che può arrivare a soli 0,95 V.

Sono componenti scalabili progettati particolarmente per funzioni grafiche e multimediali. Un acceleratore grafico hardware dedicato esegue grafica vettoriale 2D e 3D e libera il processore da queste operazioni impegnative. Un altro blocco dedicato all'elaborazione delle immagini, gestisce molte funzioni, tra cui miglioramento, inversione, rotazione, scorrimento, ridimensionamento e miscelazione. Un ulteriore blocco hardware dedicato si interfaccia a videocamere e display (Figura 3).

Le migliori prestazioni sono raggiungibili quando blocchi hardware avanzati e dedicati possono sfruttare bus ad alta velocità e deep pool di memoria

Figure 3: Le migliori prestazioni sono raggiungibili quando blocchi hardware avanzati e dedicati possono sfruttare bus ad alta velocità e deep pool di memoria. Tutto ciò può offrire prestazioni simili a quelle degli ASIC a costi più contenuti, con periferiche più integrate.

Il modello più grande di Freescale, MCIMX6S5DVM10AB a 624 pin, è anch'esso un progetto ROMless con hardware grafico dedicato e un ARM Cortex-A9. I dual e quad core si pongono in cima alla classifica dei dispositivi in grado di gestire in tempo reale funzionalità che un single core non riuscirebbe mai a sostenere. Ad esempio, la famiglia i.MX6 include anche un quad-core a 1,2 GHz come MCIMX6Q5EYM10AC. Questo componente vanta anche doppi motori grafici 2D oltre al supporto 3D con quattro shader addizionali.

Per concludere, anche se un ASIC può essere una soluzione efficace per garantire video e grafica sofisticati, la maggior parte dei progettisti non può affrontarne i costi e i tempi di specifica. Fortunatamente, come dimostra questo articolo, esistono numerosi processori di fascia alta dotati di capacità e funzioni video potenti e idonee per tali obiettivi.

Per ulteriori informazioni sui componenti trattati, utilizzare i collegamenti forniti per l'accesso alle pagine informative sui prodotti del sito DigiKey.

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo autore

Jon Gabay

Informazioni su questo editore

Electronic Products

La rivista Electronic Products e il sito ElectronicProducts.com sono al servizio di ingegneri e responsabili tecnici che si occupano della progettazione di sistemi e apparecchiature elettroniche.