Cache Memory Allocation Using Page-Level Attributes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional caches lack the ability to differentiate between related streams of memory requests, leading to inefficient resource allocation and increased power consumption in systems, particularly in mobile devices where cache hits are reduced and battery life is affected.
Innovation Solution
Implementing a caching policy that utilizes page-level attributes to identify and allocate cache resources to specific streams of memory requests, such as instructions and data streams, thereby reducing competition for resources and optimizing cache performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of energy
If traditional caches are used without stream differentiation, then device complexity is reduced, but cache hit rate decreases and power consumption increases
Solution Approach 1:
The cache is segmented into multiple independent caches, each dedicated to a specific stream of memory requests. The cache controller divides incoming memory requests into different streams based on characteristics such as address patterns or source identification, and routes each stream to its corresponding dedicated cache. This segmentation eliminates competition between unrelated data requests for the same cache resources, thereby increasing cache hit rates and reducing power consumption without requiring complex replacement policies.
2Productivity
If caches allocate resources based on address ranges or client identity, then allocation is simple, but unrelated data streams compete for the same cache resources reducing hit rates
Solution Approach 1:
The cache system is divided into multiple independent caches, each serving a specific stream of memory requests. The segmentation is based on stream identification rather than address ranges or client identity, allowing unrelated data streams to be separated even when they access overlapping memory regions. This increases cache hit rates by ensuring that each cache contains only relevant data for its designated stream.
Solution Approach 2:
The cache allocation mechanism changes the basis for resource allocation from static parameters (address ranges, client identity) to dynamic stream characteristics. The cache controller monitors memory requests and identifies streams based on patterns such as sequential access, stride patterns, or temporal locality. This parameter change enables more intelligent allocation that adapts to actual data access patterns, improving cache effectiveness without significantly increasing hardware complexity.
Data Source
AI summary
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for allocating cache resources according to page-level attribute values. In one implementation, the system includes one or more integrated client devices and a cache. Each client device is configured to generate at least a memory request. Each memory request has a respective physical address and a respective page descriptor of a page to which the physical address belongs. The cache is configured to cache memory requests for each of the one or more integrated client devices. The cache comprises a cache memory having multiple ways. The cache is configured to distinguish different memory requests using page-level attributes of respective page descriptors of the memory requests, and to allocate different portions of the cache memory to different respective memory requests.


