專利名稱:基本輸入輸出系統(tǒng)文件切換方法及可支持其切換的控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)中的基本輸入輸出系統(tǒng)(Basic InputOutput System,BIOS),更具體地,涉及計(jì)算機(jī)系統(tǒng)中的多基本輸入輸出系統(tǒng)文件自動(dòng)切換方法及其相關(guān)裝置。
背景技術(shù):
計(jì)算機(jī)用戶在使用計(jì)算機(jī)的過(guò)程中,都會(huì)接觸到基本輸入輸出系統(tǒng),它在計(jì)算機(jī)系統(tǒng)中起著非常重要的作用?;据斎胼敵鱿到y(tǒng),完整地說(shuō)應(yīng)該是ROM-BIOS,即只讀存儲(chǔ)器基本輸入/輸出系統(tǒng),它實(shí)際上是被固化到計(jì)算機(jī)中的一組程序,為計(jì)算機(jī)提供最低級(jí)的、最直接的硬件控制。準(zhǔn)確地說(shuō),基本輸入輸出系統(tǒng)承擔(dān)了計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)時(shí)的系統(tǒng)檢測(cè)與引導(dǎo)工作。
在計(jì)算機(jī)系統(tǒng)的啟動(dòng)過(guò)程中,首先會(huì)進(jìn)行上電自檢(POST),以檢查計(jì)算機(jī)是否良好,例如有無(wú)內(nèi)存故障等;而后會(huì)進(jìn)行初始化,包括創(chuàng)建中斷向量、設(shè)置寄存器、對(duì)一些外部設(shè)備進(jìn)行初始化和檢測(cè)等,其中很重要的一部分是基本輸入輸出系統(tǒng)文件,基本輸入輸出系統(tǒng)文件主要包含對(duì)硬件設(shè)置的一些參數(shù),當(dāng)計(jì)算機(jī)啟動(dòng)時(shí)會(huì)讀取基本輸入輸出系統(tǒng)文件中的這些參數(shù),并和實(shí)際硬件設(shè)置進(jìn)行比較,如果兩者相互符合,則進(jìn)入引導(dǎo)程序,即引導(dǎo)操作系統(tǒng)裝入計(jì)算機(jī),反之,如果不符合,就會(huì)影響系統(tǒng)的啟動(dòng)。
請(qǐng)參考圖1,圖1是一個(gè)基本輸入輸出系統(tǒng)文件18在一計(jì)算機(jī)系統(tǒng)中的架構(gòu)示意圖。如圖1所示,基本輸入輸出系統(tǒng)文件18存儲(chǔ)于一獨(dú)立的電可擦除可編程只讀存儲(chǔ)器(EEPROM)芯片16中。通常,電可擦除可編程只讀存儲(chǔ)器芯片16直接焊接在主板上,并與南橋芯片14相連接。正常情況下,存儲(chǔ)在電可擦除可編程只讀存儲(chǔ)器芯片16中的基本輸入輸出系統(tǒng)文件18所包含的參數(shù)是與計(jì)算機(jī)的硬件設(shè)置相匹配的。但是,如果出現(xiàn)某些異常情況,比如,當(dāng)計(jì)算機(jī)遭受到CIH(Chernobyl)病毒的襲擊,基本輸入輸出系統(tǒng)文件18就會(huì)被CIH病毒惡意修改,造成與計(jì)算機(jī)的硬件設(shè)置不匹配,從而影響系統(tǒng)的正常啟動(dòng)。為此,很多主板廠商陸續(xù)推出了基本輸入輸出系統(tǒng)防寫(xiě)保護(hù),雙基本輸入輸出系統(tǒng)等針對(duì)基本輸入輸出系統(tǒng)安全防護(hù)的技術(shù),更有甚者推出了各種防“CIH”的主板,以保證基本輸入輸出系統(tǒng)文件18不被惡意修改,或是即使修改后,仍能通過(guò)另一備份的基本輸入輸出系統(tǒng)文件正常啟動(dòng)計(jì)算機(jī)。
但是,如果存儲(chǔ)基本輸入輸出系統(tǒng)文件的存儲(chǔ)介質(zhì)或是信號(hào)連線發(fā)生硬件損壞,比如,圖1中的電可擦除可編程只讀存儲(chǔ)器芯片16物理受損,或是電可擦除可編程只讀存儲(chǔ)器芯片16與南橋芯片14之間的連接線損壞,啟動(dòng)中的計(jì)算機(jī)就會(huì)不停地重復(fù)讀取基本輸入輸出系統(tǒng)文件18,而無(wú)法繼續(xù)啟動(dòng),甚至無(wú)法給出錯(cuò)誤信息。此種情況下,即使計(jì)算機(jī)系統(tǒng)中設(shè)置了備份的基本輸入輸出系統(tǒng)文件,計(jì)算機(jī)也將無(wú)法自動(dòng)切換到備份的基本輸入輸出系統(tǒng)文件上讀取信息,而處于癱瘓狀態(tài)。
因此,如何使配置了多個(gè)基本輸入輸出系統(tǒng)文件的計(jì)算機(jī)系統(tǒng),在當(dāng)存儲(chǔ)這些基本輸入輸出系統(tǒng)文件的存儲(chǔ)介質(zhì)部分發(fā)生硬件損壞時(shí),仍然能夠自動(dòng)切換到?jīng)]有硬件損壞的基本輸入輸出系統(tǒng)文件上,或是當(dāng)存儲(chǔ)介質(zhì)全部損壞或連接線損壞時(shí),不至于陷入癱瘓無(wú)響應(yīng)狀態(tài),已經(jīng)成為一個(gè)新的問(wèn)題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種多基本輸入輸出系統(tǒng)文件自動(dòng)切換方法及其相關(guān)裝置,其能夠在當(dāng)前基本輸入輸出系統(tǒng)文件出現(xiàn)錯(cuò)誤時(shí),及時(shí)避免啟動(dòng)中的計(jì)算機(jī)系統(tǒng)進(jìn)入癱瘓狀態(tài)。
本發(fā)明提供一種基本輸入輸出系統(tǒng)文件自動(dòng)切換方法,該方法包括以下步驟當(dāng)接收一讀取指令時(shí),啟動(dòng)一計(jì)時(shí)器開(kāi)始計(jì)時(shí),根據(jù)該讀取指令從一第一基本輸入輸出系統(tǒng)文件中讀出一第一數(shù)據(jù)頁(yè)(Page)。對(duì)該第一數(shù)據(jù)頁(yè)進(jìn)行錯(cuò)誤修正校驗(yàn);當(dāng)錯(cuò)誤修正校驗(yàn)有錯(cuò)時(shí),重復(fù)讀取該第一數(shù)據(jù)頁(yè)。當(dāng)重復(fù)讀取該數(shù)據(jù)頁(yè)并對(duì)其進(jìn)行錯(cuò)誤修正校驗(yàn)過(guò)程的次數(shù)大于一既定數(shù)值,或該計(jì)時(shí)器計(jì)時(shí)超過(guò)一既定時(shí)限時(shí),切換至一第二基本輸入輸出系統(tǒng)文件。根據(jù)該讀取指令從第二基本輸入輸出系統(tǒng)文件讀出一第二數(shù)據(jù)頁(yè),其中該第一數(shù)據(jù)頁(yè)包含一數(shù)據(jù),且該第二數(shù)據(jù)頁(yè)包含該數(shù)據(jù)。
本發(fā)明另提供一種可支持基本輸入輸出系統(tǒng)文件自動(dòng)切換的控制器,該控制器包括一計(jì)時(shí)器,一錯(cuò)誤修正校驗(yàn)?zāi)K,一計(jì)數(shù)器,一觸發(fā)模塊及一地址運(yùn)算模塊。計(jì)時(shí)器用于當(dāng)收到一讀取指令時(shí),開(kāi)始計(jì)時(shí)以產(chǎn)生一時(shí)間信號(hào)。錯(cuò)誤修正校驗(yàn)?zāi)K用于對(duì)從一第一基本輸入輸出系統(tǒng)文件中讀取的一數(shù)據(jù)頁(yè)進(jìn)行錯(cuò)誤修正校驗(yàn),而計(jì)數(shù)器耦接于該錯(cuò)誤修正校驗(yàn)?zāi)K,用于計(jì)算當(dāng)錯(cuò)誤修正校驗(yàn)有錯(cuò)時(shí),重復(fù)讀取該數(shù)據(jù)頁(yè)的次數(shù),產(chǎn)生一次數(shù)信號(hào)。觸發(fā)模塊接收該定時(shí)器的時(shí)間信號(hào)與該計(jì)數(shù)器的次數(shù)信號(hào),當(dāng)該計(jì)時(shí)器計(jì)時(shí)超過(guò)一既定時(shí)限,或該計(jì)數(shù)器計(jì)數(shù)超過(guò)一最大重復(fù)次數(shù)時(shí),產(chǎn)生一切換信號(hào)。地址運(yùn)算模塊接收一字節(jié)相對(duì)地址與該切換信號(hào)以產(chǎn)生一讀取地址。
本發(fā)明所述的基本輸入輸出系統(tǒng)文件切換方法及可支持其切換的控制器,在存儲(chǔ)基本輸入輸出系統(tǒng)文件的存儲(chǔ)介質(zhì)部分發(fā)生硬件損壞時(shí),仍然能夠自動(dòng)切換到?jīng)]有硬件損壞的基本輸入輸出系統(tǒng)文件上,或是當(dāng)存儲(chǔ)介質(zhì)全部損壞或連接線損壞時(shí),不至于陷入癱瘓無(wú)響應(yīng)狀態(tài)。
圖1是一個(gè)基本輸入輸出系統(tǒng)文件在一計(jì)算機(jī)系統(tǒng)中的架構(gòu)示意圖;圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的基本輸入輸出系統(tǒng)控制器應(yīng)用于一計(jì)算機(jī)系統(tǒng)的示意圖;圖3是一個(gè)基本輸入輸出系統(tǒng)文件的內(nèi)部架構(gòu)圖;圖4是圖2中的基本輸入輸出系統(tǒng)控制器的電路示意圖;圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的多基本輸入輸出系統(tǒng)文件自動(dòng)切換方法的流程圖。
具體實(shí)施例方式
通過(guò)下面結(jié)合示例性地示出一例的附圖進(jìn)行的描述,本發(fā)明的上述和其它目的和特點(diǎn)將會(huì)變得更加清楚。
以下,參照附圖來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施例。
圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的基本輸入輸出系統(tǒng)控制器25應(yīng)用于一計(jì)算機(jī)系統(tǒng)的示意圖。如圖2所示,該基本輸入輸出系統(tǒng)控制器25設(shè)置于一南北橋合并芯片24上,用來(lái)控制設(shè)置于一存儲(chǔ)介質(zhì)26中的基本輸入輸出系統(tǒng)文件1~基本輸入輸出系統(tǒng)文件4之間的自動(dòng)切換。在該計(jì)算機(jī)系統(tǒng)的啟動(dòng)過(guò)程中,中央處理單元(Central Processing Unit,CPU)10會(huì)經(jīng)由該南北橋合并芯片24向該基本輸入輸出系統(tǒng)控制器25發(fā)出一讀取指令;當(dāng)基本輸入輸出系統(tǒng)控制器25收到該讀取指令時(shí),該基本輸入輸出系統(tǒng)控制器25即啟動(dòng)一內(nèi)部的計(jì)時(shí)器開(kāi)始計(jì)時(shí);并根據(jù)該讀取指令計(jì)算出一讀取地址,并輸出至該存儲(chǔ)介質(zhì)26,從而使該存儲(chǔ)介質(zhì)26根據(jù)該讀取地址將當(dāng)前基本輸入輸出系統(tǒng)文件(例如,基本輸入輸出系統(tǒng)文件1)中對(duì)應(yīng)的數(shù)據(jù)頁(yè)返回給該基本輸入輸出系統(tǒng)控制器25;而后,該基本輸入輸出系統(tǒng)控制器25會(huì)對(duì)該數(shù)據(jù)頁(yè)進(jìn)行錯(cuò)誤修正校驗(yàn)(ECC check);當(dāng)錯(cuò)誤修正校驗(yàn)得知所讀取的數(shù)據(jù)頁(yè)內(nèi)容有錯(cuò)時(shí),該基本輸入輸出系統(tǒng)控制器25會(huì)重復(fù)上述讀取數(shù)據(jù)頁(yè)過(guò)程和錯(cuò)誤修正校驗(yàn)過(guò)程;其中,當(dāng)重復(fù)讀取該數(shù)據(jù)頁(yè)的次數(shù)大于一既定數(shù)值,或該計(jì)時(shí)器計(jì)時(shí)超過(guò)一既定時(shí)限時(shí),該基本輸入輸出系統(tǒng)控制器25會(huì)控制切換到另一基本輸入輸出系統(tǒng)文件(例如,基本輸入輸出系統(tǒng)文件2)中讀取該數(shù)據(jù)頁(yè)。
需要說(shuō)明的是,該基本輸入輸出系統(tǒng)控制器25也可設(shè)置在一南橋芯片上,而該基本輸入輸出系統(tǒng)文件1~基本輸入輸出系統(tǒng)文件4可設(shè)置于同一存儲(chǔ)介質(zhì)上,也可設(shè)置于不同的存儲(chǔ)介質(zhì)上。該存儲(chǔ)介質(zhì)26可為一NAND閃存(NAND Flash),或是其它非易失性(Non-volatilizable)存儲(chǔ)介質(zhì)。
在進(jìn)一步理解基本輸入輸出系統(tǒng)控制器25如何控制基本輸入輸出系統(tǒng)文件1~基本輸入輸出系統(tǒng)文件4之間的自動(dòng)切換前,先以基本輸入輸出系統(tǒng)文件1為例,來(lái)說(shuō)明一個(gè)基本輸入輸出系統(tǒng)文件存放在存儲(chǔ)介質(zhì)26的內(nèi)部架構(gòu)。請(qǐng)參考圖3,圖3是基本輸入輸出系統(tǒng)文件1存放在存儲(chǔ)介質(zhì)26的內(nèi)部架構(gòu)圖,如圖3所示,該基本輸入輸出系統(tǒng)文件1內(nèi)部被劃分成n個(gè)數(shù)據(jù)區(qū)塊(Block1~Blockn),而每個(gè)數(shù)據(jù)區(qū)塊又可劃分成m個(gè)數(shù)據(jù)頁(yè)(Page1~Pagem)。以一個(gè)2M字節(jié)的基本輸入輸出系統(tǒng)文件為例,若定義每個(gè)數(shù)據(jù)區(qū)塊大小為128k字節(jié),每個(gè)數(shù)據(jù)頁(yè)大小為2k字節(jié),則該2M字節(jié)的基本輸入輸出系統(tǒng)文件可劃分為16個(gè)數(shù)據(jù)區(qū)塊,每個(gè)區(qū)塊又可劃分成64個(gè)數(shù)據(jù)頁(yè)。其中,每個(gè)數(shù)據(jù)頁(yè)具有固定的數(shù)據(jù)格式,以圖3中數(shù)據(jù)區(qū)塊4的數(shù)據(jù)頁(yè)2為例,數(shù)據(jù)頁(yè)2是由一數(shù)據(jù)(Data)和一與該數(shù)據(jù)對(duì)應(yīng)的錯(cuò)誤檢測(cè)修正碼(Error Checking andCorrecting code,ECC code)兩部分組成,其中,當(dāng)該數(shù)據(jù)頁(yè)2被讀出時(shí),可利用該錯(cuò)誤檢測(cè)修正碼對(duì)其數(shù)據(jù)部分進(jìn)行錯(cuò)誤修正校驗(yàn),以確認(rèn)讀出數(shù)據(jù)的正確性。
另外,上述圖2中基本輸入輸出系統(tǒng)控制器25輸出給存儲(chǔ)介質(zhì)26的讀取地址,具體包含了一個(gè)基本輸入輸出系統(tǒng)文件的起始地址,一數(shù)據(jù)區(qū)塊相對(duì)地址和一數(shù)據(jù)頁(yè)相對(duì)地址。如圖3所示,以一文件指針指向其中一個(gè)基本輸入輸出系統(tǒng)文件的起始地址,數(shù)據(jù)區(qū)塊相對(duì)地址為文件指針與該基本輸入輸出系統(tǒng)文件之中一個(gè)特定數(shù)據(jù)區(qū)塊的起始地址的相對(duì)值,數(shù)據(jù)頁(yè)相對(duì)地址為上述的數(shù)據(jù)區(qū)塊的起始地址和該數(shù)據(jù)區(qū)塊之中一個(gè)特定數(shù)據(jù)頁(yè)的起始地址的相對(duì)值。這樣,當(dāng)該基本輸入輸出系統(tǒng)控制器25欲從該存儲(chǔ)介質(zhì)26中讀取某一特定的數(shù)據(jù)頁(yè)時(shí),其首先會(huì)依據(jù)接收到的讀取指令中的字節(jié)相對(duì)地址計(jì)算出該數(shù)據(jù)頁(yè)所在數(shù)據(jù)區(qū)塊的數(shù)據(jù)區(qū)塊相對(duì)地址及在該數(shù)據(jù)區(qū)塊中的數(shù)據(jù)頁(yè)相對(duì)地址。再根據(jù)文件指針指向該基本輸入輸出系統(tǒng)文件的起始地址,數(shù)據(jù)區(qū)塊相對(duì)地址以及數(shù)據(jù)頁(yè)相對(duì)地址,該存儲(chǔ)介質(zhì)26才能準(zhǔn)確地找到該基本輸入輸出系統(tǒng)文件之中的該數(shù)據(jù)頁(yè),并將其返回給該基本輸入輸出系統(tǒng)控制器25。
請(qǐng)參考圖4,圖4是圖2中的基本輸入輸出系統(tǒng)控制器25的電路示意圖。如圖4所示,該基本輸入輸出系統(tǒng)控制器25包含一錯(cuò)誤修正校驗(yàn)?zāi)K251,用于對(duì)讀取的一數(shù)據(jù)頁(yè)進(jìn)行錯(cuò)誤修正校驗(yàn),當(dāng)錯(cuò)誤修正校驗(yàn)有錯(cuò)誤時(shí),該錯(cuò)誤修正校驗(yàn)?zāi)K251會(huì)發(fā)出一錯(cuò)誤修正錯(cuò)誤中斷信號(hào),該基本輸入輸出系統(tǒng)控制器25就會(huì)根據(jù)該錯(cuò)誤修正錯(cuò)誤中斷信號(hào),并重復(fù)向存儲(chǔ)介質(zhì)26讀取該數(shù)據(jù)頁(yè);一計(jì)數(shù)器252,耦接于該錯(cuò)誤修正校驗(yàn)?zāi)K,其初始值為0,當(dāng)收到該錯(cuò)誤修正校驗(yàn)?zāi)K251發(fā)出的錯(cuò)誤修正錯(cuò)誤中斷信號(hào)時(shí),產(chǎn)生一次數(shù)信號(hào),開(kāi)始計(jì)算該數(shù)據(jù)頁(yè)被重復(fù)讀取的次數(shù)。
此外,該基本輸入輸出系統(tǒng)控制器25另包含一計(jì)時(shí)器254,當(dāng)該基本輸入輸出系統(tǒng)控制器25接收到中央處理單元發(fā)出的一讀取指令時(shí),即會(huì)發(fā)出一計(jì)時(shí)開(kāi)始信號(hào)以啟動(dòng)該計(jì)時(shí)器254開(kāi)始計(jì)時(shí)并發(fā)出一時(shí)間信號(hào)?;据斎胼敵鱿到y(tǒng)控制器25包含一觸發(fā)模塊258,分別接收計(jì)數(shù)器252所發(fā)出的次數(shù)信號(hào)與計(jì)時(shí)器254所發(fā)出的時(shí)間信號(hào)。當(dāng)該計(jì)時(shí)器254計(jì)時(shí)超過(guò)一既定時(shí)限,或該計(jì)數(shù)器252計(jì)數(shù)超過(guò)一最大重復(fù)次數(shù)時(shí),觸發(fā)模塊258會(huì)產(chǎn)生一切換信號(hào),以進(jìn)行基本輸入輸出系統(tǒng)文件切換。
進(jìn)一步來(lái)說(shuō),上述的觸發(fā)模塊258具有一比較器253,一比較器255及一或門256。該計(jì)時(shí)器254輸出的時(shí)間信號(hào)作為比較器255的一輸入,而該比較器255的另一輸入端接收系統(tǒng)在初始化時(shí)設(shè)置的一超時(shí)時(shí)限M,每當(dāng)該計(jì)時(shí)器254的時(shí)間信號(hào)有所變化時(shí),該比較器255就會(huì)將該時(shí)間信號(hào)與該超時(shí)時(shí)限M進(jìn)行比較,以確定該時(shí)間信號(hào)是否已經(jīng)達(dá)到該超時(shí)時(shí)限M,一旦計(jì)時(shí)器254的時(shí)間信號(hào)達(dá)到該超時(shí)時(shí)限M,比較器255即會(huì)輸出一高電平信號(hào),以示需進(jìn)行基本輸入輸出系統(tǒng)文件切換。類似地,該計(jì)數(shù)器252輸出的次數(shù)信號(hào)作為該觸發(fā)模塊258之中的比較器253的輸入,該比較器253的另一輸入端接收系統(tǒng)在初始化時(shí)設(shè)置的一最大重讀次數(shù)N,每當(dāng)該計(jì)數(shù)器252的次數(shù)信號(hào)有所變化時(shí),該比較器253就會(huì)將該次數(shù)信號(hào)與該最大重讀次數(shù)N進(jìn)行比較,以確定該次數(shù)信號(hào)是否已經(jīng)達(dá)到該最大重讀次數(shù)N,一旦計(jì)數(shù)器252的計(jì)數(shù)值達(dá)到最大重讀次數(shù)N,比較器253即會(huì)輸出一高電平信號(hào),以示需進(jìn)行基本輸入輸出系統(tǒng)文件切換。而或門256分別接收比較器253與比較器255所發(fā)出的信號(hào)來(lái)產(chǎn)生切換信號(hào)。
綜合上述兩種需進(jìn)行基本輸入輸出系統(tǒng)文件切換的情況,本發(fā)明在該基本輸入輸出系統(tǒng)控制器25中設(shè)置了一地址運(yùn)算模塊257。該地址運(yùn)算模塊257耦接于上述的觸發(fā)模塊258中的或門256,當(dāng)接收到該切換信號(hào)時(shí),地址運(yùn)算模塊257將上述基本輸入輸出系統(tǒng)文件指針調(diào)整指向另一個(gè)基本輸入輸出系統(tǒng)文件的起始地址。
需要說(shuō)明的是,對(duì)于中央處理單元發(fā)出的一讀取指令,其往往是要求讀取基本輸入輸出系統(tǒng)文件中的一段特定的數(shù)據(jù),因此,該讀取指令會(huì)包含一字節(jié)相對(duì)地址,以指示該基本輸入輸出系統(tǒng)控制器25需要讀取的數(shù)據(jù)在基本輸入輸出系統(tǒng)文件中的相對(duì)地址。但是,基于圖3關(guān)于基本輸入輸出系統(tǒng)文件的內(nèi)部架構(gòu)可以知道,對(duì)讀出的數(shù)據(jù)進(jìn)行錯(cuò)誤修正校驗(yàn)的最小單位是一個(gè)數(shù)據(jù)頁(yè),如果直接讀出基本輸入輸出系統(tǒng)文件中的一個(gè)單獨(dú)的數(shù)據(jù)將無(wú)法對(duì)其進(jìn)行錯(cuò)誤修正校驗(yàn),所以在本發(fā)明中,該地址運(yùn)算模塊257除了根據(jù)切換信號(hào)調(diào)整文件指針外,還會(huì)根據(jù)該字節(jié)相對(duì)地址計(jì)算出該數(shù)據(jù)所在區(qū)塊的數(shù)據(jù)區(qū)塊相對(duì)地址,并進(jìn)一步計(jì)算出該數(shù)據(jù)所在數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)相對(duì)地址,這樣,該基本輸入輸出系統(tǒng)控制器25就可將該文件指針指向的基本輸入輸出系統(tǒng)文件起始地址,該數(shù)據(jù)區(qū)塊相對(duì)地址和該數(shù)據(jù)頁(yè)相對(duì)地址一并作為一個(gè)讀取地址輸出給上述存儲(chǔ)介質(zhì)26,從而使該存儲(chǔ)介質(zhì)26返回對(duì)應(yīng)的數(shù)據(jù)頁(yè),該數(shù)據(jù)頁(yè)的數(shù)據(jù)中即包含了該讀取基本輸入輸出系統(tǒng)讀取指令所要求讀取的數(shù)據(jù)。而后,錯(cuò)誤修正校驗(yàn)?zāi)K251就可對(duì)該數(shù)據(jù)頁(yè)進(jìn)行錯(cuò)誤修正校驗(yàn),以確認(rèn)讀出數(shù)據(jù)的正確性,若校驗(yàn)無(wú)誤,即可將該數(shù)據(jù)頁(yè)輸出,該基本輸入輸出系統(tǒng)控制器25會(huì)根據(jù)該基本輸入輸出系統(tǒng)字節(jié)相對(duì)地址從該數(shù)據(jù)頁(yè)中找出對(duì)應(yīng)的數(shù)據(jù),返回給中央處理單元10。
顯然,無(wú)論對(duì)于多個(gè)基本輸入輸出系統(tǒng)文件存儲(chǔ)于同一存儲(chǔ)介質(zhì)(如圖2中所示的情況),還是存儲(chǔ)于不同存儲(chǔ)介質(zhì),如果當(dāng)存儲(chǔ)介質(zhì)發(fā)生硬件損壞導(dǎo)致部分基本輸入輸出系統(tǒng)文件內(nèi)信息錯(cuò)誤或無(wú)法讀取,本發(fā)明的基本輸入輸出系統(tǒng)控制器會(huì)允許系統(tǒng)重復(fù)讀取該基本輸入輸出系統(tǒng)文件一定次數(shù),若仍然無(wú)法讀出正確結(jié)果,則會(huì)控制切換到另一個(gè)基本輸入輸出系統(tǒng)文件,讀取包含有相同數(shù)據(jù)的數(shù)據(jù)頁(yè),而不管系統(tǒng)是否給出錯(cuò)誤信息。同樣,如果存儲(chǔ)介質(zhì)或信號(hào)連線徹底損壞導(dǎo)致基本輸入輸出系統(tǒng)文件完全無(wú)法讀取時(shí),本發(fā)明的基本輸入輸出系統(tǒng)控制器就會(huì)通過(guò)計(jì)時(shí)器的計(jì)時(shí),在一定時(shí)間后控制切換到其它存儲(chǔ)介質(zhì)上的基本輸入輸出系統(tǒng)文件,或是給出基本輸入輸出系統(tǒng)文件完全損壞的信息,而不會(huì)導(dǎo)致系統(tǒng)陷入癱瘓無(wú)響應(yīng)狀態(tài)。
圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的多基本輸入輸出系統(tǒng)文件自動(dòng)切換方法的流程圖。
首先,在步驟S51進(jìn)行系統(tǒng)初始化,比如將計(jì)時(shí)器254的超時(shí)時(shí)限M和計(jì)數(shù)器252的最大重讀次數(shù)N設(shè)定到對(duì)應(yīng)位置等;接著,在步驟S52,當(dāng)中央處理單元發(fā)出一讀取指令,本發(fā)明的基本輸入輸出系統(tǒng)控制器25接收該讀取指令并根據(jù)該指令從第一基本輸入輸出系統(tǒng)文件中讀出一數(shù)據(jù)頁(yè),如步驟S53,其中,一文件指針指向第一基本輸入輸出系統(tǒng)文件的起始地址,該基本輸入輸出系統(tǒng)控制器25會(huì)根據(jù)該讀取指令所包含的一基本輸入輸出系統(tǒng)字節(jié)相對(duì)地址計(jì)算出對(duì)應(yīng)的數(shù)據(jù)區(qū)塊相對(duì)地址和數(shù)據(jù)頁(yè)相對(duì)地址,然后再根據(jù)一文件指針,該數(shù)據(jù)區(qū)塊相對(duì)地址和該數(shù)據(jù)頁(yè)相對(duì)地址從第一基本輸入輸出系統(tǒng)文件中讀出對(duì)應(yīng)的數(shù)據(jù)頁(yè);在步驟S54,對(duì)該讀出的數(shù)據(jù)頁(yè)進(jìn)行錯(cuò)誤修正校驗(yàn),以確定讀出數(shù)據(jù)的正確性,若錯(cuò)誤修正校驗(yàn)沒(méi)有錯(cuò)誤,則進(jìn)入步驟S55,輸出該數(shù)據(jù)頁(yè),并根據(jù)該基本輸入輸出系統(tǒng)字節(jié)相對(duì)地址從該數(shù)據(jù)頁(yè)中找出對(duì)應(yīng)的數(shù)據(jù),返回給中央處理單元;若錯(cuò)誤修正校驗(yàn)有錯(cuò)誤,則進(jìn)入步驟S56,使計(jì)數(shù)器252的計(jì)數(shù)值加1,以示要重新讀取該數(shù)據(jù)頁(yè),若此時(shí)計(jì)數(shù)器252計(jì)算的重讀次數(shù)沒(méi)有超出最大重讀次數(shù)N,則進(jìn)入步驟S57,基本輸入輸出系統(tǒng)控制器25發(fā)出重新讀取該數(shù)據(jù)頁(yè)的指令;反之,若此時(shí)計(jì)數(shù)器252計(jì)算的重讀次數(shù)已經(jīng)超出最大重讀次數(shù)N,則進(jìn)入步驟S59,以切換至一第二基本輸入輸出系統(tǒng)文件進(jìn)行讀取操作,對(duì)應(yīng)于該步驟,本發(fā)明的基本輸入輸出系統(tǒng)控制器25會(huì)使上述文件指針調(diào)整指向該第二基本輸入輸出系統(tǒng)文件的起始地址。接著,回至步驟S51,重新進(jìn)行系統(tǒng)初始化。并重復(fù)類似的步驟,從一第二基本輸入輸出系統(tǒng)文件進(jìn)行讀取操作。
另外,當(dāng)接受到該讀取指令時(shí),基本輸入輸出系統(tǒng)控制器25中的計(jì)時(shí)器254也會(huì)開(kāi)始計(jì)時(shí),如步驟S58,也就是說(shuō),該計(jì)時(shí)器254的計(jì)時(shí)過(guò)程(步驟S58)與讀取數(shù)據(jù)頁(yè)的過(guò)程(S53~S57)是在同時(shí)進(jìn)行中的。當(dāng)該計(jì)時(shí)器254的計(jì)時(shí)值超過(guò)一超時(shí)時(shí)限M時(shí),則進(jìn)入步驟S59,切換至該第二基本輸入輸出系統(tǒng)文件進(jìn)行讀取操作,對(duì)應(yīng)于該步驟,本發(fā)明的基本輸入輸出系統(tǒng)控制器25會(huì)使上述文件指針調(diào)整指向該第二基本輸入輸出系統(tǒng)文件的起始地址。根據(jù)本發(fā)明實(shí)施例的多基本輸入輸出系統(tǒng)文件自動(dòng)切換方法,在計(jì)算機(jī)系統(tǒng)的啟動(dòng)過(guò)程中,若被讀取的基本輸入輸出系統(tǒng)文件的存儲(chǔ)介質(zhì)或信號(hào)連線發(fā)生硬件損壞,其仍然能夠自動(dòng)切換到可用的基本輸入輸出系統(tǒng)文件上,而避免系統(tǒng)陷入癱瘓無(wú)響應(yīng)狀態(tài)。在以上的實(shí)施例中,當(dāng)控制器接收到一讀取指令時(shí),會(huì)偵測(cè)讀取時(shí)間與數(shù)據(jù)頁(yè)重讀的次數(shù),來(lái)避免系統(tǒng)癱瘓。對(duì)本領(lǐng)域技術(shù)人員而言,可知在進(jìn)入步驟S52之前應(yīng)設(shè)定計(jì)時(shí)器254的計(jì)時(shí)值與計(jì)數(shù)器252的計(jì)數(shù)值為零,即為一歸零步驟。這可通過(guò)在步驟S52之前進(jìn)行前述的歸零步驟,或是在步驟S55與步驟S59之后進(jìn)行歸零步驟來(lái)達(dá)成。
雖然本發(fā)明已通過(guò)較佳實(shí)施例說(shuō)明如上,但該較佳實(shí)施例并非用以限定本發(fā)明。本領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),應(yīng)有能力對(duì)該較佳實(shí)施例做出各種更改和補(bǔ)充,因此本發(fā)明的保護(hù)范圍以權(quán)利要求書(shū)的范圍為準(zhǔn)。
權(quán)利要求
1.一種基本輸入輸出系統(tǒng)文件切換方法,其特征在于,所述基本輸入輸出系統(tǒng)文件切換方法包括接收一讀取指令;根據(jù)該讀取指令啟動(dòng)一計(jì)時(shí)器開(kāi)始計(jì)時(shí);根據(jù)該讀取指令從一第一基本輸入輸出系統(tǒng)文件中讀出一第一數(shù)據(jù)頁(yè);對(duì)該第一數(shù)據(jù)頁(yè)進(jìn)行錯(cuò)誤修正校驗(yàn);當(dāng)錯(cuò)誤修正校驗(yàn)有錯(cuò)時(shí),重復(fù)讀取該第一數(shù)據(jù)頁(yè);當(dāng)重復(fù)讀取該第一數(shù)據(jù)頁(yè)的次數(shù)大于一既定數(shù)值,或該計(jì)時(shí)器計(jì)時(shí)超過(guò)一既定時(shí)限時(shí),切換至一第二基本輸入輸出系統(tǒng)文件;以及根據(jù)該讀取指令從該第二基本輸入輸出系統(tǒng)文件讀出一第二數(shù)據(jù)頁(yè),其中該第一數(shù)據(jù)頁(yè)包含一數(shù)據(jù),且該第二數(shù)據(jù)頁(yè)包含該數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的基本輸入輸出系統(tǒng)文件切換方法,其特征在于,是根據(jù)一文件指針找到該第一基本輸入輸出系統(tǒng)文件或該第二基本輸入輸出系統(tǒng)文件,其中讀出該第一數(shù)據(jù)頁(yè)時(shí),該文件指針指向該存儲(chǔ)介質(zhì)中該第一基本輸入輸出系統(tǒng)文件的起始地址;而當(dāng)重復(fù)讀取該第一數(shù)據(jù)頁(yè)的次數(shù)大于該既定數(shù)值,或該計(jì)時(shí)器計(jì)時(shí)超過(guò)該既定時(shí)限時(shí),該文件指針切換指向該第二基本輸入輸出系統(tǒng)文件的起始地址。
3.根據(jù)權(quán)利要求1所述的基本輸入輸出系統(tǒng)文件切換方法,其特征在于,該讀取指令包含一字節(jié)相對(duì)地址,根據(jù)該字節(jié)相對(duì)地址計(jì)算出對(duì)應(yīng)的一數(shù)據(jù)區(qū)塊相對(duì)地址和一數(shù)據(jù)頁(yè)相對(duì)地址。
4.根據(jù)權(quán)利要求3所述的基本輸入輸出系統(tǒng)文件切換方法,其特征在于,根據(jù)一文件指針,該數(shù)據(jù)區(qū)塊相對(duì)地址和該數(shù)據(jù)頁(yè)相對(duì)地址,從一存儲(chǔ)介質(zhì)中讀出該第一數(shù)據(jù)頁(yè)。
5.根據(jù)權(quán)利要求1或2所述的基本輸入輸出系統(tǒng)文件切換方法,其特征在于,當(dāng)錯(cuò)誤修正校驗(yàn)正確時(shí),輸出該第一數(shù)據(jù)頁(yè)。
6.一種可支持基本輸入輸出系統(tǒng)文件切換的控制器,其特征在于,所述可支持基本輸入輸出系統(tǒng)文件切換的控制器包括一計(jì)時(shí)器,用于當(dāng)接收一讀取指令時(shí),開(kāi)始計(jì)時(shí)以產(chǎn)生一時(shí)間信號(hào);一錯(cuò)誤修正校驗(yàn)?zāi)K,用于對(duì)從一第一基本輸入輸出系統(tǒng)文件中讀取的一數(shù)據(jù)頁(yè)進(jìn)行錯(cuò)誤修正校驗(yàn);以及一計(jì)數(shù)器,耦接于錯(cuò)誤修正校驗(yàn)?zāi)K,用于計(jì)算當(dāng)錯(cuò)誤修正校驗(yàn)有錯(cuò)時(shí),重復(fù)讀取該數(shù)據(jù)頁(yè)的次數(shù),產(chǎn)生一次數(shù)信號(hào);一觸發(fā)模塊,接收該計(jì)時(shí)器的時(shí)間信號(hào)與該計(jì)數(shù)器的次數(shù)信號(hào),其中,當(dāng)計(jì)時(shí)器計(jì)時(shí)超過(guò)一既定時(shí)限,或計(jì)數(shù)器計(jì)數(shù)超過(guò)一最大重復(fù)次數(shù)時(shí),產(chǎn)生一切換信號(hào);以及一地址運(yùn)算模塊,接收一字節(jié)相對(duì)地址與該切換信號(hào)以產(chǎn)生一讀取地址。
7.根據(jù)權(quán)利要求6所述的可支持基本輸入輸出系統(tǒng)文件切換的控制器,其特征在于,該觸發(fā)模塊包含一比較器,耦接于該計(jì)時(shí)器,用于比較該計(jì)時(shí)器的時(shí)間信號(hào)與既定時(shí)限,以確定該計(jì)時(shí)器的時(shí)間信號(hào)是否超出既定時(shí)限。
8.根據(jù)權(quán)利要求6所述的可支持基本輸入輸出系統(tǒng)文件切換的控制器,其特征在于,觸發(fā)模塊包含一比較器,耦接于計(jì)數(shù)器,用于比較計(jì)數(shù)器的次數(shù)信號(hào)與最大重復(fù)次數(shù),以確定計(jì)數(shù)器的次數(shù)信號(hào)是否超出最大重復(fù)次數(shù)。
9.根據(jù)權(quán)利要求6至8中任意一項(xiàng)所述的可支持基本輸入輸出系統(tǒng)文件切換的控制器,其特征在于,該觸發(fā)模塊包含一或門,其中一個(gè)輸入端接收該計(jì)時(shí)器的時(shí)間信號(hào)與該既定時(shí)限的比較結(jié)果,另一個(gè)輸入端接收該計(jì)數(shù)器的次數(shù)信號(hào)與該最大重復(fù)次數(shù)的比較結(jié)果,以輸出該切換信號(hào)。
10.根據(jù)權(quán)利要求6至8中任意一項(xiàng)所述的可支持基本輸入輸出系統(tǒng)文件切換的控制器,其特征在于,該地址運(yùn)算模塊,用于接收該切換信號(hào),并根據(jù)該切換信號(hào)使一文件指針切換指向一第二基本輸入輸出系統(tǒng)文件的起始地址。
11.根據(jù)權(quán)利要求6至8中任意一項(xiàng)所述的可支持基本輸入輸出系統(tǒng)文件切換的控制器,其特征在于,該地址運(yùn)算模塊根據(jù)該字節(jié)相對(duì)地址計(jì)算出對(duì)應(yīng)的一數(shù)據(jù)區(qū)塊相對(duì)地址和一數(shù)據(jù)頁(yè)相對(duì)地址。
全文摘要
本發(fā)明提供一種基本輸入輸出系統(tǒng)文件切換方法及可支持其切換的控制器,運(yùn)用于計(jì)算機(jī)系統(tǒng)中,包括以下步驟當(dāng)接收一讀取指令時(shí),啟動(dòng)一計(jì)時(shí)器開(kāi)始計(jì)時(shí),根據(jù)該讀取指令從一第一基本輸入輸出系統(tǒng)文件中讀出一第一數(shù)據(jù)頁(yè);對(duì)該數(shù)據(jù)頁(yè)進(jìn)行錯(cuò)誤修正校驗(yàn);當(dāng)錯(cuò)誤修正校驗(yàn)有錯(cuò)時(shí),重復(fù)讀取該數(shù)據(jù)頁(yè)并進(jìn)行錯(cuò)誤修正校驗(yàn)過(guò)程;其中,當(dāng)重復(fù)讀取該數(shù)據(jù)頁(yè)并對(duì)其進(jìn)行錯(cuò)誤修正校驗(yàn)過(guò)程的次數(shù)大于一既定數(shù)值,或該計(jì)時(shí)器計(jì)時(shí)超過(guò)一既定時(shí)限時(shí),根據(jù)該讀取指令從一第二基本輸入輸出系統(tǒng)文件讀出一第二數(shù)據(jù)頁(yè),第一數(shù)據(jù)頁(yè)與第二數(shù)據(jù)頁(yè)包含相同的數(shù)據(jù)。借此,本發(fā)明能夠在基本輸入輸出系統(tǒng)文件出現(xiàn)錯(cuò)誤時(shí),及時(shí)避免啟動(dòng)中的計(jì)算機(jī)系統(tǒng)進(jìn)入癱瘓狀態(tài)。
文檔編號(hào)G06F11/14GK101017442SQ20071008016
公開(kāi)日2007年8月15日 申請(qǐng)日期2007年2月14日 優(yōu)先權(quán)日2007年2月14日
發(fā)明者李欣喜, 伍尚智, 黃新平 申請(qǐng)人:威盛電子股份有限公司