專利名稱:利用電源子系統(tǒng)診斷并從錯誤中恢復(fù)的方法、系統(tǒng)和產(chǎn)品的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及一種改進的數(shù)據(jù)處理系統(tǒng),并尤其涉及一種利用數(shù)據(jù)處理系統(tǒng)的電源子系統(tǒng)來診斷并從錯誤中恢復(fù)的方法、系統(tǒng)和產(chǎn)品。更確切地說,本發(fā)明涉及利用數(shù)據(jù)處理系統(tǒng)的電源子系統(tǒng)來診斷并從I/O子系統(tǒng)錯誤中恢復(fù)。
背景技術(shù):
在計算機系統(tǒng)中,可出現(xiàn)很多不同種類的錯誤。由于存儲在該計算機系統(tǒng)中幫助診斷的信息(如某些寄存器的內(nèi)容)由該錯誤而導(dǎo)致不能被訪問,所以這些錯誤中的一些難以診斷并修復(fù)。
尤其是輸入/輸出(I/O)適配器錯誤,若沒有專門的調(diào)試軟件,則可能難以診斷,并且,可能難以在制造者的位置遠(yuǎn)程地再現(xiàn)該錯誤。難以診斷I/O錯誤是由于平面布線造成的??梢杂谐^十個PCI裝置,并且?guī)缀醪豢赡軐栴}隔離到一個適配器。在很多情況中,一旦一個PCI裝置引起錯誤,將從其它PCI設(shè)備引起一些副作用錯誤。
目前,難以排除在客戶位置處的重大故障。當(dāng)前的一個途徑是運行操作系統(tǒng)轉(zhuǎn)儲(dump),以及希望返回到制造者處來找到并排除該問題。
為了正確的診斷I/O錯誤,I/O芯片的擴展寄存器信息是必要的。我們必須能夠收集該擴展寄存器信息,以在故障時診斷每個裝置的狀態(tài)。
因此,存在對用于利用數(shù)據(jù)處理系統(tǒng)的電源子系統(tǒng)診斷并從I/O子系統(tǒng)錯誤恢復(fù)的方法、系統(tǒng)、以及產(chǎn)品的需要。
發(fā)明內(nèi)容
披露了一種利用計算機系統(tǒng)的電源子系統(tǒng)來診斷并從I/O子系統(tǒng)錯誤中恢復(fù)的方法、系統(tǒng)、以及計算機程序產(chǎn)品。數(shù)據(jù)處理系統(tǒng)包括計算機系統(tǒng)和硬件管理計算機系統(tǒng)。計算機系統(tǒng)的電源子系統(tǒng)包括電源子系統(tǒng)的電源內(nèi)的JTAG引擎。通過JTAG/I2C總線,將JTAG引擎耦接到I/O子系統(tǒng)中的多個不同的集成電路。在JTAG引擎內(nèi)從計算機系統(tǒng)外部的硬件管理計算機系統(tǒng)接收命令。該命令指定將要利用指定的一個集成電路來執(zhí)行的操作。JTAG引擎運行這樣的命令,該命令利用指定的集成電路來執(zhí)行指定的操作。隨后,將該操作的結(jié)果從該電源返回到硬件管理計算機系統(tǒng),用于分析??衫迷摬僮鞯慕Y(jié)果來診斷并糾正錯誤。
一旦出現(xiàn)I/O錯誤,可使用本發(fā)明來得到擴展寄存器信息,以在故障時診斷每個裝置的狀態(tài)。
在下面的書面詳細(xì)描述中,本發(fā)明上面的以及另外的目的、特點和優(yōu)點將變得清晰。
在所附的權(quán)利要求中闡明了本發(fā)明的新穎的特點、確信的特征。然而,當(dāng)結(jié)合附圖閱讀時,通過參考下面對演示性實施例的詳細(xì)描述,將最好地理解本發(fā)明自身以及其使用的優(yōu)選模式、進一步目的和優(yōu)點,附圖中。
圖1為根據(jù)本發(fā)明,可實現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的方框圖;圖2為根據(jù)本發(fā)明,圖1的I/O子系統(tǒng)和電源子系統(tǒng)的更詳細(xì)的方框圖;圖3a描述了根據(jù)本發(fā)明的顯示硬件管理控制臺的高級流程圖,該硬件管理控制臺向電源子系統(tǒng)傳送命令,以利用該電源子系統(tǒng)診斷并從錯誤中恢復(fù);圖3b顯示了根據(jù)本發(fā)明的描述包括在電源子系統(tǒng)內(nèi)的電源控制器的高級流程圖,該電源控制器處理命令,以診斷并從錯誤中恢復(fù);圖3c為根據(jù)本發(fā)明,描述了顯示包括在電源子系統(tǒng)內(nèi)的電源的高級流程圖,其運行命令以從I/O子系統(tǒng)的集成電路讀取或?qū)懭氲皆揑/O子系統(tǒng)的集成電路;以及圖4為根據(jù)本發(fā)明,顯示了命令的分組定義的方框圖,其中數(shù)據(jù)處理系統(tǒng)的電源子系統(tǒng)利用該命令以診斷并從I/O子系統(tǒng)的錯誤中恢復(fù)。
具體實施例方式
通過參照附圖,可以更好地理解本發(fā)明的優(yōu)選實施例和它的優(yōu)點,相同的標(biāo)記用于附圖的相同及對應(yīng)的部分。
披露了利用計算機的電源子系統(tǒng)來診斷并從I/O子系統(tǒng)錯誤中恢復(fù)的方法、系統(tǒng)、以及計算機程序產(chǎn)品。將計算機耦接到與該計算機分離的硬件管理計算機系統(tǒng)。計算機的電源子系統(tǒng)包括電源控制器,其耦接到一個或更多電源,其中每個I/O抽屜(drawer)中放置一個電源。每個電源包括處理器和JTAG引擎。將JTAG引擎耦接到集成電路,該集成電路為I/O子系統(tǒng)的一部分。例如,將JTAG引擎耦接到使用JTAG/I2C總線的I/O抽屜中的每個PCI-PCI橋和每個EADS芯片。
當(dāng)I/O抽屜中出現(xiàn)錯誤時,JTAG引擎可訪問任何使用JTAG/I2C總線的EADS或PCI-PCI橋芯片內(nèi)的寄存器。當(dāng)出現(xiàn)錯誤時,硬件管理計算機傳送命令到電源控制器,該電源控制器將該命令轉(zhuǎn)發(fā)到由該命令指定的I/O抽屜中的電源。
隨后,I/O抽屜中的JTAG引擎通過確定環(huán)號(ring number)來確定該命令指定了哪個具體的芯片。該抽屜中的每個芯片與唯一的JTAG環(huán)號相關(guān)聯(lián)。電源的JTAG引擎使用該環(huán)號來確定將要訪問哪個芯片。隨后,JTAG引擎讀取那個芯片的寄存器的內(nèi)容,或者寫入數(shù)據(jù)到該寄存器。
從該電源將運行該命令的結(jié)果返回到電源控制器,隨后,該電源控制器將該結(jié)果轉(zhuǎn)發(fā)回該硬件管理計算機。隨后,該硬件管理計算機評估該結(jié)果,以診斷并使該I/O抽屜從錯誤中恢復(fù)。
圖1描述了根據(jù)本發(fā)明,可實現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)100可為對稱多處理器(SMP)系統(tǒng),其包括連接到系統(tǒng)總線106的多個處理器102、103、104、以及105。例如,數(shù)據(jù)處理系統(tǒng)100可為紐約Armonk的國際商用機器公司的產(chǎn)品IBM RS/6000。數(shù)據(jù)處理系統(tǒng)100包括中央電子集合體101,其包括邏輯分區(qū)硬件。CEC 101包括連接到系統(tǒng)總線106的多個處理器102、103、104、以及105??商鎿Q地,可使用單處理器系統(tǒng)。存儲控制器/緩沖存儲器108也連接到系統(tǒng)總線106,該存儲控制器/緩沖存儲器108提供到多個本地存儲器160-163的接口。RIO集線器110被連接到系統(tǒng)總線106,并提供到RIO總線112的接口。如所描述的,可將存儲控制器/緩沖存儲器108和RIO集線器110集成。
數(shù)據(jù)處理系統(tǒng)100是邏輯分區(qū)的數(shù)據(jù)處理系統(tǒng)。因此,數(shù)據(jù)處理系統(tǒng)100可具有同步運行的多個不同種類的操作系統(tǒng)(或單個操作系統(tǒng)的多個實例)。這些多操作系統(tǒng)中的每個可具有在其中運行的任意數(shù)目的軟件程序。數(shù)據(jù)處理系統(tǒng)100被邏輯分區(qū),使得可與PCI I/O適配器耦接的不同的PCI插槽,如插槽120、121、以及127-130、圖形適配器148、以及硬盤適配器149,可分別分配到不同的邏輯分區(qū)。此情況中,圖形適配器148為顯示裝置(未示出)提供連接,而硬盤適配器149提供連接以控制硬盤150。
因此,例如,假設(shè)將數(shù)據(jù)處理系統(tǒng)100劃分為三個邏輯分區(qū)P1、P2和P3。將插槽120、121、以及127-130、圖形適配器148、以及硬盤適配器149中的每個、主機處理器102-105中的每個、以及本地存儲器160-163中的每個分配到所述三個分區(qū)中的一個。
描述了兩個I/O抽屜202和204。本領(lǐng)域的技術(shù)人員可知曉,數(shù)據(jù)處理系統(tǒng)100可包括任意數(shù)目的I/O抽屜。
I/O抽屜202包括RIO至PCI橋114,以及如下所述耦接到RIO至PCI橋114的裝置。如下所述,I/O抽屜204包括RIO至PCI橋140,以及耦接到RIO至PCI橋140的裝置。
RIO至PCI橋114被連接到RIO總線112,并提供到PCI總線117和PCI總線118的接口。RIO至PCI橋114包括一個或更多PCI主橋(PHB),如PHB115和PHB 116。將每個PHB通過PCI總線耦接到PCI至PCI橋。例如,將PHB 115通過PCI總線117耦接到PCI至PCI橋119。將PHB 116通過PCI總線118耦接到PCI至PCI橋126。將每個PCI至PCI橋耦接到一個或更多PCI插槽。例如,使用PCI總線122,將PCI至PCI橋119耦接到插槽120和插槽121。盡管只示出了兩個插槽,但通常每個PHB支持四個或八個插槽。使用PCI總線131,將PCI至PCI橋126耦接到插槽127-130。
每個插槽包括可附帶PCI I/O適配器的EADS芯片。例如,插槽120包括EADS 124。可將I/O適配器插入到插槽中并由此耦接到EADS。例如,將I/O適配器125插入到插槽120中并耦接到EADS 124??衫肐/O適配器,將I/O裝置耦接到數(shù)據(jù)處理系統(tǒng)100。例如,如所描述的,將I/O裝置123耦接到I/O適配器125。
可經(jīng)由PCI總線144、EADS 143、PCI總線142、PCI至PCI橋244、PCI至PCI總線141、以及RIO至PCI橋140,將存儲映射圖形適配器148連接到RIO總線112。可將硬盤150耦接到硬盤適配器149,該硬盤適配器149連接到PCI總線145。將此總線依次地連接到EADS 143、PCI至PCI橋244、以及PCI總線141,其中,將該EADS 143通過PCI總線142連接到RIO至PCI橋140。
RIO至PCI橋132為PCI總線133提供接口以連接到RIO總線112。通過PCI總線135將PCI I/O適配器136連接到EADS 134。將EADS 134連接到PCI總線133。此PCI總線也將RIO至PCI橋132連接到服務(wù)處理器信箱接口及ISA總線訪問通過邏輯194。服務(wù)處理器信箱接口及ISA總線訪問通過邏輯194轉(zhuǎn)發(fā)去往PCI/ISA橋193的PCI訪問。將NVRAM存儲器192連接到ISA總線196。將服務(wù)處理器135經(jīng)由它的本地PCI總線195耦接到服務(wù)處理器信箱接口及ISA總線訪問通過邏輯194。也將服務(wù)處理器135通過多個JTAG/I2C總線134連接到處理器102-105。JTAG/I2C總線134是JTAG/掃描總線(參看IEEE 1149.1)以及飛利浦I2C總線的結(jié)合。然而,可選擇地,JTAG/I2C總線134可由僅飛利浦I2C總線或僅JTAG/掃描總線替換。將主處理器102、103、104、以及105的所有SP-ATTN信號一起連接到該服務(wù)處理器的中斷輸入信號。服務(wù)處理器135具有它自己的本地存儲器191,并且,具有到硬件OP-板190的訪問權(quán)。
當(dāng)數(shù)據(jù)處理系統(tǒng)100一開始加電時,服務(wù)處理器135使用JTAG/I2C總線134來詢問該系統(tǒng)(主)處理器102-105、存儲控制器/緩沖存儲器108、以及RIO集線器110。完成此步驟時,服務(wù)處理器135便具有了對數(shù)據(jù)處理系統(tǒng)100的存貨清單和拓?fù)涞牧私狻T谕ㄟ^詢問主處理器102-105、存儲控制器/緩沖存儲器108、以及RIO集線器110找到的所有元件上,服務(wù)處理器135還運行嵌入自檢(BIST)、基本確保測試(BAT)、以及存儲器測試。在BIST、BAT、以及存儲器測試期間檢測的故障的錯誤信息,由服務(wù)處理器135進行匯總和報告。
如果取出在BIST、BAT、以及存儲器測試期間發(fā)現(xiàn)有故障的元件之后,仍有可能實現(xiàn)系統(tǒng)資源的有意義/有效的配置,則允許數(shù)據(jù)處理系統(tǒng)100進行將可運行的代碼加載到本地(主)存儲器160-163。隨后,為了運行加載到主存儲器160-163的代碼,服務(wù)處理器135釋放主處理器102-105。當(dāng)主處理器102-105正在從數(shù)據(jù)處理系統(tǒng)100內(nèi)的各個操作系統(tǒng)運行代碼時,服務(wù)處理器135進入監(jiān)視和報告錯誤的模式。舉例來說,由服務(wù)處理器135監(jiān)視的項目的類型包括降溫風(fēng)扇速度和工作、溫度傳感器、電源調(diào)節(jié)器、以及由處理器102-105、本地存儲器160-163、以及RIO集線器110報告的可恢復(fù)以及不可恢復(fù)的錯誤。服務(wù)處理器135有責(zé)任保存并報告涉及數(shù)據(jù)處理系統(tǒng)100中所有監(jiān)視項目的錯誤信息。服務(wù)處理器135還根據(jù)錯誤的類型和定義的閾值采取行動。例如,服務(wù)處理器135可注意到在處理器的緩沖存儲器上過多的可恢復(fù)錯誤,并決定此為硬件故障的預(yù)兆。基于此確定,服務(wù)處理器135可標(biāo)記出那個資源,以在當(dāng)前運行的會話和將來的初始化程序加載(IPL)期間取消配置。有時,IPL也被稱作“引導(dǎo)”或“自引導(dǎo)”。
可使用各種商用計算機系統(tǒng)來實現(xiàn)數(shù)據(jù)處理系統(tǒng)100。例如,數(shù)據(jù)處理系統(tǒng)100可使用IBM eServer Model 840系統(tǒng)實現(xiàn),該系統(tǒng)可獲得于國際商用機器公司。這樣的系統(tǒng)可使用OS/400操作系統(tǒng)來支持邏輯分區(qū),該操作系統(tǒng)也可獲得于國際商用機器公司。
本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,圖1描述的硬件可做出變化。例如,也可使用其他外設(shè),如光盤驅(qū)動器和類似裝置來補充或替換描述的硬件。描述的例子并不意味著暗示有關(guān)本發(fā)明的結(jié)構(gòu)限制。
圖2為根據(jù)本發(fā)明的圖1的I/O子系統(tǒng)和電源子系統(tǒng)的更詳細(xì)的方框圖。數(shù)據(jù)處理系統(tǒng)100包括耦接到CEC 101的硬件管理控制臺(HMC)206。HMC206是分離的計算機系統(tǒng),其用于管理CEC 101以及數(shù)據(jù)處理系統(tǒng)100的其它組件,如I/O抽屜202和204。數(shù)據(jù)處理系統(tǒng)100包括電源子系統(tǒng),其包括電源控制器208以及一個或更多的電源,如電源210和212。數(shù)據(jù)處理系統(tǒng)100還包括一個或更多I/O子系統(tǒng),每個I/O子系統(tǒng)包括一個或更多I/O抽屜、如I/O抽屜202和204。
將HMC 206通過串行電纜207耦接到電源控制器208。利用JTAG/I2C總線209將電源控制器208耦接到一個或更多I/O抽屜。
I/O抽屜202包括電源210,電源210通過JTAG/I2C總線216耦接到EADS124、EADS 214、PCI-PCI橋119、以及PCI-PCI橋126。EADS 124包括用于將EADS 124耦接到JTAG/I2C總線216的I2C端口218。EADS 214包括用于將EADS 214耦接到JTAG/I2C總線216的I2C端口220。PCI-PCI橋119包括用于將PCI-PCI橋119耦接到JTAG/I2C總線216的JTAG端口222。以及,PCI-PCI橋126包括用于將PCI-PCI橋126耦接到JTAG/I2C總線216的JTAG端口224。
利用處理器226,電源210通過JTAG/I2C總線209接收并傳送命令。電源210還包括用于通過處理器總線230從處理器226接收命令的JTAG引擎228。隨后,JTAG引擎228根據(jù)JTAG標(biāo)準(zhǔn)來處理命令,以根據(jù)包括在該命令中的環(huán)選擇來選擇集成電路,即芯片,如I/O芯片,并且執(zhí)行該命令中指定的操作。可從選擇的芯片內(nèi)的寄存器讀取或向其寫入。因此,可通過讀取一個或更多所選芯片的寄存器,從芯片獲得擴展寄存器信息,以在故障時診斷每個裝置的狀態(tài)。
例如,EADS 124可與環(huán)選擇0相聯(lián)合,而EADS 214與環(huán)選擇2相聯(lián)合,PCI-PCI橋119與環(huán)選擇3相聯(lián)合,PCI-PCI橋126與環(huán)選擇4相聯(lián)合。這樣,可通過JTAG引擎228將命令適當(dāng)?shù)芈酚傻街付ǖ男酒?br>
利用處理器232,電源212通過JTAG/I2C總線209接收并傳送命令。電源212還包括用于通過處理器總線236從處理器232接收命令的JTAG引擎234。隨后,JTAG引擎234根據(jù)JTAG標(biāo)準(zhǔn)來處理命令,以根據(jù)包括在該命令中的環(huán)選擇來選擇芯片,并且執(zhí)行該命令中指定的操作。
將電源212通過JTAG/I2C總線238耦接到EADS 143和PCI-PCI橋244。EADS 143包括用于將EADS 143耦接到JTAG/I2C總線238的I2C端口240。PCI-PCI橋244包括用于將PCI-PCI橋244耦接到JTAG/I2C總線238的JTAG端口242。
無論在任意I/O抽屜中是否出現(xiàn)了錯誤,均可運行這里以及通過圖3a-3c描述的處理。因此,如果在適配器中出現(xiàn)了錯誤,可從與適配器相連接的EADS芯片和/或PCI/PCI橋讀取或向其寫入。無論是否出現(xiàn)了錯誤的狀況,均可讀取一個或所有這些芯片內(nèi)的寄存器的內(nèi)容。無論I/O抽屜中是否出現(xiàn)了錯誤,也均可訪問與其他適配器相連接的芯片的內(nèi)容圖3a根據(jù)本發(fā)明描述了顯示硬件管理控制臺的高級流程圖,該硬件管理控制臺向電源子系統(tǒng)傳送命令,以利用該電源子系統(tǒng)進行診斷并從錯誤中恢復(fù)。如所描述的,由塊300啟動該處理,并且,之后轉(zhuǎn)到塊302,其顯示了選擇I/O抽屜以進行評估。接下來,塊304描述了在所選的I/O抽屜中選擇一個集成電路,即芯片。接下來,塊306描述了HMC確定與所選的芯片相關(guān)聯(lián)的環(huán)號。每個芯片與特定的環(huán)號相結(jié)合,將由JTAG引擎使用該環(huán)號,以選擇芯片。
隨后,該處理轉(zhuǎn)到塊308,其描述了指定數(shù)據(jù)和處理的類型,如讀取或?qū)懭氩僮?,以實現(xiàn)利用該芯片。之后,塊310描述了HMC構(gòu)造命令。該命令包括圖4顯示的信息、用于識別將要利用哪個芯片的環(huán)選擇、數(shù)據(jù)和其它信息,以及具體的I/O抽屜的識別,所述圖4顯示的信息包括指明了處理的類型的命令主要部分和次要部分。隨后,塊312顯示了HMC傳送命令到數(shù)據(jù)處理系統(tǒng)的電源控制器。接下來,塊314描述了HMC從電源控制器接收回復(fù)。接下來,塊316顯示了HMC使用該回復(fù)來診斷并修復(fù)錯誤。隨后,如所描述的,該處理由塊318中止。
圖3b為根據(jù)本發(fā)明,顯示了描述包括在電源子系統(tǒng)內(nèi)的電源控制器的高級流程圖,該電源控制器處理命令以診斷并從錯誤中恢復(fù);如所描述的,由塊320啟動該處理,并且之后轉(zhuǎn)到塊322,其顯示了電源控制器從HMC接收命令。接下來,塊324描述了電源控制器確定該命令指定了哪個I/O抽屜。
隨后,該處理轉(zhuǎn)到塊326,其顯示了電源控制器將該命令轉(zhuǎn)發(fā)到所選的I/O抽屜中的電源。隨后,塊328描述了電源控制器從該電源接收回復(fù)、增加序列號、并將該回復(fù)轉(zhuǎn)發(fā)到HMC。隨后,如所描述的,該處理由塊330中止。
圖3c為根據(jù)本發(fā)明,描述了顯示包括在電源子系統(tǒng)內(nèi)的電源的高級流程圖,該電源運行命令,以從I/O子系統(tǒng)中的集成電路讀取或向該I/O子系統(tǒng)中的集成電路寫入。如所描述的,由塊350啟動該處理,并且之后轉(zhuǎn)到塊352,其顯示了電源的處理器接收命令并將它轉(zhuǎn)發(fā)到該電源的JTAG引擎。接下來,塊354描述了JTAG引擎運行該命令以讀取或?qū)懭肱c包括在該命令中的環(huán)號相關(guān)聯(lián)的芯片。隨后,塊356顯示了JTAG引擎生成具有該命令的運行結(jié)果的回復(fù)。之后,塊358描述了JTAG引擎將該回復(fù)轉(zhuǎn)發(fā)到電源的處理器。隨后,塊360顯示了該處理器將該回復(fù)發(fā)送到電源控制器。隨后,如所描述的,該處理由塊362中止圖4為根據(jù)本發(fā)明,顯示了命令的分組定義400的方框圖,其中數(shù)據(jù)處理系統(tǒng)的電源子系統(tǒng)利用該命令以診斷并從I/O子系統(tǒng)的錯誤中恢復(fù)。分組定義400包括識別發(fā)送方的發(fā)送方識別符402。一些數(shù)據(jù)處理系統(tǒng)包括多個不同的HMC。在這些系統(tǒng)中,通過發(fā)送方識別符402識別發(fā)送命令的具體的HMC。還包括作為該分組的序列號的序列號404。在傳送期間,當(dāng)丟失或破壞了分組時,序列號404允許重試命令。電源控制器將處理具有各自序列號的分組一次。
利用命令主要部分(command major)406和命令次要部分(commandminor)408來描述將要由JTAG引擎執(zhí)行的操作。例如,命令主要部分406可通過EADS芯片的I2C端口來指定該EADS芯片的訪問,或通過PCI-PCI橋的JTAG總線來指定該PCI-PCI橋的訪問。命令次要部分408將指定讀取或?qū)懭氩僮鳌?br>
環(huán)選擇410指示將要訪問哪個芯片。例如,每個芯片與不同的環(huán)號相關(guān)聯(lián)。此號碼用作環(huán)選擇410,以識別該芯片。
校驗和412是數(shù)據(jù)字的和的二進制反碼。字計數(shù)414指明了分組中的數(shù)據(jù)字的數(shù)目。位計數(shù)416指明了用于最后數(shù)據(jù)字的位數(shù)。校驗和412、字計數(shù)414、以及位計數(shù)416用于驗證是否準(zhǔn)確地完成了分組傳送。
數(shù)據(jù)字0 418、數(shù)據(jù)字1 420、到數(shù)據(jù)字59 422包括將要為寫入操作寫入的數(shù)據(jù)。當(dāng)命令是從電源子系統(tǒng)到HMC的回復(fù)時,數(shù)據(jù)字0 418、數(shù)據(jù)字1420、到數(shù)據(jù)字59 422包括在運行讀取操作之后,從芯片寄存器讀取的數(shù)據(jù)。
下面為本發(fā)明的處理的例子。
為從EADS集成電路讀取或向其寫入,在分組中利用下面的值發(fā)送方識別符 =適當(dāng)?shù)奶柎a序列號=依次的下一個號碼命令主要部分 =0x20(指明EADS I2C訪問)命令次要部分 =0x00(以讀取芯片)0x10(以寫入芯片)環(huán)選擇=0x01(板1上的EADS 1)0x02(板1上的EADS 2)0x03(板1上的EADS 3)0x81(板2上的EADS 1)0x82(板2上的EADS 2)0x83(板2上的EADS 3)校驗和=未使用字計數(shù)=0x03位計數(shù)=0x00對于讀取操作將這些值從HMC發(fā)送到電源控制器數(shù)據(jù)字0 =要讀取的選擇的I2C寄存器數(shù)據(jù)字1 =0x0000數(shù)據(jù)字2 =0x0000將這些值從電源控制器返回到HMC數(shù)據(jù)字0 =要讀取的選擇的寄存器的高16位的內(nèi)容數(shù)據(jù)字1 =要讀取的選擇的寄存器的低16位的內(nèi)容對于寫入操作將這些值從HMC發(fā)送到電源控制器數(shù)據(jù)字0 =選擇的要寫入的寄存器數(shù)據(jù)字1 =要寫入選擇的寄存器的高16位的內(nèi)容數(shù)據(jù)字1 =要寫入選擇的寄存器的低16位的內(nèi)容將發(fā)送到電源控制器的報頭復(fù)制到來自于電源控制器的響應(yīng),并且增加序列號。
為從PCI-PCI橋集成電路讀取或向其寫入,在分組中利用下面的值發(fā)送方識別符 =適當(dāng)?shù)奶柎a序列號=依次的下一個號碼命令主要部分 =0x40(指明PCI-PCI JTAG訪問)命令次要部分 =0x00(以讀取芯片)0x80(以寫入芯片)環(huán)選擇=0x00(板1上的PCI-PCI)0x80(板2上的PCI-PCI)校驗和=未使用字計數(shù)=0x03位計數(shù)=0x00數(shù)據(jù)字0 =選擇的JTAG寄存器數(shù)據(jù)字1 =寄存器值數(shù)據(jù)字2 =寄存器值數(shù)據(jù)字3 =寄存器值數(shù)據(jù)字4 =寄存器值特別應(yīng)當(dāng)注意,盡管已在全部功能的數(shù)據(jù)處理系統(tǒng)的上下文描述了本發(fā)明,但本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明的處理能夠以指令的計算機可讀介質(zhì)的形式以及各種形式發(fā)布,并且,無論實際用于實現(xiàn)發(fā)布的信號承載媒介的具體類型是什么,均可同樣應(yīng)用本發(fā)明。計算機可讀媒介的例子包括可記錄型媒介,如軟盤、硬盤驅(qū)動器、RAM、CD-ROM、DVD-ROM、以及傳輸型媒介,如數(shù)字和模擬通信鏈路、有線或無線通信鏈路,其使用這樣的傳輸形式,例如,無線電頻率和光波傳輸。計算機可讀媒介可采用編碼的格式,在具體數(shù)據(jù)處理系統(tǒng)中,其對于實際使用而解碼。
為演示和描述的目的,已呈現(xiàn)了本發(fā)明的描述,并且本發(fā)明的描述不試圖將本發(fā)明徹底包括或限制在所披露的形式。對于本領(lǐng)域的普通技術(shù)人員來說,顯然可以有很多修改和變化。選擇并描述了實施例,是為了最好地說明本發(fā)明的原理、實踐應(yīng)用,以及使其他本領(lǐng)域的普通技術(shù)人員理解本發(fā)明的帶有各種變化的各種實施例,其適用于具體使用目的。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng)中的方法,用于診斷錯誤,所述數(shù)據(jù)處理系統(tǒng)包括計算機,該計算機包括電源子系統(tǒng)和至少一個I/O子系統(tǒng),所述方法包括以下步驟確定在所述至少一個I/O子系統(tǒng)中出現(xiàn)錯誤;以及利用所述電源子系統(tǒng),訪問包括在所述I/O子系統(tǒng)中的集成電路中的寄存器,以在所述I/O子系統(tǒng)處于錯誤狀態(tài)時診斷所述錯誤。
2.根據(jù)權(quán)利要求1的方法,其特征在于,所述數(shù)據(jù)處理系統(tǒng)包括耦接到所述計算機的硬件管理計算機系統(tǒng),該方法還包括將所述硬件管理計算機系統(tǒng)耦接到包括在所述計算機中的中央電子集合體;以及由所述硬件管理計算機系統(tǒng)訪問所述電源子系統(tǒng)。
3.根據(jù)權(quán)利要求1的方法,還包括在所述電源子系統(tǒng)中,包括電源控制器和至少一個電源;以及所述電源位于所述至少一個I/O子系統(tǒng)中。
4.根據(jù)權(quán)利要求3的方法,還包括在所述至少一個電源中,包括處理器和JTAG處理引擎。
5.根據(jù)權(quán)利要求4的方法,還包括所述至少一個I/O子系統(tǒng)內(nèi)包括I/O適配器,該I/O適配器耦接到第一集成電路和耦接到所述第一集成電路的第二集成電路;以及將所述第一和第二集成電路耦接到所述處理引擎。
6.根據(jù)權(quán)利要求5的方法,還包括利用JTAG/I2C總線,將所述第一和第二集成電路耦接到所述JTAG處理引擎。
7.根據(jù)權(quán)利要求1的方法,其特征在于,所述數(shù)據(jù)處理系統(tǒng)包括耦接到所述計算機的硬件管理計算機系統(tǒng),該方法還包括將所述硬件管理計算機系統(tǒng)耦接到包括在所述計算機中的中央電子集合體;以及將命令從所述硬件管理計算機系統(tǒng)傳送到所述電源子系統(tǒng),以訪問所述至少一個I/O子系統(tǒng)。
8.根據(jù)權(quán)利要求7的方法,還包括在包括于所述I/O子系統(tǒng)內(nèi)的電源中接收所述命令;在所述電源內(nèi)執(zhí)行所述命令;以及當(dāng)所述I/O子系統(tǒng)處于錯誤狀態(tài)時,響應(yīng)于執(zhí)行所述命令,由所述電源訪問包括在所述I/O子系統(tǒng)中的集成電路。
9.根據(jù)權(quán)利要求7的方法,還包括所述電源子系統(tǒng)中,包括至少一個電源,所述電源位于所述至少一個I/O子系統(tǒng)中;所述至少一個電源中包括JTAG引擎;所述至少一個I/O子系統(tǒng)內(nèi)包括I/O適配器,該I/O適配器耦接到第一集成電路和耦接到所述第一集成電路的第二集成電路;利用JTAG/I2C總線,將所述第一和第二集成電路耦接到所述JTAG引擎;將所述命令從所述硬件管理計算機系統(tǒng)發(fā)送到所述電源,以訪問所述至少一個I/O子系統(tǒng);在所述JTAG引擎內(nèi)接收所述命令;以及響應(yīng)于所述JTAG引擎處理所述命令,由所述JTAG引擎訪問所述第一或第二集成電路。
10.根據(jù)權(quán)利要求9的方法,還包括讀取包括在所述第一或第二集成電路內(nèi)的寄存器的內(nèi)容。
11.根據(jù)權(quán)利要求9的方法,還包括寫入數(shù)據(jù)以存儲到包括于所述第一或第二集成電路中的寄存器。
12.根據(jù)權(quán)利要求9的方法,還包括將唯一的JTAG環(huán)號與所述第一和第二集成電路相關(guān)聯(lián);以及利用與所述第一和第二集成電路相關(guān)聯(lián)的JTAG環(huán)號,確定將要訪問所述第一或第二集成電路。
13.一種數(shù)據(jù)處理系統(tǒng),用于診斷錯誤,所述數(shù)據(jù)處理系統(tǒng)包括計算機,該計算機包括電源子系統(tǒng)和至少一個I/O子系統(tǒng),所述系統(tǒng)包括所述計算機包括CPU運行代碼,其用于確定在所述至少一個I/O子系統(tǒng)中出現(xiàn)錯誤;以及所述電源子系統(tǒng),用于利用所述電源子系統(tǒng)來訪問集成電路中的寄存器,以當(dāng)所述I/O子系統(tǒng)處于錯誤狀態(tài)時,診斷所述錯誤,其中該集成電路包括在所述I/O子系統(tǒng)內(nèi)。
14.根據(jù)權(quán)利要求13的系統(tǒng),其特征在于,所述數(shù)據(jù)處理系統(tǒng)包括耦接到所述計算機的硬件管理計算機系統(tǒng),該系統(tǒng)還包括將所述硬件管理計算機系統(tǒng)耦接到包括在所述計算機中的中央電子集合體;以及所述硬件管理計算機系統(tǒng)用于訪問所述電源子系統(tǒng)。
15.根據(jù)權(quán)利要求13的系統(tǒng),還包括所述電源子系統(tǒng)中包括的電源控制器和至少一個電源;以及所述電源位于所述至少一個I/O子系統(tǒng)中。
16.根據(jù)權(quán)利要求15的系統(tǒng),還包括所述至少一個電源中包括的處理器和JTAG處理引擎。
17.根據(jù)權(quán)利要求16的系統(tǒng),還包括所述至少一個I/O子系統(tǒng)內(nèi)包括的I/O適配器,所述I/O適配器耦接到第一集成電路和耦接到所述第一集成電路的第二集成電路;以及將所述第一和第二集成電路耦接到所述處理引擎。
18.根據(jù)權(quán)利要求17的系統(tǒng),還包括利用JTAG/I2C總線,將所述第一和第二集成電路耦接到所述JTAG處理引擎。
19.根據(jù)權(quán)利要求13的系統(tǒng),其特征在于,所述數(shù)據(jù)處理系統(tǒng)包括耦接到所述計算機的硬件管理計算機系統(tǒng),該系統(tǒng)還包括將所述硬件管理計算機系統(tǒng)耦接到包括在所述計算機中的中央電子集合體;以及所述硬件管理計算機系統(tǒng)將命令傳送到所述電源子系統(tǒng),以訪問所述至少一個I/O子系統(tǒng)。
20.根據(jù)權(quán)利要求19的系統(tǒng),還包括所述電源,包括在所述I/O子系統(tǒng)內(nèi),用于接收所述命令;所述電源,用于運行所述命令;以及當(dāng)所述I/O子系統(tǒng)處于錯誤狀態(tài)時,響應(yīng)于運行所述命令,所述電源訪問包括在所述I/O子系統(tǒng)中的集成電路。
21.根據(jù)權(quán)利要求19的系統(tǒng),還包括至少一個電源,包括在所述電源子系統(tǒng)中,所述電源位于所述至少一個I/O子系統(tǒng)中;JTAG引擎,包括在所述至少一個電源中;I/O適配器,包括在所述至少一個I/O子系統(tǒng)內(nèi),所述I/O適配器耦接到第一集成電路和耦接到所述第一集成電路的第二集成電路;所述第一和第二集成電路,利用JTAG/I2C總線耦接到所述JTAG引擎;所述硬件管理計算機系統(tǒng),由于將所述命令發(fā)送到所述電源,以訪問所述至少一個I/O子系統(tǒng);所述JTAG引擎,用于接收所述命令;以及所述JTAG引擎,用于響應(yīng)于所述JTAG引擎處理所述命令,而訪問所述第一或第二集成電路。
22.根據(jù)權(quán)利要求21的系統(tǒng),還包括所述JTAG引擎,用于讀取包括在所述第一或第二集成電路中的寄存器的內(nèi)容。
23.根據(jù)權(quán)利要求22的系統(tǒng),還包括所述JTAG引擎,由于寫入數(shù)據(jù)以存儲到包括在所述第一或第二集成電路中的所述寄存器。
24.根據(jù)權(quán)利要求21的系統(tǒng),還包括唯一的JTAG環(huán)號,與所述第一和第二集成電路相關(guān)聯(lián);以及利用所述JTAG環(huán)號來確定將要訪問所述第一或第二集成電路。
25.一種計算機程序產(chǎn)品,其用于診斷錯誤,所述產(chǎn)品包括提供數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)包括計算機,該計算機包括電源子系統(tǒng)和至少一個I/O子系統(tǒng);指令裝置,用于確定在所述至少一個I/O子系統(tǒng)中出現(xiàn)錯誤;以及指令裝置,用于利用所述電源子系統(tǒng),訪問包括在所述I/O子系統(tǒng)中的集成電路中的寄存器,以在所述I/O子系統(tǒng)處于錯誤狀態(tài)時,診斷所述錯誤。
全文摘要
披露了一種用于診斷并從I/O子系統(tǒng)錯誤中恢復(fù)的方法、系統(tǒng)、以及計算機程序產(chǎn)品。數(shù)據(jù)處理系統(tǒng)包括計算機,該計算機包括電源子系統(tǒng)和至少一個I/O子系統(tǒng)。對在I/O子系統(tǒng)中出現(xiàn)錯誤做出確定。利用電源子系統(tǒng),訪問包括在I/O子系統(tǒng)中的集成電路中的寄存器,以在I/O子系統(tǒng)處于錯誤狀態(tài)時診斷錯誤。
文檔編號G06F11/00GK1627265SQ20041006442
公開日2005年6月15日 申請日期2004年8月24日 優(yōu)先權(quán)日2003年12月10日
發(fā)明者彼得·J·L·范吉亞, 路易斯·G·羅德里格斯, 史蒂文·馮格維博爾, 彼得·A·溫德林 申請人:國際商業(yè)機器公司