TW200535854A - Data run programming - Google Patents

Data run programming Download PDF

Info

Publication number
TW200535854A
TW200535854A TW093141372A TW93141372A TW200535854A TW 200535854 A TW200535854 A TW 200535854A TW 093141372 A TW093141372 A TW 093141372A TW 93141372 A TW93141372 A TW 93141372A TW 200535854 A TW200535854 A TW 200535854A
Authority
TW
Taiwan
Prior art keywords
data
adaptive
block
blocks
logical
Prior art date
Application number
TW093141372A
Other languages
English (en)
Other versions
TWI280581B (en
Inventor
Alan W Sinclair
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 US10/749,189 external-priority patent/US7433993B2/en
Priority claimed from US10/841,118 external-priority patent/US20050144363A1/en
Application filed by Sandisk Corp filed Critical Sandisk Corp
Publication of TW200535854A publication Critical patent/TW200535854A/zh
Application granted granted Critical
Publication of TWI280581B publication Critical patent/TWI280581B/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Description

200535854 九、發明說明: 【發明所屬之技術領域】 本發明一般係關於非揮發性記憶體系統的操作,更明確 言之’係關於此類記憶體系統内資料的處置。 【先前技術】 如今有許多商業上成功的非揮發性記憶體產品,尤其是 、j i卡為形式,其採用形成於一或多個積體電路晶片上 的快閃電可抹除可程式化唯讀記憶體(mectrically Erasabie and Programmable Read 〇niy Mem〇ry ; EEpR〇M)單元之陣 列。一記憶體控制器(其通常但不一定位於單獨的積體電路 晶片上)與一主機(該卡以可移除方式連接到該主機上)連接 並控制該卡内記憶體陣列的操作。此類控制器通常包括一 微處理器、某非揮發性唯讀記憶體(R〇M)、一揮發性隨機 存取記憶體(RAM)以及一或多個特殊電路,例如,在程式 化與讀取資料期間當資料通過該控制器時,從資料計管= 誤校正碼(ECC)的特殊電路。某些市隹卡"^ C〇mpaCtFlashTM(CF)卡、多媒體卡(_〇、安全數位(SD) 卡、智慧媒體卡、個人標籤(P標籤)與記憶棒卡。主機包括 個人電腦、筆記型電腦、個人數位助理(pDA)、各種資料通 信裝置:數位相機、蜂巢式電話、可攜式聲頻播放器、汽 車聲音系統及同樣類型的設備。除 k 了兄憶卡實施方案之外, 可替代地將此類型的記憶體嵌入夂 各種類型的主機系統。 有兩個一般記憶體單元陣列靼 J木構已應用到商業中,即 NOR與NAND。在典型的NOR陳列由 °己fe體早元係連接於 98673.doc 200535854 鄰近的位元線源極與汲極擴散體之間,該等擴散體沿行方 向延伸,並且控制閘極係連接至沿單元列延伸的字線。一 記憶體單元包括至少一儲存元件,其位於該源極與汲極之 間的單元通道區域之至少一部分之上。儲存元件上已程式 化的電荷位準因而控制該等單元的操作特徵,於是可藉由 向已定址的記憶體單元施加適當的電壓而讀取該等單元。 此類單兀的範例、其在記憶體系統中的使用及其製造方法 係在美國專利第 5,070,032、5,095,344、5,313,421、 5,315,541、5,343,063、5,661,053 與 6,222,762號中說明,該 等專利連同此申請案中引用的所有專利與專利申請案係以 引用方式全文併入本文中。 NAND陣列利用兩個以上記憶體單元(例如16或^個)之 串列串’其連同-或多個選擇電晶體連接在個別位元線與 一麥考電位之間,以形成單元行。字線橫跨大量此等行内 的單元而延伸。一行内的個別單元係在程式化期間藉由使 該串内的其餘單元硬開啟’使流過一串的電流取決於該已 定址單元中所儲存的電荷之位準,而加以讀取與驗證。 NAND架構陣列的範例及其作為記憶體系統之部分的操作 係在美目 4 W 第 5,570,3 15、5,774,397、6,〇46,935 與 6,522,580號中說明。 目前快閃EEPROM陣列的電荷儲存元件,如先前所引用 的專利中所論述,係、最常見的導電㈣閘極,其通f係由 導電摻雜的多晶石夕材料所形成。可用於快閃εε_系統 的替代類型之記憶體單元㈣非導電介電材料替代導電浮 98673.doc 200535854 動間極來以非揮發性方式館存電荷。由氧化石夕、 =化石夕(GNQ)所形成的三層介電f係夾人—極 與該記憶體單元通道上一半導電基板之表面之間。^極 電子從該單元通道注入該氮化物而程式化單元,在^將 物中該等電子受到捕獲並館存於一受限區域中 化物而加以抹除。採用介電館存元Π: 1口特疋早兀結構與陣列择 請公開案第2003/()1_93巾。 、、人的錢專利申 存的電荷儲存於一電㈣ 5早70中’其表不-或多位元的資料。—儲存元件 的電荷位準控制其記憶體 vT)’其係用作讀取單元之館存狀姨之其:屋(通常表示為 摩視窗分成若干範圍,該記體;元::或將臨界電 之每—狀態對應n此#|^# W 一儲存狀態 _此專轭圍係由保護帶分開,該等 匕括-標稱感測位準,其允許決定個別單元的儲存 。因電荷干擾在相鄰或其他相關記憶體單元、頁面或 :龙中所執仃的知式化、讀取或抹除操作而使此等儲存位 曾偏移。因A,錯誤校正碼(ECC)通常係藉由該控制器來計 :’並且係與所程式化的主機資料—起儲存,並且在讀取 』間使用以驗證資料並視需要執行一定等級的資料校正。 而且’偏移電荷位準在干擾操作使其完全偏移出其已定義 心圍並引起讀取錯誤資料之前,可隨時間恢復到其狀態 —的中心。此程序’稱為資料更新或擦除,係說明於美 國專利第 5,532,962與 5,909,449 中。 98673.doc 200535854 二口同=大多數積體電路應用中—樣,快閃EEPROM記憶 月豆:兀陣列中亦存在縮小用於實施某些特定積體電路功能 所需的石夕基板面積之壓力。一直需要增加可储存於給定面 積之石夕基板中的數位資料量,以便增加給定尺寸記憶卡及 其它類型封裝的儲存容量,或同時增加容量及縮小尺寸。 :種用於增加資料儲存密度的方式係每記憶體單元及/或 母储存单凡或元件儲存一個以上的資料位元。 !存元件儲存位準電厂堅範圍之視窗分成兩個以上嶋而 兀成。使用四個此類狀態允許每個單元儲存兩位元資料, 八個狀態允許每個儲存元件儲存三位元資料,等等。使用 浮動閘極之多狀態快閃EEPR0M結構及其操作係說明於美 國專利第5,〇43,9㈣5,172,338號巾,岐用介電f浮動間 極的結構則係說明於前述美國專利申請公開案第 3/01_93號中。多狀態記憶體單元陣列的選定部分亦 可因各種原因’以美國專利第5,93〇,167與MAW號中所 述的方式,而在兩種狀態(二進制)中操作。 。。典型快閃EEPR〇_列的記憶體單元係分成一起抹除之 單元的離散區塊。亦即,抹除區塊係抹除單位,即可同時 抹除的最小數目之單元。每個抹除區塊通常儲存一或多個 頁面的資料’該頁面係程式化與讀取的最小單位,儘管一 個以上的頁面可在不同的子陣列或平面中平行地加以程式 化或讀取。每個頁面通常儲存一或多個區段的資料,區段 的尺寸係由主機系統定義。—範例性的區段包括512位元组 的使用者資料(遵循—針對磁碟機建立的標準),再加上若干 98673.doc 200535854 位兀組關於使用者資料及/或其所館存之抹除區塊的負擔 記憶體通常配置為在每個抹除區塊内具有16、 5、、面並且每個頁面儲存-或數個主機區段的資 料。 、 為了&加將使用者f料程式化人職體陣財以及從呈 綱用者資料期間的平行度,通常將陣列分成子陣列:、 H平面,其包含其自己的資料暫存器與其他電路,以 允+平仃才木作’以便將多個區段的資料同時程式化到數個 或所有平面中的每一個平面或從數個或所有平面中的每一 個平,同時讀取多個區段的資料。單一積體電路上的陣列 可在貫體上分成多個平面,或每個平面可由單獨的一或多 個積體電路晶片所形成。此類記憶體實施方案的範例係說 明於吳國專利第5,798,968與5,請,192號中。 在某些記憶體系統中,亦可將實體的記憶體單元分組成 兩或多個區域。-區域可為實體記憶體或記憶體系統之任 ^已分割的子集,會有一特定範圍的邏輯區塊位址映射到 β子集中。例如’可將能夠儲存64百萬位元組資料的記悻 體系統分成四個區域,並且每㈣域館存16百萬位元㈣ 貧料。接著,亦可將邏輯區塊位址的範圍分成四個群組, 向:個區域之每-區域之抹除區塊指派一群組。在—典型 的貫鈀方案中’邏輯區塊位址會受到限制’以至於絕不會 將每-區塊位址的資料寫人到邏輯區塊位址所映射到的^ -實體區域的外部。在分成多個平面(子陣列)(各具有盆自 己的定址、程式化與讀取電路)的記憶體單元陣列中,每個 98673.doc 200535854 區域較佳係包括來自多個平面的抹除區塊,通常來自每一 平面的抹除區塊數目相同。區域主要用來簡化諸如邏輯至 實體轉換的位址管理,從而得到較小的轉換表格,所需用 於保存此等表格的較少RAM記憶體,以及用於定址目前活 動之記憶體區域之較快存取時間,但因為其限制性質,可 能導致次於最佳的磨損平衡。 為了進-步有效地管理記憶體,可將抹除區塊鏈接在一 起,以形成虛擬的區塊或元區塊。亦即,將每一區塊定義 為包括來自每-平面的-抹除區塊。元區塊的❹係於美 國專利第6,763,424號中說明。元區塊係藉由—主機邏輯區 塊位址識別為用於程式化與讀取資料的目的地。同樣,一 兀區塊的所有抹除區塊係被一起抹除。以此類大區塊及/或 凡區塊操作的記憶體系統中的控制器執行若干功能,包括 從一主機接收的邏輯區塊位址(LBA)以及記憶體單元陣列 内的實體區塊編號(PBN)之間的轉換。該等區塊内的個別頁 面通常係由區塊位址内的偏移所識別。位址轉換通常包括 使用邏輯區塊編號(LBN)與邏輯頁面的中間項。 儲存在元區塊中的資料經常得到更新,元區塊中所發生 更新的可能性隨著元區塊之資料容量增加而增加。一元區 塊之已更新的區段通常係寫入另一元區塊。作為相同程式 化操作的部分,通常亦將未改變的區段從原始元區塊複製 到新的元區塊,以整理資料。或者,未改變的資料可保留 於原始的元區塊,直至隨後與已更新的資料再次整理成單 一的元區塊。 98673.doc -10- 200535854 才夂衣未改變的區段可能合辦.適制 」月匕㈢彡日加複衣所需的時間並且增加 圮憶體陣列中資料所佔據的空間, & u局執仃抹除操作之後 才能使用原始的元區塊。於制去对错 匕兀奴衣未改交的區段係在邏輯上將 主機檔案分段為不同的元區塊之结果 ^匕现心、、、口禾。如果一元區塊包含 兩主機標案的部分,則更新該等播案之_亦包括複製儲存 在相同元區塊中的另一檔案的部分。當元區塊變大時,所 複製的部分亦變大。因此,隨荖元 I現有7L 塊變大,邏輯分段變 為較大的問題。 通常的做法係’將某些額外的抹除區塊保持於已抹除區 塊集區中來操作大區塊或元區塊系統。當更新小於一抹除 區塊容量的-或多頁資料時,通常係將已更新的頁面從該 集區寫入-抹除區塊’並將未改變頁面之資料從原始的抹 除區塊複製到抹除集區區塊。前述美國專利第6,763,424號 中說明了此技術的變化。隨時間過去,由於重新寫入及更 新主機資料檔案’許多抹除區塊最終會使其相對較少的頁 面包含有效的資料,而其餘頁面則包含不再流動的資料。 為了能夠有效地使用陣列的資料儲存容量,有效資料之邏 輯上相關的資料頁面係隨時間從多個抹除區塊的片段聚集 在一起,並且一起整理成較少數目的抹除區塊。此程序通 常稱為「廢料收集」。 【發明内容】 可將資料儲存在一記憶體陣列的適應性元區塊中。適應 性元區塊的尺寸可針對欲儲存的資料而進行訂製。可根據 貧料的性質(控制資料、來自主機的資料),或可根據資料内 98673.doc -11 - 200535854 的邊界(例如檔案之間的邊界),來決定適應性元區塊尺寸。 根據資料來配置適應性元區塊可減小邏輯分段的影響。 · 所含資料等同於-記憶體陣列之—抹除區塊中之資料的· 邏輯群組係由邏輯上連續的區段所形成。適應性邏輯區塊 係由邏輯群組所形成。適應性邏輯區塊可能包含不同數目 的邏輯群組。將個別適應性邏輯區塊儲存在一記憶體陣列 的個別適應性元區塊中。一適應性元區塊中抹除區塊的數 目等於一對應適應性邏輯區塊中邏輯群組的數目。因而, 適應性元區塊具有可變數目之抹除區塊。一元區塊的抹除 # 區塊可能來自記憶體陣列之少於全部的平面。一次可程式 化一個以上的適應性元區塊。可根據欲儲存的資料來形成 適應性元區塊。可使用大適應性元區塊來獲得程式化期間 的同平灯度。可使用較小的適應性元區塊來提供所儲存資 料的有效更新。 可形成適應性邏輯區塊,使得適應性邏輯區塊之間的邊 界反映資料中的邊界,例如檔案或資料串流之間的邊界。 藉由以此方式訂製適應性邏輯區塊,可減少記憶體陣列内 _ 資料的複製。如果更新資料,則可形成新的適應性邏輯區 塊來以少量舊資料保存已更新的資料。因此,如果再次更 新相同的資料,則僅有少量的舊資料需要複製。 如果部分地填充適應性邏輯區塊,則可將資料複製到較 , 小的適應性邏輯區塊。此可在已部分填充的適應性邏輯區 塊被程式化之前完成,或其可在已部分填充的適應性邏輯 區塊被程式化於一適應性元區塊中之後完成,在該情形下, 98673.doc -12- 200535854 匕&已"卩分填充之適應性邏輯區塊之適應性元區塊係標記 為過期。將較小的適應性邏輯區塊程式化至記憶體陣列中 車乂 i的適應性元區塊。因而,記憶體陣列中可節省空間。 在使用非連續更新之元區塊(混沌區塊)來保存更新資料 之=構中,可改用適應性元區塊。可根據所更新的邏輯位 =圍來選擇適應性元區塊的尺寸。如果將適應性元區塊 可製為一特定的邏輯位址範圍,則可更有效地 中的更新,因為資料的複製較少。 犯圍 —藉由媒體官ί里器來執行適應十生元區土鬼的形$以及所儲存 貝料之位置的記錄。一媒體管理器保持可用抹除區塊的記 錄。亦藉由媒體管理器來保持所儲存資料之位i的記錄。 所儲存資料之位置的記錄係保持在對於每一邏輯群組均具 有一項目的表格(或列表)中。針對每一邏輯群組的項目指 =包含邏輯群組的適應性元區塊(以及對應的適應性邏^ 區塊)之尺寸、其適應性邏輯區塊内邏輯群組的位置以及元 區塊之多個抹除區塊之一的實體位置。 非揮發性隨機存取記憶體(NVRAM)可與將資料儲存在適 應性元區塊中的快閃記憶體陣列結合使用。在將資料程式 化於快閃記憶體之前’可將NVRAM用作保存資料的資料緩 衝器。當t料位於NVRAM中時,可決定其如何被有效地程 式化。可將數個資料串流保存於NVRAM中並以一有效的方 式-起程式化。NVRAM亦可提供—替代的儲存位置用於特 定的資料,以替代快閃記憶體陣列的一部分。在此申請案 中’可將NVRAM配置為與快閃記憶體類似地使用。可將 98673.doc -13- 200535854 NVRAM分成尺寸與快閃記憶體之抹除區塊㈣的單位。 NVRAM可能具有―實體位址範圍,以便為儲存於卿㈣ 中的邏輯群組指派—在該證施實體位址範圍内的實體 位址H邏輯群_繁地得収新,射將其指派給 請AM。因而,無需在快閃記憶體陣列中進行複製與抹除 即可發生更新。NVRAM中的資料更新比快閃記憶體中更為 有效’但如果斷電’資料不會像在揮發性記憶體中 失。 7 、 諸如槽案邊界之類的資料€界發生於欲被儲存於快閃記 憶體中的資料之中。如果以邏輯群㈣單位來定址欲儲存 的資料,則邏輯群組之間的邊界可能與資料邊界不一致。 因而,邏輯群組以及由邏輯群組所形成的元區塊(邏輯區 塊)包含資料邊界。如果大的元群組與元區塊包含資料邊 界’則更新檔案可能需要複製大量的資料。其使用系統資 源’並且降低將新資料寫入記憶體陣列的速度。 可形成適應性元區塊,以將資料邊界儲存在最小尺寸的 適應性元區塊中。藉由將資料邊界程式化於最小尺寸的元 區塊中,可減少隨後更新檔案中的f料期間f料的複製。 *發生檔案更新時,包含檔案的原始元區塊包含過期的資 料。某些原始的元區塊包含非為已更新檔案之部分的資料◊ 此等資料可能不是過期的,因此可能需要在抹除並重新使 用原始元區塊之前被複製到新的位置。藉由使此類原始的 元區塊較小,可減少所複製的資料量。如果使用由一 ^除 區塊所組成的適應性元區塊,則複製少於一邏輯群組的資 98673.doc 14 200535854 料。可平行地程式化此類適應性元區塊,以使已縮小的適 應性兀區塊尺寸不必減小程式化期間所用的平行性。 某些原始的元區塊可能未填滿資料,例如,其中檔案結 尾處的貪料邊界係在原始的元區塊中並且在資料邊界之後 媒貝料。可將此類原始元區塊中的資料複製到元區塊,其 尺寸係調節為以最小的空白空間保存資料。此可節省記憶 體陣列中的空間。可平行地程式化較小的適應性元區塊。 平行地加以程式化之適應性元區塊可能包括重新定位的資 料舁主機貝料,因此在將主機資料寫入該記憶體陣列的同 時執行重新定位操作。 在某些記憶體系、統中,主機可向記憶體控制器提供關於
錯由一次寫入一 個以上之適應性元 之避輯邊界(例如標案邊 位置的資訊。根據主機所提供(或以其 邊界位置,可以對準格式直接將資料 ,而不必首先以中間格式儲存於記憶 可將不包含邏輯邊界的資料部分直接 的資料部分儲存在最小尺寸的元區 此一元區塊本身係慢的,故可首先 供一串列快閃緩衝器來儲存一來自 寫入記憶體陣列中的資料部分。_ 尺寸的元區塊所組成,以便以最大 從該串列快閃緩衝器複製資料時, 上之適應性元區塊而以高平行度寫 98673.d〇, 200535854 入資料。因此,可首#蔣私 最大的平行性寫入由 尺寸元區塊的資料以 多個。寫入串列快閃緩衝器’隨後藉由平行地寫入 境尺寸4塊而以高平行度複製到最小尺寸元區 塊。以此方式,即佶名 閃緩在使用小7^塊之情況下,-串列快 力於间千订度(因此保持高性能)。對於中間 尺寸的7G區塊,可直接 接將貝科寫入s亥記憶體陣列,或首先 了2據兀區塊的尺寸來緩衝資料。 當儲存於記憶體中的一資 俜儲存#田f 、科邛刀之母一端處之邏輯邊界 1:存於取小尺寸之元區塊中時,可將該資料部分視為以 70王對準的方式儲存。如果_立山M、m p ’、 尺寸Μ - r 1 知的邈輯邊界係儲存於最小 尺寸的兀區塊中,而另一 四 的避輯邊界並非儲存於最小尺 了的π £塊中,則以部分 如杲&⑽^I 刀對羊的方式來儲存一資料部分。 如果兩邈輯邊界皆未儲存於 對進古斗、μ 士 j八丁之兀&塊中,則以非 :::存一資料部分。當更新-資料部分時,… "於其所更新之資料的對準程度來儲存。 【實施方式】 記憶體架構及其操作 首先茶考圖1A,-快閃記憶體包括一記… 一控制器。在所示範例中 〜月旦早兀陣列與 包括一己,H 個積體電路裝置(晶片川與13 透過資料、命令盥狀π +々 輯包路17。邈輯電路17 接,而且為陣列13提# Μ制為19連 記憶體陣列晶片的數目可為與感測=他支援。 量而定。記憶體單元陣列可夕視所提供的儲存容 平夕』了位於早_晶片上,或可由多個 98673.doc 200535854 晶片上的記憶體單元所組成。該控制器與部分或整個陣列 可替代地組合於單一積體電路晶片上,但此做法目前並非 一經濟的選擇。 一典型控制器1 9包括一微處理器2 1 ; 一唯讀記憶體 (ROM)23,其主要用來儲存韌體;以及一緩衝器記憶體 (RAM)25,其主要用來暫時儲存寫入記憶體晶片丨丨與^或 從圮憶體晶片11與13讀取的使用者資料。緩衝記憶體乃可 為揮發性或非揮發性記憶體。電路27與記憶體陣列晶片連 接,而電路29透過連接3丨與主機連接。在此範例中,資料 的兀整性係藉由以專用於計算該代碼的電路33計算而 决定。當使用者貧料從主機傳輸至快閃記憶體陣列以作儲 存吋,忒電路根據資料計算一 Ecc,並將該代碼儲存於記 fe 中。當隨後從記憶體讀取該使用者資料時,其再次通 過私路33,該電路藉由相同的演算法計算ECC,並將該代 碼與已計异出且與資料儲存在一起的Ecc作比較。如果其 相付’則可確認資料的完整性。如果其不同,則根據所用 的特定ECC演算法,可識別並校正該等錯誤位元,最高達 該演算法所支援的數目。 认圖1A之記憶體之連接31與主機系統之連接31,匹配,圖⑺ 2出其一範例。圖丨八之主機與記憶體之間的資料傳輸通過 |面兒路35。一典型主機亦包括一微處理器叨、一用於儲 杨體碼的ROM 39以及RAM 41。其他電路與子系統们通 书^括问谷置貧料儲存磁碟機,用於鍵盤之介面電路、監 視為寺,視特定的主機系統而定。此類主機之一些範例包 98673.doc -17- 200535854 括桌上型電腦、膝上型雷 土电細、手持式電腦、掌上型電腦、 個人數位處理(P⑽naldigitalassistant;pDA) Mp3及立 播放器、數位相機、攝像機、電子遊戲機、無線; 有、·泉笔話裝置、答錄機、語音記錄器、網路路由器等等。 圖1A之記憶體可實施為—小型封閉卡,纟包含_制哭以 及戶付其記憶體陣列電路裝置,其形式上與圖此主:以 可料方式連接。亦即,匹配的連接31與31,允許一卡斷開 :移:至另-主機,或藉由將另一卡連接至主機而加以取 。或者,可將該記憶體陣列裝置封閉於另—+中, 可與包含控制器與連接31的卡電性及機械性地連接。料 另一替代方案,可將圖Μ記憶體嵌入圖此主機内,其 中可使連接31與31,為永久性。在此種情形下, 憶體連同其他組件包含於主機的包覆内。作為另 =可將諸如記憶體晶片叫記憶體晶片直接連接:主機 糸=之連接3Γ’而在兩者之間不具有記憶體控制器。在此 ==下’可藉由主機系統的微處理器㈣執行記憶體控 制為的功能。 圖2說明-記憶體陣列的—部分,其中將記憶體單元群聚 ’、'、抹除&塊’每一抹除區塊中的單元可作 的部分而一起加以姑^ ^及门士 不于私1乍 除的最小單位。未除,通“同日讀除。抹除區塊係抹 圖2之個別記憶體單元抹除區塊之尺寸可變化,但 上實用的形式在個別的抹除區塊中包括單一的資料區段:、 圖3說明此一資料區段的内容。使用者資料51通常為512位 98673.doc -18 - 200535854 元組。除了使用者資料51之外,還有負擔資料,直包括祀 據使用者請所計算㈣⑶、與區段資料及/或區段 == 未除區塊相關的參數55以及根據參數55計算: 一壬何其他可能包括的負擔資料。或者,可根於 使用者資料51與參數55來計算單一的Ecc。 豕 週::::ΓΓ可能包括與抹除區塊所經歷的程式化/抹除 週期之數目相_—數量,此數量在每_週期或某一數目 狀後传以更新。但將此經歷數量用在磨損平衡演算 位:,規則地將邏輯區塊位址重新映射至不同的實體區塊 以使所有抹除區塊的使用量(磨損)均勻。經歷數量的 兩β、用法係要根據不同抹除區塊所經歷的週期數目來改變 $及其他程式化、讀取及/或抹除參數。 之:等參數55亦可包括指派給記憶體單元之每一館存狀態 的值之指示’稱為其「旋轉」。其對磨損平衡亦有有利 數亦可將—或多個旗標包括於指示狀況或狀態的參 t _亦可將用於程式化及/或抹除該抹除區塊的電壓位 ^曰不儲存於參數55内,此等電壓係隨著抹除區塊所經
At-的 JγΛ .μ y 之豆’一 人其他因素的變化而得以更新。該等參數55 M他乾例包括抹除區塊内任何有缺陷單元之識別、被映 射至此管·騎ρ % 、収鬼中的資料之邏輯位址以及在主要抹除區塊 知、有缺陷^7 +主 ^ ㈡形下任何替代抹除區塊的位址。用在任何記 體系統中&姿 且,u 的乡數55之特定組合將根據設計而變化。而 了將部分或全部負擔資料儲存於專用於此一功能的抹 匕于、座中,而 ’而非包含使用者資料或負擔資料所屬的抹除區 98673.doc -19- 200535854 塊中。 與圖2之單一資料區段抹除區塊不同的係圖4的多區段抹 除區塊。一示範性的抹除區塊59,仍然係最小的抹除單位, 包含四個頁面〇至3,每一頁面係最小的程式化單位。一或 多個主機資料區段係儲存於每一頁面中,通常還儲存包括 至少從該區段之資料計算出的ECC之負擔資料,並且可能 以圖3之資料區段為形式。 重新舄入整個抹除區塊的資料通常包括將新的資料程式 化於一抹除區塊集區的可用抹除區塊中,原始抹除區塊接 著被抹除並置於抹除集區中。當更新抹除區塊之少於全部 頁面之資料時,通常將已更新的資料儲存於已抹除區塊集 區中一抹除區塊的一頁面中,並將其餘未改變頁面中的資 料從原始的抹除區塊複製到新的抹除區塊中。接著抹除原 始的抹除區塊。此大區塊管理技術之變化包括將已更新的 資料寫入另一抹除區塊的一頁面中,而無需從原始抹除區 塊移動資料或抹除資料。此導致具有相同邏輯位址的多個 頁面。藉由某一方便的技術來識別最近的資料頁面,例如 作為區段或頁面負擔資料中的一攔位而記錄的程式化時 間。 圖5中說明另一多區段抹除區塊配置。此處,將總的記憶 體單凡陣列實體上分成兩或多個平面,圖中說明四個平面〇 至3。每一平面係一記憶體單元子陣列,其具有本身的資料 暫存為、感測放大為、定址解碼器等,以便很大程度上可 獨立於其他平面而操作。所有的平面可位於單一的積體電 98673.doc -20- 200535854 路裝置上或多個裝置上,一範例係由一或多個不同的積體 電路裝置形成每一平面。圖5之範例性系統中的每一抹除區 塊包含16個頁面P0至P15,每一頁面具有一、二或多個主機 資料區段以及一定負擔資料之容量。 元區塊 圖ό中5兒明另一 s己丨思體單元配置。每一平面包含大量的抹 除區塊。為增加操作的平行度,邏輯上鏈接不同平面内的 抹除區塊,以形成元區塊。圖6中說明一此類區塊。可在邏 輯上定址每一元區塊,並且該記憶體控制器指派並追蹤形 成個別元區塊之抹除區塊。該主機系統提供以區段串流為 形式的資料。將此區段串流分成邏輯區塊。此處,邏輯區 塊係邏輯資料單位,其包含與記憶體陣列之元區塊中所含 數目相同的資料區段。記憶體控制器保持儲存每—邏輯區 塊的位置的記錄。圖6之此類邏輯區塊61,例如,係藉由邏 輯區塊位址(LBA)所識別,該邏輯區塊位址(lba)係藉由控 制器映射到構成元區塊的區塊之實體區塊編號(pBN)中。元 區塊的所有區塊係一起被抹除,並且一般同時程式化與讀 取來自每一區塊的頁面。 圖7顯示儲存於記憶體陣列中的資料。主機以資料區段串 流75的形式傳送資料。將該等區段形成為邏輯區塊η、”。 然後將邏輯區塊程式化至元區塊。例如,將邏輯區塊”程 式化至元區塊74。圖7顯示具有四個平面的記憶體陣列%。 元區塊74具有來自每一平面〇、】、2與3的一抹除區塊。元 區塊74橫跨該陣列之所有平面而延伸,以便平行地程式化 98673.doc 21 200535854 所有平面。因此,元區塊的尺寸通常係由陣列中平面的數 目決定。而且,對應邏輯區塊的尺寸係由此尺寸決定。 - 圖8顯示其中將資料儲存於元區塊中的記憶體陣列中更 · 新賓料攸主機接收已更新的資料區段8 1而將其儲存於記 憶體陣列中。已更新的資料區段81對應於邏輯區塊82、83 中的原始資料區段。將邏輯區塊82、83中的原始資料儲存 於記憶體陣列89中的元區塊84、85中。因此,元區塊84中 的部分區段以及元區塊85中的部分區段需要更新,而其他 區段則不需要更新。可藉由將已更新的資料區段81與不需 _ 要更新的元區塊84、85中的原始區段組合而完成更新。然 後將此等組合的資料寫入取代元區塊86、87,並將原始的 元區塊84、85標記為過期。最終抹除過期的元區塊討、85, 亚使該等區塊在廢料收集期間再次可用。將已更新的資料 區段8 1與原始的區段組合可在接收到資料時完成。或者, 已更新資料區段81可寫入另一位置,並且在隨後的時間作 為廢料收集的部分而與原始的資料組合。雖然大的元區塊 因為較大的平打性而允許較快的程式化,但更新储存於大_ 元區塊中的資料可能包括複製大量的資料,即使在僅接收 到少夏新貧料的情況下。將新資料與原始資料整理在一元 區塊中可能會在廢料收集期間施加顯著的負擔。 適應性元區塊 圖9A顯示用於將資料儲存於記憶體陣列中之適應性元㊣ 塊98的範例。以資料區段串流%的形式接收資料。將區^ 形成邏輯群組’包括邏輯群組91、92、93。邏輯群组心 98673.doc -22- 200535854 輯資料單*纟等於儲存在記憶體陣列之—抹除區塊中的 貝料里。-避輯群組係由從主機接收到的邏輯上連續的區 段所幵/成。所形成的每一邏輯群組具有特定的邏輯位址範 圍。因而,邏輯群組係中間邏輯資料單位,其可能包含許 多區奴,但通常係小於適應性元區塊。
避輯群組係、形成為適應性邏輯區塊。適應性邏輯區塊或 邏輯區塊亦可稱為「元群組」。術語「元群組」係視為等效 於術σ適應f生邏輯區塊」。此中請案中—般使用術語「適 應丨生逆輯區塊」。一適應性邏輯區塊包含可變數目之邏輯 群組。因@,在圖9A中,適應性邏輯區塊95包含玲邏輯群 組91、92、93。適應性邏輯區塊96包含兩個邏輯群組,並 且邂輯區塊97包含4個邏輯群組。將適應性邏輯區塊%程式 化至適應性元區塊98。適應性邏輯區塊95包含三個邏輯群 組91 92、93,相應地,適應性元區塊%包含三個抹除區 塊911 912、91〇。因此,適應性元區塊外不具有來自該陣
列之每平面的抹除區塊,而僅來自平面〇、2與3。適應性 兀區塊98不具有來自平面1的抹除區塊。圖9Β更詳細顯示如 何將區段映射至邏輯群組91、92、93。每一邏輯群組91、 92 93包3 η個貝料區段。圖9Β亦顯示映射至適應性邏輯區 塊95的邏輯群組91、92、93。將適應性邏輯區塊程式化至 記憶體陣列中對應尺寸的適應性元區塊。 在元區塊架構的某些範例中 陣列中平面的數目可決定元區 邏輯區塊的尺寸亦係固定的, ’元區塊尺寸係固定的。一 塊的尺寸。在此等範例中, 並以預定的方式將區段映射 98673.doc -23 - 200535854 ^輯區ί尨目此’將邏輯位址空間分成具有固定邏輯位 址範圍以及固定邊界位置的相等尺寸的邏輯區塊。相反, j使用適應性π區塊的架構_,適應性邏輯區塊不具有固 疋的尺寸,亚且適應性邏輯區塊不限於預定的邏輯位址空 間粑圍。而是,適應性邏輯區塊可具有各種尺寸,並且可 成為在不同的邏輯位址空間之範圍上延伸。邏輯群組的 形成藉由提供中間資料單位(由其形成各種尺寸的適應性 邏輯區塊)而辅助適應性元區塊架構。因而,適應性元區塊 系不/、有固定尺寸的元區塊之—範例,並且適應性邏輯區 塊係不具有固定尺寸的邏輯區塊之一範例。 可根據-提供陣列之抹除區塊之有效使用之演算法來選 擇用於形成適應性元區塊的平面。可根據一平面中可用抹 除區塊的數目以及—特定的平面是否仍忙於先前的操作而 賦予平面不同的優先權。而且,可考慮將與被更新之材料 所用者相同的平面用於新的材料,以便在平面内執行複製 操作。-平面内的此類資料複製(晶片上複製)在某些架構中 可能更為有效。一般而言,選定平面内特定抹除區塊的選 擇不重要。 具有不同尺寸之適應性元區塊的結果係,某些適應性元 區塊可能不包含來子該陣列之每一平面之抹除區塊。如果 :別地程式化此-適應性元區塊,則程式化不使用最大可 勺平行〖生例如’在圖9A中,在所示操作中不程式化平 面卜通常最好以可能的最大平行性來程式化,以增加程式 化速度。程式化至較少的平面會導致低效率。當適應性元 98673.doc 200535854 區塊係小的,但一陣列中有許多平面時,尤其如此。然而, 藉由-人私式化一個以上之適應性元區塊,可以較小的適 應性元區塊來保持高平行性。 圖1 0頒示平行程式化的兩個適應性元區塊丨〇。 兀區塊1030、1040内的資料可能為主機提供的更新資料或 重新疋位於快閃記憶體内的資料。圖〗〇的記憶體陣列丨〇〇5 具有6個平面。適應性邏輯區塊1〇〇1包含三個邏輯區塊ι〇ι〇 至1012。因此,對應的元區塊1〇4〇需要來自記憶體陣列之 二個平面之二個抹除區塊1〇41、1〇42、1〇43。如果適應性 邏輯區塊1001係自行程式化,則僅將使用三個平面,而其 他二個平面則閒置。然而,可與適應性邏輯區塊丨〇〇1平行 地程式化適應性邏輯區塊1〇〇2,以便使用六個平面中的五 個平面。因此,即使所用適應性元區塊包含比陣列中的平 面數目少得多的抹除區塊,亦可達成高平行度。 一演算法根據各種標準指派平面,以將適應性邏輯區塊 1001程式化至平面1、2與5中的抹除區塊,而將適應性邏輯 區塊1002程式化至平面〇與4中的抹除區塊。在此操作中未 程式化平面3中的抹除區塊。雖然需要最大平行性,在每次 程式化操作中可能不會將所有六個平面一起程式化。如果 一平面中無抹除區塊可用,則可能不會程式化該平面。如 =該平面中極少抹除區塊可用,則當選擇平面用於程式化 日τ,向该平面指派低優先權。然而,僅需五個抹除區塊來 儲存適應性邏輯區塊1〇01與1002。因此,僅選擇五個平面, 並且不選擇平面3。平面3係在此操作中具有最低優先權的 98673.doc -25- 200535854 :。$發生下—程式化操作日寺,可重新評估優先 2隹、。對於下――次操作,優先權可能已變化,因為平面0、1、 、, 每者中已使用另外一個抹除區塊。因此,如果 t面3中有抹除區塊可S,則可將平面3用在隨後的程式化 才呆作中。此淨管、、土亚& m > ” t /千衡用在不同平面中的抹除區塊數目, 以使-特定的平面不會更快地填滿而變成不可用。 用於们別適應性凡區塊的平面不必為實體上相鄰的。例 圖9適應性元區塊103〇在平面0與4中具有抹除區塊 045而適應性元區塊1040在平面i、2與5中具有抹 除區塊购至1()43。平行地加以程式化之適應性邏輯區塊 在貫體上連續。可平行地程式化邏輯上分開的適應性 C輯區鬼例如,適應性邏輯區塊1 001與1〇〇2在邏輯上不 連續。其係藉由適應性邏輯區塊丨003而分開。 當一適應性元區塊中的戶斤有資料已被資㈣6更新或已 重新定位版本所取代並且已變為過期時,應抹除形成適應 性兀區塊的抹除區塊。然而,適應性元區塊可能不包含來 自陣列之每一平面之一抹除區塊,並且當個別地抹除此一 適應性元區塊時,抹除不使用最大的平行性。因此,無法 獲付用於抹除資料的最大速度,因此記憶體系統之有效程 式化速度彳疋最大可能值減小,因為在常用快閃記憶體晶片 的抹除操作期間,可能不會執行資料的程式化。此可藉由 將幵》成一適應性元區塊的抹除區塊之抹除延遲直至來自每 一平面的一抹除區塊可用而予以克服,以達成最大的抹除 平行性。可用於抹除的抹除區塊係保存於列表中,並且 98673.doc -26- 200535854 期性地安㈣塊集詩抹除1達成最大可能的平行性。 當該列表在某些平面中不包含區塊時,可執行較小 的抹除。 ▲木
圖11顯示使用適應性元區塊的某些可能資料儲存配置。 圖11顯示區段中的輸人資料至邏輯群組的映射以及邏輯群 組至適應性邏輯區塊的映射。雖然此映射僅係、邏輯上的, 但應暸解,可將適應性邏輯區塊程式化至記憶體陣列的適 應性元區塊。-般而言,首先作為使用最A平行性館存的 區段串流而接收資料。因此,在初始寫人期間,記憶體系 統可像圖7所述系統—樣運作。圖u顯示適應性邏輯區塊 1101至1103 ’每一適應性邏輯區塊11〇1至11〇3具有四個邏 輯群組。因此,對於具有四個平面的記憶體卩車列,適應性 邏輯區塊1101至1103具有最大的尺寸。
隨後,可藉由重新映射邏輯群組而以新的適應性邏輯區 塊取代原始的適應性邏輯區塊。例如,在圖u的第一更新 :’藉由兩個適應性邏輯區塊u_llu來取代適應性邏 輯區塊11 0 1。因此,藉由兩個較小的適應性邏輯區塊來取 代單-的適應性邏輯區塊,並且在先前無邊界之處形成邏 輯區塊之間的邊界。在第-更新期間,產生適應性邏輯區 塊111J適應性邏輯區塊1 π 3包括邏輯群組i 22,其先前 係適應丨生邏輯區塊丨丨〇3的部分,以及邏輯群組11、1 m, 1、先係適應性邏輯區塊1102的部分。因而,適應性邏輯 區塊111 3在先别於適應性邏輯區塊1102與1103之間包含一 故"的邏輯位址範圍上延伸。可能亦組合適應性邏輯區 98673.doc -27- 200535854 塊,以形成較大的適應性邏輯區塊。在圖丨丨之第二更新中, 將邏輯群組丨丨丨丨與丨丨^組合,以形成邏輯群組ιιΐ5。此處, 適應性邏輯區塊1115在先前由適應性邏輯區塊丨⑴與此 所估據的邏輯位址範圍上延伸。因而,適應性邏輯區塊可 由適應性邏輯群組之不同組合所形成。適應性邏輯區塊可 為從一邏輯群組至最大數目之邏輯群組之任何尺寸。最大 數目之邏輯群組可為該陣列中平面的數目。適應性邏輯區 塊組態中的變化可能發生於更新一或多個適應性邏輯區塊 中的資料時,或可能基於某一其他原因而發生。例如,可 作為廢料收集的部分或作為一已排程的常式來更新適應性 邏輯區塊組態,以使資料儲存最佳化。 應用 圖12 A頭不以新的資料更新程式化資料,以便更有效地執 行隨後的更新。頻繁地接收少於一程式化適應性元區塊之 一部分新資料並將其用於更新程式化資料。圖12A顯示對應 於兩個適應性邏輯區塊1220、123〇之部分的新資料121〇。 新資料具有在適應性邏輯區塊122〇與適應性邏輯區塊Η% 之間的邊界上延伸的位址範圍。因而,對應於適應性邏輯 區塊1220與1230之適應性元區塊1221、123 1需要更新。 新資料121 〇在邏輯位址範圍上延伸,該邏輯位址範圍係 在二個連續邏輯群組1241、1242與1243之位址範圍内。每 一邏輯群組1241至1243的至少某部分需要加以更新。圖12A 顯示具有需要加以取代之資料以及不需要加以取代之資料 之邏輯群組1241與1243。邏輯群組1242僅具有需要加以取 98673.doc -28- 200535854 代的資料。新的邏輯群組1211、1212與1213係由新的資料 mo以及來自邏輯群組1241與1243之原始資料1214與1215 之部分所形成。藉由邏輯群組1211至12 13來形成新的適應 性邏輯區塊1250。對應於適應性邏輯區塊1250的適應性元 區塊1251係由記憶體陣列中的三個抹除區塊1252至1254所 形成。適應性邏輯區塊1256與1257係由不具有新資料的邏 輯群組所形成。例如,由邏輯群組1244至1246來形成適應 性邏輯區塊1257。可從記憶體陣列中的適應性元區塊1231 複製邏輯群組1244至1246。將適應性邏輯區塊1257程式化 至適應性元區塊1259。將適應性邏輯區塊1256程式化至適 應性元區塊1258。因此,三個適應性邏輯區塊125〇、1256 與1257係形成於先前由兩個適應性邏輯區塊122〇、123〇所 佔據的邏輯位址範圍中。三個適應性元區塊1251、1258與 1259係形成於記憶體陣列中以儲存此資料。 圖12A顯示在第一更新之後發生的新資料之第二更新。新 的貧料1260係由具有一邏輯位址範圍的區段串流所組成, 該邏輯位址範圍係與新資料121〇相同的邏輯位址範圍。通 苇會在非揮發性記憶體系統中碰到此情況。由於所儲存資 料的性質(例如,諸如FATs之類的表格、目錄及子目錄、應 用仏案内的索引)’可重複地更新相同的資料範圍。第二更 新僅取代適應性邏輯區塊125〇中的資料。因此,僅在第二 =新中更新適應性邏輯區塊1250及對應的適應性元區塊 1二51。適應性邏輯區塊1250僅包括三個邏輯區塊1211至 1213。適應性邏輯區塊1256與1257不需要更新。新資料km 98673.doc 200535854 未橫跨適應性邏輯區塊1250的整個邏輯位址範圍而延伸, 因此複製原始資料1214、1215的部分,以填充邏輯群組1261 與1263。邏輯群組1261、1262與1263係由新的資料126〇與 原始資料1214、1215所形成。由邏輯群組1261至1263來形 成適應性邏輯區塊1270。將適應性邏輯區塊1270程式化至 §己憶體陣列中的適應性元區塊1271。原始資料的複製要比 第一更新中少得多。僅複製原始資料1214與1215,在第二 更新中未複製適應性邏輯區塊丨256與1257中的資料。因 此’藉由建立其邊界更匹配已更新資料之邏輯邊界的適應 性邏輯區塊,可使隨後的更新更為有效。 圖12B顯示重新映射的適應性邏輯區塊。此處,資料串流 包括兩個棺案1280與12 82。藉由槽案邊界1281將槽案1280 從檔案1282分離。一般而言,當將新資料寫入記憶體系統 日’其係作為資料區段串流而被接收到。在此一串流中可 能會有檔案邊界。在某些架構中,當接收到資料並相應地 配置適應性邏輯區塊時,可識別此類邊界。在其他架構中, 可藉由主機所更新的資料範圍來顯示檔案邊界的位置。圖 12B顯示位於邏輯群組1286之邏輯位址範圍内之檔案邊界 1281。在初始的程式化操作期間,資料係形成於適應性邏 輯區塊1290至1293中。邏輯區塊1290至1293各包含八個邏 輯群組,其係所用記憶體陣列的最大尺寸。檔案邊界1281 係位於適應性邏輯區塊1292内。更新檔案128〇需要更新元 區塊1290、丨291與1292,即使在適應性元區塊1292中儲存 了少於兩邏輯群組之檔案1280。將適應性邏輯區塊1292的 98673.doc -30- 200535854 4輯群組重新映射至新的適應性邏輯區塊1294與1295。邏 輯區塊1294僅由邏輯群組1285與1286所組成。因此,包含 部分檔案1280的邏輯群組形成適應性邏輯區塊1294,而不 包含部分檔案1280的邏輯群組則形成適應性邏輯區塊 1295 °更新棺案1280不需要更新適應性邏輯區塊丨295。因 此’如果已知存在檔案邊界,則所形成的適應性邏輯區塊 可具有被調整為適配檔案邊界的邊界。 圖12C顯示來自資料串流128〇、1282之資料之替代性重新 映射。此處,檔案邊界1281發生於邏輯群組1286。最初將 邏輯群組12 8 6併入邏輯區塊12 9 6中。更新檔案12 8 0需要更 新邏輯區塊1296,即使邏輯區塊1296中一半以上的資料並 非來自檐案1280。在更新期間,形成一第二組適應性邏輯 區塊。適應性邏輯區塊1296係由新的適應性邏輯區塊 1297、1298、1299所取代。適應性邏輯區塊1298僅包含一 邏輯群組之資料。更新資料串流丨28〇或資料串流1282需要 更新適應性邏輯區塊1298,因為邊界1281發生於適應性邏 輯區塊1298内。因而,因為檔案邊界1281未與邏輯群組之 間的邊界對準,故始終執行舊資料的一定複製。然而,因 為適應性元區塊1298僅包含一邏輯群組,故與使用元區塊 1296之類較大元區塊的情況相比,僅有少量資料需要複 製。因此,藉由縮小一包含檔案邊界之適應性邏輯區塊之 尺寸,可減少更新期間的資料複製。 圖1 3顯示重新寫入具有較少空白空間之較小適應性元區 塊1340之已部分填充之適應性元區塊1321。可使用最大的 98673.doc 31 200535854 平行性來接收與程式化資料串流。例如,在具有四個平面 的陣列中,可形成包含四個邏輯群組的適應性邏輯區塊, 並且資料係儲存於具有四個抹除區塊的元區塊或適應性元 區塊中。然而,在此一資料串流之結尾,可僅部分填充適 應性元區塊。此類適應性元區塊佔據比所儲存資料所需要 者更多的記憶體陣列。圖13顯示所接收的資料區段串流 1305。將資料映射到包括邏輯群組131〇至1315的邏輯群 組。邏輯群組13 10至13 17係形成為各具有四個邏輯群組的 適應性邏輯區塊1320、1321。資料區段串流13〇5之結尾發 生於位於邏輯群組131 5之邏輯位址範圍内的一邏輯位址。 由邏輯群組13 14至13 17來形成適應性邏輯區塊1321。邏輯 群組13 14與13 15包含來自資料區段串流13〇5之資料。邏輯 群組13 16與13 17不包含資料。因而,適應性邏輯區塊1321 包含空白的邏輯群組1316與1317以及已部分填充的邏輯群 組1315。將適應性邏輯區塊1321程式化至適應性元區塊 1331。適應性元區塊1331包含記憶體陣列之四個抹除區 塊。由於空白的邏輯群組1316與1317以及已部分填充的邏 輯群組1315,未使用適應性元區塊1331的部分。此會浪費 記憶體陣列中的空間。圖13顯示由邏輯群組13 14與13 1 5所 形成的適應性邏輯區塊1340。將適應性邏輯區塊134〇程式 化至記憶體陣列中的適應性元區塊1341。因此,適應性元 區塊13 41包含與13 3 1中相同的資料,但僅佔據記憶體陣列 中一半的空間(兩個抹除區塊而非四個)。可藉由從記憶體 陣列中的適應性元區塊1331複製資料而形成適應性邏輯區 98673.doc -32- 200535854 二:=應性避輯區塊1341。當將適應性元區塊1331中 1331Γ 應性元區塊1341中時,可將適應性元區塊 :°己為過期。接著可抹除適應性元區塊1331。 "χ 口 f由攸接收到貪料區段串流13G5起的消逝時間來觸發 攸已口P分填充之元區塊將資料複製至較小元區塊。亦可作 為廢料收集常式的部分來進行複製。當資料區段串流· 位於緩衝器中時,如果偵測到資料區段串流咖的結尾, 可由接收到的貧料直接形成較小的適應性元區塊,例如 1340。在此種情形下,f料未首先寫人至較大適應性元區 塊以及接著複製至較小元區塊。因此,不存在過期的適應 f生兀£塊需要抹除。在某些架構中,一主機可傳送一信號, :指:資料串流結尾發生於何處。接著,可形成一適應性 Γ區塊’使其所含邏輯群組僅包含來自該資料串流之區 在#疋的記憶體架構中,可指派抹除區塊或元區塊來儲 存已更新的貝肖。此類抹除區塊以及元區塊的範例係說明 於專利巾請案第H)/749,83 m,標題為「具有A抹除區塊之 非揮务性圮憶體系統之管理」,c〇nley等人,於年I〕月 〇二申明,並且以引用方式全文併入本文中。可使用某些 兀區塊,%為E1與E2,來儲存用於記憶體陣列之平面之已 更新資料。可指派其他抹除區塊或元區塊,稱為犯1,以接 收用於4寸定抹除區塊或元區塊之已更新資料。一適應性元 區塊可稱為E1、E2*dE1。可將此一適應性元區塊訂製為 叉頻繁更新的邏輯位址範圍。藉由形成其尺寸被選擇為適 98673.doc -33- 200535854 配已更新貢料之適應十生元區塊,可;咸少原㊣資料的複製。 E1與dE 1接收更新資料並以非連續方式儲存資料。非連續地 儲存更新資料之更新區塊(或元區塊或適應性元區塊)係視 為混屯區塊。 圖14顯示使用適應性元區塊作為一混沌區塊,其尺寸適 合已更新資料之邏輯位址範圍。將資料儲存在包括原始適 應性元區塊1410的原始適應性元區塊。—般而言,此類原 始適應性元區塊具有最大尺寸。指派適應性元區塊142〇, 以接收對應於原始適應性元區塊丨4丨〇中之資料之已更新資 料。適應性邏輯區塊1411與1421分別對應於原始適應性元 區塊1410與適應性元區塊142〇。適應性邏輯區塊1421具有 與適應性邏輯區塊1411相同的邏輯位址範圍。第一更新資 料1415具有在適應性邏輯區塊1411之邏輯位址範圍内的邏 輯位址範圍。在第一更新中僅更新原始適應性邏輯區塊 1411之邏輯位址範圍之一部分。第一更新資料丨々^係非連 續的(混沌)。因此,適應性元區塊142〇變為混沌區塊。更新 資料141 5可包含所示邏輯位址範圍内的數個區段串流。可 將相同的區段更新數次。最後,元區塊丨42〇變滿,並且必 須加以整理。 在第一整理期間,僅將每一區段之最近副本複製至新的 適應性元區塊1422至1424。對於已更新的資料,最近的副 本來自適應性元區塊1420 ’對於未更新的資料,最近的副 本來自適應性元區塊1410。整理將來自適應性元區塊141〇 與適應性元區塊1420的資料組合在邏輯序列中。指派給適 98673.doc -34- 200535854 應性元區塊1423的邏輯位址範圍包括第一更新資料141 5之 邏輯位址範圍。適應性元區塊1422、1424僅包含未更新的 資料。 在第一整理之後,接收到第二更新資料1425。第二更新 貝料1425係位於與第一更新資料1415相同的邏輯位址範圍 内。將第二更新資料1425指派給儲存於適應性元區塊Μ% 中的新適應性邏輯區塊1431。適應性邏輯區塊1431具有與 適應性兀區塊1423中儲存的資料相同的邏輯位址範圍。適 應性元區塊1430可能受到混沌地更新,故變為混沌區塊。 當填充適應性元區塊1430時,將適應性元區塊143〇與適應 性元區塊1423中的資料整理到適應性元區塊144〇。適應性 兀區塊1440接著取代適應性元區塊1423,並且可將適應性 元區塊1423標記為過期。適應性元區塊1422與1424保持不 變。在第二整理中整理比第一整理要小的邏輯位址範圍, 故未改變資料之複製較少。而且,由於在第一整理之後用 於更新的適應性元區塊較小,故記憶體陣列中所需空間較 少〇 可在相同的邏輯位址範圍内進行其他更新,並且可與第 二整理中一樣整理其他更新。 媒體管理 圖1 5A頰示如何將適應性邏輯區塊1 520之邏輯群組 1510、15 11與15 12映射到適應性元區塊154〇之抹除區塊 1531、1532與1 533。儘管一適應性邏輯區塊152〇中邏輯群 組之數目等於適應性元區塊丨54〇中抹除區塊的數目,但此 98673.doc -35- 200535854 範例中未將個別的邏輯群組映射到個別抹除區塊。而是, 儲存資料’以將每一邏輯群組丨5丨〇至丨5丨2之一部分儲存於 適應性元區塊1541之每一抹除區塊1531至1 533中。 圖1 5B更詳細地顯示適應性邏輯區塊152〇至記憶體陣列 之映射。圖15B顯示如何將來自邏輯群組151〇的區段程式化 於記憶體陣列中。邏輯群組1 5 1 〇包含η個資料區段。記憶體 陣列之平面0至4各寬四個區段。在某些記憶體架構中,平 行地程式化橫跨一陣列之一平面而延伸的四個區段。因 而,四個區段形成一頁面,其係該陣列之程式化之最小單 位。區段通常按順序到達,並且可在寫入陣列之前儲存於 暫存裔中。可平行地程式化適應性元區塊之所有抹除區塊 中的區段。因而,例如,可平行地程式化區段〇至丨丨。接著, 可平行地程式化區段12至23。此操作繼續進行,直至已程 式化邏輯群組1510中的所有區段。接著,輪流程式化邏輯 群組 1 5 11、1 5 12。 三個抹除區塊所形成的
輯群組中的區段無法均勻地分佈於抹除區塊1551至1553之 圖1 5 C顯示藉由記憶體陣列中的三 適應性元區塊。 者,其中數目η 此寻區段分佈如
間。第一邏輯群組由區段〇至3 1所組成 下:十二個區段< 塊1552中,八個g 之第一區段0’程式 式化邏輯群組, 98673.doc -36- 200535854 組。可平行地程式化來自不同邏輯群組的區段。例如,可 平行地程式化來自第一邏輯群組的區段24至31以及來自第 一避輯群組的區段〇 ’至3 ’。 圖15D顯示平行地加以程式化之兩個元區塊。抹除區塊 1561與1562形成適應性元區塊1565,並且抹除區塊1563與 1 564形成適應性元區塊1566。適應性元區塊1565與1566各 由兩個抹除區塊所組成,因此各適應性元區塊1565、1566 包含兩個邏輯群組之資料。適應性邏輯區塊1565包含邏輯 _、、且1 5 71與1 5 7 2。適應性迦輯區塊1 5 6 6包含邏輯群組1 5 7 3 與1574 °說明邏輯群組1571與1573之區段之程式化。平行 地程式化邏輯群組1571與1573。因而,在記憶體陣列的第 一寫入期間,來自邏輯群組1571的區段1至8可與來自邏輯 群組1573的區段1,至8,同時加以程式化。隨後,區段9至16 可與區段9’至16’同時加以程式化。此操作繼續進行,直至 已程式化邏輯群組1571與1 573中的所有區段。接著,類似 地程式化邏輯群組1 572與1 574。 圖1 5E顯示平行地加以程式化之三個適應性元區塊。元區 塊1590包含四個抹除區塊,元區塊1591包含一抹除區塊, 而元區塊1592包含三個抹除區塊。平行地程式化元區塊 15 90至15 92。因為元區塊159〇至15 92包含不同數目之抹除 區塊’故在每一元區塊159〇至丨592中以不同方式對準資 料。圖15E顯示元區塊159〇至1592内頁面的對準。一頁面可 月&係作為一程式化單位而加以程式化之單一區段、四個區 段或某一其他數目之區段。平行地程式化位於圖丨5E中相同 98673.doc -37- 200535854 水平面上的不同抹除區塊中的資料頁面。例如,平行地程 式化元區塊1590之頁面12至15、元區塊1591之頁面3以及元 區塊1592之頁面9至11。 圖1 5 F择員示更新資料之一範例,其中已更新資料之第一區 段非為邏輯群組中的第一區段。已更新資料丨582中的第一 區段具有邏輯位址13。邏輯群組1580係由具有邏輯位址j 至16的區段所組成。已更新資料1582包括來自至少兩個邏 輯群組之區段,並且選擇兩個抹除區段之適應性元區塊尺 寸末儲存包含已更新資料1 5 8 2之前兩個邏輯群組。選擇抹 除區塊1585與1586來儲存包含已更新資料1582之前兩個邏 輯群組。將已更新資料1582的第一區段(其具有一邏輯位址 13)寫入抹除區塊1585中的第一位置。將具有邏輯位址14的 區段寫入第二位置,直至寫入邏輯群組中的最後區段,即 具有邏輯位址16的區段。然後將來自邏輯群組158〇的未更 新資料複製到記憶體陣列中。因而,邏輯群組中的第一區 段與適應性元區塊中所儲存的第一區段之間會有一偏移。 可以正常方式寫入下一邏輯群組的第一區段,使得在一適 應性元區塊内,可以不同的偏移寫入不同的邏輯群組。因 而,具有邏輯位址1,的區段係更新邏輯群組1581時的第一區 段。 圖16顯示用於根據邏輯群組記錄記憶體陣列内之資料位 置的表格,其中適應性邏輯區塊1610儲存於一適應性元區 塊1620中。行1指示每一個別邏輯群組的識別項。此係獨特 地識別一邏輯群組之邏輯位址。一般按順序列出邏輯群 98673.doc -38- 200535854 組。行不其中儲存有邏輯群組之適應性元區塊之尺寸。 該尺寸簡單地係適應性元區塊中抹除區塊的數目。此處, 凡區塊由二個抹除區塊所組成,因此對於所有的邏輯區 塊’尺寸係二。行3給出適應性邏輯區塊内邏輯群組的群組 編唬N。根據邈輯位址範圍按順序對邏輯群組編號。因此, 遴輯群組L1具有N=1、L2具有N=2以及L3具有N=3。行4給 =適應!·生邈輯區塊中第N個抹除區塊的位置。此可能係抹除 區塊之貝體區塊編號(PBN)。因為適應性邏輯區塊中邏輯群 、·且的數目等於適應性元區塊中抹除區塊的數目,故可藉由 針對每冑輯群組記錄_抹除區塊位置而形成一適應性元 區塊之抹除區塊之位置的完整記錄。 作為記憶體系統之媒體管理之部分,可將特定邏輯群組 之位置之表格保存於揮發性或非揮發性記憶體中。媒體管 理系統可具有各種記錄可用抹除區塊之位置與邏輯至實體 :料映射之表格。一媒體管理器管理媒體管理系統之表 格。-般而言,一媒體管理器係實施於一控制器中的一韌 / 17顯示媒體管理器之範例。類似於圖!7所示者之媒體 官理器之操作係說明於美國專利申請案第助…兄號 :’標題為「具有區塊管理系統之非揮發性記憶體與方 法」’ BenneU等人於_年12月3G日中請,該申請㈣以引 料式全文併人於此。該媒时判包括—適應性元區塊 官理咨、—區塊配置管理器與—位址表格管理哭。三 個管理器及其相關表格與適應性元區塊之管理特別相關, 98673.doc 200535854 將予以進一步說明。 一適應性元區塊管理器決定欲組合以形成一適應性邏輯 區塊之邏輯群組的數目,因而決定適應性元區塊中抹除區 塊的數目。如果係從主機接收資料,則此決定可能係基於 數個因素。可評估來自主機的命令序列,並且可根據目前 的命令或主機命令的歷史評估來決定適應性元區塊尺寸。 可加以評估的目前命令之特徵包括邏輯位址、命令區段計 數、與檔案系統叢集(例如〇〇8叢集)之對準、與先前命令的 邏輯關係以及相對於檔案系統區段之位址。亦可考慮相對 於藉由一連續類型之更新區塊所管理的位址範圍之位址。 &史操作的特徵可包括用於連續資料之串流之主機命令序 列、用於完整檔案之主機命令結構、頻繁更新的邏輯位址 祀圍之記錄以及最近寫入的連續資料之最終位址。適應性 兀區塊官理器可根據一適當的主機介面協定,與主機建立 一對話,以存取資訊,其允許決定適當的元區塊尺寸。 如果重新定位資料,適應性元區塊尺寸可基於包含重新 定位資料之邏輯群組之數目。如果將控制資料儲存於適應 元區塊中,則可根據欲儲存的資料類型來固定適應性元 區塊尺寸。可根據使用大適應性元區塊所獲得之增加的平 行丨生與使用較小適應性元區塊所獲得之減少的廢料收集之 間的平衡來決定適應性元區塊尺寸。一旦適應性元區I管 理2決定所需抹除區塊的數目,便將對該數目之抹除區塊 的睛求傳送至區塊配置管理器。 區塊配置管理裔從記憶體陣列的分離平面選擇抹除區 98673.doc 200535854 塊。可根據平面中可用抹除區塊的數目來選擇平面。 使用各種尺寸的適應性元區塊,可將 果 、、隹㈤二孙 /、兄到不同的位 準。口而,某些平面可變滿,而其他平面仍具有可 除區塊。如果發生此種情況,將使該陣列的一平面不可用 並且相應地限制平行性。為了防止或延遲此種情況=,’ 當指派抹除區塊以形成—適應性元區塊時,-區塊配置管 理器賦予包含少量可用抹除區塊的平面低優先權,而賦: 包含大量可用抹除區塊的平面高優先權。仍忙於先前操作 的平面可能亦被賦予低優先權。如果使用比從一平面向另 一平面重新定位更有效的方式將資料重新定位於一平面 内’則可賦予具有用於重新定位之資料的平面高優先權。 區塊配置管理器從一配置區塊列表(ABL)選擇可用的抹除 區塊。 θ 1 8A》、、員示用於適應性元區塊的已抹除區塊管理階層。在 從適應性元區塊管理器接收到配置特定尺寸之元區塊的請 求之後,區塊配置管理器從分離的平面選擇抹除區塊,並 更新相關的控制結構以將區塊鏈接成一元區塊。藉由一根 據預定標準之演算法來選擇從中使用已抹除區塊的平面。 賦予包含較少已抹除區塊的平面低優先權。仍忙於先前操 作的平面被賦予低優先權。如果平面的選擇將使資料能夠 在平面内複製而非從另一平面複製,則賦予平面高優先 權。在某些架構中,此一平面内複製可能係更有效的。 針對陣列的每一平面而分別管理已抹除區塊。當選擇一 平面日寸’可逵擇來自該平面的任何抹除區塊以形成一適應 98673.doc -41 - 200535854 一〜π σΓ忠伴钚除區塊, 而將新近可用的抹除區塊添加至列表的底部。#由圖18Α 所示的列表階層來f理抹除區塊。_個別的抹除區塊一次 僅可出現於-列表中。+良區塊不出現於任何列表中,因 而不用於資料儲存。藉由在列表之間移動已抹除區塊位 址’可貫穿整個記憶體陣列而分佈寫人/週期計數。此提供 磨損平衡,其減小個別抹除區塊失效的危險。 配置區塊列表(ABL)l 810係從中選擇已抹除區塊以形成 兀區塊之已抹除區塊位址之短列表。因此,abl ΐ8ι〇係位 於列表階層之頂部。在ABL 181〇之内,針對記憶體陣列之 各平面而保持單獨的攔位。一般而言,ABL 181〇係保持於 諸如控制器RAM之類的非揮發性記憶體中。然而,亦將一 副本保持於非揮發性記憶體中。 每當形成一適應性元區塊並且從ABl 1 8 1 〇中移除用於形 成該兀區塊的已抹除區塊時,將ABl 1810的一副本寫入曰 誌、1813。因而,有規則地更新日誌1813中八]^1810的副本。 當透過抹除操作而使已抹除區塊變為可用時,將其添加至 1810中與包含抹除區塊之平面對應的搁位。在斷電之 後 了猎由攸日遠1 8 13複製而恢復ABL 1 8 1 0。然而,日言忘 田1J本可此不是最新的,因為從上一次複製至日諸丨8丨3以 來’已添加已抹除區塊至ABL 1 8 1 0。可從其他資料結構容 易地識別此類已抹除區塊。明確言之,日誌1 8 13包含已配 置元區塊之記錄。已配置之元區塊係其中的資料正在由主 機加以更新的元區塊或適應性元區塊。因而,當首次加電 98673.doc -42- 200535854 %’可掃描原始元區塊之每一抹除區塊之第一區段,以決 疋否已抹除原始元區塊之抹除區塊。如果抹除區塊已被 抹除,則將其位址添加至ABL。將位址資料保持於日誌“η 中,作為起始的邏輯群組位址,其係使用圖16所示的袼式 加以串接,該格式具有用於元區塊尺寸、群組編號與區塊 位址的項目。因而,可在斷電之後容易地重建abl ΐ8ι〇的 兀整副本。日誌亦可包含抹除區塊的列表,該等抹除區塊 具有已完全過期的可用於抹除的資料。 可藉由從已抹除區塊列表(EBL)1811移動預定數目之區 塊位址而初始化ABL ! 8 i 0。彳藉由從對應的ebl欄位移動 位址而初始化ABL的每一欄位。例如,可將abl攔位填充 至其谷里的一半。當需要一區塊用於配置給一元區塊時, 使用相關ABL攔位中的第一區塊,並且從abl移除其位 址。當在廢料收集期間抹除一區塊時,彳將該區塊添加至 相關ABL欄位的結尾。 亦可使用來自EBL 1811的已抹除區塊位址來重新填充 ABL 181〇。其在ABL 181()為空時可能係必要的。當概 1810的欄位為滿或空時,可在aBl 181〇與_ 1811之間交 換已抹除區塊位址。可僅針對一攔位(陣列之平面)或針對: 有攔位完成交換。該交換可能包括加滿胤181〇,或可能 包括狐刪中所有項目的完整交換。可藉由欄位變滿^ 變空來觸發交換’或可藉由另一事件或週期性地觸發交換。 -般將亂mu呆持於非揮發性記憶體中所保存的區段 中。其包含-已抹除區塊列表,該列表對於該陣列的每一 98673.doc -43- 200535854 平面具有單獨的攔位。其具有與ABL 1 8 1 〇相同的格式,因 而可容易地在EBL 1811與ABL 18 10之間交換項目。因為作 為單一區段將EBL 1 8 11保持於非揮發性記憶體中,故可快 速存取與更新EBL 1811,因而促進EBL 1811與ABL· 1810之 間的父換。當ABL為滿或空時,可發生]£3乙與ΑΒί之間的位 址交換。或者,交換可能頻繁地發生,以避免記憶體陣列 中特定位置的頻繁使用。EBL 1811中的位址可與ABL 181〇 交換’亦可與平面區塊列表交換。 可將一 EBL區段保持於僅含EBL區段的EBL區塊中。圖 18B頒示具有多個EBL區段的ebl區塊1801。當改變EBL資 料時,寫入一新的EBL區段,並且舊的EBL·區段變為過期。 因而,過期區段1803包含EBL·之不再有效的先前副本。僅 最後寫入的EBL區段1802才有效。EBL區段亦可包含每一 EBL攔位中列出的抹除區塊的計數。此等計數可用作形成 適應性7L區塊時選擇平面的一因素。亦可將此等計數的副 本保持於日誌1 8 13中。 可針對陣列的每一平面,將諸如pBL 1812之類的平面區 塊列表(PBL)保持於非揮發性記憶體中。pbl is 12係記憶體 陣列之特定平面中之抹除區塊之一列表。列示於AB;L ΐ8ι〇 或EBL 1 8 11中的抹除區塊未列示於pbl 1 § 12中。PBL 1 8 12 "T佔據區^又,不過該區段未必係滿的。一般而言,將pbl 起群聚於一 PBL區塊或多個PBL區塊中。pbl區塊係僅含 PBL區段的專用區塊。當pBL區段中的資訊發生變化時,可 將已更新的版本寫入PBL區塊中的下一位置。將舊的區段 98673,doc -44 - 200535854 標記為過期。對於一特定的平面,僅有一有效的pBL區段 存在於一特定的PBL區段中。然而,如果PBL區段係在不同 的PBL區塊中,則對於一特定的平面,可能存在兩或多個 有效的PBL區段。一 PBL區段具有兩個攔位,即定義抹除區 塊之位置的一組項目與列出PBL區塊内所有有效pbl區段 之位置的區段索引。定義抹除區塊之位置的項目不一定具 有任何特定的次序。項目的次序可能係與對應Ebl攔位交 換的結果。僅最後寫入之PBL區段的索引才有效。在一部
分寫入之記憶體中,有許多的已抹除區塊,因而有許多PBL 區段需要許多PBL區塊。然而,當填充記憶體時,已抹除 區塊的數目減小,並且所需PBL區塊的數目減小。在邏輯 上填滿的記憶體系統中,可能無PBL區塊。PBL 1812與ebl 之間的位址交換係類似於EBL與ABL之間的位址交換。該交
換可能係單向或雙向的。如果使用多個pBL區塊,則一 pBL 區塊可能係用於交換的活動區塊。可週期性地改變活動 PBL區塊。可作為一後臺操作而從單一 pbl區段更新EBL· 1 8 11中的攔位。 圖18C顯示用於一使用適應性元區塊之記憶體系統中的 位址轉換資訊之位址表格管理階層。當根據資料更新演算 法將資料區#又寫入記憶體陣列中時,位址表格管理器更新 位址表格官理階層中的相關控制資料結構,以產生邏輯至 貝體映射之非揮發性記錄並允許記憶體陣列中任何區段的 快速轉換。可藉由從非揮發性記憶體中讀取單一區段而決 定任何區段的實體位置,藉此達成快速轉換。如果在非揮 98673.doc 200535854 發性記憶體中尚未更新實體位置,則可從揮發性RAM快速 决疋貝妝位置。因為適應性元區塊的尺寸與組態可變,故 士果it區塊巾此類可抹除區塊的位置未儲存於非揮發性 記憶體中’則將難以恢復該等位置。因此,將—元區塊之 抹除區塊之位置儲存於非揮發性記憶體中。 在圖18C之階層頂部係寫人區段列表(wsl)⑻4。一般將 WSL 1814保#於諸如控flj器RAM之類的揮们生記憶體 中。WSL1814識別藉由—主機而與連續寫人辛流相關聯的 區段或從非揮發性記憶體中的另—位置重新定位的區段。 對於每一主機寫入串流,存在一單獨的wsl。當將一元區 塊配置用於來自主機的一新寫入串流時,開放佩。wsl 可能具有簡化的形式,例如起始位置及所寫入區段的數目。 日誌、1813在WSL 1814之下。日㈣13健存配置用於儲存 WSL 1 8 14中列出之區段之適應性元區塊之累積列表。日誌 1813亦包含其被更新時所有WSL的副本。無論何時配置一 元區塊時,更新日誌1813。日誌1813可能包含於一日誌區 塊内的日誌區段中。當日誌丨8 13中的資訊發生變化時,將 新的日誌區段寫入日誌區塊中下一可用的位置。先前的日 誌區段變為過期,僅最後寫入之日誌區段才有效。在日誌 1 8 13之下係暫時群組位址表格(TGAT)丨8丨5與群組位址表格 (GAT) 1 8 1 6。GAT 1 8 1 6係儲存於非揮發性記憶體中之區段中 之位址表格’其包含以邏輯群組位址次序按順序配置的每 一邏輯群組之實體位址。因而,GAT中的第n個項目係關於 具有邏輯群組位址η的邏輯群組。儲存於gat 1 8 1 6中的位址 98673.doc -46- 200535854 資料係採用圖1 6所示的格式,其具有用於元區塊尺寸、群 組編號與區塊位址的項目。 可將G AT區段儲存於一專用G AT區塊中,該專用G AT區塊 具有用於一組邏輯上鄰近之邏輯群組之項目。將一 G AT區 塊分成兩個分區’即G AT分區與T G AT分區。G AT分區對於 GAT區塊之邏輯位址範圍中的每一邏輯群組包含一原始項 目。TGAT分區包含格式與GAT區段相同的區段。在更新GAT 之前,使用TGAT區段來更新位址資料。週期性地重新寫入 一區塊中的GAT分區,以併入TGAT分區中的區段中所記錄 的更新。TGAT區段暫時取代GAT中的對應區段,以更新位 址資訊。TGAT區段包含有效TGAT區段的索弓|。此索引在 最後寫入之TGAT區段中才有效。GAT不需要此類索引。 TGAT區段使用來自與WSL相關之日誌的位址資訊更新 GAT區段。接著將WSL與日誌項目刪除。 可從列表1 8 14至1 8 16決定具有特定邏輯位址之資料區段 之實體區段位址。首先讀取WSL,以決定最近是否已寫入 區段。若如此,根據與WSL中區段的位置對應的元區塊位 址找出實體區塊位址。如果WSL中未找到區段,則讀取 TGAT區段中的索引,以決定該區段是否具有一 TGAT項 目。若如此,可藉由讀取適當的TGAT區段來決定實體區段 位址。如果WSL或TGAT中未列出區段,則讀取適當的GAT 區段,以決定其實體位置。可執行控制器SRAM中日誌、 TGAT與GAT項目的預看快取,以便在按連續位址次序寫入 或讀取資料時縮短位址轉換時間。 98673.doc -47- 200535854 位址轉換之資料結
儲存b 3區塊位址1 821的BA區段。當控制區塊之位置發生 圖18D顯示用於管理已抹除區塊與 構。除了上述列表之外,顯示區塊位
因此’僅最後寫入的BA區段才有效。 啟動區塊1820係包含啟動區段之專用區塊。當啟動區段 中的貢訊發生變化時,寫入新的啟動區段。僅最後寫入的 啟動區段才有效。啟動區段182〇具有固定的實體位置,並 且係藉由在系統初始化期間掃描而加以識別。因為啟動區 塊的位置係固定於一範圍内而非一精確的位置,故掃描可 月匕係必需的。此係要考慮不良抹除區塊的可能性。啟動區 塊的位置可固定於狹窄的範圍内,故可快速地完成該掃 描。啟動區段包含區塊位址1 82 1的位置以及可能需要的任 何其他糸統組悲負訊。因此,在初始化之後,可快速地重 建圖18D中的資料結構。啟動區塊182〇具有固定位置並指示 區塊位址1 821的位置,其指示所示資料結構之位置。
上述特定的資料結構使用專用的區塊,例如EBL區塊、 PBL區塊與GAT區塊。此類專用的區塊可能係記憶體陣列的 單一抹除區塊,或可能係包含多個抹除區塊之適應性元區 塊。使用適應性元區塊的一優點係,所用適應性元區塊的 尺寸可調整到欲保存的資料量。例如,當一記憶體具有大 量的已抹除區塊時,可能會有大量的PBL區段,因此大PBL 98673.doc -48- 200535854
區塊可能係適當的。當記憶體陣列填充有資料時,已抹除 區塊的數目較少,因而PBL區段的數目較少,並且較小pBL 區塊可能係適當的。 如果將小於最大尺寸之適應性元區塊用於控制資料,則 可與其他貧料平行地程式化控制資料。當從主機傳送欲程 式化的貧料至記憶體陣列時,此類程式化可使控制資料能 與主機資料的程式化同時加以更新。因此, 時不會中斷主„料的程式化,不過,由於可== 料程式化的平行性降低,故可能會降低程式化的速度。因 此,圖15D、⑽與⑽中所示平行程式化的範例可應用於 平行地程式化控制資料、複製資料與主機資料之組合。如 果將主機資料程式化延遲到已程式化控制資料,則此可避 免在其他§己憶體系統中觀察到的延時。
非揮發性RAM 特定的非揮發性記憶體結構使得能夠以隨機方式存取資 料。其與快閃記憶體相反,其中按最小的單位頁面寫入資 料,並且按最小的單位抹除區塊抹除資料。非揮發性隨機 存取圮fe體(NVRAM)的範例包括磁阻性RAM(MRAM)、鐵 電RAM(FeRAM)以及相位變化記憶體(亦稱為奥弗辛斯基 電效應統一記憶體或0UM)。可將NVRAM用作亦使用快閃 圮憶體之記憶體系統之部分。NVRAM可位於一單獨的晶片 上,或可將其併入到一控制器晶片或一快閃記憶體晶片 上。NVRAM可為一快閃記憶卡之部分或一嵌入式快閃記憶 體系統。可將NVRAM用於許多與非揮發性RAM相同的應 98673.doc -49- 200535854 用/、垃點為斷電不會使儲存於NVRAM中的資料遺失。例 如可將媒體官理表格保存於NVRAM中。 圖19絲員不位於記憶體系統1900上的NVRAM 1901。可將 圯L、組系、、充1 900貫施於一可移除的記憶卡中。可將 1901用作一緩衝器,用於緩衝從主機1905接收到的資料。 藉由在將資料耘式化到快閃記憶體陣列丨91 〇之前緩衝資 料’可將圮憶體陣列191〇之適應性元區塊配置為較佳地適 配所接收到的資料。在圖12A、12B與12C中所示的先前範 例中,隨後將儲存於記憶體陣列之元區塊中的資料複製至 較佳地配置用於該資料的元區塊。藉由使用一 NVRAM緩衝 器,可使得從快閃記憶體之一部分至另一部分之此種複製 得以避免或減至最少。 圖20顯示如何將適應性邏輯區塊配置為反映最初儲存於 NVRAM中的資料串流之邊界之範例。將已從主機接收的資 料串流2001與2002儲存於NVRAM中。資料串流2001與2002 在邏輯上係不連續的。因此,在邏輯位址範圍中,於資料 串流2001與資料串流2002之間有一間隙,指示其係不同的 串流,應予以不同地處理。亦可藉由串流之間的時間延遲 或來自主機的指示串流之間斷開的特定通信來區分不同的 串流。 資料串流2001具有在五個邏輯群組2010至201 4上延伸的 邏輯位址範圍。資料串流2002具有在七個邏輯群組2017至 2023上延伸的邏輯位址範圍。由邏輯群組2010至2014來形 成適應性邏輯區塊2030與203 1。由邏輯群組2017至2023來 98673.doc -50- 200535854 形成適應性避輯區塊2 0 3 2與2 0 3 3。配置適應性邏輯區塊 2〇3 0至2033,以允許在將資料串流2〇〇1、2002程式化到快 閃記憶體陣列2040之程式化期間,允許最大的平行性。快 閃記憶體陣列2040具有四個平面,因此適應性邏輯區塊具 有四個邏輯群組之最大尺寸。適應性邏輯群組2030與2033 各由四個邏輯群組所組成,並且可個別地使用最大的平行 性加以程式化。可使用最大的平行性,平行地將適應性邏 輯區塊2031、2032—起加以程式化。如果資料串流2〇〇1對 應於特定的主機檔案,並且資料串流2〇〇2對應於不同的主 機檔案,則有利的係將兩檔案保存於不同的適應性元區塊 中’以便分別更新該等檔案,使資料複製的數量最小。因 此,用於包含資料串流的邏輯區塊的邊界盡可能地匹配資 料串流的邊界。可藉由其他資料串流使資料串流2001與 2002在遴輯位址空間中分離。藉由將數個資料串流保持於 NVRAM中,可比較數個資料串流的特徵,以決定將資料串 版中的貧料程式化到快閃記憶體陣列2040之最佳方式。可 將圖20的範例實施於圖19中所示的硬體中,其中將資料串 "丨L 2〇01 2002儲存於NVRAM 1901中,並且記憶體陣列2〇4〇 對應於快閃記憶體單元陣列1910。 圖21顯示NVRAM之另一應用。記憶體系統可整合 NVRAM與快閃記憶體,以便根據資料的性質將資料儲存於 兩颁^憶體之任一類記憶體中。例如,可將頻繁地加以更 新之貝料儲存於NVRAM中。可將NVRAM配置為像快閃記 憶體一樣使用。如果快閃記憶體具有特定的抹除區塊尺 98673.doc -51 - 200535854 寸’則可將NVRAM配置為以相同尺寸之資料單位來操作。 •圖21顯示儲存於NVRAM中的已更新資料2140。由包含來 自原始資料串流210 5之原始資料的邏輯群組2 11 〇至2121形 成適應性遊輯區塊2 13 0至2 1 3 2。將適應性邏輯區塊2 1 3 0至 2 1 3 2私式化到記憶體陣列(未顯示)。從主機接收已更新的資 料2140。如上所述,可在更新期間將已更新的資料儲存於 新的適應性邏輯區塊中,以使一或多個適應性邏輯區塊包 含已更新的資料’而其他適應性邏輯區塊則僅包含原始的 資料。由已更新的資料2140與來自原始資料群組2115、2116 之某些原始資料形成邏輯群組2125、2126。由邏輯群組 2125 2126來形成適應性避輯區塊2135。由適應性邏輯區 塊2 131中的其餘邏輯群組來形成適應性邏輯區塊2136、 2 1 3 7。因而,適應性邏輯區塊2 13 1係由僅包含原始資料的 適應性邏輯區塊2136與2137以及包含已更新資料之適應性 避幸耳區塊21 3 5所取代。 將適應性邏輯區塊2135儲存在NVRAM中,而非快閃記憶 體陣列中。此允許有效地更新適應性邏輯區塊2135。一般 而言,可以高於使用快閃記憶體所能達到者的速度寫入 NVRAM。可按非連續的次序寫入資料,並且不具有廢料收 集。媒體管理器可以類似於快閃記憶體的方式來處理 NVRAM。將NVRAM分成尺寸與快閃記憶體之抹除區塊相 同的可定址單位。可平行地程式化可定址單位。記錄邏輯 群組2125、2126之位置的表格簡單地記錄NVRAM中可定址 單位的位址。如果隨後更新的資料具有與已更新資料相同 98673.doc -52 - 200535854 的邏輯範圍,則可快速執行此等更新,而無需將資料從快 間記憶體的一部分複製到另一部分。可從NVRA]VW適應性 邏輯區塊2 13 5重新定位到快閃記憶體。例如,當Nvram中 無足夠容量可用於另一目的時,可將來自適應性邏輯區塊 2135的資料從NVRAM移動至快閃記憶體,以產生可用的 NVRAM容量。 適應性邏輯區塊2136與2137均僅具有一邏輯群組。可配 置此等邏輯群組,以形成新的適應性邏輯區塊2138、2139。 適應性邏輯區塊2138、2139係大於適應性邏㈣塊2136、 2 1 3 7,並且可允許更有效的資料處置。 資料邊界 資料邊界可存在於由記憶體系統所接收的資料中。資料 邊界(邏輯邊界)的範例包括資料執行邊界與標案邊界。一般 而=,將一主機棺案儲存為一或多個資料執行。一資料執 行係由主機酉己置用於檔案儲存的一组邏輯上鄰近的區段。 將資料執行指派給邏輯位址空間中不包含有效資料的部 刀。圖22顯不兩個檔案,即檔案A與檔案B。檔案a包括資 料執行1、資料執行3與資料執行5。檔案B包括資料執行貝2 與資料執行4。 當主機開始在緊鄰另一檔案之結尾的一位址處寫入—俨 案時,建立丨個檔案邊界。因此,一檔案邊界可位於—資= 執行内。圖23顯示在單-資料執行中所寫入的樓案 間的檔案邊界。 〃 一般而言,當使用適應性元區塊的記憶體陣列接收到資 98673.doc •53- 200535854 料時,用於儲存資料之適應性元區 界的位置。此可能制為資料邊界的Μ =慮資料邊 复1示禾知的,或因 為有時間約束強制將資料快速寫入大適應性元區塊中:當 更新儲存於此—記憶體陣列中的資料時,可將某些資料: 原始的^塊複製到新的元區塊。複製此類資料會減小用< 於寫入新資料之記憶體系統容量。一 里 瓜而吕,在給定操作 中僅更新-邏輯槽案。如果—適應性元區塊包含_個以上 檔案之部分,則必須將額外的檔案部分複製到新的適應性 兀區塊。此類部分之複製可發生於廢料收集期間,並且可 用盡大量資源。因&,包含資料邊界的適應性元區塊當被 更新時會引起不想要的負擔。 可藉由在程式化期間最大化平行性同時使記憶體陣列内 之資料的複製減至最少,而達成高性能。可藉由平行地程 式化適應性元區塊以達成高平行度,以及藉由形成最小尺 寸之適應性邏輯區塊(元群組)來包含資料邊界,而達成此等 兩個目的。可將適應性元區塊形成為作為一單位加以更新 的「程式化區塊」。一程式化區塊係最大平行程式化之單 位。因而,一程式化區塊係由橫跨記憶體陣列之所有平面 而共同延伸之適應性元區塊所組成。圖24顯示用在此一記 憶體系統中的資料單位之階層。 圖2 5與2 6中顯示形成最小尺寸之元群組以包含資料邊界 之範例。圖2 5顯示各係儲存於一最小尺寸之元群組中的兩 個資料執行邊界。主機區段資料執行25丨〇從邏輯位址Α延伸 至邏輯位址A+4n+X。因而,一資料邊界2520存在於邏輯位 98673.doc -54- 200535854 址A + 4n+X。邏輯位址A+4n+x係在邏輯群組253〇内。形成 元群組B以包含資料邊界2520。元群組B係僅包含單一邏輯 群組之最小尺寸之元群組。將主機區段資料執行25丨〇的其 餘部分包含於元群組A中。元群組A非為最小尺寸之元群 組,但包含四個邏輯群組。圖25亦顯示從邏輯位址Β+γ延 伸之主機區段資料執行25 11。因而,一資料邊界形成於邏 輯位址Β+Υ。邏輯位址Β + Υ係在邏輯群組253 1内。形成元群 組C以包含資料邊界2521。元群組c係僅包含單一邏輯群組 之最小尺寸之元群組。將主機區段資料執行2511的其餘部 分包含於元群組D中。元群組D具有兩個邏輯群組,並且非 為最小尺寸之元群組。當隨後更新主機區段資料執行251〇 與2511時,可以不存在於已更新資料執行中之額外資料之 少量複製來完成此操作,因為僅元群組B與c包含額外的資 料,並且此荨群組各包含少於一邏輯群組之額外資料。 圖26顯示被映射至最小尺寸之適應性元群組之檔案261 〇 與私案2611之間的槽案邊界2615。在邏輯位址Α + 4η+Χ處顯 不檔案邊界261 5。檔案邊界261 5係位於主機區段資料執行 2605中。邏輯位址Α+4η+Χ發生於邏輯群組263〇内。元群組 Β係由邏輯群組263〇所形成。元群組a係由檔案%…的其餘 部分所形成。元群組C係由檔案261丨的其餘部分所形成。可 藉由更新元群組A與B來更新檔案2610。因此,在檔案八之 更新期間’僅複製包含於元群組B中的檔案2611之一部分 264 1。同樣,可藉由更新元群組β與c來更新檔案β。此包 括僅複製儲存於元群組B中的檔案26 10之一部分2640。 98673.doc 200535854 :藉由記憶體系統根據供應至該記憶體系統的資料來決 定貧料邊界資訊,或可直接將資料邊界資訊供應至記情體 系統。例如,主機可供應資料邊界資訊,其係關於主機供 應至s己憶體系統之資料。資料邊界資訊可包括資料執行邊 界的,置或主機所供應的資料之内的權案邊界。此類資料 邊,貝㈣常係在包含邊界的資料之前提供。如果元群組l 的,大尺寸係L個邏輯群組,則最好在所提供資料前至少[ 個避輯群組提供資料邊界資訊。 主機亦可提供資料執行序列之結尾的通知,以指示0 他資料可用於立即寫入。此通知使記憶體系統可安排後臺 插作。亦可藉由主機來提供省電操作的通知。此一通知可 為交握操作的部分。在記憶體系統對主機作出回應,以指 不其處於適合省電的狀況下之後’省電操作才會發生。在 啟動之後’主機與記憶體系統之間可發生一對話,以使記 憶體系統可通知主機其能力’以及主機通知記憶體系統豆 能力。此類能力可包括接受與使用如上所述之資料 訊的能力。 ' 除了從主機接收資料邊界資訊之外,亦可藉由記憶體系 統從其他來源決定資料邊界。此可包括從已更新的資料之 範圍導出資料邊界位置。可從主機所提供的資料位址直接 識別資料執行的起點。可根據向另—資料執行的位址轉換 而假定資料執行的結尾。根據目錄的圖案及主機的FA存取 假定-標案邊界。亦可使用原始資料的元群組映射來推導 資料與檔案邊界。 98673.doc -56- 200535854 資料邊界管理操作 在方案A中,將資料儲存於一對應於 中可藉由首先將此類資料儲存於暫時位置1 =置的組悲 映射至元群組以儲存於快閃記憶體中而將資料 器RAM來提供暫時的位 :可糟由累積 4首可猎由快閃記憶俨陸万,丨 的一部分來提供暫時的位置。圖巧顯 〜 杳1氺阶罢次 >丨 、、’、使用貢料邊界管理 :末配置貝料之此等兩個替代方案。方案A顯示储存於暫 時累積器RAM中的資料,其在 冊暫 八你從用貝枓邊界管理儲存於 閃纪憶體中之前進行元君导組映射。 、、 耵万業B顯不儲存於快閃記 憶體中的資料,其中在元群組重新 K刖具有中間元群 組映射’然後使用資料邊界管理儲存於快閃記憶體中。 暫時累積器RAM可從主機接收f料區段,隨後傳輪 區段二以便以資料邊界之位置所決定的方式在快閃記憶體 中進行平行程式化。累積器RAM可具有足夠的容量,以允 許儲存至少-個程式化資料區塊。因此,可將累積器RAM 中的資料配置成元群組,然後可將該等元群組平行地程式 化於單-程式化區塊中。累積器RAM可為諸如NVRAM 1901之類的非揮發性記憶體。或者,累積器ram可為非揮 發性記憶體,在該情形下,如果在將資料程式化到快閃記 憶體之前,主機移除功率,則累積器RAM會有資料損失的 危險。藉由在主機與記憶體系統之間具有一適當的協定而 管理此危險。 圖28A顯示一程式化區塊2800,其係由圖25所示的元區塊 A至D所組成。為獲得最大的程式化速度,最好將元區塊a 98673.doc -57- 200535854 至D—起程式化,因而使用記憶體系統之最大平行程式化容 量。為獲得更新檔案時的效率,最好將元區塊6與〔保持為 ^由-抹除區塊所組成的單獨元區塊。圖28A所示的資料組 態可達成此等二目的。作為兩個單獨的資料執行而從主機 接收資料區段,即從A至Α+4η+χ的資料執行251〇以及從 B+y至Β + 3Π-1的資料執行25u。圖28Β顯示如何將來自此等 資料執行的資料區段程式化於元區塊中。在此範例 中’ -頁面包含單一的資料區段,不過在其他範例中,一 頁面可此匕3夕個區段。一程式化區塊橫跨記憶體陣列的 夕個平面而延伸。在一程式化區塊内,可以元區塊組態所 決定的次序來程式化區段。如果一程式化區塊頁面係由來 自記憶體陣列之每一平面的一頁面所組成,則指示程式化 區塊頁面可平行地加以程式化。因此,程式化區塊頁面〇 才κ跨。己fe、to陣列的所有平面而延伸,並且在相同的程式化 步驟中將程式化區塊頁面〇中的所有區段加以程式化。當已 將程式化區塊頁面〇程式化時,便將程式化區塊頁面1程式 化,依此類推。圖28B中程式化該等區段的序列並非圖25 中所示從主機接收此等區段的次序。圖28C中顯示累積器 RAM中此等區段的次序變化。圖28C顯示保存於累積器 RAM中以傳輸用於程式化到程式化區塊28〇〇的資料執行 25 10與貢料執行2511。可如圖所示,將欲複製至程式化區 塊的資料寫入累積器RAM。將區段A+4n+X至A+5n-l與B至 B + Y複製至累積器RAM,以便可將其用於傳輸至程式化區 塊。或者,欲複製的資料可能已位於快閃記憶體中,並且 98673.doc -58- 200535854 冗此可此攸快閃記憶體陣列的一部分直接複製至另一部 刀圖8C,、、、員不圖28B之程式化區塊頁面〇與程式化區塊頁 面1的區段映射。 士果使用&閃§己憶體來提供從主機接收到的資料之暫時 儲存位置’如圖27中的方案B,則以包含各類元群組的中間 格式儲存資料。可藉由諸如f料執行邊界或㈣邊界之類 的邏輯邊界存在於最大尺寸之元群組之邏輯位址範圍内, 亦藉由在任何邏輯邊界之後傳輸其他資料之要求,而決定 此類元群組之尺寸。可使用以下五個元群組類型來以中間 形式儲存資料:完整元群組、部分元群組、短元群組、起 始元群組與多檔案元群組。 圖29A中顯示完整元群組29〇〇。如果在欲儲存的資料中無 邏輯邊界,或如果沒有關於所存在之任何邏輯邊界之可用 資訊,則配置完整元群組。 圖29B中顯示部分元群組·。如果邏輯邊界存在於欲儲 存的資料中,但在以中間格式程式化資料時需要最大平彳$ 性’則可能配置部分元群組。邏輯邊界可能在程式化之前 係已知的(例如,來自主機),或可能在程式化期間碰到。部 分元群組包含比-元群組中可能的最大數目要少的邏輯資 料群組。可將部分元群組程式化到最大尺寸之元區塊,以 便使用§亥陣列的所有平面平行地加以程式化,因此使程式 化盡可能快速。 圖29C中顯示短元群組29〇2。如果邏輯邊界存在於欲儲存 的貝料中,亚且不需要最大的平行性,則配置一短元群組。 98673.doc -59- 200535854 短ί群組具有比—元群組中可能的最大邏輯群組數目要少 =輯辟組。可將—短元群組程式化到—元區塊,該元區 塊包含比最女ρ 大尺寸之元區塊中所含要少的抹除區塊。儘管 使用短元君i τ ^ — 、、、’可平行地程式化重新定位的資料,但資料 寫入頻見會減少。當主機已指示其他資料將不會緊接著資 料執仃邊界時,可使用短元群組。 士圖29D〃中顯示起始元群組29〇3。配置起始元群組來將資料 储f於資料執行的起始邊界。如果資料執行的第一區段非 為U耳群組的第一區段,則可使用對準偏移。可從另一位 :::用於完成第一邏輯群組的資料。如果在寫入期間碰 鋒輯邊界,則一起始群組亦可為一部分元群組。 /29E中顯示多檔案元群組29〇4。一多檔案元群組包含一 才田案邊界,因而包含至少兩不同槽案的部分。一多槽案元 群組亦可_分、短或起始謂組。 ’、 隨後當存在邏輯邊界時,可將如上所述中間格式之元群 組中的貧料重新映射至更理想的組態。因為完整元群组不 包含避輯邊界,則不需要重新映射。然而,可如圖30所示 一 4、射^刀、短、起始與多槽元群組。圖30A顯示將部分 兀群組3〇1〇重新映射至元群組八與元群組b。元群組b係最 寸之7L群組(冑輯群組)。使用從原始區塊複製的資 料來完成元區❹。圖細顯示將短元群組3_重新映射至 兀群組A與元群組B。其類似於部分群組之线映射。圖规 顯不將起始元群組3㈣重新映射至元群組A與謂組β。此 處’起始錢組3_具有_對準偏移。移除此對準偏移, 98673.doc -60- 200535854 使元群組A處於遠蜻;皮 〇 nr^ e A、B^之多;V 重新映射至元群組 3.:群組二=:3_:元群_含邏輯邊界 ’、取i、尺寸之元群組(一邏輯群組)。 可分析中間格式的資料,以便在從主機接收到之後立即 進行重新映射。然而,資料的重新定位不會立即R而 是,可針對資料以及有關資料的資訊安排程式 將已計劃的重新映射料於㈣映㈣表巾著後 臺,在一更適當的時間,完成資料重新定位,或 接收到已儲存資料範圍内已更新資料之類的事件來奸資 列表儲存於快閃記憶體中㈣ 二中…構中’例如在曰諸中’或在專用的重新映射 该重新映射列表對於每—最近寫人的中間格式元群粗 (對於該群組,—重新映射操作正待處理)具有-項目。此類 儿群組-般包含一資料邊界。重新映射列表 : 包含如下六個攔位: 、 元群組的類型(部分、短、起始或多檔案) 元群組中資料執行之起點之邏輯位址 元群組尺寸(元群組中邏輯群組的數目) 元區塊尺寸(元區塊中抹除區塊的數目) 元群組内邊界的偏移 頁面標籤 當建立中間格式的元群組時,將一項目添加至該列表。 當從該列表中刪除中間格式的S群組時,從該列表中移除 98673.doc -61 - 200535854 -項目。當添加或刪除一項目時,可藉由將新的列表寫入 ,斤勺位置’例如新的日誌區段或新的重新映射區段·: 更新該列表。 匕奴而 重新映㈣表中的元群經映射不用於與相關資 體管理操作。媒體管理控制結構係關於配置心 i存錢的中間格式元群組。因此,可從重新映射列表 移除項目,而不會對其他媒體管理功能造成影響。例如、 如果積壓的待處理操作變為太大,則可刪除項目。复口日 會降低將資料儲存於記憶體陣列中的方式之效率。、疋 :安排從Μ格式程式化資料,使得不會減小供主機用 、:、入:機貧料之寫入頻寬。在未從主機接收資料時 作為後至知作而執行重新映射操作。可平行地程式化單— _、的所有重新映射疋群組。可建立與主機的交握協 二:管理記憶體系統的省電狀況,以便在執行重新映射 Μ發生功率損失。可與原始主機資料之程式化平 二地執行重新映射操作。圖31顯示將來自主機⑽的資料 式,到適應性兀㊣塊3丨丨Q而將從記憶體陣列3 1G卩重 位的貝料平行地程式化到適應性元區塊3 12G。由於此—平 行操作將減小用於寫入原始主機資料的寫入頻寬,故僅當 f機抽記憶體系統無進一步的原始主機資料可用於立即 τ此犬員平订程式化可能才是適當的。可回應於主機 更新而執行重新映射操作。如果欲更新的資料採取中間格 式JL且係列不於重新映射列表中,則可以重新映射格式, 連同攸中間元群組複製的資料,寫入已更新的資料。 98673.doc -62 - 200535854 可暫停重新映射操作,以允許對主機介面處的新交易提 (、回應。可在目前頁面程式化操作之後暫停重新映射操 作,在該情形下,隨後以下一頁面的重新程式化而恢復。 或者如果晶片架構允許,可在程式化頁面的過程中暫停 重新映射操作,以便對主機作出快速回應。為了在頁:程 式㈣間暫停重新映射操作,可藉由向快閃記憶體晶片= 佈一重設命令來終止其在快閃記憶體中的執 μ ^ w百,曰曰 應於新的主機交易而立即用於存取。隨後,可藉由 將已暫停頁面的相同資料重新傳輸至快閃晶片,繼之=一 令,而恢復重新映射操作。許多快閃晶片架構允 開始程式化已部分程式化的頁面,只要資料圖案保 其中由主機提供邊界位置資訊之資料儲存 次在—項具體實施例中’主機可為記憶體系統提供額外的 其可用於將主機資料更有效地儲存於記憶體陣列 :b類貧訊的一範例係所傳送主機資料中資料邊界(邏輯 ::)的位置。一般而言’應在傳送包含邊界的 :π料邊界的位置’以便當主機資料被接收到並且不 τ中間格式儲存時’可以有效的方式儲存主機資料。 =了根據資料邊界位置更有效地儲存主機資料,在將資 料己憶體陣列之適應性元區塊中之前,緩衝某此資 糸有利的。可基於此目的而提供串列快閃緩衝器。、 串不由來自已抹除區塊集區3204之抹除區塊所組成之 I ‘、閃緩衝器3202。可將串列快閃緩衝器32〇2中的抹除 98673.doc -63- 200535854 區塊配置為最大尺寸的適應性元區塊,像傳統的元區塊— 樣。此允許以記憶體陣列的最大平行性將資料程式化於串 列快閃緩衝器。如果將記憶體陣列分成平面,則其一般音 味著串列快閃緩衝器的元區塊包含來自記憶體陣列之每又: 平面之抹除區塊。因而’串列快閃緩衝器3202係由一或多 個緩衝器元區塊所組成,其一般係’但不一定係元區塊, 以允岭以最大平行性儲存資料。可用作串列快閃緩衝器之 結構的範例係提供於標題為「便條紙(semehpad)區塊」的 吳國專利申請案中,律師槽案號碼為SNDK4〇6us〇,申請 日期與本申請案相同,以引用方式將其全文併入本文。月 作為如上所迷將貢料直接儲存於記憶體陣列巾之適廣性 元區塊中的替代方案,可將主機資料傳送至串列快閃緩衝 二2。串列快閃緩衝器可由記憶體陣列中的一或多個緩 衝為兀區塊所組成。一緩衝元區塊可能包含邏輯上不相關 的多個資料部分。由於邏輯邊界與緩衝器元區塊之元區塊 β "不匹配,故串列快閃緩衝器32〇2内的不同元區塊不具 有任何特別重要性。因此’連續資料的一部分可儲存於單 一元區塊中,或可儲存於多個元區塊中,並且一般與緩衝 器元區塊不對準。當從緩衝器元區塊複製資料時,可使緩 衝器元區塊中的資料變為過期。當緩衝器元區塊中的所有 貝料ir'過期日才’可冑包含緩衝器元區塊的抹除區塊返回至 已抹除區塊集區。因此’可視需要,由來自已抹除區塊集 區的抹除區塊形成緩衝器元區塊。接著,當其僅包含過期 貝料時’ T抹除該等抹除區土免,並將其返回i已抹除區塊 98673.doc -64- 200535854 集區。_ m夬閃緩衝器3202形成一線性記憶體,其中將欲 儲存於串列快閃記憶體3202中的新資料寫入在緩衝器頂部 由來自已抹除區塊集區3綱(來自配置區塊列表或類似的 結構)之鏈接區塊所形成的緩衝器元區塊中,並且將位於緩 衝器底部之緩衝器元區塊中的f料複製至已配置的適應性 元區塊以使位於緩衝器底部之元區塊中的資料變為過 期將僅包含過期資料之緩衝器元區塊的抹除區塊返回至 已抹除區塊集區3204(至平面區塊列表或類似的結構)。緩衝 裔το區塊可為固定尺寸的元區塊,或可為已個別選定之尺 寸之適應性元區塊。對於某些範例,可將最大尺寸之元區 塊用作緩衝器元區塊,以提供高平行度。 圖33A頒不將主機貢料儲存於快閃記憶體陣列之已配置 適應性元區塊中的兩種替代性路線。將資料直接寫入⑽ 至已配置適應性元區塊侧中。或者,可將資料寫入MM 至串列决閃緩衝器3302的緩衝器元區塊33 12,並將盆從 緩衝器元區塊3312複製3314至已配置適應性元區塊33;6。 將此等㈣㈣料㈣觀線⑽特㈣㈣可能取決 於邏輯邊界的位置。㈣言之,如果藉由主機提供邏輯邊 ’I的位置可根據所提供的位置來決定應使用哪種路線。 如果-部分資料等於或大於最大尺寸的元群組並且不具有 任何域輯&界,則可將該部分資料直接儲存於已配置的適 應性元區塊中。如有可能’可使用最大尺寸的適應性元區 塊來獲得最大的平行性。如果要儲存小於最大尺寸之元群 、且的#刀貝料,則可根據該部分的尺寸來決定使用哪種 98673.doc -65 - 200535854 路線。如果一部分資料具有邏輯邊界,則通常最好將其儲 存於最小尺寸之適應性元區塊中。可將此類資料部分儲存 於緩衝器元區塊中,隨後將其複製至已配置的適應性元區 鬼中此允5平以最大的平行性從主機接收並最初快速地儲 存此類資料部分。隨後,可與其他資料平行地將此類資料 邻刀複製至已配置的適應性元區塊,如圖33a中的33〇6與 33 14所不,以便使用高平行度。因此,即使寫入最小尺寸 之適應性元區塊,一般仍可避免以低平行度寫入資料。 圖33B顯示將緩衝器元區塊33 18中的資料複製332〇至最 J尺寸之適應性元區塊3322之另一範例,在適應性元區塊 3j22中,其與從原始適應性元區塊3328複製的資料3324 一 起儲存。此範例係、包含邏輯邊界之最小尺寸之適應性元區 ^的典型。由於邏輯邊界發生於適應性元區塊之邏輯位址 空間内的某處,故當更新邏輯邊界一侧上的資料時,將已 更新的貪料與某些原始資料都館存於適應性元區塊中。 二圖34顯示使用串列快閃緩衝器之方案,即方^,其與先 前所述之方案進行比較。方案以某一中間格式儲 存所有接收到的資料(RAM中或快閃記憶體中),決定資料 的特徵(例如,邏輯邊界的位置),然後根據該等特徵將資料 料^快閃記憶體中。相反,在方以中,從主機接收資料 、仏丈Α等特徵之接收允許根據該等特徵直接將資料儲 =於快閃記憶體中。然而,將某些資料儲存於緩衝器元區 塊343〇中,隨後根據該等特徵將其複製3432至快閃記儕體 中進行儲存,以允許高速操作。因而,緩衝器元區塊:目 98673.doc -66 - 200535854 的不同於RAM或方案A與B之中間元群έ # + 1 目的,並且將所 儲存的大部分資料直接寫入已配置的元區塊。 可在貧料執行中更新資料,其中 '丁十執仃係由主機配置 的一組邏輯上鄰近的區段,該等區 、, 仅隹配置之前片刻系間 置的’並且延伸於已配置的區段之間 心间因此,當主機將資 料配置給已配置的邏輯位址空間部分所界定的_間置邏輯 位址空間連續部分時,形成一資料執行。在某些系統中, 資料執行與元群組結構不對準,其會在資料更新期間引起 低效率。在此處所述的某些系統巾,可藉由使元群組的尺 寸與邊界位置(因而對應適應性元區塊的尺寸)適合資料,可 使貧料執行更好地與元群組對準。特定言之,可使用最小 尺寸兀群組來儲存包含邏輯邊界之資料部分。可藉由記憶 體控制器來決定資料執行邊界的位置。當從主機接收到與 最後接收到的資料不連續的資料時,可識別資料執行起始 處的貝料執行邊界。亦可藉由邏輯位址中的跳躍來識別資 料執行結尾處的資料執行邊界。此類跳躍之前的最後區段 可為貢料執行的最後區段。然而,可能會有例外,其中從 主機接收到的區段中的邏輯位址跳躍係由於更新系統資訊 (例如FAT)或將寫入插入不同的資料執行。在某些系統中, 主機可以插入的方式寫入多個資料執行。一控制器可保持 多個開放資料執行以處理此情況,因此如果接收到與開放 資料執行連續的資料,則將其視為該資料執行的部分。如 果其與開放資料執行不連續,則可將其新資料執行的起 點。在一時間週期之後、當資料執行的數目達到一限度時 98673.doc •67- 200535854 或回應於來自主機的信號,可藉由控制器關閉開放資料執 行0
圖35A顯示以非對準(N)儲存的資料執行3530。此係不考 慮C輯k ”的位置而儲存的資料執行。元群組結構顯示最 大尺寸的所有元群組。圖35B顯示以部分對準(P)儲存的資 料執订35 32。使用最小尺寸之元群組3534(一邏輯群組)來 儲存貝料執行3532起始處的資料執行邊界。將資料執行 3532的其餘部分儲存在最大尺寸之元群組3536、3538中, 以使資料執行的結尾發生於最大尺寸之元群組3538中。因 此對於在每一端具有資料邊界的資料執行,僅將一資料 邊界配置給最大尺寸的元群組。圖35C顯示以完全對準(F) 儲存的資料執行3540。將最小尺寸的元群組3542、3548配 置給資料執行3540兩端的資料執行邊界。若有可能,使用 取大尺寸的群組(例如,元群組3544)來獲得高平行性。然 而在此範例中,將縮小尺寸之元群組3546用於倒數第二 個元群組。
叙而έ,如果將最小尺寸之元群組配置給一資料執 之=一端,則此等元群組之間的資料執行部分不形成整 個最大尺寸的元群組。因此,來自資料執行之中間部分 至少—個树組係小於最大尺寸。在圖35C中所示的範. 中’倒數第二個元群組3546係縮小尺寸的元群組(或填補 ,組)。然而’填補元群組不必處於任何特定的位置。圖35 員丁-有映射至不同尺寸之適應性元區塊的資料執行之 料執行結構。將最小尺寸的頭部區塊355〇與尾部區塊设 98673.doc -68- 200535854 用於包含資料執行邊界的邏輯群組。在包含資料執行 的邏輯群組3550、3556之間,如有可能,將資料映射y 大尺寸之適應性元區塊(例如,元區塊加)。在其他範= 中,將多個完整的區塊用於資料執行。將其餘資料館存於 填補區塊3554中,其係縮小尺寸之適應性元區塊。、 圖35E顯示以完全對準儲存於具有八個邏輯群組之 兀群組尺寸的記憶體中之不同長度的資料執行。如果 執行邊界發生於單-的邏輯群組中,此邏輯群組形成最小 尺寸的元群組3558,並且可將其視為頭部元群組。如果次 枓執行延伸到兩個邏輯群組中,則每一邏輯群組形成最: =寸之凡群組3560、3562,並且可將其視為頭部 =。如果資料執行延伸到三個邏輯群組中,則中 ==4形成最小尺寸的元群組,並且可將其視為填補 讀^料延伸到三個與九個邏輯群組之”資料執 :而尾部元群組保持相同,並且根據資料執行的尺 邏輯群Γ 組的尺寸增加。如果資料執行延伸到十個 則可在頭部與尾部元群組之間形成完整元群植 邏輯群Π無填補元群組可能係必要的。對於大於十個 群植。量科執行’可形成一完整的元群組與一填補元 整的元群,個邏輯群組的資料執行,則可形成兩個完 群組,視=^_行,可形成多個完整的元 視而要再加上適當尺寸的填補元群組。 當主機更新資料時,一般在延伸 的 峨行中接收資料。此; 98673.doc -69- 200535854 所識別的相同並用於儲存資料。因此 按與更新資料之資料 貝寸+執仃可更新已 例如,如果資料執行更新準的方式所儲存的資料。 範圍上的資料執行所更新^由延仲於相同的邏輯位址 的邏輯邊界對準。如果已二二:將該等資料與相同 的完全對準而健存,則更新資料包括完全至完= '界 果所儲存的資料以部分對準而館存’則更=部口 至完全或部分至邱八喆4么 月匕已括口P刀 計目… σ刀轉換。如果所儲存的資料以非對準而 儲存,則更新可能包括非至完全、非至部分而 圖36顯示資料更新期間可能發生的某些轉換 、 某些其他的轉換(例如完全至非),但其 二= 在圖36中未予說明。 个里心的故 二::示當從主機接收到資料執行3770時完全至完全 換的範例。資料執行377〇可作為邏輯上連續的資料 串流而被接收到。除此之外,主機可傳送資料邊界 ;立置:',其包括資料執行起始與結尾處資料邊界的位 置。雖然資料執行之起始位置加可根據資料執行377〇中 所接收到的第-區段之位址而加以決I而無需事先知 本粑例中,在接㈣諸執行3770的最後區段之前, 貧料執行之結尾位置3774係已知的’以允許完全對準。在 其他範例中,可能無法確定地知道f料執行之結尾位置, 但可從先前資料執行之結尾位置預測該位置。可藉由主機 將此類資料邊界位置記錄於列表中。來自主機之資料執行 3770的資料執行邊界係與先前所接收到並以完全對準儲存 98673.doc -70- 200535854 的資料執行之資料執行邊界相同。因此,可配置尺寸與原 始元群組相同的已更新元群組。資料執行3 77〇之資料部分A 與D係位於包括資料執行邊界的邏輯群組中,因此係儲存 於最小尺寸之元群組中。因此,最初將其儲存於串列快閃 緩衝器中(A~>K,D—L)。隨後連同原始資料(p—E、q—j), 將、、爰衝為尺與L中的資料複製至頭部元群組3776與尾部元 群組3778(K—F、L—I)。作為最小尺寸之元區塊將頭部與尾 邛7C群組3776、3 778儲存於記憶體陣列中。資料執行之部 形成最大尺寸之元群組G,因此係直接儲存於最大尺寸 之已配置tl區塊中,而無需儲存於串列快閃緩衝器中。資 料執仃3 770之部分c形成小於最大尺寸之元群組h。直接將 兀群組Η寫人快閃記憶體中已配置的適應性元區塊。 在某些範例中,諸如部分〇之類的資料部分可在儲存於已 配置的適應性元區塊之前儲存於串列快閃緩衝器中。然 L根據部分C的尺寸,將其直接寫人快閃記憶體可能更為、 一效。例如’如果部分c包含幾乎相當於整個元群组之資料 ^則將資料直接寫入快閃記憶體可能比將其寫入串列緩 衝器然後以對準袼式複製至快閃記憶體更為有效。一般而 二緩衝f料而產生的效率增益對於少 貝;、:、、、取大’而對於大量資料為最小。可根據資料部分 寫二來決定是否緩衝資料。可將完整的資料元群組直接 尺奴元區塊,可將包含一邏輯群組或更少之資 么入列緩衝裔’並且如果介於一邏輯群組與一完整元 、、且之間的貧料小於一臨界尺寸,則可將其予以緩衝。例 98673.doc 200535854 ^ 4 界值可為一完整元群組中邏輯群組之數目的一 半 或 完整兀群組中邏輯群組之數目的一半減去2 、二'、中N為一元整元群組中邏輯群組之數目)。n/2-2 丁為允。午有效插作並獲得一收斂的串列快閃緩衝器而計算 白^ L界值。因此,如果在元群組中有十六個邏輯群組,則 σ在串歹j、、爰衝為中緩衝包含六個邏輯群組或更少之資料部 分,而包含六個以上邏輯群組之資料部分則可直接寫入快 閃記憶體。
一圖•、肩不攸部分對準轉換至完全對準(P2F)之範例。在此 "^中可彳之主機接收貢料執行3880並將其以完全對準儲 、j置最小尺寸之頭部元群組3882與尾部元群組3884。 以與:枓執行之資料邊界部分對準之方式先儲存藉由資料 執行3 8 8 0加以更新的杳 _ )貝枓。因此,對於與頭部元群組相同 的邏輯位址空間,存在最小尺寸的原始元群組3886。然而, 不存在與諸執行之尾部對應的原始最小尺寸之元群組。 類似於圖37所示者而#罢次」
々置貝料執行之起始處的資料。將資 料A儲存於串列快閃 _ 、 . 、門、友衝為中(A—K)。隨後,連同從原始元 群組(P —E)複製的緩衝写 衝态£中之貢料,將緩衝器K中的資料 複製至最小尺寸之p p虹AA 貝討 … 匕吏新的元群組3882(K—F)。如上所 ,將貝料B與C程式化於元群組。元群組G係顯示為 攻大尺寸之元群組, J將其直接程式化於最大尺寸之已 新的元區塊。元群組則系 文 ^ P ^ ^ - η ,、;取大尺寸,亚且可直接程式化 於已更新的兀區堍,十, 、一 或可百先儲存於串列快閃緩衝器中, 視元群組Η的尺寸而中 在此範例中,將元群組H直接程式 98673.doc -72- 200535854 化於已更新的兀群組。如果接收到較長的資料執行,則可 使用隶大尺寸的額外元群組。 資料執行3880結尾處之資料D複製至串列快閃緩衝器 (D—L),隨後連同從原始元群組(q—j)複製的資料】,將其 複製至尾部元群組38料。從大於最小尺寸之元群組3888複 製資料J(在此種情形下係最大尺寸之元群組)。元群組“Μ 包括僅包含未由資料執行更新之資料的邏輯群組r。將邏輯 群組R重新定位至重新定位元群組(R—T)。在其他範例中, 重新定位元群組可能包含多個邏輯群組。原始資料從原始 元群組至重新定位元群組之此種複製可與其他程式化操作 平打地完成,以獲得較大的效率。如圖37與38所示,部分 至完全轉換可包含比完全至完全轉換(例如複製原始資料 至重新定位元區塊丁)更多的資料複製。 圖39顯示對於從主機接收到的資料執行399〇,從部分對 準轉換至部分對準(P2P)的範例。此轉換類似於以上針對資 料執行之起始處的資料所述者。將資料執行测之起始處 的資料A儲存於串列快閃緩衝器(Α—κ)中,隨後連同從原始 元群組3994(P—E)複製的資料E,將其複製至最小尺寸之已 更新的元群組3992(Κ,。將資料B程式化於最大尺寸的元 群組(B—G)。將延伸至資料執行邊界並包括—小於最大尺 ’寸之元群組之資料D寫人—最大尺寸之已更新的元群組 〕996(D^I)。將來自原始凡群組的資料Q複製至相同的最大 尺寸之更新元群組3996(Qw)。因此,在此轉換期間,對準 保持相同’將起始資料執行邊界映射至最小尺寸之適應性 98673.doc -73- 200535854 元群組3 9 9 2,並日腺甘从-欠丨 且將其餘負料映射至最大尺寸之適應性元 群組。 圖40頌不攸非對準轉換至完全對準(NM)之範例。接收到 來自主機的貝料執行4⑽2,並將其用於更新以非對準(即不 ”貝料執仃邊界對準)儲存的原始資料。在此制中,將原 始的資料儲存於最大尺寸之^區塊中。減,已更新的元 且〇括用於貝料執行4⑼2之起始與結尾處之資料邊界之 取小尺寸的頭部元群組4〇〇4與尾部元群組4〇〇6。將來自資 =執订4GG2之第_部分邏輯群組之資料缝衝至串列緩衝 :(Α〜。同樣,將來自資料執行之最後部分邏輯群組之 :緩衝至串列緩衝裔(D —L)。其可能對主機所提供的關 :貝料執仃4GG2之結尾處之資料執行邊界位置的資訊作出 回應二將資料B儲存為最大尺寸的元群組(b‘)。對於較大 的貝料執仃’可將額外的資料儲存為額外的最大尺寸之群 將原群組G儲存於最大尺寸之元區塊中。將未配置給頭 尾。卩或取大尺寸疋群組的其餘資料c配置給填補元群組 一。)在本範例中,將元群組Η直接儲存於小於最大尺寸 2區塊中’但在其他範例中,則將其首先儲存於串列緩 中…、、後將其複製至小於最大尺寸之元區塊。在此範 可將C視為尾部填補資料,可將H視為尾部填補區 塊。可將原始元群組中未予更新的資料(〇、p、q、r)複梦 至重新定位元群組(〇4、R—T)或頭部與尾部元群組 制 Q —J) 士°果可能’可平行地完成此等資料部分的複 可平行地70成將部分0與R複製至已重新定位的 98673.doc 200535854 元群組S與T,其巾〇與尺一起包含與一最大尺寸或更小之元 群組等效的資料。部分!>與(^的複製可與從其他原始元群組 或從争列緩衝器的其他複製操作平行地完成。如果資料部 分C係短的,則可緩衝資料部分c,並與其他的程式化操 作,例如資料部分E、F、1與;的程式化平行地將其複製至 已更新的元群組。 圖41顯示從非對準轉換至部分對準(Ν2ρ)之範例。原始元 群組未與資料執行411〇的資料執行邊界對準。在此範例 中,原始元群組係最大尺寸的元群組,儘管對於非對準, 其不一定如此。所形成的已更新元群組具有與資料執行的 部分對準。最小尺寸的已更新元群組4112係配置用於資料 執行4110之起始處的資料執行邊界,如圖4〇中所示。其餘 凡群組係最大尺寸的元群組,並且未將資料執行4ΐι〇之結 尾處的資料執行邊界配置於最大尺寸的元群組。相反,在 此範例中,將資料執行4110之結尾處的資料執行邊界配置 給最大尺寸的元群組4114。原始元群組包含已被複製至已 更新元群組(P—E、Q—J)或已重新定位元群組(〇—s、r—t) 的原始貢料(〇、P、Q、R)。 圖42顯示從非對準轉換至部分對準(N2p)之另一範例。原 始元區塊同樣係最大尺寸的元區塊。圖42顯示來自主機並 具有不對應於原始元區塊(非對準)之資料執行邊界之資料 執行4220。形成已更新元區塊,以便與資料邊界部分對準 而將資料儲存於資料執行中。在此範例中,將最小尺寸之 已更新的元群組4222指派給資料執行422〇之起始處之資料 98673.doc -75- 200535854 執行邊界。將其他已更新元群組之元群組邊界定位於與原 始元群組之元群組邊界相同的位置。在此範例中,將小於 最大尺寸G之元群組用於頭部元群組與下—元群組邊界之 間。可將其視為頭部填補元群組,並將儲存於其中的^料 視為頭部填補資料。可直接或在串列㈣緩衝器中缓二之 後,將頭部填補元群組儲存於頭部填補元區塊中。決定是 否直接儲存頭部填補元群組或對其進行緩衝可能係基於= 是否大於或小於某一臨界值(如上文關於尾部填補資料; 述如上所述,可按需要將原始資料複製至已重新定位的 元群組(〇~>S)或已更新的元群組(Q—j)。 圖43顯示從非對準轉換至非對準(N2N)之範例。在此範例 中,從主機接收到資料執行4330,其更新儲存於與資料執 行邊界不對準的原始元群組中的資料。將已更新的資料儲 存於亦與資料執行邊界不對準的已更新元群財。在此範 例中’原始元群組與已更新的元群組僅包括最大尺寸的元 羊、、’可將此方案用在不使用適應性元區塊的系統中(其中 將元區塊尺寸固定的系統)。在此範例中,不使料列快閃 緩衝器。將原始的資料(P、Q)複製至已更新的元區塊 Q ~>J) 口而,將大量原始資料儲存於已更新的元群 組中’亚且如果接收到具有相同資料執行邊界位置的後續 貧料執行,則再次複製此資料。 資料執行更新管理 才田案係組在主機系統内建立的資料,或由主機系統 攸-外部來源接收到,其係在主機系統内被映射至邏輯區 98673.doc -76- 200535854 段位址。將一組鄰近的邏輯區段位址稱為資料執行。資料 執行可視為由主機配置用於儲存一或多個檔案或一標案之 多個部分之一組邏輯上鄰近的區段,該資料執行延伸於邏 輯位址空間之先前配置的部分之間。主機可將寫入操作插 入到不同的資料執行。一般而言,可在任何時間允許有限 數目的開放資料執行,以便根據要求開放及關閉資料執 行。可將資料執行内的-區段寫入一開放緩衝器或與該資 料,行相關的一更新區塊。從資料執行接收並儲存資料包 括管理資料執行以及用於儲存資料的記憶體結構(包括緩 衝器與更新元區塊)。圖44顯示可針對其實施的某 操作。 ,開放-資料執行可發生於接收到與現有資料執行中的最 = = 的一區段並且該區段不位於所允許的從現有 貝料執订中取後區段所跳躍之連續位址之範圍内時。 料妹係最近更新的(LRU)資料執行,存在所允許的最:資 ^執灯數目亚且必須開放新的資料執行時,可闕閉一資料 ^于^更新資料執行内的區段,引起將更新視為混料, 申請案第10/7《 厂般使用其他的方法,例如美國專利 緩衝 Μ 55號中所述者’來處置此類混絶的更新。 、、…·、、、用於從資料執行寫入連續 衝器之一部分。产+ u 干~間* 體上鄰近。可終由赛二快閃緩衝器f ’一緩衝器無需在實 器的插入式寫二又仔非鄰近的缓衝器而輔助對多個緩衝 則當開放資料執行;果資料執行的第-邏輯群組不完整, 執騎’可能開放緩衝器。當接收到資料執 98673.doc -77- 200535854 仃之最後邏輯群組之第一區段時,亦可能開放緩衝器。亦 可針對填補資料(頭部或尾部填補)開放緩衝器,其中填補資 料係】於某預疋的量。當欲寫入緩衝器的資料為完整 哙,可關閉緩衝器。藉由將所有其資料寫入一更新區塊而 複製已關閉的緩衝器。當緩衝器係串列快閃緩衝器結尾處 之接下來可用的緩衝器之一時,可能發生複製。一般而言, 此類複製與其他緩衝器或原始資料之其他複製平行地發 生。 x 一更新元區塊可能係被寫入來自主機或來自緩衝器之某 些已更新資料之適應性元區塊。當接收到未傳送至緩衝器 亚且對於其不存在不完整之更新元區塊的資料時,可配置 更新元區塊。當從緩衝器複製資料時,亦可配置更新元區 塊。更新元區塊的尺寸取決於欲儲存的資料量。更新元區 塊可為取小尺寸元區塊、縮小尺寸元區塊或最大尺寸元區 塊。例如,可將最小尺寸元區塊用於資料執行之起始(頭部) 與結尾(尾部),可將縮小尺寸之元區塊用於填補資料(頭部 填補或尾部填補),並且可將最大尺寸元區塊用於資料執行 的所有其他資料。當以來自主機、緩衝器或原始區塊的資 料填充最後區段時,可將更新區塊視為完整❸。目而,可 作為從緩衝器複製操作之結果或作為從原始區塊複製之結 果而發生完成,其可由資料執行的關閉來觸發。 凡一原始元區塊可為適應性元區塊,其包含一或多個區 段’來自主機的已更新區段已使該等區段變為過期。當藉 由接收到已更新資料之一區段而使一元區塊内的區段二 98673.doc -78- 200535854 過期%,可將该元區塊視為一開放的原始元區塊。當主機 對任何開放資料執行的進_步寫人不會使—原始元區塊内 的其他區Μ為過期時,該原始元區塊視為完整的。 可將資料從完整的原始元區塊複製至重新定位元區塊。當 已複製一完整原始元區塊内的所有有效區段時,可將該完 整原始7G區塊視為完全過期的原始元區塊。可抹除一完全 過期的原始元區塊。 一重新定位元區塊係一適應性元區塊,將連續的資料邏 輯群組從原始的元區塊複製至該適應性元區塊中。當資料 係欲從原始元區塊複製並且非為頭部或尾部元區塊的部分 時,可配置重新定位元區塊。當已寫入一重新定位元區塊 的最後區段位置時,可將該重新定位元區塊視為完整的。 重新定位元區塊可為最小尺寸或縮小尺寸的元區塊。 圖4 5顯示根據本發明一具體實施例用於以資料邊界對準 儲存從主機接收之資料之流程圖。當此範例顯示所儲存的 資料區段時,亦可使用其他資料單位。最初決定區段之儲 存是否包括對開放資料執行的混沌更新4550。混沌更新係 其中以非連績方式更新區段之更新,並且係進一步說明於 申請案第10/750,155號中,以引用方式將該申請案全文併入 本文中。作為以資料邊界對準進行儲存之替代方案,亦可 實施對開放資料執行的混沌更新。因此,此處未詳細說明 混沌更新。如果決定該等區段不需要混沌更新,則決定所 接收到的區段是否與開放資料執行連續4552。 如果所接收到的區段與開放資料執行不連續,並且如果 98673.doc -79- 200535854 開放貝料執仃的數目小於預定的最大值4…,則開放新的 資料執行4556。如果開放資料執行的數目不小於預定的最 大值,則在開放新的資料執行4556之前必須關閉資料執行 仙(如後說明)。開放新的資料執行之後,決定是否有從邏 輯夢、'且邊界至貝料執行之起點的偏移4州。如果有偏移, 則開放緩衝器4562,緩衝器的尺寸等於頭部資料,即位於 第一邏輯群組中的資料執行部分。隨後將區段寫人此緩衝 器,直至達到緩衝器的結尾,並關閉緩衝器。
,如果所接收到的區段與開放資料執行連續,並且對於資 料執行存在—開放緩衝器咖,則將區段寫人緩衝器 6如果對於資料執行不存在開放緩衝器4564,但對於 資料執行存在不完整的元區塊侧,則如下所述將區段寫 =不,整的元區塊457〇。如果對於資料執行,不存在開放 緩衝器和不完整的元區塊,則決定所接收到的區段是否係 真補資料4572。而且,如果所開放的新資料執行沒有
從邏輯群組邊界的偏移侧,則作出此決^。如果該等區 段係頭部填補資料’則將資料量(區段的數目)與一預定的值 (咖㈣比較4574,該預^值係』於緩衝的最大填補長 度。如果區段的數目不大於maxpad,則開放—緩衝器45%, 其尺寸等於頭部填補資料。如果區段數目大於,則 配置-縮小的元區塊4578,隨後將區段寫入此縮小的元區 塊 4 5 7 0。 &T果決定區段非為頭部填補資料4572,則接下來決定區 段是否係尾部填補或尾部資料4580。如果其非尾部填補或 98673.doc -80- 200535854 尾部資料,則配置最大尺寸元區塊4582,隨尨收「 1成佼將區段寫入 最大尺寸元區塊4570。其係一種針對既非頭部亦非尾部資 料之資料的預設條件。因而,一般將資料執行中間的資料 寫入最大尺寸的元區塊以使用最大的平行性。如果區段包 含尾部填補或尾部資料,則決定區段是否係尾部資料(來自 資料執行之最後邏輯群組)4584。如果其來自最後邏輯群 組,則開放緩衝器4586,緩衝器尺寸等於尾部資料(等於來 自最後邏輯群組中之資料執行之資料)。隨後,將該等區段 寫入緩衝器4566。如果區段並非來自最後的邏輯群組,則 區段係尾部填補資料,並且決定尾部填補長度是否大於預 定的尺寸(maxPad)4588。如果區段數目大於maxpad,則配 置4578 —縮小尺寸的元區塊,隨後將區段寫入元區塊 4570。如果尾部填補不大於maxpad 4588,則開放等於尾部 填補的緩衝器459〇。隨後將區段寫入此緩衝器4566。 圖46顯示用於將區段寫入一或多個元區塊之流程圖。在 本申清案之此及其他流程圖中,邏輯流係朝向流程圖的底 部’亚且決策方塊具有在方塊下所示的肯定結果以及方塊 側所示的否定結果。首先決定配置用於儲存區段群組之 兀區塊是否係縮小或最小尺寸元區塊460 1。如果未配置縮 小或取小尺寸之元區塊(配置最大尺寸元區塊),則將欲寫 入的區段平行地寫入已配置的元區塊4603。接著,決定該 兀區塊疋否為滿4605。如果元區塊為滿,則指定「完整」 4607 接著決定在原始元區塊中是否對應於資料執行或可 由主機寫入資料執行之其他資料的所有資料已變為過期 98673.doc 200535854 4609,若如此,則將原始區塊視為完整的46丨丨。如果寫入 縮小或最小尺寸之元區塊4601,則如果目前未複製緩衝器 4612,則識別可用於複製的已關閉緩衝器4613,識別與該 等緩衝器相關聯的任何原始資料46 1 5,並且配置46 1 7 —或 多個已縮小的或最小尺寸元區塊。如果目前未重新定位原 始的資料4619,則識別4612欲從完整的原始元區塊重新定 位的資料,並且配置縮小或最小尺寸元區塊4623。接著如 上所述與從緩衝器複製或重新定位到已縮小元區塊的區段 之寫入平行地將區段寫入到已配置給區段群組的元區塊。 圖47顯示用於關閉資料執行之流程圖。首先識別最近使 用的(LRU)資料執行4731。如果對於此資料執行存在任何開 放緩衝器4733,則將其關閉4735,並且如果對於資料執行 存在任何不完整的元區塊4737,則從原始的元區塊或緩衝 器複製資料4739,直至不完整的元區塊變為完整的4741。 如果存在任何部分過期的原始元區塊4743(完整的原始元 區塊)’則配置4745縮小尺寸的元區塊作為已重新定位的元 區塊,亚且複製有效區段4747,直至原始區塊係完全過期 4749 °接著可將資料執行指定為關閉4751。 雖然結合特定示範性具體實施例說明本發明,但應瞭 解,本發明有權在所附申請專利範圍之完整範疇内受到保 護。 【圖式簡單說明】 圖1A與1B分別係一起運作之非揮發性記憶體與主機系 統之方塊圖; 98673.doc -82 - 200535854 圖2說明圖1A之記憶體陣列之第一範例性組織; 圖3顯示具有圖丨八之記憶體陣列中所儲存之負擔資料之 範例性主機資料區段; 圖4說明圖1Α之記憶體陣列之第二範例性組織; 圖5說明圖1Α之記憶體陣列之第三範例性組織; 圖6顯示諸如圖5所示之記憶體陣列中的元區塊之範例; 圖7 _示諸如圖6中所示之元區塊中所儲存之邏輯區塊之 範例; 圖8顯示其中將原始資料儲存於記憶體陣列中之元區塊 之資料更新; 圖9 Α顯示儲存於記憶體陣列中之適應性元區塊中的適應 性邏輯區塊; 圖9B顯示區段至邏輯群組以及邏輯群組至圖9A之適應 I4生輯區塊之邏輯映射; ° .’、、員示兩個適應性邏輯區塊至兩個適應性元區塊之平 行程式化; 圖1 1纟、、員不以各種組態映射至適應性邏輯區塊之邏輯群 組; 圖12A顯不儲存於欲更新之適應性邏輯區塊中以及儲存 於新的適應性邏輯區塊中的資料; 圖12 B甚音;| ϋ ”、’、宣新映射以適配資料串流之適應性邏輯區塊 之一範例; 以適配資料串流之適應性邏輯區塊 圖12C顯示重新映射 之另一範例; 98673.doc -83- 200535854 圖13顯示重新映射至較小適應性邏輯區塊之部分填充之 適應性邏輯區塊; 圖1 4顯示用於更新適合欲更新之邏輯位址範圍之適應性 邏輯區塊; 圖15A顯不儲存於記憶體陣列之適應性元區塊中的適應 性邏輯區塊; 圖15B顯示儲存於記憶體陣列中的圖l5A之適應性邏輯 區塊之邏輯群組之區段; 圖1 5C顯不儲存於記憶體陣列中的邏輯群組之區段之另 一範例; 圖15D顯示其中係平行地程式化兩個適應性元區塊之區 段配置範例; 圖15E顯示三個元區塊之平行程式化之範例以及所產生 的元區塊内之頁面配置; 圖15F顯示更新資料之一範例,其中已更新之第一區段非 為適應性元區塊中的第一區段; 圖16顯示一記錄儲存於記憶體陣列之適應性元區塊中之 邏輯群組位置之表袼; 圖1 7顯示一可用於管理適應性 、庄凡區塊条構之媒體管理 裔, 圖18A係顯示已抹除區塊管理階層之範例之方塊圖; 圖酬員示一包含多個區段之咖區塊,該等多個區段包 括一有效區段與多個過期區段; 圖18C係顯示位址表格管理階層之範例之方塊圖; 98673.doc -84- 200535854 圖1 8D顯示包括啟動位址與啟動區塊之資料結構; 圖19顯示包括NVRAM之記憶體系統; 圖2〇頌不有效地儲存於使用NvraM之記憶體陣列中之 兩個資料串流; 圖21顯示儲存於NVRAM中的已更新資料; 圖22 _示由資料執行所組成的檔案; 圖23顯示一資料執行内的檔案邊界; 圖24顯示資料單位之階層; 圖25顯示映射至元群組之兩個資料執行; 圖26_不具有映射至元群组之檔案邊界之資料執行; 圖27顯示用於將資料儲存於具有資料邊界管理之快 憶體中的兩個方案; 。 圖“8A顯不由儲存圖25之元群組八至〇之元區塊a至〇所 組成的程式化區塊; 圖28B顯示圖28A中之元區塊八至〇之區段組態; 圖8C热員不傳达至程式化區塊之累積器中的區段; 圖29A顯示一完整的元群組; 圖29B顯示一部分的元群組; 圖29C顯示一短元群組; 圖29D顯示一起始元群組; 圖29E顯示一多檔案元群組; 圖j0A_示一部分元群組之重新映射; 圖3 0B _示一短元群組之重新映射; 圖30C|員示一起始元群組之重新映射; 98673.doc 200535854 圖30D顯示一多檔案元群組之重新映射; 圖31顯示主機資料與已重新定位 P, ^ 、枓之平行程式化; 圖頌示使用_列快閃緩衝器儲存主機資料; 圖33A顯示儲存來自主機之資料之替代性方法; 圖33B顯示圖33A之替代性 ^ 其中错由從主機寫入資 枓而稷製原始資料; 、 圖34顯示儲存來自主機之資料之替代性方案; 圖3 5 A顯示以非對準儲存的資料執行; 圖35B顯示以部分對準儲存的資料執行; 圖35C顯不以完全對準儲存的資料執行; 圖35D顯示資料執行之示範性結構; 圖_頁示不同長度之資料執行之示IU±結構; 圖36頌不在更新資料執行中的資料期間可能發生的轉換 之範例; 圖37顯示完全至完全轉換之範例; 圖38顯示部分至完全轉換之範例; 圖39顯示部分至部分轉換之範例·, 圖40顯示從非對準轉換至完全對準之範例·, 圖41顯示從非對準轉換至部分對準之範例·, 圖42顯示從非對準轉換至部分對準之第二範例; 圖43顯示非對準至非對準之範例; 圖44列不某些資料結構以及可實施的設計該等資料結構 之操作; 圖45係顯示根據本發明一具體實施例儲存區段之流程 98673.doc -86- 200535854 圖; 圖4 6係鮮員不圖4 5之區段之寫入的流程圖, 圖47係顯示根據本發明一具體實施例關閉資料執行之流 程圖。 【主要元件符號說明】 11 積體電路裝置(晶片) 13 積體電路裝置(晶片) 15 記憶體單元陣列 17 邏輯電路 19 控制器 21 微處理器 23 唯讀記憶體(ROM) 25 緩衝器記憶體(RAM) 27 電路 29 電路 31 連接 3Γ 連接 33 ECC電路 35 介面電路 37 微處理器 39 ROM 41 RAM 43 其他電路與子系統 51 使用者資料 98673.doc -87- 200535854 53 ECC 55 參數 57 ECC 59 抹除區塊 61 邏輯區塊 71 邏輯區塊 72 邏輯區塊 74 元區塊 75 貧料區段串流 76 記憶體陣列 81 已更新的貢料區段 82 邏輯區塊 83 邏輯區塊 84 元區塊 85 元區塊 86 取代元區塊 87 取代元區塊 89 記憶體陣列 91 邏輯群組 92 邏輯群組 93 邏輯群組 95 適應性邏輯區塊 96 適應性邏輯區塊 97 邏輯區塊 98673.doc -88- 200535854 98 適應性元區塊 99 資料區段串流 911 抹除區塊 912 抹除區塊 913 抹除區塊 1001 適應性邏輯區塊 1002 適應性邏輯區塊 1003 適應性邏輯區塊 1005 記憶體陣列 1010至1020 邏輯區塊 1030 適應性元區塊 1040 適應性元區塊 1041 抹除區塊 1042 抹除區塊 1043 抹除區塊 1044 抹除區塊 1045 抹除區塊 1101至1103 適應性邏輯區塊 1110 適應性邏輯區塊 1111 適應性邏輯區塊/邏輯群組 1112 適應性邏輯區塊/邏輯群組 1113 適應性邏輯區塊 1115 適應性邏輯區塊/邏輯群組 1120 邏輯群組 98673.doc -89- 200535854 1121 邏輯群組 1122 邏輯群組 1210 新資料 1211 新的邏輯群組 1212 新的邏輯群組 1213 新的邏輯群組 1214 原始資料 1215 原始資料 1220 適應性邏輯區塊 1221 適應性元區塊 1230 適應性邏輯區塊 1231 適應性元區塊 1241 邏輯群組 1242 邏輯群組 1243 邏輯群組 1244 邏輯群組 1245 邏輯群組 1246 邏輯群組 1250 新的適應性邏輯區塊 1251 適應性元區塊 1252 抹除區塊 1253 抹除區塊 1254 抹除區塊 1256 適應性邏輯區塊 98673.doc -90- 200535854 1257 適應性邏輯區塊 1258 適應性元區塊 1259 適應性元區塊 1260 新的貧料 1261 邏輯群組 1262 邏輯群組 1263 邏輯群組 1270 適應性邏輯區塊 1271 適應性元區塊 1280 檔案 1281 檔案邊界 1282 檔案 1285 邏輯群組 1286 邏輯群組 1290 適應性邏輯區塊 1291 適應性邏輯區塊 1292 適應性邏輯區塊 1293 適應性邏輯區塊 1294 適應性邏輯區塊 1295 適應性邏輯區塊 1296 適應性邏輯區塊 1297 適應性邏輯區塊 1298 適應性邏輯區塊 1299 適應性邏輯區塊 98673.doc -91 - 200535854 1305 1310 1311 1312 1313 1314 1315 1316 1317 1320 1321 1331 1340 1341 1410 1411 1415 1420 1421 1422 1423 1424 1425 1430 資料區段串流 邏輯群組 邏輯群組 邏輯群組 邏輯群組 邏輯群組 邏輯群組 邏輯群組 邏輯群組 適應性邏輯區塊 適應性邏輯區塊 適應性元區塊 適應性邏輯區塊 適應性邏輯區塊 原始適應性元區塊 適應性邏輯區塊 第一更新資料 適應性元區塊 適應性邏輯區塊 新的適應性兀區塊 新的適應性元區塊 新的適應性元區塊 第二更新資料 適應性元區塊 98673.doc 92- 200535854 1431 新適應性邏輯區塊 1440 適應性元區塊 1510 邏輯群組 1511 邏輯群組 1512 邏輯群組 1520 適應性邏輯區塊 1531 抹除區塊 1532 抹除區塊 1533 抹除區塊 1540 適應性元區塊 1551 抹除區塊 1552 抹除區塊 1553 抹除區塊 1561 抹除區塊 1562 抹除區塊 1563 抹除區塊 1564 抹除區塊 1565 適應性元區塊 1566 適應性元區塊 1571 邏輯群組 1572 邏輯群組 1573 邏輯群組 1574 邏輯群組 1580 邏輯群組
98673.doc -93 - 200535854 1581 1582 1585 1586 1587 1590 1591 1592 1610 1620 1801 1802 1803 1810 1811 1812 1813 1814 1815 1816 1820 1821 1900 1901 邏輯群組 已更新資料 抹除區塊 抹除區塊 文中未找到 元區塊 元區塊 元區塊 適應性邏輯區塊 適應性元區塊 EBL區塊 EBL區段 過期區段 配置區塊列表 抹除區塊列表 平面區塊列表 日誌· 寫入區段列表 暫時群組位址表格 群組位址表格 啟動區段 區塊位址 記憶體糸統 非揮發性隨機存取記憶體 98673.doc -94- 200535854 1905 (NVRAM) 主機 1910 快閃記憶體陣列 2001 貧料牟流 2002 貧料串流 2010至2023 邏輯群組 2030 適應性邏輯區塊 2031 適應性邏輯區塊 2032 適應性邏輯區塊 2033 適應性邏輯區塊 2040 快閃記憶體陣列 2105 原始資料串流 2110至2122 邏輯群組 2125 邏輯群組 2126 邏輯群組 2130 適應性邏輯區塊 2131 適應性邏輯區塊 2132 適應性邏輯區塊 2135 適應性邏輯區塊 2136 適應性邏輯區塊 2137 適應性邏輯區塊 2138 適應性邏輯區塊 2139 適應性邏輯區塊 2140 已更新資料
98673.doc -95- 200535854 2510 主機區段貢料執行 2511 主機區段資料執行 2520 資料邊界 2521 資料邊界 2530 邏輯群組 253 1 邏輯群組 2605 主機區段資料執行 2610 檔案 2611 檔案 2615 檔案邊界 2630 邏輯群組 2640 檔案2610之一部分 2641 檔案2611之一部分 2800 程式化區塊 2900 完整元群組 2901 部分元群組 2902 短元群組 2903 起始元群組 2904 多檔案元群組 3010 部分元群組 3020 短元群組 3030 起始元群組 3040 多檔案元群組 3041 邏輯邊界
98673.doc -96- 200535854 3110 3120 3150 3160 3202 3204 3306 3308 3310 3312 3314 3316 3318 3320 3322 3324 3326 3328 3430 3432 3530 3532 3534 3536 適應性元區塊 _ 適應性元區塊 主機 記憶體陣列 ’ 串列快閃緩衝器 β 已抹除區塊集區 直接寫入 已配置適應性元區塊 φ 寫 緩衝器元區塊 複製 已配置適應性元區塊 緩衝器元區塊 複製 最小尺寸之適應性元區塊 資料 · 文中未找到 原始適應性元區塊 緩衝器元區塊 複製 . 資料執行 . 資料執行 最小尺寸之元群組 最大尺寸之元群組 98673.doc -97- 200535854 3538 最大尺寸之元群組 3540 資料執行 3542 最小尺寸的元群組 3544 最大尺寸的元群組 3546 縮小尺寸之元群組 3548 最小尺寸的元群組 3550 頭部區塊 3552 完整區塊 3554 填補區塊 3556 尾部區塊 3558 最小尺寸之元群組 3560 最小尺寸之元群組 3562 最小尺寸之元群組 3564 中間的邏輯群組 3566 完整元群組 3770 資料執行 3772 資料執行之起始位置 3774 資料執行之結尾位置 3776 頭部元群組 3778 尾部元群組 3880 資料執行 3882 頭部元群組 3884 尾部元群組 3886 原始元群組
98673.doc -98- 200535854 3888 3990 3992 3994 3996 4002 4004 4006 4110 4112 4114 4220 4222 4330 大於最小尺寸之元群組 資料執行 已更新的元群組 原始元群組 已更新的元群組 資料執行 頭部元群組 尾部元群組 資料執行 已更新元群組 最大尺寸的元群組 資料執行 最小尺寸之已更新的元群組 資料執行
98673.doc 99-

Claims (1)

  1. 200535854 、申請專利範圍: 1. -種將資料儲存於一記憶體陣列中之方法,該記憶體陣 列包括配置於可嚴想& ^ ^ 蜀耘式化之平面中之複數個可個別抹 除之抹除區塊,該方法包含·· 從該陣列的不同平面選擇若干抹除區塊,以形成—適 應性几區塊,該適應性元區塊中抹除區塊的數目係選自 一可能值範圍;以及 传地程式化該適隸元區塊巾的該等抹除區塊。 2· t請求項1之方法,其中該可能值範圍係從-至該記憶體 陣列中可單獨程式化之平面的數目。 3·如請求们之方法,其中平行地程式化該適應性元區塊中 的该寺抹除區塊與程式化不在該適應性元區塊中之複數 個抹除區塊平行地發生。 :求項3之方法’其中不在該適應性元區塊中的該等複 固抹除區塊係在另一適應性元區塊中。 5·如請求m之方法’其中選擇若干抹除區塊包含選擇若干 平面個別平面係根據該平面中可用抹除區塊之數 而加以選擇。 6·:二们,方法,其中該欲儲存的資料包含可定址的資 早:’邈輯群組係由若干可定址的資料單位所個別形 ㈣可定址的資料單位之數目係等於可健存於一抹 除區塊中的可定址資料單位數 化$ —、ώ 又數目,—璉輯群組係程式 —適應性元區塊’使得該適應性元區塊中每 抹除區塊包含至少—夹 、 3夕末自该邏輯群組之可定址資料單 98673.doc 200535854 位。 7· 一種將貧料儲存於一記憶體陣列中之方法,該記憶體陣 列包括配置於可單獨程式化平面中之抹除區塊,該方法 包含: 選擇該記憶體陣列之複數個平面,該等複數個平面之 一平面係藉由一基於該平面中抹除區塊的可用性之演算 法而予以個別地選定; 由複數個抹除區塊形成一適應性元區塊,該等複數個 抹除區塊之每一抹除區塊係來自該等選定平面之一不同 平面;以及 平行地程式化該適應性元區塊的該等抹除區塊。 8·如請求項7之方法,其中來自該陣列之不同平面的抹除區 塊不位於其個別平面内的相同位置處。 士明求項7之方法,其中抹除區塊之該數目係選自一可能 值範圍。 1〇.如請求項7之方法,其進-步包含形成一第二適應性元區 免玉平仃地程式化該適應性元區塊與該第二適應性元區 塊。 「東項10之方法’其中該適應性元區塊中抹除區塊的 〃、忒第一適應性元區塊中抹除區塊的數目不相等。 12· -種將資料儲存於一記憶體陣列中之方法,該記憶體陣 列匕括配置於可單獨程式化平面中之複數個多區段抹除 區塊,該方法包含: 由从儲存於该陣列中的資料形成複數個邏輯群組,一 98673.doc 200535854 霆輯群組包含若干資料區段,該等資料區段之數目係等 ;儲存於邊圮憶體陣列之一抹除區塊中的資料區段之數 目; ' 由該等複數個邏輯群組形成一適應性邏輯區塊; 由。亥等複數個多區段抹除區塊形成一適應性元區塊; 將及適應性邏輯區塊儲存於該記憶體陣列之該適應性 元區塊中’使該等複數個多區段抹除區塊之一個別抹除 區塊包含該等複數個邏輯群組之每一邏輯群組之部分; 以及 針對該適應性邏輯區塊之該等邏輯群組個別地記錄位 址資訊。 lj·如清求項12之方法,其中藉由平行地程式化該記憶體陣 列之該等複數個多區段抹除區塊而將該適應性邏輯區塊 儲存於該記憶體陣列之該適應性元區塊中。 14.如請求項12之方法,其中該適應性邏輯區塊内之邏輯群 組之數目係針對該適應性邏輯區塊個別地加以決定。 1 5 · —種非揮發性記憶體系統,其包含: 配置於可單獨程式化之平面中之記憶體單元之一陣列; 一具有多個抹除區塊之平面,一抹除區塊係該陣列之 可予以個別抹除的最小單位; 該系統係配置成根據欲儲存的資料之特徵而選擇若干 平面;以及 該系統係配置成平行地程式化選定平面内之個別抹除 區塊。 98673.doc 200535854 16·如請求項15之系統,其中-個別平面係根據保留於該個 另J平面中之可用抹除區塊的數目而加以選擇。 女明求項1 5之系統,其進一步包含記憶體單元之一第二 陣列; ^ 其中記憶體單元之該第一陣列係位於一快閃記憶體中 ’並且記憶體單元之該第二陣列係位於一非揮發性隨機 存取記憶體中。 18·種更新一非揮發性記憶體陣列内之資料之方法,該非 揮發性記憶體陣列具有配置成形成一第一適應性元區塊 之複數個可個別抹除的區塊,該方法包含: 從—主機接收已更新的資料,該已更新的資料係用於 取代儲存於該適應性元區塊内的資料; 將該已更新的資料儲存於一第二適應性元區塊中,該 第二適應性元區塊僅由包含已更新資料之抹除區塊所組 成;以及 將來自該第一適應性元區塊的原始資料儲存於一第三 適應性元區塊中,該第三適應性元區塊僅由不包含已更 新資料之抹除區塊所組成。 19·如請求項18之方法,其中該第二適應性元區塊與該第三 適應性元區塊皆係小於該第一適應性元區塊。 20.如請求項18之方法,其中該第一適應性元區塊具有一第 一數目之抹除區塊,該第二適應性元區塊具有一第二數 目之抹除區塊,而該第三適應性元區塊則具有一第三數 目之抹除區塊;以及 98673.doc 200535854 該第二數目與該第三數目之和等於該第一數目。 2 1. —種更新儲存於一非揮發性記憶體陣列中之資料之方 法’該非揮發性記憶體陣列具有一第一複數個之原始適 應性元區塊,一個別原始適應性元區塊儲存一具有複數 個原始邏輯資料群組之原始適應性邏輯區塊,該方法包 含: 接收已更新的資料以取代舊資料; 形成已更新的邏輯群組,一已更新的邏輯群組包含邏 輯位址範圍與一原始邏輯群組相同的連續資料,一已更 新邏輯群組中的至少某些資料係已更新的資料; 形成已更新的適應性邏輯區塊,一已更新的適應性邏 輯區塊係由若干已更新的邏輯群組所組成,一已更新適 應性邏輯區塊中已更新邏輯群組之數目獨立於一原始適 應性邏輯區塊中原始邏輯群組之數目;以及 將一已更新適應性邏輯區塊程式化至一已更新適應性 兀區塊。 2 2 ·如凊求項2 1之方法,其中一已更新適應性邏輯區塊中之 已更新邏輯群組之數目小於一原始適應性邏輯區塊中之 原始邏輯群組之數目。 2 3 ·如晴求項2 1之方法,其中一已更新適應性邏輯區塊中已 更新的邏輯群組對應於一個以上原始適應性邏輯區塊中 的原始邏輯群組。 24_ —種管理一非揮發性記憶體陣列之已抹除區塊之方法, 一已抹除區塊係一在用於程式化之條件中的抹除區塊, 98673.doc 200535854 一抹除區塊係該 包含: 非揮發性陣列之最小抹除單位,該方法 將一第一列表保持於一 表指示一第一複數個已抹除區 區塊中直接選擇個別已抹除區 更新該第一列表以刪除一已 抹除區塊係選擇用於程式化, 列表;以及 非揮發性記憶體中,該第一列 塊’從該第一複數個抹除 塊用於程式化;以及 抹除區塊之一項目,該已 因而產生一已更新的第一 25. 26. 對更新該弟一列表作ψ㈤1 # 衣作出回應而將該已更新第一列表之 内容複製到該非揮發性記憶體中的一第二列表。 如請求項24之方法’其中該第二列表係作為二第一可定 址資料封包之部分而程式化於該非揮發性記憶體。 如請求項25之方法,1中兮筮— 一〒"亥弟一列表係猎由將一第二可 定址資料封包程式化$ &义 飞化至忒非揮發性屺憶體並指示該第一 可定址資料封包為過期而加以更新。 27. 如請求項24之方法,其進一步包含保持 指示一第二複數個已抹除區塊;以及 在該第—列表與該第三列表之間交換該第-複數個e 抹除區塊之個別已抹除區塊與該第二複數個已抹除區相 之個別已抹除區塊。 28. 如請求項2 7之方法 標準予以選擇。 其中父換率係根據包括磨損平衡之 29. 如請求項27之方法,其進—步包含保持一第 指示一第三複數個已抹除區i鬼,並且在該第 四列表,其 三列表與該 98673.doc 200535854 苐四列表之間父換δ亥苐二複數個已抹除區塊之個別已抹 除區塊與該第二複數個已抹除區塊之個別已抹除區塊。 30·如請求項29之方法,其中該非揮發性記憶體陣列具有複 數個平面,該第一與第二複數個抹除區塊之個別抹除區 塊係來自該等複數個平面之任何平面,該第三複數個抹 除區塊之個別抹除區塊係來自該陣列之一第一平面。 31· —種將複數個邏輯資料群組儲存於一記憶體陣列中之方 法,一邏輯群組所含資料等於儲存於該記憶體陣列之一 抹除區塊中之資料量,該方法包含: 形成一包含複數個抹除區塊之元區塊; 儲存包括一第一與一第二邏輯群組之該等複數個邏輯 群組,使得該元區塊之該等複數個抹除區塊之每一抹除 區塊包含該第一邏輯群組之一部分以及該第二邏輯群組 之一部分;以及 保持一表格,其具有用於該第一邏輯群組之一第一項 目以及用於該第二邏輯群組之一第二項目,該第一項目 匕括4等複數個抹除區塊之一第一抹除區塊之實體位置 ,该第二項目包含該等複數個抹除區塊之一第二抹除區 塊之實體位置。 32·如請求項31之方法,其中該第一項目包括該元區塊中之 未除區塊之數目以及該等複數個邏輯群組内該第一邏輯 群組之邏輯位置。 J 3 ·女"月求項3 1之方法,其中該等複數個邏輯群組之每一邏 輯群組在該表格中具有一項目,該等複數個邏輯群組中 98673.doc 200535854 邏輯群組之數目等於該等複數個抹除區塊中抹除區塊的 數目’亚且該等複數個抹除區塊之每—抹除區塊之位置 係由該表袼中的一項目給定。 34. 一種將複數個第一可定址資料單位儲存於一非揮發性記 體陣财之方法’該非揮發性記憶體陣列具有一抹除 區塊之最小抹除單位,—抹除區塊包含—整數個可定址 的資料單位,該方法包含: 由該整數個第一可定址資料單位形成一第二可定址資 料單位; 將該第二可定址資料單位寫入該非揮發性記憶體陣列 二以便將該第二可定址資料單位之一第一部分儲存於一 第抹除區塊中,並將該第二可定址資料單位之一第二 部分儲存於一第二抹除區塊中;以及 個別地記錄該第二可定址資料單位之位置資訊,其可 用於決定該第二可定址資料單位在該非揮發性記憶體陣 列中的實體位置。 35.如請求項34之方法,其中該第—可定址資料單位係一區 段,並且該第二可定址資料單位係一邏輯群組。 36_如請求項34之方法,其中該第二可定址資料單位的實體 位置係使用該第二可定址資料單位的位置資訊並根據其 他可定址資料單位的位置資訊予以決定。· ^ 37. -種將資料儲存於一記憶體陣列中之方法,該記憶體陣 列包括配置於可單獨程式化平面中之複數個多區段抹除 區塊,抹除區塊係該記憶體陣列之最小抹除單位,該方 98673.doc 200535854 法包含: 由欲儲存於該陣列中的 邏輯群組包含若干資料區 於儲存於該記憶體陣列之 g ; 貧料形成複數個邏輯群組 & ’该等資料區段之數目 一抹除區塊中的資料區段 係等 之數 b由數目之抹除區塊形成一適應性元區塊,該數目係 選自一數目範圍; 將-邏輯群組儲存於該記憶體陣列之該適應性元區塊 中’使得該適應性元區塊之該數目之抹除區塊之每—抹 除區塊包含該邏輯群組之一部分。 38. 39. 40. -種將資料儲存於一記憶體陣列中之適應性元區塊中之 方法 適應性元區塊包含一個別選定數目之抹除區 塊’抹除區塊係該記憶體陣列之最小抹除單位, 包含: / 將包含-邏輯邊界之一第一資料部分儲存於該記憶體 陣列之一第一適應性元區塊中,該第一適應性元區塊係 由一抹除區塊所組成;以及 將不包含一邏輯邊界之一第二資料部分儲存於該記憶 體陣列中之-第二適應性元區塊中,該第二適應性元區 塊包含一個以上之抹除區塊。 如#求項38之方法,其中該邏輯邊界的位置係由所更新 之資料的一邏輯位址範圍所決定。 如請求項38之方法,其中在將該第—資料部分儲存於該 記憶體陣列中之一第一適應性元區塊中並將該第二資料 98673.doc 200535854 二適應性元區塊中之 料部分儲存於非為該 部分儲存於該記憶體陣列中之一第 前’將該第一資料部分與該第二資 記憶體陣列之部分的一緩衝器中。 41. 42. 43. 44. 如請求項38之方法,其中在將該第一資料部分儲存於該 記憶體陣列中之一第一適應性元區塊中並將該第二資= 部分儲存於該記憶體陣列中之一第二適應性元區塊中之 珂,將該第一資料部分與該第二資料部分一起儲存於一 第三適應性元區塊中。 如請求項41之方法,其中當將該第一資料部分與該第二 貢料部分一起儲存於該第三適應性元區塊中時,將該邏 輯邊界的位置記錄於一重新映射列表中。 一種將資料檔案儲存於一記憶體單元陣列之適應性元區 塊中之方法,一適應性元區塊包含一個別選定數目之抹 除區塊’一抹除區塊係該記憶體陣列之最小抹除單位, 一資料檔案包含一或多個資料執行,一資料執行係延伸 於資料執行邊界之間之邏輯上連續之資料封包之一串 流,該方法包含: 將與一資料執行邊界不相鄰的一資料執行之第一部分 儲存於一第一適應性元區塊; 將與該資料執行邊界相鄰的該資料執行之一第二部分 儲存於一第二適應性元區塊中,該第二適應性元區塊的 尺寸係最小的適應性元區塊尺寸。 種重新疋位儲存於一記憶體陣列之一第一複數個元區 塊中之貧料檔案之方法,一資料檔案包含至少一資料執 98673.doc -10- 200535854 行,一資料執行係由延伸於邏輯邊界之間的可定址資料 封包之一序列所組成,該方法包含·· 識別邏輯邊界的位置;以及 複製包含一延伸於一第一邏輯邊界與一第二邏輯邊界 之間的資料執行之複數個邏輯群組,以便將包含該第一 邏輯邊界之一邏輯群組複製至一第一適應性元區塊,其 係一最小尺寸之適應性元區塊,並將不包含一邏輯邊界 之邏輯群組複製至至少一第二適應性元區塊,其非為一 最小尺寸之適應性元區塊。 45. 46. 47. 如請求項44之方法,其中將包含該第二邏輯邊界的一邏 輯群組複製至一第三適應性元區塊,其係一最小尺寸之 元區塊。 一種將資料儲存於一記憶體單元陣列之適應性元區塊中 之方法,一適應性元區塊包含一個別選定數目之抹除區 塊’抹除區塊係該記憶體單元陣列之最小抹除單位,該 方法包含: 將該等資料儲存於—第_複數個適應性元區塊中;以及 將該等資料從該第-複數個適應性元區塊複製至一第 二複數個適應性元區塊中,以便將一邏輯邊界複製至由 一抹除區塊所組成的一適應性元區塊。 如請求項46之方法,其進—步句冬 乂 G 3將该弟一復數個適應 性元區塊標記為過期。 48. 如睛求項4 6之方法,其中當接 複數個適應性元區塊中之資料 收到具有與儲存於該第一 之邏輯位址相同的邏輯位 98673.doc -11 - 200535854 49. 50. 51. 52. 53. 54. 55. 址之已更新貧料時,發生從兮楚、—也/ 複製資料。 匕“1數個適應性元區塊 :长貝46之方法’其中複製資料發生於-選擇以允許 禝衣而不會影響其他記憶體操作的時間。 如清求項4 6之方法,並中弁箭去抑七 ’、 ^未儲存於該記憶體單元陣 财的主機資料係與將料資料從該第_複數個適應性 '區塊设製至該第二複數個適應性元區塊平行地程式化 至該記憶體單元陣列。 如請求項50之方法’其中將該等資料館存於—第一適應 性元區塊中,並將主機資料儲存於_第二適應性元區塊 中,該等第-與第二元區塊係平行地加以程式化。 -種將資料檔案儲存於一記憶體陣列之適應性元區塊中 之方法,一適應性元區塊係由若干抹除區塊所組成,抹 除區塊係最小的抹除單位,抹除區塊之該數目係針對一 適應性元區塊而加以個別地選擇,該方法包含: 將複數個可定址資料封包儲存於一記憶體陣列之複數 個適應性元區塊中,使得一適應性元區塊中之抹除區塊 的數目係根據一邏輯邊界是否包含於欲儲存的該等複數 個1可定址資料封包中而加以選擇。 如明求項52之方法,其中一邏輯邊界的位置係由所更新 之一邏輯位址範圍所決定。 如請求項52之方法,其中一邏輯邊界的位置係由一主機 來指示。 月東項5 2之方法’其中首先將该專複數個可定址的資 98673.doc -12- 200535854 料封包儲存於一累積器隨機存取記憶體中。 56. 一種將貪料儲存於一包含複數個程式化區塊之非揮發性 多平面記憶體陣列中之方法,一程式化區塊包含來自該 圮憶體陣列之每一平面之一抹除區塊,抹除區塊係該記 憶體陣列之最小抹除單位,該記憶體陣列係連接至一累 積器記憶體,該方法包含: 由一程式化區塊之一第一複數個抹除區塊形成一第一 元區塊; 由該程式化區塊之一第二複數個抹除區塊形成一第二 元區塊; 以第一序列將來自一主機的複數個可定址資料單位 接收到該累積器記憶體中,該第一序列包括一第一主機 檔案之至少一部分以及一第二主機檔案之至少一部分; 以及 57. 以一第二序列將該等複數個可 器記憶體傳送至該記憶體陣列, 行地程式化具有一第一主機檔案 一元區塊以及具有一第二主機檔 弟 >一元區塊。 一種將資料儲存於一非揮發性記 區塊中之方法,一適應性元區塊 抹除區塊,抹除區塊係該記憶體 該方法包含: 將先前儲存於該記憶體陣列中 定址資料單位從該累積 該第二序列係選擇以平 之該至少一部分的該第 案之該至少一部分的該 憶體陣列中之適應性 包含一個別選定數目 陣列之最小抹除單位 的 第一資料部分程式 98673.doc -13 - 200535854 化至一第一適應性元區塊;以及 、同才將先則未儲存於該記憶體陣列中的一第二資料部 刀私式化至一第二適應性元區塊。 5 8.如請求項$ 7夕士、+ ^ ^ 、,卜 、 方法,其中以該記憶體陣列中可能的最大 平^生同日守將該等第一與第二適應性元區塊程式化。 月长項57之方法,其中該第二資料部分包含直接從一 主機接收的資料。 種將可疋址貧料單位儲存於一由抹除區塊所形成的非 揮發性記憶體陣列之適應性元區塊中之方法,抹除區塊 係該陣列的最小抹除單位,—適應性元區㈣由一起加 ^呈式化與抹除之-個別選定數目之抹除區塊所組成, 其包含: 由〜i數们可定址貧料單位儲存於一緩衝器元區 塊中; ^機接收-第二複數個可定址資料單位;以及 與將該第二複數個可定 疋址貝枓早位程式化至一第二適 應性7L區塊平行地一、— ^ Μ苐一禝數個可定址資料單位從該 疋區塊複製至一第一適應性元區塊。 61·如請求項6〇之方法,1 /、中以该纪fe體陣列的最大平行性 时邊弟一複數個可定資 中。 貝科早位储存於該緩衝器元區塊 ό…士明求項6 〇之方法,其中古歹 口口一 區塊的最大尺寸。、兀區塊具有用於'元 长員60之方法’其中該第一複數個可定址資料單位 98673.doc -14- 200535854 延伸至包括一邏輯邊界。 认2求項60之方法,其中將額外複數個可定址資料單位 子於该緩衝器元區塊中,並且其中與複製該第一複數 :可定,資料單位以及程式化該第二複數個可定址資料 早位平仃地程式化該等額外複數個可定址資料單位。 认^^60之方法,其中舆將該第—複數個可定址資料 ^ j衣至该第-適應性元區塊一起將一第三複數個可 :址貧料單位複製至該第—適應性元區塊,該等第—與 第-硬數個可定址資料單位係來自不同的槽案或來自不 同的資料執行。 66’種用於儲存資料之可移除記憶卡,其包含: 抑非揮發性記憶體陣列,其具有一抹除區塊之最小抹 2單位亚且具有一第一部分’其中將抹除區塊群聚成包 含平行地加以程式化之不同數目之抹除區塊之適應性元 區塊,抹除區塊之該數目係根據欲儲存的f料中邏輯邊 界的位置來選擇,該記憶體陣列具有一第二部分,其中 將資料館存於元區塊中’儲存方式與欲儲存於該記情體 陣列之該第二部分中的資料中之資料邊界之位置無關; 以及 -控制器,其根據該資料部分是否包含—邏輯邊界而 決疋該記憶卡所接收到的_ f料部分最初是否係、傳送至 该圮憶體陣列的該第一部分或該第二部分。 67·如請求項66之可移除記憶卡,其中該資料部分包含一邏 輯邊界,並且該貧料部分係傳送至該記憶體陣列之該第 98673.doc '15· 200535854 一部分且隨後係複製至該記憶體陣列之該第一部分。 項67之可移除記憶卡,其中複製至該記憶體陣列 之該第一部分係與將額外資料從該記憶體陣列之該第二 W刀杈製至該記憶體陣列之該第一部分相平行。 請求項67之可移除記憶卡,其中在使用該非揮發性記 憶體陣列之最大平行性之複製操作中,複製至該記憶體 陣列之该第-部分係與從該記憶體陣列之該第二部分 製額外資料相平行。 7〇· ^明求項66之可移除記憶卡,其中該資料部分包含一邏 輯邊界,亚且最初係傳送至該記憶體陣列之該第二部分 =隨後係從該記憶體陣列之該第二部分複製至該記憶體 卩=之该第_部分中—最小尺寸之適應性元區塊。 1 =項66之可移除記憶卡,其中該記憶體陣列之該第 之节#由第複數個抹除區塊所組成,該記憶體陣列 二二分由一第二複數個抹除區塊所組成,組成該 ::一第一複數個抹除區塊之抹除區塊係可互換,使 I之:別抹除區塊在—第一時間係該第-複數個抹除區 \ 在第一恰間係該第二複數個抹除區塊之一。 •如凊求項6 6之可轉哈4 f立上 v 私除屺fe卡,其進一步包含一第三部 ^ ft抹除區塊不包含有效資料並且不群聚成元區 j °玄弟二部分中的個別抹除區塊係轉移至該等第-與 第一部分以儲存資絲,、,α & 貝抖亚且該等第一與第二部分之個別 抹除區塊當其不包含次 ^ 各有效一貝料時係轉移至該第三部分。 .如請求項66之可移除$ & + π 1/于…己卡,其中該第一部分包含一第 98673.doc -16- 200535854 一複數個專用抹除區塊,該第一複數個專用抹除區塊之 個別抹除區塊形成包含資料之適應性元區塊,該第一複 數個專用抹除區塊之額外的個別抹除區塊不包含資料並 且不群聚成適應性元區塊。 74 75 76. 77. 如印求項73之可移除記憶卡,其中該控制器從該第一複 數個專用抹除區塊之該等額外個別抹除區塊選擇抹除區 塊’以形成新的適應性元區塊來儲存資料。 如叫求項66之可移除記憶卡,其中該第二部分包含一第 複數個專用抹除區塊,該第二複數個專用抹除區塊之 個別抹除區塊形成包含資料之元區塊,該第二複數個專 用抹除區塊之額外的個別抹除區塊不包含資料並且不群 聚成元區塊。 月长員75之可移除記憶卡,其中該控制器從該第二複 數個專用抹除區塊之該等額外個別抹除區塊選擇抹除區 塊,以形成新的元區塊來儲存資料。 種將貧料儲存於一記憶體陣列中之適應性元區塊中之 方法,—適應性元區塊包含一個別選定數目之抹除區 2 ’抹除區塊係該記憶體陣列之最小抹除單纟,該記憶 向車歹I包括-串列快閃緩衝器,該串列快閃緩衝器包含 取大尺寸之—或多個緩衝器元區塊,該方法包含: :包含-第—邏輯邊界之_第—資料部分儲存於該串 列,閃緩衝器中之-緩衝器元區塊中; 隨後將該第一資料部分從該缓衝器元區塊複製至一不 5亥串列快閃緩衝器中的第-適應性元區塊,該第一適 98673.doc 200535854 應性元區塊由一抹除區塊所組成;以及 將不包含一邏輯邊界之一第二資料部分 串列快閃緩衝器中之-第二適應性元區塊中== 應丨生凡區塊包含一個以上之抹除區塊。 78. 79. 80. 1°:求項77之方法,其中該第二適應性元區塊係-最大 尺寸之元區塊。 次、、員77之方法,其中從該緩衝器元區塊複製該第一 貝料4分係與從該串列快閃緩衝器將額 記憶體㈣W串縣閃緩衝^的位置巾平;^亥 :二求:”9之:法,其中該額外的資料包括一第二資料 °刀’该第二貧料部分包含_第二邏輯 =分係複製至由—抹除區塊所組成的-第三適隸I
    98673.doc 18-
TW093141372A 2003-12-30 2004-12-30 Data run programming TWI280581B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/749,189 US7433993B2 (en) 2003-12-30 2003-12-30 Adaptive metablocks
US10/841,118 US20050144363A1 (en) 2003-12-30 2004-05-07 Data boundary management
US11/016,271 US7383375B2 (en) 2003-12-30 2004-12-16 Data run programming

Publications (2)

Publication Number Publication Date
TW200535854A true TW200535854A (en) 2005-11-01
TWI280581B TWI280581B (en) 2007-05-01

Family

ID=34753551

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093141372A TWI280581B (en) 2003-12-30 2004-12-30 Data run programming

Country Status (7)

Country Link
US (1) US7383375B2 (zh)
EP (2) EP1700204B1 (zh)
JP (2) JP4977473B2 (zh)
KR (1) KR100983212B1 (zh)
CN (1) CN100524209C (zh)
TW (1) TWI280581B (zh)
WO (1) WO2005066770A2 (zh)

Cited By (3)

* 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 快閃記憶體裝置以及資料更新方法
TWI479313B (zh) * 2012-07-11 2015-04-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US11966605B2 (en) 2022-03-09 2024-04-23 Kioxia Corporation Superblock-based write management in non-volatile memory devices

Families Citing this family (264)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4175991B2 (ja) * 2003-10-15 2008-11-05 株式会社東芝 不揮発性半導体記憶装置
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US7877539B2 (en) 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7480766B2 (en) 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US20070084375A1 (en) * 2005-08-10 2007-04-19 Smith Kyle S High density cartridge and method for reloading
US7529905B2 (en) * 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7814262B2 (en) 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US20070143378A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with adaptive file handling in a directly mapped file storage system
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US20070143561A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system
US7769978B2 (en) * 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US20070174563A1 (en) * 2006-01-23 2007-07-26 Stuart Staniford System and method for selecting memory locations for overwrite
EP1850347A1 (en) * 2006-04-28 2007-10-31 Deutsche Thomson-Brandt Gmbh Method and device for writing to a flash memory
US7564721B2 (en) 2006-05-25 2009-07-21 Micron Technology, Inc. Method and apparatus for improving storage performance using a background erase
KR100758301B1 (ko) * 2006-08-04 2007-09-12 삼성전자주식회사 메모리 카드 및 그것의 데이터 저장 방법
KR100855467B1 (ko) 2006-09-27 2008-09-01 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
WO2008057557A2 (en) * 2006-11-06 2008-05-15 Rambus Inc. Memory system supporting nonvolatile physical memory
US8286156B2 (en) * 2006-11-07 2012-10-09 Sandisk Technologies Inc. Methods and apparatus for performing resilient firmware upgrades to a functioning memory
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US8166267B2 (en) 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
EP2097825B1 (en) 2006-12-26 2013-09-04 SanDisk Technologies Inc. Use of a direct data file system with a continuous logical address space interface
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US7917686B2 (en) 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US7791952B2 (en) * 2007-01-30 2010-09-07 Micron Technology, Inc. Memory device architectures and operation
US20080235489A1 (en) * 2007-03-19 2008-09-25 Sergey Anatolievich Gorobets Systems for forcing an update block to remain sequential
US7904670B2 (en) * 2007-03-19 2011-03-08 Sandisk Corporation Methods for conversion of update blocks based on comparison with a threshold size
US8341375B2 (en) * 2007-03-19 2012-12-25 Sandisk Technologies Inc. Methods for conversion of update blocks based on association with host file management data structures
US8275953B2 (en) * 2007-03-19 2012-09-25 Sandisk Technologies Inc. Methods for forcing an update block to remain sequential
US20080235464A1 (en) * 2007-03-19 2008-09-25 Shai Traister System for conversion of update blocks based on comparison with a threshold size
US20080250220A1 (en) * 2007-04-06 2008-10-09 Takafumi Ito Memory system
US7869277B1 (en) * 2007-04-25 2011-01-11 Apple Inc. Managing data writing to memories
US8713283B2 (en) * 2007-06-08 2014-04-29 Sandisk Technologies Inc. Method of interfacing a host operating through a logical address space with a direct file storage medium
US8239639B2 (en) * 2007-06-08 2012-08-07 Sandisk Technologies Inc. Method and apparatus for providing data type and host file information to a mass storage system
US20080307156A1 (en) * 2007-06-08 2008-12-11 Sinclair Alan W System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium
US20090055574A1 (en) * 2007-08-25 2009-02-26 Bei-Chuan Chen NAND Flash Memory Device And Related Method Thereof
US7719890B2 (en) 2007-09-12 2010-05-18 Sandisk Corporation Data protection for write abort
US8566504B2 (en) 2007-09-28 2013-10-22 Sandisk Technologies Inc. Dynamic metablocks
TW200917277A (en) * 2007-10-15 2009-04-16 A Data Technology Co Ltd Adaptive hybrid density memory storage device and control method thereof
US8880483B2 (en) * 2007-12-21 2014-11-04 Sandisk Technologies Inc. System and method for implementing extensions to intelligently manage resources of a mass storage system
US8245101B2 (en) 2007-12-27 2012-08-14 Sandisk Enterprise Ip Llc Patrol function used in flash storage controller to detect data errors
JP2009211192A (ja) * 2008-02-29 2009-09-17 Toshiba Corp メモリシステム
JP5166118B2 (ja) * 2008-05-21 2013-03-21 株式会社東芝 半導体メモリの制御方法
US8762654B1 (en) * 2008-07-02 2014-06-24 Marvell International Ltd. Selectively scheduling memory accesses in parallel based on access speeds of memory
US8209439B2 (en) * 2008-08-25 2012-06-26 Sandisk Il Ltd. Managing multiple concurrent operations with various priority levels in a local storage device
US8671327B2 (en) * 2008-09-28 2014-03-11 Sandisk Technologies Inc. Method and system for adaptive coding in flash memories
KR101738173B1 (ko) * 2008-09-28 2017-05-19 라모트 앳 텔-아비브 유니버시티 리미티드 플래시 메모리에서의 적응형 코딩 방법 및 시스템
US8566562B2 (en) * 2008-10-03 2013-10-22 Skymedi Corporation Method for sequentially writing data with an offset to a non-volatile memory
EP2189895A1 (en) 2008-11-24 2010-05-26 Deutsche Thomson OHG Flash based memory comprising a Flash translation layer and method for storing a file therein
US8266365B2 (en) 2008-12-17 2012-09-11 Sandisk Il Ltd. Ruggedized memory device
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8392687B2 (en) * 2009-01-21 2013-03-05 Micron Technology, Inc. Solid state memory formatting
WO2010093056A1 (en) 2009-02-12 2010-08-19 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
KR101574540B1 (ko) * 2009-04-15 2015-12-07 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
US20110060865A1 (en) * 2009-09-08 2011-03-10 Lsi Corporation Systems and Methods for Flash Memory Utilization
TWI417889B (zh) * 2009-12-30 2013-12-01 Silicon Motion Inc 快閃記憶體之寫入逾時控制方法及其記憶裝置
JP5404483B2 (ja) * 2010-03-17 2014-01-29 株式会社東芝 メモリシステム
US8429391B2 (en) 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
JP2011227664A (ja) 2010-04-19 2011-11-10 Toshiba Corp メモリシステム
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US9268649B1 (en) * 2011-06-23 2016-02-23 Western Digital Technologies, Inc. Disk drive with recent write streams list for data refresh determination
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9529708B2 (en) * 2011-09-30 2016-12-27 Intel Corporation Apparatus for configuring partitions within phase change memory of tablet computer with integrated memory controller emulating mass storage to storage driver based on request from software
US9146856B2 (en) * 2012-04-10 2015-09-29 Micron Technology, Inc. Remapping and compacting in a memory device
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9465732B2 (en) 2013-03-15 2016-10-11 Sandisk Technologies Llc Binning of blocks for dynamic linking
US9116774B2 (en) 2013-05-14 2015-08-25 Sandisk Technologies Inc. Firmware updates for multiple product configurations
TWI470431B (zh) * 2013-06-14 2015-01-21 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9411721B2 (en) * 2013-11-15 2016-08-09 Sandisk Technologies Llc Detecting access sequences for data compression on non-volatile memory devices
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9772876B2 (en) 2014-01-06 2017-09-26 International Business Machines Corporation Executing an all-to-allv operation on a parallel computer that includes a plurality of compute nodes
WO2015114754A1 (ja) * 2014-01-29 2015-08-06 株式会社日立製作所 ストレージ装置
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
KR20170010810A (ko) 2014-06-25 2017-02-01 후아웨이 테크놀러지 컴퍼니 리미티드 플래시 메모리 내에 데이터를 판독/기록하기 위한 방법, 장치 및 사용자 장비
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9836245B2 (en) * 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
KR20160112135A (ko) * 2015-03-18 2016-09-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9952769B2 (en) * 2015-09-14 2018-04-24 Microsoft Technology Licensing, Llc. Data storage system with data storage devices operative to manage storage device functions specific to a particular data storage device
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US9830084B2 (en) * 2015-12-03 2017-11-28 Sandisk Technologies Llc Writing logical groups of data to physical locations in memory using headers
US10013179B2 (en) 2015-12-03 2018-07-03 Sandisk Technologies Llc Reading logical groups of data from physical locations in memory using headers
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
KR101805828B1 (ko) * 2016-03-21 2017-12-07 주식회사 디에이아이오 스토리지 시스템의 주소 변환 방법 및 스토리지 시스템의 메모리 장치 컨트롤러
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
CN106445407A (zh) * 2016-08-17 2017-02-22 北京兆易创新科技股份有限公司 一种芯片处理方法及装置
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US10482010B2 (en) * 2017-06-29 2019-11-19 Intel Corporation Persistent host memory buffer
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10613943B2 (en) * 2017-07-27 2020-04-07 Western Digital Technologies, Inc. Method and system for improving open block data reliability
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10445230B2 (en) * 2017-12-08 2019-10-15 Macronix International Co., Ltd. Managing block arrangement of super blocks
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
CN109817257B (zh) * 2018-12-27 2020-10-13 西安紫光国芯半导体有限公司 一种动态存储器刷新操作下的省电方法和动态存储器
US10990320B2 (en) * 2019-02-01 2021-04-27 Western Digital Technologies, Inc. Systems and methods to optimally select metablocks
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
TWI769386B (zh) * 2019-07-04 2022-07-01 群聯電子股份有限公司 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
CN111143313B (zh) * 2019-12-25 2023-07-25 成都三零嘉微电子有限公司 一种提高混合映射算法的日志块读写性能的方法
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11756644B2 (en) 2021-06-23 2023-09-12 International Business Machines Corporation Triage of multi-plane read requests
KR102403277B1 (ko) * 2021-12-24 2022-05-30 오픈엣지테크놀로지 주식회사 어레이 풀링 방법 및 이를 위한 장치

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095344A (en) * 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5043940A (en) * 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5070032A (en) * 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
US5172338B1 (en) * 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US5343063A (en) * 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5313421A (en) * 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
JP3122222B2 (ja) 1992-05-08 2001-01-09 株式会社東芝 メモリカード装置
US5532962A (en) * 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5315541A (en) * 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US5367484A (en) 1993-04-01 1994-11-22 Microchip Technology Incorporated Programmable high endurance block for EEPROM device
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US5555204A (en) * 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) * 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5473765A (en) 1994-01-24 1995-12-05 3Com Corporation Apparatus for using flash memory as a floppy disk emulator in a computer system
US5661053A (en) * 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
JP3153730B2 (ja) * 1995-05-16 2001-04-09 株式会社東芝 不揮発性半導体記憶装置
US5907856A (en) * 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6125435A (en) * 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
JP3604466B2 (ja) * 1995-09-13 2004-12-22 株式会社ルネサステクノロジ フラッシュディスクカード
US6304980B1 (en) 1996-03-13 2001-10-16 International Business Machines Corporation Peer-to-peer backup system with failure-triggered device switching honoring reservation of primary device
US5903495A (en) * 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5768192A (en) * 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
US5798968A (en) * 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US6034897A (en) * 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
JP3072722B2 (ja) 1997-06-20 2000-08-07 ソニー株式会社 フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US6768165B1 (en) * 1997-08-01 2004-07-27 Saifun Semiconductors Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
US5909449A (en) * 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
JP2000122917A (ja) * 1998-07-13 2000-04-28 Sony Corp 記録装置および記録方法、再生装置および再生方法、記録媒体、並びにプログラム記録媒体
JP4085478B2 (ja) 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
US6490649B2 (en) 1998-11-10 2002-12-03 Lexar Media, Inc. Memory device
GB9903490D0 (en) 1999-02-17 1999-04-07 Memory Corp Plc Memory system
US6401160B1 (en) * 1999-03-31 2002-06-04 Intel Corporation Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory
US6141249A (en) 1999-04-01 2000-10-31 Lexar Media, Inc. Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
US6544844B2 (en) 1999-10-08 2003-04-08 Macronix International Co., Ltd. Method for forming a flash memory cell having contoured floating gate surface
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6571261B1 (en) 2000-07-13 2003-05-27 International Business Machines Corporation Defragmentation utility for a shared disk parallel file system across a storage area network
US6567307B1 (en) 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
JP3699890B2 (ja) 2000-08-30 2005-09-28 シャープ株式会社 不揮発性半導体記憶装置
JP3992960B2 (ja) * 2000-10-26 2007-10-17 松下電器産業株式会社 記録装置及びプログラム
US6684289B1 (en) * 2000-11-22 2004-01-27 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6591330B2 (en) 2001-06-18 2003-07-08 M-Systems Flash Disk Pioneers Ltd. System and method for flexible flash file
JP4256600B2 (ja) * 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6717847B2 (en) 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6456528B1 (en) * 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
GB0123412D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
TW506123B (en) * 2001-10-24 2002-10-11 Macronix Int Co Ltd Multi-level NROM memory cell and its operating method
US6925007B2 (en) * 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
JP3967121B2 (ja) * 2001-12-11 2007-08-29 株式会社ルネサステクノロジ ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム
US6895464B2 (en) * 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US6985992B1 (en) 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US7526599B2 (en) 2002-10-28 2009-04-28 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
US7103732B1 (en) 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
US8412879B2 (en) 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
US6831865B2 (en) 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
JP2005135008A (ja) 2003-10-28 2005-05-26 Sony Corp 情報配信システム及び情報配信方法
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management

Cited By (3)

* 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 快閃記憶體裝置以及資料更新方法
TWI479313B (zh) * 2012-07-11 2015-04-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US11966605B2 (en) 2022-03-09 2024-04-23 Kioxia Corporation Superblock-based write management in non-volatile memory devices

Also Published As

Publication number Publication date
WO2005066770A2 (en) 2005-07-21
CN100524209C (zh) 2009-08-05
JP2007517325A (ja) 2007-06-28
JP5438137B2 (ja) 2014-03-12
EP1700204A1 (en) 2006-09-13
WO2005066770A9 (en) 2005-09-29
US7383375B2 (en) 2008-06-03
KR100983212B1 (ko) 2010-09-20
TWI280581B (en) 2007-05-01
JP2012099139A (ja) 2012-05-24
EP2256621A1 (en) 2010-12-01
EP1700204B1 (en) 2014-03-12
US20050144367A1 (en) 2005-06-30
KR20070012630A (ko) 2007-01-26
JP4977473B2 (ja) 2012-07-18
CN1922571A (zh) 2007-02-28

Similar Documents

Publication Publication Date Title
TW200535854A (en) Data run programming
JP4787266B2 (ja) スクラッチパッドブロック
US7315917B2 (en) Scheduling of housekeeping operations in flash memory systems
JP4399008B2 (ja) 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法
KR101619569B1 (ko) 온-칩 폴딩을 위한 데이터 전송
JP4431175B2 (ja) 不揮発性メモリおよびマルチストリーム更新を伴う方法
CN101645044B (zh) 一种操作可擦除且可再编程的非易失性存储器系统的方法
TWI355583B (en) Internal maintenance schedule request for non-vola
US20050144363A1 (en) Data boundary management
US8543757B2 (en) Techniques of maintaining logical to physical mapping information in non-volatile memory systems
JP2014513850A (ja) 小さな論理グループがアクティブなslcおよびmlcメモリパーティションに分散させられる不揮発性メモリおよび方法
KR20120106800A (ko) 데이터의 온-칩 폴딩을 사용한 복수-기어 제어를 가진 비휘발성 메모리
JP2008524710A (ja) 不揮発性メモリならびにスクラッチパッドおよび更新ブロックのための改良されたインデックス付けを伴う方法
TW201113883A (en) Multi-bank non-volatile memory system with satellite file system
US8995183B2 (en) Data retention in nonvolatile memory with multiple data storage formats

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees