Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Delay insensitive circuit
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Refimprove|date=July 2009}} A '''delay-insensitive circuit''' is a type of [[asynchronous circuit]] which performs a [[digital logic]] operation often within a computing processor chip. Instead of using [[clock signal]]s or other global [[control signal]]s, the sequencing of computation in delay-insensitive circuit is determined by the data flow. Data flows from one circuit element to another using "handshakes", or sequences of voltage transitions to indicate readiness to receive data, or readiness to offer data. Typically, inputs of a circuit module will indicate their readiness to receive, which will be "acknowledged" by the connected output by sending data (encoded in such a way that the receiver can detect the validity directly<ref>{{Cite web|url = http://www.win.tue.nl/~wstomv/publications/di-codes.ps|title = Delay-Insensitive Codes--An Overview|date = January 1987|access-date = |website = |publisher = |last = Verhoeff|first = Tom}}</ref>), and once that data has been safely received, the receiver will explicitly acknowledge it, allowing the sender to remove the data, thus completing the handshake, and allowing another datum to be transmitted. In a delay-insensitive circuit, there is therefore no need to provide a clock signal to determine a starting time for a computation. Instead, the arrival of data to the input of a sub-circuit triggers the computation to start. Consequently, the next computation can be initiated immediately when the result of the first computation is completed. The main advantage of such circuits is their ability to optimize processing of activities that can take [[arbitrary]] periods of time depending on the data or requested function. An example of a process with a variable time for completion would be mathematical [[division (mathematics)|division]] or recovery of data where such data might be in a [[cache (computing)|cache]]. The '''Delay-Insensitive''' (DI) class is the most robust of all [[asynchronous circuit]] delay models. It makes no assumptions on the delay of wires or gates. In this model all transitions on gates or wires must be acknowledged before transitioning again. This condition stops unseen transitions from occurring. In DI circuits any transition on an input to a gate must be seen on the output of the gate before a subsequent transition on that input is allowed to happen. This forces some input states or sequences to become illegal. For example OR gates must never go into the state where both inputs are one, as the entry and exit from this state will not be seen on the output of the gate. Although this model is very robust, no practical circuits are possible due to the lack of expressible conditionals in DI circuits.<ref>{{Cite web|url = http://authors.library.caltech.edu/26721/2/postscript.pdf|title = The Limitations to Delay-Insensitivity in Asynchronous Circuits|date = |access-date = |website = |publisher = |last = Martin|first = Alain}}</ref> Instead the [[Quasi-Delay-Insensitive]] model is the smallest compromise model yet capable of generating useful computing circuits. For this reason circuits are often incorrectly referred to as Delay-Insensitive when they are Quasi Delay-Insensitive.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)