Page Fault Handling Offload Engine for NVM Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Emerging non-volatile memories (NVM) with low latency pose challenges in page fault handling due to increased context switch overhead, which is significant compared to traditional storage devices, leading to higher latency in page fault operations.

Innovation Solution

A page fault handling offload engine (POE) is implemented, utilizing a pre-allocation mechanism, enhanced hardware page walker, and kernel background threads to reduce overhead by pre-allocating pages and moving operations out of the page fault critical path, thereby minimizing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If kernel-based page fault exception handling is used, then page faults can be handled with traditional storage devices (SSD/HDD), but context switch overhead becomes significant when using emerging NVM, increasing total access latency

Engineering Contradiction:
Improvepage fault handling correctnessVSAvoidcontext switch overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts the page fault handling operations from the kernel exception path and moves them to user space. A page fault handling library is implemented that can be called directly from user space applications, eliminating the need for context switches to kernel space for page fault handling. The library performs page allocation, mapping, and data transfer operations entirely in user space, thereby removing the context switch overhead that becomes significant with NVM.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a page fault handling library as an intermediary between the application and the operating system kernel. This library acts as a mediator that handles page faults in user space by managing page allocation, memory mapping, and data transfer without requiring kernel intervention for each page fault. The library communicates with the kernel only when necessary, reducing context switch frequency while maintaining system reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If lazy allocation is used to reduce memory usage, then multiple applications can execute concurrently, but page fault handling operations increase when memory is exhausted requiring swapping

Engineering Contradiction:
Improvememory usageVSAvoidpage fault handling throughput
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent implements preliminary action by pre-allocating pages in the page pool before they are needed. When memory is available, pages are pre-allocated and stored in a page pool data structure, so that when a page fault occurs, the page is already ready and can be quickly mapped without requiring allocation operations during the page fault handling critical path. This reduces the number of operations performed during page faults and improves handling throughput.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent maintains continuity of useful action by keeping a pool of pre-allocated pages ready for immediate use. Instead of allocating pages on-demand during page faults, the system continuously maintains a supply of available pages in the page pool, ensuring that page fault handling can proceed without interruption or additional allocation overhead. This continuous availability of pages improves productivity while lazy allocation still allows multiple applications to share memory resources.

Inventive Principle:
Principle #20Continuity of useful action

3Loss of time

If pre-allocation of pages is performed, then page fault critical path latency is reduced, but memory is consumed before pages are actually needed

Engineering Contradiction:
Improvepage fault latencyVSAvoidpre-allocated memory
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent applies partial action by pre-allocating only a portion of the total possible pages - specifically, a page pool of configurable size is maintained rather than pre-allocating all possible pages. This partial pre-allocation provides enough pages to handle typical page fault loads without consuming excessive memory. The page pool size can be tuned to balance between reducing page fault latency and minimizing memory consumption, allowing the system to perform excessive pre-allocation only when beneficial.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11474952B2Methods, systems, and computer readable media for performing page fault handling
Publication Date: 2022.10.18 HEWLETT PACKARD ENTERPRISE DEV LP
  • US11474952B2 patent drawing
  • US11474952B2 patent drawing
  • US11474952B2 patent drawing

AI summary

Methods, systems, and computer readable media for performing page fault handling are disclosed. According to one method, the method includes: after a translation lookaside buffer (TLB) miss associated with a virtual memory page occurs, identifying, in a page table, a page table entry (PTE) associated with the virtual memory page; determining, using a first indicator in the PTE, that the virtual memory page is not present in a main memory; determining, using a second indicator in the PTE, that the virtual memory page is associated with a valid memory address and that the virtual memory page is capable of using pre-allocated pages; obtaining, from a pre-allocation table, a page frame number associated with a pre-allocated page; and updating the PTE to indicate the page frame number.