向存儲器寫入數(shù)據(jù)的方法及裝置、智能卡的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲器領(lǐng)域,尤其涉及一種向存儲器寫入數(shù)據(jù)的方法及裝置、智能卡。
【背景技術(shù)】
[0002]存儲器在現(xiàn)代信息技術(shù)中廣泛應(yīng)用于信息的保存,是一種記憶設(shè)備,主要功能是存儲程序和各種數(shù)據(jù),并能在計算機(jī)運(yùn)行過程中高速、自動地完成程序或數(shù)據(jù)的存取。
[0003]在現(xiàn)有技術(shù)中,存儲器中某一存儲區(qū)域在執(zhí)行寫入操作時若發(fā)生掉電,則將要寫入的數(shù)據(jù)就無法完整寫入存儲器,而需要被替換的原始數(shù)據(jù)可能已經(jīng)被全部或部分擦除,這就造成這一存儲區(qū)域的原始數(shù)據(jù)丟失。例如:在智能卡系統(tǒng)中,每次對智能卡執(zhí)行寫入操作之前讀卡器都要先讀取并存儲智能卡內(nèi)的原始數(shù)據(jù),若寫入過程中發(fā)生掉電,會使智能卡內(nèi)的原始數(shù)據(jù)丟失,這樣由讀卡器存儲了執(zhí)行寫入操作之前智能卡的原始數(shù)據(jù),待下次對智能卡上電時讀卡器需要再對這個備份的原始數(shù)據(jù)進(jìn)行恢復(fù)。但是,這種方法使得智能卡對原始數(shù)據(jù)的備份完全依賴于讀卡器,并且對于智能卡的存儲器本身而言,并沒有掉電保護(hù)的功能。
[0004]另外,影響存儲器使用壽命的重要因素就是存儲器的可寫次數(shù),而存儲器的可寫次數(shù)有一個上限,例如:可寫100000次,也就是說存儲器的使用壽命是一定的。若存儲器在執(zhí)行寫入操作時針對的存儲區(qū)域一為該存儲器的寫入操作的操作單位,在使用存儲器的過程中,控制端可能需要以存儲區(qū)域二為操作單位執(zhí)行寫入操作,且存儲區(qū)域二比存儲區(qū)域一的存儲區(qū)域小,在這種情況下,若對存儲區(qū)域二的數(shù)據(jù)進(jìn)行不斷更新,則存儲器不僅會對存儲區(qū)域一反復(fù)執(zhí)行寫入的操作,還會對存儲區(qū)域一中除了存儲區(qū)域二以外的其他存儲區(qū)域執(zhí)行反復(fù)寫入的操作,這就使得其他存儲區(qū)域的可寫次數(shù)被浪費,從而減少了存儲器的使用壽命,相應(yīng)地,應(yīng)用此存儲器的智能卡的使用壽命也會減少。例如若智能卡要求執(zhí)行數(shù)據(jù)的寫入操作是以容量為16字節(jié)的塊為操作單位,而該智能卡中的存儲器是以頁為執(zhí)行寫入操作的操作單位,假設(shè)一頁的容量為128字節(jié),那么就可以在一頁中存放128 + 16 =8個塊,如果需要頻繁對一頁中的一個塊執(zhí)行寫入操作,該頁其他的塊也會一起被執(zhí)行寫入操作,那么就會造成存儲器的使用壽命大大減少。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種向存儲器寫入數(shù)據(jù)的方法及裝置、智能卡,用以實現(xiàn)延長存儲器的使用壽命,并在數(shù)據(jù)寫入時可以進(jìn)行掉電保護(hù)。
[0006]本發(fā)明提供一種向存儲器寫入數(shù)據(jù)的方法,所述存儲器包括兩個以上頁,所述頁包括數(shù)據(jù)單元和信息單元,所述數(shù)據(jù)單元存儲數(shù)據(jù),所述信息單元存儲輔助信息,所述輔助信息包括邏輯頁號、用于對所述數(shù)據(jù)進(jìn)行校驗的校驗值和寫入次數(shù),所述方法包括:
[0007]根據(jù)所述校驗值從所述兩個以上頁中選取發(fā)生掉電的頁作為備份頁;
[0008]根據(jù)所述備份頁的寫入次數(shù)判斷所述備份頁是否需要替換;
[0009]當(dāng)判定所述備份頁需要替換時,根據(jù)所述寫入次數(shù)從所述兩個以上頁中選取替換頁,將所述替換頁的數(shù)據(jù)寫入所述備份頁的數(shù)據(jù)單元,更新所述備份頁的信息單元,將所述替換頁作為新的備份頁,并將需要寫入的數(shù)據(jù)寫入所述新的備份頁的數(shù)據(jù)單元,更新所述新的備份頁的信息單元;
[0010]當(dāng)判定所述備份頁不需要替換時,將需要寫入的數(shù)據(jù)寫入所述備份頁的數(shù)據(jù)單元,更新所述備份頁的信息單元。
[0011]本發(fā)明還提供一種向存儲器寫入數(shù)據(jù)的裝置,所述存儲器包括兩個以上頁,所述頁包括:數(shù)據(jù)單元和信息單元,所述數(shù)據(jù)單元存儲數(shù)據(jù),所述信息單元存儲輔助信息,所述輔助信息包括邏輯頁號、用于對所述數(shù)據(jù)進(jìn)行校驗的校驗值和寫入次數(shù),所述裝置包括:
[0012]第一選取模塊,用于根據(jù)所述校驗值從所述兩個以上頁中選取發(fā)生掉電的頁作為備份頁;
[0013]判斷模塊,用于根據(jù)所述備份頁的寫入次數(shù)判斷所述備份頁是否需要替換;
[0014]第一寫入模塊,用于當(dāng)判定所述備份頁需要替換時,根據(jù)所述寫入次數(shù)從所述兩個以上頁中選取替換頁,將所述替換頁的數(shù)據(jù)寫入所述備份頁的數(shù)據(jù)單元,更新所述備份頁的信息單元,將所述替換頁作為新的備份頁,并將需要寫入的數(shù)據(jù)寫入所述新的備份頁的數(shù)據(jù)單元,更新所述新的備份頁的信息單元;
[0015]第二寫入模塊,用于當(dāng)判定所述備份頁不需要替換時,將需要寫入的數(shù)據(jù)寫入所述備份頁的數(shù)據(jù)單元,更新所述備份頁的信息單元。
[0016]本發(fā)明還提供一種智能卡,包括:射頻接口、控制器和存儲器,所述存儲器包括兩個以上頁,所述頁包括:數(shù)據(jù)單元和信息單元,所述數(shù)據(jù)單元存儲數(shù)據(jù),所述信息單元存儲輔助信息,所述輔助信息包括邏輯頁號、用于對所述數(shù)據(jù)進(jìn)行校驗的校驗值和寫入次數(shù);
[0017]所述控制器用于根據(jù)所述校驗值從所述兩個以上頁中選取發(fā)生掉電的頁作為備份頁,根據(jù)所述備份頁的寫入次數(shù)判斷所述備份頁是否需要替換,當(dāng)判定所述備份頁需要替換時,根據(jù)所述寫入次數(shù)從所述兩個以上頁中選取替換頁,將所述替換頁的數(shù)據(jù)寫入所述備份頁的數(shù)據(jù)單元,更新所述備份頁的信息單元,將所述替換頁作為新的備份頁,并將需要寫入的數(shù)據(jù)寫入所述新的備份頁的數(shù)據(jù)單元,更新所述新的備份頁的信息單元,當(dāng)判定所述備份頁不需要替換時,將需要寫入的數(shù)據(jù)寫入所述備份頁的數(shù)據(jù)單元,更新所述備份頁的信息單元。
[0018]在本發(fā)明中,第一選取模塊根據(jù)校驗值從兩個以上頁中選取發(fā)生掉電的頁作為備份頁,然后判斷模塊根據(jù)備份頁的寫入次數(shù)判斷備份頁是否需要替換,當(dāng)備份頁需要替換時,第一寫入模塊則根據(jù)寫入次數(shù)從兩個以上頁中選取替換頁,將替換頁的數(shù)據(jù)寫入備份頁的數(shù)據(jù)單元,更新備份頁的信息單元,將替換頁作為新的備份頁,并將需要寫入的數(shù)據(jù)寫入新的備份頁的數(shù)據(jù)單元,更新新的備份頁的信息單元;當(dāng)備份頁不需要替換時,第二寫入模塊將需要寫入的數(shù)據(jù)寫入備份頁的數(shù)據(jù)單元,并更新備份頁的信息單元。這樣,每次寫入數(shù)據(jù)之前先根據(jù)寫入次數(shù)判斷備份頁是否需要替換,使存儲器的每個頁都可以在使用過程中進(jìn)行替換得到新的備份頁,最終達(dá)到對各頁的均勻使用,使存儲器的使用壽命得到均衡,從而延長存儲器的總的使用壽命;并且在向存儲器寫入數(shù)據(jù)的過程中,由于將數(shù)據(jù)寫入到了備份頁中,所以即使在寫入過程中發(fā)生掉電,也不會影響原始頁中的數(shù)據(jù),有效地進(jìn)行了掉電保護(hù)。
【附圖說明】
[0019]圖1為本發(fā)明向存儲器寫入數(shù)據(jù)的裝置實施例的結(jié)構(gòu)示意圖;
[0020]圖2為本發(fā)明向存儲器寫入數(shù)據(jù)的裝置實施例的工作過程示意圖;
[0021]圖3為本發(fā)明向存儲器寫入數(shù)據(jù)的裝置實施例中頁的存儲格式的具體實例;
[0022]圖4為本發(fā)明向存儲器寫入數(shù)據(jù)的裝置實施例中具體的工作過程的一個實例的流程示意圖。
【具體實施方式】
[0023]下面結(jié)合說明書附圖和【具體實施方式】對本發(fā)明作進(jìn)一步的描述。
[0024]如圖1所示,為本發(fā)明向存儲器寫入數(shù)據(jù)的裝置實施例的結(jié)構(gòu)示意圖,該裝置可以包括:第一選取模塊11、判斷模塊12、第一寫入模塊13和第二寫入模塊14,判斷模塊12與第一選取模塊11連接,第一寫入模塊13與判斷模塊12連接,第二寫入模塊14與第一寫入模塊13連接,第二寫入模塊14與判斷模塊12連接。
[0025]在本實施例中,存儲器可以包括兩個以上頁,該頁可以包括:數(shù)據(jù)單元和信息單元,數(shù)據(jù)單元存儲數(shù)據(jù),信息單元存儲輔助信息,這里的輔助信息可以包括邏輯頁號、用于對數(shù)據(jù)進(jìn)行校驗的校驗值和寫入次數(shù),寫入次數(shù)表示該頁發(fā)生寫入操作的次數(shù);第一選取模塊11用于根據(jù)校驗值從兩個以上頁中選取發(fā)生掉電的頁作為備份頁,若在存儲器執(zhí)行寫入操作的過程中執(zhí)行到某頁時發(fā)生掉電,則該頁的校驗值會發(fā)生錯誤,因而可以通過校驗值判斷某頁是否發(fā)生掉電,實際中可以通過循環(huán)冗余校驗、邏輯運(yùn)算等方法判斷校驗值是否發(fā)生錯誤,若在此過程中沒有頁發(fā)生掉電,也就是第一選取模塊11沒有找到發(fā)生掉電的頁,則可以通過每頁的信息單元中的其他輔助信息來選取備份頁,例如:根據(jù)邏輯頁號或?qū)懭氪螖?shù)設(shè)定選取備份頁的依據(jù)來選取備份頁;判斷模塊12用于根據(jù)備份頁的寫入次數(shù)判斷備份頁是否需要替換;第一寫入模塊13用于當(dāng)判定備份頁需要替換時,根據(jù)寫入次數(shù)從兩個以上頁中選