CN109582279B - 数据运算装置及相关产品 - Google Patents

数据运算装置及相关产品 Download PDF

Info

Publication number
CN109582279B
CN109582279B CN201811459222.4A CN201811459222A CN109582279B CN 109582279 B CN109582279 B CN 109582279B CN 201811459222 A CN201811459222 A CN 201811459222A CN 109582279 B CN109582279 B CN 109582279B
Authority
CN
China
Prior art keywords
floating point
sum
exponent
point number
carry
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
CN201811459222.4A
Other languages
English (en)
Other versions
CN109582279A (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.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co 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 Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201811459222.4A priority Critical patent/CN109582279B/zh
Publication of CN109582279A publication Critical patent/CN109582279A/zh
Application granted granted Critical
Publication of CN109582279B publication Critical patent/CN109582279B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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
    • 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/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Nonlinear Science (AREA)
  • Artificial Intelligence (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本公开涉及一种数据运算装置及相关产品,所述装置用于浮定点数的加法运算,所述浮定点数包括指数和有效数,所述装置包括:判断模块,用于确定第一浮定点数和第二浮定点数中的较大数和较小数;和有效数确定模块,用于对较小数的有效数进行移位,并将移位后的较小数的有效数和较大数的有效数进行对位加,得到对位加结果;和确定模块,用于根据对位加结果和所述较大数的指数,得到和的指数,根据对位加结果和和的指数得到第一浮定点数和第二浮定点数的和。本公开实施例中,较大数和较小数的判断以及对较小数的有效数的位移,可以使得浮定点数的加法运算过程高效、运算结果准确。可以在保证数据表达范围的基础上,减少加法器在芯片中所占的面积。

Description

数据运算装置及相关产品
技术领域
本公开涉及信息处理技术领域,尤其涉及一种数据运算装置及相关产品。
背景技术
随着信息技术的不断发展,利用运算装置完成各种运算任务的需求越来越大。在各种不同的运算任务中,待运算数据不同的数据格式对于运算装置的运算效率和运算精度,会产生不同的影响,不能适应不同运算任务的需求。例如待运算数据的数据格式可以是定点数,对于同样位宽的数,定点数的表示范围和精度负相关,在对精度有要求时,用于实现定点数加法的加法器在芯片中所占的面积较大。
发明内容
有鉴于此,本公开提出了一种数据运算装置及相关产品,用以提高数据运算装置的处理效率,并减少加法器在芯片中所占的面积。
根据本公开的一方面,提供了一种数据运算装置,所述装置用于浮定点数的加法运算,所述浮定点数包括指数和有效数,所述装置包括:
判断模块,用于确定第一浮定点数和第二浮定点数中的较大数和较小数;
和有效数确定模块,用于对所述较小数的有效数进行移位,并将移位后的较小数的有效数和所述较大数的有效数进行对位加,得到对位加结果;
和确定模块,用于根据所述对位加结果和所述较大数的指数,得到和的指数,根据所述对位加结果和所述和的指数得到所述第一浮定点数和所述第二浮定点数的和。
在一种可能的实现方式中,所述判断模块包括:
最高非零位确定子模块,用于根据所述第一浮定点数有效数的最高非零位数位和所述第二浮定点数有效数的最高非零位数位的大小,确定第一浮定点数和第二浮定点数中的较大数和较小数;
指数判断子模块,用于当所述第一浮定点数有效数的最高非零位数位和所述第二浮定点数有效数的最高非零位数位相等时,根据所述第一浮定点数的指数和所述第二浮定点数的指数的大小,确定第一浮定点数和第二浮定点数中的较大数和较小数;
有效数确定子模块,用于当根据所述第一浮定点数有效数的最高非零位数位和所述第二浮定点数有效数的最高非零位数位相等、所述第一浮定点数的指数和所述第二浮定点数的指数相等时,根据所述第一浮定点数有效数和所述第二浮定点数有效数的大小,确定第一浮定点数和第二浮定点数中的较大数和较小数。
在一种可能的实现方式中,所述和有效数确定模块包括:
移位子模块,用于根据所述较大数有效数的最大非零位数位、所述较大数的指数、所述较小数有效数的最大非零位数位和所述较小数的指数,确定位移值,并根据所述位移值对所述较小数的有效数进行位移,得到移位数;
对位加子模块,用于将所述移位数和所述较大数的有效数进行对位加,得到对位加结果。
在一种可能的实现方式中,所述移位子模块,包括:
位移值确定单元,用于将所述较大数的指数和所述较大数有效数的最大非零位数位相加得到第一综合指数值,将所述较小数的指数和所述较小数有效数的最大非零位数位相加得到第二综合指数值,将所述第一综合指数值和所述第二综合指数值的差值确定为位移值;
位移单元,用于将所述较小数的有效数向右移动所述位移值的位数,得到移位数。
在一种可能的实现方式中,所述和确定模块,包括:
进位判断子模块,用于判断所述对位加结果是否有进位,得到进位判断结果;
和指数确定子模块,用于根据所述进位判断结果和所述较大数的指数确定和的指数;
和有效数确定子模块,用于根据所述进位判断结果、所述较大数的指数和所述对位加结果得到和的有效数;
和确定子模块,用于根据所述和的指数和所述和的有效数得到第一浮定点数和所述第二浮定点数的和。
在一种可能的实现方式中,所述进位判断结果包括有进位和无进位,所述和指数确定子模块,包括:
第一和指数确定单元,用于当进位判断结果为有进位时,将所述较大数的指数的反码确定为所述和的指数;
第二和指数确定单元,用于当进位判断结果为无进位时,将所述较大数的指数确定为所述和的指数。
在一种可能的实现方式中,所述进位判断结果包括有进位和无进位,所述和有效数确定子模块,包括:
第一和有效数确定单元,用于所述进位判断结果包括有进位、较大数的指数为0时,将所述对位加结果向右位移一位得到所述和的有效数。
第二和有效数确定单元,用于所述进位判断结果包括有进位、较大数的指数为1时,根据所述对位加结果得到所述和的有效数;
第三和有效数确定单元,用于所述进位判断结果包括无进位时,根据所述对位加结果得到所述和的有效数。
在一种可能的实现方式中,所述装置还包括:
输入数据转换模块,用于将第一数据转换为第一浮定点数,将第二数据转换为第二浮定点数,其中第一数据和第二数据为定点数;
输出数据转换模块,还用于将第一浮定点数和所述第二浮定点数的和转换为定点数。
根据本公开的一方面,提供了一种神经网络运算装置,所述神经网络运算装置包括一个或多个上述数据运算装置,所述神经网络运算装置用于完成设定的神经网络运算。
根据本公开的一方面,提供了一种组合运算装置,所述组合运算装置包括一个或多个上述的神经网络运算装置,通用互联接口和其他处理装置;
所述神经网络运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
根据本公开的一方面,提供了一种神经网络芯片,所述神经网络芯片包括:
上述任一项所述的数据运算装置;或
上述的神经网络运算装置;或
上述的组合处理装置。
根据本公开的一方面,提供了一种电子设备,所述电子设备包括:
上述任一项所述的数据运算装置;或
上述神经网络运算装置;或
上述组合处理装置;或
上述神经网络芯片。
在本公开中,数据运算装置包括:判断模块,用于确定第一浮定点数和第二浮定点数中的较大数和较小数;和有效数确定模块,用于对较小数的有效数进行移位,并将移位后的较小数的有效数和较大数的有效数进行对位加,得到对位加结果;和确定模块,用于根据对位加结果和所述较大数的指数,得到和的指数,根据对位加结果和所述和的指数得到第一浮定点数和第二浮定点数的和。本公开实施例中的判断模块判断出两个浮定点数中的较大数和较小数后,和有效数确定模块对较小数进行位移。较大数和较小数的判断以及对较小数的有效数的位移,可以使得浮定点数的加法运算过程高效、运算结果准确。判断模块、和有效数确定模块、和确定模块组成的浮定点数加法器,可以在保证数据表达范围的基础上,减少加法器在芯片中所占的面积。
在一些实施例中,所述电子设备包括数据运算装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
在一些实施例中,所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的数据运算装置的框图;
图2示出根据本公开一实施例的数据运算装置的框图;
图3示出根据本公开一实施例的数据运算装置的框图
图4示出根据本公开一实施例的数据运算装置的框图
图5示出根据本公开一实施例的数据运算装置的示意图;
图6示出根据本公开一实施例的组合处理装置的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开一实施例的数据运算装置的框图,如图1所示,所述装置用于浮定点数的加法运算,所述浮定点数包括指数和有效数,所述装置包括:
判断模块10,用于确定第一浮定点数和第二浮定点数中的较大数和较小数。
在一种可能的实现方式中,可以将第一浮定点数和第二浮定点数输入判断模块,由判断模块分别识别出第一浮定点数中的指数和有效数、第二浮定点数中的指数和有效数,再由判断模块判断确定第一浮定点数和第二浮定点数中的较大数和较小数。也可以将已经识别出的第一浮定点数的指数、第一浮定点数的有效数、第二浮定点数的指数和第二浮定点数的有效数分别输入判断模块,由判断模块判断确定第一浮定点数和第二浮定点数中的较大数和较小数。本公开对此不做限定。
在一种可能的实现方式中,判断模块可以通过比较第一浮定点数的有效数和第二浮定点数的有效数大小的方式,以确定第一浮定点数和第二浮定点数的大小。判断模块也可以通过比较第一浮定点数和第二浮定点数的有效数的大小和指数大小的方式,确定第一浮定点数和第二浮定点数的大小。
在一种可能的实现方式中,当第一浮定点数和第二浮定点数的大小不相等时,判断模块可以将第一浮定点数和第二浮定点数中较大的数确定为较大数,较小的数确定为较小数。例如,第一浮定点数为A1,第二浮定点数为A2,A1大于A2。则A1为较大数,A2为较小数。
在一种可能的实现方式中,当第一浮定点数和第二浮定点数相等时,判断模块可以将第一浮定点数和第二浮定点数中的任意一个确定为较大数,将剩余的一个确定为较小数。例如,第一浮定点数为B1,第二浮定点数为B2,B1与B2大小相等。判断模块可以将B1作为较大数,B2作为较小数。也可以将B2作为较大数,B1作为较小数。
和有效数确定模块20,用于对所述较小数的有效数进行移位,并将移位后的较小数的有效数和所述较大数的有效数进行对位加,得到对位加结果。
在一种可能的实现方式中,和有效数确定模块可以根据较大数的数值和较小数的数值确定位移值。和有效数确定模块也可以分别根据较大数的有效数和指数、较小数的有效数和指数,确定位移值。和有效数确定模块可以根据位移值将较小数的有效数进行移位,以使移位后较小数的有效数上的各数位,可以与较大数的有效数上的各数位一一对应。
在一种可能的实现方式中,当第一浮定点数和第二浮定点数大小相等时,位移值为0。较大数的有效数和较小数的有效数可以直接对位相加。
在一种可能的实现方式中,和有效数确定模块可以将移位后的较小数有效数的各数位和较大数有效数的各数位进行对位加得到对位加结果。对位加结果相对于较大数的有效数可以有进位、也可以无进位。
和确定模块30,用于根据所述对位加结果和所述较大数的指数,得到和的指数,根据所述对位加结果和所述和的指数得到所述第一浮定点数和所述第二浮定点数的和。
在一种可能的实现方式中,和的指数可以与较大数的指数以及对位加结果是否有进位相关。和确定模块可以根据对位加结果以及较大数的指数确定和的指数。和确定模块根据对位加结果和和的指数,可以确定和的有效数。和确定模块可以根据和的指数以及和的有效数得到第一浮定点数和第二浮定点数的和。
在本实施例中,数据运算装置包括:判断模块,用于确定第一浮定点数和第二浮定点数中的较大数和较小数;和有效数确定模块,用于对较小数的有效数进行移位,并将移位后的较小数的有效数和较大数的有效数进行对位加,得到对位加结果;和确定模块,用于根据对位加结果和所述较大数的指数,得到和的指数,根据对位加结果和所述和的指数得到第一浮定点数和第二浮定点数的和。本公开实施例中的判断模块判断出两个浮定点数中的较大数和较小数后,和有效数确定模块对较小数进行位移。较大数和较小数的判断以及对较小数的有效数的位移,可以使得浮定点数的加法运算过程高效、运算结果准确。判断模块、和有效数确定模块、和确定模块组成的浮定点数加法器,可以在保证数据表达范围的基础上,减少加法器在芯片中所占的面积。
图2示出根据本公开一实施例的数据运算装置的框图,如图2所示,所述判断模块10包括:
最高非零位确定子模块11,用于根据所述第一浮定点数有效数的最高非零位数位和所述第二浮定点数有效数的最高非零位数位的大小,确定第一浮定点数和第二浮定点数中的较大数和较小数。
在一种可能的实现方式中,定点数为16位二进制形式,16位二进制形式的定点数Y为:Y15Y14Y13Y12Y11Y10Y9Y8Y7Y6Y5Y4Y3Y2Y1Y0,其中Y15为符号位,Y14Y13Y12Y11Y10Y9Y8Y7Y6Y5Y4Y3Y2Y1Y0为有效数位。
在一种可能的实现方式中,浮定点数为8位二进制形式。浮定点数可以无符号位,也可以有符号位。当浮定点数中无符号位时,浮定点数中的各数位由右至左(由低到高)自0开始计数。浮定点数的指数位可以为最左边的数位,即指数的数位为第7位,也可以为8位中的任意其它数位。当浮定点数中有符号位时,所述浮定点数中的符号位为1位,指数位为1位,有效数位为6位。浮定点数中的符号位和指数位,可以位于浮定点数的8位数位中任意不重合的位置。本公开对此不做限定。例如,浮定点数自右至左从0开始对数位进行计数,8位二进制形式的浮定点数X为:X7X6X5X4X3X2X1X0,其中X7为符号位,X6为指数位。X5X4X3X2X1X0为有效数位。在一种可能的实现方式中,则浮定点数的值可以如下公式(1)所示:
±m·basep+e+1=±1.d·base2p+e+1 公式(1)
其中,m为浮定点数的符号、base为底,通常为2。e为浮定点数的指数,p为浮定点数有效数中最高非零位的数位,d为浮定点数的有效数的小数部分。
例如,浮定点数为“01010101”,则浮定点数的数值为010101*24+1+1=1.0101*22 *4+1+1。利用浮定点数,可以在相同位宽的情况下,浮定点数增加数据表达范围,提高数据运算的精度。
在一种可能的实现方式中,最高非零位确定子模块中可以包括移位器和比较器。可以将第一浮定点数的有效数和第二浮定点数的有效数输入最高非零位确定子模块中的移位器,由左至右自各有效数的最高位开始移位,在移位过程中,最高非零位确定子模块可以将第一个“1”出现的数位作为最高非零位数位。最高非零位确定子模块中的比较器可以将移位器确定出的各浮定点数的最高非零位数位进行比较,确定第一浮定点数和第二浮定点数中的较大数和较小数。
例如,浮定点数中的各数位由右至左(由低到高)自0开始计数。浮定点数的指数位可以为最左边的数位,即指数的数位为第7位。第一浮定点数“10010110”,第二浮定点数“00110110”。第一浮定点数“10010110”的有效数为“0010110”,第二浮定点数“00110110”的有效数为“0110110”。将第一浮定点数“10010110”的有效数“0010110”输入移位器由左至右进行移位,当移位至第4位时数位上的值为1,则4为最高非零位数位。将第二浮定点数“00110110”的有效数“0110110”输入移位器由左至右进行移位,当移位至第5位时数位上的值为1,则5为最高非零位数位。比较器可以确定第二浮定点数“00110110”为较大数,第一浮定点数“10010110”为较小数。
在一种可能的实现方式中,当第一浮定点数有效数的最高非零位数位和所述第二浮定点数有效数的最高非零位数位的大小不同时,最高非零位确定子模块可以将非零位数位较大的浮定点数确定为较大数,将非零位数位较小的浮定点数确定为较小数。在上述示例中,第一浮定点数“10010110”的最高非零位数位为4,第二浮定点数的“00110110”的最高非零位数位为5,5大于4,则最高非零位确定子模块可以确定第二浮定点数“00110110”为较大数,第一浮定点数“10010110”为较小数。
指数判断子模块12,用于当所述第一浮定点数有效数的最高非零位数位和所述第二浮定点数有效数的最高非零位数位相等时,根据所述第一浮定点数的指数和所述第二浮定点数的指数的大小,确定第一浮定点数和第二浮定点数中的较大数和较小数。
在一种可能的实现方式中,指数判断子模块可以包括比较器。例如,第一浮定点数为“10101011”,第二浮定点数为“00100111”。第一浮定点数“10101011”有效数的最高非零位数位为5,第二浮定点数“00100111”有效数的最高非零位数位也为5,最高非零位确定子模块无法根据最高非零位数位确定两个浮定点数中的较大数和较小数。此时,指数判断子模块可以通过比较器根据第一浮定点数“10101011”的指数“1”,第二浮定点数“00100111”的指数“0”,确定第一浮定点数“10101011”为较大数,第二浮定点数“00100111”为较小数。
有效数确定子模块13,用于当根据所述第一浮定点数有效数的最高非零位数位和所述第二浮定点数有效数的最高非零位数位相等、所述第一浮定点数的指数和所述第二浮定点数的指数相等时,根据所述第一浮定点数有效数和所述第二浮定点数有效数的大小,确定第一浮定点数和第二浮定点数中的较大数和较小数。
在一种可能的实现方式中,有效数确定子模块可以包括比较器。例如,第一浮定点数位“11001011”,第二浮定点数为“11001001”。此时,第一浮定点数“11001011”的最高非零位数位为6,指数为1,第二浮定点数“11001001”的最高非零位数位为6,指数位1。最高非零位确定子模块通过比较器根据最高非零位数位,以及指数判断子模块根据指数,均无法确定第一浮定点数和第二浮定点数中的较大数和较小数。此时,有效数确定子模块可以通过比较器比较第一浮定点数位“11001011”和第二浮定点数“11001001”的有效数的大小,第一浮定点数“11001011”的有效数“1001011”大于第二浮定点数“11001001”的有效数“1001001”,则有效数确定子模块可以确定第一浮定点数“11001011”为较大数,第二浮定点数“11001001”为较小数。
在本实施中,最高非零位确定子模块根据浮定点数中的最高非零位数位、指数判断子模块根据指数、有效数确定子模块根据有效数确定两个浮定点数中的较大数和较小数。通过最高非零位确定子模块、指数判断子模块和有效数确定子模块,可以快速、准确地确定出两个浮定点数中的较大数和较小数,提高浮定点数加法运算的速度。
图3示出根据本公开一实施例的数据运算装置的框图,如图3所示,所述和有效数确定模块20包括:
移位子模块21,用于根据所述较大数有效数的最大非零位数位、所述较大数的指数、所述较小数有效数的最大非零位数位和所述较小数的指数,确定位移值,并根据所述位移值对所述较小数的有效数进行位移,得到移位数。
在一种可能的实现方式中,两个浮定点数有效数之间的数位差,与浮定点数的最大非零位数位和指数相关。可以根据两个浮定点数有效数的最大非零位数位和指数,确定将较小数的有效数进行位移的位移值,以使移位后的较小数有效数能够与较大数有效数进行对位加。
在一种可能的实现方式中,移位子模块可以将较大数有效数的最大非零位数位减去较小数有效数的最大非零位数位得到第一差值,以及将较大数的指数减去较小数的指数得到第二差值,再根据第一差值和第二差值之间的和确定位移值。移位子模块也可以将较大数的指数和较大数有效数的最大非零位数位相加,以及将较小数的指数和较小数有效数的最大非零位数位相加,再根据得到的两个和之间的差值确定位移值。本公开对此不做限定。
在一种可能的实现方式中,移位子模块可以包括移位器。移位子模块可以通过移位器将较小数的有效数向右移动位移值的位数,以使位移后的较小数的有效数和较大数的有效数的数位能够一一对应,可以进行对位加。
在一种可能的实现方式中,所述移位子模块21,包括:
位移值确定单元211,用于将所述较大数的指数和所述较大数有效数的最大非零位数位相加得到第一综合指数值,将所述较小数的指数和所述较小数有效数的最大非零位数位相加得到第二综合指数值,将所述第一综合指数值和所述第二综合指数值的差值确定为位移值。
在一种可能的实现方式中,位移值确定单元可以包括累加器。例如,第一浮定点数“10010110”为较大数,较大数的指数为1,最大非零位数位为4,第二浮定点数“00010110”为较小数,较小数的指数为0、最大非零位数位为4。位移值确定单元可以通过累加器计算得到第一综合指数值为5,第二综合指数值为4。可以确定第一综合指数值和第二综合指数值的差值为1,位移值为1。
位移单元212,用于将所述较小数的有效数向右移动所述位移值的位数,得到移位数。
在一种可能的实现方式中,位移单元可以包括移位器。位移单元根据位移值,将较小数的有效数向右移动相应的位数,得到移位数。例如,第一浮定点数“10010110”为较大数,第二浮定点数“00010110”为较小数,位移值为1。位移单元可以通过移位器将较小数“00010110”的有效数“0010110”向右移动1位,得到移位数“0001011”。
对位加子模块22,用于将所述移位数和所述较大数的有效数进行对位加,得到对位加结果。
在一种可能的实现方式中,对位加子模块可以包括累加器。对位加子模块可以通过累加器将较大数的有效数和移位数进行对位加得到对位加结果。例如,对位加子模块可以通过累加器将较大数“10010110”的有效数“0010110”和移位数“0001011”进行对位加,得到对位加结果为“0100001”。
在本实施例中,判断模块中的最高非零位确定子模块、指数判断子模块和有效数确定子模块,用于根据第一浮定点数有效数的最高非零位数位、第二浮定点数有效数的最高非零位数位、第一浮定点数的指数、第二浮定点数的指数、第一浮定点数有效数和第二浮定点数有效数的大小,确定第一浮定点数和第二浮定点数中的较大数和较小数。最高非零位确定子模块、指数判断子模块和有效数确定子模块可以根据不同的判断规则,确定较大数和较小数,判断过程高效、准确,使得浮定点数的加法运算过程高效、运算结果准确。
图4示出根据本公开一实施例的数据运算装置的框图,如图4所示,所述进位判断结果包括有进位和无进位,所述和确定模块30,包括:
进位判断子模块31,用于判断所述对位加结果是否有进位,得到进位判断结果。
在一种可能的实现方式中,和的指数以及和的有效数,均与对位加结果相对于较大数的有效数是否有进位相关。进位判断子模块可以判断对位加结果相对于较大数的有效数是否有进位,得到进位判断结果。进位判断结果可以包括有进位和无进位。
和指数确定子模块32,用于根据所述进位判断结果和所述较大数的指数确定和的指数。
在一种可能的实现方式中,和的指数与进位判断结果和较大数的指数均相关。和指数确定子模块可以根据不同的进位判断结果,将较大数的指数进行相应的处理得到不同的和的指数。
在一种可能的实现方式中,所述和指数确定子模块32,包括:
第一和指数确定单元321,用于当进位判断结果为有进位时,将所述较大数的指数的反码确定为所述和的指数。
在一种可能的实现方式中,例如,第一浮定点数“10010110”为较大数,第二浮定点数“00010110”为较小数,对位加子模块得到的对位加结果为“0100001”。对位加结果相对于较大数“10010110”的有效数“0010110”有进位。较大数“10010110”的指数为“1”,则和的指数为“0”。
第二和指数确定单元322,用于当进位判断结果为无进位时,将所述较大数的指数确定为所述和的指数。
在一种可能的实现方式中,例如,第一浮定点数“10010110”为较大数,第二浮定点数“00000110”为较小数,对位加子模块得到的对位加结果为“0010110”。对位加结果相对于较大数“10010110”的有效数“0010110”无进位。较大数“10010110”的指数为“1”,则和的指数为“1”。
和有效数确定子模块33,用于根据所述进位判断结果、所述较大数的指数和所述对位加结果得到和的有效数。
在一种可能的实现方式中,和有效数确定子模块,可以根据进位判断结果为有进位或无进位、较大数的指数为“0”或“1”的不同组合,确定是否对对位加结果进行位移得到和的有效数。
在一种可能的实现方式中,所述和有效数确定子模块33,包括:
第一和有效数确定单元331,用于所述进位判断结果包括有进位、较大数的指数为0时,将所述对位加结果向右位移一位得到所述和的有效数。
在一种可能的实现方式中,例如,对位加结果为“100001”,进位判断结果为有进位,较大数的指数为“0”,第一和有效数确定单元将对位加结果“100001”向右位移一位,得到和的有效数为“10000”。
第二和有效数确定单元332,用于所述进位判断结果包括有进位、较大数的指数为1时,根据所述对位加结果得到所述和的有效数。
在一种可能的实现方式中,例如,对位加结果为“100001”,进位判断结果为有进位,较大数的指数为“1”,第二和有效数确定单元将对位加结果“100001”确定为和的有效数。
第三和有效数确定单元333,用于所述进位判断结果包括无进位时,根据所述对位加结果得到所述和的有效数。
在一种可能的实现方式中,例如,对位加结果为“100001”,进位判断结果为无进位,第三和有效数确定单元将对位加结果“100001”确定为和的有效数。
和确定子模块34,用于根据所述和的指数和所述和的有效数得到第一浮定点数和所述第二浮定点数的和。
在一种可能的实现方式中,浮定点数包括八位二进制。和确定子模块可以将和的指数设置于和的任意一个数位上,并将和的有效数按照顺序设置于剩余的七个数位上,得到第一浮定点数和第二浮定点数的和。例如,和的指数的数位可以与浮定点数的指数的数位相同,均位于最左侧的第7数位。和的指数的数位可以与浮定点数的指数的数位不同,和的指数可以位于最右侧的第0数位,第一浮定点数和第二浮定点数的指数可以位于最左侧的第7数位。本公开对和的指数所在的数位不做限定。
在本实施例中,和确定模块包括进位判断子模块、和指数确定子模块、和有效数确定子模块和和确定子模块。和确定模块通过判断所述对位加结果是否有进位,得到进位判断结果;根据所述进位判断结果和所述较大数的指数确定和的指数;根据所述进位判断结果、所述较大数的指数和所述对位加结果得到和的有效数;根据所述和的指数和所述和的有效数得到第一浮定点数和所述第二浮定点数的和。根据对位加结果是否有进位,确定和的指数和和的有效数,使得浮定点数的加法计算过程简洁,计算结果可靠。
应用示例:
图5示出根据本公开一实施例的数据运算装置的示意图,如图5所示的数据运算装置包括:移位器0、累加器、比较器、移位器1、MUX0、MUX1、进位加法器、最高位进位判断及进位器、移位器2、MUX2。
步骤1、将第一浮定点数A的有效数A[6:0]和第二浮定点数B的有效数B[6:0]输入移位器0,确定第一浮定点数A的最大非零位数位Ea_tmp和第二浮定点数中的最大非零位数位Eb_tmp。
步骤2、将第一浮定点数A的最大非零位数位Ea_tmp和第二浮定点数中的最大非零位数位Eb_tmp输入累加模块,同时将第一浮定点数A的指数A[7]和第二浮定点数的指数B[7]输入累加模块。累加模块将第一浮定点数A的最大非零位数位Ea_tmp和第一浮定点数A的指数A[7]累加得到A的综合指数值Ea,将第二浮定点数B的最大非零位数位Bb_tmp和第一浮定点数B的指数B[7]累加得到B的综合指数值Bb。
步骤3、将A的综合指数值Ea和B的综合指数值Bb,以及第一浮定点数A的有效数A[6:0]和第二浮定点数B的有效数B[6:0]输入比较器,确定第一浮定点数和第二浮定点数中的较大数和较小数。比较器可以实现只将最大非零位数位Ea_tmp和最大非零位数位Eb_tmp进行比较,确定较大数和较小数。比较器也可以实现将综合指数值Ea和综合指数值Bb进行比较,确定较大数和较小数。
步骤4、将比较器输出的比较结果输入移位器1,并将累加模块输出的A的综合指数值Ea和B的综合指数值Bb输入移位器1,以使移位器1根据比较器的比较结果,将较大数的有效数较小数的有效数,按照A的综合指数值Ea和B的综合指数值Bb之间的差值向右移动相应的位数。当第一浮定点数位A为较小数时,移位器1输出的Fa_tmp为将A的有效数进行位移后的数据。当第二浮定点数位B为较小数时,移位器1输出的Fb_tmp为将B的有效数进行位移后的数据。
步骤5、将移位器1输出的Fa_tmp和A[6:0]输入MUX0,并将移位器1输出的Fb_tmp和B[6:0]输入MUX1,同时将综合指数值Ea和综合指数值Bb的比较结果(较大数和较小数的确定结果)同时输入MUX0和MUX1。由MUX0和MUX1按照将较小数输出移位器1移位后的数值,将较大数输出未经移位器1移位后的值。当A为较小数时,MUX0输出Fa_tmp,MUX1输出B[6:0]。当B为较小数时,MUX1输出Fb_tmp,MUX0输出A[6:0]。
步骤6、将MUX0和MUX1的输出结果输入进位加法器进行对位加,得到对位加结果。
步骤7、将对位加结果输入最高位进位判断及进位器,判断对位加结果是否有进位,得到进位判断结果,并根据进位判断结果和较大数的指数,利用进位器确定和的指数。和的指数的具体确定方式可参见本公开上述实施例中的和指数确定子模块的相关功能,此处不再赘述。
步骤8、将对位加结果向输入移位器2,由移位器2将对位加结果向右位移一位。
步骤9、根据对位加结果,最高位进位判断及进位器输出的进位判断结果以及移位器2的输出结果输入MUX2,由MUX2根据本公开上述实施例中和有效数确定子模块的相关功能,此处不再赘述。
步骤10、根据和的指数和和的有效数,得到第一浮定点数A和第二浮定点数B的和。
图6示出根据本公开一实施例的组合处理装置的框图,如图6所示,所述组合处理装置,包括上述的神经网络运算装置,通用互联接口,和其他处理装置。
神经网络运算装置与其他处理装置进行交互,共同完成用户指定的操作。其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为神经网络运算装置与外部数据和控制的接口,包括数据搬运,完成对本神经网络运算装置的开启、停止等基本控制;其他处理装置也可以和神经网络运算装置协作共同完成运算任务。通用互联接口,用于在所述神经网络运算装置与其他处理装置间传输数据和控制指令。该神经网络运算装置从其他处理装置中获取所需的输入数据,写入神经网络运算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入神经网络运算装置片上的控制缓存;也可以读取神经网络运算装置的存储模块中的数据并传输给其他处理装置。
组合处理装置还可以包括存储装置,存储装置分别与所述神经网络运算装置和所述其他处理装置连接。存储装置用于保存在所述神经网络运算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本神经网络运算装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一种可能的实现方式中,本公开还提供神经网络芯片,其包括了上述神经网络运算装置或组合处理装置。
在一种可能的实现方式中,本公开还提供芯片封装结构,其包括了上述芯片。
在一种可能的实现方式中,本公开还提供板卡,其包括了上述芯片封装结构。
在一种可能的实现方式中,本公开还提供电子设备,其包括了上述板卡。
电子设备包括数据运算装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (12)

1.一种数据运算装置,其特征在于,所述装置用于浮定点数的加法运算,所述浮定点数包括指数和有效数,所述装置包括:
判断模块,用于确定第一浮定点数和第二浮定点数中的较大数和较小数,所述判断模块包括第一移位器、累加器及比较器;
和有效数确定模块,用于对所述较小数的有效数进行移位,并将移位后的较小数的有效数和所述较大数的有效数进行对位加,得到对位加结果,所述和有效数确定模块包括第二移位器、第一选择器、第二选择器及进位加法器;
和确定模块,用于根据所述对位加结果和所述较大数的指数,得到和的指数,根据所述对位加结果和所述和的指数得到所述第一浮定点数和所述第二浮定点数的和,所述和确定模块包括最高位进位判断及进位器、第三移位器及第三选择器。
2.根据权利要求1所述的装置,其特征在于,所述判断模块包括:
最高非零位确定子模块,用于根据所述第一浮定点数有效数的最高非零位数位和所述第二浮定点数有效数的最高非零位数位的大小,确定第一浮定点数和第二浮定点数中的较大数和较小数;
指数判断子模块,用于当所述第一浮定点数有效数的最高非零位数位和所述第二浮定点数有效数的最高非零位数位相等时,根据所述第一浮定点数的指数和所述第二浮定点数的指数的大小,确定第一浮定点数和第二浮定点数中的较大数和较小数;
有效数确定子模块,用于当根据所述第一浮定点数有效数的最高非零位数位和所述第二浮定点数有效数的最高非零位数位相等、所述第一浮定点数的指数和所述第二浮定点数的指数相等时,根据所述第一浮定点数有效数和所述第二浮定点数有效数的大小,确定第一浮定点数和第二浮定点数中的较大数和较小数。
3.根据权利要求1所述的装置,其特征在于,所述和有效数确定模块包括:
移位子模块,用于根据所述较大数有效数的最大非零位数位、所述较大数的指数、所述较小数有效数的最大非零位数位和所述较小数的指数,确定位移值,并根据所述位移值对所述较小数的有效数进行位移,得到移位数;
对位加子模块,用于将所述移位数和所述较大数的有效数进行对位加,得到对位加结果。
4.根据权利要求3所述的装置,其特征在于,所述移位子模块,包括:
位移值确定单元,用于将所述较大数的指数和所述较大数有效数的最大非零位数位相加得到第一综合指数值,将所述较小数的指数和所述较小数有效数的最大非零位数位相加得到第二综合指数值,将所述第一综合指数值和所述第二综合指数值的差值确定为位移值;
位移单元,用于将所述较小数的有效数向右移动所述位移值的位数,得到移位数。
5.根据权利要求1所述的装置,其特征在于,所述和确定模块,包括:
进位判断子模块,用于判断所述对位加结果是否有进位,得到进位判断结果;
和指数确定子模块,用于根据所述进位判断结果和所述较大数的指数确定和的指数;
和有效数确定子模块,用于根据所述进位判断结果、所述较大数的指数和所述对位加结果得到和的有效数;
和确定子模块,用于根据所述和的指数和所述和的有效数得到第一浮定点数和所述第二浮定点数的和。
6.根据权利要求5所述的装置,其特征在于,所述进位判断结果包括有进位和无进位,所述和指数确定子模块,包括:
第一和指数确定单元,用于当进位判断结果为有进位时,将所述较大数的指数的反码确定为所述和的指数;
第二和指数确定单元,用于当进位判断结果为无进位时,将所述较大数的指数确定为所述和的指数。
7.根据权利要求5所述的装置,其特征在于,所述进位判断结果包括有进位和无进位,所述和有效数确定子模块,包括:
第一和有效数确定单元,用于所述进位判断结果包括有进位、较大数的指数为0时,将所述对位加结果向右位移一位得到所述和的有效数;
第二和有效数确定单元,用于所述进位判断结果包括有进位、较大数的指数为1时,根据所述对位加结果得到所述和的有效数;
第三和有效数确定单元,用于所述进位判断结果包括无进位时,根据所述对位加结果得到所述和的有效数。
8.根据权利要求1所述的装置,其特征在于,所述装置还包括:
输入数据转换模块,用于将第一数据转换为第一浮定点数,将第二数据转换为第二浮定点数,其中第一数据和第二数据为定点数;
输出数据转换模块,还用于将第一浮定点数和所述第二浮定点数的和转换为定点数。
9.一种神经网络运算装置,其特征在于,所述神经网络运算装置包括一个或多个如权利要求1-8任一项所述的数据运算装置,所述神经网络运算装置用于完成设定的神经网络运算。
10.一种组合运算装置,其特征在于,所述组合运算装置包括一个或多个如权利要求9任一项所述的神经网络运算装置,通用互联接口和其他处理装置;
所述神经网络运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
11.一种神经网络芯片,其特征在于,所述神经网络芯片包括:
如权利要求1-8任一项所述的数据运算装置;或
如权利要求9所述的神经网络运算装置;或
如权利要求10所述的组合处理装置。
12.一种电子设备,其特征在于,所述电子设备包括:
如权利要求1-8任一项所述的数据运算装置;或
如权利要求9所述的神经网络运算装置;或
如权利要求10所述的组合处理装置;或
如权利要求11所述的神经网络芯片。
CN201811459222.4A 2018-11-30 2018-11-30 数据运算装置及相关产品 Active CN109582279B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811459222.4A CN109582279B (zh) 2018-11-30 2018-11-30 数据运算装置及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811459222.4A CN109582279B (zh) 2018-11-30 2018-11-30 数据运算装置及相关产品

Publications (2)

Publication Number Publication Date
CN109582279A CN109582279A (zh) 2019-04-05
CN109582279B true CN109582279B (zh) 2021-06-15

Family

ID=65926363

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811459222.4A Active CN109582279B (zh) 2018-11-30 2018-11-30 数据运算装置及相关产品

Country Status (1)

Country Link
CN (1) CN109582279B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109583581B (zh) * 2018-11-30 2021-07-09 上海寒武纪信息科技有限公司 数据转换装置及相关产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104238992A (zh) * 2014-09-09 2014-12-24 南京航空航天大学 一种高性能非精确浮点加法器及其应用方法
CN105930128A (zh) * 2016-05-17 2016-09-07 中国科学院数据与通信保护研究教育中心 一种利用浮点数计算指令实现大整数乘法计算加速方法
CN107305485A (zh) * 2016-04-25 2017-10-31 北京中科寒武纪科技有限公司 一种用于执行多个浮点数相加的装置及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104238992A (zh) * 2014-09-09 2014-12-24 南京航空航天大学 一种高性能非精确浮点加法器及其应用方法
CN107305485A (zh) * 2016-04-25 2017-10-31 北京中科寒武纪科技有限公司 一种用于执行多个浮点数相加的装置及方法
CN105930128A (zh) * 2016-05-17 2016-09-07 中国科学院数据与通信保护研究教育中心 一种利用浮点数计算指令实现大整数乘法计算加速方法

Also Published As

Publication number Publication date
CN109582279A (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
TWI763079B (zh) 用於浮點運算的乘法器、方法、積體電路晶片和計算裝置
CN110515589B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111381871B (zh) 运算方法、装置及相关产品
CN111008003B (zh) 数据处理器、方法、芯片及电子设备
CN117215646A (zh) 一种浮点运算方法、处理器、电子设备及存储介质
CN111381808B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110515590B (zh) 乘法器、数据处理方法、芯片及电子设备
CN109582279B (zh) 数据运算装置及相关产品
CN112712172A (zh) 用于神经网络运算的计算装置、方法、集成电路和设备
CN109558109B (zh) 数据运算装置及相关产品
CN111258541B (zh) 乘法器、数据处理方法、芯片及电子设备
CN109583581B (zh) 数据转换装置及相关产品
CN117420982A (zh) 包括融合乘累加器的芯片、设备及数据运算的控制方法
CN109558110B (zh) 数据转换装置及相关产品
CN113408716A (zh) 计算装置、方法、板卡和计算机可读存储介质
CN112711441A (zh) 用于转换数据类型的转换器、芯片、电子设备及其方法
CN209895329U (zh) 乘法器
CN111381875B (zh) 数据比较器、数据处理方法、芯片及电子设备
CN110673802B (zh) 数据存储方法、装置、芯片、电子设备和板卡
WO2021073512A1 (zh) 用于浮点运算的乘法器、方法、集成电路芯片和计算装置
CN111258542B (zh) 乘法器、数据处理方法、芯片及电子设备
CN112711440A (zh) 用于转换数据类型的转换器、芯片、电子设备及其方法
CN109542837B (zh) 运算方法、装置及相关产品
CN111930674A (zh) 乘累加运算装置及方法、异构智能处理器及电子设备
CN113031915A (zh) 乘法器、数据处理方法、装置及芯片

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