Topic 3 Number Representations and Computer Arithmetics
This topic covers number representation, including signed and unsigned integers, BCD, fixed point, and floating point, and explores how they are manipulated in computer hardware.
Topic 3 Number Representations and Computer Arithmetics
E N D
Presentation Transcript
Topic 3Number Representations and Computer Arithmetics Introduction to Computer Systems Engineering (CPEG 323) cpeg323-08F\Topic3-05F
Outline • Introduction • Number representation and 2’s complement • ALU design • Integer multiplication/division • Real Numbers cpeg323-08F\Topic3-05F
Decoded opcode a ALU ALU 32 result b 32 32 Recap • Review • Steps in executing an instruction? • Fields of an instruction? • Performance? • Base of the operands? • What's up ahead: • Number representation • Arithmetic algorithms • Logic implementation • Instructions cpeg323-08F\Topic3-05F
Reading Up to now, you should have read (or are reading) • Patterson and Hennessy, chapters 1-2 and appendix A New material • Patterson and Hennessy, chapter 3 cpeg323-08F\Topic3-05F
It may get complicated: Numbers Representation • How to represent negative numbers? • What is the range of numbers? • What if a number is out of the range? • How about rational and irrational numbers? • How does hardware add/sub/div/mul these numbers? cpeg323-08F\Topic3-05F
Bits and Numbers • Bits are just bits: NO inherent meaning • conventions define relationship between bits and numbers • How does the hardware know which convention is to use? Add $s1, $s2, $s3 Addu $s1, $s2, $s3 What is the sign of $s1, $s2, and $s3? cpeg323-08F\Topic3-05F
Number Representations • Unsigned integers • Signed integers • BCD (Binary Coded Decimal) • Fixed point • Floating point • Other types of data: • Characters (ASCII, Unicode) • Pixels (graphics) • Groups of bits cpeg323-08F\Topic3-05F
Unsigned Integers • Why unsigned integers? • Memory access, PC, SP, RA • In C, unsigned int • How to represent? • Number your fingers! • Radix number system • Decimal: 10 different symbols: 0 1 2 3 4 5 6 7 8 9 number= cpeg323-08F\Topic3-05F
Unsigned Integers(Radix number system) • In general, k-radix number system number= • How many different di? • What is the biggest number? • What is the smallest one? • Special cases: • 2-radix (binary) • 8 (octal) • 16 (hexademical) • How many different symbols do thy have? cpeg323-08F\Topic3-05F
Unsigned Integers(Radix number system, Cont.) • How to convert binary to octal and hexadecimal? • Example: 010100=(0*22+1*21+0*20)*23+(1*22+0*21+0*20) =2*81+ 4*80= 248 Binary: 000110010100100010110110 1 9 4 8 B 6 Hexadecimal: Octal: 0 6 2 4 4 2 6 6 cpeg323-08F\Topic3-05F
Unsigned Integers(BCD: binary coded decimal) • Representation: 12710 • How many bits necessary for BCD? For binary? • Storage space used ? • Addition • How to determine a carry: “If ai+ bi >10” vs. “If ai+ bi >2” • Which one is more efficient for computer, decimal or binary? cpeg323-08F\Topic3-05F
Signed Integers • How to distinguish a negative number from a positive number ? • How to do so efficiently ? cpeg323-08F\Topic3-05F
Signed Integers (Sign and magnitude) • -12: -(sign) 12(absolute value) • A separate sign bit • A magnitude • For hardware: • Where to put the sign bit? Right or Left? • How to know the sign of addition? (e.g. one extra step ?) • What is the sign of 0? (positive and negative 0 ?) cpeg323-08F\Topic3-05F