پردازنده چندهستهای، با پردازنده چندریسمانی (multithreading) و رایانه چندپردازندهای چه تفاوتی دارد؟
هسته پردازنده یا هسته سیپییو چیست؟
سیپییو یعنی واحد پردازش مرکزی (CPU: Central Processing Unit) که گاهی بهاختصار آن را «پردازنده مرکزی» یا فقط «پردازنده» نیز میخوانند. هسته پردازنده (Processor core) یا هسته سیپییو (CPU core) در واقع همان پردازنده یا سیپییو است. پردازنده دوهستهای یعنی دو پردازنده مجزا اما مرتبط با هم که روی یک تراشه پیادهسازی شدهاند. بههمین ترتیب، پردازنده یا سیپییو چهارهستهای یعنی چهار پردازنده یا سیپییو که روی یک تراشه پیادهسازی شدهاند. پردازندههای شش هستهای، هشت هستهای و... نیز چنین هستند.
تفاوت پردازنده (سیپییو) تکهستهای با چندهستهای
پیش از آنکه پردازندهها یا سیپییوهای چندهستهای سربرآورند، همه آنها تکهستهای بودند و لذا تمام بار پردازش و رایانش بر دوش تنها یک پردازنده بود. سیپییوهای تکهستهای دادهها را واحد به واحد از حافظه میخواندند و پردازش میکردند. به عبارت دیگر، در سیپییوهای تکهستهای دستورها بهصورت خطی (سریال) یعنی یکی پس از دیگر پردازش میشد و امکان اجرای همزمان دو یا چند دستور وجود نداشت؛ حال آنکه سیپییو خیلی وقتها فقط با بخشی از ظرفیت خود کار میکرد اما چون نمیتوانست در هر لحظه بیش از یک رشته دستور اجرا کند، عملا بخشی از ظرفیتش که آزاد بود بلااستفاده میماند. چندهستهای شدن پردازندهها قدرت و بازدهشان را افزایش داد و دستکم سبب شد چند دستور را همزمان (موازی) پردازش کنند. در حال حاضر، بهرهگیری از هستههای چندگانه، کارآمدترین و باصرفهترین شیوه افزایش بازده پردازنده است.
پیش از پردازندههای چندهستهای از شیوههای دیگری برای ارتقای ظرفیت پردازشی سامانهها استفاده میشد که پردازندههای چندگانه و فناوری چندریسمانی از آن جمله بودند. هر دو مورد بهویژه فناوری چندریسمانی هنوز هم کاربردی هستند؛ طوری که امروزه سیپییوهای چندهستهای معمولا از این قابلیت نیز بهره میبرند.
رایانه چندپردازندهای و مزایا و معایب آن
یکی از راهکارهای پیشنهادی برای افزایش قدرت پردازش رایانهها بهرهگیری از دو یا چند سیپییو روی بورد اصلی بود. برای این منظور مادربوردهایی ساخته شد که حاوی دو یا چند جایگاه (سوکت) نصب سیپییو بودند. این کار قدرت پردازشی رایانه را ارتقا میداد اما معایبی هم داشت: رایانههای چندپردازندهای بهویژه برای کاربران خانگی پرهزینه بودند (سیپییو جزو گرانترین قطعات رایانه است)، مصرف برقشان زیاد بود، و هر سیپییو اجزای سختافزاری (مثل گذرگاههای ارتباطی و پروانه خنککننده) جداگانهای میطلبید. بازده رایانههای چندپردازندهای آز آنچه به نظر میرسد کمتر است. این پردازندهها روی سوکتهای جداگانهای نصب میشوند و بههمین علت ارتباطشان با هم با تاخیر (latency) نسبی همراه است. پردازندههای چندگانه در نهایت چندان همهگیر نشدند و امروزه عمدتا در حیطههای محدود مثلا در ابررایانهها کاربرد دارند.
شاید چنین عواملی سبب شد شرکتهای تراشهساز بر ارتقای خود پردازندهها متمرکز شوند که کمهزینهتر بود. تلاشهای آنان نهایتا به معرفی فناوری چندریسمانی یا چندرشتهای (multithreading) منجر شد. نسخه اختصاصی اینتل از این فناوری، فراریسمانی (hyper-threading) نام گرفت، هرچند بنیان هر دو یکی است.
چندریسمانی (multithreading) یا فراریسمانی (hyper-threading)، و مزایا و معایب آن
در دنیای رایانش، به هر واحد دستوری که برای پردازش به سیپییو ارجاع میشود، یک رشته یا ریسمان (thread) میگویند. در فناوری چندریسمانی یا چندرشتهای (multithreading) که نسخه اینتلی آن فراریسمانی (hyper-threading) نام دارد، هر سیپییو فیزیکی به دو سیپییو منطقی (مجازی) تبدیل میشود و سیستمعامل، هر پردازنده فیزیکی را دو پردازنده میپندارد. با این ترفند، هر سیپییو تکهستهای (یا هر هسته سیپییو) همزمان دو رشته دستور اجرا میکند و سرعت پردازش افزایش مییابد.
فناوری چندرشتهای یا چندریسمانی برای ارتقای ظرفیت پردازشی گوشی و رایانه و... شیوه باصرفهای است، زیرا برخلاف سامانههای چندپردازندهای به بورد و سختافزارهای جداگانه و هزینهبر نیازی ندارد، مصرف برقش زیاد نیست و برای کاربران خانگی نیز باصرفه است. شاید همین ویژگیها سبب شد پشتیبانی از این فناوری حتی در پردازندههای پیشرفتهتر و جدیدتر چندهستهای نیز ادامه پیدا کند. با فناوری چندریسمانی، هر یک از هستههای فیزیکی پردازندههای چندهستهای امروزی به دو هسته مجازی تبدیل میشود و برای مثال، یک پردازنده هشت هستهای مانند پردازندهای با 16 هسته عمل میکند.
اما فناوری چندریسمانی بهرغم مزایای چشمگیر خود محدودیتهایی هم دارد؛ از جمله اینکه هر سیپییو فیزیکی حداکثر به دو سیپییو منطقی تقسیم میشود و ظرفیت پردازشی هر سیپییو به نصف کاهش مییابد؛ مثلا یک سیپییو فیزیکی 2 گیگاهرتزی به دو سیپییو منطقی (مجازی) 1 گیگاهرتزی تبدیل میشود.
دانستن تعداد هستههای واقعی و منطقی پردازنده (سیپییو) در ویندوز
برای دانستن تعداد هستههای پردازنده (سیپییو) در رایانههای ویندوزی میتوان به برنامه «تسک منیجر» مراجعه کرد. با نوشتن عبارت Task Manager در نوار جستجوی ویندوز و یا با فشردن همزمان دکمههای Ctrl و Shift و Esc برنامه مذکور باز میشود. با انتخاب زبانه Performance در بالای پنجره و سپس گزینه CPU تعداد هستههای واقعی و هستههای منطقی پردازنده به نمایش درمیآید.
جمعبندی: دیگر ویژگیهای پردازندههای چندهستهای
در پردازندههای چندهستهای چون همه هستهها روی یک تراشه پیاده شدهاند، به سوکت، گذرگاههای ارتباطی و اجزای سختافزاری جداگانه نیازی نیست و ارتباط هستهها با هم بسیار سریعتر از ارتباط پردازندههای مجزا در رایانههای چندپردازندهای است. ضمنا بهرهگیری از فناوری چندریسمانی در پردازندههای چندهستهای امروزی، کارایی آنها را مضاعف کرده است. معمولا هر یک از هستههای پردازنده، حافظه پنهان سطح یک (L1 cache) مخصوص خود را دارد. در برخی پردازندهها حافظه پنهان سطح دو (L2 cache) نیز اختصاصی است اما تقریبا در همه پردازندهها حافظه پنهان سطح سه (L3 cache) بین همه هستهها مشترک است. البته گفتنی است که هرچند در بهترین حالت، یک پردازنده دوهستهای باید حدود دو برابر یک پردازنده تکهستهای کارایی داشته باشد، بازده آن عملا کمتر از این مقدار و حدود 50 درصد است. یعنی بازده پردازنده دوهستهای حدود یکونیم برابر پردازنده تکهستهای است. اما در کل، پردازندههای چندهستهای از نظر کارایی، مصرف برق و هزینه باصرفهترین گزینه کنونی در دنیای رایانش هستند.