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

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

Info

Publication number
CN109558109B
CN109558109B CN201811456697.8A CN201811456697A CN109558109B CN 109558109 B CN109558109 B CN 109558109B CN 201811456697 A CN201811456697 A CN 201811456697A CN 109558109 B CN109558109 B CN 109558109B
Authority
CN
China
Prior art keywords
floating point
point number
product
effective
effective number
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
CN201811456697.8A
Other languages
English (en)
Other versions
CN109558109A (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 CN201811456697.8A priority Critical patent/CN109558109B/zh
Publication of CN109558109A publication Critical patent/CN109558109A/zh
Priority to PCT/CN2019/120879 priority patent/WO2020108470A1/zh
Application granted granted Critical
Publication of CN109558109B publication Critical patent/CN109558109B/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
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

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

Claims (15)

1.一种数据运算装置,其特征在于,所述数据运算装置用于对相同数据位宽下数据表达范围大的浮定点数进行乘法运算,以减少芯片中实现数据之间乘法运算的运算器所占的面积,所述浮定点数包括指数和有效数,所述数据运算装置包括:
有效数相乘模块,用于将第一浮定点数的有效数和第二浮定点数的有效数相乘,得到待定有效数,所述有效数相乘模块包括乘法器;
有效数及指数确定模块,用于根据所述待定有效数、所述第一浮定点数和所述第二浮定点数,得到乘积的有效数和乘积的指数,所述有效数及指数确定模块包括异或门、与门、或门、选择器、掩码功能模块、移位判断模块、向左移位模块;
乘积确定模块,用于根据所述乘积的有效数和所述乘积的指数,得到所述第一浮定点数和所述第二浮定点数的乘积。
2.根据权利要求1所述的装置,其特征在于,所述有效数及指数确定模块,包括:
有效数确定子模块,用于根据所述待定有效数、所述第一浮定点数的有效数和指数、所述第二浮定点数的有效数和指数,确定乘积的有效数;
指数确定子模块,用于根据所述待定有效数、所述第一浮定点数的指数和所述第二浮定点数的指数,确定乘积的指数。
3.根据权利要求2所述的装置,其特征在于,所述有效数及指数确定模块,还包括:
进位判断子模块,用于判断所述待定有效数是否有进位;
所述有效数确定子模块,还用于根据所述待定有效数的进位、所述第一浮定点数有效数的最大非零位数位、所述第一浮定点数的指数、所述第二浮定点数有效数的最大非零位数位、所述第二浮定点数的指数,确定乘积的有效数;
所述指数确定子模块,还用于根据所述待定有效数的进位、所述第一浮定点数的指数和所述第二浮定点数的指数,确定乘积的指数。
4.根据权利要求3所述的装置,其特征在于,所述有效数确定子模块,包括:
修正值确定单元,用于根据所述待定有效数的进位、所述第一浮定点数的指数、所述第二浮定点数的指数确定修正值;
有效数确定单元,用于根据所述待定有效数的进位、所述第一浮定点数有效数的最大非零位数位、所述第二浮定点数有效数的最大非零位数位和所述修正值,确定乘积的有效数。
5.根据权利要求4所述的装置,其特征在于,所述修正值确定单元,用于将所述第一浮定点数的指数、所述第二浮定点数的指数和1相加得到的和减去所述待定有效数的进位得到第一差值,再将所述第一差值除以2得到修正值。
6.根据权利要求4所述的装置,其特征在在于,所述有效数确定单元,用于将第一浮定点数的最大非零位数位、所述第二浮定点数、所述待定有效数的进位和所述修正值的和,确定为所述乘积的有效数。
7.根据权利要求3所述的装置,其特征在于,所述指数确定子模块,还用于将所述第一浮定点数的指数、所述第二浮定点数的指数和1相加得到的和减去所述待定有效数的进位得到第二差值,并将所述第二差值除以2得到的余数确定为所述乘积的有效数。
8.根据权利要求1所述的装置,其特征在于,所述浮定点数还包括符号,所述装置还包括:
乘积符号确定模块,用于根据所述第一浮定点数的符号和所述第二浮定点数的符号,确定乘积的符号;
所述乘积确定模块,还用于根据所述乘积的有效数、所述乘积的指数和所述乘积的符号,得到所述第一浮定点数和所述第二浮定点数的乘积。
9.根据权利要求1所述的装置,其特征在于,所述定点数为16位二进制形式,所述浮定点数为8位二进制形式。
10.根据权利要求8所述的装置,其特征在于,所述浮定点数中的符号位为1位,指数位为1位。
11.根据权利要求1所述的装置,其特征在于,所述装置还包括:
输入数据转换模块,用于将第一数据转换为第一浮定点数,将第二数据转换为第二浮定点数,其中第一数据和第二数据为定点数;
输出数据转换模块,还用于将第一浮定点数和所述第二浮定点数的乘积转换为定点数。
12.一种神经网络运算装置,其特征在于,所述神经网络运算装置包括一个或多个如权利要求1-11任一项所述的数据运算装置,所述神经网络运算装置用于完成设定的神经网络运算。
13.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求12所述的神经网络运算装置,通用互联接口和其他处理装置;
所述神经网络运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
14.一种神经网络芯片,其特征在于,所述神经网络芯片包括:
如权利要求1-11任一项所述的数据运算装置;或
如权利要求12所述的神经网络运算装置;或
如权利要求13所述的组合处理装置。
15.一种电子设备,其特征在于,所述电子设备包括:
如权利要求1-11任一项所述的数据运算装置;或
如权利要求12所述的神经网络运算装置;或
如权利要求13所述的组合处理装置;或
如权利要求14所述的神经网络芯片。
CN201811456697.8A 2018-11-30 2018-11-30 数据运算装置及相关产品 Active CN109558109B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811456697.8A CN109558109B (zh) 2018-11-30 2018-11-30 数据运算装置及相关产品
PCT/CN2019/120879 WO2020108470A1 (zh) 2018-11-30 2019-11-26 运算方法、装置及相关产品

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN109558109A CN109558109A (zh) 2019-04-02
CN109558109B true CN109558109B (zh) 2021-07-16

Family

ID=65868313

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN109558109B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020108470A1 (zh) * 2018-11-30 2020-06-04 上海寒武纪信息科技有限公司 运算方法、装置及相关产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951211A (zh) * 2017-03-27 2017-07-14 南京大学 一种可重构定浮点通用乘法器
CN107133012A (zh) * 2017-04-27 2017-09-05 湖南省瞬渺通信技术有限公司 一种高速自定义浮点复数除法器
CN107992284A (zh) * 2017-11-27 2018-05-04 中国航空无线电电子研究所 一种可编程器件的除法功能实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10678791B2 (en) * 2015-10-15 2020-06-09 Oracle International Corporation Using shared dictionaries on join columns to improve performance of joins in relational databases

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951211A (zh) * 2017-03-27 2017-07-14 南京大学 一种可重构定浮点通用乘法器
CN107133012A (zh) * 2017-04-27 2017-09-05 湖南省瞬渺通信技术有限公司 一种高速自定义浮点复数除法器
CN107992284A (zh) * 2017-11-27 2018-05-04 中国航空无线电电子研究所 一种可编程器件的除法功能实现方法

Also Published As

Publication number Publication date
CN109558109A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
CN111381871B (zh) 运算方法、装置及相关产品
EP3674883B1 (en) Multiplication circuit, system on chip, and electronic device
CN112732221A (zh) 用于浮点运算的乘法器、方法、集成电路芯片和计算装置
CN109583579B (zh) 计算装置及相关产品
CN111381808B (zh) 乘法器、数据处理方法、芯片及电子设备
CN109558109B (zh) 数据运算装置及相关产品
CN109583581B (zh) 数据转换装置及相关产品
CN109582279B (zh) 数据运算装置及相关产品
CN109558110B (zh) 数据转换装置及相关产品
CN111258541B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258633B (zh) 乘法器、数据处理方法、芯片及电子设备
CN113408716A (zh) 计算装置、方法、板卡和计算机可读存储介质
CN117215646A (zh) 一种浮点运算方法、处理器、电子设备及存储介质
CN111930670B (zh) 异构智能处理量化装置、量化方法、电子设备及存储介质
WO2021073512A1 (zh) 用于浮点运算的乘法器、方法、集成电路芯片和计算装置
CN109542837B (zh) 运算方法、装置及相关产品
CN111260046B (zh) 运算方法、装置及相关产品
CN111258542B (zh) 乘法器、数据处理方法、芯片及电子设备
CN109558565B (zh) 运算方法、装置及相关产品
CN111930674A (zh) 乘累加运算装置及方法、异构智能处理器及电子设备
CN109582277A (zh) 数据处理方法、装置及相关产品
CN113867799A (zh) 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN111401536A (zh) 运算方法、装置及相关产品
CN112711440A (zh) 用于转换数据类型的转换器、芯片、电子设备及其方法
CN111382390B (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