Nov 30, 2024 Sistem Digital

ALU

Semua operasi aritmatika berada di unit aritmatika/logika (ALU) komputer. Gambar 1 adalah diagram blok yang menunjukkan elemen utama umum yang terdapat di dalam ALU. Tujuan utama ALU adalah menerima data biner yang disimpan dalam memori dan menjalankan operasi aritmatika dan logika pada data tersebut sesuai dengan instruksi dari unit kontrol.

Gambar 1 ALU

Unit aritmatika/logika berisi setidaknya dua register flip-flop: register B dan register akumulator. Unit ini juga berisi logika kombinasional, yang melakukan operasi aritmatika dan logika pada bilangan biner yang disimpan dalam register B dan akumulator. Urutan operasi yang umum dapat terjadi sebagai berikut:

  1. Unit kontrol menerima instruksi (dari unit memori) yang menetapkan bahwa bilangan yang disimpan dalam lokasi memori tertentu (alamat) akan ditambahkan ke bilangan yang saat ini disimpan dalam register akumulator.
  2. Bilangan yang akan ditambahkan ditransfer dari memori ke register B.
  3. Bilangan dalam register B dan bilangan dalam register akumulator ditambahkan bersama-sama dalam rangkaian logika (atas perintah dari unit kontrol). Hasil penjumlahan kemudian dikirim ke akumulator untuk disimpan.
  4. Bilangan baru dalam akumulator dapat tetap berada di sana sehingga bilangan lain dapat ditambahkan ke dalamnya atau, jika proses aritmatika tertentu selesai, bilangan tersebut dapat ditransfer ke memori untuk disimpan.

Langkah-langkah ini akan memperjelas bagaimana register akumulator bekerja. Register ini “mengakumulasikan” jumlah yang terjadi ketika melakukan penjumlahan berturut-turut antara angka-angka baru yang diperoleh dari memori dan jumlah yang telah diakumulasikan sebelumnya. Faktanya, untuk setiap masalah aritmatika yang berisi beberapa langkah, akumulator biasanya berisi hasil dari langkah antara saat langkah tersebut diselesaikan serta hasil akhir saat masalah selesai.

Aritmatika Biner

Operasi aritmatika binari, merupakan operasi aritmatika yang melandasi tentang proses aritmatika dan logika pada sistem digital dan komputer modern. Namun pada kenyataannya, operasi aritmatika tersebut tidak dapat diwakili oleh operasi yang terdapat pada gerbang dasar, walaupun secara prinsipnya, tiap-tiap gerbang mewakili satu operasi aritmatika, terutama adalah operasi-operasi dasar penjumlahan dan pengurangan.

Contoh :

Pada saat kita akan menjumlahkan dua bilangan biner 1+1, bila diwakilkan dengan operasi penjumlahan pada Gerbang OR, akan menghasilkan keluaran yang berbeda dengan hasil operasi aritmatika yang sesungguhnya, dimana jika diperasikan dengan Gerbang OR, akan diperoleh keluaran 12+12 = 12, sedangkan pada operasi aritmatika idealnya output yang diperoleh adalah 1+1 = 102, bagaimana mengimplementasikan operasi ini pada sistem komputer digital? Maka untuk menjawab pertanyaan ini dibutuhkan sebuah rangkaian aritmatika yang dapat mewakili operasi aritmatika yang sesungguhnya.

Operasi penjumlahan aritmatika :

Rangkaian Penjumlah Tak lengkap (Half Adder)

Penjumlah tak lengkap (half adder) menjumlahkan 2 angka biner pada satu operasi, yang akan menghasilkan keluaran dua digit biner, yaitu biner hasil jumlah dan biner limpahan. Rangkaian half adder (HA) ini mewakili operasi aritmatika penjumlahan dua bilangan biner, yang tidak bisa diwakili oleh operasi penjumlahan dengan gerbang OR. Sebuah HA, dapat digambarkan fungsinya seperti pada Gambar 2 berikut :

Gambar 2 Block Diagram, rangkaian dan table kebenaran half Adder

Untuk melakukan operasi penjumlahan dengan HA ini, diwakili oleh dua buah gerbang logika, yaitu gerbang EXOR dan AND, dengan bentuk rangkaian seperti pada Gambar 2 Operasi rangkaian ini, dapat dianalogikan dengan operasi persamaan :

  • Sum = AB + AB = A⊕B
  • Carry = A.B

Prinsip kerja rangkaian ini dapat dibuktikan dengan tabel kebenaran pada Gambar 9.2

Seperti halnya untuk setiap rangkaian logika dengan 2 input, maka akan diperoleh variasi Masukan, Sehingga operasinya dapat diuraikan sebagai berikut :

  1. Bila A = 0 dan B = 0, maka :
    Sum     = A ⊕ B          = 0 ⊕ 0           = 0
    Carry = A . B   = 0 . 0     = 0
  2. Bila A = 0 dan B = 1, maka :
    Sum     = A ⊕ B = 0 ⊕ 1 = 1
    Carry  = A . B = 0 . 1 = 0
  3. Bila A = 1 dan B = 0, maka :
    Sum     = A ⊕ B = 1 ⊕ 0 = 1
    Carry  = A . B = 1 . 0 = 0
  4. Bila A = 1 dan B = 1, maka :
    Sum     = A ⊕ B = 1 ⊕ 1 = 0
    Carry  = A . B = 1 . 1 = 1

Sehingga dengan rangkaian HA ini, kita dapat melakukan operasi penjumlahan biner dengan rangkaian logika, sehingga dengan demikian, akan dapat kita peroleh : 0+0 = 0, 0+1 = 1, 1+0=1 dan 1+1 = 10.

Kekurangan
Penjumlahan dengan HA ini hanya dapat melakukan operasi penjumlahan dua biner terhadap LSB (least significant binary)-nya saja, tetapi untuk nilai biner yang lebih berbobot, rangkaian ini tidak dapat melakukannya.

Rangkaian Penjumlah Lengkap (Full Adder)

Kelemahan yang dimiliki oleh rangkaian penjumlah tak penuh (HA), yang hanya dapat melakukan operasi penjumlahn terhadap 2 bilangan biner pada sisi LSB, diatasi dengan membangun rangkaian penjumlah yang lebih lengkap yang disebut dengan rangkaian penjumlah lengkap (Full Adder).

Rangkaian Full Adder (FA), merupakan sebuah rangkaian penjumlah yang mempunyai tiga input, termasuk masukan bawaan (input carry) dan menghasilkan keluaran hasil jumlah (sum) dan hasil bawaan (output carry).

Dalam menjumlahkan dua bilangan biner, mungkin terdapat bawaan dari satu kolom ke kolom berikutnya, contoh :

Dalam kolom paling ringan (LSB – least significant binary) : 1 + 1 = 0, dengan bawaan 1

Dalam kolom berikutnya, kita harus menjumlahkan 3 angka digit, akibat adanya bawaan dari kolom sebelumnya :

1 + 0 + 1 = 0, dengan bawaan 1

Dalam kolom terakhir, kembali terjadi penjumlahan dengan 3 angka biner, akibat bawaan kolom kedua :

1 + 1 + 1 = 1, dengan bawaan 1

Oleh sebab itu, untuk menjumlahkan bilangan-bilangan biner dengan operasi bawaan yang menghasilkan penjumlahan 3 biner sekaligus, tidak bisa dilakukan lagi dengan HA, tetapi merupakan suatu rangkaian FA.

Sebuah FA pada dasarnya adalah gabungan dua buah HA, dengan kedua output carry-nya dijumlahkan, yang dilengkapi dengan sebuah masukan carry (Cin), secara blok dapat dilihat pada Gambar 3.

Gambar 3 Block Diagram Full Adder

Full Adder Bisa dibangun dari gabungan 2 buah half adder seperti terlihat pada Gambar 4 dibawah

Gambar 4. Full adder dengan kombinasi 2 HA

Tabel Kebenarannya adalah sebagai berikut:

Rangkaian Lengkapnya adalah seperti pada gambar 5

Gambar 5 Full adder

Dengan memperhatikan skema rangkaian FA, maka dapat dibuat suatu persamaan untuk output-outputnya sebagai berikut :

  1. Keluaran HA1
    Sum = A⊕B, dan Carry = A.B
  2. Keluaran HA 2
    Sum = (A⊕B) ⊕Cin, dan Carry = (A⊕B). Cin
  3. Keluaran lengkap Full Adder
    Sum = (A⊕B) ⊕Cin, dan Carry = AB + (A⊕B). Cin

Ilustrasi operasi adalah sebagai berikut

  1. Saat masukan A= 0, B= 0 dan Cin = 0, maka :
    • Keluaran HA 1
      Sum = A⊕B = 0 ⊕ 0 = 0
      Carry = A.B = 0 . 0 = 0
    • Keluaran HA 2
      Sum = (A⊕B) ⊕ Cin = 0 ⊕ 0 = 0
      Carry = (A⊕B). Cin = 0 . 0 = 0
    • Keluaran Full Adder
      Sum = (A⊕B) ⊕ Cin = 0 ⊕ 0 = 0
      Carry = AB + (A⊕B). Cin = 0 + 0 = 0
  2. Saat masukan A= 0, B= 0 dan Cin = 1, maka :
    • Keluaran HA 1
      Sum = A⊕B = 0 ⊕ 0 = 0
      Carry = A.B = 0 . 0 = 0
    • Keluaran HA 2
      Sum = (A⊕B) ⊕ Cin = 0 ⊕ 1 = 1
      Carry = (A⊕B). Cin = 0 . 1 = 0
    • Keluaran Full Adder
      Sum = (A⊕B) ⊕ Cin = 0 ⊕ 1 = 1
      Carry = AB + (A⊕B). Cin = 0 + 0 . 1 = 0
  3. Saat masukan A= 0, B= 1 dan Cin = 0, maka :
    • Keluaran HA 1
      Sum = A⊕B = 0 ⊕ 1 = 1
      Carry = A.B = 0 . 1 = 0
    • Keluaran HA 2
      Sum = (A⊕B) ⊕ Cin = 1 ⊕ 0 = 1
      Carry = (A⊕B). Cin =1 . 0 = 0
    • Keluaran Full Adder
      Sum = (A⊕B) ⊕ Cin = 1 ⊕ 0 = 1
      Carry = AB + (A⊕B). Cin = 0 + 1.0 = 0
  4. Saat masukan A= 0, B= 1 dan Cin = 1, maka :
    • Keluaran HA 1
      Sum = A⊕B = 0 ⊕ 1 = 1
      Carry = A.B = 0 . 1 = 0
    • Keluaran HA 2
      Sum = (A⊕B) ⊕ Cin = 1 ⊕ 1 = 0
      Carry = (A⊕B). Cin = 1. 1 = 1
    • Keluaran Full Adder
      Sum = (A⊕B) ⊕ Cin = 1 ⊕ 1 = 0
      Carry = AB + (A⊕B). Cin = 0 + 1.1 = 1
  5. Saat masukan A= 1, B= 0 dan Cin = 0, maka :
    • Keluaran HA 1
      Sum = A⊕B = 1 ⊕ 0 = 1
      Carry = A.B = 1 . 0 = 0
    • Keluaran HA 2
      Sum = (A⊕B) ⊕ Cin = 1 ⊕ 0 = 1
      Carry = (A⊕B). Cin = 1 . 0 = 0
    • Keluaran Full Adder
      Sum = (A⊕B) ⊕Cin = 1 ⊕ 0 = 1
      Carry = AB + (A⊕B). Cin = 0 + 1. 0 = 0
  6. Saat masukan A= 1, B= 0 dan Cin = 1, maka :
    • Keluaran HA 1
      Sum = A⊕B = 1 ⊕ 0 = 1
      Carry = A.B = 1 . 0 = 0
    • Keluaran HA 2
      Sum = (A⊕B) ⊕Cin = 1 ⊕ 1 = 0
      Carry = (A⊕B). Cin = 1 . 1 = 1
    • Keluaran Full Adder
      Sum = (A⊕B) ⊕Cin = 1 ⊕ 1 = 0
      Carry = AB + (A⊕B). Cin = 0 + 1. 1 = 1
  7. Saat masukan A= 1, B= 1 dan Cin = 0, maka :
    • Keluaran HA 1
      Sum = A⊕B = 1 ⊕ 1 = 0
      Carry = A.B = 1 . 1 = 1
    • Keluaran HA 2
      Sum = (A⊕B) ⊕Cin = 0 ⊕ 0 = 0
      Carry = (A⊕B). Cin = 0 . 0 = 0
    • Keluaran Full Adder
      Sum = (A⊕B) ⊕Cin = 0 ⊕ 0 = 0
      Carry = AB + (A⊕B). Cin = 1 + 0 . 0 = 1
  8. Saat masukan A= 1, B= 1 dan Cin = 1, maka :
    • Keluaran HA 1
      Sum = A⊕B = 1 ⊕ 1 = 0
      Carry = A.B = 1 ⊕ 1 = 1
    • Keluaran HA 2
      Sum = (A⊕B) ⊕Cin = 0 ⊕ 1 = 1
      Carry = (A⊕B). Cin = 0 . 1 = 0
    • Keluaran Full Adder
      Sum = (A⊕B) ⊕Cin = 0 ⊕ 1 = 1
      Carry = AB + (A⊕B). Cin = 1 + 1. 1 = 1

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *