数据保护用的方法和用于其实施的设备的制作方法

文档序号:6566716阅读:132来源:国知局
专利名称:数据保护用的方法和用于其实施的设备的制作方法
技术领域
本发明涉及一种用于保证数据处理设备中的数据不受损害的方 法和能够实施这种方法的设备。在用于控制机器或过程而使用的设备中,有重要意义的是,毫 无疑问地确保所述设备为了实施其控制任务而动用的数据不受损 害。必须明确地识别出所述数据中的例如可能源于设备自身的技术 干扰或源于未被授权的第三方存取而引起的误差,以便可以禁止不 再确保其运行可靠性的每种功能。长久以来就已知的是,通过以编码的形式存储数据并且只在所处理设备中的数据不受损害。在最简单的情况下,编码可以是奇偶 才交验位或校验和的添加。这种代码的基本优点是其简单性,这允许实时地或完全不依赖是存在的代码字的校验。因此例如微计算机是公知的,所述微计算 机除了分别八个存储数据字节的不同位的存储器器件之外还具有用 于奇偶校验位的第九存储器器件,并且所述微机算计具有控制电 路,所述控制电路对从八个存储器器件所读取的每个字节计算奇偶 校验位,利用在第九存储器器件中所存储的比较且在不一致时用信 号发送干扰。通过这种技术,虽然可能识别出在所存储的数据中的误差,然 而不能校正误差。试图存取有误差的数据的控制过程因此能够在所有情况下被中断;并未规定继续基于校正的数据的过程。然而这对 于以下应用并不是令人满意的解决方案,即在所述应用中过程中断 完全如同在使用错误的数据的情况下的过程继续可能是安全性风 险。在汽车控制设备的领域中公知的是,为了避免这些问题,多次 存储安全相关的数据,使得在应该存取的数据值被识别为有差错的 情况下,能代替有误差的值而被使用的拷贝可供使用。 这种实施方式与巨大的存储器需求相关联,因为一方面每一安 全相关的数据都必须以至少两份被存储,且此外必须存在冗余信 息,所述冗余信息允许识别应该存取的数据是否是有误差的。发明优点通过本发明,如在权利要求1和8中所限定的那样,提供一种用 于保证在数据处理设备中的数据不受损害的方法和一种用于实施该 方法的适当的设备,其允许以大大减少的对存储空间的耗费来确保 数据不受损害。码,即第一:码:其中由;i第一代码仅仅要求该第一代码必须能 够识别出误差的存在,并且所述第一代码因此能够简单且快速地可被解码;和第二代码,所述第二代码除了识别误差之外,也允许校 正所述误差,并且当已读取不对应于第一代码的存在的代码字的数 据字时被使用,以便识别并消除其误差。 根据本发明的方法包括步骤a) 从存储器读取数据包,并校验该数据包是否是第一代码的 存在的代码字;b) 如果该数据包是存在的代码字,则作为未受损害的而接受 该数据包;c) 如果该数据包不是存在的代码字,则cl) 确定校正误差的第二代码的至少一个数据块,其与所 读取的数据包相交叠;c2 ) 借助于第二代码在数据包中搜寻误差; c3) 根据搜寻的结果来校正数据包;以及作为未受损害的而接受经校正的数据包; 如果在步骤c3)之后确定经校正的数据包是第一代码的存在的 代码字,当只执行步骤c4)时,可使该方法的安全性显著提高。根据本发明的方法能够相继地被应用于多个数据包,其中这些 数据包可以具有不同的长度。特别是如果数据包括分配在多个例程 中的程序指令,则可以确定至少部分地与程序例程之间的边界相一 致的数据包之间的边界。如果确定这种所读取的数据包对应于第一 代码的存在的代码字,则可以释放在这个数据包中所体现的例程用
于执行,而不依赖于例程中的另一个是否可能有误差。因此产生这 样的可能性,即如果数据包证明为有误差的,并且误差借助于第二 代码也不可被校正,则以有限的功能范围运行设备。有利地,借助于第二代码经误差校正的数据包被回写到存储器 中,其中事先从所述存储器有误差地读取了所述数据包,以便因此 校正存储器内容。通过这种方式可以自动地消除部分数据损失。为了可靠地排除对有误差的数据的不经意的存取,可以规定, 将每一个作为未受损害的而被接受的数据包以自由选择存取的方式 被记入存储器中,以及以自由选择存取的方式进行对这个存储器中 的数据包的以后存取。因为有误差的未经校正的数据包不到达这个 存储器中,所以排除了对其的存取。有利地,所接受的数据包在记入之前被解码,其中该解码优选 地在于,使第 一代码的由数据包所构成的代码字的仅仅用于检查误 差性的冗余部分与代码字的有效部分分开,并仅仅将后者作为经解码的代码字以自由选择存取的方式记入在存储器中。第二代码的代码字有利地也由与经解码的代码字相同的有效部分和从有效部分根据预先给定的方法可推导出的冗余部分组成,所述冗余部分在解码时可简单地被分开。本发明的其他特征和优点参考附图从下面的实施例的说明中得出。附1是作为根据本发明的数据处理设备的例子的汽车控制设备的框图;图2示出根据第一扩展方案在

图1的设备的闪速存储器中的数据分布;图3示出根据第二扩展方案在闪速存储器中的数据分布;图4是用于保证闪速存储器的数据不受损害的方法的第一扩展方案的流程图;以及图5是该方法的第二扩展方案的流程图。图l的框图示意性地示出根据本发明的控制设备的构造。该控制 设备包括微处理器或微控制器l,其通过总线2与闪速存储器3和RAM 4相连接。在该图中未示出的用于控制汽车(KfZ)发动机的运行的 传感器和执行机构通过总线2与微控制器l相连接。用于微控制器l的运行程序以编码的形式被存储在闪速存储器3中。为了能够进行对闪速存储器3的内容的解码,微控制器l所需要 的辅助例程被存储在ROM 5中。ROM 5在该图中被示为与微控制器1 分开的电路,但也可以为了改善对由未经授权方的操纵的保护而在 相同的半导体衬底上与微控制器l集成。图2示出用于在闪速存储器3中所存储的数据的结构的第一实 例。数据位在图2中分别通过矩形来代表,使得每一行代表9位数据 包pl、 p2…,所述9位数据包由八个表示为空矩形的有效位和一个阴 影线表示的奇偶校验位组成。每一数据包pl、 口2...也可以被理解为 代码的代码字,所述代码的代码字通过将奇偶校验位附加到字节上 而被获得。存储器的内容被分成多个块B1、 B2、…Bn,所述块分别 包括相同数目的数据包,例如255个。对数据块进行Reed-Solomon编 码,即每一块含有固定数目的有效数据包(例如223个)和较少数目 (这里为32)的从有效数据包根据确定的方法所计算的校正数据 包,所述校正数据包以公知的方式允许定位和校正Reed-Solomon代 码字中的误差。在图2中,块分别相关联在一起地被布置在存储器3中。但也可 能的是、并且对于逐步地读取有效数据也有利的是,将所有RS编码 的数据块的有效数据包布置在彼此紧接着的存储位置上并且分开地 存储所属的校正数据包。图3中示出闪速存储器3的改变的划分。这里每一个矩形代表一 个字节,且图表的每一行代表Reed-Solomon编码的例如255个字节的 数据块,所述数据块如在图2中的情况由233个有效数据字节N和32个 校正字节C组成。在闪速存储器中所存储的程序指令以多个例程的方 式被结构化,其中的每一个都占据多个这种RS编码的块B1、 B2、... Bn。在存储器中相继存储的例程之间的界限如此来确定,使得所述 块B1、 B2、…Bn中的每一个都含有由最大一个在图中通过不同的阴 影线类型所示出的例程组成的指令。属于相同例程的RS编码的块被 组合成数据包P1、 P2、 P3、 P4,其中的每一个都通过添加校验和信 息被第二次编码,其中校验和信息可以任意地直接紧接着所述校验 和所涉及的包P1、 P2、 P3或P4的有效数据被记入闪速存储器3中,或者多个包的校验和信息可以被总结在按照地址与其有效数据分开的 存储区域中。图4示出处理的流程图,其中微控制器l执行所述处理,用以验 证在根据图2结构化的闪速存储器3中的数据未受损害。这种验证尤 其可以分别在控制设备启动时或在足够的处理功率可供使用的情况 下也在控制设备运行期间的确定的时间进行。在步骤S1中,微控制器选取在闪速存储器中所存储的例程之 一。在步骤S2中,该微控制器选取这个例程的块Bi-Bl、 B2…或Bn, 并在步骤S3中选取块Bi的数据包pj (j = l、 2、…)。步骤S4是数据包pj的公知的奇偶校验。如果校验得出奇偶校验位是正确的,则该方 法直接进行到步骤S6;否则事先使误差计数器的分别在步骤S2中选 取块时被置零的数值E递增(步骤S5)。在步骤S6中校验是否选取了块Bi的所有数据包,并由此结束块 Bi的校验。如果不是,则该方法返回步骤S3;如果是,则继续进行 到步骤S7,在所述步骤S7中校验数值E是否大于零。如果这不是这样 的情况、即如果所有数据包的奇偶校验值都是正确的,则在步骤S8 中块被接受为是无误差的并被传输到RAM 4中,并且该方法跳到步 骤S18,对所述步骤S18在稍后的段进行探讨。如果在步骤S7中数值E表明为不同于零,则在步骤S9中将Reed-Solomon解码应用到块Bi上,以便确定块中的有误差的位的数目和位 置。在步骤S10中校验在步骤S9中所确定的误差数E'是否不同于误 差计数器的数值E。如果是,则两个误差数E、 E'之一必定是错误的, 并因此在步骤S9中所确定的关于假定的有误差的位的定位的说明也 是不可靠的。因为在这种情况下误差校正可能不是可靠的,所以用 于相关例程的该方法通过跳向S20而被中断。如果在步骤S10中确定所确定的误差数一致,则可以充分确信地 认为,对被识别为有误差的位的校正再次产生正确的数据,使得在 步骤S11中,对块Bi的包pj在包含有误差的位的所有块上进行相应的校正。在步骤SU中选取如此所获得的假定无误差的数据块Bi的数据 包pj (j = l、 2、…),并且它的八个有效位的奇偶性(Parity)在 步骤S13中予以确定。如果所确定的奇偶性与在第九位中所存储的奇 偶性的比较在步骤S14中得出不一致,则用于相关例程的数据的校正 就失败了,并且该方法转向步骤S20。如果该校验得出正确的奇偶 性,则接着在步骤S15中校验是否已经选取了块的所有数据包pj。如 果不是,则该方法返回到步骤S12,在那里选取新的数据包,如果是, 则结束块Bi的校正,块Bi在步骤S16中被接受并被记入RAM4中。此 外在步骤S17中,块Bi或者至少其被识别为有误差的数据包用相应的 校正的值被重写到闪速存储器3中,使得闪速存储器3的内容也再次 是正确的,并且误差在重新校验时不应该重复。接着在步骤S18中校验,是否处理了当前所选取的例程的所有 块。如果不是,则该方法返回到步骤S2,以便选择新的块,如果是, 则其间完整地被记入RAM 4中的例程被适当用于通过处理器单元7 执行(S19)。接着在步骤S20中校验,是否有未处理的例程剩余,如果是,则 在步骤S1中选取仍未处理的例程,并且对该未处理的例程重复本方 法。否则接着步骤S21,评价用于执行而被释放的例程所述例程是 否足以在也可能具有有限的功能范围的情况下运行控制设备。如果 RAM4中不缺少被判断为极其重要的例程,则处理器单元7开始执行 在其中所包含的例程(S22),其中必要时对于每一缺少的例程输出 误差信号。如果被判断为极其重要的例程缺少,则处理器单元7不运 行(S23 )。图5示出用于在图3中所示的以下情况的处理进程,即例程的程 序指令分别构成数据包的有效数据,并且数据包包括多个Reed-Solomon编码的块。在步骤S1'中的例程的选取同义于对数据包Pi (i-1、 2、...) 的选取。数据包Pi被完整地从闪速存储器3中读取。它被理解为代码 字,所述代码字包括有效数据部分和从该有效数据部分所计算的完 整性校验信息,例如多个奇偶校验位、循环的校验和、CRC数据或 诸如此类。微控制器1在步骤S2'中校验,数据字是否是允许的代码 字,其方式是该微控制器l从所读取的有效数据中计算完整性校验 信息,并与所读取的完整性校验信息相比较。在一致的情况下,所 读取的数据包是存在的代码字,并且在步骤S3'中被接受为是正确
的,且其有效数据被存储在RAM 4中。相反,在不一致的情况下, 必定存在误差。在这种情况下,在步骤S4'中选取相关包的块Bj (j =1、 2…)之一,并借助于RS解码在步骤S5'中搜寻这个块Bj的误 差并且必要时予以校正。如此频繁地重复步骤S4'和S5',直到在 步骤S6'中确定处理了数据包Pi的所有块。在此,不仅有效数据而 且所属的完整性校验信息可以被识别为有误差的并被校正。如果处理了包Pj的所有块,则借助于经校正的有效数据在步骤 S7'中重新计算用于包Pi的完整性校验信息,并在步骤S8'中与(必 要时在步骤S5'中经校正的)所读取的完整性校验信息相比较。在 一致的情况下,该方法进行到步骤S9',在所述步骤S9'在闪速存 储器3中明显有误差地被存储的数据包Pi用在步骤S5'中所获得的经 校正的数据包Pi被重写,紧接着该方法进行到步骤S3'。在不一致的 情况下,相关例程被识别为有不能修复的误差且不被接收到RAM 4 中(S10')。不仅紧接着步骤S3'而且紧接着S10',在步骤S11'中校验,是否还有待处理的例程或数据包剩余,并且如果是,则该 方法返回到步骤S1'。如果不是,则接着是结合图4所描述的步骤S21 至S23。通过这种方式,获得用于闪速存储器3的数据的高程度的安全 性,而不必提供用于所述数据的多次拷贝的存储位置。
权利要求
1.用于保证数据处理设备中的数据不受损害的方法,具有步骤a)从存储器(3)读取(S3、S1′)数据包(pj;Pi),并校验(S4;S4′)所述数据包是否是预先给定的第一代码的存在的代码字;b)如果所述数据包(pj;Pi)是存在的代码字,则作为未受损害的而接受(S8;S3′)所述数据包;c)如果所述数据包不是存在的代码字,则c1)确定校正误差的第二代码的至少一个数据块(Bi;Bj),其与所读取的数据包(pj;Pi)相交叠;c2)借助于所述第二代码在所述数据包(pj;Pi)中搜寻(S9;S5′)误差;c3)根据搜寻的结果来校正(S9;S5′)所述数据包;以及c4)作为未受损害的而接受(S16;S3′)经校正的数据包。
2. 如权利要求l的方法,其特征在于,如果在所述步骤c3)之 后确定(S14; S8'),所述经校正的数据包是所述第一代码的存在 的代码字,则只执行步骤c4)。
3. 如权利要求1或2的方法,其特征在于,要被保证不受损害的数据包括多个不同长度的数据包(Pi),并且对于所述数据包(Pi) 的每一个执行步骤a)至c4)。
4. 如权利要求3的方法,其特征在于,所述数据包括分配在多 个例程中的程序指令,并且至少一些在相继存储在所述存储器(3) 中的数据包(Pl、 P2…)之间的边界与程序例程之间的边界相叠合。
5. 如前述权利要求之一所述的方法,其特征在于,在步骤c3) 中所获得的经校正的数据包被回写(Sn、 S9')到所述存储器(3) 中。
6. 如前述权利要求之一所述的方法,其特征在于,每一个作为 未受损害的而被接受的数据包以自由选择存取的方式被记入(S8、 S16; S3')存储器(4)中。
7. 如权利要求6的方法,其特征在于,所述被接受的数据包在 记入之前纟皮解码。
8. 如前述权利要求之一所述的方法,其特征在于,代码分别被 用作第一和/或第二代码,其中,每一代码字由与经解码的代码字相 同的有效部分和可从所述有效部分推导出的冗余部分组成。
9. 尤其用于执行根据前述权利要求之一所述的方法的数据处 理设备,具有第一存储器(3),其中所述第一存储器的内容一方 面被划分成第一代码的多个数据包(pl、 p2、…;Pl、 P2、…P4) 并且另 一方面被划分成校正误差的第二代码的多个数据块(Bl、B2..... Bn);用于对数据字进行解码的解码装置(1);和用于校正数据块的误差的误差校正装置(1)。
10. 如权利要求9的设备,其特征在于,所述第一存储器(3) 在所述误差校正装置(1)的控制下可用经校正的数据块来重写。
11. 如权利要求9或IO的设备,其特征在于,所述设备具有 用于存储经解码的数据字的易失性存储器(4)。
12. 如权利要求ll的设备,其特征在于,所述设备包括用于 执行以数据字所编码的程序指令的处理器(1),其为了读取所述程 序指令而对所述易失性存储器(4)进行存取。
13. 如权利要求9至12之一所述的设备,其特征在于,所述设 备是汽车控制设备。
全文摘要
为了保证数据处理设备中的数据不受损害,a)从存储器(3)读取(S1′)数据包(Pi),并校验(S4′)该数据包是否是预先给定的第一代码的存在的代码字;b)如果该数据包(Pi)是存在的代码字,则作为未受损害的而接受(S3′)该数据包;c)如果该数据包不是存在的代码字,则c1)确定校正误差的第二代码的至少一个数据块(Bj),其与所读取的数据包(Bi)相交叠;c2)借助于该第二代码在该数据包(Bi)中搜寻(S5′)误差;c3)根据搜寻的结果来校正(S5′)该数据包;以及c4)作为未受损害的而接受(S3′)经校正的数据包。
文档编号G06F11/10GK101128802SQ200680005988
公开日2008年2月20日 申请日期2006年2月24日 优先权日2005年2月25日
发明者M·费斯拉格 申请人:罗伯特·博世有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1