Abstract
The complexity of heterogeneous Multi-Processor Systems-on-Chip stretches the limits of software development solutions based on sequential languages such as C/C++. While these are still the most widely used languages in practice, model-based solutions appear to be an efficient alternative. However, the optimized compilation of models for multi-processor systems still presents many open research problems. Among others, static data-flow analyses for models require the adaptation of traditional algorithms used in program analysis (iterative and worklist algorithms). These algorithms operate on Control-Flow Graphs with a unique start node (i.e., a node without predecessors) and assume that every basic block is reachable from this start node.
In this paper, we present a novel combination of the well-known iterative and worklist algorithms that examines a Control-Flow Graph where basic blocks can be reached by paths that originate from different start states. We apply this solution to functional views of signal and image processing models denoted with UML Activity and SysML Block diagrams. We demonstrate its effectiveness on interval analysis and show that significant reductions in the number of visits of the models’ control-flow graphs can be achieved.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
By the term task, we denote the most coarse-grain unit of work that the programming model of an execution unit in a target MPSoC platform offers to the programmer. In the literature, the term task can be ambiguous and alternatives include process, light-weight process, thread (for execution), step, request, or query (for work). For instance, given a general-purpose CPU equipped with an Operating System (OS), a task is equivalent to an OS process. Given a Digital Signal Processor and its software stack, operations such as Fast-Fourier Transforms, signal modulations can run as tasks.
- 2.
In the context of our work, C/C++ are the reference programming languages with which signal and image processing applications for MPSoCs are developed [20].
- 3.
We always imply forward analysis. Predecessor edges must be considered in the case of backward analysis.
References
Khronos OpenCL: the open standard for parallel programming of heterogeneous systems. https://www.khronos.org/opencl
MathWorks Simulink. https://www.mathworks.com/products/simulink
Message Passing Interface (MPI). https://www.mpi-forum.org/
nVidia CUDA: General-purpose parallel computing architecture. https://www.nvidia.com/cuda
OpenMP: API specification for parallel programming. https://www.openmp.org/
Spectrum and Energy efficiency through multi-band Cognitive Radio: D6.3. Report on the implementation of selected algorithms. https://cordis.europa.eu/project/rcn/93076/reporting/fr
The Go programming language. https://golang.org/
Apvrille, L., Muhammad, W., Ameur-Boulifa, R., Coudert, S., Pacalet, R.: A UML-based environment for system design space exploration. In: ICECS, pp. 1272–1275 (2006)
Atkinson, D.C., Griswold, W.G.: Implementation techniques for efficient data-flow analysis of large programs. In: ICSM, pp. 52–61 (2001)
Baldomero, J.: Message passing under MATLAB. In: HPC, pp. 73–82 (2001)
Beyer, D., Gulwani, S., Schmidt, D.A.: Combining model checking and data-flow analysis. In: Clarke, E., Henzinger, T., Veith, H., Bloem, R. (eds.) Handbook of Model Checking, pp. 493–540. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-10575-8_16
Bodden, E., Pun, V.K.I., Steffen, M., Stolz, V., Wickert, A.: Information flow analysis for go. In: ISOLA, pp. 431–445 (2016)
Briand, L.C., Labiche, Y., Lin, Q.: Improving statechart testing criteria using data flow information. In: ISSRE, pp. 104–114 (2005)
Charfi, A., Mraidha, C., Boulet, P.: An optimized compilation of UML state machines. In: ISORC, pp. 172–179 (2012)
Charfi, A., Mraidha, C., Gérard, S., Terrier, F., Boulet, P.: Toward optimized code generation through model-based optimization. In: DATE, pp. 1313–1316 (2010)
Checko, A., et al.: Cloud RAN for mobile networks - a technology overview. IEEE Commun. Surv. Tutor. 17(1), 405–426 (2015)
Desnos, K., Pelcat, M., Nezan, J.F., Aridhi, S.: Distributed memory allocation technique for synchronous dataflow graphs. In: SiPS 2016 (2016)
Donovan, A., Kernighan, B.: The Go Programming Language. Addison-Wesley, Boston (2015)
Eclipse CDT. http://www.eclipse.org/cdt/
EE Times: Embedded Software Stuck at C. Technical report, November 2007
Enrici, A., Apvrille, L., Pacalet, R.: A UML model-driven approach to efficiently allocate complex communication schemes. In: Dingel, J., Schulte, W., Ramos, I., Abrahão, S., Insfran, E. (eds.) MODELS 2014. LNCS, vol. 8767, pp. 370–385. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-11653-2_23
Enrici, A., Apvrille, L., Pacalet, R.: Efficient data-flow analysis of UML/SysML diagrams for optimized model compilation of hardware-software systems. In: MODELSWARD, pp. 86–97 (2019)
Garousi, V., Briand, L.C., Labiche, Y.: Control flow analysis of UML 2.0 sequence diagrams. In: Hartman, A., Kreische, D. (eds.) ECMDA-FA 2005. LNCS, vol. 3748, pp. 160–174. Springer, Heidelberg (2005). https://doi.org/10.1007/11581741_13
Hoare, C.: Communicating sequential processes. Communun. ACM 21(8), 666–677 (1978)
Jhala, R., Majumdar, R.: Interprocedural analysis of asynchronous programs. In: POPL, pp. 339–350 (2007)
Jones, G., Goldsmith, M.: Programming in Occam2. Prentice-Hall International, Upper Saddle River (1988)
Kahn, G.: The semantics of a simple language for parallel programming. In: IFIP Congress, pp. 471–475 (1974)
Kepner, J.: MatlabMPI. J. Parallel Distrib. Comput. 64(8), 997–1005 (2004)
Kim, Y.G., Hong, H.S., Bae, D.H., Cha, S.D.: Test cases generation from UML state diagrams. IEE Proc.-Softw. 146(4), 187–192 (1999)
Kwon, S., Kim, Y., Jeun, W., Ha, S., Paek, Y.: A retargetable parallel programming framework for MPSoC. TODAES 13(39), 39:1–39:18 (2008)
Lee, E.A., Parks, T.M.: Dataflow process network. Proc. IEEE 83(5), 1235–1245 (1995)
Leupers, R., Aguilar, M.A., Eusse, J.F., Castrillon, J., Sheng, W.: MAPS: a software development environment for embedded multicore applications. In: Ha, S., Teich, J. (eds.) Handbook of Hardware/Software Codesign, pp. 917–949. Springer, Dordrecht (2017). https://doi.org/10.1007/978-94-017-7267-9_2
Mellor, S.J., Balcer, M.: Executable UML: A Foundation for Model-Driven Architectures. Addison-Wesley Longman Publishing Co., Inc., Boston (2002)
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Heidelberg (2010)
Park, H., Oh, H., Ha, S.: Multiprocessor SoC design methods and tools. IEEE Sig. Process. Mag. 26(6), 72–79 (2009)
Reps, T., Horwitz, S., Sagiv, M.: Precise interprocedural dataflow analysis via graph reachability. In: POPL, pp. 49–61 (1995)
Saad, C., Bauer, B.: Data-flow based model analysis and its applications. In: Moreira, A., Schätz, B., Gray, J., Vallecillo, A., Clarke, P. (eds.) MODELS 2013. LNCS, vol. 8107, pp. 707–723. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-41533-3_43
Schmidt, D.C.: Model-driven engineering. IEEE Comput. 39(2), 25–31 (2006)
Selic, B.: The pragmatics of model-driven development. IEEE Softw. 20(5), 19–25 (2003)
Torczon, L., Cooper, K.: Engineering a Compiler, 2nd edn. Morgan Kaufmann Publishers Inc., San Francisco (2007)
TTool (2006). http://ttool.telecom-paristech.fr
TTool/DIPLODOCUS (2006). http://ttool.telecom-paristech.fr/diplodocus.html
VERIMAG: IF: Intermediate Format and Verification Tool set (2018). http://www-verimag.imag.fr/article58.html?lang=en
Waheed, T., Iqbal, M.Z.Z., Malik, Z.I.: Data flow analysis of UML action semantics for executable models. In: Schieferdecker, I., Hartman, A. (eds.) ECMDA-FA 2008. LNCS, vol. 5095, pp. 79–93. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-69100-6_6
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Enrici, A., Apvrille, L., Pacalet, R., Pham, M.H. (2020). Static Data-Flow Analysis of UML/SysML Functional Views for Signal and Image Processing Applications. In: Hammoudi, S., Pires, L., Selić, B. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2019. Communications in Computer and Information Science, vol 1161. Springer, Cham. https://doi.org/10.1007/978-3-030-37873-8_5
Download citation
DOI: https://doi.org/10.1007/978-3-030-37873-8_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-37872-1
Online ISBN: 978-3-030-37873-8
eBook Packages: Computer ScienceComputer Science (R0)