Abstract
The complexity of today’s multi-processor architectures raises the need to increase the level of abstraction of software development paradigms above third-generation programming languages (e.g., C/C++). Code generation from model-based specifications is considered as a promising approach to increase the productivity and quality of software development, with respect to traditional paradigms where code is used as the main artifact to develop software. In this context, powerful and robust tools are needed in order to accomplish the transition from code-based programming to model-based programming. In this paper we propose a novel approach and tools where system-level models are compiled into standard C code while optimizing the system’s memory footprint. We show the effectiveness of our approach with the model-based programming of UML/SysML diagrams for a 5G decoder. From the compiled C code, we generate both a software implementation for a Digital Signal Processor platform and a hardware-software implementation for a platform based on hardware Intellectual Property (IP) blocks. Our optimizations achieve a memory footprint reduction of 80.07% and 88.93%, respectively.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
In our DIPLODOCUS models, the number of data associated to I/O channels is expressed in terms of 32-bits samples.
References
Schmidt, D.C.: Model-driven engineering. Computer 39, 25–31 (2006)
Lee, E.: Model-based code generation is not a replacement for programming (2003). http://chess.eecs.berkeley.edu/pubs/621.html
TTool (2017). http://ttool.telecom-paristech.fr
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)
Enrici, A., Lallet, J., Latif, I., Apvrille, L., Pacalet, R., Canuel, A.: A model compilation approach for optimized implementations of signal-processing systems. In: Modelsward, pp. 25–35 (2018)
Vanderperren, Y., Mueller, W., He, D., Mischkalla, F., Dehaene, W.: Extending UML for electronic systems design: a code generation perspective. In: Nicolescu, G., O’Connor, I., Piguet, C. (eds.) Design Technology for Heterogeneous Embedded Systems, pp. 13–39. Springer, Dordrecht (2012). https://doi.org/10.1007/978-94-007-1125-9_2
Nicolas, A., Penil, P., Posadas, H., Villar, E.: Automatic synthesis over multiple APIs from UML/MARTE models for easy platform mapping and reuse. In: Euromicro DSD, pp. 443–450 (2014)
Ciccozzi, F., Cicchetti, A., Sjodin, M.: Full code generation from UML models for complex embedded systems. In: STEW (2012)
Bazydlo, G., Adamski, M., Stefanowicz, L.: Translation UML diagrams into Verilog. In: HSI, pp. 267–271 (2014)
Moreira, T.G., Wehrmeister, M.A., Pereira, C.E., Petin, G.F., Levrat, E.: Automatic code generation for embedded systems: from UML specifications to VHDL code. In: INDIN, pp. 1085–1090 (2010)
Mischkalla, F., He, D., Mueller, W.: Closing the gap between UML-based modeling, simulation and synthesis of combined HW/SW designs. In: DATE, pp. 1201–1206 (2010)
Xi, C., JianHua, L., Zucheng, Z., Yaohui, S.: Modeling SystemC design in UML and automatic code generation. In: ASP-DAC, pp. 932–935 (2005)
Tan, W.H., Thiagarajan, P.S., Wong, W.F., Zhu, Y., Pilakkat, S.K.: Synthesizable SystemC code from UML models (2004)
OMG: UML Profile for MARTE: Modeling and Analysis of Real-time Embedded Systems. http://www.omg.org/omgmarte/. Accessed Apr 2018
Gamatie, A., et al.: A model driven design framework for high performance embedded systems (2008). http://hal.inria.fr/inria-00311115/en
DaRTteam: Graphical Array Specification for Parallel and Distributed Computing (GASPARD2). http://www.gaspard2.org/. Accessed Apr 2018
Mellor, S.J., Balcer, M.J.: Executable and translatable UML. http://www.omg.org/news/meetings/workshops/UML_2003_Manual/Tutorial4-Balcer. Accessed Apr 2018
Mellor, S.J., Balcer, L.: Executable UML: A Foundation for Model-Driven Architecture. Addison Wesley (2002)
fUML. http://www.omg.org/spec/FUML/1.2.1/. Accessed Apr 2018
OMG: Action Language for Foundational UML (ALF). http://www.omg.org/spec/ALF/. Accessed Apr 2018
Labview: Labview communications system design. http://www.ni.com/labview-communications/. Accessed Apr 2018
Mathworks. https://www.mathworks.com/solutions/model-based-design.html. Accessed Apr 2018
Beemster, M., Sugiyama, Y.: Embedded C for high performance DSP programming with the CoSy compiler development system. http://www.jnovel.co.jp/content/files/pdf/pr/2005/EmbeddedCv2.pdf. Accessed Apr 2018
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
Sheng, W., et al.: A compiler infrastructure for embedded heterogeneous MPSoCs. In: PMAM, pp. 1–10 (2013)
Kahn, G.: The semantics of a simple language for parallel programming. In: IFIP Congress, pp. 471–475 (1974)
Collette, T.: Key Technologies for Many-Core Architectures (2008). http://www.mpsoc-forum.org/previous/2008/slides/8-4 Collette.pdf
Gerstlauer, A., Haubelt, C., Pimentel, A.D., Stefanov, T.P., Gajski, D.D., Teich, J.: Electronic system-level synthesis methodologies. IEEE TCAD 28, 1517–1530 (2009)
Eclipse. http://www.eclipse.org. Accessed Apr 2018
Torczon, L., Cooper, K.: Engineering a Compiler, 2nd edn. Morgan Kaufmann Publishers Inc., San Francisco (2007)
Gerstlauer, A., Gajski, D.D.: System-level abstraction semantics. In: ISSS, pp. 231–236 (2002)
IEEE: IEEE Std 1003.1, 2004 Edition. http://www.unix.org/version3/ieee_std.html. Accessed Apr 2018
Snir, M., Otto, S., Huss-Lederman, S., Walker, D., Dongarra, J.: MPI-The Complete Reference: The MPI Core. MIT Press Cambridge, MA, USA (1998)
OpenMP: The OpenMP specification for parallel programming. http://www.openmp.org. Accessed Apr 2018
Leupers, R., Sheng, W., Castrillon, J.: In: Handbook of Signal Processing Systems, pp. 1215–1257 (2010)
Lee, E.A., Parks, T.M.: Dataflow process network. Proc. IEEE 83, 1235–1245 (1995)
TTool/DIPLODOCUS (2017). http://ttool.telecom-paristech.fr/diplodocus.html
TTool/Avatar (2017). http://ttool.telecom-paristech.fr/avatar.html
TTool/SysMLSec (2017). http://sysml-sec.telecom-paristech.fr
Enrici, A., Apvrille, L., Pacalet, R.: A model-driven engineering methodology to design parallel and distributed embedded systems. ACM TODAES 22, 34:1–34:25 (2017)
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
Knorreck, D.: UML-Based Design Space Exploration, Fast Simulation and Static Analysis. Ph.D. thesis, Telecom ParisTech (2011)
Desnos, K., Pelcat, M., Nezan, J., Aridhi, S.: Memory analysis and optimized allocation of dataflow applications on shared-memory MPSoCs. J. VLSI Sig. Proc. Syst. Signal Image Video Tech. 80, 1–19 (2015)
Desnos, K., Pelcat, M., Nezan, J.F., Aridhi, S.: Distributed memory allocation technique for synchronous dataflow graphs. In: SiPS 2016 (2016)
Fabri, J.: Automatic Storage Optimization. Courant Institute of Mathematical Sciences, New York University, New York (1979)
Floch, A., et al.: Model-driven engineering and optimizing compilers: a bridge too far? In: Whittle, J., Clark, T., Kühne, T. (eds.) MODELS 2011. LNCS, vol. 6981, pp. 608–622. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-24485-8_45
Verizon: 5G specifications. http://www.5gtf.org/. Accessed Apr 2018
Embb (2017). http://embb.telecom-paristech.fr/
de Greef, E., Catthoor, F., de Man, H.: Array placement for storage size reduction in embedded multimedia systems. In: ASAP, pp. 66–75 (1997)
Desnos, K., Pelcat, M., Nezan, J., Aridhi, S.: On memory reuse between inputs and outputs of dataflow actors. ACM TECS 15, 30 (2016)
Xilinx: SDx Development Environment. https://www.xilinx.com/products/design-tools/all-programmable-abstractions.html. Accessed Apr 2018
Seidewitz, E.: What models mean. IEEE Softw. 20, 26–32 (2003)
Selic, B.: The pragmatics of model-driven development. IEEE Softw. 20, 19–25 (2003)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Enrici, A., Lallet, J., Pacalet, R., Apvrille, L., Desnos, K., Latif, I. (2019). Model-Based Programming for Multi-processor Platforms with TTool/DIPLODOCUS and OMC. In: Hammoudi, S., Pires, L., Selic, B. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2018. Communications in Computer and Information Science, vol 991. Springer, Cham. https://doi.org/10.1007/978-3-030-11030-7_4
Download citation
DOI: https://doi.org/10.1007/978-3-030-11030-7_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-11029-1
Online ISBN: 978-3-030-11030-7
eBook Packages: Computer ScienceComputer Science (R0)