IP Library Granted Patent US 10,719,470
Granted Patent B2
US 10,719,470 · App. 15/712,494 · Granted Jul 21, 2020

Reconfigurable fabric direct memory access with multiple read or write elements

Inventor: Christopher John Nicol (Campbell, CA)
Assignee: Wave Computing, Inc.
G06F13/4022G06F13/1673G06F13/1694G06F13/28G06F13/287G06F13/4221
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,719,470
App. No.
15/712,494
Granted
Jul 21, 2020
Kind
B2
Abstract

Techniques are disclosed for data manipulation. Data is obtained from a first switching element where the first switching element is controlled by a first circular buffer. Data is sent to a second switching element where the second switching element is controlled by a second circular buffer. Data is controlled by a third switching element that is controlled by a third circular buffer. The third switching element hierarchically controls the first switching element and the second switching element. Data is routed through a fourth switching element that is controlled by a fourth circular buffer. The circular buffers are statically scheduled. The obtaining data from a first switching element and the sending the data to a second switching element includes a direct memory access (DMA). The switching elements can operate as a master controller or as a slave device. The switching elements can comprise clusters within an asynchronous reconfigurable fabric.

Claims (36)

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

obtaining data from a first switching element within a plurality of switching elements wherein the first switching element is controlled by a first circular buffer; and

sending the data to a second switching element within the plurality of switching elements wherein the second switching element is controlled by a second circular buffer,

wherein a third switching element within the plurality of switching elements hierarchically controls the first switching element and the second switching element to perform a direct memory access (DMA) transfer.

2. The method of claim 1 wherein the plurality of switching elements comprises an asynchronous reconfigurable fabric.

3. The method of claim 2 wherein the asynchronous reconfigurable fabric is asynchronous with respect to system memory.

4. The method of claim 1 wherein the plurality of switching elements forms two or more clusters within a reconfigurable fabric.

5. The method of claim 4 wherein a cluster within two or more clusters is synchronized to a tic cycle boundary.

6. The method of claim 5 wherein the cluster within the two or more clusters and a second cluster within the two or more clusters operate on different tic cycles.

7. The method of claim 5 wherein the cluster within the two or more clusters and a second cluster within the two or more clusters operate on different tic clocks.

8. The method of claim 4 wherein the two or more clusters comprise a dataflow processor.

9. The method of claim 4 wherein the two or more clusters are initialized to perform an operation based on one or more agents defined in a software development kit (SDK).

10. The method of claim 1 further comprising a fourth switching element within the plurality of switching elements, wherein the fourth switching element is controlled by a fourth circular buffer.

11. The method of claim 10 wherein the first switching element reads a first data and writes the first data into the second switching element and the second switching element writes the first data into the fourth switching element.

12. The method of claim 11 wherein the fourth switching element sends acknowledgement to the third switching element after the first data is written to the fourth switching element.

13. The method of claim 10 wherein the third switching element further hierarchically controls the fourth switching element.

14. The method of claim 10 wherein the second switching element and the fourth switching element are connected in parallel with the first switching element.

15. The method of claim 1 wherein the obtaining data from a first switching element and the sending the data to a second switching element is autonomous of a third switching element within the plurality of switching elements.

16. The method of claim 1 wherein the data comprises a block of memory obtained from storage in the first switching element.

17. The method of claim 16 wherein the block of memory comprises a beginning address in the storage.

18. The method of claim 17 wherein the block of memory comprises an ending address in the storage.

19. The method of claim 18 wherein the obtaining is triggered by a start instruction stored in the first circular buffer.

20. The method of claim 1 further comprising routing the data through a fifth switching element within the plurality of switching elements wherein the fifth switching element is controlled by a fifth circular buffer.

21. The method of claim 20 wherein the fifth switching element is interposed between the first switching element and the second switching element.

22. The method of claim 1 wherein the first switching element and the second switching element comprise a return communication path to the third switching element.

23. The method of claim 22 wherein the first switching element transfers information from the second switching element to the third switching element on the return communication path.

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

obtaining data from a first switching element within a plurality of switching elements wherein the first switching element is controlled by a first circular buffer; and

sending the data to a second switching element within the plurality of switching elements wherein the second switching element is controlled by a second circular buffer,

wherein a third switching element within the plurality of switching elements hierarchically controls the first switching element and the second switching element to perform a direct memory access (DMA) transfer.

25. A computer system for data manipulation 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:

obtain data from a first switching element within a plurality of switching elements wherein the first switching element is controlled by a first circular buffer; and

send the data to a second switching element within the plurality of switching elements wherein the second switching element is controlled by a second circular buffer,

wherein a third switching element within the plurality of switching elements hierarchically controls the first switching element and the second switching element to perform a direct memory access (DMA) transfer.

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 Oct 5, 2017
From: NICOL, CHRISTOPHER JOHN
To: WAVE COMPUTING, INC.
Reel/Frame 043797/0494 →