Interrupt

Interrupts

Dalam komputasi, interrupt adalah asynchronous sinyal menunjukkan perlunya perhatian atau acara sinkron lunak menunjukkan perlunya perubahan dalam pelaksanaan.

Sebuah perangkat keras menyebabkan menginterupsi prosesor untuk menghemat dengan keadaan dan memulai pelaksanaan eksekusi dari suatu interrupt handler.

Software menyela biasanya diimplementasikan sebagai petunjuk dalam set instruksi, yang menyebabkan konteks beralih ke penangan interrupt mirip dengan hardware menyela.

Menyela adalah teknik yang umum digunakan untuk multitasking komputer, khususnya secara real-time computing. Such a system is said to be interrupt-driven.Sistem seperti dikatakan menyela-driven.

Hardware menyela diperkenalkan sebagai cara untuk menghindari membuang-buang waktu yang berharga prosesor dalam polling loop, menunggu peristiwa eksternal. Mereka mungkin diimplementasikan dalam perangkat keras sebagai suatu sistem yang berbeda dengan kontrol baris, atau mereka dapat diintegrasikan ke dalam subsistem memori.

Jika diimplementasikan dalam perangkat keras, rangkaian pengontrol interupsi seperti IBM PC Programmable Interrupt Controller (PIC) dapat dihubungkan antara perangkat menyela dan menyela prosesor pin untuk multipleks beberapa sumber interupsi ke satu atau dua baris CPU biasanya tersedia. Jika dilaksanakan sebagai bagian dari memori controller, potong dipetakan ke dalam sistem ruang alamat memori.

Menyela dapat dikelompokkan menjadi: maskable interrupt (IRQ), non-maskable interrupt (NMI), interprocessor menyela (IPI), perangkat lunak mengganggu, dan palsu menyela.



  • Sebuah maskable mengganggu (IRQ) adalah hardware interrupt yang dapat diabaikan dengan menetapkan sedikit di interrupt mendaftar topeng's (IMR) bit-mask.

  • Demikian pula, seorang non-maskable interrupt (NMI) adalah hardware interrupt yang tidak memiliki sedikit terkait-topeng, sehingga tidak pernah dapat diabaikan. NMIs are often used for timers, especially watchdog timers . NMIs sering digunakan untuk penghitung waktu, terutama pengawas timer.

  • Sebuah interprocessor mengganggu adalah kasus khusus dari interupsi yang dihasilkan oleh satu prosesor untuk mengganggu prosesor lain dalam suatu sistem multiprosesor.

  • adalah interrupt dihasilkan dalam prosesor dengan mengeksekusi sebuah instruksi. Software interrupts are often used to implement System calls because they implement a subroutine call with a CPU ring level change. Software menyela sering digunakan untuk mengimplementasikan Sistem panggilan karena mereka melaksanakan suatu subroutine panggilan dengan tingkat cincin CPU perubahan.

  • Sebuah palsu interupsi interupsi perangkat keras yang tidak diinginkan. Mereka biasanya dihasilkan oleh kondisi sistem seperti gangguan listrik pada garis interupsi atau melalui perangkat keras yang dirancang salah.



Prosesor biasanya memiliki topeng interrupt internal perangkat lunak yang memungkinkan untuk mengabaikan semua perangkat keras eksternal menyela sementara diatur. Topeng ini mungkin menawarkan akses lebih cepat daripada mengakses topeng interupsi mendaftar (IMR) di sebuah PIC, atau penghentian menyela dalam perangkat itu sendiri.Dalam beberapa kasus, seperti x86 arsitektur, nonaktifkan dan memungkinkan mengganggu pada prosesor itu sendiri bertindak sebagai penghalang memori, dalam hal ini sebenarnya bisa lebih lambat.

Interupsi yang meninggalkan mesin di sebuah negara yang terdefinisi dengan baik disebut interrupt yang tepat.

Seperti interupsi memiliki empat sifat:

  • Program Counter (PC) akan disimpan dalam tempat yang dikenal.

  • Semua instruksi sebelum yang satu yang ditunjuk oleh PC telah sepenuhnya dijalankan.

  • Tidak ada instruksi melampaui satu yang ditunjuk oleh PC telah dieksekusi (yang tidak ada larangan pengajaran di luar itu pada PC, itu hanya bahwa perubahan apapun yang mereka buat untuk register atau memori harus dibatalkan sebelum menyela terjadi).

  • Keadaan pelaksanaan instruksi yang ditunjuk oleh PC diketahui.

Interupsi yang tidak memenuhi persyaratan ini disebut interrupt tidak tepat.

Fenomena di mana kinerja sistem secara keseluruhan sangat terhalang oleh jumlah berlebihan menghabiskan waktu proses penanganan interupsi disebut badai interupsi.

Jenis Interrupts

Level-dipicu

Tingkat A-memicu interupsi adalah sekelompok menyela di mana keberadaan interupsi unserviced ditunjukkan dengan tingkat tinggi (1), atau tingkat rendah (0), dari permintaan menyela baris. Perangkat yang ingin sinyal interupsi drive baris ke tingkat aktif, dan kemudian menggenggamnya di tingkat itu sampai diservis.Itu berhenti menegaskan baris perintah saat CPU untuk menangani atau kondisi yang menyebabkan hal itu sebagai tanda menyela.

Biasanya, prosesor sampel yang mengganggu pada standar input kali selama setiap siklus bus seperti T2 negara untuk Z80 mikroprosesor. Jika interupsi ini tidak aktif pada saat prosesor sampel itu, CPU tidak melihatnya. Satu kemungkinan penggunaan untuk jenis interupsi ini adalah untuk meminimalkan sinyal palsu dari interupsi yang bising baris: sebuah pulsa palsu akan sering begitu singkat bahwa hal itu tidak menyadarinya.

Beberapa perangkat mungkin berbagi memicu tingkat-baris mengganggu jika mereka dirancang untuk. Garis yang mengganggu harus mempunyai pull-down atau pull-up resistor sehingga ketika tidak aktif didorong itu mengendap ke keadaan tidak aktif. Perangkat aktif menegaskan garis untuk menunjukkan interrupt yang luar biasa, tetapi membiarkan garis mengambang (tidak aktif drive itu) bila tidak sinyal interupsi.Jalur ini kemudian dalam negara menegaskan, bila ada (satu atau lebih dari satu) dari perangkat berbagi sinyal interupsi yang luar biasa.

Kelas ini menyela lebih disukai oleh beberapa karena perilaku yang nyaman ketika garis dibagi. Setelah mendeteksi penegasan dari garis menyela, CPU harus mencari melalui perangkat berbagi sampai salah satu layanan yang memerlukan terdeteksi. Setelah melayani perangkat ini, CPU dapat memeriksa ulang status garis memotong untuk menentukan apakah perangkat lain juga perlu layanan. Jika baris ini sekarang de-menegaskan, menghindari CPU memeriksa perangkat yang tersisa di baris. Sejak beberapa perangkat menyela lebih sering daripada yang lain, dan perangkat lain menyela sangat mahal, yang hati-hati memesan perangkat cek ini digunakan untuk meningkatkan efisiensi.

Ada juga masalah serius dengan tingkat berbagi-dipicu menyela. Selama salah satu perangkat pada baris permintaan yang luar biasa untuk pelayanan telepon tetap menegaskan, sehingga tidak mungkin untuk mendeteksi perubahan dalam status perangkat lain. Menunda melayani sebuah perangkat prioritas rendah bukanlah pilihan, karena ini akan mencegah deteksi permintaan layanan dari perangkat prioritas lebih tinggi. Jika ada perangkat pada garis bahwa CPU tidak tahu bagaimana layanan, maka setiap interupsi dari perangkat yang secara permanen blok semua menyela dari perangkat lain.

Asli PCI standar tingkat-shareable diamanatkan dipicu menyela. Alasan untuk ini adalah memperoleh efisiensi yang dibahas di atas. (Versi yang lebih baru PCI memungkinkan, dan PCI Express membutuhkan penggunaan tanda pesan-potong.)

Ujung-dipicu

Yang ujung-memicu interupsi adalah kelas yang menandai potong oleh transisi tingkat di garis menyela, baik yang jatuh tepi (1 sampai 0) atau sisi kenaikan (0 to 1). Perangkat yang ingin drive sinyal interupsi sebuah pulsa ke garis dan kemudian melepaskan baris ke keadaan diam. Jika denyut nadi ini terlalu singkat untuk dapat dideteksi oleh jajak pendapat I / O maka perangkat keras khusus mungkin diperlukan untuk mendeteksi tepi.

Beberapa perangkat mungkin berbagi dipicu mengganggu ujung-line jika mereka dirancang untuk. Garis yang mengganggu harus mempunyai pull-down atau pull-up resistor sehingga ketika tidak aktif didorong itu mengendap ke satu negara tertentu. Perangkat sinyal interupsi oleh sebentar mengemudi baris ke negara non-standar, dan membiarkan garis mengambang (tidak aktif drive itu) bila tidak sinyal interupsi. This type of connection is also referred to as open collector . Jenis koneksi ini juga disebut sebagai kolektor terbuka. Garis kemudian membawa semua pulsa yang dihasilkan oleh semua perangkat. (Hal ini analog dengan daya tarik tali pada beberapa bus dan troli bahwa setiap penumpang dapat menarik untuk sinyal sopir bahwa mereka meminta berhenti.) Namun demikian, menyela pulsa dari berbagai perangkat mungkin bergabung jika mereka terjadi dalam waktu dekat. Untuk menghindari kehilangan menyela CPU harus memicu di tepi trailing pulsa (misalnya sisi kenaikan jika garis ditarik ke atas dan digerakkan rendah). Setelah mendeteksi interupsi CPU harus memeriksa semua perangkat untuk persyaratan layanan.

Ujung-sela dipicu tidak menderita masalah yang memicu tingkat-sela miliki dengan berbagi. Layanan dari perangkat prioritas rendah dapat ditunda sewenang-wenang, dan menyela akan terus diterima dari perangkat prioritas tinggi yang sedang dilayani. Jika ada perangkat yang CPU tidak tahu bagaimana layanan, hal itu mungkin menyebabkan palsu mengganggu, atau bahkan palsu periodik menyela, tetapi tidak mengganggu sinyal interupsi dari perangkat lain. Namun, cukup mudah bagi dipicu tepi interupsi boleh dilewatkan - sebagai contoh jika menyela harus bertopeng untuk masa - dan kecuali ada beberapa jenis perangkat keras gerendel yang mencatat peristiwa adalah mustahil untuk pulih. Masalah seperti itu menyebabkan banyak "kemacetan" di awal perangkat keras komputer karena prosesor tidak tahu itu diharapkan untuk melakukan sesuatu. Hardware yang lebih modern sering memiliki satu atau lebih status register yang mengganggu kait yang mengganggu permintaan; tepi ditulis dengan baik berbasis perangkat lunak mengganggu sering cek register tersebut untuk memastikan kejadian yang tidak terjawab.

bus menggunakan ujung-dipicu menyela, tetapi tidak mengamanatkan bahwa perangkat dapat berbagi mereka. Para port paralel juga menggunakan potong ujung-dipicu. Banyak perangkat yang lebih tua menganggap bahwa mereka memiliki penggunaan eksklusif baris mengganggu mereka, sehingga elektrik aman untuk berbagi mereka. Namun, ISA motherboard meliputi resistor pull-up di garis IRQ, sehingga berperilaku baik perangkat sela ISA berbagi baik-baik saja.


Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

0 comments: on "Interrupt"

Posting Komentar

Komentarmu, semangat Blogku...