talianpaip talianpaip ialah satu teknik utk meningkatkan prestasi mesin dgn melakukan arahan...
Post on 21-Dec-2015
223 views
TRANSCRIPT
Talianpaip
• Talianpaip ialah satu teknik utk meningkatkan prestasi mesin dgn melakukan arahan bertindih utk mengurangkan masa perlaksanaan. Ini merupakan kunci kepantasan CPU pd hari ini.
1
Pipelining Is Natural!
• Laundry Example
• Aini, Boon, Chong, David each have one load of clothes to wash, dry, and fold
• Washer takes 30 minutes
• Dryer takes 30 minutes
• “Folder” takes 30 minutes
• “Stasher” takes 30 minutesto put clothes into drawers
A B C D
Sequential Laundry
• Sequential laundry takes 8 hours for 4 loads
• If they learned pipelining, how long would laundry take?
30Task
Order
B
C
D
ATime
3030 3030 30 3030 3030 3030 3030 3030
6 PM 7 8 9 10 11 12 1 2 AM
Pipelined Laundry: Start Work ASAP
• Pipelined laundry takes 3.5 hours for 4 loads!
Task
Order
12 2 AM6 PM 7 8 9 10 11 1
Time
B
C
D
A
303030 3030 3030
Pipelining Lessons
• Talian tidak mempercepatkan pendaman satu tugas, ia mempercepatkan truput utk keseluruhan beban kerja.
• Multi tugas dilaksanakan serentak dgn menggunakan sumber yg berlainan.
• Keupayaan speedup = Bil. segmen talianpaip
• Kadar talianpaip dihadkan oleh segmen talianpaip yg terlembap
• Ketidakseimbangan pjg segmen talianpaip mengurangkan speedup
• Masa utk penuhkan talianpaip & pengosongan talianpaip mengurangkan speedup.
6 PM 7 8 9
Time
B
C
D
A
303030 3030 3030Task
Order
Pengenalan
• Dlm sistem tipikal kepantasan dicapai melalui teknik keselarian dlm semua peringkat: Multi-user, multi-tasking, multi-processing, multi-programming, multi-threading, compiler optimizations.
• Talianpaip : adl teknik pertindihan operasi semasa perlaksanaan.
• Different types of pipeline: instruction pipeline, operation pipeline, multi-issue pipelines.
Apakah talianpaip?
2
• Ia spt automobile assembly line.• Ia m’punyai bbrp langkah atau langkah atau segmen. • Setiap segmen melakukan arahan atau operasi yg
berbeza.• Segmen2 ini disambung menjadikan paip.• An inst or operation enters through one end and
progresses through the stages and exit through the other end.
• Talianpaip ialah teknik perlaksanaan yg mengeksplotasikan keselarian sesama arahan dlm aliran arahan berjujukan.
Krateria2 Talianpaip
• Truput: Bil. item (cars, instructions, operations) yg keluar drpd talianpaip per unit masa. – Ex: 1 inst / clock cycle, 10 cars/ hour, 10 fp operations /cycle.
• Masa segmen: Matlamat pereka talianpaip ialah keseimbangan masa setiap segmen talianpaip. (Balanced pipeline) – masa segmen = Masa arahan dlm mesin yg bukan talianpaip /
bil.segmen.
– Dlm kebanyakan kes, masa segmen = mak (masa utk semua segmen).
• CPI : Pipeline yields a reduction in cycles per instruction. CPI approx = stage time.
A Machine Without Pipelines
I1 I2 I3
Below is a diagram which shows the execution of three instructions in sequence.
Computer Instructions
ExecutionTime
Time
A Machine With Pipelines
I1
I2
I3
Computer Instructions
}Instructions
are overlapped
Time
Below is a diagram to show the execution of three instructions which are overlapped.
ExecutionTime
Instruction Composition
A single instruction executing within a machine normally consist of a few segments which performs specific tasks.
An example of an instruction which has 6 segments:-
1) Fetch instruction from memory. (IFetch)
2) Decode the instruction. (Dcd)
3) Calculate the effective address. (Eadd)
4) Fetch operand from memory. (Mem)
5) Execute the instruction. (Exec)
6) Store results in the proper place (or location). (WB)
Space Time Diagram
A space-time diagram is normally used to represent the execution of instructions in a pipeline.Below is an example of a space time diagram.
Whereby there are six instructions executing (I1 to I6) and each instruction has four segments.
IFetch Dcd Exec Mem WB
IFetch Dcd Exec Mem WB
IFetch Dcd Exec Mem WB
IFetch Dcd Exec Mem WB
IFetch Dcd Exec Mem WB
IFetch Dcd Exec Mem WBProgram Flow
Time
Pipeline Performance - Example2
• Assume times for five functional units of a pipeline to be: 10ns, 8ns, 10ns, 10ns and 7ns. Overhead 1ns per stage. Compute the speed of the data path.
• Pipelined: Stage time = MAX(10,8,10,10,10,7) + overhead
= 10 + 1 = 11ns.This is the average instruction execution time at steady state.
• Non-pipelined: 10+8+10+10+7 = 45ns• Speedup = 45/11= 4.1 times
Masalah2 Talianpaip•Kebergantungan Data
Masalah yg wujud pabila dua arahan bersebelahan dalam talian paip ingin mencapai secebis data yg berada dlm lokasi memori yg sama.
•Percabangan Arahan
Masalah yg berlaku pabila branch perlu dilaksanakan dan arahan2 pre-fetched yg lain dlm talian paip akan/mesti dibuang.
Kebergantungan Data
Dlm cth ini, andaikan arahan terdiri drpd 4 segment, dan arahan satu (I1) dan arahan dua (I2) mencapai lokasi memori yg sama.
FI DA FO EX
FI DA FO EX
Instruction Execution
I1
I2
Both instructions are trying to access the same variable at the same time.
Selesaian Masalah Kebergantungan Data
• Hardware Interlocks (membabitkan perkakasan)
• Operand Forwarding (membabitkan perkakasan)
• Delayed Load (membabitkan perisian)
Hardware Interlocks
FI DA FO EX
FI DA FO EX
Instruction Execution
I1
I2
Ia mengesan masalah kebergantungan data dan lengahkan arahan kedua.
Operand Forwarding
Ia mengesan masalah kebergantungan data dan hantar (forwards) keputusan arahan satu ke dlm arahan berikutnya.
FI DA FO EX
FI DA FO EX
Instruction Execution
I1
I2
The offending instructions will have the output of one, sent directly into the next instruction.
Delayed LoadIa mengesan masalah kebergantungan data ketika aturcara tersebut dikompilasikan. Pengkompilasi kemudiannya akan memasukkan arahan no-operation di antara arahan2 yg terbabit.
FI DA FO EX
FI DA FO EX
Instruction Execution
I1
I2
FI DA FO EXNOP
Percabangan ArahanWhat if instruction I1 is a branch instruction to I3?
.......... what happens to I2?
FI DA FO EX
FI DA FO EX
Instruction Execution
I1
I2
FI DA FO EXI3
Selesaian Arahan Bercabang
• Pre-fetch Target Instruction
• Branch Target Buffer, A form of cache implementation (but for instructions)
• Loop Buffer Find out more details for
these • Branch Prediction solutions ..
• Delayed Branch
Operasi Talianpaip• Apakah yg memudahkan?
–Semua arahan adl sama panjang
–sedikit format arahan
–memori operan hanya wujud ketika muat & simpan
• Apakah yg menyusahkan?–Katakan hanya ada satu memori (structural hazard)
–masalah arahan2 bercabang (control hazard)
–Arahan yg bergantung kpd arahan sebelumnya (data hazards)
Bencana Talianpaip
• Bencana akan mengurangkan prestasi talian drpd ideal speedupnya:
• Structural hazard: Konflik sumber. Perkakasan tidak boleh menyokong kesemua arahan gabungan yg wujud dlm simultaneous overlapped execution.
• Data hazard: Pabila arahan memerlukan keputusan drpd arahan sebelumnya.
• Control hazard: Akibat drpd cabangan2 & arahan lain yg memberi kesan kpd PC.
Structural Hazards
• Pabila lebih drpd satu arahan dlm talianpaip yg ingin mencapai sumber di mana ini menyebabkan laluan data mengalami structural hazard.
• Cth sumber spt: register file, memori, ALU.• Selesaian: Melengahkan talianpaip utk satu kitaran
jam apabila konflik tersebut dikesan. Hasilnya ialah pipeline bubble.
• Komflik capaian memori dan bgmn ia diatasi dengan melengahkan arahan. Problem: one memory port.
Data Hazard
• Consider the inst sequence:
ADD R1,R2,R3 ; result is in R1
SUB R4,R5,R1
AND R6,R1,R7
OR R8,R1,R9
XOR R10,R1,R11
All instructions use R1 after the first inst.
Selesaian- Data Hazard• Selalunya diselesaikan oleh data forwarding atau
register forwarding (bypassing or short-circuiting).• Bgmn? The data selected is not really used in
identification flag (ID) but in the next stage: ALU.• Forwarding works as follows:• Keputusan ALU drpd buffer EX/MEM selalunya
disuapbalik ke selak input ALU.• If the forwarding hardware detects that its source
operand has a new value, the logic selects the newer result than the value read from the register file.
Perlengahan Talianpaip
• Stall adl perlengahan dlm kitaran yg disbbkan oleh sebarang bencana yg tlh dinyatakan.
• Speedup :
1/(1+pipeline stall per instruction)* Number of stages
• Jadi apakah speedup utk talianpaip unggul tanpa stall?
• Bil. Kitaran yg diperlukan utk pemenuhan talian paip mungkin boleh dimasukkan dlm penghitungan kepurataan stall per arahan.