專利名稱:恢復(fù)計(jì)算機(jī)系統(tǒng)的基本輸入輸出系統(tǒng)的方法及計(jì)算機(jī)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種恢復(fù)一計(jì)算機(jī)系統(tǒng)的基本輸入輸出系統(tǒng)的方法及其相關(guān)計(jì)算機(jī) 系統(tǒng),尤其涉及一種可通過控制單元控制恢復(fù)程序的方法及其相關(guān)計(jì)算機(jī)系統(tǒng)。
背景技術(shù):
基本輸入輸出系統(tǒng)(Basic Input/Output System, BIOS)在計(jì)算機(jī)系統(tǒng)的開機(jī)過 程中擔(dān)任著極為關(guān)鍵的角色。一般來說,在使用者按下開機(jī)鍵之后,一直到計(jì)算機(jī)系統(tǒng)載入 執(zhí)行一操作系統(tǒng)(Operating System, OS)之前,BIOS會(huì)陸續(xù)進(jìn)行許多程序來實(shí)現(xiàn)開機(jī)程 序。例如開機(jī)自我測(cè)試、初始化動(dòng)作、記錄系統(tǒng)設(shè)定值、提供常駐程序庫、協(xié)助載入操作系統(tǒng) 等等皆是BIOS所提供的功能。因此,在開機(jī)過程中,通過BIOS對(duì)計(jì)算機(jī)系統(tǒng)的每一個(gè)硬件 進(jìn)行啟始化設(shè)定和測(cè)試,以及協(xié)助啟動(dòng)操作系統(tǒng),將可確保系統(tǒng)能夠正常工作。在實(shí)際操作 上,BIOS碼(BIOS code)通常會(huì)被存儲(chǔ)于一存儲(chǔ)裝置中,當(dāng)計(jì)算機(jī)系統(tǒng)供應(yīng)一中央處理器 所需的系統(tǒng)電源后,中央處理器會(huì)存取并執(zhí)行存儲(chǔ)裝置中的BIOS碼,以進(jìn)行計(jì)算機(jī)系統(tǒng)的 開機(jī)程序。然而,如果是存儲(chǔ)裝置中的BIOS碼發(fā)生毀損或數(shù)據(jù)不完整的情況時(shí),將使得計(jì)算 機(jī)系統(tǒng)無法順利開機(jī)。在此情況下,為了避免因BIOS損壞而導(dǎo)致計(jì)算機(jī)系統(tǒng)無法運(yùn)作,已 知技術(shù)利用設(shè)置多組存儲(chǔ)裝置來存放多份備份BIOS碼,并設(shè)定優(yōu)先順序,當(dāng)遭遇前述問題 時(shí),便依序變換至其他組存儲(chǔ)裝置,以解決只有單組BIOS時(shí)的窘境。但是,使用前述方式, 雖可即時(shí)解決無法開機(jī)的問題,卻也因而耗費(fèi)過多的制造成本而變得不切實(shí)際。因此,已知 技術(shù)便提出另一種解決的方式。請(qǐng)參考圖1,圖1為已知計(jì)算機(jī)系統(tǒng)10的示意圖。如圖1 所示,計(jì)算機(jī)系統(tǒng)10包含主控單元102、主要存儲(chǔ)裝置104以及備份存儲(chǔ)裝置106。主要存 儲(chǔ)裝置104用來存放BIOS碼,備份存儲(chǔ)裝置106用來存放檢查程序(或燒錄程序)與備份 BIOS碼。當(dāng)系統(tǒng)開機(jī)時(shí),主控單元102會(huì)先存取備份存儲(chǔ)裝置106中的檢查程序并執(zhí)行檢 查程序,以檢查主要存儲(chǔ)裝置104中的BIOS碼是否有損壞的問題發(fā)生。如果無損壞情況發(fā) 生時(shí),則主控單元102會(huì)進(jìn)而存取并執(zhí)行BIOS碼,來進(jìn)行開機(jī)程序。如果是有損壞情況發(fā)生 時(shí),則將備份存儲(chǔ)裝置106中的備份BIOS碼復(fù)制至主要存儲(chǔ)裝置104,接著,主控單元102 再存取并執(zhí)行經(jīng)復(fù)制的BIOS碼,來進(jìn)行開機(jī)程序。此種雙BIOS的方式,需使用可存放約兩 倍多大小的BIOS碼的存儲(chǔ)空間,來達(dá)到備援BIOS的目的。但是,一旦備份存儲(chǔ)裝置106中 的檢查程序有毀損情況時(shí),主控單元102將因此無法完成檢查任務(wù),使開機(jī)程序中斷,而無 法完成開機(jī)程序。
發(fā)明內(nèi)容
因此,本發(fā)明主要在于提供一種恢復(fù)計(jì)算機(jī)系統(tǒng)的基本輸入輸出系統(tǒng)(Basic Input/Output System, BIOS)的方法及其相關(guān)計(jì)算機(jī)系統(tǒng)。本發(fā)明公開一種恢復(fù)計(jì)算機(jī)系統(tǒng)BIOS的方法,計(jì)算機(jī)系統(tǒng)包含主控單元、控制單 元及第一存儲(chǔ)裝置,控制單元用來控制提供至主控單元的系統(tǒng)電源,主控單元通過第一數(shù)據(jù)傳輸單元存取第一存儲(chǔ)裝置中的BIOS碼來進(jìn)行開機(jī)初始程序,此方法包含在計(jì)算機(jī)系 統(tǒng)有恢復(fù)需求時(shí),關(guān)閉系統(tǒng)電源;將備份BIOS碼重寫入第一存儲(chǔ)裝置;以及開啟系統(tǒng)電源, 使主控單元得以存取第一存儲(chǔ)裝置中經(jīng)重寫的BIOS碼,以進(jìn)行開機(jī)初始程序。本發(fā)明還公開一種計(jì)算機(jī)系統(tǒng),其包含第一存儲(chǔ)裝置,用來存儲(chǔ)BIOS碼;第二存 儲(chǔ)裝置,用來存儲(chǔ)控制碼及備份BIOS碼;主控單元經(jīng)由第一數(shù)據(jù)傳輸單元耦接至第一存儲(chǔ) 裝置,用來存取BIOS碼,以進(jìn)行開機(jī)初始程序;以及控制單元,耦接至主控單元,用來根據(jù) 控制碼,控制提供至主控單元的系統(tǒng)電源;其中,在計(jì)算機(jī)系統(tǒng)有恢復(fù)需求時(shí),利用控制單 元關(guān)閉系統(tǒng)電源并將備份BIOS碼重寫入第一存儲(chǔ)裝置,再開啟系統(tǒng)電源,使主控單元得以 存取第一存儲(chǔ)裝置中經(jīng)重寫的BIOS碼,以進(jìn)行開機(jī)初始程序。本發(fā)明還公開一種恢復(fù)計(jì)算機(jī)系統(tǒng)BIOS的方法,計(jì)算機(jī)系統(tǒng)包含主控單元、控制 單元及第一存儲(chǔ)裝置,控制單元用來控制提供至主控單元的系統(tǒng)電源,主控單元通過第一 數(shù)據(jù)傳輸單元存取第一存儲(chǔ)裝置中的BIOS碼來進(jìn)行開機(jī)初始程序,此方法包含在計(jì)算機(jī) 系統(tǒng)有恢復(fù)需求時(shí),利用控制單元關(guān)閉系統(tǒng)電源;利用控制單元控制主控單元存取數(shù)據(jù),并 開啟系統(tǒng)電源;利用主控單元存取存儲(chǔ)于第二存儲(chǔ)裝置的BIOS啟動(dòng)區(qū)塊碼;利用主控單元 執(zhí)行BIOS啟動(dòng)區(qū)塊碼,以將存儲(chǔ)于第三存儲(chǔ)裝置的備份BIOS碼重寫入至第一存儲(chǔ)裝置;利 用控制單元關(guān)閉系統(tǒng)電源;以及利用控制單元開啟系統(tǒng)電源,使主控單元得以通過第一數(shù) 據(jù)傳輸單元存取第一存儲(chǔ)裝置中經(jīng)重寫的BIOS碼,以進(jìn)行開機(jī)初始程序。本發(fā)明還公開一種計(jì)算機(jī)系統(tǒng),其包含第一存儲(chǔ)裝置,用來存儲(chǔ)BIOS碼;第二存 儲(chǔ)裝置,用來存儲(chǔ)控制碼及BIOS啟動(dòng)區(qū)塊碼;第三存儲(chǔ)裝置,用來存儲(chǔ)備份BIOS碼;主控 單元經(jīng)由第一數(shù)據(jù)傳輸單元耦接至第一存儲(chǔ)裝置,用來存取BIOS碼,以進(jìn)行開機(jī)初始程 序;以及將控制單元耦接至主控單元,用來根據(jù)控制碼,控制提供至主控單元的系統(tǒng)電源 及讀取BIOS啟動(dòng)區(qū)塊碼;其中,在計(jì)算機(jī)系統(tǒng)有恢復(fù)需求時(shí),利用控制單元存取所讀取的 BIOS啟動(dòng)區(qū)塊碼,在主控單元執(zhí)行BIOS啟動(dòng)區(qū)塊碼時(shí),將存儲(chǔ)于第三存儲(chǔ)裝置的備份BIOS 碼重寫入至第一存儲(chǔ)裝置,使主控單元得以存取第一存儲(chǔ)裝置中經(jīng)重寫的BIOS碼,以進(jìn)行 開機(jī)初始程序。
206、906208、908210、912212、914214,916402第一存儲(chǔ)裝置 第二存儲(chǔ)裝置第一數(shù)據(jù)傳輸單元 第二數(shù)據(jù)傳輸單元 第三數(shù)據(jù)傳輸單元404910918第一切換開關(guān) 第二切換開關(guān) 第三存儲(chǔ)裝置第四數(shù)據(jù)傳輸單元
具體實(shí)施例方式請(qǐng)參考圖2,圖2為本發(fā)明第一實(shí)施例一計(jì)算機(jī)系統(tǒng)20的示意圖。計(jì)算機(jī)系統(tǒng)20 包含主控單元202、控制單元204、第一存儲(chǔ)裝置206、第二存儲(chǔ)裝置208、第一數(shù)據(jù)傳輸單元 210、第二數(shù)據(jù)傳輸單元212以及第三數(shù)據(jù)傳輸單元214。其中,第一存儲(chǔ)裝置206用來存儲(chǔ) 基本輸入輸出系統(tǒng)(Basic Input/Output System, BIOS)碼。第二存儲(chǔ)裝置208用來存儲(chǔ) 控制碼(例如,嵌入式控制碼或其他具類似功能的程序代碼)及備份BIOS碼。在正常開機(jī) 過程中,主控單元202經(jīng)由第一數(shù)據(jù)傳輸單元210耦接至第一存儲(chǔ)裝置206,以存取并執(zhí)行 BIOS碼,而進(jìn)行開機(jī)初始程序。控制單元204分別經(jīng)由第一數(shù)據(jù)傳輸單元210、第二數(shù)據(jù)傳 輸單元212以及第三數(shù)據(jù)傳輸單元214耦接至第一存儲(chǔ)裝置206、第二存儲(chǔ)裝置208及主控 單元202。控制單元204根據(jù)控制碼,控制提供至計(jì)算機(jī)系統(tǒng)20的各元件的電源(例如,主 控單元202操作所需的系統(tǒng)電源)并控制恢復(fù)BIOS碼的程序。因此,當(dāng)?shù)谝淮鎯?chǔ)裝置206中的BIOS碼發(fā)生毀損或數(shù)據(jù)不完整的情況時(shí),主控單 元202將無法成功執(zhí)行BIOS碼來進(jìn)行開機(jī)程序。使用已知技術(shù)的方式,必須在主控單元 202有電源供應(yīng)的情況下才能進(jìn)行檢測(cè)錯(cuò)誤情況進(jìn)而執(zhí)行恢復(fù)BIOS碼。而本發(fā)明所使用的 控制單元204可以在無系統(tǒng)電源供電的情況下通過控制單元204自動(dòng)檢測(cè)錯(cuò)誤,或在計(jì)算 機(jī)系統(tǒng)有恢復(fù)需求時(shí),利用控制單元204關(guān)閉系統(tǒng)電源來控制恢復(fù)程序,以恢復(fù)第一存儲(chǔ) 裝置206中的BIOS碼。如此一來,本發(fā)明的計(jì)算機(jī)系統(tǒng)20將能避免傳統(tǒng)方法中會(huì)因存放 于其他存儲(chǔ)裝置的檢查程序也可能發(fā)生毀損狀況導(dǎo)致開機(jī)程序中斷的問題。關(guān)于計(jì)算機(jī)系 統(tǒng)20的詳細(xì)操作方式,請(qǐng)繼續(xù)參考以下說明。請(qǐng)參考圖3,圖3為本發(fā)明第一實(shí)施例恢復(fù)計(jì)算機(jī)系統(tǒng)20的BIOS碼的一流程30 的示意圖。流程30用來實(shí)現(xiàn)上述計(jì)算機(jī)系統(tǒng)20的一操作流程,其包含下列步驟步驟300:開始。步驟302 在計(jì)算機(jī)系統(tǒng)20有恢復(fù)BIOS碼的需求時(shí),利用控制單元204關(guān)閉主控 單元202操作所需的系統(tǒng)電源。步驟304 利用控制單元204將備份BIOS碼重寫入第一存儲(chǔ)裝置206。步驟306 利用控制單元204開啟系統(tǒng)電源,使主控單元202得以存取第一存儲(chǔ)裝 置206中經(jīng)重寫的BIOS碼,以進(jìn)行開機(jī)初始程序。步驟308:結(jié)束。根據(jù)流程30,計(jì)算機(jī)系統(tǒng)20通過控制單元204的控制,來實(shí)現(xiàn)BIOS碼的恢復(fù)程序。在步驟302中,控制單元204在得知計(jì)算機(jī)系統(tǒng)20有BIOS碼的恢復(fù)需求后,會(huì)將提供 至主控單元202的系統(tǒng)電源關(guān)閉,使主控單元202暫時(shí)停止進(jìn)行存取第一存儲(chǔ)裝置206的 BIOS碼,而進(jìn)入恢復(fù)程序。要注意的是,在本發(fā)明中,任何可以使控制單元204得以判斷是 否有BIOS碼的恢復(fù)需求的方式,皆適用于本發(fā)明。舉例來說,可以設(shè)定于計(jì)算機(jī)系統(tǒng)20上 的熱鍵、特定按鍵(如恢復(fù)啟動(dòng)按鍵)、組合鍵(多個(gè)按鍵的組合)等被使用者按壓后,觸 發(fā)恢復(fù)需求至控制單元204,則控制單元204會(huì)根據(jù)所觸發(fā)的恢復(fù)需求,將供應(yīng)至主控單元 202的系統(tǒng)電源關(guān)閉?;蛘?,也可通過控制單元202例行執(zhí)行的功能來評(píng)斷是否有恢復(fù)需 求。例如通常在計(jì)算機(jī)系統(tǒng)中,會(huì)設(shè)計(jì)于系統(tǒng)開機(jī)成功后,對(duì)控制單元204回報(bào)目前已完成 開機(jī)程序的機(jī)制。在此情況下,控制單元204可以檢測(cè)計(jì)算機(jī)系統(tǒng)20在開機(jī)鍵被按壓后的 特定時(shí)間內(nèi)是否有回報(bào)訊息。如果無,則視為開機(jī)失敗。例如在本實(shí)施例中,可以設(shè)定當(dāng)控 制單元204統(tǒng)計(jì)發(fā)生開機(jī)失敗的次數(shù)大于一特定臨限值(例如3次)時(shí),控制單元204會(huì) 關(guān)閉提供至主控單元202的系統(tǒng)電源,并繼續(xù)進(jìn)行步驟304至步驟308。除此之外,控制單 元204也可通過任一連接端口,例如第80號(hào)連接端口(port 80)的狀況來檢測(cè)計(jì)算機(jī)系統(tǒng) 20的主控單元202是否有恢復(fù)需求,舉例來說,當(dāng)控制單元204累計(jì)由第80號(hào)連接端口所 產(chǎn)生之一開機(jī)失敗訊息的次數(shù)大于一臨限值(例如5次)時(shí),控制單元204會(huì)關(guān)閉系統(tǒng)電 源而進(jìn)行恢復(fù)程序。除此之外,步驟304可包含由控制單元204檢測(cè)第一存儲(chǔ)裝置206中的BIOS碼 是否有錯(cuò)誤情況發(fā)生,并在檢測(cè)出BIOS碼存在錯(cuò)誤時(shí),再由控制單元204將第二存儲(chǔ)裝置 208中的備份BIOS碼重寫入第一存儲(chǔ)裝置206。較佳地,當(dāng)檢測(cè)出BIOS碼無存在任何錯(cuò)誤 時(shí),則毋需進(jìn)行將備份BIOS碼重寫入第一存儲(chǔ)裝置206的程序,而直接跳至步驟308。另 一方面,控制單元204可使用任何數(shù)據(jù)錯(cuò)誤檢測(cè)方式,來檢測(cè)出BIOS碼是否存在錯(cuò)誤,舉例 來說,控制單元204可對(duì)第一存儲(chǔ)裝置206中的BIOS碼執(zhí)行校驗(yàn)和(checksum)、奇偶校驗(yàn) (parity check)或循環(huán)冗余校驗(yàn)(cyclic redundancy check)程序,以檢測(cè)出BIOS碼的錯(cuò) 誤。在步驟306中,由于控制單元204已將備份BIOS碼重寫入第一存儲(chǔ)裝置206,因 此,利用控制單元204的控制,再開啟提供主控單元202的系統(tǒng)電源,如此一來,主控單元 202將可繼續(xù)存取第一存儲(chǔ)裝置206中經(jīng)重寫的BIOS碼,而順利進(jìn)行開機(jī)初始程序。請(qǐng)參考圖4及圖5,圖4及圖5為圖2中的計(jì)算機(jī)系統(tǒng)20進(jìn)行恢復(fù)BIOS的示意 圖。如圖4所示,當(dāng)控制單元204得知有BIOS碼的恢復(fù)需求后,會(huì)先將提供至主控單元202 的系統(tǒng)電源關(guān)閉,使主控單元202暫時(shí)停止進(jìn)行存取第一存儲(chǔ)裝置206的BIOS碼。接著, 控制單元204通過切換第一數(shù)據(jù)傳輸單元210檢測(cè)存儲(chǔ)于第一存儲(chǔ)裝置206中的BIOS碼。 當(dāng)檢測(cè)出BIOS碼存在錯(cuò)誤時(shí),控制單元204可經(jīng)由第二數(shù)據(jù)傳輸單元212讀取存放于第二 存儲(chǔ)裝置208中的備份BIOS碼。進(jìn)一步地,控制單元204經(jīng)由第一數(shù)據(jù)傳輸單元210將所 讀取的備份BIOS碼傳送至第一存儲(chǔ)裝置206并將所讀取的備份BIOS碼重寫入至第一存儲(chǔ) 裝置206。在此情況下,第一存儲(chǔ)裝置206已存有完整BIOS碼。因此,如圖5所示,控制單 元204切換第一數(shù)據(jù)傳輸單元210,恢復(fù)供應(yīng)至主控單元202的系統(tǒng)電源,則主控單元202 可通過第一數(shù)據(jù)傳輸單元210來存取并執(zhí)行經(jīng)恢復(fù)后的BIOS碼,而順利實(shí)現(xiàn)開機(jī)程序。請(qǐng)參考圖6至圖8,提供當(dāng)控制單元204無法提供足夠的輸入輸出端口時(shí)的詳細(xì) 實(shí)施方式,圖6至圖8為圖2中的計(jì)算機(jī)系統(tǒng)20進(jìn)行恢復(fù)BIOS的另一示意圖。如圖6所示,當(dāng)控制單元204得知有BIOS碼的恢復(fù)需求后,會(huì)先將提供至主控單元202的系統(tǒng)電源 關(guān)閉。接著,控制單元204可以通過切換第一數(shù)據(jù)傳輸單元210及第二數(shù)據(jù)傳輸單元212 來檢測(cè)存儲(chǔ)于第一存儲(chǔ)裝置206中的BIOS碼。當(dāng)檢測(cè)出BIOS碼存在錯(cuò)誤時(shí),如圖7所示, 控制單元204通過切換第二數(shù)據(jù)傳輸單元212讀取存放于第二存儲(chǔ)裝置206中的備份BIOS 碼。進(jìn)一步地,如圖8所示,控制單元204通過切換第二數(shù)據(jù)傳輸單元212,以經(jīng)由第一數(shù)據(jù) 傳輸單元210及第二數(shù)據(jù)傳輸單元212將所讀取的備份BIOS碼傳送至第一存儲(chǔ)裝置206 并將所讀取的備份BIOS碼重寫入至第一存儲(chǔ)裝置206。在此情況下,第一存儲(chǔ)裝置206已 存有完整BIOS碼。因此,如圖5所示,控制單元204再通過切換第一數(shù)據(jù)傳輸單元210,恢 復(fù)供應(yīng)至主控單元202的系統(tǒng)電源,則主控單元202可通過第一數(shù)據(jù)傳輸單元210來存取 并執(zhí)行經(jīng)恢復(fù)后的BIOS碼,而順利實(shí)現(xiàn)開機(jī)程序。較佳地,如圖4至圖8所示,第一數(shù)據(jù)傳輸單元210包含第一切換開關(guān)402,第一切 換開關(guān)402可選擇性地耦接于主控單元202、控制單元204或第二數(shù)據(jù)傳輸單元212。第二 數(shù)據(jù)傳輸單元212包含一第二切換開關(guān)404,第二切換開關(guān)404可選擇性地耦接于第一數(shù)據(jù) 傳輸單元210或第二存儲(chǔ)裝置208。值得注意的是,切換開關(guān)402、404可為晶體管或其他可 達(dá)成相同功能的元件。請(qǐng)參考圖9,圖9為本發(fā)明第二實(shí)施例計(jì)算機(jī)系統(tǒng)90的示意圖。值得注意的是,由 于圖2的計(jì)算機(jī)系統(tǒng)20與圖9的計(jì)算機(jī)系統(tǒng)90中相同名稱的元件具有類似的運(yùn)作方式與 功能,因此為求說明書內(nèi)容簡(jiǎn)潔起見,詳細(xì)說明便在此省略,這些元件的連結(jié)關(guān)系如圖9所 示,在此不再贅述。計(jì)算機(jī)系統(tǒng)90包含主控單元902、控制單元904、第一存儲(chǔ)裝置906、第 二存儲(chǔ)裝置908、第三存儲(chǔ)裝置910、第一數(shù)據(jù)傳輸單元912、第二數(shù)據(jù)傳輸單元914、第三數(shù) 據(jù)傳輸單元916以及第四數(shù)據(jù)傳輸單元918。其中與圖2不同之處在于第二存儲(chǔ)裝置908 用來存儲(chǔ)控制碼及BIOS啟動(dòng)區(qū)塊碼(boot block code),第三存儲(chǔ)裝置910用來存儲(chǔ)備份 BIOS碼,且主控單元902可通過第四數(shù)據(jù)傳輸單元918存取備份BIOS碼。較佳地,第三存 儲(chǔ)裝置910為外部存儲(chǔ)裝置。當(dāng)有BIOS恢復(fù)需求時(shí),計(jì)算機(jī)系統(tǒng)90利用控制單元904控 制主控單元902的引腳,例如設(shè)置引腳(strap pin),但本發(fā)明并不以此為限,也可采用其 他具相同功效的軟硬件設(shè)計(jì),以使主控單元902通過第二數(shù)據(jù)傳輸單元914存取并執(zhí)行由 控制單元904自第二存儲(chǔ)裝置908所讀取的BIOS啟動(dòng)區(qū)塊碼。在此情況下,主控單元902 會(huì)根據(jù)BIOS啟動(dòng)區(qū)塊碼,將存儲(chǔ)于第三存儲(chǔ)裝置910的備份BIOS碼重寫入第一存儲(chǔ)裝置 906,而完成BIOS的恢復(fù)程序。關(guān)于計(jì)算機(jī)系統(tǒng)90的詳細(xì)操作方式,請(qǐng)繼續(xù)參考以下說明。請(qǐng)參考圖10,圖10為本發(fā)明第二實(shí)施例恢復(fù)計(jì)算機(jī)系統(tǒng)90的BIOS碼的流程100 的示意圖。流程100用來實(shí)現(xiàn)上述計(jì)算機(jī)系統(tǒng)90的操作流程,其包含下列步驟步驟1000 開始。步驟1002 在計(jì)算機(jī)系統(tǒng)90有恢復(fù)需求時(shí),利用控制單元904關(guān)閉主控單元902 操作所需的系統(tǒng)電源。步驟1004 利用控制單元904控制主控單元902存取數(shù)據(jù),并開啟系統(tǒng)電源。步驟1006 利用主控單元902存取存儲(chǔ)于第二存儲(chǔ)裝置908的BIOS啟動(dòng)區(qū)塊碼。步驟1008 利用主控單元902執(zhí)行BIOS啟動(dòng)區(qū)塊碼,以將存儲(chǔ)于第三存儲(chǔ)裝置 910的備份BIOS碼重寫入至第一存儲(chǔ)裝置906。步驟1010 利用控制單元904關(guān)閉系統(tǒng)電源。
步驟1012 利用控制單元904開啟系統(tǒng)電源,使主控單元902得以通過第一數(shù)據(jù) 傳輸單元912存取第一存儲(chǔ)裝置906中經(jīng)重寫的BIOS碼,以進(jìn)行開機(jī)初始程序。步驟1014 結(jié)束。進(jìn)一步說明,在步驟1002中,在有恢復(fù)需求時(shí),計(jì)算機(jī)系統(tǒng)90利用控制單元904 關(guān)閉主控單元902操作所需的系統(tǒng)電源,使主控單元902暫時(shí)停止進(jìn)行存取第一存儲(chǔ)裝置 906的BIOS碼。通過控制設(shè)置引腳,主控單元902可經(jīng)由第一數(shù)據(jù)傳輸單元912或經(jīng)由第 二數(shù)據(jù)傳輸單元914存取外部數(shù)據(jù),在步驟1004中,控制單元904將通過設(shè)置引腳,再開啟 提供至主控單元902的系統(tǒng)電源。在此情況下,主控單元902將會(huì)經(jīng)由第二數(shù)據(jù)傳輸單元 914存取控制單元904所提供的數(shù)據(jù)。在步驟1006中,可利用主控單元902通過第三數(shù)據(jù) 傳輸單元916傳送一存取要求至控制單元904,接著,在控制單元904根據(jù)該存取要求自第 二存儲(chǔ)裝置908讀取BIOS啟動(dòng)區(qū)塊碼之后,主控單元902通過第三數(shù)據(jù)傳輸單元916存取 控制單元904所讀取的BIOS啟動(dòng)區(qū)塊碼。在步驟1008中,主控單元902于存取到BIOS啟 動(dòng)區(qū)塊碼后,進(jìn)而執(zhí)行BIOS啟動(dòng)區(qū)塊碼,以通過第四數(shù)據(jù)傳輸單元918,讀取存儲(chǔ)于第三存 儲(chǔ)裝置910的備份BIOS碼,并經(jīng)由第一數(shù)據(jù)傳輸單元912,將所讀取的備份BIOS碼重寫入 至第一存儲(chǔ)裝置906。在步驟1010中,控制單元904將關(guān)閉系統(tǒng)電源,并再度通過設(shè)置引 腳,使主控單元902經(jīng)由第一數(shù)據(jù)傳輸單元912存取第一存儲(chǔ)裝置906的BIOS碼。最后, 在步驟1012中,恢復(fù)主控單元902的系統(tǒng)電源,以使主控單元902得以進(jìn)行開機(jī)初始程序。 因此,相較于已知技術(shù),本發(fā)明可以在計(jì)算機(jī)系統(tǒng)有恢復(fù)需求時(shí),利用控制單元904來控制 恢復(fù)程序,而不致因檢查程序損壞而中斷開機(jī)程序。對(duì)于計(jì)算機(jī)系統(tǒng)來說,更僅需使用較小 的存儲(chǔ)空間來存放BIOS啟動(dòng)區(qū)塊碼,即可完成恢復(fù)程序。需注意的是,計(jì)算機(jī)系統(tǒng)20及計(jì)算機(jī)系統(tǒng)90為本發(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人 員當(dāng)可據(jù)以做不同的變化。主控單元202、902為中央處理器、芯片組(南橋芯片、北橋芯 片)或上述的組合,然本發(fā)明并不以此為限。控制單元204、904為嵌入式控制器(embedded controller)、微處理器(Microprocessor), 1/0 控制器(1/0 controller)或任何具有類 似功能的元件。凡是可以用來存儲(chǔ)數(shù)據(jù)的裝置皆可用來實(shí)現(xiàn)本發(fā)明實(shí)施例中所提及的存儲(chǔ) 單元,例如只讀存儲(chǔ)器、電子式可擦除只讀存儲(chǔ)器、快閃存儲(chǔ)器、非揮發(fā)性存儲(chǔ)器等等。而 本發(fā)明實(shí)施例中所提及的數(shù)據(jù)傳輸單元可以是任何用來傳送數(shù)據(jù)的裝置,舉例來說,第一 數(shù)據(jù)傳輸單元912或第二數(shù)據(jù)傳輸單元914可為序列周邊總線接口(krial Peripheral Interface,SPI),第三數(shù)據(jù)傳輸單元916可為LPC總線接口 (Low Pin Count,LPC),第四數(shù) 據(jù)傳輸單元918可為通用串行總線接口 (Universal Serial Bus,USB),但不以此為限。此 外,在本發(fā)明中所述的熱鍵包含一個(gè)或一個(gè)以上的按鍵,舉例來說,可設(shè)定為功能鍵1 、字 母J鍵以及開關(guān)鍵為預(yù)設(shè)的熱鍵,當(dāng)此三鍵被同時(shí)按壓時(shí)即觸發(fā)一恢復(fù)需求。此外,在本發(fā) 明中所述的特定按鍵并不拘于特別型式,其包含計(jì)算機(jī)系統(tǒng)原先已存在或額外增設(shè)的實(shí)體 按鍵,換句話說,只要是能與控制單元連結(jié)并由其管理供應(yīng)電力的相關(guān)設(shè)備即可。綜上所述,相較于已知技術(shù)。本發(fā)明不需于開機(jī)時(shí)即檢查BIOS碼的狀況,而可在 計(jì)算機(jī)系統(tǒng)有恢復(fù)需求時(shí),利用控制單元來控制恢復(fù)程序,而不致因檢查程序損壞而中斷 開機(jī)程序。另一方面,本發(fā)明僅需使用較小的存儲(chǔ)空間來存放BIOS啟動(dòng)區(qū)塊碼,即可完成 恢復(fù)程序,將可大幅降低制造成本。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,凡依本發(fā)明權(quán)利要求書所做的均等變化與修11飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
權(quán)利要求
1.一種恢復(fù)一計(jì)算機(jī)系統(tǒng)的基本輸入輸出系統(tǒng)的方法,該計(jì)算機(jī)系統(tǒng)包含一主控單 元、一控制單元及一第一存儲(chǔ)裝置,該控制單元用來控制提供至該主控單元的一系統(tǒng)電源, 該主控單元通過一第一數(shù)據(jù)傳輸單元存取該第一存儲(chǔ)裝置中的一 BIOS碼來進(jìn)行開機(jī)初始 程序,該方法包含在該計(jì)算機(jī)系統(tǒng)有恢復(fù)需求時(shí),關(guān)閉該系統(tǒng)電源; 將一備份BIOS碼重寫入該第一存儲(chǔ)裝置;以及開啟該系統(tǒng)電源,使該主控單元得以存取該第一存儲(chǔ)裝置中經(jīng)重寫的該BIOS碼,以進(jìn) 行開機(jī)初始程序。
2.如權(quán)利要求1所述的方法,其中于該計(jì)算機(jī)系統(tǒng)有恢復(fù)需求時(shí),關(guān)閉該系統(tǒng)電源的 步驟包含在該計(jì)算機(jī)系統(tǒng)的至少一熱鍵、一特定按鍵或一組合鍵被按壓時(shí),或是于該控制單元 檢測(cè)該計(jì)算機(jī)系統(tǒng)發(fā)生開機(jī)失敗的次數(shù)大于一臨限值時(shí),關(guān)閉該系統(tǒng)電源。
3.如權(quán)利要求1所述的方法,其中將該備份BIOS碼重寫入該第一存儲(chǔ)裝置的步驟包含檢測(cè)該第一存儲(chǔ)裝置中的該BIOS碼;以及在檢測(cè)出該BIOS碼存在錯(cuò)誤時(shí),將該備份BIOS碼重寫入該第一存儲(chǔ)裝置。
4.如權(quán)利要求3所述的方法,其中檢測(cè)該第一存儲(chǔ)裝置中的該BIOS碼的步驟,包含 切換該第一數(shù)據(jù)傳輸單元,以連結(jié)該第一存儲(chǔ)裝置與該控制單元;以及利用該控制單元檢測(cè)存儲(chǔ)于該第一存儲(chǔ)裝置中的該BIOS碼。
5.如權(quán)利要求3所述的方法,其中于檢測(cè)出該BIOS碼存在錯(cuò)誤時(shí),將該備份BIOS碼重 寫入該第一存儲(chǔ)裝置的步驟,包含在檢測(cè)出該BIOS碼存在錯(cuò)誤時(shí),經(jīng)由一第二數(shù)據(jù)傳輸單元,讀取存儲(chǔ)于一第二存儲(chǔ)裝 置的該備份BIOS碼;以及經(jīng)由該第一數(shù)據(jù)傳輸單元,將所讀取的該備份BIOS碼重寫入至該第一存儲(chǔ)裝置。
6.如權(quán)利要求3所述的方法,其中檢測(cè)該第一存儲(chǔ)裝置中的該BIOS碼的步驟,包含 切換該第一數(shù)據(jù)傳輸單元以及一第二數(shù)據(jù)傳輸單元,以通過該第一數(shù)據(jù)傳輸單元與該第二數(shù)據(jù)傳輸單元連結(jié)該第一存儲(chǔ)裝置與該控制單元;以及 通過該控制單元檢測(cè)存儲(chǔ)于該第一存儲(chǔ)裝置中的該BIOS碼。
7.如權(quán)利要求6所述的方法,其中于檢測(cè)出該BIOS碼存在錯(cuò)誤時(shí),將該備份BIOS碼重 寫入至該第一存儲(chǔ)裝置的步驟包含在檢測(cè)出該BIOS碼存在錯(cuò)誤時(shí),切換該第二數(shù)據(jù)傳輸單元,以使該控制單元經(jīng)由該第 二數(shù)據(jù)傳輸單元讀取存儲(chǔ)于一第二存儲(chǔ)裝置的該備份BIOS碼;切換該第二數(shù)據(jù)傳輸單元,以使該控制單元經(jīng)由該第一數(shù)據(jù)傳輸單元與該第二數(shù)據(jù)傳 輸單元將該備份BIOS碼重寫入至該第一存儲(chǔ)裝置;以及切換該第一數(shù)據(jù)傳輸單元,以連結(jié)該第一存儲(chǔ)裝置與該主控單元,并切換該第二數(shù)據(jù) 傳輸單元,以連結(jié)該第二存儲(chǔ)裝置與該控制單元。
8.如權(quán)利要求3所述的方法,其中檢測(cè)存儲(chǔ)于該第一存儲(chǔ)裝置中的該BIOS碼的步驟, 包含對(duì)該BIOS碼執(zhí)行一校驗(yàn)和程序、一奇偶校驗(yàn)程序或一循環(huán)冗余校驗(yàn)程序,以檢測(cè)出該BIOS碼是否存在錯(cuò)誤。
9.一種計(jì)算機(jī)系統(tǒng),包含一第一存儲(chǔ)裝置,用來存儲(chǔ)一 BIOS碼;一第二存儲(chǔ)裝置,用來存儲(chǔ)一控制碼及一備份BIOS碼;一主控單元,經(jīng)由一第一數(shù)據(jù)傳輸單元耦接至該第一存儲(chǔ)裝置,用來存取該BIOS碼, 以進(jìn)行開機(jī)初始程序;以及一控制單元,耦接至該主控單元,用來根據(jù)該控制碼,控制提供至該主控單元的一系統(tǒng) 電源;其中,在該計(jì)算機(jī)系統(tǒng)有恢復(fù)需求時(shí),該控制單元關(guān)閉該系統(tǒng)電源并將該備份BIOS碼 重寫入該第一存儲(chǔ)裝置,再開啟該系統(tǒng)電源,使該主控單元得以存取該第一存儲(chǔ)裝置中經(jīng) 重寫的該BIOS碼,以進(jìn)行開機(jī)初始程序。
10.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其包含至少一熱鍵、一特定按鍵或一組合鍵,其 中于該至少一熱鍵、該特定按鍵或該組合鍵被按壓時(shí),觸發(fā)一恢復(fù)需求,使該控制單元根據(jù) 該恢復(fù)需求,關(guān)閉該系統(tǒng)電源。
11.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其中于該控制單元檢測(cè)該計(jì)算機(jī)系統(tǒng)發(fā)生開機(jī) 失敗的次數(shù)大于一臨限值時(shí),該控制單元關(guān)閉提供至該主控單元的該系統(tǒng)電源。
12.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其中該控制單元于關(guān)閉該系統(tǒng)電源后,切換一第 二數(shù)據(jù)傳輸單元,以經(jīng)由該第二數(shù)據(jù)傳輸單元讀取該備份BIOS碼,并切換該第一數(shù)據(jù)傳輸 單元,以經(jīng)由該第一數(shù)據(jù)傳輸單元將所讀取的該備份BIOS碼重寫入至該第一存儲(chǔ)裝置。
13.如權(quán)利要求12所述的計(jì)算機(jī)系統(tǒng),其中該控制單元于關(guān)閉該系統(tǒng)電源后,先切換 該第一數(shù)據(jù)傳輸單元,以通過該第一數(shù)據(jù)傳輸單元檢測(cè)存儲(chǔ)于該第一存儲(chǔ)裝置中的該BIOS 碼,當(dāng)該控制單元于檢測(cè)出該BIOS碼存在錯(cuò)誤時(shí),該控制單元再讀取該備份BIOS碼,并將 該備份BIOS碼重寫入至該第一存儲(chǔ)裝置。
14.如權(quán)利要求12所述的計(jì)算機(jī)系統(tǒng),其中該控制單元于將該備份BIOS碼重寫入該第 一存儲(chǔ)裝置后,切換該第一數(shù)據(jù)傳輸單元,以連結(jié)該第一存儲(chǔ)裝置與該主控單元,并開啟該 系統(tǒng)電源。
15.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其中第一數(shù)據(jù)傳輸單元還包含一第一切換開關(guān),選擇性地耦接于該主控單元、該控制單元或該第二數(shù)據(jù)傳輸單元。
16.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其中該控制單元于關(guān)閉該系統(tǒng)電源后,切換一 第二數(shù)據(jù)傳輸單元,以經(jīng)由該第二數(shù)據(jù)傳輸單元讀取存儲(chǔ)于該第二存儲(chǔ)裝置的該備份BIOS 碼,并切換該第一數(shù)據(jù)傳輸單元以及該第二數(shù)據(jù)傳輸單元,以經(jīng)由該第一數(shù)據(jù)傳輸單元與 該第二數(shù)據(jù)傳輸單元將所讀取的該備份BIOS碼重寫入至該第一存儲(chǔ)裝置。
17.如權(quán)利要求16所述的計(jì)算機(jī)系統(tǒng),其中該控制單元于關(guān)閉該系統(tǒng)電源后,先切換 該第一數(shù)據(jù)傳輸單元以及該第二數(shù)據(jù)傳輸單元,以通過該第一數(shù)據(jù)傳輸單元與該第二數(shù)據(jù) 傳輸單元檢測(cè)存儲(chǔ)于該第一存儲(chǔ)裝置中的該BIOS碼,當(dāng)該控制單元于檢測(cè)出該BIOS碼存 在錯(cuò)誤時(shí),該控制單元再切換該第二數(shù)據(jù)傳輸單元,以經(jīng)由該第二數(shù)據(jù)傳輸單元讀取存儲(chǔ) 于該第二存儲(chǔ)裝置的該備份BIOS碼,并切換該第二數(shù)據(jù)傳輸單元,以經(jīng)由該第一數(shù)據(jù)傳輸 單元與該第二數(shù)據(jù)傳輸單元將所讀取的該備份BIOS碼重寫入至該第一存儲(chǔ)裝置。
18.如權(quán)利要求17所述的計(jì)算機(jī)系統(tǒng),其中該控制單元于將該備份BIOS碼重寫入該第一存儲(chǔ)裝置后,切換該第一數(shù)據(jù)傳輸單元,以連結(jié)該第一存儲(chǔ)裝置與該主控單元,并開啟該 系統(tǒng)電源。
19.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其中第二數(shù)據(jù)傳輸單元還包含 一第二切換開關(guān),選擇性地耦接于該第一數(shù)據(jù)傳輸單元或該第二存儲(chǔ)裝置。
20.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其中該控制單元對(duì)該BIOS碼執(zhí)行一校驗(yàn)和程序、 一奇偶校驗(yàn)程序或一循環(huán)冗余校驗(yàn)程序,以檢測(cè)出該BIOS碼是否存在錯(cuò)誤。
21.一種恢復(fù)一計(jì)算機(jī)系統(tǒng)的基本輸入輸出系統(tǒng)的方法,該計(jì)算機(jī)系統(tǒng)包含一主控單 元、一控制單元及一第一存儲(chǔ)裝置,該控制單元用來控制提供至該主控單元的一系統(tǒng)電源, 該主控單元通過一第一數(shù)據(jù)傳輸單元存取該第一存儲(chǔ)裝置中的一 BIOS碼來進(jìn)行開機(jī)初始 程序,該方法包含在該計(jì)算機(jī)系統(tǒng)有恢復(fù)需求時(shí),利用該控制單元關(guān)閉該系統(tǒng)電源; 利用該控制單元控制該主控單元存取數(shù)據(jù),并開啟該系統(tǒng)電源; 利用該主控單元存取存儲(chǔ)于一第二存儲(chǔ)裝置的一 BIOS啟動(dòng)區(qū)塊碼; 利用該主控單元執(zhí)行該BIOS啟動(dòng)區(qū)塊碼,以將存儲(chǔ)于一第三存儲(chǔ)裝置的一備份BIOS 碼重寫入至該第一存儲(chǔ)裝置;利用該控制單元關(guān)閉該系統(tǒng)電源;以及利用該控制單元開啟該系統(tǒng)電源,使該主控單元得以通過該第一數(shù)據(jù)傳輸單元存取該 第一存儲(chǔ)裝置中經(jīng)重寫的該BIOS碼,以進(jìn)行開機(jī)初始程序。
22.如權(quán)利要求21所述的方法,其中于該計(jì)算機(jī)系統(tǒng)有恢復(fù)需求時(shí),利用該控制單元 關(guān)閉該系統(tǒng)電源的步驟包含在該計(jì)算機(jī)系統(tǒng)的至少一熱鍵、一特定按鍵或一組合鍵被按壓時(shí),或是于該控制單元 檢測(cè)該計(jì)算機(jī)系統(tǒng)發(fā)生開機(jī)失敗的次數(shù)大于一臨限值時(shí),利用該控制單元關(guān)閉該系統(tǒng)電 源。
23.如權(quán)利要求21所述的方法,其中利用該主控單元存取存儲(chǔ)于該第二存儲(chǔ)裝置的該 BIOS啟動(dòng)區(qū)塊碼的步驟,包含利用該主控單元傳送一存取要求至該控制單元;該控制單元根據(jù)該存取要求,自該第二存儲(chǔ)裝置讀取該BIOS啟動(dòng)區(qū)塊碼;以及 利用該主控單元存取該控制單元所讀取的該BIOS啟動(dòng)區(qū)塊碼。
24.如權(quán)利要求21所述的方法,其中利用該主控單元執(zhí)行該BIOS啟動(dòng)區(qū)塊碼,以將存 儲(chǔ)于該第三存儲(chǔ)裝置的該備份BIOS碼重寫入至該第一存儲(chǔ)裝置的步驟,包含利用該主控單元執(zhí)行該BIOS啟動(dòng)區(qū)塊碼,以讀取存儲(chǔ)于該第三存儲(chǔ)裝置的該備份 BIOS碼,并將所讀取的該備份BIOS碼重寫入至該第一存儲(chǔ)裝置。
25.一種計(jì)算機(jī)系統(tǒng),包含一第一存儲(chǔ)裝置,用來存儲(chǔ)一 BIOS碼;一第二存儲(chǔ)裝置,用來存儲(chǔ)一控制碼及一 BIOS啟動(dòng)區(qū)塊碼;一第三存儲(chǔ)裝置,用來存儲(chǔ)一備份BIOS碼;一主控單元,經(jīng)由一第一數(shù)據(jù)傳輸單元耦接至該第一存儲(chǔ)裝置,用來存取該BIOS碼, 以進(jìn)行開機(jī)初始程序;以及一控制單元,耦接至該第該主控單元,用來根據(jù)該控制碼,控制提供至該主控單元的一系統(tǒng)電源及讀取該BIOS啟動(dòng)區(qū)塊碼;其中,在該計(jì)算機(jī)系統(tǒng)有恢復(fù)需求時(shí),該控制單元存取所讀取的該BIOS啟動(dòng)區(qū)塊碼, 在該主控單元執(zhí)行該BIOS啟動(dòng)區(qū)塊碼時(shí),將存儲(chǔ)于該第三存儲(chǔ)裝置的該備份BIOS碼重寫 入至該第一存儲(chǔ)裝置,使該主控單元得以存取該第一存儲(chǔ)裝置中經(jīng)重寫的該BIOS碼,以進(jìn) 行開機(jī)初始程序。
26.如權(quán)利要求25所述的計(jì)算機(jī)系統(tǒng),其中該控制單元于該計(jì)算機(jī)系統(tǒng)有恢復(fù)需求 時(shí),關(guān)閉該系統(tǒng)電源,并控制該主控單元使該主控單元存取數(shù)據(jù),再開啟該系統(tǒng)電源。
27.如權(quán)利要求25所述的計(jì)算機(jī)系統(tǒng),其中該控制單元于該備份BIOS碼被重寫入至該 第一存儲(chǔ)裝置時(shí),關(guān)閉該系統(tǒng)電源,并控制該主控單元,使該主控單元通過該第一數(shù)據(jù)傳輸 單元存取數(shù)據(jù),再開啟該系統(tǒng)電源,以進(jìn)行開機(jī)初始程序。
28.如權(quán)利要求25所述的計(jì)算機(jī)系統(tǒng),其包含至少一熱鍵、一特定按鍵或一組合鍵,其 中于該至少一熱鍵、該特定按鍵或該組合鍵被按壓時(shí),觸發(fā)一恢復(fù)需求,使該控制單元根據(jù) 該恢復(fù)需求,關(guān)閉該系統(tǒng)電源。
29.如權(quán)利要求25所述的計(jì)算機(jī)系統(tǒng),其中于該控制單元檢測(cè)該計(jì)算機(jī)系統(tǒng)發(fā)生開機(jī) 失敗的次數(shù)大于一臨限值時(shí),該控制單元關(guān)閉提供至該主控單元的該系統(tǒng)電源。
全文摘要
恢復(fù)計(jì)算機(jī)系統(tǒng)的基本輸入輸出系統(tǒng)的方法及計(jì)算機(jī)系統(tǒng)。該計(jì)算機(jī)系統(tǒng)包含主控單元、控制單元及第一存儲(chǔ)裝置??刂茊卧脕砜刂铺峁┲林骺貑卧南到y(tǒng)電源。主控單元通過存取第一存儲(chǔ)裝置中的BIOS碼來進(jìn)行開機(jī)初始程序。而該方法包含在計(jì)算機(jī)系統(tǒng)有恢復(fù)需求時(shí),關(guān)閉系統(tǒng)電源;將備份BIOS碼重寫入第一存儲(chǔ)裝置;以及開啟系統(tǒng)電源,使主控單元得以存取第一存儲(chǔ)裝置中經(jīng)重寫的BIOS碼,以進(jìn)行開機(jī)初始程序。
文檔編號(hào)G06F11/14GK102053875SQ200910210170
公開日2011年5月11日 申請(qǐng)日期2009年10月29日 優(yōu)先權(quán)日2009年10月29日
發(fā)明者曹文俊, 梁德育, 潘思瑋, 陳正德 申請(qǐng)人:緯創(chuàng)資通股份有限公司