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

Postingan populer dari blog ini

Evolusi dan Kinerja Komputer

Fungsi dan Interkoneksi Komputer Secara General