Store Coalescing Buffer Pseudo Out-of-Order Commit
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In processing systems, especially those following the x86 instruction set architecture, store operations to the data cache must be globally visible in program order, leading to performance penalties when a store operation encounters issues like bank conflicts, requiring cancellation of not only the blocked store but also younger stores.
Innovation Solution
The implementation of a store coalescing buffer (SCB) with logic to hide out-of-order store commits, allowing younger stores to complete while an older store retries, by locking cache lines in an exclusive state and using broadcast mechanisms to ensure that older data does not overwrite younger data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If store operations are committed in strict program order to maintain global visibility, then correctness is ensured, but performance deteriorates when bank conflicts occur requiring cancellation of multiple stores
Solution Approach 1:
The patent implements dynamic store commit ordering where the store commit order is determined at runtime based on readiness status rather than being fixed by program order. The store coalescing buffer dynamically selects which stores to commit in each cycle based on which stores are ready, allowing the system to adapt between in-order and out-of-order committing depending on the situation
Solution Approach 2:
The store coalescing buffer acts as an intermediary between the store queue and the data cache. It receives stores in program order from the store queue, holds them temporarily, and then commits them to the data cache in an optimized order. This intermediary layer decouples the strict program order requirement from the actual commit timing, enabling performance optimization while maintaining correctness
2Productivity
If younger stores are allowed to complete before older stores, then processing efficiency improves, but data correctness may be compromised due to potential overwriting
Solution Approach 1:
The patent implements a feedback mechanism where a broadcast message is sent back to the store coalescing buffer when a store commit is detected. This feedback allows the buffer to monitor which stores have been committed and to what addresses, enabling it to make informed decisions about subsequent store commits while preventing incorrect overwrites
Solution Approach 2:
The store coalescing buffer performs preliminary actions by coalescing multiple stores to the same address into a single commit operation. By grouping stores that target the same memory location before committing, the buffer ensures that only one store per unique address is committed at a time, preventing younger stores from overwriting older stores to the same location
Data Source
AI summary
A buffer of a processing system allows younger stores to write to a data cache before an older store completes its write operation to the data cache while maintaining the appearance of committing stores in program order. To maintain the appearance that a blocked store completed its write operation to the data cache, the processing system cancels the blocked store while “locking” the cache line in the data cache in an exclusive state to which the blocked store is attempting to write. The data cache negatively acknowledges any probes to the cache line until the blocked store has completed the write operation. The buffer thus decouples completing the write operation from global observability of the write operation.


