Anda di halaman 1dari 23

2014

Interupsi Procesor

Created By

NUR WAHID

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER


(STMIK) NURDIN HAMZAH
PROGRAM STUDI TEKNIK INFORMATIKA

Daftar isi
Kata pengantar ......................................................................................................................... i
Daftar isi ................................................................................................................................. 1
BAB I PENDAHULUAN
A. Latar Belakang............................................................................................................. 2
B. Rumusan Masalah ....................................................................................................... 2
C. Tujuan .......................................................................................................................... 2
a. Tujuan Umum .................................................................................................. 2
b. Tujuan Khusus ................................................................................................. 2
D. Manfaat ........................................................................................................................ 3
BAB II PEMBAHASAN
1. Pengertian Interrupt ..................................................................................................... 4
2. Vektor Interupsi ........................................................................................................... 5
a. Maskable Interupt ............................................................................................ 8
b. Non-Maskable Interupt .................................................................................... 8
c. Interupt Pada 8086 ........................................................................................... 9
d. Pemakaian Interupt .......................................................................................... 10
1. Pencegahan Interupt Pada Processor ..................................................................... 13
2. Contoh Penerapan ................................................................................................. 14
2.1 Pengendali Tungku Otomatis .................................................................... 14
2.2 Sistem Alarm ............................................................................................. 16
3. Siklus Intruksi .............................................................................................................. 18
4. Sinyal Interupsi ............................................................................................................ 19
5. Mekanisme Interupsi ................................................................................................... 19
6. Interupsi Ditangguhkan ............................................................................................... 20
BAB III PENUTUP
1. Kesimpulan .................................................................................................................. 21

Makalah Tentang Interupsi Pada Processor

Page 1

KATA PENGANTAR

Dengan mengucapkan puji syukur Alhamdulillah kepada Allah SWT, yang telah
melimpahkan segala rahmat dan hidayah-Nya, sehingga kami dapat mengerjakan makalah
interupsi processor ini dengan baik dan lancar. Kami berharap makalah ini dapat memberikan
motivasi kepada para mahasiswa-mahasiswi STMIK NURDIN HAMZAH untuk lebih giat
mempelajari dengan dalam hakekat yang terkandung dalam interupsi processor ini.
Kami juga meminta maaf yang sebesar-besarnya apabila ada kekurangan, kesalahan bahkan
kata-kata yang tidak berkenan di hati dan disisi lain kami sangat mengharapkan ada masukan
baik kritik maupun saran dari saudara. Sehingga penyusun dapat memperbaiki apa yang jadi
kekurangan kami karena tidak ada manusia yang sempurna kecuali Allah SWT.
Akhir kata kami mengharapkan makalah ini banyak manfaatnya bagi kami sendiri khususnya
maupun semua pihak pada umumnya.

Penyusun

Makalah Tentang Interupsi Pada Processor

Page 1

BAB I
Pendahuluan
A. Latar Belakang
Interrupt bisa diibaratkan dalam kehidupan sehari-hari sebagai suatu proses berjalan,
namun belum selesai proses tersebut melakukan tugasnya, sudah dilaksanakan lagi proses
lainnya. Ibaratnya, ketika anda sedang melakukan suatu pekerjaan, katakanlah membaca
sebuah buku, belum selesai buku tersebut anda tamatkan, lalu telepon anda berbunyi,
sehingga anda melakukan percakapan terlebih dahulu melalui telepon tersebut. Setelah
pembicaraan selesai, anda melanjutkan membaca buku tadi. Menerima telepon di dalam
kejadian tersebut disebut dengan menyela. Begitu juga dengan proses yang terjadi pada
komputer, dan akan dibahas lebih lanjut di dalam makalah ini.
B. Rumusan Masalah
Adapun beberapa pokok materi yang akan dibahas di dalam makalah ini, yaitu :
-

Pengertian Interrupt

Software Interrupt

Pencegahan Interrupt pada processor

C. Tujuan
Adapun tujuan dan manfaat dari pembuatan makalah ini, yaitu agar kita lebih
memahami dan mendalami apa itu interrupt. Dan Agar kita dapat mengetahui maupun
mendeteksi terjadinya interrupt pada processor, sehingga dapat mengendalikan terjadinya
interrupt pada processor tersebut.
a. Tujuan Umum
Dengan di adakannya pembuatan makalah pengantar teknologi informasi ini supaya kami
dapat memperoleh pengetahuan dan keterempilan tentang ilmu pengantar teknologi informasi.
Dengan makalah ini, kami juga dapat meningkatkan pemahaman tentang teori
pengantar teknologi informasi ini.

Makalah Tentang Interupsi Pada Processor

Page 2

b. Tujuan Khusus
Menambah pengetahuan dalam bidang Pengantar Teknologi Informasi
Menerapkan materi yang di peroleh dari kampus melalui kegiatan membuat makalah.
Menambah wawasan dalam bidang pengantar teknologi ionformasi.
E. Manfaat
Pembuatan makalah Pengantar Teknologi Informasi ini memberikan mamfaat kepada
Mahasiswa Mahasiswi STMIK NURDIN HAMZAH, khususnya antara lain yaitu :
Sebagai penunjang dalam pembelajaran Pengantar Teknologi Informasi

Dapat mempermudah dan lebih memperdalam lagi materi Pengantar Teknologi

Informasi, khususnya pada bab yang kami bahas.

Makalah Tentang Interupsi Pada Processor

Page 3

BAB II
Pembahasan
1.

Pengertian Interrupt
Interrupt atau interupsi adalah proses dalam komputer untuk meminta dilayani oleh

microprocessor sesuai dengan tingkat prioritasnya yang telah diatur sedemikian rupa oleh
sistem hardware computer.
CPU banyak melaksanakan routin untuk melakukan pelayanan pemrosesan ataupun
koordinasi kepada IC penunjang atau chipset dan peripherals pada saat diperlukan. Sehingga
CPU dapat melakukan operasi dengan 2 cara yaitu :
1. Operasi dengan polling
Operasi dengan polling berarti CPU selalu terus menerus menanyakan/ memantau ke
tiap-tiap komponen penunjang satu persatu meskipun komponen itu sedang tidak memerlukan
pelayanan.
2. Operasi dengan interrupt langsung
Operasi interrupt atau interupsi dilakukan oleh tiap-tiap komponen kepada CPU
bilamana memerlukan pelayanan pemrosesan, sehingga CPU tidak terus-menerus
menanyakan / memantau komponen itu. Setiap interupsi yang datang di kontrol oleh interrupt
controller di luar CPU.
Dalam keadaan CPU terkena interupsi, maka CPU untuk sesaat menghentikan
kegiatan pelayanan utama dan beralih melayani komponen yang menginterupsinya. Setelah
selesai dilayani CPU kembali melakukan pelayanan utamanya. Cara interupsi sangat
meningkatkan effisiensi operasi CPU dan melakukan tugasnya dengan cepat.

Di dalam pemrograman dengan bahasa assembler kita akan banyak sekali


menggunakan Interupsi untuk menyelesaikan suatu tugas.
Kadang-kadang proses dalam CPU mengalami interupsi untuk kejadian-kejadian yang
perlu segera mendapat respon, seperti pengetikan pada keyboard, proses I/O lainnya dan clock
tick untuk mengupdate waktu system. Pada prinsipnya interrupt terbagi atas :

Makalah Tentang Interupsi Pada Processor

Page 4

1. Eksternal
Pada proses Eksternal, interrupt di bangkitkan oleh proses di luar program seperti proses
I/O dan clock. Seperti Software, interrupt jenis ini juga disebut System call. Contoh suatu
program ingin mencetak hasil dengan printer.
2.

Internal
Pada proses Internal, interrupt dibangkitkan oleh proses program seperti devide for zero
error (Trapsinterrupt) dan software interrupt (dibangkitkan dengan perintah INT). Seperti
Hardware, terjadi karena adanya aksi pada perangkat keras, seperti penekanan tombol
keyboard atau menggerakkan mouse.
Ketika suatu interrupt terjadi, processor akan menyelesaikan siklus memori saat
ini,dan bercabang kepada routin khusus menangani interrupt tersebut, status dari program
saat ini akan disimpan dan routin interrupt handle umumnya akan mengembalikan kendali
program termasuk semua nilai register seakan-akan tidak pernah terjadi sesuatu (hanya
kehilangan beberapa siklus CPU), sedangkan traps interrupt tidak akan kembali ke
program dan menghentikan program tersebut. Pada bagian ini lebih memfokuskan pada
software interrupt.
Pada IBM PC dan kompatibelnya disediakan 256 buah interupsi yang diberi nomor 0

sampai 255. Nomor interupsi 0 sampai 1Fh disediakan oleh ROM BIOS, yaitu suatu IC
didalam komputer yang mengatur operasi dasar komputer. Jadi bila terjadi interupsi dengan
nomor 0-1Fh, maka secara default komputer akan beralih menuju ROM BIOS dan
melaksanakan program yang terdapat disana. Program yang melayani suatu interupsi
dinamakan Interrupt Handler.

2. VEKTOR INTERUPSI
Setiap interrupt akan mengeksekusi interrupt 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. 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

Makalah Tentang Interupsi Pada Processor

Page 5

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). Nilainilai yang terkandung pada Interupt Vector Table ini tidak akan sama di satu komputer
dengan yang lainnya.
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 diload ke memori oleh
DOS pada saat DOS digunakan. Lokasi Interupt Vector Tablenya ada di alamat absolut 07Fh3FFh.

Nomor

Nama

Nomor

Nama

Interrupt

Interrupt

Interrupt

Interrupt

*00h

Divide By Zero

10h

Video Service

*01h

Single Step

11h

Equipment Check

*02h

Non MaskableInt(NMI)

12h

Memory Size

*03h

Break point

13h

Disk Service

04h

Arithmatic Overflow

14h

Communication (RS-232)

05h

Print Screen

15h

Cassette Service

06h

Reserved

16h

Keyboard Service

07h

Reserved

17h

Printer Service

08h

Clock Tick(Timer)

18h

ROM Basic

09h

Keyboard

19h

Bootstrap Loader

Makalah Tentang Interupsi Pada Processor

Page 6

0Ah

I/O Channel Action

1Ah

BIOS time & date

0Bh

COM 1 (serial 1)

1Bh

Control Break

0Ch

COM 2 (serial 2)

1Ch

Timer Tick

0Dh

Fixed Disk

1Dh

Video Initialization

0Eh

Diskette

1Eh

Disk Parameters

0Fh

LPT 1 (Parallel 1)

1Fh

Graphics Char

Gambar 3.1. BIOS Interrupt


Interrupt ini telah dipastikan kegunaannya oleh sistem untuk keperluan yang khusus , tidak
boleh dirubah oleh pemrogram seperti yang lainnya.

DEVIDE BY ZERO : Jika terjadi pembagian dengan nol maka proses akan segera
dihentikan.

SINGLE STEP : Untuk melaksanakan / mengeksekusi intruksi satu persatu.

NMI : Pelayanan terhadap NMI (Non Maskable Interrupt) yaitu interupsi yang tak dapat
dicegah.

BREAK POINT : Jika suatu program menyebabkan overflow flag menjadi 1 maka
interrupt ini akan melayani pencegahannya dan memberi tanda error.

Nomor

Nama

Interrupt

Interrupt

20h

Terminate Program

21h

DOS Function Services

22h

Terminate Code

23h

Ctrl-Break Code

24h

Critical Error Handler

Makalah Tentang Interupsi Pada Processor

Page 7

25h

Absolute Disk Read

26h

Absolute Disk Write

27h

Terminate But Stay Resident

Gambar 3.2. DOS Interrupt


Didalam pemrograman dengan bahasa assembler kita akan banyak sekali
menggunakan interupsi untuk menyelesaikan suatu tugas.

Kadang-kadang proses dalam CPU mengalami interrupsi untuk kejadian-kejadian


yang perlu segera mendapat respon, seperti pengetikan pada keyboard, proses I/O lainnya, dan
clock tick untuk mengupdate waktu system. Pada prinsipnya interrupt terbagi atas eksternal,
dan internal. Eksternal interrupt dibangkitkan oleh proses diluar program seperti proses I/O,
dan clock, sedangkan proses Internal interrupt dibangkitkan oleh proses program seperti
devide for zero error (Traps interrupt) dan Software interrupt (dibangkitkan dengan perintah
INT).

Ketika suatu interrupt terjadi, processor akan menyelesaikan siklus memori saat ini,
dan bercabang kepada rutin khusus menanggani interrupt tersebut, status dari program saat ini
akan disimpan dan rutin interrupt handle umumnya akan mengembalikan kendali ke program
termasuk semua nilai register seakan-akan tidak pernah terjadi sesuatu (hanya kehilangan
beberapa siklus CPU), sedangkan Traps interrupt tidak akan kembali ke program dan
menghentikan program tersebut.
Catatan : Pada bagian ini kita akan lebih memfokuskan diri pada Software interrupt

a. Maskable Interrupt
Processor dapat mencegah interrupt dengan menggunakan mask bit khusus interrupt.
Mask bit ini adalah bagian dari flag register pada microprocessor 8086 yang dikenal sebagai
interrupt flag (IF), jika bit ini clear (IF=0), dan terjadi permintaan interrupt pada pin Interrupt
Request, maka permintaan tersebut akan diabaikan.

b. Non-Maskable Interrupt (NMI)

Makalah Tentang Interupsi Pada Processor

Page 8

Ada beberapa interrupt yang mana tidak dapat di mask atau diabaikan oleh processor,
hal ini terkait dengan tugas-tugas prioritas tinggi yang tidak boleh diabaikan (seperti terjadi
pariti pada memori atau kegagalan BUS). NMI memiliki prioritas yang absolut, dan ketika itu
terjadi, processor menyelesaikan siklus memori saat ini, dan kemudian bercabang ke rutin
khusus yang ditulis untuk menangani permintaan interrupt.

c. Interrupt pada 8086


Adapun urutan dari proses interrupt pada microprocessor 8086 dapat dijelaskan sebagai
berikut:

1. Interface eksternal mengirim suatu sinyal interrupt ke pin Interrupt Request (INTR), atau
suatu internal interrupt terjadi.

2. CPU menyelesaikan instruksi yang berlangsung dan mengirim (untuk suatu hardware
interrupt) dan mengirim Interrupt Acknowledge (INTA) ke interface hardware.
Hendra, MT. & Hartono, M.Kom. 19 Pemrograman Bahasa Rakitan

3. Interrupt jenis N (masing-masing interrupt memiliki nomor) dikirim ke Central Processing


Unit (CPU) melalui data bus dari interface hardware.

4. Isi dari register flag didorong ke stack.

5. Flag interrupt (IF) dan trap (TF) di clear, hal ini akan mencegah pin INTR dan kemampuan
single-step untuk proses debugging (trap)

6. Isi dari register CS didorong ke Stack

7. Isi dari register IP didorong ke Stack

8. Isi dari vektor interrupt diambil, dari (4 x N) dan kemudian ditempatkan ke IP dan dari (4 x
N + 2) ke CS, sehingga instruksi berikutnya yang akan dijalankan adalah procedure dari
interrupt service berdasarkan alamat pada interrupt vector.

Makalah Tentang Interupsi Pada Processor

Page 9

9. Ketika kembali dari rutin interrupt-service oleh instruksi Interrupt Return (IRET),
nilai IP, CS dan register Flag akan ditarik dari Stack dan kembali ke kondisi
sebelum terjadinya interrupt.

Fungsi yang tersedia dalam interrupt dapat terdiri dari layanan hardware seperti
screen, diskdrive, printer, serial port dan keyboard, maupun layanan secara software seperti
directory dan file.

Untuk melakukan panggilan terhadap rutin interrupt menggunakan perintah INT N


Dimana N merupakan nomor interrupt yang dapat bernilai 0 s/d 255, yang umumnya ditulis
secara hexadecimal 0 s/d FF Pada kenyataannya masing-masing interrupt terbagi lagi sub-sub
layanan, yang ditentukan pada nilai register AH, sebelum interrupt tersebut dipanggil,
sehingga kita dapat memiliki 256 x 256 = 65536 fungsi layanan. Hendra, MT. & Hartono,
M.Kom. 20 Pemrograman Bahasa Rakitan

d. Pemakaian Interrupt

Seperti yang telah dijelaskan sebelumnya, salah satu parameter layanan fungsi
interrupt adalah sub layanan yang ditentukan oleh nilai register AH, selain nilai register AH,
kita juga perlu mengisi nilai-nilai register lainnya sesuai dengan kebutuhan layanan interrupt
tersebut.
Contoh:
INT 21,9 - Print String
AH = 09
DS:DX = menunjuk alat suatu striung yang diakhir dengan "$"

returns nothing
- outputs character string to STDOUT up to "$"
- backspace is treated as non-destructive
- if Ctrl-Break is detected, INT 23 is executed

Berdasarkan data tersebut diatas, maka untuk pemakaian interrupt $21, sub layanan
$9dengan fungsi Print String, maka perlu ditentukan nilai register AH=$9, dan kemudian
nilai register DS:DX menunjuk ke alamat suatu string yang diakhiri dengan '$'. Coba kita
Makalah Tentang Interupsi Pada Processor

Page 10

review kembali program hello world sebelumnya. Dimana kita menggunakan INT $21 sub
layanan AH=$9 untuk mencetak tulisan yang berada dioffset DX=$102. Jadi dalam hal ini
AH dan DX merupakan parameter bagi INT $21.

0B11:0100 jmp 112


0B11:0102 db 'hello world !',0d,0a,'$'
0B11:0112 mov ah,9
0B11:0114 mov dx,102
0B11:0117 int 21
0B11:0119 mov ah,4c
0B11:011B int 21

Dalam hal ini kita tidak menentukan nilai DS, karena secara default pada program
jenis COM, nilai DS, ES, dan SS adalah sama dengan CS.

Pada contoh sebelumnya kita bekerja dengan rutin interrupt yang tidak
mengembalikan hasil, tetapi hanya proses mencetak string ke layar, berikut ini kita akan
membahas rutin interrupt yang mengembalikan hasil.

INT 21,8 - Console Input Without Echo


AH = 08
Hendra, MT. & Hartono, M.Kom. 21
Pemrograman Bahasa Rakitan
on return:
AL = character from STDIN
- returns 0 for extended keystroke, then function must be
called again to return scan code
- waits for character from STDIN and returns data in AL
- if Ctrl-Break is detected, INT 23 is executed
Berdasarkan data tersebut diatas, maka untuk menjalankan fungsi Int $21 Console
Input Without Echo, kita perlu ditentukan nilai register AH=$8, dan interrupt rutin akan
menunggu karakter dari STDIN, jika ada karakter yang diketik, maka akan disimpan di
register AL.
Makalah Tentang Interupsi Pada Processor

Page 11

Untuk kongkritnya mari kita lihat contoh berikut ini, dimana setelah mencetak pesan
Ketik huruf A untuk selesai, program akan menanti input dari keyboard dengan
menggunakan INT $21 sub layanan AH=$8, dan nilai ASCII dari input keyboard akan
dikembalikan di register AL. Selanjutnya program dapat membandingkan nilai register AL
dengan $41 (65 desimal).

0B11:0100 mov ah,9


0B11:0102 mov dx,113
0B11:0105 int 21
0B11:0107 mov ah,8 ;baca dari STDIN tanpa echo
0B11:0109 int 21 ;karakter dikembalikan ke AL
0B11:010B cmp al,41
0B11:010D jnz 100
0B11:010F mov ah,4c
0B11:0111 int 21
0B11:0113 db Ketik huruf A untuk selesai,0d,0a,$
0B11:0131

INT 21,3B - Change Current Directory (chdir)


AH = $3B
DS:DX = pointer to ASCIIZ path name
on return:
CF = 0 if successful
= 1 if error
AX = error code if CF set (see DOS ERROR CODES)
- changes the current directory to the directory specified
by pointer DS:DX

1 Fungsi yang tersedia dalam interrupt


Fungsi yang tersedia dalam interrupt dapat terdiri dari layanan hardware seperti
screen, diskdrive, printer, serial port dan keyboard, maupun layanan secara software seperti
directory dan file.

Makalah Tentang Interupsi Pada Processor

Page 12

Untuk melakukan panggilan terhadap routin interrupt menggunakan perintah INT N.


Dimana N merupakan nomor interrupt yang dapat bernilai 0 s/d 255, umumnya ditulis secara
hexadecimal 0 s/d FF. Pada kenyataannya masing-masing interrupt terbagi lagi sub-sub
layanan, yang ditentukan pada nilai register AH, sebelum interrupt tersebut dipanggil.
Sehingga kita dapat memiliki 256 256 = 65536 fungsi layanan.

2 Penyebab terjadinya Interrupt:


a. Program, terjadi akibat eksekusi suatu instruksi
b. Timmer, disebabkan oleh timmer prosessor
c. I/O, disebabkan oleh I/O controller baik sebagai tanda bahwa operasi
telah selesai maupun memberi tanda eror.
d.

Kegagalan hardware, disebabkan oleh kesalahan hardware seperti


power failure dan memori parity eror.

Ada dua aksi yang diberikan saat terjadi interrupt:


a. Syncronous I/O. I/O dijalankan, I/O selesai digunakan, kontrol
menginformasikan kembali ke user proses. Untuk menunggu selesai
digunakannya I/O, digunakan perintah wait.
b.Asyncronous I/O. Kembali ke user program tanpa harus menunggu I/O.

1. Pencegahan interrupt pada processor :


Interrupt ini terbagi lagi menjadi dua,yaitu: Maskable Interrupt(terjadi
karena

aksi luar) dan NonMaskable Interrupt(terjadi karena memori atau

kesalahan parity pada program) :

Maskable Interrupt
Processor dapat mencegah interrupt dengan menggunakan mask bit khusus interrupt.
Mask bit ini adalah bagian dari flag register pada microprocessor 8086 yang dikenal
sebagai interrupt flag (IF), jika bit ini clear (IF=0), dan terjadi permintaan interrupt
pada pin interrupt requaest, maka permintaan tersebut akan diabaikan.

Non-maskable interrupt
Ada beberapa interrupt yang mana tidak dapat di mask atau diabaikan oleh processor.
Hal ini terkait dengan tugas-tugas prioritas tinggi yang tidak boleh diabaikan (seperti

Makalah Tentang Interupsi Pada Processor

Page 13

terjadi pariti pada memori atau kegagalan BUS). NMI memiliki prioritas yang absolut,
dan ketika itu terjadi, processor menyelesaikan siklus memori saat ini, dan kemudian
bercabang ke routin khusus yang di tulis untuk menangani permintaan interrupt.
Tindak lanjut Pencegahan Interrupt :
1. Interrupt Handler
Jika terjadi interupsi, maka kendali processor diserahkan ke bagian penata interupsi
pada sistem operasi, maka penata interupsi inilah yang melaksanakan interupsi.
a.

Instruksi yang sedang diolah oleh processor dibiarkan sampai selesai program.

b. Penata interupsi merekam semua informasi proses ke dalam blok kendali proses.
c.

Penata interupsi mengidentifikasi jenis dan asal interupsi.

d. Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi.


e.

Penata interupsi mempersiapkan segala sesuatu untuk pelanjutan proses yang


diinterupsi.

2. Error handler
Yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem
operasi yang menata kegiatan akibat kekeliruan.
a.

Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan pemulihan


kekeliruan. Sehingga ketika menemukan kekeliruan sandi akan mengoreksi kekeliruan
itu, dan proses pulih kembali ke bentuk semula sebelum terjadi kekeliruan.

b. Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru dikerjakan


ulang. Jika kekeliruan dapat diatasi maka proses akan berlangsung seperti biasa, jika
tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari proses.
c.

Keluar dari proses, penata keliru menyiapkan tampilan berita keliru pada monitor,
setelah itu processor keluar dari proses , ini adalah tindakan terakhir jika tidak dapat
menolong proses yang keliru tersebut.

2. Contoh Penerapan Interrupt


Ada banyak contoh penerapan sistem interupsi mikroprosesor, tetapi pada modul ini
hanya akan diberikan 2 contoh saja, yaitu aplikasi pada mesin pengendali tungku otomatis
dan sistem alarm.

2.1. Pengendali Tungku Otomatis

Makalah Tentang Interupsi Pada Processor

Page 14

Pada Gambar 11.1 ditunjukkan rangkaian dasar pengendali tungku otomatis agar
suhu tungku tetap terjaga pada jangkauan 805 derajat Celcius. P1.7 digunakan untuk
menghidupkan dan mematikan pemanas sesuai dengan logika aktif tinggi (1 = ON dan 0 =
OFF). Sensor temparatur dihubungkan ke INT0 dan INT1 dengan ketentuan:
PANAS = 0, jika T > 850C
DINGIN = 0, jika T < 750C

AT8951
PANAS

INT0
P1.7

DINGIN

Kendali
Tungku

INT1

Gambar 11.1 Rangkaian Dasar Pengendali Tungku


Dengan demikian program harus mampu menghidupkan tungku saat suhu kurang dari
750C dan mematikannya saat suhu lebih dari 850C. Diagram pewaktuan sistem ini
diperlihatkan pada Gambar 11.2 di bawah ini.

T = 85oC
T = 80oC

T = 75oC
PANAS

DINGIN
P1.7

Gambar 11.2 Diagram Pewaktuan Pengendali Tungku

Makalah Tentang Interupsi Pada Processor

Page 15

Pada program diatas, tiga instruksi pertama pada program utama (baris ke-13 hingga ke15) digunakan untuk mengaktifkan interupsi dan menjadikan INT0 dan INT1 jenis interupsi
tepian sisi negatif (negative edge trigerred). Karena kondisi masukan-masukan PANAS
(P3.3) dan DINGIN (P3.2) saat itu belum diketahui, maka tiga instruksi berikutnya (baris ke16 hingga ke-18) dibutuhkan untuk menghidupkan atau mematikan tungku. Sedangkan pada
baris ke-19, pengendali akan diam untuk menunggu sampai ada interupsi terjadi.
Secara keseluruhan, pertama tungku dihidupkan (SETB P1.7 pada baris ke-16).
Kemudian, masukan dari PANAS diperikasa (baris ke-17). Jika tidak panas, atau suhunya
kurang dari 75oC, tungku dibiarkan menyala, ON, dan program menunggu. Namun, bila
suhunya telah melebihi 85oC tungku akan dipadamkan, OFF, dengan cara memberikan
instruksi CLR P1.7 pada baris ke-18. Setelah itu, program akan menunggu.
Pada masa menunggu inilah, interupsi dipersilakan oleh program. Jika terjadi interupsi
dari EXT0, berarti sensor mendeteksi bahwa suhu tungku telah melebihi 85oC, sehingga
tungku harus dipadamkan (instruksi ini terdapat pada baris ke-6). Demikian pula sebaliknya,
jika terdapat interupsi EXT1, berarti sensor mendeteksi bahwa suhu tungku lebih rendah dari
75oC, sehingga tungku harus dinyalakan (instruksi ini terdapat pada baris ke-9).

2.2. Sistem Alarm

Akan dirancang suatu sistem alarm yang diaktifkan melalui interupsi. Sistem ini akan
menghasilkan alarm 400 Hz selama 1 detik. Rangkaian dasar sistem alarm ditampilkan pada
Gambar 11.3, dimana speaker dihubungkan dengan P1.0 akan aktif jika dideteksi pintu
terbuka melalui saluran INT0 dengan sistem pemicuan tepi transisi 1 ke 0.
AT8951

IC 7404
INT0

Speaker

P1.7

pintu
terbuka

Gambar 11.3 Rangkaian Dasar Sistem Alarm

Makalah Tentang Interupsi Pada Processor

Page 16

Untuk menghasilkan alarm dengan frekuensi 400 Hz selama 1 detik, maka perlu
dirancang diagram pewaktuannya, seperti yang tampak pada Gambar 11.4 di bawah ini.

1 detik

P1.0

P1.0
1.25 ms
2.5 ms

400 Hz
Gambar 11.4. Diagram Pewaktuan Sistem Alarm

Dalam kasus ini, digunakan tiga buah interupsi, yaitu: interupsi eksternal 0 (INT0)
untuk sensor pintu, interupsi timer 1 (ET1) untuk menghasilkan alarm atau nada 400 Hz dan
interupsi timer 0 (ET0) untuk memberikan tundaah 1 detik.
Program utama, diawali pada alamat 30H, hanya mengandung 4 (empat) buah
instruksi saja. Instruksi pertama (baris ke-12) menjadikan pemicu interupsi (berasal dari
sensor pintu) diaktifkan secara transisi dari 1 ke 0 (negative edge trigerred). Kemudian,
diikuti konfigurasi untuk Timer0 dan Timer1 sebagai pewaktu 16 bit (baris ke-13). Setelah
itu, pengaturan interupsi pada baris ke-14 dimana hanya interupsi eksternal saja yang
diaktifkan. Program utama ini diakhiri pada baris ke-15 dengan menunggu interupsi yang
akan terjadi.
Saat sensor pintu mendeteksi pintu terbuka (ditandai dengan transisi 1 ke 0 pada
INT0), sebuah interupsi eksternal EX0RL1 diaktifkan. Subrutin interupsi EX0RL1 diawali
dengan menyimpan konstanta 20 ke Register R7 (baris ke-25). Kemudian, tanda limpahan
untuk kedua Timer disiapkan untuk mengaktifkan interupsi Timer0 dan Timer1 (baris ke-18
Makalah Tentang Interupsi Pada Processor

Page 17

dan ke-19). Interupsi Timer tersebut hanya akan aktif, jika bit-bit yang terkait dalam register
Interrupt, yaitu ET0 dan ET1 juga aktif (baris ke-20 dan ke-21).
Timer0 digunakan untuk memberikan tundaan selama 1 detik, sedangkan Timer1
dimanfaatkan untuk membangkitkan frekuensi 400 Hz yang dihubungkan ke buzzer atau
speaker melalui port P1.0 Setelah EX0RL1 selesai dikerjakan, segera terjadi interupsi timer,
baik Timer0 maupun Timer1. Karena adanya polling, maka interupsi Timer0 yang dikerjakan
terlebih dahulu. Tundaan selama 1 detik dihasilkan dengan cara mengulang 20 kali tundaa
50000 us (dalam hal ini, R7 dijadikan sebagai penghitung, seperti tercantum pada baris ke-17
dan ke-25). Pada saat penundaan selama 1 s berlangsung, yang terjadi adalah sebagai berikut:
Pertama, Timer0 akan dinonaktifkan (baris ke-24) dan register R7 diturunkan 1 nilainya,
kemudian, TL0 dan TH0 diisi-ulang dengan -50000 (baris ke-30 dan ke-31). Timer0
kemudian dihidupkan kembali (baris ke-32) dan selesai. Saat terakhir kali pengulangan
(looping), nilai register R7 diturunkan sehingga berharga 0. Kedua Timer dimatikan (baris ke26 dan ke-27) dan selesai. Tidak ada interupsi Timer lagi hingga dideteksi interupsi eksternal
(dari pintu) berikutnya.
Timer1 digunakan untuk menghasilkan nada 400 Hz. Dalam hal ini frekuensi 400 Hz
membutuhkan periode gelombang sebesar 2500 us atau masing-masing 1250 us untuh sinyal
HIGH dan LOW, seperti yang tampak pada Gambar 11.4.
3. Siklus Instruksi
v Instruction Addess Calculation (IAC), yaitu mengkalkulasi atau menentukan alamat
instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan tetap
ke alamat instruksi sebelumnya
v Instruction Fetch (IF), yaitu membaca atau pengambil instruksi dari lokasi memorinya ke
CPU
v Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk menentukan
jenis operasi yang akan dibentuk dan operand yang akan digunakan
v Operand Address Calculation (OAC), yaitu menentukan alamat operand, hal ini dilakukan
apabila melibatkan referensi operand pada memori
v Operand Fetch (OF), adalah mengambil operand dari memori atau dari modul 1/0
v Data Operation (DO), yaitu membentuk operasi yang diperintahkan dalam instruksi
Makalah Tentang Interupsi Pada Processor

Page 18

v Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori


-Fungsi Interrupt
v Fungsi interupsi adalah mekanisme penghentian atau pengalihan pengolahan instruksi
dalam CPU kepada routine interupsi. Hampir semua modul (memori dan I/0) memiliki
mekanisme yang dapat menginterupsi kerja CPU
v Tujuan interupsi secara umum untuk menejemen pengeksekusian routine instruksi agar
efektif dan efisien antar CPU dan modul - modul I/0 maupun memori
v Setiap komponen komputer dapat menjalankan tugasnya secara bersamaan, tetapi kendali
terletak pada CPU disamping itu kecepatan eksekusi masing - masing modul berbeda
sehingga dengan adanya fungsi interupsi ini dapat sebagai sinkronisasi kerja antar modul
4. Sinyal Interupsi
v Program, yaitu interupsi yang dibangkitkan dengan beberapa kondisi yang terjadi pada
hasil eksekusi program. Contohnya: arimatika overflow, pembagian nol, oparasi ilegal
v Timer, adalah interupsi yang dibangkitkan pewaktuan dalam prosesor. Sinyal ini
memungkinkan sistem operasi menjalankan fungsi tertentu secara reguler
v //0, sinyal interupsi yang dibangkitkan oleh modul I/0 sehubungan pemberitahuan kondisi
error dan penyelesaian suatu operasi
v Hardware failure, adalah interupsi yang dibangkitkan oleh kegagalan daya atau kesalahan
paritas memori
5. Mekanisme Interupsi
v Saat suatu modul telah selesai menjalankan tugasnya dan siap menerima tugas berikutnya
maka modul ini akan mengirimkan permintaan interupsi ke prosesor
v Prosesor akan menghentikan eksekusi yang dijalankannya untuk menghandel routine
interupsi
v Setelah program interupsi selesai maka prosesor akan melanjutkan eksekusi programnya
kembali

Makalah Tentang Interupsi Pada Processor

Page 19

v Saat sinyal interupsi diterima prosesor ada dua kemungkinan tindakan, yaitu interupsi
diterima/ditangguhkan dan interupsi ditolak
6.

Iterupsi Ditangguhkan

v Prosesor menangguhkan eksekusi program yang dijalankan dan menyimpan konteksnya.


Tindakan ini adalah menyimpan alamat instruksi berikutnya yang akan dieksekusi dan data
lain yang relevan
v Prosesor menyetel program counter (PC) ke alamat awal routine interrupt handler

Makalah Tentang Interupsi Pada Processor

Page 20

BAB III
Penutup
1. Kesimpulan
Interrupsi atau bisa disebut Interrupt memiliki pengertian suatu permintaan khusus
kepada mikroprosessor untuk melakukan sesuatu. Bila terjadi interupsi, mikroprosesor akan
menghentikan dahulu apa yang sedang dikerjakannya dan mengerjakan permintaan khusus
tersebut. Atau secara harfiah, Interrupt dalam bahasa Indonesianya diartikan sebagai selaan,
menyela, atau menjegal.
Apabila sebuah komputer melakukan prosesnya tanda ada gangguan, tentu komputer
tersebut dapat menyelesaikan pekerjaannya dengan serius khusus untuk satu pekerjaan yang
sedang dikerjakannya. Dalam kondisi demikian, komputer anda melakukan tugasnya yang
disebut dengan primitive batch processing. Pekerjaan seperti ini digunakan oleh komputer
pada komputer zaman awal-awal ditemukannya. Dimana komputer tidak bisa mengerjakan
beberapa program sekaligus dalam waktu bersamaan, sampai satu pekerjaan selesai
dikerjakan, maka baru dia bisa berpindah ke pekerjaan lainnya.
Dan pada saat ini, komputer terkini memiliki kemampuan interrupt ini. Penulis
melakukan pengetikkan naskah ini sambil mendengarkan musik yang terpasang pada
notebook yang digunakan, tidak jarang komputer ini juga sambil terhubung dengan Internet
untuk membuka halaman web atau mengambil beberapa file

Makalah Tentang Interupsi Pada Processor

Page 21

Anda mungkin juga menyukai