Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso -...

23
Simone Buso - Microcontrollori e DSP - Lezione 3 1 Lezione 3 Sommario Caratteristiche generali di una architettura Criteri per la classificazione delle architetture Architetture di tipo RISC Architetture di tipo CISC Architetture per mC e DSP Repertorio di istruzioni dei mC e dei DSP Modi di indirizzamento Simone Buso - Microcontrollori e DSP - Lezione 3 2 Lezione 3 Materiale di riferimento 1. R. Shankar, E. B. Fernandez, "VLSI and computer architecture", Academic Press, Inc., 1989, cap. 10 – 21, pagg. 357 - 460 2. G. Bucci, "Architetture degli elaboratori elettronici", McGraw-Hill, 2001, cap. 2, pp. 41 –76. 3. P. Lapsley, J. Bier, A. Shoham, E.A. Lee, "DSP Processor Fundamentals - Architectures and Features", IEEE Press, New York, 1997, cap 4, cap. 7. 4. K. Hintz, D. Tabak, "Microcontrollers - Architecture, Implementation and Programming", Mc Graw - Hill, 1992, cap. 2. 5. Berkeley Design Technology, Inc.(BDTi), “DSPs adapt to new challenges”, reperibile sul sito del corso.

Transcript of Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso -...

Page 1: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

1

Simone Buso - Microcontrollori e DSP - Lezione 3 1

Lezione 3Sommario• Caratteristiche generali di una architettura• Criteri per la classificazione delle

architetture• Architetture di tipo RISC• Architetture di tipo CISC• Architetture per mC e DSP• Repertorio di istruzioni dei mC e dei DSP• Modi di indirizzamento

Simone Buso - Microcontrollori e DSP - Lezione 3 2

Lezione 3Materiale di riferimento1. R. Shankar, E. B. Fernandez, "VLSI and computer

architecture", Academic Press, Inc., 1989, cap. 10 – 21, pagg. 357 - 460

2. G. Bucci, "Architetture degli elaboratori elettronici", McGraw-Hill, 2001, cap. 2, pp. 41 –76.

3. P. Lapsley, J. Bier, A. Shoham, E.A. Lee, "DSP Processor Fundamentals - Architectures and Features", IEEE Press, New York, 1997, cap 4, cap. 7.

4. K. Hintz, D. Tabak, "Microcontrollers - Architecture, Implementation and Programming", Mc Graw - Hill, 1992, cap. 2.

5. Berkeley Design Technology, Inc.(BDTi), “DSPs adapt to new challenges”, reperibile sul sito del corso.

Page 2: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

2

Simone Buso - Microcontrollori e DSP - Lezione 3 3

Architettura di un processoreL’architettura di un processore è l’insieme delle risorse che ne consentono la programmazione in linguaggio macchina.Questa viene talvolta indicata come architettura lato utente (user architecture), per distinguerla da quella lato sistema(system architecture), che si riferisce invece alle risorse richieste dal sistema operativo (in un processore general purpose). Per noi solo la prima accezione ha senso, dato che non ci occuperemo di sistemi operativi per mC e DSP (sebbene ne esistano).

Simone Buso - Microcontrollori e DSP - Lezione 3 4

Architettura di un processoreIndipendentemente dalla sua implementazione, la finalità di un’architettura è sempre quella di fornire un supporto efficiente alla programmazione di un processore. La definizione di efficienza di una architettura è però un concetto mutevole nel tempo e largamente dipendente dalle applicazioni. Alcune architetture privilegiano il raggiungimento di elevate prestazioni, altre la facilità di uso, altre ancora la programmabilità ad alto livello dei processori.

Page 3: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

3

Simone Buso - Microcontrollori e DSP - Lezione 3 5

Architettura di un processoreDiscutere l’architettura di un processore significa valutare i seguenti aspetti:

1. struttura delle istruzioni;

2. modi di indirizzamento dei dati;

3. funzioni realizzate dalle istruzioni.

La definizione di una architettura sottintende sempre una precisa organizzazione hardware. Organizzazione e architettura sono quindi due aspetti collegati della progettazione di un processore.

Simone Buso - Microcontrollori e DSP - Lezione 3 6

Classificazione delle architettureE’ possibile classificare le architetture in funzione delle caratteristiche dell’insieme di istruzioni che rendono disponibili al programmatore.

In alternativa, è possibile una classificazione basata sulla filosofia di programmazionesottintesa dall’architettura stessa (linguaggio ad alto livello di riferimento).

I due criteri hanno tra loro una considerevole sovrapposizione.

Page 4: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

4

Simone Buso - Microcontrollori e DSP - Lezione 3 7

Classificazione delle architettureLe caratteristiche di maggiore interesse per un insieme di istruzioni sono le seguenti:

• Simmetria• Ortogonalità• Compattezza• Flessibilità• Velocità di esecuzione• Costo• Facilità di debugging• Corrispondenza con linguaggi di alto livello

Simone Buso - Microcontrollori e DSP - Lezione 3 8

Classificazione delle architettureLa simmetria di un insieme di istruzioni indica il grado di uniformità dei modi di indirizzamento tra le diverse istruzioni. Un insieme di istruzioni si dice simmetricoquando esistono poche differenze nei modi di indirizzamento possibili per le varie istruzioni e quindi quando tutti gli operatori possono essere applicati a tutti i tipi di dati. Un set di istruzioni simmetrico implica quindi una maggiore uniformità nei formatidelle istruzioni.

Page 5: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

5

Simone Buso - Microcontrollori e DSP - Lezione 3 9

Classificazione delle architettureL’ortogonalità delle istruzioni indica direttamente la regolarità nella struttura della parola che rappresenta un’istruzione. Un set di istruzioni ortogonali presenta parole della stessa lunghezza, in cui le dimensioni dei campi associati alle specifiche funzioni (e.g OPCODE) sono sempre le stesse.

Questo consente di avere un formato di istruzioni unico e costante, favorendo l’allineamento delle stesse in memoria e quindi la velocità del processore.

Simone Buso - Microcontrollori e DSP - Lezione 3 10

Classificazione delle architetture

La compattezza delle istruzioni indica la dimensione del codice macchina che viene generato nella compilazione di un dato programma. Alcune architetture favoriscono la compattezza più di altre (relazione con la complessità delle istruzioni).

La flessibilità indica invece la facilità con la quale è possibile modificare l’insieme di istruzioni, e.g. aggiungendone di nuove in una successiva versione del processore.

Page 6: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

6

Simone Buso - Microcontrollori e DSP - Lezione 3 11

Classificazione delle architetture

La velocità di esecuzione è chiaramente un parametro fondamentale per una architettura. Questa è sempre in relazione con il costo del processore.

Si parla di costo di una architettura intendendo il costo del processore che la pone in atto. Questo a sua volta è funzione della tecnologia impiegata, della complessità dei circuiti da realizzare (area di silicio richiesta) e del volume di produzione atteso.

Simone Buso - Microcontrollori e DSP - Lezione 3 12

Classificazione delle architettureLa facilità di debugging indica la leggibilità del codice generato dalla compilazione/scrittura di un programma. Questa è importante per la ri-usabilità e portabilità del codice.

E’ anche associata alla maggiore o minore somiglianza del codice macchina con un linguaggio di alto livello (corrispondenza).Alcune architetture rendono disponibili costrutti tipici dei linguaggi ad alto livello (cicli for, repeat, etc.).

Page 7: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

7

Simone Buso - Microcontrollori e DSP - Lezione 3 13

Classificazione delle architettureSulla base dei parametri appena discussi una possibile classificazione delle architetture è la seguente:

• Architetture RISCBasate su registriBasate su accumulatore/stack (obsolete)

• Architetture di tipo CISCVon Neumann esteseOrientate ad oggetti/linguaggiOrientate alla sicurezza (poco diffuse)

Simone Buso - Microcontrollori e DSP - Lezione 3 14

Architetture RISCLe architetture RISC sono quelle nelle quali le istruzioni sono meno numerose (poche decine) e più semplici possibile. La semplicità è relativa sia al formato che alle funzionalità delle istruzioni.Queste hanno tutte le stesse dimensioni (es. 16 bit) e struttura di parola identica.Siccome la decodifica (quasi sempre cablata)risulta molto semplice, le architetture RISC permettono spesso l’esecuzione di tutte le istruzioni in un solo ciclo macchina.

Page 8: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

8

Simone Buso - Microcontrollori e DSP - Lezione 3 15

Architetture RISC

La semplificazione dell’unità di controllo prodotta dalle architetture RISC comporta un considerevole risparmio di area di silicio (riduzione dei costi). L’area risparmiata consente la realizzazione di strutture come banchi di registri o memorie cache, che accelerano ulteriormente l’esecuzione dei programmi.L’organizzazione della CPU è quindi quasi sempre del tipo a molti registri.

Simone Buso - Microcontrollori e DSP - Lezione 3 16

Architetture RISCLe prime realizzazioni di processori RISC avevano una organizzazione della CPU basata su un accumulatore e/o un piccolo stack.Queste avevano istruzioni senza operandi,quindi di massima semplicità, ma comportavano un intenso traffico di dati da e per la memoria.Le prestazioni delle CPU sono aumentate nel tempo molto più rapidamente di quelle delle memorie che sono il “collo di bottiglia” di un processore. Le organizzazioni a stack sono quindi state progressivamente abbandonate.

Page 9: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

9

Simone Buso - Microcontrollori e DSP - Lezione 3 17

Architetture CISCLe architetture di tipo CISC sono caratterizzate da insiemi molto numerosi di istruzioni (anche centinaia), di struttura variabile ed, in genere, piuttosto complessa.La decodifica è in questo caso spesso microprogrammata, per semplificare la realizzazione dell’unità di controllo.Inoltre l’esecuzione delle istruzioni richiede quasi sempre più cicli macchina.Architetture CISC sono comuni a molti processori per uso generico (fino ai primi anni ‘90), piuttosto rare nei mC e DSP.

Simone Buso - Microcontrollori e DSP - Lezione 3 18

Architetture CISCLe architetture di tipo CISC sono realizzate in diverse varianti. La versione più comune sottende un’organizzazione hardware di tipo Von Neumann, con eventuali potenziamenti (si parla di architetture Von Neumannestese). I principali interventi di miglioramento consistono nell’introduzione di:1. memorie cache;2. coprocessori;3. blocchi di debugging (funzioni di

“program tracing”).

Page 10: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

10

Simone Buso - Microcontrollori e DSP - Lezione 3 19

Architetture CISCSpecialmente nel passato (anni ‘80), si sono avute realizzazioni di processori orientate ai linguaggi o agli oggetti. I primi miravano ad interpretare direttamente a livello hardware le istruzioni di qualche linguaggio ad alto livello (LISP, FORTH, ..).I processori orientati agli oggetti tentavano invece di rendere astratta l’organizzazione a basso livello del processore, lasciando all’utente la possibilità di creare oggetti di varie classi (es. istruzioni) con una struttura predefinita a livello hardware.

Simone Buso - Microcontrollori e DSP - Lezione 3 20

Architetture per mC e DSPLe architetture di alcuni mC di progettazione più datata (anni ’70) sono di tipo CISC (es. Intel 8XC196, Renesas H8S, …). Si tratta di processori estremamente diffusi, ma raramente utilizzati in prodotti di nuova concezione.Più recentemente si sono andate affermando architetture di tipo RISC, specialmente per i dispositivi destinati ad usi intensivi (controllo real-time). Le caratteristiche di questi processori sono spesso equivalenti a quelle di un DSP (a virgola fissa).

Page 11: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

11

Simone Buso - Microcontrollori e DSP - Lezione 3 21

Architetture per mC e DSPLe architetture per DSP sono normalmente ispirate alla filosofia RISC, quindi sono sostenute da CPU che prevedono un notevole numero di registri e sistemi di controllo cablati. I DSP presentano tuttavia caratteristiche che li differenziano notevolmente dai processori RISC di tipo general-purpose.Il formato delle istruzioni è compatto, ma include numerosi campi, per aumentare la potenza delle singole istruzioni.

Simone Buso - Microcontrollori e DSP - Lezione 3 22

Architetture per mC e DSPQuesto approccio tende a rendere il repertorio di istruzioni asimmetrico e non ortogonale, con conseguenti difficoltà nella programmazione e successivo debugging.Specialmente le prime realizzazioni su larga scala (Texas Instruments, Motorola), si caratterizzavano per la complessità del linguaggio assembly e la impossibilità materiale di ottenere una efficienteprogrammazione ad alto livello (scarsa qualità dei compilatori).

Page 12: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

12

Simone Buso - Microcontrollori e DSP - Lezione 3 23

Architetture per mC e DSPL’aumento della complessità degli algoritmi usati nelle applicazioni più recenti (anni ‘90) dei DSP (e.g. telefonia mobile) ha spinto verso la realizzazione di architetture più facilmente programmabili.Una soluzione molto utilizzata è denominata VLIW (Very Long Instruction Word). Questa architettura combina molte (4, 8) istruzioni semplici in una sola macro-istruzione, che viene letta tutta in una volta dalla CPU. Le istruzioni componenti vengono eseguite in parallelo, quindi in un solo ciclo (risc → cisc).

Simone Buso - Microcontrollori e DSP - Lezione 3 24

Architetture per mC e DSP

DSP convenzionale: una istruzione complessa è ripetuta ntaps volte.

DSP con architettura VLIW: molte semplici istruzioni vengono eseguite in parallelo.All’atto della creazione del codice macchina, sono collocate all’interno di una singola VLIW.

Page 13: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

13

Simone Buso - Microcontrollori e DSP - Lezione 3 25

Architetture per mC e DSPIl fatto che le istruzioni base siano molto semplici rende più facile la realizzazione di compilatori efficienti. Il fatto che la potenza delle singole istruzioni si riduca, richiede però più memoria per il codice compilato. Questo si traduce in un aumento di costo.Sono stati tentati approcci differenti:

a) istruzioni a lunghezza variabile;b) approccio SIMD;c) processori “su misura”.

Simone Buso - Microcontrollori e DSP - Lezione 3 26

Architetture per mC e DSP

Alcuni DSP presentano architetture con istruzioni a lunghezza variabile.Le istruzioni di tipo aritmetico, usate all’interno di algoritmi di calcolo, sono di tipo VLIW, per favorire il parallelismo e flessibilità nell’indirizzamento dei dati.Invece, istruzioni di tipo diverso (e.g. istruzioni di controllo, manipolazione di bit) sono di formato più compatto, per favorire una minore occupazione di memoria.

Page 14: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

14

Simone Buso - Microcontrollori e DSP - Lezione 3 27

Architetture per mC e DSP

Benchmark: occupazione di memoria

Simone Buso - Microcontrollori e DSP - Lezione 3 28

Architetture per mC e DSP

Altri DSP fanno uso di architetture SIMD(Single Instruction, Multiple Data). Queste consentono l’esecuzione in parallelo della stessa istruzione su dati differenti, incrementando così le prestazioni.Questo approccio, in alcuni casi (serie Texas C64, AD Blackfin o Tiger SHARC) viene combinato con il VLIW. L’obiettivo in questo caso è l’incremento massimo della potenza di calcolo.

Page 15: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

15

Simone Buso - Microcontrollori e DSP - Lezione 3 29

Architetture per mC e DSPInfine, per alcuni prodotti vengono utilizzati DSP su misura (licensable cores). In questo caso l’utilizzatore può definire un repertorio di istruzioni ottimizzato per la sua specifica applicazione, arrivando anche a personalizzare l’organizzazione hardware del chip.Benchè questo approccio porti a realizzazioni estremamente ottimizzate (nessuna risorsa viene sprecata) introduce tempi di sviluppo molto lunghi, costi elevati e scarsa flessibilità.

Simone Buso - Microcontrollori e DSP - Lezione 3 30

Repertorio delle istruzioni nei DSPIl repertorio delle istruzioni di un DSP, è fortemente orientato al calcolo e include una ampia gamma di funzioni aritmetiche, logiche e matematiche.

Per velocizzare l’esecuzione di alcuni tipici algoritmi (DFT, filtri FIR,…), vengono inoltre offerti modi di indirizzamento specifici.

Tra una famiglia di DSP e un’altra, possono esserci differenze anche notevoli nel repertorio delle istruzioni: alcuni elementi sono però molto comuni.

Page 16: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

16

Simone Buso - Microcontrollori e DSP - Lezione 3 31

Istruzioni aritmetiche nei DSPLa moltiplicazione è sempre presente e viene eseguita in un solo ciclo, spesso in diverse modalità (intera, frazionaria, con o senza segno). E’ possibile far seguire alla moltiplicazione una operazione di shift e/o somma sull’accumulatore, che vengono eseguiti nello stesso ciclo macchina. Alla moltiplicazione è dedicato un apposito circuito esterno alla ALU e denominato MAC.In alcune unità è disponibile anche l’istruzione di divisione, ma, di norma, questa non è presente a livello hardware.

Simone Buso - Microcontrollori e DSP - Lezione 3 32

Alcuni DSP presentano la possibilità di operare in aritmetica saturata, mettendo al riparo da effetti indesiderati dovuti a overflow dell’accumulatore, causati ad es. da ripetute istruzioni di moltiplicazione e somma (MAC).Sempre per agevolare lo sviluppo di algoritmi di calcolo, anche le istruzioni di shift logico e aritmetico sono molto flessibili. Fanno spesso uso di un circuito apposito detto barrel shifter. Esso rende possibile scalare agevolmente i dati durante l’elaborazione.

Istruzioni aritmetiche nei DSP

Page 17: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

17

Simone Buso - Microcontrollori e DSP - Lezione 3 33

Istruzioni aritmetiche nei DSPMolti DSP consentono al programmatore la scelta della strategia con cui gestire le operazioni che comportano la riduzione del numero di bit dedicati alla rappresentazione di un dato (es: right shift). Le opzioni sono:1. troncamento;2. arrotondamento (elimina l’errore

sistematico introdotto dalle operazioni di troncamento);

3. arrotondamento convergente.

Simone Buso - Microcontrollori e DSP - Lezione 3 34

Istruzioni aritmetiche nei DSPa7 a6 a5 a4 a3 a2 a1 a0 Operando a 8 bit

b3 b2 b1 b0Scalo su 4 bit

b3b2b1b0 = a7a6a5a4 troncamentob3b2b1b0 = a7a6a5a4 + a3 arrotondamento

b3b2b1b0 = a7a6a5a4 + a3 se a3a2a1a0 <> 10002

b3b2b1b0 = a7a6a5a4 + a4 se a3a2a1a0 = 10002

Arrotondamento convergente

Page 18: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

18

Simone Buso - Microcontrollori e DSP - Lezione 3 35

Istruzioni aritmetiche nei DSPNel repertorio delle istruzioni aritmetiche sono talvolta presenti funzioni come:a) radice quadrata;b) funzioni trigonometriche (sinx, cosx).

Queste non sono però mai realizzate a livello hardware e quindi richiedono molti cicli macchina per essere calcolate.Risulta alle volte più conveniente ricorrere ad approssimazioni polinomiali delle funzioni suddette, che possono essere calcolate in modo molto efficiente.

Simone Buso - Microcontrollori e DSP - Lezione 3 36

In aggiunta alle istruzioni che realizzano le operazioni aritmetiche fondamentali, tutti i DSP dispongono di ulteriori istruzioni che consentono ad esempio:1. spostamento di dati;2. confronto rapido di dati; 3. manipolazione di bit;4. ripetizione di segmenti di codice;5. salti, chiamate a subroutine;6. emulazione di aritmetica a virgola mobile

(per i DSP a virgola fissa).

Repertorio delle istruzioni nei DSP

Page 19: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

19

Simone Buso - Microcontrollori e DSP - Lezione 3 37

Repertorio delle istruzioni nei mCStoricamente, i mC hanno sempre avuto un repertorio di istruzioni orientato al controllodi processi più che al calcolo (elaborazione numerica di segnali).Molto spesso le funzioni aritmetiche più avanzate (e.g. moltiplicazione) erano presenti solo a livello di istruzione (i.e. non c’era il moltiplicatore hardware). L’esecuzione di queste istruzioni richiedeva quindi numerosi cicli macchina.Questo rendeva spesso problematica la realizzazione di controlli real-time.

Simone Buso - Microcontrollori e DSP - Lezione 3 38

Repertorio delle istruzioni nei mCAttualmente, l’organizzazione dei mC (di alta gamma) ricalca quella dei DSP a virgola fissa di una decina di anni fa.Il repertorio delle istruzioni di questi dispositivi è quindi simile a quello di un DSP (filosofia RISC, elevata regolarità, programmabilità ad alto livello, …) e spesso è presente il moltiplicatore hardware.Gli accorgimenti descritti in precedenza per l’incremento delle prestazioni (parallelismo) non sono però riprodotti nei mC, essenzialmente per questioni di costo.

Page 20: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

20

Simone Buso - Microcontrollori e DSP - Lezione 3 39

Repertorio delle istruzioni nei mCPer le applicazioni in tempo reale e comunque in ambito industriale, spesso i mC vengono preferiti ai DSP perché includono al loro interno tutte le periferiche necessarie all’interfacciamento con i tipici sistemi da controllare (azionamenti, convertitori di potenza, etc.).Inoltre sono spesso più economici, dissipano minore potenza (adatti alle applicazioni embedded), e sono assai meno suscettibili ai disturbi elettromagnetici tipici dell’ambiente industriale.

Simone Buso - Microcontrollori e DSP - Lezione 3 40

Struttura delle istruzioniTanto nei mC che nei DSP le istruzioni hanno strutture abbastanza regolari.Tipicamente sono disponibili istruzioni fino a tre operandi. La struttura della instruction word (IW) è spesso funzione dell’opcode (si riduce però la velocità di decodifica).Il campo OPCODE è suddiviso in sotto-campi con funzioni specifiche.

OPCODEoperando #1

operando #2operando #3

Page 21: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

21

Simone Buso - Microcontrollori e DSP - Lezione 3 41

Struttura delle istruzioniE’ possibile sviluppare architetture con istruzioni senza operandi (macchine a stack). Esse risultano però poco efficienti e sono ormai state abbandonate.Le istruzioni con un solo operando del tipo:ADD Xsottintendono la presenza di un registro accumulatore.Nelle organizzazioni delle CPU a molti registri diventano possibili istruzioni come:ADD X, Y, Z

Simone Buso - Microcontrollori e DSP - Lezione 3 42

Modi di indirizzamentoI più comuni modi di indirizzamento dei dati sono:• immediato: l’operando è esplicitamente inserito nell’IW;

• a registro: l’operando è in un registro della CPU (specificato nella IW);

• diretto o assoluto: l’istruzione contiene l’indirizzo in memoria dell’operando;

• indiretto: l’istruzione contiene l’indirizzo in memoria dell’indirizzo dell’operando (puntatore).

Page 22: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

22

Simone Buso - Microcontrollori e DSP - Lezione 3 43

Modi di indirizzamentoAltri modi di indirizzamento, molto comuni nei mC e nei DSP sono:• indiretto con auto-incremento: l’IW contiene l’indirizzo di un puntatore, cui viene automaticamente sommato ±1 (talora ±2);

• indiretto con offset (indicizzato): il puntatore viene sommato ad una costante inclusa nell’IW per formare l’indirizzo del dato.

Simone Buso - Microcontrollori e DSP - Lezione 3 44

Modi di indirizzamentoDSP e mC spesso utilizzano unità per la generazione degli indirizzi (AGU) che sono esterne all’ALU e lavorano in background.Ciò rende possibili modi di indirizzamento anche più sofisticati e efficienti:• indiretto su registro: l’indirizzo del puntatore è contenuto in un registro (sono possibili incrementi, offset, …);

• circolare: facilita la gestione di vettori di dati (tipico dei DSP);

• a bit rovesciati: per la DFT (solo DSP).

Page 23: Lezione 3 - Università degli studi di Padovapel/MicroC_e_DSP/Materiale_da... · Simone Buso - Microcontrollori e DSP - Lezione 3 10 Classificazione delle architetture La compattezza

23

Simone Buso - Microcontrollori e DSP - Lezione 3 45

Indirizzamento circolareX0 X1 X2 X3

puntatore di lettura

puntatore di scrittura

Quando uno dei puntatori (r o w) raggiunge la fine del vettore deve essere resettato.

r w

X0

X1 X2X3

r

w

Quando uno dei puntatori (r o w) raggiunge la fine del vettore passa in modo automatico alla posizione di partenza.

Simone Buso - Microcontrollori e DSP - Lezione 3 46

Indirizzamento a bit rovesciati

DFT

x0x1x2x3x4x5x6x7

X0X4X2X6X1X5X3X7

000 = 0001 = 1010 = 2011 = 3100 = 4101 = 5110 = 6111 = 7

000 = 0100 = 4010 = 2110 = 6001 = 1101 = 5011 = 3111 = 7

La lettura a bit rovesciati di una sequenza ordinataproduce proprio la sequenza di uscita X della DFT: è allora immediato creare il vettore ordinato Y.

Y0 = X[000] = X0Y1 = X[100] = X1Y2 = X[010] = X2Y3 = X[110] = X3Y4 = X[001] = X4Y5 = X[101] = X5Y6 = X[011] = X6y7 = X[111] = X7

012

345

67