Projektowanie

Jak zoptymalizować efektywność energetyczną w inteligentnych urządzeniach

Przeprowadzenie dokładnych pomiarów jest pierwszym krokiem do optymalizacji efektywności energetycznej, a przeniesienie jak największej ilości operacji przetwarzania do dedykowanych modułów hardware może w zaskakującym stopniu zmniejszyć zużycie energii.

W niedawnym artykule przyjrzałem się mylącej terminologii związanej z zużyciem energii i sposobami jego obniżania (link: Zużycie energii - wyjaśniamy). Obecny materiał poświęcony jest optymalizacji efektywności energetycznej połączonych inteligentnych urządzeń, a więc procesowi który powinien rozpoczynać się od dokładnych pomiarów.

Dokładny pomiar zużycia energii wymaga czegoś bardziej wydajnego niż zwykły amperomierz, nie będzie on bowiem generować poprawnych liczb przy stale zmieniającym się przepływie prądu.

Analizatory mocy są drogie, ale są też alternatywy

Jeśli masz multimetr z długim czasem całkowania, wciąż może okazać się on wystarczający, pod warunkiem jednak, że czas całkowania będzie dłuższy niż kilka cykli, dla których chcemy zmierzyć pobór prądu. Najlepszym wyborem pozostaje analizator mocy, zaprojektowany specjalnie do wykonywania tego rodzaju pomiarów. Wiodący dostawcy narzędzi laboratoryjnych zazwyczaj mają takie urządzenia w ofercie - o wysokiej rozdzielczości i wysokiej dokładności - ale są one dość kosztowne, w granicach 10.000 USD.

Wielu producentów mikrokontrolerów o niskim poborze mocy udostępnia tańsze rozwiązania, które pozwalają programistom mieć je na biurku w fazie rozwoju. Urządzenia te nie zapewniają takiej samej dokładności, jak narzędzia laboratoryjne, ale prawdopodobny procent błędu będzie mniejszy niż 10%, co wydaje się być wystarczająco dokładnym pomiarem, aby uzyskać rozsądne szacunki zużycia energii i żywotności baterii.

Dedykowane moduły sprzętowe

Optymalizacja energii zużywanej przez procesor jest kluczowym krokiem w kierunku poprawy efektywności energetycznej każdego systemu. Nowoczesne procesory są bardzo elastyczne i dzięki programowaniu można sprawić, że zrobią wszystko, co tylko chcesz, ale nawet najbardziej wydajna architektura procesora nie będzie tak efektywna, jak dedykowany moduł hardware.

Powszechną sytuacją w przypadku systemów wbudowanych jest potrzeba wykonywania rozłożonych w czasie, niewielkich operacji podczas trybu oczekiwania. Jeśli używany jest do tego procesor, istnieją dwie podstawowe możliwości. Po pierwsze, można zezwolić procesorowi na wykonanie pętli między akcjami. Alternatywną opcją jest przejście do trybu niskiego zużycia energii i wybudzanie procesora tylko wtedy, gdy jest to wymagane.

Ponieważ procesor jest zwykle jednym z najbardziej energochłonnych urządzeń układu, pierwsza opcja zużywa dużo energii, wykonując jednocześnie niewiele pożytecznej roboty. Zmniejszenie częstotliwości zegara podczas oczekiwania jest sposobem na poprawę sytuacji, ale zmniejsza to wydajność podczas wykonywania pracy, ponieważ procesory są zwykle najbardziej energooszczędne, gdy działają z pełną prędkością. Zastosowanie drugiej z opisanych opcji spowoduje regularne uruchamianie i zatrzymywanie procesora, co jest zwykle lepszym podejściem, ale nadal mamy do czynienia z pewnym zużyciem energii i czasu za każdym razem, gdy procesor musi zostać ponownie wybudzony ze stanu niskiego poboru mocy. Możliwość wykonywania wszystkich mniej kluczowych operacji kontrolnych na dedykowanym hardware i wybudzania procesora tylko wtedy, gdy jest do wykonania przetwarzanie danych, może znacznie poprawić wydajność energetyczną.

Znajdź właściwą równowagę

Wybór między użyciem dedykowanego, mniej elastycznego, ale energooszczędnego komponentu sprzętowego, a bardziej elastycznym, ale mniej energooszczędnym procesorem, jest ważną równowagą. W nowocześniejszych mikrokontrolerach dodawane jest przyspieszenie sprzętowe w celu zmniejszenia zużycia energii.

Rodzina układów Nordic Semiconductor nRF wykorzystuje DMA do wszystkich transferów danych i posiada sprzętowy system sterowania o nazwie PPI (Programmable peripheral interconnect), służący do wysyłania sygnału sterującego między modułami sprzętowymi. Używając ich na przykład do połączeń radiowych, można przez większość czasu utrzymywać procesor w trybie niskiego poboru mocy (np. podczas korzystania z łącza Bluetooth).

Jeśli porównać takie rozwiązanie do systemu bez akceleracji sprzętowej, gdzie procesor zwykle działa przez cały czas aby sterować radiem, prowadzi ono do zmniejszonego zużycia energii. Oznacza to również, że system o niższych wartościach szczytowego zużycia energii może wciąż mieć wyższe całkowite zużycie energii, ponieważ wykonanie tej samej pracy zajmuje więcej czasu.

Zamiast kompromisów łączących powolne działanie i okresową wysoką prędkość, przyspieszenie sprzętowe pozwala na optymalizację CPU pod kątem wydajności: pozwala się procesorowi się obudzić, wykonać obliczenia tak szybko i wydajnie, jak to tylko możliwe, a następnie powrócić do trybu niskiego zużycia energii.

O autorze

Pål Kastnes dołączył do Nordic w marcu 2015 r. Ma 18 lat doświadczenia na rynku systemów wbudowanych, pracując w kilku jego obszarach: projekty układów scalonych, weryfikacja systemu, testy produkcyjne i specyfikację urządzenia po stronie fabryki. Spędził 6 lat jako menedżer ds. kluczowych klientów na rynku azjatyckim. W ostatnich latach prowadził programy szkoleniowe na całym świecie, a także zapewniał obsługę kluczowych klientów w regionie EMEA. Obecnie skupia się głównie na szkoleniach i feedbacku ze strony użytkowników, koncentrując się na łatwości obsługi elementów zaangażowanych w proces projektowania urządzeń połączonych z innymi. 

Benchmarking pomaga zrozumieć złożoność problemu

Wzrost złożoności jest jednym z powodów, dla których coraz popularniejsze stają się wszelkiego rodzaju testy porównawcze. Na przykład EEMBC jest sojuszem branżowym zajmującym się benchmarkingiem, który od wielu lat stosuje narzędzie testowania wydajności procesora CoreMark. Niedawno EEMBC wprowadziło też testy porównawcze zużycia energii. Profil ULPMark Core jest przeznaczony do aplikacji o niskim poborze mocy, wykorzystujących mieszankę cykli roboczych wraz z trybem niskiego poboru mocy pomiędzy nimi. Narzędzie jest obecnie rozszerzane o profil urządzeń peryferyjnych ULPMark, w którym urządzenia peryferyjne będą włączane do symulacji, aby uzyskać bardziej kompletny obraz systemu. Dostępny jest również test porównawczy IoTMark, włączający do testu łączność bezprzewodową, celem symulacji pracy węzłów końcowych. 

Ponieważ samo odczytanie liczb mA w arkuszu danych nie ograniczy zużycia energii, to testy porównawcze umożliwią właściwe porównanie przy zastosowaniu w urządzeniach o niskim poborze mocy. Chociaż każde testy porównawcze są przydatne, ich wartość będzie tym wyższa, im lepiej benchmark będzie odwzorowywał rzeczywistą aplikację. 

Artykuł opublikowano dzięki uprzejmości firmy © Nordic Semiconductor

Korekta polskiej wersji językowej: Maciek Michna, Maciej.Michna@nordicsemi.no