چند هستهای و ریزپردازندههای چندتراشهای
یک ریزپردازنده چندتراشهای چندین هسته پردازنده را روی یک دای واحد ادغام میکند و حافظههای نهان (کش) و رابط حافظه را به اشتراک میگذارد، به طوری که موازیسازی در سطح نخ (thread-level parallelism) به جای سرعت کلاک بالاتر، رشد عملکرد را هدایت میکند.
Definition
یک پردازنده چند هستهای، یا ریزپردازنده چندتراشهای، یک مدار مجتمع واحد است که شامل چندین هسته پردازنده مستقل است که برخی از منابع روی تراشه و یک سیستم حافظه را به اشتراک میگذارند و برای اجرای همزمان چندین نخ یا برنامه طراحی شده است.
Scope
این موضوع سازماندهی تراشههای چند هستهای را پوشش میدهد: تعداد هستهها و ناهمگونی، سلسله مراتب حافظه نهان مشترک و خصوصی، اتصالات داخلی روی تراشه، و چگونگی مقیاسپذیری عملکرد با هستهها تحت قانون آمدال. این موضوع ساختار سختافزاری سیستمهای چند هستهای را بررسی میکند. این مبحث شامل مکانیزمهای انسجام و سازگاری مشترک با سایر موضوعات حافظه مشترک (حافظه مشترک و انسجام، پروتکلهای انسجام حافظه نهان) و موتور تک هستهای (معماری ریزپردازنده) نمیشود.
Core questions
- چرا پردازندهها از هستههای سریع تکهستهای به هستههای چندگانه روی آوردند؟
- هستهها، حافظههای نهان و اتصالات داخلی چگونه روی یک تراشه سازماندهی میشوند؟
- قانون آمدال چگونه سرعت افزایش یافته ناشی از افزودن هستهها را محدود میکند؟
- چه زمانی هستههای ناهمگون به هستههای یکسان ترجیح داده میشوند؟
Key concepts
- ریزپردازنده چندتراشهای
- موازیسازی در سطح نخ
- حافظههای نهان مشترک در مقابل خصوصی
- اتصال داخلی روی تراشه
- تعداد هسته و مقیاسپذیری
- هستههای ناهمگون (big.LITTLE)
- قانون آمدال
- محدودیتهای توان و حرارتی
Key theories
- قانون آمدال برای مقیاسبندی چند هستهای
- بخش سریالی یک بار کاری، سرعت افزایش یافته قابل دستیابی با افزودن هستهها را محدود میکند؛ این محدودیت توضیح میدهد که چرا صرفاً افزایش تعداد هستهها بازده کاهشی دارد و انگیزه کاهش گلوگاههای سریالی و استفاده از طراحیهای ناهمگون را فراهم میکند.
Mechanisms
یک تراشه چند هستهای چندین هسته را روی یک دای قرار میدهد، معمولاً با حافظههای نهان سطح اول خصوصی، یک حافظه نهان سطح آخر مشترک، و یک شبکه یا حلقه روی تراشه که آنها را به کنترلکنندههای حافظه متصل میکند. بارهای کاری با اجرای نخها روی هستههای مختلف، عملکرد را افزایش میدهند. طراحیهای ناهمگون، هستههای بزرگ با عملکرد بالا را با هستههای کوچک و کارآمد ترکیب میکنند و کار را به مناسبترین هسته زمانبندی میکنند تا تعادل بین سرعت و انرژی برقرار شود.
Clinical relevance
چند هستهای امروزه طراحی غالب پردازندهها است، از تلفنها تا سرورها، زیرا مقیاسبندی فرکانس تحت محدودیتهای توان متوقف شد. ظهور آن بار عملکرد را به نرمافزار موازی منتقل کرد: برنامهها باید چند نخی باشند تا از مزایای آن بهرهمند شوند، که موازیسازی را به یک نگرانی اصلی برنامهنویسی و قانون آمدال را به یک محدودیت عملی در سیستمهای واقعی تبدیل کرده است.
History
ریزپردازندههای چندتراشهای تحقیقاتی مانند Hydra استنفورد در دهه 1990، عصر چند هستهای را پیشبینی کردند. توقف مقیاسبندی فرکانس در حدود 2004-2005، CPUهای اصلی را به طراحیهای دو هستهای و سپس چند هستهای سوق داد. معماریهای ناهمگون که هستههای عملکرد و کارایی را ترکیب میکنند، بعداً رایج شدند، به ویژه در پردازندههای موبایل و لپتاپ.
Debates
- هستههای بیشتر در مقابل هستههای قویتر
- با توجه به توان و مساحت ثابت، طراحان در مورد افزودن هستههای سادهتر بیشتر، هستههای قدرتمندتر کمتر، یا ترکیبی ناهمگون بحث میکنند؛ بهترین انتخاب بستگی به میزان موازی بودن بارهای کاری هدف دارد، با این حال قانون آمدال در مواقعی که بخشهای سریالی قابل توجه هستند، از هستههای قوی حمایت میکند.
Key figures
- Gene Amdahl
- John L. Hennessy
- David A. Patterson
- Kunle Olukotun
Related topics
Seminal works
- hennessy2019
- amdahl1967
Frequently asked questions
- چرا دو برابر کردن تعداد هستهها عملکرد را دو برابر نمیکند؟
- بر اساس قانون آمدال، هر بخشی از یک برنامه که باید به صورت سریالی اجرا شود، مزیت هستههای اضافه شده را محدود میکند. ارتباطات، همگامسازی و رقابت برای منابع مشترک، سربار بیشتری را اضافه میکنند، بنابراین سرعت افزایش یافته واقعی معمولاً بسیار کمتر از مقیاسبندی خطی ایدهآل است.
- هستههای ناهمگون (big.LITTLE) چه هستند؟
- طراحیهای ناهمگون، هستههای بزرگ و با عملکرد بالا را با هستههای کوچک و کممصرف روی یک تراشه ترکیب میکنند. سیستم، کارهای پرتقاضا را روی هستههای بزرگ و کارهای سبک یا پسزمینه را روی هستههای کوچک زمانبندی میکند و کارایی انرژی را بدون فدا کردن حداکثر عملکرد بهبود میبخشد.