CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © William Fornaciari Tecniche di gestione dellI/O Docente William Fornaciari Politecnico di Milano {fornacia, Ottobre 2001
Tecniche di Interfacciamento© William Fornaciari- 2 - Sommario Richiami sulle periferiche Definizione del problema Controllo di programma Interruzione Direct Memory Access (DMA)
Tecniche di Interfacciamento© William Fornaciari- 3 - Richiami sulle periferiche Memory mapping: condivisione dello spazio di I/O con la memoria Possibilità di usare le stesse istruzioni assembler per accedere a dispositivo di I/O o memoria Se un dispositivo di I/O trova sul bus indirizzi il proprio indentificativo, allora risponde ai segnali che riceve sul bus di controllo Gli eventuali dati da scambiare transiteranno sul bus dati
Tecniche di Interfacciamento© William Fornaciari- 4 - Dispositivi di I/O: Interfaccia Address Bus Data Bus Control Bus I/O Device Interface Address DecoderControl Logic Status and Data Registers Un dispositivo di I/O generico necessita di una interfaccia per poter accedere al BUS
Tecniche di Interfacciamento© William Fornaciari- 5 - Le esigenze Scambio informazioni con il mondo esterno Dispositivo Azioni Partner Data Rate (KB/sec) Keyboard Input Umano 0.01 Mouse Input Umano 0.02 Line Printer Output Umano 1 Floppy disk Storage Macchina 50 Laser Printer Output Umano 100 Optical Disk Storage Macchina 500 Magnetic Disk Storage Macchina Network-LAN Input/Output Macchina 20 – Graphics Display Output Umano
Tecniche di Interfacciamento© William Fornaciari- 6 - Le esigenze Necessità di bilanciare costo/prestazioni Parametri di valutazione tempo di reazione velocità di trasferimento dati efficienza nelluso della CPU complessità, flessibità e costo Domande come sincronizzare processore con periferica come trasferire i dati come raggiungere adeguate velocità senza sovraccaricare il processore
Tecniche di Interfacciamento© William Fornaciari- 7 - Tecniche di base Complessità Costo Prestazioni SincronizzazioneSWHWHW TrasferimentoSWSWHW Sw: costoso da sviluppare, economico da riprodurre, elaborazioni flessibili, articolate ma lente Hw: costo di realizzazione e collaudo di ogni esemplare, elaborazioni veloci, semplici ma rigide Controllo di programma InterruzioneDMA
Tecniche di Interfacciamento© William Fornaciari- 8 - Controllo di programma Il processore si occupa di tutte le attività interroga periodicamente le periferiche (polling) per capire se vi sono dati da leggere o è possibile scrivere i dati vengono scambiati tramite una porta di lettura/scrittura la sincronizzazione usa registri di controllo delle porte di lettura/scrittura (flag verificati e re-inizializzati a termine operazione) flag P1 flag Pn routine n routine 1
Tecniche di Interfacciamento© William Fornaciari- 9 - Controllo di programma Vantaggi semplicità flessibilità basso costo (se il processore è economico) Svantaggi scarso sfruttamento della CPU soprattutto in caso di eventi sporadici e periferiche lente difficile introdurre concetti di urgenza latenze di risposta a volte notevoli possibile influenza del carico di lavoro della CPU
Tecniche di Interfacciamento© William Fornaciari Interruzione Meccanismo base La periferica prende liniziativa di segnalare al processore la sua disponibilità per operazione di I/O (INTREQ) Il processore segnala (INTACK) laccettazione 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 interrotto Vantaggi Elimino test inutili dei flag, utile per eventi sporadici Interruzioni eseguite in modo trasparente rispetto a programmi
Tecniche di Interfacciamento© William Fornaciari Interruzione: problemi di gestione Il salvataggio del contesto può coinvolgere la memoria, provocando ritardi nellesecuzione della ISR (latenza di interruzione) Tempo limite per servire ISR (se non si intende ignorarla) Identificazione della periferica e attivazione della relativa ISR Possibilità di avere più richieste pendenti, concetto di priorità Possibilità di ricevere segnali di interruzione durante lesecuzione di una ISR
Tecniche di Interfacciamento© William Fornaciari Interruzione: accettazione Il processore termina sempre listruzione corrente prima di accettare interruzione Di norma le interruzioni vengono disabilitate in modo automatico allinizio delle ISR, è compito del programmatore riabilitarle I processori consentono di abilitare o disabilitare (mascherare) selettivamente le singole cause di interruzione Spesso esistono interruzioni non mascherabili (NMI) destinati a gestire eventi che richiedono bassa latenza (es. errore di parità memoria)
Tecniche di Interfacciamento© William Fornaciari Tecniche per identificare le ISR Salto a indirizzo fisso il segnale INT è unico per tutte le periferiche allinizio della ISR vengono scanditi i registri di controllo delle periferiche (polling) per identificare quella che ha sollevato INT ed eseguire lappropriato codice di servizio semplice, economica (poco hw), problema latenza Segnali multipli di interruzione ogni periferica dispone di una proprio INT, cui è associato un indirizzo specifico di memoria che contiene la ISR complicata struttura dei bus, usabile solo con limitato numero di periferiche
Tecniche di Interfacciamento© William Fornaciari 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 Interfacciamento© William Fornaciari Politiche di priorità per interruzioni multiple Nessuna politica ogni ISR viene eseguita a interruzioni disabilitate durante 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) lassociazione fra INTREQ e priorità è di norma (anche se non necessariamente) statica, decisa cioè in fase di configurazione della macchina
Tecniche di Interfacciamento© William Fornaciari Ogni periferica può sollevare INTREQ se e solo se riceve INTACK da quella che la precede La periferica servita non solleva INTACK finché non è terminata la sua ISR Priorità cablata (daisy - chain)
Tecniche di Interfacciamento© William Fornaciari Priorità con Interrupt Controller Un dispositivo riceve le richieste dalle periferiche e le smista con lopportuna priorità In controllore deve essere configurato da parte del processore
Tecniche di Interfacciamento© William Fornaciari Direct Memory Access Esistono dispositivi, come gli HD, che richiedono trasferimenti di grosse moli di dati contigui entro tempi limiti stringenti La latenza delle interruzioni e lintrinseca lentezza della gestione sw richiedono nuove strategie in gradi di interfacciare direttamente la memoria con i dispositivi di I/O Durante 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 bus Il DMAC è programmato dal processore
Tecniche di Interfacciamento© William Fornaciari DMA: funzionamento Quando una periferica ha pronto un blocco di dati da scrivere in memoria invia al DMAC una DMA request Quando 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 BUSBUSY Il DMAC prende il controllo del bus, rialzando BUSBUSY Il DMAC trasferisce i dati dalla periferica verso la memoria, al termine disattiva BUSBUSY e segnale al processore il termine delloperazione tramite interruzione
Tecniche di Interfacciamento© William Fornaciari DMAC: struttura interna Ind base: indirizzo iniziale della memoria ove trasferire il blocco dati porta perif.: indirizzo porta periferica ove leggere/scrivere i dati da trasferire lunghezza: dimensione del blocco dati controllo: registro con campi per codici errore, abilitazione DMA, fine DMA… dato: registro tampone, se presente, usato per i traferimenti ad ogni trasferimento, automaticamente si incrementa lind base e decrementa lunghezza la presenza contemporanea di più DMAC richiede un sistema che funga da arbitro per le richieste al bus
Tecniche di Interfacciamento© William Fornaciari Confronti conclusivi Il DMA garantisce elevate prestazioni a un costo elevato Il DMA può allungare in modo impredicibile i tempi di esecuzione dei programmi (talvolta in sistemi in tempo reale viene disabilitato)