CN101324899A - 一种快速写nand型flash的方法 - Google Patents

一种快速写nand型flash的方法 Download PDF

Info

Publication number
CN101324899A
CN101324899A CNA2008101178275A CN200810117827A CN101324899A CN 101324899 A CN101324899 A CN 101324899A CN A2008101178275 A CNA2008101178275 A CN A2008101178275A CN 200810117827 A CN200810117827 A CN 200810117827A CN 101324899 A CN101324899 A CN 101324899A
Authority
CN
China
Prior art keywords
data
data block
write
flash
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.)
Granted
Application number
CNA2008101178275A
Other languages
English (en)
Other versions
CN101324899B (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.)
Beijing Haier IC Design Co Ltd
Original Assignee
Beijing Haier IC Design 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 Beijing Haier IC Design Co Ltd filed Critical Beijing Haier IC Design Co Ltd
Priority to CN2008101178275A priority Critical patent/CN101324899B/zh
Publication of CN101324899A publication Critical patent/CN101324899A/zh
Application granted granted Critical
Publication of CN101324899B publication Critical patent/CN101324899B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明披露了一种写NAND型FLASH的方法,系统在内存中分别开辟空间存储逻辑扇区转换为物理扇区的索引表、FAT表备份、空FAT表写记录和以数据块为单位的FLASH数据,所述方法包括下列步骤:将拟写入FLASH数据块的数据,按扇区写入数据缓冲区的数据块中;当需要将数据缓冲区某个数据块的数据写入FLASH数据块时,判断所述数据缓冲区数据块对应的FAT表备份中的数据是否为空;若判断结果为空,且空FAT表记录指示相应数据未被写过及相应FAT表未被更新过时,直接将数据缓冲区的所述数据块写入到FLASH数据块。本发明采用空间换时间的方式,提高了对NAND型FLASH写操作的速度。

Description

一种快速写NAND型FLASH的方法
技术领域
本发明涉及一种提高计算机系统中写文件速度的方法,具体是涉及提高写大容量NAND型FLASH中文件速度的方法。
背景技术
随着多媒体技术的迅猛发展,越来越多的数码产品不断涌现,如MP3、PMP、数码相机、数码相框、GPS等等。这些数码产品往往需要内置可擦写非易失的存储设备,而在已有的存储介质中大容量NAND型FLASH往往是这些应用的首选。
NAND型FLASH有其自身读写的特点,其最小的读取单元为页(Page),一般每个页的大小在512字节到4196个字节之间。而NAND型FLASH写入时必须先进行擦除,擦除的最小单位为数据块(BLOCK),一般情况下,数据块BLOCK由16-64个连续的页组成。当擦除区块时,区块内所有页的数据均被擦除。
由于可能存在坏块,NAND型FLASH读写的逻辑地址还需最终转换为物理介质上的物理地址进行操作。转换表冗余分布存储在NAND型FLASH的每页上,记载着其所在的数据块信息,为物理地址到逻辑地址的转换。
在NAND型FLASH上,一般使用FAT16或FAT32文件系统存储文件。FAT系统的一个特点就是利用存储在逻辑地址前端的FAT表作为指针标记文件或目录。FAT表有两个,分别为FAT1和FAT2,FAT2为进行备份之用。在较大的NAND型FLASH上,典型FAT表所占用的空间不足整个物理空间的千分之一。
FAT系统最初设计使用在软盘或是硬盘上面,而对于大文件读取的介质往往是硬盘。为了提高读写速度,硬盘往往自带缓冲。这样,文件系统就可以以简单的策略进行操作。但是,NAND型FLASH在物理上缺乏这样一组缓存。
由于上面介绍的特点,不同的读写操作策略可能在速度上会相差很大,尤其NAND型FLASH是以数据块BLOCK为单位写入,该特点使得在执行写FLASH操作时经常会花费大量时间读回写入扇区所在BLOCK中未更新扇区中的数据,若该数据对系统无意义,则会浪费大量时间,严重影响了读写速度。
发明内容
本发明的目的是针对现有技术中存在的上述问题,提出了一种行之有效的解决方法,切实加快对NAND型FLASH写操作的速度。
为达到上述目的,本发明提出了一种快速写NAND型FLASH的方法,其中系统执行写操作之前,在内存中分别开辟存储将逻辑扇区转换为物理扇区的索引表、FAT表备份、空FAT表写记录和以数据块为单位的数据缓冲区,所述数据块包括多个扇区,用FAT表备份区备份系统FAT表区,用空FAT写记录区记载每个FLASH数据块的数据写入情况;所述方法包括下列步骤:
将拟写入FLASH数据块的数据,按扇区写入数据缓冲区的数据块中;
当需要将数据缓冲区某个数据块的数据写入FLASH数据块时,判断所述数据缓冲区数据块对应的FAT表备份中的数据是否为空;
若判断结果为空,且所述空FAT表记录指示相应数据未被写过,以及相应FAT表未被更新过时,直接将数据缓冲区的所述数据块依据逻辑扇区到物理扇区的索引表写入到FLASH数据块。
可选的是,需要将数据缓冲区数据块的数据写入FLASH数据块是指数据缓冲区无法容纳新的数据块。
优选的是,包括在判断数据缓冲区数据块的全部扇区都被写入的情况下,直接将数据缓冲区该数据块的数据按块写入到FLASH数据块的步骤。
优选的是,包括在判断所写逻辑扇区不在数据缓冲区的数据块中且数据缓冲区未满的情况下,将数据写入空的数据缓冲区中的步骤。
优选的是,包括当所述需写入FLASH的数据缓冲区数据块所对应的FAT表备份中的数据不为空时,或其虽为空,但所述空FAT表记录指示相应数据块数据被写过或相应FAT表被更新过时,读取FLASH上此数据块未更新扇区中的数据到所述数据缓冲区数据块;然后,将此数据缓冲区的数据块的数据按块写入到FLASH。
优选的是,包括当更新FAT表时,在所述空FAT表写记录区中记载当前更新FAT表操作。
优选的是,包括判断数据所属扇区是否在所述数据缓冲区的数据块内,并且在判断结果为是的情况下将数据写入数据缓冲区的数据块内。
本发明由于利用NAND型FLASH和FAT系统的特点,以空间换时间的方式,在系统内部开辟一定大小的存储区域,作为逻辑扇区转换为物理扇区的索引表、FAT表备份、空FAT表写记录、以及BLOCK的缓冲区,并在逻辑扇区读写层下添加一系列对上层透明的控制操作,达到了加快写入速度的效果。
附图说明
下文将参照附图对本发明的具体实施方案进行更详细的举例说明,其中:
图1是本发明的内存空间分配结构图;
图2是本发明的系统初始化过程流程图;
图3是本发明的系统写入扇区的流程图;
图4是本发明的系统结束操作的流程图。
具体实施方式
图1是本发明的内存空间分配结构图。如图所示,本方法需要在系统内存空间中开辟四片空间,分别用于存储逻辑扇区转换为物理扇区的索引表、FAT表备份、空FAT表写记录、以及FLASH的数据块BLOCK的缓冲区,其中,逻辑扇区到物理扇区的索引表可以以每一个逻辑块影射为单位建立一条索引,这样如果逻辑块到物理块的影射关系为F,即物理块=F(对应逻辑块),那么,逻辑扇区A所对应的物理扇区B就为B=D*F(A/D)+A%D,其中D为系统每个块所包含的扇区数,A%D代表A除以D的余数。FAT表备份为系统FAT表区在内存中的备份,空FAT表写记录记载每个数据块BLOCK的写入情况。数据块BLOCK缓冲用于以BLOCK为单位缓冲物理介质FLASH上的数据,其大小可根据系统空间的大小进行调整,最少1个BLOCK容量,优选的是为BLOCK容量的整数倍。
图2是本发明的系统初始化过程流程图。如图所示,系统在开始运行时,首先初始化上述空间,操作如下:
1、读取NAND型FLASH上存储的物理扇区转化为逻辑扇区的信息;
2、根据1所得到的信息建立逻辑扇区转换为物理扇区的索引表;
3、读取NAND型FLASH存储的FAT表到FAT表备份;
4、将空FAT表写记录的每一位置0;
5、清空数据块BLOCK的缓冲区。
图3是本发明的系统写入扇区的流程图。如图所示,系统在写入扇区时,需要进行如下操作:
1、判断所写逻辑扇区是否属于FAT表,如果不是,转到步骤6;
2、更新FAT表备份中的数据;
3、判断FAT表更新部分原来是否为空,如果不是,结束;
4、判断FAT表更新部分所对应的空FAT表写记录的相应位置是否为2,如果是,结束;
5、将FAT表更新部分所对应的空FAT表写记录的相应位置置为1,结束;
6、判断所写逻辑扇区是否在BLOCK缓冲内,如果不是,转到步骤8;
7、将数据写入BLOCK缓冲中,并标记此扇区已经被更新;
8、判断数据缓冲是否已满,即数据缓冲区能容纳新的数据块,如果没满还能够继续容纳,则转到步骤17;
9、确定要写回的区块,原则上优先选择扇区被更新最多的区块;
10、判断此被写回的区块的全部扇区是否都被更新,如果是,转到步骤15;
11、判断此区块所对应的FAT表备份中的数据是否为空,如果是,转到步骤13;
12、判断此区块所对应的空FAT表写记录是否为1,如果是,转到步骤14,如果不是,转到步骤15;
13、判断此区块所对应的空FAT表写记录是否为2,如过不是,转到步骤15;
14、读取物理介质上此区块未更新页中的数据到此区块缓冲;
15、将此区块的数据写入到物理介质,并将此缓冲设为空;
16、将此区块对应的空FAT表写记录的相应位置置为2;
17、将拟写入扇区数据写入空的BLOCK缓冲内。
图4是本发明的系统结束操作的流程图。如图所示,在系统完成读写文件后,还需进行如下收尾工作
1、读取物理介质上全部BLOCK缓冲未更新扇区中的数据到BLOCK缓冲中;
2、将全部BLOCK缓冲中的数据写入到物理介质
3、将FAT表缓冲中的数据写入物理介质
应当说明的是,以上描述旨在说明本发明的具体实施方案,不能理解为对本发明的限制,本发明所要求保护的范围仅由权利要求书进行限制。

Claims (7)

1.一种写NAND型FLASH的方法,其中系统执行写操作之前,在内存中分别开辟存储将逻辑扇区转换为物理扇区的索引表、FAT表备份、空FAT表写记录和以数据块为单位的数据缓冲区,所述数据块包括多个扇区,用FAT表备份区备份系统FAT表区,用空FAT写记录区记载每个FLASH数据块的数据写入情况;
所述方法包括下列步骤:
将拟写入FLASH数据块的数据,按扇区写入数据缓冲区的数据块中;
当需要将数据缓冲区某个数据块的数据写入FLASH数据块时,判断所述数据缓冲区数据块对应的FAT表备份中的数据是否为空;
若判断结果为空,且所述空FAT表记录指示相应数据未被写过,以及相应FAT表未被更新过时,直接将数据缓冲区的所述数据块依据逻辑扇区到物理扇区的索引表写入到FLASH数据块。
2.根据权利要求1所述的写NAND型FLASH方法,其特征在于,需要将数据缓冲区数据块的数据写入FLASH数据块是指数据缓冲区无法容纳新的数据块。
3.根据权利要求2所述的写NAND型FLASH方法,其特征在于,包括在判断数据缓冲区数据块的全部扇区都被写入的情况下,直接将数据缓冲区该数据块的数据按块写入到FLASH数据块的步骤。
4.根据权利要求1所述的写NAND型FLASH方法,其特征在于,包括在判断所写逻辑扇区不在数据缓冲区的数据块中且数据缓冲区未满的情况下,将数据写入空的数据缓冲区中的步骤。
5.根据权利要求1所述的写NAND型FLASH方法,其特征在于,包括当所述需写入FLASH的数据缓冲区数据块所对应的FAT表备份中的数据不为空时,或其虽为空,但所述空FAT表记录指示相应数据块数据被写过或相应FAT表被更新过时,读取FLASH上此数据块未更新扇区中的数据到所述数据缓冲区数据块;然后,将此数据缓冲区的数据块的数据按块写入到FLASH。
6.根据权利要求1所述的写NAND型FLASH方法,其特征在于,包括当更新FAT表时,在所述空FAT表写记录区中记载当前更新FAT表操作。
7.根据权利要求1所述的写NAND型FLASH方法,其特征在于,包括判断数据所属扇区是否在所述数据缓冲区的数据块内,并且在判断结果为是的情况下将数据写入数据缓冲区的数据块内。
CN2008101178275A 2008-08-05 2008-08-05 一种快速写nand型flash的方法 Expired - Fee Related CN101324899B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101178275A CN101324899B (zh) 2008-08-05 2008-08-05 一种快速写nand型flash的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101178275A CN101324899B (zh) 2008-08-05 2008-08-05 一种快速写nand型flash的方法

Publications (2)

Publication Number Publication Date
CN101324899A true CN101324899A (zh) 2008-12-17
CN101324899B CN101324899B (zh) 2010-06-02

Family

ID=40188438

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101178275A Expired - Fee Related CN101324899B (zh) 2008-08-05 2008-08-05 一种快速写nand型flash的方法

Country Status (1)

Country Link
CN (1) CN101324899B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101807212A (zh) * 2010-04-30 2010-08-18 迈普通信技术股份有限公司 嵌入式文件系统的缓存方法及嵌入式文件系统
CN101908023A (zh) * 2010-08-06 2010-12-08 四川长虹电器股份有限公司 NandFlash存储器中数据存储方法
CN102789425A (zh) * 2012-07-17 2012-11-21 上海晟东电力科技有限公司 基于flash存储介质的文件读写方法
CN103970480A (zh) * 2013-01-30 2014-08-06 北京金奔腾汽车科技有限公司 汽车电脑诊断仪sd卡flash刷屏
CN111221750A (zh) * 2018-11-27 2020-06-02 建兴储存科技(广州)有限公司 固态储存装置的数据处理方法
CN112181898A (zh) * 2020-09-23 2021-01-05 北京百汇安科技有限公司 嵌入式安全文件管理系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100595757C (zh) * 2006-03-28 2010-03-24 联芯科技有限公司 文件系统的安全管理方法及装置
CN101206617B (zh) * 2006-12-20 2011-11-09 深圳市朗科科技股份有限公司 闪存的数据存储方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101807212A (zh) * 2010-04-30 2010-08-18 迈普通信技术股份有限公司 嵌入式文件系统的缓存方法及嵌入式文件系统
CN101807212B (zh) * 2010-04-30 2013-05-08 迈普通信技术股份有限公司 嵌入式文件系统的缓存方法及嵌入式文件系统的缓存装置
CN101908023A (zh) * 2010-08-06 2010-12-08 四川长虹电器股份有限公司 NandFlash存储器中数据存储方法
CN102789425A (zh) * 2012-07-17 2012-11-21 上海晟东电力科技有限公司 基于flash存储介质的文件读写方法
CN102789425B (zh) * 2012-07-17 2016-01-20 上海金智晟东电力科技有限公司 基于flash存储介质的文件读写方法
CN103970480A (zh) * 2013-01-30 2014-08-06 北京金奔腾汽车科技有限公司 汽车电脑诊断仪sd卡flash刷屏
CN111221750A (zh) * 2018-11-27 2020-06-02 建兴储存科技(广州)有限公司 固态储存装置的数据处理方法
CN111221750B (zh) * 2018-11-27 2023-08-22 建兴储存科技(广州)有限公司 固态储存装置的数据处理方法
CN112181898A (zh) * 2020-09-23 2021-01-05 北京百汇安科技有限公司 嵌入式安全文件管理系统
CN112181898B (zh) * 2020-09-23 2023-12-29 北京百汇安科技有限公司 嵌入式安全文件管理系统

Also Published As

Publication number Publication date
CN101324899B (zh) 2010-06-02

Similar Documents

Publication Publication Date Title
US20240013832A1 (en) Lifetime mixed level non-volatile memory system
US11232041B2 (en) Memory addressing
US10108545B2 (en) Operating shingled magnetic recording device
CN103049397B (zh) 一种基于相变存储器的固态硬盘内部缓存管理方法及系统
CN102576293B (zh) 固态存储设备和分层存储系统中的数据管理
US9146851B2 (en) Single-level cell and multi-level cell hybrid solid state drive
TWI398770B (zh) 用於快閃記憶體的資料存取方法、儲存系統與控制器
US8626987B2 (en) Flash memory system and defragmentation method
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
TWI506430B (zh) 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
TWI399644B (zh) 非揮發記憶體區塊管理方法
CN103400598A (zh) 固态存储器、包含其的计算机系统和操作其的方法
CN101556555B (zh) 用于闪存的区块管理方法、其控制器与储存系统
CN100449549C (zh) 嵌入式系统中NAND Flash存储器上建立文件系统的方法
CN101634967B (zh) 用于闪存的区块管理方法、储存系统与控制器
CN101571832B (zh) 数据写入方法及使用该方法的快闪存储系统与其控制器
CN101324899B (zh) 一种快速写nand型flash的方法
US20100169556A1 (en) Nonvolatile storage device, information recording system, and information recording method
KR102585883B1 (ko) 메모리 시스템의 동작 방법 및 메모리 시스템
US20120166709A1 (en) File system of flash memory
CN101727395A (zh) 闪存设备的管理系统、方法及闪存设备
TW201917581A (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器
CN102779096A (zh) 一种基于页块面三维的闪存地址映射方法
CN102662856A (zh) 一种固态硬盘及其存取方法
CN105718206A (zh) 能够感知raid的闪存转换层及其实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100602

Termination date: 20170805