550 likes | 636 Vues
Creating Embedded Platforms with MDA: Where’s the Sweet Spot? Tim Trew Research, NXP Semiconductors. Name? and address?. Road Transport. 2000BC. 1650 AD. Embedded Software Development. 1959: Jovial. 1966: Coral. 1972: C PL/M RTL/2. 1979: C++. 1998: Components: Koala, tmCom, Fractal, ….
E N D
Creating Embedded Platforms with MDA: Where’s the Sweet Spot?Tim TrewResearch, NXP Semiconductors Name? and address?
Road Transport 2000BC 1650 AD Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Embedded Software Development 1959: Jovial 1966: Coral 1972: C PL/M RTL/2 1979: C++ 1998: Components: Koala, tmCom, Fractal, … 2009: ? Aspect Oriented Software Development Domain-Specific Languages Meta-programming Model-Driven Architecture Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Alan W. Brown, IBM, 2004 Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Where’s the sweet spot? Alan W. Brown, IBM, 2004
Contents • Overview of NXP Semiconductors • Selling embedded software components • Styles of MDA and the search for the “sweet spot” • Examples • Feature composition – the bleeding edge of modelling • Raising the abstraction level of programming • Component integration and configuration • How to choose? Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Markets for Chips+Software Creating Embedded Platforms with MDA: Where's the Sweet Spot?
MW layer 0.7 MLOC OS AV streaming layer 1.5 MLOC 0.8MLOC TV software stack … • We only get paid for the IC – SW is free! • Big sales opportunities • High risk/high reward business Application Layer 0.3-1 MLOC TV HW Creating Embedded Platforms with MDA: Where's the Sweet Spot?
… and the hardware it runs on … 120M transistors Pentium: 47M-820M
… and the hardware it runs on … • 2 MIPS, 3 TriMedia VLIWs, 100 DMA channels, 2 memory busses + … • Performance is critical • Concerned with throughput and latency= CPU cycles + cache misses + (SDRAM + bus) latency • Power is becoming important • It’s critical in a phone or MP3 player • You don’t want a fan in a TV • Power down everything you don’t need right now • Use voltage/frequency scaling Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Tuned for best performance/power/cost IntrinsicPower Efficiency Different ProcessorArchitectures for different jobs Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Selling embedded software components Application Layer MW layer RT OS API OSAL AV streaming layer TV HW Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Selling embedded software components Application Layer How to adapt to different streaming frameworks – all functions have to be implemented MW layer API DirectShow GStreamerMMF GP OS AV drivers How to adapt to different HW – changing dependencies for power management TV HW Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Selling embedded software components GP OS layer DirectShow GStreamerMMF Streaming Framework Power & QoS Management How to optimize behavior when planned global state is in the OS? TV HW Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Embedded software – it’s not just post-conditions • Intermediate hardware states are immediately visible Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Embedded software – it’s not just post-conditions • Intermediate hardware states are immediately visible Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Product lines aren’t the [full] answer Product lines rule OK! Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Version 2 Product lines aren’t the [full] answer How much effort to adapt? Core Asset Core Asset Configured Asset Configured Asset Configured Asset Version 1 Does this still work?
Styles of MDA Feature composition Capability Payback Componentintegration and configuration Where’s the sweet spot? Raising abstractionlevel Innovation
Feature composition Feature composition Payback Componentintegration and configuration Raising abstractionlevel Innovation
Introduction to Program Installation In France Preset list Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Introduction to Program Installation In France Preset list Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Introduction to Program Installation Near France Preset list Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Introduction to Program Installation Near France Preset list Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Introduction to Program Installation Automatic Channel Installation Preset list Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Independently-selectable features • Variation points may be set by NXP or the customer • It must be possible to apply transformations in any order • Point at which the grey feature is inserted depends on whether the green feature is present.
Independently-selectable features region.transition.selectFirst(t|t.target.metaType ==statem::FinalState).source;
Independently-selectable features region.transition.selectFirst(t|t.target.metaType ==statem::FinalState).source; • What metaclass should this be? • Exit point? • Junction? • Vertex – abstract! How do we remove this transition in XWeave?
Independently-selectable features region.transition.selectFirst(t|t.target.metaType ==statem::FinalState).source; • Where do we find enough developers who can formulate pointcut expressions? • Everyone needs to be able to do it
Raising abstraction level Feature composition Payback Componentintegration and configuration Raising abstractionlevel Innovation
Raising the abstraction level • Rhapsody (2005): • Code and diagrams are linked to a common model – changes are reflected immediately • Model available for verification, simulation & debugging • Configurable object communication and synchronization Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Raising the abstraction level insEventStopAutoInstallation On insEventStopAutoInstallation/defer
Raising the abstraction level Can we generate this protocol from the original integrated state model with sub-machines and deferred events? Terminate ACI, immediate acknowledgement Does this problem occur often enough to make the investment? Terminate ACI, asynchronous acknowledgement
Component integration and configuration Feature composition Payback Componentintegration and configuration Raising abstractionlevel Innovation
ZigBee Example • For network(s) of monitoring and controlling devices • Provides: • Wireless operationrange: 5 – 500 m • Low power consumptionbattery life: multi-month to years • Low cost per node • Security • Easy implementation • Reliable data-transferfully hand-shake protocol Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Application 1 Application 3 App Framework 1 App Framework 3 NWK 1 NWK 3 ZigBee Example Different component models, build systems, variability mechanisms e-Metering Application App Framework 2 NWK 2 IEEE 802.15.4 Interfaces are logically equivalent, but differ in detail (component binding, parameter passing, etc.) MAC Supplier NXP PHY/HW
Component integration and configuration NWK/AppsA e-meteringNWK/Apps Design In Customer X NWK/AppsC MAC Supplier Design In e-metering PlatformIntegration NXP Design In Customer Z … Tiny OS • Platform integration uses software components from several internal/external sources • Design-in teams can’t have in-depth knowledge of them all
Create UML profile/metamodel, e.g. add «notification», «GlueComponent»,«ComponentModel»,etc. stereotypes. Preferably an industry standard Create modelcode transformation per component model, interfacestyle, etc. Use wizard to create function/parameter mappings per configuration Use variability management tool to create product Roles – who has to know what Creating Embedded Platforms with MDA: Where's the Sweet Spot?
Glue Code Architecture NWK - tmCOM MCPS MLME tmCOM: Dynamic component creation and interface binding tmCOM interfaces Glue nesC interfaces nesC: Build-time component creation and interface binding MCPS MLME MAC - nesC
Glue Code Architecture NWK - tmCOM MCPS MLME tmCOM interfaces Glue Notification Subscription Management nesC interfaces MCPS MLME MAC - nesC
Glue Code Architecture NWK tmCOM MCPS MLME nesC: C files and component netlist tmCOM interfaces Glue Notification Subscription Management nesC module nesC interfaces MCPS MLME MAC (Meshnetics - nesC) nesC configurations
Radio Manager BB outer Receiver Source Decoder ADCs DFE BB inner Receiver Wideband Tuners Digital Car Radio • SimuLink to heterogeneous multi-processor • Multiple receivers/station • Multiple standards concurrently
Application to Software-Defined Radio DMA DMA DMA DMA DMA DMA • Synchronous Data Flow (SDF) for scheduling and buffer sizing
Acknowledgements Eindhoven: Octa Cota (TU/e) Yanja Dajsuren Herman Hartmann Jos Hegge Aart Matsinger Rob Wieringa Bangalore: Santosh Araballi Paramesh Babu Navneet Khullar Giten Kulkarni Creating Embedded Platforms with MDA: Where's the Sweet Spot?