But the required are often dependent on variables that
are not> known at compile time, for example load/store delays, or branches>
taken/not taken. Run time interlocks deal with the actual conflicts> as they occur,
while compiler or programmer conflict avoidance> has to use the worst case scenarios.
The observation that interlocks are not needed when the delay isknown and
predictable, but are needed when the delay is varialbehas been around since the
beginning. The ENIAC didn't haveinterlocks for the multiplier or function tables, but
did for the divider/square rooter and the card reader. (The card punch had whatamounted
to a completion signal that enforced the timing.)
BLS