Set Instruksi
MATERI
VI
Set
Instruksi
A. Karakteristik Instruksi
Mesin
Instruction set atau set instruksi merupakan kumpulan berbagai jenis instruksi dari CPU tertentu. Sedangkan elemen instruksi mesin merupakan setiap instruksi harus berisi informasi yang dibutuhkan oleh CPU untuk eksekusi. Elemen instruksi biasanya terdiri atas :
·
Kode operasi berfungsi sebagai penentu operasi
·
Sumber operan sebagai referensi data
·
Hasil operand sebagai referensi data
·
Instruksi selanjutnya yang akan
dieksekusi (bisa diberikan dalam instruksi saat ini atau secara implisit diberikan - instruksi selanjutnya
setelah instruksi saat ini).
Operan sumber dan operan hasil dapat berada di tiga bagian
yaitu memori utama atau memori virtual yang
merupakan alamat yang harus diberikan ketika sebuah instruksi dibuat. Selanjutnya yang kedua adalah register CPU baik
register eksplisit maupun implisit. Termasuk jenis register eksplisit adalah pada
penggunaan dua atau tiga register, sedangkan instruksi dengan satu register (satu instruksi operan), kemungkinan
besar yang dilibatkan adalah register implisit
(biasanya untuk operasi aritmatika) akumulator secara implisit dihubungkan
sebagai operan hasil. Jenis operan sumber
dan hasil yang ketika adalah perangkat I/O yang digunakan untuk instruksi I/O. Instruksi harus
menentukan perangkat I/O atau modul yang digunakan, atau pada kasus memory-mapped I/O maka operan tujuan
adalah lokasi memori lain.
Sementara itu, seperti yang dipelajari pada mesin IAS,
instruksi biasanya diwakili dengan pernyataan-pernyataan
yang sifatnya mudah dipahami atau mudah diingat oleh manusia (mnemonik). Beberapa contoh instruksi adalah sebagai
berikut :
B. Tipe Instruksi dan
Jumlah Alamat
Tipe-tipe instruksi pada mesin komputer terbagi atas empat jenis yang meliputi instruksi untuk pengolahan data aritmatika dan instruksi logika, penyimpanan data yang merupakan instruksi memori, pergerakan Data dari dan menuju I/O atau biasa disebut sebagai instruksi I/O, Kontrol atau pengendalian yang merupakan instruksi pengujian dan instruksi cabang serta aritmatika yang mampu memberikan kemampuan komputasi. Jumlah alamat pada instruksi menunjukkan jumlah operan yang dapat dilibatkan dalam operasi tertentu: bisa jadi satu, dua atau tiga, atau bahkan nol (stack machine).
Contoh Instruction Set pada mesin DLX
(Hennessy & Patterson) adalah ADD R1, R2, R3 (instruksi RR) atau ADD R1, R2, A (instrruksi
RX). Kemudian, contoh lain untuk instruksi yang melibatkan tiga alamat operan adalah
sebagai berikut. Buatlah set instruksi atau program untuk mengeksekusi persamaan Y = (A-B) / (C + D
* E) dengan menggunakan tiga alamat instruksi:
Program aritmatika diatas hanya terdiri atas empat set instruksi, dalam program ini terlihat bahwa word length untuk alamat operan lebih panjang ketika menggunka tiga alamat yang terlibat sekaligus dalam setiap instruksi mesin. Sedangkan instruksi yang melibatkan dua buah alamat untuk permasalahan yang sama yaitu Y= (A-B) / (C + D * E) dapat dilihat pada contoh di bawah ini.
Dalam program dengan dua alamat tersebut diatas tampak bahwa program terdiri atas enam instruksi, dimana pada saat jumlah alamat yang terlibat berkurang (dua alamat, dibandingkan contoh sebelumnya tiga alamat) maka instruksi semakin panjang.Penyelesaian persamaan Y = (A-B)/(C+D*E) dengan menggunakan satu alamat instruksi dapat dilihat pada contoh program di bawah ini.
Semakin sedikit alamat instruksi maka program semakin
panjang, tampak pada contoh di atas dibutukan
delapan baris set instruksi untuk menyeesaikan satu persoalan yang sama dengan dua
contoh sebelumnya.
Jumlah set isntruksi dengan zero address paling
banyak dibandingkan dengan satu, dua atau tiga alamat. Hal yang perlu diperhatikan ketika
membat program dengan zero address instruction
adalah bahwa data yang pertama di input mauk ke stack terlebih dahulu diikuti
dengan instruksi-instruksi selanjutnya, sehingga
ketika peletakan instruksi tidak pas akan mengakibatkan program tidak berjalan sebagaimana
kebutuhan.
C. Desain set instruksi
Fakta tentang sesain set instruksi ternyata masih dalam perselisihan. Masalah desain yang mendasari perselisihan tesebut meliputi operation repertoire yang menyangkut pembahasan tentang sejauh mana tingkat kerumitan sebuah instruksi, tipe data yang menyangkut pertanyaan apakah orang membutuhkan semua jenis data, format instruksi yang berkaitan dengan format jenis tetap atau variabel kemudian ukuran panjang instruksi serta jumlah operan yang teribat. Dua pembahasan yang menjadi perselisihan selanjutnya berkaitan dengan register dan pengalamatan. Pada register ukuran seerta tujuan pemanfaatanya masih diperdebatkan termasuk pada pengalamatan tentang berapa banyak pengalamatan yang dibutuhkan beserta mode pengalamatannya. Sementara itu hal lain yang perlu diperhatikan dalam desain instruksi adalah tipe-tipe operan yang terlibat pada sebuah set instruksi. Instruksi mesin bekerja pada data dengan kategori data yang paling penting adalah alamat, angka, karakter serta data logika. Angka yang ada pada set instruksi mesin bisa dalam bentuk integer, fixed point atau floating point maupun desimal. Sedangkan karakter yang biasa digunakan dalam pengolahan data bisa dalam bentuk karakter ASCII atau EBCDIC tergantung mesinnya.
D. Format dan Mode Pengalamatan
Instruksi dirancang untuk dapat merujuk ke berbagai lokasi di memori utama. Berbagai teknik pengalamatan telah digunakan untuk mencapai akses tersebut. Pertukaran antara rentang alamat dan / atau kompleksitas perhitungan alamat sangat perlu diperhatikan. Jenis-jenis teknik pengalamatan instruksi meliputi pengalamatan segera, langsung, tidak langsung, daftar, daftar tidak langsung, perpindahan, tumpukan (stack). Sementara permasalahan yang ada terdiri atas flexibilty lokasi operan, trade off antara fleksibilitas lokasi dan kecepatan pemrosesan.
Pengaksesan alamat dengan displacement merupakan metode
yang "langka", namun masih mungkin
terjadi sebagaimana contoh ini. ADD 1050 (R1) dimana alamat dasar (asal) adalah
berada di R1 dan displacement-nya
adalah 1050. Dimana dalam instruksi dua alamat (two address instruction), akan terlihat seperti ADD
1050 (R1), R2 yang artinya tambahkan data di R2 dengan data yang alamat dasarnya ada di R1 dan
displacement-nya 1050. Tiga displacement addressing yang umum meliputi pengalamatan relative
(relative addressing), pengalamatan register dasar (base register addressing)
serta pengindeksan (indexing). Pada pengalamatan relative, alamat operan merupakan jumlah
alamat dalam instruksi ditambah isi dari program counter (PC). Pada pengalamatan register dasar,
isi base-register ditambahkan ke alamat operan dalam instruksi. Sedangkan pada skema
pengindeksan, bidang alamat instruksi ditambahkan ke isi register indeks untuk mendapatkan
alamat memori yang tepat (dari operan). Tiga skema alamat tersebut membuat register untuk menunjuk
ke beberapa segmen memori tertentu dan menggunakan
alamat operan dalam instruksi sebagai displacement.
Komentar
Posting Komentar