Interrupt – Driven I/O
Teknik
interupt driven I/O memungkinkan proses memungkinkan proses tidak
membuang-buang waktu. Prosesnya adalah CPU mengeluarkan perintah I/O
pada modul I/O, bersamaan perintah I/O dijalankan oleh modul I/O, maka
CPU melakukan eksekusi perintah-perintah lainnya. Apabila modul I/O
telas selesai menjalankan instruksi yang diberikan padanya, maka modul
I/O tersebut kemudian akan memberikan interupsi pada CPU bahwa tugasnya
telah selesai.
Dalam teknik ini kendali perintah masih menjadi tanggung jawab CPU, baik
pengambilan perintah dari memori maupun pelaksanaan isi perintah
tersebut. Terdapat selangkah kemajuan dari teknik sebelumnya, yaitu CPU
melakukan multitasking beberapa perintah sekaligus sehingga tidak ada
waktu tunggu bagi CPU.
Cara kerja teknik interupsi di sisi modul I/O adalah modul I/O menerima perintah, misalnya read.
Kemudian modul I/O melaksanakan perintah pembacaan dari periperhal dan
meletakkan paket data ke register data modul I/O, selanjutnya modul
mengeluarkan sinyal interupsi ke CPU melalui saluran kontrol. Kemudian
mosul menunggu datanya diminta CPU. Saat permintaan terjadi, modul
meletakkan data pada bus data dan modul siap menerima perintah
selanjutnya.
Pengolahan interupsi saat perangkat I/O telah menyelesaikan sebuah operasi I/O adalah sebagai berikut:
- Perangkat I/O akan mengirimkan sinyal interupsi ke CPU.
- CPU menyelesaikan operasi yang sedang dijalankan kemudian merespon interupsi.
- CPU memeriksa interupsi tersebut, kalau valid maka CPU akan mengirimkan sinyal acknoledgement ke perangkat I/O untuk menghentikan interupsinya.
- CPU mempersiapkan pengontrolan transfer routine interupsi. Hal yang dilakukan adalah menyimpan informasi yang diperlukan untuk melanjutkan operasi yang tadi dijalankan sebulum adanya interupsi. Informasi yang diperlukan berupa : Status Processor, berisi register yang dipanggil PSW (Program Status Word) dan Lokasi intruksi berikutnya yang akan dieksekusi
- Kemudian CPU akan menyimpan PC (Program Counter) eksekusi sebelum interupsi ke stack pengontrol bersama informasi PSW. Selanjutnya mempersiapkan PC untuk penanganan interupsi.
- Selanjutnya CPU memproses interupsi sampai selesai.
- Apabila pengolahan interupsi selesai, CPU akan memanggil kembali informasi yang telah disimpan pada stack pengontrol untuk meneruskan operasi sebelum interupsi.
Terdapat bermacam teknik yang digunakan CPU untuk menangani interupsi
ini diantaranya adalah Multiple interupt lines, Software poll, Daisy
Chain, Arbitrasi bus. Teknik yang paling sederhana adalah menggunakan
saluran interupsi berjumlah banyak (Multiple Interupt Lines) antara CPU
dengan modul-modul I/O. Namun tidak praktis untuk menggunakan sejumlah
saluran interupsi modul – modul I/O.
Alternatif lainnya menggunakan software poll. Prosesnya apabila CPU
mengetahui adanya interupsi, maka CPU akan menuju ke routine layanan
interupsi yang tugasnya melakkukan poll seluruh modul I/O untuk
menentukan modul yang akan melakukan interupsi. Kerugian software poll
adalah memerlukan waktu yang lama karen aharus mengidentifikasi seluruh
modul untuk mengetahui modul I/O yang melakukan interupsi.
Teknik yang lebih efisien adalah daisy chain, yang menggunakan hardware
poll. Seluruh modul yang tersambung dalam saluran interupsi CPU secara
melingkar (chain). Apabila ada permintaan interupsi, maka CPU akan
menjalankan sinyal acknoledgement yang berjalan pada saluran interupsi
sampai menjumpai modul I/O yang mengirimkan interupsi.
Teknik berikutnya adalah arbitrasi bus. Dalam metode ini, pertama-tama
modul I/O memperoleh kontrol bus sebelum modul sebelum modul ini
menggunakan saluran permintaan interupsi. Dengan demikian hanya akan
terdapat sebuah modul I/O yang dapat melakukan interupsi.
Tidak ada komentar