SHUM-uCOS: A RTOS using multi-task model to reduce migration cost between SW/HW tasks

The design of embedded systems has become more complex than ever, and the design qualities depend more on the cooperation of multidisciplinary design teams: hardware engineers and software engineers in general. However, due to the lack of uniform programming model and system components for these different teams, the migrations costs of a function model from software to hardware are high. But these actions are necessary in the hardware-software partitioning of embedded systems, especially in the prototype designs. To cope with this problem, we adopt a uniform multi-task model and implement a RTOS (real-time operating system), called SHUM-uCOS, which deals with hardware functions as same as software tasks. This RTOS uses uCOSII as its prototype, traces and manages the states of reconfigurable resources (FPGAs), which allows the execution of hardware tasks in a true multitasking manner. Moreover, SHUM-uCOS also defines a standard hardware-task interface, which supports share-bus protocol. It has been proved by experiments that SHUM-uCOS can shorten the migration time from software implementations to hardware implementations with the performance improvement.

[1]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[2]  Marco Platzner,et al.  Fast online task placement on FPGAs: free space partitioning and 2D-hashing , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[3]  Rabindra P. Kar Implementing the Rhealstone real-time benchmark , 1990 .

[4]  Scott Hauck,et al.  Configuration relocation and defragmentation for reconfigurable computing , 2000, Proceedings 2000 IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.PR00871).

[5]  Hossam ElGindy,et al.  Dynamic scheduling of tasks on partially reconfigurable FPGAs , 2000 .

[6]  Majid Sarrafzadeh,et al.  Fast Template Placement for Reconfigurable Computing Systems , 2000, IEEE Des. Test Comput..

[7]  Ishfaq Ahmad,et al.  Dynamic Critical-Path Scheduling: An Effective Technique for Allocating Task Graphs to Multiprocessors , 1996, IEEE Trans. Parallel Distributed Syst..

[8]  R. L. Haggard,et al.  A survey of dynamically reconfigurable FPGA devices , 2003, Proceedings of the 35th Southeastern Symposium on System Theory, 2003..

[9]  Peter J. Ashenden,et al.  Programming models for hybrid FPGA-cpu computational components: a missing link , 2004, IEEE Micro.

[10]  Dinesh Bhatia,et al.  Temporal Partitioning and Scheduling Data Flow Graphs for Reconfigurable Computers , 1999, IEEE Trans. Computers.

[11]  Jean J. Labrosse,et al.  MicroC/OS-II: The Real Time Kernel , 1998 .