TW200844999A - Non-volatile memory with worst-case control data management and methods therefor - Google Patents

Non-volatile memory with worst-case control data management and methods therefor Download PDF

Info

Publication number
TW200844999A
TW200844999A TW096138384A TW96138384A TW200844999A TW 200844999 A TW200844999 A TW 200844999A TW 096138384 A TW096138384 A TW 096138384A TW 96138384 A TW96138384 A TW 96138384A TW 200844999 A TW200844999 A TW 200844999A
Authority
TW
Taiwan
Prior art keywords
block
data
memory
update
blocks
Prior art date
Application number
TW096138384A
Other languages
English (en)
Inventor
Alan David Bennett
Neil David Hutchison
Sergey Anatolievich Gorobets
Original Assignee
Sandisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/549,040 external-priority patent/US20080091871A1/en
Priority claimed from US11/549,035 external-priority patent/US20080091901A1/en
Application filed by Sandisk Corp filed Critical Sandisk Corp
Publication of TW200844999A publication Critical patent/TW200844999A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

200844999 九、發明說明: 【發明所屬之技術領域】 本發明大體係關於非揮發性半導體記憶體,且特別係關 於具有一記憶體區塊管理系統之非揮發性半導體記憶體, 該記憶體區塊管理系統具有一用於管理用以控制記憶體之 操作之系統資料的改良系統。 【先前技術】 能夠非揮發性儲存電荷之固態記憶體(特別是以經封裝 •為小形狀因數卡之EEPROM及快閃EEPROM之形式)最近已 變成多種行動及掌上型裝置(尤其為資訊電氣設備及消費 型電子產品)中的儲存選擇。不同於亦為固態記憶體之 Ram(隨機存取記憶體),快閃記憶體為非揮發性的,且甚 至在斷開電源之後亦保持其儲存資料。再者,不同於 ROM(唯讀記憶體),快閃記憶體類似於磁碟儲存裝置為可 重寫的。儘管成本較高,但快閃記憶體仍日益用於大量健 存應用中。基於旋轉諸如硬碟機及軟性磁碟之磁性媒體的 _習知大量儲存不適用於行動及掌上型環境。此係因為磁碟 機趨向於為龐大的、傾向於產生機械故障且具有高延時及 高功率需求。此等不良屬性使得基於磁碟之儲存在大多數 行動及攜帶型應用中不實用。另一方面,為嵌入式與可卸 除式卡之形式的快閃記憶體由於其小尺寸、低功率消耗、 南速度及高可靠性特徵而理想地適用於行動及掌上型環 快閃EEPROM類似於EEPROM(電子可擦且可程式化唯讀 125617.doc 200844999 記憶體)之處在於:其為可經擦除且使新資料寫入或"程式 化"至其記憶體單元中之非揮發性記憶體。兩者在場效; 晶體結射均制定位於半導體基板巾之通道區域上在源 5沒極區域之間的浮動(不連接)傳導閘極。控制閘極接 者提供於夺動閘極上。電晶體之臨限電壓特徵由保持於,孚 _極上之電荷量控制。亦即,對於浮動閘極上之給定電 荷位準,存在必須在電晶體經"接通"之前施
以容許其源極巍極區域之間的傳導之對應《1 = 值)。詳言之,諸如快閃EEPR0M之快閃記憶體允許同時捧 除整個記憶體單元區塊。 不 咖浮動閘極可固持電荷範圍且因此可經程式化至臨限電壓 窗内之任何臨限電壓位準。臨限電壓窗之尺寸係藉由裝置 之最小及最大臨限位準來定界,該等臨限料又對應於可 經程式化至浮動閘極上之電荷之範圍。臨限窗通常視記憶 體裝置之特徵、操作條件及歷史而定。窗内之每一相異的 可解析臨限電壓位準範圍原則上可用以指定單元之明確的 記憶體狀態。當臨限電壓經分割成兩個相異區域時,每— 記憶體單元將能夠儲存一個資料位元。類似地,當臨限電 壓窗經分割成兩個以上相異區域時,每_記憶體單元將能 夠儲存一個以上資料位元。 充當記憶體單元之電晶體通常藉纟兩種機制巾之—者而 被程式化至"程式化"狀態。在"熱電子注入”中,被施加至 汲極之高電壓使電子橫過基板通道區域而加速。同時,被 施加至控制閘極之高電壓將熱電子穿過薄閘極介電質而拉 125617.doc 200844999 至淨動間極上。在,,穿隧注入”中,相對於基板而將高電壓 施加至控制間極。以此方式,將電子自基板拉至介入浮動 閘極。雖然在歷史上使用術語"程式化”來描述藉由將電子 庄入至錢體單元之經最初擦除之f荷儲存單元以便改變 記憶體狀態而寫人至記憶體’但現已將"程式化"與諸如"寫 入”或”記錄’’之更一般術語可互換地使用。
可藉由若干機制來擦除記憶體裝置。對於EEpR〇M,記 憶體草元可藉由相對於控制閘極而將高電墨施加至基板以 便誘導浮動閘極中之電子穿隧薄氧化物至基板通道區域而 被電子擦除(亦即,F〇wler-N〇rdheim穿隧)。通常, EEPROM可逐位元組被擦除。對於快閃EEpR〇M,記憶體 可同時被電子擦除或一次被電子擦除一或多個最小可擦區 塊,其中一最小可擦區塊可由一或多個區段(sect〇r)組成, 且母區段可儲存5 12個或更多資料位元組。 記憶體裝置通常包含可安裝於卡上之一或多個記憶體晶 片。每一 §己憶體晶片包含一由諸如解碼器及擦除、寫入及 讀取電路之周邊電路所支援的記憶體單元陣列。更複雜之 各己憶體裝置亦伴隨有執行智慧且較高級別記憶體操作及介 面連接之控制器。 存在當今被使用之若干商業上成功的非揮發性固態記憶 體裝置。此等記憶體裝置可為快閃EEPROM或可使用其他 類型之非揮發性記憶體單元。快閃記憶體及系統以及其製 造方法之實例在美國專利第5,070,032號、第5,〇95,344號、 第 5,315,541 號、第 5,343,063 號及第 5,661,053 號、第 125617.doc 200844999 5,313,421號以及第6,222,762號中被給出。詳言之,具有反 及(NAND)串結構之快閃記憶體裝置描述於美國專利第 5,570,315 號、第 5,903,495號、第 6,046,935號中。再者, 非揮發性記憶體裝置亦自具有用於儲存電荷之介電層的記 憶體單元製造。代替前文所描述之傳導浮動閘極元件,使 用介電層。Eitan 等人之”NR0M: a Novel Localized
Trapping,2-Bit Nonvolatile Memory Cell”(IEEE Electron
Device Letters,第 21卷,第 u 號,2〇⑽年 ,第 543_ 545頁)已描述利用介電儲存元件之該等記憶體裝置。〇n〇 介電層橫過源極與汲極擴散之間的通道而延伸。用於一資 料位元之電荷區域化於鄰近於汲極之介電層中,且用於另 一資料位元之電荷區域化於鄰近於源極之介電層中。舉例 而言,美國專利第5,768,192號及第6,011,725號揭示了具有 夾於兩個二氧化矽層之間的截獲介電質之非揮發性記憶體 單元。藉由獨立地讀取介電質内之空間分離之電荷儲存區 域的二元狀態來實施多狀態資料儲存。 為了改良讀取及程式化效能,並行地讀取或程式化一陣 列中之多個電荷儲存元件或記憶體電晶體。因此,一▲立 體元件”頁"經共同地讀取或程式化。在現有記憶體架構 中,一列通常含有若干交錯頁或其可構成一頁。一頁之 有記憶體元件將經共同地讀取或程式化。 在快閃記憶體系統中,擦除操作與讀取及程式化操作才 比可多花費與數量級一般多之時間。因此,需要具== 尺寸之擦除區塊。以此方式,將擦除時間攤銷於較大 125617.doc 200844999 體單元聚集體上。 快閃記fe、體之性質斷定必須將眘料宜 々將貝枓冩入至經擦除記憶體 位置。若將更新來自主機之特定邏輯位址的m方 式為在相同貝體δ己憶體位置中重驾爭餅:欠 里咼文新貝料。亦即,邏輯 至實體位址映射未經改變。然而,此將意謂將必須首先擦 除含有彼實體位置之整個擦除區塊且接著利用經更新資料 來重寫。此更新方法效率低,因為其需要擦除及重寫整個 擦除區塊’尤其是在待更新之資料僅佔據擦除區塊之一小 Φ部为時。其亦將導致5己憶體區塊之較高擦除再循環頻率, 此鑒於此類型之記憶體裝置之有限耐久性為不良的。 管理快閃記憶冑系統之另-問冑為必須處置系統控制及 目錄資料。在各種記憶體操作過程期間產生及存取資料。 因此,其有效處理及就緒存取將直接影響效能。將需要將 此資料類型維持於快閃記憶體中,因為快閃記憶體意欲用 於儲存且為非揮發性的。然而,在控制器與快閃記憶體之 _間具有介入檔案管理系統的情況下,不能如直接地存取資 料。再者,系統控制及目錄資料趨向於為作用中的及分段 的’此不有助於在具有大尺寸區塊擦除之系統中儲存。通 常,在控制器RAM中設置此資料類型,藉此允許控制器之 直接存取。在記憶體裝置經加電之後,一初始化過程使快 閃記憶體能夠被掃描,以便編譯待置放於控制器ram中之 必要系統控制及目錄資訊。此過程花費時間且需要控制器 RAM容量,在不斷增加之快閃記憶體容量的情況下更加如 此0 125617.doc -10 - 200844999 US 6,567,307揭示了處理大擦除區塊當中之區段更新之 方法該方法包括在充當暫時儲存區(scratch pad)之多個 擦除區塊中記錄更新資料,及最終合併各種區塊當中之有 效區段且在以邏輯上循序之次序來重新排列該等區段之後 重寫該等區段。以此方式,+需要在每一最輕微更新時擦 除及重寫區塊。 W0 03/027828及W0 00/49488均揭示了處理大擦除區塊 虽中之更新之記憶體系統,該處理包括將邏輯區段位址分 割成若干區。為與用於使用者資料之另一區獨立之作用中 系統控制資料而保留一較小邏輯位址範圍區。以此方式, 系統控制資料在其自己區中之操縱將不與另一區中之關聯 使用者資料相互作用。更新係在邏輯區段層級處,且寫入 才曰私指向待寫入之區塊中之對應實體區段。映射資訊在 am中、、二緩衝且最終儲存於主記憶體中之區段配置表中。 k輯區#又之表後版本將廢棄現有區塊當中之變得部分地庚 棄的所有先前版本。執行廢棄項目收集以將部分地廢棄之 區塊保持至可接受之數目。 先W技術之系統趨向於使更新資料分布於若干區塊上或 更新資料可致使若干現有區塊為部分地廢棄的。結果常常 係為α卩刀地廢棄之區塊所必需之大量廢棄項目收集,此為 效率低的且造成記憶體之過早老化。再者,與非循序更新 相比,不存在處理循序更新之系統且有效的方式。 在經組織成記憶體位置區塊之資料儲存系統中,主機可 將主機資料儲存於一主機資料區塊集合中。與此同時,系 125617.doc 200844999 統亦將控制資料儲存於另一控制資料區塊集合中以留意區 塊經如何配置及資料經定位於區塊當中之何處。在任一情 況下在資料及其更新填滿1塊時,該區塊將在其資料之 最後版本經重新定位至空區塊之後被封閉。此重寫過程通 系被稱作廢棄項目收集。存在不同類型之廢棄項目收集, 八中某二類型之廢棄項目收集與其他類型之廢棄項目收集 相比花費更多時間。 當區塊邊界為交又時或當存在所遭遇之缺陷時,可在主 機寫入期間觸發廢棄項目收集。類似地,(諸如)當控制區 塊邊界為乂叉(控制區塊重寫)時或當存在程式錯誤或所遭 遇之缺陷(錯誤處理)時,可在記憶體系統之内部或内務處 理操作期間觸發廢棄項目收集。廢棄項目收集之其他實例 包括磨損平整及讀取擦淨。 因為廢棄項目收集為耗時的且在某一最壞情況情形中, 可接連地進行若干廢棄項目收集,所以可能違反系統時序 且記憶體可變得不起作用。 因此,存在對高容量及高效能非揮發性記憶體之一般需 要。詳言之’存在對具有能夠進行記憶體㈣而無上述問 題之高容量非揮發性記憶體之需要。 【發明内容】 因此’本發明之-目標為提供—種能夠在前景中以任何 主機更新序列來處理内部操作而不違反時序需求之穩 料儲存系統。 ' 詳言之,本發明之一 目標為減少記憶體區塊集區中用於 125617.doc • 12 - 200844999 儲存用於控制記憶體操作之系統控制資料之保留區塊的數 目且減少用於控制區塊更新之最壞情況時序。 根據本發明’提供-改良機制以避免控制資料之可能的 冗長級聯更新。此係藉由為每_控制資料類型設定一區塊 邊限且在已到達該區塊邊限時之最早時機重寫區塊來完 j。詳言之,將邊限設定為僅足以容納以在可進行重寫之 前的-預定間隔而累積之資料,以便在可進行重寫之前不 全:填充區塊。該預定間隔尤其係藉由考慮在可進行重寫 之别產生最壞情況間隔的主機寫入型樣來確定。用於設定 邊限之其他考慮包括為每一控制區塊重寫所需之時間及可 用於基於用於儲存主機資料之更新區塊之組態之控制區塊 重寫的時間、前景主機操作中所需之時間及主機寫入延 時。 在-實施例中,當存在中請中之—個以上控制區塊重寫 時,在主機操作中所發現之下一可用時機中優先執行具有 為更作用中之控制資料類型的控制區塊重寫。以此方式, 需要留出最小量之保留區塊作為用於控制區塊重寫之資 源,因為一次將僅進行一控制區塊重寫。 該改良亦考慮每一級聯控制更新之多個程式錯誤,使得 在時序限制内接連發生之一個以上ecc或程式 曰、 切於單次可程式化(”〇τρ")記憶體為特別重 :的二因為若缺陷在較低層級上未經修補’則風險相當 门、b文良亦使侍能夠在更新區塊集區中保留最小量之 塊以用於儲存控制資料。保留區塊使記憶體控制系統能夠 125617.doc •13- 200844999 處理最壞級聯更新,在該最壞級聯更新中,所有控制資料 區塊可潛在地經同時填充,且必須均在相同忙碌週期中被 重寫。右需要為控制資料而保留較少區塊,則更多區塊將 可用於主機資料更新。 本發明之優點包括以下各項。可以最壞情況更新序列來 處理增加數目之錯誤。可避免廢棄項目收集(GC)與控制區 塊緊密之最長組合的最壞情況。舉例而言,混亂Gc比循 序GC花費之時間長,因此可藉由避免與混亂Gc同時進行 控制更新來減少最壞情況指令延時。藉由最佳選擇區塊邊 限(例如,藉由選擇待緊密之較滿控制區塊)及排程待執行 之内部操作來獲得最佳化效能。需要減少數目之保留擦除 區塊來處理最壞情況更新序列。在先佔式内部操作之情況 下,可更迅速地處理錯誤,因為可重新排程錯誤處理。錯 誤處理之部分錯誤處理及排程完成係可能的。有可能在稍 後將進行之具有短延時的讀取操作期間(例如,在下一寫 入操作期間)排程ECC錯誤處理。 將自本發明之較佳實施例之以下描述理解本發明之額外 特徵及優點’該描述應與隨附圖式結合而加以採用。 【實施方式】 圖1至圖20說明可實施本發明之各種態樣的具有區塊管 理之記憶體系統的實例。類似記憶體系統已揭示於以下美 國專利申請公開案中。Gorobets等人之美國專利申請公開 案第 US_2005-0144365-A1 號,標題為"N〇n_v〇latiie
Memory and Method with Control Data Management” 〇 125617.doc -14- 200844999
Gorobets等人之於2006年7月13日公開之美國專利申請公開 案弟 US_2006-0155922-A1號,標題為 f,Non-Volatile Memory
And Method With Improved Indexing For Scratch Pad And Update Blocks”。 圖1示意性地說明適用於實施本發明之記憶體系統的主 要硬體組件。記憶體系統20通常經由主機介面而與主機1〇 一起操作。記憶體系統通常為記憶卡或嵌入式記憶體系統 之开> 式。記憶體系統20包括操作由控制器1 〇〇控制之記憶 體200。記憶體2〇〇包含分布於一或多個積體電路晶片上之 一或多個非揮發性記憶體單元陣列。控制器1 〇〇包括介面 110、處理器120、選用之共處理器121、R0M 122(唯讀記 憶體)、RAM 130(隨機存取記憶體)及視需要可程式化非揮 發性記憶體124。介面11〇具有將控制器進行介面連接至主 機之一組件及進行介面連接至記憶體2〇〇之另一組件。儲 存於非揮發性ROM 122及/或選用之非揮發性記憶體124中 之韋刃體提供用於使處理器120實施控制器100之功能的程式 碼。可由處理器12〇或選用之共處理器121處理錯誤校正 馬在替代實施例中,由一狀態機(未圖示)實施控制5| 1 〇〇。在又一實施例中,在主機内實施控制器1 〇〇。 邏輯及實體區塊結構
圖2說明根據本發明之一較佳實施例之經組織成實體區 段群(或元區塊(metablock))且由控制器之記憶體管理器所 官理的記憶體。記憶體200經組織成元區塊,其中每一一 區塊為可被共同擦除之一實體區段群%.....S 125617.doc -15· 200844999 當在檔案㈣或作t系統下執行應用程 取記憶體200 〇通常,*撤么 主機10存 ^ 機系統以邏輯區段為單位來定Μ 貢料,其中(例如、备 π咖 卞m求疋址 ,如)母—區段可含有512個資料位 者,通常使主機以碟赭I | 、、且。再 “ 邏軏叢集為單位來讀取或寫入至記㈣ 系統,每一邏輟業隹士 ϋ U體 機… 多個邏輯區段組成。在-些主 ’、、”,可存在選用之主機側記憶體管理器,以執行 機處之較低層級之記憶體管理。if Λ執仃主 體s理。在項取或寫入操作期間之 、二數h況下’主機10實質上向記憶體系統2G發出指令, 以項取或寫人含有具有鄰接位址之邏輯資料區段串 (segment)。 又 在記憶體系統20之控制器1〇〇中實施記憶體側記憶體管 ,器二以管理快閃記憶體2〇〇之元區塊當中之主機邏輯區 ^之貧料的儲存及擷取。在較佳實施例中,記憶體管理器 含有用於管理元區塊之擦除、讀取及寫入操作的若干軟體 模組。記憶體管理器亦維持快閃記憶體2〇〇及控制器ram φ 13 0田中之與其操作相關聯的系統控制及目錄資料。 Θ 3 A(i)至圖3A(iii)示意性地說明根據本發明之一較佳實 例之_輯群與元區塊之間的映射。實體記憶體之元區塊 具有用於儲存邏輯群之#個邏輯資料區段的#個實體區 & °圖3A(i)展示來自邏輯群LGi之資料,其中邏輯區段係 以姊接邏輯次序0、7、…、iV-Y。圖3 A(ii)展示以相同邏輯 -人序而儲存於元區塊中之相同資料。元區塊在以此方式被 儲存日守據稱為"循序的"。一般而言,元區塊可具有以不同 夂序而儲存之資料,在此情況下,元區塊據稱為"非循序 1256l7.doc -16 - 200844999 的"或"混亂的"。 在邏輯群之最低位址與其經映射至之元區塊之最低位址 之間可能存在位移(offset)。在此情況下,邏輯區段位址作 為自元區塊内之邏輯群之底部返回至頂部的迴圈而繞回。 舉例而言,在圖3 A(iii)中,元區塊在其自邏輯區段灸之資 料開始的第一位置中進行儲存。當到達最後邏輯區段 時’其繞回至區段0且最後在其最後實體區段中儲存與邏 輯區段U相關聯之資料。在較佳實施例中,使用頁標鐵 _來識別任何位移,諸如,識別儲存於元區塊之第一實體區 #又中之資料的開始邏輯區段位址。當兩個區塊僅相差一頁 標籤時,將考慮使兩個區塊以類似次序來儲存其邏輯區 段。 圖3B示意性地說明邏輯群與元區塊之間的映射。除了資 料當前正被更新之少量邏輯群以外,每一邏輯群經映射至 唯一元區塊。在已更新邏輯群之後,可將其映射至不同元 區塊。映射資訊經維持於邏輯至實體目錄集合中,此稍後 將加以更詳細地描述。 亦預期其他類型之邏輯群至元區塊映射。舉例而言,具 有可變尺寸之元區塊揭示於由Alan Sinclair在2003年12月30 曰提出之同在申請中的且共同擁有的美國專利申請公開案第 US-2005-0144357 A1號中,標題為’’Adaptive Metablocks”。 同在申請中之申請案之整個揭示内容係以引用之方式併入 本文中。 本發明之一特徵在於:系統與單一邏輯分割一起操作, 125617.doc -17- 200844999 且貫穿記憶體系統之邏輯位址範圍的邏輯區段群經 處理K箱言,含有系統資料之區段及含有使用者資料 之區段可分布於邏輯位址空間當中之任何地方。 不同於先前技術之系統,不存在系統區段(亦即,盘檀 案配置表、目錄或子目錄有關之區段)之特殊分割或: 區’以便區域化於可能含有具有高頻率及小尺寸更新之資 料的邏輯位址空間區段中。實情為,更新邏輯區段群之本
機制將有效地處理為㈣區段之典型的存取型樣,以及為 檔案資料之典型的存取型樣。 〃 於儲存系統或耗用資料之標頭部分。若元區塊係由ρ個 MEU構成,且每—ΜΕμ有Μ個區段,則每—元區塊將具 有ν=ρ*μ個區段。 八 圖4說明元區塊與實體記憶體中之結構的對準"决閃記 铖體包含可作為單元被共同擦除之記憶體單元區塊。該等 擦除區塊為快閃記憶體之最小擦除單元或記憶體之最^可 擦單元(MEU)。最小擦除單元為記憶體之硬體設計參數, 雖然在某些記憶體系統中其支援多個卿擦除,但有可能 組態包含-個以上MEU之”超MEU"。對於快閃EEpR〇M,b - MEU可包含一區段’但較佳包含多個區段。在所展示之 實例中’其具有Μ個區段。在較佳實施例中,每—區段可 儲存512個資料位元組,且具有一使用者資料部分及一用 元區塊在系統層級處表示記憶體位置群,例如,可被共 同擦除之區段。快閃記憶體之實體位址空間被對待為元/區 塊集合’λ中-元區塊為最小擦除單元。在本說明書内, 125617.doc -18- 200844999 同義地使用街#"元區塊"與"區i ” 匕塊來界定用於媒體管理之 在系統層級處的最小捧除罝& 0 ^ 傺除早兀,且使用術語"最小擦除單 元"或MEU來表示快閃記憶體之最小擦除單元。 連結最小擦除單元(M e II)以形成元區塊 為了最大化程式化速度及擦除速度,藉由安排並行地程 式化位於多個麵中之多個資訊頁且安排並行地擦除多個 MEU來儘可能地利用並行性。 在陕閃5己’丨思體中’一頁為可在單一操作中經共同程式化 之一記憶體單元群組。一頁可包含一或多個區段。再者, 一記憶體陣列可經分割成一個以上平面,其中一次僅可程 式化或擦除一平面内之一MEU。最後,該等平面可分布於 一或多個記憶體晶片當中。 在快閃記憶體中,MEU可包含一或多個頁。可以平面來 組織快閃記憶體晶片内之MEU。因為來自每一平面之一 MEU可經同時程式化或擦除,所以適宜的是藉由自每一平 面中選擇一 MEU來形成多MEU區塊(見下文中之圖5B)。 圖5A說明自不同平面之最小擦除單元之連結而構成的元 區塊。每一元區塊(諸如,ΜΒ0、MB1、··.)係由來自記憶 體系統之不同平面的MEU構成,其中該等不同平面可分布 於一或多個晶片當中。圖2所示之元區塊連結管理器17〇管 理用於每一元區塊之MEU的連結。每一元區塊在初始格式 化過程期間經組態,且貫穿系統之壽命而保持其組成 MEU,除非存在該等MEU中之一者的故障。 圖5B說明自每一平面中選擇一最小擦除單元(MEU)以用 125617.doc -19- 200844999 於連結成元區塊之一實施例。 圖5C说明自母一平面中選擇一個以上meu以用於連結成 元區塊之另一實施例。在另一實施例中,可自每一平面中 選擇一個以上MEU以形成超MEU。舉例而言,一超meu可 由兩個MEU形成。在此情況下,為讀取或寫人操作可能花 費一次以上通過。 將MEU連結及重新連結成元區塊亦揭示於由caH〇s Gonzales等人在2003年12月3〇日提出之同在申請中的且共 同擁有的美國專利申請公開案第us_2〇〇5_〇144516…號 中,標題為”Adaptive Deterministic Grouping 〇f B1〇cks into Multi-Block Units"。同在申請中之申請案之整個揭示 内谷係以引用之方式併入本文中。 元區塊管理 圖6為如在控制器及快閃記憶體中所實施之元區塊管理 系統的示意性方塊圖。元區塊管理系統包含在控制器1〇〇 中所實施之各種功能模組,且在階層式地分布於快閃記憶 體200及控制器RAM 130中之表及清單中維持各種控制資 料(包括目錄資料)。在控制器1〇〇中所實施之功能模組包括 介面模組110、邏輯至實體位址轉譯模組14〇、更新區塊管 理器模組15 0、擦除區塊管理器模組16 0及元區塊連結管理 器 170 〇 介面110允許元區塊管理系統與主機系統進行介面連 接。邏輯至實體位址轉譯模組140將來自主機之邏輯位址 映射至實體記憶體位置。更新區塊管理器模組15()管理記 125617.doc • 20 - 200844999 $體中之用於給定邏輯資料群的資料更新操作。擦除區塊 :理态160官理元區塊之擦除操作及該等元區塊之用於新 :訊儲存的配置。&區塊連結管理器170管理用以構成給 定元區塊之最小可擦區段區塊之子群的連結。將在此等模 組之各別部分中給出此等模組之詳細描述。 在操作期間,元區塊管理系統產生諸如位址、控制及狀 態資訊之控制資料且與諸如位址、控制及狀態資訊之控制 貝料一起工作。因為大量控制資料趨向於為頻繁改變之小 尺寸貝料,所以不能利用大區塊結構將其容易地儲存及有 效地維持於快閃記憶體中。使用―階層式及分布式機制來 將更夕靜悲控制資料儲存於非揮發性快閃記憶體中,同時 將車乂少里之更多改變之控制資料定位於控制器中以用 於更有效之更新及存取。在發生斷電或故障之情況下,該 機制允許藉由掃描非揮發性記憶體中之小控制資料集合來 迅速地重建揮發性控制器RAM中之控制資料。此係可能 的,因為本發明限制與給定邏輯資料群之可能作用中性相 關聯的區塊數目。以此方式,掃描被限制。此外,將需要 暫留之某些控制資料儲存於可經逐區段更新之非揮發性元 區塊中’纟中每_次更新導致經記錄之接替先前區段的新 區段。對於控㈣資料使用一區段索弓j機制以留意元區塊中 之逐區段更新。 非揮發性快閃記憶體200儲存相對靜態之控制資料塊 體。此包括群位址表(GAT) 210、混礼區塊索引(CBi) 220、擦除區塊清單(EBL) 23〇及MAp 24〇。gat 2i〇留意 125617.doc -21 - 200844999 邏輯區段群與其對應元區塊之間的映射。除了經歷更新之 映射以外,該等映射不會改變。CBI 220留意邏輯上#循 序之區段在更新期間之映射。EBL 230留意已被擦除之元 區塊集區。MAP 240為展示快閃記憶體中之所有元區塊之 擦除狀態的位元圖。 揮發性控制器RAM 130儲存頻繁地改變且經存取之控制 資料的一小部分。此包括配置區塊清單(ABL) 134及清除 區塊清單(CBL) 136。ABL 134留意用於記錄更新資料之元 區塊配置’而CBL 136留意已被解除配置及擦除之元區 塊。在較佳實施例中,RAM 130充當用於儲存於快閃記憶 體200中之控制資料的快取區。 更新區塊管理器 更新區塊管理益150(圖2所不)處理邏輯群之更新。根據 本發明之一態樣,經歷更新之每一邏輯區段群經配置一專 用更新元區塊以用於記錄更新資料。在較佳實施例中,邏 輯群之一或多個區段之任何節段將記錄於更新區塊中。可 管理更新區塊以循序次序或非循序(亦被稱為混亂)次序來 接收經更新資料。混亂更新區塊允許以邏輯群内之任何次 序且利用個別區段之任何重複來更新區段資料。詳言之, 循序更新區塊可變成混亂更新區塊,而不需要重新定位任 何資料區段。不需要用於混亂資料更新之預定區塊配置; 自動地容納任何邏輯位址處之非循序寫入。因此,不同於 先前技術之系統,不管邏輯群之各種更新節段是以邏輯循 序次序還是以非循序次序,均不存在特殊處理。將簡單地 I25617.doc -22- 200844999 使用通用更新區塊來以各種節段被主機請求之次序來記錄 該等各種節段。舉例而言,即使主機系統資料或系統控制 資料趨向於以混亂方式被更新,亦不需要將對應於主機系 統資料之邏輯位址空間之區域與具有主機使用者資料之區 域不同地處理。
完整邏輯區段群之資料較佳以邏輯上循序之次序而儲存 於單一元區塊中。以此方式,預先界定至經儲存邏輯區段 之索引。當元區塊已以預先界定之次序來儲存給定邏輯群 之所有區段時,其據稱為”完整的"。至於更新區塊,當其 最終被更新資料以邏輯上循序之次序填滿時,則該更新區 塊將變成容易替代原-始元區塊之經更新的完整元區塊。另 方面,若更新區塊被更新資料以邏輯上不同於完整區塊 之次序的次序填滿,則該更新區塊為非循序或混亂更新區 塊,且必須進一步處理無次序之節&,使得最終以與完整 區塊之次序相同的次序來儲存邏輯群之更新資料。在較佳
情況下,其在單一元區塊中係以邏輯上循序之次序。該進 -步處理涉及將更駭塊巾之經更新區段與原始區塊中之 未經改變區段合併成又一更靳开 又新70 &塊。經合併更新區塊將 接著係以邏輯上循序之次序且可 斤且了用以替代原始區塊。在某 一預定條件下,一或多個腎宗禍翁/ 、 7 1U冢在過私在合併過程之前。緊密 過程將混亂更新區塊之區與薛s山 ^ ^又間早地重新記錄於替代混亂更 新區塊中,同時消降ρ兹^ A m 、 ”除6猎由同-邏輯區段之後續更新而被 致使為廢棄的任何重複邏輯區段。 更新機制允許同時執杆夕古、去^ m 钒仃之冋達預先界定之最大值的多個 125617.doc -23- 200844999 更新線緒。每一線緒為一使用其專用更新元區塊而經歷更 新之邏輯群。 循序資料更新 當首先更新屬於邏輯群之資料時,配置元區塊且將該元 區塊專用作用於邏輯群之更新資料的更新區塊。當自主機 接收用以寫入邏輯群之一或多個區段之節段的指令時,配 置更新區塊,針對此情形,現有元區塊一直完整地儲存其 所有區段。對於第一主機寫入操作,將第一資料節段記錄 於更新區塊上。因為每一主機寫入為具有鄰接邏輯位址之 一或多個區段的一節段,所以由此可見:第一更新本質上 總是為循序的。在後續主機寫入中,將相同邏輯群内之更 新節段以自主機所接收之次序記錄於更新區塊中。繼續作 為循序更新區塊而管理區塊,同時關聯邏輯群内之由主機 所更新的區段保持邏輯上循序。將此邏輯群中所更新之所
有區段寫入至此循序更新區塊,直至該區塊經封閉或轉換 成 亂更新區塊為止。 圖7A說明由於兩個獨立主機寫入操作而以循序次序寫入 至循序更新區塊之邏輯群中(同時用於邏輯群之原始區塊 中的對應區段變得廢棄)之區段的一實例。在主機寫入操 作#!中’更新邏輯區段LS5_LS8中之資料。將如⑶,摘, 之經更新資料記錄於新近配置之專用更新區塊中。 ::適宜起見,自第一實體區段位置開始,將邏輯群中 待更新H段記錄於專収新區塊中…今 更新之第-邏輯區段未必為群之邏輯第—區段,/,, 125617.doc • 24 - 200844999 在邏輯群之開始與更新區塊之開始之間可能存在位移。此 位移被稱為如先前結合圖3A所描述之頁標籤。以邏輯上循 序之次序來更新後續區段。當寫入邏輯群之最後區段時, 群位址繞回且寫入序列繼續進行群之第一區段。 在主機寫入操作#2中,更新邏輯區段LS9-LS12中之資料 節段。將如LS9,-LS12,之經更新資料記錄於專用更新區塊 中之緊接在最後寫入結束之位置之後的位置中。可看出: 兩個主機寫入使得更新資料已以邏輯上循序之次序(亦 即,LS5’-LS12’)而記錄於更新區塊中。更新區塊被看作循 序更新區塊,因為其已以邏輯上循序之次序被填充。記錄 於更新區塊中之更新資料廢棄原始區塊中之對應資料。 混亂資料更新 當關聯邏輯群内之由主機所更新的任何區段為邏輯上非 循序時,可對於現有循序更新區塊起始混亂更新區塊管 理。混亂更新區塊為資料更新區塊之形式,其中關聯邏輯 群内之邏輯區段可以任何次序且利用任何重複量來更新。 §由主機所寫入之區段與經更新之邏輯群内的先前經寫入 之區段邏輯上非循序時,藉由自循序更新區塊之轉換來建 立混亂更新區塊。將此邏輯群中隨後所更新之所有區段寫 入至混亂更新區塊中之下一可用區段位置中,而無論群内 之其邏輯區段位址如何。 圖7B說明由於五個獨立主機寫入操作而以混亂次序寫入 至混亂更新區塊之邏輯群中(同時用於邏輯群之原始區塊 中之接替區段及混亂更新區塊中之重複區段變得廢棄)之 125617.doc -25- 200844999 區段的一實例。在主機寫入操作# 1中,更新儲存於原始元 區塊中之給定邏輯群的邏輯區段LSI 0-LS11。將經更新邏 輯區段LS10,-LS11,儲存於新近配置之更新區塊中。在此點 上’更新£塊為彳盾序更新區塊。在主機寫入操作#2中,將 邏輯區段LS5-LS6更新為LS5,-LS6,,且記錄於更新區塊中 之緊接在最後寫入之後的位置中。此將更新區塊自循序更 新區塊轉換成混亂更新區塊。在主機寫入操作#3中,再次 更新邏輯區段LS10且將其作為LS10"記錄於更新區塊之下 一位置中。在此點上,更新區塊中之LSI0,,接替先前記錄 中之LS10,,LS10,又接替原始區塊中之LS10。在主機寫入 操作#4中,再次更新邏輯區段LS 10中之資料且將其作為 LS10’"記錄於更新區塊之下一位置中。因此,Lsl〇m現在 為用於邏輯區段LS10之最後的且唯一有效的資料。在主機 寫入插作#5中’更新邏輯區段LS30中之資料且將1作為 LS30*記錄於更新區塊中。因此,實例說明可以任何次序 且利用任何重複來將邏輯群内之區段寫入至混亂更新區塊 中〇 強制循序更新 圖8說明由於兩個獨立主機寫入操作而以循序次序寫入 至循序更新區塊之邏輯群(其在邏輯位址中具有不循序性) 中之區段的一實例。在主機寫入#1中,將邏輯區段LS5_ LS8中之更新資料作為LS5,_LS8,記錄於專用更新區塊中。 在主機寫入#2中,將邏輯區段LS14-LS16中之更新資料作 為LSlV-LSie’記錄於在最後寫入之後之更新區塊中。缺 125617.doc -26- 200844999 而,在LS8與LS14之間存在位址跳躍,且主機寫入#2通常 將致使更新區塊非循序。因為位址跳躍不為實質的,所以 一選項為在執行主機寫入#2之前,藉由將介入區段之資料 自原始區塊複製至更新區塊來首先執行填塞操作(#2A)。 以此方式,保存更新區塊之循序性質。 圖9為說明根據本發明之一般實施例之由更新區塊管理 1§用以更新邏輯資料群之過程的流程圖。更新過程包含以 下步驟: 步驟260 ·將記憶體組織成區塊’每一區塊經分割成可 被共同擦除之記憶體單元,每一記憶體單元用於儲存一邏 輯資料單元。 步驟2 6 2 ·將資料組織成邏輯群,每一邏輯群經分割成 邏輯單元。 步驟264 :在標準情況下’根據第一規定次序(較佳地, 以邏輯上循序之次序)來將邏輯群之所有邏輯單元儲存於 原始區塊之記憶體單元當中。以此方式,已知用於存取區 塊中之個別邏輯單元之索引。 步驟270 :對於給定邏輯資料群(例如,LGy,進行對更 新LGZ内之邏輯單元的請求。(作為一實例而給出邏輯單元 更新 般而s,更新將為LG/内之一或多個鄰接邏輯單 元的節段。) 步驟272 :將被請求之更新邏輯單元儲存於專用於記錄 LGX之更新的第二區塊中。記錄次序係根據第二次序,通 常為更新被請求之次序。本發明之一特徵允許最初通用於 125617.doc -27- 200844999 以邏輯上循序或混亂之次序來記錄資料而設置更新區塊。 因此,視第二次序而定,第二區塊可為循序區塊或混亂區 塊。 步驟274 :當過程返回至步驟27〇時,第二區塊繼續記錄 被請求之邏輯單元。當用於封閉之預定條件實現時,將封 閉第一區塊以接收另一更新。在彼情況下,過程進行至步 驟 2 7 6 〇 步驟276 ·對經封閉第二區塊是否以與原始區塊之次序 類似的次序來記錄其更新邏輯單元進行確定。當兩個區塊 記錄邏輯單元僅相差一頁標籤時,考慮該兩個區塊具有類 似次序,如結合圖3 A所描述。若兩個區塊具有類似次序, 則過程進行至步驟280,否則,需要在步驟290中執行某種 廢棄項目收集。 步驟280·因為弟二區塊具有與第一區塊相同之次序, 所以使用第二區塊來替代原始第一區塊。更新過程接著在 步驟299處結束。 步驟290:自第二區塊(更新區塊)及第一區塊(原始區塊) 當中收集給定邏輯群之每一邏輯單元的最後版本。接著以 一類似於第一區塊之次序來將給定邏輯群之經合併邏輯單 元寫入至第三區塊。 步驟292:因為第三區塊(經合併區塊)具有一類似於第 一區塊之次序,所以使用第三區塊來替代原始第一區塊。 更新過程接著在步驟299處結束。 步驟299 :當一結案過程建立一完整更新區塊時,其變 I25617.doc -28- 200844999 成用於給定邏輯群之新標準區塊。用於邏輯群之 將終止。 、、者 ,10為說明根據本發明之—較佳實施例之由更新區塊管 理器用以更新邏輯資料群之過程的流程圖。更新過程包含 以下步驟: 步驟310 .對於給定邏輯資料群(例如,LG£),進行對更 新LGx内之邏輯區段的請求。(作為一實例而給出區段更 新 般而s,更新將為LG/内之一或多個鄰接邏輯區段 的節段。) 步驟312 :若專用於LGx之更新區塊已經不存在,則進行 至步驟410以起始用於邏輯群之新更新線緒。此將藉由配 置專用於記錄邏輯群之更新資料的更新區塊來完成。若已 經存在開放之更新區塊,則進行至步驟3 14以開始將更新 區段記錄至更新區塊上。 步驟314 :若當前更新區塊已經為混亂的(亦即,非循序 的),則簡單地進行至步驟510以用於將被請求之更新區段 記錄至混亂更新區塊上。若當前更新區塊為循序的,則進 行至步驟3 16以用於處理循序更新區塊。 步驟3 16 :本發明之一特徵允許最初通用於以邏輯上循 序或混亂之次序來記錄資料而設置更新區塊。然而,因為 邏輯群最終使其資料以邏輯上循序之次序而儲存於元區塊 中,所以需要將更新區塊儘可能地保持為循序的。當對其 他更新封閉更新區塊時,因為將不需要廢棄項目彳欠集,戶斤 以接著將需要較少處理。 125617.doc -29- 200844999 因此,對被請求之更新是否將尊 ,^ 將遷循更新區塊之當前循序 -人序進彳了確定。若更㈣彳㈣序,料行至㈣別以執 行循序更新,且更新區塊將保持猶序。另-方面,若更新 不遵循循序(混亂更新),則若不錄 少 右不如取其他行動,則更新將 循序更新區塊轉換成混亂更新區塊。 在-實施財,不再進行任何動作來搶救該情形,且過 程直接進行至步驟370,在步驟37()中,允許更新將更新區 塊變成混亂區塊。
選用之強制循序過程 在另-實施例中,視需要’執行—強制循序過程步驟 320以鐾於中4中之混亂更新而儘可能地保存循序更新區 塊。存在兩種情形’該兩種情形均需要自原始區塊複製缺 失之區段’以維持記錄於更新區塊上之邏輯區段的循序次 序。第-情形為更新建立短位址跳躍的情況。第二情形為 過早地結f更新區塊’以便保持其循序。強制循序過程步 驟320包含以下子步驟: 步驟330 ··若更新建立不大於預定量Cb之邏輯位址跳 躍,則過程進行至步驟35〇中之強制循序更新過程,否 則,過程進行至步驟340以考慮其是否適合於強制循序結 步驟340 :若未經填充之實體區段之數目超過一預定設 口十參數Cc(其典型值為更新區塊之尺寸的一半),則更新區 塊為相對地不用的且將不經過早地封閉。過程進行至步驟 3 70且更新區塊將變得混亂。另一方面,若更新區塊大體 125617.doc -30- 200844999 上、、、二填充,則考慮更新區塊已經被良好地利用且因此指向 步驟360以用於強制循序結案。 步驟350 :只要位址跳躍不超過一預定量Cb,強制循序 更新就允許當前循序更新區塊保持循序。實質上,複製來 自更新區塊之關聯原始區塊的區段以填充藉由位址跳躍而 橫跨之間隙。因此,在進行至步驟5 1〇之前在介入位址中 利用 > 料來填塞循序更新區塊以循序地記錄當前更新。 步驟360 :若當前循序之更新區塊大體上已經被填充而 不是藉由申請中之混亂更新而轉換成混亂更新區塊,則強 制循序結案允許結案當前循序之更新區塊。混亂或非循序 更新經界定為具有未由上文所描述之位址跳躍例外覆蓋之 前向位址轉變、向後位址轉變或位址重複的更新。為了防 止藉由混亂更新來轉換循序更新區塊,藉由自更新區塊之 關聯原始的部分廢棄區塊複製區段來填充更新區塊之未經 寫入之區段位置。原始區塊接著完全為廢棄的且可經擦 除。當前更新區塊現在具有完全邏輯區段集合且接著經結 案作為替代原始元區塊之完整元區塊。過程接著進行至步 驟430以將新更新區塊配置於其適當位置中,以接受在步 驟3 1 〇中首先被請求的申請中之區段更新之記錄。 轉換成混亂更新區塊 步驟370 :當申請中之更新不以循序次序時,且視需 要’若不滿足強制循序條件,則依靠允許利用非循序位址 而在過程進行至步驟5 1 〇時將申請中之更新區段記錄於更 新區塊上來允許將循序更新區塊轉換成混亂更新區塊。若 125617.doc •31- 200844999 存在最大數目之混亂更新區塊,則有必要在允許進行轉換 之前封閉最近最少存取之混亂更新區塊;因此,防止超過 混亂區塊之最大數目。最近最少存取之混亂更新區塊之識 別與步驟420中所描述之一般情況相同,但僅限於混亂更 新區塊。此時封閉混亂更新區塊係藉由如步驟55〇中所描 述之合併來達成。 經受系統限制之新更新區塊之配置 步驟410 :配置擦除元區塊作為更新區塊之過程以確定 是否超過一預定系統限制開始。歸因於有限資源,記憶體 管理系統通常允許同時存在預定最大數目(Umax)2更新區 塊。此限制為循序更新區塊與混亂更新區塊之聚集體,且 為一設計參數。在一較佳實施例中,該限制為(例如)最大 值8個更新區塊。再者,歸因於對系統資源之較高需求, 亦可存在對可同時開放之混亂更新區塊之最大數目的對應 預定限制(例如,4)。 " 因此,當已經配置UMAX個更新區塊時,則在封閉現有經 配置更新區塊中之一者之後僅可滿足下一配置請求。過程 進行至步驟420。當開放更新區塊之數目小於CA時,過程 直接進行至步驟430。 步驟420 :在超過更新區塊之最大數目CA之情況下,封 閉最近最少存取之更新區塊且執行廢棄項目收集。最近最 少存取之更新區塊經識別為與已被最近最少存取之邏輯區 塊相關聯的更新區塊。出於確定最近最少存取之區塊之目 的,一存取包括寫入及(視需要)讀取邏輯區段。以存取文 125617.doc -32· 200844999 2來維持開放更新區塊清單;在初始化時,假^無存取次 序。當更新區塊為循序時’更新區塊之封閉遵循結合步驟 60及步驟530所描述之類似過程,且當更新區塊為混亂 時,遷循結合步驟540所描述之類似過程。該封閉為步驟 430中新更新區塊之配置讓出空位。 步驟430 .利用作為專用於給定邏輯群吨之更新區塊之 新疋區塊的配置來實魏置請求。過程接著進行至步驟 510。 將更新資料記錄至更新區塊上 步驟51〇:將被請求之更新區段記錄至更新區塊之下一 可用實體位置上。過程接著進行至步驟520以確定更新區 塊是否已適於結案。 更新區塊結案 步驟520 ·若更新區塊仍具有用於接受額外更新之空 位,則進行至步驟57〇。㈣,進行至步驟522以結案更新 區塊田田别被請求之寫入試圖寫入比區塊所具有之空位 夕之L輯區#又時’存在填滿更新區塊之兩個可能實施例。 在第實也例中,將寫入請求分成兩個部分,其中第一部 刀寫入直至區塊之最後實體區段。接著封閉區塊且將寫入 之第二I分對待為下—被請求之寫人。在另—實施例中, p '月长之寫入’而填塞區塊之剩餘區段且接著封閉區 塊將被明求之寫入對待為下一被請求之寫入。 卜 522 * 乂 右更新區塊為循序的,則進行至步驟530以用 於循序封閉。若更㈣塊為混亂的,則進行至步驟54〇以 125617.doc -33· 200844999 用於混亂封閉。 循序更新區塊結案 步驟5 3 0 ·因為更新區塊為循序的且經完全填充,所r 儲存於其中之邏輯群為完整i元區塊為完整的且替代= 始元區塊。此時,原始區塊完全為廢棄的且可經擦除。過 程接著進行至步驟570,在步驟570中,用於給定邏輯群之 更新線緒結束^ 混亂更新區塊結案 乂驟5 4 0 ·因為更新區塊經非循序地填充且可含有某此 邏輯區段之多次更新,所以執行廢棄項目收集以搶救其中 之有效資料。將緊密或合併混亂更新區塊。將在步驟542 中確定執行哪一過程。 步驟542 :是執行緊密還是合併將視更新區塊之簡幷而 定。若一邏輯區段經多次更新,則其邏輯位址為高度簡幷 的將存在圯錄於更新區塊上之相同邏輯區段之多個版 本且僅最後記錄之版本為用於彼邏輯區段之有效版本。 在合有具有多個版本之邏輯區段的更新區塊中,相異邏 輯區#又之數目將比一邏輯群之數目少得多。 在較佳實施例中,當更新區塊中之相異邏輯區段之數目 超過預疋设叶參數CD(其典型值為一邏輯群之尺寸的一 半)時’結案過程將執行步驟55〇中之合併,否則,過程將 進行至步驟560中之緊密。 步驟550 ·若將合併混亂更新區塊,則將用含有經合併 貝料之新標準疋區塊來替代原始區塊及更新區塊。在合併 1256I7.doc •34· 200844999 之後,更新線緒將在步驟570中結束。 步驟560 :若將緊密混亂更新區塊,則將用載運經緊密 資料之新更新區塊來替代混亂更新區塊。在緊密之後,經 緊密之更新區塊之處理將在步驟57〇中結束。或者,可延 遲緊密,直至再次寫入至更新區塊為止,因此移除了在無 介入更新之情況下在緊密之後為合併之可能性。當對 中之更新的下一請求在步驟5〇2中出現時,將接著在給定 邏輯區塊之進一步更新中使用新更新區塊。 v驟570 ·當結案過程建立完整更新區塊時,其變成用 於…疋逯輯群之新標準區塊。用於邏輯群之更新線緒將終 止。當結案過程建立替代現有更新區塊之新更新區塊時, 將使用新更新區塊來記錄對給定邏輯群所請求之下一更 新。當更新區塊未經結案時,過程將在對中之更新的 下一 4求在步驟3 1 〇中出現時繼續。 自上文所描述之過程可看出,當混亂更新區塊經封閉 時,記錄於其上之更新資料經進一步處理。詳言之,藉由 緊密至另一混亂區塊之過程或藉由與其關聯原始區塊合併 以形成新標準循序區塊之過程來對其有效資料進行廢棄項 目收集。 一圖11A為更詳細地說明圖1〇所示之封閉混亂更新區塊之 口併過程的流程圖。混亂更新區塊合併為當更新區塊經結 案時(例如’當更新區塊充滿其經寫入之最後實體區段位 置時)所執行之兩個可能過程中的一者。當區塊中所寫入 之相異邏輯區段之數目超過-預定設計參數cD時,選擇合 125617.doc -35- 200844999 併。圖10所示之合併過程步驟5 5 0包含以下子步驟: 步驟55 1 :當混亂更新區塊經封閉時,將配置替代該混 亂更新區塊之新元區塊。 步驟552 ·•收集混亂更新區塊及其關聯原始區塊當中之 每一邏輯區段的最後版本,忽視所有廢棄區段。 步驟554 :以邏輯上循序之次序來將經收集之有效區段 記錄至新元區塊上以形成完整區塊,亦即,具有以循序次 序而記錄之邏輯群之所有邏輯區段的區塊。 步驟556 :利用新完整區塊來替代原始區塊。 步驟558 ·•擦除經結案之更新區塊及原始區塊。 圖11Β為更詳細地說明圖1〇所示之用於封閉混亂更新區 塊之緊禮過程的流程圖。當區塊中所寫入之相異邏輯區段 之數目小於一預定設計參數心時,選擇緊密。圖1〇所示之 緊密過程步驟560包含以下子步驟: 步驟561 :當混亂更新區塊經緊密時,將配置替代該混 亂更新區塊之新元區塊。 步驟562 :收集待緊密之現有混亂更新區塊當中之每一 邏輯區段的最後版本。 步驟564 :將經收集之區段記錄至新更新區塊上以形成 具有經緊密之區段的新更新區塊。 步驟566 ·利用具有經緊密之區段的新更新區塊來替代 現有更新區塊。 步驟568 :擦除經結案之更新區塊。 邏輯及元區塊狀態 125617.doc •36· 200844999 圖12A說明邏輯群 > 於+ k铒群之所有可能狀態,及在各種操作下所 有可Sb狀恶之間的可能轉變。 圖12B為列出邏輯群之可能狀態的表。邏輯群狀態經 定如下: 1 · το正.邏輯群中之所有邏輯區段已以邏輯上循序之次序 寫入至單一 tl區塊中(可能使用頁標籤繞回)。 2·未經寫人:邏輯群中之邏輯區段未曾被寫人。邏輯群在 群位址表中經標記為未經寫入且不具有經配置之元區塊。 回應於對此群内之每一區段的主機讀取而傳回一預定資料 型樣。 、 3·循序更新:邏輯群内之某些區段已以邏輯上循序之次序 寫入至元區塊中(可能使用頁標籤),使得其自群之任何先 前完整狀態接替對應邏輯區段。 4·混亂更新:邏輯群内之某些區段已以邏輯上非循序之次 序寫入至元區塊中(可能使用頁標籤),使得其自群之任何 鲁先前完整狀態接替對應邏輯區段。群内之一區段可經寫入 久以上’其中最後版本接替所有先前版本。 圖13 A說明元區塊之所有可能狀態,及在各種操作下所 有可能狀態之間的可能轉變。 圖13 B為列出元區塊之可能狀態的表。元區塊狀態經界 定如下: 1 ·經擦除:元區塊中之所有區段經擦除。 2 ·循序更新·元區塊以邏輯上循序之次序而利用區段被部 分地寫入(可能使用頁標籤)。所有區段屬於相同邏輯群。 125617.doc -37- 200844999 3·混亂更新:元區塊以邏輯上非循序之次序而利用區段被 部分地或完全地寫入。任何區段可經寫入一次以上。所有 區段屬於相同邏輯群。 4·完整:元區壞以邏輯上循序之次序而被完全地寫入(可 能使用頁標籤)。 5·原始:兀區塊先前為完整的,但由於主機資料更新而使 得至少一區段為廢棄的。
圖14(A)至圖i4(:r)為展示各種操作對邏輯群之狀態以及 對實體元區塊之影響的狀態圖。 圖14(A)展不對應於用於第__寫人操作之邏輯群及元區 塊轉變的狀態圖。主機以邏輯上循紅次序來將先前未經 寫入之邏輯群之—或多個區段寫人至新近配置之經擦除元 區塊。邏輯群及元區塊轉向循序更新狀態。 圖14⑻展示對應於用於第—完整操作之邏輯群及元區 塊轉變的狀態圖。當主機循序地寫人所有區段時,先前未 經寫入之循序更新邏輯群變得完整。若卡藉由以預定資料 型樣來填充剩餘未經寫入區段而填滿群,則亦可發生轉
變。元區塊變得完整。 X 圖14(C)展示對應於用於篦 ^ Ah ^ ψ> 义用於弟一混亂刼作之邏輯群及元區 塊轉變的狀態圖。奮Φ嫌 , 田主機已非循序地寫入至少一區段時, 先前未經寫入之循库争#、渡& α , 卞目斤更新邏輯群變得混亂。 圖14(D)展示對應於用 ^ ^ .σ .
用於弟一緊密插作之邏輯群及元F 塊轉變的狀態圖。將娈命土〆& / 、 未!寫入之混亂更新邏輯群內之 所有有效區段自舊區拎飭制^ ^ 售匚塊複製至新混亂元區塊,接著擦除該 125617.doc -38- 200844999 舊區塊。 圖14(E)展示對應於用於第一合併操作之邏輯群及元區 塊轉變的狀態圖。自舊混亂區塊移動先前未經寫入之混亂 更新邏輯群内之所有有效區段以邏輯上循序之次序來填充 新近配置之擦除區塊。以預定資料型樣來填充由主機未寫 入之區段。接著擦除舊混亂區塊。 圖14(F)展示對應於用於循序寫入操作之邏輯群及元區 塊轉變的狀態圖。主機以邏輯上循序之次序來將完整邏輯 群之一或多個區段寫入至新近配置之經擦除元區塊。邏輯 群及元區塊轉向循序更新狀態。先前完整之元區塊變成原 始元區塊。 圖14(G)展示對應於用於循序填充操作之邏輯群及元區 塊轉變的狀態圖。當主機循序地寫入循序更新邏輯群之所 有區段時,該循序更新邏輯群變得完整。當循序更新邏輯 群充滿來自原始區塊之有效區段以便使其完整時,此亦可 在廢棄項目收集期間發生,此後擦除原始區塊。 圖14(H)展示對應於用於非循序寫入操作之邏輯群及元 區塊轉變的狀態圖。當主機非循序地寫入至少一區段時, 循序更新邏輯群變得混亂。非循序區段寫入可造成更新區 塊或對應原始區塊中之有效區段變得廢棄。 圖14(1)展示對應於用於緊密操作之邏輯群及元區塊轉變 的狀態圖。將混亂更新邏輯群内之所有有效區段自舊區塊 複製至新混亂元區塊中’接著擦除該舊區塊。原始區塊不 受影響。 125617.doc -39· 200844999 圖14(J)展示對應於用於合併操作之邏輯群及元區塊轉變 的狀態圖。自舊混亂區塊及原始區塊複製混亂更新邏輯群 内之所有有效區段以邏輯上循序之次序來填充新近配置之 擦除區塊。接著擦除舊混亂區塊及原始區塊。 更新區塊追蹤及管理 圖15說明用於留意用於配置之開放及封閉更新區塊以及 擦除區塊之配置區塊清單(ABL)之結構的一較佳實施例。 配置區塊清單(ABL)610固持於控制器RAM 130中,以允許 擦除區塊、經配置之更新區塊、關聯區塊及控制結構之配 置管理,且致能正確的邏輯至實體位址轉譯。在較佳實施 例中’ ABL包括擦除區塊清單、開放更新區塊清單614及 封閉更新區塊清單616。 開放更新區塊清單614為ABL中具有開放更新區塊之屬 性的區塊項目集合。開放更新區塊清單具有一用於當前開 放之每一資料更新區塊的項目。每一項目固持以下資訊。 LG為專用有當前更新元區塊之邏輯群位址。循序/混亂為 指不更新區塊已充滿循序更新資料遝是混亂更新資料之狀 態。MB為更新區塊之元區塊位址。頁標籤為記錄於更新 區塊之第一實體位置處的開始邏輯區段。經寫入之區段之 數目指示當前經寫入至更新區塊上之區段之數目。MB〇* 關聯原始區塊之元區塊位址。Page Tag〇為關聯原始區塊之 頁標籤。 封閉更新區塊清單616為配置區塊清單(ABL)之子集。其 為ABL中具有封閉更新區塊之屬性的區塊項目集合。封閉 125617.doc -40- 200844999 更新區塊清單具有一用於已被封閉之每一資料更新區塊的 項目,但其項目尚未以邏輯至主要實體目錄來更新。每一 項目固持以下資訊。LG為專用有當前更新區塊之邏輯群 位址。MB為更新區塊之元區塊位址。頁標籤為記錄於更 新區塊之第一實體位置處的開始邏輯區段。“以為關聯原 始區塊之元區塊位址。 混亂區塊索引 循序更新區塊具有以邏輯上循序之次序而儲存之資料, 因此’可容易定位區塊當中之任何邏輯區段。混亂更新區 塊無次序地儲存其邏輯區段且亦可儲存邏輯區段之多個更 新產生。必須維持額外資訊以留意每一有效邏輯區段位於 混禽L更新區塊中之何處。 在較佳實施例中,混亂區塊索引資料結構允許追蹤及快 速存取混亂區塊中之所有有效區段。混亂區塊索引獨立地 官理邏輯位址空間之小區域,且有效地處理系統資料及使 用者資料之熱區域。索引資料結構實質上允許將索引資訊 維持於具有不頻繁更新需求之快閃記憶體中,使得效能不 受顯著地影響。另一方面,混亂區塊中最近寫入之區段清 早固持於控制器RAM中之混亂區段清單中。再者,來自快 閃記憶體之索引資訊之快取區固持於控制器RAM中,以便 取小化用於位址轉譯之快閃區段存取之數目。用於每一混 亂區塊之索引儲存於快閃記憶體中之混亂區塊索引(CBI) 區段中。 圖16A說明混亂區塊索引(CBI)區段之資料欄位。混亂區 125617.doc -41- 200844999 塊索引區段(CBI區段)含有用於被映射至混亂更新區塊之 邏輯群中之每一區段的索引,從而界定混亂更新區塊或其 關聯原始區塊内之邏輯群之每一區段的位置。CBI區段包 括用於留意混亂區塊内之有效區段的混亂區塊索引搁位、 用於留意用於混亂區塊之位址參數的混亂區塊資訊欄位, 及用於留意儲存CBI區段之元區塊(CBI區塊)内之有效CBI 區段的區段索引搁位。 圖16B說明記錄於專用元區塊中之混亂區塊索引⑴^”區 段的一實例。專用元區塊將被稱作CBI區塊620。當CBI區 段經更新時,其經寫入至CBI區塊620中之下一可用實體區 段位置中。CBI區段之多個複本可因此存在於CBI區塊 中’其中僅最後寫入之複本為有效的。舉例而言,用於邏 輯群LG!之CBI區段已被更新三次,其中最後版本為有效 版本。藉由區塊中最後寫入之CBI區段中的索引集合來識 別CBI區塊中之每一有效區段的位置。在此實例中,區塊 中最後寫入之CBI區段為用於lg^6之CBI區段,且其索引 集合為接替所有先前索引集合之有效索引集合。當CBI區 塊最終變得完全充滿CBI區段時,在控制寫入操作期間藉 由將所有有效區段重寫至新區塊位置來緊密區塊。接著擦 除滿區塊。 CBI區段内之混亂區塊索引欄位含有用於被映射至混亂 更新區塊之邏輯群或子群内之每一邏輯區段的索引項目。 每一索引項目表示用於對應邏輯區段之有效資料所定位處 之混亂更新區塊内的位移。保留索引值指示用於邏輯區段 125617.doc -42- 200844999 之有效資料不存在於混亂更新區塊中,且關聯原始區塊中 之對應區段為有效的。某些混亂區塊索引攔位項目之快取 區固持於控制器RAM中。 CBI區段内之混亂區塊資訊欄位含有一用於存在於系統 中之母一混亂更新區塊的項目’從而記錄用於區塊之位址 參數資訊。此欄位中之資訊僅在CBI區塊中最後寫入之區 段中為有效的。此資訊亦存在於RAM中之資料結構中。 用於每一混亂更新區塊之項目包括三個位址參數。第一 位址參數為與混亂更新區塊相關聯之邏輯群的邏輯位址 (或邏輯群編號)。第二位址參數為混亂更新區塊之元區塊 位址。第三位址參數為混亂更新區塊中所寫入之最後區段 的實體位址位移。位移資訊設定用於在初始化期間掃描混 亂更新區塊以重建RAM中之資料結構的開始點。 區段索引欄位含有用於CBI區塊中之每一有效CBI區段 的項目。其界定與每一容許混亂更新區塊有關之最近最多 寫入之CBI區段所定位處的CBI區塊内之位移。索引中之 位移的保留值指示容許混亂更新區塊不存在。 圖16C為說明存取經歷混亂更新之給定邏輯群之邏輯區 段之資料的流程圖。在更新過程期間,將更新資料記錄於 混亂更新區塊中,而未經改變之資料保持於與邏輯群相關 聯之原始元區塊中。存取混亂更新下之邏輯群之邏輯區段 的過程如下: 步驟650 :開始定位給定邏輯群之給定邏輯區段。 步驟652 :定位CBI區塊中最後寫入之CBI區段。 125617.doc -43- 200844999 步驟654 :藉由查找最後寫入之CBI區段之混亂區塊資訊 攔位來定位與給定邏輯群相關聯之混亂更新區塊或原始區 塊。此步驟可僅在步驟662之前的任何時間執行。 步驟658 :若最後寫入之CBI區段指向給定邏輯群,則定 位CBI區段。進行至步驟662。否則,進行至步驟660。 步驟660 :藉由查找最後寫入之CBI區段之區段索引欄位 來定位用於給定邏輯群之CBI區段。 步驟662:藉由查找經定位之CBI區段之混亂區塊索引攔 位來定位混亂區塊或原始區塊當中之給定邏輯區段。 圖16D為說明根據邏輯群經分割成子群之一替代實施例 的存取經歷混亂更新之給定邏輯群之邏輯區段之資料的流 程圖。CBI區段之有限容量僅可留意預定最大數目之邏輯 區段。當邏輯群具有比單一 CBI區段可處理之邏輯區段多 的邏輯區段時,將邏輯群分割成多個子群,其中一 CBI區 段經指派給每一子群。在一實例中,每一 CBI區段具有用 於追蹤一由256個區段及高達8個混亂更新區塊組成之邏輯 群的足夠容量。若邏輯群具有一超過256個區段之尺寸, 則存在一用於邏輯群内之每一 256區段子群的獨立CBI區 段。假定支援尺寸高達2048個區段之邏輯群,則可存在用 於邏輯群内高達8個子群之CBI區段。 在較佳實施例中,使用一間接索引機制來促進索引之管 理。區段索引之每一項目具有直接及間接欄位。 直接區段索引界定與特定混亂更新區塊有關之所有可能 CBI區段所定位處的CBI區塊内之位移。此欄位中之資訊 125617.doc 44· 200844999 僅在與彼特定混亂更新區塊有關的最後寫入之CBI區段中 為有效的。索引中之位移的保留值指示CBI區段不存在, 因為與混亂更新區塊有關之對應邏輯子群不存在或由於配 置更新區塊而尚未被更新。 間接區段索引界定與每一容許混亂更新區塊有關之最近 最多寫入之CBI區段所定位處的CBI區塊内之位移。索引 中之位移的保留值指示容許混亂更新區塊不存在。 圖16D展示存取混亂更新下之邏輯群之邏輯區段的過程 如下: 步驟670 :將每一邏輯群分割成多個子群且為每一子群 指派一 CBI區段。 步驟680:開始定位給定邏輯群之給定子群的給定邏輯 區段。 步驟682 :定位CBI區塊中最後寫入之CBI區段。 步驟684 :藉由查找最後寫入之CBI區段之混亂區塊資訊 欄位來定位與給定子群相關聯之混亂更新區塊或原始區 塊。此步驟可僅在步驟696之前的任何時間執行。 步驟686 :若最後寫入之CBI區段指向給定邏輯群,則進 行至步驟691。否則,進行至步驟690。 步驟690:藉由查找最後寫入之CBI區段之間接區段索引 欄位來定位用於給定邏輯群之多個CBI區段的最後寫入。 步驟691:已定位與用於給定邏輯群之子群中之一者相 關聯的至少一 CBI區段。繼續。 步驟692 :若經定位之CBI區段指向給定子群,則定位用 125617.doc -45- 200844999 於給定子群之CBI區段。進行至步驟696。否則,進行至步 驟 694。 步驟694 :藉由查找當前定位之CBI區段之直接區段索引 欄位來定位用於給定子群之CBI區段。 步驟696 :藉由查找用於給定子群之CBI區段之混亂區塊 索引攔位來定位混亂區塊或原始區塊當中之給定邏輯區 段。 圖16E說明用於每一邏輯群經分割成多個子群之實施例 之混亂區塊索引(CBI)區段及其功能的實例。邏輯群7〇〇最 初使其完整資料儲存於原始元區塊702中。邏輯群接著經 歷具有專用混亂更新區塊704之配置的更新。在本實例 中,邏輯群700經分割成子群,該等子群a、b、C、D各具 有256個區段。 為了定位子群B中之第/個區段,首先定位CBI區塊62〇中 隶後寫入之CBI區段。最後寫入之CBI區段之混亂區塊資 訊欄位提供用以定位用於給定邏輯群之混亂更新區塊704 的位址。同時’其提供混亂區塊中所寫入之最後區段的位 置。在掃描及重建索引之情況下,此資訊為有用的。 右敢後寫入之CBI區段原來為給定邏輯群之四個cbi區 段中之一者,則將進一步確定其是否確切地為用於含有第 ζ·個邏輯區段之給定子群B的cBI區段。若是,則CM區段之 混I區塊索引將指向用於儲存用於第纟個邏輯區段之資料 的元區塊位置。區段位置可在混亂更新區塊7〇4或原始區 塊702中。 125617.doc -46- 200844999 右隶後寫入之CBI區段原來為給定邏輯群之四個cbI區 段中之一者,但不確切地用於子群B,則查找其直接區段 索引以定位用於子群B之CBI區段。一旦定位此確切(^趴區 段’就查找其混亂區塊索引以定位混亂更新區塊704及原 始區塊702當中之第/個邏輯區段。 右最後寫入之CBI區段原來不為給定邏輯群之四個cbi 區段中之任一者’則查找其間接區段索引以定位四個CBI 區4又中之一者。在圖16E所示之實例中’定位用於子群^^之 CBI區段。接著,用於子群c之此CBI區段查找其直接區段 索引以定位用於子群B之確切CBI區段。該實例展示:當 查找其混亂區塊索引時,發現第/個邏輯區段未經改變且 其有效資料將定位於原始區塊中。 類似考慮適用於定位給定邏輯群之子群C中的第;·個邏輯 區段。該實例展示:最後寫入之CBI區段原來不為給定邏 輯群之四個CBI區段中之任一者。其間接區段索引指向用 於給定群之四個CBI區段中之一者。經指向之四個中之最 後寫入之CBI區段亦原來確切地為用於子群c之cbi區段。 當查找其混亂區塊索引時,發現第y·個邏輯區段定位於混 亂更新區塊704中之指定位置處。 混亂區段清單存在於用於系統中之每一混亂更新區塊的 控制器RAM中。每一清單含有混亂更新區塊中所寫入之區 段兄錄’因為有關CBI區段在快閃記憶體中經最後更新。 用於特定混亂更新區塊之邏輯區段位址之數目(其可固持 於混亂區段清單中)為具有典型值8至16之設計參數。作為 125617.doc -47- 200844999 對用於混亂資料寫人操作之耗用之影響與對初始化期間之 區段掃描時間之影響之間的折衷而確定清單之最佳尺寸。 在系統初始化期間,必要時掃描每一混亂更新區塊以識 別自從其關聯CBI區段中之一者之先前更新而寫入的有效 區段。建構用於每一混亂更新區塊之控制器RAM中的混亂 區段清單。僅需要自界定於最後寫入之CBI區段中的每一 區塊之混亂區塊資訊攔位中之最後區段位址掃描每一區 塊。 當配置混亂更新區塊時,寫入CBI區段以對應於所有經 更新之邏輯子群。將用於混亂更新區塊之邏輯及實體位址 寫入至& #又中之可用混亂區塊資訊棚位中,其中混亂區塊 索引欄位中為空值項目。混亂區段清單在控制器RAM中為 開放的。 當封閉混亂更新區塊時,寫入CBI區段,其中將區塊之 邏輯及實體位址自區段中之混亂區塊資訊欄位中移除。 RAM中之對應混亂區段清單變得不用。 控制器RAM中之對應混亂區段清單經修改以包括被寫入 至混亂更新區塊之區段記錄。當控制器RAM中之混亂區段 清單不具有用於至混亂更新區塊之其他區段寫入之記錄的 可用空間時,寫入用於與清單中之區段有關之邏輯子群的 經更新之C BI區段,且清除清單。 當CBI區塊620變滿時,將有效CBI區段複製至經配置之 擦除區塊,且擦除先前CBI區塊。 位址表 125617.doc •48- 200844999 圖2所示之邏輯至實體位址轉譯模組14 〇負責使主機之邏 輯位址與快閃記憶體中之對應實體位址有關。邏輯群與實 體群(元區塊)之間的映射儲存於分布於非揮發性快閃記憶 體200及揮發性但更敏捷之RAM 130(見圖1)當中的表及清 單集合中。位址表維持於快閃記憶體中,其含有用於記憶 體系統中之每一邏輯群的元區塊位址。此外,用於最近寫 入之區段的邏輯至實體位址記錄臨時固持於RAM中。當在 加電之後初始化系統時,可自快閃記憶體中之區塊清單及 二貝料區段標頭重建此等揮發性記錄。因此,快閃記憶體中 之位址表僅需要被不頻繁地更新,從而導致用於控制資料 之低百分比之耗用寫入操作。 用於邏輯群之位址記錄之階層架構包括RAM中之開放更 新區塊清單、封閉更新區塊清單及維持於快閃記憶體中之 群位址表(GAT)。 開放更新區塊清單為當前開放用於寫入經更新之主機區 段資料之資料更新區塊的控制器RAM中之清單。當區塊經 封閉時,用於區塊之項目經移至封閉更新區塊清單。封閉 更新區塊清單為已被封閉之資料更新區塊之控制器ram中 的清單。在控制寫入操作期間,清單中之項目之子集經移 至群位址表中之區段。 群位址表(GAT)為用於記憶體系統中之所有邏輯主機資 料群的元區塊位址清單。GAT含有一用於每一邏輯群之根 據邏輯位址而被循序地排序的項目。GAT中之第”個項目 含有用於具有位址《之邏輯群的元區塊位址。在較佳實施 125617.doc -49- 200844999 例中,其為快閃記憶體中之表,其包含具有界定用於記憶 體糸統中之每一邏輯群之元區塊位址之項目的區段(被稱 作GAT區段)集合。GAT區段位於快閃記憶體中之一或多個 專用控制區塊(被稱作GAT區塊)中。 圖17A說明群位址表(GAT)區段之資料欄位。GAT區段可 (例如)具有用以含有用於128個鄰接邏輯群之集合之GAT項 目的足夠容量。每一 GAT區段包括兩個組件,亦即,用於 一範圍内之每一邏輯群之元區塊位址的GAT項目集合,及 GAT區段索引。第一組件含有用於定位與邏輯位址相關聯 之元區塊的資訊。第二組件含有用於定位GAT區塊内之所 有有效G AT區段的資訊。每一 G AT項目具有三個攔位,亦 即’元區塊編號、如前文結合圖3 A(iii)所界定之頁標鐵, 及指示元區塊是否已被重新連結之旗標。GAT區段食引列 出GAT區塊中之有效GAT區段的位置。此索引在每一 GAT 區段中,但由GAT區塊中下一寫入之gat區段的版本接 替。因此,僅最後寫入之GAT區段中的版本為有效的。 圖17B說明記錄於一或多個GAT區塊中之群位址表(GAT) 區段的一實例。GAT區塊為專用於記錄gAT區段之元區 塊。當GAT區段經更新時,其經寫入至GAT區塊72〇中之下 一可用實體區#又位置中。G AT區段之多個複本可因此存在 於GAT區塊中,其中僅最後寫入之複本為有效的。舉例而 言,GAT區段255(含有用於邏輯群乙仏州丄山❹^之指標)已 被更新至少兩次,其中最後版本為有效版本。藉由區塊中 最後寫入之G AT區段中的索引集合來識別GAT區塊中之每 125617.doc -50- 200844999 一有效區段的位置。在此實例中,區塊中最後寫入之GAT 區段為GAT區段236,且其索引集合為接替所有先前索引 集合之有效索引集合。當GAT區塊最終變得完全充滿GAT 區段時,在控制寫入操作期間藉由將所有有效區段重寫至 新區塊位置來緊密區塊。接著擦除滿區塊。 如前文所描述,G AT區塊含有用於邏輯位址空間區域中 之邏輯上鄰接之群集合的項目。GAT區塊内之G AT區段各 含有用於128個鄰接邏輯群之邏輯至實體映射資訊。為儲 存用於由G AT區塊所橫跨之位址範圍内之所有邏輯群之項 目所需的G AT區段數目僅佔據區塊中之總區段位置之一小 部分。因此,可藉由將G AT區段寫入至區塊中之下一可用 區段位置處來更新GAT區段。GAT區塊中之所有有效GAT 區段及其位置之索引維持於最近最多寫入之gat區段中之 索引欄位中。GAT區塊中之總區段之由有效gat區段所佔 據的小部分為一系統設計參數,其通常為25%。然而,存 在每一 GAT區塊有64個有效GAT區段之最大值。在具有大 邏輯容量之系統中,可能有必要將GAT區段儲存於一個以 上G AT區塊中。在此情況下,每一 GAT區塊與一固定邏輯 群範圍相關聯。 作為‘ AB L用光用於配置之區塊時所觸發之控制寫入操 作的一部分而執行GAT更新(見圖18)。其與ABL填充及 CBL倒空操作同時被執行。在gAT更新操作期間,一〇Ατ 區段利用來自封閉更新區塊清單中之對應項目的資訊來更 新項目。當更新GAT項目時,將任何對應項目自封閉更新 125617.doc -51- 200844999 區塊清單(CUBL)中移除。舉例而言,基於封閉更新區塊 清單中之第一項目來選擇待更新之GAT區段。將經更新之 區段寫入至G AT區塊中之下一可用區段位置。 當無區段位置可用於經更新之GAT區段時,在控制寫入 操作期間發生GA丁重寫操作。配置新GAT區塊,且以循序 次序而自滿GAT區塊中複製如由GAT索引所界定之有效 GAT區段。接著擦除滿GAT區塊。 GAT快取區為GAT區段中之128個項目之再分中的項目之 控制器RAM 130中之複本。GAT快取區項目之數目為一系 統設計參數,其具有典型值32。每次自GAT區段讀取項目 時,建立用於有關區段再分之GAT快取區。維持多個丁 快取區。數目為具有典型值4之設計參數。在最近最少使 用之基礎上利用用於不同區段再分之項目來覆寫⑽快取 區。 擦除元區塊管理 圖2所不之擦除區塊管理器16〇使用用於維持目錄及系统 控制資訊之清單集合來管理擦除區塊。此等清單分布於控 制器RAM 13G及快閃記憶體·當中。#必須配置擦除元 區塊以用於使用者資料之儲存或用於系統控制資料結構之 儲存時,選擇固持於控制器RAM中之配置區塊清單 (ABL)(見圖15)中的下一可用元區塊編號。類似地,當在 已收回元區塊之後擦除該元區塊時,將其編號添加至亦固 持於控制HRAM中之清除區塊清單(CBL卜相對靜態之目 錄及系統控制資料儲存於快閃記憶體中。此等包括擦除區 125617.doc -52- 200844999 塊清早及列出快閃記憶體中之所有元區塊之擦除狀態的位 70圖(MAP)。擦除區塊清單及MAp儲存於個別區段中且經 記錄至專用元區塊(被稱為MAP區塊)。分布於控制器ram 及快閃記憶體當中之此等清單提供擦除區塊記錄之階層架 構’以有效地管理擦除元區塊使用。 圖18為說明用於使用之控制及目錄資訊之分布及流動以 及擦除區塊之再循環的示意性方塊圖。控制及目錄資料維 持於固持於控制器RAM 130中或駐留於快閃記憶體2〇〇中 之MAP區塊750中的清單中。 在較佳實施例中,控制器RAM 130固持配置區塊清單 (ABL)610及清除區塊清單(CBL)740。如前文結合圖15所描 述’配置區塊清單(ABL)留意哪些元區塊最近經配置用於 使用者資料之儲存或用於系統控制資料結構之儲存。當需 要配置新擦除元區塊時,選擇配置區塊清單(ABL)中之下 一可用元區塊編號。類似地,使用清除區塊清單(CBL)來 留意已被解除配置及擦除之更新元區塊。ABL及CBL固持 於控制器RAM 130中(見圖1)以用於當追蹤相對作用中之更 新區塊時的快速存取及容易操縱。 配置區塊清單(ABL)留意擦除元區塊集區及擦除元區塊 之將為更新區塊之配置。因此,可藉由一屬性來描述此等 元區塊中之每一者,該屬性指定該元區塊是ABL申請中之 配置中之擦除區塊、開放更新區塊,還是封閉更新區塊。 圖18展示含有經擦除ABL清單612、開放更新區塊清單614 及封閉更新區塊清單616之ABL。此外,與開放更新區塊 125617.doc -53- 200844999 清單6 14相關聯的為關聯原始區塊清單6 1 5。類似地,與封 閉更新區塊清單相關聯的為關聯經擦除原始區塊清單 6 1 7。如先前在圖1 5中所展示,此等關聯清單分別為開放 更新區塊清單614及封閉更新區塊清單616之子集。經擦除 ABL區塊清單612、開放更新區塊清單614及封閉更新區塊 清單616均為配置區塊清單(ABL)610之子集,每一者中之 項目分別具有對應屬性。 MAP區塊750為專用於在快閃記憶體200中儲存擦除管理 記錄之元區塊。MAP區塊儲存MAP區塊區段時間系列,其 中每一 MAP區段為擦除區塊管理(EBM)區段760或MAP區 段780。當擦除區塊在配置中被用光且在收回元區塊時被 再循環時,較佳將關聯控制及目錄資料包含於可在MAp區 塊中經更新之邏輯區段中,其中更新資料之每一執行個體 經記錄至新區塊區段。EBM區段760及MAP區段780之多個 複本可存在於MAP區塊750中,其中僅最後版本為有效 的。至有效MAP區段之位置的索引包含於EMB區塊中之欄 位中。在控制寫入操作期間,有效EMB區段總是經最後寫 入至MAP區塊中。當MAP區塊750為滿時,在控制寫入操 作期間藉由將所有有效區段重寫至新區塊位置來緊密MAp 區塊750。接著擦除滿區塊。 每一 EBM區段760含有擦除區塊清單(EBL) 770,其為擦 除區塊群體之子集的位址清單。擦除區塊清單(EBL) 770 充當含有擦除元區塊編號之缓衝器,元區塊編號自擦除區 塊清單(EBL) 770中經週期性地取出以重新填充ABL,且元 125617.doc •54· 200844999 區塊編號經週期性地添加至擦除區塊清單(EBL) 770以重 新倒空CBL。EBL 770充當用於可用區塊緩衝器(ABB) 772、擦除區塊緩衝器(EBB) 774及清除區塊緩衝器(CBB) 7 7 6之緩衝器。 可用區塊緩衝器(ABB) 772含有緊接在先前ABL填充操 作之後的ABL 610中之項目之複本。其實際上為僅在ABL 填充操作之後的ABL之備用複本。 擦除區塊緩衝器(EBB) 774含有先前已自MAP區段780或 自CBB清單776(下文所描述)轉移且可用於在ABL填充操作 期間轉移至ABL 610之擦除區塊位址。 清除區塊緩衝器(CBB) 776含有在CBL倒空操作期間已 自CBL 740轉移且隨後將轉移至MAP區段780或至EBB清單 774之擦除區塊之位址。 MAP區段780中之每一者含有被稱作MAP之位元圖結 構。MAP使用一用於快閃記憶體中之每一元區塊的位元, 該位元用於指示每一區塊之擦除狀態。在MAP中不將對應 於ABL、CBL或EBM區段中之擦除區塊清單中所列出之區 塊位址的位元設定為擦除狀態。 區塊配置演算法從不使用不含有有效資料結構且未經指 定為MAP、擦除區塊清單、ABL或CBL内之擦除區塊的任 何區塊,且因此該任何區塊不可存取用於主機或控制資料 結構之儲存。此提供用於自可存取之快閃記憶體位址空間 中排除具有缺陷位置之區塊的簡單機制。 圖18所示之階層架構允許有效地管理擦除區塊記錄且提 125617.doc -55- 200844999 供儲存於控制器之RAM中之區塊位址清單的完全安全性。 擦除區塊項目在不頻繁基礎上在此等區塊位址清單與一或 多個MAP區段780之間交換。可在斷電之後的系統初始化 期間經由儲存於快閃記憶體中之區段中之擦除區塊清單及 位址轉譯表中的資訊及快閃記憶體中之少量參考資料區塊 的有限掃描來重建此等清單。 用於更新擦除元區塊記錄之階層架構的演算法導致擦除 區塊經配置用於以交錯來自MAP區塊750之位址次序中之 G塊叢發與來自CBL 740之區塊位址之叢發的次序之使 用,其反映主機更新次序區塊。對於大多數元區塊尺寸及 系統記憶體容量,單一 MAP區段可提供用於系統中之所有 元區塊的位元圖。在此情況下,擦除區塊總是經配置用於 以如記錄於此MAP區段中之位址次序之使用。 擦除區塊管理操作 如前文所描述,ABL 610為具有用於可經配置用於使用 之擦除元區塊及最近經配置作為資料更新區塊之元區塊之 位址項目的清單。ABL中之區塊位址之實際數目位於為系 統設計變數之最大限制與最小限制之間。在製 式化之胤項目之數目為卡類型及容量之函數二= 可用擦除區塊之&目由於區塊在壽命期間之故障而減^ 時’可將紙中之項目之數目減少至接近系統之壽命二 束。舉例而言’在填充操作之後,瓶中之項目可指定^ 用於以下目的之區塊。用於部分地寫人之資料更新= 項目(在每—區塊上具有—項目),不超過對同時開放之更 125617.doc -56- 200844999 新區塊之最大值的系統限制。對於用於配置作為資料更新 區塊之擦除區塊,在一至二十個項目之間。對於用於配置 作為控制區塊之擦除區塊,四個項目。 ABL填充操作 當ABL 610經由配置而變得耗盡時,其將需要被重新填 充。在控制寫入操作期間發生用以填充ABL之操作。此在 必須配置區塊、但ABL含有可用於配置作為資料更新區塊 或可用於某一其他控制資料更新區塊之不足的擦除區塊項 目時被觸發。在控制寫入期間,ABL填充操作與gat更新 操作同時發生。 在ABL填充操作期間發生以下行動。 1 ·保持具有當前資料更新區塊之屬性的Abl項目。 2·保持具有封閉資料更新區塊之屬性的ABL項目,除非 用於區塊之項目在同時發生之GAT更新操作中經寫入(在此 情況下,自ABL中移除項目)。 3·保持用於未經配置之擦除區塊的abl項目。 4·緊岔ABL以移除藉由移除項目而產生之間隙,從而維 持項目之次序。 5·藉由自EBB清單附加下一可用項目來完全填充abl。 6·利用ABL中之當前項目來覆寫abb清單。 CBL倒空操作 CBL為具有與ABL相同的對擦除區塊項目之數目之限制 的控制器RAM中之擦除區塊位址清單。在控制寫入操作期 間發生用以倒空CBL之操作。其因此與ABL填充丁更新 125617.doc -57- 200844999 操作或CBI區塊寫入操作同時發生。在CBL倒空操作期 間,項目自CBL 740中經移除且經寫入至CBB清單 776。 MAP交換操作 當EBB清單774為空時,可在控制寫入操作期間週期性 地發生MAP區段780與EBM區段76〇中之擦除區塊資訊之間 的MAP交換操作。若系統中之所有擦除元區塊記錄於ebm 區段760中,則不存在MAP區段78〇且不執行MAp交換。在 MAP交換操作期間,向EBB 774饋送擦除區塊之MAp區段 ❿被看作源MAP區段782。相反地,自CBB 776接收擦除區塊 之MAP區段被看作目的MAP區段784。若僅存在一MAp區 段,則其充當源MAP區段與目的MAP區段兩者,如下文所 界定。 在MAP交換期間執行以下行動。 1 ·基於增量指標來選擇源MAP區段。 2 ·基於不在源MAP區段中的第一CBB項目中之區塊位址 來選擇目的MAP區段。 3·如藉由CBB中之有關項目而界定來更新目的map區 段,且自CBB中移除項目。 4·將經更新之目的MAP區段寫入至MAP區塊中,除非不 存在獨立源MAP區段。 5·如藉由CBB中之有關項目而界定來更新源map區段, 且自CBB中移除項目。 6·將CBB中之剩餘項目附加至EBB。 7·利用自源MAP區段所界定之擦除區塊位址而在可能程 125617.doc •58· 200844999 度上填充EBB。 8.將經更新之源MAP區段寫入至MAP區塊中。 9·將經更新之EBM區段寫入至MAP區塊中。 清單管理 圖18展示各種清單之間的控制及目錄資訊之分布及流 動。出於適宜起見,用以在清單之元件之間移動項目或用 以改變項目之屬性的操作(在圖18中經識別為[A]至[〇])如 下。 [A] 當擦除區塊經配置作為用於主機資料之更新區塊時, 將其在ABL中之項目的屬性自經擦除ABL區塊改變成開放 更新區塊。 [B] 當擦除區塊經配置作為控制區塊時,移除其在abl中 之項目。 [C] 當建立具有開放更新區塊屬性之ABL項目時,將關聯 原始區塊欄位添加至項目以記錄用於經更新之邏輯群之原 始元區塊位址。此資訊自GAT中被獲得。 [D] 當更新區塊經封閉時,將其在ABL中之項目的屬性自 開放更新區塊改變成封閉更新區塊。 [E] 當更新區塊經封閉時,擦除其關聯原始區塊,且將其 在ABL中之項目中之關聯原始區塊欄位的屬性改變成經擦 除原始區塊。 [F] 在ABL填充期間,將在相同控制寫入操作期間位址在 GAT中經更新之任何封閉更新區塊的項目自abl中移除。 [G] 在ABL填充操作期間,當用於封閉更新區塊之項目 125617.doc •59- 200844999 ABL中經移除時,將用於其關聯經擦除原始區塊之項目移 至 CBL。 [H] 當控制區塊經擦除時,將用於其之項目添加至CBL。 [I] 在ABL填充操作期間,將擦除區塊項目自EBB清單移 至ABL,且給出經擦除ABL區塊之屬性。 [J] 在所有有關ABL項目在ABL填充操作期間之修改之 後,ABL中之區塊位址替代ABB清單中之區塊位址。 [K] 與控制寫入期間之ABL填充操作同時,將CBL中用於 _ 擦除區塊之項目移至CBB清單。 [L] 在MAP交換操作期間,將所有有關項目自CBB清單移 至MAP目的區段。 [M] 在MAP交換操作期間,將所有有關項目自CBB清單移 至MAP源區段。 [N] 在MAP交換操作期間之[L]及[M]之後,將所有剩餘項 目自CBB清單移至EBB清單。 [O] 在MAP交換操作期間之[N]之後,如有可能,自MAP ® 源區段中移動除了在[Μ]中所移動之項目以外的項目以填 充EBB清單。 邏輯至實體位址轉譯 為了定位快閃記憶體中之邏輯區段的實體位置,圖2所 示之邏輯至實體位址轉譯模組140執行邏輯至實體位址轉 譯。除了最近經更新之彼等邏輯群以外,可使用駐留於快 閃記憶體200中之群位址表(GAT)或控制器RAM 130中之 GAT快取區來執行轉譯之塊體。用於最近經更新之邏輯群 125617.doc -60- 200844999 之位址轉譯將需要查找用於更新區塊之主要駐留於控制器 RAM 130中的位址清單。用於邏輯區段位址之邏輯至實體 位址轉譯的過程因此視與區段所定位處之邏輯群相關聯之 區塊的類型而定。區塊之類型為:完整區塊、循序資料更 新區塊、混亂資料更新區塊、封閉資料更新區塊。 圖19為展示邏輯至實體位址轉譯之過程的流程圖。實質 上’藉由首先使用邏輯區段位址來定位對應元區塊及實體 區段以查找各種更新目錄(諸如,開放更新區塊清單及封 閉更新區塊清單)。若關聯元區塊不為更新過程之一部 分,則藉由GAT來提供目錄資訊。邏輯至實體位址轉譯包 括以下步驟: 步驟800 :給出邏輯區段位址。 步驟810 :在控制器RAM中之開放更新區塊清單614(見 圖15及圖18)中查找給定邏輯位址。若查找失敗,則進行 至步驟820,否則進行至步驟83〇。 v驟820 ·在封閉更新區塊清單616中查找給定邏輯位 址。若查找失敗,則給定邏輯位址不為任何更新過程之一 部分;進行至步驟870用於GAT位址轉譯。否則進行至步 驟860用於封閉更新區塊位址轉譯。 步驟830:若含有給定邏輯位址之更新區塊為循序的, 則進仃至步驟84〇用於循序更新區塊位址轉譯。否則進行 至步驟850用於混亂更新區塊位址轉譯。 步驟840:使用循序更新區塊位址轉譯來獲得元區塊位 址。進行至步驟88〇。 125617.doc -61 - 200844999 步驟8 5 0 ·使用混亂更新區塊位址轉譯來獲得元區塊位 址。進行至步驟880。 步驟860 :使用封閉更新區塊位址轉譯來獲得元區塊位 址。進行至步驟880。 步驟870 :使用群位址表(GAT)轉譯來獲得元區塊位址。 進行至步驟880。 步驟880 :將元區塊位址轉換成實體位址。轉譯方法視 元區塊是否經重新連結而定。 ® 步驟890 :獲得實體區段位址。 如下更詳細地描述各種位址轉譯過程: 循序更新區塊位址轉譯(步驟84〇) 可直接自開放更新區塊清單614(圖15及圖18)中之資訊 70成用於與循序更新區塊相關聯之邏輯群中之目標邏輯區 段位址的位址轉譯,如下。 1.自清單中之”頁標籤”及”經寫入之區段之數目"攔位確定 目標邏輯區段是位於更新區塊中還是位於其關聯原始區塊 •中。 2·自清單中讀取適於目標邏輯區段之元區塊位址。 3·自適當的”頁標籤”攔位確定元區塊内之區段位址。 混亂更新區塊位址轉譯(步驟85〇) 用於與混亂更新區塊相關聯之邏輯群中之目標邏輯區段 位址的位址轉譯序列如下。 1 ·若自RAM中之混亂區段清單確定區段為最近寫入之區 段,則可直接自其在此清單中之位置完成位址轉譯。 125617.doc -62- 200844999 2· CBI區塊中最近最多寫入之區段在其混亂區塊資料欄 位内含有與目標邏輯區段位址有關之混亂更新區塊的實體 位址。其在其間接區段索引欄位内亦含有與此混亂更新區 塊有關之最後寫入之CBI區段的CBI區塊内之位移(見圖 16A至圖 16E)。 3 ·在RAM中快取此等欄位中之資訊,從而消除了對在後 續位址轉譯期間讀取區段之需要。 4. 讀取藉由步驟3處之間接區段索引欄位而識別之cbi區 _段。 5. 在RAM中快取用於最近最多存取之混亂更新子群之直 接區段索引欄位,從而消除了對用於重複存取同一混亂更 新區塊而執行步驟4處之讀取的需要。 6·步驟4或步驟5處所讀取之直接區段索引攔位又識別與 含有目標邏輯區段位址之邏輯子群有關的CBI區段。 7·自步驟6中所識別之(:趴區段中讀取用於目標邏輯區段 位址之混亂區塊索引項目。 _ 8·可在控制器Ram中快取最近最多讀取之混亂區塊索引 欄位,從而消除了對用於重複存取同一邏輯子群而執行步 驟4及步驟7處之讀取的需要。 9.混亂區塊索引項目界定目標邏輯區段在混亂更新區塊 中或在關聯原始區塊中之位置。若目標邏輯區段之有效複 本在原始區塊中,則藉由使用原始元區塊及頁標籤資訊來 疋位目彳示邏輯區段之有效複本。 封閉更新區塊位址轉譯(步驟860) 125617.doc -63· 200844999 可直接自封閉區塊更新清單(見圖18)中之資訊完成用於 與封閉更新區塊相關聯之邏輯群中之目標邏輯區段位址的 位址轉譯,如下。 1·自清單中讀取經指派給目標邏輯群之元區塊位址。 2.自’月單中之頁標戴"欄位確定元區塊内之區段位址。 GAT位址轉譯(步驟87〇) 若開放或封閉區塊更新清單未參考邏輯群,則該邏輯群 在GAT中之項目為有效的。用於由G AT所參考之邏輯群中 鲁之目標邏輯區段位址的位址轉譯序列如下。 1 ·評估RAM中可用GAT快取區之範圍以確定用於目標邏 輯群之項目是否包含於GAT快取區中。 2 ·若在步驟1中發現目標邏輯群,則〇 at快取區含有包 括元區塊位址與頁標籤兩者之完全群位址資訊,從而允許 轉潭目標邏輯區段位址。 3 ·若目標位址不在GAT快取區中,則必須讀取用於目標 GAT區塊之G AT索引,以識別與目標邏輯群位址有關之 G AT區段的位置。 4·用於最後存取之GAT區塊之GAT索引固持於控制器 RAM中,且可在不需要自快閃記憶體讀取區段之情況下被 存取。 5·用於每一 GAT區塊及每一 GAT區塊中所寫入之區段之 數目的元區塊位址清單固持於控制器RAM中。若所需之 GAT索引在步驟4處為不可用的,則可因此直接自快閃記 憶體中讀取所需之GAT索引。 125617.doc •64· 200844999 6·自藉由步驟4或步驟6處所獲得之GAT索引而界定的 GAT區塊中之區段位置中讀取與目標邏輯群位址有關之 GAT區段。利用含有目標項目之區段的再分來更新GAT快 取區。 7·自目標GAT項目内之元區塊位址及”頁標籤”攔位獲得 目標區段位址。 元區塊至實體位址轉譯(步驟880) 若與元區塊位址相關聯之旗標指示元區塊已被重新連 結,則自BLM區塊讀取有關LT區段,以確定用於目標區段 位址之擦除區塊位址。否則,直接自元區塊位址確定擦除 區塊位址。 暫時儲存區區塊 在另一實施例中,實施一暫時儲存區區塊(”SPB”)以緩 衝被寫入至更新區塊之資料。可視一預定條件而將至非揮 發性記憶體之更新資料記錄於至少兩個交錯流中(諸如, 記錄於更新區塊或暫時儲存區區塊中)。暫時儲存區區塊 用於緩衝最終注定用於更新區塊之更新資料。在一較佳實 施例中’儲存於暫時儲存區區塊中之資料以及儲存於更新 區塊中之資料的索引("SPBI/CBI”)經保持於控制器ram之 資料結構中。此等資料結構允許追蹤及快速存取暫時儲存 區區塊(SPB)及混亂區塊中之所有有效區段。在適♦時 間,如下文中所描述,將卯酊圯酊資料儲存於暫時儲:區 區塊之一頁的一不用部分中。
在此實施例中,圖19所示之位址轉譯經修改以包括MR 125617.doc •65· 200844999 中所緩衝之任何資料之查找。因此,在開放更新區塊810 與循序更新區塊830之間的將為用以確定是否存在SPB中所 緩衝之任何資料的額外查詢框。若不存在,則流程進行至 循序更新區塊830,否則,在進行至元區塊至實體位址轉 譯模組890之前將存在SPB位址轉譯。 暫時儲存區區塊之實施例已描述於Gorobets等人之於 2006年7月13日公開之美國專利申請公開案第US-2006-0155922-A1 號中,標題為"Non-Volatile Memory And
Method With Improved Indexing For Scratch Pad And Update Blocks”。 控制資料管理 圖20說明在記憶體管理之操作過程中在控制資料結構上 所執行之操作的階層架構。資料更新管理操作作用於駐留 於RAM中之各種清單。控制寫入操作作用於快閃記憶體中 之各種控制資料區段及專用區塊且亦與RAM中之清單交換 資料。 在RAM中對ABL、CBL及暫時儲存區區段清單/混亂區段 清單執行資料更新管理操作。當擦除區塊經配置作為更新 區塊或控制區塊時,或當更新區塊經封閉時,更新ABL。 當控制區塊經擦除時或當用於封閉更新區塊之項目經寫入 至GAT時,更新CBL。當區段經寫入至暫時儲存區區塊 時,更新暫時儲存區區段清單。當區段經寫入至混亂更新 區塊時,更新更新混亂區段清單。應瞭解,此處之區段為 寫入資料單元之一實例,其亦被稱作頁。 125617.doc -66- 200844999 控制寫入操作造成來自RAM中之控制資料結構的資訊經 寫入至快閃記憶體中之控制資料結構,其中必要時,跟著 發生快閃記憶體及RAM中之其他支援控制資料結構的更 新。當ABL不含有用於待配置作為更新區塊之擦除區塊的 其他項目時,或當SP區塊經重寫時,觸發控制寫入操作。 在較佳實施例中,在每一控制寫入操作期間執行ABL填 充操作、CBL倒空操作及EBM區段更新操作。當含有EBM 區段之MAP區塊變滿時,將有效EBM及MAP區段複製至經 ® 配置之擦除區塊,且擦除先前MAP區塊。 在每一控制寫入操作期間,寫入一 GAT區段,且相應地 修改封閉更新區塊清單。 當G AT區塊變滿時進行G AT區塊重寫,且將滿區塊中之 資料重新定位至經配置之擦除區塊。 在特定混亂區段寫入操作之後,寫入SPBI/CBI區段。 當SPBI/CBI區塊變滿時進行SPB區塊重寫。將有效 SPBI/CBI區段複製至經配置之擦除區塊,且擦除先前SPB _區塊。 當EBM區段中之EBB清單中不存在其他擦除區塊項目 時,執行如前文所描述的MAP交換操作。 當MAP區塊變滿時進行MAP區塊重寫,且將有效EBM及 MAP區段複製至經配置之擦除區塊,且擦除先前MAP區 塊。 在MAP區塊經移動之每一時機將啟動區段寫入至當前啟 動區塊中。 125617.doc -67· 200844999 當啟動區塊變滿時進行啟動區塊重寫。將有效啟動區段 自啟動區塊之當前版本複製至備用版纟,該備用版本接著 變成當前版本。先前之當前版本經擦除且變成備用版本, 且有效啟動區段經寫回至備用版本。 控制 料之實例為與記憶體區塊管理系統相關聯之目錄 貧訊及區塊配置資訊,諸如,結合圖2〇所描述之資訊。如 前文所描述,控制資料維持於高速度RAM與較慢非揮發性 記憶體區塊中。利用週期性控制寫入來將任何頻繁改變之 控制資料維持於RAM中以更新儲存於非揮發性元區塊中之 等效資訊。以此方式,將控制資料儲存於非揮發性但較慢 的快閃記憶體中,而不需要頻繁存取。將圖2〇所示之諸如 啟動區段、GAT、SBI/CBI及MAP之控制資料結構的階層 架構維持於快閃記憶體中。因此,控制寫入操作造成來^ RAM中之控制資料結構的資訊更新快閃記憶體中之等效控 制資料結構。 如結合圖20所描述,區塊管理系統在其操作期間維持快 閃記憶體中之控制資料集合。此控制資料集合類似於主機 資料而儲存於元區塊中。如此,控制資料本身將受區塊管 理且將經受更新及因此之廢棄項目收集操作。 單次可程式化記憶體(” OTP,,) 存在意欲將資料提交給記憶體而不再次更新資料之特定 記憶體應用。因此,用於此等應用之被稱作單次可程式化 記憶體或OTP記憶體裝置的記憶體裝置不需要提供擦除及 重新程式化設施。OTP記憶體裝置可具有簡化的區塊管理 125617.doc •68- 200844999 系統,藉此減少複雜性及耗用。 本文中所描述之區塊管理系統與OTP記憶體裝置之實施 例相容。實質上對於OTP記憶體,每一區塊被對待為一記 憶體儲存單元。與所描述之可擦區塊管理系統之差異在 於:不擦除區塊。然而,自一區塊至另一區塊之資料的先 佔式重新定位技術可同等地適用於OTP記憶體。 OTP記憶體系統已描述於2006年3月2日公開之美國專利 申請公開案第US-2006-0047920-A1號中,標題為"Method and Apparatus for Using a One-Time or Few-Time Programmable Memory with a Host Device designated for Erasable/Rewriteable Memory" o 先佔式資料重新定位 前文已描述存在控制資料之階層架構,其中較低階層架 構中之控制資料比較高階層架構中之控制資料更經常被更 新。舉例而言,假定每一控制區塊具有待寫入之N個控制 區段,則通常發生以下控制更新及控制區塊重新定位序 列。再次參看圖20,每N個SPBI/CBI更新填滿SP區塊且觸 發SPB重新定位(重寫)及MAP更新。若混亂區塊經封閉, 則亦可觸發GAT更新。每一 GAT更新觸發MAP更新。每N 個GAT更新填滿區塊且觸發GAT區塊重新定位。此外,當 MAP區塊變滿時,其亦觸發MAP區塊重新定位、啟動區塊 更新。此外,當啟動區塊變滿時,其觸發至另一啟動區塊 之作用中啟動區塊重新定位。 因為藉由頂部處之啟動控制資料、繼之以MAP且接著 125617.doc -69- 200844999 GAT而形成階層架構,因此,在某些實例中,在gat更新 之後,將存在”級聯控制更新”,其中將重新定位所有 GAT、MAP及啟動區塊。在由於主機寫入而由混亂或循序 更新區塊封閉造成GAT更新時之情況下,亦將存在廢棄項 目收集操作(亦即,重新定位或重寫)。在混亂更新區塊廢 棄項目收集之彼情況下,將更新SPBI/CBI索引,且其亦可 觸發SP區塊重新定位。因此,在此極端情形中,需要同時 對大量元區塊進行廢棄項目收集。
可看出,階層架構之每一控制資料區塊根據變為經填充 及經重新定位而具有其本身之週期性。若每一者正常地進 行,則將存在大量區塊之相位將對直且觸發同時涉及所有 彼等區塊之大規模重新定位或廢棄項目收 控制區塊之重新定位將花費較長時間且應被避免夺門二 些主機不容忍由該等大規模控制操作所造成之較長延遲。 一舉例而言,當更新用於控制區塊管理系統之操作的控制 貧料時,可發生此不良情形。可存在具有改變程度之更新 頻率的控制資料類型之階層架構,從而導致其_更新區 塊需要以不同速率的廢棄項目收集或重新定位。將存在一 個以上控制資料類型之廢棄項目㈣操作一 &的特定時 間。在極端情形中,用於所有控制資料類型之區塊的重新 定位相位可對直’從而導致所有區塊需要同時重新定 重寫。 125617.doc 200844999 案第 US-2005_0H4365-A1 號中,標題為"Non-Volatile Memory and Method with Control Data Management丨丨。在具 有區塊官理系統之非揮發性記憶體中,實施記憶體區塊之 先佔式重新定位或受控重寫以避免大量控制更新區塊均碰 巧需要同時重新定位之情形。藉由無論何時當前主機操作 亦可谷納内務處理操作而均在區塊經全部填充之前進行控 制區塊之先佔式重新定位來避免此不良情形。詳言之,將 優先權給予具有一具有最快填充速率之資料類型的區塊。 該方法可被看作引入對物品之總混合的某種抖動,以便避 免所述之各種區塊之相位的對準。因此,無論何時出現時 機均冑先佔式地重新定位具有經全部填充之輕微邊限的 快速填充區塊。 利用時間預算分析來排程内部内務處理操作 如前文所描述,在含有控制資料之區塊為滿之情況下, 重新操作將係必要的。在經歷一系列更新之後,經填充之 籲區鬼有有效資料以及廢棄資料。有效資料將被複製 至具^空白空間之另一區塊。此重新定位操作為廢棄項目 收集操作,其中在搶救滿區塊之有效資料且將有效資料複 製至另一區塊之後擦除及再循環滿區塊。重新定位之另一 原因為:當在區塊中已遭遇缺陷時’致使區塊為不可用 ^此對於需要藉由内建式錯誤校正碼之過多錯誤校正或 簡單地不能被校正之彼等缺陷特別適用。重新定位之又一 原因為:需要確保記憶體中之所有區塊之均勻使用,使Γ 沒有區塊受到過多擦除/程式化循環而過早地磨損。仔 125617.doc •71· 200844999 上文所及之重新定位插作為糸統内務處理操作之所有 實例。資料自一區塊至另一區塊之重新定位通常相對^ 時’因為其涉及讀取及寫入實質量之資料。當主機不作用 中地嚙合記憶體時,可在後臺中執行内務處理操作。然 而,當其正在進行中時,拒絕主機向記憶體發送指令且= 至可使記憶體斷電中斷正錢行中之内務處理操 作。一較佳方式為與記憶體執行主機命令同時地在前景中 執行内務處理操作。
Bermett等人之於2006年7月2〇日公開之美國專利申請公 開案第 US_2006-0161728-A1 號(標題為,,ScheduHnf = Housekeeping 〇perations in Flash Mem〇ry 揭示 了連同經建立用於執行特定主機指令之時間預算内之一= 多個該等内務處理操作一起而被執行的主機指令之執行。 洋5之,一個該主機指令為將經接收之資料寫入至記憶 體。一個該内務處理操作為弄平個別區塊之經由重複擦= 及重新程式化而累積的磨損。 最壞情況控制資料管理 根據本發明,提供一改良機制以避免控制資料之可能的 冗長級聯更新。此係藉由為每—控制資料類型而設定一區 塊邊限且在已到達該區塊邊限時之最早時機重寫區塊來完 成。詳言之,將邊限設定為僅足以容納以在可進行重寫之 前的一預定間隔而累積之資料’以便在可進行重寫之前不 全部填充區塊。該預定間隔尤其係藉由考慮在可進行重寫 之前產生最壞情況間隔的主機寫入型樣來破定。用於設定 125617.doc -72- 200844999 邊限之其他考慮包括為每一控制區塊重寫所需之時間及可 用於基於用於儲存主機資料之更«塊之組態之控制區塊 重寫的時間、前景主機操作中所需之時間及主機寫 時。 該改良亦考慮每一級聯控制更新之多個程式錯誤,使得 八月匕夠處理在時序限制内接冑發生之一冑以上或程式 錯誤。此特徵料單次可程式化("οτρ”)記㈣為特職 要的,因為若缺陷在較低層級上未經修補,則風險相當 尚。該改良亦使得能夠在更新區塊集區中保留最小量之區 塊以=於館存控制資料。保留區塊使記憶體控制系統能夠 處理最壞級聯更新,在該最壞級聯更新中,所有控制資料 區塊可潛在地經同時填充,且必須均在相同忙碌週期中被 重寫。若需要為控制資料而保留較少區塊,則更多區塊將 可用於主機資料更新。 本發明之優點包括以下各項。可以最壞情況更新序列來 處理增加數目之錯誤。可避免廢棄項目收#(GC)與控制區 塊緊密之最長組合的最壞情況。舉例而言,混亂Gc比循 序GC花費之時間長’因此可藉由避免與混亂Gc同時進行 控制更新來減少最壞情況指令延時。藉由最佳選擇區塊邊 限(例如,藉由選擇待緊密之較滿控制區塊)及排程待執行 之内部操作來獲得最佳化效能。需要減少數目之保留捧除 區塊來處理最壞情況更新序列。在先佔式㈣操作之情況 下’可更迅速地處理錯誤,因為可重新排程錯誤處理。錯 誤處理之部分錯誤處理及排程完成係可能的。有可能在^ 125617.doc -73- 200844999 後將進行之具有短延時的讀取操作期間(例如 入操作期間)排程ECC錯誤處理。 在下一寫 主機指令操作持續時間之估計 在典型主機指令(諸如,寫入主機資料)中 設計以容納用於使記憶體完成指令之最壞=經 或寫入延時。用於使纪惰^ 月形的暫停 吁用於使。己fe、體執仃指令之實際持 料經寫入至之記憶體區塊的狀態 H貝 δ 5 1 4a
是否包括區塊之間的額外耗時資料重新定位而定:、此= 枓重新定位係由區塊回應於經配置之新區塊之封閉所= ^集區塊之㈣在經擦除及再循環之前料需要廢棄^ 更新區塊集區之組態 區塊通常在其為滿之後或當由於竿 吹』屯么呆原因而不再向其寫入 貝枓時經封閉。影響區塊經封閉之時序的另 組態經開放用於同時更新之更斩”隹「 U㈣如何 、N%欠新之更新£塊集區。因為存在對集 區中之區塊之數目的限制’所以若新區塊經引入至完全群 集之集區中,則必須封閉現有區塊。 UMAX’則將在步驟420中封閉更新區塊當中之最少作用中 者以保持系統在規定限制内。 封閉滿集區中之哪些更新區塊之替代選擇已揭示於 則文已描述支援高達最大數目之同時開放之更新區塊的 實際系統限制。舉例而言,在-結合圖_描述之實施例 中ν驟410測δ式新配置是否將超過可經同時開放用於接 受更新資料之更新區塊的最大數目“。若將超過 125617.doc •74· 200844999
Jason Lin之於2006年9月15日提出之美國專利申請案第 11/532,456號中’標題為"_11〇(11?〇1<(:1謂-;8獄01^(1心
Block Replacement Rules In Non_v〇latile Mem〇ry„。 圖21示意性地說明對用於區塊管理系統之更新區塊之數 目的兩個規定限制。由系統所維持之更新區塊集區中存在 總限制。更新區塊之總數目不能超過藉由混亂更新區塊之 數目Nc與循序更新區塊之數目心之總和所給出的最大值 (UMAX)。因此’更新集區可含有循序更新區塊與混亂更新 區塊之混合物。因為混亂更新區塊更為資源密集的,從而 需要混亂區塊索引(CBI)之額外維持,所以較佳地亦存在 對混亂更新區塊之最大值數目("Ucmax”)的限制。因此,第 一限制需要使更新區塊之總數目NC+NS<=UMAX。第二限制 而要使混亂更新區塊之數目NC<=UCMAX。因此,有可能使 循序更新區塊之數目NS=UMAX,但一般而言,混亂更新區 塊之數目UCMAX小於UMAX。 圖22說明為各種記憶體裝置而最佳化之兩個限制之組合 的典型實例。藉由UMAX”短劃線”UCMAX來指定給定組合。 舉例而言,”3-1”指定允許更新集區中高達最大值三個更新 區塊且其中僅高達一個為混亂更新區塊之區塊管理系統。 類似地’”7-3,’指定支援高達最大值七個更新區塊且其中高 達三個可為混亂更新區塊之區塊管理系統。一般而言,具 有較小記憶體容量之較簡單記憶體系統將更為限制性的, 從而具有較小最大數目。 圖23A、圖23B及圖23C示意性地說明用於將新更新區塊 125617.doc -75· 200844999 引入至更新區塊集區中而導致現有循序區塊之封閉的事件 序列。 圖23A示意性地說明具有如圖22中所描述之"5_2"組態的 更新集區。在此實例中,更新集區經完全群集有最大值五 個可容許更新區塊。更新集區經進一步分割成含有三個循 序更新區塊SI、S2及S3之循序集區1200及含有最大值兩個 混亂或非循序更新區塊C4&C5之混亂集區13〇〇。該實例 展示最少作用中區塊碰巧為循序更新區塊(諸如,Μ 譬 1201)。 在需要配置新更新區塊之情況下,將需要封閉更新集區 中現有更新區塊中之一者以讓出空位。舉例而言,在主機 寫入用於不由集區中現有更新區塊伺服之邏輯區段群之循 序貧料時的情況下,將需要配置新更新區塊以用於記錄資 料。 ' 圖23B示意性地說明封閉最少作用中更新區塊以便為新 φ更新區塊讓出空位。最少作用中更新區塊在此情況下碰巧 為S3 1201 ’且其將經封閉且自更新區塊之集區中經移 除。如前文所描述,循序區塊之封閉通常涉及相對較少之 重新定位(若根本),諸如,利用自其他區塊所複製之資料 來填塞任何剩餘的空白空間。 圖23C不意性地說明在已移除經封閉更新區塊以讓出空 位之後將新近配置之更新區塊引入至集區中。在此情況 下’將為新近配置之更新區塊之s6 1212引入至循序集區 1200中以用於以邏輯上循序之次序來記錄資料。以此方 125617.doc -76 - 200844999 式,不超過所允許之更新區塊之最大數目uMAX。 圖24A、圖24B及圖24C示意性地說明用於將新更新區塊 引入至更新區塊集區中而導致現有循序區塊之封閉的事件 序列。 圖24 A示意性地說明具有如圖22中所描述之’’ 5 -2 ”組態的 更新集區。在此實例中,更新集區經完全群集有最大值五 個可谷許更新區塊。更新集區經進一步分割成含有三個循 序更新區塊SI、S2及S3之循序集區1200及含有最大值兩個 混亂或非循序更新區塊C4及C5之混亂集區1300。該實例 展示待結案之混亂區塊碰巧為混亂更新區塊(諸如,C4 1301)〇 圖24B示意性地說明封閉混亂更新區塊以便為新混亂更 新區塊讓出空位。舉例而言,若循序更新區塊Si開始非循 序地記錄資料且變成混亂更新區塊C 1 13 12,則將封閉現 有混亂區塊(例如,C4 1301)且將其自混亂集區13〇〇中移 除。另一實例可為:當混亂更新區塊為C 4 13 01時變滿。 其將被封閉且在其資料經緊密至新混亂區塊之後自集區中 被移除。如前文所描述,混亂區塊之封閉可涉及合併,其 中將藉由載運經合併資料之新區塊來替代混亂區塊。 圖24C示意性地說明在已移除經封閉混亂更新區塊以讓 出空位之後將新近配置之混亂更新區塊引入至集區中D在 此情況下,為新近配置之混亂更新區塊之C1 1312將替代 經封閉混亂區塊C4 1301且載運經合併資料(見圖24B)。新 近引入至混亂集區1300中之C1 13 12將以邏輯上非循序之 125617.doc -77- 200844999 次序來記錄資料。以此方式,不超過所允許之混亂更新區 塊之最大數目ucmax。 主機指令執行時序 圖25A至圖25D說明記憶體上之主機寫人指令的實例時 序。通常,主機發出用於使記憶體執行之寫入指令。主機 具有期待完成指令時之指定暫停或寫入延時。當記憶體在 ^行主機指令時,其藉由向主機確定忙碌信號而傳遞此事 只。右忙碌仏諕超出寫入延時週期,則主機將暫停且異常 中止寫入指令。若記憶體在延時週期内完成寫入指令,則 其將向主機否定忙碌信號以確定其在執行且就緒以接收下 一指令之就緒信號。 圖25A至圖25D說明執行持續時間▼能由於寫人資料之 性質及資源有限集ϋ中之更新區塊之狀態而〗同的各種情 境。 圖25 Α不意性地說明用於使記憶體執行涉及簡單循序更 新之主機寫入的時序圖。主機寫入丨為簡單更新,其中某 一主機資料經寫入至區塊(諸如,區塊1}。藉由使用圖23八 中之實例,將資料附加至循序更新集區12〇〇中之循序區塊 (比如,Si)。將自圖25A中看出,在不涉及其他資料重新 定位之此簡單情況下,寫入操作良好地在用於寫入指令之 延時週期Tw内完成。類似地,若不涉及其他資料重新定 位,則至混亂集區1300中之混亂區塊的簡單寫入亦將為相 對迅速的。 圖25B示意性地說明用於使記憶體執行涉及循序更新加 125617.doc -78 - 200844999 上另一循序區塊之封閉之主播宜 王機寫入的時序圖。在主機寫入 2中,寫入資料碰巧需要配晉 1新循序區塊以用於記錄資 料。舉例而言,資料屬於當前夫 田月J禾由更新集區中之更新區塊 中之任一者覆蓋的邏輯群。兹 ^ 猎由使用圖23B中之實例,因 為更新集區已經在最大數目七袖 双曰七個更新區塊處,所以首先必 須封閉現有更新區塊中之一者以為新近配置之更新區塊讓 出空位。在此情況下,封閉循序區塊S3。此通常使利用自 另-區塊所轉移之現有資料來填塞其剩餘的空白空間。亦 參考圖23C中之實例’配置新循序區塊%,且主機將接著 將資料寫人至循序區塊S6e冑自圖25B中看出,在此循序
封閉h况下’寫人操作歸因於封閉循序區塊之額外操作而 化費有點較長之時間來完成,但總操作仍良好地在用於寫 入指令之延時週期Tw内。 圖25C示忍性地說明用於使記憶體執行涉及混亂更新加 上另一混亂更新區塊之封閉及重新定位之主機寫入的時序 圖。在主機寫入3中,寫入資料經非循序地寫入至循序區 塊。此具有將循序區塊變成混亂區塊之效應,且有效地需 要將新混亂區塊配置至更新集區中。藉由使用圖24B中之 具例’因為混亂更新集區13〇〇已經在最大數目兩個更新區 塊處’所以首先必須封閉現有混亂更新區塊中之一者(例 如’ C4 1301),以為新近配置之更新區塊讓出空位。在此 情況下’在已將混亂區塊C4之資料重新定位至新近配置之 區塊(例如,〇61312)之後封閉混亂區塊04。亦參考圖24〇 中之實例’配置新混亂區塊C6且新混亂區塊C6替代混亂 125617.doc -79- 200844999 更新集區中之C4。主機將接著將資料寫人至新混亂區塊 C6。將自圖25C中看出,在此混亂封閉情況下,寫入操作 歸因於封閉混亂區塊之額外操作而花費更長時間來完成。 一般而言,混亂區塊之封閉通常需要比循序區塊之封閉多 的資料重新定位,且因此將花費相對較長時間來進行。然 而,組合混亂區塊封閉與混亂寫入之總操作仍在用於寫入 指令之延時週期Tw内。 圖25D示意性地說明詩使記憶體執行涉及混亂更新加 上封閉另…聽更新區塊時之兩:欠通過之主機寫人的時序 圖。除了資料自C4之封閉的重新定位經重複一次以上以 外,該實例類似於圖25C中所說明之實例。此可在來自^ 之資料經合併至中遭遇缺陷時發生。將需要配置 又一新區塊以接收經緊密資料。將自圖25d中看出,在遭 遇錯誤之此混亂封閉情況下,寫入操作將比圖Μ至圖 況所—示之情況花費之時間長。此係歸因於必須將混亂區 鬼之貝料重新疋位兩次。在此情况下,總操作大體上用光 了用於寫人指令之大多數延時週期Tw。用於即時地避免處 理程式錯誤之方法已描述於美國專利巾請公開案第. 2005 0144365.A1號中。實情為,在稍後之時間處理所遭 遇之錯誤。以此方式,以、天士 s心Μ 、 添加至稍後將執行之排程任務之 數目為代價來最小化超過丁〜之危險。 控制資料區塊之重寫 藉 圖26示意性地說明為儲存控制 由使用圖2〇中所給出之實例, 資料而保留之區塊集區 存在四種控制資訊類型 125617.doc -80 - 200844999 其中至少一區塊專用於儲存每一控制資料類型。因此,控 制資料區塊集區1400含有為儲存控制資料而保留之若干區 塊1402。詳言之,map區塊係用於儲存MAP控制資料, GAT區塊係用於儲存^ΑΤ控制資料,SPB區塊係用於儲存 SPBI/CBI控制資料,且啟動區塊係用於儲存啟動區塊控制 資料。 當控制區塊變滿時,内部重寫操作將有效資料自該控制 區塊重新定位至替代集區中之該控制區塊的新區塊。在某 一實施例中,在同時進行重寫級聯之情況下,在集區中保 留若干擦除區塊1406。 最壞情況級聯更新係在啟動區塊、MAP區塊、暫時儲存 區區塊及G AT區塊在同一忙碌週期中經重寫時。與此複 合,級聯更新亦可與主機寫入期間的更新區塊廢棄項目收 集一致。為了避免該等級聯更新,當控制區塊為幾乎滿 時,將在最早可用之時機重寫控制區塊,使得在最壞情況 情境中’將總是存在足以在由於具有臨界時序之主機寫入 而被強制重寫控制區塊之前先佔式地重寫控制區塊的時 間。 、 圖26說明用於控制區塊1402中之每一者的”幾乎滿”㉟阳 值或邊限1404。當用於控制區塊之寫入指標到達此臨限^ 時,將設定旗標以重寫區塊。接著將在下一最早時機^寫 區塊。此先佔式重寫方案亦已揭示於美國專利申往八門。 第US-2005-0144365-Al號中。若此”幾乎滿,,臨限‘二二限 經设定得太高’則在強制進行重寫之前可能 里焉區塊。 125617.doc -81- 200844999 另一方面,若此臨限值經設定得太低,則將比所需的更頻 繁地重寫區塊,且因此增加了維持資料結構之耗用。 在一個以上控制區塊同時變得幾乎滿之情況下,將以一 預定次序來重寫控制區塊,以確保總是存在可用於更新之 自由保留區塊1406,且對一控制區塊之更新將不觸發另一 控制區塊之重寫,從而強制了級聯。 優先化控制資料類型 在一實施例中,當存在申請中之一個以上控制區塊重寫 時’在主機操作中所發現之下一可用時機優先執行具有為 更作用中之控制資料類型的控制區塊重寫。以此方式,需 要留出最小量之保留區塊作為用於控制區塊重寫之資源, 因為一次將僅進行一控制區塊重寫。 圖26說明根據一較佳實施例之以下列次序而被優先化之 控制資料類型或區塊:MAP區塊->GAT區塊->SPB區塊->啟 動區塊。通常,該次序為:更作用中之資料類型將具有經 重寫之較高優先權。再者,藉由在GAT區塊之前重寫MAP 區塊,保證GAT區塊重寫不觸發MAP區塊重寫。此外,在 MAP區塊重寫之後,將舊map區塊傳回至擦除集區且可對 於任何後續控制區塊重寫直接再用舊MAP區塊。SPB之作 用中性視主機寫入型樣而定,且在一替代實施例中,其可 在G AT區塊之前經定等級。啟動區塊經給定最低優先權, 因為其與其他區塊相比經較不頻繁地更新,因此存在重寫 啟動區塊之較少緊急。以此方式,可將控制資料區塊集區 1400中之保留區塊1406之數目減少至最小值,諸如,用以 125617.doc -82- 200844999 支援任何一時間之一重寫的一保留區塊。 設定用於最壞情況主機寫入型樣之先佔式重寫的邊限 藉由確保將臨限值以為允許發生最壞情況主機寫入型 樣,將在任何時間確實地避免級聯更新。制距結束有預 疋數目之頁的邊限來設定用於控制資料區塊㈠列如, MAP GAT、SPB及啟動)中之每一者的臨限值。用於該等 區塊中之每-者的確切邊限將視所使用之級聯避免機制而 定。 最壞情況情境係由每一控制區塊重寫期間轉移之最大量 之^料頁及主機寫入型樣之導致在主機寫入期間用於揹負 控制區塊重寫之最少時機的最壞情況複合。 對每一資料類型之重寫之資料量 藉由使用前文所給出之特定實例記憶體系統,來自每一 控制區塊重寫期間轉移之資料頁之量之點的最壞情況如 下。MAP區塊重寫涉及複製最大值8個map區段及EBM區 段。若每一區段經寫入至一頁中,則將存在9頁待複製至 新MAP區塊。GAT區塊重寫涉及複製以個^八丁區段(作為經 複製至新GAT區塊之16頁),加上至MAP區塊之1頁之EBM 更新,其總計待複製之8頁加上待寫入之一頁。暫時儲存 區區塊重寫涉及將8個暫時儲存區頁(假定更新集區中存在 8頁)之經緩衝主機資料複製至新sp區塊,加上新sp區塊上 之1暫時儲存區索引更新,及至MAP區塊之1頁之1 EBM更 新,其總計待複製之8頁及待寫入之2頁。啟動區塊重寫涉 及複製8個LT區段、8個SPBL區段,及啟動區段,其總計 125617.doc -83- 200844999 1 7頁。若啟動區塊之兩個複本經維持於記憶體中,則複本 被重複。 四種控制資料區塊重寫類型中之每一者將需要顯著時間 來70成。在更新集區小於8或主機資料不需要經同樣多地 緩衝之一實施例中,SPB區塊重寫可比其他區塊重寫快, 因為存在相對較少之頁待複製。
用於最壞情況主機寫入序列期間之各種記憶體組態之控制 區塊重寫可能性的情況研究 特定記㈣下之情況研究將展* :在最壞情 況主機寫入型樣中’有可能在每一主機寫入的情況下得二 一循序區塊封閉(例如,見圖28B)。或者,亦有可能在每 隔一主機寫人的情況下得到—混亂區塊合併。$了:此: :壞:況情境下尋找空位以排程控制資料重寫,視各種時 序而定’若干重寫排程方法為可能的。 執行先佔式控制區塊重寫之理想時間係"揹負"至主機指 之别景執行上。此在新主機指令本身不觸發廢棄項目收 集以使得在主機指令之延時週期内將存在更多時間來執行 控制區塊重寫時為尤其需要的。然而,在若干實例中,主 機才曰令(諸如’主機寫人)將連同額外廢棄項目收集(循序區 塊封閉,或混亂區塊合併)一起被執行。在此等實例中, 將存在較少或甚至不足的時間來揹負控制區塊重寫。
為了保證避免級聯更新,必須結合廢棄項目收集 ^少-先佔式控制區塊重寫…方法將為結合 而 允許-控制區塊重寫’但不結合混亂區塊合併,二序而 125617.doc • 84 - 200844999 封閉通常為較短操作。通常’不可能在—列中觸發若干合 ^。當不存在由主機指令操作所觸發之廢棄項目收集時, 操作時間可支援高達兩個控制區塊重寫。 該方法依賴於在控制區塊變得、絕對滿之前在一便利時間 重寫控制區塊。此等情況研究目的在於關於廢棄項目收集 之,用而尋找最壞指令序列及其所觸發之控制更新。此可 接著用以界定控制區塊應被重寫之次序,及在考慮控制區 塊為幾乎滿之前必須保留多少空間。 給出用於典型更新集區組態(見圖22)之實例計算,從而 區分具有最大混亂合併頻率之最壞情況與具有《盾序封閉之 循序執行之最壞情況。進行以下最壞情況假定: U)每一寫入為至暫時儲存區之單一區段寫入(僅丨忙碌 週期,及至少1控制區塊寫入)。 (2) 每一循序封閉觸發暫時儲存區更新。此在用於此區 塊之暫時儲存區中存在有效主機資料時發生。 (3) 母一混亂合併總是觸發暫時儲存區更新。 (4) 每一循序至混亂轉換觸發暫時儲存區更新。 (5) 在最壞執行期間,map更新中之1者將涉及MAp交 換 (6) 更新集區或區塊清單總是為滿的,因此用於新擦除 凡區塊之每一請求觸發區塊清單釋放(GAT ,及MAp更新) (7) 所有GAT更新將為相同GAT區塊,因為更新不同的 G AT區塊使GAT區塊填充之速率減慢。 圖27A為說明用於具有"7_3"更新集區之記憶體組態的產 125617.doc •85- 200844999 生最大混亂區塊合併頻率之最壞情況寫入型樣的表。如前 文結合圖22所描述,"7-3"更新集區組態為記憶體同時支援 最大值七個更新區塊以用於儲存主機資料且其中最大值三 個更新區塊可為混亂或非循序更新區塊的組態。 更新集區之初始狀態使所有7個更新區塊開放,其中之3 者為混亂更新區塊。主機寫入型樣使得主機混亂地寫入至 每一循序更新區塊,重複地開放新循序區塊,且在下一次 寫入時使新循序區塊成為混亂的。 步驟0 .初始狀態 步驟1 ·封閉混亂區塊1,此需要新元區塊(gat及map 更新)’及至暫時儲存區之寫入。新指令使循序區塊4成為 /%亂的(暫時健存區更新)’且接著可將主機資料寫入至暫 時儲存區。總控制資料觸發:1 GAT更新、1 MAP更新, 及3個暫時儲存區更新。封閉混亂區塊會導致其上之有效 資料經重新定位(或經合併)至另一區塊中。根據該方法, 在此合併耗用之情況下,將在此步驟中不揹負控制區塊之 重寫。 步驟2-4 :如步驟1。因此,可能沒有控制區塊之重寫。 步驟5 :此為進行先佔式重寫之第一時機。新指令開放 新循序更新區塊。存在多餘的更新區塊,因此不需要封閉 另一區塊,但主機寫入可轉向暫時儲存區。至此點,可能 已進行4個MAP更新、4個GAT更新及13個暫時儲存區更 新。 步驟6 :如步驟1 125617.doc -86 - 200844999 步驟7 :如步驟5。至此點,可能已寫入6個map頁、6個 GAT頁及16個暫時儲存區頁。 因此,若邊限經設定為具有用於MAP區塊之6個自由 MAP頁、具有用於GAT區塊之4個自由GAT頁及具有用於 SP區塊之16個自由暫時儲存區頁,則有可能藉由在步驟$ 中重寫MAP及GAT區塊且在步驟7中重寫暫時儲存區來保 證各種控制區塊及時地得到重寫以避免級聯。 圖27B為說明用於具有"7-3"更新集區之記憶體組態的產 生循序區塊封閉之循序執行之最壞情況寫入型樣的表。 更新集區之初始狀態使所有7個更新區塊開放,其中之3 者為混亂更新區塊且滿。主機寫入型樣使得主機混亂地寫 入至滿混亂區塊,且接著重複地開放循序更新區塊。 步驟0 :初始狀態 步驟1 :寫入至已經為滿之混亂區塊1。此觸發合併,該 合併觸發GAT及MAP更新以及暫時儲存區更新。開放新循 序更新區塊且將主機資料寫入至暫時儲存區。 步驟2及步驟3 :如步驟1 步驟4:此為進行先佔式重寫之第一時機。新指令需要 新更新區塊,其封閉現有循序更新區塊。該封閉需要暫時 儲存區寫入,且新區塊需要GAT及MAP更新。至此點,可 能已進行4個MAP更新、4個GAT更新及8個暫時儲存區更 新。 步驟5向前:如在步驟4中,每一者觸發循序封閉,且配 置觸發1 GAT、1 MAP及2個暫時儲存區更新之新區塊。 125617.doc -87- 200844999 假定在步驟4中重寫MAp區塊、在步驟5中重寫gat區塊 且在步驟6中重寫暫時儲存區,則需要將邊限設定為在 MAP區塊中具有6頁 '在GAT區塊中具有^頁及在暫時儲存 區區塊中具有12頁。 圖28A為說明用於具有,n "更新集區之記憶體組態的產 生最大混亂區支鬼合併頻率之最壞情況寫入型樣的表。如前 文結合圖22所描述,”3β1 ”更新集區組態為記憶體同時支援 最大值三個更新區塊以用於儲存主機資料且三個更新區塊 中之至多一者可為混亂或非循序更新區塊的組態。 更新集區之初始狀態使所有3個更新區塊開放,其中之j 者為混亂更新區塊。主機寫入型樣使得主機混亂地寫入至 每一循序更新區塊,重複地開放新循序區塊,且在下一次 寫入時使新循序區塊成為混亂的。 步驟0 :初始狀態 步驟1 :封閉混亂區塊1,此需要新元區塊(GAT& MAp 更新)’及至暫時儲存區之寫入。新指令使循序區塊2成為 混亂的(暫時儲存區更新),且接著可將主機資料寫入至暫 時儲存區。總共1 G AT頁、1 MAP頁及3個暫時儲存區頁。 步驟2 :如步驟1 步驟3 :此為進行先佔式重寫之第一時機。新指令開放 新循序更新區塊。存在多餘的更新區塊,因此不需f封_帛 另一區塊,但主機寫入可轉向暫時儲存區。至此點,可能 已進行3個MAP更新、3個GAT更新及7個暫時儲存區更 新0 125617.doc -88· 200844999 步驟4 :如步驟1 步驟5 :如步驟3。至此點,可能已進行6個MAP更新、6 個GAT更新及11個暫時儲存區更新。 因此,若邊限經設定為具有用於MAP區塊之5個自由 MAP頁、具有用於GAT區塊之3個自由GAT頁及具有用於 SP區塊之11個自由暫時儲存區頁,則有可能藉由在步驟3 中重寫MAP及GAT區塊且在步驟5中重寫暫時儲存區來保 證各種控制區塊及時地得到重寫以避免級聯。 _ 圖28B為說明用於具有”3-1”更新集區之記憶體組態的產 生循序區塊封閉之循序執行之最壞情況寫入型樣的表。 更新集區之初始狀態使所有3個更新區塊開放,其中之J 者為混亂更新區塊且滿。主機寫入型樣使得主機混亂地寫 入至滿混亂區塊,且接著重複地開放循序更新區塊。 步驟0 :初始狀態 步驟1 ·寫入已經為滿之混亂區塊1 ^此觸發合併,該合 併觸發GAT及MAP更新以及暫時儲存區更新。開放新循序 鲁更新區塊且將主機資料寫入至暫時儲存區。至此點,可能 已進行總共2個GAT更新、2個MAP更新及2個暫時儲存區 更新。 步驟2 :此為進行先佔式重寫之第一時機。新指令需要 新更新區塊,其封閉現有循序更新區塊。該封閉需要暫時 儲存區寫入,且新區塊需要GAT及MAP更新。至此點,可 能已進行3個MAP更新、3個GAT更新及6個暫時儲存區更 新0 125617.doc -89- 200844999 步驟3向前:如在步驟2中,每一者觸發循序封閉,且配 置觸發1 GAT、1 MAP及2個暫時儲存區更新之新區塊。 饭疋在步驟2中重寫MAP區塊、在步驟3中重寫GAT區塊 且在步驟4中重寫暫時儲存區,則需要將邊限設定為在 MAP區塊中具有5頁、在GAT區塊中具有4頁及在暫時儲存 區區塊中具有1〇頁。 圖29A為說明用於具有,,3_3,i更新集區之記憶體組態的產 生最大混亂區塊合併頻率之最壞情況寫入型樣的表。如前 文結合圖22所描述,”3-3”更新集區組態為記憶體同時支援 最大值三個更新區塊以用於儲存主機資料且三個更新區塊 中之任一者可為循序或混亂更新區塊的組態。 更新集區之初始狀態使所有3個更新區塊開放,其中之3 者為混亂更新區塊。主機寫入型樣使得主機混亂地寫入至 每一循序更新區塊,重複地開放新循序區塊,且在下一次 寫入時使新循序區塊成為混亂的。 步驟0 :初始狀態 步驟1 :封閉混亂區塊1,此需要新元區塊(GAT及MAP 更新),及至暫時儲存區之寫入。新指令需要新元區塊 (GAT及MAP更新),且轉向暫時儲存區。至此點,可能已 進行總共2個GAT更新、2個MAP更新及2個暫時儲存區更 新。 步驟2及步驟3 :如步驟1 步驟4 :此為進行先佔式重寫之第一時機。新指令開放 新循序更新區塊。存在多餘的更新區塊,因此不需要封閉 125617.doc -90- 200844999 另一區塊,但主機寫入可轉向暫時儲存區。至此點,可能 已進行6個MAP更新、6個GAT更新及8個暫時儲存區更 新。 步驟5及步驟6 :如步驟4 步驟7 :如步驟1 因此,若邊限經設定為具有用於MAP區塊之8個自由 MAP頁、具有用於GAT區塊之6個自由GAT頁及具有用於 SP區塊之10個自由暫時儲存區頁,則有可能藉由在步驟4 中重寫MAP及G AT區塊且在步驟5中重寫暫時儲存區來保 證各種控制區塊及時地得到重寫以避免級聯。 圖29B為說明用於具有”3-3Π更新集區之記憶體組態的產 生循序區塊封閉之循序執行之最壞情況寫入型樣的表。 更新集區之初始狀態使所有3個更新區塊開放,其中之3 者為混亂更新區塊且滿。主機寫入型樣使得主機混亂地寫 入至滿混亂區塊’且接著重複地開放循序更新區塊。 步驟0 :初始狀態 步驟1 :寫入已經為滿之混亂區塊1。此觸發合併,該合 併觸發GAT及MAP更新以及暫時儲存區更新。開放新循序 更新區塊且將主機資料寫入至暫時儲存區。至此點,可能 已進行總共2個GAT更新、2個MAP更新及2個暫時儲存區 更新。 步驟2及步驟3 :如步驟1 步驟4:此為進行先佔式重寫之第一時機。新指令需要 新更新區塊’其封閉現有循序更新區塊。該封閉需要暫時 125617.doc -91- 200844999 儲存區寫入,且新區塊需要GAT及MAP更新。至此點,可 旎已進行7個MAP更新、4個GAT更新及8個暫時儲存區 新。 尺 步驟5向前:如在步驟4中,每一者觸發循序封閉,且配 置觸發1 GAT、1 ΜΑΡ及2個暫時儲存區更新之新區塊。 因此,若邊限經設定為在MAP區塊中具有9頁、在GAt 區塊中具有5頁及在暫時儲存區區塊中具有12頁,則有可 此藉由在步驟4中寫入MAP區塊、在步驟5中寫入GAT區塊 且在步驟6中寫入暫時儲存區來保證各種控制區塊及時地 得到重寫以避免級聯。 錯^^處理 貝料重新定位操作期間之程式錯誤為更臨界的,因為可 能需要再次重新開始耗時操作一可能的發生係在由主機 指令所觸發之混亂區塊合併或循序區塊封閉期間。另一可 能的發生係在控制區塊重寫期間。用以避免級聯之先佔式 控制區塊重寫將需要考慮到此等問題。 以兩種方式中之一者來處理合併期間之程式錯誤。若錯 誤在接近合併之開始發生,則使用另一區塊來重新開始合 併。若錯誤在更接近合併之結束發生,則使用相位錯誤區 塊來儲存剩餘區段。相位程式錯誤處理已揭示於汕“年? 月28日公開之美國專利申請公開案第us_2〇〇5_〇i66〇p_人1 號中。若使用相位錯誤,則將在下一便利時間封閉相位錯 誤區塊且將其資料重新定位至無缺陷區塊。此意謂將延遲 先佔式重寫。為了解決此情形,需要在控制區塊中之每一 125617.doc -92- 200844999 者的邊限中保留更多區段。實質上以與合併期間之方式相 同的方式來處理循序封閉期間之程式錯誤。 程式錯誤亦可在控制資料更新期間發生。一處理錯誤之 方式為將控制資料重新定位至新控制區塊。一替代例為將 區段寫入至控制區塊中之下—可用頁。可接著設定旗標, 因此在下一便利時間重寫此區塊。此將需要在控制區塊之 邊限中保留額外頁。 藉由重複重寫至另一區塊來處理先佔式控制區塊重寫期 間之程式錯誤。一替代例為放棄先佔式重寫且在下一便利 時間嘗試再次重寫。 在兩種情況下,任何其他申請中之先佔式重新均將被延 遲。為了解決此情形,需要在控制區塊中之每一者的邊限 中保留額外區段。 之各種時序而定, 以下為控制區塊重
用於先佔式控制區塊重寫之排程方法 如别文所論述,視主機及記憶體系統 若干控制區塊重寫排程方法為可能的。 寫排程方法之某些實例。 法1為用以執行用於圖27A至圖 一叫-…,闺主圖2813及 2至圖29B中所說明之情況研究之計算的方法。立基 戶tr主機寫入延時允許^的時間來在不存在由指令 所觸發之廢棄項目收集時進行兩 涉及循序封閉時進行一次"廢奈:廢棄項目收集 亂封閉時不進行重寫。在廢棄項目收集涉及混 I不在與混亂區塊合併相同之㈣週期中進行先佔式控 125617.doc -93· 200844999 制區塊重寫。 2·允許與循序區塊封閉相同之忙碌週期中之1先佔式抑 制區塊重寫。 3.當不存在更新區塊廢棄項目收集時,允許2個先佔式 控制區塊重寫。 圖30為列出藉由應用方法!之控制區塊重寫排程而用於 每一控制資料類型之實例計算邊限的表。總之,方法工鹿 將邊限设定為:對於所有更新集區組態,9個map頁用於 MAP區塊、6個GAT頁用於GAT區塊且16頁用於暫時儲存 區區塊。同樣對於待處理之每一錯誤,應將2個額外頁添 加至每一邊限。 方法2基本上假定主機寫入延時允許足夠的時間來進行 短控制區塊重寫(諸如,暫時儲存區重寫),即使主機寫入 已觸發廢棄項目收集亦如此。 1 ·允許任何時間之先佔式暫時儲存區重寫。 2·允許與循序封閉相同之忙碌週期中之丨先佔式控制區 塊重寫。 3·當不存在更新區塊廢棄項目收集時,允許2個先佔式 控制區塊重寫。 圖31為列出藉由應用方法2之控制區塊重寫排程而用於 每一控制資料類型之實例計算邊限的表。總之,方法之應 將邊限設定為:對於所有更新集區組態,2個MAP頁用^ MAP區塊、4個GAT頁用於GAT區塊且3頁用於暫時储存區 區塊同樣對於待處理之每—錯誤,應將2個額外頁添加 125617.doc •94- 200844999 至每一邊限。 :法3藉由檢驗用於重寫中之每一者之待重新定位的頁 之里及該等重寫中之任一者是否可在由主機寫入延時所設 定之剩餘時間内執行來基本上採収定量之方I此方法 將以微追蹤用於每一曹耷香〜 曰 重冩之重新疋位之篁為代價來最有效 地利用主機寫人延時週期。優點在於邊限將在最小值處。 1.計數為每-控制區塊重寫所需之卫作(頁複本之數 目)。 2·允許先佔式㈣區塊重寫,直至所進行之總工作超過 一界定臨限值為止。 圖32為列ώ藉由應用方法3之控制區塊重寫排程而用於 每一控制資料類型之實例計算邊限的表。總之,方法3應 將邊限設定為:對於所有更新集區組態,2個MAP頁用於 MAP區塊、2個GAT頁用於GAT區塊且3頁用於暫時儲存區 區塊。同樣對於待處理之每一錯誤,應將2個額外頁添加 至每一邊限。 除了可以與循序封閉相同之速度來執行混亂封閉的額外 假定以外,方法4類似於方法1。 1·以次序MAP->暫時儲存區_>GAT_>BB來重寫控制區 塊。此允許在SP中保留4個較少頁。 2·允許與循序封閉或混亂緊密相同之忙碌週期中之工先 佔式控制區塊重寫。 3.當不存在更新區塊廢棄項目收集時,允許2個先佔式 控制區塊重寫。 125617.doc -95- 200844999 圖33為列出藉由應用方法4之控制區塊重寫排程而用於 每一控制資料類型之實例計算邊限的表。總之,方法4應 將邊限設定為:對於所有更新集區組態,4個MAP頁用於 MAP區塊、6個GAT頁用於GAT區塊且5頁用於暫時儲存區 區塊。同樣對於待處理之每一錯誤,應將2個額外頁添加 至每一邊限。 改良之先佔式控制資料重新定位 圖34為說明用於控制資料區塊基於最壞情況考慮之先佔 式重寫之機制的流程圖。 步驟1402 ·將非揮發性記憶體組織成區塊。 步驟1404 .維持不同資料類型。 步驟1410 :對於每一資料類型,在區塊為滿之前設定若 干空記憶體單元之邊限,其中該邊限僅足以容納以在區塊 中之資料經允許重新定位之前的一預定間隔而累積之資 料,且該預定間隔係自在區塊中之資料經允許重新定位之 前產生最壞情況間隔的主機寫入型樣來確定。 步驟1420 :將該等不同資料類型之更新儲存於複數個區 塊當中,使得每一區塊實質上儲存相同類型之資料。 步驟1430:回應於儲存資料之區塊到達用於資料類型之 邊限,在允許如此進行時將區塊中之資料重新定位至另一 區塊。除非中斷,否則轉向步驟丨42〇。 圖35為说明用於類似於圖34之先佔式重寫之先佔式重寫 (除了較高等級資料類型之額外優先處理以外)之替代機制 的流程圖。 125617.doc -96 - 200844999 步_:將非揮發性記憶體組織成區塊。 步驟1404 ·維持不$ f 步驟1406 :向不同資料類型指派等級。 步驟141 〇 :對於每一眘 貝科類型,在區塊為滿之前設定若 干空記憶體單元之邊阳 ^ _ _ 邊限’/、中該邊限僅足以容納以在區塊 中之貝料仏允許重新定位之前的一預定間隔而累積之資 料且,亥預疋間隔係自在區塊中之資料經允許重新定位之
刖產生最壞情況間隔的主機寫入型樣來確定。 步驟142G ·將該等不同資料類型之更新储存於複數個區 塊當中,使#每一區塊實質上儲存相$類型之資料。 步驟1430 ·回應於儲存資料之區塊到達用於資料類型 之邊限且在任何類似區塊當中具有最高等級之資料類型, 在允許如此進行時將區塊中之資料重新定位至另一區塊。 除非中斷,否則轉向步驟1420。 圖36說明用於圖34及圖35之流程圖之步驟中之一者的一 替代步驟。步驟1402·為用於圖34及圖35所示之步驟1402的 替代步驟。 步驟1402f :將非揮發性記憶體組織成區塊,每一區塊 經分割成可經共同擦除之記憶體單元。 圖37說明用於圖34及圖35之流程圖之步驟中之一者的另 一替代步驟。步驟1410,為用於圖34及圖35所示之步驟141〇 的替代步驟。 步驟1410!:對於每一資料類变,在區塊為滿之前設定 若干空記憶體單元之邊限,其中該邊限僅足以容納以在區 125617.doc -97- 200844999 塊中之資料經允許 · 重新疋位之刖的一預定間隔而累積之資 且該預定間隔係自在資料區塊經允許重新定位之前產 生最壞情況間隔的主機寫入型樣及自待重新定位之資料量 來確定。 案出於所有目的而將本文中所參考之所有專利、專利申請 案、文章、書、說明書、其他公開案、文件及物品以全文 7用之方式併人本文中。在經併人之公開案、文件或物品 Φ 之任一者與本文件之本文之間的術語之定義或使用中之 任何不一致性或衝突的程度上,本文件中之術語之定義或 使用將佔優勢。 雖然已關於特定實施例而描述本發明之各種態樣,但應 瞭解,本發明有權保護於附加申請專利範圍之全部範疇 内。 【圖式簡單說明】 圖1示意性地說明適用於實施本發明之記憶體系統的主 ❿要硬體組件。 囷2況明根據本發明之一較佳實施例之經組織成實體區 段群(或元區塊)且由控制器之記憶體管理器所管理的記憶 體0 圖3A(i)至圖3A(iii)示意性地說明根據本發明之一較佳實 施例之邏輯群與元區塊之間的映射。 圖3B示意性地說明邏輯群與元區塊之間的映射。 圖4說明元區塊與實體記憶體中之結構的對準。 圖5A說明自不同平面之最小擦除單元之連結而構成的元 1256l7.doc -98- 200844999 區塊。 圖5B說明自每一平面中選擇一最小擦除單元(meu)以用 於連結成元區塊之一實施例。 圖5C說明自每-平面中選擇—個以上MEU以用於連結成 元區塊之另一實施例。 圖6為如在控制器及快閃圯憶體中所實施之元區塊管理 系統的示意性方塊圖。 圖7 A說明以循序次序寫入至循序更新區塊之邏輯群中之 區段的一實例。 圖7B說明以混亂次序寫入至混亂更新區塊之邏輯群中之 區段的一實例。 圖8說明由於兩個獨立主機寫入操作而以循序次序寫入 至循序更新區塊之邏輯群(其在邏輯位址中具有不循序性) 中之區段的一實例。 圖9為說明根據本發明之一般實施例之由更新區塊管理 器用以更新邏輯資料群之過程的流程圖。 圖10為說明根據本發明之一較佳實施例之由更新區塊管 理器用以更新邏輯資料群之過程的流程圖。 圖11A為更詳細地說明圖1 〇所示之封閉混亂更新區塊之 合併過程的流程圖。 圖11B為更詳細地說明圖丨〇所示之用於封閉混亂更新區 塊之緊密過程的流程圖。 圖12A說明邏輯群之所有可能狀態,及在各種操作下該 等所有可能狀態之間的可能轉變。 125617.doc -99- 200844999 圖12B為列出邏輯群之可能狀態的表。 圖13A說明元區塊之所有可能狀態,及在各種操作下該 等所有可能狀態之間的可能轉變。元區塊為對應於邏輯群 之實體群。 圖13B為列出元區塊之可能狀態的表。 圖14(A)至圖14(J)為展示各種操作對邏輯群之狀態以及 對實體元區塊之影響的狀態圖。 圖15說明用於留意用於配置之開放及封閉更新區塊以及 _ 擦除區塊之配置區塊清單(ABL)之結構的一較佳實施例。 圖16A說明混亂區塊索引(CBI)區段之資料攔位。 圖16B說明記錄於專用元區塊中之混亂區塊索引(CBI)區 段的一實例。 圖16C為說明存取經歷混亂更新之給定邏輯群之邏輯區 段之資料的流程圖。 圖16D為說明根據邏輯群經分割成子群之一替代實施例 的存取經歷混亂更新之給定邏輯群之邏輯區段之資料的流 ®程圖。 圖16E說明用於每一邏輯群經分割成多個子群之實施例 之混亂區塊索引(CBI)區段及其功能的實例。 圖17A說明群位址表(GAT)區段之資料攔位。 圖17B說明記錄於GAT區塊中之群位址表(GAT)區段的一 實例。 圖18為說明用於使用之控制及目錄資訊之分布及流動以 及擦除區塊之再循環的示意性方塊圖。 125617.doc •100- 200844999 圖19為展不邏輯至實體位址轉譯之過程的流程圖。 圖2 0說明在記憶體管理之操作過程中在控制資料結構上 所執行之操作的階層架構。 圖21示意性地說明對用於區塊管理系統之更新區塊之數 目的兩個規定限制。 圖22說明為各種記憶體裝置而最佳化之兩個限制之組合 的典型實例。 圖23 A示思性地說明具有如圖22中所描述之組態的 •更新集區。 圖23B示意性地說明封閉最少作用中更新區塊以便為新 更新區塊讓出空位。 圖23C示意性地說明在已移除經封閉更新區塊以讓出空 位之後將新近配置之更新區塊引入至集區中。 圖24A示意性地說明具有如圖22中所描述之"5·2"組態的 更新集區。 圖24Β示意性地說明封閉混亂更新區塊以便為新混亂更 新區塊讓出空位。 圖24C示意性地說明在已移除經封閉混亂更新區塊以讓 出空位之後將新近配置之混亂更新區塊引入至集區中。 圖25Α示意性地說明用於使記憶體執行涉及簡單循序更 新之主機寫入的時序圖。 圖25B示意性地說明用於使記憶體執行涉及循序更新加 上另一循序區塊之封閉之主機寫入的時序圖。 圖25C示意性地說明用於使記憶體執行涉及混亂更新加 125617.doc -101 - 200844999 上另一混亂更新區塊之封閉及重新定位之主機寫入的時序 圖。 圖25D示意性地說明用於使記憶體執行涉及混亂更新加 上封閉另一混亂更新區塊時之兩次通過之主機寫入的時序 圖。 圖26示意性地說明為儲存控制資料而保留之區塊集區。 圖27A為說明用於具有"7-3"更新集區之記憶體組態的產 生最大混亂區塊合併頻率之最壞情況寫入型樣的表。 圖27B為說明用於具有”7_3”更新集區之記憶體組態的產 生循序區塊封閉之循序執行之最壞情況寫入型樣的表。 圖28A為說明用於具有"3-丨"更新集區之記憶體組態的產 生最大混亂區塊合併頻率之最壞情況寫入型樣的表。 圖28B為說明用於具有"3_丨"更新集區之記憶體組態的產 生循序區塊封閉之循序執行之最壞情況寫入型樣的表。 圖29A為說明用於具有”3_3”更新集區之記憶體組態的產 生最大混亂區塊合併頻率之最壞情況寫入型樣的表。 圖29B4吞兄明用於具有”3-3,,更新集區之記憶體組態的產 生循序區塊封閉之循序執行之最壞情況寫入型樣的表。 圖3〇為列出藉由應用方法丨之控制區塊重寫排程而用於 每一控制資料類型之實例計算邊限的表。 —圖31為列出藉由應用方法2之控制區塊重寫排程而用於 每一控制資料類型之實例計算邊限的表。 /32為列出藉由應用方法3之控制區塊重寫排程而用於 母一控制資料類型之實例計算邊限的表。 125617.doc 200844999 —圖33為列出藉由應用方法4之控制區塊重寫排程而用於 母一控制資料類型之實例計算邊限的表。 圖34為說明用於控制資料區塊基於最壞情況考慮之先佔 式重寫之機制的流程圖。 圖35為說明用於類似於圖34之先佔式重寫之先佔式重寫 (除了較鬲等級資料類型之額外優先處理以外)之替代機制 的流程圖。 圖36說明用於圖34及圖35之流程圖之步驟中之一者的一 替代步驟。 圖37說明用於圖34及圖35之流程圖之步驟中之一者的另 一替代步驟。 【主要元件符號說明】 10 主機 20 記憶體系統 100 控制器 110 介面/介面模組 120 處理器 121 選用之共處理器 122 ROM 124 可程式化非揮發性記憶體 130 RAM 134 配置區塊清單(ABL) 136 清除區塊清單(CBL) 140 邏輯至實體位址轉譯模組 125617.doc -103- 200844999 150 更新區塊管理器模組 160 擦除區塊管理器模組 170 元區塊連結管理器 200 記憶體 210 群位址表(GAT) 220 混亂區塊索引(CBI) 230 擦除區塊清單(EBL) 236 GAT區段
240 MAP 255 GAT區段 610 配置區塊清單(ABL) 612 經擦除ABL清單 614 開放更新區塊清單 615 原始區塊清單 616 封閉更新區塊清單 617 經擦除原始區塊清單 620 CBI區塊 700 邏輯群 702 原始元區塊 704 混亂更新區塊 720 GAT區塊 740 清除區塊清單(CBL) 750 MAP區塊 760 擦除區塊管理(EBM)區段 125617.doc -104- 200844999 770 擦除區塊清單(EBL) 111 可用區塊缓衝器(ABB) 774 擦除區塊缓衝器(EBB) 776 清除區塊缓衝器(CBB) 780 MAP區段 782 源MAP區段 784 目的MAP區段 1200 循序集區 ⑩ 1201 循序更新區塊S3 1212 循序區塊S6 1300 混亂集區 1301 混亂或非循序更新區塊C4 1312 混亂更新區塊C1 1400 控制資料區塊集區 1402 區塊 1404 臨限值或邊限 ® 1406 擦除區塊/自由保留區塊 125617.doc -105-

Claims (1)

  1. 200844999 十、申請專利範圍: 1 · 一種記憶體,其包含: 一經組織成區塊之非揮發性記憶體; 、隹持於該記憶體中之_或多種資料類型; ^用於每一貝料類型之邊限,該邊限為一區塊為滿之 :的右干空記憶體單元,使得該邊限僅足以容納以在該 £塊中之資料經允許重新定位之前的一預定間隔而累積 之資料1預定間隔係自在該區塊中之資料經允許重新 •定位之前產生-最壞情況間隔的-主機寫入型樣來確 定; 複數個區塊,其用於儲存該一或多種資料類型之更 新’其中該等區塊中之每_者在其中實質上儲存相同類 型之資料;及 讀取/寫入電路,其用於回應於一儲存資料之區塊到達 用於該資㈣型之該邊限而在允許將㈣塊巾之資料重 新定位至另一區塊時予以進行。 籲2·如請求項1之記憶體,其中: 操作該記憶體包括一至該記憶體之主機寫入,且 該預定間隔視在該區&中之資料允許重新定位之前 產生一最大間隔的一最壞情況主機寫入型樣而定。 3·如請求項1之記憶體,其中: 該預定間隔視區塊之產生待重新定位之最大量之資料 的一最壞情況組態而定。 " 4·如請求項1之記憶體,其中: 125617.doc 200844999 該等不同資料類型具有預定等級;且 重新定位資料之該讀取/寫入電路係回應於一儲存資料 之區塊到達用於該資料類型之該邊限且在任何類似區塊 當中具有一最高等級之資料類型。 5, 如請求項4之記憶體,其中具有該最高等級之該資料類 型為期望最快地填充該等區塊之資料類型。 6. 如4求項1之記憶體,其中該等不同f料類型為該記憶 體用以管理該等區塊之控制資料。 7·如請求項6之記憶體,其中該等不同控制資料類型包括 控制该等區塊之供應的控制資料。 如明求項6之δ己憶體,其中該等不同控制資料類型包括 關於儲存於該等區塊中之資料之位置的控制資料。 9·如請求項6之記憶體,其中該區塊中之資料經允許在一 主機指令在該記憶體上之執行期間重新定位。 10·如明求項〗之圮憶體’其中在該區塊中之資料經允許重 新疋位之前的該預定間隔視為重新定位該區塊中之該等 資料所需之時間而定。 如哨求項1之δ己憶體,其中在該區塊中之資料經允許重 新之位之前的該預定間隔視如何組態一經開放用於接收 主機資料之區塊集區而定。 12.如請求項J之記憶體,其中在該區塊中之資料經允許重 新定位之前的該預定間隔視由一主機指令所設定之一最 大時間而定。 13 ·如明求項丨之記憶體,其中每一區塊中之該等資料可經 125617.doc 200844999 14. 15. 16. 17.
    18. 19.20. 21.
    22. 23. 24. 25. 共同擦除。如請求項2之記憶體,其中每一區塊中之該等資料可經 共同擦除。如請求項3之記憶體,其中每一區塊中之該等資料可經 共同擦除。 如請求項4之記憶體,其中每一區塊中之該等資料可經 共同擦除。 如請求項5之記憶體,其中每一區塊中之該等資料可經 共同擦除。如請求項6之記憶體,其中每一區塊中之該等資料可經 共同擦除。 如請求項7之記憶體,其中每一區塊中之該等資料可經 共同擦除。 如請求項8之記憶體,其中每一區塊中之該等資料可經 共同擦除。 如請求項9之記憶體,其中每一區塊中之該等資料可經 共同擦除。 如請求項10之記憶體,其中每一區塊中之該等資料可經 共同擦除。如請求項11之記憶體,其中每一區塊中之該等資料可經 共同擦除。 如請求項12之記憶體,其中每一區塊中之該等資料可經 共同擦除。 如請求項1之記憶體,其中該記憶體為一種單次可程式 125617.doc 200844999 化記憶體。 26·如請求項1之記憶體,其中該記憶體為快閃EEPR〇m。 27. 如請求項1之記憶體,其中該記憶體嵌入於一可卸除式 記憶卡中。 28. 如請求項1至27中任一項之記憶體,其中該記憶體具有 各儲存一個資料位元之記憶體單元。 29·如請求項1至27中任一項之記憶體,其中該記憶體具有 各儲存一個以上資料位元之記憶體單元。 ® 3 0 · -種記憶體,其包含: 一經組織成區塊之非揮發性記憶體; 維持於該記憶體中之一或多種資料類型; 一用於每一資料類型之邊限,該邊限為一區塊為滿之 別的右干空§己彳思體早元’使得該邊限僅足以容納以在該 區塊中之資料經允許重新定位之前的一預定間隔而累積 之 > 料,ό亥預疋間隔係自在該區塊中之資料經允許重新 定位之前產生一最壞情況間隔的一主機寫入型樣來確 ®定; 複數個&塊’其用於儲存該一或多種資料類型之更 新,其中該等區塊中之每一者在其中實質上儲存相同類 型之資料;及 用於重新定位資料之構件,用於回應於一儲存資料之 區塊到達用於該資料類型之該邊限而在允許將該區塊中 之資料重新定位至另一區塊時予以進行。 31·如請求項30之記憶體,其中: 125617.doc 200844999 該等不同資料類型具有預定等級;且 該用於重新定位資料之播杜 十(構件係回應於一儲存資料之區 塊到達用於該資料類型之兮遠 之忒邊限且在任何類似區塊當中 具有一最高等級之資料類型。 32·如請求項30或31之記情I#,甘士 匕G體,其中該記憶體具有各儲存一 個資料位元之記憶體單元。 33.
    如請求項30或31之記怜I#,使士 U體其中該記憶體具有各儲存 個以上資料位元之記憶體單元。 一種操作一記憶體之方法,其包含: 將一非揮發性記憶體組織成區塊; 維持一或多種資料類型; 對於每-資料類型,在一區塊為滿之前設定若干空記 憶體單元之-邊限,其中該邊限大體上^以容納以在該 區塊中之資料經允許重新定位之前的一預定間隔而累積 之資料; 將該一或多種資料類型之更新儲存於複數個區塊當 中使付母區塊實質上餘存相同類型之資料;及 回應於一儲存資料之區塊到達用於該資料類型之該邊 限,在允許將該區塊中之資料重新定位至另一區塊時予 以進行。 35·如請求項34之方法,其中: 操作該記憶體包括一至該記憶體之主機寫入,且 該預定間隔視在該區塊中之資料經允許重新定位之前 產生一最大間隔的一最壞情況主機寫入型樣而定。 125617.doc 200844999 36.如晴求項34之方法,其中: 該預定間隔視區塊之產生待重新定位之最大量之資料 的一最壞情況組態而定。 、 37·如請求項34之方法,其進一步包含: 若資料類型多於一種,則向每一資料類型指派一等 級;且其中 該重新定位資料係回應於一儲存資料之區塊到達用於 該貧料類型之該邊限且在任何類似區塊當中具有一最高 1 等級之資料類型。 38.如請求項37之方法,其中具有該最高等級之該資料類型 為期望最快地填充該等區塊之資料類型。 39·如請求項34之方法,其中該等不同資料類型為該記憶體 用以管理該等區塊之控制資料。 40·如哨求項39之方法’其中該等不同控制資料類型包括控 制該等區塊之供應的控制資料。 41.如睛求項39之方法,其中該等不同控制資料類型包括關 於儲存於該等區塊中之資料之位置的控制資料。 42·如明求項39之方法,其中該區塊中之資料經允許在一主 機指令在該記憶體上之執行期間重新定位。 43.:請求項34之方法,其中在該區塊中之資料經允許重新 之#的該預疋間隔之該確定包括:為重新定位該區 塊中之該等資料所需之時間。 a求項34之方法’其中在該區塊中之資料經允許重新 定位之前的該預定間隔之該確定包括:如何組態一經開 125617.doc 200844999 放用於接收主機資料之區塊集區。 45. 46. 47.
    49. 如凊求項34之方法, 定位之前的該預定間 設定之一最大時間。 如請求項34之方法, 同擦除。 如請求項35之方法, 同擦除。 如睛求項36之方法, 同擦除。 如請求項37之方法, 同擦除。 其中在該區塊中之資料經允許重新 隔之該確定包括:由一主機指令所 其中每一區塊中之該等資料可經共 其中每一區塊中之該等資料可經共 其中每一區塊中之該等資料可經共 其中母一區塊中之該等資料可經共 50·如清求項38之方法, 同擦除。 5 1 ·如請求項3 9之方法, 同擦除。 鲁52·如請求項40之方法, 同擦除。 53·如請求項41之方法, 同擦除。 54·如請求項42之方法, 同擦除。 55·如請求項43之方法, 同擦除。 其中每一區塊中之該等資料可經共 其中母一區塊中之該等資料可經共 其中每一區塊中之該等資料可經共 其中每一區塊中之該等資料可經共 其中每一區塊中之該等資料可經共 其中每一區塊中之該等資料可經共 125617.doc 200844999 56.如請求項44之方沐甘 ^ t^ 去,其中母一區塊中之該等資料可經共 同擦除。 57·如請求項45之方法 仗由立 ^ , 乃去,其中母一區塊中之該等資料可經共 同擦除。 、 58·如.月求項34之方法,其中該記憶體為一種單次可程式化 記憶體。 59·如#求項34之方法,其中該記憶體為快閃EEpR〇M。 60.如明求項34之方法,其中該記憶體嵌入於一可卸除式記 • 憶卡中。 61·如明求項34至60中任一項之方法,其中該記憶體具有各 儲存一個資料位元之記憶體單元。 62·如明求項34至6〇中任一項之方法,其中該記憶體具有各 儲存一個以上資料位元之記憶體單元。
    125617.doc
TW096138384A 2006-10-12 2007-10-12 Non-volatile memory with worst-case control data management and methods therefor TW200844999A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/549,040 US20080091871A1 (en) 2006-10-12 2006-10-12 Non-volatile memory with worst-case control data management
US11/549,035 US20080091901A1 (en) 2006-10-12 2006-10-12 Method for non-volatile memory with worst-case control data management

Publications (1)

Publication Number Publication Date
TW200844999A true TW200844999A (en) 2008-11-16

Family

ID=39052642

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096138384A TW200844999A (en) 2006-10-12 2007-10-12 Non-volatile memory with worst-case control data management and methods therefor

Country Status (4)

Country Link
JP (1) JP2010507147A (zh)
KR (1) KR20090088858A (zh)
TW (1) TW200844999A (zh)
WO (1) WO2008045839A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI404071B (zh) * 2009-06-23 2013-08-01 Phison Electronics Corp 能識別快閃記憶體中錯誤資料的控制電路及儲存系統與方法
TWI408689B (zh) * 2009-04-14 2013-09-11 Jmicron Technology Corp 存取儲存裝置的方法及相關控制電路
TWI413984B (zh) * 2008-10-16 2013-11-01 Silicon Motion Inc 快閃記憶體裝置以及資料更新方法
TWI426528B (zh) * 2009-09-30 2014-02-11 Phison Electronics Corp 用於快閃記憶體的區塊管理方法、控制器與儲存系統

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101269366B1 (ko) * 2009-02-12 2013-05-29 가부시끼가이샤 도시바 메모리 시스템 및 메모리 시스템의 제어 방법
DE102011107435A1 (de) * 2011-07-15 2013-01-17 Giesecke & Devrient Gmbh Verfahren zum Erkennen von gelöschten Speicherbereichen
KR101889298B1 (ko) * 2011-11-08 2018-08-20 삼성전자주식회사 불휘발성 메모리를 포함하는 메모리 장치 및 불휘발성 메모리의 제어 방법
US20240143171A1 (en) * 2022-07-06 2024-05-02 Samsung Electronics Co., Ltd. Systems, methods, and devices for using a reclaim unit based on a reference update in a storage device
US20240012579A1 (en) * 2022-07-06 2024-01-11 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for data placement in a storage device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
KR100654429B1 (ko) * 2004-03-03 2006-12-06 삼성전자주식회사 무선 스테이션의 트래픽을 동적으로 제어하는 방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI413984B (zh) * 2008-10-16 2013-11-01 Silicon Motion Inc 快閃記憶體裝置以及資料更新方法
TWI408689B (zh) * 2009-04-14 2013-09-11 Jmicron Technology Corp 存取儲存裝置的方法及相關控制電路
TWI404071B (zh) * 2009-06-23 2013-08-01 Phison Electronics Corp 能識別快閃記憶體中錯誤資料的控制電路及儲存系統與方法
TWI426528B (zh) * 2009-09-30 2014-02-11 Phison Electronics Corp 用於快閃記憶體的區塊管理方法、控制器與儲存系統

Also Published As

Publication number Publication date
WO2008045839A1 (en) 2008-04-17
KR20090088858A (ko) 2009-08-20
JP2010507147A (ja) 2010-03-04

Similar Documents

Publication Publication Date Title
TWI272483B (en) Non-volatile memory and method with block management system
JP4931810B2 (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
US7783845B2 (en) Structures for the management of erase operations in non-volatile memories
US7774392B2 (en) Non-volatile memory with management of a pool of update memory blocks based on each block's activity and data order
TWI400608B (zh) 在一主機系統與一可重新程式化的非揮發性大量儲存系統之間傳輸資料之方法、在一快閃記憶體系統中之控制器之操作方法以及大量儲存記憶體系統
US7624239B2 (en) Methods for the management of erase operations in non-volatile memories
US8214583B2 (en) Direct file data programming and deletion in flash memories
US20080091871A1 (en) Non-volatile memory with worst-case control data management
TW200844999A (en) Non-volatile memory with worst-case control data management and methods therefor
US20080091901A1 (en) Method for non-volatile memory with worst-case control data management
US7779056B2 (en) Managing a pool of update memory blocks based on each block's activity and data order
US20060184722A1 (en) Direct data file storage implementation techniques in flash memories
EP1758027B1 (en) Non-volatile memory and method with control data management
JP4682261B2 (ja) 不揮発性メモリおよびクラスベースの更新ブロック置換規則のための方法
KR20070012630A (ko) 데이터 런 프로그래밍
KR20080038363A (ko) 직접적인 데이터 파일 저장 메모리들에서의 데이터 통합 및가비지 수집
TWI269154B (en) Non-volatile memory and method of storing data in a non-volatile memory