Re: [問題]想請問中斷和中斷向量的差別和個別意思?
take by http://0rz.tw/d948Z Wiki Interrupt
在輪詢(Polling)時,為了避免處理器浪費寶貴的時間等待外部事件發生,
因此採用一種叫做硬體中斷的方式。
中斷可由硬體的控制線來當作一套分別的系統實作,或是也可以整合到記憶體系統下。
如果在硬體下實作,在裝置與處理器的中斷接腳之間通常會有一個中斷控制器
(controller)電路,用來多工處理數個中斷源,通常對應到一至兩條的處理器線路上。
如果實作成記憶體控制器的一部分,中斷則會對應到系統記憶體位置空間上。
中斷可以分類成:可遮罩式(maskable)中斷(參閱IRQ)、
不可遮罩式(non-maskable)中斷(參閱NMI)、
內部處理器中斷(interprocessor interrupt,簡稱IPI)、
軟體中斷,和偽中斷。
可遮罩式中斷(IRQ)是一種硬體中斷,透過設定中斷遮罩暫存器
(interrupt mask register; IMR)內的位元遮罩(bit-mask)值來讓它可被系統忽略。
同樣地,不可遮罩式(NMI)也是硬體中斷,但卻和位元遮罩無關,意謂著它是無法被系統
忽略的。NMI通常使用於計時器(timers),特別像是看門狗計時器(watchdog timers)
。
內部處理器中斷是一種中斷的特殊案例,在多處理器系統下,由某顆處理器產出中斷來通
知另一顆處理器之用。
軟體中斷是處理器內執行了某個指令後,所產生出的中斷。軟體中斷通常用來實作成系統
呼叫(System calls),因為它們是實作成某種例行性的副程式呼叫,用於處理器保護層
級(Ring (電腦安全))更動時。
偽中斷是一種非需求的硬體中斷。在某些系統狀況下會容易發生,如中斷線路上的電子干
擾,或是不正確的硬體設計。
處理器通常含有一個內部的中斷遮罩,當這個設定後,可讓軟體忽略所有的外部硬體中斷
。在可程式化中斷控制器(PIC)中,相較於去讀取中斷遮罩暫存器(IMR),這個遮罩可
提供較快的硬體存取,或是關閉裝置本身的中斷。
在某些例子中,像是x86架構下,在處理器本身關閉和開啟中斷會以記憶屏障
(memory barrier)的方式運作,在此情況下實際上反而變慢。
若一個中斷使機器處於明確定義的狀態,則稱這中斷為精確中斷(precise interrupt)。
這類的中斷有下列四種特性:
程式計數器(Program Counter; PC)會存入已知的位置。
在PC導向前所有的指令都會執行完畢。
超出PC導向後的指令不可以被執行。
(並沒有限制超出PC後不可有指令,只是任何對暫存器或記憶體造成的改變必須在中斷發
生前復原。)
PC導向的指令執行狀態是已知的。
任何一種中斷其不符合這些需求的,稱作非精確中斷(imprecise interrupt)。
若耗費過多時間處理中斷,會造成整體系統效能被嚴重阻礙的現象,
有人稱作中斷風暴(interrupt storm)。
--
----------------------------------------
雲彩飛舞
http://coolcoolwind.spaces.live.com/
[我總在最深的絕望裡,遇見最美麗的驚奇。] 幾 米 ( ̄ Ο ̄)y▂ξ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.211.186
推
05/27 13:27, , 1F
05/27 13:27, 1F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 3 之 4 篇):
CSSE 近期熱門文章
PTT數位生活區 即時熱門文章