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