وبگاه شخصی مهندس مهدی محمدی

فردا دیر است امروز باید...

به نام بهترین سرآغاز

عرضه پردازنده‌های Core i7 بار دیگر تکنولوژی Hyper Threading را سر زبان‌ها انداخت. اینتل نخستین بار این تکنولوژی را با پردازنده‌های Pentium 4 معرفی کرد ولی پس از به پایان رسیدن عمر این پردازنده‌ها و ظهور مهندسی Core 2 این تکنولوژی دیگر هیچ گاه به کار گرفته نشد. Hyper Threading بار دیگر زنده شده و بسیاری از پردازنده‌های کنونی اینتل از آن بهره می‌برند. هم اکنون پردازنده‌های Atom، Core i7 و برخی مدل‌های Core i5 از این تکنولوژی بهره می‌برند. امروز قصد داریم Hyper Threading و نحوه عملکرد آن‌را برای شما باز کرده و تاثیر به کارگیری آن روی کارآیی پردازنده را بررسی کنیم.

چرا Multi Threading؟

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

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

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

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

Hyper Threading چیست؟

تکنولوژی "Hyper Threading" به پردازنده این امکان را می‌دهد که در هر لحظه، دو بسته اطلاعاتی را پردازش کند. این بدان معناست که اگر پردازنده شما این قابلیت را داشته باشد، هر هسته پردازشی قرار گرفته روی آن می‌تواند در یک لحظه دو دستورالعمل (thread) را پردازش کند. در واقع با این تکنولوژی سیستم‌عامل به هر هسته پردازشی به چشم یک دو هسته‌ای نگاه می‌کند که قابلیت پردازش همزمان دو دستورالعمل را دارد.

زمانی‌که سیستم عامل مورد استفاده شما از این تکنولوژی پشتیبانی ‌کند و پردازنده نیز دارای چنین قابلیتی باشد، هر هسته فیزیکی قرار گرفته روی پردازنده، از نظر سیستم عامل یک دو هسته‌ای خواهد بود.(تصویر1) بنابراین سیستم عامل یک تک هسته‌ای با تکنولوژی Hyper Threading را به عنوان یک دو هسته‌ای می‌شناسد و اگر به پنجره Task Manager بروید، دقیقا دو هسته پردازشی برای آن در نظر خواهد گرفت. به همین ترتیب یک چهار هسته‌ای با تکنولوژی Hyper Threading از نظر سیستم‌عامل یک ۸ هسته‌ای خواهد بود.(تصویر 2)

اینتل سه مزیت عمده برای تکنولوژی Hyper Threading برشمرده است:

- بهبود پشتیبانی از کدهای Multi -Thread

- امکان اجرای هم زمان چندین thread

- بهبود زمان پاسخگویی و عکس العمل پردازنده به دستور العمل‌های دریافتی.

طبق اطلاعات منتشر شده از سوی اینتل، مزیت اول تنها ۵ درصد به سطح فیزیکی پردازنده افزوده (افزایش اندازه فیزیکی پردازنده) ولی در عوض ۱۵ تا ۳۰ درصد، کارآیی را افزایش می‌دهد، به علاوه اینتل ادعا می‌کند یک پردازنده با تکنولوژی Hyper Threading از یک پردازنده کاملا مشابه بدون این تکنولوژی تا ۳۰ درصد سریع‌تر است.

تاثیر این تکنولوژی روی کارآیی تا حدود زیادی به نرم‌افزارمورد استفاده وابسته است. ضمن این‌که باید اشاره کرد که اکثر نرم‌افزارهای جدید، از ساختار Multi Thread بهره برده و توانایی ارسال همزمان چندین دستورالعمل به پردازنده را دارند.

Multi Thread یا

Multi Core؟

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

سختافزار و نرمافزارهای سازگار

هم اکنون تمامی پردازنده‌های Core i7 از تکنولوژی Hyper Threading بهره می‌برند. اکثر پردازنده‌های کم مصرف Atom نیز به HT مجهز شده‌اند و تنها چند مدل محدود از آن‌ها فاقد این تکنولوژی هستند. یکی از دلایل موفقیت پلتفرم اتم و پردازنده‌های اتم که در نت‌بوک‌ها به کار گرفته می‌شود، وجود همین تکنولوژی به حساب می‌آید.

پردازنده‌های Core i5 سری ۶۰۰ نیز که اخیرا از خانواده پردازنده‌های Clarkdale معرفی شده‌اند از HT بهره می‌برند. ضمن این‌که Core i3های سری ۳۰۰ که برای لپ‌تاپ‌ها در نظر گرفته شده‌اند از Hyper Threading پشتیبانی می‌کنند.

سیستم‌عامل‌های جدید اعم از ویندوز ۷، ویندوز ویستا و گونه‌های مختلف لینوکس همگی با Hyper Threading سازگاری کامل دارند.

برای استفاده از Hyper Threading باید این قابلیت را از درون بایوس مادربورد فعال کنید. در این صورت سیستم‌عامل تعداد هسته‌های پردازنده شما را دو برابر تعداد هسته‌های واقعی پردازنده خواهد دید.

از: سرخه تله