專利名稱::動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法
技術領域:
:本發(fā)明涉及一種數(shù)據(jù)保護方法,尤其涉及一種動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法。
背景技術:
:隨著電子科技的發(fā)達,各種信息的交流無不仰賴于各種儲存媒體,而其中的存儲器因其運作速率快,成為電腦中不可或缺的儲存媒體。然而,由于信息傳輸量日益增大,對于傳送速率的要求也日益提升,導致系統(tǒng)業(yè)者對于存儲器容量及速度的要求逐漸提高。然而,在提高存儲器容量的同時,存儲器中記憶胞的密度也相對增高,而隨著積體電路在半導體記憶元件上密度的增加,每個記憶胞的尺寸就必須減少。因此,一個記憶胞在需要得到較小尺寸、又要得到其原本電容的情況下,不僅制程變的復雜,在系統(tǒng)高速存取的要求下,記憶胞發(fā)生錯誤的機率也會增加。存儲器發(fā)生錯誤的情況可分為可修正錯誤(CorrectableError,CE)及不可修正錯誤(UncorrectableError,UE)??尚拚e誤(CorrectableError,CE)一般為單比特錯誤(SingleBitError,SBE)或是發(fā)生錯誤的比特數(shù)目在電子裝置的可修正范圍內(nèi)的多比特錯誤(Multi-BitError,MBE)。其中,可修正錯誤仍可通過錯誤檢測與修正(ErrorDetectionandCorrection,EDC)方法彈性地修正。對于可修正錯誤,現(xiàn)有技術是在存儲器中配置備用(Spare)存儲器模組的方式,以在存儲器發(fā)生可修正錯誤時作為數(shù)據(jù)備份之用;而對于不可修正錯誤,現(xiàn)有技術是使用存儲器的一半作為映像(Mirror)存儲器,以在存儲器發(fā)生不可修正錯誤時作為數(shù)據(jù)修正Z用ο然而,現(xiàn)有技術只能在開機之初從基本輸入輸出系統(tǒng)(BasicInputOutputSystem,BIOS)中的選項靜態(tài)地選擇映射存儲器模式或是備用存儲器模式來保護記憶胞的數(shù)據(jù),之后就一直使用此存儲器模式直到系統(tǒng)重開機。而由于每一種存儲器模式各有其保護的對象(即不可修正錯誤或可修正錯誤),且要有足夠的存儲器空間才能啟動保護,一旦在系統(tǒng)運作的過程中發(fā)生錯誤,就會產(chǎn)生冗余漏失(redundantlost),而失去存儲器的保護功能,也會浪費好的冗余存儲器頁面。
發(fā)明內(nèi)容本發(fā)明提供一種動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,可在讀取存儲器發(fā)生錯誤時動態(tài)切換存儲器模式以保護受損記憶胞的數(shù)據(jù)。本發(fā)明提出一種動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,適用于包括存儲器的電子裝置,此存儲器包括存儲器控制器及至少一個存儲模組,這些存儲模組中的每個均是由多個記憶胞組成,且這些記憶胞劃分為多個頁面。此方法在執(zhí)行開機程序時,啟動映像存儲器模式,以保護存儲模組的數(shù)據(jù),接著執(zhí)行作業(yè)系統(tǒng),并在作業(yè)系統(tǒng)讀取存儲器時,利用存儲器控制器檢測存儲模組中各個頁面所發(fā)生的不可修正錯誤,而當檢測到有頁面發(fā)生不可修正錯誤時,即判定包括此頁面的存儲模組為受損存儲模組,而將映像存儲器模式切換為備用存儲器模式,以保護存儲模組的數(shù)據(jù)。在本發(fā)明一實施例中,上述啟動映像存儲器模式,以保護存儲模組數(shù)據(jù)的步驟包括找出存儲模組中的至少一個數(shù)據(jù)模組及其對應的至少一個映像模組,并在電子裝置每次通過存儲器控制器存取存儲模組時,同時存取對應的映像模組。在本發(fā)明一實施例中,上述當檢測到有頁面發(fā)生不可修正錯誤時,將映像存儲器模式切換為備用存儲器模式,以保護存儲模組的數(shù)據(jù)的步驟包括使用受損存儲模組對應的映像模組取代受損存儲器模組,以修正不可修正錯誤,并結(jié)束映像存儲器模式,接著啟動備用存儲器模式,而使用未發(fā)生不可修正錯誤的存儲模組作為備份模組,用以修正其他存儲模組所發(fā)生的可修正錯誤。在本發(fā)明一實施例中,在上述將映像存儲器模式切換為備用存儲器模式,以保護存儲模組的數(shù)據(jù)的步驟之后,還包括利用存儲器控制器檢測未發(fā)生不可修正錯誤之各個存儲模組所發(fā)生的可修正錯誤,并累計各個存儲模組發(fā)生可修正錯誤的次數(shù),而與一門檻值比較。當有存儲模組之可修正錯誤的次數(shù)大于等于門檻值時,即判定此存儲模組為受損存儲模組,然后將備用存儲器模式切換為頁面存儲器模式,而以未受損的其他存儲模組之一取代受損存儲模組,并利用已受損的存儲模組中的至少一個未受損頁面保護未受損的存儲模組所發(fā)生的可修正錯誤。在本發(fā)明一實施例中,上述將備用存儲器模式切換為頁面存儲器模式,而以未受損的其他存儲模組之一取代受損存儲模組,并利用已受損的存儲模組中的至少一個未受損頁面保護未受損的存儲模組所發(fā)生的可修正錯誤的步驟包括啟動頁面存儲器模式,而由已受損的存儲模組中取得未受損頁面其中之一作為備份頁面,以備份未受損的存儲模組中發(fā)生可修正錯誤的受損頁面的數(shù)據(jù),然后將受損頁面及其備份頁面的對映地址記錄于存儲器控制器中的頁面映射表,而當作業(yè)系統(tǒng)存取此受損頁面時,即可由存儲器控制器根據(jù)頁面映射表中的對映地址,改為存取備份頁面的數(shù)據(jù)。在本發(fā)明一實施例中,在上述啟動映像存儲器模式、備用存儲器模式或頁面存儲器模式時,還包括傳送一則控制指令(IPMIcommand)至電子裝置的基板管理控制器,以告知基板管理控制器目前所使用的存儲器模式。本發(fā)明提出一種動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,適用于包括存儲器的電子裝置,此存儲器包括存儲器控制器及至少一個存儲模組,這些存儲模組中的每個均是由多個記憶胞組成,且這些記憶胞劃分為多個頁面。此方法在執(zhí)行開機程序時,啟動備用存儲器模式,以保護存儲模組的數(shù)據(jù),接著執(zhí)行作業(yè)系統(tǒng),并在作業(yè)系統(tǒng)讀取存儲器時,利用存儲器控制器檢測各個存儲模組所發(fā)生的可修正錯誤,并累計各個存儲模組發(fā)生可修正錯誤的次數(shù),而與門檻值比較。當有存儲模組的可修正錯誤的次數(shù)大于等于門檻值時,即判定此存儲模組為受損存儲模組,而將備用存儲器模式切換為頁面存儲器模式,以保護存儲模組的數(shù)據(jù)。在本發(fā)明一實施例中,在上述利用存儲器控制器檢測各個存儲模組所發(fā)生的可修正錯誤的步驟之后,還包括找出存儲模組中的備份模組,并利用此備份模組備份發(fā)生可修正錯誤的存儲模組的數(shù)據(jù),以修正此存儲模組所發(fā)生的可修正錯誤。在本發(fā)明一實施例中,上述將備用存儲器模式切換為頁面存儲器模式,以保護存5儲模組的數(shù)據(jù)的步驟包括啟動頁面存儲器模式,而由已受損的存儲模組中取得至少一個未受損頁面之一作為備份頁面,以備份未受損的存儲模組中發(fā)生可修正錯誤的受損頁面的數(shù)據(jù),然后將受損頁面及備份頁面的對映地址記錄于存儲器控制器中的頁面映射表。當作業(yè)系統(tǒng)存取受損頁面時,即可由存儲器控制器根據(jù)頁面映射表中的對映地址,改為存取備份頁面的數(shù)據(jù)。在本發(fā)明一實施例中,在上述啟動映像存儲器模式、備用存儲器模式或頁面存儲器模式時,還包括傳送一則控制指令(IPMIcommand)至電子裝置的基板管理控制器,以告知基板管理控制器目前所使用的存儲器模式。基于上述,本發(fā)明的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,在讀取存儲器的過程中,若發(fā)生不可修正錯誤,將映像存儲器模式轉(zhuǎn)換為備用存儲器模式;若單一頁面發(fā)生可修正錯誤的數(shù)量達到一定量,再將備用存儲器模式轉(zhuǎn)換為頁面存儲器模式,由此達到記憶胞數(shù)據(jù)的保護。為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合附圖作詳細說明如下。圖1是依據(jù)本發(fā)明一實施例所圖示的電子裝置的系統(tǒng)架構示意圖。圖2是依據(jù)本發(fā)明一實施例所圖示的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法的流程圖。圖3是依據(jù)本發(fā)明一實施例所圖示的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法的流程圖。圖4是依據(jù)本發(fā)明一實施例所圖示的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法的流程圖。圖5是依據(jù)本發(fā)明一實施例所圖示的映像存儲器模式下存儲模組的使用范例。圖6是依據(jù)本發(fā)明一實施例所圖示的備用存儲器模式下存儲模組的使用范例。圖7是依據(jù)本發(fā)明一實施例所圖示的頁面存儲器模式下存儲模組的使用范例。主要附圖標記說明100:電子裝置;110:處理器;120:存儲器;130:中斷處理模組;140存儲器控制器;150存儲模組;S210-S230:本發(fā)明一實施例的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法步驟;S310-S370:本發(fā)明一實施例的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法步驟;S410-S450:本發(fā)明一實施例的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法步驟。具體實施例方式現(xiàn)行的映像存儲器模式會針對存儲器中的每一個存儲模組使用同等容量的映像(Mirror)模組來做備份,而當有存儲模組發(fā)生不可修正錯誤(UncorrectableError,UE)時,其對應的映像模組即會取代此存儲模組,以供作業(yè)系統(tǒng)讀取數(shù)據(jù),在此時存儲器的映像保護功能也會失效。對此,本發(fā)明由動態(tài)地將存儲器模式切換為備用存儲器模式,使用剩余未受影響的存儲模組來保護發(fā)生可修正錯誤(CorrectableError,CE)的存儲模組的數(shù)據(jù),因此能夠繼續(xù)提供存儲器數(shù)據(jù)的保護。本發(fā)明即是根據(jù)上述概念所發(fā)展出來的一種受損記憶胞的數(shù)據(jù)保護方法,以下即舉實施例說明其詳細實施方式。圖1是依據(jù)本發(fā)明一實施例所圖示的電子裝置的系統(tǒng)架構示意圖。請參照圖1,本實施例的電子裝置100包括處理器110、存儲器120及中斷處理模組130,而存儲器120中包括存儲器控制器140以及至少一個存儲模組150,每個存儲模組150均是由多個記憶胞組成,而這些記憶胞則劃分為多個頁面。處理器110例如是中央處理單元(CentralProcessingUnit,CPU),而存儲器120例如是動態(tài)隨機存取存儲器(DynamicRandomAccessMemory,DRAM)或其他種類的存儲器,在此并不設限。此外,中斷處理模組130例如是系統(tǒng)管理中斷處理程式(SystemManagementInterrupthandler,SMIhandler),而用以服務處理器110所接收到的系統(tǒng)管理中斷(SystemManagementInterrupt,SMI)。詳細而言,當電子裝置100中的元件觸發(fā)系統(tǒng)管理中斷時,即會發(fā)送系統(tǒng)管理中斷訊息至處理器110,而處理器110在接收到此訊號時,即進入系統(tǒng)管理模式(SystemManagementMode,SMM),而由基本輸入輸出系統(tǒng)(BasicInputOutputSystem,BIOS)在此模式下執(zhí)行系統(tǒng)管理中斷處理程式,以服務系統(tǒng)管理中斷。圖2是依據(jù)本發(fā)明一實施例所圖示的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法的流程圖。請參照圖2,本實施例的方法適用于圖1的電子裝置100,以下則搭配圖1的電子裝置100中的各個元件說明此方法的詳細步驟。當電子裝置100的電源開啟時,處理器110即執(zhí)行開機程序,并啟動映像存儲器模式,以保護存儲模組150的數(shù)據(jù)(步驟S210)。其中,電子裝置100開機時例如會先檢查系統(tǒng)存儲器120的安裝情況,以找出其所采用的存儲器模式。而在啟動此存儲器模式之后,電子裝置還會傳送一則控制指令(IPMIcommand)至基板管理控制器(BaseboardManagementController,BMC),以告知基板管理控制器目前所使用的存儲器模式。本實施例的電子裝置100預設使用映像存儲器模式來保護存儲器120的數(shù)據(jù)。在映像存儲器模式中,電子裝置100例如會找出存儲模組150中用來記錄數(shù)據(jù)的至少一個數(shù)據(jù)模組以及這些數(shù)據(jù)模組對應的映像模組,而在電子裝置100每次通過存儲器控制器140存取數(shù)據(jù)模組時,也同時存取對應的映像模組。由此,一旦有數(shù)據(jù)模組或是映像模組中的數(shù)據(jù)因為發(fā)生不可修正錯誤而無法被讀取時,電子裝置100還是可以利用其所對應的數(shù)據(jù)模組或是映像模組找回數(shù)據(jù)。接著,由處理器110執(zhí)行作業(yè)系統(tǒng),而在作業(yè)系統(tǒng)讀取存儲器時,則利用存儲器控制器140檢測存儲模組150中各個頁面所發(fā)生的不可修正錯誤(步驟S220)。上述的不可修正錯誤包括發(fā)生錯誤的比特數(shù)目超過電子裝置的可修正范圍的多比特錯誤,在此不設限。當存儲器控制器檢測到有頁面發(fā)生不可修正錯誤時,即判定包括此頁面的存儲模組150為受損存儲模組,并將存儲器模式由映像存儲器模式切換為備用存儲器模式,以保護存儲模組150的數(shù)據(jù)(步驟S230)。詳細而言,存儲器控制器140在檢測到不可修正錯誤時,即會發(fā)送系統(tǒng)管理中斷訊息至處理器110,而處理器110在接收到此訊號時,即會進入系統(tǒng)管理模式,并通知中斷處理模組130以執(zhí)行系統(tǒng)中斷。此時,中斷處理模組130即會使用受損存儲模組對應的映像模組來取代受損存儲器模組,以修正不可修正錯誤。之后,中斷處理模組130即結(jié)束映像存儲器模式,并啟動備用存儲器模式,轉(zhuǎn)而使用未發(fā)生不可修正錯誤的存儲模組150其中之一作為備份模組,而用以修正其他存儲模組150所發(fā)生的可修正錯誤。其中,中斷處理模組130在啟動備用存儲器模式之后,還會傳送一則控制指令至基板管理控制器,以告知基板管理控制器目前已發(fā)生映像冗余漏失(mirrorredundancylost),并已切換至備用存儲器模式,之后才離開中斷處理模組130。由上述的數(shù)據(jù)保護方法,電子裝置即能夠在預設使用映像存儲器模式且已發(fā)生不可修正錯誤的情況下,繼續(xù)使用剩余的存儲模組來預防可修正錯誤,而不致造成存儲器的冗余漏失(redundantlost),進而失去存儲器數(shù)據(jù)的保護功能。需說明的是,在切換至備用存儲器模式的情況下,本發(fā)明還包括持續(xù)檢測各個存儲模組所發(fā)生的可修正錯誤,并在單一個存儲模組發(fā)生可修正錯誤數(shù)目過多的情況下,將此存儲模組替換掉,并將存儲器模式轉(zhuǎn)換至頁面存儲器模式,以繼續(xù)保護其他存儲模組的數(shù)據(jù)。以下則再舉一實施例詳細說明。圖3是依據(jù)本發(fā)明一實施例所圖示的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法的流程圖。請參照圖3,本實施例的方法適用于圖1的電子裝置100,以下則搭配圖1的電子裝置100中的各個元件說明此方法的詳細步驟。當電子裝置100的電源開啟時,處理器110即執(zhí)行開機程序,并啟動映像存儲器模式,以保護存儲模組150的數(shù)據(jù)(步驟S310)。接著,由處理器110執(zhí)行作業(yè)系統(tǒng),而在作業(yè)系統(tǒng)讀取存儲器時,則利用存儲器控制器140檢測存儲模組150的各個頁面所發(fā)生的不可修正錯誤(步驟S320)。當存儲器控制器檢測到有頁面發(fā)生不可修正錯誤時,即判定包括此頁面的存儲模組150為受損存儲模組,并將存儲器模式由映像存儲器模式切換為備用存儲器模式,以保護存儲模組150的數(shù)據(jù)(步驟S330)。以上步驟S310-S330的實施方式系與前述實施例中的步驟S210-S230相同或相似,故其詳細內(nèi)容在此不再贅述。與前述實施例不同的是,本實施例是在電子裝置100使用備用存儲器模式保護存儲器數(shù)據(jù)的情況下,持續(xù)利用存儲器控制器140檢測未發(fā)生不可修正錯誤的各個存儲模組150中所發(fā)生的可修正錯誤(步驟S340)。其中,當存儲器控制器140檢測到可修正錯誤時,即會發(fā)出系統(tǒng)中斷,以執(zhí)行中斷處理模組130。而中斷處理模組130例如是通過讀取存儲器控制器140中的錯誤頁面暫存器,得知哪個頁面發(fā)生可修正錯誤。接著,由中斷處理模組130累計各個存儲模組150發(fā)生可修正錯誤的次數(shù),并與一門檻值比較,而判斷所累計的次數(shù)是否超過此門檻值(步驟S350)。此處的門檻值例如是一個預設值,或是由使用者自行設定的數(shù)值。詳細而言,當電子裝置100開機時,例如會在BIOS的開機畫面上顯示一個設定界面,以供使用者設定數(shù)值。當中斷處理模組130判斷有存儲模組150發(fā)生可修正錯誤的次數(shù)大于等于門檻值時,即會判定此存儲模組150為受損存儲模組(步驟S360),否則回到步驟S340,繼續(xù)檢測各個存儲模組150中所發(fā)生的可修正錯誤。接著,中斷處理模組130將存儲器模式由備用存儲器模式切換至頁面存儲器模式,而以未受損的其他存儲模組150之一取代受損存儲模組,并利用已受損的存儲模組150中的至少一個未受損頁面來保護未受損的存儲模組150其中,中斷處理模組130會結(jié)束備用存儲器模式,并啟動頁面存儲器模式,而由已受損的存儲模組150中取得其中一個未受損頁面來作為備份頁面,以備份未受損的存儲模組150中發(fā)生可修正錯誤的受損頁面的數(shù)據(jù)。其中,中斷處理模組130在啟動頁面存儲器模式之后,還會傳送一則控制指令至基板管理控制器,以告知基板管理控制器目前已發(fā)生備用冗余漏失(spareredundancylost),并已切換至頁面存儲器模式,之后才離開中斷處理模組130。詳細而言,在頁面存儲器模式中,處理器110會繼續(xù)執(zhí)行電子裝置100的作業(yè)系統(tǒng),并在作業(yè)系統(tǒng)讀取存儲器120時,通過存儲器控制器140檢測修正存儲模組150中各個頁面所出現(xiàn)的可修正錯誤。其中,處理器110例如會先致能存儲器120中的一個錯誤中斷暫存器,以致能可修正錯誤出現(xiàn)時的系統(tǒng)中斷功能。而當存儲器控制器140檢測修正到可修正錯誤時,即會在此錯誤頁面暫存器中記錄出現(xiàn)此可修正錯誤的頁面地址,并發(fā)出系統(tǒng)中斷,以執(zhí)行中斷處理模組130。而中斷處理模組130也是通過讀取錯誤頁面暫存器中所記錄的出現(xiàn)可修正錯誤的頁面,而得知哪個頁面發(fā)生可修正錯誤。接著,由中斷處理模組130累計各個頁面出現(xiàn)可修正錯誤的次數(shù),并與一門檻值比較,而判斷所累計的次數(shù)是否超過此門檻值。而當中斷處理模組130判斷有頁面的可修正錯誤的次數(shù)大于門檻值時,即將此頁面判定為受損頁面,而由已受損的存儲模組150中取得一個未受損的頁面做為備份頁面,以將受損頁面中的數(shù)據(jù)備份至備份頁面。在數(shù)據(jù)備份完畢后,中斷處理模組130即將上述受損頁面及備份頁面的對映地址記錄于存儲器控制器140中的頁面映射表。其中,中斷處理模組130例如是采用存儲器地址重映射(remapping)方法,將受損頁面的地址映射至備份頁面的地址,并分別在頁面映射表的空白欄位中填入所述受損頁面以及備份頁面的地址。由此,當下次作業(yè)系統(tǒng)欲存取受損頁面時,存儲器控制器140即可根據(jù)頁面映射表中的對映地址,改為存取備份頁面的數(shù)據(jù),而達到保護受損記憶胞的數(shù)據(jù)的功效。通過上述的存儲器地址重映射方法,作業(yè)系統(tǒng)存取的是受損頁面的原先地址,然而經(jīng)由存儲器控制器140的重映射,最終存取到的則是備份頁面的對映地址。因此,在本實施例中,作業(yè)系統(tǒng)的程序無需更改。需說明的是,中斷處理模組130在取得未受損頁面時,若發(fā)現(xiàn)存儲模組150中的未受損頁面已快用完或是已用完時,則會傳送一則控制指令至基板管理控制器,以告知基板管理控制器目前已發(fā)生頁面冗余漏失(pageredundancylost),而無任何存儲器保護機制,以提醒電子裝置100的使用者即刻更換存儲模組150。通過上述的數(shù)據(jù)保護方法,電子裝置即能夠在預設使用映像存儲器模式且發(fā)生不可修正錯誤及可修正錯誤的情況下,繼續(xù)使用已受損存儲模組中的未受損頁面來修正可修正錯誤,而不致造成存儲器的冗余漏失,進而失去存儲器數(shù)據(jù)的保護功能。需說明的是,上述實施例均預設電子裝置開機所使用存儲器模式是映像存儲器模式,并在發(fā)生錯誤時動態(tài)切換至備用存儲器模式或頁面存儲器模式。而在本發(fā)明的另一實施例中,電子裝置開機時預設使用的存儲器模式也可以是備用存儲器模式,而在發(fā)生錯誤時則可動態(tài)切換成頁面存儲器模式,以繼續(xù)保護存儲器的數(shù)據(jù)。以下則再舉一實施例詳細說明。9圖4是依據(jù)本發(fā)明一實施例所圖示的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法的流程圖。請參照圖4,本實施例的方法適用于圖1的電子裝置100,以下則搭配圖1的電子裝置100中的各個元件說明此方法的詳細步驟。當電子裝置100的電源開啟時,處理器110即執(zhí)行開機程序,并啟動備用存儲器模式,以保護存儲模組150的數(shù)據(jù)(步驟S410)。其中,電子裝置100開機時例如會先檢查系統(tǒng)存儲器120的安裝情況,以找出其所采用的存儲器模式。本實施例的電子裝置100系預設使用備用存儲器模式來保護存儲器120的數(shù)據(jù)。在備用存儲器模式中,電子裝置100例如會找出存儲模組150中用來備份數(shù)據(jù)的一個備份模組,而用以備份發(fā)生可修正錯誤之存儲模組150的數(shù)據(jù),以修正此存儲模組150所發(fā)生的可修正錯誤。接著,由處理器110執(zhí)行作業(yè)系統(tǒng),而在作業(yè)系統(tǒng)讀取存儲器時,則利用存儲器控制器140檢測存儲模組150所發(fā)生的可修正錯誤(步驟S420)。其中,當存儲器控制器140檢測到可修正錯誤時,即會發(fā)出系統(tǒng)中斷,以執(zhí)行中斷處理模組130。而中斷處理模組130例如是提供讀取存儲器控制器140中的錯誤頁面暫存器,得知哪個頁面發(fā)生可修正錯誤。接著,由中斷處理模組130累計各個存儲模組150發(fā)生可修正錯誤的次數(shù),并與一門檻值比較,而判斷所累計的次數(shù)是否超過此門檻值(步驟S430)。此處的門檻值例如是一個預設值,或是由使用者自行設定的數(shù)值。詳細而言,當電子裝置100開機時,例如會在BIOS的開機畫面上顯示一個設定界面,以供使用者設定數(shù)值。當中斷處理模組130判斷有存儲模組150發(fā)生可修正錯誤的次數(shù)大于等于門檻值時,即會判定此存儲模組150為受損存儲模組(步驟S440),否則回到步驟S420,繼續(xù)檢測存儲模組150所發(fā)生的可修正錯誤。接著,中斷處理模組130將存儲器模式由備用存儲器模式切換至頁面存儲器模式,以保護存儲模組150的數(shù)據(jù)(步驟S450)。詳細而言,中斷處理模組130例如會結(jié)束備用存儲器模式,并啟動頁面存儲器模式,而由已受損的存儲模組150中取得其中一個未受損頁面來作為備份頁面,以備份未受損的存儲模組150中發(fā)生可修正錯誤的受損頁面的數(shù)據(jù),并將此受損頁面及備份頁面的對映地址記錄于存儲器控制器140中的頁面映射表。而當作業(yè)系統(tǒng)存取到受損頁面時,即由存儲器控制器140根據(jù)頁面映射表中的對映地址,改為存取備份頁面的數(shù)據(jù)。其中,中斷處理模組130在啟動備用存儲器模式之后,還會傳送一則控制指令至基板管理控制器,以由告知基板管理控制器目前已發(fā)生備用冗余漏失(spareredundancylost),并已切換至頁面存儲器模式,之后才離開中斷處理模組130。通過上述的數(shù)據(jù)保護方法,電子裝置即能夠在預設使用備用存儲器模式且發(fā)生可修正錯誤的情況下,繼續(xù)使用已受損存儲模組中的未受損頁面來修正可修正錯誤,而不致造成存儲器的冗余漏失,進而失去存儲器數(shù)據(jù)的保護功能。為了使上述實施例更為明了,以下特舉一個包括四個存儲模組的存儲器做為范例,說明本發(fā)明動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)方法的詳細過程。圖5至圖7分別是依據(jù)本發(fā)明一實施例所圖示的映像存儲器模式、備用存儲器模式及頁面存儲器模式下存儲模組的使用范例。本實施例假設電子裝置的存儲器包括存儲模組1、2、3、4等四個存儲模組,且電子裝置預設使用的存儲器模式為映像存儲器模式。請先參照圖5,在映像存儲器模式中,存儲模組1、2系做為儲存數(shù)據(jù)的數(shù)據(jù)模組,存儲模組3、4則分別做為存儲模組1、2的映射模組,而用以保護存儲模組1、2中儲存的數(shù)據(jù)。詳細而言,每當電子裝置通過存儲器控制器將數(shù)據(jù)寫入存儲模組1、2時,同時也會寫入存儲模組3、4,以預防存儲模組1、2發(fā)生不可修正錯誤。接著,請參照圖6,在映像存儲器模式中,若存儲模組1-4中的任何一個發(fā)生不可修正錯誤,電子裝置即會將存儲器模式切換為備用存儲器模式。此時,電子裝置會停用發(fā)生不可修正錯誤的存儲模組,而以其所對應的映射模組來取代。此外,電子裝置還會從其他的存儲模組中選擇一個存儲模組作為備用模組,而用以修正其他存儲模組所發(fā)生的可修正錯誤。舉例來說,在備用存儲器模式1中,存儲模組1發(fā)生不可修正錯誤,此時電子裝置即會停用存儲模組1,而以其所對應的映射模組(即存儲模組;3)來取代。此外,電子裝置還會選擇存儲模組作4來做為備用模組,而用以修正存儲模組2、3所發(fā)生的可修正錯誤。以此類推,則可得到圖6所示的備用存儲器模式1-4等四種結(jié)果。最后,請參照圖7,在備用存儲器模式中,若未發(fā)生不可修正錯誤的存儲模組1-4中的任何一個,又發(fā)生可修正錯誤的次數(shù)超過門檻值的情況,電子裝置會將存儲器模式切換為頁面存儲器模式。此時,電子裝置會停用發(fā)生可修正錯誤的存儲模組,而以備用存儲器模式中的備用模組來取代。此外,電子裝置還會從已受損的存儲模組中選擇一個未受損頁面來做為備用頁面,而用以修正未受損存儲模組所發(fā)生的可修正錯誤。舉例來說,在頁面存儲器模式1中,存儲模組1已發(fā)生不可修正錯誤,而存儲器模組2又發(fā)生可修正錯誤的次數(shù)超過門檻值的情況,此時電子裝置即會將存儲模組2的數(shù)據(jù)備份至備用模組(即存儲模組4),并以備用模組來取代存儲模組2。此外,電子裝置還會利用已受損的存儲模組(即存儲模組1、幻中的未受損頁面來做為備份頁面,而用以修正未受損存儲模組(即存儲模組3、4)所發(fā)生的可修正錯誤。以此類推,則可得到圖7所示的頁面存儲器模式1-8等八種結(jié)果。綜上所述,本發(fā)明的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法是在電子裝置運行的過程中持續(xù)檢測并修正存儲器所發(fā)生的可修正錯誤或不可修正錯誤,并適時地將存儲器模式由映像存儲器模式切換為備用存儲器模式,或是由備用存儲器模式切換為頁面存儲器模式,由此可讓電子裝置繼續(xù)保有存儲器數(shù)據(jù)的保護功能,并有效利用存儲器中未受損的記憶空間。雖然本發(fā)明已以實施例揭示如上,但其并非用以限定本發(fā)明,任何所屬
技術領域:
技術人員,在不脫離本發(fā)明的精神和范圍內(nèi),可作任意改動或等同替換,故本發(fā)明的保護范圍應當以本發(fā)明的權利要求書所界定的范圍為準。權利要求1.一種動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,適用于包括一存儲器的一電子裝置,該存儲器包括一存儲器控制器及至少一存儲模組,各個所述至少一存儲模組由多個記憶胞組成,而所述記憶胞劃分為多個頁面,該方法包括下列步驟執(zhí)行一開機程序,并啟動一映像存儲器模式,以保護該至少一存儲模組的數(shù)據(jù);執(zhí)行該作業(yè)系統(tǒng),并在該作業(yè)系統(tǒng)讀取該存儲器時,利用該存儲器控制器檢測該至少一存儲模組中各所述頁面所發(fā)生的一不可修正錯誤;以及當檢測到所述頁面其一發(fā)生該不可修正錯誤時,判定包括該頁面的該存儲模組為一受損存儲模組,并切換該映像存儲器模式為一備用存儲器模式,以保護該至少一存儲模組的數(shù)據(jù)。2.根據(jù)權利要求1所述的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,其中啟動該映像存儲器模式,以保護該至少一存儲模組的數(shù)據(jù)的步驟包括找出該至少一存儲模組中的至少一數(shù)據(jù)模組及其對應的至少一映像模組;以及在該電子裝置每次通過該存儲器控制器存取該至少一數(shù)據(jù)模組其一時,同時存取對應的該映像模組。3.根據(jù)權利要求2所述的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,其中當檢測到所述頁面其一發(fā)生該不可修正錯誤時,切換該映像存儲器模式為該備用存儲器模式,以保護該至少一存儲模組的數(shù)據(jù)的步驟包括使用該受損存儲模組對應的該映像模組取代該受損存儲器模組,以修正該不可修正錯誤,并結(jié)束該映像存儲器模式;以及啟動該備用存儲器模式,而使用未發(fā)生該不可修正錯誤的該至少一存儲模組其一作為一備份模組,用以修正其他存儲模組所發(fā)生的一可修正錯誤。4.根據(jù)權利要求3所述的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,其中在切換該映像存儲器模式為該備用存儲器模式,以保護該至少一存儲模組的數(shù)據(jù)的步驟之后,還包括利用該存儲器控制器檢測未發(fā)生該不可修正錯誤的各個所述所述至少一存儲模組中所發(fā)生的該可修正錯誤;累計各個所述至少一存儲模組發(fā)生該可修正錯誤的次數(shù),并與一門檻值比較;當該至少一存儲模組其一的該可修正錯誤的次數(shù)大于等于該門檻值時,判定包括該至少一存儲模組為受損存儲模組;以及切換該備用存儲器模式為一頁面存儲器模式,而以未受損的其他存儲模組之一取代該受損存儲模組,并利用已受損的存儲模組中的至少一未受損頁面保護未受損的存儲模組所發(fā)生的該可修正錯誤。5.根據(jù)權利要求4所述的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,其中切換該備用存儲器模式為該頁面存儲器模式,而以未受損的其他存儲模組之一取代該受損存儲模組,并利用已受損的存儲模組中的至少一未受損頁面保護未受損的存儲模組所發(fā)生的該可修正錯誤的步驟包括啟動該頁面存儲器模式,而由已受損的存儲模組中取得該至少一未受損頁面其中之一作為備份頁面,以備份未受損的存儲模組中發(fā)生該可修正錯誤的一受損頁面的數(shù)據(jù);記錄該受損頁面及該備份頁面的一對映地址于該存儲器控制器中的一頁面映射表;以及當該作業(yè)系統(tǒng)存取該受損頁面時,由該存儲器控制器根據(jù)頁面映射表中的該對映地址,改為存取該備份頁面的數(shù)據(jù)。6.根據(jù)權利要求4所述的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,其中在啟動該映像存儲器模式、該備用存儲器模式或該頁面存儲器模式時,還包括傳送一控制指令至該電子裝置的一基板管理控制器,以告知該基板管理控制器目前所使用的存儲器模式。7.一種動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,適用于包括一存儲器的一電子裝置,該存儲器包括一存儲器控制器及至少一存儲模組,各個所述至少一存儲模組由多個記憶胞組成,而所述記憶胞劃分為多個頁面,該方法包括下列步驟執(zhí)行一開機程序,并啟動一備用存儲器模式,以保護該至少一存儲模組的數(shù)據(jù);執(zhí)行該作業(yè)系統(tǒng),并在該作業(yè)系統(tǒng)讀取該存儲器時,利用該存儲器控制器檢測各個所述至少一存儲模組所發(fā)生的一可修正錯誤;累計各個所述至少一存儲模組發(fā)生該可修正錯誤的次數(shù),并與一門檻值比較;當該至少一存儲模組其一的該可修正錯誤的次數(shù)大于等于該門檻值時,判定該存儲模組為該受損存儲模組;以及切換該備用存儲器模式為一頁面存儲器模式,以保護該至少一存儲模組的數(shù)據(jù)。8.根據(jù)權利要求7所述的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,其中在利用該存儲器控制器檢測各個所述至少一存儲模組所發(fā)生的該可修正錯誤的步驟之后,還包括找出該至少一存儲模組中的一備份模組;以及利用該備份模組備份發(fā)生該可修正錯誤的該存儲模組的數(shù)據(jù),以修正該存儲模組所發(fā)生的該可修正錯誤。9.根據(jù)權利要求8所述的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,其中切換該備用存儲器模式為該頁面存儲器模式,以保護該至少一存儲模組的數(shù)據(jù)的步驟包括啟動該頁面存儲器模式,而由已受損的存儲模組中取得至少一未受損頁面之一作為一備份頁面,以備份未受損的存儲模組中發(fā)生該可修正錯誤的一受損頁面的數(shù)據(jù);記錄該受損頁面及該備份頁面的一對映地址于該存儲器控制器中的一頁面映射表;以及當該作業(yè)系統(tǒng)存取該受損頁面時,由該存儲器控制器根據(jù)頁面映射表中的該對映地址,改為存取該備份頁面的數(shù)據(jù)。10.根據(jù)權利要求9所述的動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,其中在啟動該備用存儲器模式或該頁面存儲器模式時,還包括傳送一控制指令至該電子裝置的一基板管理控制器,以告知該基板管理控制器目前所使用的存儲器模式。全文摘要本發(fā)明提供了一種動態(tài)切換存儲器模式以保護受損記憶胞數(shù)據(jù)的方法,適用于包括存儲器的電子裝置,此存儲器包括存儲器控制器及至少一個存儲模組,每個存儲模組均是由多個記憶胞組成,且這些記憶胞劃分為多個頁面。此方法在執(zhí)行開機程序時,啟動映像存儲器模式,以保護存儲模組的數(shù)據(jù),接著執(zhí)行作業(yè)系統(tǒng),并在作業(yè)系統(tǒng)讀取存儲器時,利用存儲器控制器檢測存儲模組中各個頁面所發(fā)生的不可修正錯誤,而當檢測到有頁面發(fā)生不可修正錯誤時,即判定包括此頁面的存儲模組為受損存儲模組,而將映像存儲器模式切換為備用存儲器模式,以保護存儲模組的數(shù)據(jù)。文檔編號G06F11/20GK102479119SQ20101057185公開日2012年5月30日申請日期2010年11月29日優(yōu)先權日2010年11月29日發(fā)明者盧盈志申請人:英業(yè)達股份有限公司