【技术实现步骤摘要】
【国外来华专利技术】用于提供利用跨越功能的向量加载操作/存储操作的指令和逻辑
本公开涉及处理逻辑、微处理器以及相关的指令集体系结构的领域,这些指令集体系结构在被处理器或其他处理逻辑所执行时运行逻辑、数学或其他功能性操作。具体而言,本公开涉及用于提供利用跨越功能的向量加载操作和/或存储操作的指令和逻辑。
技术介绍
目前的诸多处理器通常包括用于提供计算密集型操作但提供高度数据并行性的指令,这些指令可通过使用多种数据存储设备的高效实现来使用,这些数据存储设备诸如:单指令多数据(SIMD)向量寄存器。将应用或软件代码向量化可包括使该应用在特定系统或指令集体系结构(诸如例如宽或大宽度向量体系结构)上编译、安装和/或运行。对于一些应用,由于向量宽度增加(例如用于诸如三维(3D)图像渲染之类的操作),存储器访问可能是复杂的、不一致的或不连续的。用于向量化进程的存储器可能被存储在不连续或不邻近的存储器位置中。多种体系结构可能需要额外的指令,这些额外的指令最小化了指令吞吐量,并显著增加在执行任何算术操作之前对寄存器中的数据进行排序所需的时钟周期的数量。用于改善存储器访问和对去往和来自更宽向量的数据进行排序的机制可包括实现聚集和分散操作,以针对来自其他非本地和/或不连续的存储器位置的数据产生本地连续的存储器访问。聚集操作可从存储装置中的一组不连续或随机的存储器位置收集数据,并将不同的数据组合到打包结构中。分散操作可将打包结构中的元素散开至一组不连续或随机的存储器位置。其他机制可包括利用常规跨越的加载和存储,用于从存储设备中的不连续存储器位置的集合中收集数据并将数据组合到打包结构中,或将打包结构中 ...
【技术保护点】
一种处理器,包括:第一寄存器,包括第一多个数据字段,其中上述第一寄存器中的第一多个数据字段中的每个数据字段对应于存储器中的相应数据元素的与起始地址相距的跨越长度的倍数,其中对于所述第一寄存器中的每个数据字段,第一值指示相应的元素尚未从所述存储器被加载,而第二值指示所述相应的数据元素无需被加载或已经从所述存储器被加载;解码级,用于解码第一指令,所述第一指令指定所述第一寄存器和与所述第一多个数据字段中的一个或多个数据字段相对应的加载操作的集合,并且指定第二单指令多数据(SIMD)操作;以及一个或多个执行单元,用于响应于经解码的第一指令:读取第一寄存器中的每个数据字段的值;对于所述第一寄存器中的所述多个数据字段中的具有第一值的每个数据字段,从所述存储器中加载相应的数据元素并将所述相应的数据元素存储在第二寄存器中,所述第二寄存器具有第二多个数据字段,所述第二多个数据字段的一部分用于存储被加载的数据元素,并且将第一寄存器中的相应的数据字段的值从所述第一值改变成所述第二值;以及利用所述第二多个数据字段中的所述一部分中存储的数据元素来执行所述第二SIMD操作,以产生相应的结果数据元素。
【技术特征摘要】
【国外来华专利技术】1.一种处理器,包括:第一寄存器,包括第一多个数据字段,其中所述第一寄存器中的第一多个数据字段中的每个数据字段要对应于要被存储在存储器中的相应数据元素的与起始地址相距的跨越长度的倍数,其中对于所述第一寄存器中的每个数据字段,第一值要指示相应的数据元素尚未从所述存储器被加载,而第二值要指示所述相应的数据元素无需被加载或已经从所述存储器被加载;解码级,用于解码第一指令,所述第一指令要指定所述第一寄存器和要与所述第一多个数据字段中的一个或多个数据字段相对应的加载操作的集合,并且要指定第二单指令多数据(SIMD)操作;以及一个或多个执行单元,用于响应于经解码的第一指令执行以下操作:读取第一寄存器中的每个数据字段的值;对于所述第一寄存器中的所述第一多个数据字段中的要具有第一值的每个数据字段,从所述存储器中加载相应的数据元素并将所述相应的数据元素存储在第二寄存器中,所述第二寄存器具有第二多个数据字段,所述第二多个数据字段的一部分用于存储被加载的数据元素;将第一寄存器中的相应的数据字段从所述第一值改变成所述第二值;以及利用所述第二多个数据字段中的所述一部分中存储的数据元素来执行所述第二SIMD操作,以产生相应的结果数据元素,其中所述第二SIMD操作是一元的、二元的、或三元的。2.如权利要求1所述的处理器,其特征在于,所述第一值是1。3.如权利要求1所述的处理器,其特征在于,所述第二值是0。4.如权利要求1所述的处理器,其特征在于,所述一个或多个执行单元用于响应于经解码的第一指令复制第一寄存器中的所述第一多个数据字段的值。5.如权利要求4所述的处理器,其特征在于,所述一个或多个执行单元用于响应于经解码的第一指令,当第一寄存器中的所述第一多个数据字段的值中具有第一值的每个数据字段的值从第一值被改变成第二值时,复制第一寄存器中的所述第一多个数据字段的值中具有第一值的每个数据字段。6.如权利要求5所述的处理器,其特征在于,所述一个或多个执行单元用于在发生错误时或在所述第一寄存器中的第一多个数据字段的每个数据字段具有所述第二值之后,使用来自所述第一寄存器的多个复制的数据字段来执行所述第二SIMD操作。7.如权利要求1所述的处理器,其特征在于,要被存储到所述第二寄存器中的数据元素会是32位数据元素。8.如权利要求1所述的处理器,其特征在于,要被存储到所述第二寄存器中的数据元素会是64位数据元素。9.如权利要求1所述的处理器,其特征在于,所述第二寄存器是512位向量寄存器。10.一种用于执行第一可执行指令的方法,包括:读取第一寄存器中的第一多个数据字段中的每个数据字段的值,其中第一寄存器中的第一多个数据字段中的每个数据字段对应于存储器中的相应数据元素的与起始地址相距的跨越长度的倍数,其中对于第一寄存器中的每个数据字段,第一值指示相应的数据元素尚未从所述存储器被加载,而第二值指示所述相应的数据元素无需被加载或已经从所述存储器被加载;对于第一寄存器中的所述第一多个数据字段中的具有第一值的每个数据字段,从所述存储器中加载相应的数据元素并将所述相应的数据元素存储在第二寄存器中,并且将第一寄存器中的相应数据字段从所述第一值改变成所述第二值,所述第二寄存器具有第二多个数据字段,所述第二多个数据字段的一部分用于存储被加载的数据元素;以及然后利用所述第二多个数据字段的所述部分中存储的数据元素来执行第二单指令多数据(SIMD)操作,以产生相应的结果数据元素,其中所述第二SIMD操作是一元的、二元的、或三元的。11.如权利要求10所述的方法,其特征在于,还包括:复制所述第一寄存器中的所述第一多个数据字段。12.如权利要求10所述的方法,其特征在于,还包括:当第一寄存器中的所述第一多个数据字段中具有第一值的每个数据字段的值从第一值被改变成第二值时,复制所述第一寄存器中的所述第一多个数据字段中具有第一值的每个数据字段。13.如权利要求12所述的方法,其特征在于,还包括:在发生错误时或在所述第一寄存器中的所述第一多个数据字段中的每个数据字段具有第二值之后,使用来自第一寄存器的多个复制的数据字段来执行所述第二SIMD操作。14.如权利要求10所述的方法,其特征在于,被存储到所述第二寄存器中的数据元素是32位数据元素。15.如权利要求10所述的方法,其特征在于,被存储到所述第二寄存器中的数据元素是64位...
【专利技术属性】
技术研发人员:E·乌尔德阿迈德瓦尔,K·A·杜什,S·赛尔,C·R·扬特,
申请(专利权)人:英特尔公司,
类型:
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。