يكي از تكنولوژي هاي نسبتا قديمي ولي كارآمد پردازنده هاي اينتل تكنولوژي Hyper-Threading است كه در اين مقاله قصد بررسي آن به صورت پايه و اصول آن را داريم .






سوالاتي كه اول از همه در ذهن ما پيش مي آيد اين است كه HT يا همان Hyper-Threading دقيقا چه تاثيري در پردازش دارد ؟ آيا تاثير آن به اين اندازه هست كه ما يك مقاله را به آن اختصاص بديم ؟‌ قبل از پاسخ به اين مسائل بايد به نحوه كاركرد برنامه ها و پردازشگر هاي معمولي پرداخت تا كامل موجه موضوع شويد ...


پردازنده هاي جديد تنها توانايي سروكارداشتن با يك دستورالعمل از يك يك برنامه در نقطه خاصي از زمان دارند . اين اطلاعات كه به پردازنده فرستاده مي شوند Thread يا همان رشته نام دارند . چيزي كه در اينجا من قصد گفتنش را دارم اين است كه چيزي كه شما به عنوان Multi-Tasking مي شناسيد يا عبارت ديگر اجرا بيشتر از يك برنامه در يك زمان واقعا درست نيست و اين عمل رخ نمي دهد .
در واقع پردازشگر با تقسيم زمان و پاور ميان برنامه ها و تعويض آن ميان برنامه ها من و شما را فريب داده و شما فقط احساس Multi-Tasking را داريد .
اما قضيه در پردازنده (‌CPU )‌ هاي دو هسته متفاوت است و توانايي كار بر روي 2 رشته از نرم افزار را دارند ولي بازهم اين مشكل وجود دارد كه هر پردازشگر در آخر محدود در كار بر روي يك رشته در يك زمان است ! و اين مشكل زماني حل مي شود كه نرم افزار توانايي جدا سازي آن را به دو قسمت داشته باشد كه بتواند آن را در يك واحد زماني در دو پردازنده پردازش شود كه هر روز بر تعداد اين برنامه ها زياد مي شود .
اصول كار Hyper-Threading
پردازنده اينتل Pentium 4 3.06 Ghz اولين پردازنده اي بود كه توانايي پردازش دو رشته مستقل را در يك زمان داشت . اين كار با SMT ( Multi-Thread Simultaneous)‌ يا كار بر روي چندين رشته در يك زمان قابل انجام است و در صورتي كه سيستم عامل اين امكان را داشته باشد پردازنده در واقع به دو پردازنده منطقي تقسيم مي شود كه هر دو از يك منبع كه آن پردازنده فيزيكي است بهره مي برند . يا به زبان تر با تكنولوژي Hyper-Threading شما مي توانيد با داشتن يك پردازنده فيزكي يا براي مثال همان Intel P4 3.06 Ghz مي توانيد پردازنده خود را به دو قسمت منطقي تقسيم كنيد و از آن ها بهره ببريد كه در اين حالت شما توانايي پردازش دو يا چندين رشته را در يك زمان خواهيد داشت .




با استفاده از اين تكنولوژي هيچ گاه لود پردازنده شما به 100 % نمي رسد چراكه با HT شما هميشه توانايي رفتن به پردازش محاسبات ديگري در آن واحد را داريد .







همان گونه كه در بالا مشاهده مي كنيد در يك پردازنده معمولي ( Super Scalar ) زماني كه پردازنده به صورت كامل مشغول پردازش اطلاعات مي باشد و اين در حالي است كه چيزي حدود 50 درصد آن استفاده نشده و به كار گرفته نمي شود ! در قسمت Multi-Processing نيز با وجود اينكه دو پردازنده در حال پردازش دو رشته مستقل هستند باز هم چيزي حدود 50 درصد از آن استفاده نمي شود .
ولي در قسمت Hyper-Threading به اين گونه است كه يك پردازنده در حال كار بر روي دو رشته در يك زمان مي باشد و كارايي CPU چيزي حدود 50 الي 90 درصد افزايش مي يابد و واحد هاي اجرايي تقريبا همگي در حال كار هستند .
و در آخرين قسمت كه در عكس مشاهده مي شود استفاده از يك پردازنده دو هسته اي با تكنولوژي Hyper-Threading است كه در اين حالت شود توانايي استفاده از چهار رشته مستقل را در آن واحد داريد و به بيان ديگر شما داراي 4 پردازشگر منطقي و دو پردازشگر فيزيكي هستيد .
البته در پردازش بعضي از واحد ها ، واحد هاي اجرايي تداخل پيدا كرده و اين كار باعث افزايش سرعت پردازنده نمي شود چراكه پردازنده بايد براي جدا سازي آن ها بايد هر كدام يك بار پردازش كند . با اين وجود در صورتي كه سيستم عامل ها پشتيباني بيشتري از اين تكنولوژي كنند و كمپاني هاي نرم افزاري نيز نرم افزار هاي خود را بر پايه و اساس اين تكنولوژي بنويسند شما خواهيد ديد كه با Hyper-Threading توانايي مشاهده سرعت و قدرت پردازش بسيار بالاتري هستيد . به خصوص زماني كه شما در حال اجرا دو برنامه كاملا متفاوت هستيد كه هيچ گونه تداخلي با هم ندارند . همان گونه كه در بالا ذكر شد در صورتي كه برنامه ها وسيستم عامل ها توانايي پشتيباني كامل از HT را نداشته باشند در برنامه هايي كه SMT در آن ها كار نمي كند كارايي سيستم از يك پردازنده معمولي نيز پايين تر است ! اما خبر خوشحال كننده اينكه سيستم عامل لينوكس ، XP و ويستا هر سه به صورت كامل از اين تكنولوژي پشتيباني مي كنند .



منبع: سایت شهر سخت افزار