- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于多核SoC负载平衡任务调度算法优化策略
基于多核SoC负载平衡任务调度算法优化策略
摘 要:分析了以往经典的多核SoC任务调度算法的基本原理和性能,并以负载平衡为目的,对多核SoC的任务调度算法进行优化。该算法在流水线调度算法的基础上,引入制导的自调度(GSS)方法,应用于多核SoC的任务调度。通过实验证明该调度策略在系统资源、开销等方面均有较好分配,减少了任务延时,系统的性能有了显著提高,达到负载平衡的目的。??
关键词:多核SoC;负载平衡;任务调度;GSS??
中图分类号:TP312 文献标识码:A 文章编号:1672-7800(2011)05-0055-02?お?
??
0 引言??
现在SoC芯片的结构以及功能都越来越复杂化,越来越趋向于低成本、高性能、便携性。基于嵌入式系统对成本、体积、功耗严格要求的特性,尤其是便携式移动设备,对性能的要求越高,对于低功耗的需求也越高。功耗已经成为度量嵌入式系统性能评价的重要指标。在提倡节能的今天,低功耗的芯片必然会成为开发商的热门选择。??
一个通用处理器加上硬件逻辑是SoC设计的主流架构,为了满足更高的要求,通过集成更多的核来提高性能是必然选择,多核架构的SoC就应运而生了。多核SoC有着无法比拟的优势,它可以将一个复杂的任务分成多个子任务,多个子任务分别由不同的内核完成,这样,就可以在一个周期内执行多个指令。??
多核技术可以提供更高的性能,然而性能的提高使得系统的功耗加大。对多核的任务进行管理和调度,使系统高效工作而功耗最低,使性能和功耗间达到平衡,本文对此进行重点研究。??
1 基于多核SoC的任务调度方法??
1.1 传统的多核SoC的几种任务调度方法??
关于SoC的任务调度算法,已经有许多研究,经典的算法有整数线性规划算法(ILP),模拟退火算法,蚂蚁算法,遗传算法等。有许多文章在此基础上提出许多减少功耗的算法。??
文献提出面向SoC任务分配的多粒度应用程序存储分析方法的算法。文献采用表调度方法进行任务调度。文献总结了动态线程分派与转移技术,此方法根据当前的多个内核的功耗密度情况动态的进行线程的分配,可在一个内核功耗密度过大时将这个内核上的负载转移到空闲的内核上,从而在既使吞吐量不会降低,又使功耗密度较大的内核减小负载。文献从减少总线任务冲突的角度出发,提出了改变任务属性和调整任务优先级相结合的总线任务调度优化策略,充分利用总线的空闲时间执行部分任务,减少了总线任务冲突,降低了处理器因等待数据源而引起的性能损失。??
但以上大多数算法均没考虑延时及吞吐量等。流水线调度算法在这方面有极大的优势,且能获得更高的性能。所以结合流水线调度,可明显降低功耗,达到功耗和性能平衡。??
文献和就结合流水线任务调度,提出以下算法。文献基于延迟和吞吐量约束,提出了一种降低能源消耗的流水线任务调度方法。文献提出了一种新的功能流水线调度算法负载平衡蚁群调度算法,该算法保证了较低运行时间复杂度O(cn2)且可获得近似最优的流水线调度结果。??
1.2 多核SoC的任务调度方法分析??
任务调度问题的关键就是要最小化必须牺牲的时间总量,采取的策略是通过牺牲一些执行时间而使给定的程序适应可利用的资源。??
要发挥多核的性能需要提高任务调度的并行性,单线程程序无法发挥多核的优势。在多线程中,要实现较好的负载平衡而获取最优的性能,就必须对循环进行高效的调度与分块。目的是保证执行核尽可能地在大部分时间内保持忙碌状态,同时将调度开销、上下文切换开销和同步开销降到最低。如果芯片的核数量上升时,会出现两个问题:第一,在设计不合理的情况下有可能会出现性能反而下降的问题;第二,功能强大的内核,其结构必然复杂,功耗也难以控制。??
负载平衡能够使各线程的工作量平均分配。负载平衡很差通常是由循环迭代计算时间的不确定性引起的。如果负载平衡做得很差,那么某些线程可能很早就完成了自己的工作,导致了资源的闲置,损失了一部分性能。在多数情况下,循环迭代总是耗费一定数量的时间。然而不管怎样,都可以通过schedule子句来提供循环调度信息,使编译器和运行时库能够更好地划分迭代并将迭代分布到各个线程,从而实现更好的负载平衡。??
在默认的情况下,循环迭代都会采用静态平衡调度策略。静态平衡调度策略即使循环的迭代将以近乎平均的方式分布到各个线程上。如果有m次迭代,线程组中有N个线程,那么每个线程就执行m/N次迭代。??
2 基于制导的自调度(GSS)的流水线任务调度算法
假设流水线中的任务用集合T表示,??T=(T??1,T??2,…,T??k)??,任务用节点表示,节点之间的边表示任务之间的通信,则流水线对应一个有向
原创力文档


文档评论(0)