CN108604207B - 用于独立于硬件的存储器存储的系统及方法 - Google Patents
用于独立于硬件的存储器存储的系统及方法 Download PDFInfo
- Publication number
- CN108604207B CN108604207B CN201780008823.0A CN201780008823A CN108604207B CN 108604207 B CN108604207 B CN 108604207B CN 201780008823 A CN201780008823 A CN 201780008823A CN 108604207 B CN108604207 B CN 108604207B
- Authority
- CN
- China
- Prior art keywords
- volatile memory
- directory
- entry
- address
- response
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/17—Embedded application
- G06F2212/173—Vehicle or other transportation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例涉及一种文件系统,更具体地说,涉及一种用于安全关键嵌入式系统(诸如,汽车的电子控制单元(ECU))的、与多种类型的非易失性存储器兼容的文件系统。本公开内容的一些示例包括具有由文件系统管理的RAM和非易失性存储器的ECU。
Description
相关申请的交叉引用
本申请要求于2016年1月29日提交的美国临时申请No.62/288,938的优先权,出于所有的目的,其全部内容通过引用结合于此。
技术领域
本发明一般涉及电子归档系统,更具体地说,涉及用于安全关键嵌入式系统(例如,汽车的电子控制单元(ECU))的、与多种类型的非易失性存储器兼容的文件系统。
背景技术
嵌入式系统可以具有随机存取存储器(RAM)、非易失性存储器以及存储器层次结构中的其他类型存储器和存储装置。RAM可以提供快速的性能,但是要求连接电源来保留数据。然而,非易失性储存器可以在电源断开时保留数据。非易失性存储器的示例包括但不限于电可擦除可编程只读存储器(EEPROM)、电池备份RAM以及闪存。为了创建能够在电源断开时能够快速运行并保留数据的系统,可以将数据存储在非易失性存储器中,并在需要执行功能时将数据加载至RAM中。当RAM数据被修改时,随后将其保存到非易失性存储器中以在断电情况下使用。当数据被保存到RAM或非易失性存储器时,所存储的数据可以由具有地址指针的函数访问。
许多嵌入式系统中的非易失性存储器可以在应用程序代码中进行手动管理或者由文件系统进行手动管理。当通过应用程序代码来管理非易失性存储器时,开发人员需要就非易失性存储器中的哪些地址被分配给各个数据结构达成一致。管理每个结构的地址可以防止数据被无意覆盖或者丢失。手动分配和跟踪每级内存层次结构的内容可能容易出错且乏味。但是,文件系统可以自动管理多级上的存储器并且提供例如如下所述的其他功能,以减轻手动存储器管理的几个缺点。
文件系统可以为计算机系统内的多级存储器层次结构中的数据分配空间,并且维护每个结构所在位置的记录。文件系统的其他功能包括但不限于多级目录和使用安全凭证。这些文件系统对于具有许多文件、高级功能和/或敏感数据的计算机系统(包括但不限于移动设备、膝上型计算机以及其他消费电子产品)是有利的。然而,消费类汽车中的电子控制单元(ECU)通常运行低级别的安全关键应用程序。因此,当前的文件系统的许多特征对于管理ECU内的存储器而言是不必要的。因此,ECU领域中需要一种适用于汽车控制序列和ECU硬件的文件系统,其可以随着被结合到单个汽车中的ECU的不同而变化。
发明内容
本发明的实施例涉及一种文件系统及其用途。更具体地,本发明的实施例涉及一种用于安全关键嵌入式系统(诸如汽车的电子控制单元(ECU))的、与多种类型的非易失性存储器兼容的文件系统。本公开内容的一些示例包括具有由文件系统管理的RAM和非易失性存储器的ECU。当前的文件系统可以被设计成与非易失性存储器的特定硬件实现(例如,EEPROM、闪存、电池后备RAM或其他类型非易失性存储器)一起工作。在ECU的一些示例中,用于非易失性存储器的硬件可能在软件开发开始时是未知的,或者可能对于并入一系列车辆中的ECU或甚至在单个车辆内的ECU而言不一致。这种不一致性会使得开发人员团队难以为ECU选择文件系统,并且使得手动管理功能代码内的非易失性存储器变得更加困难。此外,文件系统的一些示例可以动态地分配存储器。在诸如ECU之类的安全关键系统中,例如,当有足够的时间来完成保存操作从而避免丢失关键信息时,仅保存数据可能是有利的。在一些示例中,ECU可以包括为安全关键系统设计的独立于硬件的文件系统。
在一些示例中,ECU可以使用文件系统来管理RAM和非易失性存储器。在一些示例中,文件系统可以向软件开发者提供独立于硬件的功能,以通过由ECU执行代码来使用该文件系统。根据本公开内容的示例的独立于硬件的文件系统可以提供抽象层,因此开发人员不需要使他们的代码适用于ECU使用的非易失性存储器的类型。根据本公开内容的一些示例,文件系统可以包括具有条目阵列的目录。例如,该条目阵列可以记录并跟踪一个或多个数据结构,所述一个或多个数据结构可以存储在ECU的RAM和/或非易失性存储器中。该阵列可以对于每个条目的唯一ID,该条目在RAM和非易失性存储器中的地址,该条目的大小,以及元数据。元数据可以包括例如版本号、该条目上一次被保存到非易失性存储器中的时间以及根据本公开的示例的其他信息。当ECU通电时,可以将目录从非易失性存储器加载到RAM中。在电源断开之前,ECU可以在能够安全地将目录保存到非易失性存储器中的情况下将目录保存到非易失性存储器中。在一些示例中,在有足够时间完成保存过程而不会出现中断而防止数据损坏,进而使得ECU更可靠的情况下,可以将数据保存到非易失性存储器中。
附图说明
图1示出了根据本公开内容的示例的示例性存储器层次结构。
图2示出了根据本公开内容的示例的包括RAM和非易失性存储器的示例性ECU的框图,RAM和非易失性存储器上均存储有数据。
图3示出了根据本公开内容的示例的用于启动文件系统并加载或生成文件系统的目录的示例性过程。
图4示出了根据本公开内容的示例的用于管理数据结构的示例性过程,该示例性过程包括使用文件系统注册条目、保存条目以及检索条目。
图5示出了根据本公开内容的示例的用于使用文件系统将所有条目和目录保存到非易失性存储的示例性过程。
图6示出了根据本公开的示例的包含多个ECU的示例性车辆的框图。
具体实施方式
在以下的描述中,参考形成该描述的一部分的附图,并且在附图中通过示例性的方式示出了可以实施的具体示例。应当理解的是,在不脱离本公开内容的示例的范围的情况下,可以使用其他示例并且可以进行结构上的更改。
本发明涉及一种文件系统,更具体地说,涉及一种用于安全关键嵌入式系统(例如,汽车的电子控制单元(ECU))的、与多种类型的非易失性存储器兼容的文件系统。本公开内容的一些示例包括具有由文件系统管理的RAM和非易失性存储器的ECU。当前的文件系统可以被设计成与非易失性存储器的特定硬件实现(例如,EEPROM、闪存、电池后备RAM或其他类型非易失性存储器)一起工作。在ECU的一些示例中,用于非易失性存储器的硬件可能在软件开发开始时是未知的,或者可能对于并入一系列车辆中的ECU或甚至在单个车辆内的ECU而言不一致。这种不一致性会使得开发人员团队难以为ECU选择文件系统,并且使得手动管理功能代码内的非易失性存储器变得更加困难。此外,文件系统的一些示例可以动态地分配存储器。在诸如ECU之类的安全关键系统中,例如,当有足够的时间来完成保存操作从而避免丢失关键信息时,仅保存数据可能是有利的。在一些示例中,ECU可以包括为安全关键系统设计的独立于硬件的文件系统。
在一些示例中,ECU可以使用文件系统来管理RAM和非易失性存储器。在一些示例中,文件系统可以向软件开发者提供独立于硬件的功能,以通过由ECU执行的代码来使用文件系统。根据本公开内容的示例的独立于硬件的文件系统可以提供抽象层,因此开发人员不需要使他们的代码适用于ECU使用的非易失性存储器的类型。根据本公开内容的一些示例,文件系统可以包括具有条目阵列的目录。例如,该条目阵列可以记录并跟踪一个或多个数据结构,所述一个或多个数据结构可以存储在ECU的RAM和/或非易失性存储器中。该阵列可以对于每个条目的唯一ID,该条目在RAM和非易失性存储器中的地址,该条目的大小,以及元数据。元数据可以包括例如版本号、该条目上一次被保存到非易失性存储器中的时间,以及根据本公开的示例的其他信息。当ECU通电时,可以将目录从非易失性存储器加载到RAM中。在电源断开之前,ECU可以在能够安全地将目录保存到非易失性存储器中的情况下将目录保存到非易失性存储器中。在一些示例中,在有足够时间完成保存过程而不会出现中断而防止数据损坏,进而使得ECU更可靠的情况下,可以将数据保存到非易失性存储器中。
根据本公开内容的示例文件系统可以被用于诸如嵌入式系统、消费电子产品和计算机之类的计算系统中以管理存储在其上的数据。计算系统可以包括多级存储器,例如易失性存储器(例如,随机存取存储器(RAM))和非易失性存储器。每级可以具有与之相关的权衡。图1示出了根据本公开内容的示例的存储器层次结构100。例如,存储器层次结构100可以包括多级存储器,存储器具有相关的诸如速度120和成本130的权衡,在一些示例中,存储器层次结构100包括存储装置102、非易失性存储器104、RAM 106以及高速缓存108。例如,存储装置102可以通过硬盘驱动器来实现。例如,非易失性存储器104可以通过EEPROM,电池后备RAM或闪存来实现。存储器102和非易失性存储器106的其他实现是可能的。其他示例性计算机系统可以具有在适合于计算机系统的存储器层次结构内的更多级或更少级。例如,一些ECU可以具有包括RAM和非易失性存储器的存储器层次结构。
在图1的示例中,高速缓存108是层次结构100中最快且最昂贵的一级存储器,并且存储装置102是最慢且最便宜的。由此,例如,具有示例性存储器层次结构100的示例性计算机系统可以在高速缓存108中具有最小量的空间并且在存储装置102中具有最大量的空间。通过使更快、更昂贵的存储器占用更少的空间,而使更慢、更便宜的存储器占用更多的空间,系统可以在必要时以高速执行,而无需包括过多的昂贵的高速存储器。
此外,在一些示例中,存储器层次结构的诸如高速缓存108和RAM106的易失性级仅在连接有系统电源时保留数据。存储器层次结构的诸如非易失性存储器104和存储装置102之类的其他级可以在系统电源断开时保留数据。因此,除了上文所讨论的其他权衡之外,具有多级存储器可以例如使得计算机系统能够在断电时保留数据。
为了有效地使用其存储器层次结构,计算机系统可以在操作期间在层级间移动数据。在一些示例中,当计算机系统正在执行应用程序或修改文件时,使得数据驻留在诸如高速缓存108的高速、高成本存储器上可能是有利的。当计算机完成修改数据时,可以将数据保存到较慢、较便宜的存储器级别,例如非易失性存储器104或存储装置102。在一些示例中,将当前未使用的数据保存到非易失性存储器104或存储装置102可以在高速缓存108和RAM 106中为其他数据腾出空间并且可以在断电的情况下保护当前未使用的数据。例如,对于简单的存储器层次结构(例如,仅包括RAM和非易失性存储器的存储器层次结构)而言,开发人员可以手动跟踪数据结构要在每级存储器中的哪些地址中进行存储。例如,记录各个数据结构在各级存储器中进行保存的位置可以帮助开发人员团队避免无意中覆盖数据或丢失数据跟踪。
在一些示例中,随着存储器层次结构变得更加复杂,随着开发人员团队的增长,或者随着开发以更快的速度进行,手动跟踪每个数据结构的位置会变得容易出错且繁琐。此外,为了手动管理非易失性存储器,开发人员必须了解计算机系统将使用哪个硬件以及如何管理计算机系统的存储器。因此,许多计算机系统包括用于管理多级存储器的文件系统。在一些示例中,文件系统可以为系统内的多级存储器层次结构分配空间,并对每个结构所在的位置的记录进行维护。文件系统的其他特征包括但不限于多级目录和使用安全凭证。这些文件系统对于例如具有许多文件、高级功能和/或敏感数据的系统是有利的。在一些示例中,文件系统被设计为与针对每级存储器的特定类型的硬件一起工作。
然而,消费类汽车中的电子控制单元(ECU)通常例如运行低级别的安全关键应用程序。因此,根据本公开内容的一些示例,当前文件系统的许多特征对于管理ECU内的存储器可能是不必要的。此外,在一些示例中,当前的文件系统可以是依赖于硬件的。例如,非易失性存储器的硬件实现会因项目的不同而变化,或者在项目开始时并未达成一致,存储器管理对于开发人员来说具有挑战性,因为不同类型非易失性存储器通过不同的方式进行操作。根据本公开内容的示例的文件系统可以包括独立于硬件的功能,以供开发人员在编写用于ECU的软件时使用。
在一些示例中,ECU可以包括由文件系统进行管理的RAM和非易失性存储器。图2示出了根据本公开内容的示例的包括RAM 210和非易失性存储器250的示例性ECU 200的框图,RAM 210和非易失性存储器250各自存储有数据242和数据292。RAM 210中的数据可以例如通过字节号232和位号234来寻址。非易失性存储器250中的数据可以例如通过字节号272和位号274来寻址。在一些示例中,RAM 210可能比非易失性存储器250更快且更昂贵。例如,即使至ECU 200的电源(未示出)断开时,非易失性存储器250也可以保持数据。根据本公开内容的示例,非易失性存储器250可以用EEPROM、闪存、电池后备的RAM或其他类型的非易失性存储器来实现。在一些示例中,文件系统可以包括独立于硬件的功能,以供开发人员调用从而使用文件系统,使独立于硬件的函数的代码与各种非易失性存储器类型兼容。因为RAM210和非易失性存储器250具有不同的优点和缺点,所以ECU 200可以使用这两级存储器以得到在没有连接电源的情况下能够保存数据、性能快速且廉价的存储器。
根据本公开内容的一些示例,ECU 200可以具有能够管理RAM 210和非易失性存储器250中的数据的文件系统。文件系统可以包括目录,该目录中的内容可以是保存在RAM210中的副本220和/或保存在非易失性存储器250中的副本260。当存储在RAM 210中的目录220被更新且随后被保存到非易失性存储器250中时,副本220和副本260二者会是相同的。例如,存储在RAM 210中的目录220可以包括条目(例如条目222)并且可以指示ECU中的每个数据结构存储在RAM 210和非易失性存储器250中的位置。同样地,例如,存储在ECU 200的非易失性存储器260中的目录260可以包括相应的条目262。
例如,对于目录220的条目222可以包括唯一的ID 221、数据结构在RAM中的地址223、数据结构在非易失性存储器250中的地址225以及数据结构的大小227。同样地,例如,目录260中的条目262可以包括唯一的ID 261、数据结构在RAM 210中的地址263、数据结构在非易失性存储器250中的地址265以及数据结构的大小267。如图2所示,例如,“前灯(frontLights)”存储在RAM 210中的地址为0x7EF并且在非易失性存储器250中的地址为0x013CF。这些地址反映在目录210中的条目222中以及反映在目录260中的条目262中。一些示例性目录还可以包括关于每个条目的元数据(未示出)。元数据可以包括版本号和指示条目上一次何时被保存到非易失性存储器的时间。附加地或可替代地,本公开内容的一些示例可以具有关于目录中的每个条目的其他类型的元数据。
在一些示例中,目录(例如,目录220或目录260)也可以包括其自身的元数据(未示出)。该元数据可以包括用于指示目录在非易失性存储器中的位置的ID、指示目录的结构的版本、指示目录何时被创建的时间,以及指示目录上一次何时被保存至非易失性存储器的时间。附加地或可替代地,本公开内容的一些示例可以具有关于目录的其他类型的元数据。
根据本公开内容的示例的文件系统可以在启动时自动地管理在RAM和非易失性存储器中的位置中的什么地方存储ECU数据。图3示出了根据本公开内容的示例的用于启动文件系统并加载332或生成334文件系统的目录的示例性过程300。存储在ECU上的应用程序可以执行命令以启动文件系统(例如,命令可以来源于应用程序代码)。一旦接收到命令310,ECU就可以检查320非易失性存储器以查找现有的目录。在一些示例中,在ECU电源断开之前,目录及其条目已经被保存到非易失性存储器中。在一些示例中,如果在非易失性存储器中找到目录,则可以将该目录移动332到RAM。在一些示例中,如果没有找到目录,则可以在RAM中创建334新的目录。一旦将目录被移动332到RAM中或者在RAM中创建334目录,根据本公开内容的示例,ECU可以读取和编辑该目录以管理数据。
在一些示例中,一旦目录在RAM中,ECU可以使用文件系统来管理数据。图4示出了根据本公开的示例的用于管理数据结构的示例性过程400,该示例性过程包括使用文件系统注册条目410、保存条目430以及检索条目450。例如,对于要由文件系统管理的数据,可以用目录来注册410该数据。在一些示例中,由ECU执行的应用程序可以包括注册条目的命令。例如,该命令可以包括关于条目的唯一的ID、数据结构的大小和版本号。当接收到命令412时,可以根据本公开的示例将条目添加到目录414并由文件系统进行管理。
在一些示例中,可以在每个条目被注册时为其分配RAM和非易失性存储器中的空间。在其他示例中,可以根据需要动态地分配RAM和非易失性存储器中的空间。在一些示例中,如下文所描述的那样,当条目注册到目录时,该条目可以不包括非易失性存储器中的地址,直到应用程序代码执行保存该地址的命令为止。附加地或可替代地,如下文所描述的那样,在一些示例中,存储在非易失性存储器中的数据可以不具有与其相关联的RAM地址,直到该数据从非易失性存储器中加载为止。现在将描述根据本公开内容的示例的利用文件系统保存和加载数据的示例。
在一些示例中,文件系统可以将所注册的条目保存430到非易失性存储器中。如上所讨论的那样,将数据保存到非易失性存储器中可以具有下述优点:在断电的情况下保护数据和/或在RAM中为需要编辑的数据创建更多空间。根据本公开的示例的由ECU执行的应用程序可以修改与所注册的条目相关联的数据,然后执行将其保存到非易失性存储器中的命令。一旦命令被接收432,就可以例如将数据保存到例如非易失性存储器中434。在一些示例中,当条目被注册时,在非易失性存储器中,该条目可以具有为其分配的空间。也就是说,例如,在非易失性存储器中会存在被分配给数据的空间,而该数据尚未保存到非易失性存储器中。在一些示例中,当条目被注册时,在非易失性存储器中,该条目可以不具有为其分配的空间。也就是说,例如,在条目被保存到非易失性存储器之前,条目在非易失性存储器中的地址可以不包括在目录中。
在一些示例中,一旦用目录注册410了条目并将该条目保存430到非易失性存储器中,就可以从非易失性存储器中检索450出所述条目并将其加载到RAM中。如上文所讨论的那样,将数据加载到RAM中可以具有例如快速访问和编辑的优点。在一些示例中,由ECU执行的应用程序可以通过执行命令来检索要由ECU编辑或者使用的数据。一旦接收到命令452,就可以将数据复制到RAM 454中。在一些示例中,可以在接收到检索条目的数据的命令之前为数据在RAM中分配地址。也就是说,例如,目录可以在条目被检索之前已经包括在RAM中为条目分配的地址。在一些示例中,当接收到检索条目的数据的命令时,可以在RAM中为该条目分配地址。也就是说,例如,在将条目加载到RAM中之前,该条目在RAM中的地址可以不包括在目录中。根据本公开内容的示例,只要将条目注册到目录中并且将其数据保存到非易失性存储器中,就可以检索条目。例如,如果ECU自通电以来没有使用其RAM来保存或编辑数据,则该ECU可以通过从非易失性存储器检索该数据的方式来访问在先前使用期间被保存到非易失性存储器中的数据。
在一些示例中,当数据被保存到非易失性存储器时,诸如断电或其他错误之类的中断可能损坏该数据。在诸如ECU之类的安全关键系统中,例如,只有在有足够的时间来可靠地完成未中断的过程的情况下完成保存才是重要的。因此,当从用户接收到保存命令时或者当系统检测到有足够时间执行该保存时,本公开内容的一些示例仅将数据保存到非易失性存储器。在一些示例中,为了保存目录和当前存储在RAM中的所有数据,可以在电源断开之前将所有内容保存到非易失性存储器中。图5示出了根据本公开内容的示例的用于使用文件系统将所有条目520和目录530保存到非易失性存储的示例性过程500。例如,系统接收保存所有内容的命令510。然后,例如,所有条目可以被保存到非易失性存储器中520,并且目录可以被保存到非易失性存储器中530。在一些示例中,根据本公开内容的各种示例,步骤520和步骤530可以按照任何顺序或同时执行。
具有根据本公开内容的示例的文件系统的ECU可以结合到消费类汽车中。图6示出了根据本公开的示例的包含多个ECU 660、ECU 630和ECU 650的示例性车辆600的框图。在一些示例中,每个ECU可以控制和/或监测车辆600的电子系统。例如,灯ECU610可以控制和/或监测车辆600的前灯611、尾灯613、制动灯615以及雾灯617。作为另一示例,电池ECU 630可以控制和/或监测车辆的电池631。作为第三示例,电动门ECU 650可以控制门A 651、门B653、门C 655、门D 657以及行李箱659。附加地或可替代地,本公开内容的其他示例可以包括用于控制车辆的其他电子系统的其他ECU。
因此,根据上述内容,本公开内容的一些示例涉及一种对包括易失性存储器和非易失性存储器的车辆的电子控制单元中的数据进行管理的方法,该方法包括:在车辆的电子控制单元处:从非易失性存储器中检索包括多个条目的目录,每个相应的条目包括非易失性存储器中的相应地址,这些相应地址存储有与相应条目相关联的各个数据;并且响应于与多个条目中的第一条目相关联的一个或多个请求,所述一个或多个请求来源于电子控制单元的应用程序代码,进行:将与第一条目相关联的第一数据从非易失性存储器中的第一地址加载至易失性存储器中的第二地址,并且将第二地址存储在目录的多个条目中的第一条目中。除了上面所公开的示例中的一个或多个示例以外或者作为上面所公开的示例中的一个或多个示例的替代,在一些示例中,该方法还包括:确定目录是否被存储在非易失性存储器中;并且根据没有被存储在非易失性存储器中的目录创建目录,包括:响应于来源于电子控制单元的应用程序代码的多个条目创建请求,针对多个条目请求中的每一个在目录中创建相应的条目,以及将非易失性存储器中的相应地址分配给目录中的相应条目。除了上面所公开的一个或多个示例以外或者作为上面所公开的一个或多个示例的替代,在一些示例中,该方法还包括:确定非易失性存储器中的空闲空间;以及确定空闲空间的地址用于分配给目录中的条目。除了上面所公开的一个或多个示例以外或作为上面所公开的一个或多个示例的替代,在一些示例中,确定目录是否存储在非易失性存储器中包括响应于指定目录的版本的初始化请求而确定目录的版本是否存储在非易失性存储器中,该初始化请求来源于电子控制单元的应用程序代码。除了上面所公开的一个或多个示例之外或者作为上面所公开的一个或多个示例的替代,在一些示例中,该方法还包括:响应于来源于电子控制单元的应用程序代码的一个或多个初始化请求,针对所检索的目录中的多个条目中的每个相应条目进行以下操作:将非易失性存储器中与相应条目相关联的相应数据加载到易失性存储器中的相应地址,以及将相应地址保存到目录的多个条目中的相应条目中。除了上面所公开的一个或多个示例之外或者作为上面所公开的一个或多个示例的替代,在一些示例中,该方法还包括:响应于一个或多个关闭请求,将易失性存储器中与目录中所选取的条目相关联的数据加载至非易失性存储器。除了上面所公开的一个或多个示例之外或者作为上面所公开的一个或多个示例的替代,在一些示例中,该方法还包括:进一步响应于一个或多个关闭请求,仅选择将目录中之前从非易失性存储器加载到易失性存储器中的条目从易失性存储器加载回到非易失性存储器。除了上面所公开的一个或多个示例之外,在一些示例中,该方法还包括:响应于将数据从易失性存储器加载到非易失性存储器中的请求,该请求来源于电子控制单元的应用程序代码,进行以下操作:确定非易失性存储器的硬件类型,并根据非易失性存储器的硬件类型写入到非易失性存储器中。
本公开内容的一些示例涉及一种存储有指令的非易失性计算机可读存储介质,所述指令在由车辆的电子控制单元的一个或多个处理器执行时使得电子控制单元执行对包括易失性存储器和非易失性存储器的电子控制单元中的数据进行管理的方法,该方法包括:在车辆的电子控制单元处:从非易失性存储器中检索包括多个条目的目录,每个相应的条目包括非易失性存储器中的相应地址,这些相应地址存储有与相应条目相关联的各个数据;并且响应于与多个条目中的第一条目相关联的一个或多个请求,所述一个或多个请求来源于电子控制单元的应用程序代码:将与第一条目相关联的第一数据从非易失性存储器中的第一地址加载至易失性存储器中的第二地址,并且将第二地址存储在目录的多个条目中的第一条目中。除了上面所公开的示例中的一个或多个示例以外或者作为上面所公开的示例中的一个或多个示例的替代,在一些示例中,该方法还包括:确定目录是否被存储在非易失性存储器中;并且根据没有被存储在非易失性存储器中的目录创建目录,包括:响应于来源于电子控制单元的应用程序代码的多个条目创建请求,针对多个条目请求中的每一个在目录中创建相应的条目,以及将非易失性存储器中的相应地址分配给目录中的相应条目。除了上面所公开的一个或多个示例以外或者作为上面所公开的一个或多个示例的替代,在一些示例中,该方法还包括:确定非易失性存储器中的空闲空间;以及确定空闲空间的地址用于分配给目录中的条目。除了上面所公开的一个或多个示例以外或作为上面所公开的一个或多个示例的替代,在一些示例中,确定目录是否存储在非易失性存储器中包括响应于指定目录的版本的初始化请求而确定目录的版本是否存储在非易失性存储器中,该初始化请求来源于电子控制单元的应用程序代码。除了上面所公开的一个或多个示例之外或者作为上面所公开的一个或多个示例的替代,在一些示例中,该方法还包括:响应于来源于电子控制单元的应用程序代码的一个或多个初始化请求,针对所检索的目录中的多个条目中的每个相应条目进行以下操作:将非易失性存储器中与相应条目相关联的相应数据加载到易失性存储器中的相应地址,以及将相应地址保存到目录的多个条目中的相应条目中。除了上面所公开的一个或多个示例之外或者作为上面所公开的一个或多个示例的替代,在一些示例中,该方法还包括:响应于一个或多个关闭请求,将易失性存储器中与目录中所选取的条目相关联的数据加载至非易失性存储器。除了上面所公开的一个或多个示例之外或者作为上面所公开的一个或多个示例的替代,在一些示例中,该方法还包括:进一步响应于一个或多个关闭请求,仅选择将目录中之前从非易失性存储器加载到易失性存储器中的条目从易失性存储器加载回到非易失性存储器。除了上面所公开的一个或多个示例之外,在一些示例中,该方法还包括:响应于将数据从易失性存储器加载到非易失性存储器中的请求,该请求来源于电子控制单元的应用程序代码:确定非易失性存储器的硬件类型,并根据非易失性存储器的硬件类型写入到非易失性存储器中。
本公开内容的一些示例涉及一种对包括易失性存储器和非易失性存储器的车辆的电子控制单元中的数据进行管理的方法,该方法包括:在车辆的电子控制单元处:从非易失性存储器中检索包括多个条目的目录,每个相应的条目包括非易失性存储器中的相应地址,这些相应地址存储有与相应条目相关联的各个数据;并且响应于与多个条目中的第一条目相关联的一个或多个请求,所述一个或多个请求来源于电子控制单元的应用程序代码:将与第一条目相关联的第一数据从非易失性存储器中的第一地址加载至易失性存储器中的第二地址,并且将第二地址存储在目录的多个条目中的第一条目中。除了上面所公开的示例中的一个或多个示例以外或者作为上面所公开的示例中的一个或多个示例的替代,在一些示例中,该方法还包括:确定目录是否被存储在非易失性存储器中;并且根据没有被存储在非易失性存储器中的目录创建目录,包括:响应于来源于电子控制单元的应用程序代码的多个条目创建请求,针对多个条目请求中的每一个在目录中创建相应的条目,以及将非易失性存储器中的相应地址分配给目录中的相应条目。除了上面所公开的一个或多个示例以外或者作为上面所公开的一个或多个示例的替代,在一些示例中,该方法还包括:确定非易失性存储器中的空闲空间;以及确定空闲空间的地址用于分配给目录中的条目。除了上面所公开的一个或多个示例以外或作为上面所公开的一个或多个示例的替代,在一些示例中,确定目录是否存储在非易失性存储器中包括响应于指定目录的版本的初始化请求而确定目录的版本是否存储在非易失性存储器中,该初始化请求来源于电子控制单元的应用程序代码。除了上面所公开的一个或多个示例之外或者作为上面所公开的一个或多个示例的替代,在一些示例中,该方法还包括:响应于来源于电子控制单元的应用程序代码的一个或多个初始化请求,针对所检索的目录中的多个条目中的每个相应条目进行以下操作:将非易失性存储器中与相应条目相关联的相应数据加载到易失性存储器中的相应地址,以及将相应地址保存到目录的多个条目中的相应条目中。除了上面所公开的一个或多个示例之外或者作为上面所公开的一个或多个示例的替代,在一些示例中,该方法还包括:响应于一个或多个关闭请求,将易失性存储器中与目录中所选取的条目相关联的数据加载至非易失性存储器。除了上面所公开的一个或多个示例之外或者作为上面所公开的一个或多个示例的替代,在一些示例中,该方法还包括:进一步响应于一个或多个关闭请求,仅选择将目录中之前从非易失性存储器加载到易失性存储器中的条目从易失性存储器加载回到非易失性存储器。除了上面所公开的一个或多个示例之外,在一些示例中,该方法还包括:响应于将数据从易失性存储器加载到非易失性存储器中的请求,该请求来源于电子控制单元的应用程序代码:确定非易失性存储器的硬件类型,并根据非易失性存储器的硬件类型写入到非易失性存储器中。
尽管已经参考附图对示例进行了充分描述,但是应该注意的是,各种更改和修改对于本领域技术人员而言将变得明显。这些更改和修改应当被理解为包括在本公开内容的由所附权利要求限定的示例的范围内。
Claims (24)
1.一种对具有易失性存储器和非易失性存储器的车辆的电子控制单元(ECU)中的数据进行管理的方法,所述方法包括以下步骤:
从所述非易失性存储器中检索包括多个条目的目录,每个相应的条目在所述非易失性存储器中包括相应的地址,在所述相应的地址处存储有与相应的条目相关联的相应的数据;
响应于接收到与多个条目中的第一条目相关联的一个或多个请求,进行:
从所述非易失性存储器中的第一地址将与所述第一条目相关联的第一数据加载到所述易失性存储器中的第二地址,以及
将所述第二地址存储到所述目录的多个条目中的第一条目中,其中,所述一个或多个请求来源于所述电子控制单元的应用程序代码;以及
当从所述ECU执行的应用程序接收到命令时,将条目添加到所述目录,以及只有当有足够的时间来完成未中断的保存过程时将所述条目保存在所述非易失性存储器中。
2.根据权利要求1所述的方法,所述方法还包括以下步骤:
确定所述目录是否存储在所述非易失性存储器中;以及
根据所述目录没有存储在所述非易失性存储器中,创建所述目录,此步骤包括:
响应于来源于所述电子控制单元的应用程序代码的多个条目创建请求,针对多个条目请求中的每个条目请求在所述目录中创建相应的条目,以及将非易失性存储器的相应的地址分配给所述目录中相应的条目。
3.根据权利要求2所述的方法,所述方法还包括:
确定所述非易失性存储器上的空闲空间;以及
确定所述空闲空间的地址,用于分配给所述目录的条目。
4.根据权利要求2所述的方法,其中,确定所述目录是否存储在所述非易失性存储器中包括:响应于指定所述目录的版本的初始化请求而确定所述目录的该版本是否存储在所述非易失性存储器中,所述初始化请求来源于所述电子控制单元的所述应用程序代码。
5.根据权利要求1所述的方法,所述方法还包括以下步骤:
响应于来源于所述电子控制单元的所述应用程序代码的一个或多个初始化请求,针对所检索的目录中的多个条目中的每个相应条目进行以下操作:
将所述非易失性存储器中与相应条目相关联的相应数据加载到所述易失性存储器中的相应地址,以及
将所述相应地址保存到所述目录的多个条目中的相应条目中。
6.根据权利要求1所述的方法,所述方法还包括以下步骤:响应于一个或多个关闭请求,将所述易失性存储器中与所述目录中所选取的条目相关联的数据加载至所述非易失性存储器。
7.根据权利要求6所述的方法,所述方法还包括以下步骤:进一步响应于所述一个或多个关闭请求,仅选择将所述目录中之前从所述非易失性存储器加载到易失性存储器中的条目从所述易失性存储器加载回到所述非易失性存储器。
8.根据权利要求1所述的方法,所述方法还包括以下步骤:
响应于将数据从所述易失性存储器加载到所述非易失性存储器中的请求,所述请求来源于所述电子控制单元的所述应用程序代码,进行:
确定所述非易失性存储器的硬件类型,以及
根据所述非易失性存储器的硬件类型写入到所述非易失性存储器中。
9.一种存储有指令的非易失性计算机可读存储介质,所述指令在由车辆的电子控制单元(ECU)的一个或多个处理器执行时使得所述电子控制单元执行对包括易失性存储器和非易失性存储器的电子控制单元中的数据进行管理的方法,所述方法包括以下步骤:
从所述非易失性存储器中检索包括多个条目的目录,每个相应的条目在所述非易失性存储器中包括相应的地址,在所述相应的地址处存储有与相应的条目相关联的相应的数据;
响应于接收到与所述多个条目中的第一条目相关联的一个或多个请求,进行:
从所述非易失性存储器中的第一地址将与所述第一条目相关联的第一数据加载到所述易失性存储器中的第二地址,以及
将所述第二地址存储到所述目录的多个条目中的第一条目中,其中,所述一个或多个请求来源于所述电子控制单元的应用程序代码;以及
当从所述ECU执行的应用程序接收到命令时,将条目添加到所述目录,以及只有当有足够的时间来完成未中断的保存过程时将所述条目保存在所述非易失性存储器中。
10.根据权利要求9所述的非易失性计算机可读存储介质,所述方法还包括以下步骤:
确定所述目录是否存储在所述非易失性存储器中;以及
根据所述目录没有存储在所述非易失性存储器中,创建所述目录,此步骤包括:
响应于来源于所述电子控制单元的应用程序代码的多个条目创建请求,针对多个条目请求中的每个条目请求在所述目录中创建相应的条目,以及将非易失性存储器的相应的地址分配给所述目录中相应的条目。
11.根据权利要求10所述的非易失性计算机可读存储介质,所述方法还包括以下步骤:
确定所述非易失性存储器上的空闲空间;以及
确定所述空闲空间的地址,用于分配给所述目录的条目。
12.根据权利要求10所述的非易失性计算机可读存储介质,其中,确定所述目录是否存储在所述非易失性存储器中包括:响应于指定所述目录的版本的初始化请求而确定所述目录的该版本是否存储在所述非易失性存储器中,所述初始化请求来源于所述电子控制单元的所述应用程序代码。
13.根据权利要求9所述的非易失性计算机可读存储介质,所述方法还包括以下步骤:
响应于来源于所述电子控制单元的所述应用程序代码的一个或多个初始化请求,针对所检索的目录中的多个条目中的每个相应条目进行:
将所述非易失性存储器中与相应条目相关联的相应数据加载到所述易失性存储器中的相应地址,以及
将所述相应地址保存到所述目录的多个条目中的相应条目中。
14.根据权利要求9所述的非易失性计算机可读存储介质,所述方法还包括以下步骤:响应于一个或多个关闭请求,将所述易失性存储器中与所述目录中所选取的条目相关联的数据加载至所述非易失性存储器。
15.根据权利要求14所述的非易失性计算机可读存储介质,所述方法还包括以下步骤:进一步响应于所述一个或多个关闭请求,仅选择将所述目录中之前从所述非易失性存储器加载到易失性存储器中的条目从所述易失性存储器加载回到所述非易失性存储器。
16.根据权利要求9所述的非易失性计算机可读存储介质,所述方法还包括以下步骤:
响应于将数据从所述易失性存储器加载到所述非易失性存储器中的请求,所述请求来源于所述电子控制单元的所述应用程序代码,进行:
确定所述非易失性存储器的硬件类型,以及
根据所述非易失性存储器的硬件类型写入到所述非易失性存储器中。
17.一种车辆,具有:
处理器;
电子控制单元(ECU);
易失性存储器;
非易失性存储器;以及
非易失性计算机可读存储介质,所述介质包含可执行指令,所述可执行指令使所述处理器执行对电子控制单元中的数据进行管理的方法,所述方法包括以下步骤:
从所述非易失性存储器中检索包括多个条目的目录,每个相应的条目在所述非易失性存储器中包括相应的地址,在所述相应的地址处存储有与相应的条目相关联的相应的数据;
响应于与所述多个条目中的第一条目相关联的一个或多个请求,所述一个或多个请求来源于所述电子控制单元的应用程序代码,进行:
从所述非易失性存储器中的第一地址将与所述第一条目相关联的第一数据加载到所述易失性存储器中的第二地址,以及
将所述第二地址保存到所述目录的多个条目中的第一条目中;以及
当从所述ECU执行的应用程序接收到命令时,将条目添加到所述目录,以及只有当有足够的时间来完成未中断的保存过程时将所述条目保存在所述非易失性存储器中。
18.根据权利要求17所述的车辆,其中,所述方法还包括以下步骤:
确定所述目录是否存储在所述非易失性存储器中;以及
根据所述目录没有存储在所述非易失性存储器中,创建所述目录,包括:
响应于来源于所述电子控制单元的应用程序代码的多个条目创建请求,针对多个条目请求中的每个条目请求在所述目录中创建相应的条目,以及将非易失性存储器的相应的地址分配给所述目录中相应的条目。
19.根据权利要求18所述的车辆,所述方法还包括以下步骤:
确定所述非易失性存储器上的空闲空间;以及
确定所述空闲空间的地址,用于分配给所述目录的条目。
20.根据权利要求18所述的车辆,其中,确定所述目录是否存储在所述非易失性存储器中包括:响应于指定所述目录的版本的初始化请求而确定所述目录的该版本是否存储在所述非易失性存储器中,所述初始化请求来源于所述电子控制单元的所述应用程序代码。
21.根据权利要求17所述的车辆,所述方法还包括以下步骤:
响应于来源于所述电子控制单元的所述应用程序代码的一个或多个初始化请求,针对所检索的目录中的多个条目中的每个相应条目进行:
将所述非易失性存储器中与相应条目相关联的相应数据加载到所述易失性存储器中的相应地址,以及
将所述相应地址保存到所述目录的多个条目中的相应条目中。
22.根据权利要求17所述的车辆,所述方法还包括以下步骤:响应于一个或多个关闭请求,将所述易失性存储器中与所述目录中所选取的条目相关联的数据加载至所述非易失性存储器。
23.根据权利要求22所述的车辆,所述方法还包括以下步骤:进一步响应于所述一个或多个关闭请求,仅选择将所述目录中之前从所述非易失性存储器加载到易失性存储器中的条目从所述易失性存储器加载回到所述非易失性存储器。
24.根据权利要求17所述的车辆,所述方法还包括以下步骤:
响应于将数据从所述易失性存储器加载到所述非易失性存储器中的请求,所述请求来源于所述电子控制单元的所述应用程序代码,进行:
确定所述非易失性存储器的硬件类型,以及
根据所述非易失性存储器的硬件类型写入到所述非易失性存储器中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662288938P | 2016-01-29 | 2016-01-29 | |
US62/288,938 | 2016-01-29 | ||
PCT/US2017/014913 WO2017132244A1 (en) | 2016-01-29 | 2017-01-25 | System and method for hardware-independent memory storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108604207A CN108604207A (zh) | 2018-09-28 |
CN108604207B true CN108604207B (zh) | 2022-09-20 |
Family
ID=59385561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780008823.0A Active CN108604207B (zh) | 2016-01-29 | 2017-01-25 | 用于独立于硬件的存储器存储的系统及方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US20170220252A1 (zh) |
CN (1) | CN108604207B (zh) |
WO (1) | WO2017132244A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2716899C1 (ru) * | 2019-06-28 | 2020-03-17 | Акционерное общество "Актив-софт" | Способ эмуляции eeprom-памяти в flash-памяти |
US11874768B1 (en) * | 2019-11-14 | 2024-01-16 | Xilinx, Inc. | Flash memory emulation |
US11687260B2 (en) * | 2021-08-10 | 2023-06-27 | Micron Technology, Inc. | Pre-shutdown media management operation for vehicle memory sub-system |
KR20230102145A (ko) * | 2021-12-30 | 2023-07-07 | 현대오토에버 주식회사 | 비휘발성 메모리를 에뮬레이팅하는 전자장치 및 그 방법 |
CN117687580A (zh) * | 2024-02-02 | 2024-03-12 | 深圳曦华科技有限公司 | 一种Flash的数据管理系统、微控制单元以及车辆 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473438A (zh) * | 2006-06-07 | 2009-07-01 | 微软公司 | 具有单个接口的混合存储器设备 |
CN101673245A (zh) * | 2008-09-09 | 2010-03-17 | 株式会社东芝 | 包括存储器管理装置的信息处理装置和存储器管理方法 |
CN101901114A (zh) * | 2008-11-20 | 2010-12-01 | 三星电子株式会社 | 非易失性存储器系统及其存取方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5568388A (en) * | 1995-02-27 | 1996-10-22 | Kelsey-Hayes Company | Method and system for automatically calibrating control logic of a vehicle control system |
US6275911B1 (en) * | 1996-09-20 | 2001-08-14 | Denso Corporation | Memory writing device for an electronic device |
US6505105B2 (en) * | 2001-01-05 | 2003-01-07 | Delphi Technologies, Inc. | Electronic control unit calibration |
GB2378277B (en) * | 2001-07-31 | 2003-06-25 | Sun Microsystems Inc | Multiple address translations |
US7373491B2 (en) * | 2002-02-27 | 2008-05-13 | Rockwell Automation Technologies, Inc. | Processor with versatile external memory interface |
US8041878B2 (en) * | 2003-03-19 | 2011-10-18 | Samsung Electronics Co., Ltd. | Flash file system |
US7761740B2 (en) * | 2007-12-13 | 2010-07-20 | Spansion Llc | Power safe translation table operation in flash memory |
US8364931B2 (en) * | 2009-06-29 | 2013-01-29 | Mediatek Inc. | Memory system and mapping methods using a random write page mapping table |
KR20120092826A (ko) * | 2011-02-14 | 2012-08-22 | 에스앤 주식회사 | 고 신뢰성 차량용 저장장치 시스템 및 데이터 저장 방법 |
JP5664347B2 (ja) * | 2011-03-04 | 2015-02-04 | ソニー株式会社 | 仮想メモリシステム、仮想メモリの制御方法、およびプログラム |
US8793429B1 (en) * | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
JP2013254264A (ja) * | 2012-06-05 | 2013-12-19 | Denso Corp | 電子制御装置 |
US20150378642A1 (en) * | 2013-03-15 | 2015-12-31 | Seagate Technology Llc | File system back-up for multiple storage medium device |
US10114550B2 (en) * | 2016-01-07 | 2018-10-30 | Samsung Electronics Co., Ltd. | Data storage device and data processing system including the data storage device |
US10009325B1 (en) * | 2017-12-07 | 2018-06-26 | Karamba Security | End-to-end communication security |
-
2016
- 2016-06-30 US US15/199,844 patent/US20170220252A1/en not_active Abandoned
-
2017
- 2017-01-25 WO PCT/US2017/014913 patent/WO2017132244A1/en active Application Filing
- 2017-01-25 CN CN201780008823.0A patent/CN108604207B/zh active Active
- 2017-01-25 US US16/073,335 patent/US20190034336A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473438A (zh) * | 2006-06-07 | 2009-07-01 | 微软公司 | 具有单个接口的混合存储器设备 |
CN101673245A (zh) * | 2008-09-09 | 2010-03-17 | 株式会社东芝 | 包括存储器管理装置的信息处理装置和存储器管理方法 |
CN101901114A (zh) * | 2008-11-20 | 2010-12-01 | 三星电子株式会社 | 非易失性存储器系统及其存取方法 |
Non-Patent Citations (1)
Title |
---|
内存文件系统综述;张学成等;《计算机研究与发展》;20151215;16-24 * |
Also Published As
Publication number | Publication date |
---|---|
US20190034336A1 (en) | 2019-01-31 |
WO2017132244A1 (en) | 2017-08-03 |
CN108604207A (zh) | 2018-09-28 |
US20170220252A1 (en) | 2017-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108604207B (zh) | 用于独立于硬件的存储器存储的系统及方法 | |
US10908847B2 (en) | Volatility management for non-volatile memory device | |
US11048589B2 (en) | Preserving data upon a power shutdown | |
CN109144888B (zh) | 存储器系统 | |
JP5663060B2 (ja) | フラッシュメモリシステムの高速起動を容易にする方法およびシステム | |
US8949512B2 (en) | Trim token journaling | |
US9342423B2 (en) | Selective restoration of data from non-volatile storage to volatile memory | |
JP4633802B2 (ja) | 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法 | |
KR101451482B1 (ko) | 데이터 이용가능성의 마운트타임 조정 | |
US9367451B2 (en) | Storage device management device and method for managing storage device | |
US9563554B2 (en) | Persistent content in nonvolatile memory | |
US11301331B2 (en) | Storage device and operating method of storage device | |
JP2018073040A (ja) | メモリシステム | |
US20110231595A1 (en) | Systems and methods for handling hibernation data | |
US8775758B2 (en) | Memory device and method for performing a write-abort-safe firmware update | |
CN112840325B (zh) | 存储装置上的名称空间中的错误检查 | |
JP2008299848A (ja) | 不揮発性メモリのデータ処理装置及びその処理方法 | |
US20090112951A1 (en) | Apparatus and method of managing files and memory device | |
US7234039B1 (en) | Method, system, and apparatus for determining the physical memory address of an allocated and locked memory buffer | |
JP2018028830A (ja) | 電子制御装置およびその情報記憶方法 | |
KR102145358B1 (ko) | 변경된 운영체제 환경에서 디스크의 데이터 무결성을 보호하는 방법 및 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체 | |
US20030237021A1 (en) | Automatic restoration of software applications in a mobile computing device | |
US11989435B2 (en) | Re-partitioning of a flash memory device | |
US10416904B1 (en) | Method and system for recovering storage object records in solid state memory | |
WO2016048272A1 (en) | Non-volatile storage device |
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 |