專利名稱::一種數(shù)據(jù)項(xiàng)備份方法及智能卡的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信及計(jì)算機(jī)領(lǐng)域,特別涉及一種數(shù)據(jù)項(xiàng)備份方法及智能卡。
背景技術(shù):
:在智能卡技術(shù)中,有一項(xiàng)重要的任務(wù),就是斷電后對(duì)NVM(Nonvolatilememory,非易失性存儲(chǔ)器)中數(shù)據(jù)的保護(hù),即出現(xiàn)斷電后再次上電使用時(shí),需要保證NVM中存儲(chǔ)的數(shù)據(jù)不出現(xiàn)中間值,要么保持修改前的值,要么保持修改后的值。常用的辦法是先將NVM中的數(shù)據(jù)先以一定的格式保存到指定的存儲(chǔ)空間(備份區(qū)),如果出現(xiàn)斷電,則在下次智能卡復(fù)位時(shí)從備份區(qū)取出保存的數(shù)據(jù)恢復(fù)到相應(yīng)的NVM地址中,以保證數(shù)據(jù)的正確性。在備份區(qū),數(shù)據(jù)通常以log(記錄)方式保存,一條log對(duì)應(yīng)一次寫NVM操作。log格式通常為TLV(Tag-Length-Value,標(biāo)簽-長(zhǎng)度-值)結(jié)構(gòu),參見圖IA所示,Value中包含數(shù)據(jù)的地址(一般為3-4字節(jié)),數(shù)據(jù)長(zhǎng)度,數(shù)據(jù)內(nèi)容。其中,Value的結(jié)構(gòu)如圖IB所示,其中的校驗(yàn)值是對(duì)前面所有數(shù)據(jù)的校驗(yàn),通常為M)R(異或)校驗(yàn)或CRC(循環(huán)冗余校驗(yàn)碼)校驗(yàn)等。在斷電恢復(fù)階段,從備份區(qū)取出log,先通過校驗(yàn)值檢驗(yàn)數(shù)據(jù)的正確性,然后將log中的數(shù)據(jù)恢復(fù)到相應(yīng)地址。但在智能卡上,NVM的資源有限,備份區(qū)也不會(huì)很大。因此,如何用盡可能少的空間保護(hù)盡可能多的數(shù)據(jù),是現(xiàn)有技術(shù)中亟待解決的問題。
發(fā)明內(nèi)容本發(fā)明實(shí)施例提供一種數(shù)據(jù)項(xiàng)備份方法及智能卡,用于實(shí)現(xiàn)用有效的空間存儲(chǔ)更多的數(shù)據(jù)項(xiàng),達(dá)到節(jié)省空間的目的。一種數(shù)據(jù)項(xiàng)備份方法,包括以下步驟在對(duì)智能卡進(jìn)行寫操作時(shí),判斷備份區(qū)中是否已存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log;當(dāng)判斷結(jié)果為是時(shí),在已存在的所述記錄log的值Value中按地址順序連續(xù)寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。一種智能卡,包括判斷模塊,用于在進(jìn)行寫操作時(shí),判斷備份區(qū)中是否已存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log;寫模塊,用于當(dāng)判斷結(jié)果為是時(shí),在已存在的所述記錄log的值Value中按地址順序連續(xù)寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。本發(fā)明實(shí)施例的數(shù)據(jù)項(xiàng)備份方法為在對(duì)智能卡進(jìn)行寫操作時(shí),判斷備份區(qū)中是否已存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log;當(dāng)判斷結(jié)果為是時(shí),在已存在的所述記錄log的值Value中按地址順序連續(xù)寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。如果需備份的數(shù)據(jù)項(xiàng)的地址與已存在的所述記錄log保護(hù)地址連續(xù),則只需在已存在的所述記錄log中記錄一個(gè)起始地址,后續(xù)每個(gè)數(shù)據(jù)項(xiàng)的地址可以省略,這樣能夠較為高效地利用備份區(qū)的存儲(chǔ)空間。圖IA為現(xiàn)有技術(shù)中l(wèi)og格式的示意圖;圖IB為現(xiàn)有技術(shù)中Value格式的示意圖;圖2為本發(fā)明實(shí)施例中智能卡的詳細(xì)結(jié)構(gòu)圖;圖3為本發(fā)明實(shí)施例中表格數(shù)據(jù)項(xiàng)存儲(chǔ)格式示意圖;圖4為本發(fā)明實(shí)施例中地址連續(xù)時(shí)數(shù)據(jù)項(xiàng)存儲(chǔ)格式示意圖;圖5為本發(fā)明實(shí)施例中地址不連續(xù)時(shí)數(shù)據(jù)項(xiàng)存儲(chǔ)格式示意圖;圖6為本發(fā)明實(shí)施例中數(shù)據(jù)項(xiàng)備份方法的主要流程圖;圖7為本發(fā)明實(shí)施例中數(shù)據(jù)項(xiàng)備份方法的詳細(xì)流程圖。具體實(shí)施例方式本發(fā)明實(shí)施例的數(shù)據(jù)項(xiàng)備份方法為在對(duì)智能卡進(jìn)行寫操作時(shí),判斷備份區(qū)中是否已存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log;當(dāng)判斷結(jié)果為是時(shí),在已存在的所述記錄log的值Value中按地址順序連續(xù)寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。如果需備份的數(shù)據(jù)項(xiàng)的地址與已存在的所述記錄log保護(hù)地址連續(xù),則只需在已存在的所述記錄log中記錄一個(gè)起始地址,后續(xù)每個(gè)數(shù)據(jù)項(xiàng)的地址可以省略,這樣能夠較為高效地利用備份區(qū)的存儲(chǔ)空間。參見圖2,本發(fā)明實(shí)施例中數(shù)據(jù)項(xiàng)備份裝置包括判斷模塊201及寫模塊202。本發(fā)明實(shí)施例中所述裝置還可以包括操作模塊203、確定模塊204和恢復(fù)模塊205。本發(fā)明實(shí)施例中所述裝置可以是智能卡。判斷模塊201用于在進(jìn)行寫操作時(shí),判斷備份區(qū)中是否已存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log。當(dāng)需要在備份區(qū)寫入數(shù)據(jù)項(xiàng)時(shí),判斷模塊201可以首先判斷備份區(qū)中是否存在一條記錄log,其存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需寫入的數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)。其中,一條記錄log中可能存儲(chǔ)有多個(gè)數(shù)據(jù)項(xiàng),該多個(gè)數(shù)據(jù)項(xiàng)可能不是連續(xù)存儲(chǔ),可能是分段存儲(chǔ),數(shù)據(jù)項(xiàng)之間還可以有存儲(chǔ)空間,則判斷模塊201可以判斷一條記錄log中存儲(chǔ)的最后一個(gè)數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址是否連續(xù),也可以首先判斷一條記錄log中是否有地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的數(shù)據(jù)項(xiàng),如果有,則可以繼續(xù)判斷該數(shù)據(jù)項(xiàng)之后是否有存儲(chǔ)空間。本發(fā)明實(shí)施例中,如果一個(gè)記錄log中存儲(chǔ)了η個(gè)數(shù)據(jù)項(xiàng),則在該記錄log的Tag中可以有記錄,表明本條記錄log共存儲(chǔ)了η個(gè)數(shù)據(jù)項(xiàng),及各數(shù)據(jù)項(xiàng)之間如果還有存儲(chǔ)空間,則Tag中可以記錄剩余存儲(chǔ)空間的大小,判斷模塊201根據(jù)該記錄可以獲知其中存儲(chǔ)的各數(shù)據(jù)項(xiàng)的地址,及還可以根據(jù)記錄log的Length中記錄的該條記錄log—共可以存儲(chǔ)的數(shù)據(jù)項(xiàng)長(zhǎng)度及已存入的數(shù)據(jù)項(xiàng)長(zhǎng)度判斷該條記錄log的存儲(chǔ)空間是否已滿。本發(fā)明實(shí)施例中,記錄log的保護(hù)地址是指記錄log的Value中已存儲(chǔ)的地址,即記錄log中存儲(chǔ)的第一個(gè)數(shù)據(jù)項(xiàng)的地址。判斷模塊201可以通過查詢的方式,遍歷備份區(qū)中已存儲(chǔ)的所有記錄log,判斷其中是否已有記錄log中存儲(chǔ)的最后一個(gè)數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址相連續(xù),如果有,則通知寫模塊202將需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息寫入該記錄log。如果沒有,可以在備份區(qū)中任選一個(gè)未存滿的記錄log,將需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息寫入其中,較佳的,所選擇的記錄log可以是,需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址與該記錄log中存儲(chǔ)的最后一個(gè)數(shù)據(jù)項(xiàng)的地址的地址偏移量在所有的地址偏移量中值最小,所有的地址偏移量是指?jìng)浞輩^(qū)中所有未寫滿的記錄log存儲(chǔ)的最后一個(gè)數(shù)據(jù)項(xiàng)的地址與需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址的地址偏移量的集合;或也可以根據(jù)需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址新建一個(gè)記錄log,將需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息寫入其中。其中,需備份的數(shù)據(jù)項(xiàng)也可以稱為保護(hù)數(shù)據(jù)項(xiàng)。判斷模塊201還可以在判斷備份區(qū)中是否已存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log之后判斷該已存在的所述記錄log剩余的存儲(chǔ)空間是否能夠?qū)懭氡敬涡鑲浞輸?shù)據(jù)的全部數(shù)據(jù)項(xiàng)的第一信息,如果可以,則通知寫模塊202在已存在的所述記錄log的值Value中順序?qū)懭胄鑲浞輸?shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。如果已存在的所述記錄log剩余的存儲(chǔ)空間不夠,不能寫入本次需備份數(shù)據(jù)的全部數(shù)據(jù)項(xiàng)的第一信息時(shí),可以在該已存在的所述記錄log中寫入能夠?qū)懭氲男鑲浞輸?shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息,即將需備份數(shù)據(jù)的數(shù)據(jù)項(xiàng)按照地址從小到大排列順序?qū)懭耄瑢⒋笮≡谝汛嬖诘乃鲇涗沴og剩余存儲(chǔ)空間范圍內(nèi)的需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息寫入已存在的所述記錄log,再通知操作模塊203新建一記錄log,從所述無法寫入已存在的所述記錄log的第一個(gè)數(shù)據(jù)項(xiàng)開始,按照數(shù)據(jù)項(xiàng)的地址增大的順序在所述新建的記錄log的Value中依次寫入所述無法寫入已存在的所述記錄log的第一個(gè)數(shù)據(jù)項(xiàng)的地址、數(shù)據(jù)項(xiàng)長(zhǎng)度、數(shù)據(jù)項(xiàng)內(nèi)容、校驗(yàn)值,及剩余的其余需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。該新建的記錄log的保護(hù)地址為無法寫入已存在的所述記錄log的需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址,即無法寫入已存在的所述記錄log的需備份數(shù)據(jù)各數(shù)據(jù)項(xiàng)中對(duì)應(yīng)地址最小的數(shù)據(jù)項(xiàng)的地址?;蛘呷绻汛嬖诘乃鲇涗沴og的剩余存儲(chǔ)空間不夠,不能寫入本次需備份數(shù)據(jù)的全部數(shù)據(jù)項(xiàng)的第一信息時(shí),可以通知操作模塊203根據(jù)需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址建立新的記錄log,建立之后通知寫模塊202在所述新建的記錄log中順序?qū)懭胄鑲浞輸?shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。如果需備份的數(shù)據(jù)項(xiàng)為表格類型的數(shù)據(jù)項(xiàng),如GRT(GlcAalreferencetable,通用參考表)、對(duì)象表等等,這些表格的首地址、每個(gè)表項(xiàng)的長(zhǎng)度通常在程序中是已知的,一般來說,每種類型的表格的不同表項(xiàng)都有其索引號(hào),例如,GRT的表項(xiàng)共有4個(gè),每個(gè)都有其索引號(hào)。這些表格在存儲(chǔ)時(shí),其所在的log的Tag中可以有第一標(biāo)識(shí)位,表明所存儲(chǔ)的表格的類型,因此對(duì)于這些表格數(shù)據(jù)項(xiàng),在存儲(chǔ)時(shí),可以不用記錄其絕對(duì)地址,而只需記錄其所在的表項(xiàng)對(duì)應(yīng)的索引號(hào)即可。則判斷模塊201還用于當(dāng)確定需備份的數(shù)據(jù)項(xiàng)為表格類型的數(shù)據(jù)項(xiàng)時(shí),確定該表格數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的表格的類型,判斷是否已存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log,如果判斷結(jié)果為是,根據(jù)已存在的所述記錄log的Tag中記錄的表格的類型,通知寫模塊202在已存在的所述記錄log的Value中順序?qū)懭胄鑲浞莸谋砀駭?shù)據(jù)項(xiàng)所對(duì)應(yīng)的索引號(hào)、需備份的表格數(shù)據(jù)項(xiàng)內(nèi)容及校驗(yàn)值即可,如圖3所示。其中,例如,數(shù)據(jù)項(xiàng)A存儲(chǔ)在表項(xiàng)1中,則在Value中寫入表項(xiàng)1的索引號(hào)即可。寫模塊202用于當(dāng)判斷結(jié)果為是時(shí),在已存在的所述記錄log的值Value中依次寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。所述第一信息至少包括數(shù)據(jù)項(xiàng)長(zhǎng)度、數(shù)據(jù)項(xiàng)內(nèi)容、校驗(yàn)值;或當(dāng)所述數(shù)據(jù)項(xiàng)為表格數(shù)據(jù)項(xiàng)時(shí),所述第一信息至少包括索引號(hào)、表格數(shù)據(jù)項(xiàng)內(nèi)容及校驗(yàn)值。當(dāng)判斷模塊201的判斷結(jié)果為是時(shí),通知寫模塊202將需備份的數(shù)據(jù)項(xiàng)寫入存儲(chǔ)的最后一個(gè)數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log中。如圖4所示,寫模塊202可以在該記錄log的Value中順序?qū)懭胄鑲浞輸?shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。其中,考慮到在智能卡的運(yùn)行過程中,單字節(jié)寫入或雙字節(jié)寫入的情況較為常見,則可以在記錄log的Tag中攜帶有第二標(biāo)識(shí)位,表示本條記錄log是單字節(jié)寫入或雙字節(jié)寫入,例如,如果所述第二標(biāo)識(shí)位的值為0,表示本條記錄log為單字節(jié)寫入,如果所述第二標(biāo)識(shí)位的值為1,表示本條記錄log為雙字節(jié)寫入,判斷模塊201可以在寫模塊202寫之前根據(jù)所述記錄log的標(biāo)簽Tag判斷數(shù)據(jù)項(xiàng)是否為單字節(jié)寫入或雙字節(jié)寫入,如果判斷結(jié)果為是,則寫模塊202只需在所述記錄log的Value中順序?qū)懭胄鑲浞莸臄?shù)據(jù)項(xiàng)的第二信息即可,所述第二信息至少包括數(shù)據(jù)項(xiàng)內(nèi)容及校驗(yàn)值,無需再將需備份的各數(shù)據(jù)項(xiàng)的數(shù)據(jù)項(xiàng)長(zhǎng)度寫入,以節(jié)省存儲(chǔ)空間。寫模塊202還用于當(dāng)判斷模塊201確定備份區(qū)中不存在一記錄log,其存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)時(shí),任選一未寫滿的記錄log,在所述未寫滿的記錄log的Value中順序?qū)懭胄鑲浞輸?shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息,及所述第一個(gè)數(shù)據(jù)項(xiàng)的地址和地址偏移量。如圖5所示。其中,地址偏移量為需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址相對(duì)于所述未寫滿的記錄log的保護(hù)地址的偏移量。例如,如果需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址相對(duì)于所述未寫滿的記錄log的保護(hù)地址的偏移量為1個(gè)字節(jié),則需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址范圍為[所述未寫滿的記錄log的保護(hù)地址-127,所述未寫滿的記錄log的保護(hù)地址+127],如果需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址相對(duì)于所述未寫滿的記錄log的保護(hù)地址的偏移量為2個(gè)字節(jié),則需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址范圍為[所述未寫滿的記錄log的保護(hù)地址-32767,所述未寫滿的記錄log的保護(hù)地址+32767],以此類推。本發(fā)明實(shí)施例中,一次寫入的數(shù)據(jù)項(xiàng)的地址均默認(rèn)為連續(xù),因此只需在需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)后寫入地址偏移量即可,該地址偏移量為需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址相對(duì)于所述未寫滿的記錄log的保護(hù)地址的偏移量。如果在有些應(yīng)用中需備份數(shù)據(jù)的數(shù)據(jù)項(xiàng)的地址不連續(xù),則也可以在每個(gè)需備份數(shù)據(jù)的數(shù)據(jù)項(xiàng)后都需寫入地址偏移量,該地址偏移量分別是需備份數(shù)據(jù)的每個(gè)數(shù)據(jù)項(xiàng)的地址相對(duì)于所述未寫滿的記錄log的保護(hù)地址的偏移量。其中,這種偏移量存儲(chǔ)的方法在偏移量為12個(gè)字節(jié)時(shí)較有優(yōu)勢(shì),因?yàn)橄鄬?duì)于傳統(tǒng)需要的記錄絕對(duì)地址(通常34字節(jié))的辦法,此方法可以節(jié)省一些字節(jié)。但如果偏移量達(dá)到34個(gè)字節(jié)甚至更多字節(jié),則相對(duì)于傳統(tǒng)的用多條記錄log存儲(chǔ)的方法,此方法只能節(jié)省每條記錄log的Tag、Length這兩個(gè)字節(jié),而對(duì)于其它方面(需備份的數(shù)據(jù)項(xiàng)的地址,需備份的數(shù)據(jù)項(xiàng)長(zhǎng)度,需備份的數(shù)據(jù)項(xiàng)內(nèi)容)等沒有太多優(yōu)化作用。判斷模塊201可以判斷所述地址偏移量是否大于2個(gè)字節(jié),較佳的,如果地址偏移量的范圍為1-2個(gè)字節(jié),可以采用本發(fā)明實(shí)施例中所述的地址偏移量存儲(chǔ)的方法,如果地址偏移量大于2個(gè)字節(jié),則既可以采用本發(fā)明實(shí)施例中所述的地址偏移量存儲(chǔ)的方法,也可以采用傳統(tǒng)的新建記錄log進(jìn)行存儲(chǔ)的方法。寫模塊202還用于當(dāng)判斷模塊201確定需備份的數(shù)據(jù)項(xiàng)為表格類型的數(shù)據(jù)項(xiàng)時(shí),根據(jù)判斷模塊201的通知在記錄log的Value中順序?qū)懭胄鑲浞莸谋砀駭?shù)據(jù)項(xiàng)的索引號(hào)、需備份的表格數(shù)據(jù)項(xiàng)內(nèi)容及校驗(yàn)值。7操作模塊203用于當(dāng)判斷模塊201確定備份區(qū)中不存在一記錄log,其存儲(chǔ)的最后一個(gè)數(shù)據(jù)項(xiàng)的地址與需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)時(shí),根據(jù)需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址構(gòu)建新的記錄log。當(dāng)判斷模塊201確定備份區(qū)中不存在一記錄log,其存儲(chǔ)的最后一個(gè)數(shù)據(jù)項(xiàng)的地址與需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)時(shí),通知操作模塊203根據(jù)需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址、需備份的各數(shù)據(jù)項(xiàng)的數(shù)據(jù)項(xiàng)長(zhǎng)度及校驗(yàn)值等信息在備份區(qū)構(gòu)建新的記錄log,操作模塊203構(gòu)建記錄log完畢后通知寫模塊202將需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息寫入構(gòu)建的記錄log。較佳的,判斷模塊201可以在確定備份區(qū)中不存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份的數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log、且需備份的數(shù)據(jù)項(xiàng)的地址與備份區(qū)中未寫滿的記錄log中最后一個(gè)數(shù)據(jù)項(xiàng)的地址的所有地址偏移量中的最小地址偏移量大于2個(gè)字節(jié)時(shí),通知操作模塊203根據(jù)需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址、需備份的各數(shù)據(jù)項(xiàng)的數(shù)據(jù)項(xiàng)長(zhǎng)度及校驗(yàn)值等信息在備份區(qū)構(gòu)建新的記錄log,以寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。確定模塊204用于在數(shù)據(jù)恢復(fù)的時(shí)候,確定記錄log中需要恢復(fù)的數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的地址連續(xù)。確定模塊204在數(shù)據(jù)恢復(fù)的時(shí)候,確定需要進(jìn)行數(shù)據(jù)項(xiàng)恢復(fù)的記錄log,根據(jù)該記錄log中只存儲(chǔ)了一個(gè)保護(hù)地址,確定模塊204可以確定在該記錄log中為連續(xù)存儲(chǔ)的數(shù)據(jù)項(xiàng),即該記錄log中存儲(chǔ)的數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的地址連續(xù)。當(dāng)所述數(shù)據(jù)項(xiàng)為表格數(shù)據(jù)項(xiàng)時(shí),確定模塊204還用于確定需恢復(fù)的表格數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的記錄log。在確定log中需要恢復(fù)的數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的地址連續(xù)之前,確定模塊204可以首先確定需恢復(fù)的表格數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的記錄log。恢復(fù)模塊205用于根據(jù)所述記錄log中存儲(chǔ)的保護(hù)地址恢復(fù)所述記錄log中存儲(chǔ)的數(shù)據(jù)項(xiàng)。恢復(fù)模塊205可以根據(jù)所述記錄log的Tag中存儲(chǔ)的保護(hù)地址依次恢復(fù)所述log中存儲(chǔ)的數(shù)據(jù)項(xiàng)。恢復(fù)模塊205還用于根據(jù)所述記錄log中存儲(chǔ)的第一標(biāo)識(shí)位及表格數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的索引號(hào)恢復(fù)所述log中存儲(chǔ)的表格數(shù)據(jù)項(xiàng)?;謴?fù)模塊205可以根據(jù)所述記錄log中存儲(chǔ)的第一標(biāo)識(shí)位確定所述記錄log的Tag中存儲(chǔ)的表格數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的表格為哪一類型的表格,再根據(jù)所述記錄log的Value中存儲(chǔ)的表格數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的索引號(hào)確定將所述表格數(shù)據(jù)項(xiàng)恢復(fù)到相應(yīng)表格的表項(xiàng)中。其中,所述表格數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的索引號(hào)就是該表格數(shù)據(jù)項(xiàng)所在的表項(xiàng)所對(duì)應(yīng)的索引號(hào)。參見圖6,本發(fā)明實(shí)施例中數(shù)據(jù)項(xiàng)備份的主要方法流程如下步驟601在對(duì)智能卡進(jìn)行寫操作時(shí),判斷備份區(qū)中是否已存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log。步驟602當(dāng)判斷結(jié)果為是時(shí),在已存在的所述記錄log的值Value中按地址順序連續(xù)寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。如圖4中,例如需存儲(chǔ)的數(shù)據(jù)項(xiàng)有η個(gè),則順序?qū)懭氡Wo(hù)數(shù)據(jù)項(xiàng)長(zhǎng)度1、保護(hù)數(shù)據(jù)項(xiàng)內(nèi)容1、校驗(yàn)值1、保護(hù)數(shù)據(jù)項(xiàng)長(zhǎng)度2、保護(hù)數(shù)據(jù)項(xiàng)內(nèi)容2、校驗(yàn)值2......保護(hù)數(shù)據(jù)項(xiàng)長(zhǎng)度η、保護(hù)數(shù)據(jù)項(xiàng)內(nèi)容η、校驗(yàn)值η。其中,如果在已存在的所述記錄log的Tag中已表明所存儲(chǔ)的數(shù)據(jù)項(xiàng)的字節(jié)數(shù),例如,所存儲(chǔ)的數(shù)據(jù)項(xiàng)為單字節(jié)寫入或雙字節(jié)寫入,則圖4中的保護(hù)數(shù)據(jù)項(xiàng)長(zhǎng)度可以省略不寫,節(jié)約存儲(chǔ)空間。參見圖7,本發(fā)明實(shí)施例中數(shù)據(jù)項(xiàng)備份的詳細(xì)方法流程如下步驟701在對(duì)智能卡進(jìn)行寫操作時(shí),判斷備份區(qū)中是否已存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log。當(dāng)判斷結(jié)果為是時(shí),繼續(xù)步驟702,否則繼續(xù)步驟703。步驟702從所述第一個(gè)數(shù)據(jù)項(xiàng)開始,按照數(shù)據(jù)項(xiàng)的地址增大的順序在所述log的Value中依次寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。步驟703任選一未寫滿的記錄log,在其Value中按地址順序連續(xù)寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息,及所述第一個(gè)數(shù)據(jù)項(xiàng)的地址和地址偏移量。本發(fā)明實(shí)施例的數(shù)據(jù)項(xiàng)備份方法為在對(duì)智能卡進(jìn)行寫操作時(shí),判斷備份區(qū)中是否已存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log;當(dāng)判斷結(jié)果為是時(shí),在已存在的所述記錄log的值Value中按地址順序連續(xù)寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。如果需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址與已存在的所述記錄log中存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址連續(xù),則只需在已存在的所述記錄log中記錄一個(gè)起始地址,后續(xù)每個(gè)數(shù)據(jù)項(xiàng)的地址可以省略,這樣能夠較為高效地利用備份區(qū)的存儲(chǔ)空間。如果數(shù)據(jù)項(xiàng)確定為單字節(jié)寫入或雙字節(jié)寫入,則在Value中不必寫入需備份的數(shù)據(jù)項(xiàng)長(zhǎng)度,節(jié)約存儲(chǔ)空間。如果不存在一個(gè)log,其存儲(chǔ)的最后一個(gè)數(shù)據(jù)項(xiàng)的地址與需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù),可以在Value中寫入地址偏移量。如果需備份的數(shù)據(jù)項(xiàng)類型為表格數(shù)據(jù)項(xiàng),則在記錄log的Tag中可以表明其所存儲(chǔ)的是哪種類型的表格,在該記錄log的Value中可以只寫入需備份的表格數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的索引號(hào)、數(shù)據(jù)項(xiàng)內(nèi)容及校驗(yàn)值,而無需在記錄log中寫入地址,優(yōu)化存儲(chǔ)資源,節(jié)約存儲(chǔ)空間。本發(fā)明實(shí)施例還提供了相應(yīng)的數(shù)據(jù)項(xiàng)恢復(fù)方法,本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明提供的技術(shù)方案可以很明確應(yīng)如何進(jìn)行數(shù)據(jù)項(xiàng)備份及恢復(fù),實(shí)現(xiàn)簡(jiǎn)單,操作易行。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)項(xiàng)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)項(xiàng)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)項(xiàng)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)項(xiàng)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。權(quán)利要求1.一種數(shù)據(jù)項(xiàng)備份方法,其特征在于,包括以下步驟在對(duì)智能卡進(jìn)行寫操作時(shí),判斷備份區(qū)中是否已存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log;當(dāng)判斷結(jié)果為是時(shí),在已存在的所述記錄log的值Value中按地址順序連續(xù)寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。2.如權(quán)利要求1所述的方法,其特征在于,所述第一信息至少包括數(shù)據(jù)項(xiàng)長(zhǎng)度、數(shù)據(jù)項(xiàng)內(nèi)容、校驗(yàn)值;或當(dāng)所述數(shù)據(jù)項(xiàng)為表格數(shù)據(jù)項(xiàng)時(shí),所述第一信息至少包括索引號(hào)、表格數(shù)據(jù)項(xiàng)內(nèi)容及校驗(yàn)值。3.如權(quán)利要求1所述的方法,其特征在于,在當(dāng)判斷結(jié)果為是時(shí)之后,在已存在的所述記錄log的值Value中按地址順序連續(xù)寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息之前,還包括步驟判斷已存在的所述記錄log剩余的存儲(chǔ)空間是否能寫入本次需備份數(shù)據(jù)的全部數(shù)據(jù)項(xiàng)的第一信息;當(dāng)判斷確定已存在的所述記錄log剩余的存儲(chǔ)空間能夠?qū)懭氡敬涡鑲浞輸?shù)據(jù)的全部數(shù)據(jù)項(xiàng)的第一信息時(shí),在已存在的所述記錄log的值Value中按地址順序連續(xù)寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息;當(dāng)判斷確定已存在的所述記錄log剩余的存儲(chǔ)空間不能寫入本次需備份數(shù)據(jù)的全部數(shù)據(jù)項(xiàng)的第一信息時(shí),在已存在的所述記錄log中按照地址順序?qū)懭肽軌驅(qū)懭氲男鑲浞輸?shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息,并根據(jù)按照地址順序無法寫入已存在的所述記錄log的第一個(gè)數(shù)據(jù)項(xiàng)的地址新建一條記錄log,在所述新建的記錄log的Value中依次寫入所述無法寫入已存在的所述記錄log的第一個(gè)數(shù)據(jù)項(xiàng)的地址及其他無法寫入已存在的所述記錄log的需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息;或當(dāng)判斷確定已存在的所述記錄log剩余的存儲(chǔ)空間不能寫入本次需備份數(shù)據(jù)的全部數(shù)據(jù)項(xiàng)的第一信息時(shí),根據(jù)需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址新建一條記錄log,在新建的記錄log中順序?qū)懭胄鑲浞輸?shù)據(jù)各數(shù)據(jù)項(xiàng)的第一信息。4.如權(quán)利要求1所述的方法,其特征在于,當(dāng)判斷結(jié)果為否時(shí),任選一備份區(qū)中未寫滿的記錄log,在其Value中按地址順序連續(xù)寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息,及所述第一個(gè)數(shù)據(jù)項(xiàng)的地址和地址偏移量;所述地址偏移量為需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址相對(duì)于所述未寫滿的記錄log的保護(hù)地址的偏移量;其中,所述未寫滿的記錄log的保護(hù)地址為所述未寫滿的記錄log中存儲(chǔ)的第一個(gè)數(shù)據(jù)項(xiàng)的地址。5.如權(quán)利要求1所述的方法,其特征在于,在數(shù)據(jù)恢復(fù)的時(shí)候,確定記錄log中需要恢復(fù)的數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的地址連續(xù);根據(jù)所述記錄log中存儲(chǔ)的保護(hù)地址恢復(fù)所述記錄log中存儲(chǔ)的數(shù)據(jù)項(xiàng)。6.如權(quán)利要求5所述的方法,其特征在于,當(dāng)所述數(shù)據(jù)項(xiàng)為表格數(shù)據(jù)項(xiàng)時(shí),在確定記錄log中需要恢復(fù)的數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的地址連續(xù)之前還包括步驟確定需恢復(fù)的表格數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的記錄log;根據(jù)所述記錄log中存儲(chǔ)的保護(hù)地址恢復(fù)所述記錄log中存儲(chǔ)的數(shù)據(jù)項(xiàng)的步驟包括根據(jù)所述記錄log中存儲(chǔ)的第一標(biāo)識(shí)位及表格數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的索引號(hào)恢復(fù)所述記錄log中存儲(chǔ)的表格數(shù)據(jù)項(xiàng)。7.一種智能卡,其特征在于,包括判斷模塊,用于在進(jìn)行寫操作時(shí),判斷備份區(qū)中是否已存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log;寫模塊,用于當(dāng)判斷結(jié)果為是時(shí),在已存在的所述記錄log的值Value中按地址順序連續(xù)寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。8.如權(quán)利要求7所述的智能卡,其特征在于,所述第一信息至少包括數(shù)據(jù)項(xiàng)長(zhǎng)度、數(shù)據(jù)項(xiàng)內(nèi)容、校驗(yàn)值;或當(dāng)所述數(shù)據(jù)項(xiàng)為表格數(shù)據(jù)項(xiàng)時(shí),所述第一信息至少包括索引號(hào)、表格數(shù)據(jù)項(xiàng)內(nèi)容及校驗(yàn)值。9.如權(quán)利要求7所述的智能卡,其特征在于,所述判斷模塊還用于判斷已存在的所述記錄log剩余的存儲(chǔ)空間是否能寫入本次需備份數(shù)據(jù)的全部數(shù)據(jù)項(xiàng)的第一信息;所述寫模塊還用于當(dāng)判斷確定已存在的所述記錄log剩余的存儲(chǔ)空間能夠?qū)懭氡敬涡鑲浞輸?shù)據(jù)的全部數(shù)據(jù)項(xiàng)的第一信息時(shí),在已存在的所述記錄log的值Value中順序?qū)懭胄鑲浞輸?shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息;當(dāng)判斷確定已存在的所述記錄log剩余的存儲(chǔ)空間不能寫入本次需備份數(shù)據(jù)的全部數(shù)據(jù)項(xiàng)的第一信息時(shí),在已存在的所述記錄log中按照地址順序?qū)懭肽軌驅(qū)懭氲男鑲浞輸?shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息,及在新建的記錄log的Value中依次寫入所述無法寫入已存在的所述記錄log的第一個(gè)數(shù)據(jù)項(xiàng)的地址及其他無法寫入已存在的所述記錄log的需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息;或者當(dāng)判斷確定已存在的所述記錄log剩余的存儲(chǔ)空間不能寫入本次需備份數(shù)據(jù)的全部數(shù)據(jù)項(xiàng)的第一信息時(shí),在所述新建的記錄log中順序?qū)懭胄鑲浞輸?shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息;還包括操作模塊,用于根據(jù)按照地址順序無法寫入已存在的所述記錄log的第一個(gè)數(shù)據(jù)項(xiàng)的地址新建一條記錄log,或者根據(jù)需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址新建一條記錄log。10.如權(quán)利要求7所述的智能卡,其特征在于,所述寫模塊還用于當(dāng)判斷結(jié)果為否時(shí),任選一備份區(qū)中未寫滿的記錄log,在其Value中順序?qū)懭胄鑲浞輸?shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息,及所述第一個(gè)數(shù)據(jù)項(xiàng)的地址和地址偏移量;所述地址偏移量為需備份的第一個(gè)數(shù)據(jù)項(xiàng)的地址相對(duì)于所述未寫滿的記錄log的保護(hù)地址的偏移量;其中,所述未寫滿的記錄log的保護(hù)地址為所述未寫滿的記錄log中存儲(chǔ)的第一個(gè)數(shù)據(jù)項(xiàng)的地址。11.如權(quán)利要求7所述的智能卡,其特征在于,還包括確定模塊及恢復(fù)模塊;所述確定模塊,用于在數(shù)據(jù)恢復(fù)的時(shí)候,確定記錄log中需要恢復(fù)的數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的地址連續(xù);所述恢復(fù)模塊,用于根據(jù)所述記錄log中存儲(chǔ)的保護(hù)地址恢復(fù)所述記錄log中存儲(chǔ)的數(shù)據(jù)項(xiàng)。12.如權(quán)利要求11所述的智能卡,其特征在于,當(dāng)所述數(shù)據(jù)項(xiàng)為表格數(shù)據(jù)項(xiàng)時(shí),所述確定模塊還用于確定需恢復(fù)的表格數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的記錄log;所述恢復(fù)模塊還用于根據(jù)所述記錄log中存儲(chǔ)的第一標(biāo)識(shí)位及表格數(shù)據(jù)項(xiàng)所對(duì)應(yīng)的索引號(hào)恢復(fù)所述記錄log中存儲(chǔ)的表格數(shù)據(jù)項(xiàng)。全文摘要本發(fā)明公開了一種數(shù)據(jù)項(xiàng)備份方法,用于實(shí)現(xiàn)用有效的空間存儲(chǔ)更多的數(shù)據(jù)項(xiàng),達(dá)到節(jié)省空間的目的。所述方法包括在對(duì)智能卡進(jìn)行寫操作時(shí),判斷備份區(qū)中是否已存在一條存儲(chǔ)的數(shù)據(jù)項(xiàng)的地址與需備份數(shù)據(jù)的第一個(gè)數(shù)據(jù)項(xiàng)的地址連續(xù)的記錄log;當(dāng)判斷結(jié)果為是時(shí),在已存在的所述記錄log的值Value中按地址順序連續(xù)寫入需備份數(shù)據(jù)的各數(shù)據(jù)項(xiàng)的第一信息。本發(fā)明還公開了用于實(shí)現(xiàn)所述方法的智能卡。文檔編號(hào)G06K19/07GK102567141SQ201110415489公開日2012年7月11日申請(qǐng)日期2011年12月13日優(yōu)先權(quán)日2011年12月13日發(fā)明者袁巧申請(qǐng)人:北京握奇數(shù)據(jù)系統(tǒng)有限公司