亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種計算機系統(tǒng)、高速外圍組件互聯(lián)端點設(shè)備的訪問方法和裝置制造方法

文檔序號:6532530閱讀:152來源:國知局
一種計算機系統(tǒng)、高速外圍組件互聯(lián)端點設(shè)備的訪問方法和裝置制造方法
【專利摘要】本發(fā)明實施例涉及一種高速外圍組件互聯(lián)端點設(shè)備的訪問方法、計算機系統(tǒng)和裝置,對處理器發(fā)送的訪問請求的報文狀態(tài)進行監(jiān)控,并在確定PCIe端點設(shè)備未發(fā)送對所述訪問請求的響應(yīng)消息時,向處理器發(fā)送訪問請求的模擬響應(yīng)消息,使得處理器能夠根據(jù)該模擬響應(yīng)消息,確認之前發(fā)出的訪問請求對應(yīng)的流程已經(jīng)完成,從而關(guān)閉對該訪問請求進行計時的計時器,并清除緩存的該訪問請求,保持處理器內(nèi)部的處理正常進行,避免了訪問請求在處理器內(nèi)積累所導致的MCE復位問題。
【專利說明】一種計算機系統(tǒng)、高速外圍組件互聯(lián)端點設(shè)備的訪問方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實施例涉及計算機技術(shù),特別是一種高速外圍組件互聯(lián)端點設(shè)備的訪問方法、計算機系統(tǒng)和裝置。
【背景技術(shù)】
[0002]高速外圍組件互聯(lián)(PeripheralComponent Interconnect Express, PCIe)的簡稱,是用于計算和通信平臺上的高性能系統(tǒng)總線。PCIe總線被廣泛的應(yīng)用在CPU和外圍設(shè)備的互連系統(tǒng)中,在計算和存儲設(shè)備中作為核心業(yè)務(wù)通道。通過PCIe總線與CPU互連的外圍設(shè)備可以有多種,例如網(wǎng)卡設(shè)備或固態(tài)硬盤(Solid State Disk, SSD)等,本文件中將此類設(shè)備統(tǒng)稱為PCIe端點設(shè)備。
[0003]PCIe總線作為服務(wù)器或存儲系統(tǒng)的總線接口被廣泛應(yīng)用,系統(tǒng)正常運行時,由于在線擴容和維護的需求,需要在不斷電的情況下增加或者移除PCIe端點設(shè)備,即熱插拔的需求?,F(xiàn)有的PCIe熱插拔遵循以下操作流程:操作者通過按下按鈕發(fā)起熱拔請求,熱插拔控制器獲知到熱插拔事件后,通知系統(tǒng)中所有可能訪問該PCIe端點設(shè)備的驅(qū)動停止訪問該PCIe端點設(shè)備,并且將需要進行熱插拔的PCIe端點設(shè)備的資源卸載掉,此后,對該PCIe端點設(shè)備下電,操作者拔出該PCIe端點設(shè)備。
[0004]現(xiàn)有的PCIe端點設(shè)備熱插拔需要預先通知才能保證系統(tǒng)正常運行。然而,近年來,PCIe總線逐漸由系統(tǒng)內(nèi)的互連發(fā)展為系統(tǒng)間的互連,外部線纜等應(yīng)用增多,線纜容易異常脫落,出現(xiàn)未預先通知的PCIe端點設(shè)備異常離線的情況。另外,用戶使用固態(tài)硬盤SSD直接接入系統(tǒng)的場景越來越廣泛,由于用戶習慣的因素,用戶可能不預先通知就直接插拔SSD盤。然而,對于上述提到的PCIe端點設(shè)備突然突然異常離線的情況,如果CPU已經(jīng)發(fā)起對這個PCIe端點設(shè)備的讀寫指令,相關(guān)的指令將一直處于待完成狀態(tài),當CPU對所述PCIe端點設(shè)備的訪問指令持續(xù)積累達到一定程度,CPU就會認為整個系統(tǒng)異常,報出機器檢測異常(Machine check exception, MCE)錯誤,并進行復位。

【發(fā)明內(nèi)容】

[0005]本發(fā)明實施例提出了一種高速外圍組件互聯(lián)端點設(shè)備的訪問方法、計算機系統(tǒng)和裝置,在PCIe端點設(shè)備異常離線之后,保證CPU不會產(chǎn)生復位。
[0006]第一方面,本發(fā)明實施例提出了一種計算機系統(tǒng),所述計算機系統(tǒng)包括:
[0007]處理器;
[0008]高速外圍組件互聯(lián)PCIe總線,用于連接PCIe端點設(shè)備;
[0009]所述處理器用于獲取對所述PCIe端點設(shè)備進行訪問的操作指令,根據(jù)所述操作指令,向所述PCIe端點設(shè)備發(fā)送訪問請求;
[0010]所述計算機系統(tǒng)還包括模擬響應(yīng)模塊,用于在所述處理器向所述PCIe端點設(shè)備發(fā)送所述訪問請求之后,對所述訪問請求的報文狀態(tài)進行監(jiān)控,在預設(shè)的觸發(fā)條件達到時,確定所述訪問請求的報文狀態(tài),如果所述訪問請求的報文狀態(tài)是“未完成”,則獲取所述訪問請求的模擬響應(yīng)消息,并向所述處理器發(fā)送所述模擬響應(yīng)消息;
[0011 ] 其中,所述訪問請求的報文狀態(tài)包括“已完成”或“未完成”,所述“未完成”表示所述PCIe端點設(shè)備未發(fā)送所述訪問請求的響應(yīng)消息。
[0012]結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,所述模擬響應(yīng)模塊設(shè)置于所述處理器和所述PCIe端點設(shè)備的信號傳輸路徑中,具體用于接收所述處理器發(fā)送的訪問請求,向所述PCIe端點設(shè)備轉(zhuǎn)發(fā)所述訪問請求,監(jiān)控自身是否接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,若接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,將所述訪問請求的報文狀態(tài)記錄為“已完成”。
[0013]結(jié)合第一方面或者第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述計算機系統(tǒng)還包括=PCIe交換器,用于將多個所述PCIe端點設(shè)備連接到所述處理器,所述PCIe交換器的下游端口通過所述PCIe總線與多個所述PCIe端點設(shè)備連接;
[0014]所述模擬響應(yīng)模塊的一個端口通過所述PCIe總線與所述PCIe交換器的上游端口連接,所述模擬響應(yīng)模塊的另一個端口與所述處理器連接。
[0015]結(jié)合第一方面或者第一方面的第一種可能的實現(xiàn)方式或者第一方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述訪問請求的模擬響應(yīng)消息包括第一類型模擬響應(yīng)消息或第二類型模擬響應(yīng)消息,所述第一類型模擬響應(yīng)消息指示所述PCIe端點設(shè)備不支持所述訪問請求,所述第二類型模擬響應(yīng)消息指示所述PCIe端點設(shè)備異常;
[0016]所述處理器還用于根據(jù)所述第一類型模擬響應(yīng)消息或所述第二類型模擬響應(yīng)消息,中止對所述PCIe端點設(shè)備的后續(xù)訪問。
[0017]結(jié)合第一方面或者第一方面的第一種可能的實現(xiàn)方式或者第一方面的第二種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述預設(shè)的觸發(fā)條件為所述PCIe端點設(shè)備發(fā)生異常離線;
[0018]相應(yīng)地,所述模擬響應(yīng)模塊還用于監(jiān)測所述PCIe端點設(shè)備是否發(fā)生異常離線,在確定所述PCIe端點設(shè)備發(fā)生異常離線時,確定所述訪問請求的報文狀態(tài)。
[0019]結(jié)合第一方面或者第一方面的第一種可能的實現(xiàn)方式或者第一方面的第二種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述預設(shè)的觸發(fā)條件為所述訪問請求的計時器超時;
[0020]相應(yīng)地,所述模擬響應(yīng)模塊還用于針對所述處理器發(fā)送的所述訪問請求啟動計時器進行計時,在所述計時器超時后,確定所述訪問請求的報文狀態(tài)。
[0021]第二方面,還提出了一種高速外圍組件互聯(lián)PCIe端點設(shè)備的訪問方法,PCIe端點設(shè)備通過PCIe總線接入計算機系統(tǒng)中,所述方法包括:
[0022]在所述計算機系統(tǒng)中的處理器向所述PCIe端點設(shè)備發(fā)送訪問請求之后,對所述訪問請求的報文狀態(tài)進行監(jiān)控,其中,所述訪問請求的報文狀態(tài)包括“已完成”或“未完成”,所述“未完成”表示所述PCIe端點設(shè)備未發(fā)送所述訪問請求的響應(yīng)消息;
[0023]當預設(shè)的觸發(fā)條件達到時,確定所述訪問請求的報文狀態(tài);
[0024]如果所述訪問請求的報文狀態(tài)是“未完成”,獲取所述訪問請求的模擬響應(yīng)消息;
[0025]向所述處理器發(fā)送所述訪問請求的模擬響應(yīng)消息。
[0026]結(jié)合第二方面,在第一種可能的實現(xiàn)方式中,所述方法還包括:[0027]接收所述處理器發(fā)送的訪問請求,向所述PCIe端點設(shè)備轉(zhuǎn)發(fā)所述訪問請求;
[0028]則,所述對所述訪問請求的報文狀態(tài)進行監(jiān)控包括:
[0029]監(jiān)控自身是否接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,若接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,將所述訪問請求的報文狀態(tài)記錄為“已完成”。
[0030]結(jié)合第二方面或者第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述預設(shè)的觸發(fā)條件為所述PCIe端點設(shè)備發(fā)生異常離線;
[0031]所述方法還包括:
[0032]監(jiān)測所述PCIe端點設(shè)備是否發(fā)生異常離線,在確定所述PCIe端點設(shè)備發(fā)生異常離線時,執(zhí)行所述確定所述訪問請求的報文狀態(tài)的步驟。
[0033]結(jié)合第二方面或者第二方面的第一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述預設(shè)的觸發(fā)條件為所述訪問請求的計時器超時;
[0034]所述方法還包括:
[0035]針對所述處理器發(fā)送的所述訪問請求啟動計時器進行計時,在所述計時器超時后,執(zhí)行所述確定所述訪問請求的報文狀態(tài)的步驟。
[0036]第三方面,提出了一種模擬響應(yīng)裝置,應(yīng)用于計算機系統(tǒng)中,高速外圍組件互聯(lián)PCIe端點設(shè)備通過PCIe總線接入所述計算機系統(tǒng)中,所述裝置包括:
[0037]監(jiān)控單元,用于在所述計算機系統(tǒng)中的處理器向所述PCIe端點設(shè)備發(fā)送訪問請求之后,對所述訪問請求的報文狀態(tài)進行監(jiān)控,其中,所述訪問請求的報文狀態(tài)包括“已完成”或“未完成”,所述“未完成”表示所述PCIe端點設(shè)備未發(fā)送所述訪問請求的響應(yīng)消息;
[0038]確定單元,用于當預設(shè)的觸發(fā)條件達到時,根據(jù)所述監(jiān)控單元的監(jiān)控結(jié)果確定所述訪問請求的報文狀態(tài);
[0039]獲取單元,用于在所述確定單元確定所述訪問請求的報文狀態(tài)是“未完成”時,獲取所述訪問請求的模擬響應(yīng)消息;
[0040]響應(yīng)單元,用于向所述處理器發(fā)送所述獲取單元獲取的所述模擬響應(yīng)消息。
[0041]結(jié)合第三方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,還包括交互單元,用于接收所述處理器發(fā)送的訪問請求,向所述PCIe端點設(shè)備轉(zhuǎn)發(fā)所述訪問請求;
[0042]則所述監(jiān)控單元具體用于監(jiān)控所述交互單元是否接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,若接收到所述P CI e端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,將所述訪問請求的報文狀態(tài)記錄為“已完成”。
[0043]第四方面,提出了一種計算機,包括:處理器、存儲器、總線和通信接口 ;
[0044]所述存儲器用于存儲計算機執(zhí)行指令,所述處理器與所述存儲器通過所述總線連接,當所述計算機運行時,所述處理器執(zhí)行所述存儲器存儲的所述計算機執(zhí)行指令,以使所述計算機執(zhí)行第二方面所述的一種高速外圍組件互聯(lián)PCIe端點設(shè)備的訪問方法。
[0045]第五方面,提出了一種計算機可讀介質(zhì),包括計算機執(zhí)行指令,當計算機的處理器執(zhí)行所述計算機執(zhí)行指令時,所述計算機執(zhí)行第二方面所述的一種高速外圍組件互聯(lián)PCIe端點設(shè)備的訪問方法。
[0046]本發(fā)明實施例中,由于能夠?qū)μ幚砥靼l(fā)送的訪問請求的報文狀態(tài)進行監(jiān)控,并在確定PCIe端點設(shè)備未發(fā)送對所述訪問請求的響應(yīng)消息時,向處理器發(fā)送訪問請求的模擬響應(yīng)消息,使得處理器能夠根據(jù)該模擬響應(yīng)消息,確認之前發(fā)出的訪問請求對應(yīng)的流程已經(jīng)完成,從而關(guān)閉對該訪問請求進行計時的計時器,并清除緩存的該訪問請求,保持處理器內(nèi)部的處理正常進行,避免了訪問請求在處理器內(nèi)積累所導致的MCE復位問題。
【專利附圖】

【附圖說明】
[0047]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對現(xiàn)有技術(shù)或?qū)嵤├兴枰褂玫母綀D作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0048]圖1是根據(jù)本發(fā)明實施例提供的一種計算機系統(tǒng)的組成圖;
[0049]圖2是根據(jù)本發(fā)明實施例提供的又一種計算機系統(tǒng)的組成圖;
[0050]圖3是根據(jù)本發(fā)明實施例提供的一種方法流程圖;
[0051]圖4是根據(jù)本發(fā)明實施例提供的又一種方法流程圖;
[0052]圖5是根據(jù)本發(fā)明實施例提供的又一種方法流程圖;
[0053]圖6是根據(jù)本發(fā)明實施例提供的一種模擬響應(yīng)裝置的組成圖;
[0054]圖7是根據(jù)本發(fā)明實施例提供的又一種模擬響應(yīng)裝置的組成圖;
[0055]圖8是根據(jù)本發(fā)明實施例提供的一種計算機的組成圖。
【具體實施方式】
[0056]本發(fā)明實施例提出了一種高速外圍組件互聯(lián)端點設(shè)備的訪問方法、計算機系統(tǒng)和裝置,當有PCIe端點設(shè)備需要進行熱插拔操作時可以不用預先通知系統(tǒng)進行預處理,就直接斷開PCIe端點設(shè)備與處理器之間的連接,此時處理器也不會產(chǎn)生MCE復位的風險。
[0057]本發(fā)明實施例將PCIe端點設(shè)備被直接拔出系統(tǒng)或者出現(xiàn)故障掉線的情況統(tǒng)稱為PCIe端點設(shè)備的異常離線。
[0058]本發(fā)明實施例的系統(tǒng)架構(gòu)
[0059]圖1描繪了本發(fā)明實施例提供的計算機系統(tǒng)的組成圖,圖1所示的計算機系統(tǒng)中包括CPUllO和存儲器120,PCIe端點設(shè)備130通過PCIe總線140連接到CPUl 10,并可以從該計算機系統(tǒng)中插拔出去。PCIe端點設(shè)備130包含多種類型,例如圖形處理單元131、網(wǎng)絡(luò)適配器132、固態(tài)硬盤133與視頻加速部件134。
[0060]圖1所示的計算機系統(tǒng)中的PCIe端點設(shè)備130和CPUllO組成一個PCIe域,所述PCIe域中的所有設(shè)備通過PCIe總線140與CPUllO連接并接受CPUllO的控制。
[0061]當CPUllO獲取到對PCIe端點設(shè)備130進行訪問的操作指令后,CPUllO根據(jù)操作指令,向PCIe端點設(shè)備130發(fā)出訪問請求,要求對PCIe端點設(shè)備130的寄存器進行讀操作或?qū)懖僮?,如果PCIe端點設(shè)備130發(fā)生異常離線,CPUllO將接收不到PCIe端點設(shè)備130對CPUllO的訪問請求的響應(yīng)消息,此時,CPU就會認為該訪問請求屬于未完成的任務(wù),如果此類未完成任務(wù)在CPU中積累到一定程度,CPU就會認為整個系統(tǒng)異常,報出MCE錯誤進行復位。
[0062]本發(fā)明實施例在系統(tǒng)中新增模擬響應(yīng)模塊160,該模擬響應(yīng)應(yīng)模塊160用于在所述CPUllO向所述PCIe端點設(shè)備130發(fā)送所述訪問請求之后,對CPUllO發(fā)送的所述訪問請求的報文狀態(tài)進行監(jiān)控,如果預先設(shè)定的觸發(fā)條件達到時,所述訪問請求的報文狀態(tài)仍然是“未完成”,即所述PCIe端點設(shè)備130未發(fā)送對所述訪問請求的響應(yīng)消息,該模擬響應(yīng)應(yīng)模塊160就獲取所述訪問請求的模擬響應(yīng)消息,并向CPUllO發(fā)送所述模擬響應(yīng)消息。由于所述模擬響應(yīng)消息與所述訪問請求具有相同的報文頭,所述訪問請求與所述模擬響應(yīng)消息互相對應(yīng),可以使得CPU認為其之前發(fā)出的訪問請求對應(yīng)的流程已經(jīng)被完成,從而關(guān)閉對該訪問請求進行計時的計時器,并清除CPU自身緩存的該訪問請求。
[0063]其中,所述訪問請求的報文狀態(tài)包括“已完成”或“未完成”,“已完成”表示所述PCIe端點設(shè)備已經(jīng)發(fā)送所述訪問請求的響應(yīng)消息,“未完成”表示所述PCIe端點設(shè)備未發(fā)送所述訪問請求的響應(yīng)消息。
[0064]另外,所述模擬響應(yīng)模塊160還用于在所述處理器向所述PCIe端點設(shè)備發(fā)送所述訪問請求之后,就生成所述訪問請求的模擬響應(yīng)消息,并緩存所述訪問請求的模擬響應(yīng)消息,該模擬響應(yīng)模塊160后續(xù)直接獲取自身緩存的所述訪問請求的模擬響應(yīng)消息即可。
[0065]本發(fā)明實施例中,由于模擬響應(yīng)模塊能夠?qū)PU發(fā)送的所述訪問請求的報文狀態(tài)進行監(jiān)控,并在確定PCIe端點設(shè)備未發(fā)送對所述訪問請求的響應(yīng)消息時,向CPU發(fā)送訪問請求的模擬響應(yīng)消息,使得CPU能夠根據(jù)該模擬響應(yīng)消息,確認之前發(fā)出的訪問請求對應(yīng)的流程已經(jīng)完成,從而關(guān)閉對該訪問請求進行計時的計時器,并清除緩存的該訪問請求,保持CPU內(nèi)部的處理正常進行,避免了訪問請求在CPU內(nèi)積累所導致的MCE復位問題。
[0066]本發(fā)明一種具體的實施方式中,模擬響應(yīng)模塊160對所述訪問請求的報文狀態(tài)進行監(jiān)控,可以通過監(jiān)控自身是否接收到所述PCIe端點設(shè)備130發(fā)送的所述訪問請求的響應(yīng)消息來實現(xiàn),若所述模擬響應(yīng)模塊接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,模擬響應(yīng)模塊將所述訪問請求的報文狀態(tài)記錄為“已完成”。
[0067]在本發(fā)明的一個具體實施例中,可以將模擬響應(yīng)模塊160設(shè)置在CPUllO和各個PCIe端點設(shè)備130之間的傳輸路徑中,保證CPUllO和各個PCIe端點設(shè)備130之間的消息都需要經(jīng)過模擬響應(yīng)模塊160,從而模擬響應(yīng)模塊160可以通過監(jiān)控自身是否接收到所述PCIe端點設(shè)備130發(fā)送的所述訪問請求的響應(yīng)消息來監(jiān)控所述訪問請求的報文狀態(tài),另一種實現(xiàn)方式中,也可以預先在PCIe端點設(shè)備130上進行配置,使得PCIe端點設(shè)備130向CPU110發(fā)送所述訪問請求的響應(yīng)消息的時候,也向模擬響應(yīng)模塊發(fā)送該響應(yīng)消息,這樣也可以保證模擬響應(yīng)模塊160根據(jù)自身是否接收到所述訪問請求的響應(yīng)消息來監(jiān)控所述訪問請求的報文狀態(tài)。當然,本領(lǐng)域技術(shù)人員也可以根據(jù)本發(fā)明實施例提供的實現(xiàn)方式,采用其他等同或者相似的實現(xiàn)方式來實現(xiàn)模擬響應(yīng)模塊160對所述訪問請求的報文狀態(tài)進行監(jiān)控。
[0068]如圖1所示,模擬響應(yīng)模塊160被設(shè)置在CPUl 10和各個PCIe端點設(shè)備130之間的信號傳輸路徑中,這樣,CPUllO發(fā)出的訪問請求需要通過模擬響應(yīng)模塊160才能到達PCIe端點設(shè)備130,因此模擬響應(yīng)模塊160可以接收到訪問請求,并且,由于PCIe端點設(shè)備發(fā)送的消息需要經(jīng)過模擬響應(yīng)模塊160才能到達CPUl 10,因此模擬響應(yīng)模塊160可以根據(jù)自身是否接收到PCIe端點設(shè)備130發(fā)送的對該訪問請求的響應(yīng)消息,確定PCIe端點設(shè)備130是否發(fā)送所述訪問請求的響應(yīng)消息,并記錄所述訪問請求的報文狀態(tài)。進一步地,在本發(fā)明實施例的又一種具體實現(xiàn)方式中,當模擬響應(yīng)模塊160接收到CPUllO發(fā)送的訪問請求之后,還可以緩存該訪問請求,若后續(xù)接收到PCIe端點設(shè)備130發(fā)送的該訪問請求的響應(yīng)消息,模擬響應(yīng)模塊160可以將緩存的該訪問請求打上“已完成”的標記,或者刪除緩存的該訪問請求,模擬響應(yīng)模塊160在預設(shè)的觸發(fā)條件到達時,可以查詢該訪問請求的報文狀態(tài),即查詢緩存的訪問請求的標記或者查詢緩存的訪問請求,如果該訪問請求的標記表示該訪問請求“未完成”或者緩存的訪問請求未被刪除,模擬響應(yīng)模塊160確定所述訪問請求的報文狀態(tài)是“未完成”,即所述PCIe端點設(shè)備130未發(fā)送該訪問請求的響應(yīng)消息,則模擬響應(yīng)模塊160獲取該訪問請求的模擬響應(yīng)消息,并向CPUllO發(fā)送該模擬響應(yīng)消息。
[0069]其中,模擬響應(yīng)模塊160可以在接收到CPUllO發(fā)送的所述訪問請求時,提前生成所述訪問請求的模擬響應(yīng)消息,并將生成的所述訪問請求的模擬響應(yīng)消息與所述訪問請求進行關(guān)聯(lián)緩存,后續(xù)模擬響應(yīng)模塊160直接獲取緩存的所述訪問請求的模擬響應(yīng)消息即可。當然,模擬響應(yīng)模塊160也可以在確定未接收到PCIe端點設(shè)備130發(fā)送的該訪問請求的響應(yīng)消息時,才生成該訪問請求的模擬響應(yīng)消息,本發(fā)明實施例對具體實施形式不做限定。
[0070]如圖2所示,如果系統(tǒng)中存在多個PCIe端點設(shè)備,可以通過PCIe交換器150實現(xiàn)多個PCIe端點設(shè)備130與CPUllO的連接,圖2所示的系統(tǒng)中除了圖1所示的各組成元素之夕卜,還包括PCIe交換器150,該PCIe交換器150上游端口通過PCIe總線140與CPUllO連接,下游端口面向每個PCIe端點設(shè)備提供一個PCIe端口,所述每個PCIe端口通過PCIe總線140連接到每個PCIe端點設(shè)備,PCIe交換器150用于將數(shù)據(jù)向下游路由到對應(yīng)的PCIe端口,以及從每個獨立的PCIe端口將數(shù)據(jù)向上游路由至CPU110。在圖2中,模擬響應(yīng)模塊160可以設(shè)置在CPUllO與PCIe交換器150之間的信號傳輸路徑中,用來接收CPUllO發(fā)出的訪問請求,并對CPUllO發(fā)出的訪問請求進行緩存,向所述PCIe端點設(shè)備130轉(zhuǎn)發(fā)所述訪問請求,對所述訪問請求的報文狀態(tài)進行監(jiān)控,若確定自身接收到所述PCIe端點設(shè)備130發(fā)送的所述訪問請求的響應(yīng)消息,將自身緩存的所述訪問請求打上“已完成”的標記,或者刪除自身緩存的所述訪問請求,在預設(shè)的觸發(fā)條件到達時,查詢緩存的訪問請求的標記或者緩存的訪問請求,如果該訪問請求的標記表示該訪問請求“未完成”或者緩存的訪問請求未被刪除,模擬響應(yīng)模塊160即確定PCIe端點設(shè)備130未發(fā)送該訪問請求的響應(yīng)消息,則獲取該訪問請求的模擬響應(yīng)消息,并向CPUllO發(fā)送該模擬響應(yīng)消息。
[0071]在上述實施例中,上述預設(shè)的觸發(fā)條件可以是模擬響應(yīng)模塊160確定PCIe端點設(shè)備130發(fā)生異常離線,此種情況下,模擬響應(yīng)模塊160還用于監(jiān)測所述PCIe端點設(shè)備是否異常離線,在圖1和圖2所示的實施例中,模擬響應(yīng)模塊160確定自身是否接收到PCIe端點設(shè)備130的異常離線通知(例如PCIe端點設(shè)備被拔出系統(tǒng)的中斷通知),根據(jù)所述PCIe端點設(shè)備130的異常離線通知確定所述PCIe端點設(shè)備130發(fā)生異常離線。上述預設(shè)的觸發(fā)條件還可以是所述訪問請求的計時器超時,此種情況下,模擬響應(yīng)模塊160還用于針對PCIe端點設(shè)備130發(fā)送的訪問請求啟動計時器,在該計時器超時后,確定PCIe端點設(shè)備130是否發(fā)送對訪問請求的響應(yīng)消息,在圖1和圖2所示的實施例中,模擬響應(yīng)模塊160在接收到CPUllO發(fā)送的訪問請求并緩存該訪問請求后,即針對該訪問請求啟動計時器。
[0072]本發(fā)明實施例,模擬響應(yīng)模塊通過對訪問請求的報文狀態(tài)的監(jiān)控,在預設(shè)的觸發(fā)條件達到時,如果訪問請求的報文狀態(tài)仍然為“未完成”狀態(tài),模擬響應(yīng)模塊就將模擬生成的訪問請求的模擬響應(yīng)消息發(fā)送給CPU,使得CPU不再繼續(xù)對該訪問請求對應(yīng)的流程是否完成進行計時,并清除自身緩存的該訪問請求,保持CPU內(nèi)部處理的正常運行,避免了 CPU訪問請求超時不完成所導致的MCE復位問題。
[0073]在上述各實施例中,模擬響應(yīng)模塊160向CPUl 10發(fā)送的訪問請求的模擬響應(yīng)消息可以包括第一類型模擬響應(yīng)消息或第二類型模擬響應(yīng)消息,所述第一類型模擬響應(yīng)消息指示所述PCIe端點設(shè)備130不支持所述訪問請求,所述第二類型模擬響應(yīng)消息指示所述PCIe端點設(shè)備130異常,所述CPUllO接收到訪問請求的模擬響應(yīng)消息之后,還用于根據(jù)所述第一類型模擬響應(yīng)消息或所述第二類型模擬響應(yīng)消息,確定對所述PCIe端點設(shè)備130的訪問失敗,并據(jù)此不再啟動訪問數(shù)據(jù)的讀取的操作。本實施例中由于進一步指明了模擬響應(yīng)消息的類型,使得CPU根據(jù)該模擬響應(yīng)消息確認本次訪問流程完成的同時,還能夠確認本次訪問并非一次成功的訪問,并據(jù)此不去執(zhí)行對本次訪問相關(guān)數(shù)據(jù)的下一步的操作(例如讀取操作),因此本發(fā)明實施例在PCIe端點設(shè)備異常離線的情況下的維持CPU正常處理流程的同時,還避免了 CPU去執(zhí)行一些不必要的操作,從而避免系統(tǒng)資源的浪費。
[0074]在本發(fā)明的又一個實施例中,所述CPUllO針對被訪問的PCIe端點設(shè)備可能具體不止一條訪問請求,例如發(fā)送多條訪問請求,此種情況下,模擬響應(yīng)模塊160可以對所述(PU發(fā)送的所述多條訪問請求的每條的報文狀態(tài)都進行監(jiān)控,例如緩存所述多條訪問請求的每一條,對自身是否接收到每一條訪問請求的響應(yīng)消息進行監(jiān)控,在預設(shè)的觸發(fā)條件達到時,對沒有接收到響應(yīng)消息的訪問請求的數(shù)量進行統(tǒng)計,得到所述多條訪問請求中報文狀態(tài)是“未完成”的訪問請求的數(shù)量,若所述數(shù)量超過第一門限值,則獲取所述訪問請求的模擬響應(yīng)消息,并向所述處理器發(fā)送所述模擬響應(yīng)消息。在本實施例中,并非只要有一條訪問請求沒有接收到的響應(yīng)消息,CPU就會產(chǎn)生MCE復位,實際上CPU具有一定的容忍量,只有在不返回響應(yīng)消息的訪問請求數(shù)量累計到一定數(shù)值之后,才會產(chǎn)生MCE復位,因此,本實施例設(shè)置第一門限值,只有沒有接收到響應(yīng)消息的訪問請求數(shù)量超過這個第一門限值時,模擬響應(yīng)模塊160才將模擬響應(yīng)消息發(fā)送給CPU,以避免CPU的MCE復位。
[0075]上述模擬響應(yīng)模塊160可以通過軟件或者硬件的方式實現(xiàn),在本發(fā)明提供的一種實施例中,可以采用FPGA(Field — Programmable Gate Array),即現(xiàn)場可編程門陣列來實現(xiàn)。
[0076]圖1和圖2中描述的CPUllO也只是一種示例,例如還可以是特定集成電路,不管哪一種形式,其在計算機系統(tǒng)中,實現(xiàn)處理器的功能。本發(fā)明實施例所述的計算機系統(tǒng),可以是計算型服務(wù)器,也可以是管理路由的服務(wù)器,例如交換機,本發(fā)明對計算機系統(tǒng)的具體實現(xiàn)形式不做限定。
[0077]PCIe端點設(shè)備的訪問流程
[0078]下面對PCIe端點設(shè)備的訪問流程實施例進行介紹,如圖3所示,為本發(fā)明實施例提供的對PCIe端點設(shè)備進行訪問的流程,該PCIe端點設(shè)備通過PCIe總線接入計算機系統(tǒng),包括:
[0079]S301:在所述計算機系統(tǒng)中的CPU向PCIe端點設(shè)備發(fā)送訪問請求之后,模擬響應(yīng)模塊對所述訪問請求的報文狀態(tài)進行監(jiān)控。
[0080]具體地,所述訪問請求的報文狀態(tài)包括“已完成”或“未完成”,“已完成”表示所述PCIe端點設(shè)備已經(jīng)發(fā)送所述訪問請求的響應(yīng)消息,“未完成”表示所述PCIe端點設(shè)備未發(fā)送所述訪問請求的響應(yīng)消息。
[0081]所述模擬響應(yīng)模塊對所述訪問請求的報文狀態(tài)進行監(jiān)控,可以通過監(jiān)控自身是否接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息來實現(xiàn),若所述模擬響應(yīng)模塊接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,模擬響應(yīng)模塊將所述訪問請求的報文狀態(tài)記錄為“已完成”。
[0082]進一步地,模擬響應(yīng)模塊可以設(shè)置在CPU和PCIe端點設(shè)備的信號傳輸路徑上,這樣,模擬響應(yīng)模塊可以接收到來自CPU的訪問請求,也可以接收到來自PCIe端點設(shè)備的訪問請求的響應(yīng)消息,模擬響應(yīng)模塊可以在接收到訪問請求后即緩存該訪問請求,后續(xù)若接收到該訪問請求的響應(yīng)消息,則將緩存的該訪問請求打上“已完成”的標記,或者模擬響應(yīng)模塊刪除緩存的該訪問請求(此種情況下,訪問請求的報文狀態(tài)通過是否緩存訪問請求來標記,若緩存訪問請求,則表示該訪問請求的報文狀態(tài)未完成,若緩存的訪問請求被刪除,則表示該訪問請求的報文狀態(tài)已完成)。
[0083]S302:當預先設(shè)定的觸發(fā)條件達到時,所述模擬響應(yīng)模塊確定所述訪問請求的報文狀態(tài)。
[0084]所述預先設(shè)定的觸發(fā)條件可以是所述訪問請求的計時器超時,也可以是接收到PCIe端點設(shè)備發(fā)生異常離線的通知,實施方式后續(xù)實施例將具體介紹。
[0085]S303:如果所述訪問請求的報文狀態(tài)是“未完成”,所述模擬響應(yīng)模塊獲取所述訪問請求的模擬響應(yīng)消息。
[0086]S304:向所述CPU發(fā)送所述模擬響應(yīng)消息。
[0087]具體地,模擬響應(yīng)模塊可以獲取自身生成的所述訪問請求的模擬響應(yīng)消息,所述模擬響應(yīng)消息與所述訪問請求具有相同的報文頭,所述訪問請求與所述模擬響應(yīng)消息互相對應(yīng),可以使得CPU認為其之前發(fā)出的訪問請求對應(yīng)的流程已經(jīng)被完成,從而關(guān)閉對該訪問請求進行計時的計時器,并清除CPU自身緩存的該訪問請求,保持了 CPU內(nèi)部的處理正常進行,避免了訪問請求在CPU內(nèi)積累所導致的CPU的MCE復位問題。
[0088]本發(fā)明實施例中的訪問請求的模擬響應(yīng)消息并非由PCIe端點設(shè)備發(fā)出,并非所述訪問請求真實的響應(yīng)消息,可以由其他的模塊模擬生成,本發(fā)明實施例中可以由所述模擬響應(yīng)模塊生成所述訪問請求的模擬響應(yīng)消息。模擬響應(yīng)模塊可以預先生成該訪問請求的模擬響應(yīng)消息,也可以在確定所述訪問請求的報文狀態(tài)是“未完成”時,臨時生成該訪問請求的模擬響應(yīng)消息。
[0089]本發(fā)明實施例,模擬響應(yīng)模塊通過對訪問請求的報文狀態(tài)的監(jiān)控,在預設(shè)的觸發(fā)條件達到時,如果訪問請求的報文狀態(tài)仍然為“未完成”狀態(tài),模擬響應(yīng)模塊就將模擬生成的訪問請求的模擬響應(yīng)消息發(fā)送給CPU,使得CPU不再繼續(xù)對該訪問請求對應(yīng)的流程是否完成進行計時,并清除自身緩存的該訪問請求,保持CPU內(nèi)部處理的正常運行,避免了 CPU訪問請求超時不完成所導致的MCE復位問題。
[0090]結(jié)合上述圖1或圖2所示的計算機系統(tǒng)實施例,當模擬響應(yīng)模塊設(shè)置于CPU和PCIe端點設(shè)備之間的信號傳輸路徑中,本發(fā)明實施例一個具體的訪問流程如圖4所示,包括:
[0091]S401:計算機系統(tǒng)中的CPU獲得操作指令,所述操作指令指示所述CPU對PCIe端點設(shè)備進行訪問,所述CPU向所述PCIe端點設(shè)備發(fā)送訪問請求。
[0092]其中,當上游端點產(chǎn)生對PCIe端點設(shè)備的讀操作或?qū)懖僮餍枨髸r,所述PCIe端點設(shè)備的驅(qū)動模塊接收上游端點的調(diào)用,根據(jù)預先配置的訪問接口生成對PCIe端點設(shè)備進行訪問的操作指令,CPU獲得該操作指令。
[0093]S402:所述模擬響應(yīng)模塊接收來自所述CPU的所述訪問請求,緩存所述訪問請求。
[0094]由于所述模擬響應(yīng)模塊設(shè)置于CPU和PCIe端點設(shè)備之間的信號傳輸路徑中,其能夠接收到來自CPU的訪問請求;
[0095]S403:所述模擬響應(yīng)模塊生成所述訪問請求的模擬響應(yīng)消息,并將所述模擬響應(yīng)消息與所述訪問請求關(guān)聯(lián)緩存。
[0096]模擬響應(yīng)模塊可以在本步驟403中,即緩存所述訪問請求的時候,提前生成所述訪問請求的模擬響應(yīng)消息,也可以在后續(xù)步驟中確定需要模擬響應(yīng)消息的時候,再生成所述模擬響應(yīng)消息。
[0097]S404:所述模擬響應(yīng)模塊向所述PCIe端點設(shè)備轉(zhuǎn)發(fā)所述訪問請求。
[0098]S405:所述模擬響應(yīng)模塊監(jiān)控所述訪問請求的報文狀態(tài)。
[0099]具體地,所述模擬響應(yīng)模塊監(jiān)控自身是否接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,若所述模擬響應(yīng)模塊接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,模擬響應(yīng)模塊將緩存的所述訪問請求打上“已完成”的標記,或者模擬響應(yīng)模塊刪除緩存的所述訪問請求。
[0100]所述模擬響應(yīng)模塊可以在步驟404后,即其向所述PCIe端點設(shè)備轉(zhuǎn)發(fā)所述訪問請求之后啟動所述監(jiān)控,也可以在步驟401后,即CPU向所述PCIe端點設(shè)備發(fā)送所述訪問請求之后就啟動所述監(jiān)控。
[0101]S406:所述模擬響應(yīng)模塊接收到所述PCIe端點設(shè)備異常離線的通知,確定所述訪問請求的報文狀態(tài)。
[0102]本實施例中,預先設(shè)定的觸發(fā)條件是接收到所述PCIe端點設(shè)備異常離線的通知。由于模擬響應(yīng)模塊設(shè)置CPU和PCIe端點設(shè)備之間的信號傳輸路徑中,若PCIe端點設(shè)備被拔出,向CPU傳送的PCIe端點設(shè)備異常離線的通知會經(jīng)過模擬響應(yīng)模塊,該模擬響應(yīng)模塊接收該PCIe端點設(shè)備異常離線的通知,確定預先設(shè)定的觸發(fā)條件達到,查詢所述訪問請求的報文狀態(tài),確定所述報文狀態(tài)。
[0103]S407:若所述模擬響應(yīng)模塊確定所述訪問請求的報文狀態(tài)是“未完成”,所述模擬響應(yīng)模塊獲取自身緩存的所述訪問請求的模擬響應(yīng)消息,并向所述CPU發(fā)送所述模擬響應(yīng)消息。
[0104]本實施例中,所述模擬響應(yīng)消息可以是第一類型模擬響應(yīng)消息,指示所述PCIe端點設(shè)備130不支持所述訪問請求,例如所述模擬響應(yīng)消息攜帶Unsupported Request (UR)指示,或者,所述模擬響應(yīng)消息可以是第二類型模擬響應(yīng)消息,指示所述PCIe端點設(shè)備130異常,例如所述模擬響應(yīng)消息攜帶Completer Abort (CA)指示。
[0105]S408:所述CPU接收到所述模擬響應(yīng)消息,根據(jù)所述模擬響應(yīng)消息確定所述訪問請求對應(yīng)的流程被完成,清除自身緩存的所述訪問請求。
[0106]由于所述模擬響應(yīng)消息與所述訪問請求具有相同的報文頭,訪問請求與模擬響應(yīng)消息相互對應(yīng),可以使得CPU認為其之前發(fā)出的訪問請求對應(yīng)的流程已經(jīng)被完成,從而關(guān)閉對該訪問請求進行計時的計時器,并清除CPU自身緩存的該訪問請求,最終保持了 CPU內(nèi)部的處理正常進行,避免了訪問請求在CPU內(nèi)積累所導致的CPU的MCE復位問題。
[0107]進一步,由于該模擬響應(yīng)消息還可能攜帶UR或者CA指示,模擬響應(yīng)模塊還可以進一步根據(jù)所述模擬響應(yīng)消息攜帶的指示信息,確定對所述PCIe端點設(shè)備的訪問失敗,以及進行訪問錯誤處理。所述訪問錯誤處理可以包括:抑制所述CPU對所述訪問請求相關(guān)的進一步操作(例如數(shù)據(jù)的讀取),或者將所述PCIe端點設(shè)備的狀態(tài)記錄為發(fā)生異常離線,從而使得CPU中止對所述PCIe端點設(shè)備進行后續(xù)訪問操作。
[0108]S409:所述模擬響應(yīng)模塊將所述PCIe端點設(shè)備異常離線的通知轉(zhuǎn)發(fā)給所述CPU。
[0109]所述CPU后續(xù)可以根據(jù)所述PCIe端點設(shè)備異常離線的通知,將所述PCIe端點設(shè)備對應(yīng)的物理設(shè)備進行下電操作,以及相關(guān)的資源釋放操作。
[0110]本發(fā)明實施例中,模擬響應(yīng)模塊通過對訪問請求的報文狀態(tài)的監(jiān)控,在接收到被訪問的PCIe端點設(shè)備異常離線的通知時,如果訪問請求的報文狀態(tài)仍然為“未完成”狀態(tài),模擬響應(yīng)模塊就將模擬生成的訪問請求的模擬響應(yīng)消息發(fā)送給CPU,使得CPU不會對該訪問請求對應(yīng)的流程是否完成進行超時計時,保持CPU內(nèi)部處理的正常運行,避免了 CPU內(nèi)部訪問請求超時不完成所導致的MCE復位問題。本發(fā)明實施例中,模擬響應(yīng)模塊設(shè)置CPU和PCIe端點設(shè)備之間的信號傳輸路徑中,可以通過自身是否接收到被訪問的PCIe端點設(shè)備發(fā)出的訪問請求的響應(yīng)消息實現(xiàn)對訪問請求報文狀態(tài)的監(jiān)控,實現(xiàn)起來方便靈活,效率較聞。
[0111]另外,本實施例中由于進一步指明了模擬響應(yīng)消息的類型,使得CPU根據(jù)該模擬響應(yīng)消息確認本次訪問流程完成的同時,還能夠確認本次訪問并非一次成功的訪問,并據(jù)此不去執(zhí)行對本次訪問相關(guān)數(shù)據(jù)的下一步的操作(例如讀取操作),因此本發(fā)明實施例在PCIe端點設(shè)備異常離線的情況下的維持CPU正常處理流程的同時,還避免了 CPU去執(zhí)行一些不必要的操作,從而避免系統(tǒng)資源的浪費。
[0112]本發(fā)明方法實施例二,本實施例中模擬響應(yīng)模塊仍然設(shè)置于CPU和PCIe端點設(shè)備之間的信號傳輸路徑中,如圖5所示,該方法包括:
[0113]S501:計算機系統(tǒng)中的CPU獲得操作指令,所述操作指令指示所述CPU對PCIe端點設(shè)備進行訪問,所述CPU向所述PCIe端點設(shè)備發(fā)送訪問請求。
[0114]S502:所述模擬響應(yīng)模塊接收來自所述CPU的所述訪問請求,緩存所述訪問請求。
[0115]由于所述模擬響應(yīng)模塊設(shè)置CPU和PCIe端點設(shè)備之間的信號傳輸路徑中,其能夠接收到來自CPU的訪問請求。
[0116]S503:所述模擬響應(yīng)模塊針對所述訪問請求啟動計時器,并開始計時。
[0117]S504:所述模擬響應(yīng)模塊生成所述訪問請求的模擬響應(yīng)消息,并將所述模擬響應(yīng)消息與所述訪問請求關(guān)聯(lián)緩存。
[0118]模擬響應(yīng)模塊可以在本步驟503中,即緩存所述訪問請求的時候,提前生成所述訪問請求的模擬響應(yīng)消息,也可以在后續(xù)步驟中確定需要模擬響應(yīng)消息的時候,再生成所述模擬響應(yīng)消息。
[0119]上述步驟503和步驟504執(zhí)行沒有先后之分,模擬響應(yīng)模塊可以在接收到所述訪問請求之后同時開始執(zhí)行步驟503和504,也可以先執(zhí)行503再執(zhí)行504。
[0120]S505:所述模擬響應(yīng)模塊向所述PCIe端點設(shè)備轉(zhuǎn)發(fā)所述訪問請求。
[0121]S506:所述模擬響應(yīng)模塊監(jiān)控所述訪問請求的報文狀態(tài)。
[0122]具體地,所述模擬響應(yīng)模塊監(jiān)控自身是否接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,若所述模擬響應(yīng)模塊接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,模擬響應(yīng)模塊將緩存的所述訪問請求打上“已完成”的標記,或者模擬響應(yīng)模塊刪除緩存的所述訪問請求。
[0123]S507:所述模擬響應(yīng)模塊在所述計時器超時后,確定所述訪問請求的報文狀態(tài)。
[0124]本實施例中,預設(shè)的觸發(fā)條件是訪問請求的計時器是否超時,所述計時器的計時時間根據(jù)經(jīng)驗值設(shè)定,該經(jīng)驗值是PCIe端點設(shè)備發(fā)送訪問請求的響應(yīng)消息的最大容忍時間,一般情況下,如果PCIe端點設(shè)備保持正常,則在該經(jīng)驗值時間內(nèi),模擬響應(yīng)模塊一定可以接收到其發(fā)出的訪問請求的響應(yīng)消息。
[0125]S508:若所述模擬響應(yīng)模塊確定所述訪問請求的報文狀態(tài)是“未完成”,所述模擬響應(yīng)模塊獲取自身緩存的所述訪問請求的模擬響應(yīng)消息,并向所述CPU發(fā)送所述模擬響應(yīng)消息。
[0126]當計時器超時后,模擬響應(yīng)模塊查詢所述訪問請求的報文狀態(tài),若確定所述報文狀態(tài)是“未完成”,那么基本可以確定被訪問的PCIe端點設(shè)備異常離線,CPU不可能接收到訪問請求的響應(yīng)消息,此時,為了避免CPU緩存的訪問請求超時所導致的MCE復位問題,模擬響應(yīng)模塊將提前生成的模擬響應(yīng)消息發(fā)送給CPU。
[0127]本實施例中,所述模擬響應(yīng)消息可以是第一類型模擬響應(yīng)消息,指示所述PCIe端點設(shè)備130不支持所述訪問請求,例如所述模擬響應(yīng)消息攜帶Unsupported Request (UR)指示,或者所述模擬響應(yīng)消息可以是第二類型模擬響應(yīng)消息,指示所述PCIe端點設(shè)備130異常,例如所述模擬響應(yīng)消息攜帶Completer Abort (CA)指示。
[0128]S509:所述CPU接收到所述模擬響應(yīng)消息,根據(jù)所述模擬響應(yīng)消息確定所述訪問請求對應(yīng)的流程被完成,清除自身緩存的所述訪問請求。
[0129]由于所述模擬響應(yīng)消息與所述訪問請求具有相同的報文頭,訪問請求與模擬響應(yīng)消息相互對應(yīng),可以使得CPU認為其之前發(fā)出的訪問請求對應(yīng)的流程已經(jīng)被完成,從而關(guān)閉對該訪問請求進行計時的計時器,并清除CPU自身緩存的該訪問請求,最終保持了 CPU內(nèi)部的處理正常進行,避免了訪問請求在CPU內(nèi)積累所導致的CPU的MCE復位問題。
[0130]進一步,由于該模擬響應(yīng)消息還可能攜帶UR或者CA指示,模擬響應(yīng)模塊還可以進一步根據(jù)所述模擬響應(yīng)消息攜帶的指示信息,進行訪問錯誤處理;所述訪問錯誤處理可以包括:抑制所述CPU對所述訪問請求相關(guān)的進一步操作(例如數(shù)據(jù)的讀取),或者將所述PCIe端點設(shè)備的狀態(tài)記錄為發(fā)生異常離線,從而使得CPU中止對所述PCIe端點設(shè)備進行后續(xù)訪問操作。
[0131]S510:所述模擬響應(yīng)模塊確定所述PCIe端點設(shè)備的狀態(tài)。
[0132]所述模擬響應(yīng)模塊進一步確定所述PCIe端點設(shè)備的狀態(tài)是異常離線還是發(fā)生故障,如果是所述PCIe端點設(shè)備異常離線,執(zhí)行步驟511,如果是所述PCIe端點設(shè)備發(fā)生故障,執(zhí)行步驟512。
[0133]所述模擬響應(yīng)模塊可以確定自身是否接收到PCIe端點設(shè)備異常離線的通知,根據(jù)是否接收到所述通知確定所述PCIe端點設(shè)備是否異常離線,也可以向PCIe端點設(shè)備發(fā)送探測消息,用以確定所述PCIe端點設(shè)備的狀態(tài)。
[0134]S511:如果所述模擬響應(yīng)模塊確定所述PCIe端點設(shè)備異常離線,向所述CPU發(fā)送所述PCIe端點設(shè)備異常離線的通知,以使得所述CPU根據(jù)所述PCIe端點設(shè)備異常離線的通知,將所述PCIe端點設(shè)備對應(yīng)的物理設(shè)備進行下電操作以及資源釋放操作。[0135]S512:如果所述模擬響應(yīng)模塊確定所述PCIe端點設(shè)備發(fā)生故障,修復所述PCIe端點設(shè)備的故障。
[0136]本發(fā)明實施例中,模擬響應(yīng)模塊通過對訪問請求的報文狀態(tài)的監(jiān)控,在計時器超時后,如果訪問請求的報文狀態(tài)仍然為“未完成”狀態(tài),模擬響應(yīng)模塊就將模擬生成的訪問請求的模擬響應(yīng)消息發(fā)送給CPU,使得CPU不會對該訪問請求對應(yīng)的流程是否完成進行超時計時,保持CPU內(nèi)部處理的正常運行,避免了 CPU內(nèi)部訪問請求超時不完成所導致的MCE復位問題。
[0137]另外,本實施例中由于進一步指明了模擬響應(yīng)消息的類型,使得CPU根據(jù)該模擬響應(yīng)消息確認本次訪問流程完成的同時,還能夠確認本次訪問并非一次成功的訪問,并據(jù)此不去執(zhí)行對本次訪問相關(guān)數(shù)據(jù)的下一步的操作(例如讀取操作),因此本發(fā)明實施例在PCIe端點設(shè)備異常離線的情況下的維持CPU正常處理流程的同時,還避免了 CPU去執(zhí)行一些不必要的操作,從而避免系統(tǒng)資源的浪費。
[0138]本發(fā)明裝置實施例
[0139]本發(fā)明實施例提供的模擬響應(yīng)裝置,應(yīng)用于計算機系統(tǒng)中,PCIe端點設(shè)備通過PCIe總線接入所述計算機系統(tǒng)中,如圖6所示,所述裝置與PCIe端點設(shè)備130和CPUllO交互,該裝置包括:
[0140]監(jiān)控單元601,用于在所述計算機系統(tǒng)中的CPUllO向所述PCIe端點設(shè)備發(fā)送訪問請求之后,對所述訪問請求的報文狀態(tài)進行監(jiān)控,其中,所述訪問請求的報文狀態(tài)包括“已完成”或“未完成”,所述“未完成”表示所述PCIe端點設(shè)備未發(fā)送所述訪問請求的響應(yīng)消息;
[0141]確定單元602,用于當預設(shè)的觸發(fā)條件達到時,根據(jù)所述監(jiān)控單元601的監(jiān)控結(jié)果確定所述訪問請求的報文狀態(tài);
[0142]獲取單元603,用于在所述確定單元602確定所述訪問請求的報文狀態(tài)是“未完成”時,獲取所述訪問請求的模擬響應(yīng)消息;
[0143]響應(yīng)單元604,用于向所述CPUllO發(fā)送所述獲取單元603獲取的所述模擬響應(yīng)消
肩、O
[0144]進一步,在本發(fā)明的又一裝置實施例中,如圖7所示,該裝置還可以進一步包括:
[0145]交互單元605,用于接收所述CPUllO發(fā)送的訪問請求,向所述PCIe端點設(shè)備130轉(zhuǎn)發(fā)所述訪問請求;
[0146]則所述監(jiān)控單元601具體用于監(jiān)控所述交互單元605是否接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,若接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,將所述訪問請求的報文狀態(tài)記錄為“已完成”。
[0147]進一步,在本發(fā)明的又一裝置實施例中,所述監(jiān)控單元601還用于緩存所述交互單元605接收到的所述訪問請求;
[0148]所述監(jiān)控單元601具體用于在所述交互單元605接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息時,將所述緩存的所述訪問請求的打上“已完成”的標記,或者刪除緩存的所述訪問請求;
[0149]所述確定單元602具體用于在預設(shè)的觸發(fā)條件達到時,查詢所述監(jiān)控單元601緩存的所述訪問請求,若緩存的所述訪問請求的標記為“已完成”或者緩存的所述訪問請求已經(jīng)被刪除,則確定所述訪問請求的報文狀態(tài)是“已完成”,若緩存的所述訪問請求的標記為“未完成”或者緩存的所述訪問請求沒有“已完成”標記,則確定所述訪問請求的報文狀態(tài)是“未完成”。
[0150]進一步,在本發(fā)明的又一裝置實施例中,所述監(jiān)控單元601還用于,在所述交互單元605接收到所述CPUllO發(fā)送的所述訪問請求之后,生成所述訪問請求的模擬響應(yīng)消息,并緩存所述訪問請求的模擬響應(yīng)消息;
[0151]則,所述獲取單元603具體用于獲取所述監(jiān)控單元601緩存的所述訪問請求的模擬響應(yīng)消息。
[0152]進一步,在本發(fā)明的又一裝置實施例中,所述訪問請求的模擬響應(yīng)消息包括第一類型模擬響應(yīng)消息或第二類型模擬響應(yīng)消息,所述第一類型模擬響應(yīng)消息指示所述PCIe端點設(shè)備不支持所述訪問請求,所述第二類型模擬響應(yīng)消息指示所述PCIe端點設(shè)備異常。
[0153]進一步,在本發(fā)明的又一裝置實施例中,所述預設(shè)的觸發(fā)條件為所述PCIe端點設(shè)備發(fā)生異常離線;
[0154]所述監(jiān)控單元601還用于:監(jiān)測所述PCIe端點設(shè)備是否發(fā)生異常離線,在確定所述PCIe端點設(shè)備發(fā)生異常離線時,通知所述確定單元602執(zhí)行所述確定所述訪問請求的報文狀態(tài)的步驟。
[0155]進一步,在本發(fā)明的又一裝置實施例中,所述監(jiān)控單元601具體用于:確定所述交互單元605是否接收到所述PCIe端點設(shè)備的異常離線通知,如果是,確定所述PCIe端點設(shè)備發(fā)生異常離線。
[0156]進一步,在本發(fā)明的又一裝置實施例中,所述交互單元605還用于:
[0157]向所述CPUllO轉(zhuǎn)發(fā)所述PCIe端點設(shè)備的異常離線通知,以使得所述CPUllO根據(jù)接收到的所述PCIe端點設(shè)備130的異常離線通知,將所述PCIe端點設(shè)備130對應(yīng)的物理設(shè)備進行下電操作。
[0158]進一步,在本發(fā)明的又一裝置實施例中,所述預設(shè)的觸發(fā)條件為所述訪問請求的計時器超時;
[0159]所述監(jiān)控單元601還用于:
[0160]針對所述CPUllO發(fā)送的所述訪問請求啟動計時器進行計時,在所述計時器超時后,通知所述確定單元602執(zhí)行所述確定所述訪問請求的報文狀態(tài)的步驟。
[0161]所述監(jiān)控單元601還用于:
[0162]確定所述PCIe端點設(shè)備的狀態(tài),若確定所述PCIe端點設(shè)備的狀態(tài)是異常離線,則通知所述交互單元605向所述CPUllO發(fā)送所述PCIe端點設(shè)備130的異常離線通知,以使得所述CPUllO根據(jù)接收到的所述PCIe端點設(shè)備130的異常離線通知,將所述PCIe端點設(shè)備130對應(yīng)的物理設(shè)備進行下電操作。
[0163]進一步,在本發(fā)明的又一裝置實施例中,所述CPUllO向所述PCIe端點設(shè)備130發(fā)送多條訪問請求;
[0164]所述監(jiān)控單元601具體用于對所述多條訪問請求的每條訪問請求的報文狀態(tài)進行監(jiān)控;
[0165]所述確定單元602具體用于在預設(shè)的觸發(fā)條件達到時,統(tǒng)計所述多條訪問請求中未接收到響應(yīng)消息的訪問請求的數(shù)量,確定所述數(shù)量是否超過第一門限值;[0166]所述獲取單元603具體用于在所述數(shù)量超過第一門限值時,獲取所述訪問請求的模擬響應(yīng)消息。
[0167]如圖8,為本發(fā)明實施例提供的計算機的結(jié)構(gòu)組成示意圖。本發(fā)明實施例的計算機可包括:
[0168]處理器801、存儲器802、系統(tǒng)總線804和通信接口 805。處理器801、存儲器802和通信接口 805之間通過系統(tǒng)總線804連接并完成相互間的通信。
[0169]處理器801可能為單核或多核中央處理單元,或者為特定集成電路,或者為被配置成實施本發(fā)明實施例的一個或多個集成電路。
[0170]存儲器802可以為高速RAM存儲器,也可以為非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。
[0171]存儲器802用于計算機執(zhí)行指令803。具體的,計算機執(zhí)行指令803中可以包括程序代碼。
[0172]當計算機運行時,處理器801運行計算機執(zhí)行指令803,可以執(zhí)行圖3_圖5任意之一所述的方法流程,具體在此不再重復描述。
[0173]本領(lǐng)域普通技術(shù)人員將會理解,本發(fā)明的各個方面、或各個方面的可能實現(xiàn)方式可以被具體實施為系統(tǒng)、方法或者計算機程序產(chǎn)品。因此,本發(fā)明的各方面、或各個方面的可能實現(xiàn)方式可以采用完全硬件實施例、完全軟件實施例(包括固件、駐留軟件等等),或者組合軟件和硬件方面的實施例的形式,在這里都統(tǒng)稱為“電路”、“模塊”或者“系統(tǒng)”。此夕卜,本發(fā)明的各方面、或各個方面的可能實現(xiàn)方式可以采用計算機程序產(chǎn)品的形式,計算機程序產(chǎn)品是指存儲在計算機可讀介質(zhì)中的計算機可讀程序代碼。
[0174]計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)包含但不限于電子、磁性、光學、電磁、紅外或半導體系統(tǒng)、設(shè)備或者裝置,或者前述的任意適當組合,如隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M或者快閃存儲器)、光纖、便攜式只讀存儲器(CD-ROM)。
[0175]計算機中的處理器讀取存儲在計算機可讀介質(zhì)中的計算機可讀程序代碼,使得處理器能夠執(zhí)行在流程圖中每個步驟、或各步驟的組合中規(guī)定的功能動作;生成實施在框圖的每一塊、或各塊的組合中規(guī)定的功能動作的裝置。
[0176]計算機可讀程序代碼可以完全在用戶的計算機上執(zhí)行、部分在用戶的計算機上執(zhí)行、作為單獨的軟件包、部分在用戶的計算機上并且部分在遠程計算機上,或者完全在遠程計算機或者服務(wù)器上執(zhí)行。也應(yīng)該注意,在某些替代實施方案中,在流程圖中各步驟、或框圖中各塊所注明的功能可能不按圖中注明的順序發(fā)生。例如,依賴于所涉及的功能,接連示出的兩個步驟、或兩個塊實際上可能被大致同時執(zhí)行,或者這些塊有時候可能被以相反順序執(zhí)行。
[0177]本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
[0178]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)所述以權(quán)利要求的保護范圍為準。
【權(quán)利要求】
1.一種計算機系統(tǒng),其特征在于,所述計算機系統(tǒng)包括: 處理器; 高速外圍組件互聯(lián)PCIe總線,用于連接PCIe端點設(shè)備; 所述處理器用于獲取對所述PCIe端點設(shè)備進行訪問的操作指令,根據(jù)所述操作指令,向所述PCIe端點設(shè)備發(fā)送訪問請求; 所述計算機系統(tǒng)還包括模擬響應(yīng)模塊,用于在所述處理器向所述PCIe端點設(shè)備發(fā)送所述訪問請求之后,對所述訪問請求的報文狀態(tài)進行監(jiān)控,在預設(shè)的觸發(fā)條件達到時,確定所述訪問請求的報文狀態(tài),如果所述訪問請求的報文狀態(tài)是“未完成”,則獲取所述訪問請求的模擬響應(yīng)消息,并向所述處理器發(fā)送所述模擬響應(yīng)消息; 其中,所述訪問請求的報文狀態(tài)包括“已完成”或“未完成”,所述“未完成”表示所述PCIe端點設(shè)備未發(fā)送所述訪問請求的響應(yīng)消息。
2.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其特征在于,所述模擬響應(yīng)模塊設(shè)置于所述處理器和所述PCIe端點設(shè)備的信號傳輸路徑中,具體用于接收所述處理器發(fā)送的訪問請求,向所述PCIe端點設(shè)備轉(zhuǎn)發(fā)所述訪問請求,監(jiān)控自身是否接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,若接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,將所述訪問請求的報文狀態(tài)記錄為“已完成”。
3.根據(jù)權(quán)利要求2所述的計算機系統(tǒng),其特征在于,所述計算機系統(tǒng)還包括:PCIe交換器,用于將多個所述PCIe端點設(shè)備連接到所述處理器,所述PCIe交換器的下游端口通過所述PCIe總線與多個所 述PCIe端點設(shè)備連接; 所述模擬響應(yīng)模塊的一個端口通過所述PCIe總線與所述PCIe交換器的上游端口連接,所述模擬響應(yīng)模塊的另一個端口與所述處理器連接。
4.根據(jù)權(quán)利要求2或3所述的計算機系統(tǒng),其特征在于,所述模擬響應(yīng)模塊還用于在接收到所述處理器發(fā)送的所述訪問請求之后,緩存所述訪問請求,若接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,將緩存的所述訪問請求的打上“已完成”的標記,或者刪除緩存的所述訪問請求; 相應(yīng)地,所述模擬響應(yīng)模塊在預設(shè)的觸發(fā)條件達到時,查詢緩存的所述訪問請求,若緩存的所述訪問請求的標記為“已完成”或者緩存的所述訪問請求已經(jīng)被刪除,則確定所述訪問請求的報文狀態(tài)是“已完成”,若緩存的所述訪問請求的標記為“未完成”或者緩存的所述訪問請求沒有“已完成”標記,則確定所述訪問請求的報文狀態(tài)是“未完成”。
5.根據(jù)權(quán)利要求2或3或4所述的計算機系統(tǒng),其特征在于,所述模擬響應(yīng)模塊還用于在接收到所述處理器發(fā)送的所述訪問請求之后,生成所述訪問請求的模擬響應(yīng)消息,并緩存所述訪問請求的模擬響應(yīng)消息; 相應(yīng)地,所述模擬響應(yīng)模塊在確定所述訪問請求的報文狀態(tài)是“未完成”時,獲取自身緩存的所述訪問請求的模擬響應(yīng)消息。
6.根據(jù)權(quán)利要求1-5任一項所述的計算機系統(tǒng),其特征在于,所述訪問請求的模擬響應(yīng)消息包括第一類型模擬響應(yīng)消息或第二類型模擬響應(yīng)消息,所述第一類型模擬響應(yīng)消息指示所述PCIe端點設(shè)備不支持所述訪問請求,所述第二類型模擬響應(yīng)消息指示所述PCIe端點設(shè)備異常; 所述處理器還用于根據(jù)所述第一類型模擬響應(yīng)消息或所述第二類型模擬響應(yīng)消息,中止對所述PCIe端點設(shè)備的后續(xù)訪問。
7.根據(jù)權(quán)利要求1-6任一項所述的計算機系統(tǒng),其特征在于,所述模擬響應(yīng)模塊采用現(xiàn)場可編程門陣列實現(xiàn)。
8.根據(jù)權(quán)利要求1-7任一項所述的計算機系統(tǒng),其特征在于,所述預設(shè)的觸發(fā)條件為所述PCIe端點設(shè)備發(fā)生異常離線; 相應(yīng)地,所述模擬響應(yīng)模塊還用于監(jiān)測所述PCIe端點設(shè)備是否發(fā)生異常離線,在確定所述PCIe端點設(shè)備發(fā)生異常離線時,確定所述訪問請求的報文狀態(tài)。
9.根據(jù)權(quán)利要求8所述的計算機系統(tǒng),其特征在于,所述模擬響應(yīng)模塊具體用于確定自身是否接收到所述PCIe端點設(shè)備的異常離線通知,如果是,確定所述PCIe端點設(shè)備發(fā)生異常離線。
10.根據(jù)權(quán)利要求9所述的計算機系統(tǒng),其特征在于,所述模擬響應(yīng)模塊還用于向所述處理器轉(zhuǎn)發(fā)所述PCIe端點設(shè)備的異常離線通知; 所述處理器還用于根據(jù)接收到的所述PCIe端點設(shè)備的異常離線通知,將所述PCIe端點設(shè)備對應(yīng)的物理設(shè)備進行下電操作。
11.根據(jù)權(quán)利要求1-7任一項所述的計算機系統(tǒng),其特征在于,所述預設(shè)的觸發(fā)條件為所述訪問請求的計時器超時; 相應(yīng)地,所述模擬響應(yīng)模塊還用于針對所述處理器發(fā)送的所述訪問請求啟動計時器進行計時,在所述計時器超時后,確定所述訪問請求的報文狀態(tài)。
12.根據(jù)權(quán)利要求11所述的計算機系統(tǒng),其特征在于,所述模擬響應(yīng)模塊在向所述處理器發(fā)送所述模擬響應(yīng)消息之后,還用于確定所述PCIe端點設(shè)備的狀態(tài),若確定所述PCIe端點設(shè)備的狀態(tài)是異常離線,則`向所述處理器發(fā)送所述PCIe端點設(shè)備的異常離線通知; 所述處理器還用于根據(jù)接收到的所述PCIe端點設(shè)備的異常離線通知,將所述PCIe端點設(shè)備對應(yīng)的物理設(shè)備進行下電操作。
13.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其特征在于,所述處理器具體用于向所述PCIe端點設(shè)備發(fā)送多條訪問請求; 所述模擬響應(yīng)模塊具體用于對所述多條訪問請求的每條訪問請求的報文狀態(tài)進行監(jiān)控,在預設(shè)的觸發(fā)條件達到時,統(tǒng)計所述多條訪問請求中未接收到響應(yīng)消息的訪問請求的數(shù)量,若所述數(shù)量超過第一門限值,則獲取所述訪問請求的模擬響應(yīng)消息,并向所述處理器發(fā)送所述模擬響應(yīng)消息。
14.一種高速外圍組件互聯(lián)PCIe端點設(shè)備的訪問方法,其特征在于,PCIe端點設(shè)備通過PCIe總線接入計算機系統(tǒng)中,所述方法包括: 在所述計算機系統(tǒng)中的處理器向所述PCIe端點設(shè)備發(fā)送訪問請求之后,對所述訪問請求的報文狀態(tài)進行監(jiān)控,其中,所述訪問請求的報文狀態(tài)包括“已完成”或“未完成”,所述“未完成”表示所述PCIe端點設(shè)備未發(fā)送所述訪問請求的響應(yīng)消息; 當預設(shè)的觸發(fā)條件達到時,確定所述訪問請求的報文狀態(tài); 如果所述訪問請求的報文狀態(tài)是“未完成”,獲取所述訪問請求的模擬響應(yīng)消息; 向所述處理器發(fā)送所述訪問請求的模擬響應(yīng)消息。
15.根據(jù)權(quán)利要求14所述的方法,其特征在于,還包括: 接收所述處理器發(fā)送的訪問請求,向所述PCIe端點設(shè)備轉(zhuǎn)發(fā)所述訪問請求;貝1J,所述對所述訪問請求的報文狀態(tài)進行監(jiān)控包括: 監(jiān)控自身是否接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,若接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,將所述訪問請求的報文狀態(tài)記錄為“已完成”。
16.根據(jù)權(quán)利要求15所述的方法,其特征在于,在接收到所述處理器發(fā)送的所述訪問請求之后,還包括:緩存所述訪問請求; 則,所述將所述訪問請求的報文狀態(tài)記錄為“已完成”包括: 若接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,將緩存的所述訪問請求的打上“已完成”的標記,或者刪除緩存的所述訪問請求; 所述當預設(shè)的觸發(fā)條件達到時,確定所述訪問請求的報文狀態(tài)包括: 在預設(shè)的觸發(fā)條件達到時,查詢緩存的所述訪問請求,若緩存的所述訪問請求的標記為“已完成”或者緩存的所述訪問請求已經(jīng)被刪除,則確定所述訪問請求的報文狀態(tài)是“已完成”,若緩存的所述訪問請求的標記為“未完成”或者緩存的所述訪問請求沒有“已完成”標記,則確定所述訪問請求的報文狀態(tài)是“未完成”。
17.根據(jù)權(quán)利要求15或16所述的方法,其特征在于,在接收到所述處理器發(fā)送的所述訪問請求之后,還包括:生成所述訪問請求的模擬響應(yīng)消息,并緩存所述訪問請求的模擬響應(yīng)消息; 則,所述獲取所述訪問請求的模擬響應(yīng)消息包括: 獲取自身緩存的所述訪問請求的模擬響應(yīng)消息。
18.根據(jù)權(quán)利要求14-17任一項所述的方法,其特征在于,所述訪問請求的模擬響應(yīng)消息包括第一類型模擬響應(yīng)消息或第二類型模擬響應(yīng)消息,所述第一類型模擬響應(yīng)消息指示所述PCIe端點設(shè)備不支持所述訪問請求,所述第二類型模擬響應(yīng)消息指示所述PCIe端點設(shè)備異常; 其中,所述第一類型模擬響應(yīng)消息或所述第二類型模擬響應(yīng)消息用于指示所述處理器中止對所述PCIe端點設(shè)備的后續(xù)訪問。
19.根據(jù)權(quán)利要求14-18任一項所述的方法,其特征在于,所述預設(shè)的觸發(fā)條件為所述PCIe端點設(shè)備發(fā)生異常離線; 所述方法還包括: 監(jiān)測所述PCIe端點設(shè)備是否發(fā)生異常離線,在確定所述PCIe端點設(shè)備發(fā)生異常離線時,執(zhí)行所述確定所述訪問請求的報文狀態(tài)的步驟。
20.根據(jù)權(quán)利要求19所述的方法,其特征在于,所述監(jiān)測所述PCIe端點設(shè)備是否發(fā)生異常離線包括: 確定自身是否接收到所述PCIe端點設(shè)備的異常離線通知,如果是,確定所述PCIe端點設(shè)備發(fā)生異常離線。
21.根據(jù)權(quán)利要求20所述的方法,其特征在于,還包括: 向所述處理器轉(zhuǎn)發(fā)所述PCIe端點設(shè)備的異常離線通知,以使得所述處理器根據(jù)接收到的所述PCIe端點設(shè)備的異常離線通知,將所述PCIe端點設(shè)備對應(yīng)的物理設(shè)備進行下電操作。
22.根據(jù)權(quán)利要求14-18任一項所述的方法,其特征在于,所述預設(shè)的觸發(fā)條件為所述訪問請求的計時器超時; 所述方法還包括: 針對所述處理器發(fā)送的所述訪問請求啟動計時器進行計時,在所述計時器超時后,執(zhí)行所述確定所述訪問請求的報文狀態(tài)的步驟。
23.根據(jù)權(quán)利要求22所述的方法,其特征在于,還包括: 確定所述PCIe端點設(shè)備的狀態(tài),若確定所述PCIe端點設(shè)備的狀態(tài)是異常離線,則向所述處理器發(fā)送所述PCIe端點設(shè)備的異常離線通知,以使得所述處理器根據(jù)接收到的所述PCIe端點設(shè)備的異常離線通知,將所述PCIe端點設(shè)備對應(yīng)的物理設(shè)備進行下電操作。
24.根據(jù)權(quán)利要求14所述的方法,其特征在于,所述處理器向所述PCIe端點設(shè)備發(fā)送多條訪問請求; 所述方法包括: 對所述多條訪問請求的每條訪問請求的報文狀態(tài)進行監(jiān)控; 在預設(shè)的觸發(fā)條件達到時,統(tǒng)計所述多條訪問請求中未接收到響應(yīng)消息的訪問請求的數(shù)量; 若所述數(shù)量超過第一門限值,則獲取所述訪問請求的模擬響應(yīng)消息。
25.一種模擬響應(yīng)裝置,其特征在于,應(yīng)用于計算機系統(tǒng),高速外圍組件互聯(lián)PCIe端點設(shè)備通過PCIe總線接入所述計算機系統(tǒng)中,所述裝置包括: 監(jiān)控單元,用于在所述計算機系統(tǒng)中的處理器向所述PCIe端點設(shè)備發(fā)送訪問請求之后,對所述訪問請求的報文狀態(tài)進行監(jiān)控,其中,所述訪問請求的報文狀態(tài)包括“已完成”或“未完成”,所述“未完成”表示所述PCIe端點設(shè)備未發(fā)送所述訪問請求的響應(yīng)消息; 確定單元,用于當預設(shè)的觸發(fā)條件達到時,根據(jù)所述監(jiān)控單元的監(jiān)控結(jié)果確定所述訪問請求的報文狀態(tài); 獲取單元,用于在所述確定單元確定所述訪問請求的報文狀態(tài)是“未完成”時,獲取所述訪問請求的模擬響應(yīng)消息; 響應(yīng)單元,用于向所述處理器發(fā)送所述獲取單元獲取的所述模擬響應(yīng)消息。
26.根據(jù)權(quán)利要求25所述的裝置,其特征在于,還包括: 交互單元,用于接收所述處理器發(fā)送的訪問請求,向所述PCIe端點設(shè)備轉(zhuǎn)發(fā)所述訪問請求; 則所述監(jiān)控單元具體用于監(jiān)控所述交互單元是否接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,若接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息,將所述訪問請求的報文狀態(tài)記錄為“已完成”。
27.根據(jù)權(quán)利要求26所述的裝置,其特征在于,所述監(jiān)控單元還用于緩存所述交互單元接收到的所述訪問請求; 所述監(jiān)控單元具體用于在所述交互單元接收到所述PCIe端點設(shè)備發(fā)送的所述訪問請求的響應(yīng)消息時,將所述緩存的所述訪問請求的打上“已完成”的標記,或者刪除緩存的所述訪問請求; 所述確定單元具體用于在預設(shè)的觸發(fā)條件達到時,查詢所述監(jiān)控單元緩存的所述訪問請求,若緩存的所述訪問請求的標記為“已完成”或者緩存的所述訪問請求已經(jīng)被刪除,則確定所述訪問請求的報文狀態(tài)是“已完成”,若緩存的所述訪問請求的標記為“未完成”或者緩存的所述訪問請求沒有“已完成”標記,則確定所述訪問請求的報文狀態(tài)是“未完成”。
28.根據(jù)權(quán)利要求26或27所述的裝置,其特征在于,所述監(jiān)控單元還用于,在所述交互單元接收到所述處理器發(fā)送的所述訪問請求之后,生成所述訪問請求的模擬響應(yīng)消息,并緩存所述訪問請求的模擬響應(yīng)消息; 貝U,所述獲取單元具體用于獲取所述監(jiān)控單元緩存的所述訪問請求的模擬響應(yīng)消息。
29.根據(jù)權(quán)利要求25-28任一項所述的裝置,其特征在于,所述訪問請求的模擬響應(yīng)消息包括第一類型模擬響應(yīng)消息或第二類型模擬響應(yīng)消息,所述第一類型模擬響應(yīng)消息指示所述PCIe端點設(shè)備不支持所述訪問請求,所述第二類型模擬響應(yīng)消息指示所述PCIe端點設(shè)備異常; 其中,所述第一類型模擬響應(yīng)消息或所述第二類型模擬響應(yīng)消息用于指示所述處理器中止對所述PCIe端點設(shè)備的后續(xù)訪問。
30.根據(jù)權(quán)利要求25-29任一項所述的裝置,其特征在于,所述預設(shè)的觸發(fā)條件為所述PCIe端點設(shè)備發(fā)生異常離線; 所述監(jiān)控單元還用于:監(jiān)測所述PCIe端點設(shè)備是否發(fā)生異常離線,在確定所述PCIe端點設(shè)備發(fā)生異常離線時,通知所述確定單元執(zhí)行所述確定所述訪問請求的報文狀態(tài)的步驟。
31.根據(jù)權(quán)利要求30所述的裝置,其特征在于,所述監(jiān)控單元具體用于:確定所述交互單元是否接收到所述PCIe端點設(shè)備的異常離線通知,如果是,確定所述PCIe端點設(shè)備發(fā)生異常離線。
32.根據(jù)權(quán)利要求31所述的裝置,其特征在于,所述交互單元還用于:` 向所述處理器轉(zhuǎn)發(fā)所述PCIe端點設(shè)備的異常離線通知,以使得所述處理器根據(jù)接收到的所述PCIe端點設(shè)備的異常離線通知,將所述PCIe端點設(shè)備對應(yīng)的物理設(shè)備進行下電操作。
33.根據(jù)權(quán)利要求25-29任一項所述的裝置,其特征在于,所述預設(shè)的觸發(fā)條件為所述訪問請求的計時器超時; 所述監(jiān)控單元還用于: 針對所述處理器發(fā)送的所述訪問請求啟動計時器進行計時,在所述計時器超時后,通知所述確定單元執(zhí)行所述確定所述訪問請求的報文狀態(tài)的步驟。
34.根據(jù)權(quán)利要求33所述的裝置,其特征在于,所述監(jiān)控單元還用于: 確定所述PCIe端點設(shè)備的狀態(tài),若確定所述PCIe端點設(shè)備的狀態(tài)是異常離線,則通知所述交互單元向所述處理器發(fā)送所述PCIe端點設(shè)備的異常離線通知,以使得所述處理器根據(jù)接收到的所述PCIe端點設(shè)備的異常離線通知,將所述PCIe端點設(shè)備對應(yīng)的物理設(shè)備進行下電操作。
35.根據(jù)權(quán)利要求25所述的方法,其特征在于,所述處理器向所述PCIe端點設(shè)備發(fā)送多條訪問請求;所述監(jiān)控單元具體用于對所述多條訪問請求的每條訪問請求的報文狀態(tài)進行監(jiān)控; 所述確定單元具體用于在預設(shè)的觸發(fā)條件達到時,統(tǒng)計所述多條訪問請求中未接收到響應(yīng)消息的訪問請求的數(shù)量,確定所述數(shù)量是否超過第一門限值; 所述獲取單元具體用于在所述數(shù)量超過第一門限值時,獲取所述訪問請求的模擬響應(yīng)消息。
36.一種計算機,其特征在于,包括:處理器、存儲器、總線和通信接口 ; 所述存儲器用于存儲計算機執(zhí)行指令,所述處理器與所述存儲器通過所述總線連接,當所述計算機運行時,所述處理器執(zhí)行所述存儲器存儲的所述計算機執(zhí)行指令,以使所述計算機執(zhí)行權(quán)利要求14-24任意一項所述的方法。
37.一種計算機可讀介質(zhì),其特征在于,包括計算機執(zhí)行指令,當計算機的處理器執(zhí)行所述計算機執(zhí)行指令時 ,所述計算機執(zhí)行權(quán)利要求14-24任意一項所述的方法。
【文檔編號】G06F11/30GK103797469SQ201380002624
【公開日】2014年5月14日 申請日期:2013年5月20日 優(yōu)先權(quán)日:2013年5月20日
【發(fā)明者】葛小宇 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1