Flexible Page Sizes for Virtual Memory Translation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current virtual memory systems have a large page table footprint due to fixed page sizes, which leads to inefficient memory usage and performance issues, especially when dealing with large memory spaces and discontiguous regions.
Innovation Solution
Implementing a method to translate virtual memory addresses into physical memory addresses using flexible page sizes by parsing the address into offsets and combining them with native page table size fields to determine the correct page table entries, allowing for hardware prefetch optimizations and reduced page table size.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If fixed page sizes are used in virtual memory systems, then the page table structure is simple and easy to implement, but the page table footprint becomes large and memory usage becomes inefficient
Solution Approach 1:
The patent implements dynamic page sizes by introducing a page size field in page table entries that can indicate different page sizes (e.g., 4KB, 64KB, or larger). This allows the system to adaptively select appropriate page sizes based on the specific memory mapping requirements, rather than using a fixed page size throughout. The page table structure remains relatively simple while gaining the flexibility to optimize for different scenarios.
Solution Approach 2:
The patent changes the parameter of page size from a fixed value to a variable that can be specified in the page table entry. By incorporating a page size indicator field in the PTE and using this information during address translation, the system can dynamically adjust the effective page size to reduce the number of page table entries needed, thereby reducing the overall page table footprint.
2Quantity of substance
If larger page sizes are used to reduce page table footprint, then memory usage efficiency improves, but the ability to map discontiguous regions of virtual memory becomes limited
Solution Approach 1:
The patent segments the virtual address space into regions that can be mapped with different page sizes. By allowing each page table entry to specify its own page size, the system can use larger pages for contiguous regions to reduce footprint while using smaller pages for discontiguous or sparse regions, thus maintaining mapping flexibility while improving overall memory efficiency.
Solution Approach 2:
The patent applies local quality by allowing different page sizes to be used in different regions of the virtual address space. Instead of using a uniform page size throughout, each page table entry can specify the appropriate page size for its particular region, enabling optimal local optimization for both contiguous and discontiguous memory mappings.
3Productivity
If hardware prefetch optimizations are implemented with flexible page sizes, then system performance improves, but the complexity of the address translation mechanism increases
Solution Approach 1:
The patent enables hardware prefetch optimizations by providing the page size information directly in the page table entry, allowing the hardware to calculate prefetch addresses and determine the extent of pages to be prefetched without requiring complex software intervention. The page size field in the PTE allows the hardware to perform preliminary actions (prefetching) based on the specified page size, improving performance while keeping the translation mechanism relatively simple.
Data Source
AI summary
A method for translating a virtual memory address into a physical memory address includes parsing the virtual memory address into a page directory entry offset, a page table entry offset, and an access offset. The page directory entry offset is combined with a virtual memory base address to locate a page directory entry in a page directory block, wherein the page directory entry includes a native page table size field and a page table block base address. The page table entry offset and the page table block base address are combined to locate a page table entry, wherein the page table entry includes a physical memory page base address and a size of the physical memory page is indicated by the native page table size field. The access offset and the physical memory page base address are combined to determine the physical memory address.


