Senin, 19 Mei 2014

RESUME SET INTRUKSI



SET INTRUKSI
Tujuan mempelajari materi ini :
Yaitu untuk
Memeberikan pemahaman tentang Set Instruksi  yang meliputi karakteristik instruksi mesin, tipe-tipe operand dan tipe-tipe operasi.
PENGERTIAN SET INTRUKSI
ž  Operasi dari CPU ditentukan oleh intruksi – intruksi yang dilaksanakan atau dijalankan. Intruksi ini sering di sebut sebagai intruksi mesin ( mechine instructions ) atau intruksi komputer ( computer instructions )
ž  Set instruksi (instruction set): sekumpulan lengkap instruksi yang dapat dimengerti oleh sebuah CPU
ž  Disebut juga machine code (bahasa mesin), aslinya juga berbentuk biner à bahasa assembly Untuk konsumsi manusia (programmer), biasanya digunakan representasi yang lebih mudah dimengerti à bahasa yang dapat dimengerti manusia
   Karakteristik Instruksi Mesin
1.    Instruksi mesin (machine instruction) yang dieksekusi membentuk suatu operasi dan berbagai macam fungsi CPU.
2.    Kumpulan fungsi yang dapat dieksekusi CPU disebut set instruksi (instruction set) CPU.
3.    Mempelajari karakteristik instruksi mesin, meliputi :
     -       Elemen-elemen instruksi mesin
     -       Representasi instruksinya
     -       Jenis-jenis instruksi
     -       Penggunaan alamat
     -       Rancangan set instruksi

ELEMEN – ELEMEN INSTRUKSI MESIN
Agar dapat di eksekusi, setiap intruksi harus berisi informasi yang diperlukan oleh CPU. Informasi itu dituangkan dalam elemen – elemen intruksi :
-          Operation code / kode operasi : menspesifikasikan operasi yang akan dilakukan ( misalnya ADD ). Operasi dispesifikasikan oleh kode biner, yang dikenal sebagai kode operasi atau opcode.
-          Operand : adalah bagian daripada instruksi komputer yang menspesifikasikan data apa yang hendak dimanipulasi atau dilakukan operasi terhadapnya, dan pada waktu yang bersamaan mempresentasikan sebagai data itu sendiri. Jenis operand secara khusus yang digunakan sebagai elemen dari instruksi mesin adalah :
a.       Source oprand reference / referensi operand sumber : operasi dapat mencakup satu atau lebih sumber, operand merupakan input dari operasi
b.      Tresult operand reference / referensi operand hasil : operand yang dapat membuat hasil dari operasi.
Sumber dari hasil operasi operand dapat berada di salah satu dari ketiga daerah ini :
o   Memory utama atau memori virtual dengan referensi alamat berikutnya, maka alamat memori utama atau virtual harus diketahui.
o   Register CPU: intruksi harus diberi nomor register yang dimaksud.
o   Perangkat i / o : intruksi harus menspesifikasikan modul i/o yang diperlukan oleh operasi.
-          Next intruction reference / referensi operand selanjutnya : berfungsi untuk memberi tahu CPU posisi intruksi yang berikutnya yang harus di ambil setelah menyelesaikan eksekusi atau intruksi.

DESAIN SET INTRUKSI
Desain set intruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek, di antaranya :
a.       Kelengkapan set intruksi
b.      Ortogonalis ( sifat independensi intruksi )
c.       Kompatibiltas : source kode compability dan object code compability

Selain ketiga aspek tersebut juga melibatkan hal – hal sebagai berikut :
a.       Operation repertoire : berapa banyak dan operasi apa saja yang disediakan, dan berapa sulit operasinya
b.      Data types : tipe / jenis data yang dapat olah intruction format : panjangnya, banyaknya alamat, dan sebagainya.
c.       Register : banyaknya register yang dapat digunakan
d.      Addressing : mode pengalamatan untuk operand

JENIS-JENIS INSTRUKSI
a.      Data processing/pengolahan data : instruksi aritmetika dan logika
b.      Data storage/penyimpanan data: instruksi-instruksi memori
c.      Data movement/perpindahan data: instruksi I/O
d.      Control/control : instruksi pemeriksaan dan percabangan

                                        

ELEMEN-ELEMEN INSTRUKSI MESIN
a. Operation Code (opcode) : menentukan operasi yang akan dilaksanakan
b.  Source Operand Reference : merupakan input bagi operasi yang dilaksanakan
c.   Result Operand Reference : merupakan hasil dari operasi yang dilaksanakan
d. Next instruction Reference : memberitahu CPU untuk mengambil (fetch) instruksi berikutnya setelah instruksi yang dijalankan selesai.
e.   Source dan result operands dapat berupa salah satu diantara tiga jenis berikut ini:
- Main or Virtual Memory
-  CPU Register
             - I/O Device


Dalam set instruksi memiliki berbagai macam operasi-operasi yang terdiri dari:
Ø Operasi set instruksi untuk mentransfer data
  1. MOVE: memindahkan word atau blok dari sumber ke tujuan
  2. STORE: memindahkan word dari prosessor ke memori
  3. LOAD: memindahkan word dari memori ke prosessor
  4. EXCHANGE: menukar isi sumber ke tujuan
  5. CLEAR/RESET: memindahkan word ke 0 tujuan
  6. SET: memindahkan word 1 ke tujuan
  7. PUSH: memindahkan word dari sumber ke bagian paling atas stack
  8. POP: memindahkan word dari bagian paling atas sumber
Ø Operasi set instruksi untuk Aritmethic
  1. ADD: penjumlahan
  2. SUBTRACT: pengurangan
  3. MULTIPLY: perkalian
  4. DIVIDE: pembagian
  5. ABSOLUTE
  6. NEGATIVE
  7. DECREMENT
  8. INCREMENT
Ø Operasi set instruksi untuk operasi logical
  1. AND, OR, NOT, EXOR
  2. COMPARE: melakukan perbandingan logika
  3. 3TEST: menguji kondisi tertentu
  4. SHIFT: operand menggeser ke kiri atau kanan menyebabkan konstanta pada ujung bit
  5. ROTATE: operand menggeser ke kiri atau kanan dengan ujung yang terjalin
Ø Operasi set instruksi untuk konversi
  1. TRANSLATE: menterjemahkan nilai-nilai dalam suatu bagian memori berdasarkan tabel korespondensi
  2. CONVERT: mengkonversi suatu word dari suatu bentuk ke bentuk lainnya

Ø Operasi set instruksi input/output
  1. INPUT: memindahkan data dari perangkat I/O  tertentu ke tujuan
  2. OUTPUT: memindahkan data dari sumber tertentu ke perangkat I/O
  3. START I/O: memindahkan instruksi ke prosessor I/O untuk mengawali operasi I/O
  4. TEST I/O: memindahkan informasi dari sistem I/O ke tujuan
Ø Operasi set instruksi untuk transfer control
  1. JUMP(cabang): pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu
  2. JUMP BERSYARAT: menguji persyaratan tertentu dan memuat PC dengan alamat tertentu atau tidak melakukan apa tergantung dari persyaratan
  3. JUMP SUBRUTIN: melompat ke alamat tertentu
  4. RETURN: mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu
  5. EXECUTE: mengambil operand dari lokasi tertentu dan mengeksekusi sebagai instruksi
  6. SKIP: menambah PC sehingga melompati instruksi berikutnya
  7. SKIP BERSYARAT: melompat atau tidak melakukan apa-apa berdasarkan pada persyaratan
  8. HALT: menghentikan eksekusi program
  9. WAIT(HOLD): melanjutkan eksekusi pada saat persyaratan dipenuhi
  10. NO OPERATION: tidak ada operasi yang dilakukan
Ø Control System :
Hanya dapat di eksekusi prosesor berbeda dalam keadaan dan khusus tertentu atau sedang mengeksekusi suatu program yang berada dalam area khusus, biasanya digunakan dalam sistem operasi. Contoh membaca atau mengubah register kontrol.


Format instruksi
Suatu instruksi terdiri dari beberapa field yang sesuai dengan elemen dalam instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai Format Instruksi (Instruction Format).
·         OPCODE
·         OPERAND REFERENCE
·         OPERAND REFERENCE
1.      Jenis-jenis operand
·         Addresses (akan dibahas pada addressing modes)
·         Numbers : - Integer or fixed point
·         Floating point
·         Decimal (BCD)
·         Characters : - ASCII
- EBCDIC
·         Logical Data : Bila data berbentuk binary yaitu 0 dan 1
2.      Jenis instruksi
·         Data processing: Arithmetic dan Logic Instruction.
·         Data storage: Memory instructions
·         Data Movement: I/O instructions
·         Control: Test and branch instructions

3.      Transfer data
·         Menetapkan lokasi operand sumber dan operand tujuan.
·         Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada stack.
·         Menetapkan panjang data yang dipindahkan.
·         Menetapkan mode pengalamatan.
·         Tindakan CPU untuk melakukan transfer data adalah :
·         Memindahkan data dari satu lokasi ke lokasi lain.
·         Apabila memori dilibatkan :
·         Menetapkan alamat memori.
·         Menjalankan transformasi alamat memori virtual ke alamat memori aktual.
·         Mengawali pembacaan / penulisan memori
4.      Operasi set instruksi untuk transfer data
·         MOVE : memindahkan word atau blok dari sumber ke tujuan
·         STORE : memindahkan word dari prosesor ke memori.
·         LOAD : memindahkan word dari memori ke prosesor.
·         EXCHANGE : menukar isi sumber ke tujuan.
·         CLEAR / RESET : memindahkan word 0 ke tujuan.
·         SET : memindahkan word 1 ke tujuan.
·         PUSH : memindahkan word dari sumber ke bagian paling atas stack.
·         POP : memindahkan word dari bagian paling atas sumber

5.      Arithmetic
Tindakan CPU untuk melakukan operasi arithmetic :
·         Transfer data sebelum atau sesudah.
·         Melakukan fungsi dalam ALU.
·         Menset kode-kode kondisi dan flag.
Operasi set instruksi untuk arithmetic :
·         ADD : penjumlahan.
·         SUBTRACT : pengurangan.
·         MULTIPLY : perkalian.
·         DIVIDE : pembagian.
·         ABSOLUTE.
·         NEGATIVE.
·         DECREMENT.
·         INCREMENT.
Nomor 5 sampai 8 merupakan instruksi operand tunggal.
6.      Logical
Tindakan CPU sama dengan arithmetic
·         Operasi set instruksi untuk operasi logical :
1.      AND, OR, NOT, EXOR.
2.      COMPARE : melakukan perbandingan logika.
3.      TEST : menguji kondisi tertentu.
4.      SHIFT : operand menggeser ke kiri atau kanan menyebabkan konstanta pada ujung bit.
5.      ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.
7.      CONVERSI
Tindakan CPU sama dengan arithmetic dan logical. Instruksi yang mengubah format instruksi yang beroperasi terhadap format data. Misalnya pengubahan bilangan desimal menjadi bilangan biner.
·         Operasi set instruksi untuk conversi :
1.      TRANSLATE : menterjemahkan nilai-nilai dalam suatu bagian memori berdasrkan tabel korespodensi.
2.      CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
I. Jumlah Alamat
Jumlah register atau alamat yang digunakan dalam operasi CPU tergantung format masing-masing CPU. Ada format operasi yang menggunakan 3, 2, 1 dan 0 register. Tetapi pada umumnya yang digunakan adalah 2 register dalam satu operasi. Desain CPU saat ini telah menggunakan 3 alamat dalam satu operasi, terutama dalam MIPS. (million instruction per second).
Alamat instruksi yang lebih sedikit akan membuat instruksi lebih sederhana dan pendek, tetapi lebih sulit diimplementasikan fungsi-fungsi yang kita inginkan. Karena instruksi CPU sederhana maka rancangan CPU juga lebih sederhana. Jumlah bit dan referensi per instruksi lebih sedikit sehingga fetch dan eksekusi lebih cepat. Tetapi jumlah instruksi per program biasanya jauh lebih banyak. Pada jumlah alamat per instruksi banyak, jumlah bit dan referensi instruksi lebih banyak sehingga waktu eksekusi lebih lama. Sehingga diperlukan register CPU yang banyak, namun operasi antar register lebih cepat serta lebih mudah mengimplementasikan fungsi-fungsi yang kita inginkan. Sehingga jumlah instruksi per program jauh lebih sedikit
Untuk lebih jelas perhatikan contoh-contoh instruksi dengan jumlah register berbeda untuk menyelesaikan persoalan yang sama.

Contoh penggunaan instruksi dengan alamat 1, 2 dan 3 untuk menyelesaikan operasi hitungan:
Y = (A - B) : (C + D * E)

Contoh instruksi 2 dan 3 alamat
·         Instruksi 3 alamat
Spesifikasi :
* Simbolik: a = b + c
* Format alamat: hasil, operand1, operand2
* Digunakan dalam arsitektur MIPS
Instruksi Komentar
SUB Y, A, B Y =A — EI
MF'Y T, D, E T= D >< E
ADD T, T, C T=T + C
DIV Y, Y, T Y= Y + T
·         Instruksi 2 alamat
Spesifikasi :
* Simbolik: a = a + b
* Satu alamat diisi operand terlebih dahulu kemudian digunakan untuk menyimpan hasilnya.
* Tidak memerlukan instruksi yang panjang.
* Jumlah instruksi per program akan lebih banyak dari 3 alamat.
* Diperlukan penyimpanan sementara untuk menyimpan hasil.
Instruksi KOmmentar
MOVE Y, A Y = A
SUB Y, B Y = Y - B
MOVE T, D T = D
MPY T, E T = T E
ADD T, C T = T + C
DIV Y, T Y = Y + T.
·         instruksi 1 alamat
Spesifikasi :
* Memerlukan alamat implisit untuk operasi
* Menggunakan register accumulator (AC) dan digunakan pada mesin lama.
Instruksi Komentar
LOAD D AC =D
MPY E AC = AC E
ADD C AC= AC + C
STOP Y Y = AC
LOAD A AC = A
SUB B AC = AC - B
DN Y AC =AC + Y
STOP Y Y= AC
·         Instruksi 0 ( Keterangan isi stack)
Spesifikasi :
* Seluruh alamat yang digunakan adalah implisit
* Digunakan pada organisasi memori, terutama operasi stack
Instruksi komentar
PUSH B B
PUSH A B.A
SUB A-B (A-B)
PUSH E (A·B).E
PUSH D (A-B).E.D
MUL D*E (A-B).(D*E)
PUSH C [A-B).(D*E).C
ADD C+(D*E) (A-B).(C+D*E)
DIV {A-B)/(C+(D*E)} (A-B)/(C+(D"E}}










Tidak ada komentar:

Posting Komentar