TWI364661B - Access methods for a flash memory and memory devices - Google Patents

Access methods for a flash memory and memory devices Download PDF

Info

Publication number
TWI364661B
TWI364661B TW097136853A TW97136853A TWI364661B TW I364661 B TWI364661 B TW I364661B TW 097136853 A TW097136853 A TW 097136853A TW 97136853 A TW97136853 A TW 97136853A TW I364661 B TWI364661 B TW I364661B
Authority
TW
Taiwan
Prior art keywords
block
data
spare
area
memory
Prior art date
Application number
TW097136853A
Other languages
English (en)
Other versions
TW201013401A (en
Inventor
Chi Hsiang Hung
Original Assignee
Silicon Motion 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 Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to TW097136853A priority Critical patent/TWI364661B/zh
Priority to US12/260,139 priority patent/US8448046B2/en
Publication of TW201013401A publication Critical patent/TW201013401A/zh
Application granted granted Critical
Publication of TWI364661B publication Critical patent/TWI364661B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • 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/7211Wear leveling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Description

丄304001 九、發明說明: 【發明所屬之技術領域】 本發明係關於快閃記憶體,特別係關於一種平均地抹 寫快閃記憶體之方法與裝置。 【先前技#ί】 快閃記憶體係為-種可以被電抹除並且重新寫入的非 失Id憶體,並且主要係制在記憶卡與USB快閃隨身 碟結藉以作為一般的儲存與電腦裝置和數位產品間的資料 2運記憶體的成本遠小於eeprqm =的記嶋置。舉例而言,快閃記憶體係應= 人=助理(PDA)、可攜式電腦、數位音頻播放器、數位 相機與行動電話中。 塊且體係包括眾多的記憶區塊,並且每一記憶區 早Μ行採除’而以儲存頁面為單位進行寫 、口之’ i*快閃記憶體之資料被抹除時 體 區塊:的所有儲存頁面都必須要被—起抹除1 快閃貝科至快閃記憶體+時,該資料可以被寫入 ==一記憶區塊中一特定儲存頁面,。此外,資 =可以被寫人至未儲存資料的儲存頁面或已抹除的^ 然而,快閃記憶體中每個記憶區 -定次數。當-記憶區塊之抹除次數 SMI-08-009/9031-A41718-TW/Final 5 記憶區塊將無法被正 資料時將可能發生,誤f入,並且由該記憶區塊讀取出 命而言,平均地使用曰=,對快閃記憶體之使用壽 抹寫方法並益法有效地塊是十分重要的’但傳統平均 可以古:去有效地達成此目的。因此,需要一種方4 以有效且平均地制快閃記㈣中之記憶區塊。 【發明内容】 本每明係提供一種快聞$ 體劃分為一資料區以及'體之存取方法’快閃記憶 區塊,備用區包含複數備’上料區包含複數個資料 據來自-主機之-塊,存取方法包括下步驟根 幾之5貝取扣令,由快閃記憶體中一第一資解 用V省:取出—對應資料’對應資料中含有-檢查碼;利 -既定檢查;當既定檢查之結果 、有錯誤务生呀,判斷錯誤是否可被校正;當錯 破校正時’將第―㈣區塊之清除次數增加—既定值^、 本發明亦提供-種快閃記憶體之存取方法,其中 分為—資料區以及一備用區’資料區包含複數個 貝料區塊’制區包含複數備㈣塊,該存取方法 ,步,據來自-主機之—讀取指令,由快閃記憶體中一 弟-貧料區塊中讀取出-對應資料,對應資料中含有一檢 查碼’ ·利用檢查碼對該對應資料進行—既定檢查;當既^ 檢查之結果顯示有—錯誤發生時,判斷錯誤是否可被校 正;當錯誤可被校正時’將第一資料區塊之清除次數增加 -既定值;接收到來自該主機之一寫入指令時,接收對應 於一邏輯位址之一資料,其中邏輯位址係鏈結至資料區 之一第二貧料區塊;於備用區中之選擇一第一備用區塊; SMI-08-009/9031-Α41718-TW/Final 1364661 =及於第一備用區塊之清除次超過一預設值時,並且資料 具二清除次數為。之一第三資料區塊時,則將儲存於 弟二貝料區塊之一資料寫入至第一備用區塊中, 映射第三資料區塊與第一備用區塊。 重新 本發明亦提供一種記憶體裝置,包括一快閃記憶體, ,括了資料區以及—備用區,其中資料區包括複數資料塊 區,並且備用區包括複數備用區塊;以及一控制器,根據 主機之—讀取指令,由快閃記憶體中—對應資料區 斟庙項取出含有一檢查碼之一對應資料,並利用檢查碼對 對應貝枓進行-既定檢查,當該既定檢查之結果顯示有一 ’曰誤發生時’控制$則判斷錯誤是否可被校正,並於錯誤 可被校正時,將對應資料區塊之清除次數增加一既定值。 ^讓本發明之上述和其他目的、特徵、和優點能更 重,下文特舉一較佳實施例,並配合所附圖示,作 詳細說明如下: 【實施方式】 第1圖係為本發明之—記憶體裝置之—示意圖。如圖 不’記憶體裳置40包括一記憶體控制$ 41以及一非 快閃記憶體42。記憶體控制器41係包括一介面邏 一一揮發性之緩衝記憶體412、一控制邏輯414以及 傳二;器416。介面邏輯410係、用以與-主機(未圖示) =^科,而緩衝記憶體412則用以暫存正在寫入或正讀 42 ^ 、&制邏輯414和微處理器416係相互連接,並且受控 SMI-08-009/9Q31 ^A41718-TW/Final 7 1364661 於微控制器416。舉例而言,緩衝記憶體412係可為一隨 機存取記憶體(RAM),但不限定於此。快閃記憶體42係割 分成資料區422與備用區424。舉例而言,資料區422包 含「κ」個存有資料的資料區塊Β〇〜Βκ ι,而備用區似包 S ^ (N-K)j d Bk-Bk.! 5 Bk-Bn.j 可以直接被寫人’而存有資料的㈣區塊b。〜Bki只有於 清除之後方能再覆寫。 ^ ' 第2圖係為本發明之資料區塊與備用區塊之映射表。 如圖所示’㈣區塊映射表50係用以顯示邏輯位址 0〜LAw與貧料區塊B()〜Bk i之對應關係。此外 之清除次數,而備: 塊映射表52用以記錄備用區塊與1清除十數 於初始情況下,邏輯位址LA〇係鍵結至區塊^之實位 位址LA1係鏈結至區塊B1之實體位址、邏輯位址 2係=至區塊B2之實體位址,依此_。備 Βκ〜知之貫體位址則不鍵結至邏輯位址。 f 區塊之清除次數為〇。 對應於各 第3圖係為本發明之快閃記憶體存取 其動作說明如下。首先,於步驟證中,接收 機(未圖示)之-指令。接著於步侧中,二;:主 存地令。若所接收到之指令為讀取 寫^ S306;相反地,若所接收到之指 :則進订步驟 步驟S316。於步驟S3〇6中,斛蛀θ 7 k,則進行 由於所接收到之指令為讀取
SMI-08-009/9031-A41718-TW/FinaI 1364661 指令,所以記憶體控制器41會根據該指令由快閃記憶體 42中一對應資料區塊中讀取出所要的資料。舉例而言,讀 取出的資料會含有一檢查碼,例如錯誤校正碼(Error Correction Code ; ECC)。,接著,於步驟S308中,記憶體控 制器41會利用該檢查碼對所讀取出的資料進行一既定檢 查,例如錯誤校正碼(Error Correction Code ; ECC)檢查, 並根據既定檢查之結果得知是否有錯誤發生。若沒有錯誤 發生,則進行步驟S309,記憶體控制器41會直接將所讀 取出之資料回傳給主機。相反地,若既定檢查之結果顯示 有一錯誤發生時,則執行步驟S310。 於步驟S310中,記憶體控制器41接著判斷該錯誤是 否為可被校正。若該錯誤無法被校正時,則進行步驟 S312。相反地,若該錯誤可以被校正時,則進行步驟S314。 於步驟S312中,因為該錯誤無法被校正,故記憶體控制器 41則會將該對應資料區塊標記為一故障的區塊。於步驟 S314中,因為該錯誤可以被校正,為了要減少該對應資料 區塊被使用的機會,因此記憶體控制器41會將該對應資料 區塊之清除次數增加一既定值。一般而言,該既定值係大 於2。舉例而言,該既定值可為10、20、50、100、150或 240,但不限定於此。除此之外,記憶體控制器41亦會將 校正後之資料回傳給主機。於步驟S316中,由於所接收到 之指令為寫入指令,記憶體控制器41則執行一寫入程序, 以便將來自主機之新資料寫入快閃記憶體42中,而該寫入 程序將於後面詳加說明。 SMI-08-009/9031-A41718-TW/Final 9 1364661 •. 第4圖係表示第3圖中寫入程序之步驟流程圖。於+ 驟S402中,於接收到寫入指令之後,記憶體控制器41 ^ 主機接收對應於二第一邏輯位址所鏈結之一第 > 資料區塊 的資料?並暫時儲存該資料於緩衝記.憶體412中。接著·,. 於步驟S404中記憶體控制器41會判斷是否需要清除一 已使用區塊。若需要清除已使用區塊,則進行步驟S4〇6。 反之,則進行步驟S408。一般而言,資料區422中係配置 φ 有複數檔案配置表(file allocation table ; FAT)區塊、母區塊 (mother block)以及子區塊⑽仙block) ’當檔案配置表(j?AT) 區塊、母區塊或子區塊的配對數已經滿了,則表示需要清 除已使用區塊。步驟S406 ’將已使用區塊清除,並將其清 除次數加1 ’並且回收至備用區424之序列尾端。換言之, 記憶體控制器41係於步驟S408前,對資料區422中之該 等資料區塊進行資料整合。 於步驟S408中,記憶體控制器41會於備用區424中 φ 選擇一用以寫入(或儲存)資料之備用區塊。舉例而言,記 憶體控制器41係於備用區424選擇位於序列頂端的備用區 塊。隨後,於步驟S410中,記憶體控制器41則判斷所選 擇之備用區塊之清除次數是否到達一預設值。舉例而言, 預設值係可為400,但不限定於此。若所選擇之備用區塊 的清除次數少於該預設值,則進行步驟S412。反之,若所 選擇之備用區塊的清除次數到達該預設值,則進行步驟 S414。 於步驟S412中,記憶體控制器41則會將來自主機對 SMI-08-009/9031-A41718-TW/Final 10 1364661 應於第一資料區塊之資料寫入所選擇之備用區塊中。接 著,清除第一資料區塊並將該第一資料區塊回收至備用區 424之序列尾端。此外,記憶體控制器41會重新映射所選 擇之備用區塊的實體位址.,再重回到步驟S4Q2。舉例而 言,記憶體控制器41係將所選擇之備用區塊的實體位址鏈 結至第一邏輯位址。 當所選擇之備用區塊的清除次數達到預設值(例如400) 時,於步驟S414中記憶體控制器41則會在資料區422中 搜尋是否有清除次數為〇的資料區塊。若記憶體控制器41 搜尋到一清除次數為〇之一第二資料區塊,則進行步驟 S416。反之,當資料區422中不存在清除次數為0的資料 區塊時,則進行步驟S418。於步驟S416中,記憶體控制 器41會執行一平均抹寫程序。舉例而言,記憶體控制器 41會將儲存於第二資料區塊中之資料寫入所選擇之備用 區塊中。然後,記憶體控制器41會清除第二資料區塊,並 將該第二資料區塊回收至備用區424之序列尾端。於步驟 S416執行後,再回到步驟S408,以進一步處理對應於一第 一邏輯位址所鏈結之一第一資料區塊的資料。若下一個備 用區塊之清除次數少於400時,則進行步驟S412,用以將 對應於一第一邏輯位址所鏈結之一第一資料區塊的資料寫 入選擇到之備用區塊中。 步驟S418中,記憶體控制器41會將清除次數到達預 設值(例如400)之備用區塊的實體位址暫存於緩衝記憶體 中,並將所有區塊之清除次數減1後,回到步驟S408,以 SMI-08-009/9031-A41718-TW/Final 11 1364661 進一步處理對應於對應於一第一邏輯位址所鏈結之一第一 資料區塊的資料。假設下一個選擇之備用區塊(第二備用區 塊)的清除次數少於400時,則進行步驟S412,將對應於 第一邏輯位址所鏈結之第一資料區塊的資料寫入至第二備 用區塊。在對應於第一邏輯位址所鏈結之第一資料區塊的 資料被寫入第二備用區塊後,記憶體控制器41會再度搜尋 資料區422中搜尋是否有清除次數為0的資料區塊。若此 時該等資料區塊中之一者的清除次數為〇時,記憶體控制 器41則會將儲存於清除次數為0之資料區塊中的資料寫入 清除次數超過預設值之該備用區塊中。然後,記憶體控制 器41將清除次數為0之資料區塊清除,並將其回收至備用 區424之序列尾端。 若不幸地,此時資料區422中仍然不存在清除次數為 0的資料區塊,記憶體控制器41則會再度將所有區塊之清 除次數減1,並於下一筆資料被寫入後,再搜尋資料區422 中搜尋是否有清除次數為〇的資料區塊,直到該等資料區 塊中之一者的清除次數為〇時,由記憶體控制器41選擇該 資料區塊,並將該資料區塊所對應之邏輯位址鏈結至清除 次數到達預設值之備用區塊,再將該資料區塊回收至備用 區424之序列尾端。舉例而言,記憶體控制器41係於執行 完步驟S412之後,再度搜尋資料區422中搜尋是否有清除 次數為0的資料區塊。若該等資料區塊中之一者的清除次 數為0時,由記憶體控制器41選擇該資料區塊,並將該資 料區塊所對應之邏輯位址鏈結至清除次數到達預設值之備 SMI-08-009/9031-A41718-TW/Final 12 1364661 用區塊。接著,將該資料區塊回收至備用區424之序列的 尾端,再回到步驟S402。相反地,若仍然沒有清除次數為 0的資料區塊,則直接回到步驟S402。 於另一實施例中,當資料區.422中不存在清除次數為 0的資料區塊時,記憶體控制器41則會將所有區.塊之清除 次數減1,直到該等資料區塊中之一者的清除次數為0時, 由記憶體控制器41選擇該資料區塊,並執行步驟S416。 第5A〜5D圖係為本發明之快閃記憶體之存取示意圖, 用以說明前述寫入程序。如第5A圖中所示,資料區422 中之各個資料區塊皆存有資料,而備用區424中之各個備 用區塊則皆是空的(即未填充資料)。一方面,邏輯位址LA〇 鏈結至清除次數為50之區塊B〇,邏輯位址匕入丨鏈結至清 除次數為70之資料區塊Bi,邏輯位址LA2鏈結至清除次 數為100之資料區塊B2,依此類推。另一方面,備用區塊 映射表52顯示備用區塊Βκ之清除次數為100,備用區塊 Βκ+ι之清除次數為200 ’備用區塊Βκ+2之清除次數為400 ’ 依此類推。 於接收到寫入指令之後,記憶體控制器41自主機接收 對應於邏輯位址LAi所鏈結之資料區塊I的資料,並暫時 儲存該資料於緩衝記憶體412中。隨後記憶體控制器41 會判斷是否需要清除一已使用區塊,若是則將該已使用區 塊清除,並將其清除次數加1,並且回收至備用區424之 序列尾端。前述判斷、清除與回收步驟是可選擇性的,亦 可以省略不執行。 SMI-08-009/9031-A41718-TW/Final 13 1364661 * 接著’ #丨造體控制裔41會於備用區424中選擇位於序 列頂端之備用區塊Βκ,並判斷備用區塊bk之清除次數是 否超過一預設值(例如400”由於備用區塊Βκ之清除次數 100少於預設值(400),故記憶體控制器41相應地重新映射 資料區塊心與備用區塊Βκ間的關係。換言之’記憶體控 制器41會將來自主機對應於資料區塊Βι之資料寫入該^ 用區塊Βκ中,並將邏輯位址LAi鏈結至備用區塊Βκ之實 • 體位址。接著,記憶體控制器41會清除資料區塊Βι,二 且將資料區塊匕回收至備用區424之序列尾端。如第5B 圖中所示,區塊Βκ會被記錄於資料區422中,而區塊b 則會記錄於備用區424中。要注意的是,區塊心之清除次 1 數71亦被記錄至映射表52中。 接下來,若記憶體控制器41自主機接收對應於邏輯位 址L A2所鏈結之資料區塊B 2的資料,並暫時儲存該資料於 緩衝記憶體412中。隨後記憶體控制器41會判斷是否需要 • 冑除已使龍塊’若是則將該已使用區塊清除,並將其清 除次數加1’並且回收至備用區424之序列的尾端。前二 判斷、清除與回收步驟是可選擇性的,亦可以省略不執行。 接著,記憶體控制器41會於備用區424 +選擇位於序 列頂端之備用區塊Βκ+1,並判斷備用區塊Βκ+ι之清除次數 疋否超過400。由於備用區塊Βκ之清除次數2⑻亦少於 4 〇 〇 ’故記憶體控制器4〗相應地重新映射資料區塊β 2與備 用區塊Βκ+1間的關係。換言之,記憶體控制器41會將來 自主機對應於資料區塊Β2之資料寫人該備用區塊曰 SMI-08-009/9031-Α41718-TW/Final 14 1364661 中,並將邏輯位址LA2鏈結至備用區塊Βκ+1之實體位址。 隨後記憶體控制器41會清除資料區塊B2,並且將資料區 塊B2回收至備用區424之序列尾端。如第5C圖中所示, 區塊Βκ+1會記錄於資料區422中,而區塊B2則.記錄於備 用區424中。要注意的是,區塊B2之清除次數101亦被記 錄至映射表52中。 接下來,若記憶體控制器41自主機接收對應於邏輯位 址LA3所鏈結之資料區塊B3的資料,並暫時儲存該資料於 缓衝記憶體412中。隨後記憶體控制器41會判斷是否需要 清除已使用區塊,若是則將該已使用區塊清除,並將其清 除次數加1,並且回收至備用區424之序列尾端。前述判 斷、清除與回收步驟是可選擇性的,亦可以省略不執行。 接著,記憶體控制器41會於備用區424中選擇位於序 列頂端之備用區塊Βκ+2 ’並判斷備用區塊Βκ+2之清除次數 是否超過400。由於備用區塊Βκ+2之清除次數已經達到預 設值400,記憶體控制器41則會在資料區422中搜尋是否 有清除次數為〇的資料區塊。由於資料區422中資料區塊 Bk-2之清除次數為0,於是記憶體控制器41會選擇資料區 422中之資料區塊Βκ_2。隨後,記憶體控制器41將資料區 塊Βκ_2重新映射至備用區塊Βκ+2。換言之,記憶體控制器 41會讀取儲存於資料區塊Bk_2中資料,並將所讀取到的資 料儲存到備用區塊Βκ+2中。同時,記憶體控制器41會將 邏輯位址LA(k_2)键結至備用區塊Βκ+2之貫體位址。此外’ 記憶體控制器41亦會清除資料區塊Βκ_2,並將資料區塊 SMI-08-009/9031-Α41718-TW/Final 15 丄:50400丄 η至備用區424之序列尾端。如第犯圖中所示,區 會記錄於資料區422中並鏈結至邏輯位址lak2, 而&塊βκ·2則會記錄於備用區424中。要注意的是,區塊 ΒΚ_2之清除次數為1亦會被記錄至映.射表52中。 在將資料區塊Βκ·2重新映射至備賴塊+ 憶體控制器41則合於備用F w K2您俊 只J曰於備用£ 424中再選擇一備用區塊,以 便於其中寫人/儲存資料。此時記憶體控㈣Μ會於備用 區424中選擇位於序列頂端之備用區塊BK+3,並判斷備用 區塊Βκ+3之清除次數是否超過預設值·。由於備用區塊 Βκ+3之清除次數80少於400,故記憶體控制器41相應地 重新映射資料區塊Β3與備用區塊〜+3間的關係。換言之, 記憶體控制器41會將來自主機對應於資料區塊I之資料 ,入η亥備用區塊βκ+3中。隨後’記憶體控制器41會將邏 輯位址LA3鏈結至備用區塊Βκ+3之實體位址,並清除資料 區塊Β3 ’且將資料區塊Β3回收至備用區424之序列的尾 知如第5Ε圖中所示’區塊Βκ+3會記錄於資料區422中, 而區塊&則會記錄於備用區似卜要注意的是,區塊 Β3之清除次數91亦被記錄至映射表52中。 第6A=6C圖係為本發明之快閃記憶體之存取示意圖, 用以5兒明當貢料區中搜尋不到清除次數為〇的資料區塊時 之κ施例。如第6A圖中所示,資料區422中之各個資 料區塊皆存有資料,而備用區424巾之各備龍塊則皆是 二的(即未填充資料”邏輯位址LA〇鏈結至清除次數為5〇 之貢料區塊bq,邏輯位址LAl鏈結至清除次數為ι〇〇之資 SMI-08-009/9031-A41718-TW/Final 16 1364661 料區塊Βκ ’邏輯位址LA:鍵結至清除次數為200之貢料區 塊Βκ+r依此類推。備用區塊映射表52顯示備用區塊Βκ+2 之清除次數為400,備用區塊Βκ+3之清除次數為80,備用 區塊Βκ+4.之清除次數為35 ’ ·依此類推。 於接收到寫入指令之後,記憶體控制器41自主機接收. 對應於邏輯位址LA3所鏈結之資料區塊Β3的資料,並暫時 儲存該資料於緩衝記憶體412中。隨後記憶體控制器41 會於備用區424中選擇位於序列頂端之備用區塊Βκ+2,並 判斷備用區塊Βκ+2之清除次數是否超過預設值(400)。因為 備用區塊Βκ+2之清除次數已經達到預設值400,記憶體控 制器41則會在資料區422中搜尋是否有清除次數為0的資 料區塊。再者’由於貢料區422並沒有清除次數為0的貢 料區塊,故記憶體控制器41會將資料區422與備用區424 中所有區塊的清除次數都減1。 因為在減1之後資料區塊Βκ_2的清除次數由1變成了 0,故記憶體控制器41會選擇資料區422中之資料區塊 Βκ_2。隨後,記憶體控制器41將資料區塊Βκ_2重新映射至 備用區塊Βκ+2。換言之,記憶體控制器41會讀取儲存於資 料區塊Βκ_2中資料,並將所讀取到的資料儲存到備用區塊 Βκ+2中。同時,記憶體控制器41會將邏輯位址LAK_2鏈結 至備用區塊Βκ+2之實體位址。此外,記憶體控制器41亦 會清除貢料區塊Βκ-2,並將貧料區塊Βκ-2回收至備用區424 之序列尾端。如第6B圖中所不’區塊Βκ+2會記錄於資料 區422中並鏈結至邏輯位址LAK_2,而區塊Βκ_2則會記錄 SMI-08-009/9031-Α41718-TW/Final 17 1364661 於備用區424中。要注意的是,區塊BK_2之清除次數為1 亦會被記錄至映射表5 2中。 在將資料區塊BK_2重新映射至備用區塊Bk+2之後,記 憶體控制器.41則會於備用區424中再選擇一備用區塊,以 便於其中寫入/儲存資料。此時記憶體控制器41會於備用 區424中選擇位於序列頂端之備用區塊Βκ+3,並判斷備用 區塊Βκ+3之清除次數是否超過預設值400。由於備用區塊 Βκ+3之清除次數79少於400,故記憶體控制器41相應地 重新映射資料區塊Β3與備用區塊Βκ+3間的關係。換言之, 記憶體控制器41會將來自主機對應於資料區塊Β3之資料 寫入該備用區塊Βκ+3中,並將邏輯位址LA3鏈結至備用區 塊Βκ+3之實體位址。隨後記憶體控制器41會清除資料區 塊B3,並且將資料區塊B3回收至備用區424之序列的尾 端。如第6C圖中所示,區塊Βκ+3會記錄於資料區422中, 而區塊B3則會記錄於備用區424中。要注意的是’區塊 B3之清除次數90亦被記錄至映射表52中。 第7A〜7D圖係為本發明之快閃記憶體之存取示意圖, 用以說明當資料區中搜尋不到清除次數為0的資料區塊時 之另一實施例。 如第7A圖中所示,資料區422中之各個資料區塊皆存 有資料,而備用區424中之各備用區塊則皆是空的(即未填 充資料)。邏輯位址LA〇鏈結至清除次數為50之資料區塊 B〇 ,邏輯位址LA!鍵結至清除次數為100之貢料區塊Βκ, 邏輯位址LA2鏈結至清除次數為200之資料區塊Βκ+1,依 SMI-08-009/9031-Α41718-TW/Final 18 1364661 此類推。另一方面,備用區塊映射表52顯示備用區塊Bk+2 之清除次數為400,備用區塊Bk+3之清除次數為80,備用 區塊Βκ+4-之清除次數為35,依此類推。 於接收到寫入指令之後,記憶體控制器41自主機接收 對應於邏輯位址LA3所鏈結之資料區塊B3的資料,並暫時 儲存該資料於緩衝記憶體412中。隨後記憶體控制器41 會於備用區424中選擇位於序列頂端之備用區塊Βκ+2,並 判斷備用區塊Βκ+2之清除次數是否超過預設值(400)。因為 備用區塊Βκ+2之清除次數已經達到預設值400,記憶體控 制器41則會在資料區422中搜尋是否有清除次數為0的資 料區塊。再者’由於貢料區422並沒有清除次數為0的貢 料區塊,故記憶體控制器41將備用區塊Βκ+2之實體位址 暫存於緩衝記憶體412中,並將資料區422與備用區424 中所有區塊的清除次數都減1。如第7B圖中所示,資料區 塊B〇之清除次數由50變為49,資料區塊Βκ之清除次數 由100變為99,資料區塊Βκ+1之清除次數由200變為199, 依此類推。 接著,記憶體控制器41則會於備用區424中再選擇位 於序列頂端之備用區塊Bk+3,並判斷備用區塊Bk+3之清除 次數是否超過預設值400。由於備用區塊Βκ+3之清除次數 79少於400,故記憶體控制器41相應地重新映射資料區塊 B3與備用區塊Βκ+3間的關係。換言之,記憶體控制器41 會將來自主機對應於資料區塊B3之資料寫入該備用區塊 Bk+3中。隨後,記憶體控制器41會將邏輯位址LA3鏈結至 SMI-08-009/9031-A41718-TW/Final 19 1364661 備用區塊Βκ+3之貫體位址’並清除貢料區塊B3 ’且將肓料 ,區塊B3回收至備用區424之序列的尾端。如第7C圖中所 不’區塊Βκ>3會記錄於育料區422中,而區塊B3則會記 錄於備用區424中。要注意的是,區塊B3之清除次數90 亦被記錄至映射表52中。 .當記憶體控制器41自主機接收對應於邏輯位址LA4· 所鏈結之資料區塊B4的資料,並暫時儲存該資料於緩衝記 憶體412中。隨後記憶體控制器41會於備用區424中選擇 位於序列頂端之備用區塊Βκ+4,並判斷備用區塊Βκ+4之清 除次數是否超過400。由於備用區塊Βκ+4之清除次數34 亦少於400,故記憶體控制器41相應地重新映射資料區塊 B4與備用區塊Βκ+4間的關係。換言之,記憶體控制器41 會將來自主機對應於資料區塊B4之資料寫入該備用區塊 Βκ+4中’並將邏輯位址LA4鍵結至備用區塊Βκ+4之貫體位 址。隨後記憶體控制器41會清除資料區塊Β4,且將資料 區塊Β4回收至備用區424之序列尾端。如第7D圖中所示, 區塊Βκ+4會記錄於貢料區422中’而區塊Β4則記錄於備 用區424中。要注意的是,區塊Β4之清除次數10亦被記 錄至映射表52中。 因為在減1之後資料區塊Βκ_2的清除次數由1變成了 0,故記憶體控制器41會選擇資料區422中之資料區塊 Βκ-2,並且將資料區塊Βκ-2重新映射至備用區塊Βκ+2。換 言之,記憶體控制器41會讀取儲存於資料區塊Βκ_2中資 料,並將所讀取到的資料儲存到備用區塊Βκ+2中。同時, SMI-08-009/9031-Α41718-TW/Final 20 瑪 4661 纪,體控制器41會將邏輯位址LAK_2鏈結至備用區塊6以2 之實體位址。此外,記憶體控制器41亦會清除資料區塊 Βκ—2’並將資料區塊By回收至備用區424之序列的尾端。 如第7Ε圖中所示,區塊Βκ+2會記錄於資料區422中並鏈 結至邏輯位址LAk-2’而區塊Βκ-2則會記錄於備用區424 中。要注意的是,區塊Βκ·2之清除次數為】亦會被記 映射表52中。 —雖然本發明已以較佳實施例揭露如上,然其並非用以 ,疋本發明’任何熟知技藝者’在不麟本發明之精神和 =圍内’當可作些許更動與㈣,因此本發明之保護範圍 虽視後附之申請專利範圍所界定者為準。 【圖式簡單說明】 第1圖係顯示一記憶體裝置之一實施例。
第2圖係為本發明之資料區塊與備用區塊之映射表。 第3圖係為本發明之快閃記憶體存取方法之一流程 第4圖係為本發明之快閃記憶體存取方法之另-流程 第5A〜5E圖係本發明 第6A〜6C圖係本發明 第7A〜7E圖係本發明 【主要元件符號說明】 之快閃記憶體之存取示意圖 之快閃記憶體之存取示意圖 之快閃記憶體之存取示意圖 40 :記憶體裝置; 42 :快閃記憶體; SMI-〇8-〇〇9/9〇3l.A41718-TW/Final 41 :記憶體控制器; 50 :資料區塊映射表; 21 1364661 52 :備用區塊映射表; 412 緩衝記憶體; 416 :微處理器; 424 :備用區;, LA〇〜LAp :邏輯位址。 410 :介面邏輯; 414 :控制邏輯; 422 :資料區; B〇〜Bn-i ·區塊,
SMI-08-009/9031-A41718-TW/Final 22

Claims (1)

1364661 十、申請專利範圍: 一-1組種快閃記憶體之存取方法,該快閃記憶體劃分為 以及—備用區’該資料區包含複數個資料區塊: ,亥備用區包含複數備用區塊,該存取方法包括: 第^讀取指令,由該快閃記憶體之〜 弟貝枓£塊中項取出一對應資料,該對應資料 檢查碼; ' Θ 利用該檢查碼對該對應資料進行一既定檢查; 檢查之結果顯示有一錯誤發生時,判斷該錯 誤疋否可被权正;以及 當該錯誤可被校正時,將該第— 增加-既Μ。 胃料塊之清除次數 2、如中4專利範圍第丨項所述之快閃記憶體之存取方 錯誤紐校正時,騎該第 故障區塊。 ^如申请專利範圍第!項所述之快閃記憶體之存取方 法、、中該檢查碼係為錯誤檢麵(Erwc_ ECC)。 法 4·如申料鄉㈣1賴述之㈣記憶體之存取方 該既定值大於2。 法 5.如申請專利範圍第!項所述之快閃記憶體 更包括; SMI-08-009/9031-A41718-TW/Final 23 1364661 一弟一賁料區塊; 於該備用區中之選擇一備用區塊;以及 於》亥被選擇之備用區塊之清除次少於一預設值時,將 該資料寫入至該被選擇之備用區塊中,並將該被選擇之備 用區塊之一實體位址鏈結至該邏輯彳立址。 6. 如申請專利範圍第5項所述之快閃記憶體之存取方
法,更包括於選擇該備用區塊之前,對該資料區中之該等 資料區塊進行資料整合。 7. 如申明專利範圍第5項所述之快閃記憶體之存取方 法,更包括: 清除該第二資料區塊之内容;以及 回收該第二資料區塊至該備用區中。 種快閃记憶體之存取方法,該快閃記憶體劃分為 -資料區以及-備用區,該資料區包含複數個資料區塊, 該備用區包含複數制區塊,該存取方法包括: 根據來自-主機之一讀取指令,由該快閃記憶體之一 第-資料區塊中讀取出—對應資料,該對應資料中含有一 檢查碼; 利用該檢查碼對該對應資料進行一既定檢查; …當該既定檢查之結果顯示有—錯誤發生時,判斷該錯 决疋否可被校正; 當該錯誤可被校正時,將該第—㈣區塊 次數 增加一既定值; 邏 接收到來自魅機之指令時,接收對應於 SMI-08-009/9031-Α41718-TW/Final 24 其中該邏輯位址係鏈結至該資料區中之 铒位址之一資料 一第二資料區塊 於該備用區中之選擇一第一備用區塊;以及 次料帛備用^塊之清除次超過—預設值時,並且今 貝枓區中具有清除次數 ^且邊 託Η 資料寫人至該第—備用區塊中, 、’'映射該第三資料區塊與該第-備用區塊。
9击如申明專利範圍第8項所述之快閃記憶體之存取方 >’更包括於該被選擇之備㈣塊H欠超過該預設 ί而5亥二貝料區中不具有清除次數為0之該第三資料區塊 日,則將5亥等貧料區塊與該等備用區塊之清除次數減卜 10.如申請專利範圍第9項所述之快閃記憶體之存取 方法’更包括: 於該備用區中之選擇一第二備用區塊;以及 於該第二備用區塊之清除次少於該預設值時,將對廣 _ 於該邏輯位址之該資料寫入至該第二備用區塊中,並㈣ 第二備用區塊之一實體位址鏈結至該邏輯位址。 11. 一種記憶體裝置,包括: 一快閃記憶體,包括一資料區以及一備用區,其中該 貢料區包括複數資料塊區,並且該備用區包括複數備用區 塊;以及 一控制态,根據來自一主機之一讀取指令,由該快閃 記憶體中一對應資料區塊中讀取出含有一檢查碼之一對應 資料,並利用該檢查碼對該對應資料進行一既定檢查,當 SMI-08-009/9031-Α41718-TW/Final 25 丄3040〇1 該既定檢杳之处要翻- 錯誤是否;:被^顯不有一錯誤發生時,控制器則判斷該 料區塊之清料數增被校正時’將該對應資 辑卜如申請專利範圍第η項所述之記憶體裝置,〜 :障區2正時’該控制器則將該對應f料區塊標記二 〜Λ3如申請專利範㈣11項所述之記憶體裝置,盆中 雜查碼係為錯誤檢查碼伽or c贿tion c〇de; ecc)、。中 定值:於如2申請專利範圍第11項所述之記憶體裝置,該既 1批2。。如申清專利範圍第U項所述之記憶體褒置,苴中 接收到來自該主機之-寫入指令時,接收對 油址m其巾闕輯位㈣鏈結至該資 =之:第二資料區塊’並且於該備用區中之選擇4 ^塊’當該被選擇之備用區塊之清除次少於—預 :將==器則將該資料寫入至該被選擇之備用區塊;, 址。、擇之備用區塊之—實體位址鏈結至該邏輯位 16·。如申請專利範圍帛15項所述之記憶體裂置,其中 =空制益更於選擇該備用區塊之前,對該資料區中之 為料區塊進行資料整合。 人 7.如申明專利範圍f 15項所述之記憶體裝置, 於該被選敎備㈣塊m少於鋪 二 器更清除該第二資料區塊之内容,並时該第二資料= SMI-08-0〇9/903l-A41718-TW/Final 26 1304661 至該備用區中。 如ψ料鄕㈣^項所叙記憶職置,其 之備用區塊之清除次超過該預設值,並且該資 =於該第壤區塊之-資料寫入至該被選= 用區塊。亚且重新映射該第三#料區塊與該被選擇之傷 杂枯^’、如申清專利乾圍帛18項所述之記憶體震置,其中 二備用區塊之清除次超過該預設值,而該資料 則將該等資料區塊與該等備用=:=減f控制器 20·、如巾料觀㈣18韻狀純撕置,其中 :Γ中備用區塊之清除次超過該預設值,並且該資 並且回收該第三資= SMI-08-009/9031-A41718-TW/Final 27
TW097136853A 2008-09-25 2008-09-25 Access methods for a flash memory and memory devices TWI364661B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW097136853A TWI364661B (en) 2008-09-25 2008-09-25 Access methods for a flash memory and memory devices
US12/260,139 US8448046B2 (en) 2008-09-25 2008-10-29 Memory access method capable of reducing usage rate of problematic memory blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW097136853A TWI364661B (en) 2008-09-25 2008-09-25 Access methods for a flash memory and memory devices

Publications (2)

Publication Number Publication Date
TW201013401A TW201013401A (en) 2010-04-01
TWI364661B true TWI364661B (en) 2012-05-21

Family

ID=42038770

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097136853A TWI364661B (en) 2008-09-25 2008-09-25 Access methods for a flash memory and memory devices

Country Status (2)

Country Link
US (1) US8448046B2 (zh)
TW (1) TWI364661B (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090320012A1 (en) * 2008-06-04 2009-12-24 Mediatek Inc. Secure booting for updating firmware over the air
TW201017403A (en) * 2008-10-28 2010-05-01 Silicon Motion Inc Access methods for memory devices and memory devices and machine readable medium thereof
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8276042B2 (en) * 2009-02-03 2012-09-25 Micron Technology, Inc. Determining sector status in a memory device
CN101710253B (zh) * 2009-11-25 2012-06-13 安凯(广州)微电子技术有限公司 嵌入式系统的深度休眠方法
KR101090394B1 (ko) * 2009-12-24 2011-12-07 주식회사 하이닉스반도체 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
KR101655306B1 (ko) * 2010-02-24 2016-09-07 삼성전자주식회사 메모리 시스템 및 그것의 액세스 방법
TWI455131B (zh) * 2010-04-16 2014-10-01 Silicon Motion Inc 記憶體之資料寫入方法及資料儲存裝置
TWI475564B (zh) 2010-04-21 2015-03-01 Silicon Motion Inc 記憶體之資料寫入方法及資料儲存裝置
TWI454907B (zh) * 2010-09-14 2014-10-01 Via Tech Inc 記憶裝置及其運作方法
TWI514136B (zh) * 2010-12-28 2015-12-21 Silicon Motion Inc 快閃記憶裝置及其資料寫入方法
US9009547B2 (en) 2011-01-27 2015-04-14 Apple Inc. Advanced programming verification schemes for analog memory cells
KR20130000730A (ko) * 2011-06-24 2013-01-03 삼성전자주식회사 메모리 컨트롤러, 이의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템
TWI486767B (zh) * 2012-06-22 2015-06-01 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
CN103530062B (zh) * 2012-07-03 2016-12-21 群联电子股份有限公司 数据存储方法、存储器控制器与存储器存储装置
TWI529719B (zh) * 2013-08-30 2016-04-11 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
JP6326209B2 (ja) * 2013-09-30 2018-05-16 ラピスセミコンダクタ株式会社 半導体装置及び半導体メモリにおける消去回数の検索方法
CN107391026B (zh) 2016-04-27 2020-06-02 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
US10019314B2 (en) 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
CN111679787B (zh) 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
CN107391296B (zh) * 2016-04-27 2020-11-06 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
US10289487B2 (en) 2016-04-27 2019-05-14 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
US10514983B2 (en) 2017-04-26 2019-12-24 Micron Technology, Inc. Memory apparatus with redundancy array
US11579797B2 (en) * 2021-04-29 2023-02-14 Micron Technology, Inc. Memory sub-system refresh

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0617363B1 (en) * 1989-04-13 2000-01-26 SanDisk Corporation Defective cell substitution in EEprom array
US7447069B1 (en) * 1989-04-13 2008-11-04 Sandisk Corporation Flash EEprom system
US5928370A (en) * 1997-02-05 1999-07-27 Lexar Media, Inc. Method and apparatus for verifying erasure of memory blocks within a non-volatile memory structure
JP3421581B2 (ja) * 1998-06-29 2003-06-30 株式会社日立製作所 不揮発性半導体メモリを用いた記憶装置
EP1027653B1 (de) * 1998-09-04 2004-09-15 Hyperstone AG Zugriffssteuerung eines speichers beschränkter löschhäufigkeit
US6260156B1 (en) * 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
US6662334B1 (en) * 1999-02-25 2003-12-09 Adaptec, Inc. Method and device for performing error correction on ECC data sectors
US7113432B2 (en) * 2000-09-14 2006-09-26 Sandisk Corporation Compressed event counting technique and application to a flash memory system
KR100644602B1 (ko) * 2000-10-11 2006-11-10 삼성전자주식회사 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
JP2004139503A (ja) 2002-10-21 2004-05-13 Matsushita Electric Ind Co Ltd 記憶装置及びその制御方法
CN100483552C (zh) * 2002-10-28 2009-04-29 桑迪士克股份有限公司 在非易失性存储系统中执行自动磨损平衡的方法
US7130229B2 (en) 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
US6944063B2 (en) * 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
KR100526186B1 (ko) * 2003-04-04 2005-11-03 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
US20050120265A1 (en) 2003-12-02 2005-06-02 Pline Steven L. Data storage system with error correction code and replaceable defective memory
US7389465B2 (en) * 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
US7370258B2 (en) * 2005-04-28 2008-05-06 Sandbridge Technologies Inc. Iterative concatenated convolutional Reed-Solomon decoding method
US7451264B2 (en) * 2006-04-13 2008-11-11 Sandisk Corporation Cycle count storage methods
US7743203B2 (en) * 2007-05-11 2010-06-22 Spansion Llc Managing flash memory based upon usage history
JP2008287404A (ja) * 2007-05-16 2008-11-27 Hitachi Ltd 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
KR101413736B1 (ko) * 2007-09-13 2014-07-02 삼성전자주식회사 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법
US8276042B2 (en) * 2009-02-03 2012-09-25 Micron Technology, Inc. Determining sector status in a memory device

Also Published As

Publication number Publication date
US8448046B2 (en) 2013-05-21
US20100077132A1 (en) 2010-03-25
TW201013401A (en) 2010-04-01

Similar Documents

Publication Publication Date Title
TWI364661B (en) Access methods for a flash memory and memory devices
JP5675954B2 (ja) メタデータタグを介した不規則なパリティ分布の検出
US9626118B2 (en) Efficient error handling mechanisms in data storage systems
TWI417717B (zh) 具多流更新之非揮發性記憶體及方法
US8046645B2 (en) Bad block identifying method for flash memory, storage system, and controller thereof
US9870321B2 (en) Data storage device and flash memory control method
US9262335B2 (en) Re-building mapping information for memory devices
JP5516924B2 (ja) ストライプに基づく不揮発性多値メモリ操作
US7546515B2 (en) Method of storing downloadable firmware on bulk media
US7536627B2 (en) Storing downloadable firmware on bulk media
US9146854B2 (en) Restoring storage devices based on flash memories and related circuit, system, and method
US8559225B2 (en) Nonvolatile memory device and related method of operation
CN109976938B (zh) 数据储存装置以及非挥发式存储器操作方法
TW200951979A (en) Data writing method for flash memory and storage system and controller using the same
US11733895B2 (en) Control method of flash memory controller and associated flash memory controller and storage device
CN105808371A (zh) 数据备份与恢复方法、控制芯片及存储装置
TW201239623A (en) Data merging method for non-volatile memory and controller and stoarge apparatus using the same
TWI317099B (zh)
US11809328B2 (en) Control method of flash memory controller and associated flash memory controller and storage device
US20190026045A1 (en) Storage Device and Data Control Method for Storage Error Control
CN101510168A (zh) 一种快闪记忆体的存取方法和记忆体装置
TW200949840A (en) Method for increasing reliability of data accessing for a multi-level cell type non-volatile memory
TW201101317A (en) Nonvolatile storage device and control method thereof
TW201120897A (en) Data storage system and method