專利名稱:用于分解與一共用邏輯塊相關(guān)聯(lián)的物理塊的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上是關(guān)于大容量數(shù)字?jǐn)?shù)據(jù)存儲系統(tǒng)。更具體而言,本發(fā)明是關(guān)于用于有效地使與一共用邏輯塊相關(guān)聯(lián)的復(fù)數(shù)個物理塊基本上能夠被分解為一單個物理塊的系統(tǒng)和方法。
背景技術(shù):
由于諸如閃存存儲器存儲系統(tǒng)等非易失性存儲系統(tǒng)的實體尺寸緊湊且非易失性存儲器具有可重復(fù)編程的能力,所以此類存儲系統(tǒng)的使用正在迅速增加。閃存存儲器存儲系統(tǒng)緊湊的實體尺寸有利于此種存儲系統(tǒng)用于各種日益流行的裝置內(nèi)。使用此類閃存存儲器存儲系統(tǒng)的裝置包括(但不限于)數(shù)字照相機(jī)、數(shù)字?jǐn)z像機(jī)、數(shù)字音樂播放機(jī)、便攜式個人計算機(jī)及全球定位裝置。閃存存儲器存儲系統(tǒng)內(nèi)包含的可對非易失性存儲器重復(fù)編程的能力使得閃存存儲器存儲系統(tǒng)可使用和重復(fù)使用。
總而言之,閃存存儲器存儲系統(tǒng)可以包括閃存存儲器卡和閃存存儲器芯片組。閃存存儲器芯片組一般包括閃存存儲器組件和一控制器組件。通常,可將一存儲器布置組裝在一嵌入式系統(tǒng)內(nèi)。此種組合件或主機(jī)系統(tǒng)的制造商一般會以組件形式購得閃存存儲器以及其它組件,然后將所述閃存存儲器以及所述其它組件組裝進(jìn)一主機(jī)系統(tǒng)。
在與一閃存存儲器系統(tǒng)相關(guān)聯(lián)的一文件系統(tǒng)內(nèi),存儲器被有效地劃分為一系統(tǒng)或目錄區(qū)以及一數(shù)據(jù)區(qū)。所述系統(tǒng)區(qū)一般包括根目錄和文件分配表(FAT),而數(shù)據(jù)文件通常被包括在數(shù)據(jù)區(qū)內(nèi)。一文件系統(tǒng)可(例如)一次一個頁面地將數(shù)據(jù)分扇區(qū)寫入與所述系統(tǒng)區(qū)相關(guān)聯(lián)的物理塊內(nèi),而且可(例如)一次多個頁面地將數(shù)據(jù)分簇寫入所述數(shù)據(jù)區(qū)。
與一邏輯塊或一文件系統(tǒng)的塊相關(guān)聯(lián)的任何更新均被有效地傳播至一被映射至所述邏輯塊的物理塊。當(dāng)被映射至所述邏輯塊的所述物理塊已滿,或因其它原因不能接受一更新時,一般會獲取一備用物理塊,而與所述邏輯塊相關(guān)聯(lián)的最新數(shù)據(jù)或者被拷貝(例如直接從當(dāng)前的物理塊拷貝)在所述備用物理塊內(nèi),或者被歸并(例如與所述更新一起拷貝)在所述備用物理塊內(nèi)。
圖1是一示意代表圖,其顯示一邏輯塊、一與所述邏輯塊相關(guān)聯(lián)的當(dāng)前物理塊和用以替換所述當(dāng)前物理塊的一備用物理塊。一邏輯塊200被映射至一物理塊210。具體而言,與邏輯塊200內(nèi)的頁面202相關(guān)聯(lián)的內(nèi)容被作為內(nèi)容214存儲在物理塊210中由頁面212構(gòu)成的一數(shù)據(jù)區(qū)。當(dāng)物理塊210內(nèi)的頁面212已滿(如圖中所示)時,或因其它原因不能接受與邏輯塊200相關(guān)聯(lián)的一更新時,可以獲取一包括頁面222的新的或備用物理塊220,例如從一組備用塊中獲取。存儲在物理塊210中的最新內(nèi)容214可連同未存儲在物理塊210內(nèi)的與邏輯塊200相關(guān)聯(lián)的任何更新一起被拷貝在物理塊220內(nèi),從而使物理塊220有效地成為邏輯塊200的一最新物理代表。
有時,在將內(nèi)容214從物理塊210或拷貝或歸并至物理塊220內(nèi)的過程中會發(fā)生中斷,導(dǎo)致所述拷貝或歸并過程被中止,其結(jié)果是拷貝或歸并沒有完成。作為舉例,包含物理塊210和220的一非易失性存儲器裝置的電力可能會在一拷貝或歸并過程結(jié)束之前失去。當(dāng)在一拷貝或歸并過程結(jié)束之前斷電時,與內(nèi)容210相關(guān)聯(lián)的一部分?jǐn)?shù)據(jù)可能會丟失。
為使因拷貝或歸并過程中斷而可能丟失的數(shù)據(jù)量減至最少,可對物理塊210和物理塊220進(jìn)行研究,以確定物理塊210和220中哪一個是一舊物理塊,以及哪一個是一新的未完成的物理塊。如所屬領(lǐng)域的技術(shù)人員所知,在一拷貝或歸并過程被中斷時,要確定將物理塊210或物理塊220中哪一個作為包含最新內(nèi)容的所述新物理塊并與邏輯塊200相關(guān)聯(lián),是耗時而且困難的。
為便于確定兩個物理塊中哪一個可被當(dāng)作與一給定邏輯塊相關(guān)聯(lián)的所述新物理塊,通常設(shè)置供用于所述物理塊的旗標(biāo)。第6/115,785號美國專利描述了設(shè)置供用于物理塊的旗標(biāo)的一種方法,所述專利的全文以引用方式并入本文中。盡管旗標(biāo)的使用有助于識別處于一拷貝或一歸并過程中的物理塊,但通常難于確定兩個物理塊中哪一個是一較新的物理塊,而哪一個是一較舊的物理塊。此外,在識別物理塊是處于一拷貝或是一歸并過程時,使用旗標(biāo)通常需要一部分寫入過程。
因此,所需要的是在對物理塊執(zhí)行的一拷貝或一歸并過程未完成前被中斷時可使數(shù)據(jù)得到有效恢復(fù)的一過程和一系統(tǒng)。也就是說,所需要的是一種用于有效地確定復(fù)數(shù)個物理塊中哪一個是一欲對應(yīng)于一具體邏輯塊的新物理塊及用于使與所述邏輯塊相關(guān)聯(lián)的最新數(shù)據(jù)能夠被提供至所述新物理塊的方法和設(shè)備。
發(fā)明內(nèi)容
本發(fā)明是關(guān)于用于確定與一邏輯塊相關(guān)聯(lián)的復(fù)數(shù)個物理塊中哪一個新與所述邏輯塊發(fā)生關(guān)聯(lián)。根據(jù)本發(fā)明的一個方面,一種用于分解一第一物理塊和一第二物理塊對于一與一非易失性存儲器系統(tǒng)相關(guān)聯(lián)的一邏輯塊的關(guān)聯(lián)關(guān)系的方法包括獲取與所述第一物理塊相關(guān)聯(lián)的一第一識別符和與所述第二物理塊相關(guān)聯(lián)的一第二識別符。對所述識別符進(jìn)行比較,以確定所述第一識別符是否指示所述物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)。所述方法也包括在確定所述第一識別符指示所述第一物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)時,完成被布置用于將與所述邏輯塊相關(guān)聯(lián)的內(nèi)容提供至所述第一物理塊的一操作。
在一實施例中,獲取所述第一識別符包括從與所述第一物理塊相關(guān)聯(lián)的一開銷區(qū)獲取所述第一識別符,及獲取所述第二識別符包括從與所述第二物理塊相關(guān)聯(lián)的一開銷區(qū)獲取所述第二識別符。在另一實施例中,將所述第一識別符與所述第二識別符加以比較以確定何時所述第一識別符顯示所述第一物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)包括確定何時所述第一指示符具有一高于所述第二識別符的值。
在一物理塊正被拷貝至另一物理塊內(nèi),且包含所述物理塊的一系統(tǒng)被關(guān)閉或因其它原因斷電時,一般會有兩個物理塊同時對應(yīng)于同一個邏輯塊。通過在每一物理塊中保持一識別符(例如一升級索引)并對所述識別符加以比較,可以容易而高效地確定兩個物理塊中哪一個當(dāng)時正被拷貝至或歸并至另一個中。這樣,可對兩個塊的內(nèi)容進(jìn)行研究,并可有效地恢復(fù)一拷貝或一歸并操作,從而使與一相應(yīng)邏輯塊相關(guān)聯(lián)的信息能夠被提供至欲接收另一塊的至少一部分內(nèi)容的塊。這樣,可有效地將因一系統(tǒng)關(guān)閉或斷電所導(dǎo)致的數(shù)據(jù)丟失減至最小。
根據(jù)本發(fā)明的另一個方面,一種用于使一第二物理塊與已經(jīng)具有一第一物理塊且所述第一物理塊包含與所述邏輯塊相關(guān)聯(lián)的內(nèi)容的一邏輯塊相關(guān)聯(lián)的方法包括獲取所述第二物理塊,以及將與所述第二物理塊相關(guān)聯(lián)的一第二指示符設(shè)置為不同于與所述第一物理塊相關(guān)聯(lián)的一第一指示符的一值的一個值。一旦設(shè)置所述第二指示符,即可啟動一操作,以將所述第一物理塊的至少一部分內(nèi)容提供至所述第二物理塊。在一實施例中,所述方法也包括從所述第一物理塊檢索所述第一指示符,并確定所述第一指示符的值。
在另一實施例中,所述方法也包括將所述第二指示符存儲在所述第二物理塊內(nèi)。在此一實施例中,將所述第二指示符存儲在所述第二物理塊內(nèi)可包括將所述第二指示符存儲在與所述物理塊相關(guān)聯(lián)的一冗余區(qū)內(nèi)。
根據(jù)本發(fā)明的再一實施例,一非易失性存儲器包括一第一物理塊和一第二物理塊。所述第一物理塊包括至少一第一頁面,所述第一頁面具有一其中存有一第一組比特的第一開銷區(qū)。所述第二物理塊包括至少一第二頁面,所述第二頁面具有一其中存有一第二組比特的第二開銷區(qū)。所述第一物理塊和所述第二物理塊均與一邏輯塊相關(guān)聯(lián)。所述第一組比特和所述第二組比特被布置為彼此比較,以確定所述第一物理塊與所述邏輯塊的關(guān)聯(lián)是否比所述第二物理塊新。
在閱讀以下詳細(xì)說明并研究圖紙中的各附圖后,本發(fā)明的這些及其它優(yōu)點即顯而易見。
結(jié)合附圖并參閱下文說明,可最佳地了解本發(fā)明,附圖如下圖1是一示意代表圖,其顯示一邏輯塊、一與所述邏輯塊相關(guān)聯(lián)的當(dāng)前物理塊以及用以替代所述當(dāng)前物理塊的一備用物理塊。
圖2是一示意代表圖,其顯示一包含一非易失性存儲器的通用主機(jī)系統(tǒng)。
圖3是一示意代表圖,其顯示一存儲器裝置,例如圖2的存儲器裝置120。
圖4是一示意代表圖,其顯示包含一嵌入式非易失性存儲器的一主機(jī)系統(tǒng)。
圖5是一示意代表圖,其顯示根據(jù)本發(fā)明的一個實施例一包含邏輯塊的文件系統(tǒng)和一包含物理塊的媒體。
圖6是一示意代表圖,其顯示根據(jù)本發(fā)明的一個實施例與一個以上物理塊相關(guān)聯(lián)的具有一更新索引的一邏輯塊。
圖7是一流程圖,其圖解說明根據(jù)本發(fā)明的一個實施例啟動一更新、一拷貝或一歸并過程的步驟。
圖8是一流程圖,其圖解說明根據(jù)本發(fā)明的一個實施例分解一舊塊和一新塊的步驟,例如圖7的步驟616。
圖9是一框圖,其顯示根據(jù)本發(fā)明的一實施例的一個系統(tǒng)架構(gòu)。
具體實施例方式
一存儲器系統(tǒng)斷電一般會導(dǎo)致所述存儲器系統(tǒng)內(nèi)發(fā)生多種問題。所述問題包括(但不限于)在將一物理塊的內(nèi)容拷貝至另一物理塊內(nèi)的過程中斷電時數(shù)據(jù)會丟失。為防止一拷貝過程被中斷時的數(shù)據(jù)丟失,在物理塊中可包括旗標(biāo),用以指示物理塊的內(nèi)容是否正處于被拷貝過程中。但是,使用旗標(biāo)經(jīng)常被證實為不夠高效。
為便于確定響應(yīng)于一特定邏輯塊的兩個物理塊中哪一個物理塊是用來替代一舊的或當(dāng)前物理塊的一未完成的或新的物理塊,可在所述物理塊中設(shè)置更新索引。可存儲在與一物理塊相關(guān)聯(lián)的至少一冗余區(qū)內(nèi)的一更新索引可被布置用以指示一拷貝或歸并過程所涉及的兩個物理塊中哪一個是所述新物理塊或是其中正被拷貝內(nèi)容的物理塊。例如,所述新物理塊的所述更新索引可以設(shè)置為其更新索引值高于所述舊物理塊的更新索引值。從而,在檢查所述物理塊的更新索引以確定哪個物理塊是所述新物理塊時,可以確定具有較高更新索引值的那個物理塊就是所述新物理塊。
更新索引的使用一般僅采用一個增量,或?qū)懖襟E,因為在一拷貝或一歸并過程即將發(fā)生時,基本上僅有一新物理塊的所述更新索引會遞增或以其他方式更新。此外,當(dāng)所述拷貝或歸并過程完成時,所述更新索引通常不會被更新。因此,采用更新索引所耗用的開銷通常會低于旗標(biāo)。
更新索引一般用在限定不允許發(fā)生部分寫入的系統(tǒng)中。換言之,可在不允許部分寫入的系統(tǒng)中設(shè)置更新索引。但是,應(yīng)當(dāng)了解,也可在允許部分寫入的系統(tǒng)中設(shè)置更新索引。
可獲益于在一物理塊內(nèi)使用更新索引的閃存存儲器系統(tǒng)(或更廣泛而言,非易失性存儲器裝置)包括閃存存儲器卡和芯片組。通常,閃存存儲器系統(tǒng)與一主機(jī)系統(tǒng)配合使用,以使所述主機(jī)系統(tǒng)可以將數(shù)據(jù)寫入所述閃存存儲系統(tǒng)或從所述閃存存儲系統(tǒng)中讀取數(shù)據(jù)。但是,一部分閃存存儲器系統(tǒng)包括嵌入式閃存存儲器和在一主機(jī)上執(zhí)行以基本上擔(dān)當(dāng)所述嵌入式閃存存儲器的一控制器的軟件,具體將在下文中參照圖4加以討論。在圖2中,將介紹一包括一非易失性存儲器裝置(例如一緊湊閃存存儲器卡)的通用主機(jī)系統(tǒng)。一主機(jī)或計算機(jī)系統(tǒng)100一般包括一系統(tǒng)總線104,所述系統(tǒng)總線104允許一微處理器108、一隨機(jī)存取存儲器(RAM)112和輸入/輸出電路116之間進(jìn)行通信。應(yīng)了解,主機(jī)系統(tǒng)100通常還包括其它組件,例如,圖中出于圖解說明目的而未顯示的顯示裝置和網(wǎng)絡(luò)裝置。
通常,主機(jī)系統(tǒng)100能夠捕獲信息,包括(但不限于)靜態(tài)圖像信息、音頻信息、和視頻信息。此類信息既可實時捕獲,也可以一無線方式傳輸至主機(jī)系統(tǒng)100。盡管主機(jī)系統(tǒng)100基本上可為任一系統(tǒng),但是主機(jī)系統(tǒng)100通常為一諸如數(shù)字照相機(jī)、視頻攝像機(jī)、蜂窩通訊裝置、一音頻播放器或視頻播放器等系統(tǒng)。但是,應(yīng)了解,主機(jī)系統(tǒng)100,一般而言,可以是基本上任何存儲數(shù)據(jù)或信息,并檢索數(shù)據(jù)或信息的系統(tǒng)。
主機(jī)系統(tǒng)100也可以是一僅捕獲數(shù)據(jù)或僅檢索數(shù)據(jù)的系統(tǒng)。也就是說,在一實施例中,主機(jī)系統(tǒng)100可以是一存儲數(shù)據(jù)的專用系統(tǒng),或者主機(jī)系統(tǒng)100也可以是一讀取數(shù)據(jù)的專用系統(tǒng)。作為舉例,主機(jī)系統(tǒng)100可以是僅被布置用于寫入或存儲數(shù)據(jù)的一存儲器寫入器?;蛘?,主機(jī)系統(tǒng)100可以是一諸如MP3播放器等通常布置用于讀取或檢索數(shù)據(jù)而非捕獲數(shù)據(jù)的裝置。
在一實施例中是一可拆卸式非易失性存儲器裝置的一非易失性存儲器裝置120被布置為通過接口與總線104連接,以存儲信息。一任選接口塊130可使非易失性存儲器裝置120通過接口與總線104間接連接。如所屬領(lǐng)域的技術(shù)人員所知,當(dāng)存在時,輸入/輸出電路塊116用于降低總線104上的負(fù)載。非易失性存儲器裝置120包括非易失性存儲器124和一任選的存儲器控制系統(tǒng)128。在一實施例中,非易失性存儲器裝置120可被設(shè)置在一單芯片或一電路小片上?;蛘撸且资源鎯ζ餮b置120可被設(shè)置在一多芯片模塊或可構(gòu)成一芯片組并可聯(lián)合用作非易失性存儲器裝置120的復(fù)數(shù)個離散組件上。下文中將根據(jù)圖3更詳細(xì)地介紹非易失性存儲器裝置120的一實施例。
非易失性存儲器124,例如諸如NAND閃存存儲器等閃存存儲器,被布置用于存儲數(shù)據(jù),以便可根據(jù)需要訪問和讀取數(shù)據(jù)。存儲在非易失性存儲器124內(nèi)的數(shù)據(jù)也可被適當(dāng)?shù)夭脸?,但?yīng)當(dāng)了解,非易失性存儲器124中的一部分?jǐn)?shù)據(jù)是不可擦除的。存儲數(shù)據(jù)、讀取數(shù)據(jù)和擦除數(shù)據(jù)的過程一般由存儲器控制系統(tǒng)128控制,或者,在沒有存儲器控制系統(tǒng)128時,所述過程由微處理器108所執(zhí)行的軟件控制??蓪Ψ且资源鎯ζ?24的運行實施管理,以通過基本上使非易失性存儲器124的各個部分基本上均勻磨損而使非易失性存儲器124的壽命最大化。
非易失性存儲器裝置120一般被描述為包括一任選的存儲器控制系統(tǒng)128,即一控制器。通常,非易失性存儲裝置120可包括分別用于非易失性存儲器124和存儲器控制系統(tǒng)128(即控制器)功能的單獨芯片。舉例而言,包括(但不限于)PC卡、小型閃存(CompactFlash)卡、多媒體(MultiMedia)卡及安全數(shù)字(secure digital)卡的非易失性存儲裝置均包括設(shè)置在一單獨芯片上的控制器,其它非易失性存儲裝置可不包括設(shè)置在一單獨芯片上的控制器。在非易失性存儲器裝置120不包括單獨的存儲器和控制器芯片的一實施例中,如所屬領(lǐng)域的技術(shù)人員所知,所述存儲器和控制器功能被集成在一單個芯片中。或者,存儲器控制系統(tǒng)128的功能可由微處理器108提供,例如在一上文所述非易失性存儲器裝置120不包括存儲器控制器128的實施例中。
參照圖3,下文將根據(jù)本發(fā)明的一實施例更詳細(xì)地闡述非易失性存儲裝置120。如上所述,非易失性存儲裝置120包括非易失性存儲器124并可包括存儲器控制系統(tǒng)128。存儲器124和控制系統(tǒng)128,或控制器,可以是非易失性存儲器裝置120的主要組件,然而舉例而言,當(dāng)存儲器124是一嵌入式NAND裝置時,非易失性存儲器裝置120可以不包括控制系統(tǒng)128。存儲器124可為一形成于一半導(dǎo)體基板上的存儲單元陣列,其中通過將2個或更復(fù)數(shù)個電荷電平之一存儲在存儲單元的單獨存儲元件上而將一個或復(fù)數(shù)個數(shù)據(jù)位存儲在單獨的存儲單元內(nèi)。一非易失性閃存電可擦除可編程只讀存儲器(EEPROM)是用于此種系統(tǒng)的一通用類型存儲器的實例。
當(dāng)存在時,控制系統(tǒng)128通過一總線15與一主機(jī)計算機(jī)或正使用所述存儲器系統(tǒng)存儲數(shù)據(jù)的其它系統(tǒng)進(jìn)行通信??偩€15一般為圖2中總線104的一部分??刂葡到y(tǒng)128還控制存儲器124的操作,存儲器124也可包括一存儲單元陣列11,用于寫所述主機(jī)提供的數(shù)據(jù)、讀取所述主機(jī)請求的數(shù)據(jù)以及執(zhí)行存儲器124運行時所需的各種內(nèi)務(wù)管理功能。控制系統(tǒng)128一般包括一具有相關(guān)非易失性軟件存儲器、各種邏輯電路及類似元件的通用微處理器。通常,控制系統(tǒng)128也包括一個或更多個狀態(tài)機(jī)用于控制專用例程的性能。
存儲單元陣列11通常由控制系統(tǒng)128或微處理器108通過地址譯碼器17進(jìn)行尋址。譯碼器17給陣列11的門和位線施加恰當(dāng)?shù)碾妷?,以便在一控制系統(tǒng)128正尋址的一組存儲單元中編程數(shù)據(jù)、讀取數(shù)據(jù)或擦除該組存儲單元。附加電路19包括編程驅(qū)動器,所述編程驅(qū)動器控制根據(jù)正被編程入一被尋址單元組內(nèi)的數(shù)據(jù)而施加到該陣列的元件上的電壓。電路19還包括讀出放大器及其它從被尋址存儲單元組中讀取數(shù)據(jù)所需的電路。將要編程到陣列11內(nèi)的數(shù)據(jù),或新近從陣列11讀取的數(shù)據(jù)通常都存儲在控制系統(tǒng)128中的一緩沖存儲器21內(nèi)。控制系統(tǒng)128通常還包含用于臨時存儲命令和狀態(tài)數(shù)據(jù)等的各種寄存器。
陣列11被劃分為大量的存儲單元塊BLOCKS 0-N。如同閃速EEPROM系統(tǒng)中所常見的,塊通常是最小的擦除單位。換言之,每個塊均包含可一起擦除的最小數(shù)量的存儲單元。每個塊通常被劃分為數(shù)個頁面。所屬領(lǐng)域的技術(shù)人員將了解,頁面可以是最小的編程單位。也就是說,一基本編程操作將數(shù)據(jù)寫入存儲單元的最少一個頁面內(nèi),或從其中讀取數(shù)據(jù)。每一頁面內(nèi)通常存儲有一個或更多的數(shù)據(jù)扇區(qū)。如圖3中所示,一個扇區(qū)包括用戶數(shù)據(jù)和開銷數(shù)據(jù)。開銷數(shù)據(jù)通常包括一依據(jù)所述扇區(qū)的用戶數(shù)據(jù)計算得出的糾錯碼(ECC)??刂葡到y(tǒng)128的一部分23在數(shù)據(jù)被編程至陣列11內(nèi)時計算ECC,且其還在數(shù)據(jù)從陣列11被讀取時校驗所述ECC?;蛘?,將ECC存儲到與其所從屬的用戶數(shù)據(jù)不同的頁面或不同的塊中。
一用戶數(shù)據(jù)扇區(qū)通常為512個字節(jié),相當(dāng)于磁盤驅(qū)動器內(nèi)一扇區(qū)的大小。開銷數(shù)據(jù)或冗余數(shù)據(jù)一般為另外的16個字節(jié)。最常見的是,每個頁面中包含一個數(shù)據(jù)扇區(qū),但兩個或更多的扇區(qū)也可以構(gòu)成一個頁面。一般而言,任何數(shù)目的頁面均可構(gòu)成一個塊。舉例來說,一個塊可由8個頁面至多達(dá)512個、1024個甚至更多個頁面構(gòu)成。塊的數(shù)量的選擇旨在為存儲系統(tǒng)提供一個所期望的數(shù)據(jù)存儲容量。陣列11通常被劃分為若干個子陣列(未圖示),其中每一子陣列皆包含一部分所述塊,這些子陣列在一定程度上彼此獨立的運行,以提高在各存儲作業(yè)執(zhí)行中的平行度。美國專利第5,890,192號中闡述了使用復(fù)數(shù)個子陣列的一個實例,該專利的全文以引用的方式并入本文中。
在一實施例中,非易失性存儲器被嵌入一系統(tǒng)中,例如一主機(jī)系統(tǒng)中。圖4是一示意代表圖,其顯示一包含一嵌入式非易失性存儲器的主機(jī)系統(tǒng)。一主機(jī)或計算機(jī)系統(tǒng)150一般包括一系統(tǒng)總線154,所述系統(tǒng)總線154允許一微處理器158、一隨機(jī)存取存儲器(RAM)162、和輸入/輸出電路166以及主機(jī)系統(tǒng)150的其它組件(未顯示)進(jìn)行通信。一非易失性存儲器174,例如一閃存存儲器,允許信息被存儲在主機(jī)系統(tǒng)150內(nèi)。在非易失性存儲器174與總線154之間可以提供一接口180,以可從非易失性存儲器174取讀信息并向其中寫入信息。
非易失性存儲器174可由微處理器158管理,所述微處理器158可以有效地執(zhí)行布置用于控制非易失性存儲器174的軟件和/或固件。也就是說,微處理器158可以運行代碼裝置(未顯示),即軟件代碼裝置或固件代碼裝置,其可使非易失性存儲器174受到控制。如下文中所描述的那樣,此類代碼裝置可以是一與CPU一起封裝在微處理器158內(nèi)的閃存存儲器、一單獨的閃存只讀存儲器(ROM)或可位于非易失性存儲器174內(nèi),其可使非易失性存儲器174內(nèi)的物理塊能夠被尋址,并可使信息能夠被存儲在所述物理塊內(nèi)、從中讀取信息和擦除信息。
總而言之,在一用戶寫數(shù)據(jù)時,所述用戶使用一文件系統(tǒng)有效地寫所述數(shù)據(jù)。所述文件系統(tǒng)使所述數(shù)據(jù)與一邏輯塊相關(guān)聯(lián),或更具體而言,與一邏輯塊的頁面相關(guān)聯(lián),所述邏輯塊被映射至與一存儲媒體相關(guān)聯(lián)的物理塊。圖5是一示意代表圖,其顯示根據(jù)本發(fā)明的一個實施例具有邏輯塊的一文件系統(tǒng)以及具有物理塊的一媒體。一文件系統(tǒng)514的邏輯塊510包括任何數(shù)目的頁面518。一邏輯塊(例如邏輯塊510a)內(nèi)包含的頁面518的數(shù)量取決于一擦除單元的大小。例如,如圖所示,當(dāng)所述最小擦除單元包含約32個頁面時,一邏輯塊510a內(nèi)可包含大約32個頁面。
一媒體534(例如一嵌入式閃存存儲器)的物理塊530包含數(shù)個頁面538。如所屬領(lǐng)域的技術(shù)人員所知,物理塊530所包含的頁面538的數(shù)量通常與邏輯塊530內(nèi)所包含的頁面518的數(shù)量通常是相同的。但是,邏輯塊510內(nèi)包含的頁面518的數(shù)量未必與物理塊530內(nèi)包含的頁面538的數(shù)量相等。
圖6是一示意代表圖,其顯示根據(jù)本發(fā)明的一個實施例具有一更新索引且與一個以上物理塊相關(guān)聯(lián)的一邏輯塊。一邏輯塊550被映射至一物理塊560,其可被稱作一“當(dāng)前”或“舊”物理塊。具體而言,與邏輯塊550內(nèi)頁面552相關(guān)聯(lián)的內(nèi)容作為內(nèi)容564被存儲在物理塊560的頁面562的一數(shù)據(jù)區(qū)568內(nèi)。當(dāng)物理塊560內(nèi)的頁面562已滿(如圖所示)時,或當(dāng)物理塊560因其它原因而不能接收與邏輯塊550相關(guān)聯(lián)的一更新時,可以獲取一包括頁面572的新的或備用物理塊570,例如從一整體非易失性存儲器系統(tǒng)中所保持的一組備用塊中獲取。在大多數(shù)情況下,可通過使用一拷貝操作或一歸并操作將物理塊560內(nèi)所存儲的至少一部分內(nèi)容564連同與未存儲在物理塊560的邏輯塊550相關(guān)聯(lián)的任何更新提供至物理塊570。具體而言,可將未被與邏輯塊550相關(guān)聯(lián)的更新有效侵占的任何內(nèi)容連同所述更新一起提供至物理塊570。在一實施例中,當(dāng)基本上所有內(nèi)容564均被與邏輯塊550相關(guān)聯(lián)的更新有效侵占時,實際上沒有內(nèi)容存儲在物理塊570內(nèi)。如所屬領(lǐng)域的技術(shù)人員所知,當(dāng)沒有未包含在物理塊560的新數(shù)據(jù)將被提供至物理塊570時,一拷貝操作可能是合適的;而當(dāng)有未包含在物理塊560的新數(shù)據(jù)或更新數(shù)據(jù)將被包含在物理塊570內(nèi)時,一歸并操作可能是合適的。
物理塊560內(nèi)的每個頁面562均包含一冗余或開銷區(qū)566。同樣,物理塊570內(nèi)的每個頁面572也均包含一冗余或開銷區(qū)576。在所述實施例中,與物理塊560的一第一頁面562a相關(guān)聯(lián)的冗余區(qū)566a包括構(gòu)成一更新索引568的一組比特。但是,應(yīng)當(dāng)了解,物理塊560內(nèi)任何數(shù)目的冗余區(qū)566可包括一更新索引,例如冗余區(qū)566b可包括與更新索引568具有相同值的更新索引588。
例如,在通過識別與物理塊570相關(guān)聯(lián)的至少一個冗余區(qū)576內(nèi)設(shè)置的比特使物理塊570與邏輯塊550相關(guān)聯(lián)之前,物理塊570一般是空的。但是,一旦物理塊570與邏輯塊550相關(guān)聯(lián),一更新索引578即被存儲在對應(yīng)于物理塊570的一第一頁面572a的冗余區(qū)576a內(nèi)。應(yīng)當(dāng)了解,另外的更新索引,例如存儲在冗余區(qū)576b內(nèi)并與更新索引578具有相同值的更新索引598,可被存儲在物理塊570內(nèi)。
更新索引578一般被設(shè)置為具有一值,所述值與更新索引568相比時,可識別出物理塊570是新與物理塊560相關(guān)聯(lián)的。使用更新索引578和更新索引568可在包含物理塊560,570的一整體系統(tǒng)斷電后,確定是否物理塊560的至少一部分內(nèi)容564當(dāng)時正處于被提供給物理塊570的過程中。如圖中所示,物理塊560的一部分內(nèi)容564a,564b已分別作為內(nèi)容564a’、564b’被提供給物理塊570,而其它將被提供的內(nèi)容(例如564d)尚未被提供。此外,在合適的時候,例如當(dāng)內(nèi)容574將被用于替代內(nèi)容564c時,與邏輯塊550相關(guān)聯(lián)的更新可作為內(nèi)容574被存儲在物理塊570內(nèi)。
當(dāng)斷電后物理塊560和570均與邏輯塊550相關(guān)聯(lián)時,則指示可能是將物理塊560的一部分內(nèi)容564提供至物理塊570的一操作尚未成功完成。在所述實施例中,當(dāng)更新索引578具有一被理解為比更新索引568新(例如高)的值時,則指示是將提供至物理塊570的物理塊560的任何內(nèi)容564可能尚未成功地全部提供至物理塊570。
在與邏輯塊550相關(guān)聯(lián)的更新內(nèi)容(例如新內(nèi)容或修改的內(nèi)容)有效地全部侵占了物理塊560的內(nèi)容564的情況下,則內(nèi)容564的任何部分均不會被存儲在物理塊570內(nèi)。其結(jié)果是,如果物理塊560、570需被分解(例如在斷電后恢復(fù)供電過程中),則可以確定實際上內(nèi)容564的任何部分均不被歸并在物理塊570內(nèi)。
總而言之,為了將因物理塊560和570之間的更新、拷貝或歸并過程中斷而可能丟失的數(shù)據(jù)量基本上降至最低,可對物理塊560的更新索引568和物理塊570的更新索引578進(jìn)行研究,從而將物理塊570識別為新物理塊。這樣,在獲取物理塊570,例如在針對物理塊560實施一更新、拷貝或歸并過程時,更新索引578通常被存儲在物理塊570內(nèi)。
參閱圖7,下文將根據(jù)本發(fā)明的一個實施例介紹與一種將一個物理塊的內(nèi)容更新、拷貝或歸并入另一物理塊內(nèi)的方法相關(guān)的步驟。一用于拷貝或歸并塊的過程600開始于步驟602,在所述步驟602中獲取一新物理塊或備用物理塊。具體而言,獲取一備用物理塊作為與一邏輯塊相關(guān)聯(lián)或以其它方式對應(yīng)于一邏輯塊的一新物理塊。一旦獲取所述新物理塊或備用物理塊,在步驟604中檢索一“舊”物理塊或當(dāng)前與所述物理塊(所述新物理塊將要與之相關(guān)聯(lián))相關(guān)聯(lián)的所述物理塊的更新索引。在所述實施例中,一更新索引以比特(例如4個比特)的形式被存儲在一物理塊的冗余區(qū)中。這樣,檢索所述舊物理塊的更新索引一般包括從與所述舊物理塊相關(guān)聯(lián)的一冗余區(qū)或一開銷區(qū)中獲取其更新索引。應(yīng)當(dāng)了解,一物理塊的更新索引可被存儲在所述物理塊的基本上僅一個頁面(例如一第一頁面)的冗余區(qū)內(nèi),或可被存儲在所述物理塊的基本上每個頁面的冗余區(qū)內(nèi)。
在檢索所述舊物理塊的更新索引后,在步驟606中確定所述舊物理塊的更新索引是否實際上相等于可能的最高更新索引值。在一更新索引包括四個比特的實施例中,可能的最高更新索引值可以是15,但所述的可能最高值可以有很大的變化。如果確定所述舊物理塊的更新索引基本上不等于可能的最高值,則流程從步驟606移至步驟608,在此步驟中將所述新物理塊的更新索引設(shè)置為一個高于所述舊物理塊的更新索引的值。通常,將所述新物理塊的更新索引值設(shè)置為一個高于所述舊物理塊的更新索引的值涉及到將所述新物理塊的更新索引值設(shè)置為一個比所述舊物理塊的更新索引值高出1的值。應(yīng)當(dāng)了解,設(shè)置所述新物理塊的更新索引值一般還包括將所述更新索引存儲在與所述新物理塊相關(guān)聯(lián)的一冗余區(qū)內(nèi)??偠灾?,不是確定何時將所述新物理塊的更新索引設(shè)置為一個高于所述舊物理塊的更新索引的值,而是確定何時將所述新物理塊的更新索引設(shè)置為一個比所述舊物理塊的更新索引值新的值。
在設(shè)置所述新物理塊的更新索引后,在步驟610中啟動一合適的更新、拷貝或歸并過程,以將數(shù)據(jù)從一組新用戶數(shù)據(jù)和/或所述舊物理塊分別更新、拷貝或歸并至所述新物理塊內(nèi)。然后,在步驟612中確定所述更新、拷貝或歸并過程是否已成功完成。此一確定可以依據(jù)所有當(dāng)前頁面是否均已在新的物理塊中得到考慮。在確定所述拷貝或歸并過程已經(jīng)成功完成后,則表示與對應(yīng)于所述舊物理塊的所述邏輯塊相關(guān)聯(lián)的最新數(shù)據(jù)已被放置在所述新物理塊內(nèi)。由此,所述新物理塊即成為與所述邏輯塊相對應(yīng)的物理塊,而所述舊物理塊的內(nèi)容在614步驟中被擦除。一旦所述舊物理塊的內(nèi)容被擦除,所述更新、拷貝或歸并過程即告結(jié)束。
或者,如果在步驟612中確定用于將數(shù)據(jù)歸并在所述新物理塊內(nèi)的一更新、拷貝或歸并過程未能成功完成,則指示所述更新、拷貝或歸并過程已(例如)因包含所述舊物理塊和所述新物理塊的非易失性存儲器斷電而被中斷。其結(jié)果是,所述舊物理塊和新物理塊均對應(yīng)于同一邏輯塊。例如,所述舊物理塊和新物理塊可能在其冗余區(qū)內(nèi)均包括一個或復(fù)數(shù)個標(biāo)識同一個邏輯塊的比特。在所述實施例中,在確定一邏輯塊具有兩個相應(yīng)的物理塊時,所述兩個相應(yīng)物理塊可在下一恢復(fù)供電過程步驟616中得到有效分解。也就是說,所述舊物理塊和所述新物理塊的內(nèi)容可被分解,以使與對應(yīng)于舊物理塊和新物理塊的所述邏輯塊相關(guān)聯(lián)的最新內(nèi)容可被拷貝或歸并,從而將所述最新內(nèi)容放置在所述新物理塊內(nèi)。下文將參考圖8介紹一種用于分解一舊物理塊和一新物理塊的方法。一旦所述舊物理塊和所述新物理塊被分解,所述更新、拷貝或歸并過程即告結(jié)束。
返回步驟606,如果確定所述舊物理塊的更新索引基本上等于可能的最高更新索引值,則可在步驟618中將所述新物理塊的更新索引設(shè)置為一零值。當(dāng)所述舊物理塊的更新索引在基本上等于可能的最高更新索引值而且所述新物理塊的更新索引被設(shè)置為零時,則表示所述新物理塊比所述舊物理塊新。在設(shè)置新物理塊的更新索引之后,流程前進(jìn)至步驟610,在此步驟中啟動將數(shù)據(jù)從舊物理塊拷貝或歸并在新物理塊內(nèi)的過程。
圖8是一流程圖,其根據(jù)本發(fā)明的一個實施例圖解說明與分解一舊塊和一新塊相關(guān)的步驟,例如圖7的步驟616。一用于分解對應(yīng)于同一邏輯塊的兩個物理塊的流程616開始于步驟640,在此步驟中獲取其中包含有所述邏輯塊的對應(yīng)數(shù)據(jù)的一第一物理塊。應(yīng)當(dāng)了解,所述第一物理塊既可是一舊物理塊也可是一新物理塊。在獲取所述第一物理塊后,在步驟642中獲取其中包含有對應(yīng)于所述邏輯塊的數(shù)據(jù)的一第二物理塊。
在步驟644中,檢索所述第一物理塊的更新索引,即第一更新索引。所述更新索引一般存儲在與所述第一物理塊相關(guān)聯(lián)的冗余區(qū)的至少一個內(nèi)。通常,從所述第一物理塊的第一頁面的冗余區(qū)中檢索所述更新索引。在步驟646中檢索或以其它方式獲取所述第二物理塊的更新索引,即所述第二更新索引。
在獲取所述第一更新索引和所述第二更新索引后,可對所述第一更新索引和所述第二更新索引加以比較。相應(yīng)地,在步驟648中確定所述第一更新索引的值是否大于所述第二更新索引的值。應(yīng)當(dāng)了解,即使所述第一更新索引具有一零值,如果所述第二更新索引所具有的值為更新索引的最大值,所述第一更新索引仍可大于第二更新索引,反之亦然。如果確定所述第一更新索引不大于所述第二更新索引,則指示指示所述第二物理塊是一新物理塊。換言之,其指示在所述拷貝或歸并過程被中斷時,所述第一物理塊的內(nèi)容正被更新、拷貝或歸并在所述第二物理塊內(nèi)。故而,流程自步驟648移至步驟650,在此步驟中完成一合適的拷貝或歸并過程,以完成與所述第一物理塊相關(guān)聯(lián)的內(nèi)容在所述第二物理塊內(nèi)的所述更新、拷貝或歸并。完成一更新、拷貝或歸并過程可包括識別具有所述第一物理塊內(nèi)的內(nèi)容但沒有所述第二物理塊內(nèi)的內(nèi)容的頁面,及將此類內(nèi)容提供至所述第二物理塊。
一旦完成將內(nèi)容拷貝或歸并在所述第二物理塊內(nèi)的過程,所述第一物理塊在步驟652中即被擦除。擦除所述第一物理塊一般包括擦除所述第一物理塊的更新索引,以及基本上解除所述第一物理塊與當(dāng)前與所述第二物理塊相關(guān)聯(lián)的所述邏輯塊的關(guān)聯(lián)。一旦所述第一物理塊被擦除,分解塊的過程即告完成。
返回步驟648,如果確定所述第一更新索引大于所述第二更新索引,則指示所述第一物理塊是新的物理塊,而所述第二物理塊是舊的物理塊。由此,在步驟654中,完成先前沒有完成的更新、拷貝或歸并過程,以將所述第二物理塊的內(nèi)容適當(dāng)?shù)乜截惢驓w并在所述第一物理塊內(nèi)。一旦所述第一物理塊包含與第一物理塊相關(guān)聯(lián)的所述邏輯塊——例如在所述第一物理塊的至少一個冗余區(qū)內(nèi)識別的邏輯塊——的最新或新內(nèi)容,則所述第二物理塊在步驟656中被擦除,且分解塊的過程即告完成。
一般而言,與保持更新索引和通過使用更新索引來分解塊相關(guān)聯(lián)的功能是以軟件形式提供的,例如,作為程序代碼裝置,或作為主機(jī)系統(tǒng)的固件。圖9顯示與提供給一主機(jī)系統(tǒng)用于啟用損耗平衡的軟件或固件相關(guān)聯(lián)的合適的系統(tǒng)架構(gòu)的一個實施例。一系統(tǒng)架構(gòu)700一般包括多種模塊,所述模塊可包括(但不限于)一應(yīng)用接口模塊704、一系統(tǒng)管理器模塊708、一數(shù)據(jù)管理器模塊712、一數(shù)據(jù)完整性管理器716以及一裝置管理器和接口模塊720。一般而言,可使用可由一處理器(例如圖2的處理器108)訪問的軟件代碼裝置或固件來構(gòu)建系統(tǒng)架構(gòu)700。
一般而言,應(yīng)用接口模塊704可被布置用于與主機(jī)、操作系統(tǒng)或用戶直接通信。應(yīng)用接口模塊704還與系統(tǒng)管理器模塊708和數(shù)據(jù)管理器模塊712通信。當(dāng)用戶希望讀、寫或格式化閃存存儲器時,用戶向操作系統(tǒng)發(fā)送請求,所述請求被傳送到所述應(yīng)用接口模塊704。應(yīng)用接口模塊704視所述請求而定將所述請求送往系統(tǒng)管理器模塊708或數(shù)據(jù)管理器模塊712。
系統(tǒng)管理器模塊708包括一系統(tǒng)初始化子模塊724、一擦除計數(shù)塊管理子模塊726以及一功率管理塊子模塊730。系統(tǒng)初始化子模塊724一般被布置用于使一初始化請求能得到處理,并通常與擦除計數(shù)塊管理子模塊726通信。擦除計數(shù)塊管理子模塊726的功能包括使塊的擦除計數(shù)能被存儲,以及使用個別擦除計數(shù)來計算平均擦除計數(shù)并予以更新。擦除計數(shù)的使用在2002年10月28日提交的第10/281,739號(代理案號SANDP023)共同待決美國專利申請中作了描述,所述專利的全文以引用的方式并入本文中。系統(tǒng)初始化模塊724也被布置用于分解一對多的邏輯對物理塊指配,因而,可以利用更新索引。
除與應(yīng)用接口模塊704通信外,系統(tǒng)管理器模塊708還與數(shù)據(jù)管理器模塊712以及設(shè)備管理器和接口模塊720通信。與系統(tǒng)管理器模塊708和應(yīng)用接口模塊704通信的數(shù)據(jù)管理器模塊712可以包括提供扇區(qū)映射的功能,所述扇區(qū)映射功能有效地將邏輯扇區(qū)轉(zhuǎn)換成物理扇區(qū)。也就是說,數(shù)據(jù)管理器模塊712被布置用于將邏輯塊映射至物理塊。數(shù)據(jù)管理器模塊712還可包括與操作系統(tǒng)和文件系統(tǒng)接口層相關(guān)的功能,并使塊內(nèi)的組得到管理,此一內(nèi)容描述在2002年10月28日提交的第10/281,855號(代理人案號SANDP029)共同待決美國專利申請中。所述專利申請的全文以引用方式并入本文中。
與系統(tǒng)管理器模塊708、數(shù)據(jù)管理器712和數(shù)據(jù)集成管理器716通信的設(shè)備管理器和接口模塊720通常提供一閃存存儲器接口,并包括與硬件抽象(例如一I/O接口)相關(guān)的功能。數(shù)據(jù)完整性管理器模塊716提供糾錯碼(ECC)處理以及其它功能。
盡管本文僅闡述了本發(fā)明的幾個實施例,應(yīng)了解,在不脫離本發(fā)明的精神或范圍的條件下,可采用許多其它具體形式實施本發(fā)明。舉例來說,盡管將邏輯塊內(nèi)的邏輯組和相應(yīng)的物理塊內(nèi)的物理組描述為具有基本上相同的大小,但邏輯組和物理組一般可具有不同的大小。換言之,一邏輯組內(nèi)所包含的頁面數(shù)量以及與所述邏輯組相應(yīng)的一物理組內(nèi)所包含的頁面數(shù)量未必相同。
盡管一更新索引被描述為包括4個比特,應(yīng)當(dāng)了解,所述更新索引一般可以占用任何數(shù)量的比特。例如,一更新索引可以包括少于4個比特,或者所述更新索引可以包括多于4個比特,例如多至約一個字節(jié)或更多字節(jié)??梢曰谌魏螖?shù)量的理由來選擇比特的數(shù)量,所述理由包括但不限于,整體系統(tǒng)要求以及所述整體系統(tǒng)內(nèi)物理塊的冗余區(qū)內(nèi)可用的比特數(shù)量。
一般而言,基本上可以利用物理塊更新索引之間的任何差別來確定復(fù)數(shù)個物理塊中哪一個是一未完成的塊,或是可將當(dāng)前數(shù)據(jù)更新、拷貝或歸并至其中的塊。盡管文中將一具有一較高更新索引的物理塊描述為是較新的塊(例如未完成的塊),但具有一較低更新索引的物理塊也可以是較新的塊,例如,在獲取一備用物理塊時,將所述備用物理塊的一更新索引值設(shè)置為小于一當(dāng)前物理塊的更新索引的情形。同樣,也可旋轉(zhuǎn)或以其它方式移位所述更新索引內(nèi)的比特,以給可用來確定哪個更新索引與一較新塊相關(guān)聯(lián)的更新索引提供不同的“值”。
在使用更新索引確定復(fù)數(shù)個物理塊中哪個塊是一較新塊或備用物理塊以及復(fù)數(shù)個物理塊中哪個塊是一舊物理塊后,可以有效地重新開始一拷貝或一歸并操作,以完成將信息提供(例如更新、拷貝或歸并)至所述備用物理塊的過程。在一個實施例中,在重新開始所述的更新、拷貝或歸并操作之前,可擦除所述備用物理塊的內(nèi)容,并可將所述物理塊的更新索引重設(shè)為一個比所述舊物理塊的更新索引值新(例如較高)的值,此并不偏離本發(fā)明的精神和范圍。擦除所述備用物理塊盡管是耗時的,但可以減少下列需要,即確定所述舊物理塊中哪些內(nèi)容已被提供至所述備用物理塊,以及所述舊物理塊中哪些內(nèi)容尚未被提供至所述備用物理塊。
與本發(fā)明的各種方法相關(guān)的步驟可能有很大的差異。一般而言,步驟可以被增加、刪除、重新排序和改變。例如,在一分解物理塊的過程中,可在獲取一物理塊后基本上立即從所述物理塊中檢索一更新索引。
在一實施例中,由于在完成一拷貝或一歸并過程后,基本上始終要擦除一舊物理塊,如果斷掉包含所述舊物理塊和一相應(yīng)的新物理塊的系統(tǒng)的電源,則所述舊物理塊和所述新物理塊一般仍將與一單個邏輯塊相關(guān)聯(lián)。由此,應(yīng)當(dāng)了解,確定一拷貝或一歸并過程是否已經(jīng)成功完成可包括確定是否仍有兩個物理塊與一單個邏輯塊相關(guān)聯(lián),此并不偏離本發(fā)明的精神和范圍。因此,僅應(yīng)將本發(fā)明實例視為舉例說明性而非限制性,并且本發(fā)明不僅限于本文所給出的詳細(xì)闡述,而是可在隨附權(quán)利要求范圍內(nèi)進(jìn)行修改。
權(quán)利要求
1.一種用于分解一第一物理塊和一第二物理塊與一與一非易失性存儲器系統(tǒng)相關(guān)聯(lián)的邏輯塊的關(guān)聯(lián)關(guān)系的方法,所述方法包括獲取與所述第一物理塊相關(guān)聯(lián)的一第一識別符;獲取與所述第二物理塊相關(guān)聯(lián)的一第二識別符;將所述第一識別符與所述第二識別符加以比較,以確定所述第一識別符何時指示所述第一物理塊比所述第二物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián);及在確定所述第一識別符指示所述第一物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)時,完成一被布置用于將與所述邏輯塊相關(guān)聯(lián)的內(nèi)容提供至所述第一物理塊的操作。
2.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括在確定所述第一識別符未指示所述第一物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)時,完成一被布置用于將與所述邏輯塊相關(guān)聯(lián)的內(nèi)容提供至所述第二物理塊的操作。
3.根據(jù)權(quán)利要求1所述的方法,其中獲取所述第一識別符包括從與所述第一物理塊相關(guān)聯(lián)的一開銷區(qū)中獲取所述第一識別符,而獲取所述第二識別符包括從與所述第二物理塊相關(guān)聯(lián)的一開銷區(qū)中獲取所述第二識別符。
4.根據(jù)權(quán)利要求3所述的方法,其中所述第一識別符是一第一更新索引,且所述第二識別符是一第二更新索引。
5.根據(jù)權(quán)利要求4所述的方法,其中所述第一更新索引具有一小于大約1個字節(jié)的長度,且所述第二更新索引具有一小于大約1個字節(jié)的長度。
6.根據(jù)權(quán)利要求1所述的方法,其中將所述第一識別符與所述第二識別符加以比較以確定所述第一識別符何時指示所述第一物理塊比所述第二物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)包括確定所述第一識別符何時具有一高于所述第二識別符的值,且完成被布置用于將與所述邏輯塊相關(guān)聯(lián)的內(nèi)容提供至所述第一物理塊的所述操作包括在確定所述第一識別符具有一高于所述第二識別符的值時完成所述操作。
7.根據(jù)權(quán)利要求1所述的方法,其中所述操作是一更新操作、一拷貝操作和一歸并操作之一。
8.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括識別所述第一物理塊;及識別所述第二物理塊。
9.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括在所述操作完成后擦除所述第二物理塊,其中擦除所述第二物理塊包括擦除所述第二識別符。
10.根據(jù)權(quán)利要求1所述的方法,其中所述非易失性存儲器系統(tǒng)是一NAND閃存存儲器系統(tǒng)。
11.根據(jù)權(quán)利要求1所述的方法,其中所述第一識別符被進(jìn)一步布置用于指示所述第一物理塊的頁面基本上全部比所述第二物理塊的頁面新與所述邏輯塊發(fā)生關(guān)聯(lián)。
12.一種用于使一第二物理塊與一在一非易失性存儲器系統(tǒng)內(nèi)的邏輯塊相關(guān)聯(lián)的方法,所述邏輯塊具有一相關(guān)聯(lián)的第一物理塊,所述第一物理塊包含與所述邏輯塊相關(guān)聯(lián)的內(nèi)容,所述方法包括獲取所述第二物理塊;將與所述第二物理塊相關(guān)聯(lián)的一第二指示符設(shè)置為一值,該值基本上不同于與所述第一物理塊相關(guān)聯(lián)的一第一指示符的值;及啟動一用于將所述第一物理塊的頁面中所包含的內(nèi)容的至少一部分提供至所述第二物理塊的操作,其中所述第二指示符被布置用于指示所述第二物理塊的頁面比所述第一物理塊的頁面新與所述邏輯塊發(fā)生關(guān)聯(lián)。
13.根據(jù)權(quán)利要求12所述的方法,其進(jìn)一步包括從所述第一物理塊中檢索所述第一指示符;及確定所述第一指示符的值。
14.根據(jù)權(quán)利要求13所述的方法,其中設(shè)置所述第二指示符包括將所述第二指示符設(shè)置為一高于所述第一指示符的值。
15.根據(jù)權(quán)利要求13所述的方法,其中所述第一指示符是從所述第一物理塊的一冗余區(qū)中檢索出。
16.根據(jù)權(quán)利要求12所述的方法,其進(jìn)一步包括將所述第二指示符存儲在所述第二物理塊內(nèi)。
17.根據(jù)權(quán)利要求16所述的方法,其中將所述第二指示符存儲在所述第二物理塊內(nèi)包括將所述第二指示符存儲在與所述物理塊相關(guān)聯(lián)的一冗余區(qū)內(nèi)。
18.根據(jù)權(quán)利要求17所述的方法,其中將所述第二指示符存儲在所述冗余區(qū)內(nèi)包括將所述第二指示符作為多達(dá)大約1個字節(jié)存儲在所述冗余區(qū)內(nèi)。
19.根據(jù)權(quán)利要求12所述的方法,其中所述操作是一更新操作、一拷貝操作和一歸并操作之一。
20.根據(jù)權(quán)利要求12所述的方法,其中所述非易失性存儲器系統(tǒng)是一NAND閃存存儲器系統(tǒng)。
21.一種用于分解一第一物理塊和一第二物理塊與一與一非易失性存儲器相關(guān)聯(lián)的邏輯塊的關(guān)聯(lián)關(guān)系的系統(tǒng),所述系統(tǒng)包括用于獲取與所述第一物理塊相關(guān)聯(lián)的一第一標(biāo)識符的代碼裝置;用于獲取與所述第二物理塊相關(guān)聯(lián)的一第二標(biāo)識符的代碼裝置;用于將所述第一標(biāo)識符與所述第二標(biāo)識符加以比較以確定所述第一標(biāo)識符何時指示所述第一物理塊比所述第二物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)的代碼裝置;用于在確定所述第一標(biāo)識符指示所述第一物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)時完成一被布置用于將與所述邏輯塊相關(guān)聯(lián)的內(nèi)容提供至所述第一物理塊的操作的代碼裝置;一用于存儲所述代碼裝置的存儲區(qū);及一用于處理所述代碼裝置的處理器。
22.根據(jù)權(quán)利要求21所述的方法,其進(jìn)一步包括用于在確定所述第一標(biāo)識符未指示所述第一物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)時完成一被布置用于將與所述邏輯塊相關(guān)聯(lián)的內(nèi)容提供至所述第二物理塊的操作的代碼裝置。
23.根據(jù)權(quán)利要求21所述的系統(tǒng),其中用于獲取所述第一標(biāo)識符的所述代碼裝置包括用于從一與所述第一物理塊相關(guān)聯(lián)的開銷區(qū)獲取所述第一標(biāo)識符的代碼裝置,且用于獲取所述第二指示符的所述代碼裝置包括用于從一與所述第二物理塊相關(guān)聯(lián)的開銷區(qū)獲取所述第二標(biāo)識符的代碼裝置。
24.根據(jù)權(quán)利要求21所述的系統(tǒng),其中用于將所述第一標(biāo)識符與所述第二標(biāo)識符加以比較以確定所述第一標(biāo)識符何時指示所述第一物理塊比所述第二物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)的所述代碼裝置包括用于確定所述第一指示符何時具有一比所述第二標(biāo)識符的值新的值的代碼裝置;且用于完成被布置用于將與所述邏輯塊相關(guān)聯(lián)的內(nèi)容提供至所述第一物理塊的所述操作的所述代碼裝置包括用于在確定所述第一指示符具有一比所述第二指示符新的值時完成所述操作的代碼裝置。
25.根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述操作是一更新操作、一拷貝操作和一歸并操作之一。
26.根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述非易失性存儲器是一NAND閃存存儲器。
27.根據(jù)權(quán)利要求21所述的系統(tǒng),其中所述第一標(biāo)識符被進(jìn)一步布置用于指示所述第一物理塊的頁面基本上全部比所述第二物理塊的頁面新與所述邏輯塊發(fā)生關(guān)聯(lián)。
28.一種用于使一第二物理塊與一非易失性存儲器的一邏輯塊相關(guān)聯(lián)的系統(tǒng),所述邏輯塊具有一相關(guān)聯(lián)的第一物理塊,所述第一物理塊包含與所述邏輯塊相關(guān)聯(lián)的內(nèi)容,所述系統(tǒng)包括用于獲取所述第二物理塊的代碼裝置;用于將與所述第二物理塊相關(guān)聯(lián)的一第二指示符設(shè)置為一值的代碼裝置,所述值基本上不同于與所述第一物理塊相關(guān)聯(lián)的一第一指示符的值;用于啟動一用于將所述第一物理塊的頁面中所包含的內(nèi)容的至少一部分提供至所述第二物理塊的操作的代碼裝置,其中所述第二指示符被布置用于指示所述第二物理塊的頁面比所述第一物理塊的頁面新與所述邏輯塊發(fā)生關(guān)聯(lián);一用于存儲所述代碼裝置的存儲區(qū);及一用于處理所述代碼裝置的處理器。
29.根據(jù)權(quán)利要求28所述的系統(tǒng),其中用于設(shè)置所述第二指示符的所述代碼裝置包括用于將所述第二指示符設(shè)置為一高于所述第一指示符的值的代碼裝置。
30.根據(jù)權(quán)利要求28所述的系統(tǒng),其進(jìn)一步包括用于將所述第二指示符存儲在所述第二物理塊內(nèi)的代碼裝置。
31.根據(jù)權(quán)利要求30所述的系統(tǒng),其中用于將所述第二指示符存儲在所述第二物理塊內(nèi)的所述代碼裝置包括用于將所述第二指示符存儲在一與所述物理塊相關(guān)聯(lián)的冗余區(qū)內(nèi)的代碼裝置。
32.根據(jù)權(quán)利要求28所述的存儲器系統(tǒng),其中所述非易失性存儲器是一NAND閃存存儲器。
33.一種非易失性存儲器系統(tǒng),其包括一非易失性存儲器,所述非易失性存儲器包括一第一物理塊和一第二物理塊,它們對應(yīng)于一相關(guān)聯(lián)的邏輯塊;用于獲取一與所述第一物理塊相關(guān)聯(lián)的第一識別符的構(gòu)件;用于獲取一與所述第二物理塊相關(guān)聯(lián)的第二識別符的構(gòu)件;用于將所述第一識別符與所述第二識別符加以比較以確定所述第一識別符何時指示所述第一物理塊的基本上所有的頁面均比所述第二物理塊的基本上所有的頁面新與所述邏輯塊發(fā)生關(guān)聯(lián)的構(gòu)件;及用于在確定所述第一識別符指示所述第一物理塊的基本上所有的頁面新與所述邏輯塊發(fā)生關(guān)聯(lián)時將與所述邏輯塊相關(guān)聯(lián)的內(nèi)容提供至所述第一物理塊的構(gòu)件。
34.根據(jù)權(quán)利要求33所述的系統(tǒng),其進(jìn)一步包括用于在確定所述第一識別符未指示所述第一物理塊新與所述邏輯塊相關(guān)聯(lián)時將與所述第二邏輯塊發(fā)生關(guān)聯(lián)的內(nèi)容提供至所述第二物理塊的構(gòu)件。
35.根據(jù)權(quán)利要求33所述的系統(tǒng),其中所述第一物理塊包括一第一開銷區(qū),且所述第二物理塊包括一第二開銷區(qū);且其中用于獲取所述第一識別符的所述構(gòu)件包括用于從所述第一開銷區(qū)獲取所述第一識別符的構(gòu)件,且用于獲取所述第二識別符的所述構(gòu)件包括用于從所述第二開銷區(qū)獲取所述第二識別符的構(gòu)件。
36.根據(jù)權(quán)利要求33所述的系統(tǒng),其中用于將所述第一識別符與所述第二識別符加以比較以確定所述第一識別符何時指示所述第一物理塊比所述第二物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)的構(gòu)件包括用于確定所述第一識別符何時具有一比所述第二識別符新的值的構(gòu)件;且完成被布置用于將與所述邏輯塊相關(guān)聯(lián)的內(nèi)容提供至所述第一物理塊的所述操作包括在確定所述第一識別符具有一比所述第二識別符新的值時完成所述操作。
37.根據(jù)權(quán)利要求33所述的系統(tǒng),其進(jìn)一步包括用于在所述操作完成后擦除所述第二物理塊的構(gòu)件,其中用于擦除所述第二物理塊的構(gòu)件包括用于擦除所述第二識別符的構(gòu)件。
38.根據(jù)權(quán)利要求33所述的系統(tǒng),其中所述非易失性存儲器是一NAND閃存存儲器,且所述非易失性存儲器系統(tǒng)是一NAND閃存存儲器系統(tǒng)。
39.一種非易失性存儲器系統(tǒng),其包括一非易失性存儲器,所述非易失性存儲器包括與一邏輯塊相關(guān)聯(lián)的一第一物理塊和一第二物理塊,其中所述第一物理塊包含與所述邏輯塊相關(guān)聯(lián)的信息;用于獲取所述第二物理塊的構(gòu)件;用于將一與所述第二物理塊相關(guān)聯(lián)的第二指示符設(shè)置為一基本上不同于一與所述第一物理塊相關(guān)聯(lián)的第一指示符的值的值的構(gòu)件,其中所述第二指示符被布置用于指示與所述第二物理塊相關(guān)聯(lián)的基本上所有的頁面均比與所述第一物理塊相關(guān)聯(lián)的基本上所有的頁面新與所述邏輯塊發(fā)生關(guān)聯(lián);及用于啟動一將所述第一物理塊中所包含的信息的至少一部分提供至所述第二物理塊的操作的構(gòu)件。
40.根據(jù)權(quán)利要求39所述的系統(tǒng),其進(jìn)一步包括用于在將所述信息的至少一部分提供至所述第二物理塊后將所述信息和所述第一指示符從所述第一物理塊中擦除的構(gòu)件。
41.根據(jù)權(quán)利要求39所述的系統(tǒng),其中用于設(shè)置所述第二指示符的構(gòu)件包括用于將所述第二指示符設(shè)置為一高于所述第一指示符的值的構(gòu)件。
42.根據(jù)權(quán)利要求39所述的系統(tǒng),其進(jìn)一步包括用于將所述第二指示符存儲在一與所述物理塊相關(guān)聯(lián)的冗余區(qū)內(nèi)的構(gòu)件。
43.根據(jù)權(quán)利要求39所述的系統(tǒng),其中所述非易失性存儲器是一NAND閃存存儲器,且所述非易失性存儲器系統(tǒng)是一NAND閃存存儲器系統(tǒng)。
44.一種非易失性存儲器系統(tǒng),其包括一第一物理塊,所述第一物理塊包括至少一第一頁面,所述第一頁面包括一其中存儲有一第一組比特的第一開銷區(qū);及一第二物理塊,所述第二物理塊包括至少一第二頁面,所述第二頁面包括一其中存儲有一第二組比特的第二開銷區(qū),所述第一物理塊和所述第二物理塊與一邏輯塊相關(guān)聯(lián),所述第一組比特被布置用于指示所述第一物理塊基本上所有頁面的一相對年齡,所述第二組比特被布置用于指示所述第二物理塊基本上所有頁面的一相對年齡,其中所述第一組比特和所述第二組比特被布置用以相互進(jìn)行比較以確定所述第一物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)。
45.一種用于在一非易失性存儲器系統(tǒng)內(nèi)使一第二物理塊與一邏輯塊相關(guān)聯(lián)的方法,所述邏輯塊具有一相關(guān)聯(lián)的第一物理塊,所述第一物理塊包含與所述邏輯塊相關(guān)聯(lián)的較舊內(nèi)容,所述方法包括獲取所述第二物理塊;將一與所述第二物理塊相關(guān)聯(lián)的第二指示符設(shè)置為一基本上不同于與所述第一物理塊相關(guān)聯(lián)的一第一指示符的值的值,其中所述第二指示符被布置用于指示與所述第二物理塊相關(guān)聯(lián)的基本上所有的頁面比與所述第一物理塊相關(guān)聯(lián)的基本上所有的頁面新與所述邏輯塊發(fā)生關(guān)聯(lián);及啟動一用于將與所述邏輯塊相關(guān)聯(lián)的新內(nèi)容提供至所述第二物理塊的操作,其中所述新內(nèi)容的至少一部分被布置為所述舊內(nèi)容的較新版本。
46.根據(jù)權(quán)利要求45所述的方法,其進(jìn)一步包括從所述第一物理塊中檢索所述第一指示符;及確定所述第一指示符的值。
47.根據(jù)權(quán)利要求46所述的方法,其中設(shè)置所述第二指示符包括將所述第二指示符設(shè)置為一高于所述第一指示符的值。
48.根據(jù)權(quán)利要求46所述的方法,其中從所述第一物理塊的一冗余區(qū)中檢索所述第一指示符。
49.根據(jù)權(quán)利要求45所述的方法,其進(jìn)一步包括將所述第二指示符存儲在所述第二物理塊內(nèi)。
50.一種非易失性存儲器系統(tǒng),其包括一非易失性存儲器,所述非易失性存儲器包括與一邏輯塊相關(guān)聯(lián)的一第一物理塊和一第二物理塊,其中所述第一物理塊包含與所述邏輯塊相關(guān)聯(lián)的至少一部分較舊信息;用于獲取所述第二物理塊的構(gòu)件;用于將一與所述第二物理塊相關(guān)聯(lián)的第二指示符設(shè)置為一基本上不同于一與所述第一物理塊相關(guān)聯(lián)的第一指示符的值的值的構(gòu)件,其中所述第二指示符被布置用于指示與所述第二物理塊相關(guān)聯(lián)的基本上所有的頁面比與所述第一物理塊相關(guān)聯(lián)的基本上所有的頁面新與所述邏輯塊發(fā)生關(guān)聯(lián);及用于啟動一將與所述邏輯塊相關(guān)聯(lián)的較新信息提供至所述第二物理塊的操作的構(gòu)件,其中基本上無任何所述較舊信息被提供至所述第二物理塊。
51.根據(jù)權(quán)利要求50所述的系統(tǒng),其進(jìn)一步包括用于在將所述較新信息提供至所述第二物理塊之后從所述第一物理塊中擦除所述信息及所述第一指示符的構(gòu)件。
52.根據(jù)權(quán)利要求50所述的系統(tǒng),其中用于設(shè)置所述第二指示符的所述構(gòu)件包括用于將所述第二指示符設(shè)置為一高于所述第一指示符的值的構(gòu)件。
全文摘要
本發(fā)明揭示用于一種確定與一邏輯塊相關(guān)聯(lián)的復(fù)數(shù)個物理塊中的哪一個物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)的方法和設(shè)備。根據(jù)本發(fā)明的一個方面,一種用于分解一第一物理塊和一第二物理塊與一與一非易失性存儲器系統(tǒng)相關(guān)聯(lián)的邏輯塊的關(guān)聯(lián)關(guān)系的方法包括獲取與所述第一物理塊相關(guān)聯(lián)的一第一識別符和獲取與所述第二物理塊相關(guān)聯(lián)的一第二識別符。對所述識別符加以比較,以確定所述第一識別符是否指示所述第一物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)。所述方法也包括在確定所述第一識別符指示所述第一物理塊新與所述邏輯塊發(fā)生關(guān)聯(lián)時,完成一被布置用于將與所述邏輯塊相關(guān)聯(lián)的內(nèi)容提供至所述第一物理塊的操作。
文檔編號G06F12/02GK1701300SQ03824783
公開日2005年11月23日 申請日期2003年9月10日 優(yōu)先權(quán)日2002年10月28日
發(fā)明者羅伯特·C·張, 巴赫曼·卡瓦邁, 法施德·薩伯特-沙吉 申請人:桑迪士克股份有限公司