Hybrid Hardware-Software Architecture for Reconfigurable Real-Time Systems Rodolfo Pellizzoni and Marco Caccamo Department of Computer Science, University of Illinois at Urbana-Champaign {rpelliz2, mcaccamo}@uiuc.edu Abstract Recent developments in the field of reconfigurable SoC devices (FPGAs) will enable the development of embedded systems where software tasks, running on a CPU, can coex- ist with hardware tasks. We devised a real-time computing architecture that can integrate hardware and software exe- cutions in a transparent manner, and can support real-time QoS adaptation by means of partial reconfiguration of mod- ern FPGA devices. Tasks are allowed to migrate seamlessly from CPU to FPGA and vice versa to support dynamic QoS adaptation and cope with dynamic workloads. In this pa- per, we discuss the design and implementation of an on-chip infrastructure, OS extensions and task design methodology that enable hardware-software transparency in the presence of relocation. The overall architecture is suitable to sched- ule real-time workloads and we derive bounds on reloca- tion overhead. Finally, we show the applicability of our de- sign methodology on a concrete task design case. 1. Introduction Recently emerging SoC devices enable the development of embedded systems where software tasks, running on a CPU, can coexist with hardware tasks running on a re- configurable device (FPGA). Such hybrid platforms are es- pecially suitable for the development of real-time embed- ded systems because they combine the flexibility of soft- ware execution on a CPU with timing predictability and high performance of hardware execution on a Partially Re- configurable Device (PRD). Even if the theory of real- time reconfigurable computing is still at an early stage [9, 10, 12, 11, 26], progresses have been made recently in the development of operating systems for reconfigurable de- vices (OSRD) [22, 30, 31]. OSRDs will enable a highly dy- namic use of partially reconfigurable FPGAs, running mul- This material is based upon work supported by NSF under Awards No. CNS0237884, CNS0720512, CCF0325716. Any opinions, find- ings, and conclusions or recommendations expressed in this publica- tion are those of the authors and do not necessarily reflect the views of the NSF. tiple concurrent circuits (hardware tasks) with full multi- tasking capabilities. In this work, we focus our attention on embedded sys- tems comprised by a general purpose CPU and a Partially Reconfigurable Device (PRD), together with main memory and I/O peripherals. Modern devices, like the Xilinx Virtex family of FPGA [33], implement all of the above on a sin- gle configurable SoC. Compared to a classic mono or multi- processor platform, hardware execution of real-time logic functions (tasks) on FPGA fabric has two main advantages: 1) it can greatly improve QoS and 2) it natively supports both temporal isolation (due to parallel execution on distinct reconfigurable regions) and temporal predictability (due to the precise knowledge of execution times). At the same time, implementing all system functionalities in hardware is not desirable for several reasons. First of all, it precludes reuse of already available software libraries and tasks. Sec- ond, some control heavy tasks are hard to parallelize and their hardware implementations yield low speedup. Third, some system tasks require little computation and can be ex- ecuted on a CPU with low utilization while they would con- sume precious FPGA area if implemented in hardware. The main objective of our research is to devise a real-time com- puting infrastructure that can integrate hardware and soft- ware execution in a transparent manner, and can support real-time QoS adaptation by means of partial reconfigura- tion of modern FPGA devices. In particular, flexibility of execution is achieved by supporting the seamless migra- tion of tasks from software to hardware and vice versa at run-time. Task migration enables the system to proritize dif- ferent types of computation based on environmental factors and to cope with different operational modes at run-time. While in this paper the proposed hybrid real-time comput- ing infrastructure has been mainly tested (see test case of Section 5) for achieving dynamic QoS adaptation and hard- ware predictability, we are also in the progress of exploiting it for real-time fault-tolerant computing. A lot of work has been done in the design of SoC com- munication infrastructure and in the development of work- ing prototypes for OSRD, but much more remains to be done to obtain a feasible and usable platform when real- time execution and on-line reconfiguration are considered. In a previous work [26], we have addressed the problem IEEE Real-Time and Embedded Technology and Applications Symposium 1080-1812/08 $25.00 © 2008 IEEE DOI 10.1109/RTAS.2008.14 273 IEEE Real-Time and Embedded Technology and Applications Symposium 1080-1812/08 $25.00 © 2008 IEEE DOI 10.1109/RTAS.2008.14 273 IEEE Real-Time and Embedded Technology and Applications Symposium 1080-1812/08 $25.00 © 2008 IEEE DOI 10.1109/RTAS.2008.14 273