OPERASI PERKALIAN.

advertisement
OPERASI PERKALIAN
• Dibanding operasi + dan -, mempunyai
kompleks baik dari Hardware dan Software.
• Coba dikalikan
1011 X 1101 = … ???
Operasi perkalian pada
bilangan integer un-sign
Diagram operasi perkalian
Rule Algoritma :
Control Logic membaca bit-bit multiplier satu
persatu.
1. Jika bit Q0 = 1, maka multiplikan ditambahkan
ke reg A (perintah ADD)
Setelah itu seluruh bit pada reg C, A, Q digeser
kekanan 1 bit ( perintah SHIFT)
2. Bila Q0=0, maka hanya perintah SHIFT saja,
tidak terjadi penambahan.
Contoh Perkalian
pada Bilangan Unsign
1011 X 1101 = … ???
Nilai 1101 disimpan dalam register Q sebagai
Multiplier .
Nilai 1011 disimpan dalam register M sebagai
Multiplikan.
Contoh Hasil
C
0
A
0000
Q
1101
inisialisasi nilai
0
0
1011
0101
1101
1110
ADD
SHIFT ----- siklus 1
0
0010
1111
SHIFT
0
0
1101 1111
0110 1111
1
0
0001
1000
1111
1111
Product di reg A dan Q
ADD
SHIFT
---- siklus 2
---- Siklus 3
ADD
SHIFT ----- siklus 4
• Algoritma di atas, hanya digunakan untuk
bilangan Unsign (Tidak Bertanda).
• Untuk bilangan Bertanda (Sign), yaitu
Bilangan dengan komplemen-2, perlu
ALGORITMA BOOTH.
Contoh :
1101 bilangan unsign senilai dgn 13d
1101 bilangan komplemen2 senilai dgn -3d
Algoritma Booth
1.
2.
Multiplier dan Multiplikan di reg Q dan M
Terdapat 1 reg di sebelah kanan Q0 sehingga
Q3 Q2 Q1 Q0 Q-1
3. Hasil perkalian muncul di reg A dan Q
4. Reg A dan Q-1 diinisialisasi Nol
5. Contol Logic mengecek bit pada Q0 dan Q-1
a. Bila sama
(1 dan 1 atau 0 dan 0), maka bit pada reg A, Q, Q-1 digeser
kekanan 1 bit. (perintah SHIFT saja).
b. Bila BEDA
1 dan 0 maka multiplikan ditambahkan ke reg A, lalu SHIFT
– insert di Q3 dng bit 1
0 dan 1 maka multiplikan dikurangi dengan A, lalu SHIFT.
– insert di Q3 dng bit 0
Contoh jika Q = 0011 ( 3des) dan
M = 1001 (-7des)
A
0000
1001
1100
Q
0011
0011
1001
Q-1
0
0
1
initial
A+M
SHIFT --- siklus 1
1110
0100
1
SHIFT ---- siklus 2
0101
0010
0100
1010
1
0
A-M
SHIFT -------- siklus 3
0001
0101
0
SHIFT ----- siklus 4
Contoh
• Pada Bilangan UnSign
1101x0110
.Pada Bilangan Sign(Komplemen2)
1010x0101
• 128
64 32 16 8 4 2
1
• 32
• 1 0 0 0 1 0 = -30
• dimana +30 = 11110 komplemen 1 = 00001
Komplemen 2 = 00010 JADI SALAH CING
Untuk data 8 bit ==>>>
+30 = 00011110
-30 = ……..???? komplemen 1 = 11100001 ---- komplemen 2 = 11100010
OPERASI PEMBAGIAN
• Kebalikan dari perkalian,
• pembagian (Division) adalah suatu bentuk dari
pengurangan yang dilakukan berulang-ulang.
• proses ini juga dapat dilakukan pada rangkaian
logika dengan cara pengurangan dan
penggeseran ke kiri (menggunakan shift left
register).
Berikut adalah aturan dari pembagian:
• Kurangkan bilangan pembagi (Divisor) dari
MSB bilangan yang akan dibagi (Dividend),
lihat hasil pengurangan.
Bila hasilnya 1 atau positif :
• Berarti hasil pembagian (Product) adalah 1.
Setelah itu hasil pengurangan digeser ke kiri
satu bit, dan dimulai lagi pengurangan oleh
bilangan pembagi (Divisor).
Bila hasilnya 0 atau negatif :
• Berarti hasil pembagian (Product) adalah 0. Dalam
hal ini sebelum digeser ke kiri harus ditambah dulu
dengan bilangan pembagi (Divisor).
• Setelah digeser ke kiri satu bit, dimulai lagi proses
pengurangan oleh bilangan pembagi.
• Pengurangan oleh bilangan pembagi dilakukan
dengan penjumlahan komplemen2.
• Bila dalam penjumlahan tersebut terdapat pindahan
(Carry), maka carry tersebut diabaikan.
FLOWCHART PROSES
PEMBAGIAN
START
DIVIDENT + (-DIVISOR)
PROSES
PEMBA
GIAN
=0?
Y
PRINT “ HASIL BAGI”
T
GESER KEKIRI
SATU BIT
Y
HASIL
BAGI =
1?
T
DIVIDENT + DIVISOR
END
Perhatikan contoh berikut :
1010 : 410 = 10102 : 1002
Tambah dgn bil. pembagi
Catatan : Karena ada hasil pengurangan yang negatif, maka digit yang
dihasilkan setelah itu adalah digit pecahan, sehingga hasil yang benar 10,12
atau 2,510.
Integer Division
• Once you have committed to implementing multiplication, implementing
division is a relatively easy next step that utilizes much of the same
hardware
• Want to find quotient, Q, and remainder, R, such that
D=QxV+R
• Restoring division for unsigned integers
o Algorithm adapted from the traditional “pen and paper” approach
o Algorithm is of time complexity O(n) for n-bit dividend
o Uses essentially the same ALU hardware as the Booth multiplication
algorithm
• » Adder / subtractor unit
• » Double wide shift register AQ that can be shifted to the left
• » Register for the divisor
• » Control logic
• For two’s complement numbers, must deal with the sign extension
“problem”
• Algorithm:
o Load M with divisor, AQ with dividend (using sign bit extension)
o Shift AQ left 1 position
o If M and A have same sign, A<--A-M, otherwise A<--A+M
o Q0<--1 if sign bit of A has not changed or (A=0 AND Q=0),
otherwise Q0=0 and restore *A
o Repeat shift and +/- operations for all bits in Q
o Remainder is in A, quotient in Q
» If the signs of the divisor and the dividend were the same, quotient is
correct, otherwise, Q is the 2’s complement of the quotien
Download