Calcolatori elettronici II
Calcolatori elettronici II
CALCOLATORI
ELETTRONICI II
Esempio
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
I dispositivi per il conteggio
Esempio
Connessioni
Verrà descritto il modo in cui
all’interno di un PC è connesso
lo speaker, e come il suo
funzionamento possa essere
programmato via software
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
8255
Porta B
PB1 PB0
8253
I dispositivi per il conteggio
Counter #2
I dispositivi per il conteggio
CLK2
OUT2
Indirizzi
1,331
Mhz
GATE2
8255
60h ÷ 63h
8253
40h ÷ 43h
Speaker
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
1
Calcolatori elettronici II
Calcolatori elettronici II
I dispositivi per il conteggio
Codice
Viene proposto il codice della
procedura beep, che riceve in DI
la frequenza in Hz, ed in BX la
durata in centesimi di secondo
del suono desiderato
I dispositivi per il conteggio
PB_8255 EQU 61h;porta B dell'8255
C2_8253 EQU 42h;cont.2 dell'8253
CW_8253 EQU 43h;Control Word dell'8253
.CODE
BEEP PROC
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AL,0B6h;contatore2,2byte,
;modo 3,
;conteggio binario
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
I dispositivi per il conteggio
I dispositivi per il conteggio
144F38h = 1331000
(frequenza del clock)
OUT
MOV
MOV
DIV
CW_8253, AL
DX, 14h
AX, 4F38H
DI
l1:
l2:
OUT
MOV
OUT
IN
MOV
OR
OUT
MOV
LOOP
DEC
JNZ
C2_8253, AL ;frequenza (LSB)
AL, AH
C2_8253, AL ;frequenza (MSB)
AL, PB_8255
AH, AL
AL, 03h
PB_8255, AL ;abilita beeper
CX, 2801
l2
BX
l1
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
I dispositivi per il conteggio
I dispositivi per il conteggio
Durata del ciclo
BEEP
MOV AL,AH
OUT PB_8255,AL ;disabilita beeper
POP DX
POP CX
POP BX
POP AX
RET
ENDP
lab:
MOV CX, n
LOOP LAB
Quanto deve valere n
affinché il ciclo duri 10 msec?
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
2
Calcolatori elettronici II
Calcolatori elettronici II
I dispositivi per il conteggio
I dispositivi per il conteggio
Soluzione
Dai manuali si può dedurre
Î La durata di LOOP
Soluzione
Dai manuali si può dedurre
Î La durata di MOV
Æ 17 colpi di clock se ripete
Æ 4 colpi di clock
Æ 5 colpi di clock se non
ripete
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
I dispositivi per il conteggio
I dispositivi per il conteggio
Soluzione
Deve quindi essere
[17(n-1)+5+4]T = 0,01 sec
T
è il periodo di clock del processore
Se il clock ha frequenza 5 Mhz, si ha
n = 2801
Programma principale
;Suona una scala che va da 500 a 2000 Hz.
;Ogni nota dura 150 msec.
.STARTUP
MOV DI, 500
MOV BX, 15
again:
CALL BEEP
ADD DI, 20
CMP DI, 2000
JB
again
.EXIT
END
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
I dispositivi per il conteggio
Note musicali
Frequenza delle note nell’ottava
centrale del pianoforte
Hz
293,7
349,2
440,0
261,7
329,6
392,0
493,9
IL MECCANISMO
DELLE INTERRUZIONI
SI
MI FA
DO RE
SOL LA
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
3
Calcolatori elettronici II
Calcolatori elettronici II
Argomenti della lezione
Î Introduzione
Î Le interruzioni
nei sistemi Intel
Introduzione
Î Il dispositivo Intel 8259
Î Altri tipi di interruzioni
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
Gestione dell’I/O
Gestione dell’I/O
Tutti i sistemi a microprocessore
eseguono operazioni di
Input/Output
Vi sono due modi per attuare la
sincronizzazione:
Î polling
Per questo devono
sincronizzarsi con i dispositivi
periferici esterni
Î interrupt
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
Polling
Esempio
...
La gestione del polling viene fatta
attraverso un ciclo software di lettura
dello stato dei dispositivi di I/O:
il processore legge periodicamente
il registro di stato del dispositivo
Se il dispositivo interrogato
richiede servizio viene servito
MOV DX, prSTAT
pr_n_ready:IN AL, DX; legge lo stato
;della stampante
TEST AL, sERR
JZ pr_error; errore
TEST AL, sBUSY
JZ pr_n_ready; busy
...
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
4
Calcolatori elettronici II
Calcolatori elettronici II
Vantaggi
Svantaggi
Il meccanismo è semplice
da realizzare
La maggior parte del tempo è
impiegata dal programma principale
nell’esecuzione del ciclo di polling
Non richiede risorse
hardware particolari
Un dispositivo deve attendere
che il processore interroghi il suo
registro di stato prima di essere
servito (elevata latenza)
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
Interrupt
Il processore non interroga
i dispositivi di I/O
Quando un dispositivo
ha necessità di essere servito
attiva una richiesta
di interruzione (o interrupt)
Interrupt
Al termine dell’esecuzione
dell’istruzione corrente,
il processore riconosce la
richiesta di interruzione
ed eventualmente la serve
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
Procedure di servizio
dell’interruzione
Quando il processore decide
di servire una richiesta
di interruzione
Î Interrompe il programma
in corso di esecuzione
Procedure di servizio
dell’interruzione
Î Attiva un’apposita procedura,
dipendente dal dispositivo
che ha fatto la richiesta,
denominata procedura di
servizio dell’interruzione
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
5
Calcolatori elettronici II
Calcolatori elettronici II
Procedure di servizio
dell’interruzione
Î Al termine della procedura,
ritorna al programma interrotto
Controllore delle
interruzioni
Spesso il sistema include
un circuito apposito, denominato
controllore delle interruzioni
che gestisce
le richieste di interruzione
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
Controllore delle
interruzioni
Problemi
µP
bus
MEM
Controllore
delle
interruzioni
I/O I/O I/O
Come fa il processore,
una volta ricevuta una
richiesta di interruzione,
a sapere quale
dispositivo l’ha prodotta?
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
Problemi
Una volta individuato
il dispositivo, come fa il
processore a sapere
quale procedura di servizio
deve essere attivata?
Identificazione
del dispositivo
Normalmente l’identificazione
del dispositivo avviene grazie
ad un ciclo di bus apposito
Attraverso tale ciclo il processore
acquisisce dal controllore
delle interruzioni un codice che
identifica il dispositivo che
ha fatto richiesta
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
6
Calcolatori elettronici II
Calcolatori elettronici II
Attivazione della
procedura di servizio
IVR
Î Risiede nella memoria principale
L’identificazione della procedura da
attivare avviene normalmente
attraverso una tabella, denominata
Interrupt Vector Table o IVR
Î Associa a ciascun codice di
interruzione l’indirizzo della
corrispondente procedura di
servizio
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
Protocollo di interruzione
Un dispositivo richiede
servizio attraverso una
richiesta di interruzione
µP
bus
Controllore
delle
interruzioni
MEM
Protocollo
di interruzione
Il controllore
delle
interruzioni
inoltra la
richiesta al
processore
2
I/O I/O I/O
MEM
µP
bus
Controllore
delle
interruzioni
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
I/O I/O I/O
Protocollo di interruzione
Protocollo di interruzione
µP
µP
bus
MEM
Al termine dell’istruzione
corrente il processore:
I/O I/O
Controllore
Æ rileva
la richiesta
delle
interruzioni
I/O
bus
Al termine dell’istruzione
corrente il processore:
I/O I/O I/O
Controllore il programma
Æ interrompe
delle
MEM interruzioni
in corso di esecuzione
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
7
Calcolatori elettronici II
Al
termine
Protocollo
dell’istruzione
corrente il
processore:
Æ chiede al
controllore
il codice del
dispositivo
3
MEM
Calcolatori elettronici II
di interruzione
Protocollo di interruzione
Il controllore
µP
µP
bus
Controllore
delle
interruzioni
I/O I/O I/O
Controllore
delle
interruzioni
MEM
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
delle
interruzioni
invia al
processore il
codice del
dispositivo
busche
ha fatto la
richiesta
I/O I/O I/O
Protocollo di interruzione
Protocollo di interruzione
µP
µP
bus
bus
Il processore accede in
I/OIVR
I/O
I/O
memoria alla
e legge
MEM
Controllore
l’indirizzo
della procedura di
delle
servizio dell’interruzione
interruzioni
MEM
Il processore attiva la
I/O I/O
procedura di servizio
e
Controllore
processa
la richiesta
delle
attivata
dal dispositivo
interruzioni
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
I/O
Protocollo di interruzione
µP
bus
MEM
Terminata la procedura
di servizio il processore
I/O I/O I/O
torna all’esecuzione del
Controllore
programma interrotto
delle
Le interruzioni
nei sistemi Intel
interruzioni
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
8
Calcolatori elettronici II
Calcolatori elettronici II
Segnali INTR e INTA
Segnali INTR e INTA
Nei sistemi Intel il processore
dispone di due segnali
INTR ed INTA
destinati alla gestione
delle interruzioni
INTR viene portato alto
per segnalare al processore
che un dispositivo ha fatto
richiesta di interruzione
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
Segnali INTR e INTA
Codice del dispositivo
È composto da 8 bit
Il processore attiva INTA
per segnalare che ha percepito
la richiesta e per richiedere il
codice del dispositivo
Il processore è quindi in grado di
Î distinguere tra 256 possibili
richieste di interruzione
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
Codice del dispositivo
È composto da 8 bit
Il processore è quindi in grado di
Î attivare 256 diverse procedure
di servizio dell’interruzione
Interrupt Vector Table
Contiene i puntatori alle
procedure di servizio di ciascuno
dei 256 tipi di interruzione
Si trova in memoria agli
indirizzi da 00000H a 003FEH
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
9
Calcolatori elettronici II
Calcolatori elettronici II
Interrupt Vector Table
Ogni elemento della tabella
contiene 4 byte, corrispondenti
all’indirizzo della procedura
CS + IP
Abilitazione/disabilitazione
delle interruzioni
Il flag IF
permette di abilitare/disabilitare
le richieste di interruzione
Î Può essere modificato via software
attraverso le istruzioni CLI e STI
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
Abilitazione/disabilitazione
delle interruzioni
Il flag IF
permette di abilitare/disabilitare
le richieste di interruzione
Î Viene automaticamente posto a 0
all'attivazione di una procedura di
servizio delle interruzioni
Protocollo di interruzione
1
Un dispositivo esterno invia una
richiesta di interruzione sul pin INTR
2
Durante l'ultimo periodo di clock di
un’istruzione il processore rileva la
presenza di un valore 1 su INTR
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
Calcolatori elettronici II
Protocollo di interruzione
Protocollo di interruzione
3
5
Il processore invia un impulso su INTA
per segnalare che la richiesta
è stata rilevata
Il processore legge dal data bus
il codice n del dispositivo che ha
richiesto l’interruzione (1 byte)
4
6
Il processore invia un secondo impulso
su INTA per chiedere di leggere
sul data bus il codice del dispositivo
Il processore salva nello stack il valore
del registro dei flag (PSW) e l'indirizzo
di ritorno (registri CS e IP)
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
10
Calcolatori elettronici II
Calcolatori elettronici II
Protocollo di interruzione
Protocollo di interruzione
7
9
Il processore azzera il flag IF
per disabilitare ulteriori richieste
di interruzione
Viene attivata la corrispondente
procedura di interruzione
8
Il processore accede
all’elemento n-esimo nella
Interrupt Vector Table
10
Al termine della procedura il processore
ripristina dallo stack il registro dei flag
e l’indirizzo di ritorno, tornando ad
eseguire il programma interrotto
Prof. Matteo Sonza Reorda
Prof. Matteo Sonza Reorda
Politecnico di Torino
Politecnico di Torino
Calcolatori elettronici II
CALCOLATORI
ELETTRONICI II
Prof. Matteo Sonza Reorda
Politecnico di Torino
11