Difference between revisions of "Arbiter"

From Computer History Wiki
Jump to: navigation, search
(A decent start)
 
(Add an important point)
Line 4: Line 4:
 
* at least one is asynchronous
 
* at least one is asynchronous
  
and decides which of them arrived first. (For signals that arrive more or less simultaneously, it is usually more important that the arbiter pick one relatively quickly, without dithering too long over the choice.)
+
and decides which of them arrived first.
 +
 
 +
For signals that arrive more or less simultaneously, it is usually more important that the arbiter pick one relatively quickly, without dithering too long over the choice. That is because the chief function of an arbiter is usually to provide mutual exclusion; i.e. to prevent two different clients from trying to use a single resource at the same time.
  
 
If the incoming signals are aligned 'just right' (in other words, 'just wrong'), this process can be subject to [[meta-stability]] issues, if the circuitry is constructed of standard digital components ([[flip-flop]]s, etc).
 
If the incoming signals are aligned 'just right' (in other words, 'just wrong'), this process can be subject to [[meta-stability]] issues, if the circuitry is constructed of standard digital components ([[flip-flop]]s, etc).
  
The common solution is to use a special-purpose componente called a 'three-output flip-flop', which has a 'not done yet' output in addition to the normal '0' and '1' outputs. The third output is produced by the addition of two analog comparators, which look at the output, and check to see if it is above a low margin, and below a high margin (i.e. the output has not yet settled into one state or another)
+
One common solution is to use a special-purpose component called a 'three-state flip-flop', which has a 'not done yet' output in addition to the normal '0' and '1' outputs. The third output is produced by the addition of two analog comparators, which look at the output, and check to see if it is above a low margin, and below a high margin (i.e. the output has not yet settled into one state or another).
 +
 
 +
Even this kind of arbiter is not ''guaranteed'' to produce an answer within a fixed, bounded time (it is currently believed that this is theoretically impossible), but at least the user is aware that such an arbiter is still dithering.
  
 
== Further reading==
 
== Further reading==
  
 
* Warren Mackie Littlefield, Thomas J. Chaney, "''The Glitch Phenomenon''", Technical Memo No. 10, Washington University in St. Louis, 1966 - An extensive look at early WUSTL work on meta-stability, it includes an amusing analogy to describe the arbiter meta-stability problem
 
* Warren Mackie Littlefield, Thomas J. Chaney, "''The Glitch Phenomenon''", Technical Memo No. 10, Washington University in St. Louis, 1966 - An extensive look at early WUSTL work on meta-stability, it includes an amusing analogy to describe the arbiter meta-stability problem
 
+
* David J. Kinniment, John V. Woods, "''Synchronization and Arbitration Circuits in Digital Systems''", Proceedings of the IEEE, Vol. 123, pp. 961-966, 1976 - A crisp description of the three-output flip-flop solution
David J. Kinniment, John V. Woods, "''Synchronization and Arbitration Circuits in Digital Systems''", Proceedings of the IEEE, Vol. 123, pp. 961-966, 1976 - A crisp description of the three-output flip-flop solution
 

Revision as of 16:36, 2 December 2016

A arbiter is a device which examines two or more signals which are either:

  • synchronous, but using clocks which are not fixed relative to one another; or
  • at least one is asynchronous

and decides which of them arrived first.

For signals that arrive more or less simultaneously, it is usually more important that the arbiter pick one relatively quickly, without dithering too long over the choice. That is because the chief function of an arbiter is usually to provide mutual exclusion; i.e. to prevent two different clients from trying to use a single resource at the same time.

If the incoming signals are aligned 'just right' (in other words, 'just wrong'), this process can be subject to meta-stability issues, if the circuitry is constructed of standard digital components (flip-flops, etc).

One common solution is to use a special-purpose component called a 'three-state flip-flop', which has a 'not done yet' output in addition to the normal '0' and '1' outputs. The third output is produced by the addition of two analog comparators, which look at the output, and check to see if it is above a low margin, and below a high margin (i.e. the output has not yet settled into one state or another).

Even this kind of arbiter is not guaranteed to produce an answer within a fixed, bounded time (it is currently believed that this is theoretically impossible), but at least the user is aware that such an arbiter is still dithering.

Further reading

  • Warren Mackie Littlefield, Thomas J. Chaney, "The Glitch Phenomenon", Technical Memo No. 10, Washington University in St. Louis, 1966 - An extensive look at early WUSTL work on meta-stability, it includes an amusing analogy to describe the arbiter meta-stability problem
  • David J. Kinniment, John V. Woods, "Synchronization and Arbitration Circuits in Digital Systems", Proceedings of the IEEE, Vol. 123, pp. 961-966, 1976 - A crisp description of the three-output flip-flop solution