ARSITEKTUR SET INTRUKSI
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 digunakan untuk membedakan kumpulan karakteristik
yang disebut di atas dengan mikroarsitektur prosesor, yang merupakan kumpulan
teknik desain prosesor untuk mengimplementasikan set instruksi (mencakup
microcode, pipeline, sistem cache, manajemen daya, dan lainnya).
Komputer-komputer dengan mikroarsitektur berbeda dapat saling berbagi set
instruksi yang sama. Sebagai contoh, prosesor Intel Pentium dan prosesor AMD
Athlon mengimplementasikan versi yang hampir identik dari set instruksi Intel
x86, tetapi jika ditinjau dari desain internalnya, perbedaannya sangat radikal.
Konsep ini dapat diperluas untuk ISA-ISA yang unik seperti TIMI yang terdapat
dalam IBM System/38 dan IBM IAS/400. TIMI merupakan sebuah ISA yang
diimplementasikan sebagai perangkat lunak level rendah yang berfungsi sebagai
mesin virtual.
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.
JENIS JENIS INTRUKSI
Ø Data Processing / Pengolahan Data :
instruksi-instruksi aritmetika dan logika. Instruksi aritmetika memiliki
kemampuan untuk mengolahdata numeric, sedangkan instruksi logika beroperasi
pada bit-bit word sebagai bit bukan sebagai bilangan. Operasi-operasi tersebut
dilakukan terutama untuk data di register CPU.
Ø Data
Storage / Penyimpanan Data : instruksi-instruksi memori. Instruksi-instruksi
memori diperlukan untuk memindah data yang terdapat di memori dan register.
Ø Data Movement / Perpindahan Data : instruksi
I/O. Instruksi-instruksi I/O diperlukan untuk memindahkan program dan data ke
dalam memori dan mengembalikan hasil komputansi kepada pengguna.
Ø Control / Kontrol : instruksi
pemeriksaan dan percabangan. Instruksi-instruksi kontrol digunakan untuk
memeriksa nilai data, status komputansi dan mencabangkan ke set instruksi lain.
ARITHMETIC Tindakan CPU untuk melakukan operasi
arithmetic :
Operasi set instruksi untuk arithmetic :
1. ADD : penjumlahan 5. ABSOLUTE
2. SUBTRACT : pengurangan 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.
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
INPUT / OUPUT Tindakan CPU untuk melakukan INPUT
/OUTPUT :
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
TEKNIK PENGALAMATAN
Pengalamatan
adalah bagaimana cara menunjuk dan mengalamati suatu lokasi memori pada sebuah
alamat di mana operand akan diambil. Mode pengalamatan diterapkan pada set
instruksi,dimana pada umumnya instruksi terdiri dari opcode (kode operasi) dan
alamat. Setiap mode pengalamatan memberikan fleksibilitas khusus yang sangat
penting. Mode pengalamatan inimeliputi direct addressing, indirect addressing,
dan immediate addressing.
Direct Addresing
Dalam mode pengalamatan
direct addressing, harga yang akan dipakai diambil langsung dalam alamat memori
lain. Contohnya: MOV A,30h. Dalam instruksi ini akan dibaca data dari
RAMinternal dengan alamat 30h dan kemudian disimpan dalam akumulator. Mode
pengalamatan inicukup cepat, meskipun harga yang didapat tidak langsung seperti
immediate, namun cukup cepatkarena disimpan dalam RAM internal. Demikian pula
akan lebih mudah menggunakan mode inidaripada mode immediate karena harga yang
didapat bisa dari lokasi memori yang mungkinvariabel.
Kelebihan dan kekurangan dari Direct Addresing antara
lain :
Kelebihan
• Field alamat berisi alamat efektif sebuah operand.
Kelemahan
• Keterbatasan field alamat karena panjang field
alamat biasanya lebih kecil dibandingkan panjang word.
Indirect Addresing
Mode pengalamatan indirect addressing sangat berguna
karena dapat memberikan fleksibilitastinggi dalam mengalamati suatu harga.Mode
ini pula satu-satunya cara untuk mengakses 128 byte lebih dari RAM internal
pada keluarga 8052. Contoh: MOV A,@R0. Dalam instruksi tersebut, 89C51 akan
mengambil harga yang berada pada alamat memori yang ditunjukkan olehisi dari R0
dan kemudian mengisikannya ke akumulator. Mode pengalamatan indirect addressing
selalu merujuk pada RAM internal dan tidak pernah merujuk pada SFR. Karena
itu,menggunakan mode ini untuk mengalamati alamat lebih dari 7Fh hanya
digunakan untukkeluarga 8052 yang memiliki 256 byte spasi RAM
internal.Kelebihan dan kekurangan dari Indirect Addresing antara lain
:
Kelebihan
• Ruang bagi alamat menjadi besar sehingga semakin
banyak alamat yang dapat referensi.
Kekurangan
• Diperlukan referensi memori ganda dalam satu fetch
sehingga memperlambat preoses operasi
Immediate Addresing
Mode pengalamatan immediate
addressing sangat umum dipakai karena harga yang akandi simpan dalam memori
langsung mengikuti kode operasi dalam memori. Dengan kata lain,tidak diperlukan
pengambilan harga dari alamat lain untuk disimpan. Contohnya: MOV A,#20h.Dalam
instruksi tersebut, akumulator akan diisi dengan harga yang langsung
mengikutinya,dalam hal ini 20h. Mode ini sangatlah cepat karena harga yang
dipakai langsung tersedia.
Kelebihan dan kekurangan dari Immedieate Addresing
antara lain :
Keuntungan
Tidak adanya referensi memori selain dari instruksi
yang diperlukan untuk memperoleh
operand.
Menghemat sik
lus instruksi sehingga proses keseluruhan akan cepat.
Kekurangan
Ukuran bilangan
dibatasi oleh ukuran field alamat
DESAIN SET INTRUKSI
Salah satu yang paling menarik dan paling dianalisis, aspek desain komputer adalah desain set instruksi. Desain set instruksi sangat kompleks, karena memengaruhi begitu banyak aspek sistem komputer. Set instruksi mendefinisikan banyak fungsi yang dilakukan oleh CPU dan dengan demikian memiliki efek signifikan pada implementasi CPU. Set instruksi adalah cara programmer mengendalikan CPU. Dengan demikian, persyaratan programmer harus dipertimbangkan dalam merancang set instruksi. Masalah desain yang paling penting termasuk yang berikut:
Repertoar operasi: Berapa banyak dan operasi mana yang harus disediakan, dan seberapa rumit operasi seharusnya
Tipe data: Berbagai tipe data yang digunakan untuk operasi
Format instruksi: Panjang instruksi (dalam bit), jumlah alamat, ukuran berbagai bidang, dan sebagainya.
Register: Jumlah register CPU yang dapat dirujuk dengan instruksi, dan penggunaannya.
Mengalamatkan: Mode atau mode dimana alamat dari operan ditentukan
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 dan 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.
REFRENSI
Komentar
Posting Komentar