CN112269549B - 一种轻型嵌入式系统的闪存管理方法 - Google Patents
一种轻型嵌入式系统的闪存管理方法 Download PDFInfo
- Publication number
- CN112269549B CN112269549B CN202011314074.4A CN202011314074A CN112269549B CN 112269549 B CN112269549 B CN 112269549B CN 202011314074 A CN202011314074 A CN 202011314074A CN 112269549 B CN112269549 B CN 112269549B
- Authority
- CN
- China
- Prior art keywords
- data
- sector
- flash memory
- allocationpos
- sectors
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种轻型嵌入式系统的闪存管理方法,涉及存储技术领域。闪存中存储几种数据,每种数据有固定的长度和预定的存储数量,包括:针对每一种数据制作数据表头,表示数据在闪存中的存储状态;设置闪存的当前分配位置以及结束位置,统一为各种数据分配空间;闪存连续、滚动使用;闪存回收步骤统一回收可分配的闪存空间。采用本发明,不需要提前划分存储区域,让开发更稳定快捷;按需求的字节分配空间而不是按扇区分配,节省了flash的使用空间;存储空间滚动循环使用,各个位置的擦写次数基本相同,延长了flash的使用寿命,节约了成本,降低了Flash选择的需求。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种轻型嵌入式系统的闪存管理方法。
背景技术
低资源需求的单片机成本低廉,在终端产品如电能表中有大量应用。
此类单片机因为需求资源小,提供不了操作系统和大规模的RAM和ROM,仅能支持K级别使用场景。但在实际应用中,电表需要存储如掉电事件的发生次数以及内容、过压事件的发生次数以及内容等,单片机本身的存储资源满足不了需求。
闪存(Flash)是一种具有系统掉电后仍可保留内部信息、在线擦写等功能的存储器。因为它的读写速度比 EEPROM更快,在相同容量的情况下成本更低,因此闪存嵌入式系统中的一个重要组成单元。
Flash自身具有以下特性:
1)在物理结构上分成若干个相互独立的扇区。
2)由于 Flash的写操作只能将数据位从1写成0,所以在对存储器进行写入之前必须先执行擦除操作,将预写入的数据位初始化为1。擦除操作的最小单位是个扇区,而不是单个字节。
3)扇区的擦写寿命有次数限制。
由于上述特性,嵌入式系统使用Flash芯片时,会面临下面几个问题:
1.需求大数据存储时需要在程序中为Flash提前划分存储位置,当增加数据类型或存储量时需要重新手动划分。
2.因为Flash每擦除1次只能写1次的特性,为了满足在存储新数据时旧数据不丢失,通常需要在需求数据实际大小的空间外再另外申请1片扇区的空间,这样当数据项多时就造成了很大资源的浪费。
3.数据存储位置固定,由于Flash总擦写次数限制(仅10万次),一直循环使用提前划分好的几部分扇区,频繁擦写会造成这些扇区损坏,影响设备使用。
电表的应用中,对存储器的使用有一定规律:存储的数据都是有明确要求大小以及条数,这种情况下,传统的Flash使用方式是为每一类数据提前规划好存储空间,每一类数据在规划好的存储空间内进行存储和擦除。这样也会面临上述出现的问题。
发明内容
针对上述应用场景,本发明提出了一种存储管理方法,以解决目前存在的问题。
本发明采用的技术方案是一种轻型嵌入式系统的闪存管理方法,所述闪存中存储几种数据,每种数据有固定的长度和预定的存储数量,于所述方法包括以下步骤:
步骤1、针对每一种数据制作数据表头,所述数据表头包括data_len、max_num、cur_num、head、tail、sector_infor。
其中,data_len为该种数据每一条的数据长度,单位为字节,max_num为最大条数,cur_num为现有条数,head为数据存储队首位置,tail为数据存储队尾位置,sector_infor为该种数据对扇区的占用情况信息,每个扇区对应所述sector_infor中的一个bit,将sector_infor中的所有bit置0。
设定每一种数据在闪存中的存储格式为:数据+next_addr。
next_addr为下一条数据的地址指针。
步骤2、设置闪存的当前分配位置以及结束位置,分别为allocationPos和sectorsEndPos,allocationPos=0,sectorsEndPos为闪存的结束地址,在allocationPos和sectorsEndPos之间的地址范围内是连续的可分配空间。
步骤3、添加某种数据时,执行以下步骤:
步骤3.1、获得当前存储位置。
步骤3.2、获取下一条数据的存储位置。
包括以下步骤:
计算预计存储位置:POS= allocationPos+data_len+len(next_addr)。
其中,len(next_addr)为next_addr的长度,单位为字节。
计算剩余空间大小:POS1= POS + data_len+len(next_addr)。
如果POS1小于等于sectorsEndPos,POS为下一条数据的存储位置,否则,执行步骤4,得到新的allocationPos,重新执行步骤3.2。
步骤3.3、将数据存储到步骤3.1得到的当前存储位置;将步骤3.2得到的POS存储到next_addr中。
步骤3.4、更新数据表头,包括:
步骤3.4.1、将步骤3.2得到的下一条数据的存储位置POS存储到数据表头信息的tail。
步骤3.4.2、得到POS所在扇区信息,将sector_infor中对应该扇区的bit置1。
步骤3.4.3、如果数据表头信息中的cur_num小于max_num,更新数据表头信息的cur_num=cur_num+1。
否则,更新head,更新的数据为当前head指向的数据中的next_addr,判断更新前后的head是否属于同一扇区,如果不是,得到更新前的head所在扇区信息,将sector_infor中对应该扇区的bit置0。
步骤3.5、更新allocationPos,allocationPos=POS1。
步骤4、闪存回收步骤,包括:
步骤4.1、将所有数据表头中的head、tail地址跨度求并集。
步骤4.2、将得到的并集地址转化为闪存的扇区跨度,此跨度以外的扇区为可以回收的扇区。
步骤4.4、将连续可回收扇区的最低地址存储至allocationPos,最高地址存储至sectorsEndPos。
进一步地,所述数据表头存储在其它介质中。
进一步地,步骤3中,如果是第一次添加某种数据,步骤3.1包括:allocationPos为可以存储的位置,将allocationPos存储到数据表头信息的head中,更新allocationPos,allocationPos= allocationPos+data_len+len(next_addr)。
步骤3中,如果是添加已经存储过的数据,步骤3.1包括:查询对应的数据表头,tail为可以存储的位置。
针对特殊应用场景,本发明针对各种数据建立数据表头,存储数据在闪存中的存储情况;设置闪存的当前分配位置以及结束位置,为各种数据提供统一的地址分配机制,数据在闪存中按地址顺序储存,存储空间滚动使用。数据没有专门的删除命令,由各种数据的最大条数和首尾指针表示有效数据的存储位置,过期数据占用的空间为可回收再利用空间,统一回收。
采用本发明,不需要提前划分存储区域,让开发更稳定快捷;按需求的字节分配空间而不是按扇区分配,节省了flash的使用空间;存储空间滚动循环使用,各个位置的擦写次数基本相同,延长了flash的使用寿命,节约了成本,降低了Flash选择的需求。
附图说明
图1为本方法处理过程中内存使用示意图,
图2、3为可回收扇区的示意图。
图2和图3中,数字为扇区编号,阴影区域为有效数据占用区域。
具体实施方式
下面结合附图对本发明做进一步说明。
闪存使用前的设置包括以下步骤。
步骤1、针对每一种数据制作数据表头,所述数据表头包括data_len、max_num、cur_num、head、tail、sector_infor。
其中,data_len为该种数据每一条的数据长度,单位为字节,max_num为最大条数,cur_num为现有条数,head为数据存储队首位置,tail为数据存储队尾位置,sector_infor为该种数据对扇区的占用情况信息,每个扇区对应所述sector_infor中的一个bit,将sector_infor中的所有bit置0。数据表头的格式参看图1。
由于数据表头需要频繁擦写,因此数据表头存储在系统的其它存储介质中,也保证闪存使用的单一性。
设定每一种数据在闪存中的存储格式为:数据+next_addr。
next_addr为下一条数据的地址指针。每种数据可以从数据表头中的head开始,通过每个next_addr遍历访问。
步骤2、设置闪存的当前分配位置以及结束位置,分别为allocationPos和sectorsEndPos。
初始的allocationPos=0,sectorsEndPos为闪存的结束地址,在allocationPos和sectorsEndPos之间的地址范围内是连续的可分配空间。上述设置说明整个闪存的存储空间都可分配使用。
添加数据时,完成两个任务:1、存储当前数据,2、预分配下一条数据的存储空间。具体步骤如下。
步骤3、添加某种数据时,执行以下步骤。
步骤3.1、获得当前存储位置。
本实施例中,第一次添加某种数据和添加已经存储过的数据分别进行处理。
如果是第一次添加某种数据,闪存中没有这种数据,数据表头中也没有head和tail信息。allocationPos为可以存储的位置,将allocationPos存储到数据表头信息的head中,更新allocationPos,allocationPos= allocationPos+data_len+len(next_addr)。
如果是添加已经存储过的数据,查询对应的数据表头,tail中存储的地址为可以存储的位置。
步骤3.2、获取下一条数据的存储位置,首先找到分配地址,再计算从分配地址开始,判断是否还有足够的空间。包括以下步骤。
计算预计存储位置。找到分配地址:POS= allocationPos+data_len+len(next_addr)。
其中,len(next_addr)为next_addr的长度,单位为字节,next_addr的长度跟闪存的总存储容量相关。
计算剩余空间大小:POS1= POS + data_len+len(next_addr)。
如果POS1小于等于sectorsEndPos,说明剩余的存储空间可以容纳下一条数据,POS为下一条数据的存储位置,否则,当前的闪存没有可分配的存储空间,需要回收,此时执行步骤4,回收得到可分配的闪存和新的allocationPos,重新执行步骤3.2。
步骤3.3、将数据存储到步骤3.1得到的当前存储位置;将步骤3.2得到的POS存储到next_addr中,当收到新的该种数据时,在步骤3.1中获取该地址,直接存储。
当前数据存储完成、获得下一条数据的存储位置后,进行该种数据表头的更新。
步骤3.4、更新数据表头。
步骤3.4.1、将步骤3.2得到的下一条数据的存储位置POS存储到数据表头信息的tail。tail中的地址与该种数据的最后一条中的next_addr一致。
步骤3.4.2、得到POS所在扇区信息,将sector_infor中对应该扇区的bit置1。
包括两种情况:1、该种数据第一次占用此扇区,2、此扇区中已经包含该种数据。两种情况的处理方式一样,即将sector_infor中对应该扇区的bit置1。
sector_infor表示了该种数据在闪存中各扇区的占用情况。
步骤3.4.3、如果数据表头信息中的cur_num小于max_num,更新数据表头信息的cur_num=cur_num+1;否则,更新head,更新的数据为当前head指向的数据中的next_addr,判断更新前后的head是否属于同一扇区,如果不是,得到更新前的head所在扇区信息,将sector_infor中对应该扇区的bit置0。
本发明针对的情况是在闪存中,每种类型数据的存储量一定,即有最大条数限制。当某种数据增加一条时,cur_num加1。当达到最大条数时,根据先进先出的原则,放弃最早的一条数据。
当放弃的数据所在扇区中没有该种数据时,sector_infor中对应该扇区的bit置0,即该种数据已经不占有此扇区。当所有数据都不占有该扇区时,该扇区可以回收,重新分配。
步骤3.5、更新allocationPos,allocationPos=POS1;allocationPos为新的当前可分配位置。
扇区的回收也是本发明的关键点。
本实施例中,采用两种回收方式:
1、根据所有数据表头中的head和tail进行回收。
步骤4.1、将所有数据表头中的head、tail地址跨度求并集,
步骤4.2、将得到的并集地址转化为闪存的扇区跨度,此跨度以外的扇区为可以回收的扇区。
如闪存中存储了3种数据。
存储了3个种类的数据:
第一种数据需要存储5千条,用到了第8、9、10、11、12、13、14、15、16扇区。
第二种数据需要存储1万条,用到了第8、9、10、12、15、16、17、500、501、502、503、504、505、511、512扇区。
第三种数据需要存储100万条,用到了18、19-512扇区。
这种情况下,各种数据的队首位置以及队尾位置分别如下:
第一种数据的head在第8扇区,tail在第16扇区。
第二种数据的head在第8扇区,tail在第512扇区。
第三种数据的head在第18扇区,tail在第512扇区。
将三种数据表头中的head、tail地址跨度求并集,将得到的并集地址转化为闪存的扇区跨度:8-512,此跨度以外的扇区,即1-7扇区为可以回收的扇区,如图2所示。
由于存储数据总条数不变会带来数据的滚动存储效果,因而1-7扇区成为了实际有数据但是数据属于无效数据的情况,因此在用3种数据起始和结束位置取并集后以外的区域1-7就成了可以回收的区域,如图2所示。这种方法可以快速回收1-7扇区。
还有一种情况,如图3所示。
假设存储了3个种类的数据:
第一种数据需要存储5千条,用到了第1、505、506、507、508、509、510、511、512扇区。
第二种数据需要存储1万条,用到了第8、9、10、12、15、16、17、500、501、502、503、504、505、511、512扇区。
第三种数据需要存储100万条,用到了11、12、13、14、15、16、18、19-512扇区。
这种情况下的表头信息的队首位置以及队尾位置分别如下:
第一种数据的表头信息head在第1扇区位置,tail在第512扇区。
第二种数据的表头信息head在第8扇区位置,tail在第512扇区。
第三种数据的表头信息head在第11扇区位置,tail在第512扇区。
在这种情况下,将三种数据表头中的head、tail地址跨度求并集,得到第1扇区一直到末尾的第512扇区,但是中间第2-7扇区实际成为了无效数据,但是因为涵盖在起始和结束位置的跨度里,因此无法通过取并集的方法将2-7扇区取出来。
本实施例采用以下步骤进行回收。
2、根据所有数据表头中的sector_infor进行回收。
步骤4.2、将得到的并集地址转化为闪存的扇区跨度,此跨度以外的扇区为可以回收的扇区,如果无法得到可以回收的扇区执行步骤4.4,否则执行步骤4.3。
增加步骤4.4、将所有数据表头中的sector_infor进行或运算,结果为0的bit对应的扇区为可回收的扇区,执行步骤4.3。
由于表头的sector_infor记录了该类数据使用了哪些扇区,因此将所有数据表头中的sector_infor数组执行按位或运算,按位或运算后对应位置是0的bit位对应的扇区就是可以回收的扇区。
采用以上步骤可以得到所有可回收的扇区。
采用第一种方法可以快速找到特定情形的可回收扇区,采用第二种方法速度慢,但可以找到所有可回收的扇区。
采用第二种方法,有可能得到多个分散的可回收扇区,其中有连续的扇区,也有单独一个扇区。如果出现这种情况,将最大的连续可回收扇区的最低地址存储至allocationPos,最高地址存储至sectorsEndPos,也就是本次回收只关注最大的连续可分配空间,其它的可回收扇区的状态不会改变,在以后的回收步骤中再次回收。
为了提高时间效率,可以设置多个allocationPos和sectorsEndPos(以数组形式),将找到的可回收扇区的首尾位置存在数组中,当需要新的存储空间时,不用每次都进行回收操作,直接查看是否还有未使用的已回收空间。
步骤4.3、将连续可回收扇区的最低地址存储至allocationPos,最高地址存储至sectorsEndPos。该步骤中,如果有多个分散的可回收扇区,将最大的连续可回收扇区的最低地址存储至allocationPos,最高地址存储至sectorsEndPos。在allocationPos和sectorsEndPos之间的地址范围内是连续的可分配空间。
这里的“连续可回收扇区”包括只有单个扇区可以使用的情况。
关于有益效果的评估:
计算数据:传统的使用方式,以扇区为单位进行分配。若每个扇区为4096个字节,如果存储一种数据,数据量4097个字节,单纯为了存储数据需要2个扇区,在不丢失数据擦除扇区的前提下需要分配3个扇区。
本身数据仅需要1个扇区再加1个字节,但是此处却多耗费了将近2个扇区,当存储10种数据时就会造成将近20个扇区的数据浪费,这种数据项越多浪费的空间就会呈2N增加,所以节省空间效果是显著的。
寿命计算:当仅存储1种数据的前提下,按传统方式划分区域进行存储,此数据的擦写操作只能在分配好的空间进行,而其他区域不会使用,该区域擦写次数达到上限次数(10万次)就会造成硬件系统的异常,在数据占用量1个扇区,芯片存储量2M字节的前提下,此芯片有512个扇区,极限情况下,本发明的解决方案可提高512倍的擦写寿命。
Claims (5)
1.一种轻型嵌入式系统的闪存管理方法,所述闪存中存储几种数据,每种数据有固定的长度和预定的存储数量,其特征在于所述方法包括以下步骤:
步骤1、针对每一种数据制作数据表头,所述数据表头包括data_len、max_num、cur_num、head、tail、sector_infor,
其中,data_len为该种数据每一条的数据长度,单位为字节,max_num为最大条数,cur_num为现有条数,head为数据存储队首位置,tail为数据存储队尾位置,sector_infor为该种数据对扇区的占用情况信息,每个扇区对应所述sector_infor中的一个bit,将sector_infor中的所有bit置0;
设定每一种数据在闪存中的存储格式为:
数据+next_addr,
next_addr为下一条数据的地址指针;
步骤2、设置闪存的当前分配位置以及结束位置,分别为allocationPos和sectorsEndPos,allocationPos=0,sectorsEndPos为闪存的结束地址,在allocationPos和sectorsEndPos之间的地址范围内是连续的可分配空间;
步骤3、添加某种数据时,执行以下步骤:
步骤3.1、获得当前存储位置,
步骤3.2、获取下一条数据的存储位置,
包括以下步骤:
计算预计存储位置:
POS= allocationPos+data_len+len(next_addr)
其中,len(next_addr)为next_addr的长度,单位为字节;
计算剩余空间大小:
POS1= POS + data_len+len(next_addr)
如果POS1小于等于sectorsEndPos,POS为下一条数据的存储位置,否则,执行步骤4,得到新的allocationPos,重新执行步骤3.2;
步骤3.3、将数据存储到步骤3.1得到的当前存储位置;将步骤3.2得到的POS存储到next_addr中;
步骤3.4、更新数据表头,包括:
步骤3.4.1、将步骤3.2得到的下一条数据的存储位置POS存储到数据表头信息的tail,
步骤3.4.2、得到POS所在扇区信息,将sector_infor中对应该扇区的bit置1,
步骤3.4.3、如果数据表头信息中的cur_num小于max_num,更新数据表头信息的cur_num=cur_num+1;
否则,更新head,更新的数据为当前head指向的数据中的next_addr,判断更新前后的head是否属于同一扇区,如果不是,得到更新前的head所在扇区信息,将sector_infor中对应该扇区的bit置0;
步骤3.5、更新allocationPos,allocationPos=POS1;
步骤4、闪存回收步骤,包括:
步骤4.1、将所有数据表头中的head、tail地址跨度求并集,
步骤4.2、将得到的并集地址转化为闪存的扇区跨度,此跨度以外的扇区为可以回收的扇区,
步骤4.3、将连续可回收扇区的最低地址存储至allocationPos,最高地址存储至sectorsEndPos。
2.根据权利要求1所述的闪存管理方法,其特征在于,所述数据表头存储在其它介质中。
3.根据权利要求1所述的闪存管理方法,其特征在于,
步骤3中,如果是第一次添加某种数据,步骤3.1包括:
allocationPos为可以存储的位置,将allocationPos存储到数据表头信息的head中,更新allocationPos,allocationPos= allocationPos+data_len+len(next_addr);
步骤3中,如果是添加已经存储过的数据,步骤3.1包括:
查询对应的数据表头,tail为可以存储的位置。
4.根据权利要求1所述的闪存管理方法,其特征在于,
步骤4、闪存回收步骤中:
步骤4.2、将得到的并集地址转化为闪存的扇区跨度,此跨度以外的扇区为可以回收的扇区,如果无法得到可以回收的扇区执行步骤4.4,否则执行步骤4.3,
增加:
步骤4.4、将所有数据表头中的sector_infor进行或运算,结果为0的bit对应的扇区为可回收的扇区,执行步骤4.3。
5.根据权利要求1所述的闪存管理方法,其特征在于,
步骤4.3中,如果有多个分散的可回收扇区,将最大的连续可回收扇区的最低地址存储至allocationPos,最高地址存储至sectorsEndPos。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011314074.4A CN112269549B (zh) | 2020-11-20 | 2020-11-20 | 一种轻型嵌入式系统的闪存管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011314074.4A CN112269549B (zh) | 2020-11-20 | 2020-11-20 | 一种轻型嵌入式系统的闪存管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112269549A CN112269549A (zh) | 2021-01-26 |
CN112269549B true CN112269549B (zh) | 2022-03-11 |
Family
ID=74340271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011314074.4A Active CN112269549B (zh) | 2020-11-20 | 2020-11-20 | 一种轻型嵌入式系统的闪存管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112269549B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817532A (zh) * | 2021-01-27 | 2021-05-18 | 杭州爱科科技股份有限公司 | 数据处理方法、装置及计算机存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6742078B1 (en) * | 1999-10-05 | 2004-05-25 | Feiya Technology Corp. | Management, data link structure and calculating method for flash memory |
CN101324862B (zh) * | 2008-05-05 | 2010-06-02 | 青岛海信电器股份有限公司 | 闪存存储管理方法 |
CN103425546A (zh) * | 2013-08-14 | 2013-12-04 | 江苏林洋电子股份有限公司 | 一种通用高效高可靠的Nor Flash数据存储管理方法 |
CN111324554B (zh) * | 2020-02-18 | 2022-03-18 | 日立楼宇技术(广州)有限公司 | 闪存数据的管理方法及装置、电梯控制器 |
-
2020
- 2020-11-20 CN CN202011314074.4A patent/CN112269549B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112269549A (zh) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106502587B (zh) | 硬盘数据管理方法和硬盘控制装置 | |
US7610434B2 (en) | File recording apparatus | |
CN100419714C (zh) | 闪存存取方法、闪存文件系统的块替换方法及其管理装置 | |
CN102831070B (zh) | 用于存储器装置的存储地址重新映射的方法和系统 | |
CN101515276B (zh) | 一种文件数据写操作的方法、文件数据恢复方法及系统 | |
US6622226B1 (en) | Method and system for using a mark-list for garbage collection | |
CN115292266B (zh) | 一种基于存储器的高可靠日志存储方法 | |
CN104008061A (zh) | 内存回收方法及装置 | |
CN110347613B (zh) | 多租户固态盘中实现raid的方法、控制器及多租户固态盘 | |
CN101606133A (zh) | 具有连续逻辑地址空间接口的直接数据文件系统的使用 | |
CN102135942A (zh) | 一种存储设备中实现损耗均衡的方法及存储设备 | |
CN109558335B (zh) | 一种基于Nor Flash存储器的嵌入式系统的文件存储格式 | |
CN110389712B (zh) | 数据写入方法及其装置、固态硬盘和计算机可读存储介质 | |
CN108304259B (zh) | 内存管理方法及系统 | |
CN108829342B (zh) | 一种日志存储方法、系统及存储装置 | |
CN1075211C (zh) | 便携式终端的存储器管理方法 | |
CN103678180A (zh) | 智能卡非易失性存储器的管理方法 | |
CN108228479A (zh) | 一种嵌入式flash数据存储方法及系统 | |
CN112269549B (zh) | 一种轻型嵌入式系统的闪存管理方法 | |
CN104933051A (zh) | 文件存储空间回收方法和装置 | |
US20060236065A1 (en) | Method and system for variable dynamic memory management | |
CN100405329C (zh) | 在按块可擦的存储器中写存储器扇区的方法 | |
CN101241469A (zh) | 一种在嵌入式系统中存储、读取数据的方法及装置 | |
CN112347043A (zh) | 基于车载sd卡的文件管理方法、装置、设备及存储介质 | |
CN1627272A (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 |