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

用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令和逻辑制造技术

技术编号:10310898 阅读:159 留言:0更新日期:2014-08-13 14:06
指令和逻辑提供掩码寄存器与通用寄存器或存储器之间的转换。在一些实施例中,响应于指定目的地操作数、与多个掩码数据字段相对应的掩码长度、以及源操作数的指令,从源操作数中的数据字段读取与指定掩码长度相对应的多个值并将其存储到由该指令指定的目的地操作数中的相应数据字段中,其中源或目的地操作数中的一个是掩码寄存器。可将指示被掩蔽向量元素的值存储到目的地操作数中除了与指定掩码长度相对应的多个数据字段之外的任何数据字段中。对于一些实施例,源或目的地操作数中的另一个可以是通用寄存器或存储器位置。

【技术实现步骤摘要】
【国外来华专利技术】用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令和逻辑
本公开涉及处理逻辑、微处理器以及相关的指令集体系结构的领域,该指令集体系结构在被处理器或其他处理逻辑所执行时运行逻辑、数学或其他功能性操作。具体而言,本公开涉及用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令和逻辑。
技术介绍
目前的诸多处理器通常包括用于提供计算密集型操作但提供高度数据并行性的指令,这些指令可通过使用多种数据存储设备的高效实现来使用,这些数据存储设备诸如:单指令多数据(SIMD)向量寄存器。过去的一些向量处理器曾使用两种类型的特殊控制寄存器:掩码寄存器,用于选择性地禁用或掩蔽针对向量寄存器中的特定向量元素的操作;以及向量长度寄存器,用于指示存储在向量寄存器中的向量元素的数量。还提供了用于根据向量比较的结果来设置掩码寄存器的指令。由于这些受限制的掩蔽操作方法典型地采用流水线化的向量比较的执行,所以可能尚未充分实现利用掩码寄存器的潜在性能优势。此外,一些实现方式利用对掩码寄存器的流水线化测试来选择性地禁用或掩蔽针对特定向量元素的操作,并且在一些实现方式中,仅仅被掩蔽的操作的结果的写入被禁用,并且被掩蔽的操作仍在流水线中执行,因此减弱了利用掩码寄存器的潜在性能优势。这样的实现方式会限制例如来自宽或大宽度向量体系结构的原本预期的性能优势。到目前为止,尚未充分探索针对这样的性能受限问题和瓶颈的潜在解决方案。附图说明在附图的各图中通过示例而非限制地示出本专利技术。图1A是执行用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令的系统的一个实施例的框图。图1B是执行用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令的系统的另一个实施例的框图。图1C是执行用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令的系统的另一个实施例的框图。图2是执行用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令的处理器的一个实施例的框图。图3A示出根据一个实施例的打包数据类型。图3B示出根据一个实施例的打包数据类型。图3C示出根据一个实施例的打包数据类型。图3D示出根据一个实施例的用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令编码。图3E示出根据另一个实施例的用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令编码。图3F示出根据另一个实施例的用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令编码。图3G示出根据另一个实施例的用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令编码。图3H示出根据另一个实施例的用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令编码。图4A示出用于执行提供掩码寄存器与通用寄存器或存储器之间的转换的指令的处理器微体系结构的一个实施例的要素。图4B示出用于执行提供掩码寄存器与通用寄存器或存储器之间的转换的指令的处理器微体系结构的另一个实施例的要素。图5是用于执行提供掩码寄存器与通用寄存器或存储器之间的转换的指令的处理器的一个实施例的框图。图6是用于执行提供掩码寄存器与通用寄存器或存储器之间的转换的指令的计算机系统的一个实施例的框图。图7是用于执行提供掩码寄存器与通用寄存器或存储器之间的转换的指令的计算机系统的另一个实施例的框图。图8是用于执行提供掩码寄存器与通用寄存器或存储器之间的转换的指令的计算机系统的另一个实施例的框图。图9是用于执行提供掩码寄存器与通用寄存器或存储器之间的转换的指令的芯片上系统的一个实施例的框图。图10是用于执行提供掩码寄存器与通用寄存器或存储器之间的转换的指令的处理器的实施例的框图。图11是提供掩码寄存器与通用寄存器或存储器之间的转换的IP核开发系统的一个实施例的框图。图12是提供掩码寄存器与通用寄存器或存储器之间的转换的体系结构仿真系统的一个实施例。图13示出用于转换提供掩码寄存器与通用寄存器或存储器之间的转换的指令的系统的一个实施例。图14示出用于提供掩码寄存器与通用寄存器或存储器之间的转换的过程的一个实施例的流程图。图15示出用于提供从掩码寄存器到通用寄存器或存储器目的地的转换的过程的一个实施例的流程图。图16示出用于提供从通用寄存器或存储器源到掩码寄存器的转换的过程的一个实施例的流程图。具体实施方式以下描述公开了用于提供位于处理器、计算机系统或其他处理装置之内或与它们相关联的掩码寄存器与通用寄存器或存储器之间的转换的指令和处理逻辑。指令和逻辑提供掩码寄存器与通用寄存器或存储器之间的转换。在一些实施例中,响应于指定目的地操作数、与多个掩码数据字段相对应的掩码长度、以及源操作数的指令,从与指定的掩码长度相对应的源操作数中的数据字段读取值,并将这些值存储至由该指令指定的目的地操作数中的相应数据字段,其中源或目的地操作数中的一个是掩码寄存器。除了与指定掩码长度相对应的多个数据字段之外,也可将指示被掩蔽的向量元素的值存储至目的地操作数中的任何数据字段。对于一些实施例,源或目的地操作数中的另一个可以是通用寄存器或存储器位置。对于一些实施例中,源或目的地操作数中的另一个也可以是另一掩码寄存器。因此,可利用用于对通用寄存器执行操作的完整的指令集来构造、修改和操作掩码。此外,在指令中指定与多个掩码数据字段相对应的掩码长度,并且除了与指定向量长度相对应的那些数据字段之外还将指示被掩蔽的向量元素的值存储至任何数据字段,这样提供了进一步的如下益处:消除了用于指示存储在向量寄存器中的向量元素的数量的向量长度寄存器的需要。在以下描述中,陈述了诸如处理逻辑、处理器类型、微体系结构状况、事件、启用机制等多种特定细节,以提供对本专利技术实施例的更透彻理解。然而,本领域技术人员应当领会,没有这些具体细节也可实践本专利技术。此外,没有详细示出一些公知的结构、电路等等,以避免不必要地模糊本专利技术的实施例。虽然下述的诸个实施例参照处理器来描述,但其他实施例也适用于其他类型的集成电路和逻辑设备。本专利技术的实施例的类似技术和教导可应用于其它类型的电路或半导体器件,这些其它类型的电路或半导体器件也可受益于更高的流水线吞吐量和提高的性能。本专利技术的诸个实施例的教导适用于执行数据操纵的任何处理器或机器。然而,本专利技术不限于执行512位、256位、128位、64位、32位、或16位数据运算的处理器或机器,并可适用于执行数据操纵或管理的任何处理器和机器。此外,下述描述提供了示例,并且附图出于示意性目的示出了多个示例。然而,这些示例不应该被理解为具有限制性目的,因为它们仅仅旨在提供本专利技术的诸个实施例的示例,而并非对本专利技术的实施例的所有可能实现方式进行穷举。虽然下述的示例描述了在执行单元和逻辑电路情况下的指令处理和分配,但本专利技术的其他实施例也可通过存储在机器可读有形介质上的数据或指令来完成,这些数据或指令在被机器执行时使得机器执行与本专利技术至少一个实施例相一致的功能。在一个实施例中,与本专利技术的实施例相关联的功能被具体化在机器可执行指令中。这些指令可用来使通过这些指令编程的通用处理器或专用处理器执行本专利技术的步骤。本专利技术的诸个实施例也可以作为计算机程序产品或软件来提供,该计算机程序产品或软件可包括其上存储有指令的机器或计算机可读介质,这些指令可被用来对计算机(或其他电子设备)进行编程来执行根据本专利技术的实施例的一个或多个操作。另本文档来自技高网...
用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令和逻辑

【技术保护点】
一种处理器,包括:掩码寄存器,包括第一多个数据字段,所述第一多个数据字段用于存储指示被掩蔽的向量元素的值和指示未被掩蔽的向量元素的值;解码级,用于解码第一指令,所述第一指令指定目的地操作数、与所述第一多个数据字段的部分相对应的掩码长度、以及源操作数;以及执行单元,用于响应于经解码的第一指令:从所述源操作数中的数据字段读取多个值,所述多个值的数量对应于由所述第一指令指定的掩码长度;将所述多个值存储至由所述第一指令指定的目的地操作数中的相应数据字段中;以及将指示被掩蔽的向量元素的值存储至所述目的地操作数中的除了与由所述第一指令指定的掩码长度相对应的所述第一多个数据字段的所述部分之外的任何数据字段中。

【技术特征摘要】
【国外来华专利技术】1.一种处理器,包括:掩码寄存器,包括第一多个数据字段,所述第一多个数据字段用于存储指示被掩蔽的向量元素的值和指示未被掩蔽的向量元素的值;解码级,用于解码第一指令,所述第一指令指定目的地操作数、与所述第一多个数据字段的部分相对应的掩码长度、以及源操作数;以及执行单元,用于响应于经解码的第一指令:从所述源操作数中的数据字段读取多个值,所述多个值的数量对应于由所述第一指令指定的掩码长度;将所述多个值存储至由所述第一指令指定的目的地操作数中的相应数据字段中;以及将指示被掩蔽的向量元素的值存储至所述目的地操作数中的除了与由所述第一指令指定的掩码长度相对应的所述第一多个数据字段的所述部分之外的任何数据字段中。2.如权利要求1所述的处理器,其特征在于,所述指定的目的地操作数是掩码寄存器。3.如权利要求2所述的处理器,其特征在于,所述指定的源操作数是通用寄存器。4.如权利要求2所述的处理器,其特征在于,所述指定的源操作数是存储器位置。5.如权利要求1所述的处理器,其特征在于,所述指定的源操作数是所述掩码寄存器。6.如权利要求5所述的处理器,其特征在于,所述指定的目的地操作数是通用寄存器。7.如权利要求5所述的处理器,其特征在于,所述指定的目的地操作数是存储器位置。8.一种执行指令的方法,包括:从由第一可执行指令指定的源操作数中的第一多个数据字段的一部分中读取多个值,所述第一多个数据字段用于存储指示被掩蔽的向量元素的值和指示未被掩蔽的向量元素的值,所述多个值的数量对应于由所述第一可执行指令指定的掩码长度;将所述多个值存储至由所述第一可执行指令指定的目的地操作数中的相应数据字段中;以及将指示被掩蔽的向量元素的值存储至所述目的地操作数中的除了与由所述第一可执行指令指定的掩码长度相对应的多个数据字段之外的任何数据字段中。9.如权利要求8所述的方法,其特征在于,还包括:将所述多个值存储至掩码寄存器中的与由所述第一可执行指令指定的目的地操作数相对应的相应数据字段中。10.如权利要求9所述的方法,其特征在于,还包括:从通用寄存器中的与由所述第一可执行指令指定的源操作数相对应的数据字段读取所述多个值。11.如权利要求9所述的方法,其特征在于,还包括:从存储器位置中的与由所述第一可执行指令指定的源操作数相对应的数据字段读取所述多个值。12.如权利要求8所述的方法,其特征在于,还包括:从掩码寄存器源操作数中的与由所述第一可执行指令指定的源操作数相对应的数据字段读取所述多个值。13.如权利要求12所述的方法,其特征在于,还包括:将所述多个值存储至通用寄存器中的与由所述第一可执行指令指定的目的地操作数相对应的相应数据字段中。14.如权利要求12所述的方法,其特征在于,还包括:将所述多个值存储至存储器位置中的与由所述第一可执行指令指定的目的地操作数相对应的相应数据字段中。15.一种处理器,包括:掩码寄存器,包括第一多个数据字段,所述第一多个数据字段用于存储指示被掩蔽的向量元素的值和指示未被掩蔽的向量元素的值;通用寄存器;解码级,用于解码第一指令,所述第一指令指定目的地操作数、与所述第一多个数据字段的部分相对应的掩码长度、以及源操作数;以及执行单元,响应于由经解码的所述第一指令指定的目的地操作数是所述通用寄存器,用于:从掩码寄存器源操作数中的数据字段中读取多个值,所述多个值的数量对应于由所述第一指令指定的掩码长度;将所述多个值存储到由所述第一指令指定的通用寄存器目的地操作数中的相应数据字段中;以及将指示被掩蔽的向量元素的值存储到所述通用寄存器目的地操作数中的除了与由所述第一指令指定的掩码长度相对应的多个数据字段之外的任何数据字段中;所述执行单元,响应于由经解码的所述第一指令指定的源操作数是所述通用寄存器,用于:从由所述第一指令指定的通用寄存器源操作数中的数据字段中读取多个值,所述多个值的数量对应于由所述第一指令指定的掩码长度;将所述多个值存储到掩码寄存器目的地操作数中的相应数据字段中;以及将指示被掩蔽的向量元素的值存储到所述掩码寄存器目的地操作数中的除了与由所述第一指令指定的掩码长度相对应的多个数据字段之外的任何数据字段中。16.如权利要求15所述的处理器,其特征在于,所述通用寄存器是32位寄存器。17.如权利要求15所述的处理器,其特征在于,所述通用寄存器是64位寄存器。18.如权利要求15所述的处理器,其特征在于,所述掩码长度对应于由所述第...

【专利技术属性】
技术研发人员:E·乌尔德阿迈德瓦尔J·考博尔R·凡伦天B·L·托尔M·J·查尼
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1