本发明专利技术涉及一种检测存储器元件的功能性能力的方法,该存储器元件具有一栈存储器(SA),其中该栈存储器(SA)占据该存储器元件内的一限定区域,并且其中定义了一栈存储器指针,以地址的形式显示数据正被从该位置移出或者向该位置写入的栈存储器的位置。本发明专利技术的区别特征包括:在该存储器元件中,位于一待检测存储区域之外的限定长度的一个区被划定,并被用作一辅助存储器(HS);在用于检测存储器元件的一测试程序启动之前,该栈存储器指针的当前地址被保存,然后该栈存储器指针被分配一与该辅助存储器(HS)相关联的地址,从而在该测试程序期间,该辅助存储器(HS)被作为工作存储器;并且在该测试程序终止以后,该栈存储器指针被重新分配在测试程序启动之前显示的那个位置的地址。
【技术实现步骤摘要】
【国外来华专利技术】本专利技术涉及检测具有栈存储器的存储器元件的功能能力的方法,其中该栈存储器占据该存储器元件内的限定区域,并且其中定义了栈存储器指针,该指针以地址的形式显示数据正在从其移出或者向其写入的栈存储器的位置。例如,在本质安全型测量装置用于确定和监视过程变量的情况下使用这样的方法。该存储器元件是易失性存储器,诸如,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的功能能力的测试程序。特别适合的是不需要本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:佛朗哥·费拉多,
申请(专利权)人:恩德莱斯和豪瑟尔两合公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。