Anda di halaman 1dari 29

Interrupt Driven I/O

Interrupt Driven I/O


Masalah yang dijumpai pada I/O terprogram: CPU
harus menunggu modul I/O yang diinginkan agar siap
untuk menerima maupun mengirim data dalam waktu
yang relatif lama
Saat menunggu CPU menanyakan berulang-ulang
status modul I/O kinerja turun dengan tajam
Alternatif: CPU mengeluarkan perintah I/O ke modul
dan mengerjakan tugas lainnya. Modul akan
menginterrupt CPU untuk meminta layanan apabila
modul telah siap untuk bertukar data dengan CPU.
Kemudian CPU akan mengeksekusi pengiriman data
dan dilanjutkan dengan menyelesaikan proses
sebelumnya
Interrupt Driven I/O (pada prosesor
8085)

Proses:
Piranti periferal mempunyai suatu byte yang siap ditransfer, alat
itu memasukkan bit tinggi ke masukan RST 5.5
Sesudah memasukkan isi PC ke tumpukan, CPU mencabang ke
lokasi 002CH ditemukan alamat awal subrutin yang
digunakan untuk memasukkan 1 byte data dari piranti periferal
ke memori
Interrupt Driven I/O (pada prosesor
8085)
Setelah byte tersimpan, CPU mengirimkan bit
ACKNOWLEDGE kepada piranti periferal
untuk memberitahukan kepada periferal agar
menyiapkan byte berikutnya yang hendak
ditransfer
CPU kembali ke program utama
Keuntungan: CPU tidak perlu menunggu
periferal untuk mempersiapkan data
Prioritas Interupsi
Bila interupsi yang aktif pada waktu yang sama
melebihi satu, maka 8085 akan melayaninya
sesuai dengan urutan prioritasnya
Instruksi Interupsi
EI dan DI
Prosesor 8085 mempunyai dua buah intruksi yang dapat
menjalankan atau menghalangi semua instruksi kecuali
TRAP
Instruksi EI (Enable Interrupt): akan menghasilkan IE
tinggi, sehingga interrupt dapat dilakukan
Instruksi DI (Disable Interrupt): akan menghasilkan IE
rendah, sehingga interrupt tidak dapat dilaksanakan
kecuali TRAP
Jika 8085 menjalankan suatu interupsi, CPU akan
menghasilkan sinyal ANY INTERRUPT
ACKNOWLEDGE. Sinyal ini akan menghalangi semua
interupsi yang masuk yang dapat mengganggu suatu
subrutin pelayanan
EI dan DI
Program pelayanan interupsi:

Jika pemrogram menginginkan agar program


utama tidak dapat diinterupsi:
SIM (Set Interrupt Mask)
Set Interrupt Mask
Digunakan untuk menghalangi interupsi
hardware
SIM (Set Interrupt Mask)
Bit MSE (Mask Set Enable) untuk
mengaktifkan pemasangan mask. Jika
bernilai 1 maka akan memungkinkan
untuk menghalangi interupsi dari M7.5,
M6.5 dan M5.5
Bit M7.5, M6.5 dan M5.5. Interupsi akan
dihalangi jika bit-bit ini bernilai 1
SIM (Set Interrupt Mask)
Contoh: meghalangi interupsi RST 7.5 dan RST 6.5,
serta meloloskan interupsi RST 5.5, maka digunakan:
MVI A, 0EH
SIM
Isi akumulator:
RIM (Read Interrupt Mask)
Digunakan untuk membaca status dari interrupt
masking
RIM (Read Interrupt Mask)
Bit 7: data masukan serial
Bit 6, 5, dan 4: memberikan status dari
interupsi-interupsi yang menunggu
Bit 3: bit yang menjalankan interupsi IE
Bit 2, bit 1 dan bit 0: bit-bit penghalang
interupsi
RIM (Read Interrupt Mask)
Contoh:

Setelah operasi RIM akumulator berisi data 4CH


Bit-bit I7.5, IE dan M7.5 bernilai tinggi
Interupsi 7.5 sedang menunggu, interupsi dapat
dijalankan, sedangkan interupsi RST 7.5
dihalangi
Memperluas Sistem
Interupsi
Instruksi-instruksi TRAP, RST 7.5, RST
6.5, RST 5.5 telah menyediakan empat
saluran interupsi
Jika lebih dari 4: diperluas dengan
menggunakan masukan INTR
Pengendalian Interupsi

Permintaan interupsi dari 8 piranti periferal dikenal


sebagai pengendali interrupt (pengendali interupsi)
Intel 8259 menyimpan alamat permulaan dari 8 subrutin
pelayanan, satu subrutin untuk tiap periferal
Pelayanan instruksi: mengirimkan CALL alamat
Pengiriman CALL
Proses:
Saat piranti periferal membutuhkan layanan, 8259
mengirimkan sebuah bit tinggi ke masukan INTR
Setelah 8085 mengenali INTR tinggi tersebut,
mikroprosesor mengirim sinyal INTA rendah (Interrupt
Acknowledgement) kepada 8259
8259 menanggapi dengan mengirimkan kembali kode
operasi dari instruksi pemanggilan
8085 mengirimkan sinyal INTA yang lain
mengambil byte alamat bawah dari 8259
8085 mengirimkan sinyal INTA lagi mengambil byte
alamat yang atas
Pengiriman CALL
Contoh:
Misal pelayanan bagi suatu piranti periferal dimulai
pada alamat F400H
Apabila piranti ini memerlukan pelayanan, 8259
mengirimkan INTR ke CPU
Setelah interupsi dikenali, CPU mengirimkan INTA ke
8259 8259 mengirimkan kode CDH yang
merupakan kode untuk operasi CALL yang akan
disimpan dalam register instruksi CPU
CPU mengirimkan INTA lagi 8259 mengirimkan
byte rendah alamat layanan 00H
CPU mengirimkan INTA lagi 8259 mengirimkan
byte tinggi alamat layanan F4H
Direct Memory Access
(DMA)
Kekurangan I/O terprogram dan
Interrupt driven I/O
Interrupt driven I/O masih memerlukan campur
tangan CPU secara aktif untuk melakukan
transfer antara memori dengan modul I/O, dan
transfer data harus melalui CPU
Kedua jenis transfer memiliki keterbatasan
Laju transfer I/O dibatasi oleh kecepatan yang pada
kecepatan itu CPU dapat menguji dan melayani
perangkat
CPU ditentukan oleh pengaturan transfer I/O
sejumlah eksekusi harus dieksekusi bagi setiap
transfer I/O-nya
Fungsi DMA
DMA meliputi modul-modul tambahan pada
sistem bus
Modul DMA mampu menirukan CPU, dan
mengambil alih kontrol sistem dari CPU
Pada saat CPU ingin membaca atau menulis
blok data, CPU mengeluarkan perintah ke modul
DMA, dengan mengirimkan ke modul DMA
informasi berikut:
Read/ write yang diminta
Alamat perangkat I/O yang dilibatkan
Lokasi awal dalam memori untuk read/ write
Jumlah word yang akan dibaca/tulis
Fungsi DMA
Kemudian CPU melanjutkan pekerjaan lainnya
CPU mendelegasikan operasi I/O kepada modul
DMA, dan modul DMA akan menjalankan
tugasnya
Modul DMA memindahkan seluruh blok data
secara langsung tanpa melalui CPU
Saat pemindahan data selesai, modul DMA
akan mengirimkan sinyal interrupt ke CPU
CPU hanya terlibat pada awal dan akhir
pemindahan data saja
Transfer DMA pada Prosesor 8085

Sinyal-sinyal HOLD dan HLDA digunakan dalam operasi-operasi


DMA
Jika pengendali DMA telah siap mengambil alih kendali, pengendali
DMA akan mengirimkan sinyal HOLD tinggi ke prosesor 8085
Prosesor 8085 membuat high impedance bus alamat, bus data, dan
bus kendalinya
Mikroprosesor akan mengirimkan sinyal HLDA tinggi (Hold
Acknowledge) yang menunjukkan bahwa 8085 menyerahkan
kendali
Pengendali DMA melakukan transfer data dengan kecepatan tinggi
dan kemudian kendali diserahkan kembali kepada 8085 dengan
pengiriman sinyal HOLD rendah
Saluran I/O dan
Prosesor I/O
Evolusi Fungsi I/O
CPU mengontrol periferal secara langsung
Ditambahkannya sebuah pengontrol atau modul I/O.
CPU menggunakan I/O terprogram tanpa interrupt
Digunakannya interrupt untuk transfer data
Modul I/O diberi akses langsung ke memori melalui DMA
Modul I/O ditingkatkan kemampuannya menjadi sebuah
prosesor yang memiliki tugasnya sendiri, menggunakan
instruksi tertentu untuk I/O tertentu sering disebut
saluran I/O (I/O channel)
Modul I/O memiliki memori lokalnya sendiri dan
merupakan sebuah komputer yang memiliki tugasnya
sendiri sering disebut prosesor I/O
Karakteristik I/O Channel
Merepresentasikan pengembangan konsep
DMA
Saluran I/O mempunyai kemampuan untuk
mengeksekusi instruksi I/O, yang memberikan
kontrol sepenuhnya terhadap operasi-operasi
I/O
CPU akan memulai pemindahan data dengan
menginstruksikan I/O Channel untuk
mengeksekusi program di dalam memori
Jenis I/O Channel
Selector Channel
Transfer data didedikasikan terhadap satu
periferal saja
Multiplexer Channel
Menerima dan mengirimkan data secepat
mungkin ke beberapa perangkat
ANY
QUESTION?

Anda mungkin juga menyukai