kelompok 1

28
2002 MuDer Jeng Arsitektur Komputer Floating Point oleh kelompok 10 1 PIRZAN BAHARUDDIN NURUL ILMI AZACHRAH ISLAMIAH RIDHA AWALIAH ILHAM ZULKIFLI PTIK 02

Upload: puthryy-nur-ihsani

Post on 02-Jan-2016

13 views

Category:

Documents


2 download

DESCRIPTION

floating point

TRANSCRIPT

PowerPoint Presentation

Arsitektur KomputerFloating Pointoleh kelompok 101PIRZAN BAHARUDDINNURUL ILMI AZACHRAHISLAMIAHRIDHA AWALIAHILHAMZULKIFLIPTIK 022002 MuDer JengSyahrulMateri pembahasan 5.1 :

2Bentuk bilangan floating point

SyahrulFloating point adalah sebuah bilangan yang digunakan untuk menggambarkan sebuah nilai yang sangat besar atau sangat kecil. Bilangan tersebut dapat diwujudkan dalam notasi ilmiah, yaitu berupa angka pecahan desimal dikalikan dengan angka 10 pangkat bilagnan tertentu

3SyahrulBilangan Floating Point memiliki bentuk umum : + m * b em = mantissa mewakili bilangan pecahan dan umumnya dikonversike bilangan binernya, e = mewakili bilangan exponentnya,sedangkan b mewakili radix(basis) dari exponent

4SyahrulMisalkan terdapat sebuah bilangan 8934000000 maka bilangan ini dapat dituliskan dalam bentuk bilangan floating point. 8934E6 yang secara matematis artinya : 8934 x 10Bagian mantisanya adalah 8934 dan bagian eksponennya adalah E6

5Syahrul Contoh II bilangan 314600000 dan bilangan 0.0000451 dapat direpresentasikan dalam bentuk bilangan floating point: 3146E5 dan 451E-7 (artinya 3146 * 10 pangkat 5, dan 451 * 10 pangkat -7).6Syahrul70100000011110000000000000000000001000001001110000000000000000000+0.111* 21+0.0111* 22Syahrul8 BILANGAN FLOATING-POINT

Representasi bilangan floating-point mempunyai tiga bagian:MantissaBasisEksponen

Contoh :

BilanganMantissaBasisEksponen3 x 1063106110 x 28110286132.7840.613278410434.580.3458102Syahrul9Mantissa dan eksponen direpresentasikan secara eksplisit dalam komputer. Tetapi basisnya (base) adalah yg digunakan oleh komputer tersebut.

Umumnya komputer mengikuti basis 2.

Umumnya sebuah bilangan f direpresentasikan sebagai f = m x re di mana m adalah mantissa, r adalah basis dari sistem bilangan dan e adalah eksponen (pangkat dari basis yg digunakan).

Format umum bilangan floating-point: SEksponenMantissaSyahrul10Semula penggunaan format berbeda antar pabrik komputer untuk merepresentasikan bilangan floating-point. Tetapi saat ini telah digunakan format standar ANSI/IEEE secara luas (format IEEE 754). Sedangkan IBM mempunyai standar khusus

Ada dua format standar IEEE 754 yg dikeluarkan yaitu untuk presisi tunggal (single precision) dan format standar untuk bilangan presisi ganda (double precision)

SEksponen, 8 bitMantissa, 23 bitFormat floating-point presisi tunggal (32 bit)SEksponen, 11 bitMantissa, 52 bitFormat floating-point presisi ganda (64 bit)Syahrul11NORMALISASI FLOATING-POINT

Bilangan floating-point dapat direpresentasikan dgn banyak cara seperti yg ditunjukkan untuk bilangan desimal 140 x 28: 140 x 28, 14 x 29, 1400 x 27, 1.4 x 210, 0.14 x 211, .014 x 212 .... dst.

Suatu bilangan floating-point berada dalam bentuk ternormalisasi jika Most Significant Digit dari mantissa bukan-nol (non-zero).

Untuk mengubah menjadi bilangan yg ternormalisasi, mantissa harus digeser ke kanan atau ke kiri dgn tepat, menaikkan atau menurunkan eksponen. Jika semua bilangan floating-point direpresentasikan dalam komputer dgn bentuk ternormalisasi, maka posisi bit satu dapat disimpan dengan mengabaikan MSB (selalu 1). Ini disebut hidden 1 principle. SyahrulFPS (floating point standard)The sign bit adalah 0 untuk bilangan posistip dan 1 untuk bilangan negatip

Mantissa direpresentasikan dengan unsigned integer (i.e., bukan 2s Complement), di mana nilainya dinormalisasi. 23 bit untuk single precision, 52 bit untuk double precision

Exponent direpresentasikan dengan unsigned integer 8 bit untuk single precision, 11 bit untuk double precision

12Syahrul5.3 Aritmetika Floating Point Penjumlahan/PenguranganHal yang sulit dari penjumlahan dua bilangan exponent adalah jika bilanganbilangan tersebut memiliki bentuk exponensial yang berbeda.

13SyahrulLangkah-langkah yang dilakukan untuk menambah/mengurangkan dua bilangan floating point1. Bandingkan kedua bilangan, dan ubah ke bentuk yang sesuai pada bilangandengan nilai exponensial lebih kecil2. Lakukan operasi penjumlahan / pengurangan3. Lakukan normalisasi dengan menggeser nilai mantissa dan mengatur nilai Exponensialnya

14SyahrulContoh : Jumlahkan dua bilangan floating point 1,1100 * 2 4 dan 1,1000 * 2 21. Sesuaikan : 1,1000 * 2 2 diubah menjadi 0,0110 * 2 4 2. Jumlahkan : hasil penjumlahan 10,0010 * 2 43. Normalisasi : hasil setelah dinormalisasi adalah 0,1000 * 2 6 ( dianggap bit yang diijinkan setelah koma adalah 4)

15Syahrul5.4. Perkalian16Perkalian dari dua bilangan floating point dengan bentuk X = mx * 2 a dan Y= mx * 2 b setara dengan X * Y = (mx * my) * 2 a+bAlgoritma umum untuk perkalian dari bilangan floating point terdiri dari tiga langkah:1. Hitung hasil exponensial dengan menjumlahkan nilai exponent dari kedua bilangan2. Kalikan kedua bilangan mantissa3. Normalisasi hasil akhir

SyahrulContoh : Perkalian antara dua bilangan floating point X = 1,000 * 2 2 dan Y = 1,010*2 11. Tambahkan bilangan exponennya : 2+ (1)= 32. Kalikan mantissa: 1,0000 * 1,010= 1,010000Hasil perkaliannya adalah 1,0100* 2 3Perkalian dari dua bilangan floating point diilustrasikan menggunakan skema sepertitampak pada gambar berikut :

17Syahrul18

Syahrul19Pembahasan 5.5Langkah pembagian-pada operasi pembagian hamper sama-awalnya lakukan pemeriksaan terhadap nol-bila divisor sama dengan nol maka terjadi error dan hasil di set tak hinggah-langkah selanjutnya adalah exponent dividend di kurang divisornya-hasil ini akan menghilangkan bias yang harus di kembalikan lagi-selanjutnya di adakan pemeriksaan overflow dan underflow-langkah akhir adalah membagi significand yang akan di ikuti normalisasi dan pembulatanSyahrul20MENDETEKSI OVERFLOW a. menggunakan bit ekstra yyg ditambahkan ke bagian kiri dari bit sign. i. Bit ekstra di set ke nilai yg sama seperti bit sign sebelum penambahan /pengurangan ii. Bilangan yg telah dimodifikasi ditambahkan/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 ii. Utk A + B jika sign(A) = sign(B) maka hasilnya berupa sign(A) Utk A - B jika sign(A) sign(B) maka hasilnya sign(A) Sign yg salah menunjukkan overflow

SyahrulOVERFLOW 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. Jangkauan representasi floating-point bentuk standar : representasi floating-point i. bilangan paling positif terjadi dgn mantissa positif terbesar dan eksponen positif terbesar ii. bilangan positif terkecil terjadi dgn mantissa positif terkecil dan eksponen negatif terbesar iii. bilangan negatif terkecil terjadi dgn mantissa negatif paling kecil dan eksponen negatif terbesar iv. bilangan negatif terbesar terjadi dgn mantissa negatif terbesar dan eksponen positif terbesar

21SyahrulPembagian dari dua bilangan floating point dengan bentuk X = mx * 2a dan Y = mx * 2b setara dengan X / Y = (mx / my) * 2 ab Algoritma umum untuk pembagian dari bilangan floating point terdiri dari tiga langkah : Hitung hasil exponensial dengan mengurangkan nilai exponent dari kedua bilangan Bagi kedua bilangan mantissa Normalisasi hasil akhir

22Syahrul23Contoh : Pembagian antara dua bilangan floating point X = 1,0000 * 2 2 dan Y = 1,0100 * 2 1 Kurangkan bilangan exponennya : 2 (1) = 1 Bagi mantissa: 1,0000 / 1,0100 = 0,1101 Hasil pembagiannya adalah 0,1101 * 2 1 Pembagian dari dua bilangan floating point diilustrasikan menggunakan skema seperti tampak pada gambar berikut :

Syahrul24

SyahrulPembahasan 5.6IEEEmembuatduabentukbilanganfloatingpointstandard.Bentukbasicdanbentukextended.Padatiapbentuktersebut,IEEEmenentukanduaformat,yaitusingle precisiondandouble precisionformat.Singleprecisionformatadalahmodel32bitsedangkandoubleprecisionformatadalah64bit.Padasingleextendedformatsetidaknyamenggunakan44bit,sedangkanpadadoubleextendedformatsetidaknyamenggunakan80bit.Pada single precision format, mengijinkan penggunaan bit tersembunyi,kolom exponentnya adalah 8bit. Bentuk single precision ditunjukkan pada gambarberikut.

Gambar 5.6

25SyahrulIEEEsingleprecisionFormatJika jumlah bit bilangan exponent adalah 8, maka nilainya memiliki 256kombinasi, diantara angka-angka tersebut,dua kombinasidigunakan sebagai nilaikhusus:1.e=0bernilai nol(jikam=0)dannilaiterdenormalisasi(jikam0)2.e=255bernilai+(jikam=0)dannilaitakterdefinisi(jikam0) m=0 m 0 e=0 0 Terdenormalisasi e=255 + TidakTerdefinisi Tabel5.1.

26SyahrulIEEEDoublePrecisionFormatBentukinimemilikikolomexponent11bitdankolomNilai mantissasebesar52bit.Bentuknyaseperti tampakpadagambar.

Gambar5.7.IEEEdoubleprecisionformat

27SyahrulIEEEDoublePrecisionFormatBentukinimemilikikolomexponent11bitdankolomNilai mantissasebesar52bit.Bentuknyaseperti tampakpadagambar.

Gambar5.7.IEEEdoubleprecisionformat28Syahrul