(Translated by https://www.hiragana.jp/)
چندریسمانی همزمان: تفاوت میان نسخه‌ها - ویکی‌پدیا، دانشنامهٔ آزاد

چندریسمانی همزمان: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
جز ابرابزار
 
(۳۲ نسخهٔ میانی ویرایش شده توسط ۱۶ کاربر نشان داده نشد)
خط ۱:
'''چند ریسمانیچندریسمانی همزمان''' (به [[انگلیسی نو|انگلیسی]]:Simultaneous multithreadingMultithreading یا SMT)، روشی برای [[واکنش افزایشی|افزایش]] بازدهی کلّکل می‌باشدسیستم است. این موضوعروش شاملبه ساختار [[واحد پردازش مرکزی|پردازنده‌هایی]] می‌پردازد، که بیشتر از یک [[مجموعه دستورالعمل|دستورالعمل]] را بصورتبه‌صورت همزمان اجرا می‌کنندمی‌کنند؛ این مجموعه از پردازنده‌ها و به [[سوپراسکالر]] (به انگلیسی: superscalar) معروف هستند می‌باشد. عملکردآن‌ها ودر وجودکنار اینسخت‌افزار پردازنده‌هابا همراه باقابلیت «چند ریسمانیچندریسمانی سخت‌افزاری» استکار می‌کنند. این فناوری به [[ریسه (رایانه)|ریسه‌هایریسه‌هایِ]] مستقل، اجازه می‌دهد از منابعی که در طراحیطراحیِ [[پردازنده]] در اختیار آن‌ها قرار داده شده است، بهتر استفاده کنند.<ref name="ثد">[//en.wikipedia.org/w/index.php?title=Simultaneous_multithreading&oldid=528274893 Wikipedia contributors, "Simultaneous multithreading,"], December 16, 2012.</ref>
 
پردازنده‌های سوپراسکالر به گونه‌ای طراحی شده‌اند که می‌توانند چندین دستورالعمل را در هر چرخه ساعت اجرا کنند. با این حال، در عمل، بسیاری از واحدهای اجرایی پردازنده ممکن است در هر چرخه به طور کامل مورد استفاده قرار نگیرند، زیرا همه دستورالعمل‌ها به منابع یکسانی نیاز ندارند. اینجاست که فناوری SMT وارد عمل می‌شود و بهبودهای قابل توجهی را ارائه می‌دهد.
 
در فناوری SMT، چندین ریسه (thread) یا فرآیند (process) می‌توانند به طور همزمان بر روی یک پردازنده اجرا شوند. این ریسه‌ها از منابع سخت‌افزاری مشترک پردازنده، مانند واحدهای محاسباتی، ثبات‌ها (registers)، و حافظه نهان (cache) استفاده می‌کنند. هدف اصلی SMT بهبود بهره‌وری از منابع پردازنده است که به طور معمول ممکن است در یک ریسه منفرد به طور کامل استفاده نشوند.
 
فناوری SMT این امکان را فراهم می‌کند که اگر یک ریسه به دلیل انتظار برای دسترسی به حافظه یا سایر منابع معطل باشد، ریسه‌های دیگر بتوانند از منابع بیکار استفاده کنند و به اجرا ادامه دهند. این ویژگی به بهبود بازدهی کلی پردازنده و کاهش زمان تأخیر کمک می‌کند.
 
یکی از مثال‌های برجسته استفاده از فناوری SMT در پردازنده‌های مدرن، پردازنده‌های سری Intel Hyper-Threading است. این پردازنده‌ها با استفاده از فناوری SMT قادرند دو ریسه را به طور همزمان بر روی هر هسته فیزیکی اجرا کنند. این به معنای این است که یک پردازنده چهار هسته‌ای با Hyper-Threading می‌تواند به طور همزمان هشت ریسه را اجرا کند. این موضوع منجر به بهبود چشمگیر عملکرد در برنامه‌هایی می‌شود که قابلیت اجرای موازی دارند.
 
پردازنده‌های AMD نیز از فناوری مشابهی به نام Simultaneous Multi-Threading بهره می‌برند. این فناوری در پردازنده‌های Ryzen این شرکت به کار گرفته شده و عملکرد بالاتری را در برنامه‌های چندریسمانی ارائه می‌دهد.
 
فناوری SMT نیازمند تغییرات و بهبودهای قابل توجهی در طراحی سخت‌افزاری پردازنده‌ها است. از جمله این تغییرات می‌توان به مدیریت پیچیده‌تر ثبات‌ها، افزایش تعداد واحدهای اجرایی، و بهبود سیستم حافظه نهان اشاره کرد. علاوه بر این، نرم‌افزار نیز باید به گونه‌ای طراحی شود که بتواند از مزایای SMT بهره‌برداری کند. این به معنای برنامه‌نویسی برای اجرای موازی و بهینه‌سازی الگوریتم‌ها برای استفاده از چندین ریسه به طور همزمان است.
 
یکی از چالش‌های اصلی SMT مدیریت منابع مشترک بین ریسه‌ها است. اگرچه این فناوری می‌تواند بهبودهای بزرگی در عملکرد ایجاد کند، اما در صورت مدیریت نادرست منابع، ممکن است به کاهش عملکرد یا تداخل بین ریسه‌ها منجر شود. به عنوان مثال، اگر دو ریسه به طور همزمان به یک منبع خاص نیاز داشته باشند، ممکن است باعث ایجاد تأخیر در اجرا شوند.
 
مزایای استفاده از SMT شامل افزایش بازدهی پردازنده، بهبود عملکرد در برنامه‌های چندریسمانی، و کاهش زمان تأخیر است. این فناوری به ویژه در برنامه‌هایی که به شدت به پردازش موازی متکی هستند، مانند شبیه‌سازی‌ها، محاسبات علمی، و پردازش داده‌های بزرگ، بسیار مؤثر است.
 
با این حال، همه برنامه‌ها نمی‌توانند از مزایای SMT بهره‌برداری کنند. برنامه‌هایی که به صورت ترتیبی اجرا می‌شوند و نیاز به پردازش موازی ندارند، ممکن است بهبود قابل توجهی در عملکرد مشاهده نکنند. به همین دلیل، توسعه‌دهندگان نرم‌افزار باید به طور دقیق نیازها و الگوهای کاری برنامه‌های خود را بررسی کنند تا بتوانند از فناوری SMT بهره‌برداری کنند.
 
در نتیجه، فناوری چندریسمانی همزمان یک ابزار قدرتمند برای بهبود عملکرد پردازنده‌ها و افزایش بازدهی سیستم‌های کامپیوتری است. این فناوری با به کارگیری همزمان چندین ریسه در یک پردازنده، می‌تواند بهره‌وری از منابع سخت‌افزاری را به حداکثر برساند و عملکرد سیستم را در برنامه‌های چندریسمانی بهبود بخشد. با این حال، بهره‌برداری بهینه از این فناوری نیازمند طراحی دقیق سخت‌افزار و نرم‌افزار و مدیریت مؤثر منابع مشترک بین ریسه‌ها است.
 
== جزئیات ==
نام ''چند رشتگی'' مبهم است چون چندین رشته و وظیفه (با جداول صفحهٔ مختلف، سطح‌های وضعیت وظیفهٔ مختلف، [[حلقه حفاظتی|حلقه‌های حفاظت]] مختلف، اجازه‌های ورود و خروج مختلف و …) می‌توانند به‌طور همزمان روی یک هستهٔ [[واحد پردازش مرکزی|سی‌پی‌یو]] اجرا شوند. علیرغم اجرا شدن روی یک هستهٔهسته، پردازندهٔ آن‌ها کاملاً از یکدیگر جدا و مستقل هستنداست. ''چند رشتگی'' از نظر مفهومی مشابه چند وظیفهٔ مختلف انحصاری استاست، ولی در سطح رشتهٔرشته اجرا در پردازنده‌های ابر مقیاس پذیر جدید پیاده‌سازی شده است.
 
چند رشتگی همزمان یکی از دو مورد از پیاده‌سازی اصلی چند رشتگی استاست، و شکل دیگر آن چند رشتگی زمانی است. در چند رشتگی زمانی، در هر سطح زمانی داده شده، تنها یک رشتهٔ دستور العمل‌ها قابل اجرا است. در چند رشتگی همزمان، دستورهای بیش از یک رشته در هر سطح زمانی داده شده قابل اجرا هستند. این، بدون تغییرات عمده‌ای نسبت به معماری پایهٔ پردازنده انجام شده است. ضمائم اصلی مورد نیاز، شامل توانایی واکشی (حمل) دستورالعمل‌ها از چند رشتگی در یک دوره زمانی و یک فایل [[رجیستر]] (ثبت‌کننده) بزرگ‌تر برای نگه‌داری داده‌ها از طرف چندرشتگی است. تعداد رشته‌های متقارن (همزمان)، توسط طراحان [[تراشه]] قابل تصمیم‌گیری است. دو رشته متقارن در هر هسته [[واحد پردازش مرکزی|سی‌پی‌یو]]CPU نوع رایج آن استاست، اما بعضی از پردازنده‌ها ۸ رشته [[تقارن|متقارن]] را در یک هستهٔ خود دارند.
 
به دلیل آن که روش فنی راه‌حل بسیار سودمندی استاست، و درگیری رو به افزایش اجتناب‌ناپذیر در اشتراک‌گذاری منابع، اندازه‌گیری یا تأیید اثربخشی راه‌حل می‌تواند دشوار باشد. به هر حال اندازه‌گیری اثربخشی انرژی اس‌ام‌تی توسط بومی موازی و مدیریت میزان کار در تاریخ از nm130130nm به nm3232nm در پیاده‌سازی اس‌ام‌تی شرکت [[اینتل]] به این رسیدند که در پیاده‌سازی در nm4545nm و nm3232nm ،SMT در انرژی بسیار کارآمد است. حتی در مورد پردازنده‌های اتمی در سیستم‌های مدرن، اس‌ام‌تی به‌طور هم‌زمان همراه با یک نیروی پویای کوچک اضافی کار می‌کند و حتی زمانی که بازده حداقل است، می‌توان به صرفه‌جویی در مصرف [[برق]] توجه داشت.
 
برخی از محققان نشان دادند که رشته‌های اضافی می‌تواند به عنوان عنصری فعال منبع اشتراک‌گذاری همانند مخزن مورد استفاده قرار بگیرند. برای بهبود کارایی تک رشته دیگر و این ادعا نشان می‌دهد که اس‌ام‌تی تنها یک راه حل مفید نیست. استفاده دیگر از اس‌ام‌تی ارائه محاسبات اضافی برای برخی سطوح کشف خطا و ترمیم آن است.
 
در هرحال، در بسیاری از موارد متداول، اس‌ام‌تی (SMT) برای پوشاندن تأخیر در کار حافظه، افزایش کارایی و افزایش توان محاسبات در هر مدت استفاده از سخت‌افزار می‌باشد.
 
== طبقه‌بندی ==
در طراحی پردازنده، دو روش برای تقارن [[آی‌سی|تراشه]] با کمترین منابع مورد نیاز وجود دارد: یک روش سوپر استاست، که سعی بر به‌کارگیری سطح دستورالعمل به‌طور موازی (ILP) و دیگر رویکرد چندرشتگی در به‌کارگیری سطح رشته به‌طور موازی است (TLP).
 
سوپر به معنای اجرای چندین دستورالعمل می‌باشدمی‌باشد، در حالی که سطح رشته موازی (TLP) اجرای دستورالعمل‌ها در چندین رشته همراه با یک تراشهتراشهٔ پردازنده به‌طور هم‌زمان می‌باشد.
* قرار دادن چند رشته در یک لایه: این عمل در چند دستورالعمل از چندین رشته، به چند رشته زمانی نیز اشاره دارد که بیشتر می‌تواند به ریز و درشت بخش‌های چند رشتگی مربوط به فرکانس عمل در یک لایه قرار دادن تقسیم شود. چند رشتگی ریز بخش -برای مثال در پردازنده در بسته – دستورالعمل‌ها را برای رشته‌های مختلف بعد از هر دوره زمانی انجام می‌دهد، در حالی که چند رشتگی درشت بخش تنها زمانی برای انجام دستورالعمل از دیگر رشته تغییر می‌کند که رشته عملیاتی فعلی باعث ایجاد تأخیر زیادی شده‌باشد (مانند صفحه گسل و غیره). چند رشتگی درشت بیشتر برای حداقل تغییرات زمینه بر روی رشته‌ها به‌کار برده می‌شود. برای مثال پردازنده مُنتسیتو [[اینتل|شرکت اینتل]] از چند رشتگی درشت استفاده می‌کند در حالی که UltraSPARC T1 شرکت سان از چند رشتگی ریز استفاده می‌کند. برای چنین پردازنده‌هایی که تنها یک خط لوله (pipeline) در هر هسته دارد، قرار دادن چند رشته در یک لایه تنها راه ممکن است، به دلیل آن که می‌تواند بر روی حداکثر یک دستورالعمل در دوره زمانی کار کند.
* چند رشتگی هم‌زمان (SMT): عملیات چند دستورالعملی را از چندین رشته در یک دورهدورهٔ زمانی انجام می‌دهد. پردازنده باید بسیار بزرگ (سوپر) باشد تا بتواند انجام دهد.
* چندپردازشگری در سطح تراشه (CMP یا چند هسته‌ای): دو یا چند پردازنده را در یک تراشه ادغام می‌کند. در این حالت هر عملیات به‌طور مستقل انجام می‌دهد.
* هر صورت دیگری از ترکیب چند رشتگیSMT/CMP.
سطر ۲۳ ⟵ ۴۳:
 
== پیاده‌سازی در طول تاریخ ==
مادامی که چندرشتگی CPUها که از حدود سال ۱۹۵۰ وجود دارند، چندرشتگی همزمان اولین [[تحقیق]] شرکت IBM به عنوان بخشی از پروژهٔ ACS-360 در سال ۱۹۶۸ بود. اولین [[تجارت]] بزرگ [[ریزپردازنده]]‌ها توسعه یافته توسط SMT, Alpha 21464 (EV8) می‌باشد. این ریزپردازنده توسط DEC با هماهنگی دین تُلسن از[[دانشگاه کالیفرنیا]] در سندیگو و سوزان ایگرز و هنری لِوی از [[دانشگاه واشینگتن]] توسعه یافت. از زمانی که خط Alpha ریز پردازنده‌ها به‌مدت کوتاهی متوقف شد، ریزپردازنده هیچگاه عرضه نشد؛ قبل از اینکه [[هیولت پاکارد|HP]], Compaq را به‌دست‌آورد DEC را به‌دست آورده بود. کار دین تُلسن همچنین توسعه دادن نسخه‌های فوق رشته‌ای (تکنولوژی فوق رشته‌ای یا HTT) [[ریزپردازنده|ریز پردازنده]]<nowiki/>های [[پنتیوم ۴]] شرکت [[اینتل]] بود، به عنوان مثال"Northwood" و "Prescott ".{{مدرک}}
 
== پیاده‌سازی مدرن تجاری ==
سطر ۲۹ ⟵ ۴۹:
 
آخرین طراحی در معماری MIPS شامل سیستم اس‌ام‌تی است که با عنوان MIPS MT شناخته شده است.
MIPS MT، وزن سنگین عناصر پردازش مجازی و وزن کم ریزرشته‌های [[سخت‌افزار رایانه|سخت‌افزار]] بهبود داد. RMI، راه انداز برپایهٔ کوپرتینو، اولین فروشنده MIPS برای بهبود پردازنده برپایهٔ SOC بر روی ۸ هسته می‌باشد که هرکدام ۴ رشته را اجرا می‌کند. رشته‌ها می‌توانند در حالت ریز بخش اجرا شوند که یک سری رشته مختلف می‌توانند در یک دوره زمانی انجام شوند. رشته‌ها می‌توانند به یک سری اولویت‌ها اختصاص داده شوند. تکنولوژی تصوری MIPS در CPU دارای 2 SMT رشته در یک هسته می‌باشند. {{چه زمانی}}
 
IBM [[ژن آبی]] / Q دارای ۴ راه SMT است.
سطر ۵۶ ⟵ ۷۶:
 
== معایب این سیستم ==
براساسبر اساس طراحی و [[معماری]] پردازنده، چندرشتگی هم‌زمان می‌تواند کارکرد را کاهش دهد. اگر هر یک از منابع به اشتراک گذاشته شده تنگ‌ناهایی برای کارایی باشند. منتقدان در مورد این موضوع با هم گفتگو کرده‌اند که بار قابل توجهی وجود دارد که به توسعه دهندگان نرم‌افزارها به‌پذیراندبپذیراند که آن‌ها مجبور هستند که چه چند رشتگی هم‌زمان خوب باشد و چه بد، بر روی [[نرم‌افزار|نرم‌افزارش]]<nowiki/>ش در موقعیت‌های مختلف و با اضافه کردن (جملات) منطقی به آن، آزمایش انجام دهند تا اگر کارایی را کاهش می‌دهد. آن را خاموش کنند (از دور خارج کنند). سیستم عامل‌های نامناسب کنونی [[API]] خواستار این مقصود و برای جلوگیری از پردازش همراه با اولویت مختلف با گرفتن منابع از یکدیگر هستند.
 
همچنین در مورد پیاده‌سازی چند رشتگی هم‌زمان کنونی، نگرانی‌های امنیتی وجود دارد. پیاده‌سازی فوق رشته‌ای شرکت اینتل این آسیب‌پذیری را دارد که یک نرم‌افزار ممکن است [[کلید (رمزنگاری)|کلید رمزنگاری]] آن از اجرای یک نرم‌افزار دیگر با پردازنده‌ای مشابه توسط نظارت بر استفاده تراشه دزدیده شود.