پردازندههای چندهستهای از چندین سال پیش در انواع کامپیوترهای شخصی دیده - نمایندگی رسمی ساید بای ساید کرال مینی سیتی - میشوند و بهرهبرداری از آنها، موجب افزایش سرعت و کارایی سیستمها شده است. - نمایندگی رسمی ساید بای ساید کرال مینی سیتی - بهعنوان کاربر دنیای فناوری - نمایندگی رسمی ساید بای ساید کرال مینی سیتی - شاید این سؤالها برایتان مطرح شده باشد: ویندوز یا دیگر - نمایندگی رسمی ساید بای ساید کرال مینی سیتی - سیستمعاملها چگونه از قابلیت پردازندههای چندهستهای استفاده میکنند؟ وقتی کاربرد چند هسته - نمایندگی رسمی ساید بای ساید کرال مینی سیتی - جزو خصوصیات سختافزاری محسوب میشود، هستههای چگونه اجرای اپلیکیشنها را اولویتدهی و بین خود تقسیم میکنند؟ میتوان اپلیکیشنها و - نمایندگی رسمی ساید بای ساید کرال مینی سیتی - سیستمعامل را بهگونهای پیکربندی کرد که استفادهی بهتر و بیشتری از - نمایندگی رسمی ساید بای ساید کرال مینی سیتی - هستههای بیشتر داشته باشند؟ درادامهی این مطلب زومیت، تا حدودی به این پرسشها پاسخ میدهیم.
زمانیکه کامپیوتر - نمایندگی رسمی ساید بای ساید کرال مینی سیتی - خود را روشن میکنید و پیش از اجرای سیستمعامل، پردازندهی اصلی و مادربرد باهم ارتباط برقرار - نمایندگی رسمی ساید بای ساید کرال مینی سیتی - میکنند (اصطلاح 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 برای اکثر اپلیکیشنها پیشنهاد نمیشود و تنها در ابزارهای رندر و دیگر - نمایندگی رسمی ساید بای ساید کرال مینی سیتی - اپلیکیشنهای حرفهای کاربرد دارد که از برنامهریز اختصاصی بهره میبرد.
مثالهای یادشده نشان داد تغییر - نمایندگی رسمی ساید بای ساید کرال مینی سیتی - دستی پیکربندی برای افزایش کارایی سیستمعامل در پردازندههای چندهستهای، به پردازندههایی محدود میشود که از بیشترین تعداد هسته برخوردار است. در حالت دیگر، کاربر امکان تغییر و بهینهسازی چندان زیادی نخواهد داشت؛ البته چنین محدودیتی بهنفع خود کاربر هم تمام میشود. کاربر نهایی نباید نگران اختصاصدادن رشتههای پردازشی با هدف بهحداکثررساندن کارایی در پردازنده باشد؛ چون پیکربندی بهینه براساس وظایفی که پردازنده در لحظه انجام میدهد، بهصورت خودکار پیادهسازی میشود. درنهایت، پیشرفتهای آتی در دنیای کامپیوتر همگی به این سمت پیش میروند که هماهنگی پردازنده و سیستمعامل به حداکثر برسد و اولویتدهی به وظایف سریعتر انجام شود.