1. Pengertian Set Instruksi
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 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.
2. Elemen Set Instruksi
Operation Code (Opcode), menspesifikasikan operasi yang akan dilakukan. Kode operasi berbentuk kode biner. Dalam komputasi, sebuah opcode (disingkat dari kode operasi) adalah bagian dari instruksi bahasa mesin yang menentukan operasi yang akan dilakukan. Selain opcode itu sendiri, instruksi biasanya menentukan data mereka akan memproses, berupa operan. Selain opcodes digunakan dalam arsitektur set instruksi dari berbagai CPU, yang merupakan perangkat keras, mereka juga dapat digunakan di mesin komputasi abstrak sebagai bagian dari spesifikasi kode byte
Contoh opcode :
0001(2) = 1(16) = Load AC dari memori
0010(2) = 2(16) = Simpan AC pada memori
0101(2) = 5(16) = tambahkan pada AC dari memori
Accumulator(AC/ACC) = penyimpanan sementara
Source Operand Reference, operasi dapat berasal dari lebih satu sumber. Operand adalah input instruksi. Sumber dan hasil operand dapat berada di salah satu dari ketiga daerah di bawah ini. Memori utama atau memori virtual dengan referensi alamat berikutnya, maka alamat memori utama atau virtual harus diketahui.
- Register CPU : instruksi harus diberi nomor register yang dimaksud.
- Perangkal I/O : instruksi harus menspesifikasikan modul I/O yang diperlukan oleh operasi.
Contoh set instuksi dalam microsoft :
PRINT
QUICK PRINT
PRINT PREVIEW
Contoh dalam matematika 5+5=10 (10 tersebut hasil perintah dari operand)
Next Instruction Reference, menginformasikan CPU untuk melakukan instruksi berikutnya yang harus diambil dan dieksekusi atau juga memberitahu CPU untuk mengambil (fetch) instruksi berikutnya setelah instruksi yang dijalankan selesai (fetching).
3. Jenis Instruksi
lnstruksi-instruksi diklasifikasikan dalam tipe yang berbeda berdasarkan faktor-faktor berikut :
- Opcode : kode operasi yang harus dikerjakan oleh instruksi.
- Data : tipe data : biner, desimal dan sebagainya.
- Lokasi operand : memori, register, dan sebagainya.
- Pengalamatan operand : metode penentuan lokasi operand (alamat).
- Panjang instruksi : satu byte, dua byte, dan sebagainya.
- Panjang instruksi : satu byte, dua byte, dan sebagainya.
Tidak ada dua komputer yang mempunyai set instruksi yang sama. Hampir setiap komputer mempunyai beberapa instruksi yang unik yang menarik pemrogram. Arsitek komputer memberikan perhatian dalam pembentukan set instruksi karena melibatkan pemrogram dan mesin komputer. lnstruksi-instruksi dapat diklasifikasikan ke dalam delapan jenis :
- lnstruksi transfer data : instruksi ini menyalin data dari satu register/lokasi memori ke yang lainnya.
- lnstruksi aritmetika : instruksi ini melakukan operasi-operasi aritmetika.
- lnstruksi logika : instruksi ini melakukan operasi-operasi logika Boolean.
- lnstruksi transfer kontrol : instruksi ini modifikasi/mengubah urutan eksekusi program.
- lnstruksi I/O : instruksi ini melakukan transfer informasi antara peripheral eksternal dan inti sistem (CPU/memori).
- lnstruksi manipulasi strint : instruksi ini melakukan manipulasi string byte, word, double word, dan sebagainya.
- lnstruksi Translate: instruksi ini melakukan konversi data dari satu format ke format lain.
- lnstruksi kontrol prosesor: instruksi ini melakukan kontrol operasi prosesor.
4. Teknik Pengalamatan
Ada dua cara yang biasa digunakan daram penempatan operand instruksi yaitu pada lokasi memori utama dan register CPU. Jika operand ditempatkan pada memori utama, alamat lokasi harus diberikan oleh instruksi dalam medan operand. Tidak perlu memberikan alamat secara eksplisit pada instruksi. Banyak metode yang berguna yang dipakai untuk menentukan alamat operand. Mode yang berbeda dalam penentuan alamat operand pada instruksi dikenal dengan addressing modes (mode pengalamatan). suatu komputer bisa saja tidak menggunakan semua mode pengalamatan tersebut. Mode pengalamatan yang populer adalah :
- Pengalamatan immediate
- Pengalamatan langsung (absolut)
- Pengalamatan tak-langsung
- Pengalamatan tak-langsung register
- Pengalamatan register
- Pengalamatan indeks
- Pengalamatan relatif
- Pengalamata Base dengan indeks dan offset
- Mengurangi panjang instruksi dengan mempunyai medan yang pendek untuk alamat.
- Menyediakan bantuan yang tangguh kepada pemrogram untuk penanganan data kompleks seperti pengindeksan sebuah array, kontrol loop, relokasi progam, dan sebagainya.
- Medan terpisah dalam instruksi menunjukkan mode pengalamatan yang digunakan, seperti yang diberikan pada Gambar 2.
- Opcode sendiri yang secara eksplisit menunjukkan mode pengalamatan yang digunakan dalam instruksi.
Gambar 2. Medan-medan Mode Pengalamatan
Pengalamatan lmmediate
Gambar 3. Format Instruksi Pengalamatan Immediate
Mode pengalamatan immediate merupakan mode pengalamatan yang tidak melakukan aktivitas pengambilan operand. Pada contoh yang diberikan berikut adalah dalam statement bahasa rakitan. Tanda " # " digunakan untuk menunjukkan bahwa konstanta yang mengikuti tanda tersebut adalah immediate operand.
- LOAD R1, X : Salin isi lokasi memori X ke dalam register R1.
- MOV Y, X : salin isi lokasi memori X ke dalam lokasi Y. Kedua operand ini menunjukkan penggunaan mode pengalamatan langsung.
- JUMP X : Transfer kontrol program ke instruksi pada lokasi memori X dengan mengisikan X ke PC (X bukan operand, tetapi alamat pencabangan).
Pengalamatan Tak Langsung
Gambar 5. Farmat Instruksi Pengalamatan Tak-Langsung Memori
Karena mode pengalamatan tak-langsung dapat melalui sebuah lokasi memori atau register, maka dapat dilakukan dengan dua cara, yaitu :
- Pengalamatan tak-langsung memori : jika sebuah lokasi memori digunakan untuk menyimpan alamat
- Pengalamatan tak-langsung register : jika sebuah register digunakan untuk menyimpan alamat operand.
<X> = Y, <Y> = operand
Y dikenal sebagai pointer. Nilai Y (alamat) dapat diganti secara dinamis dalam suatu program tanpa mengganti instruksi dengan cara melakukan modifikasi sederhana pada isi lokasi X. Pengalamatan tak langsung yang multilevel dapat dimungkinkan.
Contoh berikut adalah ilustrasi mode pengalamatan tak langsung.
MOVE (X), R1+ isi dari lokasiyang mempunyai alamat X disalin ke register R1.
Pengalamatan Tak Langsung Register
Gambar 6. Format Instruksi Pengalamatan Tak Langsung Register
Pada mode ini, register digunakan untuk menjaga alamat memori dari operand daripada operand itu sendiri. Jadi register bertindak sebagai register alamat memori. Mode ini sangat berguna untuk pengaksesan cepat lokasi memori utama seperti array. lnstruksi dengan mode tak-langsung register adalah merupakan bagian dari loop. Pertama, alamat awal dari array disimpan di dalam register. Bila instruksi ditemukan pertama, entry pertama dari array diakses. Kemudian isi register ditambah satu oleh instruksi lain dalam loop, sebelum mendapati instruksi mode tak-langsung register.
Keuntungan : pemanfaatan efektif panjang instruksi, karena nomor register ditentukan dengan sejumlah bit.
Pengalamatan Register
Gambar 7. Format Instruksi Pengalamatan Register
Secara konseptual, pengalamatan register mirip dengan pengalamatan langsung kecuali lokasi memori digantikan dengan register untuk menyimpan operand. lnstruksi berisi nomor register yang mempunyai operand. Mode pengalamatan ini sangat berguna untuk suatu program yang panjang dalam penyimpanan hasil-hasil sementara di dalam register daripada di dalam memori. Contoh berikut adalah ilustrasi mode pengalamatan register :
ADD R1,R2 : jumlahkan isi register R1 dan R2 dan hasilnya disimpan di R1. kedua operand menggunakan pengalamatan register.- STORE R1,MEM1 : lsi dari register R1 disimpan/disalin ke alamat memori MEM1; operand pertama menggunakan pengalamatan register dan operand kedua menggunakan pengalamatan langsung.
Keuntungan : pengambilan operand lebih cepat tanpa akses memori. Kelemahan : Jumlah register terbatas dan karena itu utilisasi efektif oleh pemrogram merupakan hal yang esensial.
Pengalamatan lndeks
Gambar 8. Format Instruksi Pengalamatan Indeks
Pada mode pengalamatan indeks, alamat operand diperoleh dengan menambahkan sebuah konstanta ke suatu register, yang disebut register indeks. Instruksi ini mengisi register Ri dengan isi lokasi memori yang alamatnya adalah hasil jumlah isi register Rind dan nilai X.
Contoh : LOAD X(Rind), Ri. Instruksi ini menyalin operand alamat hasil
penjumlahan nilai X dengan nilai regiter Rind ke dalam register Ri.
Mode ini berbeda sedikit dengan mode pengalamatan base register Register indeks berisi sebuah offset atau perpindahan (displacement). Instruksi berisi alamat yang akan ditambahkan pada offset dalam register indeks, untuk mendapatkan alamat operand efektif.
Umumnya field alamat dalam instruksi memberikan alamat awal array dalam memori. Register indeks berisi “nilai indeks” untuk operand yaitu selisih antara alamat awal dan alamat operand. Dengan mengubah nilai register indeks, maka operand dalam array dapat diakses. Umumnya operand-operand (elemen-elemen array) berada dalam lokasi yang berurutan. Mereka diakses dengan increment yang sederhana pada register indeks.
Beberapa CPU mendukung fitur “autoindexing”, yang melibatkan autoincrement (dengan hardware) pada register indeks kapanpun suatu instruksi dengan pengalamatan indeks dieksekusi. Hal ini mengurangi penggunaan instruksi terpisah dalam menambah isi register indeks. Hal ini juga lebih mempercepat aksi serta lebih mengurangi ukuran program, namun memberikan tanggung jawab tambahan “autoindexing” pada unit kontrol.
Pengalamatan Relatif
Gambar 9. Format Instruksi Pengalamatan Relatif
Pengalamatan Relatif sama seperti pengalamatan indeks kecuali register indeks diganti dengan program counter (PC). lnstruksi ini mengisi Ri dengan kandungan lokasi memori yang alamatnya adalah hasil jumlah program counter (PC) dan nilai X.
Pada mode ini, instruksi menetapkan alamat operand (lokasi memori) sebagai posisi relatif dari alamat instruksi sekarang yaitu isi PC. Karena itu operand terletak pada “jarak pendek” dari isi PC. Umumnya mode ini digunakan untuk menetapkan alamat pencabangan dalam instruksi branch, alamat pencabangan berada dekat dengan alamat instruksi.
JUMP + 8 (PC)- JUMP – 8 (PC)
Keuntungan : Jumlah bit dalam medan alamat lebih sedikit.
Pengalamatan Base Register
Mode ini digunakan untuk relokasi program di dalam memori (dari satu area ke area lain). Pada mode pengalamatan base register, instruksi tidak berisi alamat. Dia memberikan perpindahan relatif terhadap area memori sekarang ke area memori yang lain, base register diisi dengan alamat base baru. lnstruksi tidak perlu dimodifikasi/diubah. Dengan cara ini, keseluruhan program atau suatu segment dari program dapat dipindahkan dari satu area di memori ke yang lain tanpa memengaruhi instruksi, dengan perubahan sederhana isi base register. Hal ini penting untuk sistem multiprogramming karena untuk waktu yang berbeda (run), area berbeda dari memori tersedia untuk sebuah program. Sebuah CPU dapat mempunyai lebih dari satu base register.
Gambar 10. Format Instruksi Pengalamatan Base Register
Keuntungan : medan alamat operand dalam instruksi sangat pendek karena hanya memberikan offset (perpindahan); alamat operand dikalkulasi tanpa akses memori.
Pengalamatan Stack
Pada pengalamatan stack (tumpukan), semua operand untuk suatu instruksi diambil dari bagian teratas stack. lnstruksi tidak mempunyai medan operand. Misalnya, sebuah instruksi ADD hanya memberikan opcode (ADD). Kedua operand berada dalam stack, di dalam lokasi yang berurutan. Bila instruksi ADD dieksekusi , dua operand di-pop-off dari stack satu per satu. Setelah penjumlahan, hasilnya di-push ke dalam stack.
Keuntungan : tidak ada medan operand dalam instruksi. Karena itu instruksinya pendek.
5. Desain Set Instruksi
Pekerjaan yang paling signifikan/penting dan kompleks dalam mendesain komputer adalah membuat set instruksi. Untuk mencapai tujuan tersebut, sejumlah pertanyaan berikut harus terjawab. Berapa banyak lnstruksi yang diperlukan ? Jenis instruksi apa saja yang harus disertakan di dalam set instruksi ? Komputer era sebelumnya tidak melakukan perencanaan set instruksi. Kelemahan desain set instruksi adalah mereka secara drastis memengaruhi ruang memori utama karena panjang program (bahasa mesin). Karena itu, dalam desain yang baik, perencanaan awal set instruksi memungkinkan kompiler membuat kode objek yang kompak (tersusun baik dan padat) tersimpan pada ruang memori.
Seorang arsitek komputer harus mempertimbangkan aspek-aspek berikut sebelum menyelesaikan set instruksi :
Kenyamanan pemrograman : Jumlah instruksi; pemrogram lebih suka mempunyai sebanyak mungkin instruksi supaya operasi yang tepat dapat dikerjakan oleh rangkaian instruksi. Tetapi mempunyai terlalu banyak instruksi dalam set instruksi menghasilkan desain unit kontrol yang kompleks. Pendekodean instruksi memerlukan sirkuit dan waktu yang besar.- Pengalamatan yang fleksibel : Pemrogram senang jika memungkinkan semua mode pengalamatan operand ada di dalam arsitektur. Hal ini memberikan fleksibilitas yang banyak kepada pemrogram, walaupun desain unit kontrol menjadi kompleks.
- Jumlah General Purpose Register (GPR) : Jika CPU mempunyai register yang banyak, pemrogram memperoleh pemrosesan dan transfer data yang cepat. Tetapi, biaya perangkat keras CPU meningkat dengan banyaknya.
- Target segmen pasar : Sasaran bidang aplikasi untuk komputer memerlukan operasi-operasi khusus untuk pemrosesan data yang efisien. Komputer saintifik harus mempunyai aritmetika floating-point yang tingkat presisinya baik/tidak terlalu jelek. Sedangkan komputer bisnis harus mendukung aritmetika desimal, dan komputer hiburan harus mempunyai operasi-operasi multimedia.
- Kinerja sistem : Jika sebuah program mempunyai instruksi sedikit, kinerja sistem meningkat karena waktu yang digunakan oleh CPU dalam pengambilan instruksi berkurang. Untuk program yang pendek, instruksi yang digunakan harus instruksi kompleks. Jadi, instruksi tunggal harus dapat melakukan beberapa mikrooperasi. Pemrogram menyadari hal ini mengurangi ukuran program. Tapi di sisi lain menambah kompleksitas unit kontrol dan waktu eksekusi instruksi. Konsep modern arsitektur RISC tidak mendukung instruksi-instruksi kompleks, walaupun semua komputer lama yang berbasis CISC menggunakan instruksi-instruksi kompleks.
Secara tradisional, superioritas suatu komputer ditentukan pada basis set instruksinya. Jumlah total instruksi dan ketangguhan yang dimilikinya menjadi sangat penting karena dua faktor tersebut berkontribusi pada efisiensi komputer. Program yang efisien adalah bila program itu pendek dan menempati ruang memori yang sedikit. waktu eksekusi juga merupakan faktor kunci.
Kecenderungan sekarang adalah mengikuti penggunaan instruksiinstruksi sederhana yang menghasilkan unit kontrol yang sederhana. Sirkuit CPU lebih penting dari ukuran memori. Jadi, kecepatan CPU meningkat pada pemrosesan instruksi dari arsitektur RISC.
Pemilihan set instruksi untuk suatu komputer bergantung pada cara CPU disusun. secara tradisional, ada tiga organisasi CPU dengan instruksi-instruksi spesifik tertentu :
CPU berbasis akumulator- CPU berbasis register
- CPU berbasis stack
Daftar Pustaka
Eska, A. Ma’ruf. 29 Maret 2016. Element Set Intruksi Dalam Sistem Komputer. Diakses : 3 November 2019. Dari : https://www.seneng-komputer.com/2016/03/element-set-intruksi-dalam-sistem.html- FISIP UMJ JAKARTA. Set Instruksi. Diakses : 3 November 2019. Dari : http://19.program-reguler.co.id/id3/2823-2721/Set-Instruksi_29705_fisipumj_19-uhamzah.html.
Komentar
Posting Komentar