السعة هي إجمالي مقدار بعض الموارد (وحدة المعالجة المركزية ووحدة معالجة الرسومات وما إلى ذلك) التي يمتلكها الجهاز على مدار فترة زمنية معيّنة. توضّح هذه الصفحة كيفية تحديد ومعالجة مشاكل التوقف المفاجئ في الأداء المرتبطة بسعة التخزين.
استجابة المحافظ بطيئة
لتجنُّب حدوث تقطُّع في الأداء، يجب أن يكون نظام التحكّم في معدّل تكرار وحدة المعالجة المركزية قادرًا على الاستجابة بسرعة للأحمال المفاجئة. تتبع معظم تطبيقات واجهة المستخدم النمط الأساسي نفسه:
- يقرأ المستخدم الشاشة.
- لمس المستخدم للشاشة: النقر على زر أو الانتقال للأعلى أو للأسفل أو غير ذلك
- يتم الانتقال للأعلى أو للأسفل على الشاشة أو تغيير النشاط أو إضافة تأثيرات متحركة بطريقة ما استجابةً للمدخلات.
- يتوقف النظام عن العمل أثناء عرض محتوى جديد.
- يعود المستخدم إلى قراءة الشاشة.
تُنفِّذ أجهزة Pixel وNexus ميزة "تحسين اللمس" لتعديل معدّل تكرار وحدة المعالجة المركزية وسلوك أداة التحكّم (وجدول التشغيل) عند اللمس. لتجنُّب زيادة بطيئة في معدّل التحديث (ما قد يؤدي إلى إسقاط اللقطات على الجهاز عند لمسه)، يحدِّد تحسين اللمس عادةً حدًّا أدنى لمعدّل التحديث في وحدة المعالجة المركزية (CPU) لضمان توفُّر سعة كبيرة لوحدة المعالجة المركزية عند لمس الشاشة. تبقى المساحة ظاهرة لبعض الوقت بعد لمسها (عادةً ثانيتين تقريبًا).
يستخدم هاتف Pixel أيضًا مجموعة التحكم في المهام schedtune التي يوفّرها "الترتيب حسب استهلاك الطاقة" (EAS) كإشارة إضافية لتحسين اللمس: تحصل أهم التطبيقات على مزيد من الأهمية من خلال schedtune لضمان حصولها على سعة وحدة المعالجة المركزية الكافية لتشغيلها بسرعة. يُظهر هاتفا Nexus 5X و6P فجوة أكبر بكثير في الأداء بين مجموعات وحدات المعالجة المركزية (CPU) الصغيرة والكبيرة (A53 وA57 على التوالي) مقارنةً بهاتف Pixel المزوّد بوحدة المعالجة المركزية Kryo. لقد تبيّن لنا أنّ مجموعة المعالجة المركزية الصغيرة لم تكن دائمًا كافية لعرض واجهة مستخدم سلس، خاصةً في ظل مصادر أخرى للتشويش على الجهاز.
وبناءً على ذلك، في هاتفَي Nexus 5X و6P، تعمل ميزة "تحسين اللمس" على تعديل سلوك جدولة المهام لزيادة احتمالية نقل التطبيقات التي تعمل في المقدّمة إلى المعالجات المتقدّمة (يشبه ذلك من الناحية المفاهيمية الحد الأدنى لعدد مرات تكرار عمل وحدة المعالجة المركزية). بدون تغيير جدولة المهام لزيادة احتمال نقل التطبيقات التي تعمل في المقدّمة إلى مجموعة معالجة مركزية كبيرة، قد لا تتوفّر للتطبيقات التي تعمل في المقدّمة سعة معالجة مركزية كافية لمعالجة الرسومات إلى أن يقرّر جدولة المهام موازنة تحميل الخيط إلى نواة معالجة مركزية كبيرة. من خلال تغيير سلوك المخطِّط أثناء ميزة "تحسين اللمس"، من المرجّح أن يتم تشغيل سلسلتَي رسائل برمجية لواجهة المستخدم على الفور على نواة رئيسية كبيرة وتجنُّب حدوث تقطُّع في الأداء مع عدم إجبارها على التشغيل دائمًا على نواة رئيسية كبيرة، ما قد يكون له تأثيرات خطيرة على استهلاك الطاقة.
تقييد الأداء بسبب الحرارة
يحدث التقييد الحراري عندما يحتاج الجهاز إلى تقليل ناتج ملفه الشخصي المتعلّق بالحرارة بشكل عام، ويتم ذلك عادةً من خلال تقليل سرعات ساعة وحدة المعالجة المركزية ووحدة معالجة الرسومات وذاكرة الوصول العشوائي الديناميكية. ليس من المستغرب أن يؤدي ذلك غالبًا إلى حدوث تقطُّع في الأداء، لأنّ النظام قد لا يعود قادرًا على توفير طاقة كافية لعرض المحتوى خلال فترة زمنية معيّنة. إنّ الطريقة الوحيدة لتجنُّب التباطؤ بسبب الحرارة هي استخدام طاقة أقل. لا تتوفّر طرق كثيرة لإجراء ذلك، ولكن استنادًا إلى تجاربنا السابقة مع تقارير SOC، لدينا بعض الاقتراحات لمورّدي الأنظمة.
أولاً، عند إنشاء شريحة معالجة منظومة أساسية جديدة تتضمّن تصاميم مختلفة لوحدات المعالجة المركزية، تأكَّد من أنّ منحنيات الأداء/الواط لكتل وحدات المعالجة المركزية تتداخل. يجب أن يكون منحنى الأداء/W العام للمعالج بأكمله خطًا مستمرًا. إنّ الانقطاعات في منحنى الأداء/واط تجبر أداة الجدولة ونظام التحكّم في التردد على تخمين ما يحتاجه عبء العمل. ولتجنّب حدوث تقطُّع، تميل أداة الجدولة ونظام التحكّم في التردد إلى منح عبء العمل سعة أكبر مما يحتاجه. ويؤدي ذلك إلى استهلاك الكثير من الطاقة، ما يساهم في فرض قيود حرارية.
تخيل وحدة معالجة مركزية افتراضية تتضمّن مجموعتَين من وحدات المعالجة المركزية:
- يمكن أن تستهلك المجموعة 1، وهي المجموعة الصغيرة، ما بين 100 و300 ملي واط، وتحقّق علامات قياس تتراوح بين 100 و300 في مقياس أداء معدل نقل البيانات استنادًا إلى الساعات.
- يمكن أن تستهلك المجموعة 2، وهي المجموعة الكبيرة، ما بين 1000 و1600 ملي واط، وتحقّق تقييمًا بين 800 و1200 في مقياس الأداء نفسه للمعدلات، وذلك استنادًا إلى الساعات.
في هذا المقياس، تعني النتيجة الأعلى سرعة أكبر. على الرغم من أنّه ليس أكثر رواجًا من البطء، فإنّ السرعة تعني استهلاك طاقة أكبر.
إذا اعتقد المخطِّط أنّ حجم عمل واجهة المستخدم يتطلّب ما يعادل علامة 310 في مقياس الأداء هذا لمعدّل الإنتاجية، فإنّ أفضل خيار لتجنّب الانقطاع هو تشغيل المجموعة الكبيرة بأقل معدّل تكرار، ما يؤدي إلى إهدار قدر كبير من الطاقة. (يعتمد ذلك على سلوك cpuidle وrace to idle، ومن الأسهل تحسين وحدات المعالجة المركزية المتكاملة التي تتضمّن منحنيات أداء/واط مستمرة.)
ثانيًا، استخدِم cpusets. تأكَّد من تفعيل مجموعات المعالجة المركزية في نواة نظام التشغيل وفي
BoardConfig.mk
. يجب أيضًا إعداد cpuset
المهام الفعلية في init.rc
الخاص بالجهاز. يترك بعض المورّدين
هذه الميزة غير مفعّلة في حِزم البرامج الأساسية للأجهزة على أمل أن يتمكّنوا من استخدام إشارات أخرى للتأثير في
سلوك جدولة المهام، ولكننا نرى أنّ هذا الإجراء غير منطقي. تكون مجموعات المعالجة المركزية مفيدة لمحاولة
ضمان موازنة الحمل بين وحدات المعالجة المركزية بطريقة تعكس ما يقوم به
المستخدم فعليًا على الجهاز.
يحدِّد ActivityManager التطبيقات إلى مجموعات وحدات المعالجة المركزية المختلفة استنادًا إلى الأهمية النسبية لتلك التطبيقات (الأكثر أهمية، في المقدّمة، في الخلفية)، مع منح التطبيقات الأكثر أهمية إمكانية الوصول إلى المزيد من نوى وحدة المعالجة المركزية. يساعد ذلك في ضمان جودة الخدمة للتطبيقات التي تعمل في المقدّمة والتطبيقات الأكثر استخدامًا.
تكون مجموعات cpusets مفيدة في عمليات ضبط وحدة المعالجة المركزية المتجانسة، ولكن يجب عدم شحن جهاز يتضمّن إعدادات وحدة معالجة مركزية غير متجانسة بدون تفعيل مجموعات cpusets. يُعدّ جهاز Nexus 6P نموذجًا جيدًا لكيفية استخدام cpusets في إعدادات وحدة المعالجة المركزية غير المتجانسة، ويمكنك استخدامه كأساس لإعداد جهازك.
توفّر مجموعات المعالجة المركزية أيضًا مزايا في استهلاك الطاقة من خلال ضمان عدم توازن الحمولة على نوى وحدة المعالجة المركزية الكبيرة في مؤشرات التسلسل في الخلفية التي لا تُعدّ ضرورية للأداء، حيث يمكن أن تستهلك طاقة أكبر بكثير بدون أي فائدة يلاحظها المستخدم. ويمكن أن يساعد ذلك أيضًا في تجنُّب الحدّ من الأداء بسبب الحرارة. على الرغم من أنّ الحدّ من الأداء بسبب الحرارة هو مشكلة متعلقة بالسعة، فإنّ تحسينات الارتعاش لها تأثير كبير على أداء واجهة المستخدِم عند الحدّ من الأداء بسبب الحرارة. ولأنّ النظام سيعمل بشكل أقرب إلى قدرته على عرض 60 لقطة في الثانية، سيحدث تقطُّع في اللقطات عند حدوث تقطُّع أقل.