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