Bios存取系統(tǒng)及方法
【專利摘要】一種BIOS存取系統(tǒng),應(yīng)用于服務(wù)器的中間控制設(shè)備中,該服務(wù)器包括第一BIOS芯片以及第二BIOS芯片,該系統(tǒng)通過并行讀取的方式對第一BIOS芯片的奇數(shù)數(shù)據(jù)塊中的數(shù)據(jù)以及第二BIOS芯片的偶數(shù)數(shù)據(jù)塊中的數(shù)據(jù)分別進行讀取,然后存入中間控制設(shè)備的緩存中。當服務(wù)器開機初始化之后,服務(wù)器的處理器可根據(jù)該緩存中存儲的數(shù)據(jù)進行BIOS的存取操作。此外,該系統(tǒng)在讀取的過程中,若發(fā)現(xiàn)數(shù)據(jù)塊中的數(shù)據(jù)發(fā)生異常時,自動對該數(shù)據(jù)塊中的數(shù)據(jù)進行修復(fù)。本發(fā)明還提供一種BIOS存取方法。本發(fā)明可提高服務(wù)器的運行穩(wěn)定性。
【專利說明】BIOS存取系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種BIOS存取系統(tǒng)及方法。
【背景技術(shù)】
[0002]BIOS (Basic Input Output System,基本輸入輸出系統(tǒng))是計算機設(shè)備在系統(tǒng)初始化時運行的重要程序。在系統(tǒng)初始化時,計算機設(shè)備的大部分硬件資源都不能工作。在服務(wù)器上,一般會有獨立于服務(wù)器主機的中間控制設(shè)備,如FPGA (Field Programmable GateArray,現(xiàn)場可編程門陣列)控制器和BMC (Baseboard Management Control,基板管理控制器)等,用于給服務(wù)器提供額外的功能性支持。傳統(tǒng)的服務(wù)器對BIOS的存取方法均是在系統(tǒng)初始化之后,由服務(wù)器的處理器對一 BIOS芯片進行BIOS存取操作,存取的效率較低,并且在讀取的BIOS數(shù)據(jù)發(fā)生錯誤時,不能及時對錯誤的數(shù)據(jù)進行修復(fù),可能給服務(wù)器系統(tǒng)的運行穩(wěn)定性帶來隱患。
【發(fā)明內(nèi)容】
[0003]鑒于以上內(nèi)容,有必要提供一種BIOS存取系統(tǒng),應(yīng)用于服務(wù)器的中間控制設(shè)備中,該服務(wù)器包括第一 BIOS芯片以及第二 BIOS芯片。該系統(tǒng)包括:B10S讀取模塊,用于從第一 BIOS芯片中依次讀取奇數(shù)的第一數(shù)據(jù)塊中的數(shù)據(jù)以及從第二 BIOS芯片中依次讀取偶數(shù)的第一數(shù)據(jù)塊中的數(shù)據(jù),然后根據(jù)從每個第一數(shù)據(jù)塊Bn中讀取的數(shù)據(jù)為該第一數(shù)據(jù)塊Bn計算一個CRC校驗碼;校驗碼比較模塊,用于比較為每個第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼是否相同;緩存模塊,用于當為第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼相同時,將從該第一數(shù)據(jù)塊Bn中讀取的數(shù)據(jù)存入中間控制設(shè)備的緩存中;及修復(fù)模塊,用于當為第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼不同且該第一數(shù)據(jù)塊Bn為奇數(shù)的第一數(shù)據(jù)塊時,根據(jù)所述第二 BIOS芯片的第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼修復(fù)第一 BIOS芯片中該第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼,以及將修復(fù)后的第一 BIOS芯片中第一數(shù)據(jù)塊Bn中的數(shù)據(jù)讀取出來并存入所述緩存中,或當為第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼不同且該第一數(shù)據(jù)塊Bn為偶數(shù)的第一數(shù)據(jù)塊時,根據(jù)所述第一 BIOS芯片的第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼修復(fù)第二 BIOS芯片中該第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼,以及將修復(fù)后的第二BIOS芯片的第一數(shù)據(jù)塊Bn中的數(shù)據(jù)讀取出來并存入所述緩存中。
[0004]還有必要提供一種應(yīng)用于所述中間控制設(shè)備的BIOS存取方法,該方法包括:B10S讀取步驟,從第一 BIOS芯片中依次讀取奇數(shù)的第一數(shù)據(jù)塊中的數(shù)據(jù)以及從第二 BIOS芯片中依次讀取偶數(shù)的第一數(shù)據(jù)塊中的數(shù)據(jù),然后根據(jù)從每個第一數(shù)據(jù)塊Bn中讀取的數(shù)據(jù)為該第一數(shù)據(jù)塊Bn計算一個CRC校驗碼;校驗碼比較步驟,比較為每個第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼是否相同;緩存步驟,當為第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼相同時,將從該第一數(shù)據(jù)塊Bn中讀取的數(shù)據(jù)存入中間控制設(shè)備的緩存中;及修復(fù)步驟,當為第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼不同且該第一數(shù)據(jù)塊Bn為奇數(shù)的第一數(shù)據(jù)塊時,根據(jù)所述第二 BIOS芯片的第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼修復(fù)第一 BIOS芯片中該第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼,以及將修復(fù)后的第一 BIOS芯片中第一數(shù)據(jù)塊Bn中的數(shù)據(jù)讀取出來并存入所述緩存中,或當為第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼不同且該第一數(shù)據(jù)塊Bn為偶數(shù)的第一數(shù)據(jù)塊時,根據(jù)所述第一 BIOS芯片的第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼修復(fù)第二 BIOS芯片中該第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼,以及將修復(fù)后的第二BIOS芯片的第一數(shù)據(jù)塊Bn中的數(shù)據(jù)讀取出來并存入所述緩存中。
[0005]相較于現(xiàn)有技術(shù),本發(fā)明的BIOS存取系統(tǒng)及方法,通過服務(wù)器的中間控制設(shè)備輔助實現(xiàn)BIOS的存取。由于該中間控制設(shè)備可獨立運行,在服務(wù)器開機初始化的過程中,該中間控制設(shè)備即可通過對服務(wù)器的雙BIOS進行并行存取操作,且在存取過程中可及時發(fā)現(xiàn)BIOS的數(shù)據(jù)錯誤并進行自動修復(fù),提高了服務(wù)器的穩(wěn)定性。
【專利附圖】
【附圖說明】
[0006]圖1是本發(fā)明提供的一服務(wù)器的方框示意圖。
[0007]圖2是圖1中第一 BIOS芯片以及第二 BIOS芯片的BIOS存儲空間由多個數(shù)據(jù)塊組成的示意圖。
[0008]圖3是圖1中的中間控制設(shè)備的功能架構(gòu)圖。
[0009]圖4是本發(fā)明BIOS存取方法的流程圖。
[0010]主要元件符號說明
【權(quán)利要求】
1.一種BIOS存取系統(tǒng),應(yīng)用于服務(wù)器的中間控制設(shè)備中,該服務(wù)器包括第一 BIOS芯片以及第二 BIOS芯片,該第一 BIOS芯片以及第二 BIOS芯片的BIOS存儲空間包括多個用于存儲BIOS的第一數(shù)據(jù)塊,其特征在于,該系統(tǒng)包括: BIOS讀取模塊,用于從第一 BIOS芯片中依次讀取奇數(shù)的第一數(shù)據(jù)塊中的數(shù)據(jù)以及從第二 BIOS芯片中依次讀取偶數(shù)的第一數(shù)據(jù)塊中的數(shù)據(jù),然后根據(jù)從每個第一數(shù)據(jù)塊Bn中讀取的數(shù)據(jù)為該第一數(shù)據(jù)塊Bn計算一個CRC校驗碼; 校驗碼比較模塊,用于比較為每個第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼是否相同; 緩存模塊,用于當為第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼相同時,將從該第一數(shù)據(jù)塊Bn中讀取的數(shù)據(jù)存入中間控制設(shè)備的緩存中;及 修復(fù)模塊,用于當為第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼不同且該第一數(shù)據(jù)塊Bn為奇數(shù)的第一數(shù)據(jù)塊時,根據(jù)所述第二 BIOS芯片的第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼修復(fù)第一 BIOS芯片中該第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼,以及將修復(fù)后的第一 BIOS芯片中第一數(shù)據(jù)塊Bn中的數(shù)據(jù)讀取出來并存入所述緩存中,或當為第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼不同且該第一數(shù)據(jù)塊Bn為偶數(shù)的第一數(shù)據(jù)塊時,根據(jù)所述第一 BIOS芯片的第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼修復(fù)第二 BIOS芯片中該第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼,以及 將修復(fù)后的第二 BIOS芯片的第一數(shù)據(jù)塊Bn中的數(shù)據(jù)讀取出來并存入所述緩存中。
2.如權(quán)利要求1所述的BIOS存取系統(tǒng),其特征在于,當服務(wù)器完成初始化后,所述服務(wù)器的處理器根據(jù)所述緩存中存儲的數(shù)據(jù)進行BIOS的存取操作。
3.如權(quán)利要求1所述的BIOS存取系統(tǒng),其特征在于,所述第一BIOS芯片以及第二 BIOS芯片的BIOS存儲空間還包括一第二數(shù)據(jù)塊,用于存儲關(guān)于BIOS的描述的元數(shù)據(jù),該元數(shù)據(jù)包括一時間戳,該時間戳代表第一 BIOS芯片以及第二 BIOS芯片中存儲的BIOS鏡像文件的寫入時間。
4.如權(quán)利要求3所述的BIOS存取系統(tǒng),其特征在于,所述第一BIOS芯片以及第二 BIOS芯片中存儲的元數(shù)據(jù)還包括一簽名信息以及一數(shù)據(jù)長度信息,該簽名信息指示第一 BIOS芯片以及第二 BIOS芯片中存儲的BIOS鏡像文件的格式,該長度信息指示第一 BIOS芯片以及第二 BIOS芯片中存儲的BIOS鏡像文件的數(shù)據(jù)長度或大小。
5.如權(quán)利要求3所述的BIOS存取系統(tǒng),其特征在于,該系統(tǒng)還包括: 元數(shù)據(jù)讀取模塊,用于當服務(wù)器開機時,讀取第一 BIOS芯片以及第二 BIOS芯片的第二數(shù)據(jù)塊中存儲的元數(shù)據(jù),并從讀取的元數(shù)據(jù)中獲取第一 BIOS芯片的時間戳與第二 BIOS芯片的時間戳;及 數(shù)據(jù)更新模塊,用于比較第一BIOS芯片的時間戳與第二BIOS芯片的時間戳是否相同,若第一 BIOS芯片的時間戳與第二 BIOS芯片的時間戳不同,使用較晚的時間戳對應(yīng)的BIOS芯片的BIOS鏡像文件和元數(shù)據(jù)對較早的時間戳對應(yīng)的BIOS芯片的BIOS鏡像文件和元數(shù)據(jù)進行更新。
6.如權(quán)利要求5所述的BIOS存取系統(tǒng),其特征在于,所述數(shù)據(jù)更新模塊還用于當所述第一 BIOS芯片未存儲有BIOS鏡像文件或者存儲的BIOS鏡像文件被損壞而無法讀取時,將第二 BIOS芯片中存儲的鏡像文件復(fù)制到第一 BIOS芯片中,以及當所述第二 BIOS芯片未存儲有BIOS鏡像文件或者存儲的BIOS鏡像文件被損壞而無法讀取時,將第一 BIOS芯片中存儲的鏡像文件復(fù)制到第二 BIOS芯片中。
7.如權(quán)利要求1所述的BIOS存取系統(tǒng),其特征在于,所述中間控制設(shè)備為現(xiàn)場可編程門陣列控制器或基板管理控制器。
8.—種BIOS存取方法,應(yīng)用于服務(wù)器的中間控制設(shè)備中,該服務(wù)器包括第一BIOS芯片以及第二 BIOS芯片,該第一 BIOS芯片以及第二 BIOS芯片的BIOS存儲空間包括多個用于存儲BIOS的第一數(shù)據(jù)塊,其特征在于,該方法包括: BIOS讀取步驟,從第一 BIOS芯片中依次讀取奇數(shù)的第一數(shù)據(jù)塊中的數(shù)據(jù)以及從第二BIOS芯片中依次讀取偶數(shù)的第一數(shù)據(jù)塊中的數(shù)據(jù),然后根據(jù)從每個第一數(shù)據(jù)塊Bn中讀取的數(shù)據(jù)為該第一數(shù)據(jù)塊Bn計算一個CRC校驗碼; 校驗碼比較步驟,比較為每個第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼是否相同; 緩存步驟,當為第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼相同時,將從該第一數(shù)據(jù)塊Bn中讀取的數(shù)據(jù)存入中間控制設(shè)備的緩存中 '及 修復(fù)步驟,當為第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼不同且該第一數(shù)據(jù)塊Bn為奇數(shù)的第一數(shù)據(jù)塊時,根據(jù)所述第二 BIOS芯片的第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼修復(fù)第一 BIOS芯片中該第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼,以及將修復(fù)后的第一 BIOS芯片中第一數(shù)據(jù)塊Bn中的數(shù)據(jù)讀取出來并存入所述緩存中,或當為第一數(shù)據(jù)塊Bn計算得到的CRC校驗碼與該第一數(shù)據(jù)塊Bn中原始存儲的CRC校驗碼不同且該第一數(shù)據(jù)塊Bn為偶數(shù)的第一數(shù)據(jù)塊時,根據(jù)所述第一 BIOS芯片的第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼修復(fù)第二` BIOS芯片中該第一數(shù)據(jù)塊Bn中的數(shù)據(jù)和CRC校驗碼,以及將修復(fù)后的第二 BIOS芯片的第一數(shù)據(jù)塊Bn中的數(shù)據(jù)讀取出來并存入所述緩存中。
9.如權(quán)利要求8所述的BIOS存取方法,其特征在于,當服務(wù)器完成初始化后,所述服務(wù)器的處理器根據(jù)所述緩存中存儲的數(shù)據(jù)進行BIOS的存取操作。
10.如權(quán)利要求8所述的BIOS存取方法,其特征在于,所述第一BIOS芯片以及第二BIOS芯片的BIOS存儲空間還包括一第二數(shù)據(jù)塊,用于存儲關(guān)于BIOS的描述的元數(shù)據(jù),該元數(shù)據(jù)包括一時間戳,該時間戳代表第一 BIOS芯片以及第二 BIOS芯片中存儲的BIOS鏡像文件的寫入時間。
11.如權(quán)利要求10所述的BIOS存取方法,其特征在于,所述第一BIOS芯片以及第二BIOS芯片中存儲的元數(shù)據(jù)還包括一簽名信息以及一數(shù)據(jù)長度信息,該簽名信息指示第一BIOS芯片以及第二 BIOS芯片中存儲的BIOS鏡像文件的格式,該長度信息指示第一 BIOS芯片以及第二 BIOS芯片中存儲的BIOS鏡像文件的數(shù)據(jù)長度或大小。
12.如權(quán)利要求10所述的BIOS存取方法,其特征在于,該方法還包括: 元數(shù)據(jù)讀取步驟,當服務(wù)器開機時,讀取第一 BIOS芯片以及第二 BIOS芯片中存儲的元數(shù)據(jù),并從讀取的元數(shù)據(jù)中獲取第一 BIOS芯片的時間戳與第二 BIOS芯片的時間戳時間戳;及數(shù)據(jù)更新步驟,比較第一BIOS芯片的時間戳與第二BIOS芯片的時間戳是否相同,若第一 BIOS芯片的時間戳與第二 BIOS芯片的時間戳不同,使用較晚的時間戳對應(yīng)的BIOS芯片的BIOS鏡像文件和元數(shù)據(jù)對較早的時間戳對應(yīng)的BIOS芯片的BIOS鏡像文件和元數(shù)據(jù)進行更新。
13.如權(quán)利要求12所述的BIOS存取方法,其特征在于,該方法還包括: 當所述第一 BIOS芯片未存儲有BIOS鏡像文件或者存儲的BIOS鏡像文件被損壞而無法讀取時,將第二 BIOS芯片中存儲的鏡像文件復(fù)制到第一 BIOS芯片中;及 當所述第二 BIOS芯片未存儲有BIOS鏡像文件或者存儲的BIOS鏡像文件被損壞而無法讀取時,將第一 BIOS芯片中存儲的鏡像文件復(fù)制到第二 BIOS芯片中。
14.如權(quán)利要求8所述的BIOS存取方法,其特征在于,所述中間控制設(shè)備為現(xiàn)場可編程門陣列控制器或基板管理控`制器。
【文檔編號】G06F11/10GK103870355SQ201210547226
【公開日】2014年6月18日 申請日期:2012年12月17日 優(yōu)先權(quán)日:2012年12月17日
【發(fā)明者】邱佳瑯 申請人:鴻富錦精密工業(yè)(深圳)有限公司, 鴻海精密工業(yè)股份有限公司