CN106407130A - 一种Nandflash内存数据管理的方法 - Google Patents

一种Nandflash内存数据管理的方法 Download PDF

Info

Publication number
CN106407130A
CN106407130A CN201610821450.6A CN201610821450A CN106407130A CN 106407130 A CN106407130 A CN 106407130A CN 201610821450 A CN201610821450 A CN 201610821450A CN 106407130 A CN106407130 A CN 106407130A
Authority
CN
China
Prior art keywords
data
block
current
area
memory
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.)
Pending
Application number
CN201610821450.6A
Other languages
English (en)
Other versions
CN106407130A8 (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.)
Shenzhen Echarging New Energy Shenzhen Co ltd
Original Assignee
Shenzhen Echarging New Energy Shenzhen 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 Shenzhen Echarging New Energy Shenzhen Co ltd filed Critical Shenzhen Echarging New Energy Shenzhen Co ltd
Priority to CN201610821450.6A priority Critical patent/CN106407130A/zh
Publication of CN106407130A publication Critical patent/CN106407130A/zh
Publication of CN106407130A8 publication Critical patent/CN106407130A8/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment

Landscapes

  • Engineering & Computer Science (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

本发明公开了一种Nandflash内存数据管理的方法;包括下述步骤:S1:对内存块进行分区并对数据内存块进行初始化;S2:对数据参数进行初始化;S3:对数据进行写入操作;S4:对数据参数进行更新处理;S5:对数据进行读取操作Nandflash用于存储数据,对现在设备普遍要求的大容量存储空间适应性强,且价格大众化能普遍接受。此新型基于Nandflash内存数据管理的方法正是在管理数据应用中有较好的便利性和实用性,针对Nandflash内存分块存储,跨块操作时易出现坏块和频繁擦除内存块,影响重要数据存储的特点,结合实际存储数据内容和大小进行有效的数据分区管理,定义统一操作接口方便代码移植。

Description

一种Nandflash内存数据管理的方法
技术领域
本发明属于Nandflash内存分区管理技术领域,更具体地,涉及一种Nandflash内存数据管理的方法。
背景技术
Nandflash写入速度快、芯片面积小,特别是大容量使其优势明显。页是Nandflash中的基本存贮单元,一页一般为512 B(也有2 kB每页的large page Nandflash),多个页面组成块。不同存储器内的块内页面数不尽相同,通常以16页或32页比较常见。块容量计算公式比较简单,就是页面容量与块内页面数的乘积。根据FLASH Memory容量大小,不同存储器中的块、页大小可能不同,块内页面数也不同。Nandflash存储器由多个块串行排列组成。实际上,Nand型的FlashMemory可认为是顺序读取的设备,仅用8 b的I/O端口就可以存取按页为单位的数据。Nandflash在读和擦写文件、特别是连续的大文件时速度相当快,而操作Nandflash时会出现一些异常数据现象导致保存重要数据时容易出现问题,根据设备应用场景会引发一系列问题,最常见问题就是读写数据时内存块损坏导致数据丢失或存储失效。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种Nandflash内存数据管理的方法,旨在解决现有技术中读写数据时内存块损坏导致数据丢失或存储失效的问题。
本发明提供的Nandflash内存数据管理的方法,包括下述步骤:
S1:对内存块进行分区并对数据内存块进行初始化;
S2:对数据参数进行初始化;
S3:对数据进行写入操作;
S4:对数据参数进行更新处理;
S5:对数据进行读取操作。
更进一步地,根据以下原则对内存块进行分区:按照实际需要存储的数据类型进行分类,根据数据容量需求进行单个内存块内最大容量的数据分配,并计算所需求数据容量下的最大内存块数目。
更进一步地,所述内存块分为:数据参数区、A类数据区、B类数据区、C类数据区、D类数据区、数据备份区和数据参数备份区;各个区的容量分别为:4K*H、4K*S1、4K* S2、4K*S3、4K* S4、4K* S5和4K*H;其中,其中,K为Kbyte,一千字节, S1、S2、S3、S4、S5分别为当前数据需要存储的容量,H为存储数据类型的数量。
更进一步地,在步骤S1中,对数据内存块进行初始化具体为:根据数据内存块分区定义每种数据类型起始地址和结束地址;根据所述起始地址和结束地址来判断初始化是否成功,若是,则对内存块进行擦除操作并创建类型数据参数管理区后结束;若否,则结束。
更进一步地,步骤S2中,对数据参数进行初始化具体为:根据数据类型查询当前数据参数管理区当前数据区是否有效且数据块是否损坏,如果正常且数据校验正确,则读取当前数据参数内容返回;如果异常且数据校验错误,则查询当前数据类型对应的备份区域;读取备份区域校验数据,如果异常则重新创建数据参数管理区。
更进一步地,步骤S3中,写入数据具体为:从数据参数管理区获取数据参数,根据当前存储的管理参数查找当前存储的地址位置;判断当前待存储数据内容是否超过当前块的剩余存储区域;如果未超过,则获取数据校验值,将当前数据写入备份区域,判断当前块是否损坏,如果损坏则擦除当前数据块,读取备份区域数据,将数据写入到当前数据块中;如果正常则直接写入当前数据块;将数据管理参数更新;如果数据长度超过,则判断存储区域是否超过当前块剩余存储区域,如果成立,则存储地址移动到下一个存储块,写入数据及更新数据管理区;如果未成立则判断是否超过存储地址的最后一个存储块,超过则存储地址移动到第一个存储块首地址,做数据覆盖处理,擦除当前块写入数据及更新数据管理区。
更进一步地,步骤S4中,对数据参数进行更新具体为:读取当前数据管理区参数,校验当前数据参数,判断当前存储地址是否超过当前存储块区域,如果超过则将数据写入数据参数备份区域,判断当前块是否损坏,擦除当前数据块,读取备份区域数据参数,写入到当前数据区域。如果未超过当前存储区域,则获取数据校验值,写入到当前数据参数管理区域。
更进一步地,步骤S5中,读取数据具体为:从数据区域读取数据时,判断需要读取的数据长度是否超过数据总量,如果超过则返回错误;如果未超过,则从数据管理参数区获取当前数据存储地址和首次存储的数据地址,根据读取的数据地址判断读取操作是否跨内存块,如果跨块,则根据分区数据地址计算当前有效存储起始地址及数据区块号,读取数据到缓存。如果未跨块,则直接读取数据到缓存。
本发明具有以下几方面的优点:
(1)本发明在使用过程中根据需要增加新的数据时,可以按照原先定义的分区方式规划数据内存空间,使得数据分区清晰;同时在数据内存管理方面大大降低了开发人员对芯片内存的管理难度,方便增加新的存储数据类型。
(2)本发明中由于代码为标准C语言类型编写和数据定义,在比如ucos、RTOS、linux等操作系统上可以很好实现兼容,无需对其中的内容做改动便可实现调用,移植性好,方便在其他微处理器系统上使用。
(3)本发明中由于代码内部按照优化算法处理数据的定义、存储、更新和删除等常用数据管理方法,针对比如数据管理方面并不很熟练的开发人员,因为每个API都有专门详细的注释和定义,所以只需要简单外部调用即可;代码封装性好,方便软件开发人员管理和使用。
(4)本发明针对Nandflash数据存储特点,在操作内存块时相对容易产生坏块或者数据读写的错误异常,专门编写控制算法来进行数据读写的校验,实现最大程度的降低操作数据时的异常风险,对重要数据实现完好保存并正常读写;大大降低操作Nandflash数据存储时的数据异常风险。
附图说明
图1为Nandflash内存块分区图;其中,S1、S2、S3、S4、S5为当前数据需要存储的容量;H表示存储数据类型的数量;
图2为本发明实施例提供的Nandflash内存数据管理的方法中数据内存块初始化流程图;
图3为本发明实施例提供的Nandflash内存数据管理的方法中数据参数初始化流程图;
图4为本发明实施例提供的Nandflash内存数据管理的方法中数据写入流程图;
图5为本发明实施例提供的Nandflash内存数据管理的方法中数据管理参数流程图;
图6为本发明实施例提供的Nandflash内存数据管理的方法中数据读取流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供了一种新型基于Nandflash内存数据管理的方法。本发明包括Nandflash内存分区,数据内存块初始化,数据管理参数初始化,分区内存数据写入,分区内存数据读取,分区数据管理参数更新;本发明以微处理器系统为核心,针对产品所产生的有效数据实现快速的正确的写入与读取。
如图1 所示,按照实际需要存储的数据类型进行分类,根据数据容量需求进行单个内存块内最大容量的数据分配 ,计算所需求数据容量下的最大内存块数目。根据数据类型分配一定的数据备份区域以便内存块数据异常时进行数据中转处理。
如图2所示,数据内存块初始化处理,根据数据内存块分区定义每种数据类型起始和结束地址,创建数据参数管理区,对应各自数据类型。
如图3所示,根据数据类型查询当前数据参数管理区当前数据区是否有效且数据块是否损坏,如果正常且数据校验正确,则读取当前数据参数内容返回;如果异常且数据校验错误,则查询当前数据类型对应的备份区域;读取备份区域校验数据,如果异常则重新创建数据参数管理区。
如图4所示,从数据参数管理区获取数据参数,根据当前存储的管理参数查找当前存储的地址位置;判断当前待存储数据内容是否超过当前块的剩余存储区域;如果未超过,则获取数据校验值,将当前数据写入备份区域,判断当前块是否损坏,如果损坏则擦除当前数据块,读取备份区域数据,将数据写入到当前数据块中;如果正常则直接写入当前数据块;将数据管理参数更新;如果数据长度超过,则判断存储区域是否超过当前块剩余存储区域,如果成立,则存储地址移动到下一个存储块,写入数据及更新数据管理区;如果未成立则判断是否超过存储地址的最后一个存储块,超过则存储地址移动到第一个存储块首地址,做数据覆盖处理,擦除当前块写入数据及更新数据管理区。
如图5所示,读取当前数据管理区参数,校验当前数据参数,判断当前存储地址是否超过当前存储块区域,如果超过则将数据写入数据参数备份区域,判断当前块是否损坏,擦除当前数据块,读取备份区域数据参数,写入到当前数据区域。如果未超过当前存储区域,则获取数据校验值,写入到当前数据参数管理区域。
如图6所示,从数据区域读取数据时,判断需要读取的数据长度是否超过数据总量,如果超过则返回错误;如果未超过,则从数据管理参数区获取当前数据存储地址和首次存储的数据地址,根据读取的数据地址判断读取操作是否跨内存块,如果跨块,则根据分区数据地址计算当前有效存储起始地址及数据区块号,读取数据到缓存。如果未跨块,则直接读取数据到缓存。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种Nandflash内存数据管理的方法,其特征在于,包括下述步骤:
S1:对内存块进行分区并对数据内存块进行初始化;
S2:对数据参数进行初始化;
S3:对数据进行写入操作;
S4:对数据参数进行更新处理;
S5:对数据进行读取操作。
2.如权利要求1所述的方法,其特征在于,根据以下原则对内存块进行分区:按照实际需要存储的数据类型进行分类,根据数据容量需求进行单个内存块内最大容量的数据分配,并计算所需求数据容量下的最大内存块数目。
3.如权利要求2所述的方法,其特征在于,所述内存块分为:数据参数区、A类数据区、B类数据区、C类数据区、D类数据区、数据备份区和数据参数备份区;各个区的容量分别为:4K*H、4K*S1、4K* S2、4K* S3、4K* S4、4K* S5和4K*H;其中,K为Kbyte,S1、S2、S3、S4、S5分别为当前数据需要存储的容量,H为存储数据类型的数量。
4.如权利要求1-3任一项所述的方法,其特征在于,在步骤S1中,对数据内存块进行初始化具体为:
根据数据内存块分区定义每种数据类型起始地址和结束地址;
根据所述起始地址和结束地址来判断初始化是否成功,若是,则对内存块进行擦除操作并创建类型数据参数管理区后结束;若否,则结束。
5.如权利要求1所述的方法,其特征在于,步骤S2中,对数据参数进行初始化具体为:
根据数据类型查询当前数据参数管理区当前数据区是否有效且数据块是否损坏,如果正常且数据校验正确,则读取当前数据参数内容返回;如果异常且数据校验错误,则查询当前数据类型对应的备份区域;读取备份区域校验数据,如果异常则重新创建数据参数管理区。
6.如权利要求1所述的方法,其特征在于,步骤S3中,写入数据具体为:
从数据参数管理区获取数据参数,根据当前存储的管理参数查找当前存储的地址位置;判断当前待存储数据内容是否超过当前块的剩余存储区域;如果未超过,则获取数据校验值,将当前数据写入备份区域,判断当前块是否损坏,如果损坏则擦除当前数据块,读取备份区域数据,将数据写入到当前数据块中;如果正常则直接写入当前数据块;将数据管理参数更新;如果数据长度超过,则判断存储区域是否超过当前块剩余存储区域,如果成立,则存储地址移动到下一个存储块,写入数据及更新数据管理区;如果未成立则判断是否超过存储地址的最后一个存储块,超过则存储地址移动到第一个存储块首地址,做数据覆盖处理,擦除当前块写入数据及更新数据管理区。
7.如权利要求1所述的方法,其特征在于,步骤S4中,对数据参数进行更新具体为:
读取当前数据管理区参数,校验当前数据参数,判断当前存储地址是否超过当前存储块区域,如果超过则将数据写入数据参数备份区域,判断当前块是否损坏,擦除当前数据块,读取备份区域数据参数,写入到当前数据区域,如果未超过当前存储区域,则获取数据校验值,写入到当前数据参数管理区域。
8.如权利要求1所述的方法,其特征在于,步骤S5中,读取数据具体为:
从数据区域读取数据时,判断需要读取的数据长度是否超过数据总量,如果超过则返回错误;如果未超过,则从数据管理参数区获取当前数据存储地址和首次存储的数据地址,根据读取的数据地址判断读取操作是否跨内存块,如果跨块,则根据分区数据地址计算当前有效存储起始地址及数据区块号,读取数据到缓存,如果未跨块,则直接读取数据到缓存。
CN201610821450.6A 2016-09-12 2016-09-12 一种Nandflash内存数据管理的方法 Pending CN106407130A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610821450.6A CN106407130A (zh) 2016-09-12 2016-09-12 一种Nandflash内存数据管理的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610821450.6A CN106407130A (zh) 2016-09-12 2016-09-12 一种Nandflash内存数据管理的方法

Publications (2)

Publication Number Publication Date
CN106407130A true CN106407130A (zh) 2017-02-15
CN106407130A8 CN106407130A8 (zh) 2017-03-29

Family

ID=57999234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610821450.6A Pending CN106407130A (zh) 2016-09-12 2016-09-12 一种Nandflash内存数据管理的方法

Country Status (1)

Country Link
CN (1) CN106407130A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111448543A (zh) * 2017-12-07 2020-07-24 华为技术有限公司 内存访问技术及计算机系统
CN112506918A (zh) * 2020-11-03 2021-03-16 深圳市宏电技术股份有限公司 数据存取方法、终端及计算机可读存储介质
CN112596808A (zh) * 2020-12-16 2021-04-02 微网智控(北京)科技有限公司 一种嵌入式系统的参数存储机制
CN112908390A (zh) * 2021-02-02 2021-06-04 深圳市显控科技股份有限公司 数据存储方法、装置、电子设备及存储介质
CN112988609A (zh) * 2019-12-02 2021-06-18 杭州海康机器人技术有限公司 数据处理方法、装置、存储介质和客户端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070204271A1 (en) * 2006-02-28 2007-08-30 Andrew Gaiarsa Method and system for simulating a multi-CPU/multi-core CPU/multi-threaded CPU hardware platform
CN101477480A (zh) * 2009-02-05 2009-07-08 华为技术有限公司 内存控制方法、装置及内存读写系统
CN101499034A (zh) * 2009-03-05 2009-08-05 北京中星微电子有限公司 内存管理方法
CN101763279A (zh) * 2010-01-15 2010-06-30 上海维宏电子科技有限公司 一种BootLoader架构设计方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070204271A1 (en) * 2006-02-28 2007-08-30 Andrew Gaiarsa Method and system for simulating a multi-CPU/multi-core CPU/multi-threaded CPU hardware platform
CN101477480A (zh) * 2009-02-05 2009-07-08 华为技术有限公司 内存控制方法、装置及内存读写系统
CN101499034A (zh) * 2009-03-05 2009-08-05 北京中星微电子有限公司 内存管理方法
CN101763279A (zh) * 2010-01-15 2010-06-30 上海维宏电子科技有限公司 一种BootLoader架构设计方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111448543A (zh) * 2017-12-07 2020-07-24 华为技术有限公司 内存访问技术及计算机系统
CN111448543B (zh) * 2017-12-07 2021-10-01 华为技术有限公司 内存访问技术及计算机系统
US11784756B2 (en) 2017-12-07 2023-10-10 Huawei Technologies Co., Ltd. Memory access technology and computer system
CN112988609A (zh) * 2019-12-02 2021-06-18 杭州海康机器人技术有限公司 数据处理方法、装置、存储介质和客户端
CN112988609B (zh) * 2019-12-02 2023-05-02 杭州海康机器人股份有限公司 数据处理方法、装置、存储介质和客户端
CN112506918A (zh) * 2020-11-03 2021-03-16 深圳市宏电技术股份有限公司 数据存取方法、终端及计算机可读存储介质
CN112506918B (zh) * 2020-11-03 2024-06-04 深圳市宏电技术股份有限公司 数据存取方法、终端及计算机可读存储介质
CN112596808A (zh) * 2020-12-16 2021-04-02 微网智控(北京)科技有限公司 一种嵌入式系统的参数存储机制
CN112908390A (zh) * 2021-02-02 2021-06-04 深圳市显控科技股份有限公司 数据存储方法、装置、电子设备及存储介质
CN112908390B (zh) * 2021-02-02 2023-07-28 深圳市显控科技股份有限公司 数据存储方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN106407130A8 (zh) 2017-03-29

Similar Documents

Publication Publication Date Title
CN106407130A (zh) 一种Nandflash内存数据管理的方法
TWI692690B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN102081577B (zh) 对Flash存储器的数据存储结构进行数据操作的方法
JP5213965B2 (ja) 1セル当り単一ビットnandフラッシュメモリをエミュレートする1セル当り多ビットnandフラッシュメモリ用コントローラ
CN108733510A (zh) 数据储存装置及映射表重建方法
US20110231713A1 (en) Flash memory module
CN109117383B (zh) 管理闪存模块的方法和闪存控制器
CN105740157A (zh) 数据储存装置以及快闪存储器控制方法
EP3352071B1 (en) Data check method and storage system
CN103365786B (zh) 数据存储方法、装置和系统
CN108073522A (zh) 可用于数据储存装置的垃圾搜集方法
CN109783396A (zh) 存取闪存模块的方法及相关的闪存控制器与电子装置
CN109918024B (zh) 存储管理方法、装置、单片机设备和可读存储介质
CN106020735A (zh) 一种数据存储方法及数据存储装置
CN105867834A (zh) 存储装置数据整理方法
CN107291374A (zh) 纪录数据区块的使用时间的方法及其装置
CN109669889A (zh) 一种轻量型Nor Flash闪存控制方法和装置
CN105808378A (zh) 元数据修复方法及装置
US20080059693A1 (en) Method for improving lifespan of flash memory
CN106484308A (zh) 数据保护方法、存储器控制电路单元及存储器储存装置
CN109240856A (zh) 一种存储元数据损坏模拟方法、装置、终端及存储介质
TWI657339B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器
CN107783725A (zh) 数据存储的方法、装置以及非易失性存储器
CN105868046B (zh) 存储装置中管理、写入及加载固件代码的方法
CN105867833A (zh) 数据存储装置及数据存储方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
CI01 Publication of corrected invention patent application

Correction item: Applicant

Correct: New energy (Shenzhen) Co., Ltd.

False: Shenzhen easy to fill new energy (Shenzhen) Co., Ltd.

Number: 07

Volume: 33

CI01 Publication of corrected invention patent application
CI02 Correction of invention patent application

Correction item: Applicant

Correct: New energy (Shenzhen) Co., Ltd.

False: Shenzhen easy to fill new energy (Shenzhen) Co., Ltd.

Number: 07

Page: The title page

Volume: 33

CI02 Correction of invention patent application
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170215

RJ01 Rejection of invention patent application after publication