Set Instruksi (bahasa
Inggris: Instruction Set, atau Instruction Set Architecture (ISA))
didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat
oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung,
jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur
memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).
ISA merupakan sebuah
spesifikasi dari Pullman semua kode-kode biner (opcode) yang diimplementasikan
dalam bentuk aslinya (native form) dalam sebuah desain prosesor tertentu.
Kumpulan opcode tersebut, umumnya disebut sebagai bahasa mesin (machine
language) untuk ISA yang bersangkutan. ISA yang populer digunakan adalah set
instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun SPARC,
DEC Alpha, dan lain-lain.
Sebuah ISA juga dapat
diemulasikan dalam bentuk perangkat lunak oleh sebuah interpreter. Karena
terjadi translasi tambahan yang dibutuhkan untuk melakukan emulasi, hal ini
memang menjadikannya lebih lambat jika dibandingkan dengan menjalankan program
secara langsung di atas perangkat keras yang mengimplementasikan ISA tersebut.
Akhir-akhir ini, banyak vendor ISA atau mikroarsitektur yang baru membuat
perangkat lunak emulator yang dapat digunakan oleh para pengembang perangkat
lunak sebelum implementasi dalam bentuk perangkat keras dirilis oleh vendor.
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
-Transfer data – konversi
-Aritmatika – input/output
-Logika – kontrol sistem
dan transfer kontrol
Transfer Data
1. Instruksi transfer data
harus menetapkan:
-Lokasi operand sumber
-Lokasi operand tujuan
-Panjang data yang akan
dipindahkan
-Mode pengalamatannya
2. Apabila sebuah atau
kedua operand berada di dalam memori, maka CPU harus melakukan sebagian atau
seluruh tindakan berikut:
-Menghitung alamat memori,
yang didasarkan pada mode alamat.
-Apabila alamat mengacu
pada virtual memori harus dicari alamat memori sebenarnya.
-Menentukan apakah alamat
berada dalam cache memori.
-Bila di cache tidak ada,
dikeluarkan perintah ke modul memori.
Format instruksi (biner):
Missal instruksi dengan 2
alamat operand : ADD A,B A dan B adalah suatu alamat register.
Beberapa simbolik
instruksi:
ADD : Add (jumlahkan)
SUB : Subtract (Kurangkan)
MPY/MUL : Multiply (Kalikan)
DIV : Divide (Bagi)
LOAD : Load data dari register/memory
STOR : Simpan data ke register/memory
MOVE : pindahkan data dari satu tempat
ke tempat lain
SHR : shift kanan data
SHL : shift kiri data .dan
lain-lain
Cakupan jenis instruksi:
Data processing : Aritmetik (ADD, SUB, dsb);
Logic (AND, OR, NOT, SHR, dsb); konversidata
Data storage (memory) : Transfer data (STOR, LOAD, MOVE, dsb)
Data movement : Input dan Output ke modul I/O
Program flow control :
JUMP, HALT, dsb.
DESAIN SET INSTRUKSI
Desain set instruksi
merupakan masalah yang sangat komplek yang melibatkan banyak aspek, diantaranya
adalah:
Kelengkapan set instruksi
Ortogonalitas (sifat
independensi instruksi)
Kompatibilitas : – Source
code compatibility – Object code Compatibility
Selain ketiga aspek
tersebut juga melibatkan hal-hal sebagai berikut:
Operation Repertoire:
Berapa banyak dan operasi apa saja yang disediakan, dan berapa sulit operasinya
Data Types: tipe/jenis
data yang dapat olah Instruction Format: panjangnya, banyaknya alamat, dsb.
Register: Banyaknya
register yang dapat digunakan 4.Addressing: Mode pengalamatan untuk
operand
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 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: 0 dan 1
JENIS INSTRUKSI
* Data processing:
Arithmetic dan Logic Instructions
* Data storage: Memory
instructions
* Data Movement: I/O
instructions
* Control: Test and branch
instructions
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 :
a. Memindahkan data dari
satu lokasi ke lokasi lain.
b. Apabila memori
dilibatkan :
1. Menetapkan alamat
memori.
2. Menjalankan
transformasi alamat memori virtual ke alamat memori aktual.
3. Mengawali pembacaan /
penulisan memori
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
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 :
1. ADD : penjumlahan 5.
ABSOLUTE
2. SUBTRACT : pengurangan
6. NEGATIVE
3. MULTIPLY : perkalian 7.
DECREMENT
4. DIVIDE : pembagian 8.
INCREMENT
Nomor 5 sampai 8 merupakan
instruksi operand tunggal. 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.
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.
INPUT / OUPUT
* Tindakan CPU untuk
melakukan INPUT /OUTPUT :
1. Apabila memory mapped
I/O maka menentukan alamat memory mapped.
2. Mengawali perintah ke
modul I/O
* Operasi set instruksi
Input / Ouput :
1. INPUT : memindahkan
data dari pernagkat I/O tertentu ke tujuan
2. OUTPUT : memindahkan
data dari sumber tertentu ke perangkat I/O
3. START I/O : memindahkan
instruksi ke prosesor I/O untuk mengawali operasi I/O
4. TEST I/O : memindahkan
informasi dari sistem I/O ke tujuan TRANSFER CONTROL
* Tindakan CPU untuk
transfer control : Mengupdate program counter untuk subrutin , call / return.
* 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 dieksekusi
ketika prosesor berada dalam keadaan khusus tertentu atau sedang mengeksekusi
suatu program yang berada dalam area khusus, biasanya digunakan dalam sistem
operasi. * Contoh : membaca atau mengubah register kontrol.
JUMLAH ALAMAT (NUMBER OF
ADDRESSES)
* Salah satu cara
tradisional untuk menggambarkan arsitektur prosessor adalah dengan melihat
jumlah alamat yang terkandung dalam setiap instruksinya.
* Jumlah alamat maksimum
yang mungkin diperlukan dalam sebuah instruksi :
1. Empat Alamat ( dua
operand, satu hasil, satu untuk alamat instruksi berikutnya)
2. Tiga Alamat (dua
operand, satu hasil)
3. Dua Alamat (satu
operand merangkap hasil, satunya lagi operand)
4. Satu Alamat
(menggunakan accumulator untuk menyimpan operand dan hasilnya)
Macam-macam instruksi menurut
jumlah operasi yang dispesifikasikan
1. O – Address Instruction
2. 1 – Addreess
Instruction.
3. N – Address Instruction
4. M + N – Address
Instruction
Macam-macam instruksi
menurut sifat akses terhadap memori atau register
1. Memori To Register
Instruction
2. Memori To Memori
Instruction
3. Register To Register
Instruction
ADDRESSING MODES
Jenis-jenis addressing
modes (Teknik Pengalamatan) yang paling umum:
* Immediate
* Direct
* Indirect
* Register
* Register Indirect
* Displacement
* Stack
sumber :
http://rajarayu.blogspot.com/2012/11/set-instruksi.html
http://rudisaputra191209.blogspot.com
www.wikipedia.com
sumber :
http://rajarayu.blogspot.com/2012/11/set-instruksi.html
http://rudisaputra191209.blogspot.com
www.wikipedia.com
Tidak ada komentar:
Posting Komentar