Advanced Computer Arithmetic

Instructor Hossam A. H. Fahmy
Meeting time Wednesday 5:15PM-8:00PM
Meeting location 8208

Aim

By the end of the class, the student should be able to analyze and design high performance arithmetic blocks for use in the data-path of large digital systems.

Recommended Texts

  • Digital Arithmetic, Milos  D. Ercegovac and Tomas Lang; Morgan Kaufmann 2004, Library code: CSI 112.
  • Advanced Computer Arithmetic Design, Michael J. Flynn and Stuart Oberman; Pub John Wiley 2001, Library code: CSI 111.
  • Computer Arithmetic: Algorithms and Hardware Designs, Behrooz Parhami; Oxford University Press 2001
  • Computer Arithmetic Algorithms, Israel Koren; Pub A K Peters 2002, Library code: CSI 114.
  • Elementary Functions Algorithms and Implementation, Jean-Michel Muller; Birkhauser 2006, Library code: CSI 113.
  • Synthesis of Arithmetic Circuits, Jean-Pierre Deschamps, Gery Bioul, and Gustavo Sutter; John Wiley 2006, Library code: LOG 26.
  • Computer Arithmetic Systems, Amos Omondi, Library code: CAR 24.

Other text, lecture slide handouts, and notes are on the web.

Introduction

Arithmetic is the science of handling numbers and operating on them. This course is about the arithmetic done on computers. To fulfill its purpose, there is a need to describe the computer representations of the different numbers that humans use and the implementation of the basic mathematical operations such as addition, subtraction, multiplication and division. These operations can be implemented in software or in hardware. The focus of this class is to introduce the hardware aspects of computer arithmetic. The enhancements to improve the usual performance metrics (speed, area, and power) are discussed and the students are expected to use them in their projects. We will actually look at some of the designs used in commercial processors as well as the recent research in the field.

Assessment

Homeworks 15%
Midterm 15%
Project 15%
Research report 15%
Final exam (open book) 40%

Handouts

Book

A draft of the new/old book is available, please provide me with your comments.

Tentative schedule and handouts

Date Given on that date Due on that dateLecture notes Additional readings
28 Sep HW1 "What is Computer Arithmetic?"
05 Oct HW2 HW1 "Are there any limits?"
"Time bounds"
12 Oct HW3 HW2 "1+1=10" (A taxonomy of adders)
19 Oct HW4 HW3 "Go forth and multiply"
"The big summation"
26 Oct HW5 HW4 "Introduction to Floating Point Numbers" (A draft of the standard)
02 Nov HW6 HW5 "Decimal and the `fine print' of the standard" (Useful wikipedia page)
09 Nov Report HW6 "Division"
"One fast unit for division and square root"
16 Nov R1 Midterm (solution)
23 Nov Project R2 "Learning how to add two numbers" (A sample design)
30 Nov R3 "Recent BFP adders" (Subnormal numbers)
(Hexadecimal and binary)
(Packet forwarding adder)
(Comparative analysis)
(Detailed design)
"(Re)Learning the multiplication" (FMA and wide divider)
07 Dec R4 Project1 you present!
14 Dec "Tables and series: for many functions"
"Decimal Floating Point Units" (Decimal BID adder)
(Decimal BID rounder)
(Decimal Mul)
(Decimal HW and energy)
21 Dec Project2 "Elementary functions"
"Linking the past to the future" (Scaling, power, and the future)
(Stream processor)
23 Dec-End of Jan Enjoy the easy exams then relax!

Assignments

There are six homeworks, one research report, and one project.

Homework 1: (solutions)
Problems 1, 4, 6, 8, and 14 from chapter 1
Homework 2: (solutions)
Problems 1, 5, 8, 11, and 12 from chapter 2
Homework 3: (solutions)
Problems 5, 6, 7, and 8 from chapter 3
Homework 4: (solutions)
Problems 21, 22, 23, 25, and 26 from chapter 4
Homework 5: (solutions)
Answer the problems at this link.
Homework 6: (solutions)
Problems: 8, 15, 16, 18, and 19 from chapter 5
Research report:
report.pdf
Project:
Download this zip file , unzip it, read the file "README.txt", and enjoy! Due date is Wednesday 21 December 2016.