一种基于Atom处理器的指令并行分发方法

文档序号:6334681阅读:464来源:国知局
专利名称:一种基于Atom处理器的指令并行分发方法
技术领域
本发明涉及嵌入式系统高性能并行计算设计领域,尤其涉及一种基于Atom处理 器的指令并行分发方法。
背景技术
随着半导体技术的发展,单块硅片上所能容纳的晶体管数量迅猛增长,CPU技术已 经进入了多核时代。目前市场上的主流工艺已经能使晶体管内的沟道长度达到了 45nm,而 即将投产的新一代工艺则能使晶体管内的沟道长度达到32nm。根据摩尔定律,可以预见半 导体工艺仍将有继续发展的巨大空间。先进的工艺固然为CPU技术的发展提供了优异的条 件,但也带来了对传统理论和技术的一些思考。在多核时代下,提高程序执行的并行度已经成为了一个重要的问题。在传统的冯 诺依曼结构之下,计算机顺序执行指令,完成既定工作。这一步骤虽然经过多次重大革新, 但其本质依然没有改变。在多核CPU这种要求充分利用程序并行度才能发挥性能优势的体 系结构中,顺序执行指令的方式逐渐显露出了它的弊病。这就要求研究者尽可能地挖掘现 有程序的可并行的潜力,把系统的效率进一步提高。目前的程序无法很好地耦合多核体系结构是一个重要的问题。硬件发展受制于内 存的局限性也没有很好地解决。多核需要程序有很高的并行化程度才能发挥它的性能优 势。因为对单个核来讲,它自身的性能并没有非常大的提高。大多数研究工作都着眼于如 何更好的分发程序以获取较好的并行程度,如何改进多核体系架构以提高通讯带宽,降低 缓存的缺失率(又称cache miss rate)等等。事实上,多核的发展还并不成熟。尤其是当核的数量大大增加后,核间通讯的代价 会导致大量的资源浪费。除了尽量降低通讯代价之外,一个好的分发指令的策略会使得核 间通讯总量大大降低。如何分发是一个已经被研究了很长一段时间的问题。它必须考虑体 系结构,数据依赖,控制依赖等条件。分发可以挖掘程序的并行度,使得多核体系结构的高 度并行化的优势得以发挥,又可以降低频繁的核间数据通信,提高性能。对核间路由结构进 行考量的分发还可以加快通信速度。

发明内容
本发明是针对多核体系结构,从多核体系结构和现有程序耦合度不足这一现实出 发,以提高程序并行度、挖掘程序并行潜力、降低核间通讯量为目的,提出一种基于Atom处 理器的指令并行分发方法,该方法是一套能够改进程序运行效率、减少核间通讯量和挖掘 程序可并行潜力的架构。为实现本发明的上述目的,本发明采用的技术方案如下一种基于Atom处理器的指令并行分发方法,其特征在于包括如下步骤1)从第一条指令开始,逐条扫描指令,将有控制依赖的指令予以标记;2)从第一条指令开始,逐条分析数据依赖,其步骤如下
2. 1当当前指令之前没有被标记过的指令,且当前指令与当前指令之前的指令存 在数据依赖关系,则对当前指令予以标记,然后进入下一条指令,按步骤2. 2继续分析数据 依赖;2. 2当当前指令与当前指令的前一条已经标记的指令以及该前一条已经标记的指 令与当前指令之间的指令存在数据依赖关系时,则对当前指令予以标记,然后进入下一条 指令,仍按照该步骤b)继续分析,直至将所有有数据依赖的指令均予以标记;所述控制依赖的指令和数据依赖的指令的标记是相同的,均是将存在依赖的指令 的标志位赋值为“1”;3)从第一条指令开始逐条扫描,按如下步骤进行分发处理3. 1将第一条有标记的指令之前的所有指令并行分发到不同的核上运行,然后进 入下一条未分发的指令,按步骤3. 2继续进行分发处理;3. 2从当前未被分发的第一条指令起开始扫描,遇到下一条有标记的指令时,将下 一条有标记的指令之前所有未被分发的指令并行分发到不同的核上运行,然后进入下一条 未分发的指令,仍按照该步骤3. 2继续执行分发处理;3. 3当当前未被分发的第一条指令为最后一条有标记的指令,则将所有未被分发 的指令并行分发到不同的核上运行,分发结束。本发明的方法是针对API架构的特点而设计,能够去除访问冲突,提高执行效率。 与背景技术相比,本发明具有如下优点1)简便性。本系统的算法实现简单,使用的是一种在线算法,只需要很小的存储空 间就能工作。2)无数据冲突。本系统所使用的分发算法,在标记相关依赖指令后就能迅速分发 到各个核上运行。由于本系统扫描分发后的每一个指令集合之内都不再有任何依赖,因此 此时分发到各个核心上运行的指令不存在数据冲突关系,使得核间通讯总量大大下降,提 高了系统整体性能。3)高并行度。本系统的并行粒度为指令级,且对整个程序段都进行了扫描标记,因 此程序的每一个部分都在本系统下实现了并行优化,大大提高了原有程序的并行度。


图1是本发明实施例中的指令序列图;图2是本发明实施例中的指令数据流图;图3是本发明实施例中的指令依赖标记图;图4是本发明实施例中的指令分发依据时间关系在核上的分布图。
具体实施例方式下面,以一个程序段为例,对本发明具体实施方式
作具体说明。本实施例的基于Atom处理器的指令并行分发方法,其具体实现过程如下图1是一段载入数据并进行计算的指令的操作。为了直观地看到指令间的依赖关 系,这里不列出汇编代码,而用具体的指令操作代替。每一个操作都可以对应一条汇编指 令。为直观起见,每一条指令都有编号。从0开始,也与计算机的计数规律相对应。这段程
4序主要做了求和,移位和跳转等操作。从图1中可以清晰地看出程序所要使用的每一个寄存器和数据依赖。该程序段执 行的操作是从内存中载入四个数到寄存器$t0 $t3中(第0至第3条指令的操作)。将 这四个数进行相加后,输出到$16,并将其移位(第4至第9条指令的操作)。最后,在第10 条,程序跳转到地址为10000的指令处。在串行执行的处理器中,执行这段程序需要11个 指令周期,但对其进行并行优化后可以大大改善。在这里,可以看到以下这些数据依赖关系首先,扫描控制依赖,可以看到,在本实施例中,控制依赖只存在第10条。首先将 第10条指令标记为依赖。所述有控制依赖的指令,是指可能引起程序不按顺序执行的指 令,如跳转和分支指令。然后,分析数据依赖。第4条指令需要依赖第0和第1条指令的执行结果才能运 行,第5条指令依赖第2和第3条。第6条指令依赖第4条,第7条指令依赖第5条,第8 条指令依赖第6和第7条,第9条指令依赖第8条。对数据依赖进行分析后,可得到如图2 所示的数据流图。从图2的数据流图可以清晰地看到它的并行性。位于数据流图第一行的第0 3 条指令显然可以并行执行。位于第二行的两个虚线框内的指令之间也可以并行运行,最后 一个虚线框内的指令存在依赖,不可以并行执行。从图4中可以看到,运行这11条指令需 要6个指令周期,最大并行度为4,也就是第一行同时有四个指令并行执行。因此,可以看到第4条,第6条,第8条,第9条指令和第10条指令是存在依赖的 指令。在扫描过程中,它们被标记成“依赖”,如图3所示。在实际操作中,通常是将存在依 赖的指令的标志位赋值为“ 1 ”。下面,对指令进行分发处理。当这段被标记上依赖标志位的程序运行时,首先这段指令代码被读入指令分发结 构,指令分发结构将识别到依赖位标记为“1”的指令。在这段程序中,第一条被读入的依赖 指令是第4条。因此,第0条到第3条被发射到四个核上。如图2中虚线框所示。每个虚 线框表示一个运行该指令的核。可见第0到第3条被发射到四个不同的核上运行。这四条 指令之间不存在数据依赖,可以并行运行,且该四个不同的核可以同时访问寄存器。随后,指令分发结构扫描到第6条指令。这说明第4条指令和第5条指令之间没 有依赖关系,可以被并行运行。因此指令发射结构将第4条和第5条指令发射到两个不同 的核上。与前一个周期的运行情况类似,第4条和第5条这两条指令也不存在数据依赖性, 可以并行运行。指令分发结构继续扫描,遇到第8条指令,发现它的依赖标记为“ 1”,说明该 指令与前面的指令存在数据依赖。则第6条和第7条指令被发射出去。第6条和第7条指 令之间没有依赖关系,可以并行运行。接着指令分发结构发现第9条指令也存在依赖。这 说明第8条和第9条指令存在依赖,则发射第8条后,再发射第9条。如果这两条指令同时 运行,就会产生数据冲突。最后发射第10条指令。如图2所示。由图2可见,有六条指令存在依赖关系。每一条指令所要检测的依赖从它前一条 依赖指令开始算起。比如第6条指令的依赖关系只检测第4和第5条。因为第4条指令是 它之前一条有依赖的指令。类似的情况还有,第8条指令仅检查与第6和第7条指令的数 据依赖性,因为第6条指令是它之前的一条依赖指令。第9条指令仅检查第8条的数据依 赖性,因为第8条指令是它之前的一条依赖指令。指令发射时就根据依赖位的标识,以依赖指令为界,分批发射。在本例中,第0到第3条被指令分发结构同时发射到四个核上运行, 它们由于没有数据依赖,可以并行运行。与此类似,同样情况的4和5,6和7也可以被同时 发射并行运行。 指令分发结构根据这一依赖扫描结果发射指令,在一个多于四核的处理器上,指 令执行顺序如图4所示。X轴代表时钟周期,可以看到第一个周期有4条指令并行执行,第 2个和第3个周期有2条指令并行执行,第4、第5和第6周期均为单指令执行。
权利要求
一种基于Atom处理器的指令并行分发方法,其特征在于包括如下步骤1)从第一条指令开始,逐条扫描指令,将有控制依赖的指令予以标记;2)从第一条指令开始,逐条分析数据依赖,其步骤如下2.1当当前指令之前没有被标记过的指令,且当前指令与当前指令之前的指令存在数据依赖关系,则对当前指令予以标记,然后进入下一条指令,按步骤2.2继续分析数据依赖;2.2当当前指令与当前指令的前一条已经标记的指令以及该前一条已经标记的指令与当前指令之间的指令存在数据依赖关系时,则对当前指令予以标记,然后进入下一条指令,仍按照该步骤b)继续分析,直至将所有有数据依赖的指令均予以标记;所述控制依赖的指令和数据依赖的指令的标记是相同的,均是将存在依赖的指令的标志位赋值为“1”;3)从第一条指令开始逐条扫描,按如下步骤进行分发处理3.1将第一条有标记的指令之前的所有指令并行分发到不同的核上运行,然后进入下一条未分发的指令,按步骤3.2继续进行分发处理;3.2从当前未被分发的第一条指令起开始扫描,遇到下一条有标记的指令时,将下一条有标记的指令之前所有未被分发的指令并行分发到不同的核上运行,然后进入下一条未分发的指令,仍按照该步骤3.2继续执行分发处理;3.3当当前未被分发的第一条指令为最后一条有标记的指令,则将所有未被分发的指令并行分发到不同的核上运行,分发结束。
全文摘要
本发明公开了一种基于Atom处理器的指令并行分发方法,它包括如下步骤逐条扫描指令,将有控制依赖的指令予以标记;逐条分析数据依赖,若当前指令与当前指令的前一条已经标记的指令以及该前一条已经标记的指令与当前指令之间的指令存在数据依赖关系,则对当前指令予以标记;将当前第一条未被分发的指令与下一条有标记的指令之前所有未被分发的指令并行分发到不同的核上运行。本发明能够改进程序运行效率,减少核间通讯量,可以用来挖掘多核处理器的潜在计算能力。
文档编号G06F9/38GK101986265SQ201010525030
公开日2011年3月16日 申请日期2010年10月29日 优先权日2010年10月29日
发明者居立晗, 胡同森, 陈天洲, 黄文 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1