Hardware software partitioning of control data flow graph on system on programmable chip

A System On Programmable Chip (SOPC) is a circuit that integrates all components of an electronic system into a single chip. It may consist of memories, one or more microprocessors, interface devices, configurable logic blocks and other necessary components to achieve an intended function. In this paper, we propose a new hardware-software partitioning algorithm of control data flow graph for SOPC. The main aim of our algorithm is to find a best compromise between hardware and software implementation of operations in order to satisfy design constraints in terms of latency and hardware resources of the target application. Our algorithm has been evaluated on real hardware device. In fact, experimentations have been done using a real FPGA Virtex-5. Results have shown that our algorithm provides a better performing system with the lowest possible cost compared to existing approaches.

[1]  Petru Eles,et al.  System Level Hardware/Software Partitioning Based on Simulated Annealing and Tabu Search , 1997, Des. Autom. Embed. Syst..

[2]  Li-Wei Kang,et al.  An error resilient coding scheme for H.264 video transmission based on data embedding , 2004, ICASSP.

[3]  Mohamed Abid,et al.  An efficient list scheduling algorithm for time placement problem , 2007, Comput. Electr. Eng..

[4]  Ranga Vemuri,et al.  Hardware-software partitioning and pipelined scheduling of transformative applications , 2002, IEEE Trans. Very Large Scale Integr. Syst..

[5]  Theerayod Wiangtong,et al.  Comparing Three Heuristic Search Methods for Functional Partitioning in Hardware–Software Codesign , 2002, Des. Autom. Embed. Syst..

[6]  Nikil D. Dutt,et al.  Integrating Physical Constraints in HW-SW Partitioning for Architectures With Partial Dynamic Reconfiguration , 2006, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[7]  Giovanni De Micheli,et al.  Hardware-software cosynthesis for digital systems , 1993, IEEE Design & Test of Computers.

[8]  Yu Jiang,et al.  Uncertain Model and Algorithm for Hardware/Software Partitioning , 2012, 2012 IEEE Computer Society Annual Symposium on VLSI.

[9]  Ji-Yang Qi Application of improved simulated annealing algorithm in facility layout design , 2010, Proceedings of the 29th Chinese Control Conference.

[10]  Wu Jigang,et al.  Efficient Algorithm for Hardware/Software Partitioning and Scheduling on MPSoC , 2013, J. Comput..

[11]  Bharadwaj Veeravalli,et al.  Aging-aware hardware-software task partitioning for reliable reconfigurable multiprocessor systems , 2013, 2013 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES).

[12]  Daniel D. Gajski,et al.  Clustering for improved system-level functional partitioning , 1995 .

[13]  Rui Chen,et al.  Efficient Parallel Intra-prediction Mode Selection Scheme for 4x4 Blocks in H.264 , 2011, 2011 Fourth International Conference on Intelligent Computation Technology and Automation.

[14]  Wu Jigang,et al.  Low-complex dynamic programming algorithm for hardware/software partitioning , 2006, Inf. Process. Lett..

[15]  Jan Madsen,et al.  Hardware resource allocation for hardware/software partitioning in the LYCOS system , 1998, Proceedings Design, Automation and Test in Europe.

[16]  Juan Carlos López,et al.  On the hardware-software partitioning problem: System modeling and partitioning techniques , 2003, TODE.

[17]  Jörg Henkel,et al.  An approach to automated hardware/software partitioning using a flexible granularity that is driven by high-level estimation techniques , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[18]  Krzysztof Kuchcinski,et al.  An algorithm for partitioning of application specific systems , 1993, 1993 European Conference on Design Automation with the European Event in ASIC Design.

[19]  Abdellatif Mtibaa,et al.  A partitioning methodology that optimizes the communication cost for reconfigurable computing systems , 2012, International Journal of Automation and Computing.

[20]  Abdellatif Mtibaa,et al.  Temporal partitioning of data flow graph for dynamically reconfigurable architecture , 2011, J. Syst. Archit..

[21]  Jörg Henkel,et al.  A hardware/software partitioner using a dynamically determined granularity , 1997, DAC.

[22]  Ranga Vemuri,et al.  MAGELLAN: multiway hardware-software partitioning and scheduling for latency minimization of hierarchical control-dataflow task graphs , 2001, Ninth International Symposium on Hardware/Software Codesign. CODES 2001 (IEEE Cat. No.01TH8571).

[23]  Cong Wang,et al.  HARDWARE/SOFTWARE PARTITIONING ALGORITHM BASED ON THE COMBINATION OF GENETIC ALGORITHM AND TABU SEARCH , 2014 .

[24]  Li Luo,et al.  Hardware/Software Partitioning for Heterogeneous Multicore SoC Using Genetic Algorithm , 2012, 2012 Second International Conference on Intelligent System Design and Engineering Application.

[25]  Wayne H. Wolf A Decade of Hardware/Software Codesign , 2003, Computer.