CN107329850B - 一种满足海量读写次数操作的存储器及数据存储方法 - Google Patents
一种满足海量读写次数操作的存储器及数据存储方法 Download PDFInfo
- Publication number
- CN107329850B CN107329850B CN201710385008.8A CN201710385008A CN107329850B CN 107329850 B CN107329850 B CN 107329850B CN 201710385008 A CN201710385008 A CN 201710385008A CN 107329850 B CN107329850 B CN 107329850B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- subarea
- area
- write
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供了一种满足海量读写次数操作的存储器及数据存储方法,通过设计了包含数据结构内容完全一致的原始数据子区和备份数据子区的存储器,使用时执行数据读取,把信息导出到内存,当收到写入事件时,存储器先比较内存的数据和存储器内的数据是否发生改变,如果发生改变则执行写入操作。本发明采取双区备份技术满足掉电或其它意外情况数据不丢失,采用虚拟多区轮换满足海量数据的读写操作,防止了重复写,延长了使用次数。
Description
技术领域
本发明涉及存储领域,尤其涉及一种满足海量读写次数操作的存储器及数据存储方法。
背景技术
随着科技的迅速发展,联网设备越来越多,设备越来越智能,物联网时代设备之间互相交互连通,对联网设备的读取和写入操作变得非常频繁,高性能的存储器有着广泛的需求。
对于物联网设备的存储器主要满足以下需求:一定的使用寿命、读取和写入操作频繁且掉电或其它意外复位数据不丢失。目前市面上一般存储器的存储性能,一般是epprom 1000000 次、flash 100000 次,对于千万级别以上的数据读取、写入,当前市面上的存储器无法满足,可见需设计一种通用存储方法满足以上要求。
发明内容
为克服现有技术的问题,本发明提供一种满足海量读写次数操作的存储器及数据存储方法,能够码子千万级别以上的数据读取、写入频繁操作,并且掉电或其它意外复位数据不丢失。
本发明解决技术问题所采用的技术方案是:一种满足海量读写次数操作的存储器,所述存储器包括多个逻辑区,所述逻辑区由数据结构内容完全一致的原始数据子区和备份数据子区组成,用于在操作上互为备份和恢复;
所述原始数据子区包括存储控制区和数据存储区;
所述存储控制区包括掩码字段、CRC16 校验字段、使用次数字段。
所述掩码字段是固定的序列,用于对写入数据长度进行溢出检测,所述掩码字段在逻辑区的数据结构的头部。
所述CRC16 校验字段用于存储有效性校验。
进一步的,所述原始数据子区和备份数据子区是独立的页、扇区或完整存储介质,用于防止同时损坏。
一种基于所述存储器实现的数据存储方法,其步骤包括:
1)存储器上电完成存储器初始化,执行数据读取,把信息导出到内存;
2)存储器进入等待数据写入事件状态;
3)如果收到写入事件,存储器先比较内存的数据和存储器内的数据是否发生改变;
4)若数据发生改变,则执行写入操作;若未改变则无需写入。
所述步骤1)中,所述执行数据读取包括:
存储器从逻辑区的最后一个区读取数据;
通过CRC16 校验字段和掩码字段来校验并判断原始子区和备份子区是否有效;
若两子区均无效则更换至下一区重新读取;若两子区均有效,则选取使用次数大的区将新子区备份到旧子区内;若有一子区有效,则将有效的子区备份到无效的子区内。
在使用掩码字段进行校验的过程中,在写入数据过大或逻辑错误时则掩码字段将被覆盖为存储数据,变量存储器若检测到掩码字段被意外修改即说明写入数据过大或逻辑错误并通知用户进行异常处理。
所述步骤3)中,通过比较原始子区和备份子区的使用次数判断内存的数据和存储器的数据是否发生改变。
所述步骤4)在执行写入操作前,判断当前逻辑区的写入次数是否已达指定写入次数。
所述步骤4)中,所述执行写入操作步骤包括:
查询当前逻辑区的读写次数;
判断逻辑区数据写入使用次数是否到达指定次数,若达到则更换至下一逻辑区,若未到达则保持;
将数据写入备份子区和原始子区,通过CRC 和掩码来校验有效性;
若两区均有效则写入完成,若无效则更换至下一区重新写入。
所述步骤4)中,当执行写入操作后,更新使用次数。
本发明的有益效果主要表现为:通过设计了包含数据结构内容完全一致的原始数据子区和备份数据子区的存储器,使用时执行数据读取,把信息导出到内存,当收到写入事件时,存储器先比较内存的数据和存储器内的数据是否发生改变,如果发生改变则执行写入操作。采取双区备份技术满足掉电或其它意外情况数据不丢失,采用虚拟多区轮换满足海量数据的读写操作,防止了重复写,延长了使用次数。
附图说明
图1 是本发明提供的满足海量读写次数操作的存储器的结构图;
图2 是本发明提供的存储器整体运行逻辑的流程图;
图3是本发明提供的基于存储器实现数据读取方法的流程图;
图4是本发明提供的基于存储器实现数据写入方法的流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步详细描述。
参照附图1,是根据本发明的实施例提供的满足海量读写次数操作的存储器的结构图。
存储器包括n 个逻辑区101,所述逻辑区101由原始数据子区102和备份数据子区103组成,原始数据子区102和备份数据子区103的数据结构内容完全一致,用于在操作上互为备份和恢复;
原始数据子区102的实际物理地址映射是物理存储器的页、扇区或者完整存储介质104,备份数据子区103的实际物理地址映射是物理存储器的页、扇区或者完整存储介质105,物理存储器的页、扇区或者完整存储介质104和物理存储器的页、扇区或者完整存储介质105两者相互独立,用于防止两者同时损坏;
原始数据子区102包括存储控制区106和数据存储区107,存储控制区106用于控制数据读写和检验;
存储控制区106包括掩码字段108、CRC16 校验字段109、使用次数字段110,掩码字段108是固定的序列值,在逻辑区数据结构的头部,用于对写入数据长度进行溢出检测,CRC16 校验字段109用于存储有效性校验。
图2是存储器整体运行逻辑的流程图。
S201,存储器首先上电完成存储器初始化;
S202,执行数据读取将存储器中的信息导出到内存;
S203,存储器判断完成数据读取后,进入等待数据写入事件状态;
在存储器逻辑区的存储控制区中还包括存储器状态字段,当存储器状态字段设为0时,存储器逻辑区将不能被写入,当存储器状态字段设为1时,存储器将进入等待数据写入事件状态,逻辑区此时可以被写入。当存储器判断完成数据读取后,则会将当存储器状态字段从0设为1。
S204,如果收到写入事件,存储器先比较内存的数据和存储器内的数据是否发生改变。
判断内存的数据和存储器的数据是否发生改变,是通过比较原始子区和备份子区的使用次数实现的。
S205,如果数据发生变化,则执行写入操作;若未改变则无需写入。
图3是基于存储器实现数据读取方法的流程图。
S301,从逻辑区最后一个区开始读取子区数据;
S302,读取当前逻辑区内的原始子区和备份子区中的掩码字段和CRC16 校验字段;
S303,根据掩码字段和CRC16 校验字段判断原始子区和备份子区是否有效,如果两个子区均无效,则舍弃当前逻辑区,从下一个逻辑区重新读取,转至步骤S301;如果两子区中有一个子区有效,则转至步骤S304;如果两子区均有效,则转至步骤S305;
掩码字段是固定的序列值,例如是可以一个16位二进制数据。
在使用掩码字段进行校验的过程中,在写入数据过大或逻辑错误时则掩码字段将被覆盖为存储数据,变量存储器若检测到掩码字段被意外修改即说明写入数据过大或逻辑错误并通知用户进行异常处理。
S304,从有效的子区备份到无效的子区;
将经检验有效子区中的数据覆盖到无效的子区中。
S305,比较原始子区和备份子区的使用次数;
S306,将使用次数大的子区备份到使用次数小的子区,恢复最新数据;
S307,完成导出数据。
图4是基于存储器实现数据写入方法的流程图。
S401,查询当前逻辑区的读写次数;
S402,判断数据写入使用次数是否到达逻辑区的指定次数,如果已达到使用次数上限则转至步骤S403,如果没有达到使用次数上限则转至步骤S404;
S403,更换至下一逻辑区,并转至步骤S401;
S404,将数据写入备份子区和原始子区;
S405,读取子区中的CRC16字段和掩码字段,通过CRC16 和掩码来校验写入有效性;
S406,若两区均有效则写入完成,若无效则更换至下一逻辑区重新写入,并转至步骤403。
上述实施例用于对本发明作进一步说明,但并不将本发明局限于这些具体实施方式。本领域技术人员应该认识到,本发明涵盖了权利要求书范围内所可能包括的所有备选方案、改进方案和等效方案。
Claims (7)
1.一种满足海量读写次数操作的存储器,其特征在于,所述存储器包括:
多个逻辑区,所述逻辑区包括数据结构内容完全一致的原始数据子区和备份数据子区,原始数据子区和备份数据子区之间能够互为备份和恢复;
所述原始数据子区包括存储控制区和数据存储区;
所述存储控制区包括掩码字段、CRC16校验字段、使用次数字段;
所述掩码字段是固定的序列,用于对写入数据长度进行溢出检测,所述掩码字段在逻辑区的数据结构的头部,所述CRC16校验字段用于存储有效性校验;
所述原始数据子区和所述备份数据子区是独立的页、扇区或完整存储介质,用于防止同时损坏;
存储器实现包括以下步骤:
1)存储器上电完成存储器初始化,执行数据读取,把信息导出到内存;
2)存储器进入等待数据写入事件状态;
3)如果收到写入事件,存储器先比较内存的数据和存储器内的数据是否发生改变;
4)若数据发生改变,则执行写入操作;若未改变则无需写入。
2.如权利要求1所述的数据存储方法,其特征在于,所述步骤1)中,所述执行数据读取包括:
存储器从逻辑区的最后一个区读取数据;
通过CRC16校验字段和掩码字段来校验并判断原始数据子区和备份数据子区是否有效;
若原始数据子区和备份数据子区均无效则更换至下一区重新读取;
若原始数据子区和备份数据子区均有效,则选取使用次数大的区将新子区备份到旧子区内;若有原始数据子区和备份数据子区中的一个有效,则将有效的子区备份到无效的子区内。
3.如权利要求2所述的数据存储方法,其特征在于,在使用掩码字段进行校验的过程中,在写入数据过大或逻辑错误时则掩码字段将被覆盖为存储数据,变量存储器若检测到掩码字段被意外修改即说明写入数据过大或逻辑错误并通知用户进行异常处理。
4.如权利要求1所述的数据存储方法,其特征在于,所述步骤3)中,通过比较原始数据子区和备份数据子区的使用次数判断内存的数据和存储器的数据是否发生改变。
5.如权利要求1所述的数据存储方法,其特征在于,所述步骤4)在执行写入操作前,判断当前逻辑区的写入次数是否已达指定写入次数。
6.如权利要求1所述的数据存储方法,其特征在于,所述步骤4)中,所述执行写入操作步骤包括:
查询当前逻辑区的读写次数;
判断逻辑区数据写入使用次数是否到达指定次数,若达到则更换至下一逻辑区,若未到达则保持;
将数据写入备份数据子区和原始数据子区,通过CRC16和掩码来校验有效性;若两区均有效则写入完成,若无效则更换至下一区重新写入。
7.如权利要求1所述的数据存储方法,其特征在于,所述步骤4)中,当执行写入操作后,更新使用次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710385008.8A CN107329850B (zh) | 2017-05-26 | 2017-05-26 | 一种满足海量读写次数操作的存储器及数据存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710385008.8A CN107329850B (zh) | 2017-05-26 | 2017-05-26 | 一种满足海量读写次数操作的存储器及数据存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107329850A CN107329850A (zh) | 2017-11-07 |
CN107329850B true CN107329850B (zh) | 2021-05-14 |
Family
ID=60193079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710385008.8A Active CN107329850B (zh) | 2017-05-26 | 2017-05-26 | 一种满足海量读写次数操作的存储器及数据存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107329850B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108459930B (zh) * | 2018-04-02 | 2020-09-11 | 深圳臻迪信息技术有限公司 | 数据备份方法、装置和存储介质 |
CN111984457B (zh) | 2019-05-23 | 2022-09-02 | 华为技术有限公司 | 对存储信息更新的方法和装置 |
CN112215986A (zh) * | 2020-09-09 | 2021-01-12 | 苏州工业园区凌志软件股份有限公司 | 一种智能锁的物联网控制***及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101251826A (zh) * | 2007-02-27 | 2008-08-27 | 深圳市同洲电子股份有限公司 | 闪速存储器、用于闪速存储器的数据管理方法及设备 |
CN101634957A (zh) * | 2008-07-23 | 2010-01-27 | 佛山市顺德区顺达电脑厂有限公司 | flash存储器的数据管理方法及其*** |
CN103914393A (zh) * | 2014-04-11 | 2014-07-09 | 四川华拓光通信股份有限公司 | 一种基于mcu的flash不丢失更新存储方法 |
CN106681855A (zh) * | 2015-11-10 | 2017-05-17 | 澜起科技(上海)有限公司 | 一次性可编程存储装置以及对其进行数据校验的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201612792A (en) * | 2014-09-22 | 2016-04-01 | Hon Hai Prec Ind Co Ltd | Protect writing device and method for flash memory with mask rom |
-
2017
- 2017-05-26 CN CN201710385008.8A patent/CN107329850B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101251826A (zh) * | 2007-02-27 | 2008-08-27 | 深圳市同洲电子股份有限公司 | 闪速存储器、用于闪速存储器的数据管理方法及设备 |
CN101634957A (zh) * | 2008-07-23 | 2010-01-27 | 佛山市顺德区顺达电脑厂有限公司 | flash存储器的数据管理方法及其*** |
CN103914393A (zh) * | 2014-04-11 | 2014-07-09 | 四川华拓光通信股份有限公司 | 一种基于mcu的flash不丢失更新存储方法 |
CN106681855A (zh) * | 2015-11-10 | 2017-05-17 | 澜起科技(上海)有限公司 | 一次性可编程存储装置以及对其进行数据校验的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107329850A (zh) | 2017-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10613943B2 (en) | Method and system for improving open block data reliability | |
CN101681281B (zh) | 检测出现的坏块 | |
US9201785B2 (en) | Data writing method, memory controller and memory storage apparatus | |
JP6112595B2 (ja) | メモリシステムにおける消去管理 | |
US10489246B2 (en) | Data storage device and data maintenance method thereof | |
TWI633428B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
CN107329850B (zh) | 一种满足海量读写次数操作的存储器及数据存储方法 | |
CN111755039A (zh) | 在恢复进程期间减少存储器***中单元干扰的设备及方法 | |
US20160283319A1 (en) | Data storage device and encoding method thereof | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN105808371A (zh) | 数据备份与恢复方法、控制芯片及存储装置 | |
CN105005450A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN107704338B (zh) | 一种资料储存型闪存的数据恢复方法和装置 | |
CN104252317A (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US11500721B2 (en) | Solid-state disk and reading and writing method thereof | |
CN113094307B (zh) | 映射信息管理方法、存储器存储装置及存储器控制器 | |
CN111258498B (zh) | 一种flash存储器管理方法 | |
CN109960611B (zh) | 数据恢复的方法、装置、电子设备及机器可读存储介质 | |
CN113721832A (zh) | 数据储存装置与数据处理方法 | |
US20240231708A1 (en) | Dynamic rain for zoned storage systems | |
KR20140101626A (ko) | 솔리드 스테이트 드라이브의 데이터 처리 방법 | |
CN115357185A (zh) | 一种基于NAND Flash的星载固存高可靠数据存取方法 | |
US20130262796A1 (en) | Indicators for storage cells | |
CN116225787A (zh) | 一种ssd的元数据恢复方法、装置、设备及介质 |
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 |