Tabel vektor IRQ & interupsi

2

Saya telah membaca banyak tentang IRQ, dan tampaknya ada informasi yang bertentangan dan ketinggalan zaman. Beberapa di antaranya berasal dari Windows 95. Inilah yang saya bingung.

  1. Apakah interupsi perangkat lunak dan interupsi perangkat keras dikelola dan dikirim oleh tabel vektor interupsi. Jika tidak, bagaimana?   dikontrol secara berbeda.

  2. Saya membaca ada perbedaan antara IRQ mode PCI dan IRQ mode ISA, apakah ini benar? Jika demikian, bagaimana Anda mengatur mode, dan bagaimana mereka melakukannya   berfungsi secara berbeda?

  3. Sekarang kita memiliki PCI express, apakah mereka menggunakan IRQ mode PCI (jika ada), bagaimana cara kerjanya (interrupt wise).

EDIT 4. Melihat gambar ini tampak banyak IRQ dan dipetakan ke memori. apa akibat dari hal ini? Ada lebih dari 16 IRQ. Saya tahu bahwa APIC memungkinkan lebih, tetapi ini banyak?

enter image description here

Terima kasih sebelumnya :-)

rubixibuc
sumber

Jawaban:

2

Tidak ada mode yang berbeda, ada perangkat keras yang berbeda pada bus ISA lama dan bus PCI. Bus ISA menyediakan 16 jalur IRQ pada bus yang dapat digunakan perangkat untuk memberi sinyal perhatian. Pengontrol interupsi yang dapat diprogram (sebenarnya sepasang chip 8259A bertingkat) merespons baris-baris ini dengan memprioritaskannya dan memberi sinyal CPU ketika ada yang aktif. Ini menyebabkan CPU menjalankan rutin layanan interupsi. IRQ 0-7 memicu int 8-F, dan IRQs 8-15 memicu int 70-77. Interupsi juga dapat dipicu melalui instruksi int perangkat lunak, dan menyebabkan CPU memanggil rutin yang ditunjukkan oleh slot yang sesuai dalam tabel vektor interupsi.

Alih-alih 16 jalur IRQ yang digunakan bersama oleh semua perangkat di bus, PCI menyediakan 4 jalur IRQ yang berbeda untuk setiap slot di bus yang bernama INTA-INTD, memungkinkan setiap perangkat memiliki hingga 4 IRQ yang berbeda untuk penggunaannya sendiri. Dalam praktiknya, perangkat hanya menggunakan INTA, yang dirutekan perangkat keras ke IRQ tertentu.

Angka-angka yang Anda lihat dalam gambar bukan alamat memori, mereka hanyalah representasi heksadesimal dari nomor IRQ.

APIC mendukung 256 vektor interupsi.

psusi
sumber
Keren :-), tapi di mana PCI express cocok dengan semua ini? Pernah ada pencampuran bus ISA dan PCI pada motherboard bagaimana di mana ini digabungkan? Juga, apakah peningkatan vektor interupsi dengan APIC, di mana yang baru dialokasikan? Saya berasumsi ISA tetap sama, PCI, tetap sama, atau apakah salah satu mendapat peningkatan?
rubixibuc
Apakah ini berarti bahwa APIC mengubah-muxes 256 vektor menjadi 16 (yang saya duga dari 8-F Anda, 70-77 yang saya tidak mengerti) kabel fisik yang memasukkan chip CPU sebagai IO? Apakah angka ini konstan untuk semua arsitektur x86?
PPC
@PPC, tidak, APIC secara langsung mendukung 256 vektor interupsi yang diisyaratkan kepadanya melalui protokol serial, iirc, bus dua kawat yang menghubungkan semua CPU, northbridge, dan IIC APICs. 16 IRQ lama adalah garis fisik pada bus ISA yang terhubung ke 8259A PIC yang memetakannya ke perangkat lunak vektor interupsi 8-F dan 70-77.
psusi