Computer Arithmatic
Computer Arithmatic
COMPUTER ARITHMETIC
Arithmetic with Signed-2's Complement Numbers Multiplication and Division Floating-Point Arithmetic Operations Decimal Arithmetic Unit Decimal Arithmetic Operations
Computer Organization
Computer Arithmetic
Hardware Implementation
Bs
B Register
Computer Organization
Computer Arithmetic
V Overflow
AC
Algorithm
Subtract Add
Minuend in AC Subtrahend in B
Computer Arithmetic
Multiplication
MULTIPLICATION
Multiplication: B * A; B: Multiplicand; A: Multiplier; P: Partial Product Multiplication of Unsigned Positive Numbers A = An-1An-2 ... A0 B = Bn-1Bn-2 ... B0
P=B*A n-1 = B * ( 2i * Ai )
i=0
Or
B shifted (n-1) bits to the left
Computer Organization
Computer Arithmetic
Multiplication
EXAMPLE
Multiplicand B=10111
SC
Multiplier in Q Q0 = 1; add B First partial product Shift right EAQ Q0 = 1; add B Second Partial Product Shift right EAQ Q0 = 0; shift right EAQ Q0 = 0; shift right EAQ Q0 = 1; add B Fifth partial product Shift right EAQ Final Product in AQ = 0110110101
0 0 0 1 0 0 0 0 0
00000 10111 10111 01011 10111 00010 10001 01000 00100 10111 11011 01101
Computer Organization
Computer Arithmetic
Multiplication
EAQ
B <- Multiplicand B Q <- MultiplierA
Algorithm
As,Qs <- Qs Bs A <- 0, E <- 0 SC <- n-1 = 0 Q =1 0 EA <- A + B shr EAQ SC <- SC+1
END Product in AQ
=0 =0 SC
Computer Organization
Computer Arithmetic
Multiplication
subtract 24
Add 22
Computer Organization
Computer Arithmetic
Multiplication
ashr(AC&Q) SC <- SC + 1 0
SC ? =0 END
Computer Organization
Computer Arithmetic
Multiplication
Q0Q-1 10 11 01
B = 10111 B+1=01001 Initial Subtract B ashr ashr Add B ashr ashr Subtract B ashr
00 10
AC 00000 01001 01001 00100 00010 10111 11001 11100 11110 01001 00111 00011
Q-1 0 1 1 0 0 1
Computer Organization
Computer Arithmetic
Multiplication
ARRAY MULTIPLIER
A = a1a0: Multiplier B = b1b0: Multiplicand C = B * A = c3c2c1c0 c3 a1b1 c2 b1 b0 a1 a0 a0b1 a0b0 a1b0 c1 c0 b1 b0
a0
b1 b0
a1
HA C S
HA C S
c3
Computer Organization
c2
c1 c0
Computer Architectures Lab
Computer Arithmetic
Multiplication
b3
b2
b1
b0
4-bit Adder
Sum and Carry Outputs
a2 b3 b2 b1 b0
Addend
Augend
4-bit Adder
Sum and Carry Outputs
c6
Computer Organization
c5
c4
c3
c2
c1
c0
Computer Architectures Lab
Computer Arithmetic
Division
DIVISION
A/B=Q+R A: Dividend; B: Divisor; Q: Quotient; R: Remainder
Divisor B = 10001, B+ 1 = 01111 E A Q 01110 00000 Dividend: 0 11100 00000 shl EAQ 01111 add B+1 1 01011 E=1 1 01011 00001 Set Q0=1 0 10110 00010 shl EAQ 01111 Add B+1 1 00101 E=1 1 00101 00011 Set Q0=1 0 01010 00110 shl EAQ 01111 add B+1 0 11001 00110 E=0; Q0=0 10001 add B 1 01010 restore remainder 0 10100 01100 shl EAQ 01111 add B+1 1 00011 E=1 1 00011 01101 Set Q0=1 0 00110 11010 shl EAQ 01111 add B+1 0 10101 11010 E=0; Q0=0 10001 add B 1 00110 11010 restore remainder neglect E 00110 remainder in A 11010 quotient in Q Computer Organization SC 5
Computer Arithmetic
Division
Qs As Bs SC<- n - 1 EA A + B+1 1 E 0
A B
EA A+B DVF 1
A<B
EA A+B DVF 0
EA A+B
SC SC-1 0 END (Divide overflow) END (Quotient in Q Remainder in R) Computer Organization Computer Architectures Lab 0
SC
Computer Arithmetic
Bs
BR
Parallel Adder
As A1
AC
Qs
QR
Computer Organization
Computer Arithmetic
As Bs
As Bs 0
+ or - of mantissa
Computer Arithmetic
=0
0
AC <- 0
Computer Organization
Computer Arithmetic
QR <- 0 divide by 0
Qs <- As + Bs Q<-0 SC<-n-1 EA <- A+B+1 1 A>=B A <- A+B shr A a <- a+1 a <- a+b+1 a <- a+bias q <- a Divide Magnitude of mantissa as in fixed point numbers E 0 A<B A <- A+B
Computer Organization
Computer Arithmetic
BCD Arithmetic
BCD ADD
BCD digit < 10 BCD digit + BCD digit + carry =< 19
K 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 Binary Sum Z8 Z4 Z2 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 Z1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 C 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 BCD Sum S8 S4 S2 S1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Computer Architectures Lab
Computer Organization
Computer Arithmetic
BCD Arithmetic
BCD ADDER
If we can convert Binary Sums to BCD Sum , we can use a binary adder to add two BCD numbers SUM =< 9 BCD Sum = Binary Sum BCD Carry = Binary Carry
4-bit Binary Add 1 K 0
19 >= SUM > 9 BCD Sum = Binary Sum + 0110 BCD Carry = Carry(Binary Sum + 0110)
Z4 0 Z2 0
Computer Organization
Computer Arithmetic
BCD Arithmetic
Carry Out
Carry In
BCD Carry
Computer Arithmetic
Decimal Arithmetic
Addition - Identical to the BCD addition - 9s complement and 10s complement are identical to 1s complement and 10s complement, respectively
Computer Organization