Your SlideShare is downloading. ×
0
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Extlect04
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Extlect04

232

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
232
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Page Tables Revisited 1
  • 2. 2
  • 3. Two-level Translation 3
  • 4. R3000 TLB Refill• Can be optimised for TLB refill • An example routine only mfc0 k1,C0_CONTEXT – Does not need to check the mfc0 k0,C0_EPC # mfc0 delay exception type # slot – Does not need to save any lw k1,0(k1) # may double registers # fault (k0 = orig EPC) • It uses a specialised assembly routine that only nop uses k0 and k1. mtc0 k1,C0_ENTRYLO – Does not check if PTE exists nop • Assumes virtual linear array – tlbwr see extended OS notes jr k0 rfe• With careful data structure choice, exception handler can be made very fast 4
  • 5. Virtual Linear Array page table• Assume a 2-level PT• Assume 2nd-level PT nodes are in virtual memory• Assume all 2nd-level nodes are allocated contiguously ⇒ 2nd-level nodes form a contiguous array indexed by page number 5
  • 6. Virtual Linear Array Operation• Index into 2nd level page table without referring to root PT!• Simply use the full page number as the PT index!• Leave unused parts of PT unmapped!• If access is attempted to unmapped part of PT, a secondary page fault is triggered – This will load the mapping for the PT from the root PT – Root PT is kept in physical memory (cannot trigger page faults) 6
  • 7. Virtual Linear Array Page Table• Use Context register to simply load PTE by indexing a PTE array in virtual memory• Occasionally, will get double faults – A TLB miss, while servicing a TLB miss – Handled by general exception handler PTEbase in virtual memory in kseg2 • Protected from user access 7
  • 8. c0 Context Register• c0_Context = PTEBase + 4 * PageNumber – PTEs are 4 bytes – PTEBase is the base local of the page table array (note: aligned on 4 MB boundary) – PTEBase is (re)initialised by the OS whenever the page table array is changed • E.g on a context switch – After an exception, c0_Context contains the address of the PTE required to refill the TLB. 8
  • 9. Code for VLA TLB refill handlerLoad PTE mfc0 k1,C0_CONTEXTaddress from mfc0 k0,C0_EPC # mfc0 delay slotcontext register lw k1,0(k1) # may double fault # (k0 = orig EPC) nopMove the PTE Load address of mtc0 k1,C0_ENTRYLOinto EntryLo. instruction to nop return to tlbwr jr k0 rfe Load the PTE. Note: this load can cause aWrite EntryLo TLB refill miss itself, butinto random TLB this miss is handled by theentry. Return from the general exception vector. exception The general exception vector has to understand this situation and deal with 9 in appropriately
  • 10. Software-loaded TLB• Pros – Can simplify hardware design – provide greater flexibility in page table structure• Cons – typically have slower refill times than hardware managed TLBs. 10
  • 11. Trends• Operating systems – moving functionality into user processes – making greater use of virtual memory for mapping data structures held within the kernel.• RAM is increasing – TLB capacity is relatively static• Statement: – Trends place greater stress upon the TLB by increasing miss rates and hence, decreasing overall system performance. – True/False? How to evaluate? 11
  • 12. Design Tradeoffs for Software-Managed TLBsDavid Nagle, Richard Uhlig, Tim Stanley, Stuart Sechrest Trevor Mudge & Richard Brown 12
  • 13. 13
  • 14. 14
  • 15. 15
  • 16. Note the TLB miss costs• What is expected to be the common case? 16
  • 17. 17
  • 18. 18
  • 19. 19
  • 20. Measurement Results 20
  • 21. Specialising the L2/L1K miss vector 21
  • 22. Other performance improvements?• In Paper – Pinned slots – Increased TLB size – TLB associativity• Other options – Bigger page sizes – Multiple page sizes 22
  • 23. Itanium Page Table• Takes a bet each way• Loading – software – two different format hardware walkers• Page table – software defined – linear – hashed 23
  • 24. 24
  • 25. what about the P4?
  • 26. P4• Sophisticated, supports: – demand paging – pure segmentation – segmentation with paging• Heart of the VM architecture – Local Descriptor Table (LDT) – Global Descriptor Table (GDT)• LDT – 1 per process – describes segments local to each process (code, stack, data, etc.)• GDT – shared by all programs – describes system segments (including OS itself)
  • 27. P4• To access a segment P4 – loads a selector in 1 of the segment registers –…
  • 28. P4• a P4 selector:
  • 29. P4 determine LDT or GDT (and• a P4 selector: privilege level) 1 11• when selector is in register, corresponding segment descriptor is – fetched by MMU – loaded in internal MMU registers• Next, segment descriptor is used to handle memory reference (discussed later)
  • 30. P4 LDT GDT 000 zero these 3 bits and add the 16b to base address of LDT or GDT
  • 31. P4 LDT GDT 000 • finds a a P4 code segment descriptor
  • 32. P4• calculating a linear address from selector+offset
  • 33. P4IF no paging used: we are done this is the physical addressELSE linear address interpreted as virtual address paging again!
  • 34. P4 with paging• every process has page directory – 1024 32bit entries – each entry points to page table – page table contains 1024 32bit entries – each entry points to page framemappinglinearaddress tophysicaladdresswith paging
  • 35. P4• Many OSs: –BASE=0 –LIMIT=MAX• no segmentation at all

×