INTX和MSI中斷原理和區(qū)別

1掸掏、為什么需要中斷

? ? ? ? 為了能夠讓一些優(yōu)先級高的事務(wù)得到優(yōu)先處理,PCI總線支持外設(shè)中斷用以提高總線性能娃殖。

2衰粹、中斷的多種方式

? ??????PCIe總線繼承了PCI總線的所有中斷特性(包括INTx和MSI/MSI-X)

3、PCIe中斷--INTx

? ??????PCI總線使用INTA#踪危、INTB#洗贰、INTC#和INTD#信號向處理器發(fā)出中斷請求。這些中斷請求信號為低電平有效陨倡,并與處理器的中斷控制器連接。在PCI體系結(jié)構(gòu)中许布,這些中斷信號屬于邊帶信號(Sideband Signals)兴革,PCI總線規(guī)范并沒有明確規(guī)定在一個處理器系統(tǒng)中如何使用這些信號,因?yàn)檫@些信號對于PCI總線是可選信號蜜唾。所謂邊帶信號是指這些信號在PCI總線中是可選信號杂曲,而且只能在一個處理器系統(tǒng)的內(nèi)部使用,并不能離開這個處理器環(huán)境袁余。

3.1擎勘、PCI INTx中斷流程

? ??????一個簡單的PCI總線INTx中斷實(shí)現(xiàn)流程,如下圖所示(單核CPU)颖榜。

1棚饵、首先煤裙,PCI設(shè)備通過INTx邊帶信號產(chǎn)生中斷請求,經(jīng)過中斷控制器(Interrupt Controller噪漾,PIC)后硼砰,轉(zhuǎn)換為INTR信號,并直接發(fā)送至CPU欣硼;

2题翰、CPU收到INTR信號置位后,意識到了中斷請求的發(fā)生诈胜,但是此時并不知道是什么中斷請求豹障。于是通過一個特殊的指令來查詢中斷請求信息,該過程一般被稱為中斷應(yīng)答(Interrupt Acknowledge)焦匈;

3血公、該特殊指令被發(fā)送至PIC后,PIC會返回一個8bits的中斷向量(Interrupt Vector)值給CPU括授。該中斷向量值與其發(fā)送的INTR請求是對應(yīng)的坞笙;

4、CPU收到來自PIC的中斷向量值后荚虚,會去其Memory中的中斷向量表(Interrupt Table)中查找對應(yīng)的中斷服務(wù)程序(Interrupt Service Routines薛夜,ISR)在Memory的位置;

5版述、然后CPU讀取ISR程序梯澜,進(jìn)而處理該中斷。


? ? ? ? 多核CPU的簡單圖示如下:


4渴析、PCIe中斷-MSI/MSI-X

? ??????對于PCIE設(shè)備晚伙,一般支持MSI中斷和MSIX中斷,MSI和MSIX中斷都是通過對某個映射內(nèi)存區(qū)域?qū)憯?shù)據(jù)(寫的地址為Message Addr俭茧,寫的數(shù)據(jù)為Message Data)咆疗,從而觸發(fā)基于信息的中斷。MSI和MSIX的差異點(diǎn)主要有兩點(diǎn):

1母债、產(chǎn)生MSI中斷的內(nèi)存映射區(qū)在PCIE設(shè)備的配置空間午磁,而產(chǎn)生MSIX中斷的內(nèi)存映射區(qū)在PCIE設(shè)備的BAR空間;

2毡们、MSI中斷最多支持32個迅皇,且要求申請的中斷連續(xù),而MSIX中斷可支持的比較多(2048)衙熔,不要求申請的中斷連續(xù)登颓;

????????MSI有四種類型如下圖所示:

????????其中Capability ID的值是只讀的,05h表示支持MSI功能红氯。

? ??????Next Capability Pointer也是只讀的框咙,其用于查找下一個Capability Structure的位置咕痛,其值為00h則表示到達(dá)Linked List的最后了。

????????當(dāng)Mask Bits將相關(guān)的中斷向量(Interrupt Vector)屏蔽后扁耐,該MSI將不會被發(fā)送暇检。軟件可以通過這種方式來使能或者禁止某些MSI的發(fā)送。

????????如果相關(guān)中斷向量沒有被屏蔽婉称,則如果發(fā)生了相關(guān)中斷請求块仆,這時Pending Bits中的相應(yīng)bit則會被置位。一旦中斷信息被發(fā)出王暗,則該bit會立即被清零悔据。

????? MSIX中斷相關(guān)寄存器如下所示:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市俗壹,隨后出現(xiàn)的幾起案子科汗,更是在濱河造成了極大的恐慌,老刑警劉巖绷雏,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件头滔,死亡現(xiàn)場離奇詭異,居然都是意外死亡涎显,警方通過查閱死者的電腦和手機(jī)坤检,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來期吓,“玉大人早歇,你說我怎么就攤上這事√智冢” “怎么了箭跳?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長潭千。 經(jīng)常有香客問我谱姓,道長,這世上最難降的妖魔是什么刨晴? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任逝段,我火速辦了婚禮,結(jié)果婚禮上割捅,老公的妹妹穿的比我還像新娘。我一直安慰自己帚桩,他們只是感情好亿驾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著账嚎,像睡著了一般莫瞬。 火紅的嫁衣襯著肌膚如雪儡蔓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天疼邀,我揣著相機(jī)與錄音喂江,去河邊找鬼。 笑死旁振,一個胖子當(dāng)著我的面吹牛获询,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拐袜,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吉嚣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蹬铺?” 一聲冷哼從身側(cè)響起尝哆,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎甜攀,沒想到半個月后秋泄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡规阀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年恒序,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姥敛。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡奸焙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出彤敛,到底是詐尸還是另有隱情与帆,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布墨榄,位于F島的核電站玄糟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏袄秩。R本人自食惡果不足惜阵翎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望之剧。 院中可真熱鬧郭卫,春花似錦、人聲如沸背稼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蟹肘。三九已至词疼,卻和暖如春俯树,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贰盗。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工许饿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人舵盈。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓陋率,卻偏偏與公主長得像,于是被迫代替她去往敵國和親书释。 傳聞我的和親對象是個殘疾皇子翘贮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容