Urgency Based Arbiter for Shared Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvearbitration logic complexityVSAvoidaccess time and read latency
Core Design Contradiction:
Device complexityVSLoss of time

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvesystem throughputVSAvoidarbiter decision time
Core Design Contradiction:
ProductivityVSLoss of 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.

Inventive Principle:
Principle #23Feedback

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvearbitration mechanism simplicityVSAvoidprocess access guarantee
Core Design Contradiction:
Device complexityVSReliability

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improverequest servicing speedVSAvoidread latency
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7882292B1Urgency based arbiter
Publication Date: 2011.02.01 NVIDIA CORP
  • US7882292B1 patent drawing
  • US7882292B1 patent drawing
  • US7882292B1 patent drawing

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.