跳转到主要内容

参考文献

  1. Anderson, S.F., Earle, J.G., Goldschmidt, R.E., Powers, D.M., 1967. “The IBM System/360 Model 91: Floating-point execution unit”(IBM System/360 Model 91:浮点执行单元). IBM J. Research and Development 11, 34–53. 重印于 Swartzlander [1990]。本文很好地介绍了一种早期的高性能浮点单元,其乘法采用流水化的 Wallace 树,除法采用迭代算法。

  2. Bell, C.G., Newell, A., 1971. Computer Structures: Readings and Examples(计算机结构:文选与实例). McGraw-Hill, New York.

  3. Birman, M., Samuels, A., Chu, G., Chuk, T., Hu, L., McLeod, J., Barnes, J., 1990. “Developing the WRL3170/3171 SPARC floating-point coprocessors”(WRL3170/3171 SPARC 浮点协处理器的开发). IEEE Micro 10 (1), 55–64. 这些芯片采用与 Weitek 3364 相同的浮点核心;本文对该浮点设计作了相当详细的介绍。

  4. Brent, R.P., Kung, H.T., 1982. “A regular layout for parallel adders”(并行加法器的规则布局). IEEE Trans. on Computers C-31, 260–264. 这篇论文推动了先行进位加法器(CLA)在 VLSI 中的广泛应用。

  5. Burgess, N., Williams, T., 1995. “Choices of operand truncation in the SRT division algorithm”(SRT 除法算法中操作数截断的选择). IEEE Trans. on Computers 44, 7. 本文分析了 SRT 除法需要检查除数和余数的多少位。

  6. Burks, A.W., Goldstine, H.H., von Neumann, J., 1946. “Preliminary discussion of the logical design of an electronic computing instrument”(电子计算装置逻辑设计的初步讨论). In: Aspray, W., Burks, A. (Eds.), Papers of John von Neumann. 致美国陆军军械部的报告,第 1 页;另有重印。MIT Press, Cambridge, Mass., pp. 97–146. Tomash Publishers, Los Angeles, 1987.

  7. Cody, W.J., Coonen, J.T., Gay, D.M., Hanson, K., Hough, D., Kahan, W., Karpinski, R., Palmer, J., Ris, F.N., Stevenson, D., 1984. “A proposed radix- and word-length-independent standard for floating-point arithmetic”(一种与基数和字长无关的浮点算术标准提案). IEEE Micro 4 (4), 86–100. 本文包含比 IEEE 754 更一般的 854 标准草案。其重要之处在于附有对标准的评注,其中大部分同样适用于 754。

不过,应注意该草案与最终标准仍有一些差异。

  1. Coonen, J., 1984. Contributions to a proposed standard for binary floating point arithmetic(对二进制浮点算术标准提案的贡献). 博士学位论文,University of California—Berkeley。这是唯一详细讨论如何利用舍入模式实现高效二进制与十进制转换的文献。

  2. Darley, H.M., et al., 1989. “Floating point/integer processor with divide and square root functions”(具有除法和平方根功能的浮点/整数处理器). 美国专利 4,878,190,1989 年 10 月 31 日。就专利文献而言,相当易读。它从整体上介绍了 TI 8847 芯片,但没有给出除法算法的全部细节。

  3. Demmel, J.W., Li, X., 1994. “Faster numerical algorithms via exception handling”(通过异常处理加速数值算法). IEEE Trans. on Computers 43 (8), 983–992. 本文很好地说明了 IEEE 浮点独有的特性如何提高一个重要软件库的性能。

  4. Freiman, C.V., 1961. “Statistical analysis of certain binary division algorithms”(若干二进制除法算法的统计分析). Proc. IRE 49 (1), 91–103. 本文分析了采用跳过零移位的 SRT 除法算法的性能。

  5. Goldberg, D., 1991. “What every computer scientist should know about floating-point arithmetic”(每位计算机科学家都应了解的浮点算术知识). Computing Surveys 23 (1), 5–48. 本文从软件角度深入讲解了 IEEE 标准。

  6. Goldberg, I.B., 1967. “27 bits are not enough for 8-digit accuracy”(27 位不足以保证 8 位十进制数字的精度). Comm. ACM 10 (2), 105–106. 本文提出了使用隐含位和渐进下溢的方法。

  7. Gosling, J.B., 1980. Design of Arithmetic Units for Digital Computers(数字计算机运算单元设计). Springer-Verlag, New York. 这是一本简明、写得很好的书,不过主要关注中规模集成电路(MSI)设计。

  8. Hamacher, V.C., Vranesic, Z.G., Zaky, S.G., 1984. Computer Organization(计算机组成),第 2 版. McGraw-Hill, New York. 这是一本计算机体系结构入门书,其中介绍计算机算术的一章写得很好。

  9. Hwang, K., 1979. Computer Arithmetic: Principles, Architecture, and Design(计算机算术:原理、体系结构与设计). Wiley, New York. 在有关计算机算术的书籍中,本书涉及的主题最为广泛。

  10. IEEE, 1985. “IEEE standard for binary floating-point arithmetic”(IEEE 二进制浮点算术标准). SIGPLAN Notices 22 (2), 9–25. 这里重印了 IEEE 754 标准。

  11. Kahan, W., 1968. “7094-II system support for numerical analysis”(7094-II 系统对数值分析的支持). SHARE Secretarial Distribution SSD-159. 该系统具有许多后来被纳入 IEEE 浮点标准的特性。

  12. Kahaner, D.K., 1988. “Benchmarks for ‘real’ programs”(“实际”程序的基准测试). SIAM News,11 月。文中给出的基准程序实际上会导致大量下溢。

  13. Knuth, D., 1981. The Art of Computer Programming(计算机程序设计艺术),第 2 版,第 II 卷. Addison-Wesley, Reading, Mass. 本书有一节介绍浮点数的分布。

  14. Kogge, P., 1981. The Architecture of Pipelined Computers(流水线计算机的体系结构). McGraw-Hill, New York. 本书简要讨论了流水化乘法器。

  15. Kohn, L., Fu, S.-W., 1989. “A 1,000,000 transistor microprocessor”(一个具有 100 万个晶体管的微处理器). In: IEEE Int’l. Solid-State Circuits Conf. Digest of Technical Papers, pp. 54–55. 有多篇文章介绍 i860,而这篇给出的浮点算法细节最多。

  16. Koren, I., 1989. Computer Arithmetic Algorithms(计算机算术算法). Prentice Hall, Englewood Cliffs, N.J.

  17. Leighton, F.T., 1992. Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes(并行算法与体系结构导论:阵列、树与超立方体). Morgan Kaufmann, San Francisco. 这是一本出色的书,重点在于算法的复杂度分析。第 1.2.1 节很好地讨论了在树结构上实现先行进位加法。

  18. Magenheimer, D.J., Peters, L., Pettis, K.W., Zuras, D., 1988. “Integer multiplication and division on the HP Precision architecture”(HP Precision 体系结构上的整数乘法与除法). IEEE Trans. on Computers 37 (8), 980–990. 本文解释了 Precision 体系结构采用整数运算分步指令和除法分步指令的设计依据。

  19. Markstein, P.W., 1990. “Computation of elementary functions on the IBM RISC System/6000 processor”(IBM RISC System/6000 处理器上的初等函数计算). IBM J. of Research and Development 34 (1), 111–119. 本文说明了如何使用融合乘加实现正确舍入的除法和平方根。

  20. Mead, C., Conway, L., 1980. Introduction to VLSI Systems(VLSI 系统导论). Addison-Wesley, Reading, Mass.

  1. Montoye, R.K., Hokenek, E., Runyon, S.L., 1990. “Design of the IBM RISC System/6000 floating-point execution”(IBM RISC System/6000 浮点执行单元的设计). IBM J. of Research and Development 34 (1), 59–70. 本文介绍了一种融合乘加的实现。

  2. Ngai, T.-F., Irwin, M.J., 1985. “Regular, area-time efficient carry-lookahead adders”(布局规则、面积与时间效率高的先行进位加法器). In: Proc. Seventh IEEE Symposium on Computer Arithmetic, pp. 9–15. 本文介绍了类似图 J.17 的 CLA,其中位信息先向上传播,再向下返回。

  3. Patterson, D.A., Hennessy, J.L., 2009. Computer Organization and Design: The Hardware/Software Interface(计算机组成与设计:硬件/软件接口),第 4 版. Morgan Kaufmann, San Francisco. 第 3 章以更平缓的方式介绍了本附录前三分之一的内容。

  4. Peng, V., Samudrala, S., Gavrielov, M., 1987. “On the implementation of shifters, multipliers, and dividers in VLSI floating point units”(VLSI 浮点单元中移位器、乘法器和除法器的实现). In: Proc. Eighth IEEE Symposium on Computer Arithmetic, pp. 95–102. 这是一篇非常值得推荐的综述,介绍了 VLSI 设计中实际采用的多种技术。

  5. Rowen, C., Johnson, M., Ries, P., 1988. “The MIPS R3010 floating-point coprocessor”(MIPS R3010 浮点协处理器). IEEE Micro, 53–62,6 月。

  6. Santoro, M.R., Bewick, G., Horowitz, M.A., 1989. “Rounding algorithms for IEEE multipliers”(IEEE 乘法器的舍入算法). In: Proc. Ninth IEEE Symposium on Computer Arithmetic, pp. 176–183. 本文以通俗易读的方式讨论了如何高效实现浮点乘法的舍入。

  7. Scott, N.R., 1985. Computer Number Systems and Arithmetic(计算机数制与算术). Prentice Hall, Englewood Cliffs, N.J.

  8. Swartzlander, E. (Ed.), 1990. Computer Arithmetic(计算机算术). IEEE Computer Society Press, Los Alamitos, Calif. 这是一套两卷本的历史论文集。

  9. Takagi, N., Yasuura, H., Yajima, S., 1985. “High-speed VLSI multiplication algorithm with a redundant binary addition tree”(采用冗余二进制加法树的高速 VLSI 乘法算法). IEEE Trans. on Computers C-34 (9), 789–796. 本文讨论了二叉树结构的带符号数字乘法器,TI 8847 所用设计以此为基础。

  10. Taylor, G.S., 1981. “Compatible hardware for division and square root”(兼容除法与平方根运算的硬件). In: Proc. Fifth IEEE Symposium on Computer Arithmetic,1981 年 5 月 18–19 日,Ann Arbor, Mich., pp. 127–134. 本文很好地讨论了一种基 4 SRT 除法算法。

  11. Taylor, G.S., 1985. “Radix 16 SRT dividers with overlapped quotient selection stages”(商选择级重叠的基 16 SRT 除法器). In: Proc. Seventh IEEE Symposium on Computer Arithmetic,1985 年 6 月 4–6 日,pp. 64–71, Urbana, Ill. 本文介绍了一种非常精巧的高基数除法算法。

  12. Weste, N., Eshraghian, K., 1993. Principles of CMOS VLSI Design: A Systems Perspective(CMOS VLSI 设计原理:系统视角),第 2 版. Addison-Wesley, Reading, Mass. 该教材有一节介绍各种加法器的布局。

  13. Williams, T.E., Horowitz, M., Alverson, R.L., Yang, T.S., 1987. “A self-timed chip for division”(一种自定时除法芯片). In: Advanced Research in VLSI, Proc. 1987 Stanford Conf., MIT Press, Cambridge, Mass. 本文介绍了一种除法器,目标是在不占用组合电路方案那么大面积的前提下,达到组合电路的速度。