CN1417686A - 非挥发信息存储管理方法 - Google Patents
非挥发信息存储管理方法 Download PDFInfo
- Publication number
- CN1417686A CN1417686A CN 01134617 CN01134617A CN1417686A CN 1417686 A CN1417686 A CN 1417686A CN 01134617 CN01134617 CN 01134617 CN 01134617 A CN01134617 A CN 01134617A CN 1417686 A CN1417686 A CN 1417686A
- Authority
- CN
- China
- Prior art keywords
- record
- execution
- section
- variable
- value
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种非挥发信息存储管理方法,先将存储区域划分为整数个等长度的段作为存取操作的基本单元,并对各段依次编号,其中首段作为用于描述段的结构的描述段,其余段为用于信息存储的记录段;描述段包括粒度域和指针域长度的指针长度域,记录段包括指针域、记录名域、格式域和记录数据域,对经上述划分的存储区域执行对段作初始化、获取记录的相关数据、设置或修改记录及删除记录等操作对信息作存储管理,使存储空间的利用具有灵活性,信息的存取、修改及删除均可通过对其中域的运算实现,既可对信息独立访问又能适应各种记录长度的信息存储。
Description
技术领域
本发明涉及一种信息存储管理方法。
背景技术
现代信息系统复杂度不断提高,软件通常为分布式系统,有大量的信息需要保存和查询,如各种软硬件版本信息,配置信息,制造信息等。这些信息一般保存在EEPROM(电擦写只读存储器)、FLASH(闪速存储器)等非易失存储介质中。
目前,对这些非挥发信息的存储基本采用以下两种方法:一种是将所有的信息作为一个完整的文件,每条信息没有明确的位置,对其中的某条信息的操作必须针对整个文件;另一种方法是将每条信息独立存储,其起始位置固定在某个地址,每条信息允许的最大长度和格式也固定设置,通过软件维护一张表来记录每条信息的起始位置和长度。
采用第一种方法时,如果要修改其中的一条信息,就会造成其后所有信息都要移动;当要读取指定的信息时,也必须对整个文件进行分析和解释才能获得指定信息,运行效率较低。
采用第二种方法实现了信息的独立,虽然可以单独写入和查询,但由于格式定义简单,预先设定后缺乏灵活性和可扩展性,如果系统新的版本中出现信息的长度超过了规定的最大长度,就只能重新设计和编写整个信息存储模块的代码。
发明内容
本发明的目的在于提供一种既能实现信息独立访问又能适应各种记录长度的非挥发信息存储管理方法。
为实现上述目的,本发明采用的技术方案是:先将用于存储非挥发信息的存储区域划分为整数个等长度的段作为存取操作的基本单元,并对各段依次编号,其中首段作为用于描述段的结构的描述段,其余段为用于信息存储的记录段;所述描述段包括用于表示段的大小的粒度域和用于表示记录段中的指针域长度的指针长度域,所述记录段包括下述域:
(1)指针域,用于表示同一记录的各段间的顺序关系;
(2)记录名域,用于唯一地标识每个记录;
(3)格式域,用于描述记录的格式;
(4)记录数据域,用于存储记录的内容;
非挥发信息存储管理是对经上述划分的存储区域执行下述操作:
a、对段作初始化;
b、获取记录的相关数据;
c、设置或修改记录;
d、删除记录。
采用上述技术方案后,存储空间动态划分为多个段,对记录的存取操作以段为单位进行,每个记录至少占据一个段,描述段与记录段结合的方法使存储空间的利用具有灵活性,信息的存取、修改及删除均可通过对其中域的运算实现,既可对信息独立访问又能适应各种记录长度的信息存储。
附图说明
图1是本发明方法中存储区域划分结构图。
图2是对段作初始化的实施方式流程图。
图3是获取当前的记录数目的实施方式流程图。
图4是获取指定记录名的记录内容的实施方式流程图。
图5是获取指定序号的记录的实施方式流程图。
图6是设置或修改记录的实施方式流程图。
图7是删除指定记录名的记录的实施方式流程图。
具体实施方式
下面结合附图和实施例对本发明方法作进一步说明。
参照图1,首先将非易失存储介质的整个存储区域划分成整数个连续的段,每个段的大小相同。每个段只能被一条记录独占,不能多个记录使用同一个段;一条记录至少占用一个段,当记录比较长时,一个记录可使用多个段。对各段依次编号,具体实施中,可以从低地址到高地址从0开始编号,依次向上递增。其中首段,即第0号段固定用于描述段的结构,作为描述段,其后编号从1开始的段都用来存放记录,作为记录段。作为本发明的具体实施方式,可将描述段的前2个字节作为粒度域,用来表示段的大小,以字节为单位。由于粒度域占用2个字节,因此粒度为小于64k字节的数值。粒度的大小可根据记录的特点选择适当值。描述段还包括用于表示记录段中的指针域长度的指针长度域,具体实施中,可用粒度后的1个字节作为指针长度域,以字节为单位。描述段中还可以设置保留区域,以便结合需要增加其他自描述内容,如用于记录存储介质好坏的介质状态标识域。
描述段后均为记录段,具体实施中,记录段可按如下结构设置:记录段的开头为一个指针域,其长度是由描述段中的指针长度域决定。指针域的最高比特位用于指示本记录段是否是记录的第一个段,该位如果是0就表示是记录的第一个段,是1就表示不是第一个段。从次高位开始是真正的指针,该指针用于指向本记录的下一个段的编号。如果是0,则表示这个段尚未被用作记录,是可用的;如果是全1,则表示本段是记录的最后一个段。执行程序通过查找第一个比特位为0,且指针为非0的记录段,就可以遍历所有的记录。初始状态为整个存储区域为全0,表示所有的记录段都是空的。指针域后面是记录名域,由可打印字符组成,以一个字节的格式域作结束符,记录名用来唯一的标识每个记录。格式域设置为一个字节,具有两个作用,一是作为记录名的结束符,二是描述记录的格式。可将格式域的取值范围限定于0至31,对应于ASCII(信息交换标准代码)中的控制字符,用来标识记录名的结束位置。且0至31的值仅占用一个字节中的最低5个比特,其中高位的两个比特用来标识记录类型,如以0标识字符类型,以1标识二进制类型,2和3保留。具体实施中,格式域后还可以跟标识记录长度的记录长度域,使用格式域的最低位的三个比特来描述这个记录长度域,以0表示格式域后不跟记录长度区域,1表示记录长度域占用1个字节,依此类推。采用该种变长记录长度域可以提高存储空间的利用率,尤其对于字符型记录,可以不需要记录长度域,而用一个NULL(空)字符表示字符串的结束。记录段中的记录数据域用于存储记录的内容,如果一个段不够存储一个记录,可以使用多个段,每个段起始的指针域指向下一个段。采用以上实施方式划分存储空间,用一个描述段来描述段的结构,用一个格式域来描述记录的类型和结构,具有较完善的自描述特性、灵活性和可扩展性。
经上述划分后,对非挥发信息的存储管理包括下述操作:
a、对段作初始化;
b、获取记录的相关数据;
c、设置或修改记录;
d、删除记录。
图2所示是对段作初始化的实施方式的流程,其操作步骤包括:
a1、描述段中写入粒度值;
a2、描述段中写入指针长度值;
a3、对所有记录段的域赋0值;
a4、返回主程序。
所述获取记录的相关数据,包括获取当前的记录数目、获取指定记录名的记录内容并返回记录类型和长度以及获取指定序号的记录,并返回记录名,类型和长度;
图3所示是获取当前的记录数目的实施方式的流程,具体操作步骤包括:
b1、对当前遍历段号变量m赋初值1,记录计数变量n赋初值0;
b2、判断段号为m的段之0比特位的值是否等于0而且该段指针域的值不等于0,判断结果如果是真,执行步骤b3;如果否,执行步骤b4;
b3、变量n增加1;
b4、变量m增加1;
b5、判断变量m的值是否大于总段数,如果否,返回步骤b2;如果是,执行步骤b6;
b6、返回变量n的值。
图4所示是获取指定记录名的记录内容的实施方式的流程,具体操作步骤包括:
c1、对当前搜索段号变量m赋初值1;
c2、判断段号为m的段之0比特位的值是否等于0而且该段指针域的值不等于0,判断结果如果是真,执行步骤c3;如果否,执行步骤c8;
c3、搜索格式域;
c4、判断记录名与搜索记录是否一致,如果是,执行步骤c5;如果否,执行步骤c8;
c5、处理记录长度;
c6、返回记录内容、类型和长度;
c7、返回主程序;
c8、变量m增加1;
c9、判断变量m的值是否大于总段数,如果否,返回步骤c2;如果是,执行步骤c10;
c10、返回查找失败结果。
图5所示是获取指定序号的记录的实施方式的流程,具体操作步骤包括:
d1、对当前搜索段号变量m赋初值1,当前记录号变量n赋初值0;
d2、判断段号为m的段之0比特位的值是否等于0而且该段指针域的值不等于0,判断结果如果是真,执行步骤d3;如果否,执行步骤d8;
d3、变量n增加1;
d4、判断当前记录号变量n的值是否等于指定记录号,如果是,执行步骤d5;如果否,执行步骤d8;
d5、处理格式域和记录长度;
d6、返回记录名,类型和长度;
d7、返回主程序;
d8、变量m增加1;
d9、判断变量m的值是否大于总段数,如果否,返回步骤d2;如果是,执行步骤d10;
d10、返回查找失败结果。
图6所示是设置或修改记录的实施方式流程,具体操作步骤包括:
e1、对当前搜索段号变量m赋初值1;
e2、判断段号为m的段之0比特位的值是否等于0而且该段指针域的值不等于0,判断结果如果是真,执行步骤e3;如果否,执行步骤e9;
e3、搜索格式域;
e4、判断记录名与搜索记录是否一致,如果是,执行步骤e5;如果否,执行步骤e9;
e5、删除该记录;
e6、搜寻空白段;
e7、写入记录;
e8、返回主程序;
e9、变量m增加1;
删除记录的操作包括删除指定记录名的记录和删除所有记录,其中,图7所示是删除指定记录名的记录的实施方式流程,步骤包括:
f1、对当前搜索段号变量m赋初值1;
f2、判断段号为m的段之0比特位的值是否等于0而且该段指针域的值不等于0,判断结果如果是真,执行步骤f3;如果否,执行步骤f7;
f3、搜索格式域;
f4、判断记录名与搜索记录是否一致,如果是,执行步骤f5;如果否,执行步骤f7;
f5、记录数据域清零;
f6、返回主程序;
f7、变量m增加1;
f8、判断变量m的值是否大于总段数,如果否,返回步骤f2;如果是,执行步骤f9;
f9、返回查找失败结果。
删除所有的记录的操作是将所有记录段的内容清零,即将所有记录数据域清零。
Claims (10)
1、一种非挥发信息存储管理方法,其特征在于:将用于存储非挥发信息的存储区域划分为整数个等长度的段作为存取操作的基本单元,并对各段依次编号,其中首段作为用于描述段的结构的描述段,其余段为用于信息存储的记录段;所述描述段包括用于表示段的大小的粒度域和用于表示记录段中的指针域长度的指针长度域,所述记录段包括下述域:
(1)指针域,用于表示同一记录的各段间的顺序关系;
(2)记录名域,用于唯一地标识每个记录;
(3)格式域,用于描述记录的格式;
(4)记录数据域,用于存储记录的内容;
非挥发信息存储管理是对经上述划分的存储区域执行下述操作:
a、对段作初始化;
b、获取记录的相关数据;
c、设置或修改记录;
d、删除记录。
2、如权利要求1所述的非挥发信息存储管理方法,其特征在于:所述描述段还包括用于记录存储介质好坏的介质状态标识域。
3、如权利要求1所述的非挥发信息存储管理方法,其特征在于:所述记录段的格式域中可选择地设置标识记录长度的记录长度域,如果记录内容为字符型,不设置该记录长度域;如果记录内容为非字符型,该记录长度域值决定记录的长度。
4、如权利要求1所述的非挥发信息存储管理方法,其特征在于:所述对段作初始化的操作包括下述步骤:
a1、描述段中写入粒度值;
a2、描述段中写入指针长度值;
a3、对所有记录段的域赋0值;
a4、返回主程序。
5、如权利要求1所述的非挥发信息存储管理方法,其特征在于:所述获取记录的相关数据包括获取当前的记录数目、获取指定记录名的记录内容并返回记录类型和长度以及获取指定序号的记录,并返回记录名,类型和长度;
6、如权利要求5所述的非挥发信息存储管理方法,其特征在于:所述获取当前的记录数目的操作包括下述步骤:
b1、对当前遍历段号变量m赋初值1,记录计数变量n赋初值0;
b2、判断段号为m的段之0比特位的值是否等于0而且该段指针域的值不等于0,判断结果如果是真,执行步骤b3;如果否,执行步骤b4;
b3、变量n增加1;
b4、变量m增加1;
b5、判断变量m的值是否大于总段数,如果否,返回步骤b2;如果是,执行步骤b6;
b6、返回变量n的值。
7、如权利要求5所述的非挥发信息存储管理方法,其特征在于:所述获取指定记录名的记录内容并返回记录类型和长度的操作包括下述步骤:
c1、对当前搜索段号变量m赋初值1;
c2、判断段号为m的段之0比特位的值是否等于0而且该段指针域的值不等于0,判断结果如果是真,执行步骤c3;如果否,执行步骤c8;
c3、搜索格式域;
c4、判断记录名与搜索记录是否一致,如果是,执行步骤c5;如果否,执行步骤c8;
c5、处理记录长度;
c6、返回记录内容、类型和长度;
c7、返回主程序;
c8、变量m增加1;
c9、判断变量m的值是否大于总段数,如果否,返回步骤c2;如果是,执行步骤c10;
c10、返回查找失败结果。
8、如权利要求5所述的非挥发信息存储管理方法,其特征在于:所述获取指定序号的记录,并返回记录名,类型和长度的操作包括下述步骤:
d1、对当前搜索段号变量m赋初值1,当前记录号变量n赋初值0;
d2、判断段号为m的段之0比特位的值是否等于0而且该段指针域的值不等于0,判断结果如果是真,执行步骤d3;如果否,执行步骤d8;
d3、变量n增加1;
d4、判断当前记录号变量n的值是否等于指定记录号,如果是,执行步骤d5;如果否,执行步骤d8;
d5、处理格式域和记录长度;
d6、返回记录名,类型和长度;
d7、返回主程序;
d8、变量m增加1;
d9、判断变量m的值是否大于总段数,如果否,返回步骤d2;如果是,执行步骤d10;
d10、返回查找失败结果。
9、如权利要求1所述的非挥发信息存储管理方法,其特征在于:所述设置或修改记录的操作包括下述步骤:
e1、对当前搜索段号变量m赋初值1;
e2、判断段号为m的段之0比特位的值是否等于0而且该段指针域的值不等于0,判断结果如果是真,执行步骤e3;如果否,执行步骤e9;
e3、搜索格式域;
e4、判断记录名与搜索记录是否一致,如果是,执行步骤e5;如果否,执行步骤e9;
e5、删除该记录;
e6、搜寻空白段;
e7、写入记录;
e8、返回主程序;
e9、变量m增加1;
e10、判断变量m的值是否大于总段数,如果否,返回步骤e2;如果是,执行步骤e6;
10、如权利要求1所述的非挥发信息存储管理方法,其特征在于:所述删除记录的操作包括删除指定记录名的记录和删除所有记录,其中,删除指定记录名的记录包括下述步骤:
f1、对当前搜索段号变量m赋初值1;
f2、判断段号为m的段之0比特位的值是否等于0而且该段指针域的值不等于0,判断结果如果是真,执行步骤f3;如果否,执行步骤f7;
f3、搜索格式域;
f4、判断记录名与搜索记录是否一致,如果是,执行步骤f5;如果否,执行步骤f7;
f5、记录数据域清零;
f6、返回主程序;
f7、变量m增加1;
f8、判断变量m的值是否大于总段数,如果否,返回步骤f2;如果是,执行步骤f9;
f9、返回查找失败结果。
删除所有的记录的操作是将所有记录段的内容清零。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 01134617 CN1213370C (zh) | 2001-11-07 | 2001-11-07 | 非挥发信息存储管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 01134617 CN1213370C (zh) | 2001-11-07 | 2001-11-07 | 非挥发信息存储管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1417686A true CN1417686A (zh) | 2003-05-14 |
CN1213370C CN1213370C (zh) | 2005-08-03 |
Family
ID=4672616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 01134617 Expired - Lifetime CN1213370C (zh) | 2001-11-07 | 2001-11-07 | 非挥发信息存储管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1213370C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100349141C (zh) * | 2003-06-17 | 2007-11-14 | 创惟科技股份有限公司 | 动态调整非挥发性存储器的冗余区的方法及其相关装置 |
CN101281491B (zh) * | 2008-05-12 | 2010-04-14 | 北京邮电大学 | 基于VxWorks的空间机器人中央处理器的内存模块及其管理方法 |
CN101576852B (zh) * | 2008-05-05 | 2014-01-08 | 英特尔公司 | 在非易失性存储器中为从电源故障恢复而绕回序列号 |
-
2001
- 2001-11-07 CN CN 01134617 patent/CN1213370C/zh not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100349141C (zh) * | 2003-06-17 | 2007-11-14 | 创惟科技股份有限公司 | 动态调整非挥发性存储器的冗余区的方法及其相关装置 |
CN101576852B (zh) * | 2008-05-05 | 2014-01-08 | 英特尔公司 | 在非易失性存储器中为从电源故障恢复而绕回序列号 |
CN101281491B (zh) * | 2008-05-12 | 2010-04-14 | 北京邮电大学 | 基于VxWorks的空间机器人中央处理器的内存模块及其管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1213370C (zh) | 2005-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102020106971A1 (de) | Datenschreibverwaltung im nichtflüchtigen speicher | |
CN104346357A (zh) | 一种嵌入式终端的文件存取方法及系统 | |
CN101493794B (zh) | 一种闪存数据处理方法及装置 | |
CN101320594B (zh) | 一种闪存芯片的物理操作方法 | |
US10402317B2 (en) | Data storage device and flash memory control method | |
US20140258596A1 (en) | Memory controller and memory system | |
CN1632765A (zh) | 一种闪存文件系统管理方法 | |
CN1838124A (zh) | 海量数据内存数据库中快速定位的网格+t树索引的方法 | |
EP2147380A1 (en) | System and method of managing indexation of flash memory | |
CN1705936A (zh) | 用于分割一逻辑块的方法及设备 | |
CN101030165A (zh) | 一种磁盘空间管理方法及系统 | |
CN101039278A (zh) | 数据管理方法及系统 | |
JP2006268776A (ja) | メモリカード | |
CN101799788B (zh) | 一种分级管理存储资源的方法及系统 | |
CN102985909A (zh) | 为良好分格的对象提供高扩展性网络存储的方法和设备 | |
US10649967B2 (en) | Memory object pool use in a distributed index and query system | |
CN1889080A (zh) | 一种用于检索字符串的方法 | |
CN1908937A (zh) | 一种闪存中的flash文件的管理方法及系统 | |
TWI435216B (zh) | 用來進行超區塊管理之方法以及記憶裝置及控制器 | |
CN1866218A (zh) | 软件系统的资源管理方法 | |
CN1627272A (zh) | 移动终端的闪存中的文件管理方法 | |
CN1417686A (zh) | 非挥发信息存储管理方法 | |
CN1578301A (zh) | 编辑数据流的方法和设备 | |
CN113778345B (zh) | 索引的创建方法、计算设备及存储介质 | |
CN1716215A (zh) | 减少存储介质中的数据冗余的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20050803 |
|
CX01 | Expiry of patent term |