CN103020323A - 一种基于未知长度二分查找的闪存数据检索存储的方法 - Google Patents

一种基于未知长度二分查找的闪存数据检索存储的方法 Download PDF

Info

Publication number
CN103020323A
CN103020323A CN2013100151539A CN201310015153A CN103020323A CN 103020323 A CN103020323 A CN 103020323A CN 2013100151539 A CN2013100151539 A CN 2013100151539A CN 201310015153 A CN201310015153 A CN 201310015153A CN 103020323 A CN103020323 A CN 103020323A
Authority
CN
China
Prior art keywords
sector
data
erasable
dew
distance
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
CN2013100151539A
Other languages
English (en)
Other versions
CN103020323B (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.)
Shandong University
Original Assignee
Shandong 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 Shandong University filed Critical Shandong University
Priority to CN201310015153.9A priority Critical patent/CN103020323B/zh
Publication of CN103020323A publication Critical patent/CN103020323A/zh
Application granted granted Critical
Publication of CN103020323B publication Critical patent/CN103020323B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)

Abstract

一种基于未知长度二分查找的闪存数据检索存储的方法,属于闪存存储技术领域。本发明结合未知长度二分查找、位图、负载因子、擦写距离等算法和思想,用未知长度二分查找代替全地址空间(扇区的全部地址)的二分查找,用位图代替实际删除,用负载因子和擦写距离代替全地址空间存储,本发明检索存储的方法提高了对闪存介质的查询、删除、擦写等基本操作的性能,同时,还具有可扩展性强、资源占用少等优点,易于在嵌入式系统或无操作系统的单片机中实现。

Description

一种基于未知长度二分查找的闪存数据检索存储的方法
技术领域
本发明涉及一种基于未知长度二分查找的闪存数据检索存储的方法,属于闪存存储技术领域。
背景技术
闪存(Flash Memory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位,区块大小一般为256KB到20MB。闪存是电子可擦除只读存储器(EEPROM)的变种,闪存与EEPROM不同的是,它能在字节水平上进行删除和重写而不是整个芯片擦写,这样闪存就比EEPROM的更新速度快。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本输入输出程序)、PDA(个人数字助理)、数码相机中保存资料等。
闪存由于本身特点,一个扇区在可以存放数据之前,必须先擦除该扇区,然后再在相应位置写入数据,这是因为闪存擦出操作,会将该扇区重置为全1,当写入数据时,数据中的所有为0的数据位会将闪存中对应位置的1置为0,而数据中所有为1的数据位将不会影响扇区中对应的1,即扇区中的数据位,可以被从1置为0,但是不可以被从0置为1(除非执行擦除操作)。
郑文静、李明强、舒继武等所写的“Flash存储技术”[见“计算机研究与发展”杂志,2010,47(4):716-726]一文中指出,跨扇区存储数据时产生的扇区合并操作,由于涉及数据复制、扇区擦除等耗时耗能操作,还会降低可靠性,已经被认为是闪存存储系统设计时的瓶颈。同时,针对其他存储介质(如磁盘等)设计的B树和B+树等数据结构,在闪存介质中性能急剧下降,如何针对闪存介质设计高性能的数据结构或数据检索方法,也是亟待解决的问题。
现有方法在闪存介质检索存储数据时检索效率与存储效率不能兼顾。
删除数据时,现有方法,查找该数据所在的扇区,将该扇区中除该数据以外的数据读出,擦除该扇区,将读出的结果写会该扇区,操作复杂低效,内存消耗大。
擦写数据时,现有方法,一种方式是以追加方式存储新数据,另一种方式是将某个扇区的已有数据与新数据排序,再擦除该扇区,再将排序结果写入该扇区。前者的存储速度快,但是检索速度慢;后者的存储速度慢,但是检索速度快。
查询数据时,现有方法,对于以追加方式存储新数据而言,只能顺序查找,复杂度为线性增长,复杂度高;对于以排序方式存储新数据而言,可以使用二分查找,复杂度为对数增长,复杂度低。
跨扇区存储数据时,如果某扇区已满,现有方法,对于以追加方式存储新数据而言,可以随机找一个未满的扇区,存放新数据,效率高;对于以排序方式存储新数据而言,为将新数据存储到正确位置,需要擦除并重新写入该扇区之后全部已存储数据扇区的数据,效率极其低下。
发明内容
针对现有技术的不足,本发明提出了一种基于未知长度二分查找的闪存数据检索存储的方法,它是一种基于位图和未知长度二分查找的闪存介质存储检索易变数据的高效方法,以解决现有闪存介质存储检索易变数据时存储效率与检索效率不能兼顾的问题。本发明使用位图,标示数据的有效性,进而实现高效的删除操作;使用负载因子,决定各扇区的负载百分比,进而解决以排序方式存储数据导致的存储速度慢的问题;使用未知长度二分查找,解决对未知长度的有序序列中的高效数据检索;使用擦写距离,解决跨扇区存储数据时,由于某扇区满而导致的极低效的数据移动问题。
本发明的技术方案如下:
一种基于未知长度二分查找的闪存数据检索存储的方法,是利用单片机控制系统实现的,该系统包括单片机、闪存存储芯片、查询生成器、报警器、上位机,上位机通过RS-485连接单片机,单片机通过SPI连接闪存存储芯片,单片机通过SPI或RS-232连接查询生成器,单片机通过三极管放大器和继电器连接报警器;查询生成器用于向单片机输入待查询的数据,当待查询数据在闪存存储芯片中不存在时,报警器报警,上位机将变更的数据发送至单片机,单片机负责将数据变更反映到闪存存储芯片中;该方法分作6步,前3步提供设定及计算得到的基本参数,后3步分别进行不同的操作以实现3组不同的功能,该方法具体步骤如下:
1)各扇区的容量为Capacity,负载因子为LoadFactor,扇区数量为SectorCount,扇区从0开始编号;
2)向编号为i的已存储SizeStored(i)大小数据的扇区,存入长度为N的数据时,该扇区提供的剩余空间为
Figure BDA00002739882800021
也就是说,编号为i的扇区在已存储SizeStored(i)大小的数据后,仍有剩余空间继续存储大小为N的数据时,该扇区提供的剩余空间为扇区容量减去扇区中已存储的数据大小;其他情况下,该扇区提供的剩余空间为“负载因子限制下”的扇区容量即Capacity*LoadFactor减去扇区中已存储的数据大小;
另外,允许Rcs(i,N)的结果为负,当Rcs(i,N)的结果为负时表示该扇区需要额外空间存储数据;
3)擦写距离分为前向擦写距离DEWp和后向擦写距离DEWn两种,有效的擦写距离为非负整数,擦写距离的计算过程步骤如下:
a.向i号扇区写入长度为N的数据时,前向擦写距离DEWp的计算过程步骤如下:
i.初始化
DEWp=0;前向擦写距离的初始值为0
sectorNo=i;扇区编号
Rsumps=Rcs(i,N);编号小于和等于i的所有扇区的剩余空间之和;
ii.如果sectorNo>=0并且Rsumps<N,转至步骤iii;否则转至步骤iv;
iii.sectorNo=sectorNo-1
DEWp=DEWp+1
Rsumps=Rsumps+Rcs(sectorNo,N-Rsumps)
转至步骤ii;
iv.如果Rsumps<N,那么DEWp=-1;
b.向i号扇区写入长度为N的数据时,后向擦写距离DEWn的计算过程步骤如下:
i.初始化
DEWn=0;后向擦写距离的初始值为0
sectorNo=i;扇区编号
Rsumns=Rcs(i,N);编号大于和等于i的所有扇区的剩余空间之和;
ii.如果sectorNo<SectorCount并且Rsumns<N,转至步骤iii;否则转至步骤iv;
iii.sectorNo=sectorNo+1
DEWn=DEWn+1
转至步骤ii;
c.如果Rsumns<N,那么DEWn=-1;
4)查找操作
该操作首先执行未知长度二分查找算法,然后结合位图Bitmap,判定该数据是否有效,查找操作步骤如下:
a.未知长度二分查找,查找操作的执行过程主要分为以下两步:
i.使用步长倍增的方式,即第1次查找时,步长为1,即2(1-1);第2次查找时,步长为2,即2(2-1);第3次查找时,步长为4,即2(3-1),以此类推,该方式快速确定一个不小于待查询数据的数据地址,并使next变量指向该地址,而将cur变量指向next前的最后一个小于待查询数据的数据地址,cur初始值为0,next初始值为1;
ii.使用标准二分查找,在cur和next-1之间确定待查询数据是否存在;如果查找失败,则直接报错;否则,继续执行;
b.查看被成功查找到的数据的下标Iquery所对应的位图是否有效,即需要进一步验证数据的有效性;用以下方式定义下标i的位图查询函数:
Figure BDA00002739882800031
即位图的第(i/8)个字节的第(i%8)个Bit位为1时,该函数返回True,否则返回False;当该函数返回True时,表明该下标所对应的数据有效,否则返回False表明无效;
5)删除操作
设待删除的元素对应的下标为Idelete,将位图中第(Idelete/8)个字节的第(Idelete%8)个Bit位置0;
6)擦写操作
该操作首先决策擦写方向,再在决策方向上执行不同类型的擦写操作;
a.擦写方向决策过程
i.如果本扇区的剩余空间大于N,则将新数据直接写入本扇区;否则,分别计算(DEWp,Rsumps)和(DEWn,Rsumns);其中(DEWp,Rsumps)表示前向擦写距离(DEWp)内,获得的全部扇区的总剩余空间为Rsumps,(DEWn,Rsumns)表示后向擦写距离(DEWn)内,获得的全部扇区的总剩余空间为Rsumns
ii.如果Rsumps和Rsumns均大于等于N,此时比较(DEWp-1)和DEWn的大小:若前者较小,则将新数据写入本扇区和“编号小于本扇区编号”的扇区;否则,将新数据写入本扇区和“编号大于本扇区编号”的扇区;
iii.如果仅Rsumps大于等于N,则将新数据写入本扇区和“编号小于本扇区编号”的扇区;
iv.如果仅Rsumns大于等于N,则将新数据写入本扇区和“编号大于本扇区编号”的扇区;
v.如果Rsumps和Rsumns均小于N,则报错;
b.不同类型的擦写操作
i.非跨扇区擦写操作
本扇区足以存储长度为N的数据时,仅对本扇区执行擦写操作;
ii.前向跨1扇区写操作
前向擦写距离(DEWp)等于1时,需要对本扇区执行擦写操作,对本扇区之前的1个扇区执行"追加写(Append)"操作,即将本扇区前部长度为N'=Capacity*(1-LoadFactor)的数据追加到本扇区之前的1个扇区的尾部;
iii.跨扇区擦写操作
当前向擦写距离(DEWp)大于1或后向擦写距离(DEWn)大于0时,需要执行跨扇区擦写操作;在某扇区被写满之后,该扇区应只保留负载因子(LoadFactor)规定的百分比的数据,其他数据应转存至其他扇区,接收转存数据的扇区,不再重新计算擦写半径,即应按照原有方向(向前或向后)继续转存数据,而不改变数据的转存方向;接收转存数据的扇区被写满之后,也应减少其扇区的数据至负载因子(LoadFactor)规定的百分比。
上述位图是一种使用1个数据位(Bit)表示某值(Value)布尔状态的数据结构和技术,由于使用1数据位表示值的布尔状态,所以在存储空间占用方面,将大大节省存储空间。未知长度二分查找,是标准二分查找算法的一个变种,适用于在长度未知的有序序列中,快速查找某数据,其复杂度与标准二分查找算法相同,都是O(logn),其中n为有序序列长度(若序列长度未知,则n为序列中实际存储的数据个数)。
本发明具有以下优点:
1)查找高效。由于使用未知长度的二分查找算法,因而其查找复杂度近似于标准二分查找算法的复杂度;
2)删除高效。由于使用位图表示元素的有效状态,所以查找到该数据在某扇区的位置后,使用公式即可计算得到该数据对应的位图位置,最后只要将该位图置0即可删除该元素;
3)擦写高效。由于使用负载因子和擦写距离两种思想,所以绝大多数擦写数据的操作仅需进行一次擦除操作即可完成,而涉及多次擦写操作的擦写操作,又可以通过擦写距离的计算,将擦写代价降至最低,从而获得最优的擦写性能。
综上,本发明结合多种算法和思想,能够有效地提高闪存介质检索存储数据时的性能,同时,本发明还具有可扩展性强,资源占用少等优点,极易在嵌入式系统或无操作系统的单片机中实现。
附图说明
图1为本发明方法步骤6)中的a.擦写方向决策过程具体步骤的流程示意图。
具体实施方式
下面结合实施例和附图对本发明做进一步说明,但不限于此。
实施例:
一种基于未知长度二分查找的闪存数据检索存储的方法,是利用单片机控制系统实现的,该系统包括单片机、闪存存储芯片、查询生成器、报警器、上位机,上位机通过RS-485连接单片机,单片机通过SPI连接闪存存储芯片,单片机通过SPI或RS-232连接查询生成器,单片机通过三极管放大器和继电器连接报警器;查询生成器用于向单片机输入待查询的数据,当待查询数据在闪存存储芯片中不存在时,报警器报警,上位机将变更的数据发送至单片机,单片机负责将数据变更反映到闪存存储芯片中;该方法分作6步,前3步提供设定及计算得到的基本参数,后3步分别进行不同的操作以实现3组不同的功能,该方法具体步骤如下:
1)各扇区的容量为Capacity,负载因子为LoadFactor,扇区数量为SectorCount,扇区从0开始编号;
2)向编号为i的已存储SizeStored(i)大小数据的扇区,存入长度为N的数据时,该扇区提供的剩余空间为也就是说,编号为i的扇区在已存储SizeStored(i)大小的数据后,仍有剩余空间继续存储大小为N的数据时,该扇区提供的剩余空间为扇区容量减去扇区中已存储的数据大小;其他情况下,该扇区提供的剩余空间为“负载因子限制下”的扇区容量即Capacity*LoadFactor减去扇区中已存储的数据大小;
另外,允许Rcs(i,N)的结果为负,当Rcs(i,N)的结果为负时表示该扇区需要额外空间存储数据;
3)擦写距离分为前向擦写距离DEWp和后向擦写距离DEWn两种,有效的擦写距离为非负整数,擦写距离的计算过程步骤如下:
a.向i号扇区写入长度为N的数据时,前向擦写距离DEWp的计算过程步骤如下:
i.初始化
DEWp=0;前向擦写距离的初始值为0
sectorNo=i;扇区编号
Rsumps=Rcs(i,N);编号小于和等于i的所有扇区的剩余空间之和;
ii.如果sectorNo>=0并且Rsumps<N,转至步骤iii;否则转至步骤iv;
iii.sectorNo=sectorNo-1
DEWp=DEWp+1
Rsumps=Rsumps+Rcs(sectorNo,N-Rsumps)
转至步骤ii;
iv.如果Rsumps<N,那么DEWp=-1;
b.向i号扇区写入长度为N的数据时,后向擦写距离DEWn的计算过程步骤如下:
i.初始化
DEWn=0;后向擦写距离的初始值为0
sectorNo=i;扇区编号
Rsumns=Rcs(i,N);编号大于和等于i的所有扇区的剩余空间之和;
ii.如果sectorNo<SectorCount并且Rsumns<N,转至步骤iii;否则转至步骤iv;
iii.sectorNo=sectorNo+1
DEWn=DEWn+1
转至步骤ii;
c.如果Rsumns<N,那么DEWn=-1;
4)查找操作
该操作首先执行未知长度二分查找算法,然后结合位图Bitmap,判定该数据是否有效,查找操作步骤如下:
a.未知长度二分查找,查找操作的执行过程主要分为以下两步:
i.使用步长倍增的方式,即第1次查找时,步长为1,即2(1-1);第2次查找时,步长为2,即2(2-1);第3次查找时,步长为4,即2(3-1),以此类推,该方式快速确定一个不小于待查询数据的数据地址,并使next变量指向该地址,而将cur变量指向next前的最后一个小于待查询数据的数据地址,cur初始值为0,next初始值为1;
ii.使用标准二分查找,在cur和next-1之间确定待查询数据是否存在;如果查找失败,则直接报错;否则,继续执行;
b.查看被成功查找到的数据的下标Iquery所对应的位图是否有效,即需要进一步验证数据的有效性;用以下方式定义下标i的位图查询函数:
Figure BDA00002739882800051
即位图的第(i/8)个字节的第(i%8)个Bit位为1时,该函数返回True,否则返回False;当该函数返回True时,表明该下标所对应的数据有效,否则返回False表明无效;
5)删除操作
设待删除的元素对应的下标为Idelete,将位图中第(Idelete/8)个字节的第(Idelete%8)个Bit位置0;
6)擦写操作
该操作首先决策擦写方向,再在决策方向上执行不同类型的擦写操作;
a.擦写方向决策过程
i.如果本扇区的剩余空间大于N,则将新数据直接写入本扇区;否则,分别计算(DEWp,Rsumps)和(DEWn,Rsumns);其中(DEWp,Rsumps)表示前向擦写距离(DEWp)内,获得的全部扇区的总剩余空间为Rsumps,(DEWn,Rsumns)表示后向擦写距离(DEWn)内,获得的全部扇区的总剩余空间为Rsumns
ii.如果Rsumps和Rsumns均大于等于N,此时比较(DEWp-1)和DEWn的大小:若前者较小,则将新数据写入本扇区和“编号小于本扇区编号”的扇区;否则,将新数据写入本扇区和“编号大于本扇区编号”的扇区;
iii.如果仅Rsumps大于等于N,则将新数据写入本扇区和“编号小于本扇区编号”的扇区;
iv.如果仅Rsumns大于等于N,则将新数据写入本扇区和“编号大于本扇区编号”的扇区;
v.如果Rsumps和Rsumns均小于N,则报错;
b.不同类型的擦写操作
i.非跨扇区擦写操作
本扇区足以存储长度为N的数据时,仅对本扇区执行擦写操作;
ii.前向跨1扇区写操作前向擦写距离(DEWp)等于1时,需要对本扇区执行擦写操作,对本扇区之前的1个扇区执行"追加写(Append)"操作,即将本扇区前部长度为N'=Capacity*(1-LoadFactor)的数据追加到本扇区之前的1个扇区的尾部;
iii.跨扇区擦写操作
当前向擦写距离(DEWp)大于1或后向擦写距离(DEWn)大于0时,需要执行跨扇区擦写操作;在某扇区被写满之后,该扇区应只保留负载因子(LoadFactor)规定的百分比的数据,其他数据应转存至其他扇区,接收转存数据的扇区,不再重新计算擦写半径,即应按照原有方向(向前或向后)继续转存数据,而不改变数据的转存方向;接收转存数据的扇区被写满之后,也应减少其扇区的数据至负载因子(LoadFactor)规定的百分比。

Claims (1)

1.一种基于未知长度二分查找的闪存数据检索存储的方法,是利用单片机控制系统实现的,该系统包括单片机、闪存存储芯片、查询生成器、报警器、上位机,上位机通过RS-485连接单片机,单片机通过SPI连接闪存存储芯片,单片机通过SPI或RS-232连接查询生成器,单片机通过三极管放大器和继电器连接报警器;查询生成器用于向单片机输入待查询的数据,当待查询数据在闪存存储芯片中不存在时,报警器报警,上位机将变更的数据发送至单片机,单片机负责将数据变更反映到闪存存储芯片中;该方法分作6步,前3步提供设定及计算得到的基本参数,后3步分别进行不同的操作以实现3组不同的功能,该方法具体步骤如下:
1)各扇区的容量为Capacity,负载因子为LoadFactor,扇区数量为SectorCount,扇区从0开始编号;
2)向编号为i的已存储SizeStored(i)大小数据的扇区,存入长度为N的数据时,该扇区提供的剩余空间为
Figure FDA00002739882700011
也就是说,编号为i的扇区在已存储SizeStored(i)大小的数据后,仍有剩余空间继续存储大小为N的数据时,该扇区提供的剩余空间为扇区容量减去扇区中已存储的数据大小;其他情况下,该扇区提供的剩余空间为“负载因子限制下”的扇区容量即Capacity*LoadFactor减去扇区中已存储的数据大小;
另外,允许Rcs(i,N)的结果为负,当Rcs(i,N)的结果为负时表示该扇区需要额外空间存储数据;
3)擦写距离分为前向擦写距离DEWp和后向擦写距离DEWn两种,有效的擦写距离为非负整数,擦写距离的计算过程步骤如下:
a.向i号扇区写入长度为N的数据时,前向擦写距离DEWp的计算过程步骤如下:
i.初始化
DEWp=0;前向擦写距离的初始值为0
sectorNo=i;扇区编号
Rsumps=Rcs(i,N);编号小于和等于i的所有扇区的剩余空间之和;
ii.如果sectorNo>=0并且Rsumps<N,转至步骤iii;否则转至步骤iv;
iii.sectorNo=sectorNo-1
DEWp=DEWp+1
Rsumps=Rsumps+Rcs(sectorNo,N-Rsumps)
转至步骤ii;
iv.如果Rsumps<N,那么DEWp=-1;
b.向i号扇区写入长度为N的数据时,后向擦写距离DEWn的计算过程步骤如下:
i.初始化
DEWn=0;后向擦写距离的初始值为0
sectorNo=i;扇区编号
Rsumns=Rcs(i,N);编号大于和等于i的所有扇区的剩余空间之和;
ii.如果sectorNo<SectorCount并且Rsumns<N,转至步骤iii;否则转至步骤iv;
iii.sectorNo=sectorNo+1
DEWn=DEWn+1
转至步骤ii;
c.如果Rsumns<N,那么DEWn=-1;
4)查找操作
该操作首先执行未知长度二分查找算法,然后结合位图Bitmap,判定该数据是否有效,查找操作步骤如下:
a.未知长度二分查找,查找操作的执行过程主要分为以下两步:
i.使用步长倍增的方式,即第1次查找时,步长为1,即2(1-1);第2次查找时,步长为2,即2(2-1);第3次查找时,步长为4,即2(3-1),以此类推,该方式快速确定一个不小于待查询数据的数据地址,并使next变量指向该地址,而将cur变量指向next前的最后一个小于待查询数据的数据地址,cur初始值为0,next初始值为1;
ii.使用标准二分查找,在cur和next-1之间确定待查询数据是否存在;如果查找失败,则直接报错;否则,继续执行;
b.查看被成功查找到的数据的下标Iquery所对应的位图是否有效,即需要进一步验证数据的有效性;用以下方式定义下标i的位图查询函数:
Figure FDA00002739882700021
即位图的第(i/8)个字节的第(i%8)个Bit位为1时,该函数返回True,否则返回False;当该函数返回True时,表明该下标所对应的数据有效,否则返回False表明无效;
5)删除操作
设待删除的元素对应的下标为Idelete,将位图中第(Idelete/8)个字节的第(Idelete%8)个Bit位置0;
6)擦写操作
该操作首先决策擦写方向,再在决策方向上执行不同类型的擦写操作;
a.擦写方向决策过程
i.如果本扇区的剩余空间大于N,则将新数据直接写入本扇区;否则,分别计算(DEWp,Rsumps)和(DEWn,Rsumns);其中(DEWp,Rsumps)表示前向擦写距离(DEWp)内,获得的全部扇区的总剩余空间为Rsumps,(DEWn,Rsumns)表示后向擦写距离(DEWn)内,获得的全部扇区的总剩余空间为Rsumns
ii.如果Rsumps和Rsumns均大于等于N,此时比较(DEWp-1)和DEWn的大小:若前者较小,则将新数据写入本扇区和“编号小于本扇区编号”的扇区;否则,将新数据写入本扇区和“编号大于本扇区编号”的扇区;
iii.如果仅Rsumps大于等于N,则将新数据写入本扇区和“编号小于本扇区编号”的扇区;
iv.如果仅Rsumns大于等于N,则将新数据写入本扇区和“编号大于本扇区编号”的扇区;
v.如果Rsumps和Rsumns均小于N,则报错;
b.不同类型的擦写操作
i.非跨扇区擦写操作
本扇区足以存储长度为N的数据时,仅对本扇区执行擦写操作;
ii.前向跨1扇区写操作
前向擦写距离(DEWp)等于1时,需要对本扇区执行擦写操作,对本扇区之前的1个扇区执行"追加写(Append)"操作,即将本扇区前部长度为N'=Capacity*(1-LoadFactor)的数据追加到本扇区之前的1个扇区的尾部;
ⅲ.跨扇区擦写操作
当前向擦写距离(DEWp)大于1或后向擦写距离(DEWn)大于0时,需要执行跨扇区擦写操作;在某扇区被写满之后,该扇区应只保留负载因子LoadFactor规定的百分比的数据,其他数据应转存至其他扇区,接收转存数据的扇区,不再重新计算擦写半径,即应按照原有方向继续转存数据,而不改变数据的转存方向;接收转存数据的扇区被写满之后,也应减少其扇区的数据至负载因子LoadFactor规定的百分比。
CN201310015153.9A 2013-01-15 2013-01-15 一种基于未知长度二分查找的闪存数据检索存储的方法 Expired - Fee Related CN103020323B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310015153.9A CN103020323B (zh) 2013-01-15 2013-01-15 一种基于未知长度二分查找的闪存数据检索存储的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310015153.9A CN103020323B (zh) 2013-01-15 2013-01-15 一种基于未知长度二分查找的闪存数据检索存储的方法

Publications (2)

Publication Number Publication Date
CN103020323A true CN103020323A (zh) 2013-04-03
CN103020323B CN103020323B (zh) 2016-01-20

Family

ID=47968926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310015153.9A Expired - Fee Related CN103020323B (zh) 2013-01-15 2013-01-15 一种基于未知长度二分查找的闪存数据检索存储的方法

Country Status (1)

Country Link
CN (1) CN103020323B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198166A (zh) * 2013-04-16 2013-07-10 电子科技大学 一种井下大容量随钻声波测井数据实时存储装置
CN104715102A (zh) * 2014-12-30 2015-06-17 华立仪表集团股份有限公司 基于二分法的智能电能表负荷曲线的设计方法
CN105045537A (zh) * 2015-08-04 2015-11-11 国网浙江兰溪市供电公司 电表参数数据的擦写方法、在电表存储设备中搜索电力线参数的方法以及一种电表
CN115639971A (zh) * 2022-12-12 2023-01-24 北京集度科技有限公司 数据写入方法、装置、电子设备、存储介质及程序产品
CN115758206A (zh) * 2022-11-07 2023-03-07 武汉麓谷科技有限公司 一种快速查找ZNS固态硬盘中NorFlash上次写结束位置的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834325B1 (en) * 1999-07-16 2004-12-21 Storage Technology Corporation System and method for providing client-directed staging to improve non-sequential access performance in a caching disk storage system
CN1963810A (zh) * 2005-11-09 2007-05-16 康佳集团股份有限公司 在Flash存储介质上的关于文件分配表的缓存实现方法
CN101288056A (zh) * 2006-03-13 2008-10-15 松下电器产业株式会社 闪速存储器用的存储控制器
CN101499026A (zh) * 2008-02-01 2009-08-05 凯迈(洛阳)测控有限公司 基于flash rom的数据采集系统小型数据备份方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834325B1 (en) * 1999-07-16 2004-12-21 Storage Technology Corporation System and method for providing client-directed staging to improve non-sequential access performance in a caching disk storage system
CN1963810A (zh) * 2005-11-09 2007-05-16 康佳集团股份有限公司 在Flash存储介质上的关于文件分配表的缓存实现方法
CN101288056A (zh) * 2006-03-13 2008-10-15 松下电器产业株式会社 闪速存储器用的存储控制器
CN101499026A (zh) * 2008-02-01 2009-08-05 凯迈(洛阳)测控有限公司 基于flash rom的数据采集系统小型数据备份方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SUNHWA PARK等: "Atomic Write FTL for Robust Flash File System", 《CONSUMER ELECTRONICS, 2005. (ISCE 2005). PROCEEDINGS OF THE NINTH INTERNATIONAL SYMPOSIUM ON 》, 16 June 2005 (2005-06-16), pages 155 - 160, XP010832135, DOI: 10.1109/ISCE.2005.1502361 *
秦晓康: "嵌入式设备NAND Flash存储系统的设计与实现", 《计算机工程与设计》, vol. 31, no. 3, 31 December 2010 (2010-12-31), pages 514 - 517 *
郑文静等: "Flash存储技术", 《计算机研究与发展》, vol. 47, no. 4, 31 December 2010 (2010-12-31), pages 716 - 726 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198166A (zh) * 2013-04-16 2013-07-10 电子科技大学 一种井下大容量随钻声波测井数据实时存储装置
CN103198166B (zh) * 2013-04-16 2015-10-21 电子科技大学 一种井下大容量随钻声波测井数据实时存储装置
CN104715102A (zh) * 2014-12-30 2015-06-17 华立仪表集团股份有限公司 基于二分法的智能电能表负荷曲线的设计方法
CN104715102B (zh) * 2014-12-30 2018-05-08 华立科技股份有限公司 基于二分法的智能电能表负荷曲线的设计方法
CN105045537A (zh) * 2015-08-04 2015-11-11 国网浙江兰溪市供电公司 电表参数数据的擦写方法、在电表存储设备中搜索电力线参数的方法以及一种电表
CN115758206A (zh) * 2022-11-07 2023-03-07 武汉麓谷科技有限公司 一种快速查找ZNS固态硬盘中NorFlash上次写结束位置的方法
CN115639971A (zh) * 2022-12-12 2023-01-24 北京集度科技有限公司 数据写入方法、装置、电子设备、存储介质及程序产品

Also Published As

Publication number Publication date
CN103020323B (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
CN102364474B (zh) 用于机群文件系统的元数据存储系统和管理方法
CN100565477C (zh) 一种NAND Flash存储器的动态管理方法
CN103729303B (zh) 一种Flash的数据写入和读取方法
CN106569748B (zh) Flash文件系统的数据处理方法和装置
CN101980177B (zh) 一种操作Flash的方法和装置
CN103020323B (zh) 一种基于未知长度二分查找的闪存数据检索存储的方法
CN102467572B (zh) 支持重复数据删除程序的数据区块查询方法
CN110347336A (zh) 一种基于nvm与ssd混合存储结构的键值存储系统
CN104794070A (zh) 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
RU2319227C2 (ru) Способ запоминания с двойным протоколированием и носитель данных для него
CN103646063B (zh) 一种星载高速文件管理系统
CN105159915A (zh) 可动态适应的lsm树合并方法及系统
CN103140840B (zh) 数据管理的方法及装置
CN101799783A (zh) 一种数据存储处理方法、查找方法及其装置
CN103488709A (zh) 一种索引建立方法及系统、检索方法及系统
CN101727395A (zh) 闪存设备的管理系统、方法及闪存设备
CN102819494B (zh) 一种闪存顺序写入时的优化方法
CN104699424A (zh) 一种基于页面热度的异构内存管理方法
CN109407985B (zh) 一种数据管理的方法以及相关装置
CN104750432B (zh) 一种数据存储方法及装置
CN106066818A (zh) 一种提高重复数据删除备份系统恢复性能的数据布局方法
CN105205008B (zh) 降低混合映射算法中日志块映射表内存资源占用的方法
KR101438667B1 (ko) 비휘발성 램 기반의 b+ 트리 데이터베이스화 방법
CN100507873C (zh) 一种闪存中的flash文件的管理方法及系统
CN102004697B (zh) 一种Flash的回收方法和装置

Legal Events

Date Code Title Description
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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160120

Termination date: 20190115

CF01 Termination of patent right due to non-payment of annual fee