Debugging HW/SW interface for MPSoC: video encoder system design case study

  • Authors:
  • Mohamed-Wassim Youssef;Sungjoo Yoo;Arif Sasongko;Yanick Paviot;Ahmed A. Jerraya

  • Affiliations:
  • System Level Synthesis Group, Grenoble, France;System Level Synthesis Group, Grenoble, France;System Level Synthesis Group, Grenoble, France;System Level Synthesis Group, Grenoble, France;System Level Synthesis Group, Grenoble, France

  • Venue:
  • Proceedings of the 41st annual Design Automation Conference
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper reports a case study of multiprocessor SoC (MPSoC) design of a complex video encoder, namely OpenDivX. OpenDivX is a popular version of MPEG4. It requires massive computation resources and deals with complex data structures to represent video streams. In this study, the initial specification is given in sequential C code that had to be parallelized to be executed on four different processors. High level programming model, namely Message Passing Interface (MPI) was used to enable inter-task communication among parallelized C code. A four processor hardware prototyping platform was used to debug the parallelized software before final SoC hardware is ready. The targeting of abstract parallel code using MPI to the multiprocessor architecture required the design of an additional hardware-dependent software layer to refine the abstract programming model. The design was made by a team work of three types of designer: application software, hardware-dependent software and hardware platform designers. The collaboration was necessary to master the whole flow from the specification to the platform.The study showed that HW/SW interface debug was the most time-consuming step. This is identified as a potential killer for application-specific MPSoC design. To further investigate the ways to accelerate the HW/SW interface debug, we analyzed bugs found in the case study and the available debug environments. Finally, we address a debug strategy that exploits efficiently existing debug environments to reduce the time for HW/SW interface debug.