Tugas Arsitektur Komputer Aritmatika Komputer
Disusun oleh : 10107237
Lazuardi Qayuma Indradarma
10107261
Febri Ariansyah
10107271
Novrizal Faris M
Kelas Kelas I F .6
J URUS URUSAN TEKNI K INF ORMATIKA RMATIK A UNIVERS UNI VERSII TAS KOMPUTER KOMPUTER I NDO NDONESI NESI A 2009
Kata Pengantar
Dengan mengucapkan syukur kehadirat Allah SWT akhirnya makalah tugas Pemodelan dan Simulasi dengan tema Peramalan dengan Model Exponensial Smooting ini dapat diselesaikan tepat waktu sesuai jadwal yang ditentukan. Shalawat dan salam semoga terlimpah kepada junjunan kita Nabi Muhammad SAW. Terima kasih dan penghargaan yang sebesar-besarnya kami sampaikan kepada semua pihak yang telah membantu dalam penyusunan makalah ini baik secara langsung atau pun tidak.Harapan yang besar adalah agar makalah ini dapat bermanfaat khususnya bagi kami dan umumnya kepada masyarakat. Kami menyadari banyak kekurangan dan kelemahan dalam makalah ini.Oleh karena itu kami mengharapkan kritik dan masukan dari semua pihak untuk penyempurnaan makalah selanjutnya.Semoga makalah ini bermanfaat bagi kita semua. Bandung, 8 Januari 2010
Penyusun
i
Daftar isi
Kata Pengantar ............................................................................................................................................................. i Daftar isi ...................................................................................................................................................................... ii BAB 1
ARITMATIKA KOMPUTER ................................................................................................................ 1
1.1
ARITMATHIC AND LOGIC UNIT (ALU) ........................................................ ............................................. 1
1.2
ADDER ................................................................................................................................................... 1
1.3
HALF ADDER .......................................................................................................................................... 1
1.4
FULL ADDER .............................................................. ................................................................. ............ 2
1.5
PARALEL ADDER .................................................................................................................................... 4
1.6
PENJUMLAHAN ..................................................................................................................................... 4
1.6.1
Penjumlahan Biner .......................................................... ................................................................. . 5
1.6.2
Penjumlahan 8421BCD ..................................................................................................................... 6
1.7
PENGURANGAN..................................................................................................................................... 7
1.7.1
Pengurangan Bilangan Desimal ........................................................... ............................................. 7
1.7.2
Pengurangan Bilangan Biner ............................................................................................................ 9
1.8
PERKALIAN.............................................................................................................................................. 11
1.9
PEMBAGIAN ............................................................................................................................................ 13
BAB 2
FLOATING POINT ARITHMETIC ...................................................................................................... 14
2.1
BENTUK BILANGAN FLOATING POINT ........................................................................................................... 14
2.2
MACAM MACAM BENTUK BILANGAN FLOATING POINT ..................................................................................... 15
2.3
ARITMETIKA FLOATING POINT PENJUMLAHAN / PENGURANGAN ....................................................................... 16
2.4
PERKALIAN.............................................................................................................................................. 17
2.5
PEMBAGIAN ............................................................................................................................................ 18
2.6
FLOATING POINT STANDARD IEEE .................................................................................................. ............. 19
2.7
IEEE SINGLE PRECISION FORMAT................................................................................................................. 20
2.8
IEEE DOUBLE PRECISION FORMAT .............................................................................................................. 21
BAB 3
ARITMATIKA FIXED-POINT ............................................................................................................ 22 22
3.1
DEFINISI ................................................................................................................................................. 22
3.2
NOTASI .................................................................................................................................................. 23
3.3
REPRESENTASI BILANGAN FIXED-POINT .............................................................. ................................ 24
3.4
MEMBANDINGKAN FIXED-POINT DAN FLOATING-POINT ................................................................... 24
3.5
ARITMATIKA FIXED-POINT .............................................................. ..................................................... 25
3.6
OVERFLOW DAN UNDERFLOW ................................................................. ........................................... 25
3.6.1
MENDETEKSI OVERFLOW ........................................................... ..................................................... 25
3.7
PRESISI GANDA ......................................................... ................................................................. .......... 26
3.8
ARITMATIKA PRESISI GANDA .......................................................... ..................................................... 26
BAB 4
KESIMPULAN.................................................................................................................................27
ii
Daftar Tabel .................................................................................................................................... ................................................................................... ............. 2 Tabel 1.1 .............................................................. Tabel 1.2 .............................................................. .................................................................................................................................... ................................................................................... ............. 3
iii
Daftar Gambar
iv
BAB 1
ARITMATIKA KOMPUTER 1.1
ARITMATHIC AND LOGIC UNIT (ALU)
Unit Aritmetika dan Logika merupakan bagian pengolah bilangan dari sebuah komputer. Di dalam operasi aritmetika ini sendiri terdiri dari berbagai macam operasidiantaranya operasidiantaranya adalah operasi penjumlahan, pengurangan, perkalian, dan pembagian. Mendesain ALU juga memiliki cara yang hampir sama dengan mendesain mendesain enkoder, dekoder, multiplexer, dan demultiplexer. Rangkaian utama yang digunakan untuk melakukan perhitungan ALU adalah Adder. 1.2
ADDER
Rangkaian ALU ( Arithmetic and Logic Unit ) yang digunakan untuk menjumlahkan bilangan dinamakan dinamakan dengan dengan Adder . Karena Adder digunakan untuk memproses operasi aritmetika, maka Adder juga juga sering disebut disebut rangkaian kombinasional kombinasional aritmetika. ALU akan dijelaskan lebih detail pada bab 3. 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. 1.3
HALF ADDER
Rangkaian half adder merupakan dasar penjumlahan bilangan biner yang masingmasing hanya terdiri dari satu bit, oleh karena itu dinamakan penjumlah tak lengkap. 1
1. Jika A=0 dan B=0 dijumlahkan, dij umlahkan, hasilnya S ( Sum) = 0. 2. Jika A=0 dan B=1 dijumlahkan, dij umlahkan, hasilnya S ( Sum) = 1. 3. Jika A=1 dan B=1 dijumlahkan, dij umlahkan, hasilnya S ( Sum) = 0. dengan nilai pindahan Cy(Carry Out ) = 1. Dengan demikian, half adder memiliki 2 masukan (A dan B) dan dua keluaran (S danCy). A
B
S
Cy
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
Tabel 1.1
Dari tabel diatas, terlihat bahwa nilai logika dari Sum sama dengan nilai logika dari gerbang XOR, sedangkan nilai logika Cy sama dengan nilai dari gerbang logika AND. Dari tabel tersebut, dapat dibuat rangkaian half adder seperti pada gambar berikut:
Gambar 1-1
1.4
FULL ADDER
Full adder mengolah penjumlahan untuk 3 bit bilangan atau lebih (bit tidak terbatas),
oleh karena itu dinamakan rangkaian penjumlah lengkap. Perhatikan tabel kebenaran dari Full adder berikut berikut : 2
A
B
C
S
Cy
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
Tabel 1.2
Dari tabel diatas dapat dibuat persamaan boolean sebagai sebagai berikut : S=ABC+ABC+ABC+ABC S=AÅBÅC Cy = A B C + A B C + A B C + A B C Dengan menggunakan peta karnaugh, Cy dapat diserhanaka di serhanakann menjadi : Cy = AB + AC + BC
3
Gambar 1-2
1.5
PARALEL ADDER
Parallel Adder adalah rangkaian Full Adder yang disusun secara parallel dan
berfungsi untuk menjumlah bilangan 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 penjumlahbit. 1.6
PENJUMLAHAN
Komputer hanya dapat melakukan proses aritmetika menggunakan menggunakan bilangan biner. Semua sistem bilangan harus diubah terlebih dahulu ke biner agar dapat diproses. Proses yang biasa dilakukan oleh komputer untuk menjumlahkan sistem bilangan desimal biasanya adalah menyandikan ke 8421BCD terlebih dahulu sebelum dijumlahkan. Sebelum mempelajari tentang penjumlahan pada 8421BCD, ada baiknya mengetahui cara menjumlahkan bilangan biner.
4
1.6.1
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 t idak dapat menyatakan hasil hasil jumlah dalam satu digit. Tetapi kita harus melakukan penyimpanan penyimpanan ( Carry Out ) kedalam kolom yang lebih tinggi. Ini berlaku untuk seluruh sistem bilangan. Sebagai contoh pada bilangan bilangan desimal 2 + 5 = 7 dengan carry out = 0, 9 + 9 = 8 dengan carry out = Contoh : 1. 102+ 102 1
Carry out
10 10
+
100 2. 01002 + 01112 1
Carry
0100 0111 + 1011 3. 111112 + 11112 + 111012 + 101112 33322
Carry out
11111 01111 11101 10111+ 11000102
5
1.6.2
Penjumlahan 8421BCD
Sandi 8421BCD hanya menggunakan bilangan biner untuk 0 sampai 9, karena yang disandikan hanya 1 digit angka desimal. Dalam penjumlahan yang perlu diperhatikan adalah jika hasilnya lebih dari 9 sehingga akan dihasilkan auxillary carry (Carry dari bilangan keempat keempat LSB) maupun carry dari MSB. Berikut adalah aturan penjumlahan sandi 8421BCD: Jika Auxillary Carry) = 0 dan Carry jumlah biner dan jumlah BCD sama, sama, yaitu AC ( Auxillary
= 0 maka tidak diperlukan aturan tambahan. Contoh : Bilangan 1 = 0 1 1 0 0 0 1 0 (BCD) = 6 2 (desimal) Bilangan 2 = 0 0 1 0 0 1 0 1 (BCD) (BCD) = 2 5 (desimal) (desimal) + Biner = 1 0 0 0 0 1 1 1
(Cy=0; AC = 0)
BCD = 1 0 0 0 0 1 1 1
= 8 7 (desimal)
Jika
jumlah biner tidak sama sama dengan jumlah jumlah desimal maka memerlukan pengaturan pengaturan tambahan : Jika Auxillary Carry (AC) = 0 atau AC = 1 dan Carry (Cy) = 0 dimana hasil penjumlahan binernya binernya lebih dari 9 desimal, desimal, maka perlu perlu ditambahkan 6 pada nible rendah tersebut, dan tambahkan 1 pada nible yang lebih tinggi. Contoh : 1
11
Bilangan 1
=0011
0 1 1 1 (BCD) = 3
7 (desimal)
Bilangan 2
=0010
0 1 1 0 (BCD) = 2
6 (desimal) +
Biner
=0101
1101 6
+1&+6
=0001
0110
(Cy=0; AC = 0)
BCD
=0110
0011
=6
1.7
3 (desimal)
PENGURANGAN
Pengurangan Pengurangan pada dasarnya merupakan penjumlahan, yaitu penjumlahan dengan bilangan negatif. negatif. 500 – 255 = 245 (Pengurangan)
500 + (-)255 = 245 (Penjumlahan)
Komputer hanya bekerja pada bilangan “0” dan “1” d an tidak mengenal bilangan
negatif. Untuk menunjukkan bilangan negatif, komputer menggunakan menggunakan tanda modulus Modulus Sign). Pada penjumlahan desimal tanda ( Modulus t anda modulus yang digunakan adalah “0” untuk bilangan positif dan “9” untuk bilangan negatif. Untuk bilanga n negatif,
pada operasi operasi penjumlahannya, penjumlahannya, harus dikomplemen. dikomplemen. Komplemen yang yang digunakan pada bilangan desimal desimal adalah komplemen-10 komplemen-10 dan komplemen-9. 1.7.1
Pengurangan Pengurangan Bilangan Bil angan Desimal
Komplemen10
Pada komplemen10, bilangan negatif negatif dikurangkan 9, 9, kemudian ditambahkan ditambahkan 1 pada bit terakhir. Pada penjumlahannya, penjumlahannya, bila ada carry, carry carry tersebut dapat dapat dihilangkan. Tanda modulus ikut dijumlahkan. Contoh :
7
Komplemen -10dari -255. -25 510 = (9) 7 4 510 (angka 9 menunjukkan tanda modulusnya). 500
(0) 5 0 0
255 -
(9) 7 4 5 +
245
1 (0) 2 4 5 Cy Dihilangkan
Komplemen-9
Pada komplemen-9, bilangan negatif negatif dikurangkan 9. 9. Bila ada carry, maka maka carry ikut dijumlahkan pada hasil akhir. Contoh : Komplemen-9 dari-255. -25 510 = (9) 7 4 410 (angka 9 menunjukkan tanda modulusnya). 500
(0) 5 0 0
255 2 451
(9) 7 4 4 + (0) 2 4 4 1+(Cy) (0) 2 4 5
Cy Ditambahkan
Bila hasil akhir bernilai negatif, maka nilainya harus dikomplemen lagi (Berlakuuntuk komplemen-10dan komplemen-10dan komplemen-9).Jika komplemen10,maka komplemen10,maka hasil akhir setelah dikomplemen harus ditambah 1. Jika komplemen10,hasil akhirnya merupakan hasil sebenarnya (tidak perlu ditambah 1). Contoh :
8
Komplemen-10dari Komplemen-10dari -500. 50 010 = (9) 5 0 010 (angka 9 menunjukkan tanda modulusnya). 255
(0) 2 5 5
500 -
(9) 5 0 0 +
-24 5
(9)7 5 5 (9 menunjukkan negatif) 244+1 (9) 2 4 5
Komplemen-9 dari-500. -50 010 = (9) 4 9 910 (angka 9 menunjukkan tanda modulusnya). 255
(0) 2 5 5
500 -
(9) 4 9 9 +
24 5
(9) 7 5 4 (9 menunjukkan negatif) 245 (9) 2 4 5
1.7.2
Pengurangan Pengurangan Bilangan Biner
Pada penjumlahan biner, komplemen yang digunakan adalah komplemen2 Dankomplemen1.Untuk Dankomplemen1.Untuk mendapatkan komplemen bilangan biner, cukup dengan membalik angkanya saja. Jika “0” dibalik menjadi “1”, dan jika “1” dibalik menjadi “0”. Komplemen2mirip dengan komplemen10pada bilangan desimal (Carry
dihilangkan), sedangkan komplemen1mirip dengan komplemen9(Carry ditambahkan pada hasil akhir). 9
· Komplemen Komplemen -2Contoh : Pengurangan antara 910 (10012) dengan 5 10 (01012) Komplemen-2dari – 5 (0101).
0 1 0 1 = (1) 1 0 1 1 (angka ( angka 1 menunjukkan tanda modulusnya). modulusnya). 9
(0) 1 0 0 1
5 -
(1) 1 0 1 1 +
4
1
(0) 0 1 0 0
Cy Dihilangkan
·Komplemen1
Contoh : Komplemen-1dari – 5 (0101). 0 1 0 1 = (1) 1 0 1 0 (angka ( angka 1 menunjukkan tanda modulusnya). modulusnya). 9
(0) 1 0 0 1
5 -
(1) 1 0 1 0
4
1
+
(0) 0 0 1 1 1 (0) 0 1 0 0
Cy Ditambahkan Bila
hasil
akhir
bernilai
negatif,
maka
nilainya
harus
dikomplemen
lagi
(Berlakuuntukkomplemen-2dan (Berlakuuntukkomplemen-2dan komplemen-1).Jika komplemen-2,maka hasil akhir setelah 10
dikomplemen harus ditambah 1. Jika J ika komplemen1,hasil komplemen1,hasil akhirnya merupakan hasil sebenarnya sebenarnya (tidak perlu ditambah 1). Contoh : Pengurangan antara 510 dengan 910 Komplemen-2dari – 9. 9. 1 0 0 1 = (1) 0 1 1 1 (angka 1 menunjukkan tanda modulusnya).
5
(0) 0 1 0 1
9 -
(1) 0 1 1 1
+
4
(1) 1 1 0 0
(1 menunjukkan negatif)
0011
+1
(1) 0 1 0 0 Komplemen-1dari – 9. 9. 1 0 0 1 = (1) 0 1 1 0 (angka ( angka 1 menunjukkan tanda modulusnya). modulusnya).
5
(0) 0 1 0 1
9 -
(1) 0 1 1 0
+
-4
(1) 1 0 1 1
(1 menunjukkan negatif)
0100 (1) 0 1 0 0 1.8
Perkalian
Perkalian antara bilangan biner adalah perkalian yang paling mudah diantara sistem bilangan lainnya. lainnya. 9
1001 11
10 x
1010
90
0000
x
1001 0000 1001
+
1011010 64 0 16 8 02 0 = 90 Pada Teknik Komputer, perkalian dilakukan menggunakan register geser kanan ( Shift Right Register ). ). Perhatikan contoh berikut :
Register A untuk menyimpan data yang akan dikalikan ( Multiplicand ). ). Register B untuk menyimpan data pengali ( Multiplier ). ). Register P untuk menyimpan hasil perkalian
9 X 10 Register A
Register B
1001
1010
Register P 00000000
M
M=0, Reg. P
tidak
diubah Geser Reg B & P 1 bit kekanan 1001
1 0 1 M
00000000 M=1,Reg A ditambahkan pada P diMSBnya. 1 00 1 0 0 00 Geser Reg B & P 1 bit kekanan
12
1001
1 M
001001000 M = 0, Reg. P tidak diubah Geser Reg B & P 1 bit kekanan 1001100100100
M
M = 1, Reg A ditambahkan pada P diMSBnya diMSBnya 10110100 Reg. P geser lagi 01011010 0 64 0 16 8 0 2 0 =90
1.9
Pembagian
Kebalikan dari perkalian, pembagian (Division) adalah suatu bentuk dari pengurangan yang dilakukan berulangulang. Dan proses ini juga dapat dilakukan pada rangkaian logika dengan cara pengurangan dan penggeseran ke kiri (menggunakan shiftleft register). Berikut adalah aturan dari pembagian: Kurangkan bilangan pembagi pembagi (Divisor) dari MSB bilangan yang akan dibagi (Dividend), lihat hasil pengurangan. pengurangan. Bila hasilnya 1 atau positif : Berarti hasil pembagian (Product) adalah 1. Setelah itu hasil pengurangan digeser kekiri satu bit, dan dimulai lagi pengurangan oleh bilangan pembagi (Divisor).
13
Bila hasilnya 0 atau negatif : Berarti hasil pembagian (Product) adalah 0. Dalam hal ini sebelum digeser ke kiriharus ditambah dulu dengan bilangan pembagi (Divisor). Setelah digeser ke kiri ki ri satubit, dimulailagi proses pengurangan oleh bilangan pembagi. Pengurangan olehbilangan pembagi dilakukan dengan penjumlahan komplemen2.Biladalampenjumlahan komplemen2.Biladalampenjumlahan tersebut terdapat pindahan (Carry), maka carry tersebut diabaikan. Perhatikan contoh berikut : 1010 : 410 = 10102 : 1004 Catatan : Karena ada hasil pengurangan pengurangan yang negatif, maka digit yang dihasilkan setelah itu adalah digit pecahan, sehingga hasil yang benar 10,12 atau 2,510.
BAB 2
Floating Point Arithmetic 2.1
Bentuk Bilangan Floating Point *
Bilangan Floating Point memiliki bentuk umum : + m b, dimana m (disebut juga dengan mantissa), mewakili bilangan pecahan dan umumnya dikonversi ke bilangan binernya, e mewakili bilangan exponent nya nya
sedangkan b mewakili radix (basis) dari
exponent.
Gambar 2-1
Contoh: Pada gambar diatas, menunjukkan tentang panjang bit pada bilangan floating point 14
m = 23 bit, e =8 bit, dan S (bit sign) = 1. Jika nilai yang tersimpan di S adalah 0, maka bilangan tersebut adalah positif dan jika nilai yang tersimpan pada S adalah 1, maka bilangan tersebut adalah negatif. Bilangan exponent pada pada contoh diatas, hanya dapat digunakan pada bilangan positif 0 hingga 255. Untuk dapat menggunakan menggunakan bilangan exponent negatif dan positif, nilai bulat yang disebut dengan bias, dikurangkan dengan bilangan pada kolom exponent dan menghasilkan bilangan exponent akhir. Misalkan pada contoh diatas menggunakan bias = 128, maka bilangan exponent akhirnya memiliki range antara 128 (disimpan sebagai 0 pada kolom exponent) hingga +127 (disimpan sebagai 255 pada kolom exponent). Berdasarkan bentuk seperti ini, bilangan exponent +4 dapat digunakan dengan menyimpan 132 pada kolom exponent, sedangkan bilangan exponent 12 dapat digunakan denganmenyimpan 116 pada kolom exponent. Anggap b = 2, maka bilangan floating point seperti 1,75 dapat menggunakan salah satu dari bentuk umum seperti pada gambar berikut:
Gambar 2-2
2.2
Macam macam bentuk bilangan floating point
Untuk mempermudah operasi bilangan floating point dan menambah tingkat presisinya, maka bilangan tersebut dibuat dalam bentuk ternormalisasi (normalized forms). Suatu bilangan floating point telah ternormalisasi jika most significant bit (MSB) dari 15
mantissanya adalah 1. Karena itu, diantara ketiga bentuk diatas dari bilangan 1,75, maka bentuk yang telah ternormalisasi\ adalah bentuk yang paling atas, dan disarankan untuk digunakan. Karena nilai MSB dari bilangan Floating Point yang telah ternormalisasi selalu 1, maka bit ini tidak disimpan, sehingga nilai mantissa yang tersimpan adalah 1. m. Sehingga S
untuk bilangan floating point bukan bukan nol yang ternormalisasi memiliki bentuk (1) *(1.m)* 2
²¹ ²¹
2.3
Aritmetika Floating Point Penjumlahan / Pengurangan
Hal yang sulit dari penjumlahan dua bilangan exponent adalah jika bilangan bilangan tersebut memiliki bentuk exponensial yang berbeda. Unutk memecahkannya, memecahkannya, maka sebelum ditambahkan bilangan exponensialnya harus disetarakan terlebih dahulu, atau bilangan dengan nilai nil ai exponent lebih kecil disamakan dulu ke bilangan exponent yang sama dengan bilangan lain. Langkah -langkah yang dilakukan untuk menambah/mengurangkan dua bilangan floating point
1
Bandingkan kedua bilangan, dan ubah ke bentuk yang sesuai pada bilangan dengan nilai exponensial lebih kecil
2
Lakukan operasi penjumlahan/ pengurangan pengurangan
3
Lakukan normalisasi dengan ’menggeser’ nilai mantissa dan mengatur nilai
exponensialnya Contoh: Jumlahkandua bilangan bilangan floating point 1,1100 * 24 dan1,1000 *22 1
Sesuaikan: 1,1000 *22 diubahmenjadi0,0110 diubahmenjadi0,0110 * 24
2
Jumlahkan: hasilpenjumlahan10,0010 hasilpenjumlahan10,0010 * 24
3
Normalisasi : hasil setelah dinormalisasi adalah 0,1000 * 2 6 ( dianggap bit 16
yang diijinkansetelahkoma adalah4) Operasi penjumlahan/pengurangan penjumlahan/pengurangan dua bilangan floating point diilustrasikan dengan skema seperti pada gambar berikut :
Gambar 2-3
2.4
Perkalian a
Perkalian dari dua bilangan floating point dengan bentuk X = mx * 2 dan Y = mx * 2 b
setara dengan X * Y = ( mx * my)* a+b 2
Algoritma umum untuk perkalian dari bilangan floating point terdiri dari tiga langkah :
1
Hitung hasil exponensial dengan menjumlahkan nilai exponent dari kedua bilangan
2
Kalikan kedua bilangan mantissa
3
Normalisasi hasil hasil akhir
Contoh: Perkalian antara dua bilangan floating point X = 1,000 * 2ˉ² dan Y = ¬1,010 * 2ˉ¹
1
Tambahkan bilangan exponennya ¬2 + (¬1) =¬3 17
2
Kalikan mantissa : 1,0000 * ¬1,010 = ¬1,010000
Hasil perkaliannya adalah 1,0100 * 2 Perkalian
dari
3
dua bilangan
floating point
diilustrasikan
menggunakan
a
b
skema seperti tampak pada gambar berikut :
Gambar 2-4
2.5
Pembagian
Pembagian dari dua bilangan floating point dengan bentuk X = mx * 2 dan Y = mx * 2 setara dengan X / Y = ( mx / my)* a-b 2
Algoritma umum untuk pembagian dari bilangan floating point terdiri dari tiga langkah :
1
Hitung hasil exponensial dengan mengurangkan nilai exponent dari kedua bilangan
2
Bagi kedua bilangan mantissa
3
Normalisasi hasil hasil akhir
Contoh : Pembagian antara dua bilangan floating point X = 1,0000 *2ˉ²dan Y = 1,0100 *2ˉ¹ 18
1
Kurangkan bilangan exponennya exponennya : -2 – (-1) (-1) = -1
2
Bagi mantissa: 1,0000 / -1,0100 = -0,1101
Hasil pembagiannya adalah ¬0,1101 * 2ˉ¹
Pembagian dari dua bilangan floating point diilustrasikan menggunakan skema seperti tampak pada gambar berikut :
Gambar 2-5
2.6
Floating Point standard IEEE
IEEE membuat dua bentuk bilangan floating point standard. Bentuk basic dan bentuk extended . Pada tiap bentuk tersebut, IEEE menentukan dua format, yaitu single precision dan double precision format . Single precision format adalah model 32bit sedangkan double precision format adalah 64bit. Pada single extended format setidaknya menggunakan menggunakan
44 bit, sedangkan pada double extended format setidaknya menggunakan menggunakan 80 bit. bit . Pada single precision format , mengijinkan penggunaan bit tersembunyi, kolom single precision ditunjukkan pada gambar berikut. exponentnya adalah 8bit. Bentuk single
19
2.7
IEEE single precision Format
Jika jumlah bit bilangan exponent adalah 8, maka nilainya memiliki 256 kombinasi, diantara angkaangka tersebut, dua kombinasi digunakan sebagai nilai khusus: 1. e = 0 bernilai nol (jika m = 0) dan nilai terdenormalisasi (jika m ≠ 0)
2. e =255 bernilai ± ∞ (jika m = 0) dan nilai tak terdefinisi (jika m ≠ 0)
m= 0
m≠0
e=0
0
Terdenormalisasi
e = 255
±∞
Tidak Terdefinsi
Tabel5.1.
20
2.8
IEEE Double Precision Format
Bentuk ini memiliki kolom exponent 11 bit dan kolom nilai mantissa sebesar 52 bit. Bentuknya sepert itampak pada gambar.
Karakteristik Panjang dalam bits Bagian pecahan dalam bits Bit tersembunyi Panjang Exponent dlm bits Bias Range Nilaiternormalisasiterkecil
SinglePrecision
Double Precision
32 23 1 8 127
64 52 1 11 1023
2128 ≈ 3,8 x 10 38 2126 ≈ 10 38
21024 ≈ 9,0 x 10 307 21022 ≈ 10 308
Tabel5.2. Karakteristik dariIEEE single dan double floating point format
21
BAB 3
3.1
ARITMATIKA FIXED-POINT
Definisi
Komputer menetapkan titik desimal pada titik tertentu. Umumnya ditetapkan pada titik kiri terjauh dari word sehingga komputer akan memperlakukan semua angka sebagai pecahan. Sistem ini akan mempermudah rutin aritmatika. Programmer harus membuat koreksi pada masukan dan keluaran program jika ingin mengubah letak titik desimal. Fixed-point pada intinya adalah integer yang berskala oleh faktor tertentu. Sebagai contoh, bilangan real 1,23 dapat dilihat sebagai 123/100; di sini, faktor skalanya adalah 100. Penting untuk dicatat bahwa faktor penskalaan ditentukan oleh jenis, berlaku untuk semua nilai dari suatu tipe fixed-point. Di sisi lain, floating-point menyimpan faktor skala sebagai bagian dari nilai, yang memungkinkan floating-point memiliki nilai yang lebih luas. Untuk menambah atau mengurangi fixed-point dua komplemen, hanya dengan menambah atau mengurangi bilangan bulat yang mendasarinya. Hal yang sama dilakukan untuk perkalian atau pembagian, pembagian, hasil perlu diskala diskala ulang-untuk hasil hasil perkalian harus dibagi dibagi dengan faktor skala, untuk pembagian perlu dikalikan dengan faktor skala. Untuk membuktikannya, misalkan kita ingin mengalikan dua bilangan real a dan b, disimpan sebagai fixed-point dengan faktor penskalaan S. Jika kita mengalikan bilangan bulat yang mendasarinya, kita memperoleh aS · bS = abS 2. Namun, nilai yang kita inginkan adalah abS, jadi kita perlu untuk membagi dengan S .
22
3.2
Notasi
Ada berbagai notasi yang dapat digunakan untuk mewakili panjang word dan radix point dalam binary fixed-point. Di bawah ini, f merepresentasikan merepresentasikan jumlah bit fraksional, m jumlah besaran atau integer bit, s jumlah sign bit, dan b jumlah total bit.
Q f : Prefix “Q”. Sebagai contoh, Q15 mewakili sejumlah pecahan dengan 15 bit. This
notation is ambiguous since it does not specify the word length, however it is usually assumed that the word length is either 16 or 32 bits depending on the target processor in use. Notasi ini ambigu karena tidak menentukan panjang word, namun biasanya diasumsikan bahwa panjang word adalah 16 atau 32 bit, tergantung pada target prosesor yang yang digunakan.
. f : Bentuk notasi “Q” yang tidak ambigu. Karena merupakan bilangan Q m f
berkomplemen 2, maka terdapat sign bit. Sebagai contoh, Q1.30 menggambarkan 1 bilangan bit dan dan 30 bit disimpan sebagai sebagai pecahan pecahan 32-bit bilangan berkomplemen 2.
fx m .b : Perfix “fx” mirip dengan di atas, tetapi menggunakan panjang word sebagai
item kedua dalam pasangan titik. Contoh, fx1.16 menggambarkan angka dengan 1 besaran bit bit dan 15 bit dalam pecahan pecahan 16 bit word. word.
s :m : f : Merupakan notasi lain termasuk sign bit, seperti ini digunakan dalam PS2 GS User’s Guide. Hal ini juga berbeda dari penggunaan konvensional dengan
menggunakan titik dua periode bukan sebagai pemisah. Sebagai contoh, dalam notasi ini, 0:8:0 mewakili 8-bit unsigned integer.
23
3.3
REPRESENTASI BILANGAN FIXED-POINT
Untuk representasi bilangan fixed-point diperlukan : a. lokasi atau register penyimpanan komputer yang ukurannya memadai untuk menyimpan seluruh digit bilangan b. kemungkinan kemungkinan untuk menjaga track tempat beradanya point tersebut contoh : Contoh desimal utk representasi 5 digit. Jika J ika diasumsikan posisi point adalah : Maka : 0
1
3
7
Merepresentasikan Merepresentasikan 13.75
5
3 klasifikasi dasar representasi fixed-point : a. representasi representasi mid-point
di mana terdapat digit baik sebelum dan sesudah point tersebut b. representasi integer
di mana tidak terdapat digit setelah point desimal c. representasi pecahan
di mana tidak ada digit sebelum point desimal 3.4
MEMBANDINGKAN MEMBANDINGKAN FIXED-POINT DAN FLOATING-POINT FLOATING-POINT
1. komputer dapat menjalankan aritmatika fixed-point lebih cepat daripada aritmatika floating-point 2. representasi fixed-point membatasi jangkauan dan skala bilangan yang sedang direpresentasikan 3. representasi floating-point memberikan fleksibilitas yang lebih besar dalam jangkauan dan skalanya, ini biasanya mengurangi kecepatan.
24
3.5
ARITMATIKA FIXED-POINT
Register 8 bit menyangga bilangan dalam bentuk komplemen dua dengan bit paling kiri sebagai bit sign. Bilangan positif dan negatif maksimum dan minimum direpresentasikan. Disini bisa diperoleh keakuratan 7 bit. Contoh : Representasi Representasi integer
3.6
Sign bit
Representasi
Value
Keterangan
0
1111111
2 – 1 = 127 Maksimum positif
1
0000001
(-2) = -128
Most negatif negatif
OVERFLOW DAN UNDERFLOW
OVERFLOW Hasil operasi aritmatika terlalu besar utk disimpan dalam lokasi yg dialokasikan untuknya. UNDERFLOW Hasil tersebut terlalu kecil utk disimpan dalam lokasi yg dialokasikan untuknya. 3.6.1
MENDETEKSI OVERFLOW
a. Menggunakan Menggunakan bit ekstra yang ditambahkan ke bagian kiri dari bit sign. i.
Bit ekstra diset ke nilai yang sama seperti bit sign sebelum penambahan atau pengurangan pengurangan
ii.
Bilangan yang telah dimodifikasi ditambahkan atau dikurangi
iii.
Jika bit ekstra dan bit sign berbeda setelah operasi, maka telah terjadi overflow
b. Metode lain, dimana tidak menggunakan bit ekstra i.
Menggunakan ADD jika sign berbeda, dan SUBSTRACT jika signnya sama, maka overflow tidak terjadi 25
ii.
Untuk A + B jika sign(A) = sign(B) maka hasilnya berupa sign(A) Untuk A - B jika sign(A) ≠ sign(B) maka hasilnya sign(A) Sign yg salah menunjukkan overflow
Contoh : a
b
Ekstra bit
Sign bit Binary SUM
Nilai desimal
0
0
1100
12
0
0
0011
3
0
0
1111
15
0
0
Bit sama → tidak overflow
Ekstra bit
Sign bit Binary SUM
Nilai desimal
0
0
1100
12
0
0
0110
6
0
1
0010
18
1
Bit berbeda → overflow
0
3.7
≠
PRESISI GANDA
Salah satu cara mengurangi overflow dengan meningkatkan panjang penyimpanan yang dialokasikan untuk setiap representasi bilangan. Jika 1 lokasi dalam memori panjangnya tidak cukup maka 2 lokasi yang bersebelahan dapat digunakan. Bilangan yang disimpan dengan cara ini disebut double precision number atau double length number. 3.8
ARITMATIKA PRESISI GANDA
Aritmatika yang menggunakan bilangan presisi ganda. Lebih lamban namun sering digunakan
karena
mesin
dengan
word 26
yang
lebih
panjang
lebih
mahal.
BAB 4
4.1
Kesimpulan
Aritmathic and Logic Unit Dari uraian di atas kami dapat menyimpulkan bahwa, ALU atau aritmathic and logic unit dapat
melakukan kalkulasi biner. Pada Hakikatnya semua komponen lain dalamkomputer ada untuk melayani ALU. ALU hanya bisa menangani bilangan bulat (integer), tetapi pada kenyataanya ALU juga bisa menangani bilangan pecahan atau real.Bilangan Pecahan yang dapat ditangani oleh ALU bentuknya FPU atauFloating Point Unit terpisah dari maths co-processor, co-processor dalam chip terpisah (46DX +).
4.2
Aritmatika Fixed Point
4.2.1
Bilangan Positif
Meskipun secara matematis, dalam sistembilangan biner bisa digunakan tanda minusdanradix point , di dalam komputer hanyaada bilangan 0 & 1 untuk merepresentasikan semua angka. Contoh bilangan biner matematis: -1101.0101 = -13.3125 Bentuk seperti ini tidak membawa manfaatbagi manfaatbagi komputer, malah menyulitkan.Oleh karena itu tidak dipakai.Seandainya semua integer positif, konversike biner biasa, tinggal disesuaikan denganpanjang denganpanjang bit register yang tersedia. Misal data akan disimpan dalam reg. 8-bit: 00000000 = 0 00000001 = 1 00101001 = 41 10000000 = 128 11111111 = 255 Tidak ada masalah dari contoh di atas.
4.2.2
Bilangan Negatif
Mulai timbul masalah saat akan menyimpanbilangan negatif.Komputer tidak mengenal tanda minus. Sign-Magnitude Representation
Bit paling kiri menunjukkan magnitude integer (positif atau negatif) sign bit +18 = 00010010 - 18 = 10010010 Kekurangannya Kekurangannya : ada 2 buah angka nol: nol positif (00000000) dan negatif ( 10000000). 27
Untuk menanggulangi menanggulangi masalah masalah yang yang ditimbulkan apabila ada ada 2 buah angka angka nol, komputer pada saat ini menggunakan dua komplemen representasi. Satu bit paling kiri dijadikan bernilai negatif,kemudian dijumlahkan dengan bit sisanya. Nalar manusia paling gampang, gunakanValue Box: Misal 8-bit: -128 64 32 16 8 4 2 1 Mengapa 1 bit paling kiri? Karena Porsi sama besar: Negatif = -128 positif= (64 + 32 + 16 + 8 + 4 + 2 + 1) = 127. Keuntungan dari dari 2 komplemen ayitu hanya hanya ada satu nol, apabila nol dinegasikan. Tetapi Terjadi ketimpangan representasi nilainegatif dan positif untuk jumlah bit tertentumisal tertentumisal untuk 8-bit, range range bilangan bulat bulat yangterwakili adalah: adalah: -128 … 127 (bukan 128 tapi 128 - 1). Inilah yang terjadi pada komputer kita, apabila dilihat dari tipe data bahasa peograman apapun. apapun. Keuntungan 2 komplemen :
1. Tidak perlu ada sirkuit pengurangan, pengurangan, hanya ada komplemen dan penjumlahan 2. Perlakuan sama untuk penjumlahan maupun pengurangan : LANGUNG DIJUMLAHKAN. 3. Panjang bit bilangan-bilangan yang dijumahkan maupun hasilnya, harus sama. 4.2.3
Overflow
Kadang penjumlahan tidak menghasilkanpanjang menghasilkanpanjang digit yang sama, bisa lebih, kelebihan itu dihilangkan saja (dipotong).Overflow terjadi jika register ybs tidak mampu menampung bilangan yangdihasilkan. yangdihasilkan. Misal 4-bit rangenya - 8 … 7, tidak bisa menampung menampung bilangan 11. Overflow Overflow jika dan hanya hanya jika: penjumlahan penjumlahan dilakukan terhadap dua bilangan bertandasama, dan hasilnya bertanda berbeda. 4.2.4
Perkalian
Untuk bilangan unsigned (positif semua),secara manusia perkalian dapat dilakukansecara manual (contoh di papan tulis). Tapi komputer tidak mempunyai tempatcukup untuk menyimpan partial products(hasil sementara) karena akanmenghabiskan banyak tempat. tempat. Oleh karenaitu digunakan digunakan metode metode geser (shift).
4.3
Aritmatika Floating Point
28