1 Maîtriser la consommation des systèmes Maîtriser la consommation des systèmes embarqués embarqués Eric SENN, Université de Bretagne Sud, Lorient Lab-STICC ECOFAC, le 29 mars 2010 Eric SENN 2 Maîtriser la consommation des systèmes embarqués - ECOFAC 2010 Plan Qu'est ce qu'un système embarqué ? Architectures / Applications / Systèmes d'exploitation Comment positionner les travaux dans le domaine ? Les différents niveaux de modélisation : compromis rapidité, performance Consommation des ressources matérielles vs logicielles Consommation des systèmes d'exploitation Méthodologie pour l'analyse de la consommation des systèmes embarqués Méthodologie d'estimation : composition Modèles de consommation Timer / Scheduler IPC / Ethernet Gestionaire de mémoire virtuelle et pagination Processeurs Circuits reconfigurables Intégration dans un flot de conception basé sur les modèles Eric SENN 3 Maîtriser la consommation des systèmes embarqués - ECOFAC 2010 Evolution des systèmes embarqués Evolution des systèmes embarqués: Augmentation fonctionnalités / hétérogénéité Augmentation complexité Nécessité d’un système d’exploitation Simplifier la gestion des tâches Le portage des applications Abstraction des périphériques Défense Aérospatial Missiles et Satellites Automobile Réseaux mobiles Télécommunications Electronique Grand Public Source [Chip Design Trends – ASIC Prototyping survey 2009 ] Systèmes embarqués 49% Serveurs 12% Périphériques (stockage, Imprimantes, etc) 20% PC, Stations de travail 19% Part de marché Eric SENN 4 Maîtriser la consommation des systèmes embarqués - ECOFAC 2010 Problème de consommation dans les systèmes embarqués Evolution de la consommation Capacité des batteries Dissipation thermique Système de refroidissement Limite 100 Watt Limite 10 Watt Limite 1 Watt Puissance dynamique Temps Durée de vie d’une batterie Source: [Schoellkopf 2006] 2005 Téléphones portables Processeur Set-Top Box Moore’s Law Téléphones portables Processeur Set-Top Box
22
Embed
Maîtriser la consommation des systèmes embarquésecofac2010.irisa.fr/cours-senn.pdfUtilisation des OS dans le développement des systèmes embarqués [Turley 2005] 80% Eric SENN
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Maîtriser la consommation des systèmes Maîtriser la consommation des systèmes embarquésembarqués
Eric SENN, Université de Bretagne Sud, LorientLab-STICC
ECOFAC, le 29 mars 2010
Eric SENN 2Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
PlanQu'est ce qu'un système embarqué ?
Architectures / Applications / Systèmes d'exploitationComment positionner les travaux dans le domaine ?
Les différents niveaux de modélisation : compromis rapidité, performanceConsommation des ressources matérielles vs logiciellesConsommation des systèmes d'exploitation
Méthodologie pour l'analyse de la consommation des systèmes embarqués
Méthodologie d'estimation : compositionModèles de consommation
Timer / SchedulerIPC / EthernetGestionaire de mémoire virtuelle et paginationProcesseursCircuits reconfigurables
Intégration dans un flot de conception basé sur les modèles
Eric SENN 3Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Evolution des systèmes embarquésEvolution des systèmes embarqués:
Augmentation fonctionnalités / hétérogénéité Augmentation complexitéNécessité d’un système d’exploitation
Simplifier la gestion des tâchesLe portage des applicationsAbstraction des périphériques
Eric SENN 4Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Problème de consommation dans les systèmes embarquésEvolution de la consommation Capacité des batteriesDissipation thermique Système de refroidissement
Limite 100 Watt
Limite 10 Watt
Limite 1 Watt
Puissance dynamique
Temps
Durée de vie d’une batterie
Source: [Schoellkopf 2006]
2005
Téléphones portables
Processeur
Set-Top Box
Moore’s Law Téléphones portables
Processeur
Set-Top Box
2
Eric SENN 5Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
800-1200 MHz maximum speed512 KB L2 cache64-/32-bit DDR2/DDR3 with ECC
3
Eric SENN 9Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
OMAP-L138 Applications Processor Low-power dual-core applications processor benefits from both DSP and Reduced Instruction Set Computer (RISC) technologies
I/O controllers integrated in the FPGA (for audio, Ethernet, UART, compact flash and SDRAM)RTOS = Linux 2.6, preemptive, integrates a fixed priority low overhead real time scheduler
4
Eric SENN 13Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
La dimention applicativeEmbedded systems have to perform multiple different tasks
from control oriented (innovative user interfaces, adaptation to the environment, compliance to new formats, quality of services management)
to data intensive (multimedia, audio and video coding/decoding, software radio, 3D image processing, communication streaming)
and to sustain high throughputs and bandwidthsThey run on complex hardware
Hardware abstraction to ease the proramming and portabilityNecessity for an OPERATING SYSTEM
Cœurprocesse
ur
Périphériquesd’ E/S
Accélérateurmatériel Mémoire
Systèmed’exploitation
Eric SENN 14Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Approches partielles , Non homogènes,Pas de support pour l’estimation dans les flots de conception de systèmes
Eric SENN 22Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
4. Modélisation système et intégration MDA
5. Outil
AADL+
Analyse de la consommation : 6 étapes
ApplicationTâches + OS Plateforme
Déploiement
Modèle spécifique à la
plateforme
1. Identification dessources de consommation
Systèmeembarqué
BusµProc Ethernet
Liaison Série
VidéoMémoire Audio
Code
P, E
MéthodologieD’estimation
2. Méthodologie d’estimation
Modèles deconsommation
Mesures
3. Modèles de conso
6. Validation
Eric SENN 23Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Etude expérimentale d’un système complet
Systèmeembarqué
BusµProc Ethernet
Liaison Série
VidéoMémoire Audio
Système d’exploitation
Tâches
Mesure de la consommation
1. Identification dessources de consommation
Eric SENN 24Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
BackgroundOS energy overhead depends on the applications complexity and the number of services called
Depending on the application, the energy consumption of an embedded system could rise from 6% to 50%. This augmentation gets higher if the frequency and supply voltage of the processor increase [Acquaviva01], [Baynes01].
The OS can consume from 1% to 99% of the processor energy depending on the services called [Dick00].
7
Eric SENN 25Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Identification des sources de consommationMesures de puissance et d’énergie des services basiques d’un RTOS
Etude de cas: processeur µBlaze, RTOS µC/OSII sur un FPGA XilinxConsommation de puissance ne varie pas d’un service à un autre,
l’energie varieService le plus consommant = création d’une tâche changement de tout
le contexte de la tâche
1,88 µJ430 mWMemory Partition Creation
1,25 µJ441 mWSemaphore Creation
1,35 µJ438 mWMutex Creation
1,74 µJ435 mWMessage queue creation
1,2 µJ439 mWMailbox Creation
100 µJ454 mWTask Creation
Energie moyenne
Puissance moyenne
RTOS service
Eric SENN 26Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Xilinx Virtex II FPGA
Identification des sources de consommationAnalyse des sources de consommation dans la plateforme Xilinx VirtexII pro
Linux 2.6 exécutant la tâche idle
2.5 VI/O Power supply
EthernetMAC
Controller
Compact Flash
ControllerRS232
Controller
Memory Controller
PLB Bus
PLB/OPB Bridge
OPB Bus
256 Mo SDRAM External Memory
2.5 V
Ethernet PHY
Compact Flash Card Port for
FPGARS232
Serial Port3.3 V 3.3 V
3.3 V
2.5 V
Pow
erP
C 4
05
DataCache
InstructionCache
TimerJTAGDebug
MMU CPU
1.5 VCore Power
Supply
Eric SENN 27Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Model developmentPower consumption measurements for the XUP
1.5 V FPGA Core PowerPC405 cores2.5 V power supply connected to the FPGA I/O, SDRAM and Flash disk3.3V power supply connected to the Ethernet physical controller ...
DC power modules include digitizers @ 50kHzPower analyserN6705A + 4xN6761/62
Server
EthernetXUP VII Pro Board
Eric SENN 28Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Répartition de la consommationAnalyse des sources de consommation dans la plateforme Xilinx VirtexII pro
Linux 2.6 exécutant la tâche idle
Analyse de la consommation de la XUPV2P
54%
32% 14%
1,5V (Processor Core)
2,5V (SDRAM + FPGA I/O)
3,3V (Ethernet + RS232 + CF)
8
Eric SENN 29Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Sources de consommation
Architecture Matérielle
GestionPériphériques
Tâche2
Tâche3Application
Tâche5Tâche4
Gestion Fichiers
Gestion Mémoire
Gestion de Processus, Threads
MémoireContrôleurEthernet
ContrôleurFlash disk
App
els
Sys
tèm
e
Ser
vice
s
Tâche1
Processeur
cache
ContrôleurEcran
EcranFlash disk
Ordonnanceur
Timer
Interface Ethernet
Système d’exploitation embarqué
IPC
Lien entre les services et les ressources matériellesAccès externes consommation des I/O (2,5V)
Eric SENN 30Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Méthodologie d’estimationMain contribution = Memory and peripherals
Explicit accessesPOSIX Inter-Process
Communication Mechanisms
Implicit accesses (swap, virtual memory, paging)
POSIX process management
Scheduling policies
Papplication
Surface = Energie consommée
Pground
Tâche i Ordonnancement
AccèsFlash
δ Pinterruptions_timer
Accès Ethernet
IPC
t
Puissance
T
T
Eric SENN 31Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Modèle de consommation en strates
P
t
Tâche τ
Ti
L1: E_groundSystème sans OS et n’exécutant aucune opération
( )g ro un d g ro un dE P T τ= ×
L1
L2: Contribution intrinsèque de la tâcheModèle de puissance du processeur, qui inclut le
cache et les accès à la RAMT = Temps d’exécution de la tâche ζ
* ( )E P Tτ τδ δ τ=
L2
Eric SENN 32Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
L6
périphérique périphérique périphériqueE P Tδ δ δ= ×
L6: Accès aux périphériquesFlash, Ethernet ...
L5
IPC IPC IPCE P Tδ δ δ= ×
L5: Services de communications et de synchronisation
L4
ordonanceur ordonnanceur ordonnanceurE P Tδ δ δ= ×
L4: Contribution de l’ordonnanceurInclut les opérations d’ordonnancement et les changements de contexte
Modèle de consommation en strates
P
t
Tâche ζ
Ti δ TIPC δ Tpériphérique
L1
L2
δ Tordonnanceur
L3
int _ int _ ( )erruptions timer erruptions timerE P Tδ δ τ= ×
L3: Tics d’horloge
9
Eric SENN 33Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Modélisation de la consommationFLPA : Functional Level Power
AnalysisEn trois étapesArchitectures complexesModèles simplesEstimations précisesPour les processeurs
DSP & GPPOutil SoftExplorer
Pour les FPGAPour les mémoiresPour les services des OSPour systèmes complets
P ?
AlgorithmicparametersArchitecturalparameters
P = f(parameters)
1. Functional Analysis
Block 1 Block 2
Block 3
2. Characterization
ITOTAL
3. Model determination
Algorithmicparameters
Architecturalparameters
Scenario:α = 0 … 1
Architecture:F = 20 … 200 MHz
α
α
ITOTALF1 F2
F3
Processor Model
Processor
Block 1 Block 2
Block 3
Processor
Block 1 stimulated
Eric SENN 34Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Modèles de consommationUn ensemble de fonctions ... ou un tableau de points
Expriment des caractéristiques non fonctionnelles (puissance / temps d’exécution / énergie)
Relatives à des paramètresParamètres dépendent de:
L’application: taille et nombre des processus, taille des données ...Du système d’exploitation: fréquence du tick timer, Politique
d’ordonnancement ...De l’architecture matérielle: Fréquence du processeur, Fréquence de bus
...
Modèle
Equation(s)P=f(a,b,c)E=f(a,b,c)
Paramètres
abc
Composant
P, E
Eric SENN 35Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Modèles de consommation
Modèle du tick timer
Modèle
Equation(s)P=f(a,b,c)T=f(a,b,c)
ParamètresFréquence du
tick timerFréquence du
processeur
Composant
P, E
Modèle de l’ordonnanceurModèle des communications inter-processusModèle des accès à l’EthernetModèle des accès à la compact Flash
Fréquence dubus
Eric SENN 36Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Modèles de consommation
Modèle du tick timer
Modèle
Equation(s)P=f(a,b,c)T=f(a,b,c)
Paramètres
Fréquence dutick timerPolitique
d’ordonnacement
Composant
P, E
Modèle des communications inter-processusModèle des accès à l’EthernetModèle des accès à la compact Flash
Fréquence dubus, du processeur
Modèle de l’ordonnanceur
Nombre et tailledes processus
10
Eric SENN 37Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Modèles de consommation
Modèle du tick timer
Modèle
Equation(s)P=f(a,b,c)T=f(a,b,c)
ParamètresTaille des données
échangées
Protocole
Composant
P, E
Modèle de l’ordonnanceur
Modèle des accès à l’EthernetModèle des accès à la compact Flash
Fréquence du processeur, du bus
Modèle des communications inter-processus
Modèle du processeurEric SENN 38Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Current measurements (2.5V)
Eric SENN 39Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Timer interrupt energy overheadEnergy consumption measured with OS vs without OS
For different programs(ex.: quantizer & DCT)
With different processor frequencies and tick timer frequencies
The overhead is about the same for the different programs
Only 1% to 3% of the total consumption
Eric SENN 40Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Ordonnanceur et changement de contexte
ReadyList
JobJob
SCHEDULER CPU
ResourceManager
JobJob
Job
Resources
Newthread
Blocked
Ready Running
RequestAllocate
Preemption or volontary yield
Done
Thread begin life in ready state
Waiting in the ready list while CPU used by other threads
Thread changes to running state when selected by the schedulerIf thread requests an unvailable resource
Waits in the ressource manager pool in blocked state
Thread returns to ready state if preempted or yields
ContextSwitcher
+
11
Eric SENN 41Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Changement de contexte
CPU
Old Thread Descriptor
New Thread Descriptor
Memory
Context switcher saves the content of all CPU registers
PC, IR, condition status, processor status, ALU status
Descriptors are used to hold a copy of CPU registers while the process is not running
Eric SENN 42Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
IPC modelingEtape 1: Caractérisation
Paramètres applicatifs: taille des données partagées
Paramètres matériels:Fréquence du processeur, du bus100, 200, 300Mhz, 100Mhz
Paramètres de l’OS: Protocole de communication
Eric SENN 43Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
IPC modelingEtape 2 : Analyse
PuissanceEnergie
0
500
1000
1500
2000
2500
3000
Pui
ssan
ce (m
W)
1 21 141 291 891 1491 3491 4891 6391 8191
Taille des données (octets)
Fréquence CPU 300MHz - Vdd 2,5V
M_queueShare_memoryNamed_pipeUnnamed_pipe
2300
2350
2400
2450
2500
2550
2600
2650
2700
Pui
ssan
ce (m
W)
300 200 100
Fréquence CPU (Mhz)
Vdd 2,5V
M_queue
Share_memory
Named pipe
Unnamed pipe
Variation Energie pour Mq_receive (Fréquence processeur=300Mhz)
0
5
10
15
20
0 2000 4000 6000 8000 10000
Data transited in Bytes
Ene
rgy
cons
umpt
ion
in
µJ/B
yte
2,5V
Eric SENN 44Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
IPC modelingEtape 3 : Modèles
PuissanceEnergie
12
Eric SENN 45Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Paramètres applicatifs: Taille des données transmises 0..64kBParamètres de l’OS: Protocole de communication TCP/UDPParamètres matériels:Fréquence du processeur, du bus100, 200, 300Mhz, 100Mhz
Eric SENN 46Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Ethernet consumption modelingEtape 2 : Analyse
Puissance
Contrôleur MAC (Vdd=2.5V)
0200400600800
10001200
0 10000 20000 30000 40000 50000 60000 70000
IP Packet Data Size(byte)
Cur
rent
(mA
)
100 UDP100 TCP200 UDP200 TCP300 UDP300 TCP
Proc_Freq/Protocol
Energy Consumption (µJ) per Byte of the MAC Controller(Vdd=2.5V)
0102030405060
8 50 100
500
3172
1024
0
2457
6
4096
0
5734
4
IP Packet Data size (byte)
Ener
gy (µ
J/by
te)
100 UDP
100 TCP
200 UDP
200 TCP
300 UDP
300 TCP
Contrôleur MAC (Vdd=2.5V)
0
200
400
600
800
1000
1200
100 200 300
Processor Frequency (MHz)
Cur
rent
(mA
)
8/UDP
100/UDP
500/UDP
1500/UDP
163841/UDP
32768/UDP
65536/UDP
8/TCP
100/TCP
500/TCP
1500/TCP
16384/TCP
32768/TCP
65536/TCP
IP packet data size/ Protocol
Eric SENN 47Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Ethernet consumption modelingEtape 2 : Analyse
EnergyTiming estimations
Eric SENN 48Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
the primary memoryAverage error = 2%Max error = 5%
Eric SENN 56Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Power models for processorsProcessors : models for different architectures (DSP, RISC, VLIW ...)
GPP ARM7, ARM926, PowerPC405DSP TIC62, TIC64, TIC67 (VLIW)TIC55, XScale (Low power)Error < 10% from the C code, < 5% from the assembly code
Processors TI C67 TI C64 TI C62 TI C55 ARM7 Parameters floating
point VLIW fixed point VLIW + L1 &L2 cache
fixed point VLIW
low power RISC
F Clock frequency X X X X X MM Memory mode X X X X X DM Data mapping X X X W DMA data width X X X X
Arch
itect
ural
PM Power management X α Parallelism rate X X X
β Processing rate X X X X
ε DMA activity rate X X X X
γ Instruction cache miss rate X X X X τ External data access rate X X µ Data cache miss rate X σ Data read rate X δ Data write rate X
Algo
rithm
ic
PSR Pipeline Stall rate X X X
15
Eric SENN 57Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
SoftExplorer core
The processor model (power model) represents the way the processor's consumption varies with its activityThe algorithm model links the algorithm with the activity it induces in the processorFrom C source: the compiler model (prediction model) represents the compiler behaviour
Power and energy estimation
C source
Compilermodel
Processormodel
Memorymapping
Assemblycode
power model
prediction model
SoftExplorer
architectural parameters
Configura-tion
algorithmic parameters
Algorithm activity model
+ pragma
Eric SENN 58Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Modélisation multi-niveaux de la consommation des FPGA
HLS tool GAUT
System Specification
System parameters known ?
IP modeled ?
IP modeling ?
System model
Algorithmic model
System model
Architectural model
Measurements / Modeling
Algorithm C
Parser C
Operators Library
DFG
Behavioural Synthesis
RTL
Resources and resources activity estimation
Operators power models
Estimation Methodology
Design Flow YES
YES
YES
NO
NO
NO
System levelEstimation
Algorithmic level
Estimation 1
Architecturallevel
Estimation
Algorithmic level
Estimation 2
Eric SENN 59Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Modélisation niveau système
HLS tool GAUT
System Specification
System parameters known ?
IP modeled ?
IP modeling ?
System model
Algorithmic model
System model
Architectural model
Measurements / Modeling
Algorithm C
Parser C
Operators Library
DFG
Behavioural Synthesis
RTL
Resources and resources activity estimation
Operators power models
Estimation Methodology
Design Flow YES
YES
YES
NO
NO
NO
System level Estimation
Algorithmic level
Estimation 1
Architectural level
Estimation
Algorithmic level
Estimation 2
Eric SENN 60Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Modéles systèmeParamètres identifiés par les concepteurs ... erreur max = 5%
y := y + x(i) * h(i); end loop;yft <= y;adapt := deux_mu * (yt - y);for i in 0 to l-1 loop
h(i) := h(i) + adapt * x(i);end loop;for i in l-1 downto 2 loop
x(i) := x(i-1);end loop;x(1) := xt;wait for latency;
end process;end behavioral;
Eric SENN 67Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
HLSCompilation
compiling the descriptions into an internal representation: Data Flow Graph (DFG) or Signal Flow Graph (SFG)
SelectionAllocationScheduling
Binding
RTL generation
Algorithmic specification
Constraints
RTL description
Libraries
Compilation
Eric SENN 68Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
LIBRARYCompilation
HLSSelection
choosing resources from the library: selection gives the type of operators, according to speed / area / power features
SelectionAllocationScheduling
Binding
RTL generation
Algorithmic specification
Constraints
RTL description
Libraries
add1
add2
add3
mult1
mult2
sub1
add4
sub2
sub3
mult2
sub1
add4
18
Eric SENN 69Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
LIBRARYCompilation
HLSAllocation
allocating resources: determine the number of operators
SelectionAllocationScheduling
Binding
RTL generation
Algorithmic specification
Constraints
RTL description
Libraries
add1
add2
add3
mult1
mult2
sub1
add4
sub2
sub3
mult2a
sub1a
add4a
mult2b
add4b
Eric SENN 70Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Reconfiguration modelReconfiguration takes time and power energyDifferent configuration schemesCompare the configuration cost to the potential gain
Eric SENN 71Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
int main(void){ int nb_pixel,nbdata,nb_Bloc;int i,boucle;nb_pixel = sizeImage();// taille de l'image a traiterimageWithoutHead = (unsigned char *) malloc(sizeof(char)*nb_pixel);nb_pixel = imageAcquisition(imageWithoutHead);//image d'entree a compresser
nbdata = nb_pixel/3;image_y = (unsigned char *) malloc (sizeof(char)*(nbdata));//nbpixel dont la composante yimage_u = (unsigned char *) malloc (sizeof(char)*(nbdata));//nbpixel dont la
composante uimage_v = (unsigned char *) malloc (sizeof(char)*(nbdata));//nbpixel dont la
if( pid == 0){ /* processus fils */ /* processus pour la DCT */printf("process fils\n");if(pthread_mutex_init(&mutex_dct,NULL)){perror("erreur d initialisation mutex_dct");//initialisation du mutex a echouer}if(pthread_mutex_init(&mutex_conversion,NULL)){perror("erreur d initialisation mutex_conversion");//initialisation du mutex a echouer}if(pthread_mutex_init(&mutex_send,NULL)){perror("erreur d initialisation mutex_send");//initialisation du mutex a echouer}
if(pthread_create(&th_DCTy,NULL,(void * (*)(void*))ThreadDCTY,NULL)){perror("erreur de create_thread" );}
if(pthread_create(&th_DCTu,NULL,(void * (*)(void*))ThreadDCTU,NULL)){perror("erreur de create_thread" );}
if(pthread_create(&th_DCTv,NULL,(void * (*)(void*))ThreadDCTV,NULL)){perror("erreur de create_thread" );}
pthread_join (th_DCTy, (void **)&status);pthread_join (th_DCTu, (void **)&status);pthread_join (th_DCTv, (void **)&status);if(pthread_mutex_destroy(&mutex_dct)){perror("erreur de destruction du mutex_dct");//initialisation du mutex a echouer}if(pthread_mutex_destroy(&mutex_conversion)){perror("erreur de destruction du mutex_conversion");//initialisation du mutex a
echouer}if(pthread_mutex_destroy(&mutex_send)){perror("erreur de destruction du mutex_send");//initialisation du mutex a echouer}
ApplicationMultithreaded, Real-time, Hyper period ... Use case : MJPEG
mqueue: refined to requires data access mqueue.posix {Required_Access => access read_write;};
msg: refined to requires data access Block.RGB {Required_Access => access read_only;};
len: refined to requires data access Block.RGB {Required_Access => access read_only;};
end mq_receive;
DEDICATED PACKAGEpackage ipc::mqueuepublic
data mqueue--------------------------------------------------------------------- features to be declared when an mqueue is declared as a data type -- that extends mqueue::mqueue ----------------------------------------------------------------------------------------------------------featuresmq_open: subprogram;mq_close: subprogram;mq_send: subprogram;mq_receive: subprogram;mq_setattr: subprogram;mq_getattr: subprogram;mq_timedreceive: subprogram;mq_timedsend: subprogram;
subprogram mq_sendfeaturesmqueue: requires data access;msg: requires data access;len: requires data access;
end mq_send;
subprogram mq_receivefeaturesmqueue: requires data access;msg: requires data access;len: requires data access;
end mq_receive;
21
Eric SENN 81Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Client / server application
Eric SENN 82Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
AADL declarationSYSTEM SPEC USING DEDICATED PACKAGE
data socketextends ipc::socket::socketfeatures
bind: refined to subprogram bind;connect: refined to subprogram connect;send: refined to subprogram send;recv: refined to subprogram recv;close: refined to subprogram close;
-- Send a message from a socket (TCP)-- message lengthsubprogram sendfeatures
sock: requires data access;-- the socket you want to send data tomsg: requires data access;-- message to sendlen: requires data access;
end send;
-- Receive a message from a socket TCP-- maximum length of the buffersubprogram recvfeatures
sock: requires data access;-- the socket to read frommsg: requires data access;-- buffer that will contain the received messagelen: requires data access;
end recv;
Eric SENN 83Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Estimation results
Eric SENN 84Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
Deployment consumption analysisDeployment
SW component in the AADL component assembly model deployed on HW component in the AADL target platform model
Power consumption estimation for each soft component
Specification of the soft componentPower model of the hard component
Analysis = Multi-layer approachExplicit calls to OS servicesCombination of soft components
consumption hard component consumption
Implicit OS activity taken into account : tick timer, scheduling, context switching ...
GPP1
main_process
control_thread
RAM
ethernet_device
ethernet_driver_thread
GPP2
pre_threaddata_b
post_thread
ROM
flash_disk_device
sys_bus
<<BusAccess>>
<<BusAccess>>
<<BusAccess>>
<<BusAccess>>
<<BusAccess>>
<<BusAccess>>
<<Data>>
bus_conn
bus_conn
bus_connbus_conn
bus_conn
bus_conn
sysCPU1
sysCPU2
sysFLASH
sysRAM
sysROM
sysETHERNET
hw_thread_1
FPGA1bus_conn
sysFPGA1
hw_thread_2
FPGA2bus_conn
sysFPGA2
<<BusAccess>><<BusAccess>>
P1 P2
P3
P4
P5
P=f(P1,P2,P3, ...)
P_ethP_CFlash
P_bus
22
Eric SENN 85Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
AADL extension for consumption analysisConsumption models used for the analysis
Input parametersTo be set from the AADL specification
Dedicated "Property Sets" for components (target HW platform et target OS/RTOS platform)
Component hierarchy (inheritance mechanisms)Ex: processor processor type processor family builder
Posix properties : example : OS Ethernet service (socket definition: protocol / sizes) IPC (mqueue, mailbox, pipe) ,
AADL packagesTo specify specific behaviors with a strong impact on the power consumptionEx: OS communication services Package "Inter Process Communications" to describe components used in the communication : mailbox / message queue, shared memory, buffer, Ethernet and synchronisation mechanisms : semaphores, mutex, signaux
Eric SENN 86Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
AADL Object Tree Editor
Selected AADL Component
MODELE AADL (fichiers XMI AAXL)
Power Data View
Showing Power Data of Selected Thread
CAT
Eric SENN 87Maîtriser la consommation des systèmes embarqués - ECOFAC 2010
CAT
THE ENDTHE END
Eric SENN, Université de Bretagne Sud, LorientLab-STICC