Interrrupt Driven
I/O
Teknik
interrupt
– driven I/O memungkinkan
proses tidak membuang – buang waktu. Prosesnya adalah
CPU mengeluarkan perintah
I/O pada modul
I/O, bersamaan perintah
I/O dijalankan modul
I/O maka
CPU akan melakukan eksekusi perintah – perintah lainnya. Apabila modul
I/O telah selesai menjalankan instruksi
yang diberikan padanya akan melakukan 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.
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 dijalankannya kemudian merespon interupsi.
3. CPU memeriksa interupsi tersebut, kalau valid maka CPU akan mengirimkan sinyal acknowledgment ke perangkat I/O untuk menghentikan interupsinya.
4. CPU mempersiapkan pengontrolan
transfer ke
routine interupsi.
Hal yang dilakukan adalah menyimpan informasi
yang diperlukan untuk melanjutkan operasi
yang tadi dijalankan sebelum adanya interupsi. Informasi
yang diperlukan berupa:
5. Status prosesor, berisi register yang dipanggil
PSW (program status word).
6. Lokasi intruksi berikutnya yang akan dieksekusi.
7. Kemudian CPU akan menyimpan PC (program counter) eksekusi sebelum interupsi ke
stack pengontrol bersama informasi
PSW. Selanjutnya mempersiapkan PC
untuk penanganan interupsi.
8. Selanjutnya CPU memproses interupsi sempai selesai.
9. Apabila pengolahan interupsi selasai, CPU akan memanggil kembali informasi yang telah disimpan pada stack pengontrol untuk meneruskan operasi sebelum interupsi. Terdapat bermacam teknik yang digunakan CPU dalam menangani program interupsi ini, diantaranya :
•Multiple
Interrupt Lines.
•Software
poll.
•Daisy
Chain.
•Arbitrasi
bus.
Teknik yang paling sederhana adalah menggunakan saluran interupsi berjumlah banyak
(Multiple Interrupt Lines) antara CPU dan modul – modul I/O. Namun tidak praktis untuk menggunakan sejumlah saluran bus atau pin CPU ke seluruh saluran interupsi modul – modul I/O.
Tidak ada komentar:
Posting Komentar