Chapter 3 Arithmetic for Computers. Chapter 3 — Arithmetic for Computers — 2 Arithmetic for Computers Operations on integers Addition and subtraction.

Slides:



Advertisements
Similar presentations
Spring 2013 Advising Starts this week! CS2710 Computer Organization1.
Advertisements

Chapter 3 Arithmetic for Computers. Chapter 3 — Arithmetic for Computers — 2 Arithmetic for Computers Operations on integers Addition and subtraction.
Arithmetic in Computers Chapter 4 Arithmetic in Computers2 Outline Data representation integers Unsigned integers Signed integers Floating-points.
CS/ECE 3330 Computer Architecture Chapter 3 Arithmetic.
Chapter 3 Arithmetic for Computers. Exam 1 CSCE
Computer Engineering FloatingPoint page 1 Floating Point Number system corresponding to the decimal notation 1,837 * 10 significand exponent A great number.
Lecture 16: Computer Arithmetic Today’s topic –Floating point numbers –IEEE 754 representations –FP arithmetic Reminder –HW 4 due Monday 1.
Lecture 15: Computer Arithmetic Today’s topic –Division 1.
Princess Sumaya Univ. Computer Engineering Dept. Chapter 3:
Princess Sumaya Univ. Computer Engineering Dept. Chapter 3: IT Students.
1 Lecture 9: Floating Point Today’s topics:  Division  IEEE 754 representations  FP arithmetic Reminder: assignment 4 will be posted later today.
Chapter 3 Arithmetic for Computers. Multiplication More complicated than addition accomplished via shifting and addition More time and more area Let's.
Lecture 9 Sept 28 Chapter 3 Arithmetic for Computers.
Chapter 3 Arithmetic for Computers. Chapter 3 — Arithmetic for Computers — 2 Arithmetic for Computers Operations on integers Addition and subtraction.
1  2004 Morgan Kaufmann Publishers Chapter Three.
ECE 15B Computer Organization Spring 2010 Dmitri Strukov Lecture 11: Floating Point Partially adapted from Computer Organization and Design, 4 th edition,
ECE 15B Computer Organization Spring 2010 Dmitri Strukov Lecture 6: Logic/Shift Instructions Partially adapted from Computer Organization and Design, 4.
COMPUTER ARCHITECTURE & OPERATIONS I Instructor: Hao Ji.
Systems Architecture Lecture 14: Floating Point Arithmetic
Chapter 3 -Arithmetic for Computers Operations on integers – Addition and subtraction – Multiplication and division – Dealing with overflow Floating-point.
Computer Organization and Architecture Computer Arithmetic Chapter 9.
Computing Systems Basic arithmetic for computers.
ECE232: Hardware Organization and Design
CPS3340 COMPUTER ARCHITECTURE Fall Semester, /14/2013 Lecture 16: Floating Point Instructor: Ashraf Yaseen DEPARTMENT OF MATH & COMPUTER SCIENCE.
Lecture 7: Multiplication and Floating Point EEN 312: Processors: Hardware, Software, and Interfacing Department of Electrical and Computer Engineering.
CH09 Computer Arithmetic  CPU combines of ALU and Control Unit, this chapter discusses ALU The Arithmetic and Logic Unit (ALU) Number Systems Integer.
Oct. 18, 2007SYSC 2001* - Fall SYSC2001-Ch9.ppt1 See Stallings Chapter 9 Computer Arithmetic.
Chapter 3 Arithmetic for Computers. Chapter 3 — Arithmetic for Computers — 2 Arithmetic for Computers Operations on integers Addition and subtraction.
CSF 2009 Arithmetic for Computers Chapter 3. Arithmetic for Computers Operations on integers Addition and subtraction Multiplication and division Dealing.
Fixed and Floating Point Numbers Lesson 3 Ioan Despi.
Lecture 9: Floating Point
Floating Point Representation for non-integral numbers – Including very small and very large numbers Like scientific notation – –2.34 × –
Lecture 12: Integer Arithmetic and Floating Point CS 2011 Fall 2014, Dr. Rozier.
Chapter 3 Arithmetic for Computers (Integers). Florida A & M University - Department of Computer and Information Sciences Arithmetic for Computers Operations.
Princess Sumaya Univ. Computer Engineering Dept. Chapter 3:
Lecture notes Reading: Section 3.4, 3.5, 3.6 Multiplication
Chapter 3 Arithmetic for Computers. Chapter 3 — Arithmetic for Computers — 2 Arithmetic for Computers Operations on integers Addition and subtraction.
Computer Engineering FloatingPoint page 1 Floating Point Number system corresponding to the decimal notation 1,837 * 10 significand exponent A great number.
Floating Point Numbers Representation, Operations, and Accuracy CS223 Digital Design.
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell CS352H: Computer Systems Architecture Lecture 6: MIPS Floating.
C OMPUTER O RGANIZATION AND D ESIGN The Hardware/Software Interface 5 th Edition Chapter 3 Arithmetic for Computers.
CS 224 Computer Organization Spring 2011 Arithmetic for Computers With thanks to M.J. Irwin, D. Patterson, and J. Hennessy for some lecture slide contents.
Chapter 3 Arithmetic for Computers. Chapter 3 — Arithmetic for Computers — 2 Arithmetic for Computers Operations on integers Addition and subtraction.
Division Check for 0 divisor Long division approach – If divisor ≤ dividend bits 1 bit in quotient, subtract – Otherwise 0 bit in quotient, bring down.
순천향대학교 정보기술공학부 이 상 정 1 3. Arithmetic for Computers.
Morgan Kaufmann Publishers Arithmetic for Computers
By Wannarat Computer System Design Lecture 3 Wannarat Suntiamorntut.
Chapter 3 — Arithmetic for Computers — 1 Arithmetic for Computers Operations on integers Addition and subtraction Multiplication and division Dealing with.
Arithmetic for Computers Chapter 3 1. Arithmetic for Computers  Operations on integers  Addition and subtraction  Multiplication and division  Dealing.
Morgan Kaufmann Publishers Arithmetic for Computers
ALU Architecture and ISA Extensions
Morgan Kaufmann Publishers Arithmetic for Computers
Computer Architecture & Operations I
Morgan Kaufmann Publishers Arithmetic for Computers
Computer Architecture & Operations I
Morgan Kaufmann Publishers Arithmetic for Computers
Floating Point Number system corresponding to the decimal notation
CS/COE0447 Computer Organization & Assembly Language
Morgan Kaufmann Publishers Arithmetic for Computers
Morgan Kaufmann Publishers
Morgan Kaufmann Publishers
Ch 3: Computer Arithmetic
PRESENTED BY J.SARAVANAN. Introduction: Objective: To provide hardware support for floating point arithmetic. To understand how to represent floating.
Arithmetic for Computers
CS352H: Computer Systems Architecture
Computer Architecture Computer Science & Engineering
Morgan Kaufmann Publishers Arithmetic for Computers
Presentation transcript:

Chapter 3 Arithmetic for Computers

Chapter 3 — Arithmetic for Computers — 2 Arithmetic for Computers Operations on integers Addition and subtraction Multiplication and division Dealing with overflow Floating-point real numbers Representation and operations §3.1 Introduction

Chapter 3 — Arithmetic for Computers — 3 Integer Addition Example: §3.2 Addition and Subtraction Overflow if result out of range Adding +ve and –ve operands, no overflow Adding two +ve operands Overflow if result sign is 1 Adding two –ve operands Overflow if result sign is 0

Chapter 3 — Arithmetic for Computers — 4 Integer Subtraction Add negation of second operand Example: 7 – 6 = 7 + (–6) +7: … –6: … : … Overflow if result out of range Subtracting two +ve or two –ve operands, no overflow Subtracting +ve from –ve operand Overflow if result sign is 0 Subtracting –ve from +ve operand Overflow if result sign is 1

Chapter 3 — Arithmetic for Computers — 5 Dealing with Overflow Some languages (e.g., C) ignore overflow Use MIPS addu, addui, subu instructions Other languages (e.g., Ada, Fortran) require raising an exception Use MIPS add, addi, sub instructions On overflow, invoke exception handler Save PC in exception program counter (EPC) register Jump to predefined handler address mfc0 (move from coprocessor reg) instruction can retrieve EPC value, to return after corrective action

Chapter 3 — Arithmetic for Computers — 6 Multiplication Start with long-multiplication approach 1000 × Length of product is the sum of operand lengths multiplicand multiplier product §3.3 Multiplication

Chapter 3 — Arithmetic for Computers — 7 Multiplication Hardware Initially 0

Chapter 3 — Arithmetic for Computers — 8 Optimized Multiplier Perform steps in parallel: add/shift One cycle per partial-product addition That’s ok, if frequency of multiplications is low

Chapter 3 — Arithmetic for Computers — 9 Faster Multiplier Uses multiple adders Cost/performance tradeoff Can be pipelined Several multiplication performed in parallel

Chapter 3 — Arithmetic for Computers — 10 Division Check for 0 divisor Long division approach If divisor ≤ dividend bits 1 bit in quotient, subtract Otherwise 0 bit in quotient, bring down next dividend bit Restoring division Do the subtract, and if remainder goes < 0, add divisor back Signed division Divide using absolute values Adjust sign of quotient and remainder as required n-bit operands yield n-bit quotient and remainder quotient dividend remainder divisor §3.4 Division

Chapter 3 — Arithmetic for Computers — 11 Division Hardware Initially dividend Initially divisor in left half

Chapter 3 — Arithmetic for Computers — 12 Optimized Divider One cycle per partial-remainder subtraction Looks a lot like a multiplier! Same hardware can be used for both

Chapter 3 — Arithmetic for Computers — 13 Faster Division Can’t use parallel hardware as in multiplier Subtraction is conditional on sign of remainder Faster dividers (e.g. SRT devision) generate multiple quotient bits per step Still require multiple steps

Chapter 3 — Arithmetic for Computers — 14 Floating Point Representation for non-integral numbers Including very small and very large numbers Like scientific notation –2.34 × × 10 – × 10 9 In binary ±1.xxxxxxx 2 × 2 yyyy Types float and double in C normalized not normalized §3.5 Floating Point

Chapter 3 — Arithmetic for Computers — 15 Floating Point Standard Defined by IEEE Std Developed in response to divergence of representations Portability issues for scientific code Now almost universally adopted Two representations Single precision (32-bit) Double precision (64-bit)

Chapter 3 — Arithmetic for Computers — 16 IEEE Floating-Point Format S: sign bit (0  non-negative, 1  negative) Normalize significand: 1.0 ≤ |significand| < 2.0 Always has a leading pre-binary-point 1 bit, so no need to represent it explicitly (hidden bit) Significand is Fraction with the “1.” restored Exponent: excess representation: actual exponent + Bias Ensures exponent is unsigned Single: Bias = 127; Double: Bias = 1203 SExponentFraction single: 8 bits double: 11 bits single: 23 bits double: 52 bits

Chapter 3 — Arithmetic for Computers — 17 Single-Precision Range Exponents and reserved Smallest value Exponent:  actual exponent = 1 – 127 = –126 Fraction: 000…00  significand = 1.0 ±1.0 × 2 –126 ≈ ±1.2 × 10 –38 Largest value exponent:  actual exponent = 254 – 127 = +127 Fraction: 111…11  significand ≈ 2.0 ±2.0 × ≈ ±3.4 ×

Chapter 3 — Arithmetic for Computers — 18 Double-Precision Range Exponents 0000…00 and 1111…11 reserved Smallest value Exponent:  actual exponent = 1 – 1023 = –1022 Fraction: 000…00  significand = 1.0 ±1.0 × 2 –1022 ≈ ±2.2 × 10 –308 Largest value Exponent:  actual exponent = 2046 – 1023 = Fraction: 111…11  significand ≈ 2.0 ±2.0 × ≈ ±1.8 ×

Chapter 3 — Arithmetic for Computers — 19 Floating-Point Precision Relative precision all fraction bits are significant Single: approx 2 –23 Equivalent to 23 × log 10 2 ≈ 23 × 0.3 ≈ 6 decimal digits of precision Double: approx 2 –52 Equivalent to 52 × log 10 2 ≈ 52 × 0.3 ≈ 16 decimal digits of precision

Chapter 3 — Arithmetic for Computers — 20 Floating-Point Example Represent –0.75 –0.75 = (–1) 1 × × 2 –1 S = 1 Fraction = 1000…00 2 Exponent = –1 + Bias Single: – = 126 = Double: – = 1022 = Single: …00 Double: …00

Chapter 3 — Arithmetic for Computers — 21 Floating-Point Example What number is represented by the single- precision float …00 S = 1 Fraction = 01000…00 2 Fxponent = = 129 x = (–1) 1 × ( ) × 2 (129 – 127) = (–1) × 1.25 × 2 2 = –5.0

Chapter 3 — Arithmetic for Computers — 22 Denormal Numbers Exponent =  hidden bit is 0 Smaller than normal numbers allow for gradual underflow, with diminishing precision Denormal with fraction = Two representations of 0.0!

Chapter 3 — Arithmetic for Computers — 23 Infinities and NaNs Exponent = , Fraction = ±Infinity Can be used in subsequent calculations, avoiding need for overflow check Exponent = , Fraction ≠ Not-a-Number (NaN) Indicates illegal or undefined result e.g., 0.0 / 0.0 Can be used in subsequent calculations

Chapter 3 — Arithmetic for Computers — 24 Floating-Point Addition Consider a 4-digit decimal example × × 10 –1 1. Align decimal points Shift number with smaller exponent × × Add significands × × 10 1 = × Normalize result & check for over/underflow × Round and renormalize if necessary × 10 2

Chapter 3 — Arithmetic for Computers — 25 Floating-Point Addition Now consider a 4-digit binary example × 2 –1 + – × 2 –2 (0.5 + –0.4375) 1. Align binary points Shift number with smaller exponent × 2 –1 + – × 2 –1 2. Add significands × 2 –1 + – × 2 – 1 = × 2 –1 3. Normalize result & check for over/underflow × 2 –4, with no over/underflow 4. Round and renormalize if necessary × 2 –4 (no change) =

Chapter 3 — Arithmetic for Computers — 26 Floating-Point Multiplication Consider a 4-digit decimal example × × × 10 –5 1. Add exponents For biased exponents, subtract bias from sum New exponent = 10 + –5 = 5 2. Multiply significands × =  × Normalize result & check for over/underflow × Round and renormalize if necessary × Determine sign of result from signs of operands × 10 6

Chapter 3 — Arithmetic for Computers — 27 Floating-Point Multiplication Now consider a 4-digit binary example × 2 –1 × – × 2 –2 (0.5 × –0.4375) 1. Add exponents Unbiased: –1 + –2 = –3 Biased: (– ) + (– ) = – – 127 = – Multiply significands × =  × 2 –3 3. Normalize result & check for over/underflow × 2 –3 (no change) with no over/underflow 4. Round and renormalize if necessary × 2 –3 (no change) 5. Determine sign: +ve × –ve  –ve – × 2 –3 = –

Chapter 3 — Arithmetic for Computers — 28 Interpretation of Data Bits have no inherent meaning Interpretation depends on the instructions applied Computer representations of numbers Finite range and precision Need to account for this in programs The BIG Picture

Chapter 3 — Arithmetic for Computers — 29 Right Shift and Division Left shift by i places multiplies an integer by 2 i Right shift divides by 2 i ? Only for unsigned integers For signed integers Arithmetic right shift: replicate the sign bit e.g., –5 / >> 2 = = –2 Rounds toward –∞ c.f >>> 2 = = +62 §3.8 Fallacies and Pitfalls

Chapter 3 — Arithmetic for Computers — 30 Concluding Remarks ISAs support arithmetic Signed and unsigned integers Floating-point approximation to reals Bounded range and precision Operations can overflow and underflow MIPS ISA Core instructions: 54 most frequently used 100% of SPECINT, 97% of SPECFP Other instructions: less frequent §3.9 Concluding Remarks