CN101689105A - 运用平凡算术运算的处理器 - Google Patents

运用平凡算术运算的处理器 Download PDF

Info

Publication number
CN101689105A
CN101689105A CN200880016140A CN200880016140A CN101689105A CN 101689105 A CN101689105 A CN 101689105A CN 200880016140 A CN200880016140 A CN 200880016140A CN 200880016140 A CN200880016140 A CN 200880016140A CN 101689105 A CN101689105 A CN 101689105A
Authority
CN
China
Prior art keywords
data
processor
register
trivial operand
trivial
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.)
Pending
Application number
CN200880016140A
Other languages
English (en)
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.)
Linear Algebra Technologies Ltd
Original Assignee
Linear Algebra Technologies 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 Linear Algebra Technologies Ltd filed Critical Linear Algebra Technologies Ltd
Publication of CN101689105A publication Critical patent/CN101689105A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • G06F7/537Reduction of the number of iteration steps or stages, e.g. using the Sweeny-Robertson-Tocher [SRT] algorithm
    • 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
    • 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
    • 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
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format

Abstract

本申请涉及处理器领域,尤其涉及算术运算的执行。许多由处理器执行的计算由大量简单运算组成。结果,乘法运算可能需要相当多的时钟周期来完成。本申请提供了一种具有平凡操作数寄存器的处理器,其中在执行存储在数据存储器中的数据值的算术运算或存储运算时,使用平凡操作数寄存器。

Description

运用平凡算术运算的处理器
技术领域
本发明涉及处理器领域,尤其涉及算术运算的执行。
背景技术
许多由处理器执行的计算由大量简单运算组成。结果,乘法运算可能需要相当多的时钟周期来完成。
尽管此运算对于复杂计算而言是合理的,但对平凡运算不能这么说,例如,一个数与0、+1或-1相乘可以以简单得多的方式得到答案。
在涉及稀疏矩阵的某些应用中,由于存在相当多的零,所执行的平凡运算的数目可能相当可观。稀疏矩阵中的零的数目可通过以诸如压缩行存储(CRS)格式的稀疏格式存储矩阵来减少或消除;然而,由于地址生成方面的开销,这样的存储格式在商用计算机系统上常常导致很差的性能。
US5,262,973(Richardson等人)公开了一种减少其中运算是平凡运算的计算时间的方法。具体地,该方法同时执行至少两个运算。第一个运算是常规的复数算术运算,第二个和更多的运算是通过操作数检查机制执行的,操作数检查机制确定操作数中的一个或全部两个是否是平凡操作数的具体实例。如果操作数之一是平凡操作数的具体实例,则复数算术运算被停止,并且该检查机制根据检测到的平凡操作数迅速输出算术运算的结果。因此,避免了对平凡操作数执行复数算术运算的需要。然而,该方法并未消除复数运算,而只是在确定了运算实际上是平凡运算的情况下停止复数运算。
发明内容
第一实施例提供了一种处理器,其包括:数据存储器,用于存储数据值;平凡操作数寄存器,平凡操作数寄存器用于为数据存储器中的每个数据值存储至少一个标记,该至少一个标记表示每个存储的数据值是否是平凡操作数,其中该处理器被配置成在执行指令时采用平凡操作数寄存器。该处理器可包括计算部件,计算部件在执行涉及来自数据存储器的至少一个数据值的运算时采用平凡操作数寄存器。适当地,计算部件可包括控制逻辑单元,控制逻辑单元用于检查平凡操作数寄存器和控制计算单元的操作。该处理器还可包括被配置成执行比较以确定连至数据存储器的输入线上是否存在平凡操作数的比较器。数据存储器可以以寄存器堆提供。该处理器还可包括多个比较器,每个比较器确定寄存器堆的对应写端口处的数据是否包括平凡操作数。适当地,数据值是浮点值。数据存储器可包括32位、64位或128位寄存器。平凡操作数可包括0、-1或+1。有利地,平凡操作数唯一地是0值。
适当地,所执行的指令包括浮点计算。可提供控制逻辑单元用于检查平凡操作数寄存器和控制浮点计算单元的操作。控制逻辑单元可被配置成在计算涉及平凡操作数的情况下绕开浮点计算单元并直接提供结果。该结果可通过为待存储该结果的寄存器设定平凡操作数寄存器标记来直接提供。任选地,所执行的指令包括数据存储指令。该处理器还可包括被配置成执行对应于向量或矩阵数据的多个非零模式之间的比较的比较器。
在另一个实施例中,提供了一种对处理器中的第一数据寄存器执行运算的方法,该处理器具有表示第一数据寄存器中是否存在平凡操作数的平凡操作数寄存器,该方法包括以下步骤:在执行涉及所述第一数据寄存器的指令时采用平凡操作数寄存器中的标记。
适当地,该方法包括以下初始步骤:将数据写入第一数据寄存器;执行数据的比较以确定数据中是否存在平凡操作数;并响应于该比较而在平凡操作数寄存器内设定标记。写入数据和执行比较的步骤可基本上同时执行。第一数据寄存器可以是浮点数据寄存器。任选地,提供多个单独的数据寄存器,每个单独的数据寄存器在平凡操作数寄存器中具有相关联的标记。该多个单独的数据寄存器可以以寄存器堆提供。任选地,指令是计算,并且在控制该处理器中的计算单元的操作时采用平凡操作数寄存器。平凡操作数可包括0、-1或1。在一种布置中,平凡操作数唯一地是0值。该方法可包括在计算涉及平凡操作数的情况下绕开计算单元并直接提供结果。在这种情况下,该结果可通过为待存储该结果的寄存器设定平凡操作数寄存器标记来直接提供。任选地,所执行的指令包括数据存储指令。
附图说明
现在将参照附图描述本发明,在附图中:
图1是根据本发明的示例实施例的处理器的示意图。
图2是根据本发明的示例实施例的方法的流程图。
具体实施方式
本申请采用平凡操作数标记来标识数据存储器内包含的数据是否可认为是平凡操作数。取决于个体处理器架构,数据存储器可采取任何种类的存储单元的形式。尽管如此,为了便于说明,将关于寄存器和/或寄存器堆描述下面的例子。然而,并非意在使本申请局限于或限制于这些具体类型的数据存储器。标记的内容是通过将浮点值与已知的平凡值相比较、或者通过从存储器中加载先前比较的结果(它们连同源矩阵/向量数据一起存储在存储器中)来生成的。应认识到,在本申请的背景下,平凡操作数是不需要复杂的计算处理来确定结果的操作数,例如,其中操作数之一是0的两个32位浮点位操作数的乘法不需要完全32位乘法处理来确定结果是0。平凡操作数包括1、-1和0。
等于2的整数倍的操作数也可认为是平凡操作数,因为至少在整数运算中,对于除法或乘法仅涉及简单的移位处理。应认识到,平凡操作数的数目越多,所需的实施复杂度就越高。因而,用于平凡操作数的标记优选地局限于标识操作数是否是1、-1或0。
在某些应用中,涉及0的运算的数目是可观的。这种应用的一个例子是稀疏矩阵的领域,其可能在游戏物理学应用或搜索引擎中用到;在计算速度的潜在节省和功率需求的降低以及相关联的减少发热的益处方面,为每个数据寄存器设置表示该数据寄存器中存储的值是否为0的单个标记的优点将是显著的。当重复使用源矩阵时,节省尤其大,例如,谷歌的搜索矩阵是n×n稀疏连接矩阵,其中n约等于30亿且每列有6至7个非零条目。谷歌的矩阵每周更新一次,并且每年365天每天24小时每秒钟被查询上千次。
现在将描述用于这种稀疏矩阵应用(其中平凡操作数被有利地确定为0)的示例实施方式。如图1所示,该示例实施方式提供了单精度32位数据寄存器应用,尽管如此,应认识到,图2所示的示例方法亦可应用于包括双精度和更高精度的其它配置。
示例处理器具有寄存器堆,寄存器堆中包含寄存器阵列。在所示的示例布置中,有四个32位寄存器。寄存器堆可以以具有多个端口的快速静态RAM来实现。适当地,寄存器堆被布置成具有专用的读和写端口而不是通过同一端口读和写。虽然采用寄存器堆是有利的,但也可不太有利地采用多个单独的触发器、高速核心存储器、薄膜存储器和其它存储器技术来实现寄存器。
如其它处理器那样,去往寄存器堆的数据可在计算之后从(浮点)计算部件加载,类似地,来自寄存器堆的数据可提供给计算部件用于计算。
每个连至寄存器堆的写端口具有32根数据线。在单精度浮点数的情况下,第一位是符号位,随后是指数的8位和尾数的23位。必须比较31根数据线(无需比较符号位)以确定该寄存器的尾数的值是否为0。比较器的单个位输出被写入平凡操作数寄存器内的对应位。比较器的输出的写入由连至寄存器堆的寄存器的写入线来控制。尽管图2图示了数据的加载是先发生的,但应认识到比较和加载可同时发生。而且,在平凡操作数数据与数据本身一起存储在存储器中的情况下,可不需要比较,因为可直接加载平凡操作数寄存器值。
这种布置的一个优点是不需要额外的时钟周期来执行比较,因为比较是与寄存器堆写入并行地“免费”完成的。
可采用平凡操作数寄存器的内容来控制浮点单元的操作以便节省功率和/或减少计算等待时间。在这种布置中,可提供控制逻辑来从与浮点运算的输入操作数用的寄存器对应的平凡操作数寄存器中读取多个位。然后,可根据下表生成控制浮点算符的执行所需的控制信号。除了在浮点数据的压缩/解压缩中使用它们以外,亦可使用MCB位图寄存器内容。
Figure G2008800161400D00041
Figure G2008800161400D00051
在实践中,所提出的方案可容易地扩展至任意数目的寄存器堆写端口和具有任意数目的条目的寄存器堆。
此控制逻辑具有用简单逻辑函数代替功耗大的浮点运算的作用,该简单逻辑函数在单个周期内执行,而完全浮点运算的情况需要几个流水线周期。与常规处理器相比,这既增大了所提出的处理器的有效FLOPS吞吐量,也降低了功率消耗。
在浮点运算的结果是零(0.0浮点值)的情况下,不需要执行浮点运算,而可通过适当的逻辑将与寄存器堆中的目的寄存器对应的平凡操作数位设定为零,亦即,在一些布置中,无需将结果写入寄存器堆。在这样的布置中,可以使处理器适于当写入来自寄存器堆的数据时采用平凡操作数寄存器的内容。
虽然本发明着眼于进行浮点计算,但平凡操作数寄存器亦可用于其它非计算目的,包括从寄存器堆和处理器通常到外部存储器的数据存储的加速、以及向量/矩阵非零模式之间的迅速比较测试(其作为计算量大的对矩阵逐条目进行比较的前导)。这样的应用记载于本申请的受让人所提交的共同未决的申请中。
本说明书中使用的词语“包括”意在指定所述特征、整体、步骤或部件的存在,但不排除一个或多个其它特征、整体、步骤或部件或它们的组合的存在或添加。

Claims (29)

1.一种处理器,包括:
数据存储器,用于存储数据值;
平凡操作数寄存器,所述平凡操作数寄存器用于为所述数据存储器中的每个数据值存储至少一个标记,所述至少一个标记表示每个存储的数据值是否是平凡操作数,
其中所述处理器被配置成在执行指令时采用所述平凡操作数寄存器。
2.根据权利要求1所述的处理器,其中所述处理器包括计算部件,所述计算部件在执行涉及来自所述数据存储器的至少一个数据值的运算时采用所述平凡操作数寄存器。
3.根据权利要求2所述的处理器,其中所述计算部件包括控制逻辑单元,所述控制逻辑单元用于检查所述平凡操作数寄存器和控制计算单元的操作。
4.根据任意一项前述权利要求所述的处理器,其中所述处理器还包括被配置成执行比较以确定连至所述数据存储器的输入线上是否存在平凡操作数的比较器。
5.根据权利要求1所述的处理器,其中所述数据存储器以寄存器堆提供。
6.根据权利要求5所述的处理器,其中所述处理器还包括多个比较器,每个比较器确定所述寄存器堆的对应写端口处的数据是否包括平凡操作数。
7.根据任意一项前述权利要求所述的处理器,其中所述数据值是浮点值。
8.根据权利要求7所述的处理器,其中所述比较器对写入线执行比较以确定是否存在平凡操作数。
9.根据权利要求8所述的处理器,其中所述数据存储器包括32位、64位或128位寄存器。
10.根据任意一项前述权利要求所述的处理器,其中所述平凡操作数包括0、-1或1。
11.根据权利要求1至10中的任意一项所述的处理器,其中所述平凡操作数唯一地是0值。
12.根据权利要求1至11中的任意一项所述的处理器,其中所执行的所述指令包括浮点计算。
13.根据权利要求12所述的处理器,其中提供控制逻辑单元用于检查所述平凡操作数寄存器和控制浮点计算单元的操作。
14.根据权利要求13所述的处理器,其中所述控制逻辑单元被配置成在所述计算涉及平凡操作数的情况下绕开所述浮点计算单元并直接提供结果。
15.根据权利要求14所述的处理器,其中所述结果是通过为待存储所述结果的寄存器设定所述平凡操作数寄存器标记来直接提供的。
16.根据权利要求1至11中的任意一项所述的处理器,其中所执行的所述指令包括数据存储指令。
17.根据任意一项前述权利要求所述的处理器,其中所述处理器还包括被配置成执行对应于向量或矩阵数据的多个非零模式之间的比较的比较器。
18.一种对处理器中的第一数据寄存器执行运算的方法,所述处理器具有表示所述第一数据寄存器中是否存在平凡操作数的平凡操作数寄存器,所述方法包括以下步骤:
在执行涉及所述第一数据寄存器的指令时采用所述平凡操作数寄存器中的标记。
19.根据权利要求18所述的方法,还包括以下初始步骤:
a)将数据写入第一数据寄存器;
b)执行所述数据的比较以确定所述数据中是否存在平凡操作数;以及
c)响应于所述比较而在平凡操作数寄存器内设定所述标记。
20.根据权利要求18所述的方法,其中所述写入所述数据和执行所述比较的步骤基本上同时执行。
21.根据权利要求18或19所述的方法,其中所述第一数据寄存器是浮点数据寄存器。
22.根据权利要求18至21中的任意一项所述的方法,其中提供多个单独的数据寄存器,每个单独的数据寄存器在所述平凡操作数寄存器中具有相关联的标记。
23.根据权利要求22所述的方法,其中所述多个单独的数据寄存器以寄存器堆提供。
24.根据权利要求17至23中的任意一项所述的方法,其中指令是计算,并且在控制所述处理器中的计算单元的操作时采用所述平凡操作数寄存器。
25.根据权利要求17至24中的任意一项所述的方法,其中所述平凡操作数包括0、-1或1。
26.根据权利要求17至24中的任意一项所述的方法,其中所述平凡操作数唯一地是0值。
27.根据权利要求24中的任意一项所述的方法,其中所述方法包括在所述计算涉及平凡操作数的情况下绕开计算单元并直接提供结果。
28.根据权利要求27所述的方法,其中所述结果是通过为待存储所述结果的寄存器设定所述平凡操作数寄存器标记来直接提供的。
29.根据权利要求17所述的方法,其中所执行的所述指令包括数据存储指令。
CN200880016140A 2007-03-15 2008-03-16 运用平凡算术运算的处理器 Pending CN101689105A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB0704999.2 2007-03-15
GB0704999A GB2447428A (en) 2007-03-15 2007-03-15 Processor having a trivial operand register
US91127407P 2007-04-11 2007-04-11
US60/911,274 2007-04-11
PCT/EP2008/053134 WO2008110634A1 (en) 2007-03-15 2008-03-16 A processor exploiting trivial arithmetic operations

Publications (1)

Publication Number Publication Date
CN101689105A true CN101689105A (zh) 2010-03-31

Family

ID=38008491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880016140A Pending CN101689105A (zh) 2007-03-15 2008-03-16 运用平凡算术运算的处理器

Country Status (8)

Country Link
US (1) US9223575B2 (zh)
EP (2) EP3287894B1 (zh)
JP (1) JP2010521729A (zh)
KR (1) KR20100029180A (zh)
CN (1) CN101689105A (zh)
GB (1) GB2447428A (zh)
IE (1) IES20080198A2 (zh)
WO (1) WO2008110634A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113591031A (zh) * 2021-09-30 2021-11-02 沐曦科技(北京)有限公司 低功耗矩阵运算方法及装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7945765B2 (en) * 2008-01-31 2011-05-17 International Business Machines Corporation Method and structure for asynchronous skip-ahead in synchronous pipelines
GB2457303A (en) * 2008-02-11 2009-08-12 Linear Algebra Technologies Randomly accessing elements of compressed matrix data by calculating offsets from non-zero values of a bitmap
GB2476800A (en) * 2010-01-07 2011-07-13 Linear Algebra Technologies Ltd Sparse matrix vector multiplier using a bit map of non-zero elements to control scheduling of arithmetic operations
US20170046153A1 (en) * 2015-08-14 2017-02-16 Qualcomm Incorporated Simd multiply and horizontal reduce operations
US10592252B2 (en) * 2015-12-31 2020-03-17 Microsoft Technology Licensing, Llc Efficient instruction processing for sparse data
US10459727B2 (en) 2015-12-31 2019-10-29 Microsoft Technology Licensing, Llc Loop code processor optimizations
US10460704B2 (en) 2016-04-01 2019-10-29 Movidius Limited Systems and methods for head-mounted display adapted to human visual mechanism
CN113961876B (zh) * 2017-01-22 2024-01-30 Gsi 科技公司 关联存储器设备中的稀疏矩阵乘法
WO2018192500A1 (zh) * 2017-04-19 2018-10-25 上海寒武纪信息科技有限公司 处理装置和处理方法
US10949947B2 (en) 2017-12-29 2021-03-16 Intel Corporation Foveated image rendering for head-mounted display devices
KR20190106010A (ko) 2018-03-07 2019-09-18 삼성전자주식회사 전자 장치 및 머신 러닝 수행 방법
US11714652B2 (en) * 2021-07-23 2023-08-01 Advanced Micro Devices, Inc. Zero operand instruction conversion for accelerating sparse computations in a central processing unit pipeline
US11816488B2 (en) * 2021-11-10 2023-11-14 Huawei Technologies Co., Ltd. Method and apparatus for dynamically simplifying processor instructions

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2965297A (en) * 1957-08-08 1960-12-20 Burroughs Corp Floating point arithmetic comparison circuit
NL282621A (zh) * 1961-08-30
JPS522140A (en) * 1975-06-24 1977-01-08 Hitachi Ltd Information processing apparatus
JPS5979350A (ja) * 1982-10-29 1984-05-08 Toshiba Corp 浮動小数点演算装置
JP2581565B2 (ja) * 1987-09-18 1997-02-12 株式会社日立製作所 ガード付命令を実行するデータ処理装置
US5262973A (en) * 1992-03-13 1993-11-16 Sun Microsystems, Inc. Method and apparatus for optimizing complex arithmetic units for trivial operands
US5852726A (en) * 1995-12-19 1998-12-22 Intel Corporation Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner
US5995991A (en) * 1996-07-18 1999-11-30 Industrial Technology Research Institute Floating point architecture with tagged operands
JPH1091441A (ja) * 1996-09-13 1998-04-10 Sanyo Electric Co Ltd プログラム実行方法およびその方法を利用した装置
US6009511A (en) * 1997-06-11 1999-12-28 Advanced Micro Devices, Inc. Apparatus and method for tagging floating point operands and results for rapid detection of special floating point numbers
US7395297B2 (en) * 2001-05-25 2008-07-01 Sun Microsystems, Inc. Floating point system that represents status flag information within a floating point operand
US7502918B1 (en) * 2008-03-28 2009-03-10 International Business Machines Corporation Method and system for data dependent performance increment and power reduction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113591031A (zh) * 2021-09-30 2021-11-02 沐曦科技(北京)有限公司 低功耗矩阵运算方法及装置

Also Published As

Publication number Publication date
KR20100029180A (ko) 2010-03-16
US20100106947A1 (en) 2010-04-29
IES20080198A2 (en) 2009-07-08
EP3287894A1 (en) 2018-02-28
GB0704999D0 (en) 2007-04-25
EP2137610B1 (en) 2017-08-02
EP3287894B1 (en) 2019-10-23
US9223575B2 (en) 2015-12-29
EP2137610A1 (en) 2009-12-30
GB2447428A (en) 2008-09-17
WO2008110634A1 (en) 2008-09-18
JP2010521729A (ja) 2010-06-24

Similar Documents

Publication Publication Date Title
CN101689105A (zh) 运用平凡算术运算的处理器
US10719318B2 (en) Processor
US6694426B2 (en) Method and apparatus for staggering execution of a single packed data instruction using the same circuit
CN114391135A (zh) 用于对连续分配数据执行存储器内处理操作的方法及相关存储器装置和系统
US10275247B2 (en) Apparatuses and methods to accelerate vector multiplication of vector elements having matching indices
US9141131B2 (en) Methods and systems for performing exponentiation in a parallel processing environment
US20170168817A1 (en) Conditional operation in an internal processor of a memory device
US7464253B2 (en) Tracking multiple dependent instructions with instruction queue pointer mapping table linked to a multiple wakeup table by a pointer
CN116662727A (zh) 矩阵计算引擎
EP4105778A1 (en) Systems and methods to skip inconsequential matrix operations
US20110302394A1 (en) System and method for processing regular expressions using simd and parallel streams
CN101122851A (zh) 一种数据处理方法及处理器
JP2531648B2 (ja) メモリ装置
CN114341802A (zh) 用于执行存储器内处理操作的方法及相关存储器装置和系统
US5119324A (en) Apparatus and method for performing arithmetic functions in a computer system
CN111124360B (zh) 一种可配置矩阵乘法的加速器
TW201830233A (zh) 自資料庫浮動點格式至二進位整數格式之數字之有效轉換
US20080209182A1 (en) Multi-mode data processing device and methods thereof
US8332447B2 (en) Systems and methods for performing fixed-point fractional multiplication operations in a SIMD processor
CN206639209U (zh) 一种处理器内核结构
EP0224691B1 (en) A multiple read/write access memory system
EP4155961A1 (en) Matrix operation with multiple tiles per matrix dimension
US20110225399A1 (en) Processor and method for supporting multiple input multiple output operation
CN117786293A (zh) 矩阵装置及其操作方法
JPH03189868A (ja) データ処理プロセツサ

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20100331