專利名稱:利用用戶上下文信息檢測故障狀況并隨后恢復的方法和設備的制作方法
技術領域:
本發(fā)明總體上涉及檢測故障狀況,更具體而言涉及利用協(xié)處理單元檢 測處理單元中的故障狀況,以及響應于其進一步利用該協(xié)處理單元使用存 儲的故障前用戶上下文信息來恢復處理單元。
背景技術:
計算系統(tǒng)通常由集成電路(ic)和各種其他電子組件等構成,所述電 子組件例如是但不限于狀態(tài)機、專用集成電路(ASIC)、邏輯門和離散邏輯 器件。像大部分電子器件那樣,這些組件對靜電放電以及其他由于靜電和/ 或電磁事件而傳導電荷(即放電)的事件(統(tǒng)稱為放電事件)很敏感。如 果足夠強烈,這種放電事件會使組件進入不正確、不良或錯誤狀態(tài),由此 使元件至少暫時無法工作。換言之發(fā)生了故障。盡管一些系統(tǒng)設計師已經(jīng) 提供了針對放電事件保護或隔離系統(tǒng)組件的器件,廠家不使用充分的屏蔽 或采用低效的保護機制來確保防范這種事件也并非少見。在一些情況下, 制造設計決策可能由裝置的功能、裝置的尺寸或物理特性或簡單的經(jīng)濟情 況來支配。在任何情況下,計算系統(tǒng)會受到且將繼續(xù)受到各種放電事件的 影響,這種放電事件將導致故障(即無法工作的狀況)。
移動裝置對放電事件尤其敏感,并且由于它們的使用性質,可能會發(fā) 生故障。例如,移動裝置根據(jù)定義是小巧且便攜的。用戶能夠手持裝置移 動很大距離且跨越各種環(huán)境。因此,用戶的移動可能會對用戶身體或衣服 上的電荷產(chǎn)生加強作用。在接觸或接近移動裝置時,用戶可能會充當導線, 將電荷轉移到移動裝置并可以使其無法工作。然而還發(fā)現(xiàn),非移動計算機 系統(tǒng),例如臺式計算機、機頂盒或其他計算系統(tǒng)也可能對放電事件敏感, 且在類似的操作者將電荷傳導到這種系統(tǒng)的情況下可能會發(fā)生故障。
如本領域的普通技術人員所公知的,諸如移動電話或其他手持裝置的
計算系統(tǒng)可以包括兩個處理單元,中央處理單元(CPU)和圖形處理單元
(GPU)。 CPU經(jīng)由北橋、南橋、任何適當?shù)囊桓蚨喔偩€或任何其組合耦 合到GPU,以傳遞繪圖命令和其他操作命令或指令,隨后加以執(zhí)行。GPU可 以與多個寄存器、幀緩沖器和圖形處理器相關聯(lián)。類似地,CPU可以與多個 個體組件相關聯(lián),且耦合到用于存儲可執(zhí)行指令和工作數(shù)據(jù)等的系統(tǒng)存儲 器。在一個實施例中,可以在系統(tǒng)存儲器中存儲各種驅動程序和其他軟件 模塊以在CPU中執(zhí)行。
大部分移動裝置的CPU通常是被屏蔽的以防其及其相關電子組件受到 放電事件影響。然而,由于和制造和設計相關的設計決策多種多樣,移動 裝置的GPU得不到充分保護是常見情況。因此,己經(jīng)發(fā)現(xiàn)在發(fā)生放電事件 時,GPU及其相關電子組件中的至少一個或多個處于不良或不工作狀態(tài)。例 如,發(fā)現(xiàn)GPU寄存器尤其易發(fā)生故障,且需要重啟來繼續(xù)工作。
盡管現(xiàn)有技術中有解決方案來撿測與GPU相關的故障狀況(即指示發(fā) 生故障的任何狀況)并將GPU恢復到可工作狀態(tài),但沒有使處理單元恢復 到已知的無縫或接近無縫操作的可工作狀態(tài)的已知方案。例如,已知利用 CPU執(zhí)行的驅動程序監(jiān)測GPU的某些寄存器來檢測放電事件和隨后的故障狀 況。已知的現(xiàn)有技術通常通過重新啟動故障影響的GPU和GPU驅動程序來 工作。然而,重新啟動GPU會丟失在GPU驅動程序正常工作期向獲得的用 戶上下文信息。于是,CPU的操作系統(tǒng)以及發(fā)出由CPU和GPU之一執(zhí)行的命 令的其他客戶端/應用需要在執(zhí)行之前產(chǎn)生新的用戶上下文信息。通常,這 需要用戶啟動此前在檢測到故障狀況之前運行的軟件模塊/驅動程序的另 一實例。本領域的普通技術人員和計算裝置的一般用戶都理解這會導致數(shù) 據(jù)丟失,且用戶對它們的計算裝置不滿意。
因此,需要一種在計算系統(tǒng)中使用的故障檢測和恢復方法和設備,其 中,協(xié)處理單元上運行的驅動程序、客戶端和其他應用不受與處理單元相 關的故障狀況影響。另一種需求是恢復計算系統(tǒng),使其受影響部分返回到 已知的可用狀態(tài)。因此,操作系統(tǒng)或使用該處理單元的客戶端/應用都不會 受到放電事件的影響。相反,它們?nèi)匀焕^續(xù)工作,只給用戶對計算系統(tǒng)的 體驗帶來最小的影響。如上所述,這種方法和設備在檢測出故障狀況之后 提供了一種接近無縫的恢復方法。
根據(jù)本發(fā)明的第一方面,提供了一種方法,包括
在檢測到與處理單元相關聯(lián)的故障狀況時,利用所存儲的用戶上下文 信息恢復所述處理單元。
根據(jù)本發(fā)明的第二方面,提供了一種包括通過至少一個如下操作檢測 與處理單元相關聯(lián)的故障狀況的方法
由協(xié)處理單元檢測與所述協(xié)處理單元相關聯(lián)的^f入己接收到標識故障
狀況的信息;
由所述協(xié)處理單元基于監(jiān)測與正常運行中的處理單元相關聯(lián)的至少一
個存儲器位置(memory location)來檢測初始故障狀況,并由所述協(xié)處理單 元基于確定與所述處理單元相關聯(lián)的至少另一個存儲器位置包含指示故障 狀況的信息來驗證所述初始故障狀況為故障狀況;
由所述協(xié)處理單元確定與所述處理單元相關聯(lián)的至少一個處理單元標 識存儲器位置包含不正確的處理單元標識信息;以及
由所述協(xié)處理單元確定與所述處理單元相關聯(lián)的至少一個像素時鐘存 儲器位置包含不正確的像素時鐘信息;以及
在檢測到故障狀況之后,至少通過利用初始化例程將處理單元的至少 一個存儲器位置重新初始化到工作狀態(tài)來利用所存儲的用戶上下文信息恢 復所述處理單元。
根據(jù)本發(fā)明的第三方面,提供了一種設備,包括
用于在檢測到與所述處理單元相關聯(lián)的故障狀況時利用所存儲的用戶 上下文信息恢復所述處理單元的邏輯。
根據(jù)本發(fā)明的第四方面,提供了一種設備,包括 處理單元;以及
可運行地耦合到所述處理單元和包含所存儲的指令的存儲器的協(xié)處理 單元,使得當所述協(xié)處理單元執(zhí)行所述指令時,使所述協(xié)處理單元
在檢測到與處理單元相關聯(lián)的故障狀況時,利用所存儲的用戶上下文 信息恢復所述處理單元。
根據(jù)本發(fā)明的第五方面,提供了一種包括所存儲的指令的存儲器,在
執(zhí)行所述指令時使協(xié)處理單元
在檢測到與處理單元相關聯(lián)的故障狀況時,利用所存儲的用戶上下文 信息恢復所述處理單元。
在結合附圖考慮以下描述時,本發(fā)明將更容易得到理解,在附圖中, 類似的附圖標記表示類似元件
圖1為方框圖,示出了根據(jù)本公開的一個實施例的檢測與處理單元相 關聯(lián)的故障狀況并恢復處理單元的系統(tǒng)的一個范例;
圖2為流程圖,示出了根據(jù)本公開一個實施例的用于檢測故障狀況和 恢復處理單元的方法的一個范例;
圖3為流程圖,示出了根據(jù)圖2的方法檢測與處理單元相關的故障狀 況的一個范例;
圖4為流程圖的第一部分,示出了在圖2的方法中使用的檢測與處理 單元相關的故障狀況的方法的另一個范例; 圖5為圖4的方法的后部分;
圖6為流程圖,示出了根據(jù)圖2的方法的利用所存儲的用戶上下文信 息恢復處理單元的一個范例;以及
圖7為方框圖,示出了根據(jù)本公開的第二實施例的檢測與處理單元相 關聯(lián)的故障狀況并隨后恢復處理單元的系統(tǒng)的第二范例。
具體實施例方式
總地講來,本公開提供了一種包括處于計算環(huán)境中處理單元和協(xié)處理 單元的系統(tǒng),其中處理單元用于檢測與協(xié)處理單元相關聯(lián)的故障狀況,且 在檢測之后利用所存儲的用戶上下文信息恢復處理單元。在正常工作期間, 由協(xié)處理單元存儲用戶上下文信息,其中用戶上下文信息例如包括關于處 理單元及其相關組件和器件是處于"開啟"或"關斷"狀況的狀態(tài)信息, 用于支持處理單元及其相關組件和器件的使用率和功能性的其他配置信 息。此外,用戶上下文信息可以包括表示在執(zhí)行特定操作命令時要使用的 資源的信息、資源的位置信息、以及與處理單元存儲器位置相關的其他信
息。當處理單元的至少一部分由于諸如靜電放電的放電事件而變得不工作 時,檢測到與處理單元相關的故障狀況。協(xié)處理單元可以通過在檢查與處 理單元相關聯(lián)的至少一個存儲器位置之后識別出表示故障狀況的信息來檢 測故障狀況。
在檢測時,協(xié)處理單元利用所存儲的用戶上下文信息恢復處理單元, 由此使協(xié)處理單元及其相關組件返回到已知的可工作狀態(tài)而無需重啟與處 理單元相關聯(lián)的任何相關驅動程序,或無需重啟運行于處理單元上且與協(xié) 處理單元交互的任何其他客戶端??梢杂糜脩羯舷挛男畔韺⑻幚韱卧?、 與處理單元相關聯(lián)的顯示器以及與處理單元相關聯(lián)的一個或多個電路之一 的當前(即故障后檢測的)狀態(tài)信息與同一裝置或電路在故障前檢測狀態(tài) 信息進行匹配。將故障后的狀態(tài)信息與故障前的狀態(tài)信息進行匹配可以包 括在發(fā)出要使用至少一個存儲器位置的操作命令時向至少一個存儲器位置 或寄存器寫入所存儲用戶上下文信息的必要部分。
在一個實施例中,協(xié)處理單元包括用于實施當前披露的方法的驅動邏 輯等。在另一個實施例中,該協(xié)處理單元能夠執(zhí)行駐留在存儲器中的軟件 模塊,其中該模塊含有被存儲的指令,該指令在被執(zhí)行時實施等價的方法。
在各種優(yōu)點之中,本公開提供了一種用于檢測與處理單元相關聯(lián)的故 障狀況并利用用戶上下文信息恢復處理單元的方法和設備。通過存儲用戶 上下文信息,與處理單元相關聯(lián)的或與處理單元交互的驅動程序以及其他 客戶端和應用無需被重啟或重新初始化。因此,該恢復方法與已知的現(xiàn)有 技術方案相比,在其效率、速度和功能性方面提供了一種接近無縫的過程。
圖1為方框圖,示出了根據(jù)本公開一個實施例的系統(tǒng)100的一個范例, 其至少包括處理單元102、協(xié)處理單元104和存儲器106。發(fā)明人構思的是, 系統(tǒng)100可以與一個或多個大型計算機系統(tǒng)(未示出)相關聯(lián)。系統(tǒng)100 還可以包括至少一個直接或間接耦合到處理單元的顯示裝置108,使得顯示 裝置108能夠從處理單元102接收控制信息和顯示信息以隨后進行顯示。 系統(tǒng)100還可以包括至少一個視頻輸入裝置110,例如攝像機或其他視頻信 息源。該視頻輸入裝置110利用任何適當?shù)难b置直接或間接耦合到處理單 元102和協(xié)處理單元104,由此可以在處理單元102和協(xié)處理單元104之間 傳輸控制和其他視頻信息。利用北橋、南橋、至少一個總線或任何適當組
合將處理單元102直接或間接地耦合到協(xié)處理單元104,以實現(xiàn)其間的充分 通信。類似地,通過至少一個總線或任何其他適當?shù)臄?shù)據(jù)傳輸結構將協(xié)處 理單元104直接或間接地耦合到存儲器106,以實現(xiàn)充分通信。
在一個實施例中,處理單元102可以是系統(tǒng)100的圖形處理單元(GPU) 或任何其他適當?shù)奶幚韱卧?,其中利用一個或多個集成電路(IC)、離散邏 輯器件、狀態(tài)機、專用集成電路(ASIC)或任何其他適當結構來制造或構 成處理單元102。發(fā)明人進一步構思,可以在系統(tǒng)100中使用的一個或多個 物理卡上設置包括處理單元102的組件。處理單元102包括耦合到幀緩沖 器114的處理器112以及也耦合到該處理器112的至少一個處理單元存儲 器位置116。發(fā)明人構思,處理器112可以包括至少一個處理裝置,例如但 不限于在圖形處理單元或任何其他處理單元中常見的任何適當?shù)姆植际交?非分布式處理或微處理裝置。在一個實施例中,處理器112為能夠執(zhí)行在 顯示裝置108上進行顯示的繪圖命令的圖形處理器或渲染引擎。本發(fā)明還 類似地構思,幀緩沖器114以及與處理單元116相關聯(lián)的至少一個存儲器 位置可以是任何適當?shù)拇鎯ζ骷?,例如但不限于易失性和非易失性存儲器?隨機存取存儲器(例如包括RAM、 DRAM、 SRAM)、基于ROM的存儲器(例如 包括R0M、 PR0M、 EPR0M、 EEPR0M)和閃速存儲器。在一個實施例中,與處 理單元116相關聯(lián)的至少一個存儲器位置包括多個用于處理器112的專用 通用寄存器。
協(xié)處理單元104可以是系統(tǒng)100的中央處理單元(CPU)或任何其他適 當?shù)奶幚韱卧f(xié)處理單元104至少包括操作系統(tǒng)(0S)邏輯118和驅動 程序邏輯120,其中驅動程序邏輯120對應于與處理單元102相關聯(lián)的裝置 驅動程序。例如,驅動程序邏輯120可以對應于GPU驅動程序。協(xié)處理單 元104的個體組件,例如OS邏輯118和驅動程序邏輯120可以包括用于向 外傳播與驅動程序對應的操作系統(tǒng)和裝置/處理單元(例如處理單元102) 相關的各種邏輯功能的任何適當結構。例如,可以利用例如一個或多個集 成電路(IC)、離散邏輯器件、狀態(tài)機、專用集成電路(ASIC)或任何其他 適當?shù)难b置來實現(xiàn)OS邏輯118和驅動程序邏輯120。發(fā)明人構思,可以在 系統(tǒng)100中使用的一個或多個物理卡上設置包括協(xié)處理單元104的組件。
在一個實施例中,驅動程序邏輯120可以包括能夠存儲與處理單元102
相關聯(lián)的用戶上下文信息的處理單元用戶上下文信息存儲邏輯122、能夠檢 測與處理單元102相關聯(lián)的故障狀況的處理單元和故障檢測邏輯124,以及 能夠利用所存儲的用戶上下文信息恢復處理單元102的利用用戶上下文信 息恢復處理單元的邏輯126。 OS邏輯118和驅動程序邏輯120彼此耦合, 而通過任何適當裝置將個體邏輯組件122-126類似地彼此耦合,以提供其 間的通信以及上述系統(tǒng)組件102、 104、 106、 108、 110之間的通信。為了 進行例示,將邏輯組件122-126描述成驅動程序邏輯126之內(nèi)的三個適當 彼此耦合的獨立邏輯組件,以實現(xiàn)必要的數(shù)據(jù)和信息流動。然而,發(fā)明人 構思,可以組合邏輯組件122-126以形成單個邏輯組件或任何數(shù)量的邏輯 組件而不脫離本公開的精神或范圍。
存儲器106可以是分布式或非分布式存儲器或任何其他適當形式的存 儲器,包括但不限于易失性和非易失性存儲器、隨機存取存儲器(例如包 括RAM、 DR顏、SRAM)、基于ROM的存儲器(例如包括R0M、 PR0M、 EPR0M、 EEPR0M)和閃速存儲器。發(fā)明人還進一步構思,存儲器106可以對應于任 何能夠至少與協(xié)處理單元104交互的適當外部存儲器裝置。存儲器106能 夠存儲如用戶上下文信息存儲器128所示的用戶上下文信息,以及實現(xiàn)系 統(tǒng)100的功能所需的其他類型的信息。在一個實施例中,存儲器106對應 于系統(tǒng)存儲器。
如本領域的普通技術人員所知,協(xié)處理單元104用于向處理單元102 發(fā)送繪圖命令和其他操作命令等。各種操作命令可以源自諸如協(xié)處理單元 104的操作系統(tǒng)或協(xié)處理單元104上運行的任何數(shù)量的客戶端或應用的源。 操作命令可以包括處理單元102用于執(zhí)行命令中所請求的操作的用戶上下 文信息等信息。用于每個操作命令的用戶上下文信息通常是至少由驅動程 序邏輯126創(chuàng)建的且可以包含(例如)表示在執(zhí)行操作命令時要使用的資 源(例如存儲器中存儲的紋理)的信息、該資源位于何處(例如地址或指 向該地址的指針)和其他與處理單元存儲器位置116相關的信息(例如在 執(zhí)行特定操作命令時使用的存儲器位置數(shù)據(jù))。如通常所理解的,用戶上下 文信息可以對應于與協(xié)處理單元104上運行的特定客戶端或應用相關聯(lián)的 特定用戶上下文。通常,在正常運行期間由驅動程序邏輯126恢復用戶上 下文信息并保持在存儲器106中,以在稍后的與操作命令的同一來源相關
聯(lián)的操作命令中使用。在一個實施例中,除了與存儲器106中用戶上下文
信息的存儲、維護和檢索相關的其他功能之外,處理單元用戶上下文信息
存儲邏輯122執(zhí)行該功能。
如上所述,諸如系統(tǒng)100之類的許多系統(tǒng)包括針對放電事件的對于協(xié) 處理單元104的充分屏蔽和保護,而對處理單元102則忽略或提供低級別 的保護。因此,在放電事件中,系統(tǒng)100的至少一部分(例如協(xié)處理單元 104)安全地吸收該沖擊并繼續(xù)無誤差的工作。然而,在很多放電事件中, 處理單元102和一個或多個處理單元存儲器位置116進入不正確、不良或 錯誤狀態(tài),使得處理單元102的至少一部分無法工作。
圖2為流程圖,示出了用于檢測故障并隨后恢復處理單元的方法的一 個范例。該方法開始于方框206,其中,在檢測到故障狀況時,利用所存儲 用戶上下文信息恢復處理單元。在一個范例中,這可以對應于利用圖1的 使用用戶上下文信息的恢復處理單元的邏輯126來將處理單元102恢復到 已知的可工作狀態(tài)。本質上,方框206的方法包含如虛線方框202和204 所示的兩個其他方法。在方框202中,在處理單元正常運行期間存儲用戶 上下文信息。在一個范例中,可以利用與圖1所示的協(xié)處理單元104的驅 動程序邏輯120相關的處理單元用戶上下文信息存儲邏輯122實現(xiàn)方框202 中枚舉的方法的特定部分。在處理單元102正常運行期間,處理單元用戶 上下文信息存儲邏輯122存儲用于由處理單元102執(zhí)行命令操作的用戶上 下文信息。返回到圖2的方法,在方框204中,檢測出與處理單元相關聯(lián) 的故障狀況。出于示例的目的,可以由圖1的處理單元故障檢測邏輯124 執(zhí)行故障狀況檢測。最后,如方框208中所示,圖2的方法可以包括在檢 測到故障狀況時經(jīng)由初始化序列對顯示器進行重新初始化。根據(jù)圖1的系 統(tǒng)100,在一個范例中,可以通過從處理單元102向顯示裝置108發(fā)送適當 的用于重新初始化的適當?shù)目刂菩畔韺崿F(xiàn)這點。在完成時,該方法結束。
圖3為流程圖,示出了如圖2的方框204所示檢測與處理單元相關聯(lián) 的故障狀況的一個范例。如圖所示,該方法可以包括如方法方框302-308 所示的至少四個不同例程中的一個或多個。在一種情況下,如方框302所 示,通過利用協(xié)處理單元檢測與協(xié)處理單元相關聯(lián)的輸入已接收到標識故 障狀況的信息來檢測故障狀況。在一個范例中,這可以對應于利用圖1的
協(xié)處理單元104,更具體而言利用與協(xié)處理單元的處理器(未示出)相關聯(lián) 的通用輸入/輸出(GPIO)管腳或端口來檢測標識故障狀況的信息。在一個 實施例中,GPIO管腳可以耦合到諸如圖1的顯示裝置108的顯示器,從而 被設計成尤其容易受放電事件影響且隨后出現(xiàn)故障。例如,在發(fā)生放電事 件時,圖1所示的系統(tǒng)100可能會從用戶或任何其他物體接收到轉移的電 荷,由此經(jīng)由顯示裝置108在GPI0管腳處接收到轉移的帶電粒子。在一個 實施例中,GPIO管腳可以看到切換的狀態(tài),或者表示故障狀況的任何其他 信號或信息。
圖3的方法還可以包括由協(xié)處理單元基于監(jiān)測與正常運行的處理單元 相關聯(lián)的至少一個存儲器位置來檢測初始故障狀況,并基于確定與處理單 元相關聯(lián)的另一個存儲器位置包含指示故障狀況的信息來驗證該初始故障 狀況為故障狀況,如方框304所示。出于示例的目的,該可選項可以對應 于利用協(xié)處理單元104,更具體而言利用處理單元故障檢測邏輯124來監(jiān)測 與處理單元116相關聯(lián)的至少一個存儲器位置的至少一個特定的操作命令 存儲器位置。在一個范例中,這可以對應于監(jiān)測與處理單元102相關聯(lián)的 已知寄存器。在處理單元102執(zhí)行操作命令時,與處理單元116相關聯(lián)的 至少一個存儲器位置的至少一個特定的操作命令存儲器位置通常會接收和 存儲反映操作完成的新信息等。在正確的存儲器位置未接收到指示完成的 信息、未保存在其中或寫入其中時,處理單元故障檢測邏輯124檢測初始 故障狀況。此時,處理單元故障檢測邏輯124將通過檢査與處理單元116 相關聯(lián)的至少另一個存儲器位置(例如,己知尤其易受放電事件影響且發(fā) 生故障的至少一個預定存儲器位置)來驗證該初始故障狀況為故障狀況。 這可能對應于檢查與"不成功"操作命令不相關的一個或多個存儲器位置 (即不用于執(zhí)行操作命令的存儲器位置)。如果處理單元故障檢測邏輯126 檢查的與處理單元116相關聯(lián)的至少另一個存儲器位置中所含的信息不正 確或不可讀、或者無效,處理單元故障檢測邏輯124斷定該初始故障狀況 為故障狀況。
或者,方框204的方法可以包括由協(xié)處理單元判斷與處理單元相關聯(lián) 的至少一個處理單元標識存儲器位置包含不正確的處理單元標識信息,如 方框306所示。在一個范例中,這可以包括利用處理單元故障檢測邏輯124來檢査被標識為處理單元標識存儲器位置的至少一個處理單元存儲器位置
116,其中所保持的處理單元標識信息用于和協(xié)處理單元104等通信。在至
少一個處理單元標識存儲器位置中所含的信息不正確、不可讀或無效的情
況下,檢測出故障狀況。最后,圖3的方法可以包括由協(xié)處理單元確定與 處理單元相關聯(lián)的至少一個像素時鐘存儲器位置包含不正確的像素時鐘信 息,如方框308所示。類似于方框306的方法(其中該方法包括由協(xié)處理 單元確定至少一個處理單元標識存儲器位置116包含不正確的信息),處理 單元故障檢測邏輯124可以類似地標識和檢查與圖1的處理單元存儲器位 置116相關聯(lián)的至少一個像素時鐘存儲器位置,以確定其中存儲的像素時 鐘信息是否正確。如果該信息不正確,則檢測出故障狀況。
圖4為流程圖,示出了根據(jù)圖2的方法檢測與處理單元相關聯(lián)的故障 狀況的另一個范例。通常,圖4的方法類似于圖3的方法。然而,圖4所 示的方法示出了根據(jù)圖2的方框204檢測故障狀況的更為動態(tài)的方法。例 如,圖4的方法可以被實現(xiàn)為一個或多個例程,其中將上述邏輯組件用于 實現(xiàn)該一個或多個例程。該方法開始于判斷方框402,其中,由協(xié)處理單元 判斷與協(xié)處理單元相關聯(lián)的輸入是否已收到標識故障狀況的信息。如果已 經(jīng)收到這種信息,該方法前進到根據(jù)圖2的方框206,在此利用所存儲用戶 上下文信息恢復處理單元。在一個實施例中,方框402可以由處理單元故 障檢測邏輯124加以實施并可以對應于特定的超時期間。例如,處理單元 故障檢測邏輯124可以在任何適當?shù)某瑫r期間(例如800ms)中"探聽"與 協(xié)處理單元相關聯(lián)的處理器(未示出)的GPIO管腳上的狀態(tài)改變或其他所 接收的信息,其中狀態(tài)改變或其他所接收的信息指示故障狀況。如果協(xié)處 理單元已經(jīng)收到了故障標識信息,則驗證有故障狀況。
或者,如果未接收到這種信息,該方法在判定方框404中繼續(xù)進行, 在此由協(xié)處理單元基于監(jiān)測與正常運行的處理單元相關聯(lián)的至少一個存儲 器位置來確定是否檢測出初始故障狀況。判斷方框404類似于方法方框304 的第一部分,且可以如上所述利用處理單元故障檢測邏輯124來執(zhí)行。在 一個實施例中,處理單元故障檢測邏輯124使用類似的超時期間(例如 800ms),使得如果在該超時期間之內(nèi)操作命令未使與處理單元116相關聯(lián) 的至少一個存儲器位置(例如寄存器)存儲表示完成操作命令的信息(例
如位),就可以確定存在初始故障狀況。然而,如果存儲了表示完成了操作 命令的信息,則可以確定不存在初始故障狀況。該確定的依據(jù)是導致"未 完成"操作命令的一個原因可能是放電事件。該確定是"初始的",僅僅因 為做出該確定本身并不表示上面定義的故障狀況。
如果未檢測出初始故障狀況,根據(jù)引用的首字母A,該方法前進到圖5 的判斷方框502。然而,如果判定檢測到初始故障狀況,那么該方法在判斷 方框406中繼續(xù)進行,在此通過涉及到協(xié)處理單元的驗證過程來確定該初 始故障狀況是否是故障狀況。判斷方框406基本類似于圖3的方法方框304 的第二部分,且類似地,基本由處理單元故障檢測邏輯124來執(zhí)行。如果 證實該初始故障狀況為故障狀況,該方法繼續(xù)到圖2的方框206,以恢復處 理單元?;蛘撸绻跏脊收蠣顩r不是故障狀況,根據(jù)首字母A,該方法前 進到圖5的判斷方框502。
在一個實施例中,可以在獨立于圖4和5的方框的剩余部分的連續(xù)運 行的例程中實現(xiàn)方框404和406,該處理單元檢測邏輯124可以設置失敗標 記,以指示該初始故障狀況為故障狀況。例如,該失敗標記可以對應于存 儲器106中的變量或任何其他適當存儲器位置(未示出)中的至少一位。 于是,方框404和406可以包括檢査適當?shù)拇鎯ζ魑恢?,看是否存在失?標記。
如上所述,圖5為圖4方法的第二部分并開始于判斷方框502,在此協(xié) 處理單元判斷與處理單元相關聯(lián)的至少一個像素時鐘是否含有不正確的像 素時鐘信息。如果該至少一個像素時鐘寄存器包含不正確的像素時鐘信息, 該方法前進到圖2的方框206?;蛘?,該方法返回到判斷方框402,以重新 初始化與圖2的方框204相關的例程??梢园凑丈衔尼槍Ψ椒ǚ娇?06和 308所述的方式實現(xiàn)判斷方框502和504。通過這種方式,本領域的普通技 術人員將認識到,圖1的處理單元故障檢測邏輯124可以利用協(xié)處理單元 104上連續(xù)執(zhí)行的一個或多個例程來確定是否檢測到與處理單元104相關聯(lián) 的故障狀況。
發(fā)明人構思,可以使用任何適當?shù)臋C制來觸發(fā)方框206的恢復方法。 例如,如果圖4和5中的任何判斷方框檢測到或確定有故障狀況,可以由 處理單元故障檢測邏輯124在存儲器106的適當位置設置類似于失敗標記
的故障標記,由此向利用用戶上下文信息恢復處理單元的邏輯126指示必
須要進行恢復?;蛘撸收蠘擞浛梢允侨魏纹渌m當?shù)拇鎯ζ魑恢?未示 出)中的至少一個位,以表示相同內(nèi)容。
圖6為流程圖,示出了根據(jù)圖2在檢測出故障狀況時恢復處理單元102 的方法的一個范例。該方法開始于方框602,在此在檢測出故障狀況時,禁 止向處理單元發(fā)出至少一個操作命令。出于說明的目的,這可以對應于利 用圖1所示的利用用戶上下文信息恢復處理單元的邏輯126來防止由任何 客戶端、應用或其他裝置向處理單元102發(fā)出至少一個命令。在將驅動程 序邏輯120用于執(zhí)行存儲器中存儲的指令的情況下(參見圖7,其中驅動程 序為軟件模塊),可以通過獲得所有相互排除的對象(互斥體)來實施該方 法,互斥體允許客戶端、應用和其他裝置訪問、讀取或寫入處理單元102。 本領域的普通技術人員將理解,操作系統(tǒng)可以使用一個或多個互斥對象來 提供對共享資源的訪問權限。例如,如果為一個過程、線程或應用分配了 互斥對象來訪問與處理單元102相關聯(lián)的共享資源,則其他過程、線程或 應用不能訪問該特定的共享資源。
該方法在方框604中繼續(xù),在此根據(jù)初始化例程將與處理單元相關聯(lián) 的至少一個存儲器位置重新初始化到工作狀態(tài)。在一個實施例中,方框604 所示的重新初始化方法可以包括向與處理單元相關聯(lián)的至少一個存儲器位 置寫入故障信息,然后向處理單元的至少一個存儲器位置寫入初始化信息。 出于例示的目的,這可以對應于使用利用用戶上下文信息恢復處理單元的 邏輯來切換與處理器112的已知復位管腳或端口相關聯(lián)的狀態(tài),并使用現(xiàn) 有技術中公知的任意數(shù)量的初始化例程來向與處理單元116相關聯(lián)的至少 一個存儲器位置寫入缺省值,由此復位處理單元102的處理器112。在這一 點上,本領域的普通技術人員可以發(fā)現(xiàn)該至少一個存儲器位置尚未處于可 工作狀態(tài)。于是,可以使用利用用戶上下文信息恢復處理單元的邏輯126 來根據(jù)初始化例程向與處理單元116相關聯(lián)的至少一個存儲器位置填充或 寫入初始化信息,由此使與處理單元116相關聯(lián)的至少一個存儲器位置進 入可工作狀態(tài)??梢园l(fā)現(xiàn),方法方框604的實施可以對應于在系統(tǒng)100啟 動期間使用的已建立的例程。
該方法在方框606繼續(xù),在此,使用所存儲用戶上下文信息來確定與
至少一個處理單元相關聯(lián)的故障前檢測狀態(tài)信息、與處理單元相關聯(lián)的一 個或多個顯示裝置、以及與處理單元相關聯(lián)的一個或多個電路。應該理解,
可以利用任何形式的技術來構造電路,因此,電路例如可以包括IC、 ASIC、
狀態(tài)機、離散邏輯組件或任何其他電子組件。本領域的普通技術人員將理 解,狀態(tài)信息可以包括處理單元、 一個或多個顯示裝置、或一個或多個電 路是處于"開啟"還是"關斷"狀況,以及用于支持處理單元、 一個或多 個顯示裝置或一個或多個電路的使用和功能性的任何其他配置信息。例如,
與處理單元102相關聯(lián)的一個或多個電路可以包括任何數(shù)字信號處理器
(DSP),例如但不限于視頻編碼器/解碼器和音頻編碼器/解碼器。然而, 發(fā)明人構思,可以根據(jù)圖6的方框606和608配置與處理單元102相關聯(lián) 的任何其他電路。
在一個實施例中,可以使用利用用戶上下文信息恢復處理單元的邏輯 126和存儲器106執(zhí)行方框606中描述的方法。更具體而言,可以使用利用 用戶上下文信息恢復處理單元的邏輯126通過圖1的用戶上下文信息存儲 器128中的(即存儲在存儲器106中)所存儲的用戶上下文信息來循環(huán), 以確定至少一個處理單元102、與處理單元108相關聯(lián)的一個或多個顯示裝 置、以及與處理單元102相關聯(lián)的一個或多個電路的故障前檢測狀態(tài)信息。 例如,在確定一個或多個與處理單元102相關聯(lián)的顯示裝置是否處于"開 啟"狀況時,利用用戶上下文信息恢復處理單元的邏輯126可以檢查存4諸 器128中所存儲的用戶上下文信息,以判斷是否有任何應用或客戶端產(chǎn)生 的表示一個或多個顯示裝置應當處于"開啟"狀況的用戶上下文信息(故 障探測之前)。
在確定故障前檢測狀態(tài)信息時,該方法在方框608中結束,在此,改 變處理單元、 一個或多個顯示器、和一個或多個電路中的至少一個的故障 后檢測狀態(tài)信息以基于所存儲的用戶上下文信息匹配所確定的故障前檢測 狀態(tài)信息。在一個實施例中,改變故障后檢測狀態(tài)信息,以通過向與負責 支持處理單元、 一個或多個顯示器、和一個或多個電路中的至少一個的功 能性的處理單元相關聯(lián)的至少一個存儲器位置寫入狀態(tài)信息來匹配所確定 的故障前檢測狀態(tài)信息。在該范例中,利用用戶上下文信息恢復處理單元的 邏輯126可以用于向與處理單元116相關聯(lián)的至少一個對應存儲器位置寫
入狀態(tài)信息。在另一個實施例中,利用用戶上下文信息恢復處理單元的邏
輯126可以僅在發(fā)出需要使用至少一個存儲器位置的操作命令時向對應的 存儲器位置寫入狀態(tài)信息。換言之,在該范例中,直到處理單元102上執(zhí) 行的應用或客戶端產(chǎn)生需要與至少一個存儲器位置相關聯(lián)的功能性的命令 操作之前,不改變故障后檢測狀態(tài)信息。
圖7為用于檢測與處理器相關聯(lián)的故障狀況并在檢測出故障狀況時對 其進行恢復的系統(tǒng)700的可選范例。像系統(tǒng)100那樣,系統(tǒng)700包括處理 器102,且可以包括上面與圖1所述相同方式耦合在其間的顯示裝置108和 視頻輸入裝置110。類似地,系統(tǒng)700包括耦合到存儲器(例如系統(tǒng)存儲 器)704和處理器102的協(xié)處理單元702,相對于協(xié)處理單元104和存《諸器 106處于圖1所示方式的顯示裝置108和視頻輸入裝置110。存儲器704包 括OS模塊706、驅動模塊708和用戶上下文信息存儲器128等。此外,馬區(qū) 動程序模塊708包括處理單元用戶上下文信息模塊710、處理單元故障檢測 模塊712和利用用戶上下文信息恢復處理單元的模塊714??偟貋碚f,上面 列出的模塊706-714包括所存儲的指令,從而在協(xié)處理單元702執(zhí)行指令 時,使協(xié)處理單元702執(zhí)行與如上所述的圖1的對應邏輯組件118-126禾目 同的功能和操作。因此構思可以將用于檢測處理單元中故障并利用所存^諸
的用戶上下文信息對其修復的系統(tǒng)實現(xiàn)為硬件和軟件電子組件的任意鄉(xiāng)且合。
因此,以上參考圖1-7描述的方法和設備集成了在檢測出故障狀況時 利用所存儲的用戶上下文信息對協(xié)處理單元進行恢復。因為用戶上下文f言 息中包含的信息表示在故障檢測之前處理單元及其相關電路的狀態(tài),因lt匕 可以恢復處理單元的功率狀態(tài)。通過改變處理單元、 一個或多個顯示裝置、 以及一個或多個電路中的至少一個的故障后檢測狀態(tài)信息以基于用戶上下 文信息匹配所確定的故障前檢測狀態(tài)信息,迅速將處理單元102恢復到其 故障前的狀況。換言之,處理單元102被恢復到已知的可工作狀況或系纟充 (例如系統(tǒng)IOO)的用戶受故障狀況影響最小的狀況。通過存儲用戶上下文 信息并在故障檢測之后維護它,可以將其用于恢復不工作的處理單元102, 而無需重啟或重新初始化該處理單元上運行的客戶端、應用和驅動程序。 因而實現(xiàn)了接近無縫的恢復過程。
已經(jīng)僅僅出于例示和描述的目的而非限制的目的給出了本發(fā)明的以上 詳細描述和其中描述的范例。因此本發(fā)明意圖覆蓋落在以上披露和本文主 張的基本原理精神和范圍之內(nèi)的任何和所有的修改、變化和等價要件。
權利要求
1、一種方法,其包括在檢測到與處理單元相關聯(lián)的故障狀況時,使用所存儲的用戶上下文信息恢復所述處理單元。
2、 根據(jù)權利要求1所述的方法,還包括在所述處理單元的正常運行期 間存儲所述用戶上下文信息。
3、 根據(jù)權利要求1或2所述的方法,其中檢測所述故障狀況包括下列各項中的至少一項由協(xié)處理單元檢測與所述協(xié)處理單元相關聯(lián)的輸入己接收到標識所述 故障狀況的信息;以及由所述協(xié)處理單元檢測與所述處理單元相關聯(lián)的至少一個存儲器位置 包含指示故障狀況的信息。
4、 根據(jù)權利要求3所述的方法,其中檢測至少一個存儲器位置包含指示故障狀況的信息包括下列各項中的至少一項由所述協(xié)處理單元基于監(jiān)測與正常運行中的所述處理單元相關聯(lián)的至 少另一個存儲器位置來檢測初始故障狀況,并由所述協(xié)處理單元基于確定 與所述處理單元相關聯(lián)的所述至少一個存儲器位置包含指示所述故障狀況的信息來驗證所述初始故障狀況為所述故障狀況;由所述協(xié)處理單元確定與所述處理單元相關聯(lián)的至少一個處理單元標 識存儲器位置包含不正確的處理單元標識信息;以及由所述協(xié)處理單元確定與所述處理單元相關聯(lián)的至少一個像素時鐘存 儲器位置包含不正確的像素時鐘信息。
5、 根據(jù)前述任一權利要求所述的方法,其中恢復所述處理單元包括 使用初始化例程將與所述處理單元相關聯(lián)的至少一個存儲器位置重新初始化到工作狀態(tài)。
6、 根據(jù)權利要求5所述的方法,其中恢復所述處理單元包括防止向所 述處理單元發(fā)出至少一個操作命令。
7、 根據(jù)權利要求5或6所述的方法,其中使用初始化例程將與所述處 理單元相關聯(lián)的至少一個存儲器位置重新初始化到工作狀態(tài)包括向與所述處理單元相關聯(lián)的所述至少一個存儲器位置寫入缺省信息;以及向與所述處理單元相關聯(lián)的所述至少一個存儲器位置寫入初始化信息。
8、 根據(jù)前述任一權利要求所述的方法,其中恢復所述處理單元包括 使用所存儲的用戶上下文信息來確定下列各項中至少一項的故障前檢測狀態(tài)信息所述處理單元、與所述處理單元相關聯(lián)的一個或多個顯示裝 置、以及與所述處理單元相關聯(lián)的一個或多個電路;以及基于所存儲的用戶上下文信息來改變下列各項中的至少一項的故障后 檢測狀態(tài)信息,以匹配所確定的故障前檢測功率狀態(tài)所述處理單元、所 述一個或多個顯示裝置、以及所述一個或多個電路。
9、 根據(jù)權利要求8所述的方法,其中改變所述故障后檢測狀態(tài)信息包 括當發(fā)出需要使用與所述處理單元相關聯(lián)的至少一個存儲器位置、與所 述處理單元相關聯(lián)的至少另一個存儲器位置、以及與所述處理單元相關聯(lián) 的至少又一個存儲器位置這三者中的一個或多個的操作命令時,向與所述 處理單元相關聯(lián)的所述至少一個存儲器位置、與所述處理單元相關聯(lián)的所 述至少另一個存儲器位置,以及與所述處理單元相關聯(lián)的所述至少又一個 存儲器位置這三者中的一個或多個中寫入所存儲的用戶上下文信息的至少 一部分。
10、 根據(jù)前述任一權利要求所述的方法,包括在檢測到所述故障狀況 時通過初始化序列對顯示器進行重新初始化。
11、 一種包括所存儲的指令的存儲器,所述指令在被執(zhí)行時使協(xié)處理 單元根據(jù)任一前述權利要求所述的方法恢復處理單元。
12、 一種設備,其包括 處理單元;以及可操作地耦合到所述處理單元和包含所存儲的指令的存儲器的協(xié)處理 單元,從而當由所述協(xié)處理單元執(zhí)行所述指令時,使所述協(xié)處理單元根據(jù) 權利要求1到10中的任一項所述的方法恢復所述處理單元。
13、 一種設備,其包括用于在檢測到與處理單元相關聯(lián)的故障狀況時使用所存儲的用戶上下 文信息恢復所述處理單元的邏輯。
14、 根據(jù)權利要求13所述的設備,其中所述邏輯還用于在處理單元的 正常運行期間存儲所述用戶上下文信息。
15、 根據(jù)權利要求13或14所述的設備,其中用于檢測故障狀況的所述邏輯包括用于使協(xié)處理單元檢測下列各項中至少一項的邏輯與所述協(xié)處理單元相關聯(lián)的輸入已接收到標識所述故障狀況的信息;以及與所述處理單元相關聯(lián)的至少一個存儲器位置包含至少一個指示故障 狀況的存儲位。
16、 根據(jù)權利要求13到15中任一項權利要求所述的設備,其中用于使用所存儲的用戶上下文信息恢復所述處理單元的所述邏輯包括用于執(zhí)行如下操作的邏輯使用所存儲的用戶上下文信息來確定下列各項中至少一項的故障前檢 測狀態(tài)信息所述處理單元、與所述處理單元相關聯(lián)的一個或多個顯示裝置、以及與所述處理單元相關聯(lián)的一個或多個電路;以及基于所存儲的用戶上下文信息來改變下列各項中的至少一項的故障后 檢測狀態(tài)信息,以匹配所確定的故障前檢測功率狀態(tài)所述處理單元、所 述一個或多個顯示裝置、以及所述一個或多個電路。
17、根據(jù)權利要求16所述的設備,其中用于改變所述故障后檢測狀態(tài) 信息的所述邏輯包括用于在發(fā)出需要使用至少一個存儲器位置的操作命令 時向所述處理單元的所述至少一個存儲器位置寫入所存儲的用戶上下文信 息的至少一部分的邏輯。
全文摘要
一種系統(tǒng)的協(xié)處理單元檢測與協(xié)處理單元相關聯(lián)的故障狀況,并在檢測到時利用所存儲的用戶上下文信息恢復處理單元。在正常工作期間,由協(xié)處理單元在存儲器中存儲用于執(zhí)行操作命令的用戶上下文信息并在故障檢測之后進行維護。當由于放電靜電事件導致處理單元的至少一部分無法工作時檢測為故障狀況??梢酝ㄟ^由協(xié)處理單元接收到表示故障狀況的信息,或通過檢查與處理單元相關聯(lián)的至少一個存儲器位置來確定其中存儲的信息是否表示故障狀況來檢測故障狀況。協(xié)處理單元利用所存儲的用戶上下文信息將故障前檢測狀態(tài)信息恢復到與處理單元相關聯(lián)的存儲位置,使處理單元返回到已知的可工作狀態(tài)。
文檔編號G06F11/14GK101390058SQ200680053400
公開日2009年3月18日 申請日期2006年12月27日 優(yōu)先權日2005年12月28日
發(fā)明者A·S·德阿爾梅達, H·嚴, I·W·Y·揚, M·艾哈邁迪 申請人:Ati技術公司