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.
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
- MOVE: memindahkan word atau blok dari sumber ke tujuan
- STORE: memindahkan word dari prosessor ke memori
- LOAD: memindahkan word dari memori ke prosessor
- EXCHANGE: menukar isi sumber ke tujuan
- CLEAR/RESET: memindahkan word ke 0 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
Ø Operasi set instruksi untuk Aritmethic
- ADD: penjumlahan
- SUBTRACT: pengurangan
- MULTIPLY: perkalian
- DIVIDE: pembagian
- ABSOLUTE
- NEGATIVE
- DECREMENT
- INCREMENT
Ø Operasi set instruksi untuk operasi logical
- AND, OR, NOT, EXOR
- COMPARE: melakukan perbandingan logika
- 3TEST: menguji kondisi tertentu
- SHIFT: operand menggeser ke kiri atau kanan menyebabkan konstanta pada ujung bit
- ROTATE: operand menggeser ke kiri atau kanan dengan ujung yang terjalin
Ø Operasi set instruksi untuk konversi
- TRANSLATE: menterjemahkan nilai-nilai dalam suatu bagian memori berdasarkan tabel korespondensi
- CONVERT: mengkonversi suatu word dari suatu bentuk ke bentuk lainnya
Ø Operasi set instruksi input/output
- INPUT: memindahkan data dari perangkat I/O tertentu ke tujuan
- OUTPUT: memindahkan data dari sumber tertentu ke perangkat I/O
- START I/O: memindahkan instruksi ke prosessor I/O untuk mengawali operasi I/O
- TEST I/O: memindahkan informasi dari sistem I/O ke tujuan
Ø Operasi set instruksi untuk transfer control
- JUMP(cabang): pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu
- JUMP BERSYARAT: menguji persyaratan tertentu dan memuat PC dengan alamat tertentu atau tidak melakukan apa tergantung dari persyaratan
- JUMP SUBRUTIN: melompat ke alamat tertentu
- RETURN: mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu
- EXECUTE: mengambil operand dari lokasi tertentu dan mengeksekusi sebagai instruksi
- SKIP: menambah PC sehingga melompati instruksi berikutnya
- SKIP BERSYARAT: melompat atau tidak melakukan apa-apa berdasarkan pada persyaratan
- HALT: menghentikan eksekusi program
- WAIT(HOLD): melanjutkan eksekusi pada saat persyaratan dipenuhi
- 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
- 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.
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.
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)
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
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.
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.
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
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
* 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}}
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