Set
instruksi
(instruction
set)
merupakan
sekumpulan lengkap instruksi yang dapat dimengerti oleh sebuah CPU,
disebut juga machine code (bahasa mesin), aslinya juga berbentuk
biner atau bahasa assembly. Untuk konsumsi manusia (programmer),
biasanya
digunakan representasi yang lebih mudah dimengerti manusia.
Elemen-elemen
Instruksi.
- Operation code (Op code) : Kerjakan ini
- Source Operand reference : Terhadap isi alamat ini
- Result Operand reference : Letakkan hasilnya di alamat ini
- Next Instruction Reference :Kalau sudah selesai, selanjutnya kerjakan alamat ini
Dalam
sebuah instruksi, tidak harus semua elemen ini dicantumkan,
tergantung kebutuhan dan jenis instruksinya. Semua instruksi
dijalankan dalam CPU. Rata-rata operasi hanya membutuhkan register
sebagai tempat membaca atau menyimpan operand.
Adakalanya juga register tidak berisi operand
tapi
menunjuk ke tempat penyimpanan lainnya (memory,
cache,
modul I/O)
I.
Jenis – jenis 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 control digunakan untuk
memeriksa nilai data, status komputasi dan mencabangkan ke set
instruksi lain.
II.
Teknik Pengalamatan Desain Set Instruksi
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 register dan / atau konstanta yang terkandung dalam
instruksi mesin atau di tempat lain.
Jenis-jenis
metode pengamatan
- 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.
- 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.
- 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.
- 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
atau
referensi
atau
menangani
lebih
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.
- 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.
- 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 iteratif
- 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.
- 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).
- 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.
III.DESAIN
SET INSTRUKSI.
Desain
set instruksi merupakan masalah yang sangatkomplek 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 operasiapa saja yang disediakan, dan berapa sulito
perasinya.
- Data Types
Tipe/jenis
data yang dapat olah.
- Instruction Format
Panjangnya,
banyaknya alamat,dsb.
- Register
Referensi
:
Tidak ada komentar:
Posting Komentar