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.
’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.
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.
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.
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.
Definitions of key terms used in the patent claims.
US Latest litigation cases involving this patent.

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