نمودار یک پردازندهٔ دو هسته‌ای
یک پردازندهٔ دوهسته‌ای Core 2 Duo E6750 اینتل
یک پردازندهٔ دوهسته‌ای Athlon X2 6400+ ای‌ام‌دی
**پردازندهٔ چند هسته‌ای** از اجزای رایانشی و محاسباتی است که دو یا چند پردازنده مستقل واقعی (به نام «هسته») دارد، که واحدهایی برای خواندن و اجرای دستورالعمل‌های برنامه هستند. این دستورالعمل‌ها عموماً دستورالعمل‌های معمولی CPU از قبیل اضافه کردن، انتقال داده‌ها، و انشعاب هستند، اما هسته‌های متعدد می‌توانند در همان زمان دستورالعمل‌های بیشتری را اجرا کنند که موجب افزایش سرعت کلی برای برنامه‌های تابع رایانش موازی می‌شود. تولیدکنندگان معمولاً هسته‌ها را بر روی یک قطعه مدار مجتمع (IC) ادغام می‌کنند، یا بر روی چند قطعه در یک بسته تراشه عرضه می‌کنند. پردازنده‌هایی که امروزه در کامپیوترهای شخصی استفاده می‌شوند همگی چند هسته ای هستند.

یک پردازنده چند هسته ای بر روی یک بسته فیزیکی پیاده شده‌است. طراحان گاهی چندین هسته را در کنار هم قرار می‌دهند. پردازنده‌ها ممکن است از حافظه نهان مشترک استفاده کنند و از روش‌های ارتباط message passing و حافظه مشترک درون هسته ای بهره گرفته شود. توپولوژی معمول شبکه‌ها شامل bus , ring, مش بندی دو بعدی و crossbar است. سیستم‌های چند هسته ای همگن شامل هسته‌های همسان و سیستم‌های چندهسته ای ناهمگن شامل هسته‌های ناهمسان هستند. برای نمونه big.LITTLE هسته‌های ناهمگنی را داراست که دستورالعمل‌های یکسانی را به اشتراک می‌گذارند. مانند سیستم‌های تک هسته ای، سیستم‌های چند هسته ای ممکن است دارای معماری‌هایی چون VLIW, superscalar, vector, multithreading باشند. پردازنده‌های چندهسته ای در حوزه وسیعی شامل کاربردهای عمومی و embedded, شبکه و پردازش سیگنال‌های دیجیتال و واحدهای گرافیکی حضور دارند.

بهبود عملکرد پردازنده‌های چند هسته ای به الگوریتم نرم‌افزاری و پیاده‌سازی وابسته است. حد تسریع این سامانه‌ها محدود است و به قانون Amdahl معروف است.

چکیده
-----

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

پس زمینه
--------

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

دو هسته ای (Dual Core): دارای دو عدد پردازنده یا CPU در یک تراشه واحد هستند و به‌طور همزمان کار می‌کنند. تکنولوژی Multi-Tasking در پردازنده‌های دو هسته ای کارامدتر از Multi-Tasking در پردازنده‌های تک هسته ای یا single core processor است.

چهار هسته ای (Quad Core): دارای چهار عدد پردازنده یا CPU در یک تراشه واحد هستند و به‌طور همزمان کار می‌کنند. تکنولوژی Multi-Tasking در پردازنده‌های چهار هسته ای کارامدتر از Multi-Tasking در پردازنده‌های دو هسته ای است.

شش هسته‌ای (Hexa core): دارای شش عدد پردازنده یا CPU در یک تراشه واحد هستند و به‌طور همزمان کار می‌کنند. تکنولوژی Multi-Tasking در پردازنده‌های شش هسته ای کارامدتر از Multi-Tasking در پردازنده‌های چهار هسته ای است.

هشت هسته ای (Octa core): دارای هشت عدد پردازنده یا CPU در یک تراشه واحد هستند و به‌طور همزمان کار می‌کنند. تکنولوژی Multi-Tasking در پردازنده‌های هشت هسته ای کارامدتر از Multi-Tasking در پردازنده‌های شش هسته ای است.

تاریخچه مختصری از ریزپردازنده‌ها
--------------------------------

اینتل اولین میکروپروسسوری به نام ۴-bit ۴۰۰۴ در اوایل ۱۹۷۰ که اساساً فقط یک ماشین متراکم بود را تولید کرد.
به‌طور خلاصه بعد ازآن ۸۰۰۸ و۸۰۸۰ را تولید کرد که هر دو ۸ بیتی بودند و موتورلا نیز با ارائه ۶۸۰۰ که مانند اینتل ۸۰۸۰ بود خود را با بازار تطبیق داد. شرکت‌ها سپس ریزپردازنده ۱۶ بیتی را ساختند.

قانون مور
---------

یک قاعده راهنما برای ساختار کامپیوتر به عنوان قانون مور شناخته شده‌است. در ۱۹۶۸ مور بیان کرد که تعداد ترانزیستورهای روی تراشه تقریباً هر ساله دو برابر می‌شوند. او این نتیجه را در سال‌های بعد اصلاح کرد. در سال ۱۹۷۵ بیان کرد که هردو سال تعداد دوبرابر می‌شوند.

نیازمندی به چند هسته‌ای‌ها
--------------------------

به دلیل پیشرفت در تکنولوژی مداری و محدودیت کارایی در زمینه‌های گسترده پردازنده‌های انتزاعی تراشه‌های چند پردازنده یا تکنولوژی چند هسته‌ای مسیر اصلی در طراحی یک cpu شده‌است.
تسریع فرکانس پردازنده نقش خودش را در اوایل این دهه اجرا کرده‌است. ساختارهای کامپیوتری به یک راه حل برای افزایش کارایی نیاز داشتند اضافه کردن یک هسته پردازشی علاوه بر یک تراشه مشابه به صورت تئوری کارایی دو برابر را نتیجه می‌دهد و گرما را کمتر هدر می‌دهد. اگرچه که در عمل سرعت واقعی هر هسته کمتر از سریعترین پردازندهٔ تک هسته‌ای در سپتامبر ۲۰۰۵ شرکت IEEE Reviewer کاملاً متوجه این نکته شد که تا افزایش کلاک بهMHZ ۴۰۰ (در سرعت کلاک) توان مصرفی۶۰٪ افزایش پیدا می‌کند اما رویکرد دو هسته‌ای به این معنی است که شما می‌توانید به اهمیت بالا بردن کارایی بدون نیاز به اجرا در سرعت کلاک ویرانگر دست پیدا کنید.
چند هسته‌ای یک مفهوم جدید نیست. به عنوان مفهومی که قبلاً در سیستم‌های جاسازی شده و برای برنامه‌های کاربردی خاص برای مدتی استفاده شده‌است می‌باشد. اما به‌تازگی تکنولوژی به یک جریان اصلی با استفاده از اینتل و دستگاه‌های ریز پیشرفته AMD)) که بسیاری از تراشه‌های چند هسته‌ای موجود تجاری را معرفی می‌کند تبدیل شده‌است. برخلاف ماشین‌های ۲یا۴ هسته‌ای در دسترس تجاری در سال ۲۰۰۸ بعضی از متخصصین بر این باورند که به وسیله پردازنده‌های تعبیه شده در سال ۲۰۱۷ می‌توانند ۴۰۹۶ هسته را پشتیبانی کنند. پردازنده‌های سرور می‌توانند از ۵۱۲ هسته و تراشه‌های کامپیوترهای رو میزی می‌توانند از ۱۲۸ هسته استفاده کنند. این نرخ رشد گیج‌کننده‌است چراکه تراشه‌های رومیزی جاری در اوج استفاده از ۴ هسته هستند و تک هسته‌ای‌ها در ۳۰ سال گذشته‌استفاده می‌شدند.

مبناهای چند هسته‌ای
-------------------

شرح زیر مخصوص هر طرح چند هسته‌ای نیست اما تقریباً یک مرور کلی از ساختارهای چند هسته‌ای است اگرچه تولیدکننده طراحی را متفاوت از دیگری انجام می‌دهد ساختارهای چند هسته‌ای نیاز دارند تا با جنبه‌های معین تطابق یابند. پیکربندی پایه یک ریزپردازنده در شکل ۲ دیده می‌شود.
حافظه نهان سطح ۱ نزدیکترین به پردازنده‌است. این یک حافظه خیلی سریع است که اغلب برای ذخیره کردن داده به وسیله پردازنده استفاده‌است. حافظه نهان سطح ۲ بزرگتر از حافظه نهان سطح ۱ است و برای یک هدف یکسان طراحی شده‌است. حافظه اصلی بزرگتر و کندتر از حافظه نهان است. یک مثال برای حافظه اصلی:ذخیره کردن یک فایل word که الان در حال ویرایش آن هستیم.
بسیاری از سیستم‌ها بین ۱GB تا ۴GB از حافظه اصلی و تقریباً ۳۲KB از حافظه نهان سطح ۱ و ۲MB از حافظه نهان سطح ۲ را دارند. سرانجام زمانی‌که داده در حافظه نهان یا حافظه اصلی موجود نیست سیستم باید آن را از دیسک سخت بدست آورد که زمان بیشتری را نسبت به خواندن از حافظه اصلی می‌برد. اگر ما دو هسته را کنار هم قرار دهیم کاملاً واضح است که یک روش ارتباطی بین هسته و حافظه اصلی نیاز است که این موضوع معمولاً یا به وسیله استفاده از یک باس ارتباطی تک یا شبکه به هم متصل بدست می‌آید.
رویکرد گذرگاه در مدل حافظه مشترک استفاده می‌شود در حالیکه رویکرد شبکه درون ارتباطی در مدل حافظه‌ای توزیع شده‌استفاده می‌شود؛ و تقریباً بعد از ۳۲ هسته، گذرگاه سربار زیادی به وسیله مقداری از پردازش ارتباط، رقابت که باعث کاهش کارایی می‌شود، پیدا می‌کند؛ بنابراین یک گذرگاه ارتباطی یک مقیاس پذیر محدودی دارد.
به نظر می‌آید که پردازنده‌های چند هسته‌ای جواب مناسبی برای عیب‌های پردازنده‌های تک هسته‌ای به وسیلهٔ افزایش پهنای باند در حالیکه اتلاف توان را کاهش می‌دهد، هستند.
جدول ۱ که در زیر آمده‌است مقایسهٔ پردازندهٔ تک هسته و چند هسته (در این مثال ۸ هسته) است که به وسیلهٔ مرکز تحقیق و بسته‌بندی در تکنولوژی Georgia ارائه شده‌است.
با منبع ولتاژ مشابه و هسته‌های چند گانه که در فرکانس پایین‌تر اجرا می‌شوند، می‌بینیم که تقریباً با افزایش ۱۰ برابری در پهنای باند را داریم در عین حال مصرف توان کل به یک چهارم کاهش پیدا می‌کند.

پیاده‌سازی چند هسته‌ای
----------------------

در هر تکنولوژی ساختارهای چند هسته از تولیدکنندگان متفاوت بسیار متنوع اند:
در بعضی ساختارهای چند هسته‌ای، هسته‌های متفاوت، عملکردهای متفاوتی دارند؛ بنابراین آن‌ها یکنوع نیستند. تفاوت در ساختارها برای Intel’s core 2 Due در زیر ثبت شده‌است.

پردازنده‌های دو هسته‌ای AMD و Intel
-----------------------------------

اینتل و ای.ام. دی تولیدکننده‌های اصلی ریز پردازنده‌ها هستند.
اینتل تعداد زیادی پردازنده چند هستهٔ متفاوت تولید می‌کند: پنتیوم D در کامپیوترهای رومیزی استفاده می‌شود. Core 2 Due هم در محیط لب تاپ و هم در رومیزی و پردازنه Xeon در سرویس دهنده‌ها استفاده می‌شود.
AMD دارای طیف Althon برای کامپیوترهای رومیزی Tution برای لب تاپ‌ها و Opteron برای سرویس دهنده‌ها و ایستگاه‌های کاری است.
اگر چه Core 2 Due و Althon 64x۲ هر دو بر روی یک پایه‌اند ولی ساختارهای آن‌ها بسیار متفاوت‌اند.

شکل ۴ ساختار Core 2 Due و Athlon 64xL را به ترتیب نشان می‌دهد هر دو ساختار پردازنده‌های دوهسته‌ای هم جنس هستند.
Core 2 Due با مدل حافظه اشتراکی با حافظه نهان سطح ۱ و حافظه نهان سطح ۲ که حداکثر نرخ GB/sec ۹۶ را فراهم می‌کند منطبق هستند.
اگر یک حافظه نهان سطح، miss کند هر دوی حافظه نهان سطح ۲ و دومین هستهٔ حافظه نهان سطح ۱ را به صورت موازی قبل از ارسال تقاضا به حافظه اصلی، بررسی می‌کند.
در مقابل Athlon مدل حافظه توزیعی با حافظه نهان سطح ۲ مجزا را دنبال می‌کند. این حافظه‌های نهان سطح ۲ واسط درخواست‌های سیستمی را به اشتراک می‌گذارند و نیاز به گذرگاه را حذف می‌کند.
واسط درخواست سیستم هسته هارا با یک کنترلر حافظه روی تراشه متصل می‌کند و یک اتصال داخلی که Hyper transport (فرا انتقال) نامیده شده‌است، به‌طور مؤثر تعداد باسن‌های مورد نیاز در یک سیستم را کاهش می‌دهد و تنگناها را کاهش و پهنای باند را افزایش می‌دهد و در عوض Core 2 Due در یک واسط باس استفاده می‌کند. Core 2 Due همچنین کنترل حرارتی و توان واحدهای روی تراشه را دارد.
هیچ فایدهٔ کارایی قطعی از باس در مقابل اتصال داخلی وجود ندارد؛ و Core 2 Due و Athlon 64x۲ هر یک به معیارهای کارایی یکسان با پروتکل‌های ارتباطی متفاوت دست یافتند.
یک شرکت Sony – Toshiba – IBM (STI) سلول پردازنده برای استفاده در play station ۳ سونی ساخت بنابراین سلول به‌طور عادی برای بازی / کارهای گرافیکی بهینه شده‌است که به معنی توان پردازشی بالا برای برنامه‌های کاربردی بازی است. سلول یک پردازنده چند هسته‌ای غیر یکنواخت که شامل ۹ هسته و یک عنصر پردازش توان و هشت عنصر پردازش همکاری‌کننده‌است که در شکل ۵ دیده می‌شود.
با ساختار پهن باند بلد درنگ مربوط به CELL تبادل داده همروند با حافظه توسط هر پردازنده ممکن است که PPE (عنصر پردازش توان) فضای اشغال شده‌ای در ساختار ۶۴ power pc بیتی است و عملکرد سیستم را مدیریت می‌کند و توابع را کنترل می‌کند هر SPE (عنصر پردازش همکاری‌کننده) مجموعه دستور العمل‌هایی که از دستور العمل‌های SIMP ۱۲۸ بیتی استفاده می‌کند را ساده می‌کند.
دستیبای مستقیم به حافظه برای انتقال داده بین منبع محلی و حافظه اصلی استفاده شده‌است که برای تعداد زیا دی تبادل داده‌های همروند حافظه اجازه می‌دهد عنصر پردازش توان و عنصر پردازش همکاری توسط عنصر متصل‌کننده یعنی باس که ارتباطات داخلی را فراهم می‌کند به هم متصل شوند. خصوصیات جالب دیگری از سلول واحد مدیریت توان و واحد مدیریت حرارتی است. توان و حرارت نگرانی‌های اساسی در طراحی ریز پردازنده‌ها هستند. واحد مدیریت توان برای کاهش توان، فرم کاهش یا توقف با کاملاً قطع کردن یک واحد را اجازه می‌دهد.
TMV واحد مدیریت حرارتی شامل یک سنسور خطی و ۱۰ سنسور حرارتی دیجیتال است که برای نشان دادن دمای سراسر تراشه و فراهم کردن یک هشدار سریع در زمانی‌که دماها در حال افزایش در یک ناحیه خاصی از تراشه‌است استفاده شده‌است.

توانایی اندازه‌گیری و تخمین تغییرات توان و دما یک مزیت بزرگی در آن پردازنده‌ای که نباید زیاد گردم شود یا همچنین توان زیادی را دریافت کند دارد.

چالش‌های چند هسته‌ای
--------------------

داشتن هسته‌های چند گانه روی یک تراشه باعث غلبه کردن بر چندین مشکل است. مدیریت توان و دما دو نگرانی هستند که به صورت بالقوه با افزایش هسته‌های چند گانه افزایش می‌یابند. انسجام حافظه نهان و حافظه اصلی یک چالش دیگر است به‌طوری‌که همه طرح‌هایی که در بالا بحث شد دارای حافظه نهان توزیع شده سطح و در بعضی موارد حافظه‌های نهان سطح ۲ که باید هماهنگ باشند و سرانجام استفاده کامل از پردازنده چند هسته مسئله دیگری است. اگر برنامه نویسان برنامه‌های کاربردی که از فایده هسته‌های چند گانه استفاده می‌کنند را ننویسند هیچ بهره‌ای نخواهند برد و در بعضی موارد این به معنای از دست دادن کارایی است.
برنامه کاربردی نیاز دارند تا نوشته شوند بنابراین اجزای متفاوت می‌توانند به صورت موازی اجرا شوند بدون هیچ ارتباطی با اجرای دیگر آن برنامه کاربردی که به صورت هم‌زمان اجرا می‌شوند.

توان و دما
----------

اگر دو هسته روی یک تراشه بدون هیچ تغییری قرار داده شوند. تراشه در تئوری ده برابر یک تراشه تنها توان مصرف می‌کند و حرارت تولید می‌کند. در مثال نمایی اگر یک پردازنده بسیار گرم شود این امکان وجود دارد که حتی کامپیوتر شما بسوزد. برای تخمین زدن هر طرح بالا هسته‌های چند گانه در یک فرکانس پایین‌تر برای کاهش مصرف توان اجرا می‌شوند. برای کاهش مصرف توان غیرضروری خیلی طرح‌ها با یک واحد کنترل توان که وظیفه خاموش کردن هسته‌هایی که استفاده نمی‌شوند را دارند یا موظف به محدود کردن مقدار توان هستند ترکیب می‌شوند. با خاموش کردن هسته‌هایی که استفاده نمی‌شوند (که البته این روش دردسرهای خاص خود را دارد چون روشن شدن مجدد هسته خود مسلزم زمان است) و استفاده از Clock going مقدار زیادی از نشست تراشه کاهش می‌یابد. برای کمتر شدن گرمای تولیدی به وسیله هسته‌های چند گانه روی یک تراشه تنها تراشه به‌طور ساختار یافته‌است تعداد نقاط زیاد نشود و حرارت روی خام تراشه پخش می‌شوند.
همان‌طور که در شکل ۷ دیده می‌شود اکثریت گرما در پردازنده‌های CELL در عنصر پردازش توان پراکنده شده‌است؛ و مابقی در سطح عناصر پردازشی همکار پخش می‌شوند.
یک پردازنده CELL یک روند متداول برای ساخت نشان دهندهٔ دمای سیستم با یک خسگر خطی و ده حسگر دیجیتال داخلی را طی می‌کند.

انسجام حافظه نهان
-----------------

انسجام حافظه نهان به خاطر حافظه نهان سطح ۱و۲ توزیع شده، یک نگرانی در محیط چند هسته‌ای است؛ چون هر هسته دارای حافظه نهان مخصوص به خودش است. یک کپی از داده‌ای که در آن حافظه نهان است، شاید همیشه نسخه به روز شده اطلاعات نباشد.
برای مثال، فرض کنید یک پردازنده دو هسته‌ای که هر هسته آن یک بلوک از حافظه را به حافظه نهان شخصی خودش می‌آورد را داریم. هر هسته یک مقدار را در یک مکان خاص می‌نویسد.
وقتی که هسته دوم تلاش می‌کند مقداری را از حافظه نهان خودش بخواند مقدار خوانده شده مقدار به روزرسانی شده نخواهد بود مگر اینکه مدخل حافظه نهان خودش تامعتبر باشد یا حافظه نهان MISS کرده باشد.
این MISS کردن حافظه نهان مدل حافظهٔ نهان هستهٔ دوم را مجبور به روزرسانی می‌کند.
اگر این سیاست انسجام وجود نداشت داده‌های غلط خوانده می‌شوند و نتیجه‌های نامعتبر تولید می‌شوند و در آن هنگام شاید یک برنامه یا کل کامپیوتر از کار بیفتد. به صورت کلی دو نقشه برای انسجام حافظه نهان وجود دارد.

از پروتکل جستجوگر ۲ پروتکل مبتنی برdirectory
--------------------------------------------

پروتکل جستجو گر فقط با سیستم بر پایه گذرگاه کار می‌کند و به تعدادی حالت برای تعیین اینکه آیا این بروزرسانی مدخل‌های حافظه نهان مورد نیاز است یا نه و اینکه آن کنترلی روی نوشتن در بلوک داشت یا نه، نیاز دارد. پروتکل بر پایهٔ directory مقیاس پذیر، برای پردازنده‌های زیاد یا هسته‌های زیاد است. بر خلاف جستجو گر که مقیاس پذیر نیست. در این نقشه یک directory استفاده می‌شود طوری‌که اطلاعات مربوط به مکان‌های حافظه که بین حافظه‌های نهان چند گانه مشترک است را نگه می‌دارد و آن‌ها را به صورت انحصاری توسط یک حافظهٔ نهان مربوط هسته استفاده می‌شوند.
Directory می‌داند که چه موقع یک بلوک نیاز دارد که به روز شود یا غیر معتبر گردد.
Core 2 Duo اینتل تلاش کرد تا انسجام حافظه نهان را به وسیله توانایی در حافظه نهان L۱ و حافظه نهان L۲ اشتراکی به صورت هم‌زمان فراهم آورد.
داشتن یک حافظه نهان سطح ۲ اشتراکی همچنین فایده‌ای دیگر را اضافه می‌کند بنابراین پروتکل انسجام نیازی ندارد که برای این سطح تعیین گردد. با این حال AMD’s Athlon 64x۲ باید انسجام حافظه‌های نهان سطح ۱و۲ را کنترل کند. سرعت آن از طریق استفاده از اتصال فرا انتقال افزایش می‌یابد اما این روش نسبت به مدل اینتل سربار زیادی دارد.

چند نخی
-------

در نهایت مهم‌ترین موضوع استفاده به صورت چند نخی یا تکنیک پردازش موازی برای رسیدن به بالاترین کارایی یک پردازنده چند هسته می‌باشد. به استثناء جاوا در زبان‌های پیشرفته تجاری کمتر از گسترش چند نخی استفاده می‌شود. ساختن دوباره برنامه کاربردی تا چند نخی شوند، به معنی دوباره کاری برنامه‌نویس در بیشتر موارد است. برنامه نویسان باید برنامه‌های کاربردی را به صورت زیر برنامه‌های مختلف بنویسند تا بتوانند روی هسته‌های مختلف اجرا کنند این بدان معنی است که وابستگی‌های داده باید حل شود (برای مثال، تأخیر در ارتباطات یا استفاده از حافظه نهان مشترک) برنامه‌های کاربردی باید متعادل باشند. اگر یک هسته خیلی بیشتر از هسته دیگر مورد استفاده قرار گیرد برنامه‌نویس نمی‌تواند به تمام فواید یک سیستم چند هسته‌ای برسد.
بعضی شرکت‌ها محصولات جدید خود را با قابلیت چند هسته‌ای تولید می‌کنند مانند سیستم عامل‌های جدید مایکروسافت و Apple که می‌توانند تا ۴ هسته را پشتیبانی کنند.

مسائل باز
---------

تعداد زیادی هسته روی یک تراشه تنها، یک نیاز بزرگ برای افزایش حافظه وجود دارد. پردازنده‌های ۳۲ بیتی مثل پنتیوم ۴، می‌توانند تا ۴۶ از حافظه اصلی آدرس دهی کنند. با هسته‌هایی که امروز از آدرس‌های ۶۴ بیتی استفاده می‌کنند میزان حافظه قابل آدرس دهی تقریباً نامحدود است یک سیستم حافظه بهبود یافته ضروری است. تعدادی حافظه اصلی و حافظه نهان بزرگتر برای چند پردازنده‌های چند نخی نیاز است.

سیستم باس و شبکه‌های به هم متصل
-------------------------------

حافظه اضافی غیر مفید خواهد بود. اگر مقداری از زمان مورد نیاز برای تقاضاهای حافظه به همان اندازه بهبود نیابد. طراحی مجدد اتصالات داخلی شبکه بین هسته‌ها یک کانون بزرگی (اصلی) از تولیدکنندگان تراشه‌است. یک شبکه سریعتر یک تأخیر کمتر و ارتباط بین هسته و تبادلات حافظه را مورد نظر قرار می‌دهد.

Intel در حال توسعه و اون (ایجاد کردن) مسیر سریع اتصالات است که پهنای باس آن ۲ بیت است که بین ۸/۴ و ۴/۶ گیگ هرتز در حال اجرا است. AMDهای جدید فرااتصالی ۳٫۰ یک پهنای باس ۳۲ بیتی دارند و در ۲/۵ گیگا هرتز اجرا می‌شوند یک نوع متفاوتی از اتصالات در imesh, TILE ۶۴’s دیده شده‌است که شامل پنج شبکه استفاده شده به منظور تکمیل کردن I/O و ارتباط حافظه خارج از تراشه می‌باشد. استفاده از ۵ شبکه توری، ساختار قطعه به ازای هر پهنای باند قطعه (یا هسته) تا ۲۸ ترا بیت بر ثانیه می‌دهد.

نتیجه‌گیری
----------

قبل از پردازنده‌های چند هسته‌ای افزایش کارایی از یک نسل به نسل دیگری مثل افزایش فرکانس، خیلی ساده دیده می‌شد. وقتی که فرکانس‌های بالا سبب می‌شدند که پردازنده‌ها در سرعتی باعث افزایش اتلاف توان و اتلاف حرارت در سطوح زیان بار اجرا می‌شدند منسوخ شدند.
اضافه کردن هسته‌های چندگانه در خلال یک پردازنده، یک راه حل از اجرا در فرکانس‌های پایین‌تر می‌دارد. اما مشکلات جدید جالبی را اضافه کرد. پردازنده‌های چند هسته‌ای به منظور اینکه اتلاف توان معقولی اتلاف گرمای معقولی و پروتکل‌های انسجام حافظه نهان دست یابند ساخته شدند.
اگر چه خیلی از مسائل حل نشده باقی ماند به منظور استفاده از پردازنده‌های چند هسته‌ای با ۳ ظرفیت شامل برنامه‌های کاربردی روی سیستم‌های چند نخی اجرا می‌شوند. تقریباً برنامه‌های کاربردی کمی وجود دارد که در هر سطحی از موازی‌سازی نوشته شده‌اند (سیستم‌های حافظه و شبکه‌های به هم متصل نیاز به بهبود دارند و همچنان هنوز مشخص نیست که آیا هسته‌های یکنواخت کاراترند یا هسته‌های ناهمگون.
با طرح‌های زاید و گوناگون تقریباً غیرممکن است که هر استانداردی را برای انسجام حافظه نهان، اتصالات داخلی و چینش آن‌ها تنظیم کنیم. بزرگ‌ترین سختی که در آموزش تکنیک‌های برنامه‌نویسی موازی (چون بیشتر برنامه نویسان در برنامه‌نویسی ترتیبی خیلی منظم هستند) و دوباره طراحی کردن برنامه‌های کاربردی جاری باقی می‌ماند این است که روی سیستم‌های چند هسته به‌طور بهینه اجرا کنیم.
پردازنده‌های چند هسته‌ای یک اختراع مهم در طول زندگی ریز پردازنده هستند. توسط برنامه نویسان ماهر و توانا نوشتن برنامه‌های کاربردی چند هسته‌ای موازی شده می‌تواند افزایش یابد. در این سال‌ها ما بهبودی ای زیادی در این سیستم‌ها می‌بینیم که این بهبودها برنامه‌ها را سریعتر می‌کند و تجربهٔ محاسبات بهتری را فراهم می‌کند.

منابع
-----

* Wikipedia contributors, "Multi-core processor," Wikipedia, The Free Encyclopedia,  (accessed June 3، ۲۰۱۲).

| * ن
* ب
* و
فناوری‌های واحد پردازش مرکزی |
| --- |
| مدل‌های محاسبه | 
* ماشین تورینگ
	+ ماشین محاسبه تورینگ
	+ ماشین پست-تورینگ
	+ ماشین تورینگ کوانتومی
* Belt machine
* ماشین پشته‌ای
* ماشین حالات متناهی
	+ with datapath
	+ ماشین حالت یو.ام.ال
	+ ماشین صف
* Register machines
	+ Counter
	+ Pointer
	+ Random-access
	+ ماشین برنامه ذخیره‌شده با دسترسی تصادفی

 |
| معماری رایانه | 
* ریزمعماری
* معماری فون نویمان
* معماری هاروارد
	+ modified
* معماری جریان داده
* Transport-triggered
* Cellular
* اندیان
* ذخیره‌سازی داده رایانه
	+ حافظه دسترسی غیریکپارچه
	+ HUMA
	+ Load/store
	+ معماری حافظه ثبات
* Cache hierarchy
* سلسله‌مراتب حافظه
	+ حافظه مجازی
	+ ذخیره‌سازی داده رایانه
* Heterogeneous
* Fabric
* چندپردازشی
* رایانش شناختی
* نورومورفیک

 |
| مجموعه دستورالعملs | 

|  |  |
| --- | --- |
| Types | 
* رایانه با دستورهای پیچیده
* رایانه کم‌دستور
* Application-specific
* EDGE
	+ TRIPS
* کلمه دستورالعمل بسیار طولانی
	+ رایانش موازی صریح دستورالعمل‌ها
* MISC
* OISC
* NISC
* ZISC
* comparison
	+ حالت آدرس‌دهیs

 |

* اکس۸۶
* معماری آرم
* معماری میپس
* Power ISA
* اسپارک
* Itanium
* Unicore
* MicroBlaze
* RISC-V
* others
 |
| Execution | 

|  |  |
| --- | --- |
| خط لوله (رایانه) | 
* حباب (رایانه)
* Operand forwarding
* Classic RISC pipeline

 |
| مخاطره (معماری رایانه)s | 
* وابستگی داده
* مخاطره (معماری رایانه)
* مخاطره (معماری رایانه)
* False sharing

 |
| خروج از دستور در حال اجرا | 
* Tomasulo algorithm
	+ Reservation station
	+ Re-order buffer
* تغییر نام ثبات

 |
| Speculative | 
* پیش‌بینی‌کننده پرش
* Memory dependence prediction

 |

 |
| رایانش موازی | 

|  |  |
| --- | --- |
| Level | 
* موازی‌سازی بیتی
	+ Bit-serial
	+ کلمه (معماری رایانه)
* دستورالعمل
* خط لوله (رایانه)
	+ Scalar
	+ سوپراسکالر
* Task
	+ ریسه (رایانه)
	+ فرایند (رایانه)
* Data
	+ پردازنده برداری
* Memory
* رایانش توزیع‌شده

 |
| چندریسمانی | 
* چندرشته زمانی
* چندرشتگی همزمان
	+ فراریسمانی
* Speculative
* قبضه‌کردن (رایانش)
* چند وظیفه‌ای بدون قبضه‌ای

 |
| طبقه‌بندی فلین | 
* یک دستور یک داده
* یک دستور چند داده
	+ SWAR
* SIMT
* چند دستور یک داده
* چند دستور چند داده
	+ یک برنامه چند داده

 |

 |
| Processorperformance | 
* Transistor count
* Instructions per cycle (IPC)
	+ Cycles per instruction (CPI)
* Instructions per second (IPS)
* فلاپس (FLOPS)
* تراکنش بر ثانیه (TPS)
* Synaptic updates per second (SUPS)
* Performance per watt (PPW)
* Cache performance metrics
* Computer performance by orders of magnitude

 |
| Types | 
* واحد پردازش مرکزی (CPU)
* واحد پردازش گرافیکی (GPU)
	+ محاسبات همه‌منظوره بر روی واحد پردازش گرافیکی
* پردازنده برداری
* Barrel
* پردازش جریان
* Coprocessor
* مدارهای مجتمع با کاربرد خاص
* مدار مجتمع دیجیتال برنامه‌پذیر
* CPLD
* Multi-chip module (MCM)
* System in package (SiP)

|  |  |
| --- | --- |
| By application | 
* ریزپردازنده
* ریزکنترل‌گر
* Mobile
* Notebook
* Ultra-low-voltage
* ASIP

 |
| Systemson chip | 
* سامانه روی یک تراشه (SoC)
* Multiprocessor (MPSoC)
* Programmable (PSoC)
* شبکه درون یک تراشه (NoC)

 |
| شتاب‌دهنده سخت‌افزاری | 
* AI accelerator
* Vision processing unit (VPU)
* Physics processing unit (PPU)
* پردازشگر سیگنال دیجیتال (DSP)
* واحد پردازشی تنسور (TPU)
* Secure cryptoprocessor
* پردازنده‌های شبکه‌ای
* Baseband processor

 |

 |
| کلمه (معماری رایانه) | 
* معماری ۱-بیتی
* بیت برش
* ۴-بیت
* ۸ بیتی
* ۱۶ بیتی
* ۳۲-بیت
* 48-bit
* 64-bit
* ۱۲۸-بیت
* 256-bit
* 512-bit
* کلمه (معماری رایانه)
	+ کلمه (معماری رایانه)

 |
| Core count | 
* Single-core
* پردازنده چندهسته‌ای
* Manycore
* Heterogeneous architecture

 |
| اجزاء | 
* واحد پردازش مرکزی
* حافظه نهان (رایانش)
	+ حافظه نهان سی‌پی‌یو
	+ الگوریتم حافظه پنهان
	+ انسجام حافظه نهان
* گذرگاه (رایانه)
* سرعت ریزپردازنده
* سیگنال ساعت
* خروج به ترتیب ورود (رایانه و الکترونیک)

|  |  |
| --- | --- |
| Functional units | 
* واحد محاسبه و منطق (ALU)
* Address generation unit (AGU)
* واحد ممیز شناور (FPU)
* واحد مدیریت حافظه (MMU)
	+ Load–store unit
	+ تی‌ال‌بی (TLB)
* کنترلگر حافظه (IMC)

 |
| دروازه منطقی | 
* مدار ترکیبی
* مدارهای ترتیبی
* Glue
* دروازه منطقی
	+ دروازه‌های منطقی کوانتومی
	+ دروازه آرایه

 |
| ثبت سخت‌افزاریs | 
* ثبات
* ثبات وضعیت
* ثبات پشته‌ای
* Register file
* Memory buffer
* شمارنده برنامه

 |
| Control unit | 
* Instruction unit
* حافظه میانگیر
* Write buffer
* ریزبرنامه‌سازی تصویر رام
* شمارنده

 |
| دیتاپد | 
* تسهیم‌کننده
* تسهیم‌کننده
* جمع‌کننده
* ضرب‌کننده دودویی
	+ پردازنده چندبرابر
* رمزگشا
	+ Address decoder
	+ Sum addressed decoder
* شیفت دهنده بشکه‌ای

 |
| مدار الکترونیکی | 
* مدار مجتمع
	+ 3D
	+ Mixed-signal
	+ Power management
* مدار بولی
* الکترونیک دیجیتال
* الکترونیک آنالوگ
* Quantum
* کلید (مدار)

 |

 |
| مدیریت نیرو | 
* PMU
* APM
* رابط قدرت و تنظیمات پیشرفته
* درجه‌بندی پویای بسامد
* Dynamic voltage scaling
* Clock gating
* Performance per watt (PPW)
* Race to sleep

 |
| مرتبط | 
* History of general-purpose CPUs
* Microprocessor chronology
* طراحی پردازنده
* الکترونیک دیجیتال
* ماژول امنیتی سخت‌افزاری
* Semiconductor device fabrication
* Tick–tock model

 |

| * ن
* ب
* و
شتاب‌دهنده سخت‌افزاری |
| --- |
| تئوری | 
* ماشین محاسبه تورینگ
* رایانش موازی
* رایانش توزیع‌شده

 |
| Applications | 
* واحد پردازش گرافیکی
	+ محاسبات همه‌منظوره بر روی واحد پردازش گرافیکی
	+ DirectX
* کارت صدا
* پردازشگر سیگنال دیجیتال
* Hardware random number generation
* Artificial intelligence
* Cryptography
	+ TLS
* Machine vision
* Custom hardware attack
	+ اسکریپت (رمزنگاری)
* پردازنده‌های شبکه‌ای

 |
| Implementations | 
* High-level synthesis
	+ C to HDL
* مدار مجتمع دیجیتال برنامه‌پذیر
* مدارهای مجتمع با کاربرد خاص
* CPLD
* سامانه روی یک تراشه
	+ شبکه درون یک تراشه

 |
| معماری رایانهs | 
* معماری جریان داده
* Transport triggered
* پردازنده چندهسته‌ای
* Manycore
* Heterogeneous
* In-memory computing
* Systolic array
* نورومورفیک

 |
| مرتبط | 
* Programmable logic
* Processor
	+ طراحی پردازنده
	+ chronology
* الکترونیک دیجیتال
* مجازی‌سازی
	+ Hardware emulation
* Logic synthesis
* سامانه نهفتهs

 |