View
219
Download
0
Embed Size (px)
Citation preview
1
Pertemuan 21Parallelism and Superscalar
Matakuliah : H0344/Organisasi dan Arsitektur Komputer
Tahun : 2005
Versi : 1/1
2
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• Menjelaskan konsep dasar parallelism and superscalar
3
Outline Materi
• Overview
• Design Issue
4
Overview
The essence of the superscalar approach is the ability to execute instructions independently in different pipelines. The concept can be further exploited by allowing instructions to be execute d in an order different from the program order
Integer register file Floating-point register file
5
Overview
Superscalar versus superpipelined
Fetch Decode Execute Write
Suc
cess
ive
inst
ruct
ion
Base machine
Superpipelined
Superscalar
Time in base cycle
1 2 3 4 5 6 7 8 9
6
Overview
The fundamental limitations to parallelism:
• True data dependency
• Procedural dependency
• Resources conflicts
• Output dependency
• Antidependency
7
OverviewEffect of dependencies
Fetch Decode Execute Write
No dependency
Data dependency(i1 uses data computed by i0)
Resource conflict(i0 and i1 use the same
function unit)
Time in base cycle
1 2 3 4 5 6 7 8 9
i0
i1
i0
i1
i0
I1/branch
i2
i3
i4
i5
i0
i1
Procedure dependency
8
Design Issue
Instruction level parallelism exists when instructions in a sequence are independent and thus can be executed in parallel by overlapping.
Machine parallelism is a measure of the ability of the processor to take advantage of instruction level parallelism. Parallel parallelism is determined by the number instructions that can be fetched and executed at the same time (number of pipeline) and the speed and sophistication of the mechanisms that the processor uses to find independent instructions.
Instruction level parallelism and machine parallelism
Load R1 R2 Add R3 R3, “1”
Add R3 R3, “1” Add R4 R3, R2
Add R4 R4, R2 Store [R4] R0
9
Design IssueInstruction issue policy
• In order issue with in-order completion
• In order issue with out-of-order completion
• Out-of-order issue with in-order completion
10
Design Issue In order issue with in-order completion
i1 i2
i3 i4
i3 i4
i4
i5 i6
i6
i1 i2
i4
i5
i6
i1
i3 i1 i2
i3 i4
i5 i6
1
2
3
4
5
6
7
8
Decode Execute Write Cycle
11
Design IssueIn order issue with out-of-order completion
i1 i1
i3 i4
i4
i5 i6
i6
i1 i2
i4
i5
i6
i1 i3
i1
i2
i3
i4
i5
i6
1
2
3
4
5
6
7
8
Decode Execute Write Cycle
12
Design Issue Out-of-order issue with in-order completion
i1 i1
i3 i4
i5 i6
i1 i2
i4
i5
i6
i1 i3
i1
i2
i3
i4
i5
i6
1
2
3
4
5
6
7
8
I1, I2
I3, I4
I4, I5, I6
i5
Decode Windows Execute Write Cycle
13
Register Renaming
I1 : R3 R3 op R5
I2 : R4 R3 + 1
I3 : R3 R5 + 1
I4 : R7 R3 op R5
I1 : R3b R3a op R5a
I2 : R4b R3b + 1
I3 : R3c R5a + 1
I4 : R7b R3c op R5b
14
Branch prediction
Static program
Instruction fetch and branch prediction
Instruction dispatch
Instruction issue
Window of execution
Instruction execution
Instruction reorder and
commit
15
Superscalar Implementation
Instruction fetch strategies that simultaneously fetch multiple instruction, often by predicting the outcomes of, and fetching beyond, conditional branch instructions. These functions require the use of multiple pipeline fetch and decode stages, and branch prediction logic.
Logic for determining true dependencies involving register values, and mechanisms for communicating these values to where they are needed during executing.
Mechanisms for initiating, or issuing, multiple instructions in parallel.
Resources for parallel execution of multiple instructions, including multiple pipelined functional units and memory hierarchies capable of simultaneously servicing multiple memory references.
Mechanisms for committing the process state in correct order.