Abstract

With technology development, hardware tasks can be configured at run-time. Idle hardware tasks in a reconfigurable logic should be replaced by other hardware tasks through a task switching mechanism. For the efficient use of system resources, task switching and relocation mechanism are proposed in this work. During task switching and relocation, three issues including the choice of switchable points, the maintenance of correct transparent communication, and the transfer of context data need to be solved. The methods for designing both hardware tasks and software tasks are proposed so as to allow users to integrate their designs into a system with task switching and relocation. Template functions are proposed and implemented to allow tasks to save/restore their context data. The control flows of task switching and relocation also guarantee the correctness and consistency of task communication relations after switching or relocation. Finally, several implementation examples are provided to prove the correctness of the proposed mechanism. For the greatest common divisor (GCD) example without an operating system, software task switching takes 2% of the total software execution time, while hardware task switching takes 23% of the total hardware execution time. As far as task relocation is concerned, the software to hardware relocation takes 3% of the total execution time, while the hardware to software relocation takes 5% of the total execution time. The high difference in software and hardware task switching time is due to the latency incurred by the context data transfer and the execution of the hardware driver process.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call