TWI244092B - Memory system - Google Patents

Memory system Download PDF

Info

Publication number
TWI244092B
TWI244092B TW089103469A TW89103469A TWI244092B TW I244092 B TWI244092 B TW I244092B TW 089103469 A TW089103469 A TW 089103469A TW 89103469 A TW89103469 A TW 89103469A TW I244092 B TWI244092 B TW I244092B
Authority
TW
Taiwan
Prior art keywords
block
memory
controller
data
section
Prior art date
Application number
TW089103469A
Other languages
English (en)
Inventor
Alan Welsh Sinclair
Natalia Victorovna Ouspenskaia
Richard Michael Taylor
Sergey Anatolievich Gorobets
Original Assignee
Lexar Media Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lexar Media Inc filed Critical Lexar Media Inc
Application granted granted Critical
Publication of TWI244092B publication Critical patent/TWI244092B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Description

1244092 九、發明說明: 【發明所屬之技術領域】 本發明係有關於一種用於資料左 貝枓儲存與取出的固態記憶 體系統,並且有關於一種用於控制到一個固態記憶體系統 之非依電性的記憶體之存取的記憶體控制器。特別是,本 發明係有關於FLASH記忾體糸妓,、,n m 已U篮糸統U及用於FLASH記憶體 之控制器。 【先前技術】 …快閃EEPR0M(電氣可抹除可程式化唯讀記憶體)元件 係普遍用於電子產業中之非依電性的資料儲存。存在有各 m的FLASH 5己憶體元件’包含有根冑nand類型的 記憶體單元、AND類型的記憶體單元、或是馳類型的 記憶體單元的元件。此類的元件可以具有不同類型的介面 到主處理器系統’該些元件係被設計來界接該等系統,例 如它們可以利用—種串列存取類型❸介面(如在許多種 人AND類型的元件中普遍使用的)或是一種隨機存 取類型的介面(如在某4 N〇R類型的元件中所使用的)。本 發明欲在適#的形式下,可應用到至少某#、而且最好是 所有這些不同類型的記憶體元件。 在電腦系統令,利甩固態記憶體系統來嘗試仿傚磁碟 儲存7C件疋已知的。產業上的目標是嘗試來增進固態記憶 月豆糸先之運作速度,以便於更佳地仿傲磁碟儲存。 【發明内容】 根據本發明之第一特點,吾人係提供一種用於連接至 1244092 一主處理器之記憶體系統,該系統係包括: 一具有非依電性的記憶體區段之固態記憶體,該些非 依私性的記憶體區段係個別可定址的,並且係被配置成可 抹除的區段之區塊,每個該區段都具有一個界定其在該記 憶體中的實際位置之實際位址;以及 一用以將資料結構寫入該記憶體並且從該記憶體讀取 資料結構、以及用以將該些區段的區塊分類成為被當作是 已抹除的區塊以及被當作是未被抹除的區塊之控制器;其 中該控制器係包含: 用以轉換接收自該主處理器之邏輯位址成為在該記憶 體t的該些記憶體區段的實際位址之機構( 一個用以指向來自該主處理器之資料將被寫入的區段 之貝際位址的寫入指標(此後稱作為寫入指標(Wp)),該寫 入‘“(WP)係被δ亥控制器控制以一種預設的順序移動在任 何被當作是已抹除的區塊之記憶體區段的實際位址之間, 亚且當該區塊已經被填滿時,移動到另一個已抹除的區 塊; 其中δ亥控制杰係被配置使得,當一個區段寫入命令係 接收自該主處理器時,該控制器係轉換一個接收自該主處 理益的邏輯位址成為一個資料被寫入的實際位址,其係藉 由對於該邏輯位址配置該寫入指標(wp)目前所指向的實際 位址;並且 其中δ玄控制為係被配置來編輯一個邏輯位址以及分別 對於邏輯位址而已經由該控制器所配置的實際位址之表(此 1244092 表以下係被稱作為區段配置表或是SAT),並且其中該控制 器更新该SAT的次數係比用來自該主處理器的資料寫入記 憶體區段的次數來的低。 , 由於並非每次於來自主處理器的資料被寫入該記憶體· 中的區段時都更新該SAT,而是在較少次數的基礎下更新 該SAT,本發明因而提供了非常快速運作的固態記憶體, 例如F L A S H A 體,藉此使仔磁碟記憶體之良好仿傚成 為可能的。 在SAT中的實際區段位址最好是由邏輯區段位址所排 序’藉此第N個SAT的項目係包含具有邏輯位址N的資 料已經被寫入的區段之實際位址。當一個區段讀取命令接 收自該主處理器時,該控制器可以在該SAT中查閱一個接 收自该主處理益的邏幸耳區段位址,以便於獲得該控制哭先 別配置給違邏輯區段位址的貫際區段位址。該S Α τ最好是 被儲存在該固態記憶體中的一或多個記憶體區段之區塊 中,每個含有SAT之任何部分的區塊以下都被稱作為sAT 區塊。較佳的是,該SAT是藉由重寫一或多個SAT的區 塊來加以更新的。藉由一次更新一整個SAT區段之區塊 下,此顯著地加快該記憶體系統的運作。 可以設置至少一個區段的區塊(以下被稱作為額外的 SAT區塊(ASB)),其係包含一個SAT區塊之修改後的版本 之個別的區段。在該ASB區塊中的每個區段最好是包含其 所更新之SAT區塊之區段的實際位址,以及該SAT區段 之修改後的版本。ASB的目的是個別地將該SAT之修改後 1244092 的區段緩衝儲存在固態記憶體中,以便於降低SAT區塊重 寫的次數。當在該ASB區塊中的所有區段都被寫入以修改 後的版本之SAT區段時,則各個SAT區塊才被重寫以包 含在該ASB區塊中所有修改後的版本,並且該ASB區塊 係被抹除。 將會認知的是,在本發明之記憶體系統中,被配置到 任何接收自該主處理器之特定的邏輯位址之實際位址並非 視邏輯位址本身而定。該控制器只是配置該寫入指標目前 所指向的實際區段位址。 如上所述,在繼續移動該寫入指標(WP)到另一個區塊 之削,該控制器係填滿一個被當作是已抹除的區塊。該控 制器可以便利地被配置來移動該寫入指標(WP),以一種預 设的順序移動在被當作是已抹除的區塊之間。 當每個區塊被寫入其中的資料填滿時,該控制器可便 利地控制該寫入指標(WP)以順序地移動,以實際位址遞升 的數值順序移動在已抹除的區塊之間。該寫入指標(wp)之 控制可以是循環的,在一種方式為一旦根據實際位址的順 序之最高的區塊中之區段已經被填滿資料時,該wp係被 該控制器控制來折回到在目前所有被該控制器當作是已抹 除的所有區塊中之具有數值上最低的實際位址之區段的區 塊。 或者是,該控制器可以使用另一種預設的順序用以將 貝料寫入該些記憶體區段。例如,該控制器可以控制該寫 入才曰k(WP)以依據貫際位址遞減的數值順序而依序地移動 1244092 在被當作是已抹除的區塊之間。另一種可行性將會是以非 依序的順序來移動在該些實際區段位址之間。例如,該wp 可以在每個被當作是已抹除的區塊中,以遞減的數值位址 順序移動在該些實際區段位址之間,而在區塊與區塊之間 則是以某種預設的順序,例如是以根據在每個該區塊的第 一個區段之實際位址之遞升的數值順序來移動。 將會§忍知到的是許多其它種預設的順序對於將資料寫 入被當作是已抹除的區塊中之區段都是可行的。再者,該 控制器可以在任何其它不需要被預先決定、或是可能只是 部分為預設的順序下,利用該些已抹除的區塊。儘管一般 而言不是較佳的,該些已抹除的區塊甚至可以隨機的順序 加以利用。 在每個區段的區塊中、之記憶體區段最好是整體為一個 單位之可抹除的。該些區段也可以是個別可抹除的(例如在 5亥固怨記憶體是and類型記憶體之情形令)。該控制器最 好是被配置來控制記憶體之抹除動作,以只是抹除整個記 憶體區段的區塊。若在一個區塊中所有的記憶體區段都是 已抹除的區段,則一個區段的區塊將會被該控制器當作是 一個已抹除的區塊。若一個區塊包含一或多個損壞的(亦即 有缺陷的)區段時,該控制器可以將該整個區塊定義為損壞 的,並且將該區塊當作是未被抹除的區塊,藉此將沒有資 料會被寫入到該區塊。或者是,若一個區塊包含一或多個 損壞的區段時,該控制器可以將該區塊當作是一個已抹除 的區塊,藉此該控制器仍然可以使用在該區塊中良好的區 10 1244092 段以儲存資料。可是,在後者的例子 J于中’垓記憶體系統最 好係包含-個指明損壞的區段之表’並且該控制器係被配 置來檢查該寫入指標(WP)將被移到的下—個區段位址是否_ 為-個損壞的區段之位址,而若它是—個損壞的區段之位. 址時,該控制器係控制該寫入指標來跳過此損壞的區段, 亚且根據該些區段將要被寫入之預設的順序移到下一個區 段位址。 :了避免有疑惑,任何包含已經被寫入之良好的(亦 即,热瑕疵的)區段之區塊將被該控制器當作是一個未被抹 2的區塊。再者,想要的是該詞“已抹除的,,區段係不僅涵 蓋已經被抹除的區段,而是也涵蓋從未曾被寫入、因而也 未冒被抹除之區段。因此,一個從未曾被寫入過之區段的 區塊係被該控制器當作是一個已抹除的區塊。 母個區段的區塊都最好擁有一個界定其在該記憶體中 之貝際位置的貫際區塊位址。每個該記憶體區段的實際位 址最好都將是包含其所位於的區塊之實際區塊位址。該控 制器可有利地被配置來編輯一個至少某些區段的區塊被當 作是已抹除的實際區塊位址之表列,該表列可以被該控制 為所利用來快速地指出下一個將被寫入之區段的區塊。此 已抹除的區塊之位址的表列最好是由該控制器儲存在一個 曰%的§己憶體甲’該暫時的記憶體可以被設置於該記憶體 系統中’且該暫時的記憶體可便利地是該控制器的微處理 為中的SRAM,並且可以從已經存在該固態記憶體中的資 訊、藉由該控制器來加以產生,以指明每個區段的區塊之 1244092 抹除的狀悲。(此資成將最好是以位元對映(bitmap)的格式 被保存在5亥固恕圮f思體中,其中每個區塊均被記錄成一個 已抹除的區塊或是一個未被抹除的區塊。) 該控制器係便利地被配置使得,當一個區段寫入命令 係從。玄主處理裔由该控制器所接收時,該命令係使得先前 被寫入另一個區段的資料成為廢棄的,該控制器係將包含 現在為廢棄的資料之區段的位址儲存在一個暫時的記憶體 中此暫日守的圮憶體可便利地是被設置在該控制器的微處 理器中之SRAM或是DRAM。若一個由使用者所產生之區 段刪除命令係由該控制器接收自該主處理器時,則該控制 器最好是將被刪除的區段標示為廢棄的(而無實際地抹徐該 區段)。該控制器在任何時間之下只可容許一個區塊(以下 稱作為目前廢棄的區塊(C0B))來包含一或多個内含之前被 该寫入指標(WP)所寫入之廢棄的資料之區段,並且當c〇B 中的所有區段都包含廢棄的資料時,該c〇B立刻被抹除。 對方、其中该寫入指標(WP)在繼續移到下一個區塊之前,其 =順序地移動在每個被當作是已抹除的區塊t之記憶體區 段位址之間的情形,此為特別適合的方式。在此種方式中, 、連串將被刪除之廢棄的區段(例如,其可能包含一個已經 被重寫的使用者資料檔案之部分)在大多數的情形中將全部 在同-區塊中。當一連串的區段以一種順序為不同於先前 :寫入的順序來加以重寫時,此可能會造成廢棄的區段處 -個以上的區塊中。在並非COB的區塊内之區段將要包 合廢棄的資料的情形中,該控制器最好是重新配置在該 12 1244092 COB中有效的(非廢棄的)區段内之任何資料至另一個區 塊,該區塊可以是該寫入指標(WP)目前所指向的區塊,並 且接著抹除該COB。在並非COB的該區塊内之該區段於 是被標示為廢棄的,並且此另外的區塊現在成為該C Ο B。 不同於將重新配置的資料寫入該寫入指標之目前的位置, 該記憶體系統可以包含第二個寫入指標(以下稱作為重新配 置指標(RP))用以指向此種重新配置的貧料將被寫入的區段 之實際位址,該重新配置指標(RP)始終係在一個不同於該 寫入指標(WP)之區段的區塊中。此係具有優點為避免重新 配置的資料與該主處理器所直接命令來寫入、亦即由該寫 入指標(WP)所寫入的資料結構混在一起。 一般而吕’只有兩種類型的資料係從該主處理器寫入 到該固.態記憶體。這些是檔案資料與系統資料。為了進一 步減少重新配置與抹除的次數,該記憶體系統可進一步包 s —個第二寫入指標,以下稱作為系統寫入指標(swp), 其係指向來自主處理器之系統資料將被寫入的區段之實際 位址,該SWP始終係在一個不同於該寫入指標(wp)的區 塊中(並且若有一個重新配置指標時,則在一個不同於該重 7配置指標的區塊中)。系統資料將最好是在系統的初始化 ’月間被指明,並且在運作期間將會視需要而被更新。 在寫入指標(WP)以及系統寫入指標(SWP)兩者均被提 供的情形中,槽案資料在此情形中將始終被寫入由該寫入 = (WP)所指向的位址。重新配置指標(Rp)以及系統寫入 Μ票(SWP)兩者最好是以類似於該寫入指標州之方式, 13 1244092
址中,所界定之下一個將被使用的位址。 在一個系統窵入招姆/CWD、4 a Μ α β ^ ,
傳送到該系統寫入指標(SWp)目前所指向的位址。 事實上,在任何時間可能暫時存在有兩個以上的内含 廢棄的資料之區塊(該等C〇B與C〇SB)。例如,可能發生 的是當該COB f要被抹除時(廢棄的資料剛剛已經被產生 一可能正指向該COB , COB的區塊。在此種情 在另一區塊中),該等寫入指標中之一 亦即該WP仍然正在寫入目前是該c( 形中,該控制器最好是繼續產生新的c〇B ,但是延緩舊的 COB(其在以下被當作為未決定的廢棄區塊(ρ〇Β^之抹除, 直到在該POB中所有被抹除的區段都已經被填滿,並且該 寫入指標移到下一個如該控制器所界定的將被使用之已抹 除的區塊為止。在此時,在該P〇B中任何有效的(非廢棄 的)資料係被重新配置,並且該POB係加以抹除。 14 1244092 除了從該主處理哭蔣咨刺_ 处叩將貝科結構寫入該記憶體之外,該 控制器也可以產生祐;H — & 、疋為控制資訊之資料並且將該資料 罵入该§己憶體。該控制考^L θ 為取好疋將此種在記憶體區段的區 塊中個別的區塊内之控吿 ^ 帝貝Λ寫入到接收自該主處理器的 負料結構被寫入其中的ρ秘 、 &鬼°用於儲存此種控制資訊的區 塊(以下稱作為控制區餘广 鬼(CBs))將會由該控制器定期地加以 更新,並且將會在此$彳音#彡 。己U體糸統的初始化期間、以及偶爾 在運作期間加以存取。 /該控制器最好是將-個對於自從該SAT上-次被更新 後已”二由°亥寫入扣標(WP)所寫入的資料結構之邏輯區 段位址的表列儲存在—個暫時的記憶體中(其可以是被設置 在該記憶體系統中# RAM、或者是其可便利地是一個在該 控制器的微處理器中之内⑽SRAM或是DRAM)。此儲 存在。亥SRAM t的表列以下稱作為寫入區段表列(WSL)。 在該WSL中的邏輯位址有利的是以它們過去被寫入該記 fe體中的非依電性的區段之順序來加以儲存。便利的是, 對於一組連續被寫入的區段而言,該WSL項目可因而被 寫成第一個區段的邏輯位址以及該區段組的長度,亦即被 寫入的區段之數目。每個該區段組係被定義為不超過大於 '個區段之區塊。 遠控制為也有利地儲存自從該SAT上一次被更新之 後、已經被該寫入指標(WP)利用於寫入資料的區塊之順序 在該暫時的記憶體中。此被儲存以一個其位址被保存在該 WSL中的更新過的區段所位在的區塊之區塊位址的表列之 15 1244092 形式。此區塊位址的表列在以下係稱作為寫入區塊表列 (WBL)。將認知的是,由於該記憶體系統係藉由該wsl與 WBL而含有對於在實際記憶體中被配置給該組連續寫入的 區段t第一個邏輯位址之位置的瞭解,因此該控制器在利. 用該WSL與WBL之下,始終可以存取到自從上一次的sat 更新之後、對於在該組連續寫入的區段中所寫入之每個邏 輯區段位址的正確的實際區段。該WSL將最好是具有一 個預設的大小,並且一旦該WSL滿了之後,一或多個sat 區塊(及/或ASBs)可加以更新,並且該WSL與WBL係被 騰空。 表好疋起始的貫際區段位址、以及内含自從上一次 的SAT更新之後、資料已經被該控制器寫入的區段之區塊 間的鏈結也被儲存在該固態記憶體的一個控制區塊之中。 藉由分別儲存對於被儲存在每個區段中之使用者資料的邏 軏區段位址在該區段本身中,例如儲存在該區段令所設置 的一個標頭攔位中,該WSL與WBL因而可以在電源移開 與回復到該系統之後輕易地加以重新產生,其係藉由掃描 在该固怨圮憶體之間、讀取在該些區段中,自從SAT上一 -人的更新之後所寫入的邏輯位址、直到抵達一個未滿的區 塊為止。此(丁、為在電源移開或失去之間、含有該寫入指標 (WP)的區塊。在不預期的電源從該記憶體系統移開之事件 中’此係提供高度的資料安全性。 在重新配置指標以及系統寫入指標係内含在此記憶體 不、’’充内的I*月形中,該控制器最好也儲存類似的、對應於在 16 1244092 该e憶體中,重新配置的資料或是系統資料已經分別被寫 入的區段之邏輯區段位址的表列在該暫時的記憶體中(例 如,在該控制器的微處理器中的SRAM或是DRAM),該 』表列在以下係分別稱作為重新配置區段表列(RSL)以及 寫入系統區段表列(WSSL)。該控制器也可以儲存類似於該 寫入區塊表列之已經被該RP與swp所利用之區塊的順序 之相對應的表列於該暫時的記憶體中,並且這兩個表列將 在以下係稱作為重新配置區塊表列(RBL)以及寫入系統區 塊表列(WSBL)。此外,起始的實際區段位址、以及内含自 k上一次的SAT更新之後、重新配置的資料或是系統資料 已經被寫入的區段之區塊間的鏈結也可以被儲存在該固態 記憶體的至少一個控制區塊之中,藉此該RSL與WSSL可 以在任何的電源移開與回復到該主處理器之後加以重新產 生’其僅係藉由掃描在該記憶體並且讀取在該些區段中, 自從SAT上一次的更新之後由該rP與swp分別所寫入的 邏輯位址。 在任何之上述的實施例中之每個該區段都可由單“頁” 的記憶體,亦即在該記憶體區段的區塊中之一列的記憶體 單元所構成。然而,本發明並不僅限於此種區段的格式, 而在某些例子中(例如當使用隨機存取的nor類型記憶 體),每個該區段可以是小於、或是大於一頁。此外,在後 者的例子中’並非所有的該區段都必需要具有相同的大 小。例如,一種資料組織方式,例如在吾人先前的國際專 利申請案號PCT/GB99/001 88中所描述的方式,可以由該 17 1244092 控制器所利用來構成具有適當大小之區段,以避免可能存 在於a亥固悲§己丨思體中之個別的瑕症(具有次區段的大小)。 如先丽所述,每個區段是個別可定址的。每個區段可 以包括複數個區段部分,該些區段部分也分別是個別可定 址的,因而該控制器可個別地寫入、讀出每個區段部分。 將認知的是,最小可能的區段部分大小是該記憶體之最小 可定址的單元。例如,在NOR類型的記憶體中,記憶體 之最小可定址的單元一般是1個位元組。 該控制器最好是以一致大小的資料片段來寫入資料至 該些記憶體區段,並且從該些記憶體區段讀出資料。在所 有的記憶體區段都是同樣大小時,每個該資料片段在大小 上最好是等於該記憶體區段之大小。每個資料片段可包括 來自該主處理器的資料結構(例如,檔案或是系統資料)及/ 或由該控制器所產生的資料。 在5玄固恶έ己憶體是根據NAND類型之元件的情形中, 該控制器最好是儲存一個在該非依電性的記憶體中内含損 壞的區段的區塊之區塊位址的表列(以下係稱作為損壞的區 塊表列(BBL))在該一或多個控制區塊中,並且該控制器將 每個此種區塊都當作是一個“未被抹除的,,區塊,因而該區 塊不會出現在該可能被儲存在暫時的記憶體中之已抹除的 區塊表列中,因而該控制器將不會寫入任何資料到該區 塊。 在該記憶體是根據AND類型之元件的情形中,該控 制器最好是儲存一個任何損壞的區段之位址的表列在嗜一 18 1244092 或多個控制區塊(CBS)中,並且該控制器係控制該等寫入指 標來使用在任何包含有至少—個損壞的區段之區塊中的良 好的區&,而跳過任何損壞的區段。將會認知的是,在後 者的含有-或多個損壞的區段之區塊將被抹除的例子中, 在該區塊中良好的(亦gp | f、☆ Μ、么 I P…、瑕疵的)係在區塊抹除的動作期 間個別地加以抹除。 该控制Is也有利地儲存一個所有的SAT區塊之區塊位 址的表列在該一或多個控制區塊中。此表列最好是複數個 表列部分之形4,每個該部分在以下係稱作為表區塊表列 (TBL)’並且每個該部分係包含一組邏輯上連續的从丁區 塊以及任何板對應的ASB之區塊位址。 該控制器最好是將該一或多個控制區塊之區塊位址儲 存在該記憶體之-專用的區塊中,U下係稱作為開機區塊 (BB)。其它為資料安全性所需的重要資訊也可以被儲存在 該開機區塊中,例如該損壞的區塊(或是損壞的區段)之表 列。較仫的疋,在該記憶體中第一個不含有任何損壞的區 #又之區#又的區塊係被指定為該開機區塊(BB)。 較佳的疋,該控制器將只會利用含有都是良好的區段 之區塊作為SAT區塊、控制區塊、ASBs或是BBs。 一個快取記憶體可以被設置在暫時的記憶體中(例如, 在該記憶體系統中的RAM,例如在該控制器的微處理器中 的SRAM或是DRAM),在該快取記憶體中,該控制器係 儲存一組連續的SAT項目,其包含最近最常從該SAT(被 該控制器)存取的SAT項目。此進一步增進了位址轉換的 19 1244092 速度。在位址轉換的速度上之進一步增進可以藉由在該暫 %的S己憶體中產生一個所有ASBs以及該些ASBs所相關 的SAT區塊之實際位址的表列(以下係稱作為ASB表列或-是ASBL)來加以達成,該表列係在每次一個SAT區段寫入. 動作被執行時係被更新。同樣地,在該等控制區塊中的TBLs 之位置也可以被儲存在該暫時的記憶體中,以供給更快速 的邏輯至實際的區段位址轉換。 忒固悲圮憶體可以包括以單一的記憶體晶片之形式的 單一的記憶體陣列,或是可以包括以複數個記憶體晶片之 形式的複數個記憶體陣列。在該記憶體包括複數個晶片之 情形中,該控制器有利地將複數個記憶體晶片中的記憶體 區段形成為複數個虛擬的區塊,每個該虛擬的區塊均包括 一個來-自於每個該記憶體晶片之可抹除的記憶體區段之區 塊,並且該控Μ器最好是將該些虛擬的區塊分類成為被當 作是已抹除的虛擬的區塊以及被當作是未被抹除的虛擬的 區塊。該控制器最好是編輯-個被當作是已抹除的虛擬的 區塊之表列,並且將此表列儲存在該記憶體系統中之暫時 的記憶體内,其可以是該控制器的微處理器内的sram。 對於每次連續的區段寫入動作,該控制器最好是控制該寫 入指標(wp)(以及當設置有RP與swp之情形中的Rp與 SWP)從一個晶片移動到另一個晶片,其係開始於該虛擬的 區塊之-個可抹除的區塊中之一個區段、並且連續地移動 到在該虛擬的區塊中之其它的每個可抹除的區塊之一個區 段、直到在該虛擬的區塊之每個可抹除的區塊中的—個區 20 1244092 段都已,被寫入為止’並且接著移回到其中第一個區段被 寫入,aa片、並且以類似的方式繼續來填入在該虛擬的區 塊之每個可抹除的區塊中之另一個區段、依此類推,直到 該虛擬的區塊係填滿資料為止。該寫入指標(WP)接著移動· · 到在該被當作是已抹除的虛擬的區塊之表列中的下一個虛 · 擬的區塊,並且以類似的方式填滿此下一個虛擬的區塊。 该控制為取好是被配置使得對於該控制器所執行之每n個 連縯的區段寫入動作而言,其中η是小於或是等於在該記 十思體系統中之固態記憶體晶片的個數,該控制器係實質上 馨 同時地寫入在η個晶片中的每個晶片内之一個區段。該控 制裔最好是藉由同時地抹除在該虛擬的區塊中之所有可抹 除的區塊來進行任何該虛擬的區塊之抹除。 ..將會體認到的是,該記憶體系統的控制器可以實質地 被做成電路成為一個控制器元件,但將會最好是被做成(至 少部分地)保存在一個控制器元件的記憶體内的韌體。該控 制器可以一體地被形成在與該固態記憶體相同的晶片之上 (或是相同的晶片中之一晶片上)。 _ 根據本發明之第二特點,吾人係提供一種用於連接至 . 一主處理器的記憶體系統,該記憶體系統係包括·· · 一個包括複數個固態記憶體晶片之固態記憶體,每個 晶片都具有個別可定址的、並且被配置成可抹除的區段的 區塊之非依電性的記憶體區段,每個該區段都具有一個界 定其在該記憶體中的實際位置之實際位址; 以及一個用以將資料結構寫入該記憶體並且從該記憶 21 1244092 體讀出資料結構之控制器,其中:
該控制器將該些可抹除的區塊形成為虛擬的區塊,每 個該虛擬的區塊係包括來自每個該記憶體晶片之一個可抹 除的區塊,並且該控制器係將該些虛擬的區塊分類成為被 當作是已抹除的虛擬的區塊以及被t作是未被抹除的虛擬 的區塊,並且該控制器係先以資料填滿一個虛擬的區塊才 移動到下-個將被填入的虛擬的區塊,並且每個虛擬的區 塊係藉由以-種反覆的順序來寫人其記憶體區段而加以填 滿’其中該控制器-個接著一個地寫入該虛擬的區塊之每 個可抹除的區塊中之一個記憶體區段,藉此連續被寫入的 區段是在不同的晶片之中。 較佳的是,該控制器係被配置使得對於該控制器為了 一個接收自該主處理器之多重區段寫入命令而執行的每η 個連續的區段寫入動作之情形中,其中的η是小於或等於 在該記憶體系統中之固態記憶體晶片的個數,該控制器實 質同時地寫入在該η個晶片之每個晶片中的一個區段。
根據本發明之第二特點,吾人係提供一種用以將資料 、乡口構寫入一個固悲圮憶體並且從該固態記憶體讀出資料結 構之控制器,該固態記憶體係具有個別可定址的、並且被 配置成可抹除的區段的區塊之非依電性的記憶體區段,每 個該區段都具有一個界定其在該記憶體中的實際位置之實 際位址,其中該控制器係包含: 用以轉換其中έ亥控制器所使用、接收自一個記憶體系 統之主處理器的邏輯位址成為在該記憶體中的記憶體區段 22 1244092 ,實際位址、並且用以將該些區段的區塊分類成為被當作 是已抹除的區塊以及被當作是未被抹除的區塊之機構; 以及用以指向從該主處理器將被寫入的區段之實際位_ 址之寫入指標(WP),該寫入指標(wp)係由該控制器所控 制,以-種預設的順序來移動在任何被當作是已抹除的^ . 塊内之記憶體區段的實際位址之間’並且當該區塊已經被 填滿時,移動到另一個已抹除的區塊; 並且其中,當一個來自該主處理器的區段寫入命令被 ,控制器所接收時,該控制器係轉換一個接收自該主處理春 器的邏輯區段位址成為一個資料被寫入的實際位址,其係 藉由對於該邏輯位址配置該寫入指標(wp)目前所指向的趣 際位址; $ 亚且其中該控制器係被配置來編輯一個邏輯位址以及 已I由忒控制器分別對於該邏輯位址所配置的實際位址之 表(該SAT),並且更新該SAT的次數小於以來自該主處理 器的資料寫入記憶體區段的次數。 根據本發明之第四特點,吾人係提供一種用以控制資 # 料結構的讀取與寫入往返一個固態記憶體之方法,該固態· 。己fe體係具有個別可定址的、並且被配置成可抹除的區段 的區塊之非依電性的記憶體區段,每個該區段都具有—個 界定其在該記憶體中的實際位置之實際位址,該方法 括步驟有: ' 分類該些區段的區塊成為被當作是已抹除的區塊以及 被^作疋未被抹除的區塊; 23 1244092 提供一個用以指向將被寫入的區段之實際位址的寫入 指標(WP),並且控制該至少一個寫入指標(WP)以在一種預 設的順序下移動在任何被當作是已抹除的區塊之記憶體區 段的實際位址之間,當該區塊已經被填滿時,移動到另一 個已抹除的區塊; 並且,當一個區段寫入命令係接收自該主處理器時, 將一個接收自該主處理器的邏輯位址轉換成為一個資料被 寫入的實際位址,其係藉由對於該邏輯位址配置該寫入指 標(WP)目前所指向的實際位址;
儲存一個邏輯位址以及已經由該控制器分別對於該邏 輯位址所配置的實際位址之表(該SAT)於非依電性的 記憶體中; U 並且更新该SAT的次數小於以來自該主處理器的資料 寫入記憶體區段的次數。 【實施方式】 圖1係顯不三頁1、2、 2、3在該區塊4之中。該頁i以
係包括多個列的記憶體單元(亦即多個頁)。每個頁 圖1係概略地描繪在一個基於NAND類型的記憶體單 兀之FLASH記憶體陣列的一個區塊4中之實際的頁結構。 的術語 單元,
體空間 在該記憶體中之每個頁1 以描述並且是528個位元組寬。 疋個別可定址的(用於讀取/寫入 1244092 以及刪除的動作),並且該些頁是以區塊 匕j尼的方式加以抹除 的。吾人現將描述一種結合此記憶體陣列之記憶體系統。 稍後吾人將另外地描述基於AND或是N〇R類型的FLASH g己憶體之記憶體系統。 圖2係顯示一種結合一個快閃記憶體晶片5以及一個 控制器晶片8之記憶體系統。該快閃記憶體晶片5係包括 一個快閃記憶體陣列6以及一個讀取/寫入緩衝器7 / =讀 取/寫入緩衝器7係界接到在該控制器晶片8中之—個护= 器緩衝器9。該控制器晶片8更包含一個控制器微處:哭 η以及一個錯誤校正碼(ECC)產生器與檢查器12。該控制 器緩衝器9界接到一個透過該控制器晶片8之輸出連 接至該記憶體系統10之主電腦處理器(未顯示)。該控制哭 晶片/(以下稱之為“控制器,,)係控制往返於該記憶體:列: 的貧料結構的讀取與寫入。連接到該記憶體系統之主 處理器係傳送讀取與寫入的命令至該控制器8。資料可以 由主處理器以512位元組的部分或是“主資料區段”來加以 存取’每個區段都具有一個邏輯區段位址(LA)。該控制哭 δ從該主處理器接收到一個LA並且轉換此LA成為—個實 P不位址’此將於以下加以描述。在本例子中⑽仙類型的 記憶體)’每個實際位址(PA)係界定在該陣列6中的快閃記 憶體之頁i的實際位置。每個LA係為—個24位元的棚位 之格式。利用LA來存取PA是稱作為位址轉換,並且一 般是在每次讀取/寫入的存取上所需要之最頻繁的動作。該 控制器8係以資料片段將資料寫入該記憶體陣列中,每個 25 1244092 片&係為528位元組寬。對於每個接收自該主處理器之$ 12 位凡組的資料(例如,使用者檔案或是系統資料),該控制 器係產生16位元組的資料,其係包括由該微處理器1 1所 產生之4位元組的標頭(header)以及一個由該ecc產生器 與k查裔1 2所產生之丨2位元組的ecc。該控制器將此組 織成為一個528位元組的資料片段,該資料片段係透過該 快閃緩衝裔7而被寫入到該記憶體陣列6之一頁。一個主 貝料區段的邏輯位址(LA)係被儲存在該主資料區段被寫入 的快閃記憶體區段丨中之4位元組的標頭之内。在一個讀 取動作上,儲存在該快閃記憶體陣列之相關的區段内之資 料係從陣列6,中讀出、透過該快閃記憶體讀取/寫入緩衝器 7、進入到该控制器緩衝器9(並且同時進入到該^〔(^產生 為與檢查裔以檢查該資料中是否有錯誤),並且該控制器在 谷命4主電腦從該控制器緩衝器9讀取該資料之前,先讀 取该4-位元組的標頭以檢查所儲存的la是否符合由該主 電腦所要求的LA。 該控制器8係在個別的區段基礎上管理被寫入該記憶 體6的資料之實際位置。如稍後將更詳細地加以說明的, 該控制器在該記憶體6之中儲存已抹除的區塊之位元對映 (MAP) ’並且在s亥微處理器η中的SRAM内編輯一個至少 一些已抹除的區塊之表列(下一個已抹除的區塊(ΝΕβ)之表 列),其排序是以區塊實際位址的遞昇順序,該些已抹除的 區塊係為將被用來寫入的。主資料區段被寫入的實際頁位 置並不依據接收自該主處理器的邏輯位址而定。每個主資 26 1244092 料區I又都疋被寫在一個由一循環的寫入指標所定義的位址 免#寸殊的寫入指標係被用於不同類型的寫入動作;主才當 木貝料的寫入是被進行在一個由該資料寫入指標(WP)所指· 向的位址處、主系統資料的寫入則是被進行在一個由該系 、、克寫入扣;^ (SWP)所指向的位址處。該重新配置指標(反P) 係被用以寫入並非由主處理器所直接排序的區段。每個這 些寫入指標都擁有一種相同的特性:每個指標都是順序地 移動在-個區塊的頁之間、_多到在該下一個已抹除的 區塊(NEB)表列中之下一個已抹除的區塊之第一頁。内含 有未被抹除的檔案之區塊係被當作是“未被抹除的”區塊, 亚且當-個指標從一個區塊移動到另一個區塊時係被跳過 (並且永遠不會内含在該NEB中)。 篮-I重新配置之法則 田一個區段的區塊4將被抹除,以便於回復内含廢棄 的資料之區段空間時’區段必須從一個内含有效的與廢棄 的區段之區塊中重新配置,以容許該區塊被抹除。原則上, 該控制器8在任何時候只允許—個區塊對應到一個特定的 寫入指標以含有廢棄的資料區段。當一個將被該主處理器 寫入的區段將會產生-個廢棄的區段在—第二個區塊中 時,在有效的區段之重新配置之後(若需要的話),現有的 區塊必須先被抹除。 因此’當大多數的區塊都包含有效的以及廢棄的區段 時,區段之無數次的抹除以及廣範圍的重新配置是無法避 免的。此僅發生在由主處理器寫人作為檀案之^部份的一 27 1244092 連串的區段不同於之前e 心引匕經破寫入的順序。在大多數的應 用中’此並非疋一船悟ζ-κ '° :、、丨而,即使在平常的檐案寫入 動作之情形中’不相關的資^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 只〒十之窒新配置仍然必須從包含 才當案的頭部及“尾部”之F祕 吐塊中加以進行。與“其它的檔案,, 資料混合的系統資料之會雜^职人 、十之重新配置會產生額外的另一區塊之 抹除是有很高的可能性,阳& lL ι 口而此將會從此區塊產生更多的 重新配置。 為了降低重新配置盘枯^ 1興抹除之總數,系統資料係因此特
別地予以指明,並且妒玖A #么Μ # 始〜在遠糸統寫入指標(swp)的位址 處加以寫入或是重新配置。綠系統資料的資訊係在初始 化期間獲得,並且被儲存在該微處理器之sram 13之中。
.大致將瞭解較,一個資料檔案係藉由在該主電腦處理器 中的檔案系統而被寫入到該快閃記憶體。檔案資料係被該 檔案系統劃分成為群集(clusters),其中每個群集是一組(典 型為)512位元組之連續的主資料區段。該檔案系統係維持 相關於儲存在該記憶體中的檔案屬性與構成每個檔案之群 木的位置之表以及資料結構。這些表與結構係被儲存在該 快閃記憶體中(作為系統資料)並且每當檔案資料被寫入時 都由該檔案系統加以更新。當檔案資料被寫入該記憶體 呀’其係伴隨著相關於該檔案的系統資料(例如,對於目錄 X及核案配置表)。被寫入該記憶體中的系統資料一般係包 s m〇s參數配置資訊、一份或是兩份的檔案配置表 (fat),其中的每個項目係相關於一個特定的群集、根目 錄、以及子目錄的資訊。該控制器係被配置來識別出一個 28 1244092 =入主系統資料區段的動作’藉以使得其能夠以不同於構 案資料的主資料區段之方式來處理此主資料區段。一些方 可以單獨或疋起地加以利用來識別出系統區段的寫 入’其係如下: 1.系統資料係以單一區段寫入的命令來加以寫入,而 檔案資料可以用多重區段寫入的命令來加以寫入。 2·所有具有la為在檔案系統的根目錄中的最後一個 區丰又位址之下的區段都疋系統區段。此位址可以由該主檔 案系統所儲存在該記憶體中之BI0S參數區塊内所保持的 資訊所決定。 3 ·所有在子目錄中的區段都是系統區段。子目錄位址 與大小可以藉由讀取所有的根目錄與子目錄之項目來加以 指明。 4 ·系統區段通常就在它們被重寫之前由播案系統所讀 取。 為了相同的目的,將被重新配置的檔案資料區段係被 寫在由一個重新配置指標(RP)所界定的位址處,並且係因 此未與由該主處理器所寫入的區段混合。 在本發明之一修改後的實施例中,一個額外的寫入指 標可被提供來指向重新配置後的系統資料將被寫入的位 置。此額外的指標被稱作為該系統重新配置指標(SRP),並 且永遠位在與WP及SP不同的區塊中。 區塊抹陰二的法則 並沒有任意之將被抹除的區塊之選擇或是背景抹除的 29 1244092 排程(scheduling)被執行於本發明中。内含廢棄的區段之區 塊的表列之抹除通常是當另一個區塊中一個廢棄的區段將 會由於尚未決定的主區段寫入命令而產生之際係立刻加以 執行。類似地,一個區塊是當它由於控制區塊之重寫而整 個都包含廢棄的控制資料結構之際係立刻加以抹除。(控制 區塊是該控制器8寫入某些控制資料之處,並且將在稍後 更詳細地描述)。 因此,通常來說,由於重新配置不能夠產生廢棄的資 料,因此能夠存在最多兩個含有廢棄的資料之區塊;對應 到該資料寫入指標(W P)並且含有廢棄的檔案資料之目前廢 棄的區塊(COB)以及對應到該系統寫入指標^…^並且含有 廢棄的系統資料之目前廢棄的系統區塊(c〇SB)。然而,每 種類型暫時都可能存在有多一個廢棄的區塊。此將會發生 在一個將被抹除的區塊(廢棄的資料剛剛在另一個區塊内產 生)在此刻也包含另一類型的寫入指標。在此例中,此種區 塊(被稱為未決定的廢棄區塊(POB))的抹除必須被拖延,直 到在此區塊中所有已抹除的頁都已經被利用為止,並且相 關的寫入指標將會被移到另一個區塊。在此刻,該未決定 的廢棄區塊係立刻被抹除。 如如所述’已抹除的區塊身分係被維持在一個橫跨整 個快閃記憶體區塊的位址空間之位元對映(MAp)之内,在 該MAP中,每個區塊之抹除的狀態係被記錄。已抹除的 區塊係為以區塊位址的順序依序寫入的區段或是控制資料 所消耗。沒有任何背景抹除係被執行。任何含有一或多個 30 1244092 損壞的區段之區塊都被該控制器當作是一個損壞的區塊而 且被當作是一個“未被抹除的”區塊。 廛耗平均 循$衣的寫入指標以及早^ 一區段寫入的管理之利用传產 生固有的磨耗平均於該快閃記憶體中。然而,一但區塊佈 滿了廢棄的或是被刪除的資料、就立即抹除區塊的法則係 產生一種磨耗平均的特性為區段寫入動作的順序之函數。 若任何進一步的磨耗平均被認為是必要時,則個別之額外 的技術可被納入,例如,時常重新配置在隨機所選的區塊 中之區段以讓該些區塊被抹除。 位址韓換之厗理 主要的位址轉換機構是該區段位址表(SAT),其基本 上是一個以邏輯位址來排序的區段之實際位址的表列。因 此,第N個SAT項目通常是包含具有邏輯位址N之區段 的貫際位址。該SAT被組織成一些獨立的區塊(sat區塊), 並且是藉由重寫該SAT區塊之個別的頁來加以更新。一個 SAT區塊可以擁有一個專用之額外的SAT區塊(ASB)與其 連結來容許該SAT區塊之個別的頁之修改。SAT的頁並非 在每次區段寫入之後都加以重寫,而是在非常低的次數之 基礎下加以重寫,以將對於區段寫入效能上的影響降至最 低。 因此,該SAT將不會包含自該SAT上一次更新之後 所寫入的區段之正確的實際位址。此種區段的邏輯位址係 由該處理器儲存在其SRAm 1 3中、稱作為寫入區段表列 31 1244092 (WSL)、重新配置區段表列(RSL)以及寫入系統區段表列 (WSSL)之諸表列中。這些表列完全相符於該些區段本身被 主處理器寫入、或是在抹除之前從區塊重新配置的次序。 在連續被寫入的區段之例子中,該WSL與rsl的項目係 定義第一個區段的邏輯位址以及該區段組的長度。該些區 段組不能夠從一個區塊跳到另一個區塊。該微處理器U 係知迢該等區段串列在快閃記憶體中的起始點,並且也知 迢區塊被用於區段寫入的順序(特殊的表列,其係互補於上 述的表列,並且被產生於該處理器的SRAM中,亦即該寫肇 入區塊表列(WBL)、寫入系統區塊表列(WSBL)與重新配置 區塊表列(RBL),被用來儲存此資訊並且稍後更詳細地加 以敘述),並且因此能夠計算區段的實際位置。 該WSL、RSL輿WSSL(以及互補於這些表列之表列: WBL、WSBL肖RBL)在電力從該記憶體系統移去並且回復 之後,都可由該微處理器u藉由讀取自上一次sat重寫 之後所寫入的連串中之區段的標頭内之邏輯位址來加以重 新產生。在該連串中的起始區段位址以及含有在該連串中 # 的區段之區塊間的連結係由該微處理器從快閃記憶體内的 、 一個稱作為控制區塊(CB)之特殊的資料結構令的項目而獲 _ 得。(該控制區塊(CB)稍後將詳細地加以敘述)。此種方法 給予在不預期的電力從卡令移開的事件中高度的資料安全 性。 將可6忍知的疋’在内含有—個系統重新配置指標(srp) 的情形中’如上所述地,-㈣統重新配置區段表列(srsl) 32 1244092 以及互補的系統重新配置區塊表列(SRBL)也被產生並且也 颏似於如上分別相關於WSL、RSL與wssl、以及、 RBL與WSBL所述的方式來加以利用。 根據本實施例,資料被該控制器8寫入的快閃記憶體,· 區段(亦即頁)1中的資料組織係被描繪於圖3之中。該區 · 段1包含一個第一、512位元組的資訊部分la(其可以例如 構成一個主資料區段)、之後是一個4位元組的標頭部分 lb、依序之後是丨2位元組的ECC 1 c。如圖4中所示,該 標頭部分本身係包括資料結構類型部分2〇以及一個標頭 _ 參數22(例如包括在資訊部分la中所寫入的主資料區段之 邏輯區段位址(LA))。該資料結構類型可以具有值來代表任 何一種以下的類型:資料區段;刪除的資料區段;區段位 址表(SAT)頁;,額外的SAT區塊(ASB)頁;控制區塊(CB)頁; 以及開機區塊(BB)頁。 刪除的資料區段 一個刪除的資料區段實際上只暫時地存在於該快閃記 憶體内被允許含有廢棄的或是刪除的區段資料之區塊中, 馨 亦即該COB或是COSB。其係藉由在該標頭内的資料結構 、 類型欄位之“全部為〇”的狀態、或是其它適當的手段來加 . 以指明。 區段位址表(SAT) 該SAT是一連串含有邏輯區段之實際位址的項目。項 目N係含有邏輯區段N的實際位址。在一頁中的項目係佔 有被儲存在該頁中的資料之資訊部分la的5 12個位元組。 33 1244092 由於- SAT頁是以單一動作來加以寫入,該ecc攔位可 以被用來保護該整頁,並且對於在該SAT頁中之每個項目 並不需要個別的ECC攔位。 、 。亥SAT貝際上被儲存為一連串的區塊,每個區塊均含 有咼達64個SAT頁。一個別的資料結構(該表區塊表列 (TBL))係被保存在該控制區塊中(稍後描述)以界定所有的 SAT區塊之區塊位址。每個SAT項目係界定一個區段的實 際位址並且佔有3個位元組,且如圖5中所示係包括: 晶片號碼5位元,其容許32個晶片被定址 區塊號碼1 3位元,其容許每個晶片有8 192個區塊 區段號碼6位元,其容許每個區塊到達有64 :個區段。 在一 SAT頁的資料結構上之標頭參數攔位係包含該 SAT區塊以及頁號碼。 一個具有容量8MB以及8VB區塊的快閃記憶體卡可 以儲存大約16K個區段,並且其SAT將因此具有大約16κ 個項目。在一 SAT中的512位元組的頁將含有170個項目, 並且該SAT將因此佔有幾乎96頁,此將佔有6個區塊。 對於大的快閃記憶體卡(2GB,8 VB區塊)而言之SAT係佔 有1543個區塊。 額外的SAT區地(ASB) 一個額外的SAT區塊(ASB)是一個專用的區塊,其可 以被關聯到一特定的SAT區塊以容許該SAT區塊之單頁 被修改(亦即,加以重寫)。可以有數個ASBs,每個 ASB 都當作是其所關聯的SAT區塊之延伸。當一個SAT區塊 34 1244092 將被修改時’其一般而言只有在少數的頁中包含修 一 夕仁又的資 料。此ASB容許只有這些修改的頁被重寫。此係二 ^ ~種遠 比每頁的寫入以及用於重寫一個SAT區塊所需之麻在 〜果的區 塊之抹除為快的動作。一 ASB頁的標頭參數部分係包八其 所關聯的SAT區塊以及在該區塊中其所取代之 ^ . 胃5虎 碼。儲存在一 ASB頁内中的資料之資訊部分la的格式係 相同於一 SAT頁的格式。 工” 控制區塊(CBs\
该控制8儲存某些控制與位址資訊於一或多個控制 區塊(CBs)中。該等CBs係由該控制器8定期地加以更新, 亚卫必須在該記憶體系統的初始化期間或是時常在動作期 間加以存取。資訊係以具有固定大小、可以獨自被寫入的 項』而被儲存於該f CBs中。在每個CB中之每頁都有9 個項目。-個項目係、相關於下列之資料類型的表列中之— 類型,其係由在該項目本身中的CB標頭欄位來加以指明: •表區塊表列(TBL) •以項目巾的某些攔位對應於槽案資料寫人動作之區 塊的對映(WMAP) 對應於系統資料寫入動作之區塊的對映(sMAp) 對應於重新配置區段動作之區塊的對映 —當新的資料必須被加到該CB日夺,一個具有適當類 員外的項目立刻被加到上_個有效的項目之後。對於 :勺卡而σ «亥CB可能佔用一個以上的區塊。所有( 區塊的位址都被儲存在兮也 仔在σ亥决閃記憶體6中的開機區塊(Β 35 1244092 内0 為了資料的安全性,一個CB(並且該BB也是)的每個 區塊之第一頁(被指明的標頭頁)並不包含項目而是具有一 整頁的格式像是圖3的格式。此頁的標頭16之標頭參數 攔位係由一個指明該CB的標記(Signature)、以及其區塊號 碼(其係為該組控制區塊之中的區塊序號)所組成。 第一個CB區塊的標頭頁之資訊攔位U係由區塊連結 資afL的資料所佔用。若該系統必須在一 C B重寫動作之後 加以初始化時,該區塊連結資訊的資料係提供所有必需的 資訊以回復該WBL、WSBL以及RBL。其係包括連結攔位, 該等襴位係收集自上一次SAT頁寫入動作被進行之後所有 所寫入的MAPs(WMAPs,SMAPs與.RMAPs),並且在其重 寫的動作期間必須被寫入新的CB之第一個區塊的標頭 頁。忒區塊連結資訊一個4位元組項目之時序表列,每個 項目均包含一個由該些寫入指標中之一指標所探訪的區塊 之區塊位址以及一個識別其係為何指標之旗標。在記憶體 空間中之一最大限度數目的區塊係給予CBs用,並且當此 夂滿日^,有效的項目係被重寫到來自該NEB之下一個可用 之已抹除的一或多個區塊(亦即,其係被壓縮並且對應的標 頭頁係被加上),而舊的CBs係被抹除。(在此同時,一Z 對應的項目必須被加到該開機區塊。)-CB頁的資訊攔位 係包含9個等長的項目。一 CB頁的ecc攔位並未被利用、 或是可用於其它的用途。 在CB中的項目是56個位元組寬,並且具有圖6中 36 1244092 所不的格式,而包括有一個指明此項目的貢料類型之標頭 24、一個資訊攔位26以及一個ECC欄位28。此ECC是具 有與用於一整頁時之相同的型式。 表區塊表列(TBL)
該等CBs包含該表區塊表列(TBL)。該TBL係包含一 組該SAT以及任何相對應的ASBs之連續的區塊之位址。 通常需要多個TBLs來界定出所有所需的SAT區塊位址。 相關聯的TBL係在一個SAT區塊寫入動作或是一個新的 ASB之配置之後立刻被寫入,以記錄修改後的SAT或是 ASB區塊的位置。該TBL也包含當一個SAT頁寫入動作 將被執行時,被使用來記錄當時寫入指標的位置之欄位。 因此,每次SAT頁寫入動作被執行時,TBL也都被寫入。 該TBL的一個項目顯示於圖7之中,並且佔用一個CB項 目的資訊攔位26。該TBL項目的第一個位元組是No,亦 即該TBL項目的序號。每個TBL項目係保持8個SAT-ASB 區塊對的值,換言之每個TBL項目係保持從N到N + 7的 SAT區塊值,其中N是No *8。 WP是該寫入指標頁襴位,RP是該重新配置指標欄位、 而S WP是該系統寫入指標欄位。這些欄位係決定在WSL、 RSL、SSL發出動作之後、該WP、RP與SWP在該區塊之 中的位置。WP、RP與SWP只有在WSL、RSL或SSL發 出動作完成時(亦即,在上一次S AT寫入動作時)才是有效 的。此項條件係用在該項目標頭中的旗標位元來加以設 定。旗標=1係表示此項目是上一次在WSL或RSL發出期 37 1244092 間所寫入的項目,因而wp欄位是有效的。 3個保留的位元組係留下給未來可能的增加所用。 S AT-ASB對係在保留的欄位之後,此係為具有8個項 目的陣列,每個項目係由SAT與ASB區塊位址所組成。 S ATN是第N個S AT區塊的號碼並且ASBN是相關聯 該SATNi ASB的號碼。若SAT或ASB不存在時,則此 欄位之值應該等於0。 新的TBL項目應該在每次SAT區塊被重新配置或是 新的ASB被關聯到SAT區塊時加到CB。 MAP(WMAP,SMAP 與 RMAP) 該等CBs係包含各種MAP項目。有三種不同類型的 MAP項目,每個MAP項目係相當於一種不同類型的寫入 動作;WMAP-相當於一檔案資料寫入或是刪除的動作、 SMAP-相當於一系統資料寫入並且RMAP-相當於一區段重 新配置的動作。
所有的MAP項目之資訊欄位都有相同的格式。其係 包含一界定一組連續的區塊之抹除狀態的位元對映。256 個區塊之抹除狀態是由MAP中的32位元組欄位内的256 個位元所定義。該資訊欄位係包含一個指明其所相關聯的 區塊組之範圍欄位。另一個欄位係界定對於該寫入指標在 區塊之間的轉移之目標區塊。該MAP也包含指出在快閃 記憶體中含有廢棄的資料之區塊的位置之欄位;ObsC是用 於COB(或是C0SB)而ObsP則是用於未決定的廢棄區塊。 若廢棄的區塊不存在時,則相對應的欄位被設為〇。該EB 38 1244092 攔位係包含由目前的寫入或是刪除的區段動作所引起的抹 除所在的區塊之位址。若沒有此種區塊時,言亥Εβ搁位被 設為0。此種MAP項目格式係描繪於圖8之中。 _ 當該些寫人指標中之-指標從__區塊移動到另—區 日守’ -個對應的、MAP項目必須被加入,以顯示_個已抹 除的區塊之使用(該位元對映之攔位被更新)並且記錄 之間的連結(該連結攔位被更新)。當一個寫入(或是刪除區 段)動作產生廢棄的(或是刪除的)資料於新的區塊中時,一 個對應的MAP也必須被加入來記錄新的廢棄區塊之位= (〇bSC及/或0bSP欄位被更新)、以指出一個區塊必須被抹 除(該EB攔位被更新)並且以顯示出一個新的已抹除之區塊 正要出現(該位元對映之攔位被更新)。因此,通常MAP的' 至少兩個攔位同時詖寫入’並且此可以單頁的寫入動作來 加以達成。 開_機區堍ΓΒΒ、 開機區塊的功能是提供在不預期的電源從卡移開的事 件中^度的資料安全性’並且同時避免在初始化的程序, 期間範圍廣大的掃描。對於大型的卡而言,bb包含超過 -個的區塊1 BB永遠佔用在”的第一個無缺陷的區 塊。為了貧料安全性’有1 BB的複製係佔用切的下 一個無缺陷的區塊。該卵與其複製在重寫之後必須被放 入同樣的地方。 /、有和控制區塊相同的結構並且包含以下的類 型之項目: 、 39 1244092 •標記 •交錯致能 •損壞的區塊表列 •控制區塊指標表(CBPT) 田新的貝料必須被加到該BB時,一個具有適當的類 土之頟外的項目被加入緊接著上一個有效的項目。該標記 以及BBL的項目就和之前所述的格式相同(當然,在該標 記項目中的標記攔位是不同且特殊的)。該控制區塊指標表
的項目係包含指向CB的所有區塊之指標,並且在該cb 被重寫之後必須立即加以更新。 先前的連結(PL、
該等CB也含有先前的連結(pL)。先前的連結之目 是若系統必須在一個CB重寫的動作之後被初始化時, 提供回復WBL(稍後加以描述)之所有必要的資訊。其係 括收集自所有自從上欠SAT頁寫人動作已經被執行之 所寫入的MAPs之連結攔位。該pL只有在它重寫的動 期間必須被寫入一個新的Cb。 H里.器的SRAI^H哲儲存之資料钴今 各種的資料結構係被儲存在微處理器的SRAM 1 3中, 其係包含以下: 寫入區段表列(WSL) 该寫入區段表列係記錄在上一次SAT寫入之後所寫入 的區段之邏輯位址。其目的是容許對於此種區段有正確的 邏輯至實際的位址轉換。此WSL具有容量為128個長度 40 1244092 為4個位元組之項目,其中每個項目係儲存在一組連續被 寫入的區^又中之第一個區段的邏輯位址以及該組的長度。 5亥些區段組不能夠從一個區塊跳至另一個區塊。該wsl . 緊接在SAT寫入之後是空的。 % 在WSL中的邏輯區段位址之排序剛好相符於它們被寫 〇的順序。在快閃記憶體中的WSL之一份非依電性的複 衣係因此自動地由SAT上次被寫入之際,由該寫入指標(wp) 所界疋之位置開始,在連續的位置處所寫入之實際的區段 之標頭所提供。因此,並不需要明確地製作WSL的複製籲 到快閃記憶體6。若必要時,這些區段可以從一個在包含 SAT上次被寫入之際、該寫入指標(wp)的位置之、控制區塊 攔位令所界定的起始位址、以及來自於後續的MAp項目 之連結榻位來加以掃描。 WSL的搜尋係以相反的順序加以執行,因為對於任何 的邏輯區段只有最後一個項目是有效的。複製較早的項目 可能不具有任何對應的廢棄區段位在快閃記憶體中,因為 區》k的重新配置以及區塊抹除可能已經被執行。若較佳的 馨 話’該控制器係被配置來只是從該WSL移去重複的項目。 . 兩個類似的表列,該重新配置區段表列(RSL)以及系統 區段表列(SSL),也在該微處理器的SRAM 13中被編譯, 以5己錄自從上一次SAT寫入之後被寫入的重新配置後的區 I又以及糸統資料區段(分別被寫入到由Rp與SWp所指向 的位址)之邏輯位址。
一個ASB以及/或是一個S AT區塊在每次WSL、RLS 41 1244092 或是SSL分別滿的時候係被補充WSL、RSL或是SSL的 項目。此向程序被稱作是WSL、RSL或是SSL的釋出。若 必要的話,此種釋出可能引起ASB釋出。ASB的釋出係發-生在一個ASB滿的時候。當一個ASB滿的時候,該個別 · 的SAT區塊係被重寫並且該ASB被抹除。有關在所有的 ASBs中被寫入的頁之資訊都應該被儲存在RAM中,以避 免頻繁的ASB掃描。一個針對此目的之ASB表列(ASBL) 係被儲存於SRAM 13中。 該ASBL是一個所有目前與SAT區塊連結之ASB區 塊的表列,在該ASBL中對於每個ASB都有一個項目。圖 9係說明在該ASBL中的一個項目之格式,其中: LWP =在此ASB區塊中上一次被寫入的頁之號碼。 ,NVP =在ASB區塊中有效的頁之數目減法1。 ASB頁0...ASB頁n=—個陣列,索引是ASB頁號碼, 值是相對應的SAT頁號碼。 N=每區塊的頁數。 寫入區塊表列(WBL) 此寫入區塊表列係補足該寫入區段表列,並且是產生 於微處理器的SRAM 13之中以界定在該WSL中的區段所 位於其中的區塊。該WBL緊接在WSL的釋出之後是空的。 該WSL與WBL是在記憶體系統的初始化期間藉由一 個掃描的過程來重新產生。在SRAM中以此種方式加以產 生的表列將會確實相符在電源上次被移開之前的表列。 兩個類似於WBL的表列,稱之為重新配置區塊表列 42 1244092 (RBL)與系統區塊表列(SBL),也被編譯並且被儲存在sram 13之中,這些表列係分別互補於該RSL與ssl。該 與SBL係界定分別在該RSL與SSL巾的區段實際位於其 中的區塊,並且具有與WBL類似的格式。該等rsl、RBL、 SSL與SBL也可以在記憶體系統的初始化期間藉由一個掃 描的過程來重新產生。 目前廢棄的區地.TCOB) 只有一個區塊被允許存在來包含由該寫入指標(wp)所 寫入之廢棄的或是刪除的區段資料。此係稱之為目前廢棄 的區塊(COB)。當廢棄的或是刪除的區段資料被產生於另 一個區塊時,一個抹除的動作必須立刻被執行在由該C〇B 所界定的區塊之上。該C0B之目前的區塊位址以及在此區 塊中變成廢棄的或是被刪除的區段之表列係被儲存於該微 處理器的RAM 1 3成為一種以下稱作為c〇B結構的資料結 構。該COB結構是在初始化的期間,藉由從最近的MAp 項目中複製一個含有廢棄的區塊位址之攔位、並且接著在 重建的WSL與WBL已經被分析之後加上廢棄的區段位址 並且從此區塊讀取刪除的區段位址來加以建立的。該c〇B 結構在每次一個新的刪除區段動作被執行或是一個新的廢 棄區段被產生時都被更新’並且每次廢棄的資料被產生在 一個新的區塊時,該區塊位址係被複製到該CB中之目前 的MAP項目内。 也容許存在一個内含由該SWP所寫入之廢棄的或是刪 除的區段資料之區塊’其稱作是目前廢棄的系統區塊 43 1244092 (COSB)。此c〇SB結構也是以類似於⑶b、结構的方式被 儲存於該SRAM 13。該等⑶MC〇SB係各自具有圖1〇 :所不的格式’亦即一個4位元組的區塊號碼欄位28(此· 丁為COB或疋C0SB的區塊位址)以及一個位元組之廢· 棄勺或疋刪除的區段遮罩3〇,其係為在對應於在此區塊内 部的廢棄的或是刪除的區段之位置上含有1的位元對映。 •子方、個區塊包括256頁而言,此遮罩30需要32個位元 的區塊裊列mRR) · 此下一個已抹除區塊表列被產生在該微處理器的 Μ 13中,以便於當在區塊間遞增該wp、$ wp與Rp 時,提供下一個可用之已抹除的區塊之快速識別。可用之 已抹除的區塊係以它們的實際位址之遞增順序來被使用。 此ΝΕΒ含有Μ個已抹除的區塊位址,(例如μ = 8)。此
表列是一個下一個可用之已抹除的區塊之表列,其係起始 在區塊位址是最接近於、並且高於上一次被配置來使用之 已抹除的區塊之位址的已抹除的區塊。因此,雖然在此ΝΕβ φ 中的項目個數為有限的(例如限於8個),但是neb本身可 X 以包含有關於下八個已抹除的區塊之外的資訊。 此下個已抹除的區塊表列是從由該些寫入指標所存 取的快閃記憶體位址空間之區域的適當MAP項目(儲存在 CB中)所導出的。此將會保持在sram中作為有效的NEB, 直到所有由它所界定之已抹除的區塊都被使用為止,在那 時它必須從適當的MAP項目重新加以產生。該CB含有足 44 1244092 夠的MAP項目來界定在快閃記憶體中的每個區塊之抹除 狀態。該NEB與對應的MAP項目兩者都在記憶體系統的 動作期間因為區塊的加入與移除來加以更新。當一個已抹 除的區塊被配置給區段或是控制資料儲存時,一個項目係· · 從該NEB移去。當一個已抹除的區塊係被產生在一個位於 _ 由該NEB中的其它區塊所擴展的範圍内之區塊位址處時, 一個項目係被加入該NEB(除非該NEB已經滿了)。 單一 NEB項目係界定一組在連續的位址處之已抹除的 區塊,並且界定該區塊起始位址(在該連續的區塊組中之第籲 一個區塊位址)以及該組長度(在該組中連續的區塊之數 目)°
IgL 指標(Tm P) 該等TBL指標係指明在該CB中的TBL項目之位置。 它們也是儲存在該微處理器的SRAM中,並且被用來提供 快速的區段位址轉換。該TBLp是在控制區塊的初始掃描 /月間被產生’並且接著在每次一個新的Tbl項目被產生在 該CB中時加以更新。 馨 如4所述’此ASBL被產生於SRAM 13中並且支援快 · 速的位址轉換。它指出所有的ASB區塊與相關於該些Asb 區塊之SAT區塊的實際位址。其係在初始化期間被產生, 亚且必須在每次_個SAT頁寫入動作被執行時加以更新。 :二ASBL項目是以先前的存取順序來加以表列,亦即, 田個員目被存取時,該項目被提昇至該表列的頂端。當 45 1244092 —個 ASB 的頂端。 項目係被 /個目耵沒有相關的ASB之SAT區塊被存取時, 係被配置並且一個針對其項目係被加到該ASBL· 代表最近最不常被存取的ASB之該ASBL的底端 消去。 記憶體 一個快取記憶體係被維持在該SRAM 13
Jrn 丨用於 、’的SAT項目’其結合有最近從快閃記憶體中的s 存取的項目。 在此兄憶體系統10之中整體的快閃記憶體容量係被配 置給資料與控制結構如下: 1.邏輯區段 容量被配置給在該卡所宣告的邏輯容量之内的每個邏 輯位址一個有效的資料區段之儲存。此所宣告的容量是可 用的實際容量減去以下的項目2至8,並且是在卡的製造 期間由格式化器來加以界定。 2 ·開機區塊 至少一個區塊係被配置給該開機區塊。最好是,另外 , 一個區塊被配置用以儲存該開機區塊之另一備份。 3.控制區塊 一些區塊係被配置給控制區塊項目(標記、BBl、TBL 與MAP)之儲存。完全緊密的控制區塊在大多數的情形中 係佔用少於一個區塊。額外的區塊係被配置給該控制區塊 用於在緊密/重寫的動作之間所寫入的項目。 46 1244092 4 ·區段位址表 此係為被配置給SAT區塊的儲存之容量。其係與此卡 的邏輯容量成比例。 · 5·額外的SAT區塊 . ’ 固定數目的區塊係被配置給將被相關於所定義的SAT , 區塊之ASBs。 6·廢棄的區段 一個區塊係被配置給該COB。另一個區塊係被配置給 4 COSB並且又一個區塊係被配置給該poB(對於容許籲 C Ο S B與p 〇 b之存在的實施例而言)。因此,被容許之廢棄 的貝料區段之最大個數是由在一個區塊中的頁數所設定:。 7 ·已抹除的緩衝器 此係為了,系統的正確動作而必須配置之已抹除的區塊 之^衝杰。至少一個已抹除的區塊必須被配置給資料區段 1重新配置’並且一個已抹除的區塊必須被配置給可能同 日丁务生之控制結構的重新配置。 8·備用的區塊 備用的區塊可以被配置用來在操作壽命期間的失效情 維持所宣告的邏輯容量。
給廢棄的區段, 量。備用的區塊數目係在卡的 個說明對於8MB卡、64MB卡與5 12MB ’配置給以上項目1至8的容量之容量 ;圖16中(此係顯示只有一個區塊被配置 亦即配置給該COB,但將可認知的是在記 47 1244092 憶體系統中設置有COSB及/或POB的情形中,更多的區 塊將會被配置給廢棄的區段)。 SAT寫入的動作 · 該 SAT 是當該等 WSL、WBL、SSL、SBL、RSL 或是· RBL滿的時候被重寫,並且在大多數的情形中,該重寫係 以一頁的大小來達成,換言之,只有内含修改後的區段位 址之SAT頁才被重寫。然而,在少數的情形中,整個SAT 區塊的重寫是必要的(指名為“SAT區塊寫入”)。當一個SAT 重寫是必要的時候,一個額外的SAT區塊(ASB)係被產生, 只有所要的頁才被寫入其中(指名為“SAT頁寫入”)。可能 只有一個ASB專用於某一特定的SAT區塊,並且整體來 說,可能存在有限個數N的A S B s。N的值將會被選為介 於寫入效能與容量架空(架空)之間適當的折衷:(例如, N = 8) 〇 每個ASB都存在直到一個“SAT區塊寫入”被進行在其 相關聯的SAT區塊為止。當在一個其中的ASB是滿的或 是ASB將要被解除配置之SAT區塊上需要一個SAT寫入 頁時,一個SAT區塊寫入係被進行。當需要一個SAT頁 寫入並且相對應的SAT區塊並沒有相關聯的ASB並且所 有N個ASBs都已經被配置時,在一個新的ASB配置之前, 現有的 ASBs中的一個必須被解除配置。將被解除配置的 ASB係選擇最長時間未被寫入過的一個ASB。應注意的是, 一個ASB的解除配置是相當花時間的過程,因為它需要一 個SAT區塊的寫入以及廢棄的SAT區塊與ASB兩者的抹 48 1244092 除。 义錯的晶片存 、上述的動作與資料結構本質上係容許交錯的寫入動作-被進仃在數個快閃記憶體晶片$之上並且此可顯著地增進· _ 攻此。a玄控制器晶片8可因此控制被結合在記憶體系統中 _ 複數個陕閃5己憶體晶片5,例如具有四個快閃記憶體晶 片5之陣列。該四個快閃記憶體晶片的記憶體空間被該控 制器組織成一組虛擬的區塊,每虛擬的區塊個係由四個區 塊4所組成,分別來自於該四個晶片γ該等晶片係永久連籲 μ在一起)之每個晶片的一個區塊。在每個虛擬的區塊中的 四姻區塊係為具有在晶片中相同的區塊位址之區塊。此種 組織容許構成一個虛擬的區塊之連結的區塊被當作是一個 大土的區塊並且,因此,容許使用完全相同於如先前針對 單一快閃記憶體系統10所述之演算法與資料結構,利用 虛擬的區塊而非個別之可抹除的區段的區塊。頁寫入動作 係同日守在所有乂錯的晶片之間加以進行。該寫入指標(wp) 與该RP與SWP係各自順序地移動在頁的位址之間,並且 · 被供應到一個設置在該控制器8中的硬體晶片致能解碼器 、 的位址位元的順序係確保連結的區塊之頁以圖π中所描 繪的順序,亦即,每個指標WP、sWP、RP在從一 ΡΑ移 動到另一 ΡΑ時係從一晶片移動到另一晶片的順序來加以 依序地存取。此係藉由虛擬位址的使用而加以達成。一個 唯一的虛擬位址(VA)係被配置給在所有的晶片中之每個實 際的區段(例如,在上述的NAND為主的記憶體系統中, 49 1244092 一個VA係被配置給每個頁)。該虛擬位址被配置成使va 增加1以移動该寫入指標從一個晶片到下一個晶片,該些 虛擬位址係以圖11中所示的反覆之模式從晶片到晶片地 經由每個虛擬的區塊之連結的區塊而遞增。 該控制器實際上將記憶體晶片的陣列當作為單一行列 的虛擬區塊。一個區段的虛擬位址係採用圖1 2中所示的 格式。此係由一個包括一“晶片南’’的部分與該區段之1 3個 位元的區塊位址之虛擬區塊部分、以及一個包括6個位元 的頁位址與一“晶片低,,的部分之虛擬頁部分所組成。該晶 片咼的部分是該(實際位址的-請見圖5)5位元晶片號碼的 Chigh個位元,並且晶片低的部分是該5位元晶片號碼的cl()W 個位元,其中:
Chigh =在晶片陣列中的晶片行數;.並且
Cl〇W =在晶片陣列中的晶片列數。 為了從虛擬位址(VA)來獲得實際位址(pa),該控制器 只疋將V A重組以便於將該晶片低的部分移回到晶片高與 區塊位址部分之間,如圖13中所示。因此,將認知的是 在單一晶片記憶體系統中,對於任何的區段而言,其VA 係等於PA。 為了簡化起見,只有二進位的倍數之一些晶片可以被 父錯,例如,2或是4。在虛擬區塊上之抹除的動作係被 進行為交錯的晶片之所有連結的區塊之同時的抹除。若在 晶片中的一個區塊是損壞的區塊時,則該控制器將其它晶 片中所有具有等同之區塊位址的區塊視為損壞的區塊。 50 1244092 交錯是依據當快閃記憶體被格式化時、由記憶體系統 的製造者所設定之致能或是禁能的狀態之開機區塊中的控 制位元組之狀態,來加以致能或是禁能。 在區塊位址或是PAs是先前所使用於上述的單一晶片 NAND類㉟之快閃記憶冑的實施例之情形下,吾人現在係 ^別利用虛擬的區塊位址與VAs。在接收到一個主資料區 奴寫入命令之際,該控制器係藉由配置該相關的寫入指標 正指向的PA來轉換一個進入的LA至pA。該控制器係控 制該些寫入指標在每個PAs之間的每個移動,以便於實際 上依序地移動在已抹除的虛擬區塊(該些已抹除的虛擬區塊 係在NEB中被指明)之區段的虛擬位址之間。 圖14係描繪涉及一個多重區段寫入到交錯的晶片之各 種動作之時序。圖14現將會參考圖15與圖19來加以描 述。圖15是一個詳細描繪記憶體系統的控制器晶片8之 方塊圖。(圖2的控制器晶片8可具有圖15中所示的形式, 亚且圖2與圖15中相同的部件都被標號相同的參考圖號)。 圖1 9疋一個記憶體系統丨〇的概要圖,該記憶體系統⑺ 係包括該控制器晶片8ι以及四個快閃記憶體晶片丨、^、 3 4,每個晶片各具有其本身的讀取/寫入緩衝器7丨!、72】、 73】、741 〇 圖丨5係顯示該控制器晶片81,其具有··一個輸入/輸 出埠Ο/P,例如一 PC卡ATA埠、小型快閃記憶體或是⑴丑 埠,用於連接至主電腦;一個連接至〇/p的主介面與暫存 器80,並且一個雙埠的SRAM區段緩衝器9係連接至該主 51 1244092 ::面與暫存11 8° ;—個資料路徑控制器82、該ECC產生 、松_ »。 1 2、以及一個快閃記憶體介面(fm〗)84,全部 均連接到該區段緩彳齡哭、 、釘9,該FMI也被連接到一個快閃記 憶體璋86。該控制器,81也包含微處理器以 處理器的型式);一個卢 j 個處理器SRAM 13 ; —個處理器遮罩 R〇M 88 ;以及—個用於外部程式RAM或RQM之蟑92。 個遥配的除錯埠94也可以設置供RISC處理器i i用。 資料與命令係在該㈣$ 81的各個組件之間透過一條微 處理杰匯流排9 1傳遞(除了區段緩衝器9之外)。 如圖14中所示,# _個多重區段寫入命令(在此例子 :為-個包括主資料區段!、2、3與4之4區段的寫入)在 θ ΑΤΑ 4 Ο/p之處收到時’區段1係被寫入該雙蜂區段 緩衝器9的緩衛器i之中。㈣下區段緩衝器9的緩衝哭 2可供控制器資料管理的動作使用。當區段2被收到時, 它被直接寫入緩衝器2,並且同時區段1係從緩衝器i移 到快閃記憶體埠86,從該快閃記憶體埠86,區段i被寫 入該四個快閃記憶體晶片中之一晶片(晶片〇的讀取/寫入 緩衝器711。然後,區段2係從緩衝器2被傳送到該快閃 記憶體埠86,並且被傳送到其它的四個快閃記憶體晶片中 之一晶片(晶片2】)的讀取/寫入緩衝器72】。當此動作正發 生%,區段3被直接被接收到區段緩衝器9的緩衝器1之 中。區段3被寫入晶片3的緩衝器731,並且區段4被接 收到區段緩衝器9的緩衝器2之中,並且接著被寫入晶片 4的緩衝器741之中。區段i、2、3與4接著分別被寫入 52 1244092 在曰曰片I、2、3,與41的記憶體陣列6”、621、631、641 中之相關被配置的實際區段 雖然圖14係顯示每個 又‘”’入動作係在前-個動作之後不久就開始,實際 各方面將可認知的是,該四個區#卜2、3、4係 大致㈣被寫入該些快閃記憶體晶片“4,。此外,可認 ::是’主資料區段1 i 4被寫入的區段之實際位址係由 先爾述之判定相關的寫入指標之位置的法則(亦即,虛 擬位址的順序使用)來加以決定的。 將可認知的是,具有超過四個區段寫入之多重區段寫 广的命令係從該主處理器傳送到該控制器,該控制器:將 该多重區段寫入區分成為四個區段的群組(對於目前使用四 個記憶體晶片之實施例而言)’每個此種群組係以—種參考 圖14之如上所述 <交錯的寫入順序,以被寫入快閃二憶 體。 位址韓拖 在參考讀取與寫入的動作之下,對於LA至的 址轉換之過程現將更詳細地加以描述。 、 位址轉換是一種執行在區段的邏輯位址上、 得回以下 的三種值中的一種之動作。 •有效的區段實際位址 •有關邏輯區段已經被刪除(或是從未被寫入)的資气 •有關一種錯誤情形已經發生的資訊 圖1 7是描繪該位址轉換過程的流程圖。此過程係針對 每次的讀取動作而執行的。當一個欲被轉換的 、 <弭座段位 53 1244092
:=由該控制器8,從主處理器接收時,一個演算法係被 &订 〇)以確認將被轉換的區段之邏輯位址在其SAT =目士次被寫入之後、已經被寫入或是刪除的可能性。區 段先财未冒被寫人或是刪除之推斷必須是_%的確定;區 ,可,已經先前被寫人或是刪除之推斷應該具有很高的可 能性是正確的。此之實施係藉由該處理器保持有限數目之 成對的代表連續的序列之區段的開始與結束位址之值,並 且確認將被轉換的位址是否位於這些範圍中的任一範圍 内。這些範圍最終可能會變成非連續的,而導致在區段可 能已經先前被寫入或是刪除之推斷上有某些不確定性。若 該LA位於該些範圍中的任一範圍内時則吾人以“是,,來 回答“是否可能重複?,,(圖17的方塊42)。若該LA並不位於 該些範圍t時,則吾人回答“否”並且前往該SAT或是sat 快取記憶體以得到VA(方塊44)。從此處’吾人係判定該 只際區段是損壞的(46)或是刪除的(5〇)。若該LA對應到一 個未寫入的區段時,此在方塊5〇之處產生VA=刪除的 (5 8)。若吾人在方塊42之處回答“是”,則吾人搜尋(52)該 WSL或是SSL(依據該LA對應到檔案或是系統資料而定)。 若在方塊54之處找到LA(“是”)時,則該VA係被算出(56) 並且在貫際區段的標頭丨b中所儲存的邏輯位址係由該控 制器微處理器所讀取(在58中)。若LA=LA1 (方塊60),則 該計算出的VA是正確的。若該la在54之處未找到時, 則吾人在RSL中搜尋LA(62),並且若在RSL中未找到時, 則吾人前往該SAT或是SAT快取記憶體並且從該處取得 54 1244092 VA(44)。若在SAT或是SAT快取記憶體中找到的VA並 非損壞或是刪除的(46、50),則吾人從該VA取得LA 1(5 8) 並且如前述一般地檢查是否L A = L A1。 在圖17的方塊56之處所執行的過程步驟(計算VA)係 在圖2 0的流程圖中詳細地描繪。 圖20係描繪對於一種只使用兩個寫入指標,WP與RP 之記憶體系統、為了針對在WSL或是RSL中所找到的LA 來獲得VA所進行的步驟。將可認知的是,此流程圖將可 延伸至亦給予在SSL中所找到的LA之VA,其中該記憶 體系統也結合一個系統寫入指標(SWP)。此過程開始於方 塊 100,其中吾人係設定 NunFromEnd(NFE),其中 NumFromEnd=從WSL(或是RSL)的結尾開始、向上到給定 的區段(在WSL或是RSL中所找到的)為止所寫入的區段 數目。若該LA在WSL中被找到時,吾人係設定P = WP, 並且若LA在RSL中被找到時,吾人係設定P = RP ;接著 吾人係設定PG=P.Page,其中P.Page是P的值所指的寫入 指標之頁(見方塊102)。若PG>NFE(104)(亦即,LA是上一 次所寫入的區塊),則VA=P-NFE-1,亦即離相關的寫入指 標之位置有NFE-1個區段。若PG<NFE,則吾人判斷是否 P = = 0(106),亦即是否相對應上一個WBL/RBL項目之區塊 被完全寫入。若其成立(亦即,P==〇),則吾人設定 NotLast=0,並且若其不成立,則吾人設定NotLast = 1。接 著吾人係計算(108)介於上一個區塊與給定的區段所位在的 區塊之間的區塊數目(Nblock),其係利用以下的演算法: 55 1244092 0與給定的區段 之間
Nsect是介於上一個被寫入的區塊頁 的區段數目;
Nsect = NumFromEnd - PG »
Nblock = NSect/blockSize + NotLast 吾人接著計算(110)在一個區塊中之頁數(PageNum), 其中 PageNum = BlockSize - Nsect%BlockSize。若 LA 在該 ^^1^中,則吾人(112)從該^^^1^獲得區塊位址@1^(1心), 或者是若LA在該RSL中,則吾人從該RBL獲得(114)區 塊位址(BLAddr),其中區塊位址是内含該給定的區段之區 塊的虛擬位址,其係利用以下: 若 LA 是在 WSL 中,則 BlAddr = RBL[LBL — NBlock], 其中LBL是在WBL中上一個項目之索引; 若 LA 是在 RSL 中,貝ij BlAddr = RBL[LRBL + NBlock], 其中LRBL是在RBL中上一個項目之索引。 接著,吾人係利用:VA = Page0 + PageNum來計算(1 1 6) 该VA ’其中page〇 =内含該給定的區段之區塊中的頁〇 之虛擬位址。 圖21是用來從SAT或是SAT快取記憶體來取得VA 之過程的流程圖(圖17中的方塊44)。一般來說,圖21是 不需說明即可明白的,然而有關特定標號的方塊之進一步 的解說係如下所給予: 方塊120(LA是否在SAT快取記憶體中):若LA > = FirstCacheEntry.LA 且 LA < FirstCacheEntry.LA +
CacheSize ’則LA在該SAT快取記憶體中,其中 56 1244092
FirstCacheEntry.LA =相當於在快取記憶體中的第一個 SAT項目之LA,並且(整體的)CacheSize =在該SAT快取 記憶體中的項目數目; ~ 方塊122(計算在SAT中的區塊與頁):吾人係計算對 · 於該給定的LA之SAT區塊號碼之SBNum、以及對於該給 定的LA之SAT頁號碼之Spage ; 方塊124(計算TBL項目的號碼):TBLNum是所要的 TBL項目之號碼,其中TBLNum = SBNum/8 ;並且 方塊126(儲存部分的SAT頁在快取記憶體中):若可 能的話,從上一個被存取的項目開始的32個項目係被暫 存。若沒有足夠的項目時’則一組以在一頁中的最後一個 項目作為結尾、並且包含此上一個區段存取之3 2個項目 係被暫存。 圖18是描繪圖17的方塊58(從VA取得LA1)之過程 步驟的流程圖。應注意的是,在該頁標頭中所儲存的標頭 >數(HP)將會疋遠邏輯位址(LA> !之後的值。這是因為 删除的區段是藉由將其標頭中所有的位元設為q而被標 示。此LA=0不能夠被儲存於一個標頭之中。因此,吾人 係設定LAI = HP _ 1。 讀取的動作_ 圖22是騎從—個實際的區段讀取—個主資料區段所 進行的步驟順序之为@ m LAγμ w θ 〜控制器開始是藉由轉換該 LA(接收自該主處理器) 是蕤 )成為一個VA(方塊130)。此之達成 疋错由執仃在圖17之已細 、、、二的流程圖中所描繪的過程。 57 1244092 一旦該LA已經被轉換成VA時,則具有位址VA的實際區 段之内容係被讀入該控制器的緩衝器9之中。接著,該控 制器檢查(方塊132)該區段(亦即該區段的内容)是否為刪除 或是損壞的。若其為刪除或是損壞的,則該控制器設定該 主處理器的貧料緩衝器之所有的位元組為〇xFF(方塊 1 34)。若该區^又並非為删除的區段時(方塊i 3 6),則該控制 态傳回錯誤狀態至該主處理器(方塊丨38)。若該區段為删 除的區段時,則該控制器傳回有效的狀態至該主處理器(方 塊137)。若在方塊132處,該控制器判定該區段並非為刪 除或是損壞的,則該控制器直接到方塊丨3 7,亦即傳回有 效的狀態至該主處理器。 篇入的動作 圖23是描繪將一個主資料區段寫入到一個實際的區段 所進行的步驟順序之流程圖。圖23只處理對於主檀案資 料的寫入動作,且因而藉由寫入指標(wp)寫入,但是將可 為知的疋,圖23的動作將可適當地延伸來處理個別的系 統貢料之寫入,其中該記憶體系統對於系統資料係利用一 個別的寫入指標(亦即,該swp)。該控制器開始是藉由轉 換該LA(接收自該主處理器)成為一個VA(方塊15〇)。此之 達成是藉由執行在圖17之已經描述的流程圖中所描繪的 過程。若(1 52)該區段為損壞的,則該控制器傳回錯誤的狀 態(154)至該主處理器。若該區段非為損壞的,則檢查該區 段是否為刪除的(156),並且若它是刪除的,則檢查Wp是 有效的或是無效的(158)。當一整個區塊剛剛被寫入並且wp 58 1244092 必須被移到一個抹除的區塊時,wp是無效的(wp==〇)。若 wp不疋有效的,吾人係設定wp至一個新的(有效的)實際 區段位址(160)。當WP是有效的,則吾人將la加到該 WSL(162)並且進行任何必要的WSL或是rsl釋出、及/或 CB與CBPT的壓縮。然後,吾人係更新(164)來自於評估 重複的可能性之演算法(圖17的方塊4〇)的範圍,並且將 來自於該控制器緩衝器的區段寫入(166)該wp的位址,並 且傳回一個有效的狀態值至該主處理器(168)。若在方塊156 處,吾人發現到該區段並非為刪除的,則吾人檢查(丨57)該 VA是否在該COB中。(若Va與VB相符時,其中VB是 儲存在SRAM 1 3中的COB結構内之虛擬區塊號碼攔位(此 係為該虛擬的區塊位址,見圖1 2),則該VA在該COB冲。) 若該VA在該„COB中’吾人係在儲存在該控制器的sraM 1 3 中的COB結構内,將VA記錄為廢棄的(159)(此之完成是 藉由在SRAM 13中之COB結構的BitMask欄位内、將一 個對應的位元設定為1 ),並且接著前進到方塊丨5 8(係為wp 有效的)。若該VA不在該COB中,吾人變更該c〇B(161) 並且接著前進到方塊159(將VA標示為廢棄的)。 圖24是圖23的方塊161(變更該COB)處所施行的步 驟之流程圖。圖24 —般而言是不需說明即可明白的,但 應結合以下的註解來閱讀之·· 方塊200(VA.B卜VB) ·· VA.B1是VA的虛擬區塊攔位, 並且VB係如上所述的; 方塊202(COB是否為無效的):若VB = 0,貝ij COB是 59 1244092 無效的。若VB等於zero,此表示目前沒有廢棄的資料; 方塊 203、204(計算 MaxRel) : MaxRel 是將從 COB 被 重新配置的區段之最大數目。MaxRel = P.Page - 1,其中 P.Page是WP或是RP的頁欄位(位址); 方塊205、206(加上虛擬項目至WSL) ··若將被重新配 置的區塊尚未完全被寫入時,相對應的“虛擬”區段LAs必 須被加到上一個WSL(RSL)項目; 方塊207(重新配置區段):見圖25 ; 方塊208(寫入WMAP):寫入WMAP到該CB,其中 EB + VB以及在該BitMap中對應的位元係被設定為1。若 必要時,進行CB之重寫; 方塊209(更新表列):找到WRBArray項目等於VB, 並且將它與WRB Array中對於相同之VB的任何其它的項 目標示為無效的。該WRBArray事實上是該WBL與WSL 表列,該些表列實際上被儲存在相同的記憶體區域中,其 中WBL的項目是在開始處往上數,而RBL的項目則在結 尾處往下數。當該兩個表列在中央交會時,該WRBArray 則為滿的。 方塊210(組織COB):更新在SRAM中的COB結構, VB欄位係被設定為VA.B1,對應於VA.Page的Obs與Del 的遮罩位元係被設定為1,其它所有的位元係被設定為0。 圖25係描繪圖24的方塊207(重新配置區段)處所施行 的步驟之流程圖。此應結合以下的註解來閱讀之:
方塊220、222與230 :執行一個迴圈以通過在SRAM 60 1244092 中的COB結構之Obs與Del遮罩欄位; 方塊223(區段是否為有效的?):若ODMask[i] = 0,則 區段為有效的;在COB的Obs與Del遮罩中的0值係指 此頁包含一個有效的區段; 方塊224與225 :若一個由RP所指向的區塊已經完全 被寫入時,則RP=〇 ; 方塊226(儲存來自於頁標頭的LA):從頁標頭取得的 L A暫時被儲存以被用於加上項目至RSL ; 方塊225(RP = 0):加上項目至RSL。若必要時,執行 WSL/RSL的釋出。 圖26係描繪為了在圖23中的方塊160之處,設定該 寫入指標(WP)所施行的步驟。一個類似的過程係被用來在 圖25中的方塊227之處設定RP。圖26應結合以下的註解 來閱讀之: 方塊 240(WRArray 是否未滿的):若 Last<LastRE-l, 則WRAiray是未滿的,其中Last(整體的)是最後一個WSL 項目的索引,並且LastRE是最後一個RSL項目的索引; 方塊 242(WRBArray 是否未滿的):若 LBL<LRBL-1, 則WRBArray是未滿的,其中LBL與LRBL係如先前關於 圖20所定義的; 方塊244(表列之釋出):若必要時,執行SAT頁寫入 動作、SAT區塊寫入與CB重寫; 方塊246(填入NEB):從儲存在CB中的MAPs選出下 N個(N=NEBSize)已抹除的區塊; 61 1244092 方塊248(寫入WMAP):寫入WMAP,其中連結欄位 被設定為ErBlock,並且在BltMap欄位中相對應的位元被 設定為0。若必要時,執行CB重寫。 圖27是刪除區段動作中所執行的過程步驟之流程圖。 此在最初的步驟上與寫入動作(見圖23)相類似:該la被 轉換成(250)VA。若(252)該區段是刪除的,則吾人傳回錯 誤的狀態給主處理器(254)。若該區段並非為刪除的,則吾 人檢查(256)該VA是否在該C〇B中,並且若其不在(261) 該COB中,則吾人變更該c〇B(261)(相同於圖24)。若va 在該COB中,則吾人將該c〇B中的VA標示為刪除的 (269),接著吾人將該雙埠SRAM 9(在該控制器中)的緩衝 器之一填入0(271),並且接著將此來自該緩衝器之“全部為 0”的頁寫入將被刪除的區段(藉以删除該區段)。吾人接著 傳回有效的狀悲(275)(確認區段已經被刪除)給該主處理 器〇 初始化 初始化的程序與電源失去之回復的程序現將加以描 述。為了簡化起見’這些係參考一種單一寫入指標系統(亦 即只有WP)來加以說明,但將可認知的是該些程序將輕易 地延伸而適用於該多重寫入指標系統(wp、sWp、Rp)。 所有的資料與控制結構都特別地加以建構,以避免在 初始化期間/又有顯著特點的掃描。幾乎所有的控制結構(除 了 WSL與WBL以外)通常是從儲存在該CB中相對應的= 訊所導出的。在卡的初始化期間’執行以下的動作是必要 62 1244092 的。 1 ·從開機區塊讀取最後一個控制區塊指標表的項目, 並且因而指明該等CB區塊的位置。 2.藉由掃描CB來重建該TBLP。 3·依序地掃描在該控制區塊中的最後一個tbl項目内 所界定之寫入指標位置之後的頁標頭/ECC攔位,以指明自 從上-次SAT重寫之後所寫人的區段,並且來建構該祖 與 WBL〇 4·從該CB中對應的MAp項目來建構該Neb。 5·建構該COB與ASBL。 6.檢查在最後-個MAp的㈣攔位中所參照的區塊是 否真的已抹除。若否,則完成抹除的動作。 WSL與WBL的读才跨 在卡的初始化期間,將被儲存的寫入指標(w — 個值繼CB中最近的TBL項目來加以讀取, 從該位置開始在連續的頁之處的頁標頭之掃描, : 慨與狐於處理器的SRAM之中。當遇到 : 的位置時,則已經到達自從上 未除 區段序列之結尾。 T重寫之後所寫入的 此種區段的掃描必須考量到該寫入 個區塊的結尾跳到—個不彳 )可此從一 該(WP)所造成之所有區塊的轉變都被記錄在該由 MAP項目之連結攔位内。 中的 63 1244092 這些結構可以藉由從該CB複製相對應的項目來加以 重建。此外,為了建構該⑽結構(以指明在其中的刪除 的區段),掃描一個目前含有這些區段的區塊是必要的,該 區塊的位址是由該CB中最後一個MAp項目之⑽搁位内/ 所界定的。為了指明在此區塊中廢棄的區段,掃描ML 與WBL也是必要的。為了記錄ASBL頁,吾人必須從該皿 來指明ASB位址,並且接著掃描它們的標頭/ecc搁位。 重源失去之回稽
對於記憶體系統而言之一要件是不論在任何情況下電 源被移去之後,當電源回復時,其應能夠正f地運作,並 且C 4 /又有所儲存的資料被遺失。然而,在電源開啟之後, 、、'不必要立刻回復記憶體系統之整個正常的狀態,只要讓 其能夠正常地運作即可。正常的狀態可以稍後在每當任何 的不正常狀態被檢測出之一個例外時才予.以回復。 ^若供應電壓在任何以下的動作正在執行時移去時,記 憶體系統之正常狀態可能會降級。
1 ·來自主處理器之資料區段的寫入 2·正被重新配置之資料區段的寫入 3·寫入一個項目至一個控制資料區塊(CB或是BB) 4·寫入一頁至一個控制資料區塊(SAT或是CB) 5 ·任何具有廢棄的區段或是控制資料的區塊之抹除。 區·段杜間之電源失去 、,、〗中被寫入的資料可能會遺失,但是主處理器 並未被通知該寫入命令已經完成並且可以再次寫入該區 64 1244092 &。個未完全寫入的區段可能會因為該不完全的寫入動 作而存在於快閃記憶體中。此係在初始化的期間,當該寫 入指標的值係藉由讀取在該CB中最後一個連結參數所界 定之區塊内的頁標頭來加以建立之際被偵測到。該最後一 個被檢測的區段應完整地讀取,以檢查其Ecc,並且下一 頁應被讀取以檢查其是否完整地被抹除。若是偵測到一個 不完全寫入的區段時,則所有其它的區段都應該被重新配 置到一個位在下一個已抹除的區塊之開始處之新的寫入指 標位置處,然後該區塊應被抹除。 期間之雷汲生本 如上述地,此係在初始化期間,於建立該寫入指標的 過程中被偵測到。重新配置區段並且抹除該區塊之相同的 動作應該被採用。此外,—個不完全的重新配置動作應藉 由比較在該寫入指標的上一個邏輯區段位址與在該中曰 由〇bs參數來界定之區塊内的廢棄的區段之區段位址來加 以積測。任何未決定的區段重新配置都應該在初始化的期 間内加以完成。 或是 BB)期問 之電源失去
此種狀況可以在正常的初始化期間,當CB與BB中 的項目被讀取並且其ECCs被檢查之際加以偵測。若其咖 表示出錯誤時,則該項目應該被忽略。啟S CB或BB 目的寫入動作之較早的動作尚未正確地完《,並且該項目 將稍後在此動作於正常的動作期間被重複時被正確地 65 1244092 入。
此種狀況可以在正常的初始化期間,當ASB中的頁被 頃取並且其E C C s被檢查之際加以彳貞測。若其e c c表示出 錯誤時’則該頁應該被忽略。啟始ASB頁的寫入動作之較 早的動作尚未正確地完成,並且該頁將稍後在此動作於正 常的動作期間被重複時被正確地寫入。 在二整個控制資料區塊(SAT或是CRU6 ^入期問夕 寬源失去 此將會產生一個不完整的控制資料區塊存在於快閃記 憶體中,其它的資料結構都不參考到該區塊。此種狀況不 需要在初始化的期間被偵測,並且該區塊可被容許存在成 為一個“遺失的區塊,,。啟始區塊寫入動作之較早的動作尚 未正確地完成,並且該區塊將稍後在此動作於正常的'動作 期間被重複時被正確地寫人。在正常的動作之較後面的階 段處,該遺失的區塊將因為與其MAp狀態的不相符、或 是因為發現在I统+已抹除的區塊數目(見目16巾的容量 圖)上的不相符,而被❹〗出。若必要時,㈣的程序可接 者藉由整體的快閃記憶體掃描來指出並且抹除該區塊。 源失去 此將會產生一 中。此種狀況係在
MAP項目内的ErB 個不完全抹除的區塊存在於快閃記憶體 初始化期間,當在該CB中的最後一個 攔位所參照的區塊之狀態被檢查之際加 1244092 以偵測。若必要時,此區塊的重新抹除可被執行。 皇,..進.一步它的實施例 各種對於上述的實施例之修改在不脫離本發明之範田壽 之下疋可能的。例如,另一種處理抹除的動作之方式是永 运谷ό午兩個C Ο B s (以及兩個C 0 S B s)存在:此之優點將會 是最佳地利用到記憶體的容量。在上述的實施例中,吾人 只容許一個COB,但是當吾人希望作為該c〇B的區塊中 有一個寫入指標時,也容許一個P0B暫時地存在。假設必 須有一個POB之下,此表示總是必須有足夠的已抹除之記 憶體容量來配置給一個P〇B使用。因此,吸引人的是最佳 地利用到此記憶體的容量,因而一種確保此之方式為永遠 容許兩個COBs存在,因此消除了對於p〇B(當必要時,第 二個COB可以當作是一個p〇B)之需求。在此種兩個c〇B 的糸統中,當變#必須產生一個新的C〇B時,吾人係抹除 該兩個C0Bs中較舊的一個(除非該較舊的一個具有一個寫 入指標於其中,在此情形下吾人係抹除較新的一個)。 芩考圖3,以及在該記憶體系統中的每一快閃記憶體 頁内之資料的配置之敘述,吾人亦提出—些其它用以儲存 貝料在一頁之中的方式。圖28係顯示一個典型的528位 兀組NAND或疋AND類型的快閃記憶體頁1之實際的劃 分。該頁係包括一個512位元組的“資料區域” 3〇〇與一個16 位元組的“備用區域,,3〇2。在以上參考目3所述的實施例 中,該控制器8儲存512個位元組的資訊h(例如,一個 主資料區段)於該資料區域3〇〇中,並且儲存該標頭lb以 67 1244092 及ECC lc(以下一起稱之為架空…verhead)資料⑴〇))於該 備用區域302中。麸而 ^ , —丨, …'而’在頁1之中的貧料之其它種配置 是可能的。例如,如圖29中所示,該標頭lb與ECC lc 可以平等地被儲存在該資料區域3〇〇的第一個部分3〇3之 中,並且該育訊la係儲存在由該備用區域3〇2與資料區域 300之其餘部分所組成之部分川4中。 另一種可行性(顯示於圖30中)是寫入該標頭11}與ECC 1C在一個偏離該快閃記憶體頁的起始之位置處,並且寫入 主資料區段(其可以被稱之為“使用者資料”)在該標頭與 ,的兩側之剩餘的空間中,如,該⑼被偏離多少量⑽ 離量s)可由下列任—種函數來加以決^ :⑷頁i的實際位 址(PA);或是(b)被寫入π !之使用者資料(亦即,該主資 ㈣段)的第—個位元組之内的—或多個位元。圖31⑷係 描緣在-個區段寫入的動作之前在該控制器緩衝器似中 的貝料配置,該貢料係被安排成為一個第 用者資料與一個第二部分324的標頭資料。圖3_= 不在寫入動作的完成之後,在一快閃記憶體頁中之資料配 置’其中該偏離量S是由使用者資料的第一個位元組之内 的一或多個位元所決定的(上述的選項⑻該資料被館存 成為一個第一部分326的使用者資料、接著是-個第二部 =28的❹者資料、接著是該標頭㈣咖卜、接著 是第三與最終的部分3 3 0的#用去次.丨+ f刀曰:Μ更用者貝科。部分326 +部分328 的長度係根據在部分326之中的資料而定。部請的長 度係被定義為小於或是等於最小的偏離量,並且部分似 68 1244092 以J x疋依據在部/分326之中的資料為基礎來加以計算, 供正確的偏離量s。該第一與第二部分 諸係被個別地指明,因而該第—部》326可以被該 制…個動作來從該快閃記憶體加以讀取,並且由該 :制為加以評估以判定該第二部> 328的長度,該第二部 =32'應該藉由該控制器在一個後續的動作中加以讀取。 32是一個詳述在寫入動作期間’被用來從該控制器緩 W轉移貧料到快閃記憶體之控制器的命令序列表。
選擇該偏離量s為使用者資料的一或多個位元之函數 的個優點疋該架空資料因此不被插入在每個區段之内的 528個位,組資料片段中之相同的位置處。此係保護該重 要的架空資料免於在像是記憶體陣列的行失效之快閃記憶 體中的組織性之失效事件中’在大量的區段上之同時遺 失0 圖33係顯示在圖31(b)的快閃記憶體頁之上的一個讀 取動作之70成之後,在該控制器緩衝器中的資料之所產生 的配置。從圖33,將可見的是在該緩衝器中的資料係被配 置回到一個第一部分322的使用者資料與一個第二部分324 的標頭資料,現在接著是一個第三與最、終的部分325之 tCC圖34疋一個詳述在讀取動作期間,被用來從該快閃 記憶體轉#資料到控㈣器緩衝器之控帝J器的命令序列表。 一此外苓考父錯的寫入動作至多重的快閃記憶體晶片, 如同已經參考多重的快閃記憶體晶片之記憶體系統所述 地,吾人亦提出此種用於實質同時地寫入複數個晶片之技 69 1244092 術也可以被用於寫入賁料至單一的記憶體晶片,1中實際 的頁大小是由該控制器之—區段寫入的大小之倍數,例: "己L體之每個頁疋由該控制器所寫人的(使用者+架空)資料 之片段大小的四倍,其中該控制器係以均句大小的片段來 寫入資料。 進一步將可認知的是,本發明$僅可應用於财助類 型的d憶體’也可可應用於其它類型的記憶體’例如八仙 舁NOR類型的記憶體。纟and類型的快閃記憶體之例子 中’區塊的每個頁1都具有與圖28的财難頁格式相同 的秸式ϋ且吾人可以利用如上所述之任何可行的頁之中 的貝料配置°1人設計該控制器仍然以區段的區塊來抹除 記憶體,雖然在内含損壞的區段之區塊中,於欲被抹除的 區塊中各個良好的區段將個別地被抹除。因此,該控制器 並不將任何含有損壞的區段之區塊都當作是損壞的區塊, 而疋將它們當作是良好的(可抹除的)區塊,並且利用在該 些區塊中之良好的區段。在AND類型的實施例中,儘管 吾人係確保該控制器只使用内含全部是良好的區段之區塊 給SAT區塊或ASBs使用。 在and類型的快閃記憶體被使用並且該記憶體系統 疋牙里利用如上所述之交錯的晶片寫入動作之多重的快閃 記憶體晶片系統,其中在該些虛擬的區塊中之一區塊内之 任一區段的區塊(頁)含有一個損壞的區段之情形下,該控 制為係使得該些寫入指標跳過此區段並且前進到在此區塊 中之下一個良好的區段,例如其中C=晶片並且s=區段,若 70 1244092 一個連群的四個區段寫入是以85、485^186^286,則 若cls6是損壞的區段時,該序列就變為c3s5、以以、c2s6、 c3s6。此係相反於根據NAND類型的記憶體之實施例,其 :若在虛擬的區塊中之一個區塊含有一或多個損壞的區段 日才,δ亥控制益係將該區塊當作是一個損壞的區塊並且將整 個虛擬的區塊當作是一個損壞的虛擬區塊。 在吾人係利用nor類型的快閃記憶體之情形中,吾人 的較佳實施例是一種其中吾人設計該記憶體系統的控制器 仍然以一致的大小之區段來讀取與寫入資料結構往返該快 閃圮憶體,每個區段係為528位元組寬。圖35係概略地 描繪三個此種區段丨、2、3於NOR記憶體的一個區塊4, 电。由於在一個NOR區塊中的一記憶體列是只有5 1 2個 位元組寬之事實,將可認知的是在n〇r中之吾人的每個 區段係因此填入一列,並且在附近重疊以-填入下一列之一 部份。儘管如此,以不同的方式來界定在N〇R記憶體中 之吾人的區段是可行的,並且吾人可選擇來利用小於或是 大於5 2 8個位元組之大小的區段,並且一個區塊甚至可以 δ有一種以上的大小之區段。該控制器可以用任意之已經 苓考NAND與AND類型的記憶體頁來說明之各種不同的 方式來配置在每個區段中之資料,每個區段係包含使用者 與架空資料。 從以上將可認知的是該記憶體系統的實際區段(該記憶 肢糸統係依據NAND、AND抑或是NOR類型的記憶體陣 列)都不需要對於該記憶體陣列本身之實際的架構有特殊的 71 1244092 關仏,例如一個區段不需要對應到一列(頁)的陣列,並且 不而要任何貫際的特點來指明一個區段與一個相鄰的區段 之間的邊界。一個區段可被解釋為永遠被該控制器當作是’ 一個單位之一組記憶體單元。不同的區段不必具有相同的· =小。此外,一個區段的實際結構與可能會被儲存在該區 · 段中的貝料無關。同時’其中在一列(頁)的記憶體單元内 有瑕疵的區域係被容忍,並且當寫入實際區段時由該控制 裔直接跳過的實施例是可行的。 有關於該SAT,雖然如上述地,該SAT最好是被儲存參 在該記憶體陣列6的一或多個區塊中,但是替代性地以在 該記憶體系統中提供一該控制器可存取之個別的非依電性 的記憶體是可行的,該控制器係儲存該SAT在該個別的記 憶體中〜 取後,在上述的實施例之一種修改後的版本中,取代 如上述的一直以其實際位址遞昇的順序來利用可用之已抹 除的區塊’該控制器係以另一種順序來利用該些已抹除的 區塊。在此修改後的實施例中,肖麵表列含有一個所有籲 目前:用之已抹除的區塊之所選的子集合,在該咖表列 : 中的第:個區塊位址是將被使用的下一個已抹除的區塊, 並且此第一個區塊位址當已經被配置供資料儲存使用時係 從該NEB |列予以移除。任何被產生(例如因為廢棄的資 料之產生,接著來自於主處理器之刪除命令)之新的已抹除 區塊係被加到該NEB表列的底部。此係持續一段由該控制 器所決定之期間(例如,其可能是來自於主處理器之一預定 72 1244092 數目個區段寫入命令), ,,.0 ^ m 在忒^間結束之際,該控制器係藉 由以目刖可用之p姑 稍 巳抹除的區塊之一個新的子集合來 該NEB中的項目 木取代在 新、、,扁澤该NEB表列。便利的是, 所有已抹除的區塊之整個集合之諸子集合可以用遞昇的實 際區塊位址之順序來依序地使用。此種修改後的實施例在 降低與監督並且儲存所右 仔所有的區塊之抹除的狀態相關連之記 憶體空間㈤需求上有著某種程度之優點。 【圖式簡單說明】
本發明之較佳實施例現將只是藉由範例並且參考附圖 來加以說明,其中: 圖1疋在一種NAND類型的FLASH記憶體中之一個 區段的區塊之概要圖示,在其中係顯示有三個區段; 圖2是一種包括一個FLASH晶片以及一個控制器晶 片的記憶體系統之方塊圖; 圖3是在一種NAND或是AND類型的FLASH記憶體 中之一頁資料之概要圖示;
圖4係顯示圖3的頁之標頭欄位的結構; 圖5係描繪一頁的實際位址(PA)之格式; 圖6係描繪一個控制區塊(CB)的項目; 圖7係描繪在一個表區塊表列(TBL)中的一個項目; 圖8係顯示一個MAP項目之格式; 圖9係顯示在該A S B表列(A S B L)中的一個項目之才夂 式; 圖10係描繪一個目前廢棄的區塊(COB)結構之袼式; 73 1244092 圖li是一個描繪根據本發明之一實施例的多個flash 晶片之記憶體系統的一個虛擬的區塊中,區段被寫入的順 序之表, " 圖1 2係顯示一個虛擬的位址(VA)之格式; ·, 圖1 3係顯示《亥P A疋如何從該v a加以獲得的· _ 圖14係描繪根據本發明之多重區段寫入一個多重 FLASH晶片記憶體系統的動作之時序; 圖1 5是一個控制器晶片之方塊圖; 圖1 6是一個顯示對於本發明之記憶體系統所配置的吃 _ 憶體容量表; 圖1 7是一個顯示位址轉換方法的流程圖; 圖18是一個在圖17的方塊58所執行的步驟之流程 圖; 圖19是一個包括四個FLASH晶片以及一個控制哭曰 片之多重FLASH晶片記憶體系統之方塊圖; 圖20是一個在圖17的方塊56所執行的步驟之流程
圖; 机王 圖21是一個在圖17的方塊44所執行的步驟之流程 圖; 圖22是一個區段讀取動作之流程圖; 圖23是一個區段寫入動作之流程圖; 圖24是一個在圖23的方塊161所執行的步騍之汽 圖; /;’L王 圖25是一個在圖24的方塊207所執行的步驟之流程 74 1244092 圖; 圖; 圖26疋—個在圖23的方塊1 60所執行的步驟之流程 圖27是一個區段刪除動作之流程圖; 圖28係描繪在NANd或是AND類型的FLASH記憶 體中之一頁的實際劃分; 、圖29是配置資料在圖28的FLASH頁中之另一種方 式的圖示; 、圖30疋配置資料在圖28的FLASH頁中之又一種方 式的圖示; 。_圖31(a)係描繪在一個區段寫入動作之前,在控制器的 、、爰衝G己憶體内的資料; 圖、3 1(b)係描繪在一個寫入動作完成之後在flash頁 、,;斗八中6亥資料係依據圖3 〇的實施例加以配置的; 圖32是在圖31⑷與⑻的寫人動作期間,將來自該控 :的緩衝器之資料轉移到言亥flash記憶體所使用的控 制器命令表; t .圖33係描繪在-個讀取動作之後,在該控制器的緩衝 圮憶體内之資料; 立# —在圖33的頃取動作期間,將來自該FLASH記 fe、體之資料轉移到該控制哭 u 市」1^的、或衝益所使用的控制器命今 表;並且 7 圖35是在職類型的此繼記憶體中之一個可抹 除的區段之區塊的概要方塊圖,其中係顯示三個區段。 75 1244092 【主要元件〕 符號說 ASB 額外 ASBL ASB 表列 BB 開機 BBL 損壞 CB 控制 CBPT 控制 COB 目前 COSB 目前 LA 邏輯 LSA 邏輯 MAP 位元 NEB 下一 OD 架空 PA 實際 POB 未決 RBL 重新 RP 重新 RSL 重新 SAT 區段 SRP 糸統 SWP 系統 TBL 表區 TBLP TBL 指標 明j 的SAT區塊 區塊 的區塊表列 區塊 區塊指標表 廢棄的區塊 廢棄的系統區塊 區段位址 區段位址 對映 個已抹除的區塊表列 資料 位址 定的廢棄區塊 配置區塊表列 配置指標 配置區段表列 配置表(區段位址表) 重新配置指標 寫入指標 塊表列
76 1244092 VA 虛擬的位址 WBL 寫入區塊表列 WP 寫入指標 WSBL 寫入系統區塊表列 WSL 寫入區段表列 WSSL 寫入系統區段表列 1 記憶體區段(頁) la 資訊部分 lb 標頭部分 lc ECC l1、21、3 I1、41 快閃記憶體晶片 2、3 頁 4 區塊 5 快閃記憶體晶片 6 快閃記憶體陣列(固態記憶體) 7 讀取/寫入緩衝器 8 ^ 81 控制器晶片 9 控制器緩衝器 10 記憶體糸統 11 控制器微處理器 12 錯誤校正碼(ECC)產生器與檢查器 13 微處理器之SRAM 24 標頭 26 資訊欄位 77 1244092 28 ECC欄位(區塊號碼欄位) 30 遮罩 71 1、72】 、731、741 讀取/寫入緩衝器 80 主介面與暫存器 82 資料路徑控制器 84 快閃記憶體介面(FMI) 86 快閃記憶體埠 88 處理器遮罩ROM 91 微處理器匯流排 92 程式RAM或ROM之埠 94 選配的除錯琿 300 貧料區域 302 備用區域 320 緩衝器 322 第一部分 324 第二部分 325 第三與最終的部分 326 第一部分 328 第二部分 330 第三與最終的部分
78

Claims (1)

1244092 十、申請專利範圍: 1·-種用於連接至一主處理器之記憶體系統,該系統 係包括: ,干一具有非依電性的記憶體區段之固態記憶體,該些非 依電性的記憶體區段係個別可定址的並且被配置成可抹除 的區段之區塊,每個該區段都具有一個界定其在該記憶體 中的實際位置之實際位址;以及 一個用以將資料結構寫入該記憶體並且從該記憶體讀 T資料結構、以及用以將該些區段的區塊分類成為被當作 疋已抹除的區塊以及被當作是未被抹除的區塊之控制器; 其中該控制器係包含: 用以將接收自該主處理器之邏輯位址轉換成為在該記 憶體中的該些記憶體區段的實際位址之機構; 一個用以指向來自該主處理器之資料將被寫入的區段 之貝際位址的寫入指標,該寫入指標係被該控制器控制以 種預设的順序移動在任何被當作是已抹除的區塊之記憶 體區段的實際位址之間,並且當該區塊已經被填滿時,移 動到另一個已抹除的區塊; 其中該控制器係被配置使得,當一個區段寫入命令係 接收自該主處理器時,該控制器係轉換一個接收自該主處 理裔的邏輯位址成為一個資料被寫入的實際位址,其係藉 由對於該邏輯位址配置該寫入指標目前所指向的實際位 址’並且其中該控制器係被配置來編輯一個區段配置表, δ亥區《I又配置表係具有區段的邏輯位址及已經由該控制器分 79 1244092 別對於該些區段的邏輯位址所配置的區段的實際位址,並 且-亥控制為更新該區段配置表的次數係比用來自該主處理 為的資料寫入記憶體區段的次數來的低,並且其特徵在於 设置有至少一個額外的區段的區塊,其係包含一個區段配 置表區塊之修改後的版本之個別的區段,並且其中當在該 員外的區塊中的所有區段都被寫入修改後的版本之區段配 置表的區段時,則各個區段配置表區塊才被重寫以包含在 該額外的區塊中所有修改後的版本,並且該額外的區塊係 被抹除。 2·如申請專利範圍第1項之記憶體系統,其中該寫入 才曰I係被該控制器控制以一種預設的順序移動在被當作是 已抹除的區塊之間。 3 ·如申請專利範圍第1或2項之記憶體系統,其中在 。玄區#又配置表中的貫際區段位址是由邏輯區段位址所排 序,藉此第N個區段配置表的項目係包含具有邏輯位址N 的資料已經被寫入的區段之實際位址。 4.如申請專利範圍第3項之記憶體系統,其中該控制 器係被配置使得當一個區段讀取命令係接收自該主處理器 日守’ δ玄控制窃係在該區段配置表中查閱一個接收自該主處 理器的邏輯區段位址,以便於獲得該控制器先前配置給該 邏輯區段位址的實際區段位址。 5·如申請專利範圍第1項之記憶體系統,其中該區段 配置表是被儲存在該固態記憶體中的至少一個記憶體區段 之區塊中。 80 1244092 6·如申請專利範圍第5項之記憶體系統,其中該控制 器係被配置來藉由以整個區塊地重寫該區段配置表以 該區段配置表。 7·如申請專利讓"員之記憶體系統,其中在該韻 外的區塊中的每個區段係包含其所更新之區段配置表區塊 之區段的實際位址,以及該區段配置表區塊之該區段之修 改後的版本。 > 8·如申請專利範圍帛1項之記憶體系統,其中當每個 區塊被寫入其中的資料填滿時,該控制器係被配置以控㈣φ 該寫入指標以順序地移動,以實際位址遞升的數值順序移 動在已抹除的區塊之間。 9. 如申請專利範圍帛8狀記憶體系統,其中該寫入 指標之控制是循環的,在—種方式為—旦根據實際位址的' 順序之最高的區塊中之區段已經被填滿資料時,該寫入指 標係被該控制器控制來折回到在目前所有被該控制器當^ 是已抹除的區塊中之具有數值上最低的實際區塊位址之區 段的區塊。 10. 如申請專利範圍第i項之記憶體系統,其中該控制 : 器係被配置以控制該寫入指標依據實際位址順序為非=序 . 地移動在該些已抹除的區塊之間。 11 ·如申請專利範圍第1項之記憶體系統,其中每個該 記憶體區段係實際地分割成為一個資料區域以及一個備用 區域,並且該控制器係被配置以便於將包括標頭資料與錯 誤更正碼資料的架空資料寫入到該區段中的一個位置處, 81 1244092 該位置係偏離該區段的資料區域之起始處,並且被配置以 寫入接收自該主處理器之使用者資料於該區段中、在該架 空資料之任一側剩餘的空間内。 12.如申請專利範圍帛丨丨項之記憶體系統,其中該架 空育料係偏離一個由將被寫入該區段的使 -個位元所決定的量。 " ;13.如中請專利範圍第i項之記憶體系统,其中在每個 該區段的區塊中之記憶體區段是整體成為_單元而可抹除 的。 、 14. 如申請專利範圍第13項之記憶體系統,其中在每 個該區段的區塊中之記憶體區段也是個別可抹除的。 15. 如申請專利範圍第"員之記憶體系統,#中該,制 器係被配置以控制在該記憶體之上的抹除㈣,以便於只 抹除整個記憶體區段的區塊,並且其中若一個區段的區塊 中之所有的記憶體區段均為已抹除的區段時,則該區段的 區塊被該控制器當作是一個已抹除的區塊。 16. 如申請專利範圍第15項之記憶體系統,盆中若一 個區塊含有-或多個損壞的區段時,則該控制器將整個區 塊界定為損壞的,並且將該區塊當作是未被抹除的區塊, 因而沒有資料會被寫入該區塊。 17. 如申請專利範圍帛14項之記憶體系統,其中若一 個區塊含有-或多個損壞的區段時’則該控制器將該區塊 當作是-個已抹除的區,鬼,藉此該控制器仍然可以使用在 該區塊中之良好的區段來儲存資料,並且其中該記憶體系 82 1244092 統係包含-個指明損壞的區段之表,並且該控制器係被配 置來檢查該寫入指標將被移到的下一個區段位址是否為一 個損壞的區段之位址’並且若其為一個損壞的區段之位址 時,控制該寫入指標以跳過此損壞的區段,並且根據該些 區段將被寫入之預設的順序來移動到下一個區段位址。 18.如申請專利範圍帛i項之記憶體系統,其中每個區 丰又的區塊均具有-個界;^其在該記憶體中的實際位置之實 際區塊位址,並且每個該記憶體區段的實際位址係包含其 所位於的區塊之實際區塊位址’並且其中該控制器係被配 置以編輯一個被當作是已抹除的區段的區塊中之至少某些 區塊之實際區塊位址的表列,該表列係以一種其中該寫入 指標將要移動在該些區塊之間的順序來加間列,該表列 被該控制器利用以快速地指出下—個將被寫人之區段的區 塊,並且該記憶體系,统更包含暫時的記憶體機構,該表列 係被該控制器儲存在該機構之中。 1 9·如申請專利範圍第1項 .^ ^ 已G體系統,其中該控制 器係被配置使得當一個區段寫入命令由該控制器自該主處 理器接收’該命令係造成先前被寫入另一區段之廢棄的資 料時,該控制器係儲存内含目前廢棄的資料之區段的位址 於该記憶體系統之一暫時的記憶體中。 20·如申請專利範圍第Μ項之纪愔鍊έ^ ^ 〃 心°己憶體糸統,其中該控 制為係進一步被配置使得若一個 由使用者所產生的區段刪 除命令係由該控制器接收自該主處 ^ , 处埋裔k,泫控制器將欲 被刪除的區段標示為廢棄的,並 碎存该區段的位址於該 83 1244092 暫時的記憶體中。 2 1 ·如申請專利範圍第1 9或20項之記憶體系統,其中 該控制器係被配置以在任何時候僅容許一固定預設數目的 區塊,在此稱之為目前廢棄的區塊來含有一或多個内含曾 經由該寫入指標所寫入之廢棄的資料之區段,並且使得當 在一個該目前廢棄的區塊中的所有區段都含有廢棄的資料 時’該目前廢棄的區塊係立刻被抹除。 22.如申請專利範圍第21項之記憶體系統,其中該控 制器係被配置使得其中一個不同於該目前廢棄的區塊之區 塊中的區段將含有廢棄的資料之情形時,該控制器係:將 一個該目前廢棄的區塊中之有效的(非廢棄的)區段内之任 何的貢料重新配置到另一個區塊,並且接著抹除該目前廢 棄的區塊;將不同於目前廢棄的區塊之該區塊内的該區段 標示為廢棄的;並且指定該另一區塊作為一個新的目前廢 茶的區塊。 23 ·如申請專利範圍第2 1項之記憶體系統,其中目前 廢棄的區塊之該固定預設的數目是1。 24·如申請專利範圍第22項之記憶體系統,其中該控 制器要將該有效的資料重新配置到的該區塊是該寫入指標 目前所位在其中的區塊。 25 ·如申請專利範圍第22項之記憶體系統,其中該記 肢系統係包含另一個寫入指標,在此稱之為重新配置指 ‘,用於指向該有效的資料將被重新配置到的區段之實際 位址’该重新配置指標永遠係在不同於該寫入指標之區段 84 !244〇92 的區塊中D 26.如申請專利範圍第25項之 惰》么 ϋ —體系統,复中兮印 丨,糸統係包含另一個寫入指# ,中己 其係指向系統f料將從主處理為系統寫入指標’ 址,該系統寫入指標永遠係在不同區段之實際位 中。 』於3亥寫入指標之區塊 如申請專利範圍第26項之記悴體 制器係被配置以便於容許在任何時:至、:’其中該 ^ ^ ^ 、存在至少兩個内令
區Γ 的區段之區塊,其中之—區塊是該目前廢棄 -鬼,而另—個區塊是内含—… 之曰A产* 〜茶的糸統育料區 目則廢棄的系統區塊,並且❹何的系統資料區段兩 被重新配置以便容許該目前廢棄的系統區媿被抹除時而 破重新配置的系統資料係被送到該系統寫人指標目 向的位址處。
•如申請專利範圍第26項之記憶體系統,其中 饭體系統係包含另-個寫入指標,在此稱之為系統重 置指標,用以指向有效的系統資料將被重新配置到的 之貫際位址,該系統重新配置指標永遠係在不同於該 指標以及系統寫入指標之區段的區塊中。 29·如申請專利範圍第26項之記憶體系統,其中該控 制器係被配置使得,若在因為廢棄的資料剛剛已經在另一 區塊中被產生而因此該控制器必須抹除一個該目前廢棄的 區塊之際,該目前廢棄的區塊含有該些寫入指標中之一 %,忒控制器繼續進行產生一個新的目前廢棄的區塊,但 85 1244092 在该未決定的廢棄區塊中任何有效的(非疏在 U 3双的(非廢棄的)資料係被 該控制器所重新配置,並且該夫冰中认 上且A禾决疋的廢棄區塊係被抹 除0 是延遲該舊的目前廢棄的區塊 的廢棄區塊,直到在該未決定 區段都已經被填滿,並且該指 界定之將被使用的已抹除的區 之抹除,在此稱之為未決定 的廢棄區塊中所有已抹除的 標移到下一個由該控制器所 塊之上為止,在那個時候, 3〇·如申請專利範圍第27項之記憶體系統,其中該控 制器係被配置以儲存自從該區段配置表上次被更新之後, 重新配置的資料已經分別由在此稱之為重新配置區段表列 的重新配置指#、在此稱之為寫入系統區段表列的系統寫 入指標、以及在此稱之為系統重新配置區段表列的系統重 新配置指標所寫人在該記憶體中的區段所對應的:邏輯區段 位址之個別的表列於該記憶體系統的一個暫時記憶體中, 亚且該控制器係被配置以儲存已經由該重新配置指標、系 統寫入指標與系統重新配置指標所使用的區塊之順序的相 、寸&之表列在此稱之為重新配置區塊表列、寫入系統區 鬼表列X及系統重新配置區塊表列於該暫時的記憶體中。 3 1 ·如申請專利範圍第1項之記憶體系統,其中除了從 >、,处_ σσ寫入資料結構到該記憶體之外,該控制器也產 生亚寫入被指定為控制資訊的資料到該記憶體,並且該控 制器係被配置以便寫入此種控制資訊於一或多個不同於接 收自該主處理器的資料結構所寫入的區塊之記憶體區段的 區塊之控制區塊。 86 1244092 3 2 ·如申請專利範圍第31 制器係被配置以儲存一個所有 的表列於至少一個該控制區塊 項之記憶體系統,其中該控 @段配置表區塊之區塊位址 中。 3 3.如申請專利範圍第31或τ5 * 32項之記憶體系統,其中 0玄控制裔係被配置以儲存該一武夕 ^ Α或多個控制區塊的區塊位址 於該記憶體的一個專用的開機區換 A ^ i鬼中,此開機區塊係為在 該記憶體中的第一個不含有任柄 $ 1何知壞的區段之區段的區 塊。 有 式,並且每個該部分係含有一組 區塊以及任何對應到該些區段配 置表區塊的區/塊位址。 34·如申請專利範圍第32 的區段配置表區塊位址之表 項之記憶體系統,其中該所 列係為複數個表列部分之形 邏輯上連續的區段配置表 置表區塊之額外的區1配 35.如申請專利範圍第i項之記憶體系統,其中該控制 器係被配置以储存-個自從該區段配置表上次被更新之 後’已經由該寫入指標所宫;V ώΑ -欠I丨 曰尸/Γ焉入的-貝料結構之邏輯區段位址 的寫入^段表列在該記憶體系統之—個暫時的記憶體中。 3 6 ·如申請專利範圍第 3 5項之記憶體系統,其中該控 制器係被配置也儲存自從該區段配置表之上次更新之後, 其中已經由該寫入指標用於寫入資料所使用之區塊的順序 於該暫時的記憶體巾,此順耗以位址被保存於該寫入區 段表列中之被更新t的區段所位於其中的區塊之區塊位址 的寫入區塊表列之形式加以儲存的。 37.如申請專利範圍第36項之記憶體系統’其中該寫 87 1244092 入區段表列具有預設的, — 了, 小 並且一旦該寫入區段表列滿 分被 配置表區塊或是額外的區段酉己置表區塊 空。 仅衣夕j只冩入區塊表列係被騰 38·如申請專利範圍第36 制器係儲存一個開始的實際區 置表或是額外的區段配置表區 料已經被該控制器寫入的區段 圮憶體之一個該控制區塊中。 項之記憶體系統,其中該控 段位址、以及自從該區段配 塊之上次更新之後,内含資 之區塊之間的連結於該固態
。39.如申請專利範圍第i項之記憶體系統,其中每個該 品係由。己隐體之單一 “頁”、亦即在一個記憶體區段之區 塊中一列的記憶體單元所組成。 ^ 40.如中請專利範圍第!項之記憶體系統,丨中該控制 器係被配置以-致大小的資料片段來寫人諸至該些記憶 月豆區段,並且從該些記憶體區段讀取資料。
41·如申請專利範圍第40項之記憶體系統,其中所有 忒些纪憶體區段係為相同的大小,並且每個該資料片段在 大小係等於一個該記憶體區段之大小。 42·如申請專利範圍第丨項之記憶體系統,其更包含一 個暫時的快取記憶體,該控制器係被配置來儲存一組包含 被該控制器從該區段配置表中最近被存取之區段配置表項 目之連續的區段配置表項目在該快取記憶體中。 43.如申請專利範圍第41項之記憶體系統,其中在該 額外的區塊中的每個區段係包含其所更新之區段配置表區 88 1244092 塊之區段的實際位址,以及該區段配置表區塊之該區段之 修改後的版本;並且 该控制器係被配置來在該暫時的快取記憶體中產生一 個所有的額外的區段配置表區塊以及與其相關的區段配置 表區塊之貝際位址的表列,此表列在每次一個區段配置表 的區段寫入動作被執行時係被更新。 44·如申請專利範圍第丨項之記憶體系統,其中該固態 記憶體係包括以單一記憶體晶片之型式的單一記憶體陣 列。 45·如申請專利範圍第1項之記憶體系、統,其中該固態 e己憶體係包括一個由複數個記憶體晶片所構成之記憶體陣 列0 如甲S月專利範圍第1項之記憶體系統,其中該固態 1 己憶體係包括以複數個記憶體晶片之型式的複數個記憶體 陣列,並且其中該#岳,丨突、# 4 1 扰制益係被配置以將該複數個記憶體晶 片中的記憶體區段形点i A A …稷數個虛擬區塊,每個該虛擬區 Λ系括來自於每個該記情體曰 ρ π r A u月丑日日片的一個可抹除的記憶體 7之區塊’並且將該些虛擬區塊分類 的區塊以及被當作是未被抹除的區塊。 k已抹除 47.如中請專利範圍第46項之記憶體系統,其中該控 制态係被配置以編輯一個姑A 列並錢是已抹除的虛擬區塊之表 列並且健存此表列在該Μ體 並且控制該寫入指標從一個 的礼體内 每個連續的區段寫入動作 到另一個晶片用於供 動作之用,其係開始於該虛擬區塊之 89 1244092 口可抹除的區塊中之—個區段、並且連續地移動到在該 -擬區塊中之其它的每個可抹除的區塊之一個區段、直到 X虛擬區塊之每個可抹除的區塊中的一個區段都已經被 ’’’’入為止’並且接著移回到其中第_個區段被寫入的晶 片、並且以類似的方式繼續來填入在該虛擬區塊之每個可 抹除:區塊中之另-個區段、依此類#,直到該虛擬區塊 填滿貧料為止,並且垃益政& # # 妾者移動遠寫入指標到該被當作是已 未除的虛擬區塊之表列中的下一個虛擬區%,並且以類似 的方式填滿此下一個虛擬區塊。 48.如中Μ專利範圍第47項之記憶體系統,其中該控 ^係被配置使得對於該控制器為了 —個接收自該主處理 為的:重區段寫入命令所執行之# η個連續的區段寫入動 ^ ^ °八中11疋小於或是等於在該記憶體系統中之固態 片的個數’該控制器係實質上同時地寫入在η個 晶片中的每個晶片内之一個區段。 49.如申請專利範圍帛47或“項之記憶體系統,其中 該控制器係被配置以藉由同時抹除在該虛擬區塊中之所有 可抹除的區塊來進行任何該虛擬區塊之抹除。 種用以控制資料結構的讀取與寫入往返一個固態 記憶體之方法’該固態記憶體係具有個別可定址並且被配 置成可抹除的區段的區塊之非依電性的記憶體區段,每個 該區段都具有一個界定其在該記憶體中的實際位置之實際 位址,該方法係包括步驟有: 分類該#•區段的區塊成為被當作{已抹&的區塊以及 90 1244092 被當作是未被抹除的區塊; 提供一個用以指向來自一個主虛採哭 w王慝理态的資料將被寫入 的區段之實際位址的寫入指標,並且和岳 I且?工制该至少一個寫入 指標以在-種預設的順序下移動在任何被當作是已抹除的 區塊之記憶體區段的實際位址之間’並且當該區塊已經被 填滿時,移動到另一個已抹除的區持,* n丄 日7吐塊,並且當一個區段寫 入命令係接收自該主處理器日夺,將一個接收自該主處理器 的邏輯位址轉換成為一個資料被寫入的實際位址,其係藉 由對於該邏輯位址配置該寫入指標目前所指向的實際位 址; 儲存一個區段的邏輯位址及已經由該控制器分別對於 該些區段的邏輯位址所配置的區段的實際位址之區段配置 表於非依電性的固態記憶體中;並且 更新邊區段配置表的次數小於以來自該主處理器的資 料寫入記憶體區段的次數; 其特徵在於設置有至少一個額外的區段的區塊,其係 包各一個區段配置表區塊之修改後的版本之個別的區段, 亚且其中當在該額外的區塊中的所有區段都被寫入修改後 的版本之區段配置表的區段時,則各個區段配置表區塊才 才皮重寫以包含在該額外的區塊中所有修改後的版本,並且 °亥額外的區塊係被抹除。 51 · 一種用於連接至一主處理器之記憶體系統,該系統 係包括: —具有非依電性的記憶體區段之固態記憶體,該些非 91 1244092 依電性的記憶體區段係個別可定址的並且被配置成可抹除 的區段之區塊,每個該區段都具有一個界定其在該記憶體 中的實際位置之實際位址;以及 一個用以將資料結構寫入該記憶體並且從該記憶體讀 取資料結構、以及用以將該些區段的區塊分類成為被當作 疋已抹除的區塊以及被當作是未被抹除的區塊之控制器· 其中該控制器係包含: 用以將接收自該主處理器之邏輯位址轉換成為在該記 憶體中的該些記憶體區段的實際位址之機構; 一個用以指向來自該主處理器之資料將被寫入的區段 之實際位址的寫入指標,該寫入指標係被該控制器控制以 一種預設的順序移動在任何被當作是已抹除的區塊之記憶 體區段的實際位址之間,並且當該區塊已經被填滿時,移 動到另一個已抹除的區塊; 其中該控制器係被配置使得,當一個區段寫入命令係 接收自該主處理器時,該控制器係轉換一個接收自該主處 理器的邏輯位址成為一個資料被寫入的實際位址,其係藉 由對於該邏輯位址配置該寫入指標目前所指向的實際位 址並且其中遠控制器係被配置來編輯一個區段配置表, 該區段配置表係具有邏輯位址及已經由該控制器分別對於 e玄些邏輯位址所配置的實際位址,並且該控制器更新該區 段配置表的次數係比用來自該主處理器的資料寫入記憶體 區段的次數來的低,並且其中該控制器係被配置使得當— 個區段寫入命令由該控制器自該主處理器接收,該命令係 92 1244092 造成先前被窝人 H p-. _ 心另-區奴之廢棄的資料時,該控制器係儲 ::…廢棄的資料之區段的位址於該記憶體系統之— 曰日=广’fe體中’並且其中該控制器係被配置以在任何. = —固定預設數目的區塊,在此稱之為目前廢棄的. 2來3有-或多個内含曾經由該寫入指標所寫入之廢棄 、貝料之區奴,並且使得當在一個該目前廢棄的區塊中的 所有區段都含有廢棄的資料時,該目前廢棄的區塊係立刻 被抹除。 52·如申請專利範圍第5丨項之記憶體系統,其中該控 _ 制為係被配置使得其中一個不同於該目前廢棄的區塊之區 塊中的區奴將含有廢棄的資料之情形時,該控制器係:將 一個該·目前廢棄的區塊中之有效的(非廢棄的)區段内之任 何的資料重新配置到另一個區塊,並且接著抹除該目前廢 棄的區塊,將不同於目前廢棄的區塊之該區塊内的該區段 標示為廢棄的;並且指定該另一區塊作為一個新的目前廢 棄的區塊。 53·如申請專利範圍第5 1項之記憶體系統,其中目前 _ 廢棄的區塊之該固定預設的數目是1。 : 54·如申請專利範圍第52項之記憶體系統,其中該控 . 制器要將該有效的資料重新配置到的該區塊是該寫入指標 目前所位在其中的區塊。 55.如申請專利範圍第52項之記憶體系統,其中該記 憶體系統係包含另一個寫入指標,在此稱之為重新配置指 標,用於指向該有效的資料將被重新配置到的區段之實際 93 1244092 寫入指標之區段 位址,該重新配置指標永遠係在不同於該 的區塊中。 3 〇 ·如甲滑專利範 貝之記情、& μ 憶體系統係包含另一個寫入指標,稱:、、、、,其中該記 其係指向系統資料將從主處理”、、糸統寫入指標, u破寫入的區辟杏 址,該系統寫入指標永遠係在 …際位 中。 U方、5亥寫入指標之區塊 R如巾請專利範圍第56項之記憶體系統,1中外 」:係被配置以便於容許在任何時候存在至少兩個内含: 卩祕工口 您區塊疋该目前廢棄的 塊:而另一個區塊是内含-或多個廢棄的系統資料區段 之目則廢棄的系統區塊,並且若任何的系統資料區段需要 被重新配置以便容許該目前廢棄的系統區塊被抹除時則 被重新配置的系統資料係被送到該系統寫入指標目前所指 向的位址處。 58·如申請專利範圍第56項之記憶體系統,其中該記 憶體系統係包含另一個寫入指標,在此稱之為系統重新配 置才曰標,用以指向有效的系統資料將被重新配置到的區段 之實際位址,該系統重新配置指標永遠係在不同於該寫入 屯標以及系統寫入指標之區段的區塊中。 5 9 ·如申請專利範圍第5 6項之記憶體系統,其中該控 制器係被配置使得,若在因為廢棄的資料剛剛已經在另一 區塊中被產生而因此該控制器必須抹除一個該目前廢棄的 區塊之際’該目前廢棄的區塊含有該些寫入指標中之一 94 1244092 日守,邊控制器繼續進行產生一 a 個新的目前廢棄的區塊,但 疋延遲该售的目丽廢棄的區塊 的麻本F说士 之抹除’在此稱之為未決定 的廢棄區塊,直到在該未決定 Ρ ^ ρ ^ ^ ^ ^ $震棄區塊中所有已抹除的 £ ^又都已經被填滿,並且該指 Χ 々收、士 /士 ^移到下一個由該控制器所 界疋之將被使用的已抹除的區 尾之上為止,在那個時候, 在6亥未決疋的廢棄區塊中任 > 古 效的(非廢棄的)資料係被 該控制器所重新配置,並且 ^。 忒未決定的廢棄區塊係被抹 I示。 60·如申請專利範圍第57項之纪愔 〇 只又。己〖思體糸統,其中該控 制1§係被配置以儲存自從該區段 匕f又配置表上次被更新之後, 重新配置的資料已經分別由在 你此拇之為重新配置區段表列 的重新配置指標、在此稱之為宜么 聃之為寫入糸統區段表列的系統寫 入指標、以及在此稱之為系姑舌立^ 牡c ai馮糸統重新配置區段表列的系統重 新配置指標所寫入在該記情體φ的p @ & 。/ 口己u媸〒的區段所對應的邏輯區段 位址之個別的表列於該記憶體系統的一個暫時記憶體中, 亚且該控制器係被配置以儲存已經由該重新配置指標、系 統寫入指標與系統重新配置指標所使用的區塊之順序的相 對應之表列,在此稱之為重新配置區塊表列、寫入系統區 塊表列以及系統重新配置區塊表列於該暫時的記憶體中。 61 · —種用於連接至一主處理器之記憶體系統,該系統 係包括: 一具有非依電性的記憶體區段之固態記憶體,該些非 依電性的A fe體區段係個別可定址的並且被配置成可抹除 的區段之區塊,每個該區段都具有一個界定其在該記憶體 95 1244092 中的實際位置之實際位址;以及 個用以將資料結構寫入該記憶體並且從該記憶體讀 ^貝料、、、"構、以及用以將該些區段的區塊分類成為被當作 抹除的區塊以及被當作是未被抹除的區塊之控制器; 其中該控制器係包含: 立用以將接收自該主處理器之邏輯位址轉換成為在該記 憶體中的該些記憶體區段的實際位址之機構; 一個用以指向來自該主處理器之資料將被寫入的區段 之貝IV、位址的寫入指標,該寫入指標係被該控制器控制以 一種預設的順序移動在任何被當作是已抹除的區塊之記憶 體區段的實際位址之間,並且當該區塊已經被填滿時,移 動到另一個已抹除的區塊; 其中該控制器係被配置使得,當一個區段寫入命令係 接收自該主處理器時,該控制器係轉換一個接收自該主處 理裔的邏輯位址成為一個資料被寫入的實際位址,其係藉 由對於該邏輯位址配置該寫入指標目前所指向的實際位 址’並且其中5亥控制器係被配置來編輯一個區段配置表, 该區段配置表係具有邏輯位址及已經由該控制器分別對於 忒些邏輯位址所配置的實際位址,並且該控制器更新該區 段配置表的次數係比用來自該主處理器的資料寫入記憶體 區段的次數來的低,並且其中該固態記憶體係包括以複數 個6己i思體晶片之型式的複數個記憶體陣列,並且其中該控 制杰係被配置以將該複數個記憶體晶片中的記憶體區段形 成為複數個虛擬區塊,每個該虛擬區塊係包括來自於每個 96 1244092 該記憶體晶片的一個可抹除的記憶體區段之區塊,並且將 該些虛擬區塊分類為被當作是已抹除的區塊以及被當作是 未被抹除的區塊,並且其中該控制器係被配置以編輯一個 被當作是已抹除的虛擬區塊之表列並且儲存此表列在該記 u : e t之暫時的記憶體内’並且控制該寫人指標從— 個晶片移動到另-個晶片用於供每個連續的區段寫入動作 之用其係開始於❹擬區塊之—個可抹除的區塊中之— 個£ &、並且連續地移動到在該虛擬區塊中之其它的每個 可抹除的區德之<_ 13* ^ 品#又、直到在該虛擬區塊之每個可抹 除的區塊中的》/fg| ϊσ* 3r? -7 ^又都已經被寫入為止,並且接著移回 到其中第一個區段被寫入的晶片、並且以類似的m續 :真入在》亥虛擬區塊之每個可抹除的區塊中之另一個區 段依此大員推,直到該虛擬區塊填滿資料為止,並且接著 移動該寫入指標到該被當作是已抹除的虛擬區塊之表列中 的下一個虛擬區塊,並且以類似的方式填滿此下一個虛擬 區塊。 62·如申請專利範圍帛6ι項之記憶體系統,其中該於 制器係被配置使得對於該控制器為了—個接收自該主處= 器的多重區段寫入人人 寫入°卩令所執行之每η個連續的區段寫入動 作而言,盆中 Π θ ϊ 、、 疋小於或是等於在該記憶體系統中之固能 記憶體晶片的個|^ ^ 〜 數5亥控制器係實質上同時地寫入在^個 晶片中的每個晶片内之一個區段。 。。63.如中請專利範圍第61項之記憶體系統,其中該控 制-係被配置以藉由同時抹除在該虛擬區塊中之所有可抹 97 1244092 除的區塊來進行任何該虛擬區塊之抹除。 十一、圖式: 如次頁
98
TW089103469A 1999-02-17 2000-02-29 Memory system TWI244092B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9903490.2A GB9903490D0 (en) 1999-02-17 1999-02-17 Memory system
PCT/GB2000/000550 WO2000049488A1 (en) 1999-02-17 2000-02-17 Memory system

Publications (1)

Publication Number Publication Date
TWI244092B true TWI244092B (en) 2005-11-21

Family

ID=10847858

Family Applications (1)

Application Number Title Priority Date Filing Date
TW089103469A TWI244092B (en) 1999-02-17 2000-02-29 Memory system

Country Status (8)

Country Link
US (1) US6725321B1 (zh)
EP (1) EP1157328B1 (zh)
JP (1) JP5011498B2 (zh)
KR (1) KR100644805B1 (zh)
DE (1) DE60019903T2 (zh)
GB (1) GB9903490D0 (zh)
TW (1) TWI244092B (zh)
WO (1) WO2000049488A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI383392B (zh) * 2007-06-18 2013-01-21 Micron Technology Inc 用於在一非揮發固態記憶體及其固態記憶體裝置中程式化速率判定及控制的方法
TWI393005B (zh) * 2006-01-30 2013-04-11 Ibm 用於在具有多重一致性定義域之資料處理系統中處置清空操作之資料處理系統、快取系統以及方法
TWI395228B (zh) * 2004-12-24 2013-05-01 Spansion Llc 施加偏壓至儲存元件之方法與裝置
TWI413984B (zh) * 2008-10-16 2013-11-01 Silicon Motion Inc 快閃記憶體裝置以及資料更新方法
TWI421871B (zh) * 2009-11-27 2014-01-01 Macronix Int Co Ltd 定址一記憶積體電路之方法與裝置
US9323460B2 (en) 2013-03-14 2016-04-26 Microsoft Technology Licensing, Llc Assigning priorities to data for hybrid drives
TWI553480B (zh) * 2011-08-01 2016-10-11 Toshiba Kk And a memory means for specifying the size of the divided portion of the written data
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives

Families Citing this family (242)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978342B1 (en) * 1995-07-31 2005-12-20 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
US6728851B1 (en) * 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US8171203B2 (en) 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US6148354A (en) 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
JP3524428B2 (ja) * 1999-04-20 2004-05-10 東京エレクトロンデバイス株式会社 記憶装置、記憶システム、メモリ管理方法及び記録媒体
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US7934074B2 (en) * 1999-08-04 2011-04-26 Super Talent Electronics Flash module with plane-interleaved sequential writes to restricted-write flash chips
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US7966462B2 (en) * 1999-08-04 2011-06-21 Super Talent Electronics, Inc. Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips
MXPA02004748A (es) * 1999-11-10 2004-01-19 Thomson Licensing Sa Un metodo para la recuperacion de desastre para un medio de disco de re-escritrua.
US20060161725A1 (en) * 2005-01-20 2006-07-20 Lee Charles C Multiple function flash memory system
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
US6654847B1 (en) * 2000-06-30 2003-11-25 Micron Technology, Inc. Top/bottom symmetrical protection scheme for flash
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
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
US7072981B1 (en) 2000-12-21 2006-07-04 Cisco Technology, Inc. Preallocation of client network address translation addresses for client-server networks
US7089328B1 (en) * 2000-12-29 2006-08-08 Cisco Technology, Inc. Method allocation scheme for maintaining server load balancers services in a high throughput environment
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
GB0123421D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Power management system
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123410D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
GB0123417D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
GB0123415D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
JP3981268B2 (ja) * 2001-12-28 2007-09-26 日本電産サンキョー株式会社 不揮発性メモリ及びそのデータ更新方法
US7231643B1 (en) 2002-02-22 2007-06-12 Lexar Media, Inc. Image rescue system including direct communication between an application program and a device driver
US7533214B2 (en) 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US6901499B2 (en) 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US7065531B2 (en) * 2002-03-12 2006-06-20 Hewlett-Packard Development Company, L.P. Combining computer programs
US20060143365A1 (en) * 2002-06-19 2006-06-29 Tokyo Electron Device Limited Memory device, memory managing method and program
DE10227255B4 (de) * 2002-06-19 2008-06-26 Hyperstone Gmbh Verfahren zur Wiederherstellung von Verwaltungsdatensätzen eines blockweise löschbaren Speichers
DE10256509B4 (de) * 2002-06-19 2008-06-12 Hyperstone Gmbh Verfahren zum Adressieren von blockweise löschbaren Speichern
WO2004001606A1 (en) * 2002-06-20 2003-12-31 Tokyo Electron Device Limited Memory device, memory managing method and program
US6970969B2 (en) * 2002-08-29 2005-11-29 Micron Technology, Inc. Multiple segment data object management
US6968439B2 (en) * 2002-08-29 2005-11-22 Micron Technology, Inc. Single segment data object management
US7130979B2 (en) * 2002-08-29 2006-10-31 Micron Technology, Inc. Dynamic volume management
US20040049628A1 (en) * 2002-09-10 2004-03-11 Fong-Long Lin Multi-tasking non-volatile memory subsystem
US20040128464A1 (en) * 2002-12-30 2004-07-01 Lee Micheil J. Memory reclamation
US20040128414A1 (en) * 2002-12-30 2004-07-01 Rudelic John C. Using system memory as a write buffer for a non-volatile memory
FI117489B (fi) * 2003-02-07 2006-10-31 Nokia Corp Menetelmä muistikortin osoittamiseksi, muistikorttia käyttävä järjestelmä, ja muistikortti
JP2004265162A (ja) * 2003-03-03 2004-09-24 Renesas Technology Corp 記憶装置およびアドレス管理方法
TWI220474B (en) * 2003-03-12 2004-08-21 Glovic Electronics Corp Physical page allocation method of flash memory
DE10319271A1 (de) * 2003-04-29 2004-11-25 Infineon Technologies Ag Speicher-Schaltungsanordnung und Verfahren zur Herstellung
US7664987B2 (en) 2003-05-25 2010-02-16 Sandisk Il Ltd. Flash memory device with fast reading rate
KR100546348B1 (ko) 2003-07-23 2006-01-26 삼성전자주식회사 플래시 메모리 시스템 및 그 데이터 저장 방법
US7752380B2 (en) * 2003-07-31 2010-07-06 Sandisk Il Ltd SDRAM memory device with an embedded NAND flash controller
JP2005085011A (ja) * 2003-09-09 2005-03-31 Renesas Technology Corp 不揮発性メモリ制御装置
JP2005108304A (ja) * 2003-09-29 2005-04-21 Toshiba Corp 半導体記憶装置及びその制御方法
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7073016B2 (en) * 2003-10-09 2006-07-04 Micron Technology, Inc. Random access interface in a serial memory device
DE10349595B3 (de) 2003-10-24 2004-12-09 Hyperstone Ag Verfahren zum Schreiben von Speichersektoren in einem blockweise löschbaren Speicher
JP4567966B2 (ja) 2003-12-22 2010-10-27 株式会社東芝 エミュレーションシステムおよびエミュレーション方法
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
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
KR20070007265A (ko) 2003-12-30 2007-01-15 쌘디스크 코포레이션 제어 데이터 관리를 구비한 비휘발성 메모리 및 방법
US20050144516A1 (en) 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7484070B1 (en) 2004-01-09 2009-01-27 Conexant Systems, Inc. Selective memory block remapping
US7607177B2 (en) * 2004-02-23 2009-10-20 Micron Technology, Inc. Secure compact flash
US20080147964A1 (en) * 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
US7370166B1 (en) * 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US7194596B2 (en) * 2004-06-09 2007-03-20 Simpletech Global Limited Method of efficient data management with flash storage system
US8607016B2 (en) * 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
US7395384B2 (en) * 2004-07-21 2008-07-01 Sandisk Corproation Method and apparatus for maintaining data on non-volatile memory systems
US7464306B1 (en) * 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
US7594063B1 (en) * 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
WO2006024328A1 (de) * 2004-09-02 2006-03-09 Hyperstone Ag Verfahren zur verwaltung von speicherinformationen
US7509526B2 (en) * 2004-09-24 2009-03-24 Seiko Epson Corporation Method of correcting NAND memory blocks and to a printing device employing the method
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
JP2008033379A (ja) * 2004-11-10 2008-02-14 Matsushita Electric Ind Co Ltd 不揮発性記憶装置
JP2006146460A (ja) * 2004-11-18 2006-06-08 Sony Corp 通信システム、記憶装置、並びに制御装置
US7120051B2 (en) 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7386655B2 (en) * 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
KR100876084B1 (ko) * 2007-02-13 2008-12-26 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
US7882299B2 (en) * 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
US7409473B2 (en) 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
US7849381B2 (en) 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US8667249B2 (en) 2004-12-22 2014-03-04 Intel Corporation Systems and methods exchanging data between processors through concurrent shared memory
US7212440B2 (en) 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
US7315917B2 (en) 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
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
EP1851771A2 (en) * 2005-02-11 2007-11-07 M-Systems Flash Disk Pioneers Ltd. Nand flash memory system architecture
US7627712B2 (en) * 2005-03-22 2009-12-01 Sigmatel, Inc. Method and system for managing multi-plane memory devices
KR100666174B1 (ko) 2005-04-27 2007-01-09 삼성전자주식회사 3-레벨 불휘발성 반도체 메모리 장치 및 이에 대한구동방법
US7788555B2 (en) * 2005-07-22 2010-08-31 Broadcom Corporation Using fractional sectors for mapping defects in disk drives
US7984084B2 (en) 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7669003B2 (en) 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7949845B2 (en) 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
TWI295771B (en) * 2005-08-08 2008-04-11 Rdc Semiconductor Co Ltd Faulty storage area self markup access control method and system
KR100739722B1 (ko) * 2005-08-20 2007-07-13 삼성전자주식회사 플래시 메모리 관리 방법 및 플래시 메모리 시스템
US7512864B2 (en) * 2005-09-30 2009-03-31 Josef Zeevi System and method of accessing non-volatile computer memory
US20070083697A1 (en) * 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US7509471B2 (en) 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7877540B2 (en) 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
JP2007164929A (ja) * 2005-12-16 2007-06-28 Fujitsu Ltd 記憶媒体管理装置、記憶媒体管理プログラム、記憶媒体管理方法
US20070143560A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with memory allocation for 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
WO2007073536A2 (en) * 2005-12-21 2007-06-28 Sandisk Corporation Non-volatile memories and methods with memory allocation for a directly mapped file storage system
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
EP1966700A2 (en) * 2005-12-21 2008-09-10 Nxp B.V. Non-volatile memory with block erasable locations
US20070143567A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for data alignment in non-volatile memories with a directly mapped file storage system
WO2007072313A2 (en) * 2005-12-22 2007-06-28 Nxp B.V. Memory with block-erasable locations and a linked chain of pointers to locate blocks with pointer information
KR100776112B1 (ko) 2006-02-15 2007-11-15 삼성전자주식회사 휴대단말기의 부팅 시간 단축방법
JP2007241539A (ja) * 2006-03-07 2007-09-20 Hitachi Systems & Services Ltd 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置
US7562180B2 (en) * 2006-03-28 2009-07-14 Nokia Corporation Method and device for reduced read latency of non-volatile memory
TWM304711U (en) * 2006-04-26 2007-01-11 Genesys Logic Inc Flash memory data access reliability enhancing device
US8060718B2 (en) * 2006-06-20 2011-11-15 International Business Machines Updating a memory to maintain even wear
JP2008004196A (ja) * 2006-06-23 2008-01-10 Toppan Printing Co Ltd 半導体メモリ装置
KR100758301B1 (ko) * 2006-08-04 2007-09-12 삼성전자주식회사 메모리 카드 및 그것의 데이터 저장 방법
KR20080017982A (ko) * 2006-08-23 2008-02-27 삼성전자주식회사 플래시 메모리 시스템 및 그 프로그램 방법
US7779056B2 (en) 2006-09-15 2010-08-17 Sandisk Corporation Managing a pool of update memory blocks based on each block's activity and data order
US7774392B2 (en) 2006-09-15 2010-08-10 Sandisk Corporation Non-volatile memory with management of a pool of update memory blocks based on each block's activity and data order
US7949846B2 (en) * 2006-11-30 2011-05-24 Teradata Us, Inc. Map shuffle-allocation map protection without extra I/O'S using minimal extra disk space
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
WO2008070812A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for data storage using progressive raid
US8074011B2 (en) * 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
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
US7515500B2 (en) * 2006-12-20 2009-04-07 Nokia Corporation Memory device performance enhancement through pre-erase mechanism
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
KR100869675B1 (ko) * 2007-02-05 2008-11-21 지인정보기술 주식회사 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법
US7716230B2 (en) * 2007-02-07 2010-05-11 International Business Machines Corporation Multi-dimensional serial containment process
US8370715B2 (en) * 2007-04-12 2013-02-05 International Business Machines Corporation Error checking addressable blocks in storage
US7689762B2 (en) * 2007-05-03 2010-03-30 Atmel Corporation Storage device wear leveling
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
EP2000913A1 (en) * 2007-06-08 2008-12-10 Axalto SA Method of managing flash memory allocation in an electronic token
TWI578330B (zh) * 2007-10-09 2017-04-11 A-Data Technology Co Ltd Solid state semiconductor storage device with temperature control function and control method thereof
KR101391881B1 (ko) * 2007-10-23 2014-05-07 삼성전자주식회사 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 및 읽기방법
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US20090198952A1 (en) * 2008-02-04 2009-08-06 Apple Inc Memory Mapping Architecture
JP4729062B2 (ja) * 2008-03-07 2011-07-20 株式会社東芝 メモリシステム
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US8140739B2 (en) * 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
CN101673245B (zh) * 2008-09-09 2016-02-03 株式会社东芝 包括存储器管理装置的信息处理装置和存储器管理方法
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
TWI380310B (en) * 2008-09-17 2012-12-21 Incomm Technologies Co Ltd Operating method of memory card
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
WO2010043245A1 (de) * 2008-10-13 2010-04-22 Hyperstone Gmbh Verfahren zur sicherung eines ankerblocks in flashspeichern
KR20110086725A (ko) * 2008-11-10 2011-07-29 퓨전-아이오, 인크. 솔리드-스테이트 저장장치의 고장을 예측하는 장치, 시스템 및 방법
US9063874B2 (en) 2008-11-10 2015-06-23 SanDisk Technologies, Inc. Apparatus, system, and method for wear management
US9170897B2 (en) 2012-05-29 2015-10-27 SanDisk Technologies, Inc. Apparatus, system, and method for managing solid-state storage reliability
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
KR101760144B1 (ko) 2009-01-05 2017-07-31 샌디스크 테크놀로지스 엘엘씨 비휘발성 메모리 및 기록 캐시를 분할하는 방법
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8700840B2 (en) 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8040744B2 (en) 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8412880B2 (en) * 2009-01-08 2013-04-02 Micron Technology, Inc. Memory system controller to manage wear leveling across a plurality of storage nodes
US8924661B1 (en) * 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
JP5384965B2 (ja) * 2009-02-23 2014-01-08 サトーホールディングス株式会社 プリンタ装置
TWI419169B (zh) * 2009-04-10 2013-12-11 Phison Electronics Corp 用於快閃記憶體的資料存取方法及其儲存系統與控制器
US8341501B2 (en) 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
CN102498475A (zh) * 2009-07-10 2012-06-13 柰米闪芯积体电路有限公司 高速高密度以nand为基础的双晶体管-nor闪存的新构成
US8176235B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Non-volatile memories with enhanced write performance and endurance
US8176234B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Multi-write coding of non-volatile memories
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US20110153912A1 (en) 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8468294B2 (en) 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
FR2954538B1 (fr) * 2009-12-23 2020-04-17 Thales Securisation de l'effacement d'une memoire de type flashprom.
FR2954572B1 (fr) * 2009-12-23 2020-04-17 Thales Procede de gestion de donnees tournantes.
US8429391B2 (en) * 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
US8543757B2 (en) 2010-06-23 2013-09-24 Sandisk Technologies Inc. Techniques of maintaining logical to physical mapping information in non-volatile memory systems
US8417876B2 (en) 2010-06-23 2013-04-09 Sandisk Technologies Inc. Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems
US20120008414A1 (en) * 2010-07-06 2012-01-12 Michael Katz Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8832507B2 (en) * 2010-08-23 2014-09-09 Apple Inc. Systems and methods for generating dynamic super blocks
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
JP5221699B2 (ja) * 2011-03-23 2013-06-26 株式会社東芝 半導体記憶装置
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
US9177609B2 (en) 2011-06-30 2015-11-03 Sandisk Technologies Inc. Smart bridge for memory core
US9009436B2 (en) 2011-08-09 2015-04-14 SanDisk Technologies, Inc. Flushed data alignment with physical structures
CN102298555B (zh) * 2011-08-22 2016-04-27 宜兴市华星特种陶瓷科技有限公司 基于nand技术的模块化闪存管理系统
US8874935B2 (en) 2011-08-30 2014-10-28 Microsoft Corporation Sector map-based rapid data encryption policy compliance
US9208070B2 (en) 2011-12-20 2015-12-08 Sandisk Technologies Inc. Wear leveling of multiple memory devices
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
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
US8842473B2 (en) 2012-03-15 2014-09-23 Sandisk Technologies Inc. Techniques for accessing column selecting shift register with skipped entries in non-volatile memories
US8972799B1 (en) 2012-03-29 2015-03-03 Amazon Technologies, Inc. Variable drive diagnostics
US8719320B1 (en) 2012-03-29 2014-05-06 Amazon Technologies, Inc. Server-side, variable drive health determination
US9792192B1 (en) 2012-03-29 2017-10-17 Amazon Technologies, Inc. Client-side, variable drive health determination
US9037921B1 (en) * 2012-03-29 2015-05-19 Amazon Technologies, Inc. Variable drive health determination and data placement
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US10445229B1 (en) * 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
CN103197943A (zh) * 2013-04-11 2013-07-10 航天科工深圳(集团)有限公司 一种单片机在线升级方法和系统
US20140344570A1 (en) 2013-05-20 2014-11-20 Microsoft Corporation Data Protection For Organizations On Computing Devices
US9235470B2 (en) 2013-10-03 2016-01-12 SanDisk Technologies, Inc. Adaptive EPWR (enhanced post write read) scheduling
US9436823B1 (en) * 2013-12-17 2016-09-06 Google Inc. System and method for detecting malicious code
US10615967B2 (en) 2014-03-20 2020-04-07 Microsoft Technology Licensing, Llc Rapid data protection for storage devices
US9804922B2 (en) 2014-07-21 2017-10-31 Sandisk Technologies Llc Partial bad block detection and re-use using EPWR for block based architectures
US9825945B2 (en) 2014-09-09 2017-11-21 Microsoft Technology Licensing, Llc Preserving data protection with policy
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9853812B2 (en) 2014-09-17 2017-12-26 Microsoft Technology Licensing, Llc Secure key management for roaming protected content
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
US9900295B2 (en) 2014-11-05 2018-02-20 Microsoft Technology Licensing, Llc Roaming content wipe actions across devices
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US10248418B2 (en) 2015-06-30 2019-04-02 International Business Machines Corporation Cleared memory indicator
US10635307B2 (en) 2015-06-30 2020-04-28 International Business Machines Corporation Memory state indicator
US9853820B2 (en) 2015-06-30 2017-12-26 Microsoft Technology Licensing, Llc Intelligent deletion of revoked data
US10884945B2 (en) 2015-06-30 2021-01-05 International Business Machines Corporation Memory state indicator check operations
US9900325B2 (en) 2015-10-09 2018-02-20 Microsoft Technology Licensing, Llc Passive encryption of organization data
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US20170344262A1 (en) * 2016-05-25 2017-11-30 SK Hynix Inc. Data processing system and method for operating the same
US10120583B2 (en) * 2016-06-07 2018-11-06 Facebook, Inc. Performance penalty avoidance for solid state drive
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
KR102270103B1 (ko) * 2017-07-11 2021-06-28 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10416899B2 (en) * 2018-02-13 2019-09-17 Tesla, Inc. Systems and methods for low latency hardware memory management
US11372812B2 (en) * 2018-10-08 2022-06-28 Silicon Motion, Inc. Mobile device and method capable of earlier determining that a number of files in a directory of an external connected storage device is about to full
CN111414248B (zh) * 2019-01-04 2023-03-21 阿里巴巴集团控股有限公司 内存管理方法、装置及计算设备
US11847333B2 (en) * 2019-07-31 2023-12-19 EMC IP Holding Company, LLC System and method for sub-block deduplication with search for identical sectors inside a candidate block
FR3101974B1 (fr) * 2019-10-15 2021-09-10 Continental Automotive Procédé d’aide à l’identification de secteurs vierges d’une mémoire non-volatile d’un microcontrôleur
CN111061649B (zh) * 2019-10-28 2023-09-29 宁波三星智能电气有限公司 一种存储器的存储空间自适应分配方法
US11403020B2 (en) * 2019-10-31 2022-08-02 Hewlett Packard Enterprise Development Lp Increasing sizes of buckets of a fingerprint index
US11922011B2 (en) * 2021-09-01 2024-03-05 Micron Technology, Inc. Virtual management unit scheme for two-pass programming in a memory sub-system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0392895B1 (en) * 1989-04-13 1995-12-13 Sundisk Corporation Flash EEprom system
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
JP3407317B2 (ja) * 1991-11-28 2003-05-19 株式会社日立製作所 フラッシュメモリを使用した記憶装置
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JPH08137634A (ja) * 1994-11-09 1996-05-31 Mitsubishi Electric Corp フラッシュディスクカード
JP3706167B2 (ja) * 1995-02-16 2005-10-12 株式会社ルネサステクノロジ 半導体ディスク装置
US6081878A (en) 1997-03-31 2000-06-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
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
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
GB2291990A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Flash-memory management system
JPH09212411A (ja) * 1996-02-06 1997-08-15 Tokyo Electron Ltd メモリシステム
GB9606928D0 (en) * 1996-04-02 1996-06-05 Memory Corp Plc Memory devices
US5896393A (en) * 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
US5745418A (en) * 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
JP3072722B2 (ja) * 1997-06-20 2000-08-07 ソニー株式会社 フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体
JPH11212873A (ja) * 1998-01-27 1999-08-06 Seiko Epson Corp コンピューターシステムの操作方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI395228B (zh) * 2004-12-24 2013-05-01 Spansion Llc 施加偏壓至儲存元件之方法與裝置
TWI393005B (zh) * 2006-01-30 2013-04-11 Ibm 用於在具有多重一致性定義域之資料處理系統中處置清空操作之資料處理系統、快取系統以及方法
TWI383392B (zh) * 2007-06-18 2013-01-21 Micron Technology Inc 用於在一非揮發固態記憶體及其固態記憶體裝置中程式化速率判定及控制的方法
TWI413984B (zh) * 2008-10-16 2013-11-01 Silicon Motion Inc 快閃記憶體裝置以及資料更新方法
TWI421871B (zh) * 2009-11-27 2014-01-01 Macronix Int Co Ltd 定址一記憶積體電路之方法與裝置
TWI553480B (zh) * 2011-08-01 2016-10-11 Toshiba Kk And a memory means for specifying the size of the divided portion of the written data
US9323460B2 (en) 2013-03-14 2016-04-26 Microsoft Technology Licensing, Llc Assigning priorities to data for hybrid drives
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives

Also Published As

Publication number Publication date
DE60019903T2 (de) 2006-03-30
JP2002537596A (ja) 2002-11-05
GB9903490D0 (en) 1999-04-07
US6725321B1 (en) 2004-04-20
KR20020009564A (ko) 2002-02-01
DE60019903D1 (de) 2005-06-09
JP5011498B2 (ja) 2012-08-29
EP1157328B1 (en) 2005-05-04
WO2000049488A1 (en) 2000-08-24
KR100644805B1 (ko) 2006-11-13
EP1157328A1 (en) 2001-11-28

Similar Documents

Publication Publication Date Title
TWI244092B (en) Memory system
KR101076830B1 (ko) 비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및 판독작동
KR101573370B1 (ko) 비휘발성 매체에 데이터를 저장하기 위한 방법 및 시스템
US8259498B2 (en) Continuous address space in non-volatile-memories (NVM) using efficient management methods for array deficiencies
US6865658B2 (en) Nonvolatile data management system using data segments and link information
KR100847506B1 (ko) 기억 장치, 메모리 관리 방법 및 프로그램
KR960004738B1 (ko) 불휘발성 반도체 메모리 장치
JP3682256B2 (ja) ディスクアレイ装置及び同装置におけるパリティ処理方法
EP2034414A1 (en) Semiconductor storage device and method of controlling semiconductor storage device
US20120030411A1 (en) Data protecting method, memory controller and portable memory storage apparatus
JPH08137634A (ja) フラッシュディスクカード
TW201931366A (zh) 資料儲存裝置以及非揮發式記憶體操作方法
JP2003167690A (ja) ディスクアレイ装置及び同装置におけるデータ復旧方法
JP6696280B2 (ja) 情報処理装置、raid制御方法、およびraid制御プログラム
JP4460967B2 (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
JP2007011872A (ja) メモリカードとその制御方法
CN111221750A (zh) 固态储存装置的数据处理方法
CN104166558B (zh) 固件码载入方法、存储器控制器与存储器存储装置
JP2007018528A (ja) メモリ装置、ファイル管理方法及び記録再生装置

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent