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

用于将通过计算机程序所要存储的指定数据类型的数据元素安全存储在外部存储器中的方法与流程

2022-02-21 03:43:04 来源:中国专利 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值的专有的存储地址、也不必为了存储数据元素和ecc值而执行多个寻址阶段。与彼此独立地存储数据元素和ecc值相比,这能够实现更快的存储器访问。
8.这里,如下存储器访问(写或读)被理解为“寻址阶段”,在该存储器访问的情况下,从初始地址开始写或读特定数目的连续(也就是说要在连续地址上存储或被存储在连续地址上的)位(或字节)。初始地址被称作相对应的数据的存储地址。
9.可以使用任意适当的错误修正方法,比如汉明码(hamming-code),作为用于计算ecc值的错误修正方法或错误识别方法。本领域技术人员本身已知这种方法。通过所使用的错误修正方法来确定错误修正值数据类型。
10.经由接口模块连接的外部存储器尤其可以是易失性存储器,该易失性存储器被微控制器用作工作存储器,也就是说dram存储器(dram,动态随机存取存储器(dynamic random access memory))。不过,在非易失性存储器的情况下应用该方法也是可行的。
11.优选地,该方法包括数据元素的读过程,其中该读过程包括:从外部存储器中读被存储在存储地址上的其中包含有该数据元素的ecc数据元素,以便获得所读的数据元素和所读的ecc值(包含在所读的ecc数据元素中的该数据元素和该ecc值被称作所读的数据元素和所读的ecc值);计算所读的数据元素的ecc比较值并且将该ecc比较值与所读的ecc值进行比较。进一步优选地,该读过程还包括:如果ecc比较值与所读的ecc值相同,则使用所读的数据元素;或者如果ecc比较值与所读的ecc值不相同,则使用基于所读的数据元素和所读的ecc值来被修正的数据元素。通过这些方法步骤,在读时发生的存储错误可以被识别并且必要时被修正。
12.对于ecc值和/或ecc比较值的计算来说,得到至少如下两种可能性。优选地,通过计算机程序模块来计算ecc值和/或ecc比较值,该计算机程序模块在微控制器的至少一个处理器内核中被实施。替选地或附加地,优选地通过包括在微控制器中的接口模块来计算ecc值和/或ecc比较值。该接口模块被实施为微控制器的硬件模块。
13.这些可能性中的第一种可能性所具有的优势在于:可以使用现有硬件,该现有硬件不包括相对应地被设立的接口模块。而第二种可能性具有速度优势,因为尤其是微控制器的处理器内核没有承受ecc计算的负荷。
14.优选地,该方法包括:确定在外部存储器中针对错误修正数据元素的存储地址。在确定ecc数据元素的存储地址时,数据元素和所属的ecc值的存储空间需求被考虑,因为ecc数据元素就地址确定而言被视为单元。不需要对数据元素和所属的ecc值的存储地址的确定以及相对应的寻址阶段。
15.按照本发明的微控制器被设立为执行按照本发明的方法。优选地,微控制器包括接口模块,该接口模块被设立为计算数据元素的ecc值和/或ecc比较值。
16.按照本发明的计算单元、例如机动车的控制设备,包括按照本发明的微控制器并且优选地包括外部存储器,该外部存储器优选地经由接口模块与微控制器连接。
17.本发明尤其适合于所谓的“embedded systems(嵌入式系统)”或嵌入式系统。所述嵌入式系统被理解为纳入(嵌入)到技术上下文中的电子计算机或computer(计算机)。在
此,计算机要么承担监视、控制或调节功能要么负责一种形式的数据或信号处理,例如在加密或解密、编码或解码或者过滤方面的数据或信号处理。对嵌入式系统的典型要求是实时能力。处理速度不可预测的处理不能被容忍。许多应用(尤其是在安全相关的系统——即可能会威胁人类、伤害人类或者甚至使人类死亡的系统——中的控制)的前提条件是该系统的可预测的反应时间。
18.尤其是当进行实施的控制设备还被用于其它任务并且因而总归存在时,按照本发明的方法的以具有用于执行所有方法步骤的程序代码的计算机程序或计算机程序产品的形式的实现方案也是有利的,因为这引起了特别低的成本。尤其是,适合于提供该计算机程序的数据载体是磁存储器、光存储器和电存储器,诸如硬盘、闪速存储器、eeprom、dvd以及其它等等。通过计算机网络(互联网、内联网等等)来下载程序也是可行的。
19.本发明的其它优点和设计方案从描述以及随附的附图中得到。
20.本发明依据实施例在附图中示意性示出并且在下文参考附图予以描述。
附图说明
21.图1a示出了按照用于安全存储的方法的优选实施方式的写过程的流程图;图1b示出了按照用于安全存储的方法的优选实施方式的读过程的流程图;图2示出了可优选地被用于实现按照本发明的方法的微控制器;以及图3示例性示出了分别包含数据元素和所属的eec值的两个ecc数据元素的布置,如其通过本发明所实现的那样。
具体实施方式
22.图1a示出了按照本发明的优选实施方式的用于将数据元素安全存储在被连接到微控制器上的外部存储器中的写过程的流程图。在接下来的描述中(也在其它附图中),尤其是参考数据元素、ecc值和ecc数据元素,这有助于语言简化并且应就至少一个数据元素、至少一个ecc值和至少一个ecc数据元素而言被读。即本发明并不限于单个数据元素。
23.数据元素不仅可以是程序数据、也就是说程序指令,而且可以是被计算机程序使用且必要时被更改的数据。
24.在准备步骤10中,首先定义复合数据类型或错误修正数据类型(ecc数据类型)。按照定义,该ecc数据类型的错误修正数据元素(ecc数据元素)、也就是说复合数据元素由(所要存储的数据元素的)该数据类型的数据元素和错误修正值数据类型的所属的错误修正值(ecc值)形成,即表示一种复合数据类型。该步骤在对要由微处理器实施的计算机程序进行编程期间进行。这里,例如使用编程语言c的所谓的结构(“struct”)。
25.在步骤11中,针对每个所要存储的数据元素,定义复合数据元素。每个复合数据元素都包括所要存储的数据元素的该数据类型的元素和错误修正值数据类型的元素。这以及可能的步骤10在创建计算机程序期间进行。接着,在实施计算机程序期间进行其它步骤,在这些其它步骤中尤其是形成ecc数据元素作为复合数据元素。
26.被定义为编程语言c的结构的复合数据元素的示例如下:
在这种情况下,“ecc_data”表示复合数据元素或ecc数据元素,“data”表示指定数据类型“uint64”(例如64位)的所要存储的数据元素,并且“ecc”表示错误修正值数据类型“uint8”(例如8位)的ecc值。对应的复合数据类型或ecc数据类型可以以编程语言c通过相对应的“typedef”定义来被实现。除了64位数据元素和8位ecc值之外,当然也可以使用具有其它长度的数据元素和ecc值。
27.在步骤12中,计算所要存储的数据元素的ecc值。该计算可以通过接口模块和/或计算机程序模块来进行,外部存储器经由该接口模块来与微控制器连接。接口模块和/或计算机程序模块被设立为计算所要存储的数据元素的ecc值或所读的数据元素的ecc比较值。
28.在步骤14中,由所要存储的数据元素和所属的、在步骤12中计算出的ecc值来形成错误修正数据元素(ecc数据元素),也就是说形成(如果定义的话,ecc数据类型的)复合数据元素,该复合数据元素包括所要存储的数据元素和所属的ecc值(例如借助于编程语言c的结构(“struct”))。
29.在步骤16中,可选地确定在外部存储器中的针对ecc数据元素的存储地址。对存储地址的该确定考虑整个ecc数据元素的、即包括数据元素和ecc值在内的存储空间需求。不需要针对数据元素和ecc值的专有的地址计算。该步骤可以在创建程序时、比如通过链接器(linker)和/或定位器来创建程序时进行(未示出),或者可以在程序实施期间进行,比如当存储空间和存储地址在运行时被动态保留或确定(如所示出的那样)时进行。
30.在步骤18中,将ecc数据元素写到外部存储器中的特定存储地址上。即,包含在ecc数据元素中的数据元素和ecc值在单个寻址阶段期间被写到存储器中,也就是说数据元素开始被写在存储地址上并且ecc值紧跟在该数据元素之后被写。因此,不需要针对ecc值的专有的地址计算。
31.图1b示出了按照用于将数据元素安全存储在外部存储器中的方法的优选实施方式的读过程的流程图。
32.如果应该读之前存储的数据元素,则在步骤24中首先从外部存储器中读ecc数据元素,在该ecc数据元素中包括数据元素。即读所存储的数据元素和所属的ecc值。这又在唯一的寻址阶段之内进行,不需要单独的寻址阶段来读取ecc值。
33.在步骤26中,根据包含在所读的ecc数据元素中的数据元素来计算错误修正比较值(ecc比较值),这又可以通过接口模块和/或计算机程序模块来进行。在步骤28中,将该ecc比较值与所读的ecc值、也就是说包含在所读的ecc数据元素中的ecc值进行比较,该ecc值是在写数据元素时有效的ecc值。在比较时查明数据元素是否已被更改、即是否发生过存储错误。
34.如果ecc比较值与所读的ecc值相同、也就是说如果没有发生存储错误,则例如由计算机程序使用包含在所读的ecc数据元素中的数据元素,即步骤30,该计算机程序在微控制器的至少一个处理器内核中被实施。
35.如果ecc比较值与所读的ecc值不相同、也就是说如果发生存储错误,则在步骤32中首先检查该错误是否可以被修正。这一点是否可能取决于所使用的用来计算ecc值的错误修正方法。如果例如针对64位长的数据元素使用8位长的ecc值,则通常1位错误可以被识别并修正,并且2位错误可以被识别但不能被修正。
36.如果查明该错误可以被修正,则在步骤34中对该错误进行修正,也就是说确定经修正的数据元素。在步骤36中使用、例如由计算机程序来使用经修正的数据元素。如果另一方面查明该错误不能被修正,则在步骤38中传送相对应的错误报告,例如将相对应的错误报告传送给微控制器的至少一个处理器内核或在其中实施的计算机程序。
37.图2示出了微控制器50,该微控制器可以被用于实施按照本发明的方法。这里,微控制器50示例性地集成在控制设备52、比如机动车或机器控制器的控制设备中。微控制器50包括至少一个处理器内核54、与之连接的(内部)易失性工作存储器56(dram,动态随机存取存储器(dynamic random access messory))和同样与处理器内核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数据元素中的数据元素的ecc值。如果接口模块58相对应地被设立,在其中应该存储ecc数据元素的写访问的情况下通过接口模块58针对包含在ecc数据元素中的数据元素计算所属的错误修正值(ecc值),该错误修正值与该数据元素
共同形成ecc数据元素,该ecc数据元素应该被存储在外部工作存储器中。替选于或附加于通过接口模块对ecc值的计算,可以通过相对应的实现为软件的模块、也就是说通过计算机程序模块来计算ecc值。
43.由于ecc数据元素是一种复合数据类型,该复合数据类型作为一个单元被写到存储地址上,所以在写时紧跟在数据元素之后写ecc值。即不需要针对ecc存储地址、也就是说ecc值被写到其上的存储地址的专有的地址计算。除了省去针对ecc值的专有的地址计算之外,也有利的是:对ecc数据元素的写以及必要时稍后的读、也就是说对数据元素和所属的ecc值的写或读通常可以在对外部工作存储器的突发访问之内被实施。所谓的“突发模式”在常见的用作工作存储器的dram存储器的情况下被实现,在此存储在存储器行中的数据以紧挨着的连续序列来被写或读,使得提供其它包含在存储器行中的数据与提供包含在该存储器行中的首批数据相比需要非常少的时间,因为该存储器行不必重新被激活(典型的行长度是512字节、1k字节、2k字节)。
44.图3示例性示出了分别包括数据元素和所属的eec值的两个ecc数据元素的布置,如其通过本发明在外部工作存储器中所实现的那样。当然,在存储器中可以存储其它、未示出的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.在图3中示出了两个连续的存储器区段70、71,这两个连续的存储器区段开始于十六进制地址0x0000和0x0010,其中每个地址都对应于一个字节(8位)并且分别通过虚线来显示4字节区段、也就是说32位区段。存储两个ecc数据元素72a-c、74a-c,这两个ecc数据元素分别包括64位数据元素72a、72b、74a、74b和所属的ecc值72c、74c。开始于地址0x0000地存储包括第一数据元素72a、72b和第一ecc值72c的第一ecc数据元素72a、72b、72c,其中第一数据元素的64位作为两个32位元素72a、72b来被绘制并且绘制了属于第一数据元素的第一ecc值72c。第一ecc值72c紧跟在第一数据元素72a、72b之后,也就是说开始于存储地址0x0008。ecc值例如可具有8位的长度。
46.在该示例中,包括第二数据元素74a、74b和所属的第二ecc值74c的第二ecc数据元素74a、74b、74c开始于存储地址0x000c。第二数据元素又包括两个32位元素74a、74b,这两个32位元素共同形成所要存储的64位数据元素。这里应注意:在该示例中32位元素与在工作存储器中的32位区段对齐。如果ecc值短于32位,则相对应地在存储器中有区段保持空闲(在8位ecc值的情况下,例如从0x0009至0x000b的区段保持空闲)。属于第二数据元素的第二ecc值74c紧跟在第二数据元素74a、74b之后存储,也就是说存储在存储地址0x0014上。
47.该布置是由复合数据类型的定义决定的,该复合数据类型的ecc数据元素根据定义分别包括数据元素(这里是64位数据元素)和所属的ecc值。在仅使用相应的存储地址(在图3的示例中为0x0000和0x000c)的情况下,可以分别访问这些ecc数据元素。也就是说,数据元素和所属的ecc值形成复合数据元素,该复合数据元素可以借助于唯一的存储地址来
被寻址并且因此可以在唯一的寻址阶段被写或读。ecc数据元素例如在64位的数据元素长度和8位的ecc值长度的情况下具有在共同的寻址阶段被访问的72位的长度。这里,与第一数据元素相关的寻址阶段例如会涉及第一ecc数据元素开始于存储地址0x0000的9个字节(72位 = 64位数据元素 8位ecc值),也就是说地址0x0000直至包括0x0008在内。
再多了解一些

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

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

相关文献