A Reconfigurable Framework for Performance Enhancement With Dynamic FPGA Configuration Prefetching

Many modern applications exhibit a dynamic and nonstationary behavior, with certain characteristics in one phase of their execution, which change as the application enters new phases, in a manner unpredictable at design-time. In order to meet the demands of such applications, it is important to have adaptive and self-reconfiguring hardware platforms, coupled with intelligent on-line optimization algorithms, that together can adjust to the run-time requirements. Partially dynamically reconfigurable field programmable gate array architectures offer both high performance and flexibility. Despite these potential advantages, the challenges faced by designers trying to set-up a functioning system are still significant, mainly because of the still immature design tools and limited device drivers. We propose a complete framework, based on Xilinx's commercial design suite, that enables an application designer to leverage the advantages of partial dynamic reconfiguration with minimal effort. Our IP-based architecture, together with the comprehensive application programming interface, can be employed to accelerate an application by dynamically scheduling hardware prefetches. Moreover, a piecewise linear predictor is used to capture correlations and predict the hardware modules that will generate the highest performance improvement. Our evaluation comprises of extensive simulations, as well as a complete implementation of the smallest univalue segment assimilating nucleus image processing application on the ML605 board from Xilinx. The measurements show a significant reduction of the expected execution time compared to previous state-of-the-art prefetching algorithms, with only a minor energy overhead.

[1]  Zhiyuan Li,et al.  Configuration prefetching techniques for partial reconfigurable coprocessor with relocation and defragmentation , 2002, FPGA '02.

[2]  K. Bertels,et al.  Instruction scheduling for dynamic hardware configurations [M-JPEG encoder case study] , 2005, Design, Automation and Test in Europe.

[3]  Petru Eles,et al.  Dynamic configuration prefetching based on piecewise linear prediction , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[4]  Frank Vahid,et al.  Transmuting coprocessors: Dynamic loading of FPGA coprocessors , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[5]  Daniel A. Jiménez,et al.  Piecewise linear branch prediction , 2005, 32nd International Symposium on Computer Architecture (ISCA'05).

[6]  Stamatis Vassiliadis,et al.  Interprocedural Compiler Optimization for Partial Run-Time Reconfiguration , 2006, J. VLSI Signal Process..

[7]  Francky Catthoor,et al.  A hybrid prefetch scheduling heuristic to minimize at run-time the reconfiguration overhead of dynamically reconfigurable hardware [multimedia applications] , 2005, Design, Automation and Test in Europe.

[8]  Vittorio Zaccaria,et al.  Using multi-objective design space exploration to enable run-time resource management for reconfigurable architectures , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[9]  João M. P. Cardoso,et al.  Transparent Trace-Based Binary Acceleration for Reconfigurable HW/SW Systems , 2013, IEEE Transactions on Industrial Informatics.

[10]  Jürgen Teich,et al.  The Erlangen slot machine: increasing flexibility in FPGA-based reconfigurable platforms , 2005, Proceedings. 2005 IEEE International Conference on Field-Programmable Technology, 2005..

[11]  Thilo Pionteck,et al.  Optimizing Runtime Reconfiguration Decisions , 2010, 2010 IEEE/IFIP International Conference on Embedded and Ubiquitous Computing.

[12]  Asim Munawar,et al.  ISOMER: Integrated selection, partitioning, and placement methodology for reconfigurable architectures , 2013, 2013 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[13]  Francky Catthoor,et al.  Efficiently scheduling runtime reconfigurations , 2008, TODE.

[14]  Tobias Becker,et al.  Modular dynamic reconfiguration in Virtex FPGAs , 2006 .

[15]  Dirk Koch,et al.  Can Run-time Reconfigurable Hardware be more Accessible? , 2011 .

[16]  Vlad Mihai Sima,et al.  DWARV 2.0: A CoSy-based C-to-VHDL hardware compiler , 2012, 22nd International Conference on Field Programmable Logic and Applications (FPL).

[17]  David Black-Schaffer,et al.  Phase behavior in serial and parallel applications , 2012, 2012 IEEE International Symposium on Workload Characterization (IISWC).

[18]  Frank Vahid,et al.  Dynamic coprocessor management for FPGA-enhanced compute platforms , 2008, CASES '08.

[19]  Zhiyuan Li,et al.  Configuration management techniques for reconfigurable computing , 2002 .

[20]  Jinian Bian,et al.  ISBA: An independent set-based algorithm for automated partial reconfiguration module generation , 2012, 2012 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[21]  François Duhem,et al.  FaRM: Fast Reconfiguration Manager for Reducing Reconfiguration Time Overhead on FPGA , 2011, ARC.

[22]  Chun-Hsian Huang,et al.  Scheduling and Placement of Hardware/Software Real-Time Relocatable Tasks in Dynamically Partially Reconfigurable Systems , 2010, TRETS.

[23]  Stephen M. Smith,et al.  SUSAN—A New Approach to Low Level Image Processing , 1997, International Journal of Computer Vision.

[24]  Brad Calder,et al.  Phase tracking and prediction , 2003, ISCA '03.

[25]  Petru Eles,et al.  Minimization of average execution time based on speculative FPGA configuration prefetch , 2012, 2012 International Conference on Reconfigurable Computing and FPGAs.

[26]  Daniel Chillet,et al.  UPaRC—Ultra-fast power-aware reconfiguration controller , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[27]  Jürgen Teich,et al.  Interprocedural Placement-Aware Configuration Prefetching for FPGA-Based Systems , 2010, 2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines.

[28]  Wayne Luk,et al.  HArtes: Hardware-Software Codesign for Heterogeneous Multicore Platforms , 2010, IEEE Micro.

[29]  Axel Jantsch,et al.  Run-time Partial Reconfiguration speed investigation and architectural design space exploration , 2009, 2009 International Conference on Field Programmable Logic and Applications.

[30]  Philip James-Roxby,et al.  A Self-reconfiguring Platform , 2003, FPL.

[31]  Patrick Lysaght,et al.  Self Controlling Dynamic Reconfiguration: A Case Study , 1999, FPL.

[32]  Dirk Koch,et al.  Partial Reconfiguration on FPGAs - Architectures, Tools and Applications , 2012, Lecture Notes in Electrical Engineering.