پردازنده چندهسته‌ای: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
جز اصلاح فاصله مجازی + اصلاح نویسه با استفاده از AWB
برچسب: ویرایش توسط ویرایشگر خودکار
FreshmanBot (بحث | مشارکت‌ها)
جز اصلاح فاصله مجازی + اصلاح نویسه با استفاده از AWB
خط ۲۲:
 
== چکیده ==
همچنانکه کامپیوتر‌های شخصی متداول‌تر شده اندو بیشتر برنامه‌های کاربردی برای آن‌ها طراحی شده‌است. کاربر نهایی نیاز به سریعتر شدن و نگه دارینگهداری بهتر از سیستم را فهمیده‌است.
تسریع به وسیلهٔ افزایش سرعت کلاک و اخیرا اضافه کردن هسته‌های پردازش چندگانه برای تراشه‌های مشابه به دست آمده‌است اگرچه سرعت تراشه در طی سال‌ها به‌طور نمایی افزایش یافته‌است.
این زمان در حال خاتمه یافتن است و تولیدکنندگان به سمت پردازش چندهسته‌ای تمایل دارند اگرچه به وسیله افزایش تعدادی هسته روی یک تراشه تنها چالش‌هایی در رابطه با حافظه و انسجام حافظهٔ نهان و همچنین ارتباط بین هسته‌ها ناشی می‌شود. پروتکل‌های منسجم و شبکه‌های به هم متصل تعدادی از موضوعات را حل کرده‌اند اما تا زمانی که برنامه نویسان نوشتن برنامه‌های کاربردی موازی را یاد می‌گیرند مزیت کامل و کارایی پردازنده‌های چند هسته‌ای‌ها دست نخواهند یافت.
خط ۳۰:
با اضافه کردن هسته اتلاف توان و گرما به یک نگرانی تبدیل می‌شود و باید قبل از چینش به بهترین نحوی که گرما را در سطح تراشه پخش کند تعیین شود تا نقاط داغ در سطح تراشه ایجاد نشوند.
حافظه نهان مشترک و توزیعی روی یک تراشه برای منسجم کردن پروتکل‌ها باید با هم یکپارچه باشند تا این اطمینان را ایجاد کنند که وقتی یک هسته از حافظه می‌خواند در واقع در حال خواندن از قطعه جاری است نه مقداری که توسط یک هسته متفاوت به روز شده‌است.
در کنار مسایل مربوط به پردازنده‌های چند هسته‌ای مسایلی که قبلا قابل پیش بینیپیش‌بینی نبودند اهمیت پیدا کرده‌اند.
هسته‌های چندگانه چطور با یکدیگر ارتباط برقرار خواهند کرد؟آیا باید هسته‌ها از یک نوع باشند یا اینکه هریک کار خاصی را انجام دهند تا کاراتر باشند؟و موضوع مهم بعدی این است، آیا برنامه نویسان قادر خواهند بود کدهای چند نخی که می‌توانند روی هسته‌های چندگانه اجرا شوند را بنویسند؟
 
خط ۴۳:
به دلیل پیشرفت در تکنولوژی مداری و محدودیت کارایی در زمینه‌های گسترده پردازنده‌های انتزاعی تراشه‌های چند پردازنده یا تکنولوژی چند هسته‌ای مسیر اصلی در طراحی یک cpu شده‌است.
تسریع فرکانس پردازنده نقش خودش را در اوایل این دهه اجرا کرده‌است. ساختارهای کامپیوتری به یک راه حل برای افزایش کارایی نیاز داشتند اضافه کردن یک هسته پردازشی علاوه بر یک تراشه مشابه به صورت تئوری کارایی دو برابر را نتیجه می‌دهد و گرما را کمتر هدر می‌دهد. اگرچه که در عمل سرعت واقعی هر هسته کمتر از سریعترین پردازندهٔ تک هسته‌ای در سپتامبر ۲۰۰۵ شرکت IEEE Reviewer کاملاً متوجه این نکته شد که تا افزایش کلاک بهMHZ ۴۰۰ (در سرعت کلاک)توان مصرفی۶۰٪ افزایش پیدا می‌کند اما رویکرد دو هسته‌ای به این معنی است که شما می‌توانید به اهمیت بالا بردن کارایی بدون نیاز به اجرا در سرعت کلاک ویرانگر دست پیدا کنید.
چند هسته‌ای یک مفهوم جدید نیست. به عنوان مفهومی که قبلا در سیستم‌های جاسازی شده و برای برنامه‌های کاربردی خاص برای مدتی استفاده شده‌است می‌باشد. اما اخیرا تکنولوژی به یک جریان اصلی با استفاده از اینتل و دستگاههایدستگاه‌های ریز پیشرفته AMD)) که بسیاری از تراشه‌های چند هسته‌ای موجود تجاری را معرفی می‌کند تبدیل شده‌است. برخلاف ماشین‌های ۲یا۴ هسته‌ای در دسترس تجاری در سال ۲۰۰۸ بعضی از متخصصین بر این باورند که به وسیله پردازنده‌های تعبیه شده در سال ۲۰۱۷ می‌توانند ۴۰۹۶ هسته را پشتیبانی کنند. پردازنده‌های سرور می‌توانند از ۵۱۲ هسته و تراشه‌های کامپیوتر‌های رو میزی می‌توانند از ۱۲۸ هسته استفاده کنند. این نرخ رشد گیج‌کننده‌است چراکه تراشه‌های رومیزی جاری در اوج استفاده از ۴ هسته هستند و تک هسته‌ای‌ها در ۳۰ سال گذشته‌استفاده می‌شدند.
 
== مبناهای چند هسته‌ای ==
خط ۵۳:
به نظر می‌آید که پردازنده‌های چند هسته‌ای جواب مناسبی برای عیب‌های پردازنده‌های تک هسته‌ای به وسیلهٔ افزایش پهنای باند در حالیکه اتلاف توان را کاهش می‌دهد، هستند.
جدول ۱ که در زیر آمده‌است مقایسهٔ پردازندهٔ تک هسته و چند هسته (در این مثال ۸ هسته) است که بوسیله مرکز تحقیق و بسته‌بندی در تکنولوژی Georgia ارائه شده‌است.
با منبع ولتاژ مشابه و هسته‌های چند گانه که در فرکانس پایین ترپایین‌تر اجرا می‌شوند، می‌بینیم که تقریباً با افزایش ۱۰ برابری در پهنای باند را داریم در عین حال مصرف توان کل به یک چهارم کاهش پیدا می‌کند.
 
==پیاده سازی چند هسته ای==
خط ۶۳:
اینتل تعداد زیادی پردازنده چند هستهٔ متفاوت تولید می‌کند: پنتیوم D در کامپیوترهای رومیزی استفاده می‌شود. Core 2 Due هم در محیط لب تاپ و هم در رومیزی و پردازنه Xeon در سرویس دهنده‌ها استفاده می‌شود.
AMD دارای طیف Althon برای کامپیوترهای رومیزی Tution برای لب تاپ‌ها و Opteron برای سرویس دهنده‌ها و ایستگاه‌های کاری است.
اگر چه Core 2 Due و Althon 64x۲ هر دو بررویبر روی یک پایه‌اند ولی ساختارهای آن‌ها بسیار متفاوت‌اند.
 
شکل ۴ ساختار Core 2 Due و Athlon 64xL را به ترتیب نشان می‌دهد هر دو ساختار پردازنده‌های دوهسته‌ای هم جنس هستند.
خط ۸۰:
 
== چالش‌های چند هسته‌ای ==
داشتن هسته‌های چند گانه روی یک تراشه باعث غلبه کردن بر چندین مشکل است. مدیریت توان و دما دو نگرانی هستند که به صورت بالقوه با افزایش هسته‌های چند گانه افزایش می‌یابند. انسجام حافظه نهان و حافظه اصلی یک چالش دیگر است به‌طوریکهبه‌طوری‌که همه طرح‌هایی که در بالا بحث شد دارای حافظه نهان توزیع شده سطح و در بعضی موارد حافظه‌های نهان سطح ۲ که باید هماهنگ باشند و سرانجام استفاده کامل از پردازنده چند هسته مسئله دیگری است. اگر برنامه نویسان برنامه‌های کاربردی که از فایده هسته‌های چند گانه استفاده می‌کنند را ننویسند هیچ بهره‌ای نخواهند برد و در بعضی موارد این به معنای از دست دادن کارایی است.
برنامه کاربردی نیاز دارند تا نوشته شوند بنابراین اجزای متفاوت می‌توانند به صورت موازی اجرا شوند بدون هیچ ارتباطی با اجرای دیگر آن برنامه کاربردی که به صورت همزمانهم‌زمان اجرا می‌شوند.
 
==توان و دما==
اگر دو هسته روی یک تراشه بدون هیچ تغییری قرار داده شوند. تراشه در تئوری ده برابر یک تراشه تنها توان مصرف می‌کند و حرارت تولید می‌کند. در مثال نمایی اگر یک پردازنده بسیار گرم شود این امکان وجود دارد که حتی کامپیوتر شما بسوزد. برای تخمین زدن هر طرح بالا هسته‌های چند گانه در یک فرکانس پایین ترپایین‌تر برای کاهش مصرف توان اجرا می‌شوند. برای کاهش مصرف توان غیر ضروریغیرضروری خیلی طرح‌ها با یک واحد کنترل توان که وظیفه خاموش کردن هسته‌هایی که استفاده نمی‌شوند را دارند یا موظف به محدود کردن مقدار توان هستند ترکیب می‌شوند. با خاموش کردن هسته‌هایی که استفاده نمی‌شوند(که البته این روش دردسرهای خاص خود را دارد چون روشن شدن مجدد هسته خود مسلزم زمان است) و استفاده از Clock going مقدار زیادی از نشست تراشه کاهش می‌یابد. برای کمتر شدن گرمای تولیدی به وسیله هسته‌های چند گانه روی یک تراشه تنها تراشه به‌طور ساختار یافته‌است تعداد نقاط زیاد نشود و حرارت روی خام تراشه پخش می‌شوند.
همانطور که در شکل ۷ دیده می‌شود اکثریت گرما در پردازنده‌های CELL در عنصر پردازش توان پراکنده شده‌است. و مابقی در سطح عناصر پردازشی همکار پخش می‌شوند.
یک پردازنده CELL یک روند متداول برای ساخت نشان دهندهٔ دمای سیستم با یک خسگر خطی و ده حسگر دیجیتال داخلی را طی می‌کند.
خط ۹۳:
وقتی که هسته دوم تلاش می‌کند مقداری را از حافظه نهان خودش بخواند مقدار خوانده شده مقدار به روز رسانی شده نخواهد بود مگر اینکه مدخل حافظه نهان خودش تامعتبر باشد یا حافظه نهان MISS کرده باشد.
این MISS کردن حافظه نهان مدل حافظهٔ نهان هستهٔ دوم را مجبور به روز رسانی می‌کند.
اگر این سیاست انسجام وجود نداشت داده‌های غلط خوانده می‌شوند و نتیجه‌های نامعتبر تولید می‌شوند ودرو در آن هنگام شاید یک برنامه یا کل کامپیوتر از کار بیفتد. به صورت کلی دو نقشه برای انسجام حافظه نهان وجود دارد.
 
==از پروتکل جستجوگر ۲ پروتکل مبتنی برdirectory ==
پروتکل جستجو گر فقط با سیستم بر پایه گذرگاه کار می‌کند و به تعدادی حالت برای تعیین اینکه آیا این بروز رسانی مدخل‌های حافظه نهان مورد نیاز است یا نه و اینکه آن کنترلی روی نوشتن در بلوک داشت یا نه، نیاز دارد. پروتکل بر پایهٔ directory مقیاس پذیر، برای پردازنده‌های زیاد یا هسته‌های زیاد است. بر خلاف جستجو گر که مقیاس پذیر نیست. در این نقشه یک directory استفاده می‌شود طوریکهطوری‌که اطلاعات مربوط به مکان‌های حافظه که بین حافظه‌های نهان چند گانه مشترک است را نگه می‌دارد و آن‌ها را به صورت انحصاری توسط یک حافظهٔ نهان مربوط هسته استفاده می‌شوند.
Directory می‌داند که چه موقع یک بلوک نیاز دارد که به روز شود یا غیر معتبر گردد.
Core 2 Duo اینتل تلاش کرد تا انسجام حافظه نهان را به وسیله توانایی در حافظه نهان L۱ و حافظه نهان L۲ اشتراکی به صورت همزمانهم‌زمان فراهم آورد.
داشتن یک حافظه نهان سطح ۲ اشتراکی همچنین فایده‌ای دیگر را اضافه می‌کند بنابراین پروتکل انسجام نیازی ندارد که برای این سطح تعیین گردد. با این حال AMD’s Athlon 64x۲ باید انسجام حافظه‌های نهان سطح ۱و۲ را کنترل کند. سرعت آن از طریق استفاده از اتصال فرا انتقال افزایش می‌یابد اما این روش نسبت به مدل اینتل سربار زیادی دارد.
 
== چند نخی ==
در نهایت مهمترین موضوع استفاده به صورت چند نخی یا تکنیک پردازش موازی برای رسیدن به بالاترین کارایی یک پردازنده چند هسته می‌باشد. به استثناء جاوا در زبان‌های پیشرفته تجاری کمتر از گسترش چند نخی استفاده می‌شود. ساختن دوباره برنامه کاربردی تا چند نخی شوند، به معنی دوباره کاری برنامه نویسبرنامه‌نویس در بیشتر موارد است. برنامه نویسان باید برنامه‌های کاربردی را به صورت زیر برنامه‌های مختلف بنویسند تا بتوانند روی هسته‌های مختلف اجرا کنند این بدان معنی است که وابستگی‌های داده باید حل شود (برای مثال، تاخیر در ارتباطات یا استفاده از حافظه نهان مشترک) برنامه‌های کاربردی باید متعادل باشند. اگر یک هسته خیلی بیشتر از هسته دیگر مورد استفاده قرار گیرد برنامه نویسبرنامه‌نویس نمی‌تواند به تمام فواید یک سیستم چند هسته‌ای برسد.
بعضی شرکت‌ها محصولات جدید خود را با قابلیت چند هسته‌ای تولید می‌کنند مانند سیستم عامل‌های جدید مایکروسافت و Apple که می‌توانند تا ۴ هسته را پشتیبانی کنند.
 
خط ۱۱۵:
== نتیجه گیری ==
قبل از پردازنده‌های چند هسته‌ای افزایش کارایی از یک نسل به نسل دیگری مثل افزایش فرکانس، خیلی ساده دیده می‌شد. وقتی که فرکانس‌های بالا سبب می‌شدند که پردازنده‌ها در سرعتی باعث افزایش اتلاف توان و اتلاف حرارت در سطوح زیان بار اجرا می شدند منسوخ شدند.
اضافه کردن هسته‌های چندگانه در خلال یک پردازنده، یک راه حل از اجرا در فرکانس‌های پایین ترپایین‌تر می‌دارد. اما مشکلات جدید جالبی را اضافه کرد. پردازنده‌های چند هسته‌ای به منظور اینکه اتلاف توان معقولی اتلاف گرمای معقولی و پروتکل‌های انسجام حافظه نهان دست یابند ساخته شدند.
اگر چه خیلی از مسائل حل نشده باقی ماند به منظور استفاده از پردازنده‌های چند هسته‌ای با ۳ ظرفیت شامل برنامه‌های کاربردی روی سیستم‌های چند نخی اجرا می‌شوند. تقریباً برنامه‌های کاربردی کمی وجود دارد که در هر سطحی از موازی سازی نوشته شده‌اند (سیستم‌های حافظه و شبکه‌های به هم متصل نیاز به بهبود دارند و همچنان هنوز مشخص نیست که آیا هسته‌های یکنواخت کاراترند یا هسته‌های ناهمگون.
با طرح‌های زاید و گوناگون تقریباً غیر ممکن است که هر استانداردی را برای انسجام حافظه نهان، اتصالات داخلی و چینش آن‌ها تنظیم کنیم. بزرگترین سختی که در آموزش تکنیک‌های برنامه نویسیبرنامه‌نویسی موازی (چون بیشتر برنامه نویسان در برنامه نویسیبرنامه‌نویسی ترتیبی خیلی منظم هستند) و دوباره طراحی کردن برنامه‌های کاربردی جاری باقی می‌ماند این است که روی سیستم‌های چند هسته به‌طور بهینه اجرا کنیم.
پردازنده‌های چند هسته‌ای یک اختراع مهم در طول زندگی ریز پردازنده هستند. توسط برنامه نویسان ماهر و توانا نوشتن برنامه‌های کاربردی چند هسته‌ای موازی شده می‌تواند افزایش یابد. در این سال‌ها ما بهبودی ای زیادی در این سیستم‌ها می‌بینیم که این بهبود‌ها برنامه‌ها را سریعتر می‌کند و تجربهٔ محاسبات بهتری را فراهم می‌کند.