On-the-fly Traffic Control for Memory Channel Arbitration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional arbitration schemes in memory channel access, such as weighted-fair algorithms, fail to optimize page hit rates and handle re-scheduling and out-of-order issues effectively when multiple channels access memory concurrently, particularly in systems with DRAM devices.
Innovation Solution
An on-the-fly traffic control scheme that uses address back-to-back counters and contiguous window settings to prioritize channels with high back-to-back access frequencies, integrating this approach with existing bandwidth allocation algorithms to enhance memory channel performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If weighted-fair arbitration algorithm is used to share memory bandwidth among multiple ports, then bandwidth allocation is achieved, but page hit rate deteriorates due to re-scheduling and out of order issues
Solution Approach 1:
The patent implements dynamic arbitration weighting where the weight of each channel is not fixed but changes based on real-time access patterns. Channels with contiguous address accesses receive higher weights dynamically, allowing the system to adapt to varying memory access patterns and optimize page hit rates while maintaining bandwidth allocation.
Solution Approach 2:
The patent introduces feedback mechanisms where the arbiter monitors actual memory access patterns and uses this information to adjust channel weights. The system feeds back information about contiguous accesses and page faults to modify the arbitration decisions, creating a closed-loop system that optimizes both bandwidth utilization and page hit rates.
2Quantity of substance
If conventional arbitration schemes are used, then bandwidth requirements are met, but processing overhead increases due to re-scheduling operations
Solution Approach 1:
The patent performs preliminary actions by pre-calculating and maintaining sorted lists of channels based on their access patterns. The arbiter proactively identifies channels with contiguous accesses and prepares them for priority service, reducing the need for complex re-scheduling operations during runtime and lowering processing overhead.
Solution Approach 2:
The patent changes the parameters used in arbitration decisions from static bandwidth weights to dynamic parameters that include contiguous access counts and page fault rates. This parameter transformation allows the system to make more informed arbitration decisions that reduce re-scheduling operations and lower processing overhead while maintaining bandwidth allocation goals.
3Device complexity
If address locality is not considered in arbitration, then simple bandwidth sharing is achieved, but memory access efficiency deteriorates
Solution Approach 1:
The patent applies local quality by treating different channels differently based on their specific access patterns. Instead of uniform arbitration, the system identifies channels with contiguous address accesses and applies specialized handling to these local cases, improving memory access efficiency for such channels while maintaining simple arbitration for other cases.
Solution Approach 2:
The patent segments the arbitration process into distinct phases: monitoring access patterns, identifying contiguous access sequences, calculating channel weights based on locality metrics, and making arbitration decisions. This segmentation allows the system to handle address locality considerations without overwhelming complexity, breaking down the arbitration algorithm into manageable steps that improve memory access efficiency.
Data Source
AI summary
The present invention discloses a method of arbitrating among a plurality of channels to access a resource, comprising the steps of: providing each channel an address back-to-back counter; assigning each address back-to-back counter an initial value and a pre-defined threshold, wherein the address back-to-back counter is updated according to the activities of back-to-back access to the resource by the channel; and providing each channel a contiguous window setting to define a number of contiguous times for the channel to access the resource; wherein a channel being served is to be served for contiguous times defined by the contiguous window setting of the channel if the address back-to-back counter value of the channel is higher than the pre-defined threshold of the channel.


