پردازندههای چندهستهای از چندین سال پیش در انواع کامپیوترهای شخصی دیده میشوند و بهرهبرداری از آنها، موجب افزایش سرعت و کارایی سیستمها شده است. بهعنوان کاربر دنیای فناوری شاید این سؤالها برایتان مطرح شده باشد: ویندوز یا دیگر سیستمعاملها چگونه از قابلیت پردازندههای چندهستهای استفاده میکنند؟ وقتی کاربرد چند هسته جزو خصوصیات سختافزاری محسوب میشود، هستههای چگونه اجرای اپلیکیشنها را اولویتدهی و بین خود تقسیم میکنند؟ میتوان اپلیکیشنها و سیستمعامل را بهگونهای پیکربندی کرد که استفادهی بهتر و بیشتری از هستههای بیشتر داشته باشند؟ درادامهی این مطلب زومیت، تا حدودی به این پرسشها پاسخ میدهیم.
زمانیکه کامپیوتر خود را روشن میکنید و پیش از اجرای سیستمعامل، پردازندهی اصلی و مادربرد باهم ارتباط برقرار میکنند (اصطلاح Handshake). پردازندهی مرکزی اطلاعات مشخصی دربارهی خصوصیات عملیاتی خود به مادربرد و بخش UEFI میفرستد. بخش مذکور از اطلاعات دریافتشده برای راهاندازی اولیهی مادربرد و بوتکردن سیستم استفاده میکند.
پیش از اجرای سیستمعامل، پردازنده و مادربرد اطلاعاتی را برای تنظیمات ابتدایی ردوبدل میکنند
در علوم کامپیوتر، رشته (Thread) به کوچکترین واحد اجرایی میگوییند که سیستم برنامهریز سیستمعامل اجرا میکند. برای درک بهتر، رشته را میتوان با مرحلهای در خط مونتاژ شبیه دانست. یک سطح بالاتر از رشته، فرایند (Process) قرار دارد. فرایندها برنامههای کامپیوتری هستند که در یک یا چند رشته اجرا میشوند. در مثال خطتولید، فرایند را میتوان کل مراحل تولید هر محصول دانست که رشته هریک از وظایف در آن مراحل تولیدی است.
تا اینجا میدانیم پردازندهها تنها میتوانند در هر لحظه، یک رشته را اجرا کنند. هر فرایند نیز حداقل به یک رشته نیاز دارد. اکنون این سؤال ایجاد میشود: چگونه کارایی و قدرت کامپیوتر را افزایش دهیم؟ پاسخ در افزایش سرعت کلاک پردانده نهفته است. قانون مقیاسدهی دنارد از دههها پیش بهعنوان راهکار عملی افزایش سرعت و کارایی در پردازندهها شناخته میشد. اگرچه قانون مور مشخص کرد میتوان ترانزیستورهای بیشتری با گذشت زمان در فضاهای کوچکتر جانمایی کرد، قانون دنارد بود که باعث دستیابی به سرعت کلاک بیشتر در ولتاژ مصرفی کمتر شد.

اگر کامپیوتری بتواند با سرعت مناسبی وظایف خود را انجام دهد، ضعف احتمالی آن در مدیریت بیش از یک رشته، آنچنان مشکلزا نخواهد بود. البته همه میدانیم وظایف پردازشی در جهان وجود دارند که حلکردن آنها در کامپیوتر کلاسیک به زمانی حتی بیش از زمان حیات جهان هستی نیاز دارد. بهجز آن موارد خاص، کامپیوترهای سریع در حلکردن سایر وظایف مشکل خاصی ندارند؛ وظایفی که کم هم نیستند.
با سریعترشدن کامپیوترها، توسعهدهندهها بهمرور نرمافزارهای پیچیدهتری تولید کردند. همین روند نیاز به پردازش در چند رشته را افزایش داد. در سادهترین شیوهی پردازش چندرشتهای (موسوم به Coarse-Grained)، سیستمعامل بهجای منتظرماندن برای نتیجهی یک حساب در یک رشته، از رشتهای دیگر برای انجام وظیفه استفاده میکند. چنین روندی در دههی ۱۹۸۰ مرسوم شد که کلاک CPU و RAM در حال جداسازی از یکدیگر بود. در آن دوران، سرعت حافظه و پهنای باند آن، هر دو با سرعتی بسیار آهستهتر از سرعت کلاک پردازنده رشد میکردند. تولد حافظهی کش به این معنا بود که پردازندهها میتونند مجموعههای کوچک دستورالعمل را برای انجام حساب سریع و کوتاه، نزد خود نگه دارند. همچنین، پردازش چندرشتهای مطمئن میشد پردازندهها همیشه وظیفهای برای انجامدادن داشته باشند.
توسعه و انتشار نرمافزارهای پیچیدهتر، نیاز به پردازندههای چندهستهای را بهوجود آورد
فراموش نکنید توضیحات مذکور همگی پردازش در پردازندهی تکهستهای را شرح میدهند. امروزه، اصطلاحهای چندرشتهای و چندپردازشی اغلب با معنای مشترکی بهکار میروند. البته چنین معنای مشترکی همیشه استفاده نمیشود و دو مفهوم جدا به نامهای Symmetric Multiprocessing و Symmetric Multithreading داشتیم که درادامه هرکدام را شرح میدهیم.
SMT: پردازنده میتواند همزمان بیش از یک رشته را اجرا کند. این فرایند با برنامهریزی رشتهی دوم بهصورتی انجام میشود که رشتهی مذکور بتواند از واحدهای اجرایی خالی استفاده کند که رشتهی اول اشغال نکرده است. اینتل فناوری مذکور را بهنام Hyper-Threading میشناسد و AMD همان نام SMT را استفاده میکند. درحالحاضر، هر دو تیم آبی و قرمز از SMT برای افزایش کارایی پردازنده استفاده میکنند و روند استراتژیک خاص خود را برای پیادهسازی فناوری داشتند و آن را در محصولات خاصی ارائه میکردند. امروزه، اکثر محصولات از اینتل و AMD به قابلیت SMT مجهز هستند. پیادهسازی SMT در محصولات مصرفکننده، یعنی پردازندههای با تعداد دوبرابر رشته نسبت به هستهها داریم (مثلا پردازندهای با هشت هسته و شانزده رشتهی پردازشی).
منبع:
https://www.zoomit.ir/2020/5/10/348369/how-does-windows-use-multiple-cpu-cores/
:: بازدید از این مطلب : 86
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0