最終更新:2016-09-17 (土) 01:53:21 (2771d)  

割り込みコントローラ
Top / 割り込みコントローラ

周辺機器CPUの間に接続され、周辺機器からの割り込み処理要求を受信してCPUに割り込み信号を発生させる装置。

x86の割り込みコントローラ

  • Intel 8259 Programmable Interrupt Controller (PIC)
  • Intel Advanced Programmable Interrupt Controller (APIC)

機能

  • 保留
  • 優先付け
  • マスク
  • CPUへの通知

メモ

  • 現在のPC/AT互換機には8259A相当のPICが2つ使われている
  • 通常、PCには2つのPICがあります。1つ目はプロセッサ(CPUの周辺デバイスとして)に入っていて2つ目はマザーボードに載っています(無いものもあります)
  • ですので、PCでは合計15個のIRQを扱うことになります

8259Aの動作

  • 割り込み信号がIRnの信号線で送られてくる
  • 8259Aが持つレジスタにIRQの番号が記録される
  • 8259Aはレジスタから優先度の最も高いIRQを選ぶ
  • 割り込み信号をCPUに送る
  • CPUはデータバスを通じてベクタ番号を読み取る
  • 8259Aは、送信したIRQ番号をレジスタから消す

メモ

IRQ番号ベクタ番号

  • 典型的なIRQとデバイスの対応
  • Linuxでは32bitと64bitのときでIRQを割り当てるベクタが違う。
  • 8259Aへの設定はI/Oポートを通じて行う
    PIC入力ピンISA上のIRQ番号ベクタ番号デバイス
    32bit64bit
    マスターIR0IRQ03248システムタイマー
    IR1IRQ13349キーボード
    IR2---スレーブへのカスケード接続
    IR3IRQ3?3550COM2
    IR4IRQ4?3651COM1
    IR5IRQ5?3752LPT2
    IR6IRQ6?3853FDDコントローラ
    IR7IRQ7?3954LPT1
    スレーブIR0IRQ84056RTC
    IR1IRQ2?/IRQ9?4157空き
    IR2IRQ10?4258空き
    IR3IRQ11?4359空き
    IR4IRQ12?4460PS/2マウス
    IR5IRQ13?4561コプロセッサ
    IR6IRQ14?4662プライマリIDE
    IR7IRQ14?4763セカンダリIDE