CN103309619A - 一种闪存数据存储方法 - Google Patents

一种闪存数据存储方法 Download PDF

Info

Publication number
CN103309619A
CN103309619A CN2012100711127A CN201210071112A CN103309619A CN 103309619 A CN103309619 A CN 103309619A CN 2012100711127 A CN2012100711127 A CN 2012100711127A CN 201210071112 A CN201210071112 A CN 201210071112A CN 103309619 A CN103309619 A CN 103309619A
Authority
CN
China
Prior art keywords
page
leaf
data
former
data storage
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
CN2012100711127A
Other languages
English (en)
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.)
Nationz Technologies Inc
Original Assignee
Nationz Technologies Inc
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 Nationz Technologies Inc filed Critical Nationz Technologies Inc
Priority to CN2012100711127A priority Critical patent/CN103309619A/zh
Publication of CN103309619A publication Critical patent/CN103309619A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开了一种闪存数据存储方法,将对闪存的写入操作和块擦除操作完全分隔开,避免了在对闪存做写入操作时,发生“块搬家”现象;从而显著提升对闪存的有效数据写入速度。对以闪存为存储介质的存储设备,进行文件写入时,其数据速率波动大的问题;采用本发明将显著提高小文件写入速度,达到与大文件写入速度同一级别;对于大文件的写入速度,也有相当程度的提升。本发明对以闪存为存储介质的存储设备,可以提高设备的稳定性,提升设备的兼容性。

Description

一种闪存数据存储方法
技术领域
本发明涉及数据存储技术领域,具体涉及NAND闪存数据存储技术领域。
背景技术
NAND FLASH(资料存储型闪存)由于具有容量高、价格低的优势,在电子产品中有着极其广泛的应用。如图1所示,在NAND FLASH的架构中,有块(Block)和页(Page)两种数据管理单元,其中块由一定数量的页组成(例如:64页、128页、256页等)。NAND FLASH的读取和编程操作,是以页(Page)为单位进行,而擦除操作,则是以块(Block)为单位进行。而且NAND FLASH必须要先擦除,才能被写入数据(编程)。这就产生了一个问题,若是改写某一个页(Page)上存储的数据,则需要对该页(Page)所位于的块(Block)进行擦除操作;而在块擦除时,不仅会将该页的原有数据清空,而且还会清除掉该块(Block)内其它页(Page)上的有效数据。
常规的NAND FLASH存储管理的技术方案,是建一个块(Block)映射表,用于映射线性逻辑块地址到真实的物理块地址;并预先保留一定数量的备用块;当然,还建专门的表结构对NAND FLASH中的坏块进行管理。当发生需要改写某页数据时,则取出一个预先擦除好的备用块,将新数据写到备用块的对应页位置;然后,将原数据块中其它含有效数据的页(Page)中的数据读出;再写入到备用块的相应的页(Page)位置;最后,再将该备用块(Block)填入块映射表中原数据块对应的位置,即取代原数据块,而原来的数据块则转为备用块;这样才完成一次数据改写的操作。这一数据转移动作俗称为“块搬家”。
正常情况下,当往NAND FLASH写入一页数据时,仅需要花费1个页(Page)的数据传输及其编程的时间;而当需要改写某页数据,即“块搬家”发生时,假设一个块(Block)包含N个页(Page),花费的时间最长可能为:N个页的写数据传输时间和编程时间,再加上(N-1)个页的读数据传输时间和页读取的等待时间;目前的主流NAND FLASH,其N值通常为128,或者256,也即,若往NAND FLASH写数据如果发生“块搬家”时,其花费的时间可能为正常写数据时间的数百倍。
对以NAND FLASH为存储介质(如U盘,SD卡等)的存储设备进行文件写入操作时,若是对大文件操作,其“块搬家”发生的次数较少,表现为写入速度还较快;而对小文件操作时,特别是对一批小文件进行操作,“块搬家”发生会非常频繁,表现为写入速度极慢。
另外,站在主机系统底层驱动的角度看,只要“块搬家”发生,均会导致主机往NAND FLASH写入数据时时间超长,有可能会超过主机系统的忍耐限度,从而导致某主机系统对该NAND FLASH存储设备操作不稳定。
发明内容
本发明解决的技术问题是提出一种闪存数据存储方法,实现了在数据存储时将NAND FLASH基于页(Page)的写入(编程)和基于块(Block)的擦除完全分隔开。
本发明提出的闪存数据存储方法,包括以下写数据处理过程:确定待写入数据的原页地址,并判断所述原页是否为空白页;如果为空白页,则向所述原页地址写入数据,完成写数据处理;否则,确定一个为空白页的替代页,将所述替代页与所述原页的映射关系写入所述原页的冗余区,并向所述替代页地址写入数据,完成写数据处理。
进一步的,在所述确定待写入数据的原页地址处理之前还包括:建立用于记录所述闪存各页状态的页状态表。
进一步的,所述判断所述原页是否为空白页的处理为:通过查询所述页状态表判断所述原页是否为空白页。
进一步的,所述确定一个为空白页的替代页的处理为:通过查找所述页状态表,选定一个空白页,将空白页确定为替代页。
进一步的,所述建立用于记录所述闪存各页状态的页状态表为:建立由分散存储的多个子表构成的页状态表,所述每个子表记录至少一个页的状态。
进一步的,所述的页状态表中标识的页状态选择项包括:有效数据页、无效数据页、空白页和损坏页。
进一步的,所述将所述替代页与所述原页的映射关系写入所述原页的冗余区为:将所述替代页的地址写入所述原页的冗余区。
进一步的,所述向原页地址写入数据后还包括以下处理过程:在页状态表中将原页的页状态选择项设置为有效数据页。
进一步的,所述向所述替代页地址写入数据后还包括以下处理过程:在页状态表中将替代页的页状态选择项设置为有效数据页,将原页的页状态选择项设置为无效数据页。
本发明提出的闪存数据存储方法,将对闪存的写入操作和块擦除操作完全分隔开,避免了在对闪存做写入操作时,发生“块搬家”现象;从而显著提升对闪存的有效数据写入速度。对以闪存为存储介质(如U盘,SD卡等)的存储设备,进行文件写入时,其数据速率波动大的问题(比如对小文件的写入速度,远低于大文件的写入速度);采用本发明将显著提高小文件写入速度,达到与大文件写入速度同一级别;对于大文件的写入速度,也有相当程度的提升。本发明对以闪存为存储介质的存储设备,可以提高设备的稳定性,提升设备的兼容性。
附图说明
图1是NAND闪存中的数据管理机制原理图;
图2是本发明一种实施方式提出的NAND闪存数据存储方法流程图。
具体实施方式
下面结合附图,并通过实施例对本发明的实现进行详细说明。
本发明对于NAND(资料存储型)闪存,首先按照传统的方式,即使用逻辑块映射表,备用块表和坏块表等对NAND FLASH中的块(Block)进行管理。也就是将NAND FLASH中的块划分为数据块区,备用块区和坏块区;当然,还保留了若干块用于特殊用途(例如:用于存储管理等)。
本发明对数据块区中的数据块的所有页(逻辑页),预先建立页状态表,该页状态表用于确定所要查询的目标页是否为空白页,状态表中的字段包括:页逻辑地址和页状态选择项。在一种实施中页状态选择项包括:有效数据页、无效数据页、空白页和损坏页。此外页状态表的存储方式也可以进行灵活处理,可以采用一颗闪存芯片内对各页设置一个总的页状态表。也可以针对闪存芯片中的各块分别设置页状态表,即采用分散存储的多个子表构成页状态表,每个子表记录对应区块内至少一个页的状态信息。
每个数据页(Page)包括数据(Main)区和冗余(Spare)区。其中Main区用于存储该页的数据,冗余区用来存储该页的一些参数信息。本发明中由于将页逻辑地址和数据进行了分离,因此需要将两个关联页的映射关系写入原页的冗余区中,数据写入另一个选定的空白页中。在具体实施时,还可以在页的冗余区构建一个页信息数据结构,该数据结构至少需要标识出:该页与替代页之间的映射关系。最简单的映射关系记录方式可以为:将替代页的地址写入冗余区。还可以记录该数据页的状态等信息,如数据有效无效,该页是否坏页等等。
如图2所示,为本发明一种实施方式提出的NAND闪存数据存储方式。需要预先在NAND闪存中建立页状态表,并定义各页的冗余区的数据结构。可以按照上述的方式进行。然后写如数据的处理过程包括以下步骤:
步骤一:确定待写入数据的原页逻辑地址,通过查询页状态表判断所述原页的状态信息。
步骤二:判断原页是否为空白页;如果为空白页,则转入步骤四;如果不是原页,则转入步骤三。
步骤三:通过查找页状态表,选定一个空白页,将空白页确定为替代页;并将替代页的地址写入原页的冗余区。
步骤四:写入数据。即:如果原页为空白页,将数据写入原页;如果原页不是空白页,将数据写入替代页。
上述在向原页地址写入数据后还包括以下处理步骤:在页状态表中将原页的页状态选择项设置为有效数据页。
上述向替代页地址写入数据后还包括以下处理步骤:在页状态表中将替代页的页状态选择项设置为有效数据页,将原页的页状态选择项设置为无效数据页。
此外,还可以利用设备的空闲时间,对NAND FLASH页状态表中,标识出的无效数据页进行处理,例如:清除数据页中的无效数据内容等。
本发明提出的NAND FLASH存储方法,还可用于实现NAND FLASH基于页的磨损均衡。
以上所述实施例,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种闪存数据存储方法,包括以下写数据处理过程:确定待写入数据的原页地址,并判断所述原页是否为空白页;如果为空白页,则向所述原页地址写入数据,完成写数据处理;否则,确定一个为空白页的替代页,将所述替代页与所述原页的映射关系写入所述原页的冗余区,并向所述替代页地址写入数据,完成写数据处理。
2.根据权利要求1所述的闪存数据存储方法,其特征在于,在所述确定待写入数据的原页地址处理之前还包括:建立用于记录所述闪存各页状态的页状态表。
3.根据权利要求2所述的闪存数据存储方法,其特征在于,所述判断所述原页是否为空白页的处理为:通过查询所述页状态表判断所述原页是否为空白页。
4.根据权利要求2所述的闪存数据存储方法,其特征在于,所述确定一个为空白页的替代页的处理为:通过查找所述页状态表,选定一个空白页,将空白页确定为替代页。
5.根据权利要求2-4任一项所述的闪存数据存储方法,其特征在于,所述建立用于记录所述闪存各页状态的页状态表为:建立由分散存储的多个子表构成的页状态表,所述每个子表记录至少一个页的状态。
6.根据权利要求2-4任一项所述的闪存数据存储方法,其特征在于,所述的页状态表中标识的页状态选择项包括:有效数据页、无效数据页、空白页和损坏页。
7.根据权利要求1-5任一项所述的闪存数据存储方法,其特征在于,所述将所述替代页与所述原页的映射关系写入所述原页的冗余区为:将所述替代页的地址写入所述原页的冗余区。
8.根据权利要求6所述的闪存数据存储方法,其特征在于,所述向原页地址写入数据后还包括以下处理过程:在页状态表中将原页的页状态选择项设置为有效数据页。
9.根据权利要求6所述的闪存数据存储方法,其特征在于,所述向所述替代页地址写入数据后还包括以下处理过程:在页状态表中将替代页的页状态选择项设置为有效数据页,将原页的页状态选择项设置为无效数据页。
CN2012100711127A 2012-03-16 2012-03-16 一种闪存数据存储方法 Pending CN103309619A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012100711127A CN103309619A (zh) 2012-03-16 2012-03-16 一种闪存数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012100711127A CN103309619A (zh) 2012-03-16 2012-03-16 一种闪存数据存储方法

Publications (1)

Publication Number Publication Date
CN103309619A true CN103309619A (zh) 2013-09-18

Family

ID=49134894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012100711127A Pending CN103309619A (zh) 2012-03-16 2012-03-16 一种闪存数据存储方法

Country Status (1)

Country Link
CN (1) CN103309619A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105006251A (zh) * 2014-10-30 2015-10-28 华邦电子股份有限公司 Nand型闪存及其程序化方法
CN107015918A (zh) * 2017-03-31 2017-08-04 建荣半导体(深圳)有限公司 一种闪存管理系统、方法及闪存芯片
CN110471628A (zh) * 2019-08-21 2019-11-19 深圳市时创意电子有限公司 一种可减少数据页分散的数据存储方法
CN110580130A (zh) * 2019-08-21 2019-12-17 天津大学 一种防止电源中断影响的将数据写入闪存模块的方法
CN110688084A (zh) * 2019-10-14 2020-01-14 深圳市蓝度汽车电控技术有限公司 一种先入先出的flash数据存储方法、系统及终端
CN111324287A (zh) * 2018-12-14 2020-06-23 北京兆易创新科技股份有限公司 一种存储器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260769A1 (en) * 2006-03-28 2007-11-08 Arndt Richard L Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages
CN101441891A (zh) * 2007-11-19 2009-05-27 芯邦科技(深圳)有限公司 一种利用闪存的方法
CN101446922A (zh) * 2007-11-29 2009-06-03 慧国(上海)软件科技有限公司 存储卡及于闪存进行资料更新的方法
CN101539887A (zh) * 2009-05-06 2009-09-23 美商威睿电通公司 快闪存储器管理方法与计算机系统
CN101930345A (zh) * 2010-08-24 2010-12-29 苏州国芯科技有限公司 一种基于块访问的闪存读写方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260769A1 (en) * 2006-03-28 2007-11-08 Arndt Richard L Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages
CN101441891A (zh) * 2007-11-19 2009-05-27 芯邦科技(深圳)有限公司 一种利用闪存的方法
CN101446922A (zh) * 2007-11-29 2009-06-03 慧国(上海)软件科技有限公司 存储卡及于闪存进行资料更新的方法
CN101539887A (zh) * 2009-05-06 2009-09-23 美商威睿电通公司 快闪存储器管理方法与计算机系统
CN101930345A (zh) * 2010-08-24 2010-12-29 苏州国芯科技有限公司 一种基于块访问的闪存读写方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105006251A (zh) * 2014-10-30 2015-10-28 华邦电子股份有限公司 Nand型闪存及其程序化方法
CN105006251B (zh) * 2014-10-30 2016-06-29 华邦电子股份有限公司 Nand型闪存及其程序化方法
US9514826B2 (en) 2014-10-30 2016-12-06 Winbond Electronics Corp. Programming method for NAND-type flash memory
CN107015918A (zh) * 2017-03-31 2017-08-04 建荣半导体(深圳)有限公司 一种闪存管理系统、方法及闪存芯片
CN107015918B (zh) * 2017-03-31 2019-11-05 建荣半导体(深圳)有限公司 一种闪存管理系统、方法及闪存芯片
CN111324287A (zh) * 2018-12-14 2020-06-23 北京兆易创新科技股份有限公司 一种存储器
CN110471628A (zh) * 2019-08-21 2019-11-19 深圳市时创意电子有限公司 一种可减少数据页分散的数据存储方法
CN110580130A (zh) * 2019-08-21 2019-12-17 天津大学 一种防止电源中断影响的将数据写入闪存模块的方法
CN110471628B (zh) * 2019-08-21 2022-12-02 深圳市时创意电子有限公司 一种可减少数据页分散的数据存储方法
CN110688084A (zh) * 2019-10-14 2020-01-14 深圳市蓝度汽车电控技术有限公司 一种先入先出的flash数据存储方法、系统及终端

Similar Documents

Publication Publication Date Title
US7516296B2 (en) Flash memory storage device and read/write method
US8762627B2 (en) Memory logical defragmentation during garbage collection
EP2519880B1 (en) Micro-update architecture for address tables
CN101645043B (zh) 写数据的方法、读数据的方法及存储设备
CN109977034B (zh) 数据储存装置以及非挥发式存储器操作方法
US20180089074A1 (en) Techniques to Manage Key-Value Storage at a Memory or Storage Device
CN104699413B (zh) 数据管理方法、存储器存储装置及存储器控制电路单元
EP1771862B1 (en) Method and device to improve usb flash write performance
CN107301016A (zh) 用于垃圾收集的有效性跟踪
CN101604548B (zh) 一种固态硬盘及数据存储方法
CN102576332A (zh) 电力中断管理
CN101494085B (zh) 防止非易失性存储器发生读取干扰的方法及其控制器
CN103309619A (zh) 一种闪存数据存储方法
US9037814B2 (en) Flash memory management method and flash memory controller and storage system using the same
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN101320594A (zh) 一种闪存芯片的物理操作方法
CN103970669A (zh) 用于加速在固态设备中的回收操作的物理到逻辑地址映射
CN104699417A (zh) 数据储存装置以及其数据存取方法
CN103049224A (zh) 将数据导入物理磁带的方法、装置和系统
CN101425338B (zh) 非易失性存储器的写入方法及使用此方法的控制器
CN102200946B (zh) 资料存取方法、记忆体控制器与储存系统
CN103914391B (zh) 数据读取方法、存储器控制器与存储器存储装置
CN102981975A (zh) 闪存数据的管理方法和系统
CN110262980B (zh) 基于有限寿命存储介质的高速存储系统
CN102543184B (zh) 存储器储存装置、其存储器控制器与数据写入方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20130918