技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù),具體的說(shuō)是一種通過(guò)ipmi協(xié)議獲取CPU寄存器信息的方法。
背景技術(shù):
CPU寄存器是中央處理器內(nèi)的組成部分,可以同時(shí)被內(nèi)部電路和外部電路或軟件訪問(wèn),作為軟硬件的接口,為廣泛的通用編程用戶所熟知。寄存器是有限存貯容量的高速存貯部件,擁有非常高的讀寫速度,所以在寄存器之間的數(shù)據(jù)傳送非???。CPU寄存器可用來(lái)暫存指令、數(shù)據(jù)和地址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計(jì)數(shù)器(PC)。
在服務(wù)器調(diào)試或者維護(hù)過(guò)程中,工程師們往往需要收集相關(guān)的寄存器數(shù)值,根據(jù)數(shù)值進(jìn)行判斷問(wèn)題根源,但是每次收集寄存器信息時(shí),都需要進(jìn)行大量的操作,并且需要浪費(fèi)大量時(shí)間,去將數(shù)值與spec進(jìn)行一一對(duì)應(yīng),浪費(fèi)了大量的時(shí)間和人力成本,并且很容易出現(xiàn)人為錯(cuò)誤。
本發(fā)明提出了一種基于IPMI協(xié)議獲取CPU寄存器信息的方法。IPMI(Intelligent Platform Management Interface,智能平臺(tái)管理接口)是一種開放標(biāo)準(zhǔn)的硬件管理接口規(guī)格,定義了嵌入式管理子系統(tǒng)進(jìn)行通信的特定方法。IPMI 信息通過(guò)基板管理控制器 (BMC)進(jìn)行交流,使用低級(jí)硬件智能管理而不使用操作系統(tǒng)進(jìn)行管理,具有兩個(gè)主要優(yōu)點(diǎn):1、允許進(jìn)行帶外服務(wù)器管理;2、操作系統(tǒng)不必負(fù)擔(dān)傳輸系統(tǒng)狀態(tài)數(shù)據(jù)的任務(wù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)目前技術(shù)發(fā)展的需求和不足之處,提供一種通過(guò)ipmi協(xié)議獲取CPU寄存器信息的方法。
本發(fā)明所述一種通過(guò)ipmi協(xié)議獲取CPU寄存器信息的方法,解決上述技術(shù)問(wèn)題采用的技術(shù)方案如下:所述一種通過(guò)ipmi協(xié)議獲取CPU寄存器信息的方法,基于批處理腳本,利用ipmi協(xié)議訪問(wèn)cpu寄存器,獲取cpu寄存器數(shù)值后,將所有寄存器的數(shù)值進(jìn)行格式化保存,再對(duì)獲取的寄存器信息進(jìn)行spec校驗(yàn)并輸出結(jié)果信息。
優(yōu)選的,利用批處理腳本對(duì)獲取的寄存器信息進(jìn)行spec對(duì)應(yīng),得到當(dāng)前寄存器異常位置,并進(jìn)行簡(jiǎn)單轉(zhuǎn)換說(shuō)明,輸出格式化標(biāo)準(zhǔn)的校驗(yàn)結(jié)果。
優(yōu)選的,所述通過(guò)IPMI協(xié)議獲取寄存器數(shù)值,包括設(shè)定協(xié)議鏈接密鑰,以及設(shè)定ipmi命令參數(shù)兩部分。
本發(fā)明所述一種通過(guò)ipmi協(xié)議獲取CPU寄存器信息的方法與現(xiàn)有技術(shù)相比具有的有益效果是:本發(fā)明通過(guò)ipmi協(xié)議獲取寄存器信息,并進(jìn)行格式化保存,并對(duì)寄存器進(jìn)行分析,通過(guò)批處理腳本對(duì)寄存器數(shù)值進(jìn)行spec對(duì)應(yīng),并給出格式化標(biāo)準(zhǔn)的校驗(yàn)結(jié)果;大大節(jié)省了人力以及時(shí)間成本,并且減少了人為操作可能帶來(lái)的錯(cuò)誤,操作簡(jiǎn)單,為工程師進(jìn)行信息收集以及debug提供了極大的便利。
附圖說(shuō)明
附圖1為所述通過(guò)ipmi協(xié)議獲取CPU寄存器信息的方法的流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,對(duì)本發(fā)明所述一種通過(guò)ipmi協(xié)議獲取CPU寄存器信息的方法進(jìn)一步詳細(xì)說(shuō)明。
實(shí)施例:
本實(shí)施例一種通過(guò)ipmi協(xié)議獲取CPU寄存器信息的方法,基于批處理腳本,利用ipmi協(xié)議訪問(wèn)cpu寄存器,獲取cpu寄存器數(shù)值后,將所有寄存器的數(shù)值進(jìn)行格式化保存,再對(duì)獲取的寄存器信息進(jìn)行spec校驗(yàn),并輸出結(jié)果信息。
所述對(duì)獲取的寄存器信息進(jìn)行spec校驗(yàn)并輸出結(jié)果信息,其內(nèi)容包括:利用批處理腳本對(duì)獲取的寄存器信息進(jìn)行spec對(duì)應(yīng),得到當(dāng)前寄存器異常位置,并進(jìn)行簡(jiǎn)單轉(zhuǎn)換說(shuō)明,輸出格式化標(biāo)準(zhǔn)的校驗(yàn)結(jié)果。
附圖1為所述通過(guò)ipmi協(xié)議獲取CPU寄存器信息的方法的流程圖,如附圖1所示,該方法的具體實(shí)現(xiàn)過(guò)程如下:首先運(yùn)行批處理腳本,并通過(guò)IPMI協(xié)議以及相應(yīng)命令獲取寄存器數(shù)值;然后將寄存器數(shù)值進(jìn)行格式化保存,并通過(guò)批處理腳本對(duì)寄存器數(shù)值進(jìn)行spec對(duì)應(yīng),并轉(zhuǎn)換異常結(jié)果;最后輸出分析結(jié)果。
其中,所述通過(guò)IPMI協(xié)議獲取寄存器數(shù)值,包括設(shè)定協(xié)議鏈接密鑰,以及設(shè)定ipmi命令參數(shù)兩部分;主要代碼如下:
設(shè)定協(xié)議鏈接密鑰
set BMC_IP=
set BMC_U=admin
set BMC_P=admin
設(shè)定ipmi命令參數(shù)
set /a NM_TARGET=0x2c
set /a NM_CHANNEL=0x06
set /a SOCKET_NUM=4
set /a NM_TARGET=%4
set /a NM_CHANNEL=%5
set /a SOCKET_NUM=%6
set TYPE=%7
:: Register definition
set REG_DEF_FILE=%8
@REM
@REM Process command line parameters
@REM
set IPMI_BMC_CMD=ipmitool -I lanplus -H %BMC_IP% -U %BMC_U% -P %BMC_P%
set IPMI_NM_CMD=%IPMI_BMC_CMD% -t %NM_TARGET% -b %NM_CHANNEL%
set PECI_RAW_CMD=%IPMI_NM_CMD% raw 0x2e 0x40 0x57 0x01 0x00
if "%TYPE%" == "csr" (
call :ProcessCSR %SOCKET_NUM% %REG_DEF_FILE%
goto :End
)
if "%TYPE%" == "msr" (
call :ProcessMSR %SOCKET_NUM% %REG_DEF_FILE%
goto :End
)
goto :End。
上述具體實(shí)施方式僅是本發(fā)明的具體個(gè)案,本發(fā)明的專利保護(hù)范圍包括但不限于上述具體實(shí)施方式,任何符合本發(fā)明的權(quán)利要求書的且任何所屬技術(shù)領(lǐng)域的普通技術(shù)人員對(duì)其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。