COMPUTER ARITHMETIC

ARITHMETIC AND LOGIC UNIT (ALU)


A.    Pengertian ALU
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 berdasar instruksi yang ditentukan. ALU inilah yang berfikir untuk menjalankan perintah yang diberikan kepada prosesor tersebut.
Instruksi yang dapat dilaksanakan oleh ALU disebut dengan instruksi set. Perintah yang ada pada masing-masing CPU belum tentu sama, terutama CPU yang dibuat oleh pembuat yang berbeda, katakanlah misalnya perintah yang dilaksanakan oleh CPU buatan Intel belum tentu sama dengan CPU yang dibuat oleh Sun atau perusahaan pembuat mikroprosesor lainnya. Jika perintah yang dijalankan oleh suatu CPU dengan CPU lainnya adalah sama, maka pada level inilah suatu sistem dikatakan compatible. Sehingga sebuah program atau perangkat lunak atau software yang dibuat berdasarkan perintah yang ada pada Intel tidak akan bisa dijalankan untuk semua jenis prosesor kecuali untuk prosesor yang compatible dengannya.
Seperti halnya dalam bahasa yang digunakan oleh manusia, instruksi set ini juga memiliki aturan bahasa yang bisa saja berbeda satu dengan lainnya. Bandingkanlah beda struktur bahasa Inggris dengan Indonesia, atau dengan bahasa lainnya, begitu juga dengan instruksi set yang ada pada mesin, tergantung dimana lingkungan instruksi set itu digunakan.
Perhitungan dalam ALU menggunakan kode biner, yang merepresentasikan instruksi yang akan dieksekusi (opcode) dan data yang diolah (operand). ALU biasanya menggunakan sistem bilangan biner two’s complement. ALU mendapat data dari register. Kemudian data tersebut diproses dan hasilnya akan disimpan dalam register tersendiri yaitu ALU output register, sebelum disimpan dalam memori.




B.     Struktur dan Fungsi ALU
ALU memiliki berbagai komponen elektronika didalamnya, yaitu berupa sekumpulan transistor yang dikenal dengan nama logic gate. Logic gate inilah yang berfungsi untuk melaksanakan operasi aritmatika dan operasi logika. Kumpulan susunan dari logic gate dapat melakukan perintah perhitungan matematika yang lebih komplit seperti perintah add untuk menambahkan bilangan atau devide atau pembagian dari suatu bilangan.
Selain perintah matematika yang lebih komplit, kumpulan dari logic gate ini juga mampu untuk melaksanakan perintah yang berhubungan dengan logika, seperti hasil perbandingan dua buah bilangan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmatika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri.
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:
a. Sama dengan (=)
b. Tidak sama dengan (<>)
c. Kurang dari (<)
d.         Kurang atau sama dengan (<=)
e. Lebih besar dari (>)
f. Lebih besar atau sama dengan (>=)
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 disebut adder.


Ada 3 jenis adder  :
1.    Rangkaian Adder dengan menjumlahkan dua bit disebut Half Adder.
Rangkaian half adder merupakan dasar penjumlahan bilangan biner yang masingmasing 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).



Dari tabel diatas, terlihat bahwa nilai logika dari Sum sama dengan nilai logika dari
gerbang XOR, sedangkan nilai logika Cy sama dengan nilai dari gerbang logika AND. Dari tabel tersebut, dapat dibuat rangkaian half adder seperti pada gambar berikut:

2.    Rangkaian Adder dengan 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. Perhatikan tabel kebenaran dari Full adder berikut :

Dari tabel diatas dapat dibuat persamaan boolean sebagai berikut :
S = Ã B C + A B C + Ã B C + A B C
S = A Å B Å C
Cy = A B C + A B C + A B C + A B C
Dengan menggunakan peta karnaugh, Cy dapat diserhanakan menjadi :
Cy = AB + AC + BC

3.      Rangkain Adder dengan 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.
Fungsi Arithmetic Logic Unit secara umum :
·         Melakukan suatu proses data yang berbentuk angka dan logika, seperti data matematika dan statistika
·         Melakukan keputusan dari operasi sesuai dengan instruksi program yaitu operasi logika (logical operation).
·         Melakukan perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program.
·         Membantu Control Unit saat melakukan perhitungan aritmatika (ADD, SUB) dan logika (AND, OR, XOR, SHL, SHR).


C.     Perkembangan ALU
Pada tahun 1946, Mike Hawk bekerja dengan rekan-rekannya dalam merancang sebuah komputer untuk Institute for Advanced Study of Computer Science (IASS) di Princeton, New Jersey. Para komputer IAS menjadi prototype bagi banyak komputer. Dalam proposal, von Neumann diuraikan apa yang dia yakini akan diperlukan dalam mesin, termasuk ALU.
Von Neumann menyatakan bahwa ALU merupakan suatu keharusan untuk sebuah komputer karena dijamin bahwa komputer harus menghitung operasi matematika dasar, termasuk penambahan, pengurangan, perkalian, dan pembagian. Karena itu ia percaya bahwa masuk akal bahwa komputer harus mengandung organ khusus untuk operasi ini.
Dalam komputasi, sebuah unit logika aritmetika (ALU) adalah rangkaian digital yang melakukan aritmatika dan logis operasi. ALU adalah sebuah blok bangunan fundamental dari central processing unit (CPU) dari sebuah komputer, dan bahkan yang paling sederhana mikroprosesor berisi satu untuk tujuan seperti menjaga timer. Prosesor modern ditemukan di dalam CPU dan graphics processing unit (GPU) mengakomodasi sangat kuat dan sangat kompleks ALU, sebuah komponen tunggal mungkin berisi sejumlah ALU.
Ahli matematika John von Neumann mengusulkan konsep ALU pada tahun 1945, ketika ia menulis sebuah laporan mengenai pondasi untuk sebuah komputer baru yang disebut EDVAC.. Penelitian ALUS tetap menjadi bagian penting dari ilmu komputer, jatuh di bawah struktur Aritmatika dan logika dalam Sistem Klasifikasi.
Perkembangan ALU sejalan dengan perkembangan processor. Semakin tinggi kinerja prosessor maka komponen ALU pun akan berkembang untuk mendukung kinerja dari prosessor.


D.    Keterkaitan ALU dengan perangkat lain
ALU berhubungan dengan alat input device (Alat Masukan). Input Device  adalah perangkat keras komputer yang berfungsi sebagai alat untuk memasukan data atau perintah ke dalam komputer.kemudian, Input Device bekerjasama dengan Output Device (Alat Keluaran) yang merupakan perangkat keras komputer yang berfungsi untuk menampilkan keluaran sebagai hasil pengolahan data. Keluaran dapat berupa hardcopy (ke kertas), softcopy (ke monitor), ataupun berupa suara. I/O Ports, digunakan untuk menerima ataupun mengirim data ke luar sistem.Peralatan input dan output di atas terhubung melalui port ini I/O.  CPU (Central Processing Unit), merupakan otak sistem komputer, dan memiliki dua bagian fungsi operasional, yaitu: ALU (Arithmetical Logical Unit) sebagai pusat pengolah data, dan CU (Control Unit) sebagai pengontrol kerja komputer. Alu mendapatkan data dari register, kemudian data tersebut diproses dan hasilnya akan disimpan dalam register tersendiri yaitu ALU output register, sebelum disimpan dalam memori. 
Machine Cycle (Siklus Mesin) adalah Proses dari suatu instruksi bahasa mesin disebut dengan Siklus Mesin (Machine Cycle). Siklus mesin terdiri dari tahapan – tahapan proses yang dilakukan oleh mesin (CPU), di mana seluruh proses diatur oleh Control Unit dan bekerja sama dengan ALU dan memory. Proses yang dilakukan ada 4 tahap, yaitu : Fetch Tahap pengambilan (membaca) instruksi dari memory. Decode Tahap menterjemahkan instruksi ke dalam perintah – perintah yang dapat dimengerti oleh komputer. Execute Menjalankan (mengeksekusi) aksi (action) dari instruksi yang diterima. Store Penyimpanan hasil proses ke memory. Proses pada siklus mesin terdiri atas dua bagian utama, yaitu Instruksi Cycle (I-Cycle) atau Instruksi Time (I-Time) yang meliputi tahap fetch dan decode serta Execution Cycle (E-cycle) atau Execution Time (E-Time) yang meliputi tahap execute dan store. Pada I-Cycle, instruksi dipindahkan dari memori ke CPU dan dipahami oleh CPU. Selanjutnya pada bagian E-Cycle, tindakan atau perintah dari instruksi tersebut dijalankan.

Integer Representation
  • Dalam sistem bilangan biner , semua bilangan dapat direpresentasikan dengan hanya menggunakan bilangan 0 dan 1, tanda minus, dan tanda titik.
Misalnya: -1101.01012 = -11.312510
  • Namun untuk keperluan penyimpanan dan pengolahan komputer, kita tidak perlu menggunakan tanda minus dan titik.
  • Hanya bilangan biner (0 dan 1) yang dapat merepresentasikan bilangan.
  • Bila kita hanya memakai integer non-negatif, maka representasinya akan lebuh mudah.
  • Sebuah word 8-bit dapat digunakan untuk merepresentasikan bilangan 0 hingga 255. Misalnya:
00000000= 0
00000001= 1
00101001 = 41
  10000000  = 128
   11111111= 225
  • Umumnya bila sebuah rangkaian n-bit bilangan biner an-1an-2…a1a0 akan diinterpretasikan sebagai unsigned integer A.

Representasi Nilai Tanda
  • Penggunaan unsigned integer tidak cukup untuk merepresentasikan bilangan integer negatif dan juga bilangan positif integer.
  • Karena itu terdapat beberapa konvesi lainnya yang dapat kita gunakan.
  • Konvesi-konvesi lainnya meliputi perlakuan terhadap bit yang paling berarti (paling kiri) di dalam word bit tanda.
  • Apabila bit paling kiri sama dengan 0 suatu bilangan adalah positif , sedangkan bila bit yang paling kiri sama dengan 1 bilangan bernilai negatif.
  • Bentuk yang paling sederhana representasi yang memakai bit tanda representasi nilai tanda. Pada sebuah word n bit, n – 1 bit yang paling kanan menampung  nilai integer. Misalnya:
+ 18 = 00010010
-  18 = 10010010 (sign-magnitude/nilai-tanda)
  • Terdapat beberapa kekurangan pada representasi nilai-tanda penambahan dan pengurangan memerlukan pertimbangan baik tanda bilangan ataupun nilai relatifnya agar dapat berjalan pada operasi yang diperlukan.
  • Kekurangannya lainnya terdapat dua representasi bilangan 0:
+ 010 = 00000000
-  010 = 10000000 (sign-magnitude)
REPRESENTASI KOMPLEMEN DUA
  • Representasi komplemen dua ( two’s complement representation)  mengatasi dua buah kekurangan yang terdapat pada representasi nilai- tanda.
  • Penambahan dan pengurangan   nilai-tanda (sign-magnitude) tidak mencukupi dan terdapat dua buah representasi bilangan nol.
  • Representasi komplemen dua menggunakan bit yang paling berarti sebagai bit tanda  memudahkannya untuk mengetahui apakah sebuah integer bernilai positif atau negatif.
  • Representasi ini berbeda dengan representasi nilai-tanda dengan cara menginterpretasikan bit-bit lainnya.
  • Representasi komplemen dua akan lebih mudah dimengerti dengan mendefinisikannya dalam bentuk jumlah bobot bit  seperti telah kita lakukan diatas pada representasi unsigned-magnitude dan sign-magnitude.
  • Bilangan nol akan diidentifikasikan sebagai positif,  memiliki tanda bit 0 dan nilai keseluruhan 0.
  • Kita dapat melihat bahwa range integer positif yang dapat direpresentasikan mulai 0 (seluruh magnitude bit-nya sama dengan 0) hingga 2n-1-1 (seluruh magnitude bit-nya 1).   bilangan yang lebih besar akan memerlukan bit yang lebih banyak.
  • Sekarang  bilangan negatif A, bit tanda an-1, sama dengan 1. n-1 bit sisanya dapat mengambil salah satu dari 2n-1 nilai.
  • Karena itu, range integer negatif yang dapat direpresentasikan  mulai –1 hingga -2n-1.
  • Hasilnya  assignment yang mudah bagi nilai  untuk membiarkan bit-bit an-1 an-2…a:a0 akan sama dengan bilangan positif 2n-1 –A.
KONVERSI ANTARA PANJANG BIT YANG BERLAINAN
  • Kadang-kadang kita perlu mengambil sebuah integer n bit dan menyimpannya di dalam m bit, dengan m > n.
  • Pada notasi sign-magnitude  mudah dilaksanakan: cukup memindahkan bit tanda ke posisi terkiri yang baru dan mengisinya dengan nol. Misalnya:
+18 =                        00010010    (sign-magnitude, 8 bit)
+18 =         0000000000010010    (sign-magtitude, 16 bit)
-18 =                          10010010    (sign-magnitude, 8 bit)
-18 =          1000000000010010    (sign-magtitude, 16 bit)
  • Prosedur di atas tidak berlaku bagi integer negatif komplemen dua. Dengan memakai contoh yang sama:
+18 =                       00010010    (komplemen dua, 8 bit)
+18 =        0000000000010010    (komplemen dua, 16 bit)
-18 =                        10010010    (komplemen dua, 8 bit)
-65.518 =  1000000000010010     (komplemen dua, 16 bit)
  • Aturan integer komplemen dua adalah untuk memindahkan bit tanda ke posisi terkiri yang baru dan mengisinya dengan salinan-salinan bit tanda.
  • Bilangan positif diisi dengan 0 dan  bilangan negatif isi dengan 1
-18 =                          10010010    (komplemen dua, 8 bit)
-18 =          1111111100010010    (komplemen dua, 16 bit)

INTEGER ARITHMETIC
Merupakan operasi aritmatika bilangan bulat (integer), dikarenakan ALU hanya bisa menangani kalkulasi biner bilangan bulat. Bagaimana pun juga ALU juga bisa mengkalkulasikan:
Bilangan pecahan (real)
Bentuk FPU (Floating Point Unit) terpisah
Co-processor dalam chip terpisah
Bilangan bulat (integer) terdiri dari:
Bilangan Asli : 1, 2, 3, …
Bilangan Nol : 0
Bilangan Negatif : …, -3, -2, -1
Bilangan Bulat dinotasikan dengan : B = {…, -3, -2, -1, 0, 1, 2, 3, …}
Bilangan lain yang berada dalam bilangan bulat, di antaranya adalah bilangan:
a. Cacah : C = {0, 1, 2, 3, 4, …}
b.
Ganjil : J = {1, 3, 5, 7, …}
c.
Genap : G = {2, 4, 6, 8, …}
d.
Cacah Kuadrat : K = {0, 1, 4, 9, …}
e.
Prima : {2, 3, 5, 7, 11, …}
 

Floating point adalah sebuah bilangan yang digunakan untuk menggambarkan sebuah nilai yang sangat besar atau sangat kecil. Bilangan tersebut dapat diwujudkan dalam notasi ilmiah, yaitu berupa angka pecahan desimal  dikalikan dengan angka 10 pangkat bilagnan tertentu. Bilangan seperti ini dapat direpresentasikan menjadi dua bagian, yaitu bagian mantisa dan bagian eksponen (E). Bagian mantisa menentukan digit dalam angka tersebut, sedangkan eksponen menentukan nilai berapa besar pangkat pada bagian mantisa tersebut (jarak dari titik posisi desimal). Contoh :
Misalkan terdapat sebuah bilangan 8934000000 maka bilangan ini dapat dituliskan dalam bentuk bilangan floating point. 8934E6 yang secara matematis artinya : 8934 x 10
Bagian mantisanya adalah 8934 dan bagian eksponennya adalah E6

FLOATING POINT REPRESENTATION

Menyatakan suatu bilangan yang sangat besar/sangat kecil dengan menggeser titik desimal secara dinamis dan menggunakan eksponen 10 untuk menjaga desimal itu, sehingga range bilangan yang sangat besar/ sangat kecil itu hanya dalam beberapa digit saja. Bilangan Floating point memiliki bentuk umum :

± m * be
Keterangan:
B         : radiks
m         : mantissa
e          : eksponen
Contoh : Tunjukkan bilangan-bilangan berikut ini dalam notasi floating point.
a. (45.382)10? 0.45382 x 102 = (0.45382,2)
b. (-21,35)8 ? -2135,0 x 8-2 = (-2135.0,-2)
 
ARITMATIKA FLOATING POINT
Penambahan 0,63524 x 103
0,63215 x 103 +
1,26739 x 103 ? 0,126739 x 104
Pengurangan 0,63524 x 103
0,63215 x 103 ?
0,00309 x 103? 0,309 x 101
- 0,10100 x 22 ? 0,01010 x 23
0,11000 x 23 ? 0,11000 x 23 +
1,00010 x 23 ? 0,10001 x 24
Perkalian
(0,253 x 102) x (0,124 x 103) = (0,253) x (0,124) x 102+3
= 0,031 x 105 ? 0,31 x 104
normalize
Pembagian 0,253 x 102 = 0,253 x 102-3
0,124 x 103 0,124
= 2,040 x 10-1 ? 0,204 x 100
overflow
 
REPRESENTASI FIXED POINT
Radiks point/binary point tetap dan diasumsikan akan berada di sebelah kanan dari digit yang paling kanan.
1. Representasi Sign-Magnitude/Nilai tanda
Untuk merepresentasikan bilangan integer negatif dan positif. Dengan menggunakan MSB sebagai bit tanda ?0 = positif, 1 = negatif
Contoh :
Sign-Magnitude +9 dalam 8 bit = 00001001
Sign-Magnitude –4 dalam 4 bit = 1100
Magnitude dari bilangan positif dan negatif sama hanya beda pada sign digitnya/MSB.
2. Representasi Komplemen-1
Untuk mendapat komplemen-1 maka bilangan nol diubah menjadi satu dan satu menjadi nol.
3. Representasi Komplemen-2
Langkah-langkah : Pengubahan bilangan desimal bertanda ke bilangan komplemen-2 (8-bit)
• Tentukan bit tanda/MSB ? 0 = positif, 1 = neg.
• Ubah desimal ke biner (7-bit)
• Ubah ke kompl-1 (setiap 0 diubah ke 1 dan setiap
1 diubah ke 0)
• Ubah ke kompl-2 (tambahkan +1 ke kompl-1
untuk mendapat bil. kompl-2)
• Gabung menjadi satu yaitu MSB sebagai tanda
bit dan 7-bit sebagai besarannya.
Langkah-langkah : Pengubahan bil. kompl-2 (8-bit) ke bil. des. bertanda
• Tentukan bit tanda/MSB
• Ubah 7-bit kompl-2 tersebut ke kompl-1
• Ditambah +1 ke kompl-1
• Ubah biner ke desimal

FLOATING POINT ARITHMETIC
Sistem penempatan titik desimal dengan cara membagi kalimat menjadi dua bagian. Satu bagian berisi angka pecahan, sebagian lainnya merupakan eksponen dari sepuluh. Posisi efektif dari titik desimal akan berubah ketika eksponennya diubah. Sistem ini digunakan untuk menyatakan hasil perhitungan yang sangat besar atau sangat kecil. Operasi ini terdiri dari :
-     Penambahan
-     Pengurangan
-     Perkalian
-     Pembagian
Penjumlahan dan Pengurangan
      Langkah-langkah yang dilakukan untuk menambah/mengurangkan dua bilangan floating-point : 
      Bandingkan dua bilangan, dan ubah ke bentuk yang sesuai pada bilangan dengan nilai exponensial lebih kecil. 
      Lakukan operasi penjumlahan/pengurangan 
      Lakukan normalisasi dengan menggeser nilai mantissa dan mengatur nilai exponensialnya.




b. Perkalian
Algoritma umum untuk perkalian dari bilangan floating-point terdiri dari tiga langkah
1. Hitung hasil exponensial dengan menjumlahkan nilai eksponen dari kedua bilang
2. Kalikan kedua bilangan mantiss
3. Normalisasi hasil akhir
c. Pembagian
      Algoritma umum untuk pembagian dari bilangan floating-point terdiri dari tiga langkah: 
      1. Hitung hasil exponensial dengan mengurangi nilai eksponen dari kedua bilangan 
      2. Bagi kedua bilangan mantissa 
      3. Normalisasi hasil akhir



KESIMPULAN
ALU adalah singkatan dari Arithmatic Logic Unit. ALU adalah bagian dari mikroprosesor komputer. Seperti dengan kepanjangannya ALU ini berfungsi sebagai sebagai mikroprosesor yang berfungsi untuk menghitung atau melakukan operasi perhitungan aritmatika dan logika. Dimana ada penjumlahan, pengurangan dan pembagian. Tetapi di dalam ALU tidak di gunakan bilangan cacah atau bilangan matematika lainnya. di ALU di gunakan bilangan Biner yang di mengerti oleh komputer atau mikroposesor itu sendiri. Dimana bilangan cacah akan di proses atau di ubah menjadi bilangan biner yang hanya terdiri dari angka 1 dan 0.  setelah bilangan tersebut menjadi bilangan biner bilangan tersebut akan di kirim menjadi instruksi yang akan di proses lebih lanjut yang akan di eksekusi nantinya pada prosesor. ALU merupakan salah satu bagia Input Device pada komputer. Karena semua data masukkan di lakukan di ubah di sini. Yang nantinya akan di kirim ke Control Unit (CU) dan di simpan ke dalam memory. Kemudian perkembangan ALU sama dengan Perkembangan Prosesor. Dimana apabila semakin canggih suatu prosesor berarti semakin bagus juga ALU yang dimiliki.

DAFTAR PUSTAKA
http://puspitakusumaningrum.blogspot.com/2014_11_01_archive.html
http://adi-firmansetiawan.blogspot.com/2013/07/arithmetic-and-logic-unit-alu.html
http://riskydwiyanti.wordpress.com/2013/10/20/integer-representation/
http://hermantoharianjaanakmesin.wordpress.com/2013/12/30/cara-kerja-alu-pada-sistem-komputer/

Comments

Popular posts from this blog

Set Instruksi

RESENSI NOVEL