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

冲突掩码生成制造技术

技术编号:18824789 阅读:28 留言:0更新日期:2018-09-01 13:42
描述了单指令多数据(SIMD)技术。一种处理装置可以包括处理器核和存储器。所述处理器核可以生成包括多个位的第一位图,其中,所述多个位包括表示第一存储器位置的第一位。所述处理器核可以确定所述第一位图中所述第一位的值等于第二位的值。所述处理器核可以确定所述第一位图中所述第二位关于所述第一位的位置。所述处理器核可以生成包括第三位的第二位图,所述第三位指示所述第一位是所述第一位图中具有与所述第二位相同值的最后一位。

【技术实现步骤摘要】
【国外来华专利技术】冲突掩码生成
技术介绍
可以在微处理器系统中实施单指令多数据(SIMD)架构以便使一个指令能够并行地对若干操作数进行操作。SIMD架构利用将多个数据元素紧缩在一个寄存器或连续的存储器位置中。利用并行硬件执行,通过一个指令对多个分开的数据元素执行多个操作以便提高微处理器系统的性能。附图说明根据以下给出的详细描述以及本专利技术的各个实施例的附图,将更全面地理解本专利技术的各个实施例。图1A展示了根据一个实施例的耦合到处理器以执行单指令多数据(SIMD)操作的存储器装置的图示。图1B展示了根据一个实施例的一种将数据写入存储器中位置以用于收集-修改-分散操作的方法的图示。图1C展示了根据一个实施例的一种将数据写入存储器中位置以用于收集-修改-分散操作的方法的另一个图示。图2展示了根据一个实施例的实施掩码操作的SIMD指令。图3A是框图,展示了根据一个实施例的有序流水线和寄存器重命名级、无序发布/执行流水线。图3B是框图,展示了根据一个实施例的实施安全存储器重新分区的处理器的微架构。图4展示了根据一个实施例的处理器的微架构的框图,所述处理器包括用于执行安全存储器重新分区的逻辑电路。图5是根据一种实施方式的计算机系统的框图。图6是根据另一种实施方式的计算机系统的框图。图7是根据一种实施方式的芯片上系统的框图。图8展示了根据一种实施方式的计算系统的框图的另一种实施方式。图9展示了根据一种实施方式的计算系统的框图的另一种实施方式。具体实施方式许多处理器使用向量指令集或单指令多数据(SIMD)指令集来并行执行多个操作。处理器可以并行执行多个操作,同时将操作应用于同一条数据或同时应用于多条数据。向量化是用于将一次仅对一对操作数进行操作的标量程序转换成可以根据单个指令运行多个操作的向量程序的操作。例如,向量化是重写循环操作以执行SIMD指令的过程,在此过程中,其同时处理数组的M个元素N/M次,而不是处理数组的单个元素N次。向量化可以包括用于执行收集操作、修改操作和分散操作的指令(如稀疏更新指令)。收集操作和分散操作可以间接访问存储器中的寄存器。例如,收集操作使用有索引的读取,并且分散操作使用有索引的写入。在一个示例中,数据元素可以位于非连续存储器位置。收集操作从存储器位置读取一组数据元素,并且将这些数据元素聚合到单个寄存器或高速缓存行中。修改操作修改所述一组数据元素中的一个或多个数据元素。分散操作将采用紧缩数据结构的数据元素写入一组非连续或随机的存储器位置。常规地,使用SIMD指令集的处理器具有有限的性能提高,因为应用具有无规律的存储器访问模式。例如,存储需要对数据元素进行频繁且随机更新的数据表的应用不存储在连续存储器位置并且需要对数据进行重新安排以便充分利用SIMD指令集。对数据进行重新安排导致了大量开销并且限制了使用SIMD指令集的效率。另外,向量化通常假设执行收集操作、修改操作和分散操作的单个指令将访问每个存储器位置不超过一次。在一个示例中,由图像搜索应用中的合并和排序算法(针对i的16个连续值)所使用的存储器访问模式可以被如下向量化:收集16个数组[a[i]];执行SIMD计算,如数组[a[i]]=b[i];并且向回分散新值。当a[i]的两个连续值相同时,则针对a[i]的第二个值的收集操作、修改操作和分散操作与a[i]的第一个值冲突。a[i]的第一个值与第二个值之间的冲突造成数据相关性危险。数据相关性危险是指令引用尚未完成的先前指令的结果的危险。在一个示例中,SIMD指令可能具有数据相关性危险,其中,第一操作是将A与B相加以确定C,并且第二操作是将C与D相乘以确定E。在此示例中,SIMD指令同时执行第一和第二操作并且数据相关性危险由第二操作依赖于第一操作的结果引起。数据相关性危险可以针对SIMD指令集导致不可预测结果。在另一个示例中,当两个连续值将被写入同一存储器位置(例如,存储器位置a[i])时,针对第二个值的分散操作与针对第一个值的分散操作相冲突。同时将多个值写入同一存储器位置可能导致不可预测回答,例如,通道冲突。本文中描述的实施例通过使用掩码(VPCONFLICTMSK)操作消除针对SIMD指令集的数据相关性危险来解决上文提及的缺点。VPCONFLICTMSK操作使用分散操作的偏移向量来消除对同一存储器位置中的数据寄存器的冲突使用。可以使用VPCONFLICTMSK操作来生成写掩码,如在后续段落中更详细讨论的。掩码用于识别将通过分散操作写入的值,所述值是通道冲突的最后一次出现或者是针对没有冲突的通道的值。采用VPCONFLICTMSK操作的SIMD指令可以避免冲突通道引起写入相关性数据危险。图1A展示了根据一个实施例的耦合到处理器102以执行单指令多数据(SIMD)操作的存储器装置100的图示。处理器102可以包括存储器接口106、寄存器103和高速缓存105。存储器接口106可以耦合到寄存器103和高速缓存105。存储器接口106可以使数据在寄存器103或高速缓存105(用于临时存储)与存储器装置100(用于长期存储)之间移动。在一个示例中,处理器可以使用寄存器103来对在由处理器102执行的指令或过程期间使用的数据进行存储。处理器可以使用存储器接口106来将如指令或过程的结果等数据写入存储器装置100以供将来访问。在另一个示例中,寄存器103可以包括SIMD寄存器104。SIMD寄存器104可以对在SIMD操作期间使用的数据进行存储。例如,在收集-修改-分散操作期间,处理器102可以使用存储器接口106从存储器装置100收集数据并且将待在SIMD操作(收集操作)期间使用的数据存储在SIMD寄存器104中,如在后续段落中更详细讨论的。处理器102可以使用在如加法或乘法运算等SIMD操作(修改操作)期间存储在SIMD寄存器104处的数据。当SIMD操作完成时,处理器102可以使用存储器接口106将SIMD操作的结果写回到存储器装置100(分散操作)。在另一个示例中,存储器接口106可以将SIMD操作的结果存储在高速缓存105中用于处理器102的其他操作。图1B展示了根据一个实施例的一种将数据写入存储器中位置以用于收集-修改-分散操作的方法108的图示。方法100可以至少部分地由处理器100(图1A)或处理逻辑执行,所述处理逻辑可以包括硬件(例如,电路系统、专用逻辑、可编程逻辑、微代码等)、软件(例如,由处理装置执行的指令)、固件或其组合。参照图1B,方法108开始于生成第一位图(110)。在一个实施例中,所述第一位图可以包括多个位。在另一个实施例中,所述多个位可以包括位于所述第一位图中的第一位置处的第一位,其中,所述第一位表示第一存储器位置。所述方法可以包括:确定所述第一位图中所述第一位的值等于第二位的值,其中,所述第二位的位置在所述第一位置之前(112)。所述方法可以包括:生成包括第三位的第二位图,所述第三位指示所述第一位是所述第一位图中针对此值的最后一位(114)。图1C展示了根据一个实施例的一种将数据写入存储器中位置以用于收集-修改-分散操作的方法120的另一个图示。方法120可以至少部分地由处理器100(图1A)或处理逻辑执行,所述处理逻辑可以包括硬件(例如,电路系统、专用逻辑、可编程逻辑、微代码本文档来自技高网...

【技术保护点】
1.一种处理装置,包括:寄存器,用于存储数据;以及处理器核,耦合到所述寄存器,其中,所述处理器核用于:生成第一位图,所述第一位图包括:位于所述第一位图中的第一位置处的第一位,其中,所述第一位表示存储器装置中的第一存储器位置;以及位于所述第一位图中的第二位置处的第二位,其中:所述第二位表示所述存储器装置中的第二存储器位置,以及所述第一位图的所述第一位置和所述第二位置呈相继顺序;确定所述第一位图中所述第二位的值等于所述第一位的值;生成包括第三位的第二位图,所述第三位表示所述第一位图中所述第一位的位置;确定所述第二位是所述第一位图中具有与所述第一位相同值的最后一位;生成包括第四位的第三位图,所述第四位指示所述第二位是所述第一位图中具有与所述第一位相同值的所述最后一位;以及将与所述第二位相关联的数据写入所述第二存储器位置。

【技术特征摘要】
【国外来华专利技术】1.一种处理装置,包括:寄存器,用于存储数据;以及处理器核,耦合到所述寄存器,其中,所述处理器核用于:生成第一位图,所述第一位图包括:位于所述第一位图中的第一位置处的第一位,其中,所述第一位表示存储器装置中的第一存储器位置;以及位于所述第一位图中的第二位置处的第二位,其中:所述第二位表示所述存储器装置中的第二存储器位置,以及所述第一位图的所述第一位置和所述第二位置呈相继顺序;确定所述第一位图中所述第二位的值等于所述第一位的值;生成包括第三位的第二位图,所述第三位表示所述第一位图中所述第一位的位置;确定所述第二位是所述第一位图中具有与所述第一位相同值的最后一位;生成包括第四位的第三位图,所述第四位指示所述第二位是所述第一位图中具有与所述第一位相同值的所述最后一位;以及将与所述第二位相关联的数据写入所述第二存储器位置。2.如权利要求1所述的处理装置,其特征在于,所述第一位图包括位于所述第一位图中的第三位置处的第五位,其中,所述第五位表示第三存储器位置。3.如权利要求2所述的处理装置,其特征在于,所述处理器核进一步用于:确定所述第五位的值不等于所述第二位的值;以及将与所述第五位相关联的数据写入所述第二存储器位置。4.如权利要求2所述的处理装置,其特征在于,所述处理器核进一步用于:确定所述第五位的值等于所述第二位的值;生成包括所述第三位的第二位图,所述第三位表示所述第一位图中所述第一位和所述第五位的位置;确定所述第二位是所述第一位图中具有与所述第一位和所述第五位相同值的所述最后一位;以及生成包括所述第四位的第三位图,所述第四位指示所述第二位是所述第一位图中具有与所述第一位和所述第五位相同值的所述最后一位。5.如权利要求1所述的处理装置,其特征在于,所述第一位图包括:位于所述第一位图中的第三位置处的第五位,其中,所述第五位表示第三存储器位置;以及位于所述第一位图中的第四位置处的第六位,其中,所述第六位表示第四存储器位置。6.如权利要求5所述的处理装置,其特征在于,所述处理器核进一步用于:确定所述第一位图中所述第五位的值等于所述第六位的值;生成包括第七位的所述第二位图,所述第七位表示所述第一位图中所述第六位的位置;确定所述第六位是所述第一位图中具有与所述第五位相同值的最后一位;生成包括第八位的所述第三位图,所述第八位指示所述第六位是所述第一位图中具有与所述第五位相同值的所述最后一位;以及将与所述第六位相关联的数据写入所述第四存储器位置。7.如权利要求1所述的处理装置,其特征在于,所述第一位图包括:位于所述第一位图中的第三位置处的第五位,其中,所述第五位表示第三存储器位置;位于所述第一位图中的第四位置处的第六位,其中,所述第六位表示第四存储器位置;以及位于所述第一位图中的第五位置处的第七位,其中,所述第七位表示第五存储器位置。8.如权利要求7所述的处理装置,其特征在于,所述处理器核进一步用于:确定所述第一位图中所述第五位的值等于所述第六位的值;确定所述第七位的值不等于所述第一位图中的位中的任何位;生成包括第八位的所述第二位图,所述第八位表示所述第一位图中所述第六位的位置;确定所述第六位是所述第一位图中具有与所述第六位相同值的最后一位;生成所述第三位...

【专利技术属性】
技术研发人员:金君E·乌尔德阿迈德瓦尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1