CN107851016B - 向量算术指令 - Google Patents

向量算术指令 Download PDF

Info

Publication number
CN107851016B
CN107851016B CN201680043340.XA CN201680043340A CN107851016B CN 107851016 B CN107851016 B CN 107851016B CN 201680043340 A CN201680043340 A CN 201680043340A CN 107851016 B CN107851016 B CN 107851016B
Authority
CN
China
Prior art keywords
vector
source operand
elements
bit size
size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680043340.XA
Other languages
English (en)
Other versions
CN107851016A (zh
Inventor
奈杰尔·约翰·斯蒂芬斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd filed Critical ARM Ltd
Publication of CN107851016A publication Critical patent/CN107851016A/zh
Application granted granted Critical
Publication of CN107851016B publication Critical patent/CN107851016B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision

Abstract

数据处理系统(2)支持对包括多个向量操作数元素的向量操作数执行的向量处理操作。该数据处理系统包括具有指令解码器(14)的处理器(4),该指令解码器对混合元素大小的向量算术指令进行解码以生成控制信号(16),这些控制信号控制处理电路(18)对具有第一位大小A的第一源操作数元素ai的第一向量、和具有第二位大小B的第二源操作数元素bj的第二向量执行算术操作。该第二位大小B大于该第一位大小A。

Description

向量算术指令
技术领域
本公开涉及数据处理系统的领域。更具体地,本公开涉及支持向量算术指令的数据处理系统。
背景技术
已知提供了支持具有用作相应输入操作数的多个向量元素的向量算术指令的数据处理系统。向量算术指令可采用两个这种向量输入操作数,并且对来自两个向量操作数内的相应的向量元素对执行由该指令指定的算术操作。向量处理促进并行计算。
发明内容
本公开的至少一些实施例提供一种用于处理数据的装置,其包括:
处理电路,用于执行处理操作;以及解码器电路,用于对程序指令进行解码,以生成控制信号来控制该处理电路执行该处理操作;其中
该解码器电路响应于至少一个混合元素大小的向量算术指令,以生成控制信号来控制该处理电路对具有第一位大小的第一源操作数元素的第一向量和具有第二位大小的第二源操作数元素的第二向量执行算术处理操作,该第二位大小大于该第一位大小。
本公开的至少一些实施例提供了一种用于处理数据的装置,包括:
处理装置,用于执行处理操作;以及解码器装置,用于对程序指令进行解码,以生成控制信号来控制该处理电路执行该处理操作;其中
该解码器装置响应于至少一个混合元素大小的向量算术指令,以生成控制信号来控制该处理装置对具有第一位大小的第一源操作数元素的第一向量和具有第二位大小的第二源操作数元素的第二向量执行算术处理操作,该第二位大小大于该第一位大小。
本公开的至少一些实施例提供了一种处理数据的方法,包括:
对至少一个混合元素大小的向量算术指令进行解码,以生成控制信号来控制处理电路对具有第一位大小的第一源操作数元素的第一向量和具有第二位大小的第二源操作数元素的第二向量执行算术处理操作,该第二位大小大于该第一位大小。
附图说明
现在将参考附图仅通过示例的方式来描述实施例,其中:
图1示意性地示出了支持向量算术指令的数据处理系统;
图2示意性地示出了混合元素大小的向量算术指令的操作和语法;
图3示意性地示出算术指令的目的操作数中的给定位如何取决于从不同位位置取得的输入操作数位;以及
图4是示意性地示出混合元素大小的向量算术指令的用途的流程图;以及
图5示意地示出虚拟机实现方式。
具体实施方式
图1示意性地示出包括耦接到存储器6的处理器4的数据处理系统2。存储器6存储将被操纵的数据值8和指定将由处理器4执行的数据处理操作的程序指令10。程序指令10由指令提取单元12取出并传递到解码器电路14。解码器电路14生成控制信号16,该控制信号16用于控制处理器4内的处理电路18、20、22、24以执行由经解码的指令指定的处理操作。
处理器4支持向量操作和标量操作两者。作用于存储在向量寄存器文件22内的向量操作数的向量处理电路18,用于执行向量处理操作。作用于存储在标量寄存器文件24内的标量操作数值的标量处理电路20,用于执行标量处理操作。应当理解,向量处理操作可采取各种不同的形式。例如,SIMD(单指令多数据)处理操作是向量处理操作的一种形式。更一般地,对一起形成向量操作数的多个向量元素执行向量处理操作。
常规整数算术指令中的源操作数和目的操作数的向量元素相匹配。例如,长度为256位的向量操作数可由每个具有16位长度的16个向量元素形成。对单独向量元素执行的处理操作通常将至少部分地并行执行,但情况并非总是如此。利用包括单个值的输入操作数执行标量处理操作,例如,可对两个64位标量输入操作数执行64位标量处理操作,并且生成64位标量输出操作数。
根据本公开形成了向量处理电路18,以支持在控制信号16的控制下执行的至少一个混合元素大小的向量算术指令,当混合元素大小的向量算术指令被取出、解码并执行时,解码器电路14生成该控制信号16。
图2示意性地示出了混合元素大小的向量算术指令的操作和汇编语法。混合元素大小的向量算术指令对第一源操作数元素ai的第一向量执行算术处理操作(诸如,逻辑移位、除法或比较)。在这个示例中,存在16个第一源操作数元素a0-a15。这些第一源操作数元素ai中的每一个具有位大小A。在这个示例中,将16个第一源操作数元素ai布置成4个不相交子集a0-a3、a4-a7、a8-a11和a12-a15。混合元素大小的向量算术指令具有第二源操作数元素bi的第二向量。在这个示例中,第二源操作数元素的第二向量由4个第二源操作数元素(即,第二源操作数元素b0-b3)形成,每一个具有位大小B。
虽然在这个示例的实施例中存在16个第一源操作数元素和4个第二源操作数元素,但更一般地可以存在N个第一源操作数元素和M个第二源操作数元素。第二源操作数元素具有比第一源操作数元素位大小A大的位大小B。在示例中,在存在数量为第二源操作数元素的四倍的第一源操作数元素的情况下,第二源操作数元素的位大小B比第一源操作数元素的位大小A的比率可以是4:1。这与第一源操作数元素的数目N比第二源操作数元素的数目M的比率相同。
在这个示例的实施例中,第一源操作数元素的每个不相交的子集经历算术处理操作,其中第二源操作数元素中的相应一个是第二操作数输入。更具体地,第一源操作数元素a1-a3经历算术处理操作,其中第二源操作数元素b0是该算术处理操作的第二输入。例如,第一源操作数元素a0-a3中的每一个可以分别经历移位量由第二源操作数元素b0指定的逻辑右移。所得的输出操作数具有与第一源操作数元素相同的位大小A。可对混合元素大小的向量算术指令执行其它示例的算术处理操作,例如,第一源操作数元素ai除以相应的第二源操作数元素bj,或第一源操作数元素ai经历与相应的第二源操作数元素bj的比较(减法)。
在图2的底部示出了混合元素大小的向量算术指令的一个示例的语法。诸如逻辑移位、除法或比较的算术处理操作由诸如LSR、DIV或CMP的简字符号指定。指令随后指定第一源操作数元素的元素大小,即它们为字节B、半字H、字W还是双字D。在64位双字D的情况下,512位向量操作数将包含8个此类双字。这种情况下的第二源操作数元素可以是例如128位向量元素,其中双字第一源操作数元素中的两个与128位第二源操作数元素中的每一个相关联。应当理解,取决于执行的特定指令集或处理的实现方式和要求,可采用许多其它不同的总向量大小和向量元素大小。
混合元素大小的向量算术指令的语法通过指定目的向量寄存器ZD和其元素位大小A而继续。然后,指定第一源操作数的向量寄存器即Zs1和其元素位大小A。最后,指定第二源操作数的向量寄存器ZS2和其元素位大小B。这是具有两个输入操作数和一个输出操作数的混合元素大小的向量算术指令的示例。在比较指令的情况下,可指定两个输入操作数,其中结果被写入判定寄存器PD,该判定寄存器PD包含对应于将ZS1中的每个元素与ZS2中的较宽元素进行比较(减法)的结果的“真”或“假”结果。
在混合元素大小的向量移位指令LSR的情况下,处理操作是将第一源操作数元素移位由相应的第二源操作数元素指定的移位量的移位操作。在混合元素大小的向量算术指令是除法指令的情况下,算术处理操作是将第一源操作数元素除以由相应的第二源操作数元素指定的除数的除法操作。在混合元素大小的向量算术指令是比较指令的情况下,算术处理操作是将第一源操作数元素与相应的第二源操作数元素进行比较的比较操作。
如上所述,第一源操作数元素的元素位大小由元素大小字段“x”指定,其指定第一源操作数元素是具有8位、16位、32位还是64位的大小。在一些示例的实施例中,第二源操作数元素可具有由混合元素大小的指令内的字段指定的位大小。然而,在其它示例的实施例中,诸如图2中所示的实施例中,第二源操作数元素可具有固定大小,诸如64位或128位。第一源操作数元素的位大小小于第二源元素的位大小。如果第二源操作数元素具有64的位大小,则第一源操作数元素将具有8、16或32之一的位大小。
图3示意性地示出了算术指令如何操作,使得取决于相应的第一操作数元素28和第二源操作数元素30中的至少一个内的具有不同位有效性的一个或多个位值而设置目的操作数元素内的位值26。在第一源操作数元素Ai右移由第二源操作数元素Bj指定的右移量的情况下,目的操作数Di中的各自的位位置26取决于第一源操作数元素28内具有较高阶有效性的相应位29、和指定将施加的右移量的第二源操作数30内的所有位31。
本公开教导了其中支持混合元素大小的向量算术指令的系统。这与本领域的正常技术偏见相反。通常,算术指令的所有源操作数都具有共同元素大小。本公开认识到,在某些情况下,混合元素大小的向量算术指令的提供,提供了证明此类指令在由处理器4支持并由解码器电路14解码的指令集内消耗的指令位空间的优点。当并行执行程序循环的多个操作并且该程序循环具有标量值操作数时,可使用混合元素大小的向量算术指令以存储不与第一源操作数元素共享相同的位大小的标量操作数的副本,以用于循环的相应操作。在实际层面,混合元素大小的向量算术指令的提供可以避免在每次循环迭代时将来自标量寄存器文件24的标量操作数复制到向量处理电路18的需要,与向量处理电路18访问与其更直接耦接的向量寄存器文件22相比,这可以是比较慢的过程。因此,例如,本公开提供的混合元素大小的向量算术指令的一个用途,是将来自标量寄存器文件24的包含比第一源向量元素更有效的位的标量操作数值复制到第二向量操作数内的较宽的第二源操作数元素中的每一个。随后第二向量可以用作对混合元素大小的向量算术指令的向量操作数输入中的一个,该混合元素大小的向量算术指令使用标量操作数已复制到的较宽的第二源操作数元素来对多个第一源向量操作数元素进行操作。
图4是示意性地示出上述类型的操作的一个示例的流程图。在步骤32处,将来自标量寄存器Xi的64位值直接复制到向量操作数ZS2的所有向量寄存器元件。随后,步骤34将来自向量寄存器元件的该64位值复制到已经在第二向量的所有其它向量寄存器元件上复制的内容。在步骤36处,进入将执行的处理循环。步骤38对第一输入向量ZS1和第二输入向量Zs2执行混合元素大小的向量算术指令以生成输出向量ZD。在此阶段,标量寄存器的多个副本存在于第二向量的适当元素内,并因此在处理进行时不需要从标量寄存器文件24移动到向量寄存器文件22。在步骤40处,退出执行的循环。
应当理解,以上仅是混合元素大小的向量算术指令的一个示例用途。在图2的示例中,在第一源操作数元素ai与第二源操作数元素bj之间存在多对一的关系,即不相交的子集排列,由此第一源操作数元素的每个不相交子集具有单个相关联的第二源操作数元素。应当理解,在一些实施例中,不需要提供第一源操作数元素的除法和与第二源操作数元素的关联。上面的示例讨论了移位操作、除法操作和比较操作形式的算术处理操作。应当理解,也可支持其它形式的算术操作。算术操作所作用的操作数可以是二进制数值,其中每个位具有不同的位置有效性,使得第一源操作数元素包含二进制数值,第二源操作数元素包含二进制数值,并且目的操作数元素包含目的操作数二进制数值。以此方式,对二进制数值整体执行处理操作,而不是独立于不同位置处的其它位执行独立逐位操作(诸如OR、XOR或AND)。
图5示出可使用的虚拟机实现。尽管前文描述的实施例根据操作支持相关技术的特定处理硬件的设备和方法方面而实现了本发明,但还可以提供所谓的硬件设备的虚拟机实现方式。这些虚拟机实现方式在运行支持虚拟机程序510的主机操作系统520的主机处理系统530上运行。通常,需要大型强大的处理器来提供以合理速度执行的虚拟机实现方式,但在某些情况下该种方法可以是合理的,诸如当期望为了兼容性或重用原因而运行另一处理器本地的代码时。虚拟机程序510向应用程序500提供应用程序接口,其与将由实际硬件提供的应用程序接口相同,该实际硬件是由虚拟机程序510建模的设备。因此,可以使用虚拟机程序510从应用程序500内执行包括上述存储器访问的控制的程序指令以便对它们与虚拟机硬件的交互进行建模。
尽管本文已参照附图详细描述了发明的说明性实施例,但应当理解,发明并不限定于这种精确实施例,并且在不背离本发明的范围和精神的情况下,本领域技术人员可以在对其进行各种改变、增加和修改。例如,在不背离本发明的范围和精神的情况下,独立权利要求的特征可以与从属权利要求的特征进行各种组合。

Claims (17)

1.用于处理数据的装置,包括:
处理电路,用于执行处理操作;以及
解码器电路,用于对程序指令进行解码,以生成控制信号来控制所述处理电路执行所述处理操作;其中
所述解码器电路响应于至少一个混合元素大小的向量算术指令,生成所述控制信号来控制所述处理电路对均具有第一位大小的N个第一源操作数元素的第一向量和均具有第二位大小的M个第二源操作数元素的第二向量执行算术处理操作,所述第二位大小大于所述第一位大小,所述算术处理操作是生成均具有所述第一位大小的N个目的元素的目的向量的操作;
其中,N和M是正整数值,N大于M,并且所述第二源操作数元素中的至少一个用作对所述算术处理操作的输入操作数,该算术处理操作使用多个不同的第一源操作数元素作为相应的另一输入操作数来执行;
其中N是X*M,其中,X是大于1的整数,并且每个所述第二源操作数元素用作算术操作的输入操作数,所述算术操作对所述第一源操作数元素的X的相应的不相交子集执行。
2.如权利要求1所述的装置,其中,所述第二位大小是所述第一位大小的X倍。
3.如权利要求1和2中任一项所述的装置,其中,第一源操作数元素具有序列排序,使得所述相应的不相交子集包括所述序列排序内的X个相邻的第一源操作数。
4.如权利要求1和2中任一项所述的装置,其中,所述至少一个混合元素大小的向量算术指令具有目的操作数元素的向量,在给定的目的操作数元素内的给定位置有效性的位值取决于相应的第一源操作数元素和相应的第二源操作数元素中的至少一个内的具有不同位置有效性的一个或多个位值。
5.如权利要求4所述的装置,其中,所述第一源操作数元素是二进制数值,所述第二源操作数元素是二进制数值,并且所述目的操作数元素是目的操作数二进制数值。
6.如权利要求4所述的装置,其中,目的操作数元素的所述向量具有等于所述第一位大小的目的位大小。
7.如权利要求1和2中任一项所述的装置,其中,所述至少一个混合元素大小的向量算术指令包括混合元素大小的向量移位指令,并且所述算术处理操作是将所述第一源操作数元素移位由相应的第二源操作数元素指定的移位量的移位操作。
8.如权利要求1和2中任一项所述的装置,其中,所述至少一个混合元素大小的向量算术指令包括混合元素大小的向量除法指令,并且所述算术处理操作是将所述第一源操作数元素除以由相应的第二源操作数元素指定的除数的除法操作。
9.如权利要求1和2中任一项所述的装置,其中,所述至少一个混合元素大小的向量算术指令包括混合元素大小的向量比较指令,并且所述算术处理操作是将所述第一源操作数元素与相应的第二源操作数元素进行比较的比较操作。
10.如权利要求9所述的装置,其中,所述混合元素大小的向量比较指令具有指示所述第一向量和所述第二向量的相应元素之间的比较结果的目的操作数元素的向量。
11.如权利要求1和2中任一项所述的装置,其中,根据所述至少一个混合元素大小的向量算术指令内的元素大小字段来选择所述第一位大小。
12.如权利要求11所述的装置,其中,所述第一位大小被选择为8位、16位和32位中的一个。
13.如权利要求1和2中任一项所述的装置,其中,所述第二位大小是固定的。
14.如权利要求1和2中任一项所述的装置,其中,所述第二位大小是64位。
15.一种用于处理数据的装置,包括:
处理装置,用于执行处理操作;以及
解码器装置,用于对程序指令进行解码,以生成控制信号来控制处理电路执行所述处理操作;其中
所述解码器装置响应于至少一个混合元素大小的向量算术指令,生成控制信号来控制所述处理装置对均具有第一位大小的N个第一源操作数元素的第一向量和均具有第二位大小的M个第二源操作数元素的第二向量执行算术处理操作,所述第二位大小大于所述第一位大小,所述算术处理操作是生成均具有所述第一位大小的N个目的元素的目的向量的操作;
其中,N和M是正整数值,N大于M,并且所述第二源操作数元素中的至少一个用作对所述算术处理操作的输入操作数,该算术处理操作使用多个不同的第一源操作数元素作为相应的另一输入操作数来执行;
其中N是X*M,其中,X是大于1的整数,并且每个所述第二源操作数元素用作算术操作的输入操作数,所述算术操作对所述第一源操作数元素的X的相应的不相交子集执行。
16.一种处理数据的方法,包括:
对至少一个混合元素大小的向量算术指令进行解码,以生成控制信号来控制处理电路对均具有第一位大小的N个第一源操作数元素的第一向量和均具有第二位大小的M个第二源操作数元素的第二向量执行算术处理操作,所述第二位大小大于所述第一位大小,所述算术处理操作是生成均具有所述第一位大小的N个目的元素的目的向量的操作;
其中,N和M是正整数值,N大于M,并且所述第二源操作数元素中的至少一个用作对所述算术处理操作的输入操作数,该算术处理操作使用多个不同的第一源操作数元素作为相应的另一输入操作数来执行,其中N是X*M,其中,X是大于1的整数,并且每个所述第二源操作数元素用作算术操作的输入操作数,所述算术操作对所述第一源操作数元素的X的相应的不相交子集执行。
17.一种非暂态计算机可读存储介质,其上存储有指令,当所述指令在计算机系统处被执行时,使所述计算机系统提供对应于如权利要求1至14中任一项所述的装置的虚拟机执行环境。
CN201680043340.XA 2015-07-31 2016-06-23 向量算术指令 Active CN107851016B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1513511.4 2015-07-31
GB1513511.4A GB2540943B (en) 2015-07-31 2015-07-31 Vector arithmetic instruction
PCT/GB2016/051868 WO2017021681A1 (en) 2015-07-31 2016-06-23 Vector arithmethic instruction

Publications (2)

Publication Number Publication Date
CN107851016A CN107851016A (zh) 2018-03-27
CN107851016B true CN107851016B (zh) 2022-05-17

Family

ID=54062956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680043340.XA Active CN107851016B (zh) 2015-07-31 2016-06-23 向量算术指令

Country Status (9)

Country Link
US (1) US11003447B2 (zh)
EP (1) EP3329363B1 (zh)
JP (1) JP7071913B2 (zh)
KR (1) KR102584001B1 (zh)
CN (1) CN107851016B (zh)
GB (1) GB2540943B (zh)
IL (1) IL256663B (zh)
TW (1) TWI739754B (zh)
WO (1) WO2017021681A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651203B (zh) * 2016-04-26 2024-05-07 中科寒武纪科技股份有限公司 一种用于执行向量四则运算的装置和方法
EP3428792B1 (en) * 2017-07-10 2022-05-04 Arm Ltd Testing bit values inside vector elements
JP6604393B2 (ja) * 2018-03-08 2019-11-13 日本電気株式会社 ベクトルプロセッサ、演算実行方法、プログラム
US20210389948A1 (en) * 2020-06-10 2021-12-16 Arm Limited Mixed-element-size instruction

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303501A (zh) * 1998-05-27 2001-07-11 Arm有限公司 混合向量/标量寄存器文件
CN104281437A (zh) * 2013-07-08 2015-01-14 Arm有限公司 具有单指令多数据处理电路的数据处理装置
CN104813277A (zh) * 2012-12-19 2015-07-29 英特尔公司 用于处理器的功率效率的向量掩码驱动时钟门控

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408320B1 (en) * 1998-01-27 2002-06-18 Texas Instruments Incorporated Instruction set architecture with versatile adder carry control
GB2409068A (en) * 2003-12-09 2005-06-15 Advanced Risc Mach Ltd Data element size control within parallel lanes of processing
US8082419B2 (en) * 2004-03-30 2011-12-20 Intel Corporation Residual addition for video software techniques
ATE493703T1 (de) * 2004-11-03 2011-01-15 Koninkl Philips Electronics Nv Programmierbare datenverarbeitungsschaltung, die simd-befehle unterstützt
US20080091924A1 (en) * 2006-10-13 2008-04-17 Jouppi Norman P Vector processor and system for vector processing
GB2464292A (en) * 2008-10-08 2010-04-14 Advanced Risc Mach Ltd SIMD processor circuit for performing iterative SIMD multiply-accumulate operations
GB2474901B (en) * 2009-10-30 2015-01-07 Advanced Risc Mach Ltd Apparatus and method for performing multiply-accumulate operations
JP5699554B2 (ja) * 2010-11-11 2015-04-15 富士通株式会社 ベクトル処理回路、命令発行制御方法、及びプロセッサシステム
GB2488985A (en) * 2011-03-08 2012-09-19 Advanced Risc Mach Ltd Mixed size data processing operation with integrated operand conversion instructions
CN103999037B (zh) 2011-12-23 2020-03-06 英特尔公司 用于响应于单个指令来执行横向相加或相减的系统、装置和方法
US20140089634A1 (en) 2011-12-23 2014-03-27 Victor W. Lee Apparatus and method for detecting identical elements within a vector register
WO2013095607A1 (en) 2011-12-23 2013-06-27 Intel Corporation Instruction execution unit that broadcasts data values at different levels of granularity
US20140195783A1 (en) * 2011-12-29 2014-07-10 Krishnan Karthikeyan Dot product processors, methods, systems, and instructions
US9323524B2 (en) * 2013-09-16 2016-04-26 Oracle International Corporation Shift instruction with per-element shift counts and full-width sources
US9552205B2 (en) * 2013-09-27 2017-01-24 Intel Corporation Vector indexed memory access plus arithmetic and/or logical operation processors, methods, systems, and instructions
US10489155B2 (en) * 2015-07-21 2019-11-26 Qualcomm Incorporated Mixed-width SIMD operations using even/odd register pairs for wide data elements
US10146535B2 (en) * 2016-10-20 2018-12-04 Intel Corporatoin Systems, apparatuses, and methods for chained fused multiply add

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303501A (zh) * 1998-05-27 2001-07-11 Arm有限公司 混合向量/标量寄存器文件
CN104813277A (zh) * 2012-12-19 2015-07-29 英特尔公司 用于处理器的功率效率的向量掩码驱动时钟门控
CN104281437A (zh) * 2013-07-08 2015-01-14 Arm有限公司 具有单指令多数据处理电路的数据处理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种针对多媒体扩展指令集和实际多媒体程序的自动向量化方法;姜伟华等;《计算机学报》;20050831;第28卷(第8期);第1255-1266页 *

Also Published As

Publication number Publication date
WO2017021681A1 (en) 2017-02-09
KR20180035211A (ko) 2018-04-05
TWI739754B (zh) 2021-09-21
IL256663B (en) 2020-02-27
US20180203692A1 (en) 2018-07-19
EP3329363A1 (en) 2018-06-06
US11003447B2 (en) 2021-05-11
TW201721409A (zh) 2017-06-16
GB201513511D0 (en) 2015-09-16
GB2540943A (en) 2017-02-08
KR102584001B1 (ko) 2023-10-04
IL256663A (en) 2018-02-28
JP7071913B2 (ja) 2022-05-19
EP3329363B1 (en) 2020-10-14
CN107851016A (zh) 2018-03-27
JP2018521423A (ja) 2018-08-02
GB2540943B (en) 2018-04-11

Similar Documents

Publication Publication Date Title
US20160179523A1 (en) Apparatus and method for vector broadcast and xorand logical instruction
US9600282B2 (en) Endian-mode-independent memory access in a bi-endian-mode processor architecture
JP6466388B2 (ja) 方法及び装置
CN107918546B (zh) 利用经掩码的全寄存器访问实现部分寄存器访问的处理器、方法和系统
US20140129802A1 (en) Methods, apparatus, and instructions for processing vector data
US9268626B2 (en) Apparatus and method for vectorization with speculation support
US20160011873A1 (en) Instruction for implementing vector loops of iterations having an iteration dependent condition
CN106030514B (zh) 用于执行采用传播的被屏蔽源元素存储指令的处理器及其方法
CN113791820B (zh) 位矩阵乘法
CN103562854A (zh) 用于对齐寄存器的系统、装置和方法
CN107851016B (zh) 向量算术指令
US20160328233A1 (en) Packed finite impulse response (fir) filter processors, methods, systems, and instructions
EP3238091B1 (en) Fast vector dynamic memory conflict detection
CN108292228B (zh) 用于基于通道的步进收集的系统、设备和方法
EP3394725B1 (en) Adjoining data element pairwise swap processors, methods, systems, and instructions
JP5732139B2 (ja) データ要素の条件付き選択
US9207942B2 (en) Systems, apparatuses,and methods for zeroing of bits in a data element
US20160283242A1 (en) Apparatus and method for vector horizontal logical instruction

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant