APP下载

软硬件协同设计中的软硬件划分方法综述*

2017-09-03李岩屈媛陈仪香

单片机与嵌入式系统应用 2017年8期
关键词:嵌入式协同软件

李岩,屈媛,陈仪香

(1.华东师范大学 计算机科学与软件工程学院 嵌入式软件与系统系,上海 200062;2.华东师范大学 教育部软硬件协同设计技术与应用工程研究中心)

软硬件协同设计中的软硬件划分方法综述*

李岩1,2,屈媛1,2,陈仪香1,2

(1.华东师范大学 计算机科学与软件工程学院 嵌入式软件与系统系,上海 200062;2.华东师范大学 教育部软硬件协同设计技术与应用工程研究中心)

近年来,随着信息领域的物联网、工业互联网、机器人等研究热点发展,嵌入式系统技术再次得到科技工作者和工程师的广泛关注和重视,同时嵌入式系统产品的集成度和性能要求越来越高。软硬件协同设计是开发嵌入式系统产品的重要方法之一,而软硬件划分是软硬件协同设计中的关键技术。本文对现有软硬件划分方法从不同层面进行梳理和分类,重点介绍几种常用的软硬件划分方法,并结合实例进行了详细阐述,最后对这几种方法进行综合比较,供嵌入式系统开发科技工作者和工程师参考。

嵌入式系统;软硬件协同设计;软硬件划分

引 言

随着物联网、工业互联网和机器人的发展,高科技产品逐渐渗透到人们的学习、生活中,人们对高科技产品的集成度和功能要求越来越高,嵌入式系统设计面临着许多矛盾和问题,主要有两个方面,一方面是低成本和高性能之间的矛盾,另一方面是更迭周期与复杂性之间的矛盾。针对上述矛盾,设计者的解决方案是采用软硬件协同设计方法进行嵌入式系统设计。软硬件协同设计是在系统目标要求的指导下,通过综合分析系统软硬件功能及现有资源,最大限度地挖掘系统软硬件之间的并发性,协同设计软硬件体系结构,使得系统能够工作在最佳状态,达到性能最优[1]。

软硬件协同设计的过程通常包括选择、划分、规划、通信这4个主要任务[2]。“选择”的目的是分析系统实现需要哪些功能模块;“划分”的目的是将选择出的功能模块一部分交由软件实现,另一部分交由硬件实现,从而达到系统的性能要求;“规划”的目的是避免系统出现时间响应冲突或硬件资源使用冲突等;“通信”的目的则是保证各个软硬件模块之间良好的交互通信。

其中,“划分”即软硬件划分,是软硬件协同设计的关键技术,对提高系统性能至关重要。软件的特点是灵活、成本低,但运行慢,而且并行处理不稳定;而硬件的特点是速度快,并行处理稳定但实现成本高。因此,如何充分利用软件和硬件的优势,使得系统兼顾时间、成本、功耗、硬件面积等方面的性能,是划分的关键。

软硬件划分是一个典型的组合优化问题。本文首先将软硬件划分方法依据求解组合优化问题的常用算法进行分类,然后围绕这几种分类结合实例重点阐述了近年来软硬件协同设计中几种常用的软硬件划分方法,并针对这几种方法进行了综合比较,最后做出总结。

1 研究现状

1.1 国外软硬件划分

嵌入式系统设计者最初是通过手工方式对系统进行软硬件划分,而自动划分方法最早出现在20世纪90年代初期[3]。通过研究,国外学术界相继出现了采用抽象估计可调度系统结构概率[4]的方法,改进迭代算法、模拟退火算法、禁忌搜索算法以及遗传算法等来实现软硬件划分。之后国外众多研究学者先后提出多种基于经典优化算法的改进算法,从而提高软硬件划分效率。Bender和 Schwiegershausen等人[6]提出采用混合整数线性规划方法(MILP)来解决软硬件划分问题。Chonlameth等人[8]提出在基于约束(constrain-based Co-Design)的软硬件协同设计方法中引入Unified Modeling Language来进行软硬件划分,在软硬件协同设计中引入模型分析,将软硬件划分上升到一个新的层面。

1.2 国内软硬件划分

2003年,中国科学院软件研究所陈思功等人在Chonlameth等人[8]提出的CBC/UML方法的基础上,提出改进的基于UML模型分析的软硬件划分方法。2005年,中国科学院院士、华东师范大学何积丰教授[9],以矩阵乘法运算为例,提出关于同步模型使用UPPAAL工具的最优软硬件划分方法。2008年,黄源等人[17]提出采用基于时间Petri网来进行软硬件划分[8],开辟了软硬件划分技术新局面。2010年,国防科技大学罗莉、夏军等人[10]提出一种有效的面向多目标软硬件划分的遗传算法。2011年,天津工业大学韩红蕾等人[11]针对调度与软硬件划分问题提出一种高效的启发式算法,即多核片上系统的高效软硬件划分及调度算法。2014年,谢晓娜等人提出了支持多属性决策的软硬件划分方法。2015年,陈玮等人提出基于组合算法的软硬件划分方法,即先利用遗传算法找到问题的可行解,再利用粒子群算法找到最优的方案。2015年,钟丽等人[22]提出基于ESL方法的SM2加密算法的软硬件协同设计方案。该方案通过分析SM2算法的原理,研究不同的软硬件划分方案,采用SystemC语言对硬件模块进行周期精确级建模。通过比较软、硬件模块周期数,得到最佳的性能划分方法。最终通过将ESL模型转化为RTL级模型实现逻辑综合与比较,进而对资源和开销进行平衡。

2 软硬件划分方法介绍

2.1 基于规划类算法的软硬件划分方法

2.1.1 线性规划方法

对系统进行设计,尤其是在对系统级芯片(SoC)进行设计时,必须考虑到系统的集成度、体积、功耗、可靠性等问题。多目标的系统设计通常会明确给出要达到什么样的目标,系统最终要求综合考虑所有目标,在满足所有目标约束的条件下达到系统性能最优。该问题类似于对多个不等式进行线性规划求目标函数的最优解问题。将线性规划方法应用到系统软硬件划分上,借助参数表示将问题抽象成一个目标函数和几个约束不等式,利用现有的线性规划软件对该目标函数进行求解。

本文以一个PDA手机平台的视频、音频发送系统[10]为实例来介绍该方法。参数如表1所列,系统的每一个模块都有其相应的IP核和软件构件可以实现其功能。此外,还要求系统成本不得超过1100元人民币,系统硬件面积不得超过3 900 mm2,系统功耗不能超过1.9 W,响应延迟时间不得超过600 ms。软硬件划分的目的是在满足各项约束的条件下,寻找所有可能满足约束条件的构建组合。

表1 各功能模块对应IP核及软件构件参数列表[10]

通过系统问题描述,设一组参数Xij,表示第i个功能单元的第j个构件或IP核,其值为1表示启用该构件,为0表示不启用该构件;Cij表示构件或IP核的成本;Aij表示构件或IP核的硬件面积;Eij表示构件或IP核的功耗;Tij表示构件或IP核的时间特性。则目标函数为求所有性能参数之和的最小值MIN,即

(1)

功耗对系统开销影响较大,但其值很小,为了突出功耗在划分中所起的作用,使用一组影响因子α,β,γ,δ。其中α为系统成本的影响因子,β为系统硬件面积的影响因子,γ为系统功耗的影响因子,δ为系统时间特性的影响因子。经过不断试验,得到这组影响因子的常数分别是3、1、2 000、6.5。因此,目标函数为:

(2)

系统约束模型可以表示为:

(3)

此外,系统隐含的约束为每个功能单元只能选择一个软件构件或者IP核,因此,有∑X1j=1,∑X2j=1,∑X3j=1,∑X4j=1,∑X5j=1,∑X6j=1。

通过以上定义及分析,对目标函数和约束函数使用LINGO线性规划软件进行求解,得到的划分结果为111 432,即该系统的各个模块的软件构件及IP核构成为Core11Core21Core31Core44Core53Core62,即音频数据采集模块用软件构件Core11实现,视频数据采集模块用软件构件Core21实现,用户界面用Core31实现,MP3编码模块用IP核Core44实现,MPEG4编码模块用IP核Core53实现,音频与视频同步模块用软件构件Core62实现。但是,此解只能作为满足系统约束条件下的解空间中某一方面性能的最优解,是局部最优解。

许多学者[12]对线性规划方法作出了改进,提出了如整数规划、混合整数规划等方法,使系统模型更加精确,得到划分的最优解。但线性规划作为优化问题的经典求解方式,对于规模较小的问题,求解效率较高。

2.1.2 基于UML模型的分析方法

在进行软硬件协同设计时,开发者会留下许多文档,如设计说明文字、图表等,通过对文档的分析得到系统约束。这些文档通常是使用自然语言书写,不足以体现软硬件协同的设计环境,对系统模型分析有一定的局限性。Chonlameth等人[8]提出的基于约束的协同设计方法,首先从需求文档中提炼出设计约束模型,从而明确系统设计中各个组件的界限。基于约束的软硬件协同设计过程对每个阶段(选择、划分、规划、通信)进行迭代,每次迭代会产生新的约束模型,根据新的约束再进行设计。当不再有新的约束产生时,意味着系统满足了所有的约束,是可行的。

Chonlameth在基于约束的设计方法里引入UML,给协同设计提供了一个良好的设计方法。UML具有强大的需求分析功能,可以从不同角度明确系统需求,加上它使用图形化语言对需求进行建模,更加正规、直观。对象约束语言是UML中一个重要组成部分,它是一种形式化语言,能利用文字标记清晰准确地描述出UML基础机制不能表示的状态属性。CBC/UML方法的核心是通过UML建立系统模型并给出不同模型中的系统约束,当所有约束都用软件或硬件实现,系统协同设计就完成了。

针对CBC/UML方法对系统模型方面提炼不足的缺点,中国科学院陈思功等人对该方法中只使用UML用例图和活动图进行了拓展,增加了顺序图和协作图,利用权值约束的数学方法。具体做法是以智能电话为例,通过用例图进行用例分析,明确资源需求。从已有技术出发,提出了解决模型,最后从系统实现可行以及系统约束权值最小角度出发完成软硬件划分,并能得到系统开销小的模型。改进的基于UML的划分方法更适用于较为复杂的嵌入式系统,并且能为系统模型提供重要的参考[2]。

2.2 基于构造式的软硬件划分方法

在多核片上系统软硬件协同设计中,软硬件划分与调度是设计的关键,韩红蕾等人[11]针对这一关键问题提出一种高效的启发式算法。该算法包括两部分:一部分是多处理器上的调度问题,根据任务图中各个任务节点的出度,即任务间的通信费用,给出各个任务节点的优先级,出度高的节点优先级高,出度相同的节点,比较其软件计算时间,软件计算时间越长,优先级越高。出度较大或软件执行时间越长的任务优先被执行,保证了后续任务的等待时间较短,从而使得总执行时间较短。另一部分是软硬件划分问题,在满足硬件约束的前提下,每次迭代将关键路径上受益面积比[11]最大的任务交给硬件实现,然后更新关键路径与剩余的硬件面积,循环结束的标志是剩余硬件资源不再满足选择的关键路径上的任意任务所需。该算法在已有算法[16]基础上改进了38%。结合该算法与线性规划方法,提出在使用该算法进行软硬件划分之后使用线性规划方法验证划分结果是否最优,若结果不是最优,则需要重新使用该算法进行划分。

图1 任务图模型

首先,为了使系统的执行时间最短,将多处理器嵌入式系统的软硬件划分问题和多任务在多处理上的调度问题结合起来。给出问题描述:以任务T1、T2、…、T10分配到5个处理器P1、P2、P3、P4、P5上为例,任务之间存在通信,通信会产生通信费用。如何在5个处理器上调度10个任务,使得通信费用与执行时间达到最优?

通过由任务图模型刻画软硬件划分问题的常用方法,这里给出一个任务图模型,如图1所示,每个节点代表一个任务,每条有向边表示相应两节点之间存在通信,有向边的权值表示通信费用。

任务图模型给出后,根据节点之间的通信次数将任务节点集合V划分成p个子集Vi,一个通用的划分规则如下所示:

图2 调度后的任务图模型

d(Ti,Tj)表示Ti与Tj之间的通信次数;0代表两个任务之间没有通信关系。给出边界值ε、ζ、η按照δij≤ε,ε<δij≤ζ,ζ<δij≤η,η<δij以及d(Ti,Tj)=0,将全部任务划分成5个等价类。等价类划分即任务调度,调度后的任务图如图2所示。其中,Ts表示任务实际执行时间,Cs表示具有通信关系的两个任务集之间实际的通信时间。由调度后的任务模型进行软硬件划分,选出调度长度最长的路径,从中选出受益面积比最大的任务交给硬件实现,循环执行该算法,直到剩余的硬件资源不能满足下一个选出任务需要的硬件资源。

根据韩红蕾等人提出的划分方法,产生的结果不一定是最优的,也存在可能不满足系统约束的划分结果。因此,需要在每次软硬件划分结束之后,对划分结果使用线性规划方法验证,观察是否满足系统所有约束条件,并且达到性能最优,如果不满足上述条件,则追溯到任务调度规则,重新对系统任务进行划分。构造式方法依赖于有效的启发式规则,启发式策略虽然不能保证得到最优解,但可以在一定时间内找到近似最优解。

2.3 基于搜索式的软硬件划分方法

2.3.1 蚁群算法

搜索式算法原理是从解空间中的任意解出发,搜索其邻域中更优的解来替代当前解。蚁群算法初始将m只蚂蚁放在起始节点上,每条边上赋予初始信息素浓度。当蚁群一次完整的寻优过程完成之后,对每条边上的信息素浓度计算并更新,然后又进行新一轮的循环。循环结束的标志是蚁群选择了同一条路径或达到预定义的循环次数。以第2.1.1小节提到的PDA手机平台的视频、音频发送系统为例,任务图模型定义如下:节点V(vt,v1,v2,…,vs)代表任务模块,音频数据采集模块记做v1,视频数据采集模块记做v2,用户界面记做v3,MP3编码模块记做v4,MPEG4编码模块记做v5,音频与视频模块记做v6。

系统的任务节点数为N,则第i(i=1,2,…,N)个节点采用第j(j=0或1,0表示软件实现,1表示硬件实现)种开发方式。得到的任务图模型如图3所示。

图3 PDA手机平台 任务图模型

利用基本蚁群算法来求解嵌入式系统软硬件划分问题,当搜索循环到一定次数时,由于搜索过程中的概率性和正反馈作用,产生的局部最优解上信息素浓度不断增加,最终导致所有的搜索结果都趋于一个局部最优解。李正民等人[13]在进行软硬件划分时对蚁群算法做出了改进,在信息更新过程中引入局部和全局更新规则。即当一只蚂蚁完成一条搜索路径后,路段信息素浓度按照局部更新规则更新;当全部蚂蚁都完成一次路径搜索后,若在本轮搜索过程中产生了比以前更优的路径,则将当前路径作为全局最优路径,并采用全局更新规则对与最优路径各节点相连的路段信息素浓度进行更新。局部和全局更新规则的使用,有效防止了一条路径上信息素浓度的过度积累,通过在更新规则中引入调整参数来调节同一条路径被其他蚂蚁搜索的概率,尽量使得更多的路径得到遍历,降低陷入局部最优解的概率。

基于蚁群算法的嵌入式系统软硬件划分,首先对系统任务进行建模,将划分问题转换成多条件约束问题。采用二进制形式表示最优划分方案,则某任务节点的软件和硬件划分状态通过0或1表示,蚁群对最优划分方案进行局部和全局搜索,搜索过程中不断对信息素进行更新,每次搜索完成后保存全局最优解。对当前全局最优解进行条件判断,若满足条件则结束搜索;若不满足,则继续搜索。将PDA手机平台的视频与音频系统通过改进的遗传算法进行软硬件划分,得到的划分结果如下:

v1为0,采用软件构件实现,v2采用软件构件实现,v3采用软件构件实现,v4采用硬件构件实现,v5采用硬件构件实现,v6采用软件构件实现。

使用蚁群算法进行软硬件划分的关键是保证每次搜索都尽可能多的遍历路径,使得每次全局搜索完毕后得到的是全局最优解而非局部最优解[13]。

2.3.2 改进的遗传算法

多目标划分求解的关键是求出问题的最优解集,然后由设计者根据需要选择合适的解。遗传算法具有并行、群体搜索的特点,通过多次迭代筛选出适应性最强的一组解或多组解,非常适用于求解多目标优化问题。

多目标优化问题一般可以描述为下面的数学模型[10]:

(5)

式中,x=(x1,x2, … ,xn)T是Rn空间中带有n个决策变量的向量;f(x)是目标函数,包含p个子目标函数;gi(x)是m个不等式的约束函数,构成多目标优化的约束集。

针对第2.1.1小节中的实例,国防科技大学罗莉等人[10]改进传统的遗传算法,在算法实现中,遗传编码采用简单易行的符号编码方式,每一位代表一个功能模块,其值为对应的IP核或软件构件;变异操作采用基于随机概率的单点变异,发生变异的数目为种群规模的0.2倍;选择操作采用父子选择策略,即子代全部进入下一代,不足的部分用父代个体中适应度大的补充。遗传算法模拟自然界的“优胜劣汰”,罗莉等人用适应度大小来模拟个体对环境的适应能力,以此表示解点的好坏。设置的适应度函数计算每组解的适应能力,将适应能力低的个体淘汰。为了加快求解速度,避免产生违反约束的无效解,对适应度函数中的参数进行自适应调整,增加有效解,并基于惩罚函数选择保留精英。

使用这种改进的遗传算法进行软硬件划分可以得到多组满足约束条件的解,其中包含使用线性规划方法得到的解,这些解都是在某一方面性能最优的情况下兼顾满足其他方面的约束条件,设计者可以根据需要选择其中一个。

2.4 基于任务级的软硬件划分方法

2.4.1Primal-Dual划分策略

传统的软硬件划分方法分为面向软件和面向硬件两种。面向硬件即从硬件开始,根据系统性能的约束条件,将部分任务移至软件实现的方法;面向软件即从软件开始,根据系统对时间的约束,将部分任务移至硬件实现的方法,该方法具有实现简单、易用的特点。

原始-对偶(primal-dual)策略[14]是一种经典的组合优化策略。Vulcan和Cosyma是最早的软硬件协同综合系统(co-synthesissystems),它们均采用primal-dual策略进行软硬件划分。其中,Vulcan采用primal策略,即在划分之前将所有功能模块由硬件实现,然后根据程序中线程之间的并发性以及依赖关系,将某些模块交由软件实现,观察这些模块移植到CPU后系统是否可行,若可行则更新系统开销,继续划分。Cosyma与Vulcan截然相反,Cosyma采用dual策略,即在划分之前将所有功能由软件实现,然后使用Cx编译器将程序源码转换为ES图,对系统进行软硬件划分,即对该ES图进行模块划分,将一部分模块交由硬件实现。Cosyma系统在进行功能分配时以程序块为原子,即将一部分程序块交由硬件实现,程序块不可分割。

类似于使用dual策略,一个简单的嵌入式系统案例:在道路监控中实现降雨实时监测功能[15]。该系统主要利用摄像头的实时拍照功能,将每次采集到的照片进行灰度处理,之后与晴天时同一场景下的灰度图进行对比,观察其中是否有雨滴出现后产生的光强差,从而得出是否有降雨的结论。由于系统实现过程简单,首先将所有功能模块使用软件实现,然后将整个程序分成读入帧图像、图像预处理、转灰度图、灰度图相减、划分子块、统计子块、做出决策子模块,通过在MATLAB中仿真运行程序,记录每个子模块的运行时间,取10次仿真结果的平均值,得到如表2所列的运行结果。比较各模块的平均运行时间,最终决定将比较耗时的读入图像和转灰度图模块交由硬件实现,其他模块使用软件实现。

表2 各模块平均运行时间

2.4.2 基于ESL的划分策略

基于电子系统级(Electronic System Level,ESL)的设计与验证方式是从系统级到时序级对芯片整体架构进行软硬件划分和仿真,主要流程分为:高层次建模、系统集成、验证调试、架构探索、系统综合等[20]。

SM2算法是国家密码管理局于2010年12月发布的椭圆曲线公钥密码算法,椭圆曲线密码学算法的密钥长度是可变的,SM2标准规定使用256位,这对算法的性能优化提出了很高的要求。SM2属于计算密集型算法,且其层次性较强,实现结构从顶层到底层分为:模运算层、点运算层、多倍点运算层和应用层[21],其中多倍点运算层包括点乘运算。针对每一级运算复杂度的不同选择使用软件或硬件方式实现,共组合产生6种划分方式。

基于不同的划分方案,使用SystemC语言对SM2算法硬件实现部分进行周期精确(Cycle Accurate)建模[20]。接着通过系统级与模块及两层验证比较软硬件模块执行周期数,以模乘运算为例[22],如:对于点乘运算,硬件实现相较于软件实现所需周期数,其倍数能提高500倍,性能得到大幅度提高,可将该部分划分为硬件实现。当时钟频率为 50 MHz时,用软件完成一次加密算法超过10 s,若采用点乘部分作为硬件加速模块,点乘时间为20 ms,完成一次加密需要40 ms。此时优选硬件实现点乘及其以下的运算模块,其他模块采用软件实现。此划分方式可提高系统实时性。

硬件加速模块提高系统实时性的同时,还会提高系统的硬件面积和功耗。同时将RTL级模型在硬件平台上实现,通过比较面积和功耗得到性能和资源的平衡。用户可根据系统需求,对6种划分方式进行分析与选择。

结 语

本文主要介绍了常用的3种软硬件划分求解方法和一种任务级的软硬件划分方法。

规划类方法主要介绍了最常用的线性规划法和基于UML模型分析的软硬件划分方法,线性规划、动态规划、混合整数规划等计算复杂度高,内存开销大,只适合于求解小规模的嵌入式系统划分问题,随着划分问题扩大,计算时间复杂度呈指数上升。构造式方法关键在于构造正确的启发式规则,求解效率较高,可以得到次优解,但针对复杂度高的划分问题难以构造出合适的启发式规则。搜索式算法求解效率高,可以得到最优解,但也容易陷入局部最优。基于任务级的划分方法在实践中应用广泛,但多是根据经验进行划分,缺乏科学的分析方法。

[1] 杜敏.嵌入式系统软硬件划分方法的研究[D].哈尔滨:哈尔滨理工大学,2008.

[2] 陈思功,秦晓,章恒翀.基于UML的软硬件协同设计的模型分析方法[J].软件学报,2003(1):103-109.

[3] CHATHA K S,VEMURI R.An Iterative Algorithm for Hardware-Software Partitioning,Hardware Design Space Exploration and Scheduling[J].Design Automation for Embedded Systems,2000,5(2):281-293.

[4] D’AMBROSIO J G,HU X.Configuration-level Hardware/Software Partitioning for Real-time Embedded Systems[C]//Proceedings of the Third International Workshop on Hardware/Software Co-Design,1994:34-41.

[5] Kalavade A,Lee E A.The Extended Partitioning Problem:Hardware/Software Mapping,Scheduling,and Implementation-bin Selection[J].Design Automation for Embedded Systems,1997,2(2):125-163.

[6] Bender,Armin.Design of an Optimal Loosely Coupled Heterogeneous Multiprocessor System[J].European Design&Test Conference,1997:275-281.

[7] Dick R P,Jha N K.MOCSYN:multiobjective core-based single-chip system synthesis[C]//Design,Automation and Test in Europe Conference and Exhibition,1999.

[8] Chonlameth Arpnikanondt,Vijay K Madisetti.Constraint-Based Codesign(CBC) of Embedded Systems:The UML Approach[C]//Center for Signal&Image Processing(CSIP) Electrical&Computer Engineering Georgia Tech,Atlanta,GA 30332-0250.

[9] Jifeng He,Dang Van Hung,Geguang Pu,et al.Exploring optimal solution to hardware/software partitioning for synchronous model[J].Formal Aspects of Computing,2005,17(4):443-460.

[10] 罗莉,夏军,何鸿君,等.一种有效的面向多目标软硬件划分的遗传算法[J].计算机科学,2010,37(12):275-279.

[11] 韩红蕾,刘文菊,武继刚,等.多核片上系统的高效软硬件划分及调度算法[J].计算机工程与科学,2011,33(9):57-62.

[12] 郭天天.嵌入式系统软硬件划分技术研究[D].长沙:国防科技大学,2006.

[13] 李正民,郭金金,吕莹莹.一种嵌入式系统软硬件划分算法[J].计算机仿真,2011,28(10):204-207.

[14] Jorgen Staunstrup,Wayne Wolf.Hardware/Software Co-Design Principles and Practice[M].The Hague:Kluwer Academic Publishers,1997.

[15] 杨志华.摄像头降雨监测系统的软硬件协同设计[D].上海:华东师范大学,2013.

[16] Youness H,Hassen M,Sakanushi K,et al.A High Performance Algorithm for Scheduling and Hardware-Software Partitioning on MPSoCs[C]//Proc of the 4th Int’l Conf on Design&Technology of Integrated System in Nanoscal Era,2009.

[17] 黄源,钟艳如,陈洺均.基于时间Petri网的嵌入式系统软硬件划分方法[J].微计算机信息,2008,24(8):33-35.

[18] 陈玮,顾思思.基于组合算法的嵌入式系统软硬件划分方法[J].计算机应用与软件,2015(10):240-243.

[19] 谢晓娜,朱清新.支持多属性决策的嵌入式系统软硬件划分[J].计算机应用研究,2014,31(5):1445-1448.

[20] 游余新.基于ESL设计方法学的So设计[J].中国集成电路,2011(9):29-35.

[21] 国家密码管理局.SM2椭圆曲线公钥密码算法总则[EB/OL].[2017-04] .http//www.oscca.gow.cn/.

[22] 钟丽,刘彦,余思洋,等.嵌入式系统芯片中SM2算法软硬件协同设计与实现[J].计算机应用,2015,35(5):1412-1416.

李岩(硕士研究生),主要研究领域为嵌入式软件与系统设计与建模;屈媛(硕士研究生),主要研究领域为嵌入式软硬件协同设计;陈仪香(教授),主要研究方向为嵌入式软件与系统设计与建模、嵌入式系统软硬件协同设计、软件可信性度量以及形式化方法。

Review of Hardware/Software Partitioning Method in Hardware-software Co-design

Li Yan1,2,Qu Yuan1,2,Chen Yixiang1,2

(1.Department of Embedded Software and Systems,School of Computer Science and Software Engineering,East China Normal University,Shanghai 200062,China;2.MOE Engineering Research Center for Software/hardware Co-design Technology and Application,East China Normal University)

With the development of internet of things,industrial internet,robot technology in the field of information,the embedded system technology attracts scientists and engineers attention broadly again.Meanwhile,high integration and performance of embedded products are required.One of important approach to develop embedded products is hardware-software co-design and the key point is hardware/software partitioning.According to various scenes,we classify the methods in hardware/software partitioning proposed recently and elaborate each partitioning method combined with real cases.Then a comprehensive comparison is made between these methods,which provides reference to scientists and engineers in the field of embedded system development.

embedded system;hardware-software co-design;hardware/software partitioning

上海市高校物联网知识服务平台计划(ZF1213)。

TP31

A

�士然

2017-04-17)

猜你喜欢

嵌入式协同软件
禅宗软件
蜀道难:车与路的协同进化
软件对对碰
“四化”协同才有出路
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
三医联动 协同创新
谈软件的破解与保护
协同进化
Altera加入嵌入式视觉联盟