Content deleted Content added
review: rm WP:DUPLINK via redirect |
review: spell out. mark unsourced section. clarification and thinning. |
||
Line 43:
# If input [[operand]]s are available (in processor registers, for instance), the instruction is dispatched to the appropriate [[functional unit]]. If one or more operands are unavailable during the current clock cycle (generally because they must be fetched from [[Computer memory|memory]]), the processor stalls until they are available.
# The instruction is executed by the appropriate functional unit.
# The functional unit writes the results back to the [[register file]].
Often, an in-order processor has a [[bit vector]] recording which registers will be written to by a pipeline.<ref>{{cite web |url=https://pages.cs.wisc.edu/~swilson/gem5-docs/minor.html#sb |title=Inside the Minor CPU model: Scoreboard |author=<!--Not stated--> |date=2017-06-09 |access-date=2023-01-09}}</ref> If any input operands have the corresponding bit set in this vector, the instruction stalls. Essentially, the vector performs a greatly simplified role of protecting against register hazards. Thus out-of-order execution uses 2D matrices whereas in-order execution uses a 1D vector for hazard avoidance.
=== Out-of-order processors ===
{{unreferenced section}}
This new paradigm breaks up the processing of instructions into these steps:
# Instruction fetch.
Line 58 ⟶ 59:
# Only after all older instructions have their results written back to the register file, then this result is written back to the register file. This is called the graduation or retire stage.
The key concept of
The benefit of
== Dispatch and issue decoupling allows out-of-order issue ==
|