Showing posts with label Interrupt. Show all posts
Showing posts with label Interrupt. Show all posts

Monday, May 14, 2012

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