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;
- Fully Nested: Rermintaan interrupt diurutkan dalam ptioritas mulai 0 (IRO) hingga 7 (IR7)
- Rotating: sebagian aplikasi jumlah perangkat yang melakukan interupsi sama dengan priaritas.
- 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