專利名稱:在非易失性存儲(chǔ)器件中存儲(chǔ)信息的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)技術(shù),尤其涉及一種在非易失性存儲(chǔ)器件中存儲(chǔ)信息的方法和裝置。
背景技術(shù):
非易失性存儲(chǔ)介質(zhì)在各種智能產(chǎn)品或設(shè)備中是不可或缺的。具有存儲(chǔ)功能的介質(zhì)有很多,EPR0M、EEPR0M、Flash EEPROM等等,每種存儲(chǔ)介質(zhì)根據(jù)其成本和性能運(yùn)用在不同的技術(shù)領(lǐng)域。例如,普通的EEPROM使用靈活,可以單字節(jié)擦除,但大容量的EEPR0M,成本和尺寸都非常聞。因此,在需要進(jìn)行大容量信息存儲(chǔ)時(shí),通過都采用FLASH EEPROM (或簡(jiǎn)稱FLASH)介質(zhì)進(jìn)·行存儲(chǔ)。在使用FLASH進(jìn)行存儲(chǔ)時(shí),通常都是以整個(gè)Block (存儲(chǔ)塊)進(jìn)行操作的例如,需要修改FLASH中存儲(chǔ)的某幾個(gè)字節(jié),則需要擦除這幾個(gè)字節(jié)所在的Block之后,再寫入需要寫入的值。眾所周知,非易失性存儲(chǔ)器的擦除過程比較耗時(shí),如果在此擦除過程中有意外掉電或者Reset等事件發(fā)生,將會(huì)導(dǎo)致整個(gè)Block的值被擦除或者部分擦除,而新寫入的值卻沒有正常寫入,這樣原來(lái)存儲(chǔ)在Flash中的值將不再完整,形成一塊“壞數(shù)據(jù)”區(qū)域。如果有相關(guān)程序使用到上述“壞數(shù)據(jù)”區(qū)域,會(huì)對(duì)整個(gè)程序造成嚴(yán)重的后果,例如程序跑飛或者執(zhí)行錯(cuò)誤,對(duì)相關(guān)產(chǎn)品的穩(wěn)定性造成極大的隱患。為防止上述問題,現(xiàn)有技術(shù)的Flash保存方法中,多是先讀取一塊Block中所有值到RAM區(qū)中備份,然后擦除這塊Block,最后在此Block中寫入最新更新的值以及備份的值。這種方法在Flash擦除Block時(shí)意外斷電,將會(huì)丟失Block中原來(lái)存儲(chǔ)的信息,導(dǎo)致信息丟失。也有些方法是通過在Flash中另外開辟一塊新的Block用于存儲(chǔ)備份信息,當(dāng)往Flash保存時(shí),除了按照上述方法正常擦除、寫入外,同時(shí),在備份區(qū)Block也進(jìn)行如此操作擦除、寫入,當(dāng)其中一塊Block在擦除過程中出現(xiàn)意外掉電時(shí),使用另外一塊備份Block中的信息,從而防止出現(xiàn)意外掉電而引起的信息丟失。這種防止信息丟失的方法雖然可行,但需要同時(shí)擦除、寫入兩塊Block,耗費(fèi)時(shí)間過長(zhǎng)。在很多產(chǎn)品,尤其是光模塊產(chǎn)品應(yīng)用中,需要快速保存一些信息到Flash,因此,兩塊Block同時(shí)擦除、寫入所耗時(shí)間不能滿足要求。綜上所述,現(xiàn)有技術(shù)的在Flash中存儲(chǔ)信息的方法,或者在擦除過程中有意外掉電或者Reset等事件發(fā)生時(shí),將會(huì)導(dǎo)致整個(gè)Block形成“壞數(shù)據(jù)”區(qū)域,或者在存儲(chǔ)信息過程中耗費(fèi)時(shí)間過長(zhǎng)。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供了一種在非易失性存儲(chǔ)器件中存儲(chǔ)信息的方法和裝置,用以在擦除過程中有意外掉電或者Reset等事件發(fā)生時(shí),既能避免形成“壞數(shù)據(jù)”區(qū)域,又不耗費(fèi)過長(zhǎng)時(shí)間進(jìn)行信息存儲(chǔ)。根據(jù)本發(fā)明的一個(gè)方面,提供了一種在非易失性存儲(chǔ)器件中存儲(chǔ)信息的方法,其中所述存儲(chǔ)器件包括兩個(gè)Block :第一 Block或第二 Block,所述方法包括對(duì)第一 Block查空;若判斷出第一 Block不為空,則對(duì)第二 Block查空;若判斷出其中一個(gè)Block為空,則將待存入信息存儲(chǔ)到其中一個(gè)為空的Block中;并對(duì)另一個(gè)Block進(jìn)行擦除操作。進(jìn)一步,在所述將待存入信息存儲(chǔ)到其中一個(gè)為空的Block后,還包括在該Block的簽名區(qū)域?qū)懭牒灻畔?。在該Block的簽名區(qū)域?qū)懭牒灻畔⒑螅€包括在該Block的校驗(yàn)區(qū)域?qū)懭胄r?yàn)信息。在所述將待存入信息存儲(chǔ)到其中一個(gè)為空的Block之前,還包括·判斷第一 Block中的信息是否有效;若第一 Block中的信息有效,則讀取第一Block中的信息作為Block信息;若第一 Block中的信息無(wú)效,則判斷第二 Block中的信息是否有效;若第二 Block中的信息有效,則讀取第二Block中的信息作為Block信息;根據(jù)所述待存入信息修改所述Block信息;以及所述將待存入信息存儲(chǔ)到其中一個(gè)為空的Block具體為將修改后的、攜帶有所述待存入信息的Block信息存儲(chǔ)到其中一個(gè)為空的Block。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種在非易失性存儲(chǔ)器件中存儲(chǔ)信息的裝置,包括查空模塊,用于對(duì)第一 Block查空;若判斷出第一 Block不為空,則對(duì)第二 Block查空;其中,第一 Block或第二 Block為所述存儲(chǔ)器件中的兩個(gè)Block ;信息存儲(chǔ)模塊,用于若判斷出其中一個(gè)Block為空,則將待存入信息存儲(chǔ)到其中一個(gè)為空的Block中;并對(duì)另一個(gè)Block進(jìn)行擦除操作。進(jìn)一步,所述信息存儲(chǔ)模塊還用于在將待存入信息存儲(chǔ)到其中一個(gè)為空的Block后,在該Block的簽名區(qū)域?qū)懭牒灻畔?。所述信息存?chǔ)模塊還用于在該Block的簽名區(qū)域?qū)懭牒灻畔⒑?,在該Block的校驗(yàn)區(qū)域?qū)懭胄r?yàn)信息。進(jìn)一步,所述裝置還包括信息讀取模塊,用于判斷第一 Block中的信息是否有效;若第一 Block中的信息有效,則讀取第一 Block中的信息作為Block信息;若第一 Block中的信息無(wú)效,貝U判斷第二 Block中的信息是否有效;若第二 Block中的信息有效,則讀取第二 Block中的信息作為Block信息;信息修改模塊,用于根據(jù)所述待存入信息修改所述Block信息;以及所述信息存儲(chǔ)模塊將待存入信息存儲(chǔ)到其中一個(gè)為空的Block具體為所述信息存儲(chǔ)模塊將修改后的、攜帶有所述待存入信息的Block信息存儲(chǔ)到其中一個(gè)為空的Block。本發(fā)明實(shí)施例由于利用兩個(gè)Block輪流進(jìn)行信息存儲(chǔ),并同時(shí)保證其中一個(gè)Block為空,即該Block中的值都為OxFF,并且另外一個(gè)Block存儲(chǔ)了信息。這樣,在向空的Block中存入信息前,不必進(jìn)行擦除操作,從而可以避免擦除過程中若意外掉電或者有Reset等事件發(fā)生,而導(dǎo)致整個(gè)Block形成“壞數(shù)據(jù)”區(qū)域;而直接向Block寫入信息所耗時(shí)間較短,因此,大大降低了在存儲(chǔ)過程中出現(xiàn)意外情況而導(dǎo)致存儲(chǔ)異常的幾率。
此外,由于寫入、存儲(chǔ)信息的Block與進(jìn)行擦除操作的Block不是同一個(gè)Block,則即使在耗時(shí)較長(zhǎng)的擦除過程中出現(xiàn)意外情況,如掉電等情況,也不會(huì)影響到存儲(chǔ)到另一個(gè)Block中的信息,從而保證存儲(chǔ)到Block中的信息不受影響。而且,由于在存儲(chǔ)過程中只需擦除一個(gè)Block,而非現(xiàn)有技術(shù)的方法中需要擦除兩塊Block,從而大大減少了非易失性存儲(chǔ)器件的存儲(chǔ)時(shí)間,既可以滿足產(chǎn)品中對(duì)非易失性存儲(chǔ)器件寫入的時(shí)間指標(biāo)要求,又減少對(duì)非易失性存儲(chǔ)器件的擦除次數(shù),可以提高效率和非易失性存儲(chǔ)器件的壽命,降低功耗。
圖la、6為本發(fā)明實(shí)施例的在非易失性存儲(chǔ)器件中存儲(chǔ)信息的方法流程圖;圖Ib為本發(fā)明實(shí)施例的Block中的簽名區(qū)域和校驗(yàn)區(qū)域的示意·
圖2d為本發(fā)明實(shí)施例的向Block_A存儲(chǔ)信息后,擦除Block_B的示意圖;圖3a、3b、3c為本發(fā)明實(shí)施例的向Block_B存儲(chǔ)信息的示意圖;圖3d為本發(fā)明實(shí)施例的向Block_B存儲(chǔ)信息后,擦除Block_A的示意圖;圖4a、4b、4c為本發(fā)明實(shí)施例的Block_A或Block_B存儲(chǔ)異常的示意圖;圖5為本發(fā)明實(shí)施例的從非易失性存儲(chǔ)器件中讀取信息的方法流程圖;圖7為本發(fā)明實(shí)施例的在非易失性存儲(chǔ)器件中存儲(chǔ)信息的裝置的內(nèi)部結(jié)構(gòu)框圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉出優(yōu)選實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。然而,需要說明的是,說明書中列出的許多細(xì)節(jié)僅僅是為了使讀者對(duì)本發(fā)明的一個(gè)或多個(gè)方面有一個(gè)透徹的理解,即便沒有這些特定的細(xì)節(jié)也可以實(shí)現(xiàn)本發(fā)明的這些方面。本申請(qǐng)使用的“模塊”、“系統(tǒng)”等術(shù)語(yǔ)旨在包括與計(jì)算機(jī)相關(guān)的實(shí)體,例如但不限于硬件、固件、軟硬件組合、軟件或者執(zhí)行中的軟件。例如,模塊可以是,但并不僅限于處理器上運(yùn)行的進(jìn)程、處理器、對(duì)象、可執(zhí)行程序、執(zhí)行的線程、程序和/或計(jì)算機(jī)。舉例來(lái)說,計(jì)算設(shè)備上運(yùn)行的應(yīng)用程序和此計(jì)算設(shè)備都可以是模塊。一個(gè)或多個(gè)模塊可以位于執(zhí)行中的一個(gè)進(jìn)程和/或線程內(nèi),一個(gè)模塊也可以位于一臺(tái)計(jì)算機(jī)上和/或分布于兩臺(tái)或更多臺(tái)計(jì)算機(jī)之間。本發(fā)明的主要思路為,利用非易失性存儲(chǔ)器件中的兩個(gè)Block來(lái)輪流進(jìn)行信息存儲(chǔ)。例如,利用非易失性存儲(chǔ)器件中的兩個(gè)Block:第一 Block (Block_A)和第二 Block(Block_B)來(lái)輪流進(jìn)行信息存儲(chǔ)。同時(shí)保證其中一個(gè)Block為空,即該Block中的值都為OxFF,并且另外一個(gè)Block存儲(chǔ)了信息。根據(jù)Flash的特性可知,由“I”變“0”可以直接寫入,由“0”變“I”需要先擦除后再寫入。所以當(dāng)有信息需要保存時(shí),先分別判斷非易失性存儲(chǔ)器件中的否為空例如,先對(duì)第一Block查空;若判斷出第一Block不為空,則對(duì)第二 Block查空;若判斷出其中一個(gè)Block為空,則將待存入信息存儲(chǔ)到其中一個(gè)為空的Block中;而對(duì)另一個(gè)Block進(jìn)行擦除操作。這樣,在向空的Block中存入信息前,不必進(jìn)行擦除操作,從而可以避免擦除過程中若意外掉電或者有Reset等事件發(fā)生,而導(dǎo)致整個(gè)Block形成“壞數(shù)據(jù)”區(qū)域;并且,由于在存儲(chǔ)過程中只需擦除一個(gè)Block,而非現(xiàn)有技術(shù)的方法中需要擦除兩塊Block,從而大大減少了非易失性存儲(chǔ)器件的存儲(chǔ)時(shí)間,既可以滿足產(chǎn)品中對(duì)非易失性存儲(chǔ)器件寫入的時(shí)間指標(biāo)要求,又減少對(duì)非易失性存儲(chǔ)器件的擦除次數(shù),可以提高效率和非易失性存儲(chǔ)器件的壽命,降低功耗。下面結(jié)合附圖詳細(xì)說明本發(fā)明實(shí)施例的技術(shù)方案。本發(fā)明實(shí)施例以非易失性存儲(chǔ)器件為Flash為例,具體講述在非易失性存儲(chǔ)器件中存儲(chǔ)信息的方法在Flash中以Block_A和Block_B輪流進(jìn)行信息存儲(chǔ)。具體地,F(xiàn)lash中可以劃分出第一區(qū)域(或稱區(qū)域A)和第二區(qū)域(或稱區(qū)域B),區(qū)域A和區(qū)域B中包括的Block的個(gè)數(shù)相等;比如,區(qū)域A和區(qū)域B中分別包括有N個(gè)Block (N為自然數(shù))。區(qū)域A中的第m個(gè)Block與區(qū)域B中的第m個(gè)Block相對(duì)應(yīng),其中,m為小于N的自然數(shù)。那么,區(qū)域A和區(qū)域B中相對(duì)應(yīng)的兩個(gè)Block,可以如圖Ia所示的Block_A和Block_B的輪流存儲(chǔ)方式進(jìn)行信息存儲(chǔ),具體包括如下步驟SlOl :對(duì)Flash中的Block_A進(jìn)行查空;若判斷Block_A為空,則執(zhí)行步驟S102 ;否則,執(zhí)行步驟Slll ;·81001^_4和81001^_8可以是上述區(qū)域A和區(qū)域B中相對(duì)應(yīng)的兩個(gè)Block,例如,Block_A為區(qū)域A中第n個(gè)Block, Block_B為區(qū)域B中第n個(gè)Block,或者,Block_B為區(qū)域A中第n個(gè)Block, Block_A為區(qū)域B中第n個(gè)Block,其中n為小于N的自然數(shù)。也就是說,Block_A和Block_B為Flash中的兩個(gè)相對(duì)應(yīng)的Block。如果待存入Flash中的信息需要寫入到第n個(gè)Block中,那么可以區(qū)域A中第n個(gè)Block (Block_A)或區(qū)域B中第n個(gè)Block (Block_B)進(jìn)行存儲(chǔ);因此,先對(duì)Block_A和Block_B進(jìn)行查空。對(duì)Block_A的查空具體包括判斷Block_A是否為空,即判斷Block_A中所有的值是否都為0XFF。如果Block_A中所有的值都為0XFF,則判斷Block_A為空;否則,Block_A不為空。S102 :將待存入的信息存儲(chǔ)到Block_A中。如果Block_A為空,則將需要待存入的信息寫入到Block_A中。較佳地,Block_A中還可包括簽名區(qū)域和校驗(yàn)區(qū)域。具體地,如圖Ib所示,F(xiàn)lash中的每個(gè)Block通常有M個(gè)字節(jié)(M可以是256或512),將這M個(gè)字節(jié)分成三個(gè)區(qū)域其中,前M-2個(gè)字節(jié)用于存放保存信息,稱為信息區(qū)域;第M-I個(gè)字節(jié)用于存放簽名,稱為簽名區(qū)域;第M個(gè)字節(jié)用于存放校驗(yàn)和(校驗(yàn)信息),稱為校驗(yàn)區(qū)域。在待存入的信息成功地寫入到Block_A的信息區(qū)域后,在Block_A的簽名區(qū)域?qū)懭牒灻畔ⅲ砻髟揃lock被成功寫入;簽名信息具體可以是0X00,或者其它值。在待存入的信息成功地寫入到Block_A的信息區(qū)域后,還可以將校驗(yàn)信息寫入到Block_A的校驗(yàn)區(qū)域。校驗(yàn)信息具體可以是Block_A中的前M-I個(gè)字節(jié)的校驗(yàn)和。Block_A中的第M個(gè)字節(jié)中的校驗(yàn)信息具體根據(jù)如下公式I得到第M個(gè)字節(jié)=OXFF- £第i個(gè)字節(jié)(公式I)
i-1其中,第i個(gè)字節(jié)指的是Block_A中的第i個(gè)字節(jié)。
圖2a、2b、2c示出了向Block_A存儲(chǔ)信息的過程從圖2a所示的BloclO^n Block_B,可以看出Block_A為空;圖2b則示出將124值更改為125值后的犯001^_4和81001^8,其中,125值被寫入到空的81001^4中;圖2c示出125值被寫入到81001^_4后,在Block_A寫入簽名信息和校驗(yàn)信息,其中S表示簽名信息,C表示校驗(yàn)信息。S103 :對(duì)Block_B進(jìn)行擦除操作后,跳轉(zhuǎn)到步驟S151,結(jié)束此次信息存儲(chǔ)過程。由于對(duì)犯0(^_8進(jìn)行擦除的操作是在將待存入的信息存儲(chǔ)到Block_A之后,因此,即使在擦除Block_B的過程中出現(xiàn)掉電等異?,F(xiàn)象也不會(huì)影響B(tài)lock_A中存儲(chǔ)的信息。也就是說,這不同于現(xiàn)有技術(shù),在現(xiàn)有技術(shù)中由于在寫入信息之前要擦除Block,如果在擦除過程中掉電,則直接導(dǎo)致無(wú)法正常向Block存入信息,從而導(dǎo)致Block中的信息錯(cuò)誤。較佳地,在對(duì)Block_B進(jìn)行擦除之前,可以先判斷否為空;如果Block_B為空,則不必再進(jìn)行擦除操作,而直接跳轉(zhuǎn)到步驟S151 ;如果Block_B不為空,再對(duì)Block_B進(jìn)行擦除操作后,跳轉(zhuǎn)到步驟S151,結(jié)束此次信息存儲(chǔ)過程。在對(duì)Block_B進(jìn)行擦除操作后,Block_B中所有的值都為0XFF。圖2d示出了將125值寫入到81001^_4后,將Block_B擦除為空。Slll J^Flash中的Block_B進(jìn)行查空;若判斷Block_B為空,則執(zhí)行步驟S112 ;否則,執(zhí)行步驟S121。對(duì)Block_B的查空具體包括判斷Block_B是否為空,即判斷Block_B中所有的值是否都為0XFF。如果Block_B中所有的值都為0XFF,則判斷Block_B為空;否則,Block_B不為空。SI 12 :將待存入的信息存儲(chǔ)到Block_B中。如果Block_B為空,則將需要待存入的信息寫入到Block_B中。較佳地,與Block_A類似,Block_B中還可包括簽名區(qū)域和校驗(yàn)區(qū)域。在待存入的信息成功地寫入到Block_B的信息區(qū)域后,在Block_B的簽名區(qū)域?qū)懭牒灻畔?,表明該Block被成功寫入;并且,將校驗(yàn)信息寫入到Block_B的校驗(yàn)區(qū)域。校驗(yàn)信息具體為Block_B中的前M-I個(gè)字節(jié)的校驗(yàn)和。Block_B中的第M個(gè)字節(jié)中的校驗(yàn)信息具體根據(jù)如下公式2得到
權(quán)利要求
1.一種在非易失性存儲(chǔ)器件中存儲(chǔ)信息的方法,其中所述存儲(chǔ)器件包括兩個(gè)Block 第一 Block或第二 Block,其特征在于,所述方法包括 對(duì)第一 Block查空;若判斷出第一 Block不為空,則對(duì)第二 Block查空; 若判斷出其中一個(gè)Block為空,則將待存入信息存儲(chǔ)到其中一個(gè)為空的Block中;并對(duì)另一個(gè)Block進(jìn)行擦除操作。
2.如權(quán)利要求I所述的方法,其特征在于,在所述將待存入信息存儲(chǔ)到其中一個(gè)為空的Block后,還包括 在該Block的簽名區(qū)域?qū)懭牒灻畔ⅰ?br>
3.如權(quán)利要求2所述的方法,其特征在于,在該Block的簽名區(qū)域?qū)懭牒灻畔⒑?,還包括 在該Block的校驗(yàn)區(qū)域?qū)懭胄r?yàn)信息。
4.如權(quán)利要求3所述的方法,其特征在于,在所述將待存入信息存儲(chǔ)到其中一個(gè)為空的Block之前,還包括 判斷第一 Block中的信息是否有效;若第一 Block中的信息有效,則讀取第一 Block中的信息作為Block信息;若第一 Block中的信息無(wú)效,則 判斷第二 Block中的信息是否有效;若第二 Block中的信息有效,則讀取第二 Block中的信息作為Block信息; 根據(jù)所述待存入信息修改所述Block信息;以及 所述將待存入信息存儲(chǔ)到其中一個(gè)為空的Block具體為 將修改后的、攜帶有所述待存入信息的Block信息存儲(chǔ)到其中一個(gè)為空的Block。
5.如權(quán)利要求3所述的方法,其特征在于,所述存儲(chǔ)器件中還包括存儲(chǔ)有默認(rèn)信息的第三Block ;以及, 在所述判斷第二 Block中的信息是否有效之后,所述方法還包括 若第二 Block中的信息無(wú)效,則讀取第三Block中存儲(chǔ)的默認(rèn)信息作為Block信息。
6.如權(quán)利要求5所述的方法,其特征在于,所述判斷第一Block中的信息是否有效具體包括 判斷第一 Block中的簽名區(qū)域是否有簽名信息;若沒有簽名信息,則判斷出第一 Block中的信息無(wú)效;若有簽名信息,則 判斷第一 Block中的校驗(yàn)區(qū)域中的校驗(yàn)信息是否正確;若校驗(yàn)信息正確,則判斷出第一Block中的信息有效;若校驗(yàn)信息錯(cuò)誤,貝Ij判斷出第一 Block中的信息無(wú)效;以及 所述判斷第二 Block中的信息是否有效具體包括 判斷第二 Block中的簽名區(qū)域是否有簽名信息;若沒有簽名信息,則判斷出第二 Block中的信息無(wú)效;若有簽名信息,則 判斷第二 Block中的校驗(yàn)區(qū)域中的校驗(yàn)信息是否正確;若校驗(yàn)信息正確,則判斷出第二Block中的信息有效;若校驗(yàn)信息錯(cuò)誤,貝Ij判斷出第二 Block中的信息無(wú)效。
7.如權(quán)利要求3-6任一所述的方法,其特征在于,所述對(duì)第一Block查空具體包括 判斷第一 Block的簽名區(qū)域中是否有簽名信息;如果有簽名信息,則判斷出第一 Block不為空;如果沒有簽名信息,則 判斷第一 Block中所有的值是否都為OXFF ;如果第一 Block中所有的值都為0XFF,則判斷第一 Block為空;否則,第一 Block不為空;以及 所述對(duì)第二 Block查空具體包括 判斷第二 Block的簽名區(qū)域中是否有簽名信息;如果有簽名信息,則判斷出第二 Block不為空;如果沒有簽名信息,則 判斷第二 Block中所有的值是否都為OXFF ;如果第二 Block中所有的值都為0XFF,則判斷第二 Block為空;否則,第二 Block不為空。
8.如權(quán)利要求7所述的方法,其特征在于,在所述對(duì)第二Block查空之后,還包括 若判斷出第二 Block不為空,則將第二 Block擦除為空。
9.如權(quán)利要求I所述的方法,其特征在于,所述存儲(chǔ)器件中包括有第一區(qū)域和第二區(qū)域,第一區(qū)域和第二區(qū)域中分別包括N個(gè)Block ;第一區(qū)域中的第m個(gè)Block與第二區(qū)域中的第m個(gè)Block相對(duì)應(yīng),其中,N為自然數(shù),m為小于N的自然數(shù);以及 第一 Block和第二 Block為第一區(qū)域和第二區(qū)域中相對(duì)應(yīng)的兩個(gè)Block。
10.一種在非易失性存儲(chǔ)器件中存儲(chǔ)信息的裝置,包括 查空模塊,用于對(duì)第一 Block查空;若判斷出第一 Block不為空,則對(duì)第二 Block查空;其中,第一 Block或第二 Block為所述存儲(chǔ)器件中的兩個(gè)Block ; 信息存儲(chǔ)模塊,用于若判斷出其中一個(gè)Block為空,則將待存入信息存儲(chǔ)到其中一個(gè)為空的Block中;并對(duì)另一個(gè)Block進(jìn)行擦除操作。
11.如權(quán)利要求10所述的裝置,其特征在于, 所述信息存儲(chǔ)模塊還用于在將待存入信息存儲(chǔ)到其中一個(gè)為空的Block后,在該Block的簽名區(qū)域?qū)懭牒灻畔ⅰ?br>
12.如權(quán)利要求11所述的裝置,其特征在于, 所述信息存儲(chǔ)模塊還用于在該Block的簽名區(qū)域?qū)懭牒灻畔⒑螅谠揃lock的校驗(yàn)區(qū)域?qū)懭胄r?yàn)信息。
13.如權(quán)利要求12所述的裝置,其特征在于,還包括 信息讀取模塊,用于判斷第一 Block中的信息是否有效;若第一 Block中的信息有效,則讀取第一 Block中的信息作為Block信息;若第一 Block中的信息無(wú)效,貝U判斷第二Block中的信息是否有效;若第二 Block中的信息有效,則讀取第二 Block中的信息作為Block信息; 信息修改模塊,用于根據(jù)所述待存入信息修改所述Block信息;以及 所述信息存儲(chǔ)模塊將待存入信息存儲(chǔ)到其中一個(gè)為空的Block具體為所述信息存儲(chǔ)模塊將修改后的、攜帶有所述待存入信息的Block信息存儲(chǔ)到其中一個(gè)為空的Block。
14.如權(quán)利要求13所述的裝置,其特征在于, 所述信息讀取模塊還用于在判斷第二 Block中的信息是否有效之后,若第二 Block中的信息無(wú)效,則讀取第三Block中存儲(chǔ)的默認(rèn)信息;其中,第三Block為所述存儲(chǔ)器件中存儲(chǔ)默認(rèn)信息的Block。
15.如權(quán)利要求10-14任一所述的裝置,其特征在于,所述存儲(chǔ)器件中包括有第一區(qū)域和第二區(qū)域,第一區(qū)域和第二區(qū)域中分別包括N個(gè)Block ;第一區(qū)域中的第m個(gè)Block與第二區(qū)域中的第m個(gè)Block相對(duì)應(yīng),其中,N為自然數(shù),m為小于N的自然數(shù);以及 第一 Block和第二 Block為第一區(qū)域和第二區(qū)域中相對(duì)應(yīng)的兩個(gè)Block。
全文摘要
本發(fā)明公開了一種在非易失性存儲(chǔ)器件中存儲(chǔ)信息的方法和裝置,其中所述存儲(chǔ)器件包括兩個(gè)Block第一Block或第二Block,所述方法包括對(duì)第一Block查空;若判斷出第一Block不為空,則對(duì)第二Block查空;若判斷出其中一個(gè)Block為空,則將待存入信息存儲(chǔ)到其中一個(gè)為空的Block中;并對(duì)另一個(gè)Block進(jìn)行擦除操作。由于利用兩個(gè)Block輪流進(jìn)行信息存儲(chǔ),并同時(shí)保證其中一個(gè)Block為空,另外一個(gè)Block存儲(chǔ)了信息。這樣,在向空的Block中存入信息前,不必進(jìn)行擦除操作,從而可以避免擦除過程中有意外事件發(fā)生,而導(dǎo)致整個(gè)Block形成“壞數(shù)據(jù)”區(qū)域。
文檔編號(hào)G06F12/02GK102789426SQ20121026488
公開日2012年11月21日 申請(qǐng)日期2012年7月27日 優(yōu)先權(quán)日2012年7月27日
發(fā)明者林青合, 王文希 申請(qǐng)人:青島海信寬帶多媒體技術(shù)有限公司