Hardware Reservation Register for Command Queue Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face challenges in efficiently distributing and synchronizing processing loads across multiple processing elements due to high processing overhead from software-based synchronization techniques, such as semaphores and mutexes, which can lead to overfilled command queues and increased time from command issuance to execution.

Innovation Solution

A hardware-based system utilizing a reservation register to manage available space in command queues, allowing processing elements to reserve space before issuing commands, thereby reducing software overhead and ensuring synchronization without queue overflow.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software techniques (semaphores and mutexes) are used for synchronization among multiple processing elements, then queue overflow can be prevented, but processing time increases and synchronization overhead increases

Engineering Contradiction:
Improvequeue overflow preventionVSAvoidsynchronization time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent replaces software-based synchronization mechanisms (semaphores and mutexes) with a hardware-based arbitration circuit. The arbitration circuit directly monitors command queue status and automatically grants command issuance rights to processing elements, eliminating the need for software synchronization overhead while maintaining queue overflow prevention.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent introduces an intermediary arbitration circuit that sits between multiple processing elements and the command queue. This arbitration mechanism mediates access requests from multiple processing elements, granting permission to issue commands only when the queue has available space, thus preventing overflow without requiring software intervention.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If processing load determination is distributed to multiple processing elements, then processing throughput increases, but synchronization complexity increases and queue management becomes more difficult

Engineering Contradiction:
Improveprocessing throughputVSAvoidsynchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the synchronization functions of multiple processing elements into a single centralized arbitration circuit. While multiple processing elements can independently determine commands and attempt to issue them, the arbitration circuit consolidates the coordination of these elements, managing queue access rights centrally and simplifying the overall synchronization complexity.

Inventive Principle:
Principle #5Merging (Combining)

3Speed

If command queue depth is kept shallow to minimize command issue to execution time, then latency is reduced, but queue capacity is limited and processing throughput may be constrained

Engineering Contradiction:
Improvecommand execution latencyVSAvoidprocessing throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent implements dynamic queue depth management where the command queue depth can be adjusted based on system conditions. The arbitration circuit monitors queue status and dynamically controls command issuance permissions, allowing the system to optimize between shallow queue operation (for low latency) and deeper queue utilization (for high throughput) depending on current processing demands and queue occupancy.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10359956B2System and method for dividing and synchronizing a processing task across multiple processing elements/processors in hardware
Publication Date: 2019.07.23 XTREAMEDGE INC
  • US10359956B2 patent drawing
  • US10359956B2 patent drawing
  • US10359956B2 patent drawing

AI summary

A shared counter resource, such as a register, is disclosed in the hardware, where the register representing how much free space there is in the command queue is accessible to one or more processing elements. When a processing element reads the “reservation” register, the hardware automatically decrements the available free space by a preconfigured amount (e.g., 1) and returns the value of the free space immediately prior to the read/reservation. If the read returns 0 (or a number less than the preconfigured amount), there was insufficient free space to satisfy the request. In the event there was insufficient space to satisfy the request the reservation register may be configured to reserve however much space was available or to not reserve any space at all. Any number of processing elements may read these registers and various scenarios are described where the input and output queues are accessible via various processing elements.