CN113204316A - 一种使用flash进行高效数据存储的方法 - Google Patents

一种使用flash进行高效数据存储的方法 Download PDF

Info

Publication number
CN113204316A
CN113204316A CN202110545321.XA CN202110545321A CN113204316A CN 113204316 A CN113204316 A CN 113204316A CN 202110545321 A CN202110545321 A CN 202110545321A CN 113204316 A CN113204316 A CN 113204316A
Authority
CN
China
Prior art keywords
index
dynamic parameter
storage area
sector
flash
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
CN202110545321.XA
Other languages
English (en)
Other versions
CN113204316B (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.)
93216 Troops Of Chinese Pla
Original Assignee
93216 Troops Of Chinese Pla
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 93216 Troops Of Chinese Pla filed Critical 93216 Troops Of Chinese Pla
Priority to CN202110545321.XA priority Critical patent/CN113204316B/zh
Publication of CN113204316A publication Critical patent/CN113204316A/zh
Application granted granted Critical
Publication of CN113204316B publication Critical patent/CN113204316B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket

Landscapes

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

Abstract

本发明涉及一种使用FLASH进行高效数据存储的方法,属于FLASH数据存储技术领域。本发明在FLASH中划分索引扇区和动态参数扇区,索引扇区包括N个索引存储区,动态参数扇区包括M个动态参数存储区,每个索引存储区中均保存有动态参数存储区号和CRC校验码,动态参数存储区号指示当前索引对应的动态参数保存的存储区地址,动态参数存储区用于保存动态参数。当读取数据时,系统上电后首先读取索引扇区,得到最后一次的索引存储区地址,进而得到动态参数存储区号,并读取对应的动态参数;当写入数据时,先写入动态参数存储区,再将对应的区号写入索引存储区。本发明充分利用了FLASH存储器的大容量存储空间,提高了数据平均写入速度和芯片的使用寿命。

Description

一种使用FLASH进行高效数据存储的方法
技术领域
本发明属于FLASH数据存储技术领域,具体涉及一种使用FLASH进行高效数据存储的方法。
背景技术
FLASH是一种大容量非易失性存储器件。由于工艺原理限制,对已写入数据的地址进行再次写入数据之前,必须进行数据的擦除,并且不提供字节擦除功能,只能进行扇区擦除。
以某FLASH产品为例,容量4Mbit,扇区配置结构如图1所示。手册建议的字节擦除时间最大300us,扇区擦除时间最大30S。芯片可靠擦除次数1万次。
在一些应用系统中,设备的工作参数、工作模式、产生的工作数据等需要保存在FLASH芯片中,以便在设备关闭、重启后可以恢复之前工作状态进行工作。
在使用固定地址保存数据时,即使需要改变的数据量很小,也要将整个扇区数据全部擦除,即降低了FLASH芯片的使用寿命(FLASH芯片都有擦除次数限制),也增加了单次写入数据的时间。
为了应对这种情况,FLASH芯片中通常提供小扇区,如图1中的SA8/SA9,用于保存动态数据。但这也只是减少的数据写入之前扇区擦除的时间,并没有改善芯片使用寿命。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种使用FLASH进行高效数据存储的方法,以解决FLASH芯片使用寿命降低的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种使用FLASH进行高效数据存储的方法,在FLASH中划分索引扇区和动态参数扇区,索引扇区包括N个索引存储区,动态参数扇区包括M个动态参数存储区,每个索引存储区中均保存有动态参数存储区号和CRC校验码,动态参数存储区号指示当前索引对应的动态参数保存的存储区地址,动态参数存储区用于保存动态参数,该方法包括如下步骤:
(1.1)开机运行,索引存储区号置0;
(1.2)读取索引存储区号中的索引,并计算索引中的动态参数存储区号的CRC校验码,与索引中的CRC校验码进行比较,如二者一致,索引数据完整,如二者不一致,索引数据不完整;
(1.3)若不完整,则表明当前无有效动态参数,设置索引存储区号=0,退出;若完整,进行步骤(1.4);
(1.4)索引存储区号+1,读取索引,采用步骤1.2中的方法判断读取到的索引数据的完整性;
(1.5)若不完整,进行步骤(1.6);若完整,判断是否为最后一个地址,如果是,则进行步骤(1.7),否则,进行步骤(1.4);
(1.6)索引存储区号-1;
(1.7)读取索引,得到动态参数存储区号,读取动态参数。
进一步地,N个索引存储区大小一致连续存储,M个动态参数存储区大小一致连续存储。
进一步地,索引存储区的数量N等于动态参数存储区的数量M。
进一步地,所述CRC校验码是对动态参数存储区号进行校验产生的校验码。
进一步地,校验方法为CRC循环冗余校验。
一种使用FLASH进行高效数据存储的方法,在FLASH中划分索引扇区和动态参数扇区,索引扇区包括N个索引存储区,动态参数扇区包括M个动态参数存储区,每个索引存储区中均保存有动态参数存储区号和CRC校验码,动态参数存储区号指示当前索引对应的动态参数保存的存储区地址,动态参数存储区用于保存动态参数,该方法包括如下步骤:
(2.1)接收动态参数,动态参数存储区号+1;
(2.2)写动态参数到动态参数存储区号指定的地址;
(2.3)动态参数存储区中数据读出校验判断;
(2.4)若校验通过,进行步骤(2.5);否则,判断是否进行过扇区擦除操作,如果是,命令执行失败,否则,进行扇区擦除,进行步骤(2.2);
(2.5)索引存储区号+1;
(2.6)写索引到索引存储区号对应的索引存储区;
(2.7)索引存储区中数据读出校验判断;
(2.8)若校验通过,则指令正确执行;否则,判断是否进行过扇区擦除操作,如果是,命令执行失败,否则,进行扇区擦除,进行步骤(2.6)。
进一步地,N个索引存储区大小一致连续存储,M个动态参数存储区大小一致连续存储。
进一步地,索引存储区的数量N等于动态参数存储区的数量M。
进一步地,所述CRC校验码是对动态参数存储区号进行校验产生的校验码。
进一步地,校验方法为CRC循环冗余校验。
(三)有益效果
本发明提出一种使用FLASH进行高效数据存储的方法,创新性的引入索引自校验命中方法,高效获取到系统最后一次使用的索引。引入数据索引查找方法,通过索引指针获取到动态数据保存的地址,进行数据的读写。充分利用了FLASH存储器的大容量存储空间,提高了数据平均写入速度和芯片的使用寿命。
附图说明
图1为某FLASH产品的扇区配置结构;
图2为本发明的FLASH存储器数据结构图;
图3为本发明的读取索引以及动态参数的流程图;
图4为本发明的写动态参数的流程图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明主要涉及FLASH数据存储技术领域,具体是一种使用FLASH存储器进行高效数据存储的方法。
本文提出一种使用FLASH进行高效数据存储的方法,可以很好的解决上面提到的问题。主要是2项关键技术,一种是基于自校验进行索引命中的方法,一种是基于索引进行数据查找的方法。
如图2所示,在FLASH中划分索引扇区和动态参数扇区,索引扇区包括N个索引存储区,动态参数扇区包括M个动态参数存储区,每个索引存储区中均保存有动态参数存储区号和CRC校验码,动态参数存储区号指示当前索引对应的动态参数保存的存储区地址,动态参数存储区用于保存动态参数。索引扇区和动态参数扇区分别用于保存索引数据和动态参数数据,每个索引数据和每个动态参数数据设计占用固定长度并连续存储。附图2中的N=M时,达到设计最优。
以某芯片为例,使用扇区4作为索引扇区,大小为64KB,每个索引数据16个字节(14字节数据,2字节CRC校验码),可以保存4K份索引数据;使用扇区0-3作为动态参数扇区,大小为64K*4字节,每个动态参数数据区4KB,可以保存64份动态参数数据。
每个索引含两部分内容,第一部分为动态参数存储区号,指示当前索引对应的动态参数保存的存储区地址和一些系统参数,第二部分为CRC校验码,是对第一部分数据进行校验产生的校验码,可采用CRC循环冗余校验。
N个索引存储区大小一致连续存储,M个动态参数存储区大小一致连续存储,所以只要知道了动态数据的存储区号就可以找到对应的动态参数。
如图3所示,系统上电后首先读取索引扇区,得到最后一次的索引存储区地址,进而得到动态参数存储区号,并读取对应的动态参数,具体包括以下步骤:
(1.1)开机运行,索引存储区号置0;
(1.2)读取索引存储区号中的索引,并计算索引中的动态参数存储区号的CRC校验码,与索引中的CRC校验码进行比较,二者一致,索引数据完整,二者不一致,索引数据不完整;
(1.3)若不完整,则表明当前无有效动态参数,设置索引存储区号=0,退出;若完整,进行步骤(1.4);
(1.4)索引存储区号+1,读取索引,判断读取到的索引数据的完整性,判断方法同1.2;
(1.5)若不完整,进行步骤(1.6);若完整,判断是否为最后一个地址,如果是,则进行步骤(1.7),否则,进行步骤(1.4);
(1.6)索引存储区号-1;
(1.7)读取索引,得到动态参数存储区号,读取动态参数。
如图4所示,系统运行时,接收到动态参数进行数据存储的处理的具体步骤包括:
(2.1)接收动态参数,动态参数存储区号+1;
(2.2)写动态参数到动态参数存储区号指定的地址;
(2.3)动态参数存储区中数据读出校验判断;
(2.4)若校验通过,进行步骤(2.5);否则,判断是否进行过扇区擦除操作,如果是,命令执行失败,否则,进行扇区擦除,进行步骤(2.2);
(2.5)索引存储区号+1;
(2.6)写索引到索引存储区号对应的索引存储区;
(2.7)索引存储区中数据读出校验判断;
(2.8)若校验通过,则指令正确执行;否则,判断是否进行过扇区擦除操作,如果是,命令执行失败,否则,进行扇区擦除,进行步骤(2.6)。
本文提出了一种使用FLASH进行高效数据存储的方法,创新性的引入索引自校验命中方法,高效获取到系统最后一次使用的索引。引入数据索引查找方法,通过索引指针获取到动态数据保存的地址,进行数据的读写。充分利用了FLASH存储器的大容量存储空间,提高了数据平均写入速度和芯片的使用寿命。现申请对于索引自同步的命中方法和数据索引查找方法进行保护,包括但不限于FLASH芯片中的数据存储。
可以举例对比提高寿命的倍数:每次对固定位置写一次,擦一次。而本方法写N次,写满整个索引扇区,再擦一次,使用效率提高N倍,延长了使用寿命。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种使用FLASH进行高效数据存储的方法,其特征在于,在FLASH中划分索引扇区和动态参数扇区,索引扇区包括N个索引存储区,动态参数扇区包括M个动态参数存储区,每个索引存储区中均保存有动态参数存储区号和CRC校验码,动态参数存储区号指示当前索引对应的动态参数保存的存储区地址,动态参数存储区用于保存动态参数,该方法包括如下步骤:
(1.1)开机运行,索引存储区号置0;
(1.2)读取索引存储区号中的索引,并计算索引中的动态参数存储区号的CRC校验码,与索引中的CRC校验码进行比较,如二者一致,索引数据完整,如二者不一致,索引数据不完整;
(1.3)若不完整,则表明当前无有效动态参数,设置索引存储区号=0,退出;若完整,进行步骤(1.4);
(1.4)索引存储区号+1,读取索引,采用步骤1.2中的方法判断读取到的索引数据的完整性;
(1.5)若不完整,进行步骤(1.6);若完整,判断是否为最后一个地址,如果是,则进行步骤(1.7),否则,进行步骤(1.4);
(1.6)索引存储区号-1;
(1.7)读取索引,得到动态参数存储区号,读取动态参数。
2.如权利要求1所述的使用FLASH进行高效数据存储的方法,其特征在于,N个索引存储区大小一致连续存储,M个动态参数存储区大小一致连续存储。
3.如权利要求1或2所述的使用FLASH进行高效数据存储的方法,其特征在于,索引存储区的数量N等于动态参数存储区的数量M。
4.如权利要求1所述的使用FLASH进行高效数据存储的方法,其特征在于,所述CRC校验码是对动态参数存储区号进行校验产生的校验码。
5.如权利要求3所述的使用FLASH进行高效数据存储的方法,其特征在于,校验方法为CRC循环冗余校验。
6.一种使用FLASH进行高效数据存储的方法,其特征在于,在FLASH中划分索引扇区和动态参数扇区,索引扇区包括N个索引存储区,动态参数扇区包括M个动态参数存储区,每个索引存储区中均保存有动态参数存储区号和CRC校验码,动态参数存储区号指示当前索引对应的动态参数保存的存储区地址,动态参数存储区用于保存动态参数,该方法包括如下步骤:
(2.1)接收动态参数,动态参数存储区号+1;
(2.2)写动态参数到动态参数存储区号指定的地址;
(2.3)动态参数存储区中数据读出校验判断;
(2.4)若校验通过,进行步骤(2.5);否则,判断是否进行过扇区擦除操作,如果是,命令执行失败,否则,进行扇区擦除,进行步骤(2.2);
(2.5)索引存储区号+1;
(2.6)写索引到索引存储区号对应的索引存储区;
(2.7)索引存储区中数据读出校验判断;
(2.8)若校验通过,则指令正确执行;否则,判断是否进行过扇区擦除操作,如果是,命令执行失败,否则,进行扇区擦除,进行步骤(2.6)。
7.如权利要求6所述的使用FLASH进行高效数据存储的方法,其特征在于,N个索引存储区大小一致连续存储,M个动态参数存储区大小一致连续存储。
8.如权利要求6或7所述的使用FLASH进行高效数据存储的方法,其特征在于,索引存储区的数量N等于动态参数存储区的数量M。
9.如权利要求6所述的使用FLASH进行高效数据存储的方法,其特征在于,所述CRC校验码是对动态参数存储区号进行校验产生的校验码。
10.如权利要求9所述的使用FLASH进行高效数据存储的方法,其特征在于,校验方法为CRC循环冗余校验。
CN202110545321.XA 2021-05-19 2021-05-19 一种使用flash进行高效数据存储的方法 Active CN113204316B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110545321.XA CN113204316B (zh) 2021-05-19 2021-05-19 一种使用flash进行高效数据存储的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110545321.XA CN113204316B (zh) 2021-05-19 2021-05-19 一种使用flash进行高效数据存储的方法

Publications (2)

Publication Number Publication Date
CN113204316A true CN113204316A (zh) 2021-08-03
CN113204316B CN113204316B (zh) 2024-08-06

Family

ID=77031846

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110545321.XA Active CN113204316B (zh) 2021-05-19 2021-05-19 一种使用flash进行高效数据存储的方法

Country Status (1)

Country Link
CN (1) CN113204316B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115904256A (zh) * 2023-02-20 2023-04-04 中电装备山东电子有限公司 一种数据存储方法及存储器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127004A (zh) * 2007-09-24 2008-02-20 中兴通讯股份有限公司 一种在闪存上存取数据的系统及方法
CN101231617A (zh) * 2008-01-21 2008-07-30 中兴通讯股份有限公司 闪存设备的数据处理方法
CN105183392A (zh) * 2015-09-18 2015-12-23 广州日滨科技发展有限公司 一种定长数据在flash的存储方法
CN106155915A (zh) * 2015-04-16 2016-11-23 中兴通讯股份有限公司 数据存储的处理方法及装置
US20170010833A1 (en) * 2013-12-24 2017-01-12 Feitian Technologies Co., Ltd. Data writing and reading methods for flash

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127004A (zh) * 2007-09-24 2008-02-20 中兴通讯股份有限公司 一种在闪存上存取数据的系统及方法
CN101231617A (zh) * 2008-01-21 2008-07-30 中兴通讯股份有限公司 闪存设备的数据处理方法
US20170010833A1 (en) * 2013-12-24 2017-01-12 Feitian Technologies Co., Ltd. Data writing and reading methods for flash
CN106155915A (zh) * 2015-04-16 2016-11-23 中兴通讯股份有限公司 数据存储的处理方法及装置
CN105183392A (zh) * 2015-09-18 2015-12-23 广州日滨科技发展有限公司 一种定长数据在flash的存储方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115904256A (zh) * 2023-02-20 2023-04-04 中电装备山东电子有限公司 一种数据存储方法及存储器
CN115904256B (zh) * 2023-02-20 2023-06-13 中电装备山东电子有限公司 一种数据存储方法及存储器

Also Published As

Publication number Publication date
CN113204316B (zh) 2024-08-06

Similar Documents

Publication Publication Date Title
US6034897A (en) Space management for managing high capacity nonvolatile memory
EP1228510B1 (en) Space management for managing high capacity nonvolatile memory
KR101613678B1 (ko) 전력 손실 이후의 비-휘발성 메모리에 대한 복원
CN103106143B (zh) 固态储存装置及其逻辑至实体对应表建立方法
EP2306321A1 (en) Increasing memory performance in flash memory devices by performing simultaneous write operation to multiple devices
KR20020009564A (ko) 메모리 시스템
CN104765569A (zh) 数据写入方法、存储器控制电路单元与存储器储存装置
CN107045423B (zh) 存储器装置及其数据存取方法
CN113885808A (zh) 映射信息记录方法以及存储器控制电路单元与存储装置
CN103136111A (zh) 数据写入方法、存储器控制器与存储器储存装置
CN103218300B (zh) 数据处理方法、存储器控制器与存储器储存装置
CN113204316A (zh) 一种使用flash进行高效数据存储的方法
CN110532195A (zh) 存储器系统的工作负荷分簇及执行其的方法
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
US20160041759A1 (en) Storage system and data transmitting method thereof
CN102591738B (zh) 数据管理方法、存储器控制器与嵌入式存储器储存装置
CN102087632B (zh) 用于闪存的数据储存方法及其控制器与储存系统
CN111258498B (zh) 一种flash存储器管理方法
CN113885791A (zh) Flash存储器的数据写入方法、读取方法和装置
CN105573661A (zh) 数据写入方法、存储器存储装置及存储器控制电路单元
CN111966302B (zh) 一种基于逻辑物理映射表的SPI Nand数据写入方法
CN116185891B (zh) 描述符管理方法
US20240319919A1 (en) Memory system and method for controlling non-volatile memory
KR100521155B1 (ko) 플래시 메모리의 정보기록장치 및 그 방법
CN117539395A (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