專利名稱:非易失性存儲器中的部分分塊數(shù)據(jù)編程和讀取操作的制作方法
背景技術(shù):
本發(fā)明涉及半導(dǎo)體非易失性數(shù)據(jù)存儲系統(tǒng)架構(gòu)及其操作方法的領(lǐng)域,并且應(yīng)用于具有對基于快閃(flash)電可擦除可編程只讀存儲器(EEPROM)的數(shù)據(jù)存儲系統(tǒng)。
快閃EEPROM裝置的一般應(yīng)用是作為電子裝置的大容量數(shù)據(jù)存儲子系統(tǒng)。這些子系統(tǒng)通常被實(shí)現(xiàn)為可以插入到多個(gè)主機(jī)系統(tǒng)的可移動式存儲卡或者主機(jī)系統(tǒng)內(nèi)的非可移動式嵌入存儲器。在這兩種實(shí)現(xiàn)中,子系統(tǒng)包括一個(gè)或多個(gè)快閃裝置,并且經(jīng)常還包括一個(gè)子系統(tǒng)控制器。
快閃EEPROM裝置由一個(gè)或多個(gè)晶體管分區(qū)(cell)陣列組成,其中,每個(gè)分區(qū)能夠非易失性地存儲一個(gè)或多個(gè)數(shù)據(jù)位。因此,閃存不需要電源來保持在其中編程的數(shù)據(jù)。然而,一旦編程,在分區(qū)可以用新數(shù)據(jù)值進(jìn)行重新編程之前,它必須被擦除。這些分區(qū)陣列分成多組,以支持高效實(shí)現(xiàn)讀取、編程和擦除功能。用于大容量存儲的典型閃存架構(gòu)將大的分區(qū)組編排為可擦除分塊(block),其中,分塊包含一次可擦除的最小數(shù)目的分區(qū)(擦除單元)。
在一種商業(yè)形式中,各分塊包含足夠的分區(qū)來存儲一個(gè)扇區(qū)的用戶數(shù)據(jù)以及與用戶數(shù)據(jù)和/或存儲它的分塊相關(guān)的一些開銷數(shù)據(jù)。在一類這種存儲系統(tǒng)中,包括在一個(gè)扇區(qū)中的用戶數(shù)據(jù)量為標(biāo)準(zhǔn)512字節(jié),但是也可以具有某種其它尺寸。由于為了使各個(gè)分區(qū)分塊可單獨(dú)擦除而需要在集成電路芯片上對這些分塊進(jìn)行相互隔離,因此另一類閃存使分塊顯著增大,從而減小這種隔離所需的空間。但是由于還希望以小得多的扇區(qū)處理用戶數(shù)據(jù),因此經(jīng)常還將每個(gè)大分塊分為可單獨(dú)尋址的分頁,它是用于對用戶數(shù)據(jù)進(jìn)行讀取和編程的基本單元(編程和/或讀取單元)。每個(gè)分頁通常存儲一個(gè)扇區(qū)的用戶數(shù)據(jù),但是每個(gè)分頁也可以存儲部分扇區(qū)或多個(gè)扇區(qū)。在此所用的“扇區(qū)”是指作為單元傳輸?shù)街鳈C(jī)和從主機(jī)傳輸?shù)挠脩魯?shù)據(jù)量。
大分塊系統(tǒng)中的子系統(tǒng)控制器執(zhí)行多種功能,包括存儲子系統(tǒng)從主機(jī)接收的邏輯地址(LBA)與存儲分區(qū)陣列內(nèi)的物理分塊號(PBN)和分頁地址之間的轉(zhuǎn)換。該轉(zhuǎn)換經(jīng)常涉及使用邏輯分塊號(LBN)和邏輯分頁的中間術(shù)語。控制器還通過它經(jīng)由接口總線發(fā)給閃存裝置的一系列命令,管理低層快閃電路操作。控制器所執(zhí)行的另一功能是通過各種手段如通過使用糾錯碼(ECC)維護(hù)存儲到子系統(tǒng)的數(shù)據(jù)的完整性。
在理想情況下,分塊的所有分頁中的數(shù)據(jù)經(jīng)常通過將更新數(shù)據(jù)寫入到未被分配的擦除分塊內(nèi)的分頁來一起更新,并且使用新地址更新邏輯-到-物理分塊號表。然后,可以擦除原始分塊。然而,更典型的是,必須更新給定分塊內(nèi)的部分分頁中的數(shù)據(jù)。存儲在給定分塊的其余分頁中的數(shù)據(jù)保持不變。在每個(gè)分塊所存儲數(shù)據(jù)扇區(qū)數(shù)越高的系統(tǒng)中,這一事件的概率就越高。目前用來完成這種部分分塊更新的一種技術(shù)是將所要更新的分頁數(shù)據(jù)寫入到未用擦除分塊內(nèi)具有對應(yīng)編號的分頁中,然后將未變分頁從原始分塊拷貝到新分塊的分頁中。然后,可以擦除原始分塊,并且將其加到以后可以對數(shù)據(jù)進(jìn)行編程的未用分塊庫存中。另一種技術(shù)類似地將更新分頁寫入到新分塊,但是通過改變原始分塊內(nèi)正被更新的分頁的標(biāo)志來表示它們包含過時(shí)數(shù)據(jù),而不需要將其它數(shù)據(jù)分頁拷貝到新分塊中。然后,當(dāng)讀取數(shù)據(jù)時(shí),組合從新分塊的分頁中讀取的更新數(shù)據(jù)與從原始分塊內(nèi)未標(biāo)為過時(shí)的分頁中讀取的未變數(shù)據(jù)。
發(fā)明概要根據(jù)本發(fā)明原理的一方面,簡短且概括地說,當(dāng)更新分塊內(nèi)部分分頁的數(shù)據(jù)時(shí),避免將未變數(shù)據(jù)從原始分塊拷貝到新分塊以及更新原始分塊內(nèi)的標(biāo)志的需要。這通過采用共同邏輯地址維護(hù)替換數(shù)據(jù)分頁和更新數(shù)據(jù)分頁來完成。然后,數(shù)據(jù)的原始和更新分頁通過對它們進(jìn)行編程的相對次序來區(qū)分。在讀取期間,組合存儲在具有相同邏輯地址的分頁中的最新數(shù)據(jù)與未變數(shù)據(jù)分頁,而忽略更新分頁原始版本中的數(shù)據(jù)。更新數(shù)據(jù)可以寫入到與原始數(shù)據(jù)不同的分塊內(nèi)的分頁或者可以在同一分塊內(nèi)獲得的未用分頁。在一個(gè)特定實(shí)施例中,對各個(gè)數(shù)據(jù)分頁存儲某種形式的時(shí)間戳,從而允許確定具有相同邏輯地址的分頁的寫入相對次序。在另一個(gè)特定實(shí)現(xiàn)中,在分塊內(nèi)以特定次序?qū)Ψ猪撨M(jìn)行編程的系統(tǒng)中,對各個(gè)數(shù)據(jù)分塊存儲某種形式的時(shí)間戳,并且通過分頁在分塊內(nèi)的物理位置來確定分塊內(nèi)分頁的最新副本。
這些技術(shù)既不需要將未變數(shù)據(jù)從原始分塊拷貝到新分塊,又不需要改變原始分塊內(nèi)其數(shù)據(jù)已被更新的分頁中的標(biāo)志或其它數(shù)據(jù)。由于不需要改變替換分頁中的標(biāo)志或其它數(shù)據(jù),因此消除由于這種寫入操作而干擾同一分塊的相鄰分頁中的先前寫入數(shù)據(jù)的潛在可能性。另外,避免額外編程操作所帶來的性能惡化。
可以結(jié)合上述技術(shù)使用的另一操作特征記錄各個(gè)存儲分區(qū)分塊內(nèi)各個(gè)數(shù)據(jù)分頁的邏輯偏移,從而不需要使用與替換數(shù)據(jù)相同的物理分頁偏移來存儲更新數(shù)據(jù)。這就允許更高效使用新分塊的分頁,并且甚至允許將更新數(shù)據(jù)存儲在與替換數(shù)據(jù)相同的分塊內(nèi)的任何擦除分頁中。
本發(fā)明的另一原理方面將位于不同存儲陣列單元(也稱作“子陣列”)中的兩個(gè)或更多分塊分組在一起,以作為單個(gè)操作的一部分一起進(jìn)行編程和讀取。這種多分塊組在此稱作“元分塊(metablock)”。其組成分塊可以均位于單存儲器集成電路芯片上,或者在使用多個(gè)這種芯片的系統(tǒng)中位于兩個(gè)或更多不同芯片上。當(dāng)更新這些分塊中的一個(gè)分塊的部分分頁的數(shù)據(jù)時(shí),通常需要使用同一單元中的另一分塊。實(shí)際上,可以對元分塊中的每個(gè)分塊單獨(dú)采用上述或其它技術(shù)。因此,當(dāng)更新元分塊中的多個(gè)分塊的分頁內(nèi)的數(shù)據(jù)時(shí),需要使用多個(gè)另外分塊內(nèi)的分頁。例如,如果元分塊由四個(gè)不同存儲單元的四個(gè)分塊形成,則可能將要另外使用最大四個(gè)分塊來存儲原始分塊的更新分頁,其中,每個(gè)單元均有一個(gè)另外分塊。對于原始元分塊的每個(gè)分塊,可能都需要各自單元中的一個(gè)更新分塊。另外,根據(jù)本發(fā)明,來自元分塊中多個(gè)分塊的分頁的更新數(shù)據(jù)可以僅存儲在其中一個(gè)單元內(nèi)公共分塊的分頁中。這就大大減少存儲更新數(shù)據(jù)所需的未用擦除分塊,從而更高效利用可用來存儲數(shù)據(jù)的存儲分區(qū)分塊。當(dāng)存儲系統(tǒng)頻繁更新來自元分塊的單個(gè)分頁時(shí),該技術(shù)尤其有用。
本發(fā)明的另外方面、特性和優(yōu)點(diǎn)包括在下面對示例性實(shí)施例的描述中,其中,該描述應(yīng)結(jié)合附圖一起閱讀。
附圖簡述
圖1是具有存儲控制邏輯、數(shù)據(jù)和地址寄存器的典型現(xiàn)有技術(shù)快閃EEPROM存儲陣列的方框圖;圖2示出具有系統(tǒng)控制器的采用多個(gè)圖1的存儲器的架構(gòu);圖3是示出圖2的存儲系統(tǒng)的典型拷貝操作的時(shí)序圖;圖4示出更新多頁分塊的部分分頁中的數(shù)據(jù)的現(xiàn)有過程;圖5A和5B分別是圖4的原始和新分塊的邏輯與物理分塊地址對應(yīng)表;圖6示出更新多頁分塊的部分分頁中的數(shù)據(jù)的另一現(xiàn)有過程;圖7A和7B分別是圖6的原始和新分塊的邏輯與物理分頁地址對應(yīng)表;圖8示出更新多頁分塊的部分分頁中的數(shù)據(jù)的改進(jìn)過程的一個(gè)例子;圖9是圖8的新分塊的邏輯與物理分頁號對應(yīng)表;圖10提供圖8所示的分頁內(nèi)的數(shù)據(jù)布局的一個(gè)例子;圖11示出圖8的例子的進(jìn)一步發(fā)展;圖12是圖11的新分塊的邏輯與物理分頁號對應(yīng)表;圖13示出在圖11的分塊中讀取更新數(shù)據(jù)的一種方式;圖14是將數(shù)據(jù)編程到如圖8和9所示組織的存儲系統(tǒng)中的過程的流程圖;圖15示出現(xiàn)有多單元存儲器,其中,來自各個(gè)單元的分塊鏈接在一起形成元分塊;以及圖16示出當(dāng)更新數(shù)據(jù)量遠(yuǎn)遠(yuǎn)小于元分塊的數(shù)據(jù)存儲容量時(shí)在圖12的多單元存儲器中更新元分塊數(shù)據(jù)的改進(jìn)方法。
現(xiàn)有大分塊管理技術(shù)的描述圖1示出典型閃存裝置內(nèi)部架構(gòu)。主要部件包括輸入/輸出(I/O)總線411和控制信號412,用來通過接口連接到外部控制器;存儲控制電路450,用來通過用于命令、地址和狀態(tài)信號的寄存器控制內(nèi)部存儲操作。還包括一個(gè)或多個(gè)快閃EEPROM分區(qū)陣列400,其中,每個(gè)陣列均具有其自己的行解碼器(XDEC)401和列解碼器(YDEC)402,一組感測放大器和程序控制電路(SA/PROG)454和數(shù)據(jù)寄存器404。目前,存儲分區(qū)通常包括一個(gè)或多個(gè)導(dǎo)電浮動?xùn)抛鳛榇鎯υ?,但是也可以改為使用其它長期電子電荷存儲元件。存儲分區(qū)陣列(memory cell array)可以采用為每個(gè)存儲元件定義的兩個(gè)電荷電平工作,從而使用每個(gè)元件存儲一個(gè)數(shù)據(jù)位??蛇x地,可以為每個(gè)存儲元件定義兩個(gè)以上的存儲狀態(tài),在這種情況下,在每個(gè)元件中存儲多個(gè)數(shù)據(jù)位。
如果需要,提供多個(gè)陣列400以及相關(guān)X解碼器、Y解碼器、程序/驗(yàn)證電路、數(shù)據(jù)寄存器等,例如美國專利5,890,192所述,該專利發(fā)布于1999年3月30日,并且受讓給Sandisk公司,即本申請的受讓人,在此將其引作參考。相關(guān)存儲系統(tǒng)特性在Kevin Conley等人于2000年2月17日提交的共同未決專利申請09/505,555序列號中有描述,在此將其引作參考。
外部接口I/O總線411和控制信號412可以包括如下方面CS-芯片選擇用來激活閃存接口RS-讀取選通用來表示I/O總線正用來從存儲陣列傳輸數(shù)據(jù)WS-寫入選通用來表示I/O總線正用來將數(shù)據(jù)傳輸?shù)酱鎯﹃嚵蠥S-地址選通表示I/O總線正用來傳輸?shù)刂沸畔D[7:0]-地址/數(shù)據(jù)總線 該I/0總線用來在控制器與存儲控制450的閃存命令、地址和數(shù)據(jù)寄存器之間傳輸數(shù)據(jù)該接口是僅作為例子給出的,并且可以使用其它信號結(jié)構(gòu)來提供相同的功能。圖1僅示出一個(gè)具有相關(guān)組件的閃存陣列400,但是多個(gè)這種陣列可以存在于單個(gè)閃存芯片上,這些陣列共用公共接口和存儲控制電路,但具有單獨(dú)的XDEC、YDEC、SA/PROG和DATA REG(數(shù)據(jù)寄存器)電路,從而允許并行讀取和編程操作。
數(shù)據(jù)憑藉數(shù)據(jù)寄存器與I/O總線AD[7:0]411的連接,通過數(shù)據(jù)寄存器404從存儲陣列傳輸?shù)酵獠靠刂破?。?shù)據(jù)寄存器404還連接到感測放大器/編程電路454。連接到各感測放大器/編程電路元件的數(shù)據(jù)寄存器元件數(shù)可以依賴于存儲在存儲分區(qū)的每個(gè)存儲元件中的位數(shù),其中,快閃EEPROM分區(qū)均包含一個(gè)或多個(gè)浮動?xùn)抛鳛榇鎯υ?。如果存儲分區(qū)在多狀態(tài)模式下工作,則每個(gè)存儲元件可以存儲多位如2或4??蛇x地,存儲分區(qū)可以在二進(jìn)制模式下工作,從而每個(gè)存儲元件存儲一個(gè)數(shù)據(jù)位。
行解碼器401對陣列400的行地址進(jìn)行解碼,從而選擇所要訪問的物理分頁。行解碼器401通過內(nèi)部行地址線419從存儲控制邏輯450接收行地址。列解碼器402通過內(nèi)部列地址線429從存儲控制邏輯450接收列地址。
圖2示出典型非易失性數(shù)據(jù)存儲系統(tǒng)的架構(gòu),在這種情況下,采用閃存分區(qū)作為存儲介質(zhì)。在一種形式中,該系統(tǒng)封裝在可移動卡內(nèi),其中,該卡具有沿著一側(cè)延展的電氣連接器,以當(dāng)插入到主機(jī)插座中時(shí)提供主機(jī)接口??蛇x地,圖2的系統(tǒng)可以采用永久性安裝的嵌入電路或其它形式,嵌入到主機(jī)系統(tǒng)中。系統(tǒng)采用單個(gè)控制器301來執(zhí)行高層主機(jī)和存儲控制功能。閃存介質(zhì)由一個(gè)或多個(gè)閃存裝置組成,其中,每個(gè)這種裝置經(jīng)常是在其自己的集成電路芯片上形成的。系統(tǒng)控制器和閃存通過總線302連接,其中,總線302允許控制器301載入命令、地址,并且將數(shù)據(jù)傳輸?shù)介W存陣列和從其傳輸數(shù)據(jù)。控制器301與主機(jī)系統(tǒng)(未示出)通過接口連接,通過它,將用戶數(shù)據(jù)傳輸?shù)介W存陣列和從其傳輸用戶數(shù)據(jù)。在圖2的系統(tǒng)包括在卡中的情況下,主機(jī)接口包括卡和主機(jī)設(shè)備上的匹配插頭和插座組合。
控制器301從主機(jī)接收命令,以讀取或?qū)懭胍蕴囟ㄟ壿嫷刂烽_始的一個(gè)或多個(gè)扇區(qū)的用戶數(shù)據(jù)。該地址可以或者可以不與存儲分區(qū)的物理分塊的邊界對齊。
如上所述,在具有分為多頁的大容量存儲分區(qū)分塊的一些現(xiàn)有技術(shù)系統(tǒng)中,來自未被更新分塊的數(shù)據(jù)需要從原始分塊拷貝到新分塊,該新分塊還包含正由主機(jī)寫入的新更改數(shù)據(jù)。該技術(shù)如圖4所示,其中,包括存儲器的大量分塊中的兩個(gè)分塊。圖中示出一個(gè)分塊11(PBN0)分為8個(gè)分頁,其中每個(gè)分頁存儲一個(gè)扇區(qū)的用戶數(shù)據(jù)。包含在各個(gè)分頁內(nèi)的開銷數(shù)據(jù)字段包括字段13,它包含分塊11的LBN。邏輯分塊內(nèi)邏輯分頁的次序相對于物理分塊內(nèi)的對應(yīng)物理分頁是固定的。從未用擦除分塊庫存中選擇類似構(gòu)造的第二分塊15(PBN1)。原始分塊11的分頁3-5內(nèi)的數(shù)據(jù)正被新分塊15的三個(gè)分頁更新。將新數(shù)據(jù)寫入到新分塊15的對應(yīng)分頁3-5中,并且將來自分塊11的分頁0-2、6和7的用戶數(shù)據(jù)拷貝到新分塊15的對應(yīng)分頁中。新分塊15的所有分頁最好采用單一編程操作順序來編碼。在對分塊15編程之后,可以擦除原始分塊11,并且將其放入庫存以作以后使用。分塊11和15之間的數(shù)據(jù)拷貝涉及從原始分塊中的一個(gè)或多個(gè)分頁中讀取數(shù)據(jù),然后將相同數(shù)據(jù)順序編程到最新分配分塊內(nèi)的分頁,這將大大降低寫入性能和存儲系統(tǒng)的可用壽命。
參照圖5A和5B,部分表示出參照圖4所述的數(shù)據(jù)更新之前(圖5A)和之后(圖5B)邏輯分塊到原始和新物理分塊11和15的映射。在本例中,在數(shù)據(jù)更新之前,原始分塊11將LBN0的分頁0-7存儲到PBN0的對應(yīng)分頁0-7中。在數(shù)據(jù)更新之后,新分塊15將LBN0的分頁0-7存儲在PBN1的對應(yīng)分頁0-7中。接收從LBN0讀取數(shù)據(jù)的請求因而引導(dǎo)到物理分塊15,而不是物理分塊11。在典型控制器操作中,采用圖5A和5B所示形式的表根據(jù)從物理分頁讀取的LBN字段13以及當(dāng)讀取數(shù)據(jù)字段13時(shí)所尋址的PBN的知識來構(gòu)建。該表通常存儲在控制器的易失性存儲器中以便于訪問,但是在任何時(shí)候典型地僅存儲整個(gè)系統(tǒng)的完整表的一部分。該表的一部分通常就是在涉及包括在表部分中的分塊的讀取或編程操作之前形成的。
在其它現(xiàn)有技術(shù)系統(tǒng)中,對分頁中的用戶數(shù)據(jù)記錄標(biāo)志,并且這些標(biāo)志用來表示原始分塊內(nèi)正被最新寫入數(shù)據(jù)替換的數(shù)據(jù)分頁無效。只有新數(shù)據(jù)才寫入到最新分配分塊。因此,寫入操作沒有涉及到但包含在與替換數(shù)據(jù)相同的物理分塊中的那些分頁數(shù)據(jù)不需要拷貝到新分塊中。該操作如圖6所示,其中,原始分塊21(PBN0)內(nèi)的數(shù)據(jù)分頁3-5再次正被更新。數(shù)據(jù)23的更新分頁3-5寫入到新分塊25的對應(yīng)分頁中。作為同一操作的一部分,在分頁3-5中各自寫入舊/新標(biāo)志27,以表示那些分頁的數(shù)據(jù)舊,而其余分頁0-2、6和7的標(biāo)志27保持設(shè)為“新”。類似地,將新PBN1各自寫入到分塊21內(nèi)分頁3-5的另一開銷數(shù)據(jù)字段中,以表示更新數(shù)據(jù)位于何處。LBN和分頁存儲在各個(gè)物理分頁內(nèi)的字段31中。
圖7A和7B是數(shù)據(jù)更新完成之前(圖7A)和之后(圖7B)的數(shù)據(jù)LBN/分頁和PBN/分頁之間的對應(yīng)表。LBN的未變分頁0-2、6和7保持映射到PBN0中,而更新分頁3-5示出為駐留在PBN1中。圖7B的表7B由存儲控制器通過在數(shù)據(jù)更新之后讀取分塊PBN0內(nèi)分頁的開銷數(shù)據(jù)字段27、29和31來構(gòu)建。由于在原始分塊PBN0的分頁3-5中均將標(biāo)志27設(shè)為“舊”,因此該分塊將不再出現(xiàn)在這些分頁的表中。而是新分塊號PBN1出現(xiàn),它是從更新分頁的開銷字段29’讀取的。當(dāng)從LBN0讀取數(shù)據(jù)時(shí),讀取存儲在圖7B的右列所列出的分頁中的用戶數(shù)據(jù),然后以所示次序進(jìn)行組合,以傳輸?shù)街鳈C(jī)。
各種標(biāo)志典型地位于與其它相關(guān)開銷數(shù)據(jù)如LBN和ECC相同的物理分頁中。因此,為在數(shù)據(jù)已被替換的分頁中對舊/新標(biāo)志27等進(jìn)行編程需要分頁支持多編程循環(huán)。也就是,存儲陣列必須具有可以在擦除之間的至少兩個(gè)階段對其分頁進(jìn)行編程的能力。此外,分塊必須支持當(dāng)分塊內(nèi)具有更高偏移或地址的其它分頁已經(jīng)被編程時(shí)對分頁進(jìn)行編程的能力。然而,一些閃存的限制由于指定只能以物理順序方式對分塊中的分頁進(jìn)行編程而不能使用這種標(biāo)志。而且,分頁支持有限數(shù)目的編程循環(huán),并且在某些情況下不允許對已編程分頁進(jìn)行附加編程。
需要一種在不從現(xiàn)有分塊拷貝未變數(shù)據(jù)或者不將標(biāo)志編程到先前已編程的分頁的情況下可以寫入對存儲在現(xiàn)有分塊中的數(shù)據(jù)進(jìn)行部分替換的數(shù)據(jù)的機(jī)制。
本發(fā)明示例性實(shí)施例的描述存在很多不同類型的快閃EEPROM,其中每種快閃EEPROM均具有其自己的限制,要操作在小量集成電路區(qū)域上形成的高性能存儲系統(tǒng),則必須繞開這些限制。某些不支持將任何數(shù)據(jù)寫入到已經(jīng)被編程的分頁中,從而如上所述在包含替換數(shù)據(jù)的分頁中更新標(biāo)志是不可能的。其它允許寫入這種標(biāo)志,但是在數(shù)據(jù)正被替換的分頁中這樣做會干擾同一分塊內(nèi)保持最新的其它分頁數(shù)據(jù)。
已發(fā)現(xiàn)存在問題的一種示例性存儲系統(tǒng)是“與非(NAND)”類型,其中,存儲分區(qū)列作為位線和公共電勢之間的串聯(lián)電路串來形成。每個(gè)字線跨越由每個(gè)這種串中的一個(gè)分區(qū)形成的一行存儲分區(qū)。當(dāng)在多狀態(tài)模式下工作以在每個(gè)這種分區(qū)中存儲多個(gè)數(shù)據(jù)位時(shí),這種存儲器尤其易受這種存儲狀態(tài)干擾的影響。該操作將存儲分區(qū)晶體管閾值電壓范圍的可用窗口分為窄小非重疊電壓電平范圍,其中每個(gè)范圍隨著電平數(shù)以及相應(yīng)的存儲在每個(gè)分區(qū)中的位數(shù)的增加而變窄。例如,如果使用四個(gè)閾值范圍,則在每個(gè)分區(qū)的存儲元件中存儲兩位數(shù)據(jù)。并且由于這四個(gè)閾值電壓范圍均必然較小,因此分區(qū)狀態(tài)受到對同一分塊內(nèi)的其它分區(qū)進(jìn)行編程的干擾的機(jī)會隨著多狀態(tài)操作而加大。在這種情況下,不能容忍如參照圖6、7A和7B所述的舊/新或其它標(biāo)志寫入。
上面參照圖4-7B所述的各種現(xiàn)有存儲管理技術(shù)的一個(gè)公共特性是在系統(tǒng)內(nèi)將邏輯分塊號(LBN)和分頁偏移映射到最多兩個(gè)物理分塊號(PBN)。一個(gè)分塊是原始分塊,而另一個(gè)包含更新分頁數(shù)據(jù)。數(shù)據(jù)寫入到分塊中與其邏輯地址(LBA)的低位相對應(yīng)的分頁位置。該映射在各種存儲系統(tǒng)中是典型的。在下述技術(shù)中,包含更新數(shù)據(jù)的分頁也分配有與其數(shù)據(jù)已被替換的分頁相同的LBN和分頁偏移。然而不是將包含原始數(shù)據(jù)的分頁標(biāo)記為被替換,而是存儲控制器通過如下方式區(qū)分包含替換數(shù)據(jù)的分頁與包含最新更改版本的分頁(1)例如使用計(jì)數(shù)器記錄寫入具有相同邏輯地址的分頁的次序;以及/或者(2)根據(jù)物理分頁地址,其中,當(dāng)在分塊內(nèi)按照從最低分頁地址到最高分頁地址的次序?qū)懭敕猪摃r(shí),較高物理地址包含最新數(shù)據(jù)副本。因此,當(dāng)對數(shù)據(jù)進(jìn)行讀取訪問時(shí),如果存在多個(gè)包含具有相同邏輯地址的替換數(shù)據(jù)的分頁,則使用最新分頁中的數(shù)據(jù),而忽略替換數(shù)據(jù)。
參照圖8和9對該技術(shù)的第一特定實(shí)現(xiàn)進(jìn)行描述。本例的情形與參照圖4-7B所述的現(xiàn)有技術(shù)相同,即部分重寫分塊35內(nèi)的數(shù)據(jù),但是現(xiàn)在示出每個(gè)分塊包含16個(gè)分頁。類似于前面所述,分塊35(PBN0)的分頁3-5中的新數(shù)據(jù)37寫入到先前已被擦除的新分塊39(PBN1)的三個(gè)分頁中。寫入到包含更新數(shù)據(jù)的PBN1分頁中的LBN和分頁偏移開銷數(shù)據(jù)字段41與初始分塊PBN0內(nèi)的替換數(shù)據(jù)分頁相同。根據(jù)字段41和41’內(nèi)的數(shù)據(jù)形成的圖9的表示出這一情形。第一列中的邏輯LBN和分頁偏移映射到第二列中的第一物理分塊(PBN0),并且對于已被更新的分頁,還映射到第三列中的第二物理分塊(PBN1)。各自寫入到新分塊PBN1內(nèi)三個(gè)更新數(shù)據(jù)分頁中的LBN和邏輯分頁偏移41’均與寫入到原始分塊PBN0的對應(yīng)邏輯分頁中的LBN和邏輯分頁偏移41相同。
為了確定具有相同LBN和分頁偏移的兩個(gè)分頁中哪個(gè)分頁包含更新數(shù)據(jù),每個(gè)分頁包含另一開銷字段43來表示其編程時(shí)間,該時(shí)間至少相對于對具有相同邏輯地址的其它分頁進(jìn)行編程的時(shí)間。這就允許控制器確定當(dāng)從存儲器讀取數(shù)據(jù)時(shí)分配有相同邏輯地址的數(shù)據(jù)分頁的相對年齡。
存在可以寫入包含某種形式的時(shí)間戳的字段43的若干方式。最直接簡單的方式是在該字段中記錄對其相關(guān)分頁的數(shù)據(jù)進(jìn)行編程的時(shí)間,即系統(tǒng)中實(shí)時(shí)時(shí)鐘的輸出。具有相同邏輯地址的較晚編程分頁因而在字段43中記錄有較晚時(shí)間。但是當(dāng)在系統(tǒng)中不能得到這種實(shí)時(shí)時(shí)鐘時(shí),可以使用其它技術(shù)。一種特定技術(shù)是存儲模N計(jì)數(shù)器作為字段43的值。計(jì)數(shù)器的范圍應(yīng)比被設(shè)計(jì)為以相同邏輯分頁號存儲的分頁數(shù)大1。當(dāng)更新原始分塊PBN0的特定分頁數(shù)據(jù)時(shí),例如,控制器首先讀取其數(shù)據(jù)正被更新的分頁的字段43中所存儲的計(jì)數(shù),對計(jì)數(shù)增加某個(gè)量如1,然后將增加之后的計(jì)數(shù)作為字段43’寫入在新分塊PBN1中。當(dāng)達(dá)到計(jì)數(shù)N+1時(shí),計(jì)數(shù)器回到0。由于具有相同LBN的分塊數(shù)小于N,因此存儲計(jì)數(shù)值總是存在不連續(xù)點(diǎn)。因而在規(guī)格化到不連續(xù)點(diǎn)的情況下便于處理回零。
當(dāng)請求讀取數(shù)據(jù)時(shí),控制器通過比較具有相同LBA和分頁偏移的分頁的字段43和43’中的計(jì)數(shù),容易區(qū)分新的和替換分頁的數(shù)據(jù)。然后,根據(jù)讀取數(shù)據(jù)文件最新版本的需要,將被標(biāo)識為新的分頁中的數(shù)據(jù)與未被更新的原始分頁組合在一起以形成數(shù)據(jù)文件的最新版本。
需要注意的是,在圖8的例子中,新數(shù)據(jù)分頁37存儲在新分塊PBN1的前三個(gè)分頁0-2中,而不是原始分塊PBN0內(nèi)它們所替換的相同分頁3-5中。通過記錄各個(gè)邏輯分頁號,在新分塊中存儲更新數(shù)據(jù)的分頁偏移不需要一定與包含替換數(shù)據(jù)的舊分塊相同。更新數(shù)據(jù)分頁也可以寫入到與正被替換數(shù)據(jù)的分頁相同的分塊的擦除分頁。
這樣,所述技術(shù)對新數(shù)據(jù)可以寫入到哪個(gè)物理分頁中沒有任何約束。但是,實(shí)現(xiàn)這些技術(shù)的存儲系統(tǒng)可能存在某些約束。例如,一種與非系統(tǒng)要求以順序方式對分塊內(nèi)的分頁進(jìn)行編程。這意味著在新分塊25中對中間分頁3-5進(jìn)行編程(圖6)將浪費(fèi)分頁0-2,以后就不能對這些分頁進(jìn)行編程。通過在這種限制系統(tǒng)中將新數(shù)據(jù)37存儲在新分塊39的起始可用分頁3-7中(圖8),其余分頁3-7可供以后使用來存儲其它數(shù)據(jù)。實(shí)際上,如果在存儲新數(shù)據(jù)37的三個(gè)分頁的時(shí)候分塊39在其分頁0-4中存儲有其它數(shù)據(jù),則新數(shù)據(jù)可以存儲在其余未用分頁5-7中。這就最大利用這種系統(tǒng)的可用存儲容量。
存儲在圖8的分塊內(nèi)的各個(gè)分頁中的數(shù)據(jù)的結(jié)構(gòu)例子如圖10所示。最大部分是用戶數(shù)據(jù)45。根據(jù)用戶數(shù)據(jù)算出的糾錯碼(ECC)47也存儲在分頁中。開銷數(shù)據(jù)49包括LBN和分頁標(biāo)記41(邏輯分頁偏移)、時(shí)間戳43和根據(jù)開銷數(shù)據(jù)算出的ECC51,它們也存儲在分頁中。通過包括與用戶數(shù)據(jù)ECC47相獨(dú)立的覆蓋開銷數(shù)據(jù)的ECC50,在不需要傳輸存儲在分頁中的所有數(shù)據(jù)的情況下開銷49可以以與用戶數(shù)據(jù)相獨(dú)立的方式讀取并且評價(jià)為有效。然而,可選地,在單獨(dú)讀取開銷數(shù)據(jù)49不是頻繁事件的情況下,分頁中的所有數(shù)據(jù)可以由單個(gè)ECC覆蓋,從而減小分頁中ECC的總位數(shù)。
本發(fā)明技術(shù)的第二特定實(shí)現(xiàn)也可以參照圖8來描述。在本例中,時(shí)間戳僅用來確定存儲在分塊中的數(shù)據(jù)的相對時(shí)長(age),而具有相同LBN和分頁號的數(shù)據(jù)中的最新分頁通過它們的相對物理位置來確定。時(shí)間戳43因而不需要作為各分頁的一部分來存儲。而是,可以作為分塊的一部分或者在非易失性存儲器內(nèi)的其它地方,為每個(gè)分塊記錄單個(gè)時(shí)間戳,并且每次將數(shù)據(jù)分頁寫入到分塊中時(shí)均進(jìn)行更新。然后,以包含具有相同LBN的數(shù)據(jù)分頁的最新更改分塊的最后分頁開始,以下降物理地址的次序從分頁讀取數(shù)據(jù)。
在圖8中,例如,首先在新分塊PBN1中從最后(分頁15)到第一(分頁0)讀取分頁,然后,以相同的反向次序讀取原始分塊PBN0的分頁。一旦邏輯分頁3、4和5已從新分塊PBN1讀取,則在讀取過程期間可以忽略原始分塊PBN0內(nèi)由相同邏輯分頁號標(biāo)識的那些分頁中的替換數(shù)據(jù)。具體地說,在本例中,一旦控制器確定舊分塊PBN0內(nèi)物理分頁3、4和5的LBN/分頁41與已經(jīng)從新分塊PBN1讀取的分頁相同,則在讀取期間跳過這些分頁。該過程可以提高讀取速度,并且減少需要為每個(gè)分頁存儲的開銷位49。此外,當(dāng)采用該反向分頁讀取技術(shù)時(shí),在讀取操作期間由控制器使用的圖9的表可以簡化為圖5A和5B的形式。只需要知道包含共同邏輯分塊數(shù)據(jù)的那些物理分塊的標(biāo)識和對物理分塊進(jìn)行編程的相對時(shí)間,從而執(zhí)行此高效讀取過程。
圖11示出通過對最初寫入在分塊PBN0中的數(shù)據(jù)進(jìn)行第二次更新來擴(kuò)展圖8的例子。邏輯分頁5、6、7和8的新數(shù)據(jù)51與它們的LBN和分頁號一起寫入到新分塊PBN1的各自物理分頁3、4、5和6。注意,在本例中邏輯分頁5的數(shù)據(jù)正在被第二次更新。在以新分塊PBN1的最后分頁開始的讀取操作期間,首先依次讀取感興趣數(shù)據(jù)的最新寫入邏輯分頁8、7、6和5。然后,需要注意,PBN1的物理分頁2中的LBN/分頁開銷字段與從物理分頁3中所讀取的LBN/分頁開銷字段相同,從而不讀取分頁2的用戶數(shù)據(jù)。然后,讀取物理分頁1和0。下一步,以物理分頁15開始,讀取原始分塊PBN0的分頁。在讀取物理分頁15-9之后,控制器將注意到各分頁8-3的LBN/分頁字段與已經(jīng)讀取其數(shù)據(jù)的分頁相匹配,從而不需要從這些分頁中讀取舊數(shù)據(jù)。因此提高讀取過程的效率。最后,讀取物理分頁2-0的原始數(shù)據(jù),因?yàn)樵摂?shù)據(jù)未被更新。
需要注意,由于以從分頁0開始的次序?qū)?shù)據(jù)寫入在擦除分塊的物理分頁位置,因此以反向次序讀取分頁的本例子從替換數(shù)據(jù)分頁選出新數(shù)據(jù)分頁。然而,該技術(shù)不限于與具有這種特定編程約束的存儲系統(tǒng)一起使用。只要在給定分塊內(nèi)對分頁進(jìn)行編程的次序是已知的,就可以采用寫入數(shù)據(jù)的反向次序讀取這些分頁中的數(shù)據(jù)。需要首先讀取具有與較早編程的其它分頁相同的LBN的最新編程分頁,并且這些分頁就是最新編程分頁。首先讀取更新分頁的最新版本,從而其后可以容易地識別替換版本。
圖12示出圖11的例子的邏輯數(shù)據(jù)與物理分頁地址之間的對應(yīng)表。雖然存在兩次數(shù)據(jù)更新,但是它們均用第二分塊PBN1的單列表示。邏輯分頁5所對應(yīng)的以PBN1表示的物理分頁根據(jù)對該分頁的第二次更新而簡單改變。如果更新涉及第三分塊,則為那個(gè)另一分塊增加另一列。當(dāng)不使用反向分頁讀取技術(shù)時(shí),可以通過第一種實(shí)現(xiàn)來使用通過從已寫入具有共同LBN的數(shù)據(jù)的分塊內(nèi)的各分頁中讀取開銷數(shù)據(jù)而構(gòu)造的圖12的表。當(dāng)使用上述反向分頁讀取技術(shù)時(shí),圖12的表只需被構(gòu)建為標(biāo)識LBN和包含具有該LBN的數(shù)據(jù)的所有PBN之間的對應(yīng)關(guān)系。
組織正從其中一個(gè)或多個(gè)分頁已被更新的物理分塊中讀取的數(shù)據(jù)分頁的高效方式如圖13所示。在控制器的易失性存儲器中提供足夠的空間來一次對至少若干數(shù)據(jù)分頁進(jìn)行緩沖,并且最好是對完整的數(shù)據(jù)分塊進(jìn)行緩沖。這如圖13所示。與存儲在非易失性存儲分塊中的量相等的十六個(gè)數(shù)據(jù)分頁存儲在控制器存儲器中。由于分頁最通常的是無序讀取的,因此各個(gè)數(shù)據(jù)分頁存儲在它相對于其它分頁的適當(dāng)位置。例如,在圖11的反向分頁讀取操作中,首先讀取邏輯分頁8,從而它存儲在控制器存儲器的位置8,如圓圈中的“1”所示。下一分頁是邏輯分頁7等等,直到讀取主機(jī)所需的所有數(shù)據(jù)分頁,并且將其存儲在控制器存儲器中。然后,將整個(gè)分頁數(shù)據(jù)集合傳輸?shù)街鳈C(jī),而無需在緩沖存儲器中操縱數(shù)據(jù)次序。數(shù)據(jù)分頁通過將它們寫入到控制器存儲器中的適當(dāng)位置而已經(jīng)得到組織。
圖14的流程圖示出一種對利用參照圖8和9所述技術(shù)的非易失性存儲系統(tǒng)進(jìn)行編程的方法。如方框52所示,從主機(jī)系統(tǒng)接收所要更新的現(xiàn)有文件的分頁數(shù)據(jù)。首先通過步驟53判定所要存儲的更新數(shù)據(jù)的分頁數(shù)是否等于或大于系統(tǒng)分塊的存儲容量,為簡單起見在上述例子中示出16個(gè)分頁作為分塊容量。如果是,則在步驟55對一個(gè)或多個(gè)未用擦除分塊進(jìn)行尋址,并且在步驟57,將新數(shù)據(jù)分頁寫入到尋址分塊。典型地,一個(gè)或多個(gè)數(shù)據(jù)分塊的更新將導(dǎo)致一個(gè)或多個(gè)分塊存儲已被新數(shù)據(jù)替換的數(shù)據(jù)。如果是,如步驟59所示,標(biāo)識具有替換數(shù)據(jù)的那些分塊以進(jìn)行擦除。為了提高性能,最好在背景中或者當(dāng)不發(fā)生主機(jī)請求編程或讀取操作時(shí),發(fā)生擦除操作。在被擦除之后,分塊返回給未用擦除分塊的庫存以作進(jìn)一步的使用??蛇x地,分塊的擦除可以推遲到需要它們進(jìn)行編程操作的時(shí)候。
另一方面,如果在步驟53判定新數(shù)據(jù)的分頁比利用分塊的完全存儲容量的分頁少,則下一步驟61判定在具有以其它數(shù)據(jù)編程的一些分頁的分塊中是否有足夠的未用分頁。如果是,在步驟63對該分塊進(jìn)行尋址。如果否,則在步驟65對完全未用的擦除分塊進(jìn)行尋址。在任一種情況下,在步驟67,將新數(shù)據(jù)編程到尋址分塊的未用分頁中。作為該編程過程的一部分,以上述方式將LBN和分頁偏移寫入到字段41中,并且將時(shí)間戳寫入到更新數(shù)據(jù)的各分頁的字段43(圖8)中。
該編程過程的一個(gè)期望特性是使僅存儲替換數(shù)據(jù)的任何分塊可用于以后編程。因此,在步驟69詢問數(shù)據(jù)更新過程是否導(dǎo)致僅保留有替換數(shù)據(jù)的整個(gè)分塊。如果是,則在步驟71將該分塊排入擦除隊(duì)列,然后過程完成。如果否,則忽略步驟71,并且完成數(shù)據(jù)更新。
元分塊操作為了通過減少編程時(shí)間來提高性能,一個(gè)目標(biāo)是在不引起其它惡化的情況下以合理的方式盡可能多地對多個(gè)分區(qū)進(jìn)行并行編程。一種實(shí)現(xiàn)將存儲陣列分為大體上獨(dú)立的子陣列或單元,如圖15的多個(gè)單元80-83,其中每個(gè)單元又如圖所示分為很多分塊。因而將數(shù)據(jù)分頁同時(shí)編程到多個(gè)單元中。另一結(jié)構(gòu)還組合來自多個(gè)存儲芯片的這些單元中的一個(gè)或多個(gè)。這些多個(gè)芯片可以連接到單個(gè)總線(如圖2所示),或者連接到多個(gè)獨(dú)立總線以提高數(shù)據(jù)吞吐量。對此的擴(kuò)展是鏈接來自不同單元的分塊以一起編程、讀取和擦除,一個(gè)例子如圖15所示。例如,來自各單元80-83的分塊85-88可以作為元分塊一起操作。對于上述存儲器實(shí)施例,每個(gè)分塊作為存儲陣列的最小可擦除組典型地分為多個(gè)分頁,一個(gè)分頁包含可以在分塊內(nèi)一起編程的最小數(shù)目的分區(qū)。因此,圖15所示的元分塊編程操作通常將包括將數(shù)據(jù)同時(shí)編程到形成元分塊的各分塊85-88的至少一個(gè)分頁中,對此進(jìn)行重復(fù),直到元分塊滿或者輸入數(shù)據(jù)全部已被編程。其它元分塊由來自陣列單元的不同分塊形成,其中,各單元均有一個(gè)分塊。
在操作這種存儲器的過程中,如同其它,需要經(jīng)常更新少于整個(gè)分塊的數(shù)據(jù)分頁。這可以對于元分塊的各個(gè)分塊以相同于上面參照圖4或6所述的方式來完成,但是最好使用參照圖8所述的改進(jìn)技術(shù)。當(dāng)使用上述三種技術(shù)中的任一種來更新元分塊中一個(gè)分塊的數(shù)據(jù)時(shí),還使用相同單元內(nèi)的另一存儲分塊。此外,數(shù)據(jù)更新可能要求為元分塊的兩個(gè)或更多分塊中的一個(gè)或多個(gè)分頁寫入新數(shù)據(jù)。因而,即使僅更新一些分頁中的數(shù)據(jù),這還會需要另外使用最大四個(gè)分塊90-93,其中,四個(gè)單元均包括一個(gè)另外分塊,以更新存儲在元分塊中的數(shù)據(jù)文件。
為了減少這種部分分塊更新所需的分塊,根據(jù)本發(fā)明的另一方面,如圖16所示,只要分塊80中還存在未用分頁,就使用存儲單元80中的另一分塊90來更新所述元分塊的任何分塊內(nèi)的數(shù)據(jù)分頁。例如,如果一次更新分塊86的三個(gè)分頁和分塊88的兩個(gè)分頁中的數(shù)據(jù),則新數(shù)據(jù)的所有五個(gè)分頁都寫入到分塊90中。這可以節(jié)省使用一個(gè)存儲分塊,從而有效地將可用擦除分塊的數(shù)目增加一個(gè)分塊。這將幫助避免或者至少推遲擦除分塊庫存耗盡的時(shí)候。如果正在更新來自四個(gè)分塊85-88中的每個(gè)分塊的一個(gè)或多個(gè)分頁,則在單個(gè)分塊90中對所有新數(shù)據(jù)分頁進(jìn)行編程,從而避免為進(jìn)行更新而額外占用三個(gè)存儲分塊。如果新數(shù)據(jù)的分頁數(shù)超過未用分塊的容量,則分塊90不能接受的分頁寫入到可以處于相同單元80或其它單元81-83中的一個(gè)單元內(nèi)的另一未用分塊。
雖然本發(fā)明是針對各種示例性實(shí)施例來描述的,但是應(yīng)該理解本發(fā)明在所附權(quán)利要求的全部范圍內(nèi)受到保護(hù)。
權(quán)利要求
1.一種在非易失性存儲系統(tǒng)中同時(shí)存儲原始和更替數(shù)據(jù)的方法,包括用相同邏輯地址標(biāo)識原始和更替數(shù)據(jù);以及通過記錄將原始和更替數(shù)據(jù)編程到存儲器中的相對時(shí)間,區(qū)分更替數(shù)據(jù)與原始數(shù)據(jù)。
2.一種在非易失性存儲系統(tǒng)中存儲和檢索原始和更替數(shù)據(jù)的方法,包括用相同邏輯地址標(biāo)識原始和更替數(shù)據(jù)的單元;以與將數(shù)據(jù)單元編程到存儲器中的次序相反的次序讀取數(shù)據(jù)單元;以及通過讀取它們的次序,區(qū)分具有相同邏輯地址的更替數(shù)據(jù)單元與原始數(shù)據(jù)單元。
3.在具有多個(gè)存儲元件分塊的非易失性存儲系統(tǒng)中,其中每個(gè)分塊單獨(dú)組織為多個(gè)存儲元件分頁,一種用新數(shù)據(jù)替換所述多個(gè)分塊中的一個(gè)分塊的至少一個(gè)分頁內(nèi)的替換數(shù)據(jù)而不替換所述一個(gè)分塊的至少另一個(gè)分頁中的數(shù)據(jù)的方法,包括將新數(shù)據(jù)編程到所述多個(gè)分塊的所述同一分塊或另一分塊內(nèi)的至少一個(gè)分頁中;用共同邏輯地址標(biāo)識替換數(shù)據(jù)的所述至少一個(gè)分頁和新數(shù)據(jù)的所述至少一個(gè)分頁;以及記錄對新和替換數(shù)據(jù)進(jìn)行編程的相對時(shí)間。
4.如權(quán)利要求3所述的方法,其中,為對新和替換數(shù)據(jù)進(jìn)行編程的各個(gè)分頁記錄編程的相對時(shí)間,從而通過它們的記錄編程相對時(shí)間使新數(shù)據(jù)的所述至少一個(gè)分頁與替換數(shù)據(jù)的所述至少一個(gè)分頁可以相互區(qū)分。
5.如權(quán)利要求3所述的方法,其中,為各個(gè)分塊記錄編程的相對時(shí)間,從而標(biāo)識包含具有共同邏輯地址的數(shù)據(jù)的各個(gè)分塊的編程次序,并且其中,各個(gè)分塊內(nèi)的分頁還以指定次序來編程,從而,通過它們在分塊內(nèi)的相對位置使新數(shù)據(jù)分頁與替換數(shù)據(jù)分頁相互區(qū)分。
6.如權(quán)利要求3所述的方法,其中,不將所述一個(gè)分塊內(nèi)未被替換的所述至少另一個(gè)分頁中的數(shù)據(jù)拷貝到所述同一或另一分塊中作為用新數(shù)據(jù)對替換數(shù)據(jù)進(jìn)行替換的一部分。
7.如權(quán)利要求3所述的方法,其中,不將任何東西寫入到替換數(shù)據(jù)的所述至少一個(gè)分頁中作為用新數(shù)據(jù)對替換數(shù)據(jù)進(jìn)行替換的一部分。
8.如權(quán)利要求4所述的方法,其中,記錄對新和替換數(shù)據(jù)進(jìn)行編程的相對時(shí)間包括,存儲對新和替換數(shù)據(jù)進(jìn)行編程的時(shí)候各自的時(shí)鐘值。
9.如權(quán)利要求4所述的方法,其中,記錄對新和替換數(shù)據(jù)進(jìn)行編程的相對時(shí)間包括,存儲對新和替換數(shù)據(jù)進(jìn)行編程的時(shí)候各自的不同順序號值。
10.如權(quán)利要求8或9所述的方法,其中,存儲表示對新和替換數(shù)據(jù)進(jìn)行編程的相對時(shí)間的值包括,在與所述值相關(guān)的新和替換數(shù)據(jù)相同的分頁內(nèi)存儲各個(gè)值。
11.如權(quán)利要求3所述的方法,其中,將新數(shù)據(jù)編程到所述多個(gè)分塊的所述同一或另一分塊內(nèi)的所述至少一個(gè)分頁中包括,以預(yù)定義次序?qū)⑿聰?shù)據(jù)編程到所述同一或另一分塊內(nèi)的起始未用分頁中。
12.如權(quán)利要求3所述的方法,其中,用共同邏輯地址標(biāo)識替換數(shù)據(jù)的所述至少一個(gè)分頁和新數(shù)據(jù)的所述至少一個(gè)分頁包括,將共同邏輯地址的至少一部分作為開銷數(shù)據(jù)記錄在各個(gè)分頁中。
13.如權(quán)利要求12所述的方法,包括在易失性存儲器中構(gòu)建一個(gè)表,其中,所述表對于共同邏輯地址包括多個(gè)物理分塊地址。
14.一種讀取根據(jù)權(quán)利要求4更新之后的數(shù)據(jù)的方法,包括從所述同一分塊中讀取數(shù)據(jù)分頁,并且如果新數(shù)據(jù)編程到所述另一分塊中,則從其中讀取數(shù)據(jù)分頁;標(biāo)識具有相同邏輯地址的任何多個(gè)數(shù)據(jù)分頁;利用所記錄的對新和替換數(shù)據(jù)進(jìn)行編程的相對時(shí)間來標(biāo)識具有相同邏輯地址的任何分頁中的最新分頁;以及與所述同一分塊內(nèi)未被更新的所述至少另一個(gè)分頁一起組合具有相同邏輯地址的任何分頁中的最新分頁內(nèi)的數(shù)據(jù)。
15.一種讀取根據(jù)權(quán)利要求5更新之后的數(shù)據(jù)的方法,包括以對分頁進(jìn)行編程的反向次序,讀取所述同一分塊內(nèi)的數(shù)據(jù)分頁,并且在新數(shù)據(jù)編程到所述另一分塊中的情況下,讀取所述另一分塊內(nèi)的數(shù)據(jù)分頁;以及跳過所讀取的具有與其數(shù)據(jù)已經(jīng)被讀取的分頁相同的邏輯分頁地址的任何數(shù)據(jù)分頁。
16.如權(quán)利要求14或15所述的方法,還包括,以兩個(gè)以上的存儲狀態(tài)操作各個(gè)存儲元件,從而在每個(gè)存儲元件中存儲多位數(shù)據(jù),并且讀取數(shù)據(jù)分頁包括從各個(gè)存儲元件中讀取兩個(gè)以上的存儲狀態(tài)。
17.如權(quán)利要求3-9中的任一項(xiàng)所述的方法,還包括,以兩個(gè)以上的存儲狀態(tài),操作各個(gè)存儲分區(qū)的存儲元件,從而在每個(gè)存儲元件中存儲多位數(shù)據(jù)。
18.如權(quán)利要求17所述的方法,其中,存儲元件包括各個(gè)浮動?xùn)拧?br>
19.如權(quán)利要求3-9中的任一項(xiàng)所述的方法,其中,在封裝卡內(nèi)形成非易失性存儲系統(tǒng),其中,所述卡在其一端具有電氣連接器以在工作時(shí)與主機(jī)系統(tǒng)連接。
20.一種操作非易失性存儲系統(tǒng)的方法,其中,非易失性存儲系統(tǒng)具有存儲元件陣列,存儲元件陣列分為至少兩個(gè)子陣列,而各個(gè)子陣列又分為多個(gè)非重疊存儲元件分塊,其中,一個(gè)分塊包含可以一起擦除的最小存儲元件組,并且各個(gè)分塊又分為多個(gè)存儲元件分頁,其中,分頁是可以一起編程的最小存儲元件組,所述方法包括鏈接來自所述至少兩個(gè)子陣列的各個(gè)子陣列的至少一個(gè)分塊以形成元分塊,其中,其組成分塊作為一個(gè)單元一起擦除;以及通過僅在指定一個(gè)子陣列中將更替數(shù)據(jù)編程到其它至少一個(gè)分塊內(nèi)的分頁中而不管正被更新的數(shù)據(jù)存儲在哪個(gè)子陣列中,更新少于分塊內(nèi)所有分頁的任何元分塊組成分塊內(nèi)的原始數(shù)據(jù)分頁。
21.如權(quán)利要求20所述的方法,其中,存儲原始和更換數(shù)據(jù)包括用對存儲系統(tǒng)的相同邏輯地址標(biāo)識原始和更替數(shù)據(jù);以及通過記錄將原始和更替數(shù)據(jù)編程到它們各自的存儲分頁的相對時(shí)間,區(qū)分更替數(shù)據(jù)與原始數(shù)據(jù)。
22.一種非易失性存儲系統(tǒng),包括非易失性存儲元件陣列,以存儲元件分塊組織,其中,各個(gè)分塊包含可以擦除的最小存儲元件組;編程機(jī)構(gòu),將存儲在第二分塊中的部分原始數(shù)據(jù)的更新版本、以及更新版本較晚寫入的表示一起寫入到第一分塊中;尋址機(jī)構(gòu),對具有相同地址的原始數(shù)據(jù)和更新版本進(jìn)行邏輯尋址;以及讀取機(jī)構(gòu),至少部分通過更新版本的較晚寫入的所述表示的相對時(shí)間,區(qū)分更新版本與原始數(shù)據(jù)。
全文摘要
通過在同一或另一分塊的未用分頁中對新數(shù)據(jù)進(jìn)行編程,更新非易失性存儲分塊的部分分頁中的數(shù)據(jù)。為了防止必須將未變數(shù)據(jù)分頁拷貝到新分塊中,或者將標(biāo)志編程到替換數(shù)據(jù)分頁中,用與新數(shù)據(jù)所替換的數(shù)據(jù)分頁相同的邏輯地址標(biāo)識新數(shù)據(jù)分頁,并且添加時(shí)間戳來表示寫入每個(gè)分頁的時(shí)間。當(dāng)讀取數(shù)據(jù)時(shí),使用最新數(shù)據(jù)分頁,并且忽略較舊替換數(shù)據(jù)分頁。該技術(shù)還應(yīng)用于包括來自若干不同存儲陣列單元的各自一個(gè)分塊的元分塊,其中,將所有分頁更新引導(dǎo)到其中一個(gè)單元內(nèi)的單個(gè)未用分塊。
文檔編號G11C16/02GK1514971SQ02803882
公開日2004年7月21日 申請日期2002年1月7日 優(yōu)先權(quán)日2001年1月19日
發(fā)明者凱文·M·康利, 凱文 M 康利 申請人:三因迪斯克公司