Microprocessor - Interuption

5

Click here to load reader

description

Microprocessor - About Interuption

Transcript of Microprocessor - Interuption

Muhamad Ikbal Tawakal11011201561. InterupsiInterupsi adalah panggilan yang diawali oleh perangkat keras atau perangkat lunak yang menginterupsi program yang sedang berjalan pada bagian mana saja yang memanggil sebuah prosedur. Prosedur dipanggil oleh handler interrupt atau prosedur servis interrupt. Interrupt berguna ketika suatu alat I/O harus dilayani sekali kali saja dengan kecepatan transfer data yang rendah.

2. Interrupt VectorSetiap interrupt akan mengeksekusi interupt handlernya masing-masing berdasarkan nomornya. Sedangkan alamat dari masing- masing interupt handler tercatat di memori dalam bentuk array yang besar elemennya masing-masing 4 byte yang berlokasi di memori 0000H-03FFH. Keempat byte ini dibagi lagi yaitu 2 byte pertama berisi kode offset sedangkan 2 byte berikutnya berisi kode segmen dari alamat interupt handler yang bersangkutan. Jadi besarnya array itu adalah 256 elemen dengan ukuran elemen masing-masing 4 byte. Total keseluruhan memori yang dipakai adalah sebesar 1024 byte (256 x 4 = 1024) atau 1 KB dan disimpan dalam lokasi memori absolut 0000h sampai 3FFh. Array sebesar 1 KB ini disebut Interupt Vector Table (Table Vektor Interupsi). Nilai-nilai yang terkandung pada Interupt Vector Table ini tidak akan sama di satu komputer dengan yang lainnya. Untuk mencari alamat awal dari suatu nomor interupsi digunakan rumus: Alamat Awal = 4 * Nomor-InterupsiSedangkan interupt yang berjumlah 256 buah ini dibagi lagi ke dalam 2 macam yaitu: Interupt 00h - 1Fh (0 - 31) adalah interrupt BIOS dan standar di semua komputer baik yang menggunakan sistem operasi DOS atau bukan. Lokasi Interupt Vector Table-nya ada di alamat absolut 0000h-007Fh. Interupt 20h - FFh (32 - 255) adalah interrupt DOS. Interrupt ini hanya ada pada komputer yang menggunakan sistem operasi DOS dan Interupt Handler-nya di-load ke memori oleh DOS pada saat DOS digunakan. Lokasi Interupt Vector Table-nya ada di alamat absolut 07Fh-3FFh.

3. Pemograman InterruptAda beberapa instruksi interrupt antara lain: INT, INT3, BOUND, INTO, IRETA. INT n dimana menjalankan prosedur/rutin interupsi pada alamat (4 byte) yang disimpan di vektor n. Cara menghitung alamat vektor table: mis INT 5 5 x 4 = 20 (14h) maka alamat awal vektor interupsi 5 di 00014h sampai 00017h (karena 4 byte)B. BOUND merupakan instruksi interupsi yang membandingkan 2 buah operand antara sebuah register dan 2 buah word dari memori data. Mis : BOUND AX,DATA register AX dibandingkan isi DATA dan DATA+1 juga dengan DATA+2 dan DATA+3 Jika (isi register AX lebih kecil dari DATA dan DATA+1) atau (isi register AX lebih besar dari DATA+2 dan DATA+3) maka BOUND akan menjalankan prosedur/rutin pada alamat (4 byte) yang disimpan di vector 5. Jika isi register AX di antaranya, BOUND tidak akan terjadi apa- apaC. INT3 merupakan instruksi interupsi yang digunakan menyimpan breakpoint untuk debugging.D. INTO merupakan instruksi interupsi yang dijalankan dengan mengecek OF (overflow). Jika OF=1 maka INTO menjalankan prosedur/rutin pada alamat (4 byte) yang disimpan di vektor 4. Jika OF =0 maka INTO tidak akan terjadi apa- apa.E. IRET adalah instruksi pengembalian khusus yang menghentikan pelaksanaan prosedur service interupsi. Hal ini sama dengan RET normal, kecuali bahwa dalam tambahan pada pemanggilan alamat kembali dari stack, dan menerima salinan dari register flag.

Operasi mode realKetika mikroprosesor menyelesaikan eksekusi instruksi pada saat itu. Menentukan apakah interrupt aktif dengan memeriksa :1. Eksekusi instruksi2. Single step3. NMI4. Coprocessor segment overrun5. INTR6. Instruksi INT , dengan urutan seperti :a. Menyimpan isi register ke Stackb. Clear Interrupt flag dan clear trap flagc. Isi register CS di push ke stackd. Isi IP di push ke stacke. Isi vector interrupt di ambilINTERRUPT PERANGKAT KERAS Interrupt memiliki 2 input : non maskable interrupt(NMI) dan interrupt/ interrupt request (INTA)a. NON MASKABLE INTERRUPT(NMI)NMI merupakan input edge-triggered yang meminta interrupt pada sisi positif (transisi 0 ke 1). Setelah sisi positif, pin NMI harus tetap merupakan logika 1 sampai dikenali oleh mikroprosesor.Input NMI seringkali digunakan untuk error paritas dan kegagalan sistem utama lainnya, seperti putusnya hubungan listrik. Putusnya daya listrik dengan mudah dideteksi dengan memonitor jalur daya AC dan mengaktifkan interrupt NMI ketika daya AC turun.b. INTERRUPT/ INTERRUPT REQUEST (INTA dan INTR)Input permintaan interrupt (INTR) sensitif terhadap perubahan level, yang berarti bahwa harus dijaga pada tingkat logika 1 sampa dikenali. Kaki INTR di set-oleh kejadian eksternal dan di clear di dalam prosedur service interrupt. Input ini akan secara otomatis di disable begitu diterima oleh mikroprosesor dan dienable kembali oleh instruksi IRET di akhir prosedur servis interrupt. Mikroprosesor menanggapi input INTR dengan membuat pulsa Output INTA sebagai antisipasi menerima nomor tipe vektor interrupt pada hubungan bus data D7-D0.

12-3 MEMPERLUAS STRUKTUR INTERRUPT Memperluas menggunakan 74AL244Modifikasi yang digunakan memungkinkan rangkaian mengakomodasi sampai tujuh input interrupt tambahan. Satu satunya peruahan perangkat keras adalah penambahan gerbang NAND 8 input, yang memberikan sinyal INTR ke mikroprosesor ketika salah satu input IR menjadi aktif. Cara kerjaJika Input IR menjadi logika 0 , maka output gerbang NAND menjadi logika 1 dan meminta interrupt melalui inout INTR, Vektor interrupt yang diambil selama pulsa INTA. Bergantung pada jalur permintaan interrupt mana yang menjadi aktif Interrupt Daisy ChainPerluasan dengan cara interrupt yang didaisy chain dalam banyak hal lebih baik dari menggunakan perluasan interrupt 74ALS244 karena hanya memerlukan satu vektor interrupt. Tugas menentukan prioritas diberikan pada prosedur servis interrupt. Menentukan prioritas untuk daisy chain memerlukan waktu eksekusi perangkat lunak tembahan, tetapi pada umumnya merupakan pendekatan yang jauh lebih baik untuk mengembangkan struktur interrupt mikroprosesor.