L_25_Gestione_Input_Output - ICAR

Transcript

L_25_Gestione_Input_Output - ICAR
Gestione dell’I/O
Nuovo Corso di Calcolatori Elettronici I
Dipartimento di Informatica e Sistemistica
Università degli Studi di Napoli Federico II
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Roadmap
Ø 
Modello architetturale
»  Struttura a bus singolo
Ø 
Modelli di programmazione
»  I/O memory mapped
»  I/O con istruzioni speciali
Ø 
Handshake
»  Sequenza dei segnali
Ø 
I/O controllato da programma
»  Device a carattere generico
»  Terminale testuale
Ø 
I/O mediante interruzioni (cenni)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Modello architetturale – Bus singolo
CPU
Memory
Indirizzi
Dati
Controllo
System Bus
DEVICE
DEVICE
DEVICE
CONTROLLER
CONTROLLER
CONTROLLER
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Modelli di programmazione
Ø 
Memory Mapped:
»  Le periferiche e la memoria condividono il medesimo spazio di
indirizzamento
»  Le operazioni di I/O si eseguono mediante istruzioni normali, su
locazioni di memoria particolari
Ø 
Istruzioni Speciali:
»  Le periferiche e la memoria hanno spazi di indirizzamento
distinti
»  Le operazioni di I/O si eseguono mediante istruzioni dedicate
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Handshake – Sequenza dei segnali
2 – Strobe out
CPU
3 - Ack
DEVICE
1- Data out
CONTROLLER
1 – Read request
CPU
3 – Strobe in
DEVICE
2- Data in
CONTROLLER
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
I/O controllato da programma - Output
IF_CTRL
DataRegister db;
ControlBits
F,C;
F
C
Bit 7
Bit 0
IF_DATA
db.write ();
C.set ();
do {
START
LOOP
}
while ( F.isReset () )
C.reset ();
F.reset ();
IF_CTRL
IF_DATA
ORG
MOVE.B
ORI.B
BTST.B
BEQ
MOVE.B
$8000
D0,IF_DATA
#$01,IF_CTRL
#7,IF_CTRL
LOOP
#0,IF_CTRL
ORG
DS.B
ORG
DS.B
$8020
1
$8022
1
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Output – Esecuzione 1/6
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Output – Esecuzione 2/6
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Output – Esecuzione 3/6
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Output – Esecuzione 4/6
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Output – Esecuzione 5/6
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Output – Esecuzione 6/6
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
I/O controllato da programma - Input
IF_CTRL
DataRegister db;
ControlBits
F,C;
F
C
Bit 7
Bit 0
IF_DATA
C.set ();
F.reset ();
do {
START
LOOP
}
while ( F.isReset () )
db.read ();
C.reset ();
IF_CTRL
IF_DATA
ORG
$8000
MOVE.B #1,IF_CTRL
BTST.B #7,IF_CTRL
BEQ
LOOP
MOVE.B IF_DATA,D0
AND.B #$FE,IF_CTRL
ORG
DS.B
ORG
DS.B
$8020
1
$8022
1
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Input – Esecuzione 1/5
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Input – Esecuzione 2/5
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Input – Esecuzione 3/5
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Input – Esecuzione 4/5
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Input – Esecuzione 5/5
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Il dispositivo video-tastiera Terminal di ASIM
Ø 
CNTRL (registro di controllo e stato):
»  Bit 0 – Abilita interruzione su BUFFER FULL
»  Bit 1 – Abilita interruzione su ENTER
»  Bit 2 – Cancella video
»  Bit 3 – Pulisce buffer tastiera
»  Bit 4 – Abilita tastiera
»  Bit 5 – Abilita eco
»  Bit 6 – Stato di BUFFER FULL
»  Bit 7 – Stato di ENTER inviato
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Esempio di I/O programmato
CONTROL
DATA
CPU
STORAGE
TTY
REGISTERS
CODE
MEMORY
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Terminal.a68 – 1/3
* terminal.a68
* Demonstrates programmed I/O
MEM
EQU $8000
* Leave half K free for later use (data storage)
ORG $8200
TER
EOS
ENTER
ENTERHIT
TTYCFG
QUEST
ANSW
EQU
EQU
EQU
EQU
EQU
DC.B
DC.B
$2000
* Address of tty data register
0
$D
$80 * 10000000
$30 * 00110000 Abilita tastiera, Abilita eco
'Come ti chiami ? ',0
'Ciao, ',0
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Terminal.a68 – 2/3
* Initialize A0 to tty data register
* Initialize A2 to tty control register
* Initialize control register to 00110000
BEGIN
MOVEA.L #TER,A2
MOVEA.L A2,A0
ADD.L
#1,A2
MOVE.B #TTYCFG,(A2)
* Initialize A1 to start of output message
* Output characters until EOS found
LEA.L
QUEST,A1
OUTPUT MOVE.B (A1)+,D0
CMP.B
#EOS,D0
BEQ
CONT
MOVE.B D0,(A0)
BCC
OUTPUT
* Keep checking tty control register until ENTER hit
CONT
MOVE.B (A2),D1
AND.B
#ENTERHIT,D1
BEQ
CONT
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Terminal.a68 – 3/3
* Initialize A1 to start of storage area
MOVEA.L
#MEM,A1
* Copy characters from tty data register to storage area
* Stop when ENTER is found in data
IN1
MOVE.B (A0),D0
MOVE.B D0,(A1)+
CMP.B
#ENTER,D0
BNE
IN1
* Initialize A1 to start of output message
* Output characters until EOS found
LEA.L
ANSW,A1
OUT1
MOVE.B (A1)+,D0
CMP.B
#EOS,D0
BEQ
CONT1
MOVE.B D0,(A0)
BCC
OUT1
* Initialize A1 to start of storage area
* Output characters until ENTER found
…
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Terminal - Esecuzione
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Priority Interrupt Controller (PIC)
Ø Descrizione
del dispositivo
Ø Configurazione
Ø Collegamento
Ø Modello di programmazione
Ø Esempio
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Descrizione del dispositivo
Ø  Il
componente industriale di riferimento è l Intel
8259A
Ø  Un singolo PIC gestisce fino a 8 livelli di priorità
Ø  Utilizzando più PIC in cascata è possibile gestire
fino a 64 livelli di priorità
Ø  Prevede diverse modalità di gestione
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Schema dispositivo
IR0
INTERRUPT REGISTER
DATA BUS
IR1
IR2
INTERRUPT MASK REG
CS
IR3
A0
IN SERVICE REGISTER
IR4
!RD
IR5
TYPE REG
!WR
IR6
INT
IR7
CONTROL REG
7
0
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Modello di programmazione – (cenni)
Ø L
indirizzamento dei 5 registri dipende da:
»  Valore del bit 0 dell indirizzo
»  Tipo di accesso
»  Valore di RR (bit 6 del registro CTRL) e di RIS (bit 7
del registro CTRL)
»  Stato del componente
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Esempio
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli