Asynchronous Prefetching of Sharable Memory Pages

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The performance of computer processors is hindered by limitations in available random access memory (RAM), which is costly to increase, necessitating alternative strategies to optimize memory usage.

Innovation Solution

A memory manager identifies and records sharable memory pages that can be swapped between processes, allowing asynchronous prefetching of these pages while a process is running, thereby optimizing memory allocation and reducing bottlenecks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the amount of RAM is increased to reduce memory bottlenecks, then system performance is improved, but cost increases

Engineering Contradiction:
Improvesystem performanceVSAvoidamount of RAM
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system performs preliminary actions by identifying and recording candidate sharable memory pages before they are needed, and asynchronously prefetching them into memory in advance. This allows the memory manager to have pages ready before processes need them, reducing memory bottlenecks without requiring additional RAM capacity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of sharable memory pages in memory for multiple processes to share. Instead of each process requiring its own private copy, the memory manager maintains shared copies that can be accessed by multiple processes, effectively increasing available memory resources without physically adding more RAM.

Inventive Principle:
Principle #26Copying

2Quantity of substance

If memory pages are swapped out to free RAM for other processes, then memory availability is improved, but process resumption time increases

Engineering Contradiction:
Improvememory availabilityVSAvoidprocess resumption time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system performs preliminary action by asynchronously prefetching candidate sharable memory pages into memory before the process needs them. The memory manager identifies pages that will be needed and loads them in advance, so when the process resumes, the pages are already available in memory rather than needing to be swapped in at that moment.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system maintains continuity of useful action by performing asynchronous prefetching operations that continue in the background while processes run. The memory manager continuously monitors and prefetches pages without blocking process execution, ensuring that memory operations proceed continuously without interrupting the main process flow.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If sharable memory pages are repurposed after being swapped out, then memory utilization is improved, but page sharing reliability decreases

Engineering Contradiction:
Improvememory utilizationVSAvoidpage sharing reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary action by recording candidate sharable memory pages in a data structure before they are swapped out or repurposed. This record-keeping mechanism ensures that the system tracks which pages are sharable and their associations with processes, allowing reliable reconstruction of sharing relationships even after pages are repurposed or swapped.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where the memory manager continuously monitors memory page usage and updates the record of candidate sharable pages. When pages are accessed or modified, the system receives feedback and adjusts its prefetching and sharing decisions accordingly, maintaining reliability through adaptive management of shared pages.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9684625B2Asynchronously prefetching sharable memory pages
Publication Date: 2017.06.20 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9684625B2 patent drawing
  • US9684625B2 patent drawing
  • US9684625B2 patent drawing

AI summary

When a process is swapped out of memory, a record of the sharable memory pages of the process is maintained. The sharable memory pages can then be repurposed. When the process is subsequently swapped back into memory, concurrently with the process running the sharable memory pages of the process are prefetched. If during this prefetching the process requests a memory page that is not currently in physical memory, a high priority I/O request is issued for that memory page. The high priority I/O request is placed at the front of an I/O queue, so the high priority I/O request is processed before the pending prefetch requests.