基于SRT和Restoring算法的双精度浮点除法器设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Resto ring 和 SR T 运算结 果 统一 起 来 ; 在 SR T 运 算 中 应 用 了 On2t he2fly 飞 速 转 换 算 法 , 查 找 表 模 块 采 用 Quine2 McCluskey 化简方法使用高度简化的与或逻辑代替大量的比较器来实现 。上述做法有效提高了除法器的整体运算速
( 中国科学技术大学物理系微电子学教研室 合肥 230026)
摘 要 : 提出了一种基于 SR T 迭代算法的除法器的改进方法 ,采用 Restoring 和 SR T 算法来互补共同完成双精度浮 点除法器的设计 , 当被除数的位数很大时采用改进过的 Restoring 算法来完成除法运算 , 并通过倒数查找 表把
1. 3 Restoring 算法 Restoring 算法称为恢复余数算法 ,在传统的除法器中
0 . 01 A [ 51 ] A [ 50 ] . . . A [ 1 ] A [ 0 ] = = 0 . 1 B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ] 0 . 01 0 . 00 A [ 51 ] A [ 50 ] . . . A [ 1 ] A [ 0 ] + = 0 . 1 B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ]
研究与设计
电 子 测 量 技 术 EL EC TRON IC M EA SU R EM EN T
T EC HNOL O GY
第 31 卷 第 9 期 2008 年 9 月
基于 SRT 和 Restoring 算法的双精度浮点除法器设计
孙 一 张 鑫 王 波 冯 为 金 西
R[ i +1 ] = 4 R[ i ] + F[ i ] F[ i ] = - qi+1 ×b 式中 : i = 0 , 2 , . . . , 26 ; F 为计算缓存器 , A 为被除数 , B 为 除数 , Q 为迭代商 ; 初始化 R[ 0 ] = A - B , Q[ 0 ] = 1 , A 和 B 分别限制在 0 . 5 至 1 的范围内 , 每次迭代产生从低位到高 位的两位商位 ; R[ i ] 是部分余数寄存器 , 当小于 0 时以补码 的形式存储 ; q[ i + 1 ] 是通过查找表得到的商位 , 即满足 : ) qi+1 = S EL ( dδ ,γ
度 ,使得当被除数前十位有 “1” 的位时运算时间减少了 22. 22 % 。 关键词 : SR T 算法 ; Restoring 算法 ; 查找表 ; 倒数 中图分类号 : TP332. 2 文献标识码 : A
Division floating2point double precision based on SRT and Restoring algorithm
式中 : R 为部分余数 , B 为除数 , 当相减的结果为负时需要 进行恢复余数的加法运算 , 并把余数恢复成上一次迭代的 数值 , 商位为 0 ; 当相减的结果为正时则商位为 1 。 设计中将 { R , A} 组成的缓存器在每次迭代时向左移 1 位 , A 初始为 被除数 , 余数缓存器 R 与除数 B 相减 , 若差值为负则把 { R , A} 最低位设为 0 , 否则为 1 ; 同时把 B 加回 R 恢复上一次迭 代时 R 的值 。 A 和 B 的位长为 56 位 , R 的位长为 57 位 , 当迭 代运算完成后{ R , A} 中的 R[ 55 :0 ] 为余数 , A 就是除法运 算输出的商 。 对于 本 双 精 度 浮 点 数 除 法 器 来 说 被 除 数 为 “1 B [ 51 ] B [ 50 ] …B [ 1 ] B [ 0 ]0” , 除 数 为“00 A [ 51 ] A [ 50 ] …A [ 1 ] A [ 0 ]” , 即把被除数和除数的位置颠倒了过来进行 除法运算 , 再通过倒数器输出最终结果 。 Restoring 算法的缺点是收敛速度较低 ,而且每次迭代 完成后若除数比部分余数大则还要进行加法运算恢复部 分余数的数值 ,完成 56 位的除法运算需要 56 个时钟周期 , 应用于除法器设计之前要对其进行改进 。 1. 4 算法改进 当除数 B 的数值很大时 ,商前面的位数都是 “0 ” ,通过 判断除数前面的首 “1” 的位置预先对 { R , A} 进行相应的移 位操作 , 从而减少迭代时间 。 例如 B [ 52 ] 是首 “1 ” 的位 , 那 么除数前面有 B [ 55 :53 ] , 即有 3 位的 “0 ” 位 , 缓存器 { R , A} 就可以直接共同向左移位 ( 56 - 3 ) 位 , 即表明不用进行 迭代计 算 就 可 以 直 接 得 到 Q [ 55 : 3 ] 为“0 ” , 再通过 Restoring 迭代运算得到 Q[ 2 :0 ] 的值就完成 Q 的 结 果 输出 。 在 R TL 级设 计 中 统 一让 除 数 和 “1111111111000 … 000” 进行按位与运算来判断除数的首 “1 ” 位是否是在前十 位之内 ,假如结果为否 ,用 SR T 算法进行常规运算 ,反之则 把{R ,A}向左移位 46 位 ,即确定了商位的前 46 位为 0 , 然 后进入 Restoring 模块进行运算 。
0 引 言
在语音通信和图像处理等领域中对 CPU 的计算精度 和速度提出了很高的要求 , 在双精度浮点数协处理器中除 法器因为采用迭代算法对处理器整体性能有较大的影响 , 对于包含 56 位尾数的双精度浮点数来说采用基为 4 的 SR T 算法完成整个运算需要 26 个时钟周期 。文献 [ 123 ] 给出了基于 SR T 算法的除法器的设计 , 文献 [ 4 ] 介绍了基 于 Restoring 算法的除法器设计 , 其中文献 [ 1 ] 把除法和开 方运算结合起来使得功耗能够降低 35 %左右 。本文通过 对 SR T 算法和 Restoring 算法的研究提出了基于 SR T 除 法器的改进方案 , 进一步提高了除法器的运算速度 , 使得 当被除数的前十位有值 “1 ” 时只需要 10 个时钟周期就可 以完成除法运算 ,在 SR T 算法查找表的硬件设计中使用基 本组合逻辑来代替大量比较器 , 减少查找表的时间延迟 , 在系统设计中采用自顶向下的设计方法 , 利用多种 EDA 工具对设计进行设计优化 , 完成对设计的仿真测试及验证
Sun Yi Zhang Xin Wang Bo Feng Wei Jin Xi
( Instit ute of Microelect ronics Depart ment of Physics , U S TC , Hefei 230026)
Abstract : The imp rovement of t he divider unit which is based o n t he SR T algorit hm is p resented , t he Resto ring algo rit hm and t he SR T algorit hm is used to finish t he design of division floating2point do uble p recision unit toget her , when t he dividend has t he p roperty of long bit ,t he divider unit is operated by t he Resto ring algorit hm which has been imp roved ,and t he result is combined wit h SR T algorit hm by recip rocal look2up2table ; And t he On2t he2fly co nversion is co ncluded in SR T iteratio n unit , based on t he Quine2McCluskey simplification SEL module also implement in co mbinatio nal logic instead of lot s of multiplexers. All of above effectively increase t he speed of divider unit ,when t he f ront ten bit s of dividend has t he“1”bit t he latency of operation has reduce by 22. 22 %. Keywords : SR T ; Resto ring ; SEL ; recip rocal
起来 ,由此也知道 Restoring 的计算公式为 :
Q restoring =
0 . 1 B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ] 0 . 00 A [ 51 ] A [ 50 ] . . . A [ 1 ] A [ 0 ]
=
1 B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ] 0 000 A [ 51 ] A [ 50 ] . . . A [ 1 ] A [ 0 ]
应用比较广泛 , 每次迭代产生一位商数字 , 恢复余数算法 每一步都要执行 :
R[ i+1 ] = 2 R[ i] - B
0 . 1 B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ]
1 1 + = 1 B [ 51 ] . B [ 50 ] . . . B [ 1 ] B [ 0 ] 0 . 1 B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ] 0 . 00 A [ 51 ] A [ 50 ] . . . A [ 1 ] A [ 0 ] 1 1 ( 1) ×2 - 1 + 1 . B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ] Q restoring 式 ( 1) 把 SR T 运算的结果和 Restoring 运算结果结合
综合 。
1 算法描述
IEEE754 标准定义了 32 位单精度和 64 位双精度浮点 数两种格式 , 双精度浮点数包含了 1 位符号位 ,11 位指数 位和 52 位尾数 3 个字段 。规格化的浮点数具有形式 : ±0 . 1 bbb. . . b ×2 ±E 有效位的第一位总是 “1 ” , 并且不需要存储于有效数 字段中 ,定义的浮点数尾数范围在 0. 5 到 1 之间 ,52 位的 双精度浮点数尾数加上在最高位前的 3 位隐含位和在最 低位后的 1 位保护位构成 56 位的二进制数位 。 实现 迭 代 型 除 法 器 的 算 法 主 要 有 3 种 算 法 : Restoring ,Non2Restoring 和 SR T 算法 , SR T 算法是 Non - Restoring 算法的扩展 , 算法基数越大收敛速度越快 , 基 为 4 的 SR T 算法广泛应用于各种微处理器中 。 1. 1 预处理 SR T 算法要求被除数要比除数小 ,被除数 A 运算前要
qrestoring00a51a501b51b50000a51a50restoring算法同样要求除数要大于被除数除数的最高位前加1最低位加0被除数的最高位前补上两个求倒数时若采用迭代法求倒数将消耗11个时钟周期对除法运算速度的提高没有帮助本文采用了查找表的方法来设计倒数器文献介绍倒数查找表的构造方法因为改进的restoring算法得到的结果最多只有从低位开始的十位的有效数字前面的高位都为0设计的倒数查找表输入项位数为11位满足精度要求
・50 ・
孙一 等 : 基于 SR T 和 Restoring 算法的双精度浮点除法器设计
进行右移一位的操作 , 另外为了把 SR T 算法和 Restoring 算法结果统一起来 ,假如被除数为 A [ 51 :0 ] ,除数为 B [ 51 : 0 ] ,则 :
Qsrt
第9期
( 2)
ห้องสมุดไป่ตู้
Restoring 算法同样要求除数要大于被除数 ,除数的最 高位前加 “1” , 最低位加 “0 ” , 被除数的最高位前补上两个 “0” 。 求倒数时若采用迭代法求倒数将消耗 11 个时钟周 期 , 对除法运算速度的提高没有帮助 , 本文采用了查找表 的方法来设计倒数器 , 文献 [ 5 ] 介绍倒数查找表的构造方 法 ,因为改进的 Restoring 算法得到的结果最多只有从低 位开始的十位的有效数字 ,前面的高位都为 “0 ” , 设计的倒 数查找表输入项位数为 11 位满足精度要求 。 除法器的运算包括两种算法 : SR T 算法和 Restoring 算法 ,当被除数的前十位没有 “1 ” 的位时 , SR T 算法在 26 个时钟周期内常规完成除法运算 ; 当被除数的前十位有 “1” 的位时 , 采用 Restoring 算法在 10 个时钟周期内完成 结果输出再经过倒数查表求倒数完成除法运算 。 1. 2 SRT 算法 基为 4 的 SR T 算法能够把除法和开方运算结合起来 , 在除法运算中每一步迭代都要执行 :
( 中国科学技术大学物理系微电子学教研室 合肥 230026)
摘 要 : 提出了一种基于 SR T 迭代算法的除法器的改进方法 ,采用 Restoring 和 SR T 算法来互补共同完成双精度浮 点除法器的设计 , 当被除数的位数很大时采用改进过的 Restoring 算法来完成除法运算 , 并通过倒数查找 表把
1. 3 Restoring 算法 Restoring 算法称为恢复余数算法 ,在传统的除法器中
0 . 01 A [ 51 ] A [ 50 ] . . . A [ 1 ] A [ 0 ] = = 0 . 1 B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ] 0 . 01 0 . 00 A [ 51 ] A [ 50 ] . . . A [ 1 ] A [ 0 ] + = 0 . 1 B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ]
研究与设计
电 子 测 量 技 术 EL EC TRON IC M EA SU R EM EN T
T EC HNOL O GY
第 31 卷 第 9 期 2008 年 9 月
基于 SRT 和 Restoring 算法的双精度浮点除法器设计
孙 一 张 鑫 王 波 冯 为 金 西
R[ i +1 ] = 4 R[ i ] + F[ i ] F[ i ] = - qi+1 ×b 式中 : i = 0 , 2 , . . . , 26 ; F 为计算缓存器 , A 为被除数 , B 为 除数 , Q 为迭代商 ; 初始化 R[ 0 ] = A - B , Q[ 0 ] = 1 , A 和 B 分别限制在 0 . 5 至 1 的范围内 , 每次迭代产生从低位到高 位的两位商位 ; R[ i ] 是部分余数寄存器 , 当小于 0 时以补码 的形式存储 ; q[ i + 1 ] 是通过查找表得到的商位 , 即满足 : ) qi+1 = S EL ( dδ ,γ
度 ,使得当被除数前十位有 “1” 的位时运算时间减少了 22. 22 % 。 关键词 : SR T 算法 ; Restoring 算法 ; 查找表 ; 倒数 中图分类号 : TP332. 2 文献标识码 : A
Division floating2point double precision based on SRT and Restoring algorithm
式中 : R 为部分余数 , B 为除数 , 当相减的结果为负时需要 进行恢复余数的加法运算 , 并把余数恢复成上一次迭代的 数值 , 商位为 0 ; 当相减的结果为正时则商位为 1 。 设计中将 { R , A} 组成的缓存器在每次迭代时向左移 1 位 , A 初始为 被除数 , 余数缓存器 R 与除数 B 相减 , 若差值为负则把 { R , A} 最低位设为 0 , 否则为 1 ; 同时把 B 加回 R 恢复上一次迭 代时 R 的值 。 A 和 B 的位长为 56 位 , R 的位长为 57 位 , 当迭 代运算完成后{ R , A} 中的 R[ 55 :0 ] 为余数 , A 就是除法运 算输出的商 。 对于 本 双 精 度 浮 点 数 除 法 器 来 说 被 除 数 为 “1 B [ 51 ] B [ 50 ] …B [ 1 ] B [ 0 ]0” , 除 数 为“00 A [ 51 ] A [ 50 ] …A [ 1 ] A [ 0 ]” , 即把被除数和除数的位置颠倒了过来进行 除法运算 , 再通过倒数器输出最终结果 。 Restoring 算法的缺点是收敛速度较低 ,而且每次迭代 完成后若除数比部分余数大则还要进行加法运算恢复部 分余数的数值 ,完成 56 位的除法运算需要 56 个时钟周期 , 应用于除法器设计之前要对其进行改进 。 1. 4 算法改进 当除数 B 的数值很大时 ,商前面的位数都是 “0 ” ,通过 判断除数前面的首 “1” 的位置预先对 { R , A} 进行相应的移 位操作 , 从而减少迭代时间 。 例如 B [ 52 ] 是首 “1 ” 的位 , 那 么除数前面有 B [ 55 :53 ] , 即有 3 位的 “0 ” 位 , 缓存器 { R , A} 就可以直接共同向左移位 ( 56 - 3 ) 位 , 即表明不用进行 迭代计 算 就 可 以 直 接 得 到 Q [ 55 : 3 ] 为“0 ” , 再通过 Restoring 迭代运算得到 Q[ 2 :0 ] 的值就完成 Q 的 结 果 输出 。 在 R TL 级设 计 中 统 一让 除 数 和 “1111111111000 … 000” 进行按位与运算来判断除数的首 “1 ” 位是否是在前十 位之内 ,假如结果为否 ,用 SR T 算法进行常规运算 ,反之则 把{R ,A}向左移位 46 位 ,即确定了商位的前 46 位为 0 , 然 后进入 Restoring 模块进行运算 。
0 引 言
在语音通信和图像处理等领域中对 CPU 的计算精度 和速度提出了很高的要求 , 在双精度浮点数协处理器中除 法器因为采用迭代算法对处理器整体性能有较大的影响 , 对于包含 56 位尾数的双精度浮点数来说采用基为 4 的 SR T 算法完成整个运算需要 26 个时钟周期 。文献 [ 123 ] 给出了基于 SR T 算法的除法器的设计 , 文献 [ 4 ] 介绍了基 于 Restoring 算法的除法器设计 , 其中文献 [ 1 ] 把除法和开 方运算结合起来使得功耗能够降低 35 %左右 。本文通过 对 SR T 算法和 Restoring 算法的研究提出了基于 SR T 除 法器的改进方案 , 进一步提高了除法器的运算速度 , 使得 当被除数的前十位有值 “1 ” 时只需要 10 个时钟周期就可 以完成除法运算 ,在 SR T 算法查找表的硬件设计中使用基 本组合逻辑来代替大量比较器 , 减少查找表的时间延迟 , 在系统设计中采用自顶向下的设计方法 , 利用多种 EDA 工具对设计进行设计优化 , 完成对设计的仿真测试及验证
Sun Yi Zhang Xin Wang Bo Feng Wei Jin Xi
( Instit ute of Microelect ronics Depart ment of Physics , U S TC , Hefei 230026)
Abstract : The imp rovement of t he divider unit which is based o n t he SR T algorit hm is p resented , t he Resto ring algo rit hm and t he SR T algorit hm is used to finish t he design of division floating2point do uble p recision unit toget her , when t he dividend has t he p roperty of long bit ,t he divider unit is operated by t he Resto ring algorit hm which has been imp roved ,and t he result is combined wit h SR T algorit hm by recip rocal look2up2table ; And t he On2t he2fly co nversion is co ncluded in SR T iteratio n unit , based on t he Quine2McCluskey simplification SEL module also implement in co mbinatio nal logic instead of lot s of multiplexers. All of above effectively increase t he speed of divider unit ,when t he f ront ten bit s of dividend has t he“1”bit t he latency of operation has reduce by 22. 22 %. Keywords : SR T ; Resto ring ; SEL ; recip rocal
起来 ,由此也知道 Restoring 的计算公式为 :
Q restoring =
0 . 1 B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ] 0 . 00 A [ 51 ] A [ 50 ] . . . A [ 1 ] A [ 0 ]
=
1 B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ] 0 000 A [ 51 ] A [ 50 ] . . . A [ 1 ] A [ 0 ]
应用比较广泛 , 每次迭代产生一位商数字 , 恢复余数算法 每一步都要执行 :
R[ i+1 ] = 2 R[ i] - B
0 . 1 B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ]
1 1 + = 1 B [ 51 ] . B [ 50 ] . . . B [ 1 ] B [ 0 ] 0 . 1 B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ] 0 . 00 A [ 51 ] A [ 50 ] . . . A [ 1 ] A [ 0 ] 1 1 ( 1) ×2 - 1 + 1 . B [ 51 ] B [ 50 ] . . . B [ 1 ] B [ 0 ] Q restoring 式 ( 1) 把 SR T 运算的结果和 Restoring 运算结果结合
综合 。
1 算法描述
IEEE754 标准定义了 32 位单精度和 64 位双精度浮点 数两种格式 , 双精度浮点数包含了 1 位符号位 ,11 位指数 位和 52 位尾数 3 个字段 。规格化的浮点数具有形式 : ±0 . 1 bbb. . . b ×2 ±E 有效位的第一位总是 “1 ” , 并且不需要存储于有效数 字段中 ,定义的浮点数尾数范围在 0. 5 到 1 之间 ,52 位的 双精度浮点数尾数加上在最高位前的 3 位隐含位和在最 低位后的 1 位保护位构成 56 位的二进制数位 。 实现 迭 代 型 除 法 器 的 算 法 主 要 有 3 种 算 法 : Restoring ,Non2Restoring 和 SR T 算法 , SR T 算法是 Non - Restoring 算法的扩展 , 算法基数越大收敛速度越快 , 基 为 4 的 SR T 算法广泛应用于各种微处理器中 。 1. 1 预处理 SR T 算法要求被除数要比除数小 ,被除数 A 运算前要
qrestoring00a51a501b51b50000a51a50restoring算法同样要求除数要大于被除数除数的最高位前加1最低位加0被除数的最高位前补上两个求倒数时若采用迭代法求倒数将消耗11个时钟周期对除法运算速度的提高没有帮助本文采用了查找表的方法来设计倒数器文献介绍倒数查找表的构造方法因为改进的restoring算法得到的结果最多只有从低位开始的十位的有效数字前面的高位都为0设计的倒数查找表输入项位数为11位满足精度要求
・50 ・
孙一 等 : 基于 SR T 和 Restoring 算法的双精度浮点除法器设计
进行右移一位的操作 , 另外为了把 SR T 算法和 Restoring 算法结果统一起来 ,假如被除数为 A [ 51 :0 ] ,除数为 B [ 51 : 0 ] ,则 :
Qsrt
第9期
( 2)
ห้องสมุดไป่ตู้
Restoring 算法同样要求除数要大于被除数 ,除数的最 高位前加 “1” , 最低位加 “0 ” , 被除数的最高位前补上两个 “0” 。 求倒数时若采用迭代法求倒数将消耗 11 个时钟周 期 , 对除法运算速度的提高没有帮助 , 本文采用了查找表 的方法来设计倒数器 , 文献 [ 5 ] 介绍倒数查找表的构造方 法 ,因为改进的 Restoring 算法得到的结果最多只有从低 位开始的十位的有效数字 ,前面的高位都为 “0 ” , 设计的倒 数查找表输入项位数为 11 位满足精度要求 。 除法器的运算包括两种算法 : SR T 算法和 Restoring 算法 ,当被除数的前十位没有 “1 ” 的位时 , SR T 算法在 26 个时钟周期内常规完成除法运算 ; 当被除数的前十位有 “1” 的位时 , 采用 Restoring 算法在 10 个时钟周期内完成 结果输出再经过倒数查表求倒数完成除法运算 。 1. 2 SRT 算法 基为 4 的 SR T 算法能够把除法和开方运算结合起来 , 在除法运算中每一步迭代都要执行 :