CN1695206A - 检测对持久存储器写错的方法与装置 - Google Patents

检测对持久存储器写错的方法与装置 Download PDF

Info

Publication number
CN1695206A
CN1695206A CN03825131.0A CN03825131A CN1695206A CN 1695206 A CN1695206 A CN 1695206A CN 03825131 A CN03825131 A CN 03825131A CN 1695206 A CN1695206 A CN 1695206A
Authority
CN
China
Prior art keywords
address
pointer
storage unit
value
memory
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.)
Pending
Application number
CN03825131.0A
Other languages
English (en)
Inventor
A·凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Publication of CN1695206A publication Critical patent/CN1695206A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Read Only Memory (AREA)

Abstract

提出一种检测持久存储器诸如闪耀存储器出错的技术,其中将数据项值存贮在连续加到已指定存储段一端的存储单元里。加新单元时,在该项前一值的单元里存贮指向新单元地址的指针。每当重新通电时,就确定最新单元的地址(21)。对任一其值大于最后一个单元地址的指针,搜索该单元的指针字段(24)。若发现这种指针值,说明写指针值时出错了,例如写指针来操作未完成就去除了电源。把指针值改为最后一个单元的地址(27),即能纠错。

Description

检测对持久存储器写错的方法与装置
技术领域
本发明涉及检测对持久存储器写错的方法与装置,还涉及纠正这种写错结果的方法与装置。这类技术可用于嵌入式系统,合适的应用合金包括“Java卡之类的智能卡;智能钥现智能盘之类的数字运行的存贮或安全设备;移动电话的SIM与USIM;数据记录设备;记录用户爱好、存贮设定值或记录用途的小型设备;运载工具的计算机系统;机顶盒;和因特网路由器。这类技术适用于“成批一擦就写”型的持久或“非易失”存储器,如闪耀存储器,也适用于“只写”型存储器。
背景技术
这里用的术语“持久数据项”(即PDI)被定义为与其随时间变化的值关联的数据项,尤其在被应用程序修正时,要求在这类修正之间保持其状态,尤其在应用程序不运行而且电源被不经意除去时,在应用程序被切断时,或偶然因电源故障或除去电源时。
计算机程序通过读与修正变量值而运行。对RAM里的变量,由于通常可按需要改写诸值而且读写很快,故这样做并不难。当程序不运行时,必须将其状态存入更持久的存储器里。
在诸如智能卡等小型计算机平台上,很少有RAM,持久存储器通常取EEPROM或闪耀存储器的形式。这种存储器的特点在于,某一位一旦改变,它在整段被擦除前就不能再变。在EEPROM中,段大小可能小得像单个字节(8位),可将该存储器基本上视为极慢速的RAM。在闪耀存储器中,段对硅区效率而言一般很大(如64KB),擦除操作缓慢,而且在若干次擦除循环后(比如优质的闪耀存储器为100,000次),存储器将最终就用坏了。闪耀存储器的优点是更快速,装入给定芯片区的数量更多,因而存贮空间更大,但比EEPROM更难有效使用。
研究一下智能卡的应用,它在每次运行并检查运行间隔时,要保持日期与时间的记录(或许得自读卡器终端),这样可用于安全功能,如强制现金卡每天的取款极限。每次操作时,必须读旧日期来检查,并存贮新日期,故该日期就是PDI。若每次变化时都将日期存入同一位置,由于物理存储器局限性,必须首先擦除全部64K块,这要花很长时间,而且会迅速用坏闪耀存储器。
换一种方法,每次写新日期时,必须把它存入存储器新区。该程序肯定要与其它程序共享闪耀存储器,故不能有效地对这样一种应用预定一大块闪耀存储器。换言之,系统内有众多PDI,它们可能以不同的速率更新,这取决于应用程序运行。
如图1所示,一种已知的PDI存贮配置法对各PDI建立一联接的值链,链的第一元位于已知地址。对上述的特定应用,链的各元存贮了日期记录值并对链的下一项有一指针空间,最后的链元的指针值等于擦除的存储器样式(在被擦除的每位状态为1的该模型中为16进制的FFFF,或在被擦除的每位状态为0的互补模型中为0000)。要读当前日期,从链的开头读起,随指针一直读到达到值FFFF。要加新日期,就用新值和空指针建立新的链元,然后在前一最后元的指针部分上存贮该地址。
块存满时,只要把各PDI最近值复制到新块,然后擦除旧块,这称为“收集无用数据”。收集无用数据时,链的最后值被复制到新块用作新链的开始。
若在写操作中对闪耀存储器去电,就存在操作未完成而且重新上电时有不一致状态的危险。在带闪耀存储器的无接触智能卡的情况下,卡自身不带任何电源,在向读卡器出示时从读卡器接收电力。若在对闪耀存储器作写操作期间从读卡器里取出卡,则在写操作中会中断电源,使实际存贮的数据不同于要存贮的数据。
例如在一般闪耀存储器中,擦除的每位状态为1,各位可在写操作中改为0,但要实现从0到1的逆变化,只能通过一次擦除整页或整段。而且,若写操作中断,则准备从1变为0的各位将不是变为0就是保持1。通常含16位的整个字平行写到闪耀存储器,当写操作因失电而中断时,虽然部分或全部请求的从1变0会出现,但是不能识别出哪些变了和哪些(有的话)不变。重新上电时,智能卡无法说明存贮的数据是否可靠,因为在写操作中失电了。
在图1所示的联接的链和前述场合中,或在英国专利申请No.0205573.9(其内容通过引用包括在这里)揭示的改进结构的情况下,各数据项的当前值是联接链或清单中的最后一个值。若在指向最后值的指针被写入闪耀存储器时电源发生故障,则在电源恢复时不能恢复该最后值。因此,依赖于这种最后值的任何应用程序将不能正常工作或根本不工作。
发明内容
按照本发明第一方面,提供一种检测持久存储段出错的方法,存储段中将至少一个数据项存入临时连续指定的存储单元,每个新的存储单元加到存储段中有第一与第二端的块的第一端,而各新的存储单元的指针加到块中含至少一个数据项前一值的旧存储单元,该法包括步骤:
(a)确定新加指针所指的地址;
(b)把确定的地址与包括最新存储单元的存储块的地址范围作一比较;和
(c)若确定的地址在该地址范围以外,执行动作。
步骤(a)~(c)在每次对存储段通电时都执行。
步骤(a)包括确定所有指针所指的地址,并选择最高或最低地址。
步骤(c)包括把新加的指针的地址改为最新存储单元的地址。
各新的存储单元就近加到块第一端。
各指针指向它所指的存储单元的最高或最低的地址。
存储段至少包括闪耀存储器的一部分。
各存储单元具有供至少一个数据项的单值使用的空间。
存储段每位只可逐一从1切换成0,该动作在检出的地址大于地址范围中最高地址时执行。或者,存储段每位只可逐一从0切换为1,该动作在检出地址小于地址范围最低地址时执行。
存储段含至少一个写计数器,其中在每次存值操作结束时设置各自的标志,在每次加指针操作结束时设置另一标志,而步骤(a)~(c)只有在设置了所述标志和另一标志的旧数值后才执行。该至少一个写计数器包括一数据项。
存储段包含至少一个写计数器,其中在存贮一个或多个数据项值的系列时,在第一次加指针操作前先在该系统中设置各自的标志,在最后加指针操作后在系列中设置另一标志,而步骤(a)~(c)只有在设置了所述标志和另一标志的旧数值后才执行。
按照本发明第二方面,提供一种控制计算机执行本发明第一方面的方法的程序。
按照本发明第三方面,提供一种用本发明第二方面的程序编程的计算机。
按时本发明第四方面,提供一种含本发明第二方面的程序的存贮媒体。
按照本发明第五方面,提供一种装置,它包括:持久存储段;把至少一个数据项的值存入临时连续指定的存储单元的部分,各新的存储单元被加到存储段中具有第一与第二端的块的第一端;把指向各新存储单元的指针加到块中含至少一个数据项前一值的旧存储单元的部分;确定新加指针所指地址的部分;把确定的地址与包括最新存储单元的存储块地址范围作比较的部分;和确定的地址偏出地址范围时执行动作的部分。
确定部分、比较部分和执行部分安排成在每次对该装置通电时受驱动。
确定部分安排成确定所有指针所指的地址,并选择最高或最低地址。
执行部分安排成把新加指针的地址改为最新存储单元的地址。
各新的存储单元就近加到块的第一端。
各指针指向它所指的存储单元的最高或最低地址。
存储段包括至少一部分闪耀存储器。
各存储单元具有供至少一个数据项的单值使用的空间。
存储段每一位只可逐一从1切换到0,执行部分安排成在检出的地址大于地址范围最高地址时执行动作。或者,存储段每一位只可逐一从0切换到1,执行部分安排成要检出地址小于地址范围最低地址时执行动作。
该装置包括:在存储段中至少一个写计数器里在每次存贮操作开始时设置各自标志并在每次加指针操作结束时设置另一标志的部分;和评定设置的所述标志和另一标志的数值是否为奇数的部分,确定部分、比较部分和执行部分安排成能响应于设定部分受驱动。至少一个写计数器包括一数据项。
该装置可以包括:在存储段中至少一个写计数器内在存贮一个或多个数据项值的系列时,在第一次加指针操作前先在系列中设置各自的标志,而在最后加指针操作后在系列中设置另一标志的部分;和评定设置的所述标志和另一标志的数值是否为奇数的部分,确定部分、比较部分和执行部分安排成响应于评定部分受驱动。
该装置可包括智能卡。
这样就能提供一种可靠地检出联接的PDI链和同类结构的指针出错的结构。该技术还可校正这类出错,因而例如可防止依赖于存在闪耀存储器等里的PDI的任何应用不利地使用读自存储器的错误数据。
附图简介
以下参照附图举例描述本发明,其中:
图1示出已知的联接式PDI值链;
图2示出构成本发明一实施例的装置;
图3示出图2的装置按构成本发明一实施例的方法的操作;和
图4是说明该方法的流程图。
发明的较佳实施方式
图2示出“无接触”型智能卡,与读卡器一起传递数据。卡1具有嵌入在其内的计算机2和图示成包含若干页或段的闪耀存储器3。计算机2包括中央处理单元(CPU)4,配有工作随机存取存储器(RAM)5一输入/输出接口(I/O)6,可与读卡器作无接触通信。卡1不含内电源,依靠设置在读卡器(未示出)里的外电源7。因此,计算机2和存储器3只在卡1正确地插入读卡器才受电。
图2所示的闪耀存储段配置成用作持久数据项(PDI)的非易失存储器,因而在无电时不要求存贮的数据使用易失的工作RAM5,而在无电时必须保持其值的PDI存入闪耀存储段。
图2所示的闪耀存储段配置成存贮例如指示页在使用还是已被擦除而准备再用的页识别符与状态8、包含指向有存在段内PDI第一值的单元或“节点”的各PDI指针的PDI表9、临界写计数器10和对其已写入PDI值的节点。该段具有自由空间11和当前已被指定的最新使用的存储器字(LUM)12。
在起初配置卡1时,计算机2输入页识别符号状态8,为PDI表9和临界写计数器10留出存储器3里的空间。当第一PDI的第一值写到存储器3时,在存储段节点15的开始处为项值和下一值指针指定足够的空间。与第一PDI关联的指针被插入表9,指向节点15的最新字,如箭头16所示。
闪耀存储器3是这样一种类型:段被擦除时,其所有的位都置1。因此,计数器10所有的位起初都置1。而且,字在节点15为PDI下一值的指针保留的位全部置1,等待在下一值到来时重写。
在图2实例中,准备存入存储器3的下一值是第一PDI的第二值。写操作开始时,为存贮第二PDI值指定一新节点17。例如将继续包含PDI后一值节点的指针的该节点最后字,其最低有效位置0。因所有指针都指向偶数地址,故与在该字内后写的指针不相矛盾。为包容第一PDI的第二数据值,在该指针的字与前一节点15之间设置了足够的存储器空间。该节点指定成与节点15相邻,例如旨在最大限度地利用存储器空间,或者留一空隙,例如确保其指针在成奇数地定出第二数据值时处于偶数地址。不过要控制对存储段的写,使诸节点总是加到含前一指定节点的空间的端部,决不插在原有节点之间。
在写操作的下一步骤中,把第一PDI的第二数据值存入可作数据存贮的节点17部分。计数器10的第一位置0,表明成功完成了写数据操作。然后,把指向分配给后一指针的节点17最后字的地址的指针写入字15的指针字段,于是计数器10的第二位置零,表示写操作完成。
在存入闪耀存储器3该存储段的下一值是第二PDI的第一值。写操作开始时,指定一下有效节点18,之后将该值写入节点18的数据值字段。指向以后将包含指针的节点18最后字(即最高地址字)的指针存贮在PDI表9里的第二单元。
要存入存储器3的第四值是第二PDI的第二值。如前所述,通过将其最后或最高地址字的的最低有效位置0,指定了下一有效节点19,将该数据值写入节点19的值字段,计数器10的第三位置0,指向节点19最后字的指针被写入节点18的指针字段(最后或最高地址字),计数器10的第四位置零。
任一PDI的新值每次到来时,重复这一过程,以便写入存储器3的该段。具体地说,每个新值都被写入跟在含前一次收到的存贮值的节点后面(还可与之邻接)的节点。将该值写入新节点后,计数器10的下一位置零,而在指向新字的指针被写入含同一PDI前一值的节点的指针字段时,计数器的另一位置零。
在应用英国专利申请No/0205573.9揭示技术时,指针可能不写入含同一PDI前一值的节点,可能写入含同一PDI更早值的节点的“远字段”。该专利申请还描述了一种各节点的值字段能存贮其PDI的若干值的技术,因而只有在填满了所有值字段时才对该PDI指定新节点。应用这种技术时,不需要把第一值之后的值写到节点和把刷新的指针写入前一节点,而且也不需要临界写计数器10更新。因此,前述步骤只在填满了节点的值字段时才使用,而且必须对该PDI指定新节点。这种配置可用于存贮计数器10,更有效使用存储器空间。
其实如上所述,对新的PDI值指定新节点时,为存贮该值和下一指针指定了足够的字节,其方法是在新的LUM中设置一个位。若存储段内各指针都使用两个字节而且诸字总是存贮在偶数地址,则可将新节点指针字段内的最低位置零。这样就指出一存储段内随时被指定的最高地址,因高于LUM的地址处的所有位都将处于其复位1态。
当计算机2要查任一PDI的当前值时,它就追随存在对该PDI临时连续指定节点里的指针所规定的通路,因而计算机2对含第一值的节点识别出PDI表9内的该指针,检查该节点里的指针是否指向有效地址。如果这样,计算机则检测该指针所指的节点。在计算机查出被存指针代表指定的节点但不含指针时,存在该节点的值就是PDI的当前值并为计算机使用。
若在将指针写入存储段中合适的字段的同时去掉卡1的电源,存贮的指针值就会不正确。由于对存储器3的写涉及到位从1切换到0,未完成的写操作导致该指针被存位模式的二进制值大于预定值,因为它比应有的具有更多的1,从而要检测并校正指针写错。
图4示出一种每次对卡1通电时执行的方法。该法或子程序在20和21开始,计算机2搜索当前LUM12的存储段,例如计算机2从存储段中最高地址开始工作到最低地址,依次检查每个字,直到查出所有位非全1的一个字。该字的地址即为LUM的地址,计算机2再将该LUM的地址存入RAM5。
在步骤22,计算机4检查临界写计数器10是否含偶数的设置位。每当成功地将新PDI值写入闪耀存储段时,计算数器10的二个位置0。反之,每当写操作开始但在卡1去电前未完成时,就只有一个位置0,因为计数器10含奇数个设置位,故通过统计计数器10里零的数目,能检测是否出现可能的写错。
若计数器10含偶数个零,就不必再介入,图4的子程序在23结束。若计数为奇数,则计算机2在步骤24搜索存入存储段里诸字中其值大于先前在步骤21存入RAM5里的LUM地址的指针。值为FFFF或FFFE的指针均不予考虑,因为它虽然指向大于当前LUM地址的地址,但代表了还未指向指定节点的指针。另外,任一错误的指针,其地址必然大于当前LUM的地址。而且,任一这种指针的正确值都是LUM的地址。
在步骤25,计算机2判断是否发现错误的指针,若未发现,步骤26就将计数器10的下一位置零,子程序23结束;若发现错误的指针值,步骤27则将指针值校正到LUM地址而校正该指针值,然后在23结束前执行步骤26,使计数器10含偶数个0,表示不再出错。
图3示出一特例,其中出现的错误被检出后予以校正。PDI的第一值(值数据0)存贮在其最后字或指针字段的地址为0014的PDI节点30,指向节点30最后字的指针存在PDI表9内。当PDI的下一值(值数据1)到来时,计算机2在表9内找出该PDI的指针并检查指针字段31,发现含PDI前一值的节点30。该下一值写入节点32的值字段,地址1234输入节点30的指针字段31(指针都用16进制表示)。计数器10按前述方法更新。
要存贮同一PDI的下一值(值数据2)时,计算机2跟随指针轨迹,确定节点32含有该前一值。对存储段中某一节点定出下一有用空间,在地址2200用其指针字段指定节点。把地址2200的最低位改为0,在指针字段里留下FFFE,指定该节点。值数据2存入节点33的值字段,计数器10的下一个非零位置零。指向节点33的指针开始准备写入节点32的指针字段,但在写完前电源被除去,例如从读卡器里取出卡1,使未写完的指针2274出现在字32的指针字段内。具体而言,二进制值001000100000000应被写入节点32的指针字段,而不写二制值0010001001110100,因在去电前,第三、第五、第六与第七位还未进行从1到0的切换。
当再对卡1通电时,就执行图4的子程序,这样就断定节点33的地址字段被存贮在LUM,而存入节点32指针字段的指针地址的值高于LUM的地址2200。因此,通过切换该字段内合适的位以代表正确的地址2200,完成将正确的指针写入节点32的指针字段。
这样,能检测并校正写错的指针。闪耀存储器3段内所需的唯一附加空间用于临界写计数器10。计数器10在段内要求相当小的空间,或被存贮在不同的段内,因而在减小存储器中存贮空间方面,能以最小的代价检测并校正指针错误。
在上述一实施例中,存储段含一临界写计数器,其中在每次存值操作结束就设置一标志,并在每次加指针操作结束设置另一标志,这样在更新指针地址的临界写期间可保证临界写计数器指示奇数值。但在对一个或多个PDI作一组更新的情况下,在临界写计数器中也可能在该组更新的第一次加指针操作之前设置一标志,并只有在该组更新的最后一次加指针操作后才设置另一标志。若在设置该标志与另一标志之间电源故障,将在下次上电时作搜索。该方法的优点是设置时临界写计数器只被写两次,使系统至少在不失电的情况下更快速。
在另一实施例中,省略了临界写计数器10。在此情况下,当重新通电时,计算机2说不出是否出现指针错误,因而必须将所有存贮的指针值与LUM地址作比较。若指针值高于LUM地址,可像前述那样检测和校正。所以在该修正方法中,在减小存储器容量方面并无问题,但计算机2要用更多时间搜索差错。
在闪耀存储器3用一个以上段存贮PDI的情况下,可对每一段应用同一技术。具体而言,每段有其自己的LUM并用于存贮PDI一子组。
还可通过划分PDI空间把临界写计数器10分成几部分,各计算器与各自的划分相关,如在存储器有若干页的情况下,可对每一有效页设置各自的计数器。而且,还可对每次划分用一独立的临界写计数器划分每一页。搜索和校正每次划分的差错更迅速,不过若干临界写计数器要占用更多存储器空间,为判断各次划分中是否有差错,通电时必须检查各计数器。
还可将临界写计数器指定在段中作为PDI,于是更新链中的未项就是该计数器的有效块,这样可对计算器先指定较小的存储量,若该段被少量大的PDI以后填满,则很少浪费空间。
临界写计数器可存贮在与之相关的段内或不同的段内。在前一种情况,关键是确保新的临界写计数器段不被指定在另一临界更新的中间,否则会改变使用另一更新的LUM。为此,新的临界写计数器段可比要求的早几次更新被指定,不要在作临界更新时被指定。
该技术还适用于这样类型的闪耀存储器:存储器被复位成使其所有位都为0,对存储器的写涉及将位值由0改为1。例如,所有指针都以相反或互补的形式存贮,读出时再反过来。或在使用这种存储器时,要存贮的第一值被指定给最高地址的节点,后面的值被指定到下一较低地址作存贮,各节点最低地址字用作指针字段。此时,若指针值写错了,它就指向比该LUM地址更低的地址,因而能检出有错的指针并校正其值。
这些技术还可组合应用,例如使用一种位从1写到0的闪耀存储器,存储器从较高到较低地址指定,并以相反或互补形式存贮指针。
工业适用性
本发明涉及一种检测对持久存储器写错的方法与装置,还涉及一种校正这种出错结果的方法与装置。这些技术可用于嵌入式系统,合适的应用例子包括:Java卡等智能卡;数字有效存贮或安全设备,如智能钥与智能盘;移动电话的SIM与USIM;数据记录设备;记录用户爱好、存贮设定值或记录用途的小型设备;运载工具中的计算机系统;机顶盒;和因特网络由器。这类技术适用于诸如闪耀存储器的“成批一擦就写”型和“只写”型的持久或“非易失”存储器。

Claims (31)

1.一种检测持久存储段里出错的方法,所述存储段中将至少一个数据项的值存贮在临时连续指定的存储单元里,各新的存储单元被加到存储段中具有第一与第二端的块的第一端,而指向各新存储单元的指针被加到块中含至少一个数据项前一值的旧存储单元,所述方法的特征在于包括:
(a)确定最后所加指针所指的地址;
(b)把确定的地址与存储块中包括最后新存储单元(LUM)的地址范围作比较;和
(c)若确定的地址偏出地址范围,就执行动作。
2.如权利要求1所述的方法,其特征在于,每次对存储段通电时执行步骤(a)~(c)。
3.如权利要求1所述的方法,其特征在于,步骤(a)包括确定所有指针所指的地址,并选择最高或最低地址。
4.如权利要求1所述的方法,其特征在于,步骤(c)包括把最后所加指针的地址改成最新存储单元的地址。
5.如权利要求1所述的方法,其特征在于,各新存储单元就近加到块第一端。
6.如权利要求1所述的方法,其特征在于,各指针指向它所指的存储单元的最高或最低地址。
7.如权利要求1所述的方法,其特征在于,存储段包括至少一部分闪耀存储器。
8.如权利要求1所述的方法,其特征在于,各存储单元具有用于至少一个数据项单值的空间。
9.如权利要求1所述的方法,其特征在于,存储段每位只可单独从1切换到0,当检出地址大于地址范围的最高地址时执行动作。
10.如权利要求1所述的方法,其特征在于,存储段每位只可单独从0切换到1,当检出地址小于地址范围的最低地址时执行动作。
11.如权利要求1所述的方法,其特征在于,存储段含至少一个写计数器,其中在每次存值操作结束时设置各自的标志,在每次加指针操作结束时设置各自的另一标志,而且只有设置了奇数个标志与另一标志才执行步骤(a)~(c)。
12.如权利要求11所述的方法,其特征在于,至少一个写计数器包括一数据项。
13.如权利要求1所述的方法,其特征在于,存储段包含至少一个写计数器,其中在存贮一个或多个数据项值系列时,在系列第一次加指针操作前设置各自的标志,在系列最后一次加指针操作后设置各自的另一标志,而且只有设置了奇数个所述标志与另一标志才执行步骤(a)~(c)。
14.一种控制计算机执行权利要求1所述方法的程序。
15.一种用权利要求14所述程序编程的计算机。
16.一种含权利要求14所述程序的存储媒体。
17.一种装置,它包括:持久存储段;把至少一个数据项值存入临时连续指定的存储单元的部分,每一新存储单元被加到存储段中具有第一与第二端的块的第一端;把指向每一新存储单元的指针加到块中含至少一个数据项前一值的旧存储单元的部分,其特征在于:确定最后所加指针所指地址的部分;把确定的地址与存储块中包含最新存储单元(LUM)的地址范围作比较的部分;和若确定的地址偏出该地址范围就执行动作的部分。
18.如权利要求17所述的装置,其特征在于,确定部分、比较部分和执行部分安排成每次对装置供电时受驱动。
19.如权利要求17所述的装置,其特征在于,确定部分安排成确定所有指针所指的地址,并选择最高或最低地址。
20.如权利要求17所述的装置,其特征在于,执行部分安排成把新加指针的地址改变最新存储单元地址。
21.如权利要求17所述的装置,其特征在于,把各新的存储单元就近加到块第一端。
22.如权利要求17所述的装置,其特征在于,各指针指向它所指的存储单元的最高或最低地址。
23.如权利要求17所述的装置,其特征在于,存储段包括至少一部分闪耀存储器。
24.如权利要求17所述的装置,其特征在于,各存储单元具有用于至少一个数据项单值的空间。
25.如权利要求17所述的装置,其特征在于,存储段每一位只可单独从1切换到0,执行部分安排成在检出地址大于地址范围最高地址时执行动作。
26.如权利要求17所述的装置,其特征在于,存储段每一位只可单独从0切换到1,执行部分安排成在检出地址小于地址范围最低地址时执行动作。
27.如权利要求17所述的装置,其特征在于包括:在存储段的至少一个写计数器中在每次存值操作开始时设置各自的标志并在每次加指针操作结束时设置各自另一标志的部分;和评定设置的所述标志和另一标志的数量是否为奇数的部分,确定部分、比较部分和执行部分安排成响应于评定部分受驱动。
28.如权利要求27所述的装置,其特征在于,至少一个写计数器包括一数据项。
29.如权利要求17所述的装置,其特征在于包括:在存储段的至少一个写计数器中存贮一个或多个数据项值系列时,在该系列中第一次加指针操作前设置各自的标志并在该系列中最后一次加指针操作后设置各自另一标志的部分;和评定设置的所述标志和另一标志的数量是否为奇数的部分,确定部分、比较部分和执行部分安排成响应于评定部分受驱动。
30.如权利要求17所述的装置,其特征在于包括智能卡。
31.一种设备,其特征在于包括:闪耀存储段;把至少一个数据项值存入临时连续指定的存储单元的装置,各新的存储单元加到存储段中具有第一与第二端的块的第一端;把指向各新的存储单元的指针加到块中含至少一个数据项前一值的旧存储单元的装置;确定最后加的指针所指的地址的装置;将确定的地址与存储块中包含最新存储单元的地址范围作比较的装置;和在确定的地址编出地址范围时执行动作的装置。
CN03825131.0A 2002-09-20 2003-09-16 检测对持久存储器写错的方法与装置 Pending CN1695206A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0221868.3 2002-09-20
GB0221868A GB2393273A (en) 2002-09-20 2002-09-20 Method and apparatus for detecting an error in writing to persistent memory

Publications (1)

Publication Number Publication Date
CN1695206A true CN1695206A (zh) 2005-11-09

Family

ID=9944459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN03825131.0A Pending CN1695206A (zh) 2002-09-20 2003-09-16 检测对持久存储器写错的方法与装置

Country Status (9)

Country Link
US (1) US7539905B2 (zh)
EP (1) EP1540660B1 (zh)
JP (1) JP4329937B2 (zh)
CN (1) CN1695206A (zh)
AT (1) ATE379837T1 (zh)
AU (1) AU2003263600A1 (zh)
DE (1) DE60317801T2 (zh)
GB (1) GB2393273A (zh)
WO (1) WO2004027615A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108413A (zh) * 2017-12-12 2018-06-01 宁波三星医疗电气股份有限公司 一种基于存储数据自动生成数据指针的方法及系统

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3865748B2 (ja) * 2003-01-20 2007-01-10 富士通株式会社 ネットワークスイッチ装置およびネットワークスイッチ方法
US7475209B2 (en) * 2004-05-13 2009-01-06 International Business Machines Corporation Moving hardware context structures in memory while maintaining system operation
US7743277B2 (en) * 2005-02-14 2010-06-22 Stec, Inc. System and method for detecting and reducing data corruption in a storage device
US8151034B2 (en) * 2007-09-12 2012-04-03 Sandisk Technologies Inc. Write abort and erase abort handling
EP2270758B1 (en) * 2009-06-30 2013-11-27 Kabushiki Kaisha Toshiba Portable electronic apparatus, processing apparatus for portable electronic apparatus, and data processing method in portable electronic apparatus
US8321481B2 (en) * 2010-05-13 2012-11-27 Assa Abloy Ab Method for incremental anti-tear garbage collection
US9116634B2 (en) * 2011-06-10 2015-08-25 International Business Machines Corporation Configure storage class memory command
CN103310848A (zh) * 2012-03-08 2013-09-18 鼎桥通信技术有限公司 一种使用存储器的方法和装置
US9208040B2 (en) * 2014-04-30 2015-12-08 Stmicroelectronics International N.V. Repair control logic for safe memories having redundant elements
US10776192B2 (en) 2015-09-17 2020-09-15 Hewlett Packard Enterprise Development Lp Memory store error check

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0398545A1 (en) * 1989-05-19 1990-11-22 Delco Electronics Corporation Method and apparatus for storing data in a non-volatile memory
US5369757A (en) * 1991-06-18 1994-11-29 Digital Equipment Corporation Recovery logging in the presence of snapshot files by ordering of buffer pool flushing
US5469562A (en) * 1992-06-26 1995-11-21 Digital Equipment Corporation Durable atomic storage update manager
US5873097A (en) * 1993-05-12 1999-02-16 Apple Computer, Inc. Update mechanism for computer storage container manager
US5644709A (en) * 1994-04-21 1997-07-01 Wisconsin Alumni Research Foundation Method for detecting computer memory access errors
US5530806A (en) * 1994-12-15 1996-06-25 At&T Corp. Method and apparatus for storing and retrieving routing information in a network node
GB2317722B (en) 1996-09-30 2001-07-18 Nokia Mobile Phones Ltd Memory device
GB9801373D0 (en) * 1998-01-22 1998-03-18 Memory Corp Plc Memory system
US6247108B1 (en) * 1998-06-03 2001-06-12 Lucent Technologies Inc. Memory management during processing of binary decision diagrams in a computer system
US6412080B1 (en) 1999-02-23 2002-06-25 Microsoft Corporation Lightweight persistent storage system for flash memory devices
DE19921232B4 (de) * 1999-05-07 2007-06-21 Giesecke & Devrient Gmbh Verfahren zum gesicherten Schreiben eines Zeigers für einen Ringspeicher, zugehöriger Ringspeicher, Verwendung des Ringspeichers und Chipkarte mit Ringspeicher
DE10059006B4 (de) * 1999-12-30 2004-04-15 International Business Machines Corp. Verfahren und System zur sicheren Verwaltung von Dateien in nichtflüchtigen Speichern
JP2002062956A (ja) * 2000-08-21 2002-02-28 Sankyo Seiki Mfg Co Ltd 停電処理方法及び停電処理装置
US6977941B2 (en) * 2000-11-08 2005-12-20 Hitachi, Ltd. Shared buffer type variable length packet switch
US6928456B2 (en) * 2001-03-06 2005-08-09 Intel Corporation Method of tracking objects for application modifications
JP2002278850A (ja) 2001-03-14 2002-09-27 Nec Corp 半導体装置
US6779084B2 (en) * 2002-01-23 2004-08-17 Intel Corporation Enqueue operations for multi-buffer packets
US7131115B2 (en) * 2002-03-25 2006-10-31 Hewlett-Packard Development Company, L.P. Unwinding instrumented program code
US7337275B2 (en) * 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108413A (zh) * 2017-12-12 2018-06-01 宁波三星医疗电气股份有限公司 一种基于存储数据自动生成数据指针的方法及系统

Also Published As

Publication number Publication date
GB0221868D0 (en) 2002-10-30
JP4329937B2 (ja) 2009-09-09
AU2003263600A1 (en) 2004-04-08
DE60317801T2 (de) 2008-10-30
EP1540660A2 (en) 2005-06-15
DE60317801D1 (de) 2008-01-10
WO2004027615A3 (en) 2004-07-01
US7539905B2 (en) 2009-05-26
EP1540660B1 (en) 2007-11-28
ATE379837T1 (de) 2007-12-15
AU2003263600A8 (en) 2004-04-08
WO2004027615A2 (en) 2004-04-01
US20060143541A1 (en) 2006-06-29
JP2006500653A (ja) 2006-01-05
GB2393273A (en) 2004-03-24

Similar Documents

Publication Publication Date Title
CN1278236C (zh) 在分离的存储区域中存储数据组的不同版本的装置和更新存储器中数据组的方法
CN105975399B (zh) 用来管理一记忆装置的方法以及其相关的记忆装置
US20110289125A1 (en) Method for incremental anti-tear garbage collection
US7240178B2 (en) Non-volatile memory and non-volatile memory data rewriting method
CN102016788B (zh) 高效地标记带有大引用集的对象
CN104246727B (zh) 数据处理系统以及用于操作数据处理系统的方法
EP1403771A1 (en) Non-volatile memory control method
US7725646B2 (en) Method of using a flash memory for a circular buffer
CN102870116B (zh) 内容匹配方法和装置
CN1695206A (zh) 检测对持久存储器写错的方法与装置
CN102024046A (zh) 数据重复性校验方法和装置及系统
CN109783005A (zh) 控制记忆装置的方法、记忆装置、及其控制器和电子装置
CN1480953A (zh) 在内存中存放校验码的方法及装置
CN107402717B (zh) 闪速存储器存储管理
CN100375029C (zh) 存储器配置系统与方法
US7412593B2 (en) Processor for processing a program with commands including a mother program and a sub-program
US20080306948A1 (en) String and binary data sorting
US20040186962A1 (en) Method, system, and computer-readable medium for updating memory devices in a computer system
CN115729955A (zh) 一种热数据读取方法及相关装置
CN107480052B (zh) 一种定位宕机时bios代码的方法及装置
US7308549B2 (en) Memory control method, storage device, control program, and readable record medium
CN113238857B (zh) 一种基于内存池的map映射表多线程遍历方法及装置
CN113282240A (zh) 存储空间数据读写方法、设备、存储介质及程序产品
CN113535714A (zh) 数据的存储方法、读取方法及计算机设备
CN108804233A (zh) 内存空间回收方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
C20 Patent right or utility model deemed to be abandoned or is abandoned