CN113641630A - 一种flash存储器 - Google Patents
一种flash存储器 Download PDFInfo
- Publication number
- CN113641630A CN113641630A CN202110935551.7A CN202110935551A CN113641630A CN 113641630 A CN113641630 A CN 113641630A CN 202110935551 A CN202110935551 A CN 202110935551A CN 113641630 A CN113641630 A CN 113641630A
- Authority
- CN
- China
- Prior art keywords
- page
- file
- storage
- flash memory
- item
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
Abstract
本发明提供一种FLASH存储器,FLASH存储器用于实现文件的写入、读取或删除操作,包括:FLASH存储区,FLASH存储区以FLASH擦除的最小单位被划分为以0号起始的多个页,FLASH存储区包括:引导区用于描述FLASH存储器的信息;存储页卷包括多个项,每个项保存的地址顺序与项号相对应,用于存储文件数据的下一个存储页的页号,且项号与对应的存储页页号一一对应;文件描述卷用于描述存储文件的信息,存储文件的信息包括:文件信息及文件的起始页号;文件数据存储区用于保存文件数据。本发明提供的FLASH存储器及存储文件管理方法,可以减少存储页卷所需的存储空间,并提升索引效率。
Description
本申请是向中国专利局提交的申请号为201710189447.1,申请日为2017年03月27日,发明创造名称为“FLASH存储器及存储文件管理方法”的发明专利申请的分案申请。
技术领域
本发明涉及FLASH存储器技术领域,尤其涉及一种FLASH存储器。
背景技术
FLASH存储器是一种基于半导体技术的非易失性存储器(Non-Volatile Memory),具有功耗低、容量大、体积小、重量轻、访问速度高等优点,已逐步取代其它半导体存储器件而广泛应用于移动电子产品中。任何FLASH存储器都是有固定存储容量的,其写入操作只能在空或者已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除,但是FLASH芯片的寿命是有限的,超过最大的擦除次数,容易损坏FLASH芯片。
常用的FLASH芯片根据FLASH容量、文件数目和大小,将FLASH固定划分为几个存储区域,再对每个文件对应的起始地址加以记录,当需要对某文件进行读、写、擦除等操作时先查到它对应的起始地址和区域大小,然后到该地址进行数据读、写、擦除等操作。该方案简单、容易实现,但是要预估文件的大小进行分配,如果预估不准确,则导致无法正确存储或者浪费空间资源。
针对上述问题,申请号为01142240.8,名为《FLASH存储文件管理方法》的专利申请提出了一种较完整的FALSH系统管理方法,该方法将FLASH存储区分为文件索引区和文件数据存储区两个区域,文件索引区用于记录文件目录和基本分配单元“块”的分配信息,文件数据存储区用于存储文件的具体内容。其中所用的块分配信息包含本块块号、占用状态以及指向下一块的链表指针,实现了FLASH存储容量的合理分配、灵活使用。但是,现有技术的分配信息包括本块块号、占用状态以及指向下一块的链表指针,占用的存储空间多,且索引效率低。
发明内容
本发明提供一种FLASH存储器,用于解决现有技术中存在的分配信息占用的存储空间多、且索引效率低的技术问题。
本发明提供了一种FLASH存储器,用于存储文件,所述FLASH存储器包括:多个页、文件的起始页号、文件的页的分配信息;
其中,所述页为所述FLASH存储器可擦除的最小单位存储单元,用于存储文件;页号为所述页在所述FLASH存储器中的页序号;
所述文件的起始页号表示文件在所述FLASH存储器的存储页的起始页的页号;
所述文件的所述页的分配信息表示所述文件在所述FLASH存储器中的各个存储页的链表结构;
所述页的分配信息包括多个项,项的项号为所述项在所述页的分配信息中的项序号,所述项的项号与所述页的页号一一对应;
所述文件的页的分配信息的项存储有文件在所述FLASH存储器的与所述项的项号相对应的存储页的下一个存储页的页号。
在一些实施例中,所述项的项号与所述页的页号一一对应是指,所述项对应的页的页号与所述项的项号的值相同。
在一些实施例中,文件在所述FLASH存储器的起始页的页号为所述文件的页的分配信息的起始项的项号,所述起始项的存储内容为所述文件在所述FLASH存储器的起始页的下一个存储页的页号。
在一些实施例中,所述页的分配信息的项还用于:
存储表示对应的存储页是文件结尾的信息、表示对应的存储页数据已无效的信息、表示对应的存储页无数据的信息和表示对应的存储页是坏页的信息中的其中一种或多种信息。
在一些实施例中,项号与所述文件在所述FLASH存储器的最后一个存储页的页号对应的项存储有表示所述文件结尾的信息。
在一些实施例中,所述页的分配信息的每个项的存储内容的长度设置为固定的字节长度,按项号顺序存储于所述页的分配信息中,每个项在所述页的分配信息的地址与所述项的项号成比例对应。
在一些实施例中,所述固定的字节长度为K个字节,所述项从所述页的分配信息的起始地址开始存储,每个项对应的起始地址为所述项的项号的K倍。
在一些实施例中,FLASH存储器还包括:页长度和存储页数;
其中,页长度为页的存储容量,是所述FLASH存储器可擦除的最小单位长度;
存储页数为所述FLASH存储器按照所述页长度划分后的可用于存储的页的页数。
在一些实施例中,FLASH存储器还包括:系统区和文件数据区;
其中,文件的起始页号、文件的页的分配信息、页长度和存储页数均存储于所述系统区的存储页;
所述文件存储于所述文件数据区的存储页。
在一些实施例中,所述系统区包括引导区、存储页卷和文件描述卷;
所述引导区用于描述所述FLASH存储器的信息,包括页长度和存储页数;
所述存储页卷用于表示页的分配信息,包括文件的页分配信息;
所述文件描述卷用于描述存储文件的信息,包括文件的起始页号。
本发明提供的FLASH存储器,通过将存储页卷中的每个项保存的地址顺序与项号一致(0项在0编址处,1项在2编址处,2项在4编址处),项号与对应的存储页页号一一对应,从而形成了地址、项号与页之间的映射关系,通过上述映射关系,存储页卷只需要保存下一页的页号,即可指示页的分配使用情况,减少存储页卷所需的存储空间,并提升索引效率,有效地提高了该FLASH存储器的实用性。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例所提供的FLASH存储器框架结构的结构示意图;
图2为本发明实施例所提供的FLASH存储页卷编址与项号的对应关系图;
图3为本发明实施例所提供的FLASH文件读取用例的结构示意图;
图4为本发明一实施例所提供一种基于FLASH存储器的存储文件管理方法的流程图;
图5为本发明实施例所提供的检测是否存在与所述待写入文件相应的重名文件的流程图;
图6为本发明实施例所提供的判断闲置文件的文件描述卷空间是否足够写入所述文件描述的流程图;
图7为本发明实施例所提供的FLASH释放文件描述卷中可释放空间方法流程图;
图8为本发明实施例所提供的判断闲置文件的存储空间是否足够写入所述待写入文件数据的流程图;
图9为本发明实施例所提供的FLASH释放已删除文件占用空间方法流程图;
图10为本发明实施例所提供的检测写入所述待写入文件数据是否有错的流程图;
图11为本发明实施例所提供的基于FLASH存储器写文件的方法流程图;
图12为本发明另一实施例所提供一种基于FLASH存储器的存储文件管理方法的流程图;
图13为本发明又一实施例所提供一种基于FLASH存储器的存储文件管理方法的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实例用于说明本发明,但不用来限制本发明的范围。
为了支持对FLASH文件数据的随机写入、读取或删除等操作,本发明实施例提供了一种FLASH存储器,该FLASH存储器包括FLASH存储区,而该FLASH存储区按FLASH擦除的最小单位被划分以为0号起始的多个页,然后将FLASH的存储区域按功能进行划分。本实施例中,将FLASH存储芯片可以应用于近距离无线通信卡(Near Field Communication,简称NFC卡)中,需要说明的是,本实施例中的“页”定义为FLASH擦除的最小单位,“卷”定义为用于保存一类数据的一个或多个连续“页”,每“页”的存储容量为1024字节,存储容量为2M的FLASH芯片可以将FLASH存储区分为2048页。每页也可定义为不同的容量大小。
图1为FLASH存储器框架结构的结构示意图,参考附图1可知,本实施例将FLASH存储器中的FLASH存区分为引导区、存储页卷、文件描述卷和文件数据存储区。其中,引导区、存储页卷和文件描述卷属于系统区,用于描述FLASH存储器的信息、文件信息以及页的分配使用情况,仅占用少数存储页;文件数据存储区用于存储文件的数据,占用大部分存储页,具体的,以上各个部分的具体功能作用为:
表1
起始字节位置 | 名称 | 占用字节 | 当前内容 |
0 | 存储器存储名称 | 4 | “NFSS” |
4 | 版本号 | 4 | “1000” |
8 | 页长度 | 2 | 1024 |
10 | 整个存储页数 | 2 | 1994 |
12 | 引导区起始页号 | 2 | 0 |
14 | 引导区页数 | 2 | 1 |
16 | 存储页卷起始页号 | 2 | 1 |
18 | 存储页卷页数 | 2 | 4 |
20 | 文件描述卷起始号 | 2 | 5 |
22 | 文件描述卷占用页数 | 2 | 5 |
24 | 文件数据区起始页号 | 2 | 10 |
26 | 文件数据区占用页数 | 2 | 1984 |
28 | 存储器生成时间 | 8 | |
36 | 存储器类型编码 | 2 | |
38 | 保留 | 256 | |
294 | 存储器名称长度 | 2 | |
296 | 存储器名称 | 不定 | |
剩余 | 保留 |
引导区,用于描述本FLASH存储器的信息,如存储名称、版本号、存储器生成时间以及存储器的类型等,详细情况如表1所示。由上表可知,本发明实施例所使用的FLASH存储器的存储容量为2M,按FLASH擦除的最小单位划分为2048页,整个存储使用页数为1994页。引导区起始页为页0,共占用1页;存储页卷起始页为页1,共占用4页;文件描述页卷起始页为页5,共占用5页,剩余的页10至页1984分配为文件数据存储区。
存储页卷,用于指示页的分配信息,表示了文件数据保存的页的链表结构。分配信息包括多个项,每个项用于存储文件数据的下一个存储页的页号,存储页卷内的每一项是一个16位的整数,占用两个8位字节,所以从存储页卷起始点开始的编址是项序号的两倍。如图2所示,每个项保存的地址顺序与项号相对应(0项在0编址处,1项在2编址处,2项在4编址处),需要注意的是,该处的相对应可以为相一致,另外,项号与对应的存储页页号一一对应(0项对应页0,1项对应页1,2项对应页2),项的内容正常表示的是文件数据的下一个存储页的页号。例如第100H项的地址是第200H字节,若此两字节的内容是70H,这表示所在文件使用了第100H页的数据区,此文件所用的下一页号为70H。
需要注意的是,本发明实施例对每个项的内容作如下限定:1)0x0000表示此项对应页数据已无效;2)0xFFFF表示对应页没写数据;3)0x7FFF表示是文件结尾;4)0x0006表示系统区;5)0x0003表示此页是坏页。
表2
起始位置 | 名称 | 占用字节 |
0 | 文件描述长度 | 2 |
2 | 文件属性 | 2 |
4 | 文件生成时间 | 8 |
12 | 文件起始页号 | 2 |
14 | 文件长度 | 4 |
18 | 文件校验字 | 16 |
34 | 保留区 | 16 |
50 | 文件名长度 | 2 |
52 | 文件名 | 不定 |
文件描述卷,用于描述存储文件的信息,其每一项对应FLASH存储器中保存的一个文件的文件描述,内容是文件信息及文件的起始页号,每项结构如表2所示。
一个文件的文件描述,包含的信息可以为文件起始页号和文件长度,还可以包含一种或多种其它信息,例如文件名、文件属性、文件长度、文件起始页号和文件生成时间等。
文件数据区,用于文件数据的保存,占FLASH存储区的大部分页。
本实施例提供的FLASH存储器,通过将存储页卷中的每个项保存的地址顺序与项号一致(0项在0编址处,1项在2编址处,2项在4编址处),项号与对应的存储页页号一一对应,从而形成了地址、项号与页之间的映射关系,通过上述映射关系,存储页卷只需要保存下一页的页号,即可指示页的分配使用情况,减少存储页卷所需的存储空间,并提升索引效率,有效地提高了该FLASH存储器的实用性。
下面以一个具体用例说明本发明实施例的FLASH文件的文件管理方法。图3表示文件sample.txt文件的结构,FLASH存储器的前十页存储区划分为FLASH的系统区,剩余的为FLASH的文件数据存储区。
根据文件描述卷的信息可知,此文件的文件名为sample.txt,文件起始页号为0x000c,文件长度为0x0600,即1536字节,一页可存储1024字节,则本文件sample.txt的数据需占用两页;
从文件描述卷得知此文件的起始页号为0x000c,根据项号与页分配卷编址的映射关系,在页分配卷中搜索到0x000c项,其内容为0x0010,即文件的下一页页号为0x0010,由于0x0010项的内容为0x0001,下一页指向系统区,表示后面没有文件存储数据了;因此,文件sample.txt的文件数据保存在0x000c和0x0010两页内,文件的保存区域是由文件头中的文件起始页号开始的一个页号链表决定的。
在本发明实施例中,页分配卷的每个项保存的地址顺序与项号一致(0项在0编址处,1项在2编址处,2项在4编址处),每个项与对应的存储页一一对应,因此通过地址、项号和页的映射关系,存储页卷只需要保存下一页的页号,即可指示页的分配使用情况,减少存储页卷所需的存储空间,并提升索引效率。
对FLASH存储区进行上述划分之后,可以按照本发明实施例的文件管理办法执行文件的写入、读出和删除操作。系统与FLASH存储器建立联系后,首先读取NFC卡(上述的FLASH存储器应用于NFC卡中)的存储页卷和文件描述卷,并提取文件列表,以便在整个操作过程中快速对NFC卡进行文件操作。
图4为本发明一实施例所提供一种基于FLASH存储器的存储文件管理方法的流程图;参考附图4可知,本实施例提供了一种基于上述的FLASH存储器的存储文件管理方法,该存储文件管理文件方法为文件写入方法,具体的,写入文件的过程由参数-文件描述开始,目的是建立文件描述和页的链表关系,并将数据写入文件数据存储区,具体的,包括:
S101:读取待写入文件的信息;
其中,待写入文件的信息可以包括待写入文件的名称、待写入文件的长度以及待写入文件的内容等等。
S102:确定待写入文件的文件描述的大小,并判断FLASH存储器中的文件描述卷是否有足够空间写入文件描述;
通过上述所读取的待写入文件的信息可以确定待写入文件的文件描述,从而可以确定文件描述的大小,由于该文件描述需要写入到FLASH存储器中,因此,需要判断文件描述卷是否有足够空间写入文件描述,以保证文件描述的正常写入。
S1031:若文件描述卷中有足够空间写入文件描述,则判断FLASH存储器中的文件数据存储区是否有足够的空间写入待写入文件数据;
当确认文件描述卷中存在足够的空间时,则说明此时对于文件描述而言,可以进行正常的写入操作,由于本实施例的目的在于将待写入文件的数据写入到FLASH存储器中,因此,为了保证待写入文件的数据正常写入,需要判断文件数据存储区是否有足够的空间写入待写入文件数据。
S1041:若文件数据存储区有足够的空间写入待写入文件的数据,则搜索文件数据存储区的第一个空页页号作为文件起始页号,并在文件描述卷中写入文件描述;
当确认文件数据存储区有足够的空间写入待写入文件的数据,此时则对于文件描述与待写入文件的数据而言,均可以进行正常的写入操作,因此,可以为写入操作进行准备,例如:可以确定文件起始页号,该文件起始页号用于确定待写入文件的写入位置,一般情况下,会将文件数据存储区中的第一个空页页号作为文件起始页号,并可以将文件描述写入到文件描述卷中。
S105:从文件描述的起始页号开始在文件数据存储区写入待写入文件数据。
S106:根据文件在文件数据存储区存储的页链表关系更新存储页卷,结束写入过程。
当将文件描述写入到文件描述卷之后,可以在文件描述中的起始页号的位置处开始写入待写入文件数据,从而完成了文件写入操作。
需要注意的是,在上述的判断FLASH存储器中的文件描述卷是否有足够空间写入文件描述之后,该方法还可以包括:
S1032:若文件描述卷中没有足够空间写入文件描述,则输出文件描述卷空间不足异常。
进一步的,在上述的判断FLASH存储器中的文件数据存储区是否有足够的空间写入待写入文件数据之后,该方法还可以包括:
S1042:若文件数据存储区中没有足够的空间写入待写入文件的数据,则输出文件数据存储区空间不足异常。
本实施例提供的存储文件管理方法,通过利用上述的FLASH存储器的结构实现了写入文件的过程,具体的,该FLASH存储器将存储页卷中的每个项保存的地址顺序与项号一致(0项在0编址处,1项在2编址处,2项在4编址处),项号与对应的存储页页号一一对应,从而形成了地址、项号与页之间的映射关系,通过上述映射关系,存储页卷只需要保存下一页的页号,即可指示页的分配使用情况,减少存储页卷所需的存储空间,并提升索引效率,有效地提高了文件写入的质量和效率。
图5为本发明实施例所提供的检测是否存在与待写入文件相应的重名文件的流程图,在上述实施例的基础上,继续参考附图5可知,为了进一步提高该存储文件管理方法使用的稳定可靠性,在读取待写入文件的信息之后,将方法设置为还包括:
S201:检测是否存在与待写入文件相应的重名文件;
在获取到待写入文件的信息之后,可以根据待写入文件的信息对已存储的文件进行检测,检测已存储的文件中是否存在与待写入文件相应的重名文件,具体的,可以将待写入文件的信息中的名称信息与已存储文件的名称信息进行分析比较。
S202:若存在,则输出重名文件异常操作;
若分析比较结果为待写入文件信息中的名称信息与已存储信息的名称信息相同,则可以确认FLASH存储器中存在与待写入文件相应的重名文件,此时可能会出现对同一文件执行了二次写入的过程,因此,为了避免写入操作的误操作,可以输出重名文件异常操作,从而可以使得用户或者其他检测装置来检测具体的原因,并可以进行相应的处理操作。
S203:若不存在,则确定待写入文件的文件描述的大小。
若分析比较结果为待写入文件信息中的名称信息与已存储信息的名称信息不同,则可以确认此时FLASH存储器中并没有存储上述的待写入文件,从而可以正常进行待写入文件的写入操作,即可以获取到待写入文件的文件描述的大小,之后可以按照上述实施例中的步骤102-步骤105进行后续的写入操作,具体可参考上述陈述内容,在此不再赘述。
本实施例提供的存储文件管理方法,通过检测FLASH存储器中是否存在与待写入文件相应的重名文件,从而避免了对同一文件进行了二次误写入的操作,有效地保证了对待写入文件进行写入操作的稳定可靠性,进一步提高了该存储文件管理方法使用的稳定可靠性。
图6为本发明实施例所提供的判断闲置文件的文件描述卷空间是否足够写入文件描述的流程图;图7为本发明实施例所提供的FLASH释放文件描述卷中可释放空间方法流程图;在上述实施例的基础上,继续参考附图6-7可知,本实施例在搜索文件数据存储区的第一个空页页号作为文件起始页号之前,可以将方法设置为还包括:
S301:判断闲置文件的文件描述卷空间是否足够写入文件描述;
当文件描述卷中有足够的空间来写入文件描述时,可以包括两种情况,一种情况为闲置文件的文件描述卷空间具有足够的空间来写入文件描述,另一种情况为整个文件描述卷(包括闲置文件的文件描述卷空间、使用文件的文件描述卷空间以及无效文件的文件描述卷空间等)具有足够的空间来写入文件描述,因此,为了进一步提高该文件管理方法使用的稳定可靠性,需要判断闲置文件的文件描述卷空间是否足够写入文件描述,具体的判断过程可以将文件描述的大小与闲置文件的文件描述卷空间的大小进行分析比较。
S302:若空间不足,则释放无效文件描述的占用空间,并搜索文件数据存储区的第一个空页页号作为文件起始页号;或者,
若闲置文件的文件描述卷空间不足以写入文件描述,此时,为了保证文件描述的正常写入,可以释放无效文件描述的占用空间,从而增加用于存储文件描述的空间大小,而图7为FLASH释放文件描述卷中可释放空间的一种实施方式,该释放无效文件描述的占用空间的过程在文件描述卷中进行,目的在于将已删除的文件描述挤掉,重新生成新的文件描述卷,首先根据文件列表重构文件描述卷,然后擦除原有的文件描述卷,重写新的文件描述卷;在释放无效文件描述的占用空间之后,可以继续搜索文件数据存储区的第一个空页页号作为文件起始页号,并进行上述实施例中的步骤S1041-步骤S105的后续实现过程,具体可参考上述陈述内容,在此不再赘述。
S303:若空间足够,则直接搜索文件数据存储区的第一个空页页号作为文件起始页号。
若闲置文件的文件描述卷空间足够写入文件描述,则可以直接继续搜索文件数据存储区的第一个空页页号作为文件起始页号,并进行上述实施例中的步骤S1041-步骤S105的后续实现过程,具体可参考上述陈述内容,在此不再赘述。
本实施例提供的存储文件管理方法,通过判断闲置文件的文件描述卷空间是否足够写入文件描述,可以有效地保证文件描述写入的安全可靠性,进一步提高了该存储文件管理方法使用的稳定可靠性。
图8为本发明实施例所提供的判断闲置文件的存储空间是否足够写入待写入文件数据的流程图;图9为本发明实施例所提供的FLASH释放已删除文件占用空间方法流程图;在上述实施例的基础上,继续参考附图8-9可知,本实施例在从文件描述的起始页号开始在文件数据存储区写入待写入文件数据之前,将方法设置为还包括:
S401:判断闲置文件的存储空间是否足够写入待写入文件数据;
当文件数据存储区有足够的空间写入待写入文件的数据时,可以包括两种情况,一种情况为闲置文件的存储空间具有足够的空间来写入待写入文件数据,另一种情况为整个文件数据存储区(包括闲置文件的存储空间、使用文件的存储空间以及已删除文件的占用空间等)具有足够的空间来写入待写入文件数据,因此,为了进一步提高该文件管理方法使用的稳定可靠性,需要判断闲置文件的存储空间是否足够写入待写入文件数据,具体的判断过程可以将待写入文件数据的大小与闲置文件的存储空间的大小进行分析比较。
S402:若空间不足,则释放已删除文件占用空间,并从文件描述的起始页号开始在文件数据存储区写入待写入文件数据;或者,
若闲置文件的存储空间不足以写入待写入文件数据,此时,为了保证待写入数据的正常写入操作,可以释放已删除文件占用空间,从而增加用于存储待写入数据的空间大小,而图9为FLASH释放已删除文件占用空间的一种实施方式。此操作只需在存储页卷内进行,作用是把所有标记为0x0000(已无效)页重新写为0xffff;在释放已删除文件占用空间完毕后,可以从文件描述的起始页号开始在文件数据存储区写入待写入文件数据,并进行上述实施例中的步骤S1041-步骤S105的后续实现过程,具体可参考上述陈述内容,在此不再赘述。
S403:若空间足够,则直接从文件描述的起始页号开始在文件数据存储区写入待写入文件数据。
若闲置文件的存储空间足够写入待写入文件数据,则可以直接从文件描述的起始页号开始在文件数据存储区写入待写入文件数据,并进行上述实施例中的步骤S1041-步骤S105的后续实现过程,具体可参考上述陈述内容,在此不再赘述。
本实施例提供的存储文件管理方法,通过判断闲置文件的存储空间是否足够写入待写入文件数据,可以有效地保证待写入文件数据进行写入操作的稳定可靠性,进一步提高了该存储文件管理方法使用的稳定可靠性。
图10为本发明实施例所提供的检测写入待写入文件数据是否有错的流程图;在上述实施例的基础上,继续参考附图10可知,为了进一步确定数据写入操作的安全可靠性,本实施例在从文件描述的起始页号开始在文件数据存储区写入待写入文件数据之后,将方法设置为还包括:
S501:检测写入待写入文件数据是否有错;
在将待写入文件数据进行写入操作完毕后,可以将已写入FLASH存储器中的文件数据内容与待写入文件数据的内容进行分析比较,以检测所写入的待写入文件数据是否有错。
S502:若写入待写入文件数据有错,则输出错误信息;或者,
当分析比较的结果为已写入的文件数据内容与待写入文件数据的内容不一致,此时写入的待写入文件数据有错误,从而可以确认此时为错误写入操作,为了便于提醒用户,则输出错误信息。
S503:若写入待写入文件数据正确,则根据待写入文件在文件数据存储区存储的页链表关系更新存储页卷。
当分析比较的结果为已写入的文件数据内容与待写入文件数据的内容一致,此时写入的待写入文件数据为正确写入操作,进而则根据待写入文件在文件数据存储区存储的页链表关系更新存储页卷,以便于用户对已写入的待写入文件进行读取或删除等操作。
本实施例提供的存储文件管理方法,通过检测写入待写入文件数据是否有错,可以有效地保证待写入文件数据进行写入操作的正确可靠性,进一步提高了该存储文件管理方法使用的稳定可靠性。
具体应用时,图11为本发明实施例所提供的基于FLASH存储器写文件的方法流程图;参考附图11可知,该数据文件写入步骤包括:
步骤A:系统读取文件的信息,然后检测是否有重名文件,如果有,输出重名文件异常,如果没有,执行步骤B;
步骤B:确定文件描述的大小,并判断FLASH的文件描述卷是否有足够空间写此文件描述,如果空间不足,则输出文件描述卷空间不足异常,如果文件描述卷空间足够,执行步骤C;
步骤C:判断文件数据存储区是否有足够的空间写入文件数据,如果空间不足,则输出文件数据存储区空间不足异常,如果空间足够,执行步骤D;
步骤D:判断闲置文件描述卷空间是否足够写文件描述,如果空间不足,则释放无效文件描述占用空间,执行步骤E;如果空间足够,直接执行步骤E;
步骤E:搜索文件数据存储区的第一个空页页号作为文件初始页号,写文件描述,执行步骤F;
步骤F:判断闲置存储空间是否足够写文件数据,如果空间不足,则释放已删除文件占用空间,执行步骤G;如果空间足够,则执行步骤G;
步骤G:从文件描述的起始页号开始在文件数据存储区写入数据;执行步骤H;
步骤H:检测写数据是否有错,如果出错,则返回错误信息;如果正确,执行步骤I;
步骤I:根据文件在文件数据存储区存储的页链表关系,更新存储页卷,结束写入过程。
图12为本发明另一实施例所提供一种基于FLASH存储器的存储文件管理方法的流程图;参考附图12可知,本实施例提供了另一种存储文件管理方法,该存储文件管理方法为读取文件方法,并且,上述读取文件的过程由参数—文件描述开始,目标是把文件描述中文件起始页号所决定的链表的页的数据读出来,具体的,该方法包括:
步骤A:系统从文件描述卷读取文件起始页号;
步骤B:读取文件起始页号对应的存储页所存储的文件数据;
具体的,可以先确定文件的起始页号的具体位置,具体的,可以检测上述的文件起始页号是否为预先设置的0x0001,如果是,返回读取正确信息,如果不是,则可以确定文件的起始页号所在的其他位置,待确认文件的起始页号的具体位置之后,再读取文件起始页号对应的存储页所存储的文件数据;
步骤C:根据文件存储页卷读取文件下一页的页号,并读取该页号对应的存储页所存储的文件数据,直至文件数据读取完毕。
具体的,在读取完毕文件起始页号对应的存储页所存储的文件数据之后,为了实现对整个文件数据的读取,可以获取文件下一页的页号,然后根据页号读取对应的存储页所存储的文件数据。
进一步的,为了提高文件读取的正确可靠性,在读取所述文件起始页号对应的存储页所存储的文件数据之后,将方法设置为还包括:
步骤D:判断是否读取正确;
若如果读取错误,则返回错误信息,结束读取文件;
如果读取正确,则在存储页卷中根据文件起始页号查询对应的项的内容,获取下一页的页号,并读取该页号对应的存储页所存储的文件数据。
其中,错误信息包括:读操作错误;文件长度错误;文件末尾校验字错误。
本实施例提供的存储文件管理方法,通过利用上述的FLASH存储器的结构实现了写入文件的过程,具体的,该FLASH存储器将存储页卷中的每个项保存的地址顺序与项号一致(0项在0编址处,1项在2编址处,2项在4编址处),项号与对应的存储页页号一一对应,从而形成了地址、项号与页之间的映射关系,通过上述映射关系,存储页卷只需要保存下一页的页号,即可指示页的分配使用情况,减少存储页卷所需的存储空间,并提升索引效率,有效地提高了读取文件的质量和效率。
图13为本发明又一实施例所提供一种基于FLASH存储器的存储文件管理方法的流程图,参考附图13可知,本实施例提供了又一种存储文件管理方法,该存储文件管理方法为删除文件方法,上述删除文件过程由参数-文件描述开始,目的是对删除文件的文件描述及其数据保存页进行标记,具体的,该删除文件的方法包括:
步骤A:从文件描述卷中读取文件描述起始页号的地址addr,以及文件数据的起始页号pageNum,并将存储页卷中addr指定的地址内容设置为0(表示此项对应页数据已无效);
在读取到文件数据的起始页号pageNum之后,可以判断该页号pageNum是否为预先设置的0x0001,如果是,则返回正确信息;如果不是,则可以继续执行步骤B。
步骤B:在存储页卷中根据文件数据的起始页号查询对应项的内容,获取下一页号地址addr及下一页号pageNum,并将存储页卷中下一页号地址addr指定地址的内容设置为0(表示此项对应页数据已无效),直至文件数据删除完毕。
进一步的,为了提高删除文件的可靠性,在将存储页卷中addr指定地址的内容设置为0之后,将方法设置为还包括:
步骤C:判断删除操作是否出错;
如果删除操作出错,则返回出错信息;
如果删除操作正确,则可以对所述存储页卷中位于当前页号的下一页号地址的内容设置为0,以完成对整个文件的删除操作。
其中,出错信息包含:操作错误、文件占用数据页数错误。
本实施例提供的存储文件管理方法,通过利用上述的FLASH存储器的结构实现了写入文件的过程,具体的,该FLASH存储器将存储页卷中的每个项保存的地址顺序与项号一致(0项在0编址处,1项在2编址处,2项在4编址处),项号与对应的存储页页号一一对应,从而形成了地址、项号与页之间的映射关系,通过上述映射关系,存储页卷只需要保存下一页的页号,即可指示页的分配使用情况,减少存储页卷所需的存储空间,并提升索引效率,有效地提高了删除文件的正确可靠性和效率。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种FLASH存储器,其特征在于,用于存储文件,所述FLASH存储器包括:多个页、文件的起始页号、文件的页的分配信息;
其中,所述页为所述FLASH存储器可擦除的最小单位存储单元,用于存储文件;页号为所述页在所述FLASH存储器中的页序号;
所述文件的起始页号表示文件在所述FLASH存储器的存储页的起始页的页号;
所述文件的所述页的分配信息表示所述文件在所述FLASH存储器中的各个存储页的链表结构;
所述页的分配信息包括多个项,项的项号为所述项在所述页的分配信息中的项序号,所述项的项号与所述页的页号一一对应;
所述文件的页的分配信息的项存储有文件在所述FLASH存储器的与所述项的项号相对应的存储页的下一个存储页的页号。
2.根据权利要求1所述的FLASH存储器,其特征在于,所述项的项号与所述页的页号一一对应是指,所述项对应的页的页号与所述项的项号的值相同。
3.根据权利要求1所述的FLASH存储器,其特征在于,文件在所述FLASH存储器的起始页的页号为所述文件的页的分配信息的起始项的项号,所述起始项的存储内容为所述文件在所述FLASH存储器的起始页的下一个存储页的页号。
4.根据权利要求1所述的FLASH存储器,其特征在于,所述页的分配信息的项还用于:
存储表示对应的存储页是文件结尾的信息、表示对应的存储页数据已无效的信息、表示对应的存储页无数据的信息和表示对应的存储页是坏页的信息中的其中一种或多种信息。
5.根据权利要求4所述的FLASH存储器,其特征在于,项号与所述文件在所述FLASH存储器的最后一个存储页的页号对应的项存储有表示所述文件结尾的信息。
6.根据权利要求1-5任一项所述的FLASH存储器,其特征在于,所述页的分配信息的每个项的存储内容的长度设置为固定的字节长度,按项号顺序存储于所述页的分配信息中,每个项在所述页的分配信息的地址与所述项的项号成比例对应。
7.根据权利要求6所述的FLASH存储器,其特征在于,所述固定的字节长度为K个字节,所述项从所述页的分配信息的起始地址开始存储,每个项对应的起始地址为所述项的项号的K倍。
8.根据权利要求1-5任一项所述的FLASH存储器,其特征在于,还包括:页长度和存储页数;
其中,页长度为页的存储容量,是所述FLASH存储器可擦除的最小单位长度;
存储页数为所述FLASH存储器按照所述页长度划分后的可用于存储的页的页数。
9.根据权利要求8所述的FLASH存储器,其特征在于,还包括:
系统区和文件数据区;
其中,文件的起始页号、文件的页的分配信息、页长度和存储页数均存储于所述系统区的存储页;
所述文件存储于所述文件数据区的存储页。
10.根据权利要求9所述的FLASH存储器,其特征在于,所述系统区包括引导区、存储页卷和文件描述卷;
所述引导区用于描述所述FLASH存储器的信息,包括页长度和存储页数;
所述存储页卷用于表示页的分配信息,包括文件的页分配信息;
所述文件描述卷用于描述存储文件的信息,包括文件的起始页号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110935551.7A CN113641630A (zh) | 2017-03-27 | 2017-03-27 | 一种flash存储器 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710189447.1A CN108664482B (zh) | 2017-03-27 | 2017-03-27 | Flash存储器及存储文件管理方法 |
CN202110935551.7A CN113641630A (zh) | 2017-03-27 | 2017-03-27 | 一种flash存储器 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710189447.1A Division CN108664482B (zh) | 2017-03-27 | 2017-03-27 | Flash存储器及存储文件管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113641630A true CN113641630A (zh) | 2021-11-12 |
Family
ID=63786293
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110935551.7A Pending CN113641630A (zh) | 2017-03-27 | 2017-03-27 | 一种flash存储器 |
CN201710189447.1A Active CN108664482B (zh) | 2017-03-27 | 2017-03-27 | Flash存储器及存储文件管理方法 |
CN202110935528.8A Pending CN113641629A (zh) | 2017-03-27 | 2017-03-27 | 一种flash存储器的文件写入和读取方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710189447.1A Active CN108664482B (zh) | 2017-03-27 | 2017-03-27 | Flash存储器及存储文件管理方法 |
CN202110935528.8A Pending CN113641629A (zh) | 2017-03-27 | 2017-03-27 | 一种flash存储器的文件写入和读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (3) | CN113641630A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716904A (zh) * | 2019-10-14 | 2020-01-21 | 深圳市优创亿科技有限公司 | 一种嵌入式文件系统设计方法 |
CN113050876A (zh) * | 2019-12-27 | 2021-06-29 | 中兴通讯股份有限公司 | 一种文件数据写入方法、装置、设备及存储介质 |
CN112596670A (zh) * | 2020-12-04 | 2021-04-02 | 北京自动化控制设备研究所 | 一种大容量Flash存储器读写操作的设计方法 |
CN113934371B (zh) * | 2021-10-08 | 2024-04-12 | 福建星网视易信息系统有限公司 | 一种存储器及其数据管理方法和计算机存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040072875A (ko) * | 2003-02-11 | 2004-08-19 | 유비시스테크놀러지 주식회사 | 낸드 플래시 메모리를 이용한 저장장치 |
CN101127004A (zh) * | 2007-09-24 | 2008-02-20 | 中兴通讯股份有限公司 | 一种在闪存上存取数据的系统及方法 |
CN102279805A (zh) * | 2011-09-06 | 2011-12-14 | 四川九洲电器集团有限责任公司 | 一种存储器数据存放及读取方法 |
CN102708107A (zh) * | 2011-12-13 | 2012-10-03 | 北京安天电子设备有限公司 | 一种追加式文件存储的方法及系统 |
WO2013069859A1 (ko) * | 2011-11-09 | 2013-05-16 | 한양대학교 산학협력단 | 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법 |
CN103257928A (zh) * | 2013-04-16 | 2013-08-21 | 深圳市江波龙电子有限公司 | 闪存设备数据管理方法和系统 |
CN105340020A (zh) * | 2013-07-16 | 2016-02-17 | 英特尔公司 | 存储器系统中的擦除管理 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1204501C (zh) * | 2001-09-18 | 2005-06-01 | 华为技术有限公司 | Flash存储文件管理方法 |
CN1277213C (zh) * | 2004-12-31 | 2006-09-27 | 大唐微电子技术有限公司 | 一种闪存文件系统管理方法 |
CN103258044B (zh) * | 2013-05-24 | 2017-01-18 | 北京航天自动控制研究所 | 一种面向dsp的二元组nandflash数据文件管理方法 |
CN105468304B (zh) * | 2015-11-26 | 2018-05-11 | 恒宝股份有限公司 | 一种Native存储卡及其管理方法 |
CN106527969B (zh) * | 2016-09-21 | 2017-09-19 | 中国科学院地质与地球物理研究所 | 一种寿命均衡的NandFlash存储器读写方法 |
-
2017
- 2017-03-27 CN CN202110935551.7A patent/CN113641630A/zh active Pending
- 2017-03-27 CN CN201710189447.1A patent/CN108664482B/zh active Active
- 2017-03-27 CN CN202110935528.8A patent/CN113641629A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040072875A (ko) * | 2003-02-11 | 2004-08-19 | 유비시스테크놀러지 주식회사 | 낸드 플래시 메모리를 이용한 저장장치 |
CN101127004A (zh) * | 2007-09-24 | 2008-02-20 | 中兴通讯股份有限公司 | 一种在闪存上存取数据的系统及方法 |
CN102279805A (zh) * | 2011-09-06 | 2011-12-14 | 四川九洲电器集团有限责任公司 | 一种存储器数据存放及读取方法 |
WO2013069859A1 (ko) * | 2011-11-09 | 2013-05-16 | 한양대학교 산학협력단 | 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법 |
CN102708107A (zh) * | 2011-12-13 | 2012-10-03 | 北京安天电子设备有限公司 | 一种追加式文件存储的方法及系统 |
CN103257928A (zh) * | 2013-04-16 | 2013-08-21 | 深圳市江波龙电子有限公司 | 闪存设备数据管理方法和系统 |
CN105340020A (zh) * | 2013-07-16 | 2016-02-17 | 英特尔公司 | 存储器系统中的擦除管理 |
Also Published As
Publication number | Publication date |
---|---|
CN108664482B (zh) | 2021-09-07 |
CN108664482A (zh) | 2018-10-16 |
CN113641629A (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107168884B (zh) | 存储系统、信息处理系统及非易失性存储器的控制方法 | |
CN107168885B (zh) | 存储系统、信息处理系统及非易失性存储器的控制方法 | |
CN107168640B (zh) | 存储系统、信息处理系统及非易失性存储器的控制方法 | |
CN107168639B (zh) | 存储系统、信息处理系统及非易失性存储器的控制方法 | |
US8392690B2 (en) | Management method for reducing utilization rate of random access memory (RAM) used in flash memory | |
CN108664482B (zh) | Flash存储器及存储文件管理方法 | |
US20090307291A1 (en) | Smart card storage system and file management method therein | |
CN110018998B (zh) | 一种文件管理方法、系统及电子设备和存储介质 | |
US7761648B2 (en) | Caching method for NAND flash translation layer | |
US20180089074A1 (en) | Techniques to Manage Key-Value Storage at a Memory or Storage Device | |
CN111125447A (zh) | 一种元数据访问方法、装置、设备及可读存储介质 | |
US10228875B2 (en) | Data writing and reading methods for flash | |
US20040210706A1 (en) | Method for managing flash memory | |
CN108399047B (zh) | 一种闪存文件系统及其数据管理方法 | |
JP6147933B2 (ja) | コントローラ、フラッシュメモリ装置、データブロック安定性を識別する方法、及びデータをフラッシュメモリ装置に記憶する方法 | |
GB2476536A (en) | Modified B+ tree to map logical addresses to physical addresses in NAND flash memory | |
CN108829342B (zh) | 一种日志存储方法、系统及存储装置 | |
CN113568582B (zh) | 数据管理方法、装置和存储设备 | |
CN102541969B (zh) | 基于fat文件系统的文件保护方法、系统及存储器 | |
WO2020192710A1 (zh) | 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置 | |
CN110147332B (zh) | 目录数据的管理方法与存储器装置 | |
CN114089915B (zh) | 基于flash存储器的文件追加写操作方法及装置 | |
CN108376121B (zh) | 一种Flash存储器的数据存储方法 | |
KR20090119481A (ko) | 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법 | |
CN116301614A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211112 |
|
RJ01 | Rejection of invention patent application after publication |