پردازنده (CPU) اجزای حیاتی سرورها هستند؛ تعداد هستهها و معماری رشت ها به طور جدی بر عملکرد برنامههای میزبانی شده تاثیر میگذارد. توجه به رشتههای CPU در کنار تعداد هستهها برای عملکرد زیرساخت ضروری هستند زیرا ترکیب مناسب سازگاری بهینه، قدرت پردازش کارآمد و توانایی رسیدگی به نیازهای محاسباتی خاص شما را به طور موثر تضمین میکند.
هر دلاری که برای زیرساختها، سختافزار و نرمافزار هزینه میشود باید به سود قابل اندازهگیری و بازگشت سرمایه منجر شود. این قانون در مورد همه چیز اعمال میشود، از انتخاب هاست اشتراکی تا CPUهایی که سرورهای شما را تامین میکنند.در این مطلب به بررسی هسته و رشته در پردازنده و بیان تفاوتهای آنها خواهیم پرداخت:
تفاوت هسته (Core) و رشته (Thread) در چیست؟
هسته (core)
core یک واحد پردازش جداگانه در CPU ، دارای رجیسترها، واحد منطق حسابی (ALU) و واحد کنترل است که به پردازنده اجازه میدهد تا دستورالعملها را مستقل از هستههای دیگر اجرا کند.
رشته (thread)
thread یک توالی مستقل از دستورالعملها است که میتواند توسط یک هسته CPU برنامه ریزی و اجرا شود. هر رشته دارای فضای آدرس خاص خود در یک هسته است که توسعه دهندگان از آن برای ارجاع به یک رشته در برنامهها استفاده میکنند.
چند رشته ای (Multithreading)
این تکنیک کدنویسی به توسعه دهندگان اجازه میدهد تا چندین رشته را در یک فرآیند واحد اجرا کنند. Multithreading یک تکنیک عالی برای استفاده حداکثری از CPU چند هستهای است.
فراریسمانی (Hyperthreading)
این تکنیک مختص CPU اینتل که برای اولین بار در پردازندههای Pentium 4 معرفی شد، یک پردازنده فیزیکی را به دو واحد پردازش منطقی تبدیل میکند. در نتیجه، CPU میتواند دو برابر تعداد Threadها را پردازش کند که باعث افزایش قابل توجه عملکرد CPU میشود.
اکنون که مفاهیم اساسی را مرور کردید، بیایید بررسی کنیم که اصلا پردازنده (CPU) چیست؟
CPU چیست؟
واحد پردازش مرکزی یا CPU جزء اصلی یک سیستم کامپیوتری است که مسئول اجرای اکثر وظایف پردازشی است.CPU مسئول تفسیر و اجرای دستورالعملهای ذخیره شده در حافظه کامپیوتر و هماهنگی عملیات اجزای سخت افزاری و نرم افزاری مختلف است.
عملکرد CPU معمولا با سرعت کلاک اندازهگیری میشود، که نشان میدهد در هر ثانیه چند دستورالعمل میتواند اجرا کند. با این حال، عوامل دیگری مانند تعداد هستهها، اندازه کش و معماری نیز بر عملکرد کلی یک CPU تأثیر میگذارند.
CPU به شکلهای مختلف از جمله در کامپیوترهای رومیزی، لپ تاپ، سرورها، گوشیهای هوشمند و سایر دستگاههای الکترونیکی وجود دارند. آنها برای انجام وظایف مختلف، از محاسبات ساده گرفته تا محاسبات پیچیده مورد نیاز برنامهها و نرم افزارهای مدرن، طراحی شدهاند.
مقدمهای بر هسته پردازنده (CPU Core)
تعداد هستهها در CPU یک سیستم بر تعداد کارهایی که ممکن است همزمان اجرا شوند (از یک وظیفه خط فرمان ساده گرفته تا یک برنامه پیچیده چند رشتهای) تاثیر میگذارد. به عنوان مثال، یک پردازنده تک هستهای ممکن است تنها قادر به انجام یک کار در یک زمان باشد. از سوی دیگر، یک پردازنده چند هستهای میتواند چندین کار را همزمان انجام دهد. با هر هسته اضافی، سرعت پردازش و توان عملیاتی کلی افزایش می یابد و سیستم پاسخگوتر و کارآمدتر میشود.
همانطور که میدانید، CPU را میتوان به طور کلی به دو دسته تقسیم کرد:
-
پردازنده تک هستهای
پردازندههای تک هستهای برای دستگاههایی که باید در هزینه و مصرف انرژی صرفه جویی کنند مناسب هستند. از طرف دیگر، آنها در انجام چند وظیفهای(multitasking) کارآمد نیستند. میتوانید این پردازندهها را در میکروکنترلرهای مورد استفاده در سیستم های تعبیه شده(embedded) پیدا کنید.
-
پردازنده چند هستهای
یک پردازنده چند هستهای برای کارهای چندوظیفهای مانند اپلیکیشنها با کارایی بالا و پردازش کارآمد مجموعه دادههای عظیم بسیار مناسب است.
این CPU میتواند وظایف را بین هستههای خود تقسیم و هر هسته بخشی از بار پردازشی را اداره کند. البته به این معنی است که یک CPU چند هستهای به قدرت و زیرساخت پشتیبانی بیشتری نسبت به یک CPU با یک هسته نیاز دارد.
تفاوت بین پردازنده و هسته
هنگام بحث در مورد مقایسه هسته و رشته در CPU، ممکن است پردازنده و هسته اشتباه گرفته شوند. از این گذشته، یک هسته دارای اجزای بسیاری است که یک پردازنده دارد.
یک راه خوب برای درک این تفاوت این است که هستههای CPU را به عنوان چرخ و پردازنده را به عنوان وسیله نقلیه تصور کنید. چرخها برای حرکت وسیله نقلیه مورد نیاز هستند و سازندگان میتوانند چرخهای بیشتری را برای قدرت و ثبات بیشتر اضافه کنند.
CPU یک تراشه کامپیوتری پیچیده است که شامل چندین هسته و زیرساخت پشتیبانی به شکل گذرگاهها و رابطهای خارجی (پینهایی که CPU را به سوکت مادربرد متصل میکند) است.
مقدمهای بر رشتههای پردازنده (CPU Threads)
thread مجموعهای از دستورالعملها است که یک برنامه کاربردی به CPU ارسال میکند. هر چه یک CPU بتواند رشتههای بیشتری را به طور همزمان اجرا کند، تعداد کارهایی که میتواند با موفقیت انجام دهد بیشتر میشود.Threading برای بهبود عملکرد چندوظیفه ای و کارایی یک CPU استفاده میشود.
CPU میتواند اجرای thread را به یک هسته اختصاص دهد یا چندین هسته را برای اجرای همزمان درگیر کند. این منجر به زمان پاسخ سریعتر و استفاده کارآمدتر از منابع خواهد شد.
همه برنامههای کاربردی مدرن، مانند مرورگرهای وب، نرمافزارهای دسکتاپ، برنامههای موبایل، پایگاههای داده و اجزای نرمافزار سمت سرور، از چند رشتهای استفاده میکنند. توسعه دهندگان از آن به عنوان یک راهکار قوی برای استفاده از تمام منابع موجود در یک شبکه یا محیط کامپیوتری با استفاده موثر از قابلیتهای مدیریت رشته CPU استفاده میکنند.
به عنوان مثال، کاربری را در نظر بگیرید که می خواهد محاسبات فشرده را روی یک مجموعه داده گسترده انجام دهد. این کار را میتوان به چند رشته تقسیم کرد. سپس CPU در مورد تخصیص thread تصمیم میگیرد تا مشکل را به بهترین نحو ممکن حل کند. در طول فرآیند، CPU وظایف دیگری مانند مدیریت I/O را در اولویت قرار میدهد، بنابراین کاربر بدون توجه به بار پردازش، تجربه بسیار خوبی دارد.
پردازندههای دارای ابر رشته ( hyper-threading) در کنترل سناریوهایی مانند آنچه در بالا توضیح داده شد بهتر هستند. از آنجایی که CPU عملکرد doubled دارد، میتواند Threadها را سریعتر پردازش کند که تضمین میکند نیازهای کاربر در حداقل زمان پردازش میشوند.
در ادامه در مورد چند رشتهای و ابر رشتهای با جزئیات بیشتری صحبت میکنیم:
چند رشتهای (Multithreading)
Multithreading فرآیندی است که در آن یک CPU واحد چندین رشته را به طور همزمان اجرا میکند.
پردازنده وظایف را به رشتههای جداگانه تقسیم کرده و آنها را به صورت موازی اجرا و استفاده از منابع موجود سیستم را افزایش میدهد و عملکرد را بهبود میبخشد.
Multithreading را میتوان گسترش داد تا شامل چندین CPU را برای کاهش تاخیر اجرا شود. این پردازندهها در یک پیکربندی موازی برای سرعت بخشیدن به اجرای thread کار میکنند. در نتیجه، سیستم میتواند تعداد قابل توجهی از وظایف را به طور همزمان انجام دهد.
ابر رشتهای (Hyper-threading)
Hyper-threading عملکرد چند هستهای کامپیوتر را با اجازه دادن به آنها برای اجرای دو رشته به طور همزمان افزایش میدهد. این تکنیک با تقسیم منابع هر هسته در دو رشته عمل میکند. در نتیجه، آنها می توانند همزمان فعال باشند و حافظه کش، ثباتها و واحدهای اجرایی را به اشتراک بگذارند.
به CPU اجازه میدهد تا از منابع استفاده نشده استفاده کند که عملکرد را بهبود بخشد. از آنجا که به هستههای فعال بیشتری نیاز دارد، Hyper-threading میتواند انرژی بیشتری نسبت به چند رشتهای سنتی مصرف کند.
به دلیل تاثیر ترکیبی ابر رشتهای، پردازندههای امروزی میتوانند تعداد شگفت انگیزی از کارها را به طور همزمان پردازش کنند.
مقایسه هسته و رشته در پردازنده – تفاوت اصلی
همانطور که گفته شد، هسته یک واحد پردازش فیزیکی واحد در یک CPU است، در حالی که رشتهها دنبالههای دستورالعمل مجازی هستند. این تفاوت اصلی بین هستهها و رشتهها است.
مهمترین چیزی که باید در بحث مقایسه core و thread در CPU به خاطر بسپارید این است که این دو ایده در رقابت با هم نیستند. عملکرد هر سیستم کامپیوتری (خواه یک گوشی هوشمند باشد یا یک سرور) با تعداد هستهها و استراتژی رشتهای که برای چندوظیفگی استفاده میشود تعیین میشود.
به عنوان مثال، یک دستگاه CPU چهار هستهای از قابلیت چند رشتهای بهره می برد زیرا میتواند از هر چهار هسته برای پردازش رشتهها استفاده کند. Hyper-threading میتواند با افزایش تعداد رشتههای فعال، عملکرد را بیشتر افزایش دهد.
در نتیجه، کاربر از ترکیبی بهینه از پردازش رشته و هسته سود میبرد. به همین دلیل است که باید به دقت CPU را بررسی کنید که ترکیب دلخواه شما از معماری رشته و تعداد هستهها را ارائه دهد.
البته باید توجه کرد که عشق و حال هزینه دارد!
یک CPU چند هستهای با استراتژی چند رشتهای انرژی بیشتری مصرف میکند و به زیرساختهای پشتیبانی بیشتری در بردهای سیستم، پاور و پشتیبانی خنک کننده نیاز خواهد داشت.
نتیجه
با درک این موارد، میتوانید عملکرد دستگاه خود را بهینه و از پتانسیل کامل آن استفاده کنید که شما را قادر میسازد تا به طور موثر تصمیمات آگاهانهای در مورد تخصیص منابع خود برای بهره وری بهینه بگیرید. مثلا درک تمایز بین هستهها و رشتهها ممکن است هنگام بررسی نحوه افزایش یا بهینهسازی قابلیت پردازش سرورتان مفید باشد.