循环对齐指令指示数组的基地址作为第一操作数、循环的迭代限制作为第二操作数以及目的地。循环包含迭代,且每一迭代包括该数组的一个数据元素。处理器接收循环对齐指令,解码该指令以便执行,并将执行的结果存储在目的地中。该结果指示在数组的开始处的将要与数组的剩余部分分离地处理的数据元素的数量,以使得数组的剩余部分的基地址与对齐宽度对齐。
【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】循环对齐指令指示数组的基地址作为第一操作数、循环的迭代限制作为第二操作数以及目的地。循环包含迭代,且每一迭代包括该数组的一个数据元素。处理器接收循环对齐指令,解码该指令以便执行,并将执行的结果存储在目的地中。该结果指示在数组的开始处的将要与数组的剩余部分分离地处理的数据元素的数量,以使得数组的剩余部分的基地址与对齐宽度对齐。【专利说明】专利
各实施例涉及计算机处理器体系结构。尤其,各实施例涉及在被执行时引起特定结果的指令。相关领域的描述许多处理器具有单指令多数据(SMD)体系结构。SMD体系结构通常帮助显著地改善处理速度。在SMD体系结构中,不同于操作仅一个数据元素或一对数据元素的标量指令,已打包数据指令、向量指令或SMD指令可以同时地或并行地操作多个数据元素或多对数据元素。处理器可以具有响应于已打包数据指令的并行执行硬件,以便同时地或并行地执行多次操作。在SMD体系结构中,可以在一个寄存器或存储器位置内将多个数据元素成打包已打包数据或向量数据。在已打包数据中,可以将寄存器或其他存储位置的比特逻辑上分割成多个固定大小的数据元素的序列。数据元素中的每一可以表示单片数据,该单片数据连同通常具有相同大小的其他数据元素一起被存储在寄存器或存储位置中。例如,256比特宽的寄存器可以具有四个64比特宽的已打包数据元素、八个32比特宽的已打包数据元素、十六个16比特宽的已打包数据元素或三十二个8比特宽的已打包数据元素。已打包数据元素中的每一个可以表示可以分离地或独立于其他数据而操作的分离单片数据(例如,像素的颜色等等)。代表性地,一种类型的已打包数据指令、向量指令或SMD指令(例如,已打包加法指令)可以指定以垂直方式对在来自两个源已打包数据操作数的所有相应的数据元素对执行单个已打包数据操作(例如,加法),以便生成目标或结果已打包数据。源已打包数据操作数可以具有相同的大小,可以包含相同宽度的数据元素,且因而可以均包含相同数量的数据元素。两个源已打包数据操作数中的相同的比特位置中的源数据元素可以表示一对相应的数据元素。可以分离地或独立地对这些相应的源数据元素对中的每一个执行已打包数据操作,以便生成匹配数量的结果数据元素,且因而每一对相应的源数据元素可以具有相应的结果数据元素。通常,这样的指令的结果数据元素是以相同的次序,且它们常常具有相同的大小。除了这种示例性类型的已打包数据指令,存在各种其他类型的已打包数据指令。例如,存在具有仅一个或多于两个的源已打包数据操作数的那些已打包数据指令、以水平方式而不是垂直方式操作的那些已打包数据指令、生成不同大小的结果已打包数据操作数的那些已打包数据指令、具有不同大小的数据元素的那些已打包数据指令和/或具有不同的数据元素次序的那些已打包数据指令。附图简述通过参照被用来阐释本专利技术的各实施例的下列描述和附图,可以最好地理解本专利技术。附图中:图1是具有包括一个或多个循环对齐指令的指令集的处理器的示例实施例的框图。图2A-图2C阐释利用循环对齐指令的结果的经掩码已打包数据操作的示例。图3是具有执行单元的指令处理装置的示例实施例的框图,该执行单元可用于执行包括一个或多个循环对齐指令的示例实施例的指令。图4是包括存储一个或多个循环对齐指令的有形非暂态机器可访问的和/或机器可读的存储介质的制品(例如,计算机程序产品)的框图。图5A和图5B是阐释用于处理循环对齐指令的方法的不例实施例的流程图。图6是阐释已打包数据操作掩码比特的数量取决于对齐宽度和数据元素宽度的表。图7是一组已打包数据操作掩码寄存器的示例实施例的框图。图8A-图8C阐释循环对齐指令及其操作的示例实施例。图9是根据本专利技术的一个实施例的系统的框图。图10是根据本专利技术的实施例的第二系统的框图。图11是根据本专利技术的实施例的第三系统的框图。图12是根据本专利技术的实施例的片上系统(SoC)的框图。图13是根据本专利技术的各实施例的具有集成存储器控制器和图形设备(graphics)的单核心处理器和多核心处理器的框图。图14是对比根据本专利技术的各实施例使用软件指令转换器来将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。详细描述在下列描述中,陈述了众多特定的细节。然而,应理解,无需这些特定的细节就可以实践本专利技术的各实施例。在其他实例中,没有详细示出公知的电路、结构和技术,以便不模糊对本描述的理解。图1是具有包括一个或多个循环对齐指令的指令集102的处理器100的示例实施例的框图。处理器100可以是各种复杂指令集计算(CISC)处理器、各种精简指令集计算(RISC)处理器、各种超长指令字(VLIW)处理器、各种以上的异构或完全是其他类型的处理器中的任一种。在一个或多个实施例中,处理器100可以是通用处理器(例如,由加利福尼亚州圣克拉拉市英特尔公司生产的型号的通用微处理器),但不要求这一点。替代地,指令处理装置可以是专用处理器。合适的专用处理器的示例包括但不限于网络处理器、通信处理器、密码处理器、图形处理器、协处理器、嵌入式处理器、数字信号处理器(DSP)和控制器(例如,微控制器),等等。处理器100具有指令集体系结构(ISA) 101。指令集体系结构101表示处理器100的体系结构与编程相关的部分。指令集体系结构101通常包括原生指令、体系结构寄存器、数据类型、寻址模式、存储器体系结构、中断和异常处理以及处理器100的外部输入和输出(I/O)。指令集体系结构101不同于微体系结构,微体系结构通常表示被选择为实现该指令集体系结构的特定处理器设计技术。具有不同的微体系结构的处理器可以共享公共的指令集体系结构。例如,加利福尼亚州圣克拉拉市英特尔公司的某些微处理器和加利福尼亚州桑尼维尔市超微有限公司的某些微处理器使用显著不同的内部微体系结构来实现X86指令集的相似部分。指令集体系结构101包括体系结构寄存器(例如,体系结构寄存器堆(registerfile)) 106。所阐释的体系结构寄存器106包括通用寄存器127和已打包数据寄存器107。通用寄存器127中的每一个可用于存储标量数据元素(也被称为数据元素),且已打包数据寄存器107B中的每一个可用于存储已打包数据、向量数据或SMD数据(例如,数据元素的数组)。所阐释的体系结构寄存器106也包括掩码寄存器108。掩码寄存器108中的每一个可用于存储已打包数据操作掩码(也被称为“掩码”)。体系结构寄存器106表示板载处理器存储位置。体系结构寄存器106在此也可以仅是指寄存器。除非以另外方式指定或清楚地明显看出,否则在此使用短语体系结构寄存器、寄存器堆和寄存器来指示对软件和/或程序员可见的(例如,软件可见的)的寄存器和/或由宏指令指定为标识操作数的寄存器。这些寄存器不同于给定的微体系结构中的其他非体系结构寄存器(例如,临时寄存器、重排序缓冲器、隐退寄存器等等)。所阐释的指令集体系结构101也包括处理器100所支持的指令集102。指令集102包括多种不同类型的指令。指令集102的这些指令表示宏指令(例如,被提供给处理器100以便执行的指令),与微指令或micro-op (例如,从处理器100解码宏指令的解码器129得到的微指令)形成对比。指令集102包括一个或多个循环对齐指令,例如循环本文档来自技高网...
【技术保护点】
一种方法,包括:由处理器接收循环对齐指令,所述循环对齐指令指示数组的基地址作为第一操作数、循环限制作为第二操作数、和目的地,其中,所述循环包含多个迭代,并且在每一迭代中处理所述数组的数据元素;解码所述循环对齐指令以执行;以及将所述执行的结果存储在所述目的地中,所述结果指示在所述数组的开始处的将要与所述数组的剩余部分分离地处理的数据元素的数量,以使得所述数组的剩余部分的基地址与对齐宽度对齐。
【技术特征摘要】
【国外来华专利技术】
【专利技术属性】
技术研发人员:S·赛尔,E·乌尔德阿迈德瓦尔,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。