当前位置: 首页 > 专利查询>英特尔公司专利>正文

流水线调度中混叠寄存器的分配制造技术

技术编号:11134065 阅读:81 留言:0更新日期:2015-03-12 05:00
在实施例中,系统包括处理器,其包括一个或多个核和多个混叠寄存器,用于存储与环的多个操作关联的存储器范围信息。该存储器范围信息引用存储器内的一个或多个存储器位点。系统还包括寄存器分配部件,用于将所述混叠寄存器中的每个分配给环的对应操作,其中根据旋转调度进行所述分配,并且混叠寄存器中的一个被分配给环的第一迭代中的第一操作和环的后续迭代中的第二操作。系统还包括耦合于处理器的存储器。描述其他实施例并且它们被要求保护。

【技术实现步骤摘要】
【国外来华专利技术】
实施例涉及流水线调度操作。 
技术介绍
通常由编译器处理的任务是存储器消歧(memory disambiguation),其可包括检测非混叠存储器访问,例如访问不同存储器位点的加载或存储。这些操作可调度成为了更好的指令级并行性而无序运行。相比之下,访问相同存储器位点的存储器操作标记为“混叠(aliased)”,并且无法被无序调度。 在编译器优化(例如,软件流水线)中通常包括存储器消歧。软件流水线可以通过使连续迭代的执行重叠而为环利用指令级并行性。然而,连续迭代中操作的执行的重叠可以产生混叠。 附图说明图1是根据本专利技术的实施例用于调度混叠寄存器的系统的框图。 图2A、B、C图示根据本专利技术的实施例的混叠寄存器分配方案。 图3是根据本专利技术的另一个实施例的混叠寄存器分配方案的图示。 图4是根据本专利技术的实施例用于调度混叠寄存器的方法的流程图。 图5是根据本专利技术的实施例的处理器的框图。 图6是根据本专利技术的实施例包括多个核的处理器的实施例的图示。 图7是根据本专利技术的实施例的系统的框图。 具体实施方式为了在运行时执行的优化,硬件支持可用于完成存储器消歧。在本专利技术的实施例中,硬件支持可包括寄存器文件(例如,旋转寄存器文件),其包括多个存储器访问寄存器(“混叠寄存器”),这些寄存器可应用于例如环等循环码,其包括要为了多个迭代而执行的多个操作。在实施例中,混叠寄存器可应用于环的软件流水线调度来实行存储器消歧并且在运行时发现混叠。 r>例如,在调度阶段期间,环内的存储器访问(例如,加载操作或存储操作,在本文是“操作”)可以假设为没有混叠(“数据猜测”),例如可以假设在存储器访问之间没有依赖性(例如,有序关系)。尽管数据猜测实现更多的并行性(例如,计算资源通过操作的无序处理的高效使用),它也可导致错误。例如,如果存储器访问碰巧彼此混叠(例如,存储器访问被引导到重叠的存储器位点)并且如果在执行调度中存储器访问的顺序与它们在原始环中的顺序不同,则数据猜测是错误的,例如数据猜测失败。为了捕捉将导致混叠的该情况,可以对每个存储器访问分配混叠寄存器,其在执行访问时记录访问的地址(例如,被访问存储器的起始地址和范围)的存储器范围。访问的存储器范围可与所有潜在混叠访问的混叠寄存器比较并且如果存在匹配,则识别混叠,例如数据猜测的失败。这样的失败可通过例如执行恢复代码来处理。在一些实施例中,恢复代码的执行可导致退回到环之前的迭代,和/或对操作重新排序来消除混叠。 一般存在两种混叠寄存器:静态和旋转。静态混叠寄存器与旋转混叠寄存器使用起来不同,例如在指令中编码如何比较寄存器方面。为了执行与静态混叠寄存器的比较,静态混叠寄存器的寄存器号可被显式编码。与静态寄存器相比之下,典型地不单独比较旋转混叠寄存器。相反,仅对一个寄存器号编码并且比较所有寄存器,从编码寄存器开始直到编号最大的寄存器。该技术可解决编码但可产生假肯定,例如如果未正确地分配寄存器。 注意对于旋转混叠寄存器文件,比较可以是“单向的”,例如比较可以是针对编号最大的寄存器的“向上检查”,而不是“向下”。可存在基址指针,其指向混叠寄存器文件。在“旋转”中,基址指针上移,并且从原始到基址指针所指向的当前寄存器,清除所有寄存器。 本专利技术的实施例在软件流水线中可使用旋转混叠寄存器。在本文,“寄存器”或“混叠寄存器”通常指“旋转混叠寄存器”。 图1是根据本专利技术的实施例用于调度混叠寄存器的系统100的框图。该系统100包括处理器110,其耦合于动态随机存取存储器(DRAM)180。该处理器110可包括多个核1120、1121…112n来执行指令。处理器110可包括寄存器分配逻辑114、指令调度逻辑116、旋转寄存器文件118、混叠检测逻辑120和一个或多个高速缓存存储器(其包括高速缓存122)。在实施例中,寄存器分配逻辑114、指令调度逻辑116和混叠检测逻辑120中的一个或多个可以是软件、硬件、固件或其组合。例如,寄存器分配逻辑114可包括要由执行硬件执行的软件或专用固件或专用电路或其组合。指令调度逻辑116可包括软件、硬件、固件或其组合。例如,指令分配逻辑114可包括要由执行硬件执行的软件或专用固件或专用电路或其组合。 在操作中,指令调度逻辑116可创建操作调度用于环(例如,对于多个N个迭代要迭代执行的限定操作组)的执行。指令调度逻辑116可调度操作(例如,软件流水线)以便实现可用计算资源的高效利用。 由于软件流水线,由指令调度逻辑产生的执行调度与在环中规定的操作的执行顺序相比可导致不同的执行顺序。例如,两个操作的环(操作a后跟操作b)可由指令调度逻辑116调度使得对于每个迭代执行操作b,在这之后执行操作a,以便高效利用可用计算资源。 对于环中的多个迭代中的每个,寄存器分配逻辑114可将旋转寄存器文件118中的一组混叠寄存器中的每个混叠寄存器分配给环中的对应操作。在实施例中,旋转寄存器文件118的每个混叠寄存器可不止一次地被分配,例如,可对连续操作分配混叠寄存器,从而旋转通过多个(例如,有限数量的)混叠寄存器(假设没有混叠寄存器同时被分配给两个操作)。 每个混叠寄存器可用于将存储器访问数据(例如,一个或多个存储器位点的存储器地址范围)存储在高速缓存122中或DRAM 180中,通过环的对应操作来访问该数据。在实施例中,可由混叠检测逻辑120将混叠寄存器中的一个的内容与旋转寄存器文件118的混叠寄存器中的若干其他的内容比较,来确定是否存在混叠,例如在相同时帧是否存在对共同存储器位点的访问(经由例如加载操作或存储操作)。 图2A、B、C图示根据本专利技术的实施例的寄存器分配方案。在图2A中,作为示范性环,伪代码环210包括操作a和操作b。操作a和b两者都是存储器访问,例如加载或存储操作(在本文是“操作”)。 对于N=3,环210执行3个迭代,例如i=0、1、2。注意在由伪代码210描述的环中,在相同迭代中在操作b之前执行操作a,并且在后续迭代中在所有a操作和所有b操作之前也执行操作a。 在图2B中,描绘对于环的软件流水线调度220。在软件流水线调度220中,在迭代0内将操作a调度成在操作b执行后执行。在迭代1中,操作a调度成在操作b执行后执行。在迭代2中,操作a调度成在操作b执行后执行。如与环210相比,操作的重新排序可引起混叠,其可通过使用运行时混叠监视来检测。可分配混叠寄存器来实现运行时混叠监视。 在图2C中,混叠寄存器分配方案230代表根据本专利技术的实施例的技术方案。X轴232指示时间并且Y轴234指示与对应混叠寄存器关联的寄存器号。条242-250代表操作的“寿命时间”。第一操作的寿命时间可限定为这样的时期,其以第一操作(“生产者操作”)的执行开始并且在执行第二操作时结束,该第二操作可在完成第二操作之前与第一操作混叠。每个寿命时间用对应的生产者操作来标记。例如,寿命时间244在时间t=1处开始(在该时间处开始执行操作b),并且在t=5处结束,其是结束操作a的执行时的时间(本文档来自技高网...

【技术保护点】
一种系统,其包括:处理器,其包括:一个或多个核;寄存器文件,其包括多个混叠寄存器,用于存储与环的多个操作关联的存储器范围信息,其中所述存储器范围信息引用存储器内的一个或多个存储器位点;以及寄存器分配部件,用于将所述混叠寄存器中的每个分配给所述环的对应操作,其中根据旋转调度进行分配,其中将所述混叠寄存器中的至少一个分配给所述环的第一迭代中的第一操作和所述环的后续迭代中的第二操作;所述存储器,其耦合于所述处理器。

【技术特征摘要】
【国外来华专利技术】1.一种系统,其包括:
处理器,其包括:
一个或多个核;
寄存器文件,其包括多个混叠寄存器,用于存储与环的多个操作关联的存储器范围信息,其中所述存储器范围信息引用存储器内的一个或多个存储器位点;以及
寄存器分配部件,用于将所述混叠寄存器中的每个分配给所述环的对应操作,其中根据旋转调度进行分配,其中将所述混叠寄存器中的至少一个分配给所述环的第一迭代中的第一操作和所述环的后续迭代中的第二操作;
所述存储器,其耦合于所述处理器。
2.如权利要求1所述的系统,其中所述处理器进一步包括指令调度部件,用于根据流水线调度来调度所述环的操作,其中所述环的至少一个操作根据与所述环的操作的顺序不同的执行调度来执行。
3.如权利要求1所述的系统,其中所述一个或多个核中的一个执行存储在第一混叠寄存器中的数据与存储在所述混叠寄存器中的至少一个其他中的数据的比较来确定是否存在混叠。
4.如权利要求1所述的系统,其中第一混叠寄存器对于第一寿命时间被分配给第一操作并且所述第一混叠寄存器对于第二寿命时间被分配给第二操作,其中所述第一寿命时间和所述第二寿命时间是非重叠时期。
5.如权利要求4所述的系统,其中所述第一寿命时间在所述环的第一迭代内并且所述第二寿命时间在所述环的第二迭代内,所述第二迭代是依次挨着所述第一迭代的迭代。
6.如权利要求1-5中任一项所述的系统,其中所述寄存器分配部件用于执行旋转清除指令来擦除关联寿命时间到期的每个混叠寄存器的内容。
7.至少一个计算机可读介质,其包括指令,所述指令在被执行时
使系统能够:
根据对于环的多个迭代的旋转序列相继将旋转寄存器文件的多个混叠寄存器中的每个分配给所述环的对应操作,其中每个混叠寄存器存储由对应操作访问的一个或多个存储器位点的指示并且所述混叠寄存器中的一个被分配给所述环的第一迭代中的第一操作和所述环的后续迭代中的第二操作;以及
通过比较分配的混叠寄存器中的至少一个的内容与一个或多个其他分配的混叠寄存器的内容来确定是否存在混叠条件。
8.如权利要求7所述的计算机可读介质,其中第一混叠寄存器对于第一寿命时间被分配给第一操作并且所述第一混叠寄存器对于第二寿命时间被分配给第二操作,其中所述第一寿命时间和所述第二寿命时间是非重叠时期。
9.如权利要求8所述的计算机可读介质,其中所述第一寿命时间和所述第二寿命时间是所述环的依次相邻迭代。
10.如权利要求8所述的计算机可读介质,其中所述第一寿命时间和所述第二寿命时间在所述环的非相邻迭代中。
11.如权利要求7所述的计算机可读介质,其进一步包括指令,所述指令使所述系统能够:
对于操作以及基于排序关系对于相同或不同迭代内的另一个操作分配寿命时间;以及
对于所述寿命时间的持续时间,对所述操作分配对应混叠寄存器。
12.如权利要求11所述的计算机可读介质,其进一步包括指令,所述指令使所述系统能够在所述持续时间到期时将所述对应混叠寄存器重新分配给另一个迭代中的另一个操作。
13.如权利要求7-12中任一项所述的计算机可读介质,其进一步包括指令,所述指令使所述系统能够响应于排序关系的存在来检查混叠,其中所述排序关系响应于以下而被指示:
根...

【专利技术属性】
技术研发人员:H荣C王H朴Y吴
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1