component model concepts
play

Component model concepts Components A runtime entities That - PDF document

Nomadik Multiprocessing Framework, a component-based programming model 6/11/2007 - ST Company Confidential for MP-SoC Jean-Philippe FASSINO ST Microelectronics 1 Component model concepts Components A runtime entities That can


  1. Nomadik Multiprocessing Framework, a component-based programming model 6/11/2007 - ST Company Confidential for MP-SoC Jean-Philippe FASSINO ST Microelectronics 1 Component model concepts • Components – A runtime entities • That can be manipulate • Multi-instances – The unit of development & deployment • No predefined granularity I • Recursive composition (a.k.a. composite) • Interfaces – Strict separation between interface and implementation I – A component owns one or more interfaces • Bindings – A communication channel between components • Oriented from a client to a server interface – Primitive (language, i.e. method call on C) June 25 th , 2007 – Composite (configuration of binding components) • Could enforce a inter-component communication model transparently – For examples RPC stubs MP-SoC’2007 2 2-2-1

  2. Multi-core Partitioning Principles • Separate control (on Host) … – Multimedia network building • Dynamic component loading, instantiation & binding – Memory management of each memories • SDRAM, ESRAM, TCM – Quality of Services • … from multimedia processing (on MPC) June 25 th , 2007 – Light synchronous execution engine – Algorithms MP-SoC’2007 3 Nomadik ARM Infrastructure User Application User Application SAA SVA SIA ARM accelerator component component Component component Exec. Engine component Multimedia component Stacks component component Component Manager Exec. Engine Exec. Engine Exec. Engine Component Manager June 25 th , 2007 Interconnect Bus Component repository & registry (FS or ROM image) MP-SoC’2007 4 2-2-2

  3. Benefits • A multiprocessing framework for use-cases that require more than one MPC • A component-based approach for mastering software complexity and allowing adaptation and integration with bounded effort • The interface for hiding programmers some complexities of non functional aspects • Flexibility and extensibility for custom proprietary software • Dynamic loading for reducing memory footprint and increasing performance June 25 th , 2007 • Code reusability for reduce time to market • A clear model for developing powerful tools MP-SoC’2007 5 Typical Multiprocessing use-case Host Video Stack Nomadik Multiprocessing Framework SVA SIA H264 dec June 25 th , 2007 MPEG enc Display MP-SoC’2007 6 2-2-3

  4. Implementing a distributed vector length calculator � ( x² + y² + z² ) vector/squareadder.itf void sa(t_uint32 vect[3]); scalar/uniop.itf void oper(t_uint32 value); SquareAdder.conf provides vector.squareadder as input requires scalar.uniop as output property minstack 128 Sqrt.conf SquareAdder.c provides scalar.uniop as A #include <SquareAdder.nk> requires scalar.uniop as push void METH(sa)(t_uint32 vect[3]) { property mpc SVA int i; t_uint32 len2 = 0; Sqrt.c for(i = 0; i < 3; i++) { #include <Sqrt.nk> len2 += vect[i] * vect[i]; void METH(oper)(t_uint32 value) { } t_uint32 square = 1; output.oper(len2); June 25 th , 2007 t_uint32 delta = 3; } while(square <= value){ square += delta; delta += 2; } push.oper(delta/2 - 1); } MP-SoC’2007 7 Deploy the network according your architecture • CM_instantiateComponent (SAA, “SquareAdder”, &saH); • CM_instantiateComponent (SVA, “Sqrt”, &sqrtH); • CM_bindComponent (saH, “output”, sqrtH, “A”, 1); • CM_bindComponentFromHost (saH, “input”, &senditf, 1); • CM_bindComponentToHost (sqrtH, “push”, cb_itf, 1); ARM My Application OSAL impl. Component Manager June 25 th , 2007 SAA SVA Square Adder Sqrt synchronous_8815_saa synchronous_8815_sva MP-SoC’2007 8 2-2-4

  5. Monitoring your execution host (CM) MPC Trace connector June 25 th , 2007 MP-SoC’2007 9 Benchmarks • Communication – Host -> MPC: 10 us – MPC -> Host: 10 us – MPC -> MPC: 8 us • Memory footprint – Host component manager: – MPC Execution Engine: 12 KBytes – MPC stubs: June 25 th , 2007 • Clients: 216 Bytes • Server: 200 Bytes MP-SoC’2007 10 2-2-5

  6. June 25 th , 2007 MP-SoC’2007 11 Backup slides June 25 th , 2007 MP-SoC’2007 12 2-2-6

  7. Development Tool Chain nmfitfc asynch. nmfconf2c .conf xx-stub.c .type host2mpc .itf .c .idt mpc2host xx-skel.c mpc2mpc .c cm.a rvct armcc nmfconfc armlink cc Nomadik Kernel operating- .nmf java system.a toolset .obj .axf glue.* link June 25 th , 2007 .elf host (CM) MPC exec-engine.elf MP-SoC’2007 13 2-2-7

  8. 2-2-8

Recommend


More recommend