UNIQLOCK

2010年8月26日 星期四

Interrupt(中斷)


中斷實在是非常龐大又複雜,所以先簡單整理個觀念

80x86的中斷機制:

當CPU收到中斷訊號會中斷(暫停)目前的工作去執行所指定的程式,這種由中斷所指定執行的程式叫做中斷服務程式 ISR (Interrupt: Service Routine).執行完後會回復到原本執行的程式.

那CPU怎麼知道要執行什麼中斷呢?其實當CPU收到或執行到中斷時會得到一個位址,這就是指向中斷向量表(Interrupt Vector Table)的位址.中斷向量表就像是陣列一樣,每個位址依序都存有一個指向中斷程式的位址.表中每個位址都有定義要處理的事件.

中斷可分為:
  1. 硬體中斷:來自於CPU內部演算異常或是周邊裝置.又可分為內部中斷外部中斷.外部中斷還可分為不可遮罩式(non-maskable interrupt)可遮罩式(maskable interrupt)兩種.
  2. 軟體中斷:以指令形式存在.通常存在於程式中.

以CPU中斷接腳來說有三種形式存在:
  1. INTR(硬體中斷)
  2. SMI(硬體;軟體中斷)
  3. NMI(硬體中斷之外部中斷)

沒有留言:

張貼留言