基于EDA的嵌入式系统软硬件划分方法
扫描二维码
随时随地手机看文章
1 引言
嵌入式系统是由一个或若干个微处理器、ASICs、存储器和总线构成的,在一定时间内响应输人的系统。传统的嵌入式系统的设计方法将硬件和软件划分为两个独立的部分,由硬件工程师和软件工程师按照拟定的设计流程分别完成。这种设计方法只能改善硬件和软件各自的性能,而在有限的设计空间中不可能对整个系统做出较好的性能综合优化。随着嵌入式系统的功能越来越强,其结构变得越来越复杂,系统的集成度越来越高,调试越来越困难,传统的设计方法是已经不能满足现代嵌入式系统的设计要求,取而代之的是以软硬件协同设计为主要特征的系统设计方法,其主要思想是用自动、优化的系统体系结构开发替代人工的软硬件子系统分割,在系统设计的高层阶段实现系统原型的快速开发并预估系统实现的性能,实现系统在性能、成本等方面的优化。
软硬件划分是嵌入式系统软硬件协同设计中的一个关键问题,其作用是从软硬件系统设计空间中,根据系统功能定义,获得一个满足系统时间、成本、功耗等方面要求的趋于最优的实现,其结果直接决定系统设计的优劣。近年来,人们将各类启发式算法应用于软硬件划分的研究中,取得了较好的方案。Eles 等[1]利用模拟退火算法,Ernst 等[2]采用模拟退火算法和禁忌搜索算法,Saha 等[3]运用遗传算法实现软/硬件划分。软硬件划分问题本质上是一类组合优化问题,分布估计算法(Estimation of Distribution Algorithms,EDAs)是一种新的基于种群进化的算法,具有收敛速度快,避免陷入局部最优的特点。本文提出了一个基于分布估计算法的软硬件划分算法,较好地应用于软硬件协同设计中。
2 划分模型
系统功能的软件通常采用C/C++ 语言等高级程序设计语言实现,然后根据不同颗粒度的要求提取系统控制数据流图CDFG。控制数据流图是系统的行为级描述,通常使用有向无环图表示,主要描述系统中任务间的控制、数据关系及每个任务的代价信息,而与系统实现时采用什么样的体系结构无关。
图1 控制数据流图CDFG
3 划分算法
分布估计算法是一类基于概率模型的进化算法, 与传统的进化方法不同, 它不使用交叉、变异等算子,而是以群体中适应度较高的个体的概率分布作为进化模型,并由该模型产生下一代子群,利用跟先进的方法取代了遗传算法再结合操作方式,拓展了算法的应用空间。由于进化模型是由统计的概率分布信息推导而来, 因而能最大限度地利用已有信息,更准确地反映变量间的相互关系,显现出群体的主要特征。理论研究表明,EDAs 在迭代过程中有可能获取群体中的个体之间及个体中不同位之间的交互信息,辨识并且操纵重要的模式块,从而能够有效求解决策变量之间有相互作用的优化问题[4]。
根据概率估计算法的不同,EDAs 分为一阶EDAs 和高阶EDAs 两大类,其中,二阶EDAs 中的建立在一般结构Gauss 网络上的分布估计算法(GN-EDA )采用一种不使用条件概率密度函数来产生样本的方法,无需进行Gauss 网络结构的学习,大大减少了计算量,而且可以获得高精度的联合密度函数[5]。
GN- EDA 的算法步骤为:
4 仿真试验
算法采用C++ 在m IntelP41.6GHz 256MRam 环境下实现,CDFG 的结点数、时间约束、每个节点的信息、结点之间的连接关系都是随机生成的。首先,随机生成了 30、60、100 、200 个节点的 CDFG,并随机生成了各个节点的性能参数,同时根据对节点的性能参数的分析,确定了系统的约束条件以及这些约束条件各自的权重。CDFG 硬件执行时间为软件执行时间的20%~50%,硬件代价约束取值为总硬件代价之和的50% 。对每个 CDFG 都进行 100 次的测试,并将最终求出的最优解的代价函数值的平均值同遗传算法求出的值进行了比较,实验数据如表 1 所示。
表 1 为60 节点系统随机运行10 次的统计结果。从表中数据可以看出,与遗传算法相比,本文提出的GN-EDA 算法在算法的执行速度和搜索目标函数最优值方面都有很大的优势。对于各节点数系统,尤其是对于较多节点数系统,GN-EDA 算法有更为优化的结果,且划分结果较为稳定。
图2 系统性能收敛曲线
图 2 为 60 节点系统随机运行30 次,划分过程中平均每代最佳有效个体对应的系统性能,从图中可以看出GN-EDA 算法有很好的收敛性。
5 结论
本文作者创新点:运用一种建立在一般结构Gauss 网络上的分布估计算法对嵌入式系统软硬件划分问题进行了研究,该算法无需进行Gauss 网络结构的学习,大大减少了计算量,适用于处理日趋复杂的嵌入式系统软硬件划分问题。实验结果表明,GN-EDA 算法能有效地完成软硬件划分,并具有较好的计算稳定性。