XX Chapter16 InstructionLevelParallelismAndSuperscalarProcessors PDF
XX Chapter16 InstructionLevelParallelismAndSuperscalarProcessors PDF
Processors
Luis Tarrataca
[email protected]
CEFET-RJ
1 Overview
Scalar Processor
Superscalar Processor
Constraints
2 Design Issues
Machine Parallelism
Register Renaming
4 References
Scalar Processor
Scalar Processor
• Integer operations;
Functional unit:
Scalar Processor
• Integer operations;
Superscalar Processor
Superscalar Processor
How do you think this next evolution step is obtained? Any ideas?
Superscalar Processor
How do you think this next evolution step is obtained? Any ideas?
Superscalar processor
However...
However...
• Resource Hazards;
• Data Hazards:
• RAW
• WAR
• WAW
• Control Hazards;
Constraints
• Data dependency;
• Procedural dependency;
• Resource conflicts;
Data dependency
Example
• With no dependency:
• two instructions can be fetched and executed in parallel;
In general:
Instructions must be delayed until its input values have been produced.
Procedural Dependencies
Resource Conflict
• Resource examples:
• Bus;
• Memory;
• Registers;
• ALU;
Design Issues
• Register Renaming;
• Branch Prediction
• Superscalar Execution
• Superscalar Implementation
Important distinction:
• Instruction-level parallelism?
• Machine-level parallelism?
Instruction-level parallelism
Instructions on the:
Machine Parallelism
• Determined by:
• Number of instructions that can be fetched at the same time;
In essence:
In essence:
What factors influence this ability to locate these instructions? Any ideas?
In essence:
What factors influence this ability to locate these instructions? Any ideas?
In essence:
What factors influence this ability to locate these instructions? Any ideas?
What do you think each one of these policies does? Any ideas?
• Instructions are fetched two at a time and passed to the decode unit;
• Any number of instructions may be in the execution stage at any one time:
• Up to the maximum degree of machine parallelism across all functional units.
• Data dependency;
• Procedural dependency.
• As a result:
• Processor cannot look ahead of the point of conflict;
• Instructions are issued from the window with little regard for original order:
• No conflicts or dependencies must exist!
• Then the program execution will behave correctly;
In conclusion:
In conclusion (1/2):
In conclusion (2/2):
What are the main conclusions you can draw from instruction issue
policies? Any ideas?
What are the main conclusions you can draw from instruction issue
policies? Any ideas?
Cause: Multiple instructions competing for the use of the same registers:
Problem: Multiple instructions competing for the use of the same registers:
Problem: Multiple instructions competing for the use of the same registers:
Register Renaming
Example
Example
Example
But how can we gain a sense of how much performance is gained with
such strategies?
But how can we gain a sense of how much performance is gained with
such strategies?
Figure: Speedups of various machine organizations without procedural dependencies (Source: [Stallings, 2015])
• Y -axis is the mean speedup of the superscalar over the scalar machine;
• 2nd : duplicates the load/store functional unit that accesses a data cache;
• 1st graph, no register naming is allowed, whilst in the 2nd graph it is;
6 In this window:
• Instructions no longer form a sequential stream;
8 Instructions are put back into sequential order and their results recorded.
References I
Stallings, W. (2015).
Pearson Education.