一種用于智能卡非易失性存儲器的掉電保護(hù)方法
【專利摘要】一種用于智能卡非易失性存儲器的掉電保護(hù)方法,涉及智能卡【技術(shù)領(lǐng)域】。本發(fā)明方法步驟為:1)創(chuàng)建操作時,從邏輯地址空閑/占用表LOGICMAP中查找連續(xù)邏輯空間,標(biāo)記為占用;從物理地址空閑/占用表PHYMAP中查找空閑物理頁,寫入初始化數(shù)據(jù),并標(biāo)記為占用;將物理頁與邏輯頁的映射關(guān)系更新到邏輯頁與物理頁的映射表LOGICPHYMAP中。2)更新操作時,從邏輯頁與物理頁的映射表LOGICPHYMAP中查找物理地址OLDPAGE,從物理地址空閑/占用表PHYMAP中查找空閑頁NEWPAGE,將數(shù)據(jù)寫入,標(biāo)記物理地址空閑/占用表PHYMAP中對應(yīng)NEWPAGE位置為占用。本發(fā)明可以用較少的空間代價、較少的非易失性存儲器擦寫次數(shù),實(shí)現(xiàn)掉電保護(hù)和磨損平衡。
【專利說明】—種用于智能卡非易失性存儲器的掉電保護(hù)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及智能卡【技術(shù)領(lǐng)域】,特別是用于智能卡非易失性存儲器的掉電保護(hù)方法。
【背景技術(shù)】
[0002]隨著智能卡的普及,智能卡已經(jīng)廣泛應(yīng)用于移動通信、電子商務(wù)、交通運(yùn)輸、社保和金融等生活中的各個領(lǐng)域。
[0003]非易失性存儲器在智能卡中用于存儲代碼和文件系統(tǒng),文件系統(tǒng)中關(guān)鍵數(shù)據(jù)在智能卡使用過程中經(jīng)常有更新操作。非易失性存儲器中的數(shù)據(jù)更新一般都是先擦除原有數(shù)據(jù),再寫入新的數(shù)據(jù);在擦寫過程中面臨異常掉電的問題,從而造成數(shù)據(jù)的錯誤。
[0004]現(xiàn)有技術(shù)中,常規(guī)用于智能卡非易失性存儲器掉電保護(hù)的方法為劃分一個固定區(qū)域?yàn)閭浞輩^(qū),由標(biāo)記頁數(shù)據(jù)進(jìn)行掉電備份管理,該方法執(zhí)行更新操作的流程為:將原數(shù)據(jù)寫到備份區(qū),在備份標(biāo)記頁里記錄數(shù)據(jù)的地址;將新數(shù)據(jù)寫入;擦除備份標(biāo)記頁。該操作方法的優(yōu)點(diǎn)是邏輯簡單,維護(hù)掉電保護(hù)的額外數(shù)據(jù)空間較小。缺點(diǎn)是一次更新操作中對非易失性存儲器的擦寫次數(shù)過多;在正常交易流程及發(fā)生掉電后的恢復(fù)流程都非常耗時?,F(xiàn)在智能卡對于交易時間的要求越來越嚴(yán)格,非易失性存儲器的擦寫次數(shù)在交易時間中占據(jù)很大的比例,這種方法具有很大的使用局限性。
【發(fā)明內(nèi)容】
[0005]針對上述現(xiàn)有技術(shù)中存在的不足,本發(fā)明的目的是提供一種用于智能卡非易失性存儲器的掉電保護(hù)方法。它可以用較少的空間代價、較少的非易失性存儲器擦寫次數(shù),實(shí)現(xiàn)掉電保護(hù)和磨損平衡。
[0006]為了達(dá)到上述發(fā)明目的,本發(fā)明的技術(shù)方案以如下方式實(shí)現(xiàn):
一種用于智能卡非易失性存儲器的掉電保護(hù)方法,它通過設(shè)置的分區(qū)PARTITION對非易失性存儲器進(jìn)行管理。所述分區(qū)PARTITION包含分區(qū)頁P(yáng)_PAGE和數(shù)據(jù)區(qū)P_DAT,所述分區(qū)頁P(yáng)_PAGE由物理地址空閑/占用表PHYMAP、邏輯地址空閑/占用表L0GICMAP、邏輯頁與物理頁的映射表LOGICPHYMAP和校驗(yàn)信息CHECKDAT組成,由分區(qū)頁P(yáng)_PAGE對數(shù)據(jù)區(qū)P_DAT做統(tǒng)一尋址管理。其方法步驟為:
I)創(chuàng)建操作時,從所述邏輯地址空閑/占用表L0GICMAP中查找滿足需求的連續(xù)邏輯空間,標(biāo)記對應(yīng)邏輯地址為占用;從所述物理地址空閑/占用表PHYMAP中查找空閑物理頁,寫入初始化數(shù)據(jù),并標(biāo)記為占用;將物理頁與邏輯頁的映射關(guān)系更新到邏輯頁與物理頁的映射表 LOGICPHYMAP 中。
[0007]2 )更新操作時,從所述邏輯頁與物理頁的映射表LOGICPHYMAP中查找目標(biāo)邏輯地址對應(yīng)的物理地址0LDPAGE,從所述物理地址空閑/占用表PHYMAP中查找空閑頁NEWPAGE,將數(shù)據(jù)寫入,標(biāo)記物理地址空閑/占用表PHYMAP中對應(yīng)NEWPAGE位置為占用,更新邏輯頁與物理頁的映射表LOGICPHYMAP目標(biāo)邏輯地址對應(yīng)的物理頁為NEWPAGE,標(biāo)記物理地址空閑/占用表PHYMAP中對應(yīng)物理地址OLDPAGE為空閑。
[0008]3 )讀取操作時,從所述邏輯頁與物理頁的映射表LOGICPHYMAP中查找目標(biāo)邏輯地址對應(yīng)的物理地址,將數(shù)據(jù)返回。
[0009]在上述掉電保護(hù)方法中,所述分區(qū)內(nèi)邏輯地址和物理地址按頁離散映射,分區(qū)管理的物理空間比邏輯空間大M頁,用于保證動態(tài)磨損平衡和數(shù)據(jù)操作原子性。
[0010]在上述掉電保護(hù)方法中,所述物理空間額外多出的M頁存儲區(qū)相對于PARTITION管理的空間是一個較小的值,用較少的空間代價實(shí)現(xiàn)動態(tài)磨損平衡。
[0011]在上述掉電保護(hù)方法中,所述更新操作在同一分區(qū)內(nèi)進(jìn)行多次時,分區(qū)Hp_page在隨機(jī)存儲器RAM中更新,所有數(shù)據(jù)更新結(jié)束后,將分區(qū)頁P(yáng)_PAGE數(shù)據(jù)寫入非易失性存儲器,保證數(shù)據(jù)的一致性。
[0012]在上述掉電保護(hù)方法中,所述分區(qū)頁P(yáng)_PAGE有一個備份頁,更新結(jié)束時將隨機(jī)存儲器RAM中的分區(qū)頁P(yáng)_PAGE寫到備份頁的位置,由校驗(yàn)信息CHECKDAT保證有效性。
[0013]在上述掉電保護(hù)方法中,所述校驗(yàn)信息CHECKDAT可以由循環(huán)冗余碼CRC加序列號SN組成,也可以由其他可以表征數(shù)據(jù)完整性和時效性的數(shù)據(jù)組成。
[0014]在上述掉電保護(hù)方法中,所述通過分區(qū)PARTITION對非易失性存儲器進(jìn)行管理采用一個或者多個分區(qū)對非易失性存儲器進(jìn)行管理。
[0015]本發(fā)明由于采用了上述方法,可以用較少的空間代價、較少的非易失性存儲器擦寫次數(shù)實(shí)現(xiàn)掉電保護(hù)和磨損平衡,具有安全可靠性高的特點(diǎn)
下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明作進(jìn)一步說明。
【專利附圖】
【附圖說明】
[0016]圖1為本發(fā)明方法中使用的非易失性存儲器的訪問映射圖;
圖2為本發(fā)明方法中使用的非易失性存儲器分區(qū)PARTITION中分區(qū)頁P(yáng)_PAGE的示意
圖;
圖3為本發(fā)明實(shí)施例創(chuàng)建操作的方法流程圖;
圖4為本發(fā)明實(shí)施例創(chuàng)建操作時非易失性存儲器的變化示意圖;
圖5為本發(fā)明實(shí)施例更新單頁數(shù)據(jù)的方法流程圖;
圖6為本發(fā)明實(shí)施例更新多頁數(shù)據(jù)的方法流程圖;
圖7為本發(fā)明實(shí)施例更新操作時的非易失性存儲器的變化示意圖;
圖8為本發(fā)明實(shí)施例上電恢復(fù)的方法流程圖;
圖9為本發(fā)明實(shí)施例讀取操作的方法流程圖。
【具體實(shí)施方式】
[0017]參看圖1和圖2,本發(fā)明引入分區(qū)PARTITION對非易失性存儲器進(jìn)行地址管理,分區(qū)PARTITION的物理空間包分區(qū)頁P(yáng)_PAGE和數(shù)據(jù)區(qū)P_DAT,其中分區(qū)頁P(yáng)_PAGE由物理地址空閑/占用表PHYMAP、邏輯地址空閑/占用表L0GICMAP、邏輯頁與物理頁的映射表LOGICPHYMAP和校驗(yàn)信息CHECKDAT組成。其中校驗(yàn)信息CHECKDAT用于保分區(qū)頁P(yáng)_PAGE的數(shù)據(jù)完整性和時效性,物理地址空閑/占用表PHYMAP用于管理物理空間的占用與空閑,邏輯地址空閑/占用表L0GICMAP用于管理邏輯空間的占用與空閑,邏輯頁與物理頁的映射表LOGICPHYMAP用于管理邏輯地址到物理地址的映射。由分區(qū)頁P(yáng)_PAGE對數(shù)據(jù)區(qū)P_DAT做統(tǒng)一尋址管理,分區(qū)頁P(yáng)_PAGE還包含一個備份頁,數(shù)據(jù)區(qū)P_DAT空間大小比邏輯空間富裕M頁。
[0018]本發(fā)明的的掉電保護(hù)方法為:
參看圖3,本發(fā)明的創(chuàng)建操作時,拷貝有效分區(qū)頁P(yáng)_PAGE到隨機(jī)存儲器RAM,在邏輯地址空閑/占用表L0GICMAP中查找符合創(chuàng)建需求的連續(xù)邏輯空閑空間。將對應(yīng)邏輯空間標(biāo)記為占用;在物理地址空閑/占用表PHYMAP中查找空閑物理頁,寫入初始化數(shù)據(jù),標(biāo)記為占用。在邏輯地址空閑/占用表L0GICMAP中記錄邏輯頁與物理頁的映射關(guān)系;將隨機(jī)存儲器RAM中的分區(qū)頁P(yáng)_PAGE寫入備份頁的位置,擦除原有效頁。參看圖4,以創(chuàng)建兩頁數(shù)據(jù)為例,給出了非易失性存儲器中的內(nèi)容變化。
[0019]參看圖5,本發(fā)明的更新操作時,首先拷貝有效分區(qū)HP_PAGE到隨機(jī)存儲器RAM,在邏輯頁與物理頁的映射表LOGICPHYMAP中查找對應(yīng)邏輯頁的物理頁地址,記錄為0LDPAGE。在物理地址空閑/占用表PHYMAP中查找空閑物理頁NEWPAGE,標(biāo)記為占用,將新數(shù)據(jù)寫入。更新邏輯頁與物理頁的映射表LOGICPHYMAP中映射關(guān)系為NEWPAGE ;將物理地址空閑/占用表PHYMAP中對應(yīng)OLDPAGE的位置標(biāo)記為空閑。將隨機(jī)存儲器RAM中的分區(qū)頁P(yáng).PAGE寫入非易失性存儲器中對應(yīng)備份頁的位置,擦除原有效頁。多頁數(shù)據(jù)更新流程參見圖6,與上述流程基本相同,不同點(diǎn)在于直到最后一組數(shù)據(jù)更新結(jié)束,才將隨機(jī)存儲器RAM中的分區(qū)頁P(yáng)_PAGE寫入非易失性存儲器。數(shù)據(jù)更新帶來的額外非易失性存儲器擦寫操作次數(shù)I頁擦寫+1頁擦除。更新操作過程中的非易失性存儲器數(shù)據(jù)變化如圖7所示,更新成功后,邏輯地址空閑/占用表L0GICMAP中更新為新數(shù)據(jù)地址。
[0020]參看圖8,本發(fā)明的上電恢復(fù)操作時,只需要判斷校驗(yàn)信息CHECKDAT的有效得出正確的分區(qū)頁P(yáng)_PAGE,后續(xù)操作基于有效分區(qū)頁P(yáng)_PAGE進(jìn)行。所述更新操作過程中,掉電的時機(jī)有三個:1)分區(qū)頁P(yáng)_PAGE寫入之前,分區(qū)頁P(yáng)_PAGE的修改在隨機(jī)存儲器RAM中進(jìn)行,若掉電發(fā)生在分區(qū)頁P(yáng)_PAGE提交之前,那么非易失性存儲器中存儲的有效分區(qū)頁P(yáng)_PAGE為更新操作之前的數(shù)據(jù),通過邏輯地址可以訪問到原子性一致的舊數(shù)據(jù),滿足掉電保護(hù)要求。2)若掉電發(fā)生在分區(qū)頁P(yáng)_PAGE擦寫過程中,校驗(yàn)信息CHECKDAT保證舊的分區(qū)頁P(yáng).PAGE為有效頁,依然可以滿足掉電保護(hù)要求。3)若掉電發(fā)生在舊分區(qū)頁P(yáng)_PAGE擦除過程中,那么校驗(yàn)信息CHECKDAT的時效性保證新的分區(qū)頁P(yáng)_PAGE有效,通過邏輯地址可以訪問到原子性一致的新數(shù)據(jù),滿足掉電保護(hù)要求。
[0021 ] 參見圖9,本發(fā)明的讀取操作時,首先查詢邏輯頁與物理頁的映射表LOGICPHYMAP,根據(jù)邏輯地址找到物理地址;然后拷貝數(shù)據(jù)到數(shù)據(jù)。
[0022] 以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉此【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明公開的技術(shù)范圍內(nèi),顯而易見得到的變換或者替換,都應(yīng)該屬于本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種用于智能卡非易失性存儲器的掉電保護(hù)方法,它通過設(shè)置分區(qū)PARTITION對非易失性存儲器進(jìn)行管理,所述分區(qū)PARTITION包含分區(qū)頁P(yáng)_PAGE和數(shù)據(jù)區(qū)P_DAT,所述分區(qū)頁P(yáng)_PAGE由物理地址空閑/占用表PHYMAP、邏輯地址空閑/占用表L0GICMAP、邏輯頁與物理頁的映射表LOGICPHYMAP和校驗(yàn)信息CHECKDAT組成,由分區(qū)頁P(yáng)_PAGE對數(shù)據(jù)區(qū)P_DAT做統(tǒng)一尋址管理,其方法步驟為: 1)創(chuàng)建操作時,從所述邏輯地址空閑/占用表L0GICMAP中查找滿足需求的連續(xù)邏輯空間,標(biāo)記對應(yīng)邏輯地址為占用;從所述物理地址空閑/占用表PHYMAP中查找空閑物理頁,寫入初始化數(shù)據(jù),并標(biāo)記為占用;將物理頁與邏輯頁的映射關(guān)系更新到邏輯頁與物理頁的映射表 LOGICPHYMAP 中; 2)更新操作時,從所述邏輯頁與物理頁的映射表LOGICPHYMAP中查找目標(biāo)邏輯地址對應(yīng)的物理地址0LDPAGE,從所述物理地址空閑/占用表PHYMAP中查找空閑頁NEWPAGE,將數(shù)據(jù)寫入,標(biāo)記物理地址空閑/占用表PHYMAP中對應(yīng)NEWPAGE位置為占用,更新邏輯頁與物理頁的映射表LOGICPHYMAP目標(biāo)邏輯地址對應(yīng)的物理頁為NEWPAGE,標(biāo)記物理地址空閑/占用表PHYMAP中對應(yīng)物理地址0LDPAGE為空閑; 3)讀取操作時,從所述邏輯頁與物理頁的映射表LOGICPHYMAP中查找目標(biāo)邏輯地址對應(yīng)的物理地址,將數(shù)據(jù)返回。
2.根據(jù)權(quán)利要求特征I所述的掉電保護(hù)方法,其特征在于,所述分區(qū)內(nèi)邏輯地址和物理地址按頁離散映射,分區(qū)管理的物理空間比邏輯空間大M頁,用于保證動態(tài)磨損平衡和數(shù)據(jù)操作原子性。
3.根據(jù)權(quán)利要求1或2所述的掉電保護(hù)方法,其特征在于,所述物理空間額外多出的M頁存儲區(qū)相對于PART ITION管理的空間是一個較小的值,用較少的空間代價實(shí)現(xiàn)動態(tài)磨損平衡。
4.根據(jù)權(quán)利要求3所述的掉電保護(hù)方法,其特征在于,所述更新操作在同一分區(qū)內(nèi)進(jìn)行多次時,分區(qū)HP_PAGE在隨機(jī)存儲器RAM中更新,所有數(shù)據(jù)更新結(jié)束后,將分區(qū)頁P(yáng)_PAGE數(shù)據(jù)寫入非易失性存儲器,保證數(shù)據(jù)的一致性。
5.根據(jù)權(quán)利要求4所述的掉電保護(hù)方法,其特征在于,所述分區(qū)頁P(yáng)_PAGE有一個備份頁,更新結(jié)束時將隨機(jī)存儲器RAM中的分區(qū)頁P(yáng)_PAGE寫到備份頁的位置,由校驗(yàn)信息CHECKDAT保證有效性。
6.根據(jù)權(quán)利要求5所述的掉電保護(hù)方法,其特征在于,所述校驗(yàn)信息CHECKDAT可以由循環(huán)冗余碼CRC加序列號SN組成,也可以由其他可以表征數(shù)據(jù)完整性和時效性的數(shù)據(jù)組成。
7.根據(jù)權(quán)利要求6所述的掉電保護(hù)方法,其特征在于,所述通過分區(qū)PARTITION對非易失性存儲器進(jìn)行管理采用一個或者多個分區(qū)對非易失性存儲器進(jìn)行管理。
【文檔編號】G11C14/00GK103996412SQ201310053262
【公開日】2014年8月20日 申請日期:2013年2月19日 優(yōu)先權(quán)日:2013年2月19日
【發(fā)明者】路倩, 楊征軍, 丁義民, 王慶林, 王強(qiáng), 楊帆, 張星, 姜達(dá) 申請人:北京同方微電子有限公司