هدف از مقیاس گذاری پردازنده در تلفنهای هوشمند چیست؟
یکی از اصلیترین و البته واضحترین حقایق در خصوص پردازشهای موبایلی این است که تلفنهای هوشمند انرژی لازم را از باتری دریافت میکنند و متصل بهبرق نیستند. این بدان معناست که تمام بخشهای موبایل باید نهایت سعی خود را در مصرف بهینه انرژی بکنند و در مقابل بهترین کارایی لازم را نیز ارایه دهند. بهرهوری و کارایی در مجاورت یکدیگر قرار دارند و در حقیقیت کارایی بالا، نیاز بهانرژی بیشتر دارد. انرژی بیشتر بهمعنای مصرف بیشتری باتری و در مقابل گرمای بیشتر است. اما در کامپیوترها شرایط متفاوت است و مشکلات زیادی در این زمینه وجود ندارد. کامپیوترها متصل بهبرق هستند و البته برای مقابله با گرما از فنهای بزرگ استفاده میکنند که شاهد هیچ کدام از این ویژگیها در زمینه تلفنهای هوشمند نیستیم.
باید توجه داشت که رابطه مستقیمی بین میزان انرژی و فرکانس پردازنده وجود دارد. در حقیقت با فعالیت سریعتر ترانزیستورها و هر هسته، میزان انرژی بیشتری نیز مورد استفاده قرار میگیرد. اغلب پردازندهها میزان فرکانس زیرپردازنده را کنترل میکنند. شاید بتوان بهعنوان مثال موتور خودرو را مثال مناسبی برای این موضوع دانست. در موتور اتومبیل نیز با دور موتور بیشتر، مصرف سوخت نیز افزایش مییابد.
با کاهش فرکانس هر هسته مصرف انرژی نیز کاهش مییابد و این موضوع برای پردازشهای موبایلی و بهخصوص تلفنهای هوشمند حیاتی است. اندروید بهکمک پایه لینوکس از قابلیتی بهره میبرد که با استفاده از آن میتواند فرکانس هستهها را تغییر دهد. با استفاده از این ویژگی دستگاه اندرویدی زمانی که تحت استفاده سنگین نیست سرعت فرکانسها را کاهش میدهد و با نیاز به پردازش سریعتر، سرعت نیز افزایش مییابد.
در حقیقت زمانی که سرعت فرکانسهای هر هسته پایینتر هستند، پردازنده نیاز به ولتاژ کمتری دارد و با در نظر گرفتن این موارد، میتوان پی برد که رابطه مستقیمی بین سرعت فرکانس هر هسته و ولتاژ مورد نیاز وجود دارد. با این حال این دو مقوله میتوانند از یکدیگر تبعیت کنند و زمانی که سرعت فرکانس تغییر کرد، میزان ولتاژ نیز بر اساس آن تغییر یابد. این تغییر بههم پیوسته Dynamic Voltage و Frequency Scaling (ولتاژ پویا و مقایسگذاری فرکانس) نامیده میشود که اختصار آن نیز DVFC است.
DVFC برای کاربر چه ارزشی دارد؟
در حقیقت اصلیترین مزیت DVFC بهطول عمر باتری مربوط میشود. بدین معنی که در زمان مرور صفحات وب یا انجام کارهای ساده در گوشی که نیاز بهپردازش سنگینی وجود ندارد، فرکانس هر هسته کاهش مییابد و در نتیجه انرژی کمتری نیز مصرف میشود. در مقابل زمانی که اپلیکیشنی را که نیاز بهپردازش زیادی دارد اجرا کنید، سرعت فرکانس هر هسته نیز افزایش مییابد و در نتیجه میزان ولتاژ ورودی بهطور متناسب افزایش مییابد. اما یکی از ضعفهای DVFC بهواکنشی بودن آن مربوط میشود. بدین صورت که سرعت فرکانس زیرپردازنده با نیاز بهقدرت بیشتر افزایش مییابد و در حقیقت تاخیری را در این بین شاهد هستیم. بدین صورت که در زمان نیاز دستگاه به پردازش بیشتر، فرکانس زیرپردازنده در شرایط ضعیف قرار دارد و بین زمانی که دستگاه فرکانس زیرپردازنده را افزایش میدهد و زمانی که نیاز بهپردازش سنگینتر اعلام میشود، تاخیری هرچند اندک وجود دارد.
البته این تاخیر بسیار اندک است اما توسعهدهندگان از ابزارهایی استفاده میکنند که این میزان از تاخیر نیز قابل مشاهده میشود (در ادامه به این موضوع خواهیم پرداخت). برای رفع این تاخیر، اندروید چارهای اندیشیده است. بر این اساس زمانی که کاربر نمایشگر را لمس میکند، دستگاه فرکانس زیرپردازنده را افزایش میدهد تا در صورت نیاز بهپردازش بیشتر، میزان تاخیر کاهش یابد و اقدامات کاربر قابل پیشبینیتر باشند.
اگر میخواهید فرآیند DVFC را در دستگاهتان مشاهده کنید میتوانید از طریق اپلیکیشنهایی مثل CPU Z وارد عمل شوید. در سربرگ SoC از این اپلیکیشن میتوانید اطلاعات بسیار زیادی در خصوص پردازنده دستگاهتان بهدست آورید که در این بین میتوان به نام، مدل و تعداد هستههای آن اشاره کرد. البته در این بخش فرکانس زیرپردازنده نیز مشخص است. امکان مشاهده فرکانس آنی هر هسته نیز وجود دارد. اگر مشاهده کردید که فرکانس زیرپردازندهها کاهش یافته یا برخی از هستهها متوقف شدند میتوانید با لمس نمایشگر اقدامات و تغییرات پردازنده را مشاهده کنید.
موضوعی که در این بخش باید به آن پرداخت بخش تنظیم کننده مقیاسها است. این بخش جزئی از هسته لینوکس بهحساب میآید که مقیاسهای DVFS را کنترل میکند. این بخش به Scaling Governor معروف است. Scaling Governor پیشفرض Interactive نام دارد و باعث میشود که با لمس نمایشگر فرکانس زیرپردازنده افزایش یابد. البته اگر دستگاه اندرویدیتان روت شده است، در این صورت میتوانید از طریق اپلیکیشنهایی مثل Kernel Adiutor و Root Booster اقدام بهایجاد تغییراتی در Scaling Governor کنید.
اطلاعات بسیار زیادی در خصوص اعمال تغییراتی در Scaling Governor برای بهبود کارایی دستگاه و طول عمر باتری منتشر شدهاند که اغلب آنها چندان صحیح نیستند. اگر فکر میکنید که اعمال تغییرات در این بخش باعث بهبود کارایی دستگاه میشود در این صورت میتوانید از طریق تنظیمات آن وارد عمل شوید، اما باید به این نکته نیز توجه داشته باشید که دسترسی بهاین موضوع تنها زمانی امکانپذیر است که دستگاهتان روت شده باشد. اما به این نکته نیز توجه داشته باشید که تولید کنندگان تلفنهای هوشمند، ساعتها وقت و هزینه برای محاسبات مختلف در جهت ارایه بهترین کارایی از دستگاهها صرف میکنند و در تلاش هستند تا کارایی دستگاه و طول عمر باتری آن در شرایط بسیار مناسبی باشد. پس اگر با افزایش و اعمال تغییرات در بخش مقیاسگذاری کارایی دستگاه بهتر میشد، کمپانی تولید کننده حتما چنین کاری را انجام میداد.
چنین موضوعی چه کاربردی برای توسعهدهندگان دارد؟
همانطور که گفته شد میزان فعالیت پردازنده موضوعی واکنشپذیر است و این بدان معناست که ممکن است پردازنده برای خروج از حالت فرکانس پایین زیرپردازنده حدود ۲۰ میلیثانیه تاخیر داشته باشد. اگر از سیستم ردیابی اندروید (Systrace) برای بهبود اپلیکیشنهایتان استفاده کنید حتما متوجه خواهید شد که گاهی اوقات فریم اول در بازهی ۱۶ میلیثانیهای لازم برای اتمام رندر با نرخ ۶۰ فرم در هر ثانیه، رندر نمیشود. البته باید توجه داشت که توسعهدهندگان نیز در این خصوص نمیتوانند اقدامات زیادی انجام دهند ولی با پی بردن به این موضوع میتوانند دریابند که افزایش فرکانس زیرپردازنده ممکن است در ابتدا باعث افت فریم شود.
در ادامه ویدیویی ارائه شده که توسط Colt McAnlis ساخته شده است و در آن اطلاعاتی در خصوص مقیاس گذاری فرکانس پردازنده در اندروید ارایه میشود. از طریق این ویدیو میتوانید پی ببرید که DVFS چه آثار زیانباری روی توسعه اپلیکیشن موبایلها دارد.
در طول سالهای گذشته اقداماتی در جهت بهبود طول عمر باتری در حالی که عملکرد دستگاه نیز در حالت مناسب باقی بماند، انجام شده است و یکی از مهمترین آنها نیز (Heterogeneous Multi-Processing (HMP است که شرکت ARM روی big.LITTLE استفاده میکند. در HMP میزان پردازش تمام هستهها برابر نیست (ناهمگون هستند). برای مثال در پردازندههای مدرن و ۶۴ بیتی که Cortex-A۵۷ یا Cortex-A۷۲ استفاده میکنند در زمینه پردازش پیوستگی را بین خود و Cortex-A۵۳ ایجاد میکنند. با این شرایط Cortex-A۷۲ توانایی بالایی در پردازش دارد و Cortex-A۵۳ عملکرد خوبی را در زمینه ذخیره انرژی از خود نشان میدهد.
با این اوصاف شیوه فرآیند بدین شکل خواهد بود که در شرایط عادی دستگاه از Cortex-A۵۳ (بهعنوان مثال) استفاده خواهد کرد و زمانی که پردازش بیشتری لازم شد، Cortex-A۷۲ ادامه کار را بهعهده میگیرد. همانطور که در بالا DVFS را بهدور موتور شباهت دادیم، big.LITTLE شبیه بهتغییر چرخ دنده در خودرو است.
گفتنی است که بخش نرمافزاری big.LITTLE از سیستم DVFS تقویت میشود و از این طریق است که میتوانند هسته LITTLE را بههسته بزرگتر تغییر دهد. البته باید توجه داشت که در این زمینه فرآیندهای بسیار پیچیدهای وجود دارد و ARM در حال کار روی بهبود مصرف باتری دستگاههای اندرویدی است که به هسته لینوکس کمک میکند تا دریابد کدام وظیفه در سیستم تاحدودی بیهوده است و تخصیص هوشمند قدرت (IPA) را در سیستم عملی سازد.
در نهایت میتوان گفت که مقیاسگذاری فرکانس پردازنده اقدام مناسبی است و باعث بهبود مصرف انرژی دستگاه میشود. البته این قابلیت اگر با big.LITTLE و IPA همراه باشد در این صورت فرآیند ذخیره انرژی بهشکل بهتری صورت خواهد گرفت. نظر شما در خصوص مقایسگذاری فرکانس پردازنده چیست؟