【技术实现步骤摘要】
提供向量压缩和旋转功能的指令和逻辑
本公开涉及处理逻辑、微处理器和相关联的指令集架构的领域,当由所述处理器或其它处理逻辑执行时,所述相关联的指令集架构执行逻辑、算术或其它功能操作。具体地说,本公开涉及用于提供向量压缩和旋转功能的指令和逻辑。
技术介绍
现代处理器经常包括用于提供操作的指令,这些操作是计算密集的,但是提供能够经过使用例如以单指令多数据(SIMD)向量寄存器为例的各种数据存储设备的有效实现来开发的高级数据并行性。中央处理单元(CPU)可以然后提供并行硬件以支持处理向量。向量是保持多个连续数据元素的数据结构。具有尺寸M的向量寄存器可以包含具有尺寸O的N个向量元素,其中N=M/O。例如,可以将64字节向量寄存器划分为(a)64个向量元素,每一个元素保持占据1个字节的数据项,(b)32个向量元素以保持每一个占据2个字节(或一个“字”)的数据项,(c)16个向量元素以保持每一个占据4个字节(或一个“双字”)的数据项,或(d)8个向量元素以保持每一个占据8个字节(或一个“四倍字”)的数据项。使应用或软件代码向量化可以包括使应用在例如以宽的或大的宽度向量架构为例的特定系统或指令集架构上编译、安装和/或运行。计算行业发展了各种编程基准以测试架构和诸如向量化、同时多线程、预测等等的计算技术的效率。一组这样的基准来自标准性能评估公司(SPEC)。SPEC基准广泛用于“检测”处理器和平台架构的性能。构成SPEC基准的程序由行业专业人员进行描绘和分析,试图发现新的编译和计算技术以改善计算机性能。被称为CPU2006的SPEC基准组之一包括被选择以强调系统的处理器、存 ...
【技术保护点】
【技术特征摘要】
2012.10.30 US 13/664,4011.一种处理器,包括:掩码寄存器,包括第一多个数据字段,其中,所述掩码寄存器中的所述第一多个数据字段中的每一个与向量中的元素单元相对应;解码级,用于对指定向量源操作数、所述掩码寄存器、向量目的地操作数和向量目的地偏移的第一指令进行解码;以及一个或多个执行单元,用于响应于解码的第一指令来执行以下操作:读取所述掩码寄存器中的所述第一多个数据字段的多个值;对于所述掩码寄存器中的所述第一多个数据字段中的第一值,将相对应的第一向量元素从所述向量源操作数拷贝到所述向量目的地操作数中的第一相邻顺序元素单元,所述第一向量元素在所述向量目的地偏移单元处;在将相对应的第一向量元素从所述向量源操作数拷贝到所述向量目的地操作数中的所述第一相邻顺序元素单元之后,将所述掩码寄存器中的所述第一值从第一未掩蔽值改变到第一掩蔽值;对于所述掩码寄存器中的所述第一多个数据字段中的第二值,将相对应的第二向量元素从所述向量源操作数拷贝到所述向量目的地操作数中的第二相邻顺序元素单元;以及在将相对应的第二向量元素从所述向量源操作数拷贝到所述向量目的地操作数中的所述第二相邻顺序元素单元之后:将所述掩码寄存器中的所述第二值从第二未掩蔽值改变到第二掩蔽值,所述第一掩蔽值和所述第二掩蔽值用于跟踪解码的第一指令的完成进展;确定所述向量目的地操作数已满并且将所述向量目的地操作数存储到存储器中;将所述向量目的地偏移单元设置为零;以及使用所述第一掩蔽值、所述第二掩蔽值和所述向量目的地偏移单元来重新执行所述第一指令以压缩第三向量元素。2.如权利要求1所述的处理器,其中,来自所述向量源操作数的相对应的第一和第二向量元素被拷贝到以所述向量目的地操作数中的元素单元的总数量为模的相邻顺序元素单元。3.如权利要求2所述的处理器,其中,所述第一指令是向量压缩和旋转指令。4.如权利要求1所述的处理器,其中,来自所述向量源操作数的相对应的第一和第二向量元素被拷贝到在所述向量目的地偏移单元处开始的相邻顺序元素单元,仅直到填充了最高有效向量目的地元素单元为止。5.如权利要求4所述的处理器,其中,所述第一指令是向量压缩、填充和旋转指令。6.如权利要求1所述的处理器,其中,所述第一未掩蔽值为一。7.如权利要求5所述的处理器,其中,所述第二掩蔽值为零。8.如权利要求1所述的处理器,其中,拷贝到所述向量目的地操作数中的所述第一向量元素和所述第二向量元素是32位数据元素。9.如权利要求1所述的处理器,其中,拷贝到所述向量目的地操作数中的所述第一向量元素和所述第二向量元素是64位数据元素。10.如权利要求1所述的处理器,其中,所述向量目的地操作数是128位向量寄存器。11.如权利要求1所述的处理器,其中,所述向量目的地操作数是256位向量寄存器。12.如权利要求1所述的处理器,其中,所述向量目的地操作数是512位向量寄存器。13.一种执行第一指令的方法,包括:读取掩码寄存器中的第一多个数据字段的多个值;对于所述掩码寄存器中的所述第一多个数据字段中的第一值,将相对应的第一向量元素从向量源操作数拷贝到向量目的地操作数中的第一相邻顺序元素单元,所述第一向量元素在向量目的地偏移单元处;在将相对应的第一向量元素从所述向量源操作数拷贝到所述向量目的地操作数中的所述第一相邻顺序元素单元之后,将所述掩码寄存器中的所述第一值从第一未掩蔽值改变到第一掩蔽值;对于所述掩码寄存器中的所述第一多个数据字段中的第二值,将相对应的第二向量元素从所述向量源操作数拷贝到所述向量目的地操作数中的第二相邻顺序元素单元;以及在将相对应的第二向量元素从所述向量源操作数拷贝到所述向量目的地操作数中的所述第二相邻顺序元素单元之后:将所述掩码寄存器中的所述第二值从第二未掩蔽值改变到第二掩蔽值,所述第一掩蔽值和所述第二掩蔽值用于跟踪所述第一指令的完成进展;确定所述向量目的地操作数已满并且将所述向量目的地操作数存储到存储器中;将所述向量目的地偏移单元设置为零;以及使用所述第一掩蔽值、所述第二掩蔽值和所述向量目的地偏移单元来重新执行所述第一指令以压缩第三向量元素。14.如权利要求13所述的方法,其中,来自所述向量源操作数的相对应的第一和第二向量元素被拷贝到以所述向量目的地操作数中的元素单元的总数量为模的相邻顺序元素单元。15.如权利要求13所述的方法,其中,来自所述向量源操作数的相对应的第一和第二向量元素被拷贝到在所述向量目的地偏移单元处开始的相邻顺序元素单元,仅直到填充了最高有效向量目的地元素单元为止。16.如权利要求13所述的方法,其中,存储到所述向量目的地操作数中的所述第一向量元素和所述第二向量元素是32位数据元素。17.如权利要求13所述的方法,其中,存储到所述向量目的地操作数中的所述第一向量元素和所述第二向量元素是64位数据元素。18.如权利要求13所述的方法,其中,所述向量目的地操作数是128位向量寄存器。19.如权利要求13所述的方法,其中,所述向量目的地操作数是256位向量寄存器。20.如权利要求13所述的方法,其中,所述向量目的地操作数是512位向量寄存器。21.一种处理器,包括:解码级,用于对指定向量源操作数、掩码寄存器、向量目的地操作数和向量目的地偏移的第一单指令多数据(SIMD)指令进行解码;以及一个或多个执行单元,用于响应于解码的第一SIMD指令来执行以下操作:读取所述掩码寄存器中的第一多个数据字段的多个值;对于所述掩码寄存器中的所述第一多个数据字段中的第一值,将相对应的第一向量元素从所述向量源操作数拷贝到所述向量目的地操作数中在所述向量目的地偏移单元处开始的以所述向量目的地操作数中的元素单元的总数量为模的第一...
【专利技术属性】
技术研发人员:T·乌利尔,E·乌尔德艾哈迈德瓦勒,R·瓦伦丁,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。