Adressöversättning Repetition av virtuellt minne

Slides:



Advertisements
Liknande presentationer
Operativsystem.
Advertisements

Simulering av MIPS32 4K med TLB och CACHE Andrei Krougliak Simon Olsson Luleå tekniska universitet 2005.
Flynns taxonomi ● Single Instruction, Single Data (SISD) – en instruktion i taget opererar på ett värde i taget ● Single Instruction, Multiple Data (SIMD)
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Datorarkitekturer och operativsystem
Programstruktur: C för enchipsdatorer
Översikt av operativsystem (kap 1 & 2)
Enkel dator teknik Tips och tricks.
Persondatorer Datorns internminne (Kapitel 6)
Minnesteknologier Teknologi Accesstid Kostnad $/GB SRAM 1 ns 1000 DRAM
ZIP-formatet Av Viktor Ekholm.
William Sandqvist System Management functions S Burd, Systems Architecture ISBN Figure 11-2 CPU Management Memory Management.
PC-teknik Repetition enligt önskemål som inkommit via mail. (täcker alltså inte alla moment i kursen)
©annax1 PC-teknik Minnen. 2 MINNEN Segmenterat minne 16 bits segmentregister + 32 bits offset = 64k*4Gbyte = 512Tb obs! Ofta används inte alla 16 bitarna.
23 August 2014 IS1200 Datorteknik vt09, föreläsning 10, (E och I mfl)1 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory.
Adressöversättning zRepetition av virtuellt minne zTLB - cacheminne för sidtabellinformation zVirtuellt eller fysiskt adresserat cacheminne zTricket -
Tumregel z10 procent av minnet används 90 procent av tiden.
Skrivning i cacheminnen zTräff zMiss zSkrivbuffert.
Denna föreläsning zVad kursen handlar om zKursupplägg, litteratur, bra att veta zPrestanda - ämnet för dagen.
C-programmering ID120V William Sandqvist Länkad lista
Programmeringsteknik K och Media
Distribuerade filsystem
DAV B04 - Databasteknik Indexering (kap 14).
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 9: Virtuellt minne.
EN KOMPLETT INDUSTRIPARTNER ! ALLMÄNT OM MELSEC STYRSYSTEM.
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Föreläsning 5 måndag 5e november 2007 Datorsystem 1 och Datorarkitektur 1 Föreläsning 5 måndag 5e november 2007 Datorsystem 1 och Datorarkitektur 1.
Välkommen till Del 1.
1 Pass 2 Allmän IT Hårdvara Hårdvara Hårdvara = Maskinvara Hårdvara är ett samlingsnamn för olika fysiska tillbehör till en dator. T. ex. Systemenhet.
OPERATIVSYSTEM WINDOWS
William Sandqvist C:s minnesmodell.
Operativsystem Vad är det för något ? Varför har man operativsystem ?
Integrera mp3 i hotpotatoes.  Se hur test-övningen kommer att se ut: N1_Audio_01.htm
Mahmud Al Hakim 2  Mål för kursen  Kursplanering  Kurslitteratur  Betygsättning  Grunder om databaser  Tabeller.
Prestanda ● Vad påverkar datorprestanda ● Hur mäter man datorprestanda ● Räkna klockcykler - ett sätt att analysera ● Amdahls lag - gräns för förbättringar.
Java paket och jar-filer
Lågnivåprogrammering Översikt av I/O-mekanismer i hårdvara Olika språkkrav och modeller för komponent- hantering(device driving) Modeller för komponent-hantering.
Programmering i C# 9. Pekare och osäker kod.
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 3
31 March 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
Cacheminnen: skrivning ● Träff ● Skrivbuffert ● Miss.
Minnesarkitektur Problem: Snabbare och snabbare processorer men minnena hänger inte med. Lösning: Minneshierarkier.
Emulatorkonstruktion Schema Inledning Andra metoder Mina metoder Demonstration av min C64-emulator Sammanfattning och frågor.
NÄTVERKSPROTOKOLL Föreläsning
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Repetition.
Anders Sjögren Data (i primärminnet) som en länkad lista datatypen för varje element i listan är en struktur, post ( struct )
6/3/2015© Mats Brorsson1 Hur mycket snabbare blir det med PC133 SDRAM jämfört med PC100 SDRAM?... blir det med en 1,4 GHz Athlon- processor jämfört.
12 June G1518, Föreäsningl 8, vt07 (E/I/CL)1 2G1518 Datorteknik Föreläsning 8 Cache Memory vt 2007 (period 3-4) för E, I och CLMDA.
Denna föreläsning zVad kursen handlar om zKursupplägg, litteratur, bra att veta zPrestanda - ämnet för dagen.
Insikt 2015 Tjörns kommun En servicemätning av kommunens myndighetsutövande gentemot företag.
Enkel dator teknik Tips och tricks. Välja storlek och radavstånd Här väljer du storlek på texten vi vill att ni använder 14 p till rubriker och 12 p till.
Engångsbatchar/kompletterings- batchar för registervård Hans Persson
På vissa datorer behöver du trycka på F5 för att starta bildspelet.
Operativsystem Vad är det för något ? Varför har man operativsystem ? Vilka finns det ?
Anpassa fri programvara - Frihet ett, hur nyttjar man den? Copyright © 2006, 2007 Marcus Rejås Rejås Datakonsult Jag ger härmed rätten till alla att nyttja.
Operativsystem s63 Win 7 Länken mellan datorn och omvärlden Användare kan ge kommandon till datorn Starta program Skriva text via tangentbordet Matar ut.
Windows brandvägg s105 Använd mjukvarubrandvägg även om du har brandvägg i router/gateway mjukvarubrandvägg skyddar mot intrång inom det lokala nätverket.
VISNINGSVERKTYGET POWERPOINT i office 365
Microsoft® Office Word 2007-utbildning
LATHUND BLODOMLOPPET 2017 Gå in på
Mer om repetionssatser och arrayer
Rapporter.
Grundläggande datavetenskap, 4p
I vissa datorer behöver du trycka på F5 för att starta bildspelet
Presentationens avskrift:

Adressöversättning Repetition av virtuellt minne TLB - cacheminne för sidtabellinformation Virtuellt eller fysiskt adresserat cacheminne Tricket - det bästa av två världar Minneshierarki

Virtuellt minne fysiskt minne sidtabell 1 sidtabell 2 process 1 - virtuell adressrymd 1 process 2 - virtuell adressrymd 2 skivminne

Adressöversättning virtuell adress fysisk adress virtuellt sidnummer (VPN) sidoffset (PO) virtuell adress adress- översättning fysisk adress fysiskt sidnummer (PPN) sidoffset (PO)

Vanliga sidstorlekar 4 kbyte (Sparc, x86) 8 kbyte (Ultrasparc) 4 kbyte + 4 Mbyte (Pentium) 8k, 64k, 512k, 4Mbyte (Alpha 21264)

Enkel sidtabell en minnesadress virtuellt sidnummer offset primär- sida 71 fysiskt sidnummer sida 72 sida 73 Enkel adressöversättning med hjälp av en enkel sidtabell.

Minneslayout Kod, data, stack utspridda Många ogiltiga sidor adress 0 Kod, data, stack utspridda Många ogiltiga sidor Enkel sidtabell blir stor och tom kod data utökning av dataområdet utökning av stacken stack största möjliga adress

Problem Många (möjliga) virtuella sidor medför stora sidtabeller som medför sidtabeller i primärminnet som medför långsam uppslagning

Flernivåers sidtabell Tomma sidtabeller på nivå 2 och 3 kan ersättas med nollställd giltigbit på nivån ovanför inkommande adress virtuellt sidnummer index 1 (4 bit) index 2 (8 bit) index 3 (8 bit) sidoffset (12bit) sidtabell nivå 1 sidtabell nivå 2 sidtabell nivå 3 sida . . . . . . . . .

Flernivåers sidtabell, exempel tre sidtabeller på nivå 2 fem sidtabeller på nivå 3 sidtabell nivå 1 . . . . . . . . . . . . . . . tre sidtabeller för programkod . . . en sidtabell för data . en sidtabell . . . . . . . . för stacken Sidtabeller för ett program. Själva sidorna finns inte med i figuren.

TLB Translation Lookaside Buffer Cacheminne för adressöversättning Delmängd av sidtabellen Associativt, mindre än 200 platser Sitter på processorchippet Miss-rate under 1 procent Missar hanteras i programvara i Riscar

Misshantering i programvara TLB-miss ger felavbrott (exception) Felavbrottsrutinen läser sidtabellen Sidfel upptäcks som TLB-miss, felavbrotts- rutinen ser i tabellen att det är sidfel Vanligt i Riscar, som saknar mikroprogram x86 hanterar TLB-miss i hårdvara

TLB-miss i mjukvara medför: Operativsystemet bestämmer hur sidtabellen ser ut Operativsystemet bestämmer TLB:ns utbytesalgoritm Instruktioner för att läsa/skriva TLB-platser Delar av sidtabell kan hamna i datacachen

Statusbitar Sidbytesrutin behöver use-bit och dirty-bit use-bit: har sidan använts sen sist? Behövs för att approximera LRU dirty-bit: har sidan skrivits sen sist? Kan spara skrivning till långsamt skivminne

Statusbitar i TLB:n TLB kan ha use-bit, men måste inte: endast nyligen använda sidor finns i TLB:n TLB kan ha dirty-bit (för prestanda), annars: när en sidas översättning lagras i TLB:n markeras sidan som skrivskyddad första skrivning ger felavbrott, programrutinen sätter dirty-bit i sidtabellen

Obs! En TLB är inget vanligt cacheminne! En dirty-bit i TLB:n anger om sidan ändrats i minnet Innehållet i TLB:n ändras inte av att programmet skriver till sidan (undantag: dirty-bit för sidan ettställs) Om dirty-bit = 1 så måste sidan sparas i swap-filen innan minnet återanvänds. TLB-innehållet ska inte sparas någonstans!

Täckning (coverage) Coverage = sidstorlek x antal sidor i TLB Större täckning ger färre missar Ökad sidstorlek ger ökad täckning Två sidstorlekar vanligt, exempelvis 4 kB och 4 MB Bildminne (och OS?) kan ligga i stora sidor

Virtuellt eller fysiskt adresserat cacheminne CPU TLB cacheminne CPU TLB cacheminne Virtuella adresser i adresslapparna TLB används bara vid miss Fysiska adresser i adresslapparna TLB används vid varje referens

Fördelar med virtuellt adresserade cacheminnen Snabbare, behöver inte vänta på TLB:n kortare cykeltid större cacheminne kortare pipeline TLB:n används mer sällan gemensam TLB räcker TLB:n kan vara större och långsammare Falska konflikter undviks i cacheminnet

Nackdelar med virtuellt adresserade cacheminnen Synonymer - olika virtuella adresser blir samma fysiska samma fil inmappad på två ställen i en process samma fil eller delade bibliotek inmappade i två olika processer Homonymer - samma virtuella adress blir olika fysiska vid processbyte

Synonymproblem Om A och B är två olika virtuella adresser som mappas till samma fysiska, så kan STORE A <- #0 LOAD R3 <- B resultera i att B  0 Lösning: låt OS:et förbjuda synonymer

Homonymproblem Om den virtuella adressen A motsvarar den fysiska adressen X som finns i cacheminnet och TLB:n uppdateras så att A motsvarar en annan fysisk adress Y, så kan LOAD R3 <- A ge värdet från X i stället för från Y

Processbyte i virtuellt adresserat cacheminne Hela adressrymden byts vid processbyte. För att lösa homonymproblemen kan man invalidera hela cacheminnet, eller lägga till processnummer till varje adresslapp Operativsystemet använder egna adresser, varje systemanrop blir byte av adressrymd

Fysiskt adresserade cacheminnen Fördelar: Inga synonym- eller homonymproblem Behöver ej invalideras vid processbyte Nackdelar: TLB-uppslagning före varje referens Falska konflikter

Falska konflikter Virtuella adressen visar ingen konflikt direktmappat cacheminne Virtuella adressen visar ingen konflikt Adressöversättning skapar konflikten OS kan hindra detta fysiskt minne sidtabell processens virtuella adressrymd skivminne

TLB-uppslagning vid varje referens Instruktionshämtning (glöm inte den!) Datareferens (vid load/store) Kräver separat I-TLB och D-TLB, och förstås separata I- och D-cacheminnen TLBn tar en extra cykel i pipelinen, om inte tricket med samtidig uppslagning används

Tricket - samtidig uppslagning i TLB och cacheminne inkommande (virtuell) adress sidnummer offset 20bit 10bit index 2bit byte-offset ³ 1 felavbrott = lagrad adresslapp lagrat ord (32 bit) adress in = (20 bit) = . . . . . . data ut data ut Minne = . . . med 1024 ord TLB om 53bit till processorn = fysiskt sidnummer & fanns/ fanns inte Ett direktmappat cacheminne med parallell TLB-uppslagning.

Trickets restriktion Ingen enda bit från adresslappen får användas som indexbit! Detta medför att: Cachestorlek  associativitetstal x sidstorlek

Sidfärgning (page coloring) Den virtuella adressen används som index, den fysiska finns i adresslappen virtuellt sidnummer sidoffset får inte ändras av adressöversättningen index fysiskt sidnummer sidoffset

Sidfärgning Tricket kan användas i större cacheminnen Sidbytesalgoritmen väljer alltid sidor så att överlappande bitar ej ändras av TLB:n Huvudminnet som cache för hårddisken - inte längre fullt associativt Falska konflikter minskar eller försvinner

Hierarki av cacheminnen processor data instruk- tioner register virtuella adresser Register I- och D-cache Level 2, Level 3 Huvudminne Skivminne I- L1I- D- L1D- TLB cache TLB cache fysiska adresser L2 cache på processor- chippet L3 cache primärminne skivminne En minneshierarki med flera nivåer.