嵌入式系统的动态软硬件协同方法、嵌入式系统与流程

文档序号:22428656发布日期:2020-10-02 10:06阅读:423来源:国知局
嵌入式系统的动态软硬件协同方法、嵌入式系统与流程

本发明涉及软硬件划分技术领域,具体地涉及一种嵌入式系统的动态软硬件协同方法、嵌入式系统。



背景技术:

目前嵌入式系统正由简单的单片单核处理器系统向着更为复杂的多片多核处理器系统发展,使得嵌入式系统的设计复杂度不断提高,面临着越来越多的挑战:

在硬件方面,芯片的集成度越来越高,片上系统的内置功能越来越强大,使得嵌入式系统设计的复杂度提高了。

在软件方面,随着硬件系统的复杂度的提高使得与之配套的软件系统的设计也越来越复杂。

由于用户对嵌入式系统性能要求的多样化,设计时的考虑因素也越来越多。设计方法不仅要考虑系统运行的速度、成本开销、体积大小、功耗高低等性能因素,还必须考虑系统的存储容量、实时性、可靠性等因素。



技术实现要素:

本发明实施例的目的是提供一种嵌入式系统的动态软硬件协同方法、嵌入式系统,该方法提供任务相似性和的任务分类的处理方式,为软硬件模块化划分提供基础,实现更细粒度的软硬件划分。

为了实现上述目的,本发明实施例提供一种嵌入式系统的动态软硬件协同方法,所述方法包括:

获取任务集合x的任务特征参数;

根据所述任务特征参数计算任务相似指标rs;

根据计算得到的所述任务相似指标rs进行任务分类;以及

根据任务分类结果进行软硬件资源划分;

其中所述任务集合x包括至少2个任务。

可选的,所述任务特征参数包括以下一者或多者:

cpu需求、存储需求以及通信带宽需求。

可选的,所述获取所述系统的任务特征参数包括:

将所述任务特征参数进行归一化处理以得到任务的特征集cx;

其中,根据以下公式计算任务的特征集cx:

cx=(cx,1,cx,2,cx,3...cx,n)

cx,n表示任务集合x中某一任务的第n个指标的归一值,n为以下集合中任意一者:{1,2,3},zcpu(x)、zmem(x)以及zcom(x)分别代表所述任务集合x的cpu需求值、存储需求值以及通信资源需求值,zcpu_max、zmem_max以及zcom_max分别代表系统的cpu值、存储值及通信资源值。

可选的,根据以下计算公式计算所述任务相似指标rs:

rs=a×rsn(ci,cj)

其中,a为所述任务特征参数的指标矩阵,对所述任务相似性指标rs进行加权选择,则所述指标矩阵a表示为:

a=[a1,a1...an]

rsn(ci,cj)表示任务i和任务j的所述任务特征参数的指标的相似性,i,j∈x;

ec(cin,cjn)表示任务i和任务j关于所述任务特征的参数指标n的资源需求权重差值,ec(cin)表示任务i关于所述任务特征参数的指标n的资源需求权重,ec(cjn)表示任务j关于所述特征参数的指标n的资源需求权重。

可选的,所述根据计算得到的所述任务相似指标rs进行任务分类包括:

根据计算得到ec(cin,cjn)对所述任务集合x进行分类,以得到多个任务子集;

其中,将落入同一设定权重范围的ec(cin,cjn)相对应的任务划分为同一组。

可选的,所述根据任务分类结果进行软硬件资源划分包括:

将所述任务分类结果中的任务类型输入预设的任务分类-软硬件配置的映射表中,以得到适用于当前所述任务分类结果的软硬件配置方式;

根据所述软硬件配置方式重新配置系统的软硬件模块,以生成适用于当前所述任务分类结果的多个软硬件模块;以及

将所述多个任务子集分别划分到相对应的所述多个软硬件模块中。

本发明实施例还提供一种嵌入式系统,所述系统包括:

通用处理器模块;以及

可重构嵌入式器件,与所述通用处理器模块连接,其包括:硬件模块和软件模块;

其中,所述通用处理器模块用于执行以下操作:

获取任务集合x的任务特征参数;

根据所述任务特征参数计算任务相似指标rs;

根据计算得到的所述任务相似指标rs进行任务分类;以及

根据任务分类结果对所述可重构嵌入式器件进行软硬件资源划分;

其中所述任务集合x包括至少2个任务。

可选的,所述可重构嵌入式器件通过i/o接口或者网络与所述通用处理器模块连接;

所述任务特征参数包括以下一者或多者:

cpu需求、存储需求以及通信带宽需求。

可选的,所述获取所述系统的任务特征参数包括:

将所述任务特征参数进行归一化处理以得到任务的特征集cx;

其中,根据以下公式计算任务的特征集cx:

cx=(cx,1,cx,2,cx,3...cx,n)

cx,n表示任务集合x中某一任务的第n个指标的归一值,n为以下集合中任意一者:{1,2,3},zcpu(x)、zmem(x)以及zcom(x)分别代表所述任务集合x的cpu需求值、存储需求值以及通信资源需求值,zcpu_max、zmem_max以及zcom_max分别代表系统的cpu值、存储值及通信资源值。

可选的,根据以下计算公式计算所述任务相似指标rs:

rs=a×rsn(ci,cj)

其中,a为所述任务特征参数的指标矩阵,对所述任务相似性指标rs进行加权选择,则所述指标矩阵a表示为:

a=[a1,a1...an]

rsn(ci,cj)表示任务i和任务j的所述任务特征参数的指标的相似性,i,j∈x;

ec(cin,cjn)表示任务i和任务j关于所述任务特征的参数指标n的资源需求权重差值,ec(cin)表示任务i关于所述任务特征参数的指标n的资源需求权重,ec(cjn)表示任务j关于所述特征参数的指标n的资源需求权重。

可选的,所述根据计算得到的所述任务相似指标rs进行任务分类包括:

根据计算得到ec(cin,cjn)对所述任务集合x进行分类,以得到多个任务子集;

其中,将落入同一设定权重范围的ec(cin,cjn)相对应的任务划分为同一组。

可选的,所述根据任务分类结果对所述可重构嵌入式器件进行软硬件资源划分包括:

将所述任务分类结果中的任务类型输入预设的任务分类-软硬件配置的映射表中,以得到适用于当前所述任务分类结果的软硬件配置方式;

根据所述软硬件配置方式重新配置系统的所述可重构嵌入式器件,以生成适用于当前所述任务分类结果的多个软硬件模块;以及

将所述多个任务子集分别划分到相对应的所述多个软硬件模块中。

通过上述技术方案,计算任务之间的相似性进而对任务进行任务划分,根据任务划分结果进行软硬件资源划分,实现更细粒度的软硬件划分,以提高系统的处理效率、执行效率,使系统具有更好的适应能力。

本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:

图1是本发明实施例提供的动态软硬件协同方法流程示意图;

图2是本发明实施例提供的任务分类及软硬件划分示意图;

图3是本发明实施例提供的嵌入式系统的结构示意图;

图4是本发明另一实施例提供的软硬件划分的流程示意图。

具体实施方式

以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。

图1示出了本发明实施例提供的动态软硬件协同方法流程示意图,如图1所示,所述嵌入式系统的动态软硬件协同方法包括:

获取任务集合x的任务特征参数;

根据所述任务特征参数计算任务相似指标rs;

根据计算得到的所述任务相似指标rs进行任务分类;以及

根据任务分类结果进行软硬件资源划分;

其中所述任务集合x包括至少2个任务。

图2示出了本发明实施例提供的任务分类及软硬件划分示意图,如图2所示,关于任务分类阶段,可以进行所有任务之间(即任意两个或多个任务间的)的划分,分成两个步骤,任务特征参数提取以及相对互连性和相对近似性计算,两个子类只有在rs和ri的值满足条件才进行划分到同一子类的操作。

(1)任务特征参数提取:

任务的特征参数包括以下一者或多者:cpu需求、存储需求、通信带宽需求,将任务该特征参数进行归一化处理,得到所述任务集合x的特征集cx表示为:

cx=(cx,1,cx,2,cx,3...cx,n)

cx,n表示任务集合x中某一任务的第n个指标的归一值,n为以下集合中任意一者:{1,2,3},zcpu(x)、zmem(x)以及zcom(x)分别代表所述任务集合x的cpu需求值、存储需求值以及通信资源需求值,zcpu_max、zmem_max以及zcom_max分别代表系统的cpu值、存储值及通信资源值。

(2)相似指标计算

不同任务之间的相似性指标rs描述为:

rs=a×rsn(ci,cj)

其中,a为所述任务特征参数的指标矩阵,对所述任务相似性指标rs进行加权选择,则所述指标矩阵a表示为:

a=[a1,a1...an]

rsn(ci,cj)表示任务i和任务j的所述任务特征参数的指标的相似性,i,j∈x;

ec(cin,cjn)表示任务i和任务j关于所述任务特征的参数指标n的资源需求权重差值,ec(cin)表示任务i关于所述任务特征参数的指标n的资源需求权重,ec(cjn)表示任务j关于所述特征参数的指标n的资源需求权重。

通过计算得到的ec(cin,cjn)进行任务的划分,ec(cin,cjn)值越小相似性越高,其实质是把相似程度较高的任务聚集到一起,根据其相似性指标进行合并得出最终的分类结果。具体地,根据计算得到ec(cin,cjn)对所述任务集合x进行分类,以得到多个任务子集。其中,将落入同一设定权重范围的ec(cin,cjn)相对应的任务划分为同一组。

进一步的还可以为分类结果进行验证,可进行子类的相关性验证,计算公式为:

ul,um表示子类的任务个数,sec(ul,um)为连接子类ul和子类um之间的平均权重。sec(ul)为子类ul做最小截断时需要去掉的平均权重,sec(ul,um)为子类um做最小截断时需要去掉的平均权重。

关于任务分类的算法不但参考了任务之间的相似性,也参考了不同分类之间的相关性,因而可以动态地建立数据模型,并且能够取得很好的聚类结果。

关于软硬件资源划分阶段,在完成任务分类后,可以根据任务分类结果进行软硬件资源划分,具体地,将所述任务分类结果中的任务类型输入预设的任务分类-软硬件配置的映射表中,首先根据当前所述任务分类结果均匀配置软硬件资源,并获取任务节点数目及属性,任务节点属性包含每个任务的软件和硬件执行时间和功耗信息;进行软硬件配置,决定哪个任务由软件实现,哪个任务由硬件实现。当划分结果在速度、功耗与性能等方面均达到设定值或最小值时,得到适用于当前所述任务分类结果的多个软硬件模块;以及将所述多个任务子集分别划分到相对应的所述多个软硬件模块中。

图3示出了本发明实施例提供的嵌入式系统的结构示意图,如图3所述,该系统可以包括通用处理器以及可重构嵌入式器件;其中该系统为松耦合架构,在此结构的基础上,结合任务进行分类,通过软硬件模块化,实现更细粒度的软硬件划分,提高系统效率。

关于松耦合架构

对于松耦合系统来说,包括,通用处理器模块和可重构嵌入式器件,可重构嵌入式器件通过i/o接口或者网络与通用处理器模块相连,可重构嵌入式器件包括硬件模块和软件模块,通过通用处理器实现可重构器件内部的软硬件划分问题,其中通用处理器模块可通过硬件或软件的方式实现。

所述通用处理器模块用于执行以下操作:

获取任务集合x的任务特征参数;

根据所述任务特征参数计算任务相似指标rs;

根据计算得到的所述任务相似指标rs进行任务分类;以及

根据任务分类结果对所述可重构嵌入式器件进行软硬件资源划分;

其中所述任务集合x包括至少2个任务。

通用处理器把任务进行模块化处理,按照任务特征参数来进行模块划分,以使得模块内部任务间联系最紧密,不同模块之间相互影响最小。首先根据系统任务特性将任务划分为不同的子类,按照子类将任务分配到不同的模块中,然后按照不同约束对于每一个模块中的任务进行软硬件划分,决定哪个任务由软件实现,哪个任务由硬件实现。可以根据模块目标要求求解出相对优化划分方案,以适应不同的任务响应要求。

所述任务特征参数包括以下一者或多者:cpu需求、存储需求以及通信带宽需求。

关于任务分类阶段,可以进行所有任务之间(即任意两个或多个任务间的)的划分,分成两个步骤,任务特征参数提取以及相对互连性和相对近似性计算,两个子类只有在rs和ri的值满足条件才进行划分到同一子类的操作。

(1)任务特征参数提取:

任务的特征参数包括以下一者或多者:cpu需求、存储需求、通信带宽需求,将任务该特征参数进行归一化处理,得到所述任务集合x的特征集cx表示为:

cx=(cx,1,cx,2,cx,3...cx,n)

cx,n表示任务集合x中某一任务的第n个指标的归一值,n为以下集合中任意一者:{1,2,3},zcpu(x)、zmem(x)以及zcom(x)分别代表所述任务集合x的cpu需求值、存储需求值以及通信资源需求值,zcpu_max、zmem_max以及zcom_max分别代表系统的cpu值、存储值及通信资源值。

(2)相似指标计算

不同任务之间的相似性指标rs描述为:

rs=a×rsn(ci,cj)

其中,a为所述任务特征参数的指标矩阵,对所述任务相似性指标rs进行加权选择,则所述指标矩阵a表示为:

a=[a1,a1...an]

rsn(ci,cj)表示任务i和任务j的所述任务特征参数的指标的相似性,i,j∈x;

ec(cin,cjn)表示任务i和任务j关于所述任务特征的参数指标n的资源需求权重差值,ec(cin)表示任务i关于所述任务特征参数的指标n的资源需求权重,ec(cjn)表示任务j关于所述特征参数的指标n的资源需求权重。

通过计算得到的ec(cin,cjn)进行任务的划分,ec(cin,cjn)值越小相似性越高,其实质是把相似程度较高的任务聚集到一起,根据其相似性指标进行合并得出最终的分类结果。具体地,根据计算得到ec(cin,cjn)对所述任务集合x进行分类,以得到多个任务子集。其中,将落入同一设定权重范围的ec(cin,cjn)相对应的任务划分为同一组。

进一步的还可以为分类结果进行验证,可进行子类的相关性验证,计算公式为:

ul,um表示子类的任务个数,sec(ul,um)为连接子类ul和子类um之间的平均权重。sec(ul)为子类ul做最小截断时需要去掉的平均权重,sec(ul,um)为子类um做最小截断时需要去掉的平均权重。

关于任务分类的算法不但参考了任务之间的相似性,也参考了不同分类之间的相关性,因而可以动态地建立数据模型,并且能够取得很好的聚类结果。

关于软硬件资源划分阶段,在完成任务分类后,可以根据任务分类结果进行软硬件资源划分,具体地,将所述任务分类结果中的任务类型输入预设的任务分类-软硬件配置的映射表中,首先根据当前所述任务分类结果均匀配置软硬件资源,并获取任务节点数目及属性,任务节点属性包含每个任务的软件和硬件执行时间和功耗信息;进行软硬件配置,决定哪个任务由软件实现,哪个任务由硬件实现。当划分结果在速度、功耗与性能等方面均达到设定值或最小值时,得到适用于当前所述任务分类结果的多个软硬件模块;以及将所述多个任务子集分别划分到相对应的所述多个软硬件模块中。

图4示出了本发明另一实施例提供的软硬件划分的流程示意图,如图4所示,根据任务节点数目及属性进行软硬件划分,其中,任务节点属性包含每个任务的软件和硬件执行时间和功耗信息,当划分结果在速度、功耗与性能等方面均达到一个设定值或最小值时结束算法,否则继续执行算法来产生新的划分。即,可理解为:先平均分配软硬件资源,然后根据模块内的任务进行资源协调,在协调的同时计算当前方案的时间和功耗开销作为评价指标,不满足就继续调整。软硬件划分后,所有任务都能被映射到一个划分后的分组中。划分过程中不同划分方式模块内系统的时间总开销表示为:

功耗总开销表示为:

thi,tsi表示节点i采用硬件实现或软件实现时花费的时间开销,phi,psi分别表示节点i采用硬件实现或软件实现时的功耗开销。

为降低模型复杂度,使得自动划分算法对求解时间减少,提出一种概率演化算法。其中任务x采用硬件或软件实现的初始概率表示为g0(x),经过k次迭代以后的概率表示为gk(x),迭代关系表示为:

α为学习因子,xk(k=1,2,...,m)为经过k次迭代后得到的m个最优解,m<k

学习因子定义为:

α0是随着迭代次数而改变的学习因子基准,aw是随着迭代程度而改变的学习因子基准。maxgen是算法最大的迭代次数,k为当前迭代次数,k0为间隔代数,[k/k0]是不大于k/k0的最大整数,mod是取模运算。

进一步可采用下面的优化算法:包括遗传算法,或粒子群算法,或蛙跳算法,或人工蜂群算法,或蚁群算法等。通过优化算法来得到某个任务是采用硬件执行还是软件执行,避免盲目的设定硬件还是软件。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1