Anda di halaman 1dari 29

Interrupt

Dadang Iskandar

Definisi Interrupt
Interupsi adalah suatu permintaan khusus
untuk melakukan sesuatu,dan akan
menghentikan dahulu apa yang sedang
dikerjakan, dan baru di lanjutkan setelah
selesai.
Interupsi adalah suatu permintaan khusus
pada mikroprocessor untuk melakukan
sesuatu, jika terjadi interupsi maka komputer
akan menghentikan dahulu apa yang
sedang dikerjakan dan melakukan apa yang
diminta oleh yang menginterupsi.

Pengantar tentang proses eksekusi


program

Instruksi-instruksi yang dieksekusi


mikrokontroler diletakkan pada memori program
Secara default, CPU akan mengeksekusi
instruksi-instruksi mulai dari alamat 0x0000
kemudian diteruskan ke alamat 0x0001 dst
secara berurutan. Pengalamatan instruksi diatur
oleh progam counter
Jika terjadi suatu lompatan
(percabangan,pemanggilan subrutin, atau loop)
eksekusi program akan keluar dari urutan
alamat tersebut dan menuju alamat tujuan
lompatan

Pengertian Interupsi

Vektor interupsi
Alamat memori program yang menjadi
tujuan pertama lompatan program ketika
terjadi suatu interupsi
Vektor interupsi ini sifatnya spesifik dan
sudah fix untuk masing-masing sumber
interupsi
Setiap sumber interupsi memiliki vektor
interupsinya sendiri-sendiri

Sumber interupsi
Kondisi yang menyebabkan terjadinya
suatu interupsi
Kondisi ini bermacam-macam, ada yang
berasal dari luar (ext. interrupt) dan ada
yang berasal dari dalam
Sumber dan vektor interupsinya
ditunjukkan pada tabel sbb

Inisialisasi interupsi
Untuk dapat menggunakan fasilitas
interupsi, harus dilakukan inisialisasi pada
awal program
Inisialisasi digunakan untuk mengaktifkan
interupsi
Inisialisasi mencakup :
Enable sumber interupsi yang diinginkan
Enable interupsi global

Rutin interupsi
Rutin yang dikerjakan ketika terjadi interupsi
Rutin ini bisa terletak pada alamat vektor
interupsi atau bisa diletakkan pada alamat lain
Umumnya pada teknik pemrograman,pada
alamat vektor interupsi diberi instruksi untuk
lompat ke alamat rutin interupsi
Suatu rutin interupsi harus diakhiri dengan
perintah RETI (return from interrupt)

Interupsi Eksternal
3 sumber interupsi eksternal pada
atmega8535 :
INT0(PD2),INT1(PD3),INT2(PB2)
Kondisi eksternal yang menyebabkan
interupsi bisa diatur melalui register
MCUCR (silakan lihat datasheet
ATmega8535 hal 68) dan MCUCSR(hal
69)

Register enable interupsi eksternal

Suatu bit pada register ini harus diset


supaya interupsi bisa di-enable
Terletak pada register GICR (datasheet
hal 69)
Bit-bit yang dipengaruhi ketika terjadi
interupsi ada pada GIFR general
interrupt flag register (hal 70)

PERANGKAT KERAS I/O


2. Interupsi
Mekanisme Dasar Interupsi :
Ketika CPU mendeteksi bahwa sebuah controller telah mengirimkan
sebuah sinyal ke interrupt request line (membangkitkan sebuah interupsi),
CPU kemudian menjawab interupsi tersebut (juga disebut menangkap
interupsi) dengan menyimpan beberapa informasi mengenai state terkini
CPU--contohnya nilai instruksi pointer, dan memanggil interrupt handler
agar handler tersebut dapat melayani controller atau alat yang mengirim
interupsi tersebut.

Fitur Tambahan pada Komputer Modern :


Pada arsitektur komputer modern, tiga fitur disediakan oleh CPU dan
interrupt controller (pada perangkat keras) untuk dapat menangani
interrupsi dengan lebih bagus. Fitur-fitur ini antara lain adalah
kemampuan menghambat sebuah proses interrupt handling selama
prosesi berada dalam critical state, efisiensi penanganan interupsi
sehingga tidak perlu dilakukan polling untuk mencari device yang
mengirimkan interupsi, dan fitur yang ketiga adalah adanya sebuah
konsep multilevel interupsi sedemikian rupa sehingga terdapat prioritas
dalam penanganan interupsi (diimplementasikan dengan interrupt priority

PERANGKAT KERAS I/O


Interrupt Request Line
Pada peranti keras CPU terdapat kabel yang disebut interrupt request
line, kebanyakan CPU memiliki dua macam interrupt request line, yaitu
nonmaskable interrupt dan maskable interrupt. Maskable interrupt dapat
dimatikan/ dihentikan oleh CPU sebelum pengeksekusian deretan
critical instruction (critical instruction sequence) yang tidak boleh
diinterupsi. Biasanya, interrupt jenis ini digunakan oleh device controller
untuk meminta pelayanan CPU.
Interrupt Vector dan Interrupt Chaining
Sebuah mekanisme interupsi akan menerima alamat interrupt handling
routine yang spesifik dari sebuah set, pada kebanyakan arsitektur
komputer yang ada sekarang ini, alamat ini biasanya berupa
sekumpulan bilangan yang menyatakan offset pada sebuah tabel (biasa
disebut interrupt vector). Tabel ini menyimpan alamat-alamat interrupt
handler spesifik di dalam memori. Keuntungan dari pemakaian vektor
adalah untuk mengurangi kebutuhan akan sebuah interrupt handler
yang harus mencari semua kemungkinan sumber interupsi untuk
menemukan pengirim interupsi.

PERANGKAT KERAS I/O


Penyebab Interupsi
Interupsi dapat disebabkan berbagai hal, antara lain
exception, page fault, interupsi yang dikirimkan oleh
device controllers, dan system call Exception adalah
suatu kondisi dimana terjadi sesuatu/ dari sebuah
operasi didapat hasil tertentu yang dianggap khusus
sehingga harus mendapat perhatian lebih, contoh nya
pembagian dengan 0 (nol), pengaksesan alamat memori
yang restricted atau bahkan tidak valid, dan lain-lain.
System call adalah sebuah fungsi pada aplikasi
(perangkat lunak) yang dapat mengeksekusikan instruksi
khusus berupa software interrupt atau trap.

Interupsi MikrokontrolerAT89C51
MikrokontrolerAT89C51 menyediakan 5
sumber interupsi, yaitu:
2 interupsi eksternal 2 interupsi
timer,dansatu interupsi port serial.
Register yang mengontrol interupsi yaitu
IE (Interrupt enable) dan IP (Interrupt
priority)

Kelima sumber interupsi yang dimiliki


AT89C51 dapat di-enable atau di-disable
melalui register IE (Interrupt Enable) yang
terletak di alamat A8H

Simbol Fungsi
1. EA EA = 0 tidak ada Interupsi yang akan dilayani.
2. EA = 1 setiap sumber interupsi dapat dijalankan atau dilumpuhkan
secara individual
3. ES Bit pembuat enable interupsi port serial
4. ET1 Bit pembuat enable interupsi timer 1
5. EX1 Bit pembuat enable interupsi eksternal 1
6. ET0 Bit pembuat enable interupsi timer 0
7. EX0 Bit pembuat enable interupsi eksternal 0

Prioritas Interupsi
Berikut ini susunan standar prioritas
interupsi pada AT89C51:

Interupsi yang memiliki interupsi yang


lebih tinggi dapat menginterupsi interupsi
yang lebih rendah prioritasnya.
Tingkatan prioritas di atas dapat diubah
melalui register IP (Interrrupt Priority) yang
terletak di alamat B8H.

PS
: Prioritas Interupsi Serial
PT1 : Prioritas Interupsi Timer 1
PX1 :PrioritasInterupsiEksternal1
PX1 :PrioritasInterupsiEksternal1
PT0 : Prioritas Interupsi Timer 0
PX0 : Prioritas Interupsi Eksternal 0
dengan ketentuan : bit = 1 menandakan prioritas
tinggi dan bit = 0 menandakan prioritas rendah.

Vektor Interupsi

Vektor interupsi adalah nilai yang akan disimpan


ke Program Counter pada saat terjadi interupsi.
Berikut alamat vektor layanan rutin interupsi dari
setiap sumber interupsi.
Tabel vektor interupsi

Interupsi mikroprosesor 8086


sinyal yang diberikan oleh perangkat luar
melalui pin NMI atau INTR, yang disebut
interupsi secara perangkat keras (hardware
interrupt)
dari eksekusi instruksi interupsi (INT), disebut
interupsi secara perangkat lunak (software interrupt)
dari suatu kondisi yang ditimbulkan karena
suatu eksekusi, misalnya ketika prosesor diminta
membagi suatu bilangan dengan nol, maka akan
muncul interupsi, hal ini disebut interupsi
kondisional

Urut-urutan respon mikroprosesor terhadap


suatu interupsi

Standar sinyal interupsi pada komputer


personal

Interupsi pada IBM PC


Pada IBM PC dan kompatibelnya disediakan 256 buah
interupsi yang diberi nomor 0 s/d 255.
Nomor interupsi 0 s/d 1Fh disediakan oleh ROM BIOS
yaitu suatu IC di dalam komputer yang mengatur operasi
dasar komputer.
Jadi jika terjadi interupsi dengan nomor 0 s/d 1Fh maka
secara default komputer akan beralih ke ROM BIOS dan
melaksanakan program yang terdapat disana. Program yg
melayani suatu interupsi dinamakan Interrupt Handler
Cara penggunaannya
int [no int]

IBM PC
Internal HW interruptions
Ditimbulkan/digenerasi oleh peristiwa
tertentu yang terjadi pada waktu/selama
eksekusi program
Diatur oleh HW dan tidak mungkin diubah
Contoh: tipe interrupt u/ counter clock
internal; HW call interrupt ini u/
memaintance time to date

External HW interupstions
Ditimbulkan/digenerasi oleh devais peripheral, mis
keyboard, printers, dsb.
Biasa juga ditimbulkan/digenerasi oleh Co-prosessor
Tidak mungkin mendeaktivekan
Tidak dikirim langsung ke CPU, melainkan ke IC
yang memiliki fungsi u/ menghandle secara
eksklusive interrupts ini. (IC -> PIC8259A, yg
dikontrol oleh CPU dgn menggunakan urutan
komunikasi -> PATH Control

Software interruptions
Diaktifkan langsung oleh assembler melalui sejumlah
interuosi yg diharapkan dgn instruksi INT
Terdapat dua jenis:
DOS interruptions
BIOS interupstions
Perbedaannya:
DOS int. lebih mudah digunakan, namun lebih lambat, karena
int. jenis ini menggunakan BIOS, BIOS int. lebih cepat, namun
banyak kerugiannya karena BIOS bagian HW dan HW-specific
Pemilihan interupts tergantung pada karakteristik yang akan
kita berikan pada program: SPEED BIOS int; PORTABILITY
-> DOS int.

Ada 2 macam Software Intterrupt


1. Vektor Interrupt ROM BIOS
Interrupt 00h - 1Fh (0-31) adalah interrupt BIOS dan standar di
semua komputer baik yang menggunakan sistem operasi DOS atau
bukan. Lokasi Interrupt Vector table-nya ada di alamat absolut
0000h-007Fh
Interrupt BIOS dibawah ini telah dipastikan kegunaannya oleh
sistem untuk keperluan khusus tidak boleh diubah oleh program
seperti lainnya
1. DEVIDE BY ZERO Jika terjadi pembagian dengan nol maka
proses akan segera dihentikan
2. SINGLE STEP Untuk melaksanakan/mengeksekusi instruksi satu
per satu
3. NMI Pelayanan terhadap NMI (Non Maskable Interrupt) yaitu
interupsi yang tak dapat dicegah
4. BREAK POINT Jika suatu program menyebabkan overflow flag
menjadi 1, interrupt ini akan melayani pencegahannya dan
memberi tanda error

Interrupt DOS
Interrupt 20h-FFh (32 - 255) adalah
interrupt DOS, dan hanya ada pada
komputer yang menggunakan sistem
operasi DOS dan interrupt handlernya diload ke memori oleh DOS pada saat DOS
digunakan. Lokasi Interrupt Vector tablenya ada di alamat absolut 07Fh-3FFh

Anda mungkin juga menyukai