OPERASI PERKALIAN

advertisement
CPU ARITHMATIC
Size Representation
(Jumlah Bit)
Berdasarkam Jumlah Bit :::: (Ref : Prosesor Intel)
•
•
•
•
•
•
Nybble : 4 bit
Byte
: 8 bit ------ DB (DEFINE BYTE)
Word
: 16 bit ----- DW (DEFINE WORD)
Double Word : 32 bit --- DD (DEFINE DOUBLE WORD)
Quad Word
: 64 bit --- DQ (DEFINE QUAD WORD)
Ten Bytes
: 80 bit ---- DT (DEFINE TEN BYTES)
Data representation
Berdasarkan Representasi ::::
• Integer Representation
• Floating Point Representation
Berdasarkan Sign (Tanda) ::::
• Unsign (tidak mengenal bilangan negatif)
• Sign (mengenal bilangan positif dan negatif)
Format Integer Representation
• Sign Magnitude
• Complement 1
• Complement 2
Contoh : Representasi 8 bit
+42 des = 00101010
-42 des = 10101010
Contoh : Representasi 8 bit
+42 des = 00101010
-42 des = 11010101
Representasi biner 4 bit
Bil. Desimal
+8
+7
+6
+5
+4
+3
+2
+1
+0
-0
-1
-2
-3
-4
-5
-6
-7
-8
Sign Magnitude
One Complement
Two Complement
ALU (Arithmetic and Logic Unit)
Unit Aritmetika dan Logika merupakan bagian
pengolah bilangan dari sebuah komputer. Di
dalam operasi aritmetika ini sendiri terdiri dari
berbagai macam operasi diantaranya adalah
operasi penjumlahan, pengurangan, perkalian,
dan pembagian.
Mendesain ALU juga memiliki cara yang hampir
sama dengan mendesain enkoder, dekoder,
multiplexer, dan demultiplexer. Rangkaian
utama yang digunakan untuk melakukan
perhitungan ALU adalah Adder.
Ada 2 jenis Adder :
1. Rangkaian Adder yang hanya menjumlahkan
dua bit disebut Half Adder.
2. Rangkaian Adder yang menjumlahkan tiga bit
disebut Full Adder.
3. Rangkaian Adder yang menjumlahkan banyak
bit disebut paralel Adder
Half Adder & Full Adder
SUDAH DIKETAHUI SEBELUMNYA
Parallel Adder
Parallel Adder adalah rangkaian Full Adder yang
disusun secara parallel dan berfungsi untuk
menjumlah bilangan biner berapapun bitnya,
tergantung jumlah Full Adder yang
diparallelkan. Gambar berikut menunjukkan
Parallel Adder yang terdiri dari 4 buah Full
Adder yang tersusun parallel sehingga
membentuk sebuah penjumlah 4 bit.
Penjumlahan Biner
Ada 4 kondisi yang terjadi pada penjumlahan
biner yaitu apabila 0 + 0, 0 + 1, 1 + 0,dan 1 + 1.
Jika yang terjadi adalah 1 + 1, kita tidak dapat
menyatakan hasil jumlah dalam satu digit.
Tetapi kita harus melakukan penyimpanan
(Carry Out) kedalam kolom yang lebih tinggi.
Ini berlaku untuk seluruh sistem bilangan.
Sebagai contoh pada bilangan desimal 2 + 5 =
7 dengan carry out = 0, 9 + 9 = 8 dengan carry
out = 1.
OPERASI PENGURANGAN
diubah dalam operasi penjumlahan
Jika 824d – 278d = 546d akan sama jika
824d + (–278d) = 546d
Negatif bil desimal dengan 2 cara :
komplemen9 dan komplemen 10
Komplemen9
-278d
721d
-278d
Komplemen10
722d
824
721
1 545
1
546
Negatif bil Biner dengan 2 cara :
komplemen1 dan komplemen2
0110
0011
_____ -
0110
1100
_____ +
0110
1101
_____ +
00100101
00001100
_________ ................
Lakukan hal yang sama dengan mengubah
menjadi operasi penjumlahan dengan
komplemen1 dan komplemen2 !
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
START
Algoritma Perkalian
Bilangan Un-Sign
Inisialisasi
Count n à jumlah bit
C: 0, A:0
Q : Multiplier
M : Multipilcand
Register
C
A
C A3 A2 A1 A0
Y
A ← A+M
Q
Q3 Q2 Q1 Q0
Q0 = 1
?
N
SHIFT Right
C←0
n=0
?
Y
Product :
Register A, Q
END
N
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 Perkalian
Q=1101 dan M=1011
C
A
Q
0
0000
1101
inisialisasi nilai
0
0
1011
0101
1101
1110
A←A+M
SHIFT Right, c←0 ----- siklus 1
0
0010
1111
SHIFT Right , c←0 ---- siklus 2
0
0
1101 1111
0110 1111
A←A+M
SHIFT Right , c←0 ---- Siklus 3
1
0
0001
1000
1111
1111
A←A+M
SHIFT Right , c←0 ----- siklus 4
Product di reg A dan Q  10001111b = 143d
ALGORITMA BOOTH
• 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 komplemen ’2 senilai dgn -3d
START
Algoritma Booth
à operasi perkalian
pada bilangan Sign
Inisialisasi
Count n à jumlah bit
A:0, Q-1 :0
Q: Multiplier
M : Multipilcand
Register
A
A3 A2 A1 A0
Q
Q3 Q2 Q1 Q0
Q0 dan Q-1
Sama bit?
N
Q-1
N
Q0 = 1 dan
Q-1 = 0?
Y
Y
A ← A+M
SHIFT right
A3←1
SHIFT Right
N
n=0
?
Y
Product :
Register A, Q
END
A ← A-M
SHIFT right
A3←0
Algoritma Booth Pada Bilangan Sign
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. Pertama kali (Inisialisasi), 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 Right saja).
b. Bila BEDA
1 dan 0 maka multiplikan ditambahkan ke reg A, lalu SHIFT
– insert di A3 dng bit 1
0 dan 1 maka A dikurangi dengan M, lalu SHIFT.
– insert di A3 dng bit 0
Contoh Perkalian Bilangan Sign
Q = 0011 ( 3des) dan M = 1001 (-7des)
A
Q
Q-1
0000
1001
1100
0011
0011
1001
0
0
1
initial
A←A+M
SHIFT Right, A3←1,
1110
0100
1
SHIFT Rihgt, A3←1, ---- siklus 2
0101
0010
0100
1010
1
0
A←A-M
SHIFT Right, A3←0, -------- siklus 3
0001
0101
0
SHIFT Right, A3←0, ----- siklus 4
--- siklus 1
Product di A dan Q  00010101 = + 21d
 Selanjutnta dilakukan komplemen2 menjadi 11101011 = -21d
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,
• Operasi PEMBAGIAN (Division) adalah suatu bentuk
dari pengurangan yang dilakukan berulang-ulang.
• D = V x Q + R dimana D = dividend, V=divisor,
Q=Quotient, R = Remainder
• Proses ini juga dapat dilakukan pada rangkaian
Digital (logika) dengan cara pengurangan dan
penggeseran ke kiri (menggunakan shift left register).
• Algoritma Booth pada Operasi Pembagian dilakukan
seperti Flowchart berikut :
Contoh  Bilangan 7 : 3  quotient = 2, remainder = 1
A
Q
0000
0111
Initial Value
0000
1110
Shift Left
1101
Keterangan
A←A-M
0000
1110
Krn A<0  A←A+M dan Qo←0
0001
1100
Shift Left
1110
A←A-M
0001
1100
Krn A<0  A←A+M dan Qo←0
0011
1000
Shift Left
0000
A←A-M
0000
1001
Krn A≥0  Qo←1
0001
0010
Shift Left
1110
0001
A←A-M
0010
Krn A<0  A←A+M dan Qo←0
Siklus 1
Siklus 2
Siklus 3
Siklus 4
Contoh Lain untuk LATIHAN
• Coba Uraikan Algoritma Booth untuk operasi
Pembagian
5 : 5
5 : 1
TUGAS MTE
1. Tuliskan representasi biner 8 bit dengan Sign Magnitude, komplemen1 dan
Komplemen2 pada bilangan positif dan negatifnya :
42,
47,
52,
57,
62,
67,
72,
77,
82,
87,
92,
97,
102,
107,
112,
117,
122,
126
55
109
2. Urutkan langkah perkalian bilangan sign dengan algoritma Booth:
0001x0111
0011x0111
0101x0111
0111x0111
1001 x 0101
1010x0101
1100x 0101
1101x 0101
0110 x 1000
0110 x 1011
0110x 1111
0110x 1100
0101 x 0100 1000 x 0010
0101 x 0101 1111 x 0010
0101 x 0110
1001x 1100
0110 x 0111 1011x 1010
3. Urutkan langkah pembagian bilangan biner dari bilangan desimal berikut:
7:6
6:6
5:5
7:1
5:1
7:5
6:5
5:4
6:2
4:4
7:4
6:4
5:3
6:1
4:3
7:2
6:3
5:2
7:7
4:2
EXPLANATION
DIVISION PROCESS
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
ALGORITMA PEMBAGIAN LAINNYA :
• Kurangkan bilangan pembagi (Divisor) dari
MSB bilangan yang akan dibagi (Dividend),
lihat hasil pengurangan.
Bila hasil carry-nya 1 atau tandanya 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 hasil carry-nya 0 atau tandanya 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
DIVIDENd+ (-DIVISOR)
PROSES
PEMBAGIAN
=0?
(0000)
Y
PRINT “ HASIL BAGI”
T
GESER KEKIRI
SATU BIT
Y
HASIL
BAGI =
1?
T
DIVIDENd + DIVISOR
END
Perhatikan contoh berikut :
1010 : 410 = 10102 : 1002
+10 des
-4 des
Tambah dgn bil. pembagi
+4 des
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.
Test Pemahaman Diri
1. Tentukan represenstasi sign magnitude, komplemen 1, dan komplemen 2
untuk bilangan desimal berikut :
A. 26, -26, 119. -119
B. 31, -31, 107, -107
2. Kurangkan bilangan biner berikut dengan komplemen 1 dan komplemen 2
A. 01100101 – 00011010
B. 01101010 – 00100111
3. Proses perkalian
A. 1001 x 1110
B. 1010 x 1100
4. Tentukan hasil representasi floating point 32 bit untuk bilangan :
A. – 0,00011000001
B. - 0,00001001101
Download