سازندگان پردازندههای کامپیوتری، بهطور پیوسته محصولاتی با تعداد هسته و رشته بیشتری را نسبت به گذشته معرفی میکنند. در حالی که چند سال پیش پردازندههای کامپیوتری تنها با یک هسته (Core) و یک رشته (Thread) به بازار عرضه میشدند. هماکنون، پردازندههایی قدرتمندی با ۸، ۱۲، ۱۶ یا تعداد بیشتری رشته در دسترس خریداران قرار دارند. اما مفهوم رشته در پردازندهها چیست و این فاکتور چه اهمیتی در انتخاب یک پردازنده دارد؟
اشاره به واحدهایی مانند هسته و رشته در یک پردازنده امروزی امری عادی است. در واقع شرکت سازنده پردازنده در برگ مشخصات یا در هنگام عرضه محصول اعلام میکند که پردازنده مورد نظر از چند هسته و چند رشته پردازشی استفاده میکند. اما هسته و رشته در عمل چه تفاوتها و چه شباهتهایی با هم دارند؟ دانستن این سوال از آن جهت مهم است که شاید برای برخی افراد هسته بیشتر پردازنده کارایی بیشتری داشته باشد و برای برخی، رشتهها. در ادامه این مطلب سعی میکنیم در ابتدا با هم نگاهی به تعاریف مرتبط با این مفاهیم انداخته و به مهمترین ابهامات و سوالات پیرامون این موضوع پاسخ دهیم.
هسته پردازنده چیست؟
اغلب پردازندههای امروزی، از واحدهای پردازشی کوچکتری تشکیل میشوند که هسته نام دارند. در این ساختار، دستورات در میان هستههای یک پردازنده تقسیم میشوند و بدین ترتیب امکان پردازش حجم بیشتری از دادهها در زمان کوتاهتر فراهم میگردد.
در همین رابطه بخوانید:
- تاریخچه پردازنده های کامپیوتر و معرفی انواع CPU های PC
- مقایسه پردازنده موبایل و دسکتاپ
پردازش موازی دستورات
پس از عرضه پردازندههای چند هستهای، توجه توسعهدهندگان نرمافزاری به قابلیتهای این دسته از پردازندهها در پردازش موازی اطلاعات جلب شد. در پردازش موازی، دستورات به بخشهای کوچکتری تقسیم میشوند و پردازندهها یا هستههای متعدد دستورات کوچک را بهطور همزمان پردازش میکنند.
تصویر فوق به خوبی عملکرد یک روند پردازشی برای سه دستور را نشان میدهد. پردازش دستورات در زمان T-0 آغاز شده و هر سه دستور بهطور همزمان پردازش میشوند. در نهایت در زمان T-2 پردازش دستورات پایان مییابد. به کمک این روش میتوان دستورات متعددی را بهطور همزمان پردازش کرد.
رشته پردازشی چیست؟
یک رشته پرادازشی را میتوان کوتاهترین توالی دستورات مورد نیاز برای انجام یک وظیفه (Task) محاسباتی تعریف کرد. به عبارت ساده، رشتهها به عنوان بخشی از فرایند پردازش، امکان انجام همزمان چندین کار را میدهند که این امکان با مفاهیم انجام همزمان دستورات در هستهها متفاوت است..
هر رشته، دنبالهای از دستورالعملها را شامل میگردد که میتوانند بهطور همزمان اجرا شوند. از آنجایی که پردازش همزمان و موازی چند دستورالعمل با سرعت بالاتری نسبت به پردازش دستورالعملها بهصورت یک به یک انجام میشود، در نهایت سرعت پردازش دستورات افزایش خواهد یافت.
در همین رابطه بخوانید:
- مقایسه i7 ،Core i9 و i5 ؛ کدام پردازنده اینتل برای شما مناسب است؟
- رده بندی بهترین پردازنده های موبایل در سال 2022
هر هسته در پردازنده قابلیت تبدیل شدن به دو رشته پردازشی را دارد؛ در واقع میتوان یک پردازنده 4 هستهای را به پردازندهای با 8 ترد تشبیه کرد و این روند برای دیگر پردازندهها نیز به شرط فراهم کردن شرایط توسط تولیدکننده پردازنده، صادق است. فراموش نکنید که ترد یا رشته یک واحد مجازی است و عملاً بخشی در Die پردازنده برای رشته پیدا نخواهید کرد.
تاثیر رشتهها و هستهها بر عملکرد کامپیوتر
تعداد هسته و پشتیبانی از رشته، در حقیقت ظرفیت پردازنده برای اجرای همزمان وظایف را مشخص میکنند. افزایش تعداد هسته و پشتیبانی از تعداد رشته در پردازنده بدین معناست که پردازنده میتواند وظایف بیشتری را بهطور همزمان انجام دهد. اما این فاکتور به معنی افزایش سرعت پردازنده نیست. در حقیقت، سرعت پردازنده، توسط فرکانس کاری پردازنده مشخص میشود.
از طرفی توان مصرفی پردازنده با افزایش یا کاهش تعداد رشته و هسته رابطه مستقیمی دارد. یعنی پردازندههایی که هستههای بیشتری دارند، توان مصرفی بیشتری نیز خواهند داشت.
چندرشتهای یا Multithreading چیست؟
چندرشتهای (Multithreading)، روشی است که امکان اجرای وظایف متعدد یک دستور بهطور همزمان را امکانپذیر میکند. این مفهوم، به دستورات متداولی اشاره دارد که چندین رشته را در سیستمعامل اجرا میکنند و میتواند چندین پردازش سیستمی را نیز شامل گردد.
مالتی تردینگ چگونه کار میکند؟
اغلب پردازندههای مدرن امروزی از قابلیت مولتیتردینگ پشتیبانی میکنند. زمانی که یک اپلیکیشن را بر روی دستگاه (گوشی هوشمند یا کامپیوتر) خود اجرا میکنید که به واکشی (Fetch) دادهها از شبکه اینترنت نیاز دارد، بخش نمایش محتوای اپلیکیشن با یک پیغام یا تصویر یک چرخنده (لودینگ یا در حالت بارگذاری) جایگزین میشود تا زمانی که دادهها دریافت و نمایش داده شوند. در این حالت میتوان گفت که در پس زمینه دو رشته وجود دارد؛رشته مربوط به واکشی دادهها از شبکه اینترنت و رشته مربوط به رندرینگ رابط گرافیکی (GUI) که تصویر چرخنده را نمایش میدهد. هر دو رشته یکی پس از دیگری اجرا میشوند تا حس اجرای همزمان را در مخاطبان ایجاد کنند.
هسته و رشته چه تفاوتی با یکدیگر دارند؟
همانطور که در بخشهای قبلی نیز عنوان شد هسته و رشته علیرغم مفاهیم نزدیک و اینکه در بیشتر اوقات در کنار هم استفاده میشوند، عملکرد و رویکرد متفاوتی دارند. در حالت کلی میتوان پارامترهای رشته و هسته را مانند جدول زیر با هم مقایسه کرد:
پارامتر | هسته | رشته |
تعریف | هستههای یک پردازنده بخشی از سختافزار کامپیوتر هستند. | رشتهها، مولفههای مجازی محسوب میشوند که وظایف را مدیریت میکنند. |
فرایند | پردازنده، وظایف را از رشته دریافت میکند. بنابراین، تنها زمانی به رشته دوم دسترسی مییابد که دادههای ارسال شده توسط رشته اول قابل اتکا نباشد. | جنبههای مختلفی از روش تعامل پردازنده با رشتههای متعدد وجود دارد. |
پیادهسازی | از طریق عملیات Interleaving قابل دستیابی است. | از طریق ارسال درخواست به پردازندههای متعدد انجام میگیرد. |
مزیت | افزایش ظرفیت پردازش در یک زمان معین. | بهبود توان عملیاتی، افزایش سرعت محاسباتی. |
ملزومات | استفاده از .Content Switching | استفاده از پردازندههای متعدد برای اجرای چند فرآیند پردازشی. |
واحدهای پردازشی مورد نیاز | تنها به واحد پردازش سیگنال نیاز دارد. | به چندین واحد پردازشی نیاز دارد. |
مثال | اجرای چند نرمافزار بهطور همزمان. | اجرای خزنده وب بر روی یک خوشه. |
هایپر تردینگ چیست و چه کاربردهایی دارد؟
هایپر تردینگ (Hyper-Threading)، نخستین تلاش اینتل برای استفاده از مفهوم محاسبات موازی بر روی کامپیوترهای شخصی محسوب میشود که برای نخستین مرتبه در سال ۲۰۰۲ میلادی و در پردازندههای پنتیوم ۴ مورد استفاده قرار گرفت.
از آنجایی که پردازنده Pentium 4 تنها به یک هسته مجهز شده بود، تنها میتوانست یک رشته را در هر لحظه پردازش کند. پردازنده تک هستهای با ویژگی هایپر تردینگ بهصورت دو پردازنده منطقی توسط سیستمعامل در نظر گرفته میشود و پردازنده مجموعه واحدی از منابع سخت افزاری را برای هر هسته در اختیار دارد. بنابراین، پردازنده تک هستهای پنتیوم ۴، با دو هسته مجازی نیز قابلیت پیکربندی داشت که مفهوم هسته و رشته را به یک سطح بالاتر ارتقا داد.
در همین رابطه بخوانید:
- تراشه اسنپدراگون چیست؟
- مقایسه تعداد هسته با سرعت کلاک پردازنده
برای درک چگونگی اجرای همزمان دستورات دو رشته توسط یک پردازنده، آن را به مانند یک کارخانه فرض کنید که در طی مراحل متعدد دادهها را پردازش میکند. در ابتدا دادهها واکشی و سپس سازماندهی میشوند. سپس پردازنده با تقسیم دستورات (رشتهها) به بخشهای کوچکتر، آنها را مرتب میسازد. همانند خط تولید خودرو در شرکتهای بزرگ خودروسازی که در هر مرحله از قطعات مختلفی استفاده میشود، پردازنده نیز برای تکمیل مجموعهای دستورالعملهای ارائه شده، باید دستورات متعددی را در یک توالی اجرا کند.
همانطور که در تصویر مشاهده میگردد، دستورات دریافت شده بهترتیب و طی مراحل متعدد اجرا میگردد که این فرایند با عنوان خطوط لوله پردازنده (CPU Pipeline) شناخته میشود. سختافزاری نیز با عنوان SMT، وضعیت هر بخش در خطوط لوله را ردیابی میکند تا مشخص گردد که آیا امکان استفاده از وضعیتهای بیکاری توسط رشته دیگری وجود دارد یا خیر.
چرا پردازندههای کامپیوترهای شخصی حداکثر به دو رشته مجهز میگردند؟
در قسمتهای ابتدایی این مقاله گفتیم که هر هسته داخل پردازندههای امروزی (در حوزه PC) حداکثر دو رشته را مدیریت میکنند. در حقیقت، خطوط لوله این دسته از پردازندهها نسبتاً کوتاه و ساده محسوب میشود. بنابراین، نتایج ارزیابی طراحان نشان میدهد که استفاده از دو رشته برای این پردازندهها بهینهترین حالت ممکن محسوب میشود.
در مقابل، هر هسته از پردازندههای سرور همانند پردازندههای Xeon Phi اینتل یا جدیدترین سری از پردازندههای POWER شرکت IBM، از تعداد زیادی خطوط لوله تشکیل شده و بههمین دلیل ۴ تا ۸ رشته را در هر هسته مدیریت میکنند.
در حقیقت، رویکرد متفاوت در طراحی پردازندههای مورد استفاده در کامپیوترهای شخصی و پردازندههای سرور از تفاوت گسترده در حجم کاری این پردازندهها سرچشمه میگیرد.

چگونه از پردازشهای در حال اجرا و تعداد رشتهها در کامپیوتر خود مطلع شویم؟
احتمالاً شما نیز با فهرستی از برنامههای مختلف در تب Process تسکمنیجر سیستمعامل دستگاه خود مواجه شدهاید. تعدادی از آیتمهای موجود در این فهرست، توسط سیستمعامل اجرا میشوند و هیچ کنترلی از سوی کاربران بر روی آنها وجود ندارد. از طرفی، تعداد دیگری از آیتمهای موجود در فهرست پردازش تسک منیجر نیز توسط کاربران کنترل میشوند.
درصورتی که به تب Performance در تسکمنیجر بروید و سپس از منوی سمت چپ بر روی تب Proces کلیک کنید، تعداد پردازشهای در حال اجرا و همچنین تعداد کل رشتههای فعال را مشاهده خواهید کرد.
با این وجود، تسکمنیجر اطلاعات زیادی را در رابطه با رشتهها ارائه نمیکند، برای مثال تعداد رشتههای مرتبط با هر Process قابل مشاهده نیست. خوشبختانه، مایکروسافت برای نمایش جزئیات مربوط به رشتهها، ابزار دیگری را با نام Process Explorer ارائه کرده است.
در همین رابطه بخوانید:
- تفاوت پردازنده های تری (Tray) و پردازنده های باکس (Boxed)
- سوکت CPU چیست؟ آشنایی با انواع سوکت پردازنده
به کمک این ابزار، قادر خواهیم بود تا دادههای دقیقتری را از پردازشهای مختلف و رشتههای مربوط به هر یک را مشاهده کنیم. همانطور که مشاهده میکنید، توالی دستورهای نرمافزارهای مختلف با یکدیگر تفاوت دارد، بهطوری که تعدادی از نرمافزارها توالی دستورهای نسبتاً کوتاهی را ایجاد میکنند و توالی دستورهای تعدادی از برنامهها نیز به صدها واحد میرسد.
همانطور که انتظار میرود، بخش بزرگی از رشتههای ایجاد شده به خود سیستمعامل تعلق دارد. سیستمعامل رشتهها را ایجاد و مدیریت میکند اما نرمافزار قادر به پردازش دستورالعملها در رشتهها نبوده و برای این هدف به سختافزار نیاز دارد.
پردازندههای امروزی، رشتهها را هوشمندانه اجرا میکنند
همانطور که میدانید، مقصد نهایی هر رشته پردازنده مرکزی خواهد بود. پردازنده، فهرست دستور العملها را دریافت کرده و آن را به زبانی که میفهمد ترجمه میکند، سپس دستورات تعیین شده را اجرا میکند.
پردازندهها میتوانند برای بهحداکثر رساندن کارایی، دستورالعملهای رشته را کمی تغییر دهند. بعلاوه، پردازندههای امروزی به ابزارهای پیچیدهای برای مدیریت رشتهها مجهز شدهاند که علاوه بر تغییر دستورالعملها، نتیجه احتمالی را نیز پیشبینی میکنند. این ویژگی به پردازنده کمک میکند تا توابع شرطی را با سرعت بالاتری پردازش کند.
پردازنده گرافیکی و رشته ها
پردازندههای مورد استفاده در ساخت کارتهای گرافیک (GPU) در مقایسه با پردازندههای مرکزی (CPU)، از نظر فیزیکی در ابعاد بزرگتری طراحی و ساخته میشوند، ترانزیستورهای بیشتری دارند، توان الکتریکی بیشتری را مصرف میکنند و رشتههای بسیار بیشتری را حتی در مقایسه با پردازندههای سرور پردازش میکنند. همچنین، پردازندههای گرافیکی محاسبات ریاضی را با سرعت بیشتری در مقایسه با پردازندههای مرکزی پردازش میکنند.
بهعنوان مثال، کارت گرافیک Radeon RX 6800 به تراشه Navi 21 مجهز شده است. این تراشه، از ۶۰ واحد محاسباتی (CU) تشکیل شده که هر یک میتوانند ۶۴ رشته مجزا را در یک لحظه و بهطور همزمان ایجاد کنند. بنابراین، تعداد رشتهها حداکثر به ۳۸۴۰ رشته میرسد. همانطور که پیشتر در این مقاله اشاره شد، هر هسته از پردازندههای مرکزی کامپیوترهای شخصی حداکثر دو رشته را مدیریت میکنند.

پردازنده گرافیکی چگونه رشتهها را مدیریت میکند؟
هر واحد محاسباتی، دو مجموعه SIMD (دستورالعمل منفرد، دادههای متعدد) را در اختیار دارد و هر یک از SIMDها میتوانند بهطور همزمان بر روی ۳۲ داده مجزا کار کنند. دادهها میتوانند از رشتههای متفاوت دریافت شوند اما واحد پردازشی باید همان دستورالعمل را در هر رشته اجرا کند.
پردازندههای گرافیکی، طوری طراحی شدهاند که میتوانند عملیاتهای تکراری را بارها انجام دهند که معمولاً از دستورات مشابهی سرچشمه میگیرند که بهطور گسترده و در حجم وسیع پردازش میشوند.
در همین رابطه بخوانید:
- حافظه کش پردازنده چیست؟ چرا Cache در سی پی یو مهم است؟
- تفاوت پردازنده های لپ تاپ AMD Ryzen U با H و HS یا HX
مثال خوبی برای درک بهتر اهمیت استفاده از رشتهها در GPU، بازیهای گرافیکی امروزی هستند. بازیهای کامپیوتری امروزی با تصاویر پیچیده سهبعدی و گرافیک خیرهکننده طراحی میشوند و در نتیجه، حجم عظیمی از محاسبات ریاضی را به پردازنده گرافیکی تحمیل میکنند که باید در زمانی بسیار کوتاه (طی چند میلی ثانیه) پردازش شوند. بههمین دلیل در اختیار داشتن کارت گرافیک قدرتمند برای گیمرها یک مزیت محسوب میشود.
پردازندههای آینده چگونه خواهد بود؟
امروزه، پردازندههای قدرتمندی همانند Ryzen 9 7950X در دسترس خریداران قرار دارند که میتواند ۳۲ رشته را مدیریت کند. در حالی که ده سال پیش تصور در اختیار داشتن چنین پردازندهای برای کامپیوترهای شخصی یک رویا بهنظر میرسید. در آن زمان، بهترین پردازندهها حداکثر از ۸ رشته پشتیبانی میکردند، در حالی که پردازندههای ارائه شده برای کامپیوترهای شخصی حداکثر از ۴ رشته پشتیبانی میکردند. هماکنون، میتوان پردازندههای ارزان قیمتی را خریداری کرد که تعداد هسته، رشته و در نهایت عملکرد بسیار بهتری در مقایسه با بهترین پردازندههای یک دهه گذشته دارند.
کمپانی AMD، نخستین شرکتی محسوب میشود که پردازندههای مقرون بهصرفه با تعداد نسبتاً زیادی از هسته و رشتهها را به بازار ارائه کرده و هماکنون نیز رقابت تنگاتنگ اینتل و AMD برای پیشنهاد تعداد هستهها و رشتههای بالاتر به خریداران پردازندههای مرکزی ادامه دارد.
اگرچه، استفاده از یک پردازنده مرکزی با ۱۲۸ رشته برای اجرای بازیهای کامپیوتری بهدلیل کاهش بازدهی پردازنده متناسب با افزایش تعداد هسته بعید بهنظر میرسد، اما سازندگان حرفهای محتوا هماکنون برنامههای خود را به نحوی طراحی میکنند که میتوان از حداکثر توان پردازشی پردازندههای مشابهی همانند Threadripper Pro 5995WX با ۶۴ هسته و ۱۲۸ رشته نیز استفاده میکنند.
در همین رابطه بخوانید:
- مقایسه پردازنده های پنتیوم (Pentium) و سلرون (Celeron)
- تفاوت بین هستههای P-Cores و E-Cores در پردازندههای اینتل
جمعبندی
در این مقاله، پس از آشنایی با مفهوم رشته یا ترد اهمیت این فاکتور در پردازندههای کامپیوتری مورد بررسی قرار گرفت. همچنین، موضوعاتی شامل تفاوت پردازندههای مورد استفاده در کامپیوترهای شخصی و کامپیوترهای سرور از نظر تعداد رشتهها، چگونگی مدیریت رشتهها توسط پردازنده، دستاورد شرکتهای سازنده پردازندههای کامپیوتری در استفاده از رشته و همچنین تفاوت پردازندههای گرافیکی و پردازندههای مرکزی از نظر تعداد رشتهها نیز عنوان شده است.
همانطور که در طول زمان فناوری مورد استفاده در ساخت پردازندههای مرکزی تکامل یافته است، انتظار میرود که رقابت شرکتهای سازنده برای افزایش تعداد هسته و رشته پردازندهها در آینده نیز تداوم یابد. بنابراین، پیش از برطرف شدن موانع ساخت و تولید انبوه کامپیوترهای کوانتومی برای کاربردهای خانگی، گیمینگ، اداری و صنعتی، تعداد هسته و رشته عوامل تعیین کننده در انتخاب پردازنده خواهند بود.
نظر خود را اضافه کنید.
برای ارسال نظر وارد شوید
ارسال نظر بدون عضویت در سایت