DSP multicore per vincere la guerra dei MHz

Iniziata alcuni anni fa per far fronte alla crescente potenza di calcolo richiesta dalle applicazioni di nuova generazione, la guerra dei MHz è ormai vinta da chi ha puntato sull'architettura piuttosto che sulla velocità di clock per ottenere le prestazioni elevate che il mercato richiedeva.
L'architettura Harvard ha consentito in una prima fase dello sviluppo dei DSP di mantenere bassa la frequenza di clock aumentando la potenza di calcolo, grazie al parallelismo esecutivo sulle istruzioni e sui dati. Con questa soluzione è stato possibile portare alle estreme conseguenze il parallelismo esecutivo realizzando DSP multiMAC (Multiply Accumulate Unit) e multibus, capaci di eseguire in un solo ciclo di clock un'istruzione composta anche 10 operazioni contemporanee.
Quando questo potenziale offerto dall'architettura Harvard è stato completamente sfruttato, per continuare a offrire agli sviluppatori un livello crescente di potenza computazionale sono state implementate nuove soluzioni per il parallelismo esecutivo, come per esempio l'architettura VLIW (Very Long Instruction Word), ma senza ottenere quell'incremento di prestazioni che il mercato chiedeva. È a questo punto che i produttori di DSP hanno cominciato a puntare sull'aumento della frequenza di clock per offrire, rispetto agli altri concorrente soluzioni sempre più potenti. La soluzione basata sull'aumento della velocità del clock si è dimostrata nel tempo sempre meno efficiente, man mano che la frequenza del clock si avvicinava al GHz. La potenza dissipata per MHz, sempre crescente, è stata contenuta relativamente solo dalla riduzione della scala di integrazione.

Una soluzione al consumo di potenza
L'approccio multicore per i DSP di ultima generazione ha consentito di trovare una soluzione a questa crescita del consumo di potenza per MHz, senza limitare l'aumento della potenza di calcolo.
Un esempio di architettura che ha tratto ampio vantaggio da questo approccio è per esempio il MSC8122 di Freescale, un multicore VLIW che, alimentato a solo 400 MHz di clock, sviluppa la potenza equivalente di 1,6 GHz con un consumo di potenza di solo 0,91 mW/MHz, contro 1,65 mW/MHz che richiederebbe un DSP singlecore alimentato da una pari frequenza di clock 1 MHz. Il multicore ha un fattore di prestazione circa doppio rispetto al singlecore.
Il confronto, a parità di frequenza di clock, diventa eclatante quando l'architettura multicore del DSP diventa molto avanzata, come per il DSP multicore MRC6011, un 6 core da 16 DSP per core operanti a 250 MHz. La frequenza di clock equivalente è di 24 GHz, con un consumo globale di 3W. Se si confronta questo DSP con un'equivalente singlecore a 1 GHz, si scopre un fattore di prestazione del multicore rispetto al singlecore di 16000 volte (0,000125 mW/MHz contro 1,65 mW/MHz)!
Questi dati dimostrano che la soluzione multicore è senza dubbio vantaggiosa, ma anche che questa può evidenziare molta potenzialità se ulteriormente enfatizzata attraverso la strutturazione dell'architettura stessa.

Quattro DSP core su un singolo die
Freescale è stato tra i primi a produrre in volumi DSP multicore programmabili con processo di integrazione a 90 nm. I DSP multicore MSC812x sono stati concepiti con l'idea di fornire un fattore moltiplicativo dato dal numero di core integrato su un singolo die rispetto ai DSP monocore integrati anche questi su singolo die. Il DSP MSC812x include 1,43 Mbyte di memoria interna, una interfaccia ad alta velocità verso la memoria esterna, un ricco set di periferiche tra cui un controller Ethernet 10/100 e un coprocessore ad alta velocità. In particolare il dispositivo MSC80126 dispone di un turbo coding coprocessor e di un Viterbi coprocessor, particolarmente utili per accelerare le operazioni di elaborazione tipiche delle applicazioni in banda base.
Il MSC8144 è senza dubbio l'emblema del riscatto del DSP sulle altre tecnologie di computing che fino a qualche anno fa sembravano essere l'unica strada per le alte prestazioni, FPGA e ASIC. Riunendo in un solo contesto tutta la potenzialità Application Specific del DSP (ASSP) e del System-on-Chip (SoC), il MSC81440 è effettivamente la soluzione migliore per affrontare le problematiche delle applicazioni di nuova generazione, sia fisse che mobili. Il MSC8144 utilizza la strategia multicore sia a livello esecutivo (DSP), sia a livello di controllo (RISC).
Il sottosistema di controllo è un engine QUICC costituito da un doppio RISC dotato anche di 2 controllori Ethernet(10/100/1000 Mbps), una SPI e un controller ATM (fino a 500 MHz).
Il sottosistema esecutivo consiste di quattro core DSP capaci di operare fino a 1 GHz. Ogni core è un DSP SC3400 dotato di sei unità esecutive parallele. Molto importante è la struttura di memoria in questo complesso dispositivo per un uso efficiente del parallelismo. Il sistema dispone di una Icache L2 condivisa (128 kbyte), un livello M2 da 512 kbyte e un livello M3 da 10 Mbyte. Oltre a questa memoria di sistema, il MSC8144 dispone anche di memoria dedicata a livello del sottosistema multicore DSP (16 kbyte di cache istruzioni e 32 kbyte di cache dati).
Un componente fondamentale del MSC8144 è il sistema di intercomunicazione interno, il Chip-Level Arbitration and Switching System (CLASS), un sistema che consente a ogni master di accedere a ogni slave. I master sono i 4 core DSP, la Icache L2, il DMA, l'engine QUICC, il PCI, il Rapid IO e il TDM. Gli slave sono invece la memoria M2, la memoria M3, la DDR, la PCI e i registri di configurazione. Il sistema di intercomunicazione CLASS è di tipo non bloccante (multiple initiator to multiple target), completamente pipeline e con capacità di profiling.

L'ambiente di sviluppo e di sistema
Sistemi complessi come i DSP multicore necessitano di ambienti di sviluppo molto avanzati e allo stesso tempo mirati alla specificità del sistema. Gli ambienti di sviluppo general purpose, normalmente sviluppati da terze parti, sono utili solo nella fase di system-level design ma non adeguati a livello di code-level design. Per il MSC8144 Freescale rende disponibile il CodeWarrior, un IDE (Integrated DEvelopment Environment) utile per sviluppare e mettere in esecuzione il codice sia sulle protoboard come la ADS MSC8144, sia sulle schede custom. Aspetti chiave di questo ambiente di sviluppo sono la visibilità della cache, il debugging con profiling e la visibilità dei registri. Particolarmente utile è anche il simulatore sia per l'intero dispositivo (MSC8144) sia per i DSP (SC3400). A livello di sistema è importante anche la disponibilità di un sistema operativo real-time (RTOS) fatto su misura per il dispositivo. SmartDSP è reso disponibile gratuitamente da Freescale per il MSC8144 ed è un RTOS di piccole dimensioni (4.5 kbyte) caratterizzato da bassissima latenza nel servizio degli interrupt.

Il multicore riconfigurabile
Il computing riconfigurabile per il signal processing a elevate prestazioni ha aperto una nuova era nello sviluppo dei DSP di fascia alta. Fino a poco tempo fa per ottenere prestazioni di computing per applicazioni come le stazioni in banda base per il 2.5G e il 3.G, la comunicazione wireless a larga banda, il processing necessario per l'antenna adattativa (AA) e la rilevazione multiutente (MUD) si guardava unicamente a soluzioni come gli ASIC. Il reconfigurable computing (RCF) messo a disposizione da un dispositivo come MRC6011 di Freescale, capace di 24 Giga MACS (moltiplicazioni con accumulo), completamente programmabile e multicore, consente di ovviare a tulle le problematiche della progettazione basata su ASIC e allo stesso tempo beneficiare della flessibilità system-level offerta da questo dispositivo. Il DSP MRC6011 sviluppa i 24 Giga MACS (a 16 bit) con un clock a bassa frequenza (solo 225 MHz), ma può per esempio raddoppiare questa potenza di calcolo grazie alla sua flessibilità (per esempio 43 Giga correlazioni complesse al secondo a 4 bit). L'elemento chiave di questa eccezionale architettura di computing è il controllore RC, costituito da un processore RISC ottimizzato per la compilazione efficiente del codice C, una cache istruzione e dati e varie risorse hardware, e l'RC array, costituito da 16 unità di elaborazione riconfigurabili con bus dati a 16 bit e unità MAC in struttura pipeline. Il DSP MRC6011 consiste di sei core RCF, una sottosistema di memoria ottimizzata e una serie di interfacce esterne ottimizzate. Ogni RCF consiste di un array di 16 celle riconfigurabili interconnesse da un sistema di comunicazione estremamente flessibile e a larga banda. Ogni cella processore contiene una ALU, una MAC e un correlatore complesso ottimale. Le celle vengono coordinate dal RICS a 32 bit.

200 DSP a solo 25 dollari
PicoChip ha recentemente presentato i picoArray, dispositivi che integrano su singolo die anche più di 200 singoli processori DSP, mettendo quindi a disposizione dello sviluppatore oltre 100 GIPs e 25 GMAC. Il dispositivo PC205 integra ben 248 processori e un processore RISC (ARM926EJ-S), oltre a un motore di criptografia, un coprocessore ottimizzato per il calcolo FFT, il decoder Viterbi. I singoli core processor sono veri e propri DSP con moltiplicatore 16x16 bit e accumulatore a 40 bit, memoria locale per dati e istruzioni e architettura a istruzione lunga per l'esecuzione parallela di quattro operazioni per ciclo di clock. Il clock è a solo 160 MHz.

Gestire 300 canali vocali per chip
Il chip DSP TNETV3010 di Texas Instruments usa sei core C55x per gestire fino 300 canali vocali, mentre il TNETV3020 utilizza sei core DSP C64xx operanti a 500 MHz. Ogni core C64xx dispone di un blocco di cache istruzioni e dati Level 1, oltre a una cache Level 2 e un blocco di memoria condivisa. I core del TNETV3020 operano ognuno a 500 MHz, mentre l'intero dispositivo dispone fino a 5.5 MB di memoria integrata e un set avanzato di periferiche.
Il sistema interno di intercomunicazione (switch fabric) è non bloccante e rende massime le prestazioni esecutive dei sei DSP operanti in parallelo, soprattutto per lo scambio di dati con la memoria e le periferiche.

Comunicazioni multicanali ottime con i multicore
L'ADSP2192 di Analog Device implementa la memoria condivisa per far operare efficientemente il suo doppio core per gestire la comunicazione multicanale voce/fax/dati su rete. L'ADSP2192 ha una potenza di calcolo di 320 MIPS con cui riesce a implementare 26 canali fonici di voice over network (VoN) e 6 canali modem V.90. Il chip integra anche 140 kbyte di memoria RAM, con una parte condivisa (4 kword) per la comunicazione interprocessore. I due core cono completamente indipendenti, quindi possono eseguire le istruzioni in completo parallelismo.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome