decimal layouts for ieee 754: binary-integer decimal?speleotrove.com/decimal/754r3.pdf · ieee 754...

61
Binary-Integer Decimal? IEEE 754 14 July 2005 Eric Schwarz Mike Cowlishaw Mark Erle

Upload: truongduong

Post on 09-Sep-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

Binary-Integer Decimal?

IEEE 754 – 14 July 2005

Eric SchwarzMike CowlishawMark Erle

Page 2: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

2

Overview

• Why we didn’t propose binary-integer decimal formats– prior experience and measurements– as explained in Arith15 paper, in 2001

• Costs of conversions to software formats

• Critical operations

Copyright © IBM 2005. All rights reserved.

Page 3: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

3

The decimal model

• 754r: a significand ‘…is a string of digits…’

• 754r decimals make it possible to have languages with a single numeric type (for both integers and floating-point)– there is more than arithmetic to be done

• We must “design computers for the way people are rather than hope that people will adapt to computers” WMK 6/2005

Page 4: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

4

BigInteger (binary) significands

• BigInteger significands are good for multiply

• For other operations they have no advantage, and often have very significant disadvantages, as shown by plentiful existing experience– that’s why decNumber has chunks base 10n

• BigIntegers make simple things hard …

Page 5: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

5

BigInteger significand problems

• Counting digits needs full-width comparison• Aligning an operand, shifting, or rounding all

require multiplications (or a division)• Conversions (string, BCD, Oracle ...)

need multiple multiplications (or divides)

• Unexpected performance characteristics lead programmers to choose the wrong algorithms; we should help programmers, not confuse them

Page 6: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

6

Java BigDecimal (1996)

• Based on BigInteger, as BigInteger is a highly-tuned class; the assumption was that this would lead to a fast BigDecimal

• Experience: – good performance for simple multiply– very poor rounding and conversions– continuing customer complaints

Page 7: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

7

BigDecimal, using BigInteger

0

0.5

1

1.5

2

2.5

mic

rose

cond

s

BD fromString

BD toString

AddX=X+1

Quantize SimpleMultiply

RoundedMultiply

(9-digit operands, Java 1.5 BD on JVM 1.4, WinXP, P4 3GHz.)

Page 8: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

8

BigDecimal, using base-10

• Byte-per-digit implementation– prototype for Java 5 decimal enhancements– open source (1999, google: decimalj)

– not performance-tuned– slow multiply (n 2 effect)

… even so, significantly faster than BigInteger-BigDecimal on SPECjbb2005

Page 9: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

9

BigDecimal, using base-10

0

0.5

1

1.5

2

2.5

3

mic

rose

cond

s

BD fromString

BD toString

AddX=X+1

Quantize SimpleMultiply

RoundedMultiply

(9-digit operands, IBM decimalj BD on JVM 1.4, WinXP, P4 3GHz.)

Page 10: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

10

BigDecimal comparison

0

0.5

1

1.5

2

2.5

3

mic

rose

cond

s

BD fromString

BD toString

AddX=X+1

Quantize SimpleMultiply

RoundedMultiply

BigInteger digits

Page 11: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

11

Itanium-optimized (binary significand)

0

10

20

30

40

50

60

70

cycl

es

fromBCD

to BCD Add Quantize SimpleMultiply

RoundedMultiply

?

<

(est)

(Intel figures except rounded multiply, from presentations to 754r committee, 3/2005.)

Page 12: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

12

Another BigInt implementation

• C# decimal has a binary significand– implemented in C– fixed-size, 128-bit, format– significand is 3-element int32 array– rounds at binary boundary (96 bits)– similar characteristics to BigInteger-based

Java BigDecimal

Page 13: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

13

C# decimal – using int array

00.10.20.30.40.50.60.70.8

mic

rose

cond

s

Numfrom

String

Num toString

AddX=X+1

Quantize SimpleMultiply

RoundedMultiply

(est)

(16-digit operands, .Net 1.1.4322, WinXP, P4 3GHz.)

Page 14: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

14

Chunking with a 10n base

• Good performance on decimal-specific operations and also good performance on arithmetic – tuneable by changing n

• Performance characteristics match programmer expectations (human-friendly)

• n=4 is optimal for 32-bit machines; n=3 is almost as good and maps to declets

Page 15: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

15

decNumber – a C package

• Generic, fully dynamic (p, emax, rounding, etc.), precision up to 109 digits

• Licensed since 2001, now Open Source and commercial product (754r formats since 2/2003)

• Performance-tuned for Intel Pentium

• Chunk size selectable (1–9) at compile-time

Page 16: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

16

Chunking with a 103 base

00.050.1

0.150.2

0.250.3

0.350.4

mic

rose

cond

s

Numfrom

String

Num toString

AddX=X+1

Quantize SimpleMultiply

RoundedMultiply

(16-digit operands, decNumber 3.25, WinXP, P4 3GHz.)

Page 17: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

17

Decimal chunking vs. 96-bit integer

00.10.20.30.40.50.60.70.8

mic

rose

cond

s

Numfrom

String

Num toString

AddX=X+1

Quantize SimpleMultiply

RoundedMultiply

decNumber n=3 C#

Page 18: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

18

Chunking with a 10n base

• Current code uses binary chunks; a mistake– slows conversions and rounding significantly

• Better would be to use n=3 or n=6 encoded as BCD (conversions and rounding then as good as n=1)

• Either is better overall than big binary integers, and is suitable for any architecture (decNumber runs on cellphones upwards)

Page 19: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

19

Decimal chunking vs. big integer

00.10.20.30.40.50.60.70.8

mic

rose

cond

s

Numfrom

String

Num toString

AddX=X+1

Quantize SimpleMultiply

RoundedMultiply

decNumber n=3 BCD n=3 C#

(Projected BCD figures)

Page 20: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

20

Cost of conversions

Page 21: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

21

Cost of conversions

• The benchmarks in BID-rationale are limited

• ‘Telco’ is a simplification of a traditional commercial mix; it is neither a modern nora general workload– exact, aligned, unrounded, arithmetic (+, ×)– simplest (quantize) rounding (no digit counting)– only one conversion, of few digits

Page 22: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

22

Cost of conversions

• The comparison is based on arithmetic algorithms “that are specially designed for some particular class of architecture”

(BID Rationale June 17)

• “The fact that BID allows for short cuts isa crucial factor in its outstanding performance” (BID Rationale July 12)

– ‘Telco’ is extraordinary in that almost all operations allow these short cuts

Page 23: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

23

Cost of conversions

• Without the fast binary hardware support, or with more general calculations, the reported advantage disappears

• In any case, ‘Telco’ has no requirement to convert to and from a format on every operation– software can, of course, use whatever internal

format is best for the platform

Page 24: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

24

Cost of conversions

• Further, the study does not show the cost of converting BigInteger (BID) format to decimal formats

• As one example of that, we’ve written a 64-bit BID conversion module for decNumber, so the conversion costs can be measured separately from arithmetic– not the worst case, as target is binary chunks

Page 25: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

25

decNumber modules

decNumberarithmetic package

(human-friendly, software-friendly 10n chunked internal format)

decimal128

decimal64

decimal32

packed BCD

(open source)

Page 26: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

26

decNumber modules

decNumberarithmetic package

(human-friendly,software-friendly 10n chunked internal format)

decimal128

decimal64

decimal32

packed BCD

BID 64-bit

Page 27: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

27

16 digit conversions (n=3)

00.050.1

0.150.2

0.250.3

0.350.4

FromdecNumber

TodecNumber

mic

rose

cond

s

754r formatBID format

(16-digit operands, decNumber 3.25, DECDPUN=3, WinXP, P4 3GHz.)

Page 28: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

28

‘Telco’ variant (from May meeting)

• ‘Toy compiler’ variant – inner-loop variables convert, only 3 temporaries allowed– adds to base benchmark 14.5 conversions for

every 9 operations

• Measured base benchmark (‘optimized’), and also ‘toy’ variant with conversions to/from 754r decimal64 format and BID64 format (at various chunk sizes)

Page 29: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

29

‘Telco toy’ timings

0

1

2

3

4

5

6

n=1(digits)

n=3(declets)

n=9

mic

rose

cond

s pe

r ite

m

optimized754r formatBID format

(I/O not included, is ~ 0.46µs in all cases)

(decNumber 3.25, GCC, WinXP, P4 3GHz.)

Page 30: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

30

Critical operations

Page 31: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

31

Critical operations

• Many programming languages have only one numeric type, often decimal

• This is the preferred model for future applications programming (no need to know about binary limits, no quiet overflow)– binary int, long, etc. are not exposed– traditional ‘integer’ operations use decimal

Page 32: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

32

Shifting

• Used when assembling numbers1 800 1234567

(1 << 10) + (areacode << 7) + localcode

… or for extracting parts of them

areacode = rem( tele >> 7, 1000)

Page 33: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

33

Bit manipulation

• Multiple flags stored in a number (e.g., a state machine, 754 exception flags, etc.)

A B C D E

Page 34: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

34

Bit manipulation

• Multiple flags stored in a number (e.g., a state machine, 754 exception flags, etc.)

A B C D E1 0 1 0 1

written and stored as the (decimal) number 10101

Page 35: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

35

Bit manipulation

• Multiple flags stored in a number (e.g., a state machine, 754 exception flags, etc.)

A B C D E1 0 1 0 1

operations on 10101-style numbers:– logical operations (and, or, xor, not)– extract, clear, set, or test a flag

Page 36: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

36

Storing and retrieving 10101

• Declets with DPD: each low order decimal digit bit is unencoded (including the one in the combination field). Not even a lookup needed: …00100000010000001

and, or, xor, not, test, set, etc., are trivial in hardware or software

• Binary significand: …0010011101110101

Page 37: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

37

Counting digits

• Needed for overflow and underflow detection, rounding, etc.

• With a decimal significand this is simple– first non-zero digit

• With BigIntegers, first non-zero is just an estimate; an almost full-width comparison is also needed (after a 34-digit multiply, this is very wide: 194 bits)

Page 38: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

38

Overflow and Underflow

• n = count of significand digits

• Overflow occurs when:

result-exponent + n > Emax + 1

• Similar calculations are needed in several other places, for subnormal and underflow detection, etc.

Page 39: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

39

Rounding

• Quantize is relatively simple (the exponent change is easy to calculate)

• Rounding to n digits is harder– must count total digits first

• When digits are directly accessible, rounding is inspect-shift-add; BigIntegersneed at two multiplies, and more

Page 40: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

40

Rounding to 16 digits – decimal

1234567890123456 × 6543210987654321

8078038183661009782044541853376

Page 41: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

41

Rounding to 16 digits – decimal

1234567890123456 × 6543210987654321

8078038183661009782044541853376

Count 16 digits

Page 42: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

42

Rounding to 16 digits – decimal

1234567890123456 × 6543210987654321

8078038183661009782044541853376

Count 16 digits Inspect next digit (and zero-detect the others in 10% of cases)

Page 43: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

43

Rounding to 16 digits – decimal

1234567890123456 × 6543210987654321

8078038183661009782044541853376

Count 16 digits These digits do not have to be stored once calculated, just note if all zero; this can save almost half the buffer or register width

Page 44: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

44

Rounding to 16 digits – decimal

1234567890123456 × 6543210987654321

8078038183661009782044541853376

Count 16 digits These digits do not have to be stored once calculated, just note if all zero

Round up may cause a carry (all-9s case). This is trivial to detect in decimal.

Page 45: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

45

Rounding to 16 digits – binary

462D53C8ABAC0 × 173F04069C0CB1

65F58C92AF4E66A42FA9AC1EC0

Count 16 digits?

Page 46: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

46

Rounding to 16 digits – binary

462D53C8ABAC0 × 173F04069C0CB1

65F58C92AF4E66A42FA9AC1EC0

• Must calculate all but 16 bits (almost full-width) – always

• Then (after leading-1 detect) carry out same-width comparison to find rounding point (compare against 1000000… etc.)

Page 47: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

47

Rounding to 16 digits – binary

462D53C8ABAC0 × 173F04069C0CB1

65F58C92AF4E66A42FA9AC1EC0

• Must calculate almost full-width – always

• Carry out wide comparison to find rounding point

• Divide by 10x to shift – with accurate remainder (or equivalent operation: two multiplies plus subtract and correct)

Page 48: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

48

Rounding to 16 digits – binary

462D53C8ABAC0 × 173F04069C0CB1

65F58C92AF4E66A42FA9AC1EC0

• Must calculate almost full-width – always

• Carry out wide comparison to find rounding point

• Divide by 10x to shift – with accurate remainder

• Compare remainder with 10x/2 (50000….)

Page 49: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

49

Rounding to 16 digits – binary

462D53C8ABAC0 × 173F04069C0CB1

65F58C92AF4E66A42FA9AC1EC0

• Must calculate almost full-width – always

• Carry out wide comparison to find rounding point

• Divide by 10x to shift – with accurate remainder

• Compare remainder with 10x/2

• If rounding up, another 16-digit compare is needed to detect any carry (the all 9s case)

Page 50: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

50

Rounded addition

• A simple, common addition such as 1.234567890123456 + 23.45678901234567 requires (with a binary significand):– a multiply (or two shifts and and add) to align– at least two compares, two multiplies, and a

subtract to round

• With BCD-based addition, the shifting and inspections are simple

Page 51: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

51

Summary

• Binary significands only have a useful advantage for unrounded multiplication

• They are bad for other decimal operations, conversions, and general calculations (where most results need rounding)

• They are not suitable for a general-purpose encoding

Page 52: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

52

Page 53: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

53

BID format-specific problems

Page 54: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

54

Out-of-range significands

• Binary significands are not naturally bounded to decimal digits; e.g., for BID-32, the integer significand can be as large as 10485759; maximum allowed is 9999999

• Operands must be compared against Smax before use – an almost full-width comparison – then cleared if too large– slows either software or hardware

Page 55: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

55

BID-128 complexity

• BID-34 has values up to9999999999999999999999999999999999(== 0x1ED09BEAD87C0378D8E63FFFFFFFF)yet is still defined to have two forms of exponent:

… even though valid significands fit in 113 bits

exponent

exponent

s

s 11

……

Page 56: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

56

‘Moving’ exponent fields

• Depending on the most significant bit of the significand, the exponent in a format either immediately follows the sign or is shifted two bits

• Exponent difference calculation is on the critical path for addition

exponent

exponent

s

s 11

……

Page 57: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

57

Simple exponent difference

Exponent A Exponent B

Calculate A–B Calculate B–A

2-way Select

Page 58: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

58

‘Moving-exponent’ difference

Exponent A

A–B A–B’ A’–B A’–B’ B–A B–A’ B’–A B’–A’

8-way Select

Exponent B’Exponent BExponent A’

Page 59: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

(Benchmark conditions)

• Hardware: Shuttle X, 3 GHz Pentium 4, 1GB RAM, 120 GB HD

• OS: Windows XP SP 2

• Decimal package: decNumber v. 3.25 – (also BID format decimal64)

• Compiler: GCC version 3.2 (MinGW 20020817-1)

Page 60: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

60

Criteria for hardware decimals

• <1% cycle counts no need for anyimprovement

• <10% cycle counts optimized softwarelibrary is fine

• 10-30% cycle counts borderline for 10xbetter hardware

• >30% cycle countss borderline for >4xhardware support

(Intel, 3/2005)

Page 61: Decimal Layouts for IEEE 754: Binary-Integer Decimal?speleotrove.com/decimal/754r3.pdf · IEEE 754 – 14 July 2005 ... advantage, and often have very significant disadvantages,

61

‘Telco’ results (on Itanium)

• decNumber: 83% Telco as-is

• Optimized: 77% Fast Telco + DPD57% Fast Telco in BID45% Fast Telco

(from BID paper, June 17)