Elaborazione Numerica dei Segnali
Elaborazione Numerica dei Segnali
Elaborazione Numerica dei Segnali
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
126 Architetture DSP<br />
CLK<br />
STA ADR1<br />
LDA ADR3<br />
STA ADR2<br />
fetch decode execute<br />
fetch decode execute<br />
fetch decode execute<br />
Figura 6.5 Esecuzione di tre istruzioni in un’architettura Harvard.<br />
• Per ottimizzare le prestazioni, il processore deve prelevare ed eseguire le istruzioni<br />
in un unico ciclo macchina: questo pone vincoli e costi che discutiamo in seguito.<br />
• Scrivere programmi per una architettura Harvard è un po’ più complicato che per<br />
l’architettura Von Neumann.<br />
Per aumentare flessibilità nell’allocazione di spazio di memoria, alcuni processori prevedono<br />
speciali blocchi di memoria che possono essere riconfigurati o come memoria per dati<br />
o come memoria per programmi. Questo porta a processori con una architettura di Harvard<br />
modificata: un singolo bus è usato esternamente per dati e indirizzi, mentre due o<br />
più bus separati per dati e programmi sono usati internamente.<br />
In Figura 6.6 è mostrato il diagramma a blocchi del DSP TMS320C203 (prodotto da<br />
Texas Instruments) basato su un’architettura Harvard modificata.<br />
Osserviamo infine che l’architettura Harvard può essere ulteriormente estesa, permettendo<br />
al processore di accedere a varie aree di memoria per dati, ognuna con un proprio<br />
bus dati e bus indirizzi.<br />
6.3 Istruzioni di Base di un DSP<br />
Per ottenere alta velocità di esecuzione è necessario prelevare, decodificare ed eseguire<br />
ogni istruzione nel più breve tempo possibile. Gli approcci-limite tradizionali che vengono<br />
seguiti nella progettazione di un microprocessore a questo riguardo sono:<br />
Approccio VLIW (Very Long Instruction Word). Viene previsto un insieme di istruzioni<br />
di base molto grande, in modo che risolvere un problema richieda programmi con<br />
poche istruzioni. Per contro, questa scelta richiede di codificare ogni istruzioni con<br />
molte parole nell’area programmi, così che prelevare, decodificare ed eseguire una<br />
istruzione richiede molti cicli di clock.<br />
Approccio RISC (Reduced Instruction Set). Si sceglie di implementare in questo<br />
caso solo un piccolo insieme di istruzioni di base. In questo modo la scrittura di<br />
un programma richiede più istruzioni, ma ogni istruzione può essere codificata con