ARSITEKTUR SISTEM
KOMPUTER
Wayan Suparta, PhD
https://wayansuparta.wordpress.com/
Penjumlahan dan Pengurangan
Operasi
Penjumlahan
Aturan umum 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0, simpan (carry) 1Operasi
Pengurangan
Aturan Umum 0 – 0 = 0 1 – 0 = 1 1 – 1 = 0 0 – 1 =1 , pinjam 1Materi 7:
OPERASI
PERKALIAN
DAN
4
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
5
Perkalian – Unsigned Integer
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) Perkalian Biner
6
Pengalian – Unsigned Integer
• Control Logic membaca bit-bit multiplier satu persatu
• Bila Q0 = 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 Q0 = 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
Perkalian – Unsigned Integer
M=1011
yg diambil selalu Q0
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
Booth’s Algorithm
• 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
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 Q0 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 Q0 dan Q-1 (0-1) maka multiplicand dijumlahkan dgn A (A + M). Jika bit Q0 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
14
Algoritma Booth
• Contoh: 0111 * 0011 = 0001 0101
7 x 3 = 21 M 0111 0111 0111 0111 0111 0111Algoritma Booth
1 – 0 0 – 1 1 - 0 sub shift add 1101Pembagian
Pembagian
Pembagian-Unsigned Binary
1 3 1 1 1 4 7 1 1 3 7 3 3 4Pembagian-Unsigned Binary
E 0 M divisor A,Q dividend Count n Pembagian Komplemen-2Pembagian-Unsigned Binary
• 1001 0011 : 1011 = 000 1101 + 0100 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 Q0 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 Q0 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 Q0 M = 1011 M’ = 0101 (2nd-c) remainder quotientPembagian Komplemen-2
• (-7)/(3) dan (7)/(-3) akan menghasilkan
remainder yang berbeda. Hal ini disebabkan operasi pembagian didefinisikan sebagai
D = Q * V + R dengan – D = dividend – Q = quotient – V = divisor – R = remainder
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 Q0 1
– bila gagal (A dan Q <> 0), reset Q0 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.
• Pembagian biner
dilakukan juga dengan cara yang sama dengan bilangan desimal. • contoh :
PEMBAGIAN
101/1111101\11001 101 - 101 101 - 01 00 - 10 00 - 101 101 - 0Langkah:
1. Setiap step A dan Q di geser ke kiri sebanyak 1 bit
2. A=A-M
3. Jika A positif maka Q0 = 1
25
SOAL-SOAL LATIHAN
Kerjakan operasi matematis berikut1. 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. 23410 1018 11. 1008 : 01102 12. 3A16 : 1358 13. A2116 01112 14. 10112 11110 15. 101012 : 8B16 16. 3568 : 50010 17. 2C16 : 1308 18. 1008 A116
Representasi Floating
Poin
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 1011 MENJADI 0,000000000976 = 9,76 x 10-10 KonversiKonversi 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.
Aritmetika Floating Point
Penambahan dan pengurangan
a. periksa bilangan-bilangan nol b. ratakan significand
c. tambahkan atau kurangkan significand d. normalisasi hasilnya