Kamis, 20 November 2014

Set Instruksi



Intruksi Mesin
A.    Pengertian Karakteristik Instruksi Mesin
Karakteristik Instruksi Mesin adalah ciri-ciri khusus atau sifat khas yang dimiliki oleh  instruksi-instruksi atau kode operasi dalam pemrograman komputer. Operasi CPU ditentukan oleh instruksi-instruksi yang dieksekusinya. Instruksi-instruksi ini dikenal sebagai intruksi mesin atau instruksi computer.

B.     Elemen-elemen Intruksi Mesin
Setiap instruksi harus terdiri dari informasi yang diperlukan oleh CPU untuk dieksekusi. Langkah-langkah yang terdapat dalam eksekusi instruksi dan bentuk elemen-elemen instruksi mesin, adalah sebagai berikut :
      Kode Operasi : menentukan operasi-operasi yang akan dilakukan . Operasi itu dispesifilan oleh sebuah kode biner, dikenal sebagai kode operasi.
      Acuan Operand Sumber : Operasi dapat melibatkan satu atau lebih operand sumber, dengan kata lain, operand adalah input bagi operasi.
      Acuan Operand Hasil: Operasi dapat menghasilkan sebuah hasil.
      Acuan Instruksi Berikutnya: Elemen ini memberitahukan CPU posisi instruksi berikutnya yang harus diambil setelah menyelesaikan eksekusi suatu instruksi.

C.    Representasi Intruksi
Di dalam computer, instruksi dipresentasikan oleh sehimpunan bit. Himpunan bit ini dibagi menjadi beberapa bidang, dengan bidang-bidang ini berkaitan dengan elemen-elemen yang akan memuat instruksi. Instruksi dibagi menjadi beberapa field. Field-field ini diisi oleh elemen-elemen instruksi yang membawa informasi bagi operasi CPU.

D.    Jenis-Jenis Intruksi
Sebuah instuksi yang dapat diekspresikan dalam bahasa BASIC atau FORTRAN. Adapun Jenis-jenis instrusi sebagai berikut:
- Pengolahan Data : Instrusi-instruksi aritmatika dan logika
- Penyimpanan Data : Instriksi-instruksi memori
- Perpindahan Data : Instruksi I/O
- Kontrol : Instruksi pemeriksaan dan percabangan

E.     Rancangan Set Intruksi
Rancangan ini mempengaruhi banyak aspek sistem komputer. Set instruksi menentukan banyak fungsi yang akan dilakukan oleh CPU dan karena itu memiliki efek yang sangat menentukan implementasi CPU. Set instruksi merupakan alat bagi pemrogram untuk mengontrol CPU. Masalah rancangan fundamental yang paling signifikan meliputi:
- Repertoi Operasi: Berapa banyak dan opersai-operasi apa yang harus disediakan
- Jenis data : berbagai jenis data pada saat operasi dijalankan
- Bentuk instruksi : Panjang instruksi (dalam bit), jumlah alamat, ukuran bidang, dan sebagainya.
- Register : Jumlah register CPU yang dapat diacu oleh instruksi, dan fungsinya.
- Pengalamatan: Mode untuk menspesifikasikan alamat suatu operand.

F.     Karakteristik Intruksi Mesin
Karakteristik instruksi mesin, meliputi:
-          Elemen-elemen instruksi
-          Representasi instruksi
-          Jenis-jenis instruksi
-          Penggunaan alamat
-          Rancangan set instruksi

G.    JENIS-JENIS OPERAND
1. Numbers :  
- Integer or fixed point
- Floating point
- Decimal (BCD)
2. Characters :
- ASCII
- EBCDIC
3. Logical Data : Bila data berbentuk binary: 0 dan 1

H.    Tipe Operasi
Dalam perancangan arsitektur komputer,  jumlah kode operasi akan sangat berbeda untuk masing-masing komputer, tetapi terdapat kemiripan dalam jenis operasinya.

Jenis Operasi Komputer :
a.       Transfer data - Konversi
b.      Aritmatika -  Input/Output
c.       Logika – Kontrol sistem dan transfer kontrol

I.       Pengenalan Mode Pengelamatan
Mode pengalamatan adalah bagaimana cara menunjuk dan  mengalamati suatu lokasi memori pada  sebuah alamat di mana operand akan diambil. Mode pengalamatan diterapkan pada set instruksi, dimana pada umumnya instruksi terdiri dari opcode (kode operasi) dan alamat. Mode pengalamatan ini meliputi direct addressing, indirect addressing, dan immediate addressing.

J.      Format Instruksi
Kode operasi (opcode) direpresentasikan dengan singkatan-singkatan, yang disebut mnemonic. Mnemonic mengindikasikan suatu operasi bagi CPU.
Contoh mnemonic adalah :
a.       ADD : Penambahan
b.      SUB : Pengurangan
c.       LOAD : muatkan data ke memori












Minggu, 02 November 2014

Computer Arithmetic

ALU
Arithmetic-logic unit atau disingkat ALU, bagian dalam mikroprosesor berfungsi mengoperasikan berbagai operasi aritmatika dan operasi logika. ALU merupakan bagian penting dari sebuah prosesor, bisa dibilang yang berada di CPU ada untuk meng-support ALU.
                                                                                          ALU                                       

A. Fungsi ALU
Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika atau matematika yang terjadi sesuai dengan instruksi program. Tugas lalin dari ALU adalah melakukan keputusan dari operasi logika sesuai dengan instruksi program.
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 ALU inilah yang berfikir untuk menjalankan perintah yang diberikan kepada CPU tersebut.
B. 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.


A. 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).

Dari tabel diatas, terlihat bahwa nilai logika dari Sum sama dengan nilai logika dari gerbang XOR, sedangkan nilai logika Cy sama dengan gerbang logika AND. Dari tabel diatas, dapat dibuat rangkaian half adder.
B. 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.

C. 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.
- 4-bit Adder
                - Basic 4-bit adder selalu mengkalkulasikan S = A + B + CIN

- Tapi dengan mengubah apa yang masuk ke dalam input A, B, dan Cin, kita bisa mengubah output adder pada S.
- 8-bit Adder

- 32-bit Adder
            - 32-bit adder dibagi dalam 4 bagian.

Integer Representation
Untuk menuliskan bilangan floating point (bilangan pecahan) dilakukan dengan menuliskan dalam bentuk exponensial. Sehingga bilangan tersebut memiliki bilangan dasar, bilangan pangkat, dan basis bilangan terebut. Contoh pada bil. Desimal:
-          675.000.000.000.000 ditulis 6,75 x 1014
-          0,00000000000675 ditulis 6,75 x 10-12
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 l, Contoh bilangan biner matematis:
-          - 1101.0101 = -13.3125

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 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

b= radiks
m = mantissa
e = eksponen

Floating Point Aritmethic
       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
a. Penjumlahan dan Pengurangan
       Langkah-langkah yang dilakukan untuk menambah/mengurangkan dua bilangan floating-point :
1.      Bandingkan dua bilangan, dan ubah ke bentuk yang sesuai pada bilangan dengan nilai exponensial lebih kecil.
2.      Lakukan operasi penjumlahan/pengurangan
3.      Lakukan normalisasi dengan menggeser nilai mantissa dan mengatur nilai exponensialnya.


                                      Skema penjumlahan/pengurangan Floating point
b. Perkalian
      Algoritma umum untuk perkalian dari bilangan floating-point terdiri dari tiga langkah:
1.      Hitung hasil exponensial dengan menjumlahkan nilai eksponen dari kedua bilangan
2.      Kalikan kedua bilangan mantissa
3.      Normalisasi hasil akhir

Skema Perkalian Floating-Point
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

Skema Pembagian Floating-Point

Kesimpulan : Dalam Computer Arithmetic, ALU merupakan bagian dalam mikroprosesor berfungsi mengoperasikan berbagai operasi aritmatika dan operasi logika. Walaupun ALU hanya bisa menangani bilangan bulat (integer), tetapi ALU juga bisa mengkalkulasikan bilangan pecahan (real), dan FPU (Floating Point Unit) terpisah. Meskipun secara matematis, dalam sistem bilangan biner bisa digunakan tanda minus dan radix point, tetapi komputer hanya ada bilangan 0 dan 1 untuk melambangkan semua angka. 

Sumber :
www.cs.uiuc.edu/class/sp08/cs231/lectures/11-ALU.pdf
ecee.colorado.edu/~ecen4002/manuals/dsp56300family/ch3-alu.pdf
https://ece.umaine.edu/ece/files/2012/05/ALU.pdf
http://komputer.yn.lt/adalah/?arti=Floating%20Point%20Arithmetic
http://kauni07.files.wordpress.com/2009/03/modul_5_-_floating_point.pdf