Sei sulla pagina 1di 12

D Digital

Processor
Signal

SP
Nella parte intermedia cercheremo di dare degli utili
DSP A brief tutorial strumenti per comprendere che tipo di sistema operativo deve essere
scelto a seconda delle applicazioni che il DSP deve eseguire: una
visione sul “sistema di gestione dell’hardware” che soprattutto negli
Introduzione ultimi DSP raggiunge livelli di complessità paragonabili ai moderni
SO.
Accanto al ben noto mondo dei processori general purpose vi è Nell’ultima parte invece analizzeremo quelle che sono le
una famiglia di processori sviluppati per applicazioni numeriche applicazioni principali dei DSP ed ne analizzeremo in dettaglio
molto complesse: i DSP o processori per l’elaborazione di segnali qualcuna.
digitali.
Questi processori hanno trovato largo impiegonei primi anni in
applicazioni specialistiche nell’ambito dell’elaborazione digitale
(acquisizione e manipolazione dati) e delle telecomunicazioni o in
applicazioni altamente scientifiche (analisi di segnali radar, sismici,
analisi spettrale, ecc) ; solo negli ultimi anni con l’avvento
soprattutto delle nuove tecnologie multimediali hanno trovato vasta
applicazione accanto ai Personal Computer General Purpose di
ultima generazione.

I contenuti non vogliono essere esaustivi (vista la complessità


del mondo dei processori), ma vogliono dare tutta una serie di
strumenti per interpretare le caratteristiche dei processori ad alte
prestazioni; un utile introduzione quindi che parte dalla natura delle
applicazioni del mondo digitale, passa ai componenti hardware e
fino ai moderni sitemi di gestione software.

Se pensiamo la storia delle due famiglie di processori come


l’evoluzione biologica di due razze umane, entrambe le famiglie
partono da progenitori comuni: entrambe le famiglie fanno capo ai
primi processori ed ai primi controllori ad alte prestazioni della fine
degli anni 70.
Nei primi anni 80 si ha sostanzialmente la specializzazione di alcuni
dispositivi e la nascita dei primi DSP, che da quel momento in poi
seguiranno un corso parallelo ai GPP sia per quanto riguarda gli
sviluppi dell'architettura sia per quanto riguarda le applicazioni.
Soltanto nell’ultima metà degli anni 90 tali evoluzioni hanno
smesso di essere parallele per confluire, in alcuni casi, verso
elaboratoricon caratteristiche comuni: nuovi individui che
ottimizzano le ottime prestazioni di entrambe le famiglie e per creare
processori con caratteristiche “genetiche” simili.
Nella prima parte di questo breve tutorial daremo
un’accenno alle principali caratteristiche tecnologiche di queste due
famiglie, con maggiore enfasi per i DSP, ma facendo continuamente
il confronto con l’altra famiglia, i GPP o General Purpose Processor.
Tratteremo vari aspetti che caratterizzano la famiglia dei DSP e che
la rendono competitiva per il calcolo digitale.

@ A. Ziola A. Barletta – Corep Page


1 of 12
D Digital
Processor
Signal

SP
DSP sono avvantaggiati della crescente densità dei dispositivi
integrati.
Tecniche numeriche: digitale vs.
analogico. Benchè vi siano queste motivazioni di carattere generale,
occorre sottolineare che le analisi nel dominio numerico sono molto
più complesse e richiedono un enorme sforzo computazionale.
Le novità introdotte nelle architetture dei DSP sono legate Le tecniche numeriche, che si basano sulle prerogativi finora
strettamente all’implementazione di tecniche di analisi numerica di accennate, trovano vasto utilizzo in
segnali digitali: è opportuno quindi introdurre quali sono le
motivazioni per risolvere in modo digitale e non analogico alcune  compressione audio e vocale
applicazioni di elaborazione dei segnali. Resta ben inteso che la
 filtraggio numerico
banda di frequenza (benchè sia aumentata negli ultimi anni) delle
 modulazione e demodulazione
applicazioni digitali non è illimitata, e i dispositivi analogici trovano
 codifica e decodifica degli errori
vasta applicazione alle alte frequenze, dove tecnologicamnete non si
sono ancora raggiunti prestazioni ottimali con dispositivi numerici  servo control
(si vedaono le figure inerenti alle frequenze di lavoro delle  audio processing (noise surround, riduzione del rumore,
applicazioni dei DSP). cancellazione dell’echo, equalizzazione, ecc)
 riconoscimento vocale
 sintesi vocale

tali tecniche hanno le seguenti caratteristiche computazionali:

 calcolo numerico ripetitivo: gli algoritmi numerici fanno un


uso enorme di sommatorie e cicli ripetitivi (es. FFT, filtri FIR,
IIR, ecc) ;
 moltiplicatori e sommatori: queste dueoperazioi a volte
devono essere eseguite una dopo l’altra: i MAC (Multiplier &
La rappresentazione numerica dei segnali trova vaste applicazioni,
Accumulator) sono dispositivi che permettono di eseguire le
per il giusto compromesso tra efficienza e affidabilità, in confronto
operazioni di somma e moltiplicazioni complesse in modo
all’analisi analogica, fondamentalmente per i seguenti motivi:
molto veloce e via hardware in un singolo colpo di clock;
 fedeltà della rappresentazione numerica: per il tipo di
 il rumore introdotto nell’elaborazione digitale è molto più
applicazioni a cui devono far fronte i DSP, non sono ammessi
basso rispetto a quello introdotto dai dispositivi analogici:
errori di troncamento sui dati, poichè vi è una forte correlazione
infatti ogni stadio di elaborazione introduce del rumore sul
tra la perdita di prestazioni e gli errori introdotti (in
segnale analogico, mentre il segnale digitale rimane inalterato
applicazioni di telefonia il numero di bit per la
(a meno di errori numerici);
rappresentazione di un dato sono ottimizzate in modo da
 la risposta in frequenza è migliore: i dispositivi analogici hanno
garantire la prestazione ottima con il minor numero di bit
limiti legati alla non linearità in alcune zone della banda di
minore: questo implica che la sensibilità numerica dei dati è
lavoro (specialmente le alte frequenze);
molto alta);
 ci sono alcune trasformazione nel dominio digitale che non si
 banda di memoria grande, soprattutto per il calcolo vettoriale e
possono fare o sono difficili da implementare nel dominio
matriciale: i DSP devono far fronte ad una enorma mole di dati,
analogico: divisioni e moltiplicazioni in frequenza, traslazioni
quindi il trasferimento da e verso la memoria deve essere il piu’
dello spettro del segnale;
veloce possibile;
 gli errori di quantizzazione introdotti nell’analisi digitale sono
 real time processing: le prestazioni dei DSP sono vincolate
controllabili dal punto di vista numerico e comunque risultano
strettamente al ritardo introdotto nell’elaborazione; i DSP
minori delle perdite introdotte dai dispositivi analogici.
devono elaborare i dati più velocemente della velocità di
acquisizione (pensiamo ad esempio ad un DSP per
Inoltre i sistemi digitali offrono le seguenti caratteristiche:
l’elaborazione e la codifica di segnali video in una telecamera
digitale: i dati video vengono campionati su un CCD (Charged
 predicibilità, comportamento ripetibile: cioè grazie alla loro
Coupled Devices) e ,dopo essere stati codificati e compressi
vulnerabilità all’ambiente e al tipo di elaborazione eseguita i
vengono trasmessi o immagazzinati in tempo reale);
sitemi digitali hanno comportamenti predicibili esattamente ed
hanno sempre lo stesso comportamento;
l’ottimizzazione di questi fattori deve essere eseguita parallelamente
 riprogrammabilità: i sistemi con DSP sono riprogrammabili a
alla minimizzazione dei
seconda delle esigenze (esclusi i sistemi embedded costruiti
sulla base di algoritmi standard ma sviluppati come dispositivi
 costi: legati strettamente al successo commerciale di questi
per apllicazioni specifiche);
dispositivi (per es. nei prodotti multimediali, il costo è un
 grandezza: i componenti analogici sono generalmente più
fattore importantissimo: per rendere un prodotto competititvo
grandi in ampiezza da costruire su supporto in silicio e in più i

@ A. Ziola A. Barletta – Corep Page


2 of 12
D Digital
Processor
Signal

SP
deve garantire alte prestazioni ed un costo contenuto perchè è
rivolto alla grande massa dei consumatori);
 consumo: bassa potenza, per ridurre i costi legati all’alto costo
delle batterie di alimentazione (es. telefonia cellulare, satelliti
per telecomunicazioni, ecc);
 ottimizzazione delle memorie: l’alto costo delle memorie
SRAM (Static RAM: più veloci delle DRAM, ma molto più
ingombranti) e il basso spazio per implementazione su chip
impongono un attento uso di queste risorse;
 tempi di progetto: i prodotti commerciali, a cui sono legati i
DSP, subiscono una forte concorrenza legata anche alla loro
veloce evoluzione: il tutto implica tempi di progetto
strettissimi.

Quindi l’evoluzione tecnologica che hanno subito i DSP è dovuta


a tutta una serie di compromessi sia tecnologici che economici: i
prodotti sono il risultato di una “selezione naturale” verso
prestazioni specifiche ad alto contenuto tecnologico. I loro cugini, i
GPP, hanno seguito linee evolutive in cui tali fattori non erano nè
determinanti, nè vincolanti: questo è la prima differenza che
contraddistingue i due mondi.

@ A. Ziola A. Barletta – Corep Page


3 of 12
D Digital
Processor
Signal

SP
Tecnologie dei DSP.
1. Architettura hardware.
I processori convenzionali utilizzano l’architettura detta Von
Neumann con un singolo blocco di memoria, a cui si accede per
mezzo di un singolo bus di indirizzi ed un singolo bus di dati,
entrambi condivisi sia dalle istruzioni sia dai dati veri e propri
(vedi figura 1).

Fig 2: Filtro di tipo FIR.

Una architettura di tipo Harvard pura possiede 4 bus, due di


indirizzo e due di dato, e 2 banchi separati di memoria. In questo
modo si possono eseguire due cicli di lettura/scrittura
contemporaneamente a discapito però di una maggiore complessità
progettuale (vedi figura 3).

Fig. 1 – Architettura Von Neumann.

Tale architettura non è efficiente nel caso di operazioni su dati


multipli in quanto i bus sono condivisi sia per il caricamento delle
istruzioni sai per quello dei dati, entrambi collocati nello stesso
blocco di memoria: quindi tale sistema non è idoneo per
l’implementazione di algoritmi numerici complessi che operano su
blocchi di dati. Consideriamo per esempio il calcolo di un filtro
numerico di tipo FIR (vedi figura 2); il processore in questo caso
deve fare le seguenti operazioni:
 caricare l’istruzione MAC (Multiply-Accumulate);
 leggere il valore di xK ;
 leggere il coefficiente ci ;
 scrivere il risultato ottenuto in memoria.
il collo di bottiglia per tali operazioni sono sia il bus che la memoria.
Fig 3: Architettura Harvard

Su questo tipo di implementazione sono state fatte molte varianti


sempre con lo scopo di aumentare il parallelismo interno e quindi la
banda di memoria: in alcuni casi è stata introdotta una cache per le
istruzioni, in modo da permettere l’utilizzo dei due bus per le
operazioni sui dati dopo aver cricato in cache le istruzioni da
eseguire (architettura SHARC, o Super HARvard Architecture);
oppure si è ulteriormente applicato il meccanismo di aumentare il
numero di bus disponibili ( il DSP56000 della Motorola, vedi sezione
successiva).

@ A. Ziola A. Barletta – Corep Page


4 of 12
D Digital
Processor
Signal

SP

Fig Architettura interna del TMS320C6201.

Fig 4: Architettura Harvard del DSP56000.

Un’altro tipo di architettura utilizzata è la cosiddetta Von


Neumann modificata. Viene utilizzata la semplicità di progettazione
tipica delle architetture Von Neuman con una piccola modifica: la
velocità di accesso alla memoria viene ottenuta moltiplicando il clock
di sistema di 4 volte; in questo modo per ogni ciclo di istruzioni si
hanno 4 cicli di lettura/scrittura su memoria. Il DSP32C della
Lucent ha un clock di memoria di 80 MHz: tale clock viene diviso
per 4 per ottenere 20 MIPS (Million Istructions Per Second), cioè
appunto 4 accessi in memoria per ogni ciclo di istruzione.
In entrambe le architetture si fda uso di memoria molto veloci: in
genere si tratta di CMOS implementate direttamente su chip. Per
moloti anni questo è stato uno svantaggio perchè tali memorie sono
si veloci ma sono anche ingombranti sul modulo del processore,
quindi hanno capacità limitate (poche decine di KB). Comunque
negli ultimi anni i processori contengono sempre più ampi blocchi di
memoria.
Integrati nei DSP vi sono anche delle ROM, che contengono le
routines di inizializzazione del sistema, ma possono contenere anche
lo stesso codice da eseguire a seconda delle applicazioni che sono
progettatate per assolvere. Nei moduli ROM vi sono anche le tabelle
di valori per il calcolo di trasformate complesse, come la trasformata
a coseno rialzato o i coefficienti per il calcolo trigonometrico ( nei
GPP tali valoti vengono calcolati via software, mentre nei DSP per
aumentare le prestazioni si utilizzano dei valori normalizzati).

Di seguito mostriamo lo schema completo dell’architettura


interna del TMS320C6201 della TI.

@ A. Ziola A. Barletta – Corep Page


5 of 12
D Digital
Processor
Signal

SP
2. Execution control.
L’ottimizzazione di parti di codice specifiche per applicazioni di
tipo numerico viene realizzato attraverso l’uso combinato di
generatori di indirizzo specializzati e con uso di opportune tecniche
di caching.Alcuni dei modi di indirizzamento tipici dei DSP sono:
 autoincremento
 modulo (o circolare)
 bit-reversed (per FFT)
Con generatori automatici di indirizzi che implementano tali
carateristiche diventa molto più efficiente l’implementazione di
algoritmi numerici con funzioni iterative (loop di codice).
L’indirizzamento a modulo (o circolare) permette al DSP di
simulare l’effetto di una linea di ritardi tipico dei i filtri numerici:
una serie di valori xi con i = 0. . . n viene memorizzata in memoria; in
alcuni algoritmi si utilizzano tali valori traslando per ogni ciclo di
calcolo gli estremi; tramite questo tipo di indirizzamento a fine ciclo
l’indirizzo viene ricalcolato automaticamente in modo da ripetere la
scansione più e più volte senza spostamenti di dato in memoria.
Sempre per aumentare l’efficienza dell’esecuzione di parti di codice
in modo iterativo si sono introdotti meccanismi di ripetizione delle
istruzioni.
Alcuni DSP hanno incorporato delle program cache, che altro
non sono che delle piccole memorie all’interno del processore, che
eliminano il bisogno di accedere alla memoria principale per alcune
istruzioni: quando si devono eseguire blocchi di istruzioni si imposta
il numero di ripetizioni e il codice da eseguire, al contrario dei
sistemi tradizionali che eseguono per ogni ciclo il fetch delle
istruzioni (nei moderni elaboratori si utilizzano tecniche di
ottimizzazione del flusso di istruzioni, ma ai tempi dei primi DSP Fig : Data Path
non erano ancora utilizzate).
Queste cache particolari variano da un DPS all’altro ed in 4. Set di istruzioni.
generale sono dispositivi molto più semplici ma più efficienti di L’insieme di istruzioni dei DSP sono specializzate per fare
quelli utilizzate nei GPP. operazioni di tipo complesso e permettono di effettuare più
Il tipo più semplice è un buffer che può contenere solo una sola operazioni contemporaneamente. Infatti devono sfruttare la
parola di codice (single instruction repeat buffer), che permette di possibilità date dal tipo di architettura Harvard, che permette
ripetere più volte la stessa istruzione (i processori TMS320c2x e l’esecuzione di più accessi in memoria separati e il calcolo
TMS320c5x utilizzano tale tecnica). contemporaneo su due dati contemporaneamente.
Alcuni dispositivi implementano un repeated buffer più grande: Le operazioni complesse riguardano il calcolo aritmetico su
l’AT&T DSP16xx utilizza un buffer di 16 istruzioni. numeri in floating point o fixed point (a seconda dei DSP): nei
Le architetture più sofistica permettono l’utilizzo di cache processori GPP tali operazioni non sono svolte con singole
complesse in cui si possono utilizzare più blocchi separati di istruzioni specializzate, ma da gruppi di istruzioni general purpose.
istruzioni da ripetere frequentemente. Negli ultimi anni sono state introdotte delle parole di istruzione
molto ampie (256 bit): VLIW che sta per Very Long Istructions
3. Data path. Word. Tali istruzioni permettono appunto operazioni multiple
Nei DSP si sono introdotti dei meccanismi hardware in modo da indipendenti una con l’altra. La tendenza è verso istruzioni sempre
eseguire le operazioni aritmetiche complesse in un singolo colpo di più lunghe, ma soprattutto ortogonali tra loro: cioè istruzioni la cui
clock. Il blocco principale è il cosiddetto MAC (Multiply- esecuzione può essere eseguita in parallelo.
Accumulate): tale dispositivo permette l’esecuzione di
un’operazione di moltiplicazione (in floating point o fixed point) e 5. Formato dei dati.
successiva somma in un accumulatore in un singolo colpo di clock. Le operazioni aritmetiche come l’addizione e la moltiplicazione
I registri utilizzati per raccogliere il risultato di tali operazioni sono il cuore degli algoritmi numerici e dei sistemi DSP. Quindi
non sono registri general purpose normali, ma sono registri specifici come conseguenza il tipo di formato numerico e il tipo di aritmetica
di larghezza tale da contenere gli errori risultanti da operazioni di implementata via hardware utilizzati hanno una profonda influenza
moltiplicazione su numeri di diverso ordine di grandezza. sulle performance e il comportamento del sistema.
Altri tipi di dispositivi specializzati utili<zati per incrementare La scelta per le applicazioni dei DSP ricade tra il formato a
l’efficienza delle operazioni su bit sono: Shifters, Guards bits, virgola fissa ed il formato floating point.
Saturation.

@ A. Ziola A. Barletta – Corep Page


6 of 12
D Digital
Processor
Signal

SP
Nell’aritmetica in virgola fissa, i numeri sono rappresentati in
un intervallo fisso tra –1 e +1 con precisione fissa pari a 1/2n, dove n
è il numero di bit. Per non perdere di precisione il prodotto di due
interi rappresentati su n bit deve essere rappresentato su 2xn bit
(infatti nei blocchi interni con moltiplicatore, il risultato viene messo
in registri più ampi per questo motivo), oppure se questo non è
possibile si cerca di scalare opportunamente i fattori per impedire
l’overflow.
Nell’aritmetica in floating point si ha una dinamica molto più
ampia, che corrisponde però ad una maggiore difficoltà di
implementazione hardware.
Il numero di bit è importante anche per determinare la dinamica
rappresentabile dei segnali analogici quantizzati. Facciamo qualche
esempio: con 8 bit si hanno 48 dB (= 20 log(1/2 8), con 16 bit si hanno
96 dB e con 32 bit si hanno 196 dB. Difficilmente si devono analizzare
segnali analogici con 196 dB di dinamica !!!! E’ per questo motivo che
i primi DSP erano dispositivi a 16 bit e quando i DSP a 16 bit
iniziarono ad essere troppo poco efficienti per le applicazioni più
avanzate la scelta cadde sul DSP56000 della Motorola che utilizzava
24 bit in virgola fissa.

@ A. Ziola A. Barletta – Corep Page


7 of 12
D Digital
Processor
Signal

SP
memorie condivise – inserire il nome del DSP dell’articolo di
6. I/O. Byte).
I DSP utilizzano delle tecniche avanzate per interfacciarsi con il
mondo esterno, soprattutto nelle famiglie in cui all’interno ci sono
piu’ bus di indirizzo e di dati, in cui occorre introdurre unità di 7. Linguaggi e Compilatori.
multiplazione molto efficienti. La programmazione dei DSP è uno dei grossi problemi che
caratterizza questa famiglia di processori. La mancanza fin dalle
prime generazioni di strumenti di programmazione semplici ed
efficienti è stato un grosso ostacolo all’implementazione e alla
diffusione di questi processori. In generale il linguaggio di
programmazione utilizzato è l’assembler nativo del processore:
solamente negli ultimi anni si sono costruiti dei compilatori ad alto
livello (C) e degli strumenti di debug efficienti, ma nello stesso
tempo semplici nel loro uso. Tali innovazioni sono state introdotte
anche per ridurre i tempi di sviluppo di programmi di elaborazione
digitale: tempi che diventano basilari nei campi di applicazione dei
DSP. Di seguito viene riportata una tabella esemplificativa che
illustra le principali differenza dei linguaggi di utilizzazione delle
varie famiglie di DSP a seconda della casa produttrice. Sottolineo
ancora una volta che il tipo di linguaggio utilizzato e gli strumenti di
sviluppo sono un paramentro importantissimo nella scelta del giusto
DSP, poichè in questi paramentri occorre tener conto i tempi e delle
risorse da dedicare allo sviluppo di applicazioni: quindi bisogna
tenere conto dei tempi che il mercato ci concede !!

Produttore Linguaggio
DSP assembly language like FORTRAN
Analog Devices
DSP assembly language like assembly
Fig 5: I/O di un DSP con Architettura Harvard interna. Texas Instruments
DSP assembly language like C
LUCENT (AT&T)
Si possono distinguere in generale tre sorgenti di informazione: DSP assembly language like Assembler
MOTOROLA
 segnali dei dati e degli indirizzi entranti ed uscenti dal DSP;
Table 1 : Linguaggi di programmazione dei DSP
 comunicazioni con controller esterni;
 coordinamento con DSP connessi in cascata.

Alcuni modelli hanno complessi dispositivi A/D e D/A per


trattare direttamente i segnali analogici da analizzare.
Alcuni processori hanno anche interfaccie verso l’esterno per 8. Consumo.
comunicare con altri DSP in configurazione multiprocessore Uno dei grossi vantaggi dei processori DSP risptto ai GPP è il
(multiprocessor array) oppure con GPP. Quando occorre scegliere il loro ottimale compromesso tra prestazioni, consumo e costo.
DSP per un’applicazione specifica, bisogna tener conto delle sue Specialmente nelle applicazioni di tipo commerciale, assume
caratteristiche, ma soprattutto di come si interfaccia con il mondo una grosso significato la riduzione dei consumi dei dispositivi
esterno: per aumentare l’efficienza di alcuni sistemi moderni lo si utilizzati, per l’alto costo della tecnologia delle batterie di
fornisce di unità apposite per permettere il multiprocessing (gli alimentazione e quindi per la qualità del servizio che si vuole offrire
array di DSP) oppure la comunicazione con processori esterni. all’utente.
Tali meccanismi di comunicazione possono avvenire I progettisti dei DSP, fin dalle prime generazioni, hanno tenuto
principalmente attraverso tre vie: in gran conto il problema del consumo, progettando i loro
 prolungamento dei bus interni del DSP all’esterno del core dispositivi in modo da ridurlo al minimo.
(per esempio per interfacciarsi con banchi di memoria Tale riduzione del consumo in generale avviene tramite 4 tecniche:
esterni);
 meccanismi di DMA;  riduzione della tensione di alimentazione (valori intorno
 simbiosi di DSP con processori GPP (nell’ultima ai 3.3 - 3.0 volts sono tipici) che riduce il consumo circa del
generazione di processori si sono avuti alcuni esempi di 40% rispetto ai processori alimentati a 5 volts;
DSP e GPP progettati nello stesso core con bus, registri e

@ A. Ziola A. Barletta – Corep Page


8 of 12
D Digital
Processor
Signal

SP
 modi di funzionamento idle e sleep: durante le fasi in cui applicazione, che si sono estese dal campo militare, delle
il processore non lavora viene portato in stati a basso telecomunicazioni e professionale fino al settore cosumer.
consumo (per es. i cellulari durante la conversazione nei I DSP vengono divisi principalmente in 4 generazioni;
momenti di silenzio vengono portati in condizione di elencheremo di seguito le principali caratteristiche che le
basso consumo in modo automatico ! ) ; contraddistinguono soffermandoci nella sezione che segue
 alcuni dispositivi permettono di far diminuire la frequenza soprattutto sugli ultimi esemplari.
di lavoro a seconda delle applicazioni che devono eseguire; I primi DSP erano considerati fondamentalmente dei processori
 alcuni DSP permettono di disabilitare le periferiche non veloci: il DSP32 prodotto dall’AT&T aveva un clock a 16 MHz
utilizzate. contro i 5 MHz dei clock dei PC suoi coetanei.
La prima generazione di DSP nasce nel 1982 ed e’ rappresentata
Comunque proprio per l’utilizzo di queste tecniche è in generale dal TMS32010 della Texas Instruments. Tale processore riassume le
molto difficile conoscere in dettaglio il consumo operativo dei caratteristiche dei DSP di quel periodo :
DSP: infatti in tali dispositivi il consumo varia anche a seconda
del tipo di algoritmo (e quindi di istruzioni) che esegue: in  aritmetica a virgola fissa a 16 bit;
generale le case costruttrici danno dei valori tipici o massimi del  architettura Hrvard;
consumo.  accumulatori costruiti in hardware;
 set di instruzioni specializzate per il calcolo numerico ;
♦♦♦  tempo di esecuzione MAC 390ns (oggi 228ns).

Nel 1987 entra in commercio il DSP56000 della Motorola; le nuove


Nella sezione sui DSP di nuova generazione parleremo delle caratteristiche che introduce sono:
tecniche introdotte anche nel mondo dei GPP per competere con le  24 bit per i dati;
prestazioni dei DSP.  3 memorie indipendenti, due per i dati e una per le istruzioni;
 istruzioni dedicate per ottimizzare i loop del codice;
9. Cronologia.  indirizzamento a “modulo”;
Per interpretare in modo corretto le novità tecnologiche  tempo di esecuzione MAC 75ns (oggi 21ns).
introdotte e per prevedere l’evoluzioni future della famiglia dei DSP
facciamo un breve excursus storico, onde sottolineare anche i tempi Altri processori di questa generazione sono: AT&T16A, Analog
in cui tali evoluzioni si sono realizzate. Devices ADSP-2100, Texas Instruments TMS32OC50.
Fino agli anni ’70 la tecnologia forniva solo 2 alternative per La terza generazione esce intorno al 1995 ed i processori che la
l’elaborazione digitale dei segnali: rappresentano sono il DSP56301 della Motorola e il TMS320C541
della TI. Le caratteristiche innovative che introducono sono di
 programmazione via software degli algoritmi su calcolatori seguito elencate:
general purpuse molto complesso ed altrettanto cari;
 ulteriore innovazione delle architetture convenzionali;
 dispositivi hardware dedicati;  alimentazione di 3.0 o 3.3 volts;
 più memoria integrata su chip;
la prima alternativa non permetteva l’applicazione in sistemi di tipo  unità per l’interfacciamento come co-processore;
real time, mentre la seconda produceva sistemi rigidi non adattabili  strumenti per lo sviluppo e per il debug di applicazioni;
ad una vasta gamma di problemi.  MAC in 20ns (oggi 10ns).

♦♦♦ L’ultima generazione (1997-1998) di processori rappresenta sia


l’evoluzione dei DSP convenzionali, sia l’introduzione nel mercato di
Successivamente, a partire dagli anni ’70, sono comparse delle nuovi processori di tipo general purpose con forti specializazione nel
schede programmabili, attached array processor, che campo dell’eleborazione digitale: non a caso viene citato come
s’interfacciavano a minicomputer. Queste permettevano da una rappresentante il Pentium MMX, cioè un processore general purpose
parte l’utilizzazione in applicazioni di tipo real time e dall’altra la con un set di istruzioni sviluppate specificatamente per
possibilità di riprogrammazione degli elaboratori: il loro costo implementare meccanismi tipici dei DSP.
rimaneva elevato e i campi di applicazione comunque limitati a Le caratteristiche di questi nuovi prodotti verranno introdotte nella
poche applicazioni specifiche (elaborazione di analisi sismiche, sezione successiva.
acquisizione dati da radar e sonar, ecc).

♦♦♦
10. Metriche e misure delle prestazioni.
Per misurare le prestazioni dei DSP sono stati introdotti negli
anni molti tipi di metriche. Tali metriche si possono dividere
Agli inizi degli anni 80 l’evoluzione tecnologica nel campo del
principalmente in indici di prestazione e tempi di esecuzione:
trattamento del silicio e quindi il successivo calo del prezzo di
mentre i primi sono delle semplici misure della velocità di
produzione di processori, ha dato il via alla progettazione ed alla
esecuzione media dei DSP, i secondi sono delle vere e proprie “gare
costruzione dei primi DSP. Ciò ha fatto aumentare i campi di

@ A. Ziola A. Barletta – Corep Page


9 of 12
D Digital
Processor
Signal

SP
di velocità” su campi di applicazione specifici. Gli indici di misura
non sono altamente affidabili e non sempre riescono a dare un’idea
obbiettiva delle prestazioni dei DSP appartenenti a famiglie e
costruttori diversi. Tale inefficienza nasce dal fatto che produttori
diversi utilizzano tecniche e filosofie di implementazione diverse
soprattutto per quanto riguarda l’implementazione delle istruzioni e Function Description Example of
degli algoritmi numerici utilizzati. Per questo motivo ultimamente,
si sono scelti un certo numeri di algoritmi fondamentali (vedi figura applicatio
a fianco) che trovano vastissima applicazione nel DSProcessing: le n
velocità di esecuzioni di questi “algorithm kernels” rappresentano
Filtro di tipo FIR che Speech
una buona misura delle prestazioni e soprattutto danno un buon
opera su blocchi di processing (e.g.
indice di prestazione e di confronto direttamente sulle maggiori Real Block FIR
dati reali G.728 speech
applicazioni dei DSP.
coding)
Seguono le definizioni di tali unità di misura. Iniziamo dai
.. su dati complessi equalizzazione di
primi. Complex Block
canale su
Il più diffuso dei parametri di prestazione è sicuramente il FIR
modem.
MIPS, che significa Millions of Istructions per Second: è un indice
Opera su un singolo Speech
del numero di istruzioni che il DSP riesce ad eseguire in media al Real Single-
campione di dato processing,
secondo. Occorre fare attenzione quando si paragonano DSP di sample FIR
reale. filtering,
diversi costruttori, perché a volte le stesse operazioni possono essere
Least-Mean-Square equalizzazione di
eseguite con una quantità di istruzioni macchina differente: quindi
Adaptive Filter: su canale, servo
un processore che esegue 40 MIPS può avere meno prestazioni di
LMS adaptive FIR un singolo campione control, liear
uno che ne esegue 50 MIPS.
di dato reale. predictive
Per superare l’ambiguità del MIPS si sono introdotti via via gli
coding.
indici MOPS (Millions of Operations per second) e MFLOPS
Infinite Impulse Audio
(Millions of Floating-point Operations per second).
IIR Response filter su processing, filtri.
Siccome le operazione di moltiplicazione-addizione sono la base
singolo dato.
di certe apllicazioni di analisi numerica si è anche introdotto il
Prodotto scalare di Convoluzione,
MACS (Multiplay-Accumulates per seconds).
due vettori. correlazione,
Nel secondo gruppo di metriche invece troviamo tutta una serie
moltiplicazione
di applicazioni specifiche: si tratta di una specie di olimpiade dei Vector Dot
di matrici,
processori, in cui vi sono una serie di specialità “sportive” (gli Product
multidimensional
algoritmi), in cui anche processori appartenenti a “nazioni diverse” e
signal
che implementano tecniche diverse gareggiano uno al fianco
processing.
dell’altro per il primo posto.
Somma di due Grafica,
Nella tabella a fianco viene fatto un elenco delle pricipali
vettori. combinazione di
tecniche numeriche: tali tecniche da come si può osservare coprono
Vector Add audio ed
tutti i campi di applicazione del mondo dei DSP. A redigere dei
immagini, ricerca
benchmark (una specie di pagella) sono delle agenzie specializzate
su vettori.
come la BDTi (Berkeley Design Tecnology Inc.)
Cerca la posizione Error control
del valore massimo coding, algoritmi
Vector Maximum
in un vettore. che usano blocchi
di floating point
Negli algoritmi per telefonia cellulare
il calcolo (IS-545 standard).
Convolutional
convoluzionale degli
Encoder
errori su blocchi di
bit.
manipolazioni di bit operazioni di
Finite State
ed operazioni di controllo
Machine
controllo
Fast Fourier Radar, Sonar,
Transform converte MPEG Audio,
256 point Radix-2 un segnale dal compressione,
FFT dominio del tempo analisi spettrale.
al dominio della
frequenza.

@ A. Ziola A. Barletta – Corep Page


10 of 12
D Digital
Processor
Signal

SP
Figura : DSP benchmarks.
11. DSP vs. general purpose processor : una
panoramica.
Abbiamo visto che una della maggiori caratteristiche dei DSP è
quella di eseguire moltiplicazioni complesse in virgola fissa o
floating point in un solo colpo di clock: questo grazie all’utilizzo sia
di un’architettura multibus che permetteva di eseguire piu’
operazioni in un solo colpo di clock e sia grazie all’incremento del
parallellismo delle operazioni prodotto da unità di tipo pipelined ,
nonchè da dispositivi di moltiplicazione-addizione e dai generatori
di indirizzo automatici.
Per aumentare il parallelismo interno dei GPP sono state
sviluppati processori superscalari, che eseguono 4 istruzioni in un
singolo colpo di clock. In più sono state introdotte nuove unità per
l’esecuzione di istruzioni multiple, un set di registri più ampi e
dispositivi per la predizione di salti condizionati (brench prediction
unit), che incrementano ulteriormente le prestazioni.
Sempre nella classe di processori di tipo RISC e CISC sono statio
introdotte unità hardware per eseguire in un solo colpo di clock
moltiplicazioni e moltiplicazioni-addizioni che sono ideali per
applicazioni DSP.
E’ iniziata la guerra !!
Riassumiamo i principali approcci seguiti per implementare su
GPP caratteristiche specidfiche dei DSP:
1. GPP con nessuna o poche specifiche simili ai DSP;
2. GPP con caratteristichwe simili ai DSP;
3. i co-processori DSP .
Il primo gruppo è rappresentato da processori come il Pentium
(P54C), PowerPC 604e, IDT R4650; benchè non abbiano unità che gli
permettono di operare come i DSP, raggiungono buone prestazioni
per i seguenti motivi:
 clock elevati (più di 200 MHz, da 2 a 5 volte quelli dei DSP);
 moltiplicazione ed istruzioni eseguite in un singolo colpo di
clock;
 buona banda di memoria;
 overhead nei loop ridotto dall’uso di unita di brench prediction;
 generatori di indirizzi.

Nel secondo gruppo si sono seguite in generale due strategie: la


prima è quella di implementare istruzioni SIMD (Single Instruction
Multiple Data), cioè un’istruzione su più dati; la seconda è quella di
integrare unità specifiche dei DSP direttamente nei processori.
Esempi di tal genere sono rispettivamennte l’Intel Pentium MMX
(P55C) e l’Hitachi SH-DSP.
L’ultima soluzione è quella di affiancare ai processori dei DSP
che operano come co-processori: ARM Piccolo.

Kernel Architecture
Nel mondo dei DSP difficilmente si parla di sistemi operativi o
di gestione dei task, quello che in gergo informatico viene chiamato
kernel. In sistemi di tipo embedded, cioè per applicazioni specifiche,
il sistema viene coordinato in modi differenti, senza l’ausilio di un
codice che coordini e gestisca le applicazioni, anche perchè in tali
sistemi le risorse sono ottimizzate e un sistema di gestione
occuperebbe molto spazio.

@ A. Ziola A. Barletta – Corep Page


11 of 12
D Digital
Processor
Signal

SP
E’ bene introdurre sinteticamente alcuni concetti legati alle  comunicazione e sincronizzazione dei task
possibilità offerte per implementare dei vetri e propri SO su  gestore dei task (supervisor)
architetture DSP.  gestore di memoria (per creare dei buffer per ogni task)
In seguito si elencheranno i principali tipi di kernel e come tutti elementi basilari di un sistema operativo !!
questi vengono utilizzati e si adattano ad applicazioni specifiche.
In generale si distinguono per complessità di implementazione e Multiprocesso Cooperativo
per gradi via via crescenti di efficienza le seguenti tipologie di Prendiamo un esempio pratico: consideriamo una segreteria
gestione: telefonica digitale multifunzione, in cui si eseguano sullo stesso
a) singolo processo + servizio di interrupt per I/O; segnale un’analisi vacale (speech recognition), una compressione dei
b) multiprocesso cooperativo; dati (recording compression) e la rilevazione dei toni di centrale
c) thread multipli a divisione di tempo con gestione round-robin; (tone detection). Ogni funzione deve essere eseguita da un processo
d) combinazione del punto b) e c); separato ed i processi devono essere coordinati in sequenza: ognii
e) mulritasking preeemptive. processo deve eseguire il suo task su un buffer di dati e cedere
successivamente la CPU agli altri processi.
Singolo processo + servizio di interrupt per I/O In un sistema di tipo cooperative, il kernel dovrebbe mantenere
• startup procedure una lista dei processi e gestire l’ordine di esecuzione, ma il
• Interrupt Service Routine meccanismo di switch è controllato da ogni singolo processo che alla
• comunicazione task/ISR fine del proprio compito cede le risorse (CPU, memoria, I/O) agli
• sincronizzazione altri........
In una architettura di questo tipo si ha bisogno in primis di una
procedura di inizializzazione, che renda disponibile gli interrupt e
configuri la frequenza di trasmissione dei dati da/per le periferiche
esterne.
Poi vi è la routine di gestione degli interrrupt (Interrupt Service
Routine): se il sistema non sopporta dei registri ombra (shadow
registers) [dove i registri utilizzati vengono spostati prima dell’inizio
della routine di interrupt e copiati nuovamente al termine di questa]
deve prima salvare tutte le varianbili di stato del processo e in
seguito riportarle a fine interruzione: questi non sono dettagli di
poco conto anche perchè un’imprecisione di questi meccanismi può
causare degli errori (bug) non sempre individuabili
immediatamente.
Più complesso è il meccanismo di comunicazione tra il processo Applicazioni.
e il servizio di interrupt. Tipicamente ISR gestisce un dato per ogni
interrupt, mentre il processo lavora su un buffer di dati: per
ottimizzare tale meccanismo per applicazioni di tipo real time
occorre avere almeno due buffer di sistema, in tal modo mentre il
processo elabora i dati in un buffere ISR riempie il secondo.
Tutto questo sistema ha bisogno di un meccanismo di
sincronizzazione, cioè di come il processo si accorge che un buffer
può essere elaborato: il modo più semplice è quello di controllare
regolarmente (poll) un flag per sapere se il buffer è pieno (un modo
non efficiente dal punto dello spereco delle risorse ma semplice). Per
sistemi che hanno un solo processo attivo, questo sistema di
gestione è molto efficiente e semplice da implementare: pensiamo ad
esempio a....

♦♦♦

La sincronizzazione di più processi deve avvenire con modalità


più sofisticate: il kernel del sistema deve fermare il processo in attesa
di input e permettere ad altri processi di usare il tempo dell aCPU; in
più deve gestire le risorse condivise (buffer di dati) attraverso
meccanismi di tipo semaforo, che non permettano a più di un
proceso di accedere all’unica risporsa. Prima di procedere oltre,
facciamo osservare che un sistema di gestione di questo tipo deve
prevedere:
 gestione degli interrupt;

@ A. Ziola A. Barletta – Corep Page


12 of 12