光??橹猩链媸莸男慈敕椒白爸玫闹圃旆椒?

文档序号:10654479阅读:672来源:国知局
光??橹猩链媸莸男慈敕椒白爸玫闹圃旆椒ā咀ɡ勘痉⒚鞴艘恢止饽?橹猩链媸莸男慈敕椒白爸?,属于光通信
技术领域
。所述光??橹械拇娲⑶虬ㄖ欢燎蚝涂尚辞?,所述方法包括:处理器上电时,从N个闪存数据页中确定当前用于记录可写区域数据的当前数据页,所述N个闪存数据页是为所述可写区域分配的,所述N为大于或等于2的整数,所述可写区域数据为用户写入的闪存数据;当接收到可写区域数据时,将所述可写区域数据写入至所述当前数据页。本发明可以保证闪存数据正确写入当前数据页中,解决了相关技术中闪存数据写入时可靠性较低的问题。本发明用于闪存数据的写入?!咀ɡ得鳌抗饽?橹猩链媸莸男慈敕椒白爸?br>技术领域
[0001]本发明设及光通信
技术领域
,特别设及一种光??橹猩链媸莸男慈敕椒白爸??!?br>背景技术
】[0002]闪存(英文=FlashMemory;简称:Flash)是一种基于半导体的存储器,具有系统掉电后仍可保留内部信息W及在线擦写的特点,其读写速度比电可擦可编程只读存储器(英文:ElectricallyErasableProgrammableReadOnlyMemory;简称:EEPR0M)更快,且成本更低。[0003]在光通信领域,相关协议中规定了用户可W读取和写入数据的用户可写区域,该用户可写区域的大小一般为120字节,对于用户写入至该用户可写区域的闪存数据,光??橹械拇砥骺蒞在Flash中分配指定的存储区域对该用户可写区域数据进行存储。[0004]但是,Flash的可擦写次数是有限制的,当Flash的擦写次数超过限制后,则不能保证闪存数据的正确写入。相关技术中的处理器在Flash中为用户可写区域分配存储区域时仅考虑了该用户可写区域的大小,当用户可写区域所要求的擦写次数较高,超过Flash的可擦写次数的限制时,则无法保证用户可写区域数据能够正确写入,闪存数据写入至Flash时的可靠性较低?!?br/>发明内容】[0005]为了解决相关技术中闪存数据写入至Flash数据页时可靠性较低的问题,本发明提供了一种光??橹猩链媸莸男慈敕椒白爸?。所述技术方案如下:[0006]-方面,提供了一种光??橹猩链媸莸男慈敕椒?,所述光??橹械拇娲⑶虬ㄖ欢燎蚝涂尚辞?,所述方法包括:[0007]处理器上电时,从N个闪存数据页中确定当前用于记录可写区域数据的当前数据页,所述N个闪存数据页是为所述可写区域分配的,所述N为大于或等于2的整数,所述可写区域数据为用户写入的闪存数据;[000引当接收到可写区域数据时,将所述可写区域数据写入至所述当前数据页。[0009]第二方面,提供一种光??橹猩链媸莸男慈胱爸?,所述光??橹械拇娲⑶虬ㄖ欢燎蚝涂尚辞?,所述装置包括:[0010]确定单元,用于在处理器上电时,从N个闪存数据页中确定当前用于记录可写区域数据的当前数据页,所述N个闪存数据页是为所述可写区域分配的,所述N为大于或等于2的整数,所述可写区域数据为用户写入的闪存数据;[0011]写入单元,用于当接收到可写区域数据时,将所述可写区域数据写入至所述当前数据页。[0012]本发明提供的技术方案带来的有益效果是:[0013]本发明提供了一种光??橹猩链媸莸男慈敕椒白爸?,该光??橹械拇娲⑶虬ㄖ欢燎蚝涂尚辞?,处理器将Flash中为可写区域分配的存储区域划分为了N个闪存数据页,其中每个闪存数据页具有一定的可擦写次数阔值,由于可写区域数据的存储是按页操作的,即可写区域数据的擦写操作只会增加当前数据页的已擦写次数,而不会影响其他闪存数据页的已擦写次数,因此为该可写区域分配的N个闪存数据页的总可擦写次数较高,能够满足可写区域所要求的擦写次数,因此提高了可写区域数据写入至该当前数据页的可靠性?!靖酵妓得鳌縖0014]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可W根据运些附图获得其他的附图。[0015]图1是本发明实施例提供的一种光??橹猩链媸菪慈敕椒ǖ牧鞒掏?;[0016]图2-1是本发明实施例提供的另一种光??橹猩链媸菪慈敕椒ǖ牧鞒掏?;[0017]图2-2是本发明实施例提供的一种光??橹猩链媸菀持写娲⑶虻姆峙涫疽馔?;[0018]图2-3是本发明实施例提供的一种处理器确定当前数据页的方法流程图;[0019]图2-4是本发明实施例提供的一种处理器将闪存数据页写入当前数据页的方法流程图;[0020]图3-1是本发明实施例提供的一种光??橹猩链媸莸男慈胱爸玫慕峁故疽馔?;[0021]图3-2是本发明实施例提供的另一种光??橹猩链媸莸男慈胱爸玫慕峁故疽馔?;[0022]图3-3是本发明实施例提供的一种确定单元的结构示意图;[0023]图3-4是本发明实施例提供的一种写入单元的结构示意图?!揪咛迨凳┓绞健縖0024]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。[0025]图1是本发明实施例提供的一种光??橹猩链媸菪慈敕椒ǖ牧鞒掏?,该光??橹械拇娲⑶蚩蒞包括只读区域和可写区域,参见图1,该方法流程可W包括:[0026]步骤101、处理器上电时,从N个闪存数据页中确定当前用于记录可写区域数据的当前数据页,所述N个闪存数据页是为所述可写区域分配的,所述N为大于或等于2的整数,所述可写区域数据为用户写入的闪存数据。[0027]步骤102、当接收到可写区域数据时,将所述可写区域数据写入至所述当前数据页。[0028]综上所述,本发明提供了一种光??橹猩链媸莸男慈敕椒?,处理器将Flash中为可写区域分配的存储区域划分为了N个闪存数据页,其中每个闪存数据页具有一定的可擦写次数阔值,由于可写区域数据的存储是按页操作的,即可写区域数据的擦写操作只会增加当前数据页的已擦写次数,而不会影响其他闪存数据页的已擦写次数,因此为该可写区域分配的N个闪存数据页的总可擦写次数较高,能够满足可写区域所要求的擦写次数,因此提高了可写区域数据写入至该当前数据页的可靠性。[0029]图2-1是本发明实施例提供的另一种闪存数据写入方法的流程图,该光??橹械拇娲⑶蚩蒞包括只读区域和可写区域,参见图2-1,该方法可W包括:[0030]步骤201、处理器上电时,依次检测N个闪存数据页中每个闪存数据页的状态标识。[0031]其中,N个闪存数据页是为光??橹械目尚辞蚍峙涞?,该N为大于或等于2的整数,且该N可W为根据每个闪存数据页的可擦写次数阔值W及该可写区域数据所要求的擦写次数确定的。每个闪存数据页可W包括数据存储区域、状态存储区域,该状态存储区域用于记录该闪存数据页的状态标识,该状态标识可W包括有效状态或无效状态。[0032]在本发明实施例中,每个闪存数据页都预设有可擦写次数阔值,当该闪存数据页的擦写次数超过该可擦写次数阔值后,则不能保证闪存数据的正确写入。因此,处理器在为可写区域分配闪存数据页时,可W综合考虑每个闪存数据页的可擦写次数阔值W及该可写区域所要求的擦写次数,使得为该可写区域所分配的N个闪存数据页的可擦写次数阔值之和可W大于或等于该可写区域所要求的擦写次数,W保证处理器所分配的该N个闪存数据页能够满足可写区域数据的可擦写次数的要求,使得可写区域数据可W正确写入至闪存数据页中。[0033]示例的,光通信领域中的SFF-8472协议和INF-8077i协议中规定了用户可W读取和写入数据的用户可写区域,该用户可写区域的大小一般为120字节,该用户可写区域数据所要求的擦写次数为五万次,光??橹械奈⒋砥髦?,每页闪存数据页的可擦写次数阔值为一万次,则处理器可W为该用户可写区域的闪存数据分配5页闪存数据页,该5页闪存数据页的总可擦写次数为五万次,等于该用户可写区域数据所要求的擦写次数,因此可W保证用户可写区域数据的正确写入。[0034]SFF-8472协议所规定的用户可写区域(英文:UserWritableEEPR0M)在A化的PageOOh/0化的第[128-247]字节,共120字节;INF-8077i协议所规定的用户可写区域在AOh化bleO化的第[128-255]字节,共128字节。则对于INF-8077i协议所规定的128字节的用户可写区域,光??橹械奈⒋砥骺蒞从每个闪存数据页中划分128字节的区域用于存储该用户可写区域数据。[0035]图2-2是本发明实施例提供的一种闪存数据页中存储区域的分配示意图,假设该闪存数据页的存储容量为256字节,参考图2-2,该闪存数据页的第0-127字节可W被划分为用于存储用户可写区域数据的区域;第128-131字节可W被划分为用于存储该闪存数据页已擦写次数的擦写次数存储区域;第132-133字节可W被划分为用于存储该闪存数据页状态标识的状态存储区域,其中有效状态可W用字段OOh来表示,无效状态可W用字段OF印表示;该闪存数据页剩余的第134-255字节可W为未被分配的保留区域。需要说明的是,对于不同存储容量的闪存数据页,其保留区域的大小也不同,例如,对于512字节的闪存数据页,该闪存数据页中的保留区域可W为第134-511字节;对于1024字节的闪存数据页,该闪存数据页中的保留区域可W为第134-1023字节。本发明实施例对此不做限定。[0036]处理器每次上电时,为了从该N个闪存数据页中确定当前用于存储可写区域数据的当前数据页,该处理器可W依次对该N个闪存数据页的状态标识进行检测。示例的,处理器每次上电时,可W依次对该5个闪存数据页中第132-133字节所存储的状态标识进行检测。[0037]需要说明的是,处理器为该可写区域所分配的闪存数据页必须是独立的闪存数据页,每个闪存数据页只能用于存储可写区域数据,且每个闪存数据页的各个存储区域只能按照处理器的分配方式进行使用,例如,对于支持INF-8077i协议的光??橹械奈⒋砥?,其闪存数据页只能按照图2-2所示的分配方式进行数据存储。[0038]还需要说明的是,在实际应用中,处理器中每个闪存数据页的可擦写次数阔值可W相同,也可W不同,本发明实施例对此不做限定。[0039]步骤202、当检测到第n个闪存数据页的状态标识为有效状态,且第n+1个闪存数据页的状态标识为无效状态时,将该第n个闪存数据页确定为当前数据页;或者,当检测到第N个闪存数据页的状态标识为有效状态时,将该第N个闪存数据页确定为当前数据页。[0040]在本发明实施例中,该处理器中还可W存储有每个闪存数据页所对应的索引值,该索引值的取值范围为0到N-I,具体的,该处理器中可W预先建立一个索引表,该索引表中可W记录有索引值与闪存数据页的首地址的对应关系,W便于处理器对该N个闪存数据页进行检索,从而快速筛选出当前可用的当前数据页。示例的,假设处理器为用户可写区域数据分配的闪存数据页的个数N等于5,则处理器中存储的索引表可W如表1所示,从表1可W看出,索引值0对应Flash0页的首地址,处理器根据Flash0页的首地址,即可确定该第0页闪存数据页。[0041]表1r0049112对于该N个闪存数据页,处理器可W从索引值为0的闪存数据页开始进行检测,为了避免处理器初次上电时,无法检测可用的当前数据页,可W设置索引值为0的闪存数据页的初始状态标识为有效状态,其他闪存数据页中的初始状态标识为无效状态。当处理器掉电后并再次上电时,该N个闪存数据页中可W保留上一次上电时所写入的数据,该数据除了包括可写区域数据,还包括状态标识。当处理器检测到第n个闪存数据页(即索引值为n-1的闪存数据页)的状态标识为有效状态,且第n+1(即索引值为n的闪存数据页)个闪存数据页的状态标识为无效状态时,处理器可W将该第n个闪存数据页确定为当前数据页,并停止上述步骤201所示的检测过程;或者,当处理器完成对前N-I个闪存数据页的状态标识的检测,确定该前N-I闪存数据页均不可用,并检测到第N个闪存数据页的状态标识为有效状态时,处理器可W将该第N个闪存数据页确定为当前数据页。2示例的,假设处理器对表1所示的5个闪存数据页的状态标识进行依次检测后,检测出索引值为0闪存数据页的状态标识为有效状态,索引值为1的闪存数据页的状态标识为有效状态,索引值为2的闪存数据页的状态标识为无效状态,则该处理器可W将索引值为1的闪存数据页确定为当前数据页,并停止对剩余的闪存数据页状态标识的检测;或者,若处理器对5个闪存数据页的状态标识进行依次检测后,检测出索引值为O至4所对应的闪存数据页的状态标识均为有效状态,或者检测出索引值为O至3所对应的闪存数据页的状态标识均为无效状态,索引值为4的闪存数据页的状态标识为有效状态,则该处理器可W确定索引值为O至3所对应的闪存数据页均不能保证可写区域数据的正确写入,因此可W将索引值为4的闪存数据页(即第5个闪存数据页)确定为当前数据页。[0045]步骤203、判断该当前数据页所对应的索引值X是否大于0。[0046]当该当前数据页所对应的索引值X大于0时,执行步骤204;当该当前数据页所对应的索引值X不大于0时,执行步骤205。[0047]步骤204、将索引值为0到X-I所对应的闪存数据页中,状态标识为有效状态的闪存数据页的状态标识更改为无效状态。执行步骤205。[0048]当处理器判断出该当前数据页所对应的索引值X大于加寸,处理器可W将索引值为0到X-I所对应的闪存数据页中,状态标识为有效状态的闪存数据页的状态标识更改为无效状态,W便处理器在下次上电时,可W通过每个闪存数据页的状态标识,快速筛选出可用的当前数据页。[0049]示例的,假设当前数据页的索引值为1,由于该索引值大于0,则处理器可W将索引值为0的闪存数据页=Flash0页的状态标识更改为无效状态。因此,当处理器再次上电时,可W判断出该Flash0页的状态标识为无效状态,并直接确定该Flash0页不可用,此时处理器可W继续判断Flash1页是否可用。[0050]需要说明的是,在实际应用中,处理器在执行步骤204时,可W将状态标识为有效状态的闪存数据页中所记录的数据全部擦除,由于对闪存数据页进行擦除后,闪存数据页中所存储的数据均为OF化,即用于存储状态标识的状态存储区域中所记录的数据也为OFFh,由于字段OFFh可W用于标识无效状态,因此通过该擦除数据的方法即可实现对闪存数据页的状态标识的更改。[0051]在本发明实施例中,每个闪存数据页还可W包括擦写次数存储区域,该擦写次数存储区域用于记录该闪存数据页的已擦写次数,处理器除了可W通过上述步骤202所示的方法确定当前数据页之外,还可W根据每个闪存数据页的状态标识W及已擦写次数来确定当前数据页。图2-3是本发明实施例提供的另一种处理器确定当前数据页的方法流程图,如图2-3所示,该方法可W包括:[0052]步骤2021、判断索引值为n的闪存数据页的状态标识是否为有效标识。[0053]当索引值为n的闪存数据页的状态标识为无效状态时,执行步骤2022;当索引值为n的闪存数据页的状态标识为有效标识时,执行步骤2023。[0054]在本发明实施例中,对于该N个闪存数据页,处理器可W从索引值为0的闪存数据页开始进行检测,为了避免处理器初次上电时,无法检测到满足数据写入条件的闪存数据页,可W设置索引值为0的闪存数据页的初始状态标识为有效状态,初始的已擦写次数为1;其他闪存数据页中的初始状态标识为无效状态,初始的已擦写次数为0。当处理器掉电后并再次上电时,该N个闪存数据页中可W保留上一次上电时所写入的数据,该数据除了包括闪存数据,还包括状态标识和已擦写次数。[0055]示例的,对于光??橹械挠没Э尚辞?,处理器为该用户可写区域数据分配了5页闪存数据页,每个闪存数据页的可擦写次数阔值均为一万次。假设处理器为初次上电,则处理器对索引值为O的闪存数据页:FlashO页的状态标识进行判断时,可W判断出该FlashO页的初始状态标识为有效状态,则处理器可W执行步骤2023。若处理器再次上电时,检测到该Flash0页的初始状态标识为无效状态,则处理器可W执行步骤2022。[0056]步骤2022、判断索引值n是否小于N-1。[0057]当索引值为n的闪存数据页的状态标识为无效状态时,处理器可W继续判断该索弓値n是否小于N-I,当索引值n小于N-I时,令n=n+l,并再次执行步骤2021,即继续对下一个闪存数据页的状态标识进行检测和判断;当索引值n不小于N-I时,执行步骤2027。[0058]示例的,当处理器检测到索引值为0的闪存数据页=Flash0页的初始状态标识为无效状态时,可W继续判断该索引值0是否小于最大索引值4(假设N=5),由于该索引值0小于4,则处理器可W令n=0+l,并继续执行步骤2021,即继续判断索引值为1的闪存数据页的状态标识是否为有效标识。[0059]步骤2023、判断索引值为n的闪存数据页的已擦写次数是否小于可擦写次数阔值。[0060]当索引值为n的闪存数据页的状态标识为有效标识时,处理器可W获取该闪存数据页的可擦写次数阔值,并判断该索引值为n的闪存数据页的已擦写次数是否小于可擦写次数阔值,当索引值为n的闪存数据页的已擦写次数小于可擦写次数阔值时,执行步骤2027;当索引值为n的闪存数据页的已擦写次数不小于可擦写次数阔值时,执行步骤2024。[0061]示例的,假设索引值为0的闪存数据页=Flash0页的可擦写次数阔值为一万次,若处理器获取到的该Flash0页中记录的已擦写次数为:1次,则由于该索引值为0的闪存数据页的已擦写次数小于可擦写次数阔值,处理器可W执行步骤2027;若处理器获取到的该Flash0页中记录的已擦写次数为:一万次,则由于该索引值为0的闪存数据页的已擦写次数不小于该可擦写次数阔值,处理器可W执行步骤2024。[0062]步骤2024、判断索引值n是否小于N-1。[0063]当索引值为n的闪存数据页的状态标识为有效状态,且该索引值为n的闪存数据页的已擦写次数不小于可擦写次数阔值时,处理器可W继续判断该n是否小于最大索引值N-1。当索引值n小于N-I时,令n=n+l,并执行步骤2025;当索引值n不小于N-I时,执行步骤2026。[0064]示例的,当处理器检测出索引值为4的闪存数据页的状态标识为有效状态,且该索引值为4的闪存数据页的已擦写次数为一万次,不小于可擦写次数阔值时,处理器可W进一步判断出该索引值4不小于最大索引值,因此处理器可W执行步骤2026;若处理器检测到索引值为1的闪存数据页的状态标识为有效状态,且该索引值为1的闪存数据页的已擦写次数为一万次,不小于可擦写次数阔值时,处理器可W进一步判断出该索引值1小于最大索引值4,因此处理器可W令n=n+l,也即是,对下一页闪存数据页执行步骤2025。[0065]步骤2025、判断索引值为n的闪存数据页的状态标识是否为有效标识。[0066]当索引值为n的闪存数据页的状态标识为有效标识时,执行步骤2023;当索引值为n的闪存数据页的状态标识为无效状态时,令n=n-l,并执行步骤2026。[0067]当上一个闪存数据页所对应的索引值小于N-I时,处理器可W继续判断下一个闪存数据页的状态标识是否为有效标识,例如,在步骤2024中,当处理器判断出Flash1页所对应的索引值1小于4时,可W继续判断索引值为2的闪存数据页Flash2页的状态标识是否为有效标识,当该Flash2页的状态标识为有效标识时,处理器可W执行步骤2023,即继续判断该Flash2页的已擦写次数是否小于可擦写次数阔值;若该Flash2页的状态标识为无效状态,处理器可W令索引值n=n-l,也即是,对索引值为1的闪存数据页执行步骤2026。[0068]步骤2026、将索引值为0到n-1所对应的闪存数据页中,状态标识为有效状态的闪存数据页的状态标识更改为无效状态。执行步骤2027。[0069]当处理器在步骤2024中判断出索引值n不小于N-I,或者在步骤2025中判断出索引值为n的闪存数据页的状态标识为无效状态,并令索引值n=n-l后,处理器可W将索引值为0到n-1所对应的闪存数据页中,状态标识为有效状态的闪存数据页的状态标识更改为无效状态,W便处理器在下次上电时,可W通过每个闪存数据页的状态标识,快速筛选出满足数据写入条件的当前数据页,由于该判断过程中无需再对每个闪存数据页的已擦写次数进行判断,因此有效提高了确定当前数据页时的效率。[0070]示例的,假设在步骤2024中,当处理器判断出索引值4不小于N-I(N=S)时,可W将索引值为0到3(此时n=4)所对应的闪存数据页中,状态标识为有效状态的闪存数据页的状态标识更改为无效状态?;蛘咴诓街?025中,处理器判断出索引值为1的闪存数据页的状态标识为无效状态,并令索引值n=1-1=0后,处理器可W判断该索引值为0的闪存数据页Flash0页的状态标识是否为有效标识,若为有效状态,则将该Flash0页的状态标识更改为无效状态。因此,当处理器再次上电时,可W直接判断出该Flash0页的状态标识为无效状态,此时无需再对该Flash0页的已擦写次数进行检测和判断,就可W进行对Flash1页的状态标识的检测。[0071]还需要说明的是,如果在步骤2025中,处理器判断索引值为1的闪存数据页的状态标识为无效状态,则处理器令n=n-l后,索引值n为0,此时处理器无需执行步骤2026,即可直接执行步骤2027。[0072]步骤2027、将索引值为n的闪存数据页确定为当前数据页。[0073]当处理器在步骤2023中判断出索引值为n的闪存数据页的已擦写次数小于可擦写次数阔值时,或者在步骤2022或步骤2024中判断出索引值n不小于N-I(且在步骤2024之后执行完成步骤2026),或者在步骤2025中判断出索引值为n的闪存数据页的状态标识为无效状态且执行完成步骤2026后,处理器可W将当前索引值n所对应的闪存数据页确定为当前数据页。[0074]需要说明的是,当处理器在上述步骤2021至步骤2025中判断出索引值为n的闪存数据页的状态标识为有效状态,该闪存数据页中记录的已擦写次数不小于该闪存数据页的可擦写次数阔值,且索引值为n+1的闪存数据页中记录的状态标识为无效状态时,处理器可W确定该索引值为n的闪存数据页为处理器上一次断电前正在使用的当前数据页,该索引值为n的闪存数据页中存储有处理器上一次断电前所保存的闪存数据。如果此时将索引值为n+1的闪存数据页确定为当前数据页,则会导致处理器上一次断电前所保存的闪存数据的丢失,为了避免该闪存数据的丢失,需要将索引值为n的闪存数据页继续确定为当前数据页,当处理器向该当前数据页写入新的闪存数据时,会将当前数据页中保存的数据先读取到RAM(RandomAccessMemory,随机存取存储器)缓冲区,然后再将新的闪存数据更新至该RAM缓冲区,最后将更新完成后的数据再次写入至该当前数据页,因此可W避免处理器上一次断电前所保存的闪存数据的丢失。[0075]示例的,若处理器判断出索引值为0的闪存数据页的状态标识为有效状态,并在步骤2023中判断出该FlashO页的已擦写次数小于可擦写次数阔值,则可W将该FlashO页确定为当前数据页;或者,若处理器判断出索引值为0的闪存数据页的状态标识为有效状态,该Flash0页的已擦写次数不小于可擦写次数阔值,且处理器在步骤2025中判断出索引值为1的闪存数据页的状态标识为无效状态时,处理器也可W将该Flash0页确定为当前数据页;又或者,若处理器依次对各个索引值所对应的闪存数据页进行检索后,判断出前N-I个闪存数据页均不满足数据写入条件时,可W直接将最后一个闪存数据页,也即是,将索引值为N-I的闪存数据页,确定为该当前数据页。[0076]需要说明的是,上述确定当前数据页的方法的步骤的先后顺序可W进行适当调整,步骤也可W根据情况进行相应增减,例如,上述步骤2026可W根据情况进行删除,也可W在步骤2027之后执行。当该步骤2026在步骤2027之后执行时,处理器可W先判断该当前数据页所对应的索引值n是否大于0,当该当前数据页所对应的索引值n大于0时,再执行该步骤2026。[0077]步骤205、当接收到可写区域数据时,将该可写区域数据写入至该当前数据页的数据存储区域。执行步骤206。[0078]处理器确定当前用于存储可写区域数据的当前数据页后,当接收到可写区域数据时,可W直接将该可写区域数据写入至该当前数据页的数据存储区域。图2-4是本发明实施例提供的一种处理器将闪存数据页写入当前数据页的方法流程图,如图2-4所示,该方法包括:[0079]步骤2051、判断当前数据页的已擦写次数是否小于该当前数据页的可擦写次数阔值。[0080]当该当前数据页的已擦写次数小于该当前数据页的可擦写次数阔值时,执行步骤2052;当该当前数据页的已擦写次数不小于该当前数据页的可擦写次数阔值时,执行步骤2054。[0081]示例的,假设当前数据页为索引值为0的闪存数据页=Flash0页,若该Flash0页中所记录的已擦写次数为1次,由于小于可擦写次数阔值一万次,则处理器可W执行步骤2052;若该Flash0页中所记录的已擦写次数为一万次,由于该已擦写次数不小于可擦写次数阔值一万次,则处理器可W执行步骤2054。[0082]步骤2052、将该可写区域数据写入至该当前数据页的数据存储区域。执行步骤2053。[0083]当当前数据页中记录的已擦写次数小于该当前数据页的可擦写次数阔值时,处理器可W确定该闪存数据能够正确写入至该当前数据页,因此可W将接收到的可写区域数据写入至该当前数据页的数据存储区域。闪存数据的具体写入过程可W包括:将该当前数据页内的所有内容读取到RAM缓冲区,然后将接收到的可写区域数据更新至RAM缓冲区中,最后将该当前数据页中记录的所有数据擦除,再将RAM缓冲区中的数据写入至该当前数据页内,就完成了可写区域数据的写入。[0084]步骤2053、将该当前数据页的擦写次数存储区域中记录的已擦写次数增加1。[0085]当前数据页写完成一次可写区域数据的写入操作后,该当前数据页中记录的已擦写次数也需要相应的增加1。例如,当将接收到的用户可写区域数据写入到Flash0页后,该Flash0页中所记录的已擦写次数将由1次更新为2次。[0086]需要说明的,在实际应用中,更改已擦写次数的步骤可W在步骤2052执行的过程中完成。具体的,当将处理器将接收到的可写区域数据更新至RAM缓冲区中后,处理器可W将RAM缓冲区中记录的已擦写次数增加1,并将状态标识更新为有效状态,例如将状态标识更新为0x00,然后再将该RAM缓冲区中的所有数据写入至该当前数据页内,就完成了对当前数据页的已擦写次数的更新。[0087]步骤2054、判断该当前数据页所对应的索引值X是否小于N-1。[0088]当该当前数据页的已擦写次数不小于该当前数据页的可擦写次数阔值时,处理器可W进一步判断该当前数据页所对应的索引值X是否小于N-1。当该索引值X小于N-I时,执行步骤2055;当该索引值X不小于N-I时,执行步骤2052。也即是,当当前数据页所对应的索引值为N-I时,处理器可W确定,为可写区域数据所分配的N个闪存数据页已均不满足数据写入条件,即使该当前数据页的已擦写次数已经达到可擦写次数阔值,处理器依旧会将接收到的可写区域数据写入至该当前数据页。[0089]示例的,当处理器在步骤2051中判断出该Flash0页中所记录的已擦写次数为一万次,不小于可擦写次数阔值时,则处理器可W进一步判断该当前数据页所对应的索引值0是否小于最大索引值4,由于该索引值0小于4,处理器可W执行步骤2055;若当前的当前数据页所对应的索引值为4,不小于N-I,则处理器可W将接收到的可写区域数据继续写入至该Flash4页中。[0090]步骤2055、将索引值为X+1的闪存数据页确定为新的可用数据页。执行步骤2056。[0091]当该当前数据页所对应的索引值X小于N-I时,处理器可W将索引值为X+1的闪存数据页确定为新的可用数据页。示例的,当该当前数据页Flash0页中所记录的已擦写次数为一万次,不小于可擦写次数阔值时,处理器可W将索引值为1的闪存数据页Flash1页确定为新的可用数据页。[0092]步骤2056、将接收到的可写区域数据写入至该新的可用数据页的数据存储区域。执行步骤2057。[0093]处理器确定新的可用数据页后,即可将接收到的可写区域数据写入至该新的可用数据页。例如,当Flash0页中的可擦写次数达到一万次之后,可W将接收到的可写区域数据写入至Flash1页中。因此,可W避免当闪存数据页的已擦写次数达到可擦写次数阔值后,继续将闪存数据写入至该闪存数据页而导致的数据写入失败的现象,保证了闪存数据页存储闪存数据时的可靠性。[0094]步骤2057、将该新的可用数据页的状态存储区域中记录的状态标识更改为有效状态,将该新的可用数据页的擦写次数存储区域中记录的已擦写次数增加1。[0095]在本发明实施例中,处理器为可写区域分配多个闪存数据页后,该多个闪存数据页在初始状态下,只有索引值为0的闪存数据页中所记录的状态标识为有效状态,已擦写次数为1;其他闪存数据页中所记录的状态标识均为无效状态,已擦写次数均为0。当某个闪存数据页被确定为当前数据页后,在向该当前数据页中写入可写区域数据时,需要将该当前数据页的状态标识更改为有效状态,W便处理器再次上电时,可W再次将该闪存数据页确定为当前数据页,进而可W继续向该当前数据页写入可写区域数据。[0096]需要说明的是,上述步骤2056和步骤2057中所指示的方法的具体实现过程可W参考上述步骤2052和步骤2053中的描述,本发明实施例对此不再重复寶述。[0097]通过上述步骤201至步骤205,完成了对当前数据页的确定W及闪存数据的存储,由于该当前数据页是从该N个闪存数据页中筛选出的满足数据写入条件的闪存数据页,因此可W保证闪存数据的正确写入。[0098]步骤206、当接收到读取可写区域数据的指令时,将该当前数据页确定为待读取数据页。[0099]当接收到读取可写区域数据的指令时,处理器从用于记录可写区域数据的N个闪存数据页中获取当前数据页,将该当前数据页确定为待读取数据页。[0100]步骤207、读取该待读取数据页中记录的闪存数据。[0101]示例的,若当前用于记录用户可写区域数据的当前数据页为Flash0页,则处理器可W将该Flash0页确定为待读取数据页,并直接读取该Flash0中记录的闪存数据。[0102]综上所述,本发明实施例提供了一种光??橹猩链媸莸男慈敕椒?,处理器将Flash中为可写区域分配的存储区域划分为了N个闪存数据页,其中每个闪存数据页具有一定的可擦写次数阔值,由于可写区域数据的存储是按页操作的,即可写区域数据的擦写操作只会增加当前数据页的已擦写次数,而不会影响其他闪存数据页的已擦写次数,因此为该可写区域分配的N个闪存数据页的总可擦写次数较高,能够满足可写区域所要求的擦写次数。并且在可写区域数据写入的过程中,当该当前数据页的已擦写次数超过可擦写次数阔值后,处理器可W将该当前数据页下一页的闪存数据页作为新的可用数据页,从而有效避免了因当前数据页的已擦写次数超过可擦写次数阔值而导致的可写区域数据写入失败的现象,提高了闪存数据写入的可靠性。[0103]需要说明的是,本发明实施例提供的光??橹猩链媸莸男慈敕椒ǖ牟街璧南群笏承蚩蒞进行适当调整,步骤也可W根据情况进行相应增减。任何熟悉本
技术领域
的技术人员在本发明掲露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的?;し段е?,因此不再寶述。[0104]图3-1是本发明实施例提供的一种光??橹猩链媸莸男慈胱爸玫慕峁故疽馔?,该光??橹械拇娲⑶蚩蒞包括只读区域和可写区域,参考图3-1,该装置可W包括:[0105]确定单元301,用于在处理器上电时,从N个闪存数据页中确定当前用于记录可写区域数据的当前数据页,该N个闪存数据页是为该可写区域分配的,该N为大于或等于2的整数,该可写区域数据为用户写入的闪存数据。[0106]写入单元302,用于当接收到可写区域数据时,将该可写区域数据写入至该当前数据页。[0107]综上所述,本发明实施例提供了一种光??橹猩链媸莸男慈胱爸?,处理器将Flash中为可写区域分配的存储区域划分为了N个闪存数据页,其中每个闪存数据页具有一定的可擦写次数阔值,由于可写区域数据的存储是按页操作的,即可写区域数据的擦写操作只会增加当前数据页的已擦写次数,而不会影响其他闪存数据页的已擦写次数,因此为该可写区域分配的N个闪存数据页的总可擦写次数较高,能够满足可写区域所要求的擦写次数,因此提高了可写区域数据写入至该当前数据页的可靠性。[0108]图3-2是本发明实施例提供的另一种光??橹猩链媸莸男慈胱爸玫慕峁故疽馔?,参考图3-2,该装置可W包括:[0109]确定单元301,用于在处理器上电时,从N个闪存数据页中确定当前用于记录可写区域数据的当前数据页,该N个闪存数据页是为该可写区域分配的,该N为大于或等于2的整数,该可写区域数据为用户写入的闪存数据。[0110]写入单元302,用于当接收到可写区域数据时,将该可写区域数据写入至该当前数据页。[0111]可选的,每个该闪存数据页对应一个索引值,该N个闪存数据页的索引值按照升序排序且该索引值的取值范围为0到N-I,该装置还可W包括:[0112]判断单元303,用于判断该当前数据页所对应的索引值X是否大于0。[0113]更改单元304,用于当该当前数据页所对应的索引值X大于0时,将索引值0至索引值X-I所对应的闪存数据页中,状态标识为有效状态的闪存数据页的状态标识更改为无效状态。[0114]可选的,每个该闪存数据页包括数据存储区域和状态存储区域,该状态存储区域用于记录该闪存数据页的状态标识,该状态标识包括有效状态或无效状态;图3-3是本发明实施例提供的一种确定单元的结构示意图,如图3-3所示,该确定单元301可W包括:[0115]检测子单元3011,用于依次检测该N个闪存数据页中每个闪存数据页的状态标识。[0116]确定子单元3012,用于当检测到第n个闪存数据页的状态标识为有效状态,且第n+1个闪存数据页的状态标识为无效状态时,将该第n个闪存数据页确定为当前数据页,该n为小于N的整数;或者,当检测到第N个闪存数据页的状态标识为有效状态时,将该第N个闪存数据页确定为当前数据页。[0117]可选的,每个该闪存数据页还包括擦写次数存储区域,该擦写存储区域用于记录该闪存数据页的已擦写次数;图3-4是本发明实施例提供的一种确定单元的结构示意图,如图3-4所示,该写入单元302可W包括:[0118]第一判断子单元3021,用于当接收到可写区域数据时,判断该当前数据页的已擦写次数是否小于该当前数据页的可擦写次数阔值。[0119]第一写入子单元3022,用于当该当前数据页的已擦写次数小于该当前数据页的可擦写次数阔值时,将该可写区域数据写入至该当前数据页的数据存储区域。[0120]第一记录子单元3023,用于将该当前数据页的索引存储区域中记录的已擦写次数增加1。[0121]第二判断子单元3024,用于当该当前数据页的已擦写次数不小于该当前数据页的可擦写次数阔值时,判断该当前数据页所对应的索引值X是否小于N-1。[0122]确定子单元3025,用于当该索引值X小于N-I时,将索引值为X+1的闪存数据页确定为新的可用数据页。[0123]第二写入子单元3026,用于将该可写区域数据写入至该新的可用数据页的数据存储区域。[0124]第二记录子单元3027,用于将该新的可用数据页的状态存储区域中记录的状态标识更改为有效状态,将该新的可用数据页的擦写次数存储区域中记录的已擦写次数增加1。[0125]综上所述,本发明提供了一种光??橹猩链媸莸男慈胱爸?,处理器将Flash中为可写区域分配的存储区域划分为了N个闪存数据页,其中每个闪存数据页具有一定的可擦写次数阔值,由于可写区域数据的存储是按页操作的,即可写区域数据的擦写操作只会增加当前数据页的已擦写次数,而不会影响其他闪存数据页的已擦写次数,因此为该可写区域分配的N个闪存数据页的总可擦写次数较高,能够满足可写区域所要求的擦写次数,并且在可写区域数据写入的过程中,当该当前数据页的已擦写次数超过可擦写次数阔值后,处理器可W将该当前数据页下一页的闪存数据页作为新的可用数据页,从而有效避免了因当前数据页的已擦写次数超过可擦写次数阔值而导致的可写区域数据写入失败的现象,提高了闪存数据写入的可靠性。[0126]所属领域的技术人员可W清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可W参考前述方法实施例中的对应过程,在此不再寶述。[0127]W上所述仅为本发明的较佳实施例,并不用W限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的?;し段е??!局魅ㄏ睢?.一种光??橹猩链媸莸男慈敕椒?,其特征在于,所述光??橹械拇娲⑶虬ㄖ欢燎蚝涂尚辞?,所述方法包括:处理器上电时,从N个闪存数据页中确定当前用于记录可写区域数据的当前数据页,所述N个闪存数据页是为所述可写区域分配的,所述N为大于或等于2的整数,所述可写区域数据为用户写入的闪存数据;当接收到可写区域数据时,将所述可写区域数据写入至所述当前数据页。2.根据权利要求1所述的方法,其特征在于,每个所述闪存数据页包括数据存储区域和状态存储区域,所述状态存储区域用于记录所述闪存数据页的状态标识,所述状态标识包括有效状态或无效状态;所述从N个闪存数据页中确定当前用于记录可写区域数据的当前数据页,包括:依次检测所述N个闪存数据页中每个闪存数据页的状态标识;当检测到第η个闪存数据页的状态标识为有效状态,且第n+1个闪存数据页的状态标识为无效状态时,将所述第η个闪存数据页确定为当前数据页,所述η为小于N的整数;或者,当检测到第Ν个闪存数据页的状态标识为有效状态时,将所述第Ν个闪存数据页确定为当前数据页。3.根据权利要求2所述的方法,其特征在于,每个所述闪存数据页对应一个索引值,所述Ν个闪存数据页的索引值按照升序排序且所述索引值的取值范围为0到Ν-1,在所述当接收到可写区域数据时,将所述可写区域数据写入至所述当前数据页之前,所述方法还包括:判断所述当前数据页所对应的索引值X是否大于〇;当所述当前数据页所对应的索引值X大于〇时,将索引值〇至索引值x-1所对应的闪存数据页中,状态标识为有效状态的闪存数据页的状态标识更改为无效状态。4.根据权利要求3所述的方法,其特征在于,每个所述闪存数据页还包括擦写次数存储区域,所述擦写次数存储区域用于记录所述闪存数据页的已擦写次数;所述当接收到可写区域数据时,将所述可写区域数据写入至所述当前数据页,包括:当接收到可写区域数据时,判断所述当前数据页的已擦写次数是否小于所述当前数据页的可擦写次数阈值;当所述当前数据页的已擦写次数小于所述当前数据页的可擦写次数阈值时,将所述可写区域数据写入至所述当前数据页的数据存储区域;将所述当前数据页的擦写次数存储区域中记录的已擦写次数增加1。5.根据权利要求4所述的方法,其特征在于,在所述判断所述当前数据页的已擦写次数是否小于所述当前数据页的可擦写次数阈值之后,所述方法还包括:当所述当前数据页的已擦写次数不小于所述当前数据页的可擦写次数阈值时,判断所述当前数据页所对应的索引值X是否小于Ν-1;当所述索引值X小于Ν-1时,将索引值为χ+1的闪存数据页确定为新的可用数据页;将所述可写区域数据写入至所述新的可用数据页的数据存储区域;将所述新的可用数据页的状态存储区域中记录的状态标识更改为有效状态,将所述新的可用数据页的擦写次数存储区域中记录的已擦写次数增加1。6.-种光??橹猩链媸莸男慈胱爸?,其特征在于,所述光??橹械拇娲⑶虬ㄖ欢燎蚝涂尚辞?,所述装置包括:确定单元,用于在处理器上电时,从N个闪存数据页中确定当前用于记录可写区域数据的当前数据页,所述N个闪存数据页是为所述可写区域分配的,所述N为大于或等于2的整数,所述可写区域数据为用户写入的闪存数据;写入单元,用于当接收到可写区域数据时,将所述可写区域数据写入至所述当前数据页。7.根据权利要求5所述的装置,其特征在于,每个所述闪存数据页包括数据存储区域和状态存储区域,所述状态存储区域用于记录所述闪存数据页的状态标识,所述状态标识包括有效状态或无效状态;所述确定单元,包括:检测子单元,用于依次检测所述N个闪存数据页中每个闪存数据页的状态标识;确定子单元,用于当检测到第η个闪存数据页的状态标识为有效状态,且第n+1个闪存数据页的状态标识为无效状态时,将所述第η个闪存数据页确定为当前数据页,所述η为小于Ν的整数;或者,当检测到第Ν个闪存数据页的状态标识为有效状态时,将所述第Ν个闪存数据页确定为当前数据页。8.根据权利要求7所述的装置,其特征在于,每个所述闪存数据页对应一个索引值,所述Ν个闪存数据页的索引值按照升序排序且所述索引值的取值范围为0到Ν-1,所述装置还包括:判断单元,用于判断所述当前数据页所对应的索引值X是否大于0;更改单元,用于当所述当前数据页所对应的索引值X大于0时,将索引值0至索引值χ-1所对应的闪存数据页中,状态标识为有效状态的闪存数据页的状态标识更改为无效状态。9.根据权利要求7所述的装置,其特征在于,每个所述闪存数据页还包括擦写次数存储区域,所述擦写存储区域用于记录所述闪存数据页的已擦写次数;所述写入单元,包括:第一判断子单元,用于当接收到可写区域数据时,判断所述当前数据页的已擦写次数是否小于所述当前数据页的可擦写次数阈值;第一写入子单元,用于当所述当前数据页的已擦写次数小于所述当前数据页的可擦写次数阈值时,将所述可写区域数据写入至所述当前数据页的数据存储区域;第一记录子单元,用于将所述当前数据页的索引存储区域中记录的已擦写次数增加1。10.根据权利要求9所述的装置,其特征在于,所述写入单元,还包括:第二判断子单元,用于当所述当前数据页的已擦写次数不小于所述当前数据页的可擦写次数阈值时,判断所述当前数据页所对应的索引值X是否小于Ν-1;确定子单元,用于当所述索引值X小于Ν-1时,将索引值为χ+1的闪存数据页确定为新的可用数据页;第二写入子单元,用于将所述可写区域数据写入至所述新的可用数据页的数据存储区域;第二记录子单元,用于将所述新的可用数据页的状态存储区域中记录的状态标识更改为有效状态,将所述新的可用数据页的擦写次数存储区域中记录的已擦写次数增加1?!疚牡当嗪拧縂06F12/02GK106021122SQ201610322019【公开日】2016年10月12日【申请日】2016年5月12日【发明人】徐建帅,吴堂猛【申请人】青岛海信宽带多媒体技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1
imtoken助记词怎么填-imtoken钱包没有收益-imtoken矿工费太贵了-im钱包官网:token.im