一種pcie硬件故障的檢測方法及裝置制造方法
【專利摘要】本發(fā)明實施例提供一種PCIE硬件故障的檢測方法及裝置,該方法可應用于未包括或包括NT端口的PCIE系統中,該方法應用于前者時包括:RC根據接收到的MSI消息中攜帶的MSI地址,和預配置的MSI地址與PCIE端口的對應關系,確定MSI地址對應的PCIE端口;確定PCIE端口的第一鏈路協商模式狀態(tài)值,并將其與自身預存的第二鏈路協商模式狀態(tài)值進行比較;在比較結果不一致時,確定PCIE端口所在鏈路出現故障。本發(fā)明實施例利用MSI中斷機制,確定PCIE系統中相應PCIE端口的鏈路協商模式狀態(tài)值,進而準確地檢測出存在故障的鏈路,前述這種檢測方式檢測PCIE硬件故障的準確率較高。
【專利說明】—種PCIE硬件故障的檢測方法及裝置
【技術領域】
[0001]本發(fā)明涉及通信【技術領域】,尤其涉及一種PCIE硬件故障的檢測方法及裝置。
【背景技術】
[0002]快速外部設備互連(PeripheralComponent Interconnect Express, PCIE)系統具有數據傳輸速率高的優(yōu)勢,目前,此系統的數據傳輸速率最高的16X2.0版本可達到10GB/s,能夠滿足現在和將來一定時間內低速設備和高速設備的需求。
[0003]如圖1A所示,上述的PCIE系統,通常包括根組件(Root Complex, RC) 101、交換設備(Switch) 102和多個終端設備(End Point,EP) 103。其中,RClOl主要為交換設備和終端設備分配特定的設備標識,例如設備標識為總線編號/設備編號/功能編號,以及分配不重疊的PCIE地址空間空間;RC101的下PCIE端口可掛接Switchl02擴展更多的PCIE端口,當然也可以直接掛接EP ;Switchl02的下PCIE端口可以掛接多個EP103,也可以掛接Switch和EP,例如Switchl04和EP103(如圖1B所示),在這種情況下,Switchl04的下PCIE端口又可以掛接多個EP,例如掛接EP105和EP106 (如圖1B所示),使得PCIE系統可以進行鏈路擴展。
[0004]具體地,上述PCIE系統中的Switchl02,按設備類型分為包括有非透明橋(NonTransparent, NT)端 P 的 Switch,和未包括有 NT 端 P 的 Switch。這樣,當 Switchl02 為包括有NT端口的Switch時,Switchl02的NT端口 1021通常將PCIE系統隔離成主PCIE系統和次PCIE系統(如圖1C所示),例如主PCIE系統包括RC101、Switchl02(包括NT端口和部分 PCIE 端 口 )、Switchl04、EP105 和 EP106 ;次 PCIE 系統包括 RC107、Switchl02 (包括剩余部分PCIE端口)和EP103,主PCIE系統通過Switchl02的NT端口 1021與次PCIE系統進行數據傳輸。
[0005]進一步地,在利用上述PCIE系統進行數據傳輸時,為了避免出現硬件故障,導致數據傳輸中斷,往往需要對PCIE硬件進行檢測,目前通常采用下述方式實現檢測:
[0006]在PCIE系統中與RC連接的Switch未包括有NT端口的情況下,執(zhí)行下述檢測流程:
[0007]以圖1B所示的PCIE系統為例,RC101定期向EP103、EP105和EP106發(fā)送?;?keepalive)報文;如果在預設時間內接收到所有EP通過各自連接的Switch返回的?;铐憫獔笪?,則確定此PCIE系統中的EP未出現故障;如果在預設時間內只接收到部分EP返回的保活響應報文,例如EP103通過Switchl02返回的?;铐憫獔笪?或者未接收到保活響應報文,則確定部分EP或者所有EP出現故障,例如EP103出現故障,或者是EP103、EP105和EP106均出現故障;
[0008]在PCIE系統中與RC連接的交換設備包括有NT端口的情況下,執(zhí)行下述檢測流程:
[0009]以圖1C所示的PCIE系統為例,主PCIE系統中的RC101定期向EP105和EP106發(fā)送?;?keepalive)報文,并在發(fā)送此報文之前通過NT端口 1021向次PCIE系統中的RC107發(fā)送指示消息,指示次PCIE系統中的RC107向EP103發(fā)送保活報文;如果在預設時間內接收到所有EP通過各自連接的Switch返回的保活響應報文,則確定主PCIE系統中的EP未出現故障;如果在預設時間內只接收到部分EP返回的?;铐憫獔笪模鏓P105通過Switchl04返回的?;铐憫獔笪?,或者未接收到?;铐憫獔笪?,則確定部分EP或者所有EP出現故障,例如EP105出現故障,或者是EP105和EP106均出現故障;
[0010]次PCIE系統中的RC107在接收到指示消息后,向EP103發(fā)送保活(ke印alive)報文;如果在預設時間內接收到EP103通過次PCIE系統中的Switchl02返回的保活響應報文,則確定次PCIE系統中的EP103未出現故障,并通過NT端口 1021向主PCIE系統中的RClOl返回檢測結果;如果在預設時間內未接收到?;铐憫獔笪?,則確定EP103出現故障,并通過NT端口 1021向主PCIE系統中的RClOl返回檢測結果。
[0011]從上述流程可以看出,不管是處于哪種情況下對PCIE硬件進行檢測,利用前述檢測方式的話,在Switch出現故障,或者是EP的PCIE端口所在鏈路出現故障時,RC均以無法收到EP的?;铐憫獔笪?,認定是EP出現故障,這就導致檢測PCIE硬件故障的準確率較低。
【發(fā)明內容】
[0012]本發(fā)明實施例提供一種PCIE硬件故障的檢測方法及裝置,用于解決現有PCIE硬件故障的檢測方式的檢測效率低的問題。
[0013]本發(fā)明實施例提供的一種PCIE硬件故障的檢測方法,應用于PCIE系統中,所述PCIE系統中與RC交互的交換設備不具備NT端口,該方法,包括:
[0014]RC根據接收到的信息信號中斷(Message Signaled Interrupt,MSI)消息中攜帶的MSI地址,和預配置的MSI地址與PCIE端口的對應關系,確定所述MSI地址對應的PCIE
端口 ;
[0015]確定所述PCIE端口的第一鏈路協商模式狀態(tài)值,并將其與自身預存的第二鏈路協商模式狀態(tài)值進行比較,所述第二鏈路協商模式狀態(tài)值用于表征處于正常工作狀態(tài)下的PCIE端口對應的鏈路協商模式狀態(tài)值;
[0016]在比較結果不一致時,確定所述PCIE端口所在鏈路出現故障。
[0017]從上述方案可以看出,在本發(fā)明實施例中,利用MSI中斷機制,確定PCIE系統中相應PCIE端口的鏈路協商模式狀態(tài)值,進而準確地檢測出存在故障的鏈路,前述這種檢測方式檢測PCIE硬件故障的準確率較高。
[0018]優(yōu)選地,在確定所述PCIE端口的第一鏈路協商模式狀態(tài)值時,具體通過下述方式實現:所述RC從所述PCIE端口的狀態(tài)寄存器中的回路狀態(tài)(Link-Status)寄存器獲取數據,并根據獲取到的數據,確定對應的第一鏈路協商模式狀態(tài)值。
[0019]優(yōu)選地,在上述方法中,上述RC在確定出所述PCIE端口所在鏈路出現故障之后,還包括:所述RC生成所述PCIE端口所在鏈路出現故障的告警提示消息并輸出。這樣,方便管理人員及時對出現故障的鏈路進行后續(xù)恢復處理。
[0020]本發(fā)明實施例提供的一種PCIE硬件故障的檢測裝置,應用于PCIE系統中,所述PCIE系統中與所述裝置交互的交換設備不具備NT端口,該裝置,包括:
[0021]確定模塊,用于根據接收到的信息信號中斷MSI消息中攜帶的MSI地址,和預配置的MSI地址與PCIE端口的對應關系,確定所述MSI地址對應的PCIE端口 ;確定所述PCIE端口的第一鏈路協商模式狀態(tài)值;以及在比較模塊比較出不一致時,確定所述PCIE端口所在鏈路出現故障;
[0022]比較模塊,用于將所述確定模塊確定出的第一鏈路協商模式狀態(tài)值,與自身預存的第二鏈路協商模式狀態(tài)值進行比較,所述第二鏈路協商模式狀態(tài)值用于表征處于正常工作狀態(tài)下的PCIE端口對應的鏈路協商模式狀態(tài)值。
[0023]上述裝置,是利用MSI中斷機制,確定PCIE系統中相應PCIE端口的鏈路協商模式狀態(tài)值,進而準確地檢測出存在故障的鏈路,前述這種檢測方式檢測PCIE硬件故障的準確
率較高。
[0024]優(yōu)選地,上述確定模塊,具體用于從所述PCIE端口的狀態(tài)寄存器中的Link-Status寄存器獲取數據,并根據獲取到的數據,確定對應的第一鏈路協商模式狀態(tài)值。
[0025]優(yōu)選地,上述裝置,還包括:生成輸出模塊,用于在確定模塊確定出所述PCIE端口所在鏈路出現故障之后,生成所述PCIE端口所在鏈路出現故障的告警提示消息并輸出。這樣,方便管理人員及時對出現故障的鏈路進行后續(xù)恢復處理
[0026]本發(fā)明實施例提供的一種PCIE硬件故障的檢測方法,應用于PCIE系統中,所述PCIE系統包括主PCIE系統和次PCIE系統,所述主PCIE系統中與RC交互的交換設備具備NT端口,該方法包括:
[0027]所述主PCIE系統中的RC根據接收到的信息信號中斷MSI消息中攜帶的MSI地址是否為自身預配置的MSI地址,和自身預配置的MSI地址與PCIE端口的對應關系,以及所述次PCIE系統中的RC發(fā)來的MSI地址與PCIE端口的對應關系,確定所述MSI地址對應的PCIE 端 口 ;
[0028]確定所述PCEI端口的第一鏈路協商模式狀態(tài)值,并將確定出的第一鏈路協商模式狀態(tài)值,與自身預存的第二鏈路協商模式狀態(tài)值進行比較,所述第二鏈路協商模式狀態(tài)值用于表征處于正常工作狀態(tài)下的PCIE端口對應的鏈路協商;
[0029]在比較結果不一致時,確定所述PCIE端口的鏈路出現故障。
[0030]從上述方案可以看出,在本發(fā)明實施例中,利用MSI中斷機制,不僅可以確定主PCIE系統中相應PCIE端口的鏈路協商模式狀態(tài)值,還可以確定次PCIE系統中相應PCIE端口的鏈路協商模式狀態(tài)值,進而準確地檢測出主、次PCIE系統中存在故障的鏈路,這種檢測方式檢測PCIE硬件故障的準確率較高。
[0031]優(yōu)選地,上述確定所述PCIE端口的第一鏈路協商模式狀態(tài)值,具體通過下述方式實現:在所述主PCIE系統中的RC確定出所述MSI地址對應的PCIE端口為自身所屬系統中的PCIE端口時,獲取所述PCIE端口的狀態(tài)寄存器中的Link-Status寄存器中的數據,并根據獲取到的數據確定對應的第一鏈路協商模式狀態(tài)值;在所述主PCIE系統中的RC確定出所述MSI地址對應的PCIE端口不為自身所屬系統中的PCIE端口時,從次PCIE系統中的RC獲取所述PCIE端口的第一鏈路協商模式狀態(tài)值。
[0032]優(yōu)選地,在上述方法中,上述主PCIE系統中的RC在確定出所述PCIE端口所在鏈路出現故障之后,還包括:所述主PCIE系統中的RC生成所述PCIE端口所在鏈路出現故障的告警提示消息并輸出。這樣,方便管理人員及時對出現故障的鏈路進行后續(xù)恢復處理。[0033]本發(fā)明實施例提供的一種PCIE硬件故障的檢測裝置,應用于PCIE系統中,所述PCIE系統包括主PCIE系統和次PCIE系統,所述主PCIE系統中與所述裝置交互的交換設備具備NT端口,該裝置,包括:
[0034]確定模塊,用于根據接收到的信息信號中斷MSI消息中攜帶的MSI地址,和所述裝置預配置的MSI地址與PCIE端口的對應關系,以及所述次PCIE系統中的RC發(fā)來的MSI地址與PCIE端口的對應關系,確定所述MSI地址對應的PCIE端口 ;確定所述PCIE端口的第一鏈路協商模式狀態(tài)值;以及在比較模塊比較出不一致時,確定所述PCIE端口所在鏈路出現故障;
[0035]比較模塊,用于將所述確定模塊確定出的第一鏈路協商模式狀態(tài)值,與自身預存的第二鏈路協商模式狀態(tài)值進行比較,所述第二鏈路協商模式狀態(tài)值用于表征處于正常工作狀態(tài)下的PCIE端口對應的鏈路協商模式狀態(tài)值。
[0036]上述裝置,利用MSI中斷機制,確定主PCIE系統中相應PCIE端口的鏈路協商模式狀態(tài)值,還可以確定次PCIE系統中相應PCIE端口的鏈路協商模式狀態(tài)值,進而準確地檢測出主、次PCIE系統中存在故障的鏈路,檢測PCIE硬件故障的準確率較高。
[0037]優(yōu)選地,上述確定模塊,具體用于在確定出所述MSI地址為自身預配置的MSI地址時,獲取所述PCIE端口的狀態(tài)寄存器中的回路狀態(tài)Link-Status寄存器中的數據,并根據獲取到的數據確定對應的第一鏈路協商模式狀態(tài)值;以及在確定出所述MSI地址不為自身預配置的MSI地址時,從次PCIE系統中的RC獲取所述PCIE端口的第一鏈路協商模式狀態(tài)值。
[0038]優(yōu)選地,上述裝置,還包括:生成輸出模塊,用于在確定模塊確定出所述PCIE端口所在鏈路出現故障之后,生成所述PCIE端口所在鏈路出現故障的告警提示消息并輸出。這樣,方便管理人員及時對出現故障的鏈路進行后續(xù)恢復處理。
【專利附圖】
【附圖說明】
[0039]圖1A為現有PCIE系統的結構圖;
[0040]圖1B為現有未包括有NT端口的PCIE系統的結構圖;
[0041]圖1C為現有包括有NT端口的PCIE系統的結構圖;
[0042]圖2為本發(fā)明實施例提供的PCIE硬件故障的檢測方法的流程圖之一;
[0043]圖3為本發(fā)明實施例提供的PCIE硬件故障的檢測方法的流程圖之二 ;
[0044]圖4為本發(fā)明實施例提供的PCIE硬件故障的檢測裝置的結構圖之一;
[0045]圖5為本發(fā)明實施例提供的PCIE硬件故障的檢測裝置的結構圖之二。
【具體實施方式】
[0046]針對目前PCIE硬件故障檢測的缺陷,在本發(fā)明實施例中提出一種簡單、可靠、準確率較高,且適用于大規(guī)模生產測試的PCIE硬件故障的檢測方法及裝置,主要利用MSI中斷機制,確定PCIE系統中相應PCIE端口的鏈路協商模式狀態(tài)值,進而準確地檢測出存在故障的鏈路。
[0047]在這里,此鏈路(Link)協商模式狀態(tài)值用于描述PCIE端口正常讀寫回路的數目,通常在PCIE系統中沒有出現鏈路故障時,xl,x4, x8, xl6規(guī)格的PCIE端口對應的Link協商模式狀態(tài)值分別為1,4,8,16,且Link協商模式狀態(tài)值存儲在PCIE端口的狀態(tài)寄存器中,這樣,某一個PCIE端口的協商模式狀態(tài)值發(fā)生變化,這就意味著此PCIE端口所在鏈路出現故障。
[0048]下面結合說明書附圖,對本發(fā)明實施例提供的PCIE硬件故障的檢測方法及裝置的【具體實施方式】進行說明。
[0049]本發(fā)明實施例提供的一種PCIE硬件故障的檢測方法,應用于PCIE系統中,在該PCIE系統中與RClOl交互的交換設備102不具備NT端口的情況下(如圖1B所示),如圖2所示,具體包括以下步驟:
[0050]S201:RC根據接收到的MSI消息中攜帶的MSI地址,和預配置的MSI地址與PCIE端口的對應關系,確定MSI地址對應的PCIE端口 ;
[0051]S202:確定PCIE端口的第一鏈路協商模式狀態(tài)值,并將其與自身預存的第二鏈路協商模式狀態(tài)值進行比較;
[0052]在這里,上述第二鏈路協商模式狀態(tài)值,是用于表征處于正常工作狀態(tài)下的PCIE端口對應的鏈路協商模式狀態(tài)值,通??赏ㄟ^下述方式獲得:RC讀取自身在PCIE系統初始化階段為各PCIE端口配置的鏈路協商模式狀態(tài)值,可將其存儲在閃存flash中;
[0053]S203:在比較結果不一致時,確定PCIE端口所在鏈路出現故障。
[0054]在本發(fā)明實施例中,在執(zhí)行上述步驟S201之前,需對PCIE系統進行初始化操作,如圖1B所示,具體為:首先,PCIE系統中的RClOl分別為自身、Switchl02、EP103、Switchl05、EP105和EP106上的PCIE端口預配置MSI地址;然后,在PCIE系統中所有設備的PCIE端口上注冊中斷函數,后續(xù)當這些PCIE端口產生MSI中斷時,這些PCIE端口所屬設備向預配置的MSI地址所在地址寫入中斷數據,并生成MSI消息后上報給RC101,這些MSI消息中均攜帶有各自預配置的MSI地址,這時,RClOl接收到MSI消息后,從預配置的MSI地址與PCIE端口的對應關系,查詢出這些PCIE端口。
[0055]需要說明的是,在PCIE系統初始化過程中,RClOl可以給不同的PCIE端口配置相同的MSI地址,也可以配置不相同的MSI地址。例如,RClOl可以給Switchl02上與Switchl04連接的PCIE端口,和與EP103連接的PCIE端口,配置相同的MSI地址,例如配置為MSIRO ;也可以配置不相同的MSI地址,例如前者配置為MSIR0,后者配置為MSIRl。當然,還可采用其他配置方式,在此不再一一列舉。
[0056]由于不同的PCIE端口對應的MSI地址可能相同,那么,在RC接收到多個攜帶有相同MSI地址的MSI消息的情況下,其確定出的對應PCIE端口可能是不同的。例如,如圖1B所示,假設Switchl02上與Switchl04連接的PCIE端口對應的MSI地址為MSIRO ;Switchl04上與EP105連接的PCIE端口對應的MSI地址也為MSIR0,這時,RC確定出的MSI地址為MSIRO對應的PCIE端口即是上述兩個PCIE端口。
[0057]優(yōu)選地,在上述步驟S202中,在RC確定PCIE端口的第一鏈路協商模式狀態(tài)值時,具體可通過下述方式實現:
[0058]RC從PCIE端口的狀態(tài)寄存器中的Link-Status寄存器獲取數據,該數據真實地反映了 PCIE端口所在當前鏈路的協商狀態(tài),可以根據獲取到的該數據,確定對應的第一鏈路協商模式狀態(tài)值。
[0059]需要說明的是,上述第一鏈路協商模式狀態(tài)值和第二鏈路協商模式狀態(tài)值可根據PCIE端口的實際情況來取值,且針對確定出的不同的PCIE端口,其對應的第一鏈路協商模式狀態(tài)值和第二鏈路協商模式狀態(tài)值可以不同。
[0060]優(yōu)選地,本發(fā)明實施例在執(zhí)行完上述步驟S203之后,還可執(zhí)行下述步驟:RC生成PCIE端口所在鏈路出現故障的告警提示消息并輸出,這樣一來,方便管理人員及時處理RC確定出的鏈路故障,即對出現故障的鏈路進行恢復操作。
[0061]本發(fā)明實施例還提供一種PCIE硬件故障的檢測方法,應用于PCIE系統中(如圖1C所示),該PCIE系統包括主PCIE系統和次PCIE系統,主PCIE系統與次PCIE系統通過Switchl02上的NT端口 1021進行數據交互。
[0062]如圖3所示,該方法,具體包括下述步驟:
[0063]S301:主PCIE系統中的RC根據接收到的MSI消息中攜帶的MSI地址,和自身預配置的MSI地址與PCIE端口的對應關系,以及次PCIE系統中的RC發(fā)來的MSI地址與PCIE端口的對應關系,確定MSI地址對應的PCIE端口 ;
[0064]S302:確定PCEI端口的第一鏈路協商模式狀態(tài)值,并將確定出的第一鏈路協商模式狀態(tài)值,與自身預存的第二鏈路協商模式狀態(tài)值進行比較;
[0065]在這里,上述第二鏈路協商模式狀態(tài)值,是用于表征處于正常工作狀態(tài)下的PCIE端口對應的鏈路協商模式狀態(tài)值,即主PCIE系統和次PCIE系統中的PCIE端口對應的鏈路協商模式狀態(tài)值。具體地,對于主PCIE系統中的PCIE端口對應的鏈路協商模式狀態(tài)值而言,可由主PCIE系統中的RC直接讀取自身在主PCIE系統初始化階段為各PCIE端口配置的鏈路協商模式狀態(tài)值,然后存儲到flash中;對于次PCIE系統中的PCIE端口對應的鏈路協商模式狀態(tài)值而言,可由次PCIE系統中的RC讀取自身在次PCIE系統初始化階段為各PCIE端口配置的鏈路協商模式狀態(tài)值后,同步給主PCIE系統中的RC進行閃存,以便后續(xù)主PCIE系統中的RC進行比較。
[0066]S303:在比較結果不一致時,確定PCIE端口的鏈路出現故障。
[0067]在本發(fā)明實施例中,在執(zhí)行上述步驟S301之前,需分別對主PCIE系統和次PCIE系統進行初始化操作。
[0068]具體地,如圖1C所示,針對主PCIE系統的初始化操作,與圖1B所示的上述方法中PCIE系統的初始化操作類似,與之不同的是:主PCIE系統中的RC101,分別為自身、Switchl02、Switchl04、EP105和EP106上的PCIE端口預配置與次PCIE系統不同的MSI地址,例如使用MSIRO?MSIR3,并且啟動Switchl02上NT端口 1021的數據轉換功能,以便后續(xù)將次PCIE系統中產生中斷的PCIE端口所屬設備傳來的MSI消息中的MSI地址所在地址,轉換為主PCIE系統可以識別的地址。
[0069]針對次PCIE系統11的初始化操作,與圖1B所示的PCIE系統的初始化操作類似,與之不同的是:次PCIE系統中的RC107,例如使用MSIR4?MSIR7分別為自身、Switchl02和EP103上的PCIE端口預配置MSI地址,并在配置成功后,將配置的MSI地址與PCIE端口的對應關系同步給主PCIE系統中的RC101,后續(xù)RClOl可根據此對應關系判定產生中斷的PCIE端口,便于主PCIE系統監(jiān)控次PCIE系統;啟動Switchl02的雙重映射(DUAL cast)模式使能,可對產生中斷的PCIE端口所屬設備生成的MSI消息進行復制,一份MSI消息主動上報給RC107,另一份MSI消息通過NT端口傳給RClOl,以便后續(xù)RClOl根據此MSI消息,確定次PCIE系統中哪個PCIE端口所在鏈路出現故障。[0070]優(yōu)選地,在執(zhí)行完上述步驟S301后,主PCIE系統中的RC確定出的MSI地址對應的PCIE端口可能是主PCIE系統中的PCIE端口,也可能是次PCIE系統中的PCIE端口。[0071 ] 那么,在上述PCIE端口為主PCIE系統中的PCIE端口的情況下,主PCIE系統中的RC可直接獲取上述PCIE端口的狀態(tài)寄存器中的Link-Status寄存器中的數據,然后根據獲取到的數據確定對應的第一鏈路協商模式狀態(tài)值即可。
[0072]在上述PCIE端口為次PCIE系統中的PCIE端口的情況下,需從次PCIE系統中的RC獲取上述PCIE端口的第一鏈路協商模式狀態(tài)值。
[0073]具體地,主PCIE系統中的RC可向次PCIE系統中的RC發(fā)送攜帶有對應的PCIE端口的ID信息的訪問請求,次PCIE系統中的RC在接收到此訪問請求后,根據對應的PCIE端口的ID信息,相應讀取對應PCIE端口的狀態(tài)寄存器中的回路狀態(tài)Link-Status寄存器中的數據,從而得到對應的第一鏈路協商模式狀態(tài)值。當然,主PCIE系統中的RC還可以通過其他方式獲取,在此不再一一列舉。
[0074]優(yōu)選地,本發(fā)明實施例在執(zhí)行完上述步驟S303之后,主PCIE系統中的RC在確定出PCIE端口所在鏈路出現故障之后,還包括:
[0075]主PCIE系統中的RC生成PCIE端口所在鏈路出現故障的告警提示消息并輸出。
[0076]在本發(fā)明實施例中,采用上述方法檢測PCIE硬件故障,既可以檢測交換設備上PCIE端口是否存在鏈路故障,也可以檢測EP上PCIE端口是否存在鏈路故障,且通過MSI中斷機制實現故障檢測,檢測的準確率較高。
[0077]基于同一發(fā)明構思,本發(fā)明實施例還提供了 PCIE硬件故障的檢測裝置,由于這些裝置所解決問題的原理與前述PCIE硬件故障的檢測方法相似,因此這些裝置的實施可以參見前述方法的實施,重復之處不再贅述。
[0078]本發(fā)明實施例提供的一種PCIE硬件故障的檢測裝置,應用于PCIE系統中,該PCIE系統中與上述裝置交互的交換設備不具備NT端口,如圖4所示,該裝置,具體包括:
[0079]確定模塊401,用于根據接收到的MSI消息中攜帶的MSI地址,和預配置的MSI地址與PCIE端口的對應關系,確定MSI地址對應的PCIE端口 ;確定PCIE端口的第一鏈路協商模式狀態(tài)值;以及在比較模塊402比較出不一致時,確定PCIE端口所在鏈路出現故障;
[0080]比較模塊402,用于將確定模塊401確定出的第一鏈路協商模式狀態(tài)值,與自身預存的第二鏈路協商模式狀態(tài)值進行比較;
[0081]在這里,上述第二鏈路協商模式狀態(tài)值,是用于表征處于正常工作狀態(tài)下的PCIE端口對應的鏈路協商模式狀態(tài)值。
[0082]優(yōu)選地,上述確定模塊401,具體用于從PCIE端口的狀態(tài)寄存器中的Link-Status寄存器獲取數據,并根據獲取到的數據,確定對應的第一鏈路協商模式狀態(tài)值。
[0083]優(yōu)選地,上述裝置,還可以包括:
[0084]生成輸出模塊403,用于在確定模塊401確定出PCIE端口所在鏈路出現故障之后,生成PCIE端口所在鏈路出現故障的告警提示消息并輸出。
[0085]本發(fā)明實施例提供的另一種PCIE硬件故障的檢測裝置,應用于PCIE系統中,此PCIE系統包括主PCIE系統和次PCIE系統,主PCIE系統中與上述裝置交互的交換設備具備NT端口,如圖5所示,該裝置,具體包括:
[0086]確定模塊501,用于根據接收到的MSI消息中攜帶的MSI地址,和上述裝置預配置的MSI地址與PCIE端口的對應關系,以及次PCIE系統中的RC發(fā)來的MSI地址與PCIE端口的對應關系,確定MSI地址對應的PCIE端口 ;確定PCIE端口的第一鏈路協商模式狀態(tài)值;以及在比較模塊502比較出不一致時,確定PCIE端口所在鏈路出現故障;
[0087]比較模塊502,用于將確定模塊501確定出的第一鏈路協商模式狀態(tài)值,與自身預存的第二鏈路協商模式狀態(tài)值進行比較;
[0088]在這里,上述第二鏈路協商模式狀態(tài)值,是用于表征處于正常工作狀態(tài)下的PCIE端口對應的鏈路協商模式狀態(tài)值。
[0089]優(yōu)選地,上述確定模塊501,具體用于在確定出MSI地址對應的PCIE端口為自身所屬系統中的PCIE端口時,獲取PCIE端口的狀態(tài)寄存器中的Link-Status寄存器中的數據,并根據獲取到的數據確定對應的第一鏈路協商模式狀態(tài)值;以及在確定出MSI地址對應的PCIE端口不為自身所屬系統中的PCIE端口時,從次PCIE系統中的RC獲取PCIE端口的第一鏈路協商模式狀態(tài)值。
[0090]優(yōu)選地,上述裝置,還可以包括:
[0091 ] 生成輸出模塊503,用于在確定模塊501確定出PCIE端口所在鏈路出現故障之后,生成PCIE端口所在鏈路出現故障的告警提示消息并輸出。
[0092] 顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。
【權利要求】
1.一種快速外部設備互連PCIE硬件故障的檢測方法,應用于PCIE系統中,所述PCIE系統中與根組件RC交互的交換設備不具備非透明橋NT端口,其特征在于,該方法,包括: 所述RC根據接收到的信息信號中斷MSI消息中攜帶的MSI地址,和預配置的MSI地址與PCIE端口的對應關系,確定所述MSI地址對應的PCIE端口 ; 確定所述PCIE端口的第一鏈路協商模式狀態(tài)值,并將其與自身預存的第二鏈路協商模式狀態(tài)值進行比較,所述第二鏈路協商模式狀態(tài)值用于表征處于正常工作狀態(tài)下的PCIE端口對應的鏈路協商模式狀態(tài)值; 在比較結果不一致時,確定所述PCIE端口所在鏈路出現故障。
2.如權利要求1所述的方法,其特征在于,確定所述PCIE端口的第一鏈路協商模式狀態(tài)值,具體包括: 所述RC從所述PCIE端口的狀態(tài)寄存器中的回路狀態(tài)Link-Status寄存器獲取數據,并根據獲取到的數據,確定對應的第一鏈路協商模式狀態(tài)值。
3.如權利要求1或2所述的方法,其特征在于,所述RC在確定出所述PCIE端口所在鏈路出現故障之后,還包括: 所述RC生成所述PCIE端口所在鏈路出現故障的告警提示消息并輸出。
4.一種快速外部設備互連PCIE硬件故障的檢測裝置,應用于PCIE系統中,所述PCIE系統中與所述裝置交互的交換設備不具備非透明橋NT端口,其特征在于,該裝置,包括: 確定模塊,用于根據接收到的信息信號中斷MSI消息中攜帶的MSI地址,和預配置的MSI地址與PCIE端口的對應關系,確定所述MSI地址對應的PCIE端口 ;確定所述PCIE端口的第一鏈路協商模式 狀態(tài)值;以及在比較模塊比較出不一致時,確定所述PCIE端口所在鏈路出現故障; 比較模塊,用于將所述確定模塊確定出的第一鏈路協商模式狀態(tài)值,與自身預存的第二鏈路協商模式狀態(tài)值進行比較,所述第二鏈路協商模式狀態(tài)值用于表征處于正常工作狀態(tài)下的PCIE端口對應的鏈路協商模式狀態(tài)值。
5.如權利要求4所述的裝置,其特征在于,所述確定模塊,具體用于從所述PCIE端口的狀態(tài)寄存器中的回路狀態(tài)Link-Status寄存器獲取數據,并根據獲取到的數據,確定對應的第一鏈路協商模式狀態(tài)值。
6.如權利要求4或5所述的裝置,其特征在于,該裝置,還包括: 生成輸出模塊,用于在確定模塊確定出所述PCIE端口所在鏈路出現故障之后,生成所述PCIE端口所在鏈路出現故障的告警提示消息并輸出。
7.一種快速外部設備互連PCIE硬件故障的檢測方法,應用于PCIE系統中,所述PCIE系統包括主PCIE系統和次PCIE系統,所述主PCIE系統中與根組件RC交互的交換設備具備非透明橋NT端口,其特征在于,該方法,包括: 所述主PCIE系統中的RC根據接收到的信息信號中斷MSI消息中攜帶的MSI地址,和自身預配置的MSI地址與PCIE端口的對應關系,以及所述次PCIE系統中的RC發(fā)來的MSI地址與PCIE端口的對應關系,確定所述MSI地址對應的PCIE端口 ; 確定所述PCEI端口的第一鏈路協商模式狀態(tài)值,并將確定出的第一鏈路協商模式狀態(tài)值,與自身預存的第二鏈路協商模式狀態(tài)值進行比較,所述第二鏈路協商模式狀態(tài)值用于表征處于正常工作狀態(tài)下的PCIE端口對應的鏈路協商;在比較結果不一致時,確定所述PCIE端口的鏈路出現故障。
8.如權利要求7所述的方法,其特征在于,確定所述PCIE端口的第一鏈路協商模式狀態(tài)值,具體包括: 在所述主PCIE系統中的RC確定出所述MSI地址對應的PCIE端口為自身所屬系統中的PCIE端口時,獲取所述PCIE端口的狀態(tài)寄存器中的回路狀態(tài)Link-Status寄存器中的數據,并根據獲取到的數據確定對應的第一鏈路協商模式狀態(tài)值; 在所述主PCIE系統中的RC確定出所述MSI地址對應的PCIE端口不為自身所屬系統中的PCIE端口時,從次PCIE系統中的RC獲取所述PCIE端口的第一鏈路協商模式狀態(tài)值。
9.如權利要求7或8所述的方法,其特征在于,所述主PCIE系統中的RC在確定出所述PCIE端口所在鏈路出現故障之后,還包括: 所述主PCIE系統中的RC生成所述PCIE端口所在鏈路出現故障的告警提示消息并輸出。
10.一種快速外部設備互連PCIE硬件故障的檢測裝置,應用于PCIE系統中,所述PCIE系統包括主PCIE系統和次PCIE系統,所述主PCIE系統中與所述裝置交互的交換設備具備非透明橋NT端口,其特征在于,該裝置,包括: 確定模塊,用于根據接收到的信息信號中斷MSI消息中攜帶的MSI地址,和所述裝置預配置的MSI地址與PCIE端口的對應關系,以及所述次PCIE系統中的RC發(fā)來的MSI地址與PCIE端口的對應關系,確·定所述PCEI端口的第一鏈路協商模式狀態(tài)值;以及在比較模塊比較出不一致時,確定所述PCIE端口所在鏈路出現故障; 比較模塊,用于將所述確定模塊確定出的第一鏈路協商模式狀態(tài)值,與自身預存的第二鏈路協商模式狀態(tài)值進行比較,所述第二鏈路協商模式狀態(tài)值用于表征處于正常工作狀態(tài)下的PCIE端口對應的鏈路協商模式狀態(tài)值。
11.如權利要求10所述的裝置,其特征在于,所述確定模塊,具體用于在確定出所述MSI地址對應的PCIE端口為自身所屬系統中的PCIE端口時,獲取所述PCIE端口的狀態(tài)寄存器中的回路狀態(tài)Link-Status寄存器中的數據,并根據獲取到的數據確定對應的第一鏈路協商模式狀態(tài)值;以及在確定出所述MSI地址對應的PCIE端口不為自身所屬系統中的PCIE端口時,從次PCIE系統中的RC獲取所述PCIE端口的第一鏈路協商模式狀態(tài)值。
12.如權利要求10或11所述的裝置,其特征在于,該裝置,還包括: 生成輸出模塊,用于在確定模塊確定出所述PCIE端口所在鏈路出現故障之后,生成所述PCIE端口所在鏈路出現故障的告警提示消息并輸出。
【文檔編號】G06F11/22GK103440188SQ201310384840
【公開日】2013年12月11日 申請日期:2013年8月29日 優(yōu)先權日:2013年8月29日
【發(fā)明者】馬敏 申請人:福建星網銳捷網絡有限公司