1 / 30

معماری سیستم های کامپیوتری

معماری سیستم های کامپیوتری. پردازش خط لوله ای (Pipeline). مهدی ایل بیگی دانشگاه پیام نور دماوند. A. B. C. D. پردازش خط لوله ای (Pipeline). خط لوله ای کردن، معمول است. پردازش خط لوله ای، روشی را برای اجرای همزمان چند دستورالعمل بوجود می آورد. مثال شستن لباس ها:

aldona
Download Presentation

معماری سیستم های کامپیوتری

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. معماری سیستم های کامپیوتری • پردازش خط لوله ای (Pipeline) مهدی ایل بیگی دانشگاه پیام نور دماوند

  2. A B C D • پردازش خط لوله ای (Pipeline) خط لوله ای کردن، معمول است • پردازش خط لوله ای، روشی را برای اجرای همزمان چند دستورالعمل بوجود می آورد. • مثال شستن لباس ها: • A, B, D, Cهر کدام توده ای از لباس را برای شستن، خشک کردن و تا کردن در اختیار دارند. • شستن 30 دقیقه زمان می برد. • خشک کن 40 دقیقه زمان می برد. • اتو کردن 20 دقیقه زمان نیاز دارد.

  3. پردازش خط لوله ای (Pipeline) A B C D شستن ترتیبی • شستن ترتیبی 4 توده لباس، 6 ساعت زمان می برد. نیمه شب 7 8 9 11 6 عصر 10 Time 30 40 20 30 40 20 30 40 20 30 40 20 T a s k O r d e r

  4. پردازش خط لوله ای (Pipeline) 30 40 40 40 40 20 A B C D شستن خط لوله ای شده: • شستن خط لوله ای 4 توده لباس، 3 ساعت و نیم زمان می برد. نیمه شب 7 8 9 11 6 عصر 10 Time T a s k O r d e r

  5. خط لوله ای (Pipeline) مفهوم پایه • خط لوله: چندین دستورالعمل به طور همزمان در حال اجر هستند. • خط لوله به بخش ها یا قطعات تقسیم می شود. • چرخه ماشین (Machine Cycle): • زمان مورد نیاز برای گذر از یک مرحله • چرخه ماشین بوسیله کندترین مرحله خط لوله معین می گردد. • معمولا چرخه ماشین = پالس ساعت

  6. افزایش سرعت پردازش با استفاده از خط لوله دروس خط لوله ای کردن • اگر n تکلیف (Task) داشته باشیم که زمان اجرای هر کدام از آن ها برابر با tn باشد (زمان انجام کل تکالیف = n*tn)، با فرض اینکه تعداد قطعات خط لوله k باشد و هر قطعه در tp انجام پذیر باشد (پالس ساعت = tp): • Task اول در k پالس (k*tp) انجام می پذیرد. • Task های دیگر هر کدام در پالس زمانی بعدی (یک پالس زمانی) تکمیل خواهند شد، پس زمان لازم برای انجام (n-1) تکلیف دیگر برابر با (n-1)*tp خواهد شد. • در نتیجه افزایش سرعت پردازش خط لوله نسبت به پردازش غیر خط لوله ای از فرمول زیر محاسبه می گردد: S = ntn / (k + n - 1)tp

  7. افزایش سرعت پردازش با استفاده از خط لوله دروس خط لوله ای کردن • هرقدر تعداد تکلیف ها (n) بیشتر و بیشتر شود مقدار (k + n - 1) بسمت n میل خواهد کرد. پس درنتیجه فرمول اسلاید قبل به فرمول مقابل تبدیل می شود: S = tn / tp • اگر فرض کنیم زمان لازم برای انجام یک تکلیف بصورت غیر خط لوله ای برابر با زمان انجام اولین تکلیف در پردازش خط لوله ای باشد (tn = ktp) در نتیجه خواهیم داشت: S = ktp / tp = k • و این بدان معنی است که با استفاده از پردازش خط لوله، حداکثر می توانیم k برابر سرعت را افزایش دهیم و چون k تعداد قطعات خط لوله می باشد پس حداکثر میزان تسریع پردازش خط لوله متناسب با تعداد قطعات خط لوله می باشد.

  8. نکاتی در مورد پردازش خط لوله ای دروس خط لوله ای کردن • خط لوله ای به زمان تاخیر یک کار کمکی نمی کند، بلکه توان عملیاتی کل بار کاری را بهبود می بخشد. • نرخ خط لوله محدود به کندترین مرحله است. • اجرای همزمان چند کار نیاز به منابع متفاوتی دارد. • پتانسیل تسریع = تعداد مراحل خط لوله • طول نامتوازن مراحل خط لوله باعث کاهش تسریع می شود. • زمان مصرفی برای پر شدن و خالی شدن خط لوله باعث کاهش تسریع می شود.

  9. خط لوله دستورالعمل دروس خط لوله ای کردن • با فرض اینکه چهار مرحله (برداشت دستور، دیکد و تعیین آدرس موثر، برداشت عملوند و اجرا) برای اجرای یک دستور داشته باشیم، مراحل کلی اجرای دستورات با استفاده از خط لوله 4 قسمتی به شکل مقابل می باشد.

  10. زمانبندی خط لوله دستورالعمل دروس خط لوله ای کردن • نکته: اگر یک وقفه یا انشعاب به دستور دیگر رخ دهد باید، خط لوله خالی بشود.

  11. مشکلاتی که روند معمولی خط لوله ای را مختل می کنند دروس خط لوله ای کردن • دستیابی همزمان دو مرحله به حافظه (یکی برای خواندن دستور و عملوندها و دیگری برای ذخیره نتیجه). این مشکل با استفاده از حافظه های جداگانه برای داده ها و دستورات حل می شود. به این مشکل Structural Hazard نیز می گویند. • وابستگی داده ها (Data Dependency): زمانی که دستوری به نتیجه دستور قلبی نیازمند باشد و نتیجه دستور قبلی آماده نباشد، رخ می دهد. به این مشکل Data Hazard نیز می گویند. • انشعاب: دستورات انشعاب و دستوراتی که مقدار PC را تغییر می دهند روند عادی خط لوله را مختل می نمایند. به این مشکل Control Hazard نیز می گویند.

  12. حل مشکل دسترسی همزمان به حافظه • با استفاده از حافظه های مجزا برای داده و دستور دروس خط لوله ای کردن

  13. حل مشکل دسترسی همزمان به حافظه • با استفاده از ایجاد تاخیر در خط لوله دروس خط لوله ای کردن

  14. مشکل وابستگی داده ها (Data Dependency) دروس خط لوله ای کردن • در شکل زیر دسترسی به مقدار جدید r1، فقط در دستور پایانی (XOR) مقدور می باشد.

  15. حل مشکل وابستگی داده ها • به روش Hardware Interlock دروس خط لوله ای کردن • برای حل مشکل وابستگی داده ها مستقیم ترین روش ایجاد همبندی سخت افزاری است. • مدار همبند مداری است که وظیفه اش شناسایی دستوراتی است که عملوندهای مبدا آن ها مقصد عملوندهای دستورات بعدی در خط لوله است. • این شناسایی باعث می شود تا دستوراتی که منابع آن ها در دسترس نیستند با تاخیر کافی از پالس های ساعت، بموقع اجرا شوند. • این روش ترتیب برنامه را با اضافه کردن سخت افزار و نگهداری تاخیر لازم در آن، حفظ می نماید.

  16. حل مشکل وابستگی داده ها (Data Dependency) دروس خط لوله ای کردن • با استفاده از روش Operand Forwarding (ارسال خروجی ALU به مرحله بعد بصورت سخت افزاری) می توان مشکل را حل کرد.

  17. تغییرات سخت افزاری برای روش ارسال عملوند دروس خط لوله ای کردن • برای حل مشکل وابستگی داده با روش ارسال عملوند به تغییرات نشان داده شده در سخت افزار نیازمند هستیم.

  18. ایجاد Data Hazard حتی با استفاده از ارسال عملوند • در صورتی که عملوند با استفاده از دستور Load (lw) برای استفاده در دستور بعدی آماده شود، عملوند مورد نظر پس از خواندن از حافظه آماده می گردد. در نتیجه در دستور بعدی، ALU دسترسی به عملوند ندارد.

  19. حل مشکل Data Hazard توسط کامپایلر دروس خط لوله ای کردن • کامپایلر می تواند با جابجایی دستورات غیر وابسته به هم، یا اضافه کردن دستور No Operation، تاخیر لازم در بار کردن داده ها را فراهم می کند. به این روش Delayed Load می گویند. • مثال: با فرض اینکه عملوندهای b, c, e, f در حافظه باشند. کامپایلر برای حل مشکل دوجابجایی بین دستورات اعمال می نماید. a = b + c; d = e – f; Slow code: LW Rb,b LW Rc,c ADD Ra,Rb,Rc SW a,Ra LW Re,e LW Rf,f SUB Rd,Re,Rf SW d,Rd Fast code: LW Rb,b LW Rc,c LW Re,e ADD Ra,Rb,Rc LW Rf,f SW a,Ra SUB Rd,Re,Rf SW d,Rd

  20. حل مشکل انشعاب در خط لوله • روش اول: در این روش دستور مقصد انشعاب علاوه بر دستور بعد از انشعاب در خط لوله وارد می شوند. درصورتی که شرط انشعاب صحیح باشد خط لوله از دستور مقصد انشعاب کار را ادامه می دهد. • روش دوم: این روش از یک بافر (Branch Target Buffer (BTB)) که یک حافظه اشتراکی است و آدرس انشعاب اجرا شده قبلی و دستور مقصد برای آن انشعاب را نگهداری می نماید (این بافر همچنین چند دستور بعد از انشعاب را نیز ذخیره می نماید) استفاده می کند. وقتی خط لوله دستور انشعاب را دیکد می کند BTB را برای آدرس دستورالعمل جدید جستجو می نماید، اگر آدرس در BTB وجود داشته باشد، دستور مستقیما در دسترس است و برداشت پیشهنگام دستور برای ادامه مسیر جدید صورت می گیرد. اگر دستور در BTB نباشد خط لوله به دستورات جدید شیفت نموده و دستور مقصد را در BTB برای دسترسی آینده ذخیره می نماید. (این روش برای دسترسی سریع به دستورات مقصد در انشعابی که قبلا اتفاق افتاده است می باشد)

  21. حل مشکل انشعاب در خط لوله • روش سوم: در این روش از یک بافر بنام بافر حلقه (Loop Buffer) استفاده می نماید. در صورت وجود یک حلقه در برنامه، دستورات حلقه بصورت کامل در بافر حلقه ذخیره می گردد. بنابر این دستورات حلقه بدونه دسترسی به حافظه (در هر بار تکرار) اجرا می شوند و تا اینکه آخرین انشعاب از حلقه خارج شود. • روش چهارم: در این روش که Branch Prediction نام دارد با استفده از مدارهای منطقی اضافی نتیجه حاصل از انشعاب را قبل از اجرای آن محاسبه می نماید و خط لوله شروع به دریافت پیش هنگام دستورات مسیر پیش بینی شده می نماید. • روش پنجم: در این روش که Delayed Branch نام دارد کامپایلر دستورات انشعاب را شناسایی و دستوراتی را که به انشعاب وابستگی ندارند و باید اجرا شوند بعد از دستور انشعاب می آورد. درنتیجه تا مشخص شدن نتیجه انشعاب دستورات مفیدی اجرا شده اند.

  22. مثالی برای حل مشکل انشعاب با استفاده از روش انشعاب با تأخیر دروس خط لوله ای کردن

  23. پردازش برداری دروس خط لوله ای کردن • کامپیوتر های معمولی برای انجام محاسبات بر روی آرایه هایی از عملوند ها باید یک به یک عملوند ها را از آرایه ها بخواند و سپس محاسبات را روی آن ها انجام دهد. برای این منظور نیاز به یک حلقه دارد تا به تک تک عملوند ها دسترسی پیدا نماید. • کامپیوتری که قادر به پردازش برداری است اتلاف وقت مربوط به برداشت و اجرای دستورات در حلقه ها، را حذف می نماید و می تواند با یک دستور مثلا دو آرایه را با هم جمع نماید. • قالب دستورات برای چنین کامپیوتری به شکل زیر است:

  24. استفاده از خط لوله برای محاسبه یک ضرب داخلی در عملیات ضرب دو ماتریس برای محاسبه هر درایه از ماتریس حاصلضرب، نیاز به محاسبه یک ضرب داخلی است که بصورت زیر با خط لوله محاسبه می شود.

  25. برگی کردن حافظه پردازنده خط لوله و برداری اغلب نیاز به دستیابی همزمان به دو یا سه منبع دارند. برای حل این مشکل می توان از چند ماژول حافظه استفاده نمود. هر ماژول مجموعه ای از حافظه و رجیستر آدرس و داده مربوط به آن است. مزیت حافظه ماژولی اینست که حافظه را می توان برگی کرد، به این معنی که به ماژول های مختلف حافظه، بر اساس بیت های کم ارزش آدرس، آدرس های متفاوتی تخصیص داد. 25

  26. پردازنده آرایه دروس خط لوله ای کردن • یک پردازنده آرایه پردازنده ای است که محاسبات را بر روی آرایه های بزرگی از داده ها انجام می دهند. • آرایه پرداز الحاقی به عنوان یک نوعی پردازنده کمکی (و مانند یک دستگاه جانبی) به یک کامپیوتر همه منظوره متصل می شود. • هدف از آرایه پرداز الحاقی ایجاد توانایی پردازش برداری کامپیوترهای معمولی با کسری از هزینه لازم برای سوپر کامپیوتر است. • سوپر کامپیوتر یک کامپیوتر تجاری با دستورالعمل های برداری به همراه عملیات حسابی ممیز شناور خط لوله، می باشد.

  27. آرایه پرداز SIMD دروس خط لوله ای کردن • یک آرایه پرداز SIMD، کامپیوتری است با واحد های پردازشی متعدد که بطور موازی کار می کنند. همه پردازشگر ها تحت واحد کنترل مشترک همگام می شوند و روی داده های متعدد کار خواهند کرد (SIMD). مثلا برای یک جمع آرایه ای، داریه های اول دو آرایه در M1 و جفت درایه های دیگر در حافظه های دیگر قرار می گیرند، سپس دستور جمع به تمام پردازشگرها داده می شود و در یک سیکل ساعت حاصل جمع برداری محاسبه می گردد. • هر پردازشگر یک پرچم دارد که اگر یک باشد آن پردازشگر در پردازش شرکت خواهد کرد.

  28. معماری Superpipeline • این معماری بر اساس تقسیم مراحل خط لوله معمولی به چندین زیرمرحله (Sub-Stage) است، تا در نتیجه همپوشانی بیشتری بین مراحل ایجاد گردد و در نهایت تعداد بیشتری دستور در یک کلاک انجام بپذیرد. فرمول زیر میزان بالا رفتن سرعت را بر اساس تعداد مراحل خط لوله (k) و تعداد دستورات (n)، در صورتی که هر مرحله از خط لوله به دو مرحله تقسیم شود محاسبه می نماید. • S = 2(k + (n-1)) / (2k + (n-1))

  29. معماری Superscalar • این معماری تمامی ویژگی های معماری Pipeline را دارا می باشد بعلاوه اینکه توانایی انجام همزمان (Simultaneously) چندین دستورالعمل را در یک مرحله از خط لوله را نیز دارا است. فرمول زیر میزان بالا رفتن سرعت را بر اساس تعداد مراحل خط لوله (k) و تعداد دستورات (n)، در صورتی که هر مرحله از خط لوله به دو مرحله تقسیم شود محاسبه می نماید. • S = (k + (n-1)) / (k + (n-2)/2)

  30. ؟

More Related