Structural Hazard: Cannot proceed with an operation because a resource is in use. To overcome hazards we must use shedulling and arbitration:
One scheduling decision impacts on another: ideally need to find a global optimum.
The scheduling and arbitration operations can often be done at compile-time, (e.g. for constant-time operations performed by a single behavioural thread).
Remainder must be done at run-time according to actual input data since some operations may be vari-time and the relative interleaving of different threads is often unpredictable.
|15: (C) 2008-13, DJ Greaves, University of Cambridge, Computer Laboratory.|