UCLA Computer Science Department: CS 252A
Arithmetic Algorithms and Processors
Winter 2012

Class: TT 10-12, BH 5252

Prof. Milos D. Ercegovac
4731-H Boelter Hall
825-5414
e-mail: milos@cs.ucla.edu
web page:
http://www.cs.ucla.edu/~milos
Office hours: TT 2-3pm, or by appointment


Textbook: Digital Arithmetic by M. D. Ercegovac and T. Lang, Morgan and Kaufmann, 2004.
Lecture Viewgraphs:on the UCLA Webcourse; also at
http://www.cs.ucla.edu/digital_arithmetic
Related resources: Books, journals, conferences, Web sites, simulators
Grading: Homeworks (4) 10%, Selected Topic Presentation 10%, Midterm Exam 30% (7th week)
Project: Presentation 10%, reviews and participation 5%, report 35%. Projects are peer reviewed.

Socrates: Arithmetic is a kind of knowledge in which the best natures should be trained, and which must not be given up.  From Plato's Republic.

This course presents a detailed study of the theory, specification and design of digital arithmetic algorithms and processors. The principal topics are listed below.  

1. Introduction

Highlights. Levels of description. Number systems: conventional, redundant, and residue. Structure of algorithms and complexity measures.

2. Two-Operand Addition

All about carries. Algorithms and implementations. Conventional binary representation: carry look-ahead, carry skip, switched ripple, conditional sum, carry select, parallel prefix, and variable time. Redundant adders: carry-save and signed-digit.

3. Multioperand Addition

Bit-arrays for signed and unsigned operands. Reduction approaches: by row and by column. Algorithms and implementations.

4. Multiplication

Algorithms and implementations. Sequential with recoding. Combinational with recoding. Bit-array reduction: by row and by column. Multiply-accumulate. Saturating and truncating multipliers. Squarers. Multipliers with constant operand.

5. Division
-Digit Recurrence Method

Algorithms, implementations and comparisons. Quotient conversion. Quotient-digit selection: theory and design.

6. Iterative Methods

Reciprocal, division, square root, and reciprocal square root: Newton-Raphson's method and multiplicative methods. Initial approximation.

7. Floating-point Arithmetic

Representation. IEEE FLPT Standard. Addition, multiplication and division: Algorithms and implementations. Rounding.

8. Digit-Serial Arithmetic

Digit-serial modes: LSDF and MSDF (online arithmetic). Algorithms and implementations for addition, multiplication, and division. Composite operations. Applications.

9. Function Evaluation and CORDIC Algorithm

Argument range reduction. Polynomial and rational function approximations. MSDF rational function evaluator. Linear convergence methods for logarithms, exponentials, trigonometric, and hyperbolic functions. CORDIC method.

Suggested Exercises

For your practice only - do not turn them in.

Solutions to selected exercises are at http://www.cs.ucla.edu/digital_arithmetic

Homeworks
(a) Algorithm and design simulations; (b)  select 2-3 exercises from the textbook, make changes interesting to you, or make problems of your own.
Selected Topic Presentation (optional)
(a) Team up with another student; (b) Select a topic and prepare a 20- minute presentation and a handout. Topic related to lectures.

Midterm Exam

Open: textbook. Closed: notes, solutions, papers, etc.


PROJECTS: Individual or team (2-3 students).  In general, projects in areas such as graphics, computer vision, communications, signal processing, cryptography, embedded systems, and application-specific architectures are encouraged as long as they encompass non-trivial use of digital arithmetic. Suggestions for projects will be discussed in class.

Project Schedule (tentative)

Project proposals - draft for class review February 7: everyone reviews each project

Preliminary reviews: due February 14; feedback to projects by February 16

Project presentations: March 13 and 15. Slides and final report draft due at the presentation.

Final  reviews: each of you will be assigned 2 projects to review; return your reviews to me by March 19; feedback to projects by March 20.

Final reports due Monday March 22, 5pm.

 RESOURCES

Additional Books on Digital Arithmetic

Division and Square Root: Digit-Recurrence Algorithms and Implementations, M. Ercegovac and T. Lang,
Kluwer Academic Publishers, 1994.

Seminumerical Algorithms, D.E. Knuth, Addison Wesley, 1997.

Scientific Computing on ItaniumĀ®-based Systems, Marius Cornea, Ping Tak Peter Tang,

and John Harrison, Intel Press 2002.

Computer Arithmetic Algorithms, I. Koren, Prentice Hall, Inc., 1993.

I-64 and Elementary Functions, P. Markstein, HP Press, 2002.

Elementary Functions, Algorithms and Implementations, J.M. Muller,  2nd. Edition, Birkhauser, 2005.

Handbook of Floating-Point Arithmetic, J.M. Muller et al., Birkhauser, Boston, 2009.

Computer Arithmetic: Algorithms and Hardware Designs, B. Parhami, Oxford University Press, 2000.

Computer Arithmetic, Vol. 1 and 2, E. E. Swartzlander (Editor), IEEE Computer Society Press, 1990.

Conference proceedings

(available on IEEE Xplore)

  • IEEE Symposium on Computer Arithmetic
  • Asilomar Conference on Circuits, Systems and Computers
  • IEEE Application-Specific Architectures and Processors (ASAP)
  • SPIE Conference on Algorithms and Implementations for Signal Processing
  • International Conference on Computer Design (ICCD)

Journals and magazines

(available on IEEE Xplore;

J. of VLSI Signal Processing available on Springer site)

  • IEEE Transactions on Computers
    (in particular, Special Issues on Computer Arithmetic)
  • IEEE Journal on Solid State Circuits
  • IEEE Transactions on VLSI
  • Journal of VLSI Signal Processing
  • IEE Proceedings: Digital Techniques
  • IEEE Micro

Related sites and resources on the Web
UCLA Digital Arithmetic and Reconfigurable Architectures Lab
                                                                               
Stanford Architecture and Arithmetic Group

Arithmetic Group, Ecole Normale Superieure, Lyon, France
J.M. Muller
GMP and MPFR libraries
P. Zimmermann
Arithmetic Group, IRISA-CAIRN
A. Tisserand
IEEE Floating-Point Standard
W. Kahan, UC Berkeley
D. Hough
Interval Arithmetic

Tools, libraries, platforms and simulators
          Open Source FLPT Operators D. Harris, Harvey Mudd Colllege
Arithmetic Core Generator (FloPoCo)
F. De Dinechin
Divgen - Divider Unit Generator
A. Tisserand
Seedgen - Seed Generator
A. Tisserand
MEPLib - Machine Polynomial Library
A. Tisserand
Computer Arithmetic Algorithms Simulator
I. Koren, University of Massachussetts, Amherst
Arithmetic Operations
A. Guyot, University of Grenoble, France
VHDL Libraries: adders with standard cells
R. Zimmerman, Synopsys
          Arithmetic Module Generator T. Aoki, Tohoku University
          Novel reconfigurable systems Element CXI

TOP