TWI280581B - Data run programming - Google Patents
Data run programming Download PDFInfo
- Publication number
- TWI280581B TWI280581B TW093141372A TW93141372A TWI280581B TW I280581 B TWI280581 B TW I280581B TW 093141372 A TW093141372 A TW 093141372A TW 93141372 A TW93141372 A TW 93141372A TW I280581 B TWI280581 B TW I280581B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- adaptive
- block
- logical
- metablock
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
1280581 九、發明說明: 【發明所屬之技術領域】 本發明一般係關於非揮發性記憶體系統的操作,更明確 吕之,係關於此類記憶體系統内資料的處置。 【先前技術】 如5有卉多商業上成功的非揮發性記憶體產品,尤其是 以小型卡為形式,其採用形成於一或多個積體電路晶片上 的快閃電可抹除可程式化唯讀記憶體(Electrically ErasaMe and Programmable Read Only Memory ; EEPROM)單元之陣 列。一記憶體控制器(其通常但不一定位於單獨的積體電路 晶片上)與一主機(該卡以可移除方式連接到該主機上)連接 並控制該卡内記憶體陣列的操作。此類控制器通常包括一 微處理器、$非揮發性唯讀記憶體(R〇M)、一揮發性隨機 存取记憶體(RAM)以及一或多個特殊電路,例如,在程式 化與讀取資料期間當資料通過該控制器時,從資料計算錯 誤校正碼(ECC)的特殊電路。某些市售卡係 卡、多媒體卡(MMC)、安全數位(SD) 卡、智慧媒體卡、個人標籤(P標籤)與記憶棒卡。主機包括 個人電腦、筆記型電腦、個人數位助理(pDA)、各種資料通 信裝置、數位相機、蜂巢式電話、可攜式聲頻播放器、汽 車聲音系統及同樣類型的設備^ 了記憶卡實施方案之外, 可替代地將此類型的記憶體歲人各種類型的主機系統。 有兩個一般記憶體單元陣列架構已應用到商業中,即 顏與NAND。在典型的職陣列巾,記憶體單元係連接於 98673.doc 1280581 鄰近的位元線源極與汲極擴散體之間,該等擴散體沿行方 向延伸,並且控制閘極係連接至沿單元列延伸的字線。一 纪fe體單兀包括至少一儲存元件,其位於該源極與汲極之 間的單元通道區域之至少一部分之上。儲存元件上已程式 化的甩荷位準因而控制該等單元的操作特徵,於是可藉由 向已定址的記憶體單元施加適當的電壓而讀取該等單元。 此類單元的範例、其在記憶體系統中的使用及其製造方法 係在美目專利 f 5,070,032、5,〇95,344、5,3i3,42i、 5 广 15,541、5,343,G63、5,661,G53 與 6,222,762 號中說明,該 等專利連同此申請案中引用的所有專利與專利申請案係以 引用方式全文併入本文中。 NAND陣列利用兩個以上記憶體單元(例如“或切固)之 串列串’其連同-或多個選擇電晶體連接在個別位元線斑 —參考電位之間’以形成單林。字線橫跨大量此等行内 的單元而延伸 一行内的個別單元係在程式化期間藉由使 該 定 串内的其餘單元硬開啟,使流過一 址單元中所儲存的電荷之位準, 串的電流取決於該已 而加以讀取與驗證。 NAND架構陣列的範例及其作為 係在美國專利第5,570,315、 6,522,580號中說明。 記憶體系統之部分的操作 5,774,397、6,〇46,935 與 目前快閃EEPR⑽陣列的電荷儲存元件,如先前所引用 :二中所論述,係最常見的導電浮罐,其通常係由 電按雜的多晶碎材料所开;# /成。可用於快閃EEpR〇M系統 的替代類型之記憶體單元利用 凡⑺用非導電介電材料替代導電浮 98673.do 丨 1280581 _來以非揮發性方式儲存電荷。由氧化石夕、氮化石夕與 减矽(ΟΝΟ)所形成的三層介電質係夾入—導電控制閘極 兵該記憶體單元通道上-半導電基板之表面之間。夢由將 電子從該單元通道注入該氮化物而程式化單元,在該氮化 物中該等電子受到捕獲並儲存於一受限區域中,並藉:將 熱電洞注入該氮化物而加以抹除。採用介電儲存元件的數 個特定單元結構與陣列係說明於出加等人的美國專利申 凊公開案第2003/0109093中。 個別快閃卿汉⑽單元將一定量的電荷儲存於一電荷儲 h件或單元中,其表示一或多位元的資料。一儲存元件 的電荷位準控制其記憶體單元的臨界電壓(通常表示為 Vt),其係用作讀取單元之儲存狀態之基礎。通常將臨界電 昼視窗分成若干範圍,該記憶體單元之兩或多個儲存狀離 之每-狀態對應一範圍。此等範圍係由保護帶分開,該等 保,帶包括-標稱感測位準,其允許決定個別單元的儲存 狀恶。因電荷干擾在相鄰或其他相關記憶體單元、頁面或 區塊中所執行的程式化、讀取或抹除操作而使此等儲存位 準偏移。因此,錯誤校正碼(ECC)itf係藉由該控制器來計 算,並且係與所程式化的主機資料—起儲存,並且在讀取 期間使用以驗證資料並視需要執行—定等級的資料校正。 而且’偏移電荷位準在干擾操作使其完全偏移出其已定義 的範圍並引起讀取錯誤資料之前,可隨時間恢復到其狀態 範圍的中心。此程序’稱為資料更新或擦除,係說明於美 國專利第 5,532,962 與 5,909,449 中。 98673.doc 1280581 麵t同在大多數積體電路應用中—樣,快閃EEPR〇]vue*憶 體單元陣列中亦存在縮小用於實施某些特定積體電路功能 1需㈣基板面積之麗力。—直需要增加可儲存於給定面 牙貝之石夕基板中的數位資料量,以便增加給定尺寸記憶卡及 2它類型封裝的儲存容量,或同時增加容量及縮小尺寸。 :種用=增加資料儲存密度的方式係每記憶體單元及/或 母储存單元或元件儲存一個以上的資料位元。此係藉由將 2存元件儲存位準電壓範圍之視窗分成兩個以上的狀態而 、使用四j固此類狀態允許每個I元儲存兩位元資料, 〇個狀態允許每個儲存元件儲存三位元資料,等等。使用 洋動閘極之多狀態快閃EEPR〇M結構及其操作係說明於美 國專利第5,043,94G與5,172,338號中,而使用介電質浮動間 。力、„構則係δ兄明於前述美國專利申請公開案第 01〇90935|;中。多狀態記憶體單元陣列的選定部分亦 可口各種原因’以吴國專利第5,93〇,167與Μ%,似號中所 述的方式,而在兩種狀態(二進制)中操作。 时典型快閃EEPR〇M陣列的記憶體單元係分成—起抹除之 早凡的離散區塊。亦即’抹除區塊係抹除單位,即可同時 =除的取小數目之單元。每個抹除區塊通常儲存一或多個 、面的資料,該頁面係程式化與讀取的最小單位,停管— 的頁面可在不同的子陣列或平面中平行地加以程式 ’項取。每個頁面通常儲存一或多個區段的資料,區严 的尺寸係由主㈣統定義。—範例性的區段包括512位元^ 的使用者資料(遵循-針對磁碟機建立的標準),再加上若干 98673.doc 1280581 位兀組關於使用者資料及/或其所儲 資訊。此類記憶F ^ ^ Μ Μ 32或f夕百 a “己置為在母個抹除區塊内具有16、 料:7、面亚且每個頁面錯存一或數個主機區段的資 碩取使用者資斜董日„ ΑΑ τ + 八 當rA; 月間的平行度,通常將陣列分成子陣列, =!Γ其包含其自己的資料暫存器與其他電路,以 4右4作’以便將多個區段的資料同時程式化到數個 或所有平面中的每一個平面或從數個或所有平面中的每一 個平面同時讀取多個卩 ^貝取夕個又的-貝料。單一積體電路上的陣列 可在貫體上分成多個平面,或每個平面可由單獨的一或多 :積體電路晶片所形成。此類記憶體實施方案的範例係說 明於美國專利第5,798,968與5,89(),192號中。 在某些記憶體奉鲚φ,t γ & 、 匕杜糸、、苑中,亦可將實體的記憶體單元分組成 兩或夕们區域。一區域可為實體記憶體或記憶體系統之任 何已分割的子集,會有一特定範圍的邏輯區塊位址映射到 "亥子集中。例如’可將能夠儲存64百萬位元組資料的記情 體系統分成四個區域’並且每個區域館存16百萬位元組的 貧料。接著,亦可將邏輯區塊位址的範圍分成四個群組, 向四個區域之每-區域之抹除區塊指派一群組。在一典型 的實施方案中’邏輯區塊位址會受到限制,以至於絕:會 將2一區塊位址的資料寫入到邏輯區塊位址所映射到的單 1H㈣外部4分成多個平面(子陣列X各具有其自 己的定址、私式化與項取電路)的記憶體單元陣列中,每個 98673.doc 1280581 區域較佳係包括來自多個平面的抹除區塊,通常來自每一 平面的抹除區塊數目相同。區域主要用來簡化諸如邏輯至 實體轉換的位址管理,從而得到較小的轉換表格,所需用 於保存此等表格的較少RAM記憶體,以及用於定址目前活 動之記憶體區域之較快存取時間,但因為其限制性質,可 能導致次於最佳的磨損平衡。 為了進一步有效地管理記憶體,可將抹除區塊鏈接在一 起’以形成虛擬的區塊或元區塊。亦即,將每一區塊定義 為包括來自每一平面的一抹除區塊。元區塊的使用係於美 國專利第6,763,424號中說明。元區塊係藉由一主機邏輯區 塊位址識別為用於程式化與讀取資料的目的地。同樣,一 元區塊的所有抹除區塊係被一起抹除。以此類大區塊及/或 兀區塊操作的記憶體系統中的控制器執行若干功能,包括 從一主機接收的邏輯區塊位址(LBA)以及記憶體單元陣列 内的實體區塊編號(PBN)之間的轉換。該等區塊内的個別頁 面通常係由區塊位址内的偏移所識別。位址轉換通常包括 使用邏輯區塊編號(LBN)與邏輯頁面的中間項。 儲存在元區塊中的資料經常得到更新,元區塊中所發生 更新的可能性隨著元區塊之資料容量增加而增加。一元區 塊之已更新的區段通常係寫入另一元區塊。作為相同程式 化操作的部分,通常亦將未改變的區段從原始元區塊複製 到新的元區塊,以整理資料。或者,未改變的資料可保留 於原始的兀區塊,直至隨後與已更新的資料再次整理成單 一的元區塊。 98673.doc -10- 1280581 稷製未改變的區段可能會增加複製所需的時間並且增加 記憶體陣列中資料所佔據的空間,因為執行抹除操作之後 才能使用原始的元區塊。複製未改變的區段係在邏輯上將 主機檔案分段為不同的元區塊之結果。如果一元區塊包含 兩主機檔案的部分,則更新該等檔案之一亦包括複製儲存 在相同元區塊中的另一檔案的部分。當元區塊變大時,所 複製的部分亦變大。因此,隨著元區塊變大,邏輯分段變 為車父大的問題。 通常的做法係,將某些額外的抹除區塊保持於已抹除區 塊集區中來操作大區塊或元區塊系統。當更新小於一抹除 區塊容量的一或多頁資料時,通常係將已更新的頁面從該 集區寫入一抹除區塊,並將未改變頁面之資料從原始的抹 除區塊複製到抹除集區區塊。前述美國專利第6,763,424號 中說明了此技術的變化。隨時間過去,由於重新寫入及更 新主機資料檔案,許多抹除區塊最終會使其相對較少的頁 面包含有效的資料,而其餘頁面則包含不再流動的資料。 為了能夠有效地使用陣列的資料儲存容量,有效資料之邏 輯上相關的資料頁面係隨時間從多個抹除區塊的片段聚集 在一起,並且一起整理成較少數目的抹除區塊。此程序通 常稱為「廢料收集」。 【發明内容】 可將資料儲存在一記憶體陣列的適應性元區塊中。適應 性元區塊的尺寸可針對欲儲存的資料而進行訂製。可根據 資料的性質(控制資料、來自主機的資料),或可根據資料内 98673.doc -11 - 1280581 的邊界(例如檔案之間的邊界),夾也6 ^ ^ 木决疋適應性元區塊尺寸。 根據資料來配置適應性Μ塊可減小邏輯分段的影樂。 所含資料等同於一記情體陣列 U餵丨皁列之一抹除區塊中之資料的 邏輯群組係由邏輯上連續的區段所形成。適應性邏輯區塊 係由邏輯群組所形成。適應性邏輯區塊可能包含不同數目 的邏輯群組。將個別適應性邏輟 “ 1王璉铒^塊儲存在一記憶體陣列 的個別適應性元區塊中。一、盡_ I應性7L區塊中抹除區塊的數 目等於一對應適應性邏輯區貪巾 、科观〒遴季耳群組的數目。因而, 適應性元區塊具有可變數目姑 又默目之抹除區塊。一元區塊的抹除 區塊可能來自記憶體陣列之少八 干川又夕於全部的平面。一次可程式 化一個以上的適應性元區祕 _ _ .. 鬼。可根據欲儲存的資料來形成 適應性元區塊。可使用大適應性元區塊來獲得程式化期間 勺门平订纟1使用較小的適應性元區塊來提供所儲存資 料的有效更新。 ' 可开/成適應㉟輯區塊,使得適應性邏輯區塊之間的邊 界反映資料中的邊界,例如播案或資料串流之間的邊界。 藉由以此方式訂製谪麻Μ、思#广1 一 Μ丨生軏區塊,可減少記憶體陣列内 資料的複製。如果更靳杳把 旯新貝枓,則可形成新的適應性邏輯區 塊來以少量舊資料彳早在ρ 、呆存已更新的貧料。因此,如果再次更 新相同的資料,則僅有少景 J |里负/里的售貧料需要複製。 如果部分地填充滴廡祕、四 μ 避#耳區塊,則可將資料複製到較 小的適應性邏輯區堍。斗π + 、 、 斗尾此可在已部分填充的適應性邏輯區 塊被程式化之前穿点,十# 或/、可在已部分填充的適應性邏輯 區塊被程式化於一適庫柯; 應性70區塊中之後完成,在該情形下, 98673.doc -12- 1280581 包含已部分填充之適應性邏輯區塊之適應性元區塊係標記 為過期。將較小的適應性邏輯區塊程式化至記憶體陣列中 較小的適應性元區塊。目而,記憶體陣列中可節省空間。 ^使用非連續更新之元區塊(混沌區塊)來保存更新資料 之=構中’可改用適應性元區塊。可根據所更新的邏輯位 址:圍來轉適應性元區塊的尺寸。如果將適應性元區塊 訂製為—特定的邏輯位址範圍,則可更有效地執行該範圍 中的更新,因為資料的複製較少。 &藉由媒體管理器來執行適應性元區塊的形成以及所儲存 貢料之位置的記錄。—媒體管理器保持可料除區塊的記 錄。亦藉由媒體管理器來保持所儲存資料之位置的記錄。 所儲存資料之位置的記錄係保持在對於每一邏輯群組均具 有一項目的表格(或列表)中。針對每一邏輯群組的項目指 =包含邏輯群組的適應性元區塊(以及對應的適應性邏輯 區塊)之尺寸、其適應性邏輯區塊内邏輯群組的位置以及元 £塊之多個抹除區塊之一的實體位置。 非揮發性隨機存取記憶體(NVRAM)可與將資料儲存在適 應性元區塊中的快閃記憶體陣列結合使用。在將資料程式 化於快閃記憶體之前,可將NVRAM用作保存資料的資料緩 衝器。當資料位於NVRAM中日夺,可決定其如何被有效地程 式化。可將數個資料串流保存於NVRAM中並以一有效的方 式一起程式化。NVRAM亦可提供一替代的儲存位置用於特 定的資料,以替代快閃記憶體陣列的一部分。在此申請案 中,可將NVRAM配置為與快閃記憶體類似地使用。可將 98673.doc -13- 1280581 NVRAM分成尺寸與快閃記憶體之抹除區塊相同的單位。 NV副可能具有一實體位址範圍,以便為儲存於nvram 中的邏輯群組指派-在該NVRAM實體位址範圍内的實體 位址。如果-邏輯群組頻繁地得到更新,料將其指派給 證AM。因而,無需在快閃記憶體陣列中進行複製與抹除 即可發生更新。NVRAM中的資料更新比快閃記憶體中更為 有效,但如果斷電,資料不會像在揮發性記憶體中一樣遺 失。 7、 諸如槽案邊界之類的資料邊界發生於欲被儲存於快閃記 憶體中的資料之中。如果以邏輯群組為單位來定址欲儲存 的資料,則邏輯群組之間的邊界可能與資料邊界不一致。 因而,邏輯群組以及由邏輯群組所形成的元區塊(邏輯區 塊)包含資料邊界。如果大的元群組與元區塊包含資料邊 界,則更新標案可能需要複製大量的資料。其使用系统資 源,並且降低將新資料寫入記憶體陣列的速度。 、 可形成適隸元區塊m料邊界料在最小尺寸的 適應性s區塊中。藉由將資料邊界程式化於最小尺寸的元 區塊中’可減少隨後更新檔案中的資料期間資料的複製。 當發生播案更新時,包含槽案的原始^區塊包含過期:次 料。某些原始的元區塊包含非為已更新槽案之部分的資料貝。 此等資料可能不是過期的’因此可能需要在抹除並重新使 用原始元區塊之前被複製到新的位置。藉由使此類原於的 μ塊較小’可減少所複製的f料量。如果使用由—抹除 區塊所組成的適應性元區塊,則複製少於—邏輯群έ且的: 98673.doc -14- 1280581 料。可平行地程式化此類適應性元區塊,以使已縮小的適 應性元區塊尺寸不必減小程式化期間所用的平行性。 某些原始的元區塊可能未填滿資料,例如,其中檔案結 尾處的資料邊界係在原始的元區塊中並且在資料邊界之後 無貢料。可將此類原始元區塊中的資料複製到元區塊,其 尺寸係調節為以最小的空白空間保存資料。此可節省記憶 to陣列中的空間。可平行地程式化較小的適應性元區塊。 平订地加以程式化之適應性元區塊可能包括重新定位的資 料與主機資料,因此在將主機資料寫入該記憶體陣列的同 時執行重新定位操作。 杜呆些記憶體系統中 & ㈣J Νw 工…π风货關於 主機向尤f思體系統傳送的資料中之邏輯邊界(例如槽案邊 "/、貝料執仃邊界)之位置的資訊。根據主機所提供(或以其 他方式所獲得)之邏輯邊界位置,可以對準格式直接將資料 儲存於記憶體陣列中,而不必首U中間格式儲存於記憶 體陣列或NVRAM中。可將不包含邏輯邊界的資料部分 寫=記憶體陣列中具有最大尺寸的元區塊中。 取、將包括避輯邊界的資料部分儲存在 塊中。鉀而,& 口為寫入此一元區塊本身係慢 緩衝此一資料邻八妲糾 又J百先 主機並隨後以對準方々宜Aj v 诚仔;自 串列快__由j二讀體陣列中的資料部分。一 :取大尺寸的元區塊所組成,以便以最大 可藉二,料。當從該串列快閃緩衝器複製資料時, 人寫入一個以上之適應性元區塊而以高平行度寫 98673.doc l28〇581 =貝枓。因此’可首先將指派給最小尺寸元區塊的資料以 平行性寫人串列快閃緩衝器,隨後藉由平行地寫入 ]尺寸70區塊而以高平行度複製到最小尺寸元區 塊 ° 以 ith 士 式’即使在使用小元區塊之情況下,-串列快 尺亦有助於高平行度(因此保持高性能)。對於中間 、=區塊,可直接將資料寫人該記憶體陣列,或首先 σ :豕元區塊的尺寸來緩衝資料。 田儲存於記憶體中的一資料部分之每_ jI 係儲存於最! Η +丨刀之母立而處之遴輯邊界 —入對進 寸之70區塊中時,可將該資料部分視為以 =的 式储存。如果—端的邏輯邊界_存於最小 寸的塊中’而另—端的邏輯邊界並非館存於最小尺 寸的凡區塊中,則以部分 丄里工 丁半的方式來儲存一資料部分。 如果兩邏輯邊界皆未儲 對準方式館存一資料部分。”二 則以非 高於盆所更^ 1 胃更新1料部分時,其可以 所更新之貧料的對準程度來儲存。 【實施方式】 記憶體架構及其操作 首先參考圖1Α,一快閃 一㈣哭.^ L肢包括一記憶體單元 L·制為。在所示範例中, 包括一記恃卿罝-祐 和版包路裝置(晶片)11與!3 读二一早70陣列15與各種邏輯電路17。邏輯電路17 透過貧料、命令與狀況電路與另—曰…輯’路17 接,而且為陣列13提供定 :片上的控制器,連 記憶體陣心片的數目以_、舆❹及其他支援。 量而定。記憶體單元陣列可位於;提供咖 日日片上,或可由多個 98673.doc -16 - 1280581 晶片夫上的記憶體單元所組成。該控制器與部分或整個陣列 可替代地組合於單一積體電路晶片上,但此做法目前並非 一經濟的選擇。 户 -典型控制器19包括—微處理器21 ; 一唯讀記憶體 (ROM)23,其主要用來儲存勒體;以及—緩衝器記憶體 (RAM)25,其主要用來暫時儲存寫人記憶體晶片“與^或 從記憶體晶片11與13讀取的使用者資料。緩衝記情體25可 為揮發性或非揮發性記憶體。電路27與記憶體陣列晶片連 接,而電路29透過連接31與主機連接。在此範例中,資料 的完整性係藉由以專用於計算該代碼的電路33計算咖而 決定。當使用者資料從主機傳輸至快閃記憶體陣列以作儲 ^日夺’該電路根據資料計算一 Ecc’並將該代碼儲存於記 憶體中》當隨後從記憶體讀取該使用者資料時’其再次通 過电路33 ’該電路藉由相同的演算法計算ecc,並將該代 碼與已計算出且與資料儲存在—起的Ecc作比較。如 相符’則可確認資料的完整性。如果其不同,則根據所用 的特定聊演算法,可識別並校正該等錯誤位元,最高達 該演算法所支援的數目。 门 圖1A之記憶體之連接31與主機系統之連接3ι,匹酉己,圖π ”其m 之主機與記憶體之間的資料傳輸通過 介面電路35。_典型主機亦包括一微處理器W、—用於儲 ㈣體碼的ROM 39以及RAM 41。其他電路與子系統锻 ㊉包括高容量資料儲存磁碟機,用於鍵盤之介面電路、# 視器等,視特定的主機系統而定。此類主機之範例$ 98673.doc -17- 1280581 括桌上型電腦、膝上型 主电恥、手持式電腦、掌上型電腦、 们人數位處理(pers〇 1 1 dlgltal assistam,· PDA)、MP3及苴 他聲頻播放器、數位相機、 八 七认 铖攝像機、電子遊戲機、無線及 有、、表電話裝置、答錄機、語音記錄器、網路路由器等等。 圖1A之記憶體可實施為一 j 1对閉卡,其包含控制器以 及所有其記憶體陣列電路裝置,其形式上與圖⑺之主機以 可移除方式連接。亦即,匹配的連接31與31,允許—卡斷開 並移動至另一主機,或^ 、、 X稭由將另一卡連接至主機而加以取 代。或者’可將該記憶體陣列裝置封閉於另一卡中,該卡 可與包含控㈣與連接31的卡電性及機難地連接。作為 另一替代方案’可將圖以之記憶體嵌入圖⑺之主機内,其 中可使連接31與31,為永久性。在此種情形下,通常可將記 憶體連同其他組件包含於主機的包覆内。作為另一替代方 案’可將諸如記憶體晶片U的記憶體晶片直接連接至主機 系:之連接3Γ,而在兩者之間不具有記憶體控制器。在此 種情形下’可藉由主機系統的微處理器37來執行記憶體控 制器的功能。 圖2 „兄明-記憶體陣列的一部分,其令將記憶體單元群聚 為抹除區塊’每一抹除區塊中的單元可作為單一抹除操作 的部分而一起加以抹除,通常係同時抹除。抹除區塊係抹 除的最小單位。 圖2之個別記憶體單元抹除區塊之尺寸可變化,但一商業 上實用㈣式在個別的抹除區塊巾包括m料區段。、 圖3說明此一資料區段的内容。使用者資料5丨通常為512位 98673.doc -18- 1280581 元、、且除了使用者資料5 1之外,還有負擔資料,其包括根 據使用者資料所計算的ECC 53、與區段資料及/或區段程式 化於其中的抹除區塊相關的參數55以及根據參數55計算的 ECC 57以及任何其他可能包括的負擔資料。或者,可根據 使用者貧料51與參數55來計算單一的ecc。 專ί數5 5可施包括與抹除區塊所經歷的程式 週期之數目相關的-數量,此數量在每—週期或'某一= 之週期之後得以更新。但將此經歷數量用在磨損平衡演算 法呀規則地將邏輯區塊位址重新映射至不同的實體區塊 位址,以使所有抹除區塊的使用量(磨損)均勻。經歷數量的 另用法係要根據不同抹除區塊所經歷的週期數目來改變 包壓以及其他程式化、讀取及/或抹除參數。 该寺茶數55亦可包括指派給記憶體單元之每一儲存狀態 之=元值之指示,稱為其「旋轉」。其對磨損平衡亦有有利 的影響。亦可將—或多個旗標包括於指示狀況或狀態的參 數55中。亦可將用於程式化及/或抹除該抹除區塊的電壓位 準之指示儲存於參數55内,此等電壓係隨著抹除區塊所經 的週』數目與其他因素的變化而得以更新。該等參數$ 5 之其他乾例包括抹除區塊内任何有缺陷單元之識別、被映 =至此實體區塊中的資料之邏輯位址以及在主要抹除區塊 有缺的h形下任何替代抹除區塊的位址。用在任何記 憶體系統中的參數55之特定組合將根據設計而變化。而 。可將邛刀或全部負擔資料儲存於專用於此一功能的抹 ’、品鬼中而非包含使用者資料或負擔資料所屬的抹除區 98673.doc 1280581 塊中。 與圖2之單一資料區段抹除區塊不同的係圖4的多區段抹 除區塊。-示紐的抹除區塊59,域係最小的抹除單位, 包含四個頁面〇至3,每—頁面係最小的程式化單位。一或 夕们主機貝料區段係儲存於每—頁面中,豸常還儲存包括 至少從該區段之資料計算出的ECC之負擔資料,並且可能 以圖3之資料區段為形式。 重新寫入整個抹除區塊的資料通常包括將新的資料程式 切-抹除區塊集區的可用抹除區塊中,原始抹除區塊接 者被抹除並置於抹除集區中。當更新抹除區塊之少於全部 頁面之貢料時,通常將已更新的資料儲存於已抹除區塊华 區:-抹除區塊的-頁面中,並將其餘未改變頁面中的資 料從原始的抹除區塊複製到新的抹除區塊中。接著抹除原 :的抹除區塊。此大區塊㈣技術之變化包括將已更新的 貝料寫人另-抹除區塊的_頁面巾’而無需從原始抹除區 塊移動:資料或抹除資料。此導致具有相同邏輯位址的多個 頁面。藉由某—方便的技術來識別最近的資料頁面,例如 t為區&或頁面負擔貧料中的—攔位而記錄的程式化時 …圖5中說明另一多區段抹除區塊配置。此處,將總的記憶 收早4列貫體上分成兩或多個平面,圖中說明四個平面〇 :二。每一平面係一記憶體單元子陣列,其具有本身的資料 暫存器、_放大器、定址解碼器等,以便很大程度上可 萄立於其他平面而#作。所有的平面可位於單—的積體電 98673.doc -20- !28〇581 :裳置上或多個裝置上’一範例係由一或多個不同的積體 %路裝置形成每—平面。圖5之範例性系統中的每-抹除區 塊包含16個頁面Po至pi5,每一頁* °° ^ ^ ® ^ 、一或多個主機 貪料區段以及一定負擔資料之容量。 元區塊 圖6中說明另一記憶體單元配置。每一平面包含大量的抹 除區塊。為增加操作的平行度,邏輯上鏈接不目平面内的 抹除區塊,以形成元區塊。圖6中說明一此類區塊。可在邏 輯上定址每一元區塊,並且該記憶體控制器指派並追蹤= 成個別元區塊之抹除區塊。該主機系統提供以區段串流為 形式的資料。將此區段串流分成邏輯區塊。此處,邏輯區 塊係邏輯資料單位,其包含與記憶體陣列之元區塊中所含 數目相同的資料區段。記憶體控制器保持儲存每一邏輯= 塊的位置的記錄。圖6之此類邏輯區塊61,例如,係藉由邏 輯區塊位址(LBA)所識別,該邏輯區塊位址(LBA)係藉由控 制器映射到構成元區塊的區塊之實體區塊編號(pBN)中。元 區塊的所有區塊係一起被抹除,並且一般同時程式化與讀 取來自每一區塊的頁面。 圖7顯示儲存於記憶體陣列中的資料。主機以資料區段串 流75的形式傳送資料。將該等區段形成為邏輯區塊7丨、。 然後將邏輯區塊程式化至元區塊。例如,將邏輯區塊72程 式化至兀區塊74。圖7顯示具有四個平面的記憶體陣列%。 元區塊74具有來自每一平面〇、i、2與3的一抹除區塊。元 區塊74橫跨該陣列之所有平面而延伸,以便平行地程式化 98673.doc -21 - 1280581 所有平面。因此,元區塊的尺寸通常係由陣列中平面的數 目決定。而且,對應邏輯區塊的尺寸係由此尺寸決定。 圖8顯示其中將資料儲存於元區塊中的記憶體陣列中更 新資料。從主機接收已更新的資料區段81而將其儲存於記 憶體陣列中。已更新的資料區段81對應於邏輯區塊82、83 中的原始資料區段。將邏輯區塊82、83中的原始資料儲存 於記憶體陣列89中的元區塊84、85中。因此,元區塊以中 的部分區段以及元區塊85中的部分區段需要更新,而其他 區段則不需要更新。可藉由將已更新的資料區段81與不需 要更新的元區塊84、85中的原始區段組合而完成更新。然 後將此等組合的資料寫人取代元區塊86、87,並將原始的' 兀區塊84、85標記為過期。最終抹除過期的元區塊料、^, 並使該等區塊在廢料收集期間再次可用。冑已更新的資料 區段以與原始的區段組合可在接收到資料時完成。或者, 已更新資料區段81可寫入另-位置,並且在隨後的時間作 為廢料收集的部分而與原始的資料組合。雖然大的元區塊 因為車父大的平行性而允許較快的程式化,但更新儲存於大 =射㈣料可能包括複製大量的資料,即使在僅接收 至"新貝枓的情況下。將新資料與原始資料整 區塊中可能會在廢料收集期間施加顯著的負擔。 適應性元區塊 圖用於將資料儲存於記憶體崎^ 开;成、》 貢料區段串流99的形式接收資料。將區段 耳群組,包括邏輯群組91、92、93。邏輯群組係邏 98673.doc -22- 1280581 輯資料單位,其等於儲存在記憶體陣列之一抹除區塊中的 貝料里。一邏輯群組係由從主機接收到的邏輯上連續的區 段所形成。所形成的每一邏輯群組具有特定的邏輯位址範 圍。因而,邏輯群組係中間邏輯資料單位,其可能包含許 多區段’但通常係小於適應性元區塊。 邏輯群組係形成為適應性邏輯區塊。適應性邏輯區塊或 邏輯區塊亦可稱為「元群組」。術語「元群組」係視為等效 於術語「適應性邏輯區塊」。此申請案中一般使用術語「適 應性邂輯區塊」。一適應性邏輯區塊包含可變數目之邏輯 群組。因而,在圖9八中,適應性邏輯區塊95包含3個邏輯群 、、且91 92 93。適應性邏輯區塊96包含兩個邏輯群組,並 且逛輯區塊97包含4個邏輯群組。將適應性邏輯區塊95程式 化至適應性元區塊98。適應性邏輯區塊95包含三個邏輯群 組91、92、93,相應地,適應性元區塊98包含三個抹除區 塊911、912、913。因此,適應性元區塊%不具有來自該陣 列之每一平面的抹除區塊,而僅來自平面〇、2與3。適應性 元區塊98不具有來自平面1的抹除區塊。圖9B更詳細顯示如 何將區段映射至邏輯群組91、92、93。每一邏輯群組91、 92、93包含η個資料區段。圖9B亦顯示映射至適應性邏輯區 塊9 5的邏輯群組91、9 2、9 3。將適應性邏輯區塊程式化至 記憶體陣列中對應尺寸的適應性元區塊。 在元區塊架構的某些範例中,元區塊尺寸係固定的。一 陣列中平面的數目可決定元區塊的尺寸。在此等範例中, 邏輯區塊的尺寸亦係固定的,並以預定的方式將區段映射 98673.doc -23- 1280581 至避輯區塊。因此’將邏輯位址空間分成具有固定邏輯位 址範圍以及固定邊界位置的相等尺寸的邏輯區塊。相反, ‘ 在使用適應性元區塊的架構中,適應性邏輯區塊不具有固 -疋的尺寸’並且適應性邏輯區塊不限於預定的邏輯位址空 間範圍。而是’適應性邏輯區塊可具有各種尺寸,並且可 形成為在不同的邏輯位址空間之範圍上延伸。邏輯群組的 形成藉由提供中間資料單位(由其形成各種尺寸的適應性 逛輯區塊)而輔助適應性元區塊架構。因而,適應性元區塊 係不具有固定尺寸的元區塊之一範例,並且適應性邏輯區 籲 塊係不具有固定尺寸的邏輯區塊之一範例。 可根據一提供陣列之抹除區塊之有效使用之演算法來選 擇用於形成適應性元區塊的平面。可根據一平面中可用抹 除區塊的數目以及一特定的平面是否仍忙於先前的操作而 賦予平面不同的優先權。而且,可考慮將舆被更新之材料 所用者相同的平面用於新的材料,以便在平面内執行複製 操作。一平面内的此類資料複製(晶片上複製)在某些架構中 可能更為有效。一般而言,選定平面内特定抹除區塊㈣ _ 擇不重要。 ' 具有不同尺寸之適應性元區塊的結果係,某些適應性元 區塊可能不包含來子該陣列之每一平面之抹除區塊。如果 個別地程式化此-適應性元區塊,則程式化不使用最大可 能的平行性。例如,在圖从中,在所示操作中不程式化平 面卜通常最好以可能的最大平行性來程式化,以增加程式 化速度。程式化至較少的平面會導致低效率。當適應性元 98673.doc -24- 1280581 區塊係小的,但一陣列中有許多平面時,尤其如此。然而, 藉由一次転式化一個以上之適應性元區塊,可以較小的適 應性元區塊來保持高平行性。 圖10顯不平行程式化的兩個適應性元區塊1030、1040。 兀區塊1030、1〇4〇内的資料可能為主機提供的更新資料或 重新疋位於快閃記憶體内的資料。圖丨〇的記憶體陣列丨〇〇5 具有6個平面。適應性邏輯區塊1 〇〇 1包含三個邏輯區塊丨〇 i 〇 至1012。因此’對應的元區塊1〇4〇需要來自記憶體陣列之 二個平面之三個抹除區塊1〇41、1〇42、1〇43。如果適應性 邏輯區塊1001係自行程式化,則僅將使用三個平面,而其 他三個平面則閒置。然而,可與適應性邏輯區塊1〇〇1平行 地程式化適應性邏輯區塊1〇〇2,以便使用六個平面中的五 個平面。因此’即使所用適應性元區塊包含比陣列中的平 面數目少得多的抹除區塊,亦可達成高平行度。 一演算法根據各種標準指派平面,以將適應性邏輯區塊 10 01知式化至平面1、2與5中的抹除區塊,而將適應性邏輯 區塊1002程式化至平面0與4中的抹除區塊。在此操作中未 程式化平面3中的抹除區塊。雖然需要最大平行性,在每次 程式化操作中可能不會將所有六個平面一起程式化。如果 一平面中無抹除區塊可用,則可能不會程式化該平面。如 果該平面中極少抹除區塊可用,則當選擇平面用於程式化 % ’向该平面指派低優先權。然而,僅需五個抹除區塊來 儲存適應性邏輯區塊1 〇〇 1與1 〇〇2。因此,僅選擇五個平面, 亚且不選擇平面3。平面3係在此操作中具有最低優先權的 98673.doc -25- 1280581 平面。然而,當發生下一程式化操作時,可重新評估優先 權。對於下一次操作,優先權可能已變化,因為平面〇、丨、‘ ^ 4、5之每一者中已使用另外一個抹除區塊。因此,如果 · 平面3中有抹除區塊可用,則可將平面3用在隨後的程式化 操作令。此演算法平衡用在不同平面中的抹除區塊數目, 以使一特定的平面不會更快地填滿而變成不可用。 用於個別適應性元區塊的平面不必為實體上相鄰的。例 汝圖10的適應性元區塊1〇3〇在平面〇與4中具有抹除區塊 1044、1〇45,而適應性元區塊1〇4〇在平面i、2舆$中具有抹 _ 除區塊1041至1 〇43。平行地加以程式化之適應性邏輯區塊 不必在κ版上連績。可平行地程式化邏輯上分開的適應性 邏輯區塊。例如,適應性邏輯區塊1001與1002在邏輯上不 連績。其係藉由適應性邏輯區塊1〇〇3而分開。 當一適應性元區塊中的所有資料已被資料的已更新或已 重新定位版本所取代並且已變為過期時,應抹除形成適應 元區塊的抹除區塊。然而,適應性元區塊可能不包含來 自陣歹j之每-平面之一抹除區塊,並且當個別地抹除此—修 ^應l'生元區塊時,抹除不使用最大的平行性。因此,無法 獲得用於抹除資料的最大速度,因此記憶體系統之有效程 、、、又從最大可此值減小,因為在常用快閃記憶體晶片 勺抹除缸作期間’可能不會執行資料的程式化。此可藉纟 , 將形成適應性元區塊的抹除區塊之抹除延遲直至來自每 面的一抹除區塊可用而予以克服,以達成最大的抹除 平仃性。可用於抹除的抹除區塊係保存於列表中,並且週 98673.doc -26 - 1280581 期性地安排區塊集用於抹除,以達成最大可能的平行性。 當該列表在某些平面h包含區料,可執行較小 的抹除。 鬼木 圖li顯示使用適應性元區塊的某些可能資料儲存配置。 圖11顯示區段中的輸入資料至邏輯群組的映射以及邏輯群 組至適應性邏輯區塊的映射。雖然此映射僅係邏輯上的, 但應瞭解’可將適應性賴區塊程式化至記憶體陣列的適 應性元區塊。-般而言’首先作為㈣最大平行性儲存的 區段串流而接收資料。因此,在初始寫入期間,記憶體系 統可像圖7所述系統-樣運作。圖Ui|示適應性邏輯區塊 1101至11G3 ’每-適應性邏輯區塊11G1u⑻具有四個邏 輯群組。因此,對於具有四個平面的記憶體陣歹4,適應性 邏輯區塊1101至1103具有最大的尺寸。 隨後,可藉由重新映射邏輯群組而以新的適應性邏輯區 塊取代原始的適應性邏輯區塊。例如,在圖u的第一更新 中,藉由兩個適應性邏輯區塊丨丨“與丨丨丨丨來取代適應性邏 輯區塊1101。因此,藉由兩個較小的適應性邏輯區塊來取 代早一的適應性邏輯區塊,並且在先前無邊界之處形成邏 輯區塊之間的邊界。在第一更新期間,產生適應性邏輯區 塊1113。適應性邏輯區塊丨i i 3包括邏輯群組丨〗22,其先前 係適應性邏輯區塊11〇3的部分,以及邏輯群組112〇、ll2i, 其先岫係適應性邏輯區塊i i 〇2的部分。因而,適應性邏輯 區塊1113在先前於適應性邏輯區塊丨丨〇2與丨丨〇3之間包含一 邊界的邏輯位址範圍上延伸。可能亦組合適應性邏輯區 98673.doc -27- 1280581 塊,以形成較大的適應性邏輯區塊。在圖丨丨之第二更新中, 將邏輯群組丨丨丨丨與丨丨^組合,以形成邏輯群組ιιΐ5。此處,’ 適應性邏輯區塊1115在先前由適應性邏輯區塊iui與㈣ 所佔據的邏輯位址範圍上延伸。因而,適應性邏輯區塊可 由適應性邏輯群組之不’合所形成。適應性邏輯區塊可 為從一邏輯群組至最大數目之邏輯群組之任何尺寸。最大 數目之邏輯群組可為該㈣中平面的數目。適應性邏輯區 塊組態中的變化可能發生於更新一或多個適應性邏輯區塊 中的資料時,或可能基於某一其他原因而發生。例如,可 作為廢料收集的部分或作為一已排程的常式來更新適應性 邏輯區塊組態,以使資料儲存最佳化。 應用 圖12A顯示以新的資料更新程式化資料,以便更有效地執 行隨後的更新。頻繁地接收少於一程式化適應性元區塊之 一部分新資料並將其用於更新程式化資料。圖12A顯示對應 於兩個適應性邏輯區塊122〇、1230之部分的新資料121〇。 新資料具有在適應性逛輯區塊12 2 0與適應性邏輯區塊12 3 〇 之間的邊界上延伸的位址範圍。因而,對應於適應性邏輯 區塊1220與1230之適應性元區塊1221、1231需要更新。 新資料121 0在邏輯位址範圍上延伸,該邏輯位址範圍係 在三個連續邏輯群組1241、1242與1243之位址範圍内。每 一邏輯群組1241至1243的至少某部分需要加以更新。圖12A 顯示具有需要加以取代之資料以及不需要加以取代之資料 之邏輯群組1241與1243。邏輯群組1242僅具有需要加以取 98673.doc -28 - 1280581 代的資料。新的邏輯群組1211、1212與1213係由新的資料 1210以及來自邏輯群組1241與1243之原始資料1214與1215 之部分所形成。藉由邏輯群組1211至1213來形成新的適應 性邏輯區塊1250。對應於適應性邏輯區塊1250的適應性元 區塊1251係由記憶體陣列中的三個抹除區塊1252至1254所 形成。適應性邏輯區塊1256與1257係由不具有新資料的邏 輯群組所形成。例如,由邏輯群組1244至1246來形成適應 性邏輯區塊1257。可從記憶體陣列中的適應性元區塊丨23 1 複製邏輯群組1244至1246。將適應性邏輯區塊1257程式化 至適應性元區塊1259。將適應性邏輯區塊1256程式化至適 應性元區塊1258。因此,三個適應性邏輯區塊125〇、1256 與1257係形成於先前由兩個適應性邏輯區塊1220、1230所 佔據的邏輯位址範圍中。三個適應性元區塊12 5 1、12 5 8與 1259係形成於記憶體陣列中以儲存此資料。 圖12A顯示在第一更新之後發生的新資料之第二更新。新 的貧料1260係由具有一邏輯位址範圍的區段串流所組成, 該邏輯位址範圍係與新資料121〇相同的邏輯位址範圍。通 常會在非揮發性記憶體系統中碰到此情況。由於所儲存資 料的性質(例如,諸如FATs之類的表袼、目錄及子目錄、應 用檔案内的索引),可重複地更新相同的資料範圍。第二更 新僅取代適應性邏輯區塊125〇中的資料。因此,僅在第二 更新中更新適應性邏輯區塊1250及對應的適應性元區塊 1251。適應性邏輯區塊125〇僅包括三個邏輯區塊pi〗至 1213。適應性邏輯區塊1256與1257不需要更新。新資料 98673.doc -29- 1280581 未橫跨適應性邏輯區塊1250的整個邏輯位址範圍而延伸, 因此複製原始資料1214、1215的部分,以填充邏輯群組1261 與1263。邏輯群組1261、1262與1263係由新的資料1260與 原始資料1214、1215所形成。由邏輯群組1261至1263來形 成適應性邏輯區塊1270。將適應性邏輯區塊1270程式化至 冗憶體陣列中的適應性元區塊丨27丨。原始資料的複製要比 第一更新中少得多。僅複製原始資料丨2丨4與丨2丨5,在第二 更新中未複製適應性邏輯區塊1256與1257中的資料。因 此,藉由建立其邊界更匹配已更新資料之邏輯邊界的適應 性邏輯區塊,可使隨後的更新更為有效。 圖1頭示重新映射的適應性邏輯區塊。此處,資料串流 包括兩個檔案1280與1282。藉由檔案邊界1281將檔案128〇 從檔案1282分離。一般而言,當將新資料寫入記憶體系統 日寸’其係作為資料區段串流而被接收到。在此一串流中可 能會有檔案邊界。在某些架構中,當接收到資料並相應地 配置適應性邏輯區塊時,可識別此類邊界。在其他架構中, 可藉由主機所更新的資料範圍來顯示檔案邊界的位置。圖 12B顯示位於邏輯群組1286之邏輯位址範圍内之檔案邊界 1281。在初始的程式化操作期間,資料係形成於適應性邏 輯區塊1290至1293中。邏輯區塊1290至1293各包含八個邏 輯群組,其係所用記憶體陣列的最大尺寸。檔案邊界1281 係位於適應性邏輯區塊1292内。更新檔案128〇需要更新元 區塊1290、1291與1292,即使在適應性元區塊1292中儲存 了少於兩邏輯群組之檔案1280。將適應性邏輯區塊1292的 98673.doc -30- 1280581 邏輯群組重新映射至新的適應性邏輯區塊1294與1295。邏 輯區塊1294僅由邏輯群組1285與1286所組成。因此,包含 部分檔案1280的邏輯群組形成適應性邏輯區塊1294,而不 包含部分檔案1280的邏輯群組則形成適應性邏輯區塊 1295 °更新檔案1280不需要更新適應性邏輯區塊1295。因 此’如果已知存在檔案邊界,則所形成的適應性邏輯區塊 可具有被調整為適配檔案邊界的邊界。 圖12C顯示來自資料串流128〇、1282之資料之替代性重新 映射。此處’槽案邊界12 8 1發生於邏輯群組12 8 6。最初將 邏輯群組1286併入邏輯區塊1296中。更新檔案128〇需要更 新邏輯區塊1296,即使邏輯區塊1296中一半以上的資料並 非來自檔案1280。在更新期間,形成一第二組適應性邏輯 區塊。適應性邏輯區塊1296係由新的適應性邏輯區塊 1297、1298、12"所取代。適應性邏輯區塊丨2%僅包含一 邏輯群組之貧料。更新資料串流128〇或資料串流1282需要 更新適應性邏輯區塊1298,因為邊界1281發生於適應性邏 輯區塊1298内。因而,因為檔案邊界1281未舆邏輯群組之 間的邊界對準,故始終執行料的—定複製。然而,因 為適應性το區塊1298僅包含一邏輯群組,故與使用元區塊 1296之類較大元區塊的情況相比,僅有少量資料需要複 製。因此,藉由縮小一包含檔案邊界之適應性邏輯區塊之 尺寸,可減少更新期間的資料複製。 圖13顯不重新寫入具有較少空白空間之較小適應性元區 塊1340之已部分填充之適應性元區塊1321。可使用最大的 98673.doc 1280581 平行性來接收與程式化資料串流。例如,在具有四個Μ 的陣列中,可形成包含四個邏輯群組的適應性邏輯區塊, 並且資料係儲存於具有四個抹除區塊的元區塊或適應性元 區塊中。然而,在此一資料串流之結尾,可僅部分填充適 應性元區塊。此類適應性元區塊佔據比所儲存資料所需要 者更多的記憶體陣列。圖13顯示所接收的資料區段串流 1305。將資料映射到包括邏輯群組131〇至1315的邏輯群 組。邏輯群組131〇至1317係形成為各具有四個邏輯群組的 適應性邏輯區塊1320、1321。資料區段串流13〇5之結尾發 生於位於邏輯群組1315之邏輯位址範圍内的一邏輯位址。 由邏輯群組1314至1317來形成適應性邏輯區塊1321。邏輯 群組13 14與1315包含來自資料區段串流13〇5之資料。邏輯 群組13 16與13 17不包含資料。因而,適應性邏輯區塊1321 包含空白的邏輯群組1316與1317以及已部分填充的邏輯群 組1315。將適應性邏輯區塊1321程式化至適應性元區塊 1331。適應性元區塊1331包含記憶體陣列之四個抹除區 塊。由於空白的邏輯群組1316與1317以及已部分填充的邏 輯群組1315,未使用適應性元區塊1331的部分。此會浪費 §己憶體陣列中的空間。圖13顯示由邏輯群組1 3 14與1 3 1 5所 形成的適應性邏輯區塊1340。將適應性邏輯區塊134〇程式 化至§己彳思體陣列中的適應性元區塊13 41。因此,適應性元 區塊13 41包含與13 3 1中相同的資料,但僅佔據記憶體陣列 中一半的空間(兩個抹除區塊而非四個)。可藉由從記憶體 陣列中的適應性元區塊丨3 3 1複製資料而形成適應性邏輯區 98673.doc -32- 1280581 塊1340與適應性邏輯區塊1341。當將適應性元區塊Bn中 的資料複製至適應性元區塊1341中時,可將適應性元區塊· 1331標記為過期。接著可抹除適應性元區塊ΐ33ι。 ‘ 可藉由從接收到資料區段串流1305起的消逝時間來觸發 從已部分填充之元區塊將資料複製至較小元區塊。亦可作 為廢料收集常式的部分來進行複製。當資料區段串流丨3 位於緩衝器中時,如果偵測到資料區段串流13〇5的結尾, 則可由接收到的資料直接形成較小的適應性元區塊,例如 1340。在此種情形下,資料未首先寫入至較大適應性元區鲁 鬼X及接著複製至較小元區塊。因此,不存在過期的適應 性兀區塊需要抹除。在某些架構中,一主機可傳送一信號, 以指示資料串流結尾發生於何處。接著,可形成一適應性 邏輯區塊,使其所含邏輯群組僅包含來自該資料串流之區 段。 在4寸疋的δ己丨思體架構中,可指派抹除區塊或元區塊來儲 存已更新的資料。此類抹除區塊以及元區塊的範例係說明 於專利申請案第1〇/749,83 1號,標題為「具有大抹除區塊之· 非揮發性記憶體系統之管理」,c〇nley等人,於2〇〇3年12月 30曰申明’並且以引用方式全文併入本文中。可使用某些 元區塊,稱為E1與E2,來儲存用於記憶體陣列之平面之已 更新資料。可指派其他抹除區塊或元區塊,稱為dE卜以接 ' 收用於特定抹除區塊或元區塊之已更新資料。一適應性元 、 區塊可稱為El、E2或dEl。可將此一適應性元區塊訂製為 叉頻繁更新的邏輯位址範圍。藉由形成其尺寸被選擇為適 98673.doc -33- 1280581 配已更新資料之適應性元區塊,可減少原始資料的複製。 E1與dEl接收更新資料並以非連續方式儲存資料。非連續地 儲存更新貢料之更新區塊(或元區塊或適應性元區塊)係視 為混、;屯區塊。 圖14頦示使用適應性元區塊作為一混洗區塊,其尺寸適 合已更新資料之邏輯位址範圍。將資料儲存在包括原始適 應性元區塊1410的原始適應性元區塊。一般而言,此類原 始適應性元區塊具有最大尺寸。指派適應性元區塊142〇, 以接收對應於原始適應性元區塊141〇中之資料之已更新資 料。適應性邏輯區塊1411與1421分別對應於原始適應性元 區塊141〇與適應性元區塊142〇。適應性邏輯區塊1421具有 與適應性邏輯區塊1411相同的邏輯位址範圍。第一更新資 料1415具有在適應性邏輯區塊1411之邏輯位址範圍内的邏 輯位址範圍。在第一更新中僅更新原始適應性邏輯區塊 1411之遴輯位址範圍之一部分。第一更新資料i4i5係非連 續的(混沌)。因此,適應性元區塊142〇變為混沌區塊。更新 資料1415可包含所示邏輯位址範圍内的數個區段串流。可 將相同的區段更新數次。最後,元區塊丨42〇變滿,並且必 須加以整理。 在第一整理期間,僅將每一區段之最近副本複製至新的 適應性元區塊1422至丨424。對於已更新的資料,最近的副 本來自適應性元區塊1420,對於未更新的資料,最近的副 本來自適應性元區塊141 0。整理將來自適應性元區塊i 41 〇 與適應性元區塊1420的資料組合在邏輯序列中。指派給適 98673.doc -34- 1280581 應性元區塊1423的邏輯位址範圍包括第一更新資料1415之 邏輯位址範圍。適應性元區塊1422、1424僅包含未更新的 資料。 在第一整理之後,接收到第二更新資料1425。第二更新 貝料1425係位於與第一更新資料1415相同的邏輯位址範圍 内。將第二更新資料1425指派給儲存於適應性元區塊143〇 中的新適應性邏輯區塊1431。適應性邏輯區塊1431具有與 適應性70區塊1423中儲存的資料相同的邏輯位址範圍。適 應性元區塊1430可能受到混沌地更新,故變為混沌區塊。 當填充適應性元區塊1430時,將適應性元區塊143〇與適應 f生元區塊1423中的資料整理到適應性元區塊丨44〇。適應性 元區塊1440接著取代適應性元區塊1423,並且可將適應性 元區塊1423標記為過期。適應性元區塊1422與1424保持不 變。在第二整理中整理比第一整理要小的邏輯位址範圍, 故未改變資料之複製較少。而且,由於在第一整理之後用 於更新的適應性元區塊較小,故記憶體陣列中所需空間較 少〇 可在相同的邏輯位址範圍内進行其他更新,並且可與第 二整理中一樣整理其他更新。 媒體管理 圖15A顯示如何將適應性邏輯區塊1 52〇之邏輯群組 1510、1511與1512映射到適應性元區塊154〇之抹除區塊 1531、1532與1533。儘管一適應性邏輯區塊1520中邏輯群 組之數目等於適應性元區塊丨54〇中抹除區塊的數目,但此 98673.doc -35- 1280581 範例中未將個別的邏輯群組映射到個別抹除區塊。而是, 儲存資料,以將每一邏輯群組1510至1512之一部分儲存於 適應性元區塊1541之每一抹除區塊1531至1533中。 圖1 5B更詳細地顯示適應性邏輯區塊丨52〇至記憶體陣列 之映射。圖1 5B顯示如何將來自邏輯群組丨5 1 〇的區段程式化 於5己fe體陣列中。遮輯群組1 5 10包含η個資料區段。記惊體 陣列之平面0至4各寬四個區段。在某些記憶體架構中,平 行地程式化橫跨一陣列之一平面而延伸的四個區段。因 而,四個區段形成一頁面,其係該陣列之程式化之最小單 位。區段通常按順序到達,並且可在寫入陣列之前儲存於 暫存器中。可平行地程式化適應性元區塊之所有抹除區塊 中的區段。因而,例如,可平行地程式化區段〇至丨丨。接著, 可平行地程式化區段12至23。此操作繼續進行,直至已程 式化邏輯群組1510中的所有區段。接著,輪流程式化邏輯 群組 15 11、1 5 12。 圖15 C颁示藉由記憶體陣列中的三個抹除區塊所形成的 適應性元區塊。記憶體内區段的配置係類似於圖丨5B中所示 者,其中數目η等於32。然而,因為32無法被3除盡,故邏 輯群組中的區段操法均勻地分佈於抹除區塊1 $ $ 1至1 $ $ 3之 間。第一邏輯群組由區段〇至3 i所組成。此等區段分佈如 下.十二個區段在抹除區塊1 5 5 1中,十二個區段在抹除區 塊1552中,八個區段在抹除區塊1553中。將第二邏輯群組 之苐區#又〇程式化於抹除區塊1553中。因而,可不同地程 式化邏輯群組,並且可在不同的抹除區塊中起始邏輯群 98673.doc -36- 1280581 組。可平行地程式化來自不同邏輯群組的區段。例如,可 平行地程式化來自第一邏輯群組的區段24至3 1以及來自第 二邏輯群組的區段q,至3,。 圖1 5D顯示平行地加以程式化之兩個元區塊。抹除區塊 1 561與1 562形成適應性元區塊1 565,並且抹除區塊1 563與 1564形成適應性元區塊1566。適應性元區塊1565與1566各 由兩個抹除區塊所組成,因此各適應性元區塊1565、1566 包含兩個邏輯群組之資料。適應性邏輯區塊1565包含邏輯 群組1571與1572。適應性邏輯區塊1566包含邏輯群組1573 與1574 °說明邏輯群組1571與1573之區段之程式化。平行 地程式化邏輯群組1571與1573。因而,在記憶體陣列的第 一舄入期間’來自邏輯群組1571的區段1至8可與來自邏輯 群組1573的區段1’至8,同時加以程式化。隨後,區段9至16 可與區段9’至16’同時加以程式化。此操作繼續進行,直至 已程式化邏輯群組1571與1573中的所有區段。接著,類似 地程式化邏輯群組1 572與1 574。 圖1 5E顯示平行地加以程式化之三個適應性元區塊。元區 塊1590包含四個抹除區塊,元區塊1591包含一抹除區塊, 而元區塊1592包含三個抹除區塊。平行地程式化元區塊 1590至1592。因為元區塊1590至1592包含不同數目之抹除 區塊,故在每一元區塊1590至1592中以不同方式對準資 料。圖15E顯示元區塊159〇至1592内頁面的對準。一頁面可 能係作為一程式化單位而加以程式化之單一區段、四個區 段或某一其他數目之區段。平行地程式化位於圖15E中相同 98673.doc -37- 1280581 水平面上的不同抹除區塊中的資料頁面。例如,平行地程 式化元區塊1590之頁面12至15、元區塊1591之頁面3以及元 區塊1592之頁面9至11。 圖15F顯示更新資料之一範例,其中已更新資料之第一區 段非為邏輯群組中的第一區段。已更新資料丨5 82中的第一 區段具有邏輯位址13。邏輯群組1580係由具有邏輯位址! 至16的區段所組成。已更新資料1582包括來自至少兩個邏 輯群組之區段,並且選擇兩個抹除區段之適應性元區塊尺 寸來儲存包含已更新資料1582之前兩個邏輯群組。選擇抹 除區塊1585與1586來儲存包含已更新資料1582之前兩個邏 輯群組。將已更新資料1582的第一區段(其具有一邏輯位址 13)寫入抹除區塊1585中的第一位置。將具有邏輯位址14的 區段寫入第二位置,直至寫入邏輯群組中的最後區段,即 具有邏輯位址16的區段。然後將來自邏輯群組丨5 80的未更 新資料複製到記憶體陣列中。因而,邏輯群組中的第一區 段與適應性元區塊中所儲存的第一區段之間會有一偏移。 可以正常方式寫入下一邏輯群組的第一區段,使得在一適 應性元區塊内,可以不同的偏移寫入不同的邏輯群組。因 而,具有邏輯位址1,的區段係更新邏輯群組1581時的第一區 段。 圖1 6顯示用於根據邏輯群組記錄記憶體陣列内之資料位 置的表格,其中適應性邏輯區塊16 1 〇儲存於一適應性元區 塊1 620中。行1指示每一個別邏輯群組的識別項。此係獨特 地識別一邏輯群組之邏輯位址。一般按順序列出邏輯群 98673.doc •38- 1280581 組。行2指示其中儲存有邏輯群組之適應性元區塊之尺寸。 該尺寸簡單地係適應性元區塊中抹除區塊的數目。此處, 元區塊由二個抹除區塊所組成,因此對於所有的邏輯區 塊’尺寸係二。行3給出適應性邏輯區塊内邏輯群組的群組 編號N。根據遴輯位址範圍按順序對邏輯群組編號。因此, 避輯群組L1具有N=1、L2具有N=2以及L3具有N=3。行4給 出適應性遴輯區塊中第N個抹除區塊的位置。此可能係抹除 區塊之貫體區塊編號(PBN)。因為適應性邏輯區塊中邏輯群 組的數目等於適應性元區塊中抹除區塊的數目,故可藉由 針對每一邏輯群組記錄一抹除區塊位置而形成一適應性元 區塊之抹除區塊之位置的完整記錄。 作為記憶體系統之媒體管理之部分,可將特定邏輯群組 之位置之表格保存於揮發性或非揮發性記憶體中。媒體管 里系、、先可具有各種記錄可用抹除區塊之位置與邏輯至實體 貝料映射之表格。一媒體管理器管理媒體管理系統之表 格。一般而言,一媒體管理器係實施於一控制器中的一韌 體中。 圖17顯示媒體管理器之範例。類似於圖17所示者之媒體 管理t之操作係說明於美國專利申請案第10/750,155號 中,標題為「具有區塊管理系統之非揮發性記憶體與方 法」,Bennett等人於湖年12月3〇日申請,該申請案係以引 ^方式全文併入於此。該媒體管理器包括一適應性元區塊 官理器、一區塊配置管理器與一位址表格管理器。此等三 個官理器及其相關表袼與適應性元區塊之管理特別相關, 98673.doc 1280581 將予以進一步說明。 適應性元區塊管輝 —" 里w决疋右人組合以形成一適應性邏輯 &塊之邏輯群組的金 的數目’因而決定適應性元區塊中抹除區 塊的數目。如專总丄 ’、仅主機接收資料,則此決定可能係基於 ^因素。可評估來自主機的命令序列,並且可根據目前 σ、°ρ令或主機命令的歷史評估來決定適應性元區塊尺寸。 可加以評估的目前命令之特徵包括邏輯位址、命令區段計 數、與棺H統叢集⑽如DOS叢集)之對準、與先前命令的 邏輯關係以及相對於檔案系統區段之位址。亦可考慮相對 於藉由一連續類型之更新區塊所管理的位址範圍之位址。 歷史操作的特徵可包括用於連續資料之串流之主機命令序 列、用於完整槽案之主機命令結構、頻繁更新的邏輯位址 乾圍之記錄以及最近寫入的連續資料之最終位址。適應性 元區塊管理為、可根據一適當的主機介面協定,與主機建立 一對話’以存取資訊,其允許決定適當的元區塊尺寸。 如果重新定位資料,適應性元區塊尺寸可基於包含重新 定位資料之邏輯群組之數目。如果將控制資料儲存於適應 性元區塊中,則可根據欲儲存的資料類型來固定適應性元 區塊尺寸。可根據使用大適應性元區塊所獲得之增加的平 行性與使用較小適應性元區塊所獲得之減少的廢料收集之 間的平衡來決定適應性元區塊尺寸。一旦適應性元區塊管 理器決定所需抹除區塊的數目,便將對該數目之抹除區塊 的請求傳送至區塊配置管理器。 一區塊配置管理器從記憶體陣列的分離平面選擇抹除區 98673.doc -40- 1280581 塊。可根據平面中可用抹除區塊的數目來選擇平面。如果 使用各種尺寸的適應性元區塊,可將平面填充到不同㈣ 準。因而’某些平面可變滿,而其他平面仍具有可用的抹 除區塊。如果發生此種情況,將使該陣列的一平面不可用, 亚且相應地限制平行性。為了防止或延遲此種情況發生, 當指派抹除區塊以形成一適應性元區塊時,一區塊配置管 理器賦予包含少量可用抹除區塊的平面低優先權,而賦予 包含大量可用抹除區塊的平面高優先權。仍忙於先前操作 的平面可能亦被賦予低優先權。如果使用比從一平面向另 一平面重新定位更有效的方式將資料重新定位於一平面 ^,則可賦予具有用於重新定位之資料的平面高優先權。 區塊配置管理器從一配置區塊列表(ABL)選擇可用的抹除 區塊。 圖18 A顯示用於適應性元區塊的已抹除區塊管理階層。在 從適應性元區塊管理器接收到配置特定尺寸之元區塊的請 求之後,區塊配置管理器從分離的平面選擇抹除區塊,並 更新相關的控制結構以將區塊鏈接成一元區塊。藉由一根 據預定標準之演算法來選擇從中使用已抹除區塊的平面。 賦予包g較少已抹除區塊的平面低優先權。仍忙於先前操 作的平面被賦予低優先權。如果平面的選擇將使資料能夠 在平面内複製而非從另一平面複製,則賦予平面高優先 柘。在某些架構中,此一平面内複製可能係更有效的。 針對陣列的每一平面而分別管理已抹除區塊。當選擇一 平面日守’可選擇來自該平面的任何抹除區塊以形成一適應 98673.doc 1280581 而將:Γ部分。一般而言,從列表的頂部選擇抹除區塊, 所可料抹除區塊添加至列表的底部。藉由圖18Α 2不的列表階層來管理抹㈣塊。—個別的抹除區塊一次 僅可出現於一列表中。不良區塊不出現於任何列表中,因 而不用於資料儲存。藉由在列表之間移動已抹除區塊位 址:可貫穿整個記憶體陣列而分佈寫入/週期計數。此提供 磨知平衡,其減小個別抹除區塊失效的危險。 _配置區塊列表(ABL)181G係從中選擇已抹除區塊以形成 —區塊之已抹除區塊位址之短列表。因此,0係位 於列表階層之頂部。在ABL1810之内,針對記憶體陣列之 各平面而保持單獨的攔位。一般而言,ABL 1810係保持於 諸如控制器RAM之類的非揮發性記憶體中。然而,亦將_ 田1J本保持於非揮發性記憶體中。 每當形成一適應性元區塊並且從ABL 1 8 1 0中移除用於形 成該元區塊的已抹除區塊時,將ABL 1810的一副本寫入曰 諸18 13°因而,有規則地更新日誌1813中abl 18 10的副本。 當透過抹除操作而使已抹除區塊變為可用時,將其添加至 ABL 1 8 1 0中與包含抹除區塊之平面對應的攔位。在斷電之 後,可藉由從日誌1813複製而恢復ABL 1810。然而,日諸 副本可能不是最新的,因為從上一次複製至日誌丨8丨3以 來’已添加已抹除區塊至ABL 1 8 10。可從其他資料結構容 易地識別此類已抹除區塊。明確言之,日誌1 8 13包含已配 置元區塊之記錄。已配置之元區塊係其中的資料正在由主 機加以更新的元區塊或適應性元區塊。因而,當首次加電 98673.doc -42- 1280581 牯,可掃描原始元區塊之每一抹除區塊之第一區段,以決 疋疋否已抹除原始元區塊之抹除區塊。如果抹除區塊已被 抹除,則將其位址添加至ABL。將位址資料保持於日誌 中,作為起始的邏輯群組位址,其係使用圖16所示的格式 加以串接’該格式具有用於元區塊尺寸、群組編號與區塊 位址的項目。因而,可在斷電之後容易地重建ABL· 18 10的 完整副本。日誌亦可包含抹除區塊的列表,該等抹除區塊 具有已完全過期的可用於抹除的資料。 可藉由從已抹除區塊列表(EBL)18U移動預定數目之區 塊位址而初始化ABL 181〇。可藉由從對應的ebl欄位移動 位址而初始化ABL的每一攔位。例如,可將ABL攔位填充 至其容量的一半。當需要一區塊用於配置給一元區塊時, 使用相關ABL攔位中的第一區塊,並且從ABL移除其位 址。當在廢料收集期間抹除一區塊時,可將該區塊添加至 相關ABL欄位的結尾。 亦可使用來自EBL 1811的已抹除區塊位址來重新填充 八31^1810。其在入3]:1810為空時可能係必要的。當八81^ 1810的欄位為滿或空時,可在ABL 1810與EBL ΐ8ιι之間交 換已抹除區塊位址。可僅針對一欄位(陣列之平面)或針對所 有欄位完成交換。該交換可能包括加滿ABL 181〇,或可能 包括ABL 1810中所有項目的完整交換。可藉由攔位變滿或 變空來觸發交換,或可藉由另一事件或週期性地觸發交換。 一般將EBL 1811保持於非揮發性記憶體中所保存的區段 中。其包含一已抹除區塊列表,該列表對於該陣列的每一 98673.doc -43- 1280581 平面具有單獨的攔位。其具有舆ABL丨8丨〇相同的格式,因 而可容易地在EBL 1811與ABL 1810之間交換項目。因為作 為單區&將EBL 1 811保持於非揮發性記憶體中,故可快 速存取與更新EBL 1811,因而促進EBL 1811與ABL· 1810之 間的父換。當ABL為滿或空時,可發生EBL與ABL之間的位 址父換。或者,交換可能頻繁地發生,以避免記憶體陣列 中特定位置的頻繁使用。EBL 1 8 11中的位址可與ABL 1 8 1 0 交換,亦可與平面區塊列表交換。 可將一 EBL區段保持於僅含EBL區段的ebl區塊中。圖 18B顯示具有多個Ebl區段的EBL區塊1801。當改變EBL資 料時,寫入一新的EBL區段,並且舊的EBL區段變為過期。 因而,過期區段1803包含EBL之不再有效的先前副本。僅 最後寫入的EBL區段1 802才有效。EBL區段亦可包含每一 EBL欄位中列出的抹除區塊的計數。此等計數可用作形成 適應性元區塊時選擇平面的一因素。亦可將此等計數的副 本保持於日誌1 8 1 3中。 可針對陣列的每一平面,將諸如PBL 18 12之類的平面區 塊列表(PBL)保持於非揮發性記憶體中。pbl 18 12係記憶體 陣列之特定平面中之抹除區塊之一列表。列示於ABl 1 8 1 〇 或EBL 1811中的抹除區塊未列示於pbl 18 12中。PBL 1812 "T佔據一區段’不過該區段未必係滿的。一般而言,將p b L 一起群聚於一PBL區塊或多個PBL區塊中。PBL區塊係僅含 PBL區段的專用區塊。當PBL區段中的資訊發生變化時,可 將已更新的版本寫入PBL區塊中的下一位置。將舊的區段 98673.doc -44 - 1280581 標記為過期。對於一特定的平面,僅有一有效的pbl區段 存在於一特定的PBL區段中。然而,如果pbl區段係在不同 的PBL區塊中,則對於一特定的平面,可能存在兩或多個 有效的PBL區段。一PBL區段具有兩個欄位,即定義抹除區 塊之位置的一組項目與列出PBL區塊内所有有效PBL區段 之位置的區段索引。定義抹除區塊之位置的項目不一定具 有任何特定的次序。項目的次序可能係與對應Ebl欄位交 換的結果。僅最後寫入之PBL區段的索引才有效。在一部 分寫入之記憶體中,有許多的已抹除區塊,因而有許多pbL 區段需要許多PBL區塊。然而,當填充記憶體時,已抹除 區塊的數目減小,並且所需PBL區塊的數目減小。在邏輯 上填滿的記憶體系統中,可能無PBL區塊。PBL 1 8 12與EBL 之間的位址父換係類似於EBL與ABL之間的位址交換。該交 換可能係單向或雙向的。如果使用多個pbl區塊,則一 pbl 區塊可能係用於交換的活動區塊。可週期性地改變活動 PBL區塊。可作為一後臺操作而從單一 pbl區段更新ebl 1 8 11中的欄位。 圖1 8C顯示用於一使用適應性元區塊之記憶體系統中的 位址轉換資訊之位址表格管理階層。當根據資料更新演算 法將貧料區段寫入記憶體陣列中時,位址表格管理器更新 位址表格管理階層中的相關控制資料結構,以產生邏輯至 貫體映射之非揮發性記錄並允許記憶體陣列中任何區段的 快速轉換。可藉由從非揮發性記憶體中讀取單一區段而決 定任何區段的實體位置,藉此達成快速轉換。如果在非揮 98673.doc -45- 1280581 發性記憶體中尚未更專 決定實體位置。因為==則可從揮發性ram快速 一 〜、應性70區塊的尺寸與組態可變,故 如杲一元區塊中此_ 7 ^ 颌了抹除區塊的位置未儲存於非揮發性 記憶體中,則將難以恢禮 疢设忒寻位置。因此,將一元區塊之 抹除區塊之位置儲存於非揮發性記憶體中。 在圖18C之階相部係寫人區段列表(魏)⑻4。一般將 佩1814保存㈣如㈣請Μ之類的揮發性記憶體 中WSL 1 8 14識別猎由一主機而與連續寫入串流相關聯的 區段或從非揮發性記憶體中的另—位置重新定位的區段。 對於每-主機寫人串流,存在_單獨的觀。當將一元區 塊配置用於來自主機的—新寫人串流時,開放佩。肌 可能具有簡化的形式,例如起始位置及所寫入區段的數目。 日誌1813在WSL 1814之下。日諸1813儲存配置用於儲存 WSL1814中列出之區段之適應性元區塊之累積列表。日諸 1813亦包含其被更新時所有WSL的副本。無論何時配置一 兀區塊時,更新日誌1813。日誌1813可能包含於一日誌區 塊内的日誌區段中。當日誌1 8 i 3中的資訊發生變化時,將 新的日諸區段寫入日誌區塊中下一可用的位置。先前的曰 諸區段變為過期,僅最後寫入之日誌區段才有效。在曰誌 1 8 13之下係暫時群組位址表格(TGat) 1 8 1 5與群組位址表格 (GAT) 1 8 16。GAT 1 8 16係儲存於非揮發性記憶體中之區段中 之位址表格,其包含以邏輯群組位址次序按順序配置的每 一邏輯群組之實體位址。因而,GAT中的第η個項目係關於 具有邏輯群組位址η的邏輯群組。儲存於GAT 1 81 6中的位址 98673.doc -46- 1280581 資料係採用圖16所示的格式,其具有用於元區塊尺寸、群 組編號與區塊位址的項目。 可將GAT區段儲存於一專用GAT區塊中,該專用GAT區塊 具有用於一組邏輯上鄰近之邏輯群組之項目。將一 G AT區 塊分成兩個分區’即G AT分區與T G AT分區。G AT分區對於 G AT區塊之邏輯位址範圍中的每一邏輯群組包含一原始項 目。TGAT分區包含格式與GAT區段相同的區段。在更新GAT 之前,使用TGAT區段來更新位址資料。週期性地重新寫入 ,區塊中的G AT分區,以併入T G AT分區中的區段中所記錄 的更新。TGAT區段暫時取代GAT中的對應區段,以更新位 址資訊。TGAT區段包含有效TGAT區段的索弓丨。此索引在 最後寫入之TGAT區段中才有效。GAT不需要此類索引。 TGAT區段使用來自與WSL相關之日誌的位址資訊更新 GAT區段。接著將WSL與日誌項目刪除。 可從列表1814至1816決定具有特定邏輯位址之資料區段 之實體區段位址。首先讀取WSL,以決定最近是否已寫入 區段。若如此,根據與WSL中區段的位置對應的元區塊位 址找出實體區塊位址。如果WSL中未找到區段,則讀取 TGAT區段中的索引,以決定該區段是否具有一 TGAT項 目。若如此,可藉由讀取適當的TGAT區段來決定實體區段 位址。如果WSL或TGAT中未列出區段,則讀取適當的GAT 區段,以決定其實體位置。可執行控制器SRAM中日誌、 TGAT與GAT項目的預看快取,以便在按連續位址次序寫入 或讀取資料時縮短位址轉換時間。 98673.doc -47- 1280581 圖18D顯示用於營採p 4士 、 已抹除區塊與位址轉換之資料結 構除了上述列表之外,顯示區塊位址MU與啟動區塊 182\區塊位址1821形成儲存控制資料結構之所有抹除區 兔之貝to位址之列表。可使用專用的區塊位址(ba)區塊來 =存包含區塊位址刪的BA區段。當控制區塊之位置發生 艾化守寫入新的B A區段。將先前的b A區段標記為過期。 因此,僅最後寫入的BA區段才有效。 啟動區塊1820係包含啟動區段之專用區塊。當啟動區段 中的資訊發生變化時,寫入新的啟動區段。僅最後寫入的 啟動區&才有效。啟動區段182〇具有固定的實體位置,並 且係藉由在系統初始化期間掃描而加以識別。因為啟動區 塊的位置係固定於一範圍内而非一精確的位置,故掃描可 能係必需的。此係要考慮不良抹除區塊的可能性。啟動區 塊的位置可固定於狹窄的範圍内,故可快速地完成該掃 描。啟動區段包含區塊位址丨82丨的位置以及可能需要的任 何其他系統組態資訊。因此,在初始化之後,可快速地重 建圖18D中的資料結構。啟動區塊182〇具有固定位置並指示 區塊位址1821的位置,其指示所示資料結構之位置。 上述特定的資料結構使用專用的區塊,例如Ebl區塊、 PBL·區塊與GAT區塊。此類專用的區塊可能係記憶體陣列的 單一抹除區塊,或可能係包含多個抹除區塊之適應性元區 塊。使用適應性元區塊的一優點係,所用適應性元區塊的 尺寸可調整到欲保存的資料量。例如,當一記憶體具有大
量的已抹除區塊時,可能會有大量的PBL區段,因此大PBL 98673.doc -48- 1280581 區塊可能係適當的。 區塊的數目較少,因 區塊可能係適當的。
當記憶體陣列填充有資料時,已抹除 而PBL區段的數目較少,並且較小pBL 如果將小於最大尺寸之適應性元區塊用於控制資料,則 可與其他資料平行地程式化控制資料。當從主機傳送欲程 式化的資料至記憶料列時,此難式化可使控制資料能 與主機資料的程式化同時加以更新。因此,更新控制資料 時不會中斷主機資料的程式化,不過,由於可用於主機資 料程式化的平行性降低,故可能會降低程式化的速度。因 此’圖15D、15E與15F中所示平行程式化的範例可應用於 平行地程式化控制資料、複製資料與主機資料之組合。如 果將主機資料程式化延遲到已程式化控制資料,則此可避 免在其他記憶體系統中觀察到的延時。
非揮發性RAM 特定的非揮發性記憶體結構使得能夠以隨機方式存取資 料。其與快閃記憶體相反,其中按最小的單位頁面寫入資 料,並且按最小的單位抹除區塊抹除資料。非揮發性隨機 存取記憶體(NVRAM)的範例包括磁阻性rAm(mraM)、鐵 電RAM(FeRAM)以及相位變化記憶體(亦稱為奥弗辛斯基 電效應統一記憶體或0UM)。可將NVRAM用作亦使用快閃 把憶體之記憶體系統之部分。NVRAM可位於一單獨的晶片 或了將其併入到一控制器晶片或一快閃記憶體晶片 上。NVRAM可為一快閃記憶卡之部分或一嵌入式快閃記憶 體系統。可將NVRAM用於許多與非揮發性ram相同的應 98673.doc 1280581 用其優點為斷電不會使儲存於NVRAM中的資料遺失。例 如’可將㈣管理表袼保存於NVRAM中。 圖,員不位於纪憶體系統1900上的NVRAM 1901。可將 记丨思體系統1900實施於一可移除的記憶卡中。可將請趙 1901用作—緩衝器’用於緩衝從主機觸接收到的資料。 糟由在將資料程式化到快閃記憶體陣列i9iG之前緩衝資 呌可將σ己隐陣列1910之適應性元區塊配置為較佳地適 配所接收到的資料。在圖以、12β與i2c中所示的先前範 ϋ中Ik後將儲存於記憶體陣列之元區塊中的資料複製至 車乂仏地配置用於该貧料的元區塊。藉由使用—肩m緩衝 可使得彳之丨夬閃5己丨思體之一部分至另一部分之此種複製 得以避免或減至最少。 圖20顯示如何將適應性邏輯區塊配置為反映最初儲存於 NVRAM中的資料串流之邊界之範例。將已從主機接收的資 料串抓2001與2002儲存於NVRAM中。資料串流2〇〇1與2〇〇2 在遨輯上係不連續的。因此,在邏輯位址範圍中,於資料 争流2001與資料串流2002之間有一間隙,指示其係不同的 串流,應予以不同地處理。亦可藉由串流之間的時間延遲 或來自主機的指示串流之間斷開的特定通信來區分不同的 串流。 資料串流2001具有在五個邏輯群組2010至20 14上延伸的 邏輯位址範圍。資料串流2002具有在七個邏輯群組2〇17至 2023上延伸的邏輯位址範圍。由邏輯群組2〇1〇至2〇14來形 成適應性ill輯區塊2030與2031。由邏輯群組2Q17至2023來 98673.doc -50- 1280581 形成適應性邏輯區塊2032與2033。配置適應性邏輯區塊 2030至2033,以允許在將資料串流2〇〇1、2〇〇2程式化到快 閃記憶體陣列2040之程式化期間,允許最大的平行性。快 閃記憶體陣列2040具有四個平面,因此適應性邏輯區塊具 有四個邏輯群組之最大尺寸。適應性邏輯群組2〇3〇與2〇33 各由四個邏輯群組所組成,並且可個別地使用最大的平行 f生加以私式化。可使用最大的平行性,平行地將適應性邏 輯區塊203 1、2032—起加以程式化。如果資料串流對 應於特定的主機檔案,並且資料串流2〇〇2對應於不同的主 機檔案,則有利的係將兩檔案保存於不同的適應性元區塊 中,以便分別更新該等檔案,使資料複製的數量最小。因 此,用於包含資料串流的邏輯區塊的邊界盡可能地匹配資 料串流的邊界。可藉由其他資料串流使資料串流2〇〇1與 2002在遴輯位址空間中分離。藉由將數個資料串流保持於 NVRAM中,可比較數個資料串流的特徵,以決定將資料串 流中的資料程式化到快閃記憶體陣列2〇4〇之最佳方式。可 將圖20的範例實施於圖19中所示的硬體中,其中將資料串 , 2002儲存於NVRAM 1901中,並且記憶體陣列2040 對應於快閃記憶體單元陣列1910。 圖21顯示NVRAM之另—應用。記憶體系統可整合 NVRAM與快閃記憶體,以便根據資料的性質將資料儲存於 兩類錢體之任—類記憶體中。例如,可將頻繁地加以更 料儲存於讀趙中。可將NVRAM配置為像快閃記 丨 认使用。如果快閃記憶體具有特定的抹除區塊尺 98673.doc -51 - 1280581 寸,則可將NVRAM配置為以相同尺寸之資料單位來操作。 •圖21頒示儲存於NVRAM中的已更新資料2140。由包含來 自原始資料串流2105之原始資料的邏輯群組211〇至2121形 ’ 成適應性邏輯區塊2130至2132。將適應性邏輯區塊2130至 2 13 2程式化到g己憶體陣列(未顯示)。從主機接收已更新的資 料2140 °如上所述,可在更新期間將已更新的資料儲存於 新的適應性邏輯區塊中,以使一或多個適應性邏輯區塊包 含已更新的資料’而其他適應性邏輯區塊則僅包含原始的 資料。由已更新的資料2140與來自原始資料群組211 5、211 6 _ 之某些原始資料形成邏輯群組2125、2126。由邏輯群組 2125、2126來形成適應性邏輯區塊2135。由適應性邏輯區 塊2131中的其餘邏輯群組來形成適應性邏輯區塊2136、 2137。因而,適應性邏輯區塊2131係由僅包含原始資料的 適應性邏輯區塊2136與2137以及包含已更新資料之適應性 邏輯區塊213 5所取代。 將適應性邏輯區塊213 5儲存在NVRAM中,而非快閃記憶 體陣列中。此允許有效地更新適應性邏輯區塊2135。一般 ® 而言’可以高於使用快閃記憶體所能達到者的速度寫入 NVRAM。可按非連續的次序寫入資料,並且不具有廢料收 集。媒體管理器可以類似於快閃記憶體的方式來處理 NVRAM。將NVRAM分成尺寸與快閃記憶體之抹除區塊相 . 同的可定址單位。可平行地程式化可定址單位。記錄邏輯 , 群組2125、2 126之位置的表格簡單地記錄NVRAM中可定址 - 單位的位址。如果隨後更新的資料具有與已更新資料相同 -98673.doc -52- 1280581 的邏輯範圍,則可快速執行此等更新,而無需將資料從快 閃5己體的一部分複製到另一部分。可從nvram將適應性 it輯區塊213 5重新定位到快閃記憶體。例如,當中 無足夠合里可用於另一目的時,可將來自適應性邏輯區塊 2135的資料&NVRAM移動至快閃記憶體,以產生可用的 NVRAM容量。 適應性邏輯區塊2136與2137均僅具有一邏輯群組。可配 等k輯群組’以开》成新的適應性邏輯區塊213 8213 9。 適應性邏輯區塊2138、2139係大於適應性邏輯區塊Μ%、 2137並且可允許更有效的資料處置。 資料邊界 ,π邊界了存在於由§己憶體系統所接收的資料中。資料 =(料邊界)的範例包括資料執行邊界與㈣邊界。一般 ^ 將主機檔案儲存為一或多個資料執行。一資料執 Π:主機配置用於檔案儲存的-組邏輯上鄰近的區段。 貝料執行指派給邏輯位址空間中不包含有效資料 分。圖2 9 - 料執彳- 案,即檔案八與檔案B。檔案A包括資 與資:二:料執行3舆資料執行5。槽案B包括資料執行2 案時主機開始在緊鄰另一播案之結尾的一位址處寫入—槽 執行内建立1個檔案邊界。因此,一檔案邊界可位於一資料 間的2圖23顯示在單一資料執行中所寫入的檔案°與〇之 田萊邊界。 身曼 、 。,當使用適應性元區塊的記憶體陣列接收到資 98673.doc 1280581 料時,用於儲存資料之適應性元區 臾n 、、”構不考泠資斜旛 界的位置。此可能係因„ /Μ 為有日守間約束強制將資料快速寫入大適應性元區塊中。·當 更新儲存於此一記憶體陣列中的資料時, 田 原始的元區塊複製到新的元區塊、-制μ ” 1貧料從 的4塊。稷製此類資料會減小用 %焉入新資料之記憶體系統容量。一 中徭帝„ 般而㊁,在給定操作 肀僅更新一逛輯檔案。如果一 I應f生70 &塊包含一個以上 私木之部分,則必須將額外的槽案部分複製到新的適應性 兀區塊。此類部分之複製可發生於廢料收集期間,並且可 用盡大量資源。因&,包含資料邊界的適應性元區塊當被 更新時會引起不想要的負擔。 可藉由在程式化期間最大化平行性同時使記憶體陣列内 之資料的複製減至最少,而達成高性能。可藉由平行地程 式化適應性元區塊以達成高平行度,以及藉由形成最小尺 寸之適應性邏輯區塊(元群組)來包含資料邊界,而達 兩個目的。可將適應性元區塊形成為作為一單位加以更新 的「程式化區塊」。一程式化區塊係最大平行程式化之單 位。因而,一程式化區塊係由橫跨記憶體陣列之所有平面 而共同延伸之適應性元區塊所組成。圖24顯示用在此一記 憶體糸統中的資料單位之階層。 圖25與26中顯示形成最小尺寸之元群組以包含資料邊界 之範例。圖25顯示各係儲存於一最小尺寸之元群組中的兩 個貧料執行邊界。主機區段資料執行25丨〇從邏輯位址A延伸 至避輯位址A+4n+X。因而,一資料邊界252〇存在於邏輯位 98673.doc -54- 1280581 址A+4n+X。邏輯位址A+4n+X係在邏輯群組253〇内。带成 元群組B以包含資料邊界2520。元群組b係僅包含單一邏輯 群組之最小尺寸之元群組。將主機區段資料執行251〇的其 餘部分包含於元群組A中。元群組A非為最小尺寸之元群 組,但包含四個邏輯群組。圖25亦顯示從邏輯位址β+γ延
伸之主機區段資料執行25 11。因而,一資料邊界形成於邏 輯位址Β + Υ。邏輯位址Β+Υ係在邏輯群組2531内。形成元群 組C以包含資料邊界2521。元群組C係僅包含單一邏輯群組 之最小尺寸之元群組。將主機區段資料執行2511的其餘部 分包含於元群組D中。元群組D具有兩個邏輯群組,並且非 為最小尺寸之元群組。當隨後更新主機區段資料執行251〇 與25 11時’可以不存在於已更新資料執行中之額外資料之 少量複製來完成此操作,因為僅元群組B與c包含額外的資 料,並且此等群組各包含少於一邏輯群組之額外資料。
圖26顯示被映射至最小尺寸之適應性元群組之檔案261〇 與仏案2611之間的權案邊界2615。在邏輯位址Α+4η+Χ處顯 不槽案邊界2615。檔案邊界2615係位於主機區段資料執行 2605中。邏輯位址α+4π+Χ發生於邏輯群組2630内。元群組 Bk由邏輯群組263〇所形成。元群組a係由槽案261〇的其餘 #刀所形成。元群組c係由檔案2611的其餘部分所形成。可 藉由更新凡群組A與B來更新檔案261〇。因此,在檔案A之 更新期間’僅複製包含於元群組B中的檔案2611之一部分 2641 °同樣’可藉由更新元群組B與c來更新檔案B。此包 括僅複製儲存於元群組B中的檔案261〇之一部分264〇。 98673.doc -55- 1280581 可藉由記憶體系統根據供應至該 —次二丨立w , ^ ^己體系統的資料來決 疋1料邊界貧訊,或可直接將資料蠢 .^ m . 4, 邊界-貝訊供應至記憶體 糸統。例如,主機可供應資料邊界次 處艺二 . . 貝訊,其係關於主機供 應至纪憶體系統之資料。資料邊界 w λα 貝Λ可包括資料執行邊 界的位置或主機所供應的資料之内 」不田茶邊界。此類資料 邊界資訊通常係在包含邊界的資料 、、
,A ^ L 别灰供。如果元群組L
々取大尺寸係L個邏輯縣,料好在所提供資料前至少L 個逛輯群組提供資料邊界資訊。 主機亦可提供資料執行序狀結尾的通知, 立 他資料可用於立即寫入。此通知 ” ”…、 -λ- -r ^ 更"己1^體系統可安排後臺 二:可猎由主機來提供省電操作的通知。此一通知可 為爾作的部分。在記憶體系統對主機作出回應,以指 不其處於適合省電的狀況下 心 „ ^ ,, PI俊名電知作才會發生。在 啟動之後,主機與記憶體系、统之 ^ ^ ^ ^ ^ , 」钐生一對話,以使記 L、脰糸統可通知主機其能力, 处七 ,^ 主钱通知纪憶體系統其 訊的能力。 姿“使用如上所述之資料邊界資 除了從主機接收資料邊界資訊之外 統從其他來源決m两[ J猎由。己體糸 範圍導出:# + 更新的貝枓之 出貝㈣界位置。可從主機所提 識別資料執行的起& 貝独址直接 而假定資料執行…料執行的位址轉換 假定一樓案邊:、:尾。根據目錄的圖案及主機的FAT存取 資料與槽案邊界。’、可使用原始育料的元群組映射來推導 98673.doc -56· 1280581 資料邊界管理操作 在方案A中,將資料儲存於一對應於資料 中可藉由首先將4¾次’位置的組態 f光將此類貧料儲存於暫時位置中 映射至元君_組以儲;^ ^ & …、、負料 W存於快閃記憶體中而 器RAM來提供暫時的位 j猎由累積 的一都八十# 戍者,可猎由快閃記憶體陣列 勺 口 P刀來友:供暫時的位晋。闰Q 一 . 圖27頌不使用資料邊界管理 貧訊來配置資料之此等 ,&理 士田 1U曰代方案。方案A顯示儲存於靳 蚪累積器RAM中的資料,其在 、曰 -、牡便用貝枓邊界管理儲存 閃記憶體中之前進行元群組映 、、 ^ _方案_讀存於快閃記 心—、貝;、'、’其中在元群組重新映射之前具有中間元群 組映射,然後使用資料邊界管理儲存料閃記憶體中。 暫時累積器RAM可從主機接收資料區段,隨後傳輸該等 區段1便以資料邊界之位置所決定的方式在快閃記憶體 中進打平行程式化。累積器RAM可具有足夠的容量,以允 核存至4 -個程式化資料區塊。因此,可將累積器反趟 中的資料配置成元群組,然後可將該等元群組平行地程式 化於單一程式化區塊中。累積器RAM可為諸如nvram 1901之類的非揮發性記憶體。或者,累積,ram可為非揮 發性記憶體,在該情形下,如果在將資料程式化到快閃記 憶體之前,主機移除功率,則累積器尺八“會有資料損失的 危險。藉由在主機與記憶體系統之間具有一適當的協定而 管理此危險。 圖28A頒示一程式化區塊2800,其係由圖25所示的元區塊 A至D所組成。為獲得最大的程式化速度,最好將元區塊a 98673.doc -57- 1280581 至D—起程式化,因而使用記憶體系統之最大平行程式化容 夏。為獲得更新檔案時的效率,最好將元區塊3與〇保持為 各由一抹除區塊所組成的單獨元區塊。圖28A所示的資料組 態可達成此等二目的。作為兩個單獨的資料執行而從主機 接收資料區段,即從八至八+411+又的資料執行251〇以及從 B+y至B + 3n-l的資料執行2511。圖28β顯示如何將來自此等 貧料執行的資料區段程式化於元區塊入至D中。在此範例 中,一頁面包含單一的資料區段,不過在其他範例中,一 頁面可能包含多個區段。一程式化區塊橫跨記憶體陣列的 多個平面而延伸。在一程式化區塊内,可以元區塊組態所 決定的次序來程式化區段。如果一程式化區塊頁面係由來 自記憶體陣列之每一平面的一頁面所組成,則指示程式化 區塊頁面可平行地加以程式化。因此,程式化區塊頁面〇 杈跨圮憶體陣列的所有平面而延伸,並且在相同的程式化 步驟中將程式化區塊頁面0中的所有區段加以程式化。當已 將程式化區塊頁面〇程式化時,便將程式化區塊頁面丨程式 化,依此類推。圖28B中程式化該等區段的序列並非圖25 中所不從主機接收此等區段的次序。圖28C中顯示累積器 RAM中此等區段的次序變化。圖28c顯示保存於累積器 RAM中以傳輸用於程式化到程式化區塊28〇〇的資料執行 2510與資料執行2511。可如圖所示,將欲複製至程式化區 塊的資料寫入累積器RAM。將區段A+4n+X至A+5n-l與B至 B+Y複製至累積器RAM,以便可將其用於傳輸至程式化區 塊。或者’欲複製的資料可能已位於快閃記憶體中,並且 98673.doc -58 - 1280581 的不圖2δΒ之程式化區塊頁面g與程式化區塊頁 面1的£段映射。 健=?閃記憶體來提供從主機接收到的資料之暫時 =二:圖27中的方卽’則以包含各類元群組的中間 H :貝…可精由诸如貧料執行邊界或檔案邊界之類 的4邊界存在於最大尺寸之元群組之㈣位址範圍内, 亦精由在任何邏輯邊界之後傳輸其他資料之要求’而決定 此n组之尺寸。可使用以下五個元群組類型來以中間 形式儲存資料··完整元群組、部分元群組、短元群組、起 始元群組與多檔案元群組。 圖29A中顯示完整元群組29〇〇。如果在欲館存的資料中益 避輯邊界,或如果沒有關於所存在之任何邏輯邊界之可用 資afl ’則配置完整元群組。 圖29B中顯示部分元群組29〇卜如果邏輯邊界存在於欲儲 存的資料中,但在以中間格式程式化資料時需要最大平行 性’則可能配置部分元群組。邏輯邊界可能在程式化之前 係已知的(例如,來自主機)’或可能在程式化期間碰到。部 分元群組包含比-元群組中可能的最大數目要少的邏輯資 料群組。可將部分元群組程式化到最大尺寸之元區塊,以 便使用該陣列的所有平面平行地加以程式化,因此使程式 化盡可能快速。 圖29C中顯示短元群組29〇2。如果邏輯邊界存在於欲儲存 的貝料中,亚且不需要最大的平行性,則配置一短元群組。 98673.doc -59- 1280581 知^元群組具有比_元群組中可能的最大邏輯群組數目要少 勺選輯群組。可將一短元群組程式化到一元區塊,該元區 塊包含比最大尺寸之元區塊中所含要少的抹除區塊。儘管 用短元群組’可平行地程式化重新定位的資料,但資料 寫入頻寬會減少。當主機已指示其他資料將不會緊接著資 料執行邊界時,可使用短元群組。
圖29D中頦示起始元群組29〇3。配置起始元群組來將資料 儲存於貝料執行的起始邊界。如果資料執行的第一區段非 為遴輯群組的第一區段,則可使用對準偏移。可從另一位 複衣用於兀成第一邏輯群組的資料。如果在寫入期間碰 J邏輯迨界,則一起始群組亦可為一部分元群組。 a圖29E中顯示多槽案元群組29〇4。一多播案元群組包含一 木适界因而包含至少兩不同檔案的部分。一多槽案元 群組亦可為部分、短或起始元群組。
隨後當存在邏輯邊界時,可將如上所述中間格式之元 組中的資料重新映射至更理想的㈣。因為完整元群組 包含避輯邊界,則不需要重新映射。然而,可如圖30所: 重新映射^分、短、起始與多槽元群組。圖說顯示將部/ 兀群幻_重新映射至元群組A與元群㈣。元群組心 小尺寸之7"群組(―邏輯群組)。使用從原始區塊複製的] 枓來完成元區塊B。圖地顯示將短^群組3_ 元群組AM群組B。其類 ㈣約 一 貝似於;刀群組之重新映射。圖3〇| ^不將起始元群組3_重新映射至元群組A與元群㈣。迫 處,起始元群組3㈣具有一對準偏移。移除此對準偏移, 98673.doc -60- 1280581 使元群組A處於連續次序。圖遍顯示重新映射至元群組 A BMC之多檔案元群組3〇4〇。元群組b包含邏輯邊界 則。元群㈣係最小尺寸之元群组(―邏輯群組)。' 可分析中間格式的資料,以便在從主機接收到之後立即 進行重新映射。然而,資料的重新定位不會立即發生。而 是’可針對資料以及有關資料的資訊安排程式化操作,並 將已計劃的重新映射儲存於重新映射列表中。接著可在後 臺’在-更適當的時間’完成資料重新定位,或者可藉由 接收到㈣存資料範圍内已更„料之類的事件來觸^資 =重新定位。可將重新映射列表儲存於快閃記憶體中的適 資訊結構中,例如在曰誌中,或在專用的重新映射 群組 。此類 目可能
該重新映射列表對於每一最近寫入的中間格式 (對於該群組,一重新映射操作正待處理)具有一項目 l羊、、且般包含一貧料邊界。重新映射列表中的項 包含如下六個欄位: 元群組的類型(部分、短、起始或多檔案) 元群組中資料執行之起點之邏輯位址 元群組尺寸(元群組中邏輯群組的數目) 凡區塊尺寸(元區塊中抹除區塊的數目) 元群組内邊界的偏移 頁面標籤 當建立中間袼式的 當從該列表中刪除中 元群組時,將一項目添加至該列表。 間格式的元群組時,從該列表中移除 98673.doc -61 - 1280581 頁目田添加或刪除一項目時,可藉由將新的列表寫入
至新的位詈,如,A 例如新的日誌區段或新的重新映射區段,而 更新该列表。 重新映㈣表中的元群組映射不詩與相關資料有關的 7何媒體^理操作。媒體管理控制結構係關於配置用於暫 t儲存貝料的中間格式元群組。因此,可從重新映射列表 夕矛、員目而不會對其他媒體管理功能造成影響。例如, 如果積屋的待處理操作變為太大,則可刪除項目。其只是 會降低將貧料儲存於記憶體陣列中的方式之效率。 可安排從中間袼式程式化資料,使得不會減小供主機用 於寫入主機資料之寫入頻寬。在未從主機接收資料時,可 作為後臺操作而執行重新映射操作。可平行地程式化單一 2的所有重新映射元群組。可建立與主機的交握協 =以官理記憶體系統的省電狀況,以便在執行重新映射 :作4不會發生功率損失。可與原始主機資料之程式化平 行地執行重新映射操作。圖31顯示將來自主機315〇的資料 程式化到適應性元區塊311〇而將從記憶體陣列316〇重新定 位的資料平行地程式化到適應性元區塊312〇。由於此一平 行操作將減小用於寫入原始主機資料的寫入頻寬,故僅各 ^機^知記憶㈣統無進-步的原始主機資料可用於立^ 寫入日守此類平行程式化可能才是適當的。可回應於主機 更新而執仃重新映射操作。如果欲更新的資料採取中間格 式並且係列示於重新映射列表中,則可以重新映射格式^ 連同攸中間7L群組複製的資料,寫入已更新的資料。 98673.doc -62- 1280581 τ暫v重新映射操作,以允許對主機介面處的新交易提 ^回'。可在目前頁面程式化操作之後暫停重新映射操 ’在錢形下,隨後以下-頁面的重新程式化而恢復。 s者’如果晶片架構允許,可在程式化頁面的過程中暫停 重新映射操作,以便對主機作出快速回應。為了在頁面程 =期間暫停重新映射操作’可藉由向快閃記憶體晶片發 重a又命令來終止其在快閃記憶體令的執行。接著,晶 片可回應於新的主機交易而立即用於存取。隨後,可藉由 將已暫停頁面的相同資料重新傳輸至快閃晶片二一 程式化命令’而恢復重新映射操作。許多快閃晶片架構: 1 =開始程式化已部分程式化的頁面,只要資料圖案保 其中由主機提供邊界位置資訊之資料儲存 ―在一項具體實施例中,主機可為記憶體系統提供額外的 ^ ’其—可用於將主機f料更有效地儲存於記憶體陣列 中。此類資訊的一範例係所隹详 视例你所得运主機貧料中資料邊界(邏輯 輕)的位置。-般而言,應在傳送包含邊界的主機資料之 則提供貧料邊界的位置,以便當主機f料被接收到並且不 必先以中間格式儲存時,可以有效的方式儲存主機資料。 為了根«料邊界位置更有效地儲存主機㈣,在將資 料儲存於記憶體陣列之適應性元區塊中之前,緩衝某些資 料可能係有利的。可基於此目的而提供串列快閃缓衝哭。、 圖32顯示由來自已抹除區塊集區32〇4之抹除區塊所組成之 串列快閃緩衝器3202。可將串列快閃緩衝器遍中的抹除 98673.doc -63- 1280581 二塊配置為最大尺寸的適應性元區塊,像傳統的元區塊— 樣。此允許以記憶體陣列的最大平行性將資料程式化 ㈣閃緩衝器。如果將記憶體陣列分成平面,則其一般竟 味者串列快閃緩衝器的元區塊包含來自記憶體陣列之每二 平面之抹除區塊。因而,串列快閃緩衝器3202係由一或多 個緩衝器元區塊所組成,其一般係,但不一定係元區塊, 乂允彳以取大平仃性儲存資料。可用作串列快閃緩衝哭之 r^i^Mscratchpad)^Aj ^ 吴國專利申請案中,律師«號碼為SNDK.406US0,申請 日期與本申請案相同,以引用方式將其全文併入本文。月 一作為如上所述將資料直接儲存於記憶體陣列中之適應性 ^塊中的替代方案,可將主機資料傳送至串列快閃緩衝 為3如。_列快閃緩衝器可由記憶體陣列中的—或多個緩 衝态兀區塊所組成。'緩衝元區塊可能包含邏輯上不相關 的多個資料部分。由於邏輯邊界與緩衝器元區塊之元區塊 故"不匹配,故串列快閃緩衝器32〇2内的不同元區塊不具 有任何特別重要性。因&,連續資料的—部分可儲存於單 7G區塊中,或可儲存於多個元區塊中,並且一般與緩衝 m元區塊不對準。當從緩衝器元區塊複製資料時,可使緩 衝為70區塊中的資料變為過期。當緩衝器元區塊中的所有 貝料係過期時’可將包含緩衝器元區塊的抹除區塊返回至 已抹除區塊集區。因此,可視需|,由來自已抹除區塊集 區的抹除區塊形成緩衝器元區塊。接著,當其僅包含過期 貝料日T ’可抹除該等抹除區塊,並將其返回至已抹除區塊 98673.doc -64- 1280581 木區。串列快閃緩衝器32〇2形成一線性記憶體,其中將欲 儲存於串列快閃記憶體3202中的新資料寫入在緩衝器頂部 由來自已抹除區塊集區32〇4(來自配置區塊列表或類似的 、、口構)之鏈接區塊所形成的緩衝器元區塊中,並且將位於緩 衝器底部之緩衝器元區塊中的資料複製至已配置的適應性 兀區塊,以使位於緩衝器底部之元區塊中的資料變為過 期。將僅包含過期資料之緩衝器元區塊的抹除區塊返回至 已抹除區塊集區32〇4(至平面區塊列表或類似的結構> 緩衝 器元區塊可為固定尺寸的元區塊,或可為已個別選定之尺 寸之適應性凡區塊。對於某些範例,可將最大尺寸之元區 塊用作緩衝器元區塊,以提供高平行度。 圖3 A ,、、、員示將主機資料儲存於快閃記憶體陣列之已配置 適應性7L區塊中的兩種替代性路線。將資料直接寫入咖6 至已配置適應性元區塊33〇8中。或者,可將資料寫入MW 至串列快閃緩衝器3302的緩衝器元區塊3312,並將其從 、友衝态兀區塊3312複製33 14至已配置適應性元區塊3316。 將此等替代性路線中的哪種路線用於特定的資料可能取決 ^邏輯邊界的位置。特定言之,如果藉由主機提供邏輯邊 |勺位置可根據所提供的位置來決定應使用哪種路線。 如果一部分貧料等於或大於最大尺寸的元群組並且不具有 任何避輯邊界,則可將該部分資料直接儲存於已配置的適 應性兀區塊中。如有可能,可使用最大尺寸的適應性元區 塊來獲得最大的平行性。如果要儲存小於最大尺寸之元群 組的一部分資料,則可根據該部分的尺寸來決定使用哪種 98673.doc 1280581 ΛΑ 如果一部分資料具有邏輯邊界,則通常最好將其儲 存於最小尺寸之適應性元區塊中。可將此類資料部分儲存 於緩衝器元區塊中,隨後將其複製至已配置的適應性元區 Α 。此允許以最大的平行性從主機接收並最初快速地儲 f此類資料部分。隨後,可與其他資料平行地將此類資料 P刀複製至已配置的適應性元區塊,如圖33A中的與 所示,以便使用高平行度。因此,即使寫入最小尺寸 之適應性兀區塊,一般仍可避免以低平行度寫入資料。
圖顯不將緩衝器元區塊33 18中的資料複製3320至| Μ寸之適應丨生元區塊3322之另一範例,在適應性元區相 3322中,其與從原始適應性元區塊3328複製的資料3324 一 起儲存。此範例係包含邏輯邊界之最小尺寸之適應性元屈 ^的典型。由於邏輯邊界發生於適應性元區塊之邏輯㈣ 空間内的某處,故當更新邏輯邊界一側上的資料時,將已 更新的資料與某些原始資料都儲存於適應性元區塊中。
么圖34顯示使用串列快閃緩衝器之方案,即方㈣,其與先 二所述之方案Α與Β進行比較。方案_以某_中間格式儲 子戶^有接收到的資料(RAM中或快閃記憶體中),決定資料 白^欲(例如’邏輯邊界的位置),然後根據該等特徵將資料 儲存於快閃記憶體中。相反, 牡万木L中,k主機接收資料 二。此等特徵之接收允許根據該等特徵直接將資料儲 存;快閃記憶體中。然而,將某 了呆二貝枓儲存於緩衝器元區 鬼中,隨後根據該等特徵將 巾 /、叙衣3432至快閃記憶體 中進仃鍺存,以允許高速操作。因而,緩_元區㈣目 98673.doc -66- 1280581 的不同於RAM或方案之中間元群組之目的,並且將所 儲存的大部分資料直接寫入已配置的元區塊。 可在^料執行中更新資料,其中資料執行係由主機配置 的組邂輯上鄰近的區段,該等區段在配置之前片刻系間 置的,並且延伸於已配置的區段之間。因此,當主機將資 料配置給已配置的邏輯位址空間部分所界定的一閒置邏輯 :址空間連續部分時,形成一資料執行。纟某些系統中, 資料執行與元群組結構不對準,其會在資料更新期間引起 低效率。在此處所述的某些系統中,可藉由使元群組的尺 寸/、k ;ί位置(因而對應適應性元區塊的尺寸)適合資料,可 使貧料執行更好地與元群組對準。特定言之,可使用最小 尺寸兀群組來儲存包含邏輯邊界之資料部分。可藉由記憶 體控制器來決定資料執行邊界的位置。當從主機接收到與 最後接收到的資料不連續的資料時,可識別資料執行起始 處的貝料執行邊界。亦可藉由邏輯位址中的跳躍來識別資 料執行結尾處的資料執行邊界。此類跳躍之前的最後區段 可為資料執行的最後區段。然而,可能會有例外,其中從 主機接收到的區段中的邏輯位址跳躍係由於更新系統資訊 (例如FAT)或將寫入插入不同的資料執行。在某些系統中, 主機可以插入的方式寫入多個資料執行。一控制器可保持 多個開放貧料執行以處理此情況,因此如果接收到與開放 資料執行連續的資料,則將其視為該資料執行的部分。如 果其與開放資料執行不連續,則可將其新資料執行的起 點。在一時間週期之後、當資料執行的數目達到一限度時 98673.doc -67- 1280581 可藉由控制器關閉開放資料執 或回應於來自主機的信號 行。 ==示以非對準_存的資料執行迎。此係不考 二㈣界的位置而儲存的資料執行。元群組結構顯示最 寸的所有元群組。圖35B顯示以部分對準(p)儲存 科執行3 5 3 2。佶用畀,p 4 > 、 吏用取小尺寸之元群組3534(-邏輯群組)來 I: 2起始處的資料執行邊界。將資料執行 、一八餘部分儲存在最大尺寸之元群組3536、3538中, 以使貝料執仃的結尾發生於最大尺寸之元群組切8中。因 匕對於在每一端具有資料邊界的資料執行,僅將一資料 邊界配置給最大尺寸的元群組。圖35C顯示以完全對準(F) 儲存㈣料執行3540。將最小尺寸的元群組3542、3548配 ,給資料執行3540兩端的資料執行邊界。若有可能,使用 取大尺寸的元群組(例如,元群組3544)來獲得高平行性。然 而在此乾例中,將縮小尺寸之元群組3546用於倒數第二 個元群組。 般而S,如果將最小尺寸之元群組配置給一資料執行 之母鳊,則此等元群組之間的資料執行部分不形成整數 個最大尺寸的元群組。因此,來自資料執行之中間部分的 至/ 個元群組係小於最大尺寸。在圖35C中所示的範例 中彳]數弟一個元群組3 5 4 6係縮小尺寸的元群組(或填補元 群組)。然而’填補元群組不必處於任何特定的位置。圖3 5D 絲員示具有映射至不同尺寸之適應性元區塊的資料執行之資 料執行結構。將最小尺寸的頭部區塊355〇與尾部區塊3556 98673.doc -68- 1280581 用於包3貝料執行邊界的邏輯群組。在包含資料執行邊界 的邏輯群、·且3 5 5 G、3 5 5 6之間,如有可能,將資料映射至最 大尺寸之適應性元區塊(例如,元區塊3552)。在其他範例 中,將多個完整的區塊用於資料執行。將其餘資料館存於 填補區塊3 5 54中,其係縮小尺寸之適應性元區塊。 圖35E顯示以完全對準儲存於具有八個邏輯群組之最大 元群組尺寸的記憶體中之不同長度的資料執行。如果資料 執打邊界發生於單-的邏輯群組中,此邏輯群組形成最小 尺寸的元群組3558,並且可將其視為頭部元群组。如果資 料執行延伸到兩個邏輯群組中’則每一邏輯群組形成最小 尺寸之元群組3560、3562,並且可將其視為頭部與尾部元 群組。如果資料執行延伸到三個邏輯群組中,财間的邏 輯群組3564形成最小尺寸的元群組,並且可將其視為填補 元群組。料延伸到三個與九個邏輯群組之間的資料執 行,頭部與尾部元群組保持相同,並且根據資料執行的尺 寸而使填補元群組的尺寸增加。如果資料執行延伸到十個 邏輯群組,則可在頭部與尾部元群組之間形成完整元群电 3566。因此,無填補元群組可能係必要的。對於大於十個 邏輯群組的資料執行,可形成—完整的元群組與一殖補元 對於十八個邏輯群組的資料執行,則可形成兩個完 :的元群組。對於較大的資料執行,可形成多個完整的元 群組,視需要再加上適當尺寸的填補元群組。 當主機更新資料時,-般在延伸於資料執行邊界之間的 資料執行中接收資料。此類資料執行邊界的位置可… 98673.doc -69- 1280581 所識別的相同並用於儲存資料。因此,資 按與更新資料之資粗抽— 丁可更新已 例如,如果資料執二=的方式所儲存的資料。 範圍上的嶋=由延伸於相同的邏輯位址 的邏輯邊界對準。u 枓,射將料資料與相同 的完全對準2/4已儲存的資料係以舆相同資料邊界 果所儲存的資料二==括完全至完全轉換。如 至…邱八彳刀對準而儲存’則更新可能包括部分 =王“刀至部分轉換。如果所儲存的資料以非對準 健存’則更新可能包括非至完全、非至部分或非至:而 圖36顯示資料更新期間可能發生的某些轉換。雖然可能有 某些其他的轉換(例如完全至非),但其一般係不理想 在圖36中未予說明。 圖37顯示當從主機接收到資料執行”川時完全至完全 (F:)轉換的範例。資料執行377〇可作為邏輯上連續的= 區段1串流而被接收到。除此之外,主機可傳送資料邊界 位置貝讯,其包括資料執行起始與結尾處資料邊界的位 置。雖然資料執行之起始位置3772可根據f料執行377〇中 所接收到的第—區段之位址而加以決^,而無需事先知 迢,但本範例中,在接收到資料執行377〇的最後區段之前, 資料執行之結尾位置3774係已知的’以允許完全對準。在 ”他範例中,可旎热法確定地知道資料執行之結尾位置, 但可從先前資料執行之結尾位置預測該位置。可藉由主機 將此類資料邊界位置記錄於列表中。來自主機之資料執行 3770的資料執行邊界係與先前所接收到並以完全對準儲存 98673.doc -70- 1280581 的資料執行之資料執行邊界相同。因此,可配置尺寸與原 始元群組相同的已更新元群組。資料執行3770之資料部分a 與D係位於包括資料執行邊界的邏輯群組中,因此係儲存 於最小尺寸之元群組中。因此,最初將其儲存於串列快閃 緩衝器中(A ->K,D ->L)。隨後連同原始資料(p 、q —】), 將緩衝态K與L中的資料複製至頭部元群組3776與尾部元 群組STTWKoF'L—D。作為最小尺寸之元區塊將頭部與尾 部元群組3776、3 778儲存於記憶體陣列中。資料執行之部 为B形成取大尺寸之元群組G,因此係直接儲存於最大尺寸 之已配置元區塊中,而無需儲存於串列快閃緩衝器中。資 料執行3770之部分C形成小於最大尺寸之元群組/。°直接將 元群組Η寫入快閃記憶體中已配置的適應性元區塊。 在某些範例中,諸如部分匸之類的資料部分可在儲存於已 配置的適應性元區塊之前儲存於串列快閃緩衝器中。然 L根據部分C的尺寸,將其直接寫人快閃記憶體可能更為 旦效例如’如果部分C包含幾乎相當於整個元群組之資料 2=將貝料直接寫入快閃記憶體可能比將其寫入串列緩 t然後以對準格式複製至快閃記憶體更為有效。一般而 ^資列緩衝器中緩衝資料而產生的效率增益對於少 的I寸來:t❿對於大量資料為最小° ▼才艮據資料部分 寫入最大是否緩衝資料m整的資#元群組直接 料寫入串列&塊’可將包含一邏輯群組或更少之資 群組之間的資料了’並且如果介於一邏輯群組與一完整元 、科小於一臨界尺寸,則可將其予以緩衝。例 98673.d〇( 1280581 D ’該臨界值可A _ 士 、f 半, …、701元群組中邏輯群組之數目的一 或一完整元群组中】羅絲 (Ν/2·2,其 、、、中璉軏群組之數目的一半減去2 係為允呼有U為—完整元群組中邏輯群組之數目)。Ν/2_2 的於灭;! 獲得—收斂的串列快閃緩衝器而計算 可在2 γ因此,如果在元群組中有十六個邏輯群組,則 分,勺人 衝匕s,、個邏輯群組或更少之資料部 閃节卜二“個以上邏輯群組之資料部分則可直接寫入快 閃圮憶體。 圖:顯示從部分對準轉換至完全對準㈣)之範例。在此 乾例中,可;⑽& 疒。· η 為接收貢料執行3880並將其以完全對準儲 、~配置取小尺寸之頭部元群組3882與尾部元群組3884。 ^ ^ 、科以界σ卩7刀對準之方式先儲存藉由資料 執行3 8 8 0加以象報次 ’勺負料。因此,對於與頭部元群組相同 的邏輯位址空間,存在最小尺寸的原始元群組獅。然而, 不存在與資料執行之尾部對應的原始最小尺寸之元群組。 類似於圖37所示去二& μ 、 者而處置貢料執行之起始處的資料。將資 料A儲存於串列快閃緩衝器中^K)。隨後,連同從原始元 导(~>E)複衣的緩衝器E中之資料,將緩衝器κ中的資料 複製至最小尺寸之已更新的元群組觀Μ。如上所 ^將貝料3與〇程式化於元群組G與H。元群組G係顯示為 最大尺寸之70群組’可將其直接程式化於最大尺寸之已更 新的元區:元群組⑽小於最大尺寸,並且可直接程式化 於已更新的元區塊,或可首先儲存於串列快閃緩衝器中, 視元f、、且Η的尺寸而定。在此範例中,將元君羊組Η直接程式 98673.doc -72- 1280581 化於已更新的元群組。如果接收到較長的資料執行,則可 使用最大尺寸的額外元群組。 > 貝料執灯3880結尾處之資料〇複製至串列快閃緩衝器‘ (D—L),隨後連同從原始元群組⑴—乃複製的資料了,將其 禝製至尾部元群組3884。從大於最小尺寸之元群組%88複 製資料J(在此種情形下係最大尺寸之元群組)。元群組Μ"。 包括僅包含未由資料執行更新之資料的邏輯群組r。將邏輯 群組R重新定位至重新定位元群組(R—T)。在其他範例中, 重新定位兀群組可能包含多個邏輯群組。原始資料從原始籲 元群組至重新定位元群組之此種才复製可與其他程式化操作 平行地完成,以獲得較大的效率。如圖37與38所示,部分 至完全轉換可包含比完全至完全轉換(例如複製原始資料 至重新定位元區塊T)更多的資料複製。 圖39顯示對於從主機接收到的資料執行399〇,從部分對 準轉換至部分對準(P2P)的範例。此轉換類似於以上針對資 料執行之起始處的資料所述者。㉟資料執行399〇之起始處 的資料A儲存於串列快閃緩衝器(A,中,隨後連同從原始· 元群組3994(P—E)複製的資料E,將其複製至最小尺寸之已 更新的元群組3992(K—F)。將資料3程式化於最大尺寸的元 群組(B^G)。將延伸至資料執行邊界並包括一小於最大尺 寸之元群組之資料D寫入—最大尺寸之已更新的元群組 3996(D^I)。將來自原始元群組的資料Q複製至相同的最大 尺寸之更新元群組3996U)。因此,在此轉換期間,對準 保持相同,將起始資料執行邊界映射至最小尺寸之適應性 98673.doc -73- 1280581 ,夢、、且3992,並且將其餘資料映射至最大尺寸之適應性元 群組。 * “圖40顯不從非對準轉換至完全對準(勝)之範例。接收到, =t主機的資料執行4〇〇2,並將其用於更新以非對準(即不 -、料執行邊界對準)儲存的原始資料。在此範例中,將原 始的貧料儲存於最大尺寸之元區塊中。相反,已更新的元· 曰、匕括用於資料執行4002之起始與結尾處之資料邊界之 •、, 寸的頭邛元群組4004與尾部元群組4006。將來自資 ^執订4002之第一部分邏輯群組之資料a緩衝至串列緩衝· ☆ (A〜K) °同# ’將來自資料執行之最後部分邏輯群纪之 資料D緩衝至串列緩衝器⑴叫。其可能對主機所提供的關 於貝料執仃4002之結尾處之資料執行邊界位置的資訊作出 回^將資料_存為最大尺寸的元群組(b—g)。對㈣交大 的貝料執订,可將額外的資料儲存為額外的最大尺寸之群 組。將原群組G儲存於最大尺寸之元區塊中。將未配置給頭 4尾口P或取大尺寸元群組的其餘資料c配置給填補元群祖 (C,。在本範例中,將元群組H直接儲存於小於最大尺寸攀 之兀區塊中’但在其他範例中,則將其首先儲存於串列緩 衝器中,然後將其複製至小於最大尺寸之元區塊。在此範 例中,可將C視為尾部填補資料,可將Η視為尾部填補區 塊。可將原始元群組Φ去;西此u , ^〒未予更新的貧料(〇、Ρ、Q、R)複製 至重新定位元群組H R,頭部與尾部元群叙· (P』、Q4)4果可能,可平行地完成此等資料部分的複 製。例如,可平行地完成將部分◦糾複製至已重新定位的. 98673.doc -74- !28〇581 兀群組s與丁,#巾c^R一起包含與一最大尺寸或更小之元 群組等效的貧料。部分1>與卩的複製可與從其他原始元群組 或k串列緩衝器的其他複製操作平行地完成。如果資料部 分C係短的,則可緩衝資料部分c,並與其他的程式化操 作例如資料部分E、F、I與J的程式化平行地將其複製至 已更新的元群組。 圖41顯示從非對準轉換至部分對準(N2p)之範例。原始元 群組未與資料執行411〇的資料執行邊界對準。在此範例 中,原始元群組係最大尺寸的元群組,儘管對於非對準, 其不一定如此。所形成的已更新元群組具有與資料執行的 部分對準。最小尺寸的已更新元群組4112係配置用於資料 執行4110之起始處的資料執行邊界,如圖4〇中所示。其餘 元群組係最大尺寸的元群組,並且未將資料執行侧:結 尾處的資料執行邊界配置於最大尺寸的元群組。相反,在 此範例中,將資料執行4110之結尾處的資料執行邊界配置 給最大尺寸的元群組4114。原始元群組包含已被複製至已 更新元群組(P~^、Q4J)或已重新定位元群組(〇4、uT) 的原始資料(〇、p、Q、R)。 圖42顯示從非對準轉換至部分對準(N2p)之另一範例。原 始元區塊同樣係最大尺寸的元區塊。圖42顯示來自乾主歹機並 具有不對應於原始元區塊(非對準)之資料執行邊界之資料 執行4220。形成已更新元區塊,以便與資料邊界部分對準 而將資料儲存於資料執行中。在此範例中, 析取小尺寸之 已更新的元群組4222指派給資料執行422〇之起始處之資料 98673.doc 1280581 執行邊界。將其他已更新元群組之元群組邊界定位於與原 始元群組之元群組邊界相同的位置。在此範例中,將於 最大尺寸G之元群組用於頭部元群組與下—元群組邊界之 間。可將其視為頭部填補元群組’並將儲存於其中的^料 視為頭部填補資料。可直接或在串列快閃緩衝器中緩衝之 後,將頭部填補元群組儲存於頭部填補元區塊中。決定是 否直接儲存頭部填補元群組或對其進行緩衝可能係基於其 是否大於或小於某一臨界值(如上文關於尾部填㈣㈣ 述)。如上所述,可按需要將原始資料複製至已重新定位的 元群組(0—S)或已更新的元群組(Q—J)。 圖43顯示從非對準轉換至非對準(N2N)之範例。在此範例 中,從主機接收到資料執行4330,其更新儲存於與資料執 行邊界不對準的原始元群組中的資料。將已更新的資料儲 存於亦與資料執行邊界不對準的已更新元群組中。在此範 例中,原始元群組與已更新的元群組僅包括最大尺寸的元 群組。可將此方案用在不使用適應性元區塊的系統中(其中 將元區塊尺寸固定的系統)。在此範例中,不使用串列快閃 緩衝器。將原始的資料(P、Q)複製至已更新的元區塊 (P~>E、QyJ)。因而,將大量原始資料儲存於已更新的元群 組t,亚且如果接收到具有相同資料執行邊界位置的後續 資料執行,則再次複製此資料。 資料執行更新管理 一槽案係一組在主機系統内建立的資料,或由主機系統 k外^卩來源接收到,其係在主機系統内被映射至邏輯區 98673.doc -76- 1280581 段位址。將一組鄰近的邏輯區段位址稱為資料執行。資料 執打可視為由主機配置用於儲存一或多個檔案或—檔案之 辣部分之一組邏輯上鄰近的區段,該資料執行延;於邏 輯位址空間之先前配置的部分之間。主機可將寫入操作插 入到不同的資料執行。—般而言,可結何時間允許有限 數目的開放資料執行’以便根據要求開放及關閉資料執 打。可將資料執行内的一區段寫入一開放緩衝器或盥該資 料執行相關的-更新區塊。從資料執行接收並儲存資料包 括管理資料執行以及用於儲存資料的記憶體結構(包括緩 衝益與更新元區塊)。圖44顯示可針對其實施的某些結構與 操作。 /開放-資料執行可發生於接收到與現有資料執行中的最 後區段不連續的一區段並且該區段不位於所允許的從現有 貢料執行中最後區段所跳躍之連續位址之範圍内時。當資 料執㈣最近更新的(LR職料執行,存在所允許的最^ 料執订數目亚且必須開放新的資料執行時,可關閉一資料 執行。當更新資料執行内的區段,引起將更新視為混洗時’ 亦可關閉資料執行。一 4 又使用”他的方法,例如美國專利 二Z /75G,155號中所述者,來處置此n屯的更新。 =衝:可為用於從資料執行寫入連續資料之串列快閃緩 二二一部分。在串列快閃緩衝器中,-緩衝器無需在實 =上料。、可藉由獲得非鄰近的缓衝器而輔助對多個緩衝 為的插人式寫人。如果資料執行的第—邏輯群組不完整, 則當開放資料勃; 、抖執仃日守,可能開放緩衝器。當接收到資料執 98673.doc -77- 1280581 仃之隶後邏輯群組之第—士 , 芡弟區段4,亦可能開放緩衝器。 可針對填補資料(頭部或 (丨次尾口”真補)開放緩衝器,其中填補資 料係小於某一預定的量。者 里 田右人冩入緩衝器的資料為完整 時,可關閉緩衝哭。驻士叔私士仕^ 、备制 m精由將所有其資料寫入-更新區塊而 叔衣已關閉的緩衝器。當緩衝器係串列快閃緩衝器結尾處 之:妾:來可用的緩衝器之-時,可能發生複製。一般而言 此頭複製與其他緩衝哭戎馬
发衡W或原始貝枓之其他複製平行地發 生0 X
-更新元區塊可能係被寫入來自主機或來自緩衝器之某 些已更新資料之適應性元區塊。當接收到未傳送至緩衝器 卫且對於其不存在不完整之更新元區塊的資料時,可配置 更新元區塊。當從緩衝器複製資料時,亦可配置更新元區 塊。更新元區塊的尺寸取決於欲儲存的資料量。更新元區 塊可為最小尺寸元區塊、縮小尺寸元區塊或最大尺寸元區 塊。例如,可將最小尺寸元區塊用於資料執行之起始(頭部) 與結尾(尾部)’可將縮小尺寸之元區塊用於填補資料(頭部 填補或尾部填補),並且可將最大尺寸元區塊用於資料執行 的所有其他資料。當以來自主機、緩衝器或原始區塊的資 料填充最後區段時,可將更新區塊視為完整的。因而,可 作為從緩衝器複製操作之結果或作為從原始區塊複製之結 果而發生完成,其可由資料執行的關閉來觸發。 Q 一原始元區塊可為適應性元區塊,其包含一或多個區 奴,來自主機的已更新區段已使該等區段變為過期。當藉 由接收到已更新資料之一區段而使一元區塊内的區段變為 98673.d〇, -78- 1280581 過期時,可將該元區塊視為一開放的原@元區土鬼。當主機 對任何開放資料執行的進—步寫人不會使—原始元:塊内 的其他區段變為過期時’可將該原始元區塊視為完整的。 可將資料從完整的原始元區塊複製至重新定位元區塊。當 已複製一完整原始元區塊内的所有有效區段時,可將該完 整原始元區塊視為完全過期的原始元區塊。可抹除一完全 過期的原始元區塊。 一重新定位元區塊係一適應性元區塊,將連續的資料邏 輯群組從原始的元區塊複製至該適應性元區塊中。當資料 係欲從原始元區塊複製並且非為頭部或尾部元區塊的部分 時,可配置重新定位元區塊。當已寫入一重新定位元區塊 的最後區段位置時,可將該重新定位元區塊視為完整的。 重新疋位元區塊可為最小尺寸或縮小尺寸的元區塊。 圖45顯示根據本發明一具體實施例用於以資料邊界對準 儲存從主機接收之資料之流程圖。當此範例顯示所儲存的 資料區段時,亦可使用其他資料單位。最初決定區段之儲 存是否包括對開放資料執行的混沌更新4550。混沌更新係 其中以非連續方式更新區段之更新,並且係進一步說明於 申請案第10/750,15 5號中,以引用方式將該申請案全文併入 本文中。作為以資料邊界對準進行儲存之替代方案,亦可 實施對開放資料執行的混、;屯更新。因此,此處未詳細說明 混沌更新。如果決定該等區段不需要混沌更新,則決定所 接收到的區段是否與開放資料執行連續4552。 如果所接收到的區段與開放資料執行不連續,並且如果 98673.doc -79- 1280581 開放資料執行的數目小於預定的最大值4554,則開放新的 資料執行4556。如果開放資料執行的數目不小於預定的最 大值,則在開放新的資料執行4556之前必須關閉資料執行 4558(如後說明)。開放新的資料執行之後,決定是否有從邏 輯群組邊界至資料執行之起點的偏移4560。如果有偏移, 則開放緩衝器4562,緩衝器的尺寸等於頭部資料,即位於 第一邏輯群組中的資料執行部分。隨後將區段寫入此緩衝 裔’直至達到緩衝器的結尾,並關閉緩衝器。 如果所接收到的區段舆開放資料執行連續,並且對於資 料執行存在一開放緩衝器4564,則將區段寫入緩衝器 4566。如果對於資料執行不存在開放緩衝器4564,但對= 資料執行存在不完整的元區塊4568,則如下所述將區段寫 入不完整的元區塊4570。如果對於資料執行,不存在開放 緩衝器和不完整的元區塊,則決定所接收到的區段是否係 頭部填補資料4572。而且,如果所開放的新資料執行沒有 從邏輯群組邊界的偏移456〇,則作出此決定。如果該等區 段係頭部填補資料,則將資料量(區段的數目)與一預定的值 (maxpad)比較4574,該預定值係用於緩衝的最大填補長 度。如果區段的數目不大於maxpad,則開放一緩衝器, 其尺寸等於頭部填補資料。如果區段數目大於max:d,則 配置-縮小的元區塊4578,隨後將區段寫入此縮小的元區 塊4570 〇 如果決定區段非為頭部填補資料4572,則接下來決定區 段是否係、尾部填補或尾部資料458()。如果其非尾部填補或 98673.doc -80 - 1280581 尾部資料’則配置最大尺寸元區塊4582,隨後將區段寫入 最大尺寸元區塊4570。其係一種針對既非頭部亦非尾部資 料之資料的預設條件。因而,一般將資料執行中間的 寫入最大尺寸的元區塊以使用最大的平行性。如果區段包 含尾部填補或尾部資料,則決定區段是否係尾部資料^ 資料執行之最後邏輯群組)4584。如果其來自最後邏輯群 組,則開放緩衝器4586,緩衝器尺寸等於尾部資料(等於來 自最後邏輯群組中之資料執行之資料)。隨後,將該等區段 寫入緩衝器4566。如果區段並非來自最後的邏輯群組,則 區丰又係尾部填補資料,並且決定尾部填補長度是否大於預 定的尺寸(maxpad)4588。如果區段數目大於maxpad,則配 置4578 —縮小尺寸的元區塊,隨後將區段寫入元區塊 45 70。如果尾部填補不大於maxpad 4588,則開放等於尾部 填補的緩衝器4 5 9 0。隨後將區段寫入此缓衝器4 5 6 6。 圖46顯示用於將區段寫入一或多個元區塊之流程圖。在 本申請案之此及其他流程圖中,邏輯流係朝向流程圖的底 部’並且決策方塊具有在方塊下所示的肯定結果以及方塊 一侧所示的否定結果。首先決定配置用於儲存區段群組之 元區塊是否係縮小或最小尺寸元區塊4601。如果未配置縮 小或最小尺寸之元區塊(配置最大尺寸元區塊),則將欲寫 入的區段平行地寫入已配置的元區塊4603。接著,決定該 元£塊疋否為滿4605。如果元區塊為滿’則指定「完整」 4607。接著決定在原始元區塊中是否對應於資料執行或可 由主機寫入資料執行之其他資料的所有資料已變為過期 98673.doc -81 - 1280581 4 6 0 9,右如此,則將原始區塊視為完整的* 611。如果寫入 縮小或最小尺寸之元區塊4601,則如果目前未複製緩衝器 4612,則識別可用於複製的已關閉緩衝器46丨3,識別與該 等緩衝器相關聯的任何原始資料4615,並且配置4617一或 多個已縮小的或最小尺寸元區塊。如果目前未重新定位原 始的資料46丨9,則識別4612欲從完整的原始元區塊重新定 位的資料,並且配置縮小或最小尺寸元區塊。接著如 上所述與從緩衝器複製或重新定位到已縮小元區塊的區段 之寫入平行地將區段寫入到已配置給區段群組的元區塊。 圖47顯不用於關閉資料執行之流程圖。首先識別最近使 用的(LRU)資料執行4731。如果對於此資料執行存在任何開 放緩衝器4733,則將其關閉4735,並且如果對於資料執行 存在任何不完整的元區塊4737,則從原始的元區塊或緩衝 器複製資料4739,直至不完整的元區塊變為完整的4741。 如果存在任何部分過期的原始元區塊4743(完整的原始元 區塊)’則配置4745縮小尺寸的元區塊作為已重新定位的元 區塊,並且複製有效區段4747,直至原始區塊係完全過期 4749。接著可將資料執行指定為關閉4751。 雖然結合特定示範性具體實施例說明本發明,但應瞭 解,本發明有權在所附申請專利範圍之完整範疇内受到保 護。 ’、 【圖式簡單說明】 圖ί A與1B分別係一起運作之非揮發性記憶體與主機系 統之方塊圖; 98673.doc 1280581 圖2說明圖1A之記憶體陣列之第一範例性組織; 圖-員示具有圖1A之記憶體陣列中所儲存之負擔資料之 範例性主機資料區段; 圖4。兒明圖1A之記憶體陣列之第二範例性組織; 圖5 °兒明圖1A之記憶體陣列之第三範例性組織; 圖6顯示諸如圖5所示之記憶體陣列中的元區塊之範例; 圖7顯示諸如圖6中戶斤示之元區塊中所儲存之邏輯區塊之 範例; ®8㈣其中將原始資料儲存於記憶體陣列中之元區塊 之資料更新; 圖9A顯不健存於記憶體陣列中之適應性元區塊中的適應 性邏輯區塊; “ 圖9B顯示區段至邏輯群組以及 性邏輯區塊之邏輯映射; 、應 乂圖10顯示兩個適應性邏輯區塊至兩個適應性元區塊之平 行程式化; 圖1 U、員不以各種組態映射至適應性邏輯區塊之邏輯群 組; 圖12A顯示儲存於欲更新之適應性邏輯區塊中以及儲存 於新的適應性邏輯區塊中的資料; 圖12B_不重新映射以適配資料串流之適應性邏輯區塊 之一範例; 圖12C_不重新映射以適配資料串流之適應性邏輯區塊 98673.doc 1280581 0 13 ,、、、員示重新映射至較小適應性邏輯區塊之部分填充之 適應性邏輯區塊; 圖14頒不用於更新適合欲更新之邏輯位址範圍之適應性 邏輯區塊; 圖15A顯示儲存於記憶體陣列之適應性元區塊中的適應 性邏輯區塊; 圖15B顯示儲存於記憶體陣列中的圖15入之適應性邏輯 區塊之邏輯群組之區段; 圖15C顯不儲存於記憶體陣列中的邏輯群組之區段之另 一範例; 圖15D顯示其中係平行地程式化兩個適應性元區塊之 段配置範例; 圖15E顯示三個元區塊之平行程式化之範例以及所產 的元區塊内之頁面配置; 圖15F顯示更新資料之一範例,其中已更新之第一區段: 為適應性元區塊中的第一區段;
圖16顯示-記錄儲存於記憶體陣列之適應性元區塊中: 邏輯群組位置之表格; 圖17顯示一可用於管理適應性 、丨王凡&塊架構之媒體管3 為, 圖18Α係顯示已抹除區塊管理階層之範例之方塊圖· 圖画頁示一包含多個區段之咖區塊,該等多個區段包 括一有效區段與多個過期區段; 又匕 圖18C係顯示位址表格管理階層之範例之方塊圖; 98673.doc -84 - 1280581 圖1 8D顯示包括啟動位址與啟動區塊之資料結構; 圖19顯示包括nVRam之記憶體系統; 圖20顯示有效地儲存於使用nvram之記憶體陣 兩個資料串流; 之 圖21顯示儲存於NVRAM中的已更新資料; 圖22顯示由資料執行所組成的檔案; 圖23顯示一資料執行内的檔案邊界,· 圖24顯示資料單位之階層; 圖25顯不映射至元群組之兩個資料執行; 圖26顯示具有映射至元群組之檔案邊界之資料執行·
圖27顯示用於將資料儲存於具有資料邊界管理之 憶體中的兩個方案; 、Z 圖28A顯示由儲存圖25之元群組八至〇之元區塊a至崎 組成的程式化區塊; 圖28B顯示圖28A中之元區塊八至〇之區段組態; 圖28C顯示傳送至程式化區塊之累積器中的區段; 圖29A顯示一完整的元群組; 圖29B顯示一部分的元群組; 圖2 9 C顯示一短元群組; 圖29D顯示一起始元群組; 圖29E顯示一多檔案元群組; 圖30A顯示一部分元群組之重新映射; 圖30B顯示一短元群組之重新映射; 圖30C顯示一起始元群組之重新映射; 98673.doc -85- 1280581 圖30D顯示—多檔案元群組之重新映射 圖31顯示主機資料與已重新定位資料之平行程式化; 圖3 2 ,’、、員示使用串列快閃緩衝器儲存主機資料; 圖33八顯示儲存來自主機之資料之替代性方法; 其中藉由從主機寫入資 圖33B顯示圖33a之替代性方法, 料而複製原始資料; 圖34顯示儲存來自主機之資料之替代性方案; 圖35A顯示以非對準儲存的資料執行;
圖35B顯示以部分對準儲存的資料執行; 圖35C顯示以完全對準儲存的資料執行; 圖35D顯示資料執行之示範性結構; 圖35E顯示不同長度之資料執行之示範性結構; 圖36顯不在更新資料執行中的資料期間可能發生的轉換 之範例; 圖37顯示完全至完全轉換之範例; 圖38顯示部分至完全轉換之範例; 圖39顯示部分至部分轉換之範例,· 圖4〇_不從非對準轉換至完全對準之範例; 圖41顯不從非對準轉換至部分對準之範例; 圖42頌不從非對準轉換至部分對準之第二範例; 圖43顯示非對準至非對準之範例; 圖44歹】示某些資料結構以及可實施的設計該等資料結構 之操作; 圖45係顯示根據本發明一具體實施例儲存區段之流程 98673.doc -86 - 1280581 圖; 圖46係顯示圖45之區段之寫入的流程圖; 圖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-
ECC 參數
ECC 抹除區塊 邏輯區塊 邏輯區塊 邏輯區塊 元區塊 貢料區段辛流 記憶體陣列 已更新的資料區段 邏輯區塊 邏輯區塊 元區塊 元區塊 取代元區塊 取代元區塊 記憶體陣列 邏輯群組 邏輯群組 邏輯群組 適應性邏輯區塊 適應性邏輯區塊 邏輯區塊 -88- 1280581 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- 1280581 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- 1280581 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 - 1280581 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- 1280581 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- 1280581 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- 1280581 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- 1280581 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- 1280581 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- 1280581 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- 1280581 3888 3990 3992 3994 3996 4002 4004 4006 4110 4112 4114 4220 4222 4330 大於最小尺寸之元群組 資料執行 已更新的元群組 原始元群組 已更新的元群組 資料執行 頭部元群組 尾部元群組 資料執行 已更新元群組 最大尺寸的元群組 資料執行 最小尺寸之已更新的元群組 資料執行 98673.doc 99-
Claims (1)
1280581 十、申請專利範圍: L 種將貢料儲存於一記憶體陣列中之方法,該記憶體陣 歹J包括配置於可單獨程式化之平面中之複數個可個別抹 除之抹除區塊,該方法包含: 從該陣列的不同平面選擇若干抹除區塊,以形成一適 應7L區塊,該適應性元區塊中抹除區塊的數目係選自 一可能值範圍;以及 平仃地私式化該適應性元區塊中的該等抹除區塊。 2·如叫求項1之方法,其中該可能值範圍係從一至該記憶體 陣列中可單獨程式化之平面的數目。 ★ Μ求項1之方法,其中平行地程式化該適應性元區塊中 的该等抹除區塊與程式化不在該適應性元區塊中之複數 個抹除區塊平行地發生。 女明求項〕之方法,其中不在該適應性元區塊中的該等複 數個抹除區塊係在另一適應性元區塊中。 “求項1之方法’其中選擇若干抹除區塊包含選擇若干 平面,-個別平面係根據該平面中可用抹除區塊之數目 而加以選擇。 6·如請求们之方法’其中該欲儲存的資料包含可定址的 料單位,邏輯群組係由若干可定址的資料單位所個別 成,該等可定址的資料單位之數目係等於可儲存於_ 除區塊中的可定址資料單位之數目,一邏輯群組係程i 化至—適應性元區塊,使得該適應性元區塊中每 抹除區塊包含至少一來自該邏輯群組之可定址資:; 98673.doc 1280581 位。 7· 一種將資料儲存於一記憶體陣列中之方法,該記憶體陣 列包括配置於可單獨程式化平面中之抹除區塊,該方法 包含: 選擇該記憶體陣列之複數個平面,該等複數個平面之 平面係藉由一基於該平面中抹除區塊的可用性之演算 法而予以個別地選定; 由複數個抹除區塊形成一適應性元區塊,該等複數個 抹除區塊之每一抹除區塊係來自該等選定平面之一不同 平面;以及 平行地程式化該適應性元區塊的該等抹除區塊。 8·如請求項7之方法,其中來自該陣列之不同平面的抹除區 塊不位於其個別平面内的相同位置處。 汝明求項7之方法,其中抹除區塊之該數目係選自一可能 值範圍。 、月长項7之方法,其進一步包含形成一第二適應性元區 鬼I平仃地程式化該適應性元區塊與該第二適應性元區 塊。 U·如明求項1〇之方法,其中該適應性元區塊中抹除區塊的 :目與该第二適應性元區塊中抹除區塊的數目不相等。 12·::將資料儲存於一記憶體陣列中之方法,該記憶體陣 列包括配置於可留 、早獨私式化平面中之複數個多區段抹除 區塊,該方法包含: 由々人儲存於該陣列中的資料形成複數個邏輯群組,一 98673.doc 1280581 、輯群組包含若干資料區段,該等資料區段之數目係等 :儲存於忒圮憶體陣列之一抹除區塊中的資料區段之數 § ; 由該等複數個邏輯群組形成一適應性邏輯區塊; 由α亥等複數個多區段抹除區塊形成一適應性元區塊·, 將忒適應性邏輯區塊儲存於該記憶體陣列之該適應性 疋區塊中,使該等複數個多區段抹除區塊之一個別抹除 區塊包含該等複數個邏輯群組之每一邏輯群組之部分; 以及 針對4適應性邏輯區塊之該等邏輯群組個別地記錄位 址資訊。 如凊求項12之方法,其中藉由平行地程式化該記憶體陣 列之該等複數個多區段抹除區塊而將該適應性邏輯區塊 館存於該記憶體陣列之該適應性元區塊中。 14.如請求項12之方法,其中該適應性邏輯區塊内之邏輯群 組之數目係針對該適應性邏輯區塊個別地加以決定。 1 5 · —種非揮發性記憶體系統,其包含: 配置於可單獨程式化之平面中之記憶體單元之一陣列; 具有多個抹除區塊之平面,一抹除區塊係該陣列之 可予以個別抹除的最小單位; 該系統係配置成根據欲儲存的資料之特徵而選擇若干 平面;以及 該系統係配置成平行地程式化選定平面内之個別抹除 區塊。 98673.doc !28〇58ΐ 16. 17. 18. 19. 20. 如凊求項15之系統,其中一個別平面係根據保留於該個 別平面中之可用抹除區塊的數目而加以選擇。 如明求項15之系統,其進一步包含記憶體單元之一第一 快閃記憶體中 非揮發性隨機 其中記憶體單元之該第一陣列係位於— ’並且記憶體單元之該第二陣列係位於一 存取記憶體中。
一種更新一非揮發性記憶體陣列内之資料之方法,誃非 揮發性記憶體陣列具有配置成形成一第一適應性元區塊 之複數個可個別抹除的區塊,該方法包含: 從一主機接收已更新的資料,該已更新的資料係用於 取代儲存於該適應性元區塊内的資料; 將該已更新的資料儲存於一第二適應性元區塊中,該 第二適應性元區塊僅由包含已更新資料之抹除區塊所組 成;以及
將來自該第一適應性元區塊的原始資料儲存於一第三 適應性元區塊中,該第三適應性元區塊僅由不包含已更 新資料之抹除區塊所組成。 如請求項18之方法,其中該第二適應性元區塊與該第三 適應性元區塊皆係小於該第一適應性元區塊。 如請求項18之方法,其中該第一適應性元區塊具有一第 一數目之抹除區塊,該第二適應性元區塊具有一第二數 目之抹除區塊,而該第三適應性元區塊則具有一第三數 目之抹除區塊;以及 98673.doc 1280581 該第二數目與該第三數目之和等於該第一數目。 2 1. —種更新儲存於一非揮發性記憶體陣列中之資料之方 法,該非揮發性記憶體陣列具有一第一複數個之原始適 應性兀區塊,一個別原始適應性元區塊儲存一具有複數 個原始邏輯資料群組之原始適應性邏輯區塊,該方法包 含: 接收已更新的資料以取代舊資料; 形成已更新的邏輯群組,一已更新的邏輯群組包含邏 輯位址範圍與一原始邏輯群組相同的連續資料,一已更 新邏輯群組中的至少某些資料係已更新的資料; 形成已更新的適應性邏輯區塊,一已更新的適應性邏 輯區塊係由若干已更新的邏輯群組所組成,一已更新適 應性邏輯區塊中已更新邏輯群組之數目獨立於一原始適 應性邏輯區塊中原始邏輯群組之數目;以及 將一已更新適應性邏輯區塊程式化至一已更新適應性 元區塊。 22·如请求項21之方法,其中一已更新適應性邏輯區塊中之 已更新邏輯群組之數目小於一原始適應性邏輯區塊中之 原始邏輯群組之數目。 23·如請求項21之方法,其中一已更新適應性邏輯區塊中已 更新的邏輯群組對應於一個以上原始適應性邏輯區塊中 的原始邏輯群組。 24. —種管理一非揮發性記憶體陣列之已抹除區塊之方法, 一已抹除區塊係一在用於程式化之條件中的抹除區塊, 98673.doc 1280581 抹除單位,該方法 一抹除區塊係该非揮發性陣列之最】 包含: 將一第一列表保持於一非塏恭 非揮發性記憶體中,該第一列 表指示一第一複數個已抹除區祕 禾除&塊,從該第一複數個抹除 區塊中直接選擇個別已抹降F祕田# 诼除&塊用於程式化;以及 更新該第一列表以刪除一 p姑 已抹除區塊之一項目,該已 抹除區塊係選擇用於程式化 式化因而產生一已更新的第一 列表;以及 對更新该弟一列表作出回岸而脾 、 ® u應而將该已更新第一列表之 内容複製到該非揮發性記憶體中的一第二列表。 25. 如請求項24之方法,其中該第二列表係作為—第一可定 址資料封包之部分而程式化於該非揮發性記情體。 26. 如請求項25之方法,其中該第二列表係藉由將一第二可 疋址貝料封包&式化至該非揮發性記憶體並指示該第一 可定址資料封包為過期而加以更新。 27. 如請求㈣之方法,其進—步包含保持—第三列表,其 指不一第二複數個已抹除區塊;以及 在乂第歹J表與5亥第=列表之間交換該第一複數個已 抹除區塊之個別已抹除區塊盘哕黛― ♦邱匕:%兴巧罘一稷數個已抹除區塊 之個別已抹除區塊。 28. 如請求項27之方法’其中交換㈣根據包括磨損平衡之 標準予以選擇。 2 9 ·如請求項2 7之方法,苴;隹一半a入7 乃床具進步包含保持一第四列表,其 指不一第三複數個已抹除區塊,並且在該第三列表與該 98673.doc -6 - 1280581 第四列表之間交換該第三複數個已抹除區塊之個別已抹 除區塊舆該第二複數個已抹除區塊之個別已抹除區塊。 30·如明求項29之方法,其中該非揮發性記憶體陣列具有複 數個平面,δ亥弟一與弟一衩數個抹除區塊之個別抹除區 塊係來自該等複數個平面之任何平面,該第三複數個抹 除區塊之個別抹除區塊係來自該陣列之一第一平面。 3 1 · —種將複數個邏輯資料群組儲存於一記憶體陣列中之方 法’一邏輯群組所含資料等於儲存於該記憶體陣列之一 抹除區塊中之資料量,該方法包含: 形成一包含複數個抹除區塊之元區塊; 儲存包括一第一與一第二邏輯群組之該等複數個邏輯 群組’使得該元區塊之該等複數個抹除區塊之每一抹除 區塊包含該第一邏輯群組之一部分以及該第二邏輯群組 之一部分;以及 保持一表格’其具有用於該第一邏輯群組之一第一項 目以及用於該第二邏輯群組之一第二項目,該第一項目 包括該等複數個抹除區塊之一第一抹除區塊之實體位置 ’該第二項目包含該等複數個抹除區塊之一第二抹除區 塊之實體位置。 32·如請求項3 1之方法,其中該第一項目包括該元區塊中之 抹除區塊之數目以及該等複數個邏輯群組内該第一邏輯 群組之邏輯位置。 33·如請求項31之方法,其中該等複數個邏輯群組之每一邏 輯群組在該表格中具有一項目,該等複數個邏輯群組中 98673.doc 1280581 邏輯群組之數目等於哕笙 a . H ^ 、设數個抹除區塊中抹除區塊的 數目,亚且该寻複數個抹 〆丄》主从丄 ,、區塊之母一抹除區塊之位置 係由该表格中的一項目給定。 34· —種將複數個第一可定 枓早位儲存於一非揮發性記 憶體陣列中之方法,唁北撫 ^ π X非揮發性記憶體陣列具有一抹除 區塊之隶小抹除單位,一 _ 未除區塊包含一整數個可定址 的資料單位,該方法包含: 由a亥整數個第一 ^ ^ 疋址貝枓早位形成一第二可定址資 料單位; ' 將该弟二可定址資料星办曾 、早位寫入该非揮發性記憶體陣列 ’以便將該第二可定址眘袓留 疋址貝枓早位之一第一部分儲存於一 第-抹除區塊中,並將該第二可定址資料單位之一第二 部分儲存於一第二抹除區塊中;以及 個別地記錄該第二可定址資料單位之位置資訊,其可 用於決定該第二可定址:#料單位在該非揮發性記憶體陣 列中的實體位置。 35. 如請求項34之方法,:&中哕筮 π— η μ 甲该乐一可定址資料單位係一區 段,並且該第二可定址資料單位係一邏輯群詛。 36. 如請求項34之方法,其中該第二可定址資料單位的實體 位置係使用該第二可定址資料單位的位置資訊並根據其 他可定址資料單位的位置資訊予以決定。· 37· -種將資料儲存於一記憶體陣列中之方法,該記惊 列包括配置於可單獨程式化平面中之複數個多區段抹除 區塊,抹除區塊係該記憶體陣列之最小抹除單位,該方 98673.doc 1280581 法包含: 由欲儲存於該陣列中的資料形成複數個邏輯群組,— 邏輯群組包含若干資料區段,該等資料區段之數目係等 於儲存於該記憶體陣列之一抹除區塊中的資料區段之數 目; 由一數目之抹除區塊形成一適應性元區塊,該數目係 選自一數目範圍; 將一邏輯群組儲存於該記憶體陣列之該適應性元區塊 中,使得該適應性元區塊之該數目之抹除區塊之每一抹 除區塊包含該邏輯群組之一部分。 38. 39. 40. 一種將資料儲存於一記憶體陣列中之適應性元區塊中之 方法,一適應性元區塊包含一個別選定數目之抹除區 塊’抹除區塊係該記憶體陣列之最小抹除單位,該方法 包含: 將包含一邏輯邊界之一第一資料部分儲存於該記憶體 陣列之一第一適應性元區塊中,該第一適應性元區塊係 由一抹除區塊所組成;以及 將不包含一邏輯邊界之一第二資料部分儲存於該記憶 體陣列中之一第二適應性元區塊中,該第二適應性元區 塊包含一個以上之抹除區塊。 如請求項38之方法,其中該邏輯邊界的位置係由所更新 之資料的一邏輯位址範圍所決定。 如請求項38之方法,其中在將該第一資料部分儲存於該 d fe體陣列中之一第一適應性元區塊中並將該第二資料 98673.doc !28〇58l 二刀儲存於該記憶料财之—第二適應性元區塊中之 則,將該第一資料部分與該第二資料部分 4ι記憶體陣列之部分的―緩衝器中。 '為该 ^ = 之方^,其中在將該第—資料部分錯存於該 部^財之—第—適應性元區塊中並㈣第二資料 &刀提§亥,己憶體陣列中之一第二適應性元區塊中之 =,將該[資料部分與該第二f料部分—起儲存於一 弟二適應性元區塊中。 、 42·如請求項41之方法,呈中杏將兮筮吹上丨六 、 中田將5亥弟一貧料部分與該第二 、"、口P刀一起儲存於該第三適應性元區塊中 輯邊界的位置記錄於—重新映射列表中。’ ’將“邀 43:Π料播案儲存於一記憶體單元陣列之適應性元區 息中之方法,一適應性元區塊包含—個別選定數 除區塊,一抹除區塊係該記憶體陣列 一 」又取小抹除單位, —貧料檔案包含一或多個資料執行,一資料 ^ 於資料執行邊界之間之邏輯上連續之資料封1丁= 流,該方法包含·· 將與一資料執行邊界不相鄰的一資 儲存於-第-適應性元區塊;、抖執行之第-部分 將與該資料執行邊界相鄰的該資料執行 一# 儲存於一第二適應性元區塊中,該第— 第一邛刀 尺寸係最小的適應性元區塊尺寸。υ生兀區塊的 44. 一種重新定位儲存於一記憶體陣列之—一 > 塊中之資料檔案之方法,一資料檔案包复數個凡區 匕合至少一資料執 98673.doc -10- 1280581 行,一資料執行係由延伸於邏輯邊界之間的可定址資料 封包之一序列所組成,該方法包含·· 識別邏輯邊界的位置;以及 複製包含一延伸於一第一邏輯邊界與一第二邏輯邊界 之間的資料執行之複數個邏輯群組,以便將包含該第一 邏輯邊界之一邏輯群組複製至一第一適應性元區塊,其 係一最小尺寸之適應性元區塊,並將不包含一邏輯邊界 之埏輯群組複製至至少一第二適應性元區塊,其非為一 最小尺寸之適應性元區塊。 45. 46. 47. 48. 如請求項44之方法’其中將包含該第二邏輯邊界的一邏 輯群組複製至-第三適應性元區塊,其係—最小尺寸之 兀區塊。 一種將資料儲存於—記憶體單元陣列之適應性元區塊中 之方法,一適應性元區塊包含一個別選定數目之抹除區 塊’抹除區塊係該記憶體單元陣列之最小抹除單位,該 方法包含: 將該等資料儲存於―第-複數個適應性元區塊中;以及 將該等資料從該第一複數個適應性元區塊複製至一第 二複數個適應性元區塊中,以便將—邏輯邊界複製至由 一抹除區塊所組成的-適應性元區塊。 如請求項46之方法,甘、在 .^ 念 其進一步包含將該第一複數個適應 性元區塊標記為過期。 如請求項46之方法,甘士 # & 、 其中㊄接收到具有與儲存於該第一 複數個適應性元區换士 — L鬼中之貧料之邏輯位址相同的邏輯位 98673.doc • 11 - ^8〇S8i 址之已更新貢料時’發生從該第一複數個適應性元區塊 複製資料。 49. 5〇· 51. 52. 53. 54. 55. 如請求項46之方法,其中複製資料發生於一選擇以允許 複製而不會影響其他記憶體操作的時間。 如請求項46之方法,其中先前未儲存於該記憶體單元陣 列中的主機資料係與將該等資料從該第一複數個適應性 元區塊複製至該第二複數個適應性元區塊平行地程式化 至該記憶體單元陣列。 如請求項50之方法,其中將該等資料儲存於一第一適應 性元區塊中,並將主機資料儲存於一第二適應性元區塊 中,該等第一與第二元區塊係平行地加以程式化。 一種將資料檔案儲存於一記憶體陣列之適應性元區塊中 之方法,一適應性元區塊係由若干抹除區塊所組成,抹 除區塊係最小的抹除單位,抹除區塊之該數目係針對一 適應性元區塊而加以個別地選擇,該方法包含: 將複數個可定址資料封包儲存於一記憶體陣列之複數 個適應性元區塊中,使得—適應性元區塊中之抹除區塊 的數:係根據-邏輯邊界是否包含於欲儲存的該等複數 個可定址資料封包中而加以選擇。 I月^項52之方法,其巾_邏輯邊界的位置係由所更新 之一邏輯位址範圍所決定。 σ月求項52之方法,其中一邏輯邊界的位置 來指示。 如巧求項52之方法,其中首先將該等複數個可定址的資 98673.doc -12- 1280581 料封包儲存於一累積器隨機存取記憶體中。 56. -種將資料儲存於—包含複數個程式化區塊之非揮發性 多平面記憶體陣列中之方法,一程式化區塊包含來自該 記憶體陣列之每-平面之—抹除區塊,抹除區塊係該記 fe體陣列之最小抹除單位,該記憶體陣列係連接至一累 f貝為、§己憶體’該方法包含: 由一程式化區塊之一第一複數個抹除區塊形成一第一 元區塊; 由該程式化區塊之一第二複數個抹除區塊形成一第二 元區塊; 以一第一序列將來自一主機的複數個可定址資料單位 接收到该累積裔S己憶體中,該第一序列包括一第一主機 檔案之至少一部分以及一第二主機檔案之至少一部分; 以及 以一第二序列將該等複數個可定址資料單位從該累積 裔圯憶體傳送至該記憶體障列,該第二序列係選擇以平 行地程式化具有一第一主機檔案之該至少一部分的該第 一元區塊以及具有一第二主機檔案之該至少一部分的該 第二元區塊。 57. —種將資料儲存於一非揮發性記憶體陣列中之適應性元 區塊中之方法,一適應性元區塊包含一個別選定數目之 抹除區塊,抹除區塊係該記憶體陣列之最小抹除單位, 該方法包含: 將先前儲存於該記憶體陣列中的一第一資料部分程式 98673.doc -13- 1280581 化至一第一適應性元區塊;以及 同日^將先前未儲存於該記憶體陣列中的一第二資料部 为私式化至一第二適應性元區塊。 58. 如請求項57之方法,其中以該記憶體陣列中可能的最大 平行性同時將該等第一與第二適應性元區塊程式化。 59. 如請求項57之方法,其中該第二資料部分包含直接從_ 主機接收的資料。 6〇· —種將可定址資料單位儲存於一由抹除區塊所形成的非 揮發性記憶體陣列之適應性元區塊中之方法,抹除區塊 係該陣列的最小抹除單位,一適應性元區塊係由一起加 以式化與抹除之一個別選定數目之抹除區塊所組成, 其包含: 將一第一複數個可定址資料單位儲存於一緩衝器元區 塊中; 61. k 一主機接收一第二複數個可定址資料單位;以及 與將該第二複數個可定址資料單位程式化至一第二適 應性元區塊平行地將該第一複數個可定址資料單位從該
緩衝器元區塊複製至一第一適應性元區塊。 如請求項60之方法,其中以該記憶體陣列的最大平行性 將該第-複數個可;t址資料單位儲存於該緩衝器元區塊 用於一元 62·如請求項6〇之方法,其中該緩衝器元區 區塊的最大尺寸。 、有 可定址資料單位 63.如凊求項6〇之方法,其中該第一複數個 98673.doc -14- 1280581 k伸至包括一邏輯邊界。 64.如請求項60之方法,其中將額外複數個可定址資料單位 儲存於該緩衝器元區塊中,並且其中與複製該第一複數 :可定址資料單位以及程式化該第二複數個可定址資料 早位平行地程式化該等額外複數個可定址資料單位。 65·如請求項60之方法,其中與將該第一複數個 資 Μ複製至該第-適應性元區塊—起將―第三複數^ 疋址貧料單位複製至該第—適應性元區塊,該等第—盘 第三複數個可定址資料單位係來自不同的檔案或來自不、 同的資料執行。 66. —種用於儲存資料之可移除記憶卡,其包含: :非揮發性記憶體陣列,其具有一抹除區塊之最小抹 除早位並且具有一第一部分,其中將抹除區塊群聚成包 3平仃地加以程式化之不同數目之抹除區塊之適應性元 品^抹除區塊之5亥數目係根據欲儲存的資料中邏輯邊 界的位置來選擇,該記憶體陣列具有一第二部分,其中 將貝料儲存於7U區塊中’儲存方式與欲儲存於 陣列之該第二部分中的資^體 貝竹〒之貝枓邊界之位置無關; 以及 ,-控制器,其根據該資料部分是否包含—邏輯邊界而 决疋a z fe卡所接收到的—資料部分最初是否係傳送至 該記憶體陣列的該第一卹八4 」4弟邛分或該第二部分。 67.如請求項66之可移除印愔上 , 秒丨矛…己^卡,其中該資料部分包含一邏 輯邊界’並且該資料都八及 貝针°丨+係傳送至該記憶體陣列之該第 98673.doc -15- 1280581 -部分且隨後係複製至該記憶體陣列之該第一部分。 •如睛求項6 7之可斧客…#卜立上 ^ , 夕^ 私除卡,其中複製至該記憶體陣列 以弟#分係與將額外資料從該記憶體陣 部f複製至該記憶體陣列之該第-部分相平行。 h求項67之可移除記憶卡’其中在使用該非揮發性士己 憶體陣=最大平行性之複製操作中,複製至該記憶體 陣列之該第-部分係與從該記憶體陣狀該第二部分 製額外資料相平行。 义 •如π求項66之可移除記憶卡,其中該資料部分包含一邏 輯邊界,並且最初係傳送至該記憶體陣列之該第二部分 且隨後係從該記憶體陣列之該第二部分複製至該記憶體 陣列之該第-部分中一最小尺寸之適應性元區塊。 月求貝66之可#除$憶卡’其中該記憶體陣列之該第 一部$由一第一複數個抹除區塊所組成,該記憶體陣列 之σ亥第一邛分由一第二複數個抹除區塊所組成,組成該 專弟/、弟一複數個抹除區塊之抹除區塊係可互換,使 得一個別抹除區塊在一第一時間係該第一複數個抹除區 鬼之 而在第一日τ間係該第二複數個抹除區塊之一。 72·如請求項66之可移除記憶卡,其進一步包含一第三部 分,其中之抹除區塊不包含有效資料並且不群聚成元區 塊,该第二部分中的個別抹除區塊係轉移至該等第一與 第二部分以儲存資料,並且該等第一與第二部分之個別 抹除區塊當其不包含有效資料時係轉移至該第三部分。 73.如請求項66之可移除記憶卡,其中該第一部分包含一第 98673.doc •16- Ϊ280581 —複數個專用抹除區塊,該第一複數個專用抹除區塊之 個別抹除區塊形成包含資料之適應性元區塊,該第一複 數個專用抹除區塊之額外的個別抹除區塊不包含資料並 且不群聚成適應性元區塊。 74. 75. 76. 77. 如睛求項7 3之可移除記憶卡,其中該控制器從該第一複 數個專用抹除區塊之該等額外個別抹除區塊選擇抹除區 塊’以形成新的適應性元區塊來儲存資料。 如請求項66之可移除記憶卡,其中該第二部分包含一第 二複數個專用抹除區塊,該第二複數個專用抹除區塊之 個別抹除區塊形成包含資料之元區塊,該第二複數個專 用抹除區塊之額外的個別抹除區塊不包含資料並且不群 聚成元區塊。 士明求項7 5之可移除記憶卡,其中該控制器從該第二複 數個專用抹除區塊之該等額外個別抹除區塊選擇抹除區 塊,以形成新的元區塊來儲存資料。
-種將資料儲存於—記憶體陣列中之適應性元區塊中 方法,一適應性元區塊包含一個別選定數目之抹除 塊’抹除區塊係該記憶體陣列之最小抹除單位,該記 妝陣列包括-串列快閃緩衝器,肖串列快閃緩衝哭包 最大尺寸之—或多個緩衝器元區塊,該方法包含:°° 字匕3帛避輯邊界之—第一資料部分健存於該 列快閃緩衝器中之-緩衝器元區塊中; … 隨後將該第一資料部分從該緩衝器元區塊複,至一 在該申列快閃緩衝器中的第一適應性元區塊,該第一 98673.doc -17- 1280581 應性凡區塊由一抹除區塊所組成;以及 將不包含一邏輯邊界之一第二資料部分儲存於不在該 串歹]陝閃緩衝器中之一第二適應性元區塊中, m xa - 略罘一適 78. 79. 80. ^ 凡區塊包含一個以上之抹除區塊。 °月求項77之方法,其中該第二適應性元區塊係一最大 如=求項77之方法,其中從該緩衝器元區塊複製該第— 貢料部分係與從該串列快閃緩衝器將額外資料複製至哼 記憶體陣财*在該串列快閃緩衝n的位置中平行。" 如請求項79之方法,其中該額外的資料包括— 部分,該第二資料部分包含-第二邏輯邊界,該第二次 料部分係複製至由—抹除區塊所組成的_第三適應= 區塊。 98673.doc 18-
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 TW200535854A (en) | 2005-11-01 |
TWI280581B true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI417889B (zh) * | 2009-12-30 | 2013-12-01 | Silicon Motion Inc | 快閃記憶體之寫入逾時控制方法及其記憶裝置 |
Families Citing this family (288)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4175991B2 (ja) * | 2003-10-15 | 2008-11-05 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US7433993B2 (en) | 2003-12-30 | 2008-10-07 | San Disk Corportion | Adaptive metablocks |
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 |
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 |
US7669003B2 (en) * | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
US7552271B2 (en) | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
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 |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
US7558906B2 (en) | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
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 |
US20070143566A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Non-volatile memories with data alignment in 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 |
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 |
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 |
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 |
US7793068B2 (en) * | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
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 |
US8166267B2 (en) | 2006-12-26 | 2012-04-24 | Sandisk Technologies Inc. | Managing a LBA interface in a direct data file memory system |
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 |
US20080155175A1 (en) * | 2006-12-26 | 2008-06-26 | Sinclair Alan W | Host System That Manages a LBA Interface With Flash Memory |
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 |
US7739444B2 (en) | 2006-12-26 | 2010-06-15 | Sandisk Corporation | System using a direct data file system with a continuous logical address space interface |
US7791952B2 (en) * | 2007-01-30 | 2010-09-07 | Micron Technology, Inc. | Memory device architectures and operation |
US8275953B2 (en) * | 2007-03-19 | 2012-09-25 | Sandisk Technologies Inc. | Methods 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 |
US20080235464A1 (en) * | 2007-03-19 | 2008-09-25 | Shai Traister | System 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 |
US20080235489A1 (en) * | 2007-03-19 | 2008-09-25 | Sergey Anatolievich Gorobets | Systems for forcing an update block to remain sequential |
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 |
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 |
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 |
US20090055574A1 (en) * | 2007-08-25 | 2009-02-26 | Bei-Chuan Chen | NAND Flash Memory Device And Related Method Thereof |
US8533562B2 (en) * | 2007-09-12 | 2013-09-10 | Sandisk Technologies Inc. | Data protection after possible write abort or erase 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 |
US8621137B2 (en) * | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Metadata rebuild in a flash memory controller following a loss of power |
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 |
WO2010035241A1 (en) * | 2008-09-28 | 2010-04-01 | Ramot At Tel Aviv University Ltd. | Method and system for adaptive coding in flash memories |
US8671327B2 (en) * | 2008-09-28 | 2014-03-11 | Sandisk Technologies Inc. | Method and system for adaptive coding in flash memories |
US8566562B2 (en) * | 2008-10-03 | 2013-10-22 | Skymedi Corporation | Method for sequentially writing data with an offset to a non-volatile memory |
TWI413984B (zh) * | 2008-10-16 | 2013-11-01 | Silicon Motion Inc | 快閃記憶體裝置以及資料更新方法 |
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 |
US8700840B2 (en) * | 2009-01-05 | 2014-04-15 | SanDisk Technologies, Inc. | Nonvolatile memory with write cache having flush/eviction methods |
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US8244960B2 (en) * | 2009-01-05 | 2012-08-14 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partition management methods |
US8094500B2 (en) | 2009-01-05 | 2012-01-10 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partitioning |
US8392687B2 (en) * | 2009-01-21 | 2013-03-05 | Micron Technology, Inc. | Solid state memory formatting |
EP2396729B1 (en) * | 2009-02-12 | 2019-05-22 | Toshiba Memory Corporation | 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 |
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 |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
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 |
EP2761469B1 (en) * | 2011-09-30 | 2019-11-13 | Intel Corporation | Non-volatile random access memory (nvram) as a replacement for traditional mass storage |
US9146856B2 (en) * | 2012-04-10 | 2015-09-29 | Micron Technology, Inc. | Remapping and compacting in a memory device |
TWI479313B (zh) * | 2012-07-11 | 2015-04-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
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 |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
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 |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction 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 |
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 |
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 |
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 |
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 |
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 |
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 |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US8850108B1 (en) | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
WO2015196378A1 (zh) | 2014-06-25 | 2015-12-30 | 华为技术有限公司 | 读写闪存中数据的方法、装置及用户设备 |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
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 |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
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 |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
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 |
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 |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring 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 |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery 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 |
US10552085B1 (en) | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
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 |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US10120573B2 (en) * | 2015-09-14 | 2018-11-06 | Microsoft Technology Licensing, Llc. | Modular sequential writing of data to data storage devices |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
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 |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US11080155B2 (en) | 2016-07-24 | 2021-08-03 | Pure Storage, Inc. | Identifying error types among flash memory |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
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 |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
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 |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US10545861B2 (en) | 2016-10-04 | 2020-01-28 | Pure Storage, Inc. | Distributed integrated high-speed solid-state non-volatile random-access memory |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
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 |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity 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 |
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 |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
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 |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
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 |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US12032848B2 (en) | 2021-06-21 | 2024-07-09 | Pure Storage, Inc. | Intelligent block allocation in a heterogeneous storage system |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
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 |
US10719265B1 (en) | 2017-12-08 | 2020-07-21 | Pure Storage, Inc. | Centralized, quorum-aware handling of device reservation requests in a storage system |
US10929053B2 (en) | 2017-12-08 | 2021-02-23 | Pure Storage, Inc. | Safe destructive actions on drives |
CN112055850B (zh) * | 2017-12-13 | 2024-04-23 | 美光科技公司 | Nand装置及相关方法和机器可读媒体 |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
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 |
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 |
US12001688B2 (en) | 2019-04-29 | 2024-06-04 | Pure Storage, Inc. | Utilizing data views to optimize secure data access in a storage system |
US11995336B2 (en) | 2018-04-25 | 2024-05-28 | Pure Storage, Inc. | Bucket views |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US12079494B2 (en) | 2018-04-27 | 2024-09-03 | Pure Storage, Inc. | Optimizing storage system upgrades to preserve resources |
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 |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
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 |
US12087382B2 (en) | 2019-04-11 | 2024-09-10 | Pure Storage, Inc. | Adaptive threshold for bad flash memory blocks |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
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 |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
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 |
US12056365B2 (en) | 2020-04-24 | 2024-08-06 | Pure Storage, Inc. | Resiliency for a storage system |
US11586385B1 (en) | 2020-05-06 | 2023-02-21 | Radian Memory Systems, Inc. | Techniques for managing writes in nonvolatile memory |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
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 |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US12099742B2 (en) | 2021-03-15 | 2024-09-24 | Pure Storage, Inc. | Utilizing programming page size granularity to optimize data segment storage 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 | 오픈엣지테크놀로지 주식회사 | 어레이 풀링 방법 및 이를 위한 장치 |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
US11966605B2 (en) * | 2022-03-09 | 2024-04-23 | Kioxia Corporation | Superblock-based write management in non-volatile memory devices |
Family Cites Families (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5043940A (en) | 1988-06-08 | 1991-08-27 | Eliyahou Harari | Flash EEPROM memory systems having multistate storage cells |
US5095344A (en) | 1988-06-08 | 1992-03-10 | Eliyahou Harari | Highly compact eprom and flash eeprom devices |
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 |
US5313421A (en) | 1992-01-14 | 1994-05-17 | Sundisk Corporation | EEPROM with split gate source side injection |
US6222762B1 (en) | 1992-01-14 | 2001-04-24 | Sandisk Corporation | Multi-state memory |
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 |
US6456528B1 (en) | 2001-09-17 | 2002-09-24 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US6717847B2 (en) | 2001-09-17 | 2004-04-06 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
GB0123416D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
GB0123412D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system sectors |
GB0123415D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Method of writing data to non-volatile memory |
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 |
US7096313B1 (en) | 2002-10-28 | 2006-08-22 | Sandisk Corporation | Tracking the least frequently erased blocks in non-volatile memory systems |
US7103732B1 (en) | 2002-10-28 | 2006-09-05 | Sandisk Corporation | Method and apparatus for managing an erase count block |
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 |
US6831865B2 (en) | 2002-10-28 | 2004-12-14 | Sandisk Corporation | Maintaining erase counts in non-volatile storage systems |
US6985992B1 (en) | 2002-10-28 | 2006-01-10 | Sandisk Corporation | Wear-leveling in non-volatile storage systems |
US8412879B2 (en) | 2002-10-28 | 2013-04-02 | Sandisk Technologies Inc. | Hybrid implementation for error correction codes within a non-volatile memory system |
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 |
-
2004
- 2004-12-16 US US11/016,271 patent/US7383375B2/en active Active
- 2004-12-22 EP EP04815389.4A patent/EP1700204B1/en not_active Not-in-force
- 2004-12-22 KR KR1020067013319A patent/KR100983212B1/ko active IP Right Grant
- 2004-12-22 WO PCT/US2004/043306 patent/WO2005066770A2/en active Application Filing
- 2004-12-22 CN CNB2004800421908A patent/CN100524209C/zh not_active Expired - Fee Related
- 2004-12-22 JP JP2006547364A patent/JP4977473B2/ja not_active Expired - Fee Related
- 2004-12-22 EP EP10009780A patent/EP2256621A1/en not_active Withdrawn
- 2004-12-30 TW TW093141372A patent/TWI280581B/zh not_active IP Right Cessation
-
2012
- 2012-01-13 JP JP2012005217A patent/JP5438137B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI417889B (zh) * | 2009-12-30 | 2013-12-01 | Silicon Motion Inc | 快閃記憶體之寫入逾時控制方法及其記憶裝置 |
Also Published As
Publication number | Publication date |
---|---|
JP4977473B2 (ja) | 2012-07-18 |
EP2256621A1 (en) | 2010-12-01 |
US20050144367A1 (en) | 2005-06-30 |
JP2012099139A (ja) | 2012-05-24 |
EP1700204B1 (en) | 2014-03-12 |
WO2005066770A2 (en) | 2005-07-21 |
US7383375B2 (en) | 2008-06-03 |
TW200535854A (en) | 2005-11-01 |
CN1922571A (zh) | 2007-02-28 |
JP5438137B2 (ja) | 2014-03-12 |
CN100524209C (zh) | 2009-08-05 |
JP2007517325A (ja) | 2007-06-28 |
KR20070012630A (ko) | 2007-01-26 |
EP1700204A1 (en) | 2006-09-13 |
KR100983212B1 (ko) | 2010-09-20 |
WO2005066770A9 (en) | 2005-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI280581B (en) | Data run programming | |
TWI805323B (zh) | 儲存裝置 | |
JP6553566B2 (ja) | メモリシステムおよび制御方法 | |
TWI421684B (zh) | 可再程式化非揮發性記憶體系統以及操作ㄧ非揮發性記憶體系統之方法 | |
US10628303B2 (en) | Storage device that maintains a plurality of layers of address mapping | |
US20050144363A1 (en) | Data boundary management | |
CN104866428B (zh) | 数据存取方法和数据存取装置 | |
US8438325B2 (en) | Method and apparatus for improving small write performance in a non-volatile memory | |
CN106716334A (zh) | 文件系统卷内的高效数据移动 | |
CN1227591C (zh) | 记录系统、数据记录设备、存储设备和数据记录方法 | |
TW200905680A (en) | Method and system for storage address re-mapping for a memory device | |
TW201142589A (en) | Apparatuses for managing and accessing flash memory module | |
CN1320242A (zh) | 记录系统、数据记录设备、存储设备和数据记录方法 | |
TWI336856B (en) | Method and system of logically-addressed file storage | |
TW200844740A (en) | Use of a direct data file system with a continuous logical address space interface | |
TW200837562A (en) | Non-volatile memory and method for class-based update block replacement rules | |
CN109976664A (zh) | 固态存储设备的日志数据组织 | |
TW201126338A (en) | Flash memory device and data access method for flash memories | |
JP4130808B2 (ja) | フォーマット方法 | |
CN110312986A (zh) | 用于在固态设备上存储数据的流的机会性使用 | |
JP2006011533A (ja) | メモリカード、半導体装置、及び半導体メモリの制御方法 | |
TW200842578A (en) | Configuration of host LBA interface with flash memory | |
JP2008299455A (ja) | データ記憶装置及びデータ管理方法 | |
JP2004206615A (ja) | 記憶装置 | |
JP2007241619A (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |