通过处理器执行掩码产生指令,以提高对数据元素数组进行向量操作的效率。处理器包括多个向量寄存器,多个向量寄存器之一存储数组的数据元素。处理器还包括执行电路,该执行电路用于接收掩码产生指令,该掩码产生指令至少指定第一操作数和第二操作数。响应于该掩码产生指令,该执行电路用于将第一操作数的位向左移动在第二操作数中定义的次数,并且每当第一操作数的最高有效位从左边被移出时就从右边拉入位1,以产生结果。该结果中的每个位对应于该数组的多个数据元素中的一个数据元素。
【技术实现步骤摘要】
【国外来华专利技术】
本公开涉及处理逻辑、微处理器以及相关联的指令集架构的领域,该指令集架构 在被处理器或其它处理逻辑所执行时运行逻辑、数学或其它功能性操作。
技术介绍
指令集或指令集架构(ISA)是计算机架构中与编程有关的部分,并且可包括原生 数据类型、指令、寄存器架构、寻址模式、存储器架构、中断和异常处理、以及外部输入和输 出(I/O)。术语指令在本申请中一般表示宏指令,宏指令是被提供给处理器(或指令转换 器,该指令转换器(利用静态二进制转换、包括动态编译的动态二进制转换)转换、变形、 仿真或以其它方式将指令转换成将由处理器处理的一个或多个其它指令)以供执行的指 令一一作为对比,微指令或微操作(微操作)是处理器的解码器解码宏指令的结果。 ISA与微架构不同,微架构是实现该指令集的处理器的内部设计。具有不同微架构 的处理器可共享共同的指令集。例如,丨ntel·?酷睿(Core?)处理器、以及来自加利福尼亚州 桑尼威尔(Sunnyvale)的超微半导体有限公司(Advanced Micro Devices, Inc.)的诸多处 理器实现几乎相同版本的x86指令集(在更新的版本中加入了一些扩展),但具有不同的内 部设计。例如,可利用公知技术(包括专用物理寄存器、利用寄存器重命名机制的一个或多 个动态分配的物理寄存器等等)在不同的微架构中以不同的方式实现该ISA的同一寄存器 架构。 许多现代ISA支持向量操作(也称为紧缩数据操作或单指令多数据(SIMD)操 作)。取代仅对一个数据元素或一对数据元素进行操作的标量指令,向量指令(也称为紧缩 数据指令或SMD指令)可同时或并行地对多个数据元素或多对数据元素进行操作。处理 器可具有并行的执行硬件,以响应于该向量指令同时或并行地执行多个操作。 向量操作在一个操作中对紧缩在一个寄存器或存储器位置之内的多个数据元素 进行操作。这些数据元素被称为向量数据元素或紧缩数据元素。每一向量数据元素可表示 单独的个体数据片(例如,像素的颜色等),该数据片可单独地被操作或独立于其他数据被 操作。 附图简述 在附图中的诸个图中通过示例而非限制地示出各个实施例: 图1是根据一个实施例的包括向量寄存器和掩码寄存器的指令处理装置的框图。 图2A-2C示出根据一个实施例的掩码产生指令的诸个示例。 图3A和3B示出根据一个实施例的数组数据对齐的诸个示例。 图3C示出根据一个实施例的使用掩码的掩码向量指令的示例。 图4示出根据一个实施例的用于给定的向量寄存器宽度和数据元素宽度的掩码 位的数量。 图5是示出根据一个实施例的用于响应于掩码产生指令而执行的诸个操作的流 程图。 图6是示出根据一个实施例的使用软件指令转换器将源指令集中的二进制指令 转换成目标指令集中的二进制指令的框图。 图7A是根据一个实施例的有序和无序流水线的框图。 图7B是根据一个实施例的有序和无序核的框图。 图8A-B是根据一个实施例的更具体的示例性有序核架构的框图。 图9是根据一个实施例的处理器的框图。 图10是根据一个实施例的系统的框图。 图11是根据一个实施例的第二系统的框图。 图12是根据本专利技术的实施例的第三系统的框图。 图13是根据一个实施例的芯片上系统(SoC)的框图。【具体实施方式】 在以下描述中,陈述了多个具体细节。然而,应当理解的是,可不通过这些具体细 节来实施本专利技术的实施例。在其它实例中,未详细示出公知的电路、结构以及技术,以免模 糊对本描述的理解。 本申请中描述的诸个实施例提供掩码产生指令,这些掩码产生指令能用于引起或 导致处理器产生由经掩码向量指令使用的掩码。经掩码向量指令可应用于如下情形:计算 循环的行程计数(即迭代的次数)不能被适配到向量寄存器中的元素的数量所整除。因此, 需要单独地处理余下的迭代。为了处理余下的迭代中的元素,掩码产生指令产生适当的断 言掩码(predicate mask),该掩码将向量寄存器的部分(例如最高有效位的元素)从计算 中忽略或屏蔽,从而将不会产生异常(例如由于访问被分配的在后存储器或/和未定义的 结果而引起的异常)。 该掩码产生指令也可用于其它情形。例如,该指令可用于更新数据累积中的控制 掩码以用于稀疏向量计算。可通过多次迭代执行数据累积。在这些迭代中的一些迭代中, 一些数据元素可能退出计算,而一些新数据元素可能加入计算。该控制掩码被更新以跟踪 需要进一步计算的元素。可在掩码向量中利用该控制掩码以提高向量计算的效率。 与向量指令类似,掩码向量指令能用于引起或导致处理器对一个或多个向量操作 数的数据元素执行向量操作。此外,每个掩码向量指令使用掩码来掩码、断言或条件地控制 向量操作。掩码能用于按数据元素粒度来掩码或有条件地控制向量处理。例如,掩码能用 于对是否将在来自单个源向量操作数的各个数据元素或来自两个源向量操作数的各个相 应的数据元素对执行向量操作的结果存储在目的地中进行掩码。掩码向量指令允许对与数 据元素单独地且独立地断言或有条件控制的每个数据元素或相应的数据元素对进行向量 处理。掩码向量指令、操作和掩码可提供某些优点,诸如增加的代码密度和/或更高的指令 吞吐量。 图1是指令处理装置115的实施例的框图,该指令处理装置具有执行单元140,该 执行单元包括能用于执行指令(包括本申请中描述的掩码产生指令)的电路。在一些实施 例中,指令处理装置115可以是处理器、多核处理器的处理器核、或者电子系统中的处理元 件。 解码器130接收高级机器指令或宏指令形式的传入指令,并且解码所述指令以生 成低级微操作、微代码进入点、微指令或其它低级指令或控制信号,它们反映了原始的高级 指令和/或从原始的高级指令导出。低级指令或控制信号可通过低级(例如,电路级或硬 件级)操作来实现高级指令的操作。可使用各种不同的机制来实现解码器130。合适机制 的示例包括但不限于,微代码、查找表、硬件实现、可编程逻辑阵列(PLA)、用于实现本领域 已知的解码器的其它机制等。 解码器130可接收针对高速缓存110、存储器120或其它源的传入指令。经解码的 指令被发送到执行单元140。执行单元140可从解码器130接收一个或多个微操作、微代码 进入点、微指令、其它指令或其它控制信号,它们反映了所接收的指令或者是从所接收的指 令导出的。执行单元140从寄存器组170、高速缓存110和/或存储器120接收数据输入并 向它们生成数据输出。 在一个实施例中,寄存器组170包括架构寄存器,架构寄存器也被称为寄存器。短 语"架构寄存器"、"寄存器组"、以及"寄存器"在本文中用于表示对软件和/或编程器可见 (例如,软件可见的)和/或由宏指令指定来标识操作数的寄存器,除非另外予以规定或清 楚明显可知。这些寄存器不同于给定微架构中的其它非架构式寄存器(例如,临时寄存器、 重排序缓冲器、引退寄存器等)。 或者,在一个或多个其它实施例中,并非具有解码器130,指令处理装置115可替 代地具有指令仿真器、转换器、变形器(morpher)、解释器或者其他指令变换逻辑。各种不 同类型的指令变换逻辑在本领域中是已知的,并且可在软件、硬件、固件、或者其组合中实 现。指令变换逻辑可接收多个掩码产生指令中的一个或多个,并且仿真、转换、变形、解本文档来自技高网...
【技术保护点】
一种装置,包括:多个向量寄存器,所述多个向量寄存器中的一个向量寄存器存储数组的数据元素;以及执行电路,耦合至所述多个向量寄存器,所述执行电路用于:接收掩码产生指令,所述掩码产生指令至少指定第一操作数和第二操作数,以及响应于所述掩码产生指令,将所述第一操作数的位向左移动所述第二操作数中定义的次数,并且每当所述第一操作数的最高有效位被移出时拉入最低有效位1,由此产生包含多个位的结果,其中所述结果中的每个位对应于所述数组中的所述数据元素中的一个数据元素。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:M·普罗特尼科夫,I·厄莫拉夫,A·纳赖金,R·凡伦天,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。