光模塊中閃存數(shù)據(jù)的寫(xiě)入方法及裝置的制造方法【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種光模塊中閃存數(shù)據(jù)的寫(xiě)入方法及裝置,屬于光通信
技術(shù)領(lǐng)域:
。所述光模塊中的存儲(chǔ)區(qū)域包括只讀區(qū)域和可寫(xiě)區(qū)域,所述方法包括:處理器上電時(shí),從N個(gè)閃存數(shù)據(jù)頁(yè)中確定當(dāng)前用于記錄可寫(xiě)區(qū)域數(shù)據(jù)的當(dāng)前數(shù)據(jù)頁(yè),所述N個(gè)閃存數(shù)據(jù)頁(yè)是為所述可寫(xiě)區(qū)域分配的,所述N為大于或等于2的整數(shù),所述可寫(xiě)區(qū)域數(shù)據(jù)為用戶(hù)寫(xiě)入的閃存數(shù)據(jù);當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),將所述可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至所述當(dāng)前數(shù)據(jù)頁(yè)。本發(fā)明可以保證閃存數(shù)據(jù)正確寫(xiě)入當(dāng)前數(shù)據(jù)頁(yè)中,解決了相關(guān)技術(shù)中閃存數(shù)據(jù)寫(xiě)入時(shí)可靠性較低的問(wèn)題。本發(fā)明用于閃存數(shù)據(jù)的寫(xiě)入?!緦?zhuān)利說(shuō)明】光模塊中閃存數(shù)據(jù)的寫(xiě)入方法及裝置
技術(shù)領(lǐng)域:
[0001]本發(fā)明設(shè)及光通信
技術(shù)領(lǐng)域:
,特別設(shè)及一種光模塊中閃存數(shù)據(jù)的寫(xiě)入方法及裝置。【
背景技術(shù):
】[0002]閃存(英文=FlashMemory;簡(jiǎn)稱(chēng):Flash)是一種基于半導(dǎo)體的存儲(chǔ)器,具有系統(tǒng)掉電后仍可保留內(nèi)部信息W及在線(xiàn)擦寫(xiě)的特點(diǎn),其讀寫(xiě)速度比電可擦可編程只讀存儲(chǔ)器(英文:ElectricallyErasableProgrammableReadOnlyMemory;簡(jiǎn)稱(chēng):EEPR0M)更快,且成本更低。[0003]在光通信領(lǐng)域,相關(guān)協(xié)議中規(guī)定了用戶(hù)可W讀取和寫(xiě)入數(shù)據(jù)的用戶(hù)可寫(xiě)區(qū)域,該用戶(hù)可寫(xiě)區(qū)域的大小一般為120字節(jié),對(duì)于用戶(hù)寫(xiě)入至該用戶(hù)可寫(xiě)區(qū)域的閃存數(shù)據(jù),光模塊中的處理器可W在Flash中分配指定的存儲(chǔ)區(qū)域?qū)υ撚脩?hù)可寫(xiě)區(qū)域數(shù)據(jù)進(jìn)行存儲(chǔ)。[0004]但是,F(xiàn)lash的可擦寫(xiě)次數(shù)是有限制的,當(dāng)Flash的擦寫(xiě)次數(shù)超過(guò)限制后,則不能保證閃存數(shù)據(jù)的正確寫(xiě)入。相關(guān)技術(shù)中的處理器在Flash中為用戶(hù)可寫(xiě)區(qū)域分配存儲(chǔ)區(qū)域時(shí)僅考慮了該用戶(hù)可寫(xiě)區(qū)域的大小,當(dāng)用戶(hù)可寫(xiě)區(qū)域所要求的擦寫(xiě)次數(shù)較高,超過(guò)Flash的可擦寫(xiě)次數(shù)的限制時(shí),則無(wú)法保證用戶(hù)可寫(xiě)區(qū)域數(shù)據(jù)能夠正確寫(xiě)入,閃存數(shù)據(jù)寫(xiě)入至Flash時(shí)的可靠性較低?!?br/>發(fā)明內(nèi)容】[0005]為了解決相關(guān)技術(shù)中閃存數(shù)據(jù)寫(xiě)入至Flash數(shù)據(jù)頁(yè)時(shí)可靠性較低的問(wèn)題,本發(fā)明提供了一種光模塊中閃存數(shù)據(jù)的寫(xiě)入方法及裝置。所述技術(shù)方案如下:[0006]-方面,提供了一種光模塊中閃存數(shù)據(jù)的寫(xiě)入方法,所述光模塊中的存儲(chǔ)區(qū)域包括只讀區(qū)域和可寫(xiě)區(qū)域,所述方法包括:[0007]處理器上電時(shí),從N個(gè)閃存數(shù)據(jù)頁(yè)中確定當(dāng)前用于記錄可寫(xiě)區(qū)域數(shù)據(jù)的當(dāng)前數(shù)據(jù)頁(yè),所述N個(gè)閃存數(shù)據(jù)頁(yè)是為所述可寫(xiě)區(qū)域分配的,所述N為大于或等于2的整數(shù),所述可寫(xiě)區(qū)域數(shù)據(jù)為用戶(hù)寫(xiě)入的閃存數(shù)據(jù);[000引當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),將所述可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至所述當(dāng)前數(shù)據(jù)頁(yè)。[0009]第二方面,提供一種光模塊中閃存數(shù)據(jù)的寫(xiě)入裝置,所述光模塊中的存儲(chǔ)區(qū)域包括只讀區(qū)域和可寫(xiě)區(qū)域,所述裝置包括:[0010]確定單元,用于在處理器上電時(shí),從N個(gè)閃存數(shù)據(jù)頁(yè)中確定當(dāng)前用于記錄可寫(xiě)區(qū)域數(shù)據(jù)的當(dāng)前數(shù)據(jù)頁(yè),所述N個(gè)閃存數(shù)據(jù)頁(yè)是為所述可寫(xiě)區(qū)域分配的,所述N為大于或等于2的整數(shù),所述可寫(xiě)區(qū)域數(shù)據(jù)為用戶(hù)寫(xiě)入的閃存數(shù)據(jù);[0011]寫(xiě)入單元,用于當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),將所述可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至所述當(dāng)前數(shù)據(jù)頁(yè)。[0012]本發(fā)明提供的技術(shù)方案帶來(lái)的有益效果是:[0013]本發(fā)明提供了一種光模塊中閃存數(shù)據(jù)的寫(xiě)入方法及裝置,該光模塊中的存儲(chǔ)區(qū)域包括只讀區(qū)域和可寫(xiě)區(qū)域,處理器將Flash中為可寫(xiě)區(qū)域分配的存儲(chǔ)區(qū)域劃分為了N個(gè)閃存數(shù)據(jù)頁(yè),其中每個(gè)閃存數(shù)據(jù)頁(yè)具有一定的可擦寫(xiě)次數(shù)闊值,由于可寫(xiě)區(qū)域數(shù)據(jù)的存儲(chǔ)是按頁(yè)操作的,即可寫(xiě)區(qū)域數(shù)據(jù)的擦寫(xiě)操作只會(huì)增加當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù),而不會(huì)影響其他閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù),因此為該可寫(xiě)區(qū)域分配的N個(gè)閃存數(shù)據(jù)頁(yè)的總可擦寫(xiě)次數(shù)較高,能夠滿(mǎn)足可寫(xiě)區(qū)域所要求的擦寫(xiě)次數(shù),因此提高了可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè)的可靠性?!靖綀D說(shuō)明】[0014]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可W根據(jù)運(yùn)些附圖獲得其他的附圖。[0015]圖1是本發(fā)明實(shí)施例提供的一種光模塊中閃存數(shù)據(jù)寫(xiě)入方法的流程圖;[0016]圖2-1是本發(fā)明實(shí)施例提供的另一種光模塊中閃存數(shù)據(jù)寫(xiě)入方法的流程圖;[0017]圖2-2是本發(fā)明實(shí)施例提供的一種光模塊中閃存數(shù)據(jù)頁(yè)中存儲(chǔ)區(qū)域的分配示意圖;[0018]圖2-3是本發(fā)明實(shí)施例提供的一種處理器確定當(dāng)前數(shù)據(jù)頁(yè)的方法流程圖;[0019]圖2-4是本發(fā)明實(shí)施例提供的一種處理器將閃存數(shù)據(jù)頁(yè)寫(xiě)入當(dāng)前數(shù)據(jù)頁(yè)的方法流程圖;[0020]圖3-1是本發(fā)明實(shí)施例提供的一種光模塊中閃存數(shù)據(jù)的寫(xiě)入裝置的結(jié)構(gòu)示意圖;[0021]圖3-2是本發(fā)明實(shí)施例提供的另一種光模塊中閃存數(shù)據(jù)的寫(xiě)入裝置的結(jié)構(gòu)示意圖;[0022]圖3-3是本發(fā)明實(shí)施例提供的一種確定單元的結(jié)構(gòu)示意圖;[0023]圖3-4是本發(fā)明實(shí)施例提供的一種寫(xiě)入單元的結(jié)構(gòu)示意圖?!揪唧w實(shí)施方式】[0024]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。[0025]圖1是本發(fā)明實(shí)施例提供的一種光模塊中閃存數(shù)據(jù)寫(xiě)入方法的流程圖,該光模塊中的存儲(chǔ)區(qū)域可W包括只讀區(qū)域和可寫(xiě)區(qū)域,參見(jiàn)圖1,該方法流程可W包括:[0026]步驟101、處理器上電時(shí),從N個(gè)閃存數(shù)據(jù)頁(yè)中確定當(dāng)前用于記錄可寫(xiě)區(qū)域數(shù)據(jù)的當(dāng)前數(shù)據(jù)頁(yè),所述N個(gè)閃存數(shù)據(jù)頁(yè)是為所述可寫(xiě)區(qū)域分配的,所述N為大于或等于2的整數(shù),所述可寫(xiě)區(qū)域數(shù)據(jù)為用戶(hù)寫(xiě)入的閃存數(shù)據(jù)。[0027]步驟102、當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),將所述可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至所述當(dāng)前數(shù)據(jù)頁(yè)。[0028]綜上所述,本發(fā)明提供了一種光模塊中閃存數(shù)據(jù)的寫(xiě)入方法,處理器將Flash中為可寫(xiě)區(qū)域分配的存儲(chǔ)區(qū)域劃分為了N個(gè)閃存數(shù)據(jù)頁(yè),其中每個(gè)閃存數(shù)據(jù)頁(yè)具有一定的可擦寫(xiě)次數(shù)闊值,由于可寫(xiě)區(qū)域數(shù)據(jù)的存儲(chǔ)是按頁(yè)操作的,即可寫(xiě)區(qū)域數(shù)據(jù)的擦寫(xiě)操作只會(huì)增加當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù),而不會(huì)影響其他閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù),因此為該可寫(xiě)區(qū)域分配的N個(gè)閃存數(shù)據(jù)頁(yè)的總可擦寫(xiě)次數(shù)較高,能夠滿(mǎn)足可寫(xiě)區(qū)域所要求的擦寫(xiě)次數(shù),因此提高了可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè)的可靠性。[0029]圖2-1是本發(fā)明實(shí)施例提供的另一種閃存數(shù)據(jù)寫(xiě)入方法的流程圖,該光模塊中的存儲(chǔ)區(qū)域可W包括只讀區(qū)域和可寫(xiě)區(qū)域,參見(jiàn)圖2-1,該方法可W包括:[0030]步驟201、處理器上電時(shí),依次檢測(cè)N個(gè)閃存數(shù)據(jù)頁(yè)中每個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)。[0031]其中,N個(gè)閃存數(shù)據(jù)頁(yè)是為光模塊中的可寫(xiě)區(qū)域分配的,該N為大于或等于2的整數(shù),且該N可W為根據(jù)每個(gè)閃存數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值W及該可寫(xiě)區(qū)域數(shù)據(jù)所要求的擦寫(xiě)次數(shù)確定的。每個(gè)閃存數(shù)據(jù)頁(yè)可W包括數(shù)據(jù)存儲(chǔ)區(qū)域、狀態(tài)存儲(chǔ)區(qū)域,該狀態(tài)存儲(chǔ)區(qū)域用于記錄該閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí),該狀態(tài)標(biāo)識(shí)可W包括有效狀態(tài)或無(wú)效狀態(tài)。[0032]在本發(fā)明實(shí)施例中,每個(gè)閃存數(shù)據(jù)頁(yè)都預(yù)設(shè)有可擦寫(xiě)次數(shù)闊值,當(dāng)該閃存數(shù)據(jù)頁(yè)的擦寫(xiě)次數(shù)超過(guò)該可擦寫(xiě)次數(shù)闊值后,則不能保證閃存數(shù)據(jù)的正確寫(xiě)入。因此,處理器在為可寫(xiě)區(qū)域分配閃存數(shù)據(jù)頁(yè)時(shí),可W綜合考慮每個(gè)閃存數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值W及該可寫(xiě)區(qū)域所要求的擦寫(xiě)次數(shù),使得為該可寫(xiě)區(qū)域所分配的N個(gè)閃存數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值之和可W大于或等于該可寫(xiě)區(qū)域所要求的擦寫(xiě)次數(shù),W保證處理器所分配的該N個(gè)閃存數(shù)據(jù)頁(yè)能夠滿(mǎn)足可寫(xiě)區(qū)域數(shù)據(jù)的可擦寫(xiě)次數(shù)的要求,使得可寫(xiě)區(qū)域數(shù)據(jù)可W正確寫(xiě)入至閃存數(shù)據(jù)頁(yè)中。[0033]示例的,光通信領(lǐng)域中的SFF-8472協(xié)議和INF-8077i協(xié)議中規(guī)定了用戶(hù)可W讀取和寫(xiě)入數(shù)據(jù)的用戶(hù)可寫(xiě)區(qū)域,該用戶(hù)可寫(xiě)區(qū)域的大小一般為120字節(jié),該用戶(hù)可寫(xiě)區(qū)域數(shù)據(jù)所要求的擦寫(xiě)次數(shù)為五萬(wàn)次,光模塊中的微處理器中,每頁(yè)閃存數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值為一萬(wàn)次,則處理器可W為該用戶(hù)可寫(xiě)區(qū)域的閃存數(shù)據(jù)分配5頁(yè)閃存數(shù)據(jù)頁(yè),該5頁(yè)閃存數(shù)據(jù)頁(yè)的總可擦寫(xiě)次數(shù)為五萬(wàn)次,等于該用戶(hù)可寫(xiě)區(qū)域數(shù)據(jù)所要求的擦寫(xiě)次數(shù),因此可W保證用戶(hù)可寫(xiě)區(qū)域數(shù)據(jù)的正確寫(xiě)入。[0034]SFF-8472協(xié)議所規(guī)定的用戶(hù)可寫(xiě)區(qū)域(英文:UserWritableEEPR0M)在A化的PageOOh/0化的第[128-247]字節(jié),共120字節(jié);INF-8077i協(xié)議所規(guī)定的用戶(hù)可寫(xiě)區(qū)域在AOh化bleO化的第[128-255]字節(jié),共128字節(jié)。則對(duì)于INF-8077i協(xié)議所規(guī)定的128字節(jié)的用戶(hù)可寫(xiě)區(qū)域,光模塊中的微處理器可W從每個(gè)閃存數(shù)據(jù)頁(yè)中劃分128字節(jié)的區(qū)域用于存儲(chǔ)該用戶(hù)可寫(xiě)區(qū)域數(shù)據(jù)。[0035]圖2-2是本發(fā)明實(shí)施例提供的一種閃存數(shù)據(jù)頁(yè)中存儲(chǔ)區(qū)域的分配示意圖,假設(shè)該閃存數(shù)據(jù)頁(yè)的存儲(chǔ)容量為256字節(jié),參考圖2-2,該閃存數(shù)據(jù)頁(yè)的第0-127字節(jié)可W被劃分為用于存儲(chǔ)用戶(hù)可寫(xiě)區(qū)域數(shù)據(jù)的區(qū)域;第128-131字節(jié)可W被劃分為用于存儲(chǔ)該閃存數(shù)據(jù)頁(yè)已擦寫(xiě)次數(shù)的擦寫(xiě)次數(shù)存儲(chǔ)區(qū)域;第132-133字節(jié)可W被劃分為用于存儲(chǔ)該閃存數(shù)據(jù)頁(yè)狀態(tài)標(biāo)識(shí)的狀態(tài)存儲(chǔ)區(qū)域,其中有效狀態(tài)可W用字段OOh來(lái)表示,無(wú)效狀態(tài)可W用字段OF印表示;該閃存數(shù)據(jù)頁(yè)剩余的第134-255字節(jié)可W為未被分配的保留區(qū)域。需要說(shuō)明的是,對(duì)于不同存儲(chǔ)容量的閃存數(shù)據(jù)頁(yè),其保留區(qū)域的大小也不同,例如,對(duì)于512字節(jié)的閃存數(shù)據(jù)頁(yè),該閃存數(shù)據(jù)頁(yè)中的保留區(qū)域可W為第134-511字節(jié);對(duì)于1024字節(jié)的閃存數(shù)據(jù)頁(yè),該閃存數(shù)據(jù)頁(yè)中的保留區(qū)域可W為第134-1023字節(jié)。本發(fā)明實(shí)施例對(duì)此不做限定。[0036]處理器每次上電時(shí),為了從該N個(gè)閃存數(shù)據(jù)頁(yè)中確定當(dāng)前用于存儲(chǔ)可寫(xiě)區(qū)域數(shù)據(jù)的當(dāng)前數(shù)據(jù)頁(yè),該處理器可W依次對(duì)該N個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)進(jìn)行檢測(cè)。示例的,處理器每次上電時(shí),可W依次對(duì)該5個(gè)閃存數(shù)據(jù)頁(yè)中第132-133字節(jié)所存儲(chǔ)的狀態(tài)標(biāo)識(shí)進(jìn)行檢測(cè)。[0037]需要說(shuō)明的是,處理器為該可寫(xiě)區(qū)域所分配的閃存數(shù)據(jù)頁(yè)必須是獨(dú)立的閃存數(shù)據(jù)頁(yè),每個(gè)閃存數(shù)據(jù)頁(yè)只能用于存儲(chǔ)可寫(xiě)區(qū)域數(shù)據(jù),且每個(gè)閃存數(shù)據(jù)頁(yè)的各個(gè)存儲(chǔ)區(qū)域只能按照處理器的分配方式進(jìn)行使用,例如,對(duì)于支持INF-8077i協(xié)議的光模塊中的微處理器,其閃存數(shù)據(jù)頁(yè)只能按照?qǐng)D2-2所示的分配方式進(jìn)行數(shù)據(jù)存儲(chǔ)。[0038]還需要說(shuō)明的是,在實(shí)際應(yīng)用中,處理器中每個(gè)閃存數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值可W相同,也可W不同,本發(fā)明實(shí)施例對(duì)此不做限定。[0039]步驟202、當(dāng)檢測(cè)到第n個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài),且第n+1個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài)時(shí),將該第n個(gè)閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè);或者,當(dāng)檢測(cè)到第N個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài)時(shí),將該第N個(gè)閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè)。[0040]在本發(fā)明實(shí)施例中,該處理器中還可W存儲(chǔ)有每個(gè)閃存數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值,該索引值的取值范圍為0到N-I,具體的,該處理器中可W預(yù)先建立一個(gè)索引表,該索引表中可W記錄有索引值與閃存數(shù)據(jù)頁(yè)的首地址的對(duì)應(yīng)關(guān)系,W便于處理器對(duì)該N個(gè)閃存數(shù)據(jù)頁(yè)進(jìn)行檢索,從而快速篩選出當(dāng)前可用的當(dāng)前數(shù)據(jù)頁(yè)。示例的,假設(shè)處理器為用戶(hù)可寫(xiě)區(qū)域數(shù)據(jù)分配的閃存數(shù)據(jù)頁(yè)的個(gè)數(shù)N等于5,則處理器中存儲(chǔ)的索引表可W如表1所示,從表1可W看出,索引值0對(duì)應(yīng)Flash0頁(yè)的首地址,處理器根據(jù)Flash0頁(yè)的首地址,即可確定該第0頁(yè)閃存數(shù)據(jù)頁(yè)。[0041]表1r0049112對(duì)于該N個(gè)閃存數(shù)據(jù)頁(yè),處理器可W從索引值為0的閃存數(shù)據(jù)頁(yè)開(kāi)始進(jìn)行檢測(cè),為了避免處理器初次上電時(shí),無(wú)法檢測(cè)可用的當(dāng)前數(shù)據(jù)頁(yè),可W設(shè)置索引值為0的閃存數(shù)據(jù)頁(yè)的初始狀態(tài)標(biāo)識(shí)為有效狀態(tài),其他閃存數(shù)據(jù)頁(yè)中的初始狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài)。當(dāng)處理器掉電后并再次上電時(shí),該N個(gè)閃存數(shù)據(jù)頁(yè)中可W保留上一次上電時(shí)所寫(xiě)入的數(shù)據(jù),該數(shù)據(jù)除了包括可寫(xiě)區(qū)域數(shù)據(jù),還包括狀態(tài)標(biāo)識(shí)。當(dāng)處理器檢測(cè)到第n個(gè)閃存數(shù)據(jù)頁(yè)(即索引值為n-1的閃存數(shù)據(jù)頁(yè))的狀態(tài)標(biāo)識(shí)為有效狀態(tài),且第n+1(即索引值為n的閃存數(shù)據(jù)頁(yè))個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài)時(shí),處理器可W將該第n個(gè)閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè),并停止上述步驟201所示的檢測(cè)過(guò)程;或者,當(dāng)處理器完成對(duì)前N-I個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)的檢測(cè),確定該前N-I閃存數(shù)據(jù)頁(yè)均不可用,并檢測(cè)到第N個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài)時(shí),處理器可W將該第N個(gè)閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè)。2示例的,假設(shè)處理器對(duì)表1所示的5個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)進(jìn)行依次檢測(cè)后,檢測(cè)出索引值為0閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài),索引值為1的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài),索引值為2的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài),則該處理器可W將索引值為1的閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè),并停止對(duì)剩余的閃存數(shù)據(jù)頁(yè)狀態(tài)標(biāo)識(shí)的檢測(cè);或者,若處理器對(duì)5個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)進(jìn)行依次檢測(cè)后,檢測(cè)出索引值為O至4所對(duì)應(yīng)的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)均為有效狀態(tài),或者檢測(cè)出索引值為O至3所對(duì)應(yīng)的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)均為無(wú)效狀態(tài),索引值為4的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài),則該處理器可W確定索引值為O至3所對(duì)應(yīng)的閃存數(shù)據(jù)頁(yè)均不能保證可寫(xiě)區(qū)域數(shù)據(jù)的正確寫(xiě)入,因此可W將索引值為4的閃存數(shù)據(jù)頁(yè)(即第5個(gè)閃存數(shù)據(jù)頁(yè))確定為當(dāng)前數(shù)據(jù)頁(yè)。[0045]步驟203、判斷該當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X是否大于0。[0046]當(dāng)該當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X大于0時(shí),執(zhí)行步驟204;當(dāng)該當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X不大于0時(shí),執(zhí)行步驟205。[0047]步驟204、將索引值為0到X-I所對(duì)應(yīng)的閃存數(shù)據(jù)頁(yè)中,狀態(tài)標(biāo)識(shí)為有效狀態(tài)的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)更改為無(wú)效狀態(tài)。執(zhí)行步驟205。[0048]當(dāng)處理器判斷出該當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X大于加寸,處理器可W將索引值為0到X-I所對(duì)應(yīng)的閃存數(shù)據(jù)頁(yè)中,狀態(tài)標(biāo)識(shí)為有效狀態(tài)的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)更改為無(wú)效狀態(tài),W便處理器在下次上電時(shí),可W通過(guò)每個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí),快速篩選出可用的當(dāng)前數(shù)據(jù)頁(yè)。[0049]示例的,假設(shè)當(dāng)前數(shù)據(jù)頁(yè)的索引值為1,由于該索引值大于0,則處理器可W將索引值為0的閃存數(shù)據(jù)頁(yè)=Flash0頁(yè)的狀態(tài)標(biāo)識(shí)更改為無(wú)效狀態(tài)。因此,當(dāng)處理器再次上電時(shí),可W判斷出該Flash0頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài),并直接確定該Flash0頁(yè)不可用,此時(shí)處理器可W繼續(xù)判斷Flash1頁(yè)是否可用。[0050]需要說(shuō)明的是,在實(shí)際應(yīng)用中,處理器在執(zhí)行步驟204時(shí),可W將狀態(tài)標(biāo)識(shí)為有效狀態(tài)的閃存數(shù)據(jù)頁(yè)中所記錄的數(shù)據(jù)全部擦除,由于對(duì)閃存數(shù)據(jù)頁(yè)進(jìn)行擦除后,閃存數(shù)據(jù)頁(yè)中所存儲(chǔ)的數(shù)據(jù)均為OF化,即用于存儲(chǔ)狀態(tài)標(biāo)識(shí)的狀態(tài)存儲(chǔ)區(qū)域中所記錄的數(shù)據(jù)也為OFFh,由于字段OFFh可W用于標(biāo)識(shí)無(wú)效狀態(tài),因此通過(guò)該擦除數(shù)據(jù)的方法即可實(shí)現(xiàn)對(duì)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)的更改。[0051]在本發(fā)明實(shí)施例中,每個(gè)閃存數(shù)據(jù)頁(yè)還可W包括擦寫(xiě)次數(shù)存儲(chǔ)區(qū)域,該擦寫(xiě)次數(shù)存儲(chǔ)區(qū)域用于記錄該閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù),處理器除了可W通過(guò)上述步驟202所示的方法確定當(dāng)前數(shù)據(jù)頁(yè)之外,還可W根據(jù)每個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)W及已擦寫(xiě)次數(shù)來(lái)確定當(dāng)前數(shù)據(jù)頁(yè)。圖2-3是本發(fā)明實(shí)施例提供的另一種處理器確定當(dāng)前數(shù)據(jù)頁(yè)的方法流程圖,如圖2-3所示,該方法可W包括:[0052]步驟2021、判斷索引值為n的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)是否為有效標(biāo)識(shí)。[0053]當(dāng)索引值為n的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài)時(shí),執(zhí)行步驟2022;當(dāng)索引值為n的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效標(biāo)識(shí)時(shí),執(zhí)行步驟2023。[0054]在本發(fā)明實(shí)施例中,對(duì)于該N個(gè)閃存數(shù)據(jù)頁(yè),處理器可W從索引值為0的閃存數(shù)據(jù)頁(yè)開(kāi)始進(jìn)行檢測(cè),為了避免處理器初次上電時(shí),無(wú)法檢測(cè)到滿(mǎn)足數(shù)據(jù)寫(xiě)入條件的閃存數(shù)據(jù)頁(yè),可W設(shè)置索引值為0的閃存數(shù)據(jù)頁(yè)的初始狀態(tài)標(biāo)識(shí)為有效狀態(tài),初始的已擦寫(xiě)次數(shù)為1;其他閃存數(shù)據(jù)頁(yè)中的初始狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài),初始的已擦寫(xiě)次數(shù)為0。當(dāng)處理器掉電后并再次上電時(shí),該N個(gè)閃存數(shù)據(jù)頁(yè)中可W保留上一次上電時(shí)所寫(xiě)入的數(shù)據(jù),該數(shù)據(jù)除了包括閃存數(shù)據(jù),還包括狀態(tài)標(biāo)識(shí)和已擦寫(xiě)次數(shù)。[0055]示例的,對(duì)于光模塊中的用戶(hù)可寫(xiě)區(qū)域,處理器為該用戶(hù)可寫(xiě)區(qū)域數(shù)據(jù)分配了5頁(yè)閃存數(shù)據(jù)頁(yè),每個(gè)閃存數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值均為一萬(wàn)次。假設(shè)處理器為初次上電,則處理器對(duì)索引值為O的閃存數(shù)據(jù)頁(yè):FlashO頁(yè)的狀態(tài)標(biāo)識(shí)進(jìn)行判斷時(shí),可W判斷出該FlashO頁(yè)的初始狀態(tài)標(biāo)識(shí)為有效狀態(tài),則處理器可W執(zhí)行步驟2023。若處理器再次上電時(shí),檢測(cè)到該Flash0頁(yè)的初始狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài),則處理器可W執(zhí)行步驟2022。[0056]步驟2022、判斷索引值n是否小于N-1。[0057]當(dāng)索引值為n的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài)時(shí),處理器可W繼續(xù)判斷該索弓値n是否小于N-I,當(dāng)索引值n小于N-I時(shí),令n=n+l,并再次執(zhí)行步驟2021,即繼續(xù)對(duì)下一個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)進(jìn)行檢測(cè)和判斷;當(dāng)索引值n不小于N-I時(shí),執(zhí)行步驟2027。[0058]示例的,當(dāng)處理器檢測(cè)到索引值為0的閃存數(shù)據(jù)頁(yè)=Flash0頁(yè)的初始狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài)時(shí),可W繼續(xù)判斷該索引值0是否小于最大索引值4(假設(shè)N=5),由于該索引值0小于4,則處理器可W令n=0+l,并繼續(xù)執(zhí)行步驟2021,即繼續(xù)判斷索引值為1的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)是否為有效標(biāo)識(shí)。[0059]步驟2023、判斷索引值為n的閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)是否小于可擦寫(xiě)次數(shù)闊值。[0060]當(dāng)索引值為n的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效標(biāo)識(shí)時(shí),處理器可W獲取該閃存數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值,并判斷該索引值為n的閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)是否小于可擦寫(xiě)次數(shù)闊值,當(dāng)索引值為n的閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)小于可擦寫(xiě)次數(shù)闊值時(shí),執(zhí)行步驟2027;當(dāng)索引值為n的閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)不小于可擦寫(xiě)次數(shù)闊值時(shí),執(zhí)行步驟2024。[0061]示例的,假設(shè)索引值為0的閃存數(shù)據(jù)頁(yè)=Flash0頁(yè)的可擦寫(xiě)次數(shù)闊值為一萬(wàn)次,若處理器獲取到的該Flash0頁(yè)中記錄的已擦寫(xiě)次數(shù)為:1次,則由于該索引值為0的閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)小于可擦寫(xiě)次數(shù)闊值,處理器可W執(zhí)行步驟2027;若處理器獲取到的該Flash0頁(yè)中記錄的已擦寫(xiě)次數(shù)為:一萬(wàn)次,則由于該索引值為0的閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)不小于該可擦寫(xiě)次數(shù)闊值,處理器可W執(zhí)行步驟2024。[0062]步驟2024、判斷索引值n是否小于N-1。[0063]當(dāng)索引值為n的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài),且該索引值為n的閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)不小于可擦寫(xiě)次數(shù)闊值時(shí),處理器可W繼續(xù)判斷該n是否小于最大索引值N-1。當(dāng)索引值n小于N-I時(shí),令n=n+l,并執(zhí)行步驟2025;當(dāng)索引值n不小于N-I時(shí),執(zhí)行步驟2026。[0064]示例的,當(dāng)處理器檢測(cè)出索引值為4的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài),且該索引值為4的閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)為一萬(wàn)次,不小于可擦寫(xiě)次數(shù)闊值時(shí),處理器可W進(jìn)一步判斷出該索引值4不小于最大索引值,因此處理器可W執(zhí)行步驟2026;若處理器檢測(cè)到索引值為1的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài),且該索引值為1的閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)為一萬(wàn)次,不小于可擦寫(xiě)次數(shù)闊值時(shí),處理器可W進(jìn)一步判斷出該索引值1小于最大索引值4,因此處理器可W令n=n+l,也即是,對(duì)下一頁(yè)閃存數(shù)據(jù)頁(yè)執(zhí)行步驟2025。[0065]步驟2025、判斷索引值為n的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)是否為有效標(biāo)識(shí)。[0066]當(dāng)索引值為n的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效標(biāo)識(shí)時(shí),執(zhí)行步驟2023;當(dāng)索引值為n的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài)時(shí),令n=n-l,并執(zhí)行步驟2026。[0067]當(dāng)上一個(gè)閃存數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值小于N-I時(shí),處理器可W繼續(xù)判斷下一個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)是否為有效標(biāo)識(shí),例如,在步驟2024中,當(dāng)處理器判斷出Flash1頁(yè)所對(duì)應(yīng)的索引值1小于4時(shí),可W繼續(xù)判斷索引值為2的閃存數(shù)據(jù)頁(yè)Flash2頁(yè)的狀態(tài)標(biāo)識(shí)是否為有效標(biāo)識(shí),當(dāng)該Flash2頁(yè)的狀態(tài)標(biāo)識(shí)為有效標(biāo)識(shí)時(shí),處理器可W執(zhí)行步驟2023,即繼續(xù)判斷該Flash2頁(yè)的已擦寫(xiě)次數(shù)是否小于可擦寫(xiě)次數(shù)闊值;若該Flash2頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài),處理器可W令索引值n=n-l,也即是,對(duì)索引值為1的閃存數(shù)據(jù)頁(yè)執(zhí)行步驟2026。[0068]步驟2026、將索引值為0到n-1所對(duì)應(yīng)的閃存數(shù)據(jù)頁(yè)中,狀態(tài)標(biāo)識(shí)為有效狀態(tài)的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)更改為無(wú)效狀態(tài)。執(zhí)行步驟2027。[0069]當(dāng)處理器在步驟2024中判斷出索引值n不小于N-I,或者在步驟2025中判斷出索引值為n的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài),并令索引值n=n-l后,處理器可W將索引值為0到n-1所對(duì)應(yīng)的閃存數(shù)據(jù)頁(yè)中,狀態(tài)標(biāo)識(shí)為有效狀態(tài)的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)更改為無(wú)效狀態(tài),W便處理器在下次上電時(shí),可W通過(guò)每個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí),快速篩選出滿(mǎn)足數(shù)據(jù)寫(xiě)入條件的當(dāng)前數(shù)據(jù)頁(yè),由于該判斷過(guò)程中無(wú)需再對(duì)每個(gè)閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)進(jìn)行判斷,因此有效提高了確定當(dāng)前數(shù)據(jù)頁(yè)時(shí)的效率。[0070]示例的,假設(shè)在步驟2024中,當(dāng)處理器判斷出索引值4不小于N-I(N=S)時(shí),可W將索引值為0到3(此時(shí)n=4)所對(duì)應(yīng)的閃存數(shù)據(jù)頁(yè)中,狀態(tài)標(biāo)識(shí)為有效狀態(tài)的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)更改為無(wú)效狀態(tài)?;蛘咴诓襟E2025中,處理器判斷出索引值為1的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài),并令索引值n=1-1=0后,處理器可W判斷該索引值為0的閃存數(shù)據(jù)頁(yè)Flash0頁(yè)的狀態(tài)標(biāo)識(shí)是否為有效標(biāo)識(shí),若為有效狀態(tài),則將該Flash0頁(yè)的狀態(tài)標(biāo)識(shí)更改為無(wú)效狀態(tài)。因此,當(dāng)處理器再次上電時(shí),可W直接判斷出該Flash0頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài),此時(shí)無(wú)需再對(duì)該Flash0頁(yè)的已擦寫(xiě)次數(shù)進(jìn)行檢測(cè)和判斷,就可W進(jìn)行對(duì)Flash1頁(yè)的狀態(tài)標(biāo)識(shí)的檢測(cè)。[0071]還需要說(shuō)明的是,如果在步驟2025中,處理器判斷索引值為1的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài),則處理器令n=n-l后,索引值n為0,此時(shí)處理器無(wú)需執(zhí)行步驟2026,即可直接執(zhí)行步驟2027。[0072]步驟2027、將索引值為n的閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè)。[0073]當(dāng)處理器在步驟2023中判斷出索引值為n的閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)小于可擦寫(xiě)次數(shù)闊值時(shí),或者在步驟2022或步驟2024中判斷出索引值n不小于N-I(且在步驟2024之后執(zhí)行完成步驟2026),或者在步驟2025中判斷出索引值為n的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài)且執(zhí)行完成步驟2026后,處理器可W將當(dāng)前索引值n所對(duì)應(yīng)的閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè)。[0074]需要說(shuō)明的是,當(dāng)處理器在上述步驟2021至步驟2025中判斷出索引值為n的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài),該閃存數(shù)據(jù)頁(yè)中記錄的已擦寫(xiě)次數(shù)不小于該閃存數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值,且索引值為n+1的閃存數(shù)據(jù)頁(yè)中記錄的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài)時(shí),處理器可W確定該索引值為n的閃存數(shù)據(jù)頁(yè)為處理器上一次斷電前正在使用的當(dāng)前數(shù)據(jù)頁(yè),該索引值為n的閃存數(shù)據(jù)頁(yè)中存儲(chǔ)有處理器上一次斷電前所保存的閃存數(shù)據(jù)。如果此時(shí)將索引值為n+1的閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè),則會(huì)導(dǎo)致處理器上一次斷電前所保存的閃存數(shù)據(jù)的丟失,為了避免該閃存數(shù)據(jù)的丟失,需要將索引值為n的閃存數(shù)據(jù)頁(yè)繼續(xù)確定為當(dāng)前數(shù)據(jù)頁(yè),當(dāng)處理器向該當(dāng)前數(shù)據(jù)頁(yè)寫(xiě)入新的閃存數(shù)據(jù)時(shí),會(huì)將當(dāng)前數(shù)據(jù)頁(yè)中保存的數(shù)據(jù)先讀取到RAM(RandomAccessMemory,隨機(jī)存取存儲(chǔ)器)緩沖區(qū),然后再將新的閃存數(shù)據(jù)更新至該RAM緩沖區(qū),最后將更新完成后的數(shù)據(jù)再次寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè),因此可W避免處理器上一次斷電前所保存的閃存數(shù)據(jù)的丟失。[0075]示例的,若處理器判斷出索引值為0的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài),并在步驟2023中判斷出該FlashO頁(yè)的已擦寫(xiě)次數(shù)小于可擦寫(xiě)次數(shù)闊值,則可W將該FlashO頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè);或者,若處理器判斷出索引值為0的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài),該Flash0頁(yè)的已擦寫(xiě)次數(shù)不小于可擦寫(xiě)次數(shù)闊值,且處理器在步驟2025中判斷出索引值為1的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài)時(shí),處理器也可W將該Flash0頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè);又或者,若處理器依次對(duì)各個(gè)索引值所對(duì)應(yīng)的閃存數(shù)據(jù)頁(yè)進(jìn)行檢索后,判斷出前N-I個(gè)閃存數(shù)據(jù)頁(yè)均不滿(mǎn)足數(shù)據(jù)寫(xiě)入條件時(shí),可W直接將最后一個(gè)閃存數(shù)據(jù)頁(yè),也即是,將索引值為N-I的閃存數(shù)據(jù)頁(yè),確定為該當(dāng)前數(shù)據(jù)頁(yè)。[0076]需要說(shuō)明的是,上述確定當(dāng)前數(shù)據(jù)頁(yè)的方法的步驟的先后順序可W進(jìn)行適當(dāng)調(diào)整,步驟也可W根據(jù)情況進(jìn)行相應(yīng)增減,例如,上述步驟2026可W根據(jù)情況進(jìn)行刪除,也可W在步驟2027之后執(zhí)行。當(dāng)該步驟2026在步驟2027之后執(zhí)行時(shí),處理器可W先判斷該當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值n是否大于0,當(dāng)該當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值n大于0時(shí),再執(zhí)行該步驟2026。[0077]步驟205、當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),將該可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè)的數(shù)據(jù)存儲(chǔ)區(qū)域。執(zhí)行步驟206。[0078]處理器確定當(dāng)前用于存儲(chǔ)可寫(xiě)區(qū)域數(shù)據(jù)的當(dāng)前數(shù)據(jù)頁(yè)后,當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),可W直接將該可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè)的數(shù)據(jù)存儲(chǔ)區(qū)域。圖2-4是本發(fā)明實(shí)施例提供的一種處理器將閃存數(shù)據(jù)頁(yè)寫(xiě)入當(dāng)前數(shù)據(jù)頁(yè)的方法流程圖,如圖2-4所示,該方法包括:[0079]步驟2051、判斷當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)是否小于該當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值。[0080]當(dāng)該當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)小于該當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值時(shí),執(zhí)行步驟2052;當(dāng)該當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)不小于該當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值時(shí),執(zhí)行步驟2054。[0081]示例的,假設(shè)當(dāng)前數(shù)據(jù)頁(yè)為索引值為0的閃存數(shù)據(jù)頁(yè)=Flash0頁(yè),若該Flash0頁(yè)中所記錄的已擦寫(xiě)次數(shù)為1次,由于小于可擦寫(xiě)次數(shù)闊值一萬(wàn)次,則處理器可W執(zhí)行步驟2052;若該Flash0頁(yè)中所記錄的已擦寫(xiě)次數(shù)為一萬(wàn)次,由于該已擦寫(xiě)次數(shù)不小于可擦寫(xiě)次數(shù)闊值一萬(wàn)次,則處理器可W執(zhí)行步驟2054。[0082]步驟2052、將該可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè)的數(shù)據(jù)存儲(chǔ)區(qū)域。執(zhí)行步驟2053。[0083]當(dāng)當(dāng)前數(shù)據(jù)頁(yè)中記錄的已擦寫(xiě)次數(shù)小于該當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值時(shí),處理器可W確定該閃存數(shù)據(jù)能夠正確寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè),因此可W將接收到的可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè)的數(shù)據(jù)存儲(chǔ)區(qū)域。閃存數(shù)據(jù)的具體寫(xiě)入過(guò)程可W包括:將該當(dāng)前數(shù)據(jù)頁(yè)內(nèi)的所有內(nèi)容讀取到RAM緩沖區(qū),然后將接收到的可寫(xiě)區(qū)域數(shù)據(jù)更新至RAM緩沖區(qū)中,最后將該當(dāng)前數(shù)據(jù)頁(yè)中記錄的所有數(shù)據(jù)擦除,再將RAM緩沖區(qū)中的數(shù)據(jù)寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè)內(nèi),就完成了可寫(xiě)區(qū)域數(shù)據(jù)的寫(xiě)入。[0084]步驟2053、將該當(dāng)前數(shù)據(jù)頁(yè)的擦寫(xiě)次數(shù)存儲(chǔ)區(qū)域中記錄的已擦寫(xiě)次數(shù)增加1。[0085]當(dāng)前數(shù)據(jù)頁(yè)寫(xiě)完成一次可寫(xiě)區(qū)域數(shù)據(jù)的寫(xiě)入操作后,該當(dāng)前數(shù)據(jù)頁(yè)中記錄的已擦寫(xiě)次數(shù)也需要相應(yīng)的增加1。例如,當(dāng)將接收到的用戶(hù)可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入到Flash0頁(yè)后,該Flash0頁(yè)中所記錄的已擦寫(xiě)次數(shù)將由1次更新為2次。[0086]需要說(shuō)明的,在實(shí)際應(yīng)用中,更改已擦寫(xiě)次數(shù)的步驟可W在步驟2052執(zhí)行的過(guò)程中完成。具體的,當(dāng)將處理器將接收到的可寫(xiě)區(qū)域數(shù)據(jù)更新至RAM緩沖區(qū)中后,處理器可W將RAM緩沖區(qū)中記錄的已擦寫(xiě)次數(shù)增加1,并將狀態(tài)標(biāo)識(shí)更新為有效狀態(tài),例如將狀態(tài)標(biāo)識(shí)更新為0x00,然后再將該RAM緩沖區(qū)中的所有數(shù)據(jù)寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè)內(nèi),就完成了對(duì)當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)的更新。[0087]步驟2054、判斷該當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X是否小于N-1。[0088]當(dāng)該當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)不小于該當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值時(shí),處理器可W進(jìn)一步判斷該當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X是否小于N-1。當(dāng)該索引值X小于N-I時(shí),執(zhí)行步驟2055;當(dāng)該索引值X不小于N-I時(shí),執(zhí)行步驟2052。也即是,當(dāng)當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值為N-I時(shí),處理器可W確定,為可寫(xiě)區(qū)域數(shù)據(jù)所分配的N個(gè)閃存數(shù)據(jù)頁(yè)已均不滿(mǎn)足數(shù)據(jù)寫(xiě)入條件,即使該當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)已經(jīng)達(dá)到可擦寫(xiě)次數(shù)闊值,處理器依舊會(huì)將接收到的可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè)。[0089]示例的,當(dāng)處理器在步驟2051中判斷出該Flash0頁(yè)中所記錄的已擦寫(xiě)次數(shù)為一萬(wàn)次,不小于可擦寫(xiě)次數(shù)闊值時(shí),則處理器可W進(jìn)一步判斷該當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值0是否小于最大索引值4,由于該索引值0小于4,處理器可W執(zhí)行步驟2055;若當(dāng)前的當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值為4,不小于N-I,則處理器可W將接收到的可寫(xiě)區(qū)域數(shù)據(jù)繼續(xù)寫(xiě)入至該Flash4頁(yè)中。[0090]步驟2055、將索引值為X+1的閃存數(shù)據(jù)頁(yè)確定為新的可用數(shù)據(jù)頁(yè)。執(zhí)行步驟2056。[0091]當(dāng)該當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X小于N-I時(shí),處理器可W將索引值為X+1的閃存數(shù)據(jù)頁(yè)確定為新的可用數(shù)據(jù)頁(yè)。示例的,當(dāng)該當(dāng)前數(shù)據(jù)頁(yè)Flash0頁(yè)中所記錄的已擦寫(xiě)次數(shù)為一萬(wàn)次,不小于可擦寫(xiě)次數(shù)闊值時(shí),處理器可W將索引值為1的閃存數(shù)據(jù)頁(yè)Flash1頁(yè)確定為新的可用數(shù)據(jù)頁(yè)。[0092]步驟2056、將接收到的可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該新的可用數(shù)據(jù)頁(yè)的數(shù)據(jù)存儲(chǔ)區(qū)域。執(zhí)行步驟2057。[0093]處理器確定新的可用數(shù)據(jù)頁(yè)后,即可將接收到的可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該新的可用數(shù)據(jù)頁(yè)。例如,當(dāng)Flash0頁(yè)中的可擦寫(xiě)次數(shù)達(dá)到一萬(wàn)次之后,可W將接收到的可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至Flash1頁(yè)中。因此,可W避免當(dāng)閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)達(dá)到可擦寫(xiě)次數(shù)闊值后,繼續(xù)將閃存數(shù)據(jù)寫(xiě)入至該閃存數(shù)據(jù)頁(yè)而導(dǎo)致的數(shù)據(jù)寫(xiě)入失敗的現(xiàn)象,保證了閃存數(shù)據(jù)頁(yè)存儲(chǔ)閃存數(shù)據(jù)時(shí)的可靠性。[0094]步驟2057、將該新的可用數(shù)據(jù)頁(yè)的狀態(tài)存儲(chǔ)區(qū)域中記錄的狀態(tài)標(biāo)識(shí)更改為有效狀態(tài),將該新的可用數(shù)據(jù)頁(yè)的擦寫(xiě)次數(shù)存儲(chǔ)區(qū)域中記錄的已擦寫(xiě)次數(shù)增加1。[0095]在本發(fā)明實(shí)施例中,處理器為可寫(xiě)區(qū)域分配多個(gè)閃存數(shù)據(jù)頁(yè)后,該多個(gè)閃存數(shù)據(jù)頁(yè)在初始狀態(tài)下,只有索引值為0的閃存數(shù)據(jù)頁(yè)中所記錄的狀態(tài)標(biāo)識(shí)為有效狀態(tài),已擦寫(xiě)次數(shù)為1;其他閃存數(shù)據(jù)頁(yè)中所記錄的狀態(tài)標(biāo)識(shí)均為無(wú)效狀態(tài),已擦寫(xiě)次數(shù)均為0。當(dāng)某個(gè)閃存數(shù)據(jù)頁(yè)被確定為當(dāng)前數(shù)據(jù)頁(yè)后,在向該當(dāng)前數(shù)據(jù)頁(yè)中寫(xiě)入可寫(xiě)區(qū)域數(shù)據(jù)時(shí),需要將該當(dāng)前數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)更改為有效狀態(tài),W便處理器再次上電時(shí),可W再次將該閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè),進(jìn)而可W繼續(xù)向該當(dāng)前數(shù)據(jù)頁(yè)寫(xiě)入可寫(xiě)區(qū)域數(shù)據(jù)。[0096]需要說(shuō)明的是,上述步驟2056和步驟2057中所指示的方法的具體實(shí)現(xiàn)過(guò)程可W參考上述步驟2052和步驟2053中的描述,本發(fā)明實(shí)施例對(duì)此不再重復(fù)寶述。[0097]通過(guò)上述步驟201至步驟205,完成了對(duì)當(dāng)前數(shù)據(jù)頁(yè)的確定W及閃存數(shù)據(jù)的存儲(chǔ),由于該當(dāng)前數(shù)據(jù)頁(yè)是從該N個(gè)閃存數(shù)據(jù)頁(yè)中篩選出的滿(mǎn)足數(shù)據(jù)寫(xiě)入條件的閃存數(shù)據(jù)頁(yè),因此可W保證閃存數(shù)據(jù)的正確寫(xiě)入。[0098]步驟206、當(dāng)接收到讀取可寫(xiě)區(qū)域數(shù)據(jù)的指令時(shí),將該當(dāng)前數(shù)據(jù)頁(yè)確定為待讀取數(shù)據(jù)頁(yè)。[0099]當(dāng)接收到讀取可寫(xiě)區(qū)域數(shù)據(jù)的指令時(shí),處理器從用于記錄可寫(xiě)區(qū)域數(shù)據(jù)的N個(gè)閃存數(shù)據(jù)頁(yè)中獲取當(dāng)前數(shù)據(jù)頁(yè),將該當(dāng)前數(shù)據(jù)頁(yè)確定為待讀取數(shù)據(jù)頁(yè)。[0100]步驟207、讀取該待讀取數(shù)據(jù)頁(yè)中記錄的閃存數(shù)據(jù)。[0101]示例的,若當(dāng)前用于記錄用戶(hù)可寫(xiě)區(qū)域數(shù)據(jù)的當(dāng)前數(shù)據(jù)頁(yè)為Flash0頁(yè),則處理器可W將該Flash0頁(yè)確定為待讀取數(shù)據(jù)頁(yè),并直接讀取該Flash0中記錄的閃存數(shù)據(jù)。[0102]綜上所述,本發(fā)明實(shí)施例提供了一種光模塊中閃存數(shù)據(jù)的寫(xiě)入方法,處理器將Flash中為可寫(xiě)區(qū)域分配的存儲(chǔ)區(qū)域劃分為了N個(gè)閃存數(shù)據(jù)頁(yè),其中每個(gè)閃存數(shù)據(jù)頁(yè)具有一定的可擦寫(xiě)次數(shù)闊值,由于可寫(xiě)區(qū)域數(shù)據(jù)的存儲(chǔ)是按頁(yè)操作的,即可寫(xiě)區(qū)域數(shù)據(jù)的擦寫(xiě)操作只會(huì)增加當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù),而不會(huì)影響其他閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù),因此為該可寫(xiě)區(qū)域分配的N個(gè)閃存數(shù)據(jù)頁(yè)的總可擦寫(xiě)次數(shù)較高,能夠滿(mǎn)足可寫(xiě)區(qū)域所要求的擦寫(xiě)次數(shù)。并且在可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入的過(guò)程中,當(dāng)該當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)超過(guò)可擦寫(xiě)次數(shù)闊值后,處理器可W將該當(dāng)前數(shù)據(jù)頁(yè)下一頁(yè)的閃存數(shù)據(jù)頁(yè)作為新的可用數(shù)據(jù)頁(yè),從而有效避免了因當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)超過(guò)可擦寫(xiě)次數(shù)闊值而導(dǎo)致的可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入失敗的現(xiàn)象,提高了閃存數(shù)據(jù)寫(xiě)入的可靠性。[0103]需要說(shuō)明的是,本發(fā)明實(shí)施例提供的光模塊中閃存數(shù)據(jù)的寫(xiě)入方法的步驟的先后順序可W進(jìn)行適當(dāng)調(diào)整,步驟也可W根據(jù)情況進(jìn)行相應(yīng)增減。任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明掲露的技術(shù)范圍內(nèi),可輕易想到變化的方法,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi),因此不再寶述。[0104]圖3-1是本發(fā)明實(shí)施例提供的一種光模塊中閃存數(shù)據(jù)的寫(xiě)入裝置的結(jié)構(gòu)示意圖,該光模塊中的存儲(chǔ)區(qū)域可W包括只讀區(qū)域和可寫(xiě)區(qū)域,參考圖3-1,該裝置可W包括:[0105]確定單元301,用于在處理器上電時(shí),從N個(gè)閃存數(shù)據(jù)頁(yè)中確定當(dāng)前用于記錄可寫(xiě)區(qū)域數(shù)據(jù)的當(dāng)前數(shù)據(jù)頁(yè),該N個(gè)閃存數(shù)據(jù)頁(yè)是為該可寫(xiě)區(qū)域分配的,該N為大于或等于2的整數(shù),該可寫(xiě)區(qū)域數(shù)據(jù)為用戶(hù)寫(xiě)入的閃存數(shù)據(jù)。[0106]寫(xiě)入單元302,用于當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),將該可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè)。[0107]綜上所述,本發(fā)明實(shí)施例提供了一種光模塊中閃存數(shù)據(jù)的寫(xiě)入裝置,處理器將Flash中為可寫(xiě)區(qū)域分配的存儲(chǔ)區(qū)域劃分為了N個(gè)閃存數(shù)據(jù)頁(yè),其中每個(gè)閃存數(shù)據(jù)頁(yè)具有一定的可擦寫(xiě)次數(shù)闊值,由于可寫(xiě)區(qū)域數(shù)據(jù)的存儲(chǔ)是按頁(yè)操作的,即可寫(xiě)區(qū)域數(shù)據(jù)的擦寫(xiě)操作只會(huì)增加當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù),而不會(huì)影響其他閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù),因此為該可寫(xiě)區(qū)域分配的N個(gè)閃存數(shù)據(jù)頁(yè)的總可擦寫(xiě)次數(shù)較高,能夠滿(mǎn)足可寫(xiě)區(qū)域所要求的擦寫(xiě)次數(shù),因此提高了可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè)的可靠性。[0108]圖3-2是本發(fā)明實(shí)施例提供的另一種光模塊中閃存數(shù)據(jù)的寫(xiě)入裝置的結(jié)構(gòu)示意圖,參考圖3-2,該裝置可W包括:[0109]確定單元301,用于在處理器上電時(shí),從N個(gè)閃存數(shù)據(jù)頁(yè)中確定當(dāng)前用于記錄可寫(xiě)區(qū)域數(shù)據(jù)的當(dāng)前數(shù)據(jù)頁(yè),該N個(gè)閃存數(shù)據(jù)頁(yè)是為該可寫(xiě)區(qū)域分配的,該N為大于或等于2的整數(shù),該可寫(xiě)區(qū)域數(shù)據(jù)為用戶(hù)寫(xiě)入的閃存數(shù)據(jù)。[0110]寫(xiě)入單元302,用于當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),將該可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè)。[0111]可選的,每個(gè)該閃存數(shù)據(jù)頁(yè)對(duì)應(yīng)一個(gè)索引值,該N個(gè)閃存數(shù)據(jù)頁(yè)的索引值按照升序排序且該索引值的取值范圍為0到N-I,該裝置還可W包括:[0112]判斷單元303,用于判斷該當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X是否大于0。[0113]更改單元304,用于當(dāng)該當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X大于0時(shí),將索引值0至索引值X-I所對(duì)應(yīng)的閃存數(shù)據(jù)頁(yè)中,狀態(tài)標(biāo)識(shí)為有效狀態(tài)的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)更改為無(wú)效狀態(tài)。[0114]可選的,每個(gè)該閃存數(shù)據(jù)頁(yè)包括數(shù)據(jù)存儲(chǔ)區(qū)域和狀態(tài)存儲(chǔ)區(qū)域,該狀態(tài)存儲(chǔ)區(qū)域用于記錄該閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí),該狀態(tài)標(biāo)識(shí)包括有效狀態(tài)或無(wú)效狀態(tài);圖3-3是本發(fā)明實(shí)施例提供的一種確定單元的結(jié)構(gòu)示意圖,如圖3-3所示,該確定單元301可W包括:[0115]檢測(cè)子單元3011,用于依次檢測(cè)該N個(gè)閃存數(shù)據(jù)頁(yè)中每個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)。[0116]確定子單元3012,用于當(dāng)檢測(cè)到第n個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài),且第n+1個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài)時(shí),將該第n個(gè)閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè),該n為小于N的整數(shù);或者,當(dāng)檢測(cè)到第N個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài)時(shí),將該第N個(gè)閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè)。[0117]可選的,每個(gè)該閃存數(shù)據(jù)頁(yè)還包括擦寫(xiě)次數(shù)存儲(chǔ)區(qū)域,該擦寫(xiě)存儲(chǔ)區(qū)域用于記錄該閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù);圖3-4是本發(fā)明實(shí)施例提供的一種確定單元的結(jié)構(gòu)示意圖,如圖3-4所示,該寫(xiě)入單元302可W包括:[0118]第一判斷子單元3021,用于當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),判斷該當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)是否小于該當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值。[0119]第一寫(xiě)入子單元3022,用于當(dāng)該當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)小于該當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值時(shí),將該可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該當(dāng)前數(shù)據(jù)頁(yè)的數(shù)據(jù)存儲(chǔ)區(qū)域。[0120]第一記錄子單元3023,用于將該當(dāng)前數(shù)據(jù)頁(yè)的索引存儲(chǔ)區(qū)域中記錄的已擦寫(xiě)次數(shù)增加1。[0121]第二判斷子單元3024,用于當(dāng)該當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)不小于該當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)闊值時(shí),判斷該當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X是否小于N-1。[0122]確定子單元3025,用于當(dāng)該索引值X小于N-I時(shí),將索引值為X+1的閃存數(shù)據(jù)頁(yè)確定為新的可用數(shù)據(jù)頁(yè)。[0123]第二寫(xiě)入子單元3026,用于將該可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至該新的可用數(shù)據(jù)頁(yè)的數(shù)據(jù)存儲(chǔ)區(qū)域。[0124]第二記錄子單元3027,用于將該新的可用數(shù)據(jù)頁(yè)的狀態(tài)存儲(chǔ)區(qū)域中記錄的狀態(tài)標(biāo)識(shí)更改為有效狀態(tài),將該新的可用數(shù)據(jù)頁(yè)的擦寫(xiě)次數(shù)存儲(chǔ)區(qū)域中記錄的已擦寫(xiě)次數(shù)增加1。[0125]綜上所述,本發(fā)明提供了一種光模塊中閃存數(shù)據(jù)的寫(xiě)入裝置,處理器將Flash中為可寫(xiě)區(qū)域分配的存儲(chǔ)區(qū)域劃分為了N個(gè)閃存數(shù)據(jù)頁(yè),其中每個(gè)閃存數(shù)據(jù)頁(yè)具有一定的可擦寫(xiě)次數(shù)闊值,由于可寫(xiě)區(qū)域數(shù)據(jù)的存儲(chǔ)是按頁(yè)操作的,即可寫(xiě)區(qū)域數(shù)據(jù)的擦寫(xiě)操作只會(huì)增加當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù),而不會(huì)影響其他閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù),因此為該可寫(xiě)區(qū)域分配的N個(gè)閃存數(shù)據(jù)頁(yè)的總可擦寫(xiě)次數(shù)較高,能夠滿(mǎn)足可寫(xiě)區(qū)域所要求的擦寫(xiě)次數(shù),并且在可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入的過(guò)程中,當(dāng)該當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)超過(guò)可擦寫(xiě)次數(shù)闊值后,處理器可W將該當(dāng)前數(shù)據(jù)頁(yè)下一頁(yè)的閃存數(shù)據(jù)頁(yè)作為新的可用數(shù)據(jù)頁(yè),從而有效避免了因當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)超過(guò)可擦寫(xiě)次數(shù)闊值而導(dǎo)致的可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入失敗的現(xiàn)象,提高了閃存數(shù)據(jù)寫(xiě)入的可靠性。[0126]所屬領(lǐng)域的技術(shù)人員可W清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的裝置和單元的具體工作過(guò)程,可W參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再寶述。[0127]W上所述僅為本發(fā)明的較佳實(shí)施例,并不用W限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)?!局鳈?quán)項(xiàng)】1.一種光模塊中閃存數(shù)據(jù)的寫(xiě)入方法,其特征在于,所述光模塊中的存儲(chǔ)區(qū)域包括只讀區(qū)域和可寫(xiě)區(qū)域,所述方法包括:處理器上電時(shí),從N個(gè)閃存數(shù)據(jù)頁(yè)中確定當(dāng)前用于記錄可寫(xiě)區(qū)域數(shù)據(jù)的當(dāng)前數(shù)據(jù)頁(yè),所述N個(gè)閃存數(shù)據(jù)頁(yè)是為所述可寫(xiě)區(qū)域分配的,所述N為大于或等于2的整數(shù),所述可寫(xiě)區(qū)域數(shù)據(jù)為用戶(hù)寫(xiě)入的閃存數(shù)據(jù);當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),將所述可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至所述當(dāng)前數(shù)據(jù)頁(yè)。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,每個(gè)所述閃存數(shù)據(jù)頁(yè)包括數(shù)據(jù)存儲(chǔ)區(qū)域和狀態(tài)存儲(chǔ)區(qū)域,所述狀態(tài)存儲(chǔ)區(qū)域用于記錄所述閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí),所述狀態(tài)標(biāo)識(shí)包括有效狀態(tài)或無(wú)效狀態(tài);所述從N個(gè)閃存數(shù)據(jù)頁(yè)中確定當(dāng)前用于記錄可寫(xiě)區(qū)域數(shù)據(jù)的當(dāng)前數(shù)據(jù)頁(yè),包括:依次檢測(cè)所述N個(gè)閃存數(shù)據(jù)頁(yè)中每個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí);當(dāng)檢測(cè)到第η個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài),且第n+1個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài)時(shí),將所述第η個(gè)閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè),所述η為小于N的整數(shù);或者,當(dāng)檢測(cè)到第Ν個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài)時(shí),將所述第Ν個(gè)閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,每個(gè)所述閃存數(shù)據(jù)頁(yè)對(duì)應(yīng)一個(gè)索引值,所述Ν個(gè)閃存數(shù)據(jù)頁(yè)的索引值按照升序排序且所述索引值的取值范圍為0到Ν-1,在所述當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),將所述可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至所述當(dāng)前數(shù)據(jù)頁(yè)之前,所述方法還包括:判斷所述當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X是否大于〇;當(dāng)所述當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X大于〇時(shí),將索引值〇至索引值x-1所對(duì)應(yīng)的閃存數(shù)據(jù)頁(yè)中,狀態(tài)標(biāo)識(shí)為有效狀態(tài)的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)更改為無(wú)效狀態(tài)。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,每個(gè)所述閃存數(shù)據(jù)頁(yè)還包括擦寫(xiě)次數(shù)存儲(chǔ)區(qū)域,所述擦寫(xiě)次數(shù)存儲(chǔ)區(qū)域用于記錄所述閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù);所述當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),將所述可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至所述當(dāng)前數(shù)據(jù)頁(yè),包括:當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),判斷所述當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)是否小于所述當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)閾值;當(dāng)所述當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)小于所述當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)閾值時(shí),將所述可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至所述當(dāng)前數(shù)據(jù)頁(yè)的數(shù)據(jù)存儲(chǔ)區(qū)域;將所述當(dāng)前數(shù)據(jù)頁(yè)的擦寫(xiě)次數(shù)存儲(chǔ)區(qū)域中記錄的已擦寫(xiě)次數(shù)增加1。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述判斷所述當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)是否小于所述當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)閾值之后,所述方法還包括:當(dāng)所述當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)不小于所述當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)閾值時(shí),判斷所述當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X是否小于Ν-1;當(dāng)所述索引值X小于Ν-1時(shí),將索引值為χ+1的閃存數(shù)據(jù)頁(yè)確定為新的可用數(shù)據(jù)頁(yè);將所述可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至所述新的可用數(shù)據(jù)頁(yè)的數(shù)據(jù)存儲(chǔ)區(qū)域;將所述新的可用數(shù)據(jù)頁(yè)的狀態(tài)存儲(chǔ)區(qū)域中記錄的狀態(tài)標(biāo)識(shí)更改為有效狀態(tài),將所述新的可用數(shù)據(jù)頁(yè)的擦寫(xiě)次數(shù)存儲(chǔ)區(qū)域中記錄的已擦寫(xiě)次數(shù)增加1。6.-種光模塊中閃存數(shù)據(jù)的寫(xiě)入裝置,其特征在于,所述光模塊中的存儲(chǔ)區(qū)域包括只讀區(qū)域和可寫(xiě)區(qū)域,所述裝置包括:確定單元,用于在處理器上電時(shí),從N個(gè)閃存數(shù)據(jù)頁(yè)中確定當(dāng)前用于記錄可寫(xiě)區(qū)域數(shù)據(jù)的當(dāng)前數(shù)據(jù)頁(yè),所述N個(gè)閃存數(shù)據(jù)頁(yè)是為所述可寫(xiě)區(qū)域分配的,所述N為大于或等于2的整數(shù),所述可寫(xiě)區(qū)域數(shù)據(jù)為用戶(hù)寫(xiě)入的閃存數(shù)據(jù);寫(xiě)入單元,用于當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),將所述可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至所述當(dāng)前數(shù)據(jù)頁(yè)。7.根據(jù)權(quán)利要求5所述的裝置,其特征在于,每個(gè)所述閃存數(shù)據(jù)頁(yè)包括數(shù)據(jù)存儲(chǔ)區(qū)域和狀態(tài)存儲(chǔ)區(qū)域,所述狀態(tài)存儲(chǔ)區(qū)域用于記錄所述閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí),所述狀態(tài)標(biāo)識(shí)包括有效狀態(tài)或無(wú)效狀態(tài);所述確定單元,包括:檢測(cè)子單元,用于依次檢測(cè)所述N個(gè)閃存數(shù)據(jù)頁(yè)中每個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí);確定子單元,用于當(dāng)檢測(cè)到第η個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài),且第n+1個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為無(wú)效狀態(tài)時(shí),將所述第η個(gè)閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè),所述η為小于Ν的整數(shù);或者,當(dāng)檢測(cè)到第Ν個(gè)閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)為有效狀態(tài)時(shí),將所述第Ν個(gè)閃存數(shù)據(jù)頁(yè)確定為當(dāng)前數(shù)據(jù)頁(yè)。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,每個(gè)所述閃存數(shù)據(jù)頁(yè)對(duì)應(yīng)一個(gè)索引值,所述Ν個(gè)閃存數(shù)據(jù)頁(yè)的索引值按照升序排序且所述索引值的取值范圍為0到Ν-1,所述裝置還包括:判斷單元,用于判斷所述當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X是否大于0;更改單元,用于當(dāng)所述當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X大于0時(shí),將索引值0至索引值χ-1所對(duì)應(yīng)的閃存數(shù)據(jù)頁(yè)中,狀態(tài)標(biāo)識(shí)為有效狀態(tài)的閃存數(shù)據(jù)頁(yè)的狀態(tài)標(biāo)識(shí)更改為無(wú)效狀態(tài)。9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,每個(gè)所述閃存數(shù)據(jù)頁(yè)還包括擦寫(xiě)次數(shù)存儲(chǔ)區(qū)域,所述擦寫(xiě)存儲(chǔ)區(qū)域用于記錄所述閃存數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù);所述寫(xiě)入單元,包括:第一判斷子單元,用于當(dāng)接收到可寫(xiě)區(qū)域數(shù)據(jù)時(shí),判斷所述當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)是否小于所述當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)閾值;第一寫(xiě)入子單元,用于當(dāng)所述當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)小于所述當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)閾值時(shí),將所述可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至所述當(dāng)前數(shù)據(jù)頁(yè)的數(shù)據(jù)存儲(chǔ)區(qū)域;第一記錄子單元,用于將所述當(dāng)前數(shù)據(jù)頁(yè)的索引存儲(chǔ)區(qū)域中記錄的已擦寫(xiě)次數(shù)增加1。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述寫(xiě)入單元,還包括:第二判斷子單元,用于當(dāng)所述當(dāng)前數(shù)據(jù)頁(yè)的已擦寫(xiě)次數(shù)不小于所述當(dāng)前數(shù)據(jù)頁(yè)的可擦寫(xiě)次數(shù)閾值時(shí),判斷所述當(dāng)前數(shù)據(jù)頁(yè)所對(duì)應(yīng)的索引值X是否小于Ν-1;確定子單元,用于當(dāng)所述索引值X小于Ν-1時(shí),將索引值為χ+1的閃存數(shù)據(jù)頁(yè)確定為新的可用數(shù)據(jù)頁(yè);第二寫(xiě)入子單元,用于將所述可寫(xiě)區(qū)域數(shù)據(jù)寫(xiě)入至所述新的可用數(shù)據(jù)頁(yè)的數(shù)據(jù)存儲(chǔ)區(qū)域;第二記錄子單元,用于將所述新的可用數(shù)據(jù)頁(yè)的狀態(tài)存儲(chǔ)區(qū)域中記錄的狀態(tài)標(biāo)識(shí)更改為有效狀態(tài),將所述新的可用數(shù)據(jù)頁(yè)的擦寫(xiě)次數(shù)存儲(chǔ)區(qū)域中記錄的已擦寫(xiě)次數(shù)增加1?!疚臋n編號(hào)】G06F12/02GK106021122SQ201610322019【公開(kāi)日】2016年10月12日【申請(qǐng)日】2016年5月12日【發(fā)明人】徐建帥,吳堂猛【申請(qǐng)人】青島海信寬帶多媒體技術(shù)有限公司