通过数据挖掘优化的任务划分的制作方法

文档序号:12550627阅读:372来源:国知局
通过数据挖掘优化的任务划分的制作方法与工艺

实施例涉及对电子控制单元上的一组任务进行划分。

多核心处理器集成在单个芯片内并且通常指具有两个或者更多个独立处理单元的单个计算单元,该处理单元一般称为核心。该核心通常实施读取以及执行编程指令。该指令的实例是添加数据以及移动数据。多核心处理器的效率在于核心可以并行地同时运行多个指令。

存储布局影响电子控制单元(ECU)的缓存启动架构的存储宽带。例如,如果多核心处理器的设计无效,则在多核心间的任务未得到恰当平衡的情况下可能在检索数据时出现瓶颈,这也会影响通信成本。



技术实现要素:

实施例的优点在于:对全局存储器中的数据的访问进行优化,以便使储存在相应位置中的且由相应任务访问的数据由同一相应核心来处理。此外,核心间的工作负荷在多核心处理器的相应数量的核心之间达到平衡,从而使每个相应核心均履行类似的工作负荷量处理。本文描述的实施例基于重新排序技术生成了多个排列,该重新排序技术用于基于访问存储位置来将相应任务与相应存储位置进行配对。基于期望的核心数量来对该排列进行分割和细分,直到标识在核心间生成平衡工作负荷的以及使通信成本最小化的相应排列。

实施例设想了一种用于对多核心电子控制单元(ECU)上的任务进行划分的方法。在存储器中提取链接映射文件的信号列表。该链接映射文件包括对在全局存储装置内访问数据的位置进行详细说明的文本文件。获取来自信号列表的与执行的任务相关的存储访问踪迹。标识每个任务访问存储位置的次数以及ECU上的相应任务工作负荷。在每个任务与每个访问的存储位置之间生成关联图。该关联图标识每个任务与每个存储位置之间的链接关系度。对该关联图重新排序以便使具有较大链接关系度的相应任务和相关联的存储位置彼此邻近。将多核心处理器划分为相应数量的核心,其中,按照使相应核心中工作负荷的大体上平衡的函数来履行在相应数量的核心之间分配任务和存储位置。

附图说明

图1是用于优化任务划分的硬件的框图。

图2是示例性加权关联矩阵。

图3是初始排列的示例性二分图。

图4是重新排序的排列和划分的示例性二分图。

图5是用于优化任务划分的方法的流程图。

具体实施方式

图1是用于优化任务划分的硬件的框图。在电子控制单元(ECU)10上对执行应用代码的相应算法进行执行。所执行的算法是将在生产中被执行的那些程序(例如,车辆发动机控制器、计算机、游戏、工厂设备、或者利用电子控制单元的任何其他电子控制器)。将数据写入全局存储装置12内的多个地址并且进行读取。

映射链接文件14是文本文件,该文本文件对储存在全局存储装置12内的可执行文件内部的数据和代码的位置进行详细说明。映射链接文件14包括包含事件日志的跟踪文件,该事件日志描述了针对代码和数据的储存位置在全局存储装置12内出现的事务。因此,可以获取对当应用代码由ECU 10执行时访问的所有任务和相关联的存储地址进行标识的链接文件映射14。

挖掘处理器16用于履行如下操作:来自全局存储装置12的数据挖掘18、对任务和相关联的存储位置重新排序20、标识排列的工作负荷22、以及对任务和相关联的存储位置进行划分24以便设计多核心处理器。

关于数据挖掘,针对每个任务(例如,A、B、C、D)构建如图2中图示的存储访问命中次数表。术语“命中次数”指的是相应任务传递信号以访问全局存储器的相应存储地址的次数。基于命中次数来构建矩阵X。如在图2中示出的,矩阵的水平行中列出了任务,并且矩阵的纵列中列出了表示访问全局存储装置的存储位置的信号。如在矩阵中示出的,任务A访问sa五次并且访问sd二十次。任务B访问sa十次、访问sb一次、访问sd六次、方位se一次以及访问sf一次。矩阵使每个任务与每个存储位置相关联,并且标识相应任务访问存储位置以储存和读取数据的次数。

在生成矩阵X之后,挖掘处理器生成排列,该排列用于对提供最有效的划分以均匀地分布ECU的工作负荷的相应排列进行标识。

排列是排序任务和存储位置的多个列表。如在图3中示出的,构建了关联图,诸如,二分图。应理解,在不偏离本发明的范围的情况下,可以使用其他类型的图或者工具。如在图3中示出的,二分图的左侧上的纵列中列出了任务(例如,字母顺序)。二分图的右侧上的第二纵列中列出了访问的存储位置。为了二分图的目的,任务将称为任务节点,并且访问的存储位置将称为存储节点。当在相应任务节点与相应存储节点之间出现命中时,画一条线来连接相应任务节点与相应存储节点。基于命中次数来对连接任务节点和存储节点的线进行加权,如图3中示出的。在二分图中,线的权重越重,任务节点与存储节点之间的命中次数就越大。在如图3中示出的初始排列中,连接任务节点和存储节点的线可以是远侧的,意味着在第一纵列的顶部处的任务节点可以连接至在第二纵列的底部处的存储节点。如果在两个纵列的中途点处均匀地划分该排列,则可能在两个核心之间出现大量通信(例如,交叉通信),这可以是无效的并且增加通信成本,并且更加具体地,如果两个核心之间的那些相应交叉通信链路是加权严重的通信链路,则可以导致更大的无效度。此外,如果那些计算密集的任务被分配至相应核心,则相应核心可以实施更多工作负荷处理。因此,通过对任务节点和存储节点进行重新排序制作了多个排列。

图4图示了在已经对存储位置进行重新排序的情况下的相应排列。多个技术可以用于对存储节点进行重新排序以便实现效率并且使通信成本最小化。一个这种技术可以包括但不限于,对任务节点和存储节点进行重新排序,以便使与所有其他配对相比具有严重加权线(例如,多次命中)的相应任务节点和相关联的存储节点在二分图中彼此邻近。

使用加权的邻近矩阵来履行对二分图的顶点的重新排序,该加权的邻近矩阵是使用图2中的矩阵X来构建的。关于矩阵W,通过找出顶点的排列{1,...,N}来实现任务节点和存储节点的期望顺序,从而图中的邻近顶点是最相关联的顶点。这种排列表示由同一组任务频繁访问的数据可以适应局部数据缓存。算术上,期望的重新排序的排列可以表达为:

这等于找出逆排列π(-1),从而使如下能量函数最小化:

解决上述问题大概是通过使用第二最小本征值针对如下本征方程计算本征矢量(q2)来完成:

(D-W)q=λDq

其中,拉普拉斯矩阵L=D-W,次数矩阵D是对角线的,并且被定义为

因此获取的q2按照升序进行分类。在分类之后的顶点的索引是期望排列{π1,...,πN}。然后通过如下方式来推导出任务节点和存储节点的顺序:根据排列结果来重新布置二分图中的任务节点和存储节点。

如在图4中图示的,有效地对该列表进行了重新排序。任务节点A和存储节点sd处于最高命中(例如,20)之间并且因此彼此邻近。类似地,图4中示出了,任务节点B邻近存储节点sa,并且任务节点C和任务节点D邻近存储节点sb。此外,任务节点A与存储节点sa具有多次命中,并且任务节点B与存储节点sd具有多次命中。因此,自此任务节点A和任务节点B在第一纵列中彼此邻近,存储节点sa和存储节点sb定位为在第二纵列中彼此邻近。该重新排序通过消除核心之间的交叉通信而提供有效的通信。

为了使工作负荷均等以确保核心的工作负荷进行均匀地分布,使多个任务节点间具有最高工作负荷的任务节点和相关联的存储节点的前两个配对分离并且定位在二分图的相对端处。这确保了多个任务间具有最高工作负荷的这两个相应任务节点将不会处于同一核心内,如若不然这将使单个核心的工作负荷超载。在对这两对任务重新排序之后,使剩余任务节点和存储节点间具有下一最高工作负荷的任务节点和相关联的存储节点的下一配对分离并且定位为紧挨着先前分离的任务节点和存储节点。该过程继续在可用的任务节点和相关联的存储节点间具有下一最高工作负荷的任务节点和相关联的存储节点的下一相应配对中进行,直到将所有可用的任务节点和相关联的存储节点都分配在二分图内。这产生了工作负荷的均匀分布,从而可以如所示出那样在中间均等地分割该二分图,并且大体上类似地在相应核心之间分布工作负荷。如在图4中的二分图中示出的,划分线26使二分图的相应任务节点和相关联的存储节点分离以便标识应将哪些任务分配至相应核心。图示了针对每个相应任务节点的示例性工作负荷百分比。任务A代表15%的工作负荷用量,任务B代表40%的工作负荷用量,任务C代表30%的工作负荷用量,并且任务D代表15%的工作负荷用量。因此,在该实例中,55%的工作负荷用量将由第一核心履行,并且45%的工作负荷将由第二核心履行。应注意,任务节点和相关联的存储节点的相应最重工作负荷将保留在相应核心中,与核心之间的交叉通信截然相反。即是说,具有升高的命中的任务节点和相关联的存储节点将处于同一核心内。应理解,一些任务节点将与不同核心中的存储节点交叉通信;然而,与核心内保持的严重加权通信相比,这种通信将较少。

此外,一旦两个核心已经被划分,如果核心需要进行附加划分(例如,4个核心),则可以在不进行重新排序的情况下基于使工作负荷平衡和使通信成本最小化来对划分的核心进行再次细分。可替代地,若需要,则可以将重新排序技术应用于已经被划分的核心,以便对相应任务和其中的存储器进行重新排序并且然后进一步细分核心。

可以应用划分的多个排列来找出最有效的划分,最有效的划分在处理器的核心之间产生最平衡的工作负荷并且还使通信成本最小化。

图5图示了用于对多核心ECU上运行的任务进行划分的技术的流程图。在步骤30中,通过相应电子控制单元来执行作为任务的软件程序的应用代码。在全局存储装置(例如,未在挖掘处理器上的存储器)上执行读取操作和写入操作两者。

在步骤31中,从全局存储器中的链接映射文件提取信号列表。该信号列表对应用代码执行的任务命中的存储位置的踪迹进行标识。

在步骤32中,通过挖掘处理器来收集存储访问踪迹。

在步骤33中,针对每个存储位置构建包括任务存储访问次数(即,命中)的矩阵。应理解,相应任务和相应存储位置可以没有任何命中,并且在这种情况下,条目将显示为“0”或者保留为空白以指示任务未访问相位置。

在步骤34中,生成包括关联图(例如,二分图)的多个排列,该关联图示出了由应用代码执行的任务节点与任务节点访问的相应存储节点之间的链接关系。每个排列均利用最佳排序算法来确定任务节点和相关联的存储节点的相应顺序。任务节点与彼此间具有命中的那些存储节点相关联并且彼此邻近。任务节点和相关联的存储节点最佳地定位在关联图中,从而使处理器的核心内的工作负荷用量在被划分时大体上平衡。

在步骤35中,对该关联性进行划分以便标识当在ECU上执行任务时哪些任务与哪个核心相关联。该划分将基于平衡工作负荷和最小化的通信成本针对相应任务节点和相关联的存储节点选择分离点。基于ECU中需要核心数量来履行附加划分。

在步骤36中,使用所选择的排列来设计和产生多核心ECU的任务划分。

尽管已经详细地描述了本发明的某些实施例,但本发明所涉及领域的技术人员将意识到用于实践如通过如下权利要求书定义出的本发明的多种替代设计和实施例。

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