Hardware Abstraction Layer

Introduction and Overview


Embedded software is playing an increasing role in heterogeneous Multi-Processor System-on-Chip (MPSoC) architectures due to its high complexity. In order to reduce the long and fastidious design process, embedded software needs to be reused over several MPSoCs. Thus, software portability becomes a key challenge.

In this chapter, we present a clear separation between the hardware independent and the hardware dependent software layers, through adopting a multi-layered organization of the software stack. We introduce a component based software design flow, which allows the gradual generation and validation of the various software layers to obtain the final software stack. Then, by changing the Hardware Abstraction Layer (HAL), the software stack can be executed on different MPSoC architectures. The HAL represents the lowest software layer, which totally depends on the target architecture. The HAL abstraction, through the use of well defined HAL APIs, makes easier the software portability and enables flexibility. The paper shows that the HAL APIs allow early software development before the hardware architecture is available, but also architecture exploration. The proposed methodology is applied to design the software stack for the Motion JPEG multimedia application and to execute it on diverse processors by changing the HAL and preserving the HAL APIs.


MPSoC Software Design Software Validation HAL HAL Abstraction 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [A386]
  2. [ARM]
  3. [BYJ04]
    A. Bouchima, S. Yoo, and A.A. Jerraya. Fast and accurate timed execution of high level embedded software using HW/SW interface simulation model. In Proceedings of ASP–DAC 2004, January 2004, Yokohama, Japan, 2004. Google Scholar
  4. [CYC+05]
    Y. Cho, S. Yoo, K. Choi, N.E. Zergainoh, and A.A. Jerraya. Scheduler implementation in MPSoC design. In Proceedings of ASP–DAC 2005, 18–21 January 2005, Shanghai, China, pages 151–156, 2005. Google Scholar
  5. [eCos]
  6. [EPTP07]
    C. Erbes, A.D. Pimentel, M. Thompson, and S. Polstra. A framework for system-level modeling and simulation of embedded systems architecture. EURASIP Journal on Embedded Systems, Volume 2007, Article ID 82123, June 2007. Google Scholar
  7. [FRTOS]
  8. [GLMS02]
    T. Groetker, S. Liao, G. Martin, and S. Swan. System Design with SystemC. Kluwer Academic, Dordrecht, 2002. Google Scholar
  9. [GPY+07]
    X. Guerin, K. Popovici, W. Youssef, F. Rousseau, and A. Jerraya. Flexible application software generation for heterogeneous multi-processor system-on-chip. In Proceedings of COMPSAC 2007, 23–27 July 2007, Beijing, China, 2007. Google Scholar
  10. [HAL]
  11. [Han06 +]
    S.I. Han et al. Buffer memory optimization for video codec application modeled in simulink. In Proceedings of DAC 2006, San Francisco, USA, pages 689–694. IEEE Press, New York, 2006. CrossRefGoogle Scholar
  12. [HYL+06]
    S. Hong, S. Yoo, S. Lee, S. Lee, H.J. Nam, B.S. Yoo, J. Hwang, D. Song, J. Kim, J. Kim, H. Jin, K. Choi, J.T. Kong, and S. Eo. Creation and utilization of a virtual platform for embedded software optimization: An industrial case study. In Proceedings of CODES+ISSS 2006, Seoul, Korea, 2006. Google Scholar
  13. [JBP06]
    A. Jerraya, A. Bouchhima, and F. Petrot. Programming models and HW–SW interfaces abstraction for multi-processor SoC. In Proceedings of DAC 2006, San Francisco, USA, pages 280–285. IEEE Press, New York, 2006. CrossRefGoogle Scholar
  14. [JW05]
    A. Jerraya and W. Wolf. Hardware–software interface codesign for embedded systems. Computer, 38(2):63–69, 2005. CrossRefGoogle Scholar
  15. [KSW+00]
    E.A. de Kock, W.J.M. Smits, P. van der Wolf, J.Y. Brunel, W.M. Kruijtzer, P. Lieverse, K.A. Vissers, and G. Essink. YAPI: application modeling for signal processing systems. In Proceedings of DAC 2000. IEEE Press, New York, 2000. Google Scholar
  16. [LOS]
  17. [Math]
    The MathWorks.
  18. [MPI]
  19. [mVD]
    magicV VLIW DSP.
  20. [newl]
  21. [NS]
  22. [NYBJ02]
    G. Nicolescu, S. Yoo, A. Bouchhima, and A.A. Jerraya. Validation in a component-based design flow for multicore SoCs. In Proceedings of ISSS’02, 2–4 October 2002, Kyoto, Japan, 2002. Google Scholar
  23. [PGR+07]
    K. Popovici, X. Guerin, F. Rousseau, P.S. Paolucci, and A. Jerraya. Efficient software development platforms for multimedia applications at different abstraction levels. In Proceedings of IEEE RSP 2007, May 2007, Porto Alegre, Brazil, pages 113–122, 2007. Google Scholar
  24. [PJ07]
    K. Popovici and A. Jerraya. Simulink based hardware-software codesign flow for heterogeneous MPSoC. In Proceedings of SCSC 2007, 15–18 July 2007, San Diego, USA, pages 497–504, 2007. Google Scholar
  25. [Pos03]
    F. Pospiech. Hardware dependent software (HdS). Multiprocessor SoC aspects—An introduction. In Proceedings of MPSoC 2003, 7–11 July 2003, Chamonix, France, 2003. Google Scholar
  26. [Row94]
    J.A. Rowson. Hardware/software cosimulation. In Proceedings of DAC 1994, San Diego, USA, pages 439–440. IEEE Press, New York, 1994. Google Scholar
  27. [RTL]
  28. [SG00]
    L. Semeria and A. Ghosh. Methodology for hardware/software co-verification in C/C++. In Proceedings of ASPDAC 2000, Yokohama, Japan, pages 405–408, 2000. Google Scholar
  29. [Tan95]
    Andrew S. Tanenbaum. Distributed Operating Systems. Prentice Hall, Englewood Cliffs, 1995. Google Scholar
  30. [Tur05]
    J. Turley. Survey says: Software tools more important than chips. Embedded Systems Design Journal, 2005. Google Scholar
  31. [TW97]
    Andrew S. Tanenbaum and Albert S. Woodhull. Operating Systems: Design and Implementation. Prentice Hall, Englewood Cliffs, 1997. Google Scholar
  32. [uIT]
  33. [VBL05]
    N. Ventroux, F. Blanc, and D. Lavenier. A low complex scheduling algorithm for multi-processor system-on-chip. In Proceedings of Parallel and Distributed Computing and Networks, 15–17 February 2005, Innsbruck, Austria, 2005. Google Scholar
  34. [vdW04+]
    P. van der Wolf et al. Design and programming of embedded multiprocessors: an interface-centric approach. In Proceedings of CODES+ISSS 2004, Stockholm, Sweden, pages 206–217, 2004. Google Scholar
  35. [VxW]
  36. [Wal91]
    G.K. Wallace. The JPEG still picture compression standard. Communications of the ACM, Special Issue on Digital Multimedia Systems, 34(4):30–44, 1991. Google Scholar
  37. [WCE]
  38. [Wol06]
    W. Wolf. High Performance Embedded Computing. Morgan Kaufmann, San Mateo, 2006. MATHGoogle Scholar
  39. [Xte]
  40. [YJ03]
    S. Yoo and A. Jerraya. Introduction to hardware abstraction layers for SoC. In Proceedings of DATE 2003, 3–7 March 2003, Munich, Germany, pages 336–337, 2003. Google Scholar
  41. [YYS+04]
    M.W. Youssef, S. Yoo, A. Sasongko, Y. Paviot, and A. Jerraya. Debugging HW/SW interface for MPSoC: Video encoder system design case study. In Proceedings of DAC 2004, 7–11 June 2004, San Diego, USA, pages 908–913. IEEE Press, New York, 2004. CrossRefGoogle Scholar

Copyright information

© Springer Science + Business Media B.V. 2009

Authors and Affiliations

  1. 1.TIMA LaboratoryGrenobleFrance
  2. 2.CEA-LETIMINATECGrenobleFrance

Personalised recommendations