CN110427161B - 一种用于串行闪存的数据存储方法 - Google Patents

一种用于串行闪存的数据存储方法 Download PDF

Info

Publication number
CN110427161B
CN110427161B CN201910742080.0A CN201910742080A CN110427161B CN 110427161 B CN110427161 B CN 110427161B CN 201910742080 A CN201910742080 A CN 201910742080A CN 110427161 B CN110427161 B CN 110427161B
Authority
CN
China
Prior art keywords
data
storage area
data length
sensor
writing
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
Application number
CN201910742080.0A
Other languages
English (en)
Other versions
CN110427161A (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.)
Shandong Yuanda-Llongwill Educational Science And Technology Ltd
Original Assignee
Shandong Yuanda-Llongwill Educational Science And Technology 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 Shandong Yuanda-Llongwill Educational Science And Technology Ltd filed Critical Shandong Yuanda-Llongwill Educational Science And Technology Ltd
Priority to CN201910742080.0A priority Critical patent/CN110427161B/zh
Publication of CN110427161A publication Critical patent/CN110427161A/zh
Application granted granted Critical
Publication of CN110427161B publication Critical patent/CN110427161B/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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]
    • 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)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种用于串行闪存的数据存储方法,是将存储芯片的存储区域划分为数据存储区和数据长度存储区;传感器在每次上电工作后先从数据存储区和数据长度存储区的起始地址开始擦除一个扇区;在写数据时,先在数据存储区写入一个数据,再在数据长度存储区中对应的地址上写入0,以数据长度存储区中0的个数来记录数据的数量;在读数据时先通过读取并记录数据长度存储区0字节的个数得知数据长度,再根据数据的长度去读取数据。上述方法的写入方式能够每写入一个数据就记录一下数据长度,能够将因传感器断电所带来的数据损失降到最低,解决了数据存储中因芯片擦除时间长而导致传感器准备时间长的问题以及传感器突然断电导致的存储信息不完整的问题。

Description

一种用于串行闪存的数据存储方法
技术领域
本发明涉及一种用于串行NOR Flash存储器的数据存储方法,特别是传感器数据的存储,属于数据存储领域。
背景技术
在很多需要采集传感器数据的场合,尤其是教学领域,需要对采集到的传感器数据进行存储,并在需要的时候将采集到的数据读出分析。串行NOR Flash作为一种小体积存储器,是一种电可擦除可编程存储器,允许在操作中多次擦写。具有占空间小,需要的数据线少的特点,能够很大程度上降低传感器系统的存储成本和电路板空间。
然而串行NOR Flash也存在操作指令复杂、写数据前必须先擦除且擦除时间较长的缺点,由于Flash存储器自身的特点,Flash写入操作只能将相应的数据位清零而无法置1,只能通过擦除操作将相应的数据位置1。
在实际使用中,很多的应用场景要求传感器一上电工作就通过存储器存储数据,这就需要存储器中先擦除之前存储的数据,而多数串行NOR Flash的最短的整片擦除时间需要30秒左右,最长的整片擦除时间往往都在一分钟以上,擦除时间过长导致了传感器工作前需要较长的准备时间。
另外,在实际的使用中往往也会存在传感器会突然断电的情况,断电后就会导致存储信息不完整,进而无法正确的读出数据。
发明内容
本发明针对NOR Flash存储器的现有存储方法,提供一种用于串行闪存的数据存储方法,该方法不但能够解决传感器数据存储中因NOR Flash芯片擦除时间长而导致传感器准备时间长的问题,也能够解决传感器突然断电导致的存储信息不完整的问题。
本发明用于串行闪存的数据存储方法,是:
将存储芯片的存储区域划分为数据存储区和数据长度存储区;传感器在每次上电工作后,先从数据存储区和数据长度存储区的起始地址开始擦除一个扇区;在写数据时,先在数据存储区写入一个数据,再在数据长度存储区中对应的地址上写入0,以数据长度存储区中0的个数来记录数据的数量;在读数据时先通过读取并记录数据长度存储区0字节的个数得知数据长度,再根据数据的长度去读取数据。
所述数据长度存储区在通过写入0记录数据长度的过程中,当写到本扇区倒数第2个字节的时候提前擦除下一扇区,保证下一扇区的字节不为0。从而避免在写本扇区最后1个字节时传感器断电导致无法擦除下一扇区,而下一扇区的字节内容又为0导致无法正确读取传感器数据长度的情况。
上述方法的写入方式能够每写入一个数据就记录一下数据长度,而不是将所有数据都写入后再写入数据长度。这种存储方式虽然需要占用更多的存储空间,但能够将因传感器断电所带来的数据损失降到最低。在这种写入方式下,即使在写入数据长度时传感器出现了断电的情况,也仅仅是丢失一个数据而已。
本发明的方法解决了传感器数据存储中因NOR Flash芯片擦除时间长而导致传感器准备时间长的问题,也能够解决传感器突然断电导致的存储信息不完整的问题。
附图说明
图1是本发明用于串行闪存的数据存储方法中的写数据操作流程图。
图2是本发明用于串行闪存的数据存储方法中的读数据操作流程图。
具体实施方式
根据NOR Flash存储器的特点,NOR Flash具有整片擦除时间过长的缺点,但当以扇区为单位来擦除的时候,每个扇区擦除时间大约在100毫秒左右。根据以上特点,且传感器数据多为单一类型的数据,每个数据所占字节数是固定的,因此存储信息时只需要存储实际数据和数据的长度即可。
根据以上特点,本发明的方法是将存储芯片的存储区域划分为数据存储区和数据长度存储区。传感器在每次上电工作后先从数据存储区和数据长度存储区的起始地址开始擦除一个扇区;这样可以以极短的时间获得一个扇区的空白区域来写数据,保证了传感器一上电工作就能够有空间存储数据。在写数据时,先在数据存储区写入一个数据,再在数据长度存储区中对应的地址上写入0,以数据长度存储区中0的个数来记录数据的数量。在读数据时先通过读取并记录数据长度存储区0字节的个数就可以得知数据长度,再根据数据的长度去读取数据。
数据长度存储区在通过写入0记录数据长度的过程中,当写到本扇区倒数第2个字节的时候提前擦除下一扇区,保证下一扇区的字节不为0。从而避免在写本扇区最后1个字节时传感器断电导致无法擦除下一扇区,而下一扇区的字节内容又为0导致无法正确读取传感器数据长度的情况。
以华邦公司的W25Q64FV存储芯片为例说明,W25Q64FV为串行NOR Flash存储芯片,此存储芯片共8M字节的存储空间,包含2048个扇区。每个扇区4K字节。扇区擦除时间为60毫秒,整片擦除时间为20秒。
根据W25Q64FV的以上特点,结合传感器数据的存储需要,定义每个传感器数据占4个字节。从W25Q64FV中0地址开始分配出4兆字节的存储空间用来存储数据,即数据的存储地址空间为0~0x400000;从W25Q64FV中0x500000地址开始分配出1兆空间用来存储数据长度,即数据长度的存储空间为0x500000~0x600000。每个传感器的数据长度为4字节,即每4兆字节的数据空间对应1兆字节的数据长度空间。
如图1所示,写入传感器数据操作步骤:
1、擦除以地址0开始的4k扇区,使本扇区的存储空间里的数据都变成0xFF;擦除以地址0x500000开始的4k扇区,使本扇区的存储空间里的数据都变成0xFF。
2、将第1个数据写到以0地址开始的4个字节上。
3、向数据长度存储区的0x500000地址上写入0。
4、将第2个数据写到以地址4开始的4个字节上。
5、向数据长度存储区的0x500001地址上写入0。
......
6、将第1024个数据写到以地址4092开始的4个字节上。
7、向数据长度存储区的0x500400地址上写入0。
8、擦除数据存储区中以地址4096开始的4k扇区,使本扇区的存储空间里的数据都变成0xFF。
9、将第1025个数据写到数据存储区中以地址4096开始的4个字节上。
7、向数据长度存储区的0x500401地址上写入0。
......
8、将第4094个数据写到数据存储区中以地址16376开始的4个字节上。
9、向数据长度存储区的0x500FFE地址上写入0。
10、擦除以地址0x501000开始的4k扇区,使本扇区的存储空间里的数据都变成0xFF。
(第10步的目的是提前擦除数据长度存储区的下一扇区,即数据长度存储区存到地址0x500FFE时就擦除下一扇区。提前擦除可保证0x500FFE后面至少有2个都为0xFF的字节,即保证地址0x500FFF和地址0x501000上的数据都为0xFF。如果不做提前擦除处理,而是等数据长度存储区存到了0x500FFF再去擦除以地址0x501000开始的4k扇区的话,在这个擦除的过程中传感器断电了的话就可能导致擦除操作失败,而传感器的数据长度是通过读取地址存储区中数据0的个数来获得的,如果地址0x501000上的数据是0x00的话就会导致无法正常获取到传感器的数据长度。而提前擦除操作则可以避免以上情况的出现)
11、将第4095个数据写到数据存储区中以地址16380开始的4个字节上。
12、向数据长度存储区0x500FFF地址上写入0。
13、将第4096个数据写到数据存储区中以地址16384开始的4个字节上。
14、向数据长度存储区地址0x501000地址上写入0。
......
如图2所示,读取传感器数据操作步骤:
1、从数据长度存储区的0x500000地址开始查找并记录0x00的个数,直至遇到地址上的数据为0xFF为止。所记录的0x00的个数就是所存储数据的长度。
2、按照数据的长度从数据存储区的0地址上开始读取数据。

Claims (2)

1.一种用于串行闪存的数据存储方法,其特征是:
将存储芯片的存储区域划分为数据存储区和数据长度存储区;传感器在每次上电工作后先从数据存储区和数据长度存储区的起始地址开始擦除一个扇区;在写数据时,先在数据存储区写入一个数据,再在数据长度存储区中对应的地址上写入0,以数据长度存储区中0的个数来记录数据的数量;在读数据时先通过读取并记录数据长度存储区0字节的个数得知数据长度,再根据数据的长度去读取数据;每个数据所占字节数是固定的。
2.根据权利要求1所述用于串行闪存的数据存储方法,其特征是:所述数据长度存储区在通过写入0记录数据长度的过程中,当写到本扇区倒数第2个字节的时候提前擦除下一扇区,保证下一扇区的字节不为0。
CN201910742080.0A 2019-08-09 2019-08-09 一种用于串行闪存的数据存储方法 Active CN110427161B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910742080.0A CN110427161B (zh) 2019-08-09 2019-08-09 一种用于串行闪存的数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910742080.0A CN110427161B (zh) 2019-08-09 2019-08-09 一种用于串行闪存的数据存储方法

Publications (2)

Publication Number Publication Date
CN110427161A CN110427161A (zh) 2019-11-08
CN110427161B true CN110427161B (zh) 2023-02-14

Family

ID=68415713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910742080.0A Active CN110427161B (zh) 2019-08-09 2019-08-09 一种用于串行闪存的数据存储方法

Country Status (1)

Country Link
CN (1) CN110427161B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114816271A (zh) * 2022-06-02 2022-07-29 上海磐启微电子有限公司 一种应用于闪存的数据存储方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102572330A (zh) * 2010-12-29 2012-07-11 厦门华侨电子股份有限公司 一种液晶电视机Flash芯片的数据读取、写入和擦除的方法
US9785362B2 (en) * 2015-07-16 2017-10-10 Qualcomm Incorporated Method and apparatus for managing corruption of flash memory contents
CN107391030B (zh) * 2017-06-26 2020-04-28 日立楼宇技术(广州)有限公司 数据存储方法、装置、计算机可读存储介质以及计算机设备

Also Published As

Publication number Publication date
CN110427161A (zh) 2019-11-08

Similar Documents

Publication Publication Date Title
EP1729304B1 (en) Space management for managing high capacity nonvolatile memory
JP4688584B2 (ja) ストレージ装置
US6134151A (en) Space management for managing high capacity nonvolatile memory
US7725646B2 (en) Method of using a flash memory for a circular buffer
US10073771B2 (en) Data storage method and system thereof
CN103608866A (zh) 用于闪存存储器的数据擦除方法及装置
US10089225B2 (en) Improving garbage collection efficiency by reducing page table lookups
US9569354B2 (en) System and method to emulate an electrically erasable programmable read-only memory
US20190065361A1 (en) Method for writing data into flash memory module and associated flash memory controller and electronic device
US10929303B2 (en) Data storage device utilizing virtual blocks to improve performance and data storage method thereof
CN111061649B (zh) 一种存储器的存储空间自适应分配方法
CN107045423B (zh) 存储器装置及其数据存取方法
KR20060133561A (ko) 플래시 메모리용 데이터 기록 방법
CN110427161B (zh) 一种用于串行闪存的数据存储方法
JP2007505415A (ja) フラッシュメモリにおける削除されたブロックの管理
US20160124650A1 (en) Data Storage Device and Flash Memory Control Method
CN108228095B (zh) 一种基于Flash进行实时信息记录的方法
CN113885791A (zh) Flash存储器的数据写入方法、读取方法和装置
CN111949198A (zh) 一种坏块管理方法、装置和存储设备
US8312205B2 (en) Method for identifying a page of a block of flash memory, and associated memory device
CN111160052B (zh) 用户信息保存方法、装置及存储介质、光模块
CN109407963A (zh) 一种实现存储管理的方法及装置
US20240118812A1 (en) Memory chip, operating method thereof, and judging method
CN109753240B (zh) 一种采用垃圾回收机制的数据存储方法
JP4661086B2 (ja) 不揮発性記憶装置および不揮発性メモリの消去方法と書込み方法

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