Research Article
A Tabu Search-Based Memetic Algorithm for Hardware/Software Partitioning
Algorithm 1
List schedule algorithm [
16,
22].
(1) Initialization. Set two attributes for every node, start and finish, which are used for recording the node’s | starting time and finishing time. Choose all nodes without data dependency from the node set and put them | into a ready queue. Choose one software node from the queue to be executed by CPU, and all hardware nodes | to be executed at the same time. Set 0 as the values of the start attributes for the running nodes. Set the sum | of the executing time and the communication time as the values of the finish attributes. If there is a software | node being executed by CPU, set CPU = BUSY. | (2) repeat | (3) Select the node with the minimal time from the ready queue, mark it as . | (4) Remove node from the queue. If is a software node, set . | (5) If , choose one software node from the queue to execute and set . | Set , , where denotes the communication | time of node with other nodes. | (6) Choose all hardware nodes to execute concurrently. Set their and attributes as in Line (5). | (7) until The ready queue is empty | (8) return Choose the maximal time of all the nodes as the system executing time, denoted as . |
|