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

利用控制操纵的SIMD可变移位和循环制造技术

技术编号:10390832 阅读:149 留言:0更新日期:2014-09-05 16:19
提供了向量单指令多数据(SIMD)移位和循环指令,所述指令指定:目的地向量寄存器,包括用于存储向量元素的字段;第一向量寄存器;向量元素尺寸;以及第二向量寄存器。复制具有第一元素尺寸的向量数据字段。将复制向量数据字段存储为第一元素尺寸的两倍尺寸的相应数据字段。控制逻辑接收用于执行SIMD移位或循环操作的元素尺寸。通过与向量元素相对应的选择器,从复制的数据字段中选择多个部分;响应于第一元素尺寸,与任何特定向量元素相对应的选择器针对该特定向量元素从复制的数据字段中相似地选择所有部分;而响应于第二元素尺寸,与任何特定向量元素相对应的选择器针对该特定向量元素从复制的数据字段中不同地选择至少两个部分。

【技术实现步骤摘要】
【国外来华专利技术】利用控制操纵的SIMD可变移位和循环
本公开涉及处理逻辑、微处理器以及相关联的指令集架构的领域,该指令集架构在被处理器或其他处理逻辑所执行时运行逻辑、数学或其他功能性操作。具体而言,本公开涉及利用控制操纵来提供单指令多数据(SIMD)可变移位和循环功能的指令和逻辑。
技术介绍
目前的诸多处理器通常包括用于提供计算密集型操作但提供高度数据并行性的指令,这些指令可通过使用多种数据存储设备的高效实现来使用,这些数据存储设备诸如:单指令多数据(SIMD)向量寄存器。过去的一些处理器已经实现用于在所有支持的向量元素尺寸上利用校正电路执行逻辑和算术的SMD移位的指令,该校正电路用于执行零填充(针对左移或逻辑移位)或符号填充(针对算术右移)。然而该方法尚不可应用于SIMD循环。在单个固定宽度的数据上执行快速循环或移位的一种常用技术称为漏斗移位器。在漏斗移位器中,首先复写(或复制)并串接数据。然后从两个串接的副本内选择所期望的循环的输出。如果需要移位而不是循环,则该校正电路技术可用于对经循环的输出进行零填充或符号填充。支持SMD循环遇到的问题涉及使移位器能对各种不同尺寸或宽度的数据起作用。理论上,可修改复制和串接以支持更多尺寸或宽度的数据,但由于这样向移位器增加了一个或多个附加的选择级,所以有可能限制移位器的性能,从而降低原本预期的例如来自宽或大宽度向量架构的性能优势。到目前为止,尚未充分探索针对这样的性能受限问题的潜在解决方案。【附图说明】在附图的各图中通过示例而非限制地示出本专利技术。图1A是执行用于利用控制操纵来提供SIMD可变移位和循环功能的指令的系统的一个实施例的框图。图1B是执行用于利用控制操纵来提供SIMD可变移位和循环功能的指令的系统的另一实施例的框图。图1C是执行用于利用控制操纵来提供SIMD可变移位和循环功能的指令的系统的另一实施例的框图。图2是执行用于利用控制操纵来提供SMD可变移位和循环功能的指令的处理器的一个实施例的框图。图3A示出根据一个实施例的打包数据类型。图3B示出根据一个实施例的打包数据类型。图3C示出根据一个实施例的打包数据类型。图3D示出根据一个实施例的用于提供SIMD可变移位和循环功能的指令编码。图3E示出根据另一实施例的用于提供SIMD可变移位和循环功能的指令编码。图3F示出根据另一实施例的用于提供SIMD可变移位和循环功能的指令编码。图3G示出根据另一实施例的用于提供SIMD可变移位和循环功能的指令编码。图3H示出根据另一实施例的用于提供SMD可变移位和循环功能的指令编码。图4A示出用于执行提供SMD可变移位和循环功能的指令的处理器微架构的一个实施例的要素。图4B示出用于执行提供SMD可变移位和循环功能的指令的处理器微架构的另一实施例的要素。图5是用于执行提供SMD可变移位和循环功能的指令的处理器的一个实施例的框图。图6是用于执行提供SIMD可变移位和循环功能的指令的计算机系统的一个实施例的框图。图7是用于执行提供SIMD可变移位和循环功能的指令的计算机系统的另一实施例的框图。图8是用于执行提供SIMD可变移位和循环功能的指令的计算机系统的另一实施例的框图。图9是用于执行提供SMD可变移位和循环功能的指令的芯片上系统的一个实施例的框图。图10是用于执行提供SMD可变移位和循环功能的指令的处理器的实施例的框图。图11是提供向量混合和置换功能的IP核开发系统的一个实施例的框图。图12示出提供向量混合和置换功能的架构仿真系统的一个实施例。图13示出用于转换提供SIMD可变移位和循环功能的指令的系统的一个实施例。图14A示出利用用于执行提供SMD可变移位和循环功能的指令的装置的一个实施例的示例。图14B示出利用用于执行提供SMD可变移位和循环功能的指令的装置的一个实施例的另一示例。图14C示出利用用于执行提供SMD可变移位和循环功能的指令的装置的一个实施例的另一示例。图14D示出利用用于执行提供SMD可变移位和循环功能的指令的装置的一个实施例的另一示例。图15示出用于提供SMD可变移位和循环功能的过程的一个实施例的流程图。图16示出用于提供SIMD可变移位和循环功能的过程的替代实施例的流程图。【具体实施方式】以下描述公开了用于提供在处理器、计算机系统或其他处理装置之内的或与处理器、计算机系统或其他处理装置相关联的SMD可变移位和循环功能的指令和处理逻辑。指令和逻辑提供SMD可变移位和循环功能。在一些实施例中,SIMD移位和循环指令指定:目的地向量寄存器,包括用于存储向量元素的字段;第一向量寄存器;向量元素尺寸;以及第二向量寄存器。复制具有第一元素尺寸的向量数据字段。将复制的向量数据字段存储为具有第一元素尺寸的两倍尺寸的相应数据字段。控制逻辑接收用于执行SIMD移位或循环操作的元素尺寸指示符。通过与向量元素相对应的选择器,从复制的数据字段中选择多个部分,响应于控制逻辑接收第一元素尺寸指示符,与任何特定向量元素相对应的选择器针对该特定向量元素从复制的数据字段中相似地选择所有部分,而响应于控制逻辑接收第二元素尺寸指示符,与任何特定向量元素相对应的选择器针对该特定向量元素从复制的数据字段中不同地选择至少两个部分。因此,通过与特定向量元素相对应的选择器,利用响应于控制逻辑的控制操纵从复制的数据字段中选择多个部分,而不会不适当地要求与各种不同元素尺寸的向量元素相对应的附加的硬件选择器,以支持用于提供不同元素尺寸的SIMD可变移位和循环功能的指令。在以下描述中,陈述了诸如处理逻辑、处理器类型、微架构条件、事件、启用机制等多种特定细节,以提供对本专利技术实施例的更透彻理解。然而,本领域技术人员应当领会,没有这些具体细节也可实践本专利技术。此外,没有详细示出一些公知的结构、电路等等,以避免不必要地模糊本专利技术的实施例。虽然下述的诸个实施例参照处理器来描述,但其他实施例也适用于其他类型的集成电路和逻辑设备。本专利技术的实施例的类似技术和教导可应用于其它类型的电路或半导体器件,这些其它类型的电路或半导体器件也可受益于更高的流水线吞吐量和提高的性能。本专利技术的诸个实施例的教导适用于执行数据操纵的任何处理器或机器。然而,本专利技术不限于执行512位、256位、128位、64位、32位、或16位数据运算的处理器或机器,并适用于执行数据操作或管理的任何处理器和机器。此外,下述描述提供了示例,并且附图出于示意性目的示出了多个示例。然而,这些示例不应该被理解为具有限制性目的,因为它们仅仅旨在提供本专利技术的诸个实施例的示例,而并非对本专利技术的实施例的所有可能实现方式进行穷举。虽然下述的示例描述了在执行单元和逻辑电路情况下的指令处理和分配,但本专利技术的其他实施例也可通过存储在机器可读有形介质上的数据和/或指令来完成,这些数据和/或指令在被机器执行时使得机器执行与本专利技术至少一个实施例相一致的功能。在一个实施例中,与本专利技术的实施例相关联的功能被具体化在机器可执行指令中。这些指令可用来使通过这些指令编程的通用处理器或专用处理器执行本专利技术的步骤。本专利技术的诸个实施例也可以作为计算机程序产品或软件来提供,该计算机程序产品或软件可包括其上存储有指令的机器或计算机可读介质,这些指令可被用来对计算机(或其他电子设备)进行编程来执行根据本专利技术本文档来自技高网...
利用控制操纵的SIMD可变移位和循环

【技术保护点】
一种机器实现的方法,包括:复制具有第一元素尺寸的多个向量数据字段;将所述复制向量数据字段存储作为具有所述第一元素尺寸的两倍尺寸的相应的复制的数据字段;在控制逻辑中接收用于在向量元素上执行SIMD循环的元素尺寸;以及通过与特定向量元素相对应的多个选择器从所述复制的数据字段中选择多个部分,响应于所述控制逻辑接收用于在向量元素上执行SIMD循环的第一元素尺寸,与任何特定向量元素相对应的所述多个选择器针对所述特定向量元素从所述复制的数据字段中相似地选择所有部分,而响应于所述控制逻辑接收用于在向量元素上执行SIMD循环的第二元素尺寸,与任何特定向量元素相对应的所述多个选择器针对所述特定向量元素从所述复制的数据字段中不同地选择至少两个部分。

【技术特征摘要】
【国外来华专利技术】1.一种机器实现的方法,包括: 复制具有第一元素尺寸的多个向量数据字段; 将所述复制向量数据字段存储作为具有所述第一元素尺寸的两倍尺寸的相应的复制的数据字段; 在控制逻辑中接收用于在向量元素上执行SMD循环的元素尺寸;以及 通过与特定向量元素相对应的多个选择器从所述复制的数据字段中选择多个部分,响应于所述控制逻辑接收用于在向量元素上执行SMD循环的第一元素尺寸,与任何特定向量元素相对应的所述多个选择器针对所述特定向量元素从所述复制的数据字段中相似地选择所有部分,而响应于所述控制逻辑接收用于在向量元素上执行SMD循环的第二元素尺寸,与任何特定向量元素相对应的所述多个选择器针对所述特定向量元素从所述复制的数据字段中不同地选择至少两个部分。2.如权利要求1所述的机器实现的方法,其特征在于,相似地选择所述所有部分的方式是取决于用于具有所述第一元素尺寸的特定向量元素的循环的相应的移位计数。3.如权利要求2所述的机器实现的方法,其特征在于,所述第一元素尺寸是64位。4.如权利要求2所述的机器实现的方法,其特征在于,响应于所述控制逻辑接收所述第一元素尺寸而针对特定向量元素从复制的数据字段中相似地选择所有部分导致至少两个中间部分成为复制物。5.如权利要求 4所述的机器实现的方法,其特征在于,响应于所述控制逻辑接收所述第一元素尺寸而针对特定向量元素从复制的数据字段中相似地选择所有部分导致至少两个结尾部分成为复制物。6.如权利要求1所述的机器实现的方法,其特征在于,不同地选择所述至少两个部分的方式是取决于用于具有所述第二元素尺寸的特定向量元素的循环的相应的移位计数。7.如权利要求6所述的机器实现的方法,其特征在于,所述第二元素尺寸是32位。8.如权利要求6所述的机器实现的方法,其特征在于,响应于所述控制逻辑接收所述第二元素尺寸而针对特定向量元素从复制的数据字段中不同地选择至少两个部分导致不同地选择的至少两个部分成为复制物。9.一种处理器,包括: 一个或多个向量寄存器,各自包括用于存储向量元素的值的多个数据字段; 解码级,用于解码单指令多数据(SIMD)循环指令,所述单指令多数据(SIMD)循环指令指定:所述一个或多个向量寄存器的目的地操作数、所述一个或多个向量寄存器的第一操作数、向量元素尺寸、所述一个或多个向量寄存器的第二操作数;以及 SMD移位器,包括: 复制级,用于响应于解码所述SIMD循环指令来复制来自所述第二操作数的具有第一元素尺寸的数据字段,并将所述复制数据字段存储作为具有所述第一元素尺寸的两倍尺寸的相应的复制的数据字段; 控制逻辑,用于接收所述向量元素尺寸;以及 选择器级,被划分成与特定向量元素相对应的多个选择器并与所述复制级耦合,响应于所述控制逻辑接收用于所述向量元素尺寸的第一元素尺寸,与任何特定向量元素相对应的所述多个选择器针对所述特定向量元素从所述复制的数据字段中相似地选择所有部分,而响应于所述控制逻辑接收用于所述向量元素尺寸的第二元素尺寸,与任何特定向量元素相对应的所述多个选择器针对所述特定向量元素从所述复制的数据字段中不同地选择至少两个部分。10.如权利要求9所述的处理器,其特征在于,相似地选择所述所有部分的方式是取决于来自所述第一操作数的用于具有所述第一元素尺寸的特定向量元素的循环的相应的移位计数。11.如权利要求9所述的处理器,其特征在于,不同地选择所述至少两个部分的方式是取决于来自所述第一操作数的用于具有所述第二元素尺寸的特定向量元素的循环的相应的移位计数。12.—种单指令多数据(SMD)移位器,包括: 复制级,用于复制具有第一元素尺寸的向量数据字段,并存储复制向量数据字段作为具有所述第一元素尺寸的两倍尺寸的相应的复制的数据字段; 控制逻辑;以及 选择器级,被划分成与特定向量元素相对应的多个选择器并与所述复制级耦合,当在具有所述第一元素尺寸的向量元素上执行SMD循环时,与任何特定向量元素相对应的所述多个选择器响应于所述控制逻辑针对所述特定向量元素从所述复制的数据字段中相似地选择所有部分,而当在具有所述第二元素尺寸的向量元素上执行SMD循环时,与任何特定向量元素相对应的所述多个选择器响应于所述控制逻辑针对所述特定向量元素从所述复制的数据字段中不同地选择至少两个部分。13.如权利要求12所述的SIMD移位器,其特征在于,相似地选择所述所有部分的方式是取决于用于具有所述第一元素尺寸的特定向量元素的循环的相应的移位计数。14.如权利要求12所述的SIMD移位器,其特征在于,不同地选择所述至少两个部分的方式是取决于用于具有所述第二元素尺寸的特定向量元素...

【专利技术属性】
技术研发人员:A·鲁本斯坦T·艾维拉姆
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1