=Paper=
{{Paper
|id=Vol-503/paper-3
|storemode=property
|title=Multi-Level power consumption modelling in the AADL design flow for DSP, GPP, and FPGA
|pdfUrl=https://ceur-ws.org/Vol-503/paper01.pdf
|volume=Vol-503
|authors=Eric Senn,Johann Laurent,and Jean-Philippe Diguet
}}
==Multi-Level power consumption modelling in the AADL design flow for DSP, GPP, and FPGA==
MoDELS'08 ACES-MB Workshop Proceedings
Multi-Level power consumption modelling in the
AADL design flow for DSP, GPP, and FPGA
Eric SENN, Johann LAURENT, and Jean-Philippe DIGUET
Université de Bretagne Sud, Lab-STICC,
CNRS UMR3192,
F-56321 LORIENT Cedex, France
Abstract. This paper presents a method that permits to estimate the
power consumption of components in the AADL component assembly
model, once deployed onto components in the AADL target platform
model. This estimation is performed at different levels in the AADL
refinement process. Multi-level power models have been specifically de-
veloped for the different type of possible hardware targets: General Pur-
pose Processors (GPP), Digital Signal Processors (DSP) and Field Pro-
grammable Gate Arrays (FPGA). Three models are presented for a com-
plex DSP (the Texas Instrument C62), a RISC GPP (the PowerPC 405),
and a FPGA from Altera (Stratix EP1S80). The accuracy of these models
depends on the refinement level. The maximum error introduced ranges
from 70% for the FPGA at the first refinement level (only the operating
frequency is considered here) to 5% for the GPP at the third refinement
level (where the component’s actual source code is considered).
1 Introduction
Originally coming from the avionic domain, AADL (Architecture Analysis &
Design Language) is now commonly used as an input modelling language for
real-time embedded systems [1, 2]. It allows the early analysis of the specifica-
tion, the verification of functional and non functional properties of the system,
and even code generation for the targeted hardware platform [3–5]. In the con-
text of the European project SPICES (Support for Predictable Integration of
mission Critical Embedded Systems) [6], our aim is to enrich the AADL compo-
nent based design flow to permit energy and power consumption estimations at
different levels in the refinement process. However, such early verifications are
only possible if power estimations are completed in a reasonable delay. Only at
this condition a fast and fruitful exploration of the design space is permitted.
Significant research efforts have been devoted to develop tools for power con-
sumption estimation at different abstraction levels in embedded system design.
A lot of those tools however work at the Register Transfer Level (RTL) (this is
the case for tools like SPICE, Diesel [7] and Petrol [8]), at the Cycle Accurate
Bit Accurate (CABA) level ([9, 10]), and a few tools at the architectural level
(Wattch [11] and Simplepower [12]). Such approaches cannot be used at high
Toulouse, France, September 29, 2008 9
MoDELS'08 ACES-MB Workshop Proceedings
2
levels because simulation times at such low abstraction levels become enormous
for complete and complex systems, like multiprocessor heterogeneous platforms.
In [13] and [14], the authors present a characterization methodology for gen-
erating power models within TLM for peripheral components. The pertinent
activities are identified at several levels and granularities. The characterization
phase of the activities is performed at the gate level and is used to deduce
the power of coarse-grained activities at higher level. Again, applying such ap-
proaches for complex processors or complete systems is not doable. Instruction
level or functional level approaches have been proposed [15–17]. They however
only work at the assembly level, and need to be improved to take into account
pipelined architectures, large VLIW instruction sets, and internal data and in-
struction caches.
We introduced the Functional Level Power Analysis (FLPA) methodology
which we have applied to the building of high-level power models for differ-
ent hardware components, from simple RISC processors to complex superscalar
VLIW DSP [18, 19], and for different FPGA circuits [20]. In this paper we show
how this modelling approach fits into the AADL design flow and how our power
models, being interoperable, are used at different refinement levels. Section 2
presents the AADL component based design flow and the deployment of the Plat-
form Independent Models (PIM) to obtain the Platform Specific Model (PSM)
of the target. Section 3 presents the methodology for power estimations and
the global power analysis of a complete system described with AADL. Section
4 presents the building of power models and define the three refinement levels
where they can be used. The power models of the DSP TI C62, the GPP Pow-
erPC 405, and the FPGA Altera Stratix EP1S80 are presented as examples. The
accuracy of our power estimations is finally evaluated.
2 AADL design flow
Figure 1 presents the component based AADL design flow. The AADL compo-
nent assembly model contains all the components and connections instances of
the application, and references the implementation models of the components
instances from the AADL models library. The AADL target platform model de-
scribes the hardware of the physical target platform. This platform is composed
of at least one processor, one memory, and one bus entity to home processes
and threads execution. The AADL deployment plan model describes the AADL-
PSM composition process. It defines all the binding properties that are necessary
to deploy the processes and services model of the component-based application
on the target platform. All those models are combined to obtain the AADL-
PSM model of the complete component-based system. The final implementation
of the system is obtained afterward through model transformations and code
generation.
The Open Source AADL Environment Tool (OSATE) [21] permits the spec-
ification of a complete system using AADL. It also permits to check some of
its functional and non-functional properties. Those verifications rely on the use
Toulouse, France, September 29, 2008 10
MoDELS'08 ACES-MB Workshop Proceedings
3
AADL component AADL target
AADL deployment
assembly platform models:
plan model
model - hw components
- services
AADL models library: - connectors
AADL PSM model
- components
composition
- interfaces
model transformation
SystemC
model
code generation
SystemC
C++ code
HLS/LS/P&R; Compil./Link.
FPGA DSP GPP
Fig. 1. AADL component based design flow
of different plug-ins included in the tool set. During the deployment, software
components in the component assembly model are bound to hardware com-
ponents in the target platform model [22]. According to the deployment plan
model, OSATE scheduling analysis plug-in uses information embedded in the
software components description to propose a binding for the system [23]. Figure
2 shows the typical binding of an application on a multiprocessor architecture.
In this example, process main_process and its data block data_b are bound
to the memory sysRAM. Threads control_thread, ethernet_driver_thread
and post_thread are bound to the first general purpose processor GPP1. Thread
pre_thread is bound to GPP2. Thread hw_thread1 is, like hw_thread2 a hard-
ware thread. It will be implemented in the reconfigurable FPGA circuit FPGA1.
One connection between pre_thread and post_thread has been declared using
in and out data ports in the threads. This connection is bound to bus sys_bus
since it connects two threads bound to two different components in the plat-
form. Intra-component connections, like between threads control_thread and
ethernet_driver_thread, do not need to be bound to specific buses. They will
however consume hardware resources while being used.
In addition to communication buses, dedicated supply buses can also been
declared. A power analysis command in the OSATE resources analysis plug-in
permits to check if the power capacity of a supply bus is not exceeded. To do
that, a power capacity property (SEI::PowerCapacity) is declared for a bus,
and a power budget is declared for every component that requires an access to
this bus (property SEI::PowerBudget). The plug-in adds all the power budgets
for a bus and compares the result with its power capacity. This mechanism, even
if it is interesting, is extremely limited: power budgets for every component are
only a guess from the user, and are only used to compute the power consumption
Toulouse, France, September 29, 2008 11
MoDELS'08 ACES-MB Workshop Proceedings
4
main_process
hw_thread_2
control_thread ethernet_driver_thread
pre_thread <> post_thread hw_thread_1
data_b
sysRAM
sysCPU1
GPP1 <> bus_conn RAM
bus_conn
<> sysROM
sysCPU2
GPP2 <> bus_conn ROM
bus_conn sys_bus
<>
sysETHERNET
sysFLASH
flash_disk_device ethernet_device
bus_conn
bus_conn
<> <>
sysFPGA1 sysFPGA2
FPGA1 FPGA2
bus_conn bus_conn
Fig. 2. Binding components to the target platform
of buses in a very simplistic way. In this paper, we propose a method to greatly
enhance power analysis in the AADL flow, and to do it in an efficient way not
only for buses, but for every consuming component in the system. Moreover,
we propose to base power analysis on realistic power estimates, by using an
accurate power estimation tool and precise power consumption models for every
component in the targeted hardware platform.
3 High-level power consumption estimations
In order to complete power consumption analysis for the whole system, we need
first to compute the power budget for every software component in the AADL
component assembly model. This is the power estimation phase (1) represented
with plain edges on figure 3 in the case of the binding of a thread to a processor.
Next, the power budgets of software components are combined to get the
power budgets for hardware components. This is the power analysis phase (2)
represented with thick dotted edges on the figure. Using timing information, the
energy analysis will be performed afterwards (thin dotted edges).
The challenge for our power estimation tool is to provide a realistic power
budget for every component in the application. This tool gathers several infor-
mation in the system’s AADL specification at different places, here from the
process and thread descriptions, and from the processor specification. It also
uses binding information that may come from a preliminary scheduling analysis.
The tool uses the power model of the targeted hardware component (here a pro-
cessor) to compute the power budget for the (software) component. In fact, it
Toulouse, France, September 29, 2008 12
MoDELS'08 ACES-MB Workshop Proceedings
5
determines the input parameters of the model from the set of information it has
gathered. This process is repeated, not only for threads bound to processors, but
also for any possible binding of software components onto hardware components,
and that means: (i-) threads onto processors or FPGA, (ii-) processes and data
onto memories, and (iii-) inter-components connections onto buses.
A process and a thread in the process1
component assembly model thread 1
(2)
PowerBudget => ?
Power
EnergyBudget => ? Analysis
Tool
Power Power
Models Estimation
scheduling
BINDING
Library Tool Energy
analysis
plug-in Analysis
(1) processor Tool
binding
processor1 Timing
PowerBudget => ?
A processor in the EnergyBudget => ? Analysis
target platform model PowerCapacity => 5W Tools
Fig. 3. Power and Energy consumption estimation in the AADL design flow
Once the power budgets have been computed for every component in the
application, the power analysis is performed. The power analysis tool retrieves
all the component power budgets, together with additional information from the
specification, and computes the power budget for every hardware component
in the system. Then it computes the power estimation for the whole system.
The result of the scheduling analysis (which gives the load of processors) is also
taken into account at this level. Indeed, whenever a processor is idle, its power
consumption is at the minimum level. Scheduling analysis is performed using
basic information on the threads properties defined as properties for each thread
implementation in the AADL component assembly model: dispatch protocol (pe-
riodic, aperiodic, sporadic, background), period, deadline, execution time ...
This paper will concentrate on the power estimation phase, no further details
will be given on the power analysis. Energy analysis will be finally performed
using information from the timing analysis tools currently being developed by
some of our partners in the SPICES project.
4 Multi-level power models
Our Power Estimation Tool, PET, is an evolution of the former SoftExplorer,
initially dedicated to power and energy consumption estimation for processors
(from simple RISC General Purpose Processors to very complex VLIW Digital
Signal Processors) [24]. This tool comes with a library of power models for every
hardware component on the platform.
Toulouse, France, September 29, 2008 13
MoDELS'08 ACES-MB Workshop Proceedings
6
Our objective is to allow power estimation at different levels in the flow.
This involves the use of multi-level power models, which are models that can be
used with more or less information, depending on the refinement level. In fact,
while the specification is being refined, more information is available and power
estimations get more precise.
Let’s consider a case study platform including one GPP (the PowerPC 405),
one DSP (the Texas Instrument C62), and one FPGA circuit (the Xillinx Vir-
tex 400E). The description of those components’ power models can be found
respectively in [25], [18], and [20]. Power models are built following our Func-
tional Level Power Analysis methodology [19]. The component’s architecture is
firstly analysed and relevant parameters regarding its power consumption are
identified. Then physical measurements are performed to assess the evolution of
the power consumption with the models’ input parameters (using little bench-
marking programs called ”scenario”), and finally power consumption laws are
established.
4.1 A complex Digital Signal Processor
The TI C62 processor has a complex architecture. It has a VLIW instructions
set, a deep pipeline (up to 15 stages), fixed point operators, and parallelism
capabilities (up to 8 operations in parallel). Its internal program memory can be
used like a cache in several modes, and an External Memory Interface (EMIF) is
used to load and store data and program from the external memory [26]. In the
case of the C62, the 6 following parameters are considered. The clock frequency
(F) and the memory mode (MM) are what we call architectural parameters. They
are directly related to the target platform and the hardware component, and can
be changed according to the users will. The influence of F is obvious. The C62
maximum frequency is 200MHz (it is for our version of the chip); the designer
can tweak this parameter to adjust consumption and performances.
The remaining parameters are called algorithmic parameters; they directly
depend on the application code itself. The parallelism rate α assesses the flow
between the processor’s instruction fetch stages and its internal program memory
controller inside its IMU (Instruction Management Unit). The activity of the
processing units is represented by the processing rate β. This parameter links
the the IMU and the PU (Processing Unit). The activity rate between the IMU
and the MMU (Memory Management Unit) is expressed by the program cache
miss rate γ. The pipeline stall rate (PSR) counts the number of pipeline stalls
during execution. It depends on the mapping of data in memory and on the
memory mode.
The memory mode MM illustrates the way the internal program memory is
used. Four modes are available. All the instructions are in the internal memory
in the mapped mode (M MM ). They are in the external memory in the bypass
mode (M MB ). In the cache mode, the internal memory is used like a direct
mapped cache (M MC ), as well as in the freeze mode where no writing in the
cache is allowed (M MF ). Internal logic components used to fetch instructions
Toulouse, France, September 29, 2008 14
MoDELS'08 ACES-MB Workshop Proceedings
7
(for instance tag comparison in cache mode) actually depends on the memory
mode, and so the power consumption.
A precise description of the C62 power model and its building may be found
in [18]. The variation of the power consumption with the input parameters, more
precisely the fact that the estimation is not equally sensitive to every parameter,
allows to use the model in three different situations.
In the first situation, only the operating frequency is known. The tool returns
the average value of the power consumption, which comes from the minimum
and maximum values obtained when all the others parameters are being made
to vary. The designer can also ask for the maximum value if a higher bound is
needed for the power consumption.
In the second situation, we suppose that the architectural parameters (here
F and MM) are known. We also assume that the code is not known and that the
designer is able to give some realistic values for every algorithmic parameter. If
not, default values are proposed, from the values that we have observed running
different representative applications on this DSP (see table 1).
In the third situation, the source code is known. It is then parsed by our
power estimation tools: the value of every algorithmic parameter is computed
and the power consumption is estimated, using the power model and the values
enter by the user for the frequency and memory mode.
Table 1. Default algorithmic parameters for the C62
α β PSR
LMSBV 1024 1 0,625 0,385
MPEG 1 0,687 0,435 0,206
MPEG 2 ENC 0,847 0,507 0,28
FFT 1024 0,5 0,39 0,529
DCT 0,503 0,475 0,438
FIR 1024 1 0,875 0,666
EFR Vocoder GSM 0,578 0,344 0,045
HISTO (image equalisation by histogram) 0,506 0,346 0,499
SPECTRAL (signal spectral power density estimation) 0,541 0,413 0,288
TREILLIS (Soft Dcision Sequential Decoding) 0,55 0,351 0,038
LPC (Linear Predictive Coding) 0,684 0,468 0,171
ADPCM (Adaptive Differential Pulse Code Modulation) 0,96 0,489 0,194
DCT 2 (imag 128x128) 0,991 0,709 0,435
EDGE DETECTION 0,976 0,838 0,173
G721 (Marcus Lee) 1 0,682 0,032
AVERAGE VALUES 0,7549 0,5298 0,2919
The error introduced by our tool obviously differs in these three situations.
To calculate the maximum error, estimations are performed with given values
for the parameters known in the situation, and with all the possible values of
the remaining unknown parameters. The maximum error comes then from the
difference between the average and the maximum estimations. This is repeated
Toulouse, France, September 29, 2008 15
MoDELS'08 ACES-MB Workshop Proceedings
8
for every valid set of known input parameters. The final maximum error is the
maximum of the maximum errors. Table 2 gives the maximum error in the three
situations above, which correspond to three levels of the specification refinement.
Note that the maximal errors computed at level 2 are really pessimistic since we
assume here that the designer is completely (100%) wrong on his evaluation of
all the input parameters. If his evaluation of those parameters is only 50%, or
25% wrong, then the error introduced by our tool is reduced as well.
Table 2. Maximum errors for the C62 power model (Power in mW)
Known parameters Memory Max Min Average Max
Mode Power Power Power Error
Level 1
Frequency X 3037 848 2076 59%
Level 2
Frequency, MM, α, β, γ, PSR Mapped 2954 848 1809 53%
Cache 2955 756 1778 57%
Freeze 3018 882 1801 51%
Bypass 3037 2014 2397 21%
Level 3
F, MM, and the source code Max Error = 8%, Average Error = 4%
is provided
4.2 A more simple General Purpose Processor
The PowerPC 405 is a light version of the IBM PowerPC, embedded in the
Xilinx VirtexII Pro FPGA. It includes one prefetch instruction unit that allows
to reduce the number of pipeline stalls due to instruction misses, two caches
(16KB each) (one for the data and the other for instructions). These two caches
can be involved separately and use LRU policy. They are two ways associative
with 32 bytes line size. And three TLB translating addresses from logical to
physical (2 shadow TLB - one for the instructions and one for data - are used
and coupled with an unified one).
Measurements show that among the most important factors in the PowerPC
405 consumption are its frequency and the frequency of the bus to which it is
connected. The processor can be clocked at 100, 150, 200 or 300 MHz, and,
depending on the processor frequency, the bus (OCM or PLB) frequency can
take different values between 25 to 100 MHz. Another important parameter to
consider is the configuration of the memory hierarchy associated to the proces-
sor’s core, and that means, which caches are used (data and / or instruction)
and where is located the primary memory (internal / external). Once again, the
component’s power model can be used at three refinement levels.
At the first refinement level, our model gives a rough estimate of the power
consumption for the software component, only from the knowledge of the proces-
sor and some basic information on its operating conditions. The only information
Toulouse, France, September 29, 2008 16
MoDELS'08 ACES-MB Workshop Proceedings
9
we need is the processor frequency and the frequency of the internal bus (OCM
or PLB) to which the processor is connected inside the FPGA. They are two
architectural parameters of the PowerPC 405. They will be defined as a prop-
erty of the AADL processor implementation of the PowerPC 405 in the AADL
specification. The maximum error we get here is 27%.
At the second refinement level, we have to add some information about the
memories used. We have to indicate which caches will be used in the PowerPC
405 (data cache, instructions cache, or both), and if its primary memory is
internal (using the FPGA BRAM memory bank) or external (using a SDRAM
accessed through the FPGA I/O). Indeed, while building the power model for the
PowerPC 405, we have observed that it draws quite different power and energy
in those various situations [25]. Table 3 show the maximal errors we obtain here
for every valid set of known input parameters, the others being unknown. The
maximum error we obtain is 15,3% and the average error is 6,6%. The first line
indicates 0% because in this configuration, there are not remaining unknown
parameters that can change the power consumption of the processor.
Table 3. Maximal Errors for the PowerPC 405 at refinement level 2 (Power in mW)
Fprocessor /Fbus (MHz)
300/ 200/ 100/ 200/ 200/ 150/ 100/ 100/ 100/ Max
100 100 100 66 50 50 50 33 25 Error
2 caches BRAM 2595 2555 2515 2262 2134 2104 2084 1938 1869 0%
2 caches SDRAM MAX 3129 3091 3053 2760 2604 2585 2566 2400 2321
2 caches SDRAM MIN 2719 2681 2643 2350 2194 2175 2156 1990 1911
Error 7,0% 7,1% 7,2% 8,0% 8,5% 8,6% 8,7% 9,3% 9,7% 9,7%
BRAM MAX 2570 2515 2460 2241 2112 2084 2057 1920 1856
BRAM MIN 2472 2440 2408 2177 2053 2037 2021 1890 1829
Error 1,9% 1,5% 1,1% 1,4% 1,4% 1,1% 0,9% 0,8% 0,7% 1,9%
Icache BRAM&BRAM MAX 2662 2592 2522 2305 2170 2135 2100 1957 1890
Icache BRAM&BRAM MIN 2497 2451 2405 2193 2071 2048 2025 1897 1836
Error 3,2% 2,8% 2,4% 2,5% 2,3% 2,1% 1,8% 1,6% 1,4% 3,2%
Icache SDRAM MAX 3432 3267 3102 3155 3103 3020 2938 2882 2856
Icache SDRAM MIN 2600 2478 2356 2403 2367 2306 2239 2208 2190
Error 13,8% 13,7% 13,7% 13,5% 13,5% 13,4% 13,5% 13,2% 13,2% 13,8%
Dcache BRAM MAX 2595 2555 2515 2262 2124 2104 2084 1938 1869
Dcache BRAM MIN 2588 2544 2500 2254 2118 2096 2074 1930 1861
Error 0,1% 0,2% 0,3% 0,2% 0,1% 0,2% 0,2% 0,2% 0,2% 0,3%
Dcache SDRAM MAX 3535 3497 3459 3133 2960 2941 2922 2741 2622
Dcache SDRAM MIN 2744 2706 2668 2375 2218 2199 2180 2015 1936
Error 12,6% 12,8% 12,9% 13,8% 14,3% 14,4% 14,5% 15,3% 15,1% 15,3%
At the lowest refinement level, the actual code of the software component
is parsed. In the case of the PowerPC 405, what is important is not exactly
what instruction is executed, but rather the type of instruction being executed.
We have indeed exhibited that the power consumption changes noticeably from
memory access instructions (load or store in memory), to calculation instructions
(multiplication or addition). As we have seen before, the place where the data is
stored in memory is also important, so the data mapping is also parsed here. The
average error we get at this level is 2%. The maximum error is 5%. Logically,
Toulouse, France, September 29, 2008 17
MoDELS'08 ACES-MB Workshop Proceedings
10
that corresponds to the max and average errors for the set of consumption laws
for the component.
4.3 Field Programmable Gate Arrays
FPGA (Field Programmable Gate Arrays) are now very common in electronic
systems. They are often used in addition to GPP (General Purpose Processors)
and / or DSP (Digital Signal Processors) to tackle data intensive dedicated
parts of an application. They act as hardware accelerators where and when the
application is very demanding regarding the performances, that typically for
signal or image processing algorithms. In this case again power estimation can
be performed at different refinement levels.
At the highest levels, the code of the application is not known yet. The de-
signer needs however to quickly evaluate the application against power, energy
and / or thermal constraints. A fast estimation is necessary here, and a much
larger error is acceptable. The parameters we can use from the high-level speci-
fications are the frequency F and the occupation ratio β of the targeted FPGA
implementation, that we consider as architectural parameters, and the activity
rate α. The experienced designer is indeed able to provide, even at this very
high-level, a realistic guess of those parameters’ value. As explained before, to
obtain the model, i.e. the mathematical equation linking its output to the param-
eters, we performed a set of different measurements on the targeted FPGA. For
different values of the occupation ratio, and for different values of the frequency,
we made the activity rate varying and measured the power consumption.
At our first refinement level, only the frequency is known. Our power es-
timation tool uses the model to estimate, at the given frequency, the power
consumption with α = β = 0,1 and with α = β = 0,9. Then it returns the
average value between those minimal and maximal values. The maximal errors
we obtain for F = 10MHz and F = 90MHz (upper bound for the Altera Stratix
EP1S80) are given table 4.
At the next refinement level, the two architectural parameters F and β, are
known to the user. Like in the case of the former processor’s models, default
values are proposed for α and also β, coming from a set of representative appli-
cations. The maximal error introduced in this case ranges from 6,9% to 44,8%.
To determine this error we compute the maximum and minimum estimations
for the four extreme (F , β) couples, and compare them to the estimations with
α default value.
At the lowest refinement level, the source code (a synthesizable hardware
description of the component behaviour, may be written in VHDL or SystemC
...) is used. A High-Level Synthesis tool [27] permits to estimate the amount of
resources necessary to implement the application, and given the targeted circuit,
to obtain its occupation ratio (β) and its activity rate (α). Those two parameters
and the frequency are finally used with the model.
Toulouse, France, September 29, 2008 18
MoDELS'08 ACES-MB Workshop Proceedings
11
Table 4. Maximum errors for the Altera Stratix EP1S80 (Power in mW)
Known parameters Max Min Average Max
Power Power Power Error
Level 1
Frequency (F=10MHz) 789 307 548 44%
Frequency (F=90MHz) 4824 835 2830 70%
Level 2
Frequency, α, β
F=10MHz, β=0,1 353 307 324 8,8%
F=10MHz, β=0,9 789 544 667 24,1%
F=90MHz, β=0,1 931 835 883 6,9%
F=90MHz, β=0,9 4824 2435 3630 44,8%
Level 3
F and the source code Max Error = 4,2%, Average Error = 1,3%
is provided
5 AADL Property Sets
Table 5 and 6 show the property sets associated respectively to the TI C62 and
the PowerPC 405 for power estimation at the three refinement levels defined
above. Table 7 shows the property set for the FPGA Alter Stratix EP1S80.
Table 5. Property set for the TI C62
TI C62 property set
Processor_Frequency : aadlreal applies to (processor);
Processor_Memory_Mode : TIC62::Processor_Memory_Mode_Type applies to (processor);
Processor_Parallelism_Rate : aadlreal applies to (processor);
Processor_Processing_Rate : aadlreal applies to (processor);
Processor_Cache_Miss_Rate : aadlreal applies to (processor);
Processor_Pipeline_Stall_Rate : aadlreal applies to (processor);
Processor_Memory_Mode_Type : type enumeration (CACHE,FREEZE,BYPASS,MAPPED);
Processor_Parallelism_Rate_Default : constant aadlreal => 0,7549;
Processor_Processing_Rate_Default : constant aadlreal => 0,5298;
Processor_Cache_Miss_Rate_Default : constant aadlreal => 0,25;
Processor_Pipeline_Stall_Rate_Default : constant aadlreal => 0,2919;
As described section 3, the power estimation tool, when it is invoked, extracts
relevant information (a set of parameters) from the AADL specification, then
computes the components’ power consumption, and returns the results to fill
the power budget properties for the software components. The binding makes it
possible to put in relation components in the AADL component assembly model
with the power models of hardware components on the targeted platform.
As we have just seen, depending on the information refinement, coarse or
fine precision power estimations will be performed. Given the refinement level,
information to be provided to the estimation tool depends on the selected target
(which component). The information is more general if the refinement level is
high, it will be more dedicated to the target if the refinement level is low. The
set of properties that are used by the estimation tool actually depends on the
Toulouse, France, September 29, 2008 19
MoDELS'08 ACES-MB Workshop Proceedings
12
Table 6. Property set for the PowerPC 405
PowerPC 405 property set
Processor_Frequency : aadlreal applies to (processor);
Processor_Bus_Frequency : aadlreal applies to (processor);
Processor_Primary_Memory : PPC405::Primary_Memory_Type applies to (processor);
Processor_Data_Cache : aadlboolean applies to (processor);
Processor_Instructions_Cache : aadlboolean applies to (processor);
Primary_Memory_Type : type enumeration (BRAM,SDRAM);
Table 7. Property set for the Altera Stratix EP1S80
FPGA Altera Stratix EP1S80 property set
FPGA_Frequency : aadlreal applies to (fpga);
FPGA_Activity_Rate : TIC62::Processor_Memory_Mode_Type applies to (fpga);
FPGA_Occupation_Ratio : aadlreal applies to (fpga);
FPGA_Activity_Rate_Default : constant aadlreal => 0,4;
FPGA_Occupation_Ratio_Default : constant aadlreal => 0,5;
component itself, and more precisely, on its power model. Even between two
components of the same type, another set of specific properties might be neces-
sary since another set of configuration parameters might apply. This is the case
here for the two processor components TI C62 and PowerPC405. The property
set of the processor comes finally as a part of its power model, and, as this, will
remain separated from the general property set associated to the current AADL
working project for the application being designed in the OSATE environment.
6 Conclusion
We have presented a method to perform power consumption estimations in the
component based AADL design flow. The power consumption of components in
the AADL component assembly model is estimated whatever the targeted hard-
ware resource, in the AADL target platform model, is: a DSP (Digital Signal Pro-
cessor), a GPP (General Purpose Processor), or a FPGA (Field Programmable
Gate Array). A power estimation tool has been developed with a library of multi-
level power models for those (hardware) components. These models can be used
at different levels in the AADL specification refinement process. We have cur-
rently defined three refinement levels in the AADL flow. At the lowest level, level
3, the (software) component’s actual business code is considered and an accurate
estimation is performed. This code, written in C, or C++, for standard threads,
can also be written in VHDL or SystemC for hardware threads. At level 2, the
power consumption is only estimated from the component operating frequency,
and its architectural parameters (mainly linked to its memory configuration in
the case of processors). At level 1, the highest level, only the operating frequency
of the component is considered.
Three power models have been presented for the TIC62 GPP, the Pow-
erPC405 GPP, and the Altera Stratix EP1S80 FPGA. The maximum errors
introduced by these models, at the three refinement levels, are given table 8.
Toulouse, France, September 29, 2008 20
MoDELS'08 ACES-MB Workshop Proceedings
13
Table 8. Maximal errors summary
Component Max Error Level 1 Max Error Level 2 Max Error Level 3
TI C62 59% 57% 8%
PowerPC 405 27% 15,3% 5%
Altera Stratix EP1S80 70% 44,8% 4,2%
In the frame of the SPICES project, we are currently working at the inte-
gration of our Power Estimation Tool and Power Analysis Tool in the AADL
OSATE tool environment.
References
1. P. Feiler, B. Lewis, and S. Vestal, “The sae architecture analysis & design language
(AADL) A standard for engineering performance critical systems,” in IEEE Inter-
national Symposium on Computer-Aided Control Systems Design, Munich, october
2006, pp. 1206–1211.
2. “SAE - Society of Automative Engineers, SAES AS5506,” v1.0, Embedded Com-
puting Systems Committee, SAE, November 2004.
3. T. Vergnaud, “Modélisation des systèmes temps-réel embarqués pour la génération
automatique d applications formellement vérifiées,” Ph.D. dissertation, Ecole Na-
tionale Supérieure des Télécommunications de Paris, France, 2006.
4. A. Rugina, K. Kanoun, and M. Kaniche, “Aadl-based dependability modelling,”
LAAS, Tech. Rep., 2006, number = 06209.
5. J. Hugues, B. Zalila, and L. Pautet, “Rapid prototyping of distributed real-time
embedded systems using the aadl and ocarina,” in Proceedings of the 18th IEEE
International Workshop on Rapid System Prototyping (RSP’07). IEEE Computer
Society Press, may 2007, pp. 106–112, porto Alegre, Brazil.
6. The SPICES ITEA Project Website. [Online]. Available: http://www.spices-
itea.org/
7. P. Research, “Diesel user manual.” Philips Electronic Design and Tools Group,
Tech. Rep., june 2001.
8. R. Peset-Lopis and K. Goossens, “The petrol approach to high-level power estima-
tion,” in Proceedings of the ISLPED, Monterey, California, USA, august 1998.
9. M. Loghi, M. Poncino, and L. Benini, “Cycle-accurate power analysis for multipro-
cessor systems-on-a-chip,” in Proceedings of the GLSVLSI, Boston, Massachusetts,
USA, april 2004.
10. R. BenAtitallah, S.Niar, A.Greiner, S.Meftali, and J.L.Dekeyser, “Estimating en-
ergy consumption for an mpsoc architectural exploration,” in in ARCS06, Frank-
furt, Germany, 2006.
11. D. Brooks, V. Tiwari, and M. Martonosi, “Wattch: A framework for architectural-
level power analysis and optimizations,” in Proc. International Symposium on
Computer Architecture ISCA’00, 2000, pp. 83–94.
12. W. Ye, N. Vijaykrishnam, M. Kandemir, and M. Irwin, “The design and use of
simplepower: a cycle accurate energy estimation tool,” in Proc. Design Automation
Conference DAC’00, June 2000.
13. N.Dhanwada, I. Lin, and V.Narayanan, “A power estimation methodology for sys-
temc transaction level models,” in International conference on Hardware/software
codesign and system synthesis, 2005.
Toulouse, France, September 29, 2008 21
MoDELS'08 ACES-MB Workshop Proceedings
14
14. I. Lee, H. Kim, P. Yang, S. Yoo, E. Chung, K.Choi, J.Kong, and S.Eo, “Powervip:
Soc power estimation framework at transaction level,” in Proc. ASP-DAC, 2006.
15. V. Tiwari, S. Malik, and A. Wolfe, “Power analysis of embedded software: a first
step towards software power minimization,” IEEE Trans. VLSI Systems, vol. 2,
pp. 437–445, 1994.
16. S. Steinke, M. Knauer, L. Wehmeyer, and P. Marwedel, “An accurate and fine grain
instruction-level energy model supporting software optimizations,” in Proc. Int.
Workshop on Power And Timing Modeling, Optimization and Simulation PAT-
MOS’01, 2001, pp. 3.2.1–3.2.10.
17. G. Qu, N. Kawabe, K. Usami, and M. Potkonjak, “Function-level power estimation
methodology for microprocessors,” in Proc. Design Automation Conf. DAC’00,
2000, pp. 810–813.
18. N. Julien, J. Laurent, E. Senn, and E. Martin, “Power consumption modeling of
the TI C6201 and characterization of its architectural complexity,” IEEE Micro,
Special Issue on Power- and Complexity-Aware Design, Sept./Oct. 2003.
19. J. Laurent, N. Julien, E. Senn, and E. Martin, “Functional Level Power Analysis:
An efficient approach for modeling the power consumption of complex processors,”
in Proc. Design Automation and Test in Europe DATE, Paris, France, march 2004.
20. E. Senn, N. Julien, N. Abdelli, D. Elleouet, and Y. Savary, “Building and us-
ing system, algorithmic, and architectural power and energy models in the fpga
design-flow,” in Intl. Conf. on Reconfigurable Communication-centric SoCs 2006,
Montpellier, France, July 2006.
21. The SAE AADL Standard Info Site. [Online]. Available: http://www.aadl.info/
22. H. Balp, E. Borde, G. Hak, and J.-F. Tilman, “Automatic composition of AADL
models for the verification of critical component-based embedded systems,” in Proc.
of the Thirteenth IEEE Int. Conf. on Engineering of Complex Computer Systems
(ICECCS), march 2008, Belfast, Ireland.
23. F. Singhoff, J. Legrand, L. Nana, and L. Marc, “Scheduling and memory require-
ments analysis with aadl,” in Proceedings of the 2005 annual ACM SIGAda inter-
national conference on Ada, 2005, atlanta, GA, USA.
24. E. Senn, J. Laurent, N. Julien, and E. Martin, “SoftExplorer: Estimating and opti-
mizing the power and energy consumption of a C program for DSP applications,”
the EURASIP Journal on Applied Signal Processing, Special Issue on DSP-Enabled
Radio, vol. 2005, no. 16, September 2005.
25. E. Senn, J. Laurent, E. Juin, and J. Diguet, “Refining power consumption esti-
mations in the component based aadl design flow,” in FDL’08, ECSI Forum on
specification & Design Languages.
26. TMS320C6x User’s Guide, Texas Instruments Inc., 1999.
27. P. Coussy, G. Corre, P. Bomel, E. Senn, and E. Martin, “High-level synthesis under
I/O timing and memory constraints,” in ISCAS’05, International Symposium on
Circuits and Systems, May 2005, kobe, Japan.
Toulouse, France, September 29, 2008 22