本發(fā)明涉及用于執(zhí)行數(shù)據(jù)更新的方法。
背景技術(shù):
許多裝置利用非易失性存儲(chǔ)器存儲(chǔ)稍后被更新或變化的信息。例如,智能卡技術(shù)在小型嵌入集成電路(例如,嵌入于口袋型卡中)中利用非易失性存儲(chǔ)器定期存儲(chǔ)經(jīng)更新的信息,該經(jīng)更新的信息允許高級(jí)的功能,例如支付、數(shù)據(jù)存儲(chǔ)或驗(yàn)證。通常,為了在此類裝置(例如,智能卡、預(yù)付自動(dòng)售貨機(jī)、滑雪裝置等)上更新儲(chǔ)存于非易失性存儲(chǔ)器中的信息,該裝置通過使用接觸通信或非接觸式通信中的任一種與數(shù)據(jù)源(例如,智能卡讀取器)進(jìn)行通信。例如,當(dāng)智能卡插入到智能卡讀取器中時(shí)或通過使用rf感應(yīng)或近場(chǎng)通信與智能卡讀取器通信而不需要接觸,該智能卡可與智能卡讀取器通信。
技術(shù)實(shí)現(xiàn)要素:
在實(shí)施例中,公開了一種用于解決在更新存儲(chǔ)器時(shí)由撕裂事件引起的沖突的方法。在實(shí)施例中,該方法涉及基于版本信息從指向邏輯存儲(chǔ)器頁(yè)面的多個(gè)存儲(chǔ)器頁(yè)面選擇存儲(chǔ)器頁(yè)面,重新編程所選擇的存儲(chǔ)器頁(yè)面以及將所選擇的存儲(chǔ)器頁(yè)面映射到邏輯存儲(chǔ)器頁(yè)面。
在第二實(shí)施例中,基于在質(zhì)量讀取操作下的性能另外選擇存儲(chǔ)器頁(yè)面。
在另一實(shí)施例中,該方法另外包括使用通過對(duì)頁(yè)面執(zhí)行正常讀取操作獲得的針對(duì)存儲(chǔ)器頁(yè)面的循環(huán)冗余檢查(crc)數(shù)據(jù)重新編程所選擇的存儲(chǔ)器頁(yè)面。
在另一實(shí)施例中,如果針對(duì)所選擇的存儲(chǔ)器頁(yè)面(第一存儲(chǔ)器頁(yè)面)的crc數(shù)據(jù)不能通過正常的讀取操作獲得,那么從指向邏輯存儲(chǔ)器頁(yè)面的多個(gè)存儲(chǔ)器頁(yè)面選擇第二存儲(chǔ)器頁(yè)面,并且使用通過對(duì)第二存儲(chǔ)器頁(yè)面執(zhí)行正常的讀取操作獲得的crc數(shù)據(jù)重新編程第二存儲(chǔ)器頁(yè)面。
在另一實(shí)施例中,用質(zhì)量讀取操作驗(yàn)證所選擇的存儲(chǔ)器頁(yè)面,并且如果不能驗(yàn)證該頁(yè)面,那么重新編程該存儲(chǔ)器頁(yè)面。
在另一實(shí)施例中,該方法另外包括通過在選擇存儲(chǔ)器頁(yè)面之前讀取被編程到系統(tǒng)頁(yè)面的數(shù)據(jù)來確定是否已發(fā)生撕裂事件。
在另一實(shí)施例中,在重新編程存儲(chǔ)器頁(yè)面之前執(zhí)行有效性檢查。
在另一實(shí)施例中,通過評(píng)估存儲(chǔ)于存儲(chǔ)器頁(yè)面的xword中的有效性檢查標(biāo)志來執(zhí)行有效性檢查。
在另一實(shí)施例中,通過將從存儲(chǔ)器頁(yè)面計(jì)算的crc數(shù)據(jù)與存儲(chǔ)于存儲(chǔ)器頁(yè)面的xword中的crc數(shù)據(jù)進(jìn)行比較來執(zhí)行有效性檢查。
在另一實(shí)施例中,公開了一種非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在實(shí)施例中,非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括在由處理器執(zhí)行時(shí)致使處理器執(zhí)行以下步驟的指令,該步驟包括:基于版本信息從指向邏輯存儲(chǔ)器頁(yè)面的多個(gè)存儲(chǔ)器頁(yè)面選擇存儲(chǔ)器頁(yè)面,重新編程所選擇的存儲(chǔ)器頁(yè)面以及將所選擇的存儲(chǔ)器頁(yè)面映射到邏輯存儲(chǔ)器頁(yè)面。
在另一實(shí)施例中,基于在質(zhì)量讀取操作下的性能另外選擇存儲(chǔ)器頁(yè)面。
在另一實(shí)施例中,存儲(chǔ)器頁(yè)面選自被映射到同一邏輯存儲(chǔ)器頁(yè)面的多個(gè)物理存儲(chǔ)器頁(yè)面。
在另一實(shí)施例中,非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)另外包括用于使用通過對(duì)頁(yè)面執(zhí)行正常讀取操作獲得的循環(huán)冗余檢查數(shù)據(jù)重新編程所選擇的存儲(chǔ)器頁(yè)面的指令。
在另一實(shí)施例中,用質(zhì)量讀取操作驗(yàn)證所選擇的存儲(chǔ)器頁(yè)面,并且如果不能驗(yàn)證該頁(yè)面,那么重新編程該存儲(chǔ)器頁(yè)面。
在另一實(shí)施例中,如果針對(duì)所選擇的存儲(chǔ)器頁(yè)面(第一存儲(chǔ)器頁(yè)面)的循環(huán)冗余檢查數(shù)據(jù)不能通過正常讀取操作獲得,那么從指向邏輯存儲(chǔ)器頁(yè)面的多個(gè)存儲(chǔ)器頁(yè)面選擇第二存儲(chǔ)器頁(yè)面,并且使用通過對(duì)第二存儲(chǔ)器頁(yè)面執(zhí)行正常讀取操作獲得的循環(huán)冗余檢查數(shù)據(jù)重新編程該第二存儲(chǔ)器頁(yè)面。
在另一實(shí)施例中,通過在選擇存儲(chǔ)器頁(yè)面之前讀取被編程到系統(tǒng)頁(yè)面的數(shù)據(jù)來確定撕裂事件的發(fā)生。
在另一實(shí)施例中,在重新編程存儲(chǔ)器頁(yè)面之前執(zhí)行有效性檢查。
在另一實(shí)施例中,通過評(píng)估存儲(chǔ)于存儲(chǔ)器頁(yè)面的xword中的有效性檢查標(biāo)志來執(zhí)行有效性檢查。
在另一實(shí)施例中,通過將從存儲(chǔ)器頁(yè)面計(jì)算的crc數(shù)據(jù)與存儲(chǔ)于存儲(chǔ)器頁(yè)面的xword中的crc數(shù)據(jù)進(jìn)行比較來執(zhí)行有效性檢查。
在另一實(shí)施例中,公開了一種包括處理器和存儲(chǔ)器的集成電路。在實(shí)施例中,存儲(chǔ)器包括在由處理器執(zhí)行時(shí)執(zhí)行以下步驟的指令,所述步驟涉及:基于版本信息從指向邏輯存儲(chǔ)器頁(yè)面的多個(gè)存儲(chǔ)器頁(yè)面選擇存儲(chǔ)器頁(yè)面,重新編程所選擇的存儲(chǔ)器頁(yè)面以及將所選擇的存儲(chǔ)器頁(yè)面映射到邏輯存儲(chǔ)器頁(yè)面。
通過以下結(jié)合附圖的詳細(xì)描述,本發(fā)明的實(shí)施例的其它方面和優(yōu)點(diǎn)將變得顯而易見。
附圖說明
圖1為典型的非接觸式智能卡的框圖。
圖2示出物理存儲(chǔ)器頁(yè)面到邏輯存儲(chǔ)器頁(yè)面的映射。
圖3為用于更新智能卡的存儲(chǔ)器的一系列步驟的流程圖。
圖4為示出在撕裂事件已發(fā)生之后四種可能的存儲(chǔ)器狀態(tài)的圖表。
圖5示出用于在撕裂事件之后使用進(jìn)程標(biāo)志恢復(fù)智能卡存儲(chǔ)器的已知技術(shù)。
圖6示出用于在根據(jù)本發(fā)明的實(shí)施例的智能卡的存儲(chǔ)器中更新邏輯存儲(chǔ)器頁(yè)面的技術(shù)。
圖7為用于解決在更新根據(jù)本發(fā)明的實(shí)施例的智能卡存儲(chǔ)器時(shí)由撕裂事件引起的沖突的技術(shù)的流程圖。
圖8為根據(jù)本發(fā)明的實(shí)施例的xword的配置的圖示。
貫穿描述,可以使用類似的參考標(biāo)號(hào)來識(shí)別類似的元件。
具體實(shí)施方式
將容易理解,如本文中大體描述且在附圖中示出的實(shí)施例的組件可以用各種各樣不同的配置來布置和設(shè)計(jì)。因此,以下如圖中所表示的各種實(shí)施例的更詳細(xì)描述并非意圖限制本公開的范圍,而僅僅是表示各種實(shí)施例。雖然在附圖中呈現(xiàn)了實(shí)施例的各個(gè)方面,但是除非特別說明,否則附圖未必按比例繪制。
在不脫離本發(fā)明精神或基本特征的情況下,可以其它特定形式實(shí)施本發(fā)明。所描述的實(shí)施例應(yīng)視為在所有方面均僅為說明性而非限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求書而不是由此具體實(shí)施方式來指示。在權(quán)利要求書等效物的含義和范圍內(nèi)的所有變化均涵蓋在權(quán)利要求書的范圍內(nèi)。
貫穿本說明書對(duì)特征、優(yōu)點(diǎn)或類似語(yǔ)言的涉及并不暗示可以本發(fā)明實(shí)現(xiàn)的所有特征和優(yōu)點(diǎn)都應(yīng)該在或在本發(fā)明的任何單一實(shí)施例中。相反地,涉及特征和優(yōu)點(diǎn)的語(yǔ)言應(yīng)理解成意指結(jié)合實(shí)施例描述的特定特征、優(yōu)點(diǎn)或特性包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,貫穿本說明書對(duì)特征和優(yōu)點(diǎn)的論述以及類似語(yǔ)言可(但未必)涉及同一實(shí)施例。
此外,本發(fā)明的所描述的特征、優(yōu)點(diǎn)和特性可以任何合適方式在一個(gè)或多個(gè)實(shí)施例中組合。相關(guān)領(lǐng)域的技術(shù)人員應(yīng)認(rèn)識(shí)到,鑒于本文的描述,本發(fā)明可以在沒有特定實(shí)施例的具體特征或優(yōu)點(diǎn)中的一個(gè)或多個(gè)具體特征或優(yōu)點(diǎn)的情況下實(shí)踐。在其它情況下,可在某些實(shí)施例中辨識(shí)可不存在于本發(fā)明的所有實(shí)施例中的額外特征和優(yōu)點(diǎn)。
貫穿說明書對(duì)“一個(gè)實(shí)施例”、“實(shí)施例”或類似語(yǔ)言的涉及意指結(jié)合所指示實(shí)施例描述的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,本說明書通篇的短語(yǔ)“在一個(gè)實(shí)施例中”、“在實(shí)施例中”和類似語(yǔ)言可以(但未必)全部參考同一個(gè)實(shí)施例。
為簡(jiǎn)單起見,貫穿本說明書描述的本發(fā)明的所描述的特征、優(yōu)點(diǎn)和特性被描述為在智能卡內(nèi)實(shí)施,但是可在利用非易失性存儲(chǔ)器存儲(chǔ)和更新信息的其它裝置中實(shí)施。
圖1為典型的非接觸式智能卡100的框圖。該智能卡包括cpu102、由rom104、ram106和eeprom/閃存108組成的存儲(chǔ)器,循環(huán)冗余檢查器(crc)110、加密協(xié)處理器112、真隨機(jī)數(shù)生成器114和與rf接口118介接的通用異步接收器/發(fā)射器(uart)116、rf天線130、安全傳感器120、通電復(fù)位122、電壓調(diào)節(jié)器124、時(shí)鐘輸入濾波器126以及復(fù)位生成器128。在其它實(shí)施例中,智能卡可以被智能電話仿真或可以嵌入于較大裝置(例如,移動(dòng)電話或較大電子裝置)中。
存儲(chǔ)于智能卡的存儲(chǔ)器中的數(shù)據(jù)可通過將數(shù)據(jù)寫入到存儲(chǔ)器的物理頁(yè)面,并且然后將該頁(yè)面映射到邏輯存儲(chǔ)器頁(yè)面而編程和更新。在實(shí)施例中,物理存儲(chǔ)器頁(yè)面為由物理地址(例如,在裝置的主存儲(chǔ)器中的實(shí)地址)標(biāo)識(shí)的存儲(chǔ)器塊并且邏輯存儲(chǔ)器頁(yè)面為可通過執(zhí)行應(yīng)用來使用的虛擬頁(yè)面。將物理存儲(chǔ)器頁(yè)面映射到邏輯存儲(chǔ)器頁(yè)面,以更新在邏輯存儲(chǔ)器頁(yè)面上存儲(chǔ)的數(shù)據(jù)。圖2示出物理存儲(chǔ)器頁(yè)面202到邏輯存儲(chǔ)器頁(yè)面204的映射。當(dāng)需要用新數(shù)據(jù)更新邏輯存儲(chǔ)器頁(yè)面時(shí),新數(shù)據(jù)可被編程到指向邏輯存儲(chǔ)器頁(yè)面的新的物理存儲(chǔ)器頁(yè)面(例如,包含邏輯存儲(chǔ)器頁(yè)面的地址)。在數(shù)據(jù)已經(jīng)寫入到物理存儲(chǔ)器頁(yè)面之后,物理存儲(chǔ)器頁(yè)面可被映射到由物理存儲(chǔ)器頁(yè)面中所包含的地址指示的邏輯存儲(chǔ)器頁(yè)面。例如,如圖2所示,物理存儲(chǔ)器頁(yè)面17c0fe被映射到邏輯存儲(chǔ)器頁(yè)面02fe。當(dāng)新數(shù)據(jù)被編程到物理存儲(chǔ)器頁(yè)面17c5fa時(shí),物理存儲(chǔ)器頁(yè)面17c5fa被映射到邏輯存儲(chǔ)器頁(yè)面02fe,而物理存儲(chǔ)器頁(yè)面17c0fe被擦除并且未被映射。在實(shí)施例中,在未映射當(dāng)前被映射到邏輯存儲(chǔ)器頁(yè)面的物理存儲(chǔ)器頁(yè)面之前,具有新數(shù)據(jù)的物理存儲(chǔ)器頁(yè)面被映射到邏輯存儲(chǔ)器頁(yè)面,但是該操作可以以相反次序執(zhí)行。在實(shí)施例中,每次只有一個(gè)物理存儲(chǔ)器頁(yè)面可被映射邏輯存儲(chǔ)器頁(yè)面(或在該頁(yè)面中的一個(gè)正被擦除時(shí),兩個(gè)物理存儲(chǔ)器頁(yè)面可被映射到邏輯存儲(chǔ)器頁(yè)面),但是其它配置是可能的。在實(shí)施例中,可通過將物理存儲(chǔ)器頁(yè)面和邏輯存儲(chǔ)器頁(yè)面之間的鏈接記錄到映射表中來促進(jìn)物理存儲(chǔ)器頁(yè)面到邏輯存儲(chǔ)器頁(yè)面的映射。例如,當(dāng)更新邏輯存儲(chǔ)器頁(yè)面時(shí),未鏈接在映射表中的新物理存儲(chǔ)器頁(yè)面(例如,先前未使用或擦除的頁(yè)面)可用經(jīng)更新的數(shù)據(jù)編程,并且將新物理存儲(chǔ)器頁(yè)面鏈接到邏輯存儲(chǔ)器頁(yè)面的條目可被添加到映射表,同時(shí)可以從映射表中除去將舊物理存儲(chǔ)器頁(yè)面鏈接到邏輯存儲(chǔ)器頁(yè)面的條目,并且可以擦除舊物理存儲(chǔ)器頁(yè)面。
通常,為了更新智能卡的存儲(chǔ)器,可執(zhí)行一系列步驟。圖3為用于更新智能卡的存儲(chǔ)器的一系列步驟的流程圖。在方框302處,將以待被編程到存儲(chǔ)器的新數(shù)據(jù)發(fā)送到智能卡。在方框304處,將新數(shù)據(jù)編程到智能卡存儲(chǔ)器中的物理存儲(chǔ)器頁(yè)面。物理存儲(chǔ)器頁(yè)面可以是空白物理存儲(chǔ)器頁(yè)面(例如,先前還未有數(shù)據(jù)被編程到其上的頁(yè)面)或物理存儲(chǔ)器頁(yè)面可以是先前已經(jīng)被編程,但是不再需要編程(例如,不需要映射到邏輯存儲(chǔ)器頁(yè)面)的物理存儲(chǔ)器頁(yè)面。在判定點(diǎn)306處,確定被編程到物理存儲(chǔ)器頁(yè)面的數(shù)據(jù)是否可通過質(zhì)量讀取操作正確地讀取。在實(shí)施例中,當(dāng)信元特性(例如,翻轉(zhuǎn)位元的數(shù)目、信元漂移或電壓)超出通過正常讀取操作正確讀取的數(shù)據(jù)所需要的那些特性時(shí),數(shù)據(jù)可通過質(zhì)量讀取操作正確地讀取,并且從該數(shù)據(jù)計(jì)算的crc數(shù)據(jù)與存儲(chǔ)于物理存儲(chǔ)器頁(yè)面上的預(yù)計(jì)算的crc數(shù)據(jù)匹配。例如,如果對(duì)于正常讀取的電源電壓為5v,那么質(zhì)量讀取操作可使用只有3v的電源電壓。在實(shí)施例中,質(zhì)量讀取操作意欲在不利條件(例如智能卡和智能卡讀取器之間的大距離或智能卡和智能卡讀取器之間的其它干擾)下模擬讀取操作。因此,執(zhí)行質(zhì)量讀取操作以確定被編程到智能卡的數(shù)據(jù)可以在不利條件下讀取,并且如果該數(shù)據(jù)可以被讀取,那么可以推測(cè)該數(shù)據(jù)可以在正常條件下讀取。如果數(shù)據(jù)不能通過質(zhì)量讀取操作讀取,那么在方框308處,擦除物理存儲(chǔ)器頁(yè)面并且過程返回到方框304以將新數(shù)據(jù)重新寫入到物理存儲(chǔ)器頁(yè)面。如果數(shù)據(jù)可以通過質(zhì)量讀取操作讀取,那么在方框310處,將物理存儲(chǔ)器頁(yè)面映射到邏輯存儲(chǔ)器頁(yè)面,并且在方框312處,擦除舊物理存儲(chǔ)器頁(yè)面(例如,先前已被映射到邏輯存儲(chǔ)器頁(yè)面的物理存儲(chǔ)器頁(yè)面)。在判定點(diǎn)314處,驗(yàn)證舊物理存儲(chǔ)器頁(yè)面是否已被成功地擦除。在實(shí)施例中,使用質(zhì)量讀取操作以確定物理存儲(chǔ)器頁(yè)面不再包含有效數(shù)據(jù)(例如,無法用于計(jì)算與存儲(chǔ)于物理存儲(chǔ)器頁(yè)面上的預(yù)計(jì)算的crc數(shù)據(jù)匹配的有效crc數(shù)據(jù)的數(shù)據(jù))來確認(rèn)成功擦除。如果未驗(yàn)證擦除,那么過程返回到方框312并且再次擦除舊數(shù)據(jù)。
如參考圖3所描述,當(dāng)有足夠的電力和時(shí)間可用以執(zhí)行上述步驟時(shí),可成功地執(zhí)行在智能卡中對(duì)存儲(chǔ)器的更新。如上所述,非接觸式通信允許智能卡在不需要與讀取器直接接觸的情況下與讀取器通信。因此,智能卡可以隨著智能卡和讀取器之間變化的分離程度(例如,2cm至12cm或相隔更遠(yuǎn))而被讀取。隨著分離增加,通過讀取器傳送到智能卡的電壓可降低,并且如果電壓足夠降低,那么智能卡可停止操作。在存儲(chǔ)器被更新時(shí),如果操作停止,那么該更新可能失敗。另外,可能通過與端斷開連接、與電源斷開連接、耗盡電池、通過用戶手動(dòng)復(fù)位或其它外部引起的干擾來中斷或擾亂操作。由于中斷和干擾產(chǎn)生的故障被稱為“撕裂事件”。如果出現(xiàn)撕裂事件,那么數(shù)據(jù)可被損壞。
圖4為示出在撕裂事件已發(fā)生之后四種可能的存儲(chǔ)器狀態(tài)的圖表。根據(jù)在哪個(gè)步驟,如相對(duì)于圖3所描述,出現(xiàn)撕裂事件,可出現(xiàn)圖4中四種存儲(chǔ)器狀態(tài)中的一種存儲(chǔ)器狀態(tài)。根據(jù)何時(shí)出現(xiàn)撕裂事件,存儲(chǔ)器可回退到存儲(chǔ)器開始更新之前或者可以重新開始存儲(chǔ)器的更新(例如,重新開始擦除舊物理存儲(chǔ)器頁(yè)面)。如果在新數(shù)據(jù)被編程到新物理存儲(chǔ)器頁(yè)面并且該新數(shù)據(jù)未被適當(dāng)編程時(shí)出現(xiàn)撕裂事件,那么如在象限402所示,數(shù)據(jù)可被回退以將智能卡存儲(chǔ)器恢復(fù)到可操作狀態(tài)(例如,其中存儲(chǔ)于存儲(chǔ)器中的數(shù)據(jù)可經(jīng)由質(zhì)量讀取操作正確地讀取的狀態(tài))。如果在新數(shù)據(jù)已被編程到新物理存儲(chǔ)器頁(yè)面之后,但是在指向邏輯存儲(chǔ)器頁(yè)面的另一物理存儲(chǔ)器頁(yè)面(例如,包含邏輯存儲(chǔ)器頁(yè)面的地址)被擦除之前出現(xiàn)撕裂事件,使得兩個(gè)物理存儲(chǔ)器頁(yè)面現(xiàn)在指向同一邏輯存儲(chǔ)器頁(yè)面,那么出現(xiàn)“沖突”。如果在開始擦除舊物理存儲(chǔ)器頁(yè)面之前出現(xiàn)沖突,那么如在象限404所示,由于新物理存儲(chǔ)器頁(yè)面和舊物理存儲(chǔ)器頁(yè)面可仍舊通過質(zhì)量讀取操作正確地讀取,可保持新物理存儲(chǔ)器頁(yè)面并且可執(zhí)行擦除舊物理存儲(chǔ)器頁(yè)面。如果在已經(jīng)開始擦除舊物理存儲(chǔ)器頁(yè)面之后出現(xiàn)沖突并且舊物理存儲(chǔ)器頁(yè)面不再可通過質(zhì)量讀取操作正確地讀取但未完全擦除,那么如在象限406所示,可保持新物理存儲(chǔ)器頁(yè)面并且可重新開始擦除舊物理存儲(chǔ)器頁(yè)面。在實(shí)施例中,智能卡的存儲(chǔ)器可遭受由于例如高溫或低溫或可破壞數(shù)據(jù)的強(qiáng)磁暴露而產(chǎn)生的干擾。干擾常常與撕裂事件和沖突一致。如果在已經(jīng)開始擦除舊物理存儲(chǔ)器頁(yè)面之后出現(xiàn)沖突而新物理存儲(chǔ)器頁(yè)面無法通過質(zhì)量讀取操作正確地讀取(例如,由于干擾),那么如在象限408所示,因?yàn)榕f物理存儲(chǔ)器頁(yè)面已經(jīng)被至少部分擦除,存儲(chǔ)器不能回退到舊物理存儲(chǔ)器頁(yè)面,且不能保持新物理存儲(chǔ)器頁(yè)面,因?yàn)樾挛锢泶鎯?chǔ)器頁(yè)面無法通過質(zhì)量讀取操作正確地讀取。
當(dāng)已發(fā)生撕裂事件或沖突時(shí),用于將存儲(chǔ)器恢復(fù)到可操作狀態(tài)的典型解決方案是利用額外的進(jìn)程標(biāo)志。圖5示出用于在撕裂事件之后使用進(jìn)程標(biāo)志恢復(fù)智能卡存儲(chǔ)器的已知技術(shù)。如圖5所示,第一存儲(chǔ)器位置的值(由第一列502示出)、第二存儲(chǔ)器位置的值(由第二列504示出)和進(jìn)程標(biāo)記(由第三列506示出)示出在如由y軸508指示的一段時(shí)間上。在圖5中示出的例子中,版本號(hào)和余額(例如,對(duì)于銀行賬戶或其它融資來源)存儲(chǔ)在每個(gè)存儲(chǔ)器位置處并且一個(gè)或多個(gè)標(biāo)志存儲(chǔ)在進(jìn)程標(biāo)志位置處。因此,需要至少三個(gè)存儲(chǔ)器位置實(shí)施該解決方案。起初,如在行510所示,在存儲(chǔ)器位置1處版本被設(shè)定成“n”并且余額被設(shè)定成“$30”,而在存儲(chǔ)器位置2處未設(shè)定(例如,版本被設(shè)定成0,并且余額被設(shè)定成$0)。還未設(shè)定進(jìn)程標(biāo)志。接下來,如在行512所示,開始更新存儲(chǔ)器位置2并且進(jìn)程標(biāo)志被設(shè)定以指示在智能卡上初始化的最后操作是對(duì)存儲(chǔ)器位置2進(jìn)行編程。在行514,存儲(chǔ)器位置2被更新以將版本設(shè)定成n+1并且將余額設(shè)定成$230。在行516,進(jìn)程標(biāo)志被設(shè)定以指示已經(jīng)開始擦除存儲(chǔ)器位置1。在行518,在存儲(chǔ)器位置1處版本號(hào)被重設(shè)成0并且余額也被重設(shè)成$0。在行520,進(jìn)程標(biāo)志也被重設(shè)。通過當(dāng)智能卡初始化(例如,在撕裂事件之后接收足夠的電壓通電)時(shí)檢查進(jìn)程標(biāo)志,讀取器和智能卡可易于確定如何將智能卡恢復(fù)到可操作狀態(tài)(例如,回退數(shù)據(jù)或保持新數(shù)據(jù)以及重新擦除舊數(shù)據(jù))。然而,分配用于進(jìn)程標(biāo)志的存儲(chǔ)器空間可需要智能卡被配置成具有額外的存儲(chǔ)器并且可需要額外寫入以設(shè)定和重設(shè)進(jìn)程標(biāo)志,這可產(chǎn)生顯著時(shí)間開銷。
根據(jù)本發(fā)明的實(shí)施例,公開了一種用于解決在更新存儲(chǔ)器(例如,智能卡的存儲(chǔ)器)時(shí)由撕裂事件引起的沖突的方法。在實(shí)施例中,該方法涉及基于版本信息從指向邏輯存儲(chǔ)器頁(yè)面的多個(gè)存儲(chǔ)器頁(yè)面選擇存儲(chǔ)器頁(yè)面,重新編程所選擇的存儲(chǔ)器頁(yè)面以及將所選擇的存儲(chǔ)器頁(yè)面映射到邏輯存儲(chǔ)器頁(yè)面。存儲(chǔ)器頁(yè)面指向由存儲(chǔ)器頁(yè)面中包含的邏輯地址指示的邏輯存儲(chǔ)器頁(yè)面。在實(shí)施例中,用通過正常讀取操作所獲得的數(shù)據(jù)將所選擇的存儲(chǔ)器頁(yè)面重新編程(例如,數(shù)據(jù)在當(dāng)前被編程到所選擇的存儲(chǔ)器頁(yè)面的數(shù)據(jù)上進(jìn)行編程而不需要首先擦除所選擇的存儲(chǔ)器頁(yè)面以便加強(qiáng)數(shù)據(jù)的可讀性)。因此,如果撕裂事件的出現(xiàn)干擾對(duì)物理存儲(chǔ)器頁(yè)面的編程,那么物理存儲(chǔ)器頁(yè)面可用比典型的抗撕裂解決方案所需要的縮短的時(shí)間開銷被重新編程并且映射到邏輯存儲(chǔ)器頁(yè)面。
圖6示出用于在根據(jù)本發(fā)明的實(shí)施例的智能卡的存儲(chǔ)器中更新邏輯存儲(chǔ)器頁(yè)面的技術(shù)。類似于以上圖5,第一存儲(chǔ)器位置的值(由第一列602示出)和第二存儲(chǔ)器位置的值(由第二列604示出)示出在如由y軸606指示的一段時(shí)間上。起初,在行610,在存儲(chǔ)器位置1處版本被設(shè)定成“n”并且余額被設(shè)定成“$30”,而在存儲(chǔ)器位置2處尚未設(shè)定。在行612,在存儲(chǔ)器位置2處版本被更新為“n+1”并且余額被更新為“$230”。在行614,存儲(chǔ)器位置1被擦除(例如,版本被設(shè)定成“0”并且余額被設(shè)定成“$0”)。不需要存儲(chǔ)進(jìn)程標(biāo)志的額外存儲(chǔ)器并且不需要更新進(jìn)程標(biāo)志的額外寫入。因此,更大量的智能卡存儲(chǔ)器可以被分配到數(shù)據(jù)存儲(chǔ)并且可以用更少的寫入操作執(zhí)行更新數(shù)據(jù)。
使用上面參考圖6描述的用于更新邏輯存儲(chǔ)器頁(yè)面的技術(shù),當(dāng)讀取器和智能卡再次進(jìn)入允許智能卡在撕裂事件之后再次上電的接近度時(shí),讀取器和智能卡基于物理存儲(chǔ)器頁(yè)面是否可經(jīng)由質(zhì)量讀取操作正確地讀取,確定執(zhí)行什么操作(例如,保持新物理存儲(chǔ)器頁(yè)面,回退到舊物理存儲(chǔ)器頁(yè)面或重新編程新物理存儲(chǔ)器頁(yè)面)。例如,如果新物理存儲(chǔ)器頁(yè)面可經(jīng)由質(zhì)量讀取操作而正確地讀取,那么將保持該新物理存儲(chǔ)器頁(yè)面并且將繼續(xù)擦除(如由以上圖4所示)該舊物理存儲(chǔ)器頁(yè)面??商鎿Q的是,如果該新物理存儲(chǔ)器頁(yè)面不能經(jīng)由質(zhì)量讀取操作正確地讀取,那么可重新編程該新物理存儲(chǔ)器頁(yè)面,如果數(shù)據(jù)可利用正常讀取操作從物理存儲(chǔ)器頁(yè)面讀取或如果該舊物理存儲(chǔ)器頁(yè)面仍舊可經(jīng)由質(zhì)量讀取操作正確地讀取,那么智能卡存儲(chǔ)器可回退到該舊物理存儲(chǔ)器頁(yè)面。
圖7為用于解決在更新根據(jù)本發(fā)明的實(shí)施例的智能卡存儲(chǔ)器時(shí)由撕裂事件引起的沖突的技術(shù)的流程圖。在上面參考圖3的描述任何步驟期間,在出現(xiàn)撕裂事件時(shí)可執(zhí)行圖7中所描繪的步驟。當(dāng)智能卡初始化時(shí),智能卡讀取包含在每個(gè)物理存儲(chǔ)器頁(yè)面內(nèi)的邏輯地址。在判定點(diǎn)702處,在智能卡已結(jié)束初始化之后,該智能卡確定多個(gè)物理存儲(chǔ)器頁(yè)面是否包含同一邏輯地址(例如,指向同一邏輯存儲(chǔ)器頁(yè)面)。在實(shí)施例中,每個(gè)物理存儲(chǔ)器頁(yè)面包含該物理存儲(chǔ)器頁(yè)面應(yīng)映射到的邏輯存儲(chǔ)器頁(yè)面的地址。如果每個(gè)邏輯存儲(chǔ)器頁(yè)面的地址都包含在僅一個(gè)物理存儲(chǔ)器頁(yè)面中,那么將不會(huì)出現(xiàn)沖突并且該技術(shù)退出。如果已發(fā)生沖突,那么在方框704處,基于物理存儲(chǔ)器頁(yè)面的版本信息選擇該物理存儲(chǔ)器頁(yè)面。在實(shí)施例中,還基于質(zhì)量讀取操作的性能選擇該物理存儲(chǔ)器頁(yè)面。例如,如果頁(yè)面不能通過質(zhì)量讀取操作正確地讀取,那么可不選擇該頁(yè)面并且可以替代地選擇可以通過質(zhì)量讀取操作正確地讀取的先前版本的頁(yè)面。在實(shí)施例中,該物理存儲(chǔ)器頁(yè)面是指向同一邏輯存儲(chǔ)器頁(yè)面(例如,包含該邏輯存儲(chǔ)器頁(yè)面的地址)和版本信息的多個(gè)物理存儲(chǔ)器頁(yè)面的部分,該版本信息可存儲(chǔ)于物理存儲(chǔ)器頁(yè)面的xword中,指示哪個(gè)物理存儲(chǔ)器頁(yè)面最近被編程。例如,頁(yè)面的第一重復(fù)可以是版本號(hào)“1”并且第二重復(fù)可以是版本號(hào)“2”??梢栽谶B續(xù)回路(例如,1<2<3<0<1)中使用有限的標(biāo)號(hào)列表(例如,1、2、3和0)以便使用有限數(shù)目的位元指示頁(yè)面版本。在判定點(diǎn)706處,智能卡確定所選擇的物理存儲(chǔ)器頁(yè)面是否可以通過質(zhì)量讀取操作驗(yàn)證。在實(shí)施例中,如果在通過質(zhì)量讀取操作讀取時(shí)可以計(jì)算頁(yè)面的crc數(shù)據(jù)并且所計(jì)算的crc數(shù)據(jù)與存儲(chǔ)于該頁(yè)面中(例如,在xword中)的crc數(shù)據(jù)匹配,那么可以通過質(zhì)量讀取操作驗(yàn)證頁(yè)面。在實(shí)施例中,該物理存儲(chǔ)器頁(yè)面可以通過多于一個(gè)質(zhì)量讀取操作(例如,在.1v、.2v處和在.5v處)來驗(yàn)證。如果物理存儲(chǔ)器頁(yè)面可通過質(zhì)量讀取來驗(yàn)證,那么在方框708處,物理存儲(chǔ)器頁(yè)面被映射到邏輯存儲(chǔ)器頁(yè)面,并且擦除指向該邏輯存儲(chǔ)器頁(yè)面的所有其它物理存儲(chǔ)器頁(yè)面。如果不能驗(yàn)證該物理存儲(chǔ)器頁(yè)面,那么在方框710處,基于版本信息選擇不同的物理頁(yè)面。在判定點(diǎn)712處,確定不同的物理存儲(chǔ)器頁(yè)面是否可以用質(zhì)量讀取操作驗(yàn)證。如果可以驗(yàn)證不同的物理存儲(chǔ)器頁(yè)面,那么在方框708處,不同的物理存儲(chǔ)器頁(yè)面被映射到邏輯存儲(chǔ)器頁(yè)面,并且擦除指向該邏輯存儲(chǔ)器頁(yè)面的所有其它物理存儲(chǔ)器頁(yè)面。如果不能驗(yàn)證不同的物理存儲(chǔ)器頁(yè)面,那么在方框714處,選擇初始被選擇的物理存儲(chǔ)器頁(yè)面(例如,在方框704處選擇的物理存儲(chǔ)器頁(yè)面)。在方框716處,通過對(duì)物理存儲(chǔ)器頁(yè)面執(zhí)行正常的讀取操作計(jì)算物理存儲(chǔ)器頁(yè)面的crc數(shù)據(jù)。在判定點(diǎn)718處,將所計(jì)算的crc數(shù)據(jù)與存儲(chǔ)于物理存儲(chǔ)器頁(yè)面上(例如,在xword中)的crc數(shù)據(jù)進(jìn)行比較。如果crc數(shù)據(jù)不匹配,那么在方框722處,選擇不同的物理存儲(chǔ)器頁(yè)面,并且在方框724處,通過對(duì)不同的物理存儲(chǔ)器頁(yè)面執(zhí)行正常讀取操作來計(jì)算不同的物理存儲(chǔ)器頁(yè)面的crc數(shù)據(jù)。在判定點(diǎn)726處,將不同的物理存儲(chǔ)器頁(yè)面的所計(jì)算crc數(shù)據(jù)與存儲(chǔ)于物理存儲(chǔ)器頁(yè)面上(例如,在xword中)的crc數(shù)據(jù)進(jìn)行比較。如果crc數(shù)據(jù)并不匹配,那么如在方框728所指示,出現(xiàn)錯(cuò)誤并且邏輯存儲(chǔ)器頁(yè)面是不可恢復(fù)的。如果在判定點(diǎn)718處或在判定點(diǎn)726處,crc數(shù)據(jù)并不匹配,那么在方框720處,用在計(jì)算物理存儲(chǔ)器頁(yè)面的crc數(shù)據(jù)時(shí)通過正常讀取操作從物理存儲(chǔ)器頁(yè)面讀取的數(shù)據(jù)重新編程物理存儲(chǔ)器頁(yè)面,并且在方框708處,物理存儲(chǔ)器頁(yè)面被映射到邏輯存儲(chǔ)器頁(yè)面,并且擦除指向該邏輯存儲(chǔ)器頁(yè)面的所有其它物理存儲(chǔ)器頁(yè)面。在實(shí)施例中,可在每個(gè)撕裂事件之后重復(fù)該過程,直到具有最新版本號(hào)的物理存儲(chǔ)器頁(yè)面可以通過質(zhì)量讀取操作驗(yàn)證。
如參考圖7的方框704和方框710所描述,版本信息和crc數(shù)據(jù)可以從物理存儲(chǔ)器頁(yè)面的xword獲得。圖8為根據(jù)本發(fā)明的實(shí)施例的xword的配置的圖示。如圖8所示,xword包括物理存儲(chǔ)器頁(yè)面應(yīng)映射到的邏輯存儲(chǔ)器頁(yè)面地址、用于物理存儲(chǔ)器頁(yè)面的版本信息、有效性檢查標(biāo)記以及其它雜項(xiàng)信息。在實(shí)施例中,邏輯存儲(chǔ)器頁(yè)面地址的寬度等于在智能卡存儲(chǔ)器中尋址存儲(chǔ)器行所需要的位元數(shù)。版本信息可以是兩位元字段,該兩位元字段包括例如版本號(hào)(例如,0<1<2<3<0<1等)或時(shí)戳。在實(shí)施例中,可以通過專用標(biāo)志或通過在物理存儲(chǔ)器頁(yè)面內(nèi)編碼來處理的有效性檢查標(biāo)志可被配置成區(qū)分開已擦除的頁(yè)面和具有零內(nèi)容的頁(yè)面,但是也可以使用其它方法(例如,錯(cuò)誤校正譯碼編碼、crc編碼、m中取n編碼等)進(jìn)行區(qū)分。例如,如果第一時(shí)間數(shù)據(jù)被寫入到物理存儲(chǔ)器頁(yè)面(版本被設(shè)定成0并且余額被設(shè)定成$0),那么該物理存儲(chǔ)器頁(yè)面將看起來像與已擦除的頁(yè)面(例如,版本=0并且余額=$0)一致。因此,有效性檢查可以用于確定該頁(yè)面是有效的還是已擦除的。xword亦可包括雜項(xiàng)信息,例如用于xword自身的crc數(shù)據(jù)。在實(shí)施例中,xword另外包括在同一頁(yè)面內(nèi)的其它字的crc數(shù)據(jù)。雖然參考單個(gè)xword描述上述字段,但是多個(gè)xword、字或存儲(chǔ)區(qū)可以用于在頁(yè)面內(nèi)直接編碼字段和/或在單獨(dú)頁(yè)面內(nèi)間接編碼上述字段。在另一實(shí)施例中,在上述字段內(nèi)的信息可從xword以外的頁(yè)面數(shù)據(jù)獲得。
在實(shí)施例中,當(dāng)在撕裂事件之后重新初始化時(shí),用于解決在更新智能卡存儲(chǔ)器時(shí)由撕裂事件引起的沖突的上述技術(shù)確定哪些物理存儲(chǔ)器頁(yè)面是有效的(例如,被編程且不僅僅被擦除或未使用的)。在實(shí)施例中,可對(duì)智能卡存儲(chǔ)器中的物理存儲(chǔ)器頁(yè)面執(zhí)行有效性檢查以確定哪些物理存儲(chǔ)器頁(yè)面是有效的。如上參考圖8的xword所述,可通過評(píng)估每個(gè)物理存儲(chǔ)器頁(yè)面的有效性檢查標(biāo)記來執(zhí)行有效性檢查。也可以在已經(jīng)讀取物理存儲(chǔ)器頁(yè)面之后(例如,通過正常的讀取操作),通過驗(yàn)證在物理存儲(chǔ)器頁(yè)面的xword中的crc數(shù)據(jù)來執(zhí)行有效性檢查。例如,如果物理存儲(chǔ)器頁(yè)面的crc數(shù)據(jù)是不正確的(例如,從物理存儲(chǔ)器頁(yè)面的數(shù)據(jù)計(jì)算的crc數(shù)據(jù)與存儲(chǔ)于物理存儲(chǔ)器頁(yè)面的xword中的先前計(jì)算的crc數(shù)據(jù)不匹配),那么該物理存儲(chǔ)器頁(yè)面將測(cè)定為不是有效的。也可以設(shè)想用于確定物理存儲(chǔ)器頁(yè)面有效性的其它技術(shù)。
在實(shí)施例中,在確定物理存儲(chǔ)器的哪些頁(yè)面有效之后,智能卡和/或智能卡讀取器確定是否已發(fā)生撕裂事件。然而,可發(fā)生撕裂事件而不會(huì)導(dǎo)致沖突,并因此將不會(huì)觸發(fā)上述額外步驟(例如,重新編程物理存儲(chǔ)器頁(yè)面)。在實(shí)施例中,可通過讀取被編程到作為智能卡存儲(chǔ)器中的邏輯存儲(chǔ)器頁(yè)面存儲(chǔ)的系統(tǒng)頁(yè)面的數(shù)據(jù)來確定撕裂事件的出現(xiàn)。在實(shí)施例中,為了確定是否已發(fā)生撕裂事件,可在開始更新邏輯存儲(chǔ)器頁(yè)面時(shí)更新該系統(tǒng)頁(yè)面并且在更新完成時(shí)再次更新該系統(tǒng)頁(yè)面。因此,如果系統(tǒng)頁(yè)面指示已經(jīng)開始本地存儲(chǔ)器頁(yè)面的更新,但是并未指示更新完成,可以確定撕裂事件已發(fā)生。
在撕裂事件發(fā)生之后,可能難以確定應(yīng)在哪里恢復(fù)更新智能卡存儲(chǔ)器的操作(例如,編程新數(shù)據(jù)、擦除舊數(shù)據(jù)或重新編程新數(shù)據(jù))。進(jìn)程標(biāo)志可需要額外的存儲(chǔ)和寫入動(dòng)作。根據(jù)本發(fā)明的實(shí)施例,當(dāng)智能卡經(jīng)由正常讀取操作初始化,且通過執(zhí)行質(zhì)量讀取操作和重新編程不能通過質(zhì)量讀取操作正確地讀取的物理存儲(chǔ)器頁(yè)面來進(jìn)行解析時(shí),可以識(shí)別物理存儲(chǔ)器頁(yè)面之間的沖突。因此,不需要用于過程標(biāo)志的額外存儲(chǔ)器并且也不需要更新過程標(biāo)志的額外寫入操作。
在實(shí)施例中,可通過集成電路促進(jìn)如上所述的存儲(chǔ)器頁(yè)面的更新。集成電路可包括上面參考圖1描述的元件,但是可不包括一些元件而包括其它元件。
雖然以特定次序示出和描述了本文中的一個(gè)或多個(gè)方法的操作,但可以更改每個(gè)方法的操作次序,使得可以相反次序執(zhí)行某些操作,或使得可至少部分地與其它操作同時(shí)執(zhí)行某些操作。在另一個(gè)實(shí)施例中,可以間斷的和/或交替的方式實(shí)施不同操作的指令或子操作。
還應(yīng)當(dāng)注意的是,可以使用通過計(jì)算機(jī)執(zhí)行的存儲(chǔ)于非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的軟件指令實(shí)施該方法的操作中的至少一些操作。作為一個(gè)例子,非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的實(shí)施例包括計(jì)算機(jī)可用存儲(chǔ)介質(zhì),該計(jì)算機(jī)可用存儲(chǔ)介質(zhì)被配置成存儲(chǔ)當(dāng)在計(jì)算機(jī)上執(zhí)行時(shí)使得該計(jì)算機(jī)執(zhí)行如本文所述的操作的計(jì)算機(jī)可讀程序。
此外,本發(fā)明的至少部分的實(shí)施例可以采用從計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可存取的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)提供程序代碼用于由或結(jié)合計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用。出于此描述的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是可以包含、存儲(chǔ)、傳達(dá)、傳播或傳送由指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用或結(jié)合指令執(zhí)行系統(tǒng)、設(shè)備或裝置的程序的任何設(shè)備。
計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是電子、磁性、光學(xué)、電磁、紅外或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的例子包含半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移動(dòng)計(jì)算機(jī)磁盤、隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、硬磁盤和光盤。目前的光盤例子包括具有只讀存儲(chǔ)器的壓縮光盤(cd-rom)、具有讀/寫的壓縮光盤(cd-r/w)、數(shù)字視頻光盤(dvd)和藍(lán)光光盤。
在以上描述中,提供各種實(shí)施例的具體細(xì)節(jié)。然而,可以在并沒有這些具體細(xì)節(jié)的全部細(xì)節(jié)的情況下實(shí)施一些實(shí)施例。在其它情況下,為了簡(jiǎn)潔和清晰起見,除了能夠?qū)崿F(xiàn)本發(fā)明的各種實(shí)施例的之外不再詳細(xì)描述某些方法、操作步驟、部件、結(jié)構(gòu)和/或功能。
雖然已經(jīng)描述和例示了本發(fā)明的具體實(shí)施例,但是本發(fā)明不限于如此描述和例示的部分的具體形式或布置。本發(fā)明的范圍將由在此所附的權(quán)利要求書及其等效物限定。