Anda di halaman 1dari 47

ARITMETIKA LANJUTAN

Operasi dasar dalam semua komputer digital adalah penjumlahan atau


pengurangan dua bilangan. Operasi demikian di sediakan pada tingkat perintah mesin.
Operasi tersebut di terapkan dengan fungsi logika dasar seperti AND, OR, NOT,
EXLUCIVE-OR, dalam sub-sistem unit aritmetika dan logika (ALU) dari prosessor,
seperti telah di uraikan dalam Bab 1 dan 4. Biasanya fungsi ini di laksanakan oleh
rangkaian logika kombinational. Bilangan yang akan di operasikan di kirimkan ke ALU
sebagai keluaran dari dua register, biasanya melalui bus prosessor internal. Susunan yang
umum di tunjukan dalam gambar 4.1. Hasilnya di operasikan ke register lainnya setelah
terjadi saat yang mengizinkan logika kombinasional menyelesaikan komputasi. Operasi
ini dapat di eksekusi di dalam selang waktu yang di berikan pada langkah dasar dalam
pengurut control perangkat keras atau di dalam selang waktu eksekusi perintah mikro
dalam prosessor yang di terapkan dengan control program mikro. Biasanya, operasi ALU
lebih cepat dari pada opersi pengaksesan memori. Ini berarti bahwa suatu perintah yang
meliputi operasi ALU pada bilangan yang di operasikan yang harus di bawa dari memori
tidak memerlukan waktu eksekusi yang lebih lama dari pada perintah yang hanya
menggerakkan isi satu lokasi memori ke lokasi memori lainnya.
7.2 PENAMBAHAN BILANGAN POSITIF
Pada bagian ini dan selanjutnya, kita hanya akan memperhatikan pada bilangan
tak bertanda. Perhatikan penjumlahan 2 bilangan 1 bit. Hasilnya diperlihatkan dalam
Gambar 7.2. Hasil jumlah 1 dan 1 memerlukan 2 bit vector 10 untuk menghasikan nilai 2.
Kita katakan bahwa hasil jumlahnya 0 (nol) dan carry out adalah 1. Operasi

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)

Gambar 7.4(a) logika untuk tahap tunggal

xn-1 yn-1 x1 y1 x0 y0
cn-1 c2 c1 c0
A A A

sn-1 si s0

posisi bit paling posisi bit kurang


berarti berarti

Gambar 7.4(b) penjumlahan pembawa-riak n-bit

xkn-1 ykn-1 x2n-1 y2n-1 xn yn xn-1 yn-1 x0 y0

ckn . . . . . . cn . . . c0
A A A

. . . . . . . . .
skn-1 s(k-1)n s2n-1 sn sn-1 s0

Gambar 7.4(c) kaskade beberapa penjumlahan k n-bit

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
. .
. .
. … > . .

. .

. . Gambar 7.5 (a) lingkaran

. pertanyaan bulat N mod

0000

1111 0001

1110 0010

1100 0100

1011 0101

1010 0110
1001 0111

1000

Gambar 7.5 (b) sistem 16 mod untuk bilangan-bilangan komplement ke 2

Beberapa contoh sederhana. Kesimpulannya dapat di gambarkan sebagai berikut sistem


tanda dan besar merupakan penerapan bilangan yang paling sederhana, tetapi juga paling
menyulitkan untuk operasi penjumlahan dan pengurangan. Metode komplemen pertama
merupakan penerapan yang agak lebih baik. Meskipun demikian, metode komplemen
kedua yang merupakan penerapan yang sedikit kurang umum, merupakan metode yang
paling baik untuk keperluan menyatakan operasi penjumlahan dan pengurangan.

mengapa penerapan komplemen kedua merupakan pilihan yang baik? Pertama,


perhatikan penjumlahan modul N (mod N). Peralatan grafis yang sangat menolong untuk
menguraikan penjumlahan mod N untuk bilangan bulat positif adalah suatu lingkaran
dengan N buah nilai, yaitu 0 sampai N-1 yaitu di tuliskan sepanjang keliling lingkaran
tersebut, seperti di gambarkan dalam gambar 7.5a. Untuk melakukan suatu contoh
spesifik, kita akan memilih N=16. Operasi (7 + 4) mod 16 akan menghasilkan bilangan
11. Untuk melaksanakan operasi ini secara grafis, tempatkan 7 mod 16=7 pada lingkaran
dan kemudian turun 4 unit dalam arah jarum jam sampai pada jawaban yaitu 11. Sebagai
contoh kedua, perhatikan operasi (9 + 14) mod 16=7, yang di modelkan pada lingkaran
dengan menempatkan 9 mod 16=9 dan turun 14 unit searah jarum jam untuk sampai pada
jawabannya yaitu 7. Teknik grafis ini bekerja untuk komputansi (a+b) mod 16 dan turun
b unit searah dengan jarum jam untuk sampai pada jawaban dari operasi (a+b) mod 16
tersebut.

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,

Sekarang mari kita terapkan teknik penjumlahan mod 16 yang di diskusikan di


atas sebagai contoh sederhana yaitu penjumlahan bilangan +7 dengan -3. Pernyataan
komplemen kedua untuk bilangan-bilangan tersebut adalah 0111 dan 1101 untuk
menambahkan bilangan tersebut, tempatkan 0111 pada lingkaran gambar 7.5b, kemudian
dari 1101 turun 13 langkah searah dengan jarum jam agar sampai pada 0100, yang
menghasilkan jawaban yang benar yaitu +4. Jika kita menggunakan salah satu dari
rangkaian adder yang didiskusikan terdahulu, kita memperoleh

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.

Sekarang kita menyatakan aturan yang menjalankan penjumlahan dan


pengurangan dari bilangan bertanda n – bit menggunakan sistem penerapan bilangan
komplemen kedua

1. Untuk melaksanakan penjumlahan dua bilangan, jumlahkan penerapan bilangan-


bilangan tersebut dalam adder n bit, abaikan sinyal carry-out dari posisi HSB. Hasil
penjumlahan akan bernilai benar secara aljabar dalam penerapan komplemen kedua
selama jawaban berada dalam range -2n-1 sampai +2n-1 -1
2. Untuk melakukan pengurangan dua bilangan X dan Y, yaitu untuk melakukan X-Y,
bilangan Y di bentuk dalam sistem komplemen kedua dan kemudian di tambahkan
pada X seperti dalam aturan 1. Sekali lagi apabila jawaban berada dalam range -2n-1
sampai +2n-1 -1, jawaban akan bernilai benar secara aljabar dalam sistem penerapan
komplemen kedua.

Pada gambar 7.6 menunjukkan beberapa contoh untuk penjumlahan dan


pengurangan. Semua contoh dengan 4 bit ini jawaban berada dalam jangkauan.

(a) 0010 (+2) (b) 0100 (+4)


+ 0011 (+3) + 1010 (-6)
101 (+5) 1110 (-2)

(c) 1011 (-5) (d) 0111 (+7)


+ 1110 (-2) + 1101 (-3)
1001 (-7) 0100 (+4)

(e) 1101 (-3) = 1101


1001 (-7) + 0111
1110 (+4)
(f ) 0010 (+2) = 0010
0100 (+4) + 1100
1110 (-2)

(g) 0110 (+4) = 0110


0011 (+3) + 1101
0011 (+3)

(h) 1001 (-7) = 1001


1011 (-5) + 0101
1110 (-2)

(i) 1001 (-7) = 1001


0001 (+1) + 1111
1000 (-8)

(j) 0010 (+2) = 0010


1101 (-3) + 0011
0101 (+5)

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

...
...

Gambar 7.7 jaringan logika penjumlahan-pengurangan biner


Untuk kasus unit terkombinasi penjumlahan-pengurangan, seperti terdapat dalam
gambar 7.7, variabel yn-1 dalam persamaan overflow harus di terima dari keluaran
gerbang EX-OR yang paling kiri. Ini akan memimpin pada indikasi overflow yang benar
baik dari penjumlahan maupun dari pengurangan
Terjadinya overflow merupakan kondisi penting untuk mendeteksi dalam suatu
komputer adalah lazim untuk memberikan bendera kode kondisi sebagai indikator
overflow. Di mungkinkan bendera ini menyebabkan interupsi apabila jawaban perintah
penjumlahan atau pengurangan berada dalam kondisi overflow. Ini adalah tanggung
jawab programmer untuk memutuskan operasi perbaikan.
7.5 ARITMETIKA DAN KONDISI PERCABANGAN
Kita telah mendiskusikan penjumlahan bilangan tak bertanda, seperti penjumlahan dan
pengurangan bilangan-bilangan bertanda dalam representasi komplemen kedua. Dalam
keadaan ini akan sangat berguna untuk mendiskusikan kembali kode kondisi dan
percabangan kondisional yang di bahas dalam bab 2, bagian 2.6.5, 2.6.6 (PDP-11) dan
2.7.5 (68000).
Dalam kedua jenis komputer tersebut, PDP-11 dan 68000, empat bendera kode
kondisi N, Z, V dan C di set dan di jelaskan dengan operasi aritmetika sebagai berikut:
N set ke keadaan 1 jika jawaban adalah negatif, jika tidak maka di nyatakan ke
keadaan 0
Z set ke keadaan 1 jika jawaban adalah 0, jika tidak maka di nyatakan ke keadaan 0
V set ke keadaan 1 jika terjadi aritmetika overflow, jika tidak maka di nyatakan ke
keadaan 0
C untuk operasi penjumlahan, C di set ke keadaan 1 jika jawaban adalah carry-out,
jika tidak maka di nyatakan ke keadaan 0. Untuk operasi pengurangan, C di set ke
keadaan 1 jika tidak ada jawaban carry-out, jika tidak maka diset ke keadaan 0
Dalam diskusi ini, dapat di asumsikan bahwa penjumlahan dan pengurangan di
laksanakan seperti di tunjukkan oleh unit logika dalam gambar 7.7. sinyal carry-out di
tunjukkan dalam defenisi bendera C sebagai sinonim dengan sinyal cn dalam gambar
tersebut. Bendera V di set sesuai dengan persamaan overflow yang di berikan dalam
bagian 7.4.1
Sekarang mari kita perhatikan bagaimana perintah percabangan kondisional
membuat bendera kode kondisi berguna. Contoh yang akan kita gunakan menerapkan
perintah percabangan kondisional dalam 68000. Argumentasi yang di terapkan untuk
PDP-11
Dalam beberapa perintah percabangan, kondisi percabangan di tetapkan dengan
nilai dari bendera tunggal. Sebagai contoh, perintah BNE (branch if not equal to 0/
bercabang jika tidak sama dengan 0) dan perintah BEQ (branch if equal to 0/ bercabang
jika sama dengan 0) menguji bendera Z dengan cara yang nyata. Perintah lainnya yang
melibatkan pengujian dari dua atau lebih bendera. Perhatikan perintah BLS (branch if
lower of same/bercabang jika lebih rendah atau sama). Secara normal perintah ini di
gunakan sesudah perintah perbandingan, yang membandingkan dua bilangan bulat tak
bertanda. Percabangan di terima operand yang di tuju lebih sedikit atau sama dengan
sumber operand. Perbandingan di lakukan dengan mengurangkan sumber operand dari
operand yang di tuju. Bendera C di set ke keadaan jika tak ada carry yang terjadi dalam
operasi jelas bahwa tak ada carry terjadi ketika sumber operand lebih kecil dari pada yang
di tuju. Apabila operand yang di tuju sama denag sumber operand, carry terjadi, tetapi
kemudian bendera Z di set ke keadaan 1 karena jawaban adalah 0. Dengan demikian,
kondisi percabangan yang di perlukan adalah C + Z =1
Sekarang perhatikan perbandingan yang mirip dan berhubungan dengan hilangan
bertanda. Dalam kasus ini, perintah BLE (branch if less than of equal / percabangan jika
lebih kecil atau sama) harus di gunakan sebagai pengganti dari perintah BLS. Jawaban
dari perbandingan tersebut akan menjadi negatif jika operand yang di tuju lebih sedikit
dari pada sumber. Hal ini salah untuk satu kondisi di mana percabangan harus terjadi.
Dengan demikian, akan terlihat bahwa N + Z = 1 merupakan kondisi percabangan
perintah BLE. Hal ini cukup jika aritmetika overflow tidak terjadi, tanda jawaban akan
menjadi berlawanan dengan yang sesuai dalam kasus ini, komplemen bendera N harus di
tes. Dengan demikian, kondisi percabangan lengkap untuk perintah BLE adalah (N + V)
+Z=1
Aspek penting lainnya bendera code kondisi adalah aturan bendera C dalam
pelaksanaan aritmetika presisi banyak. Misalkan perintah penjumlahan dua operand,
masing-masing menepati sejumlah kata yang berlainan dalam memori. Penjumlahan yang
di perlukan dapat di lakukan dengan lup program dengan menjumlahkan kata individual
dalam iterasi yang terkait. Bendera C harus di pelihara dari satu iterasi ke iterasi
berikutnya agar supaya menyebarkan carry melalui operasi penjumlahan yang lengkap.
Satu problem timbul jika bendera C di ganti dengan perintah yang lain perintah
penjumlahan dengan lup. Dalam komputer 68000, bendera kode kondisi kelima, X di
tambahkan. Bendera X di set dengan cara yang sama seperti bendera C, meskipun tidak di
pengaruhi jumlah perintah yang sama. Dengan demikian, bendera X melayani aturan
pemeliharaan nilai bendera carry yang di gunakan dalam rutin aritmetika presisi banyak.
7.6 PERKALIAN BILANGAN POSITIF
Algoritma “paper-and-pencil” yang biasa untuk perkalian bilangan bulat di
nyatakan dalam beberapa posisi sistem seperti di tunjukkan dalam gambar 7.8a, untuk
sistem biner, mengasumsikan operand positif 4 bit. Hasil perkalian dalam contoh ini di
sesuaikan menjadi 8 bit, seperti di tunjukkan dalam gambar tersebut. Dalam sistem biner,
perkalian bilangan yang akan di kalikan dengan bilangan pengali 1 bit mudah di kerjakan.
Jika bit bilangan pengali adalah 1, bilangan yang akan di kalikan di masukkan dalam
posisi yang tergeser lainnya untuk membentuk hasil perkalian. Jika bilangan
pengaliannya 0 maka bilangan 0 di masukkan seperti dalam baris ke tiga dalam contoh
tersebut.
Di mungkinkan untuk menerapkan perkalian biner operand positif dalam susunan
logika dua dimensi kombinasional yang murni, seperti di tunjukkan dalam gambar 7.8b,
komponen utama dalam setiap sel adalah sebuah rangkaian adder. Garbang AND dalam
beberapa sel menempatkan apakah bilangan yang akan di aklihkan di tambahkan ke bit
hasil perkalian persial yang baru akn datang, yang akan berdasarkan nilai dari bit
bilangan pengali qi. Masing-masing baris I, dengan 0 ≤ i ≤ 3, menjumlahkan bilangan
yang akan di kalikan (di geser secara sesuai) ke hasil perkalian persial yang baru datang
PPi untuk membangkitkan hasil perkalian persial yang akan datang PP (i + 1) jika qi = 1,
jika qi = 0, Ppi di lewatkan secara vertikal ke sebelah bawah tanpa di ubah. Secara jelas,
semua PP0 adalah 0 dan PP4 adalah hasil perkalian yang di inginkan. Bilangan yang akan
di kalikan di geser ke sebelah kiri satu posisi setiap baris dari jalur sinyal diagonal.
Meskipun pengalian kombinasional di atas cukup mudah di mengerti, tetapi tidak
praktis untuk di gunakan untuk menghadapi bilangan yang panjang, karena pengalian
kombinasional menggunakan gerbang dalam jumlah yang banyak dan hanya
melaksanakan satu fungsi. Banyak komputer yang melaksanakan perkalian dalam set
perintah mesin dasar mengerjakan juga melalui urutan operasi yang mirip dengan yang di
tunjukkan dalam gambar 7.9, diagram blok dalam gambar 7.9a, menerangkan susunan
perangkat keras yang mungkin. Rangkaian ini melaksanakan perkalian dengan
menggunakan adder tunggal n kali untuk menerapkan penjumlahan yang di laksanakan
secara renggang oleh n baris adder ripple-carry dari gambar 7.8b, kombinasikan register
A dan Q menahan Ppi selama waktu ketika bit pengali qi di gunakan untuk
membangkitkan sinyal ADD/NOADD. Sinyal ini mengontrol penjumlahan dari bilangan
yang akan di kalikan M ke Ppi untuk mendapatkan PP (i + 1). Terdapat n siklus yang di
perlukan untuk menghitung hasil perkalian. Hasil perkalian persial tumbuh dengan
panjang lebih dari 1 bit tiap
1101 (13) bilangan yang akan di kalikan M
× 1011 (11) bialngan pengali Q
1101
1101
0000
110 1 .
1 0001111 (143) hasil perkalian
7.8 (a) Algoritma perkalian n “paper-and-pencil”
bagian hasil kali 0-----------------------0 m3 0 m2 0 m1 0 m0
q0
0
PP1-------------------------- p0
q1

PP2----------------------

PP3------------------

P P4= hasil perkalian, bit hasil perkalian

Sebagian (PPi)

mj

qi

Sel khusus

Carry-out A carry-in

Sum

Bit dari hasil perkalian persial yang di keluarkan PP (i + 1)


7.8 (b) implementasi larikan

Register (diinisialisasi 0)

Geser ke kanan

C an-1 ... a0 qn-1 ... q0

kontrol

ADD(1)/NOADD(0)
Penju
mlaha
n n-bit

mn-1 ... m0

Bilangan yang akan di kalikan (M)

7.9 (a) konfigurasi register


1101 Konfigurasi inisiasi

0 0000 1011
C A Q

0 1101 1011 jumlah


0 0110 1101 geser siklus pertama

1 0011 1101 jumlah


0 1001 1110 geser siklus kedua

0 1001 1110 jumlah


0 0100 1111 geser siklus ketiga

1 0001 1111 jumlah


0 1000 1111 geser siklus keempat
Perkalian

7.9 (b) contoh perkalian


Siklus vektor awal (PP0) dari n 0 dalam register A. carry-out adder di simpan dalam
register C yang di tunjukkan pada ujung kiri register A. pada saat bilangan pengali di
muatkan ke dalam register Q bilangan yang akan di kalikan di muatkan ke dalam regiater
M, C dan A di set ke keadaan 0. Pada akahir setiap siklus C, A dan Q di geser ke sebelah
kanan satu posisi bit yang mengijinkan pertumbuhan hasil perkalian parsial sebagai
bilangan pengali yang di geser keluar dari register Q. karena pengeseran ini, bit bilangan
pengali qi terlihat pada posisi LSB dari Q untuk membangkitkan sinyal ADD/NOADD
pada waktu yang benar. Di mulai dengan q0 selama siklus pertama, q1 selama siklus
kedua dan seterusnya. Sesudah di gunakan bit bilangan pengalidapat di buang. Hal ini di
selesaikan oleh operasi geser ke kanan. Perhatikan bahwa carry-out tersebut harus di
tahan dalam flip-flop C untuk di geser ke kanan dengan isi dari A dan Q. Sesudah n
siklus, setengah bagian orde tinggi dari hasil perkalian di tahan di register A dan setengah
bagian orde rendah di tahan dalam register Q. Contoh perkalian dari gambar 7.8a di
tunjukkan dalam gambar 7.9b seperti yang di laksanakan oleh susunan perangkat keras
ini.
Sekarang kita dapat menghubungkan komponen dari gambar 7.9a dan gambar
4.1. Bagian yang relevan dari gambarkan kembali dalam gambar 7.10. Di asumsikan
bahwa urutan perkalian di perangkat keras adalah perintah mesin. Lebih jauh lagi, di
asumsikan bahwa bilangan pengali dan bilangan yang akan di kalikan masing-masing
berada dalam register R2 dan R3, dan bahwa hasil perkalian dua kata akan di letakkan
dalam R1 dan R2. Pertama, bilangan yang akan dikalikan di pindahkan ke dalam register
Y. jadi register Y berhubungan dengan M

.
.
.

R1 Inisialisasi 0
R2
Bilangan pengali

R3 Bilangan yang akan di kalikan

.
.
.
Y

A B

ALU

Gambar 7.10 susunan prosessor komputer untuk perkalian


Dalam gambar 7.9a, dan R1 dan R2 berhubungan dengan A dan Q. hubungan harus di
buat sehingga R1 dan R2 dapat di geser ke sebelah kanan sebagai kombinasi dua kata.
Transfer dari Z ke R1 di buat setelah setiap siklus di lakukan. Bit C dalam gambar 7.9a,
secara aktual adalah bendera carry dalam kode kondisi. Di mungkinkan untuk
menghubungkan dengan R1 untuk operasi pengeseran seperti dalam gambar 7.9a, kita
tidak akan memberikan urutan transfer register untuk perkalian pada aras yang di
gunakan dalam Bab 4, sehingga jelas bagaimana hal itu di lakukan.
Karena kita mengasumsikan bahwa operasi perkalian dalam perangkat keras
komponen yang di sebut control sequencer ti terapkan untuk pengurutan perintah
eksekusi umum, seperti di tunjukkan dalam Bab 4. Hasil ini dalam bentuk perintah mesin
tunggal yang relatif rumit. Jika adder mempunyai penundaan sekitar 50 ns dan pengatur
pengontrolan dan operasi pergeseran yang berhubungan dengan setiap siklus menerima
50 ns yang lain, maka operasi perkalian perangkat keras dalam komputer dengan panjang
kata 16 bit mungkin menerima 1,5 sampai 2 µs.
7.7 PERKALIAN OPERAND BERTANDA
Perkalian operand bertanda yang membangkitkan hasil perkalian dengan panjang
berganda dalam system bilangan komplemen kedua memerlukan sedikit catatan tentang
skema representasinya. Kita tidak akan mendiskusikan perkalian dalam representasi yang
lain karena akan di kurangi menjadi perkalian dari operand posiif yang sudah di
diskusikan. Akumulasi hasil perkalian parsial dengan menambahkan versi dari bilangan
yang akan di kalikan seperti diseleksi dengan bit bilangan pengali tetap merupakan stategi
umum.
Mula-mula mari kita memperhatikan kasus suatu bilangan pengali positif dengan
bilangan yang akan di kalikan adalah bilangan negative. Ketika kita menjumlahkan
bilangan yang akan di kalikan yang berupa bilangan negative pada hasil perkalian parsial,
kita harus memperpanjang nilai bit bertanda dari bilangan yang akan di kaliakan ke
sebelah kiri sejauh luas hasil perkalian. Perhatikan contoh yang di tunjukkan dalam
gambar 7.11, di mana operand bertanda 5 bit, yaitu -13 (bilangan yang akan di kalikan) di
kaliakan dengan +11 (bilangan pengali) untuk mendapatkan hasil perkalian 10 bit, yaitu -
143. Ekstensi tanda dari bilangan yang akan di kalikan di tunjukkan dengan garis bawah.
Untuk melihat mengapa operasi ekstensi tanda ini benar perhatikan argument berikut.
Ekstensi bilangan positif secara tepat tercapai dengan penjumlahan nol pada akhir sebelah
kiri. Untuk kasus bilangan negative, pengamatan sekitar lingkaran mod 16 dari gambar
7.5 dalam arah yang berlawanan
10011 (-13)
×01011 (+11)
1111110011
111110011
00000000
1110011
000000 .
1101110001 (-143)
Gambar 7.11 ekstensi bertanda dari bilangan yang akan dikalikan dengan bilangan negatif
Dengan jarum jam mulai dari kode untuk 0. Jika bilangan negatif dengan bit yang lebih
banyak (5 bit, 6 bit, 7 bit, dan yang lain-lain) di tuliskan bilangan-bilangan tersebut akan
di peroleh secara benar dengan memperpanjang kode 4 bit yang di berikan dengan 1 ke
sebelah kiri. Dengan demikian, untuk memperoleh representasi untuk bilangan positif dan
negatif yang di berikan menggunakan sejumlah bit yang lebih banyak, kita mengulang
secara sederhana bit bertanda sejumlah waktu yang di lakukan ke sebelah kiri. Operasi itu
disebut “sing-extansion”. Operasi sing-extension harus di lakukan dengan sejumlah
implementasi perangkat keras atau perangkat lunak dari operasi perkalian.
Kita sekarang akan memperhatikan kasus bilangan pengali negaif. Suatu solusi
untuk membentuk bilangan dengan sistem komplemen ke dua untuk ke dua bilangan
pengali dan bilangan yang akan di kalikan dan proses seperti dalam kasus bilangan positif
pengali. Tentu saja hal ini mungkin, sejak pemakaian kedua operand tidak mengubah
nilai atau tanda hasil perkalian. Teknik lain yang bekerja secara benar untuk bilangan
negatif dalam representasi komplemen kedua adalah menjumlahkan versi tergeser dari
bilangan yang akan di kalikan, memperpanjang tanda secara pantas, seperti dalam kasus
bilangan pengali positif, untuk semua bilangan pengali 1 bit ke sebelah kanan bit
bertanda. Kemudian tambahkan -1 × bilangan 1 dalam posisi bit bertanda dari pengali.
Jadi posisi tanda di tinjau dengan cara yang sama seperti posisi yang lain, kalau tidak ia
mempunyai bobot negatif. Versi umum sifat representasikedua komplemen akan di
gunakan dalam bagian berikutnya yang akan menguraikan algoritma booth.
Algoritma Booth. Algoritma yang sangat bermamfaat untuk perkalian bilangan
bertanda adalah algoritma booth. Algoritma ini membangkitkan hasil perkalian 2n bit dan
menghasilkan secara seragam kedua bilangan positif dan negatif. Misalkan suatu operasi
perkalian di mana bilangan pengali adalah positif dan mempunyai blok tunggal dan 1,
sebagai contoh 0011110. Untuk memperoleh hasil perkalian, kita dapat menjumlahkan
empat versi tergeser secara standar. Walaupun demikian, jumlah operasi yang di perlukan
dapat di kurangi dengan memperhatikan bahwa bilangan pengali ini dapat di anggap
sebagai perbedaan antara dua bilangan
0 1 0 0 0 0 0 (32)
- 0 0 0 0 0 1 0 (2)
0 0 1 1 1 1 0 (30)
Hal ini mengusulkan bahwa hasil perkalian dapat di bangkitkan dengan menambahkan
25× bilangan yang akan di kalikan dan komplemen kedua dari 2 1 × bilangan yang akan di
kalikan. Untuk keserasian urutan operasi yang di perlukan dapat di tuangkan dengan
merekam bilangan pengali di atas sebagai 0 + 1 0 0 0 - 1 0.
Secara umum dalam skema booth, -1 × (bilangan yang akan di kalikan) di pilih
ada batas 0 1 dan +1 × (bilangan yang akan di kalikan tergeser) di pilih pada atas
1 0 seperti bilangan pengali di amati dari kanan ke kiri. Gambar 7.12 menunjukkan
skema normal dan skema booth. Algoritma booth secara jelas memperpanjang sejumlah
blok dari 1 dalam suatu bilangan pengali meliputi situasi di mana bilangan 1 tunggal di
misalkan untuk menjadi suatu blok. Lihat gambar 7.13 untuk contoh yang lain
0101101
0 0+1+1+1 0
0000000
0101101
0101101
0101101
0101101
0000000
0000000 .
00010101000110

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-1 0 0 +1-1+1 0 -1+1 0 0 0 -1 0 0

0 0 0 +1 0 0 0 0 -1 0 0 0+1 0 0-1

Gambar 7.16 rekaman pengali booth


Perluasan tanda pencantuman bilangan 0 pada bagian kananLSB

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

Geser 11100 000


Jumlah 00011 siklus kedua
Set q0 11111 0000

Geser 11110 000


Jumlah 00011 siklus ketiga
Set q0 00001 0001
Geser 00010 001
Pengurangan 11101 siklus keempat
Set q0 11111 0010
Sisa

Jumlah 11111
00011 simpan sisanya
00010
Hasil bagi
Gambar 7.20 susunan rangkaian untuk pembagian biner
10
11) 1000
11
10

Inisialisasi 00000 1000


00011
Geser 00001 000 siklus pertama
Kurang 11101
Set q0 11110
Simpan 11
00001 0000

Geser 11100 000


Kurang 00011 siklus kedua
Set q0 11111
Simpan 11
00010 0000

Geser 11110 000


Kurang 00011 siklus ketiga
Set q0 00001 0001

Geser 00010 0001


Kurang 11101 001 siklus keempat
Set q0 11111
Simpan 11
00010 0010
Hasil bagi sisa
Hal tersebut mungkin untuk memperbaiki algoritma ini dengan menghindari
keperluan untuk menyimpan kembali A sesudah pengurangan yang tidak berhasil kita
definisikan suatu pengurangan yang tidak berhasil jika jawaban adalah negatif. Perhatikan
urutan operasi yang menempati tempat sesudah pengurangan dalam algoritma di atas.
Jika A positif, kita geser kesebelah kiri dan mengurangi M, yaitu dengan kita
melaksanakan 2A-M. Bit q0 secara cocok di set ke keadaan 0 atau 1 sesudah operasi yang
benar di laksanakan. Kita dapat meringkas hal ini menjadi algoritma nonrestoring-
devision sebagai berikut:
 Lakukan n kali
 Jika tanda dari A adalah 0, geser A dan Q ke sebelah kiri satu posisi biner dan
kurangkan M dari A, sebaliknya geser A dan Q ke sebelah kiri dan tambahkan M
dan A
 Jika tanda dari A adalah 0, set q0 ke keadaan 1, sebaliknya set q0 ke keadaan 0
 Jika tanda dar A adalah 1, tambahkan M ke A

ao an-1 ... an qn-1 ... q0

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

Tanda eksponen mantisa pecahan 24 bit


Bilangan bertanda 7 bit
0-+
1- - (a) format biner 32 bit
0 0001001 001... nilai tanpa normalisasi

+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

Tanda eksponen bertanda 23 bit


Bilangan 8 bit excess 127 n asumsi pecahan n
0~+ representasi
1~-
Representasi nilai = +1.M × 2E’ – 127
(a) presisi tunggal

0 00101000 001010... 0

Representasi nilai = 1.001010…0 × 2-87


(b) contoh untuk bilangan presisi tunggal
64 bit

S E’ M

Tanda eksponen 11 bit mantisa pecahan


Ekses 1023 52 bit
Representasi nilai = +1.M × 2E’-1023
(c) presisi ganda gambar 7.24
Ukuran format dasar adalah 32 bit (presisi tunggal) dan 64 bit (presisi ganda).
Ukuran ini secara mudah dapat di almatkan pada komputer 8 bit, 16 bit, 32 bit. Kriteria
utama yang di gunakan dalam memformulasikan format 32 bit presisi tunggal adalah
memaksimunkan presisi (bit signifikan) dalam mantisa apabila memelihara jangkauan
yang cukup besar (di tentukan dengan jumalh bit dalam eksponen). Ini mengarah pada
pemilihan normalisasi biner (sebagai lawan dari oktal atau heksadesimal) untuk mantisa
dan termasuk basis dari 2 untuk eksponen. Agar tersedia sebanyak mungkin bit untuk
mentisa, eksponen harus di jaga sekecil mungkin. Daerah 8 bit di setujui untuk eksponen.
Format lengkap di tunjukkan dalam gambar 7.24a. eksponen di tunjukkan sebagai E’
dalam gambar tersebut di tunjukkan dalam representasi excess 127. Nilai akhir E’, di
namai 0 dan 225, di gunakan untuk menunjukkan nilai khusus seperti 0 eksak dan
terhingga. Jadi jangkauan E’ untuk nilai normal adalah 0 < E’ < 225. Hal ini berarti
bahwa eksponen aktual E berada dalam jangkauan -126 ≤ E’ ≤ 127. Sejak normalisasi
biner di gunakan bit signifikan terbanyak dari mantisa selalu sama dengan 1. Bit ini tidak
di nyatakan secara eksplisit bit ini di asumsikan untuk menjadi bagian kiri yang terdekat
dari titik biner. Bit 23 yang di simpan dalam daerah M menyatakan bagian pecahan
mantisa, yaitu bit pada bagian kanan titik biner. Suatu contoh bilangan presisi tunggal
titik ambang di tunjukkan dalam gambar 7.24b.
Jika kita mebandingkan format presisi tunggal standar IEEE ke format yang di
berikan terdahulu dalam gambar 7.23c, kita amati bahwa kedua format tersebut
menggunakan 24 bit yang signifikan. Perlu diperhatikan bahwa posisi bit di simpan
dengan menggunakan bit mantisa yang di uraikan terdahulu secara implisit telah di
tambahkan ke daerah eksponen dalam standar tersebut. Faktor skala dalam standar
tersebut mempunyai jangkauan 2-126 sampai 2+127 (kira-kira 10±38). Ini harus di
bandingkan terhadap jangkauan faktor skala terbesar yaitu 16 -64 sampai 1663 (kira-kira
10+76) format terdahulu. Dalam hal ini, standar tersebut menyediakan presisi yang lebih
banyak karena menggunakan normalisasi biner.
Format presisi ganda telah meningkatkan jangkauan eksponen dan mantisa.
Format 64 bit ini di tunjukkan pada gambar 7.25c, eksponen excess 1023 E berada dalam
jangkauan 0 < E’ < 2047 untuk nilai normal, dengan 0 dan 2047 di gunakan untuk
menunjukkan nilai khusus seperti sebelumnya. Jadi eksponen aktual E berada dalam
jangkauan -1022 ≤ E ≤ 1023, yang memberikan faktor skala antara 2-1022 sampai 21023
(kira-kira 10+308).
Penerapan harus di berikan sedikitnya untuk presisi tunggal untuk menyesuaikan
diri terhadap standar yang berlaku. Ketentuan presisi ganda boleh di pilih, standar juga
merinci pilihan tertentu yang memperpanjang bnetuk kedua format ini. Format yang di
perpanjang di harapkan melengkapi presisi dan memberikan pertambahan jangkauan
eksponen dalam tampilan nilai pertengahan dalam urutan kalkulasi. Sebagai contoh, hasil
perkalian titikdua vektor bilangan dapat di hitung dengan mengakumulasikan hasil
jumlah dari hasil perkalian dalam presisi yang di perpanjang. Masukan di berikan dalam
presisi standar, dan jawaban di potong sehingga menjadi sama presisinya dengan
masukan. Penggunaan format yang di perpanjang sangat menolong dalam mengurangi
ukuran kesalahan pembulatan yang berakumulasi dalam urutan kalkulasi. Kekeurangan
evaluasi fungsi elementer di perluas juga dengan di gunakan format yang di perpanjang.
Dalam penjumlahan pada keempat operasi aritmetika dasar, standar memrlukan
bahwa operasi sisa akar dua dan konversi antara representasi biner dan desimal di
berikan. Hasil jawaban operasi tunggal harus di hitung supaya akurat dalam setengah
bagian dalam posisi LSB. Dalam keadaan umum, hal ini memrlukan pembulatan yang
menggunakan sebagai metoda pemotongan, seperti telah di uraikan dalam bagian 7.10.2
implementasi skema pembulatan ini hanya mmerlukan tiga bit penjaga untuk di bawa
selama step pertengahan dalam melaksanakan operasi di atas. Dua bit pertama ke tiga bit
penjaga adalah du bit yang sangat signifikan pada bagian mantisa yang akan di gerakkan
kembali. Bit yang ketiga adalah logikal OR dari semua bit yang di bawah kedua bit yang
di uraikan di atas dalam penerapan lengkap mentisa. Bit ini relatif mudah untuk di
pertahankan selama step petengahan operasi yang akan di lakukan. Bit ini harus
diinisiasikan pada keadaan 0. Jika 1 di geser melalui posisi ini bit mnejadi 1 dan
menyimpan nilai tersebut. Sampai di sini bit ini biasa di sebut sebagai sticky bit.
7.11 Kesimpulan
Ada banyak hal yang harus di ketahui mengenai aritmetika komputer. Ini merupakan
sumber dari sejumlah problem desain logika yang menarik. Tema utama bab yang telah
didiskusikan ini adlah beberapa teknik desain yang telah terbukti sangat bermamfaat
dalam desain unit aritmetika biner. Teknik loolahead carry yang di diskusikan sebagai ide
utama di libatkan dalam desain adder berkinerja tinggi. Dalam desain pengali cepat,
metoda pasangan bit dalam pengali telah di tunjukkan untuk memengang peranan utama
dalam mengurangi sejumlah penjumlahan yang harus di tambahkan untuk
membangkitkan hasil perkalian.
Tampilan sistem bilangan titik ambang telah di uraikan, meliputi sekelompok aturan
untuk melaksanakan empat operasi standar. Untuk memberi penghargaan bagi kerawetan
rangkaian yang di perlukan dalam penerapan demikian, kita mensketsa blok diagram unit
penjumlahan dan pengurangan. Akhirnya standar bilangan titik ambang IEEE di rancang.
Pengambilan standar ini oleh pabrik pembuat komputer telah menambah kemudahan dan
kualitas perangkat lunak.
7.12 SOAL-SOAL
1. Nyatakan nilai decimal 26, -37, 497, dan -123 bilangan 10 bit bertanda dalam cara
penulisan biner sebagai berikut:
a. sign-and-magnitude
b. komplemen satu
c. komplemen dua
lihat lampiran D untuk konversi bilangan interger decimal ke biner
2. pecahan biner yang didiskusikan secara ru=ingkas dalam bagian 7.10
a. nyatakan nilai decimal 0,5, -0,123, -075 dan -0,1 sebagai bilangan 6 bit bertanda
dalam cara penulisan biner seperti soal no 1 (lihat lampiran D untuk konversi
pecahan bialngan decimal ke biner)
b. apakah kesalahan penerapan maksimun e dilibatkan dalam penggunaan 5 bit
signifikan sesudah titik biner ?
c. hitung jumlah bit yang di perlukan sesudah titik biner sehingga:
1. e < 1/10
2. e < 1/100
3. e< 1/1000
4. e < 1/106
3. metode penerapan bilangan biner komplemen pertama dan komplemen kedua
merupakan kasus khusus teknik representasi komplemen (b-1) dan komplemen ke 6
dalam system bilangan berbaris b. sebagai contoh, misalkan system decimal. Niali
sugn-and-magnitude dari +527, +3219, -1999 mempunyairepresentasi 4 digit bilangan
bertanda dalam setiap system komplemen seperti di tunjukkan dalam table P7.1 sistem
komplemen di bentuk dalam menerima komplemen ke 10 di bentuk dengan
menambahkan 1 pada system komplemen ke 9. Pada setiap representasi yang di sebut
tadi, digit yang paling kiri adalah <5 untuk bilangan positif dan ≥ 5 untuk bilangan
negative.
sekarang misalkan sistem berbasis 3, dengan bilangan lima digit tak bertanda t 4t3t2t1t0
mempunyai nilai t4 × 34 + t3 × 33 + t2 × 32 + t1 × 31 + t0 × 30, dengan 0 ≤ ti ≤ 2. Nyatakan
bilangan berbaris tiga sign-and-magnitude +11011, -10222, +2120, -1212, +10 dan -
201 sebagai bilangan berbasis 3 bertanda dan lima digit dalam sistem komplemen ke-
3. Perlu di perhatikan bahwa bilangan positif terbesar yang dapat di tunjukkan dengan
sistem ini adalah 11111
Tabel P.7.1 bilangan bertanda dalam basis 10
Representasi contoh
Sign-and-magnitude +0527 -0382 +3219 -1999
Komplemen ke-9 0527 9617 3219 8000
Komplemen ke-10 0527 9618 3219 8001
4. nyatakan setiap nilai desimal 26, -37, 222 dan -123 sebagai bilangan 6 digit bertanda
dalam sistem bilangan berbasis 3 dengan sistem:
a. sign-and-magnitude
b. komplemen ke 3
lihat 7.3 untuk definisi dari sistem bilangan berbasis tiga dan gunakan teknik yang
analog dengan teknik yang diberikan dalam lapiran D untuk konversi bilangan bulat
dari desimal ke bilangan berbasis 3.
5. Misalkan bilangan biner dalam problem penjumlahan dan pengurangan berikut di
representasikan dalam sistem bilangan biner 6 bit bertanda komplemen ke 2.
Laksanakan operasi yang di tunjukkan, uraikan apakah overflow terjadi dan cek
jawaban anda dengan menggantikan operand dan hasilnya dalam representasi sing-
and-magnitude.
010110 101011 111111
+ 001001 + 100101 + 000111
011001 110111 010101
+ 010000 + 111001 + 101011
010110 111110 100001
- 011111 - 100101 - 011101
111111 000111 011010
- 000111 - 111000 - 100010
6. dengan metode ”paper-and-pencil”, laksanakan operasi A × B dan A – B pada
bilangan 5 bit tak bertanda, A = 10101 dan B = 00101
7. tunjukkan bagaimana operasi perkalian dan pembagian dalam soal 7.6 masing-masing
akan dilaksanakan oleh perangkat keras dalam gambar 7.9a, dan gambar 7.20 dengan
konstruksi yang ekivalen dengan gambar 7.9b dan gambar 7.22
8. kalikan setiap pasangan bilangan bertanda komplemen ke 2 berikut menggunkan
algoritma booth. Dalam setiap kasus, asumsikan bahwa A adalah bilangan yang harus
di kalikan dan B adalah bilangan pengali.
a. A = 010111
B = 110110
b. A = 110011
B = 101100
c. A = 110101
B = 011011
d. A = 1111
B = 1111
9. ualngi soal 7.8 menggunakan pasangan bit dari pengali
10. turunkan persamaan logika yang menyatakan ADD/SUB dan keluaran S R jaringan
CONTROL kombinasikan dalam gambar 7.24
11. tunjukkan mikrorutin yang menggunakan perintah MUL (multiply) yang di definiskan
dalam lampiran B. asumsikan bahwa struktur dasar dari gambar 5.2 yang di gunakan
delapan register serbaguna. Apakah perangkat keras lainnya, jika ada, akan berguna
untuk di miliki ?
12. tuliskan program PDP-11 atau 68000 untuk pembagian bilangan bulat berdasarkan
pada algoritma pembagian non-restoring. Asumsikan bahwa kedua operand positif,
yaitu bit paling kiri nol untuk kedua bilangan yang di bagi dan bilangan pembagi.
Jangan di gunakan perintah “devide” yang tersedia dalam setiap mesin.
13. pada bagian 7.10.1 menggunakan ukuran praktisi format 32 bit untuk bilangan titik
ambang. Dalam problem ini kita akan menggunkan format yang lebih pendek yang
memegang teguh semua konsep yang berkaitan tetapi mudah di kendalikan untuk di
kerjakan melalui latihan numerik. Misalkan, bahwa bilangan titik ambang di terapkan
dalam format 12 bit seperti di tunjukkan dalam gambar P7.1. Faktor skala mempunyai
basis 4 dan 5, eksponen excess -16. Mantisa 6 bit di normalisasi.
a. apakah arti normalisasi dalam konteks format ini ?
1
b. nyatakan bilangan +1,7, -0,012, +19, dan 8 dalam format ini
c. berapakah bilangan terkecil dan bilangan terbesar yang masih dapat di
representasikan dengan format ini ?
d. bagaimana jangkauan yang di kalkulasikan dalam soal (c) di bandingkan dengan
jangkauan dari interger bertanda 12 bit dan pecahan bertanda 12 bit ?
e. laksanakan operasi Add, Subtract, Multiply, dan devide pada operasi sebagai
berikut
A= 0 100001 011011

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

Bit untuk tanda bilangan eksponen mantisa


0=+ excess 5 bit pecahan 6 bit
1=-
Gambar P7.1(format titik ambang)
b. Problem apa yang anda jumpai ketika mencoba untuk mengganti bilangan desimal
berikut ini menjadi format di atas ?
1. 7.1239 × 1031
2. -1.4325 × 10-27
c. Usulkan beberapa pemecahan untuk problem yang di jumpai pada bagian (b)
pemecahan anda harus dapat di programkan pada mesin yang mempunyai empat
operasi aritmetika pada format internal 32 bit yang harus anda gunakan. Anda juga
boleh menggunakan mesin dengan fasilitas bilangan bulat 32 bit jika mesin
tersebut menolong konversi anda.

Anda mungkin juga menyukai