How to represent real numbers

Slides:



Advertisements
Similar presentations
Fixed Point Numbers The binary integer arithmetic you are used to is known by the more general term of Fixed Point arithmetic. Fixed Point means that we.
Advertisements

Computer Engineering FloatingPoint page 1 Floating Point Number system corresponding to the decimal notation 1,837 * 10 significand exponent A great number.
Topics covered: Floating point arithmetic CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
Datorteknik FloatingPoint bild 1 Floating point Number system corresponding to the decimal notation 1,837 * 10 significand exponent a great number of corresponding.
Floating Point Numbers
Chapter 3 Arithmetic for Computers. Multiplication More complicated than addition accomplished via shifting and addition More time and more area Let's.
1  2004 Morgan Kaufmann Publishers Chapter Three.
CSE 378 Floating-point1 How to represent real numbers In decimal scientific notation –sign –fraction –base (i.e., 10) to some power Most of the time, usual.
Floating Point Numbers
Computer ArchitectureFall 2008 © August 27, CS 447 – Computer Architecture Lecture 4 Computer Arithmetic (2)
Computer Organization and Architecture Computer Arithmetic Chapter 9.
Computer Arithmetic Nizamettin AYDIN
Computer Arithmetic. Instruction Formats Layout of bits in an instruction Includes opcode Includes (implicit or explicit) operand(s) Usually more than.
Number Systems II Prepared by Dr P Marais (Modified by D Burford)
1 Lecture 5 Floating Point Numbers ITEC 1000 “Introduction to Information Technology”
CEN 316 Computer Organization and Design Computer Arithmetic Floating Point Dr. Mansour AL Zuair.
Number Systems So far we have studied the following integer number systems in computer Unsigned numbers Sign/magnitude numbers Two’s complement numbers.
Computing Systems Basic arithmetic for computers.
ECE232: Hardware Organization and Design
Floating Point. Agenda  History  Basic Terms  General representation of floating point  Constructing a simple floating point representation  Floating.
Floating Point (a brief look) We need a way to represent –numbers with fractions, e.g., –very small numbers, e.g., –very large numbers,
Oct. 18, 2007SYSC 2001* - Fall SYSC2001-Ch9.ppt1 See Stallings Chapter 9 Computer Arithmetic.
Lecture 9: Floating Point
CSC 221 Computer Organization and Assembly Language
Floating Point Arithmetic
Computer Arithmetic Floating Point. We need a way to represent –numbers with fractions, e.g., –very small numbers, e.g., –very large.
Computer Engineering FloatingPoint page 1 Floating Point Number system corresponding to the decimal notation 1,837 * 10 significand exponent A great number.
순천향대학교 정보기술공학부 이 상 정 1 3. Arithmetic for Computers.
CS 232: Computer Architecture II Prof. Laxmikant (Sanjay) Kale Floating point arithmetic.
10/7/2004Comp 120 Fall October 7 Read 5.1 through 5.3 Register! Questions? Chapter 4 – Floating Point.
Cosc 2150: Computer Organization Chapter 9, Part 3 Floating point numbers.
Chapter 9 Computer Arithmetic
William Stallings Computer Organization and Architecture 8th Edition
Floating Point Numbers
Floating Point Representations
Backgrounder: Binary Math
2.4. Floating Point Numbers
Integer Division.
Lecture 9: Floating Point
Topics IEEE Floating Point Standard Rounding Floating Point Operations
Floating Point Number system corresponding to the decimal notation
CS 232: Computer Architecture II
CS/COE0447 Computer Organization & Assembly Language
CS 367 Floating Point Topics (Ch 2.4) IEEE Floating Point Standard
William Stallings Computer Organization and Architecture 7th Edition
Topic 3d Representation of Real Numbers
Luddy Harrison CS433G Spring 2007
ECE/CS 552: Floating Point
CSCE 350 Computer Architecture
Number Representations
EEL 3705 / 3705L Digital Logic Design
CSCI206 - Computer Organization & Programming
Arithmetic Logical Unit
How to represent real numbers
Computer Arithmetic Multiplication, Floating Point
ECEG-3202 Computer Architecture and Organization
October 17 Chapter 4 – Floating Point Read 5.1 through 5.3 1/16/2019
Chapter 8 Computer Arithmetic
Floating Point Numbers
Topic 3d Representation of Real Numbers
Floating Point Numbers
Chapter3 Fixed Point Representation
Numbers with fractions Could be done in pure binary
Number Representations
Lecture 9: Shift, Mult, Div Fixed & Floating Point
Presentation transcript:

How to represent real numbers In decimal scientific notation: 5.280 x 103 sign fraction base (i.e., 10) to some power Most of the time, usual representation 1 digit at left of decimal point Example: - 0.1234 x 106 A number is normalized if the leading digit is not 0 Example: -1.234 x 105 12/2/2018 CSE 378 Floating-point

Real numbers representation inside computer Use a representation akin to scientific notation sign x mantissa x base exponent Many variations in choice of representation for mantissa (could be 2’s complement, sign and magnitude etc.) base (could be 2, 8, 16 etc.) exponent (cf. mantissa) Arithmetic support for real numbers is called floating-point arithmetic 12/2/2018 CSE 378 Floating-point

Floating-point representation: IEEE Standard Basic choices A single precision number must fit into 1 word (4 bytes, 32 bits) A double precision number must fit into 2 words The base for the exponent is 2 There should be approximately as many positive and negative exponents Additional criteria The mantissa will be represented in sign and magnitude form Numbers will be normalized 12/2/2018 CSE 378 Floating-point

Example: MIPS representation of IEEE Standard A number is represented as : (-1)S. F . 2E In single precision the representation is: 8 bits 23 bits s exponent mantissa 31 2322 0 12/2/2018 CSE 378 Floating-point

MIPS representation (continued) Bit 31 sign bit for mantissa (0 pos, 1 neg) Exponent 8 bits (“biased” exponent, see next slide) mantissa 23 bits : always a fraction with an implied binary point at left of bit 22 Number is normalized (see implication next slides) 0 is represented by all zero’s. Note that having the most significant bit as sign bit makes it easier to test for positive and negative 12/2/2018 CSE 378 Floating-point

Biased exponent The “middle” exp. (01111111) will represent exponent 0 All exps starting with a “1” will be positive exponents . Example: 10000001 is exponent 2 (10000001 -01111111) All exps starting with a “0” will be negative exponents Example 01111110 is exponent -1 (01111110 - 01111111) The largest positive exponent will be 11111111, about 1038 The smallest negative exponent is about 10-38 12/2/2018 CSE 378 Floating-point

Normalization Since numbers must be normalized, there is an implicit “one” at the left of the binary point No need to put it in (improves precision by 1 bit) But need to reinstate it when performing operations. In summary, in MIPS a floating-point number has the value: (-1)S . (1 + mantissa) . 2 (exponent - 127) 12/2/2018 CSE 378 Floating-point

Double precision Takes 2 words (64 bits) Exponent 11 bits (instead of 8) Mantissa 52 bits (instead of 23) Still biased exponent and normalized numbers Still 0 is represented by all zeros We can still have overflow (the exponent cannot handle super big numbers) and underflow (the exponent cannot handle super small numbers) 12/2/2018 CSE 378 Floating-point

Floating-Point Addition Quite “complex” (more complex than multiplication) Need to know which of the addends is larger (compare exponents) Need to shift “smaller” mantissa Need to know if mantissas have to be added or subtracted (since it’s a sign/magnitude representation) Need to normalize the result Correct round-off procedures are not simple (not covered in detail here) 12/2/2018 CSE 378 Floating-point

One of the 4 round-off modes Round to nearest even Example 1: in base 10. Assume 2 digit accuracy. 3.1 *100 + 4.6 * 10 -2 = 3.146 * 100 clearly should be rounded to 3.1 * 100 Example 2: 3.1 *100 + 5.0* 10 -2 = 3.15 * 100 By convention, round-off to nearest “even” number 3.2 * 100 Other round-off modes: towards 0, +, - 12/2/2018 CSE 378 Floating-point

F-P add (details for round-off omitted) 1. Compare exponents . If e1 < e2, swap the 2 operands such that d = e1 - e2 >= 0. Tentatively set exponent of result to e1. 2. Insert 1’s at left of mantissas. If the signs of operands differ, replace 2nd mantissa by its 2’s complement. 3. Shift 2nd mantissa d bits to the right (this is an arithmetic shift, i.e., insert either 1’s or 0’s depending on the sign of the second operand) 4. Add the (shifted) mantissas. (There is one case where the result could be negative and you have to take the 2’s complement; this can happen only when d = 0 and the signs of the operands are different.) 12/2/2018 CSE 378 Floating-point

F-P Add (continued) 5. Normalize (if there was a carry-out in step 4, shift right once; else shift left until the first “1” appears on msb) 6. Modify exponent to reflect the number of bits shifted in previous step 12/2/2018 CSE 378 Floating-point

Using pipelining Stage 1 Stage 2 Stage 3 Exponent compare Stage 2 Shift and Add Stage 3 Round-off , normalize and fix exponent Most of the time, done in 2 stages. 12/2/2018 CSE 378 Floating-point

Floating-point multiplication Conceptually easier 1. Add exponents (careful, subtract one “bias”) 2. Multiply mantissas (don’t have to worry about signs) 3. Normalize and round-off and get the correct sign 12/2/2018 CSE 378 Floating-point

Pipelining Use tree of “carry-save adders” (cf. CSE 370) Can cut-it off in several stages depending on hardware available Have a “regular” adder in the last stage. 12/2/2018 CSE 378 Floating-point

Special Values Allow computation to continue in face of exceptional conditions For example: divide by 0, overflow, underflow Special value: NaN (Not a Number; e.g., sqrt(-1)) Operations such as 1 + NaN yield NaN Special values: + and - (e.g, 1/0 is +) Can also use “denormal” numbers for underflow and overflow allowing a wider range of values 12/2/2018 CSE 378 Floating-point