cefriel consorzio per la formazione e la ricerca in ingegneria dellinformazione politecnico di...
TRANSCRIPT
© 2001 - William Fornaciari© 2001 - William Fornaciari
CEFRIELCEFRIELConsorzio per la Formazione e la RicercaConsorzio per la Formazione e la Ricercain Ingegneria dell’Informazionein Ingegneria dell’Informazione
PolitecnicoPolitecnicodi Milanodi Milano
Tecniche di gestione dell’I/OTecniche di gestione dell’I/O
DocenteDocente
William FornaciariWilliam Fornaciari
Politecnico di MilanoPolitecnico di Milano{fornacia, brandole}@elet.polimi.it{fornacia, brandole}@elet.polimi.it
www.elet.polimi.it/~fornaciawww.elet.polimi.it/~fornacia
Ottobre 2001Ottobre 2001
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 22 - -
SommarioSommario
Richiami sulle perifericheDefinizione del problemaControllo di programmaInterruzioneDirect Memory Access (DMA)
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 33 - -
Richiami sulle perifericheRichiami sulle periferiche
Memory mapping: condivisione dello spazio di I/O con la memoriaPossibilità di usare le stesse istruzioni assembler per accedere a dispositivo di I/O o memoriaSe un dispositivo di I/O trova sul bus indirizzi il proprio indentificativo, allora risponde ai segnali che riceve sul bus di controlloGli eventuali dati da scambiare transiteranno sul bus dati
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 44 - -
Dispositivi di I/O: InterfacciaDispositivi di I/O: Interfaccia
Address Bus
Data Bus
Control Bus
I/O Device
Interface
Address Decoder Control LogicStatus and Data
Registers
Un dispositivo di I/O generico necessita di una interfaccia per poter accedere al BUS
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 55 - -
Le esigenzeLe esigenze
Scambio informazioni con il mondo esternoDispositivo Azioni Partner Data Rate (KB/sec)Keyboard Input Umano
0.01Mouse Input Umano
0.02Line Printer Output Umano 1Floppy disk Storage Macchina 50Laser Printer Output Umano 100Optical Disk Storage Macchina 500Magnetic Disk Storage Macchina 5 000Network-LAN Input/Output Macchina 20 – 1
000Graphics Display Output Umano 30 000
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 66 - -
Le esigenzeLe esigenze
Necessità di bilanciare costo/prestazioniParametri di valutazione
tempo di reazionevelocità di trasferimento datiefficienza nell’uso della CPUcomplessità, flessibità e costo
Domandecome sincronizzare processore con perifericacome trasferire i daticome raggiungere adeguate velocità senza sovraccaricare il processore
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 77 - -
Tecniche di baseTecniche di base
ComplessitàCostoPrestazioniSincronizzazione SW HW HWTrasferimento SW SW HW
Sw: costoso da sviluppare, economico da riprodurre, elaborazioni flessibili, articolate ma lenteHw: costo di realizzazione e collaudo di ogni esemplare, elaborazioni veloci, semplici ma rigide
Controllo di programma
Interruzione DMA
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 88 - -
Controllo di programmaControllo di programma
Il processore si occupa di tutte le attività
interroga periodicamentele periferiche (polling) per capire se vi sono dati da leggereo è possibile scriverei dati vengono scambiati tramite una porta di lettura/scritturala sincronizzazione usa registridi controllo delle porte di lettura/scrittura (flag verificati e re-inizializzati a termine operazione)
flag P1
flag Pn
routinen
routine1
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 99 - -
Controllo di programmaControllo di programma
Vantaggisemplicitàflessibilitàbasso costo (se il processore è economico)
Svantaggiscarso sfruttamento della CPU soprattutto in caso di eventi sporadici e periferiche lentedifficile introdurre concetti di urgenzalatenze di risposta a volte notevolipossibile influenza del carico di lavoro della CPU
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1010 - -
InterruzioneInterruzione
Meccanismo baseLa periferica prende l’iniziativa di segnalare al processore la sua disponibilità per operazione di I/O (INTREQ)Il processore segnala (INTACK) l’accettazione della richiesta (non necessariamente subito)Il processore interrompe il programma e salta ad eseguire una routine di servizio (ISR), salvando lo stato della computazione (PC, Status Reg, Registri)Terminata la ISR, tramite istruzione apposita si ritorna al punto
in cui il programma era stato interrottoVantaggi
Elimino test inutili dei flag, utile per eventi sporadiciInterruzioni eseguite in modo trasparente rispetto a programmi
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1111 - -
Interruzione: problemi di Interruzione: problemi di gestionegestione
Il salvataggio del contesto può coinvolgere la memoria, provocando ritardi nell’esecuzione della ISR (latenza di interruzione)Tempo limite per servire ISR (se non si intende ignorarla)Identificazione della periferica e attivazione della relativa ISRPossibilità di avere più richieste pendenti, concetto di prioritàPossibilità di ricevere segnali di interruzione durante l’esecuzione di una ISR
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1212 - -
Interruzione: accettazioneInterruzione: accettazione
Il processore termina sempre l’istruzione corrente prima di accettare interruzioneDi norma le interruzioni vengono disabilitate in modo automatico all’inizio delle ISR, è compito del programmatore riabilitarleI processori consentono di abilitare o disabilitare (mascherare) selettivamente le singole cause di interruzioneSpesso esistono interruzioni non mascherabili (NMI) destinati a gestire eventi che richiedono bassa latenza (es. errore di parità memoria)
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1313 - -
Tecniche per identificare le ISRTecniche per identificare le ISR
Salto a indirizzo fissoil segnale INT è unico per tutte le perifericheall’inizio della ISR vengono scanditi i registri di controllo delle periferiche (polling) per identificare quella che ha sollevato INT ed eseguire l’appropriato codice di serviziosemplice, economica (poco hw), problema latenza
Segnali multipli di interruzioneogni periferica dispone di una proprio INT, cui è associato un indirizzo specifico di memoria che contiene la ISRcomplicata struttura dei bus, usabile solo con limitato numero di periferiche
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1414 - -
•Tecniche per identificare le ISRTecniche per identificare le ISR
Interruzione vettorizzata– il segnale INT è unico, ma ogni periferica si auto-
identifica inviando sul bus dati un codice (vettore di interruzione)
– il vettore di interruzione viene usato come indice di una tabella contenente gli indirizzi delle varie ISR
– tecnica efficiente, flessibile ma relativamente costosa
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1515 - -
Politiche di priorità per Politiche di priorità per interruzioni multipleinterruzioni multiple
Nessuna politicaogni ISR viene eseguita a interruzioni disabilitatedurante una ISR le altre rimangono pendenti
Schema con prioritàogni ISR ha un livello di priorità (0, 1, …)una ISR associata a INTREQ di livello h può essere interrotto solo da una INTREQ di livello k superiore (k h)l’associazione fra INTREQ e priorità è di norma (anche se non necessariamente) statica, decisa cioè in fase di configurazione della macchina
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1616 - -
ProcessorePeriferica(priorità 0)
Periferica(priorità 1)
Periferica(priorità n)
INTREQ
INTACK
INTREQ INTREQ INTREQ INTREQ
INTACK INTACK
Ogni periferica può sollevare INTREQ se e solo se riceve INTACK da quella che la precedeLa periferica servita non solleva INTACK finché non è terminata la sua ISR
Priorità cablata (daisy - chain)Priorità cablata (daisy - chain)
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1717 - -
Priorità con Interrupt ControllerPriorità con Interrupt Controller
Controlloredi Interruzione
(InterruptController)
BUS delCalcolatore
(Indirizzi, Dati e Controllo)Unità FunzionaliPorte BUS
dati
indirizzi
controllo
Processoredati
indirizzi
controllo
INTREQINTACKPFCRead/Write
INTREQINTACKPFCRead/Write
Tastieradati
indirizzi
controllo
PFCRead/Write
INTREQ1 altre periferiche
1 2 ............. 8
Un dispositivo riceve le richieste dalle periferiche e le smista con l’opportuna prioritàIn controllore deve essere configurato da parte del processore
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1818 - -
Direct Memory AccessDirect Memory Access
Esistono dispositivi, come gli HD, che richiedono trasferimenti di grosse moli di dati contigui entro tempi limiti stringentiLa latenza delle interruzioni e l’intrinseca lentezza della gestione sw richiedono nuove strategie in gradi di interfacciare direttamente la memoria con i dispositivi di I/ODurante i trasferimenti il processore perde il ruolo di Master a favore del DMA Controller (DMAC), che genera tutti gli indirizzi e segnali per la gestione dei busIl DMAC è programmato dal processore
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1919 - -
DMA: funzionamentoDMA: funzionamento
Quando una periferica ha pronto un blocco di dati da scrivere in memoria invia al DMAC una DMA requestQuando può il DMAC accetta la richiesta smistandola verso il micro come segnale di richiesta di bus (BUSREQ)Il processore cede il ruolo di master del bus al DMAC, disattivano un segnale BUSBUSYIl DMAC prende il controllo del bus, rialzando BUSBUSYIl DMAC trasferisce i dati dalla periferica verso la memoria, al termine disattiva BUSBUSY e segnale al processore il termine dell’operazione tramite interruzione
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 2020 - -
DMAC: struttura internaDMAC: struttura interna
indirizzo base memoria
lunghezza
porta periferica
32 1
32 1
16 1
controllo
16 1
unità dicontrollo
dato
8 1
BUS del
Calcolatore
Ind base: indirizzo iniziale della memoria ove trasferire il blocco datiporta perif.: indirizzo porta periferica ove leggere/scrivere i dati da trasferirelunghezza: dimensione del blocco daticontrollo: registro con campi per codici errore, abilitazione DMA, fine DMA…dato: registro tampone, se presente, usato per i traferimentiad ogni trasferimento, automaticamente si incrementa l’ind base e decrementa lunghezzala presenza contemporanea di più DMAC richiede un sistema che funga da arbitro per le richieste al bus
Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 2121 - -
Confronti conclusiviConfronti conclusivi
Il DMA garantisce elevate prestazioni a un costo elevatoIl DMA può allungare in modo impredicibile i tempi di esecuzione dei programmi (talvolta in sistemi in tempo reale viene disabilitato)
MeccanismiTempo dirisposta
Efficienza Costo Complessità
Controllo di Programma 10 sec Scarsa Basso Bassa (hw) Varia (sw)Interrupt 50 sec Discreta Medio Media (hw) Media (sw)
DMA 2 sec Ottima Alto Alta (hw) Media (sw)