Store Drain Merge Mechanism for Power-Efficient Load Wake-Up
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In out-of-order processor systems, the hibernation process for loads waiting on stores is expensive and power-consuming, and existing solutions that merge data stores to improve performance require additional hardware resources, such as a second compare port, which increases costs and power consumption.
Innovation Solution
Implementing a store drain merge operation that wakes up loads based on their dependent stores without adding a second compare port by using a circular allocation of store tags, grouping stores as even and odd pairs, and disabling the least significant bit for double write scenarios, allowing simultaneous wake-up of loads associated with adjacent store tags.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a second compare port is added to wake up loads sleeping on merged store tags, then load wake-up capability is improved, but hardware cost and power consumption increase
Solution Approach 1:
The patent merges the wake-up functionality for both even and odd store tags into a single compare port. Instead of having separate compare ports for even and odd tags, the invention combines their comparison operations into one unified compare unit, thereby reducing hardware resources while maintaining the ability to wake up loads for both merged store tags.
Solution Approach 2:
The single compare port is designed to handle multiple functions: it can compare against both even store tags and odd store tags sequentially or selectively. This multi-functional design allows the same hardware resource to serve multiple purposes, eliminating the need for dedicated compare ports for each tag type.
2Reliability
If a second compare port is added to wake up loads sleeping on merged store tags, then load wake-up capability is improved, but power consumption increases
Solution Approach 1:
The patent merges the wake-up functionality for both even and odd store tags into a single compare port. Instead of having separate compare ports for even and odd tags, the invention combines their comparison operations into one unified compare unit, thereby reducing hardware resources while maintaining the ability to wake up loads for both merged store tags.
Solution Approach 2:
The invention extracts and eliminates the redundant second compare port from the system. By demonstrating that a single compare port can suffice for both even and odd tag comparisons through clever resource sharing and timing, the design removes unnecessary hardware that would otherwise consume power.
3Device complexity
If loads remain in hibernation waiting on merged store tags, then hardware resources are saved, but processing time is lost
Solution Approach 1:
The patent implements preliminary wake-up signaling by setting the wake-up bit in advance when a store tag merge is detected. This allows the load queue to be notified proactively that a merged store tag comparison will occur, enabling loads to be prepared for wake-up without remaining in prolonged hibernation, thus reducing processing delays.
Solution Approach 2:
The system uses feedback mechanisms where the completion status of store operations is monitored and used to trigger appropriate wake-up actions. When a merged store tag becomes ready, the system provides feedback signals to the load queue, enabling timely wake-up of dependent loads without requiring continuous polling or extended waiting periods.
Data Source
AI summary
A computer system, includes a store queue that holds store entries and a load queue that holds load entries sleeping on a store entry. A processor detects a store drain merge operation call and generates a pair of store tags comprising a first store tag corresponding to a first store entry to be drained and a second store tag corresponding to a second store entry to be drained. The processor determines the pair of store tags an even-type store tag or an odd-type store tag. The processor disables the odd store tag included in the even-type store tag pair when detecting the even-type store tag pair, and wakes up a first load entry dependent on the even store tag and a second load entry dependent on the odd store tag based on the even store tag included in the even-type store tag pair while the odd store tag is disabled.


