CN105760113B - 基于nand闪存的高速存储设备及文件管理方法 - Google Patents
基于nand闪存的高速存储设备及文件管理方法 Download PDFInfo
- Publication number
- CN105760113B CN105760113B CN201610080451.XA CN201610080451A CN105760113B CN 105760113 B CN105760113 B CN 105760113B CN 201610080451 A CN201610080451 A CN 201610080451A CN 105760113 B CN105760113 B CN 105760113B
- Authority
- CN
- China
- Prior art keywords
- block
- file
- nand
- memory space
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于文件管理技术领域,公开了一种基于NAND闪存的高速存储设备及文件管理方法,包括:将NAND芯片组的多个块存储空间依次划分为六部分,坏块信息列表,块使用信息列表,文件信息列表,预留块,文件数据块,映射块;获取坏块信息列表,使得在文件管理中对坏块进行屏蔽;获取块使用信息列表,得到每个块的使用情况;获取文件信息列表,得到NAND芯片组所存储的文件个数及相应存储位置;获取文件操作命令,根据文件操作命令,在文件数据块的对应存储空间进行写文件操作、读文件操作或删文件操作;并对块使用信息列表、文件信息列表的内容进行更新;解决现有文件管理系统用于高速存储设备时造成的速度下降、空间利用率低的问题。
Description
技术领域
本发明涉及文件管理技术领域,尤其涉及一种基于NAND闪存的高速存储设备及文件管理方法,用于嵌入式高速实时存储设备中的大文件的管理。
背景技术
随着现代科技的高速发展,高速存储设备的重要性日渐突出,目前已被广泛应用于军事、通信和医学设备等关键领域,如雷达实时成像系统、通信基站大容量实时数据传输和核磁共振图像实时处理等。但现有的文件系统不太适合直接用于高速存储设备。
NAND闪存是FLASH内存的一种,其以页为单位读写数据,而以块为单位擦除数据,内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。NAND存储器具有容量较大,改写速度快等优点,适用于大量数据的高速存储设备,因而在业界得到了越来越广泛的应用。
现有的文件系统主要包括FAT32、NTFS、ext3等,这些文件系统主要使用在计算机上,如果直接将其应用在高速实时存储设备上,有以下几个缺点:
(1)NAND闪存利用多Plane(层)设计以提升性能,一个芯片被分成2个Plane,2个Plane内的Block编号是单双交替的,操作时,可以进行交替操作(一单一双)来提升性能,根据测试,2个Plane的交替访问性能可比单Plane设计提高约50%;但现有文件系统没有针对NAND闪存的这种结构特点进行相应的优化,若将现有文件系统直接应用在基于NAND闪存的高速实时存储设备上会造成存储速度下降的缺点;
(2)NAND闪存在操作的过程中读写是以页为基本单位,擦除是以块为基本单位的,一般情况下页的大小相对于现有的文件系统支持的最小操作单元较大,二者不能完全匹配,若将现有文件系统直接应用将导致性能下降;
(3)NAND闪存一般都利用多LUN(Logical Unit Number,逻辑单元号)设计以提升容量,一个芯片集成了4个LUN,并且4个LUN共享数据总线,操作时,可以进行交替操作来提升性能;但目前的文件系统也没有针对这一特点进行相关优化;
(4)高速存储设备在使用的过程中,面向的情况比较简单,主要是文件个数较少,但文件比较大,存储速度要求高的情况;而现有的文件系统针对的是复杂应用情况,支持的文件数目多,需要的索引空间大,从而造成存储空间的浪费。
发明内容
针对上述问题,本发明的目的在于提供一种基于NAND闪存的高速存储设备及文件管理方法,解决现有文件管理系统用于高速存储设备时造成的速度下降、空间利用率低的问题。
实现本发明的基本思路是:为了实现存储空间的分配和回收、优化存储速度和空间利用率,将NAND芯片组划分为六部分;通过初始化阶段,复位FLASH,然后将NAND芯片组存储空间的使用情况更新到程序中,从而达到坏块均衡及对坏块的屏蔽;并找到最后一非空页;最后接收文件操作命令,并根据文件操作命令对NAND芯片组中的块存储空间进行相应的文件写入、读取或删除等操作,从而实现NAND存储空间的统一管理,实现文件的按名存取,向用户提供一个方便使用的接口。
为达到上述目的,本发明的实施例采用如下技术方案予以实现。
技术方案一:
一种基于NAND闪存的高速存储设备的文件管理方法,所述高速存储设备为M个NAND存储芯片组成的NAND芯片组,所述NAND芯片组包含多个块存储空间;所述文件管理方法包括如下步骤:
将所述NAND芯片组的多个块存储空间依次划分为六部分,包括坏块信息列表,块使用信息列表,文件信息列表,预留块,文件数据块,映射块;
其中,所述坏块信息列表用于记录所述NAND芯片组中坏块的信息;所述块使用信息列表用于记录所述NAND芯片组中所有块存储空间是否被使用的使用状态,以及块存储空间被使用的使用次数;所述文件信息列表用于记录所述NAND芯片组中存储的文件个数以及每个文件的存储位置;所述预留块用作以后的扩展;所述文件数据块用于存储文件数据;所述映射块用来替代坏块;
获取所述坏块信息列表,使得在文件管理中对坏块进行屏蔽;
获取块使用信息列表,得到每个块的使用状态和使用次数;
获取文件信息列表,得到NAND芯片组所存储的文件个数及相应存储位置;
获取文件操作命令,根据所述文件操作命令,在所述文件数据块的对应存储空间进行写文件操作、读文件操作或删文件操作;对所述块使用信息列表、所述文件信息列表的内容进行更新。
本发明技术方案一的特点和进一步的改进为:
(1)所述高速存储设备为M个NAND存储芯片组成的NAND芯片组;
组成NAND芯片组的M个NAND存储芯片是并行操作的,每个NAND存储芯片的数据宽度为8位,所述NAND芯片组的数据宽度为8×M位。
(2)所述高速存储设备为M个NAND存储芯片组成的NAND芯片组;
每个NAND存储芯片包含4096个块存储空间,且4096个块存储空间分为四个逻辑单元LUN0、LUN1、LUN2、LUN3,将M个NAND存储芯片的四个逻辑单元分别对应组合起来,使得NAND芯片组也包含4096个块存储空间,NAND芯片组的每个块存储空间是单个逻辑单元的每个块存储空间的4×M倍。
(3)所述NAND芯片组的4096个块存储空间分为两个存储层Plane0和Plane1,其中,存储层Plane0包含2048个偶数块存储空间,记为block0、block2、block4、...block4094,存储层Plane1包含2048个奇数块存储空间,记为block1、block3、block5、...block4095;
对所述NAND芯片组的访问顺序依次为LUN0的Plane0、LUN0的Plane1、LUN1的Plane0、LUN1的Plane1、LUN2的Plane0、LUN2的Plane1、LUN3的Plane0、LUN3的Plane1。
(4)所述NAND芯片组包含4096个块存储空间;
将所述NAND芯片组的4096个块存储空间依次划分为六部分,包括:第0-1块存储空间存储坏块信息列表,第2-5块存储空间存储块使用信息列表,第6-9块存储空间存储文件信息列表,第10-63块存储空间为预留块,第64-4063块存储空间存储文件数据,第4064-4095块存储空间为映射块。
(5)第2-5块存储空间存储块使用信息列表,分为两个奇偶块:第2块存储空间和第三块存储空间组成一个奇偶块,第四块存储空间和第五块存储空间组成一个奇偶块,存储块使用信息列表时将一个奇偶块作为整体进行操作;
第6-9块存储空间存储文件信息列表,分为两个奇偶块:第6块存储空间和第7块存储空间组成一个奇偶块,第8块存储空间和第9块存储空间组成一个奇偶块,存储文件信息列表时将一个奇偶块作为整体进行操作。
(6)获取块使用信息列表或文件信息列表时,所述方法还包括:
判断块使用信息列表或文件信息列表占用的当前块存储空间的剩余存储空间是否小于预设存储空间阈值,若当前块存储空间的剩余存储空间小于预设存储空间阈值,则擦除当前块存储空间的下一个块存储空间备用。
技术方案二:
一种基于NAND闪存的高速存储设备,所述高速存储设备为M个NAND存储芯片组成的NAND芯片组;
其中,M个NAND存储芯片的控制线并联在一起作为高速存储设备的控制线,M个NAND存储芯片的数据线依次排列组成高速存储设备的数据线。
本发明技术方案二的特点和进一步的改进为:
(1)组成NAND芯片组的M个NAND存储芯片是并行操作的,每个NAND存储芯片的数据宽度为8位,所述NAND芯片组的数据宽度为8×M位。
(2)每个NAND存储芯片包含4096个块存储空间,则所述高速存储设备也包含4096个块存储空间,且所述高速存储设备的每个块存储空间为NAND存储芯片的每个块存储空间的M倍。
与现有技术相比,本发明具有以下有益效果:第一,最小可操作单元增大,同一块地址里面的多个页、奇偶Plane、4个LUN都一起并行操作,加快了存储速度,减少了CPU的干预,比较适用于高速实时存储设备;第二,实现了文件的按名存取,向用户提供一个标准接口,使用简单;第三,通过块使用次数记录的更新,实现坏块均衡,延长了芯片的使用寿命;第四,通过查询坏块信息列表对坏块进行屏蔽,保证了数据的完整性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于NAND闪存的高速存储设备的文件管理方法的流程示意图;
图2为本发明4片NAND存储芯片的组织结构;
图3为本发明块划分信息;
图4为本发明坏块信息列表;
图5为本发明列表结构;
图6为本发明坏块记录;
图7为本发明块使用信息列表;
图8为本发明块使用记录信息;
图9为本发明文件信息列表;
图10为本发明文件系统初始化框图;
图11为本发明读块使用信息列表和文件信息列表的流程图;
图12为本发明写文件操作流程图;
图13为本发明更新块使用信息列表和写文件信息列表操作流程图;
图14为本发明读文件操作流程图;
图15为本发明删除文件操作流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种基于NAND闪存的高速存储设备的文件管理方法,所述高速存储设备为多个NAND存储芯片组成的NAND芯片组,所述NAND芯片组包含多个块存储空间。
如图1所示,所述文件管理方法包括如下步骤:
步骤1,将所述NAND芯片组的多个块存储空间依次划分为六部分,包括坏块信息列表,块使用信息列表,文件信息列表,预留块,文件数据块,映射块。
其中,所述坏块信息列表用于记录所述NAND芯片组中坏块的信息;所述块使用信息列表用于记录所述NAND芯片组中所有块存储空间是否被使用的使用状态,以及块存储空间被使用的使用次数;所述文件信息列表用于记录所述NAND芯片组中存储的文件个数以及每个文件的存储位置;所述预留块用作以后的扩展;所述文件数据块用于存储文件数据;所述映射块用来替代坏块。
步骤2,获取所述坏块信息列表,使得在文件管理中对坏块进行屏蔽。
步骤3,获取块使用信息列表,得到每个块的使用情况。
步骤4,获取文件信息列表,得到NAND芯片组所存储的文件个数及相应存储位置。
步骤5,获取文件操作命令,根据所述文件操作命令,在所述文件数据块的对应存储空间进行写文件操作、读文件操作和删文件操作;并对所述块使用信息列表、所述文件信息列表的内容进行更新。
具体的,所述NAND芯片组包含4096个块存储空间;将所述NAND芯片组的4096个块存储空间依次划分为六部分,包括:第0-1块存储空间存储坏块信息列表,第2-5块存储空间存储块使用信息列表,第6-9块存储空间存储文件信息列表,第10-63块存储空间为预留块,第64-4063块存储空间存储文件数据,第4064-4095块存储空间为映射块。
进一步的,所述高速存储设备为M个NAND存储芯片组成的NAND芯片组;组成NAND芯片组的M个NAND存储芯片是并行操作的,每个NAND存储芯片的数据宽度为8位,所述NAND芯片组的数据宽度为8×M位。
更进一步的,所述高速存储设备为M个NAND存储芯片组成的NAND芯片组;每个NAND存储芯片包含4096个块存储空间,且4096个块存储空间分为四个逻辑单元LUN0、LUN1、LUN2、LUN3,将M个NAND存储芯片的四个逻辑单元分别对应组合起来,使得NAND芯片组也包含4096个块存储空间,NAND芯片组的每个块存储空间是单个逻辑单元的每个块存储空间的4×M倍。
所述NAND芯片组的4096个块存储空间分为两个存储层Plane0和Plane1,其中,存储层Plane0包含2048个偶数块存储空间,记为block0、block2、block4、...block4094,存储层Plane1包含2048个奇数块存储空间,记为block1、block3、block5、...block4095。
对所述NAND芯片组的访问顺序依次为LUN0的Plane0、LUN0的Plane1、LUN1的Plane0、LUN1的Plane1、LUN2的Plane0、LUN2的Plane1、LUN3的Plane0、LUN3的Plane1。
需要补充的是,获取块使用信息列表或文件信息列表时,所述方法还包括:判断块使用信息列表或文件信息列表占用的当前块存储空间的剩余存储空间是否小于预设存储空间阈值,若当前块存储空间的剩余存储空间小于预设存储空间阈值,则擦除当前块存储空间的下一个块存储空间备用。
示例性,如图2所示,高速存储设备为以4个NAND存储芯片组成的NAND芯片组为例,本发明的技术方案如下:
(1)对NAND芯片组进行块划分。
(1.1)为了提高存储速度,本发明实施例将4个NAND存储芯片作为一个整体,同时将4个LUN(逻辑单元号)相同块作为一个整体,使得总块数减少为4096块,单块容量增加,从而简化文件管理系统。
示例性的,如图2所示为NAND芯片组的组织结构,Chip0、Chip1、Chip2、Chip3是同时操作的,每个NAND存储芯片有8位数据线,因此4个NAND存储芯片的数据宽度为32位。读写时依次操作LUN0的plane0,LUN0的plane1,LUN1的plane0,LUN1的plane1,...,最后是LUN3的plane1。每个LUN的块数为4096块,plane0与plane1的块数分别为偶数块(block0、block2...block 4094)与奇数块(block1、block3...block4095)。
(1.2)将4096块划分为坏块信息列表、块使用信息列表、文件信息列表、预留块、文件数据块、映射块六部分,如图3所示,其中:
0~1块存放坏块信息列表,用于说明哪些块是坏块,以便程序避开坏块;在文件系统每次初始化时,都要首先从0~1块中读取坏块信息更新到程序的坏块映射表中去,保证之后不会对坏块进行操作。当更换板卡或者NAND存储芯片时,必须重新建立坏块列表,以对应当前的NAND存储芯片。
如图4所示为坏块信息列表的结构,包含表头、列表结构、更新次数、坏块记录和表尾,大小共516×32b,每个NAND存储芯片都有对应的坏块记录,本发明实施例中,设每个LUN的坏块列表最多有32条记录,存放在0~1块的第一页。
如图5所示为坏块信息列表中的列表结构,高8位预留,16~23位表示NAND存储芯片的个数,8~15位表示LUN的标号,0~7位表示每个LUN中坏块列表的记录个数。
如图6所示坏块信息列表中的坏块记录,高16位为坏块地址,低16位为映射地址。块地址共16位,高2位预留,28~29位和12~13位表示所在的LUN,低12位表示块地址。
2~5块存放块使用信息列表,用于说明哪一块是否被使用了,以及被使用了多少次;如图7所示,块使用信息列表大小为2048×32b,共2048条记录。其中每条记录包括两个块(偶数块和奇数块)的使用记录。
如图8所示为块使用信息列表中的块使用记录,高16位代表偶数块,低16位代表奇数块。其中0位和16位表示该块的使用情况,1表示可用,0表示已经使用(即不可用)。1~15位和17~31位表示该块的使用次数。每次使用块之前需要判断该块是否可用,如果已经用过那么需要将奇偶块地址分别加1,直到找到可用块。块写操作完成后需要清零可用位,块擦除操作完成则需置高可用位,两种操作都需要将使用次数加1。(为了防止块使用信息出错,可以将其在NAND存储芯片中连续存储8次)每次对块操作结束后,都需要更新块使用记录,当一个文件操作结束时,还需要将更新后的使用记录写入NAND存储芯片中去,以保证下一次操作时得到最新的块使用记录。
需要说明的是,0~1块,2~5块,6~9块,10~63块以及4064~4095块这96块的可用标志都为0,表示不可用。
6~9块存放文件信息列表,用于说明共有多少个文件及文件存放的位置;如图9所示,文件信息列表大小为4096×32b,本发明实施例支持最多63个文件,每个文件占用64×32b的存储空间。文件信息列表由表头、列表结构、表头大小、更新时间、更新次数、文件个数、文件标识和表尾组成。32位的文件列表结构高16位为63,表示支持的文件个数,低16位为64,表示每个文件的大小为64个32位的存储空间。表头大小可以设置为6,单位是32b。更新时间是最后一次更新文件列表的时间,格式为年月日时分秒。更新次数在每次更新文件列表时加1。文件个数表示存储器中总共的文件数目。
如图9所示,文件标识包括文件名称,文件标识结构,标识头大小,文件时间,文件大小,块组以及表尾,其中文件名称是自动计数器,每次增加一个新文件则加1(其值为最后一个文件名称加1)。文件标识结构为文件标识的大小,可以设置为64,单位为32b。标识头大小可以设置为6,单位是32b。文件时间0存放文件开始写入的时间,用年月日时分秒表示。文件时间1存放结束时间,格式与文件时间0相同。文件大小表示文件使用的总块数。块组为文件对应的起始地址和结束块地址,其中高16位表示起始偶数块的地址,低16位表示结束奇数块的地址,两者之差就是文件的大小,即使用的块数。
需要注意的是,按照以上定义操作时,为了得到正确的文件,块组必须连续操作。因为若文件创建过程中,发现中间有些块已经被使用,那么文件指针就会跳过这些块继续往下寻找可用块。但是写入块组时程序却只会存放起始和结束块地址,这样在读文件时就会将中间那些不属于当前文件的块读出,导致文件错误。所以,在进行文件操作时,必须保证块组连续。
10~63块为预留块,用于以后扩展应用。
64~4063块存放文件数据,用于文件数据的存储。
4064~4095块为映射块,用于坏块的映射。
所用的NAND芯片组共有4096块,最前64块预留,最后32块为坏块映射,总共可以操作的有4000块,由于每次操作一个奇偶块,所以对于每个芯片一共可以操作2000次。
(2)如图10所示,对文件系统进行初始化。
(2.1)发送命令复位NAND存储芯片;
(2.2)读取坏块信息列表,从而实现对坏块的屏蔽;
(2.3)读取块使用信息列表和文件信息列表,找到最后一个非空页。
如图11所示,所述读取块使用信息列表和文件信息列表,具体包括:
(a)初始化指针courrentlist为0;(b)进行页读取;(c)判断该页是否为空,若为空,则今courrentlist+=256,指向下一块,并跳转到步骤(b);若不为空,则courrentlist+=1,指向下一页;(d)重新进行页读取;(e)判断该页是否为空,若不为空,则今courrentlist+=1,指向下一页,并跳转到步骤(d);若为空,则今courrentlist-=1;(f)读取最后一个非空页,并复制块使用信息列表和文件信息列表到缓存器;(g)判断文件信息是不是占用一块的一半以上,若不是,则读列表结束;若是,则今courrentlist=下一块;(h)进行页读取,并判断是否为空,若空,则读列表结束;若不为空,则进行块擦除,并结束读列表。
(2.4)结束初始化过程。
(3)根据文件操作命令对NAND存储芯片组中的块进行文件的写入、读取或删除操作。
所述文件写入、读取和删除操作,具体为:
(3.1)写文件:
如图12所示为写文件的过程,(a)等待直到收到记录启动命令;(b)文件信息列表中的文件个数自动加1;(c)通过块使用信息列表查找可用块,并获取起始块;(d)文件信息列表中的文件名自动加1,再进行页写,直到收到记录停止命令;(e)写文件完成,获取结束块组和文件大小等信息;如图13所示为更新块使用信息列表和写文件信息列表的过程,(f)更新文件信息列表和块使用信息列表。将结束块组和文件大小更新到文件列表中。与此同时,将使用过的块的可用位置0,操作次数加1,并更新到块使用列表中。
写文件也即是对NAND芯片进行编程。控制电路部分收到写命今后,文件信息列表中的文件个数自动加1,然后通过块使用信息列表查找可用块,获取起始块组;之后文件信息列表中的文件名自动加1,再进行页写。文件写完成后,根据写文件的大小得出结束块组,最后将这些信息更新到文件信息列表中。与此同时,在块操作时,将使用过的块的可用位置0(置零表示该块不能用),块操作次数加1,最后更新到块使用信息列表中。
(3.2)读文件:
如图14所示为读文件的过程,(a)等待直到收到文件读取命令;(b)根据文件名在文件信息列表中获得文件起始块组;(c)块读取并将数据发送出去;(d)判断是否为最后一块,如果不是最后一块,则继续块读取;如果是最后一块,则结束。
读文件即根据文件名在文件信息列表中获得文件起始块组,然后块读取,根据文件大小判断是否为最后一块,如果不是最后一块,则继续块读取,如果是最后一块,则结束。
(3.3)删文件:
如图15所示为删文件的过程,(a)等待直到收到文件删除命令;(b)根据文件名在文件列表中获得文件起始块组和结束块组;(c)块擦除;(d)判断是否为最后一块,如果是,则结束块擦除,如果不是,则跳转到(c);(e)更新控制器中的块使用信息列表和文件信息列表,最后把更新的信息写入到芯片的块使用信息列表和文件信息列表。
删文件即根据文件名在文件信息列表中获得文件起始块组和结束块组,然后进行块擦除,并判断是否为最后一块,如果为最后一块则结束块擦除,然后更新块使用信息列表和文件信息列表,最后把更新的信息写入到块使用信息列表和文件信息列表。
本发明实施例还提供一种基于NAND闪存的高速存储设备,所述高速存储设备为M个NAND存储芯片组成的NAND芯片组;其中,M个NAND存储芯片的控制线并联在一起作为高速存储设备的控制线,M个NAND存储芯片的数据线依次排列组成高速存储设备的数据线。组成NAND芯片组的M个NAND存储芯片是并行操作的,每个NAND存储芯片的数据宽度为8位,所述NAND芯片组的数据宽度为8×M位。每个NAND存储芯片包含4096个块存储空间,则所述高速存储设备也包含4096个块存储空间,且所述高速存储设备的每个块存储空间为NAND存储芯片的每个块存储空间的M倍。
本发明实施例提供的一种基于NAND闪存的高速存储设备及文件管理方法,通过存储空间的分配和回收、优化存储速度和空间利用率,将NAND芯片组划分为六部分;通过初始化阶段,复位FLASH,然后将NAND芯片组存储空间的使用情况更新到程序中,从而达到坏块均衡及对坏块的屏蔽;并找到最后一非空页;最后接收文件操作命令,并根据文件操作命令对NAND芯片组中的块存储空间进行相应的文件写入、读取或删除等操作,从而实现NAND存储空间的统一管理,实现文件的按名存取,向用户提供一个方便使用的接口;解决现有文件管理系统用于高速存储设备时造成的速度下降、空间利用率低的问题。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (6)
1.一种基于NAND闪存的高速存储设备的文件管理方法,其特征在于,所述高速存储设备为M个NAND存储芯片组成的NAND芯片组,所述NAND芯片组包含多个块存储空间;所述文件管理方法包括如下步骤:
将所述NAND芯片组的多个块存储空间依次划分为六部分,包括坏块信息列表,块使用信息列表,文件信息列表,预留块,文件数据块,映射块;
其中,所述坏块信息列表用于记录所述NAND芯片组中坏块的信息;所述块使用信息列表用于记录所述NAND芯片组中所有块存储空间是否被使用的使用状态,以及块存储空间被使用的使用次数;所述文件信息列表用于记录所述NAND芯片组中存储的文件个数以及每个文件的存储位置;所述预留块用作以后的扩展;所述文件数据块用于存储文件数据;所述映射块用来替代坏块;
获取所述坏块信息列表,使得在文件管理中对坏块进行屏蔽;
获取块使用信息列表,得到每个块的使用状态和使用次数;
获取文件信息列表,得到NAND芯片组所存储的文件个数及相应存储位置;
获取文件操作命令,根据所述文件操作命令,在所述文件数据块的对应存储空间进行写文件操作、读文件操作或删文件操作;并对所述块使用信息列表、所述文件信息列表的内容进行更新;
其中,所述高速存储设备为M个NAND存储芯片组成的NAND芯片组,每个NAND存储芯片包含4096个块存储空间,且4096个块存储空间分为四个逻辑单元LUN0、LUN1、LUN2、LUN3,将M个NAND存储芯片的四个逻辑单元分别对应组合起来,使得NAND芯片组也包含4096个块存储空间,NAND芯片组的每个块存储空间是单个逻辑单元的每个块存储空间的4×M倍;
所述NAND芯片组的4096个块存储空间分为两个存储层Plane0和Plane1,其中,存储层Plane0包含2048个偶数块存储空间,记为block0、block2、block4、...、block4094,存储层Plane1包含2048个奇数块存储空间,记为block1、block3、block5、...、block4095;
对所述NAND芯片组的访问顺序依次为LUN0的Plane0、LUN0的Plane1、LUN1的Plane0、LUN1的Plane1、LUN2的Plane0、LUN2的Plane1、LUN3的Plane0、LUN3的Plane1。
2.根据权利要求1所述的一种基于NAND闪存的高速存储设备的文件管理方法,其特征在于,所述高速存储设备为M个NAND存储芯片组成的NAND芯片组;
组成NAND芯片组的M个NAND存储芯片是并行操作的,每个NAND存储芯片的数据宽度为8位,所述NAND芯片组的数据宽度为8×M位。
3.根据权利要求1所述的一种基于NAND闪存的高速存储设备的文件管理方法,其特征在于,所述NAND芯片组包含4096个块存储空间;
将所述NAND芯片组的4096个块存储空间依次划分为六部分,包括:第0-1块存储空间存储坏块信息列表,第2-5块存储空间存储块使用信息列表,第6-9块存储空间存储文件信息列表,第10-63块存储空间为预留块,第64-4063块存储空间存储文件数据,第4064-4095块存储空间为映射块。
4.根据权利要求1所述的一种基于NAND闪存的高速存储设备的文件管理方法,其特征在于,
第2-5块存储空间存储块使用信息列表,分为两个奇偶块:第2块存储空间和第三块存储空间组成一个奇偶块,第四块存储空间和第五块存储空间组成一个奇偶块,存储块使用信息列表时将一个奇偶块作为整体进行操作;
第6-9块存储空间存储文件信息列表,分为两个奇偶块:第6块存储空间和第7块存储空间组成一个奇偶块,第8块存储空间和第9块存储空间组成一个奇偶块,存储文件信息列表时将一个奇偶块作为整体进行操作。
5.根据权利要求1所述的一种基于NAND闪存的高速存储设备的文件管理方法,其特征在于,获取块使用信息列表或文件信息列表时,所述方法还包括:
判断块使用信息列表或文件信息列表占用的当前块存储空间的剩余存储空间是否小于预设存储空间阈值,若当前块存储空间的剩余存储空间小于预设存储空间阈值,则擦除当前块存储空间的下一个块存储空间备用。
6.一种基于NAND闪存的高速存储设备,其特征在于,所述高速存储设备为M个NAND存储芯片组成的NAND芯片组;
其中,M个NAND存储芯片的控制线并联在一起作为高速存储设备的控制线,M个NAND存储芯片的数据线依次排列组成高速存储设备的数据线;
其中,组成NAND芯片组的M个NAND存储芯片是并行操作的,每个NAND存储芯片的数据宽度为8位,所述NAND芯片组的数据宽度为8×M位;每个NAND存储芯片包含4096个块存储空间,则所述高速存储设备也包含4096个块存储空间,且所述高速存储设备的每个块存储空间为NAND存储芯片的每个块存储空间的M倍;
所述NAND芯片组的4096个块存储空间分为两个存储层Plane0和Plane1,其中,存储层Plane0包含2048个偶数块存储空间,记为block0、block2、block4、...block4094,存储层Plane1包含2048个奇数块存储空间,记为block1、block3、block5、...block4095;对所述NAND芯片组的访问顺序依次为LUN0的Plane0、LUN0的Plane1、LUN1的Plane0、LUN1的Plane1、LUN2的Plane0、LUN2的Plane1、LUN3的Plane0、LUN3的Plane1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610080451.XA CN105760113B (zh) | 2016-02-04 | 2016-02-04 | 基于nand闪存的高速存储设备及文件管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610080451.XA CN105760113B (zh) | 2016-02-04 | 2016-02-04 | 基于nand闪存的高速存储设备及文件管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105760113A CN105760113A (zh) | 2016-07-13 |
CN105760113B true CN105760113B (zh) | 2019-03-22 |
Family
ID=56330612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610080451.XA Active CN105760113B (zh) | 2016-02-04 | 2016-02-04 | 基于nand闪存的高速存储设备及文件管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105760113B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106246168B (zh) | 2016-08-29 | 2017-09-19 | 中国科学院地质与地球物理研究所 | 一种近钻头钻具姿态随钻测量装置及测量方法 |
CN106223937B (zh) | 2016-08-31 | 2017-09-29 | 中国科学院地质与地球物理研究所 | 一种适用于井下近钻头无线短传的接收装置 |
CN106246167B (zh) | 2016-08-31 | 2017-07-14 | 中国科学院地质与地球物理研究所 | 近钻头恒功率无线短传方法及装置 |
CN106246169B (zh) | 2016-08-31 | 2017-09-01 | 中国科学院地质与地球物理研究所 | 一种适用于井下近钻头无线短传发射的机械装置 |
CN106246163B (zh) | 2016-08-31 | 2017-07-14 | 中国科学院地质与地球物理研究所 | 近钻头动态井斜测量方法及装置 |
CN106527969B (zh) * | 2016-09-21 | 2017-09-19 | 中国科学院地质与地球物理研究所 | 一种寿命均衡的NandFlash存储器读写方法 |
CN106640055B (zh) | 2016-11-21 | 2017-11-17 | 中国科学院地质与地球物理研究所 | 一种适用于随钻方位声波测井的接收装置 |
CN106522925B (zh) | 2016-11-21 | 2018-04-13 | 中国科学院地质与地球物理研究所 | 一种随钻方位声波信号接收换能器封装装置 |
US10578754B2 (en) | 2017-01-19 | 2020-03-03 | Institute Of Geology And Geophysics, Chinese Academy Of Sciences | Sinusoidal excitation method and apparatus for multi-pole acoustic logging while drilling |
CN106869907B (zh) | 2017-01-19 | 2019-08-06 | 中国科学院地质与地球物理研究所 | 基于电场理论的近钻头无线短传地面环境下标定方法 |
US10649661B2 (en) * | 2017-06-26 | 2020-05-12 | Western Digital Technologies, Inc. | Dynamically resizing logical storage blocks |
CN109597565B (zh) * | 2017-09-30 | 2024-04-05 | 北京忆恒创源科技股份有限公司 | 虚拟Plane管理 |
CN109491606B (zh) * | 2018-11-01 | 2021-10-15 | 郑州云海信息技术有限公司 | 一种全闪存储空间管理方法、系统、设备及计算机介质 |
CN110825714A (zh) * | 2019-11-08 | 2020-02-21 | 珠海奔图电子有限公司 | 文件存储控制方法及其装置、文件存储装置、电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923448A (zh) * | 2010-02-08 | 2010-12-22 | 安凯(广州)微电子技术有限公司 | 一种nand闪存的转换层读写方法 |
US7916538B2 (en) * | 2008-01-28 | 2011-03-29 | Samsung Electronics Co., Ltd. | Memory device employing NVRAM and flash memory cells |
CN103577574A (zh) * | 2013-11-05 | 2014-02-12 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于nand flash的高可靠线性文件系统 |
CN105278875A (zh) * | 2015-09-16 | 2016-01-27 | 上海新储集成电路有限公司 | 一种混合异构nand固态硬盘 |
-
2016
- 2016-02-04 CN CN201610080451.XA patent/CN105760113B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7916538B2 (en) * | 2008-01-28 | 2011-03-29 | Samsung Electronics Co., Ltd. | Memory device employing NVRAM and flash memory cells |
CN101923448A (zh) * | 2010-02-08 | 2010-12-22 | 安凯(广州)微电子技术有限公司 | 一种nand闪存的转换层读写方法 |
CN103577574A (zh) * | 2013-11-05 | 2014-02-12 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于nand flash的高可靠线性文件系统 |
CN105278875A (zh) * | 2015-09-16 | 2016-01-27 | 上海新储集成电路有限公司 | 一种混合异构nand固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
CN105760113A (zh) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105760113B (zh) | 基于nand闪存的高速存储设备及文件管理方法 | |
CN107239526B (zh) | 文件系统实现方法、碎片整理方法、操作位置定位方法 | |
CN106708427B (zh) | 一种适用于键值对数据的存储方法 | |
CN103514249B (zh) | 一种数据自精简方法和系统及存储装置 | |
CN100565530C (zh) | 一种快照系统及其使用方法 | |
CN102779096B (zh) | 一种基于页块面三维的闪存地址映射方法 | |
US7475185B2 (en) | Nonvolatile memory system, nonvolatile memory device, memory controller, access device, and method for controlling nonvolatile memory device | |
US8386746B2 (en) | Storage unit management methods and systems | |
US8312554B2 (en) | Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus | |
CN102508784B (zh) | 视频监控设备中闪存卡的数据存储方法及其系统 | |
CN107180092B (zh) | 一种文件系统的控制方法、装置及终端 | |
CN103838853B (zh) | 一种基于不同存储介质的混合文件系统 | |
CN100426259C (zh) | 一种存储器文件数据虚拟存取方法 | |
JP5577238B2 (ja) | アクセス装置、情報記録装置、コントローラ、及び情報記録システム | |
KR19990045218A (ko) | 불휘발성 기억 장치, 불휘발성 기억 장치의 제어 방법 및 불휘발성 기억 장치를 제어하는 프로그램을 기록한 정보 기록 매체 | |
CN106201335B (zh) | 存储系统 | |
CN103473298B (zh) | 数据归档方法和装置以及存储系统 | |
CN106354658B (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
CN102169460A (zh) | 变长数据管理方法及装置 | |
CN102200946B (zh) | 资料存取方法、记忆体控制器与储存系统 | |
CN109558333A (zh) | 具有可变额外存储空间(op)的固态存储设备命名空间 | |
CN101154447B (zh) | 一种闪存控制方法及闪存 | |
CN108664577A (zh) | 一种基于flash空闲区的文件管理方法及系统 | |
CN115617264A (zh) | 分布式存储方法及装置 | |
CN101303667B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |