用于安全写环形存储器指针的方法和相应的环形存储器技术

技术编号:2881453 阅读:239 留言:0更新日期:2012-04-11 18:40
为使在一个循环存储器或环形存储器中,例如在EEPROM中,对指向当前数据项的指针(P)的安全写成为可能,将向含有最陈旧数据项的存储单元(R3)中写入新数据项(D’#3),然后将指针(P)修改。指针(P)由第一个指针(P1,P1↑[*])和第二个指针(P2,P2↑[*])构成,其中第二个指针是第一个指针的冗余。每个指针含有一个测试值,它实际上是指针值的反码或补码。通过第二个指针和测试值可以使指针得到最佳的安全写。如果在修改指针过程中发生故障,可以在之后选择是根据第二个指针的内容恢复旧的第一个指针,还是借助于新的第一个指针将第二个指针也加以修改。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种,此外还涉及一种带有一个指针存储单元的环形存储器,以及含有这样的环形存储器的智能卡(Chipkarte)。环形存储器或称周期性存储器,其内容也被看作是周期性数据或相似的东西,它们可以是虚拟存储器或硬件存储器。环形存储器尤其是电子可擦洗的、可编程的固定存储器(EEPROM)的一种典型组织形式。本专利技术以及本专利技术的实施例特别涉及到这种固定存储器,尽管本专利技术可普遍适用于各种环形存储器。一个环形存储器含有一定数量的存储单元,环形存储器中的周期性数据包含一系列数据项(记录),每一个数据项存放在一个存储单元中。数据项被周期性地按顺序写入环形存储器,方法是,写入的新数据项将最陈旧的数据项覆盖。环形存储器的存储单元按升序1,2,…n连续编号,存储单元“1,,周期性地与存储单元“n,,相接。“当前”或最新数据项存放在由指针指示的一个存储单元中。在写入序列数据项时,指针将每次周期性地指向更高一个地址。为了阐明本专利技术所涉及到的基本问题,在这里对向一个EEPROM结构的环形存储器中的一个指定的存储单元写入新数据项的过程作一详细描述。这种EEPROM尤其常用在智能卡中,因此此处的问题也主要与智能卡有关。为了将一个新数据项写入一个指定的存储单元,而该存储单元中存有环形存储器中最陈旧的数据项,在新数据被写入之前,须将该单元中的旧数据清除。用通常的方法实现这些的步骤是,每次使指针指向更高一个地址,然后写入新的数据项。当掉电使写过程中断时,就有可能使新的数据项丢失,此外还有可能丢失指针信息,这是更重要的,指针信息的丢失使要存入下一个数据项的位置无法被确认。另一个问题是,指针的信息有可能是错误的信息,如在指针被修改后。在现有技术中,对避免环形存储器的这类错误有许多建议。在FR-A-2 699704中描述了一种修改EEPROM中数据的方案,在这个方案中设置了一个多位的标志,每个标志相对于一个数据项。如果在标志为“旧”的数据项处需要写进新数据项时,首先要将该数据项以及它的标志清除,新数据项方可写入该旧数据项的位置,与之相关的标志将被赋值,这个值表明刚刚有数据修改发生。然后到目前为止被标为当前数据项的标志将被改成“旧”的,新数据项的标志在操作的过程中被置为“当前”的。这种方法需要消耗一些操作和存储空间。如果在存入新数据项后,修改标志时出现中断,就会找不到新数据项,处于一种不确定状态。从EP-A-0 398 545我们知道一种环形存储器,其中对于每一个数据项有一位标志位。当向环形存储器写入一个新的数据项时,在写过程之后跟随一个用表示当前数据的标志,如“1”来标记新数据项的过程。随后将把上一次是当前数据项的标志从“1”改为“0”。这样在这个过程中就有两个标志位同时为“1”。这种对于当前数据项的不确定的指针标志的混乱情况可以借助于约定来避免,当不止一个标志位为“1”时,总是“较高”的那位有效。由于一位的标志非常容易发生写错误,因此在修改指针标志位时极易产生错误的指针数据。从DE-A-196 50 993我们知道一种环形存储器,它附加了一个在环形存储器接口之外看不到的存储单元。在写过程中,总是将最陈旧的数据项覆盖,随后,指针将这样被修改,即使其指向新的数据项。当发生故障时,只有最陈旧的数据项的信息被丢失,但这在接口之外是看不到的。这种存储系统也存在着这样的可能性,即由于对指针的误写而造成错误的指针信息。本专利技术的目的在于,提供一种使安全写指针成为可能的方法。此外还提供了一种带有安全指针的环形存储器。为实现本专利技术的目的,根据权利要求1,不仅使用一个指针,还追加另一个冗余的指针。一种特别优选的实施形式是,第一个和第二个、冗余的指针要分开来写,特别是在时间上要分开,这样当写数据过程中发生可能的故障时,两个指针中至少有一个含有正确的指针信息。本专利技术的另一个特征是,第一个和第二个指针分别含有一个测试值。根据这些测试值可以区别出错误指针。可以仅仅通过一个写过程进行校正,亦即通过拷贝正确的指针来校正。修改指针的第一步优选在建立第一个指针的测试值的同时进行。在将第一个、新的指针与第二个指针比较之后,在必要时将第一个指针拷贝到第二个指针。如果在写第一个和第工个指针时发生故障,如在写EEPROM时掉电,此时第一个指针可能已经被修改,而第二个指针中还是旧的值。根据故障发生的时间以及错误的类型可以或者根据第二个指针将第一个指针的原始信息恢复,或者按照第一个指针补加修改第二个指针。尤其当两个指针在时间上分开写时,使用一个额外的、冗余的指针,可以实现能克服错误的指针数据的安全保护。此外由此带来的可能性是,在各种情况下都可以按需要重构指针内容,特别是当在修改指针过程中发生掉电时。每个指针所属的测试值主要由相关存储地址的补码构成。指针由当前存储单元的地址或称序号构成,测试值由其补码构成。有一种特殊的结构,其中每个指针由两个字节组成,第一个字节(8位)中含有地址码的两个16进制数,第二个字节含有该16进制数的补码。根据本专利技术,通过一种值得推荐的方法,也可以实现多重冗余,以实际地在任意时间实现错误识别和错误校正。特别是当掉电发生时,使指针内容的重构成为可能。根据本专利技术的方法,增加第二个指针以及测试值所消耗的存储空间以及额外的写周期是很有限的,但却实现了近乎完美的数据安全。这种优点尤其是在智能卡的应用中十分明显,在智能卡中含有敏感数据,对安全有特殊的需求。与上述措施相关,该措施的另一项应用是,在周期性存储器中扩展一个存储单元,而这个额外的存储单元从外面,亦即环形存储器的接口之外,是看不到的。每次要被写入的新数据将被写入最陈旧的数据项的位置,这样当故障发生时,只有最陈旧的数据项会丢失,而这对外是不可见的,因为从外面只能看到不带额外存储单元的特定数目的存储单元。下面依据附图对本专利技术的实施例进行详细描述。其中附图说明图1示出了一个环形存储器的第一个和第二个指针的存储单元;图2为一个具有确定数量存储单元的环形存储器的示图,其中形象地示出了写入一个新数据项的三个阶段,以及相应的第一个和第二个指针的存储单元;图3是一个流程图,它示出了第一个指针和第二个指针的修改过程以及奇偶校验,以及图4是写第一个和第二个指针的三个相连接的步骤。在下面要叙述的实施例中特别涉及到一种带有环形存储器管理的EEPROM。为了向环形存储器中写入新的数据项,将以熟知的方式向EEPROM发送电信号,以改变指针指向的存储单元的状态。但是本专利技术也可以用于其他的环形存储器,也可以用于虚拟环形存储器。先来看图2,左边有一个标记着I的环形存储器10,I表示写过程的第一阶段。环形存储器10有n个存储单元R1,R2,R3,…Rn。在每一个存储单元中都有一个数据项,在图中用与编号存储单元相对的D#1,D#2,…D#n来表示。指针P指向当前的,在循环写过程中最新的数据,在本例中,在图2中I,指针指向存储单元R2中的数据项D#2。在图2中环形存储器10的下方示出了指针P。指针P含有第一个指针,它被存放在第一个指针存储单元RP1,此外还有一个冗余的第二个指针,它被存放在另一个指针存储单元RP2。第一个指针实际上由指针元素构成,以存储单元地址码的形式出现,在这里用P1表示。第一个指针的其他组成部分是测试值,这里是作为P本文档来自技高网...

【技术保护点】
一种用于安全写指针(P)的方法,其中,指针指向环形存储器(10;10’)中被包含在存储单元(R1,R2,…)中的数据项,其中,a) 除第一个指针(P1,P1↑[*]),还额外增加一个与之冗余的第二个指针(P2,P2↑[*]);而且b ) 对第一个指针以及第二个指针都扩充了一个测试值。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:迪特尔韦斯
申请(专利权)人:德国捷德有限公司
类型:发明
国别省市:DE[德国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1