Interpurt-Driven I/O

Dari sudut pandang modul I/O, pada input modul I/O menerima perintah READ dari CPU. Kemudian modul I/O memproses pembacaan data dari peripheral tertentu. Sekali data telah berada dalam register data modul, modul mengeluarkan signal interrupt ke CPU melalui saluran kontrol. Kemudian modul akan menunggu hingga datanya diminta oleh CPU.
Dari sudut pandang CPU, CPU mengeluarkan perintah READ. Kemudian CPU berhenti mengeluarkan perintah dan melanjutkan pekerjaan lainnya. Pada kahir setiap siklus instruksi, CPU memeriksa interrupt. Ketika interrupt dari modul I/O terjadi CPU menyimpan context program yang sedang berlangsung dan memproses interrupt.

Pengolahan Interrupt
Pada saat perangkat I/O telah menyelesaikan sebuah operasi I/O, maka urutan kejadian hardwere di bawah ini akan menjadi:
  •  Perangkat akan mengeluarkan signal interrupt ke CPU.
  • Prosesor menyelesaikan eksekusi intruksi yang sedang dilakukan sebelum memberikan responsnya terhadap interrupt.
  • Prosesor memeriksa interrupt, menetapkan bahwa memang ada, dan mengirimkan signal acknowledgment ke perangkat yang mengeluarkan interrupt.
  • Sekarang prosesor perlu mempersiapkan pengontrolan transfer ke routine interrupt. 
  • Setelah itu propesor dapat memuat pemghitung program dengan loaksi entri dan program penanganan interrupt yang akan memberikan respon ke interrupt ini.
  • Hingga disini, penghitung program dan PSW yang berkaitan dengan program yang di interupsi telah disimpan didalam stack sistem. 
  • Kemudian setelah itu interrupt handler dapat menjalankan proses interrupt.
  • Apa bila pengolaan interrupt teleh selesai, nilai-nilai register yang tersimpan diambil kembali dari stack dan selanjutnya disimpan diregister.
  • Kegiatan akhir adalah menyimpan kembali PSW dan nilai penghitung program dari stack.
Masalah-masalah Rancangan
Terdapat dua masalah yang timbul dalam mengimplementasikan interrupt I/O. Masalah yang pertama, karena akan terdapat sejumlah modul I/O yang hampir selalau berubah-ubah, bagaimana cara CPU menentukan perangkat yang mengeluarkan interrupt?. Dan yang kedua, apa bila sejumlah interrupt telah terjadi, bagaimana cara CPU menentukan interrupt yang akan diproses?.
Pertama kita identifikasi perangkat. Terdapat empat kategori yang umum digunakan yaitu:
  • Saluran interrupt berjumlah banyak.
  • Softwere poll
  • Daisy Chain (poll hardwere, yang divektorkan)
  • Arbitrasi bus (yang divektorkan)
 Pengontrol Interrupt Intel 8259A   

Satu-satunya tanggung jawab 8259A adalah melakukan manajement interrupt. 8259A menerima permintaan interrupt dari modul yang terhubung, menentukan interrupt yang memiliki prioritas tertinggi, dan memberikan signal ke CPU dengan mengangkat saluran INTR. CPU memberitahukan melalui saluran INTA. Pemberitahuan ini menyatakan bahwa 8259A menaruh informasi vektor yang berkaitan dengan bus data.
8259A dapat diprogram. 8086 menentukan pola prioritas yang akan digunakan dengan menyetel sebuah kontrol word di dalam 8259A. Di bawah ini adalah metode-metode interrupt yang mungkin terjadi;
  1. Fully Nested: Rermintaan interrupt diurutkan dalam ptioritas mulai 0 (IRO) hingga 7 (IR7) 
  2. Rotating: sebagian aplikasi jumlah perangkat yang melakukan interupsi sama dengan priaritas.
  3. Special Mask: Mode ini memungkinkan CPU untuk menangkal interrupt dari perngkat tertentu secaraselektif.
 Intel 8255A Programmable Peripheral Interface
Sisi kanan dari diagram blok merupakan interface aksternal 8255A. 24 saluran I/O dapat diprogram oleh 8086 gengan menggunakan register kontrol. 8086 dapat menyetel nilai register kontrol untuk menentukan bermacam-macam mode operasi dan konfigurasi. Ke 24 saluran dibagi menjadi kelompok 8-bit (A,B,C). Setiap kelompok dapat berfungsi sebagai port I/O 8-bit.
Sisi kiri diagram blok merupakan interface internal dengan bus 8086. Interface ini terdiri dari bus data dua arah 8-bit (DO sampai D7), yang digunakan untuk memindahkan data ke port I/O dan untuk memeindahkan informasi kontrol keregister kontrol. Register kontrol dimuat oleh CPU untuk mengontrol mode operasi dan untuk menentukan signal apabila ada. Signal kontrol memiliki mekanisme pewaktuan yang sederhana. Sebuah saluran kontrol digunakan oleh pengirim sebagai saluran DATA READY. Saluran lainnya dapat dianggap sebagai sebuah saluran INTERRUPT REQUEST dan terhubung ke bus sitem.

No comments:

Post a Comment