هنگام خرید کامپیوتر اعم از لپتاپ یا کامپیوتر رومیزی، عموما پردازنده اصلیترین قطعهای است که به آن توجه کرده و محوریت انتخاب قرار میگیرد. حال ممکن است این سوال پیش آید که هنگام انتخاب پردازنده مورد نظر به کدام ویژگی آن باید توجه کرد؟ تعداد هسته بیشتر یا کلاک بالاتر ؟
هسته بیشتر یا کلاک بالاتر دغدغهای است که خریداران هنگام خرید کامپیوتر با آن مواجه هستند. حال خریدار باید چه کند؟ کدام یک از این دو هنگام انتخاب میتوانند وزنه را به نفع خود سنگین کنند؟ در ادامه توضیحاتی ارائه میدهیم و امیدوارم پس از پایان نوشتار، توانسته باشیم انتخاب بین هسته بیشتر یا کلاک بالاتر را اندکی آسانتر کرده باشم.
یک پردازنده 12 هستهای با فرکانس 2.66 گیگاهرتز بخریم بهتر است یا یک پردازنده 6 هسته با فرکانس 3.46 گیگاهرتز؟ به این نکته توجه داشته باشید که سرعت هر هسته و تعداد هستهها لزوما در تقابل با یکدیگر نیستند و نباید آنها را به چشم دو فاکتور رقیب دید. شما هیچ فرد متخصص در امور سخت افزار را نمیبینید که بگوید تعداد هسته را بیخیال شده و تنها به فرکانس هسته توجه کنید. چرا که تعداد هستهها نیز مهم است و دلیلی وجود داشته که معماریهای چند هستهای به بازار راه یافتند.
برنامهها مجموعهای از محاسبات هستند و برای انجام آنها، کامپیوتر باید محاسباتشان را پیوسته انجام دهد و به اتمام برساند. هرچه پردازنده سریعتر این محاسبات را انجام دهد، یک پردازه زودتر تمام میشود و برنامه سریعتر و روانتر اجرا میشود. سرعت پردازندهها، یا همان فرکانس و یا به بیانی دیگر کلاک آن را با واحد هرتز بیان میکنیم و امروزه پردازندهها با سرعتهای گیگاهرتزی کار میکنند. هرچه فرکانس یک پردازنده بالاتر باشد، پس سرعتش بیشتر است و سیستم سریعتر عمل میکند.
یک نکته دیگر این است که سرعت یک پردازنده و البته طول بیت آن مشخص میکند پردازنده در هر مقطع زمانی (یک ثانیه) چه مقدار پردازش میتواند انجام دهد. برای مثال، یک پردازنده 4 گیگاهرتزی 64 بیتی (مشابه پردازندههای امروزی) میتواند در هر ثانیه 4 میلیارد واحد 64 بیتی از اطلاعات را پردازش کند. پس هرچه سرعت بالاتر باشد، در یک ثانیه حجم بیشتری از اطلاعات پردازش و محاسبات بیشتری انجام میشوند.
پردازندهها از زمان شروع متواضعانشان تا به امروز تکامل چشمگیری یافتند. CPUهای تک هسته با فرکانس چند کیلوهرتز امروزه جای خود را به پردازندههای چند هسته با فرکانس چند گیگاهرتز دادهاند. پردازندهها در طول زمان پیشرفت کردند تا اینکه AMD با معرفی پردازندههای خانواده اثلون (Athlon) در سال 1999 و اینتل نیز با معرفی پردازندههای پنتیوم 4 در سال 2000 وارد عصر کلاک گیگاهرتزی شدند؛ هر دو پردازنده دارای سرعت 1.3 گیگاهرتز بودند.
تا سال 2005 پردازندهها تک هستهای بودند تا این که بار دیگر AMD بازار را لرزاند و اولین پردازنده دو هستهای خود به نام Athlon 64 X2 را راهی بازار کرد. یک سال بعد نیز اینتل اولین پردازنده دو هستهای خود موسوم به Intel Core 2 را برای رقابت با AMD به بازار فرستاد. در سال 2007 نیز هر دو شرکت اولین پردازندههای 4 هستهای خود را عرضه کردند که از حق نگذریم پردازنده 4 هستهای AMD که فنوم نام داشت، واقعا پیشرفتهتر از رقیب اینتلی خود موسوم به Core 2 Quad بود.
از زمان عرضه پردازنده های دو هسته بود که خریداران هنگام انتخاب پردازنده، باید فاکتور جدیدی را نیز مد نظر قرار میدادند و آن فاکتور چیزی نبود جز تعداد هستههای یک پردازنده. پیش از آن سرعت یک پردازنده مشخص میکرد کدام یک نسبت به دیگری برتری دارد. پردازندههای چند هستهای از زمانی وارد بازار شدند که به دلیل محدودیت فنی، دیگر افزایش کلاک یک هسته سختتر شده بود. پس سازندگان تصمیم گرفتند تا به جای اینکه توان خود را صرف افزایش 0.1 گیگاهرتزی یک پردازنده کنند، تصمیم گرفتند یک واحد پردازشی مشابه نیز روی چیپ قرار دهند.
یک پردازنده تک هسته تنها یک واحد پردازشی دارد، اما یک پردازنده چند هستهای بیش از 1 واحد پردازشی دارد. یک پردازنده دو هستهای با فرکانس 3 گیگاهرتز در واقع دو واحد پردازشی دارد که هر یک با فرکانس 3 گیگاهرتز فعالیت میکنند. یک پردازنده 6 هستهای 3 گیگاهرتزی نیز 6 واحد پردازشگر با سرعت هر یک 3 گیگاهرتز دارد. پس بدین ترتیب میتوان گفت فرکانس کلی پردازنده 6 هستهای ما 18 گیگاهرتز است و هنگام اجرای برنامه 6 برابر سریعتر از یک پردازنده تک هستهای با فرکانس 3 گیگاهرتز عمل میکند؟ باید گفت دقیقا اینطور نیست.
توجه داشته باشید که هستهها تنها ابزار هستند و ساختار یک برنامه نیز در این زمینه بسیار موثر است. اگر برنامه در حال اجرا قابلیت اجرای چند رشتهای داشته باشد، یعنی پردازش کلی برنامه به چند رشته تقسیم و هر هسته پردازش یکی از آنها را برعهده بگیرد، آنگاه برنامه از چند هسته بودن پردازنده استفاده میکند، در غیر این صورت حتی اگر یک پردازنده با هزار هسته داشته باشیم اما برنامه قابلیت چند رشته شدن را نداشته باشد، آنگاه فقط یکی از هستهها درگیر فرایند محاسبات میشود که در این حالت سرعت هسته بالاتر مفیدتر است. البته امروز به ندرت برنامهای یافت میشود که قابلیت چند رشته شدن نداشته باشد و روز به روز بر شمار برنامههای چند رشتهای افزوده میشود، با این حال باید در نظر گرفت که اکثر این برنامههای چند رشته هنگام اجرا چند هسته را به خدمت میگیرند تا بتوان با توجه به آن پردازنده با تعداد هستههای مناسب را خریداری کرد.
همانطور که مشخص شد حسن یک برنامه چندرشتهای این است که کار پردازش بین چند پردازشگر تقسیم شده و در زمان کوتاهتری انجام میشود. ضمن اینکه اگر یکی از رشتهها در چرخه گیر کند، دیگر مانند سابق که برنامهها تک رشته بودند، روند برنامه متوقف نمیشود. زیرا فقط یکی از رشتهها وارد حلقه شده و رشتههای دیگر در حال پردازش هستند. بد نیست بدانید پردازندههای اینتل از یک فناوری به نام Hyper-threading استفاده میکنند که هر هسته را به یک هسته مجازی و منطقی تبدیل میکند تا بار کاری تقسیم شود. این فناوری به ویژه زمانی که برنامهها برای اجرا در حالت چند رشتهای بهینه شده باشند، بسیار مفید است. البته پردازندههای AMD نیز دارای فناوری انحصاری همچون Clustered MultiThreading (CMT) هستند که مشابه Hyper-threading در پردازندههای اینتل است.
ناگفته نماند فناوریهای دیگری نیز هستند که میتوانند وزنه را به سود تعداد هستههای بیشتر سنگین کنند. از جمله این فناوریها میتوان به دو فناوری انحصاری AMD Turbo Core و Intel Turbo Boost اشاره کرد که به لطف آن هنگامی که یک پردازنده چند هستهای مشغول به کار است، اما به عنوان مثال تنها دو هسته از هشت هسته فعالند، پردازنده به صورت خودکار فرکانس دو هسته فعال را افزایش میدهد. یعنی اگر یک پردازنده دارای هستههایی با فرکانس 4 گیگاهرتز است، در حالت توربو فرکانسشان به 5 گیگاهرتز افزایش پیدا میکند، اما به شرطی که همه هستههای پردازنده در حال فعالیت در حداکثر فرکانس استاندارد خود نباشند.
حال اگر بخواهیم یک خلاصه ساده از موارد گفته شده در بالا داشته باشیم و به یک نتیجه گیری برسیم، میتوان جمع بندی زیر را عنوان کرد.
هسته بیشتر، سرعت هسته کمتر:
مزایا
- برنامههایی که از چند رشتگی پشتیبانی میکنند از چنین پردازندههایی به شدت سود میبرند.
- افزایش شمار هستهها یک راهکار مقرون به صرفه برای بالا بردن بهرهوری است.
- پشتیبانی برنامهها از چند رشتگی در طول زمان ارتقا و بهبود خواهد یافت.
- میتوانید در آن واحد شمار بیشتری برنامه را اجرا کنید، بدون آنکه شاهد افت کارایی باشید. برای مثال هنگامی که مشغول وب گردی هستید، آنتی ویروس نیز در پس زمینه مشغول به کار است و از سرعت پردازنده کاسته نمیشود.
- در شرایط کم کاری هستهها،امکان افزایش کلاک هستههای فعال وجود دارد.
معایب
- هنگام اجرای یک برنامه تک رشته، به دلیل پایینتر بودن سرعت هسته (فرکانس هسته) عملکرد ضعیفتری نسبت به پردازندهای با هسته کمتر و فرکانس بالاتر دارد.
هسته کمتر، سرعت هسته بیشتر:
مزایا
- سرعت هسته بالاتر سبب میشود در اجرای برنامههای تک رشته که فاقد قابلیت تقسیم کار هستند، عملکرد این پردازندهها بهتر باشد.
- از نظر اقتصادی هزینه کمتری دارند.
معایب
- تعداد هستههای کمتری برای تقسیم بین برنامهها در دست است.
- عملکرد چندرشتهای قدرتمندی ندارند.
با این حال بهترین کار برای انتخاب پردازنده این است که نگاهی به کاربری و برنامههای مورد استفاده خود انداخته تا دید آیا از قابلیت چند رشتهای پشتیبانی میکنند یا خیر و سپس با توجه به آن دست به خرید زد تا از پرداخت هزینه اضافی جلوگیری کند. االبته امروزه پردازندهها حداقل 4 هسته دارند و انتخاب بین تعداد هسته بیشتر به نوع کاربری بستگی دارد.