專利名稱:保護備用數據的方法
技術領域:
本發(fā)明是有關于一種開機方法,且特別是有關于一種保護備用數據的方法。
背景技術:
一般而言,電腦系統(tǒng)開啟時,首先基本輸入輸出系統(tǒng)(Basic Input Output System,BIOS)將被啟動,以執(zhí)行開機自我測試(Power On Self Test,POST)。在完成POST之 后,BIOS便會將有關于電腦系統(tǒng)的數據整合成一個表格,而寫入至主存儲器中;關于電腦 系統(tǒng)的數據,例如制造商、BIOS供應商、電腦序號、電腦全球唯一識別碼(Universal Unique Identifier, UUID)等等,是在電腦制造時就必須寫入例如BIOS Flash ROM非揮發(fā)性存儲 器(NVRAM)內。也就是說,BIOS是依據系統(tǒng)管理基本輸入輸出系統(tǒng)(System Management BI0S,SMBI0S)所訂定的規(guī)格,將所擷取的數據以數據結構的方式儲存至主存儲器中。為了 避免存在 BIOS 內的 SMBIOS (System Management Basic Input Output System)損毀而無 法開機,目前的BIOS flash ROM中會設置一個備用數據區(qū)域來進行備份。然而,現(xiàn)有的方法并沒對備用數據區(qū)域來做保護。在操作系統(tǒng)運行之下,備用數據 區(qū)域仍然能夠被存取,故也容易遭受到破壞。
發(fā)明內容
本發(fā)明提供一種保護備用數據的方法,以在操作系統(tǒng)之下隱藏備用數據區(qū)域。本發(fā)明提出一種保護備用數據的方法,適用于一固件存儲器,其包括工作數據區(qū) 域及備用數據區(qū)域。在本方法中,在執(zhí)行開機自我測試(Power on Self Test,POST)之下, 當工作數據區(qū)域及備用數據區(qū)域中的數據皆未被破壞時,判斷工作數據區(qū)域的第一全域唯 一識別碼(Global Unique Identifier,⑶ID)與備用數據區(qū)域的第二 GUID是否相同。若 第一 GUID與該第二 GUID不相同,則將工作數據區(qū)域的數據同步至備用數據區(qū)域中。接著, 設定工作數據區(qū)域及備用數據區(qū)域共用同一存儲器地址空間。之后,依據區(qū)域切換寄存器, 選擇在執(zhí)行操作系統(tǒng)之下將工作數據區(qū)域及備用數據區(qū)域其中之一映射至存儲器地址空 間。例如,當區(qū)域切換寄存器記錄第一預設值時,在執(zhí)行操作系統(tǒng)之下,跳過備用數據區(qū)域 而選擇將工作數據區(qū)域映射至存儲器地址空間。另一方面,當區(qū)域切換寄存器記錄第二預 設值時,在執(zhí)行操作系統(tǒng)之下,跳過工作數據區(qū)域而選擇將備用數據區(qū)域映射至存儲器地 址空間。在本發(fā)明一實施例中,上述保護備用數據的方法還包括設定芯片中的工作變址寄 存器、備用變址寄存器、區(qū)域尺寸寄存器以及區(qū)域切換寄存器。工作變址寄存器及備用變址 寄存器分別記錄了工作數據區(qū)域及備用數據區(qū)域于固件存儲器的偏移地址。區(qū)域尺寸寄存 器記錄了工作數據區(qū)域及備用數據區(qū)域的尺寸。區(qū)域切換寄存器記錄第一預設值或第二預 設值。在本發(fā)明一實施例中,上述在判斷第一⑶ID與第二⑶ID是否相同的步驟之前,可 通過BIOS設定第一簽章及第二簽章,并分別存在于工作數據區(qū)域以及備用數據區(qū)域。之后,依據工作數據區(qū)域所記錄的第一簽章及第一核對和(checksum),并且依據備用數據區(qū) 域所記錄的第二簽章及第二核對和,判斷工作數據區(qū)域與備用數據區(qū)域是否被破壞。在本發(fā)明一實施例中,上述判斷工作數據區(qū)域與備用數據區(qū)域是否被破壞的步驟 詳細說明如下所述。依據工作數據區(qū)域所記錄的第一簽章及第一核對和,判斷工作數據區(qū) 域是否被破壞。若工作數據區(qū)域被破壞,依據備用數據區(qū)域所記錄的第二簽章及第二核對 和,判斷備用數據區(qū)域是否被破壞。相反地,若工作數據區(qū)域未被破壞,同樣地判斷備用數 據區(qū)域是否被破壞。倘若工作數據區(qū)域與備用數據區(qū)域皆未被破壞,判斷工作數據區(qū)域的 第一 GUID與備用數據區(qū)域的第二 GUID是否相同,以在不同時,將工作數據區(qū)域的數據同步 至備用數據區(qū)域中。倘若工作數據區(qū)域未被破壞而備用數據區(qū)域被破壞,直接將工作數據 區(qū)域的數據同步至備用數據區(qū)域中。上述將工作數據區(qū)域的數據同步至備用數據區(qū)域中的 步驟為,將工作數據區(qū)域的數據、BIOS所設定的第二簽章寫入至備用數據區(qū)域,并且重新計 算第二核對和。承上,若工作數據區(qū)域被破壞而備用數據區(qū)域未被破壞,將備用數據區(qū)域的數據、 BIOS所設定的第一簽章寫入至工作數據區(qū)域,并且重新計算第一核對和。另外,倘若工作數 據區(qū)域及備用數據區(qū)域中的數據皆被破壞,則提示一消息。基于上述,本發(fā)明在進行映射時,使得工作數據區(qū)域與備用數據區(qū)域能夠共同使 用相同的存儲器地址空間,并且在操作系統(tǒng)運行之時,將此存儲器地址空間設定給工作數 據區(qū)域使用。據此,可避免備用數據區(qū)域被更改。再者,當操作系統(tǒng)更改工作數據區(qū)域內數 據時,其也必須重新給一新的⑶ID,并將其寫入至工作數據區(qū)域內的標頭內⑶ID字段。為讓本發(fā)明上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合所附圖作詳 細說明如下。
圖1是本發(fā)明一實施例保護備用數據的方法流程圖;圖2是本發(fā)明一實施例保護備用數據的方法中存儲器地址空間與固件存儲器的 對應關系圖;圖3是本發(fā)明另一實施例保護備用數據的方法流程圖。附圖標記說明210-固件存儲器;211-備用數據區(qū)域;213-工作數據區(qū)域;220-存儲器地址空間;S105 S120-本發(fā)明一實施例之保護備用數據的方法各步驟;S305 S360-本發(fā)明另一實施例之保護備用數據的方法各步驟。
具體實施例方式圖1是本發(fā)明一實施例保護備用數據的方法流程圖。本實施例是應用于一固件存 儲器,例如是用來儲存基本輸入輸出系統(tǒng)(Basic Input Output SyStem,BI0S)的快閃只讀 存儲器(Flash Read-Only Memory)。在本實施例中,固件存儲器包括工作數據區(qū)域與備用數據區(qū)域。備用數據區(qū)域的功能即是工作數據區(qū)域的備份。請參照圖1,首先,在步驟S105中,由BIOS執(zhí)行開機自我測試(Power on Self Test,P0ST)。在此,BIOS先初始化系統(tǒng)存儲器,使得系統(tǒng)存儲器能夠存取。并且,將固件存 儲器整個映射至4G-1以下地址的存儲器地址空間。接著,在步驟SllO中,當工作數據區(qū)域及備用數據區(qū)域的數據皆未被破壞,且檢 查到工作數據區(qū)域中的全域唯一識別碼(GlcAal Unique Identifier,⑶ID)與備用數據區(qū) 域的GUID不相同時,將工作數據區(qū)域的數據同步(寫入)至備用數據區(qū)域中。這是為了使 工作數據區(qū)域與備用數據區(qū)域中的數據能夠隨時保持一致性。之后,在步驟S115中,設定工作數據區(qū)域及備用數據區(qū)域共用同一個存儲器地址 空間。并且,如步驟S120所示,依據區(qū)域切換寄存器,選擇在執(zhí)行操作系統(tǒng)之下將工作數據 區(qū)域或備用數據區(qū)域映射至存儲器地址空間。也就是說,當區(qū)域切換寄存器記錄第一預設 值(例如為0)時,在執(zhí)行操作系統(tǒng)之下,跳過備用數據區(qū)域而選擇將工作數據區(qū)域映射至 該存儲器地址空間。另一方面,當區(qū)域切換寄存器記錄第二預設值(例如為1)時,在執(zhí)行 操作系統(tǒng)之下,跳過工作數據區(qū)域而選擇將備用數據區(qū)域映射至存儲器地址空間。據此,工 作數據區(qū)域與備用數據區(qū)域能夠使用同一存儲器地址空間,并且在操作系統(tǒng)之下,能夠隱 藏其中之一,使得僅能夠存取其中之另一。在此,為了保護備用數據區(qū)域不被任意更改,因此便將區(qū)域切換寄存器的值設為 0,使得在操作系統(tǒng)底下,將備用數據區(qū)域隱藏。具體而言,可在對芯片(例如南橋芯片)中的暫存器進行設定,以完成上述步驟。 暫存器包括工作變址寄存器、備用變址寄存器、區(qū)域尺寸寄存器以及區(qū)域切換寄存器。其 中,工作變址寄存器及備用變址寄存器分別記錄了工作數據區(qū)域及備用數據區(qū)域在固件存 儲器的偏移(offset)地址。區(qū)域尺寸寄存器則記錄了工作數據區(qū)域及備用數據區(qū)域的尺 寸。而區(qū)域切換寄存器記錄第一預設值或第二預設值,以選擇將工作數據區(qū)域或備用數據 區(qū)域映射至存儲器地址空間。舉例來說,圖2是本發(fā)明一實施例保護備用數據的方法中存儲器地址空間與固件 存儲器的對應關系圖。在此,假設工作變址寄存器為lAOOOOh,備用變址寄存器為lOOOOOh, 區(qū)域尺寸寄存器為IOOOOh(64K)。請參照圖2,固件存儲器210的每個地址均會對應至存儲器空間地址220,使得處 理器能夠依據存儲器地址空間220中定義的地址去存取固件存儲器210中的數據。在此, 固件存儲器210中包括備用數據區(qū)域211與工作數據區(qū)域213。其中,備用數據區(qū)域211于 固件存儲器中的起始位置即為lOOOOOh,且其尺寸為64K。而工作數據區(qū)域213在固件存儲 器中的起始位置為lAOOOOh,且其尺寸為64K。由于備用數據區(qū)域211與工作數據區(qū)域213 為共同使用存儲器地址空間X,因此,相較于傳統(tǒng)方法,節(jié)省了 64K的存儲器地址空間。另外,工作數據區(qū)域213與備用數據區(qū)域211的格式分別包括標頭(header)與本 體(body)兩部份。其中,本體是用來儲存數據(例如SMBIOS數據),標頭則是用來記錄簽 章(signature)、⑶ID以及核對和(checksum)。⑶ID是用來識別工作數據區(qū)域213的數據 與備用數據區(qū)域211的數據是否一致。簽章與核對和則是為了檢查工作數據區(qū)域213與備 用數據區(qū)域211的數據是否有效或是被破壞。以下再舉一實施例來詳細說明。圖3是本發(fā)明另一實施例保護備用數據的方法流程圖。請參照圖3,在步驟S305,執(zhí)行BIOS中啟動區(qū)塊(boot block)的POST,以初始化系統(tǒng)存儲器以進行存取。并且,將固 件存儲器整個映射至4G-1以下地址的存儲器地址空間。接著,在步驟S310中,通過BIOS設定第一簽章及第二簽章,且第一簽章與第二簽 章分別存在于工作數據區(qū)域與備用數據區(qū)域。之后,便能夠依據工作數據區(qū)域所記錄的第 一簽章及第一核對和,以及依據備用數據區(qū)域所記錄的第二簽章及第二核對和,判斷工作 數據區(qū)域與備用數據區(qū)域是否被破壞。詳細說明如下所述。在步驟S315中,依據工作數據區(qū)域所記錄的第一簽章及第一核對和,判斷工作數 據區(qū)域是否被破壞。若工作數據區(qū)域被破壞,執(zhí)行步驟S320,依據備用數據區(qū)域所記錄的 第二簽章及第二核對和,判斷備用數據區(qū)域是否被破壞。倘若備用數據區(qū)域未被破壞,如步 驟S325所示,將備用數據區(qū)域的數據、BIOS所設定的第一簽章寫入至工作數據區(qū)域,并且 重新計算第一核對和?;氐讲襟ES315,倘若工作數據區(qū)域未被破壞,執(zhí)行步驟S330,依據備用數據區(qū)域 所記錄的第二簽章及第二核對和,判斷備用數據區(qū)域是否被破壞。若工作數據區(qū)域與備用數據區(qū)域皆未被破壞,執(zhí)行步驟S335,以檢查工作數據區(qū) 域與備用數據區(qū)域中的數據是否同步。也就是說,判斷工作數據區(qū)域的第一 GUID與備用數 據區(qū)域的第二⑶ID是否相同。倘若第一⑶ID與第二⑶ID不同,將工作數據區(qū)域的數據同 步至該備用數據區(qū)域中,如步驟S340所示。在步驟S340中,將工作數據區(qū)域的數據、BIOS所設定的第二簽章寫入至備用數據 區(qū)域,并且重新計算第二核對和。此時,備份數據區(qū)域中的數據便會與工作數據區(qū)域中的數 據相同。之后,步驟S345與步驟S350分別與上述實施例的步驟Sl 15與步驟S120相同或相 似,在此不再贅述。最后,在步驟S355中,繼續(xù)其他POST過程,例如主要區(qū)塊(main block) 中的POST。值得注意的是,倘若工作數據區(qū)域被破壞,且備用數據區(qū)域亦被破壞,此時執(zhí)行步 驟S360,提示一消息以顯示工作數據區(qū)域與備用數據區(qū)域為無效且被破壞。綜上所述,本發(fā)明在進行映射時,使得工作數據區(qū)域與備用數據區(qū)域能夠共同使 用相同的存儲器地址空間,并且在操作系統(tǒng)運行之時,將此存儲器地址空間設定給工作數 據區(qū)域使用。并且,通過上述方法更能夠使得備用數據區(qū)域的數據與工作數據區(qū)域的數據 保持一致,且保持一致的動作會于POST的過程中完成。另外,由于備用數據區(qū)域在操作系 統(tǒng)運行之下并不會映射至存儲器地址空間,因此在操作系統(tǒng)運行之下便無法來存取備用數 據區(qū)域。據此使得備用數據區(qū)域免于被惡意或有意破壞。再者,當操作系統(tǒng)更改工作數據 區(qū)域內數據時,其也必須重新給一新的⑶ID,并將其寫入至工作數據區(qū)域內標頭內的⑶ID 字段。最后應說明的是_以上實施例僅用以說明本發(fā)明的技術方案而非對其進行 限制,盡管參照較佳實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理 解_其依然可以對本發(fā)明的技術方案進行修改或者等同替換,而這些修改或者等同替換 亦不能使修改后的技術方案脫離本發(fā)明技術方案的精神和范圍。
權利要求
1.一種保護備用數據的方法,適用于固件存儲器,其包括工作數據區(qū)域及備用數據區(qū) 域,該方法包括在執(zhí)行開機自我測試之下,當該工作數據區(qū)域及該備用數據區(qū)域中的數據皆未被破壞 時,判斷該工作數據區(qū)域的第一全域唯一識別碼與該備用數據區(qū)域的第二全域唯一識別碼 是否相同;若該第一全域唯一識別碼與該第二全域唯一識別碼不相同,則將該工作數據區(qū)域的數 據同步至該備用數據區(qū)域中;設定該工作數據區(qū)域及該備用數據區(qū)域共用一存儲器地址空間;以及, 依據區(qū)域切換寄存器,選擇在執(zhí)行操作系統(tǒng)之下將該工作數據區(qū)域及該備用數據區(qū)域 其中之一映射至該存儲器地址空間,包括當該區(qū)域切換寄存器記錄第一預設值時,在執(zhí)行該操作系統(tǒng)之下,跳過該備用數據區(qū) 域而選擇將該工作數據區(qū)域映射至該存儲器地址空間;以及,當該區(qū)域切換寄存器記錄第二預設值時,在執(zhí)行該操作系統(tǒng)之下,跳過該工作數據區(qū) 域而選擇將該備用數據區(qū)域映射至該存儲器地址空間。
2.根據權利要求1所述保護備用數據的方法,還包括設定芯片中的工作變址寄存器、備用變址寄存器、區(qū)域尺寸寄存器以及該區(qū)域切換寄 存器,其中該工作變址寄存器及該備用變址寄存器分別記錄了該工作數據區(qū)域及該備用數 據區(qū)域在該固件存儲器的偏移地址,該區(qū)域尺寸寄存器記錄了該工作數據區(qū)域及該備用數 據區(qū)域的尺寸,該區(qū)域切換寄存器記錄該第一預設值或該第二預設值。
3.根據權利要求1所述保護備用數據的方法,其中在判斷該第一全域唯一識別碼與該 第二全域唯一識別碼是否相同的步驟之前,還包括通過基本輸入輸出系統(tǒng)設定第一簽章及第二簽章,并分別存在于該工作數據區(qū)域以及 該備用數據區(qū)域;以及,依據該工作數據區(qū)域所記錄的該第一簽章及一第一核對和,并且依據該備用數據區(qū)域 所記錄的該第二簽章及第二核對和,判斷該工作數據區(qū)域與該備用數據區(qū)域是否被破壞。
4.根據權利要求3所述保護備用數據的方法,其中判斷該工作數據區(qū)域與該備用數據 區(qū)域是否被破壞的步驟,包括依據該工作數據區(qū)域所記錄的該第一簽章及該第一核對和,判斷該工作數據區(qū)域是否 被破壞;若該工作數據區(qū)域被破壞,依據該備用數據區(qū)域所記錄的該第二簽章及該第二核對 和,判斷該備用數據區(qū)域是否被破壞;若該備用數據區(qū)域未被破壞,將該備用數據區(qū)域的數據、該基本輸入輸出系統(tǒng)所設定 的該第一簽章寫入至該工作數據區(qū)域,并且重新計算該第一核對和。
5.根據權利要求4所述保護備用數據的方法,其中依據該工作數據區(qū)域所記錄的該第 一簽章及該第一核對和,判斷該工作數據區(qū)域是否被破壞的步驟之后,還包括若該工作數據區(qū)域未被破壞,依據該備用數據區(qū)域所記錄的該第二簽章及該第二核對 和,判斷該備用數據區(qū)域是否被破壞;以及,若該備用數據區(qū)域未被破壞,判斷該工作數據區(qū)域的該第一全域唯一識別碼與該備用 數據區(qū)域的該第二全域唯一識別碼是否相同,以在不同時,將該工作數據區(qū)域的數據同步至該備用數據區(qū)域中。
6.根據權利要求5所述保護備用數據的方法,其中當該工作數據區(qū)域未被破壞而該備 份數據區(qū)域被破壞時,將該工作數據區(qū)域的數據同步至該備用數據區(qū)域中。
7.根據權利要求5所述保護備用數據的方法,其中將該工作數據區(qū)域的數據同步至該 備用數據區(qū)域中的步驟,包括將該工作數據區(qū)域的數據、該基本輸入輸出系統(tǒng)所設定的該第二簽章寫入至該備用數 據區(qū)域,并且重新計算該第二核對和。
8.根據權利要求1所述保護備用數據的方法,還包括當該工作數據區(qū)域及該備用數據區(qū)域中的數據皆被破壞時,提示消息。
全文摘要
本發(fā)明公開了一種保護備用數據的方法。在本方法中,在執(zhí)行開機自我測試之下,當工作數據區(qū)域及備用數據區(qū)域皆未被破壞時,判斷工作數據區(qū)域與備用數據區(qū)域兩者的全域唯一識別碼是否相同。若不相同,則將工作數據區(qū)域的數據同步至備用數據區(qū)域中。接著,設定工作數據區(qū)域及備用數據區(qū)域共用同一存儲器地址空間。之后,依據區(qū)域切換寄存器,選擇在執(zhí)行操作系統(tǒng)之下將工作數據區(qū)域及備用數據區(qū)域其中之一映射至上述存儲器地址空間。
文檔編號G06F9/445GK102053874SQ200910207060
公開日2011年5月11日 申請日期2009年10月27日 優(yōu)先權日2009年10月27日
發(fā)明者盧盈志, 王郁蕙 申請人:英業(yè)達股份有限公司