Hardware/software partitioning for multi-function systems

  • Authors:
  • Asawaree Kalavade;P. A. Subrahmanyam

  • Affiliations:
  • DSP and VLSI Systems Research Dept., Bell Labs, Holmdel, NJ;DSP and VLSI Systems Research Dept., Bell Labs, Holmdel, NJ

  • Venue:
  • ICCAD '97 Proceedings of the 1997 IEEE/ACM international conference on Computer-aided design
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

We are interested in optimizing the design of multi-function embedded systems that run a pre-specified set of applications, such as multi-standard audio/video codecs and multi-system phones. Such systems usually have stringent performance constraints and tend to have mixed hardware-software implementations. The current state of the art in the hardware/software codesign of such systems is to design for each application separately. This often leads to application-specific sub-optimal decisions and inconsistent mappings of common nodes in different applications. We use these as the guiding principles to formulate, as a codesign problem, the design and synthesis of an efficient hardware-software implementation for a multi-function embedded system. Our solution methodology is to first identify nodes that represent similar functionality across different applications. Such "common" nodes are characterized by several metrics. These metrics are quantified and used by a hardware/software partitioning tool to map common nodes to the same resource as far as possible. We demonstrate how this is achieved by modifying a traditional partitioning algorithm (GCLP) used to partition single applications. The overall result of the system-level partitioning process is (1) a hardware or software mapping and (2) a schedule for execution for each node within the application set. On an example set consisting of three video applications, we show that the solution obtained by the use of our method is 38% smaller than that obtained when each application is considered independently.