TEKNIK PENGENDALIAN I/O

TEKNIK PENGENDALIAN I/O
Ada tiga metode pengendalian masukan keluaran yang akan dibahas dalam bagian ini :
1. Programmed I/O ( I/O yang dapat diprogram)
2. Interrupt driven I/O ( I/O yang dijalankan oleh interupsi)
3. DMA/ Direct Memory Access (Akses memori langsung)
Programmed I/O ( I/O yang dapat diprogram)
Teknik ini disebut juga pemilihan saluran dimana semua pengalihan ke dan dari alat diselenggarakan oleh program. Prosesor mengirim dan meminta data, semua operasi masukan dan keluaran berada dibawah kendali program. Pengalihan harus dikoordinasi oleh suatu proses handshaking (jabat tangan).
Proses pemilihan saluran menjadi mungkin untuk dilakukan melalui penggunaan isyarat. Suatu isyarat adalah suatu bit yang bila dipasang, menunjukkan bahwa telah terjadi suatu kondisi yang memerlukan perhatian. Isyarat ini akan diperiksa terus menerus.
• Program terus berjalan lewat sejumlah pengetesan untuk menentukan apakah masukan atau keluaran dapat/ harus diselenggarakan. Bila ditemukan alat yang memerlukan pelayanan, rutin pelayanan yang sesungguhnya diaktifkan dan pemilihan saluran berlangsung lagi setelah pelayanan selesai dilakukan. Dua metode dasar penginderaan isyarat alat siap yang dipakai adalah pemakaian pintu status masukan sederhana dan pemakaian pintu status masukan pengkode prioritas.
• Metode I/O terprogram/ Pemilihan saluran ini adalah metode yang paling umum dan paling sederhana. Metode ini tidak memerlukan perangkat keras khusus dan semua pengalihan masukan keluaran dikendalikan oleh program.

INTERRUPT DRIVEN I/O ( I/O YANG DIJALANKAN OLEH INTERUPSI)
• Teknik pemilihan saluran memiliki dua keterbatasan yaitu pemborosan waktu prosesor dan lambat. Diperlukan suatu cara agar alat yang membutuhkan pelayanan dapat segera dilayani tanpa menunggu gilirannya tiba. Prosedur ini dinamakan Interupsi.
• Bila suatu alat yang ingin membutuhkan pelayanan, maka ia dapat menjalankan interupsi kepada mikroprosesor sehingga mikroprosesor akan menanggapi dan menjalankan interupsi tersebut sampai selesai dan kemudian kembali ke instruksi semula.


Alat yang mengatur permintaan interupsi kepada mikroprosesor adalah Interrupt Controller.Terdapat mode - mode interupsi yang mungkin terjadi pada Interrupt Controller :
1. Fully Nested :
Sebuah perangkat/ peripheral yang meminta interupsi diurutkan dalam prioritas mulai dari 0 (IRQ0) hingga 7 (IRQ7)
2. Rotating :
Perangkat/ peripheral yang meminta interupsi memiliki prioritas yang sama. Pada mode ini sebuah perangkat, setelah dilayani akan menerima prioritas terendah didalam kelompoknya, sehingga apabila terdapat permintaan pelayanan kembali, harus menunggu sampai ketujuh alat dilayani semua (bergiliran)
3. Special Mask :
Pada mode ini dimungkinkannya prosesor menangkal interupsi dari perangkat tertentu secara selektif. Sebagai contoh, apabila sebuah program yang ingin menjalankan alat dengan menangkal interupsi tertentu dan memunculkan interupsi lain sebagai prioritas tertinggi maka hal tersebut dapat dimungkinkan.
4. Polling :
Pada mode ini, interrupt controller menonaktifkan masukan interupsi, sehingga bekerja normal seperti pada metode pemilihan saluran. Metode ini diaktifkan bila :
DMA/ DIRECT MEMORY ACCESS (AKSES MEMORI LANGSUNG)
• Teknik Interupsi menjamin tanggapan paling cepat yang mungkin terhadap alat masukan-keluaran. Akan tetapi pelayanan ini masih melibatkan perangkat lunak. Hal ini dirasa masih kurang cepat bagi pengolahan yang membutuhkan transfer data langsung dari memori seperti Disk drive dan penyaji CRT.
• Pemecahan yang bisa dilakukan adalah mengganti perangkat lunak dengan perangkat keras. Rutin pelayanan perangkat lunak yang menyelenggarakan alih data antara memori dengan alat, digantikan oleh pemroses perangkat keras khusus yang melakukan proses alih data langsung. Pemroses tersebut dinamakan DMA Controller (DMAC).
• DMAC merupakan pemroses khusus yang dirancang untuk menyelenggarakan alih data berkecepatan tinggi antara memori dengan alat dan sebaliknya. Berikut ini cara kerja DMAC :

1. Pada saat pertama kali system dijalankan, posisi ketiga saklar keatas, sehingga Bus terhubung dari Mikroprosessor ke system Memory & Peripheral (I/O)
2. Apabila terdapat system yang membutuhkan intetraksi DMA seperti membaca sebuah file dalam disket maka diperlukan beberapa urutan perintah ke disk controller, memberitahukan bahwa data harus ditemukan dan membaca blok data yang dibutuhkan dari disket.
3. Ketika disk controller telah siap memiliki sebuah blok byte pertama data, ia mengirimkan DMA Request (DREQ) ke DMAC, jika tidak terdapat input unmasked.
4. Kemudian DMAC mengirimkan Hold Request (HRQ) ke input Mikroprosessor HOLD. Mikroprosesor menanggapinya dengan meng-ambangkan seluruh bus-nya (saklar ke posisi ambang) dan mengirim sinyal Hold Acknowledge (HLDA) pada DMAC.
5. Ketika DMA menerima sinyal HLDA, Mikroprosessor sekaligus mengalihkan saklar ke posisi bawah (DMAC). Hal ini menyebabkan tidak tersambungnya Mikroprosessor dari Bus dan menghubungkan DMAC dengan Bus.
6. DMAC mendapat kontrol penuh bus; Mengirim alamat memory dimana blok byte pertama data dari disket yang akan ditulisi ke tujuan, kemudian mengirim DMA Acknowledge (DACKX) ke disk controller untuk memberitahukan bahwa disk controller siap - siap untuk mengirim data.
7. Akhirnya DMAC mengirim sinyal MEMW & IOR. MEMW diartikan bahwa memory yang teralamatkan untuk siap-siap menerima data dan ditulisi; sedang IOR memberitahukan bahwa disk controller harus membaca blok byte pertama data untuk dikeluarkan ke data bus.
8. Bila seluruh data habis dikirimkan, DMAC melepas sinyal HRQ; sambil melepas saklar pada bus. Saklar kembali ke posisi Mikroprosessor (keatas). Mikroprosessor mengambil alih bus sampai nantinya terjadi permintaan pelayanan DMA selanjutnya. Mikroprosessor melanjutkan eksekusi program yang ditinggalkan sebelumnya.