Reading1:
description
Transcript of Reading1:
![Page 1: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/1.jpg)
Reading1:
An Introduction to Asynchronous Circuit Design
Al Davis Steve Nowick
University of Utah Columbia University
![Page 2: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/2.jpg)
Signaling Protocol
Sender Receiver
reqack
data
• Signaling Protocol: communication protocol
req: initiate an actionack: signal completion of that action
![Page 3: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/3.jpg)
Signaling Protocol
• Control signaling
1. Two-phase handshaking protocol2. Four-phase handshaking protocol
• Data signaling
1. Bundled Datawith two-phase, four-phase HPs
2. Dual-rail Datawith two-phase, four-phase HPs,
![Page 4: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/4.jpg)
Control Signaling Protocol
• Four-phase Handshaking protocol
• Level signaling or return to zeroSender Receiver
reqack
data
![Page 5: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/5.jpg)
Control Signaling Protocol
• Two-phase Handshaking protocol
• Transition signaling or Non-return to zero
Sender Receiverreq
ackdata
![Page 6: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/6.jpg)
Data Signaling Protocol
• Bundled Data Signaling
1. Similar to synchronous circuits 2. Measure maximum delay of each circuit piece
Com. Logic
Delay
A
BC Sender Receiver
reqack
data
a. Bundled data Computation b. Bundle Data transfer
3. Require n+2 wires
![Page 7: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/7.jpg)
Data Signaling Protocol
• Dual Rail Data signaling
1. Two wires per bit, encoded to show validity. 2. 00 = no data (spacer), 01 = 0, 10 = 1, 11 = error
Com. Logic
A
B
C
A1=0A0=0
A1=0A0=1
A1=1A0=0
A1=1A0=1
a. No data b. valid 0 c. valid 1 d. illegal
3. Require 2n wires
Register
![Page 8: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/8.jpg)
Signaling Protocol: EX
• Bundling Constraint VS Delay-Insensitive adders
![Page 9: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/9.jpg)
Completion Detection Circuits
• Self-timed component with completion detection circuit.
Ack: completion of dual-rail signalDoneReset=1: completion of computationDoneReset=0: completion of reset
![Page 10: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/10.jpg)
Classes of Asynchronous Circuits • Classification based on delay model: Gate and wire
1. Delay-insensitive (DI) circuits. 2. Quasi delay insensitive (quasi DI or QDI) circuits 3. Speed independent (SI) circuits 4. Self timed (ST)circuits
DIST QDI
Async
SI
![Page 11: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/11.jpg)
Delay-insensitive circuits
• Arbitrary (unbounded but finite) delays on gates and wires
• Most robust (reliable) circuits• Very small class (Martin)
![Page 12: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/12.jpg)
Quasi delay insensitive circuits
• Delay insensitive with isochronous forks• Delay in isochronous forks assumed to be similar
• Weakest compromise to pure delay-insensitivity needed to build practical circuits
forkAB
C
![Page 13: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/13.jpg)
Speed independent circuits
• Arbitrary delays on gates • Wires have no delay
• Introduced by David Muller in the 50’s
![Page 14: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/14.jpg)
Self timed circuits
• Communication between elements is delay insensitive
• Elements may be DI, QDI, SI or
well bounded
• Introduced by Seitz
![Page 15: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/15.jpg)
Hazards
• Hazards: unwanted glitches
0
1glitch
• Combinational and sequential Hazards
• May not be severe:
No inverter no hazard
![Page 16: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/16.jpg)
Combinational Hazards
• Static hazards:
• Dynamic hazards
0
1
0
1 1
0
Static 0 hazard Static 1 hazard
![Page 17: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/17.jpg)
Combinational Hazards
• Static Hazard in Single Input Change
![Page 18: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/18.jpg)
Combinational Hazards
• Static Hazard in Multiple Input Change
![Page 19: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/19.jpg)
Combinational Hazards
• Dynamic Hazard in Multiple Input Change
![Page 20: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/20.jpg)
Petri Net
• Petri Net :bipartite graphplaces (circle)transitions (bar)
Token (dot)
A
R1
B
If A is true then B is true
![Page 21: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/21.jpg)
Petri Net
A
R1
C
• Input places of a transition:• Output places of a transition:• Transition enable: all conditions of a transition
are true• Transition fire: removes the tokens from the input
places and insert tokens to output places
B A
R1
C
B
Transition Firing
![Page 22: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/22.jpg)
Petri Net: (Interface Net)
• C-element X
Y
Z
![Page 23: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/23.jpg)
Petri Net
• Arbiter
![Page 24: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/24.jpg)
Petri Net: I-Net
• I-Net describes the allowed interface behavior• I-Net ==> ISG (Interface State Graph)
(finite state machine)
X
YZ
X
Y1
2 3
4
![Page 25: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/25.jpg)
Petri Net:
X+
Z+
Y+
• ISG ==> Encoded ISG
X-Y-
X+Y+
Z-
X- Y-
000
100 010
110
111
011101
001
00 01 11 100 0 0 1 01 0 1 1 1
XY
Z
![Page 26: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/26.jpg)
Translation Method:
Wire prefix*[a?;b!]
Toggle prefix*[a?;b!;a?;c!]
C-element prefix*[a?||b?;c!]
Merge prefix*[a?|b?;c!]
• Basic DI Elements:
![Page 27: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/27.jpg)
Translation Method:
• Operators:
? an input to the wire! an output of the wire; concatenation * repetition | choice|| weavepref prefix-closure operator
![Page 28: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/28.jpg)
Modulo-3 Counter
MOD3=prefix*[a?;q!;a?;q!;a?;p!]
![Page 29: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/29.jpg)
Tangram
• Compiler-based approach by van Berkel at Philips Research Laboratories and Eindhoven University of Technology
• Tangram: based on CSP, is a specification language for concurrent systems.
• A Tangram program for a 1 place buffer, BUF1: (a?W&b!W ) * | [x : var W | #[a?x; b!x]] |
![Page 30: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/30.jpg)
Tangram
•A Tangram program for a 1 place buffer, BUF1: (a?W & b!W ) * | [x : var W | #[a?x; b!x]] |
• Interface: • an input port, a, • an output port, b, • data type, W
• command [x : var W | #[a?x; b!x]] x is local variable ; : sequencing # : infinite repetition T : transfer
go
![Page 31: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/31.jpg)
Tangram: Buf1
• Channel (arc): c, d, e, wx, rx, a, b• A channel has two ports
• Active port: black dot • initiates a request
• Passive port: white dot• returns an acknowledgment
• Buf1: • data is received on port a• stored in internal variable x; • data is then sent out on port b.
![Page 32: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/32.jpg)
Tangram:
• Buf2=(a?W&c!W )*| [b:chan W|(BUF1 (a; b) || BUF2 (b; c))] |• New command
• ||:parallel composition• .:synchronizer
• Major goal of Tangram• rapid turnaround time• low power implementation.
• portable electronics:• an error corrector for a digital compact cassette player • counters, decoders, • image generators
![Page 33: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/33.jpg)
Micropipeline
4-stage pipeline
![Page 34: Reading1:](https://reader036.fdocuments.us/reader036/viewer/2022062520/56815853550346895dc5ac1d/html5/thumbnails/34.jpg)
Micropipeline