Parallel expression without threads is also possible: use a collection of state machines or BlueSpec rules.
Examples:
rule allocate (!allocated); allocated <= True; owner <= currentRequestor; endrule;
Every operation has a guard predicate: says when it CAN be run
Operations have the expectation they WILL be run (fairness).
Scheduling decisions can span various power/performance issues without recoding.
9: (C) 2008-13, DJ Greaves, University of Cambridge, Computer Laboratory. |