Showing posts with label Hardware / Software Partitioning. Show all posts
Showing posts with label Hardware / Software Partitioning. Show all posts

Sunday, July 05, 2009

Hardware / Software Partitioning Decision

Most important part of Hardware / Software partitioning scheme is to determine which part of software needs to be moved to FPGA. This problem becomes complex in a system with multiple applications running at a time. Kalavade et al has given a set of thumb rules to decide whether a given node can be moved to hardware or not. Here they are:
  • Repetition of a node: How many times a given type of node occurs across all applications? More this number, better to implement this in hardware.
  • Performance-area ratio of a node: What is the performance gain, if a given node is implemented in hardware, in terms of area penalty in the implementation? Higher the ratio, better to move to hardware.
  • Urgency of the node: How many times goes the given node appear in the critical path of applications? More this number, better would be the overall performance if this is moved to the hardware
  • Concurrency of the node: How many concurrent instances of the given node can potentially run at a time (on an average)? Hardware is always good at doing things in parallel.
By considering these four factors, we can decide the multiple nodes that would qualify for hardware implementation.