Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Input/Output A.A. 2002/2003 1
Input / Output
M. Dominoni
A.A. 2002/2003
Input/Output A.A. 2002/2003 2
Struttura del Computer• 4 componenti strutturali:
– CPU: controlla le operazionidel computer
– Memoria Centrale: immagazinamento dati e codice
– I/O: muove dati tra il computer e l’esterno
– Interconnesione del sistema: qualchemeccanismo che permette la comunicazione tra CPU, Memoria e I/O
Input/Output A.A. 2002/2003 3
Input/Output• Oltre ai componenti processore e memoria, il terzo
elemento chiave di un computer e’ un insieme di modulidi I/O
• Ogni modulo e’ interconnesso con il processore e la memoria e controlla uno o piu’ componenti esterni
• Il modulo I/O interagisce con il resto del computer per mezzo delle tecniche di:– I/O programmato– I/O ad interrupt– DMA - Direct Memomy Access
Input/Output A.A. 2002/2003 4
BUS: Sistema di Interconnesione
• Un BUS e’ un canale di comunicazione che collega 2 o piu’ componenti: e’ un mezzo di trasmissione condiviso
• Piu’ componenti collegati al BUS: il segnale trasmesso da un componente e’ disponibile per essere ricevuto da tutti gli altricomponenti collegati al bus
• Solo un componente alla volta puo’ trasmettere sul bus• Bus costituito da un insieme separato di linee: le linee possono
essere classificate in tre gruppi funzionali:– Linee dati– Line di indirizzo– Linee di controllo
Inoltre possono essere presenti linee di potenza per alimentare i moduliconnessi
Input/Output A.A. 2002/2003 5
Esempio: operazione di input
M e m o r y P r o c e s s o r
C o n t r o l l i n e s
D a t a l in e s
D i s k s
P r o c e s s o r
C o n t r o l l i n e s
D a t a l in e s
D i s k s
a .
b .
M e m o r y
Input/Output A.A. 2002/2003 6
Esempio: operazione di output
M e m o r y P r o c e s s o r
C o n t r o l l i n e s
D a t a l i n e s
D i s k s
M e m o r y P r o c e s s o r
C o n t r o l l i n e s
D a t a l i n e s
D i s k s
P r o c e s s o r
C o n t r o l l i n e s
D a t a l i n e s
D i s k s
a .
b .
c .
M e m o r y
Input/Output A.A. 2002/2003 7
Struttura del Bus - cont
• Linee dati: collettivamente sono chiamatebus dati –
– Esempio: • PCI:
– Ampiezza bus dati: 32 / 64 bit• SCSI
– Ampiezza bus dati: 8-32 bit
Input/Output A.A. 2002/2003 8
Struttura del Bus – cont 2• Linee di indirizzo: permettono di designare la sorgente e la
destinazione dei dati sul bus dati - puo’ essere usato il bus dati per trasmettere l’indirizzo
• Linee di controllo: sono usate per controllare l’accesso e l’uso dellelinee dati e di indirizzo –Tipiche linee di controllo includono:– Memory write– Memory read– I/O write– I/O read– Transfer ACK– Bus request– Bus grant – Interrupt Request– Interrupt ACK– Clock– Reset
Input/Output A.A. 2002/2003 9
Struttura del Bus – cont 3
• Bus Sincrono: include un clock nelle lineedi controllo ed un protocollo prestabilitoper la comunicazione– Adatto per bus molto veloci– A due principali svantaggi:
• Tutti i device sul bus devono funzionare allo stessoclock
• Se sono particolarmente veloci non possonoessere molto lunghi
Input/Output A.A. 2002/2003 10
Struttura del Bus – cont 4• Bus Asincrono:
– Puo’ accogliere una grande varieta’ di device (con clock diversi)– Non ci sono problemi di lunghezza
• Per coordinare la trasmissione dei dati si usa un protocollo di “handshaking”
DataRdy
Ack
Data
ReadReq 13
4
57
642 2
Input/Output A.A. 2002/2003 11
Struttura del Bus – cont 5
• Gerarchia di Bus:Processor Memory
Backplane bus
a. I/O devices
Processor MemoryProcessor-memory bus
b.
Bus�adapter
Bus�adapter
I/O�bus
I/O�bus
Bus�adapter
I/O�bus
Processor MemoryProcessor-memory bus
c.
Bus�adapter
Backplane�bus
Bus�adapter
I/O bus
Bus�adapter
I/O bus
Input/Output A.A. 2002/2003 12
Bus - Sommario• Link di comunicazione condivisa (una o piu’ linee)• Difficolta’ di disegno:
— puo’ essere un collo di bottiglia— lunghezza del bus— numero dei dispositivi— buffer per una maggiore ampiezza di banda aumentano la latenza— connessione a dispositivi differenti— costo
• Tipi di bus:— processore-memoria (corto, alta velocita’, specifico)— backplane (alta velocita’, spesso standard -> PCI)— I/O (lungo, differenti dispositivi, standard -> SCSI)
• Sincrono vs. Asincrono— uso di un clock e di un protocollo sincono, veloce e piccolo
ma ogni dispositivo deve operare alla stessa velocita’— non si usa un clock -> invece si usa il protocollo di handshaking
Input/Output A.A. 2002/2003 13
Accesso al Bus• Bus master – slave
M em o ry P rocessor
Bus requ es t lines
Bu s
D isks
Bus requ es t lines
Bu s
D isks
P rocessor
Bus requ es t lines
Bu s
D isks
a.
b.
c .
P rocessorM em o ry
M em o ry
Input/Output A.A. 2002/2003 14
Bus Arbitration
• Bus Arbitration: decidere quale bus master puo’ iniziaread usare il bus
• Gli schemi di arbitrato devono bilanciare due fattori neldecidere quale device ha accesso al bus:– Priorita’ sul bus: I device con maggiore priorita’ devono potere
accedere prima al bus– Ogni device sul bus deve potere accedere
• Arbitrato si puo’ dividere in quattro classi generali:– Arbitrato centralizzato, parallelo: esempio bus PCI
un arbitro centralizzato sceglie tra I device che devono accedereal bus e notifica al pescelto che e’ stato nominato bus master –Lo svantaggio e’ che richiede un arbitro centralizzato che puo’ divenire il collo di bottiglia
Input/Output A.A. 2002/2003 15
Bus Arbitration – cont 2• Daisy Chain:
– Vantaggio semplicita’– Svantaggio: non assicura l’accesso a tutti
Device n
Lowest priority
Device 2Device 1
Highest priority
Bus�arbiter
Grant
Grant Grant
Release
Request
Input/Output A.A. 2002/2003 16
Bus Arbitration – cont3
• Arbitrato distribuito per auto-selezione: tutti device sulbus inviano una richiesta di accesso indicando la relativapriorita’: non c’e’ bisogno di un arbitro centralizzato –esempio NuBus su Apple Macintosh II
• Arbitrato distribuito per analisi di collisione: ogni device sul bus richiede accesso – multiple richieste simultaneegenerano collisione – Ethernet usa questo schema
Input/Output A.A. 2002/2003 17
Interfaccia tra Processore e Periferiche• Design dello I/O influenzato da molti fattori (espandibilita’, affidabilita’)• Prestazioni:
— latenza di accesso— throughput— connessione tra i dispositivi e il sistema— gerarchia di memoria— sistema operativo
• Una moltitudi di utenti diversi (ex: banche, supercomputer, fisici,…)
Main�memory
I/O�controller
I/O�controller
I/O�controller
Disk Graphics�output
Network
Memory– I/O bus
Processor
Cache
Interrupts
Disk
Input/Output A.A. 2002/2003 18
I/O: Dispositivi• Dispositivi molto diversi
– comportamento (i.e., input vs. output)– partner (chi c’e’ dall’altro lato?)– data rate
Device Behavior Partner Data rate (KB/sec)Keyboard input human 0.01Mouse input human 0.02Voice input input human 0.02Scanner input human 400.00Voice output output human 0.60Line printer output human 1.00Laser printer output human 200.00Graphics display output human 60,000.00Modem input or output machine 2.00-8.00Network/LAN input or output machine 500.00-6000.00Floppy disk storage machine 100.00Optical disk storage machine 1000.00Magnetic tape storage machine 2000.00Magnetic disk storage machine 2000.00-10,000.00
Input/Output A.A. 2002/2003 19
I/O Esempio: Dischi
• Per accedere ai dati:— ricerca: posizionamento
della testina sopra la tracciaappropriata (8 to 20 ms -media)
— latenza di rotazione: attesa per il settore desiderato(.5 / RPM)
— trasferimento: portare i dati (uno o piu’ settori) –da 2 a 15 MB/sec
Platter
Track
Platters
Sectors
Tracks
Input/Output A.A. 2002/2003 20
Punti Importanti
• Bus Arbitration:– daisy chain– Arbitrato centralizzato (richiede un arbitro) => PCI– Auto-selezione => NuBus usato in Macintosh– collision detection => Ethernet
• Sistema operativo:– Polling– Interrupt– DMA
Input/Output A.A. 2002/2003 21
CPU vs I/O• CPU deve inviare un comando ad un
dispositivo di I/O• ci sono due metodi di indirizzamento
– Memory mapped I/O– I/O isolato
• Alternativa all’I/O memory mapped e’ l’uso dedicatodi istruzioni di I/O nel processore
• specificano sia il dispositivo che il comando
Input/Output A.A. 2002/2003 22
Memory mapped I/O• una porzione dello spazio di indirizzamento e’ assegnata
ai dispositivi di I/O• l’accesso al dispositivo di I/O avviene in maniera
analoga all’accesso in memori– Esempio: operazione di scrittura puo’ essere usata per per
inviare dati al dispositivo di I/O che saranno interpretati come comandi – il sistema di memoria ignora l’operazione perche’ l’indirizzo indica una porzione dello spazio di memoria dedicataall’I/O. Il controllore del dispositivo vede la richiesta, registra i dati che invia al dispositivo come comandi.
• L’indirizzo codifica sia l’identita’ del dispositivo che il tipodi trasmissione tra CPU e dispositivo stesso.
Input/Output A.A. 2002/2003 23
Schema a Blocchi di un dispositivo esterno
Input/Output A.A. 2002/2003 24
Schema a blocchi di un modulo di I/O
Input/Output A.A. 2002/2003 25
I/O -1
• Tre tecniche possibili per le operazioni diI/O:
– I/O Programmato
– I/O ad Interrupt
– Direct Memory Access (DMA)
Input/Output A.A. 2002/2003 26
I/O Programmato• Dati sono scambiati tra la CPU e il modulo I/O• CPU esegue un programma che le assegna il controllo diretto sulla
operazione di I/O:– Stato del dispositivo– Read e Write command– Trasferimento di dati
• Polling: e’ il modo piu’ semplice con cui il device comunica con ilprocessore – I/O device mette le informazioni in uno registro di statoe il processore deve venire ad ottenere l’informazione
• Il controllo e’ completamente del processore
• Lo svantaggio di questa tecnica e’ quello di sprecare un gran numerodi cicli del processore: CPU e’ molto piu’ veloce delle periferiche diI/O
Input/Output A.A. 2002/2003 27
I/O programmato – cont 2
• CPU a 500MHz• Numero di cicli per operazione di polling 400
– Mouse: campionato 30 volte al secondo– cicli di clock per secondo per polling=30x400=12.000– Frazione di cicli di clock consumata: 12K/500M=0,002%– Floppy che trasferisce dati in unita’ di 16 bit a 50kB/s
Frazione del processore consumata=2%
– Disco che trasferisce a 4MB/sFrazione del processore consumata=20%
Input/Output A.A. 2002/2003 28
Ciclo di istruzione con Interrupt
Input/Output A.A. 2002/2003 29
I/O ad interrupt• CPU trasmette il comando al modulo di I/O e passa a fare altro
• Il modulo I/O interrompe la CPU con una richiesta di servizio quandoe’ pronto a scambiare I dati
• La CPU esegue il trasferimento di dati e ritorna ai processi in corso
• I/O ad interrupt e’ piu’ efficiente di quello programmato: elimina la necessita’ dell’attesa della CPU.
• E’ comunque un metodo che consuma ancora molta CPU: ogni word di dati che e’ trasferita dalla memoria al modulo di I/O e viceversadeve passare attraverso la CPU
Input/Output A.A. 2002/2003 30
I/O ad interrupt – cont 2
• CPU a 500MHz• Numero di cicli per operazione di
trasferimento 500• Disco trasferisce dati solo per il 5% del
tempoDisco che trasferisce a 4MB/s
Frazione del processore consumata durante un trasferimento =25%
Frazione del processore consumata in media 5%
Input/Output A.A. 2002/2003 31
DMA
• DMA coinvolge un modulo aggiuntivo sul bus di systema• Il modulo DMA e’ in grado di riprodurre il comportamento della CPU
al riguardo – riceve il controllo del sistema dalla CPU• Quando la CPU vuole leggere o scrivere un blocco di dati invia una
istanza al modulo DMA con le seguenti informazioni:– Se write o read– Indirizzo del dispositivo I/O coinvolto– Locazione iniziale della memoria su cui fare read/write– Numero di word da leggere/scrivere
• Quando il trasferimento e’ completo il modulo DMA invia un segnaledi interrupt alla CPU
• LA CPU E’ COINVOLTA SOLO ALL’INIZIO E ALLA FINE DEL TRASFERIMENTO
Input/Output A.A. 2002/2003 32
DMA: overhead
• Stesso disco e processore degli esempi precedenti• CPU: 500MHz• Ipotesi:
– Setup iniziale del DMA = 1000 cicli clock CPU– Completamento = 500 ciclo clock CPU
• Transfer rate: 4MB/s• Per ogni trasferimento di 8KB
– dura 8KB/4MB s = 2 ms• Trasferimento DMA:
– [(1000+500)x clock cycle/trasf] / [2ms/trasf] = 750 x 103 clock cycle/ s • Frazione processore consumata= 750 K/ 500 M = 0,2 %
Input/Output A.A. 2002/2003 33
Le tre tecniche a confronto