CN1410880A - 提高半规模双精度浮点乘法流水线效率的结构 - Google Patents

提高半规模双精度浮点乘法流水线效率的结构 Download PDF

Info

Publication number
CN1410880A
CN1410880A CN 01141498 CN01141498A CN1410880A CN 1410880 A CN1410880 A CN 1410880A CN 01141498 CN01141498 CN 01141498 CN 01141498 A CN01141498 A CN 01141498A CN 1410880 A CN1410880 A CN 1410880A
Authority
CN
China
Prior art keywords
floating
multiplication
precision
totalizer
point
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
CN 01141498
Other languages
English (en)
Other versions
CN1220935C (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN 01141498 priority Critical patent/CN1220935C/zh
Publication of CN1410880A publication Critical patent/CN1410880A/zh
Application granted granted Critical
Publication of CN1220935C publication Critical patent/CN1220935C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

一种提高半规模双精度浮点乘法流水线效率结构,包括:两个53×27的乘法树;每一乘法树对应一加法器;舍入和规格化电路。本发明改进了浮点乘法流水线,在这样的浮点乘法流水线中采用双路浮点乘法流水线机构,使得浮点乘法部件每拍都能够输入一对双精度数,而且单、双精度可以共用一套电路来舍入和规格化,节省了面积,降低了延迟。

Description

提高半规模双精度浮点乘法流水线效率的结构
技术领域
本发明涉及微处理器体系结构,特别涉及一种微处理器内浮点乘法运算部件的流水线结构。
背景技术
计算机技术的发展增加了计算的复杂度。这一方面是由于科学计算的运算精度要求越来越高(如卫星检测天气预报技术,虚拟核反应试验技术,人工智能技术等);另一方面则是由于多媒体技术的广泛运用,实时3D图像技术以及工业级别的性能评测如SPECmarks等,都使用到大量的高精度计算。
提高计算精度的一个有效方法是采用浮点运算部件(Floating-PointUnit)。现代大多数处理器都包括执行IEEE754标准的浮点运算部件。由于浮点乘法指令在浮点指令中占比较大的比重(在绝大多数Benchmark应用中,浮点乘法占浮点指令的37%以上),浮点乘法器的延迟成了浮点性能的关键。当然面积也是必不可少的考虑因素,它直接关系到芯片的成本。
浮点乘法流水线技术是现代处理器的重要技术。在浮点乘法流水线中,每一条浮点乘法指令的执行过程都被分解为若干个子过程,每个子过程和其它子过程同时进行。
IEEE754标准对浮点数的格式做了如下规定:
    参数                             格式
Single    SingleExtended Double      DoubleExtended
    P    24     ≥32     53     ≥64
    Emax    +127     ≥+1023     +1023     ≥+16383
    Emin    -126     ≤-1022     -1022     ≤-16382
    Exponent bias    +127  Unspecified     +1023     Unspecified
    Exponentwidthin bits 8 ≥11 11 ≥15
    Format widthin bits 32 ≥43 64 ≥79
扩展模式是IEEE754标准的可选模式,大多数处理器都支持单、双精度数而不支持扩展模式。只有Intel的x86/x87,Pentium,P6以及AMD和Cyrix,Motorola的68040/60或更早的680×0和68881/2协处理器支持扩展模式,还有Motorola的88110,这些处理器支持64位尾数,15位阶码的扩展模式。对单、双精度数的处理有许多种方式,考虑到面积和延迟的影响,主要可以分为两类。一类主要考虑双精度的处理方法,使用53×53全规模(full-sized)的乘法。对单精度的处理比较麻烦,需要先将其转化成双精度计算,然后将双精度结果转换回单精度。例如在x86体系结构(Pentium)和Motorola68000系列执行的是双精度扩展格式,转换到低的精度时需要将结果保存到存储器。除此之外,对53×53的乘法树进行处理时,需要很大规模的加法器,对于节省芯片面积不利,见IEEEStandard 754 for Binary Floating-Point Arithmetic,Prof.W.Kahan,Elect.Eng.&Computer Science,University of California,Berkeley CA 94720-1776。
另外一类主要针对单精度的处理方法,使用53×27半规模(half-sized)的乘法。利用同一套电路对单精度和双精度进行舍入和规格化。它节省了面积,使电路变得简化,但是出现的问题是降低了流水线的效率。虽然单精度两拍出结果,双精度三拍出结果,但是双精度需要在第一拍和第二拍都使用53×27规模的乘法树,所以双精度指令只能够两个周期发出一条。这样对于大量双精度乘法的应用会降低处理的速度,见A dualprecision IEEE floating-point multiplier,Guy Even,Silvia M.Mueller,Peter-Michael Seidel,INTRGRATION,the VLSIjournal 29(2000)167-180。
发明内容
本发明的目的是提供一种提高浮点乘法流水线效率的结构,在减小面积的同时,提高浮点乘法流水线的效率,从而提高了整个浮点部件的运算效率。
为实现上述目的,提高半规模双精度浮点乘法流水线效率结构包括:
两个53×27的乘法树;
每一乘法树对应一加法器;
舍入和规格化电路。
本发明改进了浮点乘法流水线,在这样的浮点乘法流水线中采用双路浮点乘法流水线机构,使得浮点乘法部件每拍都能够输入一对双精度数,而且单、双精度可以共用一套电路来舍入和规格化,并且节省面积,降低延迟。
附图说明
为便于进一步了解本发明的特征、功效和实现方式,以下结合附图对本发明作进一步的说明。
图1为双路浮点乘法流水线机构
图2为用15-2CSA搭建起来的53×27乘法树
图3为用3-2Counter构成4-2Counter
图4为用3-2Counter和4-2Counter搭建起来的15-2CSA
在图1所示的浮点乘法流水线中,使用修改的Booth算法(Booth2算法)和Wallace4-2Counter tree来完成乘法。而舍入采用一种简化的舍入方法,injection-based Rounding。
浮点乘法运算逻辑可以分成三级。
第一级对操作数进行判断,包括是否是0,±∞,denormalized等等。利用11位加法器计算阶码,并产生各种例外。并且对尾数计算乘法的第一级。假如A和B都是已规格化的尾数存放在寄存器中,第一级,两个53×27乘法树分别实现A与B的低26位B[-27:-52]相乘和A与B的高27位B[0:-26]相乘,分别得到SUM1、CARRY1和SUM2、CARRY 2。用于舍入的injection也在这一周期加到SUM1中。
在单精度方式下,A和B都有规格化的24位尾数。将A右移29位,这样就会使单精度的最小位[-23]位和双精度的最小位[-52]位对齐。B采取左对齐,在最低3位补0,使其有27位这样就能和双精度计算保持一致。这样的好处在于两种精度舍入的位置相同,可以使用同一套电路来实现。
第二级对SUM1,SUM2,CARRY1,CARRY2进行处理,首先在一个80位加法器中实现SUM1的高53位(带进位)[-26:-78]和SUM2错位相加,得到SUM。在另一个80位加法器中实现CARRY1的高53位(带进位)[-26:-78]和CARRY2错位相加,得到CARRY。并根据SUM1和CARRY1之和的进位对SUM进行调整。其次第一周期计算出来的SUM1和CARRY1最小的26位[-79:-104]反馈到计算低位进位和低位粘着位的模块中计算,得到carry_low和sticky_low。还要将阶码加1,为第三周期的右规作准备。
第三级SUM和CARRY寄存器的低26位[-53:-78]输入到进位计算模块中。而粘着位计算模块则输入[-54:-78]。进位和粘着位计算模块还输入了低位来的进位位C[-78]和sticky_low位(根据积的[-79:-104])。计算的结果是进位位C[-52]和舍入位R,对应位置[-53],以及sticky-bit,对应位置[-54:-104]。
在这个周期里,SUM和CARRY寄存器的高54位[1:-52]在图1中54位加法器中相加,该加法器不仅计算两数之和Sum,而且计算Sum+1和Sum+2。或者说是:Sum,Sum+2-52,Sum+2-51
经过54位加法器之后,进行舍入和规格化以下三种选择来得到舍入后的积:
1、进位位C[-52]来选择Sum,Sum+1这一对,还是Sum+1,Sum+2这一对。
2、和的最高位MSB(对应位置[1])以及舍入模式和舍入位R一起输入到修正injection模块中来决定到底是采用选中的这一对的前者还是后者,如Sum或Sum+1。如果积在[2,4]这个范围中,则还会对injection进行修正。
3、最高位MSB决定积到底是在(1,2)还是(2,4)的范围内。如果MSB=1,则积会被右移,以便得到在(1,2)范围内的积。注意:这三步的排放顺序是考虑了延时和成本的,比如也可以将右移放在修正injection的前面,不过这样就需要两次右移。
最后,还要进行两个处理。1)舍入后的积的最低位LSB(也就是RNE向最近偶数舍入和RNU向上舍入的区别);2)舍入后的积的最高位MSB(因为有可能发生尾数溢出)。这可以通过对积的最高两位(小数点的左边两位)进行求或来产生输出积的最高位。
单精度与双精度舍入的唯一不同之处是最高位的位置,单精度的最高位MSB在[-28]。
图2为图1中第一级用到的53×27乘法树的结构图,该53×27乘法树是由图4所示的15-2CSA搭建的。
图3为用3-2Counter构成的4-2Counter,以实现从四数相加转化为两数相加。
图4为用3-2Counter和图3所示的4-2Counter搭建起来的15-2CSA,实现从15个操作数相加转化为两数相加。
本发明具有如下优点:
1.实现简单。由于第二类浮点乘法流水线已经采用了53×27规模的乘法树,所以双路浮点乘法流水线机构只需要将这个乘法树复制一遍,再增加少量的控制逻辑和中规模的加法电路。
2.功能强。其硬件复杂度,或面积要小于第一类全规模浮点乘法流水线。而其时间延迟和第二类相同,但是双精度处理的效率高于第二类半规模浮点乘法部件。

Claims (6)

1.提高半规模双精度浮点乘法流水线效率结构,其特征在于包括:
两个53×27的乘法树;
每一乘法树对应一加法器;
舍入和规格化电路。
2.按权利要求1所述的结构,其特征在于所述的加法器为80位加法器。
3.按权利要求1所述的结构,其特征在于所述舍入和规格化电路包括加法器。
4.按权利要求1所述的结构,其特征在于还包括计算阶码,并产生各种例外的加法器。
5.按权利要求3所述的结构,其特征在于所述的加法器为54位加法器。
6.按权利要求4所述的结构,其特征在于所述的加法器为11位加法器。
CN 01141498 2001-09-27 2001-09-27 提高半规模双精度浮点乘法流水线效率的部件 Expired - Lifetime CN1220935C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 01141498 CN1220935C (zh) 2001-09-27 2001-09-27 提高半规模双精度浮点乘法流水线效率的部件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 01141498 CN1220935C (zh) 2001-09-27 2001-09-27 提高半规模双精度浮点乘法流水线效率的部件

Publications (2)

Publication Number Publication Date
CN1410880A true CN1410880A (zh) 2003-04-16
CN1220935C CN1220935C (zh) 2005-09-28

Family

ID=4676221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 01141498 Expired - Lifetime CN1220935C (zh) 2001-09-27 2001-09-27 提高半规模双精度浮点乘法流水线效率的部件

Country Status (1)

Country Link
CN (1) CN1220935C (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100449476C (zh) * 2005-02-09 2009-01-07 国际商业机器公司 用于执行浮点算术运算的系统和方法
CN101770355A (zh) * 2009-12-30 2010-07-07 北京龙芯中科技术服务中心有限公司 兼容双精度和双单精度的浮点乘加器及其兼容处理方法
CN101174200B (zh) * 2007-05-18 2010-09-08 清华大学 一种具有五级流水线结构的浮点乘加融合单元
CN101133389B (zh) * 2004-11-10 2011-06-01 辉达公司 多用途乘法-加法功能单元
US8073892B2 (en) 2005-12-30 2011-12-06 Intel Corporation Cryptographic system, method and multiplier

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101133389B (zh) * 2004-11-10 2011-06-01 辉达公司 多用途乘法-加法功能单元
CN100449476C (zh) * 2005-02-09 2009-01-07 国际商业机器公司 用于执行浮点算术运算的系统和方法
US8073892B2 (en) 2005-12-30 2011-12-06 Intel Corporation Cryptographic system, method and multiplier
CN101174200B (zh) * 2007-05-18 2010-09-08 清华大学 一种具有五级流水线结构的浮点乘加融合单元
CN101770355A (zh) * 2009-12-30 2010-07-07 北京龙芯中科技术服务中心有限公司 兼容双精度和双单精度的浮点乘加器及其兼容处理方法
CN101770355B (zh) * 2009-12-30 2011-11-16 龙芯中科技术有限公司 兼容双精度和双单精度的浮点乘加器及其兼容处理方法

Also Published As

Publication number Publication date
CN1220935C (zh) 2005-09-28

Similar Documents

Publication Publication Date Title
CN107168678B (zh) 一种乘加计算装置及浮点乘加计算方法
US9753695B2 (en) Datapath circuit for digital signal processors
Zhang et al. Fast: Dnn training under variable precision block floating point with stochastic rounding
CN1439126A (zh) 带有耦合的乘法一累加单元的数字信号处理器
US6842765B2 (en) Processor design for extended-precision arithmetic
Bajard et al. BKM: a new hardware algorithm for complex elementary functions
CN101847087A (zh) 一种支持定浮点可重构的横向求和网络结构
CN102629189A (zh) 基于fpga的流水浮点乘累加方法
CN116400883A (zh) 一种可切换精度的浮点乘加器
CN110688086A (zh) 一种可重构的整型-浮点加法器
CN101630243A (zh) 超越函数装置以及用该装置实现超越函数的方法
CN114418057A (zh) 卷积神经网络的运算方法及相关设备
CN116820393A (zh) 支持深度学习指令的多精度乘加单元及其应用方法
US8019805B1 (en) Apparatus and method for multiple pass extended precision floating point multiplication
CN116594590A (zh) 一种浮点数据的多功能运算装置及方法
CN1220935C (zh) 提高半规模双精度浮点乘法流水线效率的部件
CN117648959B (zh) 支持神经网络运算的多精度操作数运算装置
CN101840324A (zh) 支持复数运算和子字并行的64位定浮点乘法器
Lee et al. Design of floating-point MAC unit for computing DNN applications in PIM
CN116627379A (zh) 可重构的支持多精度浮点或定点运算的方法及系统
CN104636114A (zh) 一种浮点数乘法的舍入方法及装置
Boldo et al. Some functions computable with a fused-mac
Forget et al. Hardware cost evaluation of the posit number system
Shirke et al. Implementation of IEEE 754 compliant single precision floating-point adder unit supporting denormal inputs on Xilinx FPGA
CN117932200A (zh) 一种浮点数平方根计算方法及浮点数计算模块

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20050928