一种快速浮点加法器的设计与优化方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

> 个逻辑级 "
若把这样一个加法器运用到一个浮点 ?6@ 上 ! 在时延 分 析 时 ! 还 需 考 虑 到 加 法 器 外 围 电 路 的 延 时 " 假定有四个通用寄存器可参与浮点运算 ! 则为 从这四个寄存器中作选择 ! 又需要两个逻辑级 " 再 考虑到对于溢出等情况进行处理的监控逻辑 ! 整个 加法器的每级流水线延时不会超过 = 个逻辑级 " 采用 6.31&A.A 公司的 4BA053 81C&0DB- 工具进行 综合 ! 综合的结果表明该浮点加法器的关键路径在
!
引言 浮点加减法运算是浮点预算中最常用的操作 !
其中 ! # 表示浮点数 ! 的符号 % $ 表示 % 的指数 部分 !它是一个 6 位的带 2!& 位偏移量 &&0" ! "0" 时 除外 ’ 的无符号数 % " 表示 % 的小数部分 ! 它是一个
浮点加减 法 的 性 能 对 整 个 浮 点 运 算 器 的 性 能 起 到 决定性的作用 " 由于浮点预算包括一系列独立 # 复杂而又费时 的操作 ! 如指数对齐 # 移位 # 尾 数 加 减 # 结 果 的 四 舍 五入及规范化处理等 ! 如果不使用优化技术而顺序 执行上列的步骤 !其时延将无法忍受 " 为此 ! 本文从 算法和结构等多方面考虑 ! 采用了多种优化技术 ! 使本文提出的单精度浮点加法器能达到 ’""()* 的 频率 ! 达到了优化的目的 " 由于文献 +!, 已 经 对 该 浮 点 加 法 器 的 结 构 给 予 了详细的介绍 ! 本文将重点介绍该结构所采用的优 化技术 "
齐$
+#) 尾数相加减 $ &,) 规 格 化 处 理 ! 即 将 尾 数 调 整 到 -$.!/ 的 范 围
内$
+0) 四舍五入 ! 同时根据+,)调整指数值 $ +1) 若 产 生 溢 出 ! 则 需 再 次 右 移 进 行 规 格 化 处
理 !并调整指数 " 可以看到 ! 以上各步包含大量的移位及加减法 操作 ! 若顺序串行 执 行 上 列 步 骤 ! 其 延 时 将 难 以 忍 受 !从而丧失使用价值 "
#
优化技术 根据以上的分析 ! 本设计采用了一系列的优化 这样划分的优点是 # 在 3>DEFG 中 ! 由于两操作数指数差异不超过
方法 !来降低整个浮点运算的操作时延 " 在结构上 ! 采用优化的双通道方案 ! 并提出 * 级流水线的划分 方法 $ 在算法上 ! 使用 23 编码进行指数差前导零的 预测 ! 采用简化的 四 舍 五 入 模 式 % 带 流 水 线 结 构 的 并行前缀加法器等优化技术 ! 并在细节上尽量增加 并行运算的可能 " 下面将对这些优化技术作详细介绍 " 这里 ! 将 以 !4+"#. $#. %#(. &4+"’. $’. %’( 表示两操作数 !() 表示 将进行的运算 &5 为加 !’ 为减 ’!678 表示采用的四 舍五入的模式 !*+&",. $,. %, ) 表示 - %& 中较大的操作 数 !./&"". $". %") 表示较小的操作数 ! 9:;< 表示 %0 ()
3>DEFG 上更加简化 ! 尤其是四舍五入模块的省去 !
大大简化了电路的结构 "
%’ " #"$ 双数据通道的划分方法
浮点加法器的双数据通道划分方法在浮点加 法器的结构设计中被广泛采用 " 其基本思想是根据 两操作数的指数差异大小来划分数据通路 " 这是因 为 ! 当指数差异较小时 ! 两指数进行减法操作时 ! 其 结果将可能产生大量的前导零 ! 这在规格化的时候 将产生大量的左移操作 ! 而移位的位数是个变量 $ 当指数差异较大时 ! 又将在对齐指数时产生大量的 移位 " 传统的划分标准 !仅以 =$0>$’=!’ 作为划分标 准 !根据文献 -#/ ! 我们引入运算操作符 ?@ABB. ?@ABB 的定义为 ?@ABB4"0C"’C() " 由此规定 ! 当两操作数的指数差异小于等于 ’ !
’!故 # 对齐操作的移位数目至多为 ’$ # 指数差的计算只需抽取最末两位 $ # 不需要进行四舍五入 " 在 H>DEFG 中 ! 或者进行加法 ! 或者进行指数差
异较大的减法 !故
# 最后结果在规格化时至多只需要左移一位 $ # 尾数运算结果始终为正 ! 不需要取反 "
与传统的双数据通道划分方法相比 ! 该结构在
文章编号 ! 2"""%&26" (!""#) !"%"!,-,*
&’()*+ ,+- ./0)1)2,0)3+ 34 , 5,(0 563,0)+* 73)+0 8--’9
Q-; RKA! S; T=U*K=<
&OVK<<W <G (FVC<AWAV@C<>FVD. OKB>XKBF YFB<@<>X ;>FZACDF@[. OKB>XKBF !"""’" /0123’
"!"
微电子学与计算机
!""# 年第 !! 卷第 !" 期
!!!!!! 在 $%&’() 中 ! 流水线的第一级 ! 使用 * 位的快
速加法器进行指数差异计算 ! 求出位数的补码表示 法 !并选择大小操作数 " 总延时大约为 + 个逻辑级 " 第二级完成两操作数的指数对齐移位 ! 为了平衡流 水线 ! 这里使用一个带流水线结构的复合加法器 ! 同时! 这一级还将计算出四舍五入所需要的 , #,’--. /0($%$ &$1234035 /0($%676(089. /0(: ;!< 之 值 ! 这 一级共需要 = 个逻辑级 ’ 第三级 ! 完成加法的第二 部分 ! 以及四舍五入操作 ! 并选择最终结果 ! 共需要
根据式7*: !定义 5 为 (
( 5E/G1 7=: 并行前缀加法器 ! 如 QR%’44B- 或 R6%’44B- ! 可 以同时计算出 5 和 5GH) 则可根据 5 的符号 !选择 & 或 5GH 作为结果 ) 在 $%&’() 中 ! 由于四舍五入可能产生进位 ! 因
此也可以利用并行前缀加法器的上述特性 ! 同时计 算出 .*+, 和 .*+,GH! 最终结果的选择根据四舍五 入部分的进位来决定 )
"!,
微电子学与计算机
!""# 年第 !! 卷第 !" 期
一种快速浮点加法器的设计与优化方法
刘哲

付宇卓Leabharlann Baidu
&上海交通大学微电子学院 ! 上海 !"""’" ’ 要 ! 本文提出了一种快速单精度浮点加法器的设计 方 法 ! 重 点 介 绍 了 该 浮 点 加 法 器 所 采 用 的 各 种 优 化 技 术 !
四舍五入的模式决定了浮点运算的精确度!
-...%&/# 规定浮点运算中所用到的 # 种标准四舍
五入模式 ! 它们分别是
125 向零进位 $ 即将最低有效位后的所有位直接
舍去 %
1!5 向最近的高位进 位 &9:;$9<=>? @< :ABCAD@ "
浮点数标准和基本算法 本节介绍浮点数的 -... 标准表示法和基本的 浮点加法运算的算法 "
如双数据通道划分 "’ 级流水线结构 "M: 编码 " 简化的四舍五入模式及并行前缀加法器等 ! 使得该浮点加法器的频 率能够达到 ’""()* ! 能在高性能浮点 NOM 中得到很好的应用 # 关键词 ! 浮点加法器 !M: 编码 ! 四舍五入 ! 并行前缀加法器 中图法分类号 ! )&*+
!! 文献标识码 ! P
!%&
简化的四舍五入模式 根据 S2’8);#<! 将 NOOO 的四舍五入模式简化为
T 种 ! 即 ( 向 零 舍 入 &$U$! 向 无 穷 舍 入 &$N $! 向 最 近 的偶数进位 &$KO $) V OWOK 和 @ X 6B4BD;!< 还通过 引入插入 &03YB8(013 $ 的方法进一步简化了舍入模
!’ 位的无符号数 " 因此 ! 可以用 7#8&+&$",! " +!!$", 5 来
表示一个单精度浮点数+’," 浮点加法器应以两个标准的浮点数作为输入 ! 在指定运算类型 & 加 或 减 ’ 及 四 舍 五 入 模 式 的 情 况 下 ! 输出一个仍符合 -... 标准格式的结果 "
"#" $%%% 四舍五入模式
;E’$即通常所说的四舍五入 !可表示如下 $ (2 FG 7’H7(!I("$ J ! #%&’(’50 (! <@KACLFDA!!!!!!!!!!
!
7!4
"#! $%%% 浮点数 -...%&/# 标准规定一个单精度浮点数的表示
方法如下 $
7’4 向正无穷进位 $ 当符号位为正且最低有效位 后有任一位为 2 时 ! 在最低有效位加 2 ! 否则舍去最
低有效位后的全部值 %
!01%2$ ! 123 " 4 !
收稿日期 $ !""#%"&%"#
! "
!125
7#4 向负无穷进位 $ 与 7’4 相反 ! 当符号位为负且 最低有效位后有任一位为 2 时 ! 则在最低有效位加
!""# 年第 !! 卷第 !"期 $ !否则全部舍去 " !"# 基本的浮点算法
微电子学与计算机
"!!
且进行有效减法 &?@ABB4’’ 时 ! 为 3>DEFG$ 余下的所 有情况为 H>DEFG" 路径选择条件可表示如下 #
一个最基本的浮点加 % 减运算应遵循以下几个 步骤 #
I?JH4+K?@ABB( L6 +=$0>$’="! ’ 划分后的结构如图 ’ 所示 "
+*(
&’( 求指数差 $ &!) 交换操作数 $ &*) 根 据 指 数 差 ! 对 较 小 的 操 作 数 进 行 移 位 对
选择出大小操 作 数 ! 并 进 行 指 数 对 阶 移 位 ! 这 些 大 致需要 , 个逻辑级延时 " 第二级执行 23 编码操作 ! 前导零预测 ! 使用 !, 位的并行前缀加法器执行尾 数的相减操作 !共需要 M 个逻辑级 " 在第三级中 !执 行规格化处理 &, 个逻辑级 ’" 综上 !3>DEFG 关键路 径的长度不超过 M 个逻辑级 "
式 ! 即在原操作的基础上加上一个根据舍入模式得 到的插入数值 &6"7 $) 对单精度数 ! 插入的定义如下 (
"F $ NK7E % ! F
& %!!
%>#
0P $% 0P $KZ 7H":
& %!T
$%&’() 的第二级 " !"!
部分压缩编码进行前导零预测 本文引入 !%" 编码及其相关理论来计 算 前 导 零的个数 " 定义 #( 设 !"!##!!##"$$$!$ 为一个 # 位的借位保存 编码串 ! 对它进行 @ 编码得到 $ ! 即 $E@ 7%:F 则 $ 为 一个 #GH 位的借位保存编码串 $&$#$#%HIII%"! 且 )
! %! F 0P $N ’
该 方 法 中 !$KO 与 &’( 的 不 同 仅 在 于 当 8H E
)9HG9!: [ ! 且 9! 的 最 低 有 效 位 为 H 时 ! 因 此 ! 在 修 正
结果时 ! 在上述情况下将 9! 的最低位强制为零即 可) 对舍入模式的简化 ! 使得相应的逻辑电路在时 间和面积上都得到相应优化 )
8:(09,;0< -> @KFD EBEAC8 LA ECADA>@ B ><ZAW ?ADFX> <G -... V<\EWFB>@ DF>XWA ECAVFDF<> GW<B@F>X E<F>@ B??AC3 ]KA B??AC BVKFAZA? KFXK EACG<C\B>VA =E @< ’""()* =>?AC "326!\ @AVK><W<X[ ^[ =DF>X ZBCF<=D <E@F\F*B@F<> @AVK>F_=AD8 D=VK BD @L< ?B@B EB@K DAEBCB@F<>8 @KCAA EFEAWF>A D@BXAD8 M: A>V<?AC8 CA?=VA? -... C<=>?F>X \<?AD B>? EBCBWWAW ECAGF‘ B??AC A@V3 =’> !39-"< 4W<B@F>X E<F>@ B??AC8 M: A>V<?AC8 %<=>?F>X8 5BCBWWAW ECAGF‘ B??AC
#%!
流水线划分及时延分析 兼顾到面积和速度的需要 ! 该浮点加法器采用
* 级流水线结构 ! 其详细结构图请见附录 ’" 采 用 文 献 -#/ 中 以 逻 辑 级 为 基 本 单 位 的 时 延 分 析方法. 分别对 3>DEFG 和 H>DEFG 进行分析 " 在 3>DEFG 中 ! 流水线第一级将计算指数差异 !
相关文档
最新文档