موضوع مقاله: چندریسمانی همزمان | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # چندریسمانی همزمان | مقدمه: این پردازنده‌ها که به سوپراسکالر معروف هستند؛ با سخت‌افزار‌های مجهز به قابلیت «چند ریسمانی سخت‌افزاری» کار می‌کنند. | ## بخش 1: چندریسمانی همزمان | این پردازنده‌ها با استفاده از SMT می‌توانند دو ریسه را به‌طور همزمان روی هر هسته فیزیکی اجرا کنند. این فناوری در پردازنده‌های Ryzen این شرکت به کار گرفته شده و عملکرد بالاتری را در برنامه‌های چند ریسمانی ارائه می‌دهد. چالش‌ها و ضرورت‌های SMT فناوری SMT، نیازمند تغییرات و بهبودهای قابل توجهی در طراحی سخت‌افزاری پردازنده‌ها است. از جمله این تغییرات می‌توان به مدیریت پیچیده‌تر ثبات‌ها، افزایش تعداد واحدهای اجرایی، و بهبود سیستم حافظه نهان اشاره کرد. علاوه بر این، نرم‌افزار نیز باید به گونه‌ای طراحی شود که بتواند از مزایای SMT بهره‌برداری کند. این به معنای برنامه‌نویسی برای اجرای موازی و بهینه‌سازی الگوریتم‌ها برای استفاده از چندین ریسه به‌طور همزمان است. برنامه‌نویسان باید الگوریتم‌های خود را برای بهره از مزایای چندریسمانی، بهینه‌سازی کنند تا عملکرد بهتری در برنامه‌های موازی داشته باشند.Mattson, Tim G. مزایای استفاده از SMT شامل افزایش بازدهی پردازنده، بهبود عملکرد در برنامه‌های چند ریسمانی، و کاهش زمان تأخیر است. این فناوری به ویژه در برنامه‌هایی که به شدت به پردازش موازی متکی هستند، مانند شبیه‌سازی‌ها، محاسبات علمی، و پردازش داده‌های بزرگ، بسیار مؤثر است. برنامه‌هایی که به صورت ترتیبی اجرا می‌شوند و نیاز به پردازش موازی ندارند، ممکن است بهبود قابل توجهی در عملکرد مشاهده نکنند. به همین دلیل، توسعه‌دهندگان نرم‌افزار باید به‌طور دقیق نیازها و الگوهای کاری برنامه‌های خود را بررسی کنند تا بتوانند از فناوری SMT بهره‌برداری کنند. در نتیجه، فناوری چند ریسمانی همزمان یک ابزار قدرتمند برای بهبود عملکرد پردازنده‌ها و افزایش بازدهی سیستم‌های کامپیوتری است. جزئیات نام چندرشتگی به دلیل ویژگی‌های آن ممکن است مبهم باشد؛ چرا که چندین رشته و وظیفه مختلف با جداول صفحه، سطح‌های وضعیت وظیفه، حلقه‌های حفاظت، اجازه‌های ورود و خروج و غیره می‌توانند به‌طور همزمان روی یک هستهٔ سی پی یو اجرا شوند. از نظر مفهومی، چندرشتگی شبیه به چند وظیفه‌ای انحصاری است، اما در سطح رشته و در پردازنده‌های ابر مقیاس پذیر جدید پیاده‌سازی شده است. چندرشتگی همزمان یکی از دو روش اصلی پیاده‌سازی چندرشتگی است، در حالی که شکل دیگر آن، چندرشتگی زمانی است. در چندرشتگی زمانی، در هر لحظه زمانی داده شده، تنها یک رشتهٔ دستورالعمل قابل اجرا است. اما در چندرشتگی همزمان، دستورالعمل‌های بیش از یک رشته در هر لحظه زمانی قابل اجرا هستند. ملحقات اصلی مورد نیاز شامل توانایی واکشی دستورالعمل‌ها از چندرشتگی در یک دوره زمانی و یک فایل ثبات بزرگتر برای نگه‌داری داده‌های چندرشتگی است. | ## بخش 2: چندریسمانی همزمان | دو رشتهٔ همزمان در هر هستهٔ CPU رایج‌ترین حالت است، اما برخی پردازنده‌ها تا ۸ رشته متقارن و همزمان را در یک هسته دارند. به هر حال، اندازه‌گیری اثربخشی انرژی SMT توسط موازی‌سازی بومی و مدیریت میزان کار در تاریخ از 130nm به 32nm در پیاده‌سازی SMT شرکت اینتل نشان داده است که SMT در انرژی بسیار کارآمد است، به خصوص در پیاده‌سازی‌های 45nm و 32nm. حتّی در پردازنده‌های اتمی در سیستم‌های مدرن، SMT به‌طور همزمان با نیروی پویای کم اضافی کار می‌کند و حتی در حداقل بازده، می‌توان به صرفه‌جویی در مصرف برق دست یافت. برخی محققان نشان داده‌اند که رشته‌های اضافی می‌تواند به عنوان منبع اشتراک‌گذاری فعال مانند مخزن مورد استفاده قرار گیرد و عملکرد رشته‌های دیگر را بهبود بخشد. در نهایت، در بسیاری از موارد، SMT برای پوشش تأخیر در کار حافظه، افزایش کارایی و توان محاسباتی سخت‌افزار مفید است. سوپر به معنای اجرای چندین دستورالعمل می‌باشد، در حالی که سطح رشته موازی (TLP) اجرای دستورالعمل دستورالعمل‌ها در چندین رشته همراه با یک تراشهٔ پردازنده به‌طور همزمان می‌باشد. قرار دادن چند رشته در یک لایه: این عمل در چند دستورالعمل از چندین رشته، به چند رشته زمانی نیز اشاره دارد که بیشتر می‌تواند به ریز و درشت بخش‌های چندرشتگی مربوط به فرکانس عمل در یک لایه قرار دادن تقسیم شود. چندرشتگی ریز بخش -برای مثال در پردازنده در بسته – دستورالعمل‌ها را برای رشته‌های مختلف بعد از هر دوره زمانی انجام می‌دهد، در حالی که چندرشتگی درشت بخش تنها زمانی برای انجام دستورالعمل از دیگر رشته تغییر می‌کند که رشته عملیاتی فعلی باعث ایجاد تأخیر زیادی شده‌باشد (مانند صفحه گسل و غیره). برای چنین پردازنده‌هایی که تنها یک خط لوله (pipeline) در هر هسته دارد، قرار دادن چند رشته در یک لایه تنها راه ممکن است، به دلیل آن که می‌تواند بر روی حداکثر یک دستورالعمل در دوره زمانی کار کند. چندرشتگی هم‌زمان (SMT): عملیات چند دستورالعملی را از چندین رشته در یک دورهٔ زمانی انجام می‌دهد. چند پردازشگری در سطح تراشه (CMP یا چند هسته ای): دو یا چند پردازنده را در یک تراشه ادغام می‌کند. فاکتور کلیدی تشخیص دادن آن‌ها، توجه به تعداد دستورالعمل‌هایی که یک پردازنده می‌تواند در یک دوره زمانی انجام دهد و تعداد رشته‌هایی که از هر دستورالعمل به عمل می‌آید. ریزسیستم UltraSPARC T1 شرکت سان (شناخته شده با عنوان «نیاگارا» تا زمان پخش آن در ۱۴ نوامبر ۲۰۰۵) یک پردازنده چندهسته‌ای است که به جای چندرشتگی هم‌زمان با روش چندرشتگی درشت ترکیب شده است به دلیل آن که هر هسته در یک لحظه تنها می‌تواند یک دستورالعمل را انجام دهد. پیاده‌سازی در طول تاریخ مادامی که چندرشتگی CPUها که از حدود سال ۱۹۵۰ وجود دارند، چندرشتگی همزمان اولین تحقیق شرکت IBM به عنوان بخشی از پروژهٔ ACS-360 در سال ۱۹۶۸ بود. این ریز پردازنده توسط DEC با هماهنگی دین تُلسن ازدانشگاه کالیفرنیا در سن دیگو و سوزان ایگرز و هنری لِوی از دانشگاه واشینگتن توسعه یافت. پیاده‌سازی مدرن تجاری پنتیوم ۴ شرکت اینتل اولین پردازنده میزی مدرن برای پیاده‌سازی چندرشتگی هم‌زمان بود، که با ۳٫۰۶ گیگاهرتز در سال ۲۰۰۲ به‌دست آمد و در آن زمان تعدادی از پردازنده‌هایشان را معرفی کردند. اینتل آن را عملکرد فوق رشته‌ای می‌نامد و موتور دو رشته‌ای اس‌ام‌تی را تدارک دید. اینتل تا افزایش ۳۰ درصدی سرعت در مقایسه با موارد یکسان در پنتیوم بدون SMT پیش رفت. | ## بخش 3: چندریسمانی همزمان | پنتیوم ۴ با هسته پرساکت صف پاسخگویی به‌دست‌آورد، که زمان اجرا مورد نیاز برای سیستم پاسخگویی را افزایش می‌دهد. RMI، راه انداز برپایهٔ کوپرتینو، اولین فروشنده MIPS برای بهبود پردازنده برپایهٔ SOC بر روی ۸ هسته می‌باشد که هرکدام ۴ رشته را اجرا می‌کند. رشته‌ها می‌توانند در حالت ریز بخش اجرا شوند که یک سری رشته مختلف می‌توانند در یک دوره زمانی انجام شوند. پیاده‌سازی IBM بسیار پیچیده‌تر از قبلی‌هایش است، به دلیل اینکه می‌تواند عملیات مختلفی را به رشته‌های متفاوت اعمال کند، بیشتر ریز بخش است و موتور SMT به صورت پویا می‌تواند خاموش و روشن شود تا بهتر آن ظرفیت کاری را که پردازنده SMT نمی‌تواند افزایش کارایی دهد، اجرا کند. در ۲۰۱۰، شرکت آی‌بی‌ام سیستمی بر پایهٔ پردازنده 7POWER با هشت هسته معرفی کرد که هر هسته دارای ۴ رشته هوشمند هم‌زمان می‌باشد. این جابه‌جایی‌ها (تغییرات) در رشته‌ها بین یک رشته، دو رشته و چهار رشته به تعداد رشته‌های فرایند (پروسه) ای که زمان‌بندی شده‌اند بستگی دارد. این کار، استفاده از هسته را در پاسخگویی در حداقل زمان یا برای حداکثر خروجی بهینه می‌کند. همچنین بسیاری از مردم گزارش کرده‌اند که ریزسیستم UltraSPARC T1 شرکت سان (که در ۱۴ نوامبر سال ۲۰۰۵ با نام "نیاگاراً شناخته شد) و در حال حاضر پردازنده موسوم به "راک" که از بین رفته است (که در سال ۲۰۰۵ به معرف عموم رسید اما بعدی کلی تأخیر در سال ۲۰۰۹ تعطیل شد) پیاده‌سازی SPARC اغلب بر بهره‌برداری از روش SMT و CMP متمرکز شده است، در حالی که "نیاگاراً از SMT استفاده نمی‌کند. شرکت سان تمایل به این رویکرد ترکیبی با نام "CMT" و مفهوم کلی "توان محاسباتی" دارد. "نیاگاراً دارای ۸ هسته می‌باشد، اما هر هسته تنها یک خط لوله (pipeline) داراست، در واقع از چندرشتگی ریز بخش استفاده می‌کند. برخلاف SMT که دستورالعمل‌های چندرشتگی که پنجره عملیات را در هر دوره زمانی به اشتراک می‌گذارد، پردازنده از سیاست دور رابین برای اعمال دستورالعمل‌ها از رشته فعال بعدی در هر دوره زمانی استفاده می‌کند. پردازنده "راک" شرکت سان متفاوت است، دارای چند هسته پیچیده است که دارای بیش از یک خط لوله (pipeline) می‌باشد. شرکت اینتل (Intel) در مونته سیتو ایتانیوم خود از چندرشتگی درشت بخش استفاده کرده است و توکویلا و جدیدتر از اس‌ام‌تی دو روشی استفاده می‌کند (همراه با چندرشتگی دو-دامنه‌ای). شرکت اینتل در زئون فای از SMT 4-روشی (همراه با چندرشتگی زمان تسهیم شده) با سخت‌افزاری که برپایهٔ رشته‌ها است برخلاف فوق رشته‌ای منظم نمی‌تواند غیرفعال شود. اتمِ اینتل، در سال ۲۰۰۸ معرفی شد، اولین محصول برای آیندهٔ SMT دو روشی (فروخته‌شده به عنوان فوق رشته‌ای) بدون معین کردن مرتب‌سازی دستورالعمل، اجرای حدسی یا تغییر نام رجیستر است. اینتل فوق رشته‌ای را همراه با ریزساختار «نهالم» بعد از غیاب آن در معماری هسته باز معرفی کرد. معایب این سیستم بر اساس طراحی و معماری پردازنده، چندرشتگی هم‌زمان می‌تواند کارکرد را کاهش دهد. منتقدان در مورد این موضوع با هم گفتگو کرده‌اند که بار قابل توجهی وجود دارد که به توسعه دهندگان نرم‌افزارها بپذیرند که آنها مجبور هستند که چه چندرشتگی هم‌زمان خوب باشد و چه بد، بر روی نرم افزارش در موقعیت‌های مختلف و با اضافه کردن (جملات) منطقی به آن، آزمایش انجام دهند تا اگر کارایی را کاهش می‌دهد. | ## جمع‌بندی | پیاده‌سازی فوق رشته‌ای شرکت اینتل این آسیب‌پذیری را دارد که یک نرم‌افزار ممکن است کلید رمزنگاری آن از اجرای یک نرم‌افزار دیگر با پردازنده ای مشابه توسط نظارت بر استفاده تراشه دزدیده شود.