IP Library Granted Patent US 10,659,396
Granted Patent B2
US 10,659,396 · App. 16/021,840 · Granted May 19, 2020

Joining data within a reconfigurable fabric

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,659,396
App. No.
16/021,840
Granted
May 19, 2020
Kind
B2
Abstract

Techniques are disclosed for managing data within a reconfigurable computing environment. In a multiple processing element environment, such as a mesh network or other suitable topology, there is an inherent need to pass data between processing elements. Subtasks are divided among multiple processing elements. The output resulting from the subtasks is then merged by a downstream processing element. In such cases, a join operation can be used to combine data from multiple upstream processing elements. A control agent executes on each processing element. A memory buffer is disposed between upstream processing elements and the downstream processing element. The downstream processing element is configured to automatically perform an operation based on the availability of valid data from the upstream processing elements.

Claims (36)

1. A processor-implemented method for data manipulation comprising:

coupling a plurality of control agents, executing on a plurality of processing elements, wherein the plurality of processing elements comprises a reconfigurable fabric and wherein the plurality of processing elements is controlled by circular buffers;

linking a first control agent and a second control agent, from the plurality of control agents, with a third control agent, from the plurality of control agents; and

receiving data from the first control agent and the second control agent by the third control agent, wherein a first FIFO memory is employed by the first control agent to facilitate the receiving of the data by the third control agent, a second FIFO memory is employed by the second control agent to facilitate the receiving of the data by the third control agent, and the receiving the data from the first control agent and the data from the second control agent comprises joining data.

2. The method of claim 1 further comprising operating on the data, received from the first control agent and the second control agent, by the third control agent.

3. The method of claim 2 further comprising producing resulting data based on the operating on the data.

4. The method of claim 3 further comprising sending the resulting data to a fourth control agent from the plurality of control agents.

5. The method of claim 4 wherein the receiving of the data by the third control agent is only accomplished when there is output space available for results from the third control agent.

6. The method of claim 5 wherein the receiving of the data by the third control agent comprises consuming the data.

7. The method of claim 5 wherein output space is available in a third FIFO employed between the third control agent and the fourth control agent.

8. The method of claim 5 wherein processing by the third control agent is delayed until output space is available.

9. The method of claim 8 wherein the processing by the third control agent is suspended by stopping rotating of a circular buffer within the circular buffers.

10. The method of claim 2 wherein the operating on the data is in response to receiving the data from the first control agent and the second control agent.

11. The method of claim 10 wherein the data received from the first control agent is determined to be valid.

12. The method of claim 11 wherein the data received from the second control agent is determined to be valid.

13. The method of claim 11 wherein the operating is based on the data being valid.

14. The method of claim 13 wherein the operating is activated by the data being valid.

15. The method of claim 11 wherein a processing element associated with the third control agent is brought out of a sleep state when the data from the first control agent is determined to be valid.

16. The method of claim 11 wherein a processing element associated with the third control agent is brought out of a sleep state by the data from the first control agent being valid.

17. The method of claim 16 wherein the third control agent is brought out of a sleep state by the data from the second control agent also being valid.

18. The method of claim 1 wherein the joining data is accomplished by the third control agent.

19. The method of claim 1 further comprising sending a fire signal from the first control agent to the third control agent to facilitate operating by the third control agent.

20. The method of claim 1 further comprising linking a fifth control agent, from the plurality of control agents, with the third control agent.

21. The method of claim 20 further comprising receiving data from the fifth control agent by the third control agent.

22. The method of claim 21 wherein a third FIFO memory is interposed between the fifth control agent and the third control agent.

23. The method of claim 22 wherein the third FIFO memory facilitates the receiving of the data by the third control agent.

24. A computer program product embodied in a non-transitory computer readable medium for data manipulation, the computer program product comprising code which causes one or more processors to perform operations of:

coupling a plurality of control agents, executing on a plurality of processing elements, wherein the plurality of processing elements comprises a reconfigurable fabric and wherein the plurality of processing elements is controlled by circular buffers;

linking a first control agent and a second control agent, from the plurality of control agents, with a third control agent, from the plurality of control agents; and

receiving data from the first control agent and the second control agent by the third control agent, wherein a first FIFO memory is employed by the first control agent to facilitate the receiving of the data by the third control agent, a second FIFO memory is employed by the second control agent to facilitate the receiving of the data by the third control agent, and the receiving the data from the first control agent and the data from the second control agent comprises joining data.

25. A computer system for analysis comprising:

a memory which stores instructions;

one or more processors attached to the memory wherein the one or more processors, when executing the instructions which are stored, are configured to:

couple a plurality of control agents, executing on a plurality of processing elements, wherein the plurality of processing elements comprises a reconfigurable fabric and wherein the plurality of processing elements is controlled by circular buffers;

link a first control agent and a second control agent, from the plurality of control agents, with a third control agent, from the plurality of control agents; and

receive data from the first control agent and the second control agent by the third control agent, wherein a first FIFO memory is employed by the first control agent to facilitate the receiving of the data by the third control agent, a second FIFO memory is employed by the second control agent to facilitate the receiving of the data by the third control agent, and receiving the data from the first control agent and the data from the second control agent comprises joining data.

Assignments (6)
CHANGE OF NAME Recorded May 8, 2024
From: WAVE COMPUTING, INC.
To: MIPS HOLDING, INC.
Reel/Frame 067355/0324 →
RELEASE OF SECURITY INTEREST Recorded Dec 29, 2022
From: CAPITAL FINANCE ADMINISTRATION, LLC, AS ADMINISTRATIVE AGENT
To: MIPS TECH, LLC; WAVE COMPUTING INC.
Reel/Frame 062251/0251 →
SECURITY INTEREST Recorded Jun 14, 2021
From: MIPS TECH, LLC; WAVE COMPUTING, INC.
To: CAPITAL FINANCE ADMINISTRATION, LLC
Reel/Frame 056558/0903 →
RELEASE OF SECURITY INTEREST Recorded Jun 14, 2021
From: WAVE COMPUTING LIQUIDATING TRUST
To: MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.; MIPS TECH, LLC; WAVE COMPUTING, INC.
Reel/Frame 056589/0606 →
SECURITY INTEREST Recorded Feb 26, 2021
From: WAVE COMPUTING, INC.; MIPS TECH, LLC; MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.
To: WAVE COMPUTING LIQUIDATING TRUST
Reel/Frame 055429/0532 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2018
From: NICOL, CHRISTOPHER JOHN
To: WAVE COMPUTING, INC.
Reel/Frame 046290/0724 →