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 .