DOC PREVIEW
Berkeley COMPSCI 61C - Lecture Notes

This preview shows page 1-2-23-24 out of 24 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 24 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 24 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 24 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 24 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 24 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

PowerPoint PresentationExample: Representing 1/3 in MIPSRepresentation for ± ∞Representation for 0Special NumbersRepresentation for Not a NumberRepresentation for Denorms (1/2)Representation for Denorms (2/2)RoundingIEEE Four Rounding ModesInteger Multiplication (1/3)Integer Multiplication (2/3)Integer Multiplication (3/3)Integer Division (1/2)Integer Division (2/2)Unsigned Instructions & OverflowFP Addition & SubtractionMIPS Floating Point Architecture (1/4)MIPS Floating Point Architecture (2/4)MIPS Floating Point Architecture (3/4)MIPS Floating Point Architecture (4/4)Peer InstructionAs Promised, the way to remember #s“And in conclusion…”CS 61C L16 : Floating Point II (1)Garcia, Fall 2004 © UCBLecturer PSOE Dan Garciawww.cs.berkeley.edu/~ddgarciainst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture 16 – Floating Point II 2004-10-06VP debate… Cheney & Edwardstook off their gloves and both came out strong. Will you just answer the question, please? Both are seasoned orators…cnn.com/2004/ALLPOLITICS/10/05/debate.main/CS 61C L16 : Floating Point II (3)Garcia, Fall 2004 © UCBExample: Representing 1/3 in MIPS•1/3 = 0.33333…10= 0.25 + 0.0625 + 0.015625 + 0.00390625 + … = 1/4 + 1/16 + 1/64 + 1/256 + …= 2-2 + 2-4 + 2-6 + 2-8 + …= 0.0101010101… 2 * 20= 1.0101010101… 2 * 2-2•Sign: 0•Exponent = -2 + 127 = 125 = 01111101•Significand = 0101010101…0 0111 1101 0101 0101 0101 0101 0101 010CS 61C L16 : Floating Point II (4)Garcia, Fall 2004 © UCBRepresentation for ± ∞•In FP, divide by 0 should produce ± ∞, not overflow.•Why?•OK to do further computations with ∞ E.g., X/0 > Y may be a valid comparison•Ask math majors•IEEE 754 represents ± ∞•Most positive exponent reserved for ∞•Significands all zeroesCS 61C L16 : Floating Point II (5)Garcia, Fall 2004 © UCBRepresentation for 0•Represent 0?•exponent all zeroes•significand all zeroes too•What about sign?•+0: 0 00000000 00000000000000000000000•-0: 1 00000000 00000000000000000000000•Why two zeroes?•Helps in some limit comparisons•Ask math majorsCS 61C L16 : Floating Point II (6)Garcia, Fall 2004 © UCBSpecial Numbers•What have we defined so far? (Single Precision)Exponent Significand Object0 0 00 nonzero ???1-254 anything +/- fl. pt. #255 0 +/- ∞255 nonzero ???•Professor Kahan had clever ideas; “Waste not, want not”•Exp=0,255 & Sig!=0 …CS 61C L16 : Floating Point II (7)Garcia, Fall 2004 © UCBRepresentation for Not a Number•What is sqrt(-4.0)or 0/0?•If ∞ not an error, these shouldn’t be either.•Called Not a Number (NaN)•Exponent = 255, Significand nonzero•Why is this useful?•Hope NaNs help with debugging?•They contaminate: op(NaN, X) = NaNCS 61C L16 : Floating Point II (8)Garcia, Fall 2004 © UCBRepresentation for Denorms (1/2)•Problem: There’s a gap among representable FP numbers around 0•Smallest representable pos num:a = 1.0… 2 * 2-126 = 2-126•Second smallest representable pos num:b = 1.000……1 2 * 2-126 = 2-126 + 2-149a - 0 = 2-126b - a = 2-149ba0+-Gaps!Normalization and implicit 1is to blame!RQ answer!CS 61C L16 : Floating Point II (9)Garcia, Fall 2004 © UCBRepresentation for Denorms (2/2)•Solution:•We still haven’t used Exponent = 0, Significand nonzero•Denormalized number: no leading 1, implicit exponent = -126.•Smallest representable pos num:a = 2-149 •Second smallest representable pos num:b = 2-1480+-CS 61C L16 : Floating Point II (10)Garcia, Fall 2004 © UCBRounding•Math on real numbers  we worry about rounding to fit result in the significant field.•FP hardware carries 2 extra bits of precision, and rounds for proper value•Rounding occurs when converting…•double to single precision•floating point # to an integerRQ answer!CS 61C L16 : Floating Point II (11)Garcia, Fall 2004 © UCBIEEE Four Rounding Modes•Round towards + ∞•ALWAYS round “up”: 2.1  3, -2.1  -2•Round towards - ∞•ALWAYS round “down”: 1.9  1, -1.9  -2•Truncate•Just drop the last bits (round towards 0)•Round to (nearest) even (default)•Normal rounding, almost: 2.5  2, 3.5  4•Like you learned in grade school•Insures fairness on calculation•Half the time we round up, other half downCS 61C L16 : Floating Point II (13)Garcia, Fall 2004 © UCBInteger Multiplication (1/3)•Paper and pencil example (unsigned):Multiplicand 1000 8Multiplier x1001 9 1000 0000 0000 +1000 01001000•m bits x n bits = m + n bit productCS 61C L16 : Floating Point II (14)Garcia, Fall 2004 © UCBInteger Multiplication (2/3)•In MIPS, we multiply registers, so:•32-bit value x 32-bit value = 64-bit value•Syntax of Multiplication (signed):• mult register1, register2•Multiplies 32-bit values in those registers & puts 64-bit product in special result regs:-puts product upper half in hi, lower half in lo•hi and lo are 2 registers separate from the 32 general purpose registers•Use mfhi register & mflo register to move from hi, lo to another registerCS 61C L16 : Floating Point II (15)Garcia, Fall 2004 © UCBInteger Multiplication (3/3)•Example:•in C: a = b * c;•in MIPS:-let b be $s2; let c be $s3; and let a be $s0 and $s1 (since it may be up to 64 bits)mult $s2,$s3 # b*c mfhi $s0 # upper half of # product into $s0mflo $s1 # lower half of # product into $s1•Note: Often, we only care about the lower half of the product.CS 61C L16 : Floating Point II (16)Garcia, Fall 2004 © UCBInteger Division (1/2)•Paper and pencil example (unsigned): 1001 Quotient Divisor 1000|1001010 Dividend -1000 10 101 1010 -1000 10Remainder (or Modulo result)•Dividend = Quotient x Divisor + RemainderCS 61C L16 : Floating Point II (17)Garcia, Fall 2004 © UCBInteger Division (2/2)•Syntax of Division (signed):•div register1, register2•Divides 32-bit register 1 by 32-bit register 2: •puts remainder of division in hi, quotient in lo•Implements C division (/) and modulo (%)•Example in C: a = c / d;b = c % d;•in MIPS: a$s0;b$s1;c$s2;d$s3div $s2,$s3 # lo=c/d, hi=c%d mflo $s0 # get quotientmfhi $s1 # get remainderCS 61C L16 : Floating Point II (18)Garcia, Fall 2004 © UCBUnsigned Instructions & Overflow•MIPS also has versions of mult, div for unsigned operands:multudivu•Determines whether or not the product and quotient are changed if the operands are signed or unsigned.•MIPS does not check overflow on ANY signed/unsigned multiply, divide


View Full Document

Berkeley COMPSCI 61C - Lecture Notes

Documents in this Course
SIMD II

SIMD II

8 pages

Midterm

Midterm

7 pages

Lecture 7

Lecture 7

31 pages

Caches

Caches

7 pages

Lecture 9

Lecture 9

24 pages

Lecture 1

Lecture 1

28 pages

Lecture 2

Lecture 2

25 pages

VM II

VM II

4 pages

Midterm

Midterm

10 pages

Load more
Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?