Input / Output - - Università degli Studi di...

26
Input/Output A.A. 2003/2004 1 Input / Output M. Dominoni A.A. 2003/2004 Input/Output A.A. 2003/2004 2 Struttura del Computer 4 componenti strutturali: CPU: controlla le operazioni del computer Memoria Centrale: immagazinamento dati e codice I/O: muove dati tra il computer e l’esterno Interconnesione del sistema: qualche meccanismo che permette la comunicazione tra CPU, Memoria e I/O

Transcript of Input / Output - - Università degli Studi di...

Page 1: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

1

Input/Output A.A. 2003/2004 1

Input / Output

M. Dominoni

A.A. 2003/2004

Input/Output A.A. 2003/2004 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

Page 2: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

2

Input/Output A.A. 2003/2004 3

Input/Output• Oltre ai componenti processore e memoria, il terzo

elemento chiave di un computer e’ un insieme di moduli di 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. 2003/2004 4

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

Page 3: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

3

Input/Output A.A. 2003/2004 5

Impatto dell’I/O sulle prestazioni del sistema: Esempio

• Benchmark eseguito in 100 s:– 90% CPU, 10% I/O

• Ogni anno prestazione CPU migliora del 50% mentre I/O non cambia

• Quanto migliora la prestazione del sistema in 5 anni?

• Tempo di esecuzione = tempo CPU + tempo I/O

Input/Output A.A. 2003/2004 6

Esempio cont

45%22 s10 s12 s (18/1.5)536%28 s10 s18 s (27/1.5)427%37 s10 s27 s (40/1.5)320%50 s10 s40 s (60/1.5)214%70 s10 s60 s (90/1.5)110%100 s10 s90 s0

I/O %TotaleI/OCPUAnno

•Miglioramento di prestazioni dopo 5 anni:

•CPU = 90/12 = 7.5 Sistema = 100/22 = 4.5

Page 4: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

4

Input/Output A.A. 2003/2004 7

Tendenze tecnologiche

DRAManno Size Cycle Time1980 64 Kb 250 ns1983 256 Kb 220 ns1986 1 Mb 190 ns1989 4 Mb 165 ns1992 16 Mb 145 ns1995 64 Mb 120 ns

Capacita’ Velocita’ (latenza)Logica: 2x in 3 anni 2x in 3 anniDRAM: 4x in 3 anni 2x in 10 anniDischi: 4x in 3 anni 2x in 10 anni

1000:1!2:1!

Input/Output A.A. 2003/2004 8

Problema reale?Proc60%/anno.(2X/1.5anni)

DRAM9%/anno.(2X/10 anni)

1

10

100

1000

1980

1981

1983

1984

1985

1986

1987

1988

1989

1990

1991

1992

1993

1994

1995

1996

1997

1998

1999

2000

DRAM

CPU

1982

Processore-memoriaPerformance Gap:(cresce 50% / anno)

Pres

tazi

oni

Anno

“Legge di Moore”

Differenza di prestazioni tra processore e DRAM (latenza)

Page 5: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

5

Input/Output A.A. 2003/2004 9

Prestazioni di I/O

• Ampiezza di banda di I/O può essere misurata in due modi differenti:– Quanti dati possiamo muovere attraverso il

sistema in un certo tempo – data rate– Quante operazioni di I/O possiamo fare per

unità di tempo – I/O rate• Quale dei due modi sia quello giusto

dipende dalla particolare applicazione

Input/Output A.A. 2003/2004 10

Prestazioni di I/O - Supercomputer

• Batch job (esecuzione in code)• Pochi accessi a grossi file in lettura e

scrittura all’inizio e alla fine• Durante l’esecuzione scittura di snapshot

per fissare lo stato di esecuzione a quell’istante in caso di crash del sistema

• Misura di I/O = misura di throughput = numero di byte per secondo trasferiti tra memoria principale e dischi

Page 6: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

6

Input/Output A.A. 2003/2004 11

Prestazioni di I/O - Transazioni

• Applicazioni di processi di transazione (TP) coinvolgono sia:– Tempo di risposta che prestazioni basate sul

troughput– La maggior parte degli accessi di I/O sono piccoli

• Applicazioni TP sono misurate in numero di accessi al disco per secondo – I/O rate contrapposto al data rate precedente

• Benchmark usati: TPC-C e TPC-D

Input/Output A.A. 2003/2004 12

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

Page 7: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

7

Input/Output A.A. 2003/2004 13

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. 2003/2004 14

Esempio: tempo di lettura di un disco

• Determinare il tempo medio per leggere un settore a 512 byte di un disco a 5.400 RPM dove:– Tempo di ricerca medio = 12 ms– Transfer rate = 5MB/s– Controller overhead = 2 ms– Disco idle all’inizio del trasferimento

• Tempo medio di lettura = tempo di ricerca medio + latenza di rotazione + tempo di trasferimento + controller overhead

• 12 ms + (0.5/5.400 RPM) + 0.5 KB/ 5MB/s + 2 ms = 12 ms + 5.6 ms + 0.1 ms + 2 ms = 19.7 ms

Page 8: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

8

Input/Output A.A. 2003/2004 15

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. 2003/2004 16

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

Page 9: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

9

Input/Output A.A. 2003/2004 17

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. 2003/2004 18

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

Page 10: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

10

Input/Output A.A. 2003/2004 19

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. 2003/2004 20

Struttura del Bus – cont 3

• Gerarchia di BusProcessor 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

Page 11: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

11

Input/Output A.A. 2003/2004 21

Struttura del Bus – cont 4

• Bus classificati in tre tipi:– Bus processore–memoria:

• sono spesso specifici (proprietari) • Sono corti, ad alta velocità• Massimizzano l’ampiezza di banda tra cpu e mem

– Bus di I/O: • Sono lunghi• molti dispositivi attaccati• Ampio intervallo di ampiezza di banda dei dispositivi

– Bus di backplane– Questi due ultimi tipi di bus sono spesso standard

Input/Output A.A. 2003/2004 22

Struttura del Bus – cont 5

• Bus Sincrono: include un clock nelle lineedi controllo ed un protocollo prestabilitoper la comunicazione– Adatto per bus molto veloci– due principali svantaggi:

• Tutti i device sul bus devono funzionare allo stessoclock

• Se sono particolarmente veloci non possonoessere molto lunghi

– Esempio: bus processore- memoria

Page 12: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

12

Input/Output A.A. 2003/2004 23

Struttura del Bus – cont 6• 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”:

• Consiste in una serie di passi in cui sender e receiver procedono al successivo passo solo se entrambe le particoncordano

• Bus asincrono scala meglio con I cambiaenti tecnologicie supporta una ampia varietà di dispositivi e velocità

• Bus di I/O sono spesso asincroni

Input/Output A.A. 2003/2004 24

Struttura del Bus – cont 7

• Esempio di funzionamento del bus asincrono:

DataRdy

Ack

Data

ReadReq 13

4

57

642 2

Page 13: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

13

Input/Output A.A. 2003/2004 25

Bus sincrono: esempio• ciclo clock = 50 ns (20 MHz)• Ogni trasmissione richiede 1 ciclo di clock• Bus dati = 32 bit• Trovare l’ampiezza dati per una lettura di una

word da una memoria da 200 ns1. Invio dell’indirizzo di memoria = 50 ns2. Lettura della memoria = 200 ns3. Invio dei dati al dispositivo = 50 ns

tempo totale = 300 nsAmpiezza di banda = 4 byte/300 ns = 13.3 MB/s

Input/Output A.A. 2003/2004 26

Bus asincrono: esempio

• Handshake = 40 ns– Step 1 = 40 ns– Step 2, 3, 4 = max(3x40 ns , 200 ns) – Step 5, 6, 7 = 3x40 ns

• Tempo totale = 360 ns• Ampiezza di banda = 4 byte/ 360 ns =

11.1 MB/s

Page 14: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

14

Input/Output A.A. 2003/2004 27

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. 2003/2004 28

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

Page 15: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

15

Input/Output A.A. 2003/2004 29

Bus Arbitration

• Bus Arbitration: decidere quale bus master puo’ iniziare ad usare il bus

• Gli schemi di arbitrato devono bilanciaredue fattori nel decidere 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

Input/Output A.A. 2003/2004 30

Bus Arbitration – cont 2

• Arbitrato si puo’ dividere in quattro classigenerali:

• Arbitrato centralizzato, parallelo: esempio bus PCIun arbitro centralizzato sceglie tra I device chedevono accedere al bus e notifica al presceltoche e’ stato nominato bus master –Lo svantaggio e’ che richiede un arbitrocentralizzato che puo’ divenire il collo di bottiglia

Page 16: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

16

Input/Output A.A. 2003/2004 31

Bus Arbitration – cont 3• 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. 2003/2004 32

Bus Arbitration – cont 4

• 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

Page 17: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

17

Input/Output A.A. 2003/2004 33

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. 2003/2004 34

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

Page 18: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

18

Input/Output A.A. 2003/2004 35

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 comecomandi – il sistema di memoria ignora l’operazione perche’l’indirizzo indica una porzione dello spazio di memoria dedicata all’I/O. Il controllore del dispositivo vede la richiesta, registra i dati che invia al dispositivo come comandi.

• L’indirizzo codifica sia l’identità del dispositivo che il tipo di trasmissione tra CPU e dispositivo stesso.

Input/Output A.A. 2003/2004 36

Schema a Blocchi di un dispositivo esterno

Page 19: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

19

Input/Output A.A. 2003/2004 37

Schema a blocchi di un modulo di I/O

Input/Output A.A. 2003/2004 38

I/O -1

• Tre tecniche possibili per le operazioni diI/O:

– I/O Programmato

– I/O ad Interrupt

– Direct Memory Access (DMA)

Page 20: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

20

Input/Output A.A. 2003/2004 39

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 il processore – I/O device mette le informazioni in uno registro di stato e 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 numero di cicli del processore: CPU e’ molto piu’ veloce delle periferiche di I/O

Input/Output A.A. 2003/2004 40

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%

Page 21: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

21

Input/Output A.A. 2003/2004 41

Ciclo di istruzione con Interrupt

Input/Output A.A. 2003/2004 42

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

Page 22: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

22

Input/Output A.A. 2003/2004 43

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. 2003/2004 44

I/O ad Interrupt: design 1

• Ci sono più moduli I/O: come fa la CPU a determinare quale device ha alzato l’interrupt?

• Ci sono quattro tecniche:1. Linee di Interrupt multiple2. Software poll3. Daisy Chain (hardware poll, vettorizzato)4. Bus arbitration (vettorizzato)

Page 23: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

23

Input/Output A.A. 2003/2004 45

I/O ad Interrupt: design 1

1. Linee di Interrupt multiple– Tra CPU e moduli di I/O– Problema: non è pratico dedicare più che poche line del bus o

pin della CPU a linee di Interrupt – è probabile che su ciascuna linea ci siano più moduli di I/O

2. Software poll– CPU intercetta un Interrupt– Attiva le routine di servizio di interrupt: viene contattato ogni

modulo di I/O per determinare chi ha alzato l’Interrupt– Problema: è “time consuming”

Input/Output A.A. 2003/2004 46

Interrupt vettorizzato - design 2

3. Daisy Chain (hardware poll, vettorizzato)– Fornisce un efficiente hardware poll (vedi fig. precedente – pg.31)– Tutti i moduli I/O condividono la medesima line di Interrupt– Quando la CPU sente una richiesta di Interrupt, invia un ACK – Il modulo che ha alzato l’Interrupt intercetta l’ACK e risponde mettendo una

word sulle linee dati– Word – detta vettore – contiene o l’indirizzo del modulo I/O o qualche

elemento di identificazione univoco – usato dalla CPU per avviare le appropriate routine di servizio proprie del dispositivo

– Evitato l’uso intermedio di una routine di servizio generica– Tecnica chiamata di Interrupt vettorizzato– Problema: e’ possibile che i dispostivi di I/O con priorità più bassa non

riescano mai ad essere serviti dalla CPU4. Bus arbitration (vettorizzato)

– Modulo I/O deve prima ottenere il controllo del bus prima di potere alzare la linea di Interrupt

– Solo un modulo alla volta può alzare l’Interrupt– CPU risponde con ACK –– Modulo pone il suo vettore sulle linee dati

Page 24: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

24

Input/Output A.A. 2003/2004 47

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. 2003/2004 48

DMA - schema a blocchi

Page 25: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

25

Input/Output A.A. 2003/2004 49

DMA: Configurazioni Alternative

Input/Output A.A. 2003/2004 50

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 %

Page 26: Input / Output - - Università degli Studi di Milano-Bicoccaold.disco.unimib.it/architettura1/arch04/Lezioni/InputOutput.pdf · elemento chiave di un computer e’ un insieme di moduli

Architettura degli Elaboratori

26

Input/Output A.A. 2003/2004 51

Le tre tecniche a confronto