Urgency Based Arbiter for Shared Memory Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional arbiters in asynchronous computer systems face inefficiencies in allocating access to shared resources, particularly in highly parallel processing systems where multiple processes request access simultaneously, leading to suboptimal decision-making due to lack of urgency and efficiency considerations.
Innovation Solution
An arbiter that determines access to a shared resource based on urgency and efficiency terms, using in-band and out-of-band request identifiers to assess latency tolerance and resource overhead, allowing for dynamic prioritization and out-of-order request servicing to optimize memory access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If conventional arbitration schemes (predetermined priority or time-based) are used, then the arbitration logic is simple, but the access time and client read latency increase due to suboptimal decision-making
Solution Approach 1:
The arbiter dynamically adjusts priority levels based on real-time urgency terms calculated from buffer depth differences, rather than using static predetermined priorities. The urgency term changes as buffer depths change, creating a dynamic arbitration decision process that adapts to current system conditions to minimize access time and latency.
Solution Approach 2:
The system changes the parameter used for arbitration decisions from fixed priority levels or simple time-based metrics to dynamic urgency terms that are calculated from buffer depth differences. This parameter transformation allows the arbiter to make more informed decisions about which process should access the shared resource next, reducing overall access time and read latency.
2Productivity
If multiple processes request access simultaneously in highly parallel processing systems, then system throughput increases, but the arbiter decision time increases adding to access time
Solution Approach 1:
The arbiter uses feedback from buffer depth information (in-band and out-of-band identifiers) to calculate urgency terms for each requesting process. This feedback mechanism allows the arbiter to make faster, more informed decisions about which process should access the shared resource, reducing decision time even as system throughput and the number of simultaneous requests increase.
Solution Approach 2:
Processes maintain buffer depth information (in-band and out-of-band identifiers) continuously as they wait for resource access. This preliminary tracking of buffer states allows the arbiter to immediately calculate urgency terms when making arbitration decisions, rather than having to count or measure buffer depths in real-time during the decision process, thus reducing arbiter decision time.
3Device complexity
If predetermined priority schemes are used, then the arbitration mechanism is simple to implement, but high-priority processes may be starved if lower-priority processes continuously request access
Solution Approach 1:
The system changes from static predetermined priority levels to dynamic urgency terms that are calculated from buffer depth differences. This parameter transformation ensures that processes with fuller buffers (higher urgency) receive preferential treatment, preventing starvation while maintaining a relatively simple arbitration mechanism based on comparing buffer depth differences rather than complex priority management.
4Productivity
If time-based arbitration is used, then recent requests are serviced first, but this increases read latency for processes that have been waiting longer
Solution Approach 1:
The system changes the arbitration parameter from simple request time to urgency terms calculated from buffer depth differences. This allows the arbiter to consider both how long a process has been waiting and how urgent its data needs are (based on buffer depth), creating a more balanced arbitration strategy that reduces overall read latency by serving processes with higher urgency even if they requested slightly later.
Data Source
AI summary
An arbiter decides to grant access from multiple clients to a shared resource (e.g. memory) using efficiency and/or urgency terms. Urgency for a client may be determined based on an “in-band” request identifier transmitted from the client to the resource along with the request, and an “out-of-band” request identifier that is buffered by the client. A difference between the out-of-band request identifier and the in-band request identifier indicates the location of the request in the client buffer. A small difference indicates that the request is near the end of the buffer (high urgency), and a large difference indicates that the request is far back in the buffer (low urgency). Efficiency terms include metrics on resource overhead, such as time needed to switch between reading/writing data from/to memory via a shared memory bus, or bank management overhead such as time for switching between DRAM banks.


