(微电子学与固体电子学专业论文)冗余浮点数系统设计和研究.pdf_第1页
(微电子学与固体电子学专业论文)冗余浮点数系统设计和研究.pdf_第2页
(微电子学与固体电子学专业论文)冗余浮点数系统设计和研究.pdf_第3页
(微电子学与固体电子学专业论文)冗余浮点数系统设计和研究.pdf_第4页
(微电子学与固体电子学专业论文)冗余浮点数系统设计和研究.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

复旦大学硕士论文冗余浮点数系统设计与研究 表2 - ib s d 数位编码一 表2 - 2 传统的b s d 加法算法 图表目录 图2 3 传统的b s d 加法器结构图7 图2 - 4 采用加减拆分法的b s d 加法器结构图 图2 - 6 采用4 2 加法器结构生成两级进位,和 圈2 - 7 采用中间借位法的b s d 加法器结构图 8 表2 - 8 中间借位法真值表一1 0 表2 - 9b s d 加法器电路的综合结果 表2 1 06 4 位1 2 8 位的b s d 数加法器与非冗余格式加法器电路的综合结果1 2 图2 1 01 e e e 单精度和双精度浮点数格式 1 5 】。1 2 图3 1 传统双路加法器1 5 该双路加法器主要分为2 个部分;1 5 图3 2 冗余双路加法器1 6 图3 - 3r f 值的调整。1 7 图3 4p 重编码一1 9 表3 - 5 对p 重编码的分析1 9 表3 - 6 不右移时的舍入2 l 表3 7 右移一位时的舍入2 1 表3 - 8 四舍五入2 1 表3 - 9 不需要左移时的舍入。2 2 图3 1 0b s d 数符号检测的结构框图2 2 图3 - 1 1 长路部分输出结果举例2 3 图3 1 2 短路部分输出结果举例2 4 表3 1 8 加法器速度比较2 4 表3 1 9 f p g a 原型验证 图4 - l 基本的乘法数据流图2 6 图4 2 简单的迭代乘法器2 6 图4 - 3 采用并行的方法加8 个部分乘积2 7 图4 - 4 采用c s a 将3 个操作数减少为2 个2 7 图4 5 冗余浮点数乘法器结构框图2 8 表4 - 6 基2 最大冗余数集转换成最小冗余数集所需的r e s i d u e 位和c a n y 位的产生2 9 图4 - 7 基8b o o t h 重编码3 0 图4 - 8 基4 的进位的产生。 表4 - 9 基4 b o o t h 重编码输出 图4 1 0 基4 b o o t h 重编码器实现3 2 图4 - i1 基8 b o o t h 重编码器实现 图4 - 1 24 - 2 加法器框图 图4 1 34 - 2 加法器真值表。3 3 图4 1 44 - 2 加法器c s a 实现法3 4 图4 1 5 将8 输入数据压缩为2 输入数据3 4 i i i 复旦大学硕士论文冗余浮点数系统设计与研究 图4 1 6 适用于冗余二进制数的4 - 2 压缩器( 一) 图4 1 7 舍入结构框图 表4 - 1 8 速度比较 表4 - 1 9 f p g a 原型验证 图5 - i 除法功能单元 3 4 3 5 图5 - 2 除法算法 图5 - 3 除法器的硬件实现 图5 4 冗余浮点数除法算法 图5 - 5 冗余浮点数除法结构 4 i 表5 - 6 速度比较4 4 表4 1 9f p g a 原型验证4 5 表l 显示了四种舍入的实现。4 7 表2 比较r n 和r u 4 8 表3 二进制乘法器的r u 舍入表格4 8 表4 二进制乘法器的r u 舍入简化模型4 9 表5 冗余二进制加法的r u 部分舍入模型 4 9 表6r f 的范围判定5 0 i v 论文独创性声明 本论文是我个人在导师指导下进行的研究工作及取得的研究成果。论文中除 了特别加以标注和致谢的地方外,不包含其他人或其它机构已经发表或撰写过的 研究成果。其他同志对本研究的启发和所做的贡献均已在论文中作了明确的声明 并表示了谢意。 作者签名:燃敬。 同期:塑1 2 = 厶j 论文使用授权声明 本人完全了解复旦大学有关保留、使用学位论文的规定,即:学校有权保留 送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内 容,可以采用影印、缩印或其它复制手段保存论文。保密的论文在解密后遵守此 规定。 作者签名导师签名:丝日期:盟生) 复旦大学硕士论文冗余浮点数系统 摘要 随着集成电路工艺和设计技术的飞速进步,电子设计自动化技术的不断提 高,微处理器,数字信号处理器等有了惊人的发展,性能迅速提高。要达到高 性能它们的浮点处理能力也是一个重要的方面。 近年来,浮点数在高精度数字计算中被普遍使用,并随着数字信号处理器 和图像加速器等精度,实时性要求高的需求增长,浮点算术运算成为微处理器, 数字信号处理器,图像加速器最基本的指令。加法在算术运算中是使用频率最 高的,其次就是乘法,除法等。这些运算操作的速度通常会直接影响到计算机 的性能。在本论文中我试着提出一些方法来提高浮点运算单元的效率。 部分冗余数格式被用作浮点运算操作的中间运算格式,冗余数系统是基于 有符号数位的,能实现“无进位”加法运算来提高性能只有当操作数被写入 存储器中时才将本文提出的这种中间格式转换成标准的i e e e 格式。 本文首先介绍课题的背景及发展状况,其次简单介绍了i e e e 7 5 4 标准下的 常用的加法器。乘法器,除法器的算法及实现,在此基础上提出了采用本文提 出的数据格式来实现的加法器,乘法器,除法器。其中些相关的算法,算法 实现,舍入等细节和问题也会在本文中。 本文提出的冗余数系统能有效地提高双精度和更长位宽的操作数运算的速 度,并且符合i e e e 7 5 4 浮点数标准的舍入模式。 关键词:浮点处理单元,冗余浮点数,二进制有符号数,加法器,乘法器,除 法器 复旦大学硬士论文冗余浮点数系统 a b s t r a c t b a s e do nt h ei m p r o v e m e n to fi n t e g r a t e dc i r c m tp r o c e s s ,d e s i g nt e c h n o l o g ya n d e d a ( e l e c t r o n i cd e s i g na u t o m a t i o n ) t o o l s ,m i c r o p r o c e s s o r sw e r eu p d a t e ds e v e r a l g e n e r a t i o n s , a n dt h ep e r f o r m a n c ew a si m p r o v e dr a p i d l y i no r d e rt oa c h i e v et h e p u r p o s eo f h i g hp e r f o r m a n c em i c r o p r o c e s s o r s ,t h ef l o a t i n gp o i n tp r o c e s s i n ga b i l i t yi s m o r ei m p o r t a n t i nr e c e n ty e a r s ,f l o a t i n gp o i n tn u m b e ri s w i d e l yu s e di nt h eh i g h - a c c u r a c y c o m p u t e r w i t ht h ei n c r e a s i n ga c c u r a c ya n dr e a l t i m er e q u i r e m e n to fd s p ( d i g i t a l s i g n a lp r o c e s s i n g ) a n di m a g ep r o c e s s i n g ,a r i t h m e t i co p e r a t i o n sa r ea m o n gt h em o s t b a s i ci n s t r u c t i o n si n m i c r o p r o c e s s o r s ,d i g i t a ls i g n a lp r o c e s s o r sa n dg r a p h i c s a c c e l e r a t o r s a d d i t i o ni st h em o s tf r e q u e n ta r i t h m e t i co p e r a t i o ni n n u m e r i c a l l y i n t e n s i v ea p p l i c a t i o n s m u l t i p l i c a t i o nf o l l o w sc l o s e l ya n dt h e nd i v i s i o na n do t h e r e l e m e n t a r yf u n c t i o n s t h es p e e do ft h o s ea r i t h m e t i co p e r a t i o n si sa l s oo f t e nd i r e c t l y l i n k e dt ot h eo v e r a l lp e r f o r m a n c eo f t b ec o m p u t e r s t h ew o r kp r e s e n t e di nt h i st h e s i s p r o p o s e ss e v e r a lt e c h n i q u e st oi m p r o v et h ee f f e c t i v e n e s so ff l o a t i n gp o i n ta r i t h m e t i c u n i t s a p a r t i a l l yr e d u n d a n tn u m b e rs y s t e mi su s e da sa l li n t e r n a lf o r m a tf o rf l o a t i n g p o i n ta r i t h m e t i co p e r a t i o n s t h er e d u n d a n tn u m b e rs y s t e mi sb a s e do ns i g n e dd i g i t s a n de n a b l e sc a l t yf l e ea r i t h m e t i co p e r a t i o n st oi m p r o v et h ep e r f o r m a n c e c o n v e r s i o n f r o mt h ep r o p o s e di n t e r n a lf o r m a tb a c kt ot h es t a n d a r di e e ef o r m a ti sd o n eo n l y w h e na no p e r a n di sw r i t t e nt om e m o r y t h i sp a p e rf i r s t l yi n t r o d u c e st h eb a c k g r o u n d ,h i s t o r y , a n dt h es t a t u so ft h ed e s i g n , t h e nat r a d i t i o n a lf l o a t i n gp o i n ta d d e r , am u l t i p l i e r , a n dad i v i d e rb a s e do nt h ei e e e 7 5 4f l o a t i n gp o i n ts t a n d a r da r ee x p l a i n e d ad e t a i l e dd i s c u s s i o no fa l la d d e r , a m u l t i p l i e ra n dad i v i d e ru s i n gt h ep r o p o s e df o r m a ti sp r e s e n t e da n dt h es p e c i f i c c h a l l e n g e so f t h ed e s i g n sa t ee x p l a i n e d t h ep r o p o s e ds y s t e ma c h i e v e sb e t t e rp e r f o r m a n c ef o rd o u b l ep r e c i s i o na n dl a r g e r o p e r a n dw i d t h t h ep r o p o s e di n t e r n a lf o r m a ta n da r i t h m e t i cu n i t sc o m p l yw i t ha l lt h e r o u n d i n gm o d e so f t h ei e e e7 5 4f l o a t i n gp o i n ts t a n d a r d k e yw o r d :f l o a t i n gp o i n tu n i t ,r e d u n d a n tn u m b e r , b i n a r ys i g n e dd i g i t ( b s d ) a d d e r ,m u l t i p l i e r ,d i v i d e r 2 复旦大学硕士论文冗余浮点数系统 第一章引言 1 1 课题的目的及意义 二十一世纪是数字化与信息化的时代信息技术的基础是微电子技术,集 成电路是电子信息产业的命脉,对国民经济发展和国防建设都具有十分重大的 意义。 在航天航空等许多领域,常常需要处理大量的数据,并且对数据计算精度 和实时性要求较高。由于这些数据大部分为实数,因此需要很高的浮点处理能 力。 在过去的几十年中,对于浮点运算单元( f p u ) 高性能的需求以及试图达到计 算机的所谓的理论速度极限成为设计领域的巨大推动力。为了获得更快的速度, 一些设计者提出在f p u 内部采用不同的数据表示格式 1 1 1 2 1 。一些商业化的产 品( 例如x 8 6 系n 3 1 ) 采用了一种内部表示方式,加速了处理器,并且保证与 外部的i e e e 标准兼容。在其他的一些情况下,一些公司在引入i e e e 标准的同 时保留其他的数据格式。典型的例子就是8 3 9 0 结构。于是有不少人投身于对 于不同于i e e e 浮点数格式的研究中去。 观察传统的二进制加法可以发现,两个数相加结果的最高位依赖于两个数 的所有位。显然。如果用硬件实现加法器,它的输出会依赖于输入的最大数, 所以需要消耗很长的时间,这种技术会直接影响效率。w i n o g r a d 和s p i r a 指出 运算速度依赖于输入负载( f a n i n ) 和输出负载( f a n - o u t ) 。基于这样的理论,为了加 速运算,我们要减少输出对于输入的数量的依赖。于是就有入提出了冗余数系 统。国外的一些研究人员已经实现了利用冗余数格式来实现浮点数的加法,乘 法,除法,开平方等,然而国内对于这方面的研究却相当缺乏。 本论文旨在磅究和了解在仕么情况下冗余浮点数系统比起传统使用的数字 系统的运算速度更快。我们知道常用的设计指标是面积,功耗和速度。本文的 重点在于对速度的研究。本课题属于理论研究。 t 2 论文的研究内容与结构安排 下面简述一下后续论文的研究内容与结构安排。 第二章主要介绍冗余数的表示方式,无进位基2 的加法算法,实现,以及 i e e e 7 5 4 标准格式与无进位基2 格式间的转换。 第三章主要实现了冗余浮点数加法器,针对期间面临的问题挑战进行了详 3 复旦大学硬士论文冗余浮点数系统 细的描述。 第四章介绍了冗余浮点数乘法器的实现,主要介绍了冗余二进制b o o t h 重编 码以及适用于该乘法器的4 - 2 压缩器。 第五章介绍了常见的除法算法,用最简单的方法实现了浮点数除法器,并 指出了其不同之处。 附录主要将浮点数快速舍入方法的具体实现步骤进行了介绍。 4 复旦大学硕士论文冗余浮点数系统 2 1 概述 第二章冗余运算 在普通的非冗余基r 数字系统中,一个数位可以在f o ,1 ,r - 1 中取值, 并且所有的数字都能够以难一的方式表示。一个基r 冗余有符号数位数字系统 是基于数位集合s = ,一1 ,l ,0 ,1 ,口 ,其中符号x 表示一x ,l 只口,一l , 并且数位集合s 中的值的数目大于r 4 】。最后的这个条件允许任意数字可以用 多种有符号格式表示,因此称为冗余( r e d u n d a n t ) 。一般使用的是对称有符号数 位表示法( 口:) 。例如,数位集合 l ,o ,l 就用于基2 ( 产2 ) 冗余数字系统。 在这种数字系统中,数字3 可以表示为0 0 1 1 或0 1 0 1 ,等等。 冗余有符号数字系统的吸引人之处在于其“无进位”加法性质。 2 2 冗余数表示 在普通的2 的补码表示法中,所有的数字用唯一的方式表示,所以是非冗 余的。因此,在普通的加法中,进位可能从最低数位一直传播到最高数位 5 】。 在冗余表示法中,加法可以在与操作数字长的w 无关的恒定时间内完成。虽然 进位的传播局限于左2 或3 个位置,但冗余加法却被称为无进位传播,或者简 单的称为无进位【6 】 7 】。 对称有符号表示法使用数位集合d 。,= 口,l ,0 ,1 ,口 ,其中r 为基,口为 数位集合中最大数位。一个用使用这种表示法的数字可写成: w - i 如,盯 = 一l k 2 。而= x 州_ f ( 2 1 ) i - - o 数字的符号由最高的非零位的符号给定。 如果数位集合见中的数位数日小于r ,即口 r 一1 ,那么它被称为过冗余。 5 复旦大学硕士论文冗余浮点数系统 2 3 无进位基2 加法 冗余数字表示法将进位传播局限在几个位中,而且一般与字长w 无关。这 种无进位传播的性质使得快速加法成为可能 4 】 基2 有符号数位表示d 2 b ,也被称为二进制有符号数( b s d ) ,是最早提出并 且最为常用的冗余符号数位。个难的基2 符号数腚义如下: * l x = ( - l ,而,) = 鼍2 ( 2 - 2 ) t - - o 其中习 l ,0 ,l ,每个有符号数位用2 个无符号二进制数编码 8 】,如表2 - i 所示。 表2 - ib s d 数位编码 方式1方式2 毛 贯x 磺x - l 1 l1 0 o0 0o o 】1 l 0 10 1 其中编码方式1 满足鼍= 2 矽+ 矽,编码方式2 满足而= 一秽+ 秽。本文采 用编码方式1 。 完成有符号二进制数位加法的算法并不唯一,所以实现逻辑也可以各不相 同。 2 3 1 传统基2 加法 两个n 位的基2 符号数加法操作满足如下等式【9 【1 0 】: x = x 1 ,而,x o ) ,】,= ( 虼一t ,咒,y o ) ,鼍,乃 i ,0 ,1 2 u ;+ v i 2 而+ 乃 ( 2 3 ) 8 i2 崎+ l i _ 1 ( 2 - 4 ) 其中辑,毪,s i 分别为中间进位、中间和、最终和。酶,巧e 1 , o , 1 ,如果它们 满足表2 - 2 所示的规则,则可消除进位,使得母( 1 ,o ,1 ) 。 6 复旦大学硕士论文冗余浮点数系统 表2 - 2 传统的b s d 加法算法 x i + y i缸i 取l辑毡 1 + 1lo 都非负1 l 1 + o 有负数o l o + ooo 1 + 1 oo 都非负o 1 1 + o _ 有负数l 1 l + ll o 这就是传统的b s d 力口法算法,它采用鼯级结构,实现的加法器如图2 - 3 所示。 i中间和主挂位中间和,进位中间和进位 生成 生成生成 2 批t2 m1 2 书v f2 批- 2 搏 最终和最终和 输出 输出 图2 - 3 传统的b s d 加法器结构图 2 3 2 改进型算法一加减拆分法 根据表2 1 中b s d 数的编码方式i ,每个撑位的基2 有符号数可以分解成2 个无 符号二进制整数的减法: n - 1n - in-i x = ( 铀,鼍,) = 薹x i 2 i = 彤2 l # 2 m = x p - x ” ;vj = ui - - - - o ( 2 5 ) 其中矽,矽 o ,1 ,x 9 ,彳“是无符号二进制整数。于是2 个椎的基2 有符号 数的加法便可以转变成4 个无符号二进制整数的加减法。采用加减拆分法实现 b s d 加法的结构如图2 4 所示: 7 复旦大学硕士论文冗余浮点数系统 图2 - 4 一采用加减拆分法的b s d 加法器结构图 该结构分为3 部分:第一级进位和q ,t i 序列生成;- n i 茳位l n u 。,v i 序列生 成;根据心,v i 序列生成最终和岛序列。运算过程如图2 5 所示,等式如下: 矽+ ) ,一x i = 2 c l 一毛 ( 2 6 ) t y i “_ l + q - 1 = 一2 u f + v i ,即 毛+ y 岛一c f 1 = 2 u f v i & 2 川i - 1 + 唯 一n - 1 群0 + x k x ix s 一孵- l 卵y g0 七 y k y - 1 c 1c o0 t rt r t l t 口 “hu 1 u o0 堡幺尘:堕选 吒+ 1 s - 1 s o 2 - 5 加减拆分法运算过程 8 ( 2 7 ) ( 2 8 ) 复旦大学硕士论文冗余浮点数系统 由于掣,矽,碓i o ,1 ) ,所以等式( 2 - 6 ) 左边的数值范围是 1 ,0 ,1 ,2 ) ,这样 就能保证等式右边g ,蠢 o l 。由等式( 2 - 6 ) 和( 2 - 7 ) 看出,煎后两级的进位 ,和生成模块具有完全相同的结构,可以用一个功能稍加变化的全加器来实现。 将两个进位和生成模块连接起来,如图2 - 6 所示,即可实现等式 邱+ 一碓i 一赡l + c = 2 4 2 u l + q ,它相当于一个改进型4 2 加法器结构 1 t 1 2 】。 图:2 - 6 采用4 - 2 加法器结构生成两级进位,和 由前面的分析可知,加法器各级中间进位和q ,m , o ,1 ) ,它们均只需 要1 位无符号二进制数进行编码;而最终和, - 1 i 1 ,0 ,1 ) 的编码仍需要2 位无符号二 进制数。 应用改进型算法计算实例8 7 + 1 0 1 = 1 8 8 ,过程如下: 1 0 1 0 1 0 0 1 +1 1 1 0 0 1 1 1 1 0 1 0 1 0 0 1 +1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0m 0 0 1 i 0 0 1 1 0 0o 2 3 3 改进型算法二中间借位法1 1 3 1 1 4 】 结构框图如图2 7 所示。 9 薯丝彳”譬” 复旦大学碗士论文冗余浮点数系统 图2 - 7 采用中间借位法的b s d 加法器结构图 其结构分为三部分: 1 ) 生成借位序列岛; 2 ) 生成中间进位,和,m 序列: 3 ) 根据,v f 序列并行生成最终和毋序列。 中间和v fe o ,1 ,中间进位砖 o ,i ) 。将i 编码为1 ,贝f j u ie o ,1 ) 。列出等 式如下: 鼍+ 乃一2 b i + 6 f - l = _ 2 + ( 2 - 9 ) s i 钍t + ( 2 1 0 ) 借位输出岛满足如下规则 1 1 】:当加数或被加数中存在l 时,借位输出为1 , 否则输出为0 ,真值表见表2 - 8 。 袭2 _ s 串闯借位法真值表 墨,儿6 f6 f - 1坼m o 一 l + i o i o 1 - l 1 0 一 1 + o 0 l 1 10o 0 o o o + o o l01 o l + l 1 l o l l 1 复旦大学硕士论文冗余浮点数系统 o l l l + o l 1o0 oo0 l + l1 l ol 应用该算法计算8 7 + 1 0 1 = 1 8 8 ,过程如下: 1 0 1 0 1 0 0 1 + 1 1 1 0 0 1 1 1 1 0 1 0 0 1 l o 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 y t 一 龟 q v 0 1 0 1 0 0 0 1 0 0 q 2 3 4 不同的b s d 加法电路结构比较 下面采用传统算法,加减拆分法,中间借位法分别构造6 4 位的b s d 数加法器。 用v 鲥l o g 语言对电路进行建模和功能仿真后,采用华虹n e c0 6 “m 工艺库进行综 合,得到的电路的性能列于表2 9 中。 表2 - 9b s d 加法嚣电路的综合结果 电路结构 关键路径延迟( n s )面积 传统b s d 算法5 0 06 9 0 8 加减拆分法 4 2 9 5 0 2 9 中间借位法3 3 34 0 2 3 加减拆分算法的特点是,采用三级结构实现加法器,结构简单而规则,中间 进位与中间和都仅需要1 位编码。与传统结构相比,它的优点在于简化了逻辑、 加快了速度,并且减少了面积和动态功耗。由表2 9 的结果可知,改进型b s d 加 法器的速度比传统b s d 结构提高了1 4 ,面积减少了2 7 。 中闯借位法的特点是,采用三级结构实现加法器,中闫进位与中阔和都仅需 要1 位编码。与传统结构相比,它的优点在于简化了逻辑、加快了速度,并且减 少了面积和动态功耗。由表2 9 的结果可知,改进型b s d i 法器的速度比传统b s d 结构提高了3 3 ,面积减少了近一半。 可见采用中间借位法实现的结构的速度最快,面积最小,以后几章中所提到 的加法器就是采用这种结构。 复旦大学硕士论文冗余浮点数系统 2 3 5b s d 数加法器电路与非冗余格式加法器电路的比较 下面对6 4 位1 2 8 位的b s d 数加法器与非冗余格式加法器电路进行比较。采用 华! e - n e c0 6 9 m z 艺库进行综合,非冗余格式加法器电路采用s y n o p s y s 的综合库 中自带的加法器,得到的电路的性能列于表2 1 0 中。 表2 1 06 4 位1 2 8 位的b s d 数加法器与非冗余格式加法器电路的综合结果 电路结构 关键路径延迟( 璐)面积 6 4 位b s d 数加法器 3 3 3 4 0 2 3 1 2 8 位b s d 数加法器3 3 78 0 5 8 6 4 位非冗余格式加法器电路 4 6 7 7“5 3 1 2 8 位非冗余格式加法器电路9 2 8 1 2 3 0 5 从表中我们可以明显的看到,随着位宽的增加,b s d 数加法器的速度几乎没 有什么变化,但是传统的非冗余格式加法器的速度却明显会随着位宽的增加而越 来越慢。 2 4 双精度冗余浮点数格式 2 4 1i e e e 7 5 4 双精度浮点数格式 s i g n b i a s e de x p o n e n t s i g n i f i e a n ds = 1 f 仙e1i sh i d d e n ) 3 2 b i t s :8 b i t s b i a s = 1 2 7 2 3 + ib i t s s i n g l e p r e c i s i o no rs h o r tf o r m a t 6 4 b i t s : 1l b i t s b i a s = 1 0 2 35 2 + 1b i t s d o u b l e - p r e c i s i o no rl o n gf o r m a t 图2 1 0i e e e 单精度和双精度浮点数格式1 1 5 l 2 4 2 冗余双精度浮点数格式 已知传统的浮点加法器的速度主要是受尾数运算的影响,所以指数部分保留 i e e e 的格式,尾数部分采用b s d 格式。 s i g n b i a s e de x p o n e n t s i g n i f i c a n d 复旦大学硕士论文冗余浮点数系统 指数部分( 1 7 位) :b i a s = 6 5 5 3 5 = 2 1 6 1 ( 通常正e e 格式的指数是n 位挪么偏移值就取2 ”1 ) ; 尾数部分( 1 0 7 位) :双精度是5 3 位有效数据。 每一个数值都需要一个符号位,为了简化输出时的选择结构( 避免诸如 1 0 0 1 11 1 o 这样的数据调整) ,增加一位特殊位,总位宽为5 4 + 5 3 = 1 0 7 。 说明如下:当输出是需要调整的数据时,例1 0 0 1 1 l l o ,那么输出存为 ( 1 ) 0 0 1 1 1 1 0 ,当输出为1 1 1 1 l o 时,那么输出存为( o ) 1 1 l 1 1 0 ,采用这样的数 据结构,在简化输出选择结构的同时,输出结果的精度不受影响。 理由:选择指数位宽1 7 ,为了使得任意i e e e 7 5 4 标准的非规格化的数在中间 计算过程中是规格化的。 因为i e e e 标准的双精度数的指数是1 1 位,而非规格化数最多可移位5 4 位,所 以指数部分需要增加额外6 位( 2 5 毛) 则d - 罨。,否则d - 同样根据墨。的进位位c 0 来决定结果的初始指数弓, 当进位是1 ( 即a b ) 则毋2 毛,否则易2 毛 交换模块:根据指数加法模块的结果决定尾数存放的位置 假设输入的是m a 和m b ,指定该模块的f 1 处存放指数较大数的尾数,f 2 处 存放指数较小数的尾数。 根据指数加法模块中量。的进位位c 0 来决定是否需要交换两个输入操作数 的位置:当c 0 = l 即m a 是指数较大数,则f 1 = m a ,f 2 = m b ,否则互换两个操作数 的位置。 接着根据输入的控制信号s u b 来决定是否对操作数f 2 取负值,从而能实现减 法。 b s d 混合加法器:( 用于实现尺,和r ,+ 1 ) 在进行加法操作之前对输入的2 个操作数进行如下的调整: 此处我将用于决定舍入的数据称为r f ( r o u n d i n gf i e l d ) 。当r f 的最高位的b s d 数为1 时,就将该值改为1 ,输出c 则为1 ,其他时候r f 的最高位的b s d 保持不变, 输出c 为0 。这样做的目的是调整r f 的取值范围,使得原来的r f ( - 1 ,1 ) ,经过上 述调整之后变为r f ( - o 5 ,1 ) ,这样可以简化之后的舍入操作。 5 3 :o 加法 01。1。f1。1。i + 二二垦i 二二 * f 1 u 减法 i + 二二匪 图3 - 3r f 值的调整 经过加法之后还需要对输出结果进行适当的调整: 其中r ,= a + b c 。 ( 1 ) r ,【5 4 :5 3 = u ,则调整为0 1 ; ( 2 ) r ,【5 4 :5 3 = 1 0 ,则标注为特殊情况,标志s p e c i a l 为1 ; c 3 ) 蜀 5 3 :5 2 = u ,则调整为0 1 ; ( 4 ) r ,【l :o 】= 1 1 ,则调整为0 1 ; ( 5 ) r 1 【1 :0 = 0 1 ,则调整为1 1 1 7 复旦大学硕士论文冗余浮点数系统 这样可以确保墨 o 】为0 或1 。 3 3 2 短路部分( c l o s ep a t h ) 下面介绍短路部分组成模块: 符号输出 在短路部分中有两路,一路实现功能操作数a 减操作数b 或操作数a 减 s b i 斌操作数a ) i 另外一路实现功能操作数b 减操作数a 或者操作数b 减s h i f t ( 操 作数a ) ;选择其中一路结果为正值的被加数的符号作为结果的符号。 b s d 混合加法器 d 0 = c x p o n c n t a 0 】x o re x p o n c n t b o 】 当d o = o 时,该加法器实现r i 和蜀+ 1 : 当d o = l 时,该加法器实现a + ( b 1 ) _ 屺和a + ( b 1 ) + c + l 。 3 4 挑战一前导零的检测【1 8 】【1 9 】【2 0 】 由于b s d ;b i 法的特殊性,输出结果可能会出现1 1 1 1 m ;1 1 1 。i n 这样的情况, 这时我们需要把它们分别调整成o o o l i n ;0 0 。d n ,这样我们就需要在进行前 导零检测之前,对b s d 混合加法器输出蜀进行p n 重编码。 下面介绍p n 重编码: 3 4 1n 重编码 号。 sss + is i0 1 ,vv s t + is is i 一1 目的:当s h 和s ;同时为1 时,将这两个值都清o 。 实现: j 刀;1 = s y s s 1s 以;= j 1 1 哆 ( 3 t ) z ljz lzi z 经过n 重编码后相应的b s d 的符号会发生变化,矽= s 品1 记录相应8 s d 的符 1 8 复旦大学硕士论文冗余浮点数系统 缺点:砖= 豇的时候会导致n 重编码后芝1 结果的出现,实际是不用互这个 编码的,不过这种情况不影响前导非o b s d 位的检测。 3 4 2 p 重编码 ;乓o eu f = 掣l 1( 3 2 ) 分析见表格: 图3 - 4 p 重编码 表3 - 5 对p 重编码的分析 c o n d i t i o n 砖毪- i p r e c o d i n g 后钓s q l0 0 j f 1 2o l 曩l + 1 31 0 。 41 l ( 墨1 + 1 y ( s 扣1 + 1 ) v 实现: 豁,f = 譬l 嫡 s p v = $ 固h p i = s h p i 5 p ;= 甜p fo “p 州= ( + “,件1 ) 0 甜p j ( 3 - 3 ) 刀,- - - ( s ;+ u p i + i1 s p ; 1 9 复旦大学硕士论文冗余浮点数系统 缺点:s ;= 11 的话会导致p 重编码后2o 这个结果的出现,实际应该是2 0 ,不 过这种情况不影响前导非0 b s d 位的检测。 3 4 3p n 重编码联合使用 此处采用先n 重编码再p 重编码。 s 一曲= 掣1 畔= s 卜s 1 掣 ( 3 4 ) 群= 跻。 “朋产s 玎? 醉”v - l - - 夏s ss ;v 甄e v s s 孬s ss 以v = 酝l 酗 s p n v ,= s n v i l t p n i - - h - - , s v i s s 2 + 西) ,n ;= s i ( & l l p n il l p n f + l = ( 畔+ 甜肋“1 ) o 甜彤f - ( 一s i r + i s i + h p n i 1 ) l l 朋f 秒r 、s n s + l l p n ) ;s - - ( 、磊s vs ,s - l - l j p n 川,h 砺l j p n - 么p ,n = 石( 孺 + ( 酮+ 扰器) 矿+ ( 3 4 4 小结 s 矿i 十l , s l sz p 十n l ( 3 - 5 ) 1 采用p n 重编码后不改变b s d 数据串的第一个非o b s d 前导位的符号。 2 经过p n 重编码之后的得到的三夕序列表征了经过重编码后相应b s d 位是否为 0 ,如果该b s d 位为o ,那么相应的三,值是1 ,否则就是o 。 3 玉- - p n 序列作为l d d ( 前导零检测单元) 盼输入数据串就可知有多少个前导零。 3 5 1 冗余二进制数的快速舍入法1 8 j 夺f a r p a t h :加法的舍入分右移一位和不右移两种情况考虑。 n o t e :s 表示的是r f 中除了g ,r 外,由其他b s d 数据串构成的数据的符号情况; 1 ) s = i 表示由其他b s d 数据串构成的数据是正数: 2 ) s = o 表示由其他b s d 数据串构成的数据的值为0 。 复旦大学硕士论文氤余浮点数系统 3 ) s = - i 表示由其他b s d 数据串构成的数据是负数。 表3 - 6 不右移时的舍入 r e g i o nr a n g eo f r fq k s不需要右移时的输出 l ( - 0 5 ,o ) o l x 0 0 1r , 200 0 0r , 3 ( 0 ,0 5 )l o i ,li x ,0 1 x ,0 0 1 r , 4o 5l o o 尺,+ _ l s b 5 ( o 5 ,1 ) 1 0 1 ,1 l x 矗,+ l 表3 - 7 右移一位时的舍入 r e g i o nr a n g e o fg r ,s需要右移时的输出 r f l ( - o 5 ,o ) 0 1 x ,0 0 1 r f 2o0 0 0 r , 0 3 = o 时,r , 蜀 o ;1 ,要根据局 1 来决定, r l 【1 是非0 就r ,+ 1 ,否则就只, 3 ( o ,o 5 ) 1 01 ,11x ,0 1 x , 弓+ 1 0 0 1 4o 51 0 0r ,+ l 5 ( o 5 ,1 ) 1 0 1 1 1 x r ,+ l 通过对上述舍入表格的观察,采用下面的方法来简化舍入。 先实现四舍五入,再在四舍五入的基础上对个别情况的进行调整。 表3 - 8 四舍五入 r e g l o nr a n g eo f r fg s 不需要右需要右移 移 1 ( - 0 5 ,0 1 0 1 x ,0 0 1 ,0 0 0 r 2 ( o 5 ,1 ) 1 0 1 1 i xr ,十l 3 ( 0 。0 5 其他情况 r ! r ,+ 1 接着在四舍五入的基础上进行调整,从而实现就近舍入的要求: ( 1 ) 当r f 卸5 ,蜀 o = l 且不需要右移的时候,输出应为r + l ; 2 t 复旦大学硕士论文冗余浮点数系统 ( 2 ) 当r f - - 0 ,马 o = 1 ,蜀 1 o 且需要右移的时候,输出应为墨+ l ; 根据上述的舍入决定输出结果应该选择弓还是马+ 1 ; 夺f a rp a t h :减法的舍入分不左移和左移一位两种情况考虑 由于采用图3 3 的方法,减法原本的不左移和左移一位的两种舍入情况转化成 了右移一位和不右移这两种情况,与加法的舍入方法相一致,可以采用相同的舍 入判断,右移判断等等,简化了电路设计。 c l o s ep a t h :减法的舍入分不左移和左移两种情况考虑 我们知道输出结果可能需要左移很多位( 21 ) ,也可能不需要左移。左移很 多位( 1 ) 时,输出结果必然是蜀。 表3 - 9 不需要左移时的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论