Programmed
I/O
Pada
I/O terprogram, data saling dipertukarkan antara CPU dan modul I/O. CPU
mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung,
seperti pemindahan data, pengiriman perintah baca maupun tulis, dan monitoring perangkat.
Kelemahan
teknik ini adalah CPU akan menunggu sampai operasi I/O selesai dilakukan modul
I/O sehingga akan membuang waktu, apalagi CPU lebih cepat proses operasinya.
Dalam teknik ini, modul I/O tidak dapat melakukan interupsi kepada CPU terhadap
proses – proses yang diinteruksikan padanya. Seluruh proses merupakan tanggung
jawab CPU sampai operasi lengkap dilaksanakan.
Interup 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.
Langkah penanganan interup
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:
a. Status
prosesor, berisi register yang dipanggil PSW (program status word).
b. Lokasi
intruksi berikutnya yang akan dieksekusi. Informasi tersebut kemudian disimpan
dalam stack pengontrol sistem.
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 sempai selesai.
7.
Apabila
pengolahan interupsi selasai,
CPU akan memanggil
kembali informasi yang telah disimpan pada stack pengontrol
untuk meneruskan operasi sebelum interupsi.
Metode penanganan interup
1.
Multiple Interrupt Lines
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.
2.
Software Poll
Alternatif
lainnya adalah menggunakan software poll. Prosesnya, apabila CPU mengetahui adanya sebuah interupsi, maka CPU akan
menuju ke routine layanan interupsi yang tugasnya melakukan poll seluruh modul
I/O untuk menentukan modul yang melakukan interupsi. Kerugian software poll adalah
memerlukan waktu yang lama karena harus mengidentifikasi seluruh modul untuk
mengetahui modul I/O yang melakukan interupsi.
3.Daisy
Chain
Teknik
yang lebih efisien adalah daisy chain, yang menggunakan hardware poll.
Seluruh modul I/O tersambung dalam saluran interupsi CPU secara melingkar (chain).
Apabila ada permintaan interupsi, maka CPU akan menjalankan sinyal acknowledge
yang berjalan pada saluran interupsi sampai menjumpai modul I/O yang
mengirimkan interupsi.
4.
Arbitrasi Bus
Teknik
berikutnya adalah arbitrasi bus. Dalam metode ini, pertama – tama modul
I/O memperoleh kontrol bus sebelum modul ini menggunakan saluran permintaan
interupsi. Dengan demikian hanya akan terdapat sebuah modul I/O yang dapat
melakukan interupsi.
DMA
Teknik yang dijelaskan sebelumnya yaitu I/O
terprogram dan Interrupt-Driven I/O memiliki kelemahan, yaitu proses yang
terjadi pada modul I/O masih melibatkan CPU secara langsung. Untuk itu dikembangkan teknik yang lebih baik, dikenal
dengan Direct Memory Access (DMA).
Direct memory access (DMA) adalah suatu alat pengendali khusus disediakan
untuk memungkinkan transfes blok data langsung antar perangkat eksternal dan
memori utama, tanpa intervensi terus menerus dari prosesor.
Prinsip kerja DMA adalah CPU akan mendelegasikan
kerja I/O kepada DMA, CPU hanya akan terlibat pada awal proses untuk memberikan
instruksi lengkap pada DMA dan akhir proses saja. Dengan demikian CPU dapat
menjalankan proses lainnya tanpa banyak terganggu dengan interupsi
0 comments:
Speak up your mind
Tell us what you're thinking... !