خط لوله ای کردن
Download
Report
Transcript خط لوله ای کردن
مهدی ایل بیگی
دانشگاه پیام نور دماوند
1
خط لوله ای کردن ،معمول است
• پررازش خط ر طلول ر طشی،طروشرررطرشطارراشیط
شجاشیطهمزمانطچندطزستورشلعملطاوجروزط
مرطآورز.
• مثالطشستنطلباسطها:
• A, B, D, Cهاطکدشمطتوزهطشیطش طلباسطرشط
ااشیطشستن،ط شکطکرازنطوطتراطکرازنط
زرطش تیارطزشرند.
• شستنط 30زقیق ط مانطمرطااز.
• شکطکنط 40زقیق ط مانطمرطااز.
2
• شتوطکازنط 20زقیق ط مانطنیا طزشرز.
D
C
B
A
شستن ترتیبی
نیمه شب
11
10
8
9
6عصر
7
Time
20
40
20 30
40
20 30
40
20 30
40
30
A
B
C
D
• شستن ترتیبی 4توده لباس 6 ،ساعت زمان می برد.
3
T
a
s
k
O
r
d
e
r
شستن خط لوله ای شده:
نیمه شب
11
10
8
9
6عصر
7
Time
20
40
40
40
40
30
A
T
a
s
k
B
C
D
• شستنط
4
طلول طشیط 4توزهطلباس،ط 3ساعتطوطنیمط مانطمرطااز.
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
دروس خط لوله ای کردن
• هرقردر اعرداد تکلیر هرا ( )nبیشرت و بیشرت شرود مقردار ) (k + n - 1سرمت nمیرل خواهرد
کرد .پس درنتی ه رمول اسالید قبل به رمول مقابل تبدیل می شود:
S = tn / tp
• اگ ررر ررره کن رریم زم رران الز ب ررای ان ررا ی ررک تکلی ر ب ررورت ی ر خ ررط لول رره ای براب ررر ب ررا زم ران
ان ا اولین تکلی در پردازد خط لوله ای باشد ( )tn = ktpدر نتی ه خواهیم داشت:
S = ktp / tp = k
• و این بدان معنی است که برا اسرتداده از پرردازد خرط لولره ،حرداکت مری تروانیم kبرابرر سررعت
را ا زادش دهیم و چون kاعداد قطعات خط لوله می باشد پس حداکت میزان اسریع پرردازد
خط لوله متناسب با اعداد قطعات خط لوله می باشد.
7
دروس خط لوله ای کردن
• خررط لولرره ای برره زمرران ترراخی یررک لررار کمکرری ننرری کنررد ،بلارره ترروان عملیرراای لررل برار لرراری را
بهبود می بخشد.
• نرخ خط لوله محدود به کندترین مرحله است.
• اجرای همزمان چند لار نیاز به منا ع متداوای دارد.
• پتاعسیل اسریع = اعداد مراحل خط لوله
• طول نامتوازن مراحل خط لوله باعث لاهش اسریع می شود.
• زمان م رفی برای پر شدن و خالی شدن خط لوله باعث لاهش اسریع می شود.
8
دروس خط لوله ای کردن
• بر ر ررا ر ر ررره اینار ر رره چ ر ر ررار مرحلر ر رره (برداشر ر ررت
دس ر ر ر ر ررتور ،دیا ر ر ر ر ررد و اعی ر ر ر ر ررین درس م ر ر ر ر ررو ر،
برداش ررت عملون ررد و اجر ررا) بر ررای اجر ررای ی ررک
دس ررتور داش ررته باش رریم ،مراح ررل ک رری اجر ررای
دستورات با استداده از خط لوله 4قسمتی
به شکل مقابل می باشد.
9
دروس خط لوله ای کردن
• ناته :اگر یک وقده یا اعشعاب به دستور دیگر رخ دهد باید ،خط لوله خالی شود.
10
دروس خط لوله ای کردن
.1دس ررتیازی همزمر رران دو مرحل رره ب رره حا ر رره (یک رری بر ررای خوان رردن دس ررتور و عملونر رردها و
دیگری برای ذخی ه نتی ه) .ایرن مشرکل برا اسرتداده از حا ره هرای جدا انره بررای داده
ها و دستورات حل می شود .به این مشکل Structural Hazardنیز می ویند.
.2وا سررت ی داده هررا ) :(Data Dependencyزمرراعی کرره دسررتوری برره نتی رره دسررتور
قلب رری نیازمن ررد باش ررد و نتی رره دس ررتور قب رری م رراده نباش ررد ،رخ م رری ده ررد .ب رره ایررن مش ررکل
Data Hazardنیز می ویند.
.3اعشعاب :دستورات اعشعاب و دستوراای که مقدار PCرا اغیی می دهند رونرد عرادی
خط لوله را مختل می نمایند .به این مشکل Control Hazardنیز می ویند.
11
دروس خط لوله ای کردن
Time (clock cycles)
Ifetch
Reg
Ifetch
Reg
DMem
Reg
Ifetch
Reg
DMem
Reg
DMem
Reg
ALU
Instr 4
Reg
Cycle 6 Cycle 7
ALU
Instr 3
Ifetch
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
Reg
DMem
Reg
12
دروس خط لوله ای کردن
Time (clock cycles)
Instr 3
Reg
Ifetch
Reg
Bubble
Cycle 6 Cycle 7
Reg
DMem
Bubble
Ifetch
Reg
DMem
Bubble
Reg
Reg
Bubble
ALU
Stall
Ifetch
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
Bubble
DMem
Reg
13
دروس خط لوله ای کردن
.) مقدور می باشدXOR( قط در دستور پایاعی،r1 در شکل زیر دست س ی به مقدار جدید
•
and r6,r1,r7
or
r8,r1,r9
xor r10,r1,r11
Ifetch
DMem
Reg
DMem
Reg
DMem
Reg
DMem
Reg
ALU
sub r4,r1,r3
Reg
ALU
Ifetch
ALU
O
r
d
e
r
add r1,r2,r3
ALU
I
n
s
t
r.
ALU
Time (clock cycles)
Ifetch
Ifetch
Reg
Ifetch
Reg
Reg
Reg
DMem
Reg
14
دروس خط لوله ای کردن
•
بررای حرل مشرکل وا سرت ی داده هرا مسرتقیم تررین رود ای راد همبنردی ر ت ا رزاری
است.
•
مرردار همبنررد مررداری اسررت کرره وایدرره اد شناسررایی دسررتوراای اسررت کرره عملونرردهای
مبدا ن ها مق د عملوندهای دستورات عدی در خط لوله است.
•
ای ررن شناس ررایی باع ررث م رری ش ررود ت ررا دس ررتوراای ک رره من ررا ع ن ه ررا در دس ررت س نیس ررتند ب ررا
تاخی لافی از پالس های ساعت ،بموقع اجرا شوند.
•
ایررن رود ترتیررب برنامرره را بررا اتررا ه کررردن ر ت ا رزار و نگ ررداری ترراخی الز در ن،
حدظ می نماید.
15
دروس خط لوله ای کردن
ب رره مرحل رره ع رردALU (ارس ررال خرو رریOperand Forwarding ب ررا اس ررتداده از رود
.ب ورت ت ا زاری) می توان مشکل را حل کرد
•
or
r8,r1,r9
xor r10,r1,r11
Reg
DMem
Reg
DMem
Reg
DMem
Reg
ALU
and r6,r1,r7
Ifetch
DMem
ALU
sub r4,r1,r3
Reg
ALU
O
r
d
e
r
add r1,r2,r3 Ifetch
ALU
I
n
s
t
r.
ALU
Time (clock cycles)
Ifetch
Ifetch
Reg
Ifetch
Reg
Reg
Reg
DMem
Reg
16
دروس خط لوله ای کردن
•
بررای حررل مشررکل وا سررت ی داده بررا رود ارسررال عملونررد برره اغییر ات عشرران داده ش رده
در
ت ا زار نیازمند هستیم.
mux
MEM/WR
EX/MEM
ALU
mux
ID/EX
mux
17
Data
Memory
Registers
NextPC
Immediate
•
در صررورای کرره عملونررد بررا اسررتداده از دسررتور ) Load (lwبررای اسررتداده در دسررتور عرردی مرراده
ش ررود ،عملون ررد م ررورد ن ررر پ ررس از خوان رردن از حا رره م رراده م رری گ ررردد .در نتی رره در دس ررتور ع رردی،
ALUدست س ی به عملوند ندارد.
)Time (clock cycles
18
ALU
Reg
DMem
ALU
Reg
DMem
ALU
Reg
DMem
Reg
Reg
Ifetch
ALU
Reg
DMem
Reg
Reg
Ifetch
Ifetch
lw r1, 0(r2) Ifetch
I
n
s
t
r.
and r6,r1,r7
O
r
d
e
r
sub r4,r1,r6
r8,r1,r9
or
•
•
19
دروس خط لوله ای کردن
لامپ ررایلر م رری توان ررد ب ررا جاب ررایی دس ررتورات یر ر وا س ررته ب رره ه ررم ،ی ررا ات ررا ه ک ررردن دس ررتور No
،Operationتاخی الز در بار کردن داده ها را راهم مری کنرد .بره ایرن رود Delayed Load
می ویند.
مثررال :بررا ررره اینارره عملونرردهای b, c, e, fدر حا رره باشررند .لامپررایلر ب ررای حررل مشررکل
دوجاب ایی بین دستورات اعمال می نماید.
;a = b + c
;d = e – f
Rb,b
Rc,c
Re,e
Ra,Rb,Rc
Rf,f
a,Ra
Rd,Re,Rf
d,Rd
Fast code:
LW
LW
LW
ADD
LW
SW
SUB
SW
Rb,b
Rc,c
Ra,Rb,Rc
a,Ra
Re,e
Rf,f
Rd,Re,Rf
d,Rd
Slow code:
LW
LW
ADD
SW
LW
LW
SUB
SW
•
رود اول :در ایررن رود دسررتور مق ررد اعشررعاب عررالوه بررر دسررتور عررد از اعشررعاب در خررط لولرره وارد
مرری شرروند .درصررورای کرره شرررب اعشررعاب خررلیل باشررد خررط لولرره از دسررتور مق ررد اعشررعاب لررار را
ادامه می دهد.
•
رود دو :ایررن رود از یررک بررا ر )) (Branch Target Buffer (BTBکرره یررک حا رره
اشررت الی اسررت و درس اعشررعاب اجررا شررده قب رری و دسررتور مق ررد بررای ن اعشررعاب را نگ ررداری م ری
نماید (این با ر همچنین چند دستور عد از اعشرعاب را نیرز ذخیر ه مری نمایرد) اسرتداده مری کنرد .وقتری
خررط لولرره دسررتور اعشررعاب را دیاررد مرری کنررد BTBرا بررای درس دسررتورالعمل جدیررد جسررت و مرری
نمای ررد ،اگ ررر درس در BTBوج ررود داش ررته باش ررد ،دس ررتور مس ررتقیما در دس ررت س اس ررت و برداش ررت
پیشر ن ا دسررتور بررای ادامرره مسرری جدیررد صررورت مرری گیر د .اگررر دسررتور در BTBنباشررد خررط لولرره
ب رره دس ررتورات جدی ررد ش رریدت نم رروده و دس ررتور مق ررد را در BTBب ررای دست س ر ی ین ررده ذخی ر ه م رری
نماید( .این رود برای دست سر ی سرریع بره دسرتورات مق رد در اعشرعازی کره قربال اتدرا ا تراده اسرت
می باشد)
20
•
رود سررو :در ایررن رود از یررک بررا ر بنررا بررا ر حلقرره ) (Loop Bufferاسررتداده مرری نمایررد .در
صررورت وجررود یررک حلقرره در برنامرره ،دسررتورات حلقرره ب ررورت لامررل در بررا ر حلقرره ذخیر ه مرری گررردد.
بنررابر ایررن دسررتورات حلقرره بدونرره دست س ر ی برره حا رره (در هررر بررار تا ررار) اج ررا مرری شرروند و تررا اینارره
خرین اعشعاب از حلقه خارج شود.
•
رود چ ررار :در ایررن رود کرره Branch Predictionنررا دارد بررا اسررتدده از مرردارهای منطقرری
ات ررافی نتی رره حاص ررل از اعش ررعاب را قب ررل از اجر ررای ن محاس رربه م رری نمای ررد و خ ررط لول رره ش رررو ب رره
دریا ت پیش هن ا دستورات مسی پیش بینی شده می نماید.
•
رود پ ررن م :در ای ررن رود ک رره Delayed Branchن ررا دارد لامپ ررایلر دس ررتورات اعش ررعاب را
شناسررایی و دسررتوراای را کرره برره اعشررعاب وا سررت ی ندارنررد و بایررد اجررا شرروند عررد از دسررتور اعشررعاب
می ورد .درنتی ه تا مش ص شدن نتی ه اعشعاب دستورات مدیدی اجرا شده اند.
21
دروس خط لوله ای کردن
22
دروس خط لوله ای کردن
•
لامپیوتر های معمولی برای ان ا محاسبات برر روی رایره هرایی از عملونرد هرا بایرد یرک
بره یررک عملونرد هررا را از رایره هررا بخوانرد و سرراس محاسربات را روی ن هررا ان را دهررد.
برای این من ور نیاز به یک حلقه دارد تا به تک تک عملوند ها دست س ی پیدا نماید.
•
لامپیوتری که قرادر بره پرردازد بررداری اسرت اترالم وقرت مربروب بره برداشرت و اجررای
دستورات در حلقه ها ،را حذم می نماید و می تواند با یک دستور مرثال دو رایره را برا
هم جمع نماید.
•
قالب دستورات برای چنین لامپیوتری به شکل زیر است:
23
در عملیررات ترررب دو مرراتریس بررای محاسرربه هررر درایرره از مرراتریس حاصلسرررب ،نیرراز برره محاسرربه یررک ترررب
داخ ی است که ب ورت زیر با خط لوله محاسبه می شود.
24
پردازنده خط لوله و برداری ا لب نیاز به دستیازی همزمران بره دو یرا سره منبرع دارنرد .بررای حرل ایرن مشرکل
مرری ترروان از چنررد مرراهول حا رره اسررتداده نمررود .هررر مرراهول م موعرره ای از حا رره و رجیسررت درس و داده
مربوب به ن است.
مزیررت حا رره مرراهو لی ای سررت کرره حا رره را مرری ترروان بر رری کرررد ،برره ایررن معنرری کرره برره مرراهول هررای مختلر
حا ه ،بر اساس بیت های کم ارزد درس ،درس های متداوای تخ یص داد.
25
25
•
دروس خط لوله ای کردن
یک پردازنده رایره پردازنرده ای اسرت کره محاسربات را برر روی رایره هرای بزر ری از داده هرا ان را مری
دهند.
•
رایرره پرررداز ایلرراعی برره عنرروان یررک نرروکی پردازنررده کمکرری (و ماننررد یررک دسررت اه جررانبی) برره یررک لررامپیوتر
همه من وره مت ل می شود.
•
هدم از رایه پرداز ایلاعی ای اد توانایی پردازد برداری لامپیوترهای معمولی با کسری از هزینه الز
برای سوپر لامپیوتر است.
•
س رروپر ل ررامپیوتر ی ررک ل ررامپیوتر ت رراری ب ررا دس ررتورالعمل ه ررای ب رررداری ب رره هم رراه عملی ررات حس ررازی ممی ررز
شناور خط لوله ،می باشد.
26
•
•
27
دروس خط لوله ای کردن
یررک رایرره پرررداز ،SIMDلررامپیوتری اسررت بررا واحررد هررای پردازو ر ی متعرردد کرره بطررور مرروازی لررار مرری
کننررد .همرره پردازشررگر هررا تحررت واحررد کنت ر ل مشررت هم ررا مرری شرروند و روی داده هررای متعرردد لررار
خواهن ررد ک رررد ( .)SIMDم ررثال ب ررای ی ررک جم ررع رای رره ای ،داری رره ه ررای اول دو رای رره در M1و جد ررت
درایه هرای دیگرر در حا ره هرای دیگرر قررار مری گی نرد ،سراس دسرتور جمرع بره تمرا پردازشرگرها داده
می شود و در یک سیکل ساعت حاصل جمع برداری محاسبه می گردد.
هر پردازشگر یک پرچم دارد که اگر یک باشد ن پردازشگر در پردازد شرکت خواهد کرد.
•
ای ررن معم رراری ب ررر اس رراس تقس رریم مراح ررل خ ررط لول رره معم ررولی ب رره چن رردین زیرمرحل رره ()Sub-Stage
است ،تا در نتی ه همپوشاعی بیشت ی بین مراحل ای اد گردد و در نهایت اعداد بیشت ی دستور در
یک کال ان ا بپذیرد.
رم ر ررول زی ر ررر میر ر رزان ب ر رراال ر ر ررتن س ر رررعت را ب ر ررر
اساس اعرداد مراحرل خرط لولره ) (kو اعرداد
دسررتورات ) ،(nدر صررورای کرره هررر مرحلرره از
خر ر ر ررط لولر ر ر رره ب ر ر ر رره دو مرحلر ر ر رره تقسر ر ر رریم ش ر ر ر ررود
محاسبه می نماید.
))S = 2(k + (n-1)) / (2k + (n-1
28
•
ای ررن معم رراری تم ررامی ویع رری ه ررای معم رراری Pipelineرا دارا م رری باش ررد ع ررالوه اینا رره توان ررایی ان ررا
همزمر رران ) (Simultaneouslyچنر رردین دسر ررتورالعمل را در یر ررک مرحلر رره از خر ررط لولر رره را نیر ررز دارا
است.
رم ر ررول زی ر ررر میر ر رزان ب ر رراال ر ر ررتن س ر رررعت را ب ر ررر
اساس اعرداد مراحرل خرط لولره ) (kو اعرداد
دسررتورات ) ،(nدر صررورای کرره هررر مرحلرره از
خر ر ر ررط لولر ر ر رره ب ر ر ر رره دو مرحلر ر ر رره تقسر ر ر رریم ش ر ر ر ررود
محاسبه می نماید.
)S = (k + (n-1)) / (k + (n-2)/2
29