Teknik Input Output

Teknik input output terdiri dari 3 (tiga) buah  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.

I/O terprogram
   Dalam teknik programmed I/O, data saling dipertukarkan antara CPU dan modul I/O. CPU langsung mengendalikan operasi I/O secara keseluruhan dengan menjalankan serangkaian instruksi I/O dengan program tertentu, seperti pemindahan data, pengiriman perintah baca maupun tulis, dan monitoring perangkat.

I/O terprogram mempuyai kelemahan sebagai berikut :

  • CPU akan menunggu sampai operasi I/O selesai dilakukan modul I/O sehingga akan membuang waktu. CPU lebih cepat proses operasinya.
  • Dalam teknik ini, modul I/O tidak dapat melakukan interupsi kepada CPU terhadap proses-proses yang diinterupsikan padanya. 
  • Seluruh proses merupakan tanggung jawab CPU sampai operasi lengkap dilaksanakan.

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.

Karakteristik dari teknik I/O terprogram  :
  • Terdapat program untuk memulai-mengarahkan- menghentikan operasi I/O
  • Membutuhkan perangkat keras register, register status, register buffer register point , buffer dan register counter data
  • perlu waktu proses yang menyita waktu pemanfaatan CPU dalam melakukan tugasnya

Dalam 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:

    1.Perintah Control

Yaitu perintah yang digunakan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas yang diperintahkan kepadanya.

    2. Perintal Test

Yaitu perintah yang digunakan CPU untuk menguji berbagai kondisi status modul I/O dan peripheralnya. CPU ini perlu mengetahui perangkat peripheralnya dalam keadaan aktif dan siap digunakan, juga untuk mengetahui operasi-operasi I/O yang dijalankan serta mendeteksi kesalahannya.

    3. Perintah Read

Yaitu perintah pada modul I/O untuk mengambil suatu paket data kemudian menaruhnya di dalam buffer internal. Proses selanjutnya paket data akan dikirim melalui bus data setelah terjadi sinkronisasi data maupun kecepatan transfrernya.

    4. Perintah Write

Perintah ini kebalikan dari read. CPU memerintahkan modul I/O untuk mengambi data dari bus data untuk diberikan pada perangkat peripheral tujuan data tersebut.

Dalam teknik I/O terprogram, terdapat dua macam implementasi perintah I/O yang tertuang dalam instruksi I/O, yaitu memory mapped I/O dan isolated I/O.

Dalam memory maaped untuk I/O,

  • Terdapat ruang alamat tunggal untuk lokasi memori dan perangkat I/O
  • CPU memperlakukan regiter status dan register data modul I/O sebagai lokai memori read/write
  • Tidak ada perintah khusus untuk I/O

Konsekuensinya adalah diperlukan saluran tunggal untuk pembacaan dan saluran tunggal untuk penulisan. Keuntungan momory mapped ini adalah efisien dalam pemrograman namun memakan banyak ruang memory alamat.

Dalam teknik isolated I/O,

  • Terpisah ruang alamat
  • Port-port I/O hanya dapat diakses dengan perintah I/O khusus
  • Perintah khusus untuk I/O

Dengan teknik ini diperlukan bus yang dilengkapi dengan pembacaan dan penulisan memori ditambah dengan saluran perintah output. Keuntungan isolated I/O adalah sedikitnya instruksi I/O.



Interrupt Driven I/O

Teknik interrupt memungkinkan proses tidak membuang – buang waktu. Prosesnya ini CPU mengeluarkan perintah I/O pada modul I/O, bersamaan dengan perintah I/O dijalankan modul I/O maka CPU akan melakukan eksekusi perintah – perintah lainnya. Apabila modul I/O tersebut  telah selesai menjalankan intruksi  maka  intruksi akan melakukan interupsi pada CPU bahwa tugasnya telah selesai.

Dalam teknik ini 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 yaitu 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:

  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:
  • Status prosesor, berisi register yang dipanggil PSW (program status word).
  • 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
  1. Saluran Interrupt berjumlah banyak (Multiple Interrupt Lines)
  2. Masing-masing interrupt mempunyai prioritas
  3. Prioritas tinggi dapat menginterupsi prioritas rendah
  • Software poll
Pada saat CPU mengetahui adanya interupt maka CPU akan menuju ke routine layanan interrupt yg tugasnya melakukan poll seluruh modul I/O. Poll berbentuk baris perintah yg terpisah. Kerugian dari software poll adalah lambat

  • Daisy Chain or Hardware poll
Saluran Interrupt Acknowledgeadalah daisy chain yg melalui modul-modul, module tersebut  memberikan respon dengan maletakkan vektor (word) pada saluran data, CPU menggunakan vektor untuk mengidentifikasikan routine layanan

  • Arbitrasi Bus
  1. Memanfaatkan interrupt bervektor
  2. Modul I/O harus memperoleh kontrol bus sebelum modul menggunakan saluran permintaan interrupt adalah PCI & SCSI

Direct Memory Access ( DMA )

DMA adalah sebuah prosessor khusus (special purpose processor ) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO).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 juga 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 berikut :

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.
Previous
Next Post »