Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

39
Luca Orrù 1 Input/Output Input/Output

Transcript of Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

Page 1: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

Luca Orrù 1

Input/OutputInput/Output

Page 2: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

2Luca Orrù

SOMMARIOSOMMARIO

Organizzazione di sistema Trasferimento dati; Gestione I/O.

Page 3: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

3Luca Orrù

Organizzazione di Organizzazione di sistemasistema

Page 4: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

4Luca Orrù

Tipi di busTipi di bus

ABUS, Address Bus : insieme di linee su cui la CPU scrive l’indirizzo del dispositivo a cui intende accedere

DBUS, Data Bus : insieme di linee su cui viene scritto il dato che deve essere trasferito

CBUS, Control Bus : insieme di linee che controllano la comunicazione tra la CPU ed i dispositivi periferici.

Page 5: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

5Luca Orrù

ComunicazioneComunicazione

Quando la CPU intende comunicare con un dispositivo: invia sull’ABUS l’indirizzo del

dispositivo a cui si intende accedere attiva i segnali opportuni sul CBUS legge/scrive dal/sul DBUS i dati

trasferiti.

Page 6: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

6Luca Orrù

Comunicazione (cont)Comunicazione (cont)

L’instruction set contiene generalmente istruzioni per trasferimento dati tra CPU e: Memoria : MOV AC, [0x25] Dispositivi di Input/Output : OUT

[0x25] Il CBUS è composto da:

linee di controllo per la Memoria linee di controllo per l’Input/Output

Page 7: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

7Luca Orrù

Comunicazione (cont)Comunicazione (cont)

Page 8: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

8Luca Orrù

Ciclo di lettura da Ciclo di lettura da memoriamemoria

Page 9: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

9Luca Orrù

Ciclo di lettura da Ciclo di lettura da Input/OutputInput/Output

Page 10: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

10Luca Orrù

Spazio d’indirizzamentoSpazio d’indirizzamento

Una CPU con n linee di indirizzo è in grado di indirizzare 2n locazioni differenti: spazio di indirizzamento

Lo spazio di indirizzamento può essere: separato tra Memoria e I/O : I/O non

memory mapped o isolated I/O condiviso tra Memoria e I/O : I/O

memory mapped.

Page 11: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

11Luca Orrù

I/O non Memory MappedI/O non Memory Mapped

Page 12: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

I/O non memory mappedI/O non memory mapped

Gli spazi d’indirizzamento per la memoria e Gli spazi d’indirizzamento per la memoria e per le porte di I/O sono separati, e sono per le porte di I/O sono separati, e sono attivati alternativamente da appositi segnali attivati alternativamente da appositi segnali (ad esempio IO/M)(ad esempio IO/M)

Si aggiunge un bit agli n bit Si aggiunge un bit agli n bit dell’indirizzamentodell’indirizzamento

Per accedere all’I/O si devono utilizzare Per accedere all’I/O si devono utilizzare apposite istruzioni ( IN e OUT) dove si apposite istruzioni ( IN e OUT) dove si specifica l’indirizzo del perifericospecifica l’indirizzo del periferico OUT 070h, ALOUT 070h, AL IN AL, 070hIN AL, 070h

12Luca Orrù

Page 13: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

13Luca Orrù

I/O Memory MappedI/O Memory Mapped

Page 14: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

14Luca Orrù

I/O Memory Mapped I/O Memory Mapped (cont)(cont)

La CPU usa l’istruzione MOV: per trasferimenti con la Memoria; per trasferimenti col l’I/O;

È necessario avere un circuito che riconosca l’indirizzo e abiliti Memoria o I/O.

Page 15: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

15Luca Orrù

I/O Memory Mapped I/O Memory Mapped (cont)(cont)

Page 16: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

16Luca Orrù

Trasferimento datiTrasferimento dati

La CPU deve trasferire N=10 word; mov AC, #0x8E ; sorgente loop: ldr AC ; DR<=AC; AR<=DR;

DR<=M[AR]

out 0x2B ; {0x2B}<=DR

add AC, 0x01 ; AC<=AC+1 cmp AC, 0xA2 ; AC==0xA2 ? jne loop ; vai a loop se

AC!=0xA2

Page 17: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

17Luca Orrù

OsservazioneOsservazione

Problema: Si deve effettuare in modo ripetitivo

la stessa operazione; Il tempo speso per il fetch cycle è

sprecato; Soluzione:

adottare un circuito specializzato per trasferire dati: DMA

Page 18: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

18Luca Orrù

Circuiteria DMACircuiteria DMA

Page 19: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

19Luca Orrù

DMA: funzionamentoDMA: funzionamento

Inizializzazione: Inizializzazione: La CPU carica nei registri IOAR e DC La CPU carica nei registri IOAR e DC

l’indirizzo dell’area di memoria ed il l’indirizzo dell’area di memoria ed il numero di parole da trasferirenumero di parole da trasferire

La CPU informa inoltre il DMA La CPU informa inoltre il DMA controller della direzione del controller della direzione del trasferimento (da memoria a periferica trasferimento (da memoria a periferica o viceversa )o viceversa )

Page 20: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

20Luca Orrù

DMA : funzionamento DMA : funzionamento (cont)(cont) Esecuzione del trasferimento:Esecuzione del trasferimento:

il DMA Controller riceve una richiesta di il DMA Controller riceve una richiesta di trasferimento da parte di una periferica trasferimento da parte di una periferica

Il DMA Controller invia un segnale di Il DMA Controller invia un segnale di DMA Req alla CPU.DMA Req alla CPU.

Quando la CPU giunge ad un punto di Quando la CPU giunge ad un punto di rilevamento del segnale di DMA Req, rilevamento del segnale di DMA Req, rilascia il bus e attiva il segnale di DMA rilascia il bus e attiva il segnale di DMA Ack.Ack.

Il DMA Controller inizia il trasferimento. Il DMA Controller inizia il trasferimento. Dopo il trasferimento di ciascuna parola, Dopo il trasferimento di ciascuna parola,

IOAR e DC vengono aggiornati (IOAR++, IOAR e DC vengono aggiornati (IOAR++, DC--). DC--).

Page 21: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

21Luca Orrù

DMA funzionamento DMA funzionamento (cont)(cont)

Il DMA Controller può sospendere Il DMA Controller può sospendere temporaneamente il trasferimento temporaneamente il trasferimento disattivando DMA Request; disattivando DMA Request;

la CPU disattiva DMA Acknowledge, e la CPU disattiva DMA Acknowledge, e riprende il controllo del busriprende il controllo del bus

Quando DC giunge a zero, il Quando DC giunge a zero, il trasferimento termina.trasferimento termina.

Il DMA Controller segnala il termine del Il DMA Controller segnala il termine del trasferimento alla CPU (invia un Interrupt trasferimento alla CPU (invia un Interrupt allaCPU) allaCPU)

Page 22: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

22Luca Orrù

DMADMA

Modalità di trasferimento possibiliModalità di trasferimento possibili Burst transferBurst transfer Cycle stealingCycle stealing Transparent DMATransparent DMA

Page 23: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

23Luca Orrù

Burst modeBurst mode

Il DMA acquisisce il controllo del busIl DMA acquisisce il controllo del bus Il DMA rilascia il bus solo quando ha Il DMA rilascia il bus solo quando ha

terminato il trasferimentoterminato il trasferimento Vantaggio: Vantaggio:

Il trasferimento avviene alla massima Il trasferimento avviene alla massima velocità possibilevelocità possibile

Svantaggio: Svantaggio: La CPU non può accedere al bus durante La CPU non può accedere al bus durante

il trasferimento. il trasferimento.

Page 24: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

24Luca Orrù

Cycle stealingCycle stealing

Il dati sono trasferiti in piccoli blocchiIl dati sono trasferiti in piccoli blocchi Il DMA controller diventa padrone del Il DMA controller diventa padrone del

bus per brevi istanti di tempobus per brevi istanti di tempo Vantaggio: Vantaggio:

la CPU non è bloccata per lunghi istanti la CPU non è bloccata per lunghi istanti di tempodi tempo

Svantaggi:Svantaggi: il trasferimento richiede più tempo. il trasferimento richiede più tempo.

Page 25: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

25Luca Orrù

Transparent DMATransparent DMA

Il DMA rileva quando la CPU non Il DMA rileva quando la CPU non usa il bususa il bus

I trasferimenti hanno luogo solo I trasferimenti hanno luogo solo quando la CPU non sta usando il busquando la CPU non sta usando il bus

Vantaggi: Vantaggi: il DMA non rallenta mai la CPUil DMA non rallenta mai la CPU

Svantaggi:Svantaggi: è in media il metodo più lento. è in media il metodo più lento.

Page 26: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

26Luca Orrù

Gestione I/OGestione I/O

Un dispositivo può richiamare Un dispositivo può richiamare l’attenzione della CPU in due modi:l’attenzione della CPU in due modi: PollingPolling InterruptInterrupt

Page 27: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

27Luca Orrù

PollingPolling

La CPU interroga periodicamente i La CPU interroga periodicamente i dispositividispositivi

Se il dispositivo interrogato ha Se il dispositivo interrogato ha richiesto servizio viene servitorichiesto servizio viene servito

VantaggioVantaggio semplice da realizzaresemplice da realizzare

Svantaggio:Svantaggio: un dispositivo deve attendere il suo turno un dispositivo deve attendere il suo turno

prima di essere servito: elevata latenza prima di essere servito: elevata latenza

Page 28: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

28Luca Orrù

InterruptInterrupt

La CPU non interroga i dispositivi di I/OLa CPU non interroga i dispositivi di I/O Quando un dispositivo ha necessità di Quando un dispositivo ha necessità di

essere servito attiva la richiesta di essere servito attiva la richiesta di interruptinterrupt

Al termine dell’esecuzione della istruzione Al termine dell’esecuzione della istruzione corrente, la CPU riconosce la richiesta di corrente, la CPU riconosce la richiesta di interrupt e la serveinterrupt e la serve

Il servizio dell’interrupt avviene iniziando �Il servizio dell’interrupt avviene iniziando �ad eseguire la procedura di servizio ad eseguire la procedura di servizio dell’interrupt: Interrupt Service Routine. dell’interrupt: Interrupt Service Routine.

Page 29: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

29Luca Orrù

Identificazione del Identificazione del dispositivodispositivo

Più dispositivi possono richiedere un Più dispositivi possono richiedere un interruptinterrupt

„„Per riconoscere il richiedente è Per riconoscere il richiedente è possibile utilizzare:possibile utilizzare: Linee di interrupt multipleLinee di interrupt multiple PollingPolling Interrupt vettorizzato Interrupt vettorizzato

Page 30: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

30Luca Orrù

Linee multipleLinee multiple

La CPU possiede diversi piedini per La CPU possiede diversi piedini per le richieste di Interruptle richieste di Interrupt

Ogni periferica è collegata ad un Ogni periferica è collegata ad un diverso piedino„diverso piedino„

È una soluzione impraticabile, È una soluzione impraticabile, poiché il numero di periferiche è poiché il numero di periferiche è quasi sempre superiore a quello dei quasi sempre superiore a quello dei piedini disponibilipiedini disponibili

Page 31: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

31Luca Orrù

PollingPolling

Esiste un solo piedino per le Esiste un solo piedino per le richieste di Interruptrichieste di Interrupt

„„Quando la CPU percepisce la Quando la CPU percepisce la richiesta, inizia a scandire le parole richiesta, inizia a scandire le parole di stato di tutte le periferiche per di stato di tutte le periferiche per individuare quella che ha fatto la individuare quella che ha fatto la richiesta. richiesta.

Page 32: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

32Luca Orrù

Interrupt vettorizzatoInterrupt vettorizzato Esiste un solo piedino per le richieste di Interrupt �Esiste un solo piedino per le richieste di Interrupt � Un apposito circuito, Interrupt Controller, riceve Un apposito circuito, Interrupt Controller, riceve

le richieste di interrupt, IRQle richieste di interrupt, IRQ Quando la CPU è pronta a servire la richiesta di Quando la CPU è pronta a servire la richiesta di

interrupt proveniente dall’ Interrupt interrupt proveniente dall’ Interrupt Controller( INTREQ), invia un segnale di INTACKController( INTREQ), invia un segnale di INTACK

L’Interrupt Controller pone sul bus un codice di L’Interrupt Controller pone sul bus un codice di identificazione del dispositivo che ha richiesto l’ identificazione del dispositivo che ha richiesto l’ Interrupt�Interrupt�

La CPU usa il codice per determinare l’indirizzo La CPU usa il codice per determinare l’indirizzo della procedura di servizio, usandolo come indice della procedura di servizio, usandolo come indice per un vettore degli indirizzi delle procedure di per un vettore degli indirizzi delle procedure di servizio (Interrupt Vector Table) servizio (Interrupt Vector Table)

Page 33: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

33Luca Orrù

ArchitetturaArchitettura

Page 34: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

34Luca Orrù

Interrupt vector tableInterrupt vector table

È una tabella esistente nella È una tabella esistente nella memoria principale (spesso a partire memoria principale (spesso a partire dall’indirizzo 00000)dall’indirizzo 00000)

Contiene, per ogni codice di Contiene, per ogni codice di Interrupt, l’indirizzo della relativa Interrupt, l’indirizzo della relativa Interrupt Service Routine. Interrupt Service Routine.

Page 35: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

35Luca Orrù

PrioritàPriorità

Nei sistemi complessi a ciascun Nei sistemi complessi a ciascun dispositivo di I/O è associata una dispositivo di I/O è associata una prioritàpriorità

A fronte di richieste simultanee A fronte di richieste simultanee viene eseguita la Interrupt Service viene eseguita la Interrupt Service Routine dell’I/O con priorità Routine dell’I/O con priorità maggiore. maggiore.

Page 36: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

Priorità (cont)Priorità (cont)

Se si usa il meccanismo delle linee di Se si usa il meccanismo delle linee di interrupt multiple, è la CPU che interrupt multiple, è la CPU che riconosce l’I/O con priorità più altariconosce l’I/O con priorità più alta

Nel caso del polling, la CPU serve Nel caso del polling, la CPU serve prima il dispositivo che compare prima il dispositivo che compare prima nella sequenza con cui i prima nella sequenza con cui i dispositivi vengono interrogatidispositivi vengono interrogati

Nel caso dell’interrupt vettorizzato, si Nel caso dell’interrupt vettorizzato, si usa il meccanismo del Daisy Chainingusa il meccanismo del Daisy Chaining

36Luca Orrù

Page 37: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

Daisy ChainingDaisy Chaining

Ciascun I/O possiede una circuiteria Ciascun I/O possiede una circuiteria che riceve il segnale di INTACK e che riceve il segnale di INTACK e che può propagarlo in uscitache può propagarlo in uscita

Quando questo viene attivato, se il Quando questo viene attivato, se il dispositivo ha fatto richiesta di dispositivo ha fatto richiesta di interrupt mette sul bus il suo codice interrupt mette sul bus il suo codice identificativoidentificativo

Se non ha fatto richiesta, attiva il Se non ha fatto richiesta, attiva il segnale di INTACK in uscitasegnale di INTACK in uscita

37Luca Orrù

Page 38: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

Daisy ChainingDaisy Chaining

38Luca Orrù

Page 39: Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.

Architettura estesa della Architettura estesa della CPUCPU

39Luca Orrù