專利名稱:具有附屬文件系統的多堆非易失性存儲器系統的制作方法
技術領域:
本申請涉及諸如半導體閃存的可重編程非易失性存儲器系統的操作,且更具體地,涉及使用多個堆的結構的這種系統的管理。
背景技術:
能夠非易失性地存儲電荷的固態存儲器、尤其是被包裝為小形狀因子卡的EEPROM 和快閃EEPROM的形式,近來已經變為在各種移動和手持設備、特別是信息用具和消費者電子產品中的存儲的選擇。不像也是固態存儲器的RAM(隨機存取存儲器),閃存是非易失性的,且即使在掉電之后也維持其存儲的數據。而且,不像R0M(只讀存儲器),閃存是可重寫的,類似于盤存儲設備。盡管有較高的成本,閃存也逐漸用于大容量存儲應用。基于諸如硬盤驅動器和軟盤的旋轉磁介質的傳統大容量存儲器不適用于移動和手持環境。這是因為盤驅動器趨于有大的體積,因此易于機械故障,且具有高延遲時間和高功率需求。這些不期望的屬性使得基于盤的存儲器在大多數移動和便攜應用中不實際。另一方面,嵌入式和可移除卡的形式的閃存都由于其小尺寸、低功耗、高速度和高可靠性特性而理想地適用于移動和手持環境。閃速EEPROM類似于EEPROM (電可擦除可編程只讀存儲器)之處在于其是可以被擦除且使得新數據寫入或"編程"到其存儲器單元中的非易失性存儲器。兩者都使用位于在源極和漏極區域之間的半導體襯底中的溝道區域上以場效應晶體管結構的浮置(未連接)導電柵極。然后,在浮置柵極上提供控制柵極。晶體管的閾值電壓特性受浮置柵極上保留的電荷量控制。也就是說,對于在浮置柵極上的給定的電荷電平,存在在晶體管"導通" 以允許在其源極和漏極區域之間導電之前必須施加到該控制柵極的對應電壓(閾值)。具體地,諸如閃速EEPROM的閃存允許同時擦除存儲器單元的全部多個塊。浮置柵極可以保持一個電荷范圍,且因此可以被編程到閾值電壓窗內的任何閾值電壓電平。通過該器件的最小和最大閾值電平來劃界閾值電壓窗的尺寸,這轉而對應于可以被編程到浮置柵極上的該電荷范圍。該閾值窗通常取決于存儲器器件的特征、操作條件和歷史。在該窗內的每個不同、可分解的閾值電壓電平范圍可以原則上用于指定該單元的明確的存儲器狀態。用作存儲器單元的晶體管通常被兩個機制之一編程到"已編程"狀態。在"熱電子注入"中,施加到漏極的高電壓加速電子跨過襯底溝道區域。同時,施加到控制柵極的高電壓將熱電子拉過薄柵極電介質到浮置柵極上。在"遂穿注入"中,相對于襯底向控制柵極施加高電壓。以此方式,將電子從襯底拉到中間的浮置柵極。雖然歷史上已經使用術語 “編程”來描述通過向存儲器單元的初始擦除的電荷存儲單元注入電子以便改變存儲器狀態來向存儲器中寫,但是現在已經與諸如"寫"或"記錄"的更多通用術語可互換使用。該存儲器器件可以被多個機制擦除。對于EEPR0M,存儲器單元可通過相對于控制柵極向襯底施加高電壓以便誘使浮置柵極中的電子遂穿過薄氧化物到襯底溝道區域(即, R)wler-Nordheim遂穿)而被電擦除。通常,EEPROM可逐字節擦除。對于快閃EEPR0M,該
4存儲器可一次全部或一次一個或多個最小可擦除塊地被電擦除,其中,最小可擦除塊可以由一個或多個扇區構成,且每個扇區可以存儲512字節或更多的數據。該存儲器器件通常包括可以被安裝到卡上的一個或多個存儲器芯片。每個存儲器芯片包括由諸如解碼器和擦除、讀和寫電路的外圍電路支持的存儲器單元的陣列。更復雜的存儲器器件具有進行智能且較高級存儲器操作和接口連接(interfacing)的控制器。存在當今正使用的許多商業成功的非易失性固態存儲器器件。這些存儲器器件可以是快閃EEPR0M,或可以使用其他類型的非易失性存儲器單元。在美國專利號5,070, 032, 5,095,344,5,315,541,5,343,063 和 5,661,053,5,313,421 以及 6,222,762 中給出閃存和制造它們的系統和方法的例子。具體地,在美國專利號5,570,315,5,903,495,6,046,935 中描述具有NAND串結構的閃存器件。而且,也從具有用于存儲電荷的介電層的存儲器單元制造非易失性存儲器器件。取代先前描述的導電浮置柵極元件,使用介電層。使用介電存儲元件的這種存儲器器件已經由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介電層跨越源極和漏極擴散之間的溝道而延伸。一個數據位的電荷被局部化在與漏極相鄰的介電層,且另一數據位的電荷被局部化在與源極相鄰的介電層。例如,美國專利5,768,192和6,011,725公開了具有在兩個二氧化硅層之間夾著的捕獲電介質(trapping dielectric)的非易失性存儲器單元。通過分開地讀取電介質內的空間上分開的電荷存儲區的二進制狀態來實現多狀態數據存儲。為了改善讀和編程性能,并行讀或編程在陣列中的多個電荷存儲元件或存儲器晶體管。因此,存儲器元件的"頁"被一起讀或編程。在現有存儲器架構中,一行通常包含若干交織的頁,或其可以組成一頁。一頁的所有存儲器元件將一起被讀或編程。在閃存系統中,擦除操作可以花費比讀和編程操作長的量級的時間。因此,期望具有足夠尺寸的擦除塊。以此方式,在存儲器單元的大集合上攤銷該擦除時間。閃存的屬性預示了數據必須被寫到已擦除的存儲器位置。如果來自主機的某一邏輯地址的數據要更新,則一種方式是在相同物理存儲器位置中重寫該更新數據。也就是說, 邏輯到物理地址的映射未改變。但是,這將意味著,包含了物理位置的整個擦除塊將必須被首先擦除,然后用更新的數據來重寫。該更新方法效率低,因為它需要擦除并重寫整個擦除塊,尤其在要更新的數據僅占據擦除塊的小部分時。這還將導致存儲器塊的擦除再循環的較高的頻率,鑒于該類存儲器器件的有限容忍度角度來說這是不期望的。通過主機系統、存儲器系統、其他電子系統的外部接口傳輸的數據被尋址,且被映射到閃存系統的物理位置中。通常,由系統生成或接收的數據文件的地址被映射到根據數據的邏輯塊(此后稱為"LBA接口")為系統建立的連續邏輯地址空間的不同范圍。地址空間的范圍通常足夠用于覆蓋該系統能夠處理的全地址范圍。在一個例子中,磁盤存儲驅動器通過該邏輯地址空間而與計算機或其他主機系統通信。該地址空間具有足夠尋址盤驅動器的整個數據存儲能力的范圍。閃存系統最通常以可移除地連接到諸如個人計算機、照相機等的各種主機的存儲器卡或閃盤的形式提供,但也可以被嵌入到這種主機系統中。當向存儲器寫數據時,該主機通常向扇區、簇或其他數據單位分配在存儲器系統的連續虛擬地址空間內的唯一的邏輯地址。類似于盤操作系統(D0S),主機向存儲器系統的邏輯地址空間內的地址寫數據,和從該地址讀取數據。存儲器系統內的控制器將從主機接收的邏輯地址翻譯為存儲器陣列內的邏輯地址,所述數據在該邏輯地址實際地存儲,然后該控制器記錄這些地址翻譯。存儲器系統的數據存儲容量至少與在對于存儲器系統定義的整個邏輯地址空間上可尋址的數據量一樣大。在當前商用的閃存系統中,擦除單元的尺寸已經增加到足夠的存儲器單元的塊來存儲多個數據扇區。事實上,許多數據頁被存儲在一個塊中,且一頁可以存儲多個數據扇區。另外,兩個或更多塊通常與元塊一起操作,且這種塊的頁邏輯地鏈接到了一起作為元頁。數據的頁或元頁被一起寫和讀,這可以包括許多數據扇區,因此增加了操作的并行性。 隨著這種大容量操作單元的出現,帶來的挑戰是高效地操作它們。為了方便說明,除非特別指出,意圖在此使用的術語“塊”取決于在特定系統中是否使用了元塊而指的是擦除的塊單位或多個塊“元塊”。類似地,在此對“頁”的引用,取決于系統配置,可以指的是單個塊內的編程單位或元塊內的“元頁”。當使用到存儲器系統的當前普遍的LBA接口時,由存儲器連接到的主機生成的文件被分配接口的邏輯地址空間內的唯一地址。然后,該存儲器系統通常在邏輯地址空間和存儲器的物理塊的頁之間映射數據。存儲器系統記錄邏輯地址空間如何映射到物理存儲器,但主機并不知道這些。主機記錄其數據文件在邏輯地址空間內的地址,但存儲器系統在幾乎不知道或不知道該映射的情況下操作。管理閃存系統的另一問題與系統控制和目錄數據有關。在各種存儲器操作過程期間產生并訪問數據。因此,其高效地處理和迅速的訪問將直接影響性能。將期望在閃存中維持該類數據,因為閃存的目的是存儲且是非易失性的。但是,由于在控制器和閃存之間的中間的文件管理系統,不能直接地訪問數據。而且,系統控制和目錄數據趨于活躍且是碎片狀的,其不利于在具有大尺寸塊擦除的系統中存儲。傳統地,在控制器RAM中設置該類數據, 由此允許由控制器來直接訪問。在存儲器器件通電之后,初始化處理使得閃存能被掃描以便編譯必要的系統控制和目錄信息以置于控制器RAM中。該處理費時且需要控制器RAM容量,隨著日益增加的閃存容量更是如此。通常,存在持續的搜索以改善非易失性存儲器系統的容量和性能。具體地,這可以包括改善在存儲器系統中的并行的量和效率的方法。
發明內容
根據本發明的總體方面,提供了一種非易失性存儲器系統,具有控制器電路和具有多個可獨立操作的堆的非易失性存儲器電路。每個堆包括一個或多個非易失性存儲器陣列用于存儲用戶數據和系統數據。控制器電路管理在存儲器電路上的用戶數據的存儲,且包括多個堆接口,每個連接到相應的堆以在控制器和對應的堆之間傳輸數據,以及包括處理電路,執行多個線程,每個線程獨立且同時管理對應的一個堆。所述堆中的第一堆存儲包括文件系統的系統數據,通過該文件系統,對應的線程管理第一堆,且其他堆中的每個存儲包括文件系統的一部分的拷貝的系統數據,通過該文件系統的一部分的拷貝,對應的線程管理該堆。在其他方面中,提供操作非易失性存儲器系統的對應方法,所述存儲器系統包括具有多個可獨立操作的堆的非易失性存儲器電路以及管理在存儲器電路上的用戶的存儲的控制器電路。該方法包括在非易失性存儲器中在堆中的第一堆上存儲包括文件系統的系統數據;在非易失性存儲器中在堆中的第二堆上存儲包括文件系統的一部分的拷貝的系統數據;在控制器上執行第一線程,以根據文件系統來管理第一堆;以及與執行第一線程同時地,在控制器上執行第二線程以根據獨立于在第一堆中存儲的文件系統的、文件系統的拷貝來管理第二堆。在本發明的示例例子的以下描述中包括本發明的各種方面、優點、特征和實施例, 其描述應該與附圖結合。在此引用的所有專利、專利申請、文章、其他公開、文檔和事物為了所有目的通過其整體而合并于此。到在任一并入的公開、文檔或事物和本申請之間的術語的定義或使用中的任何不一致或沖突的程度,在本申請中的應該優先。
圖1示意性地圖示了適用于實現本發明的存儲器系統的主要硬件組件。圖2示意性地圖示了非易失性存儲器單元。圖3圖示了在浮置柵極可以選擇性地在任意時間存儲的四個電荷Q1-Q4的源極-漏極電流Id和控制柵極電壓Vra之間的關系。圖4A示意性地圖示了被組織為NAND串的存儲器單元的串。圖4B圖示了由諸如圖4A中示出的NAND串50構成的存儲器單元的NAND陣列210 的例子。圖5圖示了在例如正被并行感測或編程的NAND配置中組織的存儲器單元的一頁。圖6 (0)-6 O)圖示編程4狀態存儲器單元的全體的例子。圖7A-7E圖示了用給定的2位碼編碼的4狀態存儲器的編程和讀。圖8圖示了通過存儲器管理器管理的存儲器,所述存儲器控制器是駐留于控制器中的軟件組件。圖9圖示了后端系統的軟件模塊。圖10A(i)_10A(iii)示意性地圖示了在邏輯組和元塊之間的映射。圖IOB示意性地圖示了在邏輯組和元塊之間的映射。圖11是使用附屬文件系統的多堆存儲器系統的例子的方框圖。圖12提供在圖11的實施例中的主和附屬(satellite)文件系統中存儲的元素的
一些細節。
具體實施例方式存儲器系統圖1到圖7提供其中可以實現或例示本發明的各個方面的示例存儲器系統。圖8到圖10圖示用于實現本發明的各個方面的優選存儲器和塊結構。圖11和圖12圖示了在多堆系統中的附屬文件系統的使用。圖1示意性地圖示了適用于實現本發明的存儲器系統的主要硬件組件。存儲器系統90通常通過主機接口與主機80 —起操作。存儲器系統通常為存儲器卡或嵌入式存儲器系統的形式。存儲器系統90包括其操作被控制器100控制的存儲器200。存儲器200包括在一個或多個集成電路芯片上分布的非易失性存儲器單元的一個或多個陣列。控制器100包括接口 110、處理器120、可選的協處理器121、ROM 122(只讀存儲器)、RAM 130(隨機存取存儲器)和可選的可編程非易失性存儲器124。接口 110具有將控制器接口連接到主機的一個組件和接口連接到存儲器200的另一組件。在非易失性ROM 122和/或可選的非易失性存儲器1 中存儲的固件提供代碼,用于處理器120實現控制器100的功能。可以由處理器120或可選的協處理器121來處理錯誤校正碼。在替換的實施例中,通過狀態機(未示出)來實現控制器100。在另一實施例中,在主機中實現控制器100。物理存儲器結構圖2示意性地圖示了非易失性存儲器單元。存儲器單元10可以由具有諸如浮置柵極或介電層的電荷存儲單元20的場效應晶體管實現。存儲器單元還包括源極14、漏極 16和控制柵極30。存在當今正使用的許多商業成功的非易失性固態存儲器器件。這些存儲器器件可以使用不同類型的存儲器單元,每個類型具有一個或多個電荷存儲元件。通常,非易失性存儲器單元包括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 單元、其在存儲器系統中的使用和制造它們的方法的例子。具體地,在美國專利no. 5,570,315, 5,903,495,6,046,935中描述具有NAND單元結構的存儲器器件的例子。同樣,使用電介質存儲元件的存儲器器件的例子已經由以下文獻描述=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ο實際上,通常通過當向控制柵極施加參考電壓時感測跨過單元的源極和漏極的導電電流來讀取該單元的存儲器狀態。因此,對于單元的浮置柵極上的每個給定的電荷,可以檢測針對固定參考控制柵極電壓的對應的導電電流。類似地,可編程到浮置柵極上的電荷范圍定義了對應的閾值電壓窗或對應的導電電流窗。或者,代替檢測在分區的電流窗之間的導電電流,能夠在控制柵極處為測試之下的給定存儲器狀態設置閾值電壓,并檢測導電電流是低于還是高于閾值電流。在一個實施方式中,通過檢查導電電流通過位線的電容而放電的速率來實現針對閾值電流檢測導電電流。圖3圖示了在浮置柵極可以選擇性地在任意時間存儲的四個不同電荷Q1-Q4的源極-漏極電流Id和控制柵極電壓Vra之間的關系。四個實線Id相對Vra曲線表示能夠在存儲器單元的浮置柵極上被編程的四個可能的電荷電平,分別對應于四個可能的存儲器狀態。 作為例子,全體單元的閾值電壓窗的范圍可以從0. 5V到3. 5V。可以通過以每個為0. 5V的間隔將閾值窗劃分為五個區域來分界分別表示一個已擦除狀體和六個已編程狀態的七個可能的存儲器狀態〃 0〃,“ 1〃,“ 2〃,“ 3〃,“ 4〃,“ 5〃,“ 6〃。例如,如果如所示地使用2μ A的參考電流IREF,則用Ql編程的單元可以被視為在存儲器狀態"1", 因為其曲線與Ikef在由Vra = 0. 5V和1. OV分界的閾值窗的區域中交叉。類似地,Q4處于存儲器狀態"5"。如可以從上述描述看見的,使存儲器單元存儲的狀態越多,其閾值窗劃分得越精細。例如,存儲器器件可以具有擁有范圍從-1.5V到5V的閾值窗的存儲器單元。這提供了 6. 5V的最大寬度。如果該存儲器單元要存儲16個狀態,每個狀態可以在閾值窗中占據從 200mV到300mV。這將需要在編程和讀操作中的更高的精度以便能夠實現需要的分辨率。圖4A示意性地圖示了被組織為NAND串的存儲器單元的串。NAND串50由其源極和漏極菊花鏈接的一系列存儲器晶體管M1,M2,. . . Mn (例如η = 4,8,16或更高)構成。一對選擇晶體管S1、S2控制存儲器晶體管鏈分別經由NAND串的源極端討和漏極端56與外部的連接。在存儲器陣列中,當導通源極選擇晶體管Sl時,源極端耦合于源極線(見圖4B)。 類似地,當導通漏極選擇晶體管S2時,NAND串的漏極端被耦合于存儲器陣列的位線。在該鏈中的每個存儲器晶體管10用作存儲器單元。其具有電荷存儲元件20來存儲給定量的電荷以便表示意圖的存儲器狀態。每個存儲器晶體管的控制柵極30允許對讀和寫操作的控制。如將在圖4B中看見的,一行NAND串的對應存儲器晶體管的控制柵極30都被連接到相同字線。類似地,選擇晶體管Si、S2的每個的控制柵極32分別經由其源極端M和漏極端 56提供對NAND串的控制訪問。類似地,一行NAND串的對應選擇晶體管的控制柵極32都被連接到相同選擇線。當在編程期間讀或驗證在NAND串內的被尋址的存儲器晶體管10時,其控制柵極 30被供應了適當的電壓。同時,通過對其控制柵極施加足夠的電壓來完全導通NAND串50 中的剩余的未尋址的存儲器晶體管。以此方式,有效地創建從單獨的存儲器晶體管的源極到NAND串的源極端M的導電路徑,且類似地對于單獨的存儲器晶體管的漏極到該單元的漏極端56建立導電路徑。在美國專利no. 5,570,315,5,903,495,6,046,935中描述了具有這種NAND串結構的存儲器器件。圖4B圖示了由例如圖4A中示出的NAND串50構成的存儲器單元的NAND陣列210 的例子。沿著NAND串的每列,諸如位線36的位線耦合于每個NAND串的漏極端56。沿著 NAND串的每堆,諸如源極線34的源極線耦合于每個NAND串的源極端54。同樣,沿著在NAND 串的堆中的存儲器單元的行的控制柵極被連接到諸如字線42的字線。沿著在NAND串的堆中的選擇晶體管的行的控制柵極被連接到諸如選擇線44的選擇線。NAND串的堆中的存儲器單元的整行可以由NAND串的堆的字線和選擇線上的適當的電壓來尋址。當在NAND串內的存儲器晶體管正被讀取時,經由相關字線來硬導通在該串中的剩余存儲器晶體管,以便流過該串的電流基本上取決于在正被讀取的單元中存儲的電荷電平。圖5圖示了例如在正被并行感測或編程的NAND配置中組織的存儲器單元的一頁。 圖5實質上示出了在圖4B的存儲器陣列210中的NAND串50的堆,其中圖4A中明顯地示出了每個NAND串的細節。諸如頁60的"頁"是可并行感測或編程的一組存儲器單元。這通過感測放大器212的對應頁來實現。感測的結果被鎖存在對應的一組鎖存器214中。每個傳感放大器可以經由位線耦合于NAND串。該頁通過共同連接到字線42的該頁的單元的控制柵極和可由感測放大器經由位線36訪問的每個單元來使能。作為一個例子,當分別感測或編程單元60的頁時,感測電壓或編程電壓分別被施加到公共字線WL3以及適當的電壓被施加到位線。存儲器的物理組織在閃存和這類存儲器之間的一個重要差別是單元必須從已擦除狀態編程。也就是說,浮置柵極必須首先清除電荷。然后,編程向浮置柵極添加回期望的電荷量。其不支持將電荷的一部分從浮置柵極移除,以從較高的編程狀態到較低的編程狀態。這意味著,更新的數據不能重寫已有的數據,且必須被寫到先前未寫的位置。另外,擦除要將所有電荷從浮置柵極中清空,且通常花費相當的時間。由于這個原因,逐單元或甚至逐頁地擦除是麻煩的并且很慢。實際上,存儲器單元的陣列被劃分為大量存儲器單元的塊。如對于快閃EEPROM系統常見的,該塊是擦除的單位。S卩,每個塊包含一起擦除的存儲器單元的最小數量。雖然把要并行擦除的大量單元聚集到塊中將改善擦除性能,但是大尺寸的塊也需要處理大量更新的和廢舊的數據。就在擦除該塊之前,需要進行垃圾收集來回收在塊中的非廢舊的數據。每個塊通常被劃分為大量頁。頁是編程或讀的單位。在一個實施例中,各個頁可以被劃分為段,且段可以包含作為基本編程操作一次被寫入的最小數量的單元。一頁或多頁數據通常被存儲在一行存儲器單元中。一頁可以存儲一個或多個扇區。扇區包括用戶數據和開銷數據(overhead data)。在多個陣列上分布的多個塊和頁也可以被一起操作作為元塊和元頁。如果它們在多個芯片上分布,則它們可以一起被操作作為巨大塊(megablock) 禾口巨大頁(megapage) ο多級單元(“MLC")存儲器劃分的例子已經結合圖3描述其中存儲器單元每個存儲多位數據的非易失性存儲器。一個具體例子是從場效應晶體管的陣列形成的存儲器,每個具有在其溝道區域和其控制柵極之間的電荷存儲層。電荷存儲層或單元可以存儲一定范圍的電荷,導致每個場效應晶體管的閾值電壓的范圍。可能的閾值電壓的范圍跨越閾值窗。當該閾值窗被劃分為閾值電壓的子范圍或區時,每個可分解區用于表示存儲器單元的不同存儲器狀態。可以由一個或多個二進制位來編碼多存儲器狀態。例如,被劃分為四個區的存儲器單元可以支持可以被編碼為2 位數據的四個狀態。類似地,被劃分為八個區的存儲器單元可以支持可以被編碼為3位數據的八個狀態,等等。所有位、全序列MLC編程圖6 (0)-6 (2)圖示編程4狀態存儲器單元的全體的例子。圖6 (0)圖示了可編程到分別表示存儲器狀態〃 0〃,“ 1〃,“ 2〃和〃 3〃的閾值電壓的四個不同分布的全體存儲器單元。圖6(1)圖示已擦除存儲器的"已擦除"閾值電壓的初始分布。圖6 )圖示了在已經編程了許多存儲器單元之后的存儲器的例子。基本上,單元初始地具有"已擦除" 閾值電壓,且編程將把其移動到較高值,進入由驗證電平vVi、vV2、vV3*界的三個區之一中。 以此方式,每個存儲器單元可以被編程到三個已編程狀態"1〃,“ 2"和"3"之一,或在"已擦除"狀態下維持被未編程。隨著該存儲器得到更多的編程,如圖6(1)中示出的" 已擦除"狀態的初始分布將變得更窄,且由"0"狀態表示已擦除狀態。具有較低位和較高位的2位碼可以用于表示四個存儲器狀態的每個。例如,分別由〃 11〃,“ 01〃,“ 00〃 和〃 10〃 表示〃 0〃,“ 1〃,“ 2〃 和〃 3〃 狀態。可以通過在"全序列"模式下感測,來從存儲器讀取2位數據,其中,通過分別在三個子遍中相對于讀分界閾值rVl,rV2和rV3感測來一起感測兩位。逐位MLC編程和讀圖7A-7E圖示了用給定的2位碼編碼的4狀態存儲器的編程和讀。圖7A圖示了當每個存儲器單元使用2位碼存儲兩位數據時的4-狀態存儲器陣列的閾值電壓分布。這
10種2位碼已經在美國專利No. 7,057,939中公開。圖7B圖示了使用2位碼在2遍編程機制中的較低頁編程(較低位)。容錯LM新碼本質上避免了任何較高頁編程轉變通過任何中間狀態。因此,第一遍較低頁編程具有邏輯狀態(較高位,較低位)=(1,1),轉變到通過用大于DA但小于Dc的已編程閾值將"未編程"存儲器狀態"0"編程到由(x,0)指定的"中間"狀態而表示的某個中間狀態(X, 0)。圖7C圖示了使用2位碼在2遍編程機制中的較高頁編程(較高位)。在將較高頁位編程到〃 0〃的第二遍中,如果較低頁位處于〃 1",邏輯狀態(1,1)轉變到通過將〃 未編程"存儲器狀態"0"編程為"1"而表示的(0,1)。如果較低頁位處于"0",通過從〃中間〃狀態編程到〃 3〃來獲得邏輯狀態(0,0)。類似地,如果較高頁維持在〃 1〃, 而較低頁已經編程到〃 0〃,則其將需要從〃中間〃狀態轉變到通過將〃中間〃狀態編程至IJ" 2"而表示的(l,0)o圖7D圖示辨別用2位碼編碼的4狀態存儲器的較低位所需的讀操作。首先進行 readB操作來確定是否可以讀取LM標記。如果是,則已經編程了較高頁,且readB操作將正確地產生較低頁數據。另一方面,如果還沒有編程較高頁,將通過readA操作來讀取較低頁數據。圖7E圖示辨別用2位碼編碼的4狀態存儲器的較高位所需的讀操作。如從圖中清楚的,讀取的較高頁將需要分別相對于分界閾值電壓Da,Db和D。的readA,readB和readC
的三遍讀。在2位存儲器的逐位機制中,存儲器單元的一個物理頁將存儲兩個邏輯數據頁, 較低數據頁對應于較低位,且較高數據頁對應于較高頁。二進制和MLC存儲器分區圖6和圖7圖示2位(也稱為〃 D2")存儲器的例子。如可以看到的,D2存儲器的閾值范圍或窗被劃分為指定4個狀態的4個區域。類似地,在D3中,每個單元存儲3位 (低、中間和較高位),且存在8個區域。在D4中,存在4位和16個區域等。隨著存儲器的有限閾值窗被劃分為更多區域,編程和讀取的分辨率將必需變得更精細。由于存儲器單元被配置以存儲多個位而產生兩個問題。首先,編程或讀在必須更準確地編程或讀單元的閾值時將會較慢。實際上,實踐中,(在編程和讀中所需的)感測時間趨于隨著分區級的數量的平方而增加。其次,閃存隨著其使用老化而具有持久性問題。當重復編程和擦除一個單元時,通過遂穿跨越電介質來向浮置柵極20 (見圖幻中和從浮置柵極20往返電荷。每次,一些電荷變得可以在電介質中被捕獲,并且將修改單元的閾值。實際上,在使用中,閾值窗將逐漸變窄。因此,通過在容量、性能和可靠性之間的折衷設計MLC存儲器。相反,將看到,對于二進制存儲器,存儲器的閾值窗僅被分區為兩個區域。這將允許最大的誤差余量。因此,在存儲器容量減少的同時進行二進制分區將提供最大的性能和可靠性。結合圖7描述的多遍、逐位編程和讀技術提供在MLC和二進制分區之間的平滑轉變。在該情況下,如果該存儲器僅被編程了較低位,則其實際是二進制分區的存儲器。雖然該方法沒有像單級單元(“SLC")存儲器的情況一樣完全最優化閾值窗的范圍,但是其具有使用與MLC存儲器的較低位的操作中一樣的分界或感測級的優點。如稍后將描述的,該方法允許MLC存儲器被"征用"用于用作二進制存儲器,或反之亦然。但是,應該理解,MLC 存儲器趨于具有更嚴格的使用規范。二講制存儲器和部分頁編稈被編程到一個存儲器單元的電荷存儲元件中的電荷產生擾動相鄰存儲器單元的電場的電場。這將影響實質上是具有電荷存儲元件的場效應晶體管的相鄰存儲器單元的特性。具體地,當被感測時,存儲器單元將顯得具有比其較少被擾動時要高的閾值電平(或被更多編程)。通常,如果存儲器單元在第一場環境下被編程驗證且然后由于相鄰單元隨后被不同電荷編程因而在不同場環境下被再次讀取,讀的準確性可以由于在相鄰浮置柵極之間的耦合而受影響,這被稱為"Yupin效應"。由于在半導體存儲器中的更高的集成度,由于在存儲器單元之間的存儲的電荷導致的電場的擾動aupin效應)隨單元間的空間縮水而變得更加顯著。上面結合圖7描述的逐位MLC編程技術被設計以最小化來自沿著相同字線的單元的編程干擾。如可以從圖7B看出,在兩個編程遍中的第一遍中,單元的閾值被移動到閾值窗上的至多一半處。通過最后的一遍來超過第一遍的效果。在最后的一遍中,閾值僅被移動了全程的四分之一。換句話說,對于D2,在相鄰單元之間的電荷差被限制到其最大值的四分之一。對于D3,在三遍的情況下,最后的一遍將限制電荷差到其最大值的八分之一。但是,將通過部分頁編程來折衷逐位的多遍編程技術。一頁是作為一個單元一起被編程的、通常沿行或字線的存儲器單元的組。能夠在多個編程遍上單獨地編程一頁的非覆蓋部分。但是,由于不是頁的所有單元在最終的一遍中一起被編程,因此其可以在完成該頁之后在單元之間編程的電荷中產生大差別。因此,部分頁編程將導致更多的編程干擾,且將需要用于感測準確性的更大的余量。在存儲器被配置為二進制存儲器的情況下,該操作的余量寬于MLC的余量。在優選實施例中,二進制存儲器被配置以支持部分頁編程,其中,可以在該頁上的多個編程遍之一中單獨地編程一頁的非覆蓋部分。可以通過用大尺寸的頁進行操作來改善編程和讀性能。但是,當頁尺寸比主機的寫單元(通常512字節的扇區)大得多時,其使用將是低效的。 使用比一頁更精細的粒度進行操作允許這種頁的更高效的使用。已經給出了在二進制相對MLC之間的例子。應該理解,通常,相同的原理應用于具有第一數量的級別的第一存儲器和具有多于第一存儲器的第二數量的級別的第二存儲器之間。邏輯和物理塊結構圖8圖示了通過存儲器管理器管理的存儲器,所述存儲器管理器是駐留于控制器中的軟件組件。存儲器200被組織為塊,每個單元的塊是最小的擦除單位。取決于實施方式,存儲器系統可以以將塊集合形成為"元塊"以及"巨大塊"的大擦除單位來操作。為了方便,該描述將擦除單位稱為元塊,雖然,將理解,一些系統以通過元塊集合形成諸如“ 巨大塊"的擦除的更大單位來操作。主機80當在文件系統或操作系統下運行應用時訪問存儲器200。通常,主機系統以邏輯扇區為單位尋址數據,其中,例如,每個扇區可以包含512字節的數據。而且,主機通常以邏輯簇為單位從存儲器系統讀或向存儲器系統寫,其中每個簇由一個或多個邏輯扇區組成。在一些主機系統中,可以存在可選的主機側存儲器管理器以在主機處進行較低級存儲器管理。在大多數情況下,在讀或寫操作期間,主機80實質上向存儲器系統90發出命令, 來讀或寫包含具有連續地址的邏輯數據扇區的串的段。在存儲器系統90的控制器100中實現存儲器側的存儲器管理器300,來管理在閃存200的元塊之間的主機邏輯扇區的數據的存儲和檢索。存儲器管理器包括前端系統310 和后端系統320。前端系統310包括主機接口 312。后端系統320包括多個軟件模塊,用于管理元塊的擦除、讀和寫操作。存儲器管理器也維持在閃存200和控制器RAM 130之間的與其操作相關的系統控制數據和目錄數據。圖9圖示了后端系統的軟件模塊。后端系統主要包括兩個功能模塊介質(media) 管理層330和數據流和排序層340。介質管理層330負責閃存元塊結構中邏輯數據存儲的組織。稍后將在關于"介質管理層"的部分中提供更多細節。數據流和排序層340負責在前端系統和閃存之間的數據扇區的排序和傳輸。該層包括命令排序器342、低級排序器344和快閃控制層346。稍后將在關于"低級系統說明" 的部分中提供更多細節。存儲器管理器300優選地在控制器100中實現。其將從主機接收的邏輯地址翻譯為存儲器陣列內的邏輯地址,在該邏輯地址中實際地存儲所述數據,然后其記錄這些地址翻譯。圖10A(i)_10A(iii)示意性地圖示在邏輯組和元塊之間的映射。物理存儲器的元塊具有用于存儲一個邏輯組的N個邏輯數據扇區的N個物理扇區。圖10A(i)示出來自邏輯組LGi的數據,其中,所述邏輯扇區處于連續邏輯順序0,1,...,N-1。圖10A(ii)示出以相同邏輯順序存儲在元塊中的相同數據。元塊當以該方式存儲時被稱為"順序的"。通常, 元塊可以以不同順序存儲數據,在該情況下,該元塊被稱為"無序的"或"混亂的"。在邏輯組的最低地址和其所映射的元塊的最低地址之間存在偏移。在該情況下, 邏輯扇區地址從元塊的邏輯組的底部回到頂部環繞成環。例如,在圖lOA(iii),該元塊在其第一位置以邏輯扇區k的數據開始存儲。當到達最后的邏輯扇區N-I時,其環繞到扇區 0,且最終在其最后的邏輯扇區中存儲與邏輯扇區k-Ι相關的數據。在優選實施例中,使用頁標簽來標識任何偏移,諸如標識在元塊的第一物理扇區中存儲的數據的起始邏輯扇區地址。當兩個塊僅頁標簽而不同時,這兩個塊將被認為以相類似的順序存儲它們的邏輯扇區。圖IOB示意性地圖示在邏輯組和元塊之間的映射。每個邏輯組380被映射到唯一的元塊370,除了當前正更新其中的數據的少量邏輯組。在已經更新邏輯組之后,其可以被映射到不同的元塊。在邏輯到物理目錄的組中維持映射信息,這將稍后更詳細描述。附屬文件系統該部分呈現了對于使用雙存儲器堆的存儲器系統使用附屬文件系統。為了改善性能,控制器對于每個堆執行后端線程,且通過分離的接口與每個堆通信。這些堆之一具有用于管理存儲器的主文件系統,但是,在附屬文件系統中的其他堆中存儲一些重要文件的拷貝。附屬文件系統通過提供兩個線程訪問在正常系統操作期間需要的文件的拷貝、而不用線程需要僅依賴于主文件系統來改善性能。這些堆的每個可以由于一個或多個芯片來構成,或可以是可以在單個芯片上單獨操作的半自動陣列;雖然在此對兩個存儲器堆和控制器的后端的對應數量的后端線程的情況進行討論。也將在使用NAND類型架構的存儲器陣列的存儲卡的背景下給出以下的討論,但是容易擴展至架構和非卡的用途,諸如嵌入式系統、SSD等。雖然以下討論可以基于各種示例的實施例來提供具體例子,但是在此的技術和結構可以相當通常地應用于具有控制器和可以獨立操作的多個堆的存儲器系統,其中,這些堆包括可以用于存儲控制器可以用來管理該存儲器系統的系統數據的某個數量的非易失性存儲器,不管是快閃的還是其他類型的。除了上述的其他之外,這些可以包括在以下 US專利、專利公開和申請號中呈現的各種存儲器系統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是圖示使用附屬文件系統的示例的兩堆實施例的相關元件中的一些的方框圖。主機401連接到存儲器系統403,其在該例子中具有控制器電路411和存儲器堆BANK 0421-0和BANK 1421-1。該控制器通過主機接口 413與主機通信,且通過對應的接口 BANK INT 421與每個堆通信。在該固件控制中,控制器411對于每個堆執行前端部分415和后端線程417。在示例的實施例中,存在單個主機接口 413,且因此傳輸該數據的電路也是單個的。在前端線程413中的邏輯在控制器電路與后端固件線程017-0,417-1) —起運行,且為后端固件線程分配工作。該前端可以獨立地向單個堆分配任務,或在這些堆之間分割任務,例如,對于大寫命令,部分數據可以被寫在一個堆中,且剩余部分被寫在其他堆中,以通過并行來增加寫性能。雖然未明顯示出,在圖11中,控制器將通常具有用于數據傳輸的一個大連續緩沖器,其然后對不同堆而邏輯地分離。當傳輸數據時,然后,意圖用于特定堆的數據傳輸到其邏輯分離的緩沖器中。替換的實施例可以使用物理上不同的緩沖器。大量存儲器系統對于存儲器電路使用多個堆,以增加并行性,且因此增加性能。 這可以通過包括多個堆接口以及還通過包括用于每個堆的后端線程來進一步改善,如圖 11所示。如圖11所示,這通過向堆提供文件系統的拷貝來擴展,且主文件系統被保持在一個堆中(在此稱為BANK 0421-0),附屬拷貝被保持在其他堆中,由此允許每個后端線程 (417-0,417-1)在常規存儲器操作期間獨立地訪問其自己的拷貝(分別在421-0,421-1 中)。(應該注意,雖然圖11涉及固件控制,將理解,可以以硬件、軟件、固件或這些的各種組合來實現各種功能,如在現有技術中熟悉的)通常,先前的布置將僅維持文件系統的單個拷貝(或單個活動的拷貝)。考慮雙堆架構且包含具有對應的軟件控制的兩個硬件堆的情況,軟件控制大部分可以并行執行。如果僅存儲了所有文件系統信息的單個拷貝將存儲在一個堆(例如堆0)上,僅堆0可以(直接)訪問該信息。該文件系統將存儲項目,諸如配置信息、固件微代碼和覆蓋代碼。在系統中的各種模塊訪問文件系統來提取它們需要的信息。除了存儲上述的物理鏈接信息的覆蓋代碼和鏈接表信息之外,在卡引導/通電/復位時間期間讀取在文件系統中存儲的所有信息。在該時間期間,僅堆0線程417-0是活動的,且因此沒有競爭、性能降級或在兩個塊線程之間的死鎖的問題;但是,在卡操作的隨后的正常過程期間,覆蓋和鏈接表信息需要由所有堆基于它們的個別需求而訪問。在引導之后,一旦所有堆正在運行中,不具有文件系統信息的任何堆將需要中斷堆0且請求堆0來獲得需要的信息。該布置對該系統施加了各種風險。這些中的第一風險是,從文件系統尋找到的信息是連續的處理,且不是一次請求。定期地中斷堆0將折衷該系統性能。其他是一個系統的結果,其中,通過兩個(或更通常地所有)堆同時執行一些或所有主機請求。雖然任務可以在堆之間分割,但是這些堆是相互之間依賴的,且等待任務完成。堆0可以等待堆1在變為空閑之前完成其任務;但是,堆1可能需要訪問文件系統,且因此中斷和請求該堆0。這是死鎖的情況,因為堆0將不能處理該請求,因為其等待堆1來完成主機操作。隨后,對于其固件使用文件系統來存儲非易失性控制信息的存儲器系統,且當使用多個通道(或堆)來訪問固件時,該文件系統的單個拷貝變為訪問瓶頸。附屬文件系統的引入通過建立由次級堆需要的文件系統的重要部分的只讀拷貝來提供關于該問題的方式。 雖然這增加了需要被留出用于控制數據的非易失性存儲器的量,且可用于用戶數據的量相應地降低,在假定這種系統中的容量當前增加且持續增加的情況下,對于得到的性能改善, 這將是可接受的價格。因此,在此呈現的一個主要方面是在雙或多堆系統中的第二或其他附加的堆上的某些文件的只讀拷貝的建立和存儲。附屬文件系統是主文件系統的子集。在示例的實施例中,附屬文件系統包含在標準的、后引導的操作過程中需要的所有文件,且僅主系統具有僅用于在卡引導/通電/復位時間期間使用的文件的拷貝,因為初始地僅一個堆在這些時間中操作。由于這些線程請求文件,文件系統模塊可以基于堆來路由這些調用。返回到圖11,維持附屬文件系統通過在正常卡操作期間對所有堆引入這些堆需要的文件的拷貝來解決這些問題。因此,BANK 1421-1包括除了引導塊和用戶、或主機、數據以外的附屬文件系統。除了引導塊和用戶數據以外,BANK 0421-0還具有主文件系統。一些重要文件的拷貝可以存儲在其他堆中的特殊區域中,并且那些拷貝的位置信息存儲在主文件系統中。為了改善系統可靠性,每個堆通常也將維持主或附屬(如適當的話)文件系統的備份拷貝。然后,每個后端線程417-0和417-1對于使用文件系統的其各個拷貝的對應的堆執行其功能(讀/操作、控制操作、各種后臺和低級操作等,如在先前部分和各種引用文獻中討論的)。在優選實施例中,在低級卡格式化期間,特殊的附屬文件系統區域在不包含文件系統的主拷貝的一個堆或多個堆中創建。只要主文件系統被寫入了,則所需的文件被標識且拷貝到附屬文件系統中。當拷貝時,附屬文件的位置信息被存儲在主文件系統目錄中。在卡引導/通電/復位時間期間讀取該文件系統目錄,且可以由任何堆來訪問該文件系統目錄。當堆1線程417-1請求在特殊文件之一中包含的文件系統信息時,文件系統模塊可以識別該請求,且從在BANK 1 421-1中的附屬文件系統中存儲的文件拷貝獲取該信息。 其不中斷BANK 0 421-0,其甚至不知道這種請求。類似主文件系統,附屬文件系統優選地包含其包含的所有文件的兩個拷貝,來提供容錯。由于在附屬文件系統中存儲的信息是固定的且不隨卡的壽命而改變,因此附屬文件系統不允許對其包含的文件的任何更新。
15
圖12描述根據示例實施例的在堆0中的主文件系統和在堆1中的附屬文件系統的元素。這兩個堆將具有引導塊以及用戶數據區域和各種其他控制數據,諸如在先前部分或引用的文獻中討論的。主和附屬文件系統兩者都具有在常規操作期間需要的文件、諸如鏈接表文件和各種覆蓋文件。由于堆0是在引導處理期間初始活動的堆,因此主文件系統包含固件文件、覆蓋文件、快閃RISC代碼文件(其中該控制器通過該代碼文件與存儲器堆交互)、其控制RISC代碼文件(這是用于與主機接口來傳輸數據的控制器)、鏈接表文件 (指定在存儲器中的元塊被如何邏輯鏈接)和各種配置文件。在該布置下,則該控制器能夠獨立地且同時地執行多個后端固件線程(軟件線程),其中每個后端固件線程負責管理(執行)在其被分配的存儲器堆上發生的讀/寫操作等。在示例實施例中,每個后端固件線程通過專用快閃RISC控制器(另一控制器電路,每個堆一個)向其存儲器堆發出指令。針對覆蓋,在引導期間,固件代碼被加載到控制器電路的RAM區域中。由于該RAM 通常在尺寸上相對受限制,因此該系統通常以具有不能完全容納到該RAM區域中的代碼而結束。為了解決該問題,通常該代碼被分為兩個部分主代碼,其需要總是存在于RAM中;以及覆蓋代碼,其可以按需要加載到RAM中和從RAM載出。該主代碼被存儲在稱為固件文件的文件中,且覆蓋代碼被存儲在覆蓋文件中。主代碼,由于其總是在RAM中可用,因此其在引導期間僅加載一次;但是,覆蓋代碼的部分可能在卡的正常執行期間被任何固件需要,且加載這種代碼的需求是線程特有的,因此優選地在兩個堆中存儲該覆蓋文件。已經為了例示和描述來呈現了本發明的前述的詳細描述。不意圖窮舉或限制本發明為所公開的精確的形式。在上述教導下,許多修改和變化是可能的。選擇所描述的實施例以便最佳地說明本發明的原理及其實際的應用,從而使得本領域技術人員能夠在各種實施例中且用適合于所構思的具體用途的各種修改最佳地使用本發明。意圖本發明的范圍被附于此的權利要求所定義。
權利要求
1.一種非易失性存儲器系統,包括非易失性存儲器電路,具有多個可獨立操作的堆,每個堆包括一個或多個非易失性存儲器陣列以存儲用戶數據和系統數據;以及控制器電路,管理在存儲器電路上的用戶的存儲,包括多個堆接口,每個連接到相應的堆,以在控制器和對應的堆之間傳輸數據;處理電路,執行多個線程,每個線程獨立且同時管理對應的一個堆,其中,所述堆中的第一堆存儲包括文件系統的系統數據,通過所述文件系統,對應的線程管理第一堆,且其他堆中的每個存儲包括文件系統的一部分的拷貝的系統數據,通過所述文件系統的一部分的拷貝,對應的線程管理該堆。
2.根據權利要求1的非易失性存儲器系統,其中,所述處理電路包括每個線程的專用控制器,用于通過經由相應堆接口向對應的堆發出指令來管理對應的堆。
3.根據權利要求1的非易失性存儲器系統,其中,所述文件系統的一部分的拷貝是只讀拷貝。
4.根據權利要求1的非易失性存儲器系統,其中,所述非易失性存儲器陣列由物理擦除塊構成,且其中,所述控制器管理使用邏輯上鏈接為合成結構的多個塊的結構的存儲器, 其中,所述文件系統和文件系統的所述部分都包括通過其構成合成結構的鏈接信息。
5.根據權利要求1的非易失性存儲器系統,其中,所述文件系統和文件系統的所述部分都包括用于控制對應的堆的一個或多個覆蓋文件。
6.根據權利要求1的非易失性存儲器系統,其中,所述文件系統包括在引導處理中使用的、不包括在文件系統的所述部分中的信息。
7.根據權利要求6的非易失性存儲器系統,其中,所述在引導處理中使用的、不包括在文件系統的所述部分中的信息包括固件文件。
8.根據權利要求7的非易失性存儲器系統,其中,所述在引導處理中使用的、不包括在文件系統的所述部分中的信息還包括代碼文件,用于通過線程來管理各堆且用于接口連接到存儲器系統所附接到的主機。
9.根據權利要求1的非易失性存儲器系統,其中,所述控制器還包括主機接口,以在存儲器系統和非易失性存儲器系統連接到的主機之間傳輸數據,且其中,所述處理電路還執行管理控制器和主機之間的交互的前端線程。
10.根據權利要求9的非易失性存儲器系統,其中,所述前端線程為管理各堆的多個線程分配任務。
11.根據權利要求1的非易失性存儲器系統,其中,所述堆中的第一堆存儲文件系統的多個拷貝,且其他堆的每個存儲文件系統的所述部分的拷貝。
12.—種操作非易失性存儲器系統的方法,所述存儲器系統包括具有多個可獨立操作的堆的非易失性存儲器電路以及管理在存儲器電路上的用戶的存儲的控制器電路,所述方法包括在非易失性存儲器中在堆中的第一堆上存儲包括文件系統的系統數據;在非易失性存儲器中在堆中的第二堆上存儲包括文件系統的一部分的拷貝的系統數據;在控制器上執行第一線程,以根據所述文件系統來管理第一堆;以及與執行第一線程同時地,在控制器上執行第二線程以根據獨立于在第一堆中存儲的文件系統的、文件系統的拷貝來管理第二堆。
13.根據權利要求12的方法,其中,所述第一和第二線程的每個在各自的專用控制器上執行,且通過對應的堆接口分別與第一和第二堆通信。
14.根據權利要求12的方法,其中,所述文件系統的一部分的拷貝是只讀拷貝。
15.根據權利要求12的方法,其中,所述非易失性存儲器陣列由物理擦除塊構成,且其中,所述控制器管理使用邏輯上鏈接為合成結構的多個塊的結構的存儲器,其中,所述文件系統和文件系統的所述部分都包括通過其構成合成結構的鏈接信息。
16.根據權利要求12的方法,其中,所述文件系統和文件系統的所述部分都包括用于控制對應的堆的一個或多個覆蓋文件。
17.根據權利要求12的方法,還包括在控制器上執行第二線程之前,使用在第一堆上存儲的文件系統中的、不包括在文件系統的所述部分中的信息來進行由第一線程執行的引導處理。
18.根據權利要求17的方法,其中,所述在引導處理中使用的、不包括在文件系統的所述部分中的信息包括固件文件。
19.根據權利要求17的方法,其中,所述在引導處理中使用的、不包括在文件系統的所述部分中的信息還包括代碼文件,用于通過線程來管理各堆且用于接口連接到存儲器系統所附接到的主機。
20.根據權利要求12的方法,其中,所述控制器還包括主機接口,以在存儲器系統和非易失性存儲器系統連接到的主機之間傳輸數據,所述方法還包括在控制器上執行管理控制器和主機之間的交互的前端線程。
21.根據權利要求20的方法,其中,所述前端線程為管理各堆的多個線程分配任務。
全文摘要
提供了一種多堆非易失性存儲器系統。所述堆中的第一堆具有文件系統的主拷貝,且其他堆的每個具有文件系統的附屬拷貝。控制器的后端固件對于每個堆執行線程。在引導處理之后,在正常存儲器操作期間,每個線程可以使用其自己的文件系統的拷貝來操作,而不需要中斷其他線程以便訪問該文件系統。
文檔編號G06F17/30GK102483685SQ201080036294
公開日2012年5月30日 申請日期2010年6月9日 優先權日2009年6月16日
發明者C.M.施羅特, S.拉杰戈帕蘭 申請人:桑迪士克科技股份有限公司