CN101689105A - 运用平凡算术运算的处理器 - Google Patents
运用平凡算术运算的处理器 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
- G06F7/537—Reduction of the number of iteration steps or stages, e.g. using the Sweeny-Robertson-Tocher [SRT] algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding 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位图寄存器内容。
在实践中,所提出的方案可容易地扩展至任意数目的寄存器堆写端口和具有任意数目的条目的寄存器堆。
此控制逻辑具有用简单逻辑函数代替功耗大的浮点运算的作用,该简单逻辑函数在单个周期内执行,而完全浮点运算的情况需要几个流水线周期。与常规处理器相比,这既增大了所提出的处理器的有效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所述的方法,其中所执行的所述指令包括数据存储指令。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113591031A (zh) * | 2021-09-30 | 2021-11-02 | 沐曦科技(北京)有限公司 | 低功耗矩阵运算方法及装置 |
Families Citing this family (13)
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)
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 |
-
2007
- 2007-03-15 GB GB0704999A patent/GB2447428A/en not_active Withdrawn
-
2008
- 2008-03-16 US US12/531,408 patent/US9223575B2/en active Active
- 2008-03-16 CN CN200880016140A patent/CN101689105A/zh active Pending
- 2008-03-16 KR KR1020097021426A patent/KR20100029180A/ko not_active Application Discontinuation
- 2008-03-16 WO PCT/EP2008/053134 patent/WO2008110634A1/en active Application Filing
- 2008-03-16 JP JP2009553164A patent/JP2010521729A/ja active Pending
- 2008-03-16 EP EP17183584.6A patent/EP3287894B1/en active Active
- 2008-03-16 EP EP08717871.1A patent/EP2137610B1/en active Active
- 2008-03-18 IE IE20080198A patent/IES20080198A2/xx not_active IP Right Cessation
Cited By (1)
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 |