هایپرتردینگ Hyperthreading چیست و چه وظیفه ای در سیستم دارد؟

توسط سیامک تیموری
5 minutes read
هایپرتردینگ

فناوری هایپرتردینگ (Hyper threading) زمانی یک ویژگی منحصربفرد بود که صرفا در پردازنده‌های (CPU) حرفه‌ای سطح بالا یافت می‌شد. اما اکنون این فناوری در پردازنده‌های مصرف کننده اصلی نیز یافت می‌شود. حال ممکن است این سوال در ذهن شما ایجا شده باشد که Hyperthreading دقیقا چیست و آیا باید CPU خود را به آن ارتقا دهیم؟

رشته نرم‌افزار (Software Thread) چیست و چرا در فناوری Hyperthreading مهم است؟

رشته نرم‌افزار مجموعه‌ای از دستورالعمل‌هایی است که توسط یک CPU پردازش می‌شود. رشته نرم‌افزار در واقع واحد اصلی دستورالعمل‌های برنامه‌ریزی شده است که توسط زمان‌بند (scheduler) مدیریت می‌شود. زمانبند جزوی از سیستم عامل است که منابع سخت‌افزاری را به انواع مختلف نرم‌افزارهای در حال اجرا بر روی کامپیوتر اختصاص می‌دهد.

هر برنامه‌ای که روی رایانه شما اجرا می‌شود به صورت یک یا چند فرایند ایفای نقش می‌کند. Threadها در واقع بخش‌هایی از این فرآیندها هستند که برای اجرا به CPU ارسال می‌شوند. زمان‌بند به سرعت رشته‌هایی را از برنامه‌های در حال اجرا مختلف تخصیص می‌دهد تا اطمینان حاصل کند که هر کدام منابع مورد نیاز خود را برای اجرا در زمان واقعی دریافت می‌کنند.

هایپرتردینگ

به این ترتیب رایانه شما می‌تواند «چند وظیفه» را انجام دهد. به عنوان مثال یک پردازشگر می‌تواند همزمان برنامه word را اجرا کند، در حالی که در پس‌زمینه موسیقی پخش می‌کند و یک بازی ویدیویی را نیز دانلود می‌کند. از نظر فنی، یک هسته CPU در واقع همه این کارها را همزمان انجام نمی‌دهد.

بنابراین اگر سیستم شما فقط یک CPU تک هسته‌ای داشته باشد و فاقد فناوری هایپرتردینگ Hyperthreading است، به کندی می‌تواند چنین کاری را انجام دهد. مثل این می‌ماند که شما در حال رانندگی هم با تلفن همراه صحبت کنید، هم به موسیقی گوش دهید و هم حواستان به اطراف باشد. قطعا عملکرد شما کند خواهد شد و حتی در شرایطی ممکن است نتوانید تمامی کارها را به صورت همزمان کنترل نمایید. امری که می‌تواند منجر به حواس‌پرتی شما و در نتیجه تصادف گردد.

پردازش موازی در کامپیوترهای خانگی

اگر سری به تاریخچه کامپیوترهای شخصی قدیمی بزنیم، متوجه می‌شویم که رایانه‌ها فقط یک هسته CPU در خود داشتند و همگی فاقد Hyperthreading بودند. خوب، در آن زمان ما در مورد “هسته” صحبت نمی‌کردیم، زیرا فقط یک هسته وجود داشت و آن هم کل CPU را در برمی‌گرفت. با این حال، در اواسط دهه 2000، سازندگان CPU ایده درخشانی مطرح کردند که دو CPU جداگانه را در یک صفحه CPU قرار دهند. این پردازنده‌های دو هسته‌ای در واقع می‌توانند دو رشته دستورالعمل را همزمان پردازش کنند. این بدان معناست که برای مثال، بازی ویدیویی شما می‌تواند 100 درصد هسته داشته باشد و سیستم عامل شما نیز می‌تواند یک هسته دیگر را تماماً به خود اختصاص دهد.

این گونه شما می‌توانید همزمان هم به بازی مشغول باشید و هم به موسیقی گوش دهید. بدون آن که سرعت پردازشگر شما کند شود.

امروزه تعداد هسته‌های CPU به سرعت در حال افزایش است. به طوری که امکان خرید پردازنده‌هایی با 6، 8 و حتی 10 هسته در بازار فراهم است. پردازنده‌های رده‌بالا ده‌ها هسته ارائه می‌کنند و پردازنده‌هایی مانند AMD Threadripper 3990X با 64 هسته یک تجربه‌ ایده‌آل به شما می‌دهند که اغلب مجهز به فناوری هایپرتردینگ Hyperthreading می‌باشند.

گفتنی است که برای متعادل ساختن قدرت موازی این هسته‌ها، توسعه نرم‌افزاری تغییر کرده و به شکلی کارآمد در کنار هم ایفای نقش می‌کنند. جدیدترین کنسول‌های بازی ویدیویی مانند PS5 نیز اخیرا به هشت هسته CPU مجهز شده‌اند. این امر به کمپانی‌های ساخت بازی‌های ویدئویی اجازه می‌دهد تا آن دسته از بازی‌هایی که نیاز به پردازش بالا دارند را طراحی کنند.

قرار دادن هسته‌های CPU در Overdrive با Hyperthreading

یک CPU سنتی فقط می‌تواند یک رشته را مدیریت کند، اما اگر تعداد زیادی هسته‌های CPU مختلف در سیستم خود داشته باشد، می‌تواند تعداد رشته‌هایی برابر با تعداد هسته‌های خود مدیریت کند. این ویژگی شاید خوب به نظر برسد، اما یک مشکل اساسی دارد.

همه رشته‌ها به قدرت پردازش یکسانی نیاز ندارند. برای مثال، رشته‌ای که ویدیو را رندر می‌کند از 100 درصد ظرفیت هسته پردازنده استفاده می‌کند، اما رشته‌ای که پردازشگر کلمه یا صفحه وب رسانه‌های اجتماعی شما را اجرا می‌کند تنها به کسری از قدرت ارائه‌شده توسط یک هسته CPU مدرن نیاز دارد.

به همین ترتیب، یک بازی ویدیویی ممکن است چندین رشته داشته باشد که به طور موازی اجرا می‌شوند، مانند یکی که کاراکترها را مدیریت می‌کند و دیگری که هوش مصنوعی آن‌ها را کنترل می‌کند. این‌ها رشته‌های مهمی هستند که برای اجرای بی نقص به چندین هسته مجزا نیاز دارند.

what is hyperthreading hero157201970683272

با این حال، ممکن است اکثر هسته‌‌های پردازنده کامپیوتر قدرت محاسباتی خود را به این بازی اختصاص دهند، اما نه همه آن‌ها را. اینجاست که هایپرتردینگ در تصویر ظاهر می شود.

فناوری Hyperthreading در واقع یک نام تجاری اختصاصی است که توسط اینتل استفاده می‌شود، اما درست مانند «هوور»، برای کل این فناوری به یک اصطلاح رایج تبدیل شده است.

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

برای سیستم عامل، به نظر می‌رسد که هر هسته فیزیکی CPU در واقع دو هسته دارد، که به زمانبند اجازه می‌دهد تا دو رشته را به هر یک اختصاص دهد. با این حال، مقدار کل قدرت پردازش در هر هسته دقیقاً یکسان است.

چرا به فناوری هایپرتردینگ (Hyperthreading) نیاز داریم؟

همانطور که در بالا ذکر کردیم، Hyperthreading عمدتاً برای اطمینان از اینکه قدرت پردازش را صرفا معطوف به یک چیز خاص نکنیم. اجازه دادن به هر هسته برای کنترل دو رشته باعث می‌شود سیستم عامل شما ظرفیت سخت‌افزار بیشترین بهره را ببرد و از موقعیتی که هر هسته نزدیک یا با ظرفیت کامل کار نمی‌کند، کند.

در گذشته، تنها نرم‌افزارهای حرفه‌ای مانند ویرایشگرهای ویدئویی به هایپرتردینگ نیاز داشتند. بازی‌های ویدیویی زمان زیادی را صرف یافتن راه حلی برای ارائه بهتر کردند، اما اکنون کنسول‌های بازی 8 هسته‌ای این اجازه را به توسعه‌دهندگان داده‌اند تا تعداد رشته‌ها را افزایش دهند.

به این ترتیب، پردازنده‌های جدید اکنون دارای فناوری hyperthreading هستند و این قابلیتی است که اکثر کاربران باید درباره آن بدانند. با این حال، اگر پردازنده قدیمی شما فاقد هایپرتردینگ است، زیاد نگران نباشید چراکه هنوز هم می‌توانید چند کار را همزمان در رایانه خود انجام دهید.

سخن پایانی

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

مطالب مرتبط

دیدگاه شما چیست؟