توان مصرفی واقعی پردازنده چیست و چه تفاوتی با توان طراحی حرارتی یا TDP دارد
توان مصرفی که همواره یکی از دغدغههای اصلی سازندگان تراشه بوده، بهتازگی در بازار کامپیوترهای شخصی مدنظر کاربران نیز قرار گرفته است. بهعنوان مثال، کاربران توان مصرفی پردازندههای هشتهستهای اینتل را بین ۱۵۰ تا ۱۸۰ وات گزارش میکنند؛ درحالیکه اینتل شاخص TDP این پردازندهها را ۹۵ وات اعلام کرده است. در این مقاله، قصد داریم دلیل این تفاوت در میزان توان مصرفی گزارششده را توضیح دهیم.
شاخص توان طراحی حرارتی (Thermal Design Power)
فرکانس پایهی هر پردازنده به توان مصرفی و قدرت خنککنندهی آن بستگی دارد؛ یعنی سازندگان تراشهها، با درنظرگرفتن قدرت سیستم خنککنندهی طراحیشده برای آن تراشه، بهازای توان مصرفی معلوم عملکرد پردازنده در حداقل فرکانس پایه را برای پردازندههای خود تضمین میکنند.
شاخص توان طراحی حرارتی (TDP) به همین قدرت خنککاری سیستم خنککننده بستگی دارد. با استناد به این وابستگی، اکثر کاربران معمولا بهاشتباه میزان TDP پردازنده را با حداکثر توان مصرفی آن برابر میدانند؛ زیرا میزان گرمایی که باید از پردازنده خارج شود، برابر با مقدار توانی است که پردازنده برای انجام پردازش مصرف کرده است. این درحالی است که در این تعریف، مشخصهی TDP درواقع حداقل گرمایی است که سیستم خنککننده باید خارج کند تا پردازنده بتواند همواره به عملکرد خود در فرکانس پایه ادامه دهد. البته مقداری از گرما ازطریق اتصالات فلزی پردازنده به مادربرد از آن خارج میشود؛ ازاینرو، قدرت خنککنندهی استفادهشده عملا کمتر از میزان TDP پردازنده خواهد بود. بااینحال در بیشتر مواقع، توان مصرفی در حالت پردازش در فرکانس پایه و TDP با یکدیگر برابر درنظر گرفته میشوند.
کاربران معمولا بهاشتباه میزان TDP پردازنده را با حداکثر توان مصرفی آن برابر میدانند
برای توضیح بیشتر مفهوم عبارت مذکور باید گفت اگر براساس تصور این اشتباه، حداکثر توان مصرفی پردازندهها به میزان شاخص TDP آنها محدود میشد، مشاهدهی عملکردی مانند نمودار زیر از پردازندههای پرقدرت چندهستهای دورازانتظار نبود. همانطورکه از تصویر پیداست، پردازندهای که بدون محدودیت میتواند تا ۱۸۰ وات توان برای پردازش در زمان کوتاهتری مصرف کند، با محدودکردن حداکثر توان مصرفی خود به میزان TDP باعث کاهش درخورتوجه قدرت پردازش خود میشود.
در سالهای گذشته، تولیدکنندگان برای تمامی پردازندههای خود عملکرد در یک فرکانس پایه را بهازای مصرف توانی مشخص تضمین میکنند که همان TDP است. بهعنوان مثال، دربارهی پردازنده Intel Core i7-8700 65W، اینتل فقط زمانیکه پردازنده در فرکانس پایه ۳.۲ گیگاهرتز کار کند، توان مصرفی ۶۵ وات یا کمتر را تضمین میکند و هیچ تضمینی دربارهی عملکرد این پردازنده در فرکانسهای بالاتر از ۳.۲ گیگاهرتزو توان مصرفی بیشتر از ۶۵ وات ندارد.
اینتل در پردازندههای خود علاوهبر فرکانس پایه، فرکانس پردازش در حالت Turbo Boost را نیز معرفی میکند. برای نمونه، هر هستهی پردازنده Core i7-8700 علاوهبر پردازش در فرکانس پایهی ۳.۲ گیگاهرتز، در حالت توربوی تکهستهای قدرت پردازش در فرکانس ۴.۷گیگاهرتزی و در حالتی که تمامی هستهها درحالت توربو فعال باشند، قدرت پردازش در فرکانس ۴.۳ گیگاهرتز نیز دارند. دربارهی دلیل اینکه چرا فرکانس در حالت فعالیت تمام هستهها پایینتر از حالت فعالیت فقط یک هسته است، کمی پایینتر توضیح خواهیم داد. این پردازنده مشخصا برای پردازش در فرکانس توربو، درمقایسهبا فرکانس پایه، احتیاج به مصرف انرژی بسیار بیشتری از TDP محاسبهشده برای آن دارد؛ بنابراین، گرمای بسیار بیشتری نیز تولید میکند. ازاینرو، سیستم خنککننده و منبع تغذیه (پاور) ۶۵واتی بهکاررفته در این پردازنده برای خنککاری و تأمین انرژی پردازنده دیگر در حالت توربو مناسب نخواهند بود و برای امکان پردازش مداوم در حالت توربو به خنککننده و نیز پاور قویتر نیاز است.
سازندگان پردازنده این واقعیت را با کابران خود در میان نمیگذارند که برای عملکرد مطلوب پردازنده در حالت توربو احتیاج به پاور و خنککننده قویتر است
سازندگان پردازنده این واقعیت را با کابران خود در میان نمیگذارند که برای عملکرد مطلوب پردازنده در حالت توربو احتیاج به پاور و خنککنندهی قویتر است. درنتیجه، وقتی خنککنندهی استفادهشده برای کار در حالت توربو مناسب نباشد، پردازنده پس از مدت کوتاهی پردازش در حالت توربو به حداکثر دمای مجاز خود میرسد و بهناچار فرکانس پردازش خود را پایین میآورد تا دمایش در محدودهی مجاز قرار گیرد. بنابراین، پردازنده نمیتواند حداکثر قدرت خود را بهخصوص در پردازشهای سنگین بهکار گیرد.
حالا ممکن است این سؤال پیش بیاید که پس بااینحساب، TDP مفهوم بیخاصیتی است؟ اگر مفهوم خاصی ندارد؛ پس چرا اخیرا به دغدغهی تولیدکنندگان تراشه تبدیل شده است؟ در دههی گذشته، با اینکه مفهوم TDP تفاوت زیادی نکرده؛ اما طریقهی استفادهی پردازندهها از انرژی تغییر کرده است. در گذشته، پردازندههای چهارهستهای TDP با توان ۹۵ وات، حتی در حالت توربو بهدلیل تعداد کم هستهها و فرکانس پردازش بهنسبت پایینتر، حداکثر توان مصرفی ۵۰ وات داشتند. باوجوداین، امروزه با افزایش تعداد هستههای پردازندهها بدون افزایش TDP هستههای آنها، بسیاری از پردازندههای شش و هشتهستهای با فرکانسهای توربو بیشتر از ۴ گیگاهرتز، در پردازشهای سنگین توان مصرفی بالاتر از TDP خود دارند.
شاخصهای مؤثر در تعیین میزان توان مصرفی پردازنده
سازندگان تراشه برای هر پردازنده بسته به تواناییهای و محیط کاری استاندارد آن، سطوح مختلف را برای توان مصرفی با قابلیت تنظیم در سفتافزار (FirmWare) سیستم درنظر میگیرند. قابلیت تنظیم سطح توان مصرفی، به سازندگان کامپیوترها این امکان را میدهد که در تولیدات خود توان مصرفی پردازنده را بنا به شرایط تغییر دهند. بنابراین، تعیین میزان دقیق توان مصرفی پردازندهها در سیستمهای مختلف بسیار مشکل خواهد بود.
برای توضیح سادهتر این مفهوم، سه مشخصهی PL1 (سطح توان 1) و PL2 (سطح توان 2) و Tau (ضریب زمانی) را دربارهی توان مصرفی پردازندهها درنظر بگیرید. PL1 میزان توان مصرفی پردازنده در حالت پایدار و برای زمانهای طولانی است. بنابراین، میتوان گفت PL1 معمولا برابر با TDP پردازنده است. پس، اگر TDP پردازنده ۸۰ وات است، PL1 آن نیز ۸۰ وات خواهد بود.
PL2 حداکثر (دقت کنید، حداکثر) توان مصرفی پردازنده و برای مدتزمان کوتاه است و طبیعتا بالاتر از PL1 است. پردازندهها براساس طراحیشان و تعداد هستههای بهکار گرفتهشده در آنها لزوما ممکن است نتوانند با مصرف توان PL1 برای مدت طولانی در حالت توربو قرار بگیرند. پس وقتی وظیفهی سنگینی به پردازنده محول میشود، توان مصرفی آن میتواند تا PL2 بیشتر شود و بتواند در حالت توربو قرار گیرد. بنابراین باتوجهبه تعاریف مذکور، میتوان گفت توان مصرفی کل تراشه در حالت توربو نه لزوما، ولی ممکن است حداکثر تا مقدار PL2 بیشتر شود.
Tau متغیر زمان است و حداکثر مدت زمانی را تعیین میکند که پردازنده میتواند در حالت توان PL2 قرار گیرد؛ قبل از آنکه مجبور باشد به حالت PL1 بازگردد. دقت کنید مقدار Tau به میزان توان مصرفی یا دمای پردازنده وابسته نیست؛ چون بنابر تعریف، وقتی دمای پردازنده به حداکثر میزان مجاز خود رسید، برای کاهش دما ولتاژ ورودی خود و درنتیجه، فرکانس پردازشی را بهشدت کاهش میدهد و در آن حالت، بهدلیل پردازش در فرکانسهایی بسیار پایینتر از فرکانس پایه یا توربو مقادیر PL1 و PL2 دیگر معنایی ندارند.
اجازه دهید برای شناخت بهتر این مفاهیم، پردازندهای را درنظر بگیریم که درحالانجام حجم زیادی پردازش است و قدمبهقدم تمامی حالاتی را بررسی کنیم که این پردازنده در آنها قرار میگیرد.
اگر پردازنده درحالپردازش فقط یک زیربرنامه (حالت تکریسمانی یا single-thread) باشد، احتیاج به یک هسته دارد که در حالت توربوی خود کار میکند؛ اما بهدلیل اینکه فقط یکی از هستهها فعال است، توان مصرفی کل پردازنده به PL2 نخواهد رسید. حال وقتی سایر هستههای پردازنده برای پردازش چند زیربرنامه موازی (حالت چندریسمانی یا multi-thread) در حالت توربو فعال میشوند، توان مصرفی آن ممکن است به PL2 نزدیک شود و فرکانس پردازش بهگونهای تنظیم میشود که توان مصرفی کل تراشه از این مقدار بیشتر نشود. درواقع، بههمیندلیل فرکانس پردازنده در حالتی که تمامی هستهها فعال هستند، پایینتر از زمانی است که فقط یک هسته فعالیت میکند. وقتی این حجم کاری زیاد برای مدتی برابر با Tau ادامه پیدا کند، بنابر تعریف، سفتافزار باید سریعا میزان توان مصرفی را به PL1 کاهش دهد. اگر بهدلیل سنگینی حجم کار میزان توان مصرفی نتواند در محدودهی PL1 باقی بماند، ولتاژ ورودی و فرکانس پردازشی بهگونهای تنظیم خواهند شد که توان مصرفی کل تراشه بهاندازهی PL1 باقی بماند. درنتیجه، دمای تراشه را کاهش و طول عمرش را افزایش میدهد.
توان مصرفی پردازنده در همین سطح PL1 باقی خواهد ماند تا زمانیکه پردازنده وظیفهی خود را بهپایان برساند و یکی از هستهها برای مدتی معلوم (معمولا زیر پنج ثانیه) در حالت غیرفعال یا idle قرار گیرد. پس از گذشت این زمان، سیستم میتواند درصورت اعمال حجم کاری جدید باردیگر سطح توان PL2 را بهکار گیرد.
بهعنوان مثال، در پردازنده Core i7-8700K اینتل، مقدار PL1 برابر با ۹۵ وات و PL2 برابر با ۱۱۸.۷۵ وات و Tau هشت ثانیه تعیین شدهاند. بنابراین در این حالت، پردازنده باید بتواند تا هشت ثانیه در سطح انرژی حدود ۱۱۹ وات فعال باشد و بعد از آن به سطح ۹۵ وات بازمیگردد. جالب اینجاست که اینتل این مقادیر را برای چندین نسل از پردازندههای خود ثابت نگه داشته؛ چراکه توان مصرفی این پردازندهها حتی در حالتی که با تمام قوا درحالفعالیت هستند، حتی پایینتر از سطح PL1 یا همان ۹۵ وات است. بااینحال، ازآنجاکه این مقادیر را سفتافزار تنظیم میکنند، تولیدکنندگان مادربرد میتوانند با استفاده از خنککنندههای قویتر بهعنوان مثال PL2 را بدون محدودیت سفتافزاری (درعمل برابر با حداکثر توان قابلمصرف تراشه برای ماندن در محدودهی دمایی مجاز) و PL1 را به ۱۶۵ وات یا همان ۹۵ وات تغییر دهند. اگر دلیل این مسئله برایتان مشخص نیست، کمی پایینتر آن را توضیح خواهیم داد.
درواقع در محصولاتی با محدودیت دمایی مانند لپتاپها و کامپیوترهای شخصی کوچک، مقادیر PL1 و PL2 و Tau باید کاملا محافظهکارانه انتخاب شوند. حتی در تعدادی از محصولات ردهبالا نیز مقدار PL2 را برابر با TLP قرار میدهند تا مطمئن شوند اگر پردازنده در حالت توربو قرار گرفت، میزان توان مصرفی آن بیشتر از TLP نشود.
پس از ظهور پردازندههای ششهستهای، در بررسی پردازندهها تا وقتی دمای پردازنده در محدودهی مجاز قرار دارد، معمولا مقادیر PL1 و PL2 نامحدود درنظر گرفته میشوند. دلیلی اصلی این مسئله چیست؟
تمامی سیستمهای مدرن در خود قابلیت تنظیم سطوح انرژی (سطح انرژی برای بلندمدت و کوتاهمدت) و زمان مجاز برای هر سطح انرژی را دارند. در اکثر مواقع و در تنظیمات پیشفرض، بهدلیل اینکه سیستم بهصورت خودکار سطوح مناسب را تعیین میکند، کاربر این مقادیر را نمیبیند. بدینترتیب، تولیدکنندگان مقادیر مدنظر را در حافظه ذخیره و از آنها استفاده میکنند؛ ولی کاربر فقط کلمه Auto، بهمعنی تنظیم خودکار را میبیند. با استفاده از این استراتژی، تولیدکننده میتواند مثلا مقدار PL2 را برابر با ۴۰۹۶ وات و مقدار Tau را برابر با ۶۵۵۳۵ ثانیه یا 1- قرار دهد که در تنظیمات بایوس بهمعنای بینهایت است. این تنظیمات تا وقتی دما از حد مجاز فراتر نرود، به پردازنده امکان فعالیت همیشگی در حالت توربو را میدهد.
از دیدگاه شما چرا تولیدکنندگان از این روش بهره میبرند؟ دلایل متعددی برای این کار ذکر کردهاند: ۱. کاربر میتواند همیشه از حالت توربوی پردازنده بهره ببرد که در گرفتن امتیازات فراوان در بنچمارکهای مختلف و دریافت دیدگاههای مثبت منتقدان یا در حالت سادهتر مقایسهی تواناییهایی پردازندههای مختلف ازلحاظ آماری مؤثر خواهد بود؛ ۲. به تولیدکنندگان مادربرد این اجازه را میدهد که در محصولاتشان یا از سطوح انرژی پیشفرض تعیینشده برای این پردازنده استفاده کنند یا اینکه سطوح انرژی مختص به خود را برای مهندسی بهتر محصول نهایی تعریف کنند. درواقع، وقتی مادربرد با طراحی رده بالا، قابلیت استفادهی دائمی از تمام هستههای پردازنده در حالت توربو را دارد، با این روش تولیدکننده امکان اجرای آن را خواهد داشت؛ ۳. اگر کاربر از سیستمهای خنککنندهی پیشرفتهتر استفاده کند، میتواند پردازنده را در حالت توربوی تمامهستهای و بهتبع آن، سطوحی بالاتر از ۱۶۰ وات بهکار گیرد و این تجربهی کاربری بهتری برای کاربر رقم میزند.
پس به کدام روش باید اعتماد کرد؟ تفاوت این روشها در چیست؟
سازندگان تراشهی استاندارد مشخصی برای پردازندههای خود تعیین میکنند. مقادیر PL1،PL2 ،Tau، مدار مادربرد و تنظیمات سفتافزار همگی از مقادیر پیشنهادی سازنده استفاده میکنند. تعدادی از این مقادیر برای کاربر معلوم و مابقی آنها نامعلوم هستند؛ ولی درهرصورت این مقادیر صرفا پیشنهاد هستند و نهایتا میتوانند آن را تولیدکنندگان مادربرد دستخوش تغییر کنند. بههمیندلیل، بسیاری از کاربران تمایل دارند قدرت پردازنده در حالات «تنظیمات پیشنهادی سازندهی پردازنده» و «تنظیمات پیشفرض محصول نهایی» و «حالتی که پردازنده در سطوح حداکثری خود فعال است» را بدانند و این، کار آزمایشکنندگان این پردازندهها را دشوار خواهد کرد. همانطور که معلوم است، پردازنده در حالت تنظیمات پیشفرض سازندهی پردازنده، قدرت بهمراتب کمتری درمقایسهبا حالت تنطیمات پیشفرض محصول نهایی خواهد داشت. حالتی که پردازنده در سطوح انرژی حداکثری خود مشغول فعالیت است نیز بهوضوح بیشترین قدرت پردازنده را نمایش میدهد. بنابراین، تقریبا تمامی بررسیهای انجامشده روی پردازندههای موجود در بازار با استفاده از تنظیمات محصول نهایی بوده و در آنها از تنظیمات پیشنهادی تولیدکنندهی پردازنده استفاده نشده است.
کاربران تمایل دارند قدرت پردازنده در حالات «تنظیمات پیشنهادی سازنده» و «تنظیمات پیشفرض محصول نهایی» و «فعال در سطوح حداکثری» آن را بدانند
اخیرا برخی تولیدکنندگان مادربرد برای افزایش قابلیت اطمینان محصولات تجاری یا محصولات استفادهشده در سرورها، استراتژی خود را تغییر داده و مقدار Tau را بهجای مقدار بسیار زیاد به سی ثانیه محدود میکنند. این تغییر موجب میشود که وقتی این مادربردها در بنچمارکها آزمایش میشوند، امتیازات کمتری درمقایسهبا گذشته بهدست آورند؛ ولی این نتایج به واقعیت تعیینشدهی سازندهی پردازنده شبیهتر هستند. بااینحال، همچنان برای محصولات با قابلیت اطمینان کمتر مانند محصولات خانگی، تولیدکنندگان از تنظیمات سازندگان تراشه استفاده نمیکنند و مقادیر بسیار بیشتر را برای گرفتن امتیازات زیاد در بنچمارکها استفاده میکنند.
باتوجهبه این اتفاق، پیشنهاد استفاده از دو مقدار TLP متفاوت بهجای یک مقدار ثابت برای محصولات در آینده غیرمنطقی بهنظر نمیرسد؛ مثلا (TDP (Peak یا TDP برای سطح انرژی PL2 و (TDP(sustained یا TDP برای سطح انرژی PL1. دراینصورت، کاربر میتواند میزان حداکثر توان مصرفی را از توان مصرفی در حالت پردازش با فرکانس پایه تشخیص دهد.