專利名稱:基本輸入/輸出系統(tǒng)bios配置數(shù)據(jù)管理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信設(shè)備技術(shù)領(lǐng)域,尤其涉及基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法及系統(tǒng)。
背景技術(shù):
在服務(wù)器或個(gè)人電腦中,BI0S(Base Input/Output System,基本輸入/輸出系統(tǒng))為固化在系統(tǒng)主板上的程序,通常將其稱為BIOS程序。BIOS主板啟動(dòng), CPU (Central Processing Unit,中央處理器)執(zhí)行BIOS程序時(shí),根據(jù)讀取到的、存儲(chǔ)在 CMOS (Complementary Metal Oxide Semiconductor,互補(bǔ)金屬氧化物半導(dǎo)體)存儲(chǔ)介質(zhì)中的BIOS配置數(shù)據(jù)執(zhí)行BIOS程序中的不同的代碼段,最終實(shí)現(xiàn)基本輸入/輸出系統(tǒng)的基本配置。該CMOS存儲(chǔ)介質(zhì)為主板上的可讀寫RAM (Random Access Memory,隨機(jī)存儲(chǔ)器),并由主板電池供電,以保證系統(tǒng)掉電后,所存儲(chǔ)的用戶當(dāng)前BIOS配置數(shù)據(jù)不會(huì)丟失,進(jìn)而使得CPU利用用戶所設(shè)置的BIOS配置數(shù)據(jù)執(zhí)行BIOS程序,實(shí)現(xiàn)對(duì)基本輸入/輸出系統(tǒng)的基本配置。其中,不同廠商在為各版本BIOS程序?qū)?yīng)的BIOS配置數(shù)據(jù)分配存儲(chǔ)區(qū)域時(shí),采用動(dòng)態(tài)分配的方式,使得各版本BIOS程序與BIOS配置數(shù)據(jù)一一對(duì)應(yīng),例如在執(zhí)行版本A的 BIOS程序時(shí),可根據(jù)該版本對(duì)應(yīng)的BIOS配置數(shù)據(jù)執(zhí)行BIOS程序中的不同代碼;在執(zhí)行版本B的BIOS程序時(shí),可根據(jù)該版本對(duì)應(yīng)的BIOS配置數(shù)據(jù)執(zhí)行BIOS程序中的不同代碼。也就是,BIOS程序與BIOS配置數(shù)據(jù)具有耦合性。而在系統(tǒng)主板需要與新型CPU相適應(yīng),識(shí)別新的硬件或解決電信領(lǐng)域的一些特殊故障問題等情況下,BIOS程序存在升級(jí)需求,以適應(yīng)新的軟硬件需求。但是,由于BIOS程序和BIOS配置數(shù)據(jù)具有耦合性,在執(zhí)行新版BIOS程序時(shí),如果新增了一個(gè)配置項(xiàng),則會(huì)破壞當(dāng)前BIOS配置數(shù)據(jù)的布局,導(dǎo)致無法正常調(diào)用當(dāng)前BIOS配置數(shù)據(jù),需要重新配置,這樣使得工作量極為繁重。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法及系統(tǒng), 以保證BIOS程序升級(jí)后,配置項(xiàng)增多時(shí),存儲(chǔ)介質(zhì)中的當(dāng)前BIOS配置數(shù)據(jù)依然可被有效讀??;其具體方案如下一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法,包括讀取BIOS程序代碼,執(zhí)行BIOS程序;在執(zhí)行所述BIOS程序時(shí),根據(jù)讀取到的BIOS配置數(shù)據(jù)執(zhí)行BIOS程序當(dāng)中的不同代碼段,其中,所述BIOS配置數(shù)據(jù)按固定的存儲(chǔ)區(qū)域放在非易失性存儲(chǔ)介質(zhì)中且與所述 BIOS程序代碼存放的區(qū)域相獨(dú)立;當(dāng)執(zhí)行所述BIOS程序需用新的BIOS配置數(shù)據(jù)時(shí),則使用新存儲(chǔ)區(qū)域中的值作為新的BIOS配置數(shù)據(jù),其中,所述新存儲(chǔ)區(qū)域?yàn)榕c當(dāng)前BIOS配置數(shù)據(jù)存放區(qū)域以及所述BIOS 程序代碼存儲(chǔ)區(qū)域相獨(dú)立的一個(gè)區(qū)域,所述新存儲(chǔ)區(qū)域中的值為事先約定的默認(rèn)配置值。
4
相應(yīng)的,本發(fā)明實(shí)施例還提供一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理系統(tǒng), 包括中央處理器,用于讀取BIOS程序代碼,執(zhí)行BIOS程序;在執(zhí)行所述BIOS程序時(shí),根據(jù)讀取到的BIOS配置數(shù)據(jù)執(zhí)行BIOS程序當(dāng)中不同的代碼段,其中,所述BIOS配置數(shù)據(jù)按固定的區(qū)域存放在非易失性存儲(chǔ)介質(zhì)當(dāng)中且與所述 BIOS程序代碼存放的區(qū)域相獨(dú)立;當(dāng)執(zhí)行所述BIOS程序需要用到新的BIOS配置數(shù)據(jù)時(shí),則使用新存儲(chǔ)區(qū)中的值作為新的BIOS配置數(shù)據(jù),其中,所述新存儲(chǔ)區(qū)為與當(dāng)前BIOS配置數(shù)據(jù)存放區(qū)域以及所述BIOS 程序代碼存放區(qū)域相獨(dú)立的一個(gè)區(qū)域,所述新存儲(chǔ)區(qū)中的值為事先約定的默認(rèn)配置值;非易失性存儲(chǔ)介質(zhì),用于按照固定的區(qū)域存放執(zhí)行BIOS程序不同代碼段所需的 BIOS配置數(shù)據(jù);BIOS程序存儲(chǔ)介質(zhì),用于存儲(chǔ)BIOS程序代碼。與現(xiàn)有動(dòng)態(tài)存儲(chǔ)BIOS配置數(shù)據(jù)的方式相比,本發(fā)明將BIOS配置數(shù)據(jù)按照固定的存儲(chǔ)區(qū)域放在非易失性存儲(chǔ)介質(zhì)中,且與BIOS程序代碼存儲(chǔ)區(qū)域相獨(dú)立;當(dāng)執(zhí)行升級(jí)后的 BIOS程序需要用到新的BIOS配置數(shù)據(jù)時(shí),將使用與當(dāng)前BIOS配置區(qū)域獨(dú)立的新存儲(chǔ)區(qū)域中的值作為新的BIOS配置數(shù)據(jù)。因此,通過BIOS配置數(shù)據(jù)的固定存儲(chǔ)以及為新增配置配置項(xiàng)分配預(yù)先約定區(qū)域的方式,在BIOS程序升級(jí)后,配置項(xiàng)增多時(shí),可以保證存儲(chǔ)介質(zhì)中當(dāng)前BIOS配置數(shù)據(jù)依然被有效讀取。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例所提供的配置數(shù)據(jù)存儲(chǔ)方式的結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例所提供的一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法的第一種流程圖;圖3為本發(fā)明實(shí)施例所提供的配置數(shù)據(jù)存儲(chǔ)方式的另一結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例所提供的一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法的第二種流程圖;圖5為本發(fā)明實(shí)施例所提供的一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式實(shí)際應(yīng)用中,服務(wù)器或個(gè)人電腦的系統(tǒng)主板由于需要與新型CPU相適應(yīng),識(shí)別新的硬件或解決電信領(lǐng)域的一些特殊故障等,BIOS存在升級(jí)需求,以適應(yīng)新的軟硬件需求。為了保證在BIOS升級(jí)后,當(dāng)配置項(xiàng)增多時(shí),存儲(chǔ)介質(zhì)中的當(dāng)前配置數(shù)據(jù)依然可被有效讀取, 本發(fā)明實(shí)施例提供了一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法及系統(tǒng)。下面首先對(duì)本發(fā)明提供的一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法進(jìn)行介紹。一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法,包括讀取BIOS程序代碼,執(zhí)行BIOS程序;在執(zhí)行所述BIOS程序時(shí),根據(jù)讀取到的BIOS配置數(shù)據(jù)執(zhí)行BIOS程序當(dāng)中的不同代碼段,其中,所述BIOS配置數(shù)據(jù)按固定的存儲(chǔ)區(qū)域放在非易失性存儲(chǔ)介質(zhì)中且與所述 BIOS程序代碼存放的區(qū)域相獨(dú)立;當(dāng)執(zhí)行所述BIOS程序需用新的BIOS配置數(shù)據(jù)時(shí),則使用新存儲(chǔ)區(qū)域中的值作為新的BIOS配置數(shù)據(jù),其中,所述新存儲(chǔ)區(qū)域?yàn)榕c當(dāng)前BIOS配置數(shù)據(jù)存放區(qū)域以及所述BIOS 程序代碼存儲(chǔ)區(qū)域相獨(dú)立的一個(gè)區(qū)域,所述新存儲(chǔ)區(qū)域中的值為事先約定的默認(rèn)配置值。與現(xiàn)有動(dòng)態(tài)存儲(chǔ)BIOS配置數(shù)據(jù)的方式相比,本發(fā)明將BIOS配置數(shù)據(jù)按照固定的存儲(chǔ)區(qū)域放在非易失性存儲(chǔ)介質(zhì)中,且與BIOS程序代碼存儲(chǔ)區(qū)域相獨(dú)立;當(dāng)執(zhí)行升級(jí)后的 BIOS程序需要用到新的BIOS配置數(shù)據(jù)時(shí),將使用與當(dāng)前BIOS配置區(qū)域獨(dú)立的新存儲(chǔ)區(qū)域中的值作為新的BIOS配置數(shù)據(jù)。因此,通過BIOS配置數(shù)據(jù)的固定存儲(chǔ)以及為新增配置配置項(xiàng)分配預(yù)先約定區(qū)域的方式,在BIOS程序升級(jí)后,配置項(xiàng)增多時(shí),可以保證存儲(chǔ)介質(zhì)中當(dāng)前BIOS配置數(shù)據(jù)依然被有效讀取。下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。下面以由于識(shí)別新的硬件,而需要進(jìn)行BIOS程序升級(jí)為例,對(duì)本發(fā)明實(shí)施例所提供的一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法進(jìn)行介紹。本實(shí)施例中,假設(shè)BIOS程序?yàn)?1版本,當(dāng)BIOS主板啟動(dòng)后,CPU通過讀取存儲(chǔ)介質(zhì)中的存儲(chǔ)區(qū)域配置項(xiàng)1、配置項(xiàng)2、配置項(xiàng)3中的各BIOS配置數(shù)據(jù),依次執(zhí)行配置設(shè)備A、 設(shè)備B、設(shè)備C所對(duì)應(yīng)的BIOS程序代碼段,進(jìn)而實(shí)現(xiàn)對(duì)設(shè)備A、設(shè)備B、設(shè)備C的基本配置。 而當(dāng)BIOS程序升級(jí)為02版本后,需要通過執(zhí)行BIOS程序中的不同代碼段,依次實(shí)現(xiàn)對(duì)設(shè)備A、設(shè)備B、設(shè)備C、設(shè)備D的基本配置。也就是,當(dāng)BIOS程序從01版本升級(jí)到02版本后, 配置項(xiàng)增多了?,F(xiàn)有技術(shù)中,由于BIOS配置數(shù)據(jù)動(dòng)態(tài)分配,使得BIOS程序與BIOS配置數(shù)據(jù)具有一一對(duì)應(yīng)性。而當(dāng)BIOS程序由01版本升級(jí)到02版本,配置項(xiàng)增多了,可能導(dǎo)致BIOS配置數(shù)據(jù)之前的存儲(chǔ)布局被破壞,這將導(dǎo)致在執(zhí)行02版本的BIOS程序時(shí),無法有效讀取存儲(chǔ)介質(zhì)中的BIOS配置數(shù)據(jù),執(zhí)行不同BIOS程序代碼段,最終導(dǎo)致配置功能發(fā)生紊亂。本實(shí)施例中,在與BIOS程序代碼存儲(chǔ)區(qū)域相對(duì)獨(dú)立的非易失性存儲(chǔ)介質(zhì)中劃分了多個(gè)存儲(chǔ)區(qū)域,執(zhí)行BIOS程序所需的BIOS配置數(shù)據(jù)按照預(yù)設(shè)的順序,依次存放在該非易失性存儲(chǔ)介質(zhì)的對(duì)應(yīng)固定區(qū)域中,并將未存放BIOS配置數(shù)據(jù)的空閑區(qū)域的值設(shè)置為預(yù)先約定的默認(rèn)值。需要說明的是,由于BIOS程序升級(jí)導(dǎo)致新增配置項(xiàng)后,執(zhí)行新版BIOS程序時(shí),需要有效讀取原有的BIOS配置數(shù)據(jù)和新增的BIOS配置數(shù)據(jù),所以新增的配置項(xiàng)的功能必須將所述空閑區(qū)域的預(yù)先約定的默認(rèn)值作為其默認(rèn)值,以此保證升級(jí)BIOS程序后,存儲(chǔ)介質(zhì)中的BIOS配置數(shù)據(jù)保持不變且可被有效讀取。可以理解的是,在進(jìn)行BIOS配置數(shù)據(jù)存儲(chǔ)時(shí),還可以按照約定的地址進(jìn)行存放,以保證BIOS配置數(shù)據(jù)的固定存儲(chǔ)。如圖1所示,01版本的BIOS程序?qū)?yīng)的BIOS配置數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中,配置項(xiàng)1對(duì)應(yīng)的固定起始位置為00,配置項(xiàng)2對(duì)應(yīng)的固定起始位置為02,配置項(xiàng)3對(duì)應(yīng)的固定起始位置 04 ;空閑的存儲(chǔ)區(qū)域中存儲(chǔ)著預(yù)先約定的默認(rèn)值,例如默認(rèn)值為0。當(dāng)BIOS程序由01版本升級(jí)到02版本后,配置項(xiàng)增多時(shí),通過利用本實(shí)施例所提供的基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法,可以實(shí)現(xiàn)對(duì)非易失性存儲(chǔ)介質(zhì)中的當(dāng)前存儲(chǔ)的BIOS配置數(shù)據(jù)的有效讀取。在讀取02版本的BIOS程序代碼,執(zhí)行BIOS程序時(shí),如圖2所示,該方法可以包括S101,依次讀取存放在非易失性存儲(chǔ)介質(zhì)中的各BIOS配置數(shù)據(jù)。在執(zhí)行BIOS程序時(shí),需要根據(jù)讀取到的相應(yīng)的BIOS配置數(shù)據(jù)執(zhí)行不同的代碼段程序,最終實(shí)現(xiàn)各基本輸入/輸出系統(tǒng)的基本配置。由于BIOS配置數(shù)據(jù)與BIOS程序代碼存儲(chǔ)的區(qū)域相對(duì)獨(dú)立,當(dāng)BIOS程序由01版本升級(jí)到02版本后,01版本對(duì)應(yīng)的存儲(chǔ)介質(zhì)中的各BIOS配置數(shù)據(jù)并未發(fā)生變化,所以,在執(zhí)行02版本的BIOS程序時(shí),首先依次讀取所存放的原有的BIOS配置數(shù)據(jù)。S102,將新存儲(chǔ)區(qū)域中的默認(rèn)值作為新增配置項(xiàng)對(duì)應(yīng)的BIOS配置數(shù)據(jù)。由于BIOS程序由01版本升級(jí)到02版本后,配置項(xiàng)增多了,所以將未存放BIOS配置數(shù)據(jù)的空閑區(qū)域未占用區(qū)域1作為新增配置項(xiàng)對(duì)應(yīng)的BIOS配置數(shù)據(jù)存放區(qū)域,以此保證升級(jí)前后,存儲(chǔ)介質(zhì)中的原有BIOS配置數(shù)據(jù)的布局不發(fā)生改變,同時(shí)為新增的配置項(xiàng)分配到固定的存儲(chǔ)區(qū)域??梢岳斫獾氖牵略雠渲庙?xiàng)的默認(rèn)功能配置值與該未占用區(qū)域1中所存儲(chǔ)的默認(rèn)值相同,以實(shí)現(xiàn)對(duì)新增配置項(xiàng)的有效初始配置。S103,根據(jù)讀取到的各BIOS配置數(shù)據(jù),執(zhí)行02版本BIOS程序當(dāng)中的不同代碼段。在執(zhí)行02版本的BIOS程序時(shí),根據(jù)讀取到的配置項(xiàng)1、配置項(xiàng)2、配置項(xiàng)3、未占用區(qū)域1中的BIOS配置數(shù)據(jù),依次執(zhí)行該BIOS程序中的不同代碼段,以實(shí)現(xiàn)對(duì)設(shè)備A、設(shè)備 B、設(shè)備C、設(shè)備D的基本配置??梢岳斫獾氖牵襟ESlOl與步驟S102的執(zhí)行順序并不局限于本實(shí)施例所述的順序,例如其可以先執(zhí)行步驟S102,然后執(zhí)行S101,或者步驟SlOl與步驟S102同時(shí)執(zhí)行,都
是合理的。本發(fā)明實(shí)施例中,將BIOS配置數(shù)據(jù)按照固定的存儲(chǔ)區(qū)域放在非易失性存儲(chǔ)介質(zhì)中,且與BIOS程序代碼存儲(chǔ)區(qū)域相獨(dú)立;當(dāng)執(zhí)行升級(jí)后的BIOS程序需要用到新的BIOS配置數(shù)據(jù)時(shí),將使用與當(dāng)前BIOS配置區(qū)域獨(dú)立的新存儲(chǔ)區(qū)域中的值作為新的BIOS配置數(shù)據(jù)。 因此,通過BIOS配置數(shù)據(jù)的固定存儲(chǔ)以及為新增配置配置項(xiàng)分配預(yù)先約定區(qū)域的方式,在 BIOS程序升級(jí)后,配置項(xiàng)增多時(shí),可以保證當(dāng)前BIOS配置數(shù)據(jù)依然被有效讀取。需要說明的是,當(dāng)BIOS程序升級(jí)后,配置項(xiàng)減少的情況下,保留所減少的配置項(xiàng)中的BIOS配置數(shù)據(jù),以避免其他BIOS配置數(shù)據(jù)的存儲(chǔ)位置發(fā)生偏移,保證各BIOS配置數(shù)據(jù)存儲(chǔ)區(qū)域的固定不變。在實(shí)際應(yīng)用中,非易失性存儲(chǔ)介質(zhì)中的BIOS配置數(shù)據(jù)可能由于病毒入侵等原因出現(xiàn)數(shù)據(jù)無效的情況,利用無效的BIOS配置數(shù)據(jù)對(duì)基本輸入/輸出系統(tǒng)進(jìn)行配置將出現(xiàn)功能紊亂。為了保證在當(dāng)前BIOS配置數(shù)據(jù)有效的前提下,實(shí)現(xiàn)BIOS程序升級(jí),配置項(xiàng)增多時(shí),當(dāng)前BIOS配置數(shù)據(jù)可以被有效讀取,本發(fā)明又一實(shí)施例提供了一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法。本實(shí)施例中,非易失性存儲(chǔ)介質(zhì)的存儲(chǔ)區(qū)域中不但按照固定的位置存儲(chǔ)有BIOS 配置數(shù)據(jù),還存儲(chǔ)標(biāo)識(shí)當(dāng)前BIOS配置數(shù)據(jù)是否可被讀取的校驗(yàn)值Checksum。該校驗(yàn)值 Checksum可以為由CPU通過一系列算術(shù)或邏輯操作將所存儲(chǔ)的BIOS配置數(shù)據(jù)的所有字節(jié)組合而得到的。當(dāng)非易失性存儲(chǔ)介質(zhì)中的各BIOS配置數(shù)據(jù)進(jìn)行正常修改時(shí),例如用戶修改,CPU則會(huì)重新計(jì)算該校驗(yàn)值Checksum,并進(jìn)行更新處理。而對(duì)于非正常修改,CPU無法通過通信接口感知,而不能重新計(jì)算以改寫當(dāng)前存儲(chǔ)的校驗(yàn)值Checksum。依然假設(shè)BIOS程序?yàn)?1版本,當(dāng)BIOS主板啟動(dòng)后,CPU通過讀取非易失性存儲(chǔ)介質(zhì)中的存儲(chǔ)區(qū)域配置項(xiàng)1、配置項(xiàng)2、配置項(xiàng)3中的各BIOS配置數(shù)據(jù),依次執(zhí)行配置設(shè)備A、設(shè)備B、設(shè)備C所對(duì)應(yīng)的BIOS程序代碼段,進(jìn)而實(shí)現(xiàn)對(duì)設(shè)備A、設(shè)備B、設(shè)備C的基本配置。而當(dāng)BIOS程序升級(jí)為02版本后,需要通過執(zhí)行BIOS程序中的不同代碼段,依次實(shí)現(xiàn)對(duì)設(shè)備A、設(shè)備B、設(shè)備C、設(shè)備D的基本配置。也就是,當(dāng)BIOS程序從01版本升級(jí)到02版本后,配置項(xiàng)增多了。其中,校驗(yàn)值Checksum以及各配置項(xiàng)在非易失性存儲(chǔ)介質(zhì)中的存儲(chǔ)結(jié)構(gòu)如圖3所示。本實(shí)施例所提供的一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法,如圖4所示,可以包括S201,計(jì)算該非易失性存儲(chǔ)介質(zhì)存儲(chǔ)的BIOS配置數(shù)據(jù)的當(dāng)前校驗(yàn)值Checksum。在執(zhí)行02版本BIOS程序時(shí),首先計(jì)算當(dāng)前BIOS配置數(shù)據(jù)對(duì)應(yīng)的當(dāng)前校驗(yàn)值 Checksum,以進(jìn)行后續(xù)BIOS配置數(shù)據(jù)有效性的判斷。該校驗(yàn)值Checksum的計(jì)算方法依然可以為由CPU通過一系列算術(shù)或邏輯操作將所存儲(chǔ)的BIOS配置數(shù)據(jù)的所有字節(jié)組合而得到的。S202,判斷所述當(dāng)前校驗(yàn)值Checksum與所述非易失性存儲(chǔ)介質(zhì)中所存儲(chǔ)的校驗(yàn)值Checksum是否相等;如果否,則執(zhí)行步驟S203 ;如果是,則直接執(zhí)行步驟S204。將計(jì)算得到的當(dāng)前校驗(yàn)值Checksum與該非易失性存儲(chǔ)介質(zhì)中所存儲(chǔ)的校驗(yàn)值 Checksum進(jìn)行比較,如果相等,則表明該存儲(chǔ)介質(zhì)中的BIOS配置數(shù)據(jù)并未被非正常修改, 處于有效狀態(tài);而如果不相等,則表明該存儲(chǔ)介質(zhì)中的BIOS配置數(shù)據(jù)被非正常修改了,導(dǎo)致其處于無效狀態(tài)。S203,將各BIOS配置數(shù)據(jù)的初始默認(rèn)值依次寫入該非易失性存儲(chǔ)介質(zhì)中,并更新所存儲(chǔ)的校驗(yàn)值Checksum。當(dāng)判斷得到該存儲(chǔ)介質(zhì)中的BIOS配置數(shù)據(jù)處于無效狀態(tài)時(shí),則需要對(duì)該存儲(chǔ)介質(zhì)中的各配置項(xiàng)進(jìn)行初始化,使得各BIOS配置數(shù)據(jù)為初始默認(rèn)值。并且需要計(jì)算初始化后 BIOS配置數(shù)據(jù)的校驗(yàn)值Checksum,對(duì)該存儲(chǔ)介質(zhì)中的校驗(yàn)值區(qū)域進(jìn)行數(shù)據(jù)更新。S204,依次讀取存放在非易失性存儲(chǔ)介質(zhì)中的各BIOS配置數(shù)據(jù)。S205,將新存儲(chǔ)區(qū)域中的默認(rèn)值作為新增配置項(xiàng)對(duì)應(yīng)的BIOS配置數(shù)據(jù)。S206,根據(jù)讀取到的各BIOS配置數(shù)據(jù),執(zhí)行02版本BIOS程序當(dāng)中的不同代碼段。其中,步驟S204 步驟S206與上述實(shí)施例的步驟SlOl 步驟S103相似,在此不再贅述。本實(shí)施例中,非易失性存儲(chǔ)介質(zhì)的存儲(chǔ)區(qū)域中不但按照固定的位置存儲(chǔ)有BIOS 配置數(shù)據(jù),還存儲(chǔ)標(biāo)識(shí)當(dāng)前BIOS配置數(shù)據(jù)是否可被讀取的校驗(yàn)值Checksum。通過在存儲(chǔ)介
8質(zhì)中增設(shè)校驗(yàn)值的方式,在讀取配置數(shù)據(jù)之前,對(duì)當(dāng)前BIOS配置數(shù)據(jù)的有效性進(jìn)行判斷分析。這樣在當(dāng)前BIOS配置數(shù)據(jù)有效的前提下,保證了在BIOS程序升級(jí)后,配置項(xiàng)增多的情況下,當(dāng)前BIOS配置數(shù)據(jù)可被有效讀取。需要說明的是,所述非易失性存儲(chǔ)介質(zhì)可以為CMOS存儲(chǔ)器。由于CMOS需要特定的供電電池,而且所述供電電池受溫度、壽命、接觸不良等因素影響。所以,優(yōu)選地,所述非易失性存儲(chǔ)介質(zhì)可以為掛接在系統(tǒng)南橋的SMBUS (System Management Bus,系統(tǒng)管理總線) 控制器下的 EEPR0M(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲(chǔ)器),或者,在BIOS程序所在的存儲(chǔ)介質(zhì)上劃分特定的配置區(qū)域,以存儲(chǔ)BIOS 配置數(shù)據(jù)??梢岳斫獾氖?,BIOS配置數(shù)據(jù)所在的存儲(chǔ)介質(zhì)與BIOS程序所在的存儲(chǔ)區(qū)域相對(duì)獨(dú)立,以保證BIOS配置數(shù)據(jù)不隨BIOS程序的升級(jí)而發(fā)生變化。本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法部分說明即可。專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。相應(yīng)的,本發(fā)明實(shí)施例還提供一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理系統(tǒng), 可以包括中央處理器,用于讀取BIOS程序代碼,執(zhí)行BIOS程序;在執(zhí)行所述BIOS程序時(shí),根據(jù)讀取到的BIOS配置數(shù)據(jù)執(zhí)行BIOS程序當(dāng)中不同的代碼段,其中,所述BIOS配置數(shù)據(jù)按固定的區(qū)域存放在非易失性存儲(chǔ)介質(zhì)當(dāng)中且與所述 BIOS程序代碼存放的區(qū)域相獨(dú)立;當(dāng)執(zhí)行所述BIOS程序需要用到新的BIOS配置數(shù)據(jù)時(shí),則使用新存儲(chǔ)區(qū)中的值作為新的BIOS配置數(shù)據(jù),其中,所述新存儲(chǔ)區(qū)為與當(dāng)前BIOS配置數(shù)據(jù)存放區(qū)域以及所述BIOS 程序代碼存放區(qū)域相獨(dú)立的一個(gè)區(qū)域,所述新存儲(chǔ)區(qū)中的值為事先約定的默認(rèn)配置值;非易失性存儲(chǔ)介質(zhì),用于按照固定的區(qū)域存放執(zhí)行BIOS程序不同代碼段所需的 BIOS配置數(shù)據(jù);BIOS程序存儲(chǔ)介質(zhì),用于存儲(chǔ)BIOS程序代碼。與現(xiàn)有動(dòng)態(tài)存儲(chǔ)BIOS配置數(shù)據(jù)的方式相比,本發(fā)明將BIOS配置數(shù)據(jù)按照固定的存儲(chǔ)區(qū)域放在非易失性存儲(chǔ)介質(zhì)中,且與BIOS程序代碼存儲(chǔ)區(qū)域相獨(dú)立;當(dāng)執(zhí)行升級(jí)后的 BIOS程序需要用到新的BIOS配置數(shù)據(jù)時(shí),將使用與當(dāng)前BIOS配置區(qū)域獨(dú)立的新存儲(chǔ)區(qū)域中的值作為新的BIOS配置數(shù)據(jù)。因此,通過BIOS配置數(shù)據(jù)的固定存儲(chǔ)以及為新增配置配置項(xiàng)分配預(yù)先約定區(qū)域的方式,在BIOS程序升級(jí)后,配置項(xiàng)增多時(shí),可以保證當(dāng)前BIOS配置數(shù)據(jù)依然被有效讀取。其中,所述非易失性存儲(chǔ)介質(zhì),具體用于
將執(zhí)行不同BIOS程序代碼段所需的BIOS配置數(shù)據(jù)按照預(yù)設(shè)的順序,依次存放在所述非易失性存儲(chǔ)介質(zhì)中的多個(gè)固定區(qū)域中;且將未存放BIOS配置數(shù)據(jù)的區(qū)域的值設(shè)置為預(yù)先約定的默認(rèn)值。更進(jìn)一步的,為了保證在當(dāng)前BIOS配置數(shù)據(jù)有效的前提下,實(shí)現(xiàn)BIOS程序升級(jí), 配置項(xiàng)增多時(shí),當(dāng)前BIOS配置數(shù)據(jù)可以被有效讀取,所述非易失性存儲(chǔ)介質(zhì),具體用于按照固定的區(qū)域存放執(zhí)行BIOS程序不同代碼段所需的BIOS配置數(shù)據(jù)且存儲(chǔ)所述 BIOS配置數(shù)據(jù)對(duì)應(yīng)的校驗(yàn)值Checksum ;相應(yīng)的,所述中央處理器具體用于計(jì)算所述非易失性存儲(chǔ)介質(zhì)存儲(chǔ)的BIOS配置數(shù)據(jù)的當(dāng)前校驗(yàn)值Checksum ;判斷所述當(dāng)前校驗(yàn)值Checksum與所述非易失性存儲(chǔ)介質(zhì)中所存儲(chǔ)的校驗(yàn)值 Checksum是否相等;如果否,則將所述BIOS配置數(shù)據(jù)的默認(rèn)值依次寫入非易失性存儲(chǔ)介質(zhì)中對(duì)應(yīng)的固定區(qū)域中,并更新所存儲(chǔ)的校驗(yàn)值Checksum后,讀取BIOS程序代碼,執(zhí)行BIOS程序;如果是,則讀取BIOS程序代碼,執(zhí)行BIOS程序。本實(shí)施例中,非易失性存儲(chǔ)介質(zhì)的存儲(chǔ)區(qū)域中不但按照固定的位置存儲(chǔ)有BIOS 配置數(shù)據(jù),還存儲(chǔ)標(biāo)識(shí)當(dāng)前BIOS配置數(shù)據(jù)是否可被讀取的校驗(yàn)值Checksum。通過在存儲(chǔ)介質(zhì)中增設(shè)校驗(yàn)值的方式,在讀取配置數(shù)據(jù)之前,對(duì)當(dāng)前BIOS配置數(shù)據(jù)的有效性進(jìn)行判斷分析。這樣在當(dāng)前BIOS配置數(shù)據(jù)有效的前提下,保證了在BIOS程序升級(jí)后,配置項(xiàng)增多的情況下,當(dāng)前BIOS配置數(shù)據(jù)可被有效讀取。其中,在實(shí)際應(yīng)用中,所述非易失性存儲(chǔ)介質(zhì)為CMOS存儲(chǔ)器。為了使得該非易失性存儲(chǔ)介質(zhì)不受溫度、供電電池接觸不良以及壽命等因素的影響,如圖5所示,該非易失性存儲(chǔ)介質(zhì)可以為掛接在與北橋相對(duì)的南橋系統(tǒng)管理總線SMBUS控制器下的 EEPROM(ElectricalIy Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲(chǔ)器)。其中,CPU執(zhí)行BIOS程序時(shí),可以通過SMBUS來訪問EEPROM??梢岳斫獾氖牵诒WCBIOS程序代碼與BIOS配置數(shù)據(jù)可以完全相對(duì)分離的情況下,該非易失性存儲(chǔ)介質(zhì)也可以為BIOS程序所在存儲(chǔ)介質(zhì)中的BIOS配置數(shù)據(jù)專有區(qū)域。結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。 對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
權(quán)利要求
1.一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法,其特征在于,包括 讀取BIOS程序代碼,執(zhí)行BIOS程序;在執(zhí)行所述BIOS程序時(shí),根據(jù)讀取到的BIOS配置數(shù)據(jù)執(zhí)行BIOS程序當(dāng)中的不同代碼段,其中,所述BIOS配置數(shù)據(jù)按固定的存儲(chǔ)區(qū)域放在非易失性存儲(chǔ)介質(zhì)中且與所述BIOS程序代碼存放的區(qū)域相獨(dú)立;當(dāng)執(zhí)行所述BIOS程序需用新的BIOS配置數(shù)據(jù)時(shí),則使用新存儲(chǔ)區(qū)域中的值作為新的 BIOS配置數(shù)據(jù),其中,所述新存儲(chǔ)區(qū)域?yàn)榕c當(dāng)前BIOS配置數(shù)據(jù)存放區(qū)域以及所述BIOS程序代碼存儲(chǔ)區(qū)域相獨(dú)立的一個(gè)區(qū)域,所述新存儲(chǔ)區(qū)域中的值為事先約定的默認(rèn)配置值。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述BIOS配置數(shù)據(jù)按固定的存儲(chǔ)區(qū)域放在非易失性存儲(chǔ)介質(zhì)中,具體為將執(zhí)行不同BIOS程序代碼段所需的BIOS配置數(shù)據(jù)按照預(yù)設(shè)的順序,依次存放在所述非易失性存儲(chǔ)介質(zhì)中的多個(gè)固定區(qū)域中;且將未存放BIOS配置數(shù)據(jù)的區(qū)域的值設(shè)置為預(yù)先約定的默認(rèn)值。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在讀取BIOS程序代碼,執(zhí)行BIOS程序之前,還包括計(jì)算所述非易失性存儲(chǔ)介質(zhì)存儲(chǔ)的BIOS配置數(shù)據(jù)的當(dāng)前校驗(yàn)值Checksum ; 判斷所述當(dāng)前校驗(yàn)值Checksum與所述非易失性存儲(chǔ)介質(zhì)中所存儲(chǔ)的校驗(yàn)值Checksum 是否相等;如果否,則將所述BIOS配置數(shù)據(jù)的默認(rèn)值依次寫入非易失性存儲(chǔ)介質(zhì)中對(duì)應(yīng)的固定區(qū)域中,并更新所存儲(chǔ)的校驗(yàn)值Checksum。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,保留執(zhí)行BIOS程序未讀取的BIOS配置數(shù)據(jù)。
5.一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理系統(tǒng),其特征在于,包括 中央處理器,用于讀取BIOS程序代碼,執(zhí)行BIOS程序;在執(zhí)行所述BIOS程序時(shí),根據(jù)讀取到的BIOS配置數(shù)據(jù)執(zhí)行BIOS程序當(dāng)中不同的代碼段,其中,所述BIOS配置數(shù)據(jù)按固定的區(qū)域存放在非易失性存儲(chǔ)介質(zhì)當(dāng)中且與所述BIOS程序代碼存放的區(qū)域相獨(dú)立;當(dāng)執(zhí)行所述BIOS程序需要用到新的BIOS配置數(shù)據(jù)時(shí),則使用新存儲(chǔ)區(qū)中的值作為新的BIOS配置數(shù)據(jù),其中,所述新存儲(chǔ)區(qū)為與當(dāng)前BIOS配置數(shù)據(jù)存放區(qū)域以及所述BIOS程序代碼存放區(qū)域相獨(dú)立的一個(gè)區(qū)域,所述新存儲(chǔ)區(qū)中的值為事先約定的默認(rèn)配置值;非易失性存儲(chǔ)介質(zhì),用于按照固定的區(qū)域存放執(zhí)行BIOS程序不同代碼段所需的BIOS 配置數(shù)據(jù);BIOS程序存儲(chǔ)介質(zhì),用于存儲(chǔ)BIOS程序代碼。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述非易失性存儲(chǔ)介質(zhì),具體用于 將執(zhí)行不同BIOS程序代碼段所需的BIOS配置數(shù)據(jù)按照預(yù)設(shè)的順序,依次存放在所述非易失性存儲(chǔ)介質(zhì)中的多個(gè)固定區(qū)域中;且將未存放BIOS配置數(shù)據(jù)的區(qū)域的值設(shè)置為預(yù)先約定的默認(rèn)值。
7.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于, 所述非易失性存儲(chǔ)介質(zhì),具體用于按照固定的區(qū)域存放執(zhí)行BIOS程序不同代碼段所需的BIOS配置數(shù)據(jù)且存儲(chǔ)所述BIOS 配置數(shù)據(jù)對(duì)應(yīng)的校驗(yàn)值Checksum ;相應(yīng)的,所述中央處理器具體用于計(jì)算所述非易失性存儲(chǔ)介質(zhì)存儲(chǔ)的BIOS配置數(shù)據(jù)的當(dāng)前校驗(yàn)值Checksum ; 判斷所述當(dāng)前校驗(yàn)值Checksum與所述非易失性存儲(chǔ)介質(zhì)中所存儲(chǔ)的校驗(yàn)值Checksum 是否相等;如果否,則將所述BIOS配置數(shù)據(jù)的默認(rèn)值依次寫入非易失性存儲(chǔ)介質(zhì)中對(duì)應(yīng)的固定區(qū)域中,并更新所存儲(chǔ)的校驗(yàn)值Checksum后,讀取BIOS程序代碼,執(zhí)行BIOS程序; 如果是,則讀取BIOS程序代碼,執(zhí)行BIOS程序。
8.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述非易失性存儲(chǔ)介質(zhì)為CMOS存儲(chǔ)器, 或者,掛接在南橋系統(tǒng)管理總線SMBUS控制器下的電可擦可編程只讀存儲(chǔ)器EEPR0M,或者, BIOS程序存儲(chǔ)介質(zhì)中的BIOS配置數(shù)據(jù)專有區(qū)域。
全文摘要
本發(fā)明公開了一種基本輸入/輸出系統(tǒng)BIOS配置數(shù)據(jù)管理方法及系統(tǒng)。該方法包括讀取BIOS程序代碼,執(zhí)行BIOS程序;在執(zhí)行該BIOS程序時(shí),根據(jù)讀取到的BIOS配置數(shù)據(jù)執(zhí)行BIOS程序當(dāng)中的不同代碼段;當(dāng)執(zhí)行該BIOS程序需用新的BIOS配置數(shù)據(jù)時(shí),則使用新存儲(chǔ)區(qū)域中的值作為新的BIOS配置數(shù)據(jù)。通過利用本發(fā)明所提供的方案,在BIOS程序升級(jí)后,配置項(xiàng)增多時(shí),可以保證存儲(chǔ)介質(zhì)中當(dāng)前BIOS配置數(shù)據(jù)依然被有效讀取。
文檔編號(hào)G06F9/445GK102308280SQ201180001132
公開日2012年1月4日 申請(qǐng)日期2011年7月27日 優(yōu)先權(quán)日2011年7月27日
發(fā)明者李華東, 李弈, 王飛舟, 陶林 申請(qǐng)人:華為技術(shù)有限公司