Apparatus and Method for Transitive Instruction Scheduling
A processor includes a multiple stage pipeline with a scheduler with a wakeup block and select logic. The wakeup block is configured to wake, in a first cycle, all instructions dependent upon a first selected instruction to form a wake instruction set. In a second cycle, the wakeup block wakes instructions dependent upon the wake instruction set to augment the wake instruction set. The select logic selects instructions from the wake instruction set based upon program order.
1 . A processor, comprising:
a multiple stage pipeline including a scheduler with a wakeup block and select logic, wherein the wakeup block is configured to
wake, in a first cycle, all instructions dependent upon a first selected instruction to form a wake instruction set;
wake, in a second cycle, instructions dependent upon the wake instruction set to augment the wake instruction set;
and wherein the select logic selects instructions from the wake instruction set based upon program order.
2 . The processor of claim 1 wherein for each additional cycle the wakeup block wakes instructions dependent upon the wake instruction set until all instructions are awake.
3 . The processor of claim 1 wherein the wakeup block includes an instruction dependency vector characterizing instruction dependency.
4 . The processor of claim 1 wherein the wakeup block includes an instruction picked vector characterizing picked instructions.
5 . A non-transitory computer readable storage medium comprising executable instructions to define a processor configured with:
a multiple stage pipeline including a scheduler with a wakeup block and select logic, wherein the wakeup block is configured to
wake, in a first cycle, all instructions dependent upon a first selected instruction to form a wake instruction set;
wake, in a second cycle, instructions dependent upon the wake instruction set to augment the wake instruction set;
and wherein the select logic selects instructions from the wake instruction set based upon program order.
6 . The non-transitory computer readable storage medium of claim 5 wherein for each additional cycle the wakeup block wakes instructions dependent upon the wake instruction set until all instructions are awake.
7 . The non-transitory computer readable storage medium of claim 5 wherein the wakeup block includes an instruction dependency vector characterizing instruction dependency.
8 . The non-transitory computer readable storage medium of claim 5 wherein the wakeup block includes an instruction picked vector characterizing picked instructions.
9 . A method, comprising:
waking, in a first cycle, all instructions dependent upon a first selected instruction to form a wake instruction set;
waking, in a second cycle, instructions dependent upon the wake instruction set to augment the wake instruction set; and
selecting instructions from the wake instruction set based upon program order.
10 . The method of claim 9 further comprising, for each additional cycle, waking instructions dependent upon the wake instruction set until all instructions are awake.
11 . The method of claim 9 further comprising processing an instruction dependency vector characterizing instruction dependency.
12 . The method of claim 9 further comprising processing an instruction picked vector characterizing picked instructions.