亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)據(jù)更新的方法和裝置的制作方法

文檔序號(hào):6460167閱讀:149來(lái)源:國(guó)知局
專利名稱:一種數(shù)據(jù)更新的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù),具體涉及一種數(shù)據(jù)存儲(chǔ)的方法和裝置。
技術(shù)背景當(dāng)前,與非型閃存(NAND FLASH)作為 一種長(zhǎng)壽命的非易失性存儲(chǔ) 器,在各種數(shù)碼設(shè)備如錄音筆、個(gè)人數(shù)字助理(Personal Digital Assistant, PDA)、數(shù)碼相機(jī)和MP3、 MP4播放器中十分常見(jiàn)。由于NANDFLASH具 有體積小、數(shù)據(jù)不易丟失、且在斷電情況下仍能保持所存儲(chǔ)的數(shù)據(jù)信息的特 點(diǎn),因而在數(shù)據(jù)存儲(chǔ)領(lǐng)域得到了廣泛的應(yīng)用。NAND FLASH的基本存儲(chǔ)單元是頁(yè)面(Page),每個(gè)頁(yè)面的有效容量 是512字節(jié)的整數(shù)倍。所謂的有效容量是指用于數(shù)據(jù)存儲(chǔ)的部分,實(shí)際上還 包括16字節(jié)的校驗(yàn)信息,存放在剩余(spare)區(qū)中,因此通常采用(512+16 ) 字節(jié)的方式表示一個(gè)頁(yè)面的頁(yè)面容量。目前2Gb以下容量的NAND FLASH 大多數(shù)是(512+16)字節(jié)的頁(yè)面容量,2Gb以上容量的NAND FLASH則將 頁(yè)面容量擴(kuò)大到(2048+64)字節(jié),但實(shí)質(zhì)上是將4個(gè)(512+16)字節(jié)的頁(yè) 面進(jìn)行組合形成,因此在進(jìn)行數(shù)據(jù)操作時(shí)并沒(méi)有本質(zhì)區(qū)別。NAND FLASH以數(shù)據(jù)塊(block)為單位進(jìn)行擦除操作,寫(xiě)入操作必須 在空白塊進(jìn)行,如果目標(biāo)數(shù)據(jù)塊已經(jīng)有數(shù)據(jù),必須先擦除成空白塊后再寫(xiě)入, 因此擦除操作是閃存的基本操作。 一般每個(gè)數(shù)據(jù)塊包含32個(gè)512字節(jié)的頁(yè) 面,容量16KB;而大容量閃存采用2KB頁(yè)面時(shí),則每個(gè)數(shù)據(jù)塊包含64個(gè) 頁(yè)面,容量128KB。由于NAND FLASH具有進(jìn)行數(shù)據(jù)擦除時(shí)以數(shù)據(jù)塊為單位的特點(diǎn),因此 如果需要向某個(gè)數(shù)據(jù)塊中的其中一個(gè)頁(yè)面中寫(xiě)入數(shù)據(jù)時(shí),通常要先從NANDFLASH中讀取該數(shù)據(jù)塊中的全部數(shù)據(jù),將讀取的全部數(shù)據(jù)中,與待更新頁(yè) 面對(duì)應(yīng)的數(shù)據(jù)替換為更新數(shù)據(jù),再將更新后的該數(shù)據(jù)塊的全部數(shù)據(jù)重新寫(xiě)入 NAND FLASH中的該數(shù)據(jù)塊中。顯然,NAND FLASH采用這種方式進(jìn)行小數(shù)據(jù)塊的操作時(shí),速度很慢 且效率非常低,同時(shí)文件系統(tǒng)的更新大多數(shù)時(shí)候是對(duì)頁(yè)面進(jìn)行的操作,因此 也會(huì)影響文件系統(tǒng)的運(yùn)行效率。發(fā)明內(nèi)容本發(fā)明實(shí)施例提供一種數(shù)據(jù)更新的方法和裝置,能夠提高NANDFLASH的寫(xiě)入速度,提高文件系統(tǒng)的效率。為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的 一種數(shù)據(jù)更新的方法,其特征在于,設(shè)置預(yù)設(shè)數(shù)量的緩沖塊,該方法包括 將對(duì)應(yīng)于任一數(shù)據(jù)塊的更新數(shù)據(jù)寫(xiě)入對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊,建立該更新數(shù)據(jù)在緩沖塊中的位置與對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù)據(jù)的位置的對(duì)應(yīng)關(guān)系;當(dāng)任一緩沖塊寫(xiě)滿時(shí),根據(jù)所述對(duì)應(yīng)關(guān)系將該緩沖塊中的更新數(shù)據(jù)全部寫(xiě)入對(duì)應(yīng)數(shù)據(jù)塊。所述將對(duì)應(yīng)于任一數(shù)據(jù)塊的更新數(shù)據(jù)寫(xiě)入對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊之前, 該方法進(jìn)一步包括判斷各緩沖塊中是否緩存了對(duì)應(yīng)該數(shù)據(jù)塊的更新數(shù)據(jù),若存在緩沖塊已緩 存了對(duì)應(yīng)該數(shù)據(jù)塊的更新數(shù)據(jù),則將該緩沖塊確定為對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊; 若所有緩沖塊均未緩存對(duì)應(yīng)該數(shù)據(jù)塊的更新數(shù)據(jù),則任選一個(gè)空白緩沖塊確定 為對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊。所述任選一個(gè)空白緩沖塊確定為對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊之前,該方法進(jìn) 一步包括判斷是否存在空白緩沖塊,如果存在空白緩沖塊,則直接執(zhí)行所述任選一 個(gè)空白緩沖塊確定為對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊;如果不存在空白緩沖塊,則任 選一個(gè)緩沖塊擦除為空白緩沖塊,然后執(zhí)行所述任選一個(gè)空白緩沖塊確定為對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊。所述任選一個(gè)緩沖塊擦除為空白緩沖塊包括 選擇已緩存更新數(shù)據(jù)最多的緩沖塊; 讀取該緩沖塊對(duì)應(yīng)的數(shù)據(jù)塊中的所有數(shù)據(jù);根據(jù)所述對(duì)應(yīng)關(guān)系,使用該緩沖塊中的更新數(shù)據(jù)替換對(duì)應(yīng)的部分待更新數(shù)據(jù);將執(zhí)行所述替換后的所有數(shù)據(jù)寫(xiě)回至對(duì)應(yīng)的數(shù)據(jù)塊,并將該緩沖塊擦除為 空白緩沖塊。所述更新數(shù)據(jù)在緩沖塊中的位置,按照緩沖塊中頁(yè)面編號(hào)從小到大的順序 依次排列,并設(shè)置末位標(biāo)識(shí)表示所述緩沖塊中更新數(shù)據(jù)占用的最后 一個(gè)頁(yè)面的 頁(yè)面編號(hào)。所述將對(duì)應(yīng)于任一數(shù)據(jù)塊的更新數(shù)據(jù)寫(xiě)入對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊包括 從末位標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面后繼續(xù)寫(xiě)入一個(gè)頁(yè)面大小的更新數(shù)據(jù);所述建立并保存該更新數(shù)據(jù)在緩沖塊中的位置與對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù)據(jù) 的位置的對(duì)應(yīng)關(guān)系包括在更新數(shù)據(jù)所在頁(yè)面中保存和對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù) 據(jù)的位置,并將末位標(biāo)識(shí)增加一。所述對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù)據(jù)的位置為所述待更新數(shù)據(jù)的數(shù)據(jù)塊編號(hào)和頁(yè) 面編號(hào)。根據(jù)所述對(duì)應(yīng)關(guān)系將該緩沖塊中的更新數(shù)據(jù)全部寫(xiě)入對(duì)應(yīng)數(shù)據(jù)塊包括 讀取該緩沖塊對(duì)應(yīng)的數(shù)據(jù)塊中的所有數(shù)據(jù);根據(jù)所述對(duì)應(yīng)關(guān)系,使用該緩沖塊中的更新數(shù)據(jù)替換對(duì)應(yīng)的所有待更新數(shù)據(jù);將執(zhí)行所述替換后的所有數(shù)據(jù)寫(xiě)回至對(duì)應(yīng)的數(shù)據(jù)塊,并將該緩沖塊擦除為 空白緩沖塊。一種數(shù)據(jù)更新的裝置,該裝置包括緩沖塊定義模塊、緩沖塊操作模塊和 更新模塊;所述緩沖塊定義模塊,設(shè)置預(yù)設(shè)數(shù)量的緩沖塊;所述緩沖塊操作模塊,將對(duì)應(yīng)于任一數(shù)據(jù)塊的更新數(shù)據(jù)寫(xiě)入對(duì)應(yīng)于該數(shù)據(jù) 塊的緩沖塊,建立并保存該更新數(shù)據(jù)在緩沖塊中的位置與對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù)據(jù)的位置的對(duì)應(yīng)關(guān)系;所述更新模塊,當(dāng)任一緩沖塊寫(xiě)滿時(shí),根據(jù)所述對(duì)應(yīng)關(guān)系將該緩沖塊中的 更新數(shù)據(jù)全部寫(xiě)入對(duì)應(yīng)數(shù)據(jù)塊。所述緩沖塊操作模塊中包括緩沖塊對(duì)應(yīng)關(guān)系判斷單元、空白塊判斷單元 和擦除單元;所述緩沖塊選擇判斷單元,判斷各緩沖塊中是否緩存了對(duì)應(yīng)該數(shù)據(jù)塊的更 新數(shù)據(jù),若存在緩沖塊已緩存了對(duì)應(yīng)該數(shù)據(jù)塊的更新數(shù)據(jù),則將該緩沖塊確定 為對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊;若所有緩沖塊均未緩存對(duì)應(yīng)該數(shù)據(jù)塊的更新數(shù)據(jù), 則通知空白塊判斷單元;所述空白塊判斷單元,根據(jù)緩沖塊選擇判斷單元的通知,判斷是否存在空 白緩沖塊,如果存在空白緩沖塊,則任選一個(gè)空白緩沖塊確定為對(duì)應(yīng)于該數(shù)據(jù) 塊的緩沖塊;如果不存在空白緩沖塊,則通知擦除單元;所述擦除單元,根據(jù)空白塊判斷單元的通知,選擇已緩存更新數(shù)據(jù)最多的 緩沖塊,讀取該緩沖塊對(duì)應(yīng)的數(shù)據(jù)塊中的所有數(shù)據(jù);根據(jù)所述對(duì)應(yīng)關(guān)系,使用 該緩沖塊中的更新數(shù)據(jù)替換對(duì)應(yīng)的部分待更新數(shù)據(jù);將執(zhí)行所述替換后的所有 數(shù)據(jù)寫(xiě)回至對(duì)應(yīng)的數(shù)據(jù)塊,將該緩沖塊擦除為空白緩沖塊,并選擇該緩沖塊為 對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊。所述緩沖塊操作模塊,將更新數(shù)據(jù)在緩沖塊中的位置,按照緩沖塊中頁(yè)面 編號(hào)從小到大的順序依次排列,并設(shè)置末位標(biāo)識(shí)表示所述緩沖塊中更新數(shù)據(jù)占 用的最后一個(gè)頁(yè)面的頁(yè)面編號(hào);所述緩沖塊操作模塊中進(jìn)一步包括寫(xiě)入單元,從末位標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面后繼 續(xù)寫(xiě)入一個(gè)頁(yè)面大小的更新數(shù)據(jù),在更新數(shù)據(jù)所在頁(yè)面中保存和對(duì)應(yīng)數(shù)據(jù)塊中 待更新數(shù)據(jù)的位置,并將末位標(biāo)識(shí)增加一;所述對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù)據(jù)的位 置為所述待更新數(shù)據(jù)的數(shù)據(jù)塊編號(hào)和頁(yè)面編號(hào)。所述更新模塊模塊,當(dāng)任一緩沖塊寫(xiě)滿時(shí),根據(jù)所述對(duì)應(yīng)關(guān)系,使用該緩沖塊中的更新數(shù)據(jù)替換對(duì)應(yīng)的所有待更新數(shù)據(jù);將執(zhí)行所述替換后的所有數(shù)據(jù) 寫(xiě)回至對(duì)應(yīng)的數(shù)據(jù)塊,并將該緩沖塊擦除為空白緩沖塊。由上述的技術(shù)方案可見(jiàn),本發(fā)明實(shí)施例的這種數(shù)據(jù)更新的方法和裝置, 避免了對(duì)數(shù)據(jù)塊中的頁(yè)面進(jìn)行數(shù)據(jù)更新時(shí)要將該數(shù)據(jù)塊中的相應(yīng)頁(yè)面更新 后再將全部數(shù)據(jù)重新寫(xiě)入的重復(fù)性操作,每次對(duì)頁(yè)面數(shù)據(jù)進(jìn)行更新,減少了 對(duì)整塊數(shù)據(jù)的頻繁擦除和寫(xiě)入,大大提高了寫(xiě)入和更新數(shù)據(jù)的效率。


圖1為本發(fā)明實(shí)施例中數(shù)據(jù)更新的方法的流程示意圖。 圖2為本發(fā)明實(shí)施例中將更新數(shù)據(jù)寫(xiě)入緩沖塊的示意圖。 圖3為本發(fā)明實(shí)施例中將更新數(shù)據(jù)復(fù)制到對(duì)應(yīng)數(shù)據(jù)塊并擦除緩沖塊的 示意圖。圖4為本發(fā)明實(shí)施例中數(shù)據(jù)更新的裝置的組成結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉 實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。本發(fā)明實(shí)施例提供一種數(shù)據(jù)更新的方法,設(shè)置預(yù)設(shè)數(shù)量的緩沖塊,該方 法的流程如圖l所示,其中包括步驟IOI:每個(gè)緩沖塊用于存儲(chǔ)一個(gè)數(shù)據(jù)塊的更新數(shù)據(jù),當(dāng)需要對(duì)NAND FLASH中的某數(shù)據(jù)塊進(jìn)行更新時(shí),判斷各緩沖塊中是否緩存了對(duì)應(yīng)該數(shù)據(jù) 塊的更新數(shù)據(jù),如果是,則執(zhí)行步驟104,否則執(zhí)行步驟102。需要說(shuō)明的是,所述預(yù)設(shè)的緩沖塊不寫(xiě)入文件系統(tǒng),這是為了將所述的 緩沖塊專門(mén)用于進(jìn)行數(shù)據(jù)更新而不會(huì)被文件系統(tǒng)占用。在進(jìn)行數(shù)據(jù)更新時(shí), 本次的待更新數(shù)據(jù)在NAND FLASH中唯一地對(duì)應(yīng)于一個(gè)塊編號(hào)和頁(yè)編號(hào), 用來(lái)表示所述待更新數(shù)據(jù)的存儲(chǔ)位置。從預(yù)設(shè)緩沖塊中選擇一個(gè)作為待更新 數(shù)據(jù)所在數(shù)據(jù)塊的緩沖塊,用來(lái)存儲(chǔ)更新數(shù)據(jù)。步驟102:判斷各緩沖塊中是否存在空白塊,如果是,則執(zhí)行步驟103, 否則執(zhí)行步驟104。所述步驟102用來(lái)判斷緩沖塊中是否存在空白塊,由于緩沖塊的個(gè)數(shù)有 限,而每次進(jìn)行數(shù)據(jù)更新時(shí),不一定是對(duì)同一個(gè)數(shù)據(jù)塊中的不同頁(yè)面進(jìn)行更 新,從而可能會(huì)將預(yù)留的全部緩沖塊全部占用,因此需要判斷是否還有剩余 的空白塊可供使用。步驟103:選擇已緩存更新數(shù)據(jù)最多的緩沖塊,讀取該緩沖塊中的數(shù)據(jù), 將與待更新頁(yè)面對(duì)應(yīng)的數(shù)據(jù)替換為更新數(shù)據(jù),再將更新后的數(shù)據(jù)寫(xiě)入所述緩 沖塊對(duì)應(yīng)的數(shù)據(jù)塊,繼續(xù)執(zhí)行步驟104。需要說(shuō)明的是,將更新后的數(shù)據(jù)寫(xiě)入所述緩沖塊對(duì)應(yīng)的數(shù)據(jù)塊時(shí),是根據(jù) 更新數(shù)據(jù)在緩沖塊中的位置與對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù)據(jù)的位置的對(duì)應(yīng)關(guān)系進(jìn)行 的,由于步驟103中選擇的數(shù)據(jù)塊中已經(jīng)緩存了一定的更新數(shù)據(jù),而所述的對(duì) 應(yīng)關(guān)系在后續(xù)步驟104中會(huì)進(jìn)行詳細(xì)說(shuō)明。如果預(yù)先定義的緩沖塊都被占用,沒(méi)有剩余的空白緩沖塊可以使用,則 需要從所述的緩沖塊中選擇一個(gè)并將該緩沖塊重新擦除成空白塊,以存放本 次的更新數(shù)據(jù)。需要說(shuō)明的是,所述步驟103中提供的是一種較佳的實(shí)施方式,這是因 為相比包含已更新數(shù)據(jù)較少的緩沖塊,將包含已更新數(shù)據(jù)最多的緩沖塊中的 數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)區(qū)域是自然的優(yōu)選方式,但實(shí)際上,也可以不考慮各緩 沖塊中包含的已更新數(shù)據(jù)的多少,而設(shè)置步驟103為從所述緩沖塊中任意 選擇一個(gè),讀取該緩沖塊中的數(shù)據(jù),將與待更新頁(yè)面對(duì)應(yīng)的數(shù)據(jù)替換為更新 數(shù)據(jù),再將更新后的數(shù)據(jù)寫(xiě)入所述緩沖塊對(duì)應(yīng)的數(shù)據(jù)塊,繼續(xù)執(zhí)行步驟104。步驟104:將本次更新的數(shù)據(jù)寫(xiě)入對(duì)應(yīng)的緩沖塊中,建立并保存該更新 數(shù)據(jù)在緩沖塊中的位置與對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù)據(jù)的位置的對(duì)應(yīng)關(guān)系,繼續(xù) 執(zhí)行步驟105。具體方法為從末位標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面后繼續(xù)寫(xiě)入一個(gè)頁(yè)面大小的更新數(shù)據(jù); 在本次更新數(shù)據(jù)所在頁(yè)面中建立并保存該更新數(shù)據(jù)在緩沖塊中的位置與對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù)據(jù)的位置的對(duì)應(yīng)關(guān)系,將末位標(biāo)識(shí)增加一;所述該更新數(shù)據(jù)在 緩沖塊中的位置為所述待更新數(shù)據(jù)的塊編號(hào)和頁(yè)面編號(hào)。圖2示出了所述將更新數(shù)據(jù)寫(xiě)入緩沖塊的示意圖,假設(shè)需要對(duì)NAND FLASH中塊編號(hào)為5,頁(yè)面編號(hào)為4 (block5, page4 )的這部分?jǐn)?shù)據(jù)進(jìn)行更 新,假設(shè)預(yù)留的區(qū)域中包含4個(gè)緩沖塊,選定其中塊編號(hào)為#3的緩沖塊作 為待更新數(shù)據(jù)所在數(shù)據(jù)塊對(duì)應(yīng)的緩沖塊,設(shè)該緩沖塊初始為空白塊,此時(shí)將 更新數(shù)據(jù)寫(xiě)入#3號(hào)緩沖塊的pagel中,因此,本次待更新數(shù)據(jù)的所在位置為 5號(hào)塊、頁(yè)面4(block5, page4),而更新數(shù)據(jù)的實(shí)際存放位置則為#3號(hào)緩 沖塊、頁(yè)面1 (block#3, pagel ),建立(block5, page4 )與(block#3, pagel ) 之間的對(duì)應(yīng)關(guān)系。同時(shí),末位標(biāo)識(shí)用以表示寫(xiě)入緩沖塊中的更新數(shù)據(jù)所在的最后一個(gè)頁(yè)面 的編號(hào),對(duì)于空白塊,末位標(biāo)識(shí)相應(yīng)地為0,末位標(biāo)識(shí)隨每次對(duì)緩沖塊的寫(xiě) 入操作進(jìn)行相應(yīng)的更新,由于更新數(shù)據(jù)是按照頁(yè)面編號(hào)依次寫(xiě)入,因此末位 標(biāo)識(shí)相應(yīng)地表示了該緩沖塊中保存的已更新數(shù)據(jù)的多少,末位標(biāo)識(shí)越大,表 示該緩沖塊中保存的已更新數(shù)據(jù)越多。在緩沖塊中寫(xiě)入更新數(shù)據(jù)的方法為根據(jù)末位標(biāo)識(shí),按照緩沖塊中頁(yè)面 編號(hào)的順序,依次寫(xiě)入更新數(shù)據(jù);建立更新數(shù)據(jù)在緩沖塊中的位置與對(duì)應(yīng)數(shù) 據(jù)塊中待更新數(shù)據(jù)的位置的對(duì)應(yīng)關(guān)系。如圖2所示,block5對(duì)應(yīng)的緩沖塊為 block#3,則第1次更新block5中的數(shù)據(jù),更新數(shù)據(jù)存放在(block#3, pagel ) 中,第2次更新block5中的數(shù)據(jù),更新數(shù)據(jù)存放在(block#3, page2 )中, 第3次更新block5中的數(shù)據(jù),更新數(shù)據(jù)存放在(block#3, page3 )中,依此 類推。如果兩次對(duì)block5的更新操作中,該緩沖塊被擦除用于進(jìn)行其他數(shù)據(jù)塊的更新,末位標(biāo)識(shí)則相應(yīng)清O,例如,更新^:據(jù)存;^至(block#3, page5 ),然后block#3被用于其它數(shù)據(jù)塊的更新,則此時(shí)block#3的末位標(biāo)識(shí)即清0。當(dāng)block5再次使用緩沖塊block#3保存更新數(shù)據(jù)時(shí),此時(shí)對(duì)block5的更新數(shù)據(jù)仍然從(block#3, pagel)重新開(kāi)始,自然,此時(shí)所述對(duì)應(yīng)關(guān)系也要相應(yīng)地改變。步驟105:判斷該緩沖塊是否已滿,如果已滿,執(zhí)行步驟106,否則執(zhí) 行步驟107。根據(jù)末位標(biāo)識(shí),如果末位標(biāo)識(shí)表示最后更新數(shù)據(jù)在緩沖塊的最后一個(gè)頁(yè) 面,表示該緩沖塊已滿,則執(zhí)行步驟106,否則表示未滿,繼續(xù)執(zhí)行步驟107。步驟106:根據(jù)所述對(duì)應(yīng)關(guān)系將該緩沖塊中的更新數(shù)據(jù)全部寫(xiě)入對(duì)應(yīng)數(shù) 據(jù)塊,并擦除該緩沖塊中的所有數(shù)據(jù),繼續(xù)執(zhí)行步驟107。根據(jù)所述對(duì)應(yīng)關(guān)系將該緩沖塊中的更新數(shù)據(jù)全部寫(xiě)入對(duì)應(yīng)數(shù)據(jù)塊的方法 為讀取該緩沖塊唯一對(duì)應(yīng)的數(shù)據(jù)塊中的所有數(shù)據(jù);根據(jù)所述對(duì)應(yīng)關(guān)系,使用 該緩沖塊中的更新數(shù)據(jù)替換對(duì)應(yīng)的所有待更新數(shù)據(jù);將執(zhí)行所述替換后的所有 數(shù)據(jù)寫(xiě)回至對(duì)應(yīng)的數(shù)據(jù)塊,并將該緩沖塊擦除為空白緩沖塊。步驟107:結(jié)束本次數(shù)據(jù)更新,并等待下一次更新的開(kāi)始。需要說(shuō)明的是,所述步驟103中,選擇已緩存更新數(shù)據(jù)最多的緩沖塊, 讀取該緩沖塊中的數(shù)據(jù),將與待更新頁(yè)面對(duì)應(yīng)的數(shù)據(jù)替換為更新數(shù)據(jù),再將 更新后的數(shù)據(jù)寫(xiě)入所述緩沖塊對(duì)應(yīng)的數(shù)據(jù)塊的方法為選擇已緩存更新數(shù)據(jù)最多的緩沖塊;讀取該緩沖塊唯一對(duì)應(yīng)的數(shù)據(jù)塊中的 所有數(shù)據(jù);根據(jù)所述對(duì)應(yīng)關(guān)系,使用該緩沖塊中的更新數(shù)據(jù)替換對(duì)應(yīng)的部分待 更新數(shù)據(jù);將執(zhí)行所述替換后的所有數(shù)據(jù)寫(xiě)回至對(duì)應(yīng)的數(shù)據(jù)塊,并將該緩沖塊 擦除為空白緩沖塊。如圖3所示,設(shè)block5對(duì)應(yīng)的緩沖塊為block#3, block5 包含n個(gè)頁(yè)面(n為自然數(shù)),其中,(block5, page4 )的更新數(shù)據(jù)位于(block#3, pagel ) , (block5, page6 )的更新數(shù)據(jù)位于(block#3, page2 ) , (block5, page7)對(duì)應(yīng)于(block#3, page3)等等,則當(dāng)將該緩沖塊擦除時(shí),先將block5 的全部數(shù)據(jù)讀出保存,將其中page4更新為(block#3, pagel)中的數(shù)據(jù), 將page6更新為(block#3, page2)中的數(shù)據(jù),以此類推,然后將更新后的 數(shù)據(jù)再整體寫(xiě)入block5,同時(shí)緩沖塊#3重新成為空白塊,以備步驟104使 用。由以上可見(jiàn),本發(fā)明實(shí)施例提供的這種數(shù)據(jù)更新的方法,避免了對(duì)數(shù)據(jù)塊中的頁(yè)面進(jìn)行數(shù)據(jù)更新時(shí)要將該數(shù)據(jù)塊中的相應(yīng)頁(yè)面更新后再將全部數(shù) 據(jù)重新寫(xiě)入的重復(fù)性操作,每次對(duì)頁(yè)面數(shù)據(jù)進(jìn)行更新,減少了對(duì)整塊數(shù)據(jù)的 頻繁擦除和寫(xiě)入,因此大大提高了寫(xiě)入數(shù)據(jù)的速度,提高了數(shù)據(jù)更新的效率。 本發(fā)明實(shí)施例提供一種數(shù)據(jù)更新的裝置,組成結(jié)構(gòu)如圖4所示,該裝置包括緩沖塊定義模塊400、緩沖塊操作模塊對(duì)應(yīng)關(guān)系設(shè)置模塊410和更新模 塊420;緩沖塊定義模塊400、緩沖塊操作模塊410和更新模塊420; 所述緩沖塊定義模塊400,設(shè)置預(yù)設(shè)數(shù)量的緩沖塊;所述緩沖塊操作模塊410,將對(duì)應(yīng)于任一數(shù)據(jù)塊的更新數(shù)據(jù)寫(xiě)入唯一對(duì)應(yīng) 于該數(shù)據(jù)塊的緩沖塊,建立并保存該更新數(shù)據(jù)在緩沖塊中的位置與對(duì)應(yīng)數(shù)據(jù)塊 中待更新數(shù)據(jù)的位置的對(duì)應(yīng)關(guān)系;所述更新模塊420,當(dāng)任一緩沖塊寫(xiě)滿時(shí),根據(jù)所述對(duì)應(yīng)關(guān)系將該緩沖塊 中的更新數(shù)據(jù)全部寫(xiě)入對(duì)應(yīng)數(shù)據(jù)塊。所述緩沖塊操作模塊410中包括緩沖塊對(duì)應(yīng)關(guān)系判斷單元411、空白塊 判斷單元412和擦除單元413;所述緩沖塊選擇判斷單元,判斷各緩沖塊中是否緩存了對(duì)應(yīng)該數(shù)據(jù)塊的更 新數(shù)據(jù),若存在緩沖塊已緩存了對(duì)應(yīng)該數(shù)據(jù)塊的更新數(shù)據(jù),則將該緩沖塊確定 為唯一對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊;若所有緩沖塊均未緩存對(duì)應(yīng)該數(shù)據(jù)塊的更新 數(shù)據(jù),則通知空白塊判斷單元412;所述空白塊判斷單元412,根據(jù)緩沖塊選擇判斷單元的通知,判斷是否存 在空白緩沖塊,如果存在空白緩沖塊,則任選一個(gè)空白緩沖塊確定為唯一對(duì)應(yīng) 于該數(shù)據(jù)塊的緩沖塊;如果不存在空白緩沖塊,則通知擦除單元413;所述擦除單元413,根據(jù)空白塊判斷單元412的通知,選擇已緩存更新數(shù) 據(jù)最多的緩沖塊,讀取該緩沖塊唯一對(duì)應(yīng)的數(shù)據(jù)塊中的所有數(shù)據(jù);根據(jù)所述對(duì) 應(yīng)關(guān)系,使用該緩沖塊中的更新數(shù)據(jù)替換對(duì)應(yīng)的部分待更新數(shù)據(jù);將執(zhí)行所述 替換后的所有數(shù)據(jù)寫(xiě)回至對(duì)應(yīng)的數(shù)據(jù)塊,將該緩沖塊擦除為空白緩沖塊,并選 擇該緩沖塊為唯一對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊。所述緩沖塊操作模塊410,將更新數(shù)據(jù)在緩沖塊中的位置,按照緩沖塊中 頁(yè)面編號(hào)從小到大的順序依次排列,并設(shè)置末位標(biāo)識(shí)表示所述緩沖塊中更新數(shù) 據(jù)占用的最后一個(gè)頁(yè)面的頁(yè)面編號(hào);所述緩沖塊操作模塊410中進(jìn)一步包括寫(xiě)入單元414,從末位標(biāo)識(shí)對(duì)應(yīng)的 頁(yè)面后繼續(xù)寫(xiě)入一個(gè)頁(yè)面大小的更新數(shù)據(jù),在更新數(shù)據(jù)所在頁(yè)面中保存和對(duì)應(yīng) 數(shù)據(jù)塊中待更新數(shù)據(jù)的位置,并將末位標(biāo)識(shí)增加一,通知更新模塊420;所述 對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù)據(jù)的位置為所述待更新數(shù)據(jù)的數(shù)據(jù)塊編號(hào)和頁(yè)面編號(hào)。所述更新模塊420,當(dāng)任一緩沖塊寫(xiě)滿時(shí),根據(jù)所述對(duì)應(yīng)關(guān)系,使用該緩 沖塊中的更新數(shù)據(jù)替換對(duì)應(yīng)的所有待更新數(shù)據(jù);將執(zhí)行所述替換后的所有數(shù)據(jù) 寫(xiě)回至對(duì)應(yīng)的數(shù)據(jù)塊,并將該緩沖塊擦除為空白緩沖塊。由以上可見(jiàn),本發(fā)明實(shí)施例提供的這種數(shù)據(jù)更新的裝置,避免了對(duì)數(shù)據(jù) 塊中的頁(yè)面進(jìn)行數(shù)據(jù)更新時(shí)要將該數(shù)據(jù)塊中的相應(yīng)頁(yè)面更新后再將全部數(shù) 據(jù)重新寫(xiě)入的重復(fù)性操作,每次對(duì)頁(yè)面數(shù)據(jù)進(jìn)行更新,減少了對(duì)整塊數(shù)據(jù)的 頻繁擦除和寫(xiě)入,因此大大提高了寫(xiě)入數(shù)據(jù)的速度,提高了數(shù)據(jù)更新的效率。因此,容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例,并非用于限定本 發(fā)明的精神和保護(hù)范圍,任何熟悉本領(lǐng)域的技術(shù)人員所做出的等同變化或替 換,都應(yīng)視為涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種數(shù)據(jù)更新的方法,其特征在于,設(shè)置預(yù)設(shè)數(shù)量的緩沖塊,該方法包括將對(duì)應(yīng)于任一數(shù)據(jù)塊的更新數(shù)據(jù)寫(xiě)入對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊,建立該更新數(shù)據(jù)在緩沖塊中的位置與對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù)據(jù)的位置的對(duì)應(yīng)關(guān)系;當(dāng)任一緩沖塊寫(xiě)滿時(shí),根據(jù)所述對(duì)應(yīng)關(guān)系將該緩沖塊中的更新數(shù)據(jù)全部寫(xiě)入對(duì)應(yīng)數(shù)據(jù)塊。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將對(duì)應(yīng)于任一數(shù)據(jù)塊的 更新數(shù)據(jù)寫(xiě)入對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊之前,該方法進(jìn)一步包括判斷各緩沖塊中是否緩存了對(duì)應(yīng)該數(shù)據(jù)塊的更新數(shù)據(jù),若存在緩沖塊已緩 存了對(duì)應(yīng)該數(shù)據(jù)塊的更新數(shù)據(jù),則將該緩沖塊確定為對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊; 若所有緩沖塊均未緩存對(duì)應(yīng)該數(shù)據(jù)塊的更新數(shù)據(jù),則任選一個(gè)空白緩沖塊確定 為對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊。
3、 如權(quán)利要求2所述的方法,其特征在于,所述任選一個(gè)空白緩沖塊確定 為對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊之前,該方法進(jìn)一步包括判斷是否存在空白緩沖塊,如果存在空白緩沖塊,則直接執(zhí)行所述任選一 個(gè)空白緩沖塊確定為對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊;如果不存在空白緩沖塊,則任 選一個(gè)緩沖塊擦除為空白緩沖塊,然后執(zhí)行所述任選一個(gè)空白緩沖塊確定為對(duì) 應(yīng)于該數(shù)據(jù)塊的緩沖塊。
4、 如權(quán)利要求3所述的方法,其特征在于,所述任選一個(gè)緩沖塊擦除為空 白緩沖塊包括選擇已緩存更新數(shù)據(jù)最多的緩沖塊; 讀取該緩沖塊對(duì)應(yīng)的數(shù)據(jù)塊中的所有數(shù)據(jù);根據(jù)所述對(duì)應(yīng)關(guān)系,使用該緩沖塊中的更新數(shù)據(jù)替換對(duì)應(yīng)的部分待更新數(shù)據(jù);將執(zhí)行所述替換后的所有數(shù)據(jù)寫(xiě)回至對(duì)應(yīng)的數(shù)據(jù)塊,并將該緩沖塊擦除為空白緩沖塊。
5、 如權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述更新數(shù)據(jù)在 緩沖塊中的位置,按照緩沖塊中頁(yè)面編號(hào)從小到大的順序依次排列,并設(shè)置末 位標(biāo)識(shí)表示所述緩沖塊中更新數(shù)據(jù)占用的最后一個(gè)頁(yè)面的頁(yè)面編號(hào)。
6、 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述將對(duì)應(yīng)于任一數(shù)據(jù)塊的 更新數(shù)據(jù)寫(xiě)入對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊包括從末位標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面后繼續(xù)寫(xiě) 入一個(gè)頁(yè)面大小的更新數(shù)據(jù);所述建立并保存該更新數(shù)據(jù)在緩沖塊中的位置與對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù)據(jù) 的位置的對(duì)應(yīng)關(guān)系包括在更新數(shù)據(jù)所在頁(yè)面中保存和對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù) 據(jù)的位置,并將末位標(biāo)識(shí)增加一。
7、 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù) 據(jù)的位置為所述待更新數(shù)據(jù)的數(shù)據(jù)塊編號(hào)和頁(yè)面編號(hào)。
8、 根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,根據(jù)所述對(duì)應(yīng) 關(guān)系將該緩沖塊中的更新數(shù)據(jù)全部寫(xiě)入對(duì)應(yīng)數(shù)據(jù)塊包括讀取該緩沖塊對(duì)應(yīng)的數(shù)據(jù)塊中的所有數(shù)據(jù);根據(jù)所述對(duì)應(yīng)關(guān)系,使用該緩沖塊中的更新數(shù)據(jù)替換對(duì)應(yīng)的所有待更新數(shù)據(jù);將執(zhí)行所述替換后的所有數(shù)據(jù)寫(xiě)回至對(duì)應(yīng)的數(shù)據(jù)塊,并將該緩沖塊^^除為 空白緩沖塊。
9、 一種數(shù)據(jù)更新的裝置,其特征在于,該裝置包括緩沖塊定義模塊、緩 沖塊操作模塊和更新模塊;所述緩沖塊定義模塊,設(shè)置預(yù)設(shè)數(shù)量的緩沖塊;所述緩沖塊操作模塊,將對(duì)應(yīng)于任一數(shù)據(jù)塊的更新數(shù)據(jù)寫(xiě)入對(duì)應(yīng)于該數(shù)據(jù) 塊的緩沖塊,建立并保存該更新數(shù)據(jù)在緩沖塊中的位置與對(duì)應(yīng)數(shù)據(jù)塊中待更新 數(shù)據(jù)的位置的對(duì)應(yīng)關(guān)系;所述更新模塊,當(dāng)任一緩沖塊寫(xiě)滿時(shí),根據(jù)所述對(duì)應(yīng)關(guān)系將該緩沖塊中的 更新數(shù)據(jù)全部寫(xiě)入對(duì)應(yīng)數(shù)據(jù)塊。
10、 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述緩沖塊操作模塊中包括緩沖塊對(duì)應(yīng)關(guān)系判斷單元、空白塊判斷單元和擦除單元;所述緩沖塊選擇判斷單元,判斷各緩沖塊中是否緩存了對(duì)應(yīng)該數(shù)據(jù)塊的更新數(shù)據(jù),若存在緩沖塊已緩存了對(duì)應(yīng)該數(shù)據(jù)塊的更新lt悟,則將該緩沖塊確定為對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊;若所有緩沖塊均未緩存對(duì)應(yīng)該數(shù)據(jù)塊的更新數(shù)據(jù),則通知空白塊判斷單元;所述空白塊判斷單元,根據(jù)緩沖塊選擇判斷單元的通知,判斷是否存在空白緩沖塊,如果存在空白緩沖塊,則任選一個(gè)空白緩沖塊確定為對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊;如果不存在空白緩沖塊,則通知擦除單元;所述擦除單元,根據(jù)空白塊判斷單元的通知,選擇已緩存更新數(shù)據(jù)最多的緩沖塊,讀取該緩沖塊對(duì)應(yīng)的數(shù)據(jù)塊中的所有數(shù)據(jù);根據(jù)所述對(duì)應(yīng)關(guān)系,使用該緩沖塊中的更新數(shù)據(jù)替換對(duì)應(yīng)的部分待更新數(shù)據(jù);將執(zhí)行所述替換后的所有數(shù)據(jù)寫(xiě)回至對(duì)應(yīng)的數(shù)據(jù)塊,將該緩沖塊擦除為空白緩沖塊,并選擇該緩沖塊為對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊。
11、 根據(jù)權(quán)利要求IO所述的裝置,其特征在于,所述緩沖塊操作模塊,將 更新數(shù)據(jù)在緩沖塊中的位置,按照緩沖塊中頁(yè)面編號(hào)從小到大的順序依次排列, 并設(shè)置末位標(biāo)識(shí)表示所述緩沖塊中更新數(shù)據(jù)占用的最后一個(gè)頁(yè)面的頁(yè)面編號(hào);所述緩沖塊操作模塊中進(jìn)一步包括寫(xiě)入單元,從末位標(biāo)識(shí)對(duì)應(yīng)的頁(yè)面后繼 續(xù)寫(xiě)入一個(gè)頁(yè)面大小的更新數(shù)據(jù),在更新數(shù)據(jù)所在頁(yè)面中保存和對(duì)應(yīng)數(shù)據(jù)塊中 待更新數(shù)據(jù)的位置,并將末位標(biāo)識(shí)增加一;所述對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù)據(jù)的位 置為所述待更新數(shù)據(jù)的數(shù)據(jù)塊編號(hào)和頁(yè)面編號(hào)。
12、 根據(jù)權(quán)利要求9、 10或11所述的裝置,其特征在于, 所述更新模塊模塊,當(dāng)任一緩沖塊寫(xiě)滿時(shí),根據(jù)所述對(duì)應(yīng)關(guān)系,使用該緩沖塊中的更新數(shù)據(jù)替換對(duì)應(yīng)的所有待更新數(shù)據(jù);將執(zhí)行所述替換后的所有數(shù)據(jù) 寫(xiě)回至對(duì)應(yīng)的數(shù)據(jù)塊,并將該緩沖塊擦除為空白緩沖塊。
全文摘要
本發(fā)明公開(kāi)了一種數(shù)據(jù)更新的方法,設(shè)置預(yù)設(shè)數(shù)量的緩沖塊,該方法包括將對(duì)應(yīng)于任一數(shù)據(jù)塊的更新數(shù)據(jù)寫(xiě)入對(duì)應(yīng)于該數(shù)據(jù)塊的緩沖塊,建立該更新數(shù)據(jù)在緩沖塊中的位置與對(duì)應(yīng)數(shù)據(jù)塊中待更新數(shù)據(jù)的位置的對(duì)應(yīng)關(guān)系;當(dāng)任一緩沖塊寫(xiě)滿時(shí),根據(jù)所述對(duì)應(yīng)關(guān)系將該緩沖塊中的更新數(shù)據(jù)全部寫(xiě)入對(duì)應(yīng)數(shù)據(jù)塊。本發(fā)明還同時(shí)公開(kāi)了一種數(shù)據(jù)更新的裝置,該裝置包括緩沖塊定義模塊,緩沖塊操作模塊和更新模塊。本發(fā)明的數(shù)據(jù)更新的方法和裝置,避免了對(duì)數(shù)據(jù)塊中的頁(yè)面進(jìn)行數(shù)據(jù)更新時(shí)要將該數(shù)據(jù)塊中的相應(yīng)頁(yè)面更新后再將全部數(shù)據(jù)重新寫(xiě)入的重復(fù)性操作,提高了數(shù)據(jù)寫(xiě)入和更新的效率。
文檔編號(hào)G06F12/12GK101216806SQ20081005637
公開(kāi)日2008年7月9日 申請(qǐng)日期2008年1月17日 優(yōu)先權(quán)日2008年1月17日
發(fā)明者菊 何 申請(qǐng)人:北京中星微電子有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1