欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

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

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

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

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