[发明专利]用于检测向量寄存器内的相同元素的装置和方法有效
申请号: | 201180075862.5 | 申请日: | 2011-12-23 |
公开(公告)号: | CN104081336B | 公开(公告)日: | 2018-10-23 |
发明(设计)人: | V·W·李;D·金;T-F·奈;J·巴拉德瓦杰;A·哈特诺;S·S·巴格索克希;N·万苏德范 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/06 | 分类号: | G06F9/06;G06F9/30 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 高见 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 检测 向量 寄存器 相同 元素 装置 方法 | ||
1.一种用于检测向量寄存器内的相同元素的处理器,所述处理器被配置为用于从第一向量寄存器读取每个活跃元素,每个活跃元素具有所述第一向量寄存器内的所定义比特位置;从第二向量寄存器读取每个元素,每个元素具有所述第二向量寄存器内与所述第一向量寄存器中的当前活跃元素的比特位置相对应的所定义比特位置;以及读取输入掩码寄存器,所述输入掩码寄存器标识所述第二向量寄存器中将针对其作出与所述第一向量寄存器中的值的比较的活跃比特位置,其中所述处理器包括:
比较器,被配置为用于将所述第一向量寄存器中的每个元素与所述第二向量寄存器中比特位置在所述第一向量寄存器中的所述元素的比特位置之前的活跃元素作比较;以及
OR累加器,被配置为用于当所述第二向量寄存器中的在前比特位置中的任一个的值等于所述第一向量寄存器中的所述比特位置中的比特的值,则将输出掩码寄存器中的比特位置设为等于真值。
2.如权利要求1所述的处理器,其特征在于,所述OR累加器被配置为用于如果所述第一向量寄存器中的所有所述在前比特位置不等于所述第二向量寄存器中的所述当前活跃比特位置中的比特,则将所述输出掩码寄存器中的比特位置设为等于假值。
3.如权利要求1所述的处理器,其特征在于,所述处理器被配置为用于如果所述输入掩码寄存器中的相应比特位置中的比特具有假值,则将所述输出掩码寄存器中的比特位置设为等于假值。
4.如权利要求3所述的处理器,其特征在于,所述比较器还被配置为用于仅当所述输入掩码寄存器中与所述第二向量寄存器中的所述当前活跃元素中的所述比特位置相对应的比特位置中的比特等于真值时,执行所述比较操作。
5.如权利要求1所述的处理器,其特征在于,所述处理器被配置为用于使用来自所述输出掩码寄存器的最终值集合来向量化程序代码的循环。
6.一种用于检测向量寄存器内的相同元素的方法,包括以下操作:
从第一向量寄存器读取每个活跃元素,每个活跃元素具有所述第一向量寄存器内的所定义比特位置;
从第二向量寄存器读取每个元素,每个元素具有所述第二向量寄存器内与所述第一向量寄存器中的当前活跃元素的比特位置相对应的所定义比特位置;
读取输入掩码寄存器,所述输入掩码寄存器标识所述第二向量寄存器中将针对其作出与所述第一向量寄存器中的值的比较的活跃比特位置,所述比较操作包括:
将所述第一向量寄存器中的每个元素与所述第二向量寄存器中比特位置在所述第一向量寄存器中的所述元素的比特位置之前的活跃元素作比较;以及
当所述第二向量寄存器中的所有在前比特位置中的任一个的值等于所述第一向量寄存器中的所述比特位置中的比特的值,则将输出掩码寄存器中的比特位置设为等于真值。
7.如权利要求6所述的方法,其特征在于,还包括:
如果所述第一向量寄存器中的所有所述在前比特位置不等于所述第二向量寄存器中的所述当前活跃比特位置中的比特,则将所述输出掩码寄存器中的比特位置设为等于假值。
8.如权利要求6所述的方法,其特征在于,还包括:
如果所述输入掩码寄存器中的相应比特位置中的比特具有假值,则将所述输出掩码寄存器中的比特位置设为等于假值。
9.如权利要求8所述的方法,其特征在于,还包括:
仅当所述输入掩码寄存器中与所述第二向量寄存器中的所述当前活跃元素中的所述比特位置相对应的比特位置中的比特等于真值时,执行所述比较操作。
10.如权利要求6所述的方法,其特征在于,还包括:
使用来自所述输出掩码寄存器的最终值集合来向量化程序代码的循环。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180075862.5/1.html,转载请声明来源钻瓜专利网。