جدول محتوایی
Toggleهسته CPU ، پردازنده یک CPU است. در قدیم، هر پردازنده فقط یک هسته داشت که میتوانست روی یک کار در یک زمان تمرکز کند. امروزه CPUها دو هسته ای تا 18 هستهای هستند و هر کدام میتوانند روی وظایف متفاوتی کار کنند. تعداد هسته یک پردازنده میتواند تأثیر زیادی بر عملکرد داشته باشد اما برای انتخاب درست باید بیشتر با نقش و اهمین هسته یا Core آشنا شوید که در این مقاله به آن پرداختهایم:
بیشتر بدانید: روش تشخیص CPU لپ تاپ؛ پردازندهی لپ تاپ من چیست؟
هسته یا Core چه نقشی در پردازش دارد؟
یک هسته میتواند روی یک وظیفه کار کند، در حالی که هسته دیگر وظایف متفاوتی را انجام میدهد، بنابراین هرچه هستههای یک CPU بیشتر باشد، کارآمدتر است. بسیاری از پردازندهها، بهویژه آنهایی که در لپتاپها قرار دارند، دارای دو هسته هستند، اما برخی از پردازندههای لپتاپ (معروف به پردازندههای موبایل)، مانند پردازندههای نسل هشتم اینتل، دارای چهار هسته هستند.
اکثر پردازندهها میتوانند از فرآیندی به نام چند رشتهای همزمان یا اگر پردازنده اینتل باشد، Hyper-threading (این دو عبارت به یک معنا هستند) برای تقسیم یک هسته به هستههای مجازی، که به آن رشتهها میگویند، استفاده کنند. به عنوان مثال، CPUهای AMD با چهار هسته از multithreading برای ارائه ۸ رشته ( 8 Thread ) استفاده میکنند و اکثر CPUهای اینتل با دو هسته از Hyper-threading برای ارائه 4 Thread استفاده میکنند.
برخی از برنامهها نسبت به سایرین از چندین رشته بهره میبرند. برنامههای با رشتههای سبک، مانند بازیها، از هستههای زیادی بهره نمیبرند، در حالی که اکثر برنامههای ویرایش ویدیو و انیمیشن میتوانند با رشتههای اضافی بسیار سریعتر اجرا شوند.
پردازنده چند هسته ای چیست؟
پردازنده چند هسته ای یک مدار مجتمع است که دارای دو یا چند هسته پردازشگر برای افزایش عملکرد و کاهش مصرف انرژی است. این پردازندهها همچنین پردازش کارآمدتر همزمان چندین کار مانند پردازش موازی و چند رشته ای را امکان پذیر میکنند. راهاندازی دو هستهای شبیه به نصب چندین پردازنده جداگانه بر روی یک سیستم است. با این حال، از آنجایی که دو پردازنده به یک سوکت متصل هستند، اتصال بین آنها سریعتر است. استفاده از پردازندههای چند هستهای یا ریزپردازندهها یکی از روشهای افزایش عملکرد پردازنده بدون فراتر رفتن از محدودیتهای طراحی است.
پردازندههای چند هسته ای چگونه کار میکنند؟
قلب هر پردازنده یک موتور اجرایی است که به عنوان هسته نیز شناخته میشود. هسته برای پردازش دستورالعملها و دادهها با توجه به جهت برنامههای نرم افزاری در حافظه کامپیوتر طراحی شده است. در طول سالها، طراحان دریافتند که هر طراحی پردازنده جدید دارای محدودیتهایی است. فناوریهای متعددی برای تسریع عملکرد هسته طراحی و تولید شدهاند که از جمله آنها میتوان به موارد زیر اشاره کرد:
سرعت ساعت: یک روش این بود که ساعت پردازنده را سریعتر کنیم. ساعت برای همگام سازی پردازش دستورالعملها و دادهها از طریق موتور پردازش استفاده میشود. امروزه سرعت ساعت از چندین مگاهرتز به چندین گیگاهرتز افزایش یافته است. با این حال، ترانزیستورها با هر تیک ساعت برق مصرف میکنند. در نتیجه، با توجه به تکنیکهای ساخت نیمهرسانای فعلی و مدیریت گرما، سرعت ساعت تقریباً به محدودیتهای خود رسیده است.
سیستم چند رشتهای: رویکرد دیگر شامل مدیریت رشتههای دستورالعمل چندگانه بود. اینتل این را hyper-threading مینامد. با hyper-threading، هستههای پردازنده به گونهای طراحی شدهاند که همزمان دو رشته دستورالعمل جداگانه را مدیریت کنند. هنگامیکه به درستی توسط سیستم عامل (OS) کامپیوتر فعال و پشتیبانی میشود، تکنیکهای hyper-threading یک هسته فیزیکی را قادر میسازد تا به عنوان دو هسته منطقی عمل کند؛ در حالی که پردازنده تنها دارای یک هسته فیزیکی است.
هسته بیشتر : گام بعدی اضافه کردن تراشههای پردازنده – یا قالبها – به بسته پردازنده بود، که دستگاه فیزیکی است که به مادربرد متصل میشود. یک پردازنده دو هسته ای شامل دو هسته پردازشگر جداگانه است. یک پردازنده چهار هسته ای شامل چهار هسته مجزا است. پردازندههای چند هسته ای امروزی به راحتی میتوانند شامل 12، 24 یا حتی بیشتر هستههای پردازنده باشند. رویکرد چند هسته ای تقریباً مشابه استفاده از مادربردهای چند پردازنده ای است که دارای دو یا چهار سوکت پردازنده جداگانه هستند. عملکرد عظیم پردازنده امروزی شامل استفاده از محصولات پردازنده ای است که سرعت کلاک سریع و چندین هستههایپر رشته ای را با هم ترکیب میکنند.
مطالعه کنید: مقایسه پردازنده گرافیکی Intel Iris با Intel UHD؛ کدوم بهتره؟
با این حال، تراشههای چند هستهای چندین مسئله را در نظر میگیرند. اولاً، افزودن هستههای بیشتر پردازنده به طور خودکار عملکرد سیستم را بهبود نمیبخشد. سیستم عامل و برنامههای کاربردی باید دستورالعملهای برنامه نرمافزاری را برای شناسایی و استفاده از چندین هسته هدایت کنند. این باید به صورت موازی و با استفاده از رشتههای مختلف و هستههای مختلف در بسته پردازنده انجام شود. برخی از برنامههای نرم افزاری ممکن است برای پشتیبانی و استفاده از پلتفرمهای پردازنده چند هسته ای نیاز به بازسازی مجدد داشته باشند. در غیر این صورت، فقط از اولین هسته پردازشگر پیشفرض استفاده میشود و هستههای اضافی استفاده نشده یا غیرفعال هستند.
دوم، مزیت عملکرد هستههای اضافی چند برابر مستقیم نیست. یعنی افزودن هسته دوم عملکرد پردازنده را دو برابر نمیکند یا پردازنده چهار هسته ای عملکرد پردازنده را در ضریب چهار ضرب نمیکند. این به دلیل عناصر مشترک پردازنده مانند دسترسی به حافظه داخلی یا حافظه پنهان و…اتفاق میافتد. مزایای هستههای متعدد میتواند قابل توجه باشد، اما محدودیتهای عملی وجود دارد.
پردازندههای چند هسته ای برای چه مواردی استفاده میشوند؟
پردازندههای چند هستهای بر روی هر پلت فرم سخت افزاری کامپیوتری مدرن کار میکنند. تقریباً همه کامپیوترهای شخصی و لپتاپهای امروزی در برخی از مدلهای پردازنده چند هستهای ساخته میشوند. با این حال، قدرت و مزایای واقعی این پردازندهها به برنامههای نرمافزاری که برای تأکید بر موازیسازی طراحی شدهاند، بستگی دارد. یک رویکرد موازی، کار برنامه را به رشتههای پردازشی متعددی تقسیم میکند و سپس آن رشتهها را در دو یا چند هسته پردازنده توزیع و مدیریت میکند.
اصلیترین موارد استفاده پردازندههای چند هستهای عبارتند از:
- مجازی سازی : یک پلت فرم مجازی سازی، مانند VMware، برای انتزاع محیط نرم افزار از سخت افزار زیرین طراحی شده است. مجازیسازی میتواند هستههای پردازشگر فیزیکی را در پردازندههای مجازی یا واحدهای پردازش مرکزی (vCPU) انتزاعی کند که سپس به ماشینهای مجازی (VM) اختصاص داده میشوند. هر VM تبدیل به یک سرور مجازی میشود که قادر به اجرای سیستم عامل و برنامه خاص خود است. امکان اختصاص بیش از یک vCPU به هر VM وجود دارد که به هر VM و برنامه آن اجازه میدهد در صورت تمایل نرم افزار پردازش موازی را اجرا کنند.
- پایگاههای داده : پایگاه داده یک پلت فرم نرم افزاری پیچیده است که اغلب به اجرای همزمان بسیاری از وظایف نیاز دارد. در نتیجه، پایگاههای اطلاعاتی برای توزیع و مدیریت این رشتههای کار، به پردازندههای چند هستهای وابسته هستند. استفاده از پردازندههای متعدد در پایگاه دادهها اغلب با ظرفیت حافظه بسیار بالایی همراه است که میتواند به 1 ترابایت یا بیشتر در سرور فیزیکی برسد.
- تجزیه و تحلیل : تجزیه و تحلیل دادههای بزرگ، مانند یادگیری ماشین و محاسبات با عملکرد بالا (HPC) هر دو نیازمند تقسیم وظایف بزرگ و پیچیده به قطعات کوچکتر و قابل مدیریتتر هستند. سپس هر بخش از تلاش محاسباتی را میتوان با توزیع هر قطعه از مسئله در یک پردازنده متفاوت حل کرد. این رویکرد هر پردازنده را قادر میسازد تا به طور موازی کار کند و مشکل کلی را به مراتب سریعتر و کارآمدتر از یک پردازنده واحد حل کند.
- مدیریت حافظه مجازی: ابر سازمانهایی که یک فضای مجازی ایجاد میکنند، تقریباً به طور قطع پردازندههای چند هستهای را برای پشتیبانی از تمام مجازیسازی مورد نیاز برای پاسخگویی به تقاضاهای پرتراکنش پلتفرمهای نرمافزار ابری مانند OpenStack استفاده میکنند. مجموعهای از سرورها با پردازندههای چند هستهای میتوانند به ابر اجازه دهند تا نمونههای بیشتری از VM را بنا به درخواست خود ایجاد و افزایش دهند.
- کارهای گرافیکی : برنامههای گرافیکی، مانند بازیها و موتورهای رندر دادهها، همانند سایر برنامههای HPC دارای الزامات موازی هستند. رندر بصری کاری فشرده است و از چندین پردازنده برای توزیع محاسبات مورد نیاز استفاده گسترده ای میکند. بسیاری از برنامههای گرافیکی به جای CPU به واحدهای پردازش گرافیکی (GPU) متکی هستند. پردازندههای گرافیکی برای بهینهسازی وظایف مرتبط با گرافیک طراحی شدهاند. بستههای GPU اغلب حاوی چندین هسته گرافیکی هستند که در اصل شبیه به پردازندههای چند هستهای هستند.
مزایا و معایب پردازندههای چند هسته ای
فناوری پردازنده چند هسته ای بالغ و کاملاً تعریف شده است. با این حال، این فناوری دارای مزایا و معایب خود است که باید هنگام خرید و استقرار سرورهای جدید در نظر گرفته شود.
مزایای چند هسته ای
عملکرد بهتر برنامه مزیت اصلی پردازندههای چند هسته ای است. هر هسته پردازنده در واقع یک پردازنده جداگانه است که سیستم عاملها و برنامهها میتوانند از آن استفاده کنند. در یک سرور مجازی، هر ماشین مجازی میتواند از یک یا چند هسته پردازشگر مجازیسازی شده استفاده کند که باعث میشود بسیاری از ماشینهای مجازی همزیستی کنند و به طور همزمان روی یک سرور فیزیکی کار کنند. به طور مشابه، برنامهای که برای سطوح بالای موازیسازی طراحی شده، ممکن است از هر تعداد هسته برای ارائه عملکرد برنامه بالا استفاده کند که با سیستمهای تک تراشه غیرممکن است.
عملکرد سخت افزاری بهتر با قرار دادن دو یا چند هسته پردازشگر روی یک دستگاه، میتواند از اجزای مشترک – مانند گذرگاههای داخلی رایج و حافظه پنهان پردازنده – به طور موثرتری استفاده کند. همچنین در مقایسه با سیستمهای چند پردازندهای که بستههای پردازنده جداگانه روی یک مادربرد دارند، از عملکرد بهتری بهره میبرد.
معایب چند هسته ای
سیستمعاملها و برنامهها همیشه بهطور پیشفرض از اولین هسته پردازنده به نام هسته 0 استفاده میکنند. هستههای اضافی در بسته پردازشگر تا زمانی که برنامههای نرمافزاری برای استفاده از آنها فعال نشده باشند، بدون استفاده یا بیکار میمانند. چنین برنامههایی شامل برنامههای کاربردی پایگاه داده و ابزارهای پردازش دادههای بزرگ مانند Hadoop است. یک کسبوکار باید قبل از سرمایهگذاری در سیستم چند هستهای، یک سرور برای چه مواردی استفاده میشود و برنامههایی را که قصد استفاده از آن را دارد، در نظر بگیرد تا مطمئن شود که سیستم پتانسیل محاسباتی بهینه خود را ارائه میدهد.
افزایش عملکرد محدود است. چندین پردازنده در یک بسته پردازنده باید گذرگاههای سیستم و حافظه پنهان پردازنده مشترک داشته باشند. هر چه هستههای پردازنده بیشتر یک بسته را به اشتراک بگذارند، اشتراکگذاری بیشتری باید در رابطها و منابع پردازنده مشترک انجام شود. این منجر به کاهش بازده عملکرد با اضافه شدن هستهها میشود. در بیشتر مواقع، مزایای عملکرد داشتن چندین هسته بسیار بیشتر از عملکرد از دست رفته در چنین اشتراکگذاری است، اما فاکتوری است که باید هنگام آزمایش عملکرد برنامه در نظر گرفت.
محدودیتهای برق، گرما و ساعت؛ یک کامپیوتر ممکن است نتواند پردازنده ای با هستههای زیاد به سختی یک پردازنده با هستههای کمتر یا یک پردازنده تک هسته ای هدایت کند. یک هسته پردازنده مدرن ممکن است حاوی بیش از 500 میلیون ترانزیستور باشد. هر ترانزیستور هنگام سوئیچ گرما تولید میکند و با افزایش سرعت کلاک این گرما افزایش مییابد. تمام این تولید گرما باید به طور ایمن از هسته از طریق بسته پردازنده دفع شود. هنگامیکه هستههای بیشتری در حال اجرا هستند، این گرما میتواند چند برابر شود و به سرعت از قابلیت خنک کنندگی بسته پردازنده فراتر رود. بنابراین، برخی از پردازندههای چند هستهای ممکن است سرعت ساعت را کاهش دهند – به عنوان مثال، از 3.5 گیگاهرتز به 3.0 گیگاهرتز – برای کمک به مدیریت گرما. این باعث کاهش عملکرد تمام هستههای پردازنده در بسته میشود. پردازندههای چند هستهای سطح بالا به سیستمهای خنککننده پیچیده و استقرار و نظارت دقیق برای اطمینان از قابلیت اطمینان طولانی مدت سیستم نیاز دارند.