Prototyping Dynamic Task Migration on Heterogeneous Reconfigurable Systems

Reconfigurable devices, such as FPGAs, have been known to offer an excellent performance and a high efficiency in computation. Due to their improving capacity and more efficient architecture recently, there are growing interests in using FPGAs as coprocessors in reconfigurable systems. However, FPGAs still lack the support in dynamic scheduling, e.g. to manage multiple tasks or users in a system. Performing runtime task relocation or load distribution is not possible unless the reconfigurable system supports dynamic task migration. Such ability requires the automation of configuration and context management in reconfigurable architecture, which is not available in the existing solutions. In this paper, we propose a framework for prototyping dynamic task migration between heterogeneous FPGAs. A task running on one FPGA can be suspended and resumed on another FPGA with different architecture. The extraction and restoration of FPGA registers and memory values are possible due to the task-specific extraction mechanism provided by the tasks. The proposed framework exploits a high-performance embedded processor tightly-coupled to an FPGA to automatically manage the configuration and context. It utilizes two popular heterogeneous reconfigurable systems in the implementation, Xilinx Zynq ZC706 and Altera Arria V SoC. Tests are performed using graphical and non-graphical benchmark applications and performance results are presented.

[1]  Frank Vahid,et al.  Warp Processors , 2006, ACM Trans. Design Autom. Electr. Syst..

[2]  Hiroyuki Tomiyama,et al.  CHStone: A benchmark program suite for practical C-based high-level synthesis , 2008, 2008 IEEE International Symposium on Circuits and Systems.

[3]  Rainer G. Spallek,et al.  Migration of long-running Tasks between Reconfigurable Resources using Virtualization , 2017, CARN.

[4]  Théotime Bollengier,et al.  Extended overlay architectures for heterogeneous FPGA cluster management , 2017, J. Syst. Archit..

[5]  Frank Vahid,et al.  Warp Processors , 2004, ACM Trans. Design Autom. Electr. Syst..

[6]  Ann Gordon-Ross,et al.  On-chip Context Save and Restore of Hardware Tasks on Partially Reconfigurable FPGAs , 2013, 2013 IEEE 21st Annual International Symposium on Field-Programmable Custom Computing Machines.

[7]  Adrien Prost-Boucle,et al.  Fast and standalone Design Space Exploration for High-Level Synthesis under resource constraints , 2014, J. Syst. Archit..

[8]  Habib Smei,et al.  Fault-Tolerant in Embedded Systems (MPSoC): Performance estimation and dynamic migration tasks , 2016, 2016 11th International Design & Test Symposium (IDT).

[9]  Gerald Estrin,et al.  Organization of Computer Systems-the Fixed Plus Variable Structure Computer , 1899 .

[10]  Christophe Bobda,et al.  Architecture Virtualization for Run-Time Hardware Multithreading on Field Programmable Gate Arrays , 2015, ARC.

[11]  Christian Haubelt,et al.  Efficient hardware checkpointing: concepts, overhead analysis, and implementation , 2007, FPGA '07.

[12]  Olivier Muller,et al.  Generating Efficient Context-Switch Capable Circuits through Autonomous Design Flow , 2016, ACM Trans. Reconfigurable Technol. Syst..

[13]  Reinhard Männer,et al.  Multitasking on FPGA Coprocessors , 2000, FPL.

[14]  Hiroaki Takada,et al.  Comparison of Preemption Schemes for Partially Reconfigurable FPGAs , 2012, IEEE Embedded Systems Letters.

[15]  James R. Larus,et al.  A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services , 2015, IEEE Micro.

[16]  Davide Bertozzi,et al.  Supporting Task Migration in Multi-Processor Systems-on-Chip: A Feasibility Study , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[17]  Olivier Gruber,et al.  Transparent and portable agent based task migration for data-flow applications on multi-tiled architectures , 2015, 2015 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).