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

具有附屬文件系統(tǒng)的多堆非易失性存儲器系統(tǒng)的制作方法

文檔序號:6350164閱讀:144來源:國知局
專利名稱:具有附屬文件系統(tǒng)的多堆非易失性存儲器系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本申請涉及諸如半導(dǎo)體閃存的可重編程非易失性存儲器系統(tǒng)的操作,且更具體地,涉及使用多個(gè)堆的結(jié)構(gòu)的這種系統(tǒng)的管理。
背景技術(shù)
能夠非易失性地存儲電荷的固態(tài)存儲器、尤其是被包裝為小形狀因子卡的EEPROM 和快閃EEPROM的形式,近來已經(jīng)變?yōu)樵诟鞣N移動和手持設(shè)備、特別是信息用具和消費(fèi)者電子產(chǎn)品中的存儲的選擇。不像也是固態(tài)存儲器的RAM(隨機(jī)存取存儲器),閃存是非易失性的,且即使在掉電之后也維持其存儲的數(shù)據(jù)。而且,不像R0M(只讀存儲器),閃存是可重寫的,類似于盤存儲設(shè)備。盡管有較高的成本,閃存也逐漸用于大容量存儲應(yīng)用?;谥T如硬盤驅(qū)動器和軟盤的旋轉(zhuǎn)磁介質(zhì)的傳統(tǒng)大容量存儲器不適用于移動和手持環(huán)境。這是因?yàn)楸P驅(qū)動器趨于有大的體積,因此易于機(jī)械故障,且具有高延遲時(shí)間和高功率需求。這些不期望的屬性使得基于盤的存儲器在大多數(shù)移動和便攜應(yīng)用中不實(shí)際。另一方面,嵌入式和可移除卡的形式的閃存都由于其小尺寸、低功耗、高速度和高可靠性特性而理想地適用于移動和手持環(huán)境。閃速EEPROM類似于EEPROM (電可擦除可編程只讀存儲器)之處在于其是可以被擦除且使得新數(shù)據(jù)寫入或"編程"到其存儲器單元中的非易失性存儲器。兩者都使用位于在源極和漏極區(qū)域之間的半導(dǎo)體襯底中的溝道區(qū)域上以場效應(yīng)晶體管結(jié)構(gòu)的浮置(未連接)導(dǎo)電柵極。然后,在浮置柵極上提供控制柵極。晶體管的閾值電壓特性受浮置柵極上保留的電荷量控制。也就是說,對于在浮置柵極上的給定的電荷電平,存在在晶體管"導(dǎo)通" 以允許在其源極和漏極區(qū)域之間導(dǎo)電之前必須施加到該控制柵極的對應(yīng)電壓(閾值)。具體地,諸如閃速EEPROM的閃存允許同時(shí)擦除存儲器單元的全部多個(gè)塊。浮置柵極可以保持一個(gè)電荷范圍,且因此可以被編程到閾值電壓窗內(nèi)的任何閾值電壓電平。通過該器件的最小和最大閾值電平來劃界閾值電壓窗的尺寸,這轉(zhuǎn)而對應(yīng)于可以被編程到浮置柵極上的該電荷范圍。該閾值窗通常取決于存儲器器件的特征、操作條件和歷史。在該窗內(nèi)的每個(gè)不同、可分解的閾值電壓電平范圍可以原則上用于指定該單元的明確的存儲器狀態(tài)。用作存儲器單元的晶體管通常被兩個(gè)機(jī)制之一編程到"已編程"狀態(tài)。在"熱電子注入"中,施加到漏極的高電壓加速電子跨過襯底溝道區(qū)域。同時(shí),施加到控制柵極的高電壓將熱電子拉過薄柵極電介質(zhì)到浮置柵極上。在"遂穿注入"中,相對于襯底向控制柵極施加高電壓。以此方式,將電子從襯底拉到中間的浮置柵極。雖然歷史上已經(jīng)使用術(shù)語 “編程”來描述通過向存儲器單元的初始擦除的電荷存儲單元注入電子以便改變存儲器狀態(tài)來向存儲器中寫,但是現(xiàn)在已經(jīng)與諸如"寫"或"記錄"的更多通用術(shù)語可互換使用。該存儲器器件可以被多個(gè)機(jī)制擦除。對于EEPR0M,存儲器單元可通過相對于控制柵極向襯底施加高電壓以便誘使浮置柵極中的電子遂穿過薄氧化物到襯底溝道區(qū)域(即, R)wler-Nordheim遂穿)而被電擦除。通常,EEPROM可逐字節(jié)擦除。對于快閃EEPR0M,該
4存儲器可一次全部或一次一個(gè)或多個(gè)最小可擦除塊地被電擦除,其中,最小可擦除塊可以由一個(gè)或多個(gè)扇區(qū)構(gòu)成,且每個(gè)扇區(qū)可以存儲512字節(jié)或更多的數(shù)據(jù)。該存儲器器件通常包括可以被安裝到卡上的一個(gè)或多個(gè)存儲器芯片。每個(gè)存儲器芯片包括由諸如解碼器和擦除、讀和寫電路的外圍電路支持的存儲器單元的陣列。更復(fù)雜的存儲器器件具有進(jìn)行智能且較高級存儲器操作和接口連接(interfacing)的控制器。存在當(dāng)今正使用的許多商業(yè)成功的非易失性固態(tài)存儲器器件。這些存儲器器件可以是快閃EEPR0M,或可以使用其他類型的非易失性存儲器單元。在美國專利號5,070, 032, 5,095,344,5,315,541,5,343,063 和 5,661,053,5,313,421 以及 6,222,762 中給出閃存和制造它們的系統(tǒng)和方法的例子。具體地,在美國專利號5,570,315,5,903,495,6,046,935 中描述具有NAND串結(jié)構(gòu)的閃存器件。而且,也從具有用于存儲電荷的介電層的存儲器單元制造非易失性存儲器器件。取代先前描述的導(dǎo)電浮置柵極元件,使用介電層。使用介電存儲元件的這種存儲器器件已經(jīng)由Eitan等人的“NROM :A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell,,, IEEE Electron Device Letters, vol. 21, no. 11,2000 11 月,pp. 543-545所描述。ONO介電層跨越源極和漏極擴(kuò)散之間的溝道而延伸。一個(gè)數(shù)據(jù)位的電荷被局部化在與漏極相鄰的介電層,且另一數(shù)據(jù)位的電荷被局部化在與源極相鄰的介電層。例如,美國專利5,768,192和6,011,725公開了具有在兩個(gè)二氧化硅層之間夾著的捕獲電介質(zhì)(trapping dielectric)的非易失性存儲器單元。通過分開地讀取電介質(zhì)內(nèi)的空間上分開的電荷存儲區(qū)的二進(jìn)制狀態(tài)來實(shí)現(xiàn)多狀態(tài)數(shù)據(jù)存儲。為了改善讀和編程性能,并行讀或編程在陣列中的多個(gè)電荷存儲元件或存儲器晶體管。因此,存儲器元件的"頁"被一起讀或編程。在現(xiàn)有存儲器架構(gòu)中,一行通常包含若干交織的頁,或其可以組成一頁。一頁的所有存儲器元件將一起被讀或編程。在閃存系統(tǒng)中,擦除操作可以花費(fèi)比讀和編程操作長的量級的時(shí)間。因此,期望具有足夠尺寸的擦除塊。以此方式,在存儲器單元的大集合上攤銷該擦除時(shí)間。閃存的屬性預(yù)示了數(shù)據(jù)必須被寫到已擦除的存儲器位置。如果來自主機(jī)的某一邏輯地址的數(shù)據(jù)要更新,則一種方式是在相同物理存儲器位置中重寫該更新數(shù)據(jù)。也就是說, 邏輯到物理地址的映射未改變。但是,這將意味著,包含了物理位置的整個(gè)擦除塊將必須被首先擦除,然后用更新的數(shù)據(jù)來重寫。該更新方法效率低,因?yàn)樗枰脸⒅貙懻麄€(gè)擦除塊,尤其在要更新的數(shù)據(jù)僅占據(jù)擦除塊的小部分時(shí)。這還將導(dǎo)致存儲器塊的擦除再循環(huán)的較高的頻率,鑒于該類存儲器器件的有限容忍度角度來說這是不期望的。通過主機(jī)系統(tǒng)、存儲器系統(tǒng)、其他電子系統(tǒng)的外部接口傳輸?shù)臄?shù)據(jù)被尋址,且被映射到閃存系統(tǒng)的物理位置中。通常,由系統(tǒng)生成或接收的數(shù)據(jù)文件的地址被映射到根據(jù)數(shù)據(jù)的邏輯塊(此后稱為"LBA接口")為系統(tǒng)建立的連續(xù)邏輯地址空間的不同范圍。地址空間的范圍通常足夠用于覆蓋該系統(tǒng)能夠處理的全地址范圍。在一個(gè)例子中,磁盤存儲驅(qū)動器通過該邏輯地址空間而與計(jì)算機(jī)或其他主機(jī)系統(tǒng)通信。該地址空間具有足夠?qū)ぶ繁P驅(qū)動器的整個(gè)數(shù)據(jù)存儲能力的范圍。閃存系統(tǒng)最通常以可移除地連接到諸如個(gè)人計(jì)算機(jī)、照相機(jī)等的各種主機(jī)的存儲器卡或閃盤的形式提供,但也可以被嵌入到這種主機(jī)系統(tǒng)中。當(dāng)向存儲器寫數(shù)據(jù)時(shí),該主機(jī)通常向扇區(qū)、簇或其他數(shù)據(jù)單位分配在存儲器系統(tǒng)的連續(xù)虛擬地址空間內(nèi)的唯一的邏輯地址。類似于盤操作系統(tǒng)(D0S),主機(jī)向存儲器系統(tǒng)的邏輯地址空間內(nèi)的地址寫數(shù)據(jù),和從該地址讀取數(shù)據(jù)。存儲器系統(tǒng)內(nèi)的控制器將從主機(jī)接收的邏輯地址翻譯為存儲器陣列內(nèi)的邏輯地址,所述數(shù)據(jù)在該邏輯地址實(shí)際地存儲,然后該控制器記錄這些地址翻譯。存儲器系統(tǒng)的數(shù)據(jù)存儲容量至少與在對于存儲器系統(tǒng)定義的整個(gè)邏輯地址空間上可尋址的數(shù)據(jù)量一樣大。在當(dāng)前商用的閃存系統(tǒng)中,擦除單元的尺寸已經(jīng)增加到足夠的存儲器單元的塊來存儲多個(gè)數(shù)據(jù)扇區(qū)。事實(shí)上,許多數(shù)據(jù)頁被存儲在一個(gè)塊中,且一頁可以存儲多個(gè)數(shù)據(jù)扇區(qū)。另外,兩個(gè)或更多塊通常與元塊一起操作,且這種塊的頁邏輯地鏈接到了一起作為元頁。數(shù)據(jù)的頁或元頁被一起寫和讀,這可以包括許多數(shù)據(jù)扇區(qū),因此增加了操作的并行性。 隨著這種大容量操作單元的出現(xiàn),帶來的挑戰(zhàn)是高效地操作它們。為了方便說明,除非特別指出,意圖在此使用的術(shù)語“塊”取決于在特定系統(tǒng)中是否使用了元塊而指的是擦除的塊單位或多個(gè)塊“元塊”。類似地,在此對“頁”的引用,取決于系統(tǒng)配置,可以指的是單個(gè)塊內(nèi)的編程單位或元塊內(nèi)的“元頁”。當(dāng)使用到存儲器系統(tǒng)的當(dāng)前普遍的LBA接口時(shí),由存儲器連接到的主機(jī)生成的文件被分配接口的邏輯地址空間內(nèi)的唯一地址。然后,該存儲器系統(tǒng)通常在邏輯地址空間和存儲器的物理塊的頁之間映射數(shù)據(jù)。存儲器系統(tǒng)記錄邏輯地址空間如何映射到物理存儲器,但主機(jī)并不知道這些。主機(jī)記錄其數(shù)據(jù)文件在邏輯地址空間內(nèi)的地址,但存儲器系統(tǒng)在幾乎不知道或不知道該映射的情況下操作。管理閃存系統(tǒng)的另一問題與系統(tǒng)控制和目錄數(shù)據(jù)有關(guān)。在各種存儲器操作過程期間產(chǎn)生并訪問數(shù)據(jù)。因此,其高效地處理和迅速的訪問將直接影響性能。將期望在閃存中維持該類數(shù)據(jù),因?yàn)殚W存的目的是存儲且是非易失性的。但是,由于在控制器和閃存之間的中間的文件管理系統(tǒng),不能直接地訪問數(shù)據(jù)。而且,系統(tǒng)控制和目錄數(shù)據(jù)趨于活躍且是碎片狀的,其不利于在具有大尺寸塊擦除的系統(tǒng)中存儲。傳統(tǒng)地,在控制器RAM中設(shè)置該類數(shù)據(jù), 由此允許由控制器來直接訪問。在存儲器器件通電之后,初始化處理使得閃存能被掃描以便編譯必要的系統(tǒng)控制和目錄信息以置于控制器RAM中。該處理費(fèi)時(shí)且需要控制器RAM容量,隨著日益增加的閃存容量更是如此。通常,存在持續(xù)的搜索以改善非易失性存儲器系統(tǒng)的容量和性能。具體地,這可以包括改善在存儲器系統(tǒng)中的并行的量和效率的方法。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的總體方面,提供了一種非易失性存儲器系統(tǒng),具有控制器電路和具有多個(gè)可獨(dú)立操作的堆的非易失性存儲器電路。每個(gè)堆包括一個(gè)或多個(gè)非易失性存儲器陣列用于存儲用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)??刂破麟娐饭芾碓诖鎯ζ麟娐飞系挠脩魯?shù)據(jù)的存儲,且包括多個(gè)堆接口,每個(gè)連接到相應(yīng)的堆以在控制器和對應(yīng)的堆之間傳輸數(shù)據(jù),以及包括處理電路,執(zhí)行多個(gè)線程,每個(gè)線程獨(dú)立且同時(shí)管理對應(yīng)的一個(gè)堆。所述堆中的第一堆存儲包括文件系統(tǒng)的系統(tǒng)數(shù)據(jù),通過該文件系統(tǒng),對應(yīng)的線程管理第一堆,且其他堆中的每個(gè)存儲包括文件系統(tǒng)的一部分的拷貝的系統(tǒng)數(shù)據(jù),通過該文件系統(tǒng)的一部分的拷貝,對應(yīng)的線程管理該堆。在其他方面中,提供操作非易失性存儲器系統(tǒng)的對應(yīng)方法,所述存儲器系統(tǒng)包括具有多個(gè)可獨(dú)立操作的堆的非易失性存儲器電路以及管理在存儲器電路上的用戶的存儲的控制器電路。該方法包括在非易失性存儲器中在堆中的第一堆上存儲包括文件系統(tǒng)的系統(tǒng)數(shù)據(jù);在非易失性存儲器中在堆中的第二堆上存儲包括文件系統(tǒng)的一部分的拷貝的系統(tǒng)數(shù)據(jù);在控制器上執(zhí)行第一線程,以根據(jù)文件系統(tǒng)來管理第一堆;以及與執(zhí)行第一線程同時(shí)地,在控制器上執(zhí)行第二線程以根據(jù)獨(dú)立于在第一堆中存儲的文件系統(tǒng)的、文件系統(tǒng)的拷貝來管理第二堆。在本發(fā)明的示例例子的以下描述中包括本發(fā)明的各種方面、優(yōu)點(diǎn)、特征和實(shí)施例, 其描述應(yīng)該與附圖結(jié)合。在此引用的所有專利、專利申請、文章、其他公開、文檔和事物為了所有目的通過其整體而合并于此。到在任一并入的公開、文檔或事物和本申請之間的術(shù)語的定義或使用中的任何不一致或沖突的程度,在本申請中的應(yīng)該優(yōu)先。


圖1示意性地圖示了適用于實(shí)現(xiàn)本發(fā)明的存儲器系統(tǒng)的主要硬件組件。圖2示意性地圖示了非易失性存儲器單元。圖3圖示了在浮置柵極可以選擇性地在任意時(shí)間存儲的四個(gè)電荷Q1-Q4的源極-漏極電流Id和控制柵極電壓Vra之間的關(guān)系。圖4A示意性地圖示了被組織為NAND串的存儲器單元的串。圖4B圖示了由諸如圖4A中示出的NAND串50構(gòu)成的存儲器單元的NAND陣列210 的例子。圖5圖示了在例如正被并行感測或編程的NAND配置中組織的存儲器單元的一頁。圖6 (0)-6 O)圖示編程4狀態(tài)存儲器單元的全體的例子。圖7A-7E圖示了用給定的2位碼編碼的4狀態(tài)存儲器的編程和讀。圖8圖示了通過存儲器管理器管理的存儲器,所述存儲器控制器是駐留于控制器中的軟件組件。圖9圖示了后端系統(tǒng)的軟件模塊。圖10A(i)_10A(iii)示意性地圖示了在邏輯組和元塊之間的映射。圖IOB示意性地圖示了在邏輯組和元塊之間的映射。圖11是使用附屬文件系統(tǒng)的多堆存儲器系統(tǒng)的例子的方框圖。圖12提供在圖11的實(shí)施例中的主和附屬(satellite)文件系統(tǒng)中存儲的元素的
一些細(xì)節(jié)。
具體實(shí)施例方式存儲器系統(tǒng)圖1到圖7提供其中可以實(shí)現(xiàn)或例示本發(fā)明的各個(gè)方面的示例存儲器系統(tǒng)。圖8到圖10圖示用于實(shí)現(xiàn)本發(fā)明的各個(gè)方面的優(yōu)選存儲器和塊結(jié)構(gòu)。圖11和圖12圖示了在多堆系統(tǒng)中的附屬文件系統(tǒng)的使用。圖1示意性地圖示了適用于實(shí)現(xiàn)本發(fā)明的存儲器系統(tǒng)的主要硬件組件。存儲器系統(tǒng)90通常通過主機(jī)接口與主機(jī)80 —起操作。存儲器系統(tǒng)通常為存儲器卡或嵌入式存儲器系統(tǒng)的形式。存儲器系統(tǒng)90包括其操作被控制器100控制的存儲器200。存儲器200包括在一個(gè)或多個(gè)集成電路芯片上分布的非易失性存儲器單元的一個(gè)或多個(gè)陣列??刂破?00包括接口 110、處理器120、可選的協(xié)處理器121、ROM 122(只讀存儲器)、RAM 130(隨機(jī)存取存儲器)和可選的可編程非易失性存儲器124。接口 110具有將控制器接口連接到主機(jī)的一個(gè)組件和接口連接到存儲器200的另一組件。在非易失性ROM 122和/或可選的非易失性存儲器1 中存儲的固件提供代碼,用于處理器120實(shí)現(xiàn)控制器100的功能??梢杂商幚砥?20或可選的協(xié)處理器121來處理錯誤校正碼。在替換的實(shí)施例中,通過狀態(tài)機(jī)(未示出)來實(shí)現(xiàn)控制器100。在另一實(shí)施例中,在主機(jī)中實(shí)現(xiàn)控制器100。物理存儲器結(jié)構(gòu)圖2示意性地圖示了非易失性存儲器單元。存儲器單元10可以由具有諸如浮置柵極或介電層的電荷存儲單元20的場效應(yīng)晶體管實(shí)現(xiàn)。存儲器單元還包括源極14、漏極 16和控制柵極30。存在當(dāng)今正使用的許多商業(yè)成功的非易失性固態(tài)存儲器器件。這些存儲器器件可以使用不同類型的存儲器單元,每個(gè)類型具有一個(gè)或多個(gè)電荷存儲元件。通常,非易失性存儲器單元包括EEPROM和快閃EEPR0M。在美國專利no. 5,595,924 中給出EEPROM單元和制造它們的方法的例子。在美國專利no. 5,070,032,5,095,344, 5,315,541,5,343,063,5,661,053,5,313,421 和 6,222,762 中給出快閃 EEPROM 單元、其在存儲器系統(tǒng)中的使用和制造它們的方法的例子。具體地,在美國專利no. 5,570,315, 5,903,495,6,046,935中描述具有NAND單元結(jié)構(gòu)的存儲器器件的例子。同樣,使用電介質(zhì)存儲元件的存儲器器件的例子已經(jīng)由以下文獻(xiàn)描述=Eitan等人的“NR0M:A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell,,,IEEE Electron Device Letters, vol. 21,no. 11,2000 年 11 月,pp. 543-545 和美國專利 no. 5,768,192 和 6,011, 725ο實(shí)際上,通常通過當(dāng)向控制柵極施加參考電壓時(shí)感測跨過單元的源極和漏極的導(dǎo)電電流來讀取該單元的存儲器狀態(tài)。因此,對于單元的浮置柵極上的每個(gè)給定的電荷,可以檢測針對固定參考控制柵極電壓的對應(yīng)的導(dǎo)電電流。類似地,可編程到浮置柵極上的電荷范圍定義了對應(yīng)的閾值電壓窗或?qū)?yīng)的導(dǎo)電電流窗?;蛘撸鏅z測在分區(qū)的電流窗之間的導(dǎo)電電流,能夠在控制柵極處為測試之下的給定存儲器狀態(tài)設(shè)置閾值電壓,并檢測導(dǎo)電電流是低于還是高于閾值電流。在一個(gè)實(shí)施方式中,通過檢查導(dǎo)電電流通過位線的電容而放電的速率來實(shí)現(xiàn)針對閾值電流檢測導(dǎo)電電流。圖3圖示了在浮置柵極可以選擇性地在任意時(shí)間存儲的四個(gè)不同電荷Q1-Q4的源極-漏極電流Id和控制柵極電壓Vra之間的關(guān)系。四個(gè)實(shí)線Id相對Vra曲線表示能夠在存儲器單元的浮置柵極上被編程的四個(gè)可能的電荷電平,分別對應(yīng)于四個(gè)可能的存儲器狀態(tài)。 作為例子,全體單元的閾值電壓窗的范圍可以從0. 5V到3. 5V??梢酝ㄟ^以每個(gè)為0. 5V的間隔將閾值窗劃分為五個(gè)區(qū)域來分界分別表示一個(gè)已擦除狀體和六個(gè)已編程狀態(tài)的七個(gè)可能的存儲器狀態(tài)〃 0〃,“ 1〃,“ 2〃,“ 3〃,“ 4〃,“ 5〃,“ 6〃。例如,如果如所示地使用2μ A的參考電流IREF,則用Ql編程的單元可以被視為在存儲器狀態(tài)"1", 因?yàn)槠淝€與Ikef在由Vra = 0. 5V和1. OV分界的閾值窗的區(qū)域中交叉。類似地,Q4處于存儲器狀態(tài)"5"。如可以從上述描述看見的,使存儲器單元存儲的狀態(tài)越多,其閾值窗劃分得越精細(xì)。例如,存儲器器件可以具有擁有范圍從-1.5V到5V的閾值窗的存儲器單元。這提供了 6. 5V的最大寬度。如果該存儲器單元要存儲16個(gè)狀態(tài),每個(gè)狀態(tài)可以在閾值窗中占據(jù)從 200mV到300mV。這將需要在編程和讀操作中的更高的精度以便能夠?qū)崿F(xiàn)需要的分辨率。圖4A示意性地圖示了被組織為NAND串的存儲器單元的串。NAND串50由其源極和漏極菊花鏈接的一系列存儲器晶體管M1,M2,. . . Mn (例如η = 4,8,16或更高)構(gòu)成。一對選擇晶體管S1、S2控制存儲器晶體管鏈分別經(jīng)由NAND串的源極端討和漏極端56與外部的連接。在存儲器陣列中,當(dāng)導(dǎo)通源極選擇晶體管Sl時(shí),源極端耦合于源極線(見圖4B)。 類似地,當(dāng)導(dǎo)通漏極選擇晶體管S2時(shí),NAND串的漏極端被耦合于存儲器陣列的位線。在該鏈中的每個(gè)存儲器晶體管10用作存儲器單元。其具有電荷存儲元件20來存儲給定量的電荷以便表示意圖的存儲器狀態(tài)。每個(gè)存儲器晶體管的控制柵極30允許對讀和寫操作的控制。如將在圖4B中看見的,一行NAND串的對應(yīng)存儲器晶體管的控制柵極30都被連接到相同字線。類似地,選擇晶體管Si、S2的每個(gè)的控制柵極32分別經(jīng)由其源極端M和漏極端 56提供對NAND串的控制訪問。類似地,一行NAND串的對應(yīng)選擇晶體管的控制柵極32都被連接到相同選擇線。當(dāng)在編程期間讀或驗(yàn)證在NAND串內(nèi)的被尋址的存儲器晶體管10時(shí),其控制柵極 30被供應(yīng)了適當(dāng)?shù)碾妷?。同時(shí),通過對其控制柵極施加足夠的電壓來完全導(dǎo)通NAND串50 中的剩余的未尋址的存儲器晶體管。以此方式,有效地創(chuàng)建從單獨(dú)的存儲器晶體管的源極到NAND串的源極端M的導(dǎo)電路徑,且類似地對于單獨(dú)的存儲器晶體管的漏極到該單元的漏極端56建立導(dǎo)電路徑。在美國專利no. 5,570,315,5,903,495,6,046,935中描述了具有這種NAND串結(jié)構(gòu)的存儲器器件。圖4B圖示了由例如圖4A中示出的NAND串50構(gòu)成的存儲器單元的NAND陣列210 的例子。沿著NAND串的每列,諸如位線36的位線耦合于每個(gè)NAND串的漏極端56。沿著 NAND串的每堆,諸如源極線34的源極線耦合于每個(gè)NAND串的源極端54。同樣,沿著在NAND 串的堆中的存儲器單元的行的控制柵極被連接到諸如字線42的字線。沿著在NAND串的堆中的選擇晶體管的行的控制柵極被連接到諸如選擇線44的選擇線。NAND串的堆中的存儲器單元的整行可以由NAND串的堆的字線和選擇線上的適當(dāng)?shù)碾妷簛韺ぶ?。?dāng)在NAND串內(nèi)的存儲器晶體管正被讀取時(shí),經(jīng)由相關(guān)字線來硬導(dǎo)通在該串中的剩余存儲器晶體管,以便流過該串的電流基本上取決于在正被讀取的單元中存儲的電荷電平。圖5圖示了例如在正被并行感測或編程的NAND配置中組織的存儲器單元的一頁。 圖5實(shí)質(zhì)上示出了在圖4B的存儲器陣列210中的NAND串50的堆,其中圖4A中明顯地示出了每個(gè)NAND串的細(xì)節(jié)。諸如頁60的"頁"是可并行感測或編程的一組存儲器單元。這通過感測放大器212的對應(yīng)頁來實(shí)現(xiàn)。感測的結(jié)果被鎖存在對應(yīng)的一組鎖存器214中。每個(gè)傳感放大器可以經(jīng)由位線耦合于NAND串。該頁通過共同連接到字線42的該頁的單元的控制柵極和可由感測放大器經(jīng)由位線36訪問的每個(gè)單元來使能。作為一個(gè)例子,當(dāng)分別感測或編程單元60的頁時(shí),感測電壓或編程電壓分別被施加到公共字線WL3以及適當(dāng)?shù)碾妷罕皇┘拥轿痪€。存儲器的物理組織在閃存和這類存儲器之間的一個(gè)重要差別是單元必須從已擦除狀態(tài)編程。也就是說,浮置柵極必須首先清除電荷。然后,編程向浮置柵極添加回期望的電荷量。其不支持將電荷的一部分從浮置柵極移除,以從較高的編程狀態(tài)到較低的編程狀態(tài)。這意味著,更新的數(shù)據(jù)不能重寫已有的數(shù)據(jù),且必須被寫到先前未寫的位置。另外,擦除要將所有電荷從浮置柵極中清空,且通?;ㄙM(fèi)相當(dāng)?shù)臅r(shí)間。由于這個(gè)原因,逐單元或甚至逐頁地擦除是麻煩的并且很慢。實(shí)際上,存儲器單元的陣列被劃分為大量存儲器單元的塊。如對于快閃EEPROM系統(tǒng)常見的,該塊是擦除的單位。S卩,每個(gè)塊包含一起擦除的存儲器單元的最小數(shù)量。雖然把要并行擦除的大量單元聚集到塊中將改善擦除性能,但是大尺寸的塊也需要處理大量更新的和廢舊的數(shù)據(jù)。就在擦除該塊之前,需要進(jìn)行垃圾收集來回收在塊中的非廢舊的數(shù)據(jù)。每個(gè)塊通常被劃分為大量頁。頁是編程或讀的單位。在一個(gè)實(shí)施例中,各個(gè)頁可以被劃分為段,且段可以包含作為基本編程操作一次被寫入的最小數(shù)量的單元。一頁或多頁數(shù)據(jù)通常被存儲在一行存儲器單元中。一頁可以存儲一個(gè)或多個(gè)扇區(qū)。扇區(qū)包括用戶數(shù)據(jù)和開銷數(shù)據(jù)(overhead data)。在多個(gè)陣列上分布的多個(gè)塊和頁也可以被一起操作作為元塊和元頁。如果它們在多個(gè)芯片上分布,則它們可以一起被操作作為巨大塊(megablock) 禾口巨大頁(megapage) ο多級單元(“MLC")存儲器劃分的例子已經(jīng)結(jié)合圖3描述其中存儲器單元每個(gè)存儲多位數(shù)據(jù)的非易失性存儲器。一個(gè)具體例子是從場效應(yīng)晶體管的陣列形成的存儲器,每個(gè)具有在其溝道區(qū)域和其控制柵極之間的電荷存儲層。電荷存儲層或單元可以存儲一定范圍的電荷,導(dǎo)致每個(gè)場效應(yīng)晶體管的閾值電壓的范圍??赡艿拈撝惦妷旱姆秶缭介撝荡?。當(dāng)該閾值窗被劃分為閾值電壓的子范圍或區(qū)時(shí),每個(gè)可分解區(qū)用于表示存儲器單元的不同存儲器狀態(tài)。可以由一個(gè)或多個(gè)二進(jìn)制位來編碼多存儲器狀態(tài)。例如,被劃分為四個(gè)區(qū)的存儲器單元可以支持可以被編碼為2 位數(shù)據(jù)的四個(gè)狀態(tài)。類似地,被劃分為八個(gè)區(qū)的存儲器單元可以支持可以被編碼為3位數(shù)據(jù)的八個(gè)狀態(tài),等等。所有位、全序列MLC編程圖6 (0)-6 (2)圖示編程4狀態(tài)存儲器單元的全體的例子。圖6 (0)圖示了可編程到分別表示存儲器狀態(tài)〃 0〃,“ 1〃,“ 2〃和〃 3〃的閾值電壓的四個(gè)不同分布的全體存儲器單元。圖6(1)圖示已擦除存儲器的"已擦除"閾值電壓的初始分布。圖6 )圖示了在已經(jīng)編程了許多存儲器單元之后的存儲器的例子?;旧希瑔卧跏嫉鼐哂?已擦除" 閾值電壓,且編程將把其移動到較高值,進(jìn)入由驗(yàn)證電平vVi、vV2、vV3*界的三個(gè)區(qū)之一中。 以此方式,每個(gè)存儲器單元可以被編程到三個(gè)已編程狀態(tài)"1〃,“ 2"和"3"之一,或在"已擦除"狀態(tài)下維持被未編程。隨著該存儲器得到更多的編程,如圖6(1)中示出的" 已擦除"狀態(tài)的初始分布將變得更窄,且由"0"狀態(tài)表示已擦除狀態(tài)。具有較低位和較高位的2位碼可以用于表示四個(gè)存儲器狀態(tài)的每個(gè)。例如,分別由〃 11〃,“ 01〃,“ 00〃 和〃 10〃 表示〃 0〃,“ 1〃,“ 2〃 和〃 3〃 狀態(tài)??梢酝ㄟ^在"全序列"模式下感測,來從存儲器讀取2位數(shù)據(jù),其中,通過分別在三個(gè)子遍中相對于讀分界閾值rVl,rV2和rV3感測來一起感測兩位。逐位MLC編程和讀圖7A-7E圖示了用給定的2位碼編碼的4狀態(tài)存儲器的編程和讀。圖7A圖示了當(dāng)每個(gè)存儲器單元使用2位碼存儲兩位數(shù)據(jù)時(shí)的4-狀態(tài)存儲器陣列的閾值電壓分布。這
10種2位碼已經(jīng)在美國專利No. 7,057,939中公開。圖7B圖示了使用2位碼在2遍編程機(jī)制中的較低頁編程(較低位)。容錯LM新碼本質(zhì)上避免了任何較高頁編程轉(zhuǎn)變通過任何中間狀態(tài)。因此,第一遍較低頁編程具有邏輯狀態(tài)(較高位,較低位)=(1,1),轉(zhuǎn)變到通過用大于DA但小于Dc的已編程閾值將"未編程"存儲器狀態(tài)"0"編程到由(x,0)指定的"中間"狀態(tài)而表示的某個(gè)中間狀態(tài)(X, 0)。圖7C圖示了使用2位碼在2遍編程機(jī)制中的較高頁編程(較高位)。在將較高頁位編程到〃 0〃的第二遍中,如果較低頁位處于〃 1",邏輯狀態(tài)(1,1)轉(zhuǎn)變到通過將〃 未編程"存儲器狀態(tài)"0"編程為"1"而表示的(0,1)。如果較低頁位處于"0",通過從〃中間〃狀態(tài)編程到〃 3〃來獲得邏輯狀態(tài)(0,0)。類似地,如果較高頁維持在〃 1〃, 而較低頁已經(jīng)編程到〃 0〃,則其將需要從〃中間〃狀態(tài)轉(zhuǎn)變到通過將〃中間〃狀態(tài)編程至IJ" 2"而表示的(l,0)o圖7D圖示辨別用2位碼編碼的4狀態(tài)存儲器的較低位所需的讀操作。首先進(jìn)行 readB操作來確定是否可以讀取LM標(biāo)記。如果是,則已經(jīng)編程了較高頁,且readB操作將正確地產(chǎn)生較低頁數(shù)據(jù)。另一方面,如果還沒有編程較高頁,將通過readA操作來讀取較低頁數(shù)據(jù)。圖7E圖示辨別用2位碼編碼的4狀態(tài)存儲器的較高位所需的讀操作。如從圖中清楚的,讀取的較高頁將需要分別相對于分界閾值電壓Da,Db和D。的readA,readB和readC
的三遍讀。在2位存儲器的逐位機(jī)制中,存儲器單元的一個(gè)物理頁將存儲兩個(gè)邏輯數(shù)據(jù)頁, 較低數(shù)據(jù)頁對應(yīng)于較低位,且較高數(shù)據(jù)頁對應(yīng)于較高頁。二進(jìn)制和MLC存儲器分區(qū)圖6和圖7圖示2位(也稱為〃 D2")存儲器的例子。如可以看到的,D2存儲器的閾值范圍或窗被劃分為指定4個(gè)狀態(tài)的4個(gè)區(qū)域。類似地,在D3中,每個(gè)單元存儲3位 (低、中間和較高位),且存在8個(gè)區(qū)域。在D4中,存在4位和16個(gè)區(qū)域等。隨著存儲器的有限閾值窗被劃分為更多區(qū)域,編程和讀取的分辨率將必需變得更精細(xì)。由于存儲器單元被配置以存儲多個(gè)位而產(chǎn)生兩個(gè)問題。首先,編程或讀在必須更準(zhǔn)確地編程或讀單元的閾值時(shí)將會較慢。實(shí)際上,實(shí)踐中,(在編程和讀中所需的)感測時(shí)間趨于隨著分區(qū)級的數(shù)量的平方而增加。其次,閃存隨著其使用老化而具有持久性問題。當(dāng)重復(fù)編程和擦除一個(gè)單元時(shí),通過遂穿跨越電介質(zhì)來向浮置柵極20 (見圖幻中和從浮置柵極20往返電荷。每次,一些電荷變得可以在電介質(zhì)中被捕獲,并且將修改單元的閾值。實(shí)際上,在使用中,閾值窗將逐漸變窄。因此,通過在容量、性能和可靠性之間的折衷設(shè)計(jì)MLC存儲器。相反,將看到,對于二進(jìn)制存儲器,存儲器的閾值窗僅被分區(qū)為兩個(gè)區(qū)域。這將允許最大的誤差余量。因此,在存儲器容量減少的同時(shí)進(jìn)行二進(jìn)制分區(qū)將提供最大的性能和可靠性。結(jié)合圖7描述的多遍、逐位編程和讀技術(shù)提供在MLC和二進(jìn)制分區(qū)之間的平滑轉(zhuǎn)變。在該情況下,如果該存儲器僅被編程了較低位,則其實(shí)際是二進(jìn)制分區(qū)的存儲器。雖然該方法沒有像單級單元(“SLC")存儲器的情況一樣完全最優(yōu)化閾值窗的范圍,但是其具有使用與MLC存儲器的較低位的操作中一樣的分界或感測級的優(yōu)點(diǎn)。如稍后將描述的,該方法允許MLC存儲器被"征用"用于用作二進(jìn)制存儲器,或反之亦然。但是,應(yīng)該理解,MLC 存儲器趨于具有更嚴(yán)格的使用規(guī)范。二講制存儲器和部分頁編稈被編程到一個(gè)存儲器單元的電荷存儲元件中的電荷產(chǎn)生擾動相鄰存儲器單元的電場的電場。這將影響實(shí)質(zhì)上是具有電荷存儲元件的場效應(yīng)晶體管的相鄰存儲器單元的特性。具體地,當(dāng)被感測時(shí),存儲器單元將顯得具有比其較少被擾動時(shí)要高的閾值電平(或被更多編程)。通常,如果存儲器單元在第一場環(huán)境下被編程驗(yàn)證且然后由于相鄰單元隨后被不同電荷編程因而在不同場環(huán)境下被再次讀取,讀的準(zhǔn)確性可以由于在相鄰浮置柵極之間的耦合而受影響,這被稱為"Yupin效應(yīng)"。由于在半導(dǎo)體存儲器中的更高的集成度,由于在存儲器單元之間的存儲的電荷導(dǎo)致的電場的擾動aupin效應(yīng))隨單元間的空間縮水而變得更加顯著。上面結(jié)合圖7描述的逐位MLC編程技術(shù)被設(shè)計(jì)以最小化來自沿著相同字線的單元的編程干擾。如可以從圖7B看出,在兩個(gè)編程遍中的第一遍中,單元的閾值被移動到閾值窗上的至多一半處。通過最后的一遍來超過第一遍的效果。在最后的一遍中,閾值僅被移動了全程的四分之一。換句話說,對于D2,在相鄰單元之間的電荷差被限制到其最大值的四分之一。對于D3,在三遍的情況下,最后的一遍將限制電荷差到其最大值的八分之一。但是,將通過部分頁編程來折衷逐位的多遍編程技術(shù)。一頁是作為一個(gè)單元一起被編程的、通常沿行或字線的存儲器單元的組。能夠在多個(gè)編程遍上單獨(dú)地編程一頁的非覆蓋部分。但是,由于不是頁的所有單元在最終的一遍中一起被編程,因此其可以在完成該頁之后在單元之間編程的電荷中產(chǎn)生大差別。因此,部分頁編程將導(dǎo)致更多的編程干擾,且將需要用于感測準(zhǔn)確性的更大的余量。在存儲器被配置為二進(jìn)制存儲器的情況下,該操作的余量寬于MLC的余量。在優(yōu)選實(shí)施例中,二進(jìn)制存儲器被配置以支持部分頁編程,其中,可以在該頁上的多個(gè)編程遍之一中單獨(dú)地編程一頁的非覆蓋部分??梢酝ㄟ^用大尺寸的頁進(jìn)行操作來改善編程和讀性能。但是,當(dāng)頁尺寸比主機(jī)的寫單元(通常512字節(jié)的扇區(qū))大得多時(shí),其使用將是低效的。 使用比一頁更精細(xì)的粒度進(jìn)行操作允許這種頁的更高效的使用。已經(jīng)給出了在二進(jìn)制相對MLC之間的例子。應(yīng)該理解,通常,相同的原理應(yīng)用于具有第一數(shù)量的級別的第一存儲器和具有多于第一存儲器的第二數(shù)量的級別的第二存儲器之間。邏輯和物理塊結(jié)構(gòu)圖8圖示了通過存儲器管理器管理的存儲器,所述存儲器管理器是駐留于控制器中的軟件組件。存儲器200被組織為塊,每個(gè)單元的塊是最小的擦除單位。取決于實(shí)施方式,存儲器系統(tǒng)可以以將塊集合形成為"元塊"以及"巨大塊"的大擦除單位來操作。為了方便,該描述將擦除單位稱為元塊,雖然,將理解,一些系統(tǒng)以通過元塊集合形成諸如“ 巨大塊"的擦除的更大單位來操作。主機(jī)80當(dāng)在文件系統(tǒng)或操作系統(tǒng)下運(yùn)行應(yīng)用時(shí)訪問存儲器200。通常,主機(jī)系統(tǒng)以邏輯扇區(qū)為單位尋址數(shù)據(jù),其中,例如,每個(gè)扇區(qū)可以包含512字節(jié)的數(shù)據(jù)。而且,主機(jī)通常以邏輯簇為單位從存儲器系統(tǒng)讀或向存儲器系統(tǒng)寫,其中每個(gè)簇由一個(gè)或多個(gè)邏輯扇區(qū)組成。在一些主機(jī)系統(tǒng)中,可以存在可選的主機(jī)側(cè)存儲器管理器以在主機(jī)處進(jìn)行較低級存儲器管理。在大多數(shù)情況下,在讀或?qū)懖僮髌陂g,主機(jī)80實(shí)質(zhì)上向存儲器系統(tǒng)90發(fā)出命令, 來讀或?qū)懓哂羞B續(xù)地址的邏輯數(shù)據(jù)扇區(qū)的串的段。在存儲器系統(tǒng)90的控制器100中實(shí)現(xiàn)存儲器側(cè)的存儲器管理器300,來管理在閃存200的元塊之間的主機(jī)邏輯扇區(qū)的數(shù)據(jù)的存儲和檢索。存儲器管理器包括前端系統(tǒng)310 和后端系統(tǒng)320。前端系統(tǒng)310包括主機(jī)接口 312。后端系統(tǒng)320包括多個(gè)軟件模塊,用于管理元塊的擦除、讀和寫操作。存儲器管理器也維持在閃存200和控制器RAM 130之間的與其操作相關(guān)的系統(tǒng)控制數(shù)據(jù)和目錄數(shù)據(jù)。圖9圖示了后端系統(tǒng)的軟件模塊。后端系統(tǒng)主要包括兩個(gè)功能模塊介質(zhì)(media) 管理層330和數(shù)據(jù)流和排序?qū)?40。介質(zhì)管理層330負(fù)責(zé)閃存元塊結(jié)構(gòu)中邏輯數(shù)據(jù)存儲的組織。稍后將在關(guān)于"介質(zhì)管理層"的部分中提供更多細(xì)節(jié)。數(shù)據(jù)流和排序?qū)?40負(fù)責(zé)在前端系統(tǒng)和閃存之間的數(shù)據(jù)扇區(qū)的排序和傳輸。該層包括命令排序器342、低級排序器344和快閃控制層346。稍后將在關(guān)于"低級系統(tǒng)說明" 的部分中提供更多細(xì)節(jié)。存儲器管理器300優(yōu)選地在控制器100中實(shí)現(xiàn)。其將從主機(jī)接收的邏輯地址翻譯為存儲器陣列內(nèi)的邏輯地址,在該邏輯地址中實(shí)際地存儲所述數(shù)據(jù),然后其記錄這些地址翻譯。圖10A(i)_10A(iii)示意性地圖示在邏輯組和元塊之間的映射。物理存儲器的元塊具有用于存儲一個(gè)邏輯組的N個(gè)邏輯數(shù)據(jù)扇區(qū)的N個(gè)物理扇區(qū)。圖10A(i)示出來自邏輯組LGi的數(shù)據(jù),其中,所述邏輯扇區(qū)處于連續(xù)邏輯順序0,1,...,N-1。圖10A(ii)示出以相同邏輯順序存儲在元塊中的相同數(shù)據(jù)。元塊當(dāng)以該方式存儲時(shí)被稱為"順序的"。通常, 元塊可以以不同順序存儲數(shù)據(jù),在該情況下,該元塊被稱為"無序的"或"混亂的"。在邏輯組的最低地址和其所映射的元塊的最低地址之間存在偏移。在該情況下, 邏輯扇區(qū)地址從元塊的邏輯組的底部回到頂部環(huán)繞成環(huán)。例如,在圖lOA(iii),該元塊在其第一位置以邏輯扇區(qū)k的數(shù)據(jù)開始存儲。當(dāng)?shù)竭_(dá)最后的邏輯扇區(qū)N-I時(shí),其環(huán)繞到扇區(qū) 0,且最終在其最后的邏輯扇區(qū)中存儲與邏輯扇區(qū)k-Ι相關(guān)的數(shù)據(jù)。在優(yōu)選實(shí)施例中,使用頁標(biāo)簽來標(biāo)識任何偏移,諸如標(biāo)識在元塊的第一物理扇區(qū)中存儲的數(shù)據(jù)的起始邏輯扇區(qū)地址。當(dāng)兩個(gè)塊僅頁標(biāo)簽而不同時(shí),這兩個(gè)塊將被認(rèn)為以相類似的順序存儲它們的邏輯扇區(qū)。圖IOB示意性地圖示在邏輯組和元塊之間的映射。每個(gè)邏輯組380被映射到唯一的元塊370,除了當(dāng)前正更新其中的數(shù)據(jù)的少量邏輯組。在已經(jīng)更新邏輯組之后,其可以被映射到不同的元塊。在邏輯到物理目錄的組中維持映射信息,這將稍后更詳細(xì)描述。附屬文件系統(tǒng)該部分呈現(xiàn)了對于使用雙存儲器堆的存儲器系統(tǒng)使用附屬文件系統(tǒng)。為了改善性能,控制器對于每個(gè)堆執(zhí)行后端線程,且通過分離的接口與每個(gè)堆通信。這些堆之一具有用于管理存儲器的主文件系統(tǒng),但是,在附屬文件系統(tǒng)中的其他堆中存儲一些重要文件的拷貝。附屬文件系統(tǒng)通過提供兩個(gè)線程訪問在正常系統(tǒng)操作期間需要的文件的拷貝、而不用線程需要僅依賴于主文件系統(tǒng)來改善性能。這些堆的每個(gè)可以由于一個(gè)或多個(gè)芯片來構(gòu)成,或可以是可以在單個(gè)芯片上單獨(dú)操作的半自動陣列;雖然在此對兩個(gè)存儲器堆和控制器的后端的對應(yīng)數(shù)量的后端線程的情況進(jìn)行討論。也將在使用NAND類型架構(gòu)的存儲器陣列的存儲卡的背景下給出以下的討論,但是容易擴(kuò)展至架構(gòu)和非卡的用途,諸如嵌入式系統(tǒng)、SSD等。雖然以下討論可以基于各種示例的實(shí)施例來提供具體例子,但是在此的技術(shù)和結(jié)構(gòu)可以相當(dāng)通常地應(yīng)用于具有控制器和可以獨(dú)立操作的多個(gè)堆的存儲器系統(tǒng),其中,這些堆包括可以用于存儲控制器可以用來管理該存儲器系統(tǒng)的系統(tǒng)數(shù)據(jù)的某個(gè)數(shù)量的非易失性存儲器,不管是快閃的還是其他類型的。除了上述的其他之外,這些可以包括在以下 US專利、專利公開和申請?zhí)栔谐尸F(xiàn)的各種存儲器系統(tǒng)7,480,766 ;US-2005-0154819-A1 ; US-2007-0061581-A1 ;US-2007-0061597-A1 ;US-2007-0113030-A1 ;US-2008-0155178-A1 ; US-2008-0155228-A1 ;US-2008-0155176-A1 ;US-2008-0155177-A1 ;US-2008-0155227-A1 ; US-2008-0155175-A1 ;12/348,819 ;12/348,825 ;12/348,891 ;12/348,895 ;12/348,899 ; 和 61/142,620。圖11是圖示使用附屬文件系統(tǒng)的示例的兩堆實(shí)施例的相關(guān)元件中的一些的方框圖。主機(jī)401連接到存儲器系統(tǒng)403,其在該例子中具有控制器電路411和存儲器堆BANK 0421-0和BANK 1421-1。該控制器通過主機(jī)接口 413與主機(jī)通信,且通過對應(yīng)的接口 BANK INT 421與每個(gè)堆通信。在該固件控制中,控制器411對于每個(gè)堆執(zhí)行前端部分415和后端線程417。在示例的實(shí)施例中,存在單個(gè)主機(jī)接口 413,且因此傳輸該數(shù)據(jù)的電路也是單個(gè)的。在前端線程413中的邏輯在控制器電路與后端固件線程017-0,417-1) —起運(yùn)行,且為后端固件線程分配工作。該前端可以獨(dú)立地向單個(gè)堆分配任務(wù),或在這些堆之間分割任務(wù),例如,對于大寫命令,部分?jǐn)?shù)據(jù)可以被寫在一個(gè)堆中,且剩余部分被寫在其他堆中,以通過并行來增加寫性能。雖然未明顯示出,在圖11中,控制器將通常具有用于數(shù)據(jù)傳輸?shù)囊粋€(gè)大連續(xù)緩沖器,其然后對不同堆而邏輯地分離。當(dāng)傳輸數(shù)據(jù)時(shí),然后,意圖用于特定堆的數(shù)據(jù)傳輸?shù)狡溥壿嫹蛛x的緩沖器中。替換的實(shí)施例可以使用物理上不同的緩沖器。大量存儲器系統(tǒng)對于存儲器電路使用多個(gè)堆,以增加并行性,且因此增加性能。 這可以通過包括多個(gè)堆接口以及還通過包括用于每個(gè)堆的后端線程來進(jìn)一步改善,如圖 11所示。如圖11所示,這通過向堆提供文件系統(tǒng)的拷貝來擴(kuò)展,且主文件系統(tǒng)被保持在一個(gè)堆中(在此稱為BANK 0421-0),附屬拷貝被保持在其他堆中,由此允許每個(gè)后端線程 (417-0,417-1)在常規(guī)存儲器操作期間獨(dú)立地訪問其自己的拷貝(分別在421-0,421-1 中)。(應(yīng)該注意,雖然圖11涉及固件控制,將理解,可以以硬件、軟件、固件或這些的各種組合來實(shí)現(xiàn)各種功能,如在現(xiàn)有技術(shù)中熟悉的)通常,先前的布置將僅維持文件系統(tǒng)的單個(gè)拷貝(或單個(gè)活動的拷貝)??紤]雙堆架構(gòu)且包含具有對應(yīng)的軟件控制的兩個(gè)硬件堆的情況,軟件控制大部分可以并行執(zhí)行。如果僅存儲了所有文件系統(tǒng)信息的單個(gè)拷貝將存儲在一個(gè)堆(例如堆0)上,僅堆0可以(直接)訪問該信息。該文件系統(tǒng)將存儲項(xiàng)目,諸如配置信息、固件微代碼和覆蓋代碼。在系統(tǒng)中的各種模塊訪問文件系統(tǒng)來提取它們需要的信息。除了存儲上述的物理鏈接信息的覆蓋代碼和鏈接表信息之外,在卡引導(dǎo)/通電/復(fù)位時(shí)間期間讀取在文件系統(tǒng)中存儲的所有信息。在該時(shí)間期間,僅堆0線程417-0是活動的,且因此沒有競爭、性能降級或在兩個(gè)塊線程之間的死鎖的問題;但是,在卡操作的隨后的正常過程期間,覆蓋和鏈接表信息需要由所有堆基于它們的個(gè)別需求而訪問。在引導(dǎo)之后,一旦所有堆正在運(yùn)行中,不具有文件系統(tǒng)信息的任何堆將需要中斷堆0且請求堆0來獲得需要的信息。該布置對該系統(tǒng)施加了各種風(fēng)險(xiǎn)。這些中的第一風(fēng)險(xiǎn)是,從文件系統(tǒng)尋找到的信息是連續(xù)的處理,且不是一次請求。定期地中斷堆0將折衷該系統(tǒng)性能。其他是一個(gè)系統(tǒng)的結(jié)果,其中,通過兩個(gè)(或更通常地所有)堆同時(shí)執(zhí)行一些或所有主機(jī)請求。雖然任務(wù)可以在堆之間分割,但是這些堆是相互之間依賴的,且等待任務(wù)完成。堆0可以等待堆1在變?yōu)榭臻e之前完成其任務(wù);但是,堆1可能需要訪問文件系統(tǒng),且因此中斷和請求該堆0。這是死鎖的情況,因?yàn)槎?將不能處理該請求,因?yàn)槠涞却?來完成主機(jī)操作。隨后,對于其固件使用文件系統(tǒng)來存儲非易失性控制信息的存儲器系統(tǒng),且當(dāng)使用多個(gè)通道(或堆)來訪問固件時(shí),該文件系統(tǒng)的單個(gè)拷貝變?yōu)樵L問瓶頸。附屬文件系統(tǒng)的引入通過建立由次級堆需要的文件系統(tǒng)的重要部分的只讀拷貝來提供關(guān)于該問題的方式。 雖然這增加了需要被留出用于控制數(shù)據(jù)的非易失性存儲器的量,且可用于用戶數(shù)據(jù)的量相應(yīng)地降低,在假定這種系統(tǒng)中的容量當(dāng)前增加且持續(xù)增加的情況下,對于得到的性能改善, 這將是可接受的價(jià)格。因此,在此呈現(xiàn)的一個(gè)主要方面是在雙或多堆系統(tǒng)中的第二或其他附加的堆上的某些文件的只讀拷貝的建立和存儲。附屬文件系統(tǒng)是主文件系統(tǒng)的子集。在示例的實(shí)施例中,附屬文件系統(tǒng)包含在標(biāo)準(zhǔn)的、后引導(dǎo)的操作過程中需要的所有文件,且僅主系統(tǒng)具有僅用于在卡引導(dǎo)/通電/復(fù)位時(shí)間期間使用的文件的拷貝,因?yàn)槌跏嫉貎H一個(gè)堆在這些時(shí)間中操作。由于這些線程請求文件,文件系統(tǒng)模塊可以基于堆來路由這些調(diào)用。返回到圖11,維持附屬文件系統(tǒng)通過在正??ú僮髌陂g對所有堆引入這些堆需要的文件的拷貝來解決這些問題。因此,BANK 1421-1包括除了引導(dǎo)塊和用戶、或主機(jī)、數(shù)據(jù)以外的附屬文件系統(tǒng)。除了引導(dǎo)塊和用戶數(shù)據(jù)以外,BANK 0421-0還具有主文件系統(tǒng)。一些重要文件的拷貝可以存儲在其他堆中的特殊區(qū)域中,并且那些拷貝的位置信息存儲在主文件系統(tǒng)中。為了改善系統(tǒng)可靠性,每個(gè)堆通常也將維持主或附屬(如適當(dāng)?shù)脑?文件系統(tǒng)的備份拷貝。然后,每個(gè)后端線程417-0和417-1對于使用文件系統(tǒng)的其各個(gè)拷貝的對應(yīng)的堆執(zhí)行其功能(讀/操作、控制操作、各種后臺和低級操作等,如在先前部分和各種引用文獻(xiàn)中討論的)。在優(yōu)選實(shí)施例中,在低級卡格式化期間,特殊的附屬文件系統(tǒng)區(qū)域在不包含文件系統(tǒng)的主拷貝的一個(gè)堆或多個(gè)堆中創(chuàng)建。只要主文件系統(tǒng)被寫入了,則所需的文件被標(biāo)識且拷貝到附屬文件系統(tǒng)中。當(dāng)拷貝時(shí),附屬文件的位置信息被存儲在主文件系統(tǒng)目錄中。在卡引導(dǎo)/通電/復(fù)位時(shí)間期間讀取該文件系統(tǒng)目錄,且可以由任何堆來訪問該文件系統(tǒng)目錄。當(dāng)堆1線程417-1請求在特殊文件之一中包含的文件系統(tǒng)信息時(shí),文件系統(tǒng)模塊可以識別該請求,且從在BANK 1 421-1中的附屬文件系統(tǒng)中存儲的文件拷貝獲取該信息。 其不中斷BANK 0 421-0,其甚至不知道這種請求。類似主文件系統(tǒng),附屬文件系統(tǒng)優(yōu)選地包含其包含的所有文件的兩個(gè)拷貝,來提供容錯。由于在附屬文件系統(tǒng)中存儲的信息是固定的且不隨卡的壽命而改變,因此附屬文件系統(tǒng)不允許對其包含的文件的任何更新。
15
圖12描述根據(jù)示例實(shí)施例的在堆0中的主文件系統(tǒng)和在堆1中的附屬文件系統(tǒng)的元素。這兩個(gè)堆將具有引導(dǎo)塊以及用戶數(shù)據(jù)區(qū)域和各種其他控制數(shù)據(jù),諸如在先前部分或引用的文獻(xiàn)中討論的。主和附屬文件系統(tǒng)兩者都具有在常規(guī)操作期間需要的文件、諸如鏈接表文件和各種覆蓋文件。由于堆0是在引導(dǎo)處理期間初始活動的堆,因此主文件系統(tǒng)包含固件文件、覆蓋文件、快閃RISC代碼文件(其中該控制器通過該代碼文件與存儲器堆交互)、其控制RISC代碼文件(這是用于與主機(jī)接口來傳輸數(shù)據(jù)的控制器)、鏈接表文件 (指定在存儲器中的元塊被如何邏輯鏈接)和各種配置文件。在該布置下,則該控制器能夠獨(dú)立地且同時(shí)地執(zhí)行多個(gè)后端固件線程(軟件線程),其中每個(gè)后端固件線程負(fù)責(zé)管理(執(zhí)行)在其被分配的存儲器堆上發(fā)生的讀/寫操作等。在示例實(shí)施例中,每個(gè)后端固件線程通過專用快閃RISC控制器(另一控制器電路,每個(gè)堆一個(gè))向其存儲器堆發(fā)出指令。針對覆蓋,在引導(dǎo)期間,固件代碼被加載到控制器電路的RAM區(qū)域中。由于該RAM 通常在尺寸上相對受限制,因此該系統(tǒng)通常以具有不能完全容納到該RAM區(qū)域中的代碼而結(jié)束。為了解決該問題,通常該代碼被分為兩個(gè)部分主代碼,其需要總是存在于RAM中;以及覆蓋代碼,其可以按需要加載到RAM中和從RAM載出。該主代碼被存儲在稱為固件文件的文件中,且覆蓋代碼被存儲在覆蓋文件中。主代碼,由于其總是在RAM中可用,因此其在引導(dǎo)期間僅加載一次;但是,覆蓋代碼的部分可能在卡的正常執(zhí)行期間被任何固件需要,且加載這種代碼的需求是線程特有的,因此優(yōu)選地在兩個(gè)堆中存儲該覆蓋文件。已經(jīng)為了例示和描述來呈現(xiàn)了本發(fā)明的前述的詳細(xì)描述。不意圖窮舉或限制本發(fā)明為所公開的精確的形式。在上述教導(dǎo)下,許多修改和變化是可能的。選擇所描述的實(shí)施例以便最佳地說明本發(fā)明的原理及其實(shí)際的應(yīng)用,從而使得本領(lǐng)域技術(shù)人員能夠在各種實(shí)施例中且用適合于所構(gòu)思的具體用途的各種修改最佳地使用本發(fā)明。意圖本發(fā)明的范圍被附于此的權(quán)利要求所定義。
權(quán)利要求
1.一種非易失性存儲器系統(tǒng),包括非易失性存儲器電路,具有多個(gè)可獨(dú)立操作的堆,每個(gè)堆包括一個(gè)或多個(gè)非易失性存儲器陣列以存儲用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù);以及控制器電路,管理在存儲器電路上的用戶的存儲,包括多個(gè)堆接口,每個(gè)連接到相應(yīng)的堆,以在控制器和對應(yīng)的堆之間傳輸數(shù)據(jù);處理電路,執(zhí)行多個(gè)線程,每個(gè)線程獨(dú)立且同時(shí)管理對應(yīng)的一個(gè)堆,其中,所述堆中的第一堆存儲包括文件系統(tǒng)的系統(tǒng)數(shù)據(jù),通過所述文件系統(tǒng),對應(yīng)的線程管理第一堆,且其他堆中的每個(gè)存儲包括文件系統(tǒng)的一部分的拷貝的系統(tǒng)數(shù)據(jù),通過所述文件系統(tǒng)的一部分的拷貝,對應(yīng)的線程管理該堆。
2.根據(jù)權(quán)利要求1的非易失性存儲器系統(tǒng),其中,所述處理電路包括每個(gè)線程的專用控制器,用于通過經(jīng)由相應(yīng)堆接口向?qū)?yīng)的堆發(fā)出指令來管理對應(yīng)的堆。
3.根據(jù)權(quán)利要求1的非易失性存儲器系統(tǒng),其中,所述文件系統(tǒng)的一部分的拷貝是只讀拷貝。
4.根據(jù)權(quán)利要求1的非易失性存儲器系統(tǒng),其中,所述非易失性存儲器陣列由物理擦除塊構(gòu)成,且其中,所述控制器管理使用邏輯上鏈接為合成結(jié)構(gòu)的多個(gè)塊的結(jié)構(gòu)的存儲器, 其中,所述文件系統(tǒng)和文件系統(tǒng)的所述部分都包括通過其構(gòu)成合成結(jié)構(gòu)的鏈接信息。
5.根據(jù)權(quán)利要求1的非易失性存儲器系統(tǒng),其中,所述文件系統(tǒng)和文件系統(tǒng)的所述部分都包括用于控制對應(yīng)的堆的一個(gè)或多個(gè)覆蓋文件。
6.根據(jù)權(quán)利要求1的非易失性存儲器系統(tǒng),其中,所述文件系統(tǒng)包括在引導(dǎo)處理中使用的、不包括在文件系統(tǒng)的所述部分中的信息。
7.根據(jù)權(quán)利要求6的非易失性存儲器系統(tǒng),其中,所述在引導(dǎo)處理中使用的、不包括在文件系統(tǒng)的所述部分中的信息包括固件文件。
8.根據(jù)權(quán)利要求7的非易失性存儲器系統(tǒng),其中,所述在引導(dǎo)處理中使用的、不包括在文件系統(tǒng)的所述部分中的信息還包括代碼文件,用于通過線程來管理各堆且用于接口連接到存儲器系統(tǒng)所附接到的主機(jī)。
9.根據(jù)權(quán)利要求1的非易失性存儲器系統(tǒng),其中,所述控制器還包括主機(jī)接口,以在存儲器系統(tǒng)和非易失性存儲器系統(tǒng)連接到的主機(jī)之間傳輸數(shù)據(jù),且其中,所述處理電路還執(zhí)行管理控制器和主機(jī)之間的交互的前端線程。
10.根據(jù)權(quán)利要求9的非易失性存儲器系統(tǒng),其中,所述前端線程為管理各堆的多個(gè)線程分配任務(wù)。
11.根據(jù)權(quán)利要求1的非易失性存儲器系統(tǒng),其中,所述堆中的第一堆存儲文件系統(tǒng)的多個(gè)拷貝,且其他堆的每個(gè)存儲文件系統(tǒng)的所述部分的拷貝。
12.—種操作非易失性存儲器系統(tǒng)的方法,所述存儲器系統(tǒng)包括具有多個(gè)可獨(dú)立操作的堆的非易失性存儲器電路以及管理在存儲器電路上的用戶的存儲的控制器電路,所述方法包括在非易失性存儲器中在堆中的第一堆上存儲包括文件系統(tǒng)的系統(tǒng)數(shù)據(jù);在非易失性存儲器中在堆中的第二堆上存儲包括文件系統(tǒng)的一部分的拷貝的系統(tǒng)數(shù)據(jù);在控制器上執(zhí)行第一線程,以根據(jù)所述文件系統(tǒng)來管理第一堆;以及與執(zhí)行第一線程同時(shí)地,在控制器上執(zhí)行第二線程以根據(jù)獨(dú)立于在第一堆中存儲的文件系統(tǒng)的、文件系統(tǒng)的拷貝來管理第二堆。
13.根據(jù)權(quán)利要求12的方法,其中,所述第一和第二線程的每個(gè)在各自的專用控制器上執(zhí)行,且通過對應(yīng)的堆接口分別與第一和第二堆通信。
14.根據(jù)權(quán)利要求12的方法,其中,所述文件系統(tǒng)的一部分的拷貝是只讀拷貝。
15.根據(jù)權(quán)利要求12的方法,其中,所述非易失性存儲器陣列由物理擦除塊構(gòu)成,且其中,所述控制器管理使用邏輯上鏈接為合成結(jié)構(gòu)的多個(gè)塊的結(jié)構(gòu)的存儲器,其中,所述文件系統(tǒng)和文件系統(tǒng)的所述部分都包括通過其構(gòu)成合成結(jié)構(gòu)的鏈接信息。
16.根據(jù)權(quán)利要求12的方法,其中,所述文件系統(tǒng)和文件系統(tǒng)的所述部分都包括用于控制對應(yīng)的堆的一個(gè)或多個(gè)覆蓋文件。
17.根據(jù)權(quán)利要求12的方法,還包括在控制器上執(zhí)行第二線程之前,使用在第一堆上存儲的文件系統(tǒng)中的、不包括在文件系統(tǒng)的所述部分中的信息來進(jìn)行由第一線程執(zhí)行的引導(dǎo)處理。
18.根據(jù)權(quán)利要求17的方法,其中,所述在引導(dǎo)處理中使用的、不包括在文件系統(tǒng)的所述部分中的信息包括固件文件。
19.根據(jù)權(quán)利要求17的方法,其中,所述在引導(dǎo)處理中使用的、不包括在文件系統(tǒng)的所述部分中的信息還包括代碼文件,用于通過線程來管理各堆且用于接口連接到存儲器系統(tǒng)所附接到的主機(jī)。
20.根據(jù)權(quán)利要求12的方法,其中,所述控制器還包括主機(jī)接口,以在存儲器系統(tǒng)和非易失性存儲器系統(tǒng)連接到的主機(jī)之間傳輸數(shù)據(jù),所述方法還包括在控制器上執(zhí)行管理控制器和主機(jī)之間的交互的前端線程。
21.根據(jù)權(quán)利要求20的方法,其中,所述前端線程為管理各堆的多個(gè)線程分配任務(wù)。
全文摘要
提供了一種多堆非易失性存儲器系統(tǒng)。所述堆中的第一堆具有文件系統(tǒng)的主拷貝,且其他堆的每個(gè)具有文件系統(tǒng)的附屬拷貝??刂破鞯暮蠖斯碳τ诿總€(gè)堆執(zhí)行線程。在引導(dǎo)處理之后,在正常存儲器操作期間,每個(gè)線程可以使用其自己的文件系統(tǒng)的拷貝來操作,而不需要中斷其他線程以便訪問該文件系統(tǒng)。
文檔編號G06F17/30GK102483685SQ201080036294
公開日2012年5月30日 申請日期2010年6月9日 優(yōu)先權(quán)日2009年6月16日
發(fā)明者C.M.施羅特, S.拉杰戈帕蘭 申請人:桑迪士克科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1