新四季網

檢測計算機系統中的不可靠的鏈路的製作方法

2023-07-11 18:41:36

專利名稱:檢測計算機系統中的不可靠的鏈路的製作方法
技術領域:
本公開一般涉及計算機系統,並且更特別地涉及計算機系統中的通信鏈路的分析。
背景技術:
許多利用串行鏈路的計算機系統採用每鏈路單個計數器來測量發生在鏈路上的錯誤。這些系統可以輪詢計數器並且確定鏈路是否需要被修復。其它系統通過創建時間窗(在該時間窗期間對錯誤進行計數)來對此方法進行擴充。一旦時間周期已經期滿,計數器就被清零。此計數器可以具有閾值,其中如果該閾值被超過,則記錄錯誤並且/或將錯誤消息發送至管理硬體/軟體。

發明內容
本公開的實施例提供了用於分析通信鏈路的可靠性的系統和方法。該系統的一個實施例包括控制通信鏈路的鏈路控制部件,其中該鏈路控制部件耦合至處理器和診斷部件。診斷部件被配置成確定在超過第二可編程閾值或與第二可編程閾值匹配的多個時間周期的範圍期間、是否已經在通信鏈路上發生了超過第一可編程閾值或與第一可編程閾值匹配的傳輸錯誤。用於分析通信鏈路的可靠性的方法的一個實施例尤其能夠被概括地總結為如下 接收錯誤已經在通過通信鏈路的傳輸中被檢測到的指示,並且確定在超過第二可編程閾值或與第二可編程閾值匹配的多個時間周期的範圍期間、是否已經在通信鏈路上發生了超過第一可編程閾值或與第一可編程閾值匹配的傳輸錯誤,根據寄存器值來確定所述第一可編程閾值和所述第二可編程閾值。本公開的實施例還包括嵌入有用於分析通信鏈路的可靠性的指令的計算機可讀存儲媒體。在一個實施例中,指令在被計算機執行時使計算機執行接收錯誤已經在通過通信鏈路的傳輸中被檢測到的指示,並且確定在超過第二可編程閾值或與第二可編程閾值匹配的多個時間周期的範圍期間、是否已經在通信鏈路上發生了超過第一可編程閾值或與第一可編程閾值匹配的傳輸錯誤,根據寄存器值來確定所述第一可編程閾值和所述第二可編程閾值。對於本領域的技術人員而言,根據對以下附圖和詳細說明的研究,本公開的其它系統、方法、特徵和優點將會或變得顯而易見。意圖是所有此類另外的系統、方法、特徵和優點都被包括在本說明書中並且都在本公開的範圍內。


本公開的許多方面能夠通過參考以下附圖而被更好地理解。附圖中的部件不一定按比例繪製,而是將重點放在清楚地圖示本公開的原理。而且,在附圖中,類似的附圖標記遍及若干視圖指示相應的部分。
圖1是用於互連在根據本公開的計算平臺中的外圍設備的示例性體系結構的方框圖。圖2-4是用來控制圖1的診斷邏輯的各方面的狀態寄存器的代表性示圖。圖5-6是描述根據圖1的系統的診斷操作過程的實施例的流程圖。
具體實施例方式通常,計算機系統使用通信鏈路在節點或網絡連接點之間通信。本公開的實施例採用診斷邏輯或部件,所述診斷邏輯或部件在鏈路完全故障(硬故障)之前檢測計算機系統中的故障鏈路。診斷邏輯的一個實施例區分發生在鏈路上的單個錯誤序列與該鏈路本身的緩慢惡化,其中鏈路的惡化可以指示該鏈路很快變得不可靠並且應該進行修復。要注意的是,某部件的緩慢惡化通常不需要重新訓練(retrain)鏈路從而停止使用故障線路。通常,該線路仍然工作但是偶爾發生錯誤並且隨著時間的推移發生越來越多的錯誤,其將最終使得在鏈路上發生硬錯誤。診斷邏輯134試圖在硬故障發生之前捕獲這種類型的問題。計算機或計算機的部分跨越其進行通信的通信鏈路可以是串行的,因為單個數據流跨越該鏈路加以傳輸。通常已知串行鏈路具有低的可更正錯誤率。串行通信體系結構的示例包括RS-232、RS-423、RS-485、通用串行總線、FireWire 、乙太網、光纖信道(Fibre Channel), InfiniBand , PCI (外設部件互連)Express、SONET、SDH、Τ_1、E-1 等等。已經基於高帶寬串行體系結構形成了若干通信標準。這些包括HyperTransport 、 RapidIO 、StarFabric 禾口 Intel QuickPath Interconnect 。圖1是用於互連計算平臺中的外圍設備的PCI Express(PCIe)體系結構的方框圖。PCIe常常被用作計算系統中的背板系統。在該圖中PCIe的使用是為了圖示目的而並不意圖是限制性的。在其它實施例中也可以使用其它的串行通信體系結構。在圖1的計算平臺中,諸如根聯合體(RC)設備110之類的鏈路控制部件將中央處理器120和存儲子系統130連接至PCI Express交換結構140,所述PCI Express交換結構 140包括一個或多個交換設備150。根聯合體設備110代表處理器120生成事務處理請求, 其通過局部總線125而被互連。同樣地,根聯合體110生成存儲和輸入/輸出(I/O)請求。根聯合體功能可以被實現為離散設備,或可以與處理器120集成。存儲器130中的軟體可以包括基本輸入輸出系統(BIOS)(為簡單起見被省略)和合適的作業系統(0/ S) 132。BIOS是一組軟體例程,其在啟動時初始化並且測試硬體、開啟作業系統(0/S)132、 並且支持硬體設備間的數據的傳送。BIOS被存儲在ROM中,從而使得當計算平臺被激活時 BIOS能夠被執行。如所示,診斷邏輯134和寄存器138都位於根聯合體設備110中。在另一實施例中,診斷邏輯134可以位於端點或主存儲器處。根聯合體110可以包含一個以上的PCI Express埠(RP)並且多個交換設備150 能夠被連接至該根聯合體110上的埠或被級聯。端點170(例如,具有PCI Express系統接口的千兆位乙太網(Gigabit Ethernet)控制器、圖形處理單元、存儲控制器、等等)完成或請求PCI Express事務處理。PCIe實施雙單工鏈路160,其中數據在鏈路160的發送線路和接收線路上同時被發送和接收。任何兩個PCIe設備之間的連接被認為是鏈路160並且是由一條或多條線路的集合來構建的,其中線路的數量是可配置的。
根聯合體(RC) 110內的根埠(RP)檢測與PCIe結構140內的分組傳輸有關的錯誤。某些錯誤在由根埠(RP)接收到的分組中被檢測到。由於NAK(否定應答)的接收或由於重放超時而導致推斷出某些錯誤。這些由根聯合體110接收的錯誤導致狀態寄存器 138被更新並且錯誤被有條件地報告給適當的軟體錯誤處理器136或處理器。軟體錯誤處理器136將最初讀取根聯合體狀態寄存器138以確定錯誤的性質,並且還可以讀取報告該錯誤的設備的設備專用錯誤寄存器。因此,PCIe定義了各種機制,其用於檢查錯誤、就那些錯誤進行報告、並且識別用於處理這些錯誤的適當硬體和軟體元件。PCIe錯誤檢查集中於與PCIe接口相關聯的錯誤和在請求端功能和完成端功能之間的事務的傳送。根據PCIe協議,錯誤被分成三個類別, 所述三個類別指定錯誤的嚴重性,並且定義應該基於其嚴重性處理該錯誤的實體。這些類別包括可更正的錯誤,其由PCI Express結構的硬體來處理;不可更正的非致命錯誤,其由設備專用軟體來處理;以及不可更正的致命錯誤,其由系統軟體來處理。關於可更正的錯誤,這些錯誤會對性能(例如,延時和帶寬)有影響但是沒有信息由於該錯誤而被丟失。這些類型的錯誤可以被報告給適當的PCI Express設備的軟體,所述軟體能夠採取各種行動,包括記錄錯誤;更新PCIe性能的計算;以及跟蹤錯誤以預測結構 140內的可能的弱點。跟蹤錯誤能夠隔離這樣的區域,即在該區域中,對於將來的致命錯誤而言存在更大的可能性。採用本公開的實施例,通過診斷邏輯134分析可更正錯誤率以確定通信鏈路160是否處於惡化的過程中但是尚未達到使不可更正的錯誤被檢測到的程度。例如,在診斷邏輯134的一個實施例中,如果可更正錯誤率超過多級可編程閾值或與多級可編程閾值匹配,則鏈路160被視為已經在其操作方面惡化,其可能指示在不久的將來該鏈路160的硬故障。因此,停止使用那條鏈路160或在硬故障發生以前更換它可能是可取的,這會引起計算機系統的非計劃停機時間。為了圖示,在一個實施例中,診斷部件或邏輯的一個方案包括以下的部件可編程的時間窗、事件計數器、可編程的事件閾值、周期計數器以及可編程的周期閾值。在一個實施例中,使用硬體寄存器實現計數器。儘管已經在PCI Express鏈路160的示例性背景下闡述了實施例,但是該方案的其它實施例可用於能夠容許一定級別的可更正錯誤的任何鏈路或通信信道。在前述方案中,每當可更正的錯誤發生在正被分析的鏈路160上時,事件計數器就被遞增。在時間窗期滿以後,該事件計數器就被清零。要注意的是,事件計數器能夠被編程為(但不限於)對一個或多個(例如,1個至5個)不同的PCIe可更正錯誤進行計數。 可能的可更正錯誤包括a) DLLP (數據鏈路層分組)CRC (循環冗餘校驗)錯誤(入站);b) TLP (事務處理層分組)LCRC (鏈路CRC)錯誤(入站);c)接收器錯誤(入站);d)已接收的NAK(否定應答)(即,出站LCRC) ;e)重放超時(r印lay timeout)(出站)。這些信號中的每一個都指示發生在鏈路160上的可更正錯誤。如果事件計數器超過可編程事件閾值或與可編程事件閾值匹配,則周期計數器就被遞增(在那個時間或周期窗中只此一次)。周期計數器對其中超過了事件閾值或與事件閾值匹配的連續周期進行計數。如果時間周期過去而沒有超過事件閾值或與事件閾值匹配,則該周期計數器就被清零。如果周期計數器超過周期閾值或與周期閾值匹配,則這意味著鏈路160已經顯著地惡化並且存在問題。
然後可以由診斷邏輯134採取若干行動錯誤能夠被記錄在PCIe結構的硬體(或軟體)中的錯誤日誌中。此外,中斷能夠被發送至管理硬體。PCIe結構的該管理硬體可以選擇將人類可讀的消息發送至系統的操作者或發送至現場服務中心,指示特定的鏈路需要被修復。可替換地,管理硬體能夠啟動動態切換從而所有去往有問題的鏈路的業務被重新定向在不同的鏈路上。需要注意的是,多個級別或閾值被用來在問題被診斷邏輯134認識到以前指示錯誤。例如,由單一事件所引起的錯誤的突發(也許是在傳輸中噪聲事件使一個以上的位翻轉)能夠使得多個錯誤在通信鏈路160上(通過在RP或端點處的設備)被檢測到。只要該錯誤被包含在診斷窗或周期內(或者也許是自錯誤的突發可能跨在邊界上以來的兩個周期)並且只要診斷窗閾值被設置為3或更大的值,診斷邏輯134就忽略由單一事件所引起的錯誤突發。在現有設計中,其中未使用多個級別或閾值,錯誤突發會看起來像許多錯誤,儘管它實際上僅僅是單一事件。採用診斷邏輯134的實施例,檢測到不是由單一事件引起的持續錯誤率。特別地, 診斷邏輯134通過注意達到多個事件閾值長達一個持續的時間段來檢測問題。作為響應, 為了指示正被監控的鏈路的故障,診斷邏輯134可以通知用戶、將中斷發送至0/S 134、等寸。為了闡明上述過程在一個實施例中可以如何工作,提供了若干示例。在第一示例中,假定已經採用以下值對診斷計數器進行了設置時間周期=1秒;錯誤閾值=1 ;周期閾值=4。為了使得採用這些被賦予的值來發信號通知問題,診斷邏輯134將需要在四個連續的1秒周期中的每一個中觀察至少1個PCIe錯誤。接下來,在以下的示例中,時間周期或窗已經被設置為1秒;事件閾值已經被設置為100個錯誤;以及周期閾值被設置為5個周期。這些值中的每一個都可由用戶編程。假定對於上述示例,存在使位在正通過鏈路160傳輸的分組中被翻轉的伽瑪射線穿透(gamma ray strike) 0這是單一錯誤事件。儘管事件計數器由於所翻轉的位而將遞增,但是如果所翻轉的位是唯一的錯誤,則這不會超過事件閾值或與事件閾值匹配。現在假定發生EMI (電磁幹擾)事件,其使晶片組中的符號鎖(symbol lock)丟失。 這將在鏈路160上引起錯誤流,直到該鏈路被重新訓練為止。在此示例中,事件計數器將在 1秒內計數超過100。這將使周期計數器同樣遞增。然而,假定重新訓練在不到1秒內完成, 因此只有1個周期(或者也許是2個周期)將已經超過該事件閾值或與該事件閾值匹配。 結果,由於EMI事件而沒有超過周期閾值或與周期閾值匹配。接下來,假定對於上述示例,在晶片組上存在緩慢惡化的連接器引腳。假設其以每秒約10個的速率產生可更正的錯誤。慢慢地,可更正的錯誤的速率增加到每秒100個。周期計數器將開始遞增。由於這是持續的錯誤速率,所以連續5個周期將超過周期閾值或與周期閾值匹配,並且現在錯誤事件足夠嚴重以至於它可能需要被診斷邏輯134報告並且可能要被修復。因此,診斷邏輯134可能能夠在通信鏈路160完全故障以前檢測到緩慢惡化的通信鏈路160。通過在許多連續的時間窗或周期期間查看可更正錯誤率,診斷邏輯134能夠忽略在更大的時間窗或周期期間持續的瞬時錯誤和標記錯誤率。用來控制診斷邏輯134的各方面的該組狀態寄存器138可以包括定義時間窗或周期的長度的寄存器(對於整個根聯合體來說是普通的)。此狀態寄存器被稱為鏈路診斷計時器控制(Link Diagnostic Timer Control )(見圖2),其設計定義診斷窗(對於所有根埠的兩個方向的所有事件來說是普通的)的計時器。鏈路診斷計時器控制寄存器210中的值控制計時器/計數器,其定義由根聯合體 110中的診斷邏輯134所使用的診斷時間窗或周期的長度。兩個單獨的計數器被用於此目的。第一計數器(診斷窗周期計時器220)將輸入根聯合體管理主滴答信號(tick signal) 轉換成中間診斷滴答信號。第二計數器(診斷窗長度計時器230)確定診斷窗或周期的實際長度。所述窗定義這樣的時間間隔,在該時間間隔期間診斷邏輯134對某些鏈路事件的發生進行計數,如由各根埠的鏈路診斷狀態與控制寄存器(見圖3-4)所指定的那樣。注意,在一個實施例中,對鏈路診斷計時器控制寄存器210的任何寫入都重置兩個診斷窗計時器。鏈路診斷計時器控制寄存器210的diag_Wind0W_peri0d (診斷_窗_周期)值控制診斷窗周期計時器220並且將計時器生成的診斷滴答信號的周期定義為其輸出。此信號又被用作診斷窗長度計時器230的輸入。診斷滴答信號的周期等於公共根聯合體管理主滴答信號的周期(例如1微秒)乘以diag_Wind0W_peri0d值。在一個實施例中,當使用診斷邏輯134時,diag_Wind0W_peri0d可以被設置為16』 dlOOOO,由此使診斷滴答信號的周期等於10 ms。將diag_Wind0W_peri0d值設置為0重置並且停止診斷窗周期計時器220並且阻止生成關於診斷滴答信號的任何脈衝。鏈路診斷控制寄存器210的diagjindowjength (診斷_窗_長度)值控制診斷窗長度計時器230並且將診斷窗的長度定義為診斷滴答信號的diagjindowjength周期 (例如,diag_window_length * 10 ms)。在一個實施例中,diag_window_length 欄位的 24 位寬度允許超過46小時的診斷窗最大長度。在每個診斷窗或周期的末尾,診斷窗長度計時器生成關於特殊信號(診斷窗邊界)的脈衝。對於在各根埠的鏈路診斷狀態與控制寄存器(見圖3-4)中的鏈路事件計數器來說,此脈衝充當它們的「當前」事件計數器值應當被傳送至「先前的」計數器並且當前的計數器應該再次從0開始對已選擇的事件進行計數的指示。將diag_Wind0W_length值設置為0重置並且停止診斷窗長度計時器並且阻止生成關於診斷窗邊界信號的任何脈衝。用來控制診斷邏輯134的各方面的該組狀態寄存器138可以進一步包括每鏈路/ RP寄存器(RPx鏈路診斷狀態與控制),其將為鏈路160的兩個方向中的每一個方向定義 /保持以下內容事件計數閾值;當前的和先前的事件計數;以及針對該方向的每個錯誤類型的使能位(Enable bit)。進一步地,此寄存器還可以實現針對鏈路/RP的特定方向的事件計數的重置。當正被跟蹤的錯誤類型的使能位變化時,這可能是有用的。如果設置了用於一方向/鏈路的多個使能位,則當發生已使能的錯誤類型中的任何一個時,診斷邏輯134 將對所有循環進行計數。診斷狀態與控制寄存器310 (見圖3)被用來控制每個RP的鏈路的診斷邏輯並且讀取事件計數器的值。該寄存器310設計用於當前事件計數的閾值和事件選擇掩碼。它們還包含當前的和先前的事件計數值和reset_C0Unts (重置_計數)位。診斷邏輯134能夠在當前的診斷窗(由鏈路診斷計時器控制寄存器210的編程所定義)期間對在每條鏈路160上的某些事件的發生進行計數。能夠被計數的事件的類型包括Bad TLP (壞的TLP)、Bad DLLP (壞的DLLP)、Receiver Error (接收器錯誤)(這三種事件通過入站鏈路邏輯來加以檢測/觸發),以及NAK Received (接收到的NAK)和R印lay Timer Timeout (重放計時器超時)(這兩種通過出站鏈路邏輯來加以檢測)。待計數的實際事件類型經由它們的選擇掩碼而被選擇;如果選擇超過單個事件類型,則將對在其期間發生已選擇的事件中的任何一個事件的所有循環進行計數。到目前為止,在當前診斷窗期間,一個或多個已選擇事件的發生的數量被指示在eventcnt (事件_計數)欄位320中; 在每兩個診斷窗之間的邊界處,event_cnt欄位的當前值被自動地傳送至prev_event_Cnt 欄位330,並且eventcnt欄位320開始再次對發生在新的診斷窗中的已選擇的事件進行計數。如果在此窗期間所達到的event_cnt 320的值小於event_threshold(事件_閾值)欄位340的值,則在每個診斷窗的末尾處將periocLcnt (周期_計數)欄位330重置為0 ;另一方面,如果在窗的末尾處event_cnt 320的值等於或大於event_threshold 340, 則period_cnt欄位330就被遞增。因此,period_cnt 330在其中event_cnt 320達到或超過eventthreshold值340的當前窗之前立即指示連續的診斷窗的數量。如果period_ cnt 330的值達到periocLthreshold欄位350中的值,則所有進一步的事件和周期計數就被阻止,在 period_cnt 360、event_cnt 320 和 prev_event_cnt 330 欄位中的值就被凍結 (即,從eventcnt至prev_event_Cnt沒有傳送發生),並且HCE (硬體校驗錯誤)事件就被產生並且被發送至狀態寄存器。然後軟體可以將1寫入reSet_CntS位385以將所有計數重置為0,並且開啟隨後的事件和周期計數。如果eventthreshold (事件_閾值)340的值或periocLthreshold (周期_閾值)350的值為0,則對於此根埠(RP)來說,沒有事件 /周期計數被執行並且沒有HCE事件被產生。例如,診斷邏輯134可以通過對這些來自所有的RP的事件一起進行或操作(OR-ing)來為狀態寄存器138構造單個HCE事件。診斷狀態與控制寄存器310的SeleCt_bad_tlp值372充當用於入站鏈路上的 "Bad TLP」事件類型的選擇掩碼。值「1」選擇用於計數的事件,並且值「0」使診斷邏輯134 忽略它。診斷狀態與控制寄存器310的SeleCt_bad_dllp值374充當用於入站鏈路上的 "Bad DLLP」事件類型的選擇掩碼。值「 1」選擇用於計數的事件,並且值「0」使診斷邏輯134 忽略它。診斷狀態與控制寄存器310的SeleCt_rCVr_err值376充當用於入站鏈路上的 "Receiver Error」事件類型的選擇掩碼。值「 1」選擇用於計數的事件,並且值「0」使診斷邏輯134忽略它。診斷狀態與控制寄存器310的SeleCt_nak_reCeiVed值378充當用於出站鏈路上的「NAK Received」事件類型(例如,從入站鏈路接收到的針對先前在出站鏈路上發送的 TLP的NAK)的選擇掩碼。值「1」選擇用於計數的事件,並且值「0」使診斷邏輯134忽略它。診斷狀態與控制寄存器310的SeleCt_i^play_time0ut 380充當用於在出站鏈路上的「R印lay Timer Timeout」事件類型的選擇掩碼。值「 1 」選擇用於計數的事件,並且值 「0」使診斷邏輯134忽略它。將1寫入到診斷狀態與控制寄存器310的resetcnts值385將所有計數器 (period_cnt 360、event_cnt 320 和 prev_event_cnt 330)的值重置為 0,並且開啟隨後的事件和周期計數。診斷狀態與控制寄存器的period_threshold值350為period_cnt欄位360的值,其如果被達到,則進一步阻止事件和周期計數並且觸發將HCE (硬體校驗錯誤)事件發送到狀態寄存器138中。如果此值為0,則對於RP來說沒有事件或周期計數被執行並且沒有HCE事件能夠被產生。診斷狀態與控制寄存器310的event_threshold值340為event_cnt欄位320的值,其如果在診斷窗期間被達到或超過,則在該窗的末尾處使periocLcnt欄位360被遞增。 如果在該窗的末尾處event_cnt 320的值小於event_threshold 340,則period_cnt欄位 360被重置為0而不被遞增。如果此值為0,則對於RP來說沒有事件或周期計數被執行並且沒有HCE事件能夠被產生。診斷狀態與控制寄存器310的period_cnt值360為在其中event_cnt 320達到或超過eventthreshold值350的當前窗之前緊接著的連續的診斷窗的數量。如果其達到periocLthreshold 360的值,則此欄位被凍結(並且所有進一步的事件和周期計數被阻止)。診斷狀態與控制寄存器310的eventcnt值320為到目前為止在當前診斷窗期間所達到的一個或多個已選擇事件的事件計數。如果periocLcnt欄位360達到period_ threshold 350的值,則此欄位被凍結(並且所有進一步的事件和周期計數被阻止)。診斷狀態與控制寄存器310的preV_eVent_Cnt值330為在先前的診斷窗期間在 event_cnt欄位320中所達到的、並且在先前的和當前的診斷窗之間的邊界處被傳送給此欄位(除非period_cnt 360在此邊界處達到period_threshold 350的值,在該情況下不執行從event_cnt 320至prev_event_cnt 330的傳送)的一個或多個已選擇事件的最終事件計數。用來控制診斷邏輯134的各方面的該組狀態寄存器138可以進一步包括鏈路診斷狀態寄存器。該鏈路診斷狀態寄存器410(見圖4)提供關於所有的鏈路160的診斷狀態的集合信息。當設置時,此寄存器410中的每個特定位都指示在用於對應的RP的鏈路診斷狀態與控制寄存器310中的period_cnt欄位360的當前值已經達到period_threshold值 350 (例如,event_cnt欄位320在period_threshold 350連續診斷窗中的每一個中已經達到或超過指定的eventthreshold 340)。一旦設置,該位通過將1寫入鏈路診斷狀態與控制寄存器310的resetcnts 385位的軟體而被再次清零。這會重置所有用於RP的周期和事件計數並且實現進一步的計數。當設置時,鏈路診斷狀態寄存器410的rpX_peri0d_threSh0ld_hit值020,421, 422,423)指示RPX的鏈路診斷狀態與控制寄存器310中的periocLcnt計數器已經達到其指定的閾值(例如,period_threshold 350)。在上述示例中,周期計數器對其中事件閾值已經被超過或被達到的連續周期進行計數。在其它實施例中,連續周期可以不是必要條件。相反,可以實施規定周期的分數 (fraction)的規則(例如,X出自Y個周期,其中X < Y,即X/Y),所述周期被跟蹤以確定對於滿足或超過所定義要求的周期而言,是否已經超過了事件閾值或與事件閾值匹配。分數值應該足夠大以避免噪聲事件發生,其將引起錯誤的肯定結果。如前所述,在一個或多個實施例中實現可編程閾值。這允許通過(例如,設計不同的閾值)用於不同體系結構和通信鏈路技術的診斷邏輯134來處理各種錯誤率。現參考圖5,描繪了描述診斷邏輯134的一個實施例的診斷操作的過程的流程圖。 在方框510中,事件計數器被初始化為零並且周期計數器被初始化為零。該事件計數器對在當前診斷周期或窗期間正被監控的通信鏈路上的某些事件的發生進行計數。能夠被計數的事件的類型包括可更正錯誤,諸如Bad TLP (壞的TLP)、Bad DLLP (壞的DLLP)、Receiver Error (接收器錯誤)(這三種事件由入站鏈路邏輯來檢測/觸發),以及NAK Received (接收到的NAK)和R印lay Timer Timeout (重放計時器超時)(這兩種由出站鏈路邏輯來檢測)。在一個實施例中,周期計數器對在其中事件計數器已經與所定義的事件閾值匹配或超過所定義的事件閾值的當前窗之前緊接著的連續的診斷窗的數量進行計數。在方框515中,檢查診斷窗或周期的狀態以確定該周期是否已經期滿。如果該周期未期滿,那麼該過程檢查可更正的錯誤在該周期期間是否已經被檢測到(方框520)。否則,如果該周期已經期滿,則檢查事件計數器(方框550)以確定對於最近期滿的周期而言, 事件計數器的當前值是否與事件閾值匹配或超過事件閾值。相應地,在方框520中,當可更正的錯誤已經在通信鏈路上被檢測到時,事件計數器就被遞增(方框530)。如果未檢測到可更正的錯誤,那麼該過程再次對當前診斷周期是否已經期滿進行檢查(方框515)。在該周期已經期滿以後,檢查事件計數器(方框550)以確定對於最近期滿的周期而言,事件計數器的當前值是否與事件閾值匹配或超過事件閾值。在方框560中,當對於最近期滿的周期而言該事件計數器的當前值與事件閾值匹配/超過事件閾值時,周期計數器就被遞增並且重置事件計數器(例如,設置為0)以供待測量的下一個周期中使用。否則, 如果對於最近期滿的周期而言事件計數器的當前值不與事件閾值匹配/超過事件閾值,則開始新的診斷周期,重置事件計數器(例如,設置為0),並且重置周期計數器(例如,設置為 0),如方框555中所示。在重置這些值以後,該過程再次對當前診斷周期是否已經期滿進行檢查(方框515)。在方框570中,在遞增周期計數器以後,進行檢查(方框570)以確定周期計數器的當前值是否與所定義的周期閾值匹配或超過所定義的周期閾值。如果尚未與周期閾值匹配/尚未超過周期閾值,則開如新的診斷周期(方框575)。在重置這些值以後,該過程再次對當前診斷周期是否已經期滿進行檢查(方框515)。否則,當周期計數器的當前值與所定義的周期閾值匹配或超過所定義的周期閾值時,則在正被監控的通信鏈路上已經認識到了問題並且該問題的指示被記錄或被報告給用戶或更高級別的軟體/硬體,如方框580中所描繪的那樣。在發現問題以後,停止在通信鏈路上檢測進一步的錯誤,直到接收到命令以重新開始或重置過程為止,如方框590中所指示的那樣。當接收到該命令時,則該過程重新開始(如方框510中所示)。接下來參考圖6,描述了描述診斷邏輯134的一個實施例的診斷操作的過程的流程圖。在方框610中,診斷邏輯134或其它邏輯部件接收錯誤(例如,可更正的錯誤)已經在通過通信鏈路160的傳輸中被檢測到的指示。然後,診斷邏輯134或其它邏輯部件將確定傳輸錯誤是否已經發生在正被監控的通信鏈路上,並且確定傳輸錯誤的數量是否超過第一可編程閾值(例如,事件閾值)(或與第一可編程閾值匹配),其中在超過第二可編程閾值(例如,周期閾值)(或與第二可編程閾值匹配)的連續數量的周期期間,該第一可編程閾值已被超過(或被匹配)。相應地,作為示例,在方框620中,診斷邏輯134通過錯誤的發生來確定在當前時間周期期間第一可編程閾值是否已經被超過(或被匹配)。在方框630中,作為對確定對於當前時間周期而言第一可編程閾值已經被超過(或被匹配)的響應,診斷邏輯134(作為示例)確定對於超過第二可編程閾值(或與第二可編程閾值匹配)的多個且連續的時間周期而言,該第一可編程閾值是否已經被超過(或被匹配)。接下來,作為對確定第二可編程閾值已經被超過(或被匹配)的響應,診斷邏輯134(作為示例)採用通信鏈路將問題報告給其中存在該通信鏈路的計算機系統的用戶/應用程式/處理器,如方框640中所描繪的那樣。本公開的實施例的診斷部件或邏輯134能夠以硬體、軟體、固件或其組合來加以實現。如在一個實施例中,如果以硬體實現,則能夠用均為本領域中熟知的以下技術中的任何技術或組合來實現診斷部件134,以下技術是具有用於對數據信號實現邏輯功能的邏輯門的一個或多個離散邏輯電路、具有適當的組合邏輯門的專用集成電路(ASIC)、一個或多個可編程門陣列(PGA)、現場可編程門陣列(FPGA)、等等。如果以軟體或固件實現,則診斷邏輯134可以被存儲在存儲器中並且其被適當的指令執行系統來加以執行。在一個實施例中,診斷部件或邏輯134還可以包括用於實現邏輯功能的可執行指令的有序列表,其能夠被體現在任何計算機可讀媒體中,所述任何計算機可讀媒體供指令執行系統、裝置或設備(諸如基於計算機的系統、包含處理器的系統或其它能夠從指令執行系統、裝置或設備提取指令並執行指令的系統)使用或與它們相關聯。在本文的背景下,「計算機可讀媒體」包括能夠包含、存儲、傳遞或傳送供指令執行系統、裝置或設備使用或與指令執行系統、裝置或設備相關聯的程序的裝置。計算機可讀媒體可以是(例如,但不限於)電子的、磁性的、光學的、電磁的、紅外線的或半導體系統、裝置或設備。計算機可讀媒體的更多具體示例(非窮盡列表)將包括以下具有一條或多條線的電氣連接(電子的)、可攜式計算機磁碟(磁性的)、隨機存取存儲器(RAM)(電子的)、只讀存儲器(ROM)(電子的)、可擦除可編程只讀存儲器(EPR0M或快閃記憶體)(電子的)、光纖(光學的)和可攜式光碟只讀存儲器(CDROM)(光學的)。此外,本公開的某些實施例的範圍包括將診斷部件的實施例的功能體現在邏輯中,所述邏輯體現在硬體或軟體配置的媒體中。流程圖中的任何過程描述或塊應該被理解為表示代碼部分、或片段、模塊,其包括一個或多個用於實現過程中的特定邏輯功能或步驟的可執行指令,並且替代性實施方式被包括在本公開的範圍內,其中根據所涉及的功能,可以不按來自所示或所討論的那些的順序來執行功能,包括基本同時地或按相反順序,如將被本領域普通技術人員理解的那樣。應該強調的是,本公開的上述實施例僅是實施方式的可能示例,僅為了清楚地理解本公開的原理而被陳述。在基本不偏離本公開的原理的情況下,可以對上述一個或多個實施例做出許多變化和修改。所有此類修改和變化在本文中均旨在被包括在本公開的範圍之內並且受以下權利要求的保護。
權利要求
1.一種用於分析通信鏈路的可靠性的診斷系統,包括控制所述通信鏈路的鏈路控制部件,所述鏈路控制部件耦合至處理器和診斷部件,所述診斷部件被配置為確定在超過第二可編程閾值或與第二可編程閾值匹配的多個時間周期的範圍期間、是否已經在所述通信鏈路上發生了超過第一可編程閾值或與第一可編程閾值匹配的傳輸錯誤。
2.根據權利要求1所述的系統,其中,由所述診斷部件確定傳輸錯誤包括響應於在所述通信鏈路上檢測到可更正錯誤來確定所述第一可編程閾值在當前時間周期期間是否已經被超過或被匹配,當在當前時間周期中已經發生的錯誤數量的當前計數超過所述第一可編程閾值或與所述第一可編程閾值匹配時,所述第一可編程閾值被超過或被匹配。
3.根據權利要求2所述的系統,其中,由所述診斷部件確定傳輸錯誤包括作為對確定對於所述當前時間周期而言所述第一可編程閾值已經被超過或被匹配的響應,確定對於超過第二可編程閾值或與所述第二可編程閾值匹配的多個並且連續的時間周期而言、所述第一可編程閾值是否已經被超過或被匹配,所述第二可編程閾值是連續的時間周期已經發生的次數。
4.根據權利要求3所述的系統,其中,所述診斷部件進一步被配置為記錄指示所述通信鏈路上的持續問題的錯誤,其中所述通信鏈路未被檢測到已經經歷了指示所述通信鏈路的硬故障的錯誤。
5.根據權利要求2所述的系統,其中,由所述診斷部件確定傳輸錯誤包括作為對確定對於所述當前時間周期而言所述第一可編程閾值已經被超過或被匹配的響應,確定在超過第二可編程閾值或與第二可編程閾值匹配的多個時間周期的範圍期間、所述第一可編程閾值是否已經被超過或被匹配,所述第二可編程閾值被定義為分數,其中所定義的分數的分子小於所定義的分數的分母。
6.根據權利要求1所述的系統,其中,所述通信鏈路包括在PCIExpress平臺中的串行鏈路,並且所述診斷部件包括根聯合體設備的硬體部件。
7.根據權利要求1所述的系統,其中,所述通信鏈路包括在PCIExpress平臺中的串行鏈路,並且所述診斷部件存在於端點設備處。
8.根據權利要求1所述的系統,其中,當所述第二可編程閾值被匹配或被超過時,所述診斷部件採用所述通信鏈路來報告問題。
9.一種分析通信鏈路的可靠性的方法,包括接收在通過所述通信鏈路的傳輸中已經檢測到錯誤的指示;和確定在超過第二可編程閾值或與第二可編程閾值匹配的多個時間周期的範圍期間、是否已經在所述通信鏈路上發生了超過第一可編程閾值或與第一可編程閾值匹配的傳輸錯誤,根據寄存器值來確定所述第一可編程閾值和所述第二可編程閾值。
10.根據權利要求9所述的方法,所述確定操作包括確定所述第一可編程閾值在當前時間周期期間是否已經被超過或被匹配,當在所述當前時間周期內已經發生的錯誤數量的當前計數超過所述第一可編程閾值或與所述第一可編程閾值匹配時,所述第一可編程閾值被超過或被匹配。
11.根據權利要求10所述的方法,所述確定操作進一步包括作為對確定對於所述當前時間周期而言所述第一可編程閾值已經被超過或被匹配的響應,確定對於超過第二可編程閾值或與所述第二可編程閾值匹配的多個並且連續的時間周期而言、所述第一可編程閾值是否已經被超過或被匹配。
12.根據權利要求10所述的方法,所述確定操作進一步包括作為對確定對於所述當前時間周期而言所述第一可編程閾值已經被超過或被匹配的響應,確定在超過第二可編程閾值或與第二可編程閾值匹配的多個時間周期的範圍期間、 所述第一可編程閾值是否已經被超過或被匹配,所述第二可編程閾值被定義為具有小於1 的值的分數。
13.根據權利要求9所述的方法,進一步包括當所述第二可編程閾值被匹配或被超過時採用所述通信鏈路報告問題,其中所述通信鏈路包括在PCI Express平臺中的串行鏈路。
14.一種嵌入有用於分析通信鏈路的可靠性的指令的計算機可讀存儲媒體,所述指令在被計算機執行時使計算機執行接收在通過所述通信鏈路的傳輸中已經檢測到錯誤的指示;和確定在超過第二可編程閾值或與第二可編程閾值匹配的多個時間周期的範圍期間、是否已經在所述通信鏈路上發生了超過第一可編程閾值或與第一可編程閾值匹配的傳輸錯誤,根據寄存器值來確定所述第一可編程閾值和所述第二可編程閾值。
15.根據權利要求14所述的計算機可讀媒體,所述確定操作包括確定所述第一可編程閾值在當前時間周期期間是否已經被超過或被匹配,當在所述當前時間周期內已經發生的可更正錯誤的數量的當前計數超過所述第一可編程閾值或與所述第一可編程閾值匹配時,所述第一可編程閾值被超過或被匹配;和作為對確定對於所述當前時間周期而言所述第一可編程閾值已經被超過或被匹配的響應,確定對於超過第二可編程閾值或與所述第二可編程閾值匹配的多個並且連續的時間周期而言、所述第一可編程閾值是否已經被超過或被匹配。
全文摘要
用於分析通信鏈路的可靠性的系統的一個實施例包括控制所述通信鏈路的鏈路控制部件,其中所述鏈路控制部件耦合至處理器和診斷部件。所述診斷部件被配置成確定在超過第二可編程閾值或與第二可編程閾值匹配的多個時間周期的範圍期間、是否已經在通信鏈路上發生了超過第一可編程閾值或與第一可編程閾值匹配的傳輸錯誤。
文檔編號H04L12/26GK102318276SQ200880132801
公開日2012年1月11日 申請日期2008年12月15日 優先權日2008年12月15日
發明者博克豪斯 J., B. 努金 P., 瓦塞克 P., 安德斯 V. 申請人:惠普開發有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀