色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

簡述PCI總線的中斷機制

TLOc_gh_3394704 ? 來源:OpenFPGA ? 作者:碎碎思 ? 2021-07-18 10:10 ? 次閱讀

PCI總線的中斷機制

PCI總線使用INTA#、INTB#、INTC#和INTD#信號處理器發出中斷請求。這些中斷請求信號為低電平有效,并與處理器的中斷控制器連接。在PCI體系結構中,這些中斷信號屬于邊帶信號(Sideband Signals),PCI總線規范并沒有明確規定在一個處理器系統中如何使用這些信號,因為這些信號對于PCI總線是可選信號。PCI設備還可以使用MSI機制向處理器提交中斷請求,而不使用這組中斷信號。有關MSI機制的詳細說明見第8章。

1.4.1 中斷信號與中斷控制器的連接關系

不同的處理器使用的中斷控制器不同,如x86處理器使用APIC(Advanced Programmable Interrupt Controller)中斷控制器,而PowerPC處理器使用MPIC(Multiprocessor Interrupt Controller)中斷控制器。這些中斷控制器都提供了一些外部中斷請求引腳IRQ_PINx#。外部設備,包括PCI設備可以使用這些引腳向處理器提交中斷請求。

但是PCI總線規范沒有規定PCI設備的INTx信號如何與中斷控制器的IRQ_PINx#信號相連,這為系統軟件的設計帶來了一定的困難,為此系統軟件使用中斷路由表存放PCI設備的INTx信號與中斷控制器的連接關系。在x86處理器系統中,BIOS可以提供這個中斷路由表,而在PowerPC處理器中Firmware也可以提供這個中斷路由表。

在一些簡單的嵌入式處理器系統中,Firmware并沒有提供中斷路由表,此時系統軟件開發者需要事先了解PCI設備的INTx信號與中斷控制器的連接關系。此時外部設備與中斷控制器的連接關系由硬件設計人員指定。

我們假設在一個處理器系統中,共有3個PCI插槽(分別為PCI插槽A、B和C),這些PCI插槽與中斷控制器的IRQ_PINx引腳(分別為IRQW#、IRQX#、IRQY#和IRQZ#)可以按照圖1?5所示的拓撲結構進行連接。

PCI插槽A、B、C的INTA#、INTB#和INTC#信號將分散連接到中斷控制器的IRQW#、IRQX#和IRQY#信號,而所有INTD#信號將共享一個IRQZ#信號。采用這種連接方式時,整個處理器系統使用的中斷請求信號,其負載較為均衡。而且這種連接方式保證了每一個插槽的INTA#信號都與一根獨立的IRQx#信號對應,從而提高了PCI插槽中斷請求的效率。

在一個處理器系統中,多數PCI設備僅使用INTA#信號,很少使用INTB#和INTC#信號,而INTD#信號更是極少使用。在PCI總線中,PCI設備配置空間的Interrupt Pin寄存器記錄該設備究竟使用哪個INTx信號,該寄存器的詳細介紹見第2.3.2節。

1.4.2 中斷信號與PCI總線的連接關系

在PCI總線中,INTx信號屬于邊帶信號。所謂邊帶信號是指這些信號在PCI總線中是可選信號,而且只能在一個處理器系統的內部使用,并不能離開這個處理器環境。PCI橋也不會處理這些邊帶信號。這給PCI設備將中斷請求發向處理器帶來了一些困難,特別是給掛接在PCI橋之下的PCI設備進行中斷請求帶來了一些麻煩。

在一些嵌入式處理器系統中,這個問題較易解決。因為嵌入式處理器系統很清楚在當前系統中存在多少個PCI設備,這些PCI設備使用了哪些中斷資源。在多數嵌入式處理器系統中,PCI設備的數量小于中斷控制器提供的外部中斷請求引腳數,而且在嵌入式系統中,多數PCI設備僅使用INTA#信號提交中斷請求。

在這類處理器系統中,可能并不含有PCI橋,因而PCI設備的中斷請求信號與中斷控制器的連接關系較易確定。而在這類處理器系統中,即便存在PCI橋,來自PCI橋之下的PCI設備的中斷請求也較易處理。

在多數情況下,嵌入式處理器系統使用的PCI設備僅使用INTA#信號進行中斷請求,所以只要將這些INTA#信號掛接到中斷控制器的獨立IRQ_PIN#引腳上即可。這樣每一個PCI設備都可以獨占一個單獨的中斷引腳。

而在x86處理器系統中,這個問題需要BIOS參與來解決。在x86處理器系統中,有許多PCI插槽,處理器系統并不知道在這些插槽上將要掛接哪些PCI設備,而且也并不知道這些PCI設備到底需不需要使用所有的INTx#信號線。因此x86處理器系統必須要對各種情況進行處理。

x86處理器系統還經常使用PCI橋進行PCI總線擴展,擴展出來的PCI總線還可能掛接一些PCI插槽,這些插槽上INTx#信號仍然需要處理。PCI橋規范并沒有要求橋片傳遞其下PCI設備的中斷請求。事實上多數PCI橋也沒有為下游PCI總線提供中斷引腳INTx#,管理其下游總線的PCI設備。但是PCI橋規范推薦使用表1?3建立下游PCI設備的INTx信號與上游PCI總線INTx信號之間的映射關系。

表1?3 PCI設備INTx#信號與PCI總線INTx#信號的映射關系

設備號 PCI設備的INTx#信號 PCI總線的INTx#信號
0, 4, 8, 12, 16, 20, 24, 28 INTA# INTA#
INTB# INTB#
INTC# INTC#
INTD# INTD#
1, 5, 9, 13, 17, 21, 25, 29 INTA# INTB#
INTB# INTC#
INTC# INTD#
INTD# INTA#
2, 6, 10, 14, 18, 22, 26, 30 INTA# INTC#
INTB# INTD#
INTC# INTA#
INTD# INTB#
3, 7, 11, 15, 19, 23, 27, 31 INTA# INTD#
INTB# INTA#
INTC# INTB#
INTD# INTC#

我們舉例說明該表的含義。在PCI橋下游總線上的PCI設備,如果其設備號為0,那么這個設備的INTA#引腳將和PCI總線的INTA#引腳相連;如果其設備號為1,其INTA#引腳將和PCI總線的INTB#引腳相連;如果其設備號為2,其INTA#引腳將和PCI總線的INTC#引腳相連;如果其設備號為3,其INTA#引腳將和PCI總線的INTD#引腳相連。

在x86處理器系統中,由BIOS或者APCI表記錄PCI總線的INTA~D#信號與中斷控制器之間的映射關系,保存這個映射關系的數據結構也被稱為中斷路由表。大多數BIOS使用表1?3中的映射關系,這也是絕大多數BIOS支持的方式。如果在一個x86處理器系統中,PCI橋下游總線的PCI設備使用的中斷映射關系與此不同,那么系統軟件程序員需要改動BIOS中的中斷路由表。

BIOS初始化代碼根據中斷路由表中的信息,可以將PCI設備使用的中斷向量號寫入到該PCI設備配置空間的Interrupt Line register寄存器中,該寄存器將在第2.3.2節中介紹。

1.4.3 中斷請求的同步

在PCI總線中,INTx信號是一個異步信號。所謂異步是指INTx信號的傳遞并不與PCI總線的數據傳送同步,即INTx信號的傳遞與PCI設備使用的CLK#信號無關。這個“異步”信號給系統軟件的設計帶來了一定的麻煩。

系統軟件程序員需要注意“異步”這種事件,因為幾乎所有“異步”事件都會帶來系統的“同步”問題。以圖1?1為例,當PCI設備11使用DMA寫方式,將一組數據寫入存儲器時,該設備在最后一個數據離開PCI設備11的發送FIFO時,會認為DMA寫操作已經完成。此時這個設備將通過INTx信號,通知處理器DMA寫操作完成。

此時處理器(驅動程序的中斷服務例程)需要注意,因為INTx信號是一個異步信號,當處理器收到INTx信號時,并不意味著PCI設備11已經將數據寫入存儲器中,因為PCI設備11的數據傳遞需要通過PCI橋1和HOST主橋,最終才能到達存儲器控制器。

而INTx信號是“異步”發送給處理器的,PCI總線并不知道這個“異步”事件何時被處理。很有可能處理器已經接收到INTx信號,開始執行中斷處理程序時,該PCI設備還沒有完全將數據寫入存儲器。

因為“PCI設備向處理器提交中斷請求”與“將數據寫入存儲器”分別使用了兩個不同的路徑,處理器系統無法保證哪個信息率先到達。從而在處理器系統中存在“中斷同步”的問題,PCI總線提供了以下兩種方法解決這個同步問題。

(1) PCI設備保證在數據到達目的地之后,再提交中斷請求。

顯然這種方法不僅加大了硬件的開銷,而且也不容易實現。如果PCI設備采用Posted寫總線事務,PCI設備無法單純通過硬件邏輯判斷數據什么時候寫入到存儲器。此時為了保證數據到達目的地后,PCI設備才能提交中斷請求,PCI設備需要使用“讀刷新”的方法保證數據可以到達目的地,其方法如下。

PCI設備在提交中斷請求之前,向DMA寫的數據區域發出一個讀請求,這個讀請求總線事務將被PCI設備轉換為讀完成總線事務,當PCI設備收到這個讀完成總線事務后,再向處理器提交中斷請求。PCI總線的“序”機制保證這個存儲器讀請求,會將DMA數據最終寫入存儲器,有關PCI序的詳細說明見第9.3節。

PCI總線規范要求HOST主橋和PCI橋必須保證這種讀操作可以刷新寫操作。但問題是,沒有多少芯片設計者愿意提供這種機制,因為這將極大地增加他們的設計難度。除此之外,使用這種方法也將增加中斷請求的延時。

(2) 中斷服務例程使用“讀刷新”方法。

中斷服務例程在使用“PCI設備寫入存儲器”的這些數據之前,需要對這個PCI設備進行讀操作。這個讀操作也可以強制將數據最終寫入存儲器,實際上是將數據寫到存儲器控制器中。這種方法利用了PCI總線的傳送序規則,這種方法與第1種方法基本相同,只是使用這種方法使用軟件方式,而第1種方式使用硬件方式。第9.3節將詳細介紹這個讀操作如何將數據刷新到存儲器中。

第2種方法也是絕大多數處理器系統采用的方法。程序員在書寫中斷服務例程時,往往都是先讀取PCI設備的中斷狀態寄存器,判斷中斷產生原因之后,才對PCI設備寫入的數據進行操作。這個讀取中斷狀態寄存器的過程,一方面可以獲得設備的中斷狀態,另一方面是保證DMA寫的數據最終到達存儲器。如果驅動程序不這樣做,就可能產生數據完整性問題。產生這種數據完整性問題的原因是INTx這個異步信號。

這里也再次提醒系統程序員注意PCI總線的“異步”中斷所帶來的數據完整性問題。在一個操作系統中,即便中斷處理程序沒有首先讀取PCI設備的寄存器,也多半不會出現問題,因為在操作系統中,一個PCI設備從提交中斷到處理器開始執行設備的中斷服務例程,所需要的時間較長,處理器系統基本上可以保證此時數據已經寫入存儲器。

但是如果系統程序員不這樣做,這個驅動程序依然有Bug存在,盡管這個Bug因為各種機緣巧合,始終不能夠暴露出來,而一旦這些Bug被暴露出來將難以定位。為此系統程序員務必要重視設計中出現的每一個實現細節,當然僅憑謹慎小心是遠遠不夠的,因為重視細節的前提是充分理解這些細節。

PCI總線V2.2規范還定義了一種新的中斷機制,即MSI中斷機制。MSI中斷機制采用存儲器寫總線事務向處理器系統提交中斷請求,其實現機制是向HOST處理器指定的一個存儲器地址寫指定的數據。這個存儲器地址一般是中斷控制器規定的某段存儲器地址范圍,而且數據也是事先安排好的數據,通常含有中斷向量號。

HOST主橋會將MSI這個特殊的存儲器寫總線事務進一步翻譯為中斷請求,提交給處理器。目前PCIe和PCI-X設備必須支持MSI中斷機制,但是PCI設備并不一定都支持MSI中斷機制。

目前MSI中斷機制雖然在PCIe總線上已經成為主流,但是在PCI設備中并不常用。即便是支持MSI中斷機制的PCI設備,在設備驅動程序的實現中也很少使用這種機制。首先PCI設備具有INTx#信號可以傳遞中斷,而且這種中斷傳送方式在PCI總線中根深蒂固。其次PCI總線是一個共享總線,傳遞MSI中斷需要占用PCI總線的帶寬,需要進行總線仲裁等一系列過程,遠沒有使用INTx#信號線直接。

但是使用MSI中斷機制可以取消PCI總線這個INTx#邊帶信號,可以解決使用INTx中斷機制所帶來的數據完整性問題。而更為重要的是,PCI設備使用MSI中斷機制,向處理器系統提交中斷請求的同時,還可以通知處理器系統產生該中斷的原因,即通過不同中斷向量號表示中斷請求的來源。

當處理器系統執行中斷服務例程時,不需要讀取PCI設備的中斷狀態寄存器,獲得中斷請求的來源,從而在一定程度上提高了中斷處理的效率。本書將在第8章詳細介紹MSI中斷機制。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PCI
    PCI
    +關注

    關注

    4

    文章

    663

    瀏覽量

    130251

原文標題:淺談PCI Express體系結構(四)

文章出處:【微信號:gh_339470469b7d,微信公眾號:FPGA與數據通信】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    通過PLX PCI9080橋接芯片實現TMS320C6000擴展總線PCI總線的接口

    電子發燒友網站提供《通過PLX PCI9080橋接芯片實現TMS320C6000擴展總線PCI總線的接口.pdf》資料免費下載
    發表于 10-26 10:23 ?0次下載
    通過PLX <b class='flag-5'>PCI</b>9080橋接芯片實現TMS320C6000擴展<b class='flag-5'>總線</b>與<b class='flag-5'>PCI</b><b class='flag-5'>總線</b>的接口

    使用AMCC S5933 PCI控制器將TMS320C6000 EMIF連接到PCI總線

    電子發燒友網站提供《使用AMCC S5933 PCI控制器將TMS320C6000 EMIF連接到PCI總線.pdf》資料免費下載
    發表于 10-26 10:08 ?0次下載
    使用AMCC S5933 <b class='flag-5'>PCI</b>控制器將TMS320C6000 EMIF連接到<b class='flag-5'>PCI</b><b class='flag-5'>總線</b>

    單片機的中斷機制

    單片機的中斷機制是一種重要的處理方式,它允許單片機在執行主程序的過程中,能夠暫停當前任務,轉而處理外部或內部緊急事件。這種機制極大地提高了系統的響應速度和處理能力,使得單片機在各種應用領域中得到廣泛應用。以下是對單片機
    的頭像 發表于 10-17 18:03 ?620次閱讀

    pci總線可以直接與cpu連在一起嗎為什么

    一、PCI總線的基本概念 PCI(Peripheral Component Interconnect)總線是由英特爾公司開發并推廣的一種高速、同步的通信
    的頭像 發表于 10-06 16:24 ?934次閱讀

    PCI 接口的反射內存卡

    較高。特定的PCI總線兼容:如33MHz64-bit/32-bit兼容PCI總線,支持3.3V和5.0V電平;或66MHz64-bit/32-bit兼容
    的頭像 發表于 09-04 10:36 ?364次閱讀
    <b class='flag-5'>PCI</b> 接口的反射內存卡

    異步總線中傳送操作的控制機制

    據傳輸過程中存在一定的延遲,因此需要一種有效的控制機制來保證數據傳輸的準確性和可靠性。 異步總線概述 1.1 異步總線的定義 異步總線是一種在計算機系統中用于數據傳輸的通信方式,其特點
    的頭像 發表于 07-23 09:17 ?634次閱讀

    簡述半導體原理——晶體管家族的核心工作機制

    簡述半導體原理——晶體管家族的核心工作機制
    的頭像 發表于 07-20 08:14 ?961次閱讀
    <b class='flag-5'>簡述</b>半導體原理——晶體管家族的核心工作<b class='flag-5'>機制</b>

    XIO2221單功能PCI ExpressTM (PCle)到PCI本地總線轉換橋數據表

    電子發燒友網站提供《XIO2221單功能PCI ExpressTM (PCle)到PCI本地總線轉換橋數據表.pdf》資料免費下載
    發表于 07-10 11:21 ?0次下載
    XIO2221單功能<b class='flag-5'>PCI</b> ExpressTM (PCle)到<b class='flag-5'>PCI</b>本地<b class='flag-5'>總線</b>轉換橋數據表

    XIO2213A單功能PCI ExpressTM到PCI本地總線轉換橋數據表

    電子發燒友網站提供《XIO2213A單功能PCI ExpressTM到PCI本地總線轉換橋數據表.pdf》資料免費下載
    發表于 07-10 11:19 ?0次下載
    XIO2213A單功能<b class='flag-5'>PCI</b> ExpressTM到<b class='flag-5'>PCI</b>本地<b class='flag-5'>總線</b>轉換橋數據表

    XIO2001 PCI Express至PCI總線轉換橋接器數據表

    電子發燒友網站提供《XIO2001 PCI Express至PCI總線轉換橋接器數據表.pdf》資料免費下載
    發表于 06-19 14:17 ?0次下載
    XIO2001 <b class='flag-5'>PCI</b> Express至<b class='flag-5'>PCI</b><b class='flag-5'>總線</b>轉換橋接器數據表

    can總線中斷狀態什么意思呢?

    過程中的中斷處理機制。以下是關于CAN總線中斷狀態的詳細介紹。 CAN總線概述 1.1 CAN總線
    的頭像 發表于 06-16 10:21 ?1683次閱讀

    PCI總線PCB設計丨實現高效外圍部件互連的關鍵要素

    ? PCI(Peripheral Component Interconnect)是一種局部總線標準,它是由英特爾公司開發并推廣的一種高速、同步的通信總線PCI
    的頭像 發表于 06-13 18:31 ?1970次閱讀
    <b class='flag-5'>PCI</b><b class='flag-5'>總線</b>PCB設計丨實現高效外圍部件互連的關鍵要素

    PCI總線PCB設計丨實現高效外圍部件互連的關鍵要素

    and Play)和中斷共享等功能,這使得設備插入系統后,無需手動配置即可自動分配IO、MEM空間和IRQ,并且IRQ可以在PCI設備中共享。 需要注意的是,隨著技術的不斷發展,PCI總線
    發表于 06-07 18:37

    外部中斷的工作原理 外部中斷方式有哪些 為什么要使用外部中斷

    外部中斷的工作原理是單片機響應外部事件的一種機制** **。
    的頭像 發表于 01-28 17:37 ?3601次閱讀

    Linux內核PCIE基礎知識整理

    PCI總線中,所有需要提交中斷請求的設備,必須能通過INTx引腳提交中斷請求,MSI機制是一個可選機制
    發表于 01-12 14:54 ?2334次閱讀
    Linux內核PCIE基礎知識整理
    主站蜘蛛池模板: 中文字幕99香蕉在线| 美女脱精光让男生桶下面| 国产香蕉视频在线观看| 国产人妻人伦精品98| 国产在线观看免费观看| 久草大| 美目盼兮amy198281| 伦理片2499电影伦理片| 亲胸摸下面激烈免费网站| 日韩AV片无码一区二区三区不卡| 日韩视频中文在线一区| 亚洲AV噜噜狠狠网址蜜桃尤物| 艳妇臀荡乳欲伦岳TXT下载| 99久久就热视频精品草| 国产精品XXXXX免费A片| 久久99热狠狠色一区二区| 蜜芽视频在线观看视频免费播放| 日本经典片免费看| 亚洲AV无码久久流水呻蜜桃久色 | 欧美顶级情欲片免费看| 男人到天堂a在538线| 色欲AV亚洲永久无码精品| 亚洲人成影院在线播放| 99综合之综合久久伊人| 国产精品自产拍在线观看中文| 久久草福利自拍视频在线观看| 强行撕开衣服捏胸黄文| 亚洲国产精品99久久久久久| 91嫩草视频在线观看| 国产精品久久久久a影院| 久久综合九色| 手机在线观看无码日韩视频| 在线综合 亚洲 欧美| 国产AV无码成人黄网站免费 | 国产精品色午夜视频免费看 | 免费观看激烈日板子| 摥管专用动态图399期| 一本道在线综合久久88| 大胸美女被C得嗷嗷叫动态图| 久久re视频这里精品09首页| 揉抓捏打抽插射免费视频|