基于程序执行轨迹SoC硬件加速模块提取方法.docVIP

基于程序执行轨迹SoC硬件加速模块提取方法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于程序执行轨迹SoC硬件加速模块提取方法

基于程序执行轨迹SoC硬件加速模块提取方法   摘要:程序执行轨迹(Program executions trace,以下简称trace)是程序执行过程的指令流信息的记录,trace完整地记录了程序执行过程中所执行指令的内容和顺序。对于大多数程序,少数几个较短的热trace决定了系统的总体性能。本文提出了基于程序执行轨迹提取加速模块的软硬件划分方法。利用热trace提取算法划分系统中关键的trace到硬件,使用分支断言构造原子执行单位,以较小的硬件代价获得较高的加速比。在本文实验中,与采用模拟退火算法的指令级细粒度划分相比,获得的性能平均高9.6%,最终结果硬件面积小29%。   关键词: 程序执行轨迹,硬件加速模块,SoC,软硬件划分      1引言         随着微电子技术的发展,芯片的集成度越来越高,大规模集成电路的复杂度依照摩尔定律(即每18个月元件数增加一倍)的速度迅速发展。随着系统向高速度、低功耗、多媒体、移动化发展,系统对电路的要求越来越高,传统集成电路已无法满足性能日益提高的整机系统的要求。另一方面,随着IC设计与制造技术水平的提高,集成电路规模越来越大,目前已可以在一个芯片上集成108~109个晶体管。正是在需求牵引和技术推动的双重作用下,出现了将整个系统集成在一个芯片上的系统级芯片, 这就是系统级芯片SoC(System on Chip)。SoC具有性能好、功耗低、系统可靠性高的特点,同时,借助于工艺的进步和SoC系统设计方法学,降低了SOC的成本,也缩短了开发SOC的周期。[1]   在SoC设计中,为了缩短开发周期,又能取得更好的设计效果,要求使用软硬件协同设计技术。在SoC软硬件协同设计方法中,一方面可以使软件设计者在硬件完成之前接触到硬件模型,尽早地验证软件的正确性;另一方面更重要的是,软件不再是像以往那样被动地屈从于硬件的设计,软硬件的功能分配和软硬件的接口都是从整个系统的全局角度出发,按照最优的方案设计的。   SoC中通常包含一个或多个处理器或DSP,软件是指在处理器上执行的功能;此外SoC还包含完成特定任务的专用硬件功能模块。软件实现的优点是成本低、灵活性好;但按照现有的计算模型,软件是在处理器上顺序执行,因而相对于硬件实现来说具有性能差和功耗高的缺点;而硬件实现的功能模块特点是性能高,功耗低;但是硬件设计验证的周期长、硬件逻辑要占用芯片面积,成本高。另外,硬件实现的功能一旦芯片制造完成,后期无法修改,而软件实现便于修改和升级,产品生命周期长,这一点对于市场需求变化迅速,产品面世时间要求高的消费类电子尤其重要。   软硬件划分是指在设计系统时,确定各个模块是采取软件还是硬件的实现方式。软硬件划分是软硬件协同设计中的关键问题,对SoC的性能、功耗、成本和开发复杂性有十分重要的影响[2]。因此,研究如何进行软硬件划分,兼顾系统的速度、成本和灵活性,达到成本和性能的最佳结合,具有重要意义。   本文提出了基于程序执行轨迹(program execution trace,以下简称trace)提取加速模块的软硬件划分方法。利用热trace提取算法划分系统中关键的trace到硬件,以较小的硬件代价获得较高的加速比。      2Trace特性分析及其应用      程序执行轨迹是程序执行过程的指令流信息的记录,trace完整地记录了程序执行过程中所执行指令的内容和顺序。指令级并行处理器领域的研究人员深入地研究了trace的特性,为了提高处理器的性能,设计了多种结构和微结构来发掘和利用trace的特点,提高处理器的性能或降低功耗。为了解决取指带宽瓶颈问题,除了利用cache和分支预测之外,trace cache是近年来采用比较多的方案。通常内存中的机器代码的存放位置是按照编译时的地址分配布局的,而程序代码实际执行时并不是按这样的顺序进行。Trace cache利用程序执行时的动态关联特征来组织指令在cache中的位置,基本块按照执行的顺序组成trace,存放在trace cache中,见图1。这样,一次trace cache访问命中可以取出一条trace,从而满足高度并行执行单元的需求。      图1 Trace cache工作原理示意图       Satish Narayanasamy等人为了降低超标量处理器的设计和实现的复杂性,设计了分簇的微结构和基于trace的执行模型。在该结构评估中,他们基于SPEC2000的整数程序包详细地分析了程序中trace的特性[3]。图2是trace的覆盖率特性分析,实验对象是SPEC2000中8个整数程序,其中横轴是trace的数量,纵轴是这些trace累计对程序整体动态指令的覆盖率。可见,对于大多数程序,执行频度最

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档