CN116185563A - 一种基于车规级微控制器数据闪存的软件模拟算法 - Google Patents

一种基于车规级微控制器数据闪存的软件模拟算法 Download PDF

Info

Publication number
CN116185563A
CN116185563A CN202211683462.9A CN202211683462A CN116185563A CN 116185563 A CN116185563 A CN 116185563A CN 202211683462 A CN202211683462 A CN 202211683462A CN 116185563 A CN116185563 A CN 116185563A
Authority
CN
China
Prior art keywords
data block
data
sector
stored
page
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.)
Granted
Application number
CN202211683462.9A
Other languages
English (en)
Other versions
CN116185563B (zh
Inventor
张思奥
梁明涛
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.)
Shanghai Qiangu Automotive Technology Co ltd
Original Assignee
Shanghai Qiangu Automotive Technology Co ltd
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 Shanghai Qiangu Automotive Technology Co ltd filed Critical Shanghai Qiangu Automotive Technology Co ltd
Priority to CN202211683462.9A priority Critical patent/CN116185563B/zh
Publication of CN116185563A publication Critical patent/CN116185563A/zh
Application granted granted Critical
Publication of CN116185563B publication Critical patent/CN116185563B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种基于车规级微控制器数据闪存的软件模拟算法,涉及软件模拟算法技术领域,通过定义并存储扇区状态页、数据块起始状态页、数据块数据页和数据块结束状态页,结合软件模块初始化流程,为数据的实时非易失性存储功能提供实施基础;包括初始化流程:扇区有效性检测、空白扇区初始化、失效扇区擦除;数据块读取流程:数据块有效性索引、数据块配置一致性校验、数据块数据读取;数据块写入流程:数据块有效性索引、数据块循环计数累加、数据块写入一致性校验、扇区剩余空间校验和数据块数据写入。本发明不需要增加额外的硬件成本,能够满足车规级应用的,大范围跨度存储大小,高实时性,高擦除次数要求的带电实时非易失性存储需求。

Description

一种基于车规级微控制器数据闪存的软件模拟算法
技术领域
本发明涉及软件模拟算法技术领域,尤其涉及一种基于车规级微控制器数据闪存的软件模拟算法。
背景技术
目前主流的车规级微控制器仅包含代码闪存、数据闪存这两种非易失性存储单元。闪存具有单次大空间擦除特性:一般数据闪存单次擦除空间大小为kbyte量级,代码闪存则会更大,会远大于软件单次数据存储需求(基于不同功能的存储内容,一般为1byte到1kbyte不等)。且闪存的单次擦除耗时较长,一般为百毫秒以上。闪存的单次擦除耗时远远大于汽车微控制器应用领域毫秒级别的任务周期。因此,如果直接使用微控制器闪存存储功能需求内容,会带来存储单元大小不匹配,闪存擦除时任务阻塞等问题。
而且,不同功能的存储特性会导致对应内容在车辆的生命周期中存储的频率不同,有的功能存储内容可能在整个车辆的生命周期中仅需存储较少次数,而有的功能存储内容可能在每次上电循环中都需要重新存储。那么,再考虑到闪存的擦除寿命限制,如果直接使用闪存进行存储,会导致存储寿命的分配不均,甚至无法满足某些存储频次较高的功能的寿命需求。
基于上述问题,本发明设计出了一种基于车规级微控制器数据闪存的软件模拟算法来解决以上问题。
发明内容
本发明的目的是为了解决现有技术中存在的缺点,而提出的一种基于车规级微控制器数据闪存的软件模拟算法,根据现有的车规级微控制器功能存储需求,并结合相关闪存的存储特性,基于微控制器的数据闪存驱动接口,设计一种软件模拟算法,实现带电可擦可编程只读存储器功能,以满足不同功能的实时非易失存储需求。
为了实现上述目的,本发明采用了如下技术方案:
一种基于车规级微控制器数据闪存的软件模拟算法,所述软件模拟算法通过定义并存储扇区状态页、数据块起始状态页、数据块数据页和数据块结束状态页,结合软件模块初始化流程,为数据的实时非易失性存储功能提供实施基础;
所述软件模拟算法的内容包括初始化流程、数据块读取流程以及数据块写入流程,其中:
所述初始化流程所包含的处理流程主要有扇区有效性检测、空白扇区初始化、失效扇区擦除;
所述数据块读取流程所包含的处理流程主要有数据块有效性索引、数据块配置一致性校验、数据块数据读取;
所述数据块写入流程所包含的处理流程主要有数据块有效性索引、数据块循环计数累加、数据块写入一致性校验、扇区剩余空间校验和数据块数据写入。
进一步的,所述初始化流程,即在控制器初始化阶段,对模拟算法的逻辑扇区进行初始化,包括以下步骤;
步骤101:扇区状态页有效性检测,通过数据闪存接口读取所有扇区的状态页,通过扇区状态页预设的特征标志位,判断扇区是否有效;
步骤102:所有扇区均无效时,擦除所有扇区,并初始化扇区0;
步骤103:所有扇区均有效时,将旧扇区中仍然有效的数据块复制到新的扇区,复制完成后,擦除旧扇区;
步骤104:其中一个扇区有效时,直接使用当前有效的扇区。
进一步的,所述数据块读取流程,即在控制器正常运行过程中,通过模拟算法的读取接口读取已存储的数据块,包括以下步骤:
步骤105:基于数据块ID索引对应数据块的起始地址;如果未索引到有效地址,则表明该数据块没有被有效存储过,没有数据可以读取,需要返回错误;
步骤106:如果基于步骤105索引到有效地址,则通过有效地址读取数据块起始状态页,并判断已存储的数据长度是否和配置信息匹配;如果不匹配,则表明该数据块的配置信息有误,需要返回错误;
步骤107:如果基于步骤106,配置信息匹配,则通过数据闪存接口读取相应数据块的数据页,并返回存储数据。
进一步的,所述数据块写入流程,即在控制器正常运行过程中,通过模拟算法的写入接口写入需要存储的数据块,包括以下步骤:
步骤108:基于数据块ID索引对应数据块的起始地址。如果没有索引到有效地址,则表明当前数据块没有被有效存储过,可以直接跳转到步骤111;
步骤109:基于步骤108索引到的有效地址,读取数据块起始状态页,并将数据块循环状态计数累加1;
步骤110:比较已存储的数据块数据与待存储的是否完全相同,如果完全相同,则可以直接返回函数;
步骤111:如果已存储的数据块数据与待存储的不同,则需要判断当前扇区空间是否足够存储。如果当前扇区空间不够,则需要开辟另一个扇区。然后再将待存储数据,通过数据闪存接口写入相应数据块的数据。
与现有技术相比,本发明的有益效果是:使用本发明所设计的基于车规级微控制器数据闪存的软件模拟带电可擦可编程只读存储器算法,不需要增加额外的硬件成本,能够满足车规级应用的,大范围跨度存储大小,高实时性,高擦除次数要求的带电实时非易失性存储需求。
附图说明
图1为本发明所设计的数据扇区初始化在嵌入式软件中的实施流程;
图2为本发明所设计的模拟算法数据块的读取在嵌入式软件中的实施流程;
图3为本发明所设计的模拟算法数据块的写入在嵌入式软件中的实施流程。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
如图1-3所示,一种基于车规级微控制器数据闪存的软件模拟算法,具体地为一种基于车规级微控制数据闪存的软件带电可擦可编程只读存储器算法,指通过软件模拟算法使用数据闪存来满足车规级实时存储需求的方案,其功能包括数据闪存单元的有效性检测,软件模拟数据块读取和写入,即,功能具有数据有效性检测和扇区切换。
为了实现以上功能,基于微控制器的闪存单元物理存储/擦除特性,模拟算法定义了数据扇区、数据块、数据页,自上而下三种逻辑单元。其中,数据页是由基本物理单元Byte组成的逻辑单元,每个数据页由8个Byte构成。基于不同的功能需求,模拟算法定义了4种不同类型的数据页:扇区状态页、数据块起始状态页、数据块数据页和数据块结束状态页;数据块由1个数据块起始状态页、若干个数据块数据页和1个数据块结束状态页组成;数据扇区由1对扇区状态页和若干个数据块组成。
也就是说,软件模拟算法通过定义并存储扇区状态页、数据块起始状态页、数据块数据页和数据块结束状态页,结合软件模块初始化流程,为数据的实时非易失性存储功能提供实施基础。
完成模拟算法的驱动配置后,模拟算法的初始化模块会将数据闪存定义为满足模拟算法的2个标准数据扇区格式,后续的存储功能会基于这2个数据扇区进行。
每个数据块的基本参数由配置文件确定,包括数据块ID和数据长度。在功能算法调用读取或写入接口时,都需要明确传入唯一对应的数据块ID。数据块起始状态页和数据块结束状态页会存储数据块的ID、数据长度和数据块计数信息。基于这些信息,模拟算法能够在运行读取和写入接口时,高效地识别数据块的有效性和读取/写入的数据页的数量。
模拟算法会基于某一个数据扇区,根据功能算法的写入需求,按照数据闪存地址由低到高的顺序写入数据块,直到该数据扇区没有足够的剩余空间写入数据块。此时,模拟算法的写入接口会启用另一个数据扇区,以继续写入数据块。在模拟算法初始化流程中,会检测是否因为一个数据扇区写满而启用了另一个数据扇区。如果有新的扇区被启用了,模拟算法会索引检测旧数据扇区中有效的数据块,并将有效的数据块写入到新数据扇区,最后擦除旧数据扇区。模拟算法通过新旧数据扇区循环切换的方法重复写入,以保证存储功能的正常运行。
软件模拟算法的具体内容包括初始化流程、数据块读取流程以及数据块写入流程,其中,初始化流程,即在控制器初始化阶段,对模拟算法的逻辑扇区进行初始化;数据块读取流程,即在控制器正常运行过程中,通过模拟算法的读取接口读取已存储的数据块;数据块写入流程,即在控制器正常运行过程中,通过模拟算法的写入接口写入需要存储的数据块。
具体地:初始化流程所包含的处理流程主要有扇区有效性检测、空白扇区初始化、失效扇区擦除;数据块读取流程所包含的处理流程主要有数据块有效性索引、数据块配置一致性校验、数据块数据读取;数据块写入流程所包含的处理流程主要有数据块有效性索引、数据块循环计数累加、数据块写入一致性校验、扇区剩余空间校验和数据块数据写入。
在初始化流程中,如图1所示,包括以下步骤;
步骤101:扇区状态页有效性检测,通过数据闪存接口读取所有扇区的状态页,通过扇区状态页预设的特征标志位,判断扇区是否有效;
定义两个扇区为扇区0和扇区1。
步骤102:所有扇区均无效时,擦除所有扇区,并初始化扇区0;具体说明为:当扇区0且扇区1无效时,擦除扇区0和扇区1,并向扇区0写入扇区状态页,初始化扇区0。
步骤103:所有扇区均有效时,将旧扇区中仍然有效的数据块复制到新的扇区,复制完成后,擦除旧扇区;具体说明为:当扇区0且扇区1有效时,将旧扇区中仍然有效的数据块复制到新的扇区,并擦除旧的扇区。
步骤104:其中一个扇区有效时,直接使用当前有效的扇区。具体说明为:当扇区0有效时,判断扇区1是否错误,若扇区1错误,则擦除扇区1;当扇区1有效时,判断扇区0是否错误,若扇区0错误,则擦除扇区0。
在数据块读取流程中,如图2所示,包括以下步骤:
步骤105:基于数据块ID索引对应数据块的起始地址;如果未索引到有效地址,则表明该数据块没有被有效存储过,没有数据可以读取,需要返回错误;
步骤106:如果基于步骤105索引到有效地址,则通过有效地址读取数据块起始状态页,并判断已存储的数据长度是否和配置信息匹配;如果不匹配,则表明该数据块的配置信息有误,需要返回错误;
步骤107:如果基于步骤106,配置信息匹配,则通过数据闪存接口读取相应数据块的数据页,并返回存储数据。
在数据块写入流程中,如图3所示,包括以下步骤:
步骤108:基于数据块ID索引对应数据块的起始地址。如果没有索引到有效地址,则表明当前数据块没有被有效存储过,可以直接跳转到步骤111;
步骤109:基于步骤108索引到的有效地址,读取数据块起始状态页,并将数据块循环状态计数累加1;
步骤110:比较已存储的数据块数据与待存储的是否完全相同,如果完全相同,则可以直接返回函数;
步骤111:如果已存储的数据块数据与待存储的不同,则需要判断当前扇区空间是否足够存储。如果当前扇区空间不够,则需要开辟另一个扇区。然后再将待存储数据,通过数据闪存接口写入相应数据块的数据。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (4)

1.一种基于车规级微控制器数据闪存的软件模拟算法,其特征在于,所述软件模拟算法通过定义并存储扇区状态页、数据块起始状态页、数据块数据页和数据块结束状态页,结合软件模块初始化流程,为数据的实时非易失性存储功能提供实施基础;
所述软件模拟算法的内容包括初始化流程、数据块读取流程以及数据块写入流程,其中:
所述初始化流程所包含的处理流程主要有扇区有效性检测、空白扇区初始化、失效扇区擦除;
所述数据块读取流程所包含的处理流程主要有数据块有效性索引、数据块配置一致性校验、数据块数据读取;
所述数据块写入流程所包含的处理流程主要有数据块有效性索引、数据块循环计数累加、数据块写入一致性校验、扇区剩余空间校验和数据块数据写入。
2.根据权利要求1所述的一种基于车规级微控制器数据闪存的软件模拟算法,其特征在于,所述初始化流程,即在控制器初始化阶段,对模拟算法的逻辑扇区进行初始化,包括以下步骤;
步骤101:扇区状态页有效性检测,通过数据闪存接口读取所有扇区的状态页,通过扇区状态页预设的特征标志位,判断扇区是否有效;
步骤102:所有扇区均无效时,擦除所有扇区,并初始化扇区0;
步骤103:所有扇区均有效时,将旧扇区中仍然有效的数据块复制到新的扇区,复制完成后,擦除旧扇区;
步骤104:其中一个扇区有效时,直接使用当前有效的扇区。
3.根据权利要求2所述的一种基于车规级微控制器数据闪存的软件模拟算法,其特征在于,所述数据块读取流程,即在控制器正常运行过程中,通过模拟算法的读取接口读取已存储的数据块,包括以下步骤:
步骤105:基于数据块ID索引对应数据块的起始地址;如果未索引到有效地址,则表明该数据块没有被有效存储过,没有数据可以读取,需要返回错误;
步骤106:如果基于步骤105索引到有效地址,则通过有效地址读取数据块起始状态页,并判断已存储的数据长度是否和配置信息匹配;如果不匹配,则表明该数据块的配置信息有误,需要返回错误;
步骤107:如果基于步骤106,配置信息匹配,则通过数据闪存接口读取相应数据块的数据页,并返回存储数据。
4.根据权利要求3所述的一种基于车规级微控制器数据闪存的软件模拟算法,其特征在于,所述数据块写入流程,即在控制器正常运行过程中,通过模拟算法的写入接口写入需要存储的数据块,包括以下步骤:
步骤108:基于数据块ID索引对应数据块的起始地址。如果没有索引到有效地址,则表明当前数据块没有被有效存储过,可以直接跳转到步骤111;
步骤109:基于步骤108索引到的有效地址,读取数据块起始状态页,并将数据块循环状态计数累加1;
步骤110:比较已存储的数据块数据与待存储的是否完全相同,如果完全相同,则可以直接返回函数;
步骤111:如果已存储的数据块数据与待存储的不同,则需要判断当前扇区空间是否足够存储。如果当前扇区空间不够,则需要开辟另一个扇区。然后再将待存储数据,通过数据闪存接口写入相应数据块的数据。
CN202211683462.9A 2022-12-27 2022-12-27 一种基于车规级微控制器数据闪存的软件模拟算法 Active CN116185563B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211683462.9A CN116185563B (zh) 2022-12-27 2022-12-27 一种基于车规级微控制器数据闪存的软件模拟算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211683462.9A CN116185563B (zh) 2022-12-27 2022-12-27 一种基于车规级微控制器数据闪存的软件模拟算法

Publications (2)

Publication Number Publication Date
CN116185563A true CN116185563A (zh) 2023-05-30
CN116185563B CN116185563B (zh) 2024-04-16

Family

ID=86443379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211683462.9A Active CN116185563B (zh) 2022-12-27 2022-12-27 一种基于车规级微控制器数据闪存的软件模拟算法

Country Status (1)

Country Link
CN (1) CN116185563B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116795299A (zh) * 2023-08-28 2023-09-22 苏州萨沙迈半导体有限公司 只读存储器的模拟系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1719422A (zh) * 2005-08-18 2006-01-11 北京中星微电子有限公司 一种存储器文件数据虚拟存取方法
US20120204078A1 (en) * 2011-02-07 2012-08-09 Hall John Robert Flash-based eeprom emulation using error correction control
US20120284587A1 (en) * 2008-06-18 2012-11-08 Super Talent Electronics, Inc. Super-Endurance Solid-State Drive with Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear
CN108710578A (zh) * 2018-04-20 2018-10-26 深圳市战音科技有限公司 基于闪存的数据存储方法和装置
CN112596808A (zh) * 2020-12-16 2021-04-02 微网智控(北京)科技有限公司 一种嵌入式系统的参数存储机制
CN115292266A (zh) * 2022-05-30 2022-11-04 中国电子科技集团公司第五十二研究所 一种基于存储器的高可靠日志存储方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1719422A (zh) * 2005-08-18 2006-01-11 北京中星微电子有限公司 一种存储器文件数据虚拟存取方法
US20120284587A1 (en) * 2008-06-18 2012-11-08 Super Talent Electronics, Inc. Super-Endurance Solid-State Drive with Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear
US20120204078A1 (en) * 2011-02-07 2012-08-09 Hall John Robert Flash-based eeprom emulation using error correction control
CN108710578A (zh) * 2018-04-20 2018-10-26 深圳市战音科技有限公司 基于闪存的数据存储方法和装置
CN112596808A (zh) * 2020-12-16 2021-04-02 微网智控(北京)科技有限公司 一种嵌入式系统的参数存储机制
CN115292266A (zh) * 2022-05-30 2022-11-04 中国电子科技集团公司第五十二研究所 一种基于存储器的高可靠日志存储方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
时丙才;: "基于环形擦除算法的固态硬盘控制器设计", 电子质量, no. 02 *
朱念好;周玉洁;: "Flash存储管理的研究与设计", 计算机工程与设计, no. 03 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116795299A (zh) * 2023-08-28 2023-09-22 苏州萨沙迈半导体有限公司 只读存储器的模拟系统

Also Published As

Publication number Publication date
CN116185563B (zh) 2024-04-16

Similar Documents

Publication Publication Date Title
KR100644602B1 (ko) 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
JP3692313B2 (ja) 不揮発性メモリの制御方法
US8086787B2 (en) Wear leveling method, and storage system and controller using the same
CN102890656B (zh) 提高flash使用寿命的方法
US9146854B2 (en) Restoring storage devices based on flash memories and related circuit, system, and method
EP1909184A2 (en) Mapping information managing apparatus and method for non-volatile memory supporting different cell types
US20020085433A1 (en) Data management system and data management method
US9563553B2 (en) Data storing method and embedded system
KR20140133427A (ko) 플래시 메모리에 저장된 데이터를 관리하는 방법 및 관련 메모리 장치 및 제어기
CN106445401B (zh) 表格更新方法、存储器储存装置及存储器控制电路单元
CN112347001B (zh) 闪存垃圾回收的校验方法、装置及电子设备
CN109918024B (zh) 存储管理方法、装置、单片机设备和可读存储介质
CN112596668A (zh) 一种存储器的坏块处理方法及系统
CN116185563B (zh) 一种基于车规级微控制器数据闪存的软件模拟算法
US9223688B2 (en) Data storing method and memory controller and memory storage device using the same
CN113568579A (zh) 一种存储器、数据存储方法以及数据读取方法
CN113885808A (zh) 映射信息记录方法以及存储器控制电路单元与存储装置
JP4158526B2 (ja) メモリカード及びメモリへのデータ書き込み方法
US20090164869A1 (en) Memory architecture and configuration method thereof
CN111324549B (zh) 一种存储器及其控制方法和装置
CN117742588B (zh) 使用Flash模拟EEPROM的数据存储方法及系统
US8510614B2 (en) Bad block identification methods
CN109522237B (zh) 存储器的数据管理方法及存储器装置
CN110781031B (zh) 控制器数据恢复方法、装置、控制器及汽车
CN110633056B (zh) 在操作系统层面的Flash芯片的页面管理方法及存储设备

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