Computer Architecture and Organization

Similar documents
Principles of Computer Architecture. Chapter 3: Arithmetic

UNIT IV: DATA PATH DESIGN

Floating Point. The World is Not Just Integers. Programming languages support numbers with fraction

VTU NOTES QUESTION PAPERS NEWS RESULTS FORUMS Arithmetic (a) The four possible cases Carry (b) Truth table x y

Chapter 4. Operations on Data

Divide: Paper & Pencil

ECE 30 Introduction to Computer Engineering

The ALU consists of combinational logic. Processes all data in the CPU. ALL von Neuman machines have an ALU loop.

By, Ajinkya Karande Adarsh Yoga

Advanced Computer Architecture-CS501

Chapter 3: part 3 Binary Subtraction

EC2303-COMPUTER ARCHITECTURE AND ORGANIZATION

Module 2: Computer Arithmetic

4 Operations On Data 4.1. Foundations of Computer Science Cengage Learning

A complement number system is used to represent positive and negative integers. A complement number system is based on a fixed length representation

Floating-Point Data Representation and Manipulation 198:231 Introduction to Computer Organization Lecture 3

Chapter 10 - Computer Arithmetic

Chapter 4 Arithmetic Functions

Computer Arithmetic Ch 8

Computer Arithmetic Ch 8

Floating Point Arithmetic

CPE300: Digital System Architecture and Design

Chapter 3: Arithmetic for Computers

Number Systems and Computer Arithmetic

CO212 Lecture 10: Arithmetic & Logical Unit

MIPS Integer ALU Requirements

Arithmetic Operations on Binary Numbers

Week 7: Assignment Solutions

COMPUTER ORGANIZATION AND ARCHITECTURE

Chapter 5 : Computer Arithmetic

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 3. Arithmetic for Computers Implementation

An FPGA based Implementation of Floating-point Multiplier

4 Operations On Data 4.1. Foundations of Computer Science Cengage Learning

At the ith stage: Input: ci is the carry-in Output: si is the sum ci+1 carry-out to (i+1)st state

1. NUMBER SYSTEMS USED IN COMPUTING: THE BINARY NUMBER SYSTEM

Computer Arithmetic andveriloghdl Fundamentals

Signed umbers. Sign/Magnitude otation

Kinds Of Data CHAPTER 3 DATA REPRESENTATION. Numbers Are Different! Positional Number Systems. Text. Numbers. Other

Chapter 2 Data Representations


CS 64 Week 1 Lecture 1. Kyle Dewey

Computer Architecture Set Four. Arithmetic

Number System. Introduction. Decimal Numbers

COMPUTER ARCHITECTURE AND ORGANIZATION. Operation Add Magnitudes Subtract Magnitudes (+A) + ( B) + (A B) (B A) + (A B)

Data Representations & Arithmetic Operations

CHAPTER V NUMBER SYSTEMS AND ARITHMETIC

EE878 Special Topics in VLSI. Computer Arithmetic for Digital Signal Processing

Timing for Ripple Carry Adder

DLD VIDYA SAGAR P. potharajuvidyasagar.wordpress.com. Vignana Bharathi Institute of Technology UNIT 1 DLD P VIDYA SAGAR

INF2270 Spring Philipp Häfliger. Lecture 4: Signed Binaries and Arithmetic

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Digital Computer Arithmetic ECE 666

Topics. 6.1 Number Systems and Radix Conversion 6.2 Fixed-Point Arithmetic 6.3 Seminumeric Aspects of ALU Design 6.4 Floating-Point Arithmetic

UNIT-III COMPUTER ARTHIMETIC

Internal Data Representation

UNIT - I: COMPUTER ARITHMETIC, REGISTER TRANSFER LANGUAGE & MICROOPERATIONS

Semester Transition Point. EE 109 Unit 11 Binary Arithmetic. Binary Arithmetic ARITHMETIC

EE260: Logic Design, Spring n Integer multiplication. n Booth s algorithm. n Integer division. n Restoring, non-restoring

(+A) + ( B) + (A B) (B A) + (A B) ( A) + (+ B) (A B) + (B A) + (A B) (+ A) (+ B) + (A - B) (B A) + (A B) ( A) ( B) (A B) + (B A) + (A B)

CS/COE0447: Computer Organization

CS/COE0447: Computer Organization

PESIT Bangalore South Campus

Chapter 2. Data Representation in Computer Systems

Decimal & Binary Representation Systems. Decimal & Binary Representation Systems

CS 5803 Introduction to High Performance Computer Architecture: Arithmetic Logic Unit. A.R. Hurson 323 CS Building, Missouri S&T

CS Computer Architecture. 1. Explain Carry Look Ahead adders in detail

Arithmetic Logic Unit. Digital Computer Design

9/3/2015. Data Representation II. 2.4 Signed Integer Representation. 2.4 Signed Integer Representation

Arithmetic and Logical Operations

Chapter 03: Computer Arithmetic. Lesson 09: Arithmetic using floating point numbers

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Digital Computer Arithmetic ECE 666

COMP Overview of Tutorial #2

ECE 2030D Computer Engineering Spring problems, 5 pages Exam Two 8 March 2012

Binary Adders. Ripple-Carry Adder

Logic, Words, and Integers

Number Systems. Both numbers are positive

Digital Computer Arithmetic

Signed Multiplication Multiply the positives Negate result if signs of operand are different

Binary Adders: Half Adders and Full Adders

Chapter 10 Binary Arithmetics

Experiment 7 Arithmetic Circuits Design and Implementation

Chapter 4. Combinational Logic

An Efficient Implementation of Floating Point Multiplier

COMPUTER ARITHMETIC (Part 1)

Floating Point COE 308. Computer Architecture Prof. Muhamed Mudawar. Computer Engineering Department King Fahd University of Petroleum and Minerals

Number Systems. Readings: , Problem: Implement simple pocket calculator Need: Display, adders & subtractors, inputs

Chapter 3 Arithmetic for Computers. ELEC 5200/ From P-H slides

CHW 261: Logic Design

CMPSCI 145 MIDTERM #1 Solution Key. SPRING 2017 March 3, 2017 Professor William T. Verts

Floating-point representations

Floating-point representations

Representation of Non Negative Integers

Floating Point Numbers

COMP 122/L Lecture 2. Kyle Dewey

EE 109 Unit 19. IEEE 754 Floating Point Representation Floating Point Arithmetic

Floating-Point Arithmetic

ELECTRICAL AND COMPUTER ENGINEERING DEPARTMENT, OAKLAND UNIVERSITY ECE-2700: Digital Logic Design Winter Notes - Unit 4. hundreds.

Number Systems CHAPTER Positional Number Systems

ECE260: Fundamentals of Computer Engineering

Computer Architecture and IC Design Lab. Chapter 3 Part 2 Arithmetic for Computers Floating Point

Digital Logic & Computer Design CS Professor Dan Moldovan Spring 2010

Transcription:

3-1 Chapter 3 - Arithmetic Computer Architecture and Organization Miles Murdocca and Vincent Heuring Chapter 3 Arithmetic

3-2 Chapter 3 - Arithmetic Chapter Contents 3.1 Fixed Point Addition and Subtraction 3.2 Fixed Point Multiplication and Division 3.3 Floating Point Arithmetic 3.4 High Performance Arithmetic

3-3 Chapter 3 - Arithmetic Computer Arithmetic Using number representations from Chapter 2, we will explore four basic arithmetic operations: addition, subtraction, multiplication, and division. Significant issues include: fixed point vs. floating point arithmetic, overflow and underflow, handling of signed numbers, and performance. We look first at fixed point arithmetic, and then at floating point arithmetic.

3-4 Chapter 3 - Arithmetic Binary Numbers can be Represented on a Number Circle Numbers are added or subtracted on the number circle by traversing clockwise for addition and counterclockwise for subtraction. Unlike the number line (a) where overflow never occurs, overflow occurs when a transition is made from +3 to -4 while proceeding around the number circle when adding, or from -4 to +3 while subtracting.

3-5 Chapter 3 - Arithmetic Overflow Overflow occurs when the addition of two positive numbers produces a negative result, or when the addition of two negative numbers produces a positive result. Adding operands of unlike signs never produces an overflow. Notice that discarding the carry out of the most significant bit during two s complement addition is a normal occurrence, and does not by itself indicate overflow. As an example of overflow, consider adding (80 + 80 = 160) 10, which produces a result of -96 10 in an 8-bit two s complement format: 01010000 = 80 + 01010000 = 80 ---------- 10100000 = -96 (not 160 because the sign bit is 1.)

3-6 Chapter 3 - Arithmetic Sign Extension The leftmost bit is assigned to the sign. What happens to the sign bit if we place a number into a larger or smaller word? For positive numbers, all that we need to do is pad the left side with 0s: For negative numbers, we cannot simply pad the left side with 0s because that would change the value of the number:

3-7 Chapter 3 - Arithmetic Sign Extension (continued) As it turns out, all that we need to do is copy the sign bit for as many places as there are to the left and the number will be correctly extended, regardless of the value of the sign. This is known as sign extension:

3-8 Chapter 3 - Arithmetic Sign Extension (continued) If we want to reduce the size of the word, we can simply remove bits on the left and the resulting sign will be correct, as long as the number can be represented in the remaining bits:

3-9 Chapter 3 - Arithmetic Ripple Carry Adder Two binary numbers A and B are added from right to left, creating a sum and a carry at the outputs of each full adder for each bit position.

3-10 Chapter 3 - Arithmetic Constructing Larger Adders A 16-bit adder can be made up of a cascade of four 4-bit ripple-carry adders.

3-11 Chapter 3 - Arithmetic Full Subtractor Truth table and schematic symbol for a ripple-borrow subtractor:

3-12 Chapter 3 - Arithmetic Ripple-Borrow Subtractor A ripple-borrow subtractor can be composed of a cascade of full subtractors. Two binary numbers A and B are subtracted from right to left, creating a difference and a borrow at the outputs of each full subtractor for each bit position.

3-13 Chapter 3 - Arithmetic Combined Adder/Subtractor A single ripple-carry adder can perform both addition and subtraction, by forming the two s complement negative for B when subtracting. (Note that +1 is added at c 0 for two s complement.)

3-14 Chapter 3 - Arithmetic One s Complement Addition An example of one s complement integer addition with an end-around carry:

3-15 Chapter 3 - Arithmetic Number Circle (Revisited) Number circle for a three-bit signed one s complement representation. Notice the two representations for 0.

3-16 Chapter 3 - Arithmetic End-Around Carry for Fractions The end-around carry complicates one s complement addition for nonintegers, and is generally not used for this situation. The issue is that the distance between the two representations of 0 is 1.0, whereas the rightmost fraction position is less than 1.

3-17 Chapter 3 - Arithmetic Multiplication Example Multiplication of two 4-bit unsigned binary integers produces an 8-bit result. Multiplication of two 4-bit signed binary integers produces only a 7-bit result (each operand reduces to a sign bit and a 3-bit magnitude for each operand, producing a sign-bit and a 6-bit result).

3-18 Chapter 3 - Arithmetic A Serial Multiplier

3-19 Chapter 3 - Arithmetic Example of Multiplication Using Serial Multiplier

3-20 Chapter 3 - Arithmetic Example of Base 2 Division (7 / 3 = 2) 10 with a remainder R of 1. Equivalently, (0111/ 11 = 10) 2 with a remainder R of 1.

3-21 Chapter 3 - Arithmetic Serial Divider

3-22 Chapter 3 - Arithmetic Division Example Using Serial Divider

3-23 Chapter 3 - Arithmetic Multiplication of Signed Integers Sign extension to the target word size is needed for the negative operand(s). A target word size of 8 bits is used here for two 4-bit signed operands, but only a 7-bit target word size is needed for the result.

3-24 Chapter 3 - Arithmetic Carry-Lookahead Addition s i = a i b i c i + a i b i c i + a i b i c i + a i b i c i c i+1 = b i c i + a i c i + a i b i c i+1 = a i b i + (a i + b i )c i c i+1 = G i + P i c i Carries are represented in terms of G i (generate) and P i (propagate) expressions. G i = a i b i and P i = a i + b i c 0 = 0 c 1 = G 0 c 2 = G 1 + P 1 G 0 c 3 = G 2 + P 2 G 1 + P 2 P 1 G 0 c 4 = G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 G 0

3-25 Chapter 3 - Arithmetic Carry Lookahead Adder Maximum gate delay for the carry generation is only 3. The full adders introduce two more gate delays. Worst case path is 5 gate delays.

3-26 Chapter 3 - Arithmetic Floating Point Arithmetic Floating point arithmetic differs from integer arithmetic in that exponents must be handled as well as the magnitudes of the operands. The exponents of the operands must be made equal for addition and subtraction. The fractions are then added or subtracted as appropriate, and the result is normalized. Ex: Perform the floating point operation: (.101 2 3 +.111 2 4 ) 2 Start by adjusting the smaller exponent to be equal to the larger exponent, and adjust the fraction accordingly. Thus we have.101 2 3 =.010 2 4, losing.001 2 3 of precision in the process. The resulting sum is (.010 +.111) 2 4 = 1.001 2 4 =.1001 2 5, and rounding to three significant digits,.100 2 5, and we have lost another 0.001 2 4 in the rounding process.

3-27 Chapter 3 - Arithmetic Floating Point Arithmetic (Cont ) If we simply added the numbers using as much precision as we needed and then applied rounding only in the final normalization step, then the calculation would go like this: Normalizing yields.10011 2 5, and rounding to three significant digits using the round to nearest even method yields.101 2 5. Which calculation is correct.100 x 2 5 or.101 x 2 5? According to the IEEE 754 standard, the final result should be the same as if the maximum precision needed is used before applying the rounding method, and so the correct result is.101 2 5. So what do we do?

3-28 Chapter 3 - Arithmetic Guard, Round, and Sticky Bits This raises the issue of how to compute the intermediate results with sufficient accuracy and without requiring too much hardware, and for this we use guard, round, and sticky bits. For the previous example, applying guard (g) and round (r) bits with the round toward nearest even method, we have: Only one extra bit is needed for this intermediate result, the guard bit (g), but we also show the round bit (r = 0) to locate its position. As we shift the number to normalize, we set a sticky bit (s) if any of the shifted out bits are nonzero. For this case, there are no nonzero bits to the right of the r bit and so s = 0: (see next slide)

3-29 Chapter 3 - Arithmetic Guard, Round, and Sticky Bits (Cont ) Now for the rounding step: simply append the sticky bit to the right of the result before rounding. There is no tie as there would be for.100100 and so we round up, otherwise we would have rounded down to the closest even number (.100): For this case, the guard, round, and sticky bits changed our previous result. Note that if r is 0 instead of 1, so that the grs combination is 100, we would have rounded down to.100 because.100 is even whereas.101 is not.

3-30 Chapter 3 - Arithmetic Floating Point Multiplication/Division Floating point multiplication/division are performed in a manner similar to floating point addition/subtraction, except that the sign, exponent, and fraction of the result can be computed separately. Like/unlike signs produce positive/negative results, respectively. Exponent of result is obtained by adding exponents for multiplication, or by subtracting exponents for division. Fractions are multiplied or divided according to the operation, and then normalized. Ex: Perform the floating point operation: (+.110 2 5 ) / (+.100 2 4 ) 2 The source operand signs are the same, which means that the result will have a positive sign. We subtract exponents for division, and so the exponent of the result is 5 4 = 1. We divide fractions, producing the result: 110/100 = 1.10. Putting it all together, the result of dividing (+.110 2 5 ) by (+.100 2 4 ) produces (+1.10 2 1 ). After normalization, the final result is (+.110 2 2 ).

3-31 Chapter 3 - Arithmetic The Booth Algorithm Booth multiplication reduces the number of additions for intermediate results, but can sometimes make it worse as we will see. Positive and negative numbers treated alike.

3-32 Chapter 3 - Arithmetic A Worst Case Booth Example A worst case situation in which the simple Booth algorithm requires twice as many additions as serial multiplication.

3-33 Chapter 3 - Arithmetic Bit-Pair Recoding (Modified Booth Algorithm)

3-34 Chapter 3 - Arithmetic Coding of Bit Pairs

3-35 Chapter 3 - Arithmetic Parallel Pipelined Array Multiplier

3-36 Chapter 3 - Arithmetic Newton s Iteration for Zero Finding The goal is to find where the function f(x) crosses the x axis by starting with a guess x i and then using the error between f(x i ) and zero to refine the guess. A three-bit lookup table for computing x 0 : The division operation a/b is computed as a 1/b. Newton s iteration provides a fast method of computing 1/b.

3-37 Chapter 3 - Arithmetic Residue Arithmetic Implements carryless arithmetic (thus fast!), but comparisons are difficult without converting to a weighted position code. Representation of the first twenty decimal integers in the residue number system for the given moduli:

3-38 Chapter 3 - Arithmetic Examples of Addition and Multiplication in the Residue Number System

3-39 Chapter 3 - Arithmetic 16-bit Group Carry Lookahead Adder A16-bit GCLA is composed of four 4-bit CLAs, with additional logic that generates the carries between the four-bit groups. GG 0 = G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 G 0 GP 0 = P 3 P 2 P 1 P 0 c 4 = GG 0 + GP 0 c 0 c 8 = GG 1 + GP 1 c 4 = GG 1 + GP 1 GG 0 + GP 1 GP 0 c 0 c 12 = GG 2 + GP 2 c 8 = GG 2 + GP 2 GG 1 + GP 2 GP 1 GG 0 + GP 2 GP 1 GP 0 c 0 c 16 = GG 3 + GP 3 c 12 = GG 3 + GP 3 GG 2 + GP 3 GP 2 GG 1 + GP 3 GP 2 GP 1 GG 0 + GP 3 GP 2 GP 1 GP 0 c 0

3-40 Chapter 3 - Arithmetic 16-Bit Group Carry Lookahead Adder Each CLA has a longest path of 5 gate delays. In the GCLL section, GG and GP signals are generated in 3 gate delays; carry signals are generated in 2 more gate delays, resulting in 5 gate delays to generate the carry out of each GCLA group and 10 gates delays on the worst case path (which is s 15 not c 16 ).