BAB VIII

TEKNIK INPUT DAN OUTPUT (I/O)

Terdapat tiga buah teknik dalam operasi I/O, yaitu: I/O terprogram, interrupt – driven I/O, dan DMA (Direct Memory Access). Ketiganya memiliki keunggulan maupun kelemahan, yang penggunaannya disesuaikan sesuai unjuk kerja masing – masing teknik.
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.
Untuk melaksanakan perintah – perintah I/O, CPU akan mengeluarkan sebuah alamat bagi modul I/O dan perangkat peripheralnya sehingga terspesifikasi secara khusus dan sebuah perintah I/O yang akan dilakukan. Terdapat empat klasifikasi perintah I/O, yaitu:
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.

Dalam teknik I/O terprogram, terdapat dua macam inplementasi perintah I/O yang tertuang dalam instruksi I/O, yaitu: memory-mapped I/O dan isolated I/O.
ü  Dalam memory-mapped I/O, terdapat ruang tunggal untuk lokasi memori dan perangkat I/O. CPU memperlakukan register status dan register data modul I/O sebagai lokasi memori dan menggunakan instruksi mesin yang sama untuk mengakses baik memori maupun perangkat I/O  Konskuensinya adalah diperlukan saluran tunggal untuk pembacaan dan saluran tunggal untuk penulisan. Keuntungan memory-mapped I/O adalah efisien dalam pemrograman, namun memakan banyak ruang memori alamat.
ü  Dalam teknik isolated I/O, dilakukan pemisahan ruang pengalamatan bagi memori dan ruang pengalamatan bagi I/O. Dengan teknik ini diperlukan bus yang dilengkapi dengan saluran  pembacaan dan penulisan memori ditambah saluran perintah output. Keuntungan isolated I/O adalah sedikitnya instruksi 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.
Cara kerja teknik interupsi di sisi modul I/O adalah modul I/O menerima perintah, missal 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:
a.       Perangkat I/O akan mengirimkan sinyal interupsi ke CPU.
b.      CPU menyelesaikan operasi yang sedang dijalankannya kemudian merespon interupsi.
c.       CPU memeriksa interupsi tersebut, kalau valid maka CPU akan mengirimkan sinyal acknowledgment ke perangkat I/O untuk menghentikan interupsinya.
d.      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:
ü  Status prosesor, berisi register yang dipanggil PSW (program status word).
ü  Lokasi intruksi berikutnya yang akan dieksekusi. Informasi tersebut kemudian disimpan dalam stack pengontrol sistem.
e.       Kemudian CPU akan menyimpan PC (program counter) eksekusi sebelum interupsi ke stack pengontrol bersama informasi PSW. Selanjutnya mempersiapkan PC untuk penanganan interupsi.
f.       Selanjutnya CPU memproses interupsi sempai selesai.
g.      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.

Ada 2 jenis interupsi:
ü  lnterupsi maskable : Interupsi yang dapat didisable (dimatikan) untuk sementara dengan sebuah instruksi disable interupsi khusus.
ü  Interupsi nonmaskable : Interupsi yang tidak dapat didisable dengan instruksi perangkat lunak.

Dalam sistem komputer terdapat lebih dari satu piranti yang memerlukan pelayanan interupsi, metode untuk pelayanannya :
ü  Polling/polled interrupt
Berdasarkan urutan prioritas yang telah ditentukan sebelum piranti memerlukan interupsi. Misal : piranti A dan B mempunyai urutan prioritas A lebih Iebih dulu dari B, maka jika A dan B secara bersamaan memerlukan pelayanan interupsi, maka piranti A akan didahulukan.

ü  Vector Interupt
Peralatan yang berinterupsi diidentifikasi­kan secara Iangsung dan dihubungkan routine pelayanan vector interrupt.
INTR  = Sinyal yang dikeluarkan oleh peralatan.
INTA  = Sinyal kendali yang digunakan CPU untuk menyiapkan pelayanan interupt



Pengontrol Interrupt 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. Gambar1. menggambarkan pemakaian pengontrol interupsi 8259A. 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.


Gambar1. Pemakaian pengontrol interupsi 8559A pada 8086

Programmable Peripheral Interface Intel 8255A
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. Gambar 2. menunjukkan blok diagram Intel 8255A dan pin layout-nya.


Gambar2. Modul I/O 8255A
Bagian kanan dari blok diagram Intel 8255A adalah 24 saluran antarmuka luar, terdiri atas 8 bit port A, 8 bit port B, 4 bit port CA dan 4 bit port CB. Saluran tersebut dapat deprogram dari mikroprosesor 8086 dengan menggunakan register kontrol untuk menentukan bermacam –macam mode operasi dan konfigurasinya. Bagian kiri blok diagram merupakan interface internal dengan mikroprosesor 8086. Saluran ini terdiri atas 8 bus data dua arah (D0 – D7), bus alamat, dan bus kontrol yang terdiri atas saluran CHIP SELECT, READ, WRITE, dan RESET.
Pengaturan mode operasi pada register kontrol dilakukan oleh mikroprosesor. Pada Mode 0, ketiga port berfungsi sebagai tiga port I/O 8 bit. Pada mode lain dapat port A dan port B sebagai port I/O 8 bit, sedangkan port C sebagai pengontrol saluran port A dan B.
PPI Intel 8255A dapat diprogram untuk mengontrol berbagai peripheral sederhana. Gambar 3. memperlihatkan contoh penggunaan 8255A untuk modul I/O Keyboard dan display.
 
Gambar3. Interface keyboard dan display dengan Intel 8255A

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. Hal ini berimplikasi pada:
ü  Kelajuan transfer I/O yang tergantung pada kecepatan operasi CPU.
ü  Kerja CPU terganggu karena adanya interupsi secara langsung.

Bertolak dari kelemahan di atas, apalagi untuk menangani transfer data bervolume besar dikembangkan teknik yang lebih baik, dikenal dengan Direct Memory Access (DMA).
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. Blok diagram modul DMA terlihat pada gambar 4.  berikut :

 

Gambar4. Blog Diagram DMA

Gambar5. Konfigurasi modul DMA

Dalam melaksanakan transfer data secara mandiri, DMA memerlukan pengambilalihan kontrol bus dari CPU. Untuk itu DMA akan menggunakan bus bila CPU tidak menggunakannya atau DMA memaksa CPU untuk menghentikan sementara penggunaan bus. Teknik terakhir lebih umum digunakan, sering disebut cycle-stealing, karena modul DMA mengambil alih siklus bus.
Penghentian sementara penggunaan bus bukanlah bentuk interupsi, melainkan hanyalah penghentian proses sesaat yang berimplikasi hanya pada kelambatan eksekusi CPU saja. Terdapat tiga buah konfigurasi modul DMA seperti yang terlihat pada gambar 5.

0 komentar:

Posting Komentar

Calender

Powered by Icaha Sasuke

Popular Posts

Diberdayakan oleh Blogger.