多寄存器存储器访问指令、处理器、方法和系统的制作方法

文档序号:9493648阅读:634来源:国知局
多寄存器存储器访问指令、处理器、方法和系统的制作方法
【技术领域】
[0001] 本文所述的实施例通常涉及处理器。特别是,本文所述的实施例通常涉及使用处 理器来访问存储器中的数据。
【背景技术】
[0002] 很多处理器具有单指令多数据(SM))架构。在SM)架构中,紧缩数据指令(packeddatainstruction)、矢量指令或SIMD指令可同时或并行地对多个数据元素(例 如多对数据元素)操作。多个数据元素可被紧缩在寄存器或存储器单元内作为紧缩数据。 在紧缩数据中,寄存器或其它存储单元的位可在逻辑上分成一系列数据元素。例如,64位宽 紧缩数据寄存器可具有两个紧缩的32位数据元素、四个紧缩的16位数据元素或八个紧缩 的8位数据元素。处理器可具有响应于紧缩数据指令来同时(例如并行地)执行多个操作 的并行执行硬件。
[0003]在一些处理器中,这些年来存在紧缩数据操作数的宽度的逐渐增加。紧缩数据操 作数的宽度的这个增加通常允许更多的数据元素被同时处理(例如并行地),这通常帮助 提高性能。例如,128位宽紧缩数据操作数可具有四个32位数据元素(而不是在64位宽紧 缩数据操作数的情况中的仅仅两个)、八个紧缩16位数据元素(而不是在64位宽紧缩数据 操作数的情况中的仅仅四个)等。
[0004] 在某些处理器中,紧缩数据操作数的宽度的增加伴随寄存器的宽度的对应增加。 然而,增加寄存器的宽度的一个可能的缺点是由管芯上寄存器占据的区域或覆盖区的增 加。例如,扩展一组64位寄存器中的每一个寄存器使得它们每一个是128位寄存器将可能 使由管芯上寄存器占据的区域或覆盖区大致加倍。在有比架构寄存器更多的所实现的物理 寄存器的实现中影响将可能甚至更大,因为较大数量的寄存器的尺寸可大致被加倍。寄存 器的宽度的这样的增加的另一可能的缺点是在状态、上下文或存储在寄存器中的其它数据 的数量的对应增加,这些数据需要在上下文开关、功率模式状态保存和类似转变时移动到 寄存器和从寄存器移动(例如保存和恢复)。例如,对于每一个寄存器,128位而不是仅仅 64位可能需要在上下文改变时被换入和换出。
[0005]处理器一般执行从存储器装入数据(例如紧缩数据操作数)并将数据(例如紧缩 数据操作数)存储到存储器的指令。例如,处理器可执行从存储器装入指令以将紧缩数据 操作数从存储器装入或读取到目的寄存器内。处理器可执行写到存储器指令以将紧缩数据 操作数从源寄存器写或存储到存储器。
【附图说明】
[0006]通过参考下面的描述和用于示出实施例的附图可最好地理解本发明。在附图中:
[0007] 图1是计算机系统的实施例的方框图。
[0008] 图2是处理多寄存器存储器访问指令的实施例的方法的实施例的方框流程图。
[0009] 图3是处理多寄存器从存储器装入指令的实施例的方法的实施例的方框流程图。
[0010] 图4是处理多寄存器写到存储器指令的实施例的方法的实施例的方框流程图。
[0011] 图5是适当的多寄存器存储器访问操作的第一示例实施例的方框图。
[0012] 图6是适当的多寄存器存储器访问操作的第二示例实施例的方框图。
[0013] 图7是适当的多寄存器存储器访问操作的第三示例实施例的方框图。
[0014] 图8是示出一组寄存器在不同的视图中可以作为64位寄存器、128位寄存器和 256位寄存器被考虑或访问的实施例的方框图。
[0015]图9A-9C是多寄存器存储器访问指令的适当指令格式的实施例的方框图。
[0016] 图10A是示出根据本发明的实施例的示例性有序流水线和示例性寄存器重命名 无序发布/执行流水线的方框图。
[0017] 图10B是示出根据本发明的实施例的被包括在处理器中的有序架构核心和示例 性寄存器重命名无序发布/执行架构核心的示例性实施例的方框图。
[0018] 图11A是根据本发明的实施例的单处理器核心连同它到管芯上互连网络的连接 及它的2级(L2)高速缓存的本地子集的方框图。
[0019] 图11B是根据本发明的实施例的在图11A中的处理器核心的部分的展开图。
[0020] 图12是根据本发明的实施例的可具有多于一个核心、可具有集成存储器控制器 以及可具有集成图形的处理器的方框图。
[0021] 图13示出根据本发明的一个实施例的系统的方框图。
[0022] 图14示出根据本发明的实施例的第一更具体的示例性系统的方框图。
[0023]图15示出根据本发明的实施例的第二更具体的示例性系统的方框图。
[0024] 图16示出根据本发明的实施例的SoC的方框图。
[0025]图17是根据本发明的实施例的对照将源指令集中的二进制指令转换成目标指令 集中的二进制指令的软件指令转换器的使用的方框图。
【具体实施方式】
[0026] 在下面的描述中,阐述了很多特定的细节(例如响应于指令而执行的特定操作、 特定数量的寄存器、特定尺寸的寄存器、特定尺寸的高速缓存线、特定的处理器配置、特定 的微架构细节、特定序列的操作等)。然而,实施例可在没有这些特定细节的情况下被实施。 在其它实例中,没有详细示出公知的电路、结构和技术以避免使描述难理解。
[0027] 常规存储器访问指令在存储器访问中常常只涉及单个寄存器。在存储器和单个寄 存器之间交换的数据的数量仅仅是单个寄存器的宽度(例如在64位寄存器的情况下的64 位)。然而,通常在存储器中的数据被组织为较宽的"线"。存储器的这些线表示在存储器和 处理器(例如处理器的一个或多个高速缓存)之间传输或交换的数据的数量。例如,即使 只有数据的64位可实际上被传输到寄存器文件或从寄存器文件传输,通常具有数据的那 64位的存储器的更宽的整线可在存储器和处理器的高速缓存之间传输。存储器的线可存储 在高速缓存内的高速缓存线中。很多处理器通常使用存储器的512位宽线和对应的512位 宽高速缓存线。64位数据到单个目的地寄存器内的装入可将具有64位数据的存储器的整 个512位线装入或取回到处理器的高速缓存的512位高速缓存线内且只将64位数据装入 单个目的地寄存器内。只有数据的64位将会实际上被从高速缓存传输到寄存器文件。
[0028] 这样的常规"单个寄存器"存储器访问指令的一个潜在的缺点是,在高速缓存和寄 存器之间的所利用的带宽可倾向于相对低,特别是在利用相对窄的寄存器来存储紧缩数据 的处理器中。在一些情况下,在存储器和/或高速缓存线的相同线内的其它数据也可能对 处理而言是被需要的,但常规上不被指令带到寄存器内。例如,对于在比处理器的寄存器更 宽的存储器中的宽紧缩数据操作数而言情况可能就是这样。在一些情况下,将存储器的至 少一半线或在其它情况下存储器的整线装入处理器的寄存器内可能是合乎需要的。将存储 器的整个512位线装入八个64位寄存器内的一种可能的方式将是使用八个单独的单64位 寄存器从存储器装入指令。例如,指示存储器中512位线的第一 64位数据的第一单64位 寄存器从存储器装入指令可将所指示的第一 64位部分装入和存储到第一所指示的寄存器 内。存储器的整个512位线可从存储器被取回到处理器内并存储在512位高速缓存线中。 指示存储器中512位线的第二64位数据的第二单64位寄存器从存储器装入指令可从已经 装入的512位高速缓存线装入所指示的第二64位部分并将第二64位数据存储在第二所指 示的寄存器中。类似地,第三到第八单64位寄存器从存储器装入指令也可使用来自已经装 入高速缓存中的高速缓存线的数据。然而,这样的方法的可能的缺点是执行多个指令的需 要,这往往增加代码大小和处理时间,并可涉及多个高速缓存访问。
[0029] 在本文公开了多寄存器存储器访问指令、执行指令的处理器、当处理或执行指令 时由处理器执行的方法、以及合并一个或多个处理器以处理或执行指令的系统。
[0030]图1是计算机系统100的实施例的方框图。在各种实施例中,计算机系统可代表台 式计算机、膝上型计算机、笔记本计算机、平板计算机、上网本计算机、智能电话、个人数字 助理、蜂窝电话、服务器、网络设备(例如路由器或开关)、移动互联网设备(MID)、媒体播放 器、智能电视机、机顶盒、视频游戏控制器或具有至少一个处理器的其它类型的电子设备。
[0031] 计算机系统包括处理器102和存储器120。存储器可包括相同或不同类型的一 个或多个存储器设备。适合于实施例的一种常见类型的存储器是动态随机存取存储器 (DRAM),虽然也可使用其它类型的存储器(例如闪存)。处理器和存储器通过互连机构124 彼此耦合。在本领域中已知的用于耦合处理器与存储器的任何常规互连机构是适当的。这 样的机构的示例包括但不限于互连、总线、集线器、存储器控制器、芯片组、芯片组部件等及 其组合。
[0032] 处理器102代表可操作来处理指令的指令处理装置。在一些实施例中,处理器可 以是通用处理器(例如在台式计算机、膝上型计算机和类似计算机中使用的类型的通用微 处理器)。可选地,处理器可以是专用处理器。适当的专用处理器的示例包括但不限于网 络处理器、通信处理器、加密处理器、图形处理器、协处理器、嵌入式处理器、数字信号处理 器(DSP)和控制器(例如微处理器),仅举几个示例。处理器可以是各种复杂指令集计算 (CISC)处理器、各种精简指令集计算(RISC)处理器、各种超长指令字(VLIW)处理器、其各 种混合或完全其它类型的处理器中的任一个。
[0033] 处理器102可接收多寄存器存储器访问指令104。在一些实施例中,多寄存器存 储器访问指令可代表多寄存器从存储器装入指令。在其它实施例中,多寄存器存储器访问 指令可代表多寄存器存储到存储器指令。多寄存器存储器访问指令可代表机器代码指令、 汇编语言指令、宏指令、或处理器的指令集的控制信号。在一些实施例中,多寄存器存储器 访问指令可明确地规定(例如通过一组位或一个或多个字段)或以另外方式指示(例如隐 含地指示)在存储器120中的存储器单元118,并可明确地规定或以另外方式指示寄存器 112(例如由一组N位寄存器110实现的寄存器)。
[0034] 处理器包括指令解码单元106。指令解码单元也可被称为解码单元、解码器或解 码逻辑。解码单元可接收并解码相对较高级指令(例如机器代码指令、汇编语言指令、宏指 令),并输出反映、代表较高级指令和/或从较高级指令得到的一个或多个相对较低级指令 或控制信号(例如微指令、微操作、微代码输入点)。一个或多个较低级指令或控制信号可 通过一个或多个较低级(例如电路级或硬件级)操作来实现较高级指令。可使用各种不同 的机制(包括但不限于微码只读存储器(R0M)、查找表、硬件实现、可编程逻辑阵列(PLA)和 用于实现本领域中已知的解码单元的其它机制)来实现解码单元。
[0035] 在其它实施例中,可使用仿真器、翻译器、变形器、解释程序或其它指令转换逻辑。 各种不同类型的指令转换逻辑在本领域中是已知的,并可在软件、硬件、固件或其组合中实 现。指令转换逻辑可将指令仿真、翻译、变形、解释或转换成一个或多个对应的所得到的指 令或控制信号。在一些实施例中,可使用指令转换逻辑和解码单元。例如,指令转换逻辑可 将指令转换成一个或多个中间指令,且解码单元可将一个或多个中间指令解码成由处理器 的集成电路可执行的一个或多个较低级指令或控制信号。指令转换逻辑可位于处理器外部 (例如在单独管芯上或在存储器中)、在处理器上或组合。
[0036] 再次参考图1,存储器访问单元108与解码单元106耦合。存储器访问单元可接 收代表多寄存器存储器访问指令104和/或从多寄存器存储器访问指令104得到的一个或 多个解码或转换的指令或控制信号。存储器访问单元也通过互连机构124与存储器120耦 合。存储器访问单元可实现常常在处理器的存储器子系统中找到的一个或多个部件以访问 存储器或与存储器交互。这样的部件的示例包括但不限于存储器访问逻辑、总线接口单元、 高速缓存的一个或多个级、一个或多个翻译旁视缓冲器(TLS)、虚拟地址转换逻辑等。如所 示,存储器访问单元可具有至少一个高速缓存109。
[0037] 处理器102还包括一组N位寄存器110。每一个寄存器可代表可操作来存储数据 (例如N位数据)的管芯上存储单元。在一些实施例中,N位寄存器可代表可操作来存储 N位紧缩数据、矢量数据、或单指令多数据(SHffi)数据的紧缩数据寄存器,虽然这不是需要 的。在各种实施例中,N位寄存器可以是64位寄存器、128位寄存器或256位寄存器。可选 地,N位寄存器可具有其它尺寸(例如32位寄存器、80位寄存器等)。在一些实施例中,这 组N位寄存器可包括、实现或包含由多寄存器存储器访问指令指示的寄存器112。寄存器对 软件和/或编程员可以是可见的,和/或可由指令集的指令规定以识别操作数。寄存器可 以在不同的微架构中使用公知的技术来实现,且不限于任何特定类型的电路。适当类型的 寄存器的示例包括但不限于专用物理寄存器、使用寄存器重命名的动态分配物理寄存器和 其组合。
[0038] 如前面提到的,在一些实施例中,多寄存器存储器访问指令104可明确地指定(例 如通过一组位或一个或多个字段)或指示(例如隐含地指示)寄存器112。在一些实施例 中,这组N位寄存器可包括、实现或包含由多寄存器存储器访问指令指示的寄存器112。而 且在一些实施例中,多寄存器存储器访问指令可明确地指定或指示在存储器中的存储器单 元118。在一些实施例中,存储器中的数据可被组织为存储器中的线。图示示出对应于所 指示的存储器单元118 (例如包括在所指示的存储器单元处的数据)的存储器116的MxN 位线。存储器的MxN位线具有数据的整数Μ数量的N位宽部分。如所示,存储器的MxN位 线可以具有第一N位数据114-1到第ΜN位数据114-M。在一些实施例中,MxN位线是至少 512位。在一个实施例中,整数N可以是128位,而整数Μ可以是四。在另一实施例中,整数 Ν可以是256位,而整数Μ可以是二。在又一实施例中,整数Ν可以是64位,而整数Μ可以 是八。在其它实施例中,MxN位线宽度可具有其它宽度(例如256位、至少512位、1024位 等)。N位数据元素的数量Μ通常等于存储器的线的宽度除以N位数据元素的宽度。在一 些实施例中,MxN位线可具有等于处理器的高速缓存线的宽度。
[0039] 在一些实施例中,存储器访问单元108可响应于多寄存器存储器访问指令104和/ 或作为多寄存器存储器访问指令104的结果(例如响应于代表多寄存器存储器访问指令和 /或
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1