In computer science, instruction scheduling is a compiler optimization used to improve instruction-level parallelism, which improves performance on machines with instruction pipelines. Put more simply, without changing the meaning of the code, it tries to
- Avoid pipeline stalls by rearranging the order of instructions.
- Avoid illegal or semantically ambiguous operations (typically involving subtle instruction pipeline timing issues or non-interlocked resources.)
The pipeline stalls can be caused by structural hazards (processor resource limit), data hazards (output of one instruction needed by another instruction) and control hazards (branching).
Read more about Instruction Scheduling: Data Hazards, Algorithms, The Phase Order of Instruction Scheduling, Types of Instruction Scheduling
Famous quotes containing the word instruction:
“One year, Id completely lost my bearings trying to follow potty training instruction from a psychiatric expert. I was stuck on step on, which stated without an atom of irony: Before you begin, remove all stubbornness from the child. . . . I knew it only could have been written by someone whose suit coat was still spotless at the end of the day, not someone who had any hands-on experience with an actual two-year-old.”
—Mary Kay Blakely (20th century)