一种保证质量的快速软硬件划分方法
【技术领域】
[0001] 本发明涉及计算机技术领域,具体涉及一种对嵌入式系统模型进行软硬件划分的 方法。
【背景技术】
[0002] 随着嵌入式系统与微电子技术的飞速发展,硬件的集成度越来越高,这使得将 CPU、存储器和I/O设备集成到一个硅片上成为可能,S0C应运而生,并以其集成度高、可靠性 好、产品问世周期短等特点逐步成为当前嵌入式系统设计技术的主流。
[0003] 针对嵌入式系统Soc设计面临的问题与挑战,研究者们开始探索新的设计方法 学--软硬件协同设计(Hardware/Software Co-Design)方法学。软硬件协同设计不仅是 一种设计技术,同时也是种新的设计方法学,其核心问题是协调软件子系统和硬件子系统。 与传统的嵌入式系统设计方法不同,软硬件协同设计强调软件和硬件设计开发的并行性和 相互反馈,如图1所示,克服了传统方法中把软件和硬件分开设计所带来的种种弊端,协调 软件和硬件之间的制约关系,达到系统高效工作的目的,软硬件协同设计提高了设计抽象 的层次,拓展了设计覆盖的范围。
[0004] 软硬件划分是软硬件协同设计中的一个关键技术。软硬件划分是指在系统设计过 程中,给每个功能模块分配一种实现方式,或者是硬件电路实现,或者是在通用处理器上用 软件代码实现。软件实现成本较低并且几乎不占用芯片面积,但速度较慢;而硬件实现速度 很快但会占用较大芯片面积并且成本较高。
[0005] 软硬件划分的目的是综合软件和硬件各自的优点,根据所设计的具体系统的特性 和用户对各种性能指标的要求,给出一个能兼顾各个属性并满足系统要求的分配方案。一 个好的划分方案可以减少资源的使用、降低系统的成本,为后面的设计与开发打好基础,而 要得到好的划分方案就必须有好的划分算法,划分算法性能不佳会导致开发周期的增加, 甚至影响整个开发过程。
[0006] 任务图用来对划分目标进行建模,任务图为一个有向无环图,它重点描述系统中 任务之间的数据、控制关系以及每个节点的参数信息,而与现实中系统采用的具体体系结 构无关。任务图的每个节点代表一个任务,节点的属性包含该任务分别用软件和硬件实现 所需的面积、时间、成本和功耗,任务图的每条有向边上有一个权值,表示与其相连的两个 节点采用不同实现方式时的通信功耗。对一个用任务图描述的嵌入式系进行软硬件划分的 例子如图2所示。
[0007] 启发式算法(Heuristic Algorithm)是相对于最优化算法提出的。一个问题的最 优算法求得该问题每个实例的最优解。启发式算法可以这样定义:一个基于直观或经验构 造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的 一个可行解,该可行解与最优解的偏离程度一般不能被预计。
[0008] 遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机 理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。遗传算 法是从代表问题可能潜在的解集的一个种群开始的,而一个种群则由经过基因编码的一定 数目的个体组成。每个个体实际上是染色体带有特征的实体。染色体作为遗传物质的主要 载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的 外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一 开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,往 往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代演 化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度大小选择个体,并借助 于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将 导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经 过解码,可以作为问题近似最优解。遗传算法整体流程如图3。然而,遗传算法存在耗时较长 的缺点。
[0009] 生物免疫系统是一个自适应和自组织的系统,具有强大的信息处理能力。生物免 疫系统的主要作用是能够辨别"自己"与"异己"物质,只对非自体成份的抗原作出免疫应 答,对"自体"成份形成免疫耐受,并具有排除与记忆非己的功能。而阴性选择算法是免疫系 统识别非自体,对自体形成自我耐受的关键所在,因此成为核心免疫算法之一,其性能对整 个免疫系统具有重要意义。阴性选择算法的一个主要优点就是在未知的状态下可以对非我 模式进行有效的防御。阴性选择算法整体流程如图4。然后,阴性选择算法结果随机性打、容 易陷入局部最优的缺点。
【发明内容】
[0010] 针对现有技术的不足,本发明旨在提供一种保证质量的快速软硬件划分方法,基 于遗传算法和阴性选择算法的软硬件划分方法来软硬件划分的速度以及提高最终划分方 案的质量和分布的广泛性。
[0011] 为了实现上述目的,本发明采用如下技术方案:
[0012] -种保证质量的快速软硬件划分方法,包括如下步骤:
[0013] S1给定一个描述嵌入式系统的任务图,首先进行参数和数据结构设置,包括自我 集self、自我集更新长度aSelf、自我集最小匹配长度bSelf、记录每个基因位上0的浓度的 数组(3〇11818七611〇6_0和记录每个基因位上1的浓度的数组〇〇11818七611〇6_1、交叉概率?〇和变 异概率Pm;
[0014] S2根据编码码长和当前进化代数更新自我集最小匹配长度bSelf;
[0015] S3产生一个新的种群,把个体每一位上0和1的等位基因浓度作为概率,随机设置 所有个体每一位上的值;
[0016] S4使用自我集对步骤S3中产生的种群进行阴性选择,把不满足条件的个体淘汰 掉,然后将上一代保留的优秀个体加入到种群中;
[0017] S5计算个体在每个子目标函数上的取值,并根据种群的整体状态更新种群中每个 个体的状态;
[0018] S6从种群中获取满足限制条件的有效解作为优秀个体保留;
[0019] S7使用带海明距离检测的均匀两点交叉算子对种群进行交叉运算;
[0020] S8使用考虑等位基因的多样性的变异算子对种群进行变异运算;
[0021] S9按照步骤S5对每个个体的状态进行更新,调整每一位的等位基因浓度,并根据 种群特性更新自我集;
[0022] S10判断是否达到最大进化代数,如果是,则退出;否则将当前进化代数加1并返回 步骤S2开始下一代进化,以寻找更好的解。
[0023]需要说明的是,所述步骤S1的具体方法如下:
[0024] 1.1)设置自我集更新长度aSelf为编码长度的二分之一;
[0025] 1.2)设置自我集最小匹配长度bSelf为编码长度的五分之一;
[0026] 1.3)设置各个基因位0和1的浓度默认值为5000;
[0027] 1.4)初始化自我集,把每一位都设置为2,当某一位为2时表示该位为空;
[0028] 1.5)设置交叉概率Pc和变异概率Pm。
[0029]需要说明的是,步骤S2中,具体按下式对自我集最小匹配长度bSelf进行更新:
[0031]其中L为编码长度,gen为当前进化代数,Maxgen为最大进化代数,η为一个用于调 整的参数。
[0032]需要说明的是,步骤S3的具体方法如下:
[0033] 3.1)产生一个新的种群,其中包括2L个新个体,L为编码长度,并初始化所有个体 的每一位为空;
[0034] 3.2)对于步骤3.1)中所得种群的所有个体,循环处理其中的每一位;其中,单个个 体的处理过程如下:
[0035] 3 · 2 · 1)对于当前位,产生一个随机数rd;
[0036] 3.2.2)计算该位上0的浓度除以0和1浓度之和的值proportion;
[0037] 3 · 2 · 3)如果在步骤3 · 2 · 1)中所得的rd小于在步骤3 · 2 · 3)计算所得的proportion, 则设置该位为〇;否则设置该位为1;
[0038] 3.2.4)判断是否所有位均被处理完毕,如果是,则结束当前个体的处理,并转至处 理下一个个体,否则转至下一位,并返回至步骤3.2.1);
[0039] 3.3)所有个体均按照步骤3.2.1)-3.2.4)的方法进行处理后,转至执行步骤S4。
[0040] 需要说明的是,步骤S4中的具体方法如下:
[0041] 4.1)对于步骤S3最终得到的种群,将其中的每一个个体分别与自我集进行按位比 较,得到每个个体中与自我集不相同的位的个数,即海明距离的d;
[0042] 4.2)对于每个个体,如果d小于自我集最小匹配长度bSelf,则把该个体从种群中 剔除,否则保留该个体;
[0043] 4.3)所有个体处理完毕后,将上一代保留的优秀个体加当前的种群中。
[0044] 需要说明的是,步骤S5中,每个个体的状态具体为个体在每个子目标函数上的值, 以及根据对这些子目标函数值进行排序后得到的等级而计算出的适应度值,所述子目标函 数包括面积函数、成本函数和功耗函数;所述步骤S5的具体方法如下:
[0045] 5.1)按下式计算并更新每个个体的面积:
[0047] 其中N为种群中个体的数量,对于种群中任意一个节点i,wi为节点i的实现方式, 值为〇代表软件实现,值为1代表硬件实现,AHHf表节点i用硬件实现时所占用的芯片面积, 用软件实现时占用芯片面积为〇;
[0048] 5.2)按下式计算并更新每个个体的成本:
[0050]其中Wi为节点i的实现方式,值为0代表软件实现,值为1代表硬件实现,CHi和CSi分 别代表节点i用硬件实现和用软件实现时的成本;
[0051 ] 5.3)对于每个个体,按如下公式计算并更新功耗:
[0053]其中,wi为节点i的实现方式,值为0代表软件实现,值为1代表硬件实现,PHi和PSi 分别代表节点i用硬件实现和用软件实现时的功耗,CPHjPCSHi分别为节点i用硬件实现时 与所有前驱节点和所有后继节点之间的通信功耗,CPSi和CSSi分别为