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

用于提供矢量地址冲突检测功能的方法、装置、指令和逻辑制造方法及图纸

技术编号:12060321 阅读:189 留言:0更新日期:2015-09-17 10:41
指令和逻辑提供SIMD地址冲突检测功能。一些实施例包括具有寄存器的处理器,所述寄存器具有可变的多个数据字段,每一个数据字段将数据元素的偏移存储在存储器中。目的寄存器具有相对应的数据字段,这些数据字段中的每一个存储可变的第二多个位,以存储具有针对每一个偏移的掩码位的冲突掩码。响应于对矢量冲突指令进行解码,执行单元比较每一个数据字段与每个较不重要的数据字段中的偏移,以确定它们是否保存着匹配的偏移,以及在目的寄存器中的相对应的冲突掩码中,设置与具有匹配偏移的较不重要的数据字段相对应的任何掩码位。矢量地址冲突检测可以与可变尺寸的元素一起使用,并生成冲突掩码以解决在聚集-修改-分散SIMD操作中的相关性。

【技术实现步骤摘要】
【国外来华专利技术】用于提供矢量地址冲突检测功能的方法、装置、指令和逻辑相关申请的交叉引用本申请涉及:2009年10月1日提交的标题为“VectorInstructionstoEnableEfficientSynchronizationandParallelReductionOperations”的申请序列号NO.12/079,774;2010年12月21日提交的标题为“MechanismforConfilictDetectionUsingSIMD”的申请序列号NO.12/974,157;以及2010年12月22日提交的标题为“VectorConfictInstructions”的申请序列号NO.12/976,616。
本公开涉及处理逻辑、微处理器和相关联的指令集架构的领域,所述相关联的指令集架构在被处理器或其它处理逻辑执行时,执行逻辑、数学或其它功能操作。特别是,本公开涉及提供SIMD矢量地址冲突检测功能的指令和逻辑。
技术介绍
现代处理器常常包括用于提供操作的指令,所述操作是计算密集的,但给予可以通过使用各种数据存储设备(例如,单指令多数据(SIMD)矢量寄存器)的有效实现来利用的高级数据并行性。在SIMD执行中,单个指令在多个数据元素上并发或同时操作。这一般通过扩展各种资源(例如,寄存器和算术逻辑单元(ALU))的宽度,允许它们分别在多个数据元素上保存或操作来实现。中央处理单元(CPU)可以提供这样的并行硬件以支持矢量的SIMD处理。矢量是保存多个连续数据元素的数据结构。尺寸L的矢量寄存器可以包含尺寸M的N个矢量元素,其中N=L/M。例如,64字节矢量寄存器可以被划分成(a)64个矢量元素,每一个元素保存占据1个字节的数据项,(b)32个矢量元素,用于保存每一个占据2个字节(或一个“字”)的数据项,(c)16个矢量元素,用于保存每一个占据4个字节(或一个“双字”)的数据项,或(d)8个矢量元素,用于保存每一个占据8个字节(或一个“四字”)的数据项。多个应用具有大量的数据级并行性并且可能能够受益于SIMD支持。然而,一些应用花费相当大数量的时间在对一组稀疏的位置上的操作。而且,有时连续的操作在相同的稀疏位置上被执行,并且所以这些应用可能只看到来自SIMD、操作的有限益处。为了维持SIMD效率,一些架构不仅允许SIMD算术操作,而且允许SIMD存储器读和写(通过聚集和分散操作)。分散减少在很多应用中是常见操作。例如,分散-添加操作可以用于能够根据索引的分布使第一阵列的多个值减少为(即添加到)第二阵列的选定元素,这常常可以是随机的。但是由于此,可能很难同时有效地处理多个元素(即,在SIMD模式中)。一个关注是确保标量程序顺序在必要时被保留。另一关注是确保当数据分散到存储器中时,所得到的存储器地址的矢量只包括唯一的地址(即,不存在完全相同的地址)。例如,柱状图运算在很多图像处理应用中是常见的操作。柱状图可以用于跟踪图像中的像素的颜色值的分布。然而,对柱状图阵列的更新可能是随机的,这取决于阵列的输入数据。特别是,相邻元素的索引可以指向同一柱状图库。因此,需要冲突检测和解决方案来检测对相同位置的多个相关的更新并确保标量程序顺序被保留。这精确地是以下类型的条件:该条件可以使共同或同时处理多个数据(即,使用SIMD操作)变得非常难。目前,对这样的冲突关注和相关的处理困难的潜在解决方案还没有被充分探究。附图说明本专利技术将作为示例而不是限制在附图的图中示出。图1A是执行提供SIMD地址冲突检测功能的指令的系统的一个实施例的框图。图1B是执行提供SIMD地址冲突检测功能的指令的系统的另一实施例的框图。图1C是执行提供SIMD地址冲突检测功能的指令的系统的另一实施例的框图。图2是执行提供SIMD地址冲突检测功能的指令的处理器的一个实施例的框图。图3A示出了根据一个实施例的紧缩数据类型。图3B示出了根据一个实施例的紧缩数据类型。图3C示出了根据一个实施例的紧缩数据类型。图3D示出了根据一个实施例的编码用于提供SIMD地址冲突检测功能的指令。图3E示出了根据另一实施例的编码用于提供SIMD地址冲突检测功能的指令。图3F示出了根据另一实施例的编码用于提供SIMD地址冲突检测功能的指令。图3G示出了根据另一实施例的编码用于提供SIMD地址冲突检测功能的指令。图3H示出了根据另一实施例的编码用于提供SIMD地址冲突检测功能的指令。图4A示出了用于执行提供SIMD地址冲突检测功能的指令的处理器微架构的一个实施例的元件。图4B示出了执行提供SIMD地址冲突检测功能的指令的处理器微架构的另一实施例的元件。图5是执行提供SIMD地址冲突检测功能的指令的处理器的一个实施例的框图。图6是执行提供SIMD地址冲突检测功能的指令的计算机系统的一个实施例的框图。图7是执行提供SIMD地址冲突检测功能的指令的计算机系统的另一实施例的框图。图8是执行提供SIMD地址冲突检测功能的指令的计算机系统的另一实施例的框图。图9是执行提供SIMD地址冲突检测功能的指令的芯片上系统的一个实施例的框图。图10是执行提供SIMD地址冲突检测功能的指令的处理器的一个实施例的框图。图11是提供SIMD地址冲突检测功能的IP核心开发系统的一个实施例的框图。图12示出了提供SIMD地址冲突检测功能的架构仿真系统的一个实施例。图13示出了用于变换提供SIMD地址冲突检测功能的指令的系统的一个实施例。图14A示出了使用提供SIMD矢量前导零计数功能的指令的示例的一个实施例的流程图,所述SIMD矢量前导零计数功能针对有效矢量地址冲突解决方案生成置换控制是有用的。图14B示出了使用提供SIMD矢量地址冲突检测功能的指令的示例的一个实施例的流程图。图14C示出了使用向SIMD矢量地址冲突解决方案提供矢量种群计数功能的指令的示例的一个实施例的流程图。图14D示出了使用提供有效SIMD矢量地址冲突解决方案的组合指令的示例的可替换实施例的流程图。图15A示出了向SIMD置换控制提供矢量前导零计数功能的过程的一个实施例的流程图。图15B示出了提供SIMD矢量地址冲突检测功能的过程的一个实施例的流程图。图15C示出了向SIMD矢量地址冲突解决方案提供矢量种群计数功能的过程的一个实施例的流程图。图15D示出了提供有效SIMD矢量地址冲突解决方案的组合过程的可替换实施例的流程图。图16示出了用于执行提供SIMD矢量前导零计数功能的指令的装置的实施例,所述SIMD矢量前导零计数功能针对有效矢量地址冲突解决方案生成置换控制是有用的。图17示出了用于执行针对有效矢量地址冲突解决方案提供SIMD矢量地址冲突检测功能的指令的装置的实施例。图18示出了用于执行针对有效矢量地址冲突解决方案提供SIMD矢量种群计数功能的指令的装置的实施例。具体实施方式下面的描述公开了指令和处理逻辑以在处理器、计算机系统或其它处理装置内或与处理器、计算机系统或其它处理装置相关联地提供SIMD地址冲突检测功能。在本文中公开了用于提供SIMD地址冲突检测功能的指令和逻辑。一些实施例包括具有寄存器的处理器,所述寄存器带有可变的多个数据字段,每一个数据字段用于存储针对存储器中的一个数据元素的偏移。目的寄存器具有相对应的数据字段,这些数据字段中本文档来自技高网...
用于提供矢量地址冲突检测功能的方法、装置、指令和逻辑

【技术保护点】
一种处理器,包括:第一寄存器,其包括第一多个数据字段,其中,在所述第一寄存器中的第一多个数据字段中的每一个与针对在存储器中的数据元素的偏移相对应;目的寄存器,其包括与所述第一多个数据字段相对应的第二多个数据字段,其中,在所述目的寄存器中的第二多个数据字段中的每一个的一部分用于存储具有针对所述第一多个数据字段中的每一个的掩码位的位掩码;解码级,其对指定矢量冲突操作和数据字段尺寸的第一指令进行解码;以及一个或多个执行单元,其响应于所解码的第一指令,用于:读取在所述第一寄存器中的数据字段中的每一个的值;对于在所述第一寄存器中的第一多个数据字段中的每一个数据字段,将它的相对应的偏移与所述多个数据字段中的每个较不重要的数据字段进行比较,以确定它们是否保存着匹配的偏移,以及对于与在所述第一寄存器中的数据字段相对应的、在所述目的寄存器中的第二多个数据字段中的每一个数据字段,将与保存着和在所述第一寄存器中的该相对应的数据字段相匹配的偏移的、在所述第一寄存器中的较不重要的数据字段相对应的任何掩码位设置为第一值,并且将在所述目的寄存器中的任何其它位设置为第二值。

【技术特征摘要】
【国外来华专利技术】2012.12.29 US 13/731,0061.一种处理器,包括:第一寄存器,其包括第一多个数据字段,其中,在所述第一寄存器中的第一多个数据字段中的每一个与针对在存储器中的数据元素的偏移相对应;目的寄存器,其包括与所述第一多个数据字段相对应的第二多个数据字段,其中,在所述目的寄存器中的第二多个数据字段中的每一个的一部分用于存储具有针对所述第一多个数据字段中的每一个的掩码位的位掩码;解码级,其对指定矢量冲突操作和数据字段尺寸的第一指令进行解码;以及一个或多个执行单元,其响应于所解码的第一指令,用于:读取在所述第一寄存器中的数据字段中的每一个的值;对于在所述第一寄存器中的第一多个数据字段中的每一个数据字段,将它的相对应的偏移与所述多个数据字段中的每个较不重要的数据字段进行比较,以确定它们是否保存着匹配的偏移,以及对于与在所述第一寄存器中的数据字段相对应的、在所述目的寄存器中的第二多个数据字段中的每一个数据字段,将与保存着和在所述第一寄存器中的该相对应的数据字段相匹配的偏移的、在所述第一寄存器中的较不重要的数据字段相对应的任何掩码位设置为第一值,并且将在所述目的寄存器中的任何其它位设置为第二值。2.如权利要求1所述的处理器,其中,所述第一值是一。3.如权利要求2所述的处理器,其中,所述第二值是零。4.如权利要求1所述的处理器,其中,所述第一指令是矢量冲突指令,用于测试在所述第一寄存器中的第一多个数据字段中的每一个数据字段中的偏移,以确定与更接近所述第一寄存器的最低有效位的所述第一多个数据字段中的所有其它数据字段的相等性。5.如权利要求4所述的处理器,其中,所述第二多个数据字段中的每一个保存32位。6.如权利要求5所述的处理器,其中,存储位掩码的所述第二多个数据字段中的每一个的所述部分包括4位。7.如权利要求5所述的处理器,其中,存储位掩码的所述第二多个数据字段中的每一个的所述部分包括8位。8.如权利要求5所述的处理器,其中,存储位掩码的所述第二多个数据字段中的每一个的所述部分包括16位。9.如权利要求4所述的处理器,其中,所述第二多个数据字段中的每一个保存64位。10.如权利要求9所述的处理器,其中,存储位掩码的所述第二多个数据字段中的每一个的所述部分包括2位。11.如权利要求9所述的处理器,其中,存储位掩码的所述第二多个数据字段中的每一个的所述部分包括4位。12.如权利要求9所述的处理器,其中,存储位掩码的所述第二多个数据字段中的每一个的所述部分包括8位。13.一种用于提供矢量地址冲突检测功能的方法,包括:在第一矢量寄存器的第一多个数据字段的每一个中存储针对存储器中的数据元素的偏移;在处理器中执行用于矢量地址冲突检测的单指令多数据SIMD指令;以及对于在所述第一矢量寄存器中的所述第一多个数据字段中的每一个数据字段,将它的相对应的偏移与所述第一多个数据字段的每个较不重要的数据字段进行比较,以确定它们是否保存着匹配的偏移,以及将冲突掩码存储在第一矢量目的寄存器中的第二多个数据字段中的每一个相对应的数据字段的一部分中,所述冲突掩码指示哪些较不重要的数据字段保存着与所述相对应的数据字段匹配的偏移。14.如权利要求13所述的方法,其中,所述第二多个数据字段中的每一个保存32位。15.如权利要求14所述的方法,其中,所述第二多个数据字段中的每一个相对应的数据字段的所述部分包括多达4位。16.如权利要求14所述的方法,其中,所述第二多个数据字段中的每一个相对应的数据字段的所述部分包括多达8位。17.如权利要求14所述的方法,其中,所述第二多个数据字段中的每一个相对应的数据字段的所述部分包括多达16位。18.如权利要求13所述的方法,其中,所述第二多个数据字段中的每一个保存64位。19.如权利要求18所述的方法,其中,所述第二多个数据字段中的每一个相对应的数据字段的所述部分包括多达2位。2...

【专利技术属性】
技术研发人员:C·休斯E·乌尔德艾哈迈德瓦勒R·瓦伦丁J·科巴尔B·L·托尔M·J·查尼M·B·吉尔卡尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1