CN1410880A - 提高半规模双精度浮点乘法流水线效率的结构 - Google Patents
提高半规模双精度浮点乘法流水线效率的结构 Download PDFInfo
- 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
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位加法器。
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)
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 |
-
2001
- 2001-09-27 CN CN 01141498 patent/CN1220935C/zh not_active Expired - Lifetime
Cited By (6)
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 |