TWI267866B - Tracking the most frequently erased blocks in non-volatile memory systems - Google Patents
Tracking the most frequently erased blocks in non-volatile memory systems Download PDFInfo
- Publication number
- TWI267866B TWI267866B TW092125804A TW92125804A TWI267866B TW I267866 B TWI267866 B TW I267866B TW 092125804 A TW092125804 A TW 092125804A TW 92125804 A TW92125804 A TW 92125804A TW I267866 B TWI267866 B TW I267866B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- component
- memory
- components
- erased
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Non-Volatile Memory (AREA)
- Memory System (AREA)
- Filling Or Discharging Of Gas Storage Vessels (AREA)
- Radiation-Therapy Devices (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
1267866 九、發明說明: 【發明所屬之技術領域】 本發明係有關於下列共同待審中之美國專利申請案:於 非依電性儲存系統中自動進行磨損調勻之技術(代理人文 件編號:SANDP005/DK0278.000US);非依電性系統之磨損 調勻技術(代理人文件編號:SANDP023/DK0366.000US); 追蹤非依電性記憶體系統中最不常抹除區塊之技術(代理 人文件編號:SANDP026/DK0366.003);用以分割邏輯區塊 之方法與裝置(代理人文件編號·· SANDP028/ DK0371.000US);用以將區塊中之頁面分組之方法和裝置 (代理人文件編號:SANDP029/DK0410.000US);以及用以 分解與共用邏輯區塊相關聯之實體區塊的方法與裝置(代 理人文件編號:SANDP03 0/DK0416.000US);以及美國專利 第608 1447號及美國專利第62300233號等,其中,該等案件 之内容係包含於此處以作為參考之用。 本發明大致係有關於大量數位資料儲存系統。更詳而言 之,本發明係有關於用以容許與非依電性儲存系統之儲存 區域有關聯之磨損可實質地跨所有儲存區域分佈之系統與 方法。 【先前技術】 諸如快閃記憶體儲存系統之非依電性記憶體系統之使用 係因此等記憶體系統之緊密實體大小及可重複再規劃非依 電性記憶體之能力而增加。快閃記憶體儲存系統之緊密實 體大小可促進將此等儲存系統使用於日漸普及之裝置内。 95647-940816.doc 1267866 使用快閃記憶體儲存系統穿 M ^ 凡乏忒置包括(但不限於)數位相 位攝錄放影機、數位音樂播放器、手持式個人電腦、 疒“求疋位袭置等。可重複再規劃包括於快閃記憶體儲 之# :之非依電性5己憶體之能力允許快閃記憶體儲存系統 之使用與再使用。 :般而言’快閃記憶體儲存系統可包括快閃記憶體卡及 吃‘二!晶片組。快閃記憶體晶片組-般而言包括快閃 構件以及控制器構件。通常,快閃記憶體晶片組係 二可構組於置入式系統。此等總成或主機系統之製造 :常取得構件形式之快閃記憶體,以及其他構件,而後 等快閃記憶體及其他構件構組為主機系統。 雖」决閃5己憶體系、统内之非依電性記憶體,或更詳而古 之,快閃記憶體儲存區塊,可重複地規劃及抹除,每一區 :或實體位置可於區塊磨損前’亦即於記憶體開始變:: 前’僅抹除特定數目之次數。亦即,每一區塊具有規割及 抹除週期限制。在某些記憶體中’於—區塊被認為係無法 :用前,此區塊可被抹除約一萬次。在其他記憶體中,於 一區塊被認為係已磨損前,此區塊可被抹除約十萬次或甚 =尚達百萬次。當區塊磨損,因而導致快閃記憶體系統之 整體儲存容量之部份的使用損失或性能之明顯退化時、,快 閃記憶體系統之使用者可能受到例如儲存資料損失或無法 儲存資料等之不利影響。 快閃記憶體系統内之區塊或實體位置之磨損係取決於每 一區塊中有多少被規劃而改變。若一區塊,或更一般+之, 95647-940816.doc 1267866 一儲存元件僅被規劃一次,而後有效地未再被規劃,則規 劃次數和抹除週期及與因此而產生之與此區塊有關之磨損 一般而言將相對地低。然而,若一區塊被重複地寫入與抹 除’例如循環為之,則與此區塊有關之磨損一般而言將相 對地高。當邏輯區塊位址(LB A)係由例如存取或使用快閃記 憶體系統之主機使用,以存取儲存於快閃記憶體系統之資 料時’若主機重複地使用相同之Lb A寫入或過寫入資料, 則如熟於此技者所能瞭解者,快閃記憶體系統内之相同實 體位置或區塊係被重複地寫入與抹除。 备某些區塊係有效地磨損,同時其他區塊係相對地未磨 損時,一般而言,磨損區塊之存在將危害快閃記憶體系統 之整體性能。除與磨損區塊本身有關之性能退化外,當未 磨知區塊之數目並不足以儲存所欲資料時,快閃記憶體系 統之整體性能亦可能受到危害。冑常,當快閃記憶體系統 出現臨界數目之磨損區塊時,即使此快閃記憶體系統之許 多其他晶胞係相對地未磨損,快閃記憶體系統仍可能被認 為係無法使用。當包括實質上相對未磨損區塊之數目之快 閃-己憶體系統係被考量為無法使用時,與此快閃記憶體系 統有關之許多資源實際上係浪費的。 為柘加陕閃C憶體系統内之區塊可適當平均地磨損的可 能性,磨損調句操作經f被實施。如熟於此技者將可瞭解 者磨才貝调勻操作一般而言係排置為可容許與特定LBA有 關之實體位置或區塊可被改變,使得相同lb A並非一直與 相同實體位置或區塊產生關聯。藉由改變服之區塊關聯 95647-940816.doc 1267866 性,於其他區塊磨損前,特定區塊較不可能磨損。 一傳統磨損調勻處理係有關顧客或主機L B A之二相對大 之部份係為對映之調換實體位置。亦即,與儲存晶胞之相 對大區段有關之LBA被調換。此種調換係經由來自主機系 統之手動命令,例如經由主機之使用而初始化,且因此, 對顧客而言並非透明。同時,與移動於儲存晶胞之二相對 大區段間之資料有關之調換操作相當耗費時間,且因此而 無效率。此外,藉由消耗與整體快閃記憶體系統有關之重 要資源的相對長之期間的調換操作,整體快閃記憶體系統 之性能可能受到不利之影響。如熟於此技者將可瞭解者, 自第一位置移動資料通常與將資料複製於另一位置並將資 料自第一位置抹除有關。 另一項傳統磨損調勻處理係有關容許區塊磨損。一旦區 塊已有效磨損,分配予此等區塊之扇區可藉由將與此等扇 區有關之位址對映於備用區域而再分配,一旦儲存扇區之 區塊已磨損或變為無法使用。由於備用區域或區塊之數目 係受到限制且有價值,故其無法一直存有與無法使用之區 塊有關之扇區可被對映之備用區域。此外,一般而言,於 區塊變為無法使用後之有效再對映扇區僅容許整體快閃記 憶體系統之性能退化。 因此,吾人所欲者為用以有效且實質上透明地於快閃記 fe體儲存系統内實施磨損調勻之方法與設備。亦即,吾人 所欲者係可促進與快閃記憶體儲存系統有關之實體位置之 更為平均之磨損而無需大量使用計算資源的磨損調勻處 95647-9408l6.doc 1267866 理0 【發明内容】 本發明係有關於用以於非依電性記憶體系統内實施磨損 調勻之系統與方法。根據本發明之—態樣,用以處理包括 於記憶體线之非依電性記憶體之元件之方法包括獲得與 數個元件有關之抹除次數。包括於此等數個元件中之每一 元件包括指示此元件已被抹除之次數的相關抹除次數。此 方法亦包括將包括於此等數個元件之數個元件分組為第一 組’及將與此第-組有關之抹除次數儲存於記憶體系統之 記憶體構件。將此等數個元件分組為第-組通常包括選擇 有一此等數個元件有關之抹除次數之最高相關抹 除次數的此等數個元件中之抹除元件。 員他例中 、, 此方法包括獲得與此等數個元件有關之 平均抹除次數。於此實施例中,將此等數個元件分組包括 比較與此f數個㈣㈣之抹除讀及平均抹除次數,及 =此等數個抹除元件識別為自具有大於平均抹除次數預定 靶圍之相關抹除次數之此等數個元件選擇之元件。 藉由維持磨損元件群組之諸如延伸區塊之磨損元件,磨 損兀件之磨損可藉由防止磨損元件被分派以供使用直至較 少磨損元件最終地變為較多磨損為止而本質地管理。由於 磨除較多之元件通常皆有效地被防止使用,且因此直至其 他70件被使用且抹除較多時為止方再次被抹除,因此,= ==:變為平均。一般而言,若具有相對高抹除 °° 4實貝地被防止使用直至此等區塊不再被考量為 95647-940816.doc 1267866 :声:1目對南之抹除次數為止,諸如例如包括置入式快閃記 e體或快閃記憶體卡之裝置之媒體的整體壽命可延伸。 ,據本發明之另_實施例,記憶體系統包括儲存一表之 =憶體、包括儲存元件之第二記憶體、及處理器。儲 二°己‘體之表包括與被抹除且具有大於與記憶體系 έ關之平均抹除次數之相關抹除計數器的第一儲存元件 有關之項目。供第一儲存元件組之每一儲存元件用之相 關抹除計數器指示此儲存元件已被抹除之次數。此等 疋件包括第-儲存元件組,且平均抹除次數係使用與此等 儲存7G件有關之抹除計數器加以判定。於一實施例中,第 健存元件組係實質地使用此表加以識別。 根據本發明之再另—態樣1以處理包括於記憶體系統 :非依電性記憶體元件之方法包括識別一第一元件組,此 弟一π件組包括具有較未包括於此第一元件組之抹除元件 更為磨損之抹除元件。與此第一元件組有關之項目係被置 放於一資料結構並儲存。最後,此第一元件組中之一第一 2件係使用储存項目而識別。此第一元件係較未包括於此 第一元件組之其他元件更少磨損。 於一實施例中,每一元件具有一相關抹除次數,且識別 此第一元件組牵涉識別數個對其而言相關抹除次數係相對 地兩之抹除元件,及將此等數個對其而言相關抹除次數係 相對地高之元件分組為第一組。於此實施例中,此方法亦 可包括使用第一組之每一元件之相關抹除次數判定第一平 均抹除次數;判定未包括於第一組之第二元件之相關抹除 95647-940816.doc -10- 1267866 次數係於何時實質地超過第-平均抹除次數;當1判定第 二,件之相關抹除次數實質地超過第—平均抹除次數時, 將第一疋件自第一組移除;及當其 ^ /、鈣疋弟一兀件之相關抹 H質地超過第-平均抹除次數時,將第二元件增加 至第一組。 /根據本發明之再另-態樣,心處理與非依電性記憶體 糸統有關之記憶體元件組之方法包括將記憶體元件組之抹 除記憶體元件中之至少一者分組為第一群組,此第一群组 之特徵在於其至少與未被分組為第_群組之抹除記憶體元 件組之記憶體元件具有相同之抹除次數。 於閱讀下文之詳細說明及研討圖式之各種表後,本發明 之此等及其他優點將更為清楚。 【實施方式】 較佳實施例之詳細說明 快閃記憶體儲存系統内之非依電性記憶體儲存區塊可重 複地規劃與抹除,雖然一般而言每一區塊於磨損前僅可抹 除有限之次數。當一區塊磨損時,與包括此磨損區塊之快 閃記憶體儲存系統之整體儲存容量之部份有關的性妒 顯退化發生,且儲存於此部份之資料可能遺失,其亦可能 無法儲存資料於此部份。 為增加快閃記憶體儲存系統内之區塊磨損更為平均之可 能性,區塊應更為平均地利用。藉由掌握每一區塊已磨損 之次數,例如經由利用抹除次數,系統内之記憶體可更為 平均地使用。抹除次數管理技術可將掌握特定區塊已被抹 95647-940816.doc 1267866 除之次數之抹除次數儲存於與此區塊有關之冗餘區域。表 可被建置於實質地致動使用中之區塊以有效地將此等區塊 與具有相對高抹除次數之區塊及具有相對低抹除次數之區 塊分離的系統記憶體内。當使用中之區塊被抹除時,此區 塊可適當地被「增加」至具有相對高抹除次數之區塊表或 具有相對低抹除次數之區塊表中之任一者。同樣地,區塊 可自具有相對高抹除次數之區塊表或具有相對低抹除次數 之區塊表中之任一者「移動」至區塊對映表,亦即一組使 用中之區塊表,以實質地替換已自區塊對映表再分配之任 意區塊。 藉由分類區塊,區塊可更為平均地利用,如同每一區塊 可更為有效地管理以平均與此等區塊有關之磨損。更詳而 言之,將區塊分類為表可使具有低抹除次數之區塊與具有 回抹除次數之區塊更為輕易地被識別,且因此未利用明顯 數里之計算資源。因此,磨損調勻之發生相對地有效率。 因而,快閃記憶體系統之壽命可實質地延伸而未明顯地影 響快閃記憶體系統之性能。 之,非依電性記憶體裝置
之軟體。首先參考第la圖, 之控制器 其將說明包括諸如緊密快閃 快閃記憶體系統,或更一般言之,非依 一般而言包括快閃記憶體卡及晶片組。通 系統係被用以與主機系統一起使用,以 95647-9408l6.doc -12· 1267866 憶體(CompactFlash Memory)卡之非依電性記憶體裝置之一 般主機系統。主機或電腦系統1 〇〇 一般而言包括容許微處理 器108、隨機存取記憶體(RAM)U2、及輸入/輸出電路116 通仏之系統匯流排104。應瞭解者為,主機系統1〇〇可一般 地包括其他構件,例如因供說明之故而未顯示之顯示器裝 置及網路裝置。 一般而S,主機系統100可捕捉包括(但不限於)靜態影像 資訊、音頻資訊、及視頻影像資訊等資訊。此種資訊可即 時捕捉並以無線方式傳送至主機系統丨00。在主機系統1 可實質地為任意系統的同時,主機系統i00通常係為諸如數 位相機、視頻攝影機、蜂巢式通信裝置、音頻播放器、或 視頻播放器。然而,應瞭解者為,一般而言,主機系統100 可實質地為可儲存資料或資訊,及檢索資料或資訊之任意 系統。 應瞭解者為,主機系統100亦可為僅捕捉資料,或僅檢索 貧料之系統。亦即,主機系統100可為儲存資料之專用系 統,或主機系統100可為讀取資料之專用系統。藉由釋例, 主機系統1 〇〇可為排置為僅寫入或儲存資料之記憶體寫入 t °任擇地,主機系統_可為諸如通常係排置為可讀取或 檢索資料,且未捕捉資料之MP3播放器之裝置。 在一貫施例中係為可移除之非依電性記憶體裝置之非依 電j汜U體衣置120係被排置為可與匯流排丨〇4介接以儲存 :資訊。任選輸入/輸出電路區塊13〇可容許非依電性記憶體 咸置120間接地與匯流排1()4介接。當以前述方式實施時, 95647-940816.doc •13· 1267866 兩入/輪出電路區塊116係作用為可減少匯流排1〇4之負 T如同熟於此技者可瞭解者。非依電性記憶體裝置no =括非依電性記憶體124及任選記憶體控制系統128。於一 2轭例中,非依電性記憶體裝置120可實施於一單晶片或晶 粒上。任擇地,非依電性記憶體裝置120可實 JL+^ , 、 、 又曰曰乃 :且’或可形成-晶片組且可—起使用以作為非依電性記 思衣置120之多個分散構件上。非依電性記憶體裝置η。 之-實施例將參考㈣圖於下文作更料細之說明。 /依電性記憶體124 ’例如諸如副㈣閃記憶體之快閃 5己憶體’係排置為可儲存資料’使得資料可於需要時被存 取及讀取。儲存於非依電性記憶體124之資料亦可於適當時 抹除’雖然應瞭解者為,非依電性記憶體124内之某些資料 =不:抹除。健存資料、讀取資料、及抹除資料^理 2而言Μ記憶肋㈣統128所㈣,或於未存有記憶 工制糸統128時,藉由以微處理器⑽所執行之軟體控 非依電性記憶體124之操作可藉由本質地令非依電性記 體124之扇區更為實質地且平均地磨損而加以管理,以使 非依電性記憶體124之壽命可實質地最大化。 非依電性記憶體裝置12G已大致地說明為包括任選記憶 制糸統128’亦即控制器。通常’非依電性記憶體裝置 120可包括供非依電性記憶體124用之分離晶片,且記憶體 4工制糸統12 8 ’亦即批告丨丨哭旅松 ^ P&制态發揮功用。藉由釋例,於包括 不限於㈣卡、緊密快閃記憶體卡、多媒體卡、及保全數位 卡之非依電性記憶體裝置包括可實施於分離晶片之控制器 95647-940816.doc -14- 1267866 的同時,其餘非依電性記憶體裝£可不包括實施於分離晶 片之控制器。於非依電性記憶體裝置120並未包括分離記憶 體及控制器晶片之一實施例中,記憶體及控制器功能可集 積於單一晶片,如同熟於此技者所瞭解者。任擇地,記憶 體控制系統128之功能性可藉由微處理器1〇8而提供,如同 上文所述之非依電性記憶體裝置12〇並未包括記憶體控制 12 8之實施例。 參考第lb圖,根據本發明之—實施例,非依電性記憶體 裝置120將更為詳細地說明。如同上文所說明者,非依電性 記憶體裝置120包括非依電性記憶體124且可包括記憶體控 制系統128。雖然於記憶體124係為諸如置入式ναν〇裝置 時,非依電性記憶體裝置120可不包括控制系統128,但記 憶體124及控制系統128,或控制器可為非依電性記憶體裝 置120之主要構件。記憶體124可為形成於半導體基板上之 記憶體晶胞陣列,纟中,f料之—或多個位元係藉由將電 何之二或更多位準中之一者儲存於記憶體晶胞之個別儲存 兀件而儲存於個別記憶體晶胞。非依電性快閃電氣可抹除 唯讀記憶體(EEPROM)係為供此種系統用之常見形式記憶 體之釋例。 當以前述方式實施時,控制系統128係經由匯流排15而與 主機電恥或其他使用記憶體系統之系統通信以儲存資料。 一般而言,匯流排15係為第i圖之匯流排1〇4之部份。控制 系統128亦控制可包括記憶體晶胞陣列丨丨之記憶體124之操 作以寫入藉由主機所提供之資料、讀取主機所要求之資 95647-940816.doc -15- 1267866 料、並實施各種操作記憶體124之雜務功能。一般而言,控 制系統128包括具有相關非依電性軟體記憶體、各種邏輯電 路、及類似物之-般目的微處理器…或多個狀態機亦經 常被包括以控制特定常式之性能。 記憶體晶胞陣列丨丨通常係藉由控制系統128或微處理器 108而經由位址解碼器17定址。解碼器17應用正確電壓於陣 列11之閘極與位元線以規劃資料而自藉由控制系統128定 址之記憶體晶胞群組讀取資料或抹除藉由控制系統128定 址之記憶體晶胞群組。附加電路19包括控制取決於被規劃 於晶胞之定址群組之資料而應用於陣列元件的電壓的規劃 驅動器。電路19亦包括感應放大器及其他自記憶體晶胞之 定址群組讀取資料所需之電路。欲規劃於陣列11之資料, 或最近自陣列11讀取之資料通常係儲存於控制系統128之 緩衝器記憶體21。控制系統128通常亦含有各種供用以暫時 地儲存命令及狀態資料與類似物之暫存器。 陣列11被分割為大量之區塊0(BLOCK 〇)至區塊 N(BLOCK N)記憶體晶胞。如同對快閃eeprom系統而言係 為普通的’區塊通常係抹除之最小單位。亦即,每一區塊 含有最小數目之一併被抹除之記憶體晶胞。每一區塊通常 係分割為數頁,如同亦於第2圖中說明者。頁通常係規劃之 最小單位。亦即,基本規劃操作將資料寫入記憶體晶胞之 最小一頁或自記憶體晶胞之最小一頁讀取資料。一或多個 資料扇區通常係儲存於每一頁内。如第lb圖所示,一扇區 包括使用者資料及附加資料。附加資料通常包括自使用者 95647-940816.doc -16 - 1267866 "貝料及頁面之附加資料計算之錯誤校正碼(ECC)。當資料係 被規劃於陣列11時,控制系統128之部份23計算Ecc,並於 二貝料係自陣列11讀取時,檢查Ecc。任擇地,ECC係儲存於 與其所附屬之使用者資料不同之頁或不同之區塊。 對應於磁碟驅動機之扇區大小,使用者資料扇區通常係 為5 12位元。附加資料通常係為額外之16位元。資料之一扇 區最常見者係被包括每一頁,但二或更多扇區可代之以形 成一頁。一般而言,任意數目之頁可形成一區塊。藉由釋 例,區塊可自8頁至512、1024或更多頁而形成。區塊數目 係被選擇以提供系統記憶體所欲之資料儲存容量。陣列i j 通常係被分割為數個次陣列(未顯示),每一次陣列含有區塊 比例,其於某種程度上係彼此獨立地操作以增加各種記憶 體操作執行之平行性程度。數個次陣列之使用之一釋例係 說明於美國專利第5,890,192號,該專利之全部内容在此係 作為本發明之參考資料。 δ非依電〖生δ己憶體124之諸如儲存元件之特定區段係連 續地被規劃,例如重複地寫入及抹除時,此特定區域一般 而言較未被連續規劃之區域更快磨損。為有效地「平均」 非依電性記憶體丨24内不同區域之磨損,磨損調勻可實質地 自動實施,以較少規劃被連續規劃之區域,同時,可較多 規劃未被連續規劃之區域。 一般而言,為實施磨損調 位置有關之一組扇區之區塊 位置有關之區塊調換。亦即 勻,諸如與被重複規劃之實體 可以與未被重複規劃之一實體 ,已規劃且因此重複抹除之實 95647-940816.doc -17- 1267866 體區塊可以與較少規劃及抹除之實體區塊調換。 於本發明之一實施例中,為使其可輕易地判定特定實體 區塊是否已重複規劃及抹除,抹除次數可與此區塊儲存。 亦即,掌握區塊被抹除之次數之計數器可被維持且於每次 區塊被抹除時增大。此種抹除次數可被用以促進特定區塊 是否應以另一較少抹除之區塊調換之判定。第2圖係根據本 發明之一實施例之快閃記憶體之部份的圖式表示。快閃記 憶體200可被分割為頁204。每--般而言含有約5 12位元之 使用資料之頁204有效地包括冗餘區域206,例如頁204a包 括冗餘區域206a。每一冗餘區域206或附加區域可包括高達 約16位元之資訊,其通常包括(但不限於)群組識別器216、 更新索引212、及抹除次數214。 通常’任意數目之頁204係包括於區塊21〇内。為方便說 明之故’頁204a、204b係顯示為已包括於區塊21〇内,雖然 應瞭解者為’包括於區塊21之頁204之數目可廣泛地變更。 於此說明實施例中,區塊2 10可排置為包括約32頁。舉例言 之,g快閃ό己ί思體200包括約5 12百萬位元(Megabits、Mb) 時,快閃記憶體200可有效地被分割為約32頁,每頁4096 區塊。 如前所述,抹除次數214可於每次使用者資料自相關區塊 抹除時增大。舉例言之,與區塊210有關之抹除次數214可 於每次自區塊210抹除資料時增大。由於被包括於區塊210 之每一頁204a及204b —般而言具有抹除次數214,與每一頁 204a及204b有關之抹除次數214可於區塊210被抹除時增 95647-940816.doc -18 - 1267866 大田含有=貝料之區塊被抹除時,資料區域與冗餘區域皆 被抹除或清空。抹除區塊係被增加至含有抹除區塊之備用 區塊儲存區,此等抹除區塊含有相較於其他表之抹除區塊 更小之抹除次數。此備用區塊表本質地係為最不常抹除區 塊(LFEB)表。於本發明之—實施例中,具有較大抹除次數 之抹除區塊被增加於含有抹除區塊之儲存區,此等抹除區 塊含有相較於其他表之抹除區塊更大之抹除次數。此儲存 區係為最常抹除區塊(MFEB)表。抹除區塊之抹除次數之增 量為一且係取決於次數值而儲存於LFEB4Mfeb表。 諸如抹除次數214之抹除次數可於初始化要求期間被存 取。舉例言之,初始化要求可於諸如包括置人式快閃記憶 體之系統的系統進行電力開啟時產生、當系統内之備用區 塊執行時產生、當使用者要求平衡區塊分派時產生、及當 使用者要求區塊使用更為平均時產生。第3圖係一處理流程 圖,其說明根據本發明之—實施例之與㈣記憶體系統有 關之與初始化要求之處理有關的步驟。—般言《,初始化 要求可藉由使用者而初始化或實質地自動藉由與快閃記憶 體系統有關之控制器,例如週期性地或於觸發條件符合時 而初始化。響應於初始化要求之處理300開始於步驟则, 其中’初始化要求係有效地接收。初始化要求可藉由與欲 初始化之快閃記憶體通信之控制器或處理器接收。舉例言 之,此要求可由使用者經由電力開啟之主機或於欲平衡: 塊分派時提供。 一旦初始化要求被接收,平均抹除次數可於步驟獲 95647-940816.doc -19- 1267866 得。於-實施例中,平均抹除次數係儲存於寫人於與此系 統有關之NAND記憶體内之抹除次數區塊。含有平均抹除次 及每區塊之抹除次數之抹除次數區塊(ECB)係儲存於 快閃記憶體區塊。應瞭解者為,當抹除次數區塊產生時, 例,當系統被初始地格式化時,表内之平均抹除次數及每 一區塊之抹除次數之值通常被初始化為零。於獲得平均抹 除次數後,實質地供系統内之所有區塊用之抹除次數可被 獲侍。如上文與第2圖有關之說明所示,供含有資料之特定 區塊用之抹除次數可被儲存於與此區塊有關之冗餘區域。 因此獲得貝質上供所有含有資料之區塊用之抹除次數包 括存取與每一區塊有關之冗餘區域,並將每一抹除次數儲 存於抹除次數區塊。 於一初始化要求,抹除區塊之抹除次數係自抹除次數區 塊獲得。一般而言,由於區塊之冗餘區域已被抹除,因此 抹除次數區塊保留其值。當整體系統關閉電源時,通常會 產生一終止要求,使得抹除次數表可被更新以實質地含有 所有區塊之最新抹除次數。於任何給定時間,區塊歸屬於 最常抹除區塊表、最不常抹除區塊表、抹除次數區塊、或 區塊對映表。歸屬於抹除次數區塊之區塊之抹除次數係儲 存於此區塊之冗餘區域。含有資料之區塊之抹除次數通常 歸屬於區塊對映表且係儲存於冗餘區域。由於區塊實際上 從未被使用,因此歸屬於區塊對映表之抹除區塊之抹除次 數具有零抹除次數。由於此等表之每一項目通常含有抹除 區塊之區塊數目及其抹除次數兩者,因此自最不常抹除區 95647-940816.doc -20- 1267866 塊表或最常抹除區塊表獲得抹除次數牵涉自表取得數值。 於初始化要求之處理完成前,抹除次數區塊通常係以所有 區塊之目前抹除次數加以更新。 於初始化要求完成後,應瞭解者為,抹除區塊之抹除次 數可不需要被更新於抹除次數區塊。由於區塊之冗餘區域 被抹除,因此抹除次數區塊保留其值。當系統關閉電源時, 會產生一終止要求,使得抹除次數區塊可被更新以含有所 有區塊之最新抹除次數。歸屬於最不常抹除區塊之抹除區 塊之抹除次數係自最不常抹除區塊表加以檢索,同時,歸 屬於最常抹除次數區塊之抹除區塊之抹除次數係自最常抹 除區塊表加以檢索。一般而言,剩餘抹除區塊之抹除次數 可自抹除次數區塊力e以檢索。 於步驟320中,區塊對映表係分派於NAND記憶體。如同 熟於此技者將可瞭解者,區塊對映表可被排置為可提供邏 輯區塊位址(LBA)與實體區塊位址(PBA)間之對映。此外, 最常抹除區塊表與最不常抹除區塊表亦於步驟320分派。 最常抹除區塊表通常係設為或組構為可有效地保持與最 常抹除之抹除區塊有關之資訊。亦即,最常抹除區塊係排 置為可保持諸如抹除次數及對映資訊等關於具有系統最高 抹除次數之抹除區塊之資訊。類似地,最不常抹除區塊表 通常係設為或組構為可供給關於具有最低抹除次數之抹除 區塊之資訊。雖然最常抹除區塊表之大小與最不常抹除區 塊之大小可廣泛地改變,此等大小係取決於被指定為最常 抹除之區塊數目與被指定為最不常抹除之區塊數目。通 95647-940816.doc -21- 1267866 常,最常抹除區塊表一般而言係設為可供給較最不常抹除 區塊表更少抹除區塊之資訊。藉由釋例,最常抹除區塊表 可設為約可供給供18個抹除區塊用之資訊,同時最不常抹 除區塊表可設為可供給與約7〇個抹除區塊有關之資訊。任 擇地,最常抹除區塊表可設為約可供給供1〇個抹除區塊用 之為訊,同時最不常抹除區塊表可設為可供給約可供給供 50個抹除區塊用之資訊。 於步驟320分派表後,抹除區塊於步驟324被識別。而後, 於步驟328,「N」個抹除區塊可被分配予最常抹除區塊且本 質上係被分配予最常抹除表。於一實施例中,此等「N」個 抹除區塊可為具有最高抹除次數之「N」個抹除區塊,如同 比較所有抹除次數所判定者。任擇地,此等欲儲存於最常 抹除區瑰表之「N」個抹除區塊可根據與於步驟3〇6所獲得 之平均抹除次數進行比較而判定。舉例言之,此等「n」個 抹除區塊可為具有至少係給定百分比之抹除次數之「n」個 抹除區塊,例如約為高於平均抹除次數之百分之二十五。 一旦最常抹除區塊表有效地產生,於步驟332,「厘」個 抹除區塊可被識別,且有效地分配予最不常抹除區塊表。 -般而言’此等「M」個抹除區塊可為「M」個與此系統有 關之所有抹除區塊中之具有最低抹除次數的抹除區塊,或 者此等「M」㈣除區塊可為具有至少係較平均抹除次數 更低之給定百分比之抹除次數之「M」個抹除區塊。此等 「M」個抹除區塊可為將於適當時間分配予區塊對映表之 有效備用區塊。 95647-940816.doc -22- 1267866 剩餘抹除區塊,亦即未分配予最不常抹除區塊表或最常 抹除區塊表中之任一者之抹除區塊,係隨著步驟336之「未 抹除」區塊而分配予區塊對映表。換言之,剩餘抹除區塊 及含有非與冗餘區域有關之資料之區塊係與區塊對映表有 關。 於區塊對映表、最不常抹除區塊表、及最常抹除區塊表 有效地以諸如具有抹除次數及與對應區塊有關之對映資訊 而產生後,平均抹除次數可於步驟338判定。通常判定平均 抹除次數係有關加總於步驟308所獲得之個別區塊之抹除 次數,及將區塊總數除以總和。 於步驟338所計算之平均抹除次數係儲存於與此系統有 關之抹除次數區塊。如前所述,平均抹除次數係儲存於一 寫入於與系統有關之NAND記憶體之抹除次數區塊。於將此 平均抹除次數儲存於此抹除次數區塊前,靜態區塊或含有 資料且具有相對低相關抹除次數之區塊,可於步驟342加以 處理。與處理靜態區塊之方法有關之步驟將於下文參考第4 圖詳細說明。一旦靜態區塊被處理,處理初始化要求之處 理即已完成。 於與快閃§己憶體有關之區塊群組内,於任意給定時間, 其經常存有被抹除之區塊及含有資料,亦即使用者資料之 區塊。某些含有資料之區塊可被考慮為「普通」區塊,同 時其他區塊則可被考慮為靜態區塊。靜態區塊係含有難得 改變之資料的區塊。換言之,靜態區塊很難得被抹除。通 常’靜態區塊係與儲存於快閃記憶體之相對老舊之文件、 95647-940816.doc -23- 1267866 儲存於快閃記憶體之可執 作章糸μ古^ 私式、或儲存於快閃記憶體之 ^ ^ ^ ^ 靜乙區塊具有實質上低於快閃 ;體「内:數區塊之抹除次數的抹除次數。於-實施例 二:;塊之抹除次數低於與快閃記憶體系統有關之平均 Γ絲之料百分比,例如約二十個百分比,則含有資 ;、之區塊可被考慮為係一靜態資料。 ' 由於靜態區塊含有難得改變之資料,因此靜態區塊所含 ί之資料可被複製料有相對高抹除次數之區塊。亦即’ 虽特定實體區塊之内容係相對地靜態且因此一般而言係未 變時’此等内容可有效地再分配予具有相對高之抹除次 丈之相異實體區塊’以致動具有相對低抹除次數之原始實 ,區塊而以之儲存較常改變之内容。參考第4圖’與處理靜 恶£塊有關之步驟,亦gP堂 ^ ^邛即弟3圖之步驟342將根據本發明之 一實施例詳細說明。處理系統之靜態區塊之處理342開始於 步騍404’其中,諸如區塊「A」之非抹除區塊之抹除次數 被存取。-旦區塊「A」之抹除次數被存取,與和系統有關 之平均抹除次數進行比較之非抹除區塊「A」之抹除次數是 否為非常低有關之判定於步驟4〇8產生。 雖然相較於平均抹除次數,非抹除區塊「A」之抹除次數 是否較低之判定可實質地根據任何適當之標準而產生,於 一實施例中,此判定係根據區塊「A」之抹除次數是否具有 值小於與平均抹除次數之部份有關之值而產生。舉例言 之,當抹除次數小於平均抹除次數之特定百分比時,區塊 「A」之抹除次數可被考慮為較低。 95647-940816.doc -24- 1267866 若其於步驟408判定區塊ΓΑ」之抹除次數相較於平均抹 除次數並非非常低,則其指示區塊「A」大概並非靜態區塊。 應瞭解者為,即使並未將區塊rA」之抹除次數考慮為非常 -C1塊 A」仍可為靜怨區塊’於此種情形之區塊「a」 之抹除次數將有效地不觸發區塊rA」與另一區塊之調換。 據此,處理靜態區塊之處理即告完成。 任擇地,若其於步驟408判定相較於平均抹除次數,區塊 「A」之抹除次數係相當低,則其意指可將區塊「a」之内 谷寫入具有相對高之抹除次數之區塊,使得具有其低抹除 次數之區塊「A」可自由儲存改變相對地頻繁之資料。換言 之,當區塊「A」之抹除次數相較於平均抹除次數係相當低 時,其指不區塊「A」係為靜態區塊。因此,處理流程自步 驟408移動至步驟412,其中,區塊「A」係被識別為靜態區 塊。一旦區塊「A」被識別為靜態區塊,亦即當以步驟416 之最常抹除區塊表識別時,區塊「B」可自最常抹除區塊群 組獲得。 於區塊B」被獲得後,區塊r A」之内容於步驟42〇被 複製於區塊「B」。亦即,於步驟42〇,區塊「a」含有之使 用者資料被複製於區塊rB」。一旦區塊「A」之内容被複 製於區塊「Β」,區塊「Α」即於步驟424被抹除。通常,當 區塊「Α」被抹除時,與區塊「Α」有關之抹除次數被增大。 一諸如區塊「c」之區塊可於步驟428自最不常被抹除區塊 群組移動至最常抹除區塊群組,使得區塊「c」之關聯性可 自最不常抹除區塊表有效地改變為最常抹除區塊表。換言 95647-940816.doc -25- 1267866 之區塊c」係與最不常抹除區塊失去關聯並與最常抹除 區塊表產生關聯。此種移動可容許最不常抹除區塊表内之 二間有效地開放以供給具有低抹除次數而因此為系統之最 不常抹除次數區塊中之-者的區塊「A」。通常,區塊「C」 係最不常抹除區塊表中具有最高抹除次數之區塊。 於將區塊「C」自最不常抹除區塊群組移動之前,或令區 塊C」與最不书抹除區塊表失去關聯之前,處理流程自步 驟428移動至432,其中、,區塊「A」係於步驟432有效地自 區塊對映表移動至最不常抹除區塊表。而後,於步驟434, 包括先Ml含於區塊「A」之内容之區塊「B」與區塊對映表 產生關聯。如熟於此技者將可瞭解者,將區塊「B」「移動」 至區塊對映表通常包括將與區塊ΓΑ」有關之邏輯區塊位址 之對映更新為目前之與區塊rB」有關。當附屬於區塊「C」 之資訊係呈現於最常抹除區塊表、附屬於區塊「Β」之資訊 係呈現於區塊對映表 '且附屬於區塊「Α」之資訊係呈現於 最不#抹除區塊表時,即完成靜態區塊之處理。應瞭解者 為,處理342可重複至與系統有關之所有靜態區塊實質上已 被識別及處理為止。 一般而言,當初始化要求被傳送至整體快閃記憶體系統 時’區塊對映表、最不常抹除區塊表、及最常抹除區塊表 可於諸如第la圖之RAM112之系統記憶體產生。為建立此等 表’空間可先被分派於系統記憶體以供給此等表。 如上文所述,當其為平均抹除次數時,區塊對映表、最 不常抹除區塊表、及最常抹除區塊表被產生於系統記憶 95647-940816.doc -26- 1267866 體1平均抹除次數及每—區塊之抹除次數亦被寫人抹除次 數區塊。第5a圖係根據本發明之一實施例之系統記憶體的 圖式方塊表示。系統記憶體454及快閃記憶體46〇係被包括 於整體系、统’且舉例而言可有效地為記憶體卡構件或主機 裝置構件,其中,諸如NAND記憶體之快閃記憶體46〇係被 置入。系統記憶體454係被排置為可儲存區塊可與之產生關 聯之區塊對映表462。通常,區塊對映表462可被使用以使 LBA與和快閃記憶體46〇有關之實體區塊產生關聯。 系統圯憶體454亦可保持如同區塊對映表462之一般而言 係響應於初始化要求而形成之最不常抹除區塊表466及最 常抹除區塊表470。被排置為可保持快閃記憶體46〇之區塊 之平均抹除次數之平均抹除次數474係於整體快閃記憶體 系統被格式化時產生。於一實施例中,抹除次數區塊48〇 係被排置為可實質上含有快閃記憶體46〇内之所有區塊之 抹除次數。於每次初始化要求產生時,更新平均抹除次數 可被計算’並儲存於抹除次數區塊48〇。 第5b圖係根據本發明之一實施例之「普通」區塊群組、 最不常抹除區塊群組、及最常抹除區塊群組之圖式表示。 區塊502之群組包括一般而言可為含有使用者資料之普通 或靜態區塊之區塊5 14,其可被抹除但不會落入最不常抹除 區塊或最常抹除區塊之分類中。一般而言,於最常抹除區 塊510之群組包括具有整體系統内之抹除區塊之最高抹除 次數的區塊522的同時,最不常抹除區塊506之群組一般而 言包括具有整體系統内之最低抹除次數的區塊5 1 8。一般而 95647-940816.doc -27- 1267866 言,區塊518係有效地被作為備用區塊使用。 當區塊514被抹除時’其可判定抹除區塊514是否具有相 對低之相Μ抹除次數或相對高之相關抹除次數。當抹除區 塊5 14具有相對低之相關抹除次數時,抹除區塊514可被加 於最不常抹除區塊506之群組。另一方面,當抹除區塊514 具有相對南之相關抹除次數時,抹除區塊5 14可被再分配予 最常抹除區塊510之群組。 實質上可為任意大小之最不常抹除區塊5〇6之群組可為 一排序群組。亦即,區塊518可實質地根據抹除次數而加以 排序。此排序通常係反映於含有與區塊5丨8相關之項目之對 應最不常抹除區塊表(未顯示)。舉例言之,於每次新區塊5 i 8 被移入最不常抹除區塊506之群組、或增加於最不常抹除區 塊506之群組、或與最不常抹除區塊5〇6之群組產生關聯 時,區塊5 1 8可本質地根據抹除次數而排序,使得最不常抹 除區塊506之群組内之最不常抹除區塊518可為欲再分配之 下一區塊518,如同群組502之例。換言之,當需要欲複製 資料之新區塊時,區塊518之最不常抹除區塊518係使用最 不常抹除區塊表而加以識別,且自最不常抹除區塊506之群 組取出。通常,當含有無使用需要之資料的區塊5 14被抹除 時,此區塊514可被儲存於最不常抹除區塊506之群組,且 最不常抹除區塊表可據此而更新,亦即,對應於增加區塊 之項目可被包括於最不常抹除區塊表。 如同儲存於最不常抹除區塊506之群組内之區塊518,最 常抹除區塊510的群組内之區塊522亦可實質地根據抹除次 95647-940816.doc -28- 1267866 數而加以排序。通常此排序係藉由排序用以識別區塊 之最常抹除區塊表(未顯示)之項目而實施。於一實施例中, 與區塊522有關之平均抹除次數可被計算,亦即,供最常抹 除區塊5 1 0之群組用之平均抹除次數可被判定。當來自群組 502之區塊514被抹除,且發現抹除區塊514之抹除次數超出 供最常抹除區塊5 10之群組用之平均抹除次數一給定百分 比,例如超出約二十個百分比時,抹除區塊514可被加入最 常抹除區塊510之群組。當新區塊522係有效地加入最常抹 除區塊510之群組時,最常抹除區塊51〇之群組内之具有最 低抹除次數之區塊522可被再分配於群組5〇2。此種再分配 通常係藉由更新相關區塊對映表、最不常抹除區塊表、及 最系抹除區塊表(未顯示)而反映。 群組502、最不常抹除區塊5〇6之群組、及最常抹除區塊 510間之區塊之調換一般而言係發生於被包括群組5〇2之區 塊5 14應被抹除或更新時。任擇地,區塊之調換或更新可實 質地發生於欲分配備用區塊以供群組502使用之任一時 間。接著參考第6圖,為使區塊之磨損更為平均而實施於諸 如具有置入式快閃記憶體之主機系統的整體記憶體系統内 之區塊調換或更新之方法將根據本發明之一實施例說明如 下。實施區塊調換或更新之處理6〇0係開始於步驟604,其 中’諸如區塊「Y」之區塊係自區塊對映表而「獲得」或使 用區塊對映表而識別。所獲得之區塊係為欲有效地自用以 複製或更新其内容之區塊對映表調換之區塊。 一旦區塊「Y」被獲得,諸如區塊r X」之區塊被有效地 95647-940816.doc -29- 1267866 於步驟608自最不常抹除區塊表中獲得。亦即,備用區塊係 自最不常抹除區塊之群組使用最不抹除區塊表識別適當備 用區塊而獲得。一般而言,區塊「X」係為最不常抹除區塊 群組中具有最低抹除次數之區塊,雖然應瞭解者為區塊「χ」 可實質地為任意與最不常抹除區塊有關之區塊,且因此可 為最不常抹除區塊表。此等内容,或更詳言之,儲存於區 塊「Υ」之資料内容,或欲替換區塊「Υ」之原始内容之新 内容係於步驟612複製於區塊「X」。 於將區塊「Υ」之内容複製於區塊「X」後,於步驟616, S塊「X」係有效地移入區塊對映表,或與區塊對映表產生 關聯。換言之,與區塊「Υ」及區塊「X」有關之對映係有 效地更新,使得先前對映於區塊Γγ」之LBA被再對映於區 塊「X」。當區塊「X」係有效地移入區塊對映表時,區塊 「Y」於步驟620被抹除。詳言之,儲存於區塊「γ」之諸 如使用者内容之資料内容可使用實質上任意適當之技術加 以抹除。而後,儲存於與區塊rY」有關之冗餘區域之與區 塊「γ」有關之抹除次數係於步驟624被增大以指示區塊「γ」 已再次被抹除。於一實施例中應瞭解者為,有效地儲存於 抹除次數區塊之供「Υ」用之抹除次數可被更新。 於步驟628中,最常抹除區塊表中具有最低抹除次數之區 塊被識別。如上所述,於一實施例中,於最常抹除區塊表 所參考之區塊係根據其個別抹除次數而排序。將區塊排序 可包括根據區塊之抹除次數定位最常抹除區塊表内之此等 區塊之參考資料。因此,具有最低抹除次數之區塊之識別 95647.9408l6.doc -30 - 1267866 一般而言係有關於存取最常抹除區塊表内之排置為可供給 具有最低抹除次數之區塊參考資料之位置的區塊參考資 料。 、 一旦於最常抹除區塊表所參考之具有最低抹除次數之區 塊被識別,處理流程自步驟628移動至步驟632,其中,其 可判定區塊「Y」之抹除次數是否大於在最常抹除區塊表參 考之具有最低抹除次數之區塊的抹除次數。若其判定區塊 「Y」之抹除次數並未大於在最常抹除區塊表參考之具有最 低抹除次數之區塊的抹除次數,則其係指示區塊「γ」並未 被考慮為係經常抹除的。據此,處理流程自步驟632移動至 步驟636,其中,區塊rY」係被移至最不常抹除區塊之群 組且有效地移至最不常抹除區塊表,亦即,對應於區塊「Υ」 之項目係被增加於最不常抹除區塊表。應瞭解者為,於一 實施例中,將區塊「γ」移至最不常抹除區塊之群組可包括 使用每一區塊之抹除次數實質地排序最不常抹除區塊表之 所有區塊參考資料。於區塊Γ γ」係有效地移至最不常抹除 區塊表後’調換區塊或更新區塊之處理即為完成。 返回至步驟632,若步驟632判定區塊「γ」之抹除次數超 出與最常抹除區塊表有關之最低抹除次數,其指示為區塊 「Υ」應移至最常抹除區塊之群組且有效地移至最常抹除區 塊表。為使其有空間可供區塊rY」於最常抹除區塊表中被 參考’諸如於最常抹除區塊表參考之具有最低抹除次數之 區塊的區塊需要有效地自最常抹除區塊表中移除。因此, 於步驟640中,於最常抹除區塊表參考之具有最低抹除次數 95647-940816.doc -31 - 1267866 之區塊係被移至最不常抹除區塊之群組,且有效地移至最 不#抹除區塊表。將區塊移至最不常抹除區塊之群組可包 括根據每一區塊之抹除次數排序最不常抹除區塊表之區塊 參考資料。 於最常抹除區塊表中具有最低抹除次數之區塊被有效地 自最常抹除區塊表移動後,於步驟644,區塊「γ」係有效 地移動至最常抹除區塊表。於一實施例中,將區塊「γ」移 動至最常抹除區塊且因此有效地移動至最常抹除區塊表可 包括根據每一區塊之抹除次數排序包括區塊Γ γ」之最常抹 除區塊。當區塊「γ」係有效地移至最常抹除區塊表時,調 換或更新區塊之處理即已完成。 一般而3,與維持表、掌握初始要求、及實施磨損調勻 等有關之諸如響應於調換或更新區塊之要求的功能性係以 諸如程式碼裝置或韌體等軟體形式提供予主機系統。與提 供予主機系統以致動磨損調勻之發生的軟體或韌體有關之 適當系統架構之一實施例係顯示於第7圖。一般而言,系統 架構700包括數種可包括(但不限於)應用介面模組7〇4、系統 管理者模組708、資料管理者模組7丨2、資料完整性管理者 模組716、及裝置管理者與介面模組72〇等模組。一般而言, 系統架構700可使用藉由諸如第la圖之處理器1〇8之處理器 存取之軟體碼裝置或韌體實施。 一般而言,其可將應用介面模組7〇4可排置為可直接與主 機、作業系統、或使用者通信。應用介面模組7〇4亦與系統 官理者模組708及資料管理者模組712通信。當使用者要求 95647-940816.doc -32 - 1267866 讀取、寫入、或格式化快閃記憶體時,使用者傳送要求至 作業系統’此等要求被傳給應用介面模組704。取決於此等 要求’應用介面模組704將此等要求轉至系統管理者模組 708或資料管理者模組712。 系統管理者模組708包括系統初始化次模組724、抹除次 數區塊管理次模組726、及電力管理區塊次模組730。一般 而言,系統初始化次模組724係排置為可致動初始化要求之 處理’且通常係與抹除次數區塊管理次模組726通信。於一 貝轭例中,系統初始化次模組724容許區塊之抹除次數被更 新’且係實質地用於產生最不常使用區塊表及最常使用區 塊表。 抹除次數區塊管理次模組726包括儲存區塊抹除次數之 功此性、及計算平均抹除次數之功能性、與使用個別抹除 次數更新平均抹除次數之功能性。換言之,抹除次數區塊 官理次模組726可有效地容許平均抹除次數之維持。更詳言 之’於一貫施例中,於整體系統之初始化要求期間,抹除 次數區塊管理次模組726亦實質地同步化抹除次數區塊之 所有區塊之抹除次數。應瞭解者為,於抹除次數區塊管理 次模組726係被排置為可將平均抹除次數儲存於抹除次數 區塊之同時,其可由電力管理區塊次模組73〇加以替換而致 動平均抹除次數之儲存。 除與應用介面模組704通信外,系統管理者模組7〇8亦與 資料管理者模組712及裝置管理者與介面模組72〇通信。與 糸統管理者模組708及應用介面模組704兩者通信之資料管 95647-940816.doc -33 - 1267866 者拉,、且712可包括提供頁或區塊對映之功能性。資料管理 者模組712亦可包括與作業系統及檔案系統介面層有關之 功能性。 缺與系統管理者模組7〇8、資料管理者712、及資料完整性 官理者716通信之裝置管理者與介面模組72〇通常可提供快 閃記憶體介面’且包括與諸如1/〇介面之硬體提取有關之功
能性。㈣完整性管理者模組716可提供其他魏間之ECC 掌握。 雖然本發明僅就數實施例加以說明,應瞭解者為,於不 悖離本發明之精神或範圍内,本發明可實施於其他數種特 ㈣式中。藉由釋例’取代根據每—區塊對平均抹除次數 之比較、將區塊分配予最常抹除區塊表及最不常抹除區塊 表,區塊可根據何區塊具有最高抹除次數及何區塊具有最 低抹除次數之絕對判定而代之以被分配予最常抹除區塊表 及最不常抹除區塊表◊換言之,區塊抹除次數可有效地與 彼此比較,而非比較個別區塊抹除次數與平均抹除次數,' 而判定可插入區塊之適當表。 最不常抹除區塊表已大致地說明為如同備用區塊之可保 持具有相對低抹除次數之區塊的參考資料。備用區塊係有 效地分派以透過區塊對映表之使用而使用,使得備用區塊 貝^上係於任意時間皆為需要’具有於最不常抹除區塊表 中所參考之敢低抹除次數之區塊被提供以供使用。換a 之,當欲調換於區塊對映表識別之區塊時,最不常抹&區 塊之群組之具有最低抹除次數之區塊的參考資料被移至區 95647-940816.doc -34- Ϊ267866 塊對映表。然而,應瞭解者為,一般而言,於區塊調換或 更新處理期間,任意區塊可實質地自最不常抹除區塊之群 組中取出。由於最不常抹除區塊表内之區塊無需加以排 序’因此使用最不常抹除區塊表而自最不常抹除區塊實質 地選擇任意區塊以移至區塊對應表可減少與整體系統有關 之附加費用。 識別與處理靜態區塊一般而言可增強令整體記憶體系統 内之區塊磨損更為平均之能力。然而,於一實施例中,靜 態區塊並無識別與處理之需要。舉例言之,若相對低數目 之靜態區塊於系統内預先處理,則於不悖離本發明之精神 與範圍内,靜態區塊之識別與處理可實質地消除。 於說明以相關記憶體控制器控制非依電性記憶體系統或 使用與主機系統有關之軟體或韌體控制非依電性記憶體系 統之同時,應瞭解者為,包括抹除次數管理之磨損調勻處 理可應用於與實質上位於非依電性記憶體系統外部之控制 器通信之非依電性記憶體系統。使用控制器之適當記憶體 系統包括(但不限於)PC卡、緊密快閃卡、多媒體卡、保全 數位卡、及包括快閃記憶體及快閃記憶體控制器之置入式 曰曰片組。經由使用載於主機系統之軟體或韌體控制之記憶 體系統包括置入式記憶體裝置。於一實施例中,可使用前 文所述之抹除管理技術且未使用與記憶體系統有關之控制 器之記憶體系統可使用與諸如主機電腦系統有關之控制器 實施磨損調勻。亦即,主機可直接定位址與管理記憶體, 其中,磨知調勻係經由使用主機上之控制器而發生。 95647-940816.doc -35- 1267866 般而言’與各種磨損調勻之處理及方法有關之步驟可 貝泛地改變。一般而言,於不悖離本發明之範圍之精神的 情形下,此等步驟可增加、移除、改變、及再排組。藉由 釋例處理靜態區塊可無需被包括於初始要求之處理中。 同時,於一實施例中,是否有效地將新抹除區塊置放於最 常抹除區塊表之判定可根據其他標準,以替代根據抹除區 鬼疋否具有大於與隶常抹除區塊表有關之最低抹除次數的 抹除次數判定之標準。舉例言之,此種判定可根據抹除區 塊之抹除次數是否超出與最常抹除區塊表有關之實質上所 有區塊之平均抹除次數一定百分比,諸如約二十個百分 比。备抹除區塊之抹除次數超出平均抹除次數特定百分比 時,而後於最常抹除區塊表所參考之具有最低抹除次數之 區塊可被移至最不常抹除區塊圖,同時抹除區塊係被移至 最常抹除區塊表。因此,目前之釋例係考量為供說明之用, 而非供限制之用,且本發明並未限於此處所詳述之說明, 而係可於附隨之申請專利範圍之範圍内進行修改者。 【圖式簡單說明】 藉由參考附隨圖式及下文之詳細說明可對本案有最佳之 瞭解,其中: 第1 a圖係根據本發明之一實施例之包括非依電性記憶體 裝置的一般主機系統之圖式表示。 第lb圖係根據本發明之一實施例之諸如第la圖中的記憶 體裝置120之記憶體裝置之圖式表示。 第2圖係根據本發明之一實施例之快閃記憶體的部份之 95647-940816.doc -36 - 1267866 圖式表示。 第3圖係根據本發明之一實施例之說明與處理和快閃纪 憶體系統有關之初始化要求有關之步驟的處理流程圖。 第4圖係根據本發明之一實施例之說明與處理靜態區塊 之方法有關的步驟之處理流程圖。 第5a圖係根據本發明之一實施例之系統記憶體的圖式方 塊表示。 第5b圖係根據本發明之一實施例之正常區塊、最不常抹 除區塊、及最常抹除區塊之圖式表示。 第6圖係根據本發明之一實施例之用以於系統記憶體實 施區塊調換/更新整體記憶體系統以容許區塊之磨損更為 平均的方法的圖式表示。 第7圖係根據本發明之一實施例之系統架構之圖式方塊 表示。 【主要元件符號說明】 11 記憶體晶胞陣列 15 匯流排 17 解碼器 19 附加電路 21 緩衝器記憶體 23 部份 100 主機系統、電腦系統 104 系統匯流排 108 微處理器 95647-940816.doc · 37 · 1267866 112 116 120 124 128 130 132 200 204、 206、 210 214 300 304、 332 404 420 604 620 636 454 460 462 470 隨機存取記憶體 輸入/輸出電路 非依電性記憶體裝置 非依電性記憶體 任選記憶體控制系統 任選輸入/輸出電路區塊 輸入/輸出電路區塊 快閃記憶體 204a > 204b 頁 206a 冗餘區域 區塊 抹除次數 處理 306、320、324、步驟 336 、 338 、 342 、 408 、 412 、 416 、 428、432、434 ' 步驟 608 > 612 > 616 > 624 、 628 、 632 、 640 > 644 系統記憶體 快閃記憶體 區塊對映表 最常抹除區塊表 95647-940816.doc -38- 4741267866 480 502 、 506 、 510 、 514 、 518 、 522 700 704 708 712 716 720 724 730 726 抹除次數 抹除次數區塊 區塊 系統架構 應用介面模組 系統管理者模組 資料管理者模組 資料完整性管理者模組 裝置管理者與介面模組 系統初始化次模組 電力管理區塊次模組 抹除次數區塊管理次模 95647-940816.doc -39-
Claims (1)
- ^267866 十、申請專利範圍: • 種用以處理包括於纪情許会姑 > 北从 件的方法,該方法包含 非依電性記憶趙之元 獲得舆數梅元件有Μ之抹除次教,核數個元件包括抹 =件及包含貧料之元件,其中,包括於該數個元件之 :::=一相關抹除次數’每一元件之該相關抹除 _ 人數係排置為可指示該元件已被抹除之次數; 定義—第-組抹除元件,其係藉由選擇相對於鱼 :元=關之抹除次數具有最高相關抹除次數之抹除元 將:該第-組相關之該等抹除次數儲存於一實質地位 於-表之記憶體構件’其中,該記憶體 體系統相關。 ^ 2. 如申請專利範圍第i項所述之方法,其中,該定義 組抹除元件之步驟包括: 比較與該等數個元件有關之該等抹除次數;以及 識別預定數目之具有該最高相關抹除次數元件的抹除 元件。 ” 3. 如申請專利範圍第丨項所述之方法,其更包括: 獲得-與㈣數個元件有關之平均抹除次數。 4. 如申請專利範圍第3項所述之方法,其令,該定義一第一 組抹除元件之步驟包括: 比較與該等數個元件有關之該等抹除次數與該平均抹 除次數;以及 95647-940816.doc 1267866 預=最多至—預定數目之具有大於該平均抹除次數-預疋鞄圍之相關抹除次數之抹除元件。 5. 如申請專利範圍第1項所述之方法,其更包括: 戽:f與該第一組中每-抹除元件有關之該抹除次數排 序該弟-組抹除元件之該等抹除元件。 6. 2 =專利範圍第5項所述之方法,其中,排序該第-組 之該專抹除元件包括排序該表之該等抹除次數。 7. 如申請專利範圍第5項所述之方法, -識別包括於該第一組抹除元件之一第一元件,該第一 讀具有與㈣-轉除元件有社該最低抹除次數。 8. 如:請專圍第7項所述之方法,其更包括: h亥第-7G件與該第—組抹除元件失去關聯;以及 令δ亥專數個元株Φ夕—墙嫌一 一弟二70件與該第一組抹除元件 產生關聯’其中’與該第二元件有關之該抹除次數係高 於與該第-元件有關t該抹除次數。 9·如申請專利範圍第7項所述之方法,其更包括: ^ ^ 一忒第一組抹除元件有關之平均抹除次數; 判疋與包括於該等數個元件之一第二抹除元件有關之 該抹除次數係於何時大於該平均抹除次數; 田其判定與該第二元件相關之該抹除次數係大於該平 句抹除人數時’令該第—元件與該S -組抹除元件失去 關聯;以及 田八判疋與4第二元件有關之該抹除次數係大於該平 句抹除人數時,彳該第^元件與該第一組抹除元件產生 95647-940816.doc 1267866 1 〇· —種用以處理包括於記憶體系統之非依電性記憶體之元 件的方法,該方法包含: 獲得與數個元件有關之抹除次數,其中,包括於該數 個元件之每一元件具有一相關抹除次數,每一元件之該 相關抹除次數係排置為可指示該元件已被抹除之次數; 將包括於該數個元件之數個元件分組為一第一組,其 中’將該等數個抹除元件分組為該第一組包括選擇包括 於與該數個抹除元件相關之具有該等抹除次數的該等最 高相關抹除次數之該數個元件之抹除元件; 將與該第一組相關之該等抹除次數儲存於一實質地位 於一表之記憶體構件,其中,該記憶體構件係與該記憶 體系統相關; 根據與每一元件相關之抹除次數將該元件儲存於該第 一組之中; 計异與該第一組相關之一平均抹除次數; 判定與包括於該數個元件之一第二元件相關之該抹除 次數是否大於該平均抹除次數超過一預定百分比; 對與該第二元件相關之該抹除次數係大於該平均抹除 -人數超過該預定百分比作出反應,令該第一元件與該第 一組失去關聯;以及 對與違第二元件相關之該抹除次數係大於該平均抹除 95647-940816.doc 1267866 人數超過該預定百分比作出 -組產生關聯。 一—件與該第 11.如申請專利範圍第i項所述 憶體係為㈣記憶^ «依電性記 Ή::範圍第11項所述之方法,其中,該等數個元 :係為區塊’且該第一組抹除元件係為一最常抹除區塊 13.=請專利範圍第12項所述之方法,其中,獲得該等抹 “欠數包括自該抹除次數區塊獲得該等抹除次數。 .如申Μ專利範圍第11項所述之方法,其中,該快閃記憶 體係為NAND快閃記憶體。 心 15·—種用以處理包括於記憶體系統之非依電性記憶體之元 件之兄憶體管理系統,該記憶體管理系統包含: 用以獲得與數個元件有關之抹除次數之碼装置,該數 個疋件包括抹除元件及包含資料之元件其中,包括於該 等數個元件之每-元件具有-相關抹除次數,每_元件 之該相關抹除次數係被排置為可指示該元件已被抹除之 次數; 用以定義一第一組抹除元件之碼裝置,其係藉由選擇 相對於與該等數個元件相關之抹除次數具有最高相關抹 除次數之抹除元件;以及 用以將與該第-組有關之該等抹除次數儲存為一記憶 體構件之-資料結構之—部份,該記憶體構件係與該記 憶體系統有關。 ° 95647-940816.doc 1267866 16·如申睛專利範圍第15項所述之記憶體管理系統,其中, 该定義一第一組抹除元件之碼裝置包括: 用以比較與該等數個元件有關之該等抹除次數之碼裝 置;以及 用以識別預定數目之具有該等最高相關抹除次數抹除 元件的碼裝置。 •如申明專利圍第15項所述之記憶體管理系統,其更包 括: 〆、 用以獲得與該等數個元件有關之—平均抹除次數之碼 :置丨中,该用以定義-第-組抹除元件之裝置包括 妁:二與該數個抹除元件有關之該等抹除次數及該平 次數之碼裝置,及用以識別最多至—預定數目之 八有大於該平均抹除次一 抹除元件的碼裝置。犯圍的相關抹除次數之 18.如申請專利範圍第 括·· , < < °己憶體官理系統,其更包 一組抹除元件之該等 $ ^抹托 〆荨抹除7L件的石馬裝置· 用以識別一包括於 , 置,該第—抹除元件具抹除元件之碼 最低抹除次數;以及 ,、Μ弟—組抹除元件相關之 抹除元件與該第一組抹除 ,與該第二抹除元件有關 棟除元件有關之該抹除次 用以令該數個元件之一第二 元件產生關聯之碼裝置,其中 之該抹除次數係高於與該第一 95647-940816.doc 126786619·如申請專利範圍第15項所述之記憶體管理系統,其中, 該非依電性記憶體係為快閃記憶體。 20·如申請專利範圍第15項所述之記憶體管理系統,其中, 該等數個凡件係為區塊,且該第一組係一最常抹除區塊 表0 21.如申請專利範圍第15述之記憶體管理系統,其中,該快 閃記憶體係為NAND快閃記憶體。 22· 一種用以處理包括於記憶體系統之非依電性記憶體之元 件之方法,每-元件具—相關抹除次數,該方法包含·· 識別該非依電性記憶體之抹除元件; 定義一第一抹除元件組,其中,包括於該第一組抹除 兀件之該等件係具高於纟包括於該第一、址元件之該等 抹除元件之相關抹除次數; 將與該第-組元件相關之項目置放於一資料結構,該 項目包括該相關抹除次數; 排序該資料結構之該等項目; 使用該等排序項目識別該第一組元件中之一第一元 件’其中’該第-元件係具低於包括於該第_組元件之 其他元件的相關抹除次數; 抹除一第二元件之内容; 對忒第一凡件之一相關抹除次數超過該識別第一元件 :::關抹除次數作出反應’自該第-組抹除元件移除 μ罘一元件;以及 95647_9408l6.doc I267866 u <然後將該第二元件加人該第—組抹除元件。 •如申請專利範圍第22項所述之方法,其更包括: 用Sr第均抹除絲,該第—平均抹除次數係使 弟、’且之母一元件之該相關抹除次數列定,· 且其中該移除與加入之步驟係對該第 24抹除次數超《卜平均抹除次數作歧應而料 .如申請專利範圍第22項所述之方法,其中,將該第一元 件自該第-組抹除元件移除包括將與該第—元件有關: —項目自該資料結構移除,且其中將該第二元件辦加至 該第-組包括將一與該第二元件相關之項目置放二 料結構。 25.如申請專利範圍第24項所述之方法,其更包括: 再排序該資料結構之該等項目;以及 使用該等排序項目識別該第一元件組之一第三元件 件 其中,該第三元件係較包括於該第一元件組之其他元 具有更小之磨損。 26. 如申請專利範圍第22項所述之方法,其中,包括於該第 一組元件之該等元件係有效地防止被使用。 27, 如申請專利範圍第22項所述之方法,其中,該非依電性 記憶體係為-快閃記憶體,且該等元件係為區塊。 28· —種記憶體系統,其包含: 記憶體元件; 其係用以儲存每一該記憶體元件 一系統記憶體構件, 之一相關抹除次數; 95647-940816.doc 1267866 以識別該記憶體元件之抹除次數; 用以定義一第一抹除記憶體元件組之裝置 括於該第一, 、 ,其中,包組記憶體元件之該等抹除記憶體元件 於未包括於該第一^ 之相關抹除次數; —用以將與該第-組抹除記憶體元件㈣之項目置放教 —與該系統記憶體構件有關《資料結構之裝i,該項目 包括與每一抹除記憶體元件相關之一抹除次數; 用以排序該資料結構之該等項目之裝置;關抹除次數;29·如申請專利範圍第28項所述之記憶體系統,其中,用以 將該第一記憶體元件自該第一組移除之該裝置包括用以 將一與该第一記憶體元件有關之項目自該資料結構移除 之裝置,且用以將該第二記憶體元件增加至該第一組之 該衣置包括用以將^一與違弟一自己憶體元件組有關之項目 置放於一資料結構之裝置。 30.如申請專利範圍第28項所述之記憶體系統,其中,包括 95647-940816.doc 1267866 於該第一記憶體元件組之該等記憶體元件係有效地防止 被使用。 3 1 ·如申請專利範圍第28項所述之記憶體系統,其中,該等 記憶體元件係為非依電性記憶體區塊。 95647-940816.doc 1267866 七、 指定代表圖: (一) 本案指定代表圖為:第(3 )圖。 (二) 本代表圖之元件符號簡單說明: 304 接收初始化要求 306 獲得平均抹除次數 3 08 獲得供所有區塊用之抹除次數 320 分派區塊對映表、最常抹除區塊表、及最不常 抹除區塊表 324 識別抹除區塊 328 分配具有最高抹除次數之N個抹除區塊予最 常抹除區塊表 332 分配具有最低抹除次數之Μ個抹除區塊予最 不常抹除區塊表 3 3 6 分配剩餘區塊與未抹除區塊予區塊對映表 338 使用供所有區塊用之抹除次數判定平均抹除 次數 340 將平均抹除次數儲存於抹除次數表區塊 342 處理靜態區塊 八、 本案若有化學式時,請揭示最能顯示發明特徵的化學式: (無) 95647-940816.doc
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/281,670 US6973531B1 (en) | 2002-10-28 | 2002-10-28 | Tracking the most frequently erased blocks in non-volatile memory systems |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200418038A TW200418038A (en) | 2004-09-16 |
TWI267866B true TWI267866B (en) | 2006-12-01 |
Family
ID=32228770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW092125804A TWI267866B (en) | 2002-10-28 | 2003-09-18 | Tracking the most frequently erased blocks in non-volatile memory systems |
Country Status (10)
Country | Link |
---|---|
US (1) | US6973531B1 (zh) |
EP (1) | EP1559113B1 (zh) |
JP (2) | JP2006504221A (zh) |
KR (1) | KR20050059314A (zh) |
CN (1) | CN1701390A (zh) |
AT (1) | ATE387714T1 (zh) |
AU (1) | AU2003270545A1 (zh) |
DE (1) | DE60319407T2 (zh) |
TW (1) | TWI267866B (zh) |
WO (1) | WO2004040585A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8122184B2 (en) | 2007-01-17 | 2012-02-21 | Memoright Memoritech (Wuhan) Co., Ltd. | Methods for managing blocks in flash memories |
Families Citing this family (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4518951B2 (ja) * | 2002-10-28 | 2010-08-04 | サンディスク コーポレイション | 不揮発性記憶システムにおける自動損耗均等化 |
US7328301B2 (en) * | 2003-04-07 | 2008-02-05 | Intel Corporation | Dynamically mapping block-alterable memories |
US7139863B1 (en) * | 2003-09-26 | 2006-11-21 | Storage Technology Corporation | Method and system for improving usable life of memory devices using vector processing |
US7441067B2 (en) | 2004-11-15 | 2008-10-21 | Sandisk Corporation | Cyclic flash memory wear leveling |
US7315917B2 (en) | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US7224604B2 (en) * | 2005-03-14 | 2007-05-29 | Sandisk Il Ltd. | Method of achieving wear leveling in flash memory using relative grades |
US7516267B2 (en) | 2005-11-03 | 2009-04-07 | Intel Corporation | Recovering from a non-volatile memory failure |
US7640389B2 (en) * | 2006-02-28 | 2009-12-29 | Freescale Semiconductor, Inc. | Non-volatile memory having a multiple block erase mode and method therefor |
US20080126685A1 (en) * | 2006-11-24 | 2008-05-29 | Radoslav Danilak | System, method, and computer program product for reducing memory write operations using an instruction set |
CN101578587B (zh) * | 2006-11-24 | 2015-02-25 | Lsi公司 | 延迟缩减存储器寿命的操作 |
US7904764B2 (en) * | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | Memory lifetime gauging system, method and computer program product |
US7809900B2 (en) * | 2006-11-24 | 2010-10-05 | Sandforce, Inc. | System, method, and computer program product for delaying an operation that reduces a lifetime of memory |
US7747813B2 (en) * | 2006-11-24 | 2010-06-29 | Sandforce, Inc. | Multi-memory device system and method for managing a lifetime thereof |
US7904619B2 (en) * | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for reducing memory write operations using difference information |
KR101490327B1 (ko) | 2006-12-06 | 2015-02-05 | 퓨전-아이오, 인크. | 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법 |
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
US8935302B2 (en) | 2006-12-06 | 2015-01-13 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
US8090980B2 (en) * | 2006-12-08 | 2012-01-03 | Sandforce, Inc. | System, method, and computer program product for providing data redundancy in a plurality of storage devices |
US7904672B2 (en) | 2006-12-08 | 2011-03-08 | Sandforce, Inc. | System and method for providing data redundancy after reducing memory writes |
WO2008077284A1 (en) * | 2006-12-27 | 2008-07-03 | Intel Corporation | Initiative wear leveling for non-volatile memory |
TW200828320A (en) * | 2006-12-28 | 2008-07-01 | Genesys Logic Inc | Method for performing static wear leveling on flash memory |
CN101211314B (zh) * | 2006-12-31 | 2010-07-14 | 创惟科技股份有限公司 | 闪存资料读写寿命提升方法 |
US7731365B2 (en) * | 2007-03-19 | 2010-06-08 | Johnson&Johnson Vision Care, Inc. | Method of fitting contact lenses |
KR20080085574A (ko) * | 2007-03-20 | 2008-09-24 | 삼성전자주식회사 | 비휘발성 메모리의 가비지 컬렉션을 위한 장치 및 방법 |
US7689762B2 (en) * | 2007-05-03 | 2010-03-30 | Atmel Corporation | Storage device wear leveling |
US20080282024A1 (en) * | 2007-05-09 | 2008-11-13 | Sudeep Biswas | Management of erase operations in storage devices based on flash memories |
US7991942B2 (en) * | 2007-05-09 | 2011-08-02 | Stmicroelectronics S.R.L. | Memory block compaction method, circuit, and system in storage devices based on flash memories |
US7882301B2 (en) * | 2007-05-09 | 2011-02-01 | Stmicroelectronics S.R.L. | Wear leveling in storage devices based on flash memories and related circuit, system, and method |
US8041883B2 (en) | 2007-05-09 | 2011-10-18 | Stmicroelectronics S.R.L. | Restoring storage devices based on flash memories and related circuit, system, and method |
US7743203B2 (en) * | 2007-05-11 | 2010-06-22 | Spansion Llc | Managing flash memory based upon usage history |
US20080294814A1 (en) * | 2007-05-24 | 2008-11-27 | Sergey Anatolievich Gorobets | Flash Memory System with Management of Housekeeping Operations |
US20080294813A1 (en) * | 2007-05-24 | 2008-11-27 | Sergey Anatolievich Gorobets | Managing Housekeeping Operations in Flash Memory |
KR100857761B1 (ko) * | 2007-06-14 | 2008-09-10 | 삼성전자주식회사 | 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법 |
CN100538662C (zh) * | 2007-07-05 | 2009-09-09 | 炬力集成电路设计有限公司 | 一种基于局部采样的存储器的磨损平衡方法 |
US8296498B2 (en) * | 2007-11-13 | 2012-10-23 | Sandisk Technologies Inc. | Method and system for virtual fast access non-volatile RAM |
US7849275B2 (en) | 2007-11-19 | 2010-12-07 | Sandforce, Inc. | System, method and a computer program product for writing data to different storage devices based on write frequency |
US7903486B2 (en) * | 2007-11-19 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory |
US9183133B2 (en) | 2007-11-28 | 2015-11-10 | Seagate Technology Llc | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory |
KR101401560B1 (ko) * | 2007-12-13 | 2014-06-03 | 삼성전자주식회사 | 반도체 메모리 시스템 및 그것의 마모도 관리 방법 |
US8656083B2 (en) * | 2007-12-21 | 2014-02-18 | Spansion Llc | Frequency distributed flash memory allocation based on free page tables |
JP4762261B2 (ja) * | 2008-03-12 | 2011-08-31 | 株式会社東芝 | メモリシステム |
JP2009266349A (ja) | 2008-04-28 | 2009-11-12 | Toshiba Corp | 不揮発性半導体記憶装置 |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US20100017566A1 (en) * | 2008-07-15 | 2010-01-21 | Radoslav Danilak | System, method, and computer program product for interfacing computing device hardware of a computing device and an operating system utilizing a virtualization layer |
US20100017588A1 (en) * | 2008-07-15 | 2010-01-21 | Radoslav Danilak | System, method, and computer program product for providing an extended capability to a system |
KR20100013485A (ko) | 2008-07-31 | 2010-02-10 | 삼성전자주식회사 | 메모리 장치 및 웨어 레벨링 방법 |
US20100064093A1 (en) * | 2008-09-09 | 2010-03-11 | Radoslav Danilak | System, method, and computer program product for converting data in a binary representation to a non-power of two representation |
US20100146236A1 (en) * | 2008-12-08 | 2010-06-10 | Radoslav Danilak | System, method, and computer program product for rendering at least a portion of data useless in immediate response to a delete command |
US8244960B2 (en) | 2009-01-05 | 2012-08-14 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partition management methods |
US8700840B2 (en) | 2009-01-05 | 2014-04-15 | SanDisk Technologies, Inc. | Nonvolatile memory with write cache having flush/eviction methods |
US8094500B2 (en) | 2009-01-05 | 2012-01-10 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partitioning |
US8291152B2 (en) | 2009-01-07 | 2012-10-16 | Silicon Motion, Inc. | Method for operating non-volatile memory and data storage system using the same |
TWI409819B (zh) | 2009-03-03 | 2013-09-21 | Silicon Motion Inc | 平均地使用一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
US8090905B2 (en) * | 2009-03-27 | 2012-01-03 | Sandforce, Inc. | System, method, and computer program product for converting logical block address de-allocation information in a first format to a second format |
US8671258B2 (en) | 2009-03-27 | 2014-03-11 | Lsi Corporation | Storage system logical block address de-allocation management |
US20100250830A1 (en) * | 2009-03-27 | 2010-09-30 | Ross John Stenfort | System, method, and computer program product for hardening data stored on a solid state disk |
US8230159B2 (en) | 2009-03-27 | 2012-07-24 | Lsi Corporation | System, method, and computer program product for sending logical block address de-allocation status information |
US20110004718A1 (en) * | 2009-07-02 | 2011-01-06 | Ross John Stenfort | System, method, and computer program product for ordering a plurality of write commands associated with a storage device |
US9792074B2 (en) * | 2009-07-06 | 2017-10-17 | Seagate Technology Llc | System, method, and computer program product for interfacing one or more storage devices with a plurality of bridge chips |
US8140712B2 (en) * | 2009-07-17 | 2012-03-20 | Sandforce, Inc. | System, method, and computer program product for inserting a gap in information sent from a drive to a host device |
US8516166B2 (en) * | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
US8402242B2 (en) * | 2009-07-29 | 2013-03-19 | International Business Machines Corporation | Write-erase endurance lifetime of memory storage devices |
CN101989458B (zh) * | 2009-07-31 | 2013-10-30 | 慧帝科技(深圳)有限公司 | 平均地使用一闪存的多个区块的方法、记忆装置及控制器 |
KR20110024832A (ko) * | 2009-09-03 | 2011-03-09 | 주식회사 하이닉스반도체 | 데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법 |
KR101086876B1 (ko) * | 2009-09-30 | 2011-11-25 | 주식회사 하이닉스반도체 | 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법 |
US8108737B2 (en) * | 2009-10-05 | 2012-01-31 | Sandforce, Inc. | System, method, and computer program product for sending failure information from a serial ATA (SATA) solid state drive (SSD) to a host device |
JP2011081561A (ja) * | 2009-10-06 | 2011-04-21 | Canon Inc | 情報処理装置 |
TW201120898A (en) * | 2009-12-07 | 2011-06-16 | Jmicron Technology Corp | Mehtod for wear-leveling and apparatus thereof |
US8677054B1 (en) * | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US9170933B2 (en) * | 2010-06-28 | 2015-10-27 | International Business Machines Corporation | Wear-level of cells/pages/sub-pages/blocks of a memory |
WO2012083308A2 (en) | 2010-12-17 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
KR20120096212A (ko) * | 2011-02-22 | 2012-08-30 | 삼성전자주식회사 | 비휘발성 메모리 장치, 메모리 컨트롤러, 및 이들의 동작 방법 |
GB2490991B (en) * | 2011-05-19 | 2017-08-30 | Ibm | Wear leveling |
US10019353B2 (en) | 2012-03-02 | 2018-07-10 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for referencing data on a storage medium |
US9116792B2 (en) * | 2012-05-18 | 2015-08-25 | Silicon Motion, Inc. | Data storage device and method for flash block management |
KR101989018B1 (ko) * | 2012-06-25 | 2019-06-13 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
US8750045B2 (en) | 2012-07-27 | 2014-06-10 | Sandisk Technologies Inc. | Experience count dependent program algorithm for flash memory |
CN102929794B (zh) * | 2012-09-26 | 2015-12-02 | 惠州市德赛西威汽车电子股份有限公司 | 一种eeprom的存储方法 |
KR20150044753A (ko) * | 2013-10-17 | 2015-04-27 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
TWI517165B (zh) * | 2014-03-31 | 2016-01-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
US9875039B2 (en) | 2014-09-30 | 2018-01-23 | Sandisk Technologies Llc | Method and apparatus for wear-leveling non-volatile memory |
US9830087B2 (en) * | 2014-11-13 | 2017-11-28 | Micron Technology, Inc. | Memory wear leveling |
US10338817B2 (en) | 2014-12-30 | 2019-07-02 | Sandisk Technologies Llc | Systems and methods for storage recovery |
US9766819B2 (en) | 2014-12-30 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for managing storage endurance |
US10101939B2 (en) | 2016-03-09 | 2018-10-16 | Toshiba Memory Corporation | Storage system having a host that manages physical data locations of a storage device |
HUE056995T2 (hu) * | 2016-12-09 | 2022-04-28 | Hoffmann La Roche | Legalább egy orvosi mûvelet elvégzésére szolgáló eszköz |
US10552145B2 (en) * | 2017-12-12 | 2020-02-04 | Cypress Semiconductor Corporation | Memory devices, systems, and methods for updating firmware with single memory device |
CN111261218B (zh) * | 2020-04-27 | 2020-08-21 | 深圳市芯天下技术有限公司 | 多颗Norflash样品同时测试的方法 |
DE102021116828A1 (de) | 2021-06-30 | 2023-01-05 | Harman Becker Automotive Systems Gmbh | Verfahren und Vorrichtung zur Überwachung einer Nutzlast eines Speichermediums |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07109717B2 (ja) | 1986-05-31 | 1995-11-22 | キヤノン株式会社 | メモリ書き込み制御方法 |
JP2685173B2 (ja) | 1986-05-31 | 1997-12-03 | キヤノン株式会社 | メモリ書き込み制御方法 |
US5268870A (en) | 1988-06-08 | 1993-12-07 | Eliyahou Harari | Flash EEPROM system and intelligent programming and erasing methods therefor |
EP0618535B1 (en) | 1989-04-13 | 1999-08-25 | SanDisk Corporation | EEPROM card with defective cell substitution and cache memory |
US5222109A (en) | 1990-12-28 | 1993-06-22 | Ibm Corporation | Endurance management for solid state files |
US6230233B1 (en) | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
US5438573A (en) | 1991-09-13 | 1995-08-01 | Sundisk Corporation | Flash EEPROM array data and header file structure |
JP2856621B2 (ja) | 1993-02-24 | 1999-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置 |
US5485595A (en) | 1993-03-26 | 1996-01-16 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporating wear leveling technique without using cam cells |
US5388083A (en) | 1993-03-26 | 1995-02-07 | Cirrus Logic, Inc. | Flash memory mass storage architecture |
JP3507132B2 (ja) * | 1994-06-29 | 2004-03-15 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置およびその記憶制御方法 |
US5568423A (en) * | 1995-04-14 | 1996-10-22 | Unisys Corporation | Flash memory wear leveling system providing immediate direct access to microprocessor |
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 |
US5845313A (en) | 1995-07-31 | 1998-12-01 | Lexar | Direct logical block addressing flash memory mass storage architecture |
US5835935A (en) | 1995-09-13 | 1998-11-10 | Lexar Media, Inc. | Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory |
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 |
US5860082A (en) | 1996-03-28 | 1999-01-12 | Datalight, Inc. | Method and apparatus for allocating storage in a flash memory |
US5715193A (en) * | 1996-05-23 | 1998-02-03 | Micron Quantum Devices, Inc. | Flash memory system and method for monitoring the disturb effect on memory cell blocks due to high voltage conditions of other memory cell blocks |
US5956473A (en) * | 1996-11-25 | 1999-09-21 | Macronix International Co., Ltd. | Method and system for managing a flash memory mass storage system |
US5832493A (en) | 1997-04-24 | 1998-11-03 | Trimble Navigation Limited | Flash file management system |
KR100297986B1 (ko) | 1998-03-13 | 2001-10-25 | 김영환 | 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법 |
US6260156B1 (en) | 1998-12-04 | 2001-07-10 | Datalight, Inc. | Method and system for managing bad areas in flash memory |
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 |
JP2002032256A (ja) * | 2000-07-19 | 2002-01-31 | Matsushita Electric Ind Co Ltd | 端末装置 |
US6732221B2 (en) * | 2001-06-01 | 2004-05-04 | M-Systems Flash Disk Pioneers Ltd | Wear leveling of static areas in flash memory |
-
2002
- 2002-10-28 US US10/281,670 patent/US6973531B1/en not_active Expired - Lifetime
-
2003
- 2003-09-10 AU AU2003270545A patent/AU2003270545A1/en not_active Abandoned
- 2003-09-10 AT AT03752244T patent/ATE387714T1/de not_active IP Right Cessation
- 2003-09-10 EP EP03752244A patent/EP1559113B1/en not_active Expired - Lifetime
- 2003-09-10 DE DE60319407T patent/DE60319407T2/de not_active Expired - Fee Related
- 2003-09-10 KR KR1020057007323A patent/KR20050059314A/ko not_active Application Discontinuation
- 2003-09-10 JP JP2004548320A patent/JP2006504221A/ja active Pending
- 2003-09-10 WO PCT/US2003/028502 patent/WO2004040585A1/en active IP Right Grant
- 2003-09-10 CN CNA038247844A patent/CN1701390A/zh active Pending
- 2003-09-18 TW TW092125804A patent/TWI267866B/zh not_active IP Right Cessation
-
2009
- 2009-09-02 JP JP2009202432A patent/JP2010015591A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8122184B2 (en) | 2007-01-17 | 2012-02-21 | Memoright Memoritech (Wuhan) Co., Ltd. | Methods for managing blocks in flash memories |
Also Published As
Publication number | Publication date |
---|---|
ATE387714T1 (de) | 2008-03-15 |
WO2004040585A1 (en) | 2004-05-13 |
US6973531B1 (en) | 2005-12-06 |
KR20050059314A (ko) | 2005-06-17 |
EP1559113B1 (en) | 2008-02-27 |
DE60319407T2 (de) | 2009-03-19 |
DE60319407D1 (de) | 2008-04-10 |
TW200418038A (en) | 2004-09-16 |
AU2003270545A1 (en) | 2004-05-25 |
EP1559113A1 (en) | 2005-08-03 |
JP2010015591A (ja) | 2010-01-21 |
CN1701390A (zh) | 2005-11-23 |
JP2006504221A (ja) | 2006-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI267866B (en) | Tracking the most frequently erased blocks in non-volatile memory systems | |
TWI249100B (en) | Tracking the least frequently erased blocks in non-volatile memory systems | |
CN100492322C (zh) | 非易失性存储系统中的损耗平衡 | |
TWI247292B (en) | Maintaining an average erase count in a non-volatile storage system | |
EP1559016B1 (en) | Maintaining erase counts in non-volatile storage systems | |
TWI297893B (en) | Method and apparatus for managing an erase count block | |
US20040083335A1 (en) | Automated wear leveling in non-volatile storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |