maîtriser la consommation des systèmes embarquésecofac2010.irisa.fr/cours-senn.pdfutilisation des...

22
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

Upload: others

Post on 08-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

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

DéfenseAérospatialMissiles et Satellites

Automobile

Réseaux mobilesTélécommunications

Electronique Grand Public

Source [Chip Design Trends –ASIC Prototyping survey 2009 ]

Systèmes embarqués

49%

Serveurs12%

Périphériques (stockage,

Imprimantes, etc)20%

PC, Stations de

travail19%

Part de marché

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

Page 2: 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

2

Eric SENN 5Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

OMAP Mistral - TMDXEVM3503OMAP 3503 + 1GB DRAM + 2 Gb NAND

Eric SENN 6Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

OMAP3530 Applications Processor CPU: ARM Cortex-A8 RISC

Frequency: 600 MHzExternal Memory Type Supported

LPDDR, NOR Flash, NAND flash, OneNAND, Asynch SRAM DMA64-Ch E

IVA2.2 subsystem with a C64x+ digital signal processor corePOWER SGX™ subsystem

3D graphics accelerationsupport display and gaming

effects

Eric SENN 7Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

OMAP Mistral - TMDXEVM3503

Eric SENN 8Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

FreeScale P2020 Application ProcessorDual e500 cores

800-1200 MHz maximum speed512 KB L2 cache64-/32-bit DDR2/DDR3 with ECC

Page 3: 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

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

TMS320C674x DSP core (300MHz)ARM926EJ-S core (300 MHz)

Eric SENN 10Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Xilinx Spartan 6And other reconfigurale circuits ... Actel IGLOO, Altera Stratix III, Altera Cyclone III, Xilinx Virtex 5

Eric SENN 11Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Xilinx – XUP Virtax II PRO

Alimentationsséparées

Eric SENN 12Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

XUPPlatform Xilinx XUP

Virtex-II pro with2 PowerPC 405 processors256MB SDRAM memory / 512 MB Compact Flash Ethernet interface

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

Page 4: 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

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

ContexteEmbedded system =

Heterogeneous multiprocessors SoC + reconfigurableGPP, DSP, Memories, FPGA, Accelerators, Peripherals, Controllers, Bus ...

Complex multitasks applicationsHigh performances

Operating SystemManagement servicesHardware abstraction

Utilisation des OS dans le développement des systèmes embarqués [Turley 2005]

80%

Eric SENN 15Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Embedded system overview

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

Services to ease the exploitation of embedded platforms

Cooperative and pre-emptive multi-tasking

Support for periodic and aperiodic tasks

Process managementFixed or dynamic priority

schedulingMulti-threadingSemaphoresInter-process

communicationsShared memoryMemory, file, device

management... Hardware abstraction

Eric SENN 16Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Vision

Modeling time Simulation time

La consommation des systèmes embarqués : background

Power modelinglevel

Simulationlevel

Circuit levelTransistor level

SimplePower

Gate level

Cycle Acurate/ Bit Acurate

Instruction level

Micro-Architecturallevel

Wattch

QuickPowerPowerMill

PowerTimer

Jouletrack & ILPA

Transaction LevelModeling

Register Transfer levelPetrolDieselSPICE

Cycle level

Functional level SoftExplorer & FLPA

Static Analysis

Code ProfilingCAT

ValgrindGcov

Hardware Acceleration

Spreadsheets Excel Designer's guess

SystemC / SocLIB / Unisim

eSimu / SkyEye

Tools

Open-PEOPLE

C code

ASM

Binary

Input

Systemdescription

Targetmodel&

SoftWatt

Page 5: 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

5

Eric SENN 17Maîtriser la consommation des systèmes embarqués - ECOFAC 2010 17

Positionnement des travauxQuels éléments du systèmes sont considérées ?Quel objectif ?

Architecture Matérielle

Tâche2

Tâche3Application

Tâche5Tâche4

MémoireContrôleurEthernet

ContrôleurFlash disk

Tâche1

Processeur

cache

ContrôleurEcran

EcranFlash diskInterface Ethernet

Système d’exploitation embarqué

GestionPériphériques

Tâche2

Tâche3

Tâche5Tâche4

Gestion Fichiers

Gestion Mémoire

Gestion de Processus, Threads

MémoireContrôleurEthernet

ContrôleurFlash disk

Tâche1

Processeur

cache

ContrôleurEcran

EcranFlash disk

Ordonnanceur

Timer

Interface Ethernet

IPC

Eric SENN 18Maîtriser la consommation des systèmes embarqués - ECOFAC 2010 18

Positionnement des travauxComplexité des architectures considérées ?

Du simple RISC au complexe DSP superscalaire VLIW

Architecture Matérielle

Tâche2

Tâche3Application

Tâche5Tâche4

MémoireContrôleurEthernet

ContrôleurFlash disk

Tâche1

Processeur

cache

ContrôleurEcran

EcranFlash diskInterface Ethernet

Système d’exploitation embarqué

Tâche4

MémoireProcesseur

cache

ESTIMATION:Wattch [Brooks 2000]SimplePower [Ye 2000]SoftExplorer [Senn 2004]Softwatt [Gurumurthi 2002]

Eric SENN 19Maîtriser la consommation des systèmes embarqués - ECOFAC 2010 19

Positionnement des travauxPrise en compte du système d'exploitation

Overhead de consommation sur le processeur

Architecture Matérielle

Tâche2

Tâche3Application

Tâche5Tâche4

MémoireContrôleurEthernet

ContrôleurFlash disk

Tâche1

Processeur

cache

ContrôleurEcran

EcranFlash diskInterface Ethernet

Système d’exploitation embarqué

Gestion Fichiers

Gestion de Processus, Threads

Processeur

cache

Ordonnanceur

IPC

CARACTERISATION:[Dick 2000][Acquaviva 2001][Baynes 2003]

MODELISATION:[Li 2003b][Tan 2005]

Eric SENN 20Maîtriser la consommation des systèmes embarqués - ECOFAC 2010 20

Positionnement des travauxModélisation de la consommation des périphériques

Architecture Matérielle

Tâche2

Tâche3Application

Tâche5Tâche4

MémoireContrôleurEthernet

ContrôleurFlash disk

Tâche1

Processeur

cache

ContrôleurEcran

EcranFlash diskInterface Ethernet

Système d’exploitation embarqué

GestionPériphériques

ContrôleurEthernet

ContrôleurFlash disk

ContrôleurEcran

EcranFlash diskInterface Ethernet

Tâche4

MémoireProcesseur

cache

MODELISATION:[Gurun 2006][Weissel 2006]

Page 6: 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

6

Eric SENN 21Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Positionnement des travaux

Simulation

Mesures

Caractérisation

Modélisation

Activités / Objectifs

CAT: Consumption Analysis Toolbox(+ code profiling)EU Project SPICES

Systèmeembarqué

BusµProc Ethernet

Liaison Série

VidéoMémoire Audio

AADL+

ApplicationTâches + OS Plateforme

Déploiement

Modèle spécifique à la

plateforme

Code

Flot de conception MDE

Open-PEOPLEANR Project

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].

Page 7: 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

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)

Page 8: 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

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

Page 9: 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

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

Page 10: 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

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

+

Page 11: 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

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

Page 12: 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

12

Eric SENN 45Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Ethernet consumption modelingEtape 1 : caractérisation

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

Ethernet consumption modelingEtape 3 : Modèle / PuissanceParameters

Hard :Processor FrequencyBus FrequencyPrimary memory

Soft :Packets size IP (8 > 64 KB)Protocol (TCP/UDP)

Av. error = 3,5%, max = 9%

Page 13: 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

13

Eric SENN 49Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Ethernet consumption modelingModèle / Energie : E(UDP) > E(TCP) for small packets ≤ 100 bytesOS background noise large variations in timing

Eric SENN 50Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Virtual memory and paging modeling

Processes address space> Primary memory ?

YESNO

Relocation swappingNo relocationphysical addresses are used

Biger process address space> Primary memory ?

Virtual memoryPaginationStatique : #pages / process fixeDynamique # pages / process variable

YES

Processesaddressspace

Primarymemory

Absoluteprogramaddressspace

0

4GB

Eric SENN 51Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Virtual memory manager

Physical addressspace

Primarymemory

Secondarymemory

Virtual address

space for Pi

Virtual address

space for Pj

0

Max

Virtual address space

(pages)Page 0Page 1

Page N-1

Physical addressspace

(primary memory page frames)

Primarymemory

0

Max

Page i

Page 1

Page i

Page N-1

PageTable

Eric SENN 52Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Linux virtual memory subsystemPage Table cache = Translation Lookaside Buffer (TLB)

Processor raises a TLB miss exception kernel gets the physical address from the virtual address in its page table (Page Global Directory: PGD)

If the entry is valid, the processor TLB is updated in O(1) If the entry is invalid the kernel searches the memory area in a red-black

tree in O(log(n))The page table is updated with the result and the process statistics are

updated according to the page fault type : minor or major Real Time Embedded System context no swapping allowed

TLB Miss

1

PAGE FAULT

Process: mm_struct

O(1) 2 MINOR

3 MAJOR

PGD

red-black treeO(log(n))

TLB

TLB

- allocation- resize stack- copy on write

- swap out/in

page

page

CPU

MMU vm_area_struct

Page 14: 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

14

Eric SENN 53Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Test programWrites to buffer

Buffer size must be greater than the processor TLB size TLB missesHere TLB has 64 entries and Linux uses 4KB per page minimum buffer size

= 256KBThree scenario

NPF: TLB misses but No Page Fault (1 preliminary loop on the buffer in order to allocate all pages before running the test)

ODPA: On-Demand Page Allocation strategy pages are only allocated on the first access which generates page faults

COW: Copy On Write strategy allocation and page copy delayed to the first writing

buffer

cache miss +TLB miss + page fault*

cachemiss

cache line

test 1

test 2

page page page

* page fault only on the first access

Eric SENN 54Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Page fault power and energy consumption

0 20000 40000 60000 80000 100000 120000 140000

0

50

100

150

200

250

S1: NPFS2: ODPAS3: COW

TLB m isses

Test

dur

atio

n (m

s)

T s 149 10 9 N TLBmisses 0.080R2 0.999

0 20000 40000 60000 80000 100000 120000 140000

0

20

40

60

80

100

120

140

S2: ODPAS3: COW

TLB misses

Page

Fau

lt du

ratio

n (µ

s)

0 20000 40000 60000 80000 100000 120000 140000

2850

2900

2950

3000

3050

3100

31502.5V power supply (SDRAM)

S1: NPFS2: ODPAS3: COW

TLB misses

Test

pow

er c

onsu

mpt

ion

(mW

)

0 20000 40000 60000 80000 100000 120000 140000

0

100

200

300

400

500

600

7002.5V power supply (SDRAM)

S1: NPFS2: ODPAS3: COW

TLB m isses

Test

ene

rgy

cons

umpt

ion

(mJ)

E J 396 10 9 NTLBmisses 0.243R2 0.999

0 20000 40000 60000 80000 100000 120000 140000

0

50

100

150

200

250

300

350

4002.5V power supply (SDRAM)

S2: ODPAS3: COW

TLB misses

Page

Fau

lt en

ergy

con

sum

ptio

n (µ

J)

Eric SENN 55Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

PowerPC 405 modelingEmbedded processor no separate supply linesinside

Measured consumption1.5V = PowerPC core +

associated components :CacheInternal memory BRAMControllersBuses

2.5V = FPGA I/O + external memory /SDRAM

ModelInclude consumption of

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

Page 15: 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

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%

020

4060

80100

0

5

100

0.5

1

1.5

2

Activity(%)

Power modele 25% CLB

Freq(10Mhz)

P(w

)

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

10 20 30 40 50 60 70 80 90 1000.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

2.2- Model CPT25% -

Activity %

P(w

)

F=10Mhz

F=40MhzF=30MhzF=20Mhz

F=50MhzF=60Mhz

F=80MhzF=70Mhz

F=90MhzF=100Mhz

MODEL

P=f(α,β,F)

Parameters α β F

Feature

P

Estimations:Measures:

P(mw)= 40.9 αFβ - 3.3 Fα - 97.4 αβ + 17.2 Fβ + 4.8 F + 58.9 α + β 93.0 + 227.1

Page 16: 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

16

Eric SENN 61Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Modèles algorithmiques 1

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 62Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Modèles algorithmiques 1Paramètres du modèles = paramètres de l'IPErreur moyenne = 5% / Erreur max = 26%Effort de modélisation

Eric SENN 63Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Modèles algorithmiques 2

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

FIR 71 Tap, F= 10 à 100 MHzGAUT est utilisé pour estimer

Le taux d'occupation β(β estimated = 0,09 ; β real = 0,12)

Le taux d'activité α (α = taux d'utilisation des ressources x 0,5 = 0,33)

Erreur max = 8%

Eric SENN 64Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Modèles architecturaux

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

Page 17: 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

17

Eric SENN 65Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Modèle architecturalErreur moyenne = 13%

/ Erreur max = 31%

IO3

add_dataaddmult_datamultreg_dataregdyn

regaddmultstat

dynstat

CN10x93,18)RN08,0RN22,1RN05,0(F)mW(P

)54.9N8N8N172(026.0)mW(P

PP)mW(P

−+++=

+++=

+=

1NNN2/)1N(N

regadd

mult

+==+=

MODEL

Parameters

Ressources number Ressources types

Data types Interconnections

Frequency

Features

P E

Adder Mult

Mux Reg

Eric SENN 66Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

First steps of High Level SynthesisAlgorithmic specification

ex: VHDL, Verilog, or SystemC source

SelectionAllocationScheduling

Binding

RTL generation

Algorithmic specification

Constraints

RTL description

Libraries

Compilation

entity lms isport ( xt,yt:in integer; yft:out integer);

end lms;

architecture behavioral of lms isconstant l : integer := 8; constant latency : time := 125 us;type vecteur is array (0 to l) of integer;

beginlms128 : process

variable x, h: vecteur;variable adapt: integer;variable deux_mu,y:integer;variable i : Integer ;

beginy := xt * h(0);for i in 1 to l-1 loop

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

Page 18: 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

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

composante vrgbToYuvConversion(nb_pixel, imageWithoutHead, image_y, image_u, image_v);nb_Bloc = nb_pixel/192;image_yDct = (short *) malloc (sizeof(short)*(64*nb_Bloc));decoupageBloc_DCT ((char *) image_y,nb_Bloc,(short*)image_yDct);for (i=0;i<nb_pixel/3;i++)printf("%d\n",image_yDct[i]);/**/free(image_y);image_yQuantif = (short *) malloc (sizeof(short)*(64*nb_Bloc));decoupageBloc_Quantif ((short *) image_yDct, nb_Bloc, (short *) image_yQuantif,'Y');for (i=0;i<nb_pixel/3;i++)printf("%d\n",image_yQuantif[i]);/**/free(image_yDct);init_all();//initialisation du codage d'huffmanimage_yHuffman = (bitstring *) malloc (sizeof(bitstring)*(64*nb_Bloc));huffman_encoder(image_yQuantif,image_yHuffman,longueur_image,hauteur_image,'Y');free(image_yQuantif);

int nb_pixel,nb_Bloc;if(-1 == (pid = fork()))

{ perror("Erreur de création de processus dans la composante V");exit( EXIT_FAILURE); }

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

Mjpeg.c :Image_AcquisitionRGB2YUVDCTQuantifHuffmanRebuild_Image

Task1 Task2

Task3

Task5Task4

Eric SENN 72Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Integration dans un flot de conception MDEAADL Component based approach

AADL componentassembly

model

AADL targetplatform models:- hw components

- services- connectors

AADL deploymentplan model

AADL PSM modelcomposition

AADL models library:- components

- interfaces

SystemCmodel

SystemCC++ code

code generation

model transformation

FPGA DSP GPP

HLS/LS/P&R; Compil./Link.

systemprocessthreadthread groupdata

systemprocessormemorybusdevice

Page 19: 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

19

Eric SENN 73Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

AADL target platform model : XUP use case

Eric SENN 74Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

ScenariosApplication MJPEG multi-threadée déployée sur la XUPV2P

Taille image en entrée L/H , couleurs 24 bitsPlusieurs scénarios modélisés en AADL valider l’approche d’estimation de la consommation

Processus communicants avec des sockets (Ethernet)

Synchronisation des threads avec des signaux

2 processus, 12 threads, Acquisition périodique des

images3

Processus communicants avec des mqueues

Synchronisation des threads avec des signaux

2 processus, 12 threads, Acquisition périodique des

images2

Synchronisation des threads avec des signaux

1 processus, 12 threads, Acquisition périodique des

images1

Mécanismes de communicationTasksScenario

Eric SENN 75Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Scenario 1

Intra processthreads synchronized with POSIX signalsshare data in the address space of the containing process

Eric SENN 76Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Scenario 2

Mq_send Mq_receive

Intra processthreads synchronized with POSIX signalsshare data in the address space of the containing process

Inter-processes communication is achieved through mqueues

Page 20: 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

20

Eric SENN 77Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Scenario 3

Eric SENN 78Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

5. Outil:ConsumptionAnalysis Toolkit

Extraction des paramètres

Modèles deconsommation

P, E

MéthodologieD’estimation

Modèle de la plateforme

AADL

Système d’exploitation

TâchesModèle de l’application

AADL

Modèle de Déploiement AADL

PSM AADLPropriétés spécifiquesà la consommation

Cheddar

Analyse d’ordonnançabilitéNombre de changements de contexte

Valgrind

Taux deDéfauts de cache

Code C

Fréq BusFréq Proc

Taille données

Eric SENN 79Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

Modeling communication through mqueue

Eric SENN 80Maîtriser la consommation des systèmes embarqués - ECOFAC 2010

AADL declarationSYSTEM SPEC USING DEDICATED PACKAGE

data mqueueextends ipc::mqueue::mqueue

end mqueue;

data implementation mqueue.posixsubcomponents

mq_flags: data;-- Message queue flags.mq_maxmsg: data;-- Maximum number of messages.mq_msgsize: data;-- Maximum message size.mq_curmsgs: data;

end mqueue.posix;

subprogram mq_sendextends ipc::mqueue::mq_sendfeatures

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_send;

subprogram mq_receiveextends ipc::mqueue::mq_receivefeatures

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;

propertiesPOSIX_Properties::POSIX_Control_Protocol => POSIX_MQUEUE;

end mqueue;

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;

Page 21: 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

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;

end socket;

data implementation socket.tcp_posixproperties

POSIX_Properties::POSIX_Socket_Type => SOCK_STREAM;POSIX_Properties::POSIX_Socket_Domain => AF_INET;POSIX_Properties::POSIX_Socket_Protocol => 0;

end socket.tcp_posix;

subprogram sendextends ipc::socket::sendfeatures

sock: refined to requires data access socket.tcp_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 send;

subprogram recvextends ipc::socket::recvfeatures

sock: refined to requires data access socket.tcp_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 recv;

DEDICATED PACKAGEpackage ipc::socketpublicdata socketfeatures

bind: subprogram;listen: subprogram;accept: subprogram;connect: subprogram;send: subprogram;recv: subprogram;sendto: subprogram;recvfrom: subprogram;getpeername: subprogram;close: subprogram;

end socket;

-- 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

Page 22: 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

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

[email protected]

Remerciements : Nathalie Julien, Johann Laurent, Jean-Philippe Diguet, Saadia Douhib, Mickael Lanoë, Dominique Blouin, David

Elleouet, Yannig Savary, Skander Turki, Matthieu Simon.

ECOFAC, le 29 mars 2010