INSTRUKSI
Mahammad Wafi 09.16
1. Komponen Sistem Komputer
Secara garis besar sistem komputer tersusun dari 3 (tiga) komponen utama, yaitu :
CPU (Central Processing Unit) atau Prosesor, yang terdiri dari: ALU (Arithmetic and Logic Unit),
Register dan Control Unit
Memory
I/O Device
Isi memori dapat diakses berdasarkan alamatnya, tanpa memperdulikan type data atau instruksi yang
dikandungnya
Eksekusi instruksi dilakukan secara berurutan, mulai dari instruksi yang ditulis pada lokasi awal
memori , kemudian lokasi berikutnya dan seterusnya sampai akhir program
Secara umum, yang dilakukan prosesor adalah mengambil instruksi dari memori, kemudian
menterjemahkan istruksi tersebut menjadi aksi untuk transfer maupun olah data dalam ALU. Gambar
2.2. memperlihatkan skema hal tersebut.
Gambar 2.3 memperlihatkan siklus instruksi yang secara garis besar terdiri dari tahap
pengambilan (fetch cycle) dan tahap eksekusi (execution cycle). Sedangkan Gambar 2.4 berisi
diagram keadaan (state diagram ) yang merupakan rincian siklus eksekusi instruksi.
Gambar 2.5 memperlihatkan contoh siklus eksekusi sebuah instruksi yang terdiri dari 6 tahap,
yaitu :
1. Karena PC (Program Counter) berisi angka 300, maka instruksi yang akan diambil adalah instruksi
yang terletak di memori alamat 300, yaitu instruksi dengan kode 1940. Instruksi tersebut diambil dari
memori kemudian disimpan di register instruksi (Instruction Register).
2. Misalkan kode 1940 merupakan instruksi dengan kode operasi (Operation Code, opcode) 1, diikuti
dengan 940 yang merupakan alamat operand. Opcode 1 berarti instruksi untuk mengcopy data dari
alamat operand (dalam hal ini 940) ke akumulator. Maka data yang terletak di alamat 940 dicopy ke
accumulator untuk diproses dalam siklus eksekusi ini.
3. Setelah itu isi PC ditambah satu (incremented) sehingga isinya menjadi 301. Artinya, instruksi
berikutnya yang harus diambil dari memori dan dieksekusi terletak di memori alamat 301, yaitu
instruksi dengan kode 5941. Instruksi tersebut mengandung opcode 5 dan alamat operand 941.
4. Karena 5 berarti penjumlahan antara isi akumulator dengan isi memori yang alamatnya diberikan di
sebelah angka 5, maka isi akumulator dijumlahkan dengan isi memori alamat 941. Kemudian hasil
penjumlahannya dikembalikan ke akumulator.
5. Setelah PC ditambah satu, maka isinya menjadi 302, sehingga instruksi berikutnya yang diambil dari
memori adalah 2941, yaitu opcode 2 dan operand 941.
6. Arti 2941 adalah perintah untuk mengcopy isi akumulator ke memori alamat 941.
Gambar 2.5. Contoh Eksekusi Program
3. Interupsi (Interrupt)
Dalam proses eksekusi program, dikenal istilah interupsi, yaitu mekanisme pengalihan
kendali CPU dari program utama atau eksekusi normal ke program subrutin karena interupsi
dari suatu modul I/O. Biasanya I/O device ini 1 sampai 10 kali lebih lambat dari CPU, sehingga
sangat tidak efisien jika CPU harus menunggunya tanpa melakukan operasi apapun. Selama
menunggu I/O device tersebut, CPU dapat melakukan operasi eksekusi program normal. Tetapi
ketika terjadi interupsi, eksekusi normal tersebut dihentikan sementara untuk melayani
interupsi berupa eksekusi program atau instruksi lain. Gambar 2.6. memperlihatkan alur
kendali kendali eksekusi program dengan dan tanpa interupsi. Pada gambar (a) terlihat bahwa
pengalihan kendali eksekusi dilakukan karena opcode instruksi terakhir, dalam hal ini instruksi
CALL, bukan karena dicegat oleh interupsi. Sedangkan pada gambar (b) dan (c), pengalihan
kendali eksekusi disebabkan oleh interupsi. Perbedaan gambar (b) dengan (c) adalah sebagai
berikut. Pada short I/O wait, penundaan eksekusi program (program suspending) dapat terjadi
di mana saja pada akhir eksekusi instruksi. Gambar 2.7. memperlihatkan proses ini lebih rinci.
Sedangkan pada Long I/O wait (lihat juga gambar 2.8.), program suspending hanya boleh
terjadi pada saat-saat tertentu saja, yaitu pada akhir potongan program, bukan pada akhir
eksekusi instruksi saat terjadinya interupsi.
Instruksi yang terbaru diabaikan (dengan cara disable interrupt) sampai proses
eksekusi ISR selesai. Misal pada mikrokontroler Motorolla MC68HC11.
Identifikasi dan pelayanan interupsi dilakukan hanya jika interupsi terbaru memiliki
prioritas lebih tinggi dari interupsi yang sedang dilayani. Misal pada prosesor Intel
8085.
Gambar 2.11. memperlihatkan skema eksekusi program yang disela oleh 2
interupsi. Kedua ISR dieksekusi secara berurutan (sequential), sebagaimana terlihat
pada gambar (a). Sedangkan gambar (b) memperlihatkan skema eksekusi yang disela
oleh 1 interupsi, kemudian ketika ISR pertama dieksekusi, disela lagi oleh interupsi
berikutnya yang memiliki prioritas lebih tinggi.