Modul I/O Adalah interface atau central switch untuk mengendalikan satu atau lebih peripheral atau perangkat input output. Konektor mekanis berisi fungsi logik untuk komunikasi antara bus dan peripheral. Tidak hanya sekedar modul penghubung, tetapi sebuah piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral dan bus computer.
Modul I/O adalah komponen dalam system computer :
1) Bertanggung jawab atas pengontrolan sebuah perangkat luar
2) Bertanggung jawab atas pertukaran data antar perangkat luar tersebut dengaan memori utama ataupun dengan register-register CPU
3) Antarmuka internal dengan computer (CPU dengab memori utama)
4) Antarmuka internal dengan perangkat external untuk menjalankan fungsi-fungsi pengontrolan
Fungsi utama modul I/O :
1) Sebagai piranti antarmuka ke CPU dan memori ke bus system
2) Sebagai piranti antarmuka dengan peraalatan periperaal lainnyaa dengaan menggunakan link data tertentu
Fungasi modul I/O :
o Control dan timing
o Komunikasi CPU
- sebagai media komunikasi dari CPU menuju device eksternal
o Komunikasi perangkat
- sebagai media komunikasi dari device eksternal menuju CPU
o Data Buffering
- berfungsi sebagai penampung data sementara baik dari CPU/memori maupun dari peripheral peripheral
o Deteksi error
-berfungsi sebagai pendeteksi kesalahan yang ditimbulkan oleh device
Interface ke modul I/O adalah dalam bentuk signal-signal kontrol,status,dan data. Data berbentuk sekumpulan bit untuk dikirimkan ke modul I/O atau diterima dari modul I/O. control signal menentukan fungsi-fungsi yang akan dilakukan perangkat, seperti mengirimkan data ke modul I/O ( input atau read), menerima data dari modul I/O ( output / write), report status, atau membentuk fungsi kontrol tertentu ke perangkat ( misalnya, posisi head disk). signal status menandai status perangkat untuk mengirimkan data.
Control logic berkaitan dengan perangkat yang mengontrol operasi perangkat dalam memberikan respons yang berasal dari modul I/O. Transduser mengubah data dari energi listrik menjadi energi lain selama berlangsungnya output dan dari bentuk energi tertentu menjadi energi listrik selama berlangsungnya input. Umumnya, suatu buffer dikaitkan dengan transduser untuk menampung sementara data yang ditansfer diantara modul I/O dan dunia luar. Ukuran buffer yang umum adalah 8 hingga 16 bit.
1. Buffering
Tujuan utama buffering adalah mendapatkan penyesuaian data sehubungaan perbedaaan laaju transfer data dari perangkat periperaal dengan kecepatan pengolahan data CPU.
Umumnya buffering memiliki laju tranfer data dari perangkat peripheral lebih lambat dari kecepatan CPU maupun media penyimpanan. contoh nya sebuah file sedang diterima melalui modem dan ditujukan ke media penyimpanan di hard disk kecepatan modem tersebut kira-kira hanyalah 1/1000 dari pada hard disk. jadi buffer dibuat di dalam memori utama untuk mengumpulkan jumlah byte yang diterima dari modem.
2. Struktur Bus I/O
a. Saluran data
Saluran yang memberikan lintasan bagi perpindahan data antara dua modul system. Umumnya bus data terdiri dari 8,16,32 saluran, jumlah saluran dikaitkan dengan lebar bus data. Karena pada saat tertentu masing-masing saluran hanya dapat membawa 1 bit, maka jumlah saluran menentukan jumlah bit yang dapat dipindahkan pada saat tertentu. Lebar bus data merupakan factor penting dalam mentukan kinerja system secara keseluruhan. Bila bus data lebarnya 8 bit, dan setiap intruksinya dengan panjang 16 bit, maka CPU harus 2kali mengakses modul memori dalam setiap siklus intruksinya.
b. Saluran control
Bus control digunakan untuk mengontrol akses ke saluran alamat, penggunaan data dan saluran alamat. Karena data dan saluran alamat digunakan bersama oleh seluruh komponen, maka harus ada alat untuk mengontrol penggunaanya. Signal-signal control melakukan trasmisi baik perintah maupun informasi perwaktuan diantara modul-modul system.
c. Saluran alamat
Digunakan untuk menandakan sumber atau tujuan data pada bus data, misalnya CPU akan membaca sebuah word (8,16,32 bit ) data memori, maka CPU akan menaruh alamat word yang dimaksud pada saluran alamat. Lebar bus menentukan kapasitas memori maksimum system. Selain itu umumnya saluran alamat ini digunakan untuk memilih lokasi memori atau port I/O pada modul.
Terdapat berbagai macam modul I/O seiring perkembangan komputer itu sendiri, contoh yang sederhana dan fleksibel adalah Intel 8255A yang sering disebut PPI (Programmable Peripheral Interface).
Modul dihubungkan dengan bagian-bagian computer lainnya melalui saluran signal (misalnya, saluran bus system). Data yang dipindahkan ke modul dan dari modul di-buffer-kan dalam sebuah register data atau lebih. Mungkin juga terdapat sebuah register status atau lebih yang memberikan informasi status saat itu. Register status dapat juga berfungsi sebagai register control, untuk menerima informasi control secara detail dari CPU. Logic pada modul berinteraksi dengan CPU melalui sejumlah saluran control. Saluran-saluran ini digunakan oleh CPU untuk memberikan perintah ke modul I/O. beberapa saluran control dapat digunakan oleh modul I/O. modul juga dapat mengetahui dan menghasilkan alamat-alamat yang berkaitan dengan perangkat yang dikontrolnya. Setiap modul I/O memiliki alamat yang unik, atau apabila modul I/O mengontrol lebih dari sebuah perangkat eksternal, maka terdapat sekumpulan alamat yang unik. Terakhir, modul I/O terdiri dari logic yang bersifat khusus bagi interface dengan setiap perangkat yang dikontrolnya.
Klasifikasi I/O terprogram
a. Perintah control.
Perintah ini digunkan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas yang diperintahkan padanya.
b. Perintah test.
Perintah ini digunakan CPU untuk menguji berbagai kondisi status modul I/O dan peripheralnya. CPU perlu mengetahui perangkat peripheralnya dalam keadaan aktif dan siap digunakan, juga untuk mengetahui operasi – operasi I/O yang dijalankan serta mendeteksi kesalahannya.
c. Perintah read.
Perintah pada modul I/O untuk mengambil suatu paket data kemudian menaruh dalam buffer internal. Proses selanjutnya paket data dikirim melalui bus data setelah terjadi sinkronisasi data maupun kecepatan transfernya.
d. Perintah write.
Perintah ini kebalikan dari read. CPU memerintahkan modul I/O untuk mengambil data dari bus data untuk diberikan pada perangkat peripheral tujuan data tersebut.
Implementasai perintaah dalam intruksi I/O :
a. Memory-Mapped I/O
Terdapat ruang tunggal untuk lokasi memori daan perangkat I/O
CPU memperlakukan register status dan register data modul I/O sebagai lokasi memori dan menggunakan intruksi mesin yang samauntuk mengakses baik memori ataupun perangkat I/o
Konsekuensinya adalah diperlukan perangkat tunggaluntuk pembacaan dan saaluran tunggal untuk penulisan
Keuntungan dari memory-mapped I/O adalah efisien daam pemrograman, namun memakan banyak ruang memory alamat
b .Isolated I/O
Dilakukan pemisahan ruang pengalamatan bagi memory dan ruang pengalamatan bagi I/O
Dengan teknik ini diperlukan bus yang dilengkapi dengan saluran pembacaan dan penulisan memory ditambah saluran perintah output
Kesulitan isolated I/O adalah sedikitnya intruksi I/O
Interupt – Driven I/O
Interupsi adalah mekanisme penghentian atau pengalihan pengolahan instruksi dalam CPU kepada routine interupsi. Hampir semua modul memori dan (I/O) memiliki mekanisme yang dapat menginterupsi kerja CPU.
Tujuan interupsi secara umum untuk menejemen pengeksekusian routine instruksi agar efektif dan efisien antar CPU dan modul - modul I/O maupun memori. Setiap komponen komputer dapat menjalankan tugasnya secara bersamaan, tetapi kendali terletak pada CPU disamping itu kecepatan eksekusi masing - masing modul berbeda sehingga dengan adanya fungsi interupsi ini dapat sebagai sinkronisasi kerja antar modul.
Macam-macam kelas sinyal interupsi :
a. Program, yaitu interupsi yang dibangkitkan dengan beberapa kondisi yang terjadi pada hasil eksekusi program. Contohnya: arimatika overflow, pembagian nol, oparasi ilegal.
b. Timer, adalah interupsi yang dibangkitkan pewaktuan dalam prosesor. Sinyal ini memungkinkan sistem operasi menjalankan fungsi tertentu secara reguler.
c. I/O, sinyal interupsi yang dibangkitkan oleh modul I/O sehubungan pemberitahuan kondisi error dan penyelesaian suatu operasi.
d. Hardware failure, adalah interupsi yang dibangkitkan oleh kegagalan daya atau kesalahan paritas memori.
Dengan adanya mekanisme interupsi, prosesor dapat digunakan untuk mengeksekusi instruksi-instruksi lain. Saat suatu modul telah selesai menjalankan tugasnya dan siap menerima tugas berikutnya maka modul ini akan mengirimkan permintaan interupsi ke prosesor. Kemudian prosesor akan menghentikan eksekusi yang dijalankannya untuk menghandel routine interupsi. Setelah program interupsi selesai maka prosesor akan melanjutkan eksekusi programnya kembali. Saat sinyal interupsi diterima prosesor ada dua kemungkinan tindakan, yaitu interupsi diterima atau ditangguhkan dan interupsi ditolak.
Apabila interupsi diterima atau ditangguhkan, prosesor akan melakukan hal- hal dibawah ini:
a. Prosesor menangguhkan eksekusi program yang dijalankan dan menyimpan konteksnya. Tindakan ini adalah menyimpan alamat instruksi berikutnya yang akan dieksekusi dan data lain yang relevan.
b. Prosesor menyetel program counter (PC) ke alamat awal routine interrupt handler.
Untuk sistem operasi yang kompleks sangat dimungkinkan adanya interupsi ganda (multiple interrupt). Misalnya suatu komputer akan menerima permintaan interupsi saat proses pencetakan dengan printer selesai, disamping itu dimungkinkan dari saluran komunikasi akan mengirimkan permintaan interupsi setiap kali data tiba. Dalam hal ini prosesor harus menangani interupsi ganda. Dapat diambil dua buah pendekatan untuk menangani interupsi ganda ini. Pertama adalah menolak atau tidak mengizinkan interupsi lain saat suatu interupsi ditangani prosesor. Kemudian setelah prosesor selesai menangani suatu interupsi maka interupsi lain baru ditangani. Pendekatan ini disebut pengolahan interupsi berurutan / sekuensial. Pendekatan ini cukup baik dan sederhana karena interupsi ditangani dalam ututan yang cukup ketat. Kelemahan pendekatan ini adalah metode ini tidak memperhitungkan prioritas interupsi.
Pendekatan kedua adalah dengan mendefinisikan prioritas bagi interupsi dan interrupt handler mengizinkan interupsi berprioritas lebih tinggi ditangani terlebih dahulu. Pedekatan ini disebut pengolahan interupsi bersarang.
Sebagai contoh untuk mendekatan bersarang, misalnya suatu sistem memiliki tiga perangkat I/O: printer, disk, dan saluran komunikasi, masing-masing prioritasnya 2, 4 dan 5. Pada awal sistem melakukan pencetakan dengan printer, saat itu terdapat pengiriman data pada saluran komunikasi sehingga modul komunikasi meminta interupsi. Proses selanjutnya adalah pengalihan eksekusi interupsi mudul komunikasi, sedangkan interupsi printer ditangguhkan. Saat pengeksekusian modul komunikasi terjadi interupsi disk, namun karena prioritasnya lebih rendah maka interupsi disk ditangguhkan. Setelah interupsi modul komunikasi selesai akan dilanjutkan interupsi yang memiliki prioritas lebih tinggi, yaitu disk. Bila interupsi disk selesai dilanjutkan eksekusi interupsi printer. Selanjutnya dilanjutkan eksekusi program utama.
1. Metode 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.
Cara kerja teknik interupsi di sisi modul I/O adalah modul I/O menerima perintah, misal read. Kemudian modul I/O melaksanakan perintah pembacaan dari peripheral dan meletakkan paket data ke register data modul I/O, selanjutnya modul mengeluarkan sinyal interupsi ke CPU melalui saluran kontrol. Kemudian modul 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 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.
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. 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.
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.
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.
2. Contoh Pengontrol Interrupt pada Chip Intel 8259A
Intel mengeluarkan chips 8259A yang dikonfigurasikan sebagai interrupt arbiter pada mikroprosesor Intel 8086. Intel 8259A melakukan manajemen interupsi modul - modul I/O yang tersambung padanya. Chips ini dapat diprogram untuk menentukan prioritas modul I/O yang lebih dulu ditangani CPU apabila ada permintaan interupsi yang bersamaan. Berikut mode – mode interupsi yang mungkin terjadi :
•Fully Nested: permintaan interupsi dengan prioritas mulai 0 (IR0) hingga 7(IR7).
•Rotating: bila sebuah modul telah dilayani interupsinya akan menempati prioritas terendah.
•Special Mask: prioritas diprogram untuk modul I/O tertentu secara spesial.
Contoh modul I/O yang menggunakan I/O terprogram dan interrupt driven I/O adalah Intel 8255A Programmable Peripheral Interface (PPI). Intel 8255A dirancang untuk keperluan mikroprosesor 8086.
3. Kelemahan I/O terprogram dan Interrupt Driven I/O
Proses yang terjadi pada modul I/O masih melibatkan CPU secara langsung, berimplikasi pada :
a.Kelajuan transfer I/O yang tergantung kecepatan operasi CPU.
b.Kerja CPU terganggu karena adanya interupsi secara langsung
4. Elemen-elemen pada sistem Interrupt- Driven I/O
a.SIM : Untuk menghalangi hardware interrupt
b.Bit MSE : Untuk mengaktifkan pemasangan mask
c.RIM : Untuk membaca status dari interrupt masking
d.PC : Untuk menghitung indeks dari stack yang sedang diproses
e.RS : Untuk menyimpan byte atau opcode instruksi
f.Informasi yang berkenaan dengan program yang diinterupsi
Link Download PDF :
https://drive.google.com/open?id=0B6RNZhBuVsSuQkJHR2dfdE42b1U
Read more ...
Modul I/O adalah komponen dalam system computer :
1) Bertanggung jawab atas pengontrolan sebuah perangkat luar
2) Bertanggung jawab atas pertukaran data antar perangkat luar tersebut dengaan memori utama ataupun dengan register-register CPU
3) Antarmuka internal dengan computer (CPU dengab memori utama)
4) Antarmuka internal dengan perangkat external untuk menjalankan fungsi-fungsi pengontrolan
Fungsi utama modul I/O :
1) Sebagai piranti antarmuka ke CPU dan memori ke bus system
2) Sebagai piranti antarmuka dengan peraalatan periperaal lainnyaa dengaan menggunakan link data tertentu
Fungasi modul I/O :
o Control dan timing
o Komunikasi CPU
- sebagai media komunikasi dari CPU menuju device eksternal
o Komunikasi perangkat
- sebagai media komunikasi dari device eksternal menuju CPU
o Data Buffering
- berfungsi sebagai penampung data sementara baik dari CPU/memori maupun dari peripheral peripheral
o Deteksi error
-berfungsi sebagai pendeteksi kesalahan yang ditimbulkan oleh device
Interface ke modul I/O adalah dalam bentuk signal-signal kontrol,status,dan data. Data berbentuk sekumpulan bit untuk dikirimkan ke modul I/O atau diterima dari modul I/O. control signal menentukan fungsi-fungsi yang akan dilakukan perangkat, seperti mengirimkan data ke modul I/O ( input atau read), menerima data dari modul I/O ( output / write), report status, atau membentuk fungsi kontrol tertentu ke perangkat ( misalnya, posisi head disk). signal status menandai status perangkat untuk mengirimkan data.
Control logic berkaitan dengan perangkat yang mengontrol operasi perangkat dalam memberikan respons yang berasal dari modul I/O. Transduser mengubah data dari energi listrik menjadi energi lain selama berlangsungnya output dan dari bentuk energi tertentu menjadi energi listrik selama berlangsungnya input. Umumnya, suatu buffer dikaitkan dengan transduser untuk menampung sementara data yang ditansfer diantara modul I/O dan dunia luar. Ukuran buffer yang umum adalah 8 hingga 16 bit.
1. Buffering
Tujuan utama buffering adalah mendapatkan penyesuaian data sehubungaan perbedaaan laaju transfer data dari perangkat periperaal dengan kecepatan pengolahan data CPU.
Umumnya buffering memiliki laju tranfer data dari perangkat peripheral lebih lambat dari kecepatan CPU maupun media penyimpanan. contoh nya sebuah file sedang diterima melalui modem dan ditujukan ke media penyimpanan di hard disk kecepatan modem tersebut kira-kira hanyalah 1/1000 dari pada hard disk. jadi buffer dibuat di dalam memori utama untuk mengumpulkan jumlah byte yang diterima dari modem.
2. Struktur Bus I/O
a. Saluran data
Saluran yang memberikan lintasan bagi perpindahan data antara dua modul system. Umumnya bus data terdiri dari 8,16,32 saluran, jumlah saluran dikaitkan dengan lebar bus data. Karena pada saat tertentu masing-masing saluran hanya dapat membawa 1 bit, maka jumlah saluran menentukan jumlah bit yang dapat dipindahkan pada saat tertentu. Lebar bus data merupakan factor penting dalam mentukan kinerja system secara keseluruhan. Bila bus data lebarnya 8 bit, dan setiap intruksinya dengan panjang 16 bit, maka CPU harus 2kali mengakses modul memori dalam setiap siklus intruksinya.
b. Saluran control
Bus control digunakan untuk mengontrol akses ke saluran alamat, penggunaan data dan saluran alamat. Karena data dan saluran alamat digunakan bersama oleh seluruh komponen, maka harus ada alat untuk mengontrol penggunaanya. Signal-signal control melakukan trasmisi baik perintah maupun informasi perwaktuan diantara modul-modul system.
c. Saluran alamat
Digunakan untuk menandakan sumber atau tujuan data pada bus data, misalnya CPU akan membaca sebuah word (8,16,32 bit ) data memori, maka CPU akan menaruh alamat word yang dimaksud pada saluran alamat. Lebar bus menentukan kapasitas memori maksimum system. Selain itu umumnya saluran alamat ini digunakan untuk memilih lokasi memori atau port I/O pada modul.
Terdapat berbagai macam modul I/O seiring perkembangan komputer itu sendiri, contoh yang sederhana dan fleksibel adalah Intel 8255A yang sering disebut PPI (Programmable Peripheral Interface).
Modul dihubungkan dengan bagian-bagian computer lainnya melalui saluran signal (misalnya, saluran bus system). Data yang dipindahkan ke modul dan dari modul di-buffer-kan dalam sebuah register data atau lebih. Mungkin juga terdapat sebuah register status atau lebih yang memberikan informasi status saat itu. Register status dapat juga berfungsi sebagai register control, untuk menerima informasi control secara detail dari CPU. Logic pada modul berinteraksi dengan CPU melalui sejumlah saluran control. Saluran-saluran ini digunakan oleh CPU untuk memberikan perintah ke modul I/O. beberapa saluran control dapat digunakan oleh modul I/O. modul juga dapat mengetahui dan menghasilkan alamat-alamat yang berkaitan dengan perangkat yang dikontrolnya. Setiap modul I/O memiliki alamat yang unik, atau apabila modul I/O mengontrol lebih dari sebuah perangkat eksternal, maka terdapat sekumpulan alamat yang unik. Terakhir, modul I/O terdiri dari logic yang bersifat khusus bagi interface dengan setiap perangkat yang dikontrolnya.
Klasifikasi I/O terprogram
a. Perintah control.
Perintah ini digunkan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas yang diperintahkan padanya.
b. Perintah test.
Perintah ini digunakan CPU untuk menguji berbagai kondisi status modul I/O dan peripheralnya. CPU perlu mengetahui perangkat peripheralnya dalam keadaan aktif dan siap digunakan, juga untuk mengetahui operasi – operasi I/O yang dijalankan serta mendeteksi kesalahannya.
c. Perintah read.
Perintah pada modul I/O untuk mengambil suatu paket data kemudian menaruh dalam buffer internal. Proses selanjutnya paket data dikirim melalui bus data setelah terjadi sinkronisasi data maupun kecepatan transfernya.
d. Perintah write.
Perintah ini kebalikan dari read. CPU memerintahkan modul I/O untuk mengambil data dari bus data untuk diberikan pada perangkat peripheral tujuan data tersebut.
Implementasai perintaah dalam intruksi I/O :
a. Memory-Mapped I/O
Terdapat ruang tunggal untuk lokasi memori daan perangkat I/O
CPU memperlakukan register status dan register data modul I/O sebagai lokasi memori dan menggunakan intruksi mesin yang samauntuk mengakses baik memori ataupun perangkat I/o
Konsekuensinya adalah diperlukan perangkat tunggaluntuk pembacaan dan saaluran tunggal untuk penulisan
Keuntungan dari memory-mapped I/O adalah efisien daam pemrograman, namun memakan banyak ruang memory alamat
b .Isolated I/O
Dilakukan pemisahan ruang pengalamatan bagi memory dan ruang pengalamatan bagi I/O
Dengan teknik ini diperlukan bus yang dilengkapi dengan saluran pembacaan dan penulisan memory ditambah saluran perintah output
Kesulitan isolated I/O adalah sedikitnya intruksi I/O
Interupt – Driven I/O
Interupsi adalah mekanisme penghentian atau pengalihan pengolahan instruksi dalam CPU kepada routine interupsi. Hampir semua modul memori dan (I/O) memiliki mekanisme yang dapat menginterupsi kerja CPU.
Tujuan interupsi secara umum untuk menejemen pengeksekusian routine instruksi agar efektif dan efisien antar CPU dan modul - modul I/O maupun memori. Setiap komponen komputer dapat menjalankan tugasnya secara bersamaan, tetapi kendali terletak pada CPU disamping itu kecepatan eksekusi masing - masing modul berbeda sehingga dengan adanya fungsi interupsi ini dapat sebagai sinkronisasi kerja antar modul.
Macam-macam kelas sinyal interupsi :
a. Program, yaitu interupsi yang dibangkitkan dengan beberapa kondisi yang terjadi pada hasil eksekusi program. Contohnya: arimatika overflow, pembagian nol, oparasi ilegal.
b. Timer, adalah interupsi yang dibangkitkan pewaktuan dalam prosesor. Sinyal ini memungkinkan sistem operasi menjalankan fungsi tertentu secara reguler.
c. I/O, sinyal interupsi yang dibangkitkan oleh modul I/O sehubungan pemberitahuan kondisi error dan penyelesaian suatu operasi.
d. Hardware failure, adalah interupsi yang dibangkitkan oleh kegagalan daya atau kesalahan paritas memori.
Dengan adanya mekanisme interupsi, prosesor dapat digunakan untuk mengeksekusi instruksi-instruksi lain. Saat suatu modul telah selesai menjalankan tugasnya dan siap menerima tugas berikutnya maka modul ini akan mengirimkan permintaan interupsi ke prosesor. Kemudian prosesor akan menghentikan eksekusi yang dijalankannya untuk menghandel routine interupsi. Setelah program interupsi selesai maka prosesor akan melanjutkan eksekusi programnya kembali. Saat sinyal interupsi diterima prosesor ada dua kemungkinan tindakan, yaitu interupsi diterima atau ditangguhkan dan interupsi ditolak.
Apabila interupsi diterima atau ditangguhkan, prosesor akan melakukan hal- hal dibawah ini:
a. Prosesor menangguhkan eksekusi program yang dijalankan dan menyimpan konteksnya. Tindakan ini adalah menyimpan alamat instruksi berikutnya yang akan dieksekusi dan data lain yang relevan.
b. Prosesor menyetel program counter (PC) ke alamat awal routine interrupt handler.
Untuk sistem operasi yang kompleks sangat dimungkinkan adanya interupsi ganda (multiple interrupt). Misalnya suatu komputer akan menerima permintaan interupsi saat proses pencetakan dengan printer selesai, disamping itu dimungkinkan dari saluran komunikasi akan mengirimkan permintaan interupsi setiap kali data tiba. Dalam hal ini prosesor harus menangani interupsi ganda. Dapat diambil dua buah pendekatan untuk menangani interupsi ganda ini. Pertama adalah menolak atau tidak mengizinkan interupsi lain saat suatu interupsi ditangani prosesor. Kemudian setelah prosesor selesai menangani suatu interupsi maka interupsi lain baru ditangani. Pendekatan ini disebut pengolahan interupsi berurutan / sekuensial. Pendekatan ini cukup baik dan sederhana karena interupsi ditangani dalam ututan yang cukup ketat. Kelemahan pendekatan ini adalah metode ini tidak memperhitungkan prioritas interupsi.
Pendekatan kedua adalah dengan mendefinisikan prioritas bagi interupsi dan interrupt handler mengizinkan interupsi berprioritas lebih tinggi ditangani terlebih dahulu. Pedekatan ini disebut pengolahan interupsi bersarang.
Sebagai contoh untuk mendekatan bersarang, misalnya suatu sistem memiliki tiga perangkat I/O: printer, disk, dan saluran komunikasi, masing-masing prioritasnya 2, 4 dan 5. Pada awal sistem melakukan pencetakan dengan printer, saat itu terdapat pengiriman data pada saluran komunikasi sehingga modul komunikasi meminta interupsi. Proses selanjutnya adalah pengalihan eksekusi interupsi mudul komunikasi, sedangkan interupsi printer ditangguhkan. Saat pengeksekusian modul komunikasi terjadi interupsi disk, namun karena prioritasnya lebih rendah maka interupsi disk ditangguhkan. Setelah interupsi modul komunikasi selesai akan dilanjutkan interupsi yang memiliki prioritas lebih tinggi, yaitu disk. Bila interupsi disk selesai dilanjutkan eksekusi interupsi printer. Selanjutnya dilanjutkan eksekusi program utama.
1. Metode 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.
Cara kerja teknik interupsi di sisi modul I/O adalah modul I/O menerima perintah, misal read. Kemudian modul I/O melaksanakan perintah pembacaan dari peripheral dan meletakkan paket data ke register data modul I/O, selanjutnya modul mengeluarkan sinyal interupsi ke CPU melalui saluran kontrol. Kemudian modul 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 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.
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. 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.
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.
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.
2. Contoh Pengontrol Interrupt pada Chip Intel 8259A
Intel mengeluarkan chips 8259A yang dikonfigurasikan sebagai interrupt arbiter pada mikroprosesor Intel 8086. Intel 8259A melakukan manajemen interupsi modul - modul I/O yang tersambung padanya. Chips ini dapat diprogram untuk menentukan prioritas modul I/O yang lebih dulu ditangani CPU apabila ada permintaan interupsi yang bersamaan. Berikut mode – mode interupsi yang mungkin terjadi :
•Fully Nested: permintaan interupsi dengan prioritas mulai 0 (IR0) hingga 7(IR7).
•Rotating: bila sebuah modul telah dilayani interupsinya akan menempati prioritas terendah.
•Special Mask: prioritas diprogram untuk modul I/O tertentu secara spesial.
Contoh modul I/O yang menggunakan I/O terprogram dan interrupt driven I/O adalah Intel 8255A Programmable Peripheral Interface (PPI). Intel 8255A dirancang untuk keperluan mikroprosesor 8086.
3. Kelemahan I/O terprogram dan Interrupt Driven I/O
Proses yang terjadi pada modul I/O masih melibatkan CPU secara langsung, berimplikasi pada :
a.Kelajuan transfer I/O yang tergantung kecepatan operasi CPU.
b.Kerja CPU terganggu karena adanya interupsi secara langsung
4. Elemen-elemen pada sistem Interrupt- Driven I/O
a.SIM : Untuk menghalangi hardware interrupt
b.Bit MSE : Untuk mengaktifkan pemasangan mask
c.RIM : Untuk membaca status dari interrupt masking
d.PC : Untuk menghitung indeks dari stack yang sedang diproses
e.RS : Untuk menyimpan byte atau opcode instruksi
f.Informasi yang berkenaan dengan program yang diinterupsi
Link Download PDF :
https://drive.google.com/open?id=0B6RNZhBuVsSuQkJHR2dfdE42b1U