Fundamental principle:
Each instruction is processed in order, and the scoreboard is interrogated and updated to reflect the data flow
Buffer each issued instruction, wait until no data hazards, then initiate execution. Execution of delayed instructions can start in any order