一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于将数据元素安全存储在外部存储器中的方法和接口模块与流程

2022-02-21 03:29:59 来源:中国专利 TAG:


1.本发明涉及一种用于将数据元素安全存储在外部存储器中的方法以及一种用于执行该方法的接口模块、一种用于执行该方法的微控制器和一种用于执行该方法的计算单元。


背景技术:

2.在像sram、闪存、pcm或dram那样的工作存储器中,为了保护数据内容,除了数据位之外可以存储其它被称作“纠错码(error correction code)”(ecc)的位,用于进行错误修正或错误识别。在数据元素之内的单位错误或多位错误可以借此被识别并且根据在该数据元素之内的位错误的数目来被修正。
3.在嵌入式系统、比如机器或车辆的控制设备中,使用所谓的微控制器,这些微控制器除了一个或多个处理器内核之外拥有特定的、有限量的内部工作存储器,程序和数据在执行期间被存储在该内部工作存储器中。对于该工作存储器来说,尤其是针对安全关键的应用、比如机动车中的安全关键的应用,可以在微控制器中实现借助于ecc的错误修正方法。
4.在微控制器中用作工作存储器的典型的sram存储单元包括6个晶体管,并且在制造方面相对应地相对昂贵且复杂,因而集成在微控制器中的工作存储器常常只被安排成如此大,使得其足以用于基本应用。出于成本原因,在微控制器的情况下通常不设置或不可能实现工作存储器的内部可扩展性,因为工作存储器与处理器内核一起集成在芯片中。
5.与设置在微控制器上的工作存储器相比,为了也能够执行对更大的工作存储器进行访问的应用,可以经由通信接口、例如spi接口(serial peripheral interface(串行外围接口))连接外部工作存储器。该外部工作存储器可以成本低廉地以dram存储单元的形式来被实施,这些dram存储单元只需要一个晶体管。不过,在可用的外部可连接工作存储器中,没有实现错误修正功能。


技术实现要素:

6.按照本发明,提出了具有独立专利权利要求的特征的一种用于将数据元素安全存储在外部存储器中的方法以及一种用于执行该方法的接口模块、一种用于执行该方法的微控制器和一种用于执行该方法的计算单元。有利的设计方案是从属权利要求以及随后的描述的主题。
7.按照所提出的方法,在存储器的唯一的寻址阶段之内写数据元素和所属的错误修正值(在下文也称作ecc值),省去用于确定ecc值的存储地址的单独的地址计算以及在针对ecc值的专有的寻址阶段期间另一长时间的地址访问。这是有利的,因为由此存储器访问时间相对于数据元素和ecc值的彼此独立的处理而言被减少。
8.通过接口模块来执行对存储地址和ecc值的计算。该接口模块被实施为微控制器的硬件模块。在处理器内核中或者作为软件来实现的相对应的功能性成为多余。相对应地,
不需要更改现有的处理器内核或软件。接口模块尤其构造为用于串行数据总线的模块,尤其构造为spi模块(串行外围接口(serial peripheral interface))。
9.接口模块被设立为:将数据元素在微控制器的地址空间中的存储地址(所谓的逻辑存储地址)映射在外部存储器的(针对这些数据元素的)存储地址(所谓的物理存储地址)中,其中在该映射的情况下考虑ecc值、也就是说该ecc值的存储空间需求。
10.可以使用任意适当的错误修正方法,比如汉明码(hamming-code),作为用于计算ecc值的错误修正方法或错误识别方法。本领域技术人员本身已知这种方法。
11.经由接口模块连接的外部存储器尤其可以是易失性存储器,该易失性存储器被微控制器用作工作存储器,也就是说dram存储器(dram,动态随机存取存储器(dynamic random access memory))。不过,在非易失性存储器的情况下应用该方法也是可行的。
12.这里,如下存储器访问(写或读)被理解为“寻址阶段”,在该存储器访问的情况下,从初始地址开始写或读特定数目的连续(也就是说要在连续地址上存储或被存储在连续地址上的)位(或字节)。初始地址被称作相对应的数据的存储地址。
13.优选地,该方法包括从存储器中对所写的数据元素的读过程,其中该读过程包括:通过接口模块确定数据元素的存储地址;在寻址阶段之内从存储器中读数据元素和ecc值;通过接口模块,根据所读的数据元素来计算错误修正比较值(在下文也称作ecc比较值);而且通过接口模块将ecc比较值与所读的ecc值进行比较,以便查明该ecc比较值和该ecc值是相同还是不相同。进一步优选地,该读过程包括:如果ecc比较值与所读的ecc值相同,则发送所读的数据元素;或者如果ecc比较值与所读的ecc值不相同,则发送基于所读的数据元素和所读的ecc值来被修正的数据元素。
14.又通过接口模块来执行对存储地址和ecc比较值的计算。存储地址必须在读过程中被确定或被重新计算,因为该存储地址是一种物理地址,该物理地址说明了在存储器中的实际存储位置,而从想要读取数据元素的计算机程序或具有该接口模块的微控制器的角度仅知道相对应的逻辑存储地址。
15.优选地,数据元素的读过程包括:通过接口模块,接收所读的数据元素的被更改的部分数据元素;根据被更改的部分数据元素和所读的数据元素的未被更改的部分来形成被更改的数据元素;基于被更改的数据元素来计算被更改的错误修正值;并且在寻址阶段之内开始于存储地址地写被更改的数据元素并且紧跟在其之后写所计算出的被更改的错误修正值。经此实现了读写过程,借助于该读写过程例如可以实现所谓的“读-更改-写(read-modify-write)”指令。所读的数据字的被修改或更改的部分通过接口模块被插入到所读的数据字中,并且同样通过接口模块来进行对错误修正值的重新计算。这些步骤从软件角度不可见或透明,使得该软件必须被适配。
16.优选地,该方法包括:所要存储的数据元素由微处理器的至少一个处理器内核发送给接口模块和/或由接口模块发送给微处理器的至少一个处理器内核。即,优选地由处理器内核来进行该存储。不过,也可能的是:微控制器的其它功能元件执行对外部存储器的存储器直接访问(dma,direct memory access(直接存储器访问)),接着同样经由接口模块来进行该存储器直接访问。
17.按照本发明的用于将数据元素安全存储在外部存储器中的接口模块被设立为执行上述方法之一,尤其是,该接口模块被设立为计算针对所要存储的数据元素或针对所读
的数据元素的存储地址和ecc值,而且该接口模块被设立为将数据元素在微控制器的地址空间中的存储地址映射在外部存储器的地址空间中的存储地址中,其中在该映射的情况下考虑ecc值的存储空间需求。
18.按照本发明的微控制器包括按照本发明的接口模块,而且优选地包括至少一个处理器内核,该处理器内核与该接口模块连接。
19.按照本发明的计算单元、例如机动车的控制设备,包括按照本发明的微控制器并且优选地包括外部存储器,该外部存储器与接口模块连接。
20.本发明尤其适合于所谓的“embedded systems(嵌入式系统)”或嵌入式系统。所述嵌入式系统被理解为纳入(嵌入)到技术上下文中的电子计算机或computer(计算机)。在此,计算机要么承担监视、控制或调节功能要么负责一种形式的数据或信号处理,例如在加密或解密、编码或解码或者过滤方面的数据或信号处理。对嵌入式系统的典型要求是实时能力。处理速度不可预测的处理不能被容忍。许多应用(尤其是在安全相关的系统——即可能会威胁人类、伤害人类或者甚至使人类死亡的系统——中的控制)的前提条件是该系统的可预测的反应时间。
21.本发明的其它优点和设计方案从描述以及随附的附图中得到。
22.本发明依据实施例在附图中示意性示出并且在下文参考附图予以描述。
附图说明
23.图1a示出了按照用于安全存储的方法的优选实施方式的写过程的流程图;图1b示出了按照用于安全存储的方法的优选的实施方式的读过程的流程图;图2示出了可优选地被用于实现按照本发明的方法的微控制器;以及图3示例性示出了两个数据元素连同所属的eec值的布置,如其通过本发明所实现的那样。
具体实施方式
24.图1a示出了按照本发明的优选实施方式的用于将数据元素安全存储在被连接到微控制器上的外部存储器中的写过程的流程图。在接下来的描述中(也在其它附图中),尤其是参考数据元素和ecc值,这有助于语言简化并且应就至少一个数据元素和至少一个ecc值而言被读。即本发明并不限于单个数据元素。
25.数据元素不仅可以是程序数据、也就是说程序指令,而且可以是被计算机程序使用且必要时被更改的数据。在该方法中,使用接口模块,外部存储器经由该接口模块来与微控制器连接。接口模块被设立为执行地址计算和错误修正计算。
26.在步骤10中,由接口模块接收所要存储的数据元素。
27.在步骤12中,进行地址计算或地址确定,在该地址计算或地址确定中计算所要存储的数据元素的存储地址。此外,在步骤14中,计算该数据元素的错误修正值(ecc值)。不同于所示出的那样,步骤12和14(对存储地址或ecc值的计算)也可以以相反的顺序来被执行。两个步骤12、14都通过接口模块来被执行。
28.在步骤16中,数据元素和ecc值在唯一的寻址阶段期间被写到存储器中的所计算出的存储地址上,也就是说该数据元素开始于所计算出的存储地址地被写并且ecc值直接
被写到数据元素之后。因此,不需要计算针对ecc值的专有的存储地址。
29.图1b示出了按照用于安全存储的方法的优选实施方式的读过程的流程图。
30.在步骤22中,进行地址计算,在该地址计算中确定数据元素存储在其上的存储地址。这里(以及为了在写过程中的地址计算)应注意:微控制器的处理器内核或其中实施的计算机程序虽然知道所存储的数据元素的逻辑地址,从处理器内核的角度可以利用该数据元素来访问该逻辑地址,但是通过地址计算来确定数据元素和ecc值实际存储或被存储在存储器中的物理地址。在步骤22中(以及之前在步骤12中)被确定或计算的存储地址是该物理地址。因而,该物理地址必须在读过程中被重新计算或确定。通过接口模块来执行对存储地址的该确定,不涉及该处理器内核。
31.在步骤24中,开始于存储地址地,从存储器中读数据元素和紧随其后存储的ecc值。这又在唯一的寻址阶段之内进行,不需要单独的寻址阶段来读取ecc值。
32.在步骤26中,通过接口模块根据所读的数据元素来计算错误修正比较值(ecc比较值)。在步骤28中,将该ecc比较值与所读的ecc值、也就是说在写数据元素时有效的ecc值进行比较。在比较时查明数据元素是否已被更改、即是否发生过存储错误。
33.如果ecc比较值与ecc值相同,也就是说如果(在所使用的错误修正方法的意义上)没有发生过存储错误,则将所读的数据元素发送给微控制器的至少一个处理器内核,步骤30。
34.如果ecc比较值与ecc值不相同、也就是说如果发生存储错误,则在步骤32中首先检查该错误是否可以被修正。这一点是否可能取决于所使用的用来计算ecc值的错误修正方法。如果例如针对64位长的数据元素使用8位长的ecc值,则通常1位错误可以被识别并修正,并且2位错误可以被识别但不能被修正。
35.如果查明该错误可以被修正,则在步骤34中对该错误进行修正,也就是说确定经修正的数据元素。在步骤36中,经修正的数据元素被传输给微控制器的至少一个处理器内核。如果另一方面查明该错误不能被修正,则在步骤38中将相对应的错误报告传送给微控制器的至少一个处理器内核。
36.在写过程的情况下(图1a)或在读过程的情况下(图1b),通过接口模块来执行对存储地址(步骤12或步骤22)的计算或确定和对ecc值(步骤14)或ecc比较值(步骤26)的计算,参见图2和3。即不需要更改该处理器内核(或者这些处理器内核)的设计或硬件。也可以使用计算机程序或对这些计算机程序进行编程,而无需了解接口模块和错误修正方法。
37.图2示出了微控制器50,该微控制器可以被用于执行按照本发明的方法。这里,微控制器50示例性地集成在控制设备52、比如机动车或机器控制器的控制设备中。微控制器50包括至少一个处理器内核54、与之连接的(内部)易失性工作存储器56(dram,动态随机存取存储器(dynamic random access memory))和同样与处理器内核54连接的接口模块58。“连接”这里以及在下文应在用于数据交换的通信连接的意义上被理解,为此设置通常导电的连接,但是无线连接(例如无线电或光)也是可能的。连接可以是点对点连接或者经由总线来实现,其中可以分别设置串行或并行通信。这三个功能元件(处理器内核、工作存储器、接口)可以在单个芯片中实现为集成电路。
38.该至少一个处理器内核54被设立为实施计算机程序。在工作存储器56中存储这些计算机程序和在实施这些计算机程序期间需要的和/或产生的数据。接口模块58用于微控
制器50与外部设备或功能单元的数据交换。接口模块58可包括串行或并行接口,例如spi接口(spi,串行外围接口(serial peripheral interface),最初由摩托罗拉公司(motorola)采用)或该spi接口的进一步发展。接口模块58被实施为硬件模块并且在错误修正方法中被使用。
39.微控制器可包括其它与处理器内核连接的功能元件62,比如非易失性存储器(例如闪速存储器)或者其它接口(例如can总线接口)。也可以设置在各个功能元件之间的其它、未示出的连接,例如在工作存储器56与接口模块58之间的直接连接。
40.在图2中还示出了未包括在微控制器中的外部工作存储器64,该外部工作存储器与接口模块58连接。同样,其它功能单元66可以经由接口模块58或者其它接口来与微控制器58连接(附加于或替选于微控制器中的相对应的功能元件62)。示例再次是非易失性存储器或其它接口(比如用于控制设备与由该控制设备控制的装置的其它元件通信的can总线接口)。
41.通过外部(易失性)工作存储器64,可以对工作存储器进行扩展,微控制器50或其处理器内核54可以访问该工作存储器。即,程序可以在实施期间至少部分地被存储在外部工作存储器中,例如当这些程序对于内部工作存储器56来说太大时。虽然对外部工作存储器64的访问慢于对内部工作存储器56的访问,但是该访问总是仍显著快于对其中持久存储有这些程序的非易失性存储器的访问。
42.经由接口模块58来实现对外部工作存储器64的存储器访问。在写访问的情况下,通过接口模块58针对每个所要存储的数据元素都计算所属的错误修正值(ecc值),该错误修正值同样应该被存储在外部工作存储器中。同样,通过接口模块58来执行地址计算、也就是说在外部工作存储器64中的该数据元素应该被存储在其上的存储地址的计算。在写时,将数据元素写到该存储地址上并且紧随其后写ecc值,即不需要针对ecc存储地址、也就是说ecc值被写到其上的存储地址的专有的地址计算。原则上,可以根据存储地址和数据元素或该数据元素的长度来确定ecc值被写到其上的ecc存储地址。除了省去针对ecc值的专有的地址计算之外,也有利的是:对数据元素和所属的ecc值的写以及必要时稍后的读通常可以在对外部工作存储器的突发访问之内被实施。所谓的“突发模式”在常见的用作工作存储器的dram存储器的情况下被实现,在此存储在存储器行中的数据以紧挨着的连续序列来被写或读,使得提供其它包含在存储器行中的数据与提供包含在该存储器行中的首批数据相比需要非常少的时间,因为该存储器行不必重新被激活(典型的行长度是512字节、1千字节、2千字节)。
43.由于该地址计算通过接口模块来被实施,所以从该至少一个处理器内核的角度按线性顺序来布置数据,也就是说该至少一个处理器内核可以在不考虑ecc值的情况下以线性方式来对数据元素进行寻址。可以这么说,通过接口模块来进行对外部工作存储器的“存储器映射(memory mapping)”,其中接口模块执行在外部工作存储器的物理地址与处理器内核的逻辑地址之间的映射,即物理地址被映射到处理器内核的地址空间中。因而,由处理器内核实施的程序可以在不了解错误修正的情况下对外部工作存储器进行寻址,也就是说这些程序不必被适配。
44.图3示例性示出了两个数据元素连同所属的eec值的布置,如其通过本发明在外部工作存储器中所实现的那样。当然,在存储器中可以存储其它、未示出的具有所属的ecc值
的数据元素。在这种情况下,示例性地示出了64位数据元素和8位ecc值。不同于该示例,数据元素和ecc值通常可具有任意长度。为了列举几个值,例如,数据元素可具有8位、16位、32位、64位、128位的长度。同样,ecc值也可具有其它长度,例如4位、8位或16位,这取决于所使用的ecc方法并且可取决于这些数据元素的长度(例如每8位数据元素长度有1位ecc值长度)或者也可与此无关。也可以总是规定ecc值的例如为8位的长度(或者其它总是相同的长度);那么,典型组合是8位数据元素 8位ecc值、16位数据元素 8位ecc值、32位数据元素 8位ecc值以及64位数据元素 8位ecc值。
45.示出了两个连续的存储器区段70、71,这两个连续的存储器区段开始于十六进制地址0x0000和0x0010,其中每个地址都对应于一个字节(8位)并且分别通过虚线来显示4字节区段、也就是说32位区段。存储两个64位数据元素。第一数据元素72a、72b开始于地址0x0000地被存储,其中第一数据元素的64位作为两个32位元素72a、72b来被绘制。紧跟在第一数据元素72a、72b之后、也就是说开始于存储地址0x0008的是所属的ecc值73,该ecc值例如可具有8位的长度。
46.在该示例中,第二64位数据元素74a、74b开始于存储地址0x000c并且又包括两个32位字74a、74b。这里应注意:在该示例中,32位字与在工作存储器中的32位区段对齐。如果ecc值短于32位,则相对应地在存储器中有区段保持空闲(在8位ecc值的情况下,例如从0x0009至0x000b的区段保持空闲)。属于第二数据元素的ecc值75紧跟在第二数据元素74a、74b之后存储,也就是说存储在存储地址0x0014上。
47.通过该布置,这些64位数据元素和所属的ecc值可以分别在仅使用相应的存储地址(在图3的示例中为0x0000和0x000c)的情况下被写或读。也就是说,数据元素和所属的ecc值形成复合数据元素,该复合数据元素可以借助于唯一的存储地址来被寻址并且因此可以在唯一的寻址阶段被写或读。这里,与第一数据元素相关的寻址阶段例如会涉及开始于存储地址0x0000的9个字节(72位 = 64位数据元素 8位ecc值),也就是说地址0x0000直至包括0x0008在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献