IP Library › Granted Patent US 10,831,504
Granted Patent B2
US 10,831,504 · App. 16/150,051 · Granted Nov 10, 2020

Processor with hybrid pipeline capable of operating in out-of-order and in-order modes

Inventors: Miguel Comparan (Kirkland, WA); Andrew D. Hilton (Durham, NC); Hans M. Jacobson (White Plains, NY); Brian M. Rogers (Durham, NC); Robert A. Shearer (Woodinville, WA); Ken V. Vu (Cary, NC); Alfred T. Watson, III (Austin, TX)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/3867G06F9/30079G06F9/30145G06F9/30189G06F9/384G06F9/3836G06F9/3838G06F9/3842G06F9/3851G06F9/3861G06F9/3869G06F9/3873
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,831,504
App. No.
16/150,051
Granted
Nov 10, 2020
Kind
B2
Abstract

A method and circuit arrangement provide support for a hybrid pipeline that dynamically switches between out-of-order and in-order modes. The hybrid pipeline may selectively execute instructions from at least one instruction stream that require the high performance capabilities provided by out-of-order processing in the out-of-order mode. The hybrid pipeline may also execute instructions that have strict power requirements in the in-order mode where the in-order mode conserves more power compared to the out-of-order mode. Each stage in the hybrid pipeline may be activated and fully functional when the hybrid pipeline is in the out-of-order mode. However, stages in the hybrid pipeline not used for the in-order mode may be deactivated and bypassed by the instructions when the hybrid pipeline dynamically switches from the out-of-order mode to the in-order mode. The deactivated stages may then be reactivated when the hybrid pipeline dynamically switches from the in-order mode to the out-of-order mode.

Claims (48)

1. A circuit arrangement, comprising:

a hybrid pipeline including a plurality of pipeline stages configured to execute at least one instruction stream, wherein the plurality of pipeline stages includes a dispatch stage, wherein the dispatch stage is configured to dispatch instructions to an issue queue when the hybrid pipeline is in an out-of-order mode, and wherein the dispatch stage is configured to bypass the issue queue when the hybrid pipeline is in an in-order mode; and

control logic coupled to the hybrid pipeline and configured to dynamically switch the hybrid pipeline between the out-of-order and in-order modes to selectively execute instructions from the at least one instruction stream using out-of-order and in-order pipeline processing, wherein the control logic includes a mode selector configured to survey one or more upcoming instructions in the at least one instruction stream to determine a power requirement of at least one portion of the instruction stream, and to dynamically switch the hybrid pipeline between the out-of-order and in-order modes based on a comparison between a first performance rating corresponding to the out-of-order mode and a second performance rating corresponding to the in-order mode,

wherein the out-of-order mode is selected in response to the first performance rating exceeding the second performance rating, and

wherein the dispatch stage is further configured to:

assess a quantity of out-of-order instructions located in the issue queue and awaiting execution by the execution unit;

assess a quantity of in-order instructions that have bypassed the issue queue and that are located in at least one latch and awaiting execution by the execution unit; and

prioritize an execution order of a first out-of-order instruction located in the issue queue over a second in-order instruction located in the at least one latch to be executed by the execution unit based on the assessed quantity of out-of-order instructions being greater than the assessed quantity of in-order instructions such that the first out-of-order instruction is executed by the execution unit before the second in-order instruction.

2. The circuit arrangement of claim 1 , wherein each pipeline stage from the plurality of pipeline stages is used in executing out-of-order instructions when the hybrid pipeline is in the out-of-order mode.

3. The circuit arrangement of claim 1 , wherein a portion of pipeline stages from the plurality of pipeline stages are not used in executing in-order instructions when the hybrid pipeline is in the in-order mode.

4. The circuit arrangement of claim 3 , further comprising a pipeline stage power controller configured to:

deactivate each pipeline stage from the plurality of pipeline stages that is not used in executing the in-order instructions to dynamically switch the hybrid pipeline from the out-of-order mode to the in-order mode, and

reactivate each deactivated pipeline stage in executing the out-of-order instructions to dynamically switch the hybrid pipeline from the in-order mode to the out-of-order mode.

5. The circuit arrangement of claim 4 , wherein the pipeline stage power controller is further configured to:

deactivate the issue queue when the hybrid pipeline is dynamically switched from the out-of-order mode to the in-order mode; and

activate the issue queue when the hybrid pipeline is dynamically switched from the in-order mode to the out-of-order mode.

6. The circuit arrangement of claim 5 , wherein the dispatch stage is further configured to dispatch each out-of-order instruction to the activated issue queue to await issuance to an activated execution unit included in the hybrid pipeline when in the out-of-order mode.

7. The circuit arrangement of claim 1 , further comprising rename logic configured to:

enable an out-of-order instruction that is renaming a register location to locate to a new physical register and update a map table to reflect an updated location of the out-of-order instruction based on the location of the new physical register when the hybrid pipeline is in the out-of-order mode,

enable an in-order instruction that is renaming a register location to read the map table to determine the register location for the in-order instruction when the hybrid pipeline is in the in-order mode, and

prevent the in-order instruction that is renaming the register location to locate to a new physical register when the hybrid pipeline is in the in-order mode.

8. The circuit arrangement of claim 1 , wherein the dispatch stage is further configured to flush the reorder buffer of each out-of-order instruction stored in the reorder buffer when the hybrid pipeline is transitioned from the out-of-order mode to the in-order mode.

9. The circuit arrangement of claim 8 , wherein the pipeline stage power controller is further configured to deactivate each pipeline stage from the plurality of pipeline stages that is not used in executing the in-order instructions after each out-of-order instruction stored in the reorder buffer is flushed from the reorder buffer.

10. The circuit arrangement of claim 1 , wherein the hybrid pipeline is configured to consume less power when in the in-order mode than when in the out-of-order mode.

11. The circuit arrangement of claim 1 , wherein each pipeline stage that is deactivated when the hybrid pipeline is in the in-order mode is located on a power island isolated from each pipeline stage that is not deactivated when the hybrid pipeline is in the in-order mode.

12. The circuit arrangement of claim 1 , wherein the issue queue is configured to queue each instruction dispatched thereto until the queued instruction is ready to execute.

13. A method to facilitate operation for a hybrid pipeline to execute at least one instruction stream using out-of-order processing and in-order processing, comprising:

executing, by the hybrid pipeline, at least one instruction stream, wherein the hybrid pipeline includes a plurality of stages;

dispatching instructions to an issue queue when the hybrid pipeline is in an out-of-order mode;

bypassing the issue queue when dispatching instructions when the hybrid pipeline is in an in-order mode; and

dynamically switching the hybrid pipeline between the out-of-order and the in-order modes to selectively execute instructions from the at least one instruction stream using out-of-order and in-order pipeline processing, including using a mode selector to survey one or more upcoming instructions in the at least one instruction stream to determine a power requirement of at least one portion of the instruction stream and to dynamically switch the hybrid pipeline between the out-of-order and in-order modes based on a comparison between a first performance rating corresponding to the out-of-order mode and a second performance rating corresponding to the in-order mode,

wherein the out-of-order mode is selected in response to the first performance rating exceeding the second performance rating, and

wherein the dispatching further comprises:

assessing a quantity of out-of-order instructions located in the issue queue and awaiting execution by the execution unit;

assessing a quantity of in-order instructions that have bypassed the issue queue and are located in at least one latch and awaiting execution by the execution unit; and

prioritizing an execution order of a first out-of-order instruction located in the issue queue over a second in-order instruction located in the at least one latch to be executed by the execution unit based on the assessed

quantity of out-of-order instructions being greater than the assessed quantity of in-order instructions such that the first out-of-order instruction is executed by the execution unit before the second in-order instruction.

14. The method of claim 13 , wherein each pipeline stage from the plurality of pipeline stages is used in executing out-of-order instructions when the hybrid pipeline is in the out-of-order mode.

15. The method of claim 13 , wherein a portion of pipeline stages from the plurality of pipeline stages are not used in executing in-order instructions when the hybrid pipeline is in the in-order mode, the method further comprising:

deactivating each pipeline stage from the plurality of pipeline stages that is not used in executing the in-order instructions to dynamically switch the hybrid pipeline from the out-of-order mode to the in-order mode; and

reactivating each deactivated pipeline stage in executing the out-of-order instructions to dynamically switch the hybrid pipeline from the in-order mode to the out-of-order mode.

16. The method of claim 15 , further comprising:

deactivating the issue queue when the hybrid pipeline is dynamically switched from the out-of-order mode to the in-order mode;

activating the issue queue when the hybrid pipeline is dynamically switched from the in-order mode to the out-of-order mode; and

dispatching each out-of-order instruction to the activated issue queue to await issuance to an activated execution unit included in the hybrid pipeline when in the out-of-order mode.

17. The method of claim 13 , further comprising:

flushing the reorder buffer of each out-of-order instruction stored in the reorder buffer when the hybrid pipeline is transitioned from the out-of-order mode to the in-order mode; and

deactivating each pipeline stage from the plurality of pipeline stages that is not required in executing the in-order instructions after each out-of-order instruction stored in the reorder buffer is flushed from the reorder buffer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2018
From: COMPARAN, MIGUEL; SHEARER, ROBERT A.; HILTON, ANDREW D.; JACOBSON, HANS M.; ROGERS, BRIAN M.; VU, KEN V.; WATSON, ALFRED T., III
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047287/0959 →
Continuity (3)
Continuation 15096805 · Apr 12, 2016
Continuation 13801503 · Mar 13, 2013
Related Publication 20190034208A1 · Jan 31, 2019