專利名稱:非易失性存儲(chǔ)器的平均抹除方法與裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種延長(zhǎng)存儲(chǔ)裝置的壽命的方法與裝置,尤其涉及一種適用于非易失性存儲(chǔ)器的平均抹除方法與裝置。
背景技術(shù):
如閃存的非易失性存儲(chǔ)器是不需電源即可保留存儲(chǔ)內(nèi)容。閃存通常是小尺寸,且因?yàn)樗鼈儾话苿?dòng)的構(gòu)件,所以耗電量低;此外,閃存已被廣泛地應(yīng)用在很多的產(chǎn)品上,例如,數(shù)字照相機(jī)、行動(dòng)電話、攜帶式MP3播放器。因此,閃存已被考慮作為傳統(tǒng)式硬盤和軟盤機(jī)的替代品。
閃存主要的限制是不能直接地規(guī)劃快閃存儲(chǔ)單元。在典型的使用上,在新數(shù)據(jù)寫入前,每個(gè)儲(chǔ)存有數(shù)據(jù)的快閃存儲(chǔ)單元是要先被抹除。但由于閃存的特征為其抹除寫入次數(shù)是有限的,因此當(dāng)部分存儲(chǔ)單元被抹除超出有限的次數(shù)時(shí),閃存有損壞的風(fēng)險(xiǎn)。這問題在儲(chǔ)存有系統(tǒng)程序的閃存中更顯得日益嚴(yán)重,因?yàn)榇朔N閃存甚至更少有機(jī)會(huì)去更新或是修正。因此,有必要將存儲(chǔ)單元的抹除平均地分布到所有存儲(chǔ)單元,以延長(zhǎng)閃存可使用的壽命。
美國(guó)專利第6,000,006揭露一種非易失性快閃隨機(jī)存取存儲(chǔ)器大量?jī)?chǔ)存的統(tǒng)一重映方法。隨機(jī)存取存儲(chǔ)器的一統(tǒng)一重映表被使用來任意地重映從主系統(tǒng)所有邏輯地址到閃存裝置的物理地址。每個(gè)統(tǒng)一重映表入口包含一分配到該邏輯地址的閃存的物理區(qū)塊地址。兩個(gè)寫入次數(shù)值會(huì)以該物理區(qū)塊地址存于表的入口??倢懭氪螖?shù)指出自從制造后寫入快閃區(qū)塊的總數(shù)。增加寫入數(shù)量指出寫入數(shù)量來自最近一次移動(dòng)該區(qū)塊的平均抹除的動(dòng)作。當(dāng)總數(shù)和增加數(shù)兩者超出系統(tǒng)總和及增加門檻時(shí),對(duì)一正在寫入的區(qū)塊進(jìn)行平均抹除。無論如何,在此前案所揭露的平均抹除方法是無法適用于閃存的靜態(tài)區(qū),該靜態(tài)區(qū)是閃存的物理位置,其包含幾乎不改變的數(shù)據(jù)。舉例而言,數(shù)據(jù)可以是操作系統(tǒng)的編碼或是應(yīng)用程序。此外,所有快閃存儲(chǔ)單元重映表的供應(yīng)對(duì)閃存而言亦是一個(gè)相當(dāng)大的成本耗費(fèi)。
美國(guó)專利第6,732,221揭露一種閃存靜態(tài)區(qū)的平均抹除方法,此專利教示在某程度的寫入或刪除動(dòng)作量下,激活一次平均抹除動(dòng)作。在激活平均抹除動(dòng)作后,閃存的一存儲(chǔ)單元被選擇(無關(guān)于存儲(chǔ)單元被刪除的頻率),以將該存儲(chǔ)單元的數(shù)據(jù)移動(dòng)至一空閑的存儲(chǔ)單元。此存儲(chǔ)單元系依照在連續(xù)的選擇將會(huì)選到所有單位的方式下而被選擇。此平均抹除的方法提供一修改靜態(tài)區(qū)的存取模式的機(jī)會(huì)。然而卻不提供選擇存儲(chǔ)區(qū)塊的準(zhǔn)則,且不必要的抹除可能發(fā)生在那些經(jīng)常被抹除的單元。
發(fā)明內(nèi)容
本發(fā)明提供一種非易失性存儲(chǔ)器的平均抹除方法與裝置。在發(fā)明的一優(yōu)選實(shí)施例中,以高效率且均等化的方式來進(jìn)行在非易失性存儲(chǔ)器上的抹除。此外,該方法提供改變非易失性存儲(chǔ)器靜態(tài)區(qū)存取模式的能力。
本發(fā)明的一優(yōu)選實(shí)施例是一平均抹除方法,其用于包含多數(shù)存儲(chǔ)區(qū)塊的非易失性存儲(chǔ)器。首先,保持對(duì)于該非易失性存儲(chǔ)器的至少一可能冷區(qū)塊的記錄。接著,當(dāng)門檻條件發(fā)生時(shí),將可能冷區(qū)塊的數(shù)據(jù)移動(dòng)到存儲(chǔ)區(qū)塊中至少一空閑區(qū)塊。例如,當(dāng)非易失性存儲(chǔ)器動(dòng)作一段預(yù)設(shè)的時(shí)間,該門檻條件可以發(fā)生。優(yōu)選地,保持對(duì)于該非易失性存儲(chǔ)器的至少一可能冷區(qū)塊的記錄的步驟更進(jìn)一步地包含通過自非揮發(fā)存儲(chǔ)器中選擇存有數(shù)據(jù)的多數(shù)存儲(chǔ)區(qū)塊的至少一存儲(chǔ)區(qū)塊,進(jìn)而初始化該記錄;優(yōu)選地,該方法包含一額外的步驟,其提供一寫入計(jì)數(shù)以計(jì)算非揮發(fā)存儲(chǔ)器的寫入命令次數(shù)。該門檻條件系發(fā)生在當(dāng)該寫入計(jì)數(shù)超出預(yù)設(shè)的寫入計(jì)數(shù)門檻。該方法可包含在移動(dòng)冷區(qū)塊中的數(shù)據(jù)后,一重置寫入量的步驟。在另一實(shí)施例,該方法包含非易失性存儲(chǔ)器的寫入地址對(duì)應(yīng)到記錄中的一可能冷區(qū)塊時(shí),更新該記錄的步驟。該方法可更進(jìn)一步地包含以閃存中儲(chǔ)存數(shù)據(jù)的一新存儲(chǔ)區(qū)塊取代記錄中的對(duì)應(yīng)的可能冷區(qū)塊的步驟。該新存儲(chǔ)區(qū)塊是在預(yù)設(shè)的順序中與可能冷區(qū)塊相關(guān)連的一個(gè);例如,在向下順序中,該新存儲(chǔ)器區(qū)塊是位于可能冷區(qū)塊之后?;蛘撸谙蛏系捻樞蛑?,該新存儲(chǔ)器區(qū)塊在可能冷區(qū)塊之前。在另一變化中,該方法更進(jìn)一步包含一再初始化步驟,以在移動(dòng)可能冷區(qū)塊中的數(shù)據(jù)后,選擇至少一新可能冷區(qū)塊。
本發(fā)明的另一實(shí)施例提供在非易失性存儲(chǔ)器中識(shí)別鮮少抹除區(qū)塊的方法,該非易失性存儲(chǔ)器包含多數(shù)個(gè)存儲(chǔ)區(qū)塊且特征為具有有限的抹除次數(shù)。該方法包含有在一非易失性存儲(chǔ)器中選擇至少一儲(chǔ)存有數(shù)據(jù)的存儲(chǔ)區(qū)塊作為可能鮮少抹除的區(qū)塊;當(dāng)在非揮發(fā)存儲(chǔ)器中寫入命令的寫入地址對(duì)應(yīng)可能鮮少抹除的區(qū)塊時(shí),以新存儲(chǔ)區(qū)塊取代該可能鮮少抹除的區(qū)塊;并當(dāng)門檻條件發(fā)生時(shí),識(shí)別可能鮮少抹除的區(qū)塊為鮮少抹除的區(qū)塊。例如,當(dāng)該非易失性存儲(chǔ)器動(dòng)作一段預(yù)設(shè)的時(shí)間,門檻條件可能發(fā)生。優(yōu)選地,該方法更進(jìn)一步地包含一提供探查索引的步驟,其可指定一儲(chǔ)存有數(shù)據(jù)且以一預(yù)設(shè)的順序關(guān)連于可能鮮少抹除的區(qū)塊的存儲(chǔ)區(qū)塊。該新存儲(chǔ)區(qū)塊可被選自通過探查索引指定的存儲(chǔ)區(qū)塊。優(yōu)選地,該方法可進(jìn)一步地包含提供一寫入計(jì)數(shù),該寫入計(jì)數(shù)用以計(jì)算非揮發(fā)存儲(chǔ)器的寫入次數(shù),且每寫入一次即會(huì)加一次。當(dāng)該寫入計(jì)數(shù)超出一預(yù)設(shè)的寫入門檻,該門檻條件發(fā)生。
本發(fā)明的又一實(shí)施例為一非易失性存儲(chǔ)器的平均抹除裝置,該非易失性存儲(chǔ)器包含多個(gè)存儲(chǔ)區(qū)塊。該抹除裝置包括一存儲(chǔ)單元,用以儲(chǔ)存一非易失性存儲(chǔ)器中的多個(gè)可能冷區(qū)塊;及一控制單元,系以一關(guān)連于可能冷區(qū)塊的一寫入命令來選擇一新存儲(chǔ)區(qū)塊,以取代該可能冷區(qū)塊之一,并且當(dāng)達(dá)到門檻條件時(shí),用以移動(dòng)非易失性存儲(chǔ)器中的可能冷區(qū)塊的數(shù)據(jù)至空閑區(qū)塊。優(yōu)選地,該存儲(chǔ)單元包含一個(gè)或多個(gè)可能冷區(qū)塊儲(chǔ)存器用以儲(chǔ)存可能冷區(qū)塊的物理區(qū)塊位置,一寫入計(jì)數(shù)器用以計(jì)算非揮發(fā)存儲(chǔ)器的寫入次數(shù),以及一探查索引以指定一儲(chǔ)存有數(shù)據(jù)且在向下順序中最接近該可能冷區(qū)塊的存儲(chǔ)區(qū)塊。
圖1為根據(jù)本發(fā)明一優(yōu)選實(shí)施例的平均抹除裝置的方塊圖。
圖2為根據(jù)本發(fā)明一優(yōu)選實(shí)施例的平均抹除方法的流程圖。
圖3為根據(jù)本發(fā)明另一優(yōu)選實(shí)施例的平均抹除方法的流程圖。
圖4A~4E為根據(jù)本發(fā)明平均抹除方法的示范操作。
圖5為無平均抹除機(jī)制的閃存的統(tǒng)計(jì)模型。
圖6顯示根據(jù)本發(fā)明優(yōu)選實(shí)施例中執(zhí)行該平均抹除方法在閃存上窗口大小的影響評(píng)估的模擬結(jié)果。
圖7顯示根據(jù)本發(fā)明優(yōu)選實(shí)施例中執(zhí)行該平均抹除方法在閃存上寫入計(jì)數(shù)門檻的影響評(píng)估的模擬結(jié)果。
圖8為無平均抹除機(jī)制的一般的閃存與根據(jù)本發(fā)明優(yōu)選實(shí)施例中執(zhí)行該平均抹除方法的閃存的抹除統(tǒng)計(jì)的比較。
主要組件符號(hào)說明10主機(jī)20平均抹除裝置30非易失性存儲(chǔ)器22控制單元24存儲(chǔ)單元220 控制器222 比較器224 存儲(chǔ)器對(duì)應(yīng)表240 可能冷區(qū)塊儲(chǔ)存器242 寫入計(jì)數(shù)器244 探查索引具體實(shí)施方式
一般而言,本發(fā)明涉及一非易失性存儲(chǔ)器的平均抹除方法。本發(fā)明的一優(yōu)選實(shí)施例中,至少有一存儲(chǔ)器的熱區(qū)塊被選擇作為可能冷區(qū)塊,該可能冷區(qū)塊是一個(gè)鮮少被抹除的區(qū)塊。該可能冷區(qū)塊的物理地址記錄在一存儲(chǔ)單元并且與每個(gè)存取該非易失性存儲(chǔ)器的寫入命令中的寫入地址相比較。當(dāng)上述的比較地址相配時(shí),該記錄通過取代該存儲(chǔ)單元中的該寫入地址為一熱區(qū)塊的物理地址而更新之。當(dāng)該非易失性存儲(chǔ)器已被寫入次數(shù)多于寫入計(jì)數(shù)門檻時(shí),該可能冷區(qū)塊的數(shù)據(jù)被移動(dòng)至一個(gè)或多個(gè)非易失性存儲(chǔ)器的空閑區(qū)塊。該寫入計(jì)數(shù)門檻可依設(shè)計(jì)而變化。
此外,本發(fā)明提供一用于一包含多數(shù)個(gè)存儲(chǔ)區(qū)塊的非易失性存儲(chǔ)器的平均抹除裝置。本發(fā)明優(yōu)選的平均抹除裝置包含一存儲(chǔ)單元和一控制單元。該存儲(chǔ)單元儲(chǔ)存閃存的可能冷區(qū)塊。該控制單元用以在門檻條件下更新該存儲(chǔ)單元及釋放可能冷區(qū)塊。更特別地,當(dāng)非易失性存儲(chǔ)器寫入命令的寫入地址對(duì)應(yīng)到該可能冷區(qū)塊時(shí),該控制單元會(huì)選擇在存儲(chǔ)單元中一新存儲(chǔ)區(qū)塊以取代該可能冷區(qū)塊。當(dāng)該非易失性存儲(chǔ)器已被寫入次數(shù)多于寫入計(jì)數(shù)門檻時(shí),該控制單元移動(dòng)該可能冷區(qū)塊的數(shù)據(jù)至非易失性存儲(chǔ)器的空閑區(qū)塊。此方法中的判斷準(zhǔn)則,在該非易失性存儲(chǔ)器上,鮮少被抹除的存儲(chǔ)區(qū)塊可以被釋放以平均對(duì)非易失性存儲(chǔ)器的抹除?;蚴牵鶕?jù)另一準(zhǔn)則,該控制單元移動(dòng)該可能冷區(qū)塊的數(shù)據(jù)至非易失性存儲(chǔ)器的空閑區(qū)塊。該另一準(zhǔn)則可以是當(dāng)該非易失性存儲(chǔ)器已動(dòng)作超過一段時(shí)間,例如約10分鐘。
圖1所示是根據(jù)本發(fā)明的優(yōu)選實(shí)施例的平均抹除裝置的區(qū)塊方塊圖。平均抹除裝置20用以將整個(gè)非易失性存儲(chǔ)器30的抹除作均勻的分散。該平均抹除裝置20連接主機(jī)10和該非易失性存儲(chǔ)器30。如圖1所示,閃存30是一示范的非易失性存儲(chǔ)器30,需注意的是,該平均抹除裝置20根據(jù)本發(fā)明亦可應(yīng)用到其它型式的非易失性存儲(chǔ)器。例如,本發(fā)明亦可實(shí)施在抹除式只讀存儲(chǔ)器(EPROM)、電子抹除式只讀存儲(chǔ)器(EEPROM)、及此等類似存儲(chǔ)器。該閃存30包含多數(shù)個(gè)的存儲(chǔ)區(qū)塊。存儲(chǔ)區(qū)塊是抹除動(dòng)作的基本元素。該主機(jī)10可以發(fā)出一讀取命令自該閃存30去讀取數(shù)據(jù)。同樣地,該主機(jī)10也可以發(fā)出一寫入命令去指定一寫入地址將數(shù)據(jù)寫入至該閃存30。該寫入地址通過該平均抹除裝置20分析,以將整個(gè)閃存30的抹除作均勻地分布。以此方式,本發(fā)明通過延緩該閃存30的故障始點(diǎn)進(jìn)而延長(zhǎng)該閃存30的壽命。
如圖1所示,該平均抹除裝置20包含一控制單元22和一存儲(chǔ)單元24,其中該控制單元22是用以處理寫入命令的寫入地址。該存儲(chǔ)單元24是用以儲(chǔ)存該閃存30有關(guān)可能冷區(qū)塊的記錄。其中,定義“冷區(qū)塊”為關(guān)于相對(duì)地鮮少抹除的一存儲(chǔ)區(qū)塊。確認(rèn)該冷區(qū)塊的準(zhǔn)則詳述如下,該控制單元22包含一控制器220、一比較器222、及一存儲(chǔ)器對(duì)應(yīng)表224。該控制器220執(zhí)行平均抹除算法。該存儲(chǔ)單元24包含一可能冷區(qū)塊儲(chǔ)存器240、一寫入計(jì)數(shù)器242、及一探查索引244。該可能冷區(qū)塊儲(chǔ)存器240儲(chǔ)存該閃存30的可能冷區(qū)塊的物理區(qū)塊地址。
在本發(fā)明示范操作中,當(dāng)該主機(jī)10欲寫入特定的閃存30的存儲(chǔ)區(qū)塊時(shí),該主機(jī)10會(huì)發(fā)出一與該特定存儲(chǔ)區(qū)塊有關(guān)連邏輯區(qū)塊地址的寫入命令。該控制單元22的控制器220邏輯區(qū)塊地址轉(zhuǎn)變?yōu)橐粎⒖荚摯鎯?chǔ)器對(duì)應(yīng)表224的物理區(qū)塊地址。通過該存儲(chǔ)器對(duì)應(yīng)表224所轉(zhuǎn)換的該物理區(qū)塊地址亦可被指定為“寫入地址”。該寫入地址與可能冷區(qū)塊儲(chǔ)存器240中的每個(gè)可能冷區(qū)塊的物理區(qū)塊地址相比較。當(dāng)該寫入地址對(duì)應(yīng)到儲(chǔ)存在可能冷區(qū)塊儲(chǔ)存器240中的一可能冷區(qū)塊,即從可能冷區(qū)塊儲(chǔ)存器240中將被該寫入地址對(duì)應(yīng)到的可能冷區(qū)塊的物理地址移除。接著,從該閃存30中一儲(chǔ)存有數(shù)據(jù)的存儲(chǔ)區(qū)塊選擇一新可能冷區(qū)塊,并儲(chǔ)存該新冷區(qū)塊的物理地址在可能冷區(qū)塊儲(chǔ)存器240。其中,閃存30中該儲(chǔ)存有數(shù)據(jù)的存儲(chǔ)區(qū)塊也被指定為“熱區(qū)塊”。
在以下某些準(zhǔn)則確認(rèn)存儲(chǔ)區(qū)塊為可能冷區(qū)塊。例如,基于預(yù)設(shè)的寫入計(jì)數(shù)門檻,保留在可能冷區(qū)塊儲(chǔ)存器240中的存儲(chǔ)區(qū)塊可被確認(rèn)為冷區(qū)塊。詳細(xì)而言,當(dāng)有關(guān)某個(gè)存儲(chǔ)區(qū)塊的被寫入動(dòng)作量超過寫入計(jì)數(shù)門檻,該存儲(chǔ)區(qū)塊可被視為冷區(qū)塊。接著,移動(dòng)在確定冷區(qū)塊中的數(shù)據(jù)至閃存30的空閑區(qū)塊。之后,從閃存30的熱區(qū)塊中選擇新可能冷區(qū)塊,并將該新可能冷區(qū)塊的物理地址存儲(chǔ)在可能冷區(qū)塊儲(chǔ)存器240??赡芾鋮^(qū)塊儲(chǔ)存器240的窗口大小及預(yù)設(shè)的寫入計(jì)數(shù)門檻可以根據(jù)設(shè)計(jì)選擇而變化。其中,該預(yù)設(shè)的寫入計(jì)數(shù)門檻可以從十次至數(shù)百次。此外,該預(yù)設(shè)的寫入計(jì)數(shù)門檻可以參考很多因素而決定,例如,熱數(shù)據(jù)與冷數(shù)據(jù)的比值、熱數(shù)據(jù)的更新頻率等,但不限定于此?;蛘?,直接的方法是模擬真實(shí)產(chǎn)品的運(yùn)轉(zhuǎn)狀態(tài)而評(píng)估及決定該寫入計(jì)數(shù)門檻。
圖2是顯示平均抹除裝置20的示范操作的一流程圖。步驟400到步驟404是由控制器220所執(zhí)行的初始化的步驟,以準(zhǔn)備閃存30可被主機(jī)20所存取。在步驟400,至少一閃存30的熱區(qū)塊被選擇作為可能冷區(qū)塊??赡芾鋮^(qū)塊的物理地址存儲(chǔ)儲(chǔ)存在可能冷區(qū)塊儲(chǔ)存器240。之后,在步驟402,初始化探查索引244用以指定閃存30中一特定的物理區(qū)塊地址。例如,該特定物理區(qū)塊地址可以是一熱區(qū)塊的物理區(qū)塊地址,其是在向下順序中最接近的可能冷區(qū)塊。接著,在步驟404中,將寫入計(jì)數(shù)器242重設(shè)儲(chǔ)存寫入次數(shù)歸零。該特定物理區(qū)塊位置也可以是一熱區(qū)塊的物理區(qū)塊地址,其是在向上順序中最接近的可能冷區(qū)塊。
接著,在步驟406中,該控制器220等待自主機(jī)10傳送過來的寫入命令。在步驟408中,如果傳自該主機(jī)10的寫入命令存取閃存30,則儲(chǔ)存在寫入計(jì)數(shù)器242的該寫入次數(shù)會(huì)加1。接著,在步驟410,將寫入命令的寫入地址與儲(chǔ)存在可能冷區(qū)塊儲(chǔ)存器240中該可能冷區(qū)塊的物理區(qū)塊地址比較。當(dāng)該寫入地址不是對(duì)應(yīng)到在可能冷區(qū)塊儲(chǔ)存器240中該任何可能冷區(qū)塊的物理區(qū)塊地址時(shí),抹除過程回到步驟406。除此以外,步驟412~414表示當(dāng)該寫入地址對(duì)應(yīng)到在可能冷區(qū)塊儲(chǔ)存器240中該可能冷區(qū)塊的物理區(qū)塊地址時(shí)。
在步驟412中,當(dāng)該寫入地址對(duì)應(yīng)到物理區(qū)塊地址,該物理區(qū)塊地址從可能冷區(qū)塊儲(chǔ)存器240中移除。在步驟414中,選擇并儲(chǔ)存一新可能冷區(qū)塊到可能冷區(qū)塊儲(chǔ)存器240中。更特別地,該新可能冷區(qū)塊是一被探查索引244指定的熱區(qū)塊。之后,在該新可能冷區(qū)塊被儲(chǔ)存后,探查索引244指定下一個(gè)熱區(qū)塊。熱區(qū)塊是一個(gè)有數(shù)據(jù)儲(chǔ)存的存儲(chǔ)區(qū)塊。本發(fā)明的好處是讓所有存儲(chǔ)區(qū)塊都變成熱區(qū)塊、且在所有熱區(qū)塊中平均地抹除。因此,將符合條件的冷區(qū)塊的數(shù)據(jù)移動(dòng)到空閑區(qū)塊,使得空閑區(qū)塊可變成“熱區(qū)塊”。此示范過程如圖2及圖3所示持續(xù)去確認(rèn)并釋放冷區(qū)塊,直到閃存故障為止。該探查索引指出下一個(gè)熱區(qū)塊以方便規(guī)劃是優(yōu)選的作法。無論如何,探查策略可以是連續(xù)的、隨機(jī)的、或其它特殊要求所設(shè)計(jì)的順序。探查策略可以是為特定產(chǎn)品量身定做的。因此,上述的連續(xù)檢查策略是為了說明,并不是加以限制本發(fā)明的范圍。
接著,步驟420檢查寫入計(jì)數(shù)器242的寫入次數(shù)是否大于預(yù)設(shè)的寫入計(jì)數(shù)門檻。當(dāng)寫入次數(shù)沒有大于預(yù)設(shè)的寫入計(jì)數(shù)門檻時(shí),該平均抹除過程回到步驟406。除此以外,步驟422~426表示當(dāng)寫入次數(shù)大于預(yù)設(shè)的寫入計(jì)數(shù)門檻時(shí)。在步驟422,在可能冷區(qū)塊儲(chǔ)存器240中該可能冷區(qū)塊視為冷區(qū)塊且將該冷區(qū)塊的數(shù)據(jù)移動(dòng)到閃存30中的空閑區(qū)塊。于步驟424中,參照探查索引244以選出至少一新可能冷區(qū)塊,并存儲(chǔ)該新可能冷區(qū)塊的物理區(qū)塊地址在可能冷區(qū)塊儲(chǔ)存器240。于步驟426中,寫入計(jì)數(shù)器242的寫入次數(shù)重設(shè)歸零,該平均抹除程序回到步驟406,以等待下一個(gè)寫入命令。
圖4A~4E提供本發(fā)明平均抹除方法的優(yōu)選實(shí)施例的示范操作。在圖4A~4E,標(biāo)示“CBC”的閃存30的存儲(chǔ)區(qū)塊是可能冷區(qū)塊。標(biāo)示“FB”的存儲(chǔ)區(qū)塊代表空閑區(qū)塊。標(biāo)示“DB”的存儲(chǔ)區(qū)塊代表臟區(qū)塊。標(biāo)示“HB”的存儲(chǔ)區(qū)塊代表熱區(qū)塊。
如圖4A所示,可能冷區(qū)塊儲(chǔ)存器240的窗口大小為四。在初始化步驟中,閃存30的前四個(gè)熱區(qū)塊被選為可能冷區(qū)塊。存儲(chǔ)在可能冷區(qū)塊儲(chǔ)存器240的前四個(gè)熱區(qū)塊的物理區(qū)塊地址即為0x00、0x01、0x02、0x03,并且探查索引244指出一物理區(qū)塊地址0x04是在向下順序中,最接近緊接前面的可能冷區(qū)塊的一熱區(qū)塊。
參照?qǐng)D4B所示,從主機(jī)10發(fā)出寫入命令中的寫入地址對(duì)應(yīng)到在可能冷區(qū)塊儲(chǔ)存器240中的物理區(qū)塊地址0x02時(shí),物理區(qū)塊地址0x02的記錄被探查索引指定的物理區(qū)塊地址0x04取代。此外,探查索引指定一物理區(qū)塊地址0x06的熱區(qū)塊,其是在向下順序中,最接近緊接前面的可能冷區(qū)塊。
同樣地,參照?qǐng)D4C所示,從主機(jī)10發(fā)出的另一寫入命令的寫入地址對(duì)應(yīng)到在可能冷區(qū)塊儲(chǔ)存器240中的物理區(qū)塊地址0x02時(shí),物理區(qū)塊地址0x03的存儲(chǔ)被探頭入射點(diǎn)指定的物理區(qū)塊地址0x06取代。此外,探頭入射點(diǎn)指定一物理區(qū)塊地址0x08的熱區(qū)塊,其是在向下順序中,最接近緊接前面的可能冷區(qū)塊之一。
參照?qǐng)D4D所示,在預(yù)設(shè)的寫入操作量之后,保留在可能冷區(qū)塊儲(chǔ)存器240中的物理區(qū)塊地址被視為冷區(qū)塊,其代表鮮少被抹除的存儲(chǔ)區(qū)塊。該確定冷區(qū)塊的數(shù)據(jù)被移動(dòng)到空閑區(qū)塊。該確定冷區(qū)塊變成臟區(qū)塊,且在“垃圾收集過程”后可被再存取。在該技術(shù)領(lǐng)域中,該垃圾收集過程是習(xí)知技術(shù)且被充分地了解,在此不多作描述。
之后,如圖4E所示,通過上述探查索引的幫助,選擇新可能冷區(qū)塊,并且有關(guān)新可能冷區(qū)塊的物理區(qū)塊地址0x08、0x09、0x0A、0x0B分別被存儲(chǔ)在可能冷區(qū)塊儲(chǔ)存器240中。
上述在連續(xù)的順序中閃存30的前四個(gè)熱區(qū)塊被選為可能冷區(qū)塊。無論如何,該可能冷區(qū)塊亦可在隨機(jī)順序中被選擇。此外,移動(dòng)確定冷區(qū)塊的數(shù)據(jù)到空閑區(qū)塊的動(dòng)作可在幕后執(zhí)行。使用者將不再注意到閃存30中因移動(dòng)動(dòng)作的延遲。此外,抹除次數(shù)的范疇可被提供在閃存30的每個(gè)存儲(chǔ)區(qū)塊的儲(chǔ)備區(qū),并且記錄每個(gè)存儲(chǔ)區(qū)塊中抹除操作量。如果可能冷區(qū)塊中抹除操作量不是少于門檻值時(shí),該可能冷區(qū)塊將不被確定為冷區(qū)塊。
如圖3所示,是本發(fā)明另一優(yōu)選實(shí)施例的平均抹除方法的流程圖,該步驟大致和圖2相似。不過在步驟510中,如果該寫入地址不對(duì)應(yīng)到在可能冷區(qū)塊儲(chǔ)存器240中任何可能冷區(qū)塊的物理區(qū)塊地址時(shí),此實(shí)施例的抹除過程將到步驟520。此外,在步驟510中,如果寫入地址對(duì)應(yīng)到在可能冷區(qū)塊儲(chǔ)存器240中一可能冷區(qū)塊的物理區(qū)塊地址,在可能冷區(qū)塊儲(chǔ)存器240更新為新可能冷區(qū)塊后,在步驟516中重設(shè)寫入次數(shù)為零。在此優(yōu)選實(shí)施例中,該平均抹除方法可以說明多次寫入操作比較不相配的存取模式。
圖5所示為執(zhí)行10,000,000次試驗(yàn)的寫入操作至4096個(gè)區(qū)塊的閃存的模擬模型。橫坐標(biāo)表示邏輯區(qū)塊地址(LBA),縱坐標(biāo)表示有關(guān)邏輯區(qū)塊地址(LBA)企圖被寫入的總寫入次數(shù)。如圖5所示,該寫入次數(shù)分布是常態(tài)的分布,且不均勻的抹除分布可被輕易地觀察到。
圖6所示為根據(jù)本發(fā)明執(zhí)行平均抹除方法以對(duì)閃存上窗口大小影響的評(píng)價(jià)的模擬結(jié)果,其中橫坐標(biāo)表示窗口大小(可能冷區(qū)塊儲(chǔ)存器中區(qū)塊的數(shù)量)以及縱坐標(biāo)表示寫入次數(shù)分布的標(biāo)準(zhǔn)差。在此模擬,該寫入門檻為10,000次。從此圖可看出,寫入次數(shù)分布的標(biāo)準(zhǔn)差減少,且窗口大小增加時(shí),抹除是更均勻地分布在整個(gè)閃存。
圖7所示為根據(jù)本發(fā)明執(zhí)行平均抹除方法以對(duì)閃存上寫入計(jì)數(shù)門檻影響的評(píng)價(jià)的模擬結(jié)果,其中橫坐標(biāo)表示寫入計(jì)數(shù)門檻以及縱坐標(biāo)表示寫入次數(shù)分布的標(biāo)準(zhǔn)差。在此模擬中,窗口大小是1。從此圖可看出,寫入次數(shù)分布的標(biāo)準(zhǔn)差減少,且寫入計(jì)數(shù)門檻減少時(shí)抹除是更均勻地分布在整個(gè)閃存,即,平均抹除更頻繁被實(shí)施。
圖8所示為無平均抹除機(jī)制的一般閃存與根據(jù)本發(fā)明優(yōu)選實(shí)施例中執(zhí)行該平均抹除方法的閃存的抹除統(tǒng)計(jì)的比較。在這兩個(gè)閃存中,其在實(shí)施該存儲(chǔ)區(qū)塊數(shù)量為4096,且10,000,000次試驗(yàn)的寫入操作所進(jìn)行的模擬。在圖左半部出現(xiàn)密集的曲線A(以虛線表示),其表示為無平均抹除機(jī)制的一般的閃存的抹除統(tǒng)計(jì),該抹除被集中在部分的存儲(chǔ)區(qū)塊,且在根據(jù)24,949,984次試驗(yàn)的寫入操作后,該閃存開始產(chǎn)生缺陷。接近圖下方的平滑的曲線B(以實(shí)線表示)表示根據(jù)本發(fā)明執(zhí)行該平均抹除方法的閃存的抹除統(tǒng)計(jì)。在此例子中,窗口大小是1及寫入計(jì)數(shù)門檻是10次。從此圖可看出,抹除是均勻地分布在所有的區(qū)塊。根據(jù)模擬結(jié)果,在387,881,253次試驗(yàn)的寫入操作后,該閃存開始產(chǎn)生缺陷,其表示相對(duì)于無平均抹除機(jī)制的閃存大約有15倍的改善。
因此,非易失性存儲(chǔ)器平均寫入方法及裝置系使用存儲(chǔ)單元儲(chǔ)存可能冷區(qū)塊地址。該平均抹除可以較少的存儲(chǔ)器耗費(fèi)及較高的效率來予以執(zhí)行。
上述揭露本發(fā)明優(yōu)選的實(shí)施例已表示圖解及說明的效用。其不用以徹底的預(yù)期或限制發(fā)明的明確的揭露類型。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域具通常知識(shí)者而言,在此很多種實(shí)施例的變化及修改描述將是明顯的。本發(fā)明權(quán)利范圍自應(yīng)以權(quán)利要求及其等效范圍所述為準(zhǔn)。
再者,在本發(fā)明所描述代表性的實(shí)施例中,已敘述本發(fā)明的方法及/或過程為特定的連續(xù)步驟。無論如何,本方法或過程不依賴前述的特定順序的步驟,且不受特定的連續(xù)步驟限制其范圍。當(dāng)本發(fā)明所屬技術(shù)領(lǐng)域具通常知識(shí)者理解,其它連續(xù)的步驟是可能發(fā)生的。因此,在設(shè)定的前說明書的特定順序的步驟不應(yīng)該被解釋為權(quán)利要求上的限制。另外,本發(fā)明的方法及/或過程的權(quán)利要求不應(yīng)該被前述的步驟所限制,且本發(fā)明所屬技術(shù)領(lǐng)域具通常知識(shí)者可輕易地理解此次序是可變化的及此次序仍舊保持在本發(fā)明精神和范圍。
權(quán)利要求
1.一種非易失性存儲(chǔ)器的平均抹除方法,該非易失性存儲(chǔ)器包含有多個(gè)存儲(chǔ)區(qū)塊,該方法包括在該非易失性存儲(chǔ)器之中,保持至少一可能冷區(qū)塊的一記錄;以及當(dāng)一門檻條件發(fā)生時(shí),將該至少一可能冷區(qū)塊的數(shù)據(jù)移動(dòng)至該多個(gè)存儲(chǔ)區(qū)塊中的至少一空閑區(qū)塊。
2.如權(quán)利要求1所述的方法,其中,該保持至少一可能冷區(qū)塊的記錄的步驟更包含在該非易失性存儲(chǔ)器的該多個(gè)存儲(chǔ)區(qū)塊中,通過選擇至少一存儲(chǔ)區(qū)塊,而初始化該記錄。
3.如權(quán)利要求1所述的方法,更包含提供一寫入計(jì)數(shù),其用以計(jì)算該非易失性存儲(chǔ)器的寫入命令數(shù)量。
4.如權(quán)利要求3所述的方法,其中,當(dāng)該寫入計(jì)數(shù)超出一預(yù)設(shè)的寫入計(jì)數(shù)門檻時(shí),該門檻條件發(fā)生。
5.如權(quán)利要求1所述的方法,其中,當(dāng)該非易失性存儲(chǔ)器于操作一段預(yù)設(shè)的時(shí)間后,該門檻條件發(fā)生。
6.如權(quán)利要求1所述的方法,更包含當(dāng)該非易失性存儲(chǔ)器的一寫入地址對(duì)應(yīng)到在該記錄中的一可能冷區(qū)塊時(shí),更新該記錄。
7.如權(quán)利要求6所述的方法,更包含以該非易失性存儲(chǔ)器中儲(chǔ)存有數(shù)據(jù)的一新存儲(chǔ)區(qū)塊取代該記錄中被對(duì)應(yīng)的該可能冷區(qū)塊。
8.如權(quán)利要求7所述的方法,其中,該新存儲(chǔ)區(qū)塊是以一預(yù)設(shè)的順序關(guān)連于該可能冷區(qū)塊。
9.如權(quán)利要求8所述的方法,其中,該新存儲(chǔ)區(qū)塊是該可能冷區(qū)塊在向下順序中的次一個(gè)。
10.如權(quán)利要求8所述的方法,其中,該新存儲(chǔ)區(qū)塊是該可能冷區(qū)塊在向上順序中的前一個(gè)。
11.如權(quán)利要求1所述的方法,更包含于移動(dòng)可能冷區(qū)塊的數(shù)據(jù)后,通過選擇至少另一可能冷區(qū)塊,以再初始化該記錄。
12.如權(quán)利要求3所述的方法,更包含于移動(dòng)該可能冷區(qū)塊的數(shù)據(jù)后,重置該寫入計(jì)數(shù)。
13.一種非易失性存儲(chǔ)器中識(shí)別鮮少抹除區(qū)塊的方法,其中該非易失性存儲(chǔ)器含有多個(gè)存儲(chǔ)區(qū)塊且具有限抹除次數(shù)的特征,該方法包含自該非易失性存儲(chǔ)器中選擇至少一存儲(chǔ)區(qū)塊,該存儲(chǔ)區(qū)塊儲(chǔ)存有數(shù)據(jù),以作為一可能鮮少抹除區(qū)塊;在該非易失性存儲(chǔ)器中,當(dāng)一寫入命令中的一寫入地址對(duì)應(yīng)到該可能鮮少抹除區(qū)塊時(shí),以一新存儲(chǔ)區(qū)塊取代該可能鮮少抹除區(qū)塊;以及當(dāng)一門檻條件發(fā)生時(shí),將該可能鮮少抹除區(qū)塊識(shí)別為鮮少抹除區(qū)塊。
14.如權(quán)利要求13所述的方法,更包含提供一探查索引,系指定一存儲(chǔ)區(qū)塊,該存儲(chǔ)區(qū)塊儲(chǔ)存有數(shù)據(jù),并以一預(yù)設(shè)的順序關(guān)連于該可能鮮少抹除區(qū)塊。
15.如權(quán)利要求14所述的方法,其中該新存儲(chǔ)區(qū)塊選自該探查索引所指定的一存儲(chǔ)區(qū)塊。
16.如權(quán)利要求13所述的方法,更包含有提供一寫入計(jì)數(shù)的步驟,其用以計(jì)算對(duì)于該非易失性存儲(chǔ)器的寫入次數(shù),且在每寫入一次時(shí),該寫入計(jì)數(shù)即增加一次。
17.如權(quán)利要求16所述的方法,其中,當(dāng)該寫入計(jì)數(shù)超出一預(yù)設(shè)的寫入計(jì)數(shù)門檻時(shí),該門檻條件發(fā)生。
18.如權(quán)利要求13所述的方法,其中,當(dāng)該非易失性存儲(chǔ)器于操作一段預(yù)設(shè)的時(shí)間后,該門檻條件發(fā)生。
19.一種非易失性存儲(chǔ)器的平均抹除裝置,該非易失性存儲(chǔ)器包含有多個(gè)存儲(chǔ)區(qū)塊,該裝置包括一存儲(chǔ)單元,用以存儲(chǔ)該非易失性存儲(chǔ)器的可能冷區(qū)塊;以及一控制單元,以使用一關(guān)連于該可能冷區(qū)塊的寫入命令,來選擇一新存儲(chǔ)區(qū)塊以取代該可能冷區(qū)塊的其中之一,并且于達(dá)到一門檻條件時(shí),用以將非易失性存儲(chǔ)器中的可能冷區(qū)塊的數(shù)據(jù)移動(dòng)至空閑區(qū)塊。
20.如權(quán)利要求19所述的裝置,其中該存儲(chǔ)單元更包含有一可能冷區(qū)塊儲(chǔ)存器,以儲(chǔ)存該可能冷區(qū)塊的物理地址。
21.如權(quán)利要求19所述的裝置,其中該存儲(chǔ)單元更包含有一寫入計(jì)數(shù)器,用以計(jì)算對(duì)該非易失性存儲(chǔ)器的寫入次數(shù)。
22.如權(quán)利要求19所述的裝置,其中該存儲(chǔ)單元更包含有一探查索引,用以指出一存儲(chǔ)區(qū)塊,該存儲(chǔ)區(qū)塊儲(chǔ)存有數(shù)據(jù),且該存儲(chǔ)區(qū)塊在向下順序中最接近該可能冷區(qū)塊。
23.如權(quán)利要求21所述的裝置,其中該門檻條件是當(dāng)該非易失性存儲(chǔ)器已被寫入的次數(shù)超過預(yù)設(shè)的寫入計(jì)數(shù)。
24.如權(quán)利要求23所述的裝置,其中該控制單元更包含有一比較器,用以比較該寫入計(jì)數(shù)器的計(jì)數(shù)結(jié)果與預(yù)設(shè)的寫入計(jì)數(shù)。
25.如權(quán)利要求19所述的裝置,其中該控制單元是用以在幕后將該可能鮮少抹除區(qū)塊的數(shù)據(jù)移動(dòng)至空閑區(qū)塊。
全文摘要
本發(fā)明提供一平均抹除的裝置,其將抹除均勻分布在整個(gè)包含多個(gè)存儲(chǔ)區(qū)塊的非易失性存儲(chǔ)器。該裝置包含一存儲(chǔ)單元以存儲(chǔ)閃存的可能冷區(qū)塊、和一控制單元用以更新存儲(chǔ)單元及在一門檻條件下釋放可能冷區(qū)塊。當(dāng)該可能冷區(qū)塊對(duì)應(yīng)到非易失性存儲(chǔ)器中寫入命令的寫入地址時(shí),該控制單元會(huì)選擇一新存儲(chǔ)區(qū)塊來取代在存儲(chǔ)單元中的可能冷區(qū)塊。當(dāng)該非易失性存儲(chǔ)器已被寫入次數(shù)超過預(yù)設(shè)的寫入計(jì)數(shù)門檻時(shí),保持在存儲(chǔ)單元的可能冷區(qū)塊被識(shí)別為冷區(qū)塊。該鮮少抹除的存儲(chǔ)區(qū)塊可以被識(shí)別并釋放以將抹除均勻分布在整個(gè)非易失性存儲(chǔ)器。
文檔編號(hào)G06F12/02GK101030166SQ20061009229
公開日2007年9月5日 申請(qǐng)日期2006年6月16日 優(yōu)先權(quán)日2006年3月3日
發(fā)明者謝武漢, 陳泳成 申請(qǐng)人:凌陽科技股份有限公司