Anda di halaman 1dari 21

ARSITEKTUR KOMPUTER

“Aritmatika Komputer”

Disusun Oleh :

RINI ANDINI
1129040148
PTIK 02

JURUSAN PENDIDIKAN TEKNIK ELEKTRO


PROGRAM STUDI PTIK
UNIVERSITAS NEGERI MAKASSAR
2014
BAB 9
ARITMATIKA KOMPUTER

A. The Arichmetic And Logic Unit


ALU, singkatan dari Arithmetic And Logic Unit (bahasa Indonesia: unit aritmatika dan
logika), adalah salah satu bagian dalam dari sebuah mikroprosesor yang berfungsi untuk
melakukan operasi hitungan aritmatika dan logika. Contoh operasi aritmatika adalah operasi
penjumlahan dan pengurangan, sedangkan contoh operasi logika adalah logika AND dan OR.
tugas utama dari ALU (Arithmetic And Logic Unit)adalah melakukan semua perhitungan
aritmatika atau matematika yang terjadi sesuai dengan instruksi program.
ALU melakukan operasi aritmatika yang lainnya. Seperti pengurangan, pengurangan,
dan pembagian dilakukan dengan dasar penjumlahan. Sehingga sirkuit elektronik di ALU
yang digunakan untuk melaksanakan operasi aritmatika ini disebutadder. ALU melakukan
operasi arithmatika dengan dasar pertambahan, sedang operasi arithmatika yang lainnya,
seperti pengurangan, perkalian, dan pembagian dilakukan dengan dasar penjumlahan.
sehingga sirkuit elektronik di ALU yang digunakan untuk melaksanakan operasi arithmatika
ini disebut adder.
Tugas lain dari ALU adalah melakukan keputusan dari operasi logika sesuai dengan
instruksi program. Operasi logika (logical operation) meliputi perbandingan dua buah elemen
logika dengan menggunakan operator logika, yaitu:
sama dengan (=)
tidak sama dengan (<>)
kurang dari (<)
kurang atau sama dengan dari (<=)
lebih besar dari (>)
lebih besar atau sama dengan dari (>=)
Gambar Input dan output dari ALU

2
Aritmatika Komputer
B. Representasi Integer
1
Dalam sistem bilangan biner, semua bilangan dapat direpresentasikan dengan hanya
menggunakan digit-digit nol dan satu, tanda minus, dan tanda titik.
-1101.01012 = - 13,312510
Namun, untuk keperluan pengolahan dan penyimpanan komputer, kita tidak perlu
merepresentasikan bilangan. Jika kita hanya terbatas pada integer nonnegatif, maka
representasinya akan lebih mudah.
Sebuah word 8-bit dapat digunakan untuk merepresentasikan bilangan-bilangan dari 0 hingga
00000000 = 0
00000001 = 1
00101001 = 41
10000000 = 128
11111111 = 255
Secara umum, jika sebuah rangkaian n-bit bilangan biner an-1an-2....a1a0 direpresentasikan
sebagai suatu integer tanpa A, nilainya adalah
A = ∑𝑛−1 i
𝑖=0 2 ai

Representasi Magnituda Tanda (Sign-magnitude)


Terdapat beberapa konvensi alternatif yang digunakan untuk merepresentasikan
bilangan integer negatif seperti halnya bilangan integer positif, semua konpensi tersebut
meliputi perlakuan bityang paling signifikan (paling kiri) di dalam word sebagai bit tanda.
Jika bit tanda adalah 0, maka bilangan tersebut positif; jika bit tanda adalah 1, maka bilangan
tersebut adalah negatif.
Bentuk reprentasi yang paling sederhana yang memakai bit tanda adalah adalah
reprentasi magnituda tanda. pada suatu word n-bit, bit n-1 paling kanan menampung nilai
integer.
+18= 00010010
-18= 10010010 (magnituda tanda)
Secara umum kasus tersebut adalahdapatdiekspresikan sebagai berikut:

Terdapat beberapa kelemahan pada representasi magntuda tanda. salah satunya adalah
bahwa penambahan dan pengurangan memerlukan pertimbangan baik tanda bilangan maupun
nilai relatifnya untuk menyelesaikan operasi yang diperlukan. Masalah ini adalah menjadi

3
Aritmatika Komputer
jelas dalam pembahasan pada sub bab 9.3. kelemahan yang lain adalah bahwa terdapatdua
reprentasi bilangan 0.
+ 010 = 00000000
- 010 = 10000000 (magnituda tanda)
Hal ini merepotkan, karena akan menyulitkan pemeriksaan bilangan 0 (suatu operasi
yang sering dilakukan pada komputer) dibandingkan jika menggunakan representasi tunggal.
Karea kelemahan ini, representasi magnituda tanda jarang digunakan di dalam implementasi
bagian bilangan integer ALU. Disamping itu, teknik yang paling umum adalah representation
komplemen dua.

Representasi Komplemen Dua


Seperti halnya magnituda tanda, representasi komplemen dua menggunakan bit yang
paling signifikan sebagai bit tanda, yang memudahkannya untuk mengetahui apakah suatu
integer bernilai positif atau negatif. Representasi ini berbeda dengan penggunaan representasi
magnitude tanda dalam cara dengan bit-bit lainnya diinterpretasikan. Tabel 9.1 menekankan
karakteristik penting representasi komplemen dua dan aritmetika, yang dibahas dalam bagian
ini dan yang berikutnya.
Sebagian besar perlakuan representasi komplemen dua menfokuskan pada aturan untuk
menghasilkan bilangan-bilangan negatif, dengan tidak ada bukti formal bahwa teknik
“bekerja“. Di samping itu, pembahasan kita tentang integer-integer komplemen dua dalam
bagian ini dan dalam Subbab 9.3 berdasarkan pada (DATT93), yang menyatakan bahwa
representasi
Range -2n-1 sampai 2n-1 - 1
Jumlah representasi nol Satu
Negasi Ambil komplemen Boolean dari setiap bit yang bersesuaian
dengan bilangan positif, kemudian tambahkan 1 untuk
menghasilkan pola bit yang dilihat sebagai integer tanpa
tanda.
Perluasan panjang bit Tambahkan posisi bit tambahan ke kiri da nisi dengan bit
magnituda tanda asli.
Aturan overflow Jika dua bilangan-bilangan dengan tanda yang sama
(keduanya bilangan positif atau keduanya bilangan negatif)

4
Aritmatika Komputer
ditambahkan, maka terjadi overflow jika dan hanya jika
hasilnya mempunyai tanda berkebalikan.
Aturan pengurangan Untuk mengurangi B dari A, ambil komplemen kedua dari B
dan menambahkannya ke A.

Komplemen dua adalah terbaik untuk dipahami oleh pendefenisiannya dalam kaitannya
dengan penjumlahan bit-bit berbobot, seperti ketika kita melakukan sebelumnya pada
representasi tanpa tanda dan magnitude tanda. Keuntungan perlakuan yang demikian adalah
bahwa representasi itu tidak meninggalkan keraguan apapun dimana aturan operasi-operasi
aritmatika di dalam dua notasi komplemen tidak dapat bekerja untuk beberapa kasus khusus.
Perhatikan suatu integer n-bit, A, dalam representasi komplemen dua. Jika A bilangan
positif, maka bit tanda, an-1, adalah nol. Bit-bit lainnya merepresentasikan nilai bilangan
dalam mode yang sama dengan magnitude tanda:
A= ∑𝑛−2
𝑖=0 2𝑖𝑎𝑖 untuk A ≥ 0
Bilangan nol akan didefenisikan sebagai bilangan positif dan sehingga mempunyai bit
tanda 0 dan nilai keseluruhan 0. Kita dapat melihat bahwa cakupan integer positif yang dapat
direpresentasikan mulai dari 0 (semua bit nilainya adalah 0) hingga 2n-1 – 1 (semua bit
nilainya adalah 1). Bilangan yang lebih besar maupun akan memerlukan bit yang lebih
banyak.
Sekarang, untuk bilangan negatif A (Ad “0), bit tanda, an-1, adalah satu. n – 1 bit sisanya
dapat mengambil salah satu dari nilai-nilai 2n-1. Oleh karena itu, cakupan integer negative
yang dapat direpresentasikan adalah mulai dari 1 hingga- 2n-1. Kita bermaksud menugaskan
nilai-nilai bit ke integer negative sehingga aritmatika dapat ditangani di dalam mode secara
langsung, mirip dengan aritmatika integer tanpa tanda. Pada representasi integer tanpa tanda,
untuk menghitung nilai integer dari representasi bit, bobot bit-bit yang paling signifikan
adalah +2n-1. Untuk representasi dengan bit tanda, representasi menghasilkan tercapainya
aritmatika yang diinginkan, seperti yang akan kita lihat pada sub bab 9.3, jika bobot bit yang
paling signifikan adalah -2n-1. Hal ini merupakan kontrovensi yang digunakan dalam
representasi komplemen dua, menghasilkan ekspresi berikut untuk bilangan-bilangan negatif:
A= -2n-1 an-1 + ∑𝑛−2
𝑖=0 2𝑖𝑎𝑖 (9.2)

5
Aritmatika Komputer
Pada kasus bilangan integer positif, an-1=0, maka suku -2n-1an-1= 0. Dengan demikian,
Persamaan (9.2) mendefenisikan representasi komplemen dua untuk bilangan positif dan
negative.
Tabel 9.2 membandingkan magnitude tanda dan representasi komplemen dua integer 4-
bit. Walaupun dari sudut pandang manusia komplemenn dua merupakan representasi yang
canggung, kita akan lihat bahwa itu memudahkan operasi-operasi aritmatika yang paling
utama, penambahan dan pengurangan. Dengan alas an ini, representasi ini sangat umum,
representasi ini sangat umum digunakan sebagai representasi prosessor untuk integer.
Suatu ilustrasi yang bbermanfaat tentang sifat representasi komplemen dua adalah kotak
nilai, dimana nilainya terdapat jauh pada sisi kanan kotak adalah 1 (20) dan setiap posisi
berikutnya ke sebelah kiri merupakan nilai gandanya, sampai posisi yang paling kiri, yang
ditiadakan. Seperti yang anda lihat pada gambar 9.2a, bilangan komplemen dua yang paling
negtif yang dapat direpresentasikan adalah 2n-1, jika terdapat sembarang bit selain bit tanda
satu, maka bit iitu akan menambahkan jumlah positive terhadap bilangan. Selain itu, jelas
bahwa bilangan negative harus mempunyai suatu bilangan 1 pada posisi yang paling kirinya
dan bilangan positive harus mempunyai suatu bilangan 0 pada posisi tersebut. Jadi bilangan
positif yang paling besar adalah suatu 0 diikuti oleh semua 1, yang sama dengan 2n-1 – 1.
Bagian lainnya pada gambar 9.2 mengilustrasikan penggunaan kotak nilai untuk
mengkonversikan komplemen dua ke bilangan decimal dan dari bilangan decimal menjadi
komplemen dua.

Tabel 9.2
Representasi Alternatif untuk Integer 4-bit
Representasi Representasi Representasi Representasi
Bilangan Desimal Magnituda Tanda Komplemen Dua Terbias
+8 - - 1111
+7 0111 0111 1110
+6 0110 0110 1101
+5 0101 0101 1100
+4 0100 0100 1011
+3 0011 0011 1010
+2 0010 0010 1001

6
Aritmatika Komputer
+1 0001 0001 1000
+0 0000 0000 0111
-0 1000 -
-1 1001 1111 0110
-2 1010 1110 0101
-3 1011 1101 0100
-4 1100 1100 0011
-5 1101 1011 0010
-6 1110 1010 0001
-7 1111 1001 0000
-8 - 1000 -

Gambar 9.2
Penggunaan Kotak Nilai untuk Konversi Antara Dua Bilangan Komplemen Biner dan
Bilangan Desimal
-128 64 32 16 8 4 2 1

(a) Suatu delapan posisi kotak nilai komplemen dua


-128 64 32 16 8 4 2 1
1 0 0 0 0 0 1 1
-128 + 2 + 1 = -125
(b) konversi biner 10000011 ke decimal
Konversi Antara Panjang Bit yang Berlainan
Kadang-kadang kita perlu mengambil integer n-bit dan menyimpannya di dalam bit m, di
mana m > n. Pada notasi magnitude tanda, hal ini mudah terpenuhi: Sederhananya cukup
memindahkan bit tanda ke posisi paling kiri yang baru dan mengisi sisanya dengan nol.
+18 = 00010010 (magnituda tanda, 8 bit)
+18 = 0000000000010010 (magnituda tanda, 16 bit)
-18 = 10010010 (magnituda tanda, 8 bit)
-18 = 1000000000010010 (magnituda tanda, 16 bit)
Prosedur ini tidak berlaku bagi integer negative komplemen dua. Dengan menggunakan
contoh yang sama,

7
Aritmatika Komputer
+18 = 00010010 (komplemen dua, 8 bit)
+18 = 0000000000010010 (komplemen dua, 16 bit)
-18 = 11101110 (komplemen dua, 8 bit)
-32,658 = 10000000001101110 (komplemen dua, 16 bit)
Selanjutnya sampai baris terakhir mudah dilihat dengan menggunakan kotak nilai pada
Gambar 9.2. Garis terakhir dapat diverifikasi dengan menggunakan Persamaan 9.2 atau kotak
nilai 16-bit.
Di samping itu, aturan integer komplemen dua akan memindahkan bit tanda ke posisi paling
kiri yang baru dan mengisinya dengan salinan bit tanda. Untuk bilangan-bilangan positif, isi
dengan nol, dan untuk bilangan-bilangan negative, isi dengan satu. Hal ini disebut sebagai
perluasan tanda.
-18 = 11101110 (komplemen dua, 8 bit)
-18 = 1111111111101110 (komplemen dua,16 bit)
Untuk mengetahui mengapa aturan ini bisa berlaku, mari kita memperhatikan sekumpulan
bilangan integer biner n-bit an-1an-2….a1a0 yang diinterpretasikan sebagai integer komplemen
dua A, sehingga nilainya adalah
A = -2n-1 an-1 + ∑𝑛−2 i
𝑖=0 2 ai

Jika A bilangan positif, maka aturan tersebut jelas akan berlaku. Sekarang, jika A negative
dan kita akan membuat representasi m-bit, dengan m > n. maka
A = -2m-1 am-1 + ∑𝑚−2 i
𝑖=0 2 ai

Kedua nilai harus sama


-2m-1 am-1 + ∑𝑚−2 i
𝑖=0 2 ai = -2n-1 + ∑𝑛−2 i
𝑖=0 2 ai

-2m-1 am-1 + ∑𝑚−2 i


𝑖=𝑛−1 2 ai = -2n-1
2m-1 am-1 + ∑𝑚−2 i
𝑖=𝑛−1 2 ai = -2m-1
1 + ∑𝑛−2 i 𝑚−2 i 𝑚−2 i
𝑖=0 2 + ∑𝑖=𝑛−1 2 ai = 1 + ∑𝑖 = 0 2

∑𝑚−2 i 𝑚−2
𝑖=𝑛−1 2 ai = ∑𝑖 = 𝑛−1 2
i

⇒ 𝑎 m-2 = …. = 𝑎n-2 = 𝑎n-1 = 1


Dalam mengerjakan persamaan menjadi persamaan kedua, kita memerlukan n-1 bit
paling sedikit signifikan tidak boleh berubah pada kedua representasinya. Kemudian kita
akan sampai pada persamaan terakhir, yang hanya akan benar jika semua bit yang berada
pada posisi n-1 sampai m-2 adalah 1. Maka dengan demikian aturan ekstensi tanda akan
berfungsi.

8
Aritmatika Komputer
Representasi Titik Tetap
Terakhir, kita menyebutkan bahwa representasi yang telah dibahas dalam bagian ini
kadang-kadang dikenal sebagi titik tetap. Hal ini karena titik radiksnya (titik biner) tetap dan
diasumsikan akan berada di sebelah kanan dari digit yang paling kanan. Pemprogram dapat
menggunakan representasi yang sama untuk bilangan pecahan biner dengan melakukan
peskalaan bilangan-bilangan yang bersangkutan sehingga titik biner secara implisit berada
pada lokasi lain.

C. Penambahan dan Pengurangan


Penambahan diilustrasikan pada Gambar 9.3. Pertama empat contoh ilustrasi operasi
sukses. Jika hasil dari operasi adalah positif, kita mendapatkan angka positif dalam notasi
biner biasa. Jika hasil operasi negatif,kita mendapatkanangka negatif dalam bentuk pelengkap
berpasangan. Perhatikan bahwa,dalam beberapa kasus,ada sedikit carry luar akhir kata yang
diabaikan.

Disamping itu,hasilnya mungkin lebih besar daripada yang dapat di sediakan diword
size yang digunakan. Kondisi ini disebut overf low. Ketika over flow terjadi, ALU harus
menerima sinyal ini sehingga tidak ada usaha yang dibuat untuk menggunakan

9
Aritmatika Komputer
hasilnya.Untuk mendeteksi overflow, aturan yang harus diperhatikan : jika dua nomor
ditambahkan, dan mereka baik positif atau keduanya negatif, kemudian overflow terjadi jika
dan hanya jika hasilnya memiliki tanda berlawanan. Gambar 9.3 dan saya menunjukkan
contoh overflow.
Pengurangan juga mudah ditangani dengan aturan berikut: Untuk mengurangi salah satu
nomor (pengurang) dengan yang lain (dikurang). Ambil dua complement (negasi) dari
pengurang dan menambahkannya ke angka yang di kurang tersebut.Selain itu,seperti yang
diilustrasikan pada Gambar 9.4. Dua contoh terakhir menunjukkan bahwa aturan overflow
masih terjadi.

Beberapa gambaran selain dua complement penambahan dan pengurangan dapat


diperoleh dengan melihat gambaran geometris[BENH92], seperti yang ditunjukkan pada
Gambar9.5.lingkaran dibagian atas setiap bagian darigam barterbentuk dengan memilih
segmen yang tepat dari nomor baris dan bergabung dengan titik akhir. Perhatikan bahwa
ketika angka-angka tersebut diletakkan pada sebuah lingkaran ,dua complement dari setiap
nomor adalah horizontal berlawanan angka(ditunjukkan dengan garis horizontal putus-putus).
Dimulai pada setiap nomor pada lingkaran, kita dapat menambahkan positif (atau mengurangi
ke negatif) ke nomor tersebut dengan memindahkan posisi kearah jarum jam,, kita dapat
mengurangi ke positif (atau menambahkan knegatif) dari jumlah tersebut dengan
memindahkan posisi ke berlawanan. Jika dan hasil operasi aritmatika dalam traversal dari
titik di manatitik akhir bergabung, jawaban yang salah diberikan (overflow).

10
Aritmatika Komputer
Gambar 9.6 menunjukkan jalur data dan elemenkeras yang diperlukan untuk
menyelesaikan penambahan dan pengurangan. Unsur sentral adalah penambah biner, dimana
disajikan dua nomor untuk penjumlahan dan menghasilkan jumlah dan indikasi overflow.
Penambah bine rmenambahkan dua angkasebagai unsigned integer. (Implementasi logika
seorang penambah diberikan dalam Lampiran A.) Untuk itu,dua nomor di sajikan untuk
penambah dari dua register, yang ditunjuk dalam hal ini sebagai registerA dan B. Hasilnya
dapat disimpan dalam salah satu register atau dalam ketiganya. Indikasi overflow disimpan
dalam bendera overflow1-bit(0= tidakoverflow:1 =overflow). Untuk pengurangan,
pengurang(Register B) dilewatkan melalui dua komplemen sehingga komplemennya
disajikan untuk penambah.

11
Aritmatika Komputer
Perkalian
Dibandingkan dengan penambahan dan pengurangan, perkalian merupakan operasi
yang kompleks, baik yang dilakukan pada perangkat keras atau perangkat lunak. Sebuah
algoritma telah digunakan dalam berbagai komputer. Tujuannya adalah untuk memberikan
pembaca beberapa merasa untuk jenis pendekatan biasanya diambil. Kita mulai dengan
masalah sederhana perkalian dua unsigned (nonnegatif) interegrs, dan kemudian kita melihat
salah satu teknik yang paling umum untuk perkalian jumlah dalam representasi komplemen
berpasangan.
Unsigned Integers
Gambar 9.7 ilustrated perbanyakan intereger biner unsigned, sebagaimana bisa
dilakukan dengan menggunakan kertas pensil. Beberapa pengamatan penting dapat
dibuat.

12
Aritmatika Komputer
Perkalian melibatkan partial product, satu untuk setiap digit dalam multiplier.
Partial product tersebut kemudian dijumlahkan untuk menghasilkan produk
akhir.
Partial product dapat ditentukan dengan mudah. Apabila bit multiplier adalah
0, Partial product adalah 0. Ketika Multiplier adalah 1, Partial product adalah
multiplicand tersebut.
Product yang dihasilkan dengan menjumlahkan Partial product. Untuk operasi
ini, setiap Partial product berturut digeser satu posisi keposisi relatif kiri untuk
Partial product sebelumnya.
Perkalian dari dua n-bit hasil biner bilangan bulat dalam produk hingga 2n bit
dalam panjang (misalnya 11 x 11 = 1001).

Coba dengan pensil dan kertas, ada beberapa hal yang bisa kita lakukan untuk membuat
perkalian komputerisasi yang lebih efisien. Pertama, kita dapat melakukan penambahan
berjalan pada produk sebagian dari pada menunggu sampai akhir. Ini menghilangkan
kebutuhan untuk penyimpanan dari semua produk sebagian: register sedikit diperlukan.
Kedua kita dapat menghemat waktu pada generasi produk sebagian. Untuk setiap 10
multiplier, tambahkan sebuah dan operasi pergeseran yang diperlukan: 0 tapi untuk masing-
masing, hanya pergeseran diperlukan.
Gambar 9.8a menunjukkan sebuah implementasi mungkin menggunakan langkah-
langkah ini. Multiplier dan multiplicand dimuat keregister untuk (QdanM). Sebuah register
ketiga, register A, juga dibutuhkan dan pada awalnya diatur ke 0. Juga ada sebuah 1 bit
register C, diinisialisasi ke 0, yang memegang membawa potensi bit yang dihasilkan Selain
bentuk.

13
Aritmatika Komputer
Pengoperasian multiplier adalah berikut. Kontrol logika membaca bit dari satu
multiplier saat jika Q0 adalah 1, maka multiplicand ditambahkan ke register A dan
hasilnya disimpan di A, dengan bit register C yang digunakan untuk overflow. Para
semua bit dari Register C, A, danQ dialihkan ke bit yang benar, sehingga bit C masuk ke
Qn-1, Aq masuk kedalam Qs-1. Dan Qq hilang. Jika Q0 adalah 0, dan sebagainya
penjumlahan dilakukan, hanya shift. Proses ini diulang untuk setiap bit multiplier asli.
Produk yang dihasilkan sedikit 2n terkandung dalam register A dan Q. Sebuah flowchart
operasi ditunjukkan pada Gambar 9.9. dan contoh diberikan dalam Gambar 9.8b.
Perhatikan bahwa pada siklus kedua, ketikabis multiplier adalah 0, tidak ada operasi
tambahan.

14
Aritmatika Komputer
Twos Complement Multiplication
Kita telah melihat bahwa penjumlahan dan pengurangan dapat dilakukan
pada nomor dalam notasi komplemen dua itu dengan memperlakukan mereka
sebagai unsigned integer. Mempertimbangkan

1001
+0011
1100
Jika nomor ini dianggap unsigned integer, maka kita menambahkan 9 (1001)
ditambah 3 (0011) untuk mendapatkan 12 (1100). Sebagai bilangan bulat
pelengkap berpasangan, kita menambahkan -7(1001) sampai 3 (0011) untuk
mendapatkan -4 (1100).

15
Aritmatika Komputer
skema sederhana ini tidak akan bekerja untuk multipilcation. Untuk melihat ini,
pikirkan kembali Gambar 9.7. dikalikan 11 (1011) dengan 13 (11001) untuk mendapatkan
143 (10.001.111). Jika kita menafsirkan ini sebagai pelengkap nomor dua, kita memiliki-5
(1011) -3 kali (1101) sama -113 (10001111). contoh ini menunjukkan bahwa perkalian maju
straight tidak akan bekerja jika salah multiplicand atau multiplier negatif. Untuk
membenarkan statement ini, kita harus kembali untuk mencari 9.7dan menjelaskan apa yang
sedang dilakukan dalam hal operasi. Ingatlah bahwa setiap bilangan biner unsigned dapat
dinyatakan sebagai jumlah dari pangkat 2. Demikian

Selanjutnya, perkalian bilangan biner dengan 2n ini accumplished dengan menggeser


nomor yang ke n bit kiri. Dengan dalam pikiran, Gambar 9.10 Gambar perombakan 9.7untuk
membuat generasi produk sebagian dengan perkalian eksplisit. Perbedaan hanya pada
Gambar 9.10 adalah bahwa dalam mengakui bahwa produk sebagian harus dipandang sebagai
2n-bit nomor yang dihasilkan dari multiplicand n-bit.
Dengan demikian, sebagai unsigned integer, 4-bit1011 isi multiplicand disimpan dalam
kata8-bit sebagai 00001011. Setiap produk sebagian (selain itu selama 20) terdiri adalah
nomor bergeser ke kiri, dengan kosong di sebelah kanandiisi dengan nol(misalnya,
pergeseran kiri dari hasil tempat 00101100).
Sekarang kita dapat menunjukkan bahwa perkalian straight forward tidak akan bekerja jika
multiplicand adalah negatif. Masalahnya adalah bahwa setiap kontribusinya dari multiplicand
negatif sebagai produk sebagian harus angka negative pada bidang2n-bit: bit tanda dari
produk sebagian harusberbaris. Hal ini ditunjukkan pada Gambar 9.11.

Yang menunjukkan bahwa perkalian dari 1001 dengan 0011. Jika diperlakukan sebagai
unsigned integer, perbanyakan dari 9 x 3 = 27 hasil sederhana. Namun, jika 1001 ditafsirkan

16
Aritmatika Komputer
sebagai nilai pelengkap berpasangan -7, maka setiap produk sebagian harus berpasangan
negatif pelengkap jumlah 2n (8) bit, seperti yang ditunjukkan pada Gambar 9.11b. Catatan
bahwa ini dilakukan dengan pelapis keluar setiap sebagian kekiri dengan 1s biner.
Jika multiplier negatif, perkalian strightforward juga tidak akan bekerja alasannya
adalah bahwa bit multiplier tidak lagi sesuai dengan pergeseran atau perkalian yang harus
terjadi. Jika kita hanya mengambil produk sebagian berdasarkan setiap posisi bit, kita akan
memiliki korespondensi berikut:

Bahkan, apa yang diinginkana dalah -(2 1 + 2 0). Jadi multiplier ini tidak dapat digunakan
secara langsung dengan cara kita telah mendeskripsikan.
Ada sejumlah cara keluar dari ini. Satu akan mengkonversi kedua multiplier dan
multiplicand untuk angka positif, melakukan perkalian, dan kemudian mengambil pelengkap
berpasangan dari hasilnya jika dan hanya jika tanda dari dua angka asli berbeda. Pelaksana
lebih suka menggunakan teknik yang tidak memerlukan langkah transformasi akhir. Salah
satu yang paling sering digunakan adalah algoritma Booth. Algoritma ini juga memiliki
manfaat mempercepat proses perkalian, relatif terhadap pendekatan yang lebih mudah
Algoritma Booth digambarkan pada gambar 9.12 dan dapat dilihat sebagai berikut.
Seperti sebelumnya, multiplier dan multiplicand ditempatkan dalam register Q dan M,
respetively. Ada juga1-bit register ditempatkan secara logis di sebelah kanan least significant
bit (Q0) dari register Q dan ditentukannyaQ-1: penggunaannya dijelaskan kemudian. Hasil
perkalian akan muncul dalam daftarA dan Q,A dan Q-1 diinisialisasi ke 0. Seperti
sebelumnya, kontrol logika scan bit multiplier satu per satu. Sekarang, seperti setiap bit
diperiksa, bit ke kanan untuk diperiksa. Jika kedua bit adalah sama(1-1 atau 0-0), maka
semua bit dari A, Q, dan Q-1 mendaftar dialihkan ke bit1 kanan. Jika bit keduanya berbeda,
dari multiplicand ditambahkan ke atau dikurangkan dari register A.Tergantung pada apakah
kedua bit 0-1 atau 1-0. penambahan atau pengurangan, pergeseran benar terjadi. Dalam
kemudahan baik, pergeseran yang benar adalah seperti bahwa bit paling lieft dari A, yaitu
angka 1, tidak hanya bergeser ke-1 Sebuah tetapi tetap di An-1. Ini diperlukan untuk
melestarikan tanda-tanda nomor di A dan T. Hal ini dikenal sebagai pergeseran aritmatika,
karena mempertahankan bit tanda.
Gambar 9.13 menunjukkan urutan peristiwa dalam algoritma Booth untuk perkalian
dari 7 dengan 3. Lebih kompak, operasi beberapa digambarkan pada Gambar 9.14a. yang

17
Aritmatika Komputer
pertama dari 9.14a Gambar diberikan contoh-contoh lain dari algoritma. Seperti dapat dilihat,
ia bekerja dengan kombinasi angka positif dan negatif. Perhatikan Olso efisiensi algoritma.
Blok 1s atau 0s yang melewatkan lebih, dengan rata-rata hanya satu penambahan atau
pengurangan per blok.
Mengapa kerja algoritma Booth? Pertimbangkan pertama perawatan seorang tiplier
positif. Secara khusus, mempertimbangkan multiplier positif consicting dari satu blok dari 1s
dikelilingi oleh 0s (misalnya 00011110.). Seperti kita ketahui, perkalian dapat dicapai dengan
menambahkan salinan tepat bergeser dari multiplicand:

Jumlah operasi tersebut dapat dikurangi menjadi dua jika kita mengamati bahwa

18
Aritmatika Komputer
.

Algoritma Booth sesuai dengan skema ini dengan melakukan pengurangan ketika 1
pertama dari blok ditemui(1-0) dan tambahan ketika ujung blok ditemui (0-1).

Untuk menunjukkan bahwa skema yang sama bekerja untuk multiplier negatif, kita perlu
mengamati berikut. X adalah angka negatif dalam notasi pelengkap berpasangan:

19
Aritmatika Komputer
Lalunilai X dapat dinyatakan sebagai berikut:

Anda dapat membuktikan ini dengan menerapkan algoritma untuk jumlah pada Tabel9.2.
Bit paling kiri dari X adalah 1, karena X adalah negatif. Asumsikan bahwa 0 paling kiri
dalam posisi. Jadi, X adalah dalam bentuk:

Maka nilai dari X adalah

Dari Persamaan (9,3), kita dapat mengatakan bahwa

menata ulang,

Mensubstitusi persamaan (9.7) kepersamaan (9.6), kita memiliki

Akhirnya kita dapat kembali ke algoritma Booth. Mengingat representasi X


[Persamaan (9.5)], jelas bahwa semua bit dari x0 sampai dengan 0 paling kiri ditangani
dengan baik, karena memproduksi semua istilah dalam Persamaan (9,8) tapi (-2k +1) dan
dengan demikian adalah dalam bentuk yang tepat. Sebagai algoritma scan selama 0
paling kiri dan menjumpai 1 berikutnya (2k +1), transisi 1-0 terjadi dan pengurangan
terjadi (-2k +1). Ini adalah istilah yang tersisa dalam Persamaan (9,8).
Sebagai contoh, mempertimbangkan penggandaan multiplicand beberapa dengan (-6).
Dalam representasi komplemen berpasangan, dengan menggunakan kata 8-bit. (-6)
Direpresentasikan sebagai 11111010. Dengan Persamaan (9.4), kita tahu bahwa

20
Aritmatika Komputer
Dengan pembaca dapat dengan mudah memverifikasi. Hal ini,

Menggunakan Persamaan (9.7)

Kita bisa melihat bahwa algoritma Booth sesuai dengan skema ini. Ia melakukan
pengurangan ketika pertama ditemui 1 (1-0), tambahan ketika (01) ditemui, dan akhirnya lain
pengurangan ketika 1 pertama dari blok berikutnya dari 1s ditemui. Dengan demikian,
algoritma Booth melakukan penambahan lebih sedikit suatu pengurangan yang dari algoritma
yang lebih mudah.

21
Aritmatika Komputer

Anda mungkin juga menyukai