CN108376121A - 一种Flash存储器的数据存储结构 - Google Patents

一种Flash存储器的数据存储结构 Download PDF

Info

Publication number
CN108376121A
CN108376121A CN201810171806.5A CN201810171806A CN108376121A CN 108376121 A CN108376121 A CN 108376121A CN 201810171806 A CN201810171806 A CN 201810171806A CN 108376121 A CN108376121 A CN 108376121A
Authority
CN
China
Prior art keywords
subpool
memory block
root
free time
record
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
CN201810171806.5A
Other languages
English (en)
Other versions
CN108376121B (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.)
Qufu Normal University
Original Assignee
Qufu Normal University
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 Qufu Normal University filed Critical Qufu Normal University
Priority to CN201810171806.5A priority Critical patent/CN108376121B/zh
Publication of CN108376121A publication Critical patent/CN108376121A/zh
Application granted granted Critical
Publication of CN108376121B publication Critical patent/CN108376121B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Abstract

本发明公开一种Flash存储器的数据存储结构,包括根存储区、子存储区池和数据存储区,子存储区池包括1个以上的子存储区,其中根存储区用于存储数据的根分类信息,子存储区用于存储数据的子分类信息,数据存储区用于存储数据信息;所述根存储区包括根存储区占用链表、根存储区空闲链表和根分类记录区,其中根存储区占用链表为根存储区占用记录组成的静态链表,根存储区空闲链表为根存储区空闲记录组成的静态链表,根分类记录区用于存储根分类记录。本发明能够解决使用FLASH存储器程序代码长和操作复杂的问题。

Description

一种Flash存储器的数据存储结构
技术领域
本发明属于数据存储领域,具体涉及一种Flash存储器的数据存储结构。
背景技术
数据存储是单片机系统中不可缺少的功能,主要用于存储系统的运行参数,以及在运行过程中采集到的大量数据。在单片机系统中使用的数据存储器分为EEPROM和FLASH两种。EEPROM具有单字节读写的能力,操作灵活,但是容量小,价格高,适合存储少量的运行参数等信息。FLASH具有按块擦除和按页读写的能力,容量大,价格低,适合存储大量的记录数据。FLASH有两种存储方式,一种存取方式是直接在FLASH上建立FAT16或者是FAT32文件分配表,以文件夹存储分类信息,以文件存储数据信息。这种方式操作方便,但是存储密度低,并且需要大量的程序代码,不适合小程序存储容量的单片机使用。第二是直接以扇区为单位按扇区编号顺序存取。这种方式存储密度高,程序代码量少,但是不能实现信息的分类存储,并且不能实现数据的插入、删除及自动覆盖等操作。
发明内容
本发明的目的在于提供一种基于Flash存储器的数据存储结构,解决使用FLASH存储器程序代码长和操作复杂的问题。
为了解决所述技术问题,本发明采用的技术方案是:一种Flash存储器的数据存储结构,包括根存储区、子存储区池和数据存储区,子存储区池包括1个以上的子存储区,其中根存储区用于存储数据的根分类信息,子存储区用于存储数据的子分类信息,数据存储区用于存储数据信息;所述根存储区包括根存储区占用链表、根存储区空闲链表和根分类记录区,其中根存储区占用链表为根存储区占用记录组成的静态链表,根存储区空闲链表为根存储区空闲记录组成的静态链表,根分类记录区用于存储根分类记录;所述子存储区包括子存储区占用链表、子存储区空闲链表和子分类记录区,其中子存储区占用链表为子存储区占用记录组成的静态链表,子存储区空闲链表为子存储区空闲记录组成的静态链表,子分类记录区用于存储子分类记录;所述数据存储区包括数据存储区空闲链表和数据记录区,数据存储区空闲链表为数据存储区空闲记录组成的静态链表,数据记录区记录数据记录。
本发明所述的一种Flash存储器的数据存储结构,根存储区占用链表包括根存储区占用链表头、根存储区占用链表长度,根存储区占用链表头是第一条根存储区占用记录的位置,根存储区占用链表长度是根存储区占用记录的数量。
本发明所述的一种Flash存储器的数据存储结构,所述的根存储区占用链表头为一正整数,根存储区占用链表长度为一正整数或0。
本发明所述的一种Flash存储器的数据存储结构,所述的根存储区空闲链表包括根存储区空闲链表头、根存储区空闲链表长度,根存储区空闲链表头是第一条根存储区空闲记录的位置,根存储区空闲链表长度是根存储区空闲记录的数量。
本发明所述的一种Flash存储器的数据存储结构,所述的根存储区空闲链表头为一正整数,根存储区空闲链表长度为一正整数或0。
本发明所述的一种Flash存储器的数据存储结构,根分类记录区存储的根分类记录包括根存储区占用记录和根存储区空闲记录,根存储区占用记录包括四个字段,四个字段的内容分别为根分类信息标识、下一级类型标识、下一级位置和后一条占用记录的位置;根存储区空闲记录包括四个字段,前三个字段无效,最后一个字段的内容为后一条空闲记录的位置。
本发明所述的一种Flash存储器的数据存储结构,所述的子存储区占用链表包括子存储区占用链表头、子存储区占用链表长度,子存储区占用链表头是第一条子存储区占用记录的位置,子存储区占用链表长度是子存储区占用记录的数量。
本发明所述的一种Flash存储器的数据存储结构,所述的子存储区占用链表头为一正整数,子存储区占用链表长度为一正整数或0。
本发明所述的一种Flash存储器的数据存储结构,所述的子存储区空闲链表包括子存储区空闲链表头、子存储区空闲链表长度,子存储区空闲链表头是第一条子存储区空闲记录的位置,子存储区空闲链表长度是子存储区空闲记录的数量。
本发明所述的一种Flash存储器的数据存储结构,所述的子存储区空闲链表头为一正整数,子存储区空闲链表长度为一正整数或0。
本发明所述的一种Flash存储器的数据存储结构,子分类记录区存储的子分类记录包括子存储区占用记录和子存储区空闲记录,子存储区占用记录包括四个字段,四个字段的内容分别为本级分类信息标识、下一级类型标识、下一级位置和后一条占用记录的位置;子存储区空闲记录包括四个字段,前三个字段无效,最后一个字段的内容为后一条空闲记录的位置。
本发明所述的一种Flash存储器的数据存储结构,数据存储区空闲链表包括数据存储区空闲链表头、数据存储区空闲链表长度,数据存储区空闲链表头为第一条数据存储区空闲记录的位置,数据存储区空闲链表长度为数据存储区空闲记录的数量,数据存储区空闲记录包括后一条空闲记录的位置字段。
本发明所述的一种Flash存储器的数据存储结构,数据存储区空闲链表头为一正整数,数据存储区空闲链表长度为一正整数或0。
本发明的有益效果:本发明将Flash存储器的扇区分为根存储区、子存储区和数据存储区,子存储区还可以有下一级子存储区,可以满足单片机系统对存储器容量的要求,降低了原有Flash存储器文件存储方式对硬件及软件资源占用,有效解决小程序存储容量的单片机存储大量数据的问题,各分类信息区采用静态链表的组织结构,提高了存储器的读写寿命。本发明所述的Flash存储器的数据存储结构并不仅限于应用单片机系统中,还可以应用在嵌入式系统中。
附图说明
图1为本发明所述Flash存储器的数据存储结构整个存储区的结构图;
图2为根存储区的结构示意图;
图3为子存储区的结构示意图;
图4为数据存储区的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了能够更清晰的了解数据存储结构,如图1所示。本实施例所述Flash存储器的数据存储结构由根存储区、子存储区构成的子存储区池和数据存储区三部分组成,根存储区用于存储数据的根分类信息,子存储区用于存储数据的子分类信息,数据存储区用于存储数据本身的信息。
可以根据实际需求来确定各部分占用的实际存储空间容量,对于分类信息层次深且数量多而数据量小的情况,可以为子存储区池分配更大的空间;对于分类信息层次浅且数量少而数据量大的情况,可以为数据存储区分配更大的空间。子存储区的大小可以根据实际需要分配,且各子存储区大小可以不一样。FLASH存储器一般以512字节为一页,根存储区可以由一页或者多页存储,子存储区池也可以由一页或多页存储,数据存储区的每条数据记录亦可以由一页或多页存储。
根存储区结构如图2所示,根存储区由根存储区占用链表、根存储区空闲链表和根分类记录区组成。其中根存储区占用链表为根存储区占用记录组成的静态链表,由占用链表头指向该链表。根存储区占用链表包括根存储区占用链表头、根存储区占用链表长度。根存储区占用链表头为一正整数,是第一条根存储区占用记录的位置。所述的根存储区占用链表长度为一正整数或0,是根存储区占用记录的数量。
根存储区空闲链表为根存储区空闲记录组成的静态链表,由空闲链表头指向该链表。根存储区空闲链表包括根存储区空闲链表头、根存储区空闲链表长度。根存储区空闲链表头为一正整数,是第一条根存储区空闲记录的位置。根存储区空闲链表长度为一正整数或0,是根存储区空闲记录的数量。
可以将根存储区占用链表头和占用链表长度,以及空闲链表头和空闲链表长度单元放在FLASH存储器第一个扇区中固定的位置。各单元的数据宽度为4个字节。根分类记录区存储的根分类记录包括根存储区占用记录和根存储区空闲记录,根存储区占用记录由根分类信息标识、下一级类型标识、下一级位置和后一条占用记录位置组成。其中根分类信息标识为标识该条根分类记录的内容信息,可以是一个设备的名称或者是一个日期类型等。下一级类型标识为子类型或者是数据。下一级位置用于指向下一级存储区的位置,可以为子存储区的位置或者是数据记录的位置。后一条占用记录位置用于指向后一条根存储区占用记录位置。根存储区空闲记录只有后一条空闲记录位置有效,其余三个字段无效。其中后一条空闲记录位置用于指向后一条根存储区空闲记录位置。根分类记录由从第二个扇区开始的若干个连续的扇区组成,每个扇区可以存储多条根分类记录。
子存储区结构如图3所示,子存储区由子存储区占用链表、子存储区空闲链表和子分类记录区组成。其中子存储区占用链表为子存储区占用记录组成的静态链表,由占用链表头指向该链表。子存储区占用链表包括子存储区占用链表头、子存储区占用链表长度。子存储区占用链表头为一正整数,是第一条子存储区占用记录的位置。子存储区占用链表长度为一正整数或0,是子存储区占用记录的数量。
子存储区空闲链表为子存储区空闲记录组成的静态链表,由空闲链表头指向该链表。子存储区空闲链表包括子存储区空闲链表头、子存储区空闲链表长度。子存储区空闲链表头为一正整数,是第一条子存储区空闲记录的位置。子存储区空闲链表长度为一正整数或0,是子存储区空闲记录的数量。
可以将子存储区占用链表头和占用链表长度,以及空闲链表头和空闲链表长度单元放在该子存储区的第一个扇区中固定的位置。各单元的数据宽度为4个字节。子分类记录区存储的子分类记录包括子存储区占用记录和子存储区空闲记录,子存储区占用记录由本级分类信息标识、下一级类型标识、下一级位置和后一条占用记录位置组成。其中本级分类信息标识为标识该条子分类记录的内容信息,可以是一个日期类型或时间类型等。下一级类型标识为子类型或者是数据。下一级子位置用于指向下一级子存储区或者是数据记录的位置。后一条占用记录位置用于指向后一条子存储区占用记录位置。子存储区空闲记录只有后一条空闲记录位置有效,其余三个字段无效。其中后一条区空闲记录位置用于指向后一条子存储区空闲记录位置。子分类记录由从该子存储区第二个扇区开始的若干个连续的扇区组成,每个扇区可以存储多条子分类记录。
数据存储区结构如图4所示,数据存储区由数据存储区空闲链表和数据记录组成。数据存储区空闲链表为数据存储区空闲记录组成的静态链表,由空闲链表头指向该链表。可以将空闲链表头和空闲链表长度单元放在数据存储区的第一个扇区中固定的位置,各单元的数据宽度为4个字节。数据存储区空闲记录包含后一条空闲记录位置字段,用以指向后一条空闲记录位置。该字段可以直接利用空闲记录的第一个扇区的某一固定位置来存放。
综上所述,本发明的Flash存储器的数据存储结构及存取方法可以满足单片机系统对存储器容量的要求,降低了原有Flash存储器文件存储方式对硬件及软件资源占用,有效解决小程序存储容量的单片机存储大量数据的问题,各分类信息区采用静态链表的组织结构,提高了存储器的读写寿命。
本发明的一个实施例中,在单片机系统中使用512MB的Flash存储器,由根分类、一级子分类和数据组成整个数据存储,实现了500个根分类,每个根分类下有1000个子分类,每条数据记录1kB的存储容量。
应当指出的是,本发明所述的Flash存储器的数据存储结构并不仅限于应用单片机系统中,还可以应用在嵌入式系统中。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种Flash存储器的数据存储结构,其特征在于:包括根存储区、子存储区池和数据存储区,子存储区池包括1个以上的子存储区,其中根存储区用于存储数据的根分类信息,子存储区用于存储数据的子分类信息,数据存储区用于存储数据信息;所述根存储区包括根存储区占用链表、根存储区空闲链表和根分类记录区,其中根存储区占用链表为根存储区占用记录组成的静态链表,根存储区空闲链表为根存储区空闲记录组成的静态链表,根分类记录区用于存储根分类记录;所述子存储区包括子存储区占用链表、子存储区空闲链表和子分类记录区,其中子存储区占用链表为子存储区占用记录组成的静态链表,子存储区空闲链表为子存储区空闲记录组成的静态链表,子分类记录区用于存储子分类记录;所述数据存储区包括数据存储区空闲链表和数据记录区,数据存储区空闲链表为数据存储区空闲记录组成的静态链表,数据记录区用于存储数据记录。
2.根据权利要求1所述的Flash存储器的数据存储结构,其特征在于:所述的根存储区占用链表包括根存储区占用链表头、根存储区占用链表长度。
3.根据权利要求1所述的Flash存储器的数据存储结构,其特征在于:所述的根存储区空闲链表包括根存储区空闲链表头、根存储区空闲链表长度。
4.根据权利要求1所述的Flash存储器的数据存储结构,其特征在于:根分类记录区存储的根分类记录包括根存储区占用记录和根存储区空闲记录,根存储区占用记录包括四个字段,四个字段的内容分别为根分类信息标识、下一级类型标识、下一级位置和后一条占用记录的位置;根存储区空闲记录包括四个字段,前三个字段无效,最后一个字段的内容为后一条空闲记录的位置。
5.根据权利要求1所述的Flash存储器的数据存储结构,其特征在于:所述的子存储区占用链表包括子存储区占用链表头、子存储区占用链表长度。
6.根据权利要求1所述的Flash存储器的数据存储结构,其特征在于:所述的子存储区空闲链表包括子存储区空闲链表头、子存储区空闲链表长度。
7.根据权利要求1所述的Flash存储器的数据存储结构,其特征在于:子分类记录区存储的子分类记录包括子存储区占用记录和子存储区空闲记录,子存储区占用记录包括四个字段,四个字段的内容分别为子分类信息、下一级类型标识、下一级位置和后一条占用记录的位置;子存储区空闲记录包括四个字段,前三个字段无效,最后一个字段的内容为后一条空闲记录的位置。
8.根据权利要求1所述的Flash存储器的数据存储结构,其特征在于:数据存储区空闲链表包括数据存储区空闲链表头、数据存储区空闲链表长度。
CN201810171806.5A 2018-03-01 2018-03-01 一种Flash存储器的数据存储方法 Active CN108376121B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810171806.5A CN108376121B (zh) 2018-03-01 2018-03-01 一种Flash存储器的数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810171806.5A CN108376121B (zh) 2018-03-01 2018-03-01 一种Flash存储器的数据存储方法

Publications (2)

Publication Number Publication Date
CN108376121A true CN108376121A (zh) 2018-08-07
CN108376121B CN108376121B (zh) 2021-10-22

Family

ID=63018334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810171806.5A Active CN108376121B (zh) 2018-03-01 2018-03-01 一种Flash存储器的数据存储方法

Country Status (1)

Country Link
CN (1) CN108376121B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007856A (zh) * 2019-03-05 2019-07-12 四川九洲电器集团有限责任公司 数据存储方法、装置及闪存芯片
CN112241375A (zh) * 2020-10-14 2021-01-19 哲库科技(北京)有限公司 一种存储器的分配方法、装置及终端设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212097B1 (en) * 1999-03-25 2001-04-03 Sony Corporation Nonvolatile memory
CN1405683A (zh) * 2001-09-18 2003-03-26 华为技术有限公司 Flash存储文件管理方法
CN102081577A (zh) * 2011-01-12 2011-06-01 厦门雅迅网络股份有限公司 Flash存储器的数据存储结构及其数据操作方式
US20110185107A1 (en) * 2008-02-29 2011-07-28 Kabushiki Kaisha Toshiba Memory system
CN102279805A (zh) * 2011-09-06 2011-12-14 四川九洲电器集团有限责任公司 一种存储器数据存放及读取方法
CN102402394A (zh) * 2010-09-13 2012-04-04 腾讯科技(深圳)有限公司 一种基于哈希算法的数据存储方法及装置
CN103081434A (zh) * 2010-08-24 2013-05-01 华为技术有限公司 智能存储器
CN103577574A (zh) * 2013-11-05 2014-02-12 中船重工(武汉)凌久电子有限责任公司 一种基于nand flash的高可靠线性文件系统
CN105930280A (zh) * 2016-05-27 2016-09-07 诸葛晴凤 一种面向非易失性内存的高效的页面组织和管理方法
CN106445416A (zh) * 2016-09-22 2017-02-22 飞天诚信科技股份有限公司 一种数据记录的存储、查询和检索的方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212097B1 (en) * 1999-03-25 2001-04-03 Sony Corporation Nonvolatile memory
CN1405683A (zh) * 2001-09-18 2003-03-26 华为技术有限公司 Flash存储文件管理方法
US20110185107A1 (en) * 2008-02-29 2011-07-28 Kabushiki Kaisha Toshiba Memory system
CN103081434A (zh) * 2010-08-24 2013-05-01 华为技术有限公司 智能存储器
CN102402394A (zh) * 2010-09-13 2012-04-04 腾讯科技(深圳)有限公司 一种基于哈希算法的数据存储方法及装置
CN102081577A (zh) * 2011-01-12 2011-06-01 厦门雅迅网络股份有限公司 Flash存储器的数据存储结构及其数据操作方式
CN102279805A (zh) * 2011-09-06 2011-12-14 四川九洲电器集团有限责任公司 一种存储器数据存放及读取方法
CN103577574A (zh) * 2013-11-05 2014-02-12 中船重工(武汉)凌久电子有限责任公司 一种基于nand flash的高可靠线性文件系统
CN105930280A (zh) * 2016-05-27 2016-09-07 诸葛晴凤 一种面向非易失性内存的高效的页面组织和管理方法
CN106445416A (zh) * 2016-09-22 2017-02-22 飞天诚信科技股份有限公司 一种数据记录的存储、查询和检索的方法及装置

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
GUANLIN LU. ETC: "A Forest-structured Bloom Filter with flash memory", 《2011 IEEE 27TH SYMPOSIUM ON MASS STORAGE SYSTEMS AND TECHNOLOGIES (MSST)》 *
孙天佑: "基于SD卡的单片机软件自更新的实现方法", 《计算机应用与软件》 *
曹博等: "基于Spark的并行频繁模式挖掘算法", 《计算机工程与应用》 *
董艳锋等: "I2C串行总线存储技术在单片机系统中的应用", 《山西电子技术》 *
董艳锋等: "MSM结构ZnO/Cu薄膜的接触特性", 《发光学报》 *
邹锦坤等: "基于单片机和NANDFLASH芯片的嵌入式文件系统", 《自动化与信息工程》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007856A (zh) * 2019-03-05 2019-07-12 四川九洲电器集团有限责任公司 数据存储方法、装置及闪存芯片
CN110007856B (zh) * 2019-03-05 2020-08-04 四川九洲电器集团有限责任公司 数据存储方法、装置及闪存芯片
CN112241375A (zh) * 2020-10-14 2021-01-19 哲库科技(北京)有限公司 一种存储器的分配方法、装置及终端设备
CN112241375B (zh) * 2020-10-14 2024-02-13 哲库科技(北京)有限公司 一种存储器的分配方法、装置及终端设备

Also Published As

Publication number Publication date
CN108376121B (zh) 2021-10-22

Similar Documents

Publication Publication Date Title
CN105930280B (zh) 一种面向非易失性内存的高效的页面组织和管理方法
CN101278267B (zh) 具有经调度回收操作的非易失性存储器
US7558906B2 (en) Methods of managing blocks in nonvolatile memory
US7552271B2 (en) Nonvolatile memory with block management
CN101241472B (zh) 映射管理方法及系统
CN101354681B (zh) 存储器系统、非易失性存储器的磨损均衡方法及装置
CN101493794B (zh) 一种闪存数据处理方法及装置
CN109496300B (zh) 一种存储介质垃圾回收方法、存储介质和程序产品
CN101533670B (zh) 实现存储设备损耗均衡的方法及存储设备
CN106502587B (zh) 硬盘数据管理方法和硬盘控制装置
KR101329068B1 (ko) 블록 관리를 가지는 비휘발성 메모리
CN100481024C (zh) 信息记录介质
EP0400475A3 (en) Storage management system for memory card using memory allocation table
CN101122885A (zh) 一种数据缓存处理方法、系统及数据缓存装置
CN101488153A (zh) 嵌入式Linux下大容量闪存文件系统的实现方法
WO1999021093B1 (en) Improved flash file system
CN101510332B (zh) 一种智能卡中存储空间的管理方法和装置
CN102841851A (zh) 闪存管理方法和闪存设备
KR20120072228A (ko) 플래시 메모리의 파일 시스템
CN101533408A (zh) 一种海量数据的处理方法及处理装置
CN108733306A (zh) 一种文件合并方法及装置
CN101571869A (zh) 一种智能卡的文件存储、读取方法及装置
CN100533443C (zh) 利用文件分配表进行磁盘数据簇链接及寻道的方法
CN108376121A (zh) 一种Flash存储器的数据存储结构
CN108304259A (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
GR01 Patent grant
GR01 Patent grant