16.06.2013 Views

Elaborazione Numerica dei Segnali

Elaborazione Numerica dei Segnali

Elaborazione Numerica dei Segnali

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!