CN109032563B - 一种加速桥接融合乘加的方法及装置 - Google Patents
一种加速桥接融合乘加的方法及装置 Download PDFInfo
- Publication number
- CN109032563B CN109032563B CN201810715026.2A CN201810715026A CN109032563B CN 109032563 B CN109032563 B CN 109032563B CN 201810715026 A CN201810715026 A CN 201810715026A CN 109032563 B CN109032563 B CN 109032563B
- Authority
- CN
- China
- Prior art keywords
- multiplication
- addition
- add
- floating
- multiply
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种加速桥接融合乘加的方法及装置,方法步骤包括在两个乘法操作数准备好先进行乘法计算、然后等待加法操作数准备好时将加法操作数和乘法计算的中间结果进行加法计算、规格化和舍入后输出;装置,包括第一级控制逻辑、浮点乘法逻辑、第二级控制逻辑以及浮点加法逻辑。本发明能够以较少的硬件实现对桥接融合乘加实现加速,最大程度的开发硬件执行机制的并行性,解决传统桥接融合乘加的运算部件利用率不高的问题,具有简化控制逻辑,对融合乘加的浮点乘法和浮点加法操作分离控制,最大限度的降低部件相关引起的执行停顿,应用范围广、使用灵活方便的优点。
Description
技术领域
本发明涉及浮点数据计算领域,具体涉及一种加速桥接融合乘加的方法及装置。
背景技术
随着微电子制造工艺技术的发展以及设计技术的不断提高,各类电子产品正在人们的生活中发挥越来越重要的作用,其中各类高性能芯片如微处理器和DSP等得到了广泛的应用。高速运算部件,特别是有高精度应用要求的浮点数处理单元,一直是数字电路领域研究的重点。当前,浮点数处理单元已成为诸多数字***的数据通路中非常重要的算术运算部件,尤其在高性能微处理器、数字信号处理器、图形图像处理设备、科学计算以及某些特定数据处理设备中更是不可或缺的组成部分。
浮点乘加融合技术(a*b+c)是IBM于1990年在其RS/6000工作站级***中首次引入并实现的,以提高浮点运算的性能。乘法和加法操作融合后,部件对寄存器文件的访问端口减少了,且只需对结果进行一次舍入操作。乘加部件能够给予编译器更多的机会进行优化调度,有利于提高IPC(Instruction per Cycle)。在超标量处理器中,也可以更好的发挥动态调度电路的作用。这是因为在超标量处理器中,动态调度电路所能看到的指令数目受到窗口大小的限制。采用乘加部件后,编译器负责将具有依赖关系的乘法和加法调度为乘加指令,减少了指令数目,间接地增加了动态调度电路能够调度的指令数目,动态调度电路可以更好地发挥作用,也有利于提高IPC。
现有技术公开了浮点融合乘加的两种典型实现方式。第一种实现方式是IBM RS/6000超标量通用处理器的浮点乘加融合部件,每个时钟周期发射一条乘加指令。乘法和加法操作在同一个专门乘加部件中完成。另一种实现方式是采用浮点乘法和加法部件桥接的方式实现浮点融合乘加操作。这种实现方式最大程度的共用了浮点乘法和浮点加法的实现逻辑,将浮点融合乘加的操作分解为浮点乘法和浮点加法。在执行浮点乘法操作后,中间结果不进行舍入和规格化,直接进入浮点加法部件进行加法操作,最后对加法的结果进行规格化和舍入处理。桥接融合乘加能够利用单独的浮点乘法部件和浮点加法部件完成浮点融合乘加操作,最大限度的公用了现有的逻辑,并且保持了浮点乘法和浮点操作的性能。但是桥接的融合乘加传统实现方式,必须在三个操作数均已经就绪之后才能够开始浮点乘法和浮点加法运算,并不能最大程度的利用好桥接融合乘加实现中浮点乘法和浮点加法部件。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种加速桥接融合乘加的方法及装置,本发明能够以较少的硬件实现对桥接融合乘加实现加速,最大程度的开发硬件执行机制的并行性,解决传统桥接融合乘加的运算部件利用率不高的问题,具有简化控制逻辑,对融合乘加的浮点乘法和浮点加法操作分离控制,最大限度的降低部件相关引起的执行停顿,应用范围广、使用灵活方便的优点。
为了解决上述技术问题,本发明采用的技术方案为:
一种加速桥接融合乘加的方法,实施步骤包括:
1)监测三个操作数,并检查融合乘加操作的两个乘法操作数是否已经准备就绪,当两个乘法操作数都已经就绪时,乘加操作的乘法运算才进入就绪状态,跳转执行下一步;
2)接收两个乘法操作数并完成乘法操作,不进行舍入与规格化操作将中间结果输出;
3)检查加法操作数是否已经就绪,如果加法操作数未就绪,则一直等待;一旦加法操作数就绪,则跳转执行下一步;
4)接收乘法操作的中间结果、加法操作数进行浮点加法操作,并对加法的结果进行舍入和规格化,完成融合乘加操作,输出最终结果。
本发明还提供一种加速桥接融合乘加的装置,包括:
第一级控制逻辑、用于监测、检测以及缓冲操作数,并将乘法操作数就绪的两个乘法操作数送入浮点乘法逻辑中以及控制信息同步送入第二级控制逻辑中;
浮点乘法逻辑,用于计算融合乘加的乘法操作,不包括舍入和规格化逻辑,运算的中间结果输出至第二级控制逻辑中;
第二级控制逻辑,用于监测、检测以及缓冲加法操作数,并将中间结果和就绪的加法操作数送入浮点加法逻辑;
浮点加法逻辑,用于完成融合乘加的加法运算,并进行结果的规格化和舍入,最终输出融合乘加的结果。
和现有技术相比,本发明具有下述优点:
1、简化控制逻辑。相比于传统的一级控制逻辑,本发明将浮点融合乘加的控制拆分为两级进行控制,具有硬件逻辑实现简单的优点。
2、对融合乘加的浮点乘法和浮点加法操作分离控制,最大限度的降低部件相关引起的执行停顿。融合乘加的浮点乘法和浮点加法运算分别对应不同的控制逻辑,只要操作数就绪,就可进行对应的乘法或者加法运算,本发明能够充分利用两级控制特性,最大限度的降低乘法或加法部件相关引起的执行停顿
3、本发明能够适用于主流科学计算类处理器浮点运算部件的设计,具有应用范围广、使用灵活方便的优点。
附图说明
图1为本发明实施例的基本实施流程示意图。
图2为应用本发明实施例的结构示意图。
具体实施方式
如图1所示,本实施例加速桥接融合乘加的方法的实施步骤包括:
1)监测三个操作数,并检查融合乘加操作的两个乘法操作数是否已经准备就绪,当两个乘法操作数都已经就绪时,乘加操作的乘法运算才进入就绪状态,跳转执行下一步;
2)接收两个乘法操作数并完成乘法操作,不进行舍入与规格化操作将中间结果输出;
3)检查加法操作数是否已经就绪,如果加法操作数未就绪,则一直等待;一旦加法操作数就绪,则跳转执行下一步;
4)接收乘法操作的中间结果、加法操作数进行浮点加法操作,并对加法的结果进行舍入和规格化,完成融合乘加操作,输出最终结果。
步骤1)从开始阶段进入三个操作数监测过程。这一步需要监测乘加的三个操作数,如果监测到某个操作数就绪,需要将操作数与对应的操作信息同步进行保存,并进入下一步。首次进入该步骤时需要检查两个乘法操作数是否已经就绪,如果已经就绪,则直接跳过操作数监测过程,进入下一步。步骤2)检查融合乘加操作的两个乘法操作数是否已经准备就绪。这一步中只检查两个乘法操作数的就绪状态。如果只有一个乘法操作数(乘数或者被乘数)就绪,需要返回上一步继续进行操作数的监测。当两个乘法操作数都已经就绪时,乘加操作的乘法运算才进入就绪状态,进入下一步。步骤3)接收乘加的两个乘法操作数,并完成乘法操作,不进行舍入与规格化操作,将中间结果输出。步骤4)接收上一步浮点乘法部件输出的中间结果,并与对应的控制信息一起保存,并监测操作数是否已经就绪。如果加法操作数未就绪,则一直等待;一旦加法操作数就绪,进入下一步。步骤5)接收乘法操作的结果和加法操作数,进行浮点加法操作,并对加法的结果进行舍入和规格化,完成融合乘加操作,输出最终融合乘加的结果。
相比较于传统的融合实现方式,本实施例加速桥接融合乘加的方法具有以下不同:1.桥接浮点乘法与浮点加法的实现方式,能够充分利用已有的浮点乘法和浮点加法运算部件。传统的融合实现方式必须实现专门的部件完成浮点乘加运算,浮点乘法和浮点加法运算分别采用a*b+0和a*1.0+b的方式在融合实现的部件里完成运算。2.桥接浮点乘法和浮点加法的实现方式中,浮点乘法和浮点加法的运算延迟比浮点乘加运算延迟短,并且可以分别优化设计,相互独立。融合实现的部件里,浮点加法和浮点乘法的运算延迟与浮点乘加的延迟相同,并且很难分别优化。相比较于传统的桥接乘加实现方式,本实施例加速桥接融合乘加的方法具有以下不同:1.本实施例充分利用桥接浮点乘法和浮点加法部件的特点,将浮点乘加运算拆分为两步运算分别进行控制。传统的桥接运算将浮点乘加运算作为一个单独的运算流进行控制,浮点乘法运算完成后,结果直接送入浮点加法部件进行操作。2.本实施例通过两级控制逻辑可以充分利用浮点乘法和浮点加法部件。乘数和被乘数已经准备好的多个乘加运算,即使加数没有准备就绪,也可以先进行完所有乘数和被乘数已经就绪的乘法操作,进入第二级控制逻辑进行缓冲,等待加数。将浮点乘加拆分为浮点乘法和浮点加法,并在第一级和第二级控制逻辑中进行分别控制,可以通过乱序的方式进行。
本实施例能够以较少的硬件实现对桥接融合乘加实现加速,最大程度的开发硬件执行机制的并行性,解决传统桥接融合乘加的运算部件利用率不高的问题,具有简化控制逻辑,对融合乘加的浮点乘法和浮点加法操作分离控制,最大限度的降低部件相关引起的执行停顿,应用范围广、使用灵活方便的优点。
如图2所示,本实施例加速桥接融合乘加的装置包括:
第一级控制逻辑1、用于监测、检测以及缓冲操作数,并将乘法操作数就绪的两个乘法操作数送入浮点乘法逻辑2中以及控制信息同步送入第二级控制逻辑3中;
浮点乘法逻辑2,用于计算融合乘加的乘法操作,不包括舍入和规格化逻辑,运算的中间结果输出至第二级控制逻辑3中;
第二级控制逻辑3,用于监测、检测以及缓冲加法操作数,并将中间结果和就绪的加法操作数送入浮点加法逻辑4;
浮点加法逻辑4,用于完成融合乘加的加法运算,并进行结果的规格化和舍入,最终输出融合乘加的结果。
如图2所示,第一级控制逻辑1负责监测、检测以及缓冲操作数,并将乘法操作数就绪的操作送入浮点乘法逻辑2中进行运算,对应的控制信息同步送入第二级控制逻辑3中保存。第一级控制逻辑1保存多个融合乘加操作,并监测所有融合乘加的操作数,将已经准备好的操作数进行保存;同时第一级控制逻辑1需要根据乘法操作数的就绪状态,按一定的规则从已经准备好的融合乘加操作中选择一条进入浮点乘法运算逻辑2中。
浮点乘法逻辑2用于计算融合乘加的乘法操作,不包括舍入和规格化逻辑,运算的中间结果输出至第二级控制逻辑3中。第二级控制逻辑3负责监测、检测以及缓冲加法操作数,并将中间结果和就绪的加法操作数送入浮点加法逻辑。第二级控制逻辑3中保存多个已经完成融合乘加的乘法运算的操作。第二级控制逻辑3根据加法操作数的就绪状态,按一定的规则从已经准备好的操作中选择一条进入浮点加法运算逻辑4。浮点加法逻辑4负责完成融合乘加的加法运算,并进行结果的规格化和舍入,最终输出融合乘加的结果。需要说明的是,本实施例的装置中只描述了融合乘加的加速方式,由于桥接融合乘加共用已有的浮点乘法和浮点加法部件进行融合乘加的运算,单独的浮点乘法指令和浮点加法指令的控制方式可以对本发明装置中的第一级控制逻辑1和第二级控制逻辑4的功能进行适当扩充。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (2)
1.一种加速桥接融合乘加的方法,其特征在于实施步骤包括:
1)监测三个操作数,并检查融合乘加操作的两个乘法操作数是否已经准备就绪,当两个乘法操作数都已经就绪时,乘加操作的乘法运算才进入就绪状态,跳转执行下一步;
2)接收两个乘法操作数并完成乘法操作,不进行舍入与规格化操作将中间结果输出;
3)检查加法操作数是否已经就绪,如果加法操作数未就绪,则一直等待;一旦加法操作数就绪,则跳转执行下一步;
4)接收乘法操作的中间结果、加法操作数进行浮点加法操作,并对加法的结果进行舍入和规格化,完成融合乘加操作,输出最终结果。
2.一种加速桥接融合乘加的装置,其特征在于包括:
第一级控制逻辑(1)、用于监测、检测以及缓冲操作数,并将乘法操作数就绪的两个乘法操作数送入浮点乘法逻辑(2)中以及控制信息同步送入第二级控制逻辑(3)中;
浮点乘法逻辑(2),用于计算融合乘加的乘法操作,不包括舍入和规格化逻辑,运算的中间结果输出至第二级控制逻辑(3)中;
第二级控制逻辑(3),用于监测、检测以及缓冲加法操作数,并将中间结果和就绪的加法操作数送入浮点加法逻辑(4);
浮点加法逻辑(4),用于完成融合乘加的加法运算,并进行结果的规格化和舍入,最终输出融合乘加的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810715026.2A CN109032563B (zh) | 2018-07-03 | 2018-07-03 | 一种加速桥接融合乘加的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810715026.2A CN109032563B (zh) | 2018-07-03 | 2018-07-03 | 一种加速桥接融合乘加的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109032563A CN109032563A (zh) | 2018-12-18 |
CN109032563B true CN109032563B (zh) | 2021-08-06 |
Family
ID=65521378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810715026.2A Active CN109032563B (zh) | 2018-07-03 | 2018-07-03 | 一种加速桥接融合乘加的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109032563B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750232B (zh) * | 2019-10-17 | 2023-06-20 | 电子科技大学 | 一种基于sram的并行乘加装置 |
CN113554125B (zh) * | 2021-09-18 | 2021-12-17 | 四川翼飞视科技有限公司 | 结合全局与局部特征的目标检测装置、方法和存储介质 |
CN118227085B (zh) * | 2024-05-23 | 2024-07-26 | 北京微核芯科技有限公司 | 一种浮点乘加指令的延迟降低的方法及其装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692202A (zh) * | 2009-09-27 | 2010-04-07 | 北京龙芯中科技术服务中心有限公司 | 一种64比特浮点乘加器及其浮点运算流水节拍处理方法 |
US8078660B2 (en) * | 2007-04-10 | 2011-12-13 | The Board Of Regents, University Of Texas System | Bridge fused multiply-adder circuit |
CN104111816A (zh) * | 2014-06-25 | 2014-10-22 | 中国人民解放军国防科学技术大学 | Gpdsp中多功能simd结构浮点融合乘加运算装置 |
-
2018
- 2018-07-03 CN CN201810715026.2A patent/CN109032563B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078660B2 (en) * | 2007-04-10 | 2011-12-13 | The Board Of Regents, University Of Texas System | Bridge fused multiply-adder circuit |
CN101692202A (zh) * | 2009-09-27 | 2010-04-07 | 北京龙芯中科技术服务中心有限公司 | 一种64比特浮点乘加器及其浮点运算流水节拍处理方法 |
CN104111816A (zh) * | 2014-06-25 | 2014-10-22 | 中国人民解放军国防科学技术大学 | Gpdsp中多功能simd结构浮点融合乘加运算装置 |
Non-Patent Citations (1)
Title |
---|
高性能微处理器浮点乘加单元的研究;张洁;《中国优秀硕士论文全文数据库》;20180415;第1-45页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109032563A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101566257B1 (ko) | 입력 데이터 값에 따른 결합형 곱셈-덧셈 (fma) 유닛의 전력 소모 절감 | |
US5870598A (en) | Method and apparatus for providing an optimized compare-and-branch instruction | |
CN109032563B (zh) | 一种加速桥接融合乘加的方法及装置 | |
US8612726B2 (en) | Multi-cycle programmable processor with FSM implemented controller selectively altering functional units datapaths based on instruction type | |
US20130346729A1 (en) | Pipelining out-of-order instructions | |
US7519646B2 (en) | Reconfigurable SIMD vector processing system | |
US6363476B1 (en) | Multiply-add operating device for floating point number | |
US20130339689A1 (en) | Later stage read port reduction | |
US8443027B2 (en) | Implementing a floating point weighted average function | |
US7693926B2 (en) | Modular multiplication acceleration circuit and method for data encryption/decryption | |
US7681022B2 (en) | Efficient interrupt return address save mechanism | |
CN115668142A (zh) | 一种处理器、处理方法及相关设备 | |
US20210042123A1 (en) | Reducing Operations of Sum-Of-Multiply-Accumulate (SOMAC) Instructions | |
WO2020123170A1 (en) | Merged data path for triangle and box intersection test in ray tracing | |
US20020078333A1 (en) | Resource efficient hardware loops | |
US7234044B1 (en) | Processor registers having state information | |
US9910638B1 (en) | Computer-based square root and division operations | |
US11467844B2 (en) | Storing multiple instructions in a single reordering buffer entry | |
KR20230136154A (ko) | 뉴럴 프로세서 회로에 대한 분기 동작 | |
CN113591031A (zh) | 低功耗矩阵运算方法及装置 | |
Zhou et al. | Reconfigurable instruction-based multicore parallel convolution and its application in real-time template matching | |
Gilani et al. | Virtual floating-point units for low-power embedded processors | |
CN114528021B (zh) | 分时复用量子测控***及低功耗高效率量子测控编译方法 | |
JP2643279B2 (ja) | 情報処理装置 | |
CN101916182B (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 |