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

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

INF2270. Minnehierarki

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

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

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

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

Dagens temaer. Virtuell hukommelse. Sidetabell. Virtuell hukommelse (forts.)

Dagens temaer. Virtuell hukommelse (kapittel 9.9 i læreboken) Pentium-arkitekturen i mer detalj INF 1070

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

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

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

IN1020. Minnehierarki

Oppsummering av digitalteknikkdelen

Dagens tema. Flere teknikker for å øke hastigheten

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

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

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

Tildeling av minne til prosesser

Hukommelseshierarki. 16/3 cache /3 virtuell hukommelse in 147, våren 1999 hukommelseshierarki 1

Tildeling av minne til prosesser

Forelesning Hurtigbuffer Kap 4.5

Kapittel 7, Minne RAM DIMM, SIMM ROM, PROM, EPROM, EEPROM FLASH DIM SUM. Cache Virtuelt minne

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

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

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

dynamiske data dynamiske data statiske data program dynamiske data statiske data reservert program dynamiske data statiske data reservert program

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

ytelsen til hukommelseshierarkier

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

Minnehåndtering i operativsystemer

Tildeling av minne til prosesser

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

Seksjon 1. INF2270-V16 Forside. Eksamen INF2270. Dato 1. juni 2016 Tid Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt.

Oppsummering digital-teknikk, teknikk, INF2270

Oppgave 8.1 fra COD2e

HØGSKOLEN I SØR-TRØNDELAG

4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum.

Minnehåndtering i operativsystemer

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

Innhold. Oppgave 1 Oversettelse (vekt 15%)

Dagens temaer. Praktisk anvendelse: Satellittkommunikasjon. eksempler på bruk av assembler/c/arkitektur teknikker for å øke hastigheten

Oppgave 2: Gå til roten (/) av systemet. Finn minst tre forskjellige måter å gå tilbake til hjemmekatalogen din på.

UNIVERSITETET I OSLO

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Dagens temaer. eksempler på bruk av assembler/c/arkitektur teknikker for å øke hastigheten. Organisation and Architecture )

Internminnet. Håkon Tolsby Håkon Tolsby

Internminne og Cache. RAM = Random Access Memory

UNIVERSITETET I OSLO

Maskinvaredelen av INF 103: oversikt og innhold (1)

Internminnet. Håkon Tolsby Håkon Tolsby

INF2270. Input / Output (I/O)

Håndtering av minne i et OS

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

HØGSKOLEN I SØR-TRØNDELAG

Fakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4186 Operativsystemer August 2005,

Oppgave 2 Maskinkode (vekt 12%)

Plan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer

Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

INF2270. Input / Output (I/O)

UNIVERSITETET I OSLO

Intel Core i7. Omid Mirmotahari 4

Intel Core i7. Omid Mirmotahari 4

Eksamen DAT 103. Oppgave 2. Kandidatnr.: 145 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) A 9) A 10) D

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Løsningsforslag eksamen TDT4160 høsten 2005

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Litt om Javas class-filer og byte-kode

Datamaskinens oppbygning

DBS22 Databasegjenopprettingsteknikker

DAT kandidatnummer: 142

Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer

Oppgave 1 JK-flip-flop (Total vekt 20%)

Praktisk anvendelse: Satellittkommunikasjon

Optimalisering av flyttallsintensive programmer. Bjørn Lande

Introduksjon til kurset og dets innhold

UNIVERSITETET I OSLO

Filsystemet fra innsiden

TDT4258 Eksamen vår 2013

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

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

Minnehåndtering. Lars Vidar Magnusson. October 4, Lars Vidar Magnusson () Forelesning i Operativsystemer October 4, / 20

Operativsystemer og nettverk Løsningsforslag til eksamen Oppgave 1. a) Linux-kommando: java Beregn & b) Shellprogram:

IN1020. Datamaskinarkitektur

Eksamen INF2270 våren 2018

Fakultet for informasjonsteknologi,

UNIVERSITETET I OSLO

Operativsystemet Internt

Oppgave 1 - Linux kommandolinje (%)

Fakultet for informasjonsteknologi,

Løsningsforslag til eksamen i INF103

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

alternativer til felles hukommelse store parallelle datamaskiner Tema for denne forelesningen: in 147, våren 1999 parallelle datamaskiner 1 9

EKSAMEN. Operativsystemer og nettverk

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

Transkript:

Dagens temaer Dagens emner er hentet fra Englander kapittel side 338-35 (gammel utgave). Mer om design av cache. Kort repetisjon er en spesiell type rask hukommelse som inneholder et subsett av det som ligger i hurtigminnet () -minnet er plassert mellom CPUen og hurtigminnet (): Virtuelt minne CPU Hurtig minne Siden cache-minnet ikke har like stor kapasitet som, kan kun et subsett av de instruksjoner/data prosessoren trenger plasseres i cache til et gitt tidspunkt. Hvis lokasjonen CPU en skal aksessere allerede er i cache, kalles det for cache hit. Hvis lokasjonen bare finnes i, må innholdet først lastes over i cache før prosessoren kan få tak i den. Dette kalles cache miss...3 INF 3..3 INF 3 2 Mer om cache () hit og cache miss deles hver i to tilfeller: read/write hit, og read/write miss. Read hit Lokasjonen som skal leses allerede befinner seg cache. Alt som behøves er å lese ut fra riktig blokk. Read miss Innholdet av lokasjonen man skal lese ikke befinnerseg i cache, men i. -kontrolleren må da gjøre to ting før prosessoren får lest lokasjonen: ) Bestemme hvor den innleste bllokken skal plasseres i cache, og eventuelt hvilken blokk som skal kastes ut for å gi plass til den nye 2) Lese inn den blokken fra som inneholder den riktige lokasjonen. Mer om cache (2) Siden cache inneholder et subsett av, vil det dermed også i cache være en kopi av det som ligger i. Ved lesing fra hukommelsen er det ingen problemer fordi innholdet i og cahce vil være det samme. Skriveoperasjoner bryter med forutsetingen om at innholdet i cache kun er en kopi av det som ligger i (ved skriving kun til cache vil ikke innholdet i være lik innholdet i cache). Write hit Write hit ligner read hit, dvs at lokasjonen prosessoren skal oppdatere befinner seg i cache, og prosessoren skriver da direkte til cache. For å unngå forskjellig innhold i cache og må også oppdateres..3 INF 3 3..3 INF 3 4

Mer om cache (3) Write miss Ved write miss er ikke lokasjonen man skal oppdatere plaasert i cache, men i. Riktig blokk leses inn fra til cache, før prosessoren oppdaterer. Ved verken write hit og write miss vil i innholdet i tilsvarende lokasjoner i hhv. og cache være like etter skriveoperasjonen. Innholdet kopieres fra cache til etter at oppdateringen av cache og kan gjøres på to måter: ) Ved write through kopieres cacheblokken som ble oppdatert til rett etter at skriveoperasjonen i cache er fullført. 2) Ved write back kopieres cacheblokken som ble oppdatert til først når blokken er kandidat for å bli erstattet ved en senere cache miss Mer om cache (4) Fordeler/ulemper med write back/through Fordelen med write through: og cache alltid er oppdaterte i forhold til hverandre. Ulempen med write through: Enhver skriveoperasjon medfører oppdatering av også. Bussen mellom cache og blir like mye belastet som i et system uten cache Fordelen med write back er at skriving til reduseres til et minimum. Ulempen med write back er at det og cache i perioder ikke inneholder det samme. Multiprosessering med delt hukommelse blir mer komplisert. Synkronisering og samordning av innholdet i cache og kalles cache-koherens og er spesielt viktig i multiprosessor-systemer hvor hver prosessor har egen cache, men deler...3 INF 3 5..3 INF 3 6 Mer om cache (5) Indeksering av cache Hittil er det ikke sagt noe om hvor en blokk skal plasseres i cache, og heller ikke hvordan cachekontrolleren gjør oppslag i tag-feltet for å finne riktig blokk/ord. Det finnes tre (minst) ulike måter å organisere plasseringen av blokker på i cache: Direkte-avbildet, Mengde-assosiativ Full assosiativ. Metodene skiller seg fra hverandre ved Hvor enkle de er å implementere, Hvor raskt det går å finne en blokken/tag Hvor god utnyttelse man får av cache Hvor ofte man får cache miss. Mer om cache (6) Direkte-avbildet: En bestemt lokasjon fra kan bare plasseres i en bestemt blokk i cache. Flere -lokasjoner må konkurrere om samme blokk i cache. Adresse Data Fordel: Lett å sjekke om riktig blokk finnes i cache: Sjekk kun ett tag-felt og se om denne har adressen man leter etter. Ulempe: Høyere miss-rate (selv om det er ledig plass andre steder, kan en blokk kun plasseres ett bestemt sted)..3 INF 3 7..3 INF 3 8

Mer om cache (7) Mengde-assosiativ cache: En bestemt lokasjon fra plasseres i et begrenset antall blokk-lokasjoner i cache Adresse Data Mer om cache (8) Full assosiativ cache: En lokasjon fra plasseres i hvilken som helst blokk i cache Adresse Data Fordel: Lett å sjekke om riktig blokk finnes i cache: Søk gjennom et begrenset antall tag-felt og se om blokken man leter finnes i cache. Bedre utnyttelse av cache fordi en blokk kan plasseres flere steder. Ulempe: Høyere miss-rate og lenger søketid enn ved direkte avbildet. Fordel: n utnyttes meget godt, og har minst sjanse for cache miss av de tre metodene Ulempe: Søket for å finne en blokk kan bli tidkrevende, og man lager mekanismer for å forenkle søk, f.eks hashing. Dette kompliserer cachekontrolleren...3 INF 3 9..3 INF 3 Mer om cache (9) Ved cache miss må noen ganger en eksisterende blokk kastes ut for å gi plass til en ny blokk. Hvilken blokk som fjernes kan ha stor betydning for hastigheten til programmet som eksekveres. LRU (Least Recently Used): en som har ligget lengst i cache uten å ha blitt skrevet til eller lest skrives over. Begrunnelse: kaster ike ut en blokk som er nylig brukt fordi det er stor sjanse for at denne skal brukes igjen. Ren LRU benyttes sjelden fordi det medfører mye administrasjon som i seg selv er tidkrevende (bl.a må et tidsstempel oppdateres hver gang en blokk aksesseres) Random: Kaster man ut en tilfeldig blokk når man trenger å frigi plass til en blokk. Hybrid: Deler inn blokker i tidsgrupper, og kaster så ut en tidfeldig valgt fra den gruppen som har ligget lengst i cache uten å bli brukt. Virtuelt minne () Ofte trenger et program/prosess mer enn det som er tilgjengelig fysisk i maskinen Et program deler med andre programmer og prosesser (tilgjengelig blir enda mindre), blant annet: Operativsystemet Driver-rutiner Bakgrunnsjobber (f.eks utskrifter, filoverføring) Brukerprogrammer som kjøres samtidig Programmer som tilhører forskjellige brukere. Virtuelt minne: utvides med plass på harddisken, slik at et program kan adressere et mye større område som enn det som faktisk er tilgjengelig. Siden data kan plasseres både i eller på harddisken brukes begrepet logisk adresse istedenfor fysisk adresse om de lokasjoner som et program aksesserer...3 INF 3..3 INF 3 2

Virtuelt minne (2) Maskinen må ha en mekanisme som gir en kobling mellom logiske (virtuelle) adresser og fysiske adresser: Virtuelt minne (3) Sidetabellen brukes for oversettelse mellom logisk og fysisk adresse: e adresser Oversettelse mellom fysiske og logiske adresser Fysiske adresser i hurtigminne adresse x x2 x4 x6 x8 x x2 x4... Fysisk adresse x x5 hdsd- hdsd-2 hdsd-6 x7 hdsd-3 hdsd-4... Diskadresser Sidetabellen inneholder adressen til starten på et sammenhengende minneområde med en kjent lengde eller en fildeskriptor (indeks på disken). Harddisk..3 INF 3 3..3 INF 3 4 Virtuelt minne (4) Virtuelt minne kan implementeres enten som paging eller segmentation. Paging: Hukommelsen organisert som en éndimensjonal array hvor hver adresse i sidetabellen refererer til starten av et minneområde med fast lengde. En logisk adresse består da av to felter: Et sidenummer og et offset: Virtuelt minne (5) Segmentation: Hukommelsen organisert som en todimensjonal array hvor den logiske adressen består av et blokknummer og en. Sidetabellen gir overgangen fra logisk til fysisk, og størrelsen på blokken. nummer adresse nummer Fysisk start adresse størrelse adresse Fysisk adresse Sidenummer Rammenummer nummer Fysisk Størrelse Sidetabell Sidenummer Rammenummer Sidetabell Fysisk adresse Fysisk..3 INF 3 5..3 INF 3 6

Virtuelt minne (6) Forskjell mellom paging og segmentation Begge støtter virtuell hukommelse, dvs isolerer logisk og fysisk adresserom, slik at den fysisk hukommelse kan realiseres på ulike måter uten at dette er synlig for prosessoren. Med segmentation er det lettere for operativsystemet å holde ulike prosesser sine hukommelsesområder adskilt fra hverandre (mer om dette i andre deler av kurset) Segmentation er mer fleksibelt fordi ulike prosesser kan få tilpasset størrelsen på sine minneområder uavhengig av sidestørrelser (med paging er sidestørrelsen fast, med segmentation settes den uavhengig for hver side). Segmentation er mer komplisert å implementere, og krever mer hardware. Virtuelt minne (7) Plassering av sider i eller på disk Virtuelt minne har samme problem som cahce: Man må bestemme hva som skal ligge i (liten og rask), og hva som skal ligge på disk (langsom stor og langsom). Forskjellen mellom aksesstid for og harddisk er enda større enn mellom og cache; opptil til ganger Kostnaden ved page fault, (at en side ikke finnes i hutigminnet men må fra disk) er svært stor. For å redusere omfang og konsekvens av page fault må man: Bruke stor nok sidestørrelse (f.eks 4 KB). Små sidestørrelser gir hyppigere page fault Bruke full asossiativ plassering av sider i det fysiske adresserommet slik at minnet utnyttes best mulig Bruke write-back istedenfor write-through...3 INF 3 7..3 INF 3 8 Virtuelt minne (8) Plassering og gjenfinning av sider For å redusere sjansen for page fault brukes nesten alltid full assosiativ plassering: Når en ny blokk hentes inn fra harddisken kan den plasseres på en vilkårlig ledig plass i. For å finne og plassere en bestemt blokk fysisk bruker man en komplett sidetabell slik at man slipper et fullt søk hver gang. Sidetabellen gi mulighet for å finne Hva den fysiske adressen er gitt den logiske Informasjon om innholdet på en gitt fysisk adresse tilsvarer den logiske (for å finne ut om man må lese inn en ny side fra disk eller ikke). Dette kan angis med ett enkelt valid-bit som ved oppstart er Sidetabellen ligger i en egen enhet som kalles MMU (Memory Management Unit) og er som regel bygget opp av statisk og må ha en linje for hver side som finnes. Virtuelt minne (9) Hva skjer ved page fault? Hvis riktig side ikke finnes i det fysiske minnet skjer følgende: ) Programmet som har bedt om å få lese fra en logisk adresse som ikke finnes gir fra seg kontrollen til operativsystemet. 2) Operativsystemet leser en intern datastruktur for å finne ut hvor den aktuelle siden ligger på harddisken (hvilken side den skal lese finnes i sidetabellen). 3) Hvis det ikke er ledig plass, må en fysisk side kastes ut fra (eventuelt skrives tilbake til disk) på tilsvarende måte som ved cache 4) Sidetabellen oppdateres slik at den peker til riktig fysisk side. 5) Det fysiske minnet oppdateres med riktig innhold fra harddisken. 6) Kontrollen gis tilbake fra operativsystemet til programmet som gav det fra seg slik at eksekveringen kan fortsette...3 INF 3 9..3 INF 3 2

Virtuelt minne () Hvordan velge ut sider som kan overskrives? Virtuelt minne () Write-back eller write-through? Mest vanlig: Least Recently Used (LRU), fordi sjansen er størst for at denne ikke lenger er i bruk LRU implmenteres ved et eget bit som settes når blokken aksesseres, og som nullstilles ved jevne mellomrom for at sider ikke skal ligge evig. Operativsystemet inneholder en tabell over sidene sortert etter når LRU-bitet sist ble nullstilt. Listen over sider som er kandidater for å bli kastet ut kan også sorteres etter FIFO-prinsippet, dvs etter hvor lenge siden de ble hentet inn fra disk, uavhengig av når de sist ble aksessert. Hvis en side kun er lest (f.eks ren programkode) kan siden bare overskrives når den skal erstattes. Hvis den er modifisert, må man først skrive den siden som skal erstattes tilbake til disken før den nye kan hentes inn. Write-through : Brukes sjelden fordi skriving til harddisk er meget langsomt og vil gir dårlig ytelse (hver skriving til vil også medføre skriving til harddisk) Mest vanlig er write-back som oppdaterer siden på harddisken kun ved en page fault For raskt å finne ut om en side er skrevet til eller ikke, brukes et eget bit (dirty bit) i sidetabellen. Settes til hvis det er skrivet til siden, ellers. Siden sidetabellen lagres i vanlig, medfører oppslag i to oppslag: Først i sidetabellen, og deretter i det fysiske minnet (ser bort fra eventuell page fault). For å øke hastigheten bruker man en egen cache som innehlder de mest brukte sidene fra sidetabellen. Denne cachen kalles ofte for Translation Lookaside Buffer (TLB)...3 INF 3 2..3 INF 3 22 Virtuelt minne (2) Eksempel på virtuelt minne med TLB side/blokk -nummer Valid TLB Fysisk sideadresse Fysisk minne Fysisk sideadresse/ Valid diskadresse Disk Sidetabell TLB må også inneholde dirty bit for å indikere at det må gjøres write-back. (TLB er som vanlig cache) TLB er enten fullt assosiativ (ved små TLB) eller mengde-assosiativ...3 INF 3 23