Book Review Computer Arithmetic Algorithms 2nd edition, by Israel Koren, Natick, MA: A. K. Peters, 2002
This is one of the best available textbooks on computer arithmetic design. Since the seminal book by Hwang in the early eighties there have been quite a few textbooks on this topic. Prof. Koren’s text stands firmly among the very best. It combines a highly intuitive explanatory style with the necessary formalism for academic use, together with conciseness and good organization, factors of prime importance for a reference used by practicing engineers. A web site maintained by the author contains supplementary material, as well as a simulator for the algorithms discussed. The book contains 11 chapters. Chapter one introduces—or more precisely, refreshes one’s memory about—basic number representations and elementary operations. Chapter two is about numeric systems, such as signed digit (SD), that depart in spirit from the conventional binary one. This is an important chapter—not only for computer scientists, but also for digital-signal-processing (DSP) system designers, as SD is the system of choice in many high-speed digital filter hardware designs. Chapter three lays the groundwork for three of the most utilized basic computation groups, traditional add/subtract, multiply, divide/square-root, in their most easy to grasp form, sequential design. Chapter four covers floating point representation, emphasizing the IEEE 754 standard. Basic operations needed for the system to function, such as normalizations, rounding etc. are covered in enough detail. Here, as everywhere in the book, hardware designs are presented schematically. Chapter five, an extremely thorough chapter on fast-adder design, covers the range from designs that are historically important (for their pedagogical value), to some very advanced designs. The next chapter (six) is devoted to high-speed multiplication. Including Wallace trees and fused multiplier/adder design for floating point, the author touches (at least) on every important design. Interestingly, some designs, like the one in his Figure. 6.19, are presented as anonymous, (but for those interested in history, this particular one can be identified as a Baugh-Wooly multiplier). Fast division, including array dividers, is the topic of Chapter seven. Also discussed is fast square-root extraction, with an algorithm that bears some similarity with division. Of importance from a DSP perspective is chapter eight, which discusses division through multiplication—including division through reciprocation. Chapter nine provides, in a concise form, down-to-earth information on the most useful elementary functions; including detailed tables for implementation. CORDIC method is introduced with a great level of detail, principally for the trigonometric and hyperbolic functions. Chapter ten presents the logarithmic number system, which has a certain appeal to DSP designers, especially for designs targeted to high-speed narrow application areas. Chapter eleven, the final chapter, introduces the residue number system, including designs for conversion from- and to the conventional binary system. This chapter is also useful for specialized signal processing designs; and it may also be helpful for building blocks of error-correcting codecs. All told, this book is highly recommended to everyone interested in the hardware design of digital arithmetic algorithms. Copyright 1995- Analog Devices, Inc. All rights reserved. |