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

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

Info

Publication number
CN113961390A
CN113961390A CN202110819011.2A CN202110819011A CN113961390A CN 113961390 A CN113961390 A CN 113961390A CN 202110819011 A CN202110819011 A CN 202110819011A CN 113961390 A CN113961390 A CN 113961390A
Authority
CN
China
Prior art keywords
error correction
data element
ecc
data
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110819011.2A
Other languages
English (en)
Inventor
M·阿瑟尔
A·奥厄
M·施雷贝尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN113961390A publication Critical patent/CN113961390A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • G11C29/16Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/40Response verification devices using compression techniques
    • G11C2029/4002Comparison of products, i.e. test results of chips or with golden chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明涉及用于将通过计算机程序所要存储的指定数据类型的数据元素安全存储在外部存储器中的方法,所述外部存储器被连接到微控制器上,其中使用错误修正值数据类型的错误修正值。所述方法包括:在创建计算机程序时:在计算机程序中定义复合数据元素,所述复合数据元素包括所述数据类型的元素和所述错误修正值数据类型的元素;并且在实施计算机程序时:计算所要存储的数据元素的错误修正值;形成错误修正数据元素作为复合数据元素,所述复合数据元素包含所要存储的数据元素和所属的错误修正值,所述错误修正值针对所述数据元素来被计算;而且将错误修正数据元素写到针对所述错误修正数据元素的存储地址上。还提供了相对应的微控制器和计算单元。

Description

用于将通过计算机程序所要存储的指定数据类型的数据元素 安全存储在外部存储器中的方法
技术领域
本发明涉及一种用于将通过计算机程序所要存储的指定数据类型的数据元素安全存储在外部存储器中的方法以及一种用于执行该方法的微控制器和一种用于执行该方法的计算单元。
背景技术
在像SRAM、闪存、PCM或DRAM那样的工作存储器中,为了保护数据内容,除了数据位之外可以存储其它被称作“纠错码(Error Correction Code)”(ECC)的位,用于进行错误修正或错误识别。在数据元素之内的单位错误或多位错误可以借此被识别并且根据在该数据元素之内的位错误的数目来被修正。
在嵌入式***、比如机器或车辆的控制设备中,使用所谓的微控制器,这些微控制器除了一个或多个处理器内核之外拥有特定的、有限量的内部工作存储器,程序和数据在执行期间被存储在该内部工作存储器中。对于该工作存储器来说,尤其是针对安全关键的应用、比如机动车中的安全关键的应用,可以在微控制器中实现借助于ECC的错误修正方法。
在微控制器中用作工作存储器的典型的SRAM存储单元包括6个晶体管,并且在制造方面相对应地相对昂贵且复杂,因而集成在微控制器中的工作存储器常常只被安排成如此大,使得其足以用于基本应用。出于成本原因,在微控制器的情况下通常不设置或不可能实现工作存储器的内部可扩展性,因为工作存储器与处理器内核一起集成在芯片中。
与设置在微控制器上的工作存储器相比,为了也能够执行对更大的工作存储器进行访问的应用,可以经由通信接口、例如SPI接口(Serial Peripheral Interface(串行***接口))连接外部工作存储器。该外部工作存储器可以成本低廉地以DRAM存储单元的形式来被实施,这些DRAM存储单元只需要一个晶体管。不过,在可用的外部可连接工作存储器中,没有实现错误修正功能。
发明内容
按照本发明,提出了具有独立专利权利要求的特征的一种用于将通过计算机程序所要存储的指定数据类型的数据元素安全存储在外部存储器中的方法以及一种用于执行该方法的微控制器和一种用于执行该方法的计算单元。有利的构型是从属权利要求以及随后的描述的主题。
按照本发明,在创建该计算机程序期间,定义复合数据元素,该复合数据元素分别包括所要存储的数据元素的指定数据类型的元素和错误修正值数据类型的元素,也就是说该复合数据元素尤其是为这些元素提供空间。这里,术语“元素”一般应该代表特定数据类型的数据元素,例如所要存储的数据元素或错误修正数据元素或复合数据元素。接着,在程序实施期间,由所要存储的数据元素和所计算出的所属的错误修正值(下文也称作ECC值)分别形成错误修正数据元素(在下文也称作ECC数据元素),作为复合数据元素。这样形成的ECC数据元素在存储时被视为单元并且因此分别被写到特定的存储地址上。这在唯一的寻址阶段内进行,使得既不必确定针对ECC值的专有的存储地址、也不必为了存储数据元素和ECC值而执行多个寻址阶段。与彼此独立地存储数据元素和ECC值相比,这能够实现更快的存储器访问。
这里,如下存储器访问(写或读)被理解为“寻址阶段”,在该存储器访问的情况下,从初始地址开始写或读特定数目的连续(也就是说要在连续地址上存储或被存储在连续地址上的)位(或字节)。初始地址被称作相对应的数据的存储地址。
可以使用任意适当的错误修正方法,比如汉明码(Hamming-Code),作为用于计算ECC值的错误修正方法或错误识别方法。本领域技术人员本身已知这种方法。通过所使用的错误修正方法来确定错误修正值数据类型。
经由接口模块连接的外部存储器尤其可以是易失性存储器,该易失性存储器被微控制器用作工作存储器,也就是说DRAM存储器(DRAM,动态随机存取存储器(DynamicRandom Access Memory))。不过,在非易失性存储器的情况下应用该方法也是可行的。
优选地,该方法包括数据元素的读过程,其中该读过程包括:从外部存储器中读被存储在存储地址上的其中包含有该数据元素的ECC数据元素,以便获得所读的数据元素和所读的ECC值(包含在所读的ECC数据元素中的该数据元素和该ECC值被称作所读的数据元素和所读的ECC值);计算所读的数据元素的ECC比较值并且将该ECC比较值与所读的ECC值进行比较。进一步优选地,该读过程还包括:如果ECC比较值与所读的ECC值相同,则使用所读的数据元素;或者如果ECC比较值与所读的ECC值不相同,则使用基于所读的数据元素和所读的ECC值来被修正的数据元素。通过这些方法步骤,在读时发生的存储错误可以被识别并且必要时被修正。
对于ECC值和/或ECC比较值的计算来说,得到至少如下两种可能性。优选地,通过计算机程序模块来计算ECC值和/或ECC比较值,该计算机程序模块在微控制器的至少一个处理器内核中被实施。替选地或附加地,优选地通过包括在微控制器中的接口模块来计算ECC值和/或ECC比较值。该接口模块被实施为微控制器的硬件模块。
这些可能性中的第一种可能性所具有的优势在于:可以使用现有硬件,该现有硬件不包括相对应地被设立的接口模块。而第二种可能性具有速度优势,因为尤其是微控制器的处理器内核没有承受ECC计算的负荷。
优选地,该方法包括:确定在外部存储器中针对错误修正数据元素的存储地址。在确定ECC数据元素的存储地址时,数据元素和所属的ECC值的存储空间需求被考虑,因为ECC数据元素就地址确定而言被视为单元。不需要对数据元素和所属的ECC值的存储地址的确定以及相对应的寻址阶段。
按照本发明的微控制器被设立为执行按照本发明的方法。优选地,微控制器包括接口模块,该接口模块被设立为计算数据元素的ECC值和/或ECC比较值。
按照本发明的计算单元、例如机动车的控制设备,包括按照本发明的微控制器并且优选地包括外部存储器,该外部存储器优选地经由接口模块与微控制器连接。
本发明尤其适合于所谓的“Embedded Systems(嵌入式***)”或嵌入式***。所述嵌入式***被理解为纳入(嵌入)到技术上下文中的电子计算机或Computer(计算机)。在此,计算机要么承担监视、控制或调节功能要么负责一种形式的数据或信号处理,例如在加密或解密、编码或解码或者过滤方面的数据或信号处理。对嵌入式***的典型要求是实时能力。处理速度不可预测的处理不能被容忍。许多应用(尤其是在安全相关的***——即可能会威胁人类、伤害人类或者甚至使人类死亡的***——中的控制)的前提条件是该***的可预测的反应时间。
尤其是当进行实施的控制设备还被用于其它任务并且因而总归存在时,按照本发明的方法的以具有用于执行所有方法步骤的程序代码的计算机程序或计算机程序产品的形式的实现方案也是有利的,因为这引起了特别低的成本。尤其是,适合于提供该计算机程序的数据载体是磁存储器、光存储器和电存储器,诸如硬盘、闪速存储器、EEPROM、DVD以及其它等等。通过计算机网络(互联网、内联网等等)来下载程序也是可行的。
本发明的其它优点和设计方案从描述以及随附的附图中得到。
本发明依据实施例在附图中示意性示出并且在下文参考附图予以描述。
附图说明
图1A示出了按照用于安全存储的方法的优选实施方式的写过程的流程图;
图1B示出了按照用于安全存储的方法的优选实施方式的读过程的流程图;
图2示出了可优选地被用于实现按照本发明的方法的微控制器;以及
图3示例性示出了分别包含数据元素和所属的EEC值的两个ECC数据元素的布置,如其通过本发明所实现的那样。
具体实施方式
图1A示出了按照本发明的优选实施方式的用于将数据元素安全存储在被连接到微控制器上的外部存储器中的写过程的流程图。在接下来的描述中(也在其它附图中),尤其是参考数据元素、ECC值和ECC数据元素,这有助于语言简化并且应就至少一个数据元素、至少一个ECC值和至少一个ECC数据元素而言被读。即本发明并不限于单个数据元素。
数据元素不仅可以是程序数据、也就是说程序指令,而且可以是被计算机程序使用且必要时被更改的数据。
在准备步骤10中,首先定义复合数据类型或错误修正数据类型(ECC数据类型)。按照定义,该ECC数据类型的错误修正数据元素(ECC数据元素)、也就是说复合数据元素由(所要存储的数据元素的)该数据类型的数据元素和错误修正值数据类型的所属的错误修正值(ECC值)形成,即表示一种复合数据类型。该步骤在对要由微处理器实施的计算机程序进行编程期间进行。这里,例如使用编程语言C的所谓的结构(“struct”)。
在步骤11中,针对每个所要存储的数据元素,定义复合数据元素。每个复合数据元素都包括所要存储的数据元素的该数据类型的元素和错误修正值数据类型的元素。这以及可能的步骤10在创建计算机程序期间进行。接着,在实施计算机程序期间进行其它步骤,在这些其它步骤中尤其是形成ECC数据元素作为复合数据元素。
被定义为编程语言C的结构的复合数据元素的示例如下:
Figure DEST_PATH_IMAGE001
在这种情况下,“ecc_data”表示复合数据元素或ECC数据元素,“data”表示指定数据类型“uint64”(例如64位)的所要存储的数据元素,并且“ecc”表示错误修正值数据类型“uint8”(例如8位)的ECC值。对应的复合数据类型或ECC数据类型可以以编程语言C通过相对应的“typedef”定义来被实现。除了64位数据元素和8位ECC值之外,当然也可以使用具有其它长度的数据元素和ECC值。
在步骤12中,计算所要存储的数据元素的ECC值。该计算可以通过接口模块和/或计算机程序模块来进行,外部存储器经由该接口模块来与微控制器连接。接口模块和/或计算机程序模块被设立为计算所要存储的数据元素的ECC值或所读的数据元素的ECC比较值。
在步骤14中,由所要存储的数据元素和所属的、在步骤12中计算出的ECC值来形成错误修正数据元素(ECC数据元素),也就是说形成(如果定义的话,ECC数据类型的)复合数据元素,该复合数据元素包括所要存储的数据元素和所属的ECC值(例如借助于编程语言C的结构(“struct”))。
在步骤16中,可选地确定在外部存储器中的针对ECC数据元素的存储地址。对存储地址的该确定考虑整个ECC数据元素的、即包括数据元素和ECC值在内的存储空间需求。不需要针对数据元素和ECC值的专有的地址计算。该步骤可以在创建程序时、比如通过链接器(Linker)和/或***来创建程序时进行(未示出),或者可以在程序实施期间进行,比如当存储空间和存储地址在运行时被动态保留或确定(如所示出的那样)时进行。
在步骤18中,将ECC数据元素写到外部存储器中的特定存储地址上。即,包含在ECC数据元素中的数据元素和ECC值在单个寻址阶段期间被写到存储器中,也就是说数据元素开始被写在存储地址上并且ECC值紧跟在该数据元素之后被写。因此,不需要针对ECC值的专有的地址计算。
图1B示出了按照用于将数据元素安全存储在外部存储器中的方法的优选实施方式的读过程的流程图。
如果应该读之前存储的数据元素,则在步骤24中首先从外部存储器中读ECC数据元素,在该ECC数据元素中包括数据元素。即读所存储的数据元素和所属的ECC值。这又在唯一的寻址阶段之内进行,不需要单独的寻址阶段来读取ECC值。
在步骤26中,根据包含在所读的ECC数据元素中的数据元素来计算错误修正比较值(ECC比较值),这又可以通过接口模块和/或计算机程序模块来进行。在步骤28中,将该ECC比较值与所读的ECC值、也就是说包含在所读的ECC数据元素中的ECC值进行比较,该ECC值是在写数据元素时有效的ECC值。在比较时查明数据元素是否已被更改、即是否发生过存储错误。
如果ECC比较值与所读的ECC值相同、也就是说如果没有发生存储错误,则例如由计算机程序使用包含在所读的ECC数据元素中的数据元素,即步骤30,该计算机程序在微控制器的至少一个处理器内核中被实施。
如果ECC比较值与所读的ECC值不相同、也就是说如果发生存储错误,则在步骤32中首先检查该错误是否可以被修正。这一点是否可能取决于所使用的用来计算ECC值的错误修正方法。如果例如针对64位长的数据元素使用8位长的ECC值,则通常1位错误可以被识别并修正,并且2位错误可以被识别但不能被修正。
如果查明该错误可以被修正,则在步骤34中对该错误进行修正,也就是说确定经修正的数据元素。在步骤36中使用、例如由计算机程序来使用经修正的数据元素。如果另一方面查明该错误不能被修正,则在步骤38中传送相对应的错误报告,例如将相对应的错误报告传送给微控制器的至少一个处理器内核或在其中实施的计算机程序。
图2示出了微控制器50,该微控制器可以被用于实施按照本发明的方法。这里,微控制器50示例性地集成在控制设备52、比如机动车或机器控制器的控制设备中。微控制器50包括至少一个处理器内核54、与之连接的(内部)易失性工作存储器56(DRAM,动态随机存取存储器(Dynamic Random Access Messory))和同样与处理器内核54连接的接口模块58。“连接”在这里(以及除非另有说明,在本申请的框架内)应在用于数据交换的通信连接的意义上被理解,为此设置通常导电的连接,但是无线连接(例如无线电或光)也是可能的。连接可以是点对点连接或者经由总线来实现,其中可以分别设置串行或并行通信。这三个功能元件(处理器内核、工作存储器、接口)可以在单个芯片中实现为集成电路。
该至少一个处理器内核54被设立为实施计算机程序。在工作存储器56中存储这些计算机程序和在实施这些计算机程序期间需要的和/或产生的数据。接口模块58用于微控制器50与外部设备或功能单元的数据交换。接口模块58可包括串行或并行接口,例如SPI接口(SPI,串行***接口(Serial Peripheral Interface),最初由摩托罗拉公司(Motorola)引入)或该SPI接口的进一步发展。接口模块58被实施为硬件模块并且可以在错误修正方法中被使用。
微控制器可包括其它与处理器内核连接的功能元件62,比如非易失性存储器(例如闪速存储器)或者其它接口(例如CAN总线接口)。也可以设置在各个功能元件之间的其它的、未示出的连接,例如在工作存储器56与接口模块58之间的直接连接。
在图2中还示出了未包括在微控制器中的外部工作存储器64,该外部工作存储器与接口模块58连接。同样,其它功能单元66可以经由接口模块58或者其它接口与微控制器58连接(附加于或替选于微控制器中的相对应的功能元件62)。示例再次是非易失性存储器或其它接口(比如用于控制设备与由该控制设备控制的装置的其它元件通信的CAN总线接口)。
通过外部(易失性)工作存储器64,可以对工作存储器进行扩展,微控制器50或其处理器内核54可以访问该工作存储器。即,程序可以在实施期间至少部分地被存储在外部工作存储器中,例如当这些程序对于内部工作存储器56来说太大时。虽然对外部工作存储器64的访问通常慢于对内部工作存储器56的访问,但是该访问总是仍显著快于对其中持久存储有这些程序的非易失性存储器、比如闪速存储器的访问。
经由接口模块58来实现对外部工作存储器64的存储器访问。接口模块58可以被设立为计算包含在所要写或所要读的ECC数据元素中的数据元素的ECC值。如果接口模块58相对应地被设立,在其中应该存储ECC数据元素的写访问的情况下通过接口模块58针对包含在ECC数据元素中的数据元素计算所属的错误修正值(ECC值),该错误修正值与该数据元素共同形成ECC数据元素,该ECC数据元素应该被存储在外部工作存储器中。替选于或附加于通过接口模块对ECC值的计算,可以通过相对应的实现为软件的模块、也就是说通过计算机程序模块来计算ECC值。
由于ECC数据元素是一种复合数据类型,该复合数据类型作为一个单元被写到存储地址上,所以在写时紧跟在数据元素之后写ECC值。即不需要针对ECC存储地址、也就是说ECC值被写到其上的存储地址的专有的地址计算。除了省去针对ECC值的专有的地址计算之外,也有利的是:对ECC数据元素的写以及必要时稍后的读、也就是说对数据元素和所属的ECC值的写或读通常可以在对外部工作存储器的突发访问之内被实施。所谓的“突发模式”在常见的用作工作存储器的DRAM存储器的情况下被实现,在此存储在存储器行中的数据以紧挨着的连续序列来被写或读,使得提供其它包含在存储器行中的数据与提供包含在该存储器行中的首批数据相比需要非常少的时间,因为该存储器行不必重新被激活(典型的行长度是512字节、1k字节、2k字节)。
图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值。
在图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位的长度。
在该示例中,包括第二数据元素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上。
该布置是由复合数据类型的定义决定的,该复合数据类型的ECC数据元素根据定义分别包括数据元素(这里是64位数据元素)和所属的ECC值。在仅使用相应的存储地址(在图3的示例中为0x0000和0x000C)的情况下,可以分别访问这些ECC数据元素。也就是说,数据元素和所属的ECC值形成复合数据元素,该复合数据元素可以借助于唯一的存储地址来被寻址并且因此可以在唯一的寻址阶段被写或读。ECC数据元素例如在64位的数据元素长度和8位的ECC值长度的情况下具有在共同的寻址阶段被访问的72位的长度。这里,与第一数据元素相关的寻址阶段例如会涉及第一ECC数据元素开始于存储地址0x0000的9个字节(72位 = 64位数据元素+8位ECC值),也就是说地址0x0000直至包括0x0008在内。

Claims (9)

1.一种用于将通过计算机程序所要存储的指定数据类型的数据元素安全存储在外部存储器(64)中的方法,所述外部存储器被连接到微控制器(50)上,其中使用错误修正值数据类型的错误修正值,所述方法包括
在创建所述计算机程序时:
在所述计算机程序中定义(10)复合数据元素,所述复合数据元素包括所述指定数据类型的元素和所述错误修正值数据类型的元素;而且
在实施所述计算机程序时:
计算(12)所要存储的数据元素的错误修正值;
形成(14)错误修正数据元素作为所述复合数据元素,所述复合数据元素包含所要存储的数据元素和所属的错误修正值,所述错误修正值被针对所述数据元素来计算;而且
将所述错误修正数据元素写(18)到针对所述错误修正数据元素的存储地址上。
2.根据权利要求1所述的方法,所述方法包括所述数据元素的读过程,其中所述读过程包括:
从所述外部存储器(64)中读(24)被存储在所述存储地址上的其中包含有所述数据元素的错误修正数据元素,以便获得所读的数据元素和所读的错误修正值;
计算(26)所读的数据元素的错误修正比较值;而且
将所述错误修正比较值与所读的错误修正值进行比较(28)。
3.根据权利要求2所述的方法,其中所述读过程进一步包括:
如果所述错误修正比较值与所读的错误修正值相同,则使用所读的数据元素(30);并且
如果所述错误修正比较值与所读的错误修正值不相同,则使用基于所读的数据元素和所读的错误修正值来被修正的数据元素(32)。
4.根据上述权利要求中任一项所述的方法,其中通过计算机程序模块来计算所述错误修正值和/或所述错误修正比较值,所述计算机程序模块在所述微控制器的处理器内核中被实施。
5.根据上述权利要求中任一项所述的方法,其中通过包括在所述微控制器中的接口模块来计算所述错误修正值和/或所述错误修正比较值。
6.根据上述权利要求中任一项所述的方法,所述方法包括:
确定(16)在所述外部存储器中针对所述错误修正数据元素的存储地址。
7.一种微控制器(50),所述微控制器被设立为执行根据上述权利要求中任一项所述的方法。
8.根据权利要求7所述的微控制器(50),所述微控制器包括接口模块(58),所述接口模块被设立为计算数据元素的错误修正值和/或错误修正比较值,其中所述微控制器被设立为执行包括权利要求5在内的所述方法之一。
9.一种计算单元(52),所述计算单元包括根据权利要求7或8中任一项所述的微控制器(50)和外部存储器(64)。
CN202110819011.2A 2020-07-21 2021-07-20 用于将通过计算机程序所要存储的指定数据类型的数据元素安全存储在外部存储器中的方法 Pending CN113961390A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020209132.3A DE102020209132A1 (de) 2020-07-21 2020-07-21 Verfahren zur abgesicherten Speicherung eines zu speichernden Datenelements eines vorgegebenen Datentyps durch ein Computerprogramm in einem externen Speicher
DE102020209132.3 2020-07-21

Publications (1)

Publication Number Publication Date
CN113961390A true CN113961390A (zh) 2022-01-21

Family

ID=79179203

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110819011.2A Pending CN113961390A (zh) 2020-07-21 2021-07-20 用于将通过计算机程序所要存储的指定数据类型的数据元素安全存储在外部存储器中的方法

Country Status (3)

Country Link
US (1) US11694759B2 (zh)
CN (1) CN113961390A (zh)
DE (1) DE102020209132A1 (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007033746A1 (de) * 2006-10-12 2008-04-17 Giesecke & Devrient Gmbh Verwaltung von Datenobjekten in einem Haldenspeicher
US9691505B2 (en) * 2015-03-27 2017-06-27 Intel Corporation Dynamic application of error correction code (ECC) based on error type

Also Published As

Publication number Publication date
US20220028474A1 (en) 2022-01-27
US11694759B2 (en) 2023-07-04
DE102020209132A1 (de) 2022-01-27

Similar Documents

Publication Publication Date Title
US8516174B2 (en) Data transmission method between master and slave devices
US8176387B2 (en) Error detection control system
US5263168A (en) Circuitry for automatically entering and terminating an initialization mode in a data processing system in response to a control signal
TW200537565A (en) Semiconductor device and method for activating the same
US6546517B1 (en) Semiconductor memory
US20040064606A1 (en) Memory system allowing fast operation of processor while using flash memory incapable of random access
US6604214B1 (en) One-chip microcomputer capable of internally producing ECC data
JP2845433B2 (ja) 集積回路装置
CN110297726B (zh) 具有串行存在检测数据的计算机***及内存模块控制方法
US20050207232A1 (en) Access method for a NAND flash memory chip, and corresponding NAND flash memory chip
US10949570B2 (en) Processing system, related integrated circuit and method
CN111143109A (zh) 一种ecc内存管理器、方法及电子设备
CN113961382A (zh) 用于将数据元素安全存储在外部存储器中的方法和接口模块
US20060218432A1 (en) Method for the recognition and/or correction of memory access error electronic circuit arrangement for carrying out said method
CN113961390A (zh) 用于将通过计算机程序所要存储的指定数据类型的数据元素安全存储在外部存储器中的方法
CN113961381A (zh) 用于将要由计算机程序存储的数据元素安全存储在外部存储器中的方法
CN106293620B (zh) intel平台检测Flash Rom中参数的方法
US11561857B2 (en) Method for the secured storing of a data element to be stored by a computer program in an external memory
JP2009505188A (ja) 少なくとも部分的に安全上重大なプロセスの制御または調節用マイクロプロセッサシステム
US10732894B2 (en) Method of writing in a non-volatile memory device and corresponding non-volatile memory device
CN113935011A (zh) 用于执行控制设备的安全启动序列的方法
JPH04162300A (ja) 半導体メモリ
US11734200B2 (en) Method for accessing data in an external memory of a microcontroller
KR20180002535A (ko) 직접 메모리 액세스 제어 장치 및 그 작동 방법
CN116414423A (zh) 一种芯片内固化代码更新方法、存储器及计算机设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination