2014
Interupsi Procesor
Created By
NUR WAHID
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER (STMIK) NURDIN HAMZAH PROGRAM STUDI STUDI TEKNIK 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.
3
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 80±5 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 85 0C. Diagram pewaktuan sistem ini diperlihatkan pada Gambar 11.2 di bawah ini.
o
T = 85 C o
T = 80 C o
T = 75 C
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 I nstru ction Addess Calculation ( I AC), yaitu mengkalkulasi atau menentukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan tetap ke alamat instruksi sebelumnya v I nstruction Fetch (I F ), yaitu membaca atau pengambil instruksi dari lokasi memorinya ke CPU v I nstru ction Operati on Decoding (I OD), yaitu menganalisa instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan v Oper and Addr ess Calcul ation ( OAC), yaitu menentukan alamat operand, hal ini dilakukan apabila melibatkan referensi operand pada memori v Operan d F etch (OF ), adalah mengambil operand dari memori atau dari modul 1/0 v Data Operati on (D O), yaitu membentuk operasi yang diperintahkan dalam instruksi
Makalah Tentang Interupsi Pada Processor
Page 18
v Oper and 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