CN107239229A - 用于执行数据更新的方法 - Google Patents
用于执行数据更新的方法 Download PDFInfo
- Publication number
- CN107239229A CN107239229A CN201710186059.8A CN201710186059A CN107239229A CN 107239229 A CN107239229 A CN 107239229A CN 201710186059 A CN201710186059 A CN 201710186059A CN 107239229 A CN107239229 A CN 107239229A
- Authority
- CN
- China
- Prior art keywords
- memory pages
- page
- locked memory
- locked
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K1/00—Methods or arrangements for marking the record carrier in digital fashion
- G06K1/12—Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
- G06K1/128—Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by electric registration, e.g. electrolytic, spark erosion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
在一实施例中,公开一种用于重新编程存储器的方法。在所述实施例中,该方法涉及基于版本信息选择存储器页面,以及使用所述存储器页面的循环冗余检查(CRC)数据重新编程所选择的存储器页面。
Description
技术领域
本发明涉及用于执行数据更新的方法。
背景技术
许多装置利用非易失性存储器存储稍后被更新或变化的信息。例如,智能卡技术在小型嵌入集成电路(例如,嵌入于口袋型卡中)中利用非易失性存储器定期存储经更新的信息,该经更新的信息允许高级的功能,例如支付、数据存储或验证。通常,为了在此类装置(例如,智能卡、预付自动售货机、滑雪装置等)上更新储存于非易失性存储器中的信息,该装置通过使用接触通信或非接触式通信中的任一种与数据源(例如,智能卡读取器)进行通信。例如,当智能卡插入到智能卡读取器中时或通过使用RF感应或近场通信与智能卡读取器通信而不需要接触,该智能卡可与智能卡读取器通信。
发明内容
在实施例中,公开了一种用于解决在更新存储器时由撕裂事件引起的冲突的方法。在实施例中,该方法涉及基于版本信息从指向逻辑存储器页面的多个存储器页面选择存储器页面,重新编程所选择的存储器页面以及将所选择的存储器页面映射到逻辑存储器页面。
在第二实施例中,基于在质量读取操作下的性能另外选择存储器页面。
在另一实施例中,该方法另外包括使用通过对页面执行正常读取操作获得的针对存储器页面的循环冗余检查(CRC)数据重新编程所选择的存储器页面。
在另一实施例中,如果针对所选择的存储器页面(第一存储器页面)的CRC数据不能通过正常的读取操作获得,那么从指向逻辑存储器页面的多个存储器页面选择第二存储器页面,并且使用通过对第二存储器页面执行正常的读取操作获得的CRC数据重新编程第二存储器页面。
在另一实施例中,用质量读取操作验证所选择的存储器页面,并且如果不能验证该页面,那么重新编程该存储器页面。
在另一实施例中,该方法另外包括通过在选择存储器页面之前读取被编程到系统页面的数据来确定是否已发生撕裂事件。
在另一实施例中,在重新编程存储器页面之前执行有效性检查。
在另一实施例中,通过评估存储于存储器页面的XWORD中的有效性检查标志来执行有效性检查。
在另一实施例中,通过将从存储器页面计算的CRC数据与存储于存储器页面的XWORD中的CRC数据进行比较来执行有效性检查。
在另一实施例中,公开了一种非暂时性计算机可读存储介质。在实施例中,非暂时性计算机可读存储介质包括在由处理器执行时致使处理器执行以下步骤的指令,该步骤包括:基于版本信息从指向逻辑存储器页面的多个存储器页面选择存储器页面,重新编程所选择的存储器页面以及将所选择的存储器页面映射到逻辑存储器页面。
在另一实施例中,基于在质量读取操作下的性能另外选择存储器页面。
在另一实施例中,存储器页面选自被映射到同一逻辑存储器页面的多个物理存储器页面。
在另一实施例中,非暂时性计算机可读存储介质另外包括用于使用通过对页面执行正常读取操作获得的循环冗余检查数据重新编程所选择的存储器页面的指令。
在另一实施例中,用质量读取操作验证所选择的存储器页面,并且如果不能验证该页面,那么重新编程该存储器页面。
在另一实施例中,如果针对所选择的存储器页面(第一存储器页面)的循环冗余检查数据不能通过正常读取操作获得,那么从指向逻辑存储器页面的多个存储器页面选择第二存储器页面,并且使用通过对第二存储器页面执行正常读取操作获得的循环冗余检查数据重新编程该第二存储器页面。
在另一实施例中,通过在选择存储器页面之前读取被编程到系统页面的数据来确定撕裂事件的发生。
在另一实施例中,在重新编程存储器页面之前执行有效性检查。
在另一实施例中,通过评估存储于存储器页面的XWORD中的有效性检查标志来执行有效性检查。
在另一实施例中,通过将从存储器页面计算的CRC数据与存储于存储器页面的XWORD中的CRC数据进行比较来执行有效性检查。
在另一实施例中,公开了一种包括处理器和存储器的集成电路。在实施例中,存储器包括在由处理器执行时执行以下步骤的指令,所述步骤涉及:基于版本信息从指向逻辑存储器页面的多个存储器页面选择存储器页面,重新编程所选择的存储器页面以及将所选择的存储器页面映射到逻辑存储器页面。
通过以下结合附图的详细描述,本发明的实施例的其它方面和优点将变得显而易见。
附图说明
图1为典型的非接触式智能卡的框图。
图2示出物理存储器页面到逻辑存储器页面的映射。
图3为用于更新智能卡的存储器的一系列步骤的流程图。
图4为示出在撕裂事件已发生之后四种可能的存储器状态的图表。
图5示出用于在撕裂事件之后使用进程标志恢复智能卡存储器的已知技术。
图6示出用于在根据本发明的实施例的智能卡的存储器中更新逻辑存储器页面的技术。
图7为用于解决在更新根据本发明的实施例的智能卡存储器时由撕裂事件引起的冲突的技术的流程图。
图8为根据本发明的实施例的XWORD的配置的图示。
贯穿描述,可以使用类似的参考标号来识别类似的元件。
具体实施方式
将容易理解,如本文中大体描述且在附图中示出的实施例的组件可以用各种各样不同的配置来布置和设计。因此,以下如图中所表示的各种实施例的更详细描述并非意图限制本公开的范围,而仅仅是表示各种实施例。虽然在附图中呈现了实施例的各个方面,但是除非特别说明,否则附图未必按比例绘制。
在不脱离本发明精神或基本特征的情况下,可以其它特定形式实施本发明。所描述的实施例应视为在所有方面均仅为说明性而非限制性的。因此,本发明的范围由所附权利要求书而不是由此具体实施方式来指示。在权利要求书等效物的含义和范围内的所有变化均涵盖在权利要求书的范围内。
贯穿本说明书对特征、优点或类似语言的涉及并不暗示可以本发明实现的所有特征和优点都应该在或在本发明的任何单一实施例中。相反地,涉及特征和优点的语言应理解成意指结合实施例描述的特定特征、优点或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书对特征和优点的论述以及类似语言可(但未必)涉及同一实施例。
此外,本发明的所描述的特征、优点和特性可以任何合适方式在一个或多个实施例中组合。相关领域的技术人员应认识到,鉴于本文的描述,本发明可以在没有特定实施例的具体特征或优点中的一个或多个具体特征或优点的情况下实践。在其它情况下,可在某些实施例中辨识可不存在于本发明的所有实施例中的额外特征和优点。
贯穿说明书对“一个实施例”、“实施例”或类似语言的涉及意指结合所指示实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,本说明书通篇的短语“在一个实施例中”、“在实施例中”和类似语言可以(但未必)全部参考同一个实施例。
为简单起见,贯穿本说明书描述的本发明的所描述的特征、优点和特性被描述为在智能卡内实施,但是可在利用非易失性存储器存储和更新信息的其它装置中实施。
图1为典型的非接触式智能卡100的框图。该智能卡包括CPU 102、由ROM 104、RAM106和EEPROM/闪存108组成的存储器,循环冗余检查器(CRC)110、加密协处理器112、真随机数生成器114和与RF接口118介接的通用异步接收器/发射器(UART)116、RF天线130、安全传感器120、通电复位122、电压调节器124、时钟输入滤波器126以及复位生成器128。在其它实施例中,智能卡可以被智能电话仿真或可以嵌入于较大装置(例如,移动电话或较大电子装置)中。
存储于智能卡的存储器中的数据可通过将数据写入到存储器的物理页面,并且然后将该页面映射到逻辑存储器页面而编程和更新。在实施例中,物理存储器页面为由物理地址(例如,在装置的主存储器中的实地址)标识的存储器块并且逻辑存储器页面为可通过执行应用来使用的虚拟页面。将物理存储器页面映射到逻辑存储器页面,以更新在逻辑存储器页面上存储的数据。图2示出物理存储器页面202到逻辑存储器页面204的映射。当需要用新数据更新逻辑存储器页面时,新数据可被编程到指向逻辑存储器页面的新的物理存储器页面(例如,包含逻辑存储器页面的地址)。在数据已经写入到物理存储器页面之后,物理存储器页面可被映射到由物理存储器页面中所包含的地址指示的逻辑存储器页面。例如,如图2所示,物理存储器页面17C0FE被映射到逻辑存储器页面02FE。当新数据被编程到物理存储器页面17C5FA时,物理存储器页面17C5FA被映射到逻辑存储器页面02FE,而物理存储器页面17C0FE被擦除并且未被映射。在实施例中,在未映射当前被映射到逻辑存储器页面的物理存储器页面之前,具有新数据的物理存储器页面被映射到逻辑存储器页面,但是该操作可以以相反次序执行。在实施例中,每次只有一个物理存储器页面可被映射逻辑存储器页面(或在该页面中的一个正被擦除时,两个物理存储器页面可被映射到逻辑存储器页面),但是其它配置是可能的。在实施例中,可通过将物理存储器页面和逻辑存储器页面之间的链接记录到映射表中来促进物理存储器页面到逻辑存储器页面的映射。例如,当更新逻辑存储器页面时,未链接在映射表中的新物理存储器页面(例如,先前未使用或擦除的页面)可用经更新的数据编程,并且将新物理存储器页面链接到逻辑存储器页面的条目可被添加到映射表,同时可以从映射表中除去将旧物理存储器页面链接到逻辑存储器页面的条目,并且可以擦除旧物理存储器页面。
通常,为了更新智能卡的存储器,可执行一系列步骤。图3为用于更新智能卡的存储器的一系列步骤的流程图。在方框302处,将以待被编程到存储器的新数据发送到智能卡。在方框304处,将新数据编程到智能卡存储器中的物理存储器页面。物理存储器页面可以是空白物理存储器页面(例如,先前还未有数据被编程到其上的页面)或物理存储器页面可以是先前已经被编程,但是不再需要编程(例如,不需要映射到逻辑存储器页面)的物理存储器页面。在判定点306处,确定被编程到物理存储器页面的数据是否可通过质量读取操作正确地读取。在实施例中,当信元特性(例如,翻转位元的数目、信元漂移或电压)超出通过正常读取操作正确读取的数据所需要的那些特性时,数据可通过质量读取操作正确地读取,并且从该数据计算的CRC数据与存储于物理存储器页面上的预计算的CRC数据匹配。例如,如果对于正常读取的电源电压为5V,那么质量读取操作可使用只有3V的电源电压。在实施例中,质量读取操作意欲在不利条件(例如智能卡和智能卡读取器之间的大距离或智能卡和智能卡读取器之间的其它干扰)下模拟读取操作。因此,执行质量读取操作以确定被编程到智能卡的数据可以在不利条件下读取,并且如果该数据可以被读取,那么可以推测该数据可以在正常条件下读取。如果数据不能通过质量读取操作读取,那么在方框308处,擦除物理存储器页面并且过程返回到方框304以将新数据重新写入到物理存储器页面。如果数据可以通过质量读取操作读取,那么在方框310处,将物理存储器页面映射到逻辑存储器页面,并且在方框312处,擦除旧物理存储器页面(例如,先前已被映射到逻辑存储器页面的物理存储器页面)。在判定点314处,验证旧物理存储器页面是否已被成功地擦除。在实施例中,使用质量读取操作以确定物理存储器页面不再包含有效数据(例如,无法用于计算与存储于物理存储器页面上的预计算的CRC数据匹配的有效CRC数据的数据)来确认成功擦除。如果未验证擦除,那么过程返回到方框312并且再次擦除旧数据。
如参考图3所描述,当有足够的电力和时间可用以执行上述步骤时,可成功地执行在智能卡中对存储器的更新。如上所述,非接触式通信允许智能卡在不需要与读取器直接接触的情况下与读取器通信。因此,智能卡可以随着智能卡和读取器之间变化的分离程度(例如,2cm至12cm或相隔更远)而被读取。随着分离增加,通过读取器传送到智能卡的电压可降低,并且如果电压足够降低,那么智能卡可停止操作。在存储器被更新时,如果操作停止,那么该更新可能失败。另外,可能通过与端断开连接、与电源断开连接、耗尽电池、通过用户手动复位或其它外部引起的干扰来中断或扰乱操作。由于中断和干扰产生的故障被称为“撕裂事件”。如果出现撕裂事件,那么数据可被损坏。
图4为示出在撕裂事件已发生之后四种可能的存储器状态的图表。根据在哪个步骤,如相对于图3所描述,出现撕裂事件,可出现图4中四种存储器状态中的一种存储器状态。根据何时出现撕裂事件,存储器可回退到存储器开始更新之前或者可以重新开始存储器的更新(例如,重新开始擦除旧物理存储器页面)。如果在新数据被编程到新物理存储器页面并且该新数据未被适当编程时出现撕裂事件,那么如在象限402所示,数据可被回退以将智能卡存储器恢复到可操作状态(例如,其中存储于存储器中的数据可经由质量读取操作正确地读取的状态)。如果在新数据已被编程到新物理存储器页面之后,但是在指向逻辑存储器页面的另一物理存储器页面(例如,包含逻辑存储器页面的地址)被擦除之前出现撕裂事件,使得两个物理存储器页面现在指向同一逻辑存储器页面,那么出现“冲突”。如果在开始擦除旧物理存储器页面之前出现冲突,那么如在象限404所示,由于新物理存储器页面和旧物理存储器页面可仍旧通过质量读取操作正确地读取,可保持新物理存储器页面并且可执行擦除旧物理存储器页面。如果在已经开始擦除旧物理存储器页面之后出现冲突并且旧物理存储器页面不再可通过质量读取操作正确地读取但未完全擦除,那么如在象限406所示,可保持新物理存储器页面并且可重新开始擦除旧物理存储器页面。在实施例中,智能卡的存储器可遭受由于例如高温或低温或可破坏数据的强磁暴露而产生的干扰。干扰常常与撕裂事件和冲突一致。如果在已经开始擦除旧物理存储器页面之后出现冲突而新物理存储器页面无法通过质量读取操作正确地读取(例如,由于干扰),那么如在象限408所示,因为旧物理存储器页面已经被至少部分擦除,存储器不能回退到旧物理存储器页面,且不能保持新物理存储器页面,因为新物理存储器页面无法通过质量读取操作正确地读取。
当已发生撕裂事件或冲突时,用于将存储器恢复到可操作状态的典型解决方案是利用额外的进程标志。图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,进程标志也被重设。通过当智能卡初始化(例如,在撕裂事件之后接收足够的电压通电)时检查进程标志,读取器和智能卡可易于确定如何将智能卡恢复到可操作状态(例如,回退数据或保持新数据以及重新擦除旧数据)。然而,分配用于进程标志的存储器空间可需要智能卡被配置成具有额外的存储器并且可需要额外写入以设定和重设进程标志,这可产生显著时间开销。
根据本发明的实施例,公开了一种用于解决在更新存储器(例如,智能卡的存储器)时由撕裂事件引起的冲突的方法。在实施例中,该方法涉及基于版本信息从指向逻辑存储器页面的多个存储器页面选择存储器页面,重新编程所选择的存储器页面以及将所选择的存储器页面映射到逻辑存储器页面。存储器页面指向由存储器页面中包含的逻辑地址指示的逻辑存储器页面。在实施例中,用通过正常读取操作所获得的数据将所选择的存储器页面重新编程(例如,数据在当前被编程到所选择的存储器页面的数据上进行编程而不需要首先擦除所选择的存储器页面以便加强数据的可读性)。因此,如果撕裂事件的出现干扰对物理存储器页面的编程,那么物理存储器页面可用比典型的抗撕裂解决方案所需要的缩短的时间开销被重新编程并且映射到逻辑存储器页面。
图6示出用于在根据本发明的实施例的智能卡的存储器中更新逻辑存储器页面的技术。类似于以上图5,第一存储器位置的值(由第一列602示出)和第二存储器位置的值(由第二列604示出)示出在如由y轴606指示的一段时间上。起初,在行610,在存储器位置1处版本被设定成“n”并且余额被设定成“$30”,而在存储器位置2处尚未设定。在行612,在存储器位置2处版本被更新为“n+1”并且余额被更新为“$230”。在行614,存储器位置1被擦除(例如,版本被设定成“0”并且余额被设定成“$0”)。不需要存储进程标志的额外存储器并且不需要更新进程标志的额外写入。因此,更大量的智能卡存储器可以被分配到数据存储并且可以用更少的写入操作执行更新数据。
使用上面参考图6描述的用于更新逻辑存储器页面的技术,当读取器和智能卡再次进入允许智能卡在撕裂事件之后再次上电的接近度时,读取器和智能卡基于物理存储器页面是否可经由质量读取操作正确地读取,确定执行什么操作(例如,保持新物理存储器页面,回退到旧物理存储器页面或重新编程新物理存储器页面)。例如,如果新物理存储器页面可经由质量读取操作而正确地读取,那么将保持该新物理存储器页面并且将继续擦除(如由以上图4所示)该旧物理存储器页面。可替换的是,如果该新物理存储器页面不能经由质量读取操作正确地读取,那么可重新编程该新物理存储器页面,如果数据可利用正常读取操作从物理存储器页面读取或如果该旧物理存储器页面仍旧可经由质量读取操作正确地读取,那么智能卡存储器可回退到该旧物理存储器页面。
图7为用于解决在更新根据本发明的实施例的智能卡存储器时由撕裂事件引起的冲突的技术的流程图。在上面参考图3的描述任何步骤期间,在出现撕裂事件时可执行图7中所描绘的步骤。当智能卡初始化时,智能卡读取包含在每个物理存储器页面内的逻辑地址。在判定点702处,在智能卡已结束初始化之后,该智能卡确定多个物理存储器页面是否包含同一逻辑地址(例如,指向同一逻辑存储器页面)。在实施例中,每个物理存储器页面包含该物理存储器页面应映射到的逻辑存储器页面的地址。如果每个逻辑存储器页面的地址都包含在仅一个物理存储器页面中,那么将不会出现冲突并且该技术退出。如果已发生冲突,那么在方框704处,基于物理存储器页面的版本信息选择该物理存储器页面。在实施例中,还基于质量读取操作的性能选择该物理存储器页面。例如,如果页面不能通过质量读取操作正确地读取,那么可不选择该页面并且可以替代地选择可以通过质量读取操作正确地读取的先前版本的页面。在实施例中,该物理存储器页面是指向同一逻辑存储器页面(例如,包含该逻辑存储器页面的地址)和版本信息的多个物理存储器页面的部分,该版本信息可存储于物理存储器页面的XWORD中,指示哪个物理存储器页面最近被编程。例如,页面的第一重复可以是版本号“1”并且第二重复可以是版本号“2”。可以在连续回路(例如,1<2<3<0<1)中使用有限的标号列表(例如,1、2、3和0)以便使用有限数目的位元指示页面版本。在判定点706处,智能卡确定所选择的物理存储器页面是否可以通过质量读取操作验证。在实施例中,如果在通过质量读取操作读取时可以计算页面的CRC数据并且所计算的CRC数据与存储于该页面中(例如,在XWORD中)的CRC数据匹配,那么可以通过质量读取操作验证页面。在实施例中,该物理存储器页面可以通过多于一个质量读取操作(例如,在.1V、.2V处和在.5V处)来验证。如果物理存储器页面可通过质量读取来验证,那么在方框708处,物理存储器页面被映射到逻辑存储器页面,并且擦除指向该逻辑存储器页面的所有其它物理存储器页面。如果不能验证该物理存储器页面,那么在方框710处,基于版本信息选择不同的物理页面。在判定点712处,确定不同的物理存储器页面是否可以用质量读取操作验证。如果可以验证不同的物理存储器页面,那么在方框708处,不同的物理存储器页面被映射到逻辑存储器页面,并且擦除指向该逻辑存储器页面的所有其它物理存储器页面。如果不能验证不同的物理存储器页面,那么在方框714处,选择初始被选择的物理存储器页面(例如,在方框704处选择的物理存储器页面)。在方框716处,通过对物理存储器页面执行正常的读取操作计算物理存储器页面的CRC数据。在判定点718处,将所计算的CRC数据与存储于物理存储器页面上(例如,在XWORD中)的CRC数据进行比较。如果CRC数据不匹配,那么在方框722处,选择不同的物理存储器页面,并且在方框724处,通过对不同的物理存储器页面执行正常读取操作来计算不同的物理存储器页面的CRC数据。在判定点726处,将不同的物理存储器页面的所计算CRC数据与存储于物理存储器页面上(例如,在XWORD中)的CRC数据进行比较。如果CRC数据并不匹配,那么如在方框728所指示,出现错误并且逻辑存储器页面是不可恢复的。如果在判定点718处或在判定点726处,CRC数据并不匹配,那么在方框720处,用在计算物理存储器页面的CRC数据时通过正常读取操作从物理存储器页面读取的数据重新编程物理存储器页面,并且在方框708处,物理存储器页面被映射到逻辑存储器页面,并且擦除指向该逻辑存储器页面的所有其它物理存储器页面。在实施例中,可在每个撕裂事件之后重复该过程,直到具有最新版本号的物理存储器页面可以通过质量读取操作验证。
如参考图7的方框704和方框710所描述,版本信息和CRC数据可以从物理存储器页面的XWORD获得。图8为根据本发明的实施例的XWORD的配置的图示。如图8所示,XWORD包括物理存储器页面应映射到的逻辑存储器页面地址、用于物理存储器页面的版本信息、有效性检查标记以及其它杂项信息。在实施例中,逻辑存储器页面地址的宽度等于在智能卡存储器中寻址存储器行所需要的位元数。版本信息可以是两位元字段,该两位元字段包括例如版本号(例如,0<1<2<3<0<1等)或时戳。在实施例中,可以通过专用标志或通过在物理存储器页面内编码来处理的有效性检查标志可被配置成区分开已擦除的页面和具有零内容的页面,但是也可以使用其它方法(例如,错误校正译码编码、CRC编码、m中取n编码等)进行区分。例如,如果第一时间数据被写入到物理存储器页面(版本被设定成0并且余额被设定成$0),那么该物理存储器页面将看起来像与已擦除的页面(例如,版本=0并且余额=$0)一致。因此,有效性检查可以用于确定该页面是有效的还是已擦除的。XWORD亦可包括杂项信息,例如用于XWORD自身的CRC数据。在实施例中,XWORD另外包括在同一页面内的其它字的CRC数据。虽然参考单个XWORD描述上述字段,但是多个XWORD、字或存储区可以用于在页面内直接编码字段和/或在单独页面内间接编码上述字段。在另一实施例中,在上述字段内的信息可从XWORD以外的页面数据获得。
在实施例中,当在撕裂事件之后重新初始化时,用于解决在更新智能卡存储器时由撕裂事件引起的冲突的上述技术确定哪些物理存储器页面是有效的(例如,被编程且不仅仅被擦除或未使用的)。在实施例中,可对智能卡存储器中的物理存储器页面执行有效性检查以确定哪些物理存储器页面是有效的。如上参考图8的XWORD所述,可通过评估每个物理存储器页面的有效性检查标记来执行有效性检查。也可以在已经读取物理存储器页面之后(例如,通过正常的读取操作),通过验证在物理存储器页面的XWORD中的CRC数据来执行有效性检查。例如,如果物理存储器页面的CRC数据是不正确的(例如,从物理存储器页面的数据计算的CRC数据与存储于物理存储器页面的XWORD中的先前计算的CRC数据不匹配),那么该物理存储器页面将测定为不是有效的。也可以设想用于确定物理存储器页面有效性的其它技术。
在实施例中,在确定物理存储器的哪些页面有效之后,智能卡和/或智能卡读取器确定是否已发生撕裂事件。然而,可发生撕裂事件而不会导致冲突,并因此将不会触发上述额外步骤(例如,重新编程物理存储器页面)。在实施例中,可通过读取被编程到作为智能卡存储器中的逻辑存储器页面存储的系统页面的数据来确定撕裂事件的出现。在实施例中,为了确定是否已发生撕裂事件,可在开始更新逻辑存储器页面时更新该系统页面并且在更新完成时再次更新该系统页面。因此,如果系统页面指示已经开始本地存储器页面的更新,但是并未指示更新完成,可以确定撕裂事件已发生。
在撕裂事件发生之后,可能难以确定应在哪里恢复更新智能卡存储器的操作(例如,编程新数据、擦除旧数据或重新编程新数据)。进程标志可需要额外的存储和写入动作。根据本发明的实施例,当智能卡经由正常读取操作初始化,且通过执行质量读取操作和重新编程不能通过质量读取操作正确地读取的物理存储器页面来进行解析时,可以识别物理存储器页面之间的冲突。因此,不需要用于过程标志的额外存储器并且也不需要更新过程标志的额外写入操作。
在实施例中,可通过集成电路促进如上所述的存储器页面的更新。集成电路可包括上面参考图1描述的元件,但是可不包括一些元件而包括其它元件。
虽然以特定次序示出和描述了本文中的一个或多个方法的操作,但可以更改每个方法的操作次序,使得可以相反次序执行某些操作,或使得可至少部分地与其它操作同时执行某些操作。在另一个实施例中,可以间断的和/或交替的方式实施不同操作的指令或子操作。
还应当注意的是,可以使用通过计算机执行的存储于非暂时性计算机可读存储介质上的软件指令实施该方法的操作中的至少一些操作。作为一个例子,非暂时性计算机可读存储介质的实施例包括计算机可用存储介质,该计算机可用存储介质被配置成存储当在计算机上执行时使得该计算机执行如本文所述的操作的计算机可读程序。
此外,本发明的至少部分的实施例可以采用从计算机可用或计算机可读介质可存取的计算机程序产品的形式,该计算机可用或计算机可读介质提供程序代码用于由或结合计算机或任何指令执行系统使用。出于此描述的目的,计算机可用或计算机可读介质可以是可以包含、存储、传达、传播或传送由指令执行系统、设备或装置使用或结合指令执行系统、设备或装置的程序的任何设备。
计算机可用或计算机可读介质可以是电子、磁性、光学、电磁、红外或半导体系统(或装置或设备)或传播介质。计算机可读介质的例子包含半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。目前的光盘例子包括具有只读存储器的压缩光盘(CD-ROM)、具有读/写的压缩光盘(CD-R/W)、数字视频光盘(DVD)和蓝光光盘。
在以上描述中,提供各种实施例的具体细节。然而,可以在并没有这些具体细节的全部细节的情况下实施一些实施例。在其它情况下,为了简洁和清晰起见,除了能够实现本发明的各种实施例的之外不再详细描述某些方法、操作步骤、部件、结构和/或功能。
虽然已经描述和例示了本发明的具体实施例,但是本发明不限于如此描述和例示的部分的具体形式或布置。本发明的范围将由在此所附的权利要求书及其等效物限定。
Claims (9)
1.一种用于解决在更新存储器时由撕裂事件引起的冲突的方法,其特征在于,所述方法包括:
基于版本信息从指向逻辑存储器页面的多个存储器页面选择存储器页面;
重新编程所述选择的存储器页面;以及
将所述选择的存储器页面映射到所述逻辑存储器页面。
2.根据权利要求1所述的方法,其特征在于,基于在质量读取操作下的性能另外选择所述存储器页面。
3.根据权利要求1所述的方法,其特征在于,另外包括:使用通过对所述页面执行正常读取操作获得的用于所述存储器页面的循环冗余检查(CRC)数据来重新编程所述选择的存储器页面。
4.根据权利要求3所述的方法,其特征在于,如果对于所述选择的存储器页面(第一存储器页面)的CRC数据不能通过正常读取操作获得,那么:
从指向所述逻辑存储器页面的所述多个存储器页面选择第二存储器页面;以及
使用通过对所述第二存储器页面执行正常读取操作获得的CRC数据重新编程所述第二存储器页面。
5.根据权利要求1所述的方法,其特征在于,利用质量读取操作来验证所述选择的存储器页面,并且如果不能验证所述页面,那么重新编程所述存储器页面。
6.根据权利要求1所述的方法,其特征在于,所述方法另外包括通过在选择所述存储器页面之前读取被编程到系统页面的数据来确定是否已发生撕裂事件。
7.根据权利要求1所述的方法,其特征在于,在重新编程所述存储器页面之前执行有效性检查。
8.根据权利要求7所述的方法,其特征在于,通过评估存储于所述存储器页面的XWORD中的有效性检查标记来执行所述有效性检查。
9.根据权利要求7所述的方法,其特征在于,通过将从所述存储器页面计算的CRC数据与存储于所述存储器页面的XWORD中的CRC数据进行比较来执行所述有效性检查。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/084,440 US9983820B2 (en) | 2016-03-29 | 2016-03-29 | Method for performing data updates |
US15/084,440 | 2016-03-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107239229A true CN107239229A (zh) | 2017-10-10 |
CN107239229B CN107239229B (zh) | 2022-05-17 |
Family
ID=57965684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710186059.8A Active CN107239229B (zh) | 2016-03-29 | 2017-03-24 | 用于执行数据更新的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9983820B2 (zh) |
EP (1) | EP3226141B1 (zh) |
CN (1) | CN107239229B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI662410B (zh) * | 2017-12-18 | 2019-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
US11941281B2 (en) | 2022-04-01 | 2024-03-26 | Nxp B.V. | Non-volative memory system configured to mitigate errors in read and write operations |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020024844A1 (en) * | 2000-08-23 | 2002-02-28 | Takahiro Saeki | Non-volatile semiconductor memory device |
US20040123020A1 (en) * | 2000-11-22 | 2004-06-24 | Carlos Gonzalez | Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory |
US20060271725A1 (en) * | 2005-05-24 | 2006-11-30 | Micron Technology, Inc. | Version based non-volatile memory translation layer |
US20090119450A1 (en) * | 2007-11-06 | 2009-05-07 | Saeki Shusuke | Memory device, memory management method, and program |
CN103902403A (zh) * | 2012-12-27 | 2014-07-02 | Lsi公司 | 经由冗余阵列的非易失性存储器编程故障恢复 |
US20140258587A1 (en) * | 2013-03-06 | 2014-09-11 | Lsi Corporation | Self recovery in a solid state drive |
US20150355858A1 (en) * | 2013-10-08 | 2015-12-10 | Apple Inc. | Recovery from programming failure in non-volatile memory |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07287668A (ja) * | 1994-04-19 | 1995-10-31 | Hitachi Ltd | データ処理装置 |
US7594067B2 (en) * | 2005-10-20 | 2009-09-22 | Stec, Inc. | Enhanced data access in a storage device |
JP4915756B2 (ja) * | 2009-12-16 | 2012-04-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アドレス変換を高速化する方法及びシステム |
-
2016
- 2016-03-29 US US15/084,440 patent/US9983820B2/en active Active
-
2017
- 2017-01-30 EP EP17153822.6A patent/EP3226141B1/en active Active
- 2017-03-24 CN CN201710186059.8A patent/CN107239229B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020024844A1 (en) * | 2000-08-23 | 2002-02-28 | Takahiro Saeki | Non-volatile semiconductor memory device |
US20040123020A1 (en) * | 2000-11-22 | 2004-06-24 | Carlos Gonzalez | Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory |
US20060271725A1 (en) * | 2005-05-24 | 2006-11-30 | Micron Technology, Inc. | Version based non-volatile memory translation layer |
US20090119450A1 (en) * | 2007-11-06 | 2009-05-07 | Saeki Shusuke | Memory device, memory management method, and program |
CN103902403A (zh) * | 2012-12-27 | 2014-07-02 | Lsi公司 | 经由冗余阵列的非易失性存储器编程故障恢复 |
US20140258587A1 (en) * | 2013-03-06 | 2014-09-11 | Lsi Corporation | Self recovery in a solid state drive |
US20150355858A1 (en) * | 2013-10-08 | 2015-12-10 | Apple Inc. | Recovery from programming failure in non-volatile memory |
Also Published As
Publication number | Publication date |
---|---|
CN107239229B (zh) | 2022-05-17 |
EP3226141A1 (en) | 2017-10-04 |
US20170285996A1 (en) | 2017-10-05 |
US9983820B2 (en) | 2018-05-29 |
EP3226141B1 (en) | 2021-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100390754C (zh) | 信息处理设备和信息处理方法 | |
EP2033145B1 (en) | Portable electronic device and control method thereof | |
US20090050702A1 (en) | Portable electronic device and control method of portable electronic device | |
CN104885052B (zh) | 读写存储设备的数据映像中的虚拟边界码 | |
US20090037646A1 (en) | Method of using a flash memory for a circular buffer | |
CN108021835B (zh) | 用于向阅读器提供射频应答器的篡改环状态的方法 | |
CN101699476B (zh) | 智能卡的数据处理方法及装置 | |
CN101645046A (zh) | 一次性可编程存储器仿真 | |
CN107463341A (zh) | Flash芯片的擦除方法、装置和移动终端 | |
CN102799931B (zh) | 射频智能卡保护数据的方法 | |
CN105279543A (zh) | 射频应答器电路 | |
CN107239229A (zh) | 用于执行数据更新的方法 | |
US11392449B2 (en) | Anti-tearing protection system for non-volatile memories | |
CN106709386A (zh) | 智能卡数据写入方法及装置 | |
US20090177921A1 (en) | Portable electronic device and control method thereof | |
US20110227708A1 (en) | Portable electronic device, communication device, and command processing method | |
US9424176B2 (en) | Robust sector ID scheme for tracking dead sectors to automate search and copydown | |
US20070274302A1 (en) | Data Storage Device, Memory Managing Method, and Program | |
JP4060245B2 (ja) | メモリ管理装置およびこれを備えたicカード | |
US10223195B2 (en) | Counter in a flash memory | |
JP5633125B2 (ja) | 情報処理方法、情報処理装置、およびプログラム | |
CN106919344B (zh) | 非易失性存储器及其存储方法 | |
JP4546256B2 (ja) | メモリカードに記録されているデータの安全な変更方法 | |
KR100580380B1 (ko) | 스마트 카드를 이용한 지불 방법 및 그 장치 | |
JP2008047040A (ja) | 携帯可能電子装置およびicカード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |