輸入/輸出錯誤遏制事件后的恢復(fù)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明的實施例大體上涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,并特別地涉及輸入/輸出錯誤遏 制(error-containment)事件后的恢復(fù)。
【背景技術(shù)】
[0002] 在此提供的背景說明是為了大概介紹本公開的背景。在本【背景技術(shù)】部分所描述的 范圍內(nèi),當(dāng)前指定的發(fā)明人的工作,以及在提交文件時可能還不足以作為現(xiàn)有技術(shù)的說明 書的各方面,未明顯地或隱含地被認(rèn)定為是相對于本公開的現(xiàn)有技術(shù)。除非在此表明,本部 分所描述的方法并非本公開中權(quán)利要求的現(xiàn)有技術(shù)并且不因包括在該部分而被認(rèn)定為現(xiàn) 有技術(shù)。
[0003] 錯誤遏制邏輯,例如配置有美國加州圣克拉拉的Intel?公司所開發(fā)的實時錯誤恢 復(fù)("LER")技術(shù)的硬件或固件,可用于遏制發(fā)生在輸入/輸出("I/O")設(shè)備上的錯誤, 所述輸入/輸出設(shè)備使用各種技術(shù)(例如快速外圍組件互連("PCIe"))可操作地被耦合。 LER使I/O設(shè)備/端口在端口上的錯誤被遏制后能夠恢復(fù)。然而,仍然存在系統(tǒng)故障,例如 在操作系統(tǒng)("0S")或虛擬機(jī)監(jiān)視器("VMM")層,因為錯誤遏制邏輯和0S/VMM之間協(xié)作 不足或沒有協(xié)作。
【附圖說明】
[0004] 通過以下詳細(xì)說明并結(jié)合附圖,實施例將容易理解。為了便于說明,相似的參考數(shù) 字代表相似的結(jié)構(gòu)元素。實施例在附圖中的各圖中通過示例方式而非限制的方式進(jìn)行說 明。
[0005] 圖1示意性地示出了根據(jù)各種實施例用本公開的教導(dǎo)的可適用部分配置的示例 計算設(shè)備。
[0006] 圖2示意性地描述了根據(jù)各種實施例的各種組件之間的示例過程流。
[0007] 圖3示意性地描述了根據(jù)各種實施例可由平臺實體例如中斷處理器實現(xiàn)的示例 方法。
[0008] 圖4示意性地描述了根據(jù)各種實施例可由操作系統(tǒng)或虛擬機(jī)監(jiān)視器實現(xiàn)的示例 方法。
[0009] 圖5示意性地描述了根據(jù)各種實施例的、所公開的方法和計算機(jī)可讀介質(zhì)可以在 其上實現(xiàn)的示例計算設(shè)備。
【具體實施方式】
[0010] 在下面的詳細(xì)說明中,將參考附圖,所述附圖形成此文的一部分,其中相似的附圖 標(biāo)記始終代表相似的部件,并且附圖通過可能被實踐的實施例的舉例來呈現(xiàn)。應(yīng)當(dāng)理解,可 以使用其他實施例并且可以進(jìn)行結(jié)構(gòu)或邏輯上的改變而不背離本公開的范圍。因此,以下 詳細(xì)說明并非為了限制,并且實施例的范圍由附加的權(quán)利要求和其等同者來定義。
[0011] 各種操作可以以最有助于理解所主張的主題的方式被描述為多個依次分離的動 作或操作。然而,描述的次序不應(yīng)被解釋為暗示這些操作必須在次序上相關(guān)。特別地,這些 操作可以不按照所呈現(xiàn)的次序執(zhí)行。所描述的操作可以按照不同于所描述的實施例的次序 來執(zhí)行??梢詧?zhí)行各種附加操作和/或所描述的操作在其他實施例中可以被省略。
[0012] 為了本公開的目的,短語"A和/或B"意思是⑷、⑶或(A和B)。為了本公開 的目的,短語"A,B,和/或C"意思是(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和 C) 〇
[0013] 說明書可使用短語"在一個實施例中"或"在實施例中",均可指代相同或不同實施 例中的一個或多個。并且,本公開實施例中所使用的術(shù)語"包含" "包括""具有"和類似術(shù) 語,其含義相同。
[0014]在此使用的術(shù)語"模塊"可指代或包括專用集成電路("ASIC")、電子電路、執(zhí)行 一個或多個軟件或固件程序的處理器(共享的、專用的或群組的)和/或存儲器(共享的、 專用的或群組的)、組合邏輯電路、和/或提供所述功能性的其他合適的組件,或者作為上 述各組件的一部分。
[0015] 圖1示意性地描述了可在用本公開的教導(dǎo)的可適用部分配置的計算設(shè)備100上實 現(xiàn)的各種組件。圖1中標(biāo)記為I-N的多個輸入/輸出("I/O")設(shè)備102,可連接至多個 I/O端口 103。多個I/O設(shè)備102可包括各種類型的I/O設(shè)備,包括但不限于鍵盤、鼠標(biāo)、觸 摸感應(yīng)屏、顯示器、揚(yáng)聲器、打印機(jī)、傳真、存儲設(shè)備(例如,硬盤驅(qū)動器,固態(tài)驅(qū)動器)、掃描 儀、有線和無線通信接口例如天線等。在各種實施例中,I/O端口 103可以是各種類型的端 口,例如快速外圍組件互連("PCIe")根端口。
[0016]每個I/O端口 103可包括錯誤遏制邏輯104 (在圖1中用"E-CLOGIC"表示)。錯 誤遏制邏輯104可以是被配置為檢測和遏制I/O端口 103和/或I/O設(shè)備102上的錯誤以 防止錯誤傳播的硬件、軟件(例如固件中的指令)、或二者的任意組合。在各種實施例中,錯 誤遏制邏輯104可包括美國加州圣克拉拉的Intel?公司所開發(fā)的實時錯誤恢復(fù)("LER") 技術(shù)。在各種實施例中,當(dāng)檢測到錯誤時,用于經(jīng)歷該錯誤的I/O端口 103的錯誤遏制狀態(tài) 位(例如,LER事件狀態(tài)位)可被設(shè)置以指示已經(jīng)觸發(fā)了錯誤遏制模式。在各種實施例中, 在發(fā)生錯誤遏制事件時,I/O端口 103可強(qiáng)制通向I/O設(shè)備102的鏈路為LinkDown狀態(tài), 在該狀態(tài)中輸出請求可被中斷。在各種實施例中,在LinkDown狀態(tài)下可允許輸入數(shù)據(jù)包正 常耗盡。在各種實施例中,在清除錯誤遏制事件時,I/O端口 103的錯誤遏制狀態(tài)位可以被 清除。可允許鏈路進(jìn)入LinkUp狀態(tài),在該狀態(tài)下允許事務(wù)正常傳播。
[0017] 計算設(shè)備100可包括控制各種低級功能的各種"平臺實體"。平臺實體可以用硬 件、軟件(例如微控制器固件)或二者的任意組合來實現(xiàn)。對于某些實施例,它們可包括但 不限于基板管理控制器("BMC") 106和/或中斷處理器108。在各種實施例中,BMC106或 其等同者可以是使用傳感器和其他類似技術(shù)來監(jiān)視計算設(shè)備100的物理狀態(tài)的專用服務(wù) 處理器。
[0018]中斷處理器108可被配置為響應(yīng)于硬件和/或軟件中斷來執(zhí)行。中斷處理器108 可取決于觸發(fā)其執(zhí)行的中斷的特性執(zhí)行各種例程。例如,如果用戶(未示出)按壓鍵盤(未 示出)上的鍵或與觸摸感應(yīng)屏(未示出)交互,硬件中斷可從相應(yīng)的鍵盤或觸摸感應(yīng)屏控 制器發(fā)送至中斷處理器108,中斷處理器108繼而向一個或多個其他組件(例如,字處理應(yīng) 用)提供輸入條目的指示。
[0019] 計算設(shè)備100也可包括存儲器110。存儲器110可以是各種類型的存儲器,例如動 態(tài)隨機(jī)存取存儲器("DRAM")。在各種實施例中,存儲器110可包括執(zhí)行操作系統(tǒng)("OS") 和/或虛擬機(jī)監(jiān)視器("VMM") 112的指令。存儲器110可進(jìn)一步包括用于執(zhí)行在圖1中標(biāo) 記為1-N、可向多個I/O設(shè)備102提供軟件接口的多個驅(qū)動器114的指令。盡管圖1中未示 出,存儲器110也可包括用于執(zhí)行任何數(shù)目的其他計算機(jī)程序(例如,諸如字處理器、媒體 播放器、web(網(wǎng)絡(luò))服務(wù)等應(yīng)用)的指令。
[0020] 如在【背景技術(shù)】中所述,當(dāng)I/O錯誤導(dǎo)致錯誤遏制事件被錯誤遏制邏輯104發(fā)信號 通知(signal)時,錯誤遏制邏輯104和計算設(shè)備100的較高層的組件(例如,OS/VMM112) 可能無法協(xié)作。這可導(dǎo)致計算機(jī)設(shè)備100故障,即使I/O錯誤已經(jīng)被遏制。因此,可以實現(xiàn) 在此描述的各種技術(shù)從而防止發(fā)生I/O錯誤遏制事件后計算設(shè)備100在OS/VMM層發(fā)生故 障。這可以提高在任務(wù)關(guān)鍵環(huán)境下的可靠性、可用性和可服務(wù)性("RAS")。
[0021] 在各種實施例中,錯誤遏制邏輯104可向平臺實體例如中斷處理器108通知I/O 錯誤遏制事件。平臺實體繼而向OS/VMM112通知I/O錯誤遏制事件。例如,在各種實施 例中,中斷處理器108可使用平臺實體和OS/VMM112之間的通信通道,例如平臺通信通道 ("PCC")116,向OS/VMM112通知I/O錯誤遏制事件。PCC116可以是平臺實體例如BMC 106、錯誤遏制邏輯104和/或中斷處理器108可用來與計算設(shè)備100的更高層實體(例如 OS/VMM112)進(jìn)行通信的機(jī)制。在各種實施例中,PCC116可定義可實現(xiàn)為一個或多個