Delayed Cache Utilization for Power-Efficient Memory Subsystems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing memory subsystems consume significant power and clock cycles when searching for and flushing valid cache lines during cache deactivation, as they rely on tracking hardware outside the cache to locate valid cache lines, which is inefficient, especially when valid lines are not spread widely over the cache.
Innovation Solution
Implementing a delayed caching technique where a threshold count of lower-level cache victims is sent directly to system memory instead of being stored in the higher-level cache, allowing the higher-level cache to remain empty and reducing the need for power-intensive flushing procedures by using a flush table to manage cache line locations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If tracking hardware is used outside the cache to track validity bits, then the search for valid cache lines is accelerated, but significant power and clock cycles are still consumed during cache deactivation
Solution Approach 1:
The system performs preliminary actions by proactively flushing cache lines to memory before deactivation is needed. A counter tracks the number of cache lines flushed since activation, and when the threshold is reached, the cache is deactivated without needing to search for valid lines, thus avoiding the power-consuming search process while maintaining speed benefits of tracking hardware
Solution Approach 2:
The cache subsystem serves itself by using its own tracking hardware to monitor and manage its own state. The counter and threshold mechanism allow the cache to autonomously determine when to flush and deactivate, eliminating the need for external intervention and reducing overall power consumption during deactivation
2Quantity of substance
If valid cache lines are spread widely over the cache, then more data can be cached, but the search for valid lines during deactivation becomes more time-consuming and power-intensive
Solution Approach 1:
The system performs preliminary flushing of cache lines to memory before deactivation is needed. By maintaining a counter that tracks the number of flushed lines and comparing it to a threshold, the system proactively manages cache content to ensure that when deactivation occurs, the search time and power consumption are minimized, regardless of how many valid lines were previously cached
Solution Approach 2:
The system changes the parameter of cache line management by introducing a threshold-based counter mechanism. This parameter change allows the system to dynamically adjust cache behavior based on the number of flushed lines, transforming the static cache management problem into a dynamic one that adapts to usage patterns and reduces deactivation time
3Use of energy by moving object
If the cache is deactivated quickly by avoiding flushing, then power consumption is reduced, but valid cache lines may remain in the cache
Solution Approach 1:
The system performs preliminary flushing of cache lines to memory before deactivation is needed. By maintaining a counter that tracks the number of flushed lines and comparing it to a threshold, the system proactively manages cache content to ensure that when deactivation occurs, the search time and power consumption are minimized, regardless of how many valid lines were previously cached
Solution Approach 2:
The system uses feedback from the counter mechanism to determine when to flush cache lines. The counter provides continuous feedback on the number of flushed lines, allowing the system to make informed decisions about when to deactivate the cache, thus balancing power consumption with cache coherence requirements
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method comprising: counting lower-level cache victims evicted from one or more lower-level caches; while a count of the lower-level cache victims is not greater than a threshold number, storing each lower-level cache victim of the lower-level cache victims to memory; and when the count of the lower-level cache victims is greater than the threshold number, storing one or more lower-level cache victims evicted after the threshold number was exceeded to a higher-level cache.