Table of Contents
وتتطلب النظم المدمجة التي يتم نشرها في تطبيقات الطاقة أو التي تستخدمها الطاقة اعتماداً فعالاً للغاية، وكل ميكرومتر من التيارات التي يرسمها الاتحاد، وكل وسيلة للوصول إلى الذاكرة، وكل عملية منشطة في المحيط، تسهم في ميزانية الطاقة الكلية، ويستلزم تطبيق الرمز Ctest على هذه الأجهزة التي تضبط الطاقة فهماً عميقاً لكيفية ترجمة البرامجيات إلى نشاط في مجال المعدات، ونهج تصميم متعمد يُعطي الأولوية لكفاءة في مجال استخدام الطاقة دون المساس بتقنيات التشغيل الحقيقية.
فهم استهلاك السلطة في الأجهزة المدمجة
ويتكون استهلاك الطاقة في نظام قائم على المراكب الصغرى من عنصرين رئيسيين: القوة الدينامية، التي تُحدّد بالنشاط المتغير وتواتر ساعات العمل، والطاقة الثابتة (السائلة) التي تكون ثابتة نسبيا عندما يتم تشغيل الجهاز، وتهيمن الطاقة الدينامية أثناء التجهيز النشط، بينما تصبح الطاقة الثابتة كبيرة في الدول العاطلة أو المنام، وتسهم عناصر النسيج الفرعية للذاكرة (الر، والخروط).
وبالنسبة لجهاز نموذجي من طراز Cortex-M0+ يعمل في 48 ميغاهيرتز، فإن التيار النشط قد يكون حوالي 5-10 ميغاواط، في حين أن طريقة التصفيق العميق يمكن أن تقل عن 1 ميكروغراماً. ويعني الكتابة برمز كفء تقليل الوقت الذي يقضيه وحدة احتواء السفن في وضع ضيق، والحد من حركة الحافلات، واستغلال أجهزة التلويث ذات قوة منخفضة حيثما أمكن.
تحقيق الاستخدام الأمثل لكفاءة الطاقة
(ب) أن تكون أفضل نظم [محددة] [مدرجة] [مدرجة في فئة أقل] [مدرجة في فئة أقل] من أجهزة التصنيف والاختبار] - [مدرجة في فئة الحرف الأول] -] العلم (مُتاح للحجم) غالباً ما يُنتج أكثر الرموز كفاءة من حيث الطاقة لأن الشفرة الأصغر تستخدم الذاكرة المفاجئة ودرجة أقل من التمرينات، مما يقلل من عبء العمل الدينامي والطاق الثابت.
خيارات إضافية للتجميع للنظر في:
- -fno-math-errno] - يلغي الأخطاء في التحقق من وظائف الرياضيات، والتعليمات الادخارية.
- -Ffunction-ffunction-fdata-sections] - يمكّن الرابط من التخلص من الوظائف والبيانات غير المستخدمة، مما يقلل من البصمة الخفيفة.
- -flto] (وإنصاف الوقت على النحو الأمثل) - يؤدي الإجهاد وإلغاء الشفرة الميتة عبر وحدات الترجمة التحريرية.
- -mno-unarange-access] - يحول دون قيام المجمّع بتوليد وصولات غير منحازة إلى الذاكرة، مما يبطئ أو يضاعف من الوصول إلى الحافلة على العديد من نواة إدارة المخاطر المؤسسية.
وقد خلصت دراسة صناعية من قبل Embedded.com] إلى أن الجمع بين -Os] مع -flto] يمكن أن يقلل استهلاك الطاقة بنسبة تتراوح بين 20 و35 في المائة مقارنة بعدم تحقيق الاستخدام الأمثل، مع الحفاظ على الوقت الأمثل الذي يحدد فيه الأداء.
تقنيات الترميز لكفاءة الطاقة
ويتجاوز كتابة الرمز C مع التوعية بالطاقة استخدام وسائل منخفضة الطاقة، وكل تركيبة لغوية تكلفتها من المعدات، وتفصل الأقسام الفرعية التالية تقنيات محددة تقلل من دورات وحدة استخدام الأراضي المكلورة بالأشعة، ووصلات الذاكرة، والتفاعلات اللاحق.
البيانات من نوع الاختيار والأريثريات
ويمكن استخدام أصغر أنواع البيانات أن يحفظ الذاكرة ويخفض حركة الحافلات ويفضي إلى [(FLT:0)] إلى إحداث تغييرات في هيكل القوة أو إلى القيام بعمليات غير عادية [تجريدة: 3] على مصممة] حيث تُصبح صلاحيات نطاق القيمة رخصاً.
أما عمليات تحديد نقاط الترجيح فهي مكلفة للغاية، أما بالنسبة لأجهزة كورتكس - م4F التي تحتوي على معدات من طراز FPU، فإن العوامات ذات الختان الواحد سريعة، ولكن الاصطدام المزدوج لا يزال محصورا في البرامجيات، أما بالنسبة لنظم M0/M0+، فإن جميع النقاط العائمة ينبغي تجنبها، واستخدام أجهزة طاردة ثابتة أو مضخمة بدلا من ذلك، فإن النهج المشترك هو تمثيل مجموعة من القيم كما هو معروف.
الاستخدام الأمثل للوقود والمنع
وتشكل هذه الأجهزة مصدرا رئيسيا لاستهلاك الطاقة لأن وحدة المنافسة النزيهة ما زالت نشطة، وتضع التعليمات وتقييم الظروف.
- Loop unrolling] — manually or with compilationr hints ()) to reduce the number of iterations and branch instructions.
- Using counting-down cycles — typical generates fewer instructions than counting up, because the zero- check is free on many structures (e.g., ARM sets flags).
- Software pipelining] - reordering cycle iterations to hide memory latency and keep the pipeline full.
- تجنب المكالمات الداخلية - تحديد المهام الصغيرة يدوياً أو مع كلمة رئيسية للقضاء على الرؤوس العامة للاتصال/العودة.
وقد تنفق حلقة جيدة التشغيل ما يصل إلى 70 في المائة من الوقت في المجال النشط على التنفيذ السذاجي، ويترجم مباشرة إلى طاقة أقل.
نماذج دخول الذاكرة
Flash memory reads consume more power than SRAM accesses, and external memory interfaces are even more costly. Organize data to maximize cache hits (if a cache exists) or to minimize wait states. Use const and static const for lookup tables so they reside in setruque
ويمكن أن تكون دخول حقول بيت باهظة التكلفة لأن المجمّع يجب أن يولد تسلسلاً من الكتابة القراء، وعندما تتقاسم أعلام متعددة الطرف، ينظر في استخدام [(FLT:0]uint8 t وعمليات المضغ المباشر؛ وتكون النتيجة في كثير من الأحيان أقل وأسرع من حقل C.
وبدلا من أن يكون لدى وحدة مكافحة المخدرات بيانات من وحدة تكنولوجيا المعلومات (مثلا من UART إلى RAM) من وحدة مكافحة المخدرات، فإن إنشاء قناة لإدارة الشؤون الإدارية لأداء النقل بينما تدخل وحدة مكافحة المخدرات في حالة منخفضة القدرة، ويدعم العديد من المتحكمين في المراكب الصغرى إدارة الشؤون الإنسانية من مرحلة إلى مرحلة التذكر ومن مرحلة الذاكرة إلى مرحلة الذاكرة فقط.
Interrupts vs Polling
ويحتفظ جهاز المراقبة بعلم في حلقة مزدحمة بقوة تشغيلية واستهلاكية، ويتيح هذا النظام، الذي يقوده المفاجئ، الفرصة لاستئناف أو أداء عمل آخر إلى أن يحدث حدث، ويستخدم في المهام الدورية موقّعات المعدات بدلا من تأخير البرامجيات، مثلا، بدلا من حلقة ]، التي تبلغ 000 1 شخص، ويضع جهاز توقيتا لتوليد انقطاع بعد فترة الراحة المرغوبة ويضع النموذج.
نقطة فرعية واحدة: كل سياق يقطع الانقطاعات ينقذ/يقوم بالنفقات العامة، وإذا حدثت حالات انقطاع بمعدلات عالية جدا )مثل كل ١٠ ميكروات(، فإن النفقات العامة قد تستهلك قوة أكبر من نهج اقتراع بسيط، ويقيس مدى توقف نظامك، وتوقف نشاطه، وعموما، بالنسبة للأحداث التي تبطئ أكثر من ١٠٠ كيلوهرتز، فإن الانقطاعات أكثر كفاءة.
تجنب قصر الديناميكية
(ب) استخدام ) الملوك ] و] خالي في البرمجيات الصلبة لا يُدخل فقط توقيتاً غير متوقع وتفتت بل أيضاً يستهلك الطاقة لإدارة السحب، ويُمنح احتياطيات تقليدية ويستخدم المشغلات المجمّعة المجمّعة، إذا كان التخصّص الديناميّع لا يمكن تجنبه،
Leveraging hardware Features
وتشمل معظم المتحكمين حديثاً المعالم المصممة خصيصاً لخفض الطاقة، ومن الضروري كتابة الرمز C الذي يتحكم على نحو سليم في هذه السمات.
عدد المقاييس المنخفضة الحجم والمصادر المفقودة
ويقدم بائعو وحدات التنسيق المتعددة الأطراف عدة أساليب للنوم: العبث والنوم والنوم العميق والهزل، وفي جيم، يتم إدخال هذه النماذج عادة عن طريق تنفيذ تعليم [(الإطار الاستراتيجي: صفر)] ] (النظام الإلكتروني لرصد المناخ، أو ]WFE (النظام الإلكتروني لتحديد التوقيت، يجب على المطور أن يختاره.
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
عندما تستخدم مصادر عديدة للإيقاظ، تأكد أن النظام يمكن أن يستأنف بسرعة ويعود للنوم بعد خدمة الحدث، نمط مشترك هو "حلقة الصدر" مع النوم في الأسفل
while (1) {
uint32_t next_event_time = schedule_next_event();
enter_sleep_until(next_event_time);
process_event();
}
تزلج القفل وفولتاج
ويسمح العديد من وحدات التنسيق المتعددة الأطراف بإعاقات ساعات الدوام الفردي، وفي جيم، يتم ذلك عن طريق الكتابة لتمكين السجلات (مثلاً، RCC- ⁇ AHBENR على STM32)، وبعد أن تبدّد فترة زمنية محددة، تعطل ساعات العمل إلى حين الحاجة، وتدعم بعض الأجهزة المتقدمة النمو الفولط الدينامي والارتفاع بالتواتر، مما يقلل من الحد الأدنى من القوة العاملة للاختبار من 48 ميغاهيرتز إلى 24 ميغاهيرتز.
على سبيل المثال، على جهاز "إنكس بي" لـ "إكس بي" لـ "إس بي" لـ "إس.بي.بي.إس.ب" يمكنك تغيير الساعة الأساسية مع:
CLOCK_SetFreq(kCLOCK_Core, 24000000U);
ثم العودة إلى 96 ميغاهيرتز لتفجيرات مكثفه حسابياً هذه الاستراتيجية "الترقب للنوم" فعالة جداً عندما تقترن بدول مناديل عميقة
استخدام الرصيف عند الشحن
ويمكن لبعض المناطق المحيطة أن تعمل بشكل مستقل من وحدة مكافحة التلوث، ويمكن أن يؤدي جهاز قياسي للناظر إلى انقطاع عند عبور عتبة، وإزالة التلوث المستمر، ويمكن أن يولد جهاز توقيت للأجهزة إشارة للتشويهات المتعددة الكلور دون تدخل من وحدة منع الحمل، كما أن نظاماً للحدث (كما هو موجود في ميكروتشيب AVR، أو مختبرات السيليكون، أو أجهزة التوليد) يمكن أن يقيد المنافذ مباشرة.
دراسة حالة: مُعمَّم على قوة مُستَغَلَّم
المثال الكلاسيكي المُلتوي هو نقطة انطلاق جيدة لتوضيح أثر التعظيم، والنظر في نظام يُنفذ من بطاريتين من طراز AA، مع هدف العمر لمدة سنة واحدة، ويُنظّف الجهاز على الـ 100 متر كل ثانيتين.
Naive implementation (polling delay):
while (1) {
toggle_led();
delay_loop(1000000); // busy-wait ~100 ms
toggle_led();
delay_loop(19000000); // busy-wait ~1900 ms
}
وهنا، تعمل وحدة مكافحة التلوث النفطي على 100 في المائة من الوقت، وتهدر الطاقة في انتظارها، ومتوسط الطاقة في السحب الحالي: 5 ميغاواط - 1080 ميغاه/سنة (الاستهلال 3-0 خامسا).
تنفيذ قوة النوم: ]
void SysTick_Handler(void) {
static uint32_t ticks = 0;
ticks++;
if (ticks == 2000) {
toggle_led();
ticks = 0;
}
}
int main() {
init_systick(1); // 1 ms tick
while (1) {
__WFI(); // sleep until SysTick interrupt
}
}
والآن، ينهض الاتحاد في معظم فترة السنتين الثانية، ويستيقظ فقط لقطعة سيستيك التي تبلغ متراً واحداً، ويُنظّف الـ دي.
Further optimization with equipment timer PWM:]
وبدلاً من استخدام وحدة منع الحمل في مكافحة الاضطرابات، تهيأ جهاز توقيت من 16 إلى 6 إلى 10 إلى 10 إلى 10 ميكروغرام في الوقت المحدد لكل 2 ساعة. ثم تعطل جميع الساعات الأخرى وتدخل في نوم عميق، ويمر جهاز التوقيت في مجال دائم، وبتصميم دقيق، يمكن أن يهبط متوسط السعر إلى 10 ميكروغرامات، بما في ذلك استهلاك LED، مما يعطي حياة البطارية لمدة تزيد على خمس سنوات.
ويدل هذا التقدم على أن أكبر المكاسب تأتي من إعادة التفكير في التصميم للتقليل إلى أدنى حد من المشاركة النشطة لوحدة منع الحمل، وليس من حلقات التشغيل الدقيقة.
القياس العملي والتحقق
ويعدّ كتابة الرمز C بكفاءة استخدام الطاقة عملية متكررة تتطلب قياسات حقيقية، واستخدام مظاريف مع مسبار حالي أو جهاز مختص لتوليد الطاقة (مثلاً، مجموعة ملامح الطاقة في الشمال الأوروبي أو مفترق الجولات) لاستخلاص الموجة الحالية.
- الذروة النشطة: ضمان أن تكون أقصر ما يمكن.
- نائم: التحقق من أنها تتطابق مع قيمة صحيفة البيانات بالنسبة للطريقة المختارة.
- " إستيقظوا: التحولات السريعة التي قد تسبب ارتفاعاً مفرطاً في الوقت الراهن.
(أ) EETimes article ] emphasizes that measurement-driven development often reveals surprising energy sinks, such as expected fat withdrawals or floating GPIOs, which can be fixed with simple C code changes (like setting unused sticks to analog mode or configuring them as outputs).
خاتمة
فتقنية C من أجل الأجهزة المحتوية على الطاقة هي نظام متعدد الوجوه يخلط بين كفاءة البرمجيات وبين الوعي بالمعدات، ومن خلال فهم الفيزياء ذات القدرة الدينامية والثابتة، وتعبئة المجمّعين على الوجه الأمثل، وتطبيق أنماط الترميز المفرغة المدركة للطاقة، واستغلال القدرات المنخفضة القدرة على استخدام المتحكمين حديثاً في الميكروبات الدقيقة، يمكن للمطورين أن يحققوا تخفيضات كبيرة في استهلاك الطاقة.
For further reading, consult ARM Software Development Guide] for low-power coding guidelines and ]Microchip Power Manager tools for tool-specific support.