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

文档序号:9510124阅读:260来源:国知局
访问作为多个较小寄存器或组合的较大寄存器的寄存器组的处理器、方法和系统的制作方法
【技术领域】
[0001]本文描述的实施例大体涉及处理器。特别地,本文描述的实施例大体涉及处理器中寄存器的使用。
【背景技术】
[0002]许多处理器具有单指令多数据(SM))架构。在SM)架构中,组装数据指令、向量指令或Sn?指令可并发(例如,并行)对多个数据元素(例如,多对数据元素)起作用。处理器可具有响应于组装数据指令(packed data instruct1n)的并行指令硬件来并发(例如,并行)执行多个操作。
[0003]多个数据元素可在寄存器内或存储器位点内组装以作为组装数据。在组装数据中,寄存器或其他存储位点的位可在逻辑上分成数据元素序列。例如,64位宽组装数据寄存器可具有两个组装32位数据元素、四个组装16位数据元素或八个组装8位数据元素。
[0004]在一些处理器中,多年来组装数据操作数的宽度在递增。组装数据操作数宽度的增加大体允许并发(例如,并行)处理更多数据元素,这大体趋于提高性能。例如,在使用128位组装数据时,可并发处理八个16位数据元素来代替在64位组装数据情况下仅仅四个16位数据元素。
[0005]然而,这样的更宽组装数据使用的一个可能缺点是寄存器和寄存器文件大小的可能对应增加。例如,扩大一组64位寄存器中的每个寄存器使得它们每个是128位寄存器,这将可能使寄存器的大小(例如,晶片(die)上的寄存器所占据的占用空间的面积)近似加倍。该影响在比架构寄存器存在有更多物理寄存器的实现中将可能甚至更大,因为更大数量寄存器的大小近似加倍。这样的寄存器和寄存器文件大小增加的另一个可能缺点是在上下文切换、功率模式状态保存和类似转换时需要移到寄存器和从寄存器移动的数据量(例如,状态或上下文)的对应增加。例如,对于每个寄存器,在128位宽寄存器情况下128个位(而不是在64位宽寄存器情况下仅仅64个位)可需要移到寄存器和从寄存器移动。
【附图说明】
[0006]本发明通过参考下列描述和附图而最好地理解,这些附图用于图示本发明的实施例。在图中:
图1是处理器的实施例的框图。
[0007]图2是在处理器中和/或由处理器执行的方法的实施例的方框流程图。
[0008]图3是其中一组寄存器在第一视图中作为128位组装数据寄存器被查看或访问并且在第二视图中作为256位组装数据寄存器被查看或访问的实施例的框图。
[0009]图4是其中一组寄存器在第一视图中作为64位组装数据寄存器被查看或访问、在第二视图中作为128位组装数据寄存器被查看或访问并且在第三视图中作为256位组装数据寄存器被查看或访问的实施例的框图。
[0010]图5是其中一组寄存器在第一视图中作为128位组装数据寄存器被查看或访问、在第二视图中作为256位组装数据寄存器被查看或访问并且在第三视图中作为512位组装数据寄存器被查看或访问的实施例的框图。
[0011]图6是其中一组寄存器在第一视图中作为255位组装数据寄存器被查看或访问并且在第二视图中作为512位组装数据寄存器被查看或访问的实施例的框图。
[0012]图7A-C是利用一组寄存器的不同视图的适合指令格式的实施例的框图。
[0013]图7D是适合的组装数据格式的示例的框图。
[0014]图8A是图示根据本发明的实施例的示范性有序流水线和示范性寄存器重命名、无序发出/执行流水线两者的框图。
[0015]图SB是图示根据本发明的实施例要在处理器中包括的有序架构核的示范性实施例和示范性寄存器重命名、无序发出/执行架构核两者的框图。
[0016]图9A是根据本发明的实施例的单个处理器核连同它到片上互连网络的连接以及它的2级(L2)高速缓存的本地子集的框图。
[0017]图9B是根据本发明的实施例在图9A中的处理器核的部分的展开图。
[0018]图10是根据本发明的实施例可具有超过一个核、可具有集成存储器控制器且可具有集成图形的处理器的框图。
[0019]图11示出根据本发明的一个实施例的系统的框图。
[0020]图12示出根据本发明的实施例的第一更特定示范性系统的框图。
[0021]图13示出根据本发明的实施例的第二更特定示范性系统的框图。
[0022]图14示出根据本发明的实施例的SoC的框图。
[0023]图15是根据本发明的实施例对比将源指令集中的二进制指令转换成目标指令集中的二进制指令的软件指令转换器使用框图。
【具体实施方式】
[0024]本文公开处理器、方法和系统,其允许将一组寄存器作为多个相对较小的寄存器或作为多个相对较小寄存器被访问或查看。在下列描述中,阐述许多具体细节(例如,特定寄存器大小、寄存器数量、指令和格式、逻辑实现、处理器配置、微架构细节、操作顺序、逻辑划分/集成细节、系统部件的类型和相互关系及类似物)。然而,理解可在没有这些具体细节的情况下实践本发明的实施例。在其他实例中,为了不混淆对本描述的理解,未详细地示出众所周知的电路、结构和技术。
[0025]图1是处理器100的实施例的框图。该处理器代表能操作成处理指令的指令处理装置。在一些实施例中,处理器可以是通用处理器(例如,通常用作台式机、便携式电脑和类似计算机中的中央处理单元(CPU)的那类通用微处理器)。备选地,处理器可以是专用处理器。仅举几例,适合的专用处理器的示例包括但不限于网络处理器、通信处理器、密码处理器、图形处理器、协处理器、嵌入式处理器、数字信号处理器(DSP)和控制器(例如,微控制器)。处理器可以是各种复杂指令集计算(CISC)处理器、各种精简指令集计算(RISC)处理器、各种超长指令字(VLIW)处理器、其各种混合或完全是其他类型的处理器中的任一个。
[0026]处理器还包括一组寄存器108。这些寄存器中的每个可代表处理器上和/或片上存储位点。在一些实施例中,该组寄存器可代表组装数据寄存器,或可另外能够存储组装数据、向量数据或sn?数据。组装数据寄存器可采用不同方式在不同微架构中使用众所周知的技术实现,并且不限于任何特定类型的电路或机构。各种不同类型的寄存器是适合的。适合类型的寄存器的示例包括但不限于专用物理寄存器、使用寄存器重命名的动态分配物理寄存器及其组合。
[0027]处理器可接收指令102,其指示在寄存器组108上实现或另外与之关联的至少一个寄存器。指令可代表机器代码指令、汇编语言指令、宏指令或处理器指令集的控制信号。指令可显式规定(例如,通过一组位或一个或多个字段)或另外指示(或隐式指示)至少一个寄存器(例如,作为至少一个源和/或目的操作数)。作为一个示例,指令可规定用作源操作数的单个寄存器,并且该单个寄存器也可用作目的操作数,或指令可额外规定不同目的操作数。作为另一个示例,指令可规定用作第一源操作数的第一寄存器,和用作第二源操作数的第二寄存器,并且对源操作数规定的寄存器中的一个也可用作目的操作数,或指令可额外规定不同目的操作数。这些仅仅是几个说明性示例。本发明的范围不受特定类型指令的限制,只要指令指示与寄存器组关联的至少一个寄存器即可。仅举几例,适合类型的指令的示例包括但不限于组装算术指令(例如,组装加法指令、组装乘法指令,等)、组装逻辑指令(例如,组装循环指令、组装移位指令、组装比较指令、组装逻辑OR指令,等)、组装存储器访问指令(例如,收集指令、分散指令等)。
[0028]处理器包括指令解码单元104。该指令解码单元也可称为解码单元、解码器或解码逻辑。解码单元可接收相对更高级指令(例如,机器代码指令、汇编语言指令、宏指令)并且对其解码,并且输出一个或多个相对更低级指令或控制信号(例如,微指令、微操作、微代码入口点),其反映、代表更高级指令和/或从其得到。一个或多个更低级指令或控制信号可通过一个或多个更低级(例如,电路级或硬件级)操作来实现更高级指令。解码单元可使用各种不同机构实现,其包括但不限于微代码只读存储器(R0M)、查找表、硬件实现、可编程逻辑阵列(PLA)和用于实现本领域内已知的解码单元的其他机构。在其他实施例中,代替解码单元或作为解码单元的补充,可使用指令仿真器、转译器、变形器、解释器或其他指令转换逻辑。
[0029]再次参考图1,执行单元106与解码单元104并且与寄存器组108耦合。通过示例,执行单元可包括算术单元、逻辑单元、算术逻辑单元(ALU)、执行算术和逻辑操作的数字电路或逻辑、存储器执行单元或类似物。执行单元可接收一个或多个解码或另外转换的指令或控制信号,其代表指令102和/或从指令102得到。执行单元和/或处理器可包括具体或特定逻辑(例如,晶体管、电路或潜在地与固件(例如,存储在非易失性存储器中的指令)和/或软件组合的其他硬件),其能操作成响应于指令102 (例如,响应于解码或另外从指令102得到的一个或多个指令或控制信号)执行操作。
[0030]在一些实施例中,执行单元可响应于和/或由于指令102而能操作成采用寄存器的至少两个不同方式或视图中的任一个或两个来访问寄存器组108。在一些实施例中,该至少两个不同方式或视图可包括第一方式或视图110,其中寄存器组108要视为或另外代表多个N位寄存器。在一些实施例中,至少两个不同方式或视图可包括第二方式或视图112,其中寄存器组要视为或另外代表具有至少2N个位的单个寄存器。在一些实施例中,至少2N个位可以是至少256个位。在其他实施例中,寄存器组可以是N位寄存器(例如,128位寄存器、256位寄存器等)。在一些实施例中,寄存器组可以是N/2位寄存器(例如,64位寄存器、128位寄存器等)。
[0031 ] 作为一个具体示例,寄存器组108可由两个N位寄存器(例如,128位寄存器)组成。在第一方式或视图110中,两个N位寄存器(例如,128位寄存器)可视为或另外代表两个N位(例如,128位)寄存器。在第二方式或视图112中,两个N位寄存器(例如,128位寄存器)可视为或另外代表具有至少2N个位(例如,256个位、512个位,等)的单个寄存器。在一些实施例中,可存在访问一组寄存器108的不止两个不同视图或方式。例如,在一些实施例中,可存在三个、四个或超过四个访问或查看寄存器组108的不同方式。例如,在一些实施例中,该示例可额外支持访问作为四个N/2位寄存器(例如,64位寄存器)的寄存器组。
[0032]作为另一个具体示例,寄存器组108可由四个N/2位寄存器(例如,64位寄存器)组成。在第一方式或视图11中,该四个N/2位寄存器(例如,64位寄存器)可视为或另外代表两个N位(例如,128位)寄存器。在第二方式或视图112中,四个N/2位寄存器(例如,64位寄存器)可视为或另外代表具有至少2N个位(例如,256个位、512个位、1024个位等)的单个寄存器。在一些实施例中,可存在访问寄存器组108的至少第三个方式。例如,在一些实施例中,在第二视图112中,执行单元可将四个N/2位寄存器(例如,64位寄存器)作为具有至少4N个位(例如,512个位、1024个位,等)的单个寄存器来查看或访问,并且处理器可额外支持访问或查看作为多个2N位寄存器(例如,256个位)的寄存器组108。
[0033]在一些实施例中,在寄存器组108的视图和/或访问寄存器108组的方式中的每个中,被查看或访问的组装数据寄存器对于软件和/或编程者可是可见的并且/或可由指令集的指令(例如,宏指令、机器语言指令、汇编语言指令等)规定来识别操作数。有时由指令集的指令规定的寄存器在现有领域中称为架构可见寄存器或架构寄存器,其与指定微架构中的其他非架构或非架构可见寄存器(例如,用于实现指令的暂时寄存器,等)形成对比。
[0034]如在这些详细示例中示出的,在一些实施例中,处理器可能操作成识别、查看和/或访问作为多个相对较小寄存器(例如,N位寄存器)或作为单个相对较大寄存器(例如,具有至少2N
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1