PENGEMBANGAN PELABUHAN PENYEBERANGAN SABUK SELATAN-TENGAH-UTARA SEBAGAI KOMPLEMEN TOL LAUT
ARSITEKTUR SISTEM KOMPUTER - … file–konversi multiplier dan multicand jadi positif, dikalikan;...
Transcript of ARSITEKTUR SISTEM KOMPUTER - … file–konversi multiplier dan multicand jadi positif, dikalikan;...
ARSITEKTUR SISTEM
KOMPUTER
Wayan Suparta, PhD https://wayansuparta.wordpress.com/
3 – 9 April 2018
Penjumlahan dan Pengurangan
Operasi Penjumlahan
Aturan umum
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0, simpan (carry) 1
Operasi
Pengurangan
Aturan Umum
0 – 0 = 0
1 – 0 = 1
1 – 1 = 0
0 – 1 =1 , pinjam 1
Materi 7:
OPERASI
PERKALIAN
DAN
PEMBAGIAN
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
Perkalian biner dilakukan sebagaimana perkalian desimal
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
1001 1101 0111 0100
Booth’s Algorithm
14
Algoritma Booth
• Contoh: 0111 * 0011 = 0001 0101 7 x 3 = 21
M
0111
0111
0111
0111
0111
0111
Algoritma Booth
1 – 0
0 – 1
1 - 0
sub
shift
add
1101
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
E 0
M divisor
A,Q dividend
Count n
Pembagian Komplemen-2
Pembagian-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 quotient
Pembagian 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.
• Remainder ada di A.
• 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 -
0
Langkah:
1. Setiap step A dan Q di geser ke kiri sebanyak 1 bit
2. A=A-M
3. Jika A positif maka Q0 = 1
Jika A negatif maka Q0 = 0 dan restore angka sebelumnya
25
Pembagian Komplemen-2
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. 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
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 1011
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 102 123 x 102
456 x 10-2 + 0,0456 x 102
123,0456 x 102