12.6





1.Pendahuluan [Kembali]

Bab ini membahas tentang interrupt pada mikroprosesor Intel, baik yang berasal dari perangkat keras (hardware) maupun perangkat lunak (software). Interrupt memungkinkan sebuah program yang sedang berjalan dihentikan sementara untuk menangani suatu peristiwa penting, kemudian kembali melanjutkan eksekusi program semula. Mekanisme ini sangat penting karena memungkinkan sistem komputer merespons kondisi eksternal (misalnya dari perangkat I/O) secara cepat dan efisien. Tanpa interrupt, prosesor harus terus-menerus memeriksa perangkat (polling), yang membuat pemrosesan menjadi tidak efektif.

2.Tujuan [Kembali]

      1. Menjelaskan konsep dasar interrupt serta perbedaan antara interrupt perangkat keras (hardware interrupt) dan perangkat lunak (software interrupt).
      2. Memahami cara kerja interrupt vector dan interrupt service routine (ISR).

      3. Mengetahui urutan langkah yang dilakukan mikroprosesor ketika sebuah interrupt terjadi.

      4. Menggunakan instruksi terkait interrupt pada pemrograman mikroprosesor (misalnya INTIRET).

      5. Mengidentifikasi berbagai jenis interrupt pada keluarga mikroprosesor Intel (8086 hingga Core2 dengan 64-bit extensions).

             
            

      1.  Interupsi adalah panggilan yang dipicu oleh perangkat keras (hardware) atau perangkat lunak (software) yang menghentikan program yang sedang berjalan kapan saja dan memanggil sebuah prosedur. Prosedur ini dijalankan oleh interrupt handler atau interrupt service procedure.

      2. Interupsi berguna ketika sebuah perangkat I/O hanya perlu dilayani sesekali dengan laju transfer data yang rendah.

      3. Mikroprosesor memiliki lima instruksi yang berkaitan dengan interupsi: BOUND, INT, INT 3, INTO, dan IRET.

      ·         INT dan INT 3 → Memanggil prosedur dengan alamat yang disimpan dalam vektor interupsi.

      ·         BOUND → Interupsi bersyarat yang menggunakan vektor interupsi tipe 5.

      ·         INTO → Interupsi bersyarat yang hanya terjadi jika overflow flag aktif.

      ·         IRET, IRETD, atau IRETQ → Digunakan untuk kembali dari prosedur layanan interupsi.

      4. Mikroprosesor memiliki tiga pin yang berhubungan dengan struktur interupsi perangkat keras: INTR, NMI, dan INTA.

      ·         INTR dan NMI → Input yang digunakan untuk meminta interupsi.

      ·         INTA → Output yang digunakan untuk mengakui permintaan interupsi melalui INTR.

      5. Pada mode riil, interupsi direferensikan melalui tabel vektor yang menempati lokasi memori 0000H–03FFH. Setiap vektor interupsi berukuran 4 byte, berisi offset dan alamat segmen dari prosedur layanan interupsi.
      Pada mode terproteksi, interupsi direferensikan melalui Interrupt Descriptor Table (IDT) yang berisi 256 deskriptor interupsi. Setiap deskriptor berisi segment selector dan alamat offset 32-bit.

      6. Dua bit flag digunakan dalam struktur interupsi mikroprosesor:

      ·         TF (Trap Flag) → Menyebabkan interupsi terjadi setelah eksekusi tiap instruksi, selama TF aktif.

      ·         IF (Interrupt Enable Flag) → Mengaktifkan input INTR.

      7. 32 lokasi vektor interupsi pertama dicadangkan untuk Intel, banyak di antaranya sudah ditentukan dalam mikroprosesor. 224 vektor sisanya dapat digunakan oleh pengguna untuk fungsi apa pun yang diinginkan.

       

      8. Ketika interupsi terdeteksi, langkah-langkah berikut terjadi:

      1.      Register FLAGS disimpan ke dalam stack.

      2.      Bit IF dan TF dihapus.

      3.      Register IP dan CS disimpan ke dalam stack.

      4.      Vektor interupsi diambil dari tabel vektor, lalu subrutin layanan interupsi diakses melalui alamat vektor tersebut.

      9.  Tracing atau single-stepping dilakukan dengan mengaktifkan bit TF. Hal ini menyebabkan interupsi terjadi setelah eksekusi setiap instruksi, yang berguna untuk debugging.

      10. Non-Maskable Interrupt (NMI) memanggil prosedur yang alamatnya disimpan pada vektor interupsi tipe 2. Input ini dipicu oleh tepi positif (positive edge-triggered).

      11. Pin INTR tidak memiliki dekode internal, berbeda dengan pin NMI. Sebagai gantinya, INTA digunakan untuk menempatkan nomor tipe vektor interupsi pada jalur data (D0–D7) selama pulsa INTA.

      12. Metode penerapan nomor tipe vektor interupsi ke bus data selama INTA bervariasi.

      ·         Salah satunya menggunakan resistor untuk menempatkan nomor tipe interupsi FFH ke bus data.

      ·         Metode lain menggunakan three-state buffer untuk memberikan nomor tipe vektor apa pun.

      13. 8259A Programmable Interrupt Controller (PIC) menambahkan minimal 8 input interupsi ke mikroprosesor. Jika diperlukan lebih banyak interupsi, chip ini dapat dikaskadekan hingga menyediakan 64 input interupsi.

      14. Pemrograman 8259A dilakukan dalam dua tahap:

      1.      Mengirim ICW (Initialization Command Words).

      2.      Mengirim OCW (Operation Command Words).

      15. 8259A memiliki tiga register status:

      ·         IMR (Interrupt Mask Register) → Menyaring interupsi tertentu.

      ·         ISR (In-Service Register) → Menunjukkan interupsi yang sedang dilayani.

      ·         IRR (Interrupt Request Register) → Menyimpan interupsi yang masuk dan menunggu untuk diproses.

      16. Real-Time Clock (RTC) digunakan untuk menjaga waktu nyata. Pada umumnya, data waktu disimpan dalam bentuk biner atau BCD di beberapa lokasi memori.

       

       

          




       

       

      Tidak ada komentar:

      Posting Komentar

                                                  BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA 2024   Nama : Muhammad Fadhil Dwi Kesuma NIM : 2...