DIGITAL
DSP
58
- ELETTRONICA OGGI 430 - SETTEMBRE 2013
Efficienza e flessibilità nei DSP
C
ome è noto i General-Purpose Processor (GPP) sono
versatili perché possono essere programmati utilizzan-
do qualsiasi gerarchia di interrupt mentre i Digital Signal
Processor (DSP) sono efficienti solo se esentati il più pos-
sibile dagli interrupt perché pensati per svolgere calcoli
aritmetici ripetitivi sulle lunghissime stringhe di numeri che
rappresentano i segnali audio o video digitalizzati. Sono
due modi diversi di impostare le unità di calcolo (Central
Processing Unit, CPU) di bordo poiché nei processori
generici devono essere più flessibili per
accettare qualsiasi tipo di algoritmo mentre
nei processori specializzati sono realizzate
sul silicio con motori hardware più rigidi
che prediligono gli algoritmi con istruzio-
ni e sottoprogrammi fatti “su misura” per
esprimere determinate funzionalità. Oltre
ai DSP si realizzano con questo secondo
approccio anche le Network Processing
Unit (NPU) e le Graphics Processing Unit
(GPU). Questa storica differenza, tuttavia, si
è attenuata con il recente moltiplicarsi dei
motori matematici disponibili come proprietà intellettuale e
dei sottosistemi con funzionalità specifiche disponibili per i
processori generici. In altre parole oggi si possono imple-
mentare i DSP, le NPU e le GPU anche senza usare compo-
nenti discreti ma nella forma di sottosistemi sia software sia
hardware. Ciò significa che diventa sempre più importante
cercare di verificare le prestazioni delle diverse soluzioni
possibili per ogni sistema di elaborazione prima di decidere
quale sia la più adatta per ogni applicazione e, inoltre, biso-
gna considerare anche il livello di complessità che ciascuna
soluzione comporta nella messa a punto degli algoritmi
software perché solo così si può valutare se si ottengono
significativi vantaggi in termini di efficienza operativa.
Criteri di scelta
Succede spesso nei sistemi sul silicio che l’efficienza di
calcolo sia inversamente proporzionale alla flessibilità di
configurazione. In altre parole, tanto più rigido
è un motore hardware e tanto più velocemente
farà i suoi calcoli ma altrettanto più difficile sarà
amalgamarlo in un sistema in grado di adattarsi
agli algoritmi più sofisticati. Viceversa i sistemi più versatili
necessitano di basi hardware più complicate che si adattano
meglio agli algoritmi ma a prezzo di strutture ridondanti che
costano e li penalizzano nelle prestazioni. Nel caso dei DSP
il trade-off fra i due approcci può consistere nel partizionare
gli algoritmi fra le risorse disponibili sui circuiti hardware
DSP rigidi e i sottosistemi DSP programmabili disponibili a
bordo di un GPP o di un Fpga. Come primo criterio di scelta
si può considerare che i DSP discreti sono già impostati con
più motori di calcolo in parallelo al loro interno e perciò pre-
diligono le istruzioni larghe capaci di comandare operandi
multipli come per esempio le SIMD, Single-Instruction Multi-
ple-Data, utilizzabili per ripetere i calcoli su più sequenze di
dati che scorrono in flussi paralleli. I DSP discreti disponibili
sul mercato implementano tipicamente decine di unità arit-
metiche (ALU) in parallelo capaci di calcoli in virgola mobile
e doppia precisione su numeri di 32 o 48 bit per potenze di
Lucio Pellizzari
Per scegliere un DSP si possono oggi
considerare le soluzioni stand-alone, su GPP,
su Fpga o ibride ed è bene tenere conto delle
valutazioni pubblicate dagli esperti come BDTI
Fig. 2 – Le valutazioni BDTI
possono aiutare nella scelta
del DSP più adatto per ogni
applicazione
Fig. 1 – Per scegliere una soluzione DSP occorre ottimizzare
fra l’efficienza a livello hardware e la versatilità di program-
mazione