IP Library Granted Patent US 10,218,357
Granted Patent B2
US 10,218,357 · App. 15/443,612 · Granted Feb 26, 2019

Logical elements with switchable connections for multifunction operation

Inventor: Christopher John Nicol (Campbell, CA)
Assignee: Wave Computing, Inc.
H03K19/017581H03K19/1776
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,218,357
App. No.
15/443,612
Granted
Feb 26, 2019
Kind
B2
Abstract

Clusters of logical elements are interconnected by a switching fabric. Each cluster contains processing elements, storage elements, and switching elements. A circular buffer within a cluster contains multiple switching instructions to control the flow of data throughout the switching fabric. The circular buffer provides a pipelined execution of switching instructions for the implementation of multiple functions. Each cluster contains multiple processing elements, and each cluster further comprises an additional circular buffer for each processing element. Logical operations are controlled by the circular buffers.

Claims (41)

1. An apparatus for data manipulation comprising:

a plurality of logical elements;

configurable connections between the plurality of logical elements; and

a plurality of rotating circular buffers residing on a semiconductor chip where the plurality of rotating circular buffers contain configuration instructions which control different configurable connections between the plurality of logical elements and dynamically change operation of the logical elements based on the rotating of a circular buffer within the plurality of rotating circular buffers, wherein the rotating of the circular buffer within the plurality of rotating circular buffers enables two or more logical functions to be implemented in run time.

2. The apparatus of claim 1 wherein the configuration instructions are pre-processed by a compiler and statically scheduled to avoid collisions among the plurality of logical elements.

3. The apparatus of claim 2 wherein the preprocessing inserts further instructions to prevent the collisions.

4. The apparatus of claim 3 wherein the further instructions include one or more of storage instructions, sleep instructions, or no-op instructions.

5. The apparatus of claim 2 further comprising replacing multiple instructions with a single fan-in instruction in pre-processing.

6. The apparatus of claim 1 wherein the plurality of rotating circular buffers have differing lengths.

7. The apparatus of claim 6 wherein the plurality of rotating circular buffers having differing lengths resynchronize with a zeroth pipeline stage for each of the plurality of rotating circular buffers.

8. The apparatus of claim 1 wherein the configurable connections comprise a switching fabric.

9. The apparatus of claim 8 wherein the switching fabric includes fan-in and fan-out connections.

10. The apparatus of claim 1 wherein the configurable connections are time multiplexed.

11. The apparatus of claim 1 wherein the circular buffer within the plurality of rotating circular buffers is programmed and instructions are pre-processed to generate input to the circular buffer within the plurality of rotating circular buffers for dynamic programming.

12. The apparatus of claim 1 wherein the circular buffer within the plurality of rotating circular buffers controls passing data to a quad of processing elements through switching elements, where each of the quad of processing elements is controlled by four other circular buffers, where data is passed back through the switching elements from the quad of processing elements where the switching elements are again controlled by the circular buffer within the plurality of rotating circular buffers.

13. The apparatus of claim 1 wherein a column within the circular buffer within the plurality of rotating circular buffers can be skipped in a cycle.

14. The apparatus of claim 13 wherein not skipping indicates a valid instruction.

15. The apparatus of claim 1 wherein the plurality of logical elements includes a processing element that can be placed in a sleep state where the sleep state is exited based on data being valid.

16. The apparatus of claim 15 wherein the sleep state can be entered by an instruction within the processing element.

17. The apparatus of claim 15 wherein the processing element wakes up from the sleep state when valid data is applied to inputs of the processing element.

18. The apparatus of claim 17 wherein the sleep state can only be exited by stimulus external to the processing element and not based on programming of the processing element.

19. The apparatus of claim 18 wherein the sleep state is exited based on an instruction applied to a switching fabric.

20. The apparatus of claim 1 wherein the circular buffer within the plurality of rotating circular buffers comprises a plurality of switch instructions for the configurable connections.

21. The apparatus of claim 1 wherein the configurable connections provide three-dimensional routing.

22. The apparatus of claim 1 further comprising storage elements coupled to the configurable connections wherein the storage elements include one or more of registers, caches, or on-chip memories.

23. The apparatus of claim 22 wherein the storage elements store data while the configurable connections are busy with other data.

24. The apparatus of claim 1 wherein the configurable connections enable bypassing of neighboring logical elements.

25. The apparatus of claim 1 wherein the configurable connections comprise one or more of a fan-in, a fan-out, or a connection to a local storage register for data.

26. The apparatus of claim 1 wherein communication through the configurable connections is based on data being valid.

27. The apparatus of claim 1 further comprising clusters of one or more processing elements, storage elements, and switching elements.

28. The apparatus of claim 27 wherein an additional circular buffer is implemented for each processing element.

29. The apparatus of claim 1 where collisions are avoided by intermediate data being stored in registers for pipeline cycles before being sent to an output port for a cluster.

30. A method of designing a switching fabric comprising:

implementing a plurality of logical elements;

configurable connections between the plurality of logical elements; and

implementing a plurality of rotating circular buffers residing on a semiconductor chip where the plurality of rotating circular buffers contain configuration instructions which control different configurable connections between the plurality of logical elements and dynamically change operation of the logical elements based on the rotating of a circular buffer within the plurality of rotating circular buffers, wherein the rotating of the circular buffer within the plurality of rotating circular buffers enables two or more logical functions to be implemented in run time.

31. A computer program embodied in a non-transitory computer readable medium for implementation of a logical calculation apparatus, the computer program comprising code which configures one or more processors to perform operations of:

designing a switching fabric by:

implementing a plurality of logical elements;

configurable connections between the plurality of logical elements; and

implementing a plurality of rotating circular buffers residing on a semiconductor chip where the plurality of rotating circular buffers contain configuration instructions which control different configurable connections between the plurality of logical elements and dynamically change operation of the logical elements based on the rotating of a circular buffer within the plurality of rotating circular buffers, wherein the rotating of the circular buffer within the plurality of rotating circular buffers enables two or more logical functions to be implemented in run time.

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 Mar 27, 2017
From: NICOL, CHRISTOPHER JOHN
To: WAVE COMPUTING, INC.
Reel/Frame 041750/0317 →
Continuity (3)
Continuation In Part 14530624 · Oct 31, 2014
Provisional Application 61899180 · Nov 2, 2013
Related Publication 20170179958A1 · Jun 22, 2017