Virtualization-Aware Prefetcher Using VM Physical Address Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing pre-fetching systems in processors often rely on hardware mechanisms that do not effectively differentiate between virtual machines and native applications, leading to inefficient data pre-fetching and potential interference with other data requests.

Innovation Solution

A pre-fetcher system that uses virtual machine physical addresses to determine which pages to pre-fetch, employing address mapping to translate virtual machine addresses to device physical addresses, allowing for targeted and efficient data pre-fetching for virtual machines and native applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a hardware pre-fetcher uses physical addresses to determine data to pre-fetch, then pre-fetching efficiency is improved, but in virtualized systems it cannot differentiate between virtual machines and native applications leading to interference with other data requests

Engineering Contradiction:
Improvepre-fetching efficiencyVSAvoidability to differentiate between virtual machines and native applications
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The pre-fetcher is segmented into multiple independent pre-fetchers, each dedicated to a specific virtual machine or native application. Each pre-fetcher maintains separate address buffers and pre-fetch queues, allowing them to operate independently without interfering with each other. This segmentation enables the system to handle multiple virtual machines and native applications simultaneously while maintaining individual pre-fetching efficiency for each.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from using only physical addresses to a multi-dimensional addressing scheme that includes virtual machine identifiers and address type flags. This additional dimension allows the pre-fetcher to distinguish between virtual machine memory requests and native application requests, enabling differentiated pre-fetching strategies for different workloads while maintaining physical address-based pre-fetching efficiency.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Device complexity

If a single pre-fetcher serves multiple virtual machines and native applications, then device complexity is reduced, but pre-fetching accuracy decreases due to inability to apply different algorithms

Engineering Contradiction:
Improvenumber of pre-fetchersVSAvoidpre-fetching accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The pre-fetcher system implements dynamic configuration where pre-fetching algorithms and parameters can be adjusted based on the workload type. Each pre-fetcher can dynamically select from multiple pre-fetching algorithms (e.g., stream pre-fetching, sequential pre-fetching, random pre-fetching) based on the characteristics of the virtual machine or native application it serves. This dynamic adaptability maintains high pre-fetching accuracy while avoiding the need for static, overly complex hardware configurations.

Inventive Principle:
Principle #15Dynamics

3Productivity

If pre-fetching is performed without differentiating address types, then power consumption increases and interference with other data requests occurs

Engineering Contradiction:
Improvedata request throughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary classification of address requests to determine whether they originate from virtual machines or native applications before initiating pre-fetching operations. By identifying the address type in advance, the system can selectively enable or disable pre-fetching for different request types, preventing unnecessary pre-fetching operations that would consume power and potentially interfere with other data requests. This preliminary discrimination action avoids the harmful side effects of indiscriminate pre-fetching.

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentEP3283966B1Virtualization-aware prefetching
Publication Date: 2019.11.27 GOOGLE LLC
  • EP3283966B1 patent drawingFigure 1
  • EP3283966B1 patent drawingFigure 2
  • EP3283966B1 patent drawingFigure 3

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for pre-fetching content. One of the systems includes a pre-fetcher configured to perform operations including determining, for a virtual machine executing on a device and using a first virtual machine physical address associated with the virtual machine, a second virtual machine physical address for data to pre-fetch for the execution of the virtual machine on the device, determining, using the second virtual machine physical address and an address mapping that associates virtual machine physical addresses for the virtual machine with device physical addresses for the device, a device physical address for the data, and requesting the data from a memory using the device physical address.