Straty mocy w cyfrowych układach VLSI - Scalak · Organizacja pamięci ... – pozwala na...
Transcript of Straty mocy w cyfrowych układach VLSI - Scalak · Organizacja pamięci ... – pozwala na...
2018-10-16
1
Projektowanie energooszczędnych systemów wbudowanych
dr inż. Ireneusz Brzozowski
C-3, p. 512
WIET KATEDRA ELEKTRONIKI
Elektronika i Telekomunikacja, Systemy Wbudowane
www.agh.edu.pl EiT 2018/19
Projektowanie energooszczędnych systemów wbudowanych
Energooszczędny mikrokontroler na przykładzie EFM32GG, Silicon Labs
(http://www.silabs.com)
Wstęp – mikroprocesor, mikrokontroler
Energooszczędne mikrokontrolery
EFM32 Silicon Labs
Energooszędność
Tryby pracy Giant Gecko
Architektura
EiT 2018/19 2
2018-10-16
2
EiT 2018/19 3
Mikroprocesor – definicja
Mikroprocesor to synchroniczny automat sekwencyjny
realizujący dołączony z zewnątrz program i jest wykonany jako
pojedynczy układ scalony (wielkiej skali integracji – VLSI)
Mikroprocesor to układ cyfrowy wykonany jako pojedynczy
układ scalony o wielkim stopniu integracji (ULSI) zdolny do
wykonywania operacji cyfrowych według dostarczonego ciągu
instrukcji. (Wikipedia – https://pl.wikipedia.org)
A microprocessor is a computer processor which incorporates
the functions of a computer's central processing unit (CPU) on a
single integrated circuit (IC), or at most a few integrated circuits. The microprocessor is a multipurpose, clock driven, register based,
programmable electronic device which accepts digital or binary data as
input, processes it according to instructions stored in its memory, and
provides results as output. Microprocessors contain both combinational logic
and sequential digital logic. (Wikipedia – https://en.wikipedia.org)
EiT 2018/19 4
Mikroprocesor – budowa
Jednostka wykonawcza EU (Execution Unit), która
przetwarza informacje wykonując wszelkie operacje
arytmetyczne i logiczne.
jednostka arytmetyczno-logiczna ALU,
zestaw rejestrów
Jednostka sterująca CU (Control Unit),
która określa rodzaj wykonywanych operacji
rejestry
części
wykona-
wczej
ALU
rejestr
rozkazów
dekoder
rozkazów
DANE
PROGRAM
WYNIKI
ZEW.SYG.STER
EU – jednostka wykonawcza
CU – jednostka sterująca
układ
sterowania
wewn. sygn. sterujące
2018-10-16
3
EiT 2018/19 5
Mikroprocesor – budowa
http://eduinf.waw.pl/inf/alg/002_struct/0055.php
EiT 2018/19 6
Mikroprocesor – działanie
Cykl zegara – wiadomo
Cykl maszynowy – pojedynczy cykl dostępu do
pamięci lub urządzenia we-wy lub akceptacji
przerwania. Składa się z kilku cykli zegarowych.
Cykl rozkazowy – czas potrzebny do pełnego
wykonania instrukcji od jej pobrania do zrealizowania,
jeden lub kilka cykli maszynowych.
2018-10-16
4
EiT 2018/19 7
Mikroprocesor – działanie
Wykonanie rozkazu:
pobranie rozkazu z pamięci do IR (instruction register)
dekodowanie rozkazu
pobranie argumentów (lub nie jeśli nie trzeba)
wykonanie
zapis wyników
EiT 2018/19 8
Mikroprocesor – architektura
model programowy procesora (ang. Instruction Set Architecture)
zestaw instrukcji procesora oraz inne jego cechy istotne
z punktu widzenia programisty, bez względu na ich
wewnętrzną realizację; stanowi granicę pomiędzy
warstwą sprzętową a programową
mikroarchitektura procesora (ang. microarchitecture)
wewnętrzna, sprzętowa implementacja danego modelu
programowego, określająca sposób wykonywania
operacji przez procesor, szczegółowa budowa
wewnętrzna procesora itd.
https://pl.wikipedia.org
2018-10-16
5
EiT 2018/19 9
Mikroprocesor – architektura
Podział (1):
Organizacja pamięci (magistral)
architekturę von Neumanna
– dane i program są przechowywane w tym samym
bloku pamięci;
architekturę harwardzką
– dane i program są przechowywane w oddzielnych
pamięciach;
architekturę mieszaną
– połączenie dwóch powyższych typów: oddzielne
pamięci rozkazów i danych, ale wspólne magistrale.
EiT 2018/19 10
Mikroprocesor – architektura
Architektura von Neumanna
MIKROPROCESOR RD
WR
PAMIĘĆ
DANYCH
PAMIĘĆ
PROGRAMU
MAGISTRALA DANYCH
MAGISTRALA ADRESOWA
• Wspólna przestrzeń
adresowa pamięci danych i
programu
• Wspólne magistrale:
danych, adresowa i
sterująca
2018-10-16
6
EiT 2018/19 11
Mikroprocesor – architektura
Architektura harwardzka
MIKROPROCESOR
PAMIĘĆ
DANYCH
PAMIĘĆ
PROGRAMU
MA
GIS
TR
AL
A A
DR
ES
OW
A
• Osobna przestrzeń
adresowa pamięci dla
danych i programu
• Osobne magistrale danych,
adresowe i sterujące
MA
GIS
TR
AL
A D
AN
YC
H
MA
GIS
TR
AL
A A
DR
ES
OW
A
MA
GIS
TR
AL
A D
AN
YC
H
EiT 2018/19 12
Mikroprocesor – architektura
Architektura mieszana (harwardzka zmodyfikowana)
MIKROPROCESOR RD
WR
PAMIĘĆ
DANYCH
PAMIĘĆ
PROGRAMU
MAGISTRALA DANYCH
MAGISTRALA ADRESOWA
• Wspólne magistrale:
danych, adresowa i
sterująca.
• Rozdzielona przestrzeń
adresowa pamięci danych i
programu, dzięki osobnym
sygnałom sterującym
PSEN
2018-10-16
7
EiT 2018/19 13
Mikroprocesor – architektura
Podział (2):
Złożoność instrukcji
CISC (ang. Complex Instruction Set Computer) – bogaty zestaw instrukcji o dużych możliwościach,
RISC (ang. Reduced Instruction Set Computer) – prostszy i mniejszy zestaw instrukcji,
VLIW (ang. Very Long Instruction Word) – pozwala na łączenie wielu prostych instrukcji w jeden wielki opcode,
MISC (ang. Minimal Instruction Set Computer) – minimalny zestaw instrukcji,
ZISC (ang. Zero Instruction Set Computer) – zerowy zestaw instrukcji.
https://pl.wikipedia.org
EiT 2018/19 14
Mikroprocesor – architektura
Cechy architektury CISC:
stosunkowo duża liczba rozkazów (instrukcji),
występowanie złożonych, specjalistycznych rozkazów, które
czasami wymagają dużej liczby cykli maszynowych,
zmienna liczba cykli rozkazowych,
szeroka gama trybów adresowania (skomplikowana
konstrukcja dekoderów adresu).
Wady architektury CISC:
długa lista rozkazów - część z nich jest rzadko używana,
zbyt dużo czasu traci się na operacje przepisania z pamięci
do rejestrów i odwrotnie,
wolna praca dekodera rozkazów ze względu na dużą liczbę
instrukcji i trybów adresowania,
ogólnie mała efektywność w obliczeniach numerycznych.
2018-10-16
8
EiT 2018/19 15
Mikroprocesor – architektura
Cechy architektury RISC:
zredukowana liczba rozkazów i trybów adresowania (dzięki
temu kody rozkazów są prostsze i bardziej zunifikowane, co
upraszcza dekoder rozkazów),
ograniczenie komunikacji pomiędzy pamięcią, a
procesorem,
przetwarzanie potokowe (wykonanie rozkazu w jednym
cyklu maszynowym),
większa liczba rejestrów.
Wady architektury RISC:
duża liczba rozkazów w kodzie,
konieczne szybkie przesyłanie rozkazów z pamięci
(motywacja dla rozwoju pamięci podręcznej).
EiT 2018/19 16
Mikroprocesor – architektura
Porównanie CISC – RISC
parametr Typowy CISC Typowy RISC
liczba rozkazów kilkaset kilkadziesiąt
maksymalna długość rozkazu kilkadziesiąt bajtów kilka bajtów
liczba formatów rozkazów kilkadziesiąt kilka
liczba trybów adresowania kilkadziesiąt kilka
adresowanie pośrednie tak nie
liczba cykli masz. na rozkaz kilka jeden
2018-10-16
9
EiT 2018/19 17
System mikroprocesorowy
Cel: przetwarzanie informacji
SYSTEM
MIKROPROCESOROWY DANE
PR
OG
RA
M
WYNIK
EiT 2018/19 18
System mikroprocesorowy
Definicja „obrazkowa” Cel: przetwarzanie informacji
2018-10-16
10
EiT 2018/19 19
Mikrokontroler – definicja
Mikrokontroler (MCU, μC, uC ang. microcontroller),
mikrokomputer jednoukładowy –
scalony system mikroprocesorowy,
zrealizowany w postaci pojedynczego układu scalonego
zawierającego jednostkę centralną (CPU), pamięć RAM
oraz rozbudowane układy wejścia-wyjścia i na ogół
pamięć programu jako FRAM, MRAM, ROM lub Flash.
Określenie mikrokontroler pochodzi od głównego obszaru jego
zastosowań, jakim jest sterowanie urządzeniami elektronicznymi,
takimi jak: urządzenia biurowe, urządzenia medyczne (w tym
implanty), zdalnego sterowania, elektronarzędzia, systemy
sterowania silnikami samochodowymi, a nawet zabawki i inne
systemy wbudowane.
https://pl.wikipedia.org
EiT 2018/19 20
Mikrokontrolery EFM32 Silicon Labs
Optymalizacja zużycia energii
Jak osiągnąć redukcję?
2018-10-16
11
EiT 2018/19 21
Mikrokontrolery EFM32 Silicon Labs
Jak osiągnąć redukcję konsumpcji energii?
Bardzo mały pobór mocy dynamicznej
Bard
zo kró
tki czas w
ybu
dzan
ia
Autonomiczne peryferia
Tryby
energetyczn
e
• Elementy elektroniczne
• Sprzętowe moduły funkcjonalne
• System zasilania
• Energooszczędna pamięć
EiT 2018/19 22
EFM32 Silicon Labs – redukcja poboru mocy
Bardzo mały pobór mocy dynamicznej – ograniczenie
aktywności (odpowiednia architektura) – przy
częstotliwości pracy 32MHz i napięciu zasilania 3V
mikrokontroler pobiera tylko 150µA/MHz
2018-10-16
12
EiT 2018/19 23
EFM32 Silicon Labs – redukcja poboru mocy
Zredukowany czas przetwarzania – dzięki zastosowaniu
32-bitowego rdzenia Cortex-M.
Mała liczba taktów zegara na wykonanie zadania –
mniejsza aktywność układu.
EiT 2018/19 24
EFM32 Silicon Labs – redukcja poboru mocy
Bardzo krótki czas wybudzania pomiędzy stanem
głębokiego uśpienia a stanem aktywnym – czas
mniejszy niż 2 µs powoduje niezauważalne zużycie
energii
2018-10-16
13
EiT 2018/19 25
EFM32 Silicon Labs – redukcja poboru mocy
Ultra mała upływność (straty statyczne) – technologia
niskoenergetyczna (low-power) i zarządzanie mocą
(power-management)
EiT 2018/19 26
EFM32 Silicon Labs – redukcja poboru mocy
Autonomiczne peryferia, które mogą pracować bez
udziału mikroprocesora, pozostawiając go uśpionym
lub wyłączonym
2018-10-16
14
EiT 2018/19 27
EFM32 Silicon Labs – redukcja poboru mocy
„Refleksyjny” system peryferii – zarządza pracą
autonomicznych peryferii , co pozwala na
bezpośrednie łączenie układów zewnętrznych bez
udziału mikroprocesora, który może być uśpiony.
EiT 2018/19 28
EFM32 Silicon Labs – redukcja poboru mocy
Tryby pracy niskoenergetycznej – dużo (aż 5) dobrze
zaprojektowanych trybów pracy.
2018-10-16
15
EiT 2018/19 29
EFM32 Silicon Labs – tryby niskoenergetyczne
EFM32 with 3 V power supply.
Real application from memory.
EMO
Run Mode
EM1
Sleep Mode
EM2
Deep Sleep
EM3
Stop Mode
EM4
Shutoff Mode
Current Consumption Down to 63
µA/MHz
Down to 32
µA/MHz Down to 0.9 µA Down to 0.6 µA Down to 20 nA
Wake-up Time - 0 2 µs 2 µs 160 µs
Wake-up Events Any Any 32 kHZ
Peripherals
Async IRQ,
12C Slave
Analog
Comparators
Voltage
Comparators
Reset,
GPIO
Rising/Failing
Edge
CPU (Cortex-M3/M0) On - - - -
High Frequency Peripherals Available Available - - -
Low Frequency Peripherals Available Available - - -
Asynchronous Peripherals Available Available Available Available -
Full CPU and SRAM Retention On On On On -
Power-on Reset/Brown-out Detector On On On On On
EiT 2018/19 30
EFM32 Silicon Labs – redukcja poboru mocy
Niskoenergetyczny interfejs czujników (LESENSE) –
autonomicznie monitoruje analogowe czujniki i
wybudza mikroprocesor w razie potrzeby
2018-10-16
16
EiT 2018/19 31
Dlaczego „gekon” ?
Gekony to prymitywne jaszczurki, które niemal do
perfekcji opanowały oszczędzanie energii.
Zużywają ok. 10 % energii w porównaniu ze ssakami o
podobnej wielkości.
Potrafią pozostać długi czas bez ruchu, obniżając
temperaturę ciała, ale będąc czujnymi, aby gdy nadejdzie
okazja szybko się obudzić i upolować ofiarę.
Sposób pisania aplikacji
energooszczędnych „energy friendly
Gecko technology”
EiT 2018/19 32
Zasady oszczędzania energii
Podstawowe zasady:
użyć właściwe tryby pracy (energetyczne),
wykorzystać nisko-energetyczne peryferia,
wyłączyć nieużywane moduły i peryferia,
zablokować sygnał zegarowy od nieużywanych
modułów i bloków,
zmniejszyć częstotliwość pracy,
zredukować napięcie zasilania.
Energia E = P t
Należy pamiętać, że:
zmniejszenie mocy może skutkować znacznym
wydłużeniem czasu realizacji zadania, a w efekcie
zwiększeniem zużycia energii. Trzeba dążyć do
zmniejszenia iloczynu: MOC x CZAS (czyli energii)
np.:
P t < 0,5 P 3 t
2018-10-16
17
EiT 2018/19 33
Wybierz właściwy tryb pracy
Najbardziej efektywnym sposobem redukcji energii jest
pozostawanie rdzenia mikrokontrolera w trybie
aktywnym przez taki okres czasu, jaki jest wymagany do
realizacji zadania.
Mikrokontrolery EFM32 posiadają 5 trybów pracy
(Energy Modes), tak zaprojektowanych, że aplikacja
zawsze może znaleźć się w stanie optymalnym.
EiT 2018/19 34
Wybierz właściwy tryb pracy
Ogólnie:
im głębsze „uśpienie” tym mniejsze zużycie energii
przez mikrokontroler.
Jednakże oszczędność energii ma swoją cenę –
wybudzenie z głębszego snu wymaga więcej czasu.
Na czas wybudzenia mają wpływ m.in.:
Histerezy i opóźnienia w układzie wybudzającym,
Start i stabilizacja układu zażądania mocą
Restart i stabilizacja sygnału zegarowego,
Odtworzenie rejestrów i wewnętrznej konfiguracji procesora,
Odtworzenie pamięci systemowej,
Obsługa przerwania wybudzającego procesor.
2018-10-16
18
EiT 2018/19 35
Używaj energooszczędnych peryferii
Aplikacja, stosownie do wymagań,
powinna używać energooszczędne peryferia,
o ile ich parametry są wystarczające.
W EMF32 jest wiele energooszczędnych peryferii, które
są dostępne w różnych trybach pracy.
Niech te układy pracują, a jednostka centralna będzie
uśpiona, albo realizuje inne operacje.
Przykładowo:
Wykorzystać RTC i uśpić procesor, zamiast bezczynnie czekać,
Użyć DMA do transferów danych pomiędzy pamięcią, a innymi
układami,
Zastosować nisko-energetyczny interfejs czujników (LESENSE)
do monitorowania czujnika, zamiast odpytywania przez procesor.
EiT 2018/19 36
Wyłącz zbędne urządzenia
W każdym mikrokontrolerze są jakieś nieużywane
urządzenia w danej chwili – wyłącz zbędne!
Jeżeli jakieś moduły są używane przez pewien okres
czasu, a potem czekają, to też je wyłącz na ten czas
(np. praca ADC z pewnym interwałem czasowym).
To samo dotyczy też CPU (ale o tym już była mowa).
Należy pamiętać o czasie wybudzania urządzeń.
2018-10-16
19
EiT 2018/19 37
Zablokuj sygnał zegarowy
Nie zapomnij zablokować zegara dla
wyłączonych urządzeń.
Sygnał zegarowy doprowadzony do wyłączonych układów
też będzie powodował konsumpcję energii (przeładowanie pojemności pasożytniczych linii i wejściowych tych układów)
W EFM32 za zarządzanie zegarem odpowiada układ
zarządzania zegarem (Clock Management Unit – CMU).
EiT 2018/19 38
Zmniejsz częstotliwość zegara
Pobór mocy zależy wprost proporcjonalnie od
częstotliwości:
2 dddyn VCfP
W ogólności zadanie lub moduł powinny pracować z możliwie
najniższą częstotliwością, tak aby osiągnąć założony cel.
Np. timer odmierzający czas w ms nie musi być taktowany
częstotliwością w MHz, wystarczy w kHz (chyba, że wymagana jest
duża precyzja).
2018-10-16
20
EiT 2018/19 39
Częstotliwość zegara CPU
I:
Częstotliwość powinna
być tak mała, żeby CPU
nie pracował w stanie
jałowym, żeby nie czekał
(robił coś pożytecznego)
II:
Częstotliwość jest duża,
CPU szybko wykonuje
zadanie, a potem jest
usypiany i czeka na
następne zadanie.
W wielu przypadkach drugie podejście jest lepsze,
zwłaszcza, gdy zadania pojawiają się losowo.
A jeśli nawet zadania są okresowe, to w drugim (II)
przypadku mniejsze będą straty statyczne.
EiT 2018/19 40
Zmniejsz napięcie zasilania
W EMF32 można zmniejszyć napięcie zasilania
w dopuszczalnych granicach określonych w danych
katalogowych poszczególnych mikrokontrolerów.
Pobór mocy zależy od kwadratu napięcia zasilania:
2 dddyn VCfP
2018-10-16
21
EiT 2018/19 41
32-bitowe mikrokontrolery Silicon Labs
EiT 2018/19 42
Mikrokontroler EFM32 Giant Gecko
2018-10-16
22
EiT 2018/19 43
EMF 32 i jego tryby energetyczne
Tryby energetyczne: EM0, EM1, EM2, EM3, EM4
Przełączanie trybów jest łatwe za pomocą funkcji z biblioteki emlib
EiT 2018/19 44
Tryb energetyczny EM0
2018-10-16
23
EiT 2018/19 45
Tryb energetyczny EM0
Run Mode (Energy Mode 0)
Tryb podstawowy (domyślny) – mikrokontroler
wykonuje program z pamięci RAM lub FLSH,
wszystkie zasoby (peryferia) są dostępne.
Pobór mocy: 180 µW/MHz
EiT 2018/19 46
Tryb energetyczny EM1
2018-10-16
24
EiT 2018/19 47
Tryb energetyczny EM1
Sleep Mode (Energy Mode 1)
Tryb uśpienia – zablokowany zegar CPU ale nie
wyłączony, wszystkie peryferia i pamięci są dostępne.
Szybkie peryferia: DMA, UART/USART, ADC, DAC i AES
mogą pracować autonomicznie dzięki modułowi autonomicznej
komunikacji między peryferiami PRS (Peripheral Reflex System).
Również RAM jest aktywny i dostępny dla DMA.
Rejestry mikrokontrolera są zachowane – bardzo szybkie wybudzanie.
Pobór mocy: 45 µW/MHz (inni 200 µW/MHz).
Powrót do stanu aktywnego: 1 cykl zegara.
Wejście: instrukcja:"Wait for Interrupt (WFI)" lub
"Wait for Event (WFE)„
bilbioteka emlib: EMU_EnterEM1()
EiT 2018/19 48
Tryb energetyczny EM2
2018-10-16
25
EiT 2018/19 49
Tryb energetyczny EM2
Deep Sleep Mode (Energy Mode 2)
Tryb głębokiego uśpienia – wyłączony zegar dużej
częstotliwości, jego urządzenia i inne mniej ważne,
dostępne są tylko najważniejsze.
Zegar niskiej częstotliwości (32,768 kHz) jest włączony i
niektóre nisko-energetyczne funkcje są dostępne, tj:
sterownik ELCD, RTC, WatchDog, Timer, LeUART, interfejs
dotykowy, I2C i USB, oraz Power-on i detektor Brown-out.
Pełne zachowane rejestrów i pamięci RAM – szybki powrót.
Pobór mocy: 0,9 µA (inni ok. 1050 µA).
Powrót do stanu aktywnego: 2 µs.
Wejście: instrukcja: po ustawieniu bitu SLEEPDEEP
instrukcja WFI lub WFE
bilbioteka emlib: EMU_EnterEM2() lub EMU_EnterEM2(bool restore)
EiT 2018/19 50
Tryb energetyczny EM3
2018-10-16
26
EiT 2018/19 51
Tryb energetyczny EM3
Stop Mode (Energy Mode 3)
Tryb zatrzymania – „głębsza” wersja EM2, wyłączone
zegary dużej i małej częstotliwości (z wyj. ULFRCO
dla WatchDog), dostępne są tylko niektóre peryferia.
Dostępne są np.: WatchDog, pin przerwania asynchronicznego,
komparator analogowy, komparator napięcia, pracuje RTC,
licznik impulsów, itp.
Pełne zachowane rejestrów i pamięci RAM – szybki powrót.
Pobór mocy: 0,6 µA (inni ok. 1030 µA).
Powrót do stanu aktywnego: 2 µs.
Wejście:
instrukcja: tak jak EM2, po „ręcznej” blokadzie
zegara niskiej częst.
bilbioteka emlib: EMU_EnterEM3()
lub EMU_EnterEM3(bool restore)
EiT 2018/19 52
Tryb energetyczny EM4
2018-10-16
27
EiT 2018/19 53
Tryb energetyczny EM4
Shut Off Mode (Energy Mode 4)
Tryb wyłączenia – „prawie nieżywy”, wszystko wyłączone
poza elementami pozwalającymi na wybudzenie.
Działają: układ monitorowania przerwań na wej. Reset i GPIO
wake-up, oraz Backup Real-Time Counter (BURTC). „Zimny start” – ładowanie wszystkich rejestrów, start i stabilizacja
zegarów (HFCO) – to wymaga czasu.
Podtrzymanie 512 bajtów RAM.
Pobór mocy: 20 nA (400 nA z RTC), inni ok. 1,5 µA.
Powrót do stanu aktywnego: 160 µs.
Wejście: instrukcja: 4-krotny zapis 0x3 i 0x2 do
rejestru EM4CTRL
bilbioteka emlib: EMU_EnterEM4()
EiT 2018/19 54
Przełączanie trybów energetycznych
Rejestry:
GPIO_EM4WUEN
GPIO_EM4WUPOL