Flexible Page Sizes for Virtual Memory Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvepage table structureVSAvoidpage table footprint
Core Design Contradiction:
Device complexityVSQuantity of substance

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvememory usage efficiencyVSAvoidmapping flexibility
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #3Local quality

3Productivity

If hardware prefetch optimizations are implemented with flexible page sizes, then system performance improves, but the complexity of the address translation mechanism increases

Engineering Contradiction:
Improvesystem performanceVSAvoidaddress translation mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9588902B2Flexible page sizes for virtual memory
Publication Date: 2017.03.07 ATI TECHNOLOGIES ULC
  • US9588902B2 patent drawing
  • US9588902B2 patent drawing
  • US9588902B2 patent drawing

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.