Aritmatika Lanjutan
Aritmatika Lanjutan
0 1 0 1
+0 +0 +1 +1
0 1 1 10 Gambar 7.2
Penjumlahan bilangan-bilangan 1 Bit
analogi dengan perhitungan komputasi tangan biasa dengan menggunakan bilangan
decimal. Kita tambahkan pasangan bit dimulai dari akhir (kanan) urutan rendah dari
vector bit, lalu bergerak terus sampai ke akhir (kiri) urutan tinggi. Tabel kebenaran untuk
fungsi carry-out dan jumlah untuk penambahan 2 bit berbobot sama x i dan yi pada vector
X dan Y terlihat pada gambar 7.3. Gambar tersebut juga memberikan ekspresi logika
AND - OR dua – tingkat untuk fungsi tersebut, bersama dengan contoh penambahan
harus mampu untuk menyediakan carry – in ke tingkat i dan carry – out dari tingakat (i-I)
X1 X1 Carry-in c1 Sum1 Carry-out ci+1
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
Si = xi yi ci + xi yi ci + xi yi ci + xi yi ci
ci+1 = yi ci + xi ci + xi yi
contoh
X= 7= 0 1 1 1
+ Y = + 6 = + 00 1 1 1 1 0 0 0
Z = 13= 1 1 0 1
Gambar 7.3 spesifikasi logika untuk tingkatan penjumlahan biner
Penerapan logika kombinasional table kebenaran tersebut di tunjukan dalam
gambar 7.4a, sejalan dengan symbol yang serial untuk penjumlahan yang akan di
gunakan dalam diskusi selanjutnya. Rangkaian logika lainnya dapat di gunakan untuk
merealisasi fungsi ini, sebagai contoh, gerbang NAND atau NOR dapat di gunakan.
Hubungan seri n buah blok ADDER, seperti di tunjukkan dalam gambar 7.4b, dapat di
gunakan untuk menjumlahkan dua bilangan n bit. Apabila propagasi sinyal pembawa
(carry) atau riak melalui hubungan seri ini, maka konfigurasi ini di sebut n-bit ripple-
carry adder. Apabila sinyal carry-out cn posisi most significant bit (MSB) sama dengan 1,
maka terjadi overflow dari operasi. Hal ini berarti bahwa hasilnya tidak dapat di
tunjukkan dalam n bit. Sinyal carry-in c0 ke dalam posisi least significant bit (LSB)
melengkapi arti yang serasi untuk penjumlahan bilangan 1 ke suatu bilangan. Singkatnya,
dalam bagian terdahulu kita telah menyatakan bahwa dalam pembentukkan bilangan
dengan system komplemen kedua kita menambahkan bilangan 1 ke bilangan yang
bersangkutan yang menggunakan system komplemen pertama. Sinyal pembawa yang
sangat berguna untuk menghubungkan antara k buah adder n bit ke bentuk adder yang
berkemampuan menangani masukan bilangan-bilangan dengan panjang kn bit, seperti di
tunjukkan dalam gambar 7.4c
7.3 DESAIN LOGIKA UNTUK ADDER YANG CEPAT
Pada gambar 7.4b, di tunjukkan suatu adder n bit ripple-carry yang mempunyai
penundaan terlalu banyak dalam pembentukan keluaran cn, sn-1,…, s1, dan s0. Apakah
penundaan yang bergabung dengan teknologi implementasi yang khas dapat di
terima atau tidak, ini dapat di tentukan hanya dalam konteks kecepatan komponen
prosessor yang lain dan dalam waktu siklus memori utama. Penundaan melalui
suatu jaringan gerbang logika tergantung pada teknologi elektronika yang di
gunakan dalam pembuatan gerbang dasar (di lihat lampiran A) dan tergantung
pada sejumlah gerbang pada jalur masukan ke keluaran. Sesudah teknologi di
pilih, penundaan di gabungkan dengan jaringan logika kombinasional yang di
bangun dari gerbang yang teknologinya dapat di jelaskan dengan menambahkan
sejumlah penundaan gerbang logika sepanjang jalur yang terpanjang yang melalui
jaringan. Dalam kasus adder ripple-carry, propagasi sinyal yang terpanjang adalah
dari masukan x0, y0, dan c0 pada posisi LSB ke keluaran c n dan sn-1 pada posisi
SMB
Dalam catatan terdahulu dari bab ini, telah di sarankan bahwa
penjumlahan dapat di laksanakan di dalam waktu eksekusi perintah makro.
Perkiraan selang waktu adalah dalam jangkauan 50 sampai 100 nanosekon dalam
computer dengan panjang kata 16 bit. Sekarang misalkan penundaan dari adder
ripple-carry n bit seperti yang di gambarkan dalam gambar 7.4b, perkiraan bahwa
penundaan ci dan ci+1 dari semua blok ADDER adalah 10 nanosekon. Suatu
penjumlahan n bit dapat di laksanakan dalam selang waktu yang menerima sinyal
carry untuk mencapai posisi cn-1, di ikuti dengan delay dalam perkembangan s n-1.
Asumsikan delay yang terakhir ini 15 ns, penjumlahan 16 bit menerima 15 × 10 +
15 = 165 ns.
Terdapat dua pendekatan yang dapat di ambil untuk mengurangi delay 165
ns ini menjadi delay yang di inginkan berada dalam range 50-100 ns. Pendekatan
pertama, yang di sarankan oleh diskusi kita yang terdahulu, adalah dengan
menggunakan teknologi rangkaian elektronika yang lebih cepat dalam
menerapkan desain logika ripple carry yang sama dengan desain pada gambar
7.4b. pendekatan yang kedua adalah menggunakan suatu struktur jaringan logika
yang berbeda dari yang ditunjukan dalam gambar 7.4b.
ADDER
(A)
xn-1 yn-1 x1 y1 x0 y0
cn-1 c2 c1 c0
A A A
sn-1 si s0
ckn . . . . . . cn . . . c0
A A A
. . . . . . . . .
skn-1 s(k-1)n s2n-1 sn sn-1 s0
Struktur logika untuk desain tambahan yang cepat harus mengalamatkan problem
dari penaikkan kecepatan pembangkit sinyal pembawa. Ekspresi logika untuk s1 (sum)
dan ci+1 (carry-out) dari tingkatan i (lihat gambar 7.3) adalah
Si = xi yi ci + xi yi ci + xi yi ci + xi yi ci
dan
ci+1 = yi ci + xi ci + xi yi
Hasil pemfaktoran persamaan yang kedua tersebut adalah
ci+1 = xi yi + (xi + yi) ci
dan kita dapat menuliskan lagi menjadi
ci+1 = Gi + Pi ci
dengan
ci+1 = xi yi
dan
Pi = xi + yi
Persamaan Gi dan Pi di sebut sebagai fungsi pembangkit (generate function) dan
fungsi propagasi (propagate function) untuk tingkat ke i. Fungsi pembangkit
menghasilkan suatu pembawa keluaran dari tingkat i apabila x i dan yi adalah 1. Fungsi
propagasi menyebabkan suatu pembawa keluaran apabila terdapat pembawa masukan dan
balik xi adalah 1 maupun yi adalah 1. Semua fungsi Gi dan Pi untuk 0 ≤ i ≤ n – 1 dapat di
bentuk secara independen dan secara parallel dalam satu penundaan gerbang logika
sesudah vector X dan Y tersedia sebagai masukan parallel ke adder n bit. Dengan
memperluas ci dalam bentu variable indeks i – 1 dan mensubsitusikannya ke dalam
persamaan ci+1 kita peroleh
ci+1 = Gi + Pi Gi-1 + Pi Pi-1 ci-1
apabila pengembangan tipe di lanjutankan, persamaan akhir untuk variable pembawa
tersebut adalah
ci+1 = Gi + Pi Gi-1 + Pi Pi-1 Gi-1 + … + Pi Pi-1 … Pi G0 + Pi Pi-1… P0 c0
Jadi, semua pembawa dapat di peroleh tiga penundaan gerbang logika sesudah masukan
yang di operasikan yaitu X, Y dan c0 tersedia, karena hanya satu penundaan gerbang yang
di perlukan untuk menghasilkan semua sinyal P i dan Gi, di ikuti dengan dua penundaan
gerbang dalam rangkaian AND-OR untuk ci+1. Sesudah tiga penundaan gerbang lainnya
(satu penundaan untuk membalikkan ci dan dua penundaan untuk membentuk si seperti di
tunjukkan di muka), semua penjumlahan bit tersedia. Dengan demikian, independen dari
n, proses penjumlahan n bit hanya memerlukan enam tingkat logika.
Problem praktis dengan pendekatan ini adalah batasan gerbang fan-in. Persamaan untuk
ci+1 memerlukan i + 2 masukan ke gerbang AND yang terbesar dan memerlukan i + 2
masukan ke gerbang OR yang terbesar. Dengan di berikannya pertimbangan rangkaian
elektronik, gerbang logika fan-in biasanya di batasi pada sekitar delapan atau kurang
masukan. Mari kita perhatikan desain adder 4 bit sebagai unit dasar fungsi sebagai berikut
C4 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0 + P3 P2 P1 P0 c0
Memerlukan 5 fan-in dari gerbang dasar dan membutuhkan dua penundaan gerbang
sesudah fungsi Pi dan Gi tersedia. Dengan menggunakan empat hubungan i seperti dalam
gambar 7.4c (dengan n=4), adder 16 bit di peroleh, memerlukan jumlah waktu yang sama
dengan penundaan 12 gerbang. Total ini di susun dari itu penundaan untuk informasi Pi
dan Gi masing-masing dua untuk c4,c8, c12 dan terakhir tiga untuk s15. Semua penjumlahan
bit lainnya dan c16 pada atau sebelum selang waktu untuk c15. Dalam diskusi kita di muka
melibatkan mulai waktu absolut, suatu penundaan gerbang tercantum 5 ns yang di
gunakan. Dengan nilai ini adder 16 bit di atas memerlukan 60 ns untuk mengembangkan
semua keluaran, lebih sedikit dari 165 ns di perlukan untuk desain asli dalam 7.4b, hal ini
baik di dalam objektiv yang di kemukakan terdahulu 50-100 ns untuk operasi
penjumlahan. Adder cepat yang dapat membentuk fungsi pembawa seperti dalam contoh
sederhana ini di sebut carry lookahead adder. Perlu di perhatikan bahwa dalam contoh
adder 16 bit terdahulu, kita telah mengasumsikan bahwa pembawa di dalam setiap blok di
bentuk oleh rangkaian lookahead. Walaupun demikian, pembawa tetap beriak di antara
blok-blok.
Untuk panjang kata yang lebih besar dan dalam komputer berkinerja tinggi perlu
untuk meningkatkan kecepatan operasi penjumlahan. Ini mungkin di lakukan dengan
menerapankan teknik lookahead pada sinyal pembawa di antara blok, jadi tingkat kedua
dari lookahead di kerjakan. Kita akan menggambarkan prosedur ini dengan mendesain
kembali adder 18 bit di atas. Perkirakan bahwa setiap blok adder bit melengkapi dua
fungsi keluaran baru yang di definisikan sebagai G1k dan P1k, dengan k=0 untuk blok 4 bit
yang pertama, k=1 untuk blok 4 bit kedua dan seterusnya. Dalan blok pertama
P10 = P3P2P1P0
dan
G10 = G3 + P3G2 + P3P2P1 + P3P2P1G0
Dengan perkataan, jika kita katakan bahwa Gi dan Pi menetapkan apakah tingkat bit
membangkitkan atau mempropagasikan carry, maka G1k dan P1k menetapkan apakah blok
Mempropagasikan pembawa. Dengan tersedianya fungsi baru ini, menjadikan tidak di
perlukan menunggu pembawa melakukan riak melalui blok. Sebagai contoh c16 dapat di
bentuk sebagai
C16 = G13 + P13 G12 + P13 P12 P11G11 + P13 P12 P11 G10 + P13 P12 P11 c0
Dengan menggunakan gerbang dengan lima fan-in. Penundaan dalam perkembangan
adalah dua penundaan gerbang lebih banyak dari pada waktu yang di perlukan untuk
perkembangan fungsi G1k dan P1k. Perkembangan fungsi G1k dan P1k masing-masing
memerlukan dua dan satu penundaan gerbang, sesudah pembangkitan G i dan Pi. Dengan
demikian c16 mempunyai lima penundaan gerbang yang tersedia setelah X, Y dan c0 di
terapkan sebagai masukan. Apabila hanya menggunakan fungsi Gi dan Pi, c16 memerlukan
sembilan penundaan gerbang.
Sekarang misalkan alamat yang lebih panjang di bangun dengan menserikan blok
dasar 16 bit yang di bangun menggunakan fungsi G1k dan P1k seperti Gi dan Pi. Penundaan
adder total akan kira-kira menjadi setengahnya dari apa yang akan terjadi jika alamat
yang lebih panjang telah di bangun dengan menserikan blok dasar 4 bit yang hanya
menggunakan fungsi Gi dan Pi
7.4 PENJUMLAHAN DAN PENGURANGAN
Dalam bagian 7.1 kita telah mendiskusikan tiga sistem yang menunjukkan bilangan
positif dan bilangan negatif, juga kita telah mendiskusikan bilangan yang sederhana yang
di sebut bilangan bertanda. Perbedaan dari sistem ini hanyalah pada cara bagaimana
mereka menunjukkan bilangan negatif. Faedah relatif sistem bilangan bertanda dari
kemudahan penerapan operasi aritmetikanya dapat di tentukan melalui
0
N-1 1
N-2 2
. .
. .
. … > . .
. .
0000
1111 0001
1110 0010
1100 0100
1011 0101
1010 0110
1001 0111
1000
Sekarang perhatikan penerapan yang berbeda dari lingkaran mod 16. Kita
tuliskan nilai 0 sampai 15 dalam vektor biner 4 bit 0000,0001,…,1111, sesuai dengan
sistem bilangan biner, dan kemudian kita interprestasi kembali vektor biner menjadi
representasi bilangan bertanda dalam jangkauan -8 sampai +7 dalam metoda komplemen
kedua (lihat gambar 7.1), seperti di tujukkan dalam gambar 7.5b,
0111
+ 1101
1 0100
Carry-out
Perhatikan bahwa jika kita mengabaikan carry-out dari posisi bit keempat
penjumlahan ini, kita memperoleh jawaban yang benar. Kenyataannya, hal ini selalu
merupakan kasus.
Gambar 7.6 operasi ADD dan SUBRACT dengan representasi komplemen kedua
Dapat di terima antara -8 sampai +7. Apabila jawaban tidak berada dalam jangkauan yang
dapat di terima, kita katakan terjadi arithmec overflow. Pada bagian 4.1 di berikan
pembahasan mengenai situasi arithmetic overflow ini. Empat operasi penjumlahan yaitu
bagian (a) sampai (d) pada gambar 7.6 mengikuti aturan 1di atas dan enam operasi
pengurangan yaitu bagian (e) sampai (j) pada gambar 7.6 mengikuti aturan 2. Perhatikan
bahwa operasi pengurangan memerlukan bilangan yang mengurangi (bagian bawah) yang
di konversi ke bentuk komplemen kedua sebelum penjumlahan dilakukan. Dalam
penerapan rangkaian logika untuk pengurangan, pelengkapan ini dapat di gabungankan
dengan operasi penjumlahan seperti di tunjukkan pada gambar 7.7. kontrol perkawatan
ADD/SUB di set menjadi keadaan 0 untuk penjumlahan. Hal ini memberikan vektor Y
untuk di terapkan tanpa perubahan pada salah satu masukan adder sepanjang sinyal carry-
in co adalah ketika kontrol perkawatan ADD/SUB diset ke keadaan 1, sesuai dengan
pengurangan vektor Y menjadi bentuk komplemen pertama (yaitu, bit yang
komplementasi) oleh gerbang EX-OR dan C0 di set ke keadaan 1 untuk melengkapi
bentuk komplemen kedua dari bilangan negatif, seperti dalam gambar 7.6e, di kerjakan
dengan cara yang tepat sama seperti yang di kerjakan pada bentuk komplemen kedua
bilangan positif
Kesederhanaan logika dan kecepatan pelaksanaan penjumlahan dan pengurangan
bilangan bertanda dalam penerapan komplemen kedua merupakan alasan menggunakan
penerapan bilangan dalam subsistem ALU dari kebanyakan komputer modern. Bisa di
lihat pula bahwa penerapan komplemen pertama akan sebaik sistem komplemen kedua
bila di gunakan dalam jaringan logika yang bergabung dalam penjumlahan-pengurangan.
Meskipun komplementasi mudah, hasil yang diperoleh sudah operasi penjumlahan tidak
selalu benar. Pada kenyataan, sinyal carry-out cn tidak dapat di abaikan. Jika cn = 1,
kemudian 1 harus di tambahkan pada jawaban tadi supaya di dapat jawaban yang benar.
Jika cn = 0, hasil yang di peroleh benar. Kebutuhan siklus koreksi yang kondesional pada
carry-out dari operasi penjumlahan, berarti bahwa penjumlahan dan pengurangan tidak
dapat di terapkan secara mudah dalam sistem komplemen pertama tidak seperti dalam
sistem komplemen kedua.
4.1 OVERFLOW DALAM ARITMETIKA BILANGAN BULAT
Ketika menjumlahkan bilangan tak bertanda, carry-out cn berlaku sebagai
indikator overflow. Walaupun demikian, kasus bilangan bertanda sedikit lebih banyak
juga terlibat. Jika mencoba menjumlahkan bilangan +7 dan +4 dalam adder 4 bit, vektor
keluaran S akan menjadi 1011, yang merupakan kode untuk -5, yang secara jelas
merupakan jawaban yang salah. Sinyal carry-out dari posisi MSB akan menjadi 0.
Dengan cara yang mirip, jika kita ingin mencoba menjumlahkan -4 dan -6, kita akan
mendapatkan S = +6, yang merupakan kesalahan lainnya, dan dalam kasus ini sinyal
carry-out adalah 1. Jelaslah, penjumlahan bilangan dengan tanda yang berbeda dapat
menyebabkan overflow, karena nilai absolut dari hasil penjumlahan akan selalu lebih
kecil dari pada nilai absolut terbesar dari dua bilangan yang menjumlahkan. Diskusi di
atas memberikan kesimpulan sebagai berikut: overflow dapat terjadi ketika
menjumlahkan dua bilangan yang mempunyai tanda yang sama dan sinyal carry-out dari
posisi bit bertanda tidaklah cukup sebagai indikator overflow dalam kasus penjumlahan
bilangan bertanda
...
...
PP2----------------------
PP3------------------
Sebagian (PPi)
mj
qi
Sel khusus
Carry-out A carry-in
Sum
Register (diinisialisasi 0)
Geser ke kanan
kontrol
ADD(1)/NOADD(0)
Penju
mlaha
n n-bit
mn-1 ... m0
0 0000 1011
C A Q
.
.
.
R1 Inisialisasi 0
R2
Bilangan pengali
.
.
.
Y
A B
ALU
0 1011 01
0+1 0 0 0 -1 0
00000000000000
1111111010011 pengali komplemen kedua
0.……………………0
0…………………..0
0………………..0
000101101
00000000 .
00010101000110
Gambar 7.12 skema perkalian normal dan booth
Sampai sekarang kita telah menggunkan bilangan pengali positif. Karena di
peroleh sedikitnya satu bilangan 0 pada akhir sebelah kiri dari beberapa bilangan pengali,
operasi +1 dapat di tepatkan ke sebelah kiri dari setiap operasi -1 untuk melindungi
kebenaran metode ini. Kita menggunakan metoda yang benang jika metode tersebut di
gunakan pada bilangan pengali negative. (suatu contoh di berikan dalam gambar 7.14).
untuk melihat kebenaran teknik ini secara umum, kita menggunakan sifat representatif
bilangan negatif dalam sistem komplemen kedua. Jika bilangan paling kiri nol dari
bilangan negative positif bit k, yaitu
0 0 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0
0 +1 -1 +1 0 -1 0 +1 0 0 -1 +1 -1 +1 0 -1 0 0
Gambar 7.13 perekaman booth dari suatu pengali
X = 11 … 10xk-1 … x0
Adalah suatu bilangan negatif n bit, nilainya di berikan oleh
V (X) = -2k+1 + xk-1 × 2k-1 + … + x0 × 20
Persamaan ini dapat di cek dengan menerapkan pada beberapa kode dalam gambar 7.1
sebagai contoh
V (1011) = -23 + 0 + 21 + 20 = -5
dan
V (1110) = -21 + 0 = -2
01101 (+13) 0 1 1 0 1
×11010 (-6) 0 -1+1 -1 0
0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 0 0 1
Tanda ekstensi 0 0 0 0 1 1 0 1
1 1 1 0 0 1 1
0 0 0 0 0 0 .
1 1 1 0 1 1 0 0 1 0 (-78)
Gambar 7.14 perkalian booth dengan bilangan pengali negatif
Sekarang di misalkan bahwa X adalah suatu bilangan pengali. Jika X tak mempunyai nol,
maka X = 11 … 11, dan V(X) = -1. Dengan menerapkan skema booth, kita mengkode
kembali bilangan pengali sebagai 00…0 -1. Hasil perkalian di hitung sebagai -1×
bilangan yang akan di kalikan adalah benar. Pada keadaan lain, jika X mempunyai
sedikitnya satu bilangan 0, biarkan bilangan paling kiri 0 dalam posisi seperti yang di
atas. Laksanakan perkalian menggunakan bilangan pengali yang telah di kode kembali
dengan cara seperti untuk pengali positif.
Hal ini akan menjawab penjumlahan -1 × 2k+1 × bilangan yang akan di kalikan untuk
versi bilangan yang akan di kalikan yang di pilih dengan bit bagian paling kanan k+1 dari
bit pengali yang kode kembali. Adalah mudah untuk melihat ekspresi untuk V(X) yang
membangkitkan hasil perkalian yang benar. Teknik booth bilangan pengali yang kode
kembali di perhatikan dalam gambar 7.15
7.8 PERKALIAN CEPAT
Transformasi dasar 011 … 110 +100 … 0 – 10 yang merupakan dasar algoritma booth
di sebut sebagai teknik melangkahi 1 motivasi untuk bentuk ini yang dalam kasus di
mana bilangan pengali mempunyai nilai 1-nya di kelompokkan ke dalam blok yang
sedikit berdekatan, hanya sedikit versi bilangan yang akan di kalikan ( yang akan
menjumlahkan) perlu ditambahkan untuk membangkitkan hasil perkalian. Jika hanya
sedikit bilangan yang akan di tambahkan untuk membangkitkan hasil perkalian. Jika
hanya sedikit bilangan yang akan di tambahkan perlu di jumlahkan, operasi perkalian
dapat di naikkan kecepatannya secara potensial. Meskipun, dalam kasus terburuk yang
mengalternatifkan 1 dan 0 dalam bilangan pengali, setiap bit bilangan pengali memilih
bilangan yang akan di jumlahkan. Kenyataannya akan menghasilkan lebih banyak
bilangan yang akan di tambahkan dari pada jika algorima booth tidak di gunakan.
Bilangan pengali16 bit “kasus buruk”, bilangan pengali yang lebih normal dan bilangan
pengali yang ”baik” di tunjukkan dalam gambar 7.16
Algoritma booth mempunyai dua ciri yang menarik. Pertama, algoritma tersebut
menangani ke dua bilangan pengali positif dan negatif secara seragam kedua, algoritma
tersebut mencapai efesiensi tertentu dalam sekelompok penjumlahan yang diperlukan
ketika bilangan pengali mempunyai blok 1s yang sedikit besar. Gain kecepatan yang
dimungkinkan melampaui 1 adalah data secara jelas dependen. Secara rata-rata,
kecepatan melakukan perkalian sama seperti algoritma normal
Bilangan pengali Versi dari bilangan yang akan
Bit I Bit i-1 Di kalikan yang dipilih oleh bit i
0 0 0×M
0 1 +1 × M
1 0 -1×M
1 1 0×M
Gambar 7.15 tabel rekaman pengali booth
Sekarang kita menguraikan teknik peningkatan kecepatan perkalian yang menjamin
bahwa bilangan pengali n bit akan dijumlahkan dan cara menangani secara serangam
kasus operand bertanda. Hal ini adalah dua kali kecepatan situasi kasus terburuk
algoritma booth
Teknik baru diperoleh secara langsung dari teknik booth. Lihat kembali bahwa
dalam teknik booth bit bilangan pengali qi memilih bit yang akan di jumlahkan sebagai
fungsi dari bit qi-1 di sebelah kanannya. Bilangan yang akan dijumlahkan yang dipilih
digeseri posisi biner kesebelah kiri dari posisi LSB hasil perkalian sebelum bilangan yang
akan dijumlahkan ini adalah i (SPi). Ide dasar teknik penambahan kecepatan adalah untuk
menggunakan bit i + 1 dan i untuk memilih satu bilangan yang akan di jumlahkan,
sebagai fungsi dari bit i-1, untuk di tambahkan pada Spi
Untuk praktisnya, bialngan yang akan di jumlahkan ini harus dapat di peroleh
secara mudah dari bilangan yang akan di kalikan. Bilangan yang akan di jumlahkan (n/2)
kemudian dipilih dari pasangan bit (x1,x0), (x3,x2), (x5, x4) dan seterusnya. Teknik tersebut
di sebut metode perekaman pasangan bit. Perhatikan bilangan pengali dalam gambar 7.14
yang di ulang dalam gambar 7.17a, pengelompokkan pemilihan pasangan booth-recoded,
kita ambil satu saja, akan tergeser, secara tepat untuk
0101010101010101
1100010110111100
0000111110000111
+1-1 +1-1+1-1+1-1+1-1+1-1+1-1+1-1
0 0 0 +1 0 0 0 0 -1 0 0 0+1 0 0-1
1 1 1 0 1 0 0
0 0 -1 +1 -1 0
0 -1 -2
7.17(a) contoh perekaman pasangan bit di turunkan dari perekaman booth
Pengali pasangan bit Pengali bit pada bagian kanan Bilangan yang harus di
i+1 i i-1 Kalikan, di pilih pada SPi
0 0 0 0×M
0 0 1 +1 × M
0 1 0 +1 × M
0 1 1 +2 × M
1 0 0 -2 × M
1 0 1 -1 × M
1 1 0 -1 × M
1 1 1 0×M
Gambar 7.17 (b) tabel keputusan pemilihan bilangan yang harus di kalikan
Setiap pasangan seperti di tunjukkan. Bagian paling kanan pasangan booth (-1,0),
ekivalen dengan -2× (bilangan yang akan dikalikan M) pada SP0. Pasangan berikutnya,
(-1,+1), ekivalen dengan -1 × M pada SP2, terakhir pasangan paling kiri dari nol adalah
ekivalen dengan 0 × M pada SP4. Menyatakan kembali pemilihan ini dalam istilah dari
bit bilangan pengali yang asli, kita mempunyai kasus (1,0) dengan 1 pada sebelah kanan
menyeleksi -1 × M dan (1,1) dengan 1 di sebelah kanan penyeleksi 0 ×M. Set lengkap
dari delapan kasus yang di tunjukkan dalam gambar 7.17b, perkalian contoh dari gambar
7.14 di tunjukkan kembali dalam gambar 7.18 seperti yang akan dihitung menggunakan
metode perekam pasangan bit.
Diskusi terdahulu di harapkan memberikan beberapa pegangan para pembaca
mengenai algoritma yang telah banyak di gunakan dalam rangkaian MSI dan LSI yang
tersedia secara komersial yang di harapkan untuk perkalian integer bertanda mempunyai
kinerja tinggi. Rangkaian pengali chip tunggal telah tersedia. Rangkaian ini menggunakan
teknik yang mirip denga teknik yang telah di uraikan, sebagai peningkatan lebih lanjut,
seperti yang di diskusikan dalam soal 7.24 dan 7.25. Rangkaian-rangkaian ini dapat di
gunakan baik dalam komputer untuk sistem kebutuhan umum maupun dalam komputer
dengan sistem keperluan khusus, seperti prosesor sinyal, di mana operasi aritmetika
dengan kecepatan tinggi sangat di pentingkan
7.9 PEMBAGIAN INTEGER
Dalam pasal 7.6 kita telah mendiskusikan perkalian bilangan positif dengan
menghubungkan cara dimana operasi perkalian dapat di lakukan di atas kertas dengan
cara bagaimana rangkaian logika dapat melakukannya. Adalah mengandung pelajaran
untuk mengikuti strategi yang sama di sini. Kira hanya akan mendiskusikan pembagian
bilangan positif secara detail. Beberapa komentar umum pada kasus operand bertanda
akan di buat kemudian
Gambar 7.19 menunjukkan contoh pembagian desimal sejalan dengan pembagian
kode dari nilai-nilai yang sama. Perhatikan versi desimal. Bilangan 2 dalam hasil
pembagian di tentukan oleh penalaran sebagai berikut. Pertama kita mencoba bilangan 13
yang di bagi ke dalam bilangan 2, dan hal ini tidak dapat di lakukan. Berikutnya kita coba
membagi bilangan 13 ke dalam bilangan 2. Kita mengerjakan dengan cara coba-coba
untuk mengalikan bilangan dengan 2 sehingga mendapatkan bilangan 26, dan dengan
mengetahui bahwa 27-26=1 adalah kurang dari 13, kita masukkan 2 sebagai hasil bagi
dan melaksanakan pengurangan yang di perlukan
01101 (+13)
×11010 (-6)
01101
0 -1 +1 -1 0
0000000000
111110011
00001101
1110011
000000 .
1110110010 (-78)
01101
0 -1 -2
1111100110
11110011
000000 .
1110110010
Gambar 7.18 perkalian yang hanya memrlukan n/2 bilangan yang akan di jumlahkan
Digit berikutnya dari bilangan yang aka di bagi 4, di turunkan dan kita mengakhiri
dengan memutuskan bahwa 13 masuk ke dalam 14 sekali dengan sisa yang di tentukan
sebagai 1. Diskusi serupa dapat di berikan untuk kasus biner dengan penyederhanaan
bahwa satu-satunya kemungkinan untuk bit hasil bagi adalah 0 dan1
Masalah penting yang dapat disimpulkan dari algoritma pembagian “longhand”
adalah bahwa proses penentuan digit hasil bagi secara coba-coba adalah lebih susah untuk
di otomatiskan dalam rangkaian logika dari pemilihan dan penambahan bilangan hasil
penjumlahan dalam kasus perkalian. Rangkaian paling sederhana yang
mengimplementasikan pembagian dengan memperhatikan bilangan yang akan dibagi dan
melakukan pengulangan. Jika system adalah nol atau positif, bit hasil bagi 1
21 10101
31 ) 274 1101 ) 100010010
26 - 1101 -
14 10000
13 - 1101 -
1 1110
1101 -
1
Gambar 7.19 contoh pembagian “longhand”
Harus di tentukan sisanya di perluas oleh bit bilangan yang akan di bagi lainnya pembagi
di tempatkan kembali, dan pengurangan lainnya di lakukan. Di lain pihak, jika sisanya
negatif bit hasil bagi 0 harus di tentukan bilangan yang akan di bagi di simpan kembali
dengan menambahkan kembali bilangan pembagi, dan bilangan pembagi di tempatkan
ulang untuk pengurangan lainnya.
Gambar 7.20 menunjukkan susunan rangkaian logika yakni mengimplementasi
kan teknik restoring-division ke atas. Perlu di perhatikan bahwa hal ini mirip dengan
struktur untuk perkalian yang di tunjukkan dalam gambar 7.9. Bilangan pembagi positif n
bit di simpan ke dalam register M dan bilangan yang akan di bagi positif n bit di simpan
ke dalam register Q pada saat di mulainya operasi. Register A di set ke keadaan 0.
Sesudah pembagian di lengkapi hasil bagi n bit akan berada dalam register Q dan sisinya
dalam A. Pengurangan yang di perlukan di permudah dengan menggunakan aritmetika
komplemen ke dua. Posisi bit ekstra pada ujung kiri A dan M adalah bit bertanda untuk
pengurangan
Algoritma berikut ini melaksanakan pembagian :
M : Lakukan n kali
Geser A dan Q ke kiri satu posisi biner
Kurangkan M dari A, tempatkan jawabannya kembali dalam A
Jika tanda A adalah 1, set q0 pada 0 dan jumlahkan M kembali pada A ( simpan
kembali A); sebaliknya set q0 ke 1
Gambar 7.21 menunjukkan contoh 4 bit seperti yang akan di proses oleh
rangkaian dalam gambar 7.20
Inisialisasi 00000 1000
00011
Geser 00001 000 siklus pertama
Kurang 11101
Set q0 11110 0000
Jumlah 11111
00011 simpan sisanya
00010
Hasil bagi
Gambar 7.20 susunan rangkaian untuk pembagian biner
10
11) 1000
11
10
Penjum
alhan
n+1 bit
0 mn- ... m0
1
Langkah S2 di perlukan untuk meninggalkan sisa positif yang sebenarnya di dalam dan
pada akhirnya dari siklus n, 7.20 dapat juga di gunakan untuk melaksanakan algoritma
ini sebaik yang dapat di lakukan oleh algoritma asli. Perlu di perhatikan bahwa operasi
penyimpanan kembali tidak dapat di gunakan dan satu operasi penjumlahan dan
pengurangan secara jelas di laksankan setiap siklus. Gambar 7.22 menunjukkan
bagaimana contoh pembagian gambar 7.21 di eksekusi oleh algoritma nonrestoring-
devision
Tidak terdapat algoritma sederhana untuk melaksanakan pembagian bertanda
yang dapat di bandingkan dengan situasi perkalian. Dalam pembagian, pemprosesan awal
dari operand dan/ atau pemrosesan akhir dari hasil yang di perlukan. Operasi ekstra
tergantung pada tanda operand dalam kesatuan dengan tanda yang di inginkan dari
jawaban, dan perlengkapan satu atau lebih bilangan biasanya di libatkan. Kita tidak akan
mendiskusikan kemungkinan secara detail. Meskipun sangat berguna untuk di perhatikan
bahwa kita selalu dapat mentransformasikan operand pada nilai positifnya, dengan
menggunakan salah satu algoritma yang di diskusikan di atas, dan mentransformasikan
jawaban nilai bertanda yang benar seperti yang di perlukan.
7.10 BILANGAN TITIK AMBANG DAN OPERASINYA
Sampai bab ini kita secara terbatas telah memperhatikan pada bilangan fixed-point
bertanda. Mudah untuk menggangap bilangan tersebut sebagai bilangan interger, yaitu
dengan memasukkan titik biner pada ujung kanan setiap bilangan. Hal ini untuk
mempermudah mengasumsikan bahwa titik biner berada pada bagian kanan dari bit
tanda, yang menyatakan pecahan. Dalam sistem komplemen kedua, nilai bertanda F,
dinyatakan dengan pecahan biner n bit.
B = b0 b-1 b-2 . . . b(n-1)
Di berikan oleh
F (B) = -b0 × 20 + b-1 × 2-1 + b-2 × 2-2 + . . . + b-(n-1) × 2-(n-1)
Dengan jangkauan F adalah
-1 ≤ F ≤ 1 -2(n-1)
Permintaan jangkauan dari nilai yang direpresentasikan dalam format titik tetap
16 bit. Di terjemahkan sebagai bilangan interger, jangkuan nilai adalah -32.768 (= -1215)
sampai +32.767 (=+215-1). Jika kita perhatikan bilangan tersebut untuk menjadi suatu
pecahan, jangkauan kira-kira adalah ±3 × 10-5 (= ±2-15) sampai ±1. Di luar jangkauan ini
cukup untuk perhitungan ilmu pasti, yang melibatkan parameter seperti bilangan
avogadro (6,0247 × 10-23 mol-2) atau konstanta planck (6,6254 × 10-27 erg.s). dari sini
diperlukan untuk memudahkan penampungan interger ynag sangat besar dari pecahann
yang sangat kecil.hla ini berarti bahwa kelengkapan harus di berikan untuk menjukkan
bilangan dan operasi pada bilangan sehingga posisi titik biner tersedia dan secara
otomatis biasa sebagai proses perhitungan. Pada kasus demikian, titik biner di katakan
mengambang, dan bilamgan tersebut di sebut bilangan floating-point (titik ambang). Hal
ini membedakan bilangan tersebut dari bilangan fixed-point (titik tetap), yang titik
binernya selalu dalam posisi yang sama. Karena posisi titik biner dalam biloangan titik
ambang berubah-ubah , maka haruslah di berikan secara eksplisit dalam representasi tirtik
mabnag. Sebagai contoh, dalam notasi ilmu pasti desimal yang di kenal, bilangan boleh di
tulis sebagai 6,0247 × 1023, 6,6254 × 10-27, -1,0341 × 102, -7,3000 × 10-4, dan seterusnya.
Bilangan-bilangan ini di katakan ditulis dalam lima digit signifikan. Faktor skala (10 23,
10-27, dan lain-lain) menunjukkan posisi titik desimal dengan memperhatikan digit
signifikan. Dengan perjanjian, apabila titik desimal di tempatkan kesebelah kanan dari
digit signifikan pertama (bukan nol), bilanagn di katakan sebagai ternormalisasi. Perlu di
catat bahwa basis 10 dalam faktor skala bersifat tetap dan tidak perlu untuk dilihat secara
ekspilisit dalam representasi mesin bilnagn ttik ambang. Tanda digit signifikan dan
eksponen dalam faktor skala merupakan penampilan. Jadi kita di motivasi untuk
mendefinisikan penampilan bilangan titik ambang sebagai salah satu di mana bialngan di
representasikan dengan tandanya, bilangan string dari signifikan digit dan eksponen untuk
basis yang di maksud. Mari kita menyatakan bentuk umum untuk bilangan demikian
dalam sistem desimal dan kemudian menghubungkan bentuknya pada representasi yang
sebanding. Secara luas di gunakan bentuk berikut
± X1 X2 X3 X4 X5 X6 X7 × 10±Y1Y2
Dengan Xi dan Yi adalah digit desimal. Hal ini cukup untuk jangkauan yang luas dari
perhitungan ilmiah. Seperti akna kita lihat, di mungkinkan untuk mengaproksimasikan
jangkauan ini dengan presisi mantisa dalam representasi biner yang menempatkan 32 bit.
Bilangan 24 bit dapat direpresentasikan secara aproksimasi dengan bilangan desimal
tujuh digit. Dengan demikian, bilangan 24 bit di berikan untuk merepresentasikan
mantissa dan representasi biner. Satu bit di perlukan untuk tanda bilangan terkait,
meninggalkan tujuh bit eksponen bertanda
Format biner spesifik bilangan titik ambang di tunjukkan dalam gambar 7.23a,
pertama-tama kita asumsikan bahwa basis yang sdi gunkan adalah 2 dan eksponen
bertanda 7 bit dinyatakan sebagai bilangan interger komplemen kedua. Matisa 24 bit di
anggap sebagai pecahan dengan titik biner pada ujung kirinya dan tanda bialngan di
berikan dalam bit paling kiri dari format tersebut. Untuk menyimpan bit signifikan
sebanyak mungkin, mantisa pecahan di jaga dalam bentuk ternormalisasi di mana, untuk
nilai tidak nol, bit paling kirinya selalu 1. Jadi besar mantissa M adalah 0 atau terletak
dalam jangkaun ½ ≤ M < 1.
Bilangan yang tidak dalam bentuk ini selalu di letakkan dalam bentuk
ternornalisasi dengan menggeser pecahan dan menyetel eksponen, asumsikan bahwa
eksponen overflow/underflow tidak terjadi. Gambar 7.23b, menunjukkan nilai tidak
ternormalisasi0,001 … × 22, dan versi ternomalisasinya, 0,1 … × 27. Eksponen 7 bit
komplemen kedua mempunyai jangkauan antara -64 samapai +63 yang berarti bahwa
faktor skala yang di inginkan yaitu antara 10-99 sampai 1099. Jika kita mengurangi ukuran
mantisa untuk memberikan lebih banyak bit pada eksponen, kemudian kita tidak akan
dapat mengapromasikan tujuh digit desimal yang diingikan. Solusi yang telah digunakna
dalam sejumlah komputer yaitu mengubah nilai dari basis yang di terapkan dalam faktor
skala. Basis harus dalam bentuk 2q dengan demikian menggeser ke kiri atau ke kanan
mantisa dengan posisi biner q dengan memperhatikan titik binernya yang masing-masing
berhubungan dengan peningkatan atau penurunan 1 dalam eksponen dari faktor skala.
Jika kita membiarkan basis yang di gunakna adalah 16, kemudian jangkauan faktor skala
menjadi 16-64 sampai 1676 yang berhubungan secara aproksimasi dengan jangkauan
desimal 10-76 sampai 1076. Representasi untuk bilangan titik ambang mempunyai dua
jangkauan yang memadai dan sejumlah bit dalam mantisa. (walaupun demikian seperti
kita lihat nanti, standar titik ambang telah di kembangkan dengan jangkauan yang besar
secara signifikan dan akuransi mantisa diberikan). Karena basis sekarang adalah 16,
pergeseran mantisa untuk melaksanakan normalisasi harus menempati tempat dalam step
pergeseran 4 bit. Ini berhubungan dengan perubahan terkecil (±1) dalam eksponen.
Representasi sekarang di pertimbangkan untuk di normalisasikan jika beberapa 4 bit
utama dari muntisanya adalah 1. Ini sering di sebut hexadesimal normalization
(normalisasi heksadesimal).
32 bit
+0.001 … × 29
0 0000111 1... Versi ternomalisasi
+0.1 … × 27
(b) contoh biner ternormalisasi
1 1000011 00000101… nilai tanpa normalisasi
-0.00000101… × 163
1 1000010 0101... Versi ternormalisasi
-0.0101 … × 162
(c) contoh normalisasi heksadesimal dengan format 64
Harus di tunjukkan bahwa penguatan dalam jangkauan yang di capai dengan
menggunakan basis 16 dalam faktor skala ukur menghasilkan jawaban dalam mantisa
yang sedikit tepat. Meskipun menggunakan 24 bit yang si gunakna untuk mantisa,
normalisasi heksadesimal mengijinkan tiga bit utama dari amntisa untuk manjadi 0. Jadi
dalam beberapa kasus, hanya 21 bit signifikan yang di simpan dalam mantisa. Ini berbeda
dengan penggunaan basis 2 dalam faktor skala, di mana 24 bit yang presisi selalu di
perlukan.
Perubahan lain format bialngan titik ambang sangat berguna, sebagai pengganti
yang mewakili eksponen dalam bentuk interger komplemen kedua. Kita menujukkan
dalam bentuk 64. Dalam bentuk ini eksponen yang memiliki nilai benrtanda E
direpresentasikan dengan nilai E = E + 64. Jika jangkauan yang di inginkan untuk E
adalah -64 ≤ E ≤ 63, nilai excess 64 E akan berada dalam range ≤ E ≤ 127. Faktor skala
terkecil adalah 16-24 yang di representasikan dengan tujuh s, dan faktor skala terbesar
adalah 16+63, yang di representasikan dengan tujuh 1s. penyederhanaan rangkaian ini
perlu untuk menentukan ukuran relatif dari dua bilangan titik ambang. Nilai yang tidak
ternormalisasi dan versi ternormalissai yang berhubungan dengannya dalam excess 64
mempunyai faktor skala berbasis 16 yang di tujukkan dalam gambar 7.23c. Nilai 0 di
representasikan dengan semua bialngan nol.
Pada saat proses perhitungan bialngan yang tidak berada dalam range yanga
dapat di terima mungkinkin dibangkitkan. Ini berarti bahwa representasi
ternormalisasinya memerlukan eksponen yang kurang darri -64 atau lebih dari +63. Pada
kasus pertama kita katakan bahwa underflow terjadi, dan dalam kasus kedua kita katakan
bahwa overflow terjadi. Keadaan seperti ini secara umum di sebut sebagai arithmetic
excepitions. Cara yang seragam untuk menangani perkecualian aritmetika dalam sistem
komputer adalah dengan menaikkan perhatian apabila perkecualian aritmetika tersebut
terjadi. Kemudian ritin untuk keperluan penghentian dapat menerima aksi seperti yang di
nyatakan oleh pemakai atau oleh sistem perjanjian. Sebagai contoh pada underflow,
keputusan yang terjadi mungkin dengan menata nilai ke 0 dalam proses. Diskusi lanjut
mengenai penanganan perkecualian ini berada di luar jangkauan prestasi kita.
Untuk melihat penguatan dalam jangkauan yang telah di capai dengan
menggunakan representasi titik ambang, kita harus mencatat bahwa jangkauan di berikan
dalam bentuk titik tetap 32 bit. Bentuk bit bulat komplemen kedua 32 bit mempunyai
jangkauan kira-kira -2,15 × 109 sampai 2,15 × 109 dan range pecahan yang berada antara
±4.66 × 10-10 sampai ±1. Tentu saja penguatan dalam jangkauan di capai dengan
kehilangan bit signifikan. Sejumlahn besar jangkauan merupakan ciri-ciri signifikan
sistem titik ambang. Namun keterampilan pemakai yang di terapkan pada saat
penanganan otomatis posisi variabel titik biner dengan memperhatikan bit signifikan
merupakan ciri-ciri yang paling penting untuk sistem demikian.
7.10.1 Operasi aritmetika pada bilangan titik amabang
Dalam bagian ini kita akan mendiskusikan prosedur umum untuk penjumlahan
pengurangan, perkalian, dan pembagian bilangan titik ambang. Aturan yang di berikan di
terapkan pada mantisa pencahan 24 bit, heksadesimal yang ternormalisasi dan faktor
skala yang mempunyai basis 16 dan eksponen bertanda 7 bit yang ekspilist dalam format
64. Format ini telah didiskusikan dalam bagian terdahulu, dan satu contohnya di tujukkan
dalam gambar 7.23c, aturan tersebut hanya merinci tahap utama yang di perlukan dalam
pelaksanaan empat operasi detail lebih lanjut tidak di berikan di sini. Sebagai contoh,
kemungkinan overflow atau underflow terjadi tidak di bahas. Lebih-lebih hasil jawaban
antara untuk baik mantisa maupun eksponen masing-masing mungkin memerlukan lebih
dari 24 dan 7 bits untuk merepresentasikan mantisa dan eksponen tersebut. Kedua aspek
operasi tersebut perlu di perhatikan dengan hati-hati dalam desain prosesor aritmetika.
Selama kita tidak mengijinkan detail aturan yang di uraikan tersebut, beberapa
pertimbangan untuk aspek implementasi ini, termasuk pembuatan akan di berikan dalam
bagian berikutnya nanti.
Jika eksponen bilangan tersebut berbeda, mantisa harus digeser dengan
memperhatikan setiap eksponen lainnya sebelum bilangan tersebut di jumlahkan atau di
kurangkan. Perhatikan contoh desimal di mana kita ingin menjumlahkan 2,9400 × 102
dengan 4,3100 × 104. Kita tuliskan kembali 2,9400 × 102 sebagai 0,0294 × 104 dan
kemudian laksanakan penjumlahan mentisa untuk mendapatkan 4,3394 × 10 4. Aturan
umum untuk penjumlahan dan pengurangan dapat dinyatakan sebagai berikut:
ATURAN PENJUMALAHAN/PENGURANGAN
1. Pilihan bilangan dengan eksponen terkecil dan geser mantisanya ke kanan (dalam
step 4 bit) sebanyak langkah yang sama dengan perbedaan dalam eksponen
2. Atur eksponen hasil sama dengan eksponen terbesar
3. Laksanakan penjumlahan/pengurangan pada mantisa dan tentukan tanda hasil
jawaban
4. Normalisasikan nilai hasil jawaban jika di perlukan dan gunakan 24 bit yang
pertama sesudah titik biner (pemotongan, seperti yang di diskusikan kemudian
sebagai mantisa hasil)
Perkalian dan pembagian merupakan pengerjaan yang lebih mudah dari pada
penjumlahan dan pengurangan karena tidak di perlukan penjajaran mantisa.
ATURAN PERKALIAN
1. Jumlah eksponen dan kurangkan 64
2. Kalikan mantisa dan tentukan tanda hasilnya
3. Normalisasikan nilai hasil jika di perlukan dan gunakan 24 bit yang pertama
sesuai titik biner (di potong) sebagai mantisa hasil jawaban
ATURAN PEMBAGIAN
1. Kurangkan eksponen dan jumlahkan 64
2. Bagi mantisa dan tentukan tanda hasilnya
3. Normalisasikan nilai hasil jika di perlukan dan gunakan 24 bit yang pertama
sesudah titik biner (di potong) sebagai mantisa dari hasil jawaban
Penjumlahan atau pengurangan 64 dalam dua aturan di atas adalah hasil dari
penggunaan notasi excess 64 untuk eksponen
7.10.2 Bit penjaga dan pembulatan
Sebelum kita mendiskusikan pemakaian operasi titik ambang, kita harus
mempertimbangkan beberapa detail yang berhubungan dengan langkah algoritma di atas.
Meskipun mantisa operand awal dan hasil akhir di dekati dengan 24 bit penting untuk
menyimpan bit ekstra Q yang seringkali di sebut dengan guard bit, selama step
pertengahan. Ini menghasilkan jawaban dengan ketelitian maksimun.
Meskipun operasi menggerakkan kembali bit penjaga dalam pembangkitan hasil
akhir menimbulkan persoalan penting, pecahan biner harus di potong untuk memberikan
suatu fraksi yang merupakan aproksimasi yang lebih pendek untuk nilai yang terpanjang.
Problem ini timbul juga dalam situasi yang lain, sebagai contoh dalam konversi pecahan
desimal ke pecahan biner
Ada sejumlah cara untuk memotong bilangan. Cara yang paling sederhana adalah
dengan menggerakan kembali bit penjaga dan membuat tidak ada perubahan dalam bit
penyimpan. Hal ini di sebut chopping misalkan kita ingin memotong fraksi enam menjadi
tiga bit dengan menggunakan metoda ini. Semua fraksi dalam range 0.b -1 b-2 b-3 000
hingga 0.b-1 b-2 b-3 111 akan di potong menjadi 0.b-1 b-2 b-3. Kesalahan (error) dalam hasil
3 bit. Secara tepat berjangkauan dari 0 samapai 0,000111. Lebih mudah mengatakan
bahwa secara umum biasa kesalahan dalam chopping mempunyai jangkauan dari 0
sampai 1 dalam posisi signifikan terkecil bit penyimpan. Pada contoh kita ini adalah
posisi b-3. Hasil chopping disebut aproksimasi biased, karena jangkauan kesalahan tidak
simetris terhadap nol.
Metoda sederhana pemotongan berikutnya adalah von neumann roundding
(pembuatan von neumann). Jika bit yang akan di gerakkan kembali semuanya nol,
mereka di turunkan secara sederhana dengan tanpa perubahan pada bit penyimpan.
Namun, jika beberapa bit yang akan di gerakkan kembali adalah 1, bit signifikan terkecil
bit penyimpan di tetapkan menajdi 1. Dalam contoh pemotongan 6 bit menjadi 3 bit kita,
semua pecahan 6 bit dengan b -4 b-5 b-6 tidak sama dengan 000 akan di potong menjadi 0.b-
1 b-21. Mudahan untuk di lihat kesalahan dalam metoda pemotongan ini berada pada
jangkauan -1 dan +1 dalam posisi LSB dari bit penyimpan. Meskipun range kesalahan
dengan teknik ini adalah lebih besar daripada dengan teknik chopping, besar
maksimunnya sama, dan aproksimasi adalah unbiased karena jangkauan kesalahan
simetri terhadap 0.
Menguntungkan untuk menggunakan aproksimasi unbiased jika sejumlah besar
operand dan operasi di libatkan dan pembangkitan sedikit hasil dan jika diasumsikan
bahwa kesalahan individual diaproksimasikan secara simetris terdistribusi sepanjang
jangkauan kesalahan. Dalam kasus ini kesalahan positif harus di pelihara untuk
mengofset kesalahan negatif sebagai proses komputansi. Dari pandangan statistik, kita
boleh mengharapkan hasil yang mempunyai kemungkinan tinggi agar menjadi sangat
akurat.
Metoda pemotongan ketiga dalah prosedur rounding (pembulatan). Metoda ini
mencapai aproksimasi yang paling dekat dengan bialngan yang akan di potong dan
merupakan teknik yang unbiased. Prosedur metoda ini adalah sebagai berikut bilangan 1
di tambahkan pada posisi LSB bit untuk di simpan jika terdapat 1 dalam posisi MSB bit
yang akan di gerakkan kembali. Jadi, 0.b-1 b-2 b-31 … di bulatkan menjadi 0.b-1 b-2 b-
3+0.0001 dan 0.b-1 b-2 b-30 … di bulatkan menjadi0.b-1 b-2 b-3, ini melengkapi aproksimasi
yang di inginkan, kecuali untuk kasus dengan situasi berkaitan. Nilai terpanjang adalah
separo jalan antara dua representasi terpotong yang berdekat. Salah satu kemungkinan
untuk memecahkan pertalian secara unbiased adalah dengan memilih bit penyimpan
untuk di jadikan bialnagn genap yang terkait. Dengan kaitannya dengan contoh 6 bit kita,
nilai 0.b-1 b-2 0100 di potong menjadi 0.b-1 b-21+ 0.001. Bentuk deskripsi pembulatan ke
bilangan terdekat, atau bilangan genap terdekat dalam kasus pertalian biasanya di
gunakan untuk menghubungkan teknik pemotongan ini. Jangkauan kesalahan adalah
1
sekitar − sampai dalam posisi LSB dari bit penyimpan. Jelas bahwa metoda ini adalah
2
metoda baik. Namun, juga yang paling mahal untuk di terapkan karena memerlukan
penjumlahan dan kemungkinan normalisasi kembali. Teknik pembulatan di gunakan
dalam standar IEEE untuk bilangan titik ambang yang akan di uraikan dalam Bab 7.10.4
Diskusi tentang kesalahan ini telah di perkenalkan sewaktu bit peraga di aktifkan
kembali oleh pemotongan setelah terjadi pada kasus operasi pemotongan. Ketika seri
kalkulasi yang panjang meliputi bilangan titik ambang di laksanakan, analisis yang
menentukan jangkauan kesalahan atau harga batas hasilnya dapat merupakan pelajaran
yang sangat rumit. Kita tidak akan membicarakan lebih aspek komputasi numeric ini
7.10.3 Penerapan operasi titik ambang
Ketentuan aritmetika titik ambang dalam computer besar maupun kecil merupakan
keuntungan yang sangat besar bagi kebanyakan pemakai. Selain dari pertimbangan
perluasan jangkauan nilai, keluwesa lokasi titik biner merupakan aspek penting. Pemakai
computer (pemprogram) tidak perlu khawatir terhadap manipulasi factor skala,
meluruskan titik biner dan sebagainya. Bialngan pecahan dan bialngan campuran dapat di
gunakan semudah bilangan bulat pada arus pemprogram tertentu.
Penerapan perangkat keras operasi titik ambang melibatkan rangkaian yang dapat
di pertimbangkan. Operasi ini mungkin juga di terapkan dengan rutin perangkat lunak.
Dalam kasus yang lain ketentuan harus di buat untuk konversi masukan dan keluaran
pada dan dari representasi desimal bilangan yang di pakai. Dalam banyak komputer,
operasi titik ambang tersedia pada aras perintah dasar mesin. Jangkauan penerapan
perangkat keras yang didiskusikan terdahulu.
Sebagai suatu contoh penerapan operasi titik ambang, mari kita perhatikan
diagram blok untuk penerapan perangkat keras penjumlahan dan pengurangan pada
operand titik ambang 32 bit yang memiliki format seperti di tunjukkan dalam gambar
7.23c. Baiarkan tanda, eksponen dan mentisa dari operand A dan B masing-masing di
representasikan dengan S A, EA, MA, dan SB, EB, MB dengan mengikuti aturan ADD /
SUBTRACT yang di berikan dalam bagian 7.10.1 kita lihat bahwa langkah pertama
membandingkan eksponen untuk menentukan sejauh mana menggeser mantisa bilangan
dengan eksponen terkecil. Nilai geser hitung ini, n di tentukan oleh rangkaian
pengurangan 7 bit pada ujung kiri atas gambar 7.24. Besar perbedaan EA – EB, yaitu n, di
kirimkan ke unit SHIFTER jangkauan n dibatasi pada 0,1,…7 dengan n=7 jika [E A – EB]
≥ 7, sebaliknya n = [EA – EB] jika n= 7, di mungkinkan untuk menentukan hasil
secepatnya yang sama dengan operand terbesar (atau negatifnya). Namun pilihan ini tidak
di tunjukkan secara eksplisit dalam gambar 7.24. tanda perbedaan hasil perbandingan
eksponen menentukan bagaimana mantisa akan di geser. Dengan demikian tanda di
kirimkan ke jaringan SWAP pada ujung kanan atas gambar ini. Jika menunjukkan 0,
maka EA ≥ EB, dan mantisa MA dan MB di kirimkan lurus melalui jaaringan SWAP. Hasil
ini dalam MB akan di kirimkan ke SHIFTER untuk di geser n hex posisi ke sebelah
kanan. Mantisa yang lain, MA di kirimkan secara langsung ke penjumlahan-pengurangan
mantisa. Jika menunjukkan 1, maka EA < EB dan mantisa di turunkan sebelum di kirimkan
ke SHIFTER.
Langkah ke 2 di laksanakan oleh multiplexer dengan dua cara, MPX pada ujung
kiri bawah gambar tersebut. Eksponen hasil E sementara di tentukan sebagai E A jika EA ≥
EB, atau di tentukan sebagai EB jika EA < EB. ini di tentukan oleh tanda perbedaan hasil
operasi perbandingan eksponen dalam step 1.
tisa Langkah ke 3 melibatkan komponen utama. Mantisa penjumlahan-
pengurangan pada bagian tengah gambar tersebut. Logika CONTROL menentukan
apakah mantisa adalah untuk di jumlahkan atau di kurangkan. Ini di putuskan oleh tanda
operand (SA dan SB) dan operasi (jumlah atau kurang) yang untuk di laksanakan pada
operand. Logika CONTROL menentukan tanda hasil S R, sebagai contoh jika A adalah
negatif (SA = 1), B adalah positif (SB = 0), dan operasi A-B maka mantisa di kurangkan.
Tanda hasil SR sekarang tergantung pada mantisa operasi pengurangan. Sebagai contoh,
jika EA > EB maka MA – (MB tergeser) akan positif dan hasilnya akan positif. Tetapi jika
EB < EA makan MB – (MA tergeser) akan positif dan hasilnya akan negatif. Contoh ini
menunjukkan bahwa tanda perbandingan eksponen di perlukan sebagai masukan ke
jaringan CONTROL. Ketika EA = EB dan mantisa di kurangkan tanda mantisa
penjumlahan-pengurangan keluaran penting sekali dalam penentuan tanda hasil. Pembaca
sekarang harus dapat membentuk tabel kebenaran yang lengkap untuk jaringan
CONTROL
langkah ke 4 aturan ADD/SUBTRACT adalah normalisasi mantisa hasil M yang
di hasilkan dari step 3. Sejumlah nol utama dalam M menentukan bilangan X dari digit
hex untuk di terapkan pada M. kemudian nilai ternormalisasi di potong untuk
membangkitkan mantisa 24 bit MR, dari hasil. Nilai X juga di kurangkan dari hasil
sementara eksponen E untuk membangkitkan hasil eksponen yang benar ER, kita harus
mencatat bahwa memungkinkan terjadi pengeseran kekanan digit hex tunggal din
perlukan untuk menormalkan hasil. Ini akan menjadi kasus jika dua mentisa bentuk
0.1xx… di jumlahkan. Kemudian vektor M akan memiliki bentuk 1.xxx… hal ini akan
berhubungan dengan nilai X dari -1 pada gambar.
Pendekatan modern mendapatkan operasi titik ambang dalam chip VLSI yang
dapat digunakan sebagai piranti peripheral dengan prosessor fungsi umum. Beberapa chip
demikian tersedia secara komersial. Contoh yang khas adalah Intel 8231 1 dan AMD
95112. Mereka berkemampuan melaksanakan keempat dasar operasi titik ambang, yaitu
kurang, jumlah, kali dan bagi, di samping menghitungfungsi akar bilangan dan
trigonometri, logaritma dan eksponensial. Kedua chip ini menggunakan bentuk titik
ambang 32 bit, dan matisa 24 bit ternornalissai biner, biasanya prosessor berkomunikasi
dengan chip ini melalui terminal M/K paralel. Bagian string byte terdiri atas operand-
operand dan operasi encode di kirimkan chip aritmetika. Kemudian prosessor masuk ke
polling loop atau menunggu penghentian sampai chip menyelesaikan operasinya,
kemudian bagian string byte yang mengkodekan hasil di kembalikan lagi ke prosessor
atau ke memori utama.
Setelah satu chip titik ambnag yang snagat terkenal adalah Intel 6087 3. Chip ini
di butuhkan untuk di gunakan bersama-sama dengan mikroprosessor Intel 8086. Chip ini
tidak bekerja sebagai piranti peripheral seperti pada kasus dengan dua chip yang baru saja
di uraikan, tetapi chip 8087 di selaraskan sedikit dekat dengan chip CPU 8086. Chip 8087
ini mengeksekusi perintah titik ambang secara langsung sesaat setelah mereka di ambil
dari memori utama dan chip ini biasa di sebut sebagai coprecessor. Chip 8087 ini
mempunyai register file untuk operand dan untuk rangkaian aritmetika yang di perlukan.
Format data yang di gunakan dalam 8087 menyesuaikan diri dengan standar IEEE akan di
diskusikan dalam bagian 7.10.4 chip 8087 mengevaluasi fungsi-fungsi trigonometri,
logaritmik, dan eksponensial sebaik melaksanakan ke empat operasi dasar titik ambang
jumlah, kurang, kali dan bagi
7.10.4 Titik ambang standar IEEE
Asosiasi komputer IEEE telah mengembangkan standar untuk aritmetika biner
titik ambang. Motivasi utama standardisasi demikian adalah kemungkinan
ketertarikan dalam perlengkapan numerik yang berorientasi pada program dari
satu sistem komputer ke sistem komputer lainnya dan untuk mendorong
perkembangan perangkat lunak numerik yang berkualitas tinggi.
Standar ini terdiri dari tiga aspek: format tipe data, operasi aritmetika dan
penanganan perkecualian aritmetika untuk kesalahan (seperti overflow/underflow,
pembangian dengan bilangan nol, dan lain-lain). Di sana kita hanya akan
mendiskusikan secara detail hal pertama dan ke tiga hal di atas.
32 bit
S E’ M
0 00101000 001010... 0
S E’ M
B= 1 011111 101010
14. komputer IBM 270 dengan format titik ambang 32 bit seperti di uraikan dalam bagian
7.10.
a. nyatakan bilangan desimal berikut ini dalam format tersebut
1. 0 6. 3,92 × 102
2. -1 7. -0,000125
3. 0,5 8. 500
4. 10 9. -1,0 × 103
5. 4096 10. 1,1 × 104
12 bit