IP Library Granted Patent US 9,753,658
Granted Patent B2
US 9,753,658 · App. 14/952,320 · Granted Sep 5, 2017

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 9,753,658
App. No.
14/952,320
Granted
Sep 5, 2017
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 (36)

1. A system for dividing and synchronizing a processing task across a plurality of processing elements comprising:

a first processing element having access to a reservation system;

a second processing element in communication with one of the first processing element or the reservation system;

the reservation system comprising a first register and a second register, the second register mirroring the first register, the reservation system configured to determine when a command can be issued to an input queue, wherein access to the second register does not modify available free space in the input queue;

computer storage storing instructions, which when executed by the second processing element:

determines, via access of the second register, when there is available space in the input queue for the first processing element to issue the command; and

wherein the first processing element receives notification regarding issuing the command.

2. The system of claim 1 , wherein access to the first register modifies available free space in the input queue.

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

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

5. The system of claim 1 , wherein the reservation system determines when a command can be issued based on a value indicative of available space in the input queue.

6. The system of claim 1 , wherein the reservation system includes a software resource shared by the first processing element and the second processing element.

7. A system for dividing and synchronizing a processing task across a plurality of processing elements comprising:

a first processing element having access to a reservation system;

at least one second processing element in communication with the first processing element;

the reservation system accessible by both the first processing element and the at least one second processing element, the reservation system comprising a first register and a second register, the second register mirroring the first register, the reservation system configured to determine when a command can be issued to an input queue, wherein access to the second register does not modify available free space in the input queue;

computer storage storing instructions, which when executed by the second processing element:

determines, via access of the second register, when there is available space in the input queue for the first processing element to issue the command; and

wherein the first processing element receives notification regarding issuing the command.

8. The system of claim 7 , wherein access to the first register modifies available free space in the input queue.

9. The system of claim 8 , wherein the system is part of a storage area network (SAN) controller.

10. The system of claim 7 , wherein the system is part of a network attached storage (NAS) controller.

11. The system of claim 7 , wherein the reservation system determines when a command can be issued based on a value indicative of available space in the input queue.

12. The system of claim 7 , wherein the reservation system includes a software resource shared by the first processing element and the second processing element.

13. The system of claim 7 , wherein the input queue is implemented in hardware.

14. A method for dividing and synchronizing a processing task across a plurality of processing elements, comprising:

detecting, at a first processing element, a command to be issued, the command associated with a second processing element;

determining if there is available space in an input queue by accessing a first register, the accessing of the first register does not modify available free space in the input queue;

issuing a reservation for the command responsive to the determining, wherein the reservation is accomplished through accessing a second register, the second register mirroring the first register; and

issuing the command from the second processing element responsive to determining the reservation has issued.

15. The method of claim 14 , wherein the issuing the reservation is achieved through the first processing element.

16. The method of claim 14 , wherein accessing the second register modifies available free space in the input queue.

17. The method of claim 14 , wherein determining the reservation has issued is achieved through one of a notification pushed to the second processing element or the second processing element detecting the issuing of the reservation.

18. The method of claim 14 , wherein the method is executed through a network attached storage controller.

19. The method of claim 14 , wherein determining the reservation has issued includes receiving a response from an output queue coupled to the input queue.

20. The method of claim 14 , wherein the determining if there is available space is based on a value in the first register.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2021
From: CONCURRENT VENTURES, LLC
To: XTREAMEDGE, INC.
Reel/Frame 055136/0891 →
Continuity (3)
Continuation 14585003 · Dec 29, 2014
Continuation 14099844 · Dec 6, 2013
Related Publication 20160077754A1 · Mar 17, 2016