CN116661733A - 一种支持多种精度的乘法器及微处理器 - Google Patents
一种支持多种精度的乘法器及微处理器 Download PDFInfo
- Publication number
- CN116661733A CN116661733A CN202310601779.1A CN202310601779A CN116661733A CN 116661733 A CN116661733 A CN 116661733A CN 202310601779 A CN202310601779 A CN 202310601779A CN 116661733 A CN116661733 A CN 116661733A
- Authority
- CN
- China
- Prior art keywords
- data path
- bit
- input
- multiplication
- control signal
- 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
- 102100030148 Integrator complex subunit 8 Human genes 0.000 claims abstract description 11
- 101710092891 Integrator complex subunit 8 Proteins 0.000 claims abstract description 11
- 238000010606 normalization Methods 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 35
- 101150076151 csa3 gene Proteins 0.000 claims description 21
- 239000000284 extract Substances 0.000 claims description 10
- HVXBOLULGPECHP-UHFFFAOYSA-N combretastatin A4 Natural products C1=C(O)C(OC)=CC=C1C=CC1=CC(OC)=C(OC)C(OC)=C1 HVXBOLULGPECHP-UHFFFAOYSA-N 0.000 claims description 8
- 238000000034 method Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 101100242909 Streptococcus pneumoniae (strain ATCC BAA-255 / R6) pbpA gene Proteins 0.000 claims description 4
- 101100269618 Streptococcus pneumoniae serotype 4 (strain ATCC BAA-334 / TIGR4) aliA gene Proteins 0.000 claims description 4
- 230000010354 integration Effects 0.000 claims description 4
- 238000012937 correction Methods 0.000 claims description 3
- 238000012856 packing Methods 0.000 claims description 3
- 230000001502 supplementing effect Effects 0.000 claims 3
- 238000013461 design Methods 0.000 abstract description 11
- 239000000047 product Substances 0.000 description 19
- 238000010801 machine learning Methods 0.000 description 7
- 239000013589 supplement Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- 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
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种支持多种精度的乘法器及微处理器,本发明的乘法器包括包含四个并行的浮点数FP8乘法运算单元的FP8数据通路,包含八个并行的定点数FIX8乘法运算单元的FIX8数据通路及整合数据通路,FP8数据通路用于在一个时钟周期完成4次浮点数FP8乘法运算,FIX8数据通路用于在一个时钟周期完成8次定点数FIX8乘法运算,整合数据通路用于将FP8/FIX8数据通路的输出整合为FP16乘法或FP32乘法的结果。本发明旨在实现FP32、FP8‑E5M2、FP8‑E4M3、INT8、UINT8这五种数据类型的乘法运算单元的传统设计方式下存在较大的面积和功耗开销的问题。
Description
技术领域
本发明涉及微处理器设计领域,具体涉及一种支持多种精度的乘法器及微处理器。
背景技术
近年来,机器学习等计算机应用技术飞速发展,对硬件架构的计算能效提出了更高的需求。然而,摩尔定律的实效,通过减小晶体管尺寸来获得更高能效的方式即将走到尽头,亟需微处理器架构特别是运算单元架构上的突破来满足能效需求。
乘法运算是机器学习应用程序中最常见的一类运算,当今大多高性能处理器、深度学习加速器中都实现了硬件乘法单元。机器学习等应用程序往往存在到多种数据类型,为了满足不同数据的计算需求,一种直接的方式是为每种数据类型设计一个乘法器。然而,以这样的方式实现的硬件架构存在巨大的面积和功耗开销问题。因此,设计低开销的支持多种精度数据类型的乘法单元能够解决上述问题。
整数类型是计算机中的一种基本数据类型,包括有符号整数和无符号整数。IEEE754定义的标准32位浮点数(FP32)是机器学习应用使用的常见数据类型之一。一个FP32数由1位符号位、8位偏移的指数位和23位截断的尾数位三部分组成,23位截断的尾数位加上1位前置的隐藏位“1”组成完整的24位尾数。两个浮点数的乘法运算涉及到尾数位的相乘、符号位相异或、指数位的相加,以及规格化和舍入步骤。近年来,研究表明低精度数据类型可以不损失机器学习模型的预测准确率,而因为实现低精度数据的乘法等运算的硬件开销小,使得低精度的数据类型被广泛地应用到各类机器学习模型中。低精度数据类型有IEEE754定义的16位浮点数FP16(1位符号位,5位偏移的指数位和10位截断的尾数位),8位浮点数FP8-E5M2(1位符号位,5位偏移的指数位和2位截断的尾数位)、8位浮点数FP8-E4M3(1位符号位,4位偏移的指数位和3位截断的尾数位),以及8位的定点数FIX8(有符号整数INT8和无符号整数UINT8)等等。为了满足机器学习应用程序的计算需求,设计支持上述低精度数据类型的乘法运算单元,尤为重要。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种支持多种精度的乘法器及微处理器,本发明旨在实现FP32、FP8-E5M2、FP8-E4M3、INT8、UINT8这五种数据类型的乘法运算单元的传统设计方式下存在较大的面积和功耗开销的问题。
为了解决上述技术问题,本发明采用的技术方案为:
一种支持多种精度的乘法器,包括包含四个并行的浮点数FP8乘法运算单元的FP8数据通路,包含八个并行的定点数FIX8乘法运算单元的FIX8数据通路,以及整合数据通路,所述FP8数据通路用于在一个时钟周期的延迟内完成4次浮点数FP8乘法运算,所述FIX8数据通路用于在一个时钟周期的延迟内完成8次定点数FIX8乘法运算,所述整合数据通路用于将FP8数据通路和FIX8数据通路的输出整合得到4次并行的16位浮点数FP16乘法或者单个32位浮点数FP32乘法结果。
可选地,所述FP8数据通路包括第一输入寄存器、第一输入处理模块、第一乘法单元、指数求和模块、8位浮点数的规格化和舍入模块以及第一输出寄存器,所述第一输入寄存器的输入操作数包括2组8位浮点数fp_src0和fp_src1,所述第一输入处理模块的输入端和第一输入寄存器的输出端相连,所述第一输入处理模块的输出端分别与第一乘法单元、指数求和模块、8位浮点数的规格化和舍入模块的输入端相连,所述第一乘法单元、指数求和模块的输出端分别与8位浮点数的规格化和舍入模块的输入端以及整合数据通路的输入端相连,所述8位浮点数的规格化和舍入模块的输出端与第一输出寄存器的输入端相连,所述第一乘法单元包括四个并行的4×4固定长度的乘法器模块以用于在一个时钟周期的延迟内完成4次浮点数FP8乘法运算来完成尾数乘积计算,所述第一输出寄存器用于输出8位浮点数的乘法运算结果fp8_rslt。
可选地,所述FIX8数据通路包括第二输入寄存器、第二输入处理模块、第二乘法单元和第二输出寄存器,所述第二输入寄存器的输入操作数包括2组8位定点数src0和src1,所述第二输入寄存器、第二输入处理模块、第二乘法单元和第二输出寄存器依次相连,所述第二乘法单元的输出端还与整合数据通路的输入端相连,所述第二乘法单元包括4个8×8固定长度的乘法器模块和4个4×8/8×8混合乘法器模块以用于在一个时钟周期的延迟内完成8次定点数FIX8乘法运算或者完成4次定点数FIX8乘法和8次4×8乘法运算,所述第二输出寄存器用于输出8位定点数的乘法运算结果fix8_rslt。
可选地,所述整合数据通路包括流水线寄存器、移位器和加法器、16位和32位浮点数的规格化和输入模块以及2路选择器,所述流水线寄存器的输入端分别与FP8数据通路的第一乘法单元、指数求和模块以及FIX8数据通路的第二乘法单元的输出端相连,所述流水线寄存器的输出端分别与移位器和加法器、16位和32位浮点数的规格化和输入模块的输入端以及2路选择器的控制端相连,所述移位器和加法器的输入端与16位和32位浮点数的规格化和输入模块的输入端相连,所述16位和32位浮点数的规格化和输入模块的两个输出端分别与2路选择器的输入端相连以通过2路选择器选择4次并行的16位浮点数FP16乘法或者单个32位浮点数FP32乘法结果输出。
可选地,所述指数求和模块包括选择器、5位的压缩器CSA3:2、高位补0模块、低位补0模块和6位加法器CPA,所述选择器用于在8位浮点数控制信号fp_mode的控制下在输入的FP8-E5M2和FP8-E4M3两种数据类型的指数偏移量择一送入5位的压缩器CSA3:2,所述5位的压缩器CSA3:2用于将输入的两个输入指数exp1与exp2以及选择器选择的指数偏移量压缩成高位数和低位数并输出,所述高位补0模块用于将输入的高位数补0,所述低位补0模块用于将输入的低位数补0,所述6位加法器CPA用于将补0后的高位数和低位数求和后作为指数求和结果并输出。
可选地,所述4×8/8×8混合乘法器模块包括三个选择器、两个Booth编码器、两个压缩器CSA3:2、1个压缩器CSA4:2和三个加法器CPA,所述4×8/8×8混合乘法器模块输入的操作数a、b为输入的8位操作数,c、d为输入的4位操作数,且带有一个模式控制信号mode,第一个选择器用于受模式控制信号mode的控制在操作数b、c的前4位b[3:0]和c[3:0]之间择一输出到第一个Booth编码器,第二个选择器用于受模式控制信号mode的控制在操作数a、b的前8位a[7:0]和b[7:0]之间择一输出到第二个Booth编码器,第三个选择器用于受模式控制信号mode的控制在操作数b的部分b[7:3]、操作数d进行低位的1位零扩展后的{d[3:0],0}之间择一输出到第二个Booth编码器;第一个Booth编码器用于将操作数a的前8位a[7:0]、模式控制信号mode以及第一个选择器的输出乘法运算编码成多个部分积的形式;第二个Booth编码器用于将第二个选择器的输出、模式控制信号mode以及第三个选择器的输出乘法运算编码成多个部分积的形式;第一个压缩器CSA3:2用于将第一个Booth编码器的输出的3个数压缩成2个数并通过第一个加法器CPA得到第一个4×8乘法运算的运算结果rslt_4x8_1;第二个压缩器CSA3:2用于将第二个Booth编码器的输出的3个数压缩成2个数并通过第二个加法器CPA得到第二个4×8乘法运算的运算结果rslt_4x8_2;压缩器CSA4:2用于将两个压缩器CSA3:2输出的四个数压缩成2个数并通过第三个加法器CPA得到8×8乘法运算的运算结果rslt_8x8。
可选地,所述FP8数据通路的第一输入寄存器的输入端还连接有模式控制信号mode和精度控制信号fp_mode,所述FIX8数据通路的第二输入寄存器的输入端相连还连接有模式控制信号mode、精度控制信号fp_prc和符号控制信号sign,所述模式控制信号mode、精度控制信号fp_mode、精度控制信号fp_prc以及符号控制信号sign用于组合控制支持多种精度的乘法器支持FP32、FP8-E5M2、FP8-E4M3、INT8、UINT8五种精度的乘法运算,包括:在模式控制信号mode的值为0、精度控制信号fp_mode的值为0时,通过FP8数据通路执行4个并行的FP8-E5M2类型的乘法运算;在模式控制信号mode的值为0、精度控制信号fp_mode的值为1时,通过FP8数据通路执行4个并行的FP8-E4M3类型的乘法运算;在模式控制信号mode的值为0、符号控制信号sign的值为0时,通过FIX8数据通路执行8个并行的UINT8类型的乘法运算;在模式控制信号mode的值为0、符号控制信号sign的值为1时,通过FIX8数据通路执行8个并行的INT8类型的乘法运算;在模式控制信号mode的值为1、精度控制信号fp_prc的值为0时,通过FP8数据通路、FIX8数据通路和整合数据通路执行4个并行的FP16乘法运算;在模式控制信号mode的值为1、精度控制信号fp_prc的值为1时,通过FP8数据通路、FIX8数据通路和整合数据通路执行1个FP32乘法运算。
可选地,所述通过FP8数据通路执行4个并行的FP8-E5M2或FP8-E4M3类型的乘法运算包括:第一输入处理模块从输入的以4个8位浮点数为一组的两组FP8操作数提取符号位、指数位、和尾数位,对尾数位进行前置1的扩展,并将两两符号位做异或运算,得到结果符号位;接着指数求和模块将两两指数位相加,并减去偏移量,得到指数和;第一乘法单元将两两尾数相乘,得到尾数积;8位浮点数的规格化和舍入模块对尾数积进行规格化移位以保证最高位为1,同时对指数位进行加1修正,最后对尾数位进行舍入处理得到最终的4次FP8浮点乘法结果作为FP8-E5M2或FP8-E4M3类型的乘法运算结果并通过第一输出寄存器输出;所述通过FIX8数据通路执行8个并行的UINT8类型的乘法运算包括:第二输入处理模块将输入的两组64位输入操作数分别划分成8个8位无符号数,接着在符号控制信号sign的控制下,第二乘法单元的4个8×8固定长度的乘法器模块进行4次无符号8×8乘法运算;在模式控制信号mode和符号控制信号sign的控制下,4个4×8/8×8混合乘法器模块进行4次无符号数8×8乘法运算,最后通过第二输出寄存器将来自第二乘法单元的运算结果打包成128位的输出作为运算结果。
可选地,所述通过FP8数据通路、FIX8数据通路和整合数据通路执行4个并行的FP16乘法运算包括:从第一个时钟周期开始时,FIX8数据通路的第二输入处理模块将输入的两组64位的输入操作数分别划分成4个FP16浮点数,进行符号位、指数位和尾数位的提取,并对每一个前置1扩展后的11位的尾数位再做1位的零扩展,再划分成高4位和低8位两部分,高4位作为第一乘法单元中4×4固定长度的乘法器模块的输入,而高4位和低8位共同作为第二乘法器模块的输入,同时FP8数据通路的指数求和模块进行指数求和,结果存入整合数据通路的流水线寄存器中;第二个时钟周期开始时,整合数据通路对流水线寄存器的尾数部分积进行移位求和,得到4个11×11的尾数积,然后对尾数积、来自FP8数据通路的指数和与结果符号位,进行规格化和舍入,得到最终的4个并行的FP16乘法运算的运算结果;所述通过FP8数据通路、FIX8数据通路和整合数据通路执行1个FP32乘法运算包括:第一个时钟周期开始时,FIX8数据通路的第二输入处理模块从两组64位输入操作数中分别提取1个32位浮点数FP32,并生成符号位、指数位和尾数位,并将前置1扩展后的24位尾数划分成高12位和低12位两部分,每12位再划分成高4位和低8位两个部分,作为所有乘法器模块的输入,同时通过FP8数据通路的指数求和模块进行指数求和,结果存入整合数据通路的流水线寄存器中;在第二个时钟周期,整合数据通路将所有乘法器的运算结果通过移位求和的方式得到24×24乘法结果,然后,对尾数积、来自FP8数据通路的指数和与结果符号位,进行规格化和舍入得到最终的1个FP32乘法运算的运算结果。
此外,本发明还提供一种微处理器,包括带有算术逻辑单元ALU的微处理器本体,所述算术逻辑单元ALU中带有支持多种精度的乘法器,乘法器为前述支持多种精度的乘法器。
和现有技术相比,本发明主要具有下述优点:
1、本发明能够支持FP32、FP8-E5M2、FP8-E4M3、INT8、UINT8这5种数据类型的乘法运算,满足众多应用程序的计算需求。
2、通过组合和资源复用的方式实现对16位和32位浮点数乘法的支持以达到减少面积和功耗开销的目标,综合后的整体面积和功耗开销小。整个乘法器相对于独立的各乘法器而言,节省了近一半的面积。低开销的设计使得该发明适用于各种通用处理器和硬件加速器的设计。
3、本发明中采用FP8数据通路、FIX8数据通路的并行结构,低精度数据格式FP8-E5M2、FP8-E4M3、INT8、UINT8的并发度较高,可提供较大的运算力,适用于向量化硬件加速器。
附图说明
图1为本发明实施例中支持多种精度的乘法器的结构示意图。
图2为本发明实施例中指数求和模块的结构示意图。
图3为本发明实施例中4×8/8×8混合乘法器模块的结构示意图。
具体实施方式
如图1所示,本实施例支持多种精度的乘法器包括包含四个并行的浮点数FP8乘法运算单元的FP8数据通路,包含八个并行的定点数FIX8乘法运算单元的FIX8数据通路,以及整合数据通路,所述FP8数据通路用于在一个时钟周期的延迟内完成4次浮点数FP8乘法运算,所述FIX8数据通路用于在一个时钟周期的延迟内完成8次定点数FIX8乘法运算,所述整合数据通路用于将FP8数据通路和FIX8数据通路的输出整合得到4次并行的16位浮点数FP16乘法或者单个32位浮点数FP32乘法结果。本实施例支持多种精度的乘法器通过组合和资源复用的方式,实现对16位和32位浮点数乘法的支持,以达到减少面积和功耗开销的目标。该设计包括三个方面的内容,其一为8位浮点数的数据通路,该数据通路由4个并行的FP8乘法运算单元组成,有4个4×4固定长度乘法器用来计算尾数乘积,可以在一个时钟周期的延迟内完成4次FP8乘法运算。其二是8位定点数的数据通路,该数据通路由8个并行的FIX8乘法运算单元组成,有4个8×8固定长度乘法器和4个4x8/8×8混合乘法器,可以在一个时钟周期的延迟内完成8次FIX8乘法运算。此外,本实施例支持多种精度的乘法器使用额外的加法器、移位器和2路选择器,来整合FP8和FIX8两个数据通路的计算结果,得到4次并行的FP16乘法或者单个FP32乘法结果。
如图1所示,本实施例中的FP8数据通路包括第一输入寄存器、第一输入处理模块、第一乘法单元、指数求和模块、8位浮点数的规格化和舍入模块以及第一输出寄存器,所述第一输入寄存器的输入操作数包括2组8位浮点数fp_src0和fp_src1,所述第一输入处理模块的输入端和第一输入寄存器的输出端相连,所述第一输入处理模块的输出端分别与第一乘法单元、指数求和模块、8位浮点数的规格化和舍入模块的输入端相连,所述第一乘法单元、指数求和模块的输出端分别与8位浮点数的规格化和舍入模块的输入端以及整合数据通路的输入端相连,所述8位浮点数的规格化和舍入模块的输出端与第一输出寄存器的输入端相连,所述第一乘法单元包括四个并行的4×4固定长度的乘法器模块以用于在一个时钟周期的延迟内完成4次浮点数FP8乘法运算来完成尾数乘积计算,所述第一输出寄存器用于输出8位浮点数的乘法运算结果fp8_rslt。4次并行的FP16乘法运算需要进行4次11×11的尾数乘法,本设计中将这1次11×11的尾数乘法划拆分成1次4×4乘法、1次8×8乘法和2次4×8乘法运算,分别由4×4固定位宽乘法器、8×8固定位宽乘法器和4×8/8×8混合乘法器来完成,再将各部分乘法结果通过组合移位后相加的方式得到12×12乘法结果,该12×12乘法结果的低22位即为11×11尾数乘法结果。1次FP32乘法运算需要进行1次24×24的尾数乘法,本设计将1次24×24乘法拆分成4次12×12乘法运算,其中的12×12乘法基于4×4乘法器模块、8×8乘法器模块和4×8/8×8混合乘法器模块按照上述的方式来实现,再将各部分乘法结果通过组合移位后相加的方式得到24×24乘法结果。
如图1所示,本实施例中的FIX8数据通路包括第二输入寄存器、第二输入处理模块、第二乘法单元和第二输出寄存器,所述第二输入寄存器的输入操作数包括2组8位定点数src0和src1,所述第二输入寄存器、第二输入处理模块、第二乘法单元和第二输出寄存器依次相连,所述第二乘法单元的输出端还与整合数据通路的输入端相连,所述第二乘法单元包括4个8×8固定长度的乘法器模块和4个4×8/8×8混合乘法器模块以用于在一个时钟周期的延迟内完成8次定点数FIX8乘法运算或4次定点数FIX8乘法和8次4×8乘法运算,所述第二输出寄存器用于输出8位定点数的乘法运算结果fix8_rslt。
如图1所示,本实施例中的整合数据通路包括流水线寄存器、移位器和加法器、16位和32位浮点数的规格化和输入模块以及2路选择器,所述流水线寄存器的输入端分别与FP8数据通路的第一乘法单元、指数求和模块以及FIX8数据通路的第二乘法单元的输出端相连,所述流水线寄存器的输出端分别与移位器和加法器、16位和32位浮点数的规格化和输入模块的输入端以及2路选择器的控制端相连,所述移位器和加法器的输入端与16位和32位浮点数的规格化和输入模块的输入端相连,所述16位和32位浮点数的规格化和输入模块的两个输出端分别与2路选择器的输入端相连以通过2路选择器选择4次并行的16位浮点数FP16乘法或者单个32位浮点数FP32乘法结果输出。
如图2所示,本实施例中的指数求和模块包括选择器、5位的压缩器CSA3:2、高位补0模块、低位补0模块和6位加法器CPA,所述选择器用于在8位浮点数控制信号fp_mode的控制下在输入的FP8-E5M2和FP8-E4M3两种数据类型的指数偏移量择一送入5位的压缩器CSA3:2,所述5位的压缩器CSA3:2用于将输入的两个输入指数exp1与exp2以及选择器选择的指数偏移量压缩成高位数和低位数并输出,所述高位补0模块用于将输入的高位数补0,所述低位补0模块用于将输入的低位数补0,所述6位加法器CPA用于将补0后的高位数和低位数求和后作为指数求和结果并输出。图2中,有箭头旁边的数字表示线路中的数据位宽。其中,fp_mode为精度控制信号,exp1与exp2为两个输入指数,“1_0001”与“1_1001”分别是FP8-E5M2和FP8-E4M3的指数偏移量的二进制表示;选择器在控制信号的控制下从两个输入中选择一个作为输出;压缩器CSA4:2将4个输入压缩成2个数;加法器用来计算两个数的和。
4×8/8×8混合乘法器除了能够完成8×8乘法运算外,还可以实现两个并行的4×8乘法运算。如图3所示,本实施例中的4×8/8×8混合乘法器模块包括三个选择器、两个Booth编码器、两个压缩器CSA3:2、1个压缩器CSA4:2和三个加法器CPA,所述4×8/8×8混合乘法器模块输入的操作数a、b为输入的8位操作数,c、d为输入的4位操作数,且带有一个模式控制信号mode,第一个选择器用于受模式控制信号mode的控制在操作数b、c的前4位b[3:0]和c[3:0]之间择一输出到第一个Booth编码器,第二个选择器用于受模式控制信号mode的控制在操作数a、b的前8位a[7:0]和b[7:0]之间择一输出到第二个Booth编码器,第三个选择器用于受模式控制信号mode的控制在操作数b的部分b[7:3]、操作数d进行低位的1位零扩展后的{d[3:0],0}之间择一输出到第二个Booth编码器;第一个Booth编码器用于将操作数a的前8位a[7:0]、模式控制信号mode以及第一个选择器的输出乘法运算编码成多个部分积的形式;第二个Booth编码器用于将第二个选择器的输出、模式控制信号mode以及第三个选择器的输出乘法运算编码成多个部分积的形式;第一个压缩器CSA3:2用于将第一个Booth编码器的输出的3个数压缩成2个数并通过第一个加法器CPA得到第一个4×8乘法运算的运算结果rslt_4x8_1;第二个压缩器CSA3:2用于将第二个Booth编码器的输出的3个数压缩成2个数并通过第二个加法器CPA得到第二个4×8乘法运算的运算结果rslt_4x8_2;压缩器CSA4:2用于将两个压缩器CSA3:2输出的四个数压缩成2个数并通过第三个加法器CPA得到8×8乘法运算的运算结果rslt_8x8。如图3所示,本实施例中的混合乘法器的输入为两个8位操作数a、b,两个4位操作数c、d和1位控制位mode和1位。在mode信号的控制下,进行1次8×8乘法(mode=0)或2次并行4x8乘法(mode=1),这两种乘法运算共用一套编码和第一级压缩器得到中间的压缩结果carry0、sum0和carry1、sum1。最后,将carry0与sum0移位相加得到第一个4x8乘法结果,将carry1与sum1移位相加得到第二个4×8乘法结果;将carry0、sum0、carry1、sum1移位相加,得到8×8乘法结果。图3中,a、b为输入的8位操作数,c、d为输入的4位操作数,mode为模式控制信号;rslt_4x8_1与rslt_4x8_2为两个4x8乘法运算的运算结果,rslt_8x8是8×8乘法运算的运算结果;选择器从两个输入中选择一个作为输出;Booth编码器将乘法运算编码成多个部分积的形式;压缩器CSA3:2将3个输入压缩成2个数,压缩器CSA4:2将4个输入压缩成2个数;加法器用来计算两个数的和。
图1中,所有箭头旁边的数字表示线路中的数据位宽;fp_src0、fp_src1为2组8位浮点数,fp_mode为8位浮点数控制信号,mode模式控制信号,src0、src1为2组8位定点数、16位浮点数或者32位浮点数,fp_prc精度控制信号、sign为符号控制信号;fp8_rslt为8位浮点数的乘法运算结果,fp16_32_rslt为16位或32位浮点数的乘法运算结果,fix8_rslt为8位定点数的乘法运算结果。第一输入寄存器/第二输入寄存器用于缓存输入信号,第一输入处理模块/第二输入处理模块从输入中提取符号位、指数和尾数;第一乘法器模块/第二乘法器模块用于完成乘法运算,指数求和模块生成浮点数的指数和,整合数据通路中的移位器和加法器用于生成16位和32位浮点数的尾数积;8位浮点数的规格化和舍入模块用于执行8位浮点数规格化和舍入;16位和32位浮点数的规格化和舍入模块用于执行16位和32位浮点数规格化和舍入,包括对尾数积进行规格化移位,并更新浮点数指数和,最后生成浮点乘法的运算结果;各个选择器从两个输入中选择一个作为输出;流水线寄存器缓存当前流水段的运算结果,将FP8数据通路/FIX8数据通路和整合数据通路划分为两阶段的流水段;第一输出寄存器/第二输出寄存器用于缓存输出信号。
如图1所示,本实施例中的所述FP8数据通路的第一输入寄存器的输入端还连接有模式控制信号mode和精度控制信号fp_mode,所述FIX8数据通路的第二输入寄存器的输入端相连还连接有模式控制信号mode、精度控制信号fp_prc和符号控制信号sign,所述模式控制信号mode、精度控制信号fp_mode、精度控制信号fp_prc以及符号控制信号sign用于组合控制支持多种精度的乘法器支持FP32、FP8-E5M2、FP8-E4M3、INT8、UINT8五种精度的乘法运算,包括:在模式控制信号mode的值为0、精度控制信号fp_mode的值为0(mode=0,fp_mode=0)时,通过FP8数据通路执行4个并行的FP8-E5M2;在模式控制信号mode的值为0、精度控制信号fp_mode的值为1(mode=0,fp_mode=1)时,通过FP8数据通路执行4个并行的FP8-E4M3;在模式控制信号mode的值为0、符号控制信号sign的值为0时,通过FIX8数据通路执行8个并行的UINT8类型的乘法运算;在模式控制信号mode的值为0、符号控制信号sign的值为1时,通过FIX8数据通路执行8个并行的INT8类型的乘法运算;在模式控制信号mode的值为1、精度控制信号fp_prc的值为0时,通过FP8数据通路、FIX8数据通路和整合数据通路执行4个并行的FP16乘法运算;在模式控制信号mode的值为1、精度控制信号fp_prc的值为1时,通过FP8数据通路、FIX8数据通路和整合数据通路执行1个FP32乘法运算。其中,FP8数据通路和FIX8数据通路可以并行执行。
本实施例中,所述通过FP8数据通路执行4个并行的FP8-E5M2或FP8-E4M3类型的乘法运算包括:第一输入处理模块从输入的以4个8位浮点数为一组的两组FP8操作数提取符号位、指数位、和尾数位,将两两符号位做异或运算得到结果符号位,并对尾数位进行前置1的扩展;接着指数求和模块将两两指数位相加,并减去偏移量,得到指数和;第一乘法单元将两两尾数相乘,得到尾数积;8位浮点数的规格化和舍入模块对尾数和进行规格化移位以保证最高位为1,同时对指数位进行加1修正,最后对尾数位进行舍入处理得到最终的4次FP8浮点乘法结果作为FP8-E5M2或FP8-E4M3类型的乘法运算结果并通过第一输出寄存器输出。
本实施例中,通过FIX8数据通路执行8个并行的UINT8类型的乘法运算包括:第二输入处理模块将输入的两组64位输入操作数分别划分成8个8位无符号数,接着在符号控制信号sign的控制下,第二乘法单元的4个8×8固定长度的乘法器模块进行4次无符号8×8乘法运算;在模式控制信号mode和符号控制信号sign的控制下,4个4×8/8×8混合乘法器模块进行4次无符号数8×8乘法运算,最后通过第二输出寄存器将来自第二乘法单元的运算结果打包成128位的输出作为运算结果。通过FIX8数据通路执行8个并行的INT8类型的乘法运算,和上述运算的唯一区别为符号位处理不同,而且带符号位的乘法运算中符号位处理为公知方法,故在本实施例中不再详述。
本实施例中,通过FP8数据通路、FIX8数据通路和整合数据通路执行4个并行的FP16乘法运算,包括:从第一个时钟周期开始时,FIX8数据通路的第二输入处理模块将输入的两组64位的输入操作数分别划分成4个FP16浮点数,进行符号位、指数位和尾数位的提取,并对每一个前置1扩展后的11位的尾数位再做1位的零扩展,再划分成高4位和低8位两部分,高4位作为第一乘法单元中4×4固定长度的乘法器模块的输入,而高4位和低8位共同作为第二乘法器模块的输入,同时FP8数据通路的指数求和模块进行指数求和,结果存入整合数据通路的流水线寄存器中;第二个时钟周期开始时,整合数据通路对流水线寄存器的尾数部分积进行移位求和,得到4个11×11的尾数积,然后对尾数积、来自FP8数据通路的指数和与结果符号位,进行规格化和舍入,得到最终的4个并行的FP16乘法运算的运算结果。
本实施例中,通过FP8数据通路、FIX8数据通路和整合数据通路执行1个FP32乘法运算,包括:第一个时钟周期开始时,FIX8数据通路的第二输入处理模块从两组64位输入操作数中分别提取1个32位浮点数FP32,并生成符号位、指数位和尾数位,并将前置1扩展后的24位尾数划分成高12位和低12位两部分,每12位再划分成高4位和低8位两个部分,作为所有乘法器模块的输入,同时通过FP8数据通路的指数求和模块进行指数求和,结果存入整合数据通路的流水线寄存器中;在第二个时钟周期,整合数据通路将所有乘法器的运算结果通过移位求和的方式得到24×24乘法结果,然后,对尾数积、来自FP8数据通路的指数和与结果符号位,进行规格化和舍入得到最终的1个FP32乘法运算的运算结果。
综上所述,本实施例支持多种精度的乘法器包括包含四个并行的浮点数FP8乘法运算单元的FP8数据通路,包含八个并行的定点数FIX8乘法运算单元的FIX8数据通路,以及整合数据通路,FP8数据通路用于在一个时钟周期的延迟内完成4次浮点数FP8乘法运算,FIX8数据通路用于在一个时钟周期的延迟内完成8次定点数FIX8乘法运算,整合数据通路用于将FP8数据通路和FIX8数据通路的输出整合得到4次并行的16位浮点数FP16乘法或者单个32位浮点数FP32乘法结果。本实施例支持多种精度的乘法器以硬件资源组合的方式,实现了一种新型的、低开销的、支持多种精度(FP32、FP8-E5M2、FP8-E4M3、INT8、UINT8)的混合精度的乘法器,通过组合和资源复用的方式实现对16位和32位浮点数乘法的支持以达到减少面积和功耗开销的目标,与离散的乘法器设计方式,本实施例支持多种精度的乘法器的面积开销更小,可满足大量应用程序的精度需求。
此外,本实施例还提供一种微处理器,包括带有算术逻辑单元ALU的微处理器本体,算术逻辑单元ALU中带有支持多种精度的乘法器,且该乘法器为本实施例前述的支持多种精度的乘法器,该微处理器不仅可以采用独立的微处理器芯片的形式,还可以采用作为辅助的处理器运算加速芯片的形式。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种支持多种精度的乘法器,其特征在于,包括包含四个并行的浮点数FP8乘法运算单元的FP8数据通路,包含八个并行的定点数FIX8乘法运算单元的FIX8数据通路,以及整合数据通路,所述FP8数据通路用于在一个时钟周期的延迟内完成4次浮点数FP8乘法运算,所述FIX8数据通路用于在一个时钟周期的延迟内完成8次定点数FIX8乘法运算,所述整合数据通路用于将FP8数据通路和FIX8数据通路的输出整合得到4次并行的16位浮点数FP16乘法或者单个32位浮点数FP32乘法结果。
2.根据权利要求1所述的支持多种精度的乘法器,其特征在于,所述FP8数据通路包括第一输入寄存器、第一输入处理模块、第一乘法单元、指数求和模块、8位浮点数的规格化和舍入模块以及第一输出寄存器,所述第一输入寄存器的输入操作数包括2组8位浮点数fp_src0和fp_src1,所述第一输入处理模块的输入端和第一输入寄存器的输出端相连,所述第一输入处理模块的输出端分别与第一乘法单元、指数求和模块、8位浮点数的规格化和舍入模块的输入端相连,所述第一乘法单元、指数求和模块的输出端分别与8位浮点数的规格化和舍入模块的输入端以及整合数据通路的输入端相连,所述8位浮点数的规格化和舍入模块的输出端与第一输出寄存器的输入端相连,所述第一乘法单元包括四个并行的4×4固定长度的乘法器模块以用于在一个时钟周期的延迟内完成4次浮点数FP8乘法运算来完成尾数乘积计算,所述第一输出寄存器用于输出8位浮点数的乘法运算结果fp8_rslt。
3.根据权利要求2所述的支持多种精度的乘法器,其特征在于,所述FIX8数据通路包括第二输入寄存器、第二输入处理模块、第二乘法单元和第二输出寄存器,所述第二输入寄存器的输入操作数包括2组8位定点数src0和src1,所述第二输入寄存器、第二输入处理模块、第二乘法单元和第二输出寄存器依次相连,所述第二乘法单元的输出端还与整合数据通路的输入端相连,所述第二乘法单元包括4个8×8固定长度的乘法器模块和4个4×8/8×8混合乘法器模块以用于在一个时钟周期的延迟内完成8次定点数FIX8乘法运算或者完成4次定点数FIX8乘法和8次4×8乘法运算,所述第二输出寄存器用于输出8位定点数的乘法运算结果fix8_rslt。
4.根据权利要求3所述的支持多种精度的乘法器,其特征在于,所述整合数据通路包括流水线寄存器、移位器和加法器、16位和32位浮点数的规格化和输入模块以及2路选择器,所述流水线寄存器的输入端分别与FP8数据通路的第一乘法单元、指数求和模块以及FIX8数据通路的第二乘法单元的输出端相连,所述流水线寄存器的输出端分别与移位器和加法器、16位和32位浮点数的规格化和输入模块的输入端以及2路选择器的控制端相连,所述移位器和加法器的输入端与16位和32位浮点数的规格化和输入模块的输入端相连,所述16位和32位浮点数的规格化和输入模块的两个输出端分别与2路选择器的输入端相连以通过2路选择器选择4次并行的16位浮点数FP16乘法或者单个32位浮点数FP32乘法结果输出。
5.根据权利要求2所述的支持多种精度的乘法器,其特征在于,所述指数求和模块包括选择器、5位的压缩器CSA3:2、高位补0模块、低位补0模块和6位加法器CPA,所述选择器用于在8位浮点数控制信号fp_mode的控制下在输入的FP8-E5M2和FP8-E4M3两种数据类型的指数偏移量择一送入5位的压缩器CSA3:2,所述5位的压缩器CSA3:2用于将输入的两个输入指数exp1与exp2以及选择器选择的指数偏移量压缩成高位数和低位数并输出,所述高位补0模块用于将输入的高位数补0,所述低位补0模块用于将输入的低位数补0,所述6位加法器CPA用于将补0后的高位数和低位数求和后作为指数求和结果并输出。
6.根据权利要求3所述的支持多种精度的乘法器,其特征在于,所述4×8/8×8混合乘法器模块包括三个选择器、两个Booth编码器、两个压缩器CSA3:2、1个压缩器CSA4:2和三个加法器CPA,所述4×8/8×8混合乘法器模块输入的操作数a、b为输入的8位操作数,c、d为输入的4位操作数,且带有一个模式控制信号mode,第一个选择器用于受模式控制信号mode的控制在操作数b、c的前4位b[3:0]和c[3:0]之间择一输出到第一个Booth编码器,第二个选择器用于受模式控制信号mode的控制在操作数a、b的前8位a[7:0]和b[7:0]之间择一输出到第二个Booth编码器,第三个选择器用于受模式控制信号mode的控制在操作数b的部分b[7:3]、操作数d进行低位的1位零扩展后的{d[3:0],0}之间择一输出到第二个Booth编码器;第一个Booth编码器用于将操作数a的前8位a[7:0]、模式控制信号mode以及第一个选择器的输出乘法运算编码成多个部分积的形式;第二个Booth编码器用于将第二个选择器的输出、模式控制信号mode以及第三个选择器的输出乘法运算编码成多个部分积的形式;第一个压缩器CSA3:2用于将第一个Booth编码器的输出的3个数压缩成2个数并通过第一个加法器CPA得到第一个4×8乘法运算的运算结果rslt_4x8_1;第二个压缩器CSA3:2用于将第二个Booth编码器的输出的3个数压缩成2个数并通过第二个加法器CPA得到第二个4×8乘法运算的运算结果rslt_4x8_2;压缩器CSA4:2用于将两个压缩器CSA3:2输出的四个数压缩成2个数并通过第三个加法器CPA得到8×8乘法运算的运算结果rslt_8x8。
7.根据权利要求4所述的支持多种精度的乘法器,其特征在于,所述FP8数据通路的第一输入寄存器的输入端还连接有模式控制信号mode和精度控制信号fp_mode,所述FIX8数据通路的第二输入寄存器的输入端相连还连接有模式控制信号mode、精度控制信号fp_prc和符号控制信号sign,所述模式控制信号mode、精度控制信号fp_mode、精度控制信号fp_prc以及符号控制信号sign用于组合控制支持多种精度的乘法器支持FP32、FP8-E5M2、FP8-E4M3、INT8、UINT8五种精度的乘法运算,包括:在模式控制信号mode的值为0、精度控制信号fp_mode的值为0时,通过FP8数据通路执行4个并行的FP8-E5M2类型的乘法运算;在模式控制信号mode的值为0、精度控制信号fp_mode的值为1时,通过FP8数据通路执行4个并行的FP8-E4M3类型的乘法运算;在模式控制信号mode的值为0、符号控制信号sign的值为0时,通过FIX8数据通路执行8个并行的UINT8类型的乘法运算;在模式控制信号mode的值为0、符号控制信号sign的值为1时,通过FIX8数据通路执行8个并行的INT8类型的乘法运算;在模式控制信号mode的值为1、精度控制信号fp_prc的值为0时,通过FP8数据通路、FIX8数据通路和整合数据通路执行4个并行的FP16乘法运算;在模式控制信号mode的值为1、精度控制信号fp_prc的值为1时,通过FP8数据通路、FIX8数据通路和整合数据通路执行1个FP32乘法运算。
8.根据权利要求7所述的支持多种精度的乘法器,其特征在于,所述通过FP8数据通路执行4个并行的FP8-E5M2或FP8-E4M3类型的乘法运算包括:第一输入处理模块从输入的以4个8位浮点数为一组的两组FP8操作数提取符号位、指数位、和尾数位,对尾数位进行前置1的扩展,并将两两符号位做异或运算,得到结果符号位;接着指数求和模块将两两指数位相加,并减去偏移量,得到指数和;第一乘法单元将两两尾数相乘,得到尾数积;8位浮点数的规格化和舍入模块对尾数积进行规格化移位以保证最高位为1,同时对指数位进行加1修正,最后对尾数位进行舍入处理得到最终的4次FP8浮点乘法结果作为FP8-E5M2或FP8-E4M3类型的乘法运算结果并通过第一输出寄存器输出;所述通过FIX8数据通路执行8个并行的UINT8类型的乘法运算包括:第二输入处理模块将输入的两组64位输入操作数分别划分成8个8位无符号数,接着在符号控制信号sign的控制下,第二乘法单元的4个8×8固定长度的乘法器模块进行4次无符号8×8乘法运算;在模式控制信号mode和符号控制信号sign的控制下,4个4×8/8×8混合乘法器模块进行4次无符号数8×8乘法运算,最后通过第二输出寄存器将来自第二乘法单元的运算结果打包成128位的输出作为运算结果。
9.根据权利要求7所述的支持多种精度的乘法器,其特征在于,所述通过FP8数据通路、FIX8数据通路和整合数据通路执行4个并行的FP16乘法运算包括:从第一个时钟周期开始时,FIX8数据通路的第二输入处理模块将输入的两组64位的输入操作数分别划分成4个FP16浮点数,进行符号位、指数位和尾数位的提取,并对每一个前置1扩展后的11位的尾数位再做1位的零扩展,再划分成高4位和低8位两部分,高4位作为第一乘法单元中4×4固定长度的乘法器模块的输入,而高4位和低8位共同作为第二乘法器模块的输入,同时FP8数据通路的指数求和模块进行指数求和,结果存入整合数据通路的流水线寄存器中;第二个时钟周期开始时,整合数据通路对流水线寄存器的尾数部分积进行移位求和,得到4个11×11的尾数积,然后对尾数积、来自FP8数据通路的指数和与结果符号位,进行规格化和舍入,得到最终的4个并行的FP16乘法运算的运算结果;所述通过FP8数据通路、FIX8数据通路和整合数据通路执行1个FP32乘法运算包括:第一个时钟周期开始时,FIX8数据通路的第二输入处理模块从两组64位输入操作数中分别提取1个32位浮点数FP32,并生成符号位、指数位和尾数位,并将前置1扩展后的24位尾数划分成高12位和低12位两部分,每12位再划分成高4位和低8位两个部分,作为所有乘法器模块的输入,同时通过FP8数据通路的指数求和模块进行指数求和,结果存入整合数据通路的流水线寄存器中;在第二个时钟周期,整合数据通路将所有乘法器的运算结果通过移位求和的方式得到24×24乘法结果,然后,对尾数积、来自FP8数据通路的指数和与结果符号位,进行规格化和舍入得到最终的1个FP32乘法运算的运算结果。
10.一种微处理器,包括带有算术逻辑单元ALU的微处理器本体,所述算术逻辑单元ALU中带有支持多种精度的乘法器,其特征在于,所述乘法器为权利要求1~9中任意一项所述支持多种精度的乘法器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310601779.1A CN116661733A (zh) | 2023-05-25 | 2023-05-25 | 一种支持多种精度的乘法器及微处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310601779.1A CN116661733A (zh) | 2023-05-25 | 2023-05-25 | 一种支持多种精度的乘法器及微处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116661733A true CN116661733A (zh) | 2023-08-29 |
Family
ID=87716444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310601779.1A Pending CN116661733A (zh) | 2023-05-25 | 2023-05-25 | 一种支持多种精度的乘法器及微处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116661733A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117151169A (zh) * | 2023-10-31 | 2023-12-01 | 北京弘微智能技术有限公司 | 数据处理电路及电子设备 |
CN117891430A (zh) * | 2024-03-18 | 2024-04-16 | 中科亿海微电子科技(苏州)有限公司 | 一种应用于fpga嵌入式dsp的浮点乘加结构 |
-
2023
- 2023-05-25 CN CN202310601779.1A patent/CN116661733A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117151169A (zh) * | 2023-10-31 | 2023-12-01 | 北京弘微智能技术有限公司 | 数据处理电路及电子设备 |
CN117891430A (zh) * | 2024-03-18 | 2024-04-16 | 中科亿海微电子科技(苏州)有限公司 | 一种应用于fpga嵌入式dsp的浮点乘加结构 |
CN117891430B (zh) * | 2024-03-18 | 2024-05-14 | 中科亿海微电子科技(苏州)有限公司 | 一种应用于fpga嵌入式dsp的浮点乘加结构 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116661733A (zh) | 一种支持多种精度的乘法器及微处理器 | |
US20210349692A1 (en) | Multiplier and multiplication method | |
US11816448B2 (en) | Compressing like-magnitude partial products in multiply accumulation | |
CN112860220B (zh) | 一种适用于多精度计算的可重构浮点乘加运算单元及方法 | |
JP5873599B2 (ja) | デジタルシグナルプロセッサにおける信号処理のためのシステムおよび方法 | |
JPH0934688A (ja) | 遅延整合技術の利用によりクリティカル・パスを減少させた浮動小数点型掛け算器及びその演算方法 | |
US8930433B2 (en) | Systems and methods for a floating-point multiplication and accumulation unit using a partial-product multiplier in digital signal processors | |
CN110688086A (zh) | 一种可重构的整型-浮点加法器 | |
CN112540743B (zh) | 面向可重构处理器的有无符号乘累加器及方法 | |
CN116400883A (zh) | 一种可切换精度的浮点乘加器 | |
CN116450217A (zh) | 一种多功能定点乘法和乘累加运算装置及方法 | |
CN117149130B (zh) | 一种应用于fpga嵌入式dsp的多精度浮点乘法器结构 | |
Lichtenau et al. | Quad precision floating point on the IBM z13 | |
CN116594590A (zh) | 一种浮点数据的多功能运算装置及方法 | |
Samy et al. | A decimal floating-point fused-multiply-add unit | |
CN101840324B (zh) | 支持复数运算和子字并行的64位定浮点乘法器 | |
CN104636114A (zh) | 一种浮点数乘法的舍入方法及装置 | |
CN116627379A (zh) | 可重构的支持多精度浮点或定点运算的方法及系统 | |
CN116450085A (zh) | 一种可扩展的BFloat16点乘运算器及微处理器 | |
US20060277242A1 (en) | Combining circuitry | |
Lutz et al. | Fused FP8 4-Way Dot Product With Scaling and FP32 Accumulation | |
CN112506472A (zh) | 一种基于冗余odds数的十进制4:2压缩器结构 | |
CN117931123B (zh) | 一种应用于fpga的低功耗可变精度嵌入式dsp硬核结构 | |
CN117891430B (zh) | 一种应用于fpga嵌入式dsp的浮点乘加结构 | |
US20240345806A1 (en) | Computing apparatus and method, electronic device and storage medium |
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 |