ARSITEKTUR SISTEM KOMPUTER Wayan Suparta, PhD https://wayansuparta.wordpress.com/ 3 9 April 2018
Penjumlahan dan Pengurangan Operasi Penjumlahan Operasi Pengurangan Aturan umum 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0, simpan (carry) 1 Aturan Umum 0 0 = 0 1 0 = 1 1 1 = 0 0 1 =1, pinjam 1
Materi 7: OPERASI PERKALIAN DAN PEMBAGIAN
Perkalian Operasi pengalian lebih rumit dibandingkan operasi penjumlahan atau pengurangan, baik dalam hardware maupun software. Bila bit multiplier sama dengan 0, maka hasil pengaliannya 0. Bila bit multiplier 1, maka hasil pengaliannya sama dengan mutiplier Pengalian dua buah integer biner n-bit menghasilkan hasil perkalian sampai 2n-bit Ada beberapa jenis algoritma yang digunakan dalam bermacam-macam komputer 4
Perkalian Unsigned Integer Perkalian Biner Perkalian biner dilakukan sebagaimana perkalian desimal 1 0 1 1 Multiplicand (11) x 1 1 0 1 Mutiplier (13) 1 0 1 1 0 0 0 0 Partial 1 0 1 1 Product 1 0 1 1 1 0 0 0 1 1 1 1 Product (143) 5
Pengalian Unsigned Integer Control Logic membaca bit-bit multiplier satu persatu Bila Q 0 = 1, multiplicand ditambahkan ke register A; hasilnya disimpan ke register A; setelah itu seluruh bit di register C, A dan Q digeser ke kanan 1 bit. Bila Q 0 = 0, tidak terjadi penambahan; seluruh bit di register C, A dan Q digeser ke kanan 1 bit. Proses tersebut dilakukan secara berulang untuk setiap bit multiplier Hasil perkalian akhir tersimpan di register A dan Q. Flowchartnya adalah 6
Perkalian Unsigned Integer M=1011 yg diambil selalu Q 0
Perkalian Komplemen-2 Dengan algoritma perkalian di atas 1011 * 1101 = 1000 1111 Perkalian unsigned integer : 11 * 13 = 143 Perkalian komplemen-2 : -5 * -3 = -113 perkalian tidak berfungsi jika multiplicand dan/atau multiplier-nya negatif. Ada beberapa cara untuk menangani hal tersebut: konversi multiplier dan multicand jadi positif, dikalikan; cari komplemen-2 dari hasilnya jika tanda multiplier dan multiplicand berbeda Menggunakan algoritma lain yang tidak memerlukan transformasi, misalnya Algoritma Booth
Perkalian + dan - Perkalian + dengan + seperti perkalian desimal biasa dengan menanbahkan NOL di semua bagian yang kosong. Perkalian dengan seperti perkalian desimal biasa dengan menanbahkan SATU di bagian depan yang kosong.
Multiplying Negative Numbers Ini tidak bekerja! Solusi 1: Konversikan ke positif jika diperlukan Kalikan seperti cara pada perkalian Jika tanda-tanda yang berbeda, komplemen 2-kan jawaban. Solusi 2: Algoritma Booth Booth s Algorithm
Algoritma Booth memiliki kelebihan kecepatan proses perkaliannya, relatif terhadap pendekatan langsung terdapat register Q(multiplier), M(multiplicand), A(accumulator), dan register 1-bit di kanan Q yg ditandai dengan Q -1 hasil perkalian tersimpan di A dan Q A dan Q -1 diinisialisasi 0 control logic memeriksa bit-bit multiplier satu-persatu beserta bit di kanannya Jika kedua bit Q 0 dan Q -1 sama (1 1 or 0 0), maka geser ke kanan satu kali semua bit yang ada di register A,Q, Q -1. Jika bit Q 0 dan Q -1 (0-1) maka multiplicand dijumlahkan dgn A (A + M). Jika bit Q 0 dan Q -1 (1-0) A - M dan hasil disimpan di register A lalu geser 1x. pergeseran menggunakan Arithmetic Shift contoh : 1011 0101 1101 1010
Arithmetic Shift Shift right 1 bit Logika: x >> 3 1001 1101 0001 0011 Shift left 1 bit Logika: x << 2 1001 1101 0111 0100
Booth s Algorithm
Algoritma Booth Contoh: 0111 * 0011 = 0001 0101 M 0111 0111 0111 0111 0111 0111 7 x 3 = 21 14
Algoritma Booth sub shift add 1101 1 0 0 1 1-0
Pembagian Operasi Aritmatika
Pembagian Operasi Aritmatika
Pembagian-Unsigned Binary 1 3 1 1 1 4 7 1 1 3 7 3 3 4
Pembagian-Unsigned Binary Pembagian Komplemen-2 E 0 M divisor A,Q dividend Count n
Pembagian-Unsigned Binary 1001 0011 : 1011 = 000 1101 + 0100 M = 1011 M = 0101 (2 nd -c) remainder E A Q 0 1 0 0 1 0 0 1 1 Initial 1 0 0 1 0 0 1 1 0 Shift Left 0 1 0 1 1 0 1 1 1 A A - M 1 0 1 1 1 0 1 1 1 Set Q 0 0 1 1 1 0 1 1 1 0 Shift Left 0 1 0 1 1 0 0 1 1 A A - M 1 0 0 1 1 1 1 1 1 Set Q 0 0 0 1 1 1 1 1 1 0 Shift Left 0 1 0 1 0 1 1 0 0 A A - M 1 0 1 1 1 0 1 1 1 1 1 1 0 A A + M (restore A) 0 1 1 1 1 1 1 0 0 Shift Left 0 1 0 1 1 0 1 0 0 A A - M 1 0 1 0 0 1 1 0 1 Set Q 0 quotient
Pembagian Komplemen-2 (-7)/(3) dan (7)/(-3) akan menghasilkan remainder yang berbeda. Hal ini disebabkan operasi pembagian didefinisikan sebagai dengan D = dividend Q = quotient V = divisor R = remainder D = Q * V + R
Pembagian Komplemen-2 Muatkan divisor ke M, dividend ke A dan Q. dividend diekspresikan sbg komplemen-2 2n-bit. Geser A dan Q 1-bit ke kiri Bila M dan A memiliki tanda yg sama, lakukan A A M; bila tandanya beda, A A + M Operasi tsb akan berhasil bila tanda A sesudah dan sebelum operasi sama bila berhasil (A dan Q = 0), set Q 0 1 bila gagal (A dan Q <> 0), reset Q 0 0 dan simpan A sebelumnya Ulangi langkah 2 sampai 4 utk setiap posisi bit di Q Bila tanda divisor dan dividend sama maka quotient ada di Q, jika tidak quotient adalah komplemen-2 dari Q. Remainder ada di A.
Pembagian biner dilakukan juga dengan cara yang sama dengan bilangan desimal. contoh : 101/1111101\11001 101-101 101-01 00-10 00-101 101-0 PEMBAGIAN
Langkah: 1. Setiap step A dan Q di geser ke kiri sebanyak 1 bit 2. A=A-M 3. Jika A positif maka Q 0 = 1 Jika A negatif maka Q 0 = 0 dan restore angka sebelumnya
Pembagian Komplemen-2 25
SOAL-SOAL LATIHAN Kerjakan operasi matematis berikut 1. 10010 10001 2. 00100 : 00111 3. 10111 00101 4. 10011 : 01110 5. 10001 10111 6. 10101 00100 7. 10111 : 00101 8. 10101 : 01101 9. 10011 10100 10. 234 10 101 8 11. 100 8 : 0110 2 12. 3A 16 : 135 8 13. A21 16 0111 2 14. 1011 2 111 10 15. 10101 2 : 8B 16 16. 356 8 : 500 10 17. 2C 16 : 130 8 18. 100 8 A1 16
Representasi Floating Poin Operasi Aritmatika
Representasi Floating Point Untuk menuliskan bilangan floating point (bilangan pecahan) dilakukan dengan menuliskan bentuk eksponensial, sehingga bilangan tersebut memiliki bilangan dasar, bilangan pemangkat dan basis bilangan tersebut. Format:
Representasi Floating Point Misal : 976.000.000.000 = 9,76 x 10 11 MENJADI 0,000000000976 = 9,76 x 10-10 Konversi Konversi bilangan floating point berbasis deka ke basis biner harus dilakukan terlebih dahulu sebelum mengubah kedalam representasi floating point.
Contoh 3,75 11,11 Biner 3 = 11 Mengubah 0,75 menjadi biner: 0,75*2= 1,5 ambil nilai didepan koma (1), lalu sisanya kalikan lagi dengan 2 0,5*2 = 1,0 didapat bilangan didepan koma 1 dan sisanya 0 Penulisan bilangan floating point dengan cara eksponensial dapat menyebabkan adanya kemungkinan sebuah bilangan ditulis dengan cara yang bermacam-macam
Standarisasi Penulisan Bilangan Bentuk normalisasi: Bit pertama significand selalu 1 sehingga tidak perlu disimpan dalam field significand. B adalah bilangan biner (1 atau 0). Untuk keperluan yang luas makandiadakan standar bagi representasi bilangan floating point ini, yaitu standar IEEE 754. standar ini juga mendefinisikan operasi aritmetikanya.
Format Penulisan Menurut Standar IEEE 754 Pada format tunggal, bit paling kiri digunakan untuk representasi tanda 0, jika positif dan 1 jika negatif, sedangkan 8 bit berikutnya adalah pangkat (exponen) yang direpresentasikan dalam bentuk bias. Bagian 23 bit terakhir digunakan untuk menunjukkan bit dari bilangan fractionnya.
Contoh Konversi ke format IEEE
Contoh Konversi ke format IEEE
Aritmetika Floating Point Penambahan dan pengurangan a. periksa bilangan-bilangan nol b. ratakan significand c. tambahkan atau kurangkan significand d. normalisasi hasilnya contoh : 123 x 10 2 123 x 10 2 456 x 10-2 + 0,0456 x 10 2 123,0456 x 10 2