پردازنده های چند هسته ای: آیا بیشتر همیشه بهتر است؟

فهرست مطالب:

پردازنده های چند هسته ای: آیا بیشتر همیشه بهتر است؟
پردازنده های چند هسته ای: آیا بیشتر همیشه بهتر است؟
Anonim

افزودن چندین هسته به یک پردازنده به لطف ماهیت چندوظیفه ای سیستم عامل های مدرن مزایای قابل توجهی دارد. با این حال، برای برخی اهداف، محدودیت عملی بالایی برای تعداد هسته‌ها نسبت به هزینه افزودن آنها وجود دارد.

پیشرفت فناوری چند هسته ای

Image
Image

پردازنده‌های چند هسته‌ای از اوایل دهه ۲۰۰۰ در رایانه‌های شخصی در دسترس بودند. طراحی‌های چند هسته‌ای به مشکل برخورد پردازنده‌ها به سقف محدودیت‌های فیزیکی خود از نظر سرعت ساعت و اینکه چگونه می‌توان به طور موثر خنک شوند و همچنان دقت را حفظ کردند، پرداخت.با حرکت به سمت هسته‌های اضافی روی یک تراشه پردازنده، سازندگان با ضرب کردن مؤثر مقدار داده‌هایی که می‌توانست توسط CPU مدیریت کند، از مشکلات مربوط به سرعت ساعت جلوگیری کردند.

هنگامی که آنها در ابتدا عرضه شدند، سازندگان تنها دو هسته را در یک CPU ارائه می کردند، اما اکنون گزینه هایی برای چهار، شش و حتی 10 یا بیشتر وجود دارد. علاوه بر افزودن هسته‌ها، فناوری‌های چند رشته‌ای همزمان - مانند Hyper-Threading اینتل - می‌توانند هسته‌های مجازی را که سیستم عامل می‌بیند دو برابر کند.

فرایندها و موضوعات

یک فرآیند یک کار خاص است، مانند یک برنامه که روی رایانه اجرا می شود. یک فرآیند از یک یا چند رشته تشکیل شده است.

یک رشته به سادگی یک جریان واحد از داده از یک برنامه است که از پردازنده روی رایانه عبور می کند. هر نرم افزار بسته به نحوه اجرا، یک یا چند رشته خود را تولید می کند. بدون چندوظیفه، یک پردازنده تک هسته ای تنها می تواند یک رشته را در یک زمان مدیریت کند، بنابراین سیستم به سرعت بین رشته ها سوئیچ می کند تا داده ها را به طور ظاهرا همزمان پردازش کند.

مزیت داشتن چندین هسته این است که سیستم می تواند بیش از یک رشته را به طور همزمان مدیریت کند. هر هسته می تواند جریان جداگانه ای از داده ها را مدیریت کند. این معماری عملکرد سیستمی را که برنامه های همزمان اجرا می کند بسیار افزایش می دهد. از آنجایی که سرورها تمایل دارند بسیاری از برنامه های کاربردی همزمان را در یک زمان معین اجرا کنند، این فناوری در ابتدا برای مشتریان سازمانی توسعه داده شد - اما با پیچیده تر شدن رایانه های شخصی و افزایش چندوظیفه ای، آنها نیز از داشتن هسته های اضافی بهره مند شدند.

هر فرآیند، با این حال، توسط یک رشته اصلی اداره می شود که تنها می تواند یک هسته واحد را اشغال کند. بنابراین، سرعت نسبی یک برنامه مانند یک بازی یا یک رندر ویدئو به شدت به توانایی هسته ای که نخ اصلی مصرف می کند محدود می شود. رشته اصلی می‌تواند رشته‌های ثانویه را به هسته‌های دیگر تفویض کند - اما وقتی هسته‌ها را دو برابر کنید، سرعت یک بازی دو برابر نمی‌شود. بنابراین، برای یک بازی غیرعادی نیست که به طور کامل یک هسته (رشته اصلی) را حداکثر کند، اما فقط استفاده جزئی از دیگر هسته‌ها را برای رشته‌های ثانویه ببیند.هیچ مقدار هسته دوبرابر این واقعیت را ندارد که هسته اولیه یک محدود کننده نرخ برای برنامه شما است و برنامه هایی که به این معماری حساس هستند بهتر از برنامه هایی که اینگونه نیستند عمل می کنند.

وابستگی نرم افزار

در حالی که مفهوم پردازنده های چند هسته ای جذاب به نظر می رسد، یک هشدار بزرگ در مورد این فناوری وجود دارد. برای اینکه از مزایای واقعی چندین پردازنده بهره مند شوید، نرم افزاری که روی رایانه اجرا می شود باید طوری نوشته شود که از چند رشته ای پشتیبانی کند. بدون نرم‌افزاری که از چنین ویژگی پشتیبانی می‌کند، رشته‌ها عمدتاً از طریق یک هسته اجرا می‌شوند و در نتیجه کارایی کلی رایانه را کاهش می‌دهند. به هر حال، اگر فقط بر روی یک هسته در یک پردازنده چهار هسته ای اجرا شود، ممکن است اجرای آن روی یک پردازنده دو هسته ای با سرعت کلاک پایه بالاتر در واقع سریعتر باشد.

همه سیستم عامل های اصلی فعلی از قابلیت چند رشته ای پشتیبانی می کنند. اما multithreading نیز باید در نرم افزار کاربردی نوشته شود.پشتیبانی از multithreading در نرم‌افزار مصرف‌کننده در طول سال‌ها بهبود یافته است، اما برای بسیاری از برنامه‌های ساده، به دلیل پیچیدگی ساخت نرم‌افزار، پشتیبانی از multithreading هنوز اجرا نمی‌شود. برای مثال، یک برنامه پست الکترونیکی یا مرورگر وب احتمالاً به اندازه یک برنامه ویرایشگر گرافیکی یا ویدیویی که در آن رایانه محاسبات پیچیده را پردازش می کند، مزایای زیادی برای چند رشته ای نخواهد دید.

یک مثال خوب برای توضیح این گرایش، نگاه کردن به یک بازی کامپیوتری معمولی است. اکثر بازی‌ها برای نمایش آنچه در بازی اتفاق می‌افتد به نوعی موتور رندر نیاز دارند. علاوه بر این، نوعی هوش مصنوعی رویدادها و شخصیت های بازی را کنترل می کند. با تک هسته ای، هر دو کار با جابجایی بین آنها انجام می شود. این رویکرد کارآمد نیست. اگر سیستم دارای چندین پردازنده باشد، رندرینگ و هوش مصنوعی هر کدام می‌توانند روی یک هسته جداگانه اجرا شوند - یک موقعیت ایده‌آل برای یک پردازنده چند هسته‌ای.

آیا 8 > 4 > 2 است؟

فراتر رفتن از دو هسته مزایای متفاوتی را به همراه دارد، با توجه به اینکه پاسخ هر خریدار رایانه به نرم افزاری که معمولاً استفاده می کند بستگی دارد.به عنوان مثال، بسیاری از بازی های کلاسیک هنوز تفاوت عملکرد کمی بین دو و چهار هسته را ارائه می دهند. حتی بازی‌های مدرن - که برخی از آنها ظاهراً به هشت هسته نیاز دارند یا از آنها پشتیبانی می‌کنند - ممکن است بهتر از یک ماشین شش هسته‌ای با سرعت کلاک پایه بالاتر عمل نکنند، با توجه به اینکه اثربخشی نخ اصلی بر کارایی عملکرد چند رشته‌ای حاکم است.

از سوی دیگر، یک برنامه رمزگذاری ویدیویی که ویدیو را رمزگذاری می کند، احتمالاً مزایای زیادی خواهد داشت زیرا رندر فریم فردی می تواند به هسته های مختلف منتقل شود و سپس توسط نرم افزار در یک جریان واحد جمع آوری شود. بنابراین داشتن هشت هسته حتی از داشتن چهار هسته سودمندتر خواهد بود. در اصل، موضوع اولیه به منابع نسبتاً غنی نیاز ندارد. در عوض، می‌تواند کار سخت را به رشته‌های دختری که هسته‌های پردازنده را به حداکثر می‌رسانند، انجام دهد.

سرعت ساعت

Image
Image

به طور کلی، سرعت کلاک بالاتر به معنای پردازنده سریعتر است.وقتی سرعت‌های مربوط به چندین هسته را در نظر می‌گیریم، سرعت ساعت مبهم‌تر می‌شود، زیرا پردازنده‌ها به لطف هسته‌های اضافی، رشته‌های داده متعددی را خرد می‌کنند، اما هر یک از این هسته‌ها به دلیل محدودیت‌های حرارتی با سرعت‌های پایین‌تری کار می‌کنند.

برای مثال، یک پردازنده دو هسته ای ممکن است از سرعت کلاک پایه 3.5 گیگاهرتز برای هر پردازنده پشتیبانی کند، در حالی که یک پردازنده چهار هسته ای ممکن است فقط در 3.0 گیگاهرتز کار کند. تنها با نگاه کردن به یک هسته در هر یک از آنها، پردازنده دو هسته ای 14 درصد سریعتر از چهار هسته ای است. بنابراین، اگر برنامه ای دارید که فقط تک رشته ای است، پردازنده دو هسته ای در واقع کارآمدتر است. سپس، اگر نرم افزار شما بتواند از هر چهار پردازنده استفاده کند، پردازنده چهار هسته ای در واقع حدود 70 درصد سریعتر از آن پردازنده دو هسته ای خواهد بود.

نتیجه گیری

در بیشتر موارد، اگر نرم افزار و موارد استفاده معمولی شما از آن پشتیبانی کنند، معمولاً داشتن یک پردازنده با تعداد هسته بالاتر بهتر است. در بیشتر موارد، یک پردازنده دو هسته‌ای یا چهار هسته‌ای برای یک کاربر ساده رایانه، قدرت کافی را خواهد داشت.اکثر مصرف کنندگان هیچ مزیت ملموسی از فراتر رفتن از چهار هسته پردازنده نخواهند دید زیرا نرم افزارهای غیر تخصصی کمی از آن بهره می برند. بهترین حالت استفاده برای پردازنده‌های با تعداد هسته‌های بالا مربوط به ماشین‌هایی است که کارهای پیچیده‌ای مانند ویرایش ویدیوی رومیزی، برخی از اشکال بازی‌های سطح بالا، یا برنامه‌های علمی و ریاضی پیچیده را انجام می‌دهند.

نظرات ما را در مورد اینکه چقدر سریع کامپیوتر نیاز دارم را بررسی کنید؟ برای دریافت ایده بهتر از نوع پردازنده ای که به بهترین وجه با نیازهای محاسباتی شما مطابقت دارد.

توصیه شده: