CN1213370C - 非挥发信息存储管理方法 - Google Patents

非挥发信息存储管理方法 Download PDF

Info

Publication number
CN1213370C
CN1213370C CN 01134617 CN01134617A CN1213370C CN 1213370 C CN1213370 C CN 1213370C CN 01134617 CN01134617 CN 01134617 CN 01134617 A CN01134617 A CN 01134617A CN 1213370 C CN1213370 C CN 1213370C
Authority
CN
China
Prior art keywords
record
value
execution
segment number
length
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.)
Expired - Lifetime
Application number
CN 01134617
Other languages
English (en)
Other versions
CN1417686A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN 01134617 priority Critical patent/CN1213370C/zh
Publication of CN1417686A publication Critical patent/CN1417686A/zh
Application granted granted Critical
Publication of CN1213370C publication Critical patent/CN1213370C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种非挥发信息存储管理方法,先将存储区域划分为整数个等长度的段作为存取操作的基本单元,并对各段依次编号,其中首段作为用于描述段的结构的描述段,其余段为用于信息存储的记录段;描述段包括粒度域和指针域长度的指针长度域,记录段包括指针域、记录名域、格式域和记录数据域,对经上述划分的存储区域执行对段作初始化、获取记录的相关数据、设置或修改记录及删除记录等操作对信息作存储管理,使存储空间的利用具有灵活性,信息的存取、修改及删除均可通过对其中域的运算实现,既可对信息独立访问又能适应各种记录长度的信息存储。

Description

非挥发信息存储管理方法
技术领域
本发明涉及一种信息存储管理方法。
背景技术
现代信息系统复杂度不断提高,软件通常为分布式系统,有大量的信息需要保存和查询,如各种软硬件版本信息,配置信息,制造信息等。这些信息一般保存在EEPROM(电擦写只读存储器)、FLASH(闪速存储器)等非易失存储介质中。
目前,对这些非挥发信息的存储基本采用以下两种方法:一种是将所有的信息作为一个完整的文件,每条信息没有明确的位置,对其中的某条信息的操作必须针对整个文件;另一种方法是将每条信息独立存储,其起始位置固定在某个地址,每条信息允许的最大长度和格式也固定设置,通过软件维护一张表来记录每条信息的起始位置和长度。
采用第一种方法时,如果要修改其中的一条信息,就会造成其后所有信息都要移动;当要读取指定的信息时,也必须对整个文件进行分析和解释才能获得指定信息,运行效率较低。
采用第二种方法实现了信息的独立,虽然可以单独写入和查询,但由于格式定义简单,预先设定后缺乏灵活性和可扩展性,如果系统新的版本中出现信息的长度超过了规定的最大长度,就只能重新设计和编写整个信息存储模块的代码。
发明内容
本发明的目的在于提供一种既能实现信息独立访问又能适应各种记录长度的非挥发信息存储管理方法。
为实现上述目的,本发明采用的技术方案是:先将用于存储非挥发信息的存储区域划分为整数个等长度的段作为存取操作的基本单元,并对各段依次编号,其中首段作为用于描述段的结构的描述段,其余段为用于信息存储的记录段;所述描述段包括用于表示段的大小的粒度域和用于表示记录段中的指针域长度的指针长度域,所述记录段包括下述域:
(1)指针域,用于表示同一记录的各段间的顺序关系;
(2)记录名域,用于唯一地标识每个记录;
(3)格式域,用于描述记录的格式;
(4)记录数据域,用于存储记录的内容;
非挥发信息存储管理是对经上述划分的存储区域执行下述操作:
a、对段作初始化:
b、获取记录的相关数据;
c、设置或修改记录;
d、删除记录。
所述获取记录的相关数据包括获取当前的记录数目、获取指定记录名的记录内容并返回记录类型和长度以及获取指定序号的记录,并返回记录名,类型和长度;
所述获取当前的记录数目的操作包括下述步骤:
b1、将当前遍历段号的值设置为1,记录数量的值设置为0;
b2、判断当前遍历段号的第0比特位的值是否等于0,而且该段指针域的值不等于0,如果是,执行步骤b3;如果否,执行步骤b4;
b3、记录数量的值加1;b4、当前遍历段号的值加1;
b5、判断当前遍历段号的值是否大于总段号,如果否,返回步骤b2;
如果是,执行步骤b6;
b6、返回记录数量的值;
所述获取指定记录名的记录内容并返回记录类型和长度的操作包括下述步骤:
c1、将当前搜索段号的值设置为1;
c2、判断当前搜索段号的第0比特位的值是否等于0,而且该段指针域的值不等于0,如果是,执行步骤c3;如果否,执行步骤c8;
c3、搜索格式域;
c4、判断记录名与搜索记录是否一致,如果是,执行步骤c5;如果否,执行步骤c8;
c5、处理记录长度;
c6、返回记录内容、类型和长度;
c7、返回主程序;
c8、当前搜索段号的值加1;
c9、判断当前搜索段号的值是否大于总段号,如果否,返回步骤c2;
如果是,执行步骤c10;
c10、返回查找失败结果。
采用上述技术方案后,存储空间动态划分为多个段,对记录的存取操作以段为单位进行,每个记录至少占据一个段,描述段与记录段结合的方法使存储空间的利用具有灵活性,信息的存取、修改及删除均可通过对其中域的运算实现,既可对信息独立访问又能适应各种记录长度的信息存储。
附图说明
图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、将当前遍历段号的值设置为1,记录数量的值设置为0;
b2、判断当前段号的第0比特位的值是否等于0,而且该段指针域的值不等于0,如果是,执行步骤b3;如果否,执行步骤b4;
b3、记录数量的值1;
b4、当前遍历段号的值加1;
b5、判断当前遍历段号的m的值是否大于总段号,如果否,返回步骤b2;如果是,执行步骤b6;
b6、返回记录数量的值。
图4所示是获取指定记录名的记录内容的实施方式的流程,具体操作步骤包括:
c1、将当前搜索段号的值设置为1;
c2、判断当前段号的第0比特位的值是否等于0,而且该段指针域的值不等于0,如果是,执行步骤c3;如果否,执行步骤c8;
c3、搜索格式域;
c4、判断记录名与搜索记录是否一致,如果是,执行步骤c5;如果否,执行步骤c8;
c5、处理记录长度;
c6、返回记录内容、类型和长度:
c7、返回主程序;
c8、当前搜索段号的值加1;
c9、判断当前搜索段号的值是否大于总段号,如果否,返回步骤c2;如果是,执行步骤c10:
c10、返回查找失败结果。
图5所示是获取指定序号的记录的实施方式的流程,具体操作步骤包括:
d1、将当前搜索段号的值设置为1,当前记录号的值设置为0;
d2、判断当前搜索段号第0比特位的值是否等于0,而且该段指针域的值不等于0,如果是,执行步骤d3;如果否,执行步骤d8;
d3、当前记录号的值加1;
d4、判断当前记录号的值是否等于指定记录号,如果是,执行步骤d5;如果否,执行步骤d8;
d5、处理格式域和记录长度;
d6、返回记录名,类型和长度;
d7、返回主程序;
d8、当前搜索段号的值加1;
d9、判断当前搜索段号的值是否大于总段号,如果否,返回步骤d2;如果是,执行步骤d10;
d10、返回查找失败结果。
图6所示是设置或修改记录的实施方式流程,具体操作步骤包括:
e1、对当前搜索段号的值设置为1;
e2、判断当前搜索段号的第0比特位的值是否等于0,而且该段指针域的值不等于0,判断结果如果是,执行步骤e3;如果否,执行步骤e9;
e3、搜索格式域;
e4、判断记录名与搜索记录是否一致,如果是,执行步骤e5;如果否,执行步骤e9;
e5、删除该记录;
e6、搜寻空白段;
e7、写入记录;
e8、返回主程序;
e9、当前搜索段号的值加1;
删除记录的操作包括删除指定记录名的记录和删除所有记录,其中,图7所示是删除指定记录名的记录的实施方式流程,步骤包括:
f1、对当前搜索段号的值设置为1;
f2、判断当前搜索段号的第0比特位的值是否等于0,而且该段指针域的值不等于0,判断结果如果是,执行步骤f3;如果否,执行步骤f7;
f3、搜索格式域;
f4、判断记录名与搜索记录是否一致,如果是,执行步骤f5;如果否,执行步骤f7;
f5、记录数据域清零;
f6、返回主程序;
f7、当前搜索段号的值加1;
f8、判断前搜索段号的值是否大于总段号,如果否,返回步骤f2;如果是,执行步骤f9;
f9、返回查找失败结果。
删除所有的记录的操作是将所有记录段的内容清零,即将所有记录数据域清零。

Claims (7)

1、一种非挥发信息存储管理方法,其特征在于:将用于存储非挥发信息的存储区域划分为整数个等长度的段作为存取操作的基本单元,并对各段依次编号,其中首段作为用于描述段的结构的描述段,其余段为用于信息存储的记录段;所述描述段包括用于表示段的大小的粒度域和用于表示记录段中的指针域长度的指针长度域,所述记录段包括下述域:
(1)指针域,用于表示同一记录的各段间的顺序关系;
(2)记录名域,用于唯一地标识每个记录;
(3)格式域,用于描述记录的格式;
(4)记录数据域,用于存储记录的内容;
非挥发信息存储管理是对经上述划分的存储区域执行下述操作:
a、对段作初始化;
b、获取记录的相关数据;
c、设置或修改记录;
d、删除记录;
所述获取记录的相关数据包括获取当前的记录数目、获取指定记录名的记录内容并返回记录类型和长度以及获取指定序号的记录,并返回记录名,类型和长度;
所述获取当前的记录数目的操作包括下述步骤:
b1、将当前遍历段号的值设置为1,记录数量的值设置为0;
b2、判断当前遍历段号的第0比特位的值是否等于0,而且该段指针域的值不等于0,如果是,执行步骤b3;如果否,执行步骤b4;
b3、记录数量的值加1;
b4、当前遍历段号的值加1;
b5、判断当前遍历段号的值是否大于总段号,如果否,返回步骤b2;如果是,执行步骤b6;
b6、返回记录数量的值;
所述获取指定记录名的记录内容并返回记录类型和长度的操作包括下述步骤:
c1、将当前搜索段号的值设置为1;
c2、判断当前搜索段号的第0比特位的值是否等于0,而且该段指针域的值不等于0,如果是,执行步骤c3;如果否,执行步骤c8;
c3、搜索格式域;
c4、判断记录名与搜索记录是否一致,如果是,执行步骤c5;如果否,执行步骤c8;
c5、处理记录长度;
c6、返回记录内容、类型和长度;
c7、返回主程序;
c8、当前搜索段号的值加1;
c9、判断当前搜索段号的值是否大于总段号,如果否,返回步骤c2;如果是,执行步骤c10;
c10、返回查找失败结果。
2、如权利要求1所述的非挥发信息存储管理方法,其特征在于:所述描述段还包括用于记录存储介质状态标识域,所述存储介质状态为是否可以使用。
3、如权利要求1所述的非挥发信息存储管理方法,其特征在于:所述记录段的格式域中可选择地设置标识记录长度的记录长度域,如果记录内容为字符型,不设置该记录长度域;如果记录内容为非字符型,该记录长度域值决定记录的长度。
4、如权利要求1所述的非挥发信息存储管理方法,其特征在于:所述对段作初始化的操作包括下述步骤:
a1、描述段中写入粒度值;
a2、描述段中写入指针长度值;
a3、对所有记录段的域值设置为0;
a4、返回主程序。
5、如权利要求1所述的非挥发信息存储管理方法,其特征在于:所述获取指定序号的记录,并返回记录名,类型和长度的操作包括下述步骤:
d1、将当前搜索段号的值设置为1,当前记录号的值设置为0;
d2、判断当前搜索段号的第0比特位的值是否等于0,而且该段指针域的值不等于0,如果是,执行步骤d3:如果否,执行步骤d8;
d3、当前记录号的值加1;
d4、判断当前记录号的值是否等于指定记录号,如果是,执行步骤d5;如果否,执行步骤d8;
d5、处理格式域和记录长度;
d6、返回记录名,类型和长度;
d7、返回主程序;
d8、当前搜索段号的值加1;
d9、判断当前搜索段号的值是否大于总段号,如果否,返回步骤d2;如果是,执行步骤d10;
d10、返回查找失败结果。
6、如权利要求5所述的非挥发信息存储管理方法,其特征在于:所述设置或修改记录的操作包括下述步骤:
e1、将当前搜索段号的值设置为1;
e2、判断当前搜索段号的第0比特位的值是否等于0,  而且该段指针域的值不等于0,如果是,执行步骤e3;如果否,执行步骤e9;
e3、搜索格式域;
e4、判断记录名与搜索记录是否一致,如果是,执行步骤e5;如果否,执行步骤e9;
e5、删除该记录;
e6、搜寻空白段;
e7、写入记录;
e8、返回主程序;
e9、当前搜索段号的值加1;
e10、判断当前搜索段号的值是否大于总段号,如果否,返回步骤e2;如果是,执行步骤e6:
7、如权利要求6所述的非挥发信息存储管理方法,其特征在于:所述删除记录的操作包括删除指定记录名的记录和删除所有记录,其中,删除指定记录名的记录包括下述步骤:
f1、将当前搜索段号的值设置为1;
f2、判断当前搜索段号的第0比特位的值是否等于0,而且该段指针域的值不等于0,如果是,执行步骤f3;如果否,执行步骤f7;
f3、搜索格式域;
f4、判断记录名与搜索记录是否一致,如果是,执行步骤f5;如果否,执行步骤f7;
f5、记录数据域清零;
f6、返回主程序;
f7、当前搜索段号的值加1;
f8、判断当前搜索段号的值是否大于总段号,如果否,返回步骤f2;如果是,执行步骤f9;
f9、返回查找失败结果。
删除所有的记录的操作是将所有记录段的内容清零。
CN 01134617 2001-11-07 2001-11-07 非挥发信息存储管理方法 Expired - Lifetime CN1213370C (zh)

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 CN1417686A (zh) 2003-05-14
CN1213370C true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100349141C (zh) * 2003-06-17 2007-11-14 创惟科技股份有限公司 动态调整非挥发性存储器的冗余区的方法及其相关装置
US8171205B2 (en) * 2008-05-05 2012-05-01 Intel Corporation Wrap-around sequence numbers for recovering from power-fall in non-volatile memory
CN101281491B (zh) * 2008-05-12 2010-04-14 北京邮电大学 基于VxWorks的空间机器人中央处理器的内存模块及其管理方法

Also Published As

Publication number Publication date
CN1417686A (zh) 2003-05-14

Similar Documents

Publication Publication Date Title
CN1277213C (zh) 一种闪存文件系统管理方法
US9684462B2 (en) Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory
EP1988474A1 (en) System and method of managing indexation of flash memory
US7461198B2 (en) System and method for configuration and management of flash memory
JP5350371B2 (ja) 記憶装置のためのストレージアドレス再マッピングのための方法およびシステム
US7877540B2 (en) Logically-addressed file storage methods
CN1295622C (zh) 地址映射方法和映射信息管理方法及其闪速存储器
CN100347684C (zh) 记录系统、数据记录设备、存储设备和数据记录方法
CN1701513A (zh) 数据存储系统内的符号频率校平
CN1955958A (zh) 一种基于目录树的分类数据存储及分类目录查询方法
CN1705936A (zh) 用于分割一逻辑块的方法及设备
CN1227591C (zh) 记录系统、数据记录设备、存储设备和数据记录方法
US20070136553A1 (en) Logically-addressed file storage systems
CN101069163A (zh) 存储器系统以及写入非易失性半导体存储器中的方法
JP2006268776A (ja) メモリカード
CN101030165A (zh) 一种磁盘空间管理方法及系统
KR20090108695A (ko) 다이렉트 데이터 파일 메모리 시스템에서 lba 인터페이스를 관리하는 방법
CN101075237A (zh) 一种数据存储方法、数据读取方法以及数据检索方法
CN1213370C (zh) 非挥发信息存储管理方法
CN1889080A (zh) 一种用于检索字符串的方法
CN1834957A (zh) 一种数据库多表信息初始化方法
CN113778345B (zh) 索引的创建方法、计算设备及存储介质
CN1719421A (zh) 基于mcs-51架构的16m字节数据存储器寻址空间扩充方法
CN1967505A (zh) 信息处理装置、图像摄取装置、信息处理方法及计算机程序
CN101063951A (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