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:
  1. Perangkat I/O akan mengirimkan sinyal interupsi ke CPU.
  2. CPU menyelesaikan operasi yang sedang dijalankan kemudian merespon interupsi.
  3. CPU memeriksa interupsi tersebut, kalau valid maka CPU akan mengirimkan sinyal acknoledgement ke perangkat I/O untuk menghentikan interupsinya.
  4. 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
  5. Kemudian CPU akan menyimpan PC (Program Counter) eksekusi sebelum interupsi ke stack pengontrol bersama informasi PSW. Selanjutnya mempersiapkan PC untuk penanganan interupsi.
  6. Selanjutnya CPU memproses interupsi sampai selesai.
  7. 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