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

利用经掩码的全寄存器访问实现部分寄存器访问的处理器、方法和系统技术方案

技术编号:10487639 阅读:120 留言:0更新日期:2014-10-03 16:27
公开利用经掩码的全寄存器访问实现部分寄存器访问的处理器、方法和系统。一种方法包括接收打包数据指令,该指令指示第一较窄的源打包数据操作数和较窄的目的地操作数。将该指令映射到经掩码的打包数据操作,该经掩码的打包数据操作指示比第一较窄的源操作数宽且包括第一较窄的源操作数的第一较宽的源打包数据操作数,且指示比较窄的目的地操作数宽且包括较窄的目的地操作数的较宽的目的地操作数。生成打包数据操作掩码,其包括用于由经掩码的打包数据操作存储的打包数据结果的每个对应结果数据元素的掩码元素。与由经掩码的操作存储的、本来不会由打包数据指令存储的结果数据元素对应的所有掩码元素将被掩码掉。利用打包数据操作掩码执行经掩码的操作。将打包数据结果存储在较宽的目的地操作数中。

【技术实现步骤摘要】
利用经掩码的全寄存器访问实现部分寄存器访问的处理器、方法和系统
本文所述的各实施例一般涉及处理器。特别地,本文所述的各实施例一般涉及访问处理器中的寄存器。
技术介绍
许多处理器具有单指令多数据(SMD)架构。在SMD架构中,打包数据指令、向量指令或者SMD指令可同时或并行地对多个数据元素或者多对数据元素进行操作。处理器可具有并行执行硬件,该并行执行硬件响应于打包数据指令来同时或并行地执行多个操作。 多个数据元素可在一个寄存器或存储器位置内被打包为打包数据。在打包数据中,寄存器或者其他存储位置的位可逻辑地分成数据元素序列。例如,128位宽的打包数据寄存器可具有两个64位宽的数据元素、四个32位数据元素、八个16位数据元素等。 在一些处理器架构中,多年来指令所使用的打包数据操作数的宽度已经增加。这种增加的打包数据宽度一般使得能够并发或并行处理更多的数据元素,这有助于改进性能。即使存在利用较宽的打包数据操作数的指令,但一般仍期望支持利用较窄打包数据操作数的旧指令,以例如提供向后兼容性。此外,通常用于存储较窄打包数据操作数的较窄寄存器可重叠(aliase)在用于存储较宽或扩展打包数据操作数的较宽寄存器上。 【附图说明】 通过参考用来说明本专利技术的实施例的以下描述和附图,可最好地理解本专利技术。在附图中: 图1是处理器的实施例的框图。 图2是一组合适的打包数据寄存器的第一实施例的框图。 图3A是在一些处理器中现有的一组寄存器的框图。 图3B是一组合适的打包数据寄存器的第二实施例的框图。 图4是指令处理装置的实施例的框图。 图5是在处理器中的方法的实施例的流程框图。 图6是示出部分寄存器访问操作的框图,可响应于部分寄存器访问指令在重叠在较宽操作数上的较窄操作数上执行该部分寄存器访问操作。 图7是可响应于指示较窄操作数的部分寄存器访问打包数据指令在较宽操作数上执行的经掩码的全寄存器访问打包数据操作的示例实施例的框图。 图8是示出部分寄存器访问操作的框图,可响应于部分寄存器访问指令,在重叠在较宽操作数上的较窄操作数上执行该部分寄存器访问操作。 图9是可响应于指示较窄操作数的部分寄存器访问打包数据指令在较宽操作数上执行的经掩码的全寄存器访问打包数据操作的示例实施例的框图。 图10是示出部分寄存器访问操作的框图,可响应于部分寄存器访问指令,在重叠在较宽操作数上的较窄操作数的非对应数据元素上执行该部分寄存器访问操作。 图11是经掩码的全寄存器访问打包数据操作的示例实施例的框图,可在较宽操作数的对应数据元素上执行该经掩码的全寄存器访问打包数据操作,可响应于指示较窄操作数的非对应数据元素上的操作的部分寄存器访问打包数据指令执行该经掩码的全寄存器访问打包数据操作。 图12是示出打包数据操作掩码位的数目依赖于打包数据宽度和打包数据元素宽度的表格。 图13是一组合适的打包数据操作掩码寄存器的示例实施例的框图。 图14是示出用作打包数据操作掩码和/或用于进行掩码的位数可依赖于打包数据宽度和数据元素宽度的示图。 图15A是示出根据本专利技术实施例的示例性有序流水线和示例性的寄存器重命名的无序发布/执行流水线的框图。 图15B是示出根据本专利技术实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。 图16A是根据本专利技术实施例的单处理器核连同其到管芯上互连网络的连接以及其2级(L2)高速缓存的本地子集的框图。 图16B是根据本专利技术实施例的图16A中的处理器核的一部分的展开图。 图17是根据本专利技术实施例可具有一个以上的核、可具有集成存储器控制器以及可具有集成图形器件的处理器的框图。 图18所示为根据本专利技术的一个实施例的系统的框图。 图19所示为根据本专利技术的一实施例的第一更具体示例性系统的框图。 图20所示为根据本专利技术的一实施例的第二更具体示例性系统的框图。 图21所示为根据本专利技术的一实施例的SoC的框图。 图22是根据本专利技术实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。 【具体实施方式】 本文所公开的是部分寄存器访问方法、处理器和系统。在以下描述中,阐述了大量具体细节(例如,专用存储器、指令、掩码、用于执行部分寄存器访问的方法、逻辑实现、处理器架构、微架构细节、操作顺序、逻辑划分/集成细节、系统组件的类型和相互关系等)。然而,应当理解,本专利技术的各实施例可以在不具有这些具体细节的情况下得到实施。在其他实例中,公知的电路、结构和技术未被详细示出以免混淆对本描述的理解。 图1是处理器100的实施例的框图。在一些实施例中,处理器可以是通用处理器(例如,在各种类型的计算机系统中用作中央处理单元的类型的通用微处理器)。替换地,处理器可以是专用处理器。合适的专用处理器的示例包括但不限于,网络处理器、通信处理器、加密处理器、图形处理器、协处理器、嵌入式处理器、数字信号处理器(DSP)以及控制器(例如,微控制器),仅列举数例。该处理器可以是各种复杂指令集计算(CISC)处理器、各种精简指令集计算(RISC)处理器、各种超长指令字(VLIW)处理器、其各种混合、或完全其他类型的处理器中的任何处理器。 处理器具有指令集102。指令集的指令表示被提供给处理器以供执行的宏指令、汇编语言指令或机器级指令。指令集包括一个或多个部分寄存器访问打包数据指令103。在一些实施例中,部分寄存器访问打包数据指令可表示访问一个或多个源和/或目的地操作数的指令,这些源和/或目的地操作数仅表示寄存器的一部分而不是寄存器的全部宽度。作为一个示例,部分寄存器访问打包数据指令可表示访问存储在512位寄存器中的128位源和目的地操作数的指令。指令集还任选地包括一个或多个经掩码打包数据指令104。任选地,经掩码打包数据指令包括一个或多个经掩码全寄存器访问指令104B。在一些实施例中,经掩码的全寄存器访问指令可表示访问表示或占据寄存器的全部宽度的一个或多个源和/或目的地操作数的指令。作为一个示例,经掩码的全寄存器访问指令可表示访问存储在512位寄存器中的512位源和目的地操作数的指令。 处理器包括架构级可见的寄存器(例如,架构寄存器文件)105。架构寄存器此处也可以被简称为寄存器。除非另外指定或显而易见,短语架构寄存器、寄存器文件以及寄存器在本文中用于表示对软件和/或编程器和/或由宏指令指定来标识操作数的寄存器而言可见的寄存器。这些寄存器与给定微架构中的其他非架构的或非架构级可见的寄存器(例如,指令所使用的临时寄存器,重新排序缓冲器,引退寄存器等等)相反。寄存器一般表示管芯上处理器存储器位置。所示的寄存器包括标量通用寄存器106、打包数据寄存器107和任选的打包数据操作掩码寄存器108。 处理器还包括执行逻辑109 (例如,一个或多个执行单元)。执行逻辑可操作用于执行或处理指令集的指令。例如,执行逻辑可操作用于执行或处理部分寄存器访问打包数据指令103和经掩码的全寄存器访问打包数据指令104B。 图2是一组合适的打包数据寄存器207的第一实施例的框图。所示的打包数据寄存器包括三十二个512位宽的打包或向量寄本文档来自技高网...
利用经掩码的全寄存器访问实现部分寄存器访问的处理器、方法和系统

【技术保护点】
一种处理器,包括:解码单元,用于将打包数据指令映射到经掩码的打包数据操作,所述打包数据指令至少指示第一较窄的源打包数据操作数和较窄的目的地操作数,所述经掩码的打包数据操作至少指示比所述第一较窄的源打包数据操作数宽且包括第一较窄的源打包数据操作数的第一较宽的源打包数据操作数,且指示比所述较窄的目的地操作数宽且包括所述较窄的目的地操作数的较宽的目的地操作数;以及与所述解码单元耦合的执行单元,所述执行单元用于利用打包数据操作掩码执行所述经掩码的打包数据操作,所述打包数据操作掩码包括用于由经掩码的打包数据操作存储的打包数据结果的每个对应结果数据元素的掩码元素,其中与由经掩码的打包数据操作存储的、本来不会由打包数据指令存储的结果数据元素对应的所有掩码元素被掩码掉,所述执行单元用于将打包数据结果存储在较宽的目的地操作数中。

【技术特征摘要】
2013.03.30 US 13/854,0891.一种处理器,包括: 解码单元,用于将打包数据指令映射到经掩码的打包数据操作,所述打包数据指令至少指示第一较窄的源打包数据操作数和较窄的目的地操作数,所述经掩码的打包数据操作至少指示比所述第一较窄的源打包数据操作数宽且包括第一较窄的源打包数据操作数的第一较宽的源打包数据操作数,且指示比所述较窄的目的地操作数宽且包括所述较窄的目的地操作数的较宽的目的地操作数;以及 与所述解码单元耦合的执行单元,所述执行单元用于利用打包数据操作掩码执行所述经掩码的打包数据操作,所述打包数据操作掩码包括用于由经掩码的打包数据操作存储的打包数据结果的每个对应结果数据元素的掩码元素,其中与由经掩码的打包数据操作存储的、本来不会由打包数据指令存储的结果数据元素对应的所有掩码元素被掩码掉,所述执行单元用于将打包数据结果存储在较宽的目的地操作数中。2.如权利要求1所述的处理器,其特征在于,所述执行单元用于写入与较宽的目的地操作数对应的寄存器的整个宽度,其中所述较窄的目的地操作数仅对应于所述寄存器的宽度的一部分。3.如权利要求1所述的处理器,其特征在于,所述执行单元用于存储打包数据结果,其中将由与打包数据指令相关联的操作更新的结果数据元素仅占据在寄存器的最低有效部分和寄存器的最高有效部分之间的寄存器的中间部分。4.如权利要求1所述的处理器,其特征在于,所述解码单元用于接收打包数据指令,所述打包数据指令还指示第二较窄的源打包数据操作数,且其中所述解码单元用于所述打包数据指令映射到经掩码的打包数据操作,所述经掩码的打包数据操作指示比第二较窄的源打包数据操作数宽且 包括第二较窄的源打包数据操作数的第二较宽的源打包数据操作数。5.如权利要求4所述的处理器,其特征在于,所述解码单元用于接收打包数据指令,所述打包数据指令指示第一和第二较窄的源打包数据操作数中的至少一个非对应数据元素对上的操作,所述非对应数据元素不在对应的位位置中,且其中所述处理器还用于执行将所述非对应数据元素对置于对应的位位置中的操作,以便由执行单元在执行经掩码的打包数据操作时对其进行操作。6.如权利要求5所述的处理器,其特征在于,所述处理器用于通过执行移位操作、混洗操作和置换操作之一来执行将所述非对应数据元素对置于对应的位位置中的操作7.如权利要求1所述的处理器,其特征在于,所述打包数据指令不指示打包数据操作掩码。8.如权利要求1所述的处理器,其特征在于,所述打包数据指令指示打包数据操作掩码,所述打包数据操作掩码具有比由所述执行单元用于执行经掩码的打包数据操作的打包数据操作掩码少的掩码元素。9.如权利要求1所述的处理器,其特征在于,所述执行单元用于存储打包数据结果,其中与被掩码掉的掩码元素对应的每个结果数据元素的值不变,且其中与未被掩码的掩码元素对应的每个结果数据元素的值由与打包数据指令相关联的操作更新。10.一种在处理器中的方法,包括: 接收打包数据指令,所述打包数据指令至少指示第一较窄的源打包数据操作数和较窄的目的地操作数;将所述打包数据指令映射到经掩码的打包数据操作,所述经掩码的打包数据操作至少指示比所述第一较窄的源打包数据操作数宽且包括第一较窄的源打包数据操作数的第一较宽的源打包数据操作数,且指示比所述较窄的目的地操作数宽且包括所述较窄的目的地操作数的较宽的目的地操作数; 生成打包数据操作掩码,所述打...

【专利技术属性】
技术研发人员:E·T·格罗科斯基S·Y·索托德B·M·盖
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1