admin
play

ADMIN Course paper topics due Mon Feb 26 via plain text email - PowerPoint PPT Presentation

ADMIN Course paper topics due Mon Feb 26 via plain text email IC220 Set #10: More Computer Arithmetic (Chapter 3) 1 2 An Arithmetic Logic Unit (ALU) A simple 32-bit ALU C a rry In O p e ra tio n The ALU is the brawn of the


  1. ADMIN Course paper topics – due Mon Feb 26 via plain text email • IC220 Set #10: More Computer Arithmetic (Chapter 3) 1 2 An Arithmetic Logic Unit (ALU) A simple 32-bit ALU C a rry In O p e ra tio n The ALU is the ‘brawn’ of the computer a 0 C a rry In R e s u lt0 A L U 0 b 0 • What does it do? C a rry O u t a 1 C a rry In R e s u lt1 A L U 1 b 1 operation C a rry O u t How wide does it need to be? • a a 2 C a rry In R e s u lt2 A L U 2 b 2 b C a rry O u t • What outputs do we need for MIPS? a 3 1 C a rry In R e s u lt3 1 A L U 3 1 b 3 1 3 4

  2. ALU Control and Symbol Multiplication • More complicated than addition – accomplished via shifting and addition • Example: grade-school algorithm 0010 (multiplicand) ALU Control Lines Function __x_1011 (multiplier) 0000 AND 0001 OR 0010 Add 0110 Subtract 0111 Set on less than 1100 NOR • Multiply m * n bits, How wide (in bits) should the product be? 5 6 Multiplication: Simple Implementation M u ltip lic an d S h ift left 6 4 b its M u ltip lie r 6 4 -bit A L U S h ift rig h t 32 b its P rod uc t C o ntrol te st W rite 6 4 b its 7

  3. Using Multiplication Floating Point • Product requires 64 bits • We need a way to represent – Use dedicated registers – numbers with fractions, e.g., 3.1416 – HI – more significant part of product – very small numbers, e.g., .000000001 – LO – less significant part of product • MIPS instructions – very large numbers, e.g., 3.15576 × × 10 23 × × mult $s2, $s3 • Representation: multu $s2, $s3 – sign, exponent, significand: mfhi $t0 • (–1) sign × mflo $t1 × × × significand × × × 2 exponent(some power) × • Division – Significand always in normalized form: – Can perform with same hardware! (see book) • Yes: div $s2, $s3 Lo = $s2 / $s3 Hi = $s2 mod $s3 • No: divu $s2, $s3 – more bits for significand gives more – more bits for exponent increases 9 10 IEEE754 Standard IEEE 754 – Optimizations Single Precision (float): 8 bit exponent, 23 bit significand • Significand 31 30 29 28 27 26 25 24 23 22 21 20 . . . 9 8 7 6 5 4 3 2 1 0 – What’s the first bit? S Exponent (8 Bits) Significand (23 bits) – So… • Exponent is “biased” to make sorting easier Double Precision (double): 11 bit exponent, 52 bit significand – Smallest exponent represented by: – Largest exponent represented by: 31 30 29 28 . . . 21 20 19 18 17 . . . 9 8 7 6 5 4 3 2 1 0 – Bias values S Exponent (11 Bits) Significand (20 bits) • 127 for single precision 31 30 29 28 . . . 21 20 19 18 17 . . . 9 8 7 6 5 4 3 2 1 0 • 1023 for double precision More Significand (32 more bits) Summary: (–1) sign × • × (1+ (1+ significand) × × 2 exponent – bias × × (1+ (1+ × × 11 12

  4. Example #1: Example #1: Represent -9.75 10 in binary single precision: • -9.75 10 = • Represent -5.75 10 in binary, single precision form: • Strategy – Transfer into binary notation (fraction) – Normalize significand (if necessary) • Compute the exponent: – Compute exponent Remember (2 exponent – bias ) – – Bias = 127 • (Real exponent) = (Stored exponent) - bias – Apply results to formula (–1) sign × (1+ significand) × × 2 exponent – bias × (1+ × × (1+ (1+ × × Formula(–1) sign × • × (1+ (1+ significand) × × 2 exponent – bias × × (1+ (1+ × × 31 30 29 28 27 26 25 24 23 22 21 20 . . . 9 8 7 6 5 4 3 2 1 0 13 Floating Point Complexities MIPS Floating Point Basics • Floating point registers • Operations are somewhat more complicated (see text) $f0, $f1, $f2, …., $f31 • In addition to overflow we can have “underflow” Used in pairs for double precision (f0, f1) (f2, f3), … • Accuracy can be a big problem $f0 not always zero – IEEE 754 keeps two extra bits, guard and round – four rounding modes • Register conventions: – positive divided by zero yields “infinity” – Function arguments passed in – zero divide by zero yields “not a number” – Function return value stored in – other complexities – Where are addresses (e.g. for arrays) passed? Implementing the standard can be tricky • • Load and store: lwc1 $f2, 0($sp) swc1 $f4, 4($t2) 15 16

  5. MIPS FP Arithmetic MIPS FP Control Flow • Addition, subtraction:add.s, add.d, sub.s, sub.d • Pattern of a comparison: c.___.s (or c.___.d) c.lt.s $f2, $f3 add.s $f1, $f2, $f3 c.ge.d $f4, $f6 add.d $f2, $f4, $f6 Where does the result go? • • Multiplication, division: mul.s, mul.d, div.s, div.d • Branching: mul.s $f2, $f3, $f4 bc1t label10 div.s $f2, $f4, $f6 bc1f label20 17 18 Example #1 Example #2 EX: 3-21 … • Convert the following C code to MIPS: • Convert the following C code to MIPS: float max (float A, float B) { void setArray (float F[], int index, if (A <= B) return A; float val) { else return B; F[index] = val; } } 19 20

  6. Chapter Four Summary Chapter Goals • Computer arithmetic is constrained by limited precision • Introduce 2’s complement numbers • Bit patterns have no inherent meaning but standards do exist – Addition and subtraction – two’s complement – Sketch multiplication, division – IEEE 754 floating point Computer instructions determine “meaning” of the bit patterns • Overview of ALU (arithmetic logic unit) • • Performance and accuracy are important so there are many • Floating point numbers complexities in real machines (i.e., algorithms and implementation). – Representation – Arithmetic operations We are (almost!) ready to move on (and implement the processor) – MIPS instructions • 21 22

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend