检测存储器元件的功能能力的方法

文档序号:6738317阅读:252来源:国知局
专利名称:检测存储器元件的功能能力的方法
检测存储器元件的功能能力的方法本发明涉及检测具有栈存储器的存储器元件的功能能力的方法,其中该栈存储器占据该存储器元件内的限定区域,并且其中定义了栈存储器指针,该指针以地址的形式显示数据正在从其移出或者向其写入的栈存储器的位置。例如,在本质安全型测量装置用于确定和监视过程变量的情况下使用这样的方法。该存储器元件是易失性存储器,诸如,RAM(随机存取存储器)或者非易失性存储器,例如,EEPROM或者闪速存储器。现有技术中已知用于检测电子数据存储器的不同方法。一种通常使用的方法是循环冗余校验。在该方法中,在最简单的情况下,针对特定大小的每个数据块来形成签名,并且将该签名附连到该数据块。同样的方法被重新用于包括附连签名的数据块。在该操作之后,结果应当是零。如果不是零,则存储器中发生了错误。然而,这样的测试方法仅可以仅在数据块的内容在测试期间不发生变化的时候使用。由于执行这样的测试的程序通常是模块化构造的,并且需要存储器容量,所以有必要从测试中排除当前正用于存储的区域。这是相对复杂、充满风险的,并且执行测试程序需要时 间。然而,为了不使得其中应用该存储器元件的装置的功能能力降级,测试程序需应当花费尽可能少的时间。本发明的目的在于提供一种方法,该方法支持通过模块化构造的程序来连贯地检测存储器元件的完整区域的功能能力。实现该目的的特征包括在存储器元件中,限定长度的第一区被划定,并且用于存储至少一个签名,该至少一个签名包括与检测该存储器元件的功能能力相关的数据;在该存储器元件中,限定长度的第二区被划定,并且用作辅助存储器;其中,以下述方式选择该第一区和该第二区的位置使得第一区和第二区彼此邻接,并且位于待检测的存储器区域外部;该待检测存储器区域由模块化构造的测试程序来检测;其中在该测试程序启动之前存储该栈存储器指针的当前地址,并且然后对该栈存储器指针指派与该辅助存储器相关联的地址,使得在该测试程序期间,该辅助存储器用作工作存储器;并且在该测试程序终止之后,对该栈存储器指针重新指派该在测试程序启动之前由栈存储器指针显示的那个位置的地址。附加的辅助存储器支持在测试程序运行期间,该栈存储器(也称作堆栈)不用被访问,使得其单元不改变。这样,测试程序可以在一次运行中测试整个存储器区域,这意味着时间上的节省。在测试阶段期间,程序切换为辅助存储器,使得具有剩余的待检测存储器区域的栈存储器可以直接被测试。辅助存储器优选地是使用先进后出原则的栈存储器。优选地,形成并存储三个签名。第一签名在整个待检测存储器区域上形成,并且反映了测试程序启动时的状态。第二签名在不包括当前测试单元的同一的区域上形成。第三签名是可以改变的签名。它在测试单元的测试期间不断被重新计算,并在该测试单元的测试期间与第二签名作比较,或者在该测试单元的测试结束时与第一签名作比较。在每个情况下,如果彼此比较的签名相同,那么在该测试单元中没有发生存储器故障。签名的长度,即比特数目,取决于待检测存储器区域的大小。启动后,测试程序逐个检测所有测试单元,使得在测试程序结束之前,所有测试单元都已经被检测,或者测试程序针对各个测试单元而重新启动,使得在检测各个测试单元之间具有特定时间间隔,在该时间间隔期间,执行存储器元件的预定功能。如果存储器元件是测量装置的电子装置的一部分,那么这样的功能例如是测量数据的存储。在本发明的解决方案的第一实施例中,透明GALPAT(跳步图)用作测试程序。这里涉及一种在装置的运行时间期间执行的诊断方法,即在存储器元件的常规操作期间,并且在该情况下,不需要确保在功能检测之前的待检测存储器区域的安全。该方法相对复杂,这是事实;然而,它具有超过99%的闻故障发现概率。例如,当存储器兀件是必须满足闻安全性需要,例如SIL3,的装置的一部分时需要该方法。根据本发明方法的其他实施例,对于在第一区(签名)位于第二区(辅助存储器)之前的情况下,从末端开始写入第二区,使得任何溢出都被写入第一区。换言之,用于签名的第一区具有比用于辅助存储器的第二区更低值的地址范围,并且从其地址范围中最高值的地址开始写入辅助存储器。如果发生了溢出或者“栈溢出”,这意味着如果为辅助存储器保留的存储器容量不足,那么次低的地址被覆写。由于已经写入了签名的一部分,所以签名因而被改变。这立即被识别为错误。相应地,对于在第一区位于第二区之后的情况下,第二区从前端开始写入,使得如果发生了溢出,则该溢出将被写入第一区。 本发明的另一实施例提供了,辅助存储器的大小显著小于栈存储器的大小。辅助存储器在测试程序检测存储器元件期间仅用作工作存储器。因此,相对小的大小,即低存储器容量,是足够的,使得可用存储器区域不会显著变小。在实施例中,以下述方式选择辅助存储器的大小,使得其总共是栈存储器大小的5%到10%之间。另一实施例提供了,在存储器元件具有1024字节的存储器容量的情况下,划定6个字节用于签名,并且14个字节用于辅助存储器。在该分配中,由于附加辅助存储器而导致的存储容量的损失小到可忽略。优选实施例提供了,检测RAM(随机存取存储器)的功能能力。在另一实施例中,在启动测试程序之前,检测辅助存储器和签名的功能能力。辅助存储器和签名的功能能力优选地使用简单的测试程序来检测,这比执行实际存储器区域的检测更简单,并且具有可接受的错误比特发现率。这样,节省了测试辅助存储器和签名的时间。在优选实施例中,在测试程序终止时,检测辅助存储器中的栈存储器指针的当前位置是否与该测试程序启动时的起始位置一致。如果辅助存储器是栈存储器,则必须满足该条件。测试程序优选地以下述方式来设计,使得栈存储器指针在调用功能时增加,并且此后降低回去。如果需要额外的存储器容量,那么栈存储器指针相应地增加,但是一旦所存储的数据再次被读出,栈存储器指针就被设置回去。这样,在测试程序启动时栈存储器指针的开始位置以及在测试程序终止时的结束位置是相同的。在结束位置与起始位置的比较中,可以由偏差来确定测试程序不正确地运行。本发明的实施例提供了,执行程序运行控制,该程序运行控制检测整个待检测存储器区域是否确实由测试程序进行了检测。例如,在测试程序的特定位置处附加签名。在测试程序结束时,该总和必须与特定值相对应。如果总和与该值不同,那么测试程序中出现了错误,并且待检测存储器区域的位置被错误或不完整地检测。当然,其他程序运行控制也可以被替代地执行。现在将基于附图
来更具体地解释本发明,唯一的附图显示如下图I是RAM的分区的示意性表示。图I使用RAM的示例示意性地示出了将存储器元件分割成具有不同功能的区。在这样的情况下,以标记RAM区是不应分配单独功能的RAM的一部分,并且在某种意义上说,表示实际RAM区域。在这样的情况下,各个区的大小应当理解为仅仅是示例,其中区之间的大小的比率在这样的实施例中特别有利。第一区包括由测试程序形成和存储的三个签名两个参考签名SI和S2以及临时签名S3。将结合测试程序来解释其含义。这三个签名SI、S2、S3—样长,其中其长度取决于待检测RAM区域的大小。因此,为了获得足够高的错误发现率,例如,16比特的签名对于4千字节的存储器大小而言是足够的。
与对于错误发现率和可能的消耗时间的各种需求相对应,从现有情况中选择用于检测RAM的功能能力的测试程序。特别适合的是不需要RAM的内容备份的测试程序。为了实现高安全标准,透明GALPAT(跳步图)是特别适合的。在这样的情况下,第一参考签名SI在整个待检测RAM区域上形成。第二签名S2对于除了当前待检测的单元,测试单元Z之外的所有待检测单元而形成。然后,该测试单元的内容被颠倒,并且为这些而形成必须与第二签名S2—致的临时签名S3来检测剩余单元的内容。在对剩余单元之一的每次读取访问之后,检测测试单元Z的内容。经过一个完整的运行之后,测试单元Z再次被颠倒,并且相同的方法应用于具有重新存储的内容的测试单元Z。这对于作为测试单元Z的每个单元而重复。测试单元Z的大小优选地通过RAM的架构来确定,即在16比特架构的情况下,测试单元的大小也是16位。这样支持特别高效地执行功能检测。除了所描述的透明GALPAT之外,其他测试程序也适用于功能检测RAM。例如,可以以特定模式写入测试单元,然后检测其内容是否在两次颠倒之后被再生。为此,然而,在测试程序启动之前需要测试单元的原始内容的备份;这导致需要更多时间来执行功能检测。RAM的第二区与辅助存储器HS( “辅助栈”)相关联。这在测试程序的运行期间替换栈存储器SA( “栈”),并且不是待检测RAM区域的一部分。然而,辅助存储器HS的功能能力优选地也是由独立程序来检测。辅助存储器HS的存储器空间之后是实际RAM区域以及栈存储器SA。这两个区构成待检测RAM区域。在RAM区域和栈存储器SA之间存在另一签名S4,该签名S4在常规操作期间,即程序的运行期间,在RAM中不改变。有规律地检测签名S4的变化。当栈存储器SA中的存储器容量不足,并且因此最近的单元被写入时,签名S4发生变化。由于栈存储器SA被从后向前写入,即从最高值的地址开始,所以该最近的单元在签名S4的区域中。因此,可以检测到栈存储器SA中的溢出。待检测单元在测试程序运行期间必须是稳定的。为了能够检测栈存储器SA的位置,测试程序因而不使用栈存储器SA,而是使用辅助存储器HS,该辅助存储器HS优选地也被实现为栈存储器。为此,在测试程序开始时,当前从其读出数据或者当前对其写入数据的显示地址的栈存储器指针(也称为栈指针)被从栈存储器SA被传送到辅助存储器HS。在该时间点显示栈存储器指针的栈存储器SA中的地址被存储在栈存储器SA或辅助存储器HS中,使得在测试程序终止时,栈存储器指针可以再次被设置回到该位置。栈存储器指针在测试程序开始时示出辅助存储器HS的最高值的地址。在测试程序期间,对栈存储器指针指派相对更低的地址。如果辅助存储器HS的存储容量不足,那么临时签名S3被写入,这导致错误报告。辅助存储器HS的溢出因此被自动识别。优选地,待检测位置并非一个紧接一个地被测试,而是每时间间隔仅测试一个测试单元,例如,每秒。因此,测试程序在检测一个测试单元Z之后被中断,或者测试程序针对每个测试单元Z而重新启动。栈存储器指针在栈存储器SA和辅助存储器HS之间相应地频繁切换。在检测各个测试单元之间,执行RAM的预定功能,例如,测量数据的保存。该中断提供了下述优点改变栈存储器的单元并且因而不能在执行RAM测试期间发生的进一步的功能测试不能被长时间停止。另一个这样的功能检测的示例是,检测栈签名S4,以诊断栈溢出。因此,通过在常规操作和存储器功能测试之间交替,保证了与发现错误相关的最大的可靠性。附图标记列表
51第一参考签名
52第二参考签名
53临时签名
54栈存储器的签名 HS 辅助存储器/辅助栈 SA 栈存储器/栈
Z 测试单元
权利要求
1.一种检测具有栈存储器(SA)的存储器元件的功能能力的方法,其中,所述栈存储器占据所述存储器元件内的限定区域,并且其中,定义了栈存储器指针,所述栈存储器指针以地址的形式显示数据正在其移出或者对其写入的栈存储器位置,其特征在于, 在所述存储器元件中,限定长度的第一区被划定,并且用于存储至少一个签名(S1、S2、S3),所述至少一个签名(S1、S2、S3)包括与检测所述存储器元件的功能能力相关的数据; 在所述存储器元件中,限定长度的第二区被划定,并且用作辅助存储器(HS), 其中,以下述方式选择所述第一区和所述第二区的位置使得所述第一区和所述第二区彼此邻接,并且位于待检测存储器区域外部; 所述待检测存储器区域由模块化构造的测试程序来检测, 其中,在所述测试程序启动之前,存储所述栈存储器指针的当前地址,并且然后对所述栈存储器指针指派与所述辅助存储器(HS)相关联的地址,使得在所述测试程序期间,所述辅助存储器(HS)用作工作存储器; 并且在所述测试程序终止之后,对所述栈存储器指针重新指派在所述测试程序启动之前由所述栈存储器指针显示的那个位置的地址。
2.如权利要求I所述的方法,其特征在于, 透明GALPAT,跳步图,用作测试程序。
3.如权利要求I或2所述的方法,其特征在于, 对所述第一区位于所述第二区之前的情况,所述第二区被从后到前写入,使得任何溢出都被写入所述第一区。
4.如权利要求I或2所述的方法,其特征在于, 对于所述第一区位于所述第二区之后的情况,所述第二区域被从前向后写入,使得任何溢出都被写入所述第一区中。
5.如前述权利要求中的至少一项所述的方法,其特征在于, 所述辅助存储器(HS)的大小显著小于所述栈存储器(SA)的大小。
6.如权利要求5所述的方法,其特征在于, 以下述方式选择所述辅助存储器(HS)的大小使得所述辅助存储器(HS)的大小总计在所述栈存储器(SA)的5%到10%之间。
7.如前述权利要求中的至少一项所述的方法,其特征在于, 在存储器元件具有1024字节的情况下,6个字节被限定用于所述签名,14个字节限定用于所述辅助存储器。
8.如前述权利要求中的至少一项所述的方法,其特征在于, 检测随机存取存储器RAM的功能能力。
9.如前述权利要求中的至少一项所述的方法,其特征在于, 在启动所述测试程序之前,检测所述辅助存储器(HS)和所述签名(S1、S2、S3)的功能能力。
10.如前述权利要求中的至少一项所述的方法,其特征在于, 在所述测试程序终止时,检测所述辅助存储器中的所述栈存储器指针的当前位置是否与所述测试程序启动时的起始位置一致。
11.如前述权利要求中的至少一项所述的方法,其特征在于,执行程 序运行控制,所述程序运行控制检测所述整个待检测的存储区是否由所述测试程序进行了检测。
全文摘要
本发明涉及一种检测存储器元件的功能性能力的方法,该存储器元件具有一栈存储器(SA),其中该栈存储器(SA)占据该存储器元件内的一限定区域,并且其中定义了一栈存储器指针,以地址的形式显示数据正被从该位置移出或者向该位置写入的栈存储器的位置。本发明的区别特征包括在该存储器元件中,位于一待检测存储区域之外的限定长度的一个区被划定,并被用作一辅助存储器(HS);在用于检测存储器元件的一测试程序启动之前,该栈存储器指针的当前地址被保存,然后该栈存储器指针被分配一与该辅助存储器(HS)相关联的地址,从而在该测试程序期间,该辅助存储器(HS)被作为工作存储器;并且在该测试程序终止以后,该栈存储器指针被重新分配在测试程序启动之前显示的那个位置的地址。
文档编号G11C29/52GK102792383SQ201180011263
公开日2012年11月21日 申请日期2011年1月28日 优先权日2010年2月24日
发明者佛朗哥·费拉多 申请人:恩德莱斯和豪瑟尔两合公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1