Sei sulla pagina 1di 7
., CPU einterfacciamento • La CPU è i l centro nevralgico dei sistem i di

.,

CPU einterfacciamento

La CPU è i l centro nevralgico dei sistem i di elaborazione: essa

esegue le istruzioni di elaborazi one e coordina i dispositivi pe- riferici coinvolti nel processo. Per comunicare con i dispositivi periferici la CPU si appoggia a opportuni dispositivi con funzione

di mediatori, le interfacce.

dispositivi con funzione di mediatori, le interfacce. •••• 4.1 Architettura interna della CPU Non esiste

••••

4.1 Architettura interna della CPU

Non esiste un modello univoco di CPU in quanto ogni famiglia di microprocessori ha struttura hardware e soluzioni software diverse; inoltre con l'evoluzione dei mi- croprocessori , le CPU hanno nel tempo assunto architetture sempre più complesse e sfuggenti, allo scopo di ottimizzarne l'efficacia e la velocità. Il nostro scopo è cercare di isolare alcuni tratti ricorre nti. Per questo riferiamoci alla seguente figura, dove sono evidenziati i BUS interni alla CPU e i registri e dispo- sitivi pri ncipali .

Architettura CPU

e i registri e dispo- sitivi pri ncipali . Architettura CPU FLAG I<~===> u w l
e i registri e dispo- sitivi pri ncipali . Architettura CPU FLAG I<~===> u w l

FLAG

I<~===>

u

w lAccuMuLATOREI<~===>

GJ

~ 1REGISTRI I<~====>

o

I

:----------- -:

I

•. - - - - - - - -

I

 

REGISTRO

 

ISTRUZIONI

DECODIFICA

L=

J

ISTRUZIONI

CLOCK

 

,

J_

 

lcoNTROLL9w! _~~~~~-~I~~~~-~~\

CLOCK   , J_   lcoNTROLL9w! _~~~~~-~I~~~~-~~\ STACK POINTER PROGRAM COUNTER D CD BUS INDIRIZZI
CLOCK   , J_   lcoNTROLL9w! _~~~~~-~I~~~~-~~\ STACK POINTER PROGRAM COUNTER D CD BUS INDIRIZZI
CLOCK   , J_   lcoNTROLL9w! _~~~~~-~I~~~~-~~\ STACK POINTER PROGRAM COUNTER D CD BUS INDIRIZZI
CLOCK   , J_   lcoNTROLL9w! _~~~~~-~I~~~~-~~\ STACK POINTER PROGRAM COUNTER D CD BUS INDIRIZZI
CLOCK   , J_   lcoNTROLL9w! _~~~~~-~I~~~~-~~\ STACK POINTER PROGRAM COUNTER D CD BUS INDIRIZZI
CLOCK   , J_   lcoNTROLL9w! _~~~~~-~I~~~~-~~\ STACK POINTER PROGRAM COUNTER D CD BUS INDIRIZZI

STACK

POINTER

PROGRAM

COUNTER

D

CD

BUS INDIRIZZI

CLOCK   , J_   lcoNTROLL9w! _~~~~~-~I~~~~-~~\ STACK POINTER PROGRAM COUNTER D CD BUS INDIRIZZI

®-r-------J

~,

'1 Modulo C Hardware e software de, m1croprocesson

.

.

·e microcontrollori

. ·vere i registri e dispositi vi a tr

Da un punto di vista concettuale possiamo ascn

categorie:

1. registri deputati al prelievo delle istruzioni :

a individuare la posizione

Program Counter e Stack Pointer, che servono

Registri e

dispositivi CPU

2 .

3.

dell ' istruzione nella memoria;

.

.

.

.

.

.

.

. to delle istruzioni:

reg 1s tn e d1 s po s1t1v1 deputati al r1conos~m~en

.

11

0

j.

. porizza zione che ser-

em arati esecuti vi ·

'

Registro Istruzioni, Decodifica Istruz10m . Con~r~

vono a interpretare l'istruzione e diramare gli ord1m ag 1 _ap~

registri e dispositivi ?ep~tati alla esecuzione delle ~ st ruz;~;::in atto fattivamente le

Accumulatore, Registri, ALU, Flag, che servono a met

operazioni comandate dal! ' istruzione .

Approfondiamo ora il significato

di ciascun registro o dispositi vo .

I .

registri deputati al prelievo delle istruzioni

PROGRAM COUNTER PC: indica a quale indirizzo di l'istruzione ancora da eseguire.

Una volta eseguita

• il PC viene incrementato , per puntare alla successiva istruzione;

memori a prelevare

.

.

.

.

.

l'istruzione, accade che:

.

.

• nel caso si debba eseguire un salto , il PC viene forzato al nuovo mdm zzo cu, saltare. STACK POINTER: in esso la CPU deposita l' indirizzo di ritorno, nel caso di salti causati da chiamate a sottoprogrammi. In particolare:

• l'indirizzo dell'istruzione corrente viene caricato dal PC entro lo SP;

• al ritorno dalla chiamata a sottoprogramma SP ripristina l'indirizzo in PC;

• in caso di chiamate nidificate, gli indirizzi vengono accatastati (stack significa appunto catasta);

• la modalità di salvataggio e ripescaggio degli indirizzi accatastati è del tipo LIFO (Last In First Out= ultimo a entrare , primo a uscire) .

2. registri e dispositivi deputati al riconoscimento delle istruzioni REGISTRO ISTRUZIONI: in esso viene depositato il codice operati vo d e l! ' istru-

zione da eseguire.

DECODIFICA ISTRUZIONI: qui la CPU compara l' istruzione con una lista in- terna che contiene il set di istruzioni, ovvero l'insieme delle istruzioni che la CPU riconosce. Nella lista, per ogni istruzione , è registrato un microprogramma di implementazione, che viene eseguito.

CONTROLLO: in questa sezione vengono generati i segnali destinati al bus con• trolJi, necessari per completare la lettura dell'istruzione.

TEMP<?RIZZAZIONE questa s_ezione genera sequenze predefinite di impulsi. con un ntmo dettato dal segnale d1 dock , per comandare elettronicamente i dispo- sitivi coinvolti nell'istruzione.

CLOCK: è un segnale a onda quadra che ritma l'operato de l microcontrollore .

3. registri e dispositivi deputati alla esecuzione delle istruzioni

AC_CU~U:L~TO~E: è il principale registro di memoria , innervato con tutti gli altn reg1stn , mfatt1:

• quasi tutte le istruzioni lo utilizzano come reoistro per · d' d 1 111 · m oresso·

• quasi tutte le 1struz1orn depositano in esso il risultato.

~

·

0

.

.

.

.

.

e

I

'

·

'

FLAG : è un registro che segnala (flag= bandiera) mediant ·

particolari condizioni ; per esempio :

• il flag di zero è un bit che segnala, mediante il su zione ha dato risultato uguale O diverso da zero· ·

0

- .·

. 1

e og ni smgo o bit ue

1

11

_,

e:

1 0 O, se una opera-

s ato

• il fla g di

carry è un bit che regi stra il valore del n' ·

po

11 o generato da una somma.

C4 • CPU e interfacciamento 1<11111~1---- -

-

-

@

ALU Arithmetic Logie Unit = Unità Aritmetico Logica: esegue operazioni arit- metiche e logiche. REGISTRI : sono registri <li memoria utilizzati per depositare dati in modo tempo- raneo , nel corso de li 'esecu zione delle operazioni .

4.2 Fasi di fetch e execute

Per comprendere come cooperano i vari elementi della CPU è necessario innanzi- tutto sapere che il microprocessore passa di continuo attraverso due fasi operative:

• fase di Fetch: in essa la CPU acquisisce dalla memoria l' istruzione (fetch = ricerca) ;

• fase di Execute: in essa la CPU esegue

l' istruzione .

BUS DATI • • • • • • • • • • • • •
BUS DATI
• • • • • • • • • • • • • • • • • • • • •
4
• • • •
• •
• • • •
• • • •
• • • •
• •
- -- - - - - -- -- - - - - - - - - - - - - - - - - - - -- - - - -
- - -- - - - - - - - - - - - - - -
- -- - - -
--
- - - - - -
!<~====:>
:
,
' FLAG
REGISTRO
ISTRUZIONI
0000h
M
0001h
00000000
E
M
0002h
00000100
o
0003h
00000100
R
0
'
:---------~
'
, 0004h
00000010
I
·------·- --
<:=:>:TEMPORIZZA,
000Sh
A
11000000
: _- - ~~~~~- - _: :
STACK
00 \
POINTER
'
'
I•
-
,. I
BUS CONTROLLI

Le due fasi sono composte da una serie di operazioni elementari , che vengono ora descritte, con riferimento alla figura sopra.

La fase di ffilg! contempla i passi seguenti :

I. Nel Program Counter viene impostato l' indirizzo dell.'istruzione da reperire in memoria . In particolare dopo il reset il PC vale solitamente 0000h , cioè punta alla cima della memoria.

2. li contenuto del PC viene inviato sul Bus Indirizzi , diretto a selezionare la locazio- ne di memoria.

3. La CPU attiva il controllo Read per comandare una operazione di lettura in memoria .

4. La CPU legge la parola di memoria attraverso il Bus Dati e la deposita nel Registro Istruzioni .

5. L' unità di decodifica riconosce il codice operativo presente nel Registro Istruzioni .

"somma l' accumulatore

A al registro temporaneo B" .

Supponiamo che l' istruzione sia ADDA , B che significa

6.

In tal caso la fase di execu~ contempla i seguenti passi successivi .

La CPU trasferisce il contenuto

dell ' accumulatore nella ALU .

7. La CPU trasferisce il contenuto del registro temporaneo B nella ALU .

8. La CPU comanda alla ALU di effettuare la somma.

9. La CPU comanda il trasferimento del risultato nell ' accumulatore ; il dato preceden-

te è soprascritto . Successivamente , non essendo presenti salti in questo esempio , la CPU incrementa

il PC . per predisporre la lettura della locazione successiva di me moria , dando ini zio alla nuova fase <li fetch .

@ ~--- --- -1►,il Modulo e • Hardware e software dei microprocessori e microcontrollori

Qualora una istruzione sia composta da più parole di memoria (che specifichin un dato o un ind!rizzo) la _fase di fetch prevede più cicli di lettura in sequenza , per~ reperimento degh operand1.

4.3 lnterfacciamento microprocessori

Oggigiorno i microprocessori sono diffusissimi , essendo presenti nei computer, neoJi apparati industriali e anche negli oggetti più comuni, come i telefonini , i giochi, i l;t. tori MP3 , gli elettrodomestici . Ciascuno di questi apparati ha una propria specificità è interessato da s egnali di diversa natura e quindi necessita di uno specifico tipo ct i interfaccia, per comunicare con la CPU. Lo scopo di questo capitolo è di introdurre il tema, con riferimento alle interfacce digitali di tipo parallelo, note come porte di Input/Output.

Porta di output

Una porta di output è essenzialmente costituita da un dispositivo in grado di congelare in uscita i bit che la CPU presenta sul Bus Dati , in modo che essi si mantengano fino alla successiva operazione di memorizzazione e nel frattempo la CPU rimanga svincolata.

Descriviamo per passi la funzionalità di una porta di output, con riferimento allo schema di principio della figura , nel quale compare il latch , un dispositivo di memoriz- zazione a 8 bit, che è l'elemento fondamentale:

zazione a 8 bit, che è l'elemento fondamentale: 1. la CPU presenta un byte sul bus

1.

la CPU presenta un byte sul bus dati;

2.

la CPU comanda una operazione di scrittura sul terminale WRITE del latch , trami- te il bus controlli;

3.

i livelli logici presenti sugli ingressi D,P 6 D/J/JP/J,D 0 vengono trasferiti e me- morizzati sulle uscite Q 7 Q 6 Q 5 Q 4 Q 3 Q 2 Q,Q 0 ;

4.

la sezione di decodifica indirizzi tramite il terminale ENABLE abilita il Iatch , che abbandona lo stato di alta impedenza;

5.

i livelli logici rimangono impressi sui dispositivi collegati alle uscite , in questo caso 8 led.

0 , Do , D1 i D2 0 2 ---- , 1-- 03 0 Q3
0
,
Do
,
D1
i
D2
0 2
----
,
1--
03 0
Q3
,
04
'----
i
3
0 4
'-----io s
Os
►I
Ds
0 6
CPU
BUS CONTROLLI
'-------i D
7
07
1---------~
WRITE
0
r---=-.i ENABLE
101M
Decodifica
LATCH
i---- --
Indirizzi

D-

-

J*

~

~

-~

V

BUS INDIRIZZI

Porta di input

Una porta di input è costituita da un dispositivo in

presenti in input a un dato istante , in modo che la c pf!a O O _ 1 le~~e ~e e co n ge l, ~re 1 bit

ficano nel tempo .

P ssa gestirli anche se s1mo<lt-

d

d.

.

.

C4 CPU e interfacciamento

1.

In questo caso i passi sono i seguenti.

la CPU comanda una operaz·

il bus controlli ·

·

d'

ione

1

1 ettura sul terminale WRITE

del latch , tramite

2.

,

degli i livelli interruttori logici D.p Dpppp D

' ve?gon~ trasfenti e memorizzati sulle uscite Q Q Q Q Q Q Q Q dove nmang?n~ a disposizione della CPU;

·

·

·

6

1

. 0

_presenti sugh mgress1, che in questo caso sono

1

6

s

4

J

2

,

o

.

3. la impedenza; CPU tramite il terminale ENABLE

a

bT ita il . latch, che abbandona lo stato di alta

I

4 ·

5.

1 e uCsPcUite_Q 7 Q6QsQ,,Q_JQ2(!,,Qo si presentano sulle corrispondenti linee del bus dati- '

1

a

incorpora gh 8 bit dei dati .

linee del bus dati- ' 1 a incorpora gh 8 bit dei dati . BUS DATI
linee del bus dati- ' 1 a incorpora gh 8 bit dei dati . BUS DATI
linee del bus dati- ' 1 a incorpora gh 8 bit dei dati . BUS DATI

BUS DATI

-----

-----

-----

-----

-----

-----

-----

-----

0 1---I_O_/_M_ Decodifica Indirizzi
0
1---I_O_/_M_
Decodifica
Indirizzi

0

CPU

BUS INDIRIZZI

141

1◄1--------@

Indirizzi 0 CPU BUS INDIRIZZI 1 4 1 1◄1--------@ 4.4 lnterfacciamento microcontrollori Nei microcontrollori

4.4 lnterfacciamento microcontrollori

Nei microcontrollori le porte di IO sono già pre- senti all ' interno del chip; chi programma non deve fare altro che:

• scrivere i dati sul latch di uscita mediante una operazione software di output;

• salvare i dati nel latch di ingresso mediante una operazione software di input . I segnali di temporizzazione per condurre in porto queste operazioni vengono automaticamente generati dalla CPU.

La figura mostra l'organizzazione di una porta

di IO , limitatamente a un solo bit. La porta è or-

ganizzata per fungere sia da porta di input che da

porta di output. Si nota la presenza dei seguenti elementi per

la conservazione del bit:

• un latch di uscita di nome Data Latch per il

salvataggio del bit in uscita;

• un latch di ingresso rivolto in senso opposto per il sa lvataggio del bit in ingresso ;

• il pin

I/O pin , che s upporta sia bit di input che

bit di output;

• un TTL Lnput Buffer.

Data Bus D Q Voo WR Port CK7L Q 1---_ Data Latch OUT D Q
Data Bus
D
Q
Voo
WR Port
CK7L Q 1---_
Data Latch
OUT
D
Q
t
WR
-----
Vss
••• T~I~
.
--------------·
CK7L Q
TRIS Latch
TTL
IN
Input
Buffer
1------1
Q
D
buffer
di input
EN
,
RD Port

Fonte: MICROCH IP

@r-------- --1►.il Modulo e • Hardware e software dei microprocessori e microcontrollori

Sono presenti altri elementi che servono a scindere la scri_ttura dalla lettura, perché queste operazioni non possono essere contemporanee, e sono.

• un latch di nome TRIS Latch , che serve a selezionare o la lettura o la scrittura;

• una porta ANO e una OR; un FET tipo P e uno tipo N;

• un buffer di input.

Il registro TRIS Latch serve a programmare la porta come input o come output:

Q TRIS Lateh = 0 OUlpUt

Q

TRIS Latch = 1 input

.

.

La CPU abilita la scrittura entro TRIS Latch mediante la lmea WR TRIS . Inoltre la CPU può anche leggere lo stato di questo registro, mediante la linea RD TRIS.

È importante notare che la linea Data Bus del bus dati è comune a tutti i latch e buffer, tranne il TTL Input Buffer.

Per chiarezza è stata aggiunta una linea tratteggiata che separa lo schema in due regioni:

• regione OUT: elementi adibiti a operazioni di scrittura;

• regione IN: elementi adibiti a operazioni di lettura.

Ora possiamo descrivere come viene salvato un bit in scrittura e come viene prele- vato un bit in lettura.

Scrittura (OUT)

La ta~lla descrive in modo esaustivo la catena dei segnali: si vede che alla fine risulta

II_O pi~ = Data Bus , ovverosia, il dato presente sul bus dati viene memorizzato sul pin d1 uscita .

'

La scrittura entro il Data Latch è comandata dalla CPU attraverso la linea WR P ori .

Data Bus

Q

TRISl.atch

Q

TRISl.atch

Q

DATA l.atch

Q

DATA l.atch

 

OR

ANO

 

p

N

1/0 pin

 

o o

 

1

o

1

1

1

OFF

ON

 

o

1 o

1

1

o

o

o

ON

OFF

1

 

Lettura (IN)

 

La CPU abilita la memorizzazione del dato presente s 1 · · · so su RD Port , che giunge negato al terminale EN ~ pm di mput con un livello bas-

 

Si noti dalla tabella che la modalità di scrittu

at~iv? a~to del l~tch_ ~i ingresso .

 
 

entrambi i FET si trovano in alta impedenza. ra su pm nsulta d1sab1htata , in quanto

Data Bus

Q

TRISl.atch

Q

TRIS l.atch

Q

DATA l.atch

Q

DATA 1.atch

OR

ANO

p

N

110 pin

 

o

1 o

 

o

1

1

o

OFF

OFF

alta

 

impedenza

1

1 o

 

1

o

1

o

OFF

OFF

alta

impedenza

 

,,

_

dr.\

C4 CPU e interfacciamento

'81

Esercizi di verifica

4.1 Architettura interna della CPU

Architettura CPU

O Indicare le frasi corrette . (2 risposte esatte)

uiJ Il PC non è connesso al bus dati . [fil Il registro istruzioni è deputato al riconoscimento delle istruzioni . @ Il PC individua la posizione in memoria dell ' istruzione . [ill La ALU serve a temporizzate i compiti della CPU .

Registri e dispositivi CPU

O Indicare le frasi corrette . (2 risposte esatte)

li] Il PC contiene il codice operativo dell ' istruzione.

[fil La sezione di temporizzazione ritma i compiti dei dispositivi.

@ Lo Stack Pointer è innervato con tutti i registri.

[ill La ALU non è un semplice registro.

tutti i registri. [ill La ALU non è un semplice registro. 4.2 Fasi di fetch e

4.2 Fasi di fetch e execute

O Indicare le frasi corrette . (2 risposte esatte)

uiJ Una singola istruzione può prevedere più fasi di fetch. [fil La fase di fetch di una istruzione segue la corrispondente fase di execute.

@ Il contenuto del PC viene trasmesso attraverso il bus controlli .

[ill Le istruzioni transitano attraverso il bus dati .

4.3 Interfacciamento microprocessori

Porta di output

e Indicare le frasi corrette . (2 risposte esatte)

In una operazione di scrittura su porta di output:

[ru il latch assic ura il mantenimento dei

[fil se il latc h non è abilitato i livelli log ici no n sono presenti in u scita.

livelli logici in usc ita.

@

il seg nale

ENABLE prece de WRITE .

[ill il segnal e WRITE è generato dal bus dati .

Porta di input

O Indicare le frasi corrette . (2 risposte esatte)

In una o perazione di lettura da porta di input:

[ru i bit da leggere pervengono al bus indirizzi .

[fil il segna le WRITE comanda la scrittura di QO , Ql ,

@ lo stato di alta impedenza del latch è comandato dalla decodifica indirizzi .

@J i bit da l eggere so n o s tabili zzati dal l atc h .

., Q7 en tro DO , Dl ,

., D 7 .

4.4 lnterfacciamento microcontrollori

O Indicare le fras i corrette . (2 risposte esatte)

[i] li termi na le //0 pin è unico per la lettura e la scrittura.

[fil

Il

dato in le ttu ra non viene latc hato .

@ Se Q TRIS Latch è a lto

i FET sono in alta impedenza.