Skip to main content

Model-Based Programming for Multi-processor Platforms with TTool/DIPLODOCUS and OMC

  • Conference paper
  • First Online:
Book cover Model-Driven Engineering and Software Development (MODELSWARD 2018)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    In our DIPLODOCUS models, the number of data associated to I/O channels is expressed in terms of 32-bits samples.

References

  1. Schmidt, D.C.: Model-driven engineering. Computer 39, 25–31 (2006)

    Article  Google Scholar 

  2. Lee, E.: Model-based code generation is not a replacement for programming (2003). http://chess.eecs.berkeley.edu/pubs/621.html

  3. TTool (2017). http://ttool.telecom-paristech.fr

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. 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

    Chapter  Google Scholar 

  7. 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)

    Google Scholar 

  8. Ciccozzi, F., Cicchetti, A., Sjodin, M.: Full code generation from UML models for complex embedded systems. In: STEW (2012)

    Google Scholar 

  9. Bazydlo, G., Adamski, M., Stefanowicz, L.: Translation UML diagrams into Verilog. In: HSI, pp. 267–271 (2014)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. Xi, C., JianHua, L., Zucheng, Z., Yaohui, S.: Modeling SystemC design in UML and automatic code generation. In: ASP-DAC, pp. 932–935 (2005)

    Google Scholar 

  13. Tan, W.H., Thiagarajan, P.S., Wong, W.F., Zhu, Y., Pilakkat, S.K.: Synthesizable SystemC code from UML models (2004)

    Google Scholar 

  14. OMG: UML Profile for MARTE: Modeling and Analysis of Real-time Embedded Systems. http://www.omg.org/omgmarte/. Accessed Apr 2018

  15. Gamatie, A., et al.: A model driven design framework for high performance embedded systems (2008). http://hal.inria.fr/inria-00311115/en

  16. DaRTteam: Graphical Array Specification for Parallel and Distributed Computing (GASPARD2). http://www.gaspard2.org/. Accessed Apr 2018

  17. 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

  18. Mellor, S.J., Balcer, L.: Executable UML: A Foundation for Model-Driven Architecture. Addison Wesley (2002)

    Google Scholar 

  19. fUML. http://www.omg.org/spec/FUML/1.2.1/. Accessed Apr 2018

  20. OMG: Action Language for Foundational UML (ALF). http://www.omg.org/spec/ALF/. Accessed Apr 2018

  21. Labview: Labview communications system design. http://www.ni.com/labview-communications/. Accessed Apr 2018

  22. Mathworks. https://www.mathworks.com/solutions/model-based-design.html. Accessed Apr 2018

  23. 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

  24. 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

    Chapter  Google Scholar 

  25. Sheng, W., et al.: A compiler infrastructure for embedded heterogeneous MPSoCs. In: PMAM, pp. 1–10 (2013)

    Google Scholar 

  26. Kahn, G.: The semantics of a simple language for parallel programming. In: IFIP Congress, pp. 471–475 (1974)

    Google Scholar 

  27. Collette, T.: Key Technologies for Many-Core Architectures (2008). http://www.mpsoc-forum.org/previous/2008/slides/8-4 Collette.pdf

  28. 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)

    Google Scholar 

  29. Eclipse. http://www.eclipse.org. Accessed Apr 2018

  30. Torczon, L., Cooper, K.: Engineering a Compiler, 2nd edn. Morgan Kaufmann Publishers Inc., San Francisco (2007)

    MATH  Google Scholar 

  31. Gerstlauer, A., Gajski, D.D.: System-level abstraction semantics. In: ISSS, pp. 231–236 (2002)

    Google Scholar 

  32. IEEE: IEEE Std 1003.1, 2004 Edition. http://www.unix.org/version3/ieee_std.html. Accessed Apr 2018

  33. Snir, M., Otto, S., Huss-Lederman, S., Walker, D., Dongarra, J.: MPI-The Complete Reference: The MPI Core. MIT Press Cambridge, MA, USA (1998)

    Google Scholar 

  34. OpenMP: The OpenMP specification for parallel programming. http://www.openmp.org. Accessed Apr 2018

  35. Leupers, R., Sheng, W., Castrillon, J.: In: Handbook of Signal Processing Systems, pp. 1215–1257 (2010)

    Chapter  Google Scholar 

  36. Lee, E.A., Parks, T.M.: Dataflow process network. Proc. IEEE 83, 1235–1245 (1995)

    Google Scholar 

  37. TTool/DIPLODOCUS (2017). http://ttool.telecom-paristech.fr/diplodocus.html

  38. TTool/Avatar (2017). http://ttool.telecom-paristech.fr/avatar.html

  39. TTool/SysMLSec (2017). http://sysml-sec.telecom-paristech.fr

  40. 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)

    Article  Google Scholar 

  41. 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

    Chapter  Google Scholar 

  42. Knorreck, D.: UML-Based Design Space Exploration, Fast Simulation and Static Analysis. Ph.D. thesis, Telecom ParisTech (2011)

    Google Scholar 

  43. 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)

    Article  Google Scholar 

  44. Desnos, K., Pelcat, M., Nezan, J.F., Aridhi, S.: Distributed memory allocation technique for synchronous dataflow graphs. In: SiPS 2016 (2016)

    Google Scholar 

  45. Fabri, J.: Automatic Storage Optimization. Courant Institute of Mathematical Sciences, New York University, New York (1979)

    Google Scholar 

  46. 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

    Chapter  Google Scholar 

  47. Verizon: 5G specifications. http://www.5gtf.org/. Accessed Apr 2018

  48. Embb (2017). http://embb.telecom-paristech.fr/

  49. de Greef, E., Catthoor, F., de Man, H.: Array placement for storage size reduction in embedded multimedia systems. In: ASAP, pp. 66–75 (1997)

    Google Scholar 

  50. Desnos, K., Pelcat, M., Nezan, J., Aridhi, S.: On memory reuse between inputs and outputs of dataflow actors. ACM TECS 15, 30 (2016)

    Google Scholar 

  51. Xilinx: SDx Development Environment. https://www.xilinx.com/products/design-tools/all-programmable-abstractions.html. Accessed Apr 2018

  52. Seidewitz, E.: What models mean. IEEE Softw. 20, 26–32 (2003)

    Article  Google Scholar 

  53. Selic, B.: The pragmatics of model-driven development. IEEE Softw. 20, 19–25 (2003)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Andrea Enrici .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics