Skip to main content
Log in

An Iterative Algorithm for Hardware-Software Partitioning, Hardware Design Space Exploration and Scheduling

  • Published:
Design Automation for Embedded Systems Aims and scope Submit manuscript

Abstract

The paper proposes a novel heuristic technique for integrated hardware-software partitioning, hardware design space exploration and scheduling. The technique maps an application specified as a task graph on a heterogeneous architecture with an objective to minimize the latency of the task graph subject to the area constraint on the hardware coprocessor. The technique uses an iterative approach where the partitioner decides the processor mapping and HW design points of some tasks. The scheduler then simultaneously decides the processor mapping, HW design point and schedule time of the remaining tasks. There exists a tight coupling between the two design stages allowing them to produce superior quality designs in fewer iterations. The technique accounts for the time overheads due to inter-processor /intra-processor communication and shared memory access conflicts. It can therefore be used for both communication intensive and computation intensive applications. The technique also considers dynamic reconfiguration capability of the hardware coprocessor. The technique performs tradeoff analysis and maps hardware tasks to mutually exclusive temporal segments if this results in lower latency. The effectiveness of the technique is demonstrated by a case study of the JPEG image compression algorithm, comparison with an optimal ILP based approach and experimentation with synthetic graphs.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Bakshi, S., and Gajski, D. D. 1997. A scheduling and pipelining algorithm for hardware/software systems. Proceedings of 10th International Symposium on System Synthesis Antwerp, Belgium.

  2. Chatha, K. S., and Vemuri, R. 1998. Partitioning and pipelined scheduling of mixed HW-SW systems. Proceeding of 11th International Symposium on System Synthesis Hsinchu, Taiwan.

  3. Dick, R. P., and Jha, N. K. 1998. MOGAC: a multiobjective genetic algorithm for hardware-software cosynthesis of distributed embedded systems. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 17(10).

  4. Dave, B. P., Lakshminarayana, G., and Jha, N. K. 1999. COSYN: hardware-software cosynthesis of heterogeneous distributed embedded systems. IEEE Transactions on VLSI Systems 7(1).

  5. Ernst, R., Henkel, J., and Benner, T. 1994. Hardware-software cosynthesis for microcontrollers. IEEE Design and Test of Computers pp. 64–75.

  6. Gupta, R., and Micheli, G.D. 1993. Hardware-software cosynthesis for digital systems. IEEE Design and Test of Computers 10(3): 29–41.

    Google Scholar 

  7. Gokhale, M., and Marks, A. 1995. Automatic synthesis of parallel programs targeted to dynamically reconfigurable logic arrays. Proceedings of 5th International Workshop on Field-Programmable Logic and Applications Springer-Verlag. August/September.

  8. Hartenstein, R. W., Becker, J., and Kress, R. 1996. Two-level partitioning of image processing algorithms for the parallel map-oriented machine. Proceedings of 4th International Workshop on Hardware/Software Codesign Pittsburgh, PA. March.

  9. Kwok, Yu-K., and Ahmad, I. 1996. Dynamic critical-path scheduling: an effective technique for allocating task graphs to multiprocessors. IEEE Transactions on Parallel and Distributed Systems 7(5): 506–521.

    Google Scholar 

  10. Kalavade, A., and Lee, E.A. 1997. The extended partitioning problem: hardware/software mapping, scheduling and implementation-bin selection. Journal of Design Automation for Embedded Systems 2(2): 125–163.

    Google Scholar 

  11. Knudsen, P. V., and Madsen, J. 1996. PACE: a dynamic programming algorithm for hardware/software partitioning. Proceedings of Fourth International Workshop on Hardware/Software Codesign Pittsburgh, PA, March.

  12. Kaul, M., Vemuri, R., Govindarajan, S., and Ouaiss, I. 1999. An automated temporal partitioning and loop fission approach for FPGA based reconfigurable synthesis of DSP applications. Proceedings of IEEE/ACM Design Automation Conference (DAC'99) New Orleans, June.

  13. Maestre, R., Kurdahi, F. J., Bagerzadeh, N., Singh, H., Hermida, R., and Fernandez, M. 1999. Kernel scheduling in reconfigurable computing. Proceedings of Design, Automation and Test in Europe Conference Munich, Germany, March.

  14. Niemann, R., and Marwedel, P. 1996. Hardware/software partitioning using integer programming. Proceedings of ED & TC.

  15. Vasilko, M., and Ait-Boudaoud, D. 1995. Scheduling for dynamically reconfigurable FPGAs. Proceedings of International Workshop on Logic and Architecture Synthesis. IFIP TC10 WG10.5, Grenoble, France, December.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Chatha, K.S., Vemuri, R. An Iterative Algorithm for Hardware-Software Partitioning, Hardware Design Space Exploration and Scheduling. Design Automation for Embedded Systems 5, 281–293 (2000). https://doi.org/10.1023/A:1008954218909

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008954218909

Navigation