16.317: Microprocessor System Design I Instructor: Dr. Michael Geiger Spring 2012 Lecture 22:...
-
Upload
celine-virgo -
Category
Documents
-
view
227 -
download
0
Transcript of 16.317: Microprocessor System Design I Instructor: Dr. Michael Geiger Spring 2012 Lecture 22:...
16.317: Microprocessor System Design I
Instructor: Dr. Michael Geiger
Spring 2012
Lecture 22: Virtual memory
Lecture outline Announcements/reminders
Lab 2 due 3/28 HW 3 due 3/26
Lecture outline Review
Local memory accesses Interrupt descriptor table Task switching
Virtual memory Benefits VM and 80386 segmentation Paging
04/18/23 Microprocessors I: Lecture 22 2
Review Local memory access
Selector indicates access is global (TI == 1) LDTR points to LDT descriptor in GDT
Actual base, limit of LDT stored in LDTR cache Index field in selector chooses descriptor from LDT
Descriptor addr = (LDT base) + (selector index * 8) Descriptor provides starting address of segment
Interrupt descriptors Provide starting address, length of interrupt service routines Limited to 256 descriptors Stored in IDT; IDTR holds base/limit of IDT
Task switching Task register (TR): selector for current task state segment (TSS) TSS stores all state (register values) for current task Task switch: jump/call that changes TR; old TSS saved and new one
loaded
04/18/23 Microprocessors I: Lecture 22 3
Problems with memory
DRAM may be too expensive to buy enough to cover whole address space We need our programs to work even if they
require more memory than we have A program that works with 512 MB RAM
should still work with 256 MB RAM Most systems run multiple programs
Most processors don’t have hardware multitasking support (like the 386)
04/18/23 4Microprocessors I: Lecture 22
Solutions Leave the problem up to the programmer
Assume programmer knows exact memory configuration
Overlays Compiler identifies mutually exclusive regions
Virtual memory Use hardware and software to automatically
translate references from virtual address (what the programmer sees) to physical address (index to DRAM or disk)
Most virtual addresses not present in physical memory!
04/18/23 5Microprocessors I: Lecture 22
Microprocessors I: Lecture 22 6
Virtual Address and VA Space 80386 virtual addresses: 48-bit
Used by Memory Management Unit (MMU) Consists of
Selector (16bit): can be one of the segment selector register
Offset (32bit): can be EIP or other 32-bit registers Segment can be as large as 4GB Virtual address space can be 246 bytes (64
Terabytes) 2 bits used for privilege level in selector
04/18/23
Address translation Virtual address physical address
Need address translation mechanism May take multiple steps
On 80386, two (main) levels Virtual address (VA) linear address (LA)
Uses selectors, descriptors discussed so far Linear address physical address (PA)
If using segmented memory model, PA == LA If using paged memory model, translate LA to PA
04/18/23 Microprocessors I: Lecture 22 7
Microprocessors I: Lecture 22 8
Segmented Partition of Virtual Address Space
80386 virtual memory space is divided into global and local memory address space 32 Terabytes global address space 32 Terabytes local address space
Up to 8192 segments may exist in either global or local address space Because maximum size of GDT is 64KBytes, each
descriptor is 8bytes, 64KB/8B = 8192 Not all descriptors are normally in use
Task has both global and local memory space
04/18/23
Microprocessors I: Lecture 22 9
Physical Memory Space and Virtual-to-Physical Address Translation
4GB physical memory vs 64TB virtual memory space Just a small amount of the information in virtual
memory can reside in physical memory Segments not in use is stored on secondary
storage device Address translation: 48bit VA -> 32bit PA
Segment translation Page translation
04/18/23
Microprocessors I: Lecture 22 10
Memory Swap MMU determines whether or not a segment or
page resides in physical memory If not present, “swap”
memory management software initiates loading of the segment or page from external storage device to physical memory
A segment or page in physical memory will be swapped out and stored in external storage device
04/18/23
Microprocessors I: Lecture 22 11
Segmentation Virtual to Physical Address Translation
48-bit virtual address (selector + offset) translated to 32-bit physical address
“Selector” used to find segment descriptor in LDT 64-bit segment descriptor cache register in 80386 contains:
access rights (12b), base address(32b), limit(20b) Segment descriptor cache defines the location and size
of code/data segment Code/data segments in physical memory
Offset is the address of the data to be accessed in the segment
Segment base address + offset = 32b linear address 32b linear address is physical address, if paging is
disabled
04/18/23
Microprocessors I: Lecture 22 12
Example Segment selector = 0100H
offset = 00002000H
segment base address = 00030000H
Q:What is the virtual address? Physical address?
A: VA = 0100:00002000H
linear address = base address + offset
= 00030000H+00002000H
= 00032000H
if paging disabled, PA = linear addr = 00032000H
04/18/23
Microprocessors I: Lecture 22 13
Paged partition of Virtual Address Space
Physical memory is organized in 4KB pages 4GB/4KB = 1,048,496 pages
Simplifies the implementation of the memory management software Fixed 4K pages make space allocation and
deallocation easier than segmentation Space in a page might not be fully utilized Linear address is not direct physical address
Undergo a second translation - page translation Format: 12-b offset, 10-b page, 10-b directory field
04/18/23
Managing virtual memory
Effectively treat main memory as a cache Blocks are called pages Misses are called page faults
Virtual address consists of virtual page number and page offset
Virtual page number Page offset01131
04/18/23 14Microprocessors I: Lecture 22
Virtual address spaces
A machine usually supports
pages of a few sizes
(MIPS R4000):
PhysicalMemory Space
A valid page table entry codes physical memory “frame” address for the page
A virtual address spaceis divided into blocks
of memory called pagesframe
frame
frame
frame
A page table is indexed by a virtual address
virtual address
Page Table
OS manages the page table for each ASID04/18/23 15Microprocessors I: Lecture 22
PhysicalMemory Space
Page table maps virtual page numbers to physical frames (“PTE” = Page Table Entry)
Virtual memory => treat memory cache for disk
Details of Page Table
Virtual Address
Page Table
indexintopagetable
Page TableBase Reg
V AccessRights PA
V page no. offset12
table locatedin physicalmemory
P page no. offset12
Physical Address
frame
frame
frame
frame
virtual address
Page Table
04/18/23 16Microprocessors I: Lecture 22
Microprocessors I: Lecture 22 17
Paging on 80386 Two-level page table
First level: “page directory” Starting address stored in CR3 (page directory base
register (PDBR)) Indexed by upper 10 bits of linear address
Second level: “page table” Starting address of each “page table” stored in page
directory Indexed by middle 10 bits of linear address Provides starting address of physical page frame
Physical address = (page frame base) + (offset)
Offset = lowest 12 bits of linear address
04/18/23
Virtual memory performance
Address translation accesses memory to get PTE every memory access twice as long
Solution: store recently used translations Translation lookaside buffer (TLB): a cache for
page table entries “Tag” is the virtual page # TLB small often fully associative TLB entry also contains valid bit (for that translation);
reference & dirty bits (for the page itself!)
04/18/23 18Microprocessors I: Lecture 22