Rabu, 05 November 2014

Arithmetic Logical Unit (ALU)

Arithmatic Logical Unit (ALU), adalah salah satu bagian/komponen dalam sistem di dalam sistem komputer yang berfungsi melakukan operasi/perhitungan aritmatika dan logika (Contoh operasi aritmatika adalah operasi penjumlahan dan pengurangan, sedangkan contoh operasi logika adalah logika AND dan OR. ALU bekerja besama-sama memori, di mana hasil dari perhitungan di dalam ALU di simpan ke dalam memori.
      
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.
     
Pada saat sekarang ini sebuah chip/IC dapat mempunyai beberapa ALU sekaligus yang memungkinkan untuk melakukan kalkulasi secara paralel. Salah satu chip ALU yang sederhana (terdiri dari 1 buah ALU) adalah IC 74LS382/HC382ALU (TTL). IC ini terdiri dari 20 kaki dan beroperasi dengan 4×2 pin data input (pinA dan pinB) dengan 4 pin keluaran (pinF).
     
Arithmatic Logical Unit (ALU), fungsi unit ini adalah untuk melakukan suatu proses data yang berbentuk angka dan logika, seperti data matematika dan statistika. ALU terdiri dari register-register untuk menyimpan informasi.Tugas utama dari ALU adalah melakukan perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. Rangkaian pada ALU (Arithmetic and Logic Unit) yang digunakan untuk menjumlahkan bilangan dinamakan dengan Adder. Adder digunakan untuk memproses operasi aritmetika, Adder juga disebut rangkaian kombinasional aritmatika. Operasi logika (logical operation) meliputi perbandingan dua buah elemen logika dengan menggunakan operator logika, yaitu:
  1. sama dengan (=)
  2. tidak sama dengan (<>)
  3. kurang dari (<)
  4. kurang atau sama dengan dari (<=)
  5. lebih besar dari (>)
  6. lebih besar atau sama dengan dari (>=)
     Ada 3 jenis adder:
     1. Rangkaian Adder dengan menjumlahkan dua bit disebut Half Adder.
     2. Rangkaian Adder dengan menjumlahkan tiga bit disebut Full Adder.
     3. Rangkain Adder dengan menjumlahkan banyak bit disebut Paralel Adder
1. HALF ADDER
Rangkaian Half Adder merupakan dasar penjumlahan bilangan Biner yang terdiri dari satu bit, oleh karena itu dinamai Penjumlah Tak Lengkap.
     a. jika A = 0 dan B = 0 dijumlahkan, hasilnya S ( Sum ) = 0.
     b. jika A = 0 dan B = 1 dijumlahkan, hasilnya S ( Sum ) = 1.
     c. jika A = 1 dan B = 1 dijumlahkan, hasilnya S ( Sum ) = 0
     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 ).
2. FULL ADDER
Sebuah Full Adder menjumlahkan dua bilangan yang telah dikonversikan menjadi bilangan-bilangan biner. Masing-masing bit pada posisi yang sama saling dijumlahkan. Full Adder sebagai penjumlah pada bit-bit selain yang terendah. Full Adder menjumlahkan dua bit input ditambah dengan nilai Carry-Out dari penjumlahan bit sebelumnya. Output dari Full Adder adalah hasil penjumlahan (Sum) dan bit kelebihannya (carry-out).
3. PARALEL ADDER
Rangkaian Parallel Adder adalah rangkaian penjumlah dari dua bilangan yang telah dikonversikan ke dalam bentuk biner. Anggap ada dua buah register A dan B, masing-masing register terdiri dari 4 bit biner : A3A2A1A0 dan B3B2B1B0.
Rangkaian Parallel Adder terdiri dari Sebuah Half Adder (HA) pada Least Significant Bit (LSB) dari masing-masing input dan beberapa Full Adder pada bit-bit berikutnya. Prinsip kerja dari Parallel Adder adalah sebagai berikut : penjumlahan dilakukan mulai dari LSB-nya. Jika hasil penjumlahan adalah bilangan desimal “2” atau lebih, maka bit kelebihannya disimpan pada Cout, sedangkan bit di bawahnya akan dikeluarkan pada Σ. Begitu seterusnya menuju ke Most Significant Bit (MSB)nya.
Tugas lain dari ALU adalah melakukan keputusan dari operasi sesuai dengan instruksi program yaitu operasi logika (logical operation). Operasi logika meliputi perbandingan dua buah elemen logika dengan menggunakan operator logika.
     Arithmatic Logical Unit (ALU):
-    Bertugas membentuk fungsi – fungsi pengolahan data komputer.
-   ALU sering disebut mesin bahasa (machine language) karena bagian ini mengerjakan instruksi – instruksi bahasa mesin yang diberikan padanya
-   ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean, yang masing – masing memiliki spesifikasi dan tugas tersendiri.
   Fungsi-fungsi yang didefinisikan pada ALU adalah Add(penjumlahan), Addu (penjumlahan tidak bertanda), Sub(pengurangan), Subu (pengurangan tidak bertanda), and, or, xor, sll (shift left logical), srl (shift right logical), sra (shift right arithmetic), dan lain-lain.
      Arithmatic Logical Unit (ALU) merupakan unit penalaran secara logic. ALU ini merupakan Sirkuit CPU berkecepatan tinggi yang bertugas menghitung dan membandingkan. Angka-angka dikirim dari memori ke ALU untuk dikalkulasi dan kemudian dikirim kembali ke memori. Jika CPU diasumsikan sebagai otaknya komputer, maka ada suatu alat lain di dalam CPU tersebut yang kenal dengan nama Arithmetic Logical Unit (ALU), ALU inilah yang berfikir untuk menjalankan perintah yang diberikan kepada CPU tersebut.
     ALU sendiri merupakan suatu kesatuan alat yang terdiri dari berbagai komponen perangkat elektronika termasuk di dalamnya sekelompok transistor, yang dikenal dengan nama logic gate, dimana logic gate ini berfungsi untuk melaksanakan perintah dasar matematika dan operasi logika. Kumpulan susunan dari logic gate inilah yang 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.
    Instruksi yang dapat dilaksanakan oleh ALU disebut dengan instruction 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 jenisprosesor,kecuali untuk prosesor yang compatible dengannya.
      Seperti halnya dalam bahasa yang digunakan oleh manusia, instruction 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 instruction set yang ada pada mesin, tergantung dimana lingkungan instruction set itu digunakan.

Integer Representation

Meskipun secara matematis, dalam sistem bilangan biner bisa digunakan tanda minus 
dan radix point, di dalam komputer hanya ada bilangan 0 & 1 untuk merepresentasikan semua angka
Contoh bilangan biner matematis:
-1101.0101 = -13.3125
Bentuk seperti ini tidak membawa manfaat bagi komputer, malah menyulitkan. Oleh karena itu tidak dipakai
Representasi Integer Positif
Seandainya semua integer positif, konversi ke biner biasa, tinggal disesuaikan dengan panjang bit register yang tersedia. Misal data akan disimpan dalam reg. 8-bit:
00000000 = 0
00000001 = 1
00101001 = 41
10000000 = 128
11111111 = 255

Representasi Integer Negatif (1)
Mulai timbul masalah saat akan menyimpan bilangan negatif. Komputer tidak mengenal tanda minus
Sign-Magnitude Representation. Bit paling kiri menunjukkan magnitude 
integer (positif atau negatif) -> sign bit
+18 = 00010010
- 18 = 10010010
Kekurangan: ada 2 buah angka nol: nol 
positif (00000000) dan negatif (10000000).
Representasi Integer Negatif (2)

Two’s Complement Representation
Ini yang digunakan di komputer sekarang. Satu bit paling kiri dijadikan bernilai negatif,  kemudian dijumlahkan dengan bit sisanya. 
Nalar manusia paling gampang, gunakan Value Box
Misal 8-bit:
-128 64 32 16 8 4 2 1
Mengapa 1 bit paling kiri? Porsi sama besar: 
negatif = -128
positif = (64 + 32 + 16 + 8 + 4 + 2 + 1) = 127

MSB (Most Significant Bit)
Bit yang terletak paling sebelah kiri yang memiliki nilai terbesar
Contoh dalam bilangan Biner berikut:
1001 0101 = 149 MSB nya adalah yang berwarna Merah
LSB
Least Significant Bit
Bit yang terletak paling sebelah kanan yang memiliki nilai terkecil
Contoh dalam bilangan Biner berikut:
1001 0101 = 149 MSB nya adalah yang berwarna Merah
Komplemen

DEFINISI : Pelengkap
 
Decimal
Komplemen 9
Komplemen 10
“Komplemen sembilan dari bilangan desimal diperoleh dengan mengurangkan masing-masing digit desimal tersebut ke bilangan 9, sedangkan komplemen sepuluh adalah komplemen sembilan ditambah 1”
Lihat contoh nyatanya!
Bilangan Desimal 123 651 914
Komplemen Sembilan 876 348 085
Komplemen Sepuluh 877 349 086 à ditambah dengan 1!
Perhatikan hubungan diantara bilangan dan komplemennya adalah simetris. Jadi, dengan memperhatikan contoh di atas, komplemen 9 dari 123 adalah 876 dengan simple menjadikan jumlahnya = 9 ( 1+8=9, 2+7=9 , 3+6=9 )!
Sementara komplemen 10 didapat dengan menambahkan 1 pada komplemen 9, berarti 876+1=877!
 
Biner
Analogi yang bisa diambil dari perhitungan komplemen di atas adalah, komplemen satu dari bilangan biner diperoleh dengan jalan mengurangkan masing-masing digit biner tersebut ke bilangan 1, atau dengan bahasa sederhananya mengubah masing-masing 0 menjadi 1 atau sebaliknya mengubah masing-masing 1 menjadi 0. Sedangkan komplemen dua adalah satu plus satu. Perhatikan Contoh .!
  
Bilangan Biner 110011 101010 011100
Komplemen Satu 001100 010101 100011
Komplemen Dua 001101 010110 100100
Komplemen 1 Biner
Biner 0 diubah menjadi 1
Biner 1 diubah menjadi 0

Integer Arithmatic

Bagian ini akan membahas fungsi-fungsi aritmatik bilangan dalam representasi komplemen dua.

A. Negasi
Pada notasi komplemen dua, pengurangan sebuah bilangan integer dapat dibentuk dengan mengunakan aturan berikut:
Anggaplah komplemen boolean seluruh bit bilangan integer (termasuk bittanda). Perlakukan hasilnya sebagai sebuah unsigned binary integer, tambahkan1. misalnya:18=00010010 (komplemen dua).


B. Representasi Integer Positif, Negatif, dan Bilangan 0
  • Bila sebuah bilangan integer positif dan negatif yang sama direpresentasikan (sign – magnitude),maka harus ada representasi bilangan positif dan negatif yang tidak sama.
  • Bila hanya terdapat sebuah representasi bilangan 0 (komplemen dua),maka harus ada representasi bilangan positif dan negatif yang tidak sama.
  • Pada kasus komplemen dua,terdapat representasi bilangan n-bit untuk -2n,tapi tidak terdapat untuk 2n.
Aritmetik Integer – Multiplication Unsigned Binary Multiplication

Aturan:
  1. Masukkan bilangan yang akan dikalikan ke M
  2. Masukkan bilangan pengali ke Q
  3. Awal: A dan C diset 0
  4. Jika kondisi terakhir Q0 = 0, hanya lakukan shift kanan 1 bit sepanjang A dan Q, tapi
  5. Jika kondisi terakhir Q0 = 1, tambahkan M ke A (jika tidak cukup, tampung sisa digitnya di C), kemudian lakukan shift kanan 1 bit sepanjang C, A dan Q Ulangi dua baris di atas sebanyak panjang bit Q
  6. Setelah loop terakhir, hasil akan tersedia di A dan Q
Aritmetik Integer – Overflow
  • Kadang penjumlahan tidak menghasilkan panjang digit yang sama, bisa lebih, kelebihan itu dihilangkan saja (dipotong).
  • Overflow terjadi jika register ybs tidak mampu menampung bilangan yang dihasilkan. Misal 4-bit rangenya -8 … 7, tidak bisa menampung bilangan 11
  • Overflow jika dan hanya jika: penjumlahan dilakukan terhadap dua bilangan bertanda sama, dan hasilnya bertanda berbeda.

Floating Point Representation

- Menyatakan suatu bilangan yang sangat besar/sangat kecil dengan menggeser titik desimal secara dinamis ke tempat yang sesuai dan menggunakan eksponen 10 untuk menjaga titik desimal itu.
- Sehingga range bilangan yang sangat besar dan sangat kecil untuk direpresentasikan hanya dengan beberapa digit saja.
- Dinyatakan dengan notasi ? a = (m,e) , dimana :
a= m x re r = 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

Beberapa bagian-bagian dari CPU adalah sebagai berikut:
 
Arithmetic and Logical Unit (ALU)
ALU melaksanakan seluruh perhitungan (penambahan, pengurangan, perkalian atau pembagian) dan operasi logika. ALU berfungsi melakukan operasi aritmatik dan logik yang terbagi menjadi empat kelas, yaitu decimal arithmetic, fixed point arithmetic, floating point aritmetic dab logic operation.
Decimal Arithmetic digunakan untuk operasi bilangan desimal dengan menggunakan tanda plus (+) atau negatif (-). Fixed Point Arithmetic adalah operasi arithmetic dari data binary untuk menyatakan address dari penyimpanan. Floating Point Arithmetic untuk operasi matematika. Logic Operation dapat berupa operasi-operasi perbandingan, testing, transalting, editing dan moving logic data.
 
Control Unit (CU)
CU merupakan bagian CPU yang berfungsi untuk:
• Membaca dan mengintepresikan instruksi-instruksi program
• Melangsungkan operasi komponen-komponen prosesor internal
• Mengendalikan aliran program dan data ke dalam dan ke luar RAM.
 
- Floating Point adalah tipe data yang dapat menyimpan angka dengan pecahan. VB membedakan menjadi dua jenis, yaitu:
• Tipe data single. Tipe data ini, dapat menampung angka negatif dengan jangkauan -3.402823E38 hingga -1.401298E-45, dan angka positif dengan jangkauan 1.401298E-45 hingga 3.402823E38. Huruf E menunjukkan 10 pangkat, misalnya pada -3.402823E38 berarti -3.402823 x 1038. Tipe data ini membutuhkan 4 byte memori, dan merupakan tipe floating point yang paling sederhana (dan paling tidak presisi).
• Tipe data double. Daya tampung tipe data double adalah -1.79769313486232E308 hingga -4.94065645841247E-324 untuk bilangan negatif, dan 4.9406564581247E-324 sampai 1.79769313486232E308 untuk bilangan positif. Kenyataan yang sebenarnya, operasi terhadap tipe data single tidak secepat tipe data double ini.



4 komentar:

  1. bang, komplemen dua, artinya apa?

    BalasHapus
    Balasan
    1. Komplemen Biner
      Komplemen biner ada dua, yaitu komplemen satu dan komplemen dua.
      Aturan dasar:

      -komplemen 1 : tiap digit biner dikurangkan pada satu
      -komplemen 2 : komplemen satu ditambah satu

      Hapus
  2. bang, komplemen 2 apaan yang atas gak dijawab neh?
    masih idup??

    BalasHapus