System and method for dividing and synchronizing a processing task across multiple processing elements/processors in hardware

Patent No. US8924596 (titled "System and method for dividing and synchronizing a processing task across multiple processing elements/processors in hardware") on Dec 6, 2013. The application was issued on Dec 30, 2014.

What is this patent about?

’596 is related to the field of load distribution and synchronization in multi-processor environments. Specifically, it addresses the overhead and latency issues associated with managing shared hardware resources, such as command queues, when multiple processing cores or disparate processors must coordinate their activities without overfilling buffers.

The underlying idea behind ’596 is to replace software-based synchronization primitives, like semaphores or mutexes, with a hardware-managed reservation register. By moving the tracking of available queue space into a dedicated hardware register that automatically decrements upon being read, the system eliminates the processing cycles typically wasted on software locks and shared memory variable updates.

The claims of ’596 focus on a system architecture where a reservation register acts as a gatekeeper for an input queue. When a processing element reads this register to check for space, the hardware performs an atomic decrement of the available count. The claims cover various configurations where secondary processors either notify a primary processor to issue a command or issue the command directly to the hardware queue on the primary's behalf once space is secured.

In practice, the invention functions by decoupling the act of reserving space from the act of submitting a command. When a processor reads the reservation register, it receives the amount of free space existing immediately prior to the read; if the value is sufficient, the hardware automatically subtracts the requested amount. This ensures that even if there is a delay between the reservation and the actual command submission, the space is guaranteed to be available, preventing queue overflow without requiring constant software polling.

This approach differs from prior solutions by shifting the burden of mutual exclusion from the operating system to the hardware logic. Unlike traditional methods that use a shared variable in memory, this system uses internal hardware arbitration to ensure that multiple simultaneous reservation attempts do not conflict. Furthermore, the hardware automatically restores the count when a command is consumed from the queue, providing a self-managing flow control mechanism that is transparent to the software layer.

How does this patent fit in bigger picture?

Technical Landscape

In the early 2010s when ’596 was filed, multi-core and multi-processor architectures were standard, at a time when the distribution of computational tasks across multiple processing elements was typically implemented using software-based synchronization primitives. When systems commonly relied on semaphores, mutexes, or shared memory variables to manage resource availability and prevent queue overflow, the resulting software overhead and memory latency made high-speed command synchronization non-trivial. Engineering constraints of the era often forced a trade-off between the complexity of load distribution and the need to maintain shallow command queues to minimize the latency between command issuance and execution.

Prosecution Position

The disclosed invention achieves a technical advancement by shifting the synchronization logic from software-based memory locks to a dedicated hardware-implemented reservation register accessible by multiple processing elements. This architectural shift enables real-time tracking of available space in hardware input and output queues without the processing overhead associated with traditional mutexes or semaphores. By integrating a hardware reservation register that stores values indicative of queue capacity, the system allows secondary processing elements to autonomously determine command readiness and coordinate issuance. This configuration overcomes the constraint of high processing loads during command determination, enabling efficient task division while maintaining low-latency synchronization across a plurality of hardware processing elements.

Claims

The patent contains a total of 18 claims, with claims 1, 7, and 13 serving as the independent claims. These independent claims focus on a hardware-based system for synchronizing processing tasks across multiple elements using hardware input and output queues and a shared reservation register that tracks available queue space to manage command issuance. The dependent claims serve to further define the system by specifying buffer types such as FIFO, identifying the system's integration into storage area network or network attached storage controllers, detailing the decrementing of reservation values, and describing the role of additional processing elements in executing commands and responding to the output queue.

Key Claim Terms New

Definitions of key terms used in the patent claims.

Term (Source)Support for SpecificationInterpretation
Available space
(Claim 1, Claim 7, Claim 13)
The reservation register stores a value indicative of available space in a command queue. The system determines when the read value indicates available space in the input queue for the processing element to issue a command. This ensures that module command queues (FIFOs) are not overfilled.The remaining capacity within the hardware input queue that determines whether a new command can be safely issued without causing an overflow.
First processing element
(Claim 1, Claim 7, Claim 13)
The first processing element has access to the input queue and the output queue. It can receive notification from the second processing element to issue a command, or it can send a command to the second processing element to be issued on its behalf. It receives a response corresponding to the command from the output queue.A primary processor, core, or circuit that initiates a command and ultimately receives the corresponding response from the output queue.
Input queue
(Claim 1, Claim 7, Claim 13)
The input queue is implemented in hardware and is the destination for issued commands. The system determines when there is available space in the input queue before a command is issued. The first processing element has access to the input queue to issue commands or receive notifications regarding them.A hardware-implemented buffer or FIFO used to receive and hold commands issued by or on behalf of a processing element for execution.
Output queue
(Claim 1, Claim 7, Claim 13)
The output queue is implemented in hardware and provides a response corresponding to the command. The first processing element (or second processing element in some embodiments) receives a response corresponding to the command from the output queue. It functions as the return path for processing results after a command has been issued to the input queue.A hardware-implemented buffer or FIFO where responses corresponding to executed commands are placed for retrieval by a processing element.
Processing element
(Claim 1, Claim 7, Claim 13)
Processing elements can include processors, processor cores, or custom processing circuitry. The invention divides and synchronizes a processing task across a plurality of these elements. A first processing element may issue commands while a second processing element offloads the task of checking queue availability.A hardware component, such as a processor, processor core, or custom circuitry, responsible for issuing commands or managing the distribution of processing tasks.
Reservation register
(Claim 1, Claim 7, Claim 13)
The reservation register is implemented in hardware and stores a value indicative of available space in a command queue. It is accessible by both the first processing element and the at least second processing element. This hardware implementation aims to improve upon prior art synchronization performed using software techniques like semaphores and mutexes.A hardware-based register that stores a value representing the current available capacity of a command or input queue, shared between multiple processing elements to facilitate synchronization without software semaphores.
Second processing element
(Claim 1, Claim 7, Claim 13)
The at least one second processing element is in communication with the first processing element and/or the queues. It executes instructions to access the reservation register and read the stored value to determine available space. It either notifies the first processing element to issue a command or issues the command to the input queue on behalf of the first processing element.An auxiliary processor, core, or custom circuitry that manages the synchronization of command issuance by monitoring the reservation register.

Litigation Cases New

US Latest litigation cases involving this patent.

Case NumberFiling DateTitle
4:25-cv-09567Nov 6, 2025Concurrent Ventures, LLC v. Advanced Micro Devices, Inc.
1:24-cv-00335Mar 29, 2024Concurrent Ventures, Llc V. Advanced Micro Devices, Inc.

Patent Family

Patent Family

File Wrapper

The dossier documents provide a comprehensive record of the patent's prosecution history - including filings, correspondence, and decisions made by patent offices - and are crucial for understanding the patent's legal journey and any challenges it may have faced during examination.

  • Get instant alerts for new documents

US8924596

Application Number
US14099844A
Filing Date
Dec 6, 2013
Publication Date
Dec 30, 2014
External Links
Slate, USPTO , Google Patents