IP Library Granted Patent US 10,359,956
Granted Patent B2
US 10,359,956 · App. 15/694,468 · Granted Jul 23, 2019

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

Inventors: Jesse D. Beeson (Johns Creek, GA); Jesse B. Yates (Atlanta, GA)
Assignee: CONCURRENT VENTURES, LLC
G06F3/0619G06F3/061G06F3/065G06F3/067G06F3/0644G06F3/0659G06F9/52G06F2209/548
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,359,956
App. No.
15/694,468
Granted
Jul 23, 2019
Kind
B2
Abstract

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.

Claims (15)

1. A system for distributing a processing task across a plurality of processing elements comprising:

a first processing element having access to an input queue and an output queue;

a first counter resource storing a value indicative of available space in the input queue, wherein the available space includes reserved space not yet consumed by an issued command;

a second processing element in communication with the first processing element, the second processing element configurable to

determine when a read of the value in the first counter resource indicates available space in the input queue for the first processing element to issue a command, wherein the value in the first counter is modified responsive to the determining; and

notify the first processing element to issue the command to the input queue, wherein the first processing element receives a response corresponding to the command from the output queue.

2. The system of claim 1 , wherein the input queue is a first in first out (FIFO) buffer.

3. The system of claim 1 , wherein the system is integrated into a storage area network (SAN) controller.

4. The system of claim 1 , wherein the system is integrated into a network attached storage (NAS) controller.

5. The system of claim 1 , wherein the system includes a second counter resource mirroring the first counter resource, wherein access to the second counter resource does not modify any value indicative of available space in the input queue.

6. The system of claim 1 , wherein at least one third processing element executes the command and notifies the output queue to issue the response.

7. The system of claim 1 , wherein the one of first processing element or the second processing element is a programmable logic device.

8. The system of claim 1 , wherein the first processing element and the second processing element communicate through a shared memory.

9. The system of claim 1 , wherein the system allows for a variable time delay or a fixed time delay between issuing a reservation for space in the input queue and issuing the command to the input queue.

10. The system of claim 1 , wherein all arbitration and mutual exclusion tasks between processing elements are handled in hardware.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2021
From: CONCURRENT VENTURES, LLC
To: XTREAMEDGE, INC.
Reel/Frame 055136/0891 →
Continuity (4)
Continuation 14952320 · Nov 25, 2015
Continuation 14585003 · Dec 29, 2014
Continuation 14099844 · Dec 6, 2013
Related Publication 20170364292A1 · Dec 21, 2017