CN107632941A - 一种提高闪存写入性能的方法 - Google Patents

一种提高闪存写入性能的方法 Download PDF

Info

Publication number
CN107632941A
CN107632941A CN201710700312.7A CN201710700312A CN107632941A CN 107632941 A CN107632941 A CN 107632941A CN 201710700312 A CN201710700312 A CN 201710700312A CN 107632941 A CN107632941 A CN 107632941A
Authority
CN
China
Prior art keywords
block
data
dynamic
page
dynamic block
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
CN201710700312.7A
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.)
Nanjing Yang Yang Microelectronics Technology Co Ltd
Original Assignee
Nanjing Yang Yang Microelectronics Technology 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 Nanjing Yang Yang Microelectronics Technology Co Ltd filed Critical Nanjing Yang Yang Microelectronics Technology Co Ltd
Priority to CN201710700312.7A priority Critical patent/CN107632941A/zh
Publication of CN107632941A publication Critical patent/CN107632941A/zh
Pending legal-status Critical Current

Links

Abstract

本发明公开了一种提高闪存写入性能的方法,将数据分为大批量数据和小单元数据,针对大批量数据采用块表映射,并顺序写入块地址;针对小单元数据,采用页表映射,以堆栈方式写入空白页;设置若干个动态块里的页作为页表映射地址,动态块同时遵循块表映射,动态块写满时对动态块进行替换;当某个动态块的数据是连续地址写入并写满,则认定写入数据为大批量数据,立即将该动态块整理为数据块,更新块映射表,该动态块变为空白动态块用来替换。该方法能够减少了闪存块单元的擦除次数,提高了闪存寿命,明显地提升了闪存写入性能。

Description

一种提高闪存写入性能的方法
技术领域
本发明属于闪存性能管理领域,具体为一种提高闪存写入性能的方法。
背景技术
由于闪存(Flash)的擦除单元是块(Block),而写入单元是比块小的页(Page)和扇区(Sector),所以,为了保留数据的完整性,在对闪存管理的时候不得不经常做大量的资料复制操作,从而降低了写入性能。
FAT/FAT32文件系统对闪存进行写入资料的时候,由于文件系统写入资料的同时还要写文件分配表,目录等小单元数据,这些小单元数据的逻辑地址并不连续,并且复写的概率很高,而与这些小单元数据同在一个块地址的其他数据必须保留下来,所以闪存管理模块不得不把这些要保留的数据复制到空白块,擦除当前旧块(如图一所示),这样就需要额外做擦除和复制的操作,大大降低了写入速度,同时也降低了闪存的使用寿命(闪存的擦除次数有寿命限制)。
发明内容
本发明旨在克服现有技术的不足,提供一种对闪存进行管理的方法,能够提高闪存写入性能了,尤其针对FAT/FAT32文件系统。本发明提供的一种提高闪存写入性能的方法,将数据分为大批量数据和小单元数据,针对大批量数据采用块表映射,并顺序写入块地址;针对小单元数据,采用页表映射,以堆栈方式写入空白页;
设置若干个动态块,将所述动态块的页作为页表映射地址,动态块同时遵循块表映射,动态块写满时对动态块进行替换;
当某个动态块的数据是连续地址写入并写满,则认定写入数据为大批量数据,立即将该动态块整理为数据块,更新块映射表,该动态块变为空白动态块用来替换。
进一步的,所述的设置若干个动态块里的页作为页表映射地址,动态块同时也遵循块表映射,动态块写满时对对动态块进行替换具体过程为:
步骤1,首先定义若干个动态块,优先使用空白动态块用于存入大批量数据;
步骤2,查询页映射表,将小批量数据存入页映射表中空白页所对应的动态块地址中;
步骤3,当所述动态块全部被占用,把堆栈最深的动态块整理为数据块;
步骤4,根据页映射表,将最新的资料复制到数据块,更新块映射表;
步骤5,将原先储存所述最新的数据的动态块更新为空白动态块用来替换。
作为一种优选,将所述方法应用于FAT/FAT32文件系统中时,所述动态块数量为3至5个。
进一步的,所述动态块分布在引导区、目录区、文件分配表区以及数据区。
更进一步的,所述将数据分为大批量数据和小单元数据的依据为:连续地址的数据视为大批量数据,非连续地址或复写的数据视为小单元数据。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
本发明管理方法能够减少了闪存块单元的擦除次数,提高了闪存寿命。
本文对闪存的管理方法明显地提升了闪存写入性能。例如,应用于SD卡控制器,在相同频率下,可以将速率等级从class4提升至class6。
附图说明
图1为现有技术中闪存管理块的方法示意图;
图2为本发明方法中小单元数据复写方法示意图;
图3为本发明方法中动态块整理方法示意图;
图4为本发明方法中大批量数据块整理方法示意图;
图5为实施例2的示意图;
图6为实施例3的示意图。
具体实施方式
本发明的实施提供一种提高闪存写入性能的方法,为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明提供的解决方案:
1)连续地址的数据视为大批量数据,采用块表映射,顺序写入块地址。
2)非连续地址或复写的数据视为小单元数据,采用页表映射,以堆栈的方式写入空白页,更新页表,如图2所示。
3)对于有内存大小限制的微控制器,页表映射不能无限制大,因此采用几个动态块里的页作为页表映射地址,动态块同时也遵循块表映射,动态块写满则替换。
4)根据FAT/FAT32文件系统原理,经常交替写入的区块分为引导区、目录区、文件分配表区和数据区,因此,动态块的数量选择在3~5个较为合理,可以达到各个区块的平均分配。
动态块的替换规则:
1)首先优先使用空白动态块。
2)当动态块全部被占用,把堆栈最深的动态块整理为数据块:根据页映射表,将有用的资料复制到数据块,如图3所示。更新块映射表,该动态块变为空白动态块用来替换。
3)当某个动态块的数据是连续地址写入并写满,则认定写入数据为大批量数据,立即将该动态块整理为数据块,更新块映射表,该动态块变为空白动态块用来替换,如图3所示。
实例1:用户写入数据的地址是0,数据长度是128,那么这次写入是大批量数据写入,我们可以直接写入某个物理块(块里面的页是顺序的),假设是2,则逻辑块地址0和物理块地址2是一一对应的,填入块表。
实例2:用户写入数据的地址和长度依次是:地址0,长度2;地址3,长度1;地址3,长度1;地址2,长度1;地址5,长度6……,这样的数据就是非连续地址的小单元数据,我们采用页表映射的方式,如图5所示:
实例3:用户写入数据的地址是0,假设我们有3个动态块,均已占用,分别对应地址10,20,30,那么我们需要整理一个动态块,释放出空白动态块给地址0使用,如图6所示:
我们会整理动态块20,因为动态块20里的地址是顺序的,并且已经写满,所以动态块20被整理为数据块,释放出来一个动态块写入地址0的数据。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种提高闪存写入性能的方法,其特征在于,将数据分为大批量数据和小单元数据,针对大批量数据采用块表映射,并顺序写入块地址;针对小单元数据,采用页表映射,以堆栈方式写入空白页;
设置若干个动态块,将所述动态块的页作为页表映射地址,动态块同时遵循块表映射,动态块写满时对动态块进行替换;
当某个动态块的数据是连续地址写入并写满,则认定写入数据为大批量数据,立即将该动态块整理为数据块,更新块映射表,该动态块变为空白动态块用来替换。
2.根据权利要求1所述的一种提高闪存写入性能的方法,其特征在于,所述的设置若干个动态块里的页作为页表映射地址,动态块同时也遵循块表映射,动态块写满时对对动态块进行替换具体过程为:
步骤1,首先定义若干个动态块,优先使用空白动态块用于存入大批量数据;
步骤2,查询页映射表,将小批量数据存入页映射表中空白页所对应的动态块地址中;
步骤3,当所述动态块全部被占用,把堆栈最深的动态块整理为数据块;
步骤4,根据页映射表,将最新的资料复制到数据块,更新块映射表;
步骤5,将原先储存所述最新的数据的动态块更新为空白动态块用来替换。
3.根据权利要求2所述的一种提高闪存写入性能的方法,其特征在于,将所述方法应用于FAT/FAT32文件系统中时,所述动态块数量为3至5个。
4.根据权利要求2所述的一种提高闪存写入性能的方法,其特征在于,对逻辑地址经过计算得到逻辑块和逻辑页,将所述动态块分布在引导区、目录区、文件分配表区以及数据区。
5.根据权利要求1所述的一种提高闪存写入性能的方法,其特征在于,所述将数据分为大批量数据和小单元数据的依据为:连续地址的数据视为大批量数据,非连续地址或复写的数据视为小单元数据。
CN201710700312.7A 2017-08-16 2017-08-16 一种提高闪存写入性能的方法 Pending CN107632941A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710700312.7A CN107632941A (zh) 2017-08-16 2017-08-16 一种提高闪存写入性能的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710700312.7A CN107632941A (zh) 2017-08-16 2017-08-16 一种提高闪存写入性能的方法

Publications (1)

Publication Number Publication Date
CN107632941A true CN107632941A (zh) 2018-01-26

Family

ID=61100167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710700312.7A Pending CN107632941A (zh) 2017-08-16 2017-08-16 一种提高闪存写入性能的方法

Country Status (1)

Country Link
CN (1) CN107632941A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110059021A (zh) * 2019-04-18 2019-07-26 深圳市时创意电子有限公司 一种降低写入放大率并提升随机写入性能的算法
CN111966302A (zh) * 2020-08-26 2020-11-20 南京扬贺扬微电子科技有限公司 一种基于逻辑物理映射表的SPI Nand数据写入方法
CN112486580A (zh) * 2020-12-01 2021-03-12 中国船舶重工集团公司第七一六研究所 一种实现VxWorks操作系统快速启动的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030167A (zh) * 2007-01-17 2007-09-05 忆正存储技术(深圳)有限公司 闪存的区块管理方法
CN102339255A (zh) * 2010-07-16 2012-02-01 安凯(广州)微电子技术有限公司 一种Nand写平衡处理方法
CN102819494A (zh) * 2012-07-18 2012-12-12 山东华芯半导体有限公司 一种闪存顺序写入时的优化方法
CN102841851A (zh) * 2012-07-19 2012-12-26 深圳市江波龙电子有限公司 闪存管理方法和闪存设备
CN106547703A (zh) * 2016-10-08 2017-03-29 华中科技大学 一种基于块组结构的ftl优化方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030167A (zh) * 2007-01-17 2007-09-05 忆正存储技术(深圳)有限公司 闪存的区块管理方法
CN102339255A (zh) * 2010-07-16 2012-02-01 安凯(广州)微电子技术有限公司 一种Nand写平衡处理方法
CN102819494A (zh) * 2012-07-18 2012-12-12 山东华芯半导体有限公司 一种闪存顺序写入时的优化方法
CN102841851A (zh) * 2012-07-19 2012-12-26 深圳市江波龙电子有限公司 闪存管理方法和闪存设备
CN106547703A (zh) * 2016-10-08 2017-03-29 华中科技大学 一种基于块组结构的ftl优化方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110059021A (zh) * 2019-04-18 2019-07-26 深圳市时创意电子有限公司 一种降低写入放大率并提升随机写入性能的算法
CN111966302A (zh) * 2020-08-26 2020-11-20 南京扬贺扬微电子科技有限公司 一种基于逻辑物理映射表的SPI Nand数据写入方法
CN112486580A (zh) * 2020-12-01 2021-03-12 中国船舶重工集团公司第七一六研究所 一种实现VxWorks操作系统快速启动的方法及装置

Similar Documents

Publication Publication Date Title
US7844772B2 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
US9244833B2 (en) Data-storage device and flash memory control method
KR101982251B1 (ko) 저장 디바이스들이 낮은 과도 공급으로 낮은 기입 증폭을 달성하기 위한 방법
CN101493794B (zh) 一种闪存数据处理方法及装置
US20140089564A1 (en) Method of data collection in a non-volatile memory
EP2631916A1 (en) Data deletion method and device
US8635399B2 (en) Reducing a number of close operations on open blocks in a flash memory
CN102779096B (zh) 一种基于页块面三维的闪存地址映射方法
US9183142B2 (en) Reducing flash memory write amplification and latency
KR20110117099A (ko) 메모리 장치에서 맵핑 어드레스 테이블을 유지관리하는 방법
WO2009131851A1 (en) Method and system for storage address re-mapping for a multi-bank memory device
CN104899156A (zh) 一种面向大规模社交网络的图数据存储及查询方法
CN103858125B (zh) 重复数据处理方法、装置及存储控制器和存储节点
CN103608782A (zh) Lsb页面和msb页面中的选择性数据存储
CN106201335B (zh) 存储系统
US20160098355A1 (en) Optimistic data read
WO2011072538A1 (zh) Nandflash擦除均衡的方法及装置
CN103365786B (zh) 数据存储方法、装置和系统
CN107239412A (zh) 基于Thin‑LUN的存储空间配置方法、数据写入方法及存储设备
US20140331024A1 (en) Method of Dynamically Adjusting Mapping Manner in Non-Volatile Memory and Non-Volatile Storage Device Using the Same
CN107632941A (zh) 一种提高闪存写入性能的方法
CN107239526A (zh) 文件系统实现方法、碎片整理方法、操作位置定位方法
US20140281132A1 (en) Method and system for ram cache coalescing
US20170139616A1 (en) Method of decreasing write amplification factor and over-provisioning of nand flash by means of diff-on-write approach
US8261013B2 (en) Method for even utilization of a plurality of flash memory chips

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
CB02 Change of applicant information

Address after: 210000 12 -80, bu Yue Road, Qiaolin street, Pukou District, Nanjing, Jiangsu, China. 12

Applicant after: Nanjing Yang Yang Microelectronics Technology Co., Ltd.

Address before: 210000 Chupu 20, 905 Yu He road, Pukou District, Nanjing, Jiangsu

Applicant before: Nanjing Yang Yang Microelectronics Technology Co., Ltd.

CB02 Change of applicant information
RJ01 Rejection of invention patent application after publication

Application publication date: 20180126

RJ01 Rejection of invention patent application after publication