# Power and Execution Time Optimization through Hardware Software Partitioning Algorithm for Core Based Embedded System

Authors: Siwar Ben Haj Hassine; Mehdi Jemai; Bouraoui Ouni
Journal: Journal of Optimization
 (2017)

---

## Abstract

Shortening the marketing cycle of the product and accelerating its development efficiency have become a vital concern in the field of embedded system design. Therefore, hardware/software partitioning has become one of the mainstream technologies of embedded system development since it affects the overall system performance. Given today’s largest requirement for great efficiency necessarily accompanied by high speed, our new algorithm presents the best version that can meet such unpreceded levels. In fact, we describe in this paper an algorithm that is based on HW/SW partitioning which aims to find the best tradeoff between power and latency of a system taking into consideration the dark silicon problem. Moreover, it has been tested and has shown its efficiency compared to other existing heuristic well-known algorithms which are Simulated Annealing, Tabu search, and Genetic algorithms.


---

## Body

## 1. Introduction

The exponential rise of embedded systems, all along with the persistent quest for higher levels of performance have resulted in the necessity of creating efficient types of embedded circuits. In fact, the embedded systems have become the worldwide leader technologies since they have penetrated into the human life to a very large extent. Besides, they play a vital role in industries as well as military applications which requires the necessity of having faster and better performing systems. Unfortunately, most of current technologies have only managed to further increase the system’s capacity in order to have a faster treatment at the cost of a considerable simultaneous augmentation in their power. However, excessive power consumption may damage the integrated circuits through overheating, limiting the degree of transistors integration on a chip, bringing problem signal integrity, shortening battery durability for portable devices, and requiring expensive cooling and packaging systems. Moreover, the huge dependence of wastage power consumption on threshold voltage has limited further threshold and provide voltage scaling. Thus, the power consumption is rising with technology scaling, such that it can no longer be cooled down profitably considering the physical limitations forced by cooling technologies and packaging. This gives rise to the dark silicon problem [1–3]. The concept of dark silicon is based on constraint that important fraction of transistors on chip cannot be powered on at a nominal voltage for a specific thermal design power TDP budget and have to be power-gated or simply remain dark. The TDP is the maximum amount of power provided to a chip while maintaining the chip temperature under the thermal safe temperature. In case where the TDP is exceeded, the temperature of the chip will rise beyond the cooling capacity that will throttle the chip. Previous studies [1, 2] have predicted that 50% to 80% of the chip area will be dark for GPU and CPU based systems. To overcome such dilemmas, designers’ efforts have been increased to produce less consuming systems. In this context, some research groups have focused on the creation of new architectures in terms of the material [4] while other groups have focused on extending batteries life cycle [5]. Yet, such solutions require high resources that several research groups do not have. For that, other methods have appeared in order to offer a less power consuming system such as hardware/software partitioning [6, 7].Traditionally, partitioning was carried out manually which requires a detailed knowledge of circuit operations from designers. Such manual approaches were limited only to small designs with small number of constituent blocks [8, 9]. Since digital systems have become much more sophisticated, automatic HW/SW partitioning has become a necessity. In fact, many research groups have opted for the HW/SW partitioning in order to increase the performance of a system as presented in approaches such as [10, 11]; most of these approaches purposes are to meet performance constraints while keeping the system cost (area) as low as possible. Unfortunately, none of them took the power consumption and the execution time into consideration. Hence, we present in this paper an algorithm that finds a possible HW/SW partitioning of a data flow graph that finds out a tradeoff between power and latency taking into account the dark silicon problem.The rest of the paper is organized as follows: Section2 reviews the related literature; the proposed partitioning algorithm is addressed in Section 3 followed by an illustrative example; the numerical experimentation and discussion theorem are presented in Section 5 and finally the article ends up with the conclusion that briefs the present findings and future research on this theme.


## 2. Related Work

Recently, a new alternative technology that combines logic elements and memory along with an intellectual property processor core has emerged to remedy the excessive need for better performance systems. This technology called System on Programmable Chip SoPC allows and facilitates the SW/HW partitioning.As generally reckoned, embedded systems consist of programmable software part (SW) and application specific hardware part (HW). Software part is much easier to develop and modify, and it consumes less power compared to the hardware part but it requires extra time to give final response. In fact, compared to the software which is less expensive in terms of cost and power consumption, the hardware provides better performance because it offers a faster treatment. For that reason, the purpose of HW/SW partitioning is to design a balanced system that accomplishes all system constraints [12]. Most of formulations of HW/SW partitioning dilemma have proven to be NP-hard [13, 14]. In fact, many exact algorithms have been proposed such as Branch-and-Bound [15], dynamic programming [16], and integer linear programming [17]. However, these exact algorithms tend to be quite slow for bigger inputs. Hence, for bigger partitioning problem heuristic algorithms have been the basis for the majority of researches such as Genetic algorithm (GA) [18], Tabu Search [19, 20], Simulated Annealing [21], Particle Swam Optimization [22, 23], Ant algorithm [24, 25], shuffled frog leaping algorithm [26], and greedy algorithm [27]. Other designers have mixed two heuristic algorithms to solve the HW/SW partitioning problems like in [28] where authors have used hybrid algorithm of Genetic algorithm (GA) and Tabu Search one, while others [29] have mixed the Discrete Particle Swarm Optimization (DPSO) and Branch-and-Bound (B&B) algorithms to meet the same aim. Besides, authors in [30] have proposed a new heuristic solution based on HW/SW partitioning that aims to reduce the execution time of the overall circuit. Moreover, authors in [31] have come up with a new IVA-HD which is a programmable, true multistandard, and full HD video coding engine that adopts HW/SW partitioning to achieve the low power and area equipment of the OMAP 4 processor. To attain the same goal of power optimization, [32] has proposed a minimizing approach based on mapping clusters of instructions to a core that yields a high utilization rate of resources and thus minimizes power consumption. Such a method has offered a less consuming system at the cost of an additional hardware overhead. The problems that these previously mentioned works have met are either to optimize one parameter at the cost of another important constraint or to focus on achieving the optimization of only one constraint such as power or execution time. Also, none of them have mentioned the dark silicon problem. In fact, the dark silicon has become a critical issue for designers since it can decrease the reliability in the nanoera [33–35] and leads to soft errors, aging and even process variations [36, 37]. Recent works have explored the dark silicon problem by applying a very low voltage to power on more cores [38] and proposed new accelerators architectures [39, 40]. Almost, the majority of works have handled the dark silicon problem on low level codesign which necessitates a good knowledge of the target circuit and extra time of marketing cycle of the product. Other designers have proposed new architectures by exploiting architectural heterogeneity [41–43]. However, such solutions require high resources that several research groups do not have. In the literature, only few works have combined the HLS and dark silicon problem due to its complexity [44, 45]. It is true that generally the dark silicon problem appears for multiprocessor system-on-chip (MPSoc). But, due to the Soc huge rise the dark silicon problem must be taken into consideration even with one core based embedded system [46]. Motivated by the fact and coming across the shortages of other researches, it has been vital to come up with a new idea of developing a new algorithm that aims to create a less consuming system and a faster one without influencing the system reliability.


## 3. Problem’s Definitions

We consider the applications that can be modeled using data flow graph (DFG). A data flow graph that is used to create a preliminary overview of the system denoted asG(V,E), where V=v1,vi,…,vn, is the set of vertices or nodes that are interconnected to each other by edges E=vi,vj,vi,vj+1,…. Edges of the graph present the dependencies between the components of the system. In general, the node of the graph can represent a basic block [47], a short of instruction [48], a procedure or a function [49], and so on. In this paper, we use four different types of nodes:(i)
A start or an end nodevistartend;vistartend∈Vstartend and Vstartend⊆V.(ii)
A node that includes simple codeviS;viS∈VS and VS⊆V.(iii)
A node that contains the beginning of a control-constructviB;viB∈VB and VB⊆V.(iv)
A node that contains the end of a control-constructviE;viE∈VE and VE⊆V.


### 3.1. Partitions’ Types

The graph partitioning is to cut the graph into possible partitionsPall=P1,Pi,…,Pn where Pall is the set of all possible partitions; Pi is a possible partition; and n is the number of possible partitions.There exist two kinds of partitions:(i)
A control-construct partition that includes a whole construct such asif toend if,case toend case, and so on.(ii)
A mix partition that could contain either two or more control-constructs or one or more control-construct combined with a simple node (that contains simple construct such as addition operation).


### 3.2. Node’s Links

To facilitate the search of control-construct partitions, we have used the parameter of link. If the node is a beginning of a control-construct or an end of a control construct, the link value equals 1. For the rest of node’s types, the link value equals 0. The link definition can be defined as follows:(1)Linkvi=1,ifvi∈VBorvi∈VE0,else.


### 3.3. Related Statements

When a task is realized by hardware or software, its execution time and power consumption show diverse values. We define the following functionsHL(Pi),SL(Pi),HP(Pi) and SP(Pi) to represent the hardware latency, the software latency, the hardware power, and the software power respectively of a given partition Pi. Although obtaining the exact values of the execution time and power consumption is a challenging problem, it is beyond the scope of this article. Rather, we focus on algorithmic issues in partitioning.Given a pathPw: vi→vj and a hardware/software partitioning Pi for all the nodes in Pw, the completion time of Pw under partitioning Pi is the summation of all the latencies occurred on Pw taking into consideration the parallel execution of some tasks. The system completion time is defined to be the completion time of a critical path Cp in DFG. The hardware latency and the software latency corresponding to a target partition can be written as follows: (2)HLPi=HLCPPi=maxvi∈Pi⁡XmiHLvi+∑vj∈PiXmj∗ψijHLvj,where ψij=1,ifvjdependstovi;0,else and Xmi=0,ifviisexecutedbySoftware;Xmi=1,ifviisexecutedbyHardware;(3)SLPi=∑vi∈PiSLvi.For a given G(V,E), we define a vector Xm to indicate either the task is realized by hardware or software. For instance, for a node vi,Xm(i) equals 0 if the task is executed by the software and equal to 1 if it is realized by the hardware.The power consumption of the system with respect to a given partitioning can be calculated as the summation of all the task power consumption of each node realized by software or hardware. In fact, it can be written as follows:(4)HPPi=∑vi∈PiHPvi,SPPi=∑vi∈PiSPvi.So, to recapitalize, we define the hardware/software partitioning problem as follows: given G(V,E) and thermal design power, find a partitioning that offers the best tradeoff between total power and execution time of the system.


## 3.1. Partitions’ Types

The graph partitioning is to cut the graph into possible partitionsPall=P1,Pi,…,Pn where Pall is the set of all possible partitions; Pi is a possible partition; and n is the number of possible partitions.There exist two kinds of partitions:(i)
A control-construct partition that includes a whole construct such asif toend if,case toend case, and so on.(ii)
A mix partition that could contain either two or more control-constructs or one or more control-construct combined with a simple node (that contains simple construct such as addition operation).


## 3.2. Node’s Links

To facilitate the search of control-construct partitions, we have used the parameter of link. If the node is a beginning of a control-construct or an end of a control construct, the link value equals 1. For the rest of node’s types, the link value equals 0. The link definition can be defined as follows:(1)Linkvi=1,ifvi∈VBorvi∈VE0,else.


## 3.3. Related Statements

When a task is realized by hardware or software, its execution time and power consumption show diverse values. We define the following functionsHL(Pi),SL(Pi),HP(Pi) and SP(Pi) to represent the hardware latency, the software latency, the hardware power, and the software power respectively of a given partition Pi. Although obtaining the exact values of the execution time and power consumption is a challenging problem, it is beyond the scope of this article. Rather, we focus on algorithmic issues in partitioning.Given a pathPw: vi→vj and a hardware/software partitioning Pi for all the nodes in Pw, the completion time of Pw under partitioning Pi is the summation of all the latencies occurred on Pw taking into consideration the parallel execution of some tasks. The system completion time is defined to be the completion time of a critical path Cp in DFG. The hardware latency and the software latency corresponding to a target partition can be written as follows: (2)HLPi=HLCPPi=maxvi∈Pi⁡XmiHLvi+∑vj∈PiXmj∗ψijHLvj,where ψij=1,ifvjdependstovi;0,else and Xmi=0,ifviisexecutedbySoftware;Xmi=1,ifviisexecutedbyHardware;(3)SLPi=∑vi∈PiSLvi.For a given G(V,E), we define a vector Xm to indicate either the task is realized by hardware or software. For instance, for a node vi,Xm(i) equals 0 if the task is executed by the software and equal to 1 if it is realized by the hardware.The power consumption of the system with respect to a given partitioning can be calculated as the summation of all the task power consumption of each node realized by software or hardware. In fact, it can be written as follows:(4)HPPi=∑vi∈PiHPvi,SPPi=∑vi∈PiSPvi.So, to recapitalize, we define the hardware/software partitioning problem as follows: given G(V,E) and thermal design power, find a partitioning that offers the best tradeoff between total power and execution time of the system.


## 4. Proposed Algorithm

Our algorithm is meant to achieve graph partitioning in order to find the best compromise between power and execution time. As generally reckoned, the software consumes less power than the hardware but it requires more time to give response while the hardware which tackles the problem of timing consumes more power. This approach starts with a system totally implemented by software, it will not consume power but it will be too tardy. Whenever a partition of the system migrates to be executed by the hardware, the system will consume more power and become faster. As mentioned previously, our algorithm includes two different kinds of partitions. Its first function is to search for all control-construct partitions (Algorithm2) and then it builds the mix partitions. After that, it makes all possible combinations between the generated partitions (Algorithm 1).Algorithm 1:Generation of partitions.
// generate the mix partitions For all P i ∈ P a l l If ∀vi∈VLink(pred (vstartp) = 0) then// vstartp is the start node of the control-construct partition Pk  ≤  {pred(vstartp),Pi} If(Pk∄) Pall≤Pk k=k+1; End if else If (Pi-1∈Pcontrol) Pk≤{Pi-1,Pi}; If(Pk∄) Pall≤Pk k=k+1 End if End if End if If ∀vi∈V  Link(succ(vendp) = 0) then // vendp is the end node of the control-construct partition Pk≤Pi;succvendp If(Pk∄) Pall≤Pk k=k+1; End if else If (Pi+1∈Pcontrol) Pk≤{Pi,Pi+1}; If(Pk∄) Pall≤Pk k=k+1 End if End if End if End for; // find the combination of the previous generated partitions Ptest≤Pall For all P i  ∈  P t e s t z≤i+1 For all Pz∈Ptest if  Pi⊈Pzthen Pk≤{Pi,Pz}; Pall≤Pk z≤z+1 k≤k+1 else z≤z+1 end if end for if P c o n t r o l = { Ø  }  then while(Pi≠V)do Pk≤ make all possible combinations Pall≤Pk k=k+1 end end if End beginAlgorithm 2:Generation of control-construct partitions.
Begin For allvi∈V ComputeLink(vi) End for k=1;k∈N // generation of all control construct partitions For allvi∈VB: If  ∀vi,vj∈V  (Linkvi=1  and  vj∉VB)  then Pk≤vi do Pk≤vj; While  (Linkvj=1) Pall≤Pk Pcontrol≤Pk k=k+1 End if End forIn case where all nodes are simple, the partitions will simply take all possible combinations of the nodes. Our algorithm (Algorithm3) is based on three functions. F1 provides the total latency of the system for each generated partition while F2 computes the total consumed power of the system under a given partition. When the algorithm becomes so close to the best solution, it will offer us an interval that includes some suggestions. F1 and F2 are written as follows:(5)F1Pi=SLCP-SLCPPi+HLCPPi,where SLCP=∑vi∈CpSL(vi),SL(CP(Pi)) and HL(CP(Pi)) are the software and the hardware latency of the critical path of the partition Pi, respectively. (6)F2Pi=SPG-SPPi+HPPi,where SPG=∑vi∈GSP(vi).Algorithm 3:Our proposed algorithm.
Begin Find all pathsPw CalculateSL(all) ≤{SL(Pw1),SL(Pw2),…,SL(Pwn)} Find Cp ComputeSLCP Generate all partitions Forall  Pi∈Pall  do FindCP(Pi) if (vi∈Pi)⊈Cp then F1=SLCP else SL(new) ≤SL(all) // SL(new) is the set of the new latency of each path Forall  Pwdo ComputeSLPw; // the new latency of the path SLPw = F1Pw; end for updateSL(new) F1(Pi)≤max⁡[SL(new)] end if Compute functionF2(Pi) End for // choose the best partitions// m ≤ 1 TDP≤ the dark power Forall  Pi∈Pall  do Forall  vh∈Pi  do if(vh∈Cp and vh+1∉Cp)then ifF2(Pi) < TDPthen Psuggested≤Pi end if end for Forall  Pi∈Psuggesteddo Compute functionF3(Pi) End for m≤ number of partition For  i from 1 to m  do Pbest≤1m×∑i=1mF3(Pi) End for End.To avoid the dark silicon problem, we have introduced a new constraint called thermal design power TDP. This constraint refers to the maximum amount of power that can be provided to a chip while maintaining the chip temperature under the thermal safe temperature. If the system power under a specific partition exceeds the TDP, then that partition will not be among the suggested ones. Thus, ensure the good performance and the reliability of the system.F 3 is introduced to facilitate taking the decision of which the suggested partition is the best one. F3 is introduced as follows:(7)F3Pi=F2PiF1Pi.The best solution equals the closest value to(8)1m×∑i=1mF3Pi,where m is the number of suggested solutions.


## 5. Illustrative Example

To further clarify our algorithm, it has been applied on the graph shown in Figure1. The node’s constraints V=v1,vi,…,v15 are presented in Table 1.Table 1
Node’s parameters.
v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15 H L 3 2 1 2 1 2 3 1 1 3 3 1 5 4 2 S L 6 4 2 4 2 4 7 2 2 7 6 2 10 9 5 H P 2 1 2 1 1 2 2 1 1 3 3 1 4 4 5 S P 0.5 0.25 0.5 0.25 0.25 0.5 0.5 0.25 0.25 1 1 0.25 1 1.5 2Figure 1
The data flow graph.The first step consists in finding all possible paths and calculating the software latency of all paths in order to get the critical path. In our caseCp:SLCP=45. The second step is to compute the link of each node as Table 2 presents. Then, all possible partitions will be generated.Table 2
The links of nodes.
v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15 Link 0 1 0 0 1 0 0 1 1 0 0 1 0 1 0In our case, there exist eleven partitionsPall=P1,P2,…,P11 as Table 3 describes.Table 3
The generated partitions.
Partitions Nodes P 1 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15 P 2 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15 P 3 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15 P 4 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15 P 5 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15 P 6 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15 P 7 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15 P 8 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15 P 9 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15 P 10 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15 P 11 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 v 10 v 11 v 12 v 13 v 14 v 15For each generated partition the latency as well as the consumed power will be calculated using the functionsF1 and F2 respectively (Table 4). For instance, P1 does not belong to Cp so the latency of the system will stay the same “45.” However, with partitions whose nodes belong to Cp the latency of the graph can change such as in the case of P2 and in such circumstances we have to be aware that the critical path changes as well. The final decision is taken using F3. The pace of function F1 and F2 and the best partition are shown in Figure 2.Table 4
The calculation results.
P 1 P 2 P 3 P 4 P 5 P 6 P 7 P 8 P 9 P 10 P 11 F 1 45 41 45 41 45 39 35 39 39 34 34 F 2 14.5 15.5 15.25 18.5 16.75 20 23 20.75 22.25 23.75 25.25 F 3 0.32 0.38 0.39 0.45 0.37 0.51 0.66 0.53 0.57 0.7 0.74 P s u g g e s t e d P 1 P 2 P 3 P 4 P 5 P 6 P 7 P 8 P 9 P 10 P 11 1 / m × ∑ i = 1 m F 3 ( P i ) 0.62 Best partition P 7Figure 2
The pace of functionsF1 and F2.We have to mention that the used TDP value in the previous example is 26. In case where TDP value equals only 22, then the suggested partitions will only be the set of{P6,P8} and the best partition will be P6 instead of P7.


## 6. Experiment Results

To prove the efficiency of our algorithm, we have implemented a comparative study that is meant to illustrate the amount of power consumed by a given application and its execution time by the use of our algorithm in comparison to three existing heuristic algorithms which are the Simulated Annealing (SA), Tabu Search (TS), and Genetic algorithms (GA). To put that into practice we have applied our approach on 8-point Discrete Cosine Transform (DCT) [50] (Figure 6), 16-point DCT [51] (Figure 7), and H.264 [52]. The DCT is the most intensive part of the CLD algorithm. The H.264 is a video coding format that is one of the most used formats for compressing, recording, and distributing of video content. The characterizations of the three previous applications are presented in Table 5.Table 5
The characterization of each application.
Number of nodes 8-point DCT 42 16 multiplication operations 26 addition operations 16-point DCT 224 128 multiplication operations 96 addition operations H.264 28The hardware power values are based on the results provided in [53] and [54] for the DCT and the H.264, respectively. The software power is almost negligible compared to the hardware power. The latency of hardware (FPGA) equals one-third to one-fifth of the latency of software (processor) [55]. The TDP value equals 7W for the rest of the comparison.Table6 illustrates the design results provided by our approach for the 8-point DCT, 16-point DCT, and H.264 applications.Table 6
Design result provided by our algorithm.
8-point DCT Number of partitions 458 Best partition Hardware 12 operations of (×) 19 operations of (+) Software 4 operations of (×) 7 operations of (+) Total power consumed (mW) 82.35 The system’s latency (ns) 453  16-point DCT Number of partitions 12512 Best partition Hardware 68 operations of (×) 91 operations of (+) Software 60 operations of (×) 5 operations of (+) Total power consumed (mW) 525.876 The system’s latency (ns) 2780  H.264 Number of partitions 24 Total power consumed (W) 6.850 The system’s latency (ns) 1530


### 6.1. Comparison with Other Algorithms and Discussion

Tables7, 8 and 9 summarize the design results provided by Simulated Annealing, Tabu Search, and Genetic algorithms, respectively.Table 7
Design result provided by Simulated Annealing algorithm.
8-point DCT Best partition Hardware 14 operations of (×) 4 operations of (+) Software 2 operations of (×) 22 operations of (+) Total power consumed (mW) 91.55 The system’s latency (ns) 586  16-point DCT Best partition Hardware 60 operations of (×) 48 operations of (+) Software 68 operations of (×) 48 operations of (+) Total power consumed (mW) 487.78 The system’s latency (ns) 3024  H.264 Total power consumed (W) 6.250 The system’s latency (ns) 1740Table 8
Design result provided by Tabu Search algorithm.
8-point DCT Best partition Hardware 13 operations of (×) 0 operations of (+) Software 3 operations of (×) 26 operations of (+) Total power consumed (mW) 86.8 The system’s latency (ns) 493  16-point DCT Best partition Hardware 40 operations of (×) 44 operations of (+) Software 88 operations of (×) 52 operations of (+) Total power consumed (mW) 393.712 The system’s latency (ns) 3776  H.264 Total power consumed (W) 5.276 The system’s latency (ns) 1990Table 9
Design result provided by Genetic algorithm.
8-point DCT Best partition Hardware 12 operations of (×) 22 operations of (+) Software 4 operations of (×) 4 operations of (+) Total power consumed (mW) 84.4 The system’s latency (ns) 630  16-point DCT Best partition Hardware 60 operations of (×) 90 operations of (+) Software 68 operations of (×) 6 operations of (+) Total power consumed (mW) 501.652 The system’s latency (ns) 2896  H.264 Total power consumed (W) 6.050 The system’s latency (ns) 1650To compare our algorithm to the previously mentioned algorithms, we have introduced a comparison metric calledΩ. It is obvious that the worst case Wworst presents when the system consumes the highest value of power (purely hardware) and takes too much time (purely software). We assume that Wworst=Hpmax×SLmax. The best case Wbest takes place when the system consumes less power and responds faster: Wbest=Hpmin×SLmin. (9)Ω=F1×F2=Hpsystem×SLsystem,where Wworst<Ω<Wbest.According to (9), when Ω is close to Wbest, the solution is better. Table 10 presents the different values of Ω.Table 10
Design results.
W w o r s t Simulated Annealing Tabu Search Genetic algorithm Our algorithm W b e s t 8-point DCT 73.482 53.648 54.648 40.206 37.304 8.379 16-point DCT 3335 1475.04 1486.65 1558 1461.9 531.831 H.264 27462 10875 10499.24 10560 10480.5 3432.75Based on Table10, we deduce that our algorithm offers less and closest rates to the best case, whereas using Simulated Annealing, Tabu Search, and Genetic algorithms the values of Ω are too high and far from the best state. Thus, we admit that our algorithm offers the best tradeoff between the two critical parameters: power consumption and system execution time.


## 6.1. Comparison with Other Algorithms and Discussion

Tables7, 8 and 9 summarize the design results provided by Simulated Annealing, Tabu Search, and Genetic algorithms, respectively.Table 7
Design result provided by Simulated Annealing algorithm.
8-point DCT Best partition Hardware 14 operations of (×) 4 operations of (+) Software 2 operations of (×) 22 operations of (+) Total power consumed (mW) 91.55 The system’s latency (ns) 586  16-point DCT Best partition Hardware 60 operations of (×) 48 operations of (+) Software 68 operations of (×) 48 operations of (+) Total power consumed (mW) 487.78 The system’s latency (ns) 3024  H.264 Total power consumed (W) 6.250 The system’s latency (ns) 1740Table 8
Design result provided by Tabu Search algorithm.
8-point DCT Best partition Hardware 13 operations of (×) 0 operations of (+) Software 3 operations of (×) 26 operations of (+) Total power consumed (mW) 86.8 The system’s latency (ns) 493  16-point DCT Best partition Hardware 40 operations of (×) 44 operations of (+) Software 88 operations of (×) 52 operations of (+) Total power consumed (mW) 393.712 The system’s latency (ns) 3776  H.264 Total power consumed (W) 5.276 The system’s latency (ns) 1990Table 9
Design result provided by Genetic algorithm.
8-point DCT Best partition Hardware 12 operations of (×) 22 operations of (+) Software 4 operations of (×) 4 operations of (+) Total power consumed (mW) 84.4 The system’s latency (ns) 630  16-point DCT Best partition Hardware 60 operations of (×) 90 operations of (+) Software 68 operations of (×) 6 operations of (+) Total power consumed (mW) 501.652 The system’s latency (ns) 2896  H.264 Total power consumed (W) 6.050 The system’s latency (ns) 1650To compare our algorithm to the previously mentioned algorithms, we have introduced a comparison metric calledΩ. It is obvious that the worst case Wworst presents when the system consumes the highest value of power (purely hardware) and takes too much time (purely software). We assume that Wworst=Hpmax×SLmax. The best case Wbest takes place when the system consumes less power and responds faster: Wbest=Hpmin×SLmin. (9)Ω=F1×F2=Hpsystem×SLsystem,where Wworst<Ω<Wbest.According to (9), when Ω is close to Wbest, the solution is better. Table 10 presents the different values of Ω.Table 10
Design results.
W w o r s t Simulated Annealing Tabu Search Genetic algorithm Our algorithm W b e s t 8-point DCT 73.482 53.648 54.648 40.206 37.304 8.379 16-point DCT 3335 1475.04 1486.65 1558 1461.9 531.831 H.264 27462 10875 10499.24 10560 10480.5 3432.75Based on Table10, we deduce that our algorithm offers less and closest rates to the best case, whereas using Simulated Annealing, Tabu Search, and Genetic algorithms the values of Ω are too high and far from the best state. Thus, we admit that our algorithm offers the best tradeoff between the two critical parameters: power consumption and system execution time.


## 7. Conclusion

Given today’s requirements for less consuming systems accompanied by high speed, the necessity of creating more efficient types of embedded systems has been persisted. One of the most elegant solutions that provides system’s optimizations is the HW/SW partitioning. For that, we have developed a new algorithm based on HW/SW partitioning in order to obtain the best tradeoff between power and latency taking into account the dark silicon problem. Our algorithm has been applied and tested to Simulated Annealing, Tabu Search, and Genetic algorithms and as the research has illustrated, we admit that our algorithm is best suited for the urgent achievement of the desired combination of high speed and less power in core based embedded systems.



---

*Source: 8624021-2017-02-19.xml*