Contents

Foreword

Preface

CHAPTER 1. INTRODUCTION

1–1 Notation

1–2 Instruction Set and Execution Time Model

CHAPTER 2. BASICS

2–1 Manipulating Rightmost Bits

2–2 Addition Combined with Logical Operations

2–3 Inequalities among Logical and Arithmetic Expressions

2–4 Absolute Value Function

2–5 Average of Two Integers

2–6 Sign Extension

2–7 Shift Right Signed from Unsigned

2–8 Sign Function

2–9 Three-Valued Compare Function

2–10 Transfer of Sign Function

2–11 Decoding a “Zero Means 2n” Field

2–12 Comparison Predicates

2–13 Overflow Detection

2–14 Condition Code Result of Add, Subtract, and Multiply

2–15 Rotate Shifts

2–16 Double-Length Add/Subtract

2–17 Double-Length Shifts

2–18 Multibyte Add, Subtract, Absolute Value

2–19 Doz, Max, Min

2–20 Exchanging Registers

2–21 Alternating among Two or More Values

2–22 A Boolean Decomposition Formula

2–23 Implementing Instructions for all 16 Binary Boolean Operations

CHAPTER 3. POWER-OF-2 BOUNDARIES

3–1 Rounding Up/Down to a Multiple of a Known Power of 2

3–2 Rounding Up/Down to the Next Power of 2

3–3 Detecting a Power-of-2 Boundary Crossing

CHAPTER 4. ARITHMETIC BOUNDS

4–1 Checking Bounds of Integers

4–2 Propagating Bounds through Add’s and Subtract’s

4–3 Propagating Bounds through Logical Operations

CHAPTER 5. COUNTING BITS

5–1 Counting 1-Bits

5–2 Parity

5–3 Counting Leading 0’s

5–4 Counting Trailing 0’s

CHAPTER 6. SEARCHING WORDS

6–1 Find First 0-Byte

6–2 Find First String of 1-Bits of a Given Length

6–3 Find Longest String of 1-Bits

6–4 Find Shortest String of 1-Bits

CHAPTER 7. REARRANGING BITS AND BYTES

7–1 Reversing Bits and Bytes

7–2 Shuffling Bits

7–3 Transposing a Bit Matrix

7–4 Compress, or Generalized Extract

7–5 Expand, or Generalized Insert

7–6 Hardware Algorithms for Compress and Expand

7–7 General Permutations, Sheep and Goats Operation

7–8 Rearrangements and Index Transformations

7–9 An LRU Algorithm

CHAPTER 8. MULTIPLICATION

8–1 Multiword Multiplication

8–2 High-Order Half of 64-Bit Product

8–3 High-Order Product Signed from/to Unsigned

8–4 Multiplication by Constants

CHAPTER 9. INTEGER DIVISION

9–1 Preliminaries

9–2 Multiword Division

9–3 Unsigned Short Division from Signed Division

9–4 Unsigned Long Division

9–5 Doubleword Division from Long Division

CHAPTER 10. INTEGER DIVISION BY CONSTANTS

10–1 Signed Division by a Known Power of 2

10–2 Signed Remainder from Division by a Known Power of 2

10–3 Signed Division and Remainder by Non-Powers of 2

10–4 Signed Division by Divisors ≥ 2

10–5 Signed Division by Divisors ≤ –2

10–6 Incorporation into a Compiler

10–7 Miscellaneous Topics

10–8 Unsigned Division

10–9 Unsigned Division by Divisors ≥ 1

10–10 Incorporation into a Compiler (Unsigned)

10–11 Miscellaneous Topics (Unsigned)

10–12 Applicability to Modulus and Floor Division

10–13 Similar Methods

10–14 Sample Magic Numbers

10–15 Simple Code in Python

10–16 Exact Division by Constants

10–17 Test for Zero Remainder after Division by a Constant

10–18 Methods Not Using Multiply High

10–19 Remainder by Summing Digits

10–20 Remainder by Multiplication and Shifting Right

10–21 Converting to Exact Division

10–22 A Timing Test

10–23 A Circuit for Dividing by 3

CHAPTER 11. SOME ELEMENTARY FUNCTIONS

11–1 Integer Square Root

11–2 Integer Cube Root

11–3 Integer Exponentiation

11–4 Integer Logarithm

CHAPTER 12. UNUSUAL BASES FOR NUMBER SYSTEMS

12–1 Base –2

12–2 Base –1 + i

12–3 Other Bases

12–4 What Is the Most Efficient Base?

CHAPTER 13. GRAY CODE

13–1 Gray Code

13–2 Incrementing a Gray-Coded Integer

13–3 Negabinary Gray Code

13–4 Brief History and Applications

CHAPTER 14. CYCLIC REDUNDANCY CHECK

14–1 Introduction

14–2 Theory

14–3 Practice

CHAPTER 15. ERROR-CORRECTING CODES

15–1 Introduction

15–2 The Hamming Code

15–3 Software for SEC-DED on 32 Information Bits

15–4 Error Correction Considered More Generally

CHAPTER 16. HILBERT’S CURVE

16–1 A Recursive Algorithm for Generating the Hilbert Curve

16–2 Coordinates from Distance along the Hilbert Curve

16–3 Distance from Coordinates on the Hilbert Curve

16–4 Incrementing the Coordinates on the Hilbert Curve

16–5 Non-Recursive Generating Algorithms

16–6 Other Space-Filling Curves

16–7 Applications

CHAPTER 17. FLOATING-POINT

17–1 IEEE Format

17–2 Floating-Point To/From Integer Conversions

17–3 Comparing Floating-Point Numbers Using Integer Operations

17–4 An Approximate Reciprocal Square Root Routine

17–5 The Distribution of Leading Digits

17–6 Table of Miscellaneous Values

CHAPTER 18. FORMULAS FOR PRIMES

18–1 Introduction

18–2 Willans’s Formulas

18–3 Wormell’s Formula

18–4 Formulas for Other Difficult Functions

ANSWERS TO EXERCISES

APPENDIX A. ARITHMETIC TABLES FOR A 4-BIT MACHINE

APPENDIX B. NEWTON’S METHOD

APPENDIX C. A GALLERY OF GRAPHS OF DISCRETE FUNCTIONS

C–1 Plots of Logical Operations on Integers

C–2 Plots of Addition, Subtraction, and Multiplication

C–3 Plots of Functions Involving Division

C–4 Plots of the Compress, SAG, and Rotate Left Functions

C–5 2D Plots of Some Unary Functions

Bibliography

Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset