Академический Документы
Профессиональный Документы
Культура Документы
Pendahuluan
Ir. Heru Nurwarsito, M.Kom
Barlian Henryranu P, ST, MT
Eko Saksi Pramukantoro, S.Kom, M.Kom
10.
-
PENDAHULUAN
Pengantar
Tujuan
Latar belakang
10. PENDAHULUAN
Pengantar
ALU di sini adalah Arithmetic and Logic Unit yang dalam bahasa
Inggris kamus adalah Unit logika dan Aritmatematika. ALU ini
terletak di microprocessor (processor) baik yang bermerek
Intel, Power PC, atau AMD. Sesuai dengan namanya, ALU
bertindak untuk melakukan operasi aritmatik seperti
pengurangan-penambahan dan operasi logika seperti lebih
besar, lebih kecil, dan sama dengan.
MODUL
10
SELF-PROPAGATING ENTREPRENEURIAL EDUCATION DEVELOPMENT
(SPEED)
Computer Arithmetics/BAB 10
Brawijaya University
2014
Control Unit: Menyediakan sinyal kontrol untuk operasi dan koordinasi dari
semua komponen prosesor.
Page 2 of 48
Computer Arithmetics/BAB 10
Brawijaya University
Tujuan
2014
Memahami perbedaan antara cara di mana nomor diwakili (format biner) dan
algoritma yang digunakan untuk operasi aritmatika dasar.
Memahami
penggunaan
dasar
yang
signifikan,
dan
eksponen
dalam
Memahami kata kunci suatu konsep yang berhubungan dengan floating point
aritmatika, termasuk guard bits, pembulatan, angka dibawah normal,
underflow dan overflow.
Latar Belakang
Kita mulai pemeriksaan kami prosesor dengan gambaran dari aritmatika dan logika Unit
(ALU). Bab ini kemudian berfokus pada aspek yang paling kompleks ALU, aritmatika
komputer. Fungsi logika yang merupakan bagian dari ALU dijelaskan dalam Bab 12, dan
implementasi logika sederhana dan fungsi aritmatika dalam logika digital dijelaskan
dalam Bab 11. aritmatika komputer umumnya dilakukan pada dua jenis yang sangat
berbeda dari nomor: integer dan floating point. Dalam kedua kasus, representasi yang
dipilih adalah masalah desain penting dan diperlakukan pertama, diikuti dengan diskusi
operasi aritmatika. Bab ini mencakup sejumlah contoh, yang masing-masing disorot
dalam kotak berbayang.
Computer Arithmetics/BAB 10
Brawijaya University
register. Register ini adalah lokasi penyimpanan sementara dalam prosesor yang
terhubung dengan jalur sinyal ke ALU . ALU juga dapat menetapkan bendera sebagai
2014
hasil dari operasi. Sebagai contoh, sebuah bendera overflow diset ke 1 jika hasil
perhitungan melebihi panjang register di mana itu harus disimpan.
-1101.01012 = - 13.312510
Untuk tujuan penyimpanan komputer dan pengolahan, namun kami tidak mendapatkan
manfaat dari simbol-simbol khusus untuk tanda minus dan titik akar. Hanya biner digit
(0 dan 1) dapat digunakan untuk mewakili angka. Jika kita terbatas pada bilangan bulat
non negatif, representasi secara langsung.
00000001 =
00101001 =
41
10000000 = 128
11111111 = 255
Sign-Magnitude Representation
Ada beberapa konvensi alternatif yang digunakan untuk mewakili bilangan bulat
negatif serta positif, yang semuanya melibatkan mengobati yang paling signifikan
(paling kiri) bit dalam kata sebagai bit tanda. Jika bit tanda adalah 0, nomor positif;
jika bit tanda adalah 1, nomor negatif.
Bentuk paling sederhana dari penggunaan yang menggunakan sedikit tanda adalah
penggunaan tanda. Dalam bilangan n-bit, yang paling kanan n - 1 bit memegang
besarnya integer.
Page 4 of 48
Computer Arithmetics/BAB 10
+ 18
- 18
Brawijaya University
= 00010010
= 10010010
2014
(sign magnitude)
Ada beberapa kelemahan untuk penggunaan tanda . Salah satunya adalah bahwa
penambahan dan pengurangan memerlukan pertimbangan baik tanda-tanda angka
dan besaran relatif mereka untuk melaksanakan operasi yang diperlukan.
Hal ini tidak nyaman karena sedikit lebih sulit untuk menguji 0 (operasi
sering
dilakukan
Karena
pada
kelemahan
komputer)
ini,
daripada
gambaran
jika
sign-besarnya
ada
representasi
jarang
digunakan
tunggal.
dalam
menerapkan bagian integer dari ALU. Sebaliknya, skema yang paling umum adalah
gambaran komplemen berpasangan.
Twos Complement Representation
Seperti tanda besarnya, gambaran komplemen berpasangan menggunakan bit yang
paling signifikan sebagai bit tanda, sehingga mudah untuk menguji apakah suatu
bilangan bulat positif atau negatif. Ini berbeda dari penggunaan representasi signbesarnya dengan cara yang lain bit diinterpretasikan. Tabel 10.1 menyoroti
karakteristik kunci dari berpasangan melengkapi gambaran dan aritmatika, yang
diuraikan dalam bagian ini dan berikutnya.
Range
- 2n - 1 through 2n - 1 - 1
One
Number of
Representations of Zero
Peniadaan
tanda bit.
Jika dua angka dengan tanda yang sama ditambahkan, ketika
overflow terjadi dan jika hasilnya memiliki tanda yang
Aturan Overflow
berlawanan.
Untuk mengurangi B dari A, gunakan complement 2dan
Aturan Pengurangan
Table 10.1
tambahkan ke A
Computer Arithmetics/BAB 10
Brawijaya University
2014
Sebaliknya, Presentasi kami berpasangan melengkapi bilangan bulat di bagian ini dan
dalam Bagian 10.3 adalah berdasarkan [DATT93], yang menunjukkan bahwa
Angka nol diidentifikasi sebagai positif dan karena itu memiliki sedikit 0 tanda dan
besarnya semua 0s. Kita bisa melihat bahwa berbagai bilangan bulat positif yang
dapat diwakili adalah dari 0 (semua bit besarnya adalah 0) melalui 2 ^ n-1-1 (semua
bit besarnya adalah 1). Angka yang lebih besar akan membutuhkan lebih banyak bit.
Sekarang, untuk angka negatif A (A < 0), bit tanda, A 'n-1, adalah salah satu. Sisanya
n - 1 bit dapat mengambil salah satu dari 2 ^ n-1 nilai. Oleh karena itu, kisaran
bilangan bulat negatif yang dapat direpresentasikan adalah dari -1 ke -2 ^ n-1. Kami
ingin menetapkan nilai bit untuk bilangan bulat negatif sedemikian rupa aritmatika
yang dapat ditangani dengan cara yang mudah, mirip dengan unsigned aritmatika
integer. Dalam representasi unsigned integer, untuk menghitung nilai integer dari
representasi bit, berat bit yang paling signifikan adalah + 2 ^ n-1. Untuk representasi
dengan sedikit tanda, ternyata sifat aritmatika yang diinginkan tercapai, seperti yang
akan kita lihat dalam Bagian 10.3, jika berat bit yang paling signifikan adalah -2 ^ n1. Ini adalah konvensi yang digunakan dalam representasi complement kedua,
menghasilkan ekspresi berikut untuk angka negatif:
Page 6 of 48
Computer Arithmetics/BAB 10
Table 10.2
Brawijaya University
Sign-Magnitude
Twos Complement
Biased
Representation
Representation
Representation
Representation
+8
1111
+7
0111
0111
1110
+6
0110
0110
1101
+5
0101
0101
1100
+4
0100
0100
1011
+3
0011
0011
1010
+2
0010
0010
1001
+1
0001
0001
1000
+0
0000
0000
0111
-0
1000
-1
1001
1111
0110
-2
1010
1110
0101
-3
1011
1101
0100
-4
1100
1100
0011
-5
1101
1011
0010
-6
1110
1010
0001
-7
1111
1001
0000
-8
1000
2014
Computer Arithmetics/BAB 10
Brawijaya University
1 pada posisi paling kiri dan angka positif harus memiliki 0 di posisi itu. Dengan
2014
demikian, jumlah positif terbesar adalah 0 diikuti oleh semua 1s, yang sama dengan 2
^ n - 1-1.
Sisa Gambar 10.2 mengilustrasikan penggunaan kotak nilai untuk mengkonversi dari
berpasangan melengkapi ke desimal dan dari desimal ke berpasangan melengkapi.
Range Extension
Kadang-kadang diinginkan untuk mengambil n-bit integer dan menyimpannya dalam
m bit, di mana m 7 n. Perluasan panjang bit disebut sebagai ekstensi range, karena
kisaran angka yang dapat dinyatakan diperpanjang dengan meningkatkan panjang
bit.
128
64
32
16
64
32
16
128
125
120
128
64
32
16
128
8
(c) Convert decimal
120 to binary
Gambar 10.2 Penggunaan Nilai Box untuk Konversi antara Complement ke-2 Biner dan
Desimal
+ 18
+ 18
- 18
- 18
=
=
=
=
00010010
0000000000010010
10010010
1000000000010010
(sign
(sign
(sign
(sign
magnitude,
magnitude,
magnitude,
magnitude,
8 bits)
16 bits)
8 bits)
16 bits)
Prosedur ini tidak akan bekerja untuk berpasangan melengkapi bilangan bulat negatif.
Menggunakan contoh yang sama,
Page 8 of 48
Computer Arithmetics/BAB 10
+ 18
+ 18
- 18
32,658
=
=
=
=
00010010
0000000000010010
11101110
1000000001101110
(twos
(twos
(twos
(twos
Brawijaya University
complement,
complement,
complement,
complement,
8 bits)
16 bits)
8 bits)
16 bits)
2014
Sebaliknya, aturan untuk complement ke-2 bilangan bulat adalah untuk memindahkan
bit tanda ke posisi paling kiri baru dan isi dengan salinan bit tanda. Untuk bilangan
positif, isi dengan nol, dan angka negatif, isi dengan yang. Ini disebut ekstensi tanda.
18
18
=
=
Untuk melihat mengapa aturan ini bekerja, mari kita kembali mempertimbangkan
urutan n-bit dari biner digit (an-1an-2. . . a1a0) diartikan sebagai complement two
bilangan bulat A, sehingga nilainya adalah
Jika A adalah angka positif, aturan jelas bekerja. Sekarang, jika A adalah negatif dan
kami ingin membangun sebuah representasi m-bit, dengan m 7 n. Kemudian
Page 9 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Page 10 of 48
Computer Arithmetics/BAB 10
Brawijaya University
Negation
2014
Dalam representasi sign magnitude, aturan untuk membentuk negasi dari integer
sangat sederhana: membalikkan bit bertanda. Dalam notasi two complemen , negasi
dari integer dapat dibentuk dengan aturan berikut:
1. Ambil komplemen Boolean setiap bit dari integer (termasuk bit tanda). Artinya,
setiap set 1-0 dan masing-masing 0-1.
2. Menjadikan hasil sebagai integer biner unsigned, tambahkan 1.
Proses kedua langkah tersebut disebut sebagai two complement operaration, atau
mengambil dari two complemen integer.
-18
+____________1_
11101110 = -18
Seperti yang diharapkan, negatif dari jumlah tersebut adalah dirinya sendiri:
18
Bit wise complement
+____________1_
00010010 = +18
Kita bisa menunjukkan validitas operasi yang baru saja dijelaskan menggunakan
definisi dari representasi two complement dalam persamaan (10.2). Sekali lagi,
menafsirkan urutan n-bit dari biner digit
integer, tambahkan 1. Artikan urutan n-bit yang dihasilkan dari angka biner sebagai
twos complement bilangan bulat B, sehingga nilainya adalah
Page 11 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Sekarang, kita ingin A = -B, yang berarti A + B = 0. Hal ini mudah dan terbukti
benar:
= 11111111
1
100000000 = 0
Posisi bit yang paling signifikan, yang diabaikan. Hasilnya adalah bahwa negasi dari 0
adalah 0, sebagaimana mestinya.
Kasus khusus yang kedua lebih dari satu masalah. Jika kita mengambil negasi dari
pola bit dari 1 diikuti oleh n - 1 angka nol, kita mendapatkan kembali nomor yang
sama. Misalnya, representasi 8-bit,
-128
bitwise complement
Beberapa keganjilan tersebut tidak dapat dihindari. Jumlah pola bit yang berbeda
dalam n-bit adalah 2n, yang merupakan bilangan genap. Kami ingin menunjukkan
bilangan bulat positif, negatif dan 0. Jika jumlah yang sama bilangan bulat positif dan
negatif direpresentasikan (sign magnitude), maka ada dua representasi untuk 0. Jika
hanya ada satu representasi (two complemen), maka harus ada jumlah yang tidak
Page 12 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
sama dari angka negatif dan positif yang direpresentasikan. Dalam kasus komplemen
berpasangan, untuk panjang n-bit, ada representasi untuk -2n-1 tetapi tidak untuk +
2n-1.
Addition and Subtraction
Selain di two complement diilustrasikan pada Gambar 10.3. Selain itu hasil
ter seolah-olah dua angka yang unsigned integer. Pertama empat contoh
menggambarkan operasi yang berhasil. Jika hasil operasi positif, kita
mendapatkan angka positif dalam bentuk twoscomplement, yang sama dalam
bentuk unsigned-integer. Jika hasil operasi negatif, kita mendapatkan angka
negatif dalam bentuk two complement.
Pada penambahan apapun, hasilnya mungkin lebih besar daripada yang
bisa diadakan dalam ukuran yang digunakan. Kondisi ini disebut overflow.
Ketika overflow terjadi, ALU harus menandakan sehingga tidak ada upaya
untuk menggunakan hasilnya. Untuk mendeteksi overflow, aturan berikut
iniyang diamati:
OVERFLOW RULE : Jika dua nomor ditambahkan, dan mereka berdua positif atau
keduanya negatif, maka overflow terjadi jika jika hasilnya memiliki tanda yang
berlawanan.
Gambar 10.3 e dan f menunjukkan contoh overflow. Perhatikan overflow yang dapat
terjadi atau tidak ada carry. Pengurangan mudah ditangani dengan aturan berikut:
Page 13 of 48
Computer Arithmetics/BAB 10
Brawijaya University
Subtraction rule : Untuk mengurangi satu angka (pengurang) dengan yang lain
(minuend), mengambil twos complement (negasi) dari pengurang dan
menambahkannya ke minuend tersebut.
2014
Computer Arithmetics/BAB 10
Brawijaya University
2014
titik akhir. Perhatikan bahwa ketika nomor diletakkan pada lingkaran two complemen
bilangan apapun horizontal berlawanan dengan angka tersebut (ditandai dengan garis
putus-putus horizontal). Dimulai di sejumlah lingkaran, kita dapat menambahkan k
positif (atau mengurangi k negatif) ke nomor dengan memindahkan posisi k searah
jarum jam, dan kita dapat mengurangi k positif (atau menambahkan k negatif) dari
jumlah tersebut dengan memindahkan posisi k berlawanan. Jika operasi aritmatika
menghasilkan traversal dari titik di mana titik akhir yang bergabung, jawaban yang
salah diberikan (overflow).
Semua contoh Angka 10.3 dan 10.4 dapat dengan mudah ditelusuri dalam lingkaran
Gambar 10.5.
Gambar 10.6 menunjukkan jalur data dan elemen perangkat keras yang diperlukan
untuk mencapai penambahan dan pengurangan. Unsur utama adalah penambah
biner, yang ditampilkan dua angka untuk penambahan dan menghasilkan jumlah dan
indikasi overflow. Penambah biner memperlakukan dua angka sebagai unsigned
integer. (Implementasi logika penambah ini diberikan dalam Bab 11.) Karena Selain
itu, dua nomor disajikan untuk penambah dari dua register, yang ditunjuk dalam hal
ini sebagai register A dan B.
Hasilnya dapat disimpan di salah satu register atau ketiga. Indikasi melimpah
disimpan dalam 1-bit meluap flag (0 = tidak ada melimpah, 1 = overflow). Untuk
pengurangan, pengurang (B mendaftar) dilewatkan melalui komplementer berdua-dua
sehingga berpasangan melengkapi yang ditampilkan untuk penambah tersebut.
Perhatikan bahwa Gambar 10.6 hanya menunjukkan jalur data. Sinyal kontrol yang
diperlukan untuk mengontrol apakah atau tidak komplementer digunakan, tergantung
pada apakah operasi adalah penambahan atau pengurangan.
Page 15 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Multipication
Dibandingkan dengan penambahan dan pengurangan, perkalian merupakan
operasi yang kompleks, baik yang dilakukan dalam perangkat keras atau perangkat
lunak. Berbagai algoritma telah digunakan di berbagai komputer. Tujuan dari sub ini
adalah untuk memberi pembaca untuk tipe pendekatan yang biasanya diambil. Kita
mulai dengan masalah sederhana mengalikan dua unsigned (non-negatif) bilangan
bulat, dan kemudian kita melihat salah satu teknik yang paling umum untuk perkalian
angka dalam berpasangan melengkapi representasi.
Unsigned Integer Gambar 10.7 menggambarkan perkalian unsigned bilangan
bulat biner, seperti yang mungkin dilakukan dengan menggunakan kertas dan pensil.
Beberapa pengamatan penting dapat dibuat:
1. Perkalian melibatkan generasi produk parsial, satu untuk setiap digit dalam
multiplier. Produk-produk parsial kemudian dijumlahkan untuk menghasilkan
produk akhir.
Computer Arithmetics/BAB 10
Brawijaya University
2014
2. Produk parsial dapat dengan mudah didefinisikan. Bila bit multiplier adalah 0,
produk parsial adalah 0. Ketika multiplier adalah 1, produk parsial
multiplicand.
3. Total produk yang dihasilkan dengan menjumlahkan produk parsial. Untuk
operasi ini, setiap produk parsial berturut-turut digeser satu posisi ke kiri
relatif terhadap produk parsial sebelumnya.
4. Perkalian dua bilangan bulat n-bit biner menghasilkan produk hingga 2n bit
panjang (misalnya, 11 * 11 = 1.001).
Dibandingkan dengan pendekatan pensil dan kertas, ada beberapa hal yang dapat
kita lakukan untuk membuat perkalian yang terkomputerisasi lebih efisien. Pertama,
kita bisa melakukan penambahan berjalan pada produk parsial daripada menunggu
sampai akhir. Hal ini menghilangkan kebutuhan untuk penyimpanan semua produk
parsial; register sedikit diperlukan. Kedua, kita dapat menghemat waktu pada
generasi produk parsial. Untuk setiap 1 pada multiplier, add dan operasi pergeseran
yang diperlukan; tetapi untuk setiap 0, hanya pergeseran diperlukan. Gambar 10.8a
menunjukkan implementasi yang mungkin menggunakan langkah-langkah ini.
Multiplier dan multiplicand dimuat ke dua register (Q dan M). Sebuah daftar ketiga,
membuat perkalian yang terkomputerisasi lebih efisien. Pertama, kita bisa melakukan
penambahan berjalan pada produk parsial daripada menunggu sampai akhir. Hal ini
menghilangkan kebutuhan untuk penyimpanan semua produk parsial; register sedikit
diperlukan. Kedua, kita dapat menghemat waktu pada generasi produk parsial. Untuk
setiap 1 pada multiplier, add dan operasi pergeseran yang diperlukan; tetapi untuk
setiap 0, hanya pergeseran diperlukan. Gambar 10.8a menunjukkan implementasi
yang mungkin menggunakan langkah-langkah ini. Multiplier dan multiplicand dimuat
ke dua register (Q dan M). Sebuah daftar ketiga,
Page 17 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Computer Arithmetics/BAB 10
Brawijaya University
2014
Register A, juga dibutuhkan dan pada awalnya diatur ke 0. Ada juga C Register 1-bit,
diinisialisasi ke 0, yang memegang potensi carry bit yang dihasilkan dari
penambahan.
Operasi dari multiplier adalah sebagai berikut. Kontrol logika membaca bit
multiplier satu per satu. Jika Q0 adalah 1, maka multiplicand ditambahkan ke register
A dan hasilnya disimpan dalam register A, dengan bit C digunakan untuk overflow.
Maka semua bit dari register C, A, dan Q dialihkan ke kanan sedikit, sehingga bit C
masuk ke An-1, A0 masuk ke Qn-1 dan Q0 hilang. Jika Q0 adalah 0, maka tidak ada
penambahan dilakukan, hanya pergeseran. Proses ini diulang untuk setiap bit dari
multiplier asli. Menghasilkan produk 2n-bit terdapat dalam register A dan Q. Sebuah
flowchart operasi tersebut ditunjukkan pada Gambar 10.9, dan contoh diberikan
dalam Gambar 10.8b. Perhatikan bahwa pada siklus II, ketika bit multiplier adalah 0,
tidak ada add operasi.
Twos Complement Multiplication
Kita telah melihat bahwa penambahan dan pengurangan dapat dilakukan pada
nomor dalam notasi two complement dengan mengolah mereka sebagai unsigned
integer. Pertimbangkan
1001
+0011
1100
Jika angka-angka ini dianggap unsigned integer, maka kita menambahkan 9 (1001)
ditambah 3 (0011) untuk mendapatkan 12 (1100). Seperti berpasangan melengkapi
bilangan bulat, kita menambahkan -7 (1001) sampai 3 (0011) untuk mendapatkan -4
(1100).
Sayangnya, skema sederhana ini tidak akan bekerja untuk perkalian. Untuk
melihat hal ini, pertimbangkan lagi Gambar 10.7. Kami dikalikan 11 (1011) sebesar
13 (1101) untuk mendapatkan 143 (10001111). Jika kita menafsirkan ini sebagai
angka two complement, kita memiliki -5 (1011) kali -3 (1101) sama dengan -113
Page 19 of 48
Computer Arithmetics/BAB 10
Brawijaya University
(10001111). Contoh ini menunjukkan bahwa perkalian langsung tidak akan bekerja
jika kedua multiplicand dan multiplier negatif. Bahkan, itu tidak akan berhasil jika
2014
salah satu multiplicand atau multiplier negatif. Untuk membenarkan pernyataan ini,
kita harus kembali ke Gambar 10.7 dan menjelaskan apa yang sedang dilakukan
dalam hal operasi dengan kekuatan 2. Ingat bahwa setiap bilangan biner unsigned
dapat dinyatakan sebagai jumlah dari kekuatan 2. Dengan demikian,
sebagai nilai two complement -7, maka setiap produk parsial harus sejumlah two
complement negatif 2n (8) bit, seperti yang ditunjukkan pada Gambar 10.11b.
Catatan bahwa ini dicapai dengan padding keluar setiap produk parsial ke kiri dengan
1s biner.
Page 20 of 48
Computer Arithmetics/BAB 10
Brawijaya University
Jika multiplier negatif, perkalian langsung juga tidak akan bekerja. Alasannya
adalah bahwa bit multiplier tidak lagi sesuai dengan pergeseran atau perkalian yang
2014
harus terjadi. Untuk contoh, 4-bit angka desimal -3 ditulis 1101 di two complement.
Jika kita hanya mengambil produk parsial berdasarkan setiap posisi bit, kita akan
memiliki korespondensi berikut:
Bahkan, apa yang diinginkan adalah -(21 + 20). Jadi multiplier ini tidak dapat digunakan
secara langsung dengan cara yang telah kita jelaskan.
Ada beberapa cara keluar dari dilema ini. Satu akan mengkonversi baik multiplier
dan multiplicand ke angka positif, melakukan perkalian, dan kemudian mengambil two
complement hasilnya jika dan hanya tanda dua angka aslinya berbeda. Pelaksana
lebih suka menggunakan teknik yang tidak memerlukan langkah transformasi akhir
ini. Salah satu yang paling umum adalah algoritma Booth. Algoritma ini juga memiliki
manfaat mempercepat proses perkalian, relatif terhadap pendekatan yang lebih
sederhana.
Algoritma Booth digambarkan pada Gambar 10.12 dan dapat digambarkan
sebagai berikut. Seperti sebelumnya, multiplier dan multiplicand ditempatkan di Q dan
register M,
Computer Arithmetics/BAB 10
Brawijaya University
2014
masing-masing. Ada juga 1-bit register ditempatkan secara logis ke kanan sedikit
signifikan (Q0) dari Q mendaftar dan ditunjuk-Q 1; penggunaannya dijelaskan
kemudian. Hasil perkalian akan muncul di register A dan Q. A dan Q-1 diinisialisasi ke
0. Seperti sebelumnya, kontrol logika memindai bit multiplier satu per satu. Sekarang,
karena setiap bit diteliti, sedikit ke kanan juga diperiksa. Jika dua bit yang sama (1-1
atau 0-0), maka semua bit dari A, Q, dan Q-1 register bergeser ke kanan 1 bit. Jika
dua bit berbeda, maka multiplicand ditambahkan atau dikurangi dari register A,
tergantung pada apakah dua bit 0-1 atau 1-0. Setelah penambahan atau
pengurangan, pergeseran yang tepat terjadi. Dalam kedua kasus, pergeseran yang
tepat adalah sedemikian rupa sehingga bit paling kiri dari A, yaitu An-1, tidak hanya
digeser ke An-2, tetapi juga tetap di An-1. Hal ini diperlukan untuk menjaga tanda
nomor A dan T. Hal ini dikenal sebagai pergeseran aritmatika, karena
mempertahankan bit tanda.
Gambar 10.13 menunjukkan urutan kejadian dalam algoritma Booth untuk
perbanyakan 7 dengan 3. Lebih kompak, operasi yang sama digambarkan pada
Gambar 10.14a. Sisa Gambar 10.14 memberikan contoh-contoh lain dari algoritma.
Seperti dapat dilihat, itu bekerja dengan kombinasi angka positif dan negatif.
Perhatikan juga efisiensi algoritma. Blok 1s atau 0s yang melompati, dengan rata-rata
hanya satu penambahan atau pengurangan per blok.
Page 22 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Jumlah operasi tersebut dapat dikurangi menjadi dua jika kita amati itu
Sehingga produk dapat dihasilkan oleh satu tambahan dan satu pengurangan
multiplicand. Skema ini meluas ke sejumlah blok 1s di pengganda, termasuk kasus di
mana satu 1 diperlakukan sebagai blok.
Algoritma Booth sesuai dengan skema ini dengan melakukan pengurangan ketika
pertama 1 blok dijumpai (1-0) dan tambahan ketika ujung blok ini ditemui (0-1).
Page 23 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Untuk menunjukkan bahwa skema yang sama bekerja untuk multiplier negatif, kita
perlu mengamati berikut. Misalkan X angka negatif dalam notasi melengkapi dua-dua:
Pembaca dapat memverifikasi ini dengan menerapkan algoritma dengan nomor pada
Tabel 10.2. Bit paling kiri dari X adalah 1, karena X adalah negatif. Asumsikan bahwa
paling kiri 0 adalah di k th posisi. Dengan demikian, X adalah dalam bentuk
Mengatur ulang
Page 24 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Kita bisa melihat bahwa algoritma Booth sesuai dengan skema ini. Ia melakukan
pengurangan ketika pertama 1 dijumpai (10), tambahan ketika (01) dijumpai, dan
akhirnya pengurangan lain ketika pertama 1 blok berikutnya 1s dijumpai. Dengan
demikian, algoritma Booth melakukan penambahan lebih sedikit dan hasil
pengurangan dari algoritma yang lebih sederhana.
Division
Divisi agak lebih kompleks daripada perkalian tetapi didasarkan pada prinsipprinsip umum yang sama. Seperti sebelumnya, dasar untuk algoritma ini adalah
pendekatan kertas dan pensil, dan operasi melibatkan pergeseran berulang-ulang dan
penambahan atau pengurangan. Gambar 10.15 menunjukkan contoh pembagian
panjang integer biner unsigned. Ini adalah pelajaran untuk menggambarkan proses
secara rinci. Pertama, potongan-potongan dividen diperiksa dari kiri ke kanan, sampai
set bit diperiksa merupakan angka yang lebih besar dari atau sama dengan pembagi;
ini disebut sebagai pembagi mampu membagi nomor. Sampai peristiwa ini terjadi, 0s
ditempatkan dalam hasil bagi dari kiri ke kanan. Ketika peristiwa itu terjadi, 1
ditempatkan di hasil bagi dan pembagi dikurangi dari dividen parsial. Hasilnya disebut
sebagai sisa parsial.
Page 25 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Dari titik ini, divisi mengikuti pola siklik. Pada setiap siklus, bit tambahan dari
dividen yang ditambahkan ke sisa parsial sampai hasilnya lebih besar dari atau sama
dengan pembagi. Seperti sebelumnya, pembagi dikurangi dari angka ini untuk
menghasilkan sisa parsial baru. Proses berlanjut sampai semua bit dari dividen habis.
Gambar 10.16 menunjukkan algoritma mesin yang sesuai dengan proses pembagian
panjang. Pembagi ditempatkan dalam daftar M, dividen di Q mendaftar. di setiap
Page 26 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
langkah, A dan Q register bersamaan dialihkan ke kiri 1 bit. M dikurangi dari A untuk
menentukan apakah A membagi remainder.3 parsial Jika tidak, maka Q0 mendapat
1bit a. Jika tidak, Q0 mendapat 0 bit dan M harus ditambahkan kembali ke A untuk
mengembalikan nilai sebelumnya. Jumlah tersebut kemudian dikurangi, dan proses
berlanjut untuk langkah-langkah n. Pada akhirnya, hasil bagi adalah dalam register Q
dan sisanya adalah dalam register A.
Proses ini terdapat beberapa kesulitan, diperluas ke angka negatif. Kami berikan
di sini satu pendekatan untuk angka twocomplement. Contoh dari pendekatan ini
ditunjukkan pada Gambar 10.17.
Algoritma ini mengasumsikan bahwa pembagi V dan dividen D yang positif dan | V
| 6 | D |. Jika | V | = | D |, maka hasil bagi Q = 1 dan sisanya R = 0. Jika | V | 7 | D
|, maka Q = 0 dan R = D. Algoritma dapat diringkas sebagai berikut:
1. Muat komplemen dua-dua dari pembagi ke register M; yaitu, register M berisi
negatif pembagi. Memuat dividen ke dalam register A, Q. Dividen tersebut
harus dinyatakan sebagai angka positif 2n-bit. Jadi, misalnya, 4-bit 0111
menjadi 00.000.111
2. Pergeseran A, Q meninggalkan 1 posisi bit.
3. Menjalankan A dA - M. Operasi ini mengurangi angka pembagi dari isi A.
4. a. Jika hasilnya non-negatif (bit yang paling signifikan dari A = 0), kemudian
mengatur Q0 d1.
Page 27 of 48
Computer Arithmetics/BAB 10
Brawijaya University
b. Jika hasilnya negatif (bit yang paling signifikan dari A = 1), kemudian
mengatur Q0 d0 dan
2014
D=Q*V+R
Artinya, sisanya adalah nilai R yang dibutuhkan untuk persamaan sebelumnya
menjadi valid. Perhatikan contoh berikut pembagian integer dengan semua
kemungkinan kombinasi dari tanda-tanda D dan V:
Pembaca akan mencatat dari Gambar 10.17 bahwa (-7)> (3) dan (7)> (- 3)
menghasilkan sisa-sisa yang berbeda. Kita melihat bahwa besaran Q dan R tidak
terpengaruh oleh tanda-tanda input dan bahwa tanda-tanda Q dan R mudah
diturunkan dari tanda-tanda D dan V. Secara khusus, tanda (R) = tanda (D) dan
tanda (Q) = tanda (D) * tanda (V). Oleh karena itu, salah satu cara untuk melakukan
pembagian two complement adalah untuk mengkonversi operan ke nilai-nilai unsigned
dan, pada akhirnya, untuk menjelaskan tanda-tanda dengan komplementasi mana
diperlukan. Ini adalah metode pilihan untuk algoritma mengembalikan divisi
[PARH10].
Computer Arithmetics/BAB 10
Brawijaya University
Untuk angka desimal, kita menyiasati keterbatasan ini dengan menggunakan notasi
2014
{ S * B{ E
Nomor ini dapat disimpan dalam kata biner dengan tiga bidang:
Significand S
Eksponen E
Basis B implisit dan tidak perlu disimpan karena itu adalah sama untuk semua
nomor. Biasanya, diasumsikan bahwa titik radix adalah di sebelah kanan paling kiri,
atau paling signifikan, sedikit Signifikan. Artinya, ada satu bit di sebelah kiri titik
radix. Prinsip-prinsip yang digunakan dalam mewakili angka floating-point biner
terbaik dijelaskan dengan sebuah contoh. Gambar 10.18a menunjukkan 32-bit format
floating-point yang khas. Toko bit paling kiri tanda nomor (0 = positif, 1 = negatif).
Nilai eksponen disimpan dalam 8 bit berikutnya. Representasi yang digunakan dikenal
Page 29 of 48
Computer Arithmetics/BAB 10
Brawijaya University
sebagai representasi bias. Sebuah nilai tetap, yang disebut bias, dikurangi dari
2014
lapangan untuk mendapatkan nilai eksponen benar. Biasanya, bias sama (2k-1-1), di
mana k adalah jumlah bit dalam eksponen biner. Dalam hal ini, bidang 8-bit
menghasilkan angka 0 sampai 255. Dengan bias 127 (27-1), nilai-nilai eksponen
benar berada di kisaran -127 sampai 128. Dalam contoh ini, dasar diasumsikan 2.
Tabel 10.2 menunjukkan representasi bias untuk 4-bit bilangan bulat. Perhatikan
bahwa ketika bit representasi bias diperlakukan sebagai unsigned integer, besaran
relatif dari angka tidak berubah. Sebagai contoh, di kedua representasi bias dan
unsigned, jumlah terbesar adalah 1.111 dan jumlah terkecil adalah 0000. Hal ini tidak
benar dari tanda-besarnya atau berpasangan melengkapi representasi. Sebuah
keuntungan dari representasi bias adalah bahwa angka floating-point nonnegatif
dapat diperlakukan sebagai bilangan bulat untuk tujuan perbandingan. Bagian akhir
dari kata (23 bit dalam kasus ini) adalah significand.4 Setiap angka floating-point
dapat dinyatakan dalam banyak cara.
Untuk
menyederhanakan
operasi
pada
angka
floating-point,
itu
biasanya
diperlukan bahwa mereka dinormalisasi. Sejumlah normal adalah satu di mana digit
paling signifikan dari significand adalah nol. Untuk basis 2 representasi, angka normal
karena itu adalah satu di mana bit yang paling signifikan dari significand adalah salah
satu. Seperti yang telah disebutkan, konvensi khas adalah bahwa ada satu bit di
sebelah kiri titik radix. Dengan demikian, sejumlah nol normal adalah satu bentuk
di mana b adalah salah digit biner (0 atau 1). Karena bit yang paling signifikan adalah
selalu salah, adalah tidak perlu untuk menyimpan sedikit ini; melainkan tersirat.
Dengan demikian, bidang 23-bit yang digunakan untuk menyimpan significand 24-bit
dengan nilai di setengah terbuka interval [1, 2). Mengingat jumlah yang tidak normal,
jumlah tersebut dapat dinormalisasi dengan menggeser titik radix di sebelah kanan
paling kiri 1 bit dan menyesuaikan eksponen sesuai.
Gambar 10.18b memberikan beberapa contoh nomor yang tersimpan dalam
format ini. Untuk setiap contoh, di sebelah kiri adalah bilangan biner; di tengah
Page 30 of 48
Computer Arithmetics/BAB 10
Brawijaya University
adalah pola bit yang sesuai; di sebelah kanan adalah nilai desimal. Perhatikan fitur
berikut:
2014
Bit pertama dari significand sejati selalu 1 dan tidak perlu disimpan dalam
bidang significand.
Lima daerah pada garis bilangan tidak termasuk dalam rentang ini:
Nol
Computer Arithmetics/BAB 10
Brawijaya University
2014
Representasi yang disajikan tidak akan mengakomodasi nilai 0. Namun, seperti yang
akan kita lihat, sebenarnya representasi floating-point termasuk pola bit khusus untuk
menunjuk nol. Overflow terjadi ketika operasi aritmatika menghasilkan nilai absolut
lebih besar daripada yang dapat dinyatakan dengan eksponen dari 128 (misalnya,
2^120 * 2^100 = 2^220). Underflow terjadi ketika besarnya pecahan terlalu kecil
(misalnya, 2^-120 * 2^-100 = 2^-220). Underflow merupakan masalah kurang
serius karena hasilnya umumnya dapat memuaskan didekati dengan 0.
Penting untuk dicatat bahwa kami tidak mewakili nilai-nilai yang lebih individual
dengan notasi floating-point. Jumlah maksimum nilai yang berbeda yang dapat
diwakili dengan 32 bit masih 2^32. Apa yang kita lakukan adalah untuk menyebarkan
angka-angka dalam dua rentang, satu positif dan satu negatif. Dalam prakteknya,
kebanyakan angka floating-point yang satu akan ingin mewakili diwakili hanya sekitar.
Namun, untuk bilangan bulat berukuran sedang, representasi yang tepat. Juga,
perhatikan bahwa angka diwakili dalam notasi floating-point tidak merata spasi
sepanjang garis bilangan, seperti nomor fixed-point. Nilai yang mungkin lebih dekat
bersama-sama dekat asal dan jauh terpisah saat Anda bergerak menjauh, seperti
yang ditunjukkan pada Gambar 10.20. Ini adalah salah satu trade-off floating-point
matematika: Banyak perhitungan menghasilkan hasil yang tidak tepat dan harus
dibulatkan ke nilai terdekat yang notasi dapat mewakili.
Dalam jenis format digambarkan pada Gambar 10.18, ada trade-off antara
rentang dan presisi. Contoh ini menunjukkan 8 bit dikhususkan untuk eksponen dan
23 sampai Signifikan. Jika kita meningkatkan jumlah bit dalam eksponen, kami
memperluas kisaran angka dinyatakan. Tapi karena hanya tetap jumlah nilai yang
berbeda dapat dinyatakan, kita telah mengurangi kepadatan angka-angka dan karena
presisi. Satu-satunya cara untuk meningkatkan range dan presisi adalah dengan
menggunakan
lebih
banyak
bit.
Dengan
demikian,
kebanyakan
komputer
menawarkan, setidaknya, nomor presisi tunggal dan presisi ganda nomor. Sebagai
contoh, prosesor dapat mendukung presisi tunggal f Ormat dari 64 bit, dan format
double-presisi 128 bit. Jadi ada trade-off antara jumlah bit dalam eksponen dan
jumlah bit dalam Signifikan. Tapi ini lebih rumit dari itu. Basis tersirat dari eksponen
tidak perlu 2. IBM S / 390 arsitektur, misalnya, menggunakan basis 16 [ANDE67b].
Format terdiri dari eksponen 7-bit dan 24-bit significand.
Page 32 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Keuntungan dari menggunakan eksponen yang lebih besar adalah bahwa rentang
yang lebih besar dapat dicapai untuk jumlah yang sama eksponen bit. Tapi ingat,
kami belum meningkatkan jumlah nilai yang berbeda yang dapat diwakili. Ini, untuk
format tetap, basis eksponen yang lebih besar memberikan rentang yang lebih besar
dengan mengorbankan kurang presisi.
IEEE Standard for Binary Floating-Point Representation
Representasi floating-point yang paling penting didefinisikan dalam IEEE Standard
754, diadopsi pada tahun 1985 dan direvisi pada tahun 2008. Standar ini
dikembangkan untuk memudahkan portabilitas program dari satu prosesor ke yang
lain dan untuk mendorong perkembangan canggih, program berorientasi numerik.
Standar ini telah diadopsi secara luas dan digunakan pada hampir semua prosesor
kontemporer dan coprocessors aritmatika. IEEE 754-2008 mencakup baik biner dan
desimal representasi floating-point. Dalam bab ini, kita hanya berurusan dengan
representasi biner.
IEEE 754-2008 mendefinisikan berbagai jenis format floating-point berikut:
Computer Arithmetics/BAB 10
Brawijaya University
2014
Tiga format biner dasar memiliki panjang bit dari 32, 64, dan 128 bit, dengan
eksponen 8, 11, dan 15 bit, masing-masing (Gambar 10.21). Tabel 10.3 merangkum
karakteristik dari tiga format. Dua format desimal dasar memiliki panjang bit dari 64 dan
128 bit. Semua format dasar juga jenis format yang aritmatika (dapat digunakan untuk
operasi aritmatika) dan jenis format pertukaran (platform independen).
Beberapa format lain yang ditentukan dalam standar. Biner 16 Format hanya
format pertukaran dan ditujukan untuk penyimpanan nilai saat presisi tinggi tidak
diperlukan. Biner {k} Format dan desimal {k} Format adalah format interchange dengan
total panjang k bit dan dengan panjang yang ditetapkan untuk significand dan
eksponen. Format harus kelipatan dari 32 bit; sehingga format yang ditetapkan untuk k
= 160, 192, dan seterusnya. Kedua keluarga format juga format aritmatika.
Selain
itu,
standar
mendefinisikan
format
presisi
diperpanjang,
yang
memperpanjang format dasar yang didukung dengan memberikan bit tambahan dalam
eksponen (extended range) dan di significand (presisi diperpanjang). Format yang tepat
tergantung implementasi, tetapi standar tempat kendala tertentu pada panjang
eksponen dan significand. Format ini jenis format yang aritmatika tetapi tidak jenis
format pertukaran. Format diperpanjang yang akan digunakan untuk perhitungan
menengah. Dengan presisi mereka yang lebih besar, format diperpanjang mengurangi
kemungkinan hasil akhir yang telah terkontaminasi oleh kesalahan roundoff berlebihan;
dengan jangkauan mereka lebih besar, mereka juga mengurangi kemungkinan overflow
menengah batal perhitungan yang hasil akhir akan representable dalam format dasar.
Motivasi tambahan untuk format diperpanjang adalah bahwa hal itu memberi beberapa
manfaat dari format dasar lebih besar tanpa menimbulkan hukuman waktu biasanya
berhubungan dengan presisi tinggi.
Page 34 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Computer Arithmetics/BAB 10
Brawijaya University
2014
Tabel 10.4 menunjukkan hubungan antara format yang ditentukan dan jenis format
yang. Tidak semua pola bit dalam format IEEE diinterpretasikan dengan cara yang
biasa; sebagai gantinya, beberapa pola bit yang digunakan untuk mewakili nilai-nilai
khusus. Tabel 10.5 menunjukkan nilai-nilai yang ditugaskan ke berbagai pola bit. Nilai
eksponen semua nol (0 bit) dan semua orang (1 bit) mendefinisikan nilai-nilai khusus.
Kelas berikut nomor diwakili:
Untuk nilai eksponen dalam kisaran 1 sampai 254 untuk format 32-bit, 1
sampai 2046 untuk format 64-bit, dan 1 sampai 16.382, angka floating-point
nol normal diwakili. Eksponen bias, sehingga berbagai eksponen adalah -126
sampai 127 untuk format 32-bit, dan sebagainya. Sebuah angka normal
membutuhkan 1 bit ke kiri dari titik biner; bit ini tersirat, memberikan efektif
24-bit, 53-bit, atau 113-bit significand. Karena salah satu bit tersirat, bidang
yang sesuai dalam format biner disebut sebagai bidang Signifikan tertinggal.
Eksponen dari nol bersama-sama dengan sebagian kecil dari nol mewakili nol
positif atau negatif, tergantung pada bit tanda. Seperti yang telah disebutkan,
hal ini berguna untuk memiliki nilai yang tepat dari 0 diwakili.
Page 36 of 48
Computer Arithmetics/BAB 10
Table 10.5 Interpretation of IEEE 754 Floating-Point Numbers
Eksponen
semua
yang
bersama-sama
dengan
Brawijaya University
sebagian
kecil
dari
2014
nol
merepresentasikan nilai positif atau negatif, tergantung pada bit tanda. Hal ini
juga berguna untuk memiliki representasi tak terhingga. Hal ini membuat itu
kepada pengguna untuk memutuskan apakah untuk mengobati melimpah
sebagai kondisi kesalahan atau untuk membawa nilai? dan lanjutkan dengan
program apa pun yang sedang dijalankan.
Page 37 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
subnormal. Dalam hal ini, sedikit di sebelah kiri titik biner nol dan eksponen
benar adalah -126 atau -1.022. Angka tersebut positif atau negatif tergantung
pada bit tanda.
Eksponen semua yang bersama-sama dengan fraksi nol diberikan nilai NaN,
yang berarti tidak Nomor, dan digunakan untuk sinyal berbagai kondisi
pengecualian.
Signifikansi angka di bawah normal dan NaN dibahas dalam Bagian 10.5.
Page 38 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Signifikan overflow: Penambahan dua significands dari tanda yang sama dapat
menyebabkan carry dari bit yang paling signifikan. Hal ini bisa diperbaiki
dengan penataan kembali, seperti yang akan kita jelaskan.
Jelas, kita tidak bisa hanya menambahkan significands. Angka pertama harus diatur
dalam posisi yang setara, yaitu, 4 dari angka kedua harus selaras dengan 3 yang
pertama. Dengan kondisi tersebut, dua eksponen akan sama, yang merupakan
Kondisi matematika di mana dua angka dalam bentuk ini dapat ditambahkan. Dengan
demikian
Computer Arithmetics/BAB 10
Brawijaya University
2014
satu dapat mengakibatkan hilangnya angka, itu adalah jumlah yang lebih kecil yang
bergeser; Oleh karena itu penting relatif kecil setiap digit yang hilang ini adalah. Itu
kesejajaran dicapai dengan berulang kali menggeser bagian yang besarnya significand
tepat 1 digit dan incrementing eksponen sampai dua eksponen ini adalah sama.
(Perhatikan bahwa jika dasar tersirat adalah 16, pergeseran dari 1 digit adalah
pergeseran dari 4 bit.) Jika ini Hasil proses nilai 0 untuk Signifikan, maka nomor lain
dilaporkan sebagai hasilnya. Jadi, jika dua angka memiliki eksponen yang berbeda
secara signifikan, jumlah yang lebih kecil hilang.
Tahap 3: Penambahan. Selanjutnya, dua significands ditambahkan bersamaan,
dengan mempertimbangkan tanda-tanda mereka. Karena tanda-tanda mungkin
berbeda, hasilnya mungkin 0. Ada juga kemungkinan significand meluap dengan 1
digit. Jika demikian, significand hasil digeser kanan dan eksponen bertambah.
Overflow eksponen bisa terjadi sebagai akibatnya; ini akan yang dilaporkan dan
operasi dihentikan.
Tahap 4: Normalisasi. Tahap akhir menormalkan hasilnya. Normalisasi terdiri dari
pergeseran significand digit tersisa sampai digit paling signifikan (bit, atau
4 bit untuk basis-16 eksponen) adalah nol. Setiap pergeseran menyebabkan
penurunan eksponen dan dengan demikian dapat menyebabkan underflow eksponen.
Akhirnya, hasilnya harus dibulatkan dan kemudian dilaporkan. Kami menunda
pembahasan pembulatan sampai setelah diskusi tentang perkalian dan pembagian.
Page 40 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Page 41 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Precision Considerations
BITS GUARD Kami menyebutkan bahwa, sebelum operasi floating-point, eksponen
dan significand setiap operan dimuat ke register ALU. Dalam kasus Signifikan,
panjang register hampir selalu lebih besar dari panjang Signifikan ditambah sedikit
tersirat. Register mengandung bit tambahan, yang disebut bit penjaga, yang
digunakan untuk pad keluar dari ujung kanan significand dengan 0s.
Alasan penggunaan penjaga bit diilustrasikan pada Gambar 10.25. Perhatikan
angka dalam format IEEE, yang memiliki significand 24-bit, termasuk tersirat 1 bit ke
kiri dari titik biner. Dua angka yang sangat dekat nilai ini adalah x = 1.00g00 *
dan
y = 1.11g11 *
. Jika jumlah yang lebih kecil adalah untuk besubtracted dari yang
lebih besar, itu harus digeser kanan 1 bit untuk menyelaraskan eksponen. Hal ini
ditunjukkan pada Gambar 10,25. Dalam prosesnya, y kehilangan 1 bit penting; itu
Page 42 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Hasilnya adalah
penambahan penjaga bit. Sekarang sedikit signifikan tidak hilang karena kesejajaran,
dan hasilnya adalah
, perbedaan faktor 2 dari jawaban sebelumnya. Ketika radix
adalah 16, hilangnya presisi dapat lebih besar. Sebagai Angka 10.25c dan d acara,
perbedaan dapat menjadi faktor 16.
Page 43 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Page 44 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
dengan memproduksi dua nilai untuk setiap hasil. Dua nilai sesuai dengan bagian
bawah dan atas titik akhir dari interval yang berisi hasil yang benar. Lebar interval,
yang merupakan perbedaan antara endpoint atas dan bawah, menunjukkan
keakuratan hasilnya. Jika titik akhir dari interval merupakan tidak representable,
maka endpoint selang dibulatkan ke bawah dan atas, masing-masing. Meskipun lebar
interval dapat bervariasi sesuai dengan implementasi, banyak algoritma telah
dirancang untuk menghasilkan interval sempit. Jika rentang antara batas atas dan
bawah cukup sempit, maka hasil yang cukup akurat telah diperoleh. Jika tidak,
setidaknya kita tahu ini dan dapat melakukan analisis tambahan.
Teknik akhir ditentukan dalam standar bulat menuju nol. Hal ini, pada
kenyataannya, pemotongan sederhana: bit ekstra diabaikan. Hal ini tentunya teknik
sederhana. Namun, hasilnya adalah bahwa besarnya nilai terpotong selalu kurang dari
atau sama dengan nilai asli yang lebih tepat, memperkenalkan prasangka yang
konsisten menuju nol dalam operasi itu. Ini adalah prasangka yang serius karena
mempengaruhi setiap operasi yang ada bit ekstra nol.
IEEE Standard for Binary Floating-Point Arithmetic
IEEE 754 melampaui definisi sederhana format untuk meletakkan praktik dan
prosedur tertentu sehingga floating-point aritmatika menghasilkan yang seragam,
hasil yang diprediksi independen dari platform perangkat keras. Salah satu aspek dari
ini sudah dibahas, yaitu pembulatan. Sub ini melihat tiga topik lain: infinity, NaN, dan
nomor di bawah normal.
INFINITY Infinity aritmatika diperlakukan sebagai kasus membatasi aritmatika nyata,
dengan nilai-nilai tak terhingga yang diberikan interpretasi berikut:
QUIET DAN SINYAL Nans A NaN adalah entitas simbolis dikodekan dalam format
floatingpoint, yang ada dua jenis: sinyal and quiet. Sebuah sinyal operasi NaN
pengecualian yang tidak valid setiap kali muncul sebagai operan. Signaling.
Page 45 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
NaN mampu menilai variabel yang terinisialisasi dan perangkat aritmatika yang
bukan subjek standar. Sebuah NaN Quiet menyebar melalui hampir setiap operasi
aritmatika tanpa sinyal pengecualian. Tabel 10.7 menunjukkan operasi yang akan
menghasilkan NaN quiet
Perhatikan bahwa kedua jenis NaN memiliki format yang sama umum (Tabel 10.4):
eksponen semua yang dan sebagian nol. Pola bit sebenarnya fraksi nol tergantung
implementasi; nilai fraksi dapat digunakan untuk membedakan NaN tenang dari sinyal
NaN dan untuk menentukan kondisi pengecualian tertentu..
ANGKA subnormal nomor subnormal termasuk dalam IEEE 754 untuk menangani
kasus-kasus eksponen underflow. Ketika eksponen hasilnya menjadi terlalu kecil
(eksponen negatif dengan terlalu besar besaran a), hasilnya subnormalized dengan
hak pergeseran fraksi dan incrementing eksponen untuk setiap shift sampai eksponen
ini dalam kisaran representable.
Gambar 10.26 menggambarkan efek termasuk nomor di bawah normal. Angka-angka
representable dapat dikelompokkan ke dalam interval bentuk [2n, 2n + 1]. dalam
setiap
Page 46 of 48
Computer Arithmetics/BAB 10
Brawijaya University
2014
Interval tersebut, bagian yang eksponen nomor tetap konstan sementara fraksi
bervariasi, menghasilkan jarak seragam nomor representable dalam interval. Seperti
yang kita lebih dekat ke nol, setiap interval berturut-turut adalah setengah lebar
interval sebelumnya tetapi mengandung jumlah yang sama nomor representable.
Oleh karena itu kepadatan nomor representable meningkat saat kita mendekati nol.
Namun, jika hanya nomor biasa digunakan, ada kesenjangan antara jumlah yang
normal terkecil dan 0. Dalam kasus 32-bit IEEE 754 Format, terdapat 223 nomor
representable dalam setiap interval, dan terkecil angka positif representable ini 2 126. Dengan penambahan jumlah subnormal, tambahan 223-1 nomor seragam
ditambahkan antara 0 dan 2-126.
Penggunaan angka di bawah normal disebut underflow sebagai bertahap
[COON81]. Tanpa nomor subnormal, kesenjangan antara terkecil representable
jumlah nol dan nol adalah jauh lebih luas daripada kesenjangan antara terkecil
representable nomor nol dan jumlah yang lebih besar berikutnya. Underflow bertahap
mengisi kesenjangan itu dan mengurangi dampak dari eksponen underflow ke tingkat
yang sebanding dengan roundoff antara angka normal.
Page 47 of 48
Computer Arithmetics/BAB 10
Brawijaya University
REFERENSI
Page 48 of 48
2014