IP Library Granted Patent US 10,205,453
Granted Patent B2
US 10,205,453 · App. 15/948,733 · Granted Feb 12, 2019

Self-timed processors implemented with multi-rail null convention logic and unate gates

Inventors: Chao Xu (Thousand Oaks, CA); Gopal Raghavan (Thousand Oaks, CA); Ben Wiley Melton (Thousand Oaks, CA); Vidura Manu Wijayasekara (Thousand Oaks, CA); Bryan Garnett Cope (Austin, TX); David Cureton Baker (Austin, TX); John Whitaker Havlicek (Thousand Oaks, CA)
Assignee: Eta Compute, Inc.
H03K19/003H03K19/177
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,205,453
App. No.
15/948,733
Granted
Feb 12, 2019
Kind
B2
Abstract

There is disclosed a self-timed processor. The self-timed processor includes a plurality of functional blocks comprising null convention logic. Each of the functional blocks outputs one or more multi-rail data values. A global acknowledge tree generates a global acknowledge signal provided to all of the plurality of functional blocks. The global acknowledge signal switches to a first state when all of the multi-rail data values output from the plurality of functional blocks are in respective valid states, and the global acknowledge signal switches to a second state when all of the multi-rail data values output from the plurality of functional blocks are in a null state.

Claims (60)

1. A self-timed processor comprising:

a plurality of functional blocks comprising multi-rail null convention logic, each of the functional blocks to output one or more multi-rail data values that each alternate between a valid state and a null state, and

a global acknowledge tree to generate a global acknowledge signal provided to all of the plurality of functional blocks, wherein

the global acknowledge signal switches to a first state when all of the one or more multi-rail data values output from all of the plurality of functional blocks are in respective valid states, and

the global acknowledge signal switches to a second state when all of the one or more multi-rail data values output from all of the plurality of functional blocks are in the null state.

2. The self-timed processor of claim 1 , wherein each of the plurality of functional blocks further comprises:

a register to output an acknowledge signal to the global acknowledge tree; and

combinatorial logic to output the one or more multi-rail data values to the register,

wherein the combinatorial logic of at least one of the plurality of functional blocks comprises one or more non-threshold, unate gates.

3. The self-timed processor of claim 2 , wherein

the combinatorial logic of all of the plurality of functional blocks comprises one or more unate gates, which do not provide input completeness.

4. The self-timed processor of claim 3 , wherein

the combinatorial logic of all of the plurality of functional blocks does not include threshold gates.

5. The self-timed processor of claim 4 , wherein

the registers included in the plurality of functional blocks comprise threshold gates.

6. The self-timed processor of claim 1 , wherein

the global acknowledge tree comprises gates that are only threshold gates, and which provide input completeness.

7. The self-timed processor of claim 1 , wherein

at least some of the plurality of functional blocks are arranged as a pipeline.

8. The self-timed processor of claim 1 , wherein

at least one of the plurality of functional blocks receives data from a source external to the self-timed processor, and

the global acknowledge signal is provided to the source.

9. The self-timed processor of claim 1 , wherein

at least one of the plurality of functional blocks sends data to a destination external to the self-timed processor, and

the global acknowledge signal is provided to the destination.

10. The self-timed processor of claim 1 , wherein

at least one of the plurality of registers sends data to a destination external to the self-timed processor, and

the global acknowledge signal is provided to the destination.

11. The self-timed processor of claim 1 , wherein

the global acknowledge signal switches to a first state to signal the functional blocks to enter a null phase when all of the one or more multi-rail data values output from all of the plurality of functional blocks are in respective valid states, and

the global acknowledge signal switches to a second state to signal the functional blocks to enter a data phase when all of the one or more multi-rail data values output from all of the plurality of functional blocks are in a null state.

12. A self-timed processor comprising:

a plurality of registers; and

a global acknowledge tree to generate a global acknowledge signal provided to all of the plurality of registers, wherein

two or more multi-rail null convention logic (NCL) data values output from a first one or more of the plurality of registers are combined by one or more unate gates to provide at least one multi-rail NCL input to a second one of the plurality of registers, wherein the two or more multi-rail NCL data values each alternate between a valid state and a null state, and

the global acknowledge signal switches to a first state when all of the two or more multi-rail NCL data values output from all of the plurality of registers are in respective valid states, and

the global acknowledge signal switches to a second state when all of the two or more NCL multi-rail values data output from all of the plurality of registers are in the null state.

13. The self-timed processor of claim 12 , wherein at least some of the plurality of registers comprise threshold gates.

14. The self-timed processor of claim 12 , wherein

the global acknowledge tree comprises gates that are only threshold gates, and which provide input completeness.

15. The self-timed processor of claim 12 , wherein

at least one of the plurality of registers receives data from a source external to the self-timed processor, and

the global acknowledge signal is provided to the source.

16. The self-timed processor of claim 12 , wherein

the global acknowledge signal switches to a first state to signal the functional blocks to enter a null phase when all of the two or more multi-rail NCL data values output from all of the plurality of registers are in respective valid states, and

the global acknowledge signal switches to a second state to signal the functional blocks to enter a data phase when all of the one or more multi-rail NCL data values output from all of the plurality of registers are in a null state.

17. A method of processing data within a self-timed processor, comprising:

combining two or more multi-rail null convention logic (NCL) data values output from a first one or more of a plurality of registers using one or more unate gates to provide at least one multi-rail NCL input to a second one of the plurality of registers, wherein the two or more multi-rail NCL data values each alternate between a valid state and a null state, and

generating a global acknowledge signal provided to all of the plurality of registers, wherein

the global acknowledge signal switches to a first state when all of the two or more multi-rail NCL data values output from all of the plurality of registers are in respective valid states, and

the global acknowledge signal switches to a second state when all of the two or more NCL multi-rail values data output from all of the plurality of registers are in the null state.

18. The method of claim 17 , wherein

generating the global acknowledge signal is performed by an acknowledge tree comprising gates that are only threshold gates, and which provide input completeness.

19. The method of claim 17 , further comprising:

receiving data from a source external to the self-timed processor, and

providing the global acknowledge signal to the source.

20. The method of claim 17 , further comprising:

providing data to a destination external to the self-timed processor, and

providing the global acknowledge signal to the destination,

providing the global acknowledge signal to the source.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2024
From: ETA COMPUTE, INC.
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 066232/0020 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2023
From: VENTURE LENDING & LEASING IX, INC.; VENTURE LENDING & LEASING VIII, INC.
To: ETA COMPUTE, INC.
Reel/Frame 065724/0500 →
SECURITY INTEREST Recorded Oct 31, 2018
From: ETA COMPUTE, INC.
To: VENTURE LENDING & LEASING IX, INC.; VENTURE LENDING & LEASING VIII, INC.
Reel/Frame 047377/0744 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2018
From: XU, CHAO; RAGHAVAN, GOPAL; MELTON, BEN WILEY; WIJAYASEKARA, VIDURA MANU; COPE, BRYAN GARNETT; BAKER, DAVID CURETON; HAVLICEK, JOHN WHITAKER
To: ETA COMPUTE, INC.
Reel/Frame 045483/0844 →
Continuity (2)
Provisional Application 62483657 · Apr 10, 2017
Related Publication 20180294810A1 · Oct 11, 2018