340 likes | 480 Views
Reading1:. An Introduction to Asynchronous Circuit Design Al Davis Steve Nowick University of Utah Columbia University. Signaling Protocol. Signaling Protocol: communication protocol req: initiate an action ack: signal completion of that action. Sender. Receiver. req. ack.
E N D
Reading1: An Introduction to Asynchronous Circuit Design Al Davis Steve Nowick University of Utah Columbia University
Signaling Protocol • Signaling Protocol: communication protocol • req: initiate an action • ack: signal completion of that action Sender Receiver req ack data
Signaling Protocol • Control signaling • 1. Two-phase handshaking protocol • 2. Four-phase handshaking protocol • Data signaling • 1. Bundled Data • with two-phase, four-phase HPs • 2. Dual-rail Data • with two-phase, four-phase HPs,
Control Signaling Protocol • Four-phase Handshaking protocol req Sender Receiver • Level signaling or return to zero ack data
Control Signaling Protocol • Two-phase Handshaking protocol • Transition signaling or Non-return to zero req Sender Receiver ack data
Data Signaling Protocol • Bundled Data Signaling • 1. Similar to synchronous circuits • 2. Measure maximum delay of each circuit piece a. Bundled data Computationb. Bundle Data transfer req Com. Logic A Sender Receiver ack C data B 3. Require n+2 wires Delay
Data Signaling Protocol • DualRail Data signaling • 1. Two wires per bit, encoded to show validity. • 2. 00 = no data (spacer), 01 = 0, 10 = 1, 11 = error a. No data b. valid 0 c. valid 1 d. illegal A1=0 A0=0 A1=0 A0=1 A1=1 A0=0 A1=1 A0=1 Com. Logic Register A C B 3. Require 2n wires
Signaling Protocol: EX • Bundling Constraint VS Delay-Insensitive adders
Completion Detection Circuits • Self-timed component with • completion detection circuit. Ack: completion of dual-rail signal DoneReset=1: completion of computation DoneReset=0: completion of reset
Classes of Asynchronous Circuits • Classification based on delay model: Gate and wire • 1. Delay-insensitive (DI) circuits. • 2. Quasidelayinsensitive (quasiDI or QDI) circuits • 3. Speedindependent (SI) circuits • 4. Selftimed (ST)circuits Async SI ST DI QDI
Delay-insensitive circuits • Arbitrary (unbounded but finite) delays • on gates and wires • Most robust (reliable) circuits • Very small class (Martin)
Quasidelayinsensitive 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 B C fork A
Speedindependent circuits • Arbitrary delays on gates • Wires have no delay • Introduced by David Mullerin the 50’s
Selftimed circuits • Communication between elements is • delayinsensitive • Elements may be DI, QDI, SI or • wellbounded • Introduced by Seitz
Hazards • Hazards: unwanted glitches 1 glitch 0 • Combinational and sequential Hazards • May not be severe: • No inverter no hazard
Combinational Hazards • Static hazards: • Dynamic hazards Static 0 hazard Static 1 hazard 1 0 1 1 0 0
Combinational Hazards • Static Hazard in Single Input Change
Combinational Hazards • StaticHazard in Multiple Input Change
Combinational Hazards • DynamicHazard in Multiple Input Change
Petri Net • Petri Net :bipartite graph • places (circle) • transitions (bar) Token (dot) A R1 B If A is true then B is true
Petri Net • 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 A R1 C Transition Firing
Petri Net: (Interface Net) X Y • C-element Z
Petri Net • Arbiter
Petri Net: I-Net • I-Net describes the allowed interface behavior • I-Net ==> ISG (Interface State Graph) • (finite state machine) 1 X Y 2 3 Z Y X 4
Petri Net: • ISG ==> Encoded ISG XY 000 X+ Y+ Z- Z 100 001 010 Y+ X+ X- Y- 110 011 101 Z+ Y- X- 111
Translation Method: • Basic DI Elements: Wire prefix*[a?;b!] Toggle prefix*[a?;b!;a?;c!] C-element prefix*[a?||b?;c!] Merge prefix*[a?|b?;c!]
Translation Method: • Operators: • ? an input to the wire • ! an output of the wire • ; concatenation • * repetition • | choice • || weave • pref prefix-closure operator
Modulo-3 Counter MOD3=prefix*[a?;q!;a?;q!;a?;p!]
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 1place buffer, BUF1: • (a?W&b!W ) * | [x : var W | #[a?x; b!x]] |
Tangram • A Tangram program for a 1place 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
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.
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 • lowpower implementation. • portable electronics: • an error corrector for • a digital compact cassette • player • counters, decoders, • image generators
Micropipeline 4-stage pipeline