a hardware/software codesign approach for programmable io devices
This work presents a new HW/SW codesign approach for programmable controllers (ICs or IPs) managing IO devices. A novel cost function is defined to evaluate a device driver's performance and formulate its exact minimization as a zero-one integer linear programming problem. The cost function is used to explore the design trade-off between the code performance of a device driver and the number of programmable registers in an IO controller. This work proposes a heuristic algorithm based on the cost function, which iteratively minimizes the software cost until the hardware constraint is violated. The proposed algorithm was implemented in C language and evaluated with a set of real devices. Compared with original designs, the proposed approach can obtain design alternatives that reduce both software and hardware costs.
hardware/software codesign programmable controller device driver software optimization