一种快速浮点加法器的优化设计
发布时间:2020-07-19 11:35
【摘要】: 随着时代的发展,在多媒体领域和科学计算领域,当代处理器的一个重要特征就是,在中央处理器(CPU)中将把浮点运算的部件作为核心运算部件直接集成于其中。在信号处理以及图象处理以及语音识别等一些应用中,人们对高性能浮点处理单元(Floating Point Unit,简称FPU)的需要就更加迫切了,总之就是在越来越多的领域中,尤其是一些对于数字处理有着高速实时要求的领域,浮点数的运算发挥出越来越重要的作用,因而浮点运算单元成为中央处理器设计中的决定性能的关键部件之一。 根据Oberman的统计,浮点指令中使用最频繁的是浮点加法指令,浮点加法运算占用了浮点运算的55%以上。浮点加法、减法、转换和传送都最终都可以转换成为浮点加法运算完成,由于浮点加法的使用频率最高同时设计难度最大,所以浮点加法器又成为浮点运算单元(FPU)中最为关键的部件,它的性能好坏将直接影响FPU的性能进而影响决定了CPU的浮点运算能力。因此,设计高速的浮点加法器更是重中之重。 本文的主要目的就是关于浮点加法器的优化设计,首先介绍了国内外FPU发展历史和现状研究,并对浮点数处理器的应用进行了讨论,接着对于浮点数系统以及IEEE-754标准,以及IEEE-754所定义的特殊值,异常和它的舍入模式做了相应的介绍。从第三章开始,采用自顶向下的设计方法,从传统的5周期浮点加法算法入手,对于其步骤分析进行改进,引入了Two-Path算法。这样就构建了浮点算法中的基本思路以及各个基本组件构成,第四章则分别对于浮点加法器中的各个组件设计进行详细的分析以及优化,比如前导零的设计电路,错位并行电路设计思想的引入,复合加法器的优化设计,以及桶形移位器的采用和舍入合并技术的引进。经过上述的优化设计后,浮点加法器的加法运算从传统的5周期变成了目前所需要的3周期,这极大地提高了加法器的速度。 设计完成后,对于其进行仿真验证,因为浮点加法器2条路径分别是由若干个小的功能模块组成,测试时按照自下而上,先小后大,逐级向上的思想进行仿真测试.针对FAR路径和CLOSE路径执行数据的特点分别编写测试激励,在遍历测试了各小部件,保证正确性后,再进一步验证各小部件间的逻辑连接正确性,在Modelsim环境下对采用该方法的双精度浮点运算的前导零预测电路进行代码覆盖率为100%的验证,结果表明该算法正确。同时对于其时延以及所占面积进行了进一步的分析。 最后对于本设计以及其中的研究重点做了总结,并且对于其中的不足和将要进行的改进提出了展望。
【学位授予单位】:中国科学技术大学
【学位级别】:硕士
【学位授予年份】:2009
【分类号】:TP332
【图文】:
第四章 浮点加法器中各组件的优化设计24图4.2:一位全加器综合出来的电路图Ai Bi CiCi+1 Si图4.3 一位全加器的框图4.2.3 逐位进位加法器半加器和全加器是最基本的加法单元,但是通常它们并不是性能和面积最佳的加法器,特别是当计算机进入到32位甚至现在的64位时代,要对32位或者64位的数进行加法运算,是一个复杂而又浩大的工程。如果仅仅用全加器来实现这一功
就需要4位全加器,依次链接起来,经过4位全加器的延迟才能得到想要的结果。这种加法器叫做逐位进位加法器(carry-ripple adder),从最低位来的进位信号是一位一位逐位串行向高位传播。图4.4是根据这种方法组成的4位逐位进位全加器的逻辑框图。图4.4 :四位逐位进位加法器由此可知,如果进行N位数的计算,它的延迟将是:adder carry sumT = ( N 1)T +T随着N值的增大,这样的时序是难以让设计者接受的。正是因为这个简单的逐位进位链的缘故,直接严重影响了逐位进位加法器的速度。4.2.4 超前进位加法器采用4.4结构的逐位进位加法器在使用硬件资源方面确实起到了节省的作用,能够采用最少的硬件资源,但是对于位数很多的两个数相加会给电路造成很长的延迟时间。为了解决这个问题,人们又设计了一种多位数超前进位加法逻辑电路(carry-look-ahead adder简称CLA),使每位的进位只由加数和被加数决定,而与地位的进位无关。其实CLA加法器(Chiung Cheng,2000)的原理很简单
第四章 浮点加法器中各组件的优化设计28图4.6: 16位由4个4位CLA级联实现的CLA其16位简单CLA结构如图4.6 所示。其中每个全加器的进位均可由递推关系通过加数A 和B 快速得到。这样每位加法结果可以并行的很快得到。更复杂的多级CLA可以通过将图中的全加器替换成长度短的CLA实现。4.2.5 进位选择加法器在众多的加法器中进位选择加法器 (carry-select adder,简称CSA)是一种兼顾运算速度和面积的一种加法器(Tyagi,1993),从而广泛的应用于移动设备。多位的CSA可以由多个小的加法模块组成.在逐位进位加法器中,每一个加法单元都必须等到前一位的进位传递进来才能产生结果。为了解决这个问题可以提前将两种可能的结果(进位为0和进位为1)都计算出来,然后就可以根据实际值选出正确的结果。图4.7中给出了传统的CSA结构图,它由n个模块组成,每个模块中由两个快速进位加法器(CLA) 组成(除了模块1只由进位为0的一个CLA加法器组成) , 其中一个用于计算进位i-1C (来自上一个模块)为0的情况,另一个用于计算i-1C 为1时的情况
本文编号:2762362
【学位授予单位】:中国科学技术大学
【学位级别】:硕士
【学位授予年份】:2009
【分类号】:TP332
【图文】:
第四章 浮点加法器中各组件的优化设计24图4.2:一位全加器综合出来的电路图Ai Bi CiCi+1 Si图4.3 一位全加器的框图4.2.3 逐位进位加法器半加器和全加器是最基本的加法单元,但是通常它们并不是性能和面积最佳的加法器,特别是当计算机进入到32位甚至现在的64位时代,要对32位或者64位的数进行加法运算,是一个复杂而又浩大的工程。如果仅仅用全加器来实现这一功
就需要4位全加器,依次链接起来,经过4位全加器的延迟才能得到想要的结果。这种加法器叫做逐位进位加法器(carry-ripple adder),从最低位来的进位信号是一位一位逐位串行向高位传播。图4.4是根据这种方法组成的4位逐位进位全加器的逻辑框图。图4.4 :四位逐位进位加法器由此可知,如果进行N位数的计算,它的延迟将是:adder carry sumT = ( N 1)T +T随着N值的增大,这样的时序是难以让设计者接受的。正是因为这个简单的逐位进位链的缘故,直接严重影响了逐位进位加法器的速度。4.2.4 超前进位加法器采用4.4结构的逐位进位加法器在使用硬件资源方面确实起到了节省的作用,能够采用最少的硬件资源,但是对于位数很多的两个数相加会给电路造成很长的延迟时间。为了解决这个问题,人们又设计了一种多位数超前进位加法逻辑电路(carry-look-ahead adder简称CLA),使每位的进位只由加数和被加数决定,而与地位的进位无关。其实CLA加法器(Chiung Cheng,2000)的原理很简单
第四章 浮点加法器中各组件的优化设计28图4.6: 16位由4个4位CLA级联实现的CLA其16位简单CLA结构如图4.6 所示。其中每个全加器的进位均可由递推关系通过加数A 和B 快速得到。这样每位加法结果可以并行的很快得到。更复杂的多级CLA可以通过将图中的全加器替换成长度短的CLA实现。4.2.5 进位选择加法器在众多的加法器中进位选择加法器 (carry-select adder,简称CSA)是一种兼顾运算速度和面积的一种加法器(Tyagi,1993),从而广泛的应用于移动设备。多位的CSA可以由多个小的加法模块组成.在逐位进位加法器中,每一个加法单元都必须等到前一位的进位传递进来才能产生结果。为了解决这个问题可以提前将两种可能的结果(进位为0和进位为1)都计算出来,然后就可以根据实际值选出正确的结果。图4.7中给出了传统的CSA结构图,它由n个模块组成,每个模块中由两个快速进位加法器(CLA) 组成(除了模块1只由进位为0的一个CLA加法器组成) , 其中一个用于计算进位i-1C (来自上一个模块)为0的情况,另一个用于计算i-1C 为1时的情况
【引证文献】
相关硕士学位论文 前1条
1 黄丹连;高吞吐率单双精度可配置浮点乘累加器的设计与实现[D];上海交通大学;2011年
本文编号:2762362
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2762362.html