EnableDisable Interupsi Kelas 10 SMK Teknik Mikroprosesor 1

TEKNIK MIKROPROSESOR 139 maskable tidak dapat digagalkan disable oleh programmer, dan interup ini diterima ketika devais peripheral meminta rutin layanan. Interupsi ini umumnya tersedia untuk layanan fungsi yang sangat penting, dan dapat diset enable atau disable oleh programmer. Dalam CPU Z80 terdapat enable interup flip-flop IFF yang dapat di-set atau di-reset oleh programer melalui instruksi Enable Interrupt EI dan Disable Interrupt DI. Ketika IFF di-reset maka interupsi tidak dapat diterima oleh CPU, kedua enable flip-flop itu adalah IFF1 dan IFF2. Gambar 3.19. Interupsi Flip-Flop State IFF1 digunakan untuk inhibit interupsi, sementara itu IFF2 digunakan sebagai tempat penyimpanan tempore untuk IFF1. Dengan melakukan reset terhadap CPU akan memaksa IFF1 dan IFF2 pada kondisi reset, yaitu interupsi di-disable. Interupsi dapat diset menjadi enable setiap saat melalui instruksi EI dari programer, ketika instruksi EI dijalankan maka semua permintaan interupsi yang ditunda tidak akan diterima sampai setelah instruksi berikut setelah EI dijalankan. Instruksi tunda diperlukan manakala instruksi berikutnya merupakan instruksi return, dan interup tidak dilayani sampai proses return lengkap. Instruksi EI melakukan setting terhadap kedua flip-flop IFF1 dan IFF2 pada kondisi enable, begitu juga saat CPU menerima interup maskable maka IFF1 dan IFF2 secara otomatis akan reset, dan berikutnya terjadi inhibid terhadap interup sampai programer memberikan instruksi EI. Tujuan dari IFF2 adalah untuk mengamankan status IFF1 ketika interup non- maskable terjadi, jadi IFF1 akan reset untuk mengjaga interup berikutnya sampai dilakukan re-enable oleh programer. Dengan demikian setelah interup TEKNIK MIKROPROSESOR 140 non-maskable diterima, makainterup maskable disable tetapi state IFF1 sebelumnya telah tersimpan sehingga keseluruhan state CPU memberikan prioritas terhadap interup non-maskable untuk bisa di-restore setiap waktu. Pada saat Register A dimuati data dari Register I LD A, I dan instruksi memuati Register A dengan data dari Register R LD A, R dijalankan, maka state IFF2 disalin ke parity flag sehingga bisa diuji atau disimpan. Cara kedua proses restore status IFF1 adalah melalui pelaksanaan Return dari instruksi interup Non-Maskable RETN. Instruksi ini mengindikasikan bahwa layanan rutin interup non-maskable adalah terselesaikan dan isi IFF2 selanjutnya disalin kembali ke IFF1 sehingga status IFF1 siap menerima interup non-maskable sebagai interup prioritas dan otomatis terjadi restore. Table berikut merupakan rangkuman dampak beberapa instruksi pada kedua buah flip-flop. Table Interup EnableDisable, Flip-Flop Action IFF1 IFF2 Comments CPU Reset Interup Maskable, INT Disable Instruksi DI dijalankan Maskable INT Disable Instruksi EI dijalankan 1 1 Maskable, INT Enable Instruksi LD A,I dijalankan IFF2 →฀ Parity Flag Instruksi LD A,R dijalankan IFF2 →฀ Parity Flag NMI diterima Maskable ฀Interup Instruksi RETN dijalankan IFF2 IFF2 →฀indikasi layanan rutin interup nonmaskable selesai

b. Respon CPU Non-Maskable

CPU selalu menerima dan melayani interup non-maskable, dan ketika interup ini muncul maka CPU akan mengabaikan pelaksanaan instruksi berikutnya dan memulai eksekusi instruksi yang berada pada lokasi 00066H . Pada saat TEKNIK MIKROPROSESOR 141 ini lebih kearah pemanggilan alamat khusus pada memori page 0, sehingga CPU dapat diprogram untuk merespon interup maskable melalui satu dari ketiga mode. Mode 0 Melalui interupsi mode 0 ini devais dapat menempatkan instruksi pada bus data dan CPU akan mengeksekusinya, sehingga interup yang dilakukan oleh devais akan mendpatkan layanan instruksi berikutnya untuk dilaksanakan. Pada umumnya merupakan instruksi restart karena interupsi devais hanya membutuhkan instruksi dengan byte tunggal, alternatif lain adalah instruksi call 3 byte pada lokasi memori tertentu dilaksanakan. Jumlah siklus clock untuk melaksanakan instruksi adalah dua lebih dibanding jumlah normal yang digunakan oleh sebuah instruksi, hal ini muncul karena CPU secara otomatis menambahkan dua state wait pada respon siklus interupsi. Keuntungan yang didapat adalah mengatasi ketidak cukupan waktu untuk implementasi rantai eksternal kontrol prioritas. Gambar 9 dan 19 merupakan ilustrasi rinci tetntang timing untuk respon interupsi, paskah aplikasi RESET maka CPU secara otomatis menjalankan interupsi mode 0. Mode 1 Jika mode 1 dipilih, respon CPU terhadap interup adalah melaksanakan restart pada memori dengan alamat 0038H. Dengan demikian respon yang terjadi identik dengan pelaksanaan interup non-maskable kecuali lokasi aatau alamat yaitu 0038H jadi bukan 0066H. Jumlah siklus yang dibutuhkan untuk menyelesaikan instruksi restart adalah dua lebih dibanding normal dengan tambahan dua state wait. Mode 2 Mode 2 merupakan mode respon CPU terhadap interup dalam katagori powerful, dengan 8-bit tunggal atau 1 byte dari user melalui indirect call dapat digunakan untuk menunjuk lokasi memori sesuai yang diinginkan bebas. Dalam mode ini seorang programer dpat mengelolah daftar dari starting addresses 16-bit untuk rutin layanan setiap interup, daftar atau tabel dapat diletakan di lokasi sesuai keinginan programer.