Hardware-Software Co-design for Dynamic Reconfigurable Computing with Collaborative Supports of Architecture and Operating System
Nowadays it is widely adopted by reconfigurable computing system developers to obtain significant performance improvements through converting computational intensive codes from software to hardware. To program for such systems with hardware accelerators included, the programmers have to know the details of hardware accelerators, and control the configurations of hardware accelerators as well as communications between software and hardware parts. This state-of art programming style is not efficient for system development. In this paper, a transparent hardware-software co-design framework for reconfigurable computing system is proposed. It allows the programmers to access the hardware accelerators in the same way as calling software functions, leaving the configuration and communication issues to underlying operating system and assistant hardware control logic. Dynamic function calling is also supported in this model to utilize the dynamic reconfiguration ability of the modern programmable devices for reducing the requirement of hardware resources, hence increasing the efficiency of the whole system.