"Demand and Penalty-Based Resource Allocation for Reconfigurable Systems with Runtime Partitioning"
The overhead of device reprogramming in reconfigurable computing has long been a detriment to use of runtime reconfiguration in computing systems. Yet in systems in which the frequencies of task requests are not known at compile time and in which it is desirable to have the system adaptively optimize its performance for the chosen hardware architecture, runtime reconfiguration can be a valuable tool. This paper presents a process for writing software tasks in which a software version and a hardware accelerated version are made available to a system at runtime. The method uses the C language for implementation so that each task can be targeted to hardware or software with only minor changes to the source code. The paper then presents a low-overhead execution manager that decides based on the recent demand for task execution and the penalty of performing hardware reconfiguration what tasks will make the most efficient use of hardware resources and performs the required reconfiguration. This method allows hardware/software partitioning decisions with a large impact on system performance to be made at runtime. Furthermore, the method prevents frequent hardware reconfigurations, akin to cache thrashing, that would nullify the performance benefits of using hardware acceleration. The API required for managing the task execution and the execution manager implementation using an off-the-shelf operating system are also presented.
2005 MAPLD International Conference Home Page