Rainbow: An OS Extension for Hardware Multitasking on Dynamically Partially Reconfigurable FPGAs

DPR (Dynamic Partial Reconfiguration) capability found in some of modern FPGAs allows implementation of a concept of a HW (Hardware) task, which similarly to its software counterpart has its state and shares time-multiplexed resources with the other tasks. While the new technology presents many advantages for embedded systems where run-time adaptability is an additional requirement, their efficient and easily portable implementations require a control software or an OS which would manage all the complexities of the underlying technology, providing an abstracted interface for the application programmer. This paper presents a novel and robust hardware multitasking extension for a conventional OS, managing task scheduling and configurations, and providing easy-to-use API (Application Programming Interface) for the application programmer. Scheduling is priority-based and takes advantage of task caching. Moreover, the extension is based on a developed design flow and embedded hardware platform allowing efficient task preemption, which can be utilized whenever it presents any benefits to the application.

[1]  Jürgen Becker,et al.  CAP-OS: Operating system for runtime scheduling, task mapping and resource management on reconfigurable multiprocessor architectures , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum (IPDPSW).

[2]  Hiroaki Takada,et al.  A Novel Mechanism for Effective Hardware Task Preemption in Dynamically Reconfigurable Systems , 2010, 2010 International Conference on Field Programmable Logic and Applications.

[3]  Hiroyuki Tomiyama,et al.  Proposal and Quantitative Analysis of the CHStone Benchmark Program Suite for Practical C-based High-level Synthesis , 2009, J. Inf. Process..

[4]  Marco Platzner,et al.  Cooperative multithreading in dynamically reconfigurable systems , 2009, 2009 International Conference on Field Programmable Logic and Applications.

[5]  David A. Kearney,et al.  The Development of an Operating System for Reconfigurable Computing , 2001, The 9th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'01).

[6]  Florian Dittmann,et al.  Hard Real-Time Reconfiguration Port Scheduling , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

[7]  Marco D. Santambrogio,et al.  Operating system support for online partial dynamic reconfiguration management , 2008, 2008 International Conference on Field Programmable Logic and Applications.

[8]  Marco D. Santambrogio,et al.  On-line task management for a reconfigurable cryptographic architecture , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.