Introduction to the Role of Redundancy in Computer Arithmetic

Special Tutorial
INTRODUCTION
TO THE ROLE OF REDUNDANCY
IN COMPUTER ARITHMETIC
D. E. Atkins
The University of Michigan
Introduction
Redundancy, the state of being in excess of what is
applied in the implementation of computer
arithmetic is motivated by three design goals: to improve
reliability, to increase speed of operation, and/or to provide
structural flexibility. In achieving the first goal, improvement of reliability, hardware redundancy and/or redundant
arithmetic codes are applied to the detection and correction
of faults. Although this is an increasingly vital area it will
not be discussed in this paper. Rather, the focus will be on
the other two potential benefits: more specifically, on the
judicious use of number systems employing redundancy in
representation. A positional number system with fixed
radix, r, is redundant if the allowable digit set includes
more than r distinct elements, thereby affording alternate
representations of a given numeric value. Uniqueness. of
representation is sacrificed with hope of greater gains. A
novel, rigorous treatment of redundant, radix polynomial
representation is included in Reference 1.
Although not central to the paper, it may be observed
that conventional floating point representations also
illustrate a form of representational redundancy in that, by
adjustments between the mantissa and characteristic, they
afford alternate representations of the same point on the
real number line. Normalization is used to reduce the
degree of redundancy.
The goals of this paper are (1) to review the realization
that the concept of representational redundancy relates
many of the arithmetic speed-up techniques previously
arrived at in a largely ad hoc manner; (2) to cite some of
necessary, as
the recent work which has been conducted in awareness of
this fact, and the theory which surrounds it; and (3) to
briefly review the properties of a particularly well studied,
redundant, signed-digit number system.
The tutorial nature of this presentation is motivated by
the author's belief that the maturity of the science of
computer arithmetic has not been sufficiently publicized
74
nor been adequately considered at the drawing boards of
mainframe manufacturers. An excellent, more introductory
tutorial, is found in Reference 2.
Redundancy to Accelerate Arithmetic
Multiplication
Redundancy in the Partial Product The use of carry-save
adders to accelerate the iterative portion of digital
multiplication is well-known. Its basis is the realization that
carries need not be propagated during each addition of a
long series of additions, provided that carries are explicitly
stored. Historically, carry-save adders have been designedby modification of conventional adders with propagating
carry. The carry and sum outputs, having weight 2 and 1,
respectively, may be interpreted as the digit values 0, 1, 2,
or 3. The radix or base remains at two, thus the carry-save
adder introduces redundancy into the representation of the
partial product. An alternate form of storing carries breaks
the carry chain differently and reduces the possible digit
values to 0, 1, or 2. This choice is preferable in that it
reduces the magnitude of truncation error resulting from
the loss of the least significant half of the product of a
floating point multiplication. Similarly, a propagating
borrow subtracter may be modified to create a borrow-save
subtracter which introduces the redundant digit set -2, -1,
0, 1.
The realization that the use of stored carries or borrows
was a way of introducing redundancy has lead to the
demonstration that the explicit identification of certain
digits as carries or borrows could be eliminated. Robertson3
has defined a deterministic procedure for the design of a
family of carry-borrow, adder/subtracters of which the
conventional structures are but one member. Rohatsh4 and
Borovec5 have elaborated on this work. Two particularly
practical cases are the "stored sign" adder and subtracter in
which the two outputs of a typical binary weighted
position are interpreted as a sign (+ or-) and a magnitude
COMPUTER
(0 to 1) giving rise to the symmetric redundant digit set,
-1, 0, +1. Note that the absence of the digit 2 further
reduces worst-case truncation error. An implementation
employing a stored sign subtracter is described in Reference
6.
Redundancy in the Multiplier Another acceleration
technique, typically used in conjunction with introducing
redundancy into the partial product, is that of recoding the
multiplier from a non-redundant to a redundant digit set.
This application of redundant representations was first
studied in conjunction with increasing the shift average-the
number of shifts, on the average, which may be expected
between successive additions. The recoding is designed to
increase the occurrence of strings of ones or zeros. The
benefits of recoding in this context rest upon the
assumption that bypassing the adder and/or use of multiple
shift paths is faster than passing through the adder, and that
the control is sufficiently asynchronous to take advantage
of the variable duration of the multiplication operation.
Although these assumptions are frequently not valid in
present day synchronous processors, technology has a way
of redefining what is best. Highly functional, modular
architectures motivated by LSI may well vindicate
asynchronous structures. References on multiplier recoding
include 7 and 8.
Redundant multiplier recodings are also effective in
enhancing higher-radix multiplication with either synchronous or asynchronous control. Binary multiplication is
performed at a higher radix by retiring more than one bit of
multiplier per iteration. In the absence of recoding, for
r times the
multiplication radix-r, multiples of 0, 1, 2,
multiplicand must be available. By recoding, redundancy
may be introduced into the multiplier in such a manner
that all the required multiples may be formed merely by
shifting and conditional negation. For example, Reference
6 describes a recoding which performs multiplication radix
7. The
256 using combinations of ±2i for i = 1, 2,
technique is based upon the replication of recoding
hardware which transforms the non-redundant, radix-4 digit
set 0, 1, 2, 3 into the redundant set -2, -1, 0, 1, 2. (See
Reference 9.)
...,
...,
Division
Redundancy in the Quotient To accelerate the
performance of division, redundancy may be introduced
into the representation of the quotient. The resulting
freedom of representation implies that comparisons
between the partial remainder and the divisor need not be
made to the full precision of the divisor. An outgrowth of
this observation is the so-called SRT division.10 In this
technique both the divisor and successive partial remainders
are normalized to the range Y2 to 1 by a process of left
shifts. After normalization, the divisor is either added to or
subtracted from the- shifted partial remainder depending
only upon a comparison of signs of the divisor and partial
remainder. The representation of the quotient is redundant
since each shift during normalization corresponds to a
quotient digit of 0, and the addition -and subtraction
correspond, respectively, to -1 and +1.
This division technique is, in effect, recoding the
quotient and thus, under the assumption that fast, multiple
shift paths are available, raises the question of what is the
shift average. A correspondence between multiplier and
quotient recodings has been formalized in Reference 11.
June 1975
The analysis is complicated by the fact that the recoding is
actually a family of recodings varying with the value of the
divisor. As with multiplier recodings to increase the shift
average, SRT division is most effective in an architecture
which takes advantage of its inherent variable duration.
As with multiplier recodings, the process of quotient
recoding and the resultant freedom to select quotient digits
based upon estimates of the divisor and partial remainders
can be used in implementing higher-radix schemes.6 1 2 I 3
Redundancy in the Partial Remainders Analogous to
multiplication by iterative addition, non-restoring division
is accelerated by decreasing the time to form a partial
remainder. This suggests the use of a limited propagation
adder/subtracter; however, the resulting redundant representation introduces complications. In effect, the redundant representation in the accumulator introduces uncertainties into values of the partial remainders. Since
increasing the redundancy in the quotient tends to decrease
the precision necessary during inspection of the partial
remainder, and since the introduction of redundancy in the
partial remainder requires increased precision during the
inspection, the two methods of employing redundancy tend
to cancel one another. A reasonable compromise may be to
convert the necessary high-order digits of the partial
remainder to a non-redundant form (a propagation
operation) prior to the selection of a quotient digit. This
conversion is considerably less complex than a full
precision, non-redundant addition. This approach is also
exemplified in Reference 6 and analyzed theoretically in
Reference 13.
Evaluating Elementary Functions The efficacy of
redundant representations in accelerating multiplication
and division has led to studies of their use in hardware
evaluation of trigonometric and other elementary functions. Reference 14 is an excellent work in this area.
Redundancy to Provide
Structural Flexibility
Since redundant representations have generally been
limited to the internal registers of the arithmetic unit,
conversion to a non-redundant form is required either
concurrently or as a terminal operation. For this reason
carry-save type structures have not been motivated in the
hope of accelerating the single addition of two operands
since conversion requires a carry propagation. Early studies
in extending the use of redundancy beyond the arithmetic
unit concluded that the cost was too high to be practicable.
Changes in technology, however, suggest a reevaluation of
this conclusion.
The work of Avizienis,1 5Tung,1 6 Pisterzi, ' and others
suggests that another, increasingly important role of
redundant representations is in providing structural
flexibility: modularity, variable operand length, processing
distributed in memory, etc. The emphasis has been on the
use of a so-called signed-digit number system. Signed-digit
arithmetic has been well documented by Avizienis.1 8,1 9
Only the definition and most important properties will be
included in this survey.
Defimition
Signed-digit representations are positional number
representations with a constant integer radix r > 3 in which
the allowed values of the individual digits zi are a sequence
75
of q integers for r + 2 < q < 2r-1, namely (-a, . . .,-1,
0, +1, ..., a). The value of a is chosen from the following
range:
%(ro + 1) < a < ro-1
hre + 1
for odd radices ro > 3;
a < re - 1 for even radices re > 4
Important characteristics of the number system are as
follows:
1. The sign of the algebraic value is the sign of the most
significant non-zero digit.
2. The algebraic value is zero if, and only if, all digits of
signed-digit representation have the value zero.
3. The algebraic sign of a value in signed-digit
representation is formed by changing the sign of the
value of every digit.
4. No carry or borrow need be inserted in the least
significant position of a signed-digit adder, and thus
the structure may be readily partitioned to handle
several operands of shorter length.
Recent suggestions have been made that further
attention should be given to implementing high-speed
decimal arithmetic in view of commercial processing's
increased share of total computation. Those of the
"signed-digit school" have frequently suggested that 4 bits
of a binary code decimal might better be interpreted as the
signed-digit set -6 through +6 and that decimal arithmetic
be conducted redundantly. The author shares the opinion
that this proposal deserves serious evaluation.
Conclusion
A direct quotation from a paper by Avizienis18
succinctly and enthusiastically lists the applications of
signed-digit arithmetic.
The elimination of carry propagation removes a fundamental
constraint of digital arithmetic units and necessitates a
reconsideration of all arithmetic algorithms. The most important
new aspects of signed-digit (to be abbreviated "s-d" from now
on) arithmetic are:
1. the addition time of a parallel adder consisting of any
number of cascaded identical digit-adder packages is
(logically) constant;
2. the most significant digits of the product (as well as of the
quotient) are generated first and may be processed further
before the less significant digits become available;
3. the addition (and subtraction) algorithms apply to
operands of an arbitrary multiple precision (arbitrary
length with respect to the length of the adder): the most
significant sections are added first and may be
immediately processed further;
4. the multiplication and division algorithms are identical
both for single- and multiple-precision operands;
5. in floating-point arithmetic the application of a special
digit value 4( (the space-zero) to designate non-significant
positions allows the implementation of normalized
significant digit arithmetic;
6. the non-significant digit value (space-zero) ( may be
employed to determine the completion of a multipleprecision significant digit algorithm; in this case the
lengths of the operands may be unknown at the beginning
of the algorithm.
A rather novel arithmetic processor may be constructed if
these properties of s-d arithmetic are utilized. The properties (2)
and (3) permit the elimination of temporary storage of
intermediate results in a complex algorithm; right shifts are not
employed, and the flow of operand and result digits is in only
76
one direction (to the left), resembling signal flow through gate
networks. The properties (3), (4) and (6) cancel the distinction
between the implementation of single and multiple-precision
algorithms in an arithmetic processor and allow the completion
of an algorithm to be detected by an inspection of the operands.
Property (5) permits the inclusion of significant digit arithmetic
while retaining all advantages of the number system and without
changing the algorithms. Finally, property (1) permits the
assembly of fixed-time adders of any length from identical
building blocks (without any carry-lookahead or similar logic
structures); this feature promises convenient assembly and
restructuring of arithmetic processors for hardware implementation of complex algorithms in a variable structure computer. The
cost of the various innovations, when compared to a parallel
binary arithmetic unit, is found in the greater complexity of the
individual digit adders and in the increased storage requirements
(for the same precision of operands) due to the redundancy of
the number representation.
A further important consideration in the definition of a
practical signed-digit arithmetic processor is its compatibility
with the widely employed conventional binary number system.
In such an arithmetic the s-d arithmetic processor accepts binary
as well as s-d operands and produces s-d results. Furthermore, a
reconversion algorithm is provided which allows the reconversion
of s-d numbers to conventional binary forms either in the
signed-digit or in a conventional binary arithmetic processor.:
Daniel Atkins is an associate professor of
computer engineering at The University of
Michigan, Ann Arbor, where he is teaching and
conducting research in the area of digital
systems design. He is a member of the Systems
Engineering Laboratory and the program in
Computer, Information, and Control Engineer_ _>
ing (CICE). Dr. Atkins participated in the
design of Iliac III and has also been a member
of the faculty at Bucknell University and the
University of Maryland. He is active in the Computer Society's
Technical Committee on Computer Architecture and served as
program chairman for the Second Symposium on Computer
Arithmetic. He is also active in SIGMICRO, SIGARCH, and
SIGCSE.
Dr. Atkins received the BS degree in electrical engineering from
Bucknell University in 1965, the MS in electrical engineering and
PhD in computer science from the University of Illinois, Urbana, in
1967 and 1970, respectively.
References
1. D. W. Matula, "Radix Arithmetic: Digital Algorithms for
Computer Architecture," Chapter 9 in Applied Computation
Theory, edited by R. Yeh, Prentice-Hall, 1975.
2. Chin Tung, "Arithmetic," Chapter 3 in Computer Science,
edited by Alfonso F. Cardenas, Leon Presser, and Miguel A
Marin, Wiley, 1972.
3. J. E. Robertson, "A Deterministic Process for the Design of
Limited Carry-Borrow Propagation Adders," Report 275,
Department of Computer Science, University of Illinois,
Urbana, July 1967.
4.
R A. Rohatsch, "A Study of Transformations Applicable to
the Development of Limited Carry-Borrow Propagation
Adders," (Ph.D. Thesis), Report 226, Department of Computer
Science, University of Illinois, Urbana, June 1967.
5. R T. Borevec, "The Logical Design of a Class of Limited
Carry-Borrow Propagation Adders," Report No. 275, Department of Computer Science, University of Illinois, Urbana,
August 1968.
6. D. E. Atkins, "Design of the Arithmetic Units of Illiac III: Use
of Redundancy and Higher Radix Methods," IEEE Transactions on Computers, Vol. C-19, No. 8 (August 1969), pp.
720-733.
COMPUTER
7. J. 0. Penhollow, "A Study of Arithmetic Recoding with Applications to
Multiplication and Division," Report
No. 128, Department of Computer
Science, University of Illinois, Urbana,
September 1962.
CALENDAR
Continued from page 7
8. G. W. Reitziesner, "Binary Arithmetic," in Advances in Computers, Vol. 1,
F. L. Alt, ed., Academic Press, New
York, 1960.
9.
a
11. J. E. Robertson, "The Correspondence
between Methods of Digital Division
and Multiplier Recoding Procedures,"
Report No. 252, Department of
Computer Science, University of Illinois, Urbana, December 1967.
12. D. E. Atkins, "Higher Radix Division
Using Estimates of the Divisor and
Partial Remainders," IEEE Transactions on Computers, Vol. C-17, No.
10 (October 1968), pp. 925-934.
13. D. E. Atkins, "A Study of Methods for
Selection of Quotient Digits during
Digital Division," (Ph.D. Thesis), Report No. 397, Department of Computer Science, University of Illinois,
Urbana, June 1970.
14. B. G. DeLugish, "A Class of Algorithms
for Automatic Evaluation of Certain
Elementary Functions in a Binary
Computer," (Ph.D. Thesis), Report No.
399, Department of Computer Science,
University of Illinois, Urbana.
15. A. Avizienis, "On a Flexible Implementation of Digital Computer Arithmetic," Proceedings of IFIP Congress '62,
Munich, 1962, pp. 664-668.
16. C. Tung, "A Combinational Arithmetic
Function Generation System," (Ph.D.
Thesis), Report No. 68-29, Department
of Engineering, UCLA, June 1968.
17. M. J. Pisterzi, "A Limited Connection
Arithmetic Unit," Report No. 398,
Department of Computer Science,
University of Illinois, Urbana, June
1970.
Avizienis, "Binary-Compatible
Signed-Digit Arithmetic," AFIPS Conference Proceedings, Vol. 26, Part 1,
(1964 FJCC), pp. 663-672.
18. A.
19.
Communications and Networks; Interactive Systems and CAD, September
23-25, Uxbridge, England. For information
on these conferences, held concurrently,
contact ONLINE, Brunel University, Uxbridge, Middlesex, England.
C. S. Wallace, "A Suggestion for
Fast-Multiplier," IEEE Transactions on
Electronic Computers, Vol. EC-13,
(February 1964), pp. 14-17.
10. J. E. Robertson, "A New Class of
Digital Division Methods," IRE Transactions on Electronic Computers, Vol.
EC-7 (September 1958), pp. 218-222.
, "Signed-Digit Number Representations for Fast Parallel Arithmetic," IRE Transactions on Electronic
Computers, Vol. 10 (1961), pp.
389-400.
June 1975
1975 International Conference on Cybernetics and Society, September 23-25,
San Francisco, California. Papers and
free sessions on the theme "Technological
Forecasting and Assessment: 1975-2000
are planned. Contact L.S. Coles, Artificial
Intelligence Ctr., Menlo Park, CA 94025.
7th IFIP Conference, September 8-14,
Nice, France. For further information contact
7th IFIP Conference, Parc Valrose, 06034NICE CEDEX, France.
c Compcon 75 Fall, September 9-11,
Washington, D.C. Eleventh Annual
IEEE Computer Society Conference has a
theme of major interest-"How to Make
Computers Easier to Use." Contact Compcon 75 Fall, PO Box 639, Silver Spring,
MD 20901.
Symposium on Sparse Matrix Computations, September 9-11, Argonne,
Illinois. For information write James Pool,
Applied Mathematics Division, Argonne
National Laboratory, Argonne, 11 60439.
First National Conference on Software Engineering, Septemberl-12,
Washington, D.C. Immediately follows
Compcon 75 Fall at Washington's Mayflower Hotel. Contact Software Engineering, PO Box 639, Silver Spring, MD 20901.
International Conference on Environmental Sensing and Assessment, September 14-19, Las Vegas, Nevada. Contact IEEE-TAB, 345 E. 47th St., New York,
NY 10017, or NERC/EPA, PO Box 15027,
Las Vegas, NV 89114.
Workshop on Data Bases for Interactive
Design, September 15-17, Ontario, Canada. Contact Prof. James Linders, Department of Applied Analysis and Computer
Science, University of Waterloo, Waterloo,
Ontario N2L3G1.
Wescon 75, September 16-19, San Francisco, California. Contact Alan Mitchell,
Hewlett-Packard Co., Data Systems Division, 1100 Wolf Road, Cupertino, CA
95054.
-1975 MUMPS Users' Group Meeting,
September 17-19, Washington, D.C. Contact Dr. Joan Zimmerman, MUMPS Users'
Group, Biomedical Computer Laboratory,
700 S. Euclid Ave., St. Louis, MO 63110.
Application of Optical Instrumentation in
Medicine, IV, September 25-27, Atlanta,
Georgia. Contact the Technical Programs
Committee, SPIE National Offices, PO Box
1146, Palos Verdes Estates, CA 90274.
4th International Symposium on Engine
Testing Automation, September 29-
October 3, Naples, Italy. Contact the
Secretariat, ISETA, 62 High Street, Croydon, CRO 1 Na.
OCTOBER
Computers in Cardiology, October 24, Rotterdam, The Netherlands. Contact the conference secretary: Cees Zeelenberg, Thoraxcentrum, Erasmus University Rotterdam, PO Box 1738, Rotterdam/
The Netherlands.
*
4th Data Communications Sym-
posium, October 7-9, Quebec, Canada. Contact Dr. F.E. Glave, Bell Northern
Research, PO Box 3511, Station C, Ottawa,
Ontario, Canada Kly 4H7.
1975 IEEE International Symposium on
Electromagnetic Compatibility, October
7-9, San Antonio, Texas. The theme of this
conference, "EMC-The Old and the New,"
depicts the broad range of this technical
program: For further information contact Gus
Van Steenberg, Southwest Research Institute, PO Drawer 28510, San Antonio,
TX 78284.
g Workshop on Methods of Verification
in Design Automation, October 8-10,
East Lansing, Michigan. Sessions are
planned on architecture and logic verification, microprogramming, implementation
verification, manufacturing verification, and
user feedback. Contact Dr. Roy L. Russo,
IBM T.J. Watson Research Center, PO Box
218, Yorktown Heights, NY 10598.
10th National Data Processing Conference, October 13-14, Jerusalem, Israel.
Contact the Program Committee, 10th
National Data Processing Conference, c/o
Kenes Ltd., PO Box 16271, Tel Aviv,
Israel.
Continued on page 79
77