访问作为多个较小寄存器或组合的较大寄存器的寄存器组的处理器、方法和系统的制作方法_2

文档序号:9510124阅读:来源:国知局
个位的寄存器)的寄存器组108。例如,在一些实施例中,相邻寄存器对可独立作为128位寄存器来查看或可逻辑“组合”在一起并且统一作为单个256位寄存器来查看。在两个128位寄存器和单个256位寄存器两者中都可牵涉相同的物理寄存器和相同物理总量的位,但它们可采用不同方式来查看。有利地,在一些实施例中,这样的方法可用于避免需要扩大寄存器的位宽,同时仍允许组装数据寄存器宽度和/或组装数据操作数宽度增加。避免扩大寄存器位宽可有助于避免或至少减少背景章节中提到的可能缺点中的一些,例如晶片上增加的寄存器面积或占用空间和/或在上下文切换时需要移入和移出寄存器的增加数量的数据。在一些实施例中,这样的方法可用于实现具有至少256个位(例如,256个位、512个位、1024个位,等)的组装数据寄存器或操作数,对此前面提到的可能缺点趋于变得甚至更加明显。
[0035]为了避免难以理解描述,示出并且描述相对简单的处理器100。在其他实施例中,处理器可以可选地包括在处理器中找到的其他众所周知的部件。这样的部件的示例包括但不限于分支预测单元、指令提取单元、指令和数据转换后备缓冲器、预取缓冲器、微指令队列、微指令定序器、寄存器重命名单元、指令调度单元、引退单元、处理器中包括的其他部件及其各种组合。在处理器中从字面上存在很多不同的部件组合和配置,并且实施例不限于任何特定组合或配置。实施例可包括在具有多个核的处理器、逻辑处理器或执行引擎中,其中的至少一个包括或利用本文公开的实施例。
[0036]图2是在处理器中和/或由处理器执行的方法214的实施例的方框流程图。在一些实施例中,图2的操作和/或方法可由图1的处理器和/或在其内执行。上文描述的对于图1的处理器的细节和可选特征也可选地适用于图2的操作和/或方法,其可由这样的处理器和/或在这样的处理器内执行。备选地,图2的操作和/或方法可由相似或不同处理器和/或在相似或不同处理器内执行。此外,图1的处理器可执行与图2的那些相同、相似或不同的操作和/或方法。
[0037]方法包括在框216处米用第一方式访问一组寄存器。在一些实施例中,在第一方式中,寄存器组可代表多个N位寄存器。访问可以是从多个N位寄存器中的每个检索对应的N位组装数据(或对于多个N位寄存器中的每个存储对应N位组装数据)。
[0038]方法包括在框218处采用第二不同方式访问寄存器组。在一些实施例中,在第二方式中,寄存器组可代表具有至少2N个位的单个寄存器。访问可以是从单个寄存器检索具有至少2N个位的对应组装数据(或对于单个寄存器存储具有至少2N个位的对应组装数据)。在一些实施例中,至少2N个位可以是至少256个位。
[0039]在其他实施例中,方法可以可选地包括采用至少第三不同的方式并且在一些情况下也采用第四不同方式访问寄存器组。在一些实施例中,方式中的一个可将寄存器视为具有至少512个位宽的单个寄存器。
[0040]图3是图示其中在第一视图310中一组寄存器作为128位组装数据寄存器被查看或访问并且在第二视图312中作为256位组装数据寄存器被查看或访问的实施例的框图。在第一视图310中,寄存器(例如,物理寄存器)组在逻辑上作为八个128位组装数据寄存器(标记为X0-X7)来查看或访问。在第二视图312中,相同一组寄存器(例如,物理寄存器)在逻辑上作为四个(即,一半)256位组装数据寄存器(标记为Y0-Y3)来查看或访问。在第二视图312中,256位寄存器YO的最低阶128个位(S卩,位127:0)映射到或对应于128位寄存器X0,而256位寄存器YO的最高阶128个位(S卩,位255:128)映射到或对应于128位寄存器XI。相似地,其他256位寄存器Y1-Y3中的每个包括不同对的128位寄存器X2-X7。多个(在该情况下两个)较小(在该情况下128位)寄存器在逻辑上组合或分组来形成单个较大(在该情况下256位)寄存器。在一些实施例中,用于实现视图的实际物理寄存器可以是64位寄存器或128位寄存器。备选地,可以可选地使用其他宽度。
[0041]预想图示实施例上的许多变化。在图示实施例中,相邻128位寄存器在逻辑上组合或分组(例如,XO与Xl组合,X2与X3组合,等)。在其他实施例中,非相邻寄存器可组合(例如,不同组中的非相邻寄存器、交替寄存器可组合,等)。在图示的实施例中,示出八个128位寄存器(X0-X7)和四个256位寄存器(Y0-Y3),但可根据期望可选地使用更少或更多的寄存器。在一个示例实施例中,可存在足够寄存器以在第一视图310中查看至少十六个128位寄存器(或至少三十二个128位寄存器)和/或存在足够寄存器以在第二视图312中查看至少八个256位寄存器(或至少十六个128位寄存器)。此外,在其他实施例中,可支持三个或以上视图,其中寄存器组作为64位寄存器、512位寄存器、1024位寄存器、其他大小或其组合来查看。
[0042]图4是图示其中一组寄存器在第一视图410中作为64位组装数据寄存器被查看或访问、在第二视图412中作为128位组装数据寄存器被查看或访问并且在第三视图420中作为256位组装数据寄存器被查看或访问的实施例的框图。在第一视图410中,寄存器(例如,物理寄存器)组在逻辑上作为十六个64位组装数据寄存器(标记为W0-W15)来查看或访问。
[0043]在第二视图412中,相同寄存器(例如,物理寄存器)组在逻辑上作为八个(S卩,一半)128位组装数据寄存器(标记为X0-X7)来查看或访问。在第二视图412中,128位寄存器XO的最低阶64个位(S卩,位63:0)对应于64位寄存器W0,而128位寄存器XO的最高阶64个位(S卩,位127:64)对应于64位寄存器Wl。此外,在第二视图412中,128位寄存器Xl的最低阶64个位(S卩,位63:0)对应于64位寄存器W2,而128位寄存器Xl的最高阶64个位(即,位127:64)对应于64位寄存器W3。
[0044]在第三视图420中,相同寄存器(例如,物理寄存器)组在逻辑上作为四个256位组装数据寄存器(标记为Y0-Y3)来查看或访问。在第三视图420中,256位寄存器YO的最低阶64个位(S卩,位63:0)对应于64位寄存器WO,256位寄存器YO的最低中间阶64个位(S卩,位127:64)对应于64位寄存器Wl,256位寄存器YO的最高中间阶64个位(S卩,位191:128)对应于64位寄存器W2,并且256位寄存器YO的最高阶64个位(即,位255:192 )对应于64位寄存器W3。从另一方面来看,在第三视图420中,256位寄存器YO的最低阶128个位(S卩,位127:0)对应于128位寄存器X0,并且256位寄存器YO的最高阶128个位(S卩,位255:128)对应于128位寄存器XO。
[0045]在一些实施例中,用于实现视图的实际物理寄存器可以是64位寄存器或128位寄存器。备选地,可以可选地使用其他宽度。与之前一样,预想图示实施例上的许多变化。例如,非相邻寄存器可组合(例如,不同组中的非相邻寄存器、交替寄存器可组合,等)。作为另一个示例,可使用其他数量的寄存器。此外,在其他实施例中,可支持其他视图,其中寄存器组视为512位寄存器、1024位寄存器、其他大小或其组合。
[0046]图5是图示其中一组寄存器在第一视图中510作为128位组装数据寄存器被查看或访问、在第二视图512中作为256位组装数据寄存器被查看或访问并且在第三视图522中作为512位组装数据寄存器被查看或访问的实施例的框图。在第一视图510中,寄存器(例如,物理寄存器)组在逻辑上作为八个128位组装数据寄存器(标记为X0-X7)来查看或访问。在第二视图512中,相同寄存器(例如,物理寄存器)组在逻辑上作为四个(S卩,一半)256位组装数据寄存器(标记为Y0-Y3)来查看或访问。该配置可与对图3示出和描述的方法相似。
[0047]在第三视图522中,相同寄存器(例如,物理寄存器)组在逻辑上作为两个512位组装数据寄存器(标记为ZO-Zl)来查看或访问。在第三视图522中,512位寄存器ZO的最低阶128个位(S卩,位127:0)对应于128位寄存器X0,512位寄存器ZO的最低中间阶128个位(即,位255:128)对应于128位寄存器Xl,512位寄存器ZO的最高中间阶128个位(S卩,位383:256)对应于128位寄存器X2,并且512位寄存器ZO的最高阶128个位(S卩,位511:384)对应于128位寄存器X3。从另一个方面来看,在第三视图522中,512位寄存器ZO的最低阶256个位(S卩,位255:0)对应于256位寄存器,512位寄存器ZO的最高阶256个位(S卩,位511:256)对应于256位寄存器Y1。相似地,其他寄存器中的每个具有如由位标记示出的相似对应性。
[0048]在一些实施例中,用于实现视图的实际物理寄存器可以是64位寄存器或128位寄存器。备选地,可以可选地使用其他宽度。与之前一样,预想图示实施例上的许多变化。例如,非相邻寄存器可组合(例如,不同组中的非相邻寄存器、交替寄存器可组合,等)。作为另一个示例,可使用其他数量的寄存器。此外,在其他实施例中,可支持其他视图,其中寄存器组作为512位寄存器、1024位寄存器、其他大小或其组合被查看。
[0049]图6是图示其中一组寄存器在第一视图610中作为255位组装数据寄存器被查看或访问并且在第二视图612中作为512位组装数据寄存器被查看或访问的实施例的框图。在第一视图610中,寄存器(例如,物理寄存器)组在逻辑上作为四个255位组装数据寄存器(标记为Y0-Y3)来查看或访问。在第二视图612中,相同寄存器(例如,物理寄存器)组在逻辑上作为两个(即,一半)512位组装数据寄存器(标记为Z0-Z3)来查看或访问。在第二视图612中,512位组装数据寄存器ZO的最低阶255个位(S卩,位255:0)对应于255位寄存器Y0,并且512位寄存器ZO的最高阶255个位(S卩,位511:256)对应于256位寄存器Yl。相似地,其他寄存器中的每个具有如由位标记示出的相似对应性。
[0050]在一些实施例中,用于实现视图的实际物理寄存器可以是64位寄存器、128位寄存器或255位寄存器。备选地,可以可选地使用其他宽度。与之前一样,预想图示实施例上的许多变化。例如,非相邻寄存器可组合(例如,不同组中的非相邻寄存器、交替寄存器可组合,等)。作为另一个示例,可使用其他数量的寄存器。此外,在其他实施例中,可支持其他视图,其中寄存器组视为64位寄存器、128位寄存器、1024位寄存器、其他大小或其组合。
[0051]图7A-C是利用一组寄存器的不同视图的适合指令格式的实施例的框图。图7A是适合指令格式730A的第一实施例的框图。在该实施例中,指令格式具有操作代码或操作码732A,其能操作成指示在处理指令时要如何查看或访问一组寄存器。常规地,操作码可代表多个位或一个或多个字段,其能操作成识别要执行的指令和/或操作。在一些实施例中,操作码也可显式规定或隐式指示在处理指令时要如何查看或访问寄存器组。例如,某些操作码和/或操作可隐式地采用指定方式利用寄存器组。例如,对于对128位源寄存器执行的组装乘法操作的操作码可隐式指示目的地要视为256位寄存器来存储全产品,其是源数据元素大小的两倍。
[0052]根据特定类型的指令,指令格式还包括各种常规字段734A中的任一个。这样的常规字段的示例包括但不限于规定一个或多个源操作数的一个或多个字段和/或规定一个或多个目的操作数的一个或多个字段。这些操作数可代表如本文描述的寄存器、存储器位点或其他存储位点。源和/或目的操作数也可由指令隐式指示而不是显式规定。此外,对于源操作数的寄存器或其他存储位点可重新用于目的操作数。常规字段的其他示例包括但不限于一个或多个立即数、指示组装数据操作掩码(例如,用于预测的掩码)的字段、预测或屏蔽控制的字段、广播控制的字段、浮点舍入控制的字段和本领域内已知的其他常规字段。
[
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1