專(zhuān)利名稱(chēng):寫(xiě)入數(shù)據(jù)的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,尤其涉及一種寫(xiě)入數(shù)據(jù)的方法及裝置。
背景技術(shù):
閃存屬于存儲(chǔ)器類(lèi)型的一種,因?yàn)槠渚哂锌梢苿?dòng)性、及保存在閃存上的數(shù)
據(jù)即便是在斷電情況下仍不會(huì)丟失的優(yōu)點(diǎn)而得到迅速的發(fā)展。在閃存中,寫(xiě)Flash 操作只能把Flash中數(shù)據(jù)從T變到"0" (Bit);擦除操作可以把"0"變?yōu)門(mén), 但是擦除操作只能針對(duì)整個(gè)"存儲(chǔ)塊,,為單位進(jìn)行的。例如 一個(gè)存儲(chǔ)塊的大 小一般為256字節(jié)到1024字節(jié)。
用戶(hù)在需要修 文存儲(chǔ)器中某個(gè)存儲(chǔ)塊的數(shù)據(jù)時(shí), 一般是在空存儲(chǔ)塊中寫(xiě)入 需要修改的數(shù)據(jù)。在現(xiàn)有技術(shù)中,通常采用按照一定的順序在一些空存儲(chǔ)塊中 找出一個(gè)空存儲(chǔ)塊的方法,然后再將修改后的數(shù)據(jù)寫(xiě)入到該空存儲(chǔ)塊中并擦除 修改前的數(shù)據(jù)存儲(chǔ)塊里的數(shù)據(jù)。但是每一個(gè)存儲(chǔ)塊可以被寫(xiě)入和擦除的次數(shù)都 是有限的,特別是當(dāng)用戶(hù)頻繁的修改某些數(shù)據(jù)或者當(dāng)空存儲(chǔ)塊個(gè)數(shù)不多時(shí),^艮 容易出現(xiàn)對(duì)序號(hào)排在較前的空存儲(chǔ)塊頻繁地執(zhí)行寫(xiě)入或者擦除操作的情況,久 而久之就會(huì)使這些空存儲(chǔ)塊的受損程度增加,使用壽命降低,甚至可能因此無(wú) 法再次使用該存儲(chǔ)塊,導(dǎo)致存儲(chǔ)器失效。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種寫(xiě)入數(shù)據(jù)的方法及裝置。以便提高該存儲(chǔ)器中存 儲(chǔ)塊能夠使用的次數(shù)。
為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案 一種寫(xiě)入數(shù)據(jù)的方法,包括 接收到寫(xiě)入新數(shù)據(jù)的指令; 定位需要修改的數(shù)據(jù)所在的數(shù)據(jù)存儲(chǔ)塊; 從所有的存儲(chǔ)塊中隨機(jī)選出 一個(gè)存儲(chǔ)塊; 判斷所述隨機(jī)選出的存儲(chǔ)塊是否為空存儲(chǔ)塊;如果是,將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新數(shù)據(jù),將所述更新
數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊中;
如果否,則先將所述隨機(jī)選出的存儲(chǔ)塊進(jìn)行處理成空存儲(chǔ)塊,然后將所述 數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新數(shù)據(jù),將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)
塊中;
擦除定位到的數(shù)據(jù)存儲(chǔ)塊內(nèi)存儲(chǔ)的數(shù)據(jù),使該數(shù)據(jù)存儲(chǔ)塊為空存儲(chǔ)塊。
一種寫(xiě)入數(shù)據(jù)的裝置,包括
接收模塊,用于接收到寫(xiě)入新數(shù)據(jù)的指令;
定位模塊,用于定位需要修改的數(shù)據(jù)所在的數(shù)據(jù)存儲(chǔ)塊;
選出模塊,用于從所有的存儲(chǔ)塊中隨機(jī)選出一個(gè)存儲(chǔ)塊;
判斷模塊,用于判斷所述隨機(jī)選出的存儲(chǔ)塊是否為空存儲(chǔ)塊;
寫(xiě)入模塊,用于當(dāng)判斷模塊判斷是時(shí),將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)
結(jié)合為更新數(shù)據(jù),將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊中;
所述寫(xiě)入模塊還用于當(dāng)判斷模塊判斷否時(shí),先將所述隨機(jī)選出的存儲(chǔ)塊進(jìn)
行處理成空存儲(chǔ)塊,然后將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新數(shù)據(jù),
將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊中;
擦除模塊,用于擦除所述定位到的數(shù)據(jù)存儲(chǔ)塊內(nèi)存儲(chǔ)的數(shù)據(jù),使該數(shù)據(jù)存 儲(chǔ)塊為空存儲(chǔ)塊。
本發(fā)明實(shí)施例提供的數(shù)據(jù)寫(xiě)入的方法及裝置具有如下有益效果通過(guò)釆用 隨機(jī)選取存儲(chǔ)塊的技術(shù)方案,取得了使存儲(chǔ)器中存儲(chǔ)塊使用的受損程度能夠到 達(dá)平衡,并降低了單個(gè)存儲(chǔ)塊受損程度的有益效果。同時(shí)提高了存儲(chǔ)器中存儲(chǔ) 塊的可使用次數(shù),也相當(dāng)于延長(zhǎng)了該存儲(chǔ)器的使用壽命。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施 例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述 中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付 出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例1提供的空存儲(chǔ)塊的結(jié)構(gòu)示意圖2是本發(fā)明實(shí)施例1提供的有記錄的空存儲(chǔ)塊的結(jié)構(gòu)示意圖3是本發(fā)明實(shí)施例l提供的數(shù)據(jù)存儲(chǔ)塊的結(jié)構(gòu)示意圖4是本發(fā)明實(shí)施例1寫(xiě)入數(shù)據(jù)的方法的流程圖5是本發(fā)明實(shí)施例2 —種優(yōu)選的寫(xiě)入數(shù)據(jù)的方法的流程圖6是本發(fā)明實(shí)施例3寫(xiě)入數(shù)據(jù)的裝置的框圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清 楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是 全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造 性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例l
本實(shí)施例具體描述當(dāng)對(duì)寫(xiě)入數(shù)據(jù)的方法,如圖4所示,該方法包括如下步
驟
為了闡述方便,在下列實(shí)施例中假設(shè)閃存存儲(chǔ)區(qū)的地址為 0x00000000-0x00007800,共0x78個(gè)存儲(chǔ)塊,每塊0x100個(gè)字節(jié)。每個(gè)塊的首 字節(jié)用來(lái)標(biāo)記該存儲(chǔ)塊的邏輯塊號(hào)。根據(jù)存儲(chǔ)塊首字節(jié)的取值不同,本實(shí)施例 中把存儲(chǔ)塊分為2種類(lèi)型的存儲(chǔ)塊
空存儲(chǔ)塊首字節(jié)是OxFF的存儲(chǔ)塊。如果空存儲(chǔ)塊的其他所有字節(jié)的值都是 OxFF,這樣的空存儲(chǔ)塊隨時(shí)可以寫(xiě)入數(shù)據(jù),如圖l所示;否則需要先將其他字 節(jié)擦除為0xFF。特別地,把不能直接寫(xiě)入數(shù)據(jù)的空存儲(chǔ)塊稱(chēng)為"有記錄的空存 儲(chǔ)塊",如圖2所示。
數(shù)據(jù)存儲(chǔ)塊如圖3所示,首字節(jié)的值的范圍在0x01 0x78以?xún)?nèi)的存儲(chǔ)塊。數(shù) 據(jù)存儲(chǔ)塊中首字節(jié)之外的區(qū)域中的數(shù)據(jù)都被認(rèn)為是有效的數(shù)據(jù)。
8101, 接收到寫(xiě)入新數(shù)據(jù)的指令。
102,定位需要修改的數(shù)據(jù)所在的數(shù)據(jù)存儲(chǔ)塊。
找某個(gè)邏輯塊號(hào)為X的數(shù)據(jù)存儲(chǔ)塊的具體操作為令一個(gè)指針P = 0x00000000,判斷P所指向的字節(jié)的值是否為X。如果是,則該數(shù)據(jù)存儲(chǔ)塊為 所找的數(shù)據(jù)存儲(chǔ)塊。如果不是,P=P+0xl00繼續(xù)查找。由于每個(gè)存儲(chǔ)塊的大小 為0x100個(gè)字節(jié),所以P總是指向存儲(chǔ)塊的首字節(jié)。
103,從所有的存儲(chǔ)塊中隨機(jī)選出一個(gè)存儲(chǔ)塊。
在本實(shí)施例中,從所有存儲(chǔ)塊中隨機(jī)選擇一個(gè)存儲(chǔ)塊為生成一個(gè)不大于所 有存儲(chǔ)塊總數(shù)的隨機(jī)數(shù),將該隨機(jī)數(shù)作為物理塊號(hào)定位存儲(chǔ)塊的地址。
假設(shè)存儲(chǔ)塊的個(gè)數(shù)為B就是說(shuō)這個(gè)隨機(jī)數(shù)的范圍可以是B,也可以是與B 相關(guān)的一個(gè)函數(shù)f(B)。比如B-IO,則在本實(shí)施例中可以產(chǎn)生一個(gè)1~10以?xún)?nèi)的 隨機(jī)整數(shù)C。 (1<=C<=10),也可以產(chǎn)生一個(gè)1~5*10以?xún)?nèi)的隨機(jī)整數(shù)。具體的, 本實(shí)施例中采取的是第一種方法,即產(chǎn)生一個(gè)l B之間的隨機(jī)數(shù)C。
具體的操作為在內(nèi)存開(kāi)辟一個(gè)局部變量N3 = 0,然后令一個(gè)指針P從 0x00000000開(kāi)始,到0x00007800結(jié)束,P的步長(zhǎng)是0x100,令P-P+0x100,使 N3=N3+1;當(dāng)N3二C的時(shí)候,P所對(duì)應(yīng)的存儲(chǔ)塊即為所需的隨機(jī)選出的存儲(chǔ)塊。
104,判斷所述隨機(jī)選出的存儲(chǔ)塊是否為空存儲(chǔ)塊,如果是,執(zhí)行步驟105,
如果否,則將所述隨機(jī)選出的存儲(chǔ)塊先進(jìn)行處理成空存儲(chǔ)塊,然后再執(zhí)行 步驟105。
具體的判斷該存儲(chǔ)塊是否為空存儲(chǔ)塊,即判斷該存儲(chǔ)塊的首字節(jié)是否是 OxFF,如果是,則說(shuō)明該存儲(chǔ)塊是空存儲(chǔ)塊,則可以直接執(zhí)行步驟105,; 判斷所述隨機(jī)選出的存儲(chǔ)塊不是空存儲(chǔ)塊,即判斷該空存儲(chǔ)塊的首字節(jié)在 0x01-0x78范圍內(nèi),則需要將所述隨機(jī)選出的存儲(chǔ)塊進(jìn)行處理,具體包括 從當(dāng)前隨機(jī)選出的存儲(chǔ)塊向后或者向前依次查找,找到一個(gè)空存儲(chǔ)塊,將所述 空存儲(chǔ)塊作為一個(gè)臨時(shí)的空存儲(chǔ)塊,然后將隨機(jī)選出的存儲(chǔ)塊的數(shù)據(jù)寫(xiě)入該空 存儲(chǔ)塊中,再將所述隨機(jī)選出的存儲(chǔ)塊擦除為空存儲(chǔ)塊。其中,在將隨機(jī)選出 的存儲(chǔ)塊的數(shù)據(jù)寫(xiě)入該空存儲(chǔ)塊中,先寫(xiě)入數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)區(qū)數(shù)據(jù),然后再寫(xiě)入塊號(hào)。如果在寫(xiě)入過(guò)程中發(fā)生掉電,導(dǎo)致寫(xiě)入數(shù)據(jù)不全,則所述空存儲(chǔ)塊 處于"有記錄的空存儲(chǔ)塊"狀態(tài),不會(huì)錯(cuò)誤地變成可用的數(shù)據(jù)存儲(chǔ)塊。相應(yīng)的, 在將隨機(jī)選出的存儲(chǔ)塊的數(shù)據(jù)寫(xiě)入該空存儲(chǔ)塊之前,還需要判斷所述空存儲(chǔ)塊 的狀態(tài)。如果所述空存儲(chǔ)塊處于"有記錄的空存儲(chǔ)塊"狀態(tài),即不能直接寫(xiě)入 數(shù)據(jù),則先將所述空存儲(chǔ)塊擦除為可以寫(xiě)入數(shù)據(jù)的空存儲(chǔ)塊,再寫(xiě)入數(shù)據(jù)。
105,將步驟102中的數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合,寫(xiě)入所述隨機(jī)選出 的存儲(chǔ)塊中。
在本步驟中,將步驟102中的數(shù)據(jù)存儲(chǔ)塊的彩:據(jù)與新數(shù)據(jù)結(jié)合,寫(xiě)入所述 空存儲(chǔ)塊中為先將步驟102中的數(shù)據(jù)存儲(chǔ)塊的lt據(jù)讀入內(nèi)存,將所述數(shù)據(jù)存 儲(chǔ)塊的邏輯塊號(hào)不變,將數(shù)據(jù)區(qū)的數(shù)據(jù)修改為新數(shù)據(jù),即將數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù) 和新數(shù)據(jù)結(jié)合生成更新數(shù)據(jù)。
在將更新數(shù)據(jù)寫(xiě)入空存儲(chǔ)塊時(shí),優(yōu)選的,先寫(xiě)入更新數(shù)據(jù)再寫(xiě)入邏輯塊號(hào)。 避免在寫(xiě)入過(guò)程中發(fā)生掉電,導(dǎo)致寫(xiě)入數(shù)據(jù)不全,使所述空存儲(chǔ)塊處于"有記 錄的空存儲(chǔ)塊"狀態(tài)。并且該有記錄的空存儲(chǔ)塊也不會(huì)錯(cuò)誤地變成可用的數(shù)據(jù) 存儲(chǔ)塊。同樣,相應(yīng)的,在步驟105即在寫(xiě)入空存儲(chǔ)塊之前,還需要判斷所述 空存儲(chǔ)塊的狀態(tài)。如果該空存儲(chǔ)塊處于"有記錄的空存儲(chǔ)塊"狀態(tài),則先將所 述空存儲(chǔ)塊擦除為可以直接寫(xiě)入數(shù)據(jù)的空存儲(chǔ)塊,再寫(xiě)入數(shù)據(jù)。 106,擦除定位到的數(shù)據(jù)存儲(chǔ)塊成為空存儲(chǔ)塊。
在本步驟中,具體的操作為將該lt據(jù)存儲(chǔ)塊的所有字節(jié)變?yōu)镺xFF。
107,結(jié)束流程。
在現(xiàn)有技術(shù)中,由于是按順序在存儲(chǔ)器的空存儲(chǔ)塊中查找空存儲(chǔ)塊,所以 容易因?yàn)閷?duì)某些存儲(chǔ)塊過(guò)度執(zhí)行擦除和寫(xiě)入操作而導(dǎo)致存儲(chǔ)塊受損,甚至不能 使用。本實(shí)施例所提供的方案,通過(guò)采用隨機(jī)數(shù)對(duì)查找到存儲(chǔ)塊執(zhí)行寫(xiě)入操作 的技術(shù)方案,克服了現(xiàn)有技術(shù)中因?yàn)椴糠执鎯?chǔ)塊的受損過(guò)度,導(dǎo)致存儲(chǔ)器容量 變小的技術(shù)問(wèn)題,進(jìn)而取得了使存儲(chǔ)器中各個(gè)存儲(chǔ)塊的受損程度得到了均衡, 并提高存儲(chǔ)器中存儲(chǔ)塊可使用次數(shù)的有益效杲。
實(shí)施例2本實(shí)施例具體描述一種優(yōu)選的寫(xiě)入數(shù)據(jù)的方法,如圖5所示,該方法包括: 為了闡述方便,在下列實(shí)施例中假設(shè)閃存存儲(chǔ)區(qū)的地址為 0x00000000 0x00007800,共0x78個(gè)存儲(chǔ)塊,每塊0x100個(gè)字節(jié)。每個(gè)塊的首 字節(jié)用來(lái)標(biāo)記該存儲(chǔ)塊的邏輯塊號(hào)。根據(jù)存儲(chǔ)塊首字節(jié)的取值不同,本實(shí)施例 中把存儲(chǔ)塊分為2種類(lèi)型的存儲(chǔ)塊
空存儲(chǔ)塊首字節(jié)是0xFF的存儲(chǔ)塊。如果空存儲(chǔ)塊的其他所有字節(jié)的值都是 0xFF,這樣的空存儲(chǔ)塊隨時(shí)可以寫(xiě)入數(shù)據(jù),如圖l所示;否則需要先將其他字 節(jié)擦除為0xFF。特別地,把不能直接寫(xiě)入數(shù)據(jù)的空存儲(chǔ)塊稱(chēng)為"有記錄的空存 儲(chǔ)塊",如圖2所示。
數(shù)據(jù)存儲(chǔ)塊如圖3所示,首字節(jié)的值的范圍在0x01-0x78以?xún)?nèi)的存儲(chǔ)塊。數(shù)
據(jù)存儲(chǔ)塊中首字節(jié)之外的區(qū)域中的數(shù)據(jù)都被認(rèn)為是有效的數(shù)據(jù)。
201,接收到寫(xiě)入新數(shù)據(jù)的指令。
202,定位需要修改的數(shù)據(jù)所在的數(shù)據(jù)存儲(chǔ)塊。 203,從所有的存儲(chǔ)塊中隨機(jī)選出一個(gè)存儲(chǔ)塊。
在本實(shí)施例中,從所有存儲(chǔ)塊中隨機(jī)選擇一個(gè)存儲(chǔ)塊為生成一個(gè)不大于所 有存儲(chǔ)塊總數(shù)的隨機(jī)數(shù),利用該隨機(jī)數(shù)作為物理塊號(hào)定位存儲(chǔ)塊的地址。
假設(shè)存儲(chǔ)塊的個(gè)數(shù)為B,如果B40,在本實(shí)施例中可以產(chǎn)生一個(gè)1~10以 內(nèi)的隨機(jī)整數(shù)C ( 1<= C<=10 ),即產(chǎn)生一個(gè)1 ~ B之間的隨機(jī)數(shù)C。
令一個(gè)指針P /人0x00000000開(kāi)始,到0x00007800結(jié)束,P的步長(zhǎng)是0x100, 即P=C*0xl00, P所對(duì)應(yīng)的存儲(chǔ)塊即為所需的隨機(jī)選出的存儲(chǔ)塊。
204,判斷所述隨機(jī)選出的存儲(chǔ)塊是否為步驟202的數(shù)據(jù)存儲(chǔ)塊,如果是, 則返回執(zhí)行步驟203;如果否,則執(zhí)行步驟205。
具體的在本步驟中判斷該隨機(jī)選出的存儲(chǔ)塊是否與步驟202的數(shù)據(jù)存儲(chǔ)塊 的首字節(jié)相同,如果相同,則說(shuō)明該隨機(jī)選出的存儲(chǔ)塊為步驟202的數(shù)據(jù)存儲(chǔ) 塊,此時(shí),需要重新從所有存儲(chǔ)塊中隨機(jī)選出一個(gè)存儲(chǔ)塊,即再次執(zhí)行步驟203。
205,判斷該隨機(jī)選出的存儲(chǔ)塊是否為空存儲(chǔ)塊,如果是,直接執(zhí)行步驟206,如果否,則將該隨機(jī)選出的存儲(chǔ)塊進(jìn)行處理,然后再執(zhí)行步驟206。 判定所述隨機(jī)選出的存儲(chǔ)塊不是空存儲(chǔ)塊后,即將所述隨機(jī)選出的存儲(chǔ)塊 進(jìn)行處理具體包括從當(dāng)前隨機(jī)選出的存儲(chǔ)塊向后或者向前依次查找,找到一個(gè) 空存儲(chǔ)塊,作為臨時(shí)的空存儲(chǔ)塊,然后將所述隨機(jī)選出的存儲(chǔ)塊的數(shù)據(jù)寫(xiě)入所 述臨時(shí)的空存儲(chǔ)塊中,在將隨機(jī)選出的存儲(chǔ)塊的數(shù)據(jù)寫(xiě)入所述臨時(shí)的空存儲(chǔ)塊 之前,需要先判斷還需要判斷所述空存儲(chǔ)塊的狀態(tài),如果該空存儲(chǔ)塊處于"有 記錄的空存儲(chǔ)塊"狀態(tài),則先將所述空存儲(chǔ)塊擦除為可以直接寫(xiě)入數(shù)據(jù)的空存 儲(chǔ)塊,再寫(xiě)入數(shù)據(jù)。然后再將所述隨機(jī)選出的存儲(chǔ)塊擦除為空存儲(chǔ)塊。
206,將步驟202的數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合,再寫(xiě)入該隨機(jī)選出的 存儲(chǔ)塊中。
將步驟202中的數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合,再寫(xiě)入該隨機(jī)選出的存 儲(chǔ)塊中為先將步驟202中的數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)讀入內(nèi)存,在內(nèi)存中,邏輯塊 號(hào)不變,將數(shù)據(jù)區(qū)的數(shù)據(jù)修改為新數(shù)據(jù),然后再將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)和新 數(shù)據(jù)結(jié)合為更新數(shù)據(jù),在寫(xiě)入空存儲(chǔ)塊時(shí),先寫(xiě)入更新lt據(jù)再寫(xiě)入邏輯塊號(hào)。
在將更新數(shù)據(jù)寫(xiě)入空存儲(chǔ)塊時(shí),優(yōu)選的,先寫(xiě)入更新數(shù)據(jù)再寫(xiě)入邏輯塊號(hào)。 避免在寫(xiě)入過(guò)程中發(fā)生掉電,導(dǎo)致寫(xiě)入數(shù)據(jù)不全,使所述空存儲(chǔ)塊處于"有記 錄的空存儲(chǔ)塊"狀態(tài)。并且該有記錄的空存儲(chǔ)塊也不會(huì)錯(cuò)誤地變成可用的數(shù)據(jù) 存儲(chǔ)塊。同樣,相應(yīng)的,在步驟105即在寫(xiě)入空存儲(chǔ)塊之前,還需要判斷所述 空存儲(chǔ)塊的狀態(tài)。如果該空存儲(chǔ)塊處于"有記錄的空存儲(chǔ)塊"狀態(tài),則先將所 述空存儲(chǔ)塊擦除為可以直接寫(xiě)入數(shù)據(jù)的空存儲(chǔ)塊,再寫(xiě)入數(shù)據(jù)。
207,將步驟202中的數(shù)據(jù)存儲(chǔ)塊擦除為空存儲(chǔ)塊。
208,結(jié)束流程。
在本實(shí)施例中,步驟204-206還可以為以下步驟
204',判斷所述隨機(jī)選出的存儲(chǔ)塊是否為步驟202的數(shù)據(jù)存儲(chǔ)塊,如果是, 則選擇步驟202的數(shù)據(jù)存儲(chǔ)塊的下一個(gè)存儲(chǔ)塊;如果否,則執(zhí)行步驟205'。
在本步驟中判斷所述數(shù)據(jù)存儲(chǔ)塊為步驟202的數(shù)據(jù)存儲(chǔ)塊后還可以選擇步 驟202的數(shù)據(jù)存儲(chǔ)塊的上一個(gè)存儲(chǔ)塊。
205,,判斷該存儲(chǔ)塊是否為空存儲(chǔ)塊,如果是,直接執(zhí)行步驟206,;如果否,則將該存儲(chǔ)塊進(jìn)行處理,然后再執(zhí)行步驟206'。
判定所述隨機(jī)選出的存儲(chǔ)塊不是空存儲(chǔ)塊后,將所述隨機(jī)選出的存儲(chǔ)塊進(jìn) 行處理具體包括從當(dāng)前隨機(jī)選出的存儲(chǔ)塊向后或者向前依次查找,找到一個(gè)臨 時(shí)的空存儲(chǔ)塊,然后將所述隨機(jī)選出的存儲(chǔ)塊的數(shù)據(jù)寫(xiě)入所述臨時(shí)的空存儲(chǔ)塊 中,再將所述隨機(jī)選出的存儲(chǔ)塊擦除為空存儲(chǔ)塊。另外,在將隨機(jī)選出的存儲(chǔ) 塊的數(shù)據(jù)寫(xiě)入所述臨時(shí)的空存儲(chǔ)塊之前,需要先判斷還需要判斷所述空存儲(chǔ)塊 的狀態(tài),如果該空存儲(chǔ)塊處于"有記錄的空存儲(chǔ)塊"狀態(tài),則先將所述空存儲(chǔ) 塊擦除為可以直接寫(xiě)入數(shù)據(jù)的空存儲(chǔ)塊,再寫(xiě)入數(shù)據(jù)。
206,,將步驟202的數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合,再寫(xiě)入該存儲(chǔ)塊中。
本實(shí)施例提供的寫(xiě)入數(shù)據(jù)的方法及裝置,與現(xiàn)有技術(shù)中按順序在存儲(chǔ)器的 存儲(chǔ)塊中選取空存儲(chǔ)塊相比,采用了隨機(jī)在存儲(chǔ)器的存儲(chǔ)塊中選取存儲(chǔ)塊的技 術(shù)方案,克服了現(xiàn)有技術(shù)中容易出現(xiàn)對(duì)序號(hào)排在較前的空存儲(chǔ)塊頻繁地執(zhí)行寫(xiě) 入或者擦除操作的情況,進(jìn)而達(dá)到了可使各個(gè)存儲(chǔ)塊的受損程度得到平衡,降 低單個(gè)存儲(chǔ)塊的受損程度的技術(shù)效果。在提供了存儲(chǔ)器中存儲(chǔ)塊可使用次數(shù)的 同時(shí),也相當(dāng)于延長(zhǎng)了該存儲(chǔ)器的使用壽命。
實(shí)施例3
本實(shí)施例公開(kāi)一種寫(xiě)入數(shù)據(jù)的裝置,如圖6所示,該裝置包括接收模塊 61,定位模塊62,選出模塊63,判斷模塊64,第一判斷模塊67,第一清除模 塊68,寫(xiě)入;^莫塊65,擦除模塊66。
接收模塊61用于接收到寫(xiě)入新數(shù)據(jù)的指令;定位模塊62用于定位需要修 改的數(shù)據(jù)所在的數(shù)據(jù)存儲(chǔ)塊;選出模塊63用于從所有的存儲(chǔ)塊中隨機(jī)選出一個(gè) 存儲(chǔ)塊;判斷模塊64用于判斷所述隨機(jī)選出的存儲(chǔ)塊是否為空存儲(chǔ)塊;寫(xiě)入模 塊65用于當(dāng)判斷模塊64判斷是時(shí),將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合為 更新數(shù)據(jù),將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊中;第一判斷模塊67用于當(dāng)判斷 模塊64判斷所述空存儲(chǔ)塊為是時(shí),判斷所述空存儲(chǔ)塊是否為有記錄的空存儲(chǔ)塊; 第一清除模塊68用于當(dāng)?shù)谝慌袛嗄K判斷67是時(shí),擦除所述有記錄的空存儲(chǔ) 塊中存儲(chǔ)的數(shù)據(jù),使該存儲(chǔ)塊成為空存儲(chǔ)塊。
所述寫(xiě)入模塊65還用于當(dāng)判斷模塊64判斷否時(shí),先將所述隨機(jī)選出的存儲(chǔ)塊進(jìn)行處理成空存儲(chǔ)塊,然后將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新
數(shù)據(jù),將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊中;擦除模塊66用于擦除定位到的數(shù) 據(jù)存儲(chǔ)塊內(nèi)存儲(chǔ)的數(shù)據(jù),使該數(shù)據(jù)存儲(chǔ)塊為空存儲(chǔ)塊。
在本實(shí)施例中定位模塊62定位的數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)包括邏輯塊號(hào)和數(shù)據(jù)區(qū) 數(shù)據(jù),則寫(xiě)入模塊65包括讀取單元651,更新單元652,寫(xiě)入單元653。
讀取單元651,用于將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)讀入內(nèi)存中;更新單元652, 用于在內(nèi)存中將所述數(shù)據(jù)中的數(shù)據(jù)區(qū)數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新數(shù)據(jù);寫(xiě)入單元 653,用于將所述更新數(shù)據(jù)與邏輯塊號(hào)寫(xiě)入空存儲(chǔ)塊中,并且寫(xiě)入模塊65是先 將更新數(shù)據(jù)寫(xiě)入空存儲(chǔ)塊中后,再將邏輯塊號(hào)寫(xiě)入空存儲(chǔ)塊。
進(jìn)一步地,本實(shí)施例中寫(xiě)入^t塊65還包括第一選出單元654,第一寫(xiě)入 單元655,第一擦除單元656,第一判斷單元657,第一清除單元658。
第一選出單元654用于按照預(yù)設(shè)的規(guī)則選出一個(gè)臨時(shí)的空存儲(chǔ)塊;第一寫(xiě) 入單元655用于將所述隨機(jī)選出的存儲(chǔ)塊中的數(shù)據(jù)寫(xiě)入所述臨時(shí)的空存儲(chǔ)塊中; 第一擦除單元656用于將所述隨機(jī)選出的存儲(chǔ)塊擦除為空存儲(chǔ)塊;第一判斷單 元657用于判斷所述臨時(shí)的空存儲(chǔ)塊是否為有記錄的空存儲(chǔ)塊;第一清除單元 658用于當(dāng)所述第一判斷單元判斷是時(shí),將所述有記錄的空存儲(chǔ)塊擦除為空存儲(chǔ) 塊。
并且,在本施例中,第一選出單元654包括相鄰選出子單元6541。相鄰 選出子單元6541用于從所述隨機(jī)選出的存儲(chǔ)塊開(kāi)始,向后依次查找,直到找到 一個(gè)空存儲(chǔ)塊并將所述空存儲(chǔ)塊作為臨時(shí)的空存儲(chǔ)塊;或者相鄰選出子單元 6541用于從所述隨機(jī)選出的存儲(chǔ)塊開(kāi)始,向前依次查找,直到找到一個(gè)空存儲(chǔ) 塊并將所述空存儲(chǔ)塊作為臨時(shí)的空存儲(chǔ)塊。
本實(shí)施例中,選出模塊63包括生成單元631,定位單元632,第二判斷 單元633,重選單元634。
生成單元631用于生成一個(gè)不大于所有存儲(chǔ)塊總數(shù)的隨機(jī)數(shù);定位單元632 用于將該隨機(jī)數(shù)作為物理塊號(hào)定位一個(gè)存儲(chǔ)塊的地址,選擇所述存儲(chǔ)塊;第二 判斷單元633用于判斷隨機(jī)選出的存儲(chǔ)塊是否為需要修改的數(shù)據(jù)所在的數(shù)據(jù)存 儲(chǔ)塊;重選單元634用于當(dāng)判斷單元判斷是時(shí),從所有的存儲(chǔ)塊中重新隨機(jī)選
14擇一個(gè)存儲(chǔ)塊,或重選單元634用于選擇當(dāng)前隨機(jī)選出的存儲(chǔ)塊的下一個(gè)存儲(chǔ) 塊,或重選單元634用于選擇當(dāng)前隨機(jī)選出的存儲(chǔ)塊的上一個(gè)存儲(chǔ)塊。
通過(guò)以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)
明可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但
很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)
上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算
機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤(pán),硬盤(pán)或光盤(pán)等,包
括若干指令用以使得一臺(tái)設(shè)備(可以是筆記本電腦,也可以上閃存等)執(zhí)行本
發(fā)明各個(gè)實(shí)施例所述的方法。
以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于 此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到 變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng) 所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種寫(xiě)入數(shù)據(jù)的方法,其特征在于,包括接收到寫(xiě)入新數(shù)據(jù)的指令;定位需要修改的數(shù)據(jù)所在的數(shù)據(jù)存儲(chǔ)塊;從所有的存儲(chǔ)塊中隨機(jī)選出一個(gè)存儲(chǔ)塊;判斷所述隨機(jī)選出的存儲(chǔ)塊是否為空存儲(chǔ)塊;如果是,將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新數(shù)據(jù),將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊中;如果否,則先將所述隨機(jī)選出的存儲(chǔ)塊進(jìn)行處理成空存儲(chǔ)塊,然后將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新數(shù)據(jù),將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊中;將定位到的數(shù)據(jù)存儲(chǔ)塊擦除為空存儲(chǔ)塊。
2、 根據(jù)權(quán)利要求1所述的寫(xiě)入數(shù)據(jù)的方法,其特征在于,所述數(shù)據(jù)存儲(chǔ)塊 的數(shù)據(jù)包括邏輯塊號(hào)和數(shù)據(jù)區(qū)數(shù)據(jù),則將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合 為更新數(shù)據(jù),將所述更新數(shù)據(jù)寫(xiě)入空存儲(chǔ)塊中包括將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)讀入內(nèi)存中;在內(nèi)存中將所述數(shù)據(jù)中的數(shù)據(jù)區(qū)數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新數(shù)據(jù); 將所述更新數(shù)據(jù)與邏輯塊號(hào)寫(xiě)入空存儲(chǔ)塊中。
3、 根據(jù)權(quán)利要求2所述的寫(xiě)入數(shù)據(jù)的方法,其特征在于,所述將所述更新 數(shù)據(jù)與邏輯塊號(hào)寫(xiě)入空存儲(chǔ)塊中為先將更新數(shù)據(jù)寫(xiě)入空存儲(chǔ)塊中,再將邏輯塊號(hào)寫(xiě)入空存儲(chǔ)塊。
4、 根據(jù)權(quán)利要求1所述的寫(xiě)入數(shù)據(jù)的方法,其特征在于,所述將所述數(shù)據(jù) 存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新數(shù)據(jù),將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊, 在將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊之前還包括判斷所述空存儲(chǔ)塊是否為有記錄的空存儲(chǔ)塊; 如果是,則擦除所述有記錄的空存儲(chǔ)塊為空存儲(chǔ)塊; 如果否,則直接執(zhí)行將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊。
5、 根據(jù)權(quán)利要求1所述的寫(xiě)入數(shù)據(jù)的方法,其特征在于,所述從所有的存儲(chǔ)塊中隨機(jī)選出 一個(gè)存儲(chǔ)塊包括生成一個(gè)不大于所有存儲(chǔ)塊總數(shù)的隨機(jī)數(shù),將所述隨機(jī)數(shù)作為物理塊號(hào)定 位一個(gè)存儲(chǔ)塊的地址,選擇所述存儲(chǔ)塊。
6、 根據(jù)權(quán)利要求l所述的寫(xiě)入數(shù)據(jù)的方法,其特征在于,所述將所述隨機(jī) 選出的存儲(chǔ)塊進(jìn)行處理成空存儲(chǔ)塊包括按照預(yù)設(shè)的規(guī)則選出 一個(gè)臨時(shí)的空存儲(chǔ)塊;將所述隨機(jī)選出的存儲(chǔ)塊中的數(shù)據(jù)寫(xiě)入所述臨時(shí)的空存儲(chǔ)塊中;將所述隨機(jī)選出的存儲(chǔ)塊擦除為空存儲(chǔ)塊。
7、 根據(jù)權(quán)利要求6所述的寫(xiě)入數(shù)據(jù)的方法,其特征在于,所述將所述隨機(jī) 選出的存儲(chǔ)塊中的數(shù)據(jù)寫(xiě)入所述臨時(shí)的空存儲(chǔ)塊中之前,該方法還包括判斷所述臨時(shí)的空存儲(chǔ)塊是否為有記錄的空存儲(chǔ)塊; 如果是,則將所述有記錄的空存儲(chǔ)塊擦除為空存儲(chǔ)塊; 如果否,則直接執(zhí)行將所述隨機(jī)選出的存儲(chǔ)塊中的數(shù)據(jù)寫(xiě)入所述臨時(shí)的空 存儲(chǔ)塊中。
8、 根據(jù)權(quán)利要求7所述的寫(xiě)入數(shù)據(jù)的方法,其特征在于,所述按照預(yù)設(shè)的 規(guī)則選出 一個(gè)臨時(shí)的空存儲(chǔ)塊為從所述隨機(jī)選出的存儲(chǔ)塊開(kāi)始,向后依次查找,直到找到一個(gè)空存儲(chǔ)塊并 將所述空存儲(chǔ)塊作為臨時(shí)的空存儲(chǔ)塊;或者從所述隨機(jī)選出的存儲(chǔ)塊開(kāi)始,向前依次查找,直到找到一個(gè)空存儲(chǔ)塊并 將所述空存儲(chǔ)塊作為臨時(shí)的空存儲(chǔ)塊。
9、 根據(jù)權(quán)利要求1所述的寫(xiě)入數(shù)據(jù)的方法,其特征在于,從所有的存儲(chǔ)塊 中隨機(jī)選出 一個(gè)存儲(chǔ)塊還包括判斷隨機(jī)選出的存儲(chǔ)塊是否為需要修改的數(shù)據(jù)所在的數(shù)據(jù)存儲(chǔ)塊;如果是,則從所有的存儲(chǔ)塊中重新隨機(jī)選擇一個(gè)存儲(chǔ)塊,或選擇當(dāng)前隨機(jī)選出的存儲(chǔ)塊的下一個(gè)存儲(chǔ)塊,或選擇當(dāng)前隨機(jī)選出的存儲(chǔ)塊的上一個(gè)存儲(chǔ)塊;如杲否,則執(zhí)行步驟判斷所述隨機(jī)選出的存儲(chǔ)塊是否為空存儲(chǔ)塊。
10、 一種寫(xiě)入lt據(jù)的裝置,其特征在于,包括接收模塊,用于接收到寫(xiě)入新數(shù)據(jù)的指令;定位模塊,用于定位需要修改的數(shù)據(jù)所在的數(shù)據(jù)存儲(chǔ)塊;選出模塊,用于從所有的存儲(chǔ)塊中隨機(jī)選出一個(gè)存儲(chǔ)塊;判斷模塊,用于判斷所述隨機(jī)選出的存儲(chǔ)塊是否為空存儲(chǔ)塊;寫(xiě)入模塊,用于當(dāng)判斷模塊判斷是時(shí),將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新數(shù)據(jù),將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊中;所述寫(xiě)入模塊還用于當(dāng)判斷模塊判斷否時(shí),先將所述隨機(jī)選出的存儲(chǔ)塊進(jìn)行處理成空存儲(chǔ)塊,然后將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新數(shù)據(jù),將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊中;擦除模塊,用于將定位到的數(shù)據(jù)存儲(chǔ)塊擦除為空存儲(chǔ)塊。
11、 根據(jù)權(quán)利要求10所述的寫(xiě)入數(shù)據(jù)的裝置,其特征在于,所迷定位模塊 定位的數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)包括邏輯塊號(hào)和數(shù)據(jù)區(qū)數(shù)據(jù),則寫(xiě)入模塊包括讀取單元,用于將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)讀入內(nèi)存中; 更新單元,用于在內(nèi)存中將所述數(shù)據(jù)中的數(shù)據(jù)區(qū)數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新 數(shù)據(jù);寫(xiě)入單元,用于將所述更新數(shù)據(jù)與邏輯塊號(hào)寫(xiě)入空存儲(chǔ)塊中。
12、 根據(jù)權(quán)利要求11所述的寫(xiě)入數(shù)據(jù)的裝置,其特征在于,所述寫(xiě)入單元 先將更新數(shù)據(jù)寫(xiě)入空存儲(chǔ)塊中,再將邏輯塊號(hào)寫(xiě)入空存儲(chǔ)塊。
13、 根據(jù)權(quán)利要求IO所述的寫(xiě)入數(shù)據(jù)的裝置,其特征在于,該裝置還包括 第一判斷模塊,用于判斷所述空存儲(chǔ)塊是否為有記錄的空存儲(chǔ)塊; 第一清除模塊,用于當(dāng)?shù)谝慌袛嗄K判斷是時(shí),擦除所述有記錄的空存儲(chǔ)塊為空存儲(chǔ)塊。
14、 根據(jù)權(quán)利要求IO所述的寫(xiě)入數(shù)據(jù)的裝置,其特征在于,所述選出模塊 包括生成單元,用于生成一個(gè)不大于所有存儲(chǔ)塊總數(shù)的隨沖幾數(shù); 定位單元,用于將所述隨機(jī)數(shù)作為物理塊號(hào)定位一個(gè)存儲(chǔ)塊的地址,選擇 所述存儲(chǔ)塊。
15、 根據(jù)權(quán)利要求IO所述的寫(xiě)入數(shù)據(jù)的裝置,其特征在于,所述寫(xiě)入模塊還包括第一選出單元,用于按照預(yù)設(shè)的規(guī)則選出一個(gè)臨時(shí)的空存儲(chǔ)塊; 第一寫(xiě)入單元,用于將所述隨機(jī)選出的存儲(chǔ)塊中的數(shù)據(jù)寫(xiě)入所述臨時(shí)的空存儲(chǔ)塊中;第一擦除單元,用于將所述隨機(jī)選出的存儲(chǔ)塊擦除為空存儲(chǔ)塊。
16、 根據(jù)權(quán)利要求15所述的寫(xiě)入數(shù)據(jù)的裝置,其特征在于,所述寫(xiě)入模塊 還包括第一判斷單元,判斷所述臨時(shí)的空存儲(chǔ)塊是否為有記錄的空存儲(chǔ)塊; 第一清除單元,用于當(dāng)所述第一判斷單元判斷是時(shí),將所述有記錄的空存 儲(chǔ)塊擦除為空存儲(chǔ)塊。
17、 根據(jù)權(quán)利要求15所述的寫(xiě)入數(shù)據(jù)的裝置,其特征在于,所述第一選出 單元包括相鄰選出子單元,用于從所述隨機(jī)選出的存儲(chǔ)塊開(kāi)始,向后依次查找,直 到找到一個(gè)空存儲(chǔ)塊并將所述空存儲(chǔ)塊作為臨時(shí)的空存儲(chǔ)塊;或者所述相鄰選出子單元,用于從所述隨機(jī)選出的存儲(chǔ)塊開(kāi)始,向前依次查找, 直到找到 一個(gè)空存儲(chǔ)塊并將所述空存儲(chǔ)塊作為臨時(shí)的空存儲(chǔ)塊。
18、 根據(jù)權(quán)利要求IO所述的寫(xiě)入數(shù)據(jù)的裝置,其特征在于,選出模塊還包括第二判斷單元,用于判斷隨機(jī)選出的存儲(chǔ)塊是否為需要修改的數(shù)據(jù)所在的 數(shù)據(jù)存儲(chǔ)塊;重選單元,用于當(dāng)所述笫二判斷單元判斷是時(shí),從所有的存儲(chǔ)塊中重新隨 機(jī)選擇一個(gè)存儲(chǔ)塊,或所述重選單元,用于選擇當(dāng)前隨機(jī)選出的存儲(chǔ)塊的下一個(gè)存儲(chǔ)塊,或 所述重選單元,用于選擇當(dāng)前隨機(jī)選出的存儲(chǔ)塊的上一個(gè)存儲(chǔ)塊。
全文摘要
本發(fā)明公開(kāi)了一種寫(xiě)入數(shù)據(jù)的方法及裝置,涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,解決了現(xiàn)有技術(shù)中存儲(chǔ)器中某些存儲(chǔ)塊容易出現(xiàn)受損程度較嚴(yán)重的問(wèn)題。在本發(fā)明中接收到寫(xiě)入新數(shù)據(jù)的指令;定位需要修改的數(shù)據(jù)所在的數(shù)據(jù)存儲(chǔ)塊;從所有的存儲(chǔ)塊中隨機(jī)選出一個(gè)存儲(chǔ)塊;判斷所述隨機(jī)選出的存儲(chǔ)塊是否為空存儲(chǔ)塊;如果是,將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新數(shù)據(jù),將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊中;如果否,則先將所述隨機(jī)選出的存儲(chǔ)塊進(jìn)行處理成空存儲(chǔ)塊,然后將所述數(shù)據(jù)存儲(chǔ)塊的數(shù)據(jù)與新數(shù)據(jù)結(jié)合為更新數(shù)據(jù),將所述更新數(shù)據(jù)寫(xiě)入所述空存儲(chǔ)塊中;將定位到的數(shù)據(jù)存儲(chǔ)塊擦除為空存儲(chǔ)塊。本發(fā)明的實(shí)施例主要應(yīng)用在向存儲(chǔ)器執(zhí)行各種操作時(shí)的場(chǎng)景。
文檔編號(hào)G06F12/02GK101526921SQ20081024705
公開(kāi)日2009年9月9日 申請(qǐng)日期2008年12月31日 優(yōu)先權(quán)日2008年12月31日
發(fā)明者于華章, 舟 陸 申請(qǐng)人:北京飛天誠(chéng)信科技有限公司