專利名稱:Mbc閃存中的錯誤校正的方法
技術領域:
本發(fā)明涉及數(shù)字數(shù)據(jù)的錯誤校正(error correction ),更特別地, 涉及對于每個單元存儲多個位的閃存(flash memory)裝置的錯誤校 正的方法。
背景技術:
閃存裝置為人所知已有很多年了。 一般地,閃存內(nèi)各個單元存儲 一個位的信息。常規(guī)上,用于存儲位的方式是通過支持單元的兩種狀態(tài)——一種狀態(tài)代表邏輯"o",另一種狀態(tài)代表邏輯"r 。在閃存 單元中,通過在單元的溝道(連接單元的晶體管的源極和漏極元件的 區(qū)域)之上具有浮動柵極并在該浮動柵極內(nèi)具有對于所存儲的電荷量 的兩種有效狀態(tài),實現(xiàn)這兩種狀態(tài)。 一般地, 一種狀態(tài)在浮動柵極中 具有零電荷,并且是被擦除之后的單元的初始未寫入狀態(tài)(一般被定義為代表"r狀態(tài)),另一種狀態(tài)在浮動柵極中具有一定量的負電荷 (一般被定義為代表"o"狀態(tài))。在柵極中具有負電荷導致單元的晶 體管的閾值電壓(即,為了使晶體管導電而必須施加到晶體管的控制 柵極的電壓)增大。現(xiàn)在,能夠通過檢查單元的閾值電壓而讀取所存儲的位如果閾值電壓處于較高的狀態(tài),那么位值是"0",如果閾值電壓處于較低的狀態(tài),那么位值是"r 。實際上,不需要精確地讀取 單元的閥值電壓。所需要的只是正確地識別單元當前處于兩種狀態(tài)中 的哪一種。出于該目的,與處于兩種狀態(tài)之間的中間的基準電壓值進 行比較并由此確定單元的閾值電壓是低于還是高于該基準值就足夠 了。圖1A以圖示的方式示出這如何工作。具體而言,圖IA示出大量的單元的閾值電壓的分布。由于閃存中的單元在它們的特性和行為方面不是完全地相同(例如,由于雜質(zhì)濃度的小差異或由于硅結構中的 缺陷),因此,對于所有的單元施加相同的編程操作不導致所有的單 元具有完全相同的閾值電壓。(注意,出于歷史原因,將數(shù)據(jù)寫入閃存一般被稱為對閃存進行"編程"。)而是,閾值電壓類似于圖1A所示的方式而分布。存儲"r的值的單元一般具有負的閾值電壓,使 得大多數(shù)單元具有接近圖ia的左峰所示的值的閾值電壓,而一些較少量的單元具有更低或更高的閾值電壓。類似地,存儲"0"的值的單 元一般具有正的閾值電壓,使得大多數(shù)單元具有接近圖1A的右峰所示的值的閾值電壓,而一些較少量的單元具有更低或更高的閾值電壓。近年來,使用常規(guī)上稱為"多級單元(Multi Level Cells )"或簡 稱為MLC的技術,在市場上出現(xiàn)了新型的閃存。(由于以前的類型 的閃存單元也具有多于一個的級如上所述,它們具有兩個級,因此, 該術語容易使人誤解。因此,這兩種類型的閃存單元在這里被稱為"單 位單元(Single Bit Cells ) " ( SBC )和"多位單元(Multi-Bit Cells )" (MBC) 。 ) MBC閃存帶來的改進是在各個單元中存儲兩個或更多 個位。為了使得單個單元存儲兩個位的信息,單元必須能夠處于四種 不同的狀態(tài)中的一個中。由于單元的"狀態(tài)"由其閾值電壓代表,因 此,很顯然2位MBC單元應對于其閾值電壓支持四種不同的有效范 圍。圖1B示出典型的2位MBC單元的閾值電壓分布。如所期望的那 樣,圖1B具有四個峰,每個峰與一種狀態(tài)對應。至于SBC的情況, 各狀態(tài)實際是范圍而不是單個的數(shù)字。當讀取單元的內(nèi)容時,所有必 須保證的是,單元的閾值電壓所處的范圍被正確地識別。對于MBC 閃存的現(xiàn)有技術例子,參見Harari的美國專利No. 5434825。類似地,為了使得單個單元存儲三個位的信息,單元必須能夠處 于八種不同的狀態(tài)中的一個中。因此,3位MBC單元應對于其閾值電 壓支持八種不同的有效范圍。圖1C示出典型的3位MBC單元的閾值 電壓分布。如所期望的那樣,圖1C具有八個峰,每個峰與一種狀態(tài) 對應。圖1D表示4位MBC單元的閾值電壓分布,對于該4位MBC 單元,需要由十六個閾值電壓范圍代表的十六種狀態(tài)。當通過四種狀態(tài)對MBC單元中的兩個位進行編碼時, 一般^(吏圖
ib中的最左邊的狀態(tài)( 一般具有負的閾值電壓)代表兩個位均具有"r 的值的情況。(在以下的討論中,使用以下的表示法——單元的兩個 位被稱為"下位"和"上位"。以形式["上位""下位"書寫位的
明確的值,下位值在右邊。因此,將下位為"0"且上位為"1"的情 況寫為"10"。必須理解,該術語和表示法的選擇是任意的,并且,
其它的名稱和編碼是可能的)。使用該表示法,最左邊的狀態(tài)代表"ir
的情況。 一般通過從左到右的以下次序?qū)ζ渌N狀態(tài)進行分配
"10" 、 "00" 、 "01"??梢栽贑hen的美國專利No. 6522580中看 到^使用該編碼的MBC NAND閃存的實施的例子,出于所有的目的通 過參考而加入該專利,如同在這里被全面闡述那樣。特別參見Chen 專利的圖8。 Tanaka的美國專利No. 6643188也示出MBC NAND閃 存的類似的實施,但是,參見那里的圖7,位編碼有不同的狀態(tài)分配 "11" 、 "10" 、 "01" 、 "00" 。 Chen編碼是在圖1B中示出的編 碼。
我們?nèi)缦旅婺菢訉⒁陨系男g語和表示法擴展到每單元多于兩位的 情況。最左邊的未寫入狀態(tài)代表"全部l" ( "1…1"),串"1…10"
代表僅單元的最下位被寫為"o"的情況,并且串"oi...r代表僅單 元的最上位被寫為"o"的情況。
當讀取MBC單元的內(nèi)容時,單元的閾值電壓所處的范圍必須被 正確地識別;僅在這種情況下,通過僅與一個基準電壓相比較不能總 是實現(xiàn)這一點,而是,可能必需幾次比較。例如,在圖1B所示的情 況下,為了讀取下位,首先將單元的閥值電壓與基準比較電壓^相比 較,然后,根據(jù)比較的結果,與零基準比較電壓或基準比較電壓K2 相比較。作為替代方案,通過無條件地將閾值電壓與零基準電壓和基 準比較電壓K2相比較來讀取下位,也是需要兩次比較。對于每單元多 于兩個的位,可能需要甚至更多的比較。
單個MBC單元的位可能均屬于同一閃存頁面(flash page),或 者,它們可被分配到不同的頁面,使得,例如在4位單元中,最下位在頁面0中,下一位在頁面l中,下一位在頁面2中,并且最高位在 頁面3中。(頁面是可在閃存中單獨寫入的數(shù)據(jù)的最小部分)。雖然 兩種方法均在使用,但本發(fā)明的意圖主要在于用于"各位處于其自身 的頁面中"方法。
Lasser的美國專利申請系列No. 11/035807涉及對于每單元存儲 多個位的閃存單元中的位進行編碼的方法。Lasser的美國專利申請系 列No. 11/061634和Murin的美國專利申請系列No. 11/078478涉及位 編碼的這些方法對于跨過(across)多位閃存單元的不同邏輯頁面的 錯誤分布的問題的含意。具體而言,Lasser的'634教導用于通過使 用位編碼的邏輯到物理映射而實現(xiàn)數(shù)據(jù)的用戶所看到的以及錯誤校正 代碼(ECC)電路所應對的跨過不同邏輯頁面的錯誤的均勻分布的方 法;并且,Murin教導用于通過使用物理位頁面之間的邏輯頁面的交 錯(interleaving)而實現(xiàn)數(shù)據(jù)的用戶所看到的以及ECC電路所應對 的跨過不同邏輯頁面的錯誤的均勻分布的方法。出于所有的目的,所 有的這三個現(xiàn)有技術的專利申請均通過參考而加入,如同在這里被全
面闡述那樣。
Lasser的'634和Murin均針對同一目標應設計ECC電路以 降低錯誤率。在兩個申請給出的例子中, 一組15000個4位MBC閃 存單元被用于存儲數(shù)據(jù)的4個邏輯頁面,每個邏輯頁面15000位。假 定的單元錯誤率是1比1000。得到的位錯誤的最佳數(shù)量是15,因此, 邏輯頁面中的最佳平均位錯誤是3.75。該例子顯示,除非使用所提出 的創(chuàng)新,否則,特定的邏輯頁面最終會有高得多的位錯誤率——在所 示的例子中有6個位錯誤。這意味著,即使跨過存儲在單元中的所有 位的位錯誤的總平均值相對較低(15比60000,或者1比4000),除 非采取特別的措施,也必須設計應對邏輯頁面中的錯誤校正的ECC 電路以處理相對較高的平均位錯誤率(在該例子中——6比15000或1 比2500)。
因此,廣泛意識到需要一種能克服上述的目前已知方法的缺點的 MBC閃存的錯誤校正的方法,并且具有這種方法會是高度有利的。定義
"邏輯頁面"是要通過單個命令被存儲的從外面向存儲器系統(tǒng)提 供的最小數(shù)據(jù)塊。例如,在同一單元的多個位屬于不同頁面的每單元
兩位的MBC NAND閃存裝置中,通過首先發(fā)送用于組中的單元的第 一位的第一 "頁面寫入"命令并然后發(fā)送用于組中的單元的第二位的 第二 "頁面寫入"命令,完成一組單元的寫入。提供有第一命令的數(shù) 據(jù)位構成第一邏輯頁面,并且,提供有第二命令的數(shù)據(jù)位構成第二邏 輯頁面。
如在Murin中那樣,"位頁面"是在它們的單元組中占據(jù)相同的 位位置的所有位的集合,這里,該集合在一個命令中被一起寫入。例 如,如果邏輯頁面中的位的數(shù)量與物理頁面中的單元的數(shù)量相同,那 么物理頁面中的所有單元的所有最高(或最低)階次的位的集合構成 一個位頁面。在前面的例子中,在它們的單元中作為第一位存儲的所 有位構成單個位頁面。在大多數(shù)的系統(tǒng)中,在邏輯頁面和邏輯頁面被
存儲入其中的位頁面之間存在--對應關系。但是,在Murin中可以
看出,這種對應關系不是強制的在Murin的方法中,邏輯頁面跨過 多個位頁面而交錯。
發(fā)明內(nèi)容
本發(fā)明對于必須設計ECC電路以使位錯誤率最小化的同一問題 使用不同的方法。Lasser的'634和Murin共享相同的基本方法以解 決該問題——均依賴于每次在單個的邏輯頁面上操作的ECC電路。根 據(jù)以上的例子,ECC校正各為15000位的數(shù)據(jù)塊。各個這種數(shù)據(jù)塊伴 隨有其自身的ECC奇偶校驗位(parity bit)。在ECC技術的術語中, 數(shù)據(jù)位和它們的相關的ECC奇偶校驗位的聯(lián)合被稱為"代碼字"。 代碼字中的數(shù)據(jù)位的數(shù)量和位的總數(shù)的比被稱為ECC方案的"比率"。 比率越高越好,因為越少的存儲位被"浪費"用于保護數(shù)據(jù)位。很顯 然,數(shù)據(jù)中的所預期的位錯誤率越高,則越多的位應被分配給ECC 奇偶校驗位并且ECC比率越低。本發(fā)明的創(chuàng)新在于,使ECC電路不是每次在單個邏輯頁面上操 作,而是作為一個大的塊在存儲在單元中的所有位上或者至少在多于 一個邏輯頁面的位上操作。根據(jù)以上的例子,ECC校正各為60000位 的數(shù)據(jù)塊。這60000個數(shù)據(jù)位伴隨有允許發(fā)生較大數(shù)據(jù)塊的校正的相 應ECC奇偶校驗位。
以上例子中的包含共享相同單元的所有邏輯頁面的數(shù)據(jù)位的較大 數(shù)據(jù)位塊中的預期位錯誤率為15比60000或1比4000。這等于通過 Lasser的'634和Murin的方法所實現(xiàn)的最佳平均值,但沒有代碼映 射或交錯的額外復雜性。很容易看到,這不是巧合,而是該方法的一 般性能——不管頁面尺寸或錯誤分布剖面(profile)如何,當使用在 作為一個塊的單元中的所有位上操作、將它們?nèi)孔鳛橐粋€代碼字而 對待的ECC方案時,預期的平均位錯誤率總是通過Lasser的'634 和Murin實現(xiàn)的最佳值。
的確,在更大的代碼字上操作的ECC方案需要更復雜的電路, 但是,通過錯誤校正理論的公知結果補償這一點,根據(jù)該錯誤校正理 論,對于相同的位錯誤率,所操作的代碼字越大,則可實現(xiàn)的代碼率 越高。換句話說,通過使用更長的ECC代碼字,使得必須在閃存中 存儲的ECC奇偶校驗位的數(shù)量更少,并因此使得被"浪費"用于錯 誤校正的存儲空間的量更少。這通常多于對額外ECC電路的補償。
有人會爭辯,如果邏輯頁面中的每一個通過使用不同代碼率的不 同ECC方案在其自身上被處理,那么可使得用于所有邏輯頁面的奇 偶校驗位的總數(shù)比當使用本發(fā)明的大代碼字時的奇偶校驗位的數(shù)量 小。這是因為,已知邏輯頁面中的一些具有低錯誤率,并因此僅需要 小數(shù)量的奇偶校驗位。但是,這種爭辯忽略了會是昂貴的以每個邏輯 頁面一個的方式實施多個ECC模塊的需求。作為替代方案, 一個ECC 模塊被用于所有的邏輯頁面,每次一個地校正它們,但是,所實施的 模塊于是必須是能夠校正具有最高錯誤率的邏輯頁面并使用低代碼率 的模塊,并且,通過本發(fā)明的方法,我們的情況再次較好。
因此,根據(jù)本發(fā)明,提供一種在每單元多位的閃存中存儲數(shù)據(jù)的方法,包括以下步驟(a)對于數(shù)據(jù)位的多個邏輯頁面計算錯誤校正 奇偶校驗位,其中,錯誤校正奇偶校驗位中的至少一個共同(jointly) 應用于邏輯頁面中的至少兩個;和(b)用數(shù)據(jù)位和錯誤校正奇偶校 驗位對MBC閃存進行編程,用來自應用有所述至少一個共同的錯誤 校正奇偶校驗位的所述至少兩個邏輯頁面中的多于一個邏輯頁面的數(shù) 據(jù)位對MBC閃存的至少一個單元進行編程。
并且,給定用多個邏輯頁面的數(shù)據(jù)位并用對所述數(shù)據(jù)位計算的錯 誤校正奇偶校驗位來編程的MBC閃存,所述錯誤校正奇偶校驗位中 的至少一個共同應用于所述邏輯頁面中的至少兩個,并且,用來自應 用有所述至少一個共同的錯誤校正位的所述至少兩個邏輯頁面中的多 于一個邏輯頁面的數(shù)據(jù)位對MBC閃存的至少一個單元進行編程根 據(jù)本發(fā)明,提供一種恢復數(shù)據(jù)位的方法,包括以下步驟(a)從MBC 閃存讀取(i)應用有所述至少一個共同的錯誤校正奇偶校驗位的所 述至少兩個邏輯頁面的數(shù)據(jù)位;和(ii)應用于應用有所述至少一個 共同的錯誤校正奇偶校驗位的所述至少兩個邏輯頁面中的任一個邏輯 頁面的錯誤校正奇偶校驗位;和(b)根據(jù)從MBC閃存讀取的錯誤校 正奇偶校驗位來校正從MBC閃存讀取的數(shù)據(jù)位。
并且,才艮據(jù)本發(fā)明,提供一種控制器,該控制器用于MBC閃存, 該控制器操作為通過以下步驟在MBC閃存中存儲多個邏輯頁面的數(shù) 據(jù)位,所述步驟包含對于數(shù)據(jù)位計算錯誤校正奇偶校驗位,至少一 個錯誤校正奇偶校驗位共同應用于邏輯頁面中的至少兩個,并且,來 自應用有所述至少一個共同的錯誤校正奇偶校驗位的所述至少兩個邏
輯頁面中的多于一個邏輯頁面的數(shù)據(jù)位被共同存儲在MBC閃存的至 少一個單元中的每一個中。
并且,根據(jù)本發(fā)明,提供一種在計算機可讀存儲介質(zhì)上實施計算 機可讀代碼的計算機可讀存儲介質(zhì),該計算機可讀代碼用于管理MBC 閃存,該計算機可讀代碼包括(a)用于對于要被存儲在MBC閃存 中的數(shù)據(jù)位的多個邏輯頁面計算錯誤校正奇偶校驗位的程序代碼,其 中,錯誤校正奇偶校驗位中的至少一個共同應用于邏輯頁面中的至少兩個;和(b)用于用所述數(shù)據(jù)位和所述錯誤校正奇偶校驗位對MBC 閃存進行編程的程序代碼,用來自應用有所述至少一個共同的錯誤校 正奇偶校驗位的所述至少兩個邏輯頁面中的多于 一個邏輯頁面的數(shù)據(jù) 位對MBC閃存的至少一個單元進行編程。
并且,給定用多個邏輯頁面的數(shù)據(jù)位并用對所述數(shù)據(jù)位計算的錯 誤校正奇偶校驗位來編程的每單元多位(MBC)閃存,錯誤校正奇偶 校驗位中的至少一個共同應用于邏輯頁面中的至少兩個,并且,用來 自應用有所述至少 一個共同的錯誤校正位的所述至少兩個邏輯頁面中 的多于一個邏輯頁面的數(shù)據(jù)位對MBC閃存的至少一個單元進行編程 根據(jù)本發(fā)明,提供一種在計算機可讀存儲介質(zhì)上實施計算機可讀代碼 的計算機可讀存儲介質(zhì),該計算機可讀代碼包括(a)用于從MBC 閃存讀取以下內(nèi)容的程序代碼(i)應用有所述至少一個共同的錯誤
校正奇偶校驗位的所述至少兩個邏輯頁面的數(shù)據(jù)位;和(ii)應用于 應用有所述至少 一個共同的錯誤校正奇偶校驗位的所述至少兩個邏輯 頁面中的任一個邏輯頁面的錯誤校正奇偶校驗位;和(b)用于根據(jù) 從MBC閃存讀取的錯誤校正奇偶校驗位來校正從MBC閃存讀取的 數(shù)據(jù)位的程序代碼。
并且,根據(jù)本發(fā)明,提供一種在MBC閃存中存儲數(shù)據(jù)的方法, 包括以下步驟(a)對于數(shù)據(jù)位的多個邏輯頁面中的至少兩個計算共 同的ECC代碼字;和(b)用所述共同的ECC代碼字對MBC閃存進 行編程。
并且,給定用對于數(shù)據(jù)位的多個邏輯頁面中的至少兩個計算的共 同的ECC代碼字編程的MBC閃存根據(jù)本發(fā)明,提供一種恢復數(shù)據(jù) 位的方法,包括以下步驟(a)從閃存讀取所述共同的ECC代碼字; 和(b)從于閃存讀取的所述共同的ECC代碼字來恢復從其計算所述 共同的ECC代碼字的所述至少兩個邏輯頁面的數(shù)據(jù)位。
并且,根據(jù)本發(fā)明,提供一種控制器,該控制器用于MBC閃存, 該控制器操作為通過包含對于邏輯頁面中的至少兩個計算共同的 ECC代碼字的步驟,在MBC閃存中存儲多個邏輯頁面的數(shù)據(jù)位。并且,根據(jù)本發(fā)明,提供一種在計算機可讀存儲介質(zhì)上實施計算
機可讀代碼的計算機可讀存儲介質(zhì),該計算機可讀代碼用于管理MBC 閃存,該計算機可讀代碼包括(a)用于對于要被存儲在MBC閃存 中的數(shù)據(jù)位的多個邏輯頁面中的至少兩個計算共同的ECC代碼字的 程序代碼;和(b)用于用所述共同的ECC代碼字對MBC閃存進行 編程的程序代碼。
并且,給定用對于數(shù)據(jù)位的多個邏輯頁面中的至少兩個計算的共 同的ECC代碼字來編程的MBC閃存根據(jù)本發(fā)明,提供一種在計算 機可讀存儲介質(zhì)上實施計算機可讀代碼的計算機可讀存儲介質(zhì),該計 算機可讀代碼包括(a)用于從閃存讀取所述共同的ECC代碼字的 程序代碼;和(b)用于從于閃存讀取的所述共同的ECC代碼字來恢 復從其計算所述共同的ECC代碼字的所述至少兩個邏輯頁面的數(shù)據(jù) 位的程序代碼。
根據(jù)本發(fā)明的第一基本方法,當在MBC閃存中存儲數(shù)據(jù)位的多 個邏輯頁面時,對于數(shù)據(jù)位計算錯誤校正奇偶校驗位,使得錯誤校正 奇偶校驗位中的至少一個應用于邏輯頁面中的至少兩個。錯誤校正奇 偶校驗位"應用于"邏輯頁面意味著所述錯誤校正奇偶校驗位從該邏 輯頁面的數(shù)據(jù)計算,并且必須被用于該邏輯頁面的數(shù)據(jù)的校正中。在 所附的權利要求中,應用于兩個或更多個邏輯頁面的這種錯誤校正奇 偶校驗位被稱為"共同的"錯誤校正奇偶校驗位。于是,用所述數(shù)據(jù) 位并用所述錯誤校正奇偶校驗位對MBC閃存進行編程,用來自應用 有所述共同的錯誤校正奇偶校驗位的邏輯頁面中的多于 一個邏輯頁面 的數(shù)據(jù)位對MBC閃存的至少一個單元進行編程。換句話說,并不是 MBC閃存的用數(shù)據(jù)位編程的所有單元都用僅來自一個邏輯頁面的數(shù) 據(jù)位編程。
優(yōu)選地,所有的錯誤校正奇偶校驗位應用于所有的邏輯頁面。作 為替代方案,如果存在三個或更多個邏輯頁面,那么對于邏輯頁面中 的至少兩個而不是對于所有的邏輯頁面共同地計算錯誤校正位。并且, 作為替代方案,只有一些錯誤校正奇偶校驗位應用于多個邏輯頁面,而其它的錯誤校正奇偶校驗位僅應用于單個邏輯頁面。
優(yōu)選地,用如所述多個邏輯頁面中的邏輯頁面那樣多的位對用所 述數(shù)據(jù)位和所述錯誤校正奇偶校驗位編程的閃存的各個單元進行編 程。并且,優(yōu)選地,在編程之后,與所述共同的錯誤校正奇偶校驗位 以及存在的、應用于所述兩個或更多個邏輯頁面的其它錯誤校正奇偶 校驗位一起,從閃存讀取應用有所述錯誤校正奇偶校驗位的所述兩個 或更多個邏輯頁面的數(shù)據(jù)位。通常地,所有的錯誤校正位應用于那兩 個或更多個邏輯頁面,但是,可能錯誤校正奇偶校驗位中的一些或者 甚至大多數(shù)僅應用于那些邏輯頁面中的一些(當存在三個或更多個這 種邏輯頁面時)或者甚至僅應用于那些邏輯頁面中的一個。然后,根
根據(jù)本發(fā)明的第二基i方法,當在MBC閃存中存儲數(shù)據(jù)位的多 個邏輯頁面時,對于邏輯頁面中的至少兩個計算共同的ECC代碼字。 ECC可以是系統(tǒng)的或非系統(tǒng)的。然后,用于所述共同的ECC代碼字 對MBC閃存進行編程。
在所述方法的一些實施例中,所述多個邏輯頁面包括三個或更多 個邏輯頁面,并且對于少于所有的邏輯頁面計算所述代碼字。
優(yōu)選地,用如對其計算所述共同的ECC代碼字的邏輯頁面那樣 多的所述共同的ECC代碼字的位對用所述共同的ECC代碼字的位來 編程的閃存的各個單元進行編程。作為替代方案,用與所述多個邏輯 頁面中的邏輯頁面數(shù)量相同的所述共同的ECC代碼字的位對用所述 共同的ECC代碼字的位來編程的閃存的各個單元進行編程。
優(yōu)選地,在編程之后,從閃存讀取所述共同的ECC代碼字,然 后,從于閃存讀取的所述共同的ECC代碼字來恢復從其計算所述共 同的ECC代碼字的邏輯頁面的數(shù)據(jù)位。
本發(fā)明的范圍還包括根據(jù)本發(fā)明的方法中的一個來管理MBC存 儲器的控制器、包括所述控制器和MBC存儲器的存儲器裝置、以及 在其上面實施用于根據(jù)本發(fā)明的方法中的一個來管理存儲器的計算機 可讀代碼的計算機可讀存儲介質(zhì)。優(yōu)選地,控制器操作為根據(jù)通過控制器實施的本發(fā)明的方法,給存儲器裝置的主機提供存儲在MBC 存儲器中的數(shù)據(jù)位。
這里參照附圖僅作為例子說明本發(fā)明,其中, 圖1A 1D示出一位閃存單元、兩位閃存單元、三位閃存單元和四 位閃存單元中的閾值電壓分布;
圖2A和圖2B示出各跨越兩個邏輯頁面的系統(tǒng)ECC代碼字; 圖3A和圖3B示出各跨越兩個邏輯頁面的非系統(tǒng)ECC代碼字; 圖4是本發(fā)明的閃存裝置的高級框圖; 圖5是本發(fā)明的數(shù)據(jù)存儲器系統(tǒng)的高級部分框圖。
具體實施例方式
本發(fā)明是每單元多位的存儲器中的錯誤校正方法。 參照附圖和伴隨的說明,可以更好地理解根據(jù)本發(fā)明的MBC錯 誤校正的原理和操作。
在所有的現(xiàn)有技術的方法(諸如Lasser的,634和Murin的方法) 中,姜被存儲在一組MBC單元中的數(shù)據(jù)作為多個邏輯頁面從外面被 提供給存儲器系統(tǒng),并且,然后對于各個邏輯頁面單獨地計算ECC 奇偶校驗位。并且,在大多數(shù)的這樣的系統(tǒng)中,邏輯頁面的所有的數(shù) 據(jù)位和該同 一頁面的相應奇偶校驗位被存儲在同 一位頁面中。由于交 錯方案導致邏輯頁面的位散布在多個位頁面中,因此Murin的方法是 該第二觀察的例外。但是,即使Murin也遵循邏輯頁面的奇偶校驗位 僅取決于該邏輯頁面的數(shù)據(jù)位的第一觀察。使用本發(fā)明的方法,這不 再是這種情況。 一些或所有的奇偶校驗位是來自多個邏輯頁面而非僅 來自單個邏輯頁面的數(shù)據(jù)位的函數(shù)。這是將所有的位作為一個長代碼 字對待的結果。
寫入過程的該特性(即, 一些或所有的奇偶校驗位是來自多個邏 輯頁面的數(shù)據(jù)位的函數(shù))的結果是在讀取和錯誤校正過程中使用奇偶校驗位的方式。在所有的現(xiàn)有技術的系統(tǒng)(包括Lasser的'634和 Murin)中,特定的奇偶校驗位僅用于校正單個的邏輯頁面。這是可 合理地預期的一由于最初僅使用單個邏輯頁面的數(shù)據(jù)位來計算各奇 偶校驗位,該奇偶校驗位不代表關于其它邏輯頁面中的數(shù)據(jù)位的任何 信息,并因此應僅被用于校正基于其來計算它的該單個邏輯頁面。在 本發(fā)明的方法中不是這種情況——一些奇偶校驗位是基于來自多個邏 輯頁面的數(shù)據(jù)而計算的,且因此那些位可在實現(xiàn)那些多個邏輯頁面的 校正中被直接使用。
Ban等人的美國專利申請系列No. 10/867645應對相關的問題。根 據(jù)Ban等人的方法,如所有其它的現(xiàn)有技術中一樣,各邏輯頁面具有 僅基于相應邏輯頁面的數(shù)據(jù)位而計算的其自身的ECC奇偶校驗位。 但是,Ban等人與其它現(xiàn)有技術的不同在于,允許同一組單元的校正 的邏輯頁面以有限的方式相互影響。如果在某個位頁面的位中檢測到 和校正了錯誤,那么一些校正可被應用于同一單元的更有效 (significant )的位頁面的相應的位。但是,它沒有公開本發(fā)明的方法。 在Ban等人的方法中,奇偶校驗位對于多個邏輯頁面的ECC計算沒 有直接的影響,對于另一邏輯頁面的僅有的有限的影響是間接的,是 通過在ECC計算的范圍之外的高級物理考慮。
本發(fā)明的方法的另一含意在于,存儲在單元組中的位,包括數(shù)據(jù) 位和奇偶校驗位,均作為所使用的ECC方案的一個長代碼字而被處 理。使用什么特定的ECC方案無關緊要;從ECC的觀點看,要緊的 是位于同一組單元中的所有邏輯頁面作為一個實體一起被處理。如上 面解釋的那樣,除了提供最佳的位錯誤率以外,該方法還以奇偶校驗
位與數(shù)據(jù)位的減小的比率提供更有效的錯誤校正。
本發(fā)明的方法的范圍還包括更一般化的情況,其中,只有位于同 一組單元中的邏輯頁面的子集作為共同的代碼字被處理。例如,在每 單元四位的MBC閃存中,可以將邏輯頁面分組為各兩個邏輯頁面的 兩個組、或三個邏輯頁面的一個組加上一個單個邏輯頁面、或者甚至 兩個邏輯頁面的一個組加上兩個單個邏輯頁面。本發(fā)明的方法應被理解為包括任意情況,其中,共享相同單元的至少兩個邏輯頁面被ECC 方案作為單個代碼字而一起處理,而不管如何處理共享相同單元的其
它迷輯頁面。
現(xiàn)在返回附圖,圖2A和圖2B作為表格示出在應用本發(fā)明的方法 前后的MBC閃存的(用于解釋的目的,非常小的)塊。在圖2A和圖 2B中的每一個中,表格的各列代表塊的一個單元,各個行代表位編碼 的有效性頂行代表最高有效位(the most significant bit),第二行 代表次最高有效位,第三行代表次最低有效位,最后一行代表最低有 效位(the least significant bit)。各表格的各條目表示由相應存儲器 單元中的相應有效性的位所代表的位的源邏輯頁面。存儲數(shù)據(jù)位的存 儲器單元未加陰影。存儲ECC位的存儲器單元被加陰影。
最初,各具有十個位的數(shù)據(jù)的四個邏輯頁面被存儲在存儲器塊中。
第一邏輯頁面的位被編碼為數(shù)據(jù)單元的最低有效位。第二邏輯頁面的 位被編碼為數(shù)據(jù)單元的次最低有效位。第三邏輯頁面的位被編碼為數(shù) 據(jù)單元的次最高有效位。第四邏輯頁面的位被編碼為數(shù)據(jù)單元的最高 有效位。例如,如果第一邏輯頁面的第一位是"1",如果第二邏輯頁 面的第一位是"0",如果第三邏輯頁面的第一位是"0",并且如果 笫四邏輯頁面的第一位是"1",那么,使用圖ID所示的位編碼方案, 笫一 (最左邊)單元被編程為從左邊的第五電壓帶。此時,ECC單元 仍未被編程。
然后,使用本發(fā)明的方法以將數(shù)據(jù)位變成兩個28位代碼字, 一個 代碼字用于第一和第二邏輯頁面,另一代碼字用于笫三和第四邏輯頁 面。如圖2B所示,第一代碼字的ECC位在ECC單元的最低有效位 和次最低有效位中被編碼,并且,第二代碼字的ECC位在ECC單元 的次最高有效位和最高有效位中被編碼。
到現(xiàn)在為止已在"系統(tǒng)的"錯誤校正方案的背景中給出了本發(fā)明。 系統(tǒng)錯誤校正編碼的特征在于,可以通過編碼過程來保存并且可在所 存儲的位中識別原始的數(shù)據(jù)位。換句話說,錯誤校正機構獲取原始的 數(shù)據(jù)位,將一些奇偶校驗位添加到它們上,并且存儲數(shù)據(jù)位和奇偶校驗位。然后,當讀取所存儲的位時,數(shù)據(jù)位和奇偶校驗位均被讀取,并且,奇偶校驗位使得能夠校正所讀取的數(shù)據(jù)位中的錯誤,由此產(chǎn)生原始的數(shù)據(jù)位。
但是,本發(fā)明同樣可應用于非系統(tǒng)的錯誤校正代碼。在這樣的代碼中,原始數(shù)據(jù)位不被保存并且不被存儲。而是,編碼過程將原始數(shù)據(jù)位轉變成作為所存儲的位的更大的一組位(這里稱為"被保護的數(shù)
據(jù)位")。與系統(tǒng)的錯誤代碼的數(shù)據(jù)位和相關ECC奇偶校驗位的聯(lián)合類似,非系統(tǒng)的錯誤代碼的被保護的數(shù)據(jù)位在這里被視為與原始數(shù)據(jù)位對應的代碼字。當讀取所存儲的被保護的數(shù)據(jù)位時,即使在被保護的數(shù)據(jù)位中存在錯誤,也重新產(chǎn)生原始數(shù)據(jù)位。非系統(tǒng)的代碼的限定特性是,在特定的原始數(shù)據(jù)位和特定的所存儲的位之間沒有直接的對應關系。原始數(shù)據(jù)位"散布"于多個所存儲的位中,并且只有那些多個所存儲的位的組合表明原始位的值。
圖3A和圖3B與圖2A和圖2B對應,但是使用非系統(tǒng)的ECC而不是系統(tǒng)的ECC。圖3A與圖2A相同。圖3B示出,在本發(fā)明的非系統(tǒng)的ECC編碼之后,在數(shù)據(jù)位和ECC位之間不能作出有意義的區(qū)別。第一代碼字的所有的位在數(shù)據(jù)單元和ECC單元的最低有效位和次最低有效位中被編碼,并且,第二代碼字的所有的位在數(shù)據(jù)單元和ECC單元的次最高有效位和最高有效位中被編碼。
圖4是與主機30耦接的本發(fā)明的閃存裝置20的高級框圖。圖4是由Ban的美國專利No. 5404485的圖1改編的,該專利出于所有的目的通過參考而被加入,如同在這里被全面闡述那樣。閃存裝置20包括閃存24、控制器22和隨機存取存儲器(RAM)26。與美國5404485的"閃存控制14"對應的控制器22如在美國5404485中說明的那樣借助于RAM 26來管理閃存24??刂破?2還用上述的錯誤校正以閃存24的每個單元兩個或更多個位的方式對數(shù)據(jù)進行編碼,
圖5是本發(fā)明的替代性數(shù)據(jù)存儲器系統(tǒng)50的高級部分框圖。數(shù)據(jù)存儲器系統(tǒng)50包括處理器52和四個存儲器裝置RAM 54、引導(boot)ROM56、大容量存儲器裝置(硬盤)58和閃存裝置40,它們均通過共用的總線60通信。與閃存裝置20類似,閃存裝置40包含閃存42。與閃存裝置20不同,閃存裝置40缺少其自身的控制器和RAM。而是,處理器52通過執(zhí)行以例如Kfar Saba, Israel的M-Systems FlashDisk Pioneers Ltd.的TrueFFSTM驅(qū)動器的方式實施美國5404485的方法的軟件驅(qū)動器而仿真控制器22,并且其還如上面說明的那樣以閃存42的每個單元兩個或更多個位的方式對數(shù)據(jù)進行編碼。閃存裝置40還包括總線接口 44以使得處理器52能夠與閃存42通信。
處理器52執(zhí)行以管理閃存42的軟件驅(qū)動器的代碼被存儲在大容量存儲器裝置58中,并被轉移至RAM 54用于執(zhí)行。大容量存儲器裝置58因此是計算機可讀代碼存儲介質(zhì)的例子,在其中嵌入用于才艮據(jù)本發(fā)明的原理管理閃存42的計算機可讀代碼。
雖然已針對有限數(shù)量的實施例說明了本發(fā)明,但可以理解,可以作出本發(fā)明的許多改變、修改和其它的應用。
權利要求
1. 一種在每單元多位(MBC)的閃存中存儲數(shù)據(jù)的方法,包括以下步驟(a)對于數(shù)據(jù)位的多個邏輯頁面計算錯誤校正奇偶校驗位,其中,所述錯誤校正奇偶校驗位中的至少一個共同應用于所述邏輯頁面中的至少兩個;和(b)用所述數(shù)據(jù)位和所述錯誤校正奇偶校驗位對MBC閃存進行編程,用來自應用有所述至少一個共同的錯誤校正奇偶校驗位的所述至少兩個邏輯頁面中的多于一個邏輯頁面的數(shù)據(jù)位對MBC閃存的至少一個單元進行編程。
2. 根據(jù)權利要求l的方法,其中,所有的所述錯誤校正奇偶校驗 位應用于所有的所述邏輯頁面。
3. 根據(jù)權利要求l的方法,其中,所述多個包含多于兩個的所述 邏輯頁面,并且,所述計算包含對于至少兩個所述邏輯頁面但對于少 于所有的所述邏輯頁面共同地計算所述錯誤校正奇偶校驗位,
4. 根據(jù)權利要求l的方法,其中,用如在所述多個邏輯頁面中存 在的邏輯頁面那樣多的所述位對用所述位編程的所述閃存的各單元進 行編程。
5. —種恢復數(shù)據(jù)位的方法,給定用多個邏輯頁面的數(shù)據(jù)位并用對 所述數(shù)據(jù)位計算的錯誤校正奇偶校驗位編程的每單元多位(MBC)的 閃存,所述錯誤校正奇偶校驗位中的至少一個共同應用于所述邏輯頁 面中的至少兩個,并且,用來自應用有所述至少一個共同的錯誤校正 位的所述至少兩個邏輯頁面中的多于一個邏輯頁面的數(shù)據(jù)位對MBC 閃存的至少一個單元進行編程,該方法包括以下步驟(a)從MBC閃存讀取(i) 應用有所述至少一個共同的錯誤校正奇偶校驗位的所述 至少兩個邏輯頁面的數(shù)據(jù)位;和(ii) 應用于應用有所述至少一個共同的錯誤校正奇偶校驗位的所述至少兩個邏輯頁面中的任一個邏輯頁面的所述錯誤校正奇偶校驗位;和(b )根據(jù)從MBC閃存讀取的所述錯誤校正奇偶校驗位來校正從 MBC閃存讀取的所述數(shù)據(jù)位。
6. —種控制器,用于每單元多位(MBC)的閃存,該控制器操 作為通過包含對于所述數(shù)據(jù)位計算錯誤校正奇偶校驗位的步驟而在 MBC閃存中存儲多個邏輯頁面的數(shù)據(jù)位,至少 一個錯誤校正奇偶校驗 位共同應用于所述邏輯頁面中的至少兩個,并且,來自應用有所述至 少 一個共同的錯誤校正奇偶校驗位的所述至少兩個邏輯頁面中的多于 一個邏輯頁面的數(shù)據(jù)位被一起存儲在MBC閃存的至少一個單元中的 每一個中。
7. 根據(jù)權利要求6的控制器,其中,所述控制器操作為通過包含 以下內(nèi)容的步驟給包含所述控制器和MBC閃存的存儲器裝置的主機 提供所述數(shù)據(jù)位U)從MBC閃存讀取(i) 應用有所述至少一個共同的錯誤校正奇偶校驗位的所述 至少兩個邏輯頁面的數(shù)據(jù)位;和(ii) 應用于應用有所述至少一個共同的錯誤校正奇偶校驗 位的所述至少兩個邏輯頁面中的任一個邏輯頁面的錯誤校正奇偶校驗 位;和(b)根據(jù)從MBC閃存讀取的所述錯誤校正奇偶校驗位來校正從 MBC閃存讀取的所述數(shù)據(jù)位。
8. —種存儲器裝置,包括(a) 根據(jù)權利要求6的控制器;和(b) 由權利要求6的控制器控制的MBC閃存。
9. 一種在計算機可讀存儲介質(zhì)上實施計算機可讀代碼的計算機可 讀存儲介質(zhì),該計算機可讀代碼用于管理每單元多位(MBC )的閃存, 該計算機可讀代碼包括(a )用于對于要被存儲在MBC閃存中的數(shù)據(jù)位的多個邏輯頁面計算錯誤校正奇偶校驗位的程序代碼,其中,所述錯誤校正奇偶校驗位中的至少一個共同應用于所述邏輯頁面中的至少兩個;和(b )用于用所述數(shù)據(jù)位和所述錯誤校正奇偶校驗位對MBC閃存 進行編程的程序代碼,用來自應用有所述至少一個共同的錯誤校正奇 偶校驗位的所述至少兩個邏輯頁面中的多于一個邏輯頁面的數(shù)據(jù)位對 MBC閃存的至少一個單元進行編程。
10. —種在計算機可讀存儲介質(zhì)上實施計算機可讀代碼的計算機 可讀存儲介質(zhì),給定用多個邏輯頁面的數(shù)據(jù)位并用對所述數(shù)據(jù)位計算 的錯誤校正奇偶校驗位編程的每單元多位(MBC)的閃存,所述錯誤 校正奇偶校驗位中的至少一個共同應用于所述邏輯頁面中的至少兩 個,并且,用來自應用有所述至少一個共同的錯誤校正位的所述至少 兩個邏輯頁面中的多于一個邏輯頁面的數(shù)據(jù)位對MBC閃存的至少一 個單元進行編程,該計算機可讀代碼包括(a) 用于從MBC閃存讀取以下內(nèi)容的程序代碼(i )應用有所述至少一個共同的錯誤校正奇偶校驗位的所述 至少兩個邏輯頁面的數(shù)據(jù)位;和(ii)應用于應用有所述至少一個共同的錯誤校正奇偶校驗 位的所述至少兩個邏輯頁面中的任一個邏輯頁面的所述錯誤校正奇偶 校驗位;和(b )用于根據(jù)從MBC閃存讀取的所述錯誤校正奇偶校驗位來校 正從MBC閃存讀取的所述數(shù)據(jù)位的程序代碼。
11. 一種在每單元多位(MBC)的閃存中存儲數(shù)據(jù)的方法,包括 以下步驟(a )對于數(shù)據(jù)位的多個邏輯頁面中的至少兩個計算共同的錯誤校 正代碼(ECC)代碼字;和(b) 用所述共同的ECC代碼字對MBC閃存進行編程。
12. 根據(jù)權利要求ll的方法,其中,所述ECC是系統(tǒng)的
13. 根據(jù)權利要求ll的方法,其中,所述ECC是非系統(tǒng)的。
14. 根據(jù)權利要求ll的方法,其中,所述多個包含多于兩個的所迷邏輯頁面,并且,所述計算用于少于所有的所述邏輯頁面。
15. 根據(jù)權利要求11的方法,其中,用如對其計算所述共同的 ECC代碼字的所述邏輯頁面那樣多的所述共同的ECC代碼字的位對 用所述共同的ECC代碼字來編程的MBC閃存的各單元進行編程。
16. 根據(jù)權利要求ll的方法,其中,用如所述多個邏輯頁面那樣 多的位對用所述共同的ECC代碼字來編程的所述閃存的各單元進行 編程。
17. —種恢復數(shù)據(jù)位的方法,給定用對于數(shù)據(jù)位的多個邏輯頁面 中的至少兩個計算的共同的錯誤校正代碼(ECC)代碼字編程的每單 元多位(MBC)的閃存,該方法包括以下步驟(a) 從閃存讀取所述共同的ECC代碼字;和(b) 從于閃存讀取的所述共同的ECC代碼字恢復從其計算所述 共同的ECC代碼字的所述至少兩個邏輯頁面的數(shù)據(jù)位。
18. —種控制器,用于每單元多位(MBC)的閃存,該控制器操 作為通過包含對于所述邏輯頁面中的至少兩個計算共同的錯誤校正代 碼(ECC)代碼字的步驟而在MBC閃存中存儲多個邏輯頁面的數(shù)據(jù) 位。
19. 根據(jù)權利要求18的控制器,其中,所述控制器操作為通過包 含以下內(nèi)容的步驟給包含所述控制器和MBC閃存的存儲器裝置的主 機提供數(shù)據(jù)位(a) 從MBC閃存讀取所述共同的ECC代碼字;和(b) 從于MBC閃存讀取的所述共同的ECC代碼字恢復從其計 算所述共同的ECC代碼字的所述至少兩個邏輯頁面的數(shù)據(jù)位。
20. —種存儲器裝置,包括(a) 根據(jù)權利要求18的控制器;和(b) 由權利要求18的控制器控制的MBC閃存。
21. —種在計算機可讀存儲介質(zhì)上實施計算機可讀代碼的計算機 可讀存儲介質(zhì),該計算機可讀代碼用于管理每單元多位(MBC)的閃 存,該計算機可讀代碼包括(a )用于對于要被存儲在MBC閃存中的數(shù)據(jù)位的多個邏輯頁面 中的至少兩個計算共同的錯誤校正代碼(ECC)代碼字的程序代碼; 和(b)用于用所述共同的ECC代碼字對MBC閃存進行編程的程 序代碼。
22. —種在計算機可讀存儲介質(zhì)上實施計算機可讀代碼的計算機 可讀存儲介質(zhì),給定用對于數(shù)據(jù)位的多個邏輯頁面中的至少兩個計算 的共同的錯誤校正代碼(ECC)代碼字編程的每單元多位(MBC)的 閃存,該計算機可讀代碼包括(a)用于從閃存讀取所述共同的ECC代碼字的程序代碼;和 (b )用于從于閃存讀取的所述共同的ECC代碼字恢復從其計算 所述共同的ECC代碼字的所述至少兩個邏輯頁面的數(shù)據(jù)位的程序代 碼。
全文摘要
多個邏輯頁面與相應的ECC位一起被存儲在MBC閃存(42)中,MBC單元中的至少一個存儲來自多于一個邏輯頁面的位,并且ECC位中的至少一個應用于邏輯頁面中的兩個或更多個。當從存儲器(42)讀取頁面時,使用所讀取的ECC位來校正所讀取的數(shù)據(jù)位。作為替代方案,共同的、系統(tǒng)的或非系統(tǒng)的ECC代碼字對于邏輯頁面中的兩個或更多個而被計算,并代替那些邏輯頁面而被存儲。當讀取共同的代碼字時,從所讀取的代碼字恢復邏輯位。本發(fā)明的范圍還包括相應的存儲器裝置(54,56,5S)、這樣的存儲器裝置(54,56,58)的控制器以及承載有用于實施所述方法的計算機可讀代碼的計算機可讀存儲介質(zhì)。
文檔編號G11C29/00GK101536109SQ200680044505
公開日2009年9月16日 申請日期2006年10月4日 優(yōu)先權日2005年10月13日
發(fā)明者E·沙龍, I·奧羅德, M·拉瑟, M·穆里恩, S·利特辛 申請人:特拉維夫大學拉莫特有限公司