[发明专利]一种众核处理器结构上避免无关依赖的线程划分方法有效
申请号: | 201410007139.9 | 申请日: | 2014-01-07 |
公开(公告)号: | CN103699365A | 公开(公告)日: | 2014-04-02 |
发明(设计)人: | 王耀彬;刘志勤;陈菲;彭莉娟;李凌;赵旭剑 | 申请(专利权)人: | 西南科技大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京众合诚成知识产权代理有限公司 11246 | 代理人: | 龚燮英 |
地址: | 621010 四川省绵*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 处理器 结构 避免 无关 依赖 线程 划分 方法 | ||
技术领域
本发明属于微处理器体系结构设计领域,尤其涉及一种众核处理器结构上避免无关依赖的线程划分方法。
背景技术
众核处理器结构是对片上可扩展能力达到数千个核、计算能力达到万亿次级的微处理芯片体系结构发展道路的探索。其计算资源密度更高,片上通信开销显著降低,能够实现芯片结构和性能高度的可扩展性,很好地应对纳米工艺代芯片设计的功耗、线延迟和设计复杂性问题。
线程划分是指将串行程序划分成若干线程(线程是程序中一些相关指令的离散序列,它与其他指令序列的执行彼此独立),在片上多个处理器核心上并行执行来提高性能。众核结构上的线程划分是众核体系结构能否发挥效率的关键。
目前在学术界采用众核设计思想的研究项目主要有麻省理工的Raw,斯坦福大学的SmartMemories,康奈尔大学的CoreFusion,得克萨斯大学奥斯汀分校的TRIPS和TFLEX,以及华盛顿大学的WaveScalar等。工业界的开发项目主要有IBM、Sony和Toshiba合作开发的Cell,Intel的Polaris和Larrabee,IBM的Cyclops-64,NVIDIA的CUDA等。
在线程划分的原理上,当前这些方案基本采用了通过循环展开、尾部复制和谓词执行等技术将指令基本块合并为更大的超块作为线程,通过将这些线程推测执行以提高程序的并行性。所述的超块是指利用谓词执行等技术将若干个基本块集合在一起形成的一段指令序列,仅有唯一的控制流入口,可有多个出口。而所述的推测执行是指通过放松线程间的依赖关系对程序并行执行的限制,将线程放到多个不同的处理器核上推测地并行执行,从而充分挖掘程序的并行潜力。
他们的共同特点都是由编译软件做数据依赖剖析,并根据指令间的依赖关系将计算映射到硬件上,使得在并行性开发和负载平衡两方面取得折衷。所述的剖析是一种记录程序过去的执行来搜集信息,从而分析得到程序运行时特征的方法。它提供的信息能够指导编译器或者程序员去执行那些带有预见性的优化。通过软件手段确定程序动态执行特征,从而实现更加合理有效的线程划分。
但是当前的众核线程划分方案都带来了代码膨胀和线程同步开销过大的问题。其原因在于这些方案基本采用循环迭代和超块等粒度作为线程划分的基本单位,其线程划分方法均以指令基本块为最小单位,对基本块内自身的无关依赖未作分离。由此带来的推测线程间不必要依赖引入了大量无关开销。
发明内容
本发明的目的在于提供一种众核处理器结构上避免无关依赖的线程划分方法,旨在解决目前众核线程划分机制都采用循环迭代和超块等粒度作为线程划分的基本单位,其线程划分方法均以指令基本块为最小单位,对基本块内自身的无关依赖未作分离,由此带来的推测线程间不必要依赖引入了大量无关开销的问题。
本发明是这样实现的,一种众核处理器结构上避免无关依赖的线程划分方法包括如下步骤:
步骤一、程序剖析,确定具有并行潜力的循环结构;
步骤二、确定该循环迭代体的控制流图;
步骤三、确定该循环迭代体的数据流图;
步骤四、确定派生推测线程的数目;
步骤五、通过依赖分离,进行线程划分;
步骤六、进行线程封装。
进一步,所述的步骤一通过程序剖析技术选择出占据程序运行时间较多的一个或者多个循环结构,将其迭代体作为进一步划分的备选。
进一步,所述的步骤二确定并保存备选迭代体内指令间的控制流方向。
进一步,所述的步骤三确定并保存备选迭代体内指令间的数据依赖关系。
进一步,所述的步骤四分析数据流走向,确定需要派生的推测线程数N。
进一步,步骤五所述的通过依赖分离,进行线程划分的具体步骤如下:
步骤一、依据数据流图中的依赖关系走向,通过反复划分节点到N个超级节点来进行N路图分割,进行初步的N个推测线程划分;
步骤二、遍历通过依赖分离进行线程划分的步骤一中初步创建的N个超级节点,通过复制共用指令,完成最终的N个“自给自足”的推测线程划分。
进一步,步骤六所述的进行线程封装的具体步骤如下:
步骤一、在每个推测线程的头部插入状态检查点即CKP指令,用以保持当前状态,支持推测执行后的回退操作;
步骤二、在CKP指令之后插入线程派生指令,用以在执行时派生推测线程;
步骤三、在每个推测线程的尾部插入同步指令,用以支持推测执行的提交操作。
本发明的有益效果如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西南科技大学,未经西南科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410007139.9/2.html,转载请声明来源钻瓜专利网。