33
Input/Output A.A. 2002/2003 1 Input / Output M. Dominoni A.A. 2002/2003

Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

Input/Output A.A. 2002/2003 1

Input / Output

M. Dominoni

A.A. 2002/2003

Page 2: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 3: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 4: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 5: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 6: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 7: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 8: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 9: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 10: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 11: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 12: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 13: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 14: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 15: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 16: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 17: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 18: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 19: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 20: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 21: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 22: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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.

Page 23: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

Input/Output A.A. 2002/2003 23

Schema a Blocchi di un dispositivo esterno

Page 24: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

Input/Output A.A. 2002/2003 24

Schema a blocchi di un modulo di I/O

Page 25: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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)

Page 26: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 27: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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%

Page 28: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

Input/Output A.A. 2002/2003 28

Ciclo di istruzione con Interrupt

Page 29: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 30: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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%

Page 31: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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

Page 32: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

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 %

Page 33: Input / Output - DISCoold.disco.unimib.it › ... › arch03 › SlideLezioni › InputOutput.pdf · 2003-05-16 · Input/Output A.A. 2002/2003 2 Struttura del Computer • 4 componenti

Input/Output A.A. 2002/2003 33

Le tre tecniche a confronto