專利名稱:數(shù)據(jù)掃描錯誤恢復系統(tǒng)和方法
技術領域:
本發(fā)明屬于計算機錯誤恢復領域。更具體地講,本發(fā)明涉及硬件 掃描錯誤恢復。
背景技術:
許多不同類型的計算系統(tǒng)已在全世界獲得了廣泛使用。這些計算 系統(tǒng)包括個人計算機、服務器、大型機、工作站以及各種單機和嵌入 式計算裝置。存在蔓延式客戶機-服務器系統(tǒng),應用和信息分散在許
多PC網(wǎng)絡、大型機和微型機上。在通過網(wǎng)絡連接的分布式系統(tǒng)中,
用戶可訪問許多應用程序、數(shù)據(jù)庫、網(wǎng)絡系統(tǒng)、操作系統(tǒng)和大型機應 用。計算機為個人和企業(yè)提供了軟件應用的主機,這些軟件應用包括
文字處理、電子表格、web發(fā)布、數(shù)據(jù)庫和記帳。此外,網(wǎng)絡使得處 于不同位置的人之間可通過電子郵件、網(wǎng)站、即時通訊和web會議進 行高速通信。
每個計算機、服務器、工作站和大型機的核心是至少一個微處理 器。高性能微處理器的共有結構為精簡指令集計算機(RISC )體系結 構,其特征在于可快速執(zhí)行的、頻繁使用的小型簡化指令集。因而, 在RISC體系結構中,復雜指令包括按步驟非常快速地執(zhí)行的小的簡 單指令集。在適于執(zhí)行特定的簡單指令的執(zhí)行單元中執(zhí)行這些步驟。 在超標量體系結構中,這些執(zhí)行單元典型地包括并行操作的加裁/存儲 單元、整數(shù)算術/邏輯單元、浮點算術/邏輯單元和圖形邏輯單元。在 處理器體系結構中,操作系統(tǒng)控制處理器和處理器外圍的組件的操 作??蓤?zhí)行應用程序被存儲在計算機的硬盤驅動器中。計算機的處理 器使應用程序響應于用戶輸入而運行。
在多處理器系統(tǒng)中,服務處理器(SP)為包含多個處理器的中央電子機柜(CEC)服務。SP包括用于CEC中的處理器的操作的固 件。更具體地講,SP具有引導固件和主機固件。引導固件在SP上運 行。它在初始程序加載(IPL)期間引導SP;使主機固件加載到CEC 中;然后繼續(xù)運行以監(jiān)視硬件并且在發(fā)生錯誤時糾正錯誤。主機固件 在CEC中的處理器上運行,為客戶軟件應用服務。主機固件被下載 到CEC中的RAM中, 一旦引導固件完成引導過程,主機固件就開 始運行。
服務處理器還包括JTAG (聯(lián)合測試行動組)引擎。JTAG引擎 為這樣的裝置,其提供將數(shù)據(jù)傳送到其緩沖器和從其緩沖器將數(shù)據(jù)傳 送到CEC中的指定芯片的手段。聯(lián)合測試行動組(JTAG)為IEEE
(電氣電子工程師協(xié)會)1149.1標準的常用名,IEEE 1149.1標準被 稱為用于使用邊界掃描來測試印刷電路板的測試訪問端口的標準測 試訪問端口和邊界掃描體系結構。在1990年JTAG ,皮標準化為IEEE Std. 1149.1-1990。在1994年,添加了包含有關邊界掃描描述語言
(BSDL)的描述的補充。從那以后,全世界的電子公司都采用這個 標準。盡管是為印刷電路板而設計,但是JTAG主要用于測試集成電 路的子塊,并且作為用于調試嵌入式系統(tǒng)、在系統(tǒng)中提供方便的"后 門"的機構,JTAG也是有用的。當被用作調試工具時,將JTAG用 作傳輸機構的電路內仿真器使得程序員能夠經(jīng)由JTAG訪問被集成到 CPU(中央處理單元)中的片上調試模塊。調試模塊使得程序員能夠 對嵌入式系統(tǒng)的軟件進行調試。
因而,JTAG引擎為這樣的裝置,其提供用于將數(shù)據(jù)傳送到多處 理器系統(tǒng)的CEC中的指定芯片或者從多處理器系統(tǒng)的CEC中的指定 芯片傳送數(shù)據(jù)的手段。假設,例如,期望將數(shù)據(jù)傳送到CEC中的芯 片。在SP上運行的固件將定義數(shù)據(jù)并將數(shù)據(jù)發(fā)送到JTAG引擎中的 緩沖器。JTAG引擎將該數(shù)據(jù)轉移到芯片中。反之適用于從芯片傳送 數(shù)據(jù)。
現(xiàn)今,具有高可靠性要求的計算機系統(tǒng)使用各種錯誤檢測邏輯方 法來確保客戶數(shù)據(jù)完整性。當在系統(tǒng)中發(fā)生錯誤時,通過中斷向服務處理器報告錯誤以做進一步的錯誤分析和故障隔離,所以可確定正確 的硬件部分替換。對于嚴重的系統(tǒng)錯誤,服務處理器通過"轉儲"處理 提取額外的硬件狀態(tài)數(shù)據(jù),然后作為整個系統(tǒng)恢復的一部分重啟系 統(tǒng)。對于不嚴重的系統(tǒng)錯誤或事件,服務處理器在適當?shù)那闆r下執(zhí)行 分析并幫助錯誤恢復。服務處理器和系統(tǒng)硬件之間的通信經(jīng)過"服務
總線"(或JTAG)和掃描引擎。當在JTAG服務總線或掃描引擎的 任一個中發(fā)生硬件錯誤時,服務處理器失去了當向服務處理器報告實 際的系統(tǒng)錯誤或事件時分析和確定該系統(tǒng)錯誤或事件的嚴重性的能 力。為了確保最大的客戶數(shù)據(jù)完整性,服務處理器通過利用"轉儲"處 理提取額外的硬件狀態(tài)數(shù)據(jù)來處理作為系統(tǒng)嚴重錯誤的JTAG服務總 線或掃描引擎錯誤,然后重啟系統(tǒng)以清除/復位所有錯誤。
當前設計的缺點在于,除了嚴重錯誤之外,被報告給服務處理器 的系統(tǒng)硬件錯誤或事件還可以是可恢復的錯誤或者其它非系統(tǒng)的嚴 重事件。當服務處理器失去訪問硬件以確定中斷原因的能力時,服務 處理器假定為最壞的情況,從而使系統(tǒng)可用性最小化,以最大化客戶 數(shù)據(jù)完整性。
所需要的是克服間歇的或暫時的JTAG服務總線或掃描引擎錯 誤的恢復方法,從而SP可繼續(xù)分析實際錯誤,并可確定正確的錯誤 嚴重性。
發(fā)明內容
以上提出的問題主要通過用于數(shù)據(jù)掃描錯誤恢復的系統(tǒng)、方法和 介質來解決。 一個實施例是從數(shù)據(jù)掃描錯誤中恢復的方法,該方法包 括執(zhí)行數(shù)據(jù)掃描并確定是否發(fā)生數(shù)據(jù)掃描錯誤。該方法還包括確定數(shù) 據(jù)掃描錯誤是SCOM (掃描通信)引起注意錯誤或CRC (循環(huán)冗余 校驗)錯誤或無效指令/奇偶校驗錯誤。如果數(shù)據(jù)掃描錯誤是SCOM 引起注意錯誤,則所述方法包括執(zhí)行SCOM引起注意錯誤恢復過程。 如果數(shù)據(jù)掃描錯誤是CRC錯誤或無效指令/奇偶校驗錯誤,則所述方 法包括執(zhí)行CRC/無效指令/奇偶校驗錯誤恢復過程。所述方法還可包括 一旦執(zhí)行數(shù)據(jù)掃描恢復過程,就重試數(shù)據(jù)掃描,所述方法還可包 括確定是否可安全地執(zhí)行數(shù)據(jù)掃描錯誤恢復過程。
實施例包括可被配置為執(zhí)行數(shù)據(jù)掃描錯誤恢復的計算機,該計算 機包括存儲執(zhí)行數(shù)據(jù)掃描錯誤恢復的指令的存儲器。所述計算機還包 括與存儲器耦合以執(zhí)行存儲在存儲器中的指令的處理器,在SCOM引 起注意錯誤的情況下,處理器執(zhí)行SCOM引起注意錯誤恢復過程, 在CRC錯誤、無效指令錯誤或奇偶校驗錯誤的情況下,處理器執(zhí)行 CRC/無效指令/奇偶校驗恢復過程。
本發(fā)明的另 一實施例提供包含指令的機器可訪問介質,當在數(shù)據(jù) 處理系統(tǒng)中執(zhí)行時,這些指令可使系統(tǒng)執(zhí)行用于數(shù)據(jù)掃描錯誤恢復的 一系列操作。所述一系列操作包括執(zhí)行數(shù)據(jù)掃描并確定是否發(fā)生數(shù)據(jù) 掃描錯誤,如果錯誤發(fā)生,則確定數(shù)據(jù)掃描錯誤的類型。如果數(shù)據(jù)掃 描錯誤是SCOM引起注意錯誤,則所述操作包括執(zhí)行SCOM引起注 意錯誤恢復過程。如果數(shù)據(jù)掃描錯誤是CRC錯誤和無效指令錯誤或 者奇偶校驗錯誤,則所述操作包括執(zhí)行CRC/無效指令/奇偶校驗錯誤 恢復過程。
當閱讀以下詳細描述并參考附圖時,本發(fā)明的多個方面將變得清 楚,在附圖中,相同的標號可指示相近的要素
圖l描繪服務處理器和中央電子機柜內的數(shù)字系統(tǒng)的實施例。
圖1A描繪連接多個裝置的JTAG服務總線的框圖。
圖1B描繪具有SCOM引擎的芯片的框圖。
圖2描繪計算機內可執(zhí)行數(shù)據(jù)掃描錯誤恢復過程的處理器的實施例。
圖3描繪用于執(zhí)行數(shù)據(jù)掃描錯誤恢復的實施例的流程圖。
具體實施例方式
以下是在附圖中描繪的本發(fā)明的示例性實施方式的詳細描述。示例性的實施方式被詳細地描述,以便清楚地表述本發(fā)明。然而,所提
供的大量細節(jié)不想限制實施方式的預期變型;相反,本發(fā)明將覆蓋落 在如權利要求所限定的本發(fā)明的精神和范圍內的所有修改、等同和替 換。以下的詳細描述意在使本領域的普通技術人員明了這樣的實施方 式。
公開了從數(shù)據(jù)掃描錯誤中恢復的系統(tǒng)、方法和介質。在一個實施 方式中,服務處理器確定數(shù)據(jù)掃描錯誤的性質,并根據(jù)錯誤的性質, 執(zhí)行多個數(shù)據(jù)掃描錯誤恢復過程中的一個。
圖1顯示包括服務處理器(SP ) 102和中央電子機拒(CEC ) 104 的數(shù)字系統(tǒng)100。 SP 102包括掃描錯誤恢復固件106、主機固件108 和引導固件110。恢復固件106包括實施用于從數(shù)據(jù)掃描錯誤中恢復 的恢復處理的計算機代碼。引導固件110在SP 102的中央處理單元 (CPU) 112上運行。它在初始程序加栽(IPL)期間引導SP;使主 機固件加載到CEC 104中;然后繼續(xù)運行以監(jiān)視硬件并且在發(fā)生錯誤 時糾正錯誤。主機固件108在CEC104中的處理器122上運行,并為 客戶軟件應用服務。主機固件被下栽到CEC中的存儲器130中,并 且一旦引導固件完成引導處理,主機固件就開始運行。SP102還包括 存儲器114、輸入/輸出(IO)控制機構116和JTAG掃描引擎118。
JTAG引擎118與CPU 112通信以實現(xiàn)從SP 102到CEC 104的 芯片的數(shù)據(jù)和信號傳輸。CEC104的芯片包括緩存L3 (120)、具有 存儲器控制器124的CPU 122,還包括IO控制器126、 PHB (外圍 部件互連主橋)128和存儲卡130。今天在大多數(shù)IC中,芯片包括在 掃描鏈上的內部寄存器。這允許即使IC在電路卡中以及可能在工作 的系統(tǒng)中時,也可對所有的組合邏輯進行完整地測試。當與內建自測 試(BIST)相結合時,JTAG掃描鏈能夠實現(xiàn)用于測試IC以發(fā)現(xiàn)某 些靜態(tài)故障(短路、斷路和邏輯錯誤)的低開銷、完全嵌入式的解決 方案。掃描鏈機構通常不幫助對時序、溫度或可能發(fā)生的其它動態(tài)操 作錯誤進行診斷和測試。因而,通過JTAG月艮務總線132將CEC l(M 的芯片連接在鏈中,JTAG服務總線132將信號和數(shù)據(jù)傳載回SP102的CPU 112。還通過(信號通信)SCOM引起注意總線134將CEC 的芯片連接至SP的CPU。
JTAG接口為添加到芯片的專用四引腳或五引腳接口 ,其被設計 為板上的多個芯片可使它們的JTAG線菊花式鏈接在一起,測試線僅 需要連接至單個"JTAG端口"就可訪問電路板上的所有芯片。JTAG 端口的連接器引腳為
1、 TDI (測試數(shù)據(jù)輸入)
2、 TDO (測試數(shù)據(jù)輸出)
3、 TCK (測試時鐘)
4、 TMS (測試模式選擇)
5、 TRST (測試復位)選項
針對圖1A中的裝置1、 2和3的鏈顯示這些引腳和它們的連接。 它們給予對芯片的SCOM(信號通信)引擎和SCAN引擎的訪問和控 制。芯片的SCAN引擎類似于JTAG引擎,但是駐留在數(shù)據(jù)傳送操作 的另 一端的芯片中。它為芯片提供接收從JTAG引擎?zhèn)魉偷臄?shù)據(jù)的手 段。在讀取的情況下,它將數(shù)據(jù)從芯片移出到JTAG引擎, 一旦數(shù)據(jù) 被放置在JTAG引擎緩沖器中,固件就讀取該數(shù)據(jù)。SCOM引擎類似 于SCAN引擎,但是需要芯片的時鐘以掃描進出的數(shù)據(jù)。
由于僅有一條數(shù)據(jù)線可用,所以通信協(xié)議必須是串行的。時鐘輸 入在TCK引腳。通過TMS引腳一次一比特地操縱狀態(tài)機,由此執(zhí)行 配置。分別在TDI和TDO引腳每個TCK時鐘脈沖傳入一比特數(shù)據(jù) 和傳出一比特數(shù)據(jù)??杉釉圆煌闹噶钅J揭宰x取芯片ID、對輸入引 腳進行采樣、驅動(或浮動)輸出引腳、操縱芯片功能或者繞過(將 TDI用管道輸送到TDO以在邏輯上縮短多個芯片的鏈)。TCK的工 作頻率根據(jù)芯片而改變,但是它典型地為10-100MHz(100-10ns每比 特)。當在集成電路上執(zhí)行邊界掃描時,操縱的信號在芯片的不同功 能塊之間,而不是在不同的芯片之間。TRST引腳為可選的對測試邏 輯的低電平有效復位——通常是異步,但是有時根據(jù)芯片是同步。如 果引腳不可用,則可通過同步地在復位指令中計時來使測試邏輯復位。
裝置經(jīng)由一組I/0引腳與外界通信。通過自身,這些引腳提供對
于裝置的工作狀況的有限可見度。然而,支持邊界掃描的裝置包含用 于裝置的每個信號引腳的移位寄存器單元。如圖1所示,這些寄存器 連接在裝置的邊界周圍的專用路徑(由此得名)中。該路徑產(chǎn)生了虛 擬訪問能力,其避開正常輸入,提供裝置的直接控制并在其輸出上提
供詳細的可見度。在測試期間,I/O信號通過邊界掃描單元進入芯片
和離開芯片。邊界掃描單元可被配置為支持對芯片之間的互連的外部
測試和對芯片內的邏輯的內部測試。為了提供邊界掃描能力,IC賣家
將附加的邏輯添加到他們的每個裝置中,所述附加的邏輯包括用于每 個信號引腳的掃描寄存器、連接這些寄存器的專用掃描路徑、四個或 五個附加引腳和控制電路。用于這個附加邏輯的開銷最少,并且具有 高效的板級測試,價錢非常值。
通常,當在CEC 104中的芯片中的錯誤發(fā)生時,通過引起注意 信號線134將引起注意信號發(fā)送到CPU 112。執(zhí)行主機固件108的 CPU 112通過經(jīng)由JTAG引擎118從懷疑芯片讀取數(shù)據(jù)以確定錯誤來 確定錯誤。然而,可能發(fā)生底層錯誤被數(shù)據(jù)掃描錯誤,即JTAG掃描 處理本身中的錯誤遮蔽的情況。當這發(fā)生時,優(yōu)選地進行數(shù)據(jù)掃描錯 誤恢復處理,以避免在確定底層錯誤之前重啟系統(tǒng)。于是,SP102執(zhí) 行數(shù)據(jù)掃描錯誤恢復固件106以從數(shù)據(jù)掃描錯誤中恢復,從而可確定 底層錯誤。因而,系統(tǒng)克服了目前在發(fā)生JTAG服務總線錯誤時的設 計局限。這里所描述的恢復方法克服了間歇的或暫時的數(shù)據(jù)掃描錯 誤,從而SP可繼續(xù)分析激起掃描的實際的系統(tǒng)硬件錯誤。
因而,實施方式可改進系統(tǒng)可用性,而不冒險破壞客戶數(shù)據(jù)完整 性。實施方式在數(shù)據(jù)掃描錯誤發(fā)生之后立即在受懷疑的芯片上執(zhí)行恢 復和重試過程?;謴托蛄惺剐酒瑨呙枰婷撾x錯誤狀態(tài),并檢索指示 底層錯誤的底層數(shù)據(jù),而不重啟系統(tǒng)?;謴托蛄袑τ谡埱髷?shù)據(jù)掃描的 客戶是透明的。
圖1B顯示可使用JTAG掃描引擎來掃描的標準芯片。芯片150包括SCOM引擎152。 SCOM引擎包括指令寄存器狀態(tài)(IRST )寄 存器154、錯誤類型寄存器156、 SCOM狀態(tài)寄存器158、訪問狀態(tài) 寄存器160和測試訪問端口 (TAP)控制器162。通過CEC104中的 芯片的指令寄存器狀態(tài)(IRST )寄存器154的狀態(tài)反映數(shù)據(jù)掃描錯誤。 例如,可在IRST寄存器中反映以下錯誤狀態(tài)
SCOM (掃描通信)引起注意(位#4)
* CRC (循環(huán)冗余校驗)Microcompare (位# 5 ) *無效指令/奇偶校驗(位# 6 ) 參最后位不是"01"
一旦完成數(shù)據(jù)掃描,恢復固件106就會檢查IRST寄存器以尋找 這些錯誤條件中的一個。如果檢測到錯誤,則恢復固件106將執(zhí)行如 下的恢復步驟序列
1、 確定在芯片上執(zhí)行恢復是否安全;例如如果芯片不支持這里 所描述的恢復過程,或者例如如果數(shù)據(jù)掃描錯誤的類型阻礙數(shù)據(jù)掃描 錯誤恢復過程的執(zhí)行,則在芯片上執(zhí)行恢復可能不安全。
2、 如果執(zhí)行恢復安全,則對于SCOM引起注意錯誤 a )通過將0xB000000寫入芯片來解鎖SCOM引擎152
b )將0x00000000寫入SCOM寄存器0x600100以清除錯誤類型 c )清除SCOM狀態(tài)寄存器158 (地址0x000080 )的空閑位(位
#4)
d )將0x00000000寫入訪問狀態(tài)寄存器160 (地址0x000002 ) e)通過發(fā)送BYPASS命令0x03000000使TAP (測試訪問端口 ) 控制器162復位
3、 如果執(zhí)行恢復是安全的,則對于CRC誤比較(miscompare) 或無效指令/奇偶校驗錯誤
a )通過發(fā)送命令0x03000000使TAP控制器復位 b)通過將0x00000000寫入訪問狀態(tài)寄存器(環(huán)0x000002)來 清除錯誤
4、 芯片現(xiàn)在應該不在其錯誤狀態(tài)下然后重試數(shù)據(jù)掃描。5、 如果重試的數(shù)據(jù)掃描成功,則將數(shù)據(jù)發(fā)送回CPU 112,以便 確定導致掃描的底層錯誤。
6、 如果錯誤仍然存在,則意味著芯片或系統(tǒng)遇到了致命的錯誤, 需要技術維護服務。
圖2顯示可在服務處理器例如服務處理器102中實施的執(zhí)行如這 里所描述的數(shù)據(jù)掃描錯誤恢復軟件的CPU 200的實施方式。圖2的處 理器200被配置為執(zhí)行如圖3的流程圖300中詳述的用于數(shù)據(jù)掃描錯 誤恢復的指令。層1指令緩存210從處理器外部的存儲器216例如層 2緩存接收指令。因而,可將用于數(shù)據(jù)掃描錯誤恢復的軟件作為固件 存儲在存儲器中??蓪④浖亩嘟M順序指令傳輸?shù)絃2緩存,可將這 些指令的子組傳輸?shù)絃l緩存。
取指令器212維護程序計數(shù)器,并從L1指令緩存210取出軟件 指令。取指令器212的程序計數(shù)器包括要執(zhí)行的下一指令的地址。取 指令器212還執(zhí)行預取操作。因而,取指令器212與存儲器控制器214 通信以發(fā)起軟件更新指令從存儲器216到指令緩存210的傳輸。根據(jù) 從系統(tǒng)存儲器地址獲得的索引來確定指令從系統(tǒng)存儲器21 6被傳輸
到緩存中的地方。
指令序列從系統(tǒng)存儲器216被傳輸?shù)街噶罹彺?10以實施數(shù)據(jù)掃
描錯誤恢復功能。因而,取指令器212取得被傳遞到指令緩存210的 數(shù)據(jù)掃描錯誤恢復指令,并將這些指令傳遞到指令解碼器220。指令 解碼器220接收取指令器212取回的指令,并對這些指令進行解碼。 指令緩沖器230從指令解碼器220接收解碼后的指令。指令緩沖器230 包括用于多個指令的存儲位置。指令緩沖器230可對從指令解碼器220 接收的指令的執(zhí)行順序進行重新排序。因此,指令緩沖器230包括提 供將指令發(fā)送到調遣單元240的順序的指令隊列。
調遣單元240將處理從指令緩沖器230接收的指令的通信派遣到 執(zhí)行單元250。在超標量體系結構中,執(zhí)行單元250可包括加載/存儲 單元、整數(shù)算術/邏輯單元、浮點算術/邏輯單元和圖形邏輯單元,所 有這些單元并行操作。因此,調遣單元240將指令調遣到一部分或所
12有執(zhí)行單元以同時執(zhí)行指令。執(zhí)行單元250包括在執(zhí)行從調遣單元240 接收的指令的過程中執(zhí)行各步驟的多級。由執(zhí)行單元250處理的數(shù)據(jù) 可被存儲在未顯示的整數(shù)寄存文件和浮點寄存文件中,并可從未顯示 的整數(shù)寄存文件和浮點寄存文件訪問這些數(shù)據(jù)。因而,指令被順序地 和并行地執(zhí)行。
圖2顯示具有多個執(zhí)行單元的處理器的第一執(zhí)行單元(XU1 )270 和第二執(zhí)行單元(XU2) 280。每個執(zhí)行單元250的每一級能夠在執(zhí) 行不同的數(shù)據(jù)掃描錯誤恢復指令的過程中執(zhí)行一步驟。在處理器200 的每個工作周期中,指令的執(zhí)行過程通過執(zhí)行單元250內的處理器流 水線前進到下一級。本領域的技術人員將認識到,處理器"流水線,,的 各級可包括圖2中未顯示的其它級和電路。
此外,通過多線程處理,多個軟件更新處理可并行運行。例如, 通過執(zhí)行不同線程的指令,處理器執(zhí)行加載/存儲指令,同時還執(zhí)行數(shù) 據(jù)的異或。因而,可順序地和并行地執(zhí)行多個指令以實現(xiàn)加密軟件更 新功能。
圖2還顯示執(zhí)行控制處理器200的操作的各種功能的控制電路 260。例如,控制電路260內的操作控制器對包含在指令中的OPCode 進行解譯,并指揮合適的執(zhí)行單元執(zhí)行指示的操作。此外,控制電路 260可包括分支重定向單元,當確定分支被錯誤預測時,分支重定向 單元使取指令器212重定向??刂齐娐?60還可包括沖刷控制器,其 沖刷比被錯誤預測的分支指令更年輕的指令。
因而,一些實施方式包括可被配置為執(zhí)行數(shù)據(jù)掃描錯誤恢復的計 算機。該計算機包括存儲執(zhí)行數(shù)據(jù)掃描錯誤恢復的指令的存儲器。該 計算機還包括與存儲器耦合以執(zhí)行存儲在存儲器中的指令的處理器。 所述指令使處理器在SCOM引.起注意錯誤的情況下執(zhí)行SCOM引起 注意錯誤恢復過程,在CRC錯誤、無效指令錯誤或奇偶校驗錯誤的 情況下執(zhí)行CRC/無效指令/奇偶校驗錯誤恢復過程。所述計算機還可 被配置為在完成數(shù)據(jù)掃描錯誤恢復過程之后重試數(shù)據(jù)掃描。所迷計算 機還可被配置為在完成數(shù)據(jù)掃描錯誤恢復過程之后補救底層錯誤。為了執(zhí)行SCOM引起注意錯誤恢復過程,所述計算機將執(zhí)行以下步驟, 包括解鎖SCOM引擎;清除錯誤類型寄存器;清除SCOM狀態(tài)寄 存器的空閑位;使訪問狀態(tài)寄存器復位;和使TAP控制器復位。為 了執(zhí)行CRC/無效指令/奇偶校驗錯誤恢復過程,所述計算機將執(zhí)行以 下步驟,包括使訪問狀態(tài)寄存器復位;和使TAP控制器復位。
因此,實施方式提供從數(shù)據(jù)掃描錯誤中恢復的途徑,該途徑避免 處理作為致命錯誤的錯誤。圖3顯示從數(shù)據(jù)掃描錯誤中恢復的實施方 式的流程圖300。在第一步驟中,SP執(zhí)行CEC中的硬件的數(shù)據(jù)掃描 (要素302)。系統(tǒng)確定是否存在數(shù)據(jù)掃描錯誤,如果存在數(shù)據(jù)掃描 錯誤,則確定錯誤的性質(要素304)。因而,系統(tǒng)通過讀取芯片的 SCOM引擎的指令寄存器狀態(tài)(IRST)寄存器的比特來區(qū)分SCOM 引起注意錯誤和CRC錯誤或無效指令/奇偶校驗錯誤。如果不存在數(shù) 據(jù)掃描錯誤,則終止數(shù)據(jù)掃描錯誤恢復處理(要素316),系統(tǒng)繼續(xù) 確定為之進行數(shù)據(jù)掃描的底層錯誤。
如果檢測到數(shù)據(jù)掃描錯誤(要素304 ),則通過讀取IRST寄存 器的比特,SP確定在芯片上執(zhí)行數(shù)據(jù)掃描錯誤恢復是否安全(要素 306)。如果不安全,則掃描恢復處理終止(要素316),系統(tǒng)就像底 層錯誤是致命錯誤一樣執(zhí)行恢復。如果執(zhí)行數(shù)據(jù)掃描錯誤恢復是安全 的(要素306),則系統(tǒng)確定錯誤是否為SCOM引起注意錯誤(要素 308)。如果不是SCOM引起注意錯誤,則系統(tǒng)執(zhí)行對CRC/無效指 令/奇偶校驗錯誤的數(shù)據(jù)掃描錯誤恢復(要素312)。否則,系統(tǒng)執(zhí)行 對SCOM引起注意錯誤的數(shù)據(jù)掃描錯誤恢復(要素310)。 一旦完成 數(shù)據(jù)掃描錯誤恢復,則SP對數(shù)據(jù)進行重新掃描以確定引起原始數(shù)據(jù) 掃描的底層錯誤(要素314)。然后,數(shù)據(jù)掃描錯誤恢復處理終止(要 素316),系統(tǒng)處理底層硬件錯誤。、
本發(fā)明的一些實施方式被實現(xiàn)為與計算機系統(tǒng)一起使用的程序 產(chǎn)品,所述計算機系統(tǒng)諸如圖1中顯示的系統(tǒng)。可將所述程序產(chǎn)品用 在其它計算機系統(tǒng)或處理器上。所述程序產(chǎn)品的程序定義所述實施方 式(包括這里所描述的方法)的功能,可將所述程序產(chǎn)品包含在各種攜帶信號的介質上。示意性的攜帶信號的介質包括但是不限于(i) 永久存儲在不可寫的存儲介質(比如,計算機內的只讀存儲器裝置, 諸如可被CD-ROM驅動器讀取的CD - ROM盤)上的信息;(ii) 存儲在可寫的存儲介質(比如,盤驅動器或硬盤驅動器內的軟盤)上 的可變信息;和(iii)通過通信介質傳遞到計算機的信息,諸如通過 計算機或電話網(wǎng)絡,包括無線通信。后一實施方式特別包括從互聯(lián)網(wǎng) 和其它網(wǎng)絡下載的信息。當這樣的信號攜帶介質承栽引導本發(fā)明的功 能的計算機可讀指令時,這樣的信號攜帶介質代表本發(fā)明的實施方 式。
通常,被執(zhí)行以實現(xiàn)本發(fā)明的實施方式的例程可以是操作系統(tǒng)或 者具體的應用、組件、程序、模塊、對象或指令序列的一部分。本發(fā) 明的計算機程序典型地由將被原生計算機翻譯成機器可訪問格式因 而是可執(zhí)行指令的大量指令組成。此外,程序包括本地駐留到程序或 者在存儲器中或在存儲裝置上找到的變量和數(shù)據(jù)結構。另外,在本發(fā) 明的具體實施方式
中,可基于為其執(zhí)行以下所描述的各種程序的應用 識別這些程序。然而,應該意識到,僅由于方便而使用以下任何特定 術語,因而,本發(fā)明不應該限于僅用在這樣的術語所標識的和/或所暗 示的任何特定應用中。
因而,本發(fā)明的另一實施方式提供包含這樣的指令的機器可存取 介質,當在數(shù)據(jù)處理系統(tǒng)中執(zhí)行時,這些指令對于使系統(tǒng)執(zhí)行從數(shù)據(jù) 掃描錯誤中恢復的一 系列操作是有效的。所述操作包括執(zhí)行數(shù)據(jù)掃 描,并確定是否發(fā)生數(shù)據(jù)掃描錯誤,如果數(shù)據(jù)掃描錯誤發(fā)生,則確定 數(shù)據(jù)掃描錯誤的類型。如果數(shù)據(jù)掃描錯誤是SCOM引起注意錯誤, 則所述操作包括執(zhí)行SCOM引起注意錯誤恢復過程。如果數(shù)據(jù)掃描 錯誤是CRC錯誤和無效指令錯誤或者奇偶校驗錯誤,則所述操作包 括執(zhí)行CRC/無效指令/奇偶校驗錯誤恢復過程。所述操作還可包括完 成數(shù)據(jù)掃錯誤恢復過程之后重試數(shù)據(jù)掃描。此外,所述操作還可包括 完成數(shù)據(jù)掃描錯誤恢復過程之后補救底層錯誤。
雖然已對一些實施方式詳細描述了本發(fā)明及其一些優(yōu)點,但是應該理解,可在不脫離如權利要求所限定的本發(fā)明的精神和范圍的情況 下,對其進行各種改變、替換和更改。雖然本發(fā)明的實施方式可實現(xiàn) 多個目的,但是不是落在權利要求范圍內的每一個實施方式都將實現(xiàn) 每一個目的。而且,本應用的范圍意不在于限于本說明書中所描述的 處理、機器、產(chǎn)品、物質組成、裝置、方法和步驟的特定實施方式。 如本領域的普通技術人員將從本發(fā)明的公開內容易于意識到的,可根 據(jù)本發(fā)明利用目前存在或者隨后將被研發(fā)的執(zhí)行與這里所描述的對 應的實施方式基本相同功能或者實現(xiàn)基本相同結果的處理、機器、產(chǎn) 品、物質組成、裝置、方法或步驟。相應地,權利要求意在將這樣的 處理、機器、產(chǎn)品、物質組成、裝置、方法或步驟包括在它們的范圍 內。
權利要求
1、一種從數(shù)據(jù)掃描錯誤中恢復的方法,包括執(zhí)行數(shù)據(jù)掃描,并確定是否發(fā)生數(shù)據(jù)掃描錯誤;確定數(shù)據(jù)掃描錯誤是SCOM引起注意錯誤、CRC錯誤還是無效指令/奇偶校驗錯誤;然后響應于SCOM引起注意錯誤,執(zhí)行SCOM引起注意錯誤恢復過程;或者響應于CRC錯誤或者無效指令/奇偶校驗錯誤,執(zhí)行CRC/無效指令/奇偶校驗錯誤恢復過程。
2、 根據(jù)權利要求1所述的方法,還包括 一旦數(shù)據(jù)掃描錯誤恢 復過程被執(zhí)行,就重試數(shù)據(jù)掃描。
3、 根據(jù)權利要求1所述的方法,還包括確定數(shù)據(jù)掃描錯誤的 類型是否阻礙數(shù)據(jù)掃描錯誤恢復過程的執(zhí)行。
4、 根據(jù)權利要求l所述的方法,其中,SCOM引起注意錯誤恢 復過程包括解鎖SCOM引擎;清除錯誤類型寄存器;清除SCOM狀態(tài)寄存器的空閑位;使訪問狀態(tài)寄存器復位;和使TAP控制器復位。
5、 根據(jù)權利要求4所述的方法,其中,解鎖SCOM引擎包括將 0xlb000000寫入包括SCOM引擎的芯片。
6、 根據(jù)權利要求4所述的方法,其中,清除錯誤類型寄存器包 括將0x600100寫入錯誤類型寄存器。
7、 根據(jù)權利要求4所述的方法,其中,使訪問狀態(tài)寄存器復位 包括將0x00000000寫入訪問狀態(tài)寄存器。
8、 根據(jù)權利要求4所述的方法,其中,使TAP控制器復位包括 發(fā)送BYPASS命令0x03000000。
9、 根據(jù)權利要求1所述的方法,其中,CRC/無效指令/奇偶校 驗錯誤恢復過程包括使訪問狀態(tài)寄存器復位;和 使TAP控制器復位。
10、 一種能被配置為執(zhí)行數(shù)據(jù)掃描錯誤恢復的計算機,包括 存儲器,存儲執(zhí)行數(shù)據(jù)掃描錯誤恢復的指令;和處理器,與存儲器耦合以執(zhí)行存儲在存儲器中的下述指令在發(fā) 生SCOM引起注意錯誤的情況下執(zhí)行SCOM引起注意錯誤恢復過程 的指令;和在發(fā)生CRC錯誤、無效指令錯誤或奇偶校驗錯誤的情況 下執(zhí)行CRC/無效指令/奇偶校驗錯誤恢復過程的指令。
11、 根據(jù)權利要求10所述的計算機,其中,處理器執(zhí)行的指令 還包括在完成數(shù)據(jù)掃描錯誤恢復過程之后重試數(shù)據(jù)掃描的指令。
12、 根據(jù)權利要求10所述的計算機,其中,處理器執(zhí)行的指令 還包括在完成數(shù)據(jù)掃描錯誤恢復過程之后補救底層錯誤的指令。
13、 根據(jù)權利要求10所述的計算機,其中,處理器執(zhí)行的指令執(zhí)行的指令。
14、 根據(jù)權利要求10所述的計算機,其中,執(zhí)行SCOM引起注 意錯誤恢復過程的指令包括執(zhí)行以下操作的指令解鎖SCOM引擎;清除錯誤類型寄存器;清除SCOM狀態(tài)寄存器的空閑位;使訪問狀態(tài)寄存器復位;和使TAP控制器復位。
15、 根據(jù)權利要求10所述的計算機,其中,執(zhí)行CRC/無效指 令/奇偶校驗錯誤恢復過程的指令包括執(zhí)行以下操作的指令使訪問狀態(tài)寄存器復位;和 使TAP控制器復位。
全文摘要
公開了用于從數(shù)據(jù)掃描錯誤中恢復的系統(tǒng)、方法和介質。在一個實施方式中,服務處理器確定數(shù)據(jù)掃描錯誤的性質,并根據(jù)錯誤的性質,執(zhí)行多個數(shù)據(jù)掃描錯誤恢復過程中的一個。
文檔編號G06F11/00GK101320341SQ20081009539
公開日2008年12月10日 申請日期2008年5月5日 優(yōu)先權日2007年6月7日
發(fā)明者A·基塔摩恩, D·M·克羅威爾, K·F·瑞克, T·N·特蘭 申請人:國際商業(yè)機器公司