Presentation is loading. Please wait.

Presentation is loading. Please wait.

Early output logic and Anti-Tokens

Similar presentations


Presentation on theme: "Early output logic and Anti-Tokens"— Presentation transcript:

1 Early output logic and Anti-Tokens
Charlie Brej APT Group Manchester University 28/08/2019 MAPLD 2004

2 Overview Synchronous Problems Asynchronous Logic Solutions Why? How?
Early Output Anti-Tokens 28/08/2019 MAPLD 2004

3 Problems: Communication
Communication horizon “For a 60 nanometer process a signal can reach only 5% of the die’s length in a clock cycle” [D. Matzke,1997] Clock distributed using wave pipelining 28/08/2019 MAPLD 2004

4 Problems: Performance
Unbalanced Stages Clock overheads Clock Skew/Jitter Transistor Variability Timing Assumption overheads Signal Integrity Cycle time Worst – Average case performance Real Computation 28/08/2019 MAPLD 2004

5 Clock! What is it good for?
No arguing with the clock 9am - 5pm. No excuses! 28/08/2019 MAPLD 2004

6 Bundled-Data When you finish, do the next task Flexitime
Request + Delay Acknowledge When you finish, do the next task Flexitime 28/08/2019 MAPLD 2004

7 How do you know when you are finished?
Synchronous: Estimate Global timing reference Asynchronous (bundled-data) Local delay elements Asynchronous (delay-insensitive) When the data arrives Intrinsic 28/08/2019 MAPLD 2004

8 Becoming Delay Insensitive
Dual-Rail Two wires 00 – NULL 01 – Zero 10 – One (11 – Not used) Four Phase handshake Return to zero R0 R1 Ack 28/08/2019 MAPLD 2004

9 Early Output Logic Dual-Rail interfaces
Output generated as early as possible Two Early output cases If either input is ‘0’ then the output is ‘0’ 28/08/2019 MAPLD 2004

10 Bit level pipelining Forward completed parts of the result Pace work
Don’t stall parts unless you have to 28/08/2019 MAPLD 2004

11 Bit level pipelining Forward completed parts of the result Pace work
Don’t stall parts unless you have to 28/08/2019 MAPLD 2004

12 Bit level pipelining Forward completed parts of the result Pace work
Don’t stall parts unless you have to 28/08/2019 MAPLD 2004

13 Early Output cases 28/08/2019 MAPLD 2004

14 Validity Unnecessary late inputs Validity signal
Must be acknowledged Must wait until they arrive Validity signal Latch generated Ready to be acknowledged Result before all inputs present Acknowledge after all inputs present 28/08/2019 MAPLD 2004

15 Synchronisation Hurts
No need to wait before generating result Need to wait for input in order to acknowledge it Unnecessary stall 28/08/2019 MAPLD 2004

16 Anti-Tokens Unnecessary late inputs Proactive approach
Stall the entire stage Proactive approach Send a ‘cancel’ signal backward to the source Acknowledge before data arrives Anti-Token latches Assert validity early 28/08/2019 MAPLD 2004

17 Anti-token generation
1 C 28/08/2019 MAPLD 2004

18 Anti-token generation
1 A C 28/08/2019 MAPLD 2004

19 Anti-token Propagation
1 A C 28/08/2019 MAPLD 2004

20 Anti-token Propagation
1 A A C 28/08/2019 MAPLD 2004

21 Anti-token Token collisions
1 1 A A 1 1 ? A A 1 ? A 28/08/2019 MAPLD 2004

22 Anti-token Token collisions
1 1 1 A A 1 1 1 A A 1 1 28/08/2019 MAPLD 2004

23 Remove Unnecessary computation
Unbalanced Stages Clock overheads Clock Skew/Jitter Transistor Variability Timing Assumption overheads Signal Integrity Worst – Average case performance Unnecessary Computation/Delays Real Computation Cycle time 28/08/2019 MAPLD 2004

24 Summary Asynchronous Delay Insensitive Average case performance
Safe No timing assumptions Average case performance Remove unnecessary computation Anti-tokens without mutual exclusion units 28/08/2019 MAPLD 2004


Download ppt "Early output logic and Anti-Tokens"

Similar presentations


Ads by Google