alexa-tracking
Selamat Guest, Agan dapat mencoba tampilan baru KASKUS Masih Kangen Tampilan Sebelumnya
Kategori
Kategori
Home / FORUM / All / Tech / ... / Hardware Computer /
Apa itu IRQs pada Komputer
1024
1024
KASKUS
51
244
https://www.kaskus.co.id/thread/5bfd58fa54c07a2e228b4567/apa-itu-irqs-pada-komputer

Apa itu IRQs pada Komputer

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.

Sumber : http://ulickfahindra.blogspot.com/
 
TERIMAKASIH


Beri apresiasi terhadap thread ini Gan!


×
GDP Network
© 2018 KASKUS, PT Darta Media Indonesia. All rights reserved
Ikuti KASKUS di