版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分类号TP 332.2密级 UDC 编号 中国院 高性能浮点 DSP 中 ALU 的研究与设计王 桐指导教师研究员博士中国自动化申请学位级别学位学科专业名称 模式识别与智能系统提交日期 2005-5-18 答辩日期2005-5-30自动化培养学位授予中国中国院答辩委员会 A Study and Design of ALU inHigh Performance Floating-Point DSPDissertation Submitted toInstitute of Automation,Academy of Sciencesin partial fulfillment of the req
2、uirementsfor the degree ofMaster of Engineeringby Wang Tong(Pattern Recognition and Intelligent Systems)Dissertation Supervisor: Prof. Donglin Wang独创性本人所呈交的是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,中不包含其他人已经或撰写过的研究成果。与我一同工作的同志对本做的任何贡献均已在中作了明确地说明并表示了谢意。签名:日期: 关于使用的说明本人完全了解中国自动化有关保留、使用的规定,即:中国自
3、动化保留送交的复印件,被查阅和借阅;可以公布的全部或部分内容,可以采用影印、缩印或其他保存。(的在后应遵守此规定)签名:导师签名:日期: 摘 要浮点 ALU 进行定点与浮点的算术及逻辑运算,是现代数字信号处理器中使用频率最高的运算部件,其运算能力是衡量 DSP性能的主要指标。浮点 ALU的算法结构以浮点加减算法为基础。成对浮点加减进行优化的算法包括双路径并行,前导 1,并行舍入以及各种快速的定点加法算法。本文对各种DSP 应用的特点做出了改进,并在此基础上采优化算法进行了分析比较,用自顶向下的方法设计了一个用于高性能浮点 DSP 的 ALU(ZKLC ALU)。传统的双路径并行算法以指数差作为
4、依据将浮点运算划分为两条并行路径执行,去掉了基本算法中关键路径上的一个尾数加法器和一个完整位宽移位器;前导 1算法将前导 1的逻辑提前到与尾数加减并行执行,进一步缩短了关键路径;并行舍入通过复合加法器预先算出所有可能的结果,使舍入步骤简化为选择操作。采用这些优化算法后,将关键路径中的 7 个运算步骤简化为 4个,有效地提高了浮点加减法的运算速度。由于 DSP 应用中需要大量用到减操作,本文提出以加减法作为划分双路径的依据,以在关键路径中增加一个完整位宽移位器为代价,提供了每次操作完成加减运算各一次的能力。设计的 ALU 不支持向±舍入,使并行舍入的选择逻辑得到简化,并可舍弃复合加法器
5、前的 n 位半加器,缩短了关键路径。根据复合加法器同时计算 sum 与 sum+1 的特点,采用选择进位的结构来实现,并给出一种选择进位的最优化分组方法。完成算法设计后,根据 DSP系统要求 ZKLC ALU 提供的指令功能与外部接口进行电路结构的设计,并使用 VerilogHDL 语言进行 RTL 描述。之后在Cadence Verilog-XL 环境下,用大量测试向量对 ZKLC ALU 进行,并与软件模拟器的运行结果进行比较,验证了 ZKLC ALU 逻辑功能的正确性。最后,使用Synopsys Design Compiler 对设计进行综合,结果显示在 Chartered 1.8V 0
6、.18mmCMOS 工艺下,ZKLC ALU 关键路径的约 8.59ns,符合系统设计要求。此外,对不同分组方式下的选择进位复合加法器进行综合的结果也验证了最优化分组方法的正确性。:浮点 ALU,双路径并行,前导 1,并行舍入,复合加法器A Study and Design of ALU inHigh Performance Floating-Point DSPAbstractFloating-point ALU performs arithmetic and logic operations in both fixed-point and floating-point formats. Fl
7、oating-point ALU is the most important computation unit in modern digital signal processor (DSP) for it is most frequently used. The Architecture of floating-point ALU is based on the algorithms of floating-point arithmetic, such as double datapath, leading-one prediction, parallel rounding and many
8、 fast fixed-point adders. This paper analyzed some commonly used optimal algorithms in detail, improved them for DSP application, and then, designed an ALU in high performance floating-point DSP using the Top-Down methodology.Floating-point arithmetic is divided into two parallel parts according to
9、exponent difference in double datapath algorithm, saving a significand adder and a full-length shifter; In leading-one prediction algorithm, the leading-one detection step can be performed in parallel with the significand adder, removing it from the critical path; By selecting the results which are
10、given by the significand compound adder, rounding and addition can be done simultaneously. With these improved algorithms, the number of steps in the critical path is reduced from 7 to 4, hence offering a considerable speed advantage.Because there are so many dual add/subtract operation in DSP appli
11、cation, we proposed a new double datapath algorithm which divided the datapath according to effective addition or subtraction. The new algorithm can operate an addition and a subtraction simultaneously in one cycle only by increasing a full-length shifter in thecritical path. ZKLC ALU doesnt support
12、 round to infi, so the selection of parallelrounding is simplified and the n-bits of half adders can be removed from the critical path. Also, an optimal design of Carry-select compound adder is proposed.We structured the ZKLC ALU according to above algorithms and the system requirements, and describ
13、ed the structure in RTL with VerilogHDL. Then, a simulation in Cadence Verilog-XL was performed to verify the logic function of the ALU. At last, circuit synthesis in Synopsys Design Compiler (Chartered 1.8V 0.18mm CMOS technology) showed a critical path delay of 8.59ns. The result can fulfill the s
14、ystem requirement. Moreover, the optimization of Carry-select compound adder was proved by synthesis results in different stage sizes.Keywords:Floating-Point ALU,Double Datapath,Leading-One Prediction,Parallel Rounding,Compound Adder目 录第一章 引言1第二章 浮点 ALU 算法分析22.1 IEEE754 浮点数标准22.2 基本浮点加减算法22.3 双路径并行算
15、法32.4 前导 1算法42.5 并行舍入算法102.6 优化的浮点加减算法192.7 定点加法算法19第三章 ZKLC ALU 算法设计253.1 双路径并行算法263.2 前导 1算法273.3 并行舍入算法273.4 复合加法器算法283.5 CSA 的最优化分组29第四章 ZKLC ALU 电路结构设计314.14.24.3ZKLC ZKLCZKLCALU接口31ALU 数据通路34ALU 译码. 39第五章 ZKLC ALU 指令设计435.1 定点指令435.2 浮点指令455.3 多操作指令49第六章 ZKLC ALU6.1 ZKLC ALU与综合50验证506.2 ZKLC A
16、LU 综合53第七章 结论54参考文献55致 谢57附录58个人简历61第一章 引言随着人们对实时信号处理要求的不断提高和大规模集成电路技术的迅速发展,DSP 的应用几乎遍及整个电子领域:通信、语音处理、图形/图像处理、自动、医学电子、军事与尖端科技、消费类电子等领域都会用到数字信号处理器。定点 DSP 可以胜任大多数应用,但在某些场合,如、声纳信号的处理中,数据的动态范围很大,按定点处理会发生数据溢出,严重时操作无法进行。如果用定点模拟浮点运算,则程序的执行速度将大大降低。浮点 DSP 的出现解决了这些问题。浮点运算相对于定点运算而言,具有精度高,动态范围大,易于编程调试等特点,因此当前的高
17、性能数字信号处理器(DSP,DigitalSignal Processor)大都采用浮点格式。浮点 DSP 中的 ALU 提供定点数与浮点数的算术运算和逻辑运算功能,是使用频率最高的运算部件,其运算能力是衡量DSP性能的主要指标。随着VLSI技术的不断发展,浮点 ALU 在算法结构和电路实现上都逐步完善,性能不断提高。ZKLC DSP 是集成电路中心设计的一款 32 位高性能浮点 DSP 处理器,采用超哈佛结构,采用 4 套的总线有效地将 32 位 IEEE 浮点运算单元、大容量双端口静态器、输入/输出器和程序/数据外部总线及多处理器接口集成在一起。其中计算单元包括:算术逻辑单元(ALU)、带
18、定点累加器的乘法器(MAC)和一个桶形移位器(Shifter)。ZKLC DSP 预计采用 0.18m的 CMOS 工艺实现,最高主频 100MHz,可工作于 33-100MHz 范围内。本文在对各种浮点 ALU 优化算法进行分析比较的基础上,典型数字信号处理应用的特点,参考 DSP系统设计对 ALU 提出的要求,对算法进行精改进,使其更适用于 DSP 应用。最后,采用自顶向下的方法完成了一个高性能浮点 DSP 处理器中 ALU 的设计。第二章 浮点 ALU 算法分析浮点 ALU 执行定点或浮点数据的算术操作(加、减、求平均、比较大小等),也执行定点数据的逻辑操作(与、或、异或、非等)。其中最
19、减运算。的操作为浮点加2.1 IEEE754 浮点数标准浮点系统中,每个计算机的字被分成两个部分:指数和尾数。浮点数的表示方法,许多组织都制定了浮点数表示形式的标准。其中,IEEE754 浮点算术标准逐渐被计算机业界认可,成为今天应用最广泛的浮点数表示和运 算的标准1。此标准定义了两种浮点数格式:单精度(single precision)与双精度(double precision)浮点数。其中,单精度浮点数用 32 位表示,包括 1 位符号位(s),8 位指数位(e)和 23 位分数位(f)。指数部分是一个有符号数,采用偏移码的方式表示(偏移量 127)。分数部分与隐含位的 1 共同实际的尾数
20、。因此,以 s-e-f表示的数值即为(-1)s×1.f×2e-127。值得注意的是,浮点数的分数部分不能和尾数。尾数中的 1 不出现在表示形式中,但是在进行运算时要将它加上。2.2 基本浮点加减算法基本的浮点加减运算需要以下步骤2:1、 指数比较:将两个浮点操作数的指数相减,差的绝对值为 d;2、 移位对齐:将指数较小操作数的尾数右移 d 位;3、 尾数加减:移位对的尾数进行加减运算(依操作码和操作数的符号而定);4、 补码转换:若尾数加减的结果为负数,则进行求补操作,将其转换为符号-尾数的形式5、 前导 1:若第 3减法,需要决定结果左移的位数;若为加法,需要决定结果是否
21、右移 1 位;6、 规格化移位:对尾数加减结果进行移位,使其最高有效位为 1;7、 舍入并输出结果;上述步骤中的主要是由 2 个移位器(移位对规格化)和 3 个加法器(尾数加减、补码转换和舍入)带来的。为了提高浮点加减法的运算速度,按照向关键路径要时间,关键路径要面积的原则,分析的运算是否真正需要在运算结束后才能开始;如果不是,则可以让它们并行执行,用增加器件(面积)的代价,换取时间上的提高,缩短关键路径。2.3 双路径并行算法通过分析上面的浮点加法算法可以发现:1、执行加法操作时,尾数相加的结果总为正数,不必进行补码转换。执行减法操作时,若两指数不相等(d0),尾数移位对,根据指数比较的结果
22、交换尾数的位置,总用大指数操作数的尾数减小指数操作数的尾数,可以保证结果为正数,不必进行补码转换;若两指数相等(d=0),则尾数相减的结果可能为负数,需要进行补码转换,但因为运算前尾数不必移位对齐,所以计算的结果是精确的,不需要进行舍入操作。可以看出,补码转换和舍入操作是互斥的,在一次浮点加减操作中,最多用到 2 个加法器。2、执行加法操作时,运算结果的规格化操作至多进行一位右移,不需要完整位宽的移位器。执行减法操作时,如果两个操作数的指数差大于 1(d1),则运算结果的规格化操作至多进行一位左移,不需要完整位宽的移位器;如果指数差为 0 或 1(d1),则运算前尾数的移位对齐最多右移一位,也
23、不需要完整位宽的移位器。因此,一次浮点加减操作中,尾数对移位和规格化的移位二者之中只有一个需要较大的完整位宽移位器,而另一个只需左移或右移一位,带来的很小。根据上述两条结论,可以设计两条的路径分别用于不同情况下的计算:FAR 路径计算加法和指数差大于 1 的减法,而 CLOSE 路径计算指数差小于等于1 的减法2,8。双路径算法与基本算法的运算步骤比较如表 2-1 所示,可以看出, 双路径并行算法缩短了基本算法中的关键路径,提高了运算速度。表 2-1.双路径算法与基本算法的运算步骤比较注:d 为浮点操作数指数差的绝对值2.4 前导 1算法3,4,5,6 (LOP)也称为前导 0前导 1(LZA
24、),用于浮点加法器中计算结果中前导 0 的个数,而前导 0 的个数正是规格化移位的位数。对计算结果进行规格化移位最直接的方法如图 2-1 所示。尾数运算完成后,前导 1(LOD) 也称为前导 0(LZD)电路,计算结果中前导 0 的个数并对其进行编码,LOD 编码尾数运算结果在移位器中进行规格化左移。因为必须等尾数运算完成后才能确定移位位数,所以这种方法的较大。基本浮点加法算法双路径并行算法CLOSE 路径d1 的减法FAR 路径加法和 d1 的减法指数比较移位对齐尾数加减补码转换前导 1规格化移位舍入并输出结果指数比较+交换位置尾数加减 补码转换|舍入前导 1规格化移位(完整位宽)指数比较+
25、交换位置移位对齐(完整位宽) 尾数加减舍入选择输出结果图 2-1. 前导 1的规格化改进的方法如图 2-2 所示。移位位数的确定与尾数运算同时进行。由尾数运算的操作数直接得到前导 0 的个数。尾数运算完成后,不再进行前导 1直接送入移位器进行移位,从而缩短了关键路径。前导 1的结果并不总是准确的,有时会产生 1 位的误差,因此采用这种算法在规格化移位后需要增加补偿电路误差是否存在并对其进行修正。这会导致的增加,但与图 2-1 所示方法相比,总是减少的。图 2-2. 前导 1的规格化文献3中介绍的 LOP 算法结构如图 2-3。其基本步骤如下:1、 对操作数进行预编码后产生 0、1 编码串,其前
26、导 1 的位置与尾数计算结果前导 1 的位置相同(可能有 1 位误差)。2、 此 0、1 编码串经 LOD 电路处理得到前导 1 位置的二进制编码,数计算结果在规格化移位器中左移的位数。尾3、 由于预编码可能会产生一位误差,移位后的结果还要经过补偿电路并纠正误差。图 2-3. 前导 1的算法结构2.4.1 预编码由 IEEE754 浮点数标准可知,尾数计算的操作数均为正数,定义两个尾数分别为 A=a0a1am-2am-1 和 B=b0b1bm-2bm-1,令 W = A-B(不带进位传递),其中-1,0,1,为了方便表示,将-1 记为1,定义 x 表示任意字符串,0k,wi = ai-bi,
27、wi1k,1k 分别表示 k 个连续的 0,1 和1。下面分 W0,W0 和 W=0 三种情况讨论。W0:由于 W0,w 串中第一个非 0 的位应为 1,所以 w 串可以表示为 0k1(x)。不同位串形式下的前导 1 位置如表 2-2 所示。表 2-2. W0 情况下前导 1 位置与不同位串形式的关系*表示需要修正综合上表,若 w 串中相邻两位的值满足如下条件,则第 i 位为前导 1。wiwi+1 = 1(not1) or1(not1)公式 2-1从表中第三行可以看出,正确的前导 1 位置应为 k+2,然而根据公式 1 得到的前导 1 位置为 k+1,这正是 1 位误差的来源。可以看出,错误的
28、位置总是在正确位置的左侧,因此在误差补偿电路中只需要将结果左移。W0:交换 W0 情况下 1 与1的位置,即可得到 W0 情况下前导 1 位置与不同位串形式的关系。若 w 串中相邻两位的值满足如下条件,则第 i 位为前导 1。wiwi+1 =1(not 1) or 1(not 1)公式 2-2W = 0:这种情况下预编码及尾数计算的结果均为 0,没有前导 1。位串形式前导 1 位置位置描述识别子串0k11xk+1第一个 1110k10正串或 0 串k+1第一个 1100k10j负串k+2第一个 1 后第一个 010*0k11j1xk+j+1第一个-1 串的最后一个-1110k11j0正串或 0
29、 串k+j+1第一个-1 串的最后一个-1100k11j0i负串k+j+2第一个-1 串后第一个 010*定义 F 为预编码后产生的 0、1 编码串,其前导 1 的位置与尾数计算结果前导 1 的位置相同(可能有 1 位误差)。F=f0f1fm-2fm-1, fi0,1,F 串的值是由不同情况下 W 串的值组合产生的。对于 wi 0,1,1的三种可能值,定义 ei,gi,si,其中,wi=0 时,ei=1;wi=1 时,gi=1;wi=1时,si=1。W0 时,fi(pos) =gi si+1 + si si+1公式 2-3W0 时,fi(neg) =si gi+1 + gi gi+1公式 2-
30、4可以根据 F(pos)串和 F(neg)串分别进行前导 1,然后选择结果,但这样需要两套 LOD 电路,更高效的方法是将 F(pos)串和 F(neg)串组合后再交给 LOD电路进行。直接将 fi(pos)与fi(neg)进行“或”的组合会产生逻辑错误,需要加入的限制条件。从表 2-2 可以看出,w 串中相邻两位满足 wiwi+1 = 1(not1)时,若 i 为前导 1 的位置,必然伴随着 wi-1 = 0;而 wiwi+1 =1(not1)时,若 i 为前导 1 的位置,必然伴随着 wi-10。考虑到 i-1 位的情况后,fi 的表如下W0 时,fi(pos) =ei-1gi si+1
31、+ ei-1si si+1公式 2-5W0 时,fi(neg) =ei-1si gi+1 + ei-1 gi gi +1公式 2-6此时,将 fi(pos)与 fi(neg)进行逻辑“或”的组合,无论尾数运算的结果为正数还是负数,所得的 fi 都可以正确反应其前导 1 的位置。= ei-1 (gi si+1 + si gi+1 ) + ei-1 (si si+1 + gi gi+1 )fi公式 2-7特别的,当 W = 0 时,fi = 0。2.4.2 前导 1由公式 2-7 得到预编码的 0、1 编码串 F 后,用 LOD 电路对其前导 1 的位置进行二进制编码,得到两个输出信号:V 表示
32、F 串中是否包含数字 1;P 表示 F 串中前导 1 的位置。F = 0 时,V = 0,表明尾数计算的结果为 0;F0 时,P 决定规格化移位器移位的位数。如表 2-3 所示,对编码串 F 采用二分查找算法来确定 V 与 P 的值。表 2-3. LOD 的二分查找算法注:假设 F 串位宽为 32,从左至右依次为 0-31 位若 F 串的 0-31 位全部为 0,则 V=0,否则,V=1。若 F 串的 0-15 位均为 0,说明前导 1 的位置在后 16 位,规格化需左移至少16 位,因此 P4=1;若 F 的 0-15 位包含 1,说明前导 1 的位置在前 16 位,规格化左移大于 16 位
33、,因此 P4=0。P4=1 时,对 16-31 位的两个 8 位组进行,若 16-23 位均为 0,说明前导 1 的位置在 24-31 位,规格化左移至少 16+8=24 位,因此 P3=1;若 16-23位包含 1,说明前导 1 的位置在 16-23 位,规格化左移大于 24 位,因此P3=0。P4=0 时,对 0-15 位的两个 8 位组进行,若 0-7 位均为 0,说明前导 1 的位置在 8-15 位,规格化左移至少 0+8=8 位,因此 P3=1;若 0-7 位包含 1,说明前导 1 的位置在 0-7 位,规格化左移大于 8 位,因此 P3=0。以此类推,可以得到 P2、P1、P0的值
34、,完成对 F 串前导 1 位置的二进制编码。0-31V0-1516-31P40-78-1516-2324-31P30-34-78-1112-1516-1920-2324-2728-31P20-1*30-31P10/12/3*30/31P02.5 并行舍入算法通过进一步分析可以发现,舍入操作对运算结果只作微小的改动。如果使用一个复合加法器同时计算出所有可能的结果,则舍入步骤可以减化为根据舍入要求的结果选择操作,提高了运算的速度7。此外,执行减法操作时,A-B 是在复合加法器中以 A+ B +1 的形式执行的,若结果为负数,需要进行补码转换,即-(A-B) = A + B 。这表示 CLOSE 路
35、径中的补码转换步骤可以由逐位求反操作替代,进一步缩短了关键路径。图 2-4 所示分别为基本算法和利用复合加法器的并行舍入算法的运算步骤。图 2-4.基本算法和并行舍入算法的运算步骤IEEE754 标准中定义了 4 种舍入模式:就近舍入、截断舍入、向+舍入和向-舍入1。利用复合加法器进行并行舍入的算法中,需要根据不同的舍入模式及输入操作数,选择不同的计算结果。下面分情况进行讨论。假定 A、B 为操作数,定义 S、Sp1、Sp2 分别为复合加法器执行尾数加法操作所得X+Y、X+Y+1 和X+Y+2 的结果(加法时X=A,Y=B;减法时 X=A,Y= B ), R 为舍入后的结果。g、r、s 分别为
36、移位对齐过程中移出的保护位、舍入位和粘贴位。L、L-1 分别为尾数运算结果的最低有效位和次低有效位。2.5.1 就近舍入加法操作假定操作数 B 具有较小的指数,因此 garasa = 0, grs = gyrysy = gbrbsbI. 尾数运算结果 S 最无进位,不需规格化(Cout=0)ifg (r + s + L)otherwiseR = ìSp1íSîII. 尾数计算结果 S 最有进位,需右移一位规格化(Cout=1)L(g + r + s +L -1)otherwiseR = ìSpíSî减法操作仍然假定操作数 B 具有较小
37、的指数,因为减法时需要作 A+ B +1 的操作,gb rb sb ,s = sy ,r = ry Å sy ,g = gy Å(rysy ) 。此时 Y= B ,所以 garasa = 0,gyrysy =尾数计算结果 Sp1 最有进位,结果为正(Cout=1)grs = 000 时:L-1Lg+r+s选择注释110010x11x0xSp1 SSp1S平分,奇数平分,偶数向上舍入向下舍入Lgr+s选择注释110010x11x0xSp1 SSp1S平分,奇数平分,偶数向上舍入向下舍入III.结果精确,不需舍入R = Sp1grs 000 时:IV.不需规格化(MSB = 1
38、)ifg (r + s + L)otherwiseR = ìSp1íSîV. 需左移一位规格化(MSB = 0 and MSB-1 = 1)ìSp1, 0ifif ifrg rgsr + gsR = ï S,1íï S, gîLSB 为规格化左移时移入的第一位数,若需要左移多位,则移入的其它位为 0grs选择LSB注释11001001111100110xSp1 S SSp1 SS001001平分,奇数平分,偶数向上舍入,g = 0向上舍入,g = 1向下舍入向下舍入Lgr+s选择注释110010x11x01Sp1
39、SSp1S平分,奇数平分,偶数向上舍入向下舍入选择规格化过程中移入的数据规格化结果非规格化结果Sp1Sp100VI. 需左移多位规格化(MSB = 0 and MSB-1 = 0)这种情况只发生于 d=0,1 时,因此规格化后结果是精确的,不需要进行舍入。R = S,100ifgVII. 尾数计算结果 Sp1 最无进位,结果为负(Cout=0)这种情况只发生于 d=0 时,规格化移位后结果是精确的不需要进行舍入。由于得到的结果为负数,需要求其补码,即-(A-B) = A + B ,由 S 逐位求反得到。R = S将上面的结果应用于双路径浮点加法器,定义selnearest 为结果选择信号,se
40、lnearest = 1 时选择 Sp1,否则选择 S。CLOSE 路径处理 III、IV、V、VI、VII 的情况:selnearest= C grs + MSB × g(L + r + s) + MSB × gr公式 2-8closeout因为 CLOSE 路径中 r = 0,s = 0,所以公式 2-8 简化为selnearest= C g + MSB × g × L公式 2-9closeout此外,当结果为负数时,选择 S 且需要逐位求反。FAR 路径处理 I、II、III、IV、V 的情况:ìC× g(L + r + s)
41、+ C× L(L -1 + g + r + s)add = 1sub = 1ififïselnearest=outout公式 2-10ífarCout grs + gr + MSB × g(L + s)ïî选择规格化过程中移入的数据规格化结果非规格化结果SS002.5.2 向+和-舍入向+舍入时,若浮点加减结果为正数且尾数运算结果最低有效位右侧任何一位为 1(g+r+s = 1),则尾数结果最低有效位加 1,否则尾数结果不变,实现向上舍入。向舍入时,若浮点加减结果为负数且尾数运算结果最低有效位右侧任何一位为 1(g+r+s = 1),
42、则尾数结果最低有效位加 1,否则尾数结果不变,实现向下舍入。可见,这两种舍入方式需要考虑浮点操作结果的符号。浮点加减结果的符号取决于操作类型,操作数符号,指数差和尾数加减的符号(指数差为 0 时的减法操作)。因为指数相等(d=0)时结果是精确的,不需要舍入操作,所以舍入操作中需要的符号标志可以在尾数骤之前算出。假定 opA 和 opB 为交换前的操作数,则浮点加减结果的符号如下:加法操作(add = 1)signadd = sign(opA)减法操作(sub = 1)Exp(opA)Exp(opB) (sign(d) = 0): signsub = sign(opA)Exp(opA) = Ex
43、p(opB) (sign(d) = 0): signsub = sign(opA)sign(A-B)Exp(opA)Exp(opB) (sign(d) = 1): signsub = sign(opA)因此sign = sign(opA) × add + (sign(d ) × (sign(opA) × zerod+(sign(opA) Å sign( A - B) × zerod ) + sign(d ) × sign(opA) × sub公式 2-11其中,zerod = 1 即 d = 0,考虑到 zerod = 1
44、时结果不需要舍入公式 2-11 可以简化为 sign = sign(opA)·add + (sign(d)sign(opA)·sub定义up+¥ 为向+舍入的标志位,up+¥ = 1 时,向上舍入;up+¥ = 0 时,截断。则up+¥ = sign(opA) × add + (sign(d ) Å sign(opA) × sub公式 2-12定义up-¥ 为向-舍入的标志位,up-¥ = 1 时,向上舍入;up-¥ = 0 时,截断。则up-¥ = sign(op
45、A) × add + (sign(d ) Å sign(opA) × sub公式 2-13定义向上舍入的标志位 up则up = up+¥ × round+¥ + up-¥ × round-¥公式 2-14其中round+¥ 与round-¥ 分别表示向+舍入和向-舍入,up = 1 时,向上舍入;up = 0 时,截断。加法操作与就近舍入时相同,假定操作数 B 具有较小的指数,因此 garasa = 0,grs = gyrysy = gbrbsbI. 尾数计算结果 S 最无进位,不需规
46、格化(Cout=0)ifg + r + sotherwiseR = ìSp1íSîII. 尾数计算结果 S 最有进位,需右移一位规格化(Cout=1)fL + g + r + sotherwiseR = ìSpíSî减法操作仍然假定操作数 B 具有较小的指数,因为减法时需要作 A+ B +1 的操作,gb rb sb ,s = sy ,r = ry Å sy ,g = gy Å(rysy ) 。此时 Y= B ,所以 garasa = 0,gyrysy =upL+g+r+s选择注释10110xSSp2 S精确向上舍
47、入(在 L-1 位置) 精确upg+r+s选择注释10110xSSp1 S精确 向上舍入精确尾数计算结果 Sp1 最有进位,结果为正(Cout=1)grs = 000 时:III. 结果精确,不需舍入R = Sp1grs000 时:IV. 不需规格化(MSB = 1)根据舍入的规则,当 g+r+s = 1 时,R = Sp1;g+r+s = 0 时,R = S。然而, grs000,即 g+r+s0,因此R = Sp1V. 需左移一位规格化(MSB = 0 and MSB-1 = 1)g(r + s)g(r + s) r + sìSp1, 0ifif ifR = ï S,1
48、íï S, gîupgr+s选择LSB注释1101011110xxS SSp1S110g向下舍入向上舍入,g = 0向上舍入,g = 1向下舍入upg+r+s选择注释110xSp1S向上舍入向下舍入选择规格化过程中移入的数据规格化结果非规格化结果Sp1Sp100LSB 为规格化左移时移入的第一位数,若需要左移多位,则移入的其它位为 0VI. 需左移多位规格化(MSB = 0 and MSB-1 = 0)这种情况只发生于 d=0,1 时,因此规格化后结果是精确的,不需要进行舍入。R = S,100ifgVII. 尾数计算结果 Sp1 最无进位,结果为负(Cout=0
49、)这种情况只发生于 d=0 时,规格化移位后结果是精确的,不需要进行舍入。由于得到的结果为负数,需要求其补码,即-(A-B) = A + B ,由 S 逐位求反得到。R =S将上面的结果应用于双路径浮点加法器。CLOSE 路径中处理 III、IV、V、VI、VII 的情况:定义sel¥为结果选择信号, sel¥= 1 时选择 Sp1,否则选择 S。closeclosesel¥= C grs + up × MSB(g + r + s) + up × MSB × g(r + s)公式 2-15closeout因为 CLOSE 路径中 r
50、= 0,s = 0,所以上式简化为sel¥= C(g + up × g × MSB)公式 2-16closeout此外,当结果为负数时,选择 S 且需要逐位求反。FAR 路径处理 I、II、III、IV、V 的情况:由于有三种可能的结果 S,Sp1 和 Sp2,定义两个选择信号sel¥和sel ¥far.Sp1far.Sp 2分别选择 Sp1 和 Sp2ìï=up × Cout (g + r + s)add = 1sub = 1ififsel¥í公式 2-17far.Sp1ïî
51、;Cout grs + up × (g(r + s) + MSB)sel¥= add × up × C(L + g + r + s)公式 2-18far.Sp 2out选择规格化过程中移入的数据规格化结果非规格化结果SS00需要特别说明的是,FAR 路径中需要的结果包括 S,Sp1 和 Sp2。其中 S 和Sp1 可以由复合加法器直接得到,为了计算 Sp2,需要在复合加法器的前面增加n 位半加器2,7。如图 2-5 所示,这些半加器将尾数 X 和 Y 相加,产生两串结果: 最低有效位固定为 0 的进位串与最低有效位固定为 1 的和串。定义 L 为 X+Y
52、 的最低有效位,W,Wp1 为复合加法器的计算结果。图 2-5. Sp2 的计算L = 0 时,半加器产生的和串最低有效位应为 0,但实际此位固定为 1,相当于进行了加 1 操作,则复合加法器实际输出结果 W = X+Y+1,Wp1 = X+Y+2。由于 X+Y+1 最低有效位为 1,只需将其替换为 0,其它位不变,即可得到 X+Y。L = 1 时,半加器产生的和串最低有效位应为 1,则复合加法器实际输出结果 W = X+Y,Wp1 = X+Y+1。由于 X+Y+1 最低有效位为 0,只需将其替换为 1,其它位不变,即可得到 X+Y+2。表 2-4 列出了浮点加法器结果选择信号及最低有效位与
53、L 的关系,由此可得复合加法器结果选择信号:sel(Wp1) = sel(Sp2) + sel(Sp1)·L尾数运算结果最低有效位:LSB(correct) = sel(Sp1)L表 2-4. 浮点加法器结果选择信号及最低有效位与 L 的关系2.6 优化的浮点加减算法采路径并行、前导 1与并行舍入三种优化算法后的浮点加减运算步骤与基本浮点加减算法的运算步骤比较见表 2-5,可以看出,采用这些优化算法后,关键路径中的 7 个运算步骤简化为 4 个,有效地提高了浮点加减法的运算速度。表 2-5. 优化后算法与基本算法的运算步骤比较2.7 定点加法算法从对浮点加法算法的分析中可以看出,指数比较与尾数加减这两个位键路径中的步骤,都是由定点加法来实现的。因此,点加法操作的速度,对于提高浮点加减运算的速度,具有非常重要的意义。定点加法运算的各种快速算法介绍如下。9,10,11,16步骤基本浮点加法算法优化后算法d1 的减法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度桉树种植项目可持续发展承包合同范本4篇
- 2025年度钢管加工中心设备采购与安装承包合同
- 二零二五年度采砂厂资源综合利用合同3篇
- 二零二五年度智能物流配送服务合同6篇
- 二零二五年度隔墙板生产节能减排技术应用合同3篇
- 2025年度绿色环保床具购销合同标准范本2篇
- 二零二五年度交通枢纽拆迁补偿与重建承包合同模板4篇
- 二零二五年度绿色能源分布式发电系统安装合同范本3篇
- 2025年橱柜行业安全生产管理合同4篇
- 2025铝合金门窗安装工程合同
- 江西省部分学校2024-2025学年高三上学期1月期末英语试题(含解析无听力音频有听力原文)
- 农民工工资表格
- 【寒假预习】专题04 阅读理解 20篇 集训-2025年人教版(PEP)六年级英语下册寒假提前学(含答案)
- 2024年智能监狱安防监控工程合同3篇
- 2024年度窑炉施工协议详例细则版B版
- 幼儿园篮球课培训
- 基底节脑出血护理查房
- 工程公司总经理年终总结
- 一例产后出血的个案护理
- 急诊与灾难医学课件 03 呼吸困难大课何琳zhenshi
- 直埋电缆沟工程专项施工组织设计
评论
0/150
提交评论