320 likes | 416 Views
ECE 645: Lecture 5. Number Representation Part 2 Little-Endian vs. Big-Endian Representations Floating Point Representations. Required Reading. Endianness, from Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Endianness Behrooz Parhami,
E N D
ECE 645: Lecture 5 Number Representation Part 2 Little-Endian vs. Big-Endian Representations Floating Point Representations
Required Reading Endianness, from Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Endianness Behrooz Parhami, Computer Arithmetic: Algorithms and Hardware Design Chapter 17, Floating-Point Representations
Little-Endian vs. Big-Endian Representation of Integers
Little-Endian vs. Big-Endian Representation A0 B1 C2 D3 E4 F5 67 8916 MSB LSB Little-Endian Big-Endian 0 LSB = 89 MSB = A0 67 B1 F5 C2 E4 D3 address D3 E4 C2 F5 B1 67 MSB = A0 LSB = 89 MAX
Little-Endian vs. Big-Endian Camps 0 LSB MSB . . . . . . address MSB LSB MAX Little-Endian Big-Endian Motorola 68xx, 680x0 Bi-Endian Intel IBM AMD Motorola Power PC Hewlett-Packard DEC VAX Silicon Graphics MIPS Sun SuperSPARC RS 232 Internet TCP/IP
Little-Endian vs. Big-Endian Origin of the terms Jonathan Swift, Gulliver’s Travels • A law requiring all citizens of Lilliput to break their soft-eggs • at the little ends only • A civil war breaking between the Little Endians and • the Big-Endians, resulting in the Big Endians taking refuge on • a nearby island, the kingdom of Blefuscu • Satire over holy wars between Protestant Church of England • and the Catholic Church of France
Little-Endian vs. Big-Endian Advantages and Disadvantages Big-Endian Little-Endian • easier to determine a sign of • the number • easier to compare two numbers • easier to divide two numbers • easier to print • easier addition and multiplication • of multiprecision numbers
Pointers (1) Big-Endian Little-Endian 0 int * iptr; 89 (* iptr) = 8967; (* iptr) = 6789; 67 F5 E4 address iptr+1 D3 C2 B1 A0 MAX
Pointers (2) Big-Endian Little-Endian 0 long int * lptr; 89 (* lptr) = 8967F5E4; (* lptr) = E4F56789; 67 F5 E4 address D3 lptr + 1 C2 B1 A0 MAX
The ANSI/IEEE standard floating-point number representation formats Originally IEEE 754-1985. Superseded by IEEE 754-2008 Standard.
Table 17.1 Some features of the ANSI/IEEE standard floatingpoint number representation formats
1.f 2e f = 0: Representation of f 0: Representation of NaNs f = 0: Representation of 0 f 0: Representation of denormals, 0.f 2–126 Exponent Encoding Exponent encoding in 8 bits for the single/short (32-bit) ANSI/IEEE format 0 1 126 127 128 254 255 Decimal code 00 01 7E 7F 80 FE FF Hex code Exponent value –126 –1 0 +1 +127
Rounding Modes The IEEE 754-2008 standard includes five rounding modes: Round to nearest, ties away from 0 (rtna) Round to nearest, ties to even (rtne) [default rounding mode] Round toward zero (inward) Round toward + (upward) Round toward – (downward)
rtna(x) Round to Nearest Number Rounding has a slight upward bias. Consider rounding (xk–1xk–2 ... x1x0.x–1x–2)two to an integer (yk–1yk–2 ... y1y0.)two The four possible cases, and their representation errors are: x–1x–2 Round Error 00 down 0 01 down –0.25 10 up 0.5 11 up 0.25 With equal prob., mean = 0.125 For certain calculations, the probability of getting a midpoint value can be much higher than 2–l Fig. 17.7 Rounding of a signed-magnitude value to the nearest number.
Directed Rounding: Motivation We may need result errors to be in a known direction Example: in computing upper bounds, larger results are acceptable, but results that are smaller than correct values could invalidate the upper bound This leads to the definition of directed rounding modes upward-directed rounding (round toward +) and downward-directed rounding (round toward –) (required features of IEEE floating-point standard)
Directed Rounding: Visualization Fig. 17.6 Truncation or chopping of a 2’s-complement number (same as downward-directed rounding). Fig. 17.12 Upward-directed rounding or rounding toward +.
Exact result 1 + 2-1 + 2-23 + 2-24 Requirements for Arithmetic Results of the 4 basic arithmetic operations (+, -, , ) as well as square-rooting must match those obtained if all intermediate computations were infinitely precise That is, a floating-point arithmetic operation should introduce no more imprecision than the error attributable to the final rounding of a result that has no exact representation (this is the best possible) Example: (1 + 2-1) (1 + 2-23 ) Rounded result 1 + 2-1 + 2-22 Error = ½ ulp
New IEEE 754-2008 Standard Basic Formats
New IEEE 754-2008 Standard Binary Interchange Formats