CN111381808A - 乘法器、数据处理方法、芯片及电子设备 - Google Patents

乘法器、数据处理方法、芯片及电子设备 Download PDF

Info

Publication number
CN111381808A
CN111381808A CN201811619301.7A CN201811619301A CN111381808A CN 111381808 A CN111381808 A CN 111381808A CN 201811619301 A CN201811619301 A CN 201811619301A CN 111381808 A CN111381808 A CN 111381808A
Authority
CN
China
Prior art keywords
data
circuit
multiplication
multiplier
processing
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.)
Granted
Application number
CN201811619301.7A
Other languages
English (en)
Other versions
CN111381808B (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 CN201811619301.7A priority Critical patent/CN111381808B/zh
Priority to PCT/CN2019/120994 priority patent/WO2020108486A1/zh
Publication of CN111381808A publication Critical patent/CN111381808A/zh
Application granted granted Critical
Publication of CN111381808B publication Critical patent/CN111381808B/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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • 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)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本申请提供一种乘法器、数据处理方法、芯片及电子设备,该乘法器包括:乘法运算电路、寄存控制电路、寄存器电路、状态控制电路以及选择电路;或者所述乘法器包括:乘法运算电路和转数电路,上述乘法器可以对接收到的数据进行乘法运算得到运算结果,并根据运算结果得到目标运算结果,从而使得获得的运算结果的位宽,可以小于乘法器输入数据位宽的2倍,从而有效降低了乘法器对输入输出端口位宽的要求。

Description

乘法器、数据处理方法、芯片及电子设备
技术领域
本发明涉及计算机技术领域,特别是涉及一种乘法器、数据处理方法、芯片及电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片的快速发展对于高性能数字乘法器的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,通过乘法器进行乘法运算在神经网络算法中是一种常见的操作。
大部分传统的乘法器,是采用布斯算法求取部分积,通过华莱士树电路进行部分积的压缩,然后用一个对应位宽的加法器进行对压缩结果进行累计并输出运算结果。但是,现有的乘法器中输出端口的位宽必须要等于输入端口位宽的2倍,导致乘法器对输入输出端口位宽的要求较高。
发明内容
基于此,有必要针对上述技术问题,提供一种乘法器、数据处理方法、芯片及电子设备。
本发明实施例提供一种乘法器,包括:乘法运算电路、寄存控制电路、寄存器电路、状态控制电路以及选择电路,所述乘法运算电路的输出端与所述寄存控制电路的第一输入端连接,所述寄存控制电路的输出端与所述寄存器电路的输入端连接,所述寄存器电路的输出端与所述选择电路的第一输入端连接,所述状态控制电路的第一输出端与所述寄存控制电路的第二输入端连接,所述状态控制电路的第二输出端与所述选择电路的第二输入端连接;
其中,所述乘法运算电路用于对接收到的数据进行乘法运算得到乘法运算结果,所述状态控制电路用于获取存储指示信号以及读取指示信号,所述寄存控制电路用于根据所述状态控制电路输入的所述存储指示信号,确定存储所述乘法运算结果的所述寄存器电路,所述寄存器电路用于存储所述乘法运算结果,所述选择电路用于根据接收到的所述读取指示信号,读取所述寄存器电路中存储的所述乘法运算结果中的数据,作为运算结果。
在其中一个实施例中,所述乘法运算电路包括:布斯编码处理子电路、部分积获取子电路以及累加子电路,所述布斯编码处理子电路的输出端与所述部分积获取子电路输入端连接,所述部分积获取子电路的输出端与所述累加子电路的输入端连接;
其中,所述布斯编码处理子电路用于对接收到的数据进行布斯编码处理得到编码信号,所述部分积获取子电路用于根据编码信号得到原始部分积,并根据所述原始部分积进行逻辑运算处理,得到符号位扩展后的部分积,所述累加子电路用于对符号位扩展后的部分积进行修正累加处理。
在其中一个实施例中,所述极值寄存器电路,该寄存器电路包括:寄存单元,所述寄存单元用于对不同存储指示信号对应的所述乘法运算结果进行存储。
本实施例提供的一种乘法器,该乘法器可以对接收到的数据进行乘法运算得到运算结果,并根据运算结果得到目标运算结果,从而使得获得的运算结果的位宽,可以小于乘法器输入的数据位宽的2倍,从而有效降低了乘法器对输入输出端口位宽的要求。
本发明实施例提供一种乘法器,包括:乘法运算电路和转数电路,所述乘法运算电路的输出端与所述转数电路的输入端连接,所述转数电路包括第一转换单元和第二转换单元;
其中,所述乘法运算电路用于对接收到的数据进行乘法运算得到乘法运算结果,所述第一转换单元及第二转换单元分别用于对所述乘法运算结果进行转数处理,得到运算结果。
在其中一个实施例中,所述转数电路中包括输入端口,用于接收数据转换信号;所述数据转换信号用于确定转数电路处理的数据转换类型。
在其中一个实施例中,所述第一转换单元具体用于将所述乘法运算结果转换成浮点类型的运算结果,所述第二转换单元具体用于将所述乘法运算结果转换成定点类型的运算结果。
本实施例提供的一种乘法器,该乘法器可以对接收到的数据进行乘法运算得到乘法运算结果,并通过转数电路将乘法运算结果,转换成位宽与乘法器输出端口位宽相等的数据后,输出运算结果,使得获得的运算结果的位宽,可以小于乘法器输入的数据位宽的2倍,从而有效降低了乘法器对输入输出端口位宽的要求。
本发明实施例提供一种数据处理方法,所述方法包括:
接收待处理数据;
对所述待处理数据进行乘法运算处理得到乘法运算结果;
获取存储指示信号以及读取指示信号;
根据所述存储指示信号将多个所述乘法运算结果存储至不同的寄存单元中;
根据所述读取指示信号,读取不同寄存单元中存储的对应所述乘法运算结果中的部分数据,得到运算结果。
在其中一个实施例中,所述对所述待处理数据进行乘法处理得到乘法运算结果,包括:
将所述待处理数据进行布斯编码处理,得到原始部分积;
根据所述原始部分积进行逻辑运算处理,得到符号位扩展后的部分积;
对所述符号位扩展后的部分积进行修正累加处理,得到乘法运算结果。
在其中一个实施例中,所述将所述待处理数据进行布斯编码处理,得到原始部分积,包括:
对所述待处理数据进行布斯编码处理,得到编码信号;
根据所述待处理数据与所述编码信号,得到所述原始部分积。
在其中一个实施例中,所述根据所述原始部分积进行逻辑运算处理,得到符号位扩展后的部分积,包括:对所述原始部分积的高两位数值进行异或,取反和与逻辑运算处理,得到符号位扩展后的部分积。
在其中一个实施例中,所述根据所述存储指示信号将多个所述乘法运算结果存储至不同的寄存单元中,包括:
将第一存储指示信号对应的第一乘法运算结果存储至第一寄存单元中;
将第二存储指示信号对应的第二乘法运算结果存储至第二寄存单元中。
在其中一个实施例中,所述根据所述读取指示信号,读取不同寄存单元中存储的对应所述乘法运算结果中的部分数据,得到运算结果,包括:
根据第一读取指示信号,读取所述第一寄存单元中存储的第一乘法运算结果中的第一部分数据,得到第一运算结果;
根据第二读取指示信号,读取所述第一寄存单元中存储的所述第一乘法运算结果中的第二部分数据,得到第二运算结果;
根据第三读取指示信号,读取所述第二寄存单元中存储的第二乘法运算结果中的第一部分数据,得到第三运算结果;
根据第四读取指示信号,读取所述第二寄存单元中存储的所述第二乘法运算结果中的第二部分数据,得到第四运算结果。
本实施例提供的一种数据处理方法,该方法可以对接收到的数据进行乘法运算得到运算结果,使得获得的运算结果的位宽,可以小于乘法器输入的数据位宽的2倍,从而有效降低了乘法器对输入输出端口位宽的要求。
本发明实施例提供一种数据处理方法,所述方法包括:
接收数据转换信号以及待处理数据;
对所述待处理数据进行乘法运算处理得到乘法运算结果;
根据所述数据转换信号将所述乘法运算结果进行转数处理,得到运算结果。
本实施例提供的一种数据处理方法,该方法在保证乘法器在符号位扩展处理的基础上,可以提高乘法运算结果的准确性,有效降低乘法器的功耗。
本发明实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个所述的乘法器;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,所述多个所述乘法器间可以通过特定的结构进行链接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
本发明实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
本发明实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的乘法器、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本发明实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本发明实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本发明实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本发明实施例提供的一种芯片,包括至少一个如上述任一项所述的乘法器。
本发明实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为一实施例提供的乘法器的结构示意图;
图2为另一实施例提供的乘法器的结构示意图;
图3为一实施例提供的乘法器的具体结构示意图;
图4为另一实施例提供的4个符号位扩展后的部分积的分布规律示意图;
图5为另一实施例提供的8位数据运算时累加电路的具体电路结构图;
图6为另一实施例提供的另一乘法器的具体结构示意图;
图7为一实施例提供的一种数据处理方法的流程示意图;
图8为另一实施例提供的另一种数据处理方法的流程示意图;
图9为一实施例提供的一种组合处理装置的结构图;
图10为一实施例提供的另一种组合处理装置的结构图;
图11为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的乘法器可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中进行比较运算处理,其具体结构示意图如图1和图2所示。
如图1所示为一实施例提供的一种乘法器的结构示意图。该乘法器包括:乘法运算电路11、寄存控制电路12、寄存器电路13、状态控制电路14以及选择电路15,所述乘法运算电路11的输出端与所述寄存控制电路12的第一输入端连接,所述寄存控制电路12的输出端与所述寄存器电路13的输入端连接,所述寄存器电路13的输出端与所述选择电路15的第一输入端连接,所述状态控制电路14的第一输出端与所述寄存控制电路12的第二输入端连接,所述状态控制电路12的第二输出端与所述选择电路15的第二输入端连接。
其中,所述乘法运算电路11用于对接收到的数据进行乘法运算得到乘法运算结果;所述状态控制电路14用于获取存储指示信号以及读取指示信号;所述寄存控制电路12用于根据所述状态控制电路14输入的所述存储指示信号,确定存储所述乘法运算结果的所述寄存器电路13,所述寄存器电路13用于存储所述乘法运算结果,所述选择电路15用于根据接收到的所述读取指示信号,读取所述寄存器电路13中存储的所述乘法运算结果中的数据,作为运算结果。
具体的,上述乘法运算电路11可以对接收到的两个同位宽数据进行乘法运算,该数据可以为定点数。可选的,上述乘法运算电路11可以包括多个具有不同功能的数据处理子电路,多个不同功能的数据处理子电路的输入端口可以有一个或多个,每个数据处理子电路中的每个输入端口的功能可以不相同,输出端口也可以有一个,每个数据处理子电路中的每个输出端口的功能可以不相同,并且不同功能数据处理子电路的电路结构可以不相同。可选的,上述寄存器电路13可以包括多个存储单元。可选的,上述乘法运算电路11可以接收两个同位宽的数据,一个数据为乘法运算中的被乘数,另一个数据为乘法运算中的乘数。可选的,上述乘法运算结果的位宽可以等于乘法运算电路11接收到的数据位宽的2倍。可选的,上述乘法运算电路11可以对固定位宽的数据进行处理,并且乘法运算电路11接收到的数据位宽可以等于乘法器输入端口的位宽,另外,在本实施例中,乘法器输出端口的位宽可以小于输入端口位宽的2倍。可选的,上述选择电路15的输入端口均可以有多个,每个输入端口的功能可以不相同,并且输出端口可以有一个。可选的,上述运算结果的位宽可以小于等于乘法运算结果位宽的1/2,本实施例对此不做任何限定。在本实施例中,还可以理解为,运算结果的位宽小于乘法运算结果位宽的2倍。
需要说明的是,上述状态控制电路14可以自动获取乘法运算电路11得到每一个乘法运算时,对应的存储指示信号,例如,乘法运算电路11得到第一个乘法运算结果时,状态控制电路14获取的存储指示信号可以为1,若乘法运算电路11得到第二个乘法运算结果时,状态控制电路14获取的存储指示信号可以为2,依次类推,乘法运算电路11每得到一个乘法运算结果,状态控制电路14获取的存储指示信号的数值,可以为在上一个乘法运算结果对应存储指示信号数值的基础上加1。可选的,上述状态控制电路14还可以自动获取寄存器电路13中存在乘法运算结果时,当前时钟周期数对应的读取指示信号,其中,上述状态控制电路14可以自动获取当前的时钟周期数,还可以接收外界设备传输的时钟周期数。例如,若第一时钟周期下,寄存器电路13中存储第一个乘法运算结果时,状态控制电路14获取的对应读取指示信号可以为1,此时,选择电路15可以读取寄存器电路13中存储的部分数据,第二时钟周期时,状态控制电路14获取的对应读取指示信号可以为2,此时,选择电路15可以读取寄存器电路13存储的第一个乘法运算结果中的剩余部分数据,还可以理解为,乘法器对应两个时钟周期可以输出一个乘法运算结果;但是,得到第一个乘法运算结果后需要经过五个时钟周期才可以得到第二个乘法运算结果时,第六个时钟周期下,寄存器电路13才可以存储第二个乘法运算结果,此时,状态控制电路14获取的对应读取指示信号可以为3,相当于读取指示信号的数值可以根据寄存器电路13中存储的数据个数确定。
另外,乘法器得到的运算结果并不是乘法运算的目标运算结果,目标运算结果可以为乘法器两次输出的两个运算结果拼接得到的,且乘法器中的选择电路15第一次输出的运算结果,与第二次输出的运算结果拼接,可以得到乘法运算得到的目标运算结果,依次类推,选择电路15两次输出的运算结果拼接,可以得到乘法器每一次乘法运算得到的目标运算结果。此外,乘法器对应多个时钟周期也可以输出一个乘法运算结果。
需要说明的是,乘法器可以通过寄存控制电路12,接收乘法运算电路11每一次乘法运算输出的乘法运算结果,并根据接收到的存储指示信号,确定存储每一个乘法运算结果的存储单元。可选的,选择电路15可以根据接收到的不同读取指示信号,确定读取对应的寄存器电路13中,存储的乘法运算结果中的数据。可选的,若乘法器输入端口的位宽为N,并且接收到的数据位宽也为N,此时,乘法器输出端口的位宽M可以等于2N/t+deta((2N/t+deta)<2N),其中,通常情况下,乘法器经过t(t>1)个时钟周期可以完成一次乘法运算,得到一个乘法运算结果,并将该乘法运算结果存储至寄存器电路13中,其中,deta(deta>=0)为一个常数。另外,还存在一种小概率的情况,乘法器可以经过m(m<t,且m<=1)个时钟周期完成一次乘法运算,得到一个乘法运算结果,并将该乘法运算结果存储至寄存器电路13中。可选的,选择电路15可以两次读取寄存器电路13存储的乘法运算结果中的数据,其中,乘法运算结果的位宽可以等于2N,读取的乘法运算结果中的数据位宽可以等于N,选择电路15两次可以分别读取同一个乘法运算结果中的高N位数据,和低N位数据作为两次运算结果,并将两个运算结果拼接,得到乘法器经过t个时钟周期的目标运算结果。
本实施例提供的一种乘法器,通过乘法电路可以对接收到的数据进行乘法运算得到乘法运算结果,通过状态控制电路获取存储指示信号以及读取指示信号,并且寄存控制电路根据存储指示信号,确定存储所述乘法运算结果的寄存器电路,通过寄存器电路存储乘法运算结果,同时,选择电路根据读取指示信号读取寄存器电路中,存储的乘法运算结果中的数据得到运算结果,该乘法器可以对接收到的数据进行乘法运算得到运算结果,并根据运算结果得到目标运算结果,从而使得获得的运算结果的位宽,可以小于乘法器输入的数据位宽的2倍,从而有效降低了乘法器对输入输出端口位宽的要求。
如图2所示为一实施例提供的一种乘法器的具体结构示意图。该乘法器包括:乘法运算电路21和转数电路22,所述乘法运算电路21的输出端与所述转数电路22的输入端连接,所述转数电路22包括第一转换单元221和第二转换单元222;其中,所述乘法运算电路21用于对接收到的数据进行乘法运算得到乘法运算结果,所述第一转换单元221及第二转换单元222分别用于对所述乘法运算结果进行转数处理,得到运算结果。
具体的,上述乘法运算电路21可以处理两个同位宽的数据,并且该数据可以为定点数。可选的,上述乘法运算电路21可以包括多个具有不同功能的数据处理子电路,多个不同功能的数据处理子电路的输入端口可以有一个或多个,每个数据处理子电路中的每个输入端口的功能可以不相同,输出端口也可以有一个,每个数据处理子电路中的每个输出端口的功能可以不相同,并且不同功能数据处理子电路的电路结构可以不相同。可选的,上述转数电路22可以将乘法运算电路21输出的乘法运算结果,转换成目标格式的数据,其中,乘法运算结果可以为定点数,则上述目标格式的数据可以为定点数,也可以为浮点数,另外,目标格式的数据位宽可以小于乘法运算结果的位宽的2倍。可选的,运算结果可以为乘法运算结果中的部分数据。可选的,上述运算结果的位宽可以等于乘法运算结果位宽的1/2,还可以等于乘法运算结果位宽的1/4,本实施例对此不做任何限定。在本实施例中,还可以理解为,运算结果的位宽小于乘法运算结果位宽的2倍。另外,乘法器得到的运算结果并不是乘法运算的目标运算结果,只是目标运算结果中的部分数据。
需要说明的是,上述乘法运算电路21可以对固定位宽的数据进行乘法运算处理,并且乘法运算电路21接收到的数据位宽可以等于乘法器输入端口的位宽,另外,在本实施例中,乘法器输出端口的位宽可以小于输入端口位宽的2倍。
可选的,所述转数电路22中包括输入端口,用于接收数据转换信号。可选的,所述数据转换信号用于确定转数电路22处理的数据转换类型。
可选的,上述数据转换信号可以有多种,不同数据转换信号对应转数电路22可以将接收到的数据转换成目标格式的数据。可选的,上述数据转换类型可以包括定点数转定点数,以及定点数转浮点数。示例性的,若乘法器输入端口和输出端口的位宽均为N,则乘法器可以得到2N比特位宽的乘法运算结果,并且乘法器可以通过转数电路22将2N比特位宽的乘法运算结果,转换成N比特位宽的运算结果,该运算结果可以为浮点数,另外,乘法器还可以通过转数电路22将2N比特位宽的乘法运算结果,转换成N比特位宽的定点数,即运算结果。
本实施例提供的一种乘法器,该乘法器可以对接收到的数据进行乘法运算得到乘法运算结果,并通过转数电路将乘法运算结果,转换成位宽与乘法器输出端口位宽相等的数据后,输出运算结果,使得获得的运算结果的位宽,可以小于乘法器输入的数据位宽的2倍,从而有效降低了乘法器对输入输出端口位宽的要求。
图3为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述乘法运算电路11,该乘法运算电路11包括:布斯编码处理子电路111、部分积获取子电路112以及累加子电路113;其中,所述布斯编码处理子电路111的输出端与所述部分积获取子电路112输入端连接,所述部分积获取子电路112的输出端与所述累加子电路113的输入端连接。所述布斯编码处理子电路111用于对接收到的数据进行布斯编码处理得到编码信号,所述部分积获取子电路112用于根据编码信号得到原始部分积,并根据所述原始部分积得到符号位扩展后的部分积,所述累加子电路113用于对所述符号位扩展后的部分积进行累加处理。
可选的,所述布斯编码处理子电路111包括:数据输入端口1111和编码信号输出端口1112;所述数据输入端口1111用于接收进行布斯编码处理的数据,所述编码信号输出端口1112用于输出对接收到的数据进行布斯编码处理后得到的编码信号。
具体的,若数据输入端口1111接收到一个定点数,则布斯编码处理子电路111可以自动对该定点数的最低位数值后补一位数值0,得到一个比原定点数的位宽多一位数值的定点数,同时,布斯编码处理子电路111可以对补0后的定点数进行布斯编码处理处理,得到多个编码信号,将多个编码信号通过编码信号输出端口1112输出。可选的,布斯编码处理子电路111可以通过数据输入端口1111接收乘法运算中的乘数,且布斯编码处理子电路111可以对乘数进行布斯编码处理处理。可选的,每一次布斯编码处理处理时,可以将补0后的定点数划分成多组待编码数据,布斯编码处理子电路111可以同时对划分后的多组待编码数据进行布斯编码处理处理,可选的,划分多组待编码数据的原则可以是补0后的定点数中相邻每3位数值作为一组待编码数据,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。可选的,布斯编码处理的编码规则可以参见表1,其中,表1中的y2i+1,y2i和y2i-1可以表示每一组待编码数据对应的数值,X可以表示编码电路11接收到的被乘数,对每一组对应待编码数据进行布斯编码处理处理后得到对应的编码信号PPi(i=0,1,2,...,n)。可选的,根据表1所示,布斯编码处理后得到的编码信号可以包括五类,每类编码信号分别定义为-2X,2X,-X,X和0。示例性的,若编码电路11接收到的被乘数为“x7x6x5x4x3x2x1x0”,则X可以表示为“x7x6x5x4x3x2x1x0”。
表1
Figure BDA0001926496610000101
示例性的,若布斯编码处理子电路111接收到的乘数为8位的定点数“y7y6y5y4y3y2y1y0”,则补0后的定点数可以为“y7y6y5y4y3y2y1y00”,当i=0时,y2i+1=y1,y2i=y0,y2i-1=y-1,则y-1可以表示y0后的一位数值0(即乘数可以表示为y7y6y5y4y3y2y1y0y-1),布斯编码处理过程中,可以对y-1y0y1,y1y2y3,y3y4y5和y5y6y7四组待编码数据分别进行编码,得到4个编码信号,其中,每一组待编码数据中的最高位数值可以作为相邻下一组待编码数据中的最低位数值。
可选的,所述部分积获取子电路112具体用于根据编码信号得到原始部分积,根据所述原始部分积得到符号位扩展后的部分积。
具体的,上述布斯编码处理子电路111可以接收乘法运算中的乘数,并对乘数进行布斯编码处理,得到编码信号。其中,在布斯编码处理前,布斯编码处理子电路111可以自动对接收到的乘数进行补位处理,该补位处理可以表征为对乘数的最低位数值后补一位数值0。示例性的,若乘法运算电路11当前处理8位*8位的乘法运算,乘数为y7y6y5y4y3y2y1y0,则在布斯编码处理前,布斯编码处理电路11可以自动将乘数转换为y7y6y5y4y3y2y1y00,即在乘数的最低位y0后补了一位数值0。可选的,上述编码信号的数量可以等于乘法运算电路11当前所处理数据位宽的1/2,该编码信号的数量可以等于符号位扩展后的部分积的数量。
示例性的,若乘法器当前处理8位*8位的定点数乘法运算,通过部分积获取子电路112得到的一个原始部分积为“p8p7p6p5p4p3p2p1p0”,进行符号位扩展后的部分积可以表示为“p8p8p8p8p8p8p8p8p7p6p5p4p3p2p1p0”。
本实施例提供的一种乘法器,通过乘法运算电路中的布斯编码处理子电路可以对接收到的数据进行布斯编码处理得到编码信号,再通过部分积获取子电路根据每一个编码信号得到原始部分积,并根据原始部分积得到符号位扩展后的部分积,最后通过累加子电路对符号位扩展后的部分积进行累加处理,以实现乘法运算处理。
继续参见图3为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述累加子电路113,该累加子电路113包括:华莱士树组子电路1131和累加子电路1132;其中,所述华莱士树组子电路1131的输出端与所述累加子电路1132的输入端连接;所述华莱士树组子电路1131用于对符号位扩展后的部分积进行累加处理,所述累加子电路1132用于对接收到的输入数据进行累加处理。
具体的,上述华莱士树组子电路1131可以对部分积获取子电路112得到的符号位扩展后的部分积中的数值进行累加处理,并通过累加子电路1132对华莱士树组子电路1131得到结果进行累加处理,得到乘法运算结果。
本实施例提供的一种乘法器,通过华莱士树组子电路可以对符号位扩展后的部分积进行累加处理,并通过累加子电路对结果进行累加处理,得到乘法运算结果,并根据乘法运算结果得到运算结果,从而实现乘法运算,提高乘法运算结果的准确性。
在其中一个实施例中,继续如图3所示乘法器的具体结构示意图,其中,乘法器包括所述华莱士树组子电路1131,该华莱士树组子电路1131包括:华莱士树单元1131_1~1131_n,多个所述华莱士树单元1131_1~1131_n用于对符号位扩展后的部分积的每一列进行修正累加处理。
具体的,华莱士树单元1131_1~1131_n的电路结构可以由全加器和半加器组合实现,另外,还可以理解为华莱士树单元1131_1~1131_n是一种能够对多位输入信号进行处理,将多位输入信号相加得到两位输出信号的电路。可选的,华莱士树组子电路1131包含的华莱士树单元的数量n可以等于乘法运算电路11当前所处理数据位宽的2倍,并且n个华莱士树单元可以对目标编码的部分积进行并行处理,但连接方式可以是串行连接。可选的,华莱士树组子电路113中每一个华莱士树单元可以对符号位扩展后的所有部分积的每一列进行加法处理,每一个华莱士树单元可以输出两个信号,即进位信号Carryi与一个和位信号Sumi,其中,i可以表示每一个华莱士树单元对应的编号,每一个华莱士树单元的编号为0。可选的,每一个华莱士树单元接收到输入信号的数量可以等于编码信号数量或者符号位扩展后的部分积数量。
另外,华莱士树组子电路1131中每一个华莱士树单元接收到的信号可以包括进位输入信号Cini,部分积输入信号,进位输出信号Couti。可选的,每一个华莱士树子电路接收到的部分积输入信号可以为所有符号位扩展后的部分积中每一列的数值,每一个华莱士树单元输出的进位信号Couti的位数可以等于NCout=floor((NI+NCin)/2)-1。其中,NI可以表示该华莱士树单元的数据输入位数,NCin可以表示该华莱士树单元的进位输入位数,NCout可以表示该华莱士树单元最少的进位输出位数,floor(·)可以表示向下取整函数。可选的,华莱士树组子电路1131中每一个华莱士树单元接收到的进位输入信号可以为上一个华莱士树单元输出的进位输出信号,而第一个华莱士树单元接收到的进位输入信号为0,同时,第一个华莱士树单元接收到的进位信号输入端口的数量,可以与其它华莱士树单元的进位信号输入端口的数量相同。
在本实施例中,若华莱士树组子电路1131中串行连接的n个华莱士树单元的编号为1,2,…,i,…,n,则华莱士树组子电路1131可以通过第i个华莱士树单元和第n个华莱士树单元,对符号位扩展后的部分积中对应的两列数据进行加1处理,另外,若布斯编码处理电路11得到的第一个符号位扩展后的部分积,从最低位到最高位对应的位数编号为1,2,…,m-2,m-1,m,其中,m对应Q位的编号,1对应第一个符号位扩展后的部分积中最低位数的编号,则i可以等于n/2,可以理解为,华莱士树组子电路1131可以通过第n/2个华莱士树单元和最后一个华莱士树单元,对符号位扩展后的部分积进行加1处理。
示例性的,若乘法运算电路11当前处理8位*8位的乘法运算,通过部分积获取子电路112得到的符号位扩展后的部分积为“pi9pi9pi9pi9pi9pi9pi9pi9pi8pi7pi6pi5pi4pi3pi2pi1”(i=1,…,n=4),其中,i可以表示第i个符号位扩展后的部分积,则累加处理时,4个符号位扩展后的部分积的分布规律可以参见图4所示,每一个原点代表符号位扩展后的部分积中的每一位数值,其中,4个符号位扩展后的部分积的分布规律中,从第二个符号位扩展后的部分积开始,每一个符号位扩展后的部分积在上一个符号位扩展后部分积的基础上,可以向左移动两位数值,并且其余数值不进行加法运算,也就是每一个目标编码的部分积的最高位数值,与第一个符号位扩展后的部分积的最高位数值位于同一列;从最右列至最左列算起,总共需要16个华莱士树单元对4个符号位扩展后的部分积进行累加处理,16个华莱士树单元的连接电路图如图5所示,其中,图5中Wallace_i表示华莱士树单元,i为华莱士树单元从1开始的编号,并且两两华莱士树单元之间连接的实线表示高位编号对应的华莱士树单元有进位输出信号,虚线表示高位编号对应的华莱士树单元没有进位输出信号。
本实施例提供的一种乘法器,通过华莱士树组子电路可以对符号位扩展后的部分积进行累加处理,该过程能够对符号位扩展处理进行修正,提高乘法运算结果的准确性,并根据乘法运算结果得到运算结果,该过程能够对符号位扩展处理进行修正,提高乘法运算结果的准确性,从而提高运算结果的准确性。
作为其中一个实施例,其中,乘法器包括所述累加子电路1132,该累加子电路1132包括:加法器,所述加法器用于对接收到的两个同位宽数据进行加法运算。
具体的,加法器可以为不同位宽的加法器,该加法器可以为超前进位加法器。可选的,加法器可以接收华莱士树组子电路1131输出的两路信号,对两路输出信号进行加法运算,输出乘法运算结果。
本实施例提供的一种乘法器,通过累加子电路可以对华莱士树组子电路输出的两路信号进行累加处理,输出乘法运算结果,并根据乘法运算结果得到运算结果,该过程能够对符号位扩展处理进行修正,提高乘法运算结果的准确性,从而提高运算结果的准确性。
在其中一个实施例中,其中,乘法器包括所述加法器,该加法器包括:进位信号输入端口1132a、和位信号输入端口1132b以及结果输出端口1132c;所述进位信号输入端口1132a用于接收进位信号,和位信号输入端口1132b用于接收和位信号,结果输出端口1132c用于输出进位信号与和位信号进行累加处理的结果。
具体的,加法器可以通过进位信号输入端口1132a接收华莱士树组子电路1131输出的进位信号Carry,通过和位信号输入端口1132b接收修正华莱士数组子电路1131输出的和位信号Sum,并将进位信号Carry与和位信号Sum进行累加的结果,通过结果输出端口1132c输出。
需要说明的是,乘法运算时,乘法处理电路11可以采用不同位宽的加法器对华莱士树组子电路1131输出的进位输出信号Carry与和位输出信号Sum进行加法运算,其中,上述加法器可处理数据的位宽可以等于乘法器当前处理的数据位宽N的2倍。可选的,华莱士树组子电路1131中的每一个华莱士树单元可以输出一个进位输出信号Carryi,与一个和位输出信号Sumi(i=0,…,N-1,i为每一个华莱士树单元的对应编号,编号从0开始)。可选的,加法器接收到的Carry={[Carry0:CarryN-2],0},也就是说,加法器接收到的进位输出信号Carry的位宽为N,进位输出信号Carry中前N-1位数值对应华莱士树组子电路1131中前N-1个华莱士树单元的进位输出信号,进位输出信号Carry中最后一位数值可以用0代替。可选的,加法器接收到的和位输出信号Sum的位宽为N,和位输出信号Sum中的数值可以等于华莱士树组子电路1131中每一个华莱士树单元的和位输出信号。
示例性的,若乘法运算电路11当前处理8位*8位的乘法运算,则加法器可以为16位超前进位加法器,继续如图5所示,华莱士树组子电路1131可以输出16个华莱士树单元的和位输出信号Sum和进位输出信号Carry,但是,16位超前进位加法器接收到的和位输出信号可以为华莱士树组子电路1131输出的完整和位信号Sum,接收到的进位输出信号可以为华莱士树组子电路1131中,除去最后一个华莱士树单元输出的进位输出信号的所有进位输出信号与0结合后的进位信号Carry。
本实施例提供的一种乘法器,通过累加子电路可以对华莱士树组子电路输出的两路信号进行累加运算,输出乘法运算结果,并根据乘法运算结果得到运算结果,该过程能够提高乘法运算结果的准确性,从而提高运算结果的准确性。
在一个实施例中,继续参见图3,其中,乘法器包括所述极值寄存器电路13,该寄存器电路13包括:寄存单元131,所述寄存单元131用于将不同存储指示信号对应的所述乘法运算结果进行存储。
具体的,上述寄存器电路13可以包括两个或多个寄存单元131,还可以理解为,寄存器电路13中寄存单元131的数量,可以等于2Nin/Nout,Nin表示乘法器接收到的数据位宽,Nout(Nout<2Nin)表示乘法器输出的数据位宽。可选的,寄存单元131存储的数据位宽可以等于乘法器输入端口位宽的2倍。可选的,乘法器接收到的数据位宽可以等于乘法器输入端口的位宽,并且乘法器输出的数据位宽可以等于乘法器输入端口的位宽,还可以小于乘法器输入端口位宽的2倍。示例性的,若乘法器输入端口的位宽和输出端口的位宽均为N比特,则寄存器电路13需要通过两个寄存单元131组合而成;若乘法器输入端口的位宽为N比特,输出端口的位宽为N/2比特,则寄存器电路13需要通过四个寄存单元131组合而成。可选的,乘法器可以根据存储指示信号将每一次乘法运算得到的乘法运算结果,存储至对应的2Nin/Nout个寄存单元131中,其中,不同的存储指示信号有对应存储乘法运算结果的不同寄存单元131。可选的,乘法器得到的每一个乘法运算结果,只能按照存储指示信号对应的寄存单元131存储,并不能将每一次得到的乘法运算结果,存储至与存储指示信号不对应的其它寄存单元131中。
示例性的,若寄存器电路13中有n个寄存单元131,对应编号为1,2,3,...,n,则乘法器得到的第一个乘法运算结果可以存储至1号寄存单元131中,此时,存储指示信号的数值可以为1,乘法器得到的第二个乘法运算结果可以存储至2号寄存单元132中,此时,存储指示信号的数值可以为2,还可以理解为,存储指示信号的数值为奇数时,存储乘法运算结果的寄存单元131的对应编号也为奇数,存储指示信号的数值为偶数时,存储乘法运算结果的寄存单元131的对应编号也为偶数,其中,存储指示信号的数值可以等于对应存储乘法运算结果的寄存单元131的编号。
本实施例提供的一种乘法器,乘法器中的寄存器电路,根据不同的存储指示信号将每一次乘法运算得到的乘法运算结果,存储至不同的寄存单元中,进而根据读取指示信号输出对应寄存单元存储的乘法运算结果中的数据,以便后续通过输出端口位宽不匹配输入端口位宽2倍的乘法器,输出运算结果。
图6为另一实施例提供的一种乘法器的具体结构示意图,其中,乘法器包括所述第一转换单元221以及所述第二转换单元222,所述第一转换单元221具体用于将所述乘法运算结果转换成浮点类型的运算结果,所述第二转换单元222具体用于将所述乘法运算结果转换成定点类型的运算结果。
具体的,上述乘法运算结果的位宽可以等于乘法器接收到的数据位宽的2倍,浮点类型运算结果的位宽和定点类型运算结果的位宽均可以等于乘法器输出端口的位宽,并且转数电路22中,浮点类型的运算结果的位宽可以等于定点类型的运算结果的位宽。
需要说明的是,在转数电路22中,第一转换单元221和第二转换单元222没有任何连接关系,两者相互独立,每一次乘法运算时,转数电路22只需要用到第一转换单元221或第二转换单元222进行数据转数处理,得到运算结果即可。可选的,转数电路22可以根据接收到的数据转换信号,确定本次乘法运算需要通过第一转换单元221还是第二转换单元222进行数据转数处理。
可选的,数据转换信号可以包括两种信号,分别可以用二进制数值表示成00,01,其中,数据转换信号为00表征的信号可以包括转数电路22接收到的数据为2N比特位宽的定点数,将该2N比特位宽的定点数需要转换成N比特位宽的定点数,以及转换后定点数小数点的位置,其中,转换前2N比特位宽的定点数小数点的位置可以是确定的;数据转换信号为01表征的信号可以包括转数电路22接收到的乘法运算结果为2N比特位宽的定点数,将该2N比特位宽的定点数需要转换成N比特位宽的浮点数。可选的,转数电路22可以根据接收到的两种不同的数据转换信号,通过第一转换单元221或第二转换单元222将接收到的乘法运算结果进行不同的转数处理,具体实现方式通过如下方式实现:
(1)若转数电路22接收到的数据转换信号为00,则转数电路22可以将2N比特位宽的定点数转换成N比特位宽的定点数,此时,转数电路22可以通过第二转换单元222对接收到的2N比特位宽的定点数进行数据转换,具体地,转数处理时,需要将目标转换后N比特位宽的定点数小数点的位置,与转换前2N比特位宽的定点数小数点的位置对齐,然后截取转换前2N比特位宽的定点数小数点位置前后共N位数值,得到转换后的N比特位宽的定点数,截取的方式可以分为三种情况:
情况a,当即将截取N位数值均包含在转换前2N比特位宽的定点数内,则第二转换单元222可以直接截取转换前2N比特位宽的定点数中小数点位置前后共N位数值;
情况b,当即将截取的N位数值中的一部分数值包含在转换前2N比特位宽的定点数内,而需要截取的N位数值中的高位部分数值,在转换前2N比特位宽的定点数内没有对应的部分数值可截取,则第二转换单元222均可以用转换前2N比特位宽的定点数的符号位,对这部分每位数值进行补位,然后从补位后的定点数中截取N位数值;
情况c,当即将截取的N位数值中的一部分数值包含在转换前2N比特位宽的定点数内,而需要截取的N位数值中的低位部分数值,在转换前2N比特位宽的定点数内没有对应的部分数值可截取,则第二转换单元222可以根据转换前2N比特位宽的定点数的正负,对这部分每位数值进行补位,若转换前2N比特位宽的定点数为正数,这部分每位数值可以用数值0补位,否则用数值1补位,然后从补位后的定点数中截取N位数值;
(2)若转数电路22接收到的数据转换信号为01,则转数电路22可以将2N比特位宽的定点数转换成N比特位宽的浮点数,此时,转数电路22可以通过第一转换单元221对接收到的2N比特位宽的定点数进行数据转换,具体地,转数处理时,将定点数的最高位数值(即符号位)可以作为转换后浮点数的符号位数值,另外,若转换前2N位定点数为正数,则除去最高位数值符号位,从2N-1位定点数最高位往最低位方向查找,查找到数值1时,统计数值1后还有m位数值,此时,转换后浮点数的指数位数值可以等于m加指数位偏移值i,并减去转换前2N位定点数小数点的位置,但是,若转换前2N位定点数为负数,则除去最高位数值符号位,从2N-1位定点数最高位往最低位方向查找,查找到数值0时,统计的是数值0后还有m位数值,此外,还需要截取m位数值中的高n位数值作为转换后浮点数的尾数位数值,若m>=n,则可以直接截取n位数值作为尾数位数值,若m<n,则可以在转换前2N位定点数后补n-m位最高位(即符号位)数值。
示例性的,若需要将2N比特位宽的定点数转换成16比特位宽的浮点数,则i可以等于16,n可以等于10;若需要将2N比特位宽的定点数转换成32比特位宽的浮点数,则i可以等于127,n可以等于23;若需要将2N比特位宽的定点数转换成64比特位宽的浮点数,则i可以等于1023,n可以等于52。
本实施例提供的一种乘法器,该乘法器可以通过转数电路将乘法运算结果,转换成位宽与乘法器输出端口位宽相等的数据后,输出运算结果,使得获得的运算结果的位宽,可以小于乘法器输入的数据位宽的2倍,从而有效降低了乘法器对输入输出端口位宽的要求。
图7为一实施例提供的数据处理方法的流程示意图,该方法可以通过图1和图3所示的乘法器进行处理,本实施例涉及的是对数据进行比较运算的过程。如图7所示,该方法包括:
S101、接收待处理数据。
具体的,乘法器中的乘法运算电路可以接收两个待处理数据。可选的,乘法运算电路可以处理两个固定位宽的数据,并且固定位宽可以等于乘法器输入端口的位宽。可选的,上述乘法器接收到的数据可以为定点数,且定点数的位宽可以等于乘法器输入端口的位宽。
S102、对所述待处理数据进行乘法运算处理得到乘法运算结果。
具体的,乘法器可以将接收到的待处理数据,输入至乘法运算电路,并通过乘法运算电路对两个待处理数据进行乘法运算得到乘法运算结果。可选的,上述乘法运算结果的位宽,可以等于乘法器接收到的数据位宽的2倍,还可以等于乘法器输入端口位宽的2倍。
S103、获取存储指示信号以及读取指示信号。
具体的,乘法器通过状态控制电路可以自动获取存储指示信号以及读取指示信号。
S104、根据所述存储指示信号将多个所述乘法运算结果存储至不同的寄存单元中。
具体的,乘法器中的状态控制电路将获取的存储指示信号可以输入至寄存控制电路,寄存控制电路根据接收到的存储指示信号,确定本次乘法运算得到的乘法运算结果,可以存储至对应的寄存单元中。
需要说明的是,一个寄存单元最多只能存储一个乘法运算结果,并且多个寄存单元中可以有部分寄存单元为空闲状态。
S105、根据所述读取指示信号,读取不同寄存单元中存储的对应所述乘法运算结果中的部分数据,得到运算结果。
具体的,乘法器中的选择电路可以根据接收到的读取指示信号,读取对应寄存单元中存储的乘法运算结果中的部分数据,作为运算结果。可选的,上述运算结果并不是目标运算结果,乘法运算的目标运算结果可以为读取两次运算结果拼接而成,也可以为读取多次运算结果拼接而成,可以理解为,上述乘法运算结果中部分数据的位宽可以等于乘法运算结果位宽的1/2,还可以小于乘法运算结果位宽的1/2。可选的,运算结果的位宽可以小于等于乘法器输入端口的位宽。
本实施例提供的一种数据处理方法,该方法可以对接收到的数据进行乘法运算得到乘法运算结果,分别读取乘法运算结果中的高位数据以及低位数据,作为运算结果,使得获得的运算结果的位宽可以小于乘法器输入的数据位宽的2倍,从而有效降低了乘法器对输入输出端口位宽的要求。
另一实施例提供的数据处理方法。上述S102中对所述待处理数据进行乘法处理得到乘法运算结果,包括:
S1021、将所述待处理数据进行布斯编码处理,得到原始部分积。
具体的,乘法器中的乘法处理电路可以通过布斯编码处理子电路对待处理的乘数进行布斯编码处理,根据布斯编码处理的结果得到原始部分积。
S1022、根据所述原始部分积得到符号位扩展后的部分积。
具体的,乘法器中的部分积获取子电路根据原始部分积得到符号位扩展后的部分积。
S1023、对所述符号位扩展后的部分积进行累加处理,得到乘法运算结果。
具体的,乘法器还可以通过累加子电路中的华莱士树组子电路对符号位扩展后的部分积的每一列数值进行累加处理,通过华莱士树组子电路输出累加处理后的进位输出信号与和位输出信号,最后通过累加子电路将华莱士树组子电路的所有进位输出信号Carryi,与用0替代最后一个和位信号SumN-1后的所有和位信号进行累加处理,得到乘法运算结果。
本实施例提供的一种数据处理方法,接收待处理数据,将所述待处理数据进行布斯编码处理,得到原始部分积,根据所述原始部分积得到符号位扩展后的部分积,对所述符号位扩展后的部分积进行累加处理,得到乘法运算结果,并根据乘法运算结果得到运算结果,该方法可以提高乘法运算结果的准确性,有效降低乘法器的功耗。
另一实施例提供的数据处理方法,上述S1021中将所述待处理数据进行布斯编码处理,得到原始部分积,包括:
S1021a、对所述待处理数据进行布斯编码处理,得到编码信号。
具体的,乘法器可以通过布斯编码处理子电路对待处理的乘数进行布斯编码处理,得到编码信号。可选的,布斯编码处理过程中,输入的乘数中3比特位宽的数据可以得到一位编码后的数据,上述布斯编码处理过程中的编码规则可以参见表1,根据表1可知,布斯编码处理子电路对乘数进行布斯编码处理,可以得到五类不同的编码信号,每类编码信号分别定义为-2X,2X,-X,X和0。
S1021b、根据所述待处理数据与所述编码信号,得到所述原始部分积。
需要说明的是,原始部分积数量可以等于编码信号的数量。
示例性的,若部分积获取子电路接收到一个8位的被乘数“x7x6x5x4x3x2x1x0”(即X),则部分积获取子电路可以根据被乘数“x7x6x5x4x3x2x1x0”(即X)与五类编码信号-2X,2X,-X,X和0直接得到对应原始部分积,当编码信号为-2X时,则原始部分积可以为对X进行左右一位后取反再加1,当编码信号为2X时,则原始可以为对X进行左移一位,当编码信号为-X时,则原始部分积可以为对X按位取反再加1,当编码信号为X时,则原始部分积可以为X与X最高位的更高一位数值结合的数据,其中,X最高位的更高一位数值可以等于X的符号位数值,当编码信号为+0时,则原始部分积可以为0,也就是9位部分积中的每一位数值均等于0。
本实施例提供的一种数据处理方法,对待处理数据进行布斯编码处理,得到编码信号,根据待处理数据与所述编码信号,得到符号位扩展后的部分积,进而对符号位扩展后的部分积进行累加处理,得到乘法运算结果,并根据乘法运算结果得到运算结果,该方法可以提高乘法运算结果的准确性,有效降低乘法器的功耗。
另一实施例提供的数据处理方法,上述S104中根据所述存储指示信号将多个所述乘法运算结果存储至不同的寄存单元中,包括:
S1041、将第一存储指示信号对应的第一乘法运算结果存储至第一寄存单元中。
具体的,存储指示信号的数量可以等于乘法器实现乘法运算的次数,乘法器实现一次乘法运算,可以得到一个乘法运算结果,并且状态控制电路可以获取一个对应的存储指示信号。若乘法器进行第一次乘法运算,得到第一乘法运算结果,状态控制电路自动获取第一存储指示信号,寄存控制电路根据状态控制电路输入的第一存储指示信号,确定存储第一乘法运算结果的第一寄存单元,并将第一乘法运算结果输入至第一寄存单元存储。
S1042、将第二存储指示信号对应的第二乘法运算结果存储至第二寄存单元中。
需要说明的是,若乘法器进行第二次乘法运算,得到第二乘法运算结果,状态控制电路自动获取第二存储指示信号,寄存控制电路根据状态控制电路输入的第二存储指示信号,确定存储第二乘法运算结果的第二寄存单元,并将第二乘法运算结果输入至第二寄存单元存储。依次类推,乘法器可以将每一次乘法运算得到的乘法运算结果存储至不同的寄存单元中,并且按照寄存单元的编号顺序存储对应的乘法运算结果,也就是连续的两次乘法运算结果可以存储至相邻的两个寄存单元中。
本实施例提供的一种数据处理方法,将第一存储指示信号对应的第一乘法运算结果存储至第一寄存单元中,将第二存储指示信号对应的第二乘法运算结果存储至第二寄存单元中,从而避免出现乘法运算结果覆盖的问题;另外,该方法还能使得获得的运算结果的位宽可以小于乘法器输入的数据位宽的2倍,有效降低乘法器对输入输出端口位宽的要求。
作为其中一个实施例,上述S105中根据所述读取指示信号,读取不同寄存单元中存储的对应所述乘法运算结果中的部分数据,得到运算结果。
S1051、根据第一读取指示信号,读取所述第一寄存单元中存储的第一乘法运算结果中的第一部分数据,得到第一运算结果。
S1052、根据第二读取指示信号,读取所述第一寄存单元中存储的所述第一乘法运算结果中的第二部分数据,得到第二运算结果。
具体的,乘法器中的状态控制电路获取的读取指示信号的数量,可以等于乘法器读取运算结果的次数,相当于乘法运算结果数量的2倍。可选的,乘法运算结果可以包括两部分数据,即第一部分数据以及第二部分数据。示例性的,若乘法运算结果的位宽等于2N,则乘法运算结果可以分成两部分数据,高N位数据和低N位数据,其中,第一部分数据可以为高N位数据或低N位数据,第二部分数据可以为低N位数据或高N位数据。
S1053、根据第三读取指示信号,读取所述第二寄存单元中存储的第二乘法运算结果中的第一部分数据,得到第三运算结果。
可选的,每一个读取指示信号可以对应乘法运算结果中的第一部分数据或第二部分数据。
S1054、根据第四读取指示信号,读取所述第二寄存单元中存储的所述第二乘法运算结果中的第二部分数据,得到第四运算结果。
具体的,乘法器可以对多组待处理数据进行乘法运算,得到多个乘法运算结果,因此,乘法器读取第四运算结果后,可以根据下一读取指示信号,读取下一乘法运算结果中的部分数据。
示例性的,若乘法器的输入端口位宽为32比特,输出端口位宽为64/t+deta比特(一般,乘法器经过t个时钟周期可以完成一次乘法运算,得到一个乘法运算结果,t>1,deta>=0),乘法器接收到的数据位宽也为32比特,并且该乘法器需要对多组待处理数据进行乘法运算,该情况下,寄存器电路13中包括(64/(64/t+deta))个寄存单元131(即寄存单元A1,A2,...,Ai,i可以等于(64/(64/t+deta))),则得到运算结果的实现过程可以为:
若乘法器经过t(t可以大于等于0)个时钟周期得到第一乘法运算结果M_0,则寄存控制电路根据第一存储指示信号将M_0(64比特位宽)可以存储至寄存单元A1中,此时,选择电路可以根据第一读取指示信号,从寄存单元A1中读取M_0的高32位数据,作为第一次乘法运算得到的第一运算结果;
同时,当乘法器到第t+1个时钟周期时,则选择电路可以根据第二读取指示信号,从寄存单元A1中读取M_0的低32位数据,作为第一次乘法运算得到的第二运算结果,在本实施例中,乘法器将第一运算结果与第二运算结果拼接,可以得到待处理数据的目标运算结果;
若乘法器到第2t个时钟周期时,可以得到第二乘法运算结果M_1,则寄存控制电路根据第二存储指示信号将M_1可以存储至寄存单元A2中,此时,选择电路可以根据第三读取指示信号,从寄存单元A2中读取M_1的高32位数据,作为第二次乘法运算得到的第三运算结果;
同时,当乘法器到第2t+1个时钟周期的运算时,则选择电路可以根据第四读取指示信号,从寄存单元A2中读取M_1的低32位数据,作为第二次乘法运算得到的第四运算结果,在本实施例中,数据比较器将第三运算结果与第四运算结果合并,可以得到待处理数据的目标运算结果;
依次类推,根据不同的存储指示信号将得到的乘法运算结果,可以存储至对应不同的寄存单元中,并根据不同的读取指示信号读取不同寄存单元中,存储的乘法运算结果中的部分数据,得到运算结果。
另外,若多组待处理数据中的一组待处理数据,存在零值的情况,此时,乘法器经过m(m<t)个时钟周期可以得到该组待处理数据对应的乘法运算结果,乘法器可以根据存储指示信号将该乘法运算结果存储至对应的寄存单元中,当前时钟周期下,乘法器可以根据读取指示信号读取不同寄存单元存储的乘法运算结果中的部分数据,下一时钟周期乘法器可以输出乘法运算结果中的剩余部分数据;若下一组待处理数据中也存在零值的情况,并且需要1个时钟周期就可以完成一次乘法运算,得到乘法运算结果,此时,乘法器可以将该乘法运算结果存储至相邻的下一寄存单元中。
本实施例提供的一种数据处理方法,接收待处理数据,将所述待处理数据进行乘法处理得到乘法运算结果,获取存储指示信号以及读取指示信号,根据所述存储指示信号存储所述乘法运算结果,根据所述读取指示信号读取所述乘法运算结果中的数据,得到运算结果,该方法可以对接收到的数据进行乘法运算得到乘法运算结果,分别读取乘法运算结果中的高位数据以及低位数据,作为运算结果,使得获得的运算结果的位宽可以小于乘法器输入的数据位宽的2倍,从而有效降低了乘法器对输入输出端口位宽的要求。
图8为一个实施例提供的数据处理方法的流程示意图,该方法可以通过图2和图6所示的乘法器进行处理,本实施例涉及的是对数据进行乘法运算的过程。如图8所示,该方法包括:
S201、接收数据转换信号以及待处理数据。
具体的,乘法器中的乘法运算电路可以接收两个待处理数据和数据转换信号。可选的,待处理数据的位宽可以等于乘法器输入端口的位宽。可选的,若转数电路接收不同的数据转换信号,则转数电路可以将接收到的数据转换成,数据转换信号对应格式的数据。
S202、对所述待处理数据进行乘法运算处理得到乘法运算结果。
具体的,乘法器可以将接收到的两个待处理数据,输入到乘法运算电路,乘法运算电路对两个待处理数据进行乘法运算得到乘法运算结果。可选的,上述乘法运算结果的位宽可以等于乘法器输入端口的位宽的2倍,还可以等于待处理数据的位宽的2倍。
S203、根据所述数据转换信号将所述乘法运算结果进行转数处理,得到运算结果。
具体的,转数电路根据接收到的数据转换信号确定,可以将乘法运算结果转换成,定点类型的运算结果或者浮点类型的运算结果。示例性的,若转数电路可以接收两种数据转换信号,分别表示为00和01,同时,乘法器输入端口和输出端口的位宽均为N比特,则00表示转数电路可以将接收到的2N位乘法运算结果转换成,N位定点类型的运算结果,01表示转数电路可以将接收到的2N位乘法运算结果转换成,N位浮点类型的运算结果,其中,不同数据转换信号对应转数电路实现的功能可以灵活设置。
本实施例提供的一种数据处理方法,接收数据转换信号以及待处理数据,对所述待处理数据进行乘法运算处理,得到乘法运算结果,并根据所述数据转换信号将所述乘法运算结果进行转数处理,得到运算结果,该方法能够使得获得的运算结果的位宽,可以小于乘法器输入数据位宽的2倍,从而有效降低了乘法器对输入输出端口位宽的要求。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的乘法器,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上乘法器时,乘法器间可以通过特定的结构进行链接并传输数据,譬如,通过快速外部设备互连总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过快速外部设备互连接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图9为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图10所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图11所示,图11提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其它的配套部件,该配套部件包括但不限于:存储器件390、接收装置391和控制器件392;
所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接收装置与所述芯片封装结构内的芯片电连接。所述接收装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接收装置可以为标准快速外部设备互连接口。比如,待处理数据由服务器通过标准快速外部设备互连接口传递至所述芯片,实现数据转移。优选的,当采用快速外部设备互连3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接收装置还可以是其它的接口,本申请并不限制上述其它的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接收装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备可以为数据处理器、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的电路组合,但是本领域技术人员应该知悉,本申请并不受所描述的电路组合方式的限制,因为依据本申请,某些电路可以采用其它方式或者结构实现。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的器件和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (20)

1.一种乘法器,其特征在于,所述乘法器包括:乘法运算电路、寄存控制电路、寄存器电路、状态控制电路以及选择电路,所述乘法运算电路的输出端与所述寄存控制电路的第一输入端连接,所述寄存控制电路的输出端与所述寄存器电路的输入端连接,所述寄存器电路的输出端与所述选择电路的第一输入端连接,所述状态控制电路的第一输出端与所述寄存控制电路的第二输入端连接,所述状态控制电路的第二输出端与所述选择电路的第二输入端连接;
其中,所述乘法运算电路用于对接收到的数据进行乘法运算得到乘法运算结果,所述状态控制电路用于获取存储指示信号以及读取指示信号,所述寄存控制电路用于根据所述状态控制电路输入的所述存储指示信号,确定存储所述乘法运算结果的所述寄存器电路,所述寄存器电路用于存储所述乘法运算结果,所述选择电路用于根据接收到的所述读取指示信号,读取所述寄存器电路中存储的所述乘法运算结果中的数据,作为运算结果。
2.根据权利要求1所述的乘法器,其特征在于,所述乘法运算电路包括:布斯编码处理子电路、部分积获取子电路以及累加子电路,所述布斯编码处理子电路的输出端与所述部分积获取子电路输入端连接,所述部分积获取子电路的输出端与所述累加子电路的输入端连接;
其中,所述布斯编码处理子电路用于对接收到的数据进行布斯编码处理得到编码信号,所述部分积获取子电路用于根据编码信号得到原始部分积,并根据所述原始部分积进行逻辑运算处理,得到符号位扩展后的部分积,所述累加子电路用于对符号位扩展后的部分积进行修正累加处理。
3.根据权利要求1所述的乘法器,其特征在于,所述寄存器电路,该寄存器电路包括:寄存单元,所述寄存单元用于将不同存储指示信号对应的所述乘法运算结果进行存储。
4.一种乘法器,其特征在于,所述乘法器包括:乘法运算电路和转数电路,所述乘法运算电路的输出端与所述转数电路的输入端连接,所述转数电路包括第一转换单元和第二转换单元;
其中,所述乘法运算电路用于对接收到的数据进行乘法运算得到乘法运算结果,所述第一转换单元及第二转换单元分别用于对所述乘法运算结果进行转数处理,得到运算结果。
5.根据权利要求4所述的乘法器,其特征在于,所述转数电路中包括输入端口,用于接收数据转换信号;所述数据转换信号用于确定转数电路处理的数据转换类型。
6.根据权利要求4所述的乘法器,其特征在于,所述第一转换单元具体用于将所述乘法运算结果转换成浮点类型的运算结果,所述第二转换单元具体用于将所述乘法运算结果转换成定点类型的运算结果。
7.一种数据处理方法,其特征在于,所述方法包括:
接收待处理数据;
对所述待处理数据进行乘法运算处理得到乘法运算结果;
获取存储指示信号以及读取指示信号;
根据所述存储指示信号将多个所述乘法运算结果存储至不同的寄存单元中;
根据所述读取指示信号,读取不同寄存单元中存储的对应所述乘法运算结果中的部分数据,得到运算结果。
8.根据权利要求7所述的方法,其特征在于,所述对所述待处理数据进行乘法处理得到乘法运算结果,包括:
将所述待处理数据进行布斯编码处理,得到原始部分积;
根据所述原始部分积进行逻辑运算处理,得到符号位扩展后的部分积;
对所述符号位扩展后的部分积进行修正累加处理,得到乘法运算结果。
9.根据权利要求8所述的方法,其特征在于,所述将所述待处理数据进行布斯编码处理,得到原始部分积,包括:
对所述待处理数据进行布斯编码处理,得到编码信号;
根据所述待处理数据与所述编码信号,得到所述原始部分积。
10.根据权利要求8所述的方法,其特征在于,所述根据所述原始部分积进行逻辑运算处理,得到符号位扩展后的部分积,包括:对所述原始部分积的高两位数值进行异或,取反和与逻辑运算处理,得到符号位扩展后的部分积。
11.根据权利要求7所述的方法,其特征在于,所述根据所述存储指示信号将多个所述乘法运算结果存储至不同的寄存单元中,包括:
将第一存储指示信号对应的第一乘法运算结果存储至第一寄存单元中;
将第二存储指示信号对应的第二乘法运算结果存储至第二寄存单元中。
12.根据权利要求7所述的方法,其特征在于,所述根据所述读取指示信号,读取不同寄存单元中存储的对应所述乘法运算结果中的部分数据,得到运算结果,包括:
根据第一读取指示信号,读取所述第一寄存单元中存储的第一乘法运算结果中的第一部分数据,得到第一运算结果;
根据第二读取指示信号,读取所述第一寄存单元中存储的所述第一乘法运算结果中的第二部分数据,得到第二运算结果;
根据第三读取指示信号,读取所述第二寄存单元中存储的第二乘法运算结果中的第一部分数据,得到第三运算结果;
根据第四读取指示信号,读取所述第二寄存单元中存储的所述第二乘法运算结果中的第二部分数据,得到第四运算结果。
13.一种数据处理方法,其特征在于,所述方法包括:
接收数据转换信号以及待处理数据;
对所述待处理数据进行乘法运算处理得到乘法运算结果;
根据所述数据转换信号将所述乘法运算结果进行转数处理,得到运算结果。
14.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-6任一项所述的乘法器,用于从其它处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述乘法器时,所述多个所述计算装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述乘法器通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述乘法器共享同一控制系统或拥有各自的控制系统;多个所述乘法器共享内存或者拥有各自的内存;多个所述乘法器的互联方式是任意互联拓扑。
15.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求14所述的机器学习运算装置,通用互联接口和其它处理装置;
所述机器学习运算装置与所述其它处理装置进行交互,共同完成用户指定的计算操作。
16.根据权利要求15所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
17.一种神经网络芯片,其特征在于,所述机器学习芯片包括如权利要求14所述的机器学习运算装置或如权利要求15所述的组合处理装置或如权利要求16所述的组合处理装置。
18.一种电子设备,其特征在于,所述电子设备包括如所述权利要求17所述的芯片。
19.一种板卡,其特征在于,所述板卡包括:存储器件、接收装置和控制器件以及如权利要求17所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接收装置分别连接;
所述存储器件,用于存储数据;
所述接收装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
20.根据权利要求19所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接收装置为:标准PCIE接口。
CN201811619301.7A 2018-11-30 2018-12-28 乘法器、数据处理方法、芯片及电子设备 Active CN111381808B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811619301.7A CN111381808B (zh) 2018-12-28 2018-12-28 乘法器、数据处理方法、芯片及电子设备
PCT/CN2019/120994 WO2020108486A1 (zh) 2018-11-30 2019-11-26 数据处理装置、方法、芯片及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811619301.7A CN111381808B (zh) 2018-12-28 2018-12-28 乘法器、数据处理方法、芯片及电子设备

Publications (2)

Publication Number Publication Date
CN111381808A true CN111381808A (zh) 2020-07-07
CN111381808B CN111381808B (zh) 2022-12-09

Family

ID=71221074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811619301.7A Active CN111381808B (zh) 2018-11-30 2018-12-28 乘法器、数据处理方法、芯片及电子设备

Country Status (1)

Country Link
CN (1) CN111381808B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115857873A (zh) * 2023-02-07 2023-03-28 湖南三安半导体有限责任公司 乘法器、乘法计算方法、处理系统及存储介质
CN115934029A (zh) * 2023-02-20 2023-04-07 辰星(天津)自动化设备有限公司 乘法运算资源转换逻辑资源方法、装置、乘法器及介质
CN116931873A (zh) * 2023-09-11 2023-10-24 安徽大学 两字节乘法电路及其任意位宽为2次幂的乘法电路与芯片

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0534760A2 (en) * 1991-09-26 1993-03-31 International Business Machines Corporation High speed multiplier device
CN101384991A (zh) * 2006-02-15 2009-03-11 松下电器产业株式会社 乘法器、数字滤波器、信号处理装置、合成装置、合成程序和合成程序记录介质
CN108256645A (zh) * 2018-01-19 2018-07-06 上海兆芯集成电路有限公司 数据位宽可调适的处理器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0534760A2 (en) * 1991-09-26 1993-03-31 International Business Machines Corporation High speed multiplier device
CN101384991A (zh) * 2006-02-15 2009-03-11 松下电器产业株式会社 乘法器、数字滤波器、信号处理装置、合成装置、合成程序和合成程序记录介质
CN108256645A (zh) * 2018-01-19 2018-07-06 上海兆芯集成电路有限公司 数据位宽可调适的处理器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
袁博等: "针对定点小数乘法器位宽的优化算法", 《西安电子科技大学学报》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115857873A (zh) * 2023-02-07 2023-03-28 湖南三安半导体有限责任公司 乘法器、乘法计算方法、处理系统及存储介质
CN115857873B (zh) * 2023-02-07 2023-05-09 兰州大学 乘法器、乘法计算方法、处理系统及存储介质
CN115934029A (zh) * 2023-02-20 2023-04-07 辰星(天津)自动化设备有限公司 乘法运算资源转换逻辑资源方法、装置、乘法器及介质
CN116931873A (zh) * 2023-09-11 2023-10-24 安徽大学 两字节乘法电路及其任意位宽为2次幂的乘法电路与芯片
CN116931873B (zh) * 2023-09-11 2023-11-28 安徽大学 两字节乘法电路及其任意位宽为2次幂的乘法电路与芯片

Also Published As

Publication number Publication date
CN111381808B (zh) 2022-12-09

Similar Documents

Publication Publication Date Title
CN110515589B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111008003B (zh) 数据处理器、方法、芯片及电子设备
CN111381808B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110362293B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110515587B (zh) 乘法器、数据处理方法、芯片及电子设备
CN110673823B (zh) 乘法器、数据处理方法及芯片
CN110554854A (zh) 数据处理器、方法、芯片及电子设备
CN111258633B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258541B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258544B (zh) 乘法器、数据处理方法、芯片及电子设备
CN209895329U (zh) 乘法器
CN113031912A (zh) 乘法器、数据处理方法、装置及芯片
CN111258542B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111258545B (zh) 乘法器、数据处理方法、芯片及电子设备
CN210109789U (zh) 数据处理器
CN110688087B (zh) 数据处理器、方法、芯片及电子设备
CN110515586B (zh) 乘法器、数据处理方法、芯片及电子设备
CN209879493U (zh) 乘法器
CN210006029U (zh) 数据处理器
CN110515588B (zh) 乘法器、数据处理方法、芯片及电子设备
CN113031915A (zh) 乘法器、数据处理方法、装置及芯片
CN110647307A (zh) 数据处理器、方法、芯片及电子设备
CN111258546B (zh) 乘法器、数据处理方法、芯片及电子设备
CN209962284U (zh) 乘法器、装置、芯片及电子设备
CN113033788B (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