Page Table Translation
Page Table Translation
Simulate a 2-level page table translation for a 32-bit virtual address.
Function
func Translate(va uint32, pd []int, pts [][]int) (uint32, bool)
Address format
- Page size: 4096 bytes
- VA layout: [10 bits dir][10 bits table][12 bits offset]
Table format
pdlength is 1024.pd[i]is the index of the page table inpts, or -1 if not present.- Each page table in
ptshas length 1024. - A page table entry is a frame number, or -1 if not present.
Behavior
- If any level is not present, return
(0, false). - Otherwise, return physical address
frame*4096 + offsetandtrue.
Run tests to see results
No issues detected