Page Preloading via Control Flow Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional computing systems face performance issues due to excessive overhead from accessing auxiliary storage devices at low speeds, leading to a high number of page faults when loading program code, as the operating system cannot accurately predict which code pages are needed next.

Innovation Solution

A method and system for preloading pages using control flow, where preload page information is extracted and stored in non-volatile memory, allowing the demand paging module to preload pages based on profiling information, thereby reducing page faults and increasing the hit ratio of preloaded pages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the operating system loads only essential code in main memory, then the memory capacity is efficiently utilized, but page faults increase and system performance deteriorates

Engineering Contradiction:
Improvememory capacity utilizationVSAvoidsystem performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The invention extracts control flow information from program code and uses it to preload frequently accessed code pages into main memory before they are actually needed. This preliminary action reduces page faults and improves system performance while maintaining efficient memory capacity utilization.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention uses control flow information extracted from program code as feedback to guide the preload process. By analyzing branch instructions and target addresses, the system can intelligently predict which pages will be needed next and preload them accordingly, creating a feedback loop that optimizes memory loading.

Inventive Principle:
Principle #23Feedback

2Ease of operation

If the demand paging module preloads code based on code locality, then the preload process is simple, but the hit ratio of preloaded pages is low and program execution time increases

Engineering Contradiction:
Improvepreload process simplicityVSAvoidprogram execution time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The invention introduces control flow information as an intermediary between the demand paging module and the code pages. This intermediary provides accurate prediction about which pages will be needed next, improving the hit ratio of preloaded pages and reducing program execution time without significantly complicating the preload process.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If auxiliary storage device is accessed frequently, then all program code can be loaded into main memory, but the low access speed causes excessive overhead and reduces system performance

Engineering Contradiction:
Improveprogram code loading completenessVSAvoidaccess overhead
Core Design Contradiction:
Quantity of substanceVSLoss of energy

Solution Approach 1:

Instead of loading all program code into main memory, the invention uses control flow information to preload only the frequently accessed pages that are likely to be needed soon. This selective preliminary action reduces the number of auxiliary storage accesses and minimizes access overhead while still improving system performance.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8732413B2Method and system for preloading page using control flow
Publication Date: 2014.05.20 SAMSUNG ELECTRONICS CO LTD
  • US8732413B2 patent drawing
  • US8732413B2 patent drawing
  • US8732413B2 patent drawing

AI summary

A method and system for page preloading using a control flow are provided. The method includes extracting preload page information from one or more pages in a first program code, and generating a second program code including the first program code and the extracted preload page information. The second program code is stored in non-volatile memory. When loading a page from the second program code stored in the non-volatile memory into main memory, preloading one or more pages from the non-volatile memory based on the preload page information stored in the loaded page.