CN113254364A - 一种嵌入式系统用信息存储装置 - Google Patents
一种嵌入式系统用信息存储装置 Download PDFInfo
- Publication number
- CN113254364A CN113254364A CN202110566457.9A CN202110566457A CN113254364A CN 113254364 A CN113254364 A CN 113254364A CN 202110566457 A CN202110566457 A CN 202110566457A CN 113254364 A CN113254364 A CN 113254364A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- written
- linked list
- node
- 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
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/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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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
- G06F2212/1036—Life time enhancement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种嵌入式系统用信息存储装置,所述存储装置由存储器构成,所述存储装置掉电储存方法步骤如下:存储器中创建两个空白的双向链表,分别为存储链表和空闲链表,存储链表对数据与存储数据进行比对,检测该数据是否存储过,若存储数据中缺少与待存储数据重复的节点,则有空闲链表中摘取一个链表,添加至存储链表中,在存储链表中找到对应存储位置后,将数据更新至数据域,并进行读取,检测写入和读出数据的一致性,在写入前,检查需要写入的数据和上一次写入数据,决定是否写入数据。本发明可避免存储链表中由于掉电而损坏的节点影响数据读写的效果,同时还防止数据频繁写入,而导致空间写入损坏。
Description
技术领域
本发明涉及信息存储设备技术领域,具体为一种嵌入式系统用信息存储装置。
背景技术
在一些嵌入式设备,时常会面临意外断电的情况,断电的时候需要将某些关键数据存储到EEPROM等非易失性存储器中,重新上电后,读取断电前存储的数据,继续运行。
经过海量检索,发现现有技术,公开号为CN105531681A,公开了一种存储装置,配置该存储装置接收进入指令以进入深度休眠模式并且配置该存储装置接收唤醒指令以离开该深度休眠模式并进入正常模式。在该深度休眠模式中,该存储装置保持存储在该存储装置中的数据,并且在该正常模式中,正常存取该存储装置。如果在该存储装置处于该深度休眠模式时控制该存储装置进入该正常模式,则在该存储装置离开该深度休眠模式的恢复时间间隔后,该存储装置进入该正常模式。
现有采用的手段是将相关数据按照一定的时间间隔写入到固定的存储地址,但EEPROM存储器有一定的写入次数寿命,超过一定次数,该写入区域就会损坏,不能再写入。增加写入的间隔时间,可以延长相关区域的使用寿命,但可能会影响下次上电运行时的正确性或者精度;写入时间过短,又会影响写入区域的使用寿命。
发明内容
本发明的目的在于提供一种嵌入式系统用信息存储装置,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种嵌入式系统用信息存储装置,所述存储装置由存储器构成,所述存储器中包括存储链表和空闲链表,所述存储链表和空闲链表由线性排列的节点构成,所述节点均由前向指针、后向指针和数据域构成,所述存储装置掉电储存方法步骤如下:
S1:在存储器初次上电初始化时,存储器中创建两个空白的双向链表,分别为存储链表和空闲链表;
S2:在存储数据时,存储链表对数据与存储数据进行比对,检测该数据是否存储过,若存储数据中缺少与待存储数据重复的节点,则有空闲链表中摘取一个链表,添加至存储链表中;
S3:在存储链表中找到对应存储位置后,将数据更新至数据域,并进行读取,检测写入和读出数据的一致性;
S4:在写入前,检查需要写入的数据和上一次写入数据,决定是否写入数据。
优选的,所述存储链表与空闲链表的节点中,所述前向指针和后向指针相互对应。
优选的,基于S3中对数据进行检查步骤如下:
数据更新至存储位置的数据域后,对数据进行读取,检查写入和读出数据一致性,若写入数据和读出数据一致,则检测节点移动至下一存储节点;
若写入数据和读出数据不一致,则该存储节点对应的物理空间损坏,将该节点从存储链表中删除,并由空闲链表中摘取一个新的节点。
优选的,基于S4中对数据进行写入检查步骤如下:
由空闲链表中摘取新的节点后,在新的节点进行写入前,检查需要写入的数据与上次写入数据是否相等,若写入数据与上次写入数据相同,则取消写入进程;
若写入数据与上次写入数据不同,则进行写入。
与现有技术相比,本发明的有益效果是:本发明采用动态管理存储器的存储空间,当存储器的存储链表中的节点由于掉电而损坏,采用读取和检测的方式将损坏节点检出出来,并带写入和读取数据时,跳过损坏节点,从而避免数据在损坏节点频繁写入和读取,导致空间写入损坏和系统无法正常工作的问题;在对数据写入前,将存储数据与上一次写入数据进行对比,在待写入数据与原有数据不同时才会进行写入,避免频繁写入,降低存储器的存储效率。
附图说明
图1为本发明的损坏节点读取进程结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“上”、“下”、“内”、“外”“前端”、“后端”、“两端”、“一端”、“另一端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“设置有”、“连接”等,应做广义理解,例如“连接”,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
请参阅图1,本发明提供的一种实施例:
实施例一:
一种嵌入式系统用信息存储装置,存储装置由存储器构成,存储器中包括存储链表和空闲链表,存储链表和空闲链表由线性排列的节点构成,存储链表与空闲链表的节点中,前向指针和后向指针相互对应,节点均由前向指针、后向指针和数据域构成,存储装置掉电储存方法步骤如下:
S1:在存储器初次上电初始化时,存储器中创建两个空白的双向链表,分别为存储链表和空闲链表;
S2:在存储数据时,存储链表对数据与存储数据进行比对,检测该数据是否存储过,若存储数据中缺少与待存储数据重复的节点,则有空闲链表中摘取一个链表,添加至存储链表中;
S3:在存储链表中找到对应存储位置后,将数据更新至数据域,并进行读取,检测写入和读出数据的一致性;
S4:在写入前,检查需要写入的数据和上一次写入数据,决定是否写入数据。
实施例二:
基于S3中对数据进行检查步骤如下:
数据更新至存储位置的数据域后,对数据进行读取,检查写入和读出数据一致性,若写入数据和读出数据一致,则检测节点移动至下一存储节点;
若写入数据和读出数据不一致,则该存储节点对应的物理空间损坏,将该节点从存储链表中删除,并由空闲链表中摘取一个新的节点,当存储器的存储链表中的节点由于掉电而损坏,采用读取和检测的方式将损坏节点检出出来,并带写入和读取数据时,跳过损坏节点,从而避免数据在损坏节点频繁写入和读取,导致空间写入损坏和系统无法正常工作的问题。
实施例三:
基于S4中对数据进行写入检查步骤如下:
由空闲链表中摘取新的节点后,在新的节点进行写入前,检查需要写入的数据与上次写入数据是否相等,若写入数据与上次写入数据相同,则取消写入进程;
若写入数据与上次写入数据不同,则进行写入,在对数据写入前,将存储数据与上一次写入数据进行对比,在待写入数据与原有数据不同时才会进行写入,避免频繁写入,降低存储器的存储效率。
工作原理:在存储器初次上电初始化时,存储器中创建两个空白的双向链表,分别为存储链表和空闲链表,在存储数据时,存储链表对数据与存储数据进行比对,检测该数据是否存储过,若存储数据中缺少与待存储数据重复的节点,则有空闲链表中摘取一个链表,添加至存储链表中;
在存储链表中找到对应存储位置后,将数据更新至数据域,并进行读取,检测写入和读出数据的一致性,若写入数据和读出数据一致,则检测节点移动至下一存储节点,若写入数据和读出数据不一致,则该存储节点对应的物理空间损坏,将该节点从存储链表中删除,并由空闲链表中摘取一个新的节点,当存储器的存储链表中的节点由于掉电而损坏,采用读取和检测的方式将损坏节点检出出来,并带写入和读取数据时,跳过损坏节点,从而避免数据在损坏节点频繁写入和读取,导致空间写入损坏和系统无法正常工作的问题;
在写入前,检查需要写入的数据和上一次写入数据,决定是否写入数据,由空闲链表中摘取新的节点后,在新的节点进行写入前,检查需要写入的数据与上次写入数据是否相等,若写入数据与上次写入数据相同,则取消写入进程,若写入数据与上次写入数据不同,则进行写入,在对数据写入前,将存储数据与上一次写入数据进行对比,在待写入数据与原有数据不同时才会进行写入,避免频繁写入,降低存储器的存储效率。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (4)
1.一种嵌入式系统用信息存储装置,其特征在于:所述存储装置由存储器构成,所述存储器中包括存储链表和空闲链表,所述存储链表和空闲链表由线性排列的节点构成,所述节点均由前向指针、后向指针和数据域构成,所述存储装置掉电储存方法步骤如下:
S1:在存储器初次上电初始化时,存储器中创建两个空白的双向链表,分别为存储链表和空闲链表;
S2:在存储数据时,存储链表对数据与存储数据进行比对,检测该数据是否存储过,若存储数据中缺少与待存储数据重复的节点,则有空闲链表中摘取一个链表,添加至存储链表中;
S3:在存储链表中找到对应存储位置后,将数据更新至数据域,并进行读取,检测写入和读出数据的一致性;
S4:在写入前,检查需要写入的数据和上一次写入数据,决定是否写入数据。
2.根据权利要求1所述的一种嵌入式系统用信息存储装置,其特征在于:所述存储链表与空闲链表的节点中,所述前向指针和后向指针相互对应。
3.根据权利要求1所述的一种嵌入式系统用信息存储装置,其特征在于:基于S3中对数据进行检查步骤如下:
数据更新至存储位置的数据域后,对数据进行读取,检查写入和读出数据一致性,若写入数据和读出数据一致,则检测节点移动至下一存储节点;
若写入数据和读出数据不一致,则该存储节点对应的物理空间损坏,将该节点从存储链表中删除,并由空闲链表中摘取一个新的节点。
4.根据权利要求3所述的一种嵌入式系统用信息存储装置,其特征在于:基于S4中对数据进行写入检查步骤如下:
由空闲链表中摘取新的节点后,在新的节点进行写入前,检查需要写入的数据与上次写入数据是否相等,若写入数据与上次写入数据相同,则取消写入进程;
若写入数据与上次写入数据不同,则进行写入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110566457.9A CN113254364B (zh) | 2021-05-24 | 2021-05-24 | 一种嵌入式系统用信息存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110566457.9A CN113254364B (zh) | 2021-05-24 | 2021-05-24 | 一种嵌入式系统用信息存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254364A true CN113254364A (zh) | 2021-08-13 |
CN113254364B CN113254364B (zh) | 2022-07-19 |
Family
ID=77184033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110566457.9A Active CN113254364B (zh) | 2021-05-24 | 2021-05-24 | 一种嵌入式系统用信息存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254364B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01222353A (ja) * | 1988-03-01 | 1989-09-05 | Agency Of Ind Science & Technol | データ処理方式 |
US5682553A (en) * | 1995-04-14 | 1997-10-28 | Mitsubishi Electric Information Technology Center America, Inc. | Host computer and network interface using a two-dimensional per-application list of application level free buffers |
US20030121030A1 (en) * | 2001-12-21 | 2003-06-26 | Christopher Koob | Method for implementing dual link list structure to enable fast link-list pointer updates |
CN101329656A (zh) * | 2008-05-06 | 2008-12-24 | 无锡紫芯集成电路系统有限公司 | 一种Nand-Flash存储系统的管理方法 |
CN101419571A (zh) * | 2008-12-04 | 2009-04-29 | 上海大学 | 基于Hash算法的在NOR FLASH中存储配置参数的方法 |
CN102081577A (zh) * | 2011-01-12 | 2011-06-01 | 厦门雅迅网络股份有限公司 | Flash存储器的数据存储结构及其数据操作方式 |
KR20130131025A (ko) * | 2012-05-23 | 2013-12-03 | 엠디에스테크놀로지 주식회사 | 실시간 다중 프로세스 수행 환경에서의 메모리 보호 방법 |
CN104077078A (zh) * | 2013-03-26 | 2014-10-01 | 华为技术有限公司 | 读存储区、更新存储区的方法及装置 |
CN105243030A (zh) * | 2015-10-26 | 2016-01-13 | 北京锐安科技有限公司 | 一种数据缓存方法 |
CN105808156A (zh) * | 2014-12-31 | 2016-07-27 | 华为技术有限公司 | 将数据写入固态硬盘的方法及固态硬盘 |
CN107622020A (zh) * | 2017-09-06 | 2018-01-23 | 网宿科技股份有限公司 | 一种数据存储方法、访问方法及装置 |
CN109101438A (zh) * | 2018-07-25 | 2018-12-28 | 百度在线网络技术(北京)有限公司 | 用于存储数据的方法和装置 |
CN109144892A (zh) * | 2018-08-27 | 2019-01-04 | 南京国电南自轨道交通工程有限公司 | 一种管理内存中高频变化数据的缓冲链表数据结构设计方法 |
CN111324427A (zh) * | 2018-12-14 | 2020-06-23 | 深圳云天励飞技术有限公司 | 一种基于dsp的任务调度方法及装置 |
WO2021088466A1 (zh) * | 2019-11-04 | 2021-05-14 | 盛科网络(苏州)有限公司 | 提高网络芯片报文存储效率的方法、设备及存储介质 |
-
2021
- 2021-05-24 CN CN202110566457.9A patent/CN113254364B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01222353A (ja) * | 1988-03-01 | 1989-09-05 | Agency Of Ind Science & Technol | データ処理方式 |
US5682553A (en) * | 1995-04-14 | 1997-10-28 | Mitsubishi Electric Information Technology Center America, Inc. | Host computer and network interface using a two-dimensional per-application list of application level free buffers |
US20030121030A1 (en) * | 2001-12-21 | 2003-06-26 | Christopher Koob | Method for implementing dual link list structure to enable fast link-list pointer updates |
CN101329656A (zh) * | 2008-05-06 | 2008-12-24 | 无锡紫芯集成电路系统有限公司 | 一种Nand-Flash存储系统的管理方法 |
CN101419571A (zh) * | 2008-12-04 | 2009-04-29 | 上海大学 | 基于Hash算法的在NOR FLASH中存储配置参数的方法 |
CN102081577A (zh) * | 2011-01-12 | 2011-06-01 | 厦门雅迅网络股份有限公司 | Flash存储器的数据存储结构及其数据操作方式 |
KR20130131025A (ko) * | 2012-05-23 | 2013-12-03 | 엠디에스테크놀로지 주식회사 | 실시간 다중 프로세스 수행 환경에서의 메모리 보호 방법 |
CN104077078A (zh) * | 2013-03-26 | 2014-10-01 | 华为技术有限公司 | 读存储区、更新存储区的方法及装置 |
CN105808156A (zh) * | 2014-12-31 | 2016-07-27 | 华为技术有限公司 | 将数据写入固态硬盘的方法及固态硬盘 |
CN105243030A (zh) * | 2015-10-26 | 2016-01-13 | 北京锐安科技有限公司 | 一种数据缓存方法 |
CN107622020A (zh) * | 2017-09-06 | 2018-01-23 | 网宿科技股份有限公司 | 一种数据存储方法、访问方法及装置 |
CN109101438A (zh) * | 2018-07-25 | 2018-12-28 | 百度在线网络技术(北京)有限公司 | 用于存储数据的方法和装置 |
CN109144892A (zh) * | 2018-08-27 | 2019-01-04 | 南京国电南自轨道交通工程有限公司 | 一种管理内存中高频变化数据的缓冲链表数据结构设计方法 |
CN111324427A (zh) * | 2018-12-14 | 2020-06-23 | 深圳云天励飞技术有限公司 | 一种基于dsp的任务调度方法及装置 |
WO2021088466A1 (zh) * | 2019-11-04 | 2021-05-14 | 盛科网络(苏州)有限公司 | 提高网络芯片报文存储效率的方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113254364B (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100590606C (zh) | 闪速存储器数据完整性保护方法 | |
CN102043727B (zh) | 恢复固态硬盘映射表的方法及其装置 | |
US7240178B2 (en) | Non-volatile memory and non-volatile memory data rewriting method | |
CN102033814B (zh) | 存取一闪存的方法以及相关的记忆装置 | |
CN103186471B (zh) | 存储设备中坏块的管理方法及系统 | |
CN101901169B (zh) | 扫描装置及方法 | |
CN101876949A (zh) | 数据储存系统与方法 | |
CN107678420B (zh) | 一种发动机数据在线存储方法 | |
CN103049713B (zh) | 对存储设备中数据进行巡检的方法、设备及系统 | |
CN103823642A (zh) | 用于Flash均衡存储的方法及系统 | |
CN106354652B (zh) | 非易失性存储器读写控制电路 | |
CN102541676A (zh) | 一种nand flash的状态检测及映射方法 | |
CN112817527A (zh) | 掉电数据存储方法、单片机及计算机可读存储介质 | |
US8296506B2 (en) | Method for managing a non-violate memory and computer readable medium thereof | |
CN103049354A (zh) | 数据修复方法、数据修复装置以及存储系统 | |
CN102981977A (zh) | 一种可延长flash使用寿命的数据存储方法 | |
CN105843700A (zh) | 一种控制器 | |
CN108564981B (zh) | 一种存储装置数据安全动态监控方法 | |
CN113254364B (zh) | 一种嵌入式系统用信息存储装置 | |
CN103425546A (zh) | 一种通用高效高可靠的Nor Flash数据存储管理方法 | |
CN108665941A (zh) | 基于nand闪存的列修复方法、装置和nand存储设备 | |
CN217426109U (zh) | 一种设置于固态硬盘主控芯片内的坏块扫描电路 | |
CN110262980A (zh) | 基于有限寿命存储介质的高速存储系统 | |
CN109947364A (zh) | 一种用于flash/eeprom中的实时数据存储方法 | |
CN112908390B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |