Selasa, 27 November 2018
IRQs
Pengertian Interrupt
Interupsi atau interrupt 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 di minta oleh yang
menginterupsi, setelah selesai maka aliran program akan kembali ke pernyataan
program sebelum terjadinya interupsi. Interupsi merupakan sub rutin yang sudah
tersedia dalam memori komputer.
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 yang melayani
suatu interupsi dinamakan Interrupt Handler, dan hanya dijalankan jika terjadi
sesuatu kejadian khusus (event). Kejadian ini bisa berupa timer yang mengalami
overflow, penerimaan karakter melalui port serial, mengirimkan karakter melalui
port serial, atau salah satu dari dua kejadian eksternal. Setiap interrupt akan
mengekseskusi interrupt handlernya masing masing berdasarkan nomornya.
Sedangkan alamat dari masing masing interrupt 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 interrupt handler
yang bersangkutan. Jadi besarnya array itu adalah 256 elemen dengan ukuran
elemen masing masing 4 byte. Total keseluruhan memori yang di pakai adalah
sebesar 1024 byte (256x4=1024) atau 1 KB dan disimpan dalam lokasi memori
absolut 0000h sampai 3FFh. Array sebesar 1 KB ini disebut interrupt vector
table. Nilai nilai yang terkandung pada interrupt vector table ini tidak akan
sama di satu komputer dengan yang lainnya.
Proses yang dilakukan oleh mikrokontroler saat melayani
interrupt adalah sebagai berikut. Proses yang terjadi saat mikrokontroler melayani
interrupt adalah sebagai berikut:
- Instruksi terakhir yang sedang dijalankan diselesaikan
terlebih dahulu
- Program Counter (alamat dari instruksi yang sedang
berjalan) disimpan ke stack
- Interrupt Status disimpan secara internal
- Interrupt dilayani sesuai peringkat dari interrupt
(lihat Interrupt Priority)
Program
Counter terisi dengan alamat dari vector interrupt (lihat Interrupt Vector)
sehingga mikrokontroler langsung menjalankan program yang terletak pada vector
interrupt Program pada vector interrupt biasanya diakhiri dengan instruksi RETI
di mana pada saat ini proses yang terjadi pada mikrokontroler adalah sebagai
berikut:
- Program Counter di isi
dengan alamat yang tersimpan dalam stack pada saat interrupt terjadi sehingga
mikrokontroler kembali meneruskan program di lokasi saat interrupt terjadi.
- Interrupt Status dikembalikan ke kondisi terakhir sebelum terjadi
interrupt.
Interupsi terjadi bila suatu perangkat Input/output ingin
memberitahu prosesor bahwa ia siap menerima perintah, output sudah
dihasilkan,atau terjadi error.
1.
Jenis Interupsi
a.
Internal HW interruptions :
1)
Ditimbulkan/digenerasi oleh
peristiwa tertentu yang terjadi pada waktu/selama eksekusi program.
2)
Diatur oleh HW dan tidak dapat
dirubah.
3)
Contoh : tipe interrupt untuk
counter clock internal; HW call interrupt ini untuk memaintance “time to date.”
b.
External HW interrupstion
1)
Ditimbulkan/digenerasi oleh
devais peripheral, seperti keyboard, printers, mouse, dsb.
2)
Biasa juga ditimbulkan/digenerasi
oleh Co-processor
3)
Tidak mungkin mendeaktivekan
4)
Tidak dikirim langsung ke CPU,
melainkan ke IC yang memiliki fungsi untuk menghandle secara eksklusive
interrupts ini.
2. Software interruption :
a.
Diaktifkan langsung oleh
assembler melalui sejumlah interupsi yang di harapkan dengan intruksi INT
b.
Terdapat 2 jenis : DOS
interrupstions & BIOS interruptions. Perbedaan nya, DOS interruptions lebih
mudah digunakan, namun lebih lambat, karena interruptions jenis ini menggunakan
BIOS, BIOS interruptions lebih cepat, namun banyak kerugiannya karena BIOS
bagian HW dan HW-specific. Pemilihan interrupt tergantung pada karakteristik
yang akan kita berikan pada program : SPEED -> BIOS interruptions .
PORTABILITY -> DOS interruptions.
3.
Fungsi
interupsi sebagai berikut :
a.
Interupsi memindahkan pengendalian kepada interrupt
service routine melalui interrupt vektor yang berisi alamat dari semua service
routine.
b. Arsitektur
interrupt harus menyimpan alamat intruksi yang di interrupt.
c. Interrupt yang
datang berikutnya dibatalkan ketika interrupt lain sedang diproses untuk
mencegah hilangnya suatu interrupt.
d. Trap adalah
software generated interrupt yang disebabkan oleh kesalahan atau karena permintaan user.
e.
Suatu sistem operasi dikendalikan oleh interrupt.
4.
Ada beberapa
tahapan dalam penanganan interupsi:
Pertama-tama Controller mengirimkan
sinyal interupsi melalui interrupt-request-line, lalu Sinyal interupsi tersebut
dideteksi oleh prosesor. Selanjutnya Prosesor akan terlebih dahulu menyimpan
informasi tentang keadaan state-nya(informasi Tentang proses yang sedang
dikerjakan). Kemudian Prosesor mengidentifikasi penyebab interupsi dan
mengakses tabel vektor interupsi untuk menentukan interrupt handler.
Selanjutnya Transfer kontrol ke
interrupt handler. Setelah interupsi berhasil diatasi, prosesor akan kembali
kekeadaan seperti sebelum terjadinya interupsi dan melanjutkan pekerjaan yang
tadi sempat tertunda.
Polling atau juga disebut Busy-waiting
adalah ketika host mengalami looping yaitu membaca status register secara
terus-menerus sampai status busy di-clear. Pada dasarnya polling dapat
dikatakan efisien. Akan tetapi polling menjadi tidak efisien ketika setelah
berulang-ulang melakukan looping, hanya menemukan sedikit device yang siap
untuk men-service, karena CPU processing yang tersisa belum selesai.
Interrupt Vector
Interrupt Vector adalah harga yang
disimpan ke Program Counter pada saat terjadi interrupt sehingga program akan
menuju ke alamat yang ditunjukkan oleh Program Counter. Pada saat program
menuju ke alamat yang ditunjuk oleh Interrupt Vector maka flag-flag yang set
karena terjadinya interrupt akan di-clear kecuali RI dan TI.
Masing-masing alamat vektor mempunyai
jarak yang berdekatan sehingga akan timbul masalah bila diperlukan sebuah
Interrupt Service Routine yang cukup panjang.
b. Penanganan
Interupsi
1.
Ada beberapa tahapan dalam penanganan interupsi:
2.
Controller mengirimkan sinyal interupsi melalui interrupt-request-line
3.
Sinyal dideteksi oleh prosesor
4.
Prosesor akan terlebih dahulu menyimpan informasi tentang
keadaan state-nya (informasi tentang proses yang sedang dikerjakan)
5.
Prosesor mengidentifikasi penyebab interupsi dan
mengakses tabel vektor interupsi untuk menentukan interrupt handler
6.
Transfer kontrol ke interrupt handler
7.
Setelah interupsi berhasil diatasi, prosesor akan kembali
ke keadaan seperti sebelum terjadinya interupsi dan melanjutkan pekerjaan yang
tadi sempat tertunda.
c.
Tipe-Tipe Interupsi
1)
Interupsi Clock (Clock
Interrupt)
Sistem operasi (penjadwalan) menentukan
apakah proses yang sedang running telah mengeksekusi selama jatah waktunya. Jika telah mencapai jatahnya, maka
proses dialihkan ke state ready dan proses lain dijadwalkan running.
2)
Interupsi Masukan/Keluaran (I/O
Interrupt)
Kejadian dimana peralatan
masukan/keluaran interupsi meminta layanan sistem operasi. Sistem Operasi
segera menentukan aksi-aksi masukan/keluaran yang harus dilakukan. IRQ (Interupt Request) adalah nomor yang
terdapat di dalam komputer untuk Permintaan Interupsi (Interrupt Request).
Interrupt Request dipergunakan oleh perangkat (device) dan memungkinkannya
untuk meng-“interupsi”, atau untuk mengirim sinyal ke komputer ketika telah
menyelesaikan suatu proses.
Pada
komputer model lama, kita harus men-set nilai IRQ untuk suatu device. Komputer
dan Sistem operasi yang lebih baru menggunakan “Plug-n-Play”, yang memungkinkan
pengguna komputer untuk tidak perlu men-set nilai IRQ secara manual.
2.2 Macam – macam
IRQ pengendali proses
1.
IRQ 0: System timer
Dikhususkan
untuk timer (pewaktu) internal sistem. Tidak pernah tersedia untuk periferal
atau device lain.
2.
IRQ 1: Keyboard
Dikhususkan
untuk Pengendali Keyboard (Keyboard Controller). Pada device tanpa keyboard,
interupt ini dikhususkan untuk pengendali keyboard.
3.
IRQ 2: Cascade interrupt for IRQs 8-15
Mengalirkan (cascade) Interupt kedua ke yang
pertama.
4.
IRQ 3: Second Serial Port (COM2)
Interupt untuk
Port Serial yang kedua. Seringkali menjadi interupt default untuk Port Serial
yang keempat (COM4).
5.
IRQ 4: First Serial Port (COM1)
Normalnya
untuk Port Serial yang pertama. Pada device yang tidak mempunyai mouse ps/2,
hampir selalau digunakan oleh mouse serial. Juga sebagai interupt default bagi
Port Serial yang ketiga (COM3).
6.
IRQ 5: SoundCard
Pilihan pertama untuk Soundcard, ketika harus mencari
setting IRQ.
7.
IRQ 6: Floppy Disk Controller
Khusus untuk floppy disk controller.
8.
IRQ 7: First Parallel Port
Normalnya,
khusus untuk penggunan printer. Jika printer tidak digunakan, interupt ini
dapat digunakan untuk device lain yang menggunakan Port Paralel.
9.
IRQ 8: Real-time Clock
Khusus untuk Real-Time Clock Timer.
10.
IRQ 9: Open interrupt
Dibiarkan terbuka untuk penggunaan periferal
11.
IRQ 10: Open interrupt
Dibiarkan terbuka untuk penggunaan periferal
12.
IRQ 11: Open interrupt
Dibiarkan terbuka untuk penggunaan periferal
13.
IRQ 12: PS/2 Mouse
Dikhususkan
untuk mouse PS/2 pada mesin yang menggunakan mouse PS/2. Jika tidak digunakan
untuk mouse PS/2, dapat digunakan untuk periferal lain, misalnya seperti Kartu
Jaringan
14.
IRQ 13: Floating Point Unit / Coprocessor
Khusus untuk
Unit Floating Point, yang menggunakannya untuk aktivitas Pensinyalan Internal
15.
IRQ 14: Primary IDE Channel
Khusus untuk
Pengendali IDE Primer. Pada sistem yang tidak menggunakan device IDE, IRQ
(interupt request) dapat digunakan untuk maksud lainnya.
16.
IRQ 15: Secondary IDE Channel
Khusus untuk Pengendali IDE Sekunder.
2.3 IRQ sebagai
pengendali proses I/O
Pengertian
IRQ (Interrupt ReQuest), adalah sekelompok interupsi (umumnya mulai dari
interrupt 20h hingga 2Fh) yang khusus berasal dari perangkat keras (hardware)
komputer seperti COM1, LPT1, VGA dan lain-lain.
Sebetulnya,
urutan kedatangan data yang diterima oleh perangkat keras adalah acak. Oleh
karena itu, prinsip yang digunakan adalah dengan melakukan interupsi.
Jadi,
ketika perangkat keras komputer sudah merasa perlu untuk mengirimkan data
didapatkan, perangkat keras tersebut akan mengirimkan sinyal IRQ ke
mikroprosesor dengan bantuan Interrupt Controller.
Menanggapi
interupsi tersebut, mikroprosesor langsung menangani permintaan interupsi
tersebut dengan mengambil data yang diberikan oleh perangkat keras. Setelah
selesai, mikroprosesor akan melanjutkan proses yang tertunda akibat interupsi
tersebut.
PENUTUP
3.1 Kesimpulan
Interupsi
atau interrupt 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 di minta oleh yang
menginterupsi, setelah selesai maka aliran program akan kembali ke pernyataan
program sebelum terjadinya interupsi.
Jenis
interupsi yaitu Internal HW interruptions, External HW interruptions, dan Software
Interruptions. Software Interruptions di bagi menjadi 2 yaitu Vector Interrupt
ROM BIOS dan Interrupt DOS. Penyebab terjadi interupsi seperti Program,
Hardware Failure, I/O, Timer, menangani Exception, Mengatur virtual memory,
Menangani perangkat lunak interupsi, Menangani alur kontrol kernel.
Fungsi
interupsi yaitu mekanisme penghentian atau pengalihan pengolahan intruksi dalam
CPU kepada routine interupsi dengan tujuan secara umum yaitu untuk manajemen
pengeksekusian routine intruksi agar efektif dan efisien antar CPU dan modul –
modul I/O maupun memori.
Tipe-tipe
interupsi: interupsi clock dan interupsi masukan/keluaran. Macam-macam
interupsi yaitu IRQ 1: Keyboard, IRQ 0: System timer, IRQ 2: Cascade interrupt
for IRQs 8-15, IRQ 3: Second Serial Port (COM2), IRQ 4: First Serial Port
(COM1), IRQ 5: SoundCard, IRQ 6: Floppy Disk Controller, IRQ 7: First Parallel
Port, IRQ 8: Real-time Clock, IRQ 9: Open interrupt, IRQ 10: Open interrupt,
IRQ 11: Open interrupt, IRQ 12: PS/2 Mouse, IRQ 13: Floating Point Unit /
Coprocessor, IRQ 14: Primary IDE Channel, IRQ 15: Secondary IDE Channel.
TERIMAKASIH
Langganan:
Postingan (Atom)
BASIC SECURITY POLICY
Keamanan Jaringan Basic Security Policy atau Keamanan Jaringan adalah fondasi dan tolak ukur untuk semua masalah keamanan lainnya di org...
-
Pengertian Interrupt Interupsi atau interrupt adalah suatu permintaan khusus pada mikroprocessor untuk melakukan sesuatu, jika terjadi in...
-
Keamanan Jaringan Basic Security Policy atau Keamanan Jaringan adalah fondasi dan tolak ukur untuk semua masalah keamanan lainnya di org...
-
file:///C:/Users/user/Downloads/google067cdb89bbe0e777(2).html