Techniques for instruction group formation for decode-time instruction optimization based on feedback
US-9733940-B2 · Aug 15, 2017 · US
US11314516B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11314516-B2 |
| Application number | US-201815875611-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 19, 2018 |
| Priority date | Jan 19, 2018 |
| Publication date | Apr 26, 2022 |
| Grant date | Apr 26, 2022 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems and methods of selecting a collection of compatible issue-ready instructions for parallel execution by functional units in a superscalar processor in a single clock cycle. All possible instructions (opcodes) to be executed by the functional units are pre-arranged into several scenarios based on potential resource conflicts among the instructions. Each scenario includes multiple groups of predefined instructions. During operation, concurrently for all the groups, an issue-ready instruction is identified with reference to each group based on group-specific selection policies. Further, based on the identified instructions, predefined policies are applied to select one or more scenarios and select among the picks of the selected scenarios. As a result, the output instructions of the selected scenarios are issued for parallel execution by the functional units.
Opening claim text (preview).
What is claimed is: 1. A method of scheduling compatible issue-ready instructions for execution by functional units in a processor, said method comprising: accessing an instruction queue comprising a plurality of issue-ready instructions; identifying a first instruction from said instruction queue, wherein said first instruction is comprised in a first group of instructions; identifying a second instruction from said instruction queue, wherein said second instruction is comprised in a second group of instructions, wherein said first group of instructions and said second group of instructions are both comprised in a first scenario of a plurality of scenarios, wherein each scenario of said plurality of scenarios comprises a different set of instruction opcodes, wherein each set of said instruction opcodes is defined to avoid conflicts among said plurality of issue-ready instructions with respect to parallel execution of instructions of said plurality of issue-ready instructions by corresponding functional units of said processor, wherein said first scenario comprises instructions corresponding to a set of said instruction opcodes, wherein said instructions of said first scenario include said first instruction and said second instruction, and wherein further said first instruction and said second instruction are compatible with respect to said parallel execution; and selecting said first instruction and said second instruction for issuing to corresponding functional units of said processor for parallel execution, wherein said selecting comprises selecting said first scenario from said plurality of scenarios based on a determination that an instruction that is comprised in said first and second groups of instructions of said first scenario is identified from said instruction queue. 2. The method of claim 1 , wherein said identifying said first instruction and said identifying said second instruction are performed concurrently. 3. The method of claim 1 , wherein each scenario of said plurality of scenarios comprises instructions, wherein said instructions of said each scenario of said plurality of scenarios comprises a first priority group, and wherein said determination further comprises a determination that said instruction that is comprised in said first and second groups of instructions of said first scenario is also comprised in said first priority group of said first scenario. 4. The method of claim 3 further comprising, concurrently for multiple groups in said plurality of scenarios, identifying an instruction from said instruction queue that is comprised in a respective group of said multiple groups, wherein said multiple groups comprise said first group of instructions and said second group of instructions of said first scenario, and wherein said selecting said first scenario is further based on respective priority levels associated with said plurality of scenarios. 5. The method of claim 3 further comprising, concurrently for multiple groups of said plurality of scenarios, identifying an instruction from said instruction queue that is comprised in a respective group of said multiple groups, wherein said multiple groups comprise said first group of instructions and said second group of instructions of said first scenario, and wherein said selecting said first scenario is further based on a determination that no instruction comprised in said instruction queue is comprised in a first priority group of any scenario that has a higher priority level than said first scenario. 6. The method of claim 3 further comprising: concurrently for multiple groups of said plurality of scenarios, identifying an instruction from said instruction queue that is comprised in a respective group of said multiple groups, wherein said multiple groups comprise said first group of instructions and said second group of instructions of said first scenario; responsive to a determination that a third instruction comprised in a third group of instructions of said first scenario is identified from said instruction queue, selecting an identified instruction from a fourth group of instructions of said first scenario without selecting an identified instruction from a fifth group of instructions of said first scenario, wherein any instruction comprised in said fourth group of instructions is compatible with said third instruction, and wherein further said fifth group of instructions comprises an instruction that is incompatible with said third instruction. 7. The method of claim 3 further comprising: concurrently for multiple groups of said plurality of scenarios, identifying an instruction from said instruction queue that is comprised in a respective group of said multiple groups, wherein said multiple groups comprise said first group of instructions and said second group of instructions of said first scenario, and wherein further said first scenario is a default scenario; and responsive to a determination that said instruction queue comprises no instruction that is comprised in any first priority group of said plurality of scenarios, selecting identified instructions from groups of said default scenario for issuing for parallel execution. 8. The method of claim 3 further comprising: concurrently identifying respective instructions from said instruction queue that are comprised in multiple groups of instructions of said plurality of scenarios, wherein said plurality of scenarios further comprises a second scenario, and wherein said second scenario comprises a first group and a second group; and responsive to a determination that no instruction comprised in said second group of said second scenario is identified from said instruction queue, selecting an identified instruction that is comprised in said first group of said second scenario for issuing with said first instruction and said second instruction for parallel execution. 9. The method of claim 1 , wherein said second instruction is identified according to a finding process that is different from a finding process used for said identifying said first instruction when said second instruction is comprised in both said first group of instructions and said second group of instructions, and wherein said identifying said first instruction and said identifying said second instruction comprise: identifying said first instruction from said instruction queue according to a find-first process; and identifying said second instruction from said instruction queue according to a find-last process, wherein said second instruction is comprised in both said first group of instructions and said second group of instructions. 10. The method of claim 1 , wherein said identifying said first instruction comprises selecting said first instruction from multiple instructions according to a find-first process, and wherein further said multiple instructions are each comprised both in said instruction queue and in said first group of instructions. 11. The method of claim 1 , wherein said selecting said first scenario is also based on non-zero detection of one or more of said first group of instructions and said second group of instructions. 12. A processor comprising: a plurality of functional units operable to execute compatible instructions in parallel; and issue logic coupled to said plurality of functional units and configured to issue said compatible instructions to said plurality of functional units, wherein said issue logic comprises: first logic configured to: identify a first instruction from an instruction queue, wherein said first instruction is comprised in a first group of instructions; and identify a second instruction from said instruction queue, wherein said sec
Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution · CPC title
using a plurality of independent parallel functional units · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.