پردازندههای چندهستهای از چندین - تعمیرات سولاردام تکنوکیت صادقیه - سال پیش در انواع کامپیوترهای شخصی دیده میشوند و بهرهبرداری از آنها، موجب افزایش سرعت و کارایی سیستمها شده است. بهعنوان کاربر دنیای فناوری شاید این سؤالها برایتان مطرح شده باشد: ویندوز یا دیگر سیستمعاملها چگونه از قابلیت پردازندههای چندهستهای استفاده میکنند؟ وقتی کاربرد چند هسته جزو خصوصیات سختافزاری محسوب میشود، هستههای چگونه - تعمیرات سولاردام تکنوکیت صادقیه - اجرای اپلیکیشنها را اولویتدهی و بین خود تقسیم میکنند؟ میتوان اپلیکیشنها و سیستمعامل را بهگونهای پیکربندی کرد که استفادهی بهتر و بیشتری از هستههای بیشتر داشته باشند؟ درادامهی این مطلب زومیت، تا حدودی به این پرسشها پاسخ میدهیم.
زمانیکه کامپیوتر خود را روشن میکنید و پیش از اجرای سیستمعامل، - تعمیرات سولاردام تکنوکیت صادقیه - پردازندهی اصلی و مادربرد باهم ارتباط برقرار میکنند (اصطلاح Handshake). پردازندهی مرکزی اطلاعات مشخصی دربارهی خصوصیات عملیاتی خود به مادربرد و بخش UEFI میفرستد. بخش مذکور از اطلاعات دریافتشده برای راهاندازی اولیهی مادربرد و بوتکردن سیستم استفاده میکند.
در علوم کامپیوتر، رشته (Thread) به کوچکترین واحد اجرایی میگوییند که سیستم برنامهریز سیستمعامل اجرا میکند. - تعمیرات سولاردام تکنوکیت صادقیه - برای درک بهتر، رشته را میتوان با مرحلهای در خط مونتاژ شبیه دانست. یک سطح بالاتر از رشته، فرایند (Process) قرار دارد. فرایندها برنامههای کامپیوتری هستند که در یک یا چند رشته اجرا میشوند. در مثال خطتولید، فرایند را میتوان کل مراحل تولید هر محصول دانست که رشته هریک از وظایف در آن مراحل - تعمیرات سولاردام تکنوکیت صادقیه - تولیدی است.
تا اینجا میدانیم پردازندهها تنها میتوانند در هر لحظه، یک رشته را اجرا کنند. هر فرایند نیز حداقل به یک رشته نیاز دارد. اکنون این سؤال ایجاد میشود: چگونه کارایی و قدرت کامپیوتر را افزایش دهیم؟ پاسخ در افزایش سرعت کلاک پردانده نهفته است. قانون مقیاسدهی دنارد از دههها پیش بهعنوان راهکار - تعمیرات سولاردام تکنوکیت صادقیه - عملی افزایش سرعت و کارایی در پردازندهها شناخته میشد. اگرچه - تعمیرات سولاردام تکنوکیت صادقیه - قانون مور مشخص کرد میتوان ترانزیستورهای - تعمیرات سولاردام تکنوکیت صادقیه - بیشتری با گذشت زمان در فضاهای کوچکتر جانمایی کرد، قانون دنارد بود که باعث دستیابی به سرعت کلاک بیشتر در ولتاژ مصرفی کمتر شد.
اگر کامپیوتری بتواند با سرعت مناسبی وظایف خود را انجام - تعمیرات سولاردام تکنوکیت صادقیه - دهد، ضعف احتمالی آن در مدیریت بیش از یک رشته، آنچنان مشکلزا نخواهد بود. البته همه میدانیم وظایف پردازشی در جهان وجود دارند - تعمیرات سولاردام تکنوکیت صادقیه - که حلکردن آنها در کامپیوتر کلاسیک به زمانی حتی بیش از زمان حیات جهان هستی نیاز دارد. بهجز آن موارد خاص، کامپیوترهای سریع در حلکردن سایر - تعمیرات سولاردام تکنوکیت صادقیه - وظایف مشکل خاصی ندارند؛ - تعمیرات سولاردام تکنوکیت صادقیه - وظایفی که کم هم نیستند.
با سریعترشدن کامپیوترها، - تعمیرات سولاردام تکنوکیت صادقیه - توسعهدهندهها بهمرور نرمافزارهای پیچیدهتری تولید کردند. همین روند نیاز به پردازش در چند رشته را افزایش داد. در سادهترین شیوهی پردازش چندرشتهای (موسوم به Coarse-Grained)، سیستمعامل بهجای منتظرماندن برای نتیجهی یک حساب در یک رشته، از رشتهای دیگر برای انجام وظیفه استفاده میکند. چنین روندی در دههی ۱۹۸۰ مرسوم شد که کلاک CPU و RAM در حال جداسازی از یکدیگر بود. در آن دوران، - تعمیرات سولاردام تکنوکیت صادقیه - سرعت حافظه و پهنای باند آن، هر دو با سرعتی بسیار آهستهتر از سرعت کلاک پردازنده - تعمیرات سولاردام تکنوکیت صادقیه - رشد میکردند. تولد حافظهی کش به این معنا بود که پردازندهها میتونند مجموعههای کوچک دستورالعمل را برای انجام حساب سریع و کوتاه، نزد خود - تعمیرات سولاردام تکنوکیت صادقیه - نگه دارند. همچنین، پردازش چندرشتهای مطمئن میشد پردازندهها همیشه وظیفهای برای انجامدادن داشته باشند.
فراموش نکنید توضیحات مذکور همگی پردازش در پردازندهی تکهستهای را شرح میدهند. امروزه، اصطلاحهای چندرشتهای و چندپردازشی اغلب با معنای مشترکی بهکار میروند. البته چنین معنای مشترکی همیشه استفاده نمیشود و دو مفهوم جدا به نامهای Symmetric Multiprocessing و Symmetric Multithreading داشتیم - تعمیرات سولاردام تکنوکیت صادقیه - که درادامه هرکدام را شرح میدهیم.
SMT: پردازنده میتواند همزمان بیش از یک رشته را اجرا - تعمیرات سولاردام تکنوکیت صادقیه - کند. این فرایند با برنامهریزی رشتهی دوم بهصورتی انجام میشود که رشتهی مذکور بتواند از واحدهای اجرایی خالی استفاده کند که رشتهی اول اشغال نکرده است. اینتل فناوری مذکور را بهنام Hyper-Threading میشناسد و AMD همان نام SMT را استفاده میکند. درحالحاضر، هر دو تیم آبی و قرمز از SMT برای - تعمیرات سولاردام تکنوکیت صادقیه - افزایش کارایی پردازنده استفاده میکنند و روند استراتژیک خاص خود را برای پیادهسازی فناوری داشتند و آن را در محصولات خاصی ارائه میکردند. امروزه، اکثر محصولات از اینتل و AMD به قابلیت SMT مجهز هستند. پیادهسازی SMT در محصولات مصرفکننده، یعنی پردازندههای با تعداد دوبرابر رشته نسبت به هستهها داریم (مثلا پردازندهای با هشت هسته و شانزده رشتهی پردازشی).
SMP: پردازنده بیش از یک هستهی پردازشی دارد یا از مادربردی چندسوکتی استفاده میکند. هر هستهی پردازشی، تنها یک رشته را اجرا میکند؛ درنتیجه تعداد رشتههایی که در هر چرخهی کلاک اجرا میشوند، به تعداد هستههای - تعمیرات سولاردام تکنوکیت صادقیه - شما محدود خواهد بود؛ مثلا - تعمیرات سولاردام تکنوکیت صادقیه - پردازندههای هشتهستهای با هشت رشتهی - تعمیرات سولاردام تکنوکیت صادقیه - پردازشی.
فرایندهای چندرشتهای در مفاهیم تکهستهای به این معنا بود که پردازندهی شما با چه سرعتی میتواند بین رشتهها جابهجا شود نه اینکه پردازندهی شما میتواند بیش از یک رشته را در آن واحد اجرا کند یا خیر.
پردازندههای مدرن حتی آنهایی که بیست سال پیش با معماری x86 ساخته شدند، مفهومی بهنام Out of Order Execution یا OoOE را بهکار میگیرند. تمامی هستههای پردازندهی مدرن و قدرتمند، همچون هستههای big در معماری big.LITTLE پردازندههای - تعمیرات سولاردام تکنوکیت صادقیه - گوشی هوشمند، طراحی OoOE دارند. این پردازندهها دستورالعملهای دریافتی - تعمیرات سولاردام تکنوکیت صادقیه - را - تعمیرات سولاردام تکنوکیت صادقیه - بهصورت آنی در ساختار جدید مرتب میکنند تا اجرای آنها بهینهسازی شود.
پردازندهی مرکزی کدی را اجرا میکند که از سمت سیستمعامل ارسال شده است؛ اما سیستمعامل نقشی در اجرای دستورالعملها ندارد. وظیفهی مذکور بهصورت داخلی در پردازنده مدیریت میشود. پردازندههای مدرن x86 هر دو از بازتنظیم ترتیب دستورالعملهای دریافتی استفاده و دستورالعملهای x86 را به فعالیتهای - تعمیرات سولاردام تکنوکیت صادقیه - کوچکتر سبک RISC تبدیل میکنند. اختراع OoOE باعث شد مهندسان بتوانند بدون وابستگی به توسعهدهندگان برای نوشتن کد عالی و بهینه، بهرهوری مناسب و مشخصی در پردازندهها تضمین کنند. اجازهدادن به پردازندهی مرکزی برای مرتبکردن مجدد دستورالعملها، حتی در مفهوم تکهستهای هم به افزایش بهرهوری - تعمیرات سولاردام تکنوکیت صادقیه - سیستم چندرشتهای هم میانجامد. فراموش نکنید پردازندهی مرکزی همیشه درحال جابهجاشدن - تعمیرات سولاردام تکنوکیت صادقیه - بین - تعمیرات سولاردام تکنوکیت صادقیه - وظایف است؛ حتی اگر شما متوجه آن نشوید.
پردازندهی مرکزی با وجود تمام قابلیتهایی که در سطح مهندسی دریافت میکند، نقشی در برنامهریزی خودش ایفا نمیکند و سیستمعامل این وظیفه را برعهده دارد. ظهور پردازندههای چندرشتهای نیز این مفهوم و ترتیب را تغییر نداد. وقتی اولین برد دوپردازندهای مخصوص مصرفکننده (ABIT BP6) معرفی شد، علاقهمندان به پردازشهای چندرشتهای مجبور شدند از ویندوز NT یا ویندوز ۲۰۰۰ استفاده کنند. خانوادهی Win9X از پردازش چندهستهای پشتیبانی نمیکرد.
پشتیبانی از اجرای فرایندها در چند هستهی پردازنده به قابلیتهایی اساسی در سیستمعامل نیاز دارد. سیستمعامل باید بتواند تمامی وظایف قبلی شامل مدیریت حافظه و تخصیص منابع را انجام دهد که از اختلال در سیستمعامل بهدست اپلیکیشنها جلوگیری میکرد. دراینمیان، وظیفهای جدید هم به آن اضافه میشود تا هستههای پردازنده را از ایجاد اختلال در فرایندهای یکدیگر منع کند.
پردازندههای چندهستهای مدرن لزوما به «واحد برنامهریز مرجع» مجهز نیستند؛ واحدی که بتواند وظیفهها را بین هستهها تقسیم یا بهنوعی جریان کاری توزیع کند. - تعمیرات سولاردام تکنوکیت صادقیه - درنتیجه چنین وظیفهای را سیستمعامل برعهده دارد.
بهطورکلی، پاسخ به این پرسش منفی است. البته برخی اوقات برای بهرهبرداری از قابلیتهای جدید پردازندهای چندهستهای، به بهروزرسانی ویندوز نیاز است؛ اما چنین پیکربندیهایی در داخل مایکروسافت انجام میشود و کاربر نهایی نقشی در بهینهسازیها ایفا نمیکند. درنهایت، استثناهای بسیار محدودی وجود دارد که بررسی آنها خالی از لطف نیست.
پردازنده AMD 2990WX بهنوعی استثنایی برای قانون مذکور محسوب میشود. این پردازنده عملکردی تقریبا ضعیف در ویندوز دارد؛ چون مایکروسافت وجود بیش از یک نود NUMA را در پردازنده تفسیر نمیکند و درنتیجه، از تمامی منابع 2990WX استفاده نمیشود. در برخی موارد، راهکارهایی برای بهبود کارایی این پردازنده در - تعمیرات سولاردام تکنوکیت صادقیه - ویندوز وجود دارد که به پیکربندیهای دستی نیاز دارد. البته همهی کارشناسان این تغییرات دستی در رشتههای پردازشی را تأیید نمیکنند و آنها استفاده از لینوکس را برای پردازندهی مذکور پیشنهاد میدهند.
پردازندهی 3990X استثنای بزرگتری در - تعمیرات سولاردام تکنوکیت صادقیه - قانون تغییر پیکربندی برای بهرهوری بیشتر است. ویندوز ۱۰ گروههای پردازنده را به ۶۴ رشته محدود میکند؛ درنتیجه، نمیتوانید بیش از ۵۰ درصد از منابع اجرایی 3990X - تعمیرات سولاردام تکنوکیت صادقیه - را به جریان کاری واحد اختصاص دهید؛ مگر اینکه اپلیکیشن مدنظر از برنامهریز اختصاصی استفاده - تعمیرات سولاردام تکنوکیت صادقیه - کند. بهدلیل همین محدودیتها، 3990X برای اکثر اپلیکیشنها پیشنهاد نمیشود و تنها در ابزارهای رندر و دیگر اپلیکیشنهای حرفهای کاربرد دارد که از برنامهریز اختصاصی بهره میبرد.
مثالهای یادشده نشان داد تغییر - تعمیرات سولاردام تکنوکیت صادقیه - دستی پیکربندی برای افزایش کارایی سیستمعامل در پردازندههای چندهستهای، به پردازندههایی محدود میشود که از بیشترین تعداد هسته برخوردار است. در حالت دیگر، کاربر امکان تغییر و بهینهسازی چندان زیادی نخواهد داشت؛ البته چنین محدودیتی بهنفع خود کاربر هم تمام میشود. کاربر نهایی نباید نگران اختصاصدادن رشتههای پردازشی با هدف بهحداکثررساندن کارایی در پردازنده باشد؛ چون پیکربندی بهینه براساس وظایفی که پردازنده در لحظه انجام میدهد، بهصورت خودکار پیادهسازی میشود. درنهایت، پیشرفتهای آتی در دنیای کامپیوتر همگی به این سمت پیش میروند که هماهنگی پردازنده و - تعمیرات سولاردام تکنوکیت صادقیه - سیستمعامل به حداکثر برسد و اولویتدهی به وظایف سریعتر انجام شود.