Transcript ALU
Department of Computer and IT Engineering
University of Kurdistan
Computer Architecture
Pipeline Processing
By: Dr. Alireza Abdollahpouri
مفهوم پردازش خط لوله اي
D
C
B
A
• مثال :شستن لباسها
• Ali, Bahram, Cathy, Dara
هر كدام مقداري لباس دارند كه مي خواهند بشورند ،خشك كنند و اتو كنند.
• عمل شستن 30دقيقه طول مي كشد.
• عمل خشك كردن 40دقيقه طول مي كشد.
• اتو زدن 20دقيقه طول مي كشد.
2
لباسشويي به صورت متوالي
Midnight
11
10
9
8
7
6 PM
Time
30 40 20 30 40 20 30 40 20 30 40 20
A
T
a
s
k
B
C
D
• در انجام متوالي اعمال مذكور 6ساعت براي كار چهار نفر طول ميكشد.
3
O
r
d
e
r
لباسشويي به صورت خط لوله اي
Midnight
11
10
9
7
8
6 PM
Time
40 20
40
40
30 40
A
T
a
s
k
B
C
D
• انجام اعمال مذكور به صورت خط لوله اي 3.5ساعت براي كار چهار نفر طول ميكشد.
4
O
r
d
e
r
مفهوم پايه
• خط لوله :چندین دستورالعمل به طور همزمان در حال اجر هستند.
• خط لوله به بخش ها یا قطعات تقسیم می شود.
• چرخه ماشین ):(Machine Cycle
– زمان مورد نیاز برای گذر از یک مرحله
– چرخه ماشین بوسیله کندترین مرحله خط لوله معین می گردد.
– معموال چرخه ماشین = پالس ساعت
5
خط لوله ای کردن
• اگر nتکلیف ) (Taskداشته باشیم که زمان اجرای هر کدام از آن ها برابر
با tnباشد (زمان انجام کل تکاالیف = ،)n*tnباا رارا اینکاه تعاداد قطعاات
خط لوله kباشد و هر قطعه در tpانجام پذیر باشد (پالس ساعت = :)tp
• Taskاول در kپالس ) (k*tpانجام می پذیرد.
• Taskهای دیگر هر کدام در پالس زمانی بعدی (یا پاالس زماانی) تکمیال
خواهند شاد ،پاس زماان زم بارای انجاام ) (n-1تکلیاف دیگار برابار باا (n-
1)*tpخواهد شد.
• در نتیجه ارزایش سرعت پردازش خط لوله نسبت به پردازش غیر خط لولاه
S = ntn / (k + n - 1)tp
ای از ررمول زیر محاسبه می گردد:
6
نكاتي در مورد پردازش خط لوله اي
• پردازش خط لوله اي يك كار خاص را سريعتر نميكند،
بلكه توان عملياتي كل را بهبود ميبخشد.
• سرعت خط لوله توسط كندترين مرحله محدود
ميگردد.
9
7
8
6 PM
Time
40 20
40
40
30 40
• با استفاده از منابع مختلف چند كار همزمان باهم
اجرا ميشوند.
A
• در حالت ايده آل ،تسريع به تعداد مراحل خط لوله
است.
B
• مراحل نامتعادل (با زمان اجراي نامساوي) سرعت و
كارايي خط لوله را كاهش ميدهد.
C
• زماني كه براي پر كردن و خالي كردن خط لوله صرف
ميشود نيز باعث كاهش سرعت خط لوله ميگردد.
D
7
T
a
s
k
O
r
d
e
r
پنج مرحله سيكل دستورالعمل
lw
Cycle 1
Cycle 2
Cycle 3
Ifetch
Reg/Dec
Exec
Cycle 4
Mem
Cycle 5
Wr
• Ifetch: Instruction Fetch
– Fetch the instruction from the Instruction Memory
• Reg/Dec: Registers Fetch and Instruction Decode
• Exec: Calculate the memory address
• Mem: Read the data from the Data Memory
• Wr: Write the data back to the register file
8
DLX پنج مرحله مسير داده پردازنده
Instruction
Fetch
Instr. Decode
Reg. Fetch
Execute
Addr. Calc
Next SEQ PC
Adder
4
Zero?
RS1
L
M
D
MUX
Data
Memory
ALU
Imm
MUX MUX
RD
Reg File
Inst
Memory
Address
RS2
Write
Back
MUX
Next PC
Memory
Access
Sign
Extend
WB Data
9
DLX پنج مرحله مسير داده پردازنده
Next SEQ PC
Next SEQ PC
Adder
MUX
MEM/WB
Data
Memory
EX/MEM
ALU
MUX MUX
ID/EX
Reg File
IF/ID
Memory
Address
Imm
Write
Back
Zero?
RS1
RS2
Memory
Access
MUX
Next PC
4
Execute
Addr. Calc
Instr. Decode
Reg. Fetch
WB Data
Instruction
Fetch
Sign
Extend
RD
RD
RD
10
تجسم خط لوله
Time (clock cycles)
Reg
DMem
Ifetch
Reg
DMem
Reg
ALU
DMem
Reg
ALU
O
r
d
e
r
Ifetch
ALU
I
n
s
t
r.
ALU
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7
Ifetch
Ifetch
Reg
Reg
Reg
DMem
Reg
11
مشكالتي كه در پردازش خط لوله اي بوجود مي آيد
• Limits to pipelining: Hazards prevent next instruction from
executing during its designated clock cycle
– Structural hazards: HW cannot support this combination of
instructions
– Data hazards: Instruction depends on result of prior instruction still
in the pipeline
– Control hazards: Caused by delay between the fetching of
instructions and decisions about changes in control flow (branches
and jumps).
12
One Memory Port/ Structural Hazards
Time (clock cycles)
Reg
DMem
Reg
DMem
Reg
DMem
Reg
ALU
Instr 4
Ifetch
ALU
Instr 3
DMem
ALU
O
r
d
e
r
Instr 2
Reg
ALU
I Load Ifetch
n
s
Instr 1
t
r.
ALU
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7
Ifetch
Ifetch
Reg
Ifetch
Reg
Reg
Reg
DMem
Reg
13
One Memory Port/ Structural Hazards
Time (clock cycles)
Stall
Instr 3
DMem
Ifetch
Reg
DMem
Reg
ALU
Ifetch
Bubble
Reg
Reg
DMem
Bubble Bubble
Ifetch
Reg
Reg
Bubble
ALU
O
r
d
e
r
Instr 2
Reg
ALU
I Load Ifetch
n
s
Instr 1
t
r.
ALU
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7
Bubble
DMem
Reg
14
Data Hazard on r1
add r1, r2, r3
sub r4, r1, r3
and r6, r1, r7
or
r8, r1, r9
xor r10, r1, r11
15
وابستگيهاي رو به عقب در زمان
Data Hazard on r1:
xor r10,r1,r11
Dm
Reg
Dm
Im
Reg
Dm
Im
Reg
Dm
Im
Reg
ALU
or r8,r1,r9
W
B
Reg
ALU
and r6,r1,r7
Im
ME
M
ALU
sub r4,r1,r3
E
X
ALU
O
r
d
e
r
add r1,r2,r3
ID/R
FReg
ALU
I
n
s
t
r.
Time (clock cycles)
I
F
Im
Reg
Reg
Reg
Dm
Reg
16
Data Hazard براي حل مشكلForwarding روش
•نتيجه يك مرحله را به محض آماده شدن به جلو برانيم
xor r10,r1,r11
Dm
Reg
Dm
Im
Reg
Dm
Im
Reg
Dm
Im
Reg
ALU
or r8,r1,r9
W
B
Reg
ALU
and r6,r1,r7
Im
ME
M
ALU
sub r4,r1,r3
E
X
ALU
O
r
d
e
r
add r1,r2,r3
ID/R
FReg
ALU
I
n
s
t
r.
Time (clock cycles)
I
F
Im
Reg
Reg
Reg
Dm
Reg
17
Forwardingتغييرات سخت افزاري براي پشتيباني از
NextPC
mux
MEM/WR
EX/MEM
ALU
mux
ID/EX
Registers
mux
Immediate
Data
Memory
18
Data Hazard سه نوع
• Read After Write (RAW)
InstrJ tries to read operand before InstrI writes it
I: add r1,r2,r3
J: sub r4,r1,r3
• Caused by a “Dependence” )in compiler nomenclature(. This
hazard results from an actual need for communication.
19
Data Hazard سه نوع
• Write After Read (WAR)
InstrJ writes operand before InstrI reads it
I: sub r4,r1,r3
J: add r1,r2,r3
K: mul r6,r1,r7
• Called an “anti-dependence” by compiler writers.
This results from reuse of the name “r1”.
20
Data Hazard سه نوع
• Write After Write (WAW)
InstrJ writes operand before InstrI writes it.
I: sub r1,r4,r3
J: add r1,r2,r3
K: mul r6,r1,r7
• Called an “output dependence” by compiler writers
This also results from the reuse of name “r1”.
21
Forwarding حتي با استفاده ازData Hazard
and r6,r1,r7
or
r8,r1,r9
DMem
Ifetch
Reg
DMem
Reg
Ifetch
Ifetch
Reg
Reg
Reg
DMem
ALU
O
r
d
e
r
sub r4,r1,r6
Reg
ALU
lw r1, 0(r2) Ifetch
ALU
I
n
s
t
r.
ALU
Time (clock cycles)
Reg
DMem
Reg
22
Forwarding حتي با استفاده ازData Hazard
and r6,r1,r7
or r8,r1,r9
Reg
DMem
Ifetch
Reg
Bubble
Ifetch
Bubble
Reg
Bubble
Ifetch
Reg
DMem
Reg
Reg
DMem
ALU
sub r4,r1,r6
Ifetch
ALU
O
r
d
e
r
lw r1, 0(r2)
ALU
I
n
s
t
r.
ALU
Time (clock cycles)
Reg
DMem
23
Software Scheduling to Avoid Load Hazards
Try producing fast code for
a = b + c;
d = e – f;
assuming a, b, c, d ,e, and f in memory.
Slow code:
LW
LW
ADD
SW
LW
LW
SUB
SW
Rb,b
Rc,c
Ra,Rb,Rc
a,Ra
Re,e
Rf,f
Rd,Re,Rf
d,Rd
Fast code:
LW
LW
LW
ADD
LW
SW
SUB
SW
Rb,b
Rc,c
Re,e
Ra,Rb,Rc
Rf,f
a,Ra
Rd,Re,Rf
d,Rd
24
22: add r8,r1,r9
36: xor r10,r1,r11
Reg
DMem
Ifetch
Reg
DMem
Ifetch
Reg
DMem
Ifetch
Reg
ALU
r6,r1,r7
Ifetch
DMem
ALU
18: or
Reg
ALU
14: and r2,r3,r5
Ifetch
ALU
10: beq r1,r3,36
ALU
Control Hazard on Branches - Three Stage Stall
Reg
Reg
Reg
Reg
DMem
25
Reg
Branch Stall Impact
• If CPI = 1, 30% branch,
Stall 3 cycles => new CPI = 1.9!
• Two part solution:
– Determine branch taken or not sooner, AND
– Compute taken branch address earlier
26
Four Branch Hazard Alternatives
#1: Stall until branch direction is clear
#2: Predict Branch Not Taken
#3: Predict Branch Taken
#4: Delayed Branch
27
پردازش ابر عددي يا Superscalar
استفاده از چند خط لوله به
صورت موازي
28
Summary : Control and Pipelining
• Just overlap tasks; easy if tasks are independent
• Speed Up Pipeline Depth; if ideal CPI is 1, then:
Cycle Time unpipeline d
Pipeline depth
Speedup
1 Pipeline stall CPI
Cycle Time pipelined
• Hazards limit performance on computers:
– Structural: need more HW resources
– Data (RAW,WAR,WAW): need forwarding, compiler scheduling
– Control: Delayed branch, prediction
29