在回退阶段期间合并部分写结果的系统和方法技术方案

技术编号:14000071 阅读:68 留言:0更新日期:2016-11-15 14:16
一种处理器,包括物理寄存器文件、重命名表、映射逻辑、尺寸跟踪逻辑和合并逻辑。重命名表映射对应较大索引和较小索引的结构寄存器。映射逻辑检测部分写指令,其中部分写指令所指定的结构寄存器已经被重命名表内的现有条目为先前写指令标示,且先前写指令的写尺寸大于部分写指令,则映射逻辑分配第一物理寄存器并以第一物理寄存器的第一物理寄存器索引更新现有条目的较小物理寄存器索引位置。如果先前写指令的写寸较大,则尺寸跟踪逻辑为部分写指令提供合并指示。合并逻辑响应于合并指示在部分写指令的回退期间合并部分写指令的结果与第二物理寄存器。

【技术实现步骤摘要】

本专利技术一般地涉及解决处理器中所存储的结果尺寸问题的物理寄存器重命名,以及更加具体地涉及在回退(retire)阶段合并后续的部分写的结果与先前的较大写的结果。
技术介绍
处理器包含一组寄存器以存储写操作的结果。由处理器的标准指令集架构(ISA)(比如的x86架构等)的子集执行写操作。在包括x86的许多架构中,执行写操作的指令可以引用的一组预定义的结构寄存器(architecture register)中的至少一个用于存储结果。越来越多新的处理器配置采用了物理寄存器文件(Physical Register File,PRF)重命名方式,其使得处理器设计更简明和实现更方便的设计扩展。具有PRF重命名的处理器包含用于存储操作结果的物理寄存器文件(PRF)和用于映射结构寄存器到物理寄存器(physical register)的重命名结构。PRF是一组物理寄存器,每一个使用一组索引或者指针等中的唯一一个来标识。重命名结构将一个指令引用的结构寄存器映射到相应的物理寄存器的索引。在软件程序或者应用的执行期间,当遇到一个指令,其引用一结构寄存器存储指令的结果,处理器从物理寄存器索引的“空闲列表”(Freelist)当中分配可用的物理寄存器,附加或者以其他方式分配所选的索引给该指令,并更新重命名结构的一推测性部分以将该结构寄存器映射到所选的物理寄存器。当执行指令时,该索引用于访问物理寄存器以存储结果。当回退指令时,该索引可能被移动到该重命名结构的一回退部分(或者另外移动到一不同的重命名结构)以将物理寄存器映射到指定的结构寄存器。该物理到结构寄存器映射可以由后续的读操作使用直到重写或者重新定义为止。不需要单独的一组物理结构寄存器;代替地,仅简单地将结构标识符等映射到物理寄存器。因为简单地移动或者重新映射索引而不是必须在寄存器之间移动存储值,所以PRF重命名方式更有效率。当架构使用允许仅修改整个寄存器的一部分的部分写操作的复杂操作数尺寸时,会出现定尺寸(sizing)问题。例如,x86架构使用这种复杂操作数尺寸,虽然本专利技术不限于x86架构。作为复杂操作数尺寸的示例,可以执行写指令以修改64位寄存器的8位、16位、32位或者64位,其中每一较大尺寸合并较小的写尺寸(因为从寄存器的相同尾部开始引用)。即使引用同一结构寄存器,每一指令也被分配一个单独的物理寄存器。写到同一结构寄存器的相同尺寸或者大于在先写操作的后续写操作在该系统中被适当地处理,而不用进一步修改。但是,写到同一结构寄存器的小于在先写操作的后续写操作则会造成引用同一结构寄存器的一后续读操作的问题,因为如果引用同一结构寄存器的读操作的源大于该后续写操作,则其没有保存完整的结果。多源相关技术可以解决该问题,但是需要PRF的读端口至少加一倍。另一可能的解决方案是在读指令之前合并物理寄存器中存储的值,但是这要求在同一周期检测到发射的指令的所有源,这对于复杂情况可能减小发射带宽。该初步合并解决方案可能导致另外的无效率且可能强加关键的时序问题。
技术实现思路
根据一个实施例的处理器包括物理寄存器文件、重命名表、映射逻辑、尺寸跟踪逻辑和合并逻辑。物理寄存器文件包括多个物理寄存器,每一个由相应的物理寄存器索引标识。重命名表包括多个条目,多个条目中的每个存储结构标识符、较大物理寄存器索引和较小物理寄存器索引,其中结构标识符标识多个结构寄存器其中之一,其中结构标识符标识多个结构寄存器其中之一。映射逻辑探测部分写指令,其中部分写指令所指定的结构寄存器已经被重命名表内的现有条目为先前写指令标示,且先前写指令的写尺寸大于部分写指令,其中,映射逻辑分配第一物理寄存器并以第一物理寄存器的第一物理寄存器索引更新现有条目的较小物理寄存器索引。如果先前写指令的写尺寸大于部分写指令,则尺寸跟踪逻辑为部分写指令设置合并指示。合并逻辑响应于合并指示在部分写指令的回退期间合并部分写指令的结果与第二物理寄存器。第二物理寄存器由现有条目的较大物理寄存器索引标识。尺寸跟踪逻辑可以访问现有条目的最后写尺寸位置以确定读指令是否指定源为映射到先前写指令和部分写指令两者的结构寄存器,其中,最后写尺寸位置存储最后写指令的写尺寸,其中最后写指令是先前写指令和部分写指令中较晚的一个。如果读指令的源的尺寸大于最后写指令的写尺寸,则尺寸跟踪逻辑确定读指令是否指定源为映射到先前写指令和部分写指令两者的结构寄存器。如果尺寸跟踪逻辑确定读指令指定源为映射到先前写指令和部分写指令两者的结构寄存器,则尺寸跟踪逻辑标记读指令为自串行化并设置读指令为依赖于先前写指令。。处理器可以进一步包括重命名切换逻辑,其在部分写指令回退时将第一物理寄存器变换到回退的非结构状态,并在先前写指令回退时将第二物理寄存器变换到回退的结构状态。重命名切换逻辑可以当后续指令重新映射在重命名表的现有条目中标识的结构寄存器时,回收第一和第二物理寄存器。处理器可以进一步包括部分写缓冲器,其在部分写指令的写回期间存储部分写指令的结果,且其中,合并逻辑从部分写缓冲器读取部分写指令的结果。先前写指令的写尺寸存储在现有条目的较大写尺寸位置中,且其中,映射逻辑访问较大写尺寸位置以确定是否更新现有条目的较小物理寄存器索引。此外,先前写指令的写尺寸存储在现有条目的较大写尺寸位置中,且其中,尺寸跟踪逻辑访问较大写尺寸位置以确定是否提供合并指示。合并指示存储为用于部分写指令的重新排序缓冲器的条目中的合并位。一种在处理器中解决尺寸问题的合并部分写结果的方法,包括:从寄存器文件为第一写指令分配第一物理寄存器,并且映射第一物理寄存器到结构寄存器;从寄存器文件为引用结构寄存器的第二写指令分配第二物理寄存器;比较第二写指令的写尺寸与第一写指令的写尺寸;根据比较的结果映射第二物理寄存器到结构寄存器;如果第二写指令的写尺寸小于第一写指令的写尺寸,则为第二写指令提供合并指示;和在第二写指令回退时,响应于合并指示将第二写指令的结果合并到第一物理寄存器中。该方法可以包括在用于结构寄存器的重命名表的条目的较大位置中存储第一索引。该方法可以包括如果第二写指令的写尺寸小于第一写指令的写尺寸,则在条目的较小位置中存储第二索引,以及如果第二写指令的写尺寸不小于第一写指令的写尺寸,则在条目的较大位置中存储第二索引。该方法可以包括读取映射到第二写指令的重命名表的条目中存储的第二写指令的尺寸值。该方法可以包括当读指令指定源为映射到第一写指令和第二写指令两者的结构寄存器时,标记读指令为自串行化和使得读指令依赖于第一写指令。方法可以进一步包括在第二写指令回退时,将第一物理寄存器转变到已回退非结构状态;和在第一写指令回退时,将第二物理寄存器转变到已回退结构状态。该方法可以包括当后续指令重新映射结构寄存器时回收第一和第二物理寄存器。该方法可以进一步包括如果第二写指令的写尺寸小于第一写指令的写尺寸,则在第二写指令的写回期间将第二写指令的结果存储到部分写缓冲器中,并且在合并期间从部分写缓冲器读取第二写指令的结果。该方法可以包括存储第一写指令的写尺寸,以及比较第二写指令的写尺寸与所存储的第一写指令的写尺寸。该方法可以包括存储合并指示为在用于第二写指令的重新排序缓冲器的条目中的合并位。附图说明本专利技术的益处、特征和优点将关于以下描述和附图本文档来自技高网
...

【技术保护点】
一种处理器,包括:物理寄存器文件,包括多个物理寄存器,每个由多个物理寄存器索引中的相应一个标识;具有多个条目的重命名表,所述多个条目中的每个存储结构标识符、较大物理寄存器索引和较小物理寄存器索引,其中所述结构标识符标识多个结构寄存器其中之一;映射逻辑,其探测部分写指令,其中所述部分写指令所指定的结构寄存器已经被所述重命名表内的现有条目为先前写指令标示,且所述先前写指令的写尺寸大于所述部分写指令,其中,所述映射逻辑分配第一物理寄存器并以所述第一物理寄存器的第一物理寄存器索引更新所述现有条目的所述较小物理寄存器索引;尺寸跟踪逻辑,如果所述先前写指令的所述写尺寸大于所述部分写指令,则为所述部分写指令设置合并指示;和合并逻辑,响应于所述合并指示在所述部分写指令的回退期间合并所述部分写指令的结果与第二物理寄存器,其中,所述第二物理寄存器由所述现有条目的所述较大物理寄存器索引标识。

【技术特征摘要】
1.一种处理器,包括:物理寄存器文件,包括多个物理寄存器,每个由多个物理寄存器索引中的相应一个标识;具有多个条目的重命名表,所述多个条目中的每个存储结构标识符、较大物理寄存器索引和较小物理寄存器索引,其中所述结构标识符标识多个结构寄存器其中之一;映射逻辑,其探测部分写指令,其中所述部分写指令所指定的结构寄存器已经被所述重命名表内的现有条目为先前写指令标示,且所述先前写指令的写尺寸大于所述部分写指令,其中,所述映射逻辑分配第一物理寄存器并以所述第一物理寄存器的第一物理寄存器索引更新所述现有条目的所述较小物理寄存器索引;尺寸跟踪逻辑,如果所述先前写指令的所述写尺寸大于所述部分写指令,则为所述部分写指令设置合并指示;和合并逻辑,响应于所述合并指示在所述部分写指令的回退期间合并所述部分写指令的结果与第二物理寄存器,其中,所述第二物理寄存器由所述现有条目的所述较大物理寄存器索引标识。2.如权利要求1所述的处理器,其中,所述尺寸跟踪逻辑访问所述现有条目的最后写尺寸位置以确定读指令是否指定源为映射到所述先前写指令和所述部分写指令两者的所述结构寄存器,其中,所述最后写尺寸位置存储最后写指令的写尺寸,其中所述最后写指令是所述先前写指令和所述部分写指令中较晚的一个。3.如权利要求2所述的处理器,其中,如果所述读指令的所述源的尺寸大于所述最后写指令的所述写尺寸,则所述尺寸跟踪逻辑确定所述读指令是否指定所述源为映射到所述先前写指令和所述部分写指令两者的所述结构寄存器。4.如权利要求1所述的处理器,其中,如果所述尺寸跟踪逻辑确定读指令指定源为映射到所述先前写指令和所述部分写指令两者的所述结构寄存器,则所述尺寸跟踪逻辑标记所述读指令为自串行化并设置所述读指令为依赖于所述先前写指令。5.如权利要求1所述的处理器,进一步包括重命名切换逻辑,其在所述部分写指令回退时将所述第一物理寄存器变换到回退的非结构状态,并在所述先前写指令回退时将所述第二物理寄存器变换到回退的结构状态。6.如权利要求5所述的处理器,其中,当后续指令重新映射在所述重命名表的所述现有条目中标识的所述结构寄存器时,所述重命名切换逻辑回收所述第一和第二物理寄存器。7.如权利要求1所述的处理器,进一步包括部分写缓冲器,其在所述部分写指令的写回期间存储所述部分写指令的所述结果,且其中,所述合并逻辑从所述部分写缓冲器读取所述部分写指令的所述结果。8.如权利要求1所述的处理器,其中,所述先前写指令的所述写尺寸存储在所述现有条目的较大写尺寸位置中,且其中,所述映射逻辑访问所述较大写尺寸位置以确定是否更新所述现有条目的所述较小物理寄存器索引。9.如权利要求1所述的处理器,其中,所述先前写指令的所述写尺寸存储在所...

【专利技术属性】
技术研发人员:费晓龙
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海;31

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

1