Showing posts with label COA. Show all posts
Showing posts with label COA. Show all posts

Monday, May 14, 2012

Interrupt Driven Input Output

Penjelasan  Interrupt Driven Input Output

Interrupt Driven I/O
Interrupt Driven I/O
 Modul I/O meng interrupt CPU device telah menyelesaikan pekerjaannya


Kerja CPU
  • Mengirim perintah ke I/O
  • Mengerjakan program berikutnya
  • CPU memeriksa status interrupt
  • baca data
  • Simpan data ke memori
Kerja Modul I/O
  • Melaksanakan permintaan CPU
  • Bila telah selesai/ada masalah mengirim interrupt
Kelebihannya
  • CPU tidak perlu menunggu operasi I/O selesai , CPU dapat mengerjakan program lain
  • CPU tidak perlu memeriksa status device terus menerus

Programmed Input Output

Penjelasan dari programmed input output
Programmed I/O
Programmed I/O

CPU terlibat langsung dalam mengendalikan I/O
  • Membaca Status
  • Menerima / mengirim perintah
  • Transfer data
Kerja CPU
  •  Mengirim perintah ke I/O
  • menunggu hingga aktifitas I/O selesai
  • CPU memeriksa bit bit status secara periodik
Kerja Modul I/O
  • Melaksanakan permintaan CPU
  • men set bit bit status
  • Tidak berinisiatif memberi laporan status
  • tidak meng interrupt CPU

Kekurangan:
  • Selama menunggu operasi I/O selesai , CPU tidak melakukan apa apa, dan waktu CPU terbuang
  • CPU harus selalu memeriksa status modul I/O
  • Performnasi sistem menurun
 Jenis Pengalamatan I/O
  • Memory mapped I/O
    • Ruang alamat digunakan oleh memori dan I/O bersama sama : jumlah alamat untuk memori berkurang
    • CPU memperlakukan I/O seperti memori biasa
    • Tidak ada perintah khusus bagi I/O
  • Isolated I/O
    • memori dan I/O menggunakan ruang alamat yang secara bergantian
  • diperlukan select line untuk membedakan antara memori dengan I/O
  • diperlukan perintah khusus untuk I/O

Identifikasi Interrupt

Penjelasan menentukan asal interrupt
  • Digunakan banyak jalur interrupt: satu modul satu jalur
    • (-) tidak praktis karena harus menyediakan sejumlah jalur kusus untuk interrupt
    • (-) Jumlah device yang dapat dipasang terbatas
  • Software poll(polling)
    • (-) lambat, karena harus memeriksa modul I/O satu persatu
    • Mekanisme :
      • Jika CPU mendeteksi adanya interrupt
      • CPU menanyakan ke setiap modul I/O untuk mengetahui asal interrupt
  • Daisy chain atau hardware poll
    • digunakan satu jalur interrupt yang menghubungkan setiap modul I/O
    • Modul satu dengan modul lainnya terhubung secara serial
    • Mekanisme:
      • modul I/O mengirimkan interrupt melalui jalur interrupt bersama
      • CPU mendeteksi adanya interrupt, mengirimkan signal ke sebuah modul I/O
      • signal akan diestafetkan dari satu modul ke modul lainnya
      • hanya modul yang mengirimkan interrupt yang akan memberi jawaban
      • jawaban berupa word(vecotr_ yang ditaruh di jalur data. Isi word adalah alamat modul I/O atau identitas unik lainnya
      • vector digunakan sebagai pointer untuk menunjuk langsung ke device sumber interrupt sebelum menjalankan interrupt handeler yang disebut vetored interrupt
  • Bus master
    • Pnegiriman interrupt dilakukan bila modul I/O telah mengusai('master')bus
    • mekasnisme:
      • Modul I/O mengirimkan permintaan untuk menggunakan bus
      • arbiter memberi kesempatan kepada I/O modul --> hanya satu modul dalam satu saat
      • Modul I/O mengirimkan interrupt
      • CPU mendeteksi adanya interrupt dan memberi respon melalui jalur acknowledge
      • Modul I/O mengirimkan word(vecotr) ke jalur data

Penjelasan Interrupt

Apakah Interrupt itu? mekanisme untuk menghentikan sementara waktu urutan eksekusi program yang normal(seqeuence) , Jika kondisi tertentu telah terjadi atau ada program lain yang lebih mendesak untuk dieksekusi.

Penjelasan mengidentifikasikan interrupt http://rezaakhmadg.blogspot.com/2012/05/identifikasi-interrupt.html

Apa Penyebab interrupt ?
  • Program : misal overflow, division by zero, akses ke ilegal memori
  • Timer: dihasilkan oleh timer prosesor internal, digunakan pada pre-emptive multi tasking
  • I/O : dihasilkan oleh I/O controller
  • hardware failure : misal memory , parity error, power failure

Siklus Interrupt
Siklus Interrupt
Siklus Interrupt - State Diagram
Siklus Interrupt - State Diagram
Siklus pada Interrupt :
  • Pengecekan interrupt ditambahkan pada siklus interuksi
  • prosesor memeriksa apakah terjadi interrupt
  • jika tidak ada interrupt maka kerjakan instruksi berikutnya
  • jika ada interrupt:
    • Tunda program yang sedang dieksekusi
    • simpan context(alamat instruksi,data)
    • PC : alamat awal routine interrupt handler
    • kerjakan interrupt sampai selesai
    • kembalikan context(PC : alamat saat terjadi interrupt)
    • lanjutkan program yg tertunda
Ada 2 metode yang dapat digunakan:
  •  Disable intterupt
    • Bila prosesor sedang menangani sebuah interrupt, maka interrupt berikutnya diabaikan
    • Bila interrupt pertama telah selesai, prosesor memeriksa apakah masih ada interrupt yang lain
    • eksekusi interrupt dilakukan secara berurutan(sekuensial)
  • Interrupt bertingkat
    • Interrupt berprioritas rendah dapat diinterupt oleh interrupt berprioritas tinggi
    • interrupt yang ter interrupt dieksekusi lagi bila interrupt yang lebih tinggi telah selesai ditangani
Teknik Input Output
  •   I/O terjadi pada saat program yang di dalamnya terdapat perintah I/O dieksekusi
  •  Eksekusi I/O terus menerus melibatkan prosesor
  • I/O terjadi pada saat perintah I/O dieksekusi
  • Sesudah perintah I/O dieksekusi à CPU melanjutkan eksekusi perintah lainnya à tidak terlibat terus menerus
  • CPU berperan lagi jika sudah ada interrupt dari device (modul I/O)
  • Transfer data ditangani oleh sebuah prosesor I/O khusus