Input/Output når tema pensum 13/4 busser, sammenkobling av maskiner 8.2 8.4 20/4 PIO, DMA, avbrudd/polling 8.5 8.6 in 147, våren 1999 Input/Output 1
Tema for denne forelesningen: sammenkobling inne i datamaskiner sammenkobling mellom datamaskiner in 147, våren 1999 Input/Output 2
Main memory I/O controller Graphics output I/O controller I/O controller Et typisk system Processor Interrupts Cache Memory I/O bus Main memory I/O controller I/O controller I/O controller Disk Disk Graphics output Network Disk Disk Network Memory I/O bus Cache Processor Interrupts in 147, våren 1999 Input/Output 3
Disk Platters Tracks Platter Sectors Track in 147, våren 1999 Input/Output 4
Ytelsen til I/O systemer Avhenger av: prosessoren hukommelseshierarkiet bussen(e) som kobler sammen maskinen kontrollere for I/O og utstyret hastigheten til relevant programvare (operativsystem) programvarens bruk av I/O Vanlige målestokker: Throughput, I/O båndbredde, gjennomstrømmingen Responstid, forsinkelse fra start til svar in 147, våren 1999 Input/Output 5
Eksempel på side 654 Characteristic Bandwidth from node to network Interconnect latency HW latency to/from network SW overhead sending to network SW overhead receiving from network Ethernet 1.125 MB/sec 15µs 6µs 200µs 241µs ATM 10MB/sec 50µs 6µs 207µs 360µs pakkestørrelse: 250 byte overføringstid: pakkestørelse/overføringshastighet total forsinkelse: overføringstid + HW/SW forsinkelser overføringstid for Ethernet : 222µs overføringstid for ATM : 25µs total forsinkelse for Ethernet : 684µs total forsinkelse for ATM : 648µs Hvorfor? in 147, våren 1999 Input/Output 6
Topologier koble sammen mer enn 2 maskiner buss, f.eks 10Mbit Ethernet ring, f.eks token ring fra IBM Trenger: adresse i pakkene motstand mot feil i overføring = støy + tap av pakker identifikasjon av prosesser ved flere prosesser pr. maskin stjerne, f.eks. svitsjet Ethernet ==> Protokoller in 147, våren 1999 Input/Output 7
OSI rammeverk for kommunikasjonsprotokoller applikasjon applikasjon filoverføring, virtuell terminal presentasjon presentasjon fellestjenester sesjon sesjon styre dialoger, synkronisering transport transport nettverk nettverk nettverk nettverk flytkontroll, ruting datalink datalink datalink datalink innramming, feiloppretting fysisk fysisk fysisk fysisk rå overføring maskin X subnett maskin Z in 147, våren 1999 Input/Output 8
Pakkeformater for Ethernet og ATM Ethernet ATM preamble preamble destination destination source source L C destination T data (48) data (0 1500) pad (0 46) C in 147, våren 1999 Input/Output 9
Ethernet 10 Mbit/s på en 1 bit buss uten sentral kontroll kollisjonsbasert («carrier sense multiple access») hvis ingen andre snakker så snakk i vei hvis noen andre snakker så prøv igjen senere binær eksponentiell «backoff» ved første kollisjon: vent 0,1 «perioder» før neste forsøk ved andre kollisjon: vent 0,1,2,3 «perioder» før neste forsøk fortsett opp til 1023 «perioder» gi opp etter 16 kollisjoner en «periode» er tiden et tar for et signal å gå fra den ene enden av et nett, til den andre og tilbake igjen. in 147, våren 1999 Input/Output 1 0
Viktige aspekter ved I/O utstyr oppførsel: input read only output write only, kan sjelden leses lagring kan leses flere ganger og ofte skrives maksimal datarate: mellom I/O utstyret og hukommelsen mellom I/O utstyret og prosessoren NB! Vi mennesker er meget langsomme! in 147, våren 1999 Input/Output 1 1
Busser veinettet i datamaskiner delt kommunikasjonssystem bestående av bunter med ledninger felles for de tilkoblete enhetene Egenskaper: + fleksibelt > nye enheter kan legges til > utstyr kan flyttes mellom systemer med like busser + billig Control lines Memory Processor Data lines flaskehals all kommunikasjon må gjennom > begrenset båndbredde (MB/s) > hastigheten begrenset av * bussens lengde * antall tilkoblete enheter * behov for å betjene enheter med forskjellige karakteristika a. b. c. Disks Control lines Memory Processor Data lines Memory Disks Control lines Data lines Disks Processor in 147, våren 1999 Input/Output 1 2
Organisering av busser kontrolllinjer datalinjer Kontrolllinjer: signalisere forespørseler og kvitteringer indikere hva som er på datalinjene Datalinjer: data og adresse komplekse kommandoer Handlinger på busser kalles transaksjoner, og består av: sende adressen sende eller motta data En transaksjon kan være delt i request (spørsmål) og respons (svar): split transaction bus in 147, våren 1999 Input/Output 1 3
En enkel 32 bit buss 31 adressebuss 0 31 databuss 0 read/write enable clk in 147, våren 1999 Input/Output 1 4
Ansvar på en buss Master Slave tar initiativet, sender adressen og evt. data svarer master med data på forespørsel mottar data fra master på kommando På enkle busser er det én master, dvs. prosessoren enveis kommando buss master toveis data buss slave På kompliserte busser kan det være flere mastere, men bare en av gangen noen må bestemme hvem som slipper til når det er konkurranse, dette kalles arbitrering (megling) da er gjerne bussen av typen split transaction for at bussen skal kunne brukes mens f.eks. hukommelsen tenker seg om før den produserer data in 147, våren 1999 Input/Output 1 5
Asynkron eller synkron buss synkron: inkluderer et klokkesignal blant kontrollsignalene all faser av transaksjonene er knyttet til klokken + lite logikk og stor hastighet alle enheter må kjøre på samme hastighet må være korte hvis klokken er rask (clock skew) asynkron: ikke knyttet til en klokke kan betjene bredt spektrum av utstyr kan endre lengden uten fare ± trenger en protokoll for å signalisere og forstå de forskjellige fasene av transaksjoner («handshaking») > bokmål protokoll protokol l m1 (fra gr, av proto og kolla lim, opph om innholdsfortegnelse limt fast til papyrusruller) 1 bok el. dokument med referat fra forhandlinger el. møter, med regnskaper, karakterer e l 2 formaliteter og seremoniell i diplomatisk samkvem, etikette; innlednings og avslutningsformler i diplomatiske aktstykker in 147, våren 1999 Input/Output 1 6
Asynkron handshaking protokoll New I/O request Ack I/O device Put address on data lines; assert ReadReq ReadReq Memory Ack ReadReq DataRdy 2 Release data lines; deassert ReadReq DataRdy ReadReq 1 Record from data lines and assert Ack ReadReq ReadReq 1 Data 2 2 3 4 6 DataRdy 5 Read memory data from data lines; assert Ack 7 Deassert Ack DataRdy Ack New I/O request 3, 4 Drop Ack; put memory data on data lines; assert DataRdy Ack 6 Release data lines and DataRdy 4 Ack 5 7 DataRdy Kontrolllinjer: ReadReq indikere leseoperasjon: adressen følger på Data Ack for å signalisere at signal på ReadReq/DataRdy er registrert DataRdy indikere at data foreligger på Data in 147, våren 1999 Input/Output 1 7
Sammenkobling via busser eget I/O adresserom egne instruksjoner for å kommunisere med I/O var = in(port_nummer); out(port_nummer, data); egne signaler på bussen for å identifisere portnummeret memory mapped I/O område av adresserommet satt av til I/O lese og skriveoperasjoner til området blir tolket som kommandoer ikkepriviligerte programmer hindres i å utføre I/O operasjoner ved ikke å ha gyldige translasjoner som «treffer» området in 147, våren 1999 Input/Output 1 8
Et eksempel CPU in 147, våren 1999 Input/Output 1 9