CN107632941A - 一种提高闪存写入性能的方法 - Google Patents
一种提高闪存写入性能的方法 Download PDFInfo
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
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所述的一种提高闪存写入性能的方法,其特征在于,所述将数据分为大批量数据和小单元数据的依据为:连续地址的数据视为大批量数据,非连续地址或复写的数据视为小单元数据。
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)
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)
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优化方法 |
-
2017
- 2017-08-16 CN CN201710700312.7A patent/CN107632941A/zh active Pending
Patent Citations (5)
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 (4)
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数据写入方法 |
CN111966302B (zh) * | 2020-08-26 | 2024-07-09 | 江苏扬贺扬微电子科技有限公司 | 一种基于逻辑物理映射表的SPI Nand数据写入方法 |
CN112486580A (zh) * | 2020-12-01 | 2021-03-12 | 中国船舶重工集团公司第七一六研究所 | 一种实现VxWorks操作***快速启动的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109725847B (zh) | 存储器***及控制方法 | |
CN106708427B (zh) | 一种适用于键值对数据的存储方法 | |
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) | 저장 디바이스들이 낮은 과도 공급으로 낮은 기입 증폭을 달성하기 위한 방법 | |
US7594062B2 (en) | Method for changing data of a data block in a flash memory having a mapping area, a data area and an alternative area | |
JP5571691B2 (ja) | 記憶装置におけるマッピングアドレステーブルの維持 | |
CN102779096B (zh) | 一种基于页块面三维的闪存地址映射方法 | |
US9183142B2 (en) | Reducing flash memory write amplification and latency | |
US9436615B2 (en) | Optimistic data read | |
CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
WO2009131851A1 (en) | Method and system for storage address re-mapping for a multi-bank memory device | |
CN103858125B (zh) | 重复数据处理方法、装置及存储控制器和存储节点 | |
CN106201335B (zh) | 存储*** | |
CN102023810B (zh) | 一种写数据的方法、装置以及廉价冗余磁盘阵列 | |
KR20090115917A (ko) | 시퀀스 번호 랩 어라운드 장치, 방법 및 물품 | |
CN101493794A (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) | 一种提高闪存写入性能的方法 | |
US20140281132A1 (en) | Method and system for ram cache coalescing | |
US8261013B2 (en) | Method for even utilization of a plurality of flash memory chips | |
CN105159842A (zh) | 存储***数据写时拷贝的处理方法和处理装置 | |
CN105278875A (zh) | 一种混合异构nand固态硬盘 | |
CN108845822B (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 | ||
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 |