Transcript اسلايد۷
پردازش موازی
و
پایپالین
پردازش موازی:
• پردازش موازی به معنی به کارگیری تکنیک
های متنوع در پردازش همزمان داده هاست که
به منظور افزایش سرعت محاسبات سیستم های
کامپیوتری مورد استفاده قرار می گیرد .مثال
وجود چندپردازنده در یک سیستم یا وجود
چندین واحد اجرایی یا وجود چندین ALU
نمونه هایی از پردازش موازی هستند.
• (Single Instruction Stream Single Data Stream) SISD -1
• دارای یک CPUهستند که یک دستور روی یک
داده می توانند اجرا کنند .یعنی یک واحد
کنترل و یک ALUدارند .بعضی منابع این نوع
را معماری فن نیومن نیز میگویند.
• (Single Instruction Stream Multiple Data Stream) SIMD -2
• یک واحد کنترل و چندین واحد پردازشگر
( )PE:Processing elementدارند .واحد کنترل برای
همه PEها یک دستور صادر می کند و PEها
دستور را روی داده ها مختلف انجام می دهند.
• آرایه های پردازنده ( ) Array Processorدر این
دسته هستند.
• مثال زیر از یک ماشین
SIMDرا نشان می دهد
که به آن ماشین برداری
( )vector machineگویند.
این ماشین دارای n
واحد محاسباتی ()ALU
است که ورودی ها به
صورت بردارهای nتایی
A
B
A+B
وارد می شوند و هر ALU
روی یک 9مؤلفه 5از 4
این
6
3
9
مثل جمع 3را
عملی
بردار
1
4
2
انجام می 5دهد3 .
11
9
11
16
4
1
8
8
7
8
3
8
Input vectors
A
B
Vector ALU
Output vector
(Multiple Instruction Stream Single Data Stream) MISD -3
فقط از نظر تئوری حائز اهمیت است چون عمال
هیچ سیستمی با چنین سازمانی ساخته نشده
است .در برخی منابع گفته شده که سیستم های
تحمل پذیر خطا ( )Fault tolerantدر این دسته
هستند.
همچنین پایپالین نیز در برخی منابع نوعی
MISDمعرفی شده است و شاید کامپیوترهای
آرایه ای تپنده ( )Systolic- arrayنیز MISD
هستند.
(Multiple Instruction Stream Multiple Data MIMD -4
)Stream
می توانند چندین برنامه را در یک زمان روی
داده های متفاوت اجرا کنند .سیستم های چند
شکل زیر یک چند پردازنده را نشان می دهد
اشتراکی استفاده می کند.
حافظه
Shared
که از یک memory
cpoa
CPU
cpoa
CPU
cpoa
CPU
cpoa
CPU
Bus
به منظور کاهش تداخل دسترسی ها ،هر
پردازنده می تواند حافظه محلی نیز داشته
Localاست.
memoriesشده
باشد که در شکل زیر نمایش داده
Shared memory
cpoa
CPU
cpoa
CPU
cpoa
CPU
Bus
توجه :طبقه بندی های فوق همه معماری
ها را پوشش نمی دهد.
cpoa
CPU
• پایپالین (خط لوله)(pipeline) :
• پایپالین تکنیکی است که یک عمل سری را به
عملیات جزئی تفکیک می کند و هر عمل جزئی
همزمان با سایر عملیات جزئی قابل انجام است.
• در واقع پایپالین از تعدادی بند()state, stage
تشکیل شده است که هر بند وظیفه خاصی به عهده
دارد و بندها می توانند همزمان عملیات خاص
خود را انجام دهند.
• مثال فرض کنید که خط لوله شامل 4بند است و
(کارها) taskها به ترتیب وارد این بندها می
شوند.
• فرض کنید هر بند یک کالک به طول می انجامد،
بنابراین
• به ازای هر بند یک ثبات (لچ) الزم است و
به ثباتهای کالک زده می شود تا بندها با
هم سنکرون شوند .پریود کالک باید طوری
تنظیم شود که بندها فرصت کنند عملیات
بند
خروج 1
.
خود را کامل کنند
خروج 2
خروج 3
زمان
2 3
3 4
4 5
5 6
4
3
1
1 2
2
1 2 3
1 1 2 3
4
B
• پایپالین محاسباتی:
• این مدل برای پیاده سازی
عملیات ممیز شناور ،ضرب
اعداد ممیز ثابت و سایر بند
اعمال محاسباتی انجام می
شود.
• فرض کنید بخواهیم دو عدد
نرمال شده ممیز شناور 𝑋
𝑎 = 𝐴 × 2و 𝑏 𝑌 = 𝐵 × 2را
با هم جمع و تفریق
بند
نماییم A,B .مانتیس و a,b
نما هستند.
R
1
بند 2
ثبات هایی که با Rمشخص
شده اند برای ذخیره نتایجبند
4
میانی استفاده شده اند.
عملیاتی که در این 4بند
انجام می شوند شامل:
A
مانتیس
3
b
نما
a
R
حاصل مقایسه مقایسه
نماها با
تفریق
تنظیم
مانتیس
R
R
انتخاب نمای
مناسب
جمع یا
تفریق
مانتیس
ها
R
R
نرمال کردن
نتیجه
تنظیم
نما
R
R
• پایپالین دستور:
• سیکل دستور یک سیکل
ترکیبی است که با کمک
پایپالین می توان مراحل
را روی هم انداخت .مثال
فرض کنید در یک ماشین
مراحل اجرای دستور
عبارتند از:
-1واکشی دستور )(FI
-2ترجمه دستور و محاسبه
آدرس موثر )(DA
-3واکشی عملوند )(FO
-4اجرا و ذخیره حاصل در
یک مکان مناسب
واکشی
دستور
Segment 1:
ترجمه دستور
و محاسبه
آدرس موثر
Segment 2:
yes
?Branch
واکشی
عملوند
از حافظه
Segment 3:
اجرای
دستور
Segment 4:
yes
?Interrupt
Interrupt
handling
No
Update PC
Empty pipe
• انواع مخاطرات در پایپالین:
• مخاطرات ساختاری:
ناشی از کمبود منابع مانند حافظه مثال
حافظه دستور و آدرس یکسان هستند پس عمل FI
و FOهمزمان نمی توانند اجرا شوند.
• مخاطرات داده ای:
ناشی از وابستگی بین دستورات مثال یک دستور
در مرحله FOنیاز به واکشی عملی دارد که
در همان لحظه توسط دستور قبلی در حال
تولید است.
• مخاطرات کنترلی:
ناشی از وجود دستورات انشعاب بخصوص انشعاب
شرطی مثال ممکن یک دستور انشعاب ترتیب