! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:



Like dokumenter
INF2270. Input / Output (I/O)

INF2270. Input / Output (I/O)

Innhold. Innledning til Input/Output. Ulike typer Input/Output. Input/Output internt i datamaskinen. Input/Output mellom datamaskiner

kan adressere et større område som RAM enn det som faktisk er tilgjengelig. Siden data kan plasseres i RAM og/eller på harddisken brukes begrepet

hukommelse (kapittel 9.9 i læreboken) Dagens temaer Input-Output INF 1070

INF2270 I/O. Omid Mirmotahari Omid Mirmotahari 1

Input/Output. når tema pensum. 13/4 busser, sammenkobling av maskiner /4 PIO, DMA, avbrudd/polling

Dagens tema. Mer om cache-hukommelse Kapittel 6.5 i Computer Organisation and Architecture ) RAM. Typer, bruksområder og oppbygging 2008 ROM

Oppsummering av digitalteknikkdelen

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

Dagens temaer. Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) RAM ROM. Hukommelsesbusser

Dagens temaer. Cache (repetisjon) Cache (repetisjon) Cache (repetisjon)

Forelesning Instruksjonstyper Kap 5.5

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)

Hvorfor lære om maskinvare*?

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

Dagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design.

Internminnet. Håkon Tolsby Håkon Tolsby

Datamaskinens oppbygning

Internminnet. Håkon Tolsby Håkon Tolsby

Dagens tema. Flere teknikker for å øke hastigheten

Oppgave 8.1 fra COD2e

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache

! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon

TDT4258 Eksamen vår 2013

En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig.

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

Bussar. Tilgong til buss (Three state buffer) Synkron / Asynkron Serielle bussar Parallelle bussar Arbitrering: Kven kontrollerar bussen

Innhold. Oversikt over hukommelseshierakiet. Ulike typer minne. Innledning til cache. Konstruksjon av cache Hukommelseshierarki-1 1

Innhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki Hukommelseshierarki-2 1

2. Hvor mye Internminne har den? Svar: 2GB

Del 2. Bak skallet. Avsette minne til et spesifikt OS Teste harddisk under oppstart Sette opp system logger

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.

Scheduling og prosesshåndtering

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

Tildeling av minne til prosesser

IT1101 Informatikk basisfag, dobbeltime 18/9. Kommunikasjon med perifere enheter. Kontrollere. Kontrollere (2) I/O-instruksjoner

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

Tonje Thøgersen, Daniel Svensen Sundell, Henrik Smedstuen

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Setup programmet brukes til å endre konfigurasjonen av BIOS og til å vise resultatene fra

IN1020. Minnehierarki

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

Del 1 Setup - BIOS Oppgaver: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en.

Oppgave lab. 2. Hvor mye Internminne har den? - Maskinen har 2GB internminne.

Vi anbefaler at du setter deg litt inn i maskinen på forhånd. Det er en DELL Optiplex 620.

Phu Pham Laboppgave 29. September 2015

1)Gjør om desimal tallene til binære: a) 4 =0100. b) 17 = c) 34 = d) 128 = e) 255 =

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Martin Olsen, Lars- Petter Ahlsen og Jon- Håkon Rabben

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

Hovedkort, brikkesett og busser

Datamaskinens oppbygning og virkemåte

Into da BIOS<3. Bak Skallet

Dagens temaer. Sekvensiell logikk: Kretser med minne. D-flipflop: Forbedring av RS-latch

Introduksjon til kurset og dets innhold

Patrick Fallang (Dataingeniør) Lab Oppgave: Kjenn Din Egen PC (XP)

Minnehåndtering i operativsystemer

Generelt om operativsystemer

Maskinvaredelen av INF 103: oversikt og innhold (1)

Institiutt for informatikk og e-læring, NTNU CPUens deler og virkemåte Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP

Kjenn din PC (Windows7)

Her velger dere først System and Security og deretter System.

INF1400 Kap4rest Kombinatorisk Logikk

HØGSKOLEN I SØR-TRØNDELAG

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Kjenn din pc (Windows Vista)

Dagens temaer. Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er

Hvorfor lære om maskinvaren*?

Bits&Bytes Om datamaskinens oppbygging og virkemåte. TOS - IKT Tirsdag 4. desember 2012 Seksjon for digital kompetanse

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Cache (repetisjon) Cache (repetisjon) Cache (repetisjon) Dagens temaer. CPU Cache RAM. om cache-hukommelse (kapittel 6.5 i Computer Organisation

Laboppgave. Sondre Gulichsen, Li Lisan Linder. 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en.

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and

UNIVERSITETET I OSLO

Generell informasjon

bruksområder og oppbygging om cache-hukommelse (kapittel 6.5 i Computer Organisation Dagens temaer and Architecture ) ROM RAM

Læringsmål og pensum. Oversikt. Systemprogramvare Operativsystemer Drivere og hjelpeprogrammer. To hovedtyper programvare

Forelesning 5. Diverse komponenter/større system

INF2270. Datamaskin Arkitektur

1. Introduksjon til operativsystemer

INF2270. Datamaskin Arkitektur

Kjenn din PC (Windows 7)

1. Introduksjon til operativsystemer

Kjenn din PC (Windows 8.1)

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17

UNIVERSITETET I OSLO

STE6221 Sanntidssystemer Løsningsforslag

Håndtering av minne i et OS

Minnehåndtering i operativsystemer

LAB OPPGAVE. Del 1 Setup Bios

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

En mengde andre typer som DVD, CD, FPGA, Flash, (E)PROM etc. (Kommer. Hukommelse finnes i mange varianter avhengig av hva de skal brukes til:

Transkript:

Dagens temaer! Ulike kategorier input/output! Programmert! Avbruddstyrt! med polling.! Direct Memory Access (DMA)! Asynkrone vs synkrone busser! Med! Fordi! -enheter menes de enheter og mekanismer som gjør det mulig å transportere data inn og ut av en data-maskin, en CPU osv mange ulike behov skal dekkes, er spesialisert og skreddersydd til ulike anvendelses-områder. klassifiseres gjerne ut ifra! Om de er input, output eller begge deler! Datarate! Byte eller blokk-orientert! Responskrav! Sentralt i alle systemer er en eller flere delte busser, som kan være enten synkrone eller asynkrone. 09.05. INF 1070 1 09.05. INF 1070 2! En! Det datamaskin kommuniserer med omverdenen gjennom Harddisk CD-ROM/DVD Hurtigminne Mus Tastatur Skjerm Nettverk er vanlig å dele opp kommunikasjonen i to hovedgrupper: Kommunikasjon mellom enheter internt i maskinen og mellom en datamaskin og direkte tilkoblet utstyr. Kommunikasjon mellom ulike datamaskiner som er knyttet sammen i nettverk. Ulike typer! Ytelsen til - systemer avhenger av flere faktorer:! en! Hukommelseshierarkiet! Bussen(e) som kobler sammen maskinen! Kontrollenheter for og enhetene som er tilknyttet bussen.! Hastigheten til operativsystemet! Programvarens bruk av! De to viktigste parametrene for ytelse til er:! Throughput: Båndbredde eller gjennomstrømning av data per tidsenhet.! Responstid: Forsinkelse fra start til svar.! Internt er det flere uavhengig busser som er spesialiserte, f.eks buss mellom CPU og RAM, mellom CPU og cache, system-buss osv. 09.05. INF 1070 3 09.05. INF 1070 4

! Bussen er ofte en flaskehals i systemet, fordi mange enheter konkurrerer om å få bruke den og man må ha kjøreregler slik at det ikke blir kollisjoner! Disse kjørereglene kalles for protokoller og finnes i et utall varianter tilpasset forskjellige behov og bruksområder! Eksempler på protokoller er! PCI! TCP/IP! Ethernet! USB! ATM Programmerbar! Dette er den aller enkleste formen for og brukes i enkle systemer uten store krav til hastighet eller ytelse.! CPU en kommuniserer med omverdenen (enten input eller output) via to registre -DataReg og -AdrReg. Det første inneholder data som skal skrives eller leses, mens -AdrReg inneholder adressen til enheten som enten sender eller mottar data: -Adr CPU Adressebuss Modul Device Device 09.05. INF 1070 5 -Data Databuss 09.05. INF 1070 Modul Device 6 Intern kommunikasjon! Mellom bussen og de ulike enhetene som kommuniserer over bussen sitter en -kontroller som tar seg av bl.a protokollhåndtering.! De fleste enheter kan bruke avbrudd for å signalisere til prosessoren at noe har skjedd som krever behandling i prosessoren. Avbrudd Behandling av eksterne hendelser! I noen tilfeller krever en ekstern hendelse eller begivenhet at prosessoren foretar seg noe bestemt (dvs eksekverer en subrutine eller funksjon).! For at prosessoren skal finne ut at noe har skjedd krever det signalering mellom den ytre enheten og prosessoren.! Eksempel: Avlesning av tastetrykk på tastatur Cache RAM 09.05. INF 1070 Intern minne buss kontroller kontroller Grafisk output kontroller Nettverk 7 09.05. INF 1070 R1 R2 Rad-register q w e r a s d f K1 K2 K3 K4 Kolonneregister 8

Behandling av eksterne hendelser (forts.) Avbrudd! en kan lese innholdet av rad og kolonnergisteret for å finne ut hvilken tast som er trykket ned.! Problem: Hvordan finne ut når en tast er trykket ned?! Dette kan løses på to måter: Polling og avbrudd! en kan med jevne mellomrom avlese inn-holdet av Rad- og Kolonne-registrene (f.eks hvert 10. millisekund) og sjekke om det er en endring fra forrige gang.! Fordel: Enkelt å implementere (gå i evig løkke og les av registrene og sjekk mot forrige verdi).! Ulempe: en får ikke gjort noe annet enn å sjekke disse registrene hele tiden!! Et bedre alternativ er at tastaturet selv sier i fra at en tast er trykket ned, og prosessoren finner i så fall ut hvilken tast det dreier seg om ved å sammenligne gammelt og nytt innhold i Rad og Kolonne-registrene! Fordel: en kan løse andre oppgaver enn kun å sitte og vente på at en tast skal trykkes ned! Ulempe: Det krever mer av hardware; blant annet må det finnes egne signaler inn til prosessoren som kan brukes til å si fra et en tast er trykket ned.! Avbrudd er en generell mekanisme som finnes i så og si alle maskiner og brukes til en rekke ulike formål:! Signalisere at en ekstern hendelse har skjedd! Markere avslutningen på en operasjon! Mekanisme for å allokere CPU-tid! Mekanisme for å signalisere at en uventet eller ulovlig situasjon har oppstått 09.05. INF 1070 9 09.05. INF 1070! I alle tilfeller må prosessoren gjøre følgende: 10 Avbrudd (forts.) Avbrudd (forts.)! Når det kommer et avbrudd må prosessoren gjøre følgende:! en avslutter den instruksjonen den holder på med å eksekvere! Alle registre som er i bruk må lagres unna! Avhengig av hvilken kilde som genererte avbruddet vil det bli startet opp en avbruddsrutine som prosesserer avbruddet.! Når avbruddsrutinen er ferdig, gjenopprettes registrene som ble lagret unna, og prosessoren fortsetter å eksekvere det programmet den kjørte før avbruddet skjedde.! Fordi hendelser og begivenheter kan ha varierende betydning og viktighet, tilbyr prosessorer flere avbruddsnivåer med ulik prioritet.! Et avbrudd med høy prioritet kan avbryte behandlingen av (avbruddsrutinen til) et avbrudd av lavere prioritet.! Hvis avbrudd fra to ulike kilder har samme prioritet behandles de ferdig i den rekkefølge de kom, og informasjon om andre avbrudd (med samme eller lavere prioritet) blir lagt i en kø. Ordinært program Avbrudd skjer her Avbruddsrutine Ordinært program Avbrudd-1 med prioritet 3 skjer her Avbrudd-2 med prioritet 5 skjer her Avbruddsrutine for avbrudd-1 Avbruddsrutine for avbrudd-2 09.05. INF 1070 Avbruddsrutinen er ferdig og det ordinære programmet kan fortsette 11 Avbruddsrutine-1 er ferdig og det ordinære programmet fortsetter 09.05. INF 1070 Avbruddsrutine-2 er ferdig og avbruddsrutine-1 fortsetter 12

Bruk av avbrudd Bruk av avbrudd (forts) 1) Signalering av ekstern hendelse! I mange anvendelser brukes en datamaskin til å overvåke og styre temperatur, trykk, strålingsnivå etc. Avbrudd kan da brukes til å signalisere at et kritisk nivå eller en grense er nådd som krever spesiell handling, f.eks iverksetting av alarm! Prosessering av tastetrykk er også eksempel på slike hendelser som krever spesiell prosessering (f.eks Ctrl-C som betyr at et program skal avsluttes). 2) Synkroniserings/avslutnings-signal! Avbrudd kan brukes av f.eks printere for å be en prosessor om å få sendt over mer data hvis et internt buffer er tomt.! Avbrudd kan generelt brukes til flytkontroll for å signalisere start/stopp av transaksjoner, overføringer osv. ( send mer data, stopp å sende data ) 3) Signalering av unormal hendelse! Dette er en viktig mekanisme og brukes både av hardware og software for å siganlisere at en gitt betingelse har inntruffet.! Hvis avbruddet genereres av software kalles det execption og brukes enten for å gi beskjed om en ulovlig operasjon som f.eks divisjon med null, eller for å angi at en instruksjon må behandles av ekstern hardware-enhet f.eks en egen flyttallsprosessor 09.05. INF 1070 13 09.05. INF 1070 14 Bruk av avbrudd (forts) Tidsdeling i operativsystemer 4) Tidsdeling i operativsystemer! Operativsystemer simulerer samtidighet eller parallelitet ved å dele prosessortiden opp i mange små tidsintervall, og hver prosess får bruke prosessoren i minst ett tidsintervall P1 P2 P3 P4 P1 P6 P7 P2 tid! Med faste intervaller genereres et avbrudd som er et signal til operativsystemet om at det skal suspendere prosessens som kjører i øyeblikket. Dette innebærer blant annet at registre og stakkområdet som prosessen brukte blir lagret unna på et sikkert sted! Operativsystemet tar over kontrollen og plukker ut hvilken prosess som skal få kjøre nå. Dette kalles for skedulering.! Registre, stakkområde etc til prosessen som nå skal kjøres lastes inn i CPU en av operativsystemet.! Operativsystemet gir fra seg kontrollen til neste prosess som kan fortsette å eksekveres! På samme måte som avbrudd fra ulike kilder kan ha ulik prioritet, vil også prosesser ha ulik prioitet. Typisk vil operativsystemet ha høyere prioritet og få tilgang til CPU en før et brukerprogram 09.05. INF 1070 15 09.05. INF 1070 16

Direct memory Access (DMA)! Ved DMA flyttes data mellom ulike minne-enheter uten at prosessoren er involvert i annet enn start og stopp i overføringen.! Avbrudd brukes til å gi beskjed til prosessoren når overføringen er ferdig! Eksempel: Overføring fra RAM til disk! Eksempel: Overføring fra disk til RAM Steg 1: Oppsett av adresser Steg 2: Overføring av data 09.05. INF 1070 Adresse Data WriteReq 17 Steg 1: Oppsett av adresse i RAM Steg 2: RAM henter frem data Adresse Steg 3: RAM skriver til disk Data 09.05. INF 1070 ReadReq 18 Synkrone/asynkrone busser Asynkrone busser og hand-shaking! Busser er enten synkrone eller asynkrone: Synkron: Endringer på bussen skjer etter en fast protokoll, relativt til et klokkesignal som er en del av kontrollinjene. Asynkron: Intet klokkesignal blant kontrollinjene. Overføring av data skjer etter regler avtalt mellom enhetene ( handshaking ) for hver gang det skal overføres en enhet data (bit, byte osv)! Egenskaper/bruk av synkrone busser:! Som regel meget rask fordi det ikke er nødvendig med mye kjøreregler for å koordinere trafikken! Knytter sammen enheter med samme klokkehastighet! Enhetene må ligge nær hverandre fysisk fordi lange avstanderkan gi avvik i klokkesignalet! Egenskaper/bruk av asynkrone busser:! Handshaking brukes for å koordinere overføring av av data mellom en sender og mottager(e).! Gitt et enkelt system med tre kontrollinjer i tillegg til datalinjer: 1) ReadReq: Brukes for å indikere en forespørsel om lesing fra minne. Adressen legges på datalinjene samtidig. 2) DataRdy: Indikerer at data er klare på datalinjene. 3) Ack : Brukes for å bekrefte at ReadReq eller DataRdy er mottatt fra den andre enheten.! De tre kontrollinjene brukes for å utveksle informasjon om hvor langt de to enhetene har kommet. ReadReq! Knytter sammen enheter med ulik hastigheter! Gir færre begrensninger i busslengde fordi man ikke er avhengig av et felles klokkesignal! Mer komplisert protokoll for synkronisering av aktivitene og som regel mindre nyttetrafikk Sender DataRdy Ack Mottager 09.05. INF 1070 19 09.05. INF 1070 20

Eksempel: Lesning fra minne (sender) til prosessor (mottager) 0) en setter ReadReq= 1, og legger adressen ut på datalinjene. ReadReq 0 Data Ack DataRdy Grønn: Settes av prosessoren 1 2 3 2 4 6 4 5 6 7 Oransje: Settes av minnet 1) t ser ReadReq = 1, leser adressen og setter Ack= 1 for å indikere at adressen er lest 2) en ser Ack= 1, og setter ReadReq= 0 og frigir datalinjene. 3) t ser ReadReq= 0 og setter Ack= 0 for å bekrefte at ReadReq-signalet er mottatt. 4) Når minnet har data klart for overføring, plasseres data på datalinjene, minnet setter DataRdy= 1 for å indikere at det er gyldige data på bussen. 5) en ser at DataRdy= 1, leser data fra bussen, og indikerer at den har lest ferdig ved å sette Ack= 1 6) t ser at Ack= 1, setter DataRdy= 0, og frigir datalinjene. 7) ne ser at DataRdy= 0, og setter Ack= 0 for å indikere at transmisjonen er ferdig. Hvis det er mer data som skal overføres, gjentas punkt 0) til 7) 09.05. INF 1070 21 09.05. INF 1070 22