Set Instruksi 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.
ISA merupakan sebuah spesifikasi dari
kumpulan 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.
Karakteristik dan Fungsi Set
Instruksi
Operasi dari CPU ditentukan oleh
instruksiinstruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering
disebut sebagai instruksi mesin (mechine instructions) atau instruksi komputer
(computer instructions). Kumpulan
dari instruksi-instruksi yang berbeda
yang dapat dijalankan oleh CPU disebut
set Instruksi (Instruction Set).
Jenis - Jenis Set Instruksi:
·
Data Processing/Pengolahan Data: instruksi-instruksi
aritmetika dan logika.
·
Data Storage/Penyimpanan Data:
instruksi-instruksi memori.
·
Data Movement/Perpindahan Data: instruksi I/O.
·
Control/Kontrol: instruksi pemeriksaan dan
percabangan.
Instruksi aritmetika (arithmetic instruction) memiliki
kemampuan untuk mengolah data numeric. Sedangkan instruksi logika (logic instruction) beroperasi pada
bit-bit word sebagai bit, bukan sebagai bilangan. Operasi-operasi tersebut
dilakukan terutama dilakukan untuk data di register CPU. Instruksi-inslruksi
memori diperlukan untuk memindah data yang terdapat di memori dan register.
Instruksi-instruksi I/O diperlukan
untuk memindahkan program dan data kedalam memori dan mengembalikan hasil
komputasi kepada pengguna. Instruksi-instruksi kontrol digunakan untuk
memeriksa nilai data, status komputasi dan mencabangkan ke set instruksi lain.
Teknik Pengalamatan
Metode pengalamatan merupakan aspek
dari set instruksi arsitekturdi sebagian unit pengolah pusat(CPU) desain yang
didefinisikan dalam set instruksi arsitektur dan menentukan bagaimana bahasa
mesinpetunjuk dalam arsitektur untuk mengidentifikasi operan dari setiap
instruksi.. Sebuah mode pengalamatan menentukan bagaimana menghitung alamat
memori yang efektif dari operand dengan menggunakan informasi yang diadakan di
registerdan / atau konstanta yang terkandung dalam instruksi mesin atau di
tempat lain.
Jumlah Alamat
Salah satu cara tradisional untuk
menggambarkan arsitektur prosessor adalah dengan melihat jumlah alamat yang
terkandung dalam setiap instruksinya.
1. Jumlah alamat maksimum yang mungkin
diperlukan dalam sebuah instruksi :
·
Empat
Alamat ( dua operand, satu hasil, satu untuk alamat instruksi berikutnya)
·
Tiga
Alamat (dua operand, satu hasil)
·
Dua
Alamat (satu operand merangkap hasil, satunya lagi operand)
·
Satu
Alamat (menggunakan accumulator untuk menyimpan operand dan hasilnya)
2. Macam-macam instruksi menurut jumlah
operasi yang dispesifikasikan :
·
–
Address Instruction
·
1
– Addreess Instruction
·
N
– Address Instruction
·
M
+ N – Address Instruction
3. Macam-macam instruksi menurut sifat
akses terhadap memori atau register
·
Memori
To Register Instruction
·
Memori
To Memori Instruction
·
Register
To Register Instruction
Jenis - Jenis Metode Pengalamatan
a)Direct
Absolute (pengalamatan langsung)
Hal ini membutuhkan ruang dalam
sebuah instruksi untuk cukup alamat yang besar.. Hal ini sering tersedia di
mesin CISC yang memiliki panjang instruksi variabel, seperti x86.. Beberapa
mesin RISC memiliki Literal khusus Atas instruksi Load yang menempatkan sebuah
16-bit konstan di atas setengah dari register.. Sebuah literal instruksi
ATAUdapat digunakan untuk menyisipkan 16-bit konstan di bagian bawah mendaftar
itu, sehingga alamat 32-bit kemudian dapat digunakan melalui mode pengalamatan
tidak langsung mendaftar, yang itu sendiri disediakan sebagai "base-
plus-offset "dengan offset 0.
b)Immidiate
Bentuk
pengalamatan ini yang paling sederhana
- Operand benar-benar ada dalam instruksi atau bagian dari instruksi = operand sama dengan field alamat
- Umumnya bilangan akan disimpan dalam bentuk kompleent dua
- Bit paling kiri sebagai bit tanda
- Ketika operand dimuatkan ke dalam register data, bit tanda digeser ke kiri hingga maksimum word data Contoh: ADD 5 ; tambahkan 5 pada akumulator.
c) Indirect register
·
Metode
pengalamatan register tidak langsung mirip dengan mode pengalamatan tidak
langsung
·
Perbedaannya
adalah field alamat mengacu pada alamat register
·
Letak
operand berada pada memori yang dituju oleh isi registeR
· Keuntungan
dan keterbatasan pengalamatan register tidak langsung pada dasarnya sama dengan pengalamatan tidak langsung
Keterbatasan field alamat diatasi
dengan pengaksesan memori yang tidak langsung sehingga alamat yang dapat
direferensi makin banyak Dalam satu siklus pengambilan dan penyimpanan, mode
pengalamatan register tidak langsung hanya menggunakan satu referensi memori
utama sehingga lebih cepat daripada mode pengalamatan tidak langsung.
d)Indirect-
memori
Salah satu mode pengalamatan yang
disebutkan dalam artikel ini bisa memiliki sedikit tambahan untuk menunjukkan
pengalamatan tidak langsung, yaitu alamat dihitung menggunakan modus beberapa
sebenarnya alamat dari suatu lokasi (biasanya lengkap kata) yang berisi alamat
efektif sebenarnya. Pengalamatan tidak langsung dapat digunakan untuk kode atau
data. Hal ini dapat membuat pelaksanaan pointer ataureferensi atau
menanganilebih mudah, dan juga dapat membuat lebih mudah untuk memanggil
subrutin yang tidak dinyatakan dialamati. Pengalamatan tidak langsung tidak
membawa hukuman performansi karena akses memori tambahan terlibat.
Beberapa awal minicomputer (misalnya Desember PDP-8, Data General Nova) hanya
memiliki beberapa register dan hanya rentang menangani terbatas (8 bit).Oleh
karena itu penggunaan memori tidak langsung menangani hampir satu-satunya cara
merujuk ke jumlah yang signifikan dari memori.
e)Register
Pada beberapa komputer, register
dianggap sebagai menduduki 16 pertama 8 atau kata-kata dari memori (misalnya
ICL 1900, DEC PDP-10). Ini berarti bahwa tidak perlu bagi yang terpisah
"Tambahkan register untuk mendaftarkan" instruksi - Anda hanya bisa
menggunakan "menambahkan memori untuk mendaftar" instruksi. Dalam
kasus model awal PDP-10, yang tidak memiliki memori cache, Anda benar-benar
dapat memuat sebuah loop dalam ketat ke dalam beberapa kata pertama dari memori
(register cepat sebenarnya), dan berjalan lebih cepat daripada di memori inti
magnetik. Kemudian model dari DEC PDP-11seri memetakan register ke alamat di
output / area input, tetapi ini ditujukan untuk memungkinkan diagnostik
terpencil. register 16-bit dipetakan ke alamat berturut-turut byte 8-bit.
f)Index
Indexing adalah field alamat mereferensi alamat memori utama,
dan register yang direferensikan berisi pemindahan positif dari alamat tersebut
·
Merupakan
kebalikan dari mode base register
·
Field
alamat dianggap sebagai alamat memori dalam indexing
·
Manfaat
penting dari indexing adalah untuk eksekusi program-program iterative
g) Base index
Base index, register yang direferensi
berisi sebuah alamat memori, dan field alamat berisi perpindahan dari alamat
itu Referensi register dapat eksplisit maupun implicit. Memanfaatkan konsep
lokalitas memori.
h)Base index plus offset
Offset biasanya nilai 16-bit masuk
(walaupun 80386 diperluas ke 32 bit). Jika offset adalah nol, ini menjadi
contoh dari register pengalamatan tidak langsung, alamat efektif hanya nilai
dalam register dasar. Pada mesin RISC banyak, register 0 adalah tetap sebesar
nilai nol. Jika register 0 digunakan sebagai register dasar, ini menjadi sebuah
contoh dari pengalamatan mutlak. Namun, hanya sebagian kecil dari memori dapat
diakses (64 kilobyte, jika offset adalah 16 bit). 16-bit offset mungkin tampak
sangat kecil sehubungan dengan ukuran memori komputer saat ini (yang mengapa 80386
diperluas ke 32-bit). Ini bisa lebih buruk: IBM System/360 mainframe hanya
memiliki 12-bit unsigned offset. Namun, prinsip berlaku: selama rentang waktu
yang singkat, sebagian besar item data program ingin mengakses cukup dekat satu
sama lain. Mode pengalamatan ini terkait erat dengan mode pengalamatan
terindeks mutlak.
Contoh 1: Dalam sebuah sub rutin
programmer terutama akan tertarik dengan parameter dan variabel lokal, yang
jarang akan melebihi 64 KB, yang satu basis register (yang frame pointer) sudah
cukup. Jika rutin ini adalah metode kelas dalam bahasa berorientasi objek,
kemudian register dasar kedua diperlukan yang menunjuk pada atribut untuk objek
saat ini (ini atau diri dalam beberapa bahasa tingkat tinggi).
Contoh 2: Jika register dasar berisi
alamat dari sebuah tipe komposit (record atau struktur), offset dapat digunakan
untuk memilih field dari record (catatan paling / struktur kurang dari 32 kB).
i)Relatif
Pengalamatan Relative, register yang
direferensi secara implisit adalah program counter (PC)Alamat efektif
didapatkan dari alamat instruksi saat itu ditambahkan ke field alamat
Memanfaatkan konsep lokalitas memori untuk menyediakan operand-operand
berikutnya.
Desain Set Instruksi
Desain set
instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek,
diantaranya adalah:
1. Kelengkapan set instruksi
2. Ortogonalitas (sifat independensi
instruksi)
3. Kompatibilitas : Source code
compatibility dan Object code Compatibility
v Selain ketiga aspek tersebut juga
melibatkan hal-hal sebagai berikut:
1. Operation Repertoire: Berapa banyak dan
operasi apa saja yang disediakan, dan berapa sulit operasinya .
2. Data Types: tipe/jenis data yang dapat olah
Instruction Format: panjangnya, banyaknya alamat, dsb.
3. Register: Banyaknya register yang dapat
digunakan 4.Addressing: Mode pengalamatan untuk operand.
Format Set
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). Jenis-Jenis Operand antara lain :
·
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
1. Transfer Data
A.
Menetapkan lokasi operand sumber dan operand tujuan.
B.
Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling
atas daripada stack.
C.
Menetapkan panjang data yang
dipindahkan
D.
Menetapkan mode pengalamatan
E.
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.
v Mengawali pembacaan / penulisan memori
f) 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
2.
Aritmatika dan Logika
a)
Tindakan CPU untuk melakukan operasi Aritmatika Dan Logika :
·
Transfer
data sebelum atau sesudah.
·
Melakukan
fungsi dalam ALU.
·
Menset kode-kode kondisi dan flag.
b) Operasi set instruksi
untuk Aritmatika :
·
ADD
: penjumlahan
·
SUBTRACT
: pengurangan
·
MULTIPLY
: perkalian
*
DIVIDE : pembagian
c) Operasi set instruksi
untuk operasi Logika :
·
AND,
OR, NOT, EXOR
·
COMPARE
: melakukan perbandingan logika
·
TEST
: menguji kondisi tertentu
·
SHIFT
: operand menggeser ke kiri atau kanan menyebabkan konstanta pada ujung bit
·
ROTATE
: operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin
3. Konversi
a) Tindakan CPU sama dengan Aritmatika dan
Logika.
b) Instruksi yang mengubah format instruksi
yang beroperasi terhadap format data.
c) Misalnya pengubahan bilangan desimal
menjadi bilangan biner.
d) Operasi set instruksi untuk Konversi :
* TRANSLATE : menterjemahkan nilai-nilai
dalam suatu bagian memori berdasrkan tabel korespodensi.
* CONVERT : mengkonversi isi suatu word
dari suatu bentuk ke bentuk lainnya.
4. Input / Ouput
a) Tindakan CPU untuk melakukan INPUT /OUTPUT :
·
Apabila
memory mapped I/O maka menentukan alamat memory mapped.
·
Mengawali
perintah ke modul I/O
B) Operasi set
instruksi Input / Ouput :
·
INPUT
: memindahkan data dari pernagkat I/O tertentu ke tujuan.
·
OUTPUT
: memindahkan data dari sumber tertentu ke perangkat I/O.
·
START
I/O : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O.
·
TEST
I/O : memindahkan informasi dari sistem I/O ke tujuan TRANSFER CONTROL.
5. Transfer Control
a) Tindakan CPU untuk transfer
control :
·
Mengupdate
program counter untuk subrutin , call / return.
b) 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.
6. Control System
a) 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.
b) Contoh : membaca atau mengubah register
kontrol.
SUMBER: fachrulryper.blogspot.com/2012/11/arsitektur-set-instruksi-dan-cpu.html
siezwoyouye.blogspot.com/2012/10/arsitektur-set-instruksi.html
jovanangga.blogspot.com/2012/11/set-instruksi-dan-teknik-
pengalamatan.html