CN108694131B - 用于运行存储装置的方法和设备 - Google Patents

用于运行存储装置的方法和设备 Download PDF

Info

Publication number
CN108694131B
CN108694131B CN201810300801.8A CN201810300801A CN108694131B CN 108694131 B CN108694131 B CN 108694131B CN 201810300801 A CN201810300801 A CN 201810300801A CN 108694131 B CN108694131 B CN 108694131B
Authority
CN
China
Prior art keywords
data
target address
stored
read
sub
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.)
Active
Application number
CN201810300801.8A
Other languages
English (en)
Other versions
CN108694131A (zh
Inventor
M.贝泽默
T.芒茨
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 CN108694131A publication Critical patent/CN108694131A/zh
Application granted granted Critical
Publication of CN108694131B publication Critical patent/CN108694131B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种用于运行存储装置(100)的方法,在所述存储装置中存储装置(100)的第一存储区域(110)能够按块地利用待存储数据(D)来写入,所述方法具有以下步骤:将待存储数据(D)存储(200)在第一目标地址(ZA1)处,将待存储数据(D)存储(210)在第二目标地址(ZA2)处,其中第二目标地址(ZA2)与第一目标地址(ZA1)差了可预先给定的间隔(ofs),并且其中可预先给定的间隔(ofs)大于第一存储区域(110)的大约20%。

Description

用于运行存储装置的方法和设备
技术领域
本发明涉及一种用于运行存储装置的方法,其中存储装置的第一存储区域能够按块地利用待存储的数据来写入。
本发明还涉及一种用于运行这样的存储装置的设备。
背景技术
从市场上已知具有EEPROM(电可擦除可编程只读存储器)存储元件的存储装置,其中数据可以写入到块的单元中,而不必事先擦除整个区域,所述区域通常包括多个块。例如在EEPROM型的存储器中,存储器的每个地址可以重新写入,而不必事先擦除整个区域,所述区域包括多个块。这样的存储装置例如用在机动车内燃机的控制设备和其他技术系统中。
同样已知所谓的闪存存储器或闪存EEPROM存储器,其中在有关区域的各个块能够被写入之前,通常必须首先擦除至少一个完整区域。
发明内容
本发明的任务是如下地改进开头提及类型的方法和开头提及类型的设备,即得到提高的灵活性和提高的实用性。
该任务根据本发明在开头提及类型的方法中通过如下方式解决,即方法具有以下步骤:在第一目标地址处存储待存储的数据,在第二目标地址处存储待存储的数据,其中第二目标地址与第一目标地址差了可预先给定的间隔,并且其中可预先给定的间隔(英文:“offset:偏移”)大于第一存储区域的大约20%(即大于第一存储区域的存储容量的大约20%)。这决定了以下优点,在存储装置的个别存储单元或地址区域失效的情况下根据本发明写入的数据的总数据损失的概率小于常规存储装置中的总数据损失的概率,因为待写入的数据的第一副本存在于第一目标地址处并且待写入的数据的第二副本存在于第二目标地址处(“多重存放”的原理),因此待写入的数据在两个不同地址处冗余地存储在存储装置中。对于所写入的数据的总数据损失,在根据本发明的方法中应该需要不仅在第一目标地址处写入的数据而且在第二目标地址处写入的数据都变得无效,这在存储装置的特别是逐点的错误的情况下更不可能,因为观察到,存储装置中的错误通常集中于存储装置的一定连续的地址区域(只要不整个存储装置失效)。
在一些实施方式中可能的是,如前面已经描述的那样首先将待存储的数据的第一副本存储到第一目标地址处,并且然后将待存储的数据的第二副本存储到第二目标地址处。在其他实施方式中也可以设想相反的顺序,即首先将待存储的数据的第二副本存储到第二目标地址处,并且然后将待存储的数据的第一副本存储到第一目标地址处。
下面,依据源于英语的专业表达,根据本发明的可预先给定的间隔也称为“偏移”。
一般,在第一目标地址和第二目标地址之间的可预先给定的间隔或偏移不仅可以具有正值(即第二目标地址大于第一目标地址)而且具有负值(即第二目标地址小于第一目标地址)。下面,出于清楚的原因并且不限制一般性的情况下考虑这样的实施方式,其中偏移具有正值,因此第二目标地址大于第一目标地址。
在优选实施方式中,可预先给定的间隔或偏移大于第一存储区域的大约40%(百分比),由此进一步提高鲁棒性。
在一种特别优选的实施方式中,可预先给定的间隔或偏移为大约50%,完全特别优选地恰好为50%。由此得到存储装置的特别有利的并且有效的利用。特别是由此能够实现,将存储装置的第一存储区域分成第一子区域和第二子区域,其中在第一子区域中保存待写入数据的第一副本或仅仅相应的第一副本,并且其中在第二子区域中保存待写入数据的第二副本或仅仅相应的第二副本。于是特别优选的是,第一子区域和第二子区域是同样大的,使得根据本发明的原理可以在同时有效地充分利用所提供的存储器时在使用第一副本和第二副本的情况下也应用于数据的多个待写入的块。
在一种特别优选的实施方式中,可预先给定的间隔或偏移是恒定的。这意味着,偏移与相应的第一目标地址或相应的第二目标地址无关地具有在相应实施方式中提出的值、即例如50%。
在其他实施方式中也可以设想变型方案,其中偏移不是恒定的。例如对于相应第二目标地址的不同偏移可以分配给第一目标地址的不同的值或值范围。特别是按照其他实施方式也可以设想以下变型方案,其中根据相应的第一目标地址来选择相应的第二目标地址。因此实现以下可能性,即分别将偏移的独特的值分配给独特的第一目标地址。
在另一种有利的实施方式中,存储装置具有以下存储元件中的至少一个:EEPROM存储器、PCM存储器(相变随机存取存储器或相变存储器)。然而,根据本发明的原理一般也可以应用于所有存储装置或以下类型的存储装置,其中第一存储区域能够按块地写入。特别是,根据本发明的原理也可以应用于光学和/或磁性或其他存储器类型。
按块写入数据当前理解为写入数据的至少一个块,其中一个块优选地具有一个或多个字节、例如16字节、32字节或者也明显更多的例如256字节。可选地,数据块也可以具有附加信息、例如版本信息或校验信息或检验和(“checksum”,例如按照CRC原理)。特别是,数据的一个块包括逻辑上连续的数据,所述逻辑上连续的数据优选地通过检验和来保护。
在其他优选实施方式中规定,第一存储区域分成两个子区域并且两个子区域基本上同样大。由此得出清楚的分离,其中第一目标地址可以分配给两个子区域的第一子区域,并且其中第二目标地址可以分配给两个子区域的第二子区域。只要两个子区域基本上同样大或在一种实施方式中特别优选地恰好同样大,就有利地得出以下可能性,即对于整个提供的第一子区域进行待写入数据的根据本发明的冗余存储或多重存放。如果例如存储装置根据一种实施方式具有以下存储元件,该存储元件具有128kB(千字节)的存储容量,则在一种优选的实施方式中第一子区域可以包括64kB、即总存储容量的一半,并且第二子区域同样可以包括64kB。
在其他实施方式中也可以设想的是,能够分别分配有第一或第二目标地址的两个子区域是不同大的。在该情况下,待写入数据的第一副本或第二副本的多重存放或冗余存储仅可以在以下范围内进行,即在两个子区域中的用于写入的相应存储器是空着的或存在的。
在一种优选实施方式中,两个子区域在存储装置的地址空间中直接依次布置。在其他实施方式中,在存储装置的地址空间中的两个子区域之间还存在至少一个另外的存储区域。在所有前面提及的情况下,可以在使用根据本发明的可预先给定的间隔或偏移的情况下基于第一目标地址推断出第二目标地址或确定第二目标地址(并且反之亦然),以便将数据的第二副本存储在相应的第二子区域中。这特别是当第二子区域在存储装置的地址空间中不直接与第一子区域相邻时也适用。
在其他有利的实施方式中规定,在存储待存储的数据之前读取处于第一目标地址处的数据和处于第二目标地址处的数据。在另一种实施方式中规定,检查处于第一目标地址处的数据和/或检查处于第二目标地址处的数据。根据其他实施方式,从前面提及的读取或检查的步骤中获得的信息例如可以用于控制或影响待存储的数据的存储的紧随其后的过程。
例如在另一种有利的实施方式中可以规定,根据处于第一目标地址处的数据的检查和/或处于第二目标地址处的数据的检查来选择在第一目标地址处存储或在第二目标地址处存储的步骤顺序。由此可以根据在第一目标地址处和/或第二目标地址处的相应数据的在当前的存储过程之前存在的状态来为随后的写入过程首先选择性地在第一目标地址处写入数据或者在第二目标地址处写入数据。这可以决定高效存储器利用的优点,只要例如第一存储区域的包含第一目标地址的第一子区域优选地用于读访问,例如从应用软件等的方面的读访问。
在另一种有利的实施方式中规定,给待存储的数据补充以下信息,该信息表征待存储的数据首先存储在哪个目标地址处。例如待补充的信息可以包括1位,并且当待存储的数据首先存储在第一目标地址处时相应位被置于一(“1”),并且当待存储的数据首先存储在第二目标地址处时相应位被置于零(“0”)。稍后,特别是即使在存储过程结束之前中断存储过程也可以由此推断出,相应处于有关目标地址中的数据具有哪个时效或哪种状态。对此可以分析前面提及的位。替代地,待补充的信息也可以包括多于一个的位或多个字节,由此得出相应更宽的自由度,例如用于辨认相应块等的多个可能版本之一。
在另一种有利的实施方式中规定,读取处于第一目标地址处的数据,由此获得所读取的第一数据,并且读取处于第二目标地址处的数据,由此获得所读取的第二数据,其中可选地检查:所读取的第一数据和/或所读取的第二数据是否是无效的。由此可以实现之前存储的数据的安全提供和特别可靠的读访问。关于有效性检查数据例如可以通过将所读取的第一数据与所读取的第二数据进行比较来实施。在其他实施方式中,所读取数据的有效性检查例如可以通过分析检验和来进行,该检验和按照其他实施方式可以包含在相应读取的数据中。对此,在其他实施方式中,在写访问中可以设置给待写入的数据补充相应的检验和。
本发明的另一方面通过根据所公开的设备来说明。 具体地,根据本发明的用于运行存储装置的设备,在所述存储装置中存储装置的第一存储区域能够按块地利用待存储数据来写入,其中所述设备被构造用于实施以下步骤:将待存储数据存储在第一目标地址处,以及将待存储数据存储在第二目标地址处,其中第二目标地址与第一目标地址差了可预先给定的间隔,并且其中可预先给定的间隔大于第一存储区域的20%。
本发明的另一方面涉及一种计算机可读存储介质,其存储有计算机程序,所述计算机程序包括软件代码部分,当所述计算机程序在计算机上运行时,利用所述软件代码部分实施本发明方法的步骤
本发明的其他特征、应用可能性和优点从在附图的图中示出的实施例的以下描述中得出。在此,所有描述的或示出的特征本身或以任意组合构成本发明的主题,与其在说明书中或在附图中的表达或显示无关。
附图说明
在附图中:
图1示意性示出根据一种实施方式的设备的框图,
图2示意性示出根据一种实施方式的存储区域的框图,
图3示意性示出根据本发明的方法的一种实施方式的简化流程图,
图4示意性示出另一种实施方式的简化流程图,
图5示意性示出另一种实施方式的简化流程图,
图6示意性示出另一种实施方式的简化流程图,
图7示意性示出根据另一种实施方式的存储区域的框图,以及
图8示意性示出根据另一种实施方式的存储区域的框图。
具体实施方式
图1示意性示出存储装置100的框图,该存储装置具有一个或多个出于清楚的原因未在图1中描绘的EEPROM类型的存储元件,所述存储元件定义第一存储区域110。第一存储区域110能够按块地利用待存储的数据D来写入。例如待存储的数据D由更下面详细阐述的设备300输送给存储装置100。特别是,输送给存储装置100的数据D可以在应用下面详细描述的根据本发明的原理的情况下存储或保存在第一存储区域110中。
数据的按块写入当前理解为写入数据的至少一个块,该块具有一个或多个字节、例如16字节、32字节或者也明显更多的例如256字节。可选地,数据块也可以具有附加信息、例如版本信息或校验信息或检验和(“checksum”,例如按照CRC原理)。特别是,数据的一个块包括逻辑上连续的数据,所述逻辑上连续的数据优选地通过检验和来保护。
替代地或补充地,存储装置100的存储元件也可以由PCM类型或任意其他方式的存储器类型来构造,其能够实现数据的按块写入。PCM存储器向外表现得类似于EEPROM、特别是串行EEPROM,其中数据可以随时改变,而不必事先擦除整个区域,如这在闪存EPROM中所要求的那样。
可选地,存储装置100也可以具有至少一个另外的存储区域120。在一些实施方式中规定,数据遵循常规方法保存在另外的存储区域120中,并且不强制地遵循本发明所基于的原理。对于进一步的描述从这里出发。然而,在另外的实施方式中数据也可以遵循根据本发明的原理保存在另外的存储区域120中。
图1还示意性示出根据一种实施方式的用于运行存储装置100的设备300。设备300例如可以是计算单元、诸如微控制器或诸如此类的,该计算单元被构造用于实施下面示例性详细描述的根据本发明的方法。设备300例如具有计算内核310,该计算内核实施计算机程序320,该计算机程序实现根据本发明的方法的一个或多个步骤。计算机程序320可以至少暂时存储在工作存储器或分配给设备300的其他存储器315、例如程序存储器315中并且因此可供由计算内核310来实施。
图2示意性示出根据一种实施方式的第一存储区域110的框图。当前,第一存储区域110示例性地分成两个子区域110a、110b,这两个子区域在存储装置100(图1)的地址空间中优选地直接相继。同样可以设想其他实施方式,其中这两个子区域110a、110b直接相继。
图3示意性示出根据本发明的方法的一种实施方式的简化流程图。在第一步骤200中,要在存储装置100中存储的数据D(图1)、例如数据的块(随后称“数据块”或块)存储在第一目标地址ZA1(图3)处。这与以下同义,即在存储装置100中在第一目标地址ZA1处保存待存储数据D的第一副本。然后,在第二步骤210(图3)中,要在存储装置100中存储的数据D也存储在第二目标地址ZA2(图2)处,其中第二目标地址ZA2与第一目标地址ZA1差了可预先给定的间隔或偏移ofs。这与以下同义,即在存储装置100中在第二目标地址ZA2处保存待存储数据D的第二副本。因此,作为结果,根据一种实施方式,从现在起在存储装置100中存在待存储数据D的相同副本,一个在第一子区域110a中在第一目标地址ZA1处,并且一个在第二子区域110b中在第二目标地址ZA2处。
根据本发明提出:可预先给定的间隔或偏移ofs大于第一存储区域110a或第一存储区域110a的存储容量的大约20%。当前,可预先给定的间隔或偏移ofs选择成,使得其为第一存储区域110a的大约50%,即第一存储区域110a的总存储容量的大约50%,所述总存储容量当前对应于两个子区域110a、110b的存储容量的和。
因此,如果例如第一存储区域110的存储容量为64kB,则偏移ofs在一种优选实施方式中可以选择成32kB,并且两个子区域110a、110b分别32kB大。
由此实现,待存储数据的第二副本在第二目标地址ZA2处与待存储数据的第一副本在第一目标地址ZA1处的存储地点距离相对“远”地保存(参考存储装置100的线性地址空间),由此相对于有关存储装置100的子区域的错误的存储安全性显著提高。
此外,通过前述的双重存放有利地得到冗余,该冗余相对于两个副本之一或存储装置100的相应子区域110a、110b之一的失效是容忍的,其中在双重存放的情况下优选待存储数据D的两个相同副本保存在目标地址ZA1、ZA2处。
此外,通过将可预先给定的间隔或偏移ofs确定成第一存储区域110的容量的大约50%,有利地得出将第一存储区域110划分成第一子区域110a(图2)和第二子区域(110b)。只要例如前述的根据本发明的偏移ofs对于第一存储区域110a内的所有目标地址都恒定地选择,例如当前选择成50%,就保证,待写入数据的第一副本存储在第一子区域110a内,而待写入数据的第二副本存储在第二子区域110b内,由此在选择性覆写相应子区域中的个别数据块或目标地址时得到相对少的碎片或者甚至没有碎片,使得存储装置100在应用根据本发明的原理的情况下可以特别高效地并且尤其完全被充分利用。换句话说,例如整个第一子区域110a可以利用待写入或待存储数据的第一副本来填充,并且通过子区域的前述设计或偏移ofs的选择来保证,对于第一子区域110a中的每个第一副本,在第二子区域110b中相应的存储区段是空着的,以便容纳相应的第二副本。由此,第一子区域110a似乎构成了待存储数据块的第一存放,并且第二子区域110b似乎构成了待存储数据块的第二存放,由此有利地能够实现双重存放,该双重存放如已经描述的那样相对于存储错误是特别鲁棒的。
如果例如根据另一种实施方式应该将其他数据写入到存储装置100中,则相应的第一副本例如可以存储到在图2中同样描绘的目标地址ZA1',而相应的第二副本例如存储到在图2中同样描绘的目标地址ZA2',等等。
因此,在前述的优选实施方式中,恒定的偏移ofs用于针对待写入数据D的第一副本的第一目标地址ZA1来确定待写入数据D的第二副本的第二目标地址ZA2。这可以在恒定的偏移ofs的情况下明显有效地进行。特别是在了解第一目标地址ZA1和恒定偏移ofs的情况下可以有效地确定第二目标地址ZA2,并且反之亦然。在一些实施方式中,两个副本的写入也可以以不同的顺序进行,即首先在第二目标地址处写入待存储的数据,并且然后在第一目标地址处写入待存储的数据。在这种情况下,基于预先给定和根据本发明提出的偏移也可以有效地确定有关的目标地址。
在其他有利的实施方式中可设想的是,前述的优选恒定选择的偏移ofs仍然不时地改变。例如这可以以相对大的周期进行,所述周期包括对存储装置100的相应子区域的多个10000个写访问或者甚至多个100000个写访问。由此有利地可以的是,在存储装置100的相对长的运行时长之后将存储装置的为了提供第二目标地址ZA2、ZA2'而要使用的子区域从第二子区域110b迁移至存储装置100的另外的地址区域中的未在图2中描绘的其他子区域。所述其他子区域例如可以特别为上述使用而已经预留并且因此在迄今的运行时长期间不或仅仅相对受限地用于写访问,以便今后能够实现待存储数据的第二副本的可靠存储。对此的细节在更下面参考图8来描述。
在其他实施方式中,在存储中也可以设想与前面参考图3相反的顺序,使得首先将待存储数据的第二副本存储在第二目标地址ZA2(图2)处,并且然后将待存储数据的第一副本存储在第一目标地址ZA1(图2)处.
在其他有利的实施方式中规定,在存储200、210(图2)待存储数据D(图1)之前,读取处于第一目标地址ZA1(图2)处的数据或处于第二目标地址ZA2处的数据。
在其他实施方式中规定,检查处于第一目标地址ZA1处的数据和/或检查处于第二目标地址ZA2处的数据。
根据其他实施方式,从前述读取或检查的步骤中获得的信息例如可以用于控制或影响待存储数据的存储的紧随其后的过程。
对此,图4示例性示出根据本发明的方法的一种实施方式的简化流程图。对于随后列举的示例性阐述而假设:存在待存储数据D(图1),其如前面已经描述的那样应该写入到存储装置100的第一目标地址ZA1和第二目标地址ZA2。
在第一步骤400中读取已经处于第一目标地址ZA1处的数据。该数据例如可以是之前已经写入到第一目标地址ZA1的数据或者也可以是初始值或诸如此类的。在步骤402中,例如在分析包含在所读取的数据中的检验和的情况下进行在步骤400中读取的数据的检查。在其他有利实施方式中,这样的检验和例如也可以在根据本发明的方法的范围内确定或者整合到待存储数据D中。在一些实施方式中,计算单元300可以根据待存储数据形成这样的检验和并且特别是在将待存储数据D递交给存储装置100之前也将检验和整合到所述待存储数据中。
只要在步骤402中确定,在步骤400中读取的数据是有错误的或无效的,就分支到步骤404中,在该步骤404中待存储数据被写入到第一目标地址ZA1。然后,待存储数据也写入到第二目标地址ZA2,这在步骤406中进行。
相反,只要在步骤402中确定,在步骤400中读取的数据是有效的或无错的,就分支到步骤408中,在该步骤408中读取已经存在于第二目标地址ZA2处的数据。类似于步骤402,在随后的步骤410中进行在步骤408中所读取的数据的检查,例如又在分析包含在所读取的数据中的检验和的情况下进行。只要在步骤410中确定,数据是有错误的或无效的,就分支到步骤412中,在该步骤412中待存储数据首先存储在第二目标地址ZA2处。然后,在步骤414中待存储数据也存储在第一目标地址ZA1处。
相反,只要在步骤410中确定,在步骤408中读取的数据是(同样)有效的或无错的,就分支到步骤416中,在该步骤416中待存储数据被写入到第一目标地址ZA1。然后,待存储数据也写入到第二目标地址ZA2,这在步骤418中进行。
因此,在前面参考图4描述的实施方式中规定,根据已经处于第一目标地址处的数据的检查402和/或已经处于第二目标地址处的数据的检查410来选择在第一目标地址ZA1处存储待存储数据D或在第二目标地址ZA2处存储待存储数据D的步骤顺序。由此例如可以根据在第一目标地址处和/或第二目标地址处的相应数据的在当前的存储过程之前存在的状态来为随后的写入过程首先选择性地在第一目标地址处写入数据或者在第二目标地址处写入数据。这可以决定高效存储器利用的优点,只要例如第一存储区域110的包含第一目标地址ZA1、ZA1'的第一子区域110a(图1)优选地用于读访问,例如从在计算单元300上实施的应用软件等的方面的读访问。
在另一种有利的实施方式中规定,给待存储的数据D补充以下信息,该信息表征待存储的数据首先存储在哪个目标地址处。例如待补充的信息可以包括1位,并且当待存储的数据首先存储在第一目标地址处时相应位被置于一(“1”),并且当待存储的数据首先存储在第二目标地址处时相应位被置于零(“0”)。稍后,特别是即使在存储过程结束(两个存储步骤)之前中断存储过程也可以由此推断出,相应处于存储装置100的有关目标地址中的数据具有哪个时效或哪种状态。对此可以在相应的读取过程中分析前面提及的位。
例如这样的位可以可选地在步骤412中被置位并且与待写入数据一起、特别是整合到待写入数据中地来存储。能够包含在待写入数据块中的有效数据的量可以相应地减少。与此相应地,这样的位可以可选地在步骤414中被回置并且与在步骤414中待写入的数据一起、特别是整合到待写入数据中地来存储。可选地,在步骤414之后还可以实施步骤414',在该步骤414'中在第二目标地址处相应位被回置。
只要在前面提及的流程中例如在步骤412之后发生存储装置100运行中的中断,例如由于省去运行电压供应,在第二目标地址ZA2处就已经存在通过根据图4的流程待写入或待存储的数据D,其特征在于被置位的位,因为还没有实施步骤412。然而,由于中断,随后的步骤414不再能够实施,使得待存储数据D不能附加地还存储在第一目标地址ZA1处。然而,相反处于第一目标地址ZA1处的数据不具有被置位的位,而是可能具有回置的位,参见步骤414',其从关于目标地址ZA1、ZA2的前面的写循环中的无中断的运行出发。在该情况下,基于在不同目标地址ZA1、ZA2处的有关位的不同状态可以识别中断的前面提及的情况并且例如也针对读访问来分析该位的状态。
在另一种优选的下面参考根据图5的简化流程图来描述的实施方式中规定,读取处于第一目标地址处的数据,参见步骤420,由此获得所读取的第一数据,并且读取处于第二目标地址处的数据,参见步骤422,由此获得所读取的第二数据。然后,在步骤424中检查,所读取的第一数据和/或所读取的第二数据是否是有效的或有错误的,这又可以通过分析相应的检验和来进行。
只要在步骤424中的检查得出,所读取的第一数据和所读取的第二数据(即例如所读取的第一数据)的数据组是有错误的,就在步骤426中将余下的正确的数据组(即例如所读取的第二数据)作为所读取的数据输出,例如输出到计算单元300。
然而,只要在步骤424中的检查得出,所读取的第一数据和所读取的第二数据都是无错的,就分支至步骤428,并且或者所读取的第一数据或者所读取的第二数据可以用作所读取的数据或被输出,例如又输出到计算单元300。
只要根据前面参考图4的可选实施方式描述的位在前面的存储过程中已经被使用,就可以可选地在根据图5的步骤428中也分析该位或类似的计数值或诸如此类的(其同样可以包含在所存储的数据中),以便确定所读取的第一数据或所读取的第二数据是否用作所读取的数据或输出到计算单元300。因此在步骤428中能够有利地确定,两个所读取的数据中的哪个是更新的。
图6示意性示出另一种实施方式的简化流程图。观察到也称为迁移的过程,其中第一存储区域110(图1)的一个或多个存储块的内容改变。特别是在这样的迁移期间各个存储块的容量也可以变化,使得在确定目标地址处的现有存储块通过新的更大的存储块的纯覆写是不可能的,因为在这种情况下随后存在的存储块的一部分被覆写。此外,在这样的迁移中也可以完全重新添加或丢弃块。
然而,在应用前面参考图1至5描述的根据本发明的原理的情况下也可以有效并且安全地实施这样的迁移,该迁移在从计算单元300的第一软件状态到第二软件状态的变换的范围内进行。
在可选的第一步骤430中,参见图6,首先检查是否第一子区域110a的所有存储块都包含无错误的数据,这例如可以通过以下方式实现,即分析分配给存储块的或整合到存储块中的检验和。只要在步骤430中的检查得出,在至少一个存储块中存在错误,就可以中断方法或导入错误处理例程。根据一种实施方式,错误处理例程例如可以包括用于排除错误的方法、即错误的治疗。在这种情况下例如可以重新读入识别为有错误的块,相应的检验和重新计算并且例如整合在该块中,并且然后块可以重新写入。然而优选地,在第一子区域110a中识别为有错误的块的无错误的副本也可以从第二子区域中读取并且拷贝到第一子区域110a中。
然而,只要步骤430中的检查得出,第一子区域110a的所有存储块都包含无错误的数据,根据图6的方法以随后的步骤432继续。在步骤432中,现在提供对于迁移所需的所有新的或改变的存储块,优选地依次地、特别是在相继的目标地址处写入到第一存储区域110的第二子区域110b中。该过程也可以理解成在第二子区域110b中施加新的存储布局。这可以无问题地执行,因为对于无中断的运行,在迁移之前使用的软件状态的所需的存储器内容(特别是存储器内容的完整布局)一如既往地无错误地存在于第一子区域110a中,如步骤430中前述的可选的检查所得到的那样。换句话说,即必要时在计算单元300上运行的应用软件或例如必须从存储装置100中读取(和/或写入到存储装置100中的)由迁移之前存在的软件状态构成的数据的另外的软件访问第一子区域110a,而在步骤432中对于在迁移之后重要的新的软件状态所需的存储块整理第二子区域110b。在这种情况下,有利地又使用检验和或类似的机制,以便能够实现在第二子区域110b中的在各个存储块中存储的数据的完整性的检查。在一种特别优选的实施方式中,用于新的存储布局的新的块(即所述新的块没有以第一副本的形式已经存在于第一子区域110a中)从相应的源加载或根据可预先给定的初始数据来施加。已经存在于第一子区域110a中的块可以为了形成第二子区域110b中的新的布局而有利地简单地从第一子区域110a中拷贝到第二子区域110b中。
在一种实施方式中,表征数量、类型、容量、存储器中的(相对)位置(例如与存储器的有关子区域的开始的间隔)和要存储在存储装置100中的块的其他特征数据的信息例如可以保存在计算单元300的存储装置中,即特别是不(或至少不单独)保存在存储装置100本身中。根据一种实施方式,这些信息的总体也可以称为存储装置100或相应子区域110a、110b的存储器的配置或布局。配置K(图1)或布局例如也可以保存在计算单元300的程序存储器315中。
然后,在步骤434(图6)中进行在第二子区域110b的各个存储块中存储的数据的完整性的前述检查。
只要步骤434中的检查得出,第二子区域110b的至少一个存储块是有错误的,就可以引入错误处理例程(未示出)或重新写入有关的一个或多个存储块。这出于清楚的原因未在图6中描绘。
然而,只要步骤434中的检查得出,第二子区域110b的所有存储块都是无错误的,方法就以步骤436继续。在步骤436中,所有之前整理在第二子区域110b中的或写入到其中的存储块从现在起拷贝到第一子区域110a中,例如有利地通过以整个子区域为对象的唯一的拷贝过程,并且在随后的步骤438中进行拷贝到第一子区域110a中的数据的完整性检查。
在其他实施方式中,之前参考图6描述的关于两个子区域110a、110b的过程也可以以相反的顺序实施。换句话说,例如第一子区域110a也可以首先以新的布局或新的数据块来写入并且两个子区域110a、110b的角色反转。
在另一种优选的实施方式中,前面参考图6描述的方法的实施有利地通过驱动软件来控制,该驱动软件以相应方式控制存储装置100。根据前述原理,驱动软件有利地能够读取在存储装置100中(或在其子区域110a、110b中)已经存在的旧的存储布局并且有效地转变成新的布局。在应用前述原理的情况下(特别是也在使用用于表征数据状态的位的可选的插入的情况下,参见根据图4的流程的步骤412、414、414'),该过程相对于中断是特别鲁棒的,因为在根据图6的方法流程期间出现的中断的情况下该方法可以随时无错误地又重新启动或继续进行。特别是根据本发明的原理的应用也防止出现数据损失,如其在常规系统中由于中断而可能出现的那样。
图7示意性示出根据另一种实施方式的存储装置100的存储区域的框图。当前,用于应用根据本发明的原理的子区域110a、110b不直接相继地布置在存储装置100的地址空间中。更确切地说,如从图7可见,其间布置有另外的存储区域120,该另外的存储区域当前用于存储遵循常规方法的数据、即例如没有双重存放或安全副本。通过选择当前优选恒定的足够大的可预先给定的间隔或偏移ofs'又保证了,待存储数据的有效存储不仅可以在第一子区域110a中的第一目标地址ZA1处实现而且可以在第二子区域110b中的第二目标地址ZA2处实现。
图8示意性示出根据另一种实施方式的存储装置100的存储区域的框图。当前,子区域110a、110b直接相继地布置在存储装置100(图1)的线性地址空间中。第一可预先给定的间隔或偏移ofs如前面参考图2、图7已经多次描述那样定义存储装置100中的第一和第二目标地址ZA1、ZA2,用于待存储数据的根据本发明的特别是冗余的存放。如从图8中可见,当前还设置有第三子区域110c,其地址空间通过使用第二偏移ofs2来展示,其中第二偏移ofs2当前大于第一偏移ofs。这特别是在以下情况下是适宜的,即对第二子区域110b已经发生相对多的写操作,使得在第二子区域110b中的可靠数据保持不能以与在存储装置100的其他存储区域110c中相同的程度来保证,所述其他存储区域在其运行时间期间—例如由于相应的预留—经历了较小的写负荷。换句话说,通过从第一偏移ofs变换到第二偏移ofs2,可以有利地访问用于将第二副本存储在第二目标地址ZA2'处的第三子区域110c,而第一副本例如此外保存在第一子区域110a中的第一目标地址ZA1处。前述的从第一偏移到第二偏移的变换例如可以关于第二子区域110b的大约所有100000个写循环来进行。根据存储装置100的存储技术,在此也可以选择不同的值(更多、更少)。
前述的根据本发明的原理能够实现数据在存储装置100中的有效存储并且特别是比常规方法更好地充分利用存储装置100。由此有利地得到成本节约,因为仅必须为存储装置100维持如实际需要那么多的物理存储器。从前面参考图2描述的示例出发,因此第一或第二子区域110a、110b的总存储容量可供用于容纳待存储的信息、诸如数据块,而分别另外的子区域主要用于应用根据一种实施方式的根据本发明的原理。
此外,在应用根据本发明的原理的情况下可以降低驱动软件的复杂度,该驱动软件例如设置在计算单元300中,以便控制对存储装置100的写访问和/或读访问。驱动软件例如可以用于提供在计算单元300上运行的其他软件组件按定义地访问存储装置100。通过驱动软件相较于常规解决方案更低的复杂度,可以降低在计算单元300的程序存储器315(图1)中的相应存储需求,这同样降低成本。在一种优选的实施方式中,驱动软件布置在计算单元300的程序存储器315中,必要时与其他软件、诸如应用程序一起布置在计算单元300的程序存储器315中。在一种实施方式中,相对于计算单元300的程序存储器315,存储装置100可以有利地至少主要用于存储数据而非程序代码。
通过应用根据本发明的原理而进一步的成本节约有利地通过以下得出,即可以相对简单地测试根据本发明的原理或相应存储装置100或计算单元300的功能。
在一些实施方式中,通过智慧地将存储介质或主要存储区域110成分两个块、特别是两个同样大的子区域110a、110b(图2)而可以的是,执行在主要存储区域110中存储的数据的迁移或基本的重新组织,而不用为此使其他存储区域空着。此外,在迁移期间也有利地可能的是,从存储装置100读取数据和/或将数据写入到该存储装置中,因为例如至少在第一子区域110a中总是存在其中存储的块的耐久的布局。换句话说,这样的迁移也可以在以下背景下运行,其间正常运行、特别是对存储装置100的访问例如可以通过计算单元300一如既往地实现。
特别有利地,在应用根据本发明的原理的情况下,存储装置或第一存储区域110a可以利用数据或数据块填充至100%,而没有就地的软件更新和由此必要时需要的在存储装置100中的数据的重新排序或迁移方面的限制。
通过设置根据本发明的可预先给定的间隔或偏移ofs,双重存放的第一副本和第二副本在地址技术上不直接相继地处于存储装置的地址空间中,而是相隔相对远地处于第一目标地址ZA1(图2)和第二目标地址ZA2处。因此,在存储装置100中的个别地址区域失效的情况下不丢失数据或至少不丢失所有数据,这是鲁棒的解决方案。
根据本发明的原理在存储装置100中的应用相较于常规解决方案可以特别简单地实现以及测试。由此节省在开发中的成本。

Claims (10)

1.用于运行存储装置(100)的方法,在所述存储装置中存储装置(100)的第一存储区域(110)能够按块地利用待存储数据(D)来写入,所述方法具有以下步骤:
将待存储数据(D)存储(200)在第一目标地址(ZA1)处,将待存储数据(D)存储(210)在第二目标地址(ZA2)处,其中第二目标地址(ZA2)与第一目标地址(ZA1)差了可预先给定的间隔(ofs),并且其中可预先给定的间隔(ofs)大于第一存储区域(110)的20%,
在存储(200、210)待存储数据(D)之前读取处于第一目标地址(ZA1)处的数据(SD1)和/或处于第二目标地址(ZA2)处的数据(SD2),
检查处于第一目标地址(ZA1)处的数据和/或检查处于第二目标地址(ZA2)处的数据,以及
根据处于第一目标地址(ZA1)处的数据的检查和/或处于第二目标地址(ZA2)处的数据的检查来选择在第一目标地址(ZA1)处存储(200)或在第二目标地址(ZA2)处存储(210)的步骤(200、210)顺序,
其中检查处于第一目标地址(ZA1)处的数据包括:
检查所读取的已经处于第一目标地址(ZA1)处的数据是有错或无效,还是无错或有效,
和/或检查处于第二目标地址(ZA2)处的数据包括:
检查所读取的已经处于第二目标地址(ZA2)处的数据是有错或无效,还是无错或有效。
2.根据权利要求1所述的方法,其中可预先给定的间隔(ofs)为第一存储区域(110)的50%。
3.根据权利要求1所述的方法,其中所述存储装置(100)具有以下存储元件中的至少一个:EEPROM存储器、PCM存储器。
4.根据上述权利要求1-3之一所述的方法,其中第一存储区域(110)被分成两个子区域(110a、110b),并且其中所述两个子区域(110a、110b)同样大。
5.根据上述权利要求1-3之一所述的方法,其中给待存储数据(D)补充以下信息,所述信息表征待存储数据(D)首先存储在哪个目标地址(ZA1、ZA2)处。
6.根据上述权利要求1-3之一所述的方法,其中读取(420)处于第一目标地址(ZA1)处的数据,由此获得所读取的第一数据,并且其中读取(422)处于第二目标地址(ZA2)处的数据,由此获得所读取的第二数据。
7.根据权利要求6所述的方法,其中检查(424)所读取的第一数据和/或所读取的第二数据是否是无效的。
8.用于运行存储装置(100)的设备(300),在所述存储装置中存储装置(100)的第一存储区域(110)能够按块地利用待存储数据(D)来写入,其中所述设备(300)被构造用于实施以下步骤:
将待存储数据(D)存储(200)在第一目标地址(ZA1)处,
将待存储数据(D)存储(210)在第二目标地址(ZA2)处,其中第二目标地址(ZA2)与第一目标地址(ZA1)差了可预先给定的间隔(ofs),并且其中可预先给定的间隔(ofs)大于第一存储区域(110)的20%,
在存储(200、210)待存储数据(D)之前读取处于第一目标地址(ZA1)处的数据(SD1)和/或处于第二目标地址(ZA2)处的数据(SD2),
检查处于第一目标地址(ZA1)处的数据和/或检查处于第二目标地址(ZA2)处的数据,以及
根据处于第一目标地址(ZA1)处的数据的检查和/或处于第二目标地址(ZA2)处的数据的检查来选择在第一目标地址(ZA1)处存储(200)或在第二目标地址(ZA2)处存储(210)的步骤(200、210)顺序,
其中检查处于第一目标地址(ZA1)处的数据包括:
检查所读取的已经处于第一目标地址(ZA1)处的数据是有错或无效,还是无错或有效,
和/或检查处于第二目标地址(ZA2)处的数据包括:
检查所读取的已经处于第二目标地址(ZA2)处的数据是有错或无效,还是无错或有效。
9.根据权利要求8所述的设备(300),其中所述设备(300)被构造用于实施根据权利要求2至7中任一项所述的方法。
10.一种计算机可读存储介质,其存储有计算机程序(320),所述计算机程序包括软件代码部分,当所述计算机程序在计算机上运行时,利用所述软件代码部分实施根据权利要求1至7中任一项所述的方法的步骤。
CN201810300801.8A 2017-04-06 2018-04-04 用于运行存储装置的方法和设备 Active CN108694131B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DE102017205890 2017-04-06
DE102017205890.0 2017-04-06
DE102017220708.6 2017-11-20
DE102017220708.6A DE102017220708A1 (de) 2017-04-06 2017-11-20 Verfahren und Vorrichtung zum Betreiben einer Speichereinrichtung

Publications (2)

Publication Number Publication Date
CN108694131A CN108694131A (zh) 2018-10-23
CN108694131B true CN108694131B (zh) 2024-03-29

Family

ID=68210539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810300801.8A Active CN108694131B (zh) 2017-04-06 2018-04-04 用于运行存储装置的方法和设备

Country Status (3)

Country Link
US (1) US10452309B2 (zh)
CN (1) CN108694131B (zh)
DE (1) DE102017220708A1 (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004252525A (ja) * 2003-02-18 2004-09-09 Nec Corp エミュレータおよびプログラム
WO2015172419A1 (zh) * 2014-05-12 2015-11-19 上海大学 一种计算机系统及数据读写方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287133B2 (en) * 2004-08-24 2007-10-23 Symantec Operating Corporation Systems and methods for providing a modification history for a location within a data store
TWI417893B (zh) * 2009-05-06 2013-12-01 Silicon Motion Inc 資料存取裝置及資料存取方法
US8885399B2 (en) * 2011-03-29 2014-11-11 Nxp B.V. Phase change memory (PCM) architecture and a method for writing into PCM architecture

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004252525A (ja) * 2003-02-18 2004-09-09 Nec Corp エミュレータおよびプログラム
WO2015172419A1 (zh) * 2014-05-12 2015-11-19 上海大学 一种计算机系统及数据读写方法

Also Published As

Publication number Publication date
US10452309B2 (en) 2019-10-22
CN108694131A (zh) 2018-10-23
DE102017220708A1 (de) 2018-10-11
US20180292994A1 (en) 2018-10-11

Similar Documents

Publication Publication Date Title
US8332574B2 (en) Method for efficient storage of metadata in flash memory
US6865658B2 (en) Nonvolatile data management system using data segments and link information
JP4926982B2 (ja) フラッシュメモリ内でコピー操作を管理する方法
KR101103110B1 (ko) 메모리 시스템
CN101283335A (zh) 闪存管理
EP2329366B1 (en) Performing a pre-update on a non volatile memory
EP3069349B1 (en) Fail safe refresh of data stored in nand memory device
WO2005001592A2 (en) Flash memory management method that is resistant to data corruption by power loss
US20090172252A1 (en) Memory device and method for performing a write-abort-safe firmware update
JP2008077221A (ja) 車両用制御装置
US8219739B2 (en) Read-only optimized flash file system architecture
JP5343817B2 (ja) 記憶装置
US7657795B2 (en) Method and apparatus for writing to a target memory page of a memory
EP1540660B1 (en) Method of and apparatus for detecting an error in writing to persistent memory
CN107590081B (zh) 数据管理方法以及具有快闪存储器的装置
KR101548452B1 (ko) 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
CN103339603A (zh) 计算机重新编程方法、数据存储介质和机动车辆计算机
US20180052635A1 (en) Electronic control apparatus and information storage method for the same
CN108694131B (zh) 用于运行存储装置的方法和设备
US7313648B2 (en) Corruption tolerant method and system for deploying and modifying data in flash memory
KR101545077B1 (ko) 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
JP4580724B2 (ja) 不揮発性メモリの制御方法

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
GR01 Patent grant
GR01 Patent grant