Virtualization-Aware Prefetcher Using VM Physical Address Mapping
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
3Productivity
If pre-fetching is performed without differentiating address types, then power consumption increases and interference with other data requests occurs
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.
Data Source
Figure 1
Figure 2
Figure 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.