ALU seperti telah diketahui secara umum adalah bertugas untuk melaksanakan operasi aritmatika dan logika. Dalam melakukan operasi ini, ALU juga membutuhkan tempat untuk menyimpan hasil operasinya untuk sementara waktu. Piranti penyimpanan ini terdiri dari sekumpulan register flip-flop yang masing-masing terdiri dari satu atau lebih flip-flop. Panjang setiap register didefinisikan sebagai banyaknya informasi maksimum yang dapat disimpan oleh register tersebut. Dalam register biner, panjangnya register sama dengan banyaknya digit biner maksimum yang dapat disimpan dan dalam register BCD, panjangnya register sama dengan banyaknya digit decimal yang dapat disimpan dalam register tersebut.
Hampir semua computer, khususnya mikroprosesor, memiliki register yang disebut dengan akumulator yang merupakan register utama untuk operasi arithmetic dan Logic. Register ini menyimpan hasil setiap operasi arithmetic atau operasi logic dan rangkaian penggerbangannya ditempelkan pada register ini, sehingga operasi yang perlu, dapat dilakukan pada isinya dan pada register lain yang berkaitan.
Unit Aritmetika dan Logika merupakan bagian pengolah bilangan dari sebuah komputer. Di dalam operasi aritmetika ini sendiri terdiri dari berbagai macam operasi diantaranya adalah operasi penjumlahan, pengurangan, perkalian, dan pembagian. Mendesain ALU juga memiliki cara yang hampir sama dengan mendesain enkoder, dekoder, multiplexer, dan demultiplexer. Rangkaian utama yang digunakan untuk melakukan perhitungan ALU adalah Adder.
Adder
Rangkaian ALU (Arithmetic and Logic Unit) yang digunakan untuk menjumlahkan bilangan dinamakan dengan Adder. Karena Adder digunakan untuk memproses operasi aritmetika, maka Adder juga sering disebut rangkaian kombinasional aritmetika. ALU akan dijelaskan lebih detail pada bab 3. Ada 2 jenis Adder :
1. Rangkaian Adder yang hanya menjumlahkan dua bit disebut Half Adder.
Rangkaian half adder merupakan dasar penjumlahan bilangan biner yang masing-masing hanya terdiri dari satu bit, oleh karena itu dinamakan penjumlah tak lengkap.
1. Jika A=0 dan B=0 dijumlahkan, hasilnya S (Sum) = 0.
2. Jika A=0 dan B=1 dijumlahkan, hasilnya S (Sum) = 1.
3. Jika A=1 dan B=1 dijumlahkan, hasilnya S (Sum) = 0.
dengan nilai pindahan Cy(Carry Out) = 1. Dengan demikian, half adder memiliki 2 masukan (A dan B) dan dua keluaran (S dan Cy). Maka nilai logika dari Sum sama dengan nilai logika dari gerbang XOR, sedangkan nilai logika Cy sama dengan nilai dari gerbang logika AND.
2. Rangkaian Adder yang menjumlahkan tiga bit disebut Full Adder.
Full adder mengolah penjumlahan untuk 3 bit bilangan atau lebih (bit tidak terbatas), oleh karena itu dinamakan rangkaian penjumlah lengkap.
Cy = AB + AC + BC
3. Rangkaian Adder yang menjumlahkan banyak bit disebut paralel Adder
Parallel Adder adalah rangkaian Full Adder yang disusun secara parallel dan berfungsi untuk menjumlah bilangan biner berapapun bitnya, tergantung jumlah Full Adder yang diparallelkan. Gambar berikut menunjukkan Parallel Adder yang terdiri dari 4 buah Full Adder yang tersusun parallel sehingga membentuk sebuah penjumlah 4 bit.
Penjumlahan
Komputer hanya dapat melakukan proses aritmetika menggunakan bilangan biner. Semua sistem bilangan harus diubah terlebih dahulu ke biner agar dapat diproses. Proses yang biasa dilakukan oleh komputer untuk menjumlahkan sistem bilangan desimal biasanya adalah menyandikan ke 8421BCD terlebih dahulu sebelum dijumlahkan. Sebelum mempelajari tentang penjumlahan pada 8421BCD, ada baiknya mengetahui cara menjumlahkan bilangan biner.
a. Penjumlahan Biner
Ada 4 kondisi yang terjadi pada penjumlahan biner yaitu apabila 0 + 0, 0 + 1, 1 + 0, dan 1 + 1. Jika yang terjadi adalah 1 + 1, kita tidak dapat menyatakan hasil jumlah dalam satu digit. Tetapi kita harus melakukan penyimpanan (Carry Out) kedalam kolom yang lebih tinggi. Ini berlaku untuk seluruh sistem bilangan. Sebagai contoh pada bilangan desimal 2 + 5 = 7 dengan carry out = 0, 9 + 9 = 8 dengan carry out = 1.
b. Penjumlahan 8421BCD
Sandi 8421BCD hanya menggunakan bilangan biner untuk 0 sampai 9, karena yang disandikan hanya 1 digit angka desimal. Dalam penjumlahan yang perlu diperhatikan adalah jika hasilnya lebih dari 9 sehingga akan dihasilkan auxillary carry (Carry dari bilangan keempat LSB) maupun carry dari MSB. Berikut adalah aturan penjumlahan sandi 8421BCD:
- Jika jumlah biner dan jumlah BCD sama, yaitu AC (Auxillary Carry) = 0 dan Carry = 0 maka tidak diperlukan aturan tambahan.
- Jika jumlah biner tidak sama dengan jumlah desimal maka memerlukan pengaturan tambahan :
Jika Auxillary Carry (AC) = 0 atau AC = 1 dan Carry (Cy) = 0 dimana hasil penjumlahan binernya lebih dari 9 desimal, maka perlu ditambahkan 6 pada nible rendah tersebut, dan tambahkan 1 pada nible yang lebih tinggi.
Pengurangan
Pengurangan pada dasarnya merupakan penjumlahan, yaitu penjumlahan dengan bilangan negatif.
500 – 255 = 245 (Pengurangan)
500-255 = 245 (Penjumlahan)
Komputer hanya bekerja pada bilangan “0” dan “1” dan tidak mengenal bilangan negatif. Untuk menunjukkan bilangan negatif, komputer menggunakan tanda modulus (Modulus Sign). Pada penjumlahan desimal tanda modulus yang digunakan adalah “0” untuk bilangan positif dan “9” untuk bilangan negatif. Untuk bilangan negatif, pada operasi penjumlahannya, harus dikomplemen. Komplemen yang digunakan pada bilangan desimal adalah komplemen10 dan komplemen9.
Pengurangan Bilangan Biner
Pada penjumlahan biner, komplemen yang digunakan adalah komplemen2 dan komplemen1. Untuk mendapatkan komplemen bilangan biner, cukup dengan membalik angkanya saja. Jika “0” dibalik menjadi “1”, dan jika “1” dibalik menjadi “0”. Komplemen2 mirip dengan komplemen10 pada bilangan desimal (Carry dihilangkan), sedangkan komplemen1 mirip dengan komplemen9 (Carry ditambahkan pada hasil akhir).
Perkalian
Perkalian antara bilangan biner adalah perkalian yang paling mudah diantara sistem bilangan lainnya. Perkalian desimal melibatkan lebih banyak hal daripada perkalian biner. Dalam perkalian biner, hasil perkalian adalah 0 atau bilangan itu sendiri. Sedangkan dalam perkalian desimal melibatkan tabel perkalian ditambah dengan pembawaan dan penambahan.
Perkalian dua digit desimal saja sudah melibatkan dua digit keluaran, misalnya 3 x 6 = 18. Dalam hal berikut, kita sebut hasil perkalian dua digit sebagai digit kiri dan digti kanan. Jadi hasil perkalian pada contoh tersebut 1 sebagai digit kiri dan 8 adalah digit kanan. Dan untuk 2 x 3 = 6 kia peroleh 0 untuk digit kiri dan 6 untuk digit kanan.
Untuk proses yang lebih cepat dapat dilakukan dengan membentuk hasil kali dengan memakai yang dikalikan dan digit terkanan dari pengali, selain itu dengan betul – betul membentuk hasil kali parsial kiri dan kanan yang diperoleh bila perkalian digit dengan bilangan, kemudian menjumlahkannya. Misalnya 6 x 7164 akan menghasilkan 2664 untuk perkalian digit kanan dan 4036 untuk digit kiri. Kemudian dijumlahkan.
Pembagian
Kebalikan dari perkalian, pembagian (Division) adalah suatu bentuk dari pengurangan yang dilakukan berulangulang. Dan proses ini juga dapat dilakukan pada rangkaian logika dengan cara pengurangan dan penggeseran ke kiri (menggunakan shiftleft register). Berikut adalah aturan dari pembagian: Kurangkan bilangan pembagi (Divisor) dari MSB bilangan yang akan dibagi (Dividend), lihat hasil pengurangan.
Bila hasilnya 1 atau positif :
Berarti hasil pembagian (Product) adalah 1. Setelah itu hasil pengurangan digeser kekiri satu bit, dan dimulai lagi pengurangan oleh bilangan pembagi (Divisor).
Bila hasilnya 0 atau negatif :
Berarti hasil pembagian (Product) adalah 0. Dalam hal ini sebelum digeser ke kiri harus ditambah dulu dengan bilangan pembagi (Divisor). Setelah digeser ke kiri satu bit, dimulai lagi proses pengurangan oleh bilangan pembagi. Pengurangan oleh bilangan pembagi dilakukan dengan penjumlahan komplemen2. Bila dalam penjumlahan tersebut terdapat pindahan (Carry), maka carry tersebut diabaikan.
Tidak ada komentar:
Posting Komentar