University of California Los Angeles On-line Arithmetic Algorithms for E(cid:14)cient Implementation A dissertation submitted in partial satisfaction of the requirements for the degree Doctor of Philosophy in Computer Science by Paul Kang-Guo Tu 1990 Copyright (cid:13)c 1990 by Paul Kang-Guo Tu All Rights Reserved The dissertation of Paul Kang-Guo Tu is approved. Kirby A. Baker Han K. Huang David Rennels Toma(cid:19)s Lang Milo(cid:20)s D. Ercegovac, Committee Chair University of California, Los Angeles 1990 ii To Tanping and my parents iii iv Table of Contents 1 Introduction 1 1.1 Motivations and objectives : : : : : : : : : : : : : : : : : : : : : : : 1 1.2 Overview of on-line arithmetic : : : : : : : : : : : : : : : : : : : : : 3 1.3 Normalization of (cid:13)oating-point numbers : : : : : : : : : : : : : : : 5 1.4 Review of related works : : : : : : : : : : : : : : : : : : : : : : : : 7 1.5 Outline of the dissertation : : : : : : : : : : : : : : : : : : : : : : : 9 2 Theoretical background of on-line arithmetic algorithms 11 2.1 The general approach for the derivation of on-line algorithms : : : : 13 2.2 Timing of on-line computations : : : : : : : : : : : : : : : : : : : : 22 2.3 General structure of on-line algorithms : : : : : : : : : : : : : : : : 24 2.3.1 Operand processing : : : : : : : : : : : : : : : : : : : : : : : 26 2.3.2 The on-line recurrence evaluation : : : : : : : : : : : : : : : 27 2.3.3 The digit selection function : : : : : : : : : : : : : : : : : : 28 2.4 System parameters : : : : : : : : : : : : : : : : : : : : : : : : : : : 28 2.5 On-line algorithms for sequences of arithmetic operations : : : : : : 29 2.6 Radix-r on-line algorithms for the basic arithmetic operations : : : 31 2.6.1 On-line (cid:13)oating-point addition algorithm : : : : : : : : : : : 31 2.6.2 On-line (cid:13)oating-point multiplication algorithm : : : : : : : : 34 2.6.3 On-line (cid:13)oating-point division algorithm : : : : : : : : : : : 38 2.6.4 On-line (cid:13)oating-point square root algorithm : : : : : : : : : 44 2.6.5 Remarks : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 47 3 On-line algorithms for sequences of arithmetic operations 51 3.1 Exponent calculation of on-line algorithms : : : : : : : : : : : : : : 54 v 3.2 Considerations for the on-line recurrence expression : : : : : : : : : 55 3.3 Generalization of the output digit selection : : : : : : : : : : : : : : 59 3.4 Development of multi-operation on-line algorithms : : : : : : : : : : 61 3.5 Development of composite on-line algorithms : : : : : : : : : : : : : 65 4 Gate array implementation of on-line algorithms 67 4.1 Organization of an on-line arithmetic unit : : : : : : : : : : : : : : 68 4.2 Design of functional components : : : : : : : : : : : : : : : : : : : : 69 4.2.1 Data accumulation and conversion unit : : : : : : : : : : : : 69 4.2.2 Fraction by digit multiplier : : : : : : : : : : : : : : : : : : 70 4.2.3 Multiple input adder : : : : : : : : : : : : : : : : : : : : : : 73 4.2.4 Carry assimilation adder : : : : : : : : : : : : : : : : : : : : 73 4.2.5 Variable delay component : : : : : : : : : : : : : : : : : : : 73 4.2.6 Parallel adder : : : : : : : : : : : : : : : : : : : : : : : : : : 74 4.3 Design of radix-2 (cid:13)oating-point on-line division unit : : : : : : : : : 74 4.3.1 The radix-2 on-line division algorithm : : : : : : : : : : : : 74 4.3.2 Functional components of on-line division : : : : : : : : : : 78 4.3.3 Binary level algorithms : : : : : : : : : : : : : : : : : : : : : 79 4.3.4 Pipelining : : : : : : : : : : : : : : : : : : : : : : : : : : : : 82 4.3.5 Organization and design of on-line division unit : : : : : : : 84 4.3.6 Design characteristics : : : : : : : : : : : : : : : : : : : : : : 84 4.4 Design of radix-2 (cid:13)oating-point on-line addition unit : : : : : : : : 91 4.4.1 The radix-2 on-line addition algorithm : : : : : : : : : : : : 91 4.4.2 Functional components of on-line addition : : : : : : : : : : 94 4.4.3 Binary level algorithms : : : : : : : : : : : : : : : : : : : : : 94 4.4.4 Design of the on-line addition unit : : : : : : : : : : : : : : 96 4.5 Design of radix-2 (cid:13)oating-point on-line multiplication unit : : : : : 98 4.5.1 The radix-2 multiplication algorithm : : : : : : : : : : : : : 98 4.5.2 Design of on-line multiplication unit : : : : : : : : : : : : : 102 4.6 Design of radix-2 (cid:13)oating-point on-line square root unit : : : : : : : 106 4.6.1 The radix-2 square root algorithm : : : : : : : : : : : : : : : 106 4.6.2 Design of on-line square root unit : : : : : : : : : : : : : : : 107 vi 5 Application of on-line arithmetic algorithms 115 5.1 The singular value decomposition algorithm : : : : : : : : : : : : : 115 5.2 On-line scheme for computing the SVD: the network approach : : : 120 5.2.1 Complexity of the on-line SVD computation : : : : : : : : : 123 5.2.2 Performance of the on-line SVD : : : : : : : : : : : : : : : : 127 5.3 Comparison with conventional schemes : : : : : : : : : : : : : : : : 130 5.4 Concluding remarks : : : : : : : : : : : : : : : : : : : : : : : : : : : 136 6 Summary and suggestions for future research 139 6.1 Summary : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 139 6.2 Suggestions for future research : : : : : : : : : : : : : : : : : : : : : 140 Bibliography 141 Appendices 145 A Derivation of the scaled error bound 145 B Parameter relations for multi-operation on-line algorithms 147 B.1 Type 1 computations : : : : : : : : : : : : : : : : : : : : : : : : : : 147 B.2 Type 2 computations : : : : : : : : : : : : : : : : : : : : : : : : : : 149 B.3 Type 3 computations : : : : : : : : : : : : : : : : : : : : : : : : : : 152 C Derivation of the selection function for the radix-2 on-line square root algorithm 157 D Complexity and performance of conventional designs 163 D.1 Conventional addition unit design : : : : : : : : : : : : : : : : : : : 164 D.2 Conventional multiplication unit design : : : : : : : : : : : : : : : : 164 D.3 Conventional division unit design : : : : : : : : : : : : : : : : : : : 168 D.4 Conventional square root unit design : : : : : : : : : : : : : : : : : 171 vii viii List of Figures 1.1 Execution of an on-line algorithm : : : : : : : : : : : : : : : : : : : 4 1.2 Timing of conventional and on-line arithmetic for sequence of oper- ations : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2.1 On-line delay : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 14 2.2 Relative positions of selection intervals : : : : : : : : : : : : : : : : 18 2.3 Comparison points of the digit selection function : : : : : : : : : : : 18 s x+y 2.4 Computing w = : : : : : : : : : : : : : : : : : : : : : : : : 24 z 2.5 Functional components of an on-line algorithm : : : : : : : : : : : : 25 2.6 Composite on-line algorithm : : : : : : : : : : : : : : : : : : : : : : 30 2.7 On-line square root computation: (cid:12)rst approach : : : : : : : : : : : 48 2.8 On-line square root computation: second approach : : : : : : : : : 49 p 2 2 3.1 Network of on-line algorithms approach for z = x +y : : : : : : 52 p 2 2 3.2 Computing z = x +y as a multi-operation on-line algorithm : : 52 3.3 Exponent calculation: Case 1 : : : : : : : : : : : : : : : : : : : : : 54 3.4 Exponent calculation: Case 2 : : : : : : : : : : : : : : : : : : : : : 55 3.5 Exponent calculation: Case 3 : : : : : : : : : : : : : : : : : : : : : 55 4.1 Modular structure of an on-line arithmetic unit : : : : : : : : : : : 68 4.2 Control scheme for the next digit loading position : : : : : : : : : : 69 4.3 Radix-2 on-the-(cid:13)y conversion bitslice : : : : : : : : : : : : : : : : : 72 4.4 Variable delay unit : : : : : : : : : : : : : : : : : : : : : : : : : : : 75 4.5 Functional components for on-line division : : : : : : : : : : : : : : 78 4.6 Structure of 4-to-2 adder : : : : : : : : : : : : : : : : : : : : : : : : 81 4.7 Quotient digit selection : : : : : : : : : : : : : : : : : : : : : : : : : 81 4.8 Pipeline scheme for on-line division : : : : : : : : : : : : : : : : : : 83 ix
Description: