cefriel consorzio per la formazione e la ricerca in ingegneria dellinformazione politecnico di...

21
© 2001 - William Fornaciari © 2001 - William Fornaciari CEFRIEL CEFRIEL Consorzio per la Formazione e la Consorzio per la Formazione e la Ricerca Ricerca in Ingegneria dell’Informazione in Ingegneria dell’Informazione Politecnico Politecnico di Milano di Milano Tecniche di gestione dell’I/O Tecniche di gestione dell’I/O Docente Docente William Fornaciari William Fornaciari Politecnico di Milano Politecnico di Milano {fornacia, brandole}@elet.polimi.it {fornacia, brandole}@elet.polimi.it www.elet.polimi.it/~fornacia www.elet.polimi.it/~fornacia Ottobre 2001 Ottobre 2001

Upload: quirino-capone

Post on 01-May-2015

224 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

© 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

Page 2: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

Tecniche di InterfacciamentoTecniche di Interfacciamento © 2001 - William Fornaciari© 2001 - William Fornaciari- - 22 - -

SommarioSommario

Richiami sulle perifericheDefinizione del problemaControllo di programmaInterruzioneDirect Memory Access (DMA)

Page 3: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 4: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 5: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 6: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 7: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 8: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 9: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 10: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 11: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 12: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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)

Page 13: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 14: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 15: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 16: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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)

Page 17: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 18: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 19: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 20: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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

Page 21: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - William Fornaciari Tecniche di gestione

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)