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