چرا پردازندههای واقعی با پایپلاین کتابدرسی متفاوتاند
پایپلاین پنجمرحلهای که پیشتر در این مجموعه پوشش داده شد، یک مدل آموزشی سادهشده است. پردازندههای تجاری واقعی پایپلاینینگ را با انتخابهای طراحی شکلگرفته توسط مورد استفاده مورد نظرشان پیادهسازی میکنند، چه آن اولویت کارایی توان باشد، چه سرعت خام تکرشتهای، یا تعادلی بین هر دو.
ARM Cortex-A53: طراحیشده برای کارایی توان
ARM Cortex-A53، که معمولاً در دستگاههای موبایل استفاده میشود، از یک پایپلاین نسبتاً کوتاه و in-order با قابلیت صدور چندگانه محدود استفاده میکند. این انتخاب طراحی مصرف توان پایین و کارایی معقول بهازای هر وات را ترجیح میدهد، چون دستگاههای موبایل بسیار بیشتر توسط عمر باتری و دفع گرما محدود میشوند تا رسیدن به بالاترین کارایی مطلق ممکن در هر ساعت.
Intel Core i7: طراحیشده برای کارایی خام
Intel Core i7، در مقابل، از یک پایپلاین بسیار عمیقتر، اجرای out-of-order تهاجمی، و پیشبینی شاخه پویای گسترده استفاده میکند، که همگی پیشتر از نظر مفهومی در این مجموعه پوشش داده شدند. این انتخابهای طراحی حداکثر کارایی تکرشتهای را در اولویت قرار میدهند، به قیمت مصرف توان بهطور قابلتوجه بالاتر و مساحت سیلیکون بزرگتر و پیچیدهتر اختصاصیافته به هسته پردازنده.
مقایسه طراحی:
ARM Cortex-A53: پایپلاین کوتاهتر، اجرای in-order،
عرض صدور باریکتر، مصرف توان پایینتر
Intel Core i7: پایپلاین عمیقتر، اجرای out-of-order،
عرض صدور پهنتر، مصرف توان بالاترهیچ رویکردی بهطور جهانی برتر نیست؛ هرکدام مبادلهای عمدی و هماهنگ با هدف مورد نظر دستگاه را نشان میدهد، که مستقیماً دیوار توان که پیشتر در این مجموعه بحث شد را منعکس میکند.
بهکارگیری این ایدهها: تسریع ضرب ماتریس
ضرب ماتریس، که پیشتر در این مجموعه در زمینه موازیسازی زیرکلمهای بحث شد، بیشتر از موازیسازی سطح دستور بهرهمند میشود. از آنجا که عملیاتهای منفرد ضرب-و-جمع در سراسر عناصر خروجی مختلف مستقل از یکدیگرند، یک پردازنده سوپراسکالر با چند ALU میتواند چند تا از این عملیاتها را در همان سیکل ساعت اجرا کند.
اجرای پیدرپی:
result[0] = a[0]*b[0] (سیکل 1)
result[1] = a[1]*b[1] (سیکل 2)
با موازیسازی سطح دستور:
result[0] و result[1] بهطور همزمان
در همان سیکل محاسبه میشوند،
با استفاده از دو ALU جداگانهترکیب این با موازیسازی زیرکلمهای که پیشتر بحث شد، بهره را بیشتر تشدید میکند، چون هرکدام از دستورات موازی صادرشده در یک سیکل واحد میتوانند خودشان چند مقدار داده را از طریق عملیاتهای سبک SIMD پردازش کنند.
چرا مطالعه تراشههای واقعی اهمیت دارد
مقایسه این دو پردازنده واقعی نشان میدهد پایپلاینینگ و موازیسازی سطح دستور فرمولهای ثابتی نیستند که در همهجا یکسان اعمال شوند، بلکه ابزارهای انعطافپذیری هستند که طراحان بر اساس اهداف مشخص تنظیم میکنند، و یک محاسبه رایج مانند ضرب ماتریس از تقریباً هر تکنیک سختافزاری پوششدادهشده در سراسر این فصل که با هم کار میکنند بهره میبرد.