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