Virtual Memory Pre-backing Using Learned Access Patterns

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer systems lack the ability to optimize virtual memory backing in real memory due to the inability to predict which pages will be needed in advance, leading to increased page faults and performance delays during application execution.

Innovation Solution

Implementing a system that uses learned data to pre-allocate and pre-back virtual memory pages in real memory based on historical memory allocation and access patterns, allowing for optimized page size determination and reduced page faults.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the RSM backs virtual pages in real memory only when they are needed (on demand), then memory usage is optimized and fragmentation is reduced, but page faults increase and performance deteriorates

Engineering Contradiction:
Improvereal memory usageVSAvoidapplication execution performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The system performs preliminary action by pre-backing virtual pages in real memory based on learned historical access patterns before they are actually needed. The processor analyzes historical data to predict which virtual pages will be accessed and backs them in advance, eliminating page faults and improving application performance while maintaining efficient memory usage.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the RSM uses large memory pages to back virtual storage, then the number of TLB entries required is reduced and performance improves, but memory fragmentation increases if the storage is not fully used

Engineering Contradiction:
Improveprocessor performanceVSAvoidmemory fragmentation
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The system applies local quality by using different page sizes for different virtual storage regions based on their specific access patterns. The learned data analysis identifies which regions benefit from large pages and which should use smaller pages, allowing the system to optimize TLB performance for accessed regions while minimizing fragmentation in regions that are not fully utilized.

Inventive Principle:
Principle #3Local quality

3Speed

If the RSM backs the first page of virtual storage immediately upon allocation, then performance is improved for the first access, but subsequent pages still cause page faults and delays

Engineering Contradiction:
Improvefirst page access speedVSAvoidtime for subsequent page faults
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The system extends preliminary action beyond just the first page by pre-backing multiple virtual pages in real memory based on learned access patterns. Instead of only backing the first page upon allocation, the system analyzes historical data to predict which subsequent pages will be needed and backs them in advance, eliminating the time loss from subsequent page faults.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10318888B2Pre-backing virtual storage using historical learned data
Publication Date: 2019.06.11 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10318888B2 patent drawing
  • US10318888B2 patent drawing
  • US10318888B2 patent drawing

AI summary

A computer system includes memory and a processor configured to manage memory allocation. Aspects include receiving a request to execute a computer program and obtaining a learned data file for the computer program, the learned data file including a history of memory allocation requests and memory access requests by the computer program. Aspects also include receiving a memory allocation request from the computer program and allocating one or more pages of a virtual memory to the computer program, wherein a size of the one or more pages is based on the learned data file. Aspects further include backing at least one of the one or more pages of the virtual memory in the real memory prior to receiving an access request for the at least one of the one or more pages based on the learned data file.