By Wannarat Computer System Design Lecture 3 Wannarat Suntiamorntut
By Wannarat Arithmetic for Computer Implementing the Architecture
By Wannarat The numbers Binary number (base 2) numbers are finite (overflow) fraction and real number negative number e.g., No MIPS subi instruction, addi can add a negative number
By Wannarat Possible Representations Sign MagnitudeOne’s complementTwo’s complement 000 = = = = = = = = = = = = = = = = = = = = = = = = -1 Negative and Invert are different!
By Wannarat Addition & Subtraction { } = 0001 two’s complement = 0001 Overflow n-bit does not yield an n-bit number
By Wannarat Detecting overflow No overflow when add positive&negative No overflow when signs are the same for subtraction Overflow occur when : - add two positives yield a negative - add two negative gives a positive - subtract negative from positive and get negative - subtract positive from negative get a positive
By Wannarat Effect of Overflow Exception occur (Interrupt) - control jumps to predefined address for exception - Interrupted address is saved Don’t always to detect overflow - New MIPS instructions: addu, addiu...
By Wannarat ALU Build ALU support andi, ori instructions
By Wannarat Multiplexor Select one of the inputs to be output, base on control input
By Wannarat ALU for Addition instruction Cout = ab + bc in + ac in Sum = a xor b xor c in
By Wannarat ALU for Subtraction instruction Two’s complement approach : just negative b and ADD
By Wannarat Supporting slt
By Wannarat
MIPS Arithmetic Instruction format
By Wannarat Conclusion ALU in MIPS Use multiplexor to select output we want efficiently perform subtraction using two’s complement replicate 1-bit ALU to 32-bit ALU
By Wannarat Computation Problem :fast adder 32-bit ALU faster than 1-bit ALU? Carry-lookahead adder g = ab,p = a + b c1 = g0 + p0c0 c2 = g1 + p1c1c2 c3 = g2 + p2c2c3...
By Wannarat
Part II : Lecture III
By Wannarat Multiplication 0010(multiplicand) x1011 (multiplier) ????
By Wannarat Unsign Combinational Multiplier
By Wannarat Multiplication : First Version (Unsign)
By Wannarat Multiplication : First Version (contd.)
By Wannarat Analyze First Version 1 clock per cycle 50 % of bit in multiplicand always = 0 => 64-bit adder is wasted 0’s inserted in left of multiplicand as shifted => lead significant bits of product never changed once formed
By Wannarat Multiplication : Second Version
By Wannarat Multiplication : Second Version (Contd.)
By Wannarat Analyze Second Version Product register wasted space that exactly matches size of multiplier Combine Multiplier register and Product register
By Wannarat Multiplication : Third Version
By Wannarat Multiplication : Third Version (Contd.)
By Wannarat Analyze Third Version 2 steps per bit because multiplier & product combined MIPS registers Hi, Lo are left and right half of product
By Wannarat Booth’s Algorithm
By Wannarat Example : 2 x 7
By Wannarat Example : 2 x -3
By Wannarat Shifter : 2 kinds
By Wannarat Part III : Lecture III
By Wannarat Divide
By Wannarat Divide : First Version
By Wannarat Divide : First Version (Contd.)
By Wannarat Analyze First Version 50%bits in divisor always 0 =>1/2 of 64-bit adder is wasted => 1/2 divisor is wasted 1 step cannot produce a 1 in quotient bit => Switch order to shift first
By Wannarat Divide : Second Version
By Wannarat Divide : Second Version (Contd.)
By Wannarat Analyze Second Version Eliminate Quotient register by combining with Remainder as shifted left
By Wannarat Divide : Third Version
By Wannarat Divide : Third Version (Contd.)
By Wannarat Analyze Third Version Do Analyze by yourself
By Wannarat Floating Point : IEEE754
By Wannarat Floating-point Representation = -3/4 = -3/2 2 = -11/ 2 2 = -0.11= -1.1x 2 -1 = (-1) s x (1 + signifiand) x 2 (exponent-127) = (-1) x ( ) x 2 ( ) S E M 1-bit 8-bit 23-bit
By Wannarat Floating-point Addition x x10 -1 Step1 : Change exponent as : x = x 10 1 Step2 : Add significands (10) (10) (10) Sum = x 10 1
By Wannarat Floating-point Addition x x10 -1 Step3 : correct it (normalization) : x 10 1 = x 10 2 Step4 : Four digits for significand x 10 2
By Wannarat Example Floating- point Addition ( ) 0.5 = 1/2 = 1/2 1 = 0.1 x 2 0 = 1.00 x = -7/16 = -7/2 4 = = x 2 -2 step 1 : x 2 -1 step 2 : 1.0x ( x 2 -1 )=0.001 x 2 -1 step 3 : 1.0 x 2 -4 step 4 :
By Wannarat Multiplication Floating-point Study in Text Book by yourself.
By Wannarat Next on Lecture 4