From Computer History Wiki
Jump to: navigation, search

A race condition occurs when two events are very close in time, and their interaction can cause problems. Races can occur in both hardware and software.

Hardware races can occur when two synchronous signals which interact flow through different numbers of gates before their interaction; this can mean that changes in their values are not quite synchronized, and as a result can create glitches in the circuit's output. Such races can be handled with Karnaugh maps, though.

Of more concern are the interaction of two mutually asynchronous signals in a circuit with feedback, such as when they are inputs to a flip-flop. If they both change at the 'right' (sic) time, it can drive the circuit into a meta-stable state. Extensive theoretical work has shown that there is no 'solution' to this problem; designers can only minimize the problem.

See also