CN102279805A - 一种存储器数据存放及读取方法 - Google Patents
一种存储器数据存放及读取方法 Download PDFInfo
- Publication number
- CN102279805A CN102279805A CN2011102616419A CN201110261641A CN102279805A CN 102279805 A CN102279805 A CN 102279805A CN 2011102616419 A CN2011102616419 A CN 2011102616419A CN 201110261641 A CN201110261641 A CN 201110261641A CN 102279805 A CN102279805 A CN 102279805A
- Authority
- CN
- China
- Prior art keywords
- data
- page
- entry
- district
- area
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及存储器领域,本发明公开了一种存储器数据存放及读取方法,将存储器的物理空间划分为a个逻辑页,a个逻辑页划分为三部分:数据区、页面分配区、目录区;所述数据区为存储器最后面的x个逻辑页,作为数据的存储区域,在存放数据时,从该区内分配逻辑页;所述页面分配区用于记录数据区每一页的分配情况,页面分配区共有y页,每页c个字节,共有x个记录项,每一个记录项对应着数据区相应页的使用情况;所述目录区用来存储数据文件的主要信息。本申请所述方法存储时操作简单,删除数据简单,实现了数据空间的回收,通过读取目录区,用户可以大致知道该文件中存储的是什么数据。
Description
技术领域
本发明涉及存储器领域,尤其涉及一种存储器数据存放及读取方法。
背景技术
在由单片机(或Dsp、Avr、Arm等微处理器)构成的数据采集系统中,往往有大量信息数据要保存,人们对数据存储提出了更高的要求,因而用于存储数据的存储器如存储芯片容量也越来越大。但是,在增大数据存储量的同时,人们也希望能更便捷高效地操作其中的数据(包括浏览、添加和删除等)。然而,单片机(或Dsp、Avr、Arm等微处理器)以及用于保存数据的存储器本身并没有提供这种功能,为此,需要开发一种存储器数据存放及读取的方法,以解决在大量的数据情况下,快速存取数据。
发明内容
针对现有技术中的存储器难以快速存取数据,因此需要提供一种存储器数据存放及读取方法。
本发明公开了一种存储器数据存放及读取方法,其具体方法如下
将存储器的物理空间划分为a个逻辑页,每页b个字节, a个逻辑页划分为三部分:数据区、页面分配区、目录区;所述数据区包含x个逻辑页,所述页面分配区包含y个逻辑页,所述目录区包含z个逻辑页,a=x+y+z;
所述数据区为存储器最后面的x个逻辑页,作为数据的存储区域,在存放数据时,从该区内分配逻辑页;
所述页面分配区用于记录数据区每一页的分配情况,页面分配区共有y页,每页c个字节,共有x个记录项,每一个记录项对应着数据区相应页的使用情况;
所述目录区用来存储数据文件的主要信息。
优选地,把记录项按照链表的形式组织起来,每个存储文件对应一个链表,链表中每个结点为一个记录项,记录项的内容为下一个记录项的编号,最后一个记录项的内容为链表结束标志。
优选地,存放数据的方法具体为:
在目录区中寻找空位置,若目录区已经存满,则报告并中止程序;否则,记录该位置,记为MyFile;
计算文件数据需占用的页面数,记为MyPage;
在页面分配区中寻找并统计标志为空的记录项,若其数目小于MyPage,则报告并中止程序,否则在MyFile位置填写文件的主要信息;
依次在找到的空记录项内填入下一空记录项的序号,最后一个空记录项填入链表结束标志;
从文件首地址开始,按照文件链表依次把数据写入数据区相应的逻辑页。
优选地,删除数据的方法具体为:
在目录区中寻找到该文件,提取出其首地址,记录为First;把该文件所占用的目录区的首字节记为空闲标志;
在页面分配区中找到First的记录项,取出其内容,记为Next,把First的记录项的内容改写为页面未分配标志,将First=Next,重复此步骤,直至Next为链表结束标志。
本发明的有益效果为:存储时操作简单,本申请所述方法只需要读取目录区和页面分配区即可,搜索空闲空间的效率高。删除数据简单,本申请所述方法只需要修改目录区和页面分配区即可,不仅定位数据快,而且修改的工作量很小。实现了数据空间的回收,本申请所述方法利用链表分配存储空间,允许一个文件的数据非连续存放,回收的空间可以自由使用。通过读取目录区,用户可以大致知道该文件中存储的是什么数据。
附图说明
图1为存储器的物理空间划分结构图。
具体实施方式
下面结合附图对本发明作进一步阐述。
本发明公开了一种存储器数据存放及读取方法,其具体方法如下
将存储器的物理空间划分为a个逻辑页,每页b个字节,其中b>2,其中a个逻辑页又划分为三部分:数据区、页面分配区、目录区;所述数据区包含x个逻辑页,所述页面分配区包含y个逻辑页,所述目录区包含z个逻辑页,a=x+y+z。存储器的物理空间划分如附图1所示。
所述存储器最后面的x个逻辑页作为数据区,其序号从0开始编号,数据区作为数据的存储区域,在存放数据时,从该区内分配若干页,每次存储一页。
所述页面分配区记录了数据区每一页的分配情况,页面分配区共有y页,每页有c个字节,其中c>2,每2字节组成一个记录项,共有x个记录项,记录项从0开始编号,每一个记录项对应着数据区相应页的使用情况。
所述目录区用来存储数据的主要信息,所述主要信息包括数据的文件名,文件生成的日期及数据在数据区存储的首地址。根据这些信息可以知道存储数据文件名、文件生成的日期以及文件的数据在数据区中的存储首地址
文件目录项的结构如下:
目录区共占用az页。根据每个文件信息最多占用10字节,每页m(m>10)个字节,则在此文件系统中,最多可存储az*m/10个文件。
在实际应用中,一个数据文件的数据区可能占用多页。但随着文件的增删,数据区的空闲空间出现不连续的状况,因而数据区的分配并不能保证连续,而是根据当前数据区的使用情况来决定某一部分文件内容应该放在哪一页上。为了把这些分散的数据有机连接起来,优选地,把记录项按照链表的形式组织起来,每个文件对应着一个链表,链表中每个结点为一个记录项,记录项的内容为下一个记录项的编号,最后一个记录项的内容为0FFFFH,表示链表结束。把这些记录项对应的页面连接起来就构成了一个文件的完整数据。另外,如果记录项的内容为0EEEEH,表示其对应的数据页未分配。
下面举例说明本发明的方法如何读取获取文件数据:
①首先在目录区中根据文件名找到包含该文件名的目录项,从而获取该文件的属性及其首地址。如文件“00000103”的日期为2003年11月24日,其首地址为0005H。
②根据文件的首地址,在页面分配区中找到该记录项0005H。在该记录项中存储的值为0007H,可知该文件的下一记录项为0007H。
③同理,可得到文件的后续记录项为0008H、0009H、000BH,直到从000BH记录项中读到0FFFFH。此时表示这是最后一项,不需再继续找后继项了。
④至此,可知文件“00000103”的数据分为5部分存储在数据区中,分别存储在0005H、0007H、0008H、0009H、000BH页中。只要按序到数据中读取这些中的数据,并连接起来,就形成了该文件的全部数据。
在大多数系统中,存储芯器中的数据存放都是要用顺序存储法:每次存储数据时都是按照先后顺序依次写入数据空间。本申请所述方法与顺序存储法相比,具有下列优点:
①存储时操作简单。在顺序存储中,寻找空闲空间需要逐次读出已经存储的数据,直到找到空闲空间为止,数据操作量大。本申请所述方法只需要读取目录区和页面分配区即可,搜索空闲空间的效率高。
②删除数据简单。在顺序存储中,为了定位到需要删除的数据,必须逐次读出存储的数据,直到找到需要删除物数据,再把该空闲改写为未用状态。本申请所述方法只需要修改目录区和页面分配区即可,不仅定位数据快,而且修改的工作量很小。
③实现了数据空间的回收。顺序存储法中,在删除的某次数据后,该数据所占用的空间可能无法回收使用。因为回收的空间会形成碎片:该空间前后都存储有数据,但该空间的长度无法满足一个更大长度的数据。本申请所述方法利用链表分配存储空间,允许一个文件的数据非连续存放,回收的空间可以自由使用。
④通过读取目录区,用户可以大致知道该文件中存储的是什么数据,而顺序存储法却无法提供这些信息。
(1)添加文件
添加文件的主要工作是为新文件寻找存储空间,其寻找步骤如下:
①在目录区中寻找空位置。若目录区已经存满,则向用户报告并中止程序;否则,记录该位置(记为MyFile)。
②计算文件数据需占用的页面数,记为My Page。
③在页面分配区中寻找并统计标志为空的记录项,其内容为0EEEEH。若其数目小于MyPage,则向用户报告,并中止程序。
④在MyFile位置填写文件名和日期,并把找到的第一个空记录项的序号填入,作为该文件的首地址。
⑤依次在找到的空记录项内填入下一空记录项的序号,最后一个空记录项填入0FFFFH。
⑥从文件首地址开始,按照文件链表依次把数据写入数据区相应的页。
(2)删除文件
删除文件的主要工作是回收该文件所占用的空间,以便将来分配给其它文件。
①在目录区中寻找到该文件,提取出其首地址,记录First。随后,把该文件所占用的目录区的首字节清为0FFH,表示该目录项空闲。
②在页面分配区中找到First记录项,取出其内容,记为Next。随后,把First记录项的内容改写为0EEEEH。
③First=Next,重复②,直至Next=0FFFFH。 由添加文件可以看出,在搜索空间时,只对目录区和页面分配区操作,因此,删除文件时,只需要释放目录和页面分配区即可,而不需要修改数据区。这大大提高了删除的效率。
(3)系统格式化
系统格式化的目的是把存储器按照前面所述的格式进行初始化,以正确反映目前的使用状况。格式化的主要工作包括:
①把目录区全部写为0FFH,以清空目录区中所有数据;
②把页面分配区的所有记录项写为0EEEEH,标志它们全部未使用。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种存储器数据存放及读取方法,其具体方法如下
将存储器的物理空间划分为a个逻辑页,每页b个字节, a个逻辑页划分为三部分:数据区、页面分配区、目录区;所述数据区包含x个逻辑页,所述页面分配区包含y个逻辑页,所述目录区包含z个逻辑页,a=x+y+z;
所述数据区为存储器最后面的x个逻辑页,作为数据的存储区域,在存放数据时,从该区内分配逻辑页;
所述页面分配区用于记录数据区每一页的分配情况,页面分配区共有y页,每页c个字节,共有x个记录项,每一个记录项对应着数据区相应页的使用情况;
所述目录区用来存储数据文件的主要信息。
2.如权利要求1所述的存储器数据存放及读取方法,其特征在于把记录项按照链表的形式组织起来,每个存储文件对应一个链表,链表中每个结点为一个记录项,记录项的内容为下一个记录项的编号,最后一个记录项的内容为链表结束标志。
3.如权利要求2所述的存储器数据存放及读取方法,其特征在于存放数据的方法具体为:
在目录区中寻找空位置,若目录区已经存满,则报告并中止程序;否则,记录该位置,记为MyFile;
计算文件数据需占用的页面数,记为MyPage;
在页面分配区中寻找并统计标志为空的记录项,若其数目小于MyPage,则报告并中止程序,否则在MyFile位置填写文件的主要信息;
依次在找到的空记录项内填入下一空记录项的序号,最后一个空记录项填入链表结束标志;
从文件首地址开始,按照文件链表依次把数据写入数据区相应的逻辑页。
4.如权利要求2或3所述的储器数据存放及读取方法,其特征在于删除数据的方法具体为:
在目录区中寻找到该文件,提取出其首地址,记录为First;把该文件所占用的目录区的首字节记为空闲标志;
在页面分配区中找到First的记录项,取出其内容,记为Next,把First的记录项的内容改写为页面未分配标志,将First=Next,重复此步骤,直至Next为链表结束标志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102616419A CN102279805A (zh) | 2011-09-06 | 2011-09-06 | 一种存储器数据存放及读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102616419A CN102279805A (zh) | 2011-09-06 | 2011-09-06 | 一种存储器数据存放及读取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102279805A true CN102279805A (zh) | 2011-12-14 |
Family
ID=45105265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102616419A Pending CN102279805A (zh) | 2011-09-06 | 2011-09-06 | 一种存储器数据存放及读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102279805A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729303A (zh) * | 2014-01-20 | 2014-04-16 | 飞天诚信科技股份有限公司 | 一种Flash的数据写入和读取方法 |
CN105426313A (zh) * | 2014-09-12 | 2016-03-23 | 株洲南车时代电气股份有限公司 | 司法记录器数据存储结构、管理系统及管理方法 |
CN108376121A (zh) * | 2018-03-01 | 2018-08-07 | 曲阜师范大学 | 一种Flash存储器的数据存储结构 |
CN113495681A (zh) * | 2020-04-07 | 2021-10-12 | 杭州萤石软件有限公司 | 一种nand flash文件数据存取方法、装置及存储介质 |
CN113641630A (zh) * | 2017-03-27 | 2021-11-12 | 珠海极海半导体有限公司 | 一种flash存储器 |
CN114035749A (zh) * | 2018-01-12 | 2022-02-11 | 珠海极海半导体有限公司 | 电子设备和Flash存储器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1405683A (zh) * | 2001-09-18 | 2003-03-26 | 华为技术有限公司 | Flash存储文件管理方法 |
CN1963814A (zh) * | 2006-11-29 | 2007-05-16 | 珠海市泰德企业有限公司 | 存储器数据管理方法 |
CN101042696A (zh) * | 2006-03-23 | 2007-09-26 | 北京握奇数据系统有限公司 | 智能卡存储系统及该系统中文件创建管理的方法 |
US20100185705A1 (en) * | 2009-01-14 | 2010-07-22 | Stmicroelectronics Pvt.Ltd. | File system |
-
2011
- 2011-09-06 CN CN2011102616419A patent/CN102279805A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1405683A (zh) * | 2001-09-18 | 2003-03-26 | 华为技术有限公司 | Flash存储文件管理方法 |
CN101042696A (zh) * | 2006-03-23 | 2007-09-26 | 北京握奇数据系统有限公司 | 智能卡存储系统及该系统中文件创建管理的方法 |
CN1963814A (zh) * | 2006-11-29 | 2007-05-16 | 珠海市泰德企业有限公司 | 存储器数据管理方法 |
US20100185705A1 (en) * | 2009-01-14 | 2010-07-22 | Stmicroelectronics Pvt.Ltd. | File system |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729303A (zh) * | 2014-01-20 | 2014-04-16 | 飞天诚信科技股份有限公司 | 一种Flash的数据写入和读取方法 |
CN103729303B (zh) * | 2014-01-20 | 2017-03-29 | 飞天诚信科技股份有限公司 | 一种Flash的数据写入和读取方法 |
CN105426313A (zh) * | 2014-09-12 | 2016-03-23 | 株洲南车时代电气股份有限公司 | 司法记录器数据存储结构、管理系统及管理方法 |
CN113641630A (zh) * | 2017-03-27 | 2021-11-12 | 珠海极海半导体有限公司 | 一种flash存储器 |
CN113641629A (zh) * | 2017-03-27 | 2021-11-12 | 珠海极海半导体有限公司 | 一种flash存储器的文件写入和读取方法 |
CN114035749A (zh) * | 2018-01-12 | 2022-02-11 | 珠海极海半导体有限公司 | 电子设备和Flash存储器 |
CN114035749B (zh) * | 2018-01-12 | 2023-02-28 | 珠海极海半导体有限公司 | 电子设备和Flash存储器 |
CN108376121A (zh) * | 2018-03-01 | 2018-08-07 | 曲阜师范大学 | 一种Flash存储器的数据存储结构 |
CN113495681A (zh) * | 2020-04-07 | 2021-10-12 | 杭州萤石软件有限公司 | 一种nand flash文件数据存取方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107862064B (zh) | 一个基于nvm的高性能、可扩展的轻量级文件系统 | |
CN103092775B (zh) | 一种基于键值结构的空间数据双缓存方法及机制 | |
CN108628753B (zh) | 内存空间管理方法和装置 | |
CN100483420C (zh) | 基于快照的细粒度文件与目录版本管理方法 | |
CN100498740C (zh) | 一种数据缓存处理方法、系统及数据缓存装置 | |
CN103154948B (zh) | 可丢弃文件的基于卡的管理 | |
CN107180092B (zh) | 一种文件系统的控制方法、装置及终端 | |
CN102279805A (zh) | 一种存储器数据存放及读取方法 | |
CN101571869B (zh) | 一种智能卡的文件存储、读取方法及装置 | |
CN106708427A (zh) | 一种适用于键值对数据的存储方法 | |
CN100424699C (zh) | 一种属性可扩展的对象文件系统 | |
CN105612491A (zh) | 分布式存储架构中基于具有密集树结构的元数据的盘区的管理 | |
CN101488153A (zh) | 嵌入式Linux下大容量闪存文件系统的实现方法 | |
CN107463447A (zh) | 一种基于远程直接非易失内存访问的b+树管理方法 | |
CN105389264B (zh) | 存储系统中垃圾收集的方法和系统 | |
CN103838853B (zh) | 一种基于不同存储介质的混合文件系统 | |
CN107016100A (zh) | 一种基于非易失性内存文件系统的元数据管理方法 | |
CN102722449A (zh) | 基于SSD的Key-Value型本地存储方法及系统 | |
CN110347852A (zh) | 嵌入横向扩展键值存储系统的文件系统及文件管理方法 | |
WO2021208239A1 (zh) | 一种低延迟的文件系统地址空间管理方法、系统及介质 | |
CN102915340A (zh) | 一种扩展的基于b+树对象文件系统 | |
US10496612B2 (en) | Method for reliable and efficient filesystem metadata conversion | |
CN102169460A (zh) | 变长数据管理方法及装置 | |
CN106682110A (zh) | 一种基于哈希格网索引的影像文件存储和管理系统及方法 | |
CN102024060B (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20111214 |