• Non ci sono risultati.

Tecniche di gestione dell’I/O

N/A
N/A
Protected

Academic year: 2021

Condividi "Tecniche di gestione dell’I/O"

Copied!
11
0
0

Testo completo

(1)

© 2001 - William Fornaciari

CEFRIEL

Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione

Politecnico di Milano

Tecniche di gestione dell’I/O

Docente William Fornaciari Politecnico di Milano

{fornacia, brandole}@elet.polimi.it www.elet.polimi.it/~fornacia

Ottobre 2001

Sommario

Richiami sulle periferiche Definizione del problema Controllo di programma Interruzione

Direct Memory Access (DMA)

(2)

Tecniche di Interfacciamento - 3 - © 2001 - William Fornaciari

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

Dispositivi di I/O: Interfaccia

Address Bus

Data Bus Control Bus

I/O Device Interface

Address Decoder Control Logic Status and Data Registers

Un dispositivo di I/O generico necessita di una

interfaccia per poter accedere al BUS

(3)

Tecniche di Interfacciamento - 5 - © 2001 - William Fornaciari

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 5 000

Network-LAN Input/Output Macchina 20 – 1 000 Graphics Display Output Umano 30 000

Le esigenze

Necessità di bilanciare costo/prestazioni Parametri di valutazione

tempo di reazione

velocità di trasferimento dati efficienza nell’uso della CPU complessità, flessibità e costo Domande

come sincronizzare processore con periferica come trasferire i dati

come raggiungere adeguate velocità senza sovraccaricare il

processore

(4)

Tecniche di Interfacciamento - 7 - © 2001 - William Fornaciari

Tecniche di base

Complessità Costo

Prestazioni

Sincronizzazione SW HW HW

Trasferimento SW SW HW

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 Interruzione DMA

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

(5)

Tecniche di Interfacciamento - 9 - © 2001 - William Fornaciari

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

Interruzione

Meccanismo base

La 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 interrotto

Vantaggi

Elimino test inutili dei flag, utile per eventi sporadici

Interruzioni eseguite in modo trasparente rispetto a programmi

(6)

Tecniche di Interfacciamento - 11 - © 2001 - William Fornaciari

Interruzione: problemi di gestione

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 ISR

Possibilità di avere più richieste pendenti, concetto di priorità

Possibilità di ricevere segnali di interruzione durante l’esecuzione di una ISR

Interruzione: accettazione

Il processore termina sempre l’istruzione corrente prima di accettare interruzione

Di norma le interruzioni vengono disabilitate in modo automatico all’inizio 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)

(7)

Tecniche di Interfacciamento - 13 - © 2001 - William Fornaciari

Tecniche per identificare le ISR

Salto a indirizzo fisso

il segnale INT è unico per tutte le periferiche all’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 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 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

(8)

Tecniche di Interfacciamento - 15 - © 2001 - 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)

l’associazione fra INTREQ e priorità è di norma (anche se non necessariamente) statica, decisa cioè in fase di

configurazione della macchina

Processore Periferica

(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 precede

La periferica servita non solleva INTACK finché non è terminata la sua ISR

Priorità cablata (daisy - chain)

(9)

Tecniche di Interfacciamento - 17 - © 2001 - William Fornaciari

Priorità con Interrupt Controller

Controllore di Interruzione

(Interrupt Controller)

BUS del Calcolatore (Indirizzi, Dati e Controllo) Unità Funzionali

Porte BUS

dati indirizzi

controllo Processore

dati indirizzi

controllo

INTREQ INTACK PFC Read/Write

INTREQ INTACK PFC Read/Write

Tastiera dati

indirizzi

controllo

PFC Read/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

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 l’intrinseca 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

(10)

Tecniche di Interfacciamento - 19 - © 2001 - 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 dell’operazione tramite interruzione

DMAC: struttura interna

indirizzo base memoria

lunghezza porta periferica

32 1

32 1

16 1

controllo

16 1

unità di controllo

dato

8 1

BUS del Calcolatore

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 l’ind base e decrementa lunghezza

la presenza contemporanea di più DMAC richiede un sistema che funga da arbitro per le richieste al bus

(11)

Tecniche di Interfacciamento - 21 - © 2001 - 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)

Meccanismi Tempo di

risposta 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)

Riferimenti

Documenti correlati

L’amministratore dura in carica un anno (norma inderogabile) e può essere confermato nell’incarico con lo stesso quorum previsto per la nomina, vale a dire a maggioranza

Solo una volta uscita capii che per quanto quel luogo fosse terribile, il vero manicomio era fuori, in un mondo che ogni giorno ti impone limiti, standard e regole alle

L’indirizzo ormai univoco della giurisprudenza consente di affermare che, il mutuo, pur se stipulato come atto pubblico notarile, non può costituire titolo esecutivo se non prevede

Il principio base deve allora essere quello della leale collaborazione tra soggetto pubblico e privato «con l’onere in capo al richiedente la residenza di indicare, fornendone

Alla scadenza dell’ottavo anno, il contratto prosegue per altri 4 anni, e così via, ogni 4 anni, a meno che una delle due parti (locatore o inquilino) dia disdetta 6 mesi prima

Il DMAC avverte la periferica che il dato è stato scritto nel REGIN Questa serie di segnali di controllo generati dal SCO del DMAC servono per selezionare i dati indirizzati dal CAR

Il servizio associato all'interruzione è il seguente: il processore deve controllare che il contenuto di un buffer di 128 byte all'indirizzo BBBBh sia uguale (byte a byte) al

– Il buffer è svuotato dalla subroutine di livello applicazione per la lettura, che ritorna il messaggio in cima alla coda (se. presente) e lo rimuove