Domain-specific front-end for virtual Domain-specific front-end for virtual system modeling Workshop on Graphical Modeling Language Development at ECMFA 2012 Janne Vatjus-Anttila, Jari Kreku, Kari Tiensyrjä VTT Technical Research Centre of Finland
2 03/07/2012 Outline � Motivation � System-level performance evaluation techniques � ABSOLUT performance modeling and evaluation � Workload and platform modeling � Performance simulation � Domain-specific front-end for ABSOLUT � Workload, platform and allocation modeling DSLs � Case Example � Conclusions
3 03/07/2012 Motivation � Increasing complexity of embedded system design � New methods and tools needed for increasing productivity � ABSOLUT � Early-phase performance modeling and evaluation � Set of prototype tools � Command-line based tools: high learning curve � Domain specific modeling (DSM) � Raise the level of abstraction above programming � Used on many different domains � DSM was used in this work to shorten learning curve, improve usability and raise modeling abstraction of ABSOLUT
4 03/07/2012 Techniques for system-level performance evaluation � Virtual system � Abstract application and platform models (no ISS) � Instruction and cycle approximate � System level exploration � Virtual platform � Real application software and a virtual platform model (ISS) � Instruction accurate � Software development � Virtual prototype � Real application software and a virtual prototype (HDL) � Instruction accurate, clock accurate � Co-verification
5 03/07/2012 ABSOLUT virtual system modeling Application modelling Platform modelling Application control � Model of both hardware and platform software � Enables early simulation behavior � Interfaces components and interconnections � Improves simulation speed IDLE ShutDownApplicationReq() ShutDownApplicationReq() OpenApplicationReq() OpenApplicationReq() � Abstract, transaction-level SystemC /^OpenApplicationCnf(); /^OpenApplicationCnf(); /^ShutDownApplicationCnf(); /^ShutDownApplicationCnf(); � Reduces modeling effort ESTABLISHCONNECTION [xp_connection_succ] [xp_connection_succ] models /^ConnectionEstablishedInd(); /^ConnectionEstablishedInd(); set(T1(),now+40000000); set(T1(),now+40000000); = Workload model WAITING_EVENTS � Platform, subsystem and component layers [xp_screenupdate_succ] [xp_screenupdate_succ] /^UpdateCompleteInd(); /^UpdateCompleteInd(); [xp_processtap_succ] [xp_processtap_succ] set(T1(),now+40000000); set(T1(),now+40000000); /^TouchScreenTapActionCnf(); /^TouchScreenTapActionCnf(); T1() T1() + ToMWL ToMWL p1 p1 � Computing, communication and storage Compos ite structure diagram1 active class VNCInternetBrowser : {1/1} TouchScreenTapActionReq() TouchScreenTapActionReq() Application_Workload PROCESS_SCREEN_TAP UPDATE FromMWL FromMWL resources p1 p1 VNCCrl : V NCP rocessControl p2 p2 p4 p4 p5 p5 p3 p3 Allocation FromNavWL FromNavWL F F romDisWL romDisWL FromMemWL FromMemWL FromConWL FromConWL � Role in ABSOLUT Disassembly of section .init: ToNavWL ToNavWL ToConWL ToConWL p1 p1 p1 p1 � Processes load primitives +NavWL : Navigation_Workload +ConWL : Connection_Workload 00008000 <_init>: 8000: e1a0c00d mov ip, sp � Provides higher-level services ToDi ToDi sWL sWL ToMemWL ToMemWL 8004: e92ddff8 stmdb sp!, {r3, r4, r5, p1 p1 p1 p1 Data +DisWL : Display_Workload MemWL : Mem oryHandling_Workload + 8008: e24cb004 sub fp, ip, #4 � Consumes time (cycle-approximate) 800c: eb000023 bl 80a0 <frame_dummy processing 8010: eb000c8c bl b248 <__do_global + � Presents resource requirements � ALE library of component models 8014: e24bd028 sub sp, fp, #40 and memory 8018: e89d6ff0 ldmia sp, {r4, r5, r6, 801c: e1a0f00e mov pc, lr access load of applications � COGNAC text-based configuration system Disassembly of section .text: � Platform independent 00008020 <__do_global_dtors_aux>: � ABSINTH model generator 8020: e92d4030 stmdb sp!, {r4, r5, � Simulation � Simulation � Resources � Resources control Performance simulation � Platform � Utilisation of characteristics System is simulated using OSCI SystemC kernel 2.2 2. OS models resources 1. Workload propagate load models utilise from WL models resources with to the CPUs read, write, execute and/or service requests � OSCI SystemC 3. CPU models model execution time SystemC for data processing instructions and Workload / platform threads interfaces propagate reads and writes to other components Simulation results � Instrumentationof workload Service Service Subsystem Subsystem Calls Calls Average Average Min Min Max Max and / or platform models 450 µ s 450 µ s 1 µ s 1 µ s 480 µ s 480 µ s performance and power DMA transfer DMA transfer Storage Storage 26 26 � Utilisation probes Display subsystem load 40,00 % Decoding Decoding Image Image 25 25 4.8 ms 4.8 ms 4.8 ms 4.8 ms 4.8 ms 4.8 ms � Status probes, e.g. 35,00 % 30,00 % resource utilisation 25,00 % DMA transfer DMA transfer Display Display 25 25 1.4 ms 1.4 ms 1 ms 1 ms 1.6 ms 1.6 ms � Latencies Ut ilisa tio n % 20,00 % Busy � Timers, e.g. service 15,00 % 10,00 % processingtime 5,00 % 0,00 % � Counters, e.g. numberof display.gpp0 display.sram display.dma display.display_if display.bus display.net_if Component � Etc reads and writes � Visualisationwith VODKA
6 03/07/2012 Workload modeling Application control � Enables early simulation behavior � Improves simulation speed IDLE ShutDownApplicationReq() ShutDownApplicationReq() OpenApplicationReq() OpenApplicationReq() /^ShutDownApplicationCnf(); /^ShutDownApplicationCnf(); /^OpenApplicationCnf(); /^OpenApplicationCnf(); � Reduces modeling effort ESTABLISHCONNECTION [xp_connection_succ] [xp_connection_succ] /^ConnectionEstablishedInd(); /^ConnectionEstablishedInd(); set(T1(),now+40000000); set(T1(),now+40000000); = Workload model WAITING_EVENTS [xp_screenupdate_succ] [xp_screenupdate_succ] /^UpdateCompleteInd(); /^UpdateCompleteInd(); [xp_processtap_succ] [xp_processtap_succ] set(T1(),now+40000000); set(T1(),now+40000000); /^TouchScreenTapActionCnf(); /^TouchScreenTapActionCnf(); /^TouchScreenTapActionCnf(); /^TouchScreenTapActionCnf(); T1() T1() ToMWL ToMWL + + p1 p1 Composite structure diagram1 active class VNCInternetBrowser : {1/1} Application_Workload TouchScreenTapActionReq() TouchScreenTapActionReq() PROCESS_SCREEN_TAP UPDATE FromMWL FromMWL p1 p1 VNCCrl : VNCProcessControl p2 p2 p4 p4 p5 p5 p3 p3 FromNavWL FromNavWL FromDisWL FromDisWL FromMemWL FromMemWL FromConWL FromConWL Disassembly of section .init: ToNavWL ToNavWL ToConWL ToConWL p1 p1 p1 p1 +NavWL : Navigation_Workload +ConWL : Connection_Workload 00008000 <_init>: 8000: e1a0c00d mov ip, sp ToDisWL ToDisWL ToMemWL ToMemWL p1 p1 p1 p1 8004: e92ddff8 stmdb sp!, {r3, r4, r5, +DisWL : Display_Workload +MemWL : MemoryHandling_Workload Data 8008: e24cb004 sub fp, ip, #4 800c: eb000023 bl 80a0 <frame_dummy processing 8010: eb000c8c bl b248 <__do_global � Presents resource requirements 8014: e24bd028 sub sp, fp, #40 and memory 8018: e89d6ff0 ldmia sp, {r4, r5, r6, of applications access load 801c: e1a0f00e mov pc, lr Disassembly of section .text: � Platform independent 00008020 <__do_global_dtors_aux>: � Support tools (ABSINTH) 8020: e92d4030 stmdb sp!, {r4, r5,
7 03/07/2012 Platform capacity modeling � Model of both hardware and platform software components and interconnections � Abstract, transaction-level SystemC models � Platform, subsystem and component layers � Platform, subsystem and component layers � Computing, communication and storage resources � Role in ABSOLUT � Processes load primitives � Provides higher-level services � Consumes time (cycle-approximate) � Support tools and libraries (COGNAC, ALE)
8 03/07/2012 Performance simulation System is simulated using OSCI SystemC kernel 2.2 ApplicationWL Subsystem 2. OS models Load primitives, Service calls propagate load 1. Workload ProcessWL 1 OS model from WL models from WL models models utilise models utilise to the CPUs resources with read, ProcessWL 2 write, execute Processing unit Processing unit and/or service 1 N ProcessWL N requests 3. CPU models model execution time SystemC for data processing instructions and Workload / platform threads propagate reads and writes to other interfaces components
9 03/07/2012 Simulation results � Instrumentation of workload Service Service Subsystem Subsystem Calls Calls Average Average Min Min Max Max and / or platform models 450 µ s 450 µ s 1 µ s 1 µ s 480 µ s 480 µ s DMA transfer DMA transfer Storage Storage 26 26 performance and power probes Display subsystem load 40,00 % Decoding Decoding Image Image 25 25 4.8 ms 4.8 ms 4.8 ms 4.8 ms 4.8 ms 4.8 ms � Status probes, e.g. � Status probes, e.g. 35,00 % 30,00 % resource utilisation 25,00 % DMA transfer DMA transfer Display Display 25 25 1.4 ms 1.4 ms 1 ms 1 ms 1.6 ms 1.6 ms Utilisation% 20,00 % Busy � Timers, e.g. service 15,00 % 10,00 % processing time 5,00 % 0,00 % � Counters, e.g. number of display.gpp0 display.sram display.dma display.display_if display.bus display.net_if Component reads and writes � Visualisation tool (VODKA)
Recommend
More recommend