Combining Dynamic & Static Scheduling in High-level Synthesis
Jianyi Cheng, Lana Josipović, George A. Constantinides, Paolo Ienne, John Wickerson
Abstract
A central task in high-level synthesis is scheduling: the allocation of operations to clock cycles. The classic approach to scheduling is static, in which each operation is mapped to a clock cycle at compile-time, but recent years have seen the emergence of dynamic scheduling, in which an operation's clock cycle is only determined at run-time. Both approaches have their merits: static scheduling can lead to simpler circuitry and more resource sharing, while dynamic scheduling can lead to faster hardware when the computation has non-trivial control flow.
Topics & Concepts
Computer scienceDynamic priority schedulingFair-share schedulingScheduling (production processes)Two-level schedulingRate-monotonic schedulingDistributed computingEarliest deadline first schedulingHigh-level synthesisRound-robin schedulingParallel computingComputationFixed-priority pre-emptive schedulingReal-time computingEmbedded systemField-programmable gate arrayAlgorithmMathematical optimizationOperating systemScheduleMathematicsEmbedded Systems Design TechniquesParallel Computing and Optimization TechniquesInterconnection Networks and Systems