Rabu, 05 November 2014


Peng. Organisasi dan Arsitektur Komputer.


  • Arithmetic Logic Unit (ALU)
     A. PENGERTIAN
        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.
B. OPERASI PADA ALU
        Operasi aritmatika adalah operasi penjumlahan dan pengurangan, sedangkan contoh operasi logika adalah logika AND dan OR. ALU melakukan operasi aritmatika yang lainnya seperti pengurangan, dan pembagian dilakukan dengan dasar penjumlahan. ALU melakukan operasi aritmatika dengan dasar pertambahan, sedang operasi aritmatika yang lainnya, seperti pengurangan, perkalian, dan pembagian dilakukan dengan dasar penjumlahan. Sehingga sirkuit elektronik di ALU yang digunakan untuk melaksanakan operasi aritmatika ini disebut adder.
C. TUGAS DAN FUNGSI ALU
        Tugas 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 dari (<=)
e. lebih besar dari (>)
f. lebih besar atau sama dengan dari (>=)
        Arithmatic Logical Unit (ALU) Juga 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. Arithmetic 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 jenis prosesor,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.
D. STRUKTUR DAN CARA KERJA PADA ALU
        ALU akan bekerja setelah mendapat perintah dari Control Unit yang terletak pada processor. Control Unit akan memberi perintah sesuai dengan komando yang tertulis(terdapat) pada register. Jika isi register memberi perintah untuk melakukan proses penjumlahan, maka PC akan menyuruh ALU untuk melakukan proses penjumlahan. Selain perintah, register pun berisikan operand-operand. Setelah proses ALU selesai, hasil yang terbentuk adalah sebuah register yang berisi hasil atau suatu perintah lainnya. Selain register, ALU pun mengeluarkan suatu flag yang berfungsi untuk memberi tahu kepada kita tentang kondisi suatu processor seperti apakah processor mengalami overflow atau tidak.
        ALU (Arithmethic and Logic Unit) adalah bagian dari CPU yang bertanggung jawab dalam proses komputasi dan proses logika. Semua komponen pada CPU bekerja untuk memberikan asupan kepada ALU sehingga bisa dikatakan bahwa ALU adalah inti dari sebuah CPU. Perhitungan pada ALU adalah bentuk bilangan integer yang direpresentasikan dengan bilangan biner. Namun, untuk saat ini, ALU dapat mengerjakan bilangan floating point atau bilangan berkoma, tentu saja dipresentasikan dengan bentuk bilangan biner. ALU mendapatkan data (operand, operator, dan instruksi) yang akan disimpan dalam register. Kemudian data tersebut diolah dengan aturan dan sistem tertentu berdasarkan perintah control unit. Setelah proses ALU dikerjakan, output akan disimpan dalam register yang dapat berupa sebuah data atau sebuah instruksi. Selain itu, bentuk output yang dihasilkan oleh ALU berupa flag signal. Flag signal ini adalah penanda status dari sebuah CPU. 
        Bilangan integer (bulat) tidak dikenal oleh komputer dengan basis 10. Agar komputer mengenal bilangan integer, maka para ahli komputer mengkonversi basis 10 menjadi basis 2. Seperti kita ketahui, bahwa bilangan berbasis 2 hanya terdiri atas 1 dan 0. Angka 1 dan 0 melambangkan bahwa 1 menyatakan adanya arus listrik dan 0 tidak ada arus listrik. Namun, untuk bilangan negatif, computer tidak mengenal simbol (-). Komputer hanya mengenal simbol 1 dan 0. Untuk mengenali bilangan negatif, maka digunakan suatu metode yang disebut dengan Sign Magnitude Representation. Metode ini menggunakan simbol 1 pada bagian paling kiri (most significant) bit. Jika terdapat angka 18 = (00010010)b, maka -18 adalah (10010010)b. Akan tetapi, penggunaan sign-magnitude memiliki 2 kelemahan. Yang pertama adalah terdaptnya -0 pada sign magnitude[0=(00000000)b; -0=(10000000)b]. Seperti kita ketahui, angka 0 tidak memiliki nilai negatif sehingga secara logika, sign-magnitude tidak dapat melakukan perhitungan aritmatika secara matematis. Yang kedua adalah, tidak adanya alat atau software satupun yang dapat mendeteksi suatu bit bernilai satu atau nol karena sangat sulit untuk membuat alat seperti itu. Oleh karena itu, penggunaan sign magnitude pada bilangan negatif tidak digunakan, akan tetapi diganti dengan metode 2′s complement. Metode 2′s complement adalah metode yang digunakan untuk merepresentasikan bilangan negatif pada komputer. Cara yang digunakan adalah dengan nilai terbesar dari biner dikurangin dengan nilai yang ingin dicari negatifnya. Contohnya ketika ingin mencari nilai -18, maka lakukan cara berikut:
1. ubah angka 18 menjadi biner (00010010)b
2. karena biner tersebut terdiri dari 8 bit, maka nilai maksimumnya adalah 11111111
3. kurangkan nilai maksimum dengan biner 18 -> 11111111 – 00010010 = 11101101
4. kemudian, dengan sentuhan terakhir, kita tambahkan satu -> 11101101 + 00000001 = 11101110
Dengan metode 2′s complement, kedua masalah pada sign magnitude dapat diselesaikan dan komputer dapat menjalankan. Namun, pada 2′s complement, nilai -128 pada biner 8 bit tidak ditemukan karena akan terjadi irelevansi.
E. ADDER
        Adder merupakan rangkain ALU (Arithmetic and Logic Unit) yang digunakan untuk menjumlahkan bilangan. Karena adder digunakan untuk memproses operasi aritmatika, maka adder juga sering disebut rangkaian kombinasional aritmatika. Ada 3 jenis Adder, yaitu:
1. Rangkaian adder yang hanya menjumlahkan dua bit disebut Half Adder.
2. Rangkaian adder yang hanya menjumlahkan tiga bit disebut Full Adder.
3. Rangkaian adder yang menjumlahkan banyak bit disebut Paralel Adder.
1. Half Adder
Rangkain half adder merupakan dasar 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=0 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 dua masukan (A dan B), dan dua keluaran (S dan Cy). 

2. Full Adder

Full adder adalah mengolah data penjumlahan 3 bit bilangan atau lebih (bit tidak terbatas), oleh karena itu dinamakan rangkaian penjumlah lengkap. Perhatikan tabel dibawah ini.



 3. Paralel Adder

        Paralel Adder adalah rangkaian Full Adder yang disusun secara paralel dan berfungsi untuk menjumlahkan bilangan biner berapa pun bitnya, tergantung jumlah Full Adder yang diparalelkan. Gambar dibawah ini menunjukan Paralel Adder yang terdiri dari 4 buah Full Adder yang disusun paralel sehingga membentuk sebuah penjumlahan 4 bit.




  • Integer Representation

        Semua bilangan dapat direpresentasikan dengan hanya menggunakan bilangan 0 dan 1 untuk keperluan penyimpanan dan pengolahan komputer, tidak perlu menggunakan tanda minus dan titik, hanya bilangan biner yang dapat merepresentasikan bilangan.

A. Representasi Nilai Tanda

- Penggunaan unsigned integer tidak cukup untuk merepresentasikan bilangan integer negatif dan jugabilangan positif integer,karenaitu terdapat beberapa konvensi lainnya meliputi perlakuanterhadap bit yang paling berarti (paling kiri)didalam word sebagai bit tanda.
- Apabila bit paling kiri sama dengan nol maka suatu bilangan adalah positif. Sedangkan bit paling kiri sama dengan 1, maka bilangan bernilai negatif.

Misalnya:
+18=00010010
-18=10010010(sign magnitude/nilai-tanda)

Kekurangan Representasi Nilai Tanda.
      Penambahan dan pengurangan memerlukan pertimbangan baik tanda bilangan maupun nilai relatifnya agar dapat berjalan pada operasi yang diperlukan.

      Terdapat dua representasi bilangan 0:
+010=00000000
-010=10000000 (sign magnitude).

      Hal ini tidak sesuai untuk digunakan,karena akan menyulitkan pemeriksaan bilangan 0

B. Representasi dari bilangan bulat.

Kita perlu menggunakan representasi biner untuk setiap bagian dari data. Komputer beroperasi pada nilai-nilai biner (sebagai akibat dari yang dibangun dari transistor).
Ada 3 jenis data yang kita ingin mewakili:
- Bilangan bulat.
- Karakter.
- Floating point nilai.


  • Integer Arithmetic

1. Pengertian Bilangan Bulat.

Bilangan bulat 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, …}

2. Membandingkan Bilangan Bulat.

Dengan memperhatikan tempat pada garis bilangan, dapat kita nyatakan (dalam contoh) bahwa :
a. 7 > 4, karena 7 terletak di sebelah kanan 4,
b. (-5) < 2, karena (-5) terletak di sebelah kiri 2, dan lain sebagainya.

3. Penjumlahan dan Sifatnya.

Salah satu Rumus penting :



Contoh : 7 + (-10) = 7 – 10 = -3

Sifat-sifatnya :
a. Komutatif :



b. Asosiatif :



c. Tertutup :




d. Memiliki identitas :




e. Invers penjumlahan :



4. Pengurangan.

Pengurangan merupakan lawan (invers) dari penjumlahan.
Rumus :



Contoh : 8 – (-2) = 8 + 2 = 10


5. Perkalian dan Sifatnya.
contoh :
3 x (-2) = (-2) + (-2) + (-2)











Sifat-sifat :




















6. Pembagian.
Pembagian adalah kebalikan (invers) dari perkalian.
Rumus :








7. Perpangkatan dan Sifat.


















8. Akar Pangkat Dua dan Akar Pangkat Tiga.



















  • Floating Point Representation

        Floating-point atau bilangan titik mengambang, adalah sebuah format bilangan yang dapat digunakan untuk merepresentasikan sebuah nilai yang sangat besar atau sangat kecil. Bilangan ini direpresentasikan menjadi dua bagian, yakni bagian mantisa dan bagian eksponen (E).
        Bagian mantisa menentukan digit dalam angka tersebut, sementara eksponen menentukan nilai berapa besar pangkat pada bagian mantisa tersebut (pada posisi titik desimal). Sebagai contoh, bilangan 314600000 dan bilangan 0.0000451 dapat direpresentasikan dalam bentuk bilangan floating point: 3146E5 dan 451E-7 (artinya 3146 * 10 pangkat 5, dan 451 * 10 pangkat -7).
        Kebanyakan CPU dan mikroprosesor sederhana tidak mendukung secara langsung operasi terhadap bilangan floating-point ini, karena aslinya mikroprosesor ini hanya memiliki unit aritmetika dan logika, serta unit kontrol yang beroperasi berdasarkan pada bilangan bulat (integer) saja.
        Perhitungan atau kalkulasi terhadap nilai floating point pada jenis mikroprosesor sederhana dapat dilakukan dengan menggunakan perangkat lunak, sehingga operasinya sangat lambat. Untuk itulah, sebuah prosesor tambahan dibutuhkan untuk melakukan operasi terhadap jenis bilangan ini, yang disebut dengan unit titik mengambang.
        

Dalam bahasa pemrograman, khususnya keluarga bahasa pemrograman C, bilangan titik mengambang direpresentasikan dengan tipe data float.

1. Representasi Floating Point.
        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)

Floating Point
Bash hanya mendukung operasi aritmatika pada integer, namun utilitas bc, awk dapat digunakan bila anda menginginkan perhitungan yang lebih kompleks.
Contoh :
#!/bin/bash
num=`echo "scale=3; 13 / 2" | bc`
echo $num
Keterangan :
Output perintah echo di-pipe ke program bc. Skala diset ke 3, yang merupakan digit signifikan di belakang koma. Operasi yang dilakukan adalah pembagian 13 dengan 2. Seluruh pipeline diapit oleh tanda backquote (`). Substitusi perintah akan dilakukan dan hasilkan diberikan ke variabel num, yang kemudian dicetak ke layar.
Hasil skrip di atas adalah :
6.500
Kondisional
Hingga saat ini, kita telah membuat beberapa buah skrip yang menjalankan aksinya secara berurutan. Seringkali dalam melakukan pemrograman skrip dibutuhkan proses yang dapat mengambil keputusan untuk menjalankan suatu aksi atau tidak, keputusan ini diambil setelah mengevaluasi sebuah ekspresi.


  • Floating Point Arithmetic
Sistem penempatan titik desimal dengan cara membagi word 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.
Bentuk standar:


Contoh:0.125*10
Bentuk standar untuk bilangan floating point biner:
Jangkauan untuk mantisa f adalah 0.5 < f <1 dean -1 < f < -0.5 
Normalisasi:
a.geser mantissa n bit ke kiri atau ke kanan menurut keperluan 
b.jika kekiri ,kurangkan n dari eksponennya
c.jika digeser kekanan,tambahkan n dari eksponennya

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


  • Kesimpulan
        ALU itu Arithmetic Logic Unit itu merupakan bagian dari CPU atau mikroprosesor, yang fungsinya untuk menghitung operasi hitungan Aritmatika dan Logika. Dalam ALU ada pengertian Adder, adder itu adalah rangkaian dari ALU yang digunakan untuk menjumlahkan bilangan, oleh karena itu adder gunanya untuk memproses operasi aritmatika, maka adder juga sering disebut rangkaian kombinasional aritmatika ada macam-macam adder yaitu Half Adder, Full Adder dan Paralel Adder.
        Sedangkan Integer Representasion itu adalah semua bilangan dapat direpresentasikan dengan hanya menggunakan bilangan 0 dan 1 untuk keperluan penyimpanan dan pengolahan komputer, tidak perlu menggunakan tanda minus dan titik, hanya bilangan biner yang dapat merepresentasikan bilangan.


Referensi :
http://rudyumpar.wordpress.com
http://id.scribd.com
http://teknikrandi.wordpress.com
wikipedia.com 
http://puzhpha.blogspot.com/ 
http://komputer.yn.lt/





Tidak ada komentar:

Posting Komentar