Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione...

21
Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario Struttura base dell’hardware di un processore (ALU, memoria, I/O). Organizzazione Von Neumann vs Harvard. Organizzazione della ALU. Bus dati, istruzioni, indirizzi. Metodi di controllo. Sistemi di memoria (registri, RAM, …). Periferiche di I/O. Simone Buso - Microcontrollori e DSP - Lezione 2 2 Lezione 2 Materiale di riferimento 1. D. A. Patterson, J. L. Hennessy, “Computer Organization and Design”, Morgan Kaufmann, cap. 5 pagg. 338 - 426. 2. A. Clements, "The principles of computer hardware", Oxford, 2000, cap. 5, pagg. 212 - 260. 3. Berkeley Design Technology, Inc.(BDTi), “The evolution of DSP processors”, reperibile sul sito del corso in formato pdf.

Transcript of Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione...

Page 1: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

1

Simone Buso - Microcontrollori e DSP - Lezione 2 1

Lezione 2Sommario• Struttura base dell’hardware di un

processore (ALU, memoria, I/O).• Organizzazione Von Neumann vs Harvard.• Organizzazione della ALU.• Bus dati, istruzioni, indirizzi.• Metodi di controllo.• Sistemi di memoria (registri, RAM, …).• Periferiche di I/O.

Simone Buso - Microcontrollori e DSP - Lezione 2 2

Lezione 2Materiale di riferimento

1. D. A. Patterson, J. L. Hennessy, “Computer Organization and Design”, Morgan Kaufmann, cap. 5 pagg. 338 - 426.

2. A. Clements, "The principles of computer hardware", Oxford, 2000, cap. 5, pagg. 212 -260.

3. Berkeley Design Technology, Inc.(BDTi), “The evolution of DSP processors”, reperibile sul sito del corso in formato pdf.

Page 2: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

2

Simone Buso - Microcontrollori e DSP - Lezione 2 3

OrganizzazioneTutti i microprocessori hanno in comune alcuni elementi di organizzazione di base:

• ALU (unità aritmetico-logica + controllo) • Memoria • Dispositivi di I/O

I mC e i DSP spesso presentano specialicaratteristiche rispetto ai processori “general purpose” (GPP) in ciascuno di questi elementi, per ragioni di costo e di prestazioni richieste (potenza di calcolo, consumo …).

Simone Buso - Microcontrollori e DSP - Lezione 2 4

OrganizzazioneEsistono due diverse filosofie organizzative: 1. Von Neumann

Organizzazione semplice (e quindi economica) usata in processori “general purpose” e in mC di basso costo. I dati e le istruzioni condividono la memoria. C’è un solo sistema di bus (dati + indirizzi).

2. HarvardOrganizzazione per processori ad alte prestazioni, molto comune nei DSP. I dati e le istruzioni risiedono in memorie separate. Sono presenti 2 (o più) sistemi di bus.

Page 3: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

3

Simone Buso - Microcontrollori e DSP - Lezione 2 5

Organizzazione di tipo Von Neumann: una sola memoria per dati e istruzioni, un bus per il trasferimento degli operandi e delle istruzioni alla CPU, un bus per inviare alla memoria gli indirizzi di lettura/scrittura.

CPU N linee (bit)Bus dati Memoria

DatiIstruzioniBus indirizzi

M linee (bit)

Organizzazione

Simone Buso - Microcontrollori e DSP - Lezione 2 6

Organizzazione

CPU

N linee (bit)Bus dati Memoria

Dati

MemoriaProgrammi

M linee (bit)Bus istruzioni

Bus indirizziP linee (bit)

Bus indirizziQ linee (bit)

Organizzazione di tipo Harvard.

Page 4: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

4

Simone Buso - Microcontrollori e DSP - Lezione 2 7

Organizzazione

L’organizzazione di tipo Harvard presenta caratteristiche adatte ai processori ad alte prestazioni. Permette più accessi simultanei alla memoria in un ciclo di clock, riducendo i tempi di esecuzione di un programma.

Esempio: esecuzione del calcolo y = c·x

Il numero di accessi alla memoria richiesti in una organizzazione di tipo Von Neumann può arrivare a 4. In una architettura di tipo Harvard gli accessi richiesti possono invece essere solo 2.

Simone Buso - Microcontrollori e DSP - Lezione 2 8

Organizzazione

Il crescente sviluppo dei DSP ha portato alla realizzazione di processori con organizzazioni più complesse, che vengono spesso indicate come Harvard modificate.

Presentano generalmente caratteristiche di parallelismo: alcune unità funzionali della CPU (ad esempio l’ALU) sono presenti in più “copie”, in modo da permettere l’esecuzione di più istruzioni/azioni simultaneamente. A ciò si accompagna solitamente una struttura apposita del sistema di bus.

Page 5: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

5

Simone Buso - Microcontrollori e DSP - Lezione 2 9

BusAll’interno di un processore, i bus svolgono funzioni di collegamento (trasferimento dati) tra le diverse unità funzionali. Sono costituiti da un certo numero di linee (denominate per estensione “bit”) che, se opportunamente pilotate, possono assumere uno dei due livelli logici.

Il pilotaggio del bus è affidato ad opportune porte logiche, caratterizzate da un’uscita di tipo tri-state (o three-state). Ciò permette di disconnettere le unità dal bus, una volta conclusa la trasmissione\ricezione del dato.

Simone Buso - Microcontrollori e DSP - Lezione 2 10

BusIn un mC e/o DSP sono normalmente presenti diversi tipi di bus. Come nelle CPU per uso generico, dati e istruzioni vengono trasferiti attraverso un bus separato rispetto a quello degli indirizzi.

In più, talora sono presenti bus dedicati alla gestione delle interruzioni o bus interni a specifiche unità funzionali.

Il numero di linee (bit) di ciascuno di questi bus può in generale essere diverso.

Page 6: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

6

Simone Buso - Microcontrollori e DSP - Lezione 2 11

Bus

….

Bus a m bit

d0d1d2 … dm-1

Ai

Ao

EAi

EAo

A

B Bi

Bo

EBi

EBo

Unità funzionali della CPU

Porte tri-state

Simone Buso - Microcontrollori e DSP - Lezione 2 12

Bus

Out = In111Out = In001FloatingX10FloatingX00

OutInEnable

A

EA OutInOut = 0

Porta tri-state a livello logico basso

Page 7: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

7

Simone Buso - Microcontrollori e DSP - Lezione 2 13

Bus

Out = In111Out = In001FloatingX10FloatingX00

OutInEnable

A

EA OutInOut = 1

Porta tri-state a livello logico alto

Simone Buso - Microcontrollori e DSP - Lezione 2 14

Bus

Out = In111Out = In001FloatingX10FloatingX00

OutInEnable

A

EA OutIn Out = floating

Porta tri-state con uscita flottante

Page 8: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

8

Simone Buso - Microcontrollori e DSP - Lezione 2 15

Porta tri-state CMOS

Out

In

EnablePMOS

NMOS

Gnd

Vcc

Il segnale di Enable (attivo basso), abilita il buffer CMOS. Se non abilitata, l’uscita si presenta in uno stato ad alta impedenza.

Simone Buso - Microcontrollori e DSP - Lezione 2 16

Esempi di organizzazioneL’organizzazione di tipo Von Neumann è spesso utilizzata nei mC.

Il mC XC167 di Infineon presenta una organizzazione Von Neumann. Anche se logicamente separati, dati e istruzioni risiedono nella stessa memoria.

Page 9: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

9

Simone Buso - Microcontrollori e DSP - Lezione 2 17

Esempi di organizzazioneD’altra parte, alcuni mC sono organizzati secondo la filosofia Harvard.

I mC della famiglia PICpresentano una separazione fisica delle memorie dati e programmi. Sono quindi caratterizzati da un sistema di bus doppio. Nell’esempio accanto, (17C7xx) il bus dati ha 8 bit, il bus istruzioni 16(ma non tutte le unità funzionali li usano).

Simone Buso - Microcontrollori e DSP - Lezione 2 18

Esempi di organizzazioneL’organizzazione Harvard è invece spesso usata nei DSP. Ad esempio nel DSP 56F8XX Motorola…

Le memorie dati e istruzioni sono fisicamenteseparate.

Page 10: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

10

Simone Buso - Microcontrollori e DSP - Lezione 2 19

Esempi di organizzazione… ovvero nei DSP della serie 21xx di Analog Devices.

Simone Buso - Microcontrollori e DSP - Lezione 2 20

Struttura di base di una CPUGli elementi fondamentali che caratterizzano la CPU di un mC o DSP sono:

• architettura (set di istruzioni disponibili);• frequenza di clock (velocità);• organizzazione hardware (numero di bit,

risorse disponibili).

Tutti i datasheet di mC o DSP pongono questi elementi in grande evidenza, talvolta in modo non propriamente “obbiettivo”.

Page 11: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

11

Simone Buso - Microcontrollori e DSP - Lezione 2 21

Struttura di base di una CPUEsistono diversi tipi di architetture, ma i più diffusi sono:• architettura RISC (Reduced Instruction Set

Computer);• architettura CISC (Complex Instruction Set

Computer)

Il tipo di architettura ha effetto sulle scelte relative all’organizzazione del processore e anche sulla sua programmabilità. Ci sono architetture più orientate alla programmazione ad alto livello (linguaggio C e derivati), altre meno.

Simone Buso - Microcontrollori e DSP - Lezione 2 22

Struttura di base di una CPUPer esigenze di costo e di consumo, nel settore dei mC e DSP le realizzazioni di CPU con frequenze di clock molto elevate sono estremamente rare, riservate ai prodotti di altissima gamma (DSP di ultima generazione, per esempio per il mercato “telecom”).

La gran parte dei mC e DSP lavorano a frequenze di clock piuttosto basse (tipicamente poche decine di MHz).

La differenza dai processori per PC è quindi notevole!

Page 12: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

12

Simone Buso - Microcontrollori e DSP - Lezione 2 23

Struttura di base di una CPUNelle CPU dei mC e dei DSP si ritrovano gli stessi componenti fondamentali propri dei microprocessori per uso generico, ovvero:

• una (o più) ALU (unità aritmetico-logica);• vari registri (PC, IR, MBR, etc.);• circuiti e sistemi di controllo.

Tuttavia, nei prodotti per uso industriale, le soluzioni adottate nel progetto della CPU sono sempre frutto di compromessi tra esigenze concorrenti, tra le quali: velocità, consumo di potenza, costo.

Simone Buso - Microcontrollori e DSP - Lezione 2 24

Struttura di base di una CPUNe consegue che i mC e i DSP offrono, per ragioni differenti, prestazioni molto superioria quelle ottenibili con i migliori processori general purpose (per PC).

Ad esempio, interfacciare un processore generico con un qualunque processo industriale è solitamente molto costoso. Con un mC è invece quasi immediato.

Oppure, far svolgere ad un processore generico operazioni di signal processing è molto penalizzante sotto il profilo delle prestazioni. Un DSP è, di norma, lo strumento più adatto.

Page 13: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

13

Simone Buso - Microcontrollori e DSP - Lezione 2 25

Unità aritmetico logica (ALU)L’unità aritmetico logica è responsabile dell’esecuzione delle istruzioni che comportano operazioni aritmetiche (addizione, sottrazione, moltiplicazione) o logiche (AND, OR, …) sui dati.

Nei mC si trovano ALU capaci di operare su dati a 4, 8, 16, 32 bit. Nei DSP si trovano invece solo ALU a 16, 32 o più bit (anche 128 per applicazioni particolari, e.g. videogames).

La presenza di una o più unità di moltiplicatore hardware è ormai piuttosto comune anche nei mC.

Simone Buso - Microcontrollori e DSP - Lezione 2 26

Unità aritmetico logica (ALU)I dati che vengono elaborati dalla ALU vengono ospitati in opportuni registri. Esistono diverse filosofie organizzative per le ALU, che usano un diverso numero di registri.

Nei casi più semplici l’ALU è dotata di un solo registro detto accumulatore. Le istruzioni agiscono quindi sempre su questo registro, ad esempio:

ADD X

Questa istruzione aggiunge all’accumulatore il contenuto della locazione di memoria X.

Page 14: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

14

Simone Buso - Microcontrollori e DSP - Lezione 2 27

Altre organizzazioni mettono più registri a disposizione dell’ALU permettendo la realizzazione di istruzioni con più operandi, ad esempio:

ADD X, Y, Z

L’istruzione somma i contenuti delle locazioni di memoria X e Y e deposita il risultato nella locazione Z. Questa organizzazione consente maggiori velocità di esecuzione.

Unità aritmetico logica (ALU)

Simone Buso - Microcontrollori e DSP - Lezione 2 28

Unità aritmetico logica (ALU)Struttura di una tipica ALU con accumulatore. Simili organizzazioni si trovano in mC di basso costo (ST6, PIC)

ALU

Accumulatore

MBRGli operandi provengono dal memory buffer register (MBR) e dall’accumulatore. Uno dei due viene sovrascritto dal risultato.

Page 15: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

15

Simone Buso - Microcontrollori e DSP - Lezione 2 29

Unità aritmetico logica (ALU)Struttura di una tipica ALU con molti registri. Simili organizzazioni si trovano in mC ad alte prestazioni e nei DSP.

ALU

Registro #1

Registro #0

Registro #N

Gli operandi provengono dal memory buffer register (MBR) o da uno dei molti registri. Il risultato può essere posto in memoria o in un ulteriore registro.

Simone Buso - Microcontrollori e DSP - Lezione 2 30

Registri

Un registro a m bit si ottiene dalla connessione di m FLIP-FLOPdi tipo D. Spesso le uscite sono bufferizzate per permettere la connessione ad un bus.

….

d0d1d2 … dm-1

….

D QC

D QC

D QC

Clock

Q0

Q1

Qm-1

Bus

Page 16: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

16

Simone Buso - Microcontrollori e DSP - Lezione 2 31

RegistriOltre ad ospitare i dati che l’ALU elabora, i registri della CPU svolgono altre importanti funzioni:

• program counter (PC);• memory address register (MAR);• memory buffer register (MBR)• instruction register (IR);• condition code register (registro di stato);• gestione interruzioni;• gestione/configurazione periferiche.

Simone Buso - Microcontrollori e DSP - Lezione 2 32

Metodi di controlloIl controllo di una CPU può essere realizzato tramite due metodi fondamentali:

1.controllo a logica cablata;

2.controllo microprogrammato.

Il controllo a logica cablata usa opportuni circuitiper generare le sequenze di segnali necessarie a consentire l’esecuzione di un programma.

Il controllo microprogrammato scompone le istruzioni in sequenze di microistruzioni, ciascuna delle quali viene poi eseguita da un opportuno processore (interpretazione).

Page 17: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

17

Simone Buso - Microcontrollori e DSP - Lezione 2 33

Metodi di controlloIl controllo a logica cablata traduce ogni istruzione (ovvero il suo OPCODE) direttamentenella sequenza di segnali di controllo necessari ad eseguirla.

Questo richiede un numero consistente di circuiti logici combinatori e sequenziali. Tipici elementi di questi circuiti sono:

1.decoder (e.g. per riconoscere un OPCODE);

2.generatori di sequenze di impulsi (sequencer);

3.gate arrays (esecuzione delle istruzioni).

Simone Buso - Microcontrollori e DSP - Lezione 2 34

Metodi di controlloIl controllo microprogrammato viene realizzato attraverso unità di controllo la cui struttura riproduce quella di una ulteriore CPU.

Ogni istruzione del processore principale (macroistruzione) corrisponde ad un microprogramma. L’esecuzione del microprogramma produce la generazione della sequenza di segnali di controllo che determinano l’esecuzione della macroistruzione.

I microprogrammi sono contenuti in una apposita memoria (di tipo ROM) contenuta nella CPU.

Page 18: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

18

Simone Buso - Microcontrollori e DSP - Lezione 2 35

Metodi di controlloCaratteristiche del controllo cablato:

+ Velocità

+ Ottimizzazione

- Scarsa flessibilità

- Correzione di eventuali errori molto costosa.

Attualmente, il controllo cablato viene normalmente impiegato nei processori di tipo RISC. Tecniche CAD molto sofisticate riducono il rischio di errori nella realizzazione dei circuiti logici di controllori anche molto complessi.

Simone Buso - Microcontrollori e DSP - Lezione 2 36

Metodi di controlloCaratteristiche del controllo microprogrammato:

+ Flessibilità

+ Facilità nella correzione di errori o modifica

- Occupazione considerevole di area (costo)

- Velocità limitata.

Attualmente, il controllo microprogrammatoviene usato solo per i processori di tipo CISC, i cui progetti iniziali risalgano agli anni ‘70.Esistono diverse famiglie di mC con architettura CISC (Renesas H8S, Intel 8XC196, etc.)

Page 19: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

19

Simone Buso - Microcontrollori e DSP - Lezione 2 37

MemoriaTutti i processori (inclusi mC e DSP) fanno uso di celle di memoria per immagazzinare dati e istruzioni. La memoria è sempre organizzata in modo gerarchico.

La memoria più veloce è realizzata nel processore stesso sotto forma di registri, banchi di registri e memorie cache.Immediatamente prossima a questa è la memoria RAM interna al chip.

Infine è spesso possibile la gestione di memorie esterne al chip.

Simone Buso - Microcontrollori e DSP - Lezione 2 38

MemoriaL’uso di memorie cache è tipico dei DSP ad alte prestazioni di ultima generazione. Si tratta di dispositivi costosi, ancora relativamente poco usati.

La maggior parte dei mC e dei DSP a basso costo utilizza diversi tipi di memorie realizzate on chip, tra i quali:1. RAM di tipo statico;

2. RAM di tipo dinamico (piuttosto rare);

3. FLASH EPROM/EEPROM.

Page 20: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

20

Simone Buso - Microcontrollori e DSP - Lezione 2 39

MemoriaI costruttori di mC realizzano chip, destinati a produzioni di largo volume, in cui la memoria interna (registri esclusi) è di tipo ROM.

Si può trattare di soluzioni EPROM o OTP (one time programmable) adatte a piccole serie (prototipizzazioni) oppure di vere e proprie memorie a sola lettura (ROM), dove il programma da eseguire viene memorizzato in fase di produzione del chip.

Queste soluzioni permettono di abbattere fortemente i costi.

Simone Buso - Microcontrollori e DSP - Lezione 2 40

Dispositivi di I/OLa principale area di impiego dei mC, specialmente se di basso costo, è la gestione di interfacce uomo/macchina.

I mC sono inoltre utilizzati nella gestione di sensori e trasduttori, per tutte le funzioni del tipo noto come embedded (real time) control.Per questi processori, la disponibilità di funzioni di interfacciamento e comunicazione con l’ambiente esterno è quindi fondamentale.

Page 21: Lezione 2 - DEIpel/MicroC_e_DSP/Materiale_da... · 1 Simone Buso - Microcontrollori e DSP - Lezione 2 1 Lezione 2 Sommario •Struttura base dell’hardware di un processore (ALU,

21

Simone Buso - Microcontrollori e DSP - Lezione 2 41

Dispositivi di I/OAnche per i DSP, la cui funzione primaria è l’elaborazione numerica di segnali, sono comunque indispensabili funzioni di comunicazione efficienti (acquisizione dati).

Specialmente per i dispositivi impiegati nel controllo real-time di processi, è molto importante la possibilità di operare conversioni A/D dei segnali prodotti da eventuali trasduttori.

Tra le funzioni di I/O più comuni è quindi spesso presente un convertitore A/D.

Simone Buso - Microcontrollori e DSP - Lezione 2 42

Dispositivi di I/OI principali dispositivi di I/O resi disponibili nei mC e nei DSP sono:

• pin di I/O (configurabili);

• porte seriali (sincrone e asincrone);

• convertitori A/D e D/A.

Alcuni mC incorporano unità periferiche per il pilotaggio di dispositivi di I/O standard (e.g. display a 7 segmenti, tastierini).

Recentemente sono stati introdotti nuovi protocolli di comunicazione (e.g. CAN bus).