Presentation laddar. Vänta.

Presentation laddar. Vänta.

Adressöversättning zRepetition av virtuellt minne zTLB - cacheminne för sidtabellinformation zVirtuellt eller fysiskt adresserat cacheminne zTricket -

Liknande presentationer


En presentation över ämnet: "Adressöversättning zRepetition av virtuellt minne zTLB - cacheminne för sidtabellinformation zVirtuellt eller fysiskt adresserat cacheminne zTricket -"— Presentationens avskrift:

1 Adressöversättning zRepetition av virtuellt minne zTLB - cacheminne för sidtabellinformation zVirtuellt eller fysiskt adresserat cacheminne zTricket - det bästa av två världar zMinneshierarki

2 Repetition av virtuellt minne process 1 - virtuell adressrymd 1 process 2 - virtuell adressrymd 2 sidtabell 1sidtabell 2 fysiskt minne skivminne

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

4 Enkel sidtabell

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

6 Problem zMånga (möjliga) virtuella sidor medför zstora sidtabeller som medför zsidtabeller i primärminnet som medför zlångsam uppslagning

7 Flernivåers sidtabell zTomma sidtabeller på nivå 2 och 3 kan ersättas med nollställd giltigbit på nivån ovanför

8 Flernivåers sidtabell, exempel

9 TLB Translation Lookaside Buffer zCacheminne för adressöversättning zDelmängd av sidtabellen zAssociativt, mindre än 200 platser zSitter på processorchippet zMiss-rate under 1 procent zMissar hanteras i programvara i Riscar

10 Misshantering i programvara zTLB-miss ger felavbrott (exception) zFelavbrottsrutinen läser sidtabellen zSidfel upptäcks som TLB-miss, felavbrotts- rutinen ser i tabellen att det är sidfel zVanligt i Riscar, som saknar mikroprogram zx86 hanterar TLB-miss i hårdvara

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

12 Statusbitar zSidbytesrutin behöver use-bit och dirty-bit zuse-bit: har sidan använts sen sist? Behövs för att approximera LRU zdirty-bit: har sidan skrivits sen sist? Kan spara onödig skrivning till skivminnet

13 Statusbitar i TLB:n zTLB behöver ingen use-bit - endast nyligen använda sidor finns i TLB:n zTLB behöver ingen dirty-bit, eftersom: ynär en sidas översättning lagras i TLB:n markeras sidan som skrivskyddad yförsta skrivning ger felavbrott, programrutinen sätter dirty-bit i sidtabellen

14 Täckning (coverage) zCoverage = sidstorlek x antal sidor i TLB zStörre täckning ger färre missar zÖkad sidstorlek ger ökad täckning zTvå sidstorlekar vanligt, exempelvis 4 kB och 4 MB zBildminne och OS kan ligga i stora sidor

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

16 Fördelar med virtuellt adresserade cacheminnen zSnabbare, behöver inte vänta på TLB:n ykortare cykeltid ystörre cacheminne ykortare pipeline zTLB:n används mer sällan ygemensam TLB räcker yTLB:n kan vara större och långsammare zFalska konflikter undviks i cacheminnet

17 Nackdelar med virtuellt adresserade cacheminnen zSynonymer - olika virtuella adresser blir samma fysiska ysamma fil inmappad på två ställen i en process ysamma fil eller delade bibliotek inmappade i två olika processer zHomonymer - samma virtuella adress blir olika fysiska yvid processbyte

18 Synonymproblem zOm A och B är två olika virtuella adresser som mappas till samma fysiska, så kan STOREA <- #0 LOADR3 <- B resultera i att B  0 zLösning: låt OS:et förbjuda synonymer

19 Homonymproblem zOm 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 LOADR3 <- A ge värdet från X i stället för från Y

20 Processbyte i virtuellt adresserat cacheminne zHela adressrymden byts vid processbyte. För att lösa homonymproblemen kan man yinvalidera hela cacheminnet, eller ylägga till processnummer till varje adresslapp zOperativsystemet använder ofta fysiska adresser direkt, varje systemanrop blir ett byte av adressrymd

21 Fysiskt adresserade cacheminnen zFördelar: yInga synonym- eller homonymproblem yBehöver ej invalideras vid processbyte yOperativsystemet kan använda cacheminnet (med fysiska adresser) zNackdelar: yTLB-uppslagning före varje referens yFalska konflikter

22 Tricket - samtidig uppslagning i TLB och cacheminne

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

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

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

26 Hierarki av cacheminnen zRegister zI- och D-cache zLevel 2, Level 3 zHuvudminne zSkivminne


Ladda ner ppt "Adressöversättning zRepetition av virtuellt minne zTLB - cacheminne för sidtabellinformation zVirtuellt eller fysiskt adresserat cacheminne zTricket -"

Liknande presentationer


Google-annonser