專利名稱:電子設(shè)備的復(fù)制文件系統(tǒng)的制作方法
電子設(shè)備的復(fù)制文件系統(tǒng)
背景技術(shù):
電子設(shè)備通常具有可在正常操作期間被修改和保存的重要信息的內(nèi)部存儲器。為了描述本發(fā)明,該存儲器將被稱作“非易失性存儲器”或“NVM”。NVM內(nèi)部是嵌入式文件系統(tǒng)(EFS)。在特定情況下,NVM的完整性是有風(fēng)險的。例如,如果在寫入操作期間對設(shè)備斷電,則EFS可能損壞或安全受到危害。本發(fā)明描述一種在意外斷電的情況下保護(hù)NVM內(nèi)電子設(shè)備的EFS的方法。在許多便攜式電子設(shè)備中,尺寸和成本是關(guān)鍵因素,所以設(shè)備上的大電池備份是不可接受的。需要一種可以在NVM損壞時重建或復(fù)制EFS的系統(tǒng)。
發(fā)明內(nèi)容
一個實施方式公開了一種校正非易失性存儲器(NVM)系統(tǒng)內(nèi)的嵌入式文件系統(tǒng) (EFS)中的損壞數(shù)據(jù)的方法,其中該非易失性存儲器還包括復(fù)制文件系統(tǒng)(RR5)。如果EFS 初始化成功,則執(zhí)行EFS存儲扇區(qū)與對應(yīng)的RFS存儲扇區(qū)之間的存儲比較。如果確定1個以上存儲扇區(qū)之間不匹配,則確認(rèn)、擦除并且重寫與對應(yīng)的EFS存儲扇區(qū)不同步的RFS存儲扇區(qū)。如果EFS初始化不成功,則執(zhí)行EFS存儲扇區(qū)與對應(yīng)的RFS存儲扇區(qū)之間的存儲比較。如果確定1個以上存儲扇區(qū)之間不匹配,則確認(rèn)、擦除并且重寫EFS存儲扇區(qū)。在另一實施方式中,可以在一種存儲用于執(zhí)行該方法步驟的包含計算機(jī)程序代碼的計算機(jī)程序產(chǎn)品的計算機(jī)可讀介質(zhì)上實現(xiàn)上面的方法。在又一實施方式中,一種能夠校正損壞數(shù)據(jù)的非易失性存儲器(NVM)系統(tǒng)包括還包括嵌入式文件系統(tǒng)(EFS),該嵌入式文件系統(tǒng)還包括應(yīng)用編程接(API)、1個以上操作系統(tǒng)進(jìn)程、閃存驅(qū)動器(flash driver)以及復(fù)制層。復(fù)制層管理EFS分區(qū)和RFS分區(qū),其中 RFS分區(qū)是對EFS分區(qū)系統(tǒng)的鏡像。當(dāng)EFS分區(qū)或RFS分區(qū)的存儲扇區(qū)彼此不同步時,它們可以利用未損壞分區(qū)的未損壞存儲扇區(qū)進(jìn)行再同步。NVM系統(tǒng)可以包括在無線通信設(shè)備內(nèi)。損壞的數(shù)據(jù)可以是寫入操作期間突然斷電的結(jié)果,并且可以在NVM系統(tǒng)的下一個上電周期期間被校正。損壞的數(shù)據(jù)還可以是發(fā)生在讀取操作期間的運行錯誤的結(jié)果,并且可以即時地 (on the fly)被校正,而不必重啟無線通信設(shè)備的電源。
圖1是示出了非易失性存儲器(NVM)系統(tǒng)內(nèi)的典型的嵌入式文件系統(tǒng)的現(xiàn)有技術(shù)的框圖。圖2是示出了根據(jù)本發(fā)明的非易失性存儲器(NVM)系統(tǒng)內(nèi)的嵌入式文件系統(tǒng) (EFS)的框圖。圖3是示出了下一引導(dǎo)過程期間實施EFS校正的邏輯圖。
圖4是示出了在運行期間實施EFS的讀取錯誤校正的邏輯圖。
具體實施例方式非易失性存儲器(NVM)損壞是無線通信設(shè)備中的問題。NVM損壞在遭遇隨機(jī)斷電的無線通信設(shè)備中更普遍。其實例包括在汽車或運輸容器中包括或內(nèi)置的指定幾種應(yīng)用的無線通信設(shè)備。由于NVM損壞,無線通信設(shè)備可能不再運行。即使它仍然運行,但是其也以包含關(guān)鍵校準(zhǔn)數(shù)據(jù)的損壞數(shù)據(jù)而運行。例如,如果在寫入操作期間對無線通信設(shè)備斷電,則存儲器可能會損壞。在較大的固定的計算機(jī)設(shè)備中,對該問題的解決方法包括保持第二獨立文件系統(tǒng)以備份主要文件系統(tǒng)。由于存儲器的類型通常不是閃存且物理空間和電力消耗問題都不是重大障礙,所以這在較大的設(shè)備和系統(tǒng)中更為可行。然而,在無線通信設(shè)備中,使用的存儲器通常是閃存,并且包括這些無線通信設(shè)備的模塊顯著地被物理空間和電力所制約。因此, 由于2個獨立的文件系統(tǒng)在競爭對同一閃存設(shè)備的訪問時將產(chǎn)生顯著的資源沖突,所以應(yīng)用獨立的文件系統(tǒng)以備份NVM內(nèi)的主要嵌入式文件系統(tǒng)不是對于上述問題的實際的解決方法。本發(fā)明描述用于在引起NVM數(shù)據(jù)損壞之后恢復(fù)無線通信設(shè)備的NVM數(shù)據(jù)的系統(tǒng)和方法。這種解決辦法由于僅恢復(fù)損壞數(shù)據(jù)而比獨立的備份系統(tǒng)較為不復(fù)雜。其不需要NVM 存儲系統(tǒng)的完全重建。對于無線通信設(shè)備,通常利用嵌入式文件系統(tǒng)(ER5)將數(shù)據(jù)存儲在閃存設(shè)備上。 在此描述的系統(tǒng)和方法將對主要EFS的所有寫入操作復(fù)制至被稱作復(fù)制文件系統(tǒng)(RFS)的
第二存儲位置。圖1是示出了非易失性存儲器(NVM)系統(tǒng)內(nèi)的典型嵌入式文件系統(tǒng)(EFS)IOO的現(xiàn)有技術(shù)的框圖。EFS 100是無線通信設(shè)備內(nèi)較大的NVM系統(tǒng)的一部分。雖然這里沒有具體示出,但是本發(fā)明所預(yù)期的類型的無線通信設(shè)備包括用于驅(qū)動(供電)和控制無線通信設(shè)備的整體操作的諸如電池的電源和處理器。EFS 100包括文件系統(tǒng)應(yīng)用編程接口 (API) 102、文件系統(tǒng)操作系統(tǒng)(OS)進(jìn)程104、閃存驅(qū)動器106以及EFS分區(qū)108。這些部件與處理器一起工作以整體處理無線通信設(shè)備的NVM的存儲需求。如果EFS分區(qū)108中的數(shù)據(jù)由于突然斷電而損壞,則不一定可以修復(fù)。圖2是示出了根據(jù)本發(fā)明的非易失性存儲器(NVM)系統(tǒng)內(nèi)的嵌入式文件系統(tǒng) (EFS) 100的框圖。EFS系統(tǒng)100增加了復(fù)制層110。除了標(biāo)準(zhǔn)的EFS分區(qū)108之外,復(fù)制層 110還負(fù)責(zé)管理第二存儲分區(qū),即RFS分區(qū)112。存在幾種可在損壞的情形后重建EFS的不同的情況。參照圖3描述的一種情況包括在斷電后的下一個供電周期期間重建數(shù)據(jù)。重建是上電同步處理的一部分。參照圖4描述的另一種情況包括在不是斷電的結(jié)果且不需要無線通信設(shè)備供電備份的運行期間校正讀取錯誤。圖3是示出了下一引導(dǎo)過程期間執(zhí)行EFS校正的邏輯圖。該解決方法是用于校正由于在對閃存的寫入操作期間斷電而導(dǎo)致的損壞的存儲器的有效方法。僅更新(例如,擦除和重寫)受影響的閃存扇區(qū)(可以被擦除的存儲器的最小量)。受影響的扇區(qū)的更新可在斷電后的下一供電周期期間完成。更具體地,可以在下一引導(dǎo)過程期間校正EFS而沒有任何顯著的性能劣化,同時對與無線通信設(shè)備連接的外部應(yīng)用或系統(tǒng)是無影響 (transparent,^BJ )的。當(dāng)在斷電后對無線通信設(shè)備上電時,進(jìn)行檢查以確定EFS初始化是否成功301。如果成功302,則將EFS存儲與RFS存儲相比較303。如果比較得到匹配304,于是上電同步處理結(jié)束305。如果EFS存儲與RFS存儲相比較303得到不匹配306,于是確認(rèn)307、擦除308 并且重寫309非同步的RFS存儲扇區(qū)。然后上電同步處理結(jié)束305。如果EFS初始化不成功310,則執(zhí)行RFS與EFS的存儲比較311。如果比較得到匹配312,于是上電同步處理結(jié)束305。如果RFS與EFS的存儲比較311得到不匹配313,于是確認(rèn)314、擦除315并且重寫316損壞的EFS存儲扇區(qū)。然后上電同步處理結(jié)束305。非同步RFS存儲扇區(qū)是與對應(yīng)的EFS存儲扇區(qū)不同步的RFS存儲扇區(qū)。非同步例如可以由于在對閃存的寫入操作期間斷電而發(fā)生,其中對EFS的寫入操作完成而對RFS的復(fù)制寫入沒有完成。非同步例如還可以由于在對EFS扇區(qū)擦除期間斷電而發(fā)生,其中EFS 擦除完成而復(fù)制的RFS擦除沒有完成。圖4是示出了運行期間執(zhí)行EFS的讀取錯誤校正的邏輯圖。有時這由被稱作宇宙射線位翻轉(zhuǎn)(cosmic ray bit flipping)的現(xiàn)象產(chǎn)生。如果宇宙射線通過半導(dǎo)體芯片的感光(sensitive,靈敏)部分,例如,位的邏輯狀態(tài)(“開”或“關(guān)”)會翻轉(zhuǎn)。這稱作單粒子翻轉(zhuǎn)(SEU)。單粒子翻轉(zhuǎn)還可以由宇宙射線撞擊感光部件位置中的原子的原子核而產(chǎn)生。原子核的相互作用可以引起原子核分裂或裂變。原子核的裂片帶走大部分宇宙射線的能量。 然后,這些裂片可以翻轉(zhuǎn)位狀態(tài)。翻轉(zhuǎn)的位狀態(tài)導(dǎo)致讀取錯誤。如果EFS讀取錯誤發(fā)生,則可以開始RFS與EFS之間的同步檢查,并且即時地校正損壞的扇區(qū)而不需要重新啟動系統(tǒng)。在檢測到讀取錯誤402時,開始RFS與EFS的存儲比較404。確認(rèn)406、擦除408并且重寫410任何損壞的EFS存儲扇區(qū)。然后,重新初始化EFS 412,結(jié)束讀取錯誤校正處理414。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明可以以方法、系統(tǒng)或計算機(jī)程序產(chǎn)品來實現(xiàn)。因此,本發(fā)明可以采取完全硬件的實施方式、完全軟件的實施方式(包括固件、常駐軟件、微碼等)或組合在此總體統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”的硬件和軟件方面的實施方式的形式。此外,本發(fā)明可以采取具有在介質(zhì)中實現(xiàn)的計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)上的計算機(jī)程序產(chǎn)品的形式??梢岳萌魏魏线m的計算機(jī)可讀介質(zhì)。計算機(jī)可用或計算機(jī)可讀介質(zhì)可以是但不限于電子、磁、光學(xué)、電磁、紅外線或半導(dǎo)體系統(tǒng)、裝置、設(shè)備或傳輸介質(zhì)。計算機(jī)可讀介質(zhì)的更具體實例(非完全的列表)將包括以下具有一條以上配線的電連接、便攜式計算機(jī)磁盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式光盤只讀存儲器(⑶-ROM)、光學(xué)存儲設(shè)備、諸如那些支持互聯(lián)網(wǎng)或內(nèi)聯(lián)網(wǎng)的傳輸介質(zhì)或磁存儲設(shè)備。應(yīng)注意,計算機(jī)可用或計算機(jī)可讀介質(zhì)甚至可以是打印有程序的紙或其他合適的介質(zhì),因為程序例如可以經(jīng)由紙或其他介質(zhì)的光學(xué)掃描電子獲取,然后如果需要,編譯、解釋或以其他合適方式的處理,然后存儲在計算機(jī)存儲器中。在本文的語境中,計算機(jī)可用或計算機(jī)可讀介質(zhì)可以是能夠包括、存儲、通信、傳播或傳送由指令執(zhí)行系統(tǒng)、裝置或設(shè)備所使用或與它們有關(guān)的程序的任何介質(zhì)。用于執(zhí)行本發(fā)明的操作的計算機(jī)程序代碼可以以諸如Java、Smalltalk或C++等的面向?qū)ο蟮木幊陶Z言編寫。然而,用于執(zhí)行本發(fā)明操作的計算機(jī)程序代碼也可以以諸如 “C”編程語言或類似的編程語言的傳統(tǒng)程序編程語言編寫。程序代碼可以全部在用戶計算機(jī)上、部分在用戶計算機(jī)上,作為獨立的軟件包部分在用戶計算機(jī)上、以及部分在遠(yuǎn)程計算機(jī)上或全部在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在后面的情況中,遠(yuǎn)程計算機(jī)可以通過局域網(wǎng) (LAN)或廣域網(wǎng)(WAN)與用戶的計算機(jī)連接,或可以來連接外部計算機(jī)(例如,通過利用互聯(lián)網(wǎng)服務(wù)提供商的互聯(lián)網(wǎng))。 下面將參照根據(jù)本發(fā)明實施方式的方法、裝置(系統(tǒng))以及計算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)理解,可以通過計算機(jī)程序指令實現(xiàn)流程圖和/或框圖的每個塊、以及流程圖和/或框圖的塊的組合。這些計算機(jī)程序指令可以提供給通用計算機(jī)、專用計算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)生一種體系,使得經(jīng)由計算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖或框圖的塊中指定的功能/ 動作的手段(means,裝置)。 這些計算機(jī)程序指令還可以存儲在計算機(jī)可讀存儲器中,可以指引計算機(jī)或其他可編程數(shù)據(jù)處理裝置以特別的方式運行,使得存儲在計算機(jī)可讀存儲器中的指令產(chǎn)生一件包括實現(xiàn)在流程圖或框圖的塊中指定的功能/動作的指令手段的產(chǎn)品。計算機(jī)程序指令還可以加載到計算機(jī)或其他可編程數(shù)據(jù)處理裝置上,以引起一系列在計算機(jī)或其他可編程裝置上執(zhí)行的操作步驟以產(chǎn)生計算機(jī)可實現(xiàn)的處理,使得在計算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實現(xiàn)在流程圖或框圖的塊中指定的功能/動作的步驟。可以經(jīng)由存在于移動通信設(shè)備等的顯示器上的圖形用戶界面呈現(xiàn)和響應(yīng)與本發(fā)明相關(guān)聯(lián)的任何提示。提示還可以是聲音的、振動的等。圖中的流程圖和框圖示出根據(jù)本發(fā)明的各種實施方式的系統(tǒng)、方法以及計算機(jī)程序產(chǎn)品的可能實現(xiàn)的構(gòu)造、功能以及操作。在這點上,流程圖或框圖中的每個塊可以代表包括1個以上用于實現(xiàn)指定的邏輯功能的可執(zhí)行指令的代碼的模塊、段或部分。還應(yīng)該注意, 在某些可選的實現(xiàn)方式中,在塊中標(biāo)明的功能可能不以圖中標(biāo)明的順序發(fā)生。例如,依靠所包含的功能性,接連示出的2個塊實際上可基本上同時地執(zhí)行,或者有時這些塊可以以相反的順序執(zhí)行。還應(yīng)注意,框圖和/或流程圖的每個塊以及框圖和/或流程圖的塊的組合可以通過執(zhí)行特定功能或動作的專用硬件類系統(tǒng)或?qū)S糜布陀嬎銠C(jī)指令的組合來實現(xiàn)。在此使用的術(shù)語僅為了描述特定實施方式,而非旨在限制本發(fā)明。如這里所使用的,單數(shù)形式的“a”、“an”以及“thf包括復(fù)數(shù)形式,除非上下文有另外的清楚指示。還應(yīng)理解,在本說明書中使用的術(shù)語“包括(comprises) ”和/或“包括(comprising) ”指定特征、 整體、步驟、操作、元件和/或部件的存在,而不排除1個以上其他特征、整體、步驟、操作、元件、部件和/或其組合的存在或增加。盡管在此已經(jīng)示出并描述了具體實施方式
,但是本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對于所示的具體實施方式
,計劃為實現(xiàn)同樣目的的任何配置都是可被替代的,并且,本發(fā)明在其他環(huán)境中具有其他應(yīng)用。該應(yīng)用旨在覆蓋本發(fā)明的任何修改和變化。所附的權(quán)利要求決不旨在將本發(fā)明的范圍限制為本文所描述的具體實施方式
。
權(quán)利要求
1.一種校正非易失性存儲器(NVM)系統(tǒng)內(nèi)的嵌入式文件系統(tǒng)(EFS)中的損壞數(shù)據(jù)的方法,所述非易失性存儲器系統(tǒng)還包括復(fù)制文件系統(tǒng)(RR5),所述方法包括如果EFS初始化成功(302),則在EFS存儲扇區(qū)與對應(yīng)的RFS存儲扇區(qū)之間執(zhí)行存儲比較(303),并且如果確定1個以上存儲扇區(qū)之間不匹配(306),則確認(rèn)與對應(yīng)的所述EFS存儲扇區(qū)不同步的所述RFS存儲扇區(qū)(307); 擦除與對應(yīng)的所述EFS存儲扇區(qū)不同步的所述RFS存儲扇區(qū)(308);并且重寫與對應(yīng)的所述EFS存儲扇區(qū)不同步的所述RFS存儲扇區(qū)以使它們再次變?yōu)橥?(309), 以及如果EFS初始化不成功(310),則在RFS存儲扇區(qū)與對應(yīng)的EFS存儲扇區(qū)之間執(zhí)行存儲比較(311),并且如果確定1個以上存儲扇區(qū)之間不匹配(313),則確認(rèn)損壞的所述EFS存儲扇區(qū)(314); 擦除損壞的所述EFS存儲扇區(qū)(315);并且重寫損壞的所述EFS存儲扇區(qū)以使所述EFS存儲扇區(qū)與所述RFS存儲扇區(qū)再次變?yōu)橥?316)。
2.一種存儲用于校正非易失性存儲器(NVM)系統(tǒng)內(nèi)的嵌入式文件系統(tǒng)(EFS)中的損壞數(shù)據(jù)的計算機(jī)程序產(chǎn)品的計算機(jī)可讀介質(zhì),所述非易失性存儲器系統(tǒng)還包括復(fù)制文件系統(tǒng) (RFS),所述計算機(jī)可讀介質(zhì)包括如果EFS初始化成功(302),則用于在EFS存儲扇區(qū)與對應(yīng)的RFS存儲扇區(qū)之間執(zhí)行存儲比較(303)的計算機(jī)程序代碼,并且如果確定1個以上存儲扇區(qū)之間不匹配(306),則用于確認(rèn)與對應(yīng)的所述EFS存儲扇區(qū)不同步的所述RFS存儲扇區(qū)(307)的計算機(jī)程序代碼;用于擦除與對應(yīng)的所述EFS存儲扇區(qū)不同步的所述RFS存儲扇區(qū)(308)的計算機(jī)程序代碼;以及用于重寫與對應(yīng)的所述EFS存儲扇區(qū)不同步的所述RFS存儲扇區(qū)以使它們再次變?yōu)橥?309)的計算機(jī)程序代碼,以及如果EFS初始化不成功(310),則用于在RFS存儲扇區(qū)與對應(yīng)的EFS存儲扇區(qū)之間執(zhí)行存儲比較(311)的計算機(jī)程序代碼,并且如果確定1個以上存儲扇區(qū)之間不匹配(313),則用于確認(rèn)損壞的所述EFS存儲扇區(qū)(314)的計算機(jī)程序代碼; 用于擦除損壞的所述EFS存儲扇區(qū)(315)的計算機(jī)程序代碼;以及用于重寫損壞的所述EFS存儲扇區(qū)以使所述EFS與RFS存儲扇區(qū)再次變?yōu)橥?316) 的計算機(jī)程序代碼。
3.—種能夠校正損壞數(shù)據(jù)的非易失性存儲器(NVM)系統(tǒng),包括 嵌入式文件系統(tǒng)(ER5) (100),其包括應(yīng)用編程接口(API) (102); 1個以上操作系統(tǒng)進(jìn)程(104); 閃存驅(qū)動器(106);以及復(fù)制層(110),用于管理EFS分區(qū)(108)和RFS分區(qū)(112),其中,所述RFS分區(qū)(112) 是對所述EFS分區(qū)(108)系統(tǒng)的鏡像,使得當(dāng)所述EFS分區(qū)(108)或所述RFS分區(qū)(112)的存儲扇區(qū)彼此不同步時,它們可以利用未損壞分區(qū)的未損壞存儲扇區(qū)而再同步。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其中,所述NVM系統(tǒng)包括在無線通信設(shè)備中。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其中,所述損壞數(shù)據(jù)是寫入操作期間突然斷電的結(jié)果。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其中,所述損壞數(shù)據(jù)的校正在所述NVM系統(tǒng)的下一個上電周期期間來執(zhí)行,其中所述損壞數(shù)據(jù)是寫入操作期間突然斷電的結(jié)果。
7.根據(jù)權(quán)利要求4所述的系統(tǒng),其中,所述損壞數(shù)據(jù)是發(fā)生在讀取操作期間的運行錯誤的結(jié)果。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中,所述損壞數(shù)據(jù)的校正即時地執(zhí)行而不必重啟所述無線通信設(shè)備的電源,其中所述損壞數(shù)據(jù)是發(fā)生在讀取操作期間的運行錯誤的結(jié)果。
全文摘要
本發(fā)明公開了用于校正非易失性存儲器(NVM)系統(tǒng)內(nèi)的嵌入式文件系統(tǒng)(EFS)(100)中的損壞數(shù)據(jù)的方法、系統(tǒng)以及計算機(jī)可讀介質(zhì)。NVM系統(tǒng)還包括復(fù)制文件系統(tǒng)(RFS)(112)。在EFS存儲扇區(qū)與對應(yīng)的RFS存儲扇區(qū)之間執(zhí)行存儲比較(303)以確認(rèn)與對應(yīng)的EFS存儲扇區(qū)不同步(307)的任何RFS存儲扇區(qū)。然后,擦除(308)并重寫(309)不同步的那些存儲扇區(qū)。
文檔編號G06F11/14GK102308287SQ200980156332
公開日2012年1月4日 申請日期2009年1月16日 優(yōu)先權(quán)日2008年12月9日
發(fā)明者凱麗·格雷厄姆, 威廉·J·布拉馬特 申請人:施克萊無線公司