Hyperthreading در پردازنده چیست و چگونه کار میکند؟
![CPU Hyperthreading](https://www.digikala.com/mag/wp-content/uploads/2021/07/CPU-Hyperthreading-1.jpg)
اگر به دنبال خرید یک سیستم جدید هستید، احتمالا با پردازندههایی با اصطلاح Hyperthreading روبهرو شدهاید. اما تکنولوژی Hyperthreading چیست و چه تأثیری بر عملکرد پردازنده دارد؟
در دنیای کامپیوترها اصطلاحات تخصصی متعددی مطرح میشود که همین موضوع بسیاری از کاربران را گیج میکند. زمانی که میخواهید یک سیستم جدید بخرید مطمئنا به دنبال استفاده از بهترین پردازندهی ممکن هستید. بنابراین در ادامه شما را با یکی از مهمترین تکنولوژیهای مربوط به پردازندهها آشنا میکنیم تا بتوانید گزینهی بهتری را انتخاب کنید.
پردازنده چیست؟
پردازنده (CPU) یا واحد پردازش مرکزی، به زبان بسیار ساده مغز کامپیوتر شما است. پردازندهها در انواع گجتها مانند کامپیوترهای دسکتاپ، لپتاپها و گوشیهای هوشمند استفاده میشوند. یک پردازنده با پردازش اطلاعاتی که سایر بخشها (مانند رم) در اختیارش قرار میدهند کار خود را انجام میدهد. زمانی که یک برنامه را اجرا میکنید، این پردازنده است که باید دستورالعملهای موجود را تفسیر کند و نتایج را در اختیار شما قرار دهد.
اگر به مشخصات پردازندهها دقت کرده باشید، احتمالا بارها با اصطلاح هسته روبهرو شدهاید. هرکدام از این هستهها عملا یک پردازندهی دیگر هستند که میتوانند پردازشهای لازم را انجام دهند. در ابتدا پردازندهها فقط دارای یک هسته بودند. با افزایش تعداد هستهها، پردازندهها توانستند کارهای بیشتری را به طور همزمان انجام دهند. در حال حاضر بیشتر پردازندههای کامپیوترهای ۴ هستهای هستند ولی برخی از آنها حتی از ۸ هسته بهره میبرند.
به زبان هر چقدر تعداد هستهها بیشتر باشد بهتر است. اما این موضوع چه ارتباطی با تکنولوژی Hyperthreading دارد؟
Hyperthreading پردازنده چیست؟
پردازندههای معمولی در هر زمان فقط قادر به اجرای یک دستورالعمل هستند که به این نوع پردازندهها single-threaded گفته میشود. در حالت عادی و single thread دستورالعمل ۲ باید منتظر اجرای دستورالعمل ۱ بماند تا نوبت آن شود و این یعنی کاهش سرعت و عملکرد پردازنده.
با بهرهگیری از تکنولوژی Hyperthreading (که AMD برای این قابلیت نام Simultaneous Multithreading را انتخاب کرده)، هر هستهی پردازنده تبدیل به دو هستهی مجازی میشود که از آنها تحت عنوان Thread یاد میکنند. این دو هستهی مجازی قادر به پردازش همزمان دستورالعملها هستند (در صورتی که برنامه اجازه این کار را بدهد) و این یعنی فناوری لازم در واقع تعداد هستههای یک پردازنده را دو برابر میکند.
بنابراین اگر پردازندهی ۴ هستهای شما دارای قابلیت Hyperthreading باشد، شما میتوانید از ۸ هستهی مجازی بهره ببرید. البته عملکرد این هستهها دقیقا برابر با عملکرد یک پردازندهی دارای ۸ هستهی فیزیکی نیست که در ادامه بیشتر به این موضوع میپردازیم.
تکنولوژی Hyperthreading چگونه کار میکند؟
همانطور که گفتیم این پردازندهها با بهرهگیری از Hyperthreading هستههای حقیقی را به هستههای مجازی تبدیل میکنند. این هستهها به طور مشترک از امکانات پردازنده مانند موتور اجرایی و حافظه کش بهره میبرند. زمانی که هر کدام از هستهها در انتظار داده هستند و کار خاصی انجام نمیدهند، دیگر هستهها میتوانند از منابع ارائه شده برای آن استفاده کنند تا کارهای دلخواه خود را انجام دهند.
همانطور که پیشتر گفتیم، هستههای حقیقی توان بیشتری نسبت به هستههای مجازی ارائه میدهند. زیرا هر کدام از هستههای فیزیکی معماری خاص خود را دارند و از قدرت و کارایی بیشتر برخوردار هستند. به زبان ساده، یک پردازنده ۴ هستهای با قابلیت Hyperthreading توان بیشتری نسبت به پردازنده ۴ هستهای معمولی دارد ولی یک پردازندهی ۸ هستهای از هر دوی آنها قدرتمندتر است.
از طرف دیگر، باید به اهمیت سیستمعامل و نرمافزارهای استفادهشده هم اشاره کنیم. اگر نرمافزار لازم برای بهرهگیری از این قابلیت آماده نشده باشد یا اینکه نتواند از تمام امکانات پردازنده بهره ببرد، تکنولوژی Hyperthreading هم در نهایت بازده کمتری خواهد داشت.
آیا مزایای Hyperthreading ارزش استفاده از این تکنولوژی را دارد؟
همانطور که چند بار اشاره کردیم، اهمیت هستههای فیزیکی بیشتر از هستههای مجازی است. بنابراین حین خرید یک پردازنده، بهتر است گزینهی دارای تعداد هستههای بیشتر را انتخاب کنید. در حال حاضر برای بسیاری از برنامهها Hyperthreading استفاده نمیشود. این قابلیت فقط زمانی اهمیت زیادی پیدا میکند که به ناچار باید چندین برنامهی سنگین اجرا کنید و در ضمن این برنامهها باید قادر به بهرهگیری از این قابلیت باشند.
بنابراین اگر از برنامههای سنگین (مانند برنامههای مربوط به تدوین فیلم یا رندر سهبعدی) استفاده میکنید، این برنامهها با بهرهگیری از Hyperthreading قادر به افزایش سرعت پردازش هستند. اما اگر یک کاربر معمولی هستید که عمدتا برای کارهایی مانند تایپ کردند یا وبگردی از سیستم خود بهره میبرید، این قابلیت سرعت سیستم را چندان تغییر نمیدهد. علاوه بر این باید خاطرنشان کنیم پردازندههای دارای این قابلیت معمولا قیمت بالاتری دارند.
معایب Hyperthreading
پردازندههای دارای این قابلیت انرژی بیشتری نسبت به پردازندههای بدون این مشخصه مصرف میکنند. بنابراین اگر میبینید چندان به این قابلیت نیاز ندارید، این افزایش مصرف انرژی یک هزینهی بیهوده خواهد بود. از طرف دیگر همانطور که گفتیم این پردازندهها قیمت بالاتری دارند و به همین خاطر بین نسل یازدهم پردازندههای اینتل، فقط گزینههای i9 و مدلهای گرانتر از این مشخصه بهره میبرند.
آیا باید یک پردازندهی دارای قابلیت Hyperthreading بخرید؟
اگر از جمله کاربرانی هستید که فشار زیادی به سیستم وارد میکنید، این قابلیت میتواند مزایای متعددی برای شما داشته باشد. اما اگر یک کاربر معمولی هستید که کار خاصی با سیستم انجام نمیدهید، خرید چنین پردازندههایی غیر ضروری است.
در آینده، مطمئناً برنامههای بیشتری به بهرهگیری از این قابلیت روی میآورند. از طرف دیگر با پیشرفت فناوری، برنامهها فشار بیشتری به سیستم وارد میکنند و در این شرایط تکنولوژی Hyperthreading اهمیت دوچندانی پیدا میکند. در هر صورت با توجه به نیازهایی که دارید و برنامههایی که استفاده میکنید، باید در این زمینه دست به انتخاب بزنید.
سخن آخر
در نهایت خلاصهی نکات اصلی مطرح شده از این قرار است؛
- تکنولوژی Hyperthreading هر کدام از هستههای فیزیکی را به دو هستهی مجازی تبدیل میکند.
- هستههای فیزیکی توان بیشتری نسبت به هستههای مجازی دارند.
- این تکنولوژی بیشتر مناسب برنامههای سنگین است و برای برنامههای روزمره چندان کاربردی ندارد.
- Hyperthreading احتمالا در آیندهی نزدیک بیشتر استفاده میشود.
در نهایت این مشخصه اگرچه برای بخشی از کاربران بسیار مفید است، اما برای گروه بزرگی از کاربران چندان کاربردی محسوب نمیشود. به همین خاطر قبل از خرید پردازنده به این موضوع توجه کنید تا بیهوده مبلغ بیشتری برای خرید پردازنده هزینه نکنید.
منبع: Make Use Of
سلام
لطفا مطلب رو اصلاح کنید
در پردازنده i5 3230m قابلیت هایپرتردینگ وجود دارد و این برای ۲۰۱۱ میباشد
در واقع هر تسک که در کامپیوتر انجام می شه با دو درگاه سخت افزاری ارتباط دارد یکی با سیستم io و دیگری با cpu
زمانی که تسک با io در ارتباط هست cpu بیکار می مونه در این زمان هست که ترد دوم وارد کار می شه و دستورات پردازشی یه تسک دیگر رو به سی پی یو می فرسته تا پردازش بشه و در این حالت هست که دو تسک همزمان دارند کار می کنند و باعث می شه که لگ در کار تسکها ایجاد نشه
دوست عزیز چیزی که شما ازش با عنوان هسته مجازی یاد میکنی اصلا وجود نداره اصلا هسته مجازی نیست هر cpu دارای تعدادی هسته پردازشی هست که هر هسته پردازشی برای کار پردازش نیاز داره دیتای درخواستی user به cpu وارد بشه این چیزی که شما ازش با عنوان هسته مجازی یاد میکنی اصلا وجود نداره منظور از ترید و هایپر تریدینگ مسیرهایی هست که به cpu و در نهایت به هسته پردازشی که خود هسته هم متشکل شده از سیلیکون و ترانزیستور
پس در واقع ترید مسیرهایی هستن به هسته پردازشی میرسن در گذشته تعداد این ترید ها به ازای هر هسته یک مسیر یا نخ یا رشته یا ترید بود اما امروز بنا به پیشرفت به ازای هر هسته دو مسیر و در cpu های ورک استیشن بنا به تعداد هسته های بالا تعداد ترید ها هم بالاتر رفته که از اون با عنوان هایپر تریدینگ نام برده میشه
پس چی شد چیزی با عنوان هسته مجازی وجود نداره مسیرهایی هستن که به هسته های پردازشی میرسن…
دوست عزیز ک مثلا خیلی میفهمی اینو ب من بگو ک هر هسته فقط یک کار یا دستور رو انجام میده و برای دستور شماره ۲ باید دستور شماره یک تموم بشه،پس وقتی هسته یک کار رو انجام میده چرا باید براش دوتا مسیر انتخاب کنن؟مثلا ک چی بشه؟؟خود شرکت هاشون هم گفته این تکنولوژی دقیقا همین کارو میکنه ک توی این مقاله گفته یک هسته رو تبدیل ب دو هسته مجازی میکنه تا انجام عملیات دو برابر بشه یعنی دستور ۱ و دستور ۲ همزمان اجرا بشن.
دوست من بینین چیزی که ازش به عنوان هسته مجازی یاد شده در واقع مسیرهایی هست که به هسته های پردازشی میرسه و در حال حاضر این عدد دو برابر تعداد هسته پردازشی هستن هیچ تبدیلی وجود نداره یعنی داخل cpu اتفاقی برای تبدیل نمیوفته اصلا قابلیتی برای تبدیل وجود نداره سیلیکون هست و ترانزیستور
و اینکه پرسیدین برای چی مسیر دومی باید باشه هست چون وجودش باعث سرعت در فرآیند پردازش میشه ولی به هیچ وجه قابلیت پردازش در چیزی که ازش به عنوان هسته مجازی یاد میشه وجود نداره چون ترید مسیری هست که با وجودش در کسری از ثانیه پس از انجام پردازش داخل هسته دیتای درخواستی بعدی وارد هسته میشه
عزیزم از یه دیکشنری استفاده میکردین بد نبود…
باز هم سوالی بود
بفرمایید من راهنماییتون کنم