TWI512462B - 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 - Google Patents
記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI512462B TWI512462B TW104104527A TW104104527A TWI512462B TW I512462 B TWI512462 B TW I512462B TW 104104527 A TW104104527 A TW 104104527A TW 104104527 A TW104104527 A TW 104104527A TW I512462 B TWI512462 B TW I512462B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- entity
- memory
- data
- stylized
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1072—Adding 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 multilevel memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/12—Programming voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/148—Details of power up or power down circuits, standby circuits or recovery circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Description
本揭露是有關於一種記憶體管理方法,且特別是有關於一種能夠正確地偵測異常斷電時正程式化之頁面的記憶體管理方法及使用此方法的記憶體控制電路單元及記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體(rewritable non-volatile memory)具有資料非揮發性、省電、體積小、無機械結構、讀寫速度快等特性,最適於可攜式電子產品,例如筆記型電腦。固態硬碟就是一種以快閃記憶體作為儲存媒體的儲存裝置。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
圖1是根據習知技術所繪示之快閃記憶體元件的示意圖。
請參照圖1,快閃記憶體元件1包含用於儲存電子的電荷捕捉層(charge traping layer)2、用於施加電壓的控制閘極(Control
Gate)3、穿遂氧化層(Tunnel Oxide)4與多晶矽間介電層(Interpoly Dielectric)5。當欲寫入資料至快閃記憶體元件1時,可藉由將電子注入電荷補捉層2以改變快閃記憶體元件1的臨界電壓,由此定義快閃記憶體元件1的數位高低態,而實現儲存資料的功能。在此,注入電子至電荷補捉層2的過程稱為程式化。反之,當欲將所儲存之資料移除時,藉由將所注入之電子從電荷補捉層2中移除,則可使快閃記憶體元件1回復為未被程式化前的狀態。
在記憶體儲存裝置運作時,若發生異常斷電,在斷電時正寫入的資料可能會產生錯誤,因此應當被視作為無效資料。傳統的判斷方法是在電源啟動時掃描記憶體儲存裝置的所有頁面,若發現有頁面的錯誤位元數目超過門檻值時,記憶體儲存裝置會把此頁面所儲存的資料判斷為無效資料。然而,這種方法常常把其他原因(例如,資料保存、讀取干擾、抹寫耐久度等)所造成的錯誤位元數目過大的有效資料判斷為無效資料,這有可能導致記憶體儲存裝置在運作時發生嚴重錯誤。因此,如何正確地判斷異常斷電時的寫入頁面為此領域技術人員致力的目標。
本揭露提供一種記憶體管理方法及使用此方法的記憶體控制電路單元及記憶體儲存裝置,其能夠正確地判斷異常斷電時記憶體儲存裝置正程式化的頁面,並將此頁面的資料判斷為無效資料。
本揭露提出一種記憶體管理方法,用於可複寫式非揮發性記憶體模組,上述可複寫式非揮發性記憶體模組具有多個實體程式化單元,每一此些實體程式化單元包括多個位元。上述記憶體管理方法包括利用預設讀取電壓識別出此些實體程式化單元中的第一實體程式化單元,其中第一實體程式化單元被識別為一完全抹除狀態。上述記憶體管理方法更包括識別第二實體程式化單元與至少一第三實體程式化單元,其中第二實體程式化單元在第一實體程式化單元之前被程式化且至少一第三實體程式化單元在第二實體程式化單元之前被程式化。上述記憶體管理方法更包括獲取第二實體程式化單元的狀態資料與至少一第三實體程式化單元的至少一狀態資料。上述記憶體管理方法更包括計算第二實體程式化單元的狀態資料與至少一第三實體程式化單元的至少一狀態資料之間的差異量。上述記憶體管理方法更包括若差異量大於門檻值時,將第二實體程式化單元的狀態識別為程式化失敗狀態。
在本揭露的一範例實施例中,當上述第一實體程式化單元中的每一位元皆處於第一儲存狀態時,第一實體程式化單元被識別為完全抹除狀態。
在本揭露的一範例實施例中,上述記憶體管理方法更包括若差異量不大於門檻值且第二實體程式化單元的錯誤位元數目大於錯誤位元門檻值時,通過錯誤檢查校正碼修正第二實體程式化單元的錯誤位元。
在本揭露的一範例實施例中,上述至少一第三實體程式
化單元為複數個第三實體程式化單元。上述計算第二實體程式化單元的狀態資料與至少一第三實體程式化單元的至少一狀態資料之間的差異量的步驟包括:計算複數個第三實體程式化單元的狀態資料的平均值,並計算第二實體程式化單元的狀態資料與平均值之間的差異作為差異量。
在本揭露的一範例實施例中,上述第二實體程式化單元狀態資料為第二實體程式化單元的記憶胞的門檻電壓分佈資料,且至少一第三實體程式化單元的至少一狀態資料為至少一第三實體程式化單元的記憶胞的至少一門檻電壓分佈資料。
在本揭露的一範例實施例中,上述第二實體程式化單元的狀態資料為施加於第二實體程式化單元的字元線的一最佳化讀取電壓資料,且至少一第三實體程式化單元的至少一狀態資料為施加於至少一第三實體程式化單元的字元線的至少一最佳化讀取電壓資料。
在本揭露的一範例實施例中,上述第二實體程式化單元的狀態資料為從第二實體程式化單元讀出的資料上的錯誤位元的數目,且至少一第三實體程式化單元的至少一狀態資料為從至少一第三實體程式化單元讀出的資料上的錯誤位元的數目。
在本揭露的一範例實施例中,上述第二實體程式化單元的狀態資料為從第二實體程式化單元上讀取到可校正的資料所需的重讀次數,且至少一第三實體程式化單元的至少一狀態資料為從至少一第三實體程式化單元上讀取到可校正的資料所需的至少
一重讀次數。
本揭露提出一種記憶體控制電路單元,用於存取可複寫式非揮發性記憶體模組,上述記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。主機介面耦接至主機系統。記憶體介面耦接至可複寫式非揮發性記憶體模組,可複寫式非揮發性記憶體模組具有多個實體程式化單元,每一此些實體程式化單元包括多個位元。記憶體管理電路耦接至主機介面與記憶體介面。其中記憶體管理電路利用預設讀取電壓識別出此些實體程式化單元中的第一實體程式化單元,其中第一實體程式化單元被識別為一完全抹除狀態。其中記憶體管理電路識別第二實體程式化單元與至少一第三實體程式化單元,其中第二實體程式化單元在第一實體程式化單元之前被程式化且至少一第三實體程式化單元在第二實體程式化單元之前被程式化。其中記憶體管理電路獲取第二實體程式化單元的狀態資料與至少一第三實體程式化單元的至少一狀態資料。其中記憶體管理電路計算第二實體程式化單元的狀態資料與至少一第三實體程式化單元的至少一狀態資料之間的差異量。其中若差異量大於門檻值時,記憶體管理電路將第二實體程式化單元的狀態識別為程式化失敗狀態。
在本揭露的一範例實施例中,當上述第一實體程式化單元中的每一位元皆處於第一儲存狀態時,第一實體程式化單元被識別為完全抹除狀態。
在本揭露的一範例實施例中,若差異量不大於門檻值且
第二實體程式化單元的錯誤位元數目大於錯誤位元門檻值時,記憶體管理電路通過錯誤檢查校正碼修正第二實體程式化單元的錯誤位元。
在本揭露的一範例實施例中,上述至少一第三實體程式化單元為複數個第三實體程式化單元,其中記憶體管理電路計算複數個第三實體程式化單元的狀態資料的平均值,並計算第二實體程式化單元的狀態資料與平均值之間的差異作為差異量。
在本揭露的一範例實施例中,上述第二實體程式化單元的狀態資料為第二實體程式化單元的記憶胞的門檻電壓分佈資料,且至少一第三實體程式化單元的至少一狀態資料為至少一第三實體程式化單元的記憶胞的至少一門檻電壓分佈資料。
在本揭露的一範例實施例中,上述第二實體程式化單元的狀態資料為記憶體管理電路施加於第二實體程式化單元的字元線的最佳化讀取電壓資料,且至少一第三實體程式化單元的至少一狀態資料為記憶體管理電路施加於至少一第三實體程式化單元的字元線的至少一最佳化讀取電壓資料。
在本揭露的一範例實施例中,上述第二實體程式化單元的狀態資料為記憶體管理電路從第二實體程式化單元讀出的資料上的錯誤位元的數目,且至少一第三實體程式化單元的至少一狀態資料為記憶體管理電路從至少一第三實體程式化單元讀出的資料上的錯誤位元的數目。
在本揭露的一範例實施例中,上述第二實體程式化單元
的狀態資料為記憶體管理電路從第二實體程式化單元上讀取到可校正的資料所需的重讀次數,且至少一第三實體程式化單元的至少一狀態資料為記憶體管理電路從至少一第三實體程式化單元上讀取到可校正的資料所需的至少一重讀次數。
本揭露提出一種記憶體儲存裝置,包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。連接介面單元耦接至主機系統。可複寫式非揮發性記憶體模組具有多個實體程式化單元,每一此些實體程式化單元包括多個位元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組。其中記憶體控制電路單元利用預設讀取電壓識別出此些實體程式化單元中的第一實體程式化單元,其中第一實體程式化單元被識別為一完全抹除狀態。其中記憶體控制電路單元識別第二實體程式化單元與至少一第三實體程式化單元,其中第二實體程式化單元在第一實體程式化單元之前被程式化且至少一第三實體程式化單元在第二實體程式化單元之前被程式化。其中記憶體控制電路單元獲取第二實體程式化單元的狀態資料與至少一第三實體程式化單元的至少一狀態資料。其中記憶體控制電路單元計算第二實體程式化單元的狀態資料與至少一第三實體程式化單元的至少一狀態資料之間的差異量。其中若差異量大於門檻值時,記憶體控制電路單元將第二實體程式化單元的狀態識別為程式化失敗狀態。
在本揭露的一範例實施例中,當上述第一實體程式化單
元中的每一位元皆處於第一儲存狀態時,第一實體程式化單元被識別為完全抹除狀態。
在本揭露的一範例實施例中,若差異量不大於門檻值且第二實體程式化單元的錯誤位元數目大於錯誤位元門檻值時,記憶體控制電路單元通過錯誤檢查校正碼修正第二實體程式化單元的錯誤位元。
在本揭露的一範例實施例中,上述至少一第三實體程式化單元為複數個第三實體程式化單元,其中記憶體控制電路單元計算複數個第三實體程式化單元的狀態資料的平均值,並計算第二實體程式化單元的狀態資料與平均值之間的差異作為差異量。
在本揭露的一範例實施例中,上述第二實體程式化單元的狀態資料為第二實體程式化單元的記憶胞的門檻電壓分佈資料,且至少一第三實體程式化單元的至少一狀態資料為至少一第三實體程式化單元的記憶胞的至少一門檻電壓分佈資料。
在本揭露的一範例實施例中,上述第二實體程式化單元的狀態資料為記憶體控制電路單元施加於第二實體程式化單元的字元線的最佳化讀取電壓資料,且至少一第三實體程式化單元的至少一狀態資料為記憶體控制電路單元施加於至少一第三實體程式化單元的字元線的至少一最佳化讀取電壓資料。
在本揭露的一範例實施例中,上述第二實體程式化單元的狀態資料為記憶體控制電路單元從第二實體程式化單元讀出的資料上的錯誤位元的數目,且至少一第三實體程式化單元的至少
一狀態資料為記憶體控制電路單元從至少一第三實體程式化單元讀出的資料上的錯誤位元的數目。
在本揭露的一範例實施例中,上述第二實體程式化單元的狀態資料為記憶體控制電路單元從第二實體程式化單元上讀取到可校正的資料所需的重讀次數,且至少一第三實體程式化單元的至少一狀態資料為記憶體控制電路單元從至少一第三實體程式化單元上讀取到可校正的資料所需的至少一重讀次數。
基於上述,本範例實施例的記憶體管理方法及使用此方法的記憶體控制電路單元及記憶體儲存裝置,是藉由比較最後程式化之實體與其他實體程式化單元的狀態資料,來判斷在記憶體儲存裝置斷電時最後被程式化的實體程式化單元是否發生程式化失敗。
為讓本揭露的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
1‧‧‧快閃記憶體元件
2‧‧‧電荷補捉層
3‧‧‧控制閘極
4‧‧‧穿遂氧化層
5‧‧‧多晶矽間介電層
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接介面單元
104‧‧‧記憶體控制電路單元
106‧‧‧可複寫式非揮發性記憶體模組
2202‧‧‧記憶胞陣列
2204‧‧‧字元線控制電路
2206‧‧‧位元線控制電路
2208‧‧‧行解碼器
2210‧‧‧資料輸入/輸出緩衝器
2212‧‧‧控制電路
702‧‧‧記憶胞
704‧‧‧位元線
706‧‧‧字元線
708‧‧‧源極線
712‧‧‧選擇閘汲極電晶體
714‧‧‧選擇閘源極電晶體
VA‧‧‧第一讀取電壓
VB‧‧‧第二讀取電壓
VC‧‧‧第三讀取電壓
VD‧‧‧第四讀取電壓
VE‧‧‧第五讀取電壓
VF‧‧‧第六讀取電壓
VG‧‧‧第七讀取電壓
410(0)~410(N)‧‧‧實體區塊
411(0)‧‧‧第一實體程式化單元
412(0)‧‧‧第二實體程式化單元
413(0)、414(0)、415(0)‧‧‧第三實體程式化單元
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
208‧‧‧錯誤檢查與校正電路
210‧‧‧緩衝記憶體
212‧‧‧電源管理電路
502‧‧‧系統區
504‧‧‧資料區
506‧‧‧閒置區
508‧‧‧取代區
LA(0)~LA(H)‧‧‧邏輯頁面
LZ(0)~LZ(M)‧‧‧邏輯區域
S1602、S1604、S1606、S1608、S1610、S1612、S1614‧‧‧記憶體管理方法的步驟
M‧‧‧閘極電壓基準值
P1、P2‧‧‧峰值
S1902、S1904、S1906、S1908、S1910、S1912、S1914‧‧‧記憶體管理方法的步驟
V1、V2‧‧‧最佳化讀取電壓
S2102、S2104、S2106、S2108、S2110、S2112、S2114‧‧‧記憶體管理方法的步驟
S2202、S2204、S2206、S2208、S2210、S2212、S2214‧‧‧記憶體管理方法的步驟
VTEST1‧‧‧第一檢測讀取電壓
VTEST2‧‧‧第二檢測讀取電壓
VTEST3‧‧‧第三檢測讀取電壓
圖1是根據習知技術所繪示之快閃記憶體元件的示意圖。
圖2是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖3是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖4是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖5是繪示根據一範例實施例所繪示之記憶體儲存裝置的概要方塊圖。
圖6是根據一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。
圖7是根據一範例實施例所繪示的記憶胞陣列的示意圖。
圖8是根據一範例實施例所繪示儲存於記憶胞陣列中的寫入資料所對應的閘極電壓的統計分配圖。
圖9是根據一範例實施例所繪示之程式化記憶胞的示意圖。
圖10是根據一範例實施例所繪示的從記憶胞中讀取資料的示意圖。
圖11是根據一範例實施例所繪示的從記憶胞中讀取資料的示意圖。
圖12是根據一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。
圖13是根據一範例實施例所繪示的記憶體控制電路的概要方塊圖。
圖14與圖15是根據一範例實施例所繪示之管理實體區塊的範例示意圖。
圖16是根據一範例實施例所繪示的記憶體管理方法的流程圖。
圖17與圖18是根據一範例實施例所繪示的門檻電壓分佈資料的比較圖。
圖19是根據另一範例實施例所繪示的記憶體管理方法的流程圖。
圖20是根據一範例實施例所繪示的最佳化讀取電壓資料的比較圖。
圖21是根據另一範例實施例所繪示的記憶體管理方法的流程圖。
圖22是根據另一範例實施例所繪示的記憶體管理方法的流程圖。
圖23是根據一範例實施例所繪示的確認字元線的最佳化讀取電壓資料的示意圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,記憶體控制電路單元)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖2是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖2,主機系統1000一般包括電腦1100與輸入/
輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖3的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖3所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖3所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖4所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入
式多媒體卡是直接耦接於主機系統的基板上。
圖5是繪示根據一範例實施例所繪示之記憶體儲存裝置的概要方塊圖。
請參照圖5,記憶體儲存裝置100包括連接介面單元102、記憶體控制電路單元104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接介面單元102是相容於通用序列匯流排(Universal Serial Bus,USB)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、安全數位(Secure Digital,SD)介面標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card,eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。在本範例實施例中,連接介面單元102可與記憶體控
制電路單元104封裝在一個晶片中,或佈設於一包含記憶體控制電路單元104之晶片外。
記憶體控制電路單元104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制電路單元104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106可以是多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖6是根據一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。
請參照圖6,可複寫式非揮發性記憶體模組106包括記憶胞陣列2202、字元線控制電路2204、位元線控制電路2206、行解碼器(column decoder)2208、資料輸入/輸出緩衝器2210與控制電路2212。
記憶胞陣列2202包括用以儲存資料的多個記憶胞702、多個選擇閘汲極(select gate drain,SGD)電晶體712與多個選擇閘
源極(select gate source,SGS)電晶體714、以及連接此些記憶胞的多條位元線704、多條字元線706、與共用源極線708(如圖7所示)。記憶胞702是以陣列方式配置在位元線704與字元線706的交叉點上。當從記憶體控制電路單元104接收到寫入指令或讀取資料時,控制電路2212會控制字元線控制電路2204、位元線控制電路2206、行解碼器2208、資料輸入/輸出緩衝器2210來寫入資料至記憶胞陣列2202或從記憶胞陣列2202中讀取資料,其中字元線控制電路2204用以控制施予至字元線706的電壓,位元線控制電路2206用以控制施予至位元線704的電壓,行解碼器2208依據指令中的解碼列位址以選擇對應的位元線,並且資料輸入/輸出緩衝器2210用以暫存資料。
可複寫式非揮發性記憶體模組106中的記憶胞是以多種閘極電壓來代表多位元(bits)的資料。具體來說,記憶胞陣列2202的每一記憶胞具有多個狀態,並且此些狀態是以多個讀取電壓來區分。
圖8是根據一範例實施例所繪示儲存於記憶胞陣列中的寫入資料所對應的閘極電壓的統計分配圖。
請參照圖8,以MLC NAND型快閃記憶體為例,每一記憶胞中的閘極電壓可依據第一預設讀取電壓VA、第二預設讀取電壓VB與第三預設讀取電壓VC而區分為4種儲存狀態,並且此些儲存狀態分別地代表"11"、"10"、"00"與"01"。換言之,每一個儲存狀態包括最低有效位元(Least Significant Bit,LSB)以及最高
有效位元(Most Significant Bit,MSB)。在本範例實施例中,儲存狀態(即,"11"、"10"、"00"與"01")中從左側算起之第1個位元的值為LSB,而從左側算起之第2個位元的值為MSB。因此,在一範例實施例中,每一記憶胞可儲存2個位元資料。必須瞭解的是,圖8所繪示的閘極電壓及其儲存狀態的對應僅為一個範例。在另一範例實施例中,閘極電壓與儲存狀態的對應亦可是隨著閘極電壓越大而以"11"、"10"、"01"與"00"排列。或者,閘極電壓所對應之儲存狀態亦可為對實際儲存值進行映射或反相後之值,此外,在另一範例時實例中,亦可定義從左側算起之第1個位元的值為MSB,而從左側算起之第2個位元的值為LSB。
在每一記憶胞可儲存2個位元資料的例子中,同一條字元線上的記憶胞會構成2個實體程式化單元(即,下實體程式化單元與上實體程式化單元)的儲存空間。也就是說,每一記憶胞的LSB是對應下實體程式化單元,並且每一記憶胞的MSB是對應上實體程式化單元。此外,在記憶胞陣列2202中數個實體程式化單元會構成一個實體區塊,並且實體區塊為執行抹除運作的最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。
記憶胞陣列2202之記憶胞的資料寫入(或稱為程式化)是利用施予一特定端點之電壓,例如是控制閘極電壓來改變閘極中之一電荷補捉層的電子量,因而改變了記憶胞的通道的導通狀態,以呈現不同的儲存狀態。例如,當下頁面(或下實體程式化單元)資料為1且上頁面(或上實體程式化單元)資料為1時,控制電
路2212會控制字元線控制電路2204不改變記憶胞中的閘極電壓,而將記憶胞的儲存狀態保持為"11"。當下頁面資料為1且上頁面資料為0時,字元線控制電路2204會在控制電路2212的控制下改變記憶胞中的閘極電壓,而將記憶胞的儲存狀態改變為"10"。當下頁面資料為0且上頁面資料為0時,字元線控制電路2204會在控制電路2212的控制下改變記憶胞中的閘極電壓,而將記憶胞的儲存狀態改變為"00"。並且,當下頁面資料為0且上頁面資料為1時,字元線控制電路2204會在控制電路2212的控制下改變記憶胞中的閘極電壓,而將記憶胞的儲存狀態改變為"01"。
圖9是根據一範例實施例所繪示之程式化記憶胞的示意圖。
請參照圖9,在本範例實施例中,記憶胞的程式化是透過脈衝寫入/驗證臨界電壓方法來完成。具體來說,欲將資料寫入至記憶胞時,記憶體控制電路單元104會設定初始寫入電壓以及寫入電壓脈衝時間,並且指示可複寫式非揮發性記憶體模組106的控制電路2212使用所設定的初始寫入電壓以及寫入電壓脈衝時間來程式化記憶胞,以進行資料的寫入。之後,記憶體控制電路單元104會使用驗證電壓來對記憶胞進行驗證,以判斷記憶胞是否已處於正確的儲存狀態。倘若記憶胞未被程式化至正確的儲存狀態時,記憶體控制電路單元104指示控制電路2212以目前施予的寫入電壓加上一增量階躍脈衝程式(Incremental-step-pulse programming,ISPP)調整值作為新的寫入電壓(亦稱為重複寫入電
壓)並且依據新的寫入電壓與寫入電壓脈衝時間再次來程式化記憶胞。反之,倘若記憶胞已被程式化至正確的儲存狀態時,則表示資料已被正確地寫入至記憶胞。例如,初始寫入電壓會被設定為16伏特(Voltage,V),寫入電壓脈衝時間會被設定為18微秒(microseconds,μs)並且增量階躍脈衝程式調整值被設定為0.6V,但本發明不限於此。
圖10是根據一範例實施例所繪示的從記憶胞中讀取資料的示意圖,其是以MLC NAND型快閃記憶體為例。
請參照圖10,記憶胞陣列2202之記憶胞的讀取運作是藉由施予讀取電壓於控制閘(control gate),藉由記憶胞之通道(記憶胞用以電連接位元線與源極線之路徑,例如是記憶胞源極至汲極間之路徑)的導通狀態,來識別記憶胞儲存之資料。在讀取下頁資料的運作中,字元線控制電路2204會使用第一預設讀取電壓VA作為讀取電壓來施予至記憶胞並且依據記憶胞之通道是否導通和對應的運算式(1)來判斷下頁資料的值:LSB=(VA)Lower_pre1 (1)
其中(VA)Lower_pre1表示透過施予第一預設讀取電壓VA而獲得的第1下頁驗證值。
例如,當第一預設讀取電壓VA小於記憶胞的閘極電壓時,記憶胞的通道不會導通並輸出值'0'的第1下頁驗證值,由此LSB會被識別處於第一狀態為0。例如,當第一預設讀取電壓VA大於記憶胞的閘極電壓時,記憶胞之通道會導通並輸出值'1'的第1
下頁驗證值,由此,此LSB會被識別處於第二狀態。在此,第一狀態被識別為’0’並且第二狀態被識別為’1’。也就是說,用以呈現LSB為1的閘極電壓與用以呈現LSB為0的閘極電壓可透過第一預設讀取電壓VA而被區分。
在讀取上頁資料的運作中,字元線控制電路2204會分別地使用第二預設讀取電壓VB與第三預設讀取電壓VC作為讀取電壓來施予至記憶胞並且依據記憶胞之通道是否導通和對應的運算式(2)來判斷上頁資料的值:MSB=((VB)Upper_pre2)xor(~(VC)Upper_pre1) (2)
其中(VC)Upper_pre1表示透過施予第三預設讀取電壓VC而獲得的第1上頁驗證值,並且(VB)Upper_pre2表示透過施予第二預設讀取電壓VB而獲得的第2上頁驗證值,其中符號”~”代表反相。此外,在本範例實施例中,當第三預設讀取電壓VC小於記憶胞的閘極電壓時,記憶胞之通道不會導通並輸出值'0'的第1上頁驗證值((VC)Upper_pre1),當第二預設讀取電壓VB小於記憶胞的閘極電壓時,記憶胞之通道不會導通並輸出值'0'的第2上頁驗證值((VB)Upper_pre2)。
因此,依照運算式(2),當第三預設讀取電壓VC與第二預設讀取電壓VB皆小於記憶胞的閘極電壓時,在施予第三預設讀取電壓VC下記憶胞之通道不會導通並輸出值'0'的第1上頁驗證值並且在施予第二預設讀取電壓VB下記憶胞之通道不會導通並輸出值'0'的第2上頁驗證值。此時,MSB會被識別為處於第二狀態,
即,’1’。
例如,當第三預設讀取電壓VC大於記憶胞的閘極電壓且第二預設讀取電壓VB小於記憶胞的閘極電壓時,在施予第三預設讀取電壓VC下記憶胞之通道會導通並輸出值'1'的第1上頁驗證值,並且在施予第二預設讀取電壓VB下記憶胞之通道不會導通並輸出值'0'的第2上頁驗證值。此時,MSB會被識別為處於第一狀態,即,’0’。
例如,當第三預設讀取電壓VC與第二預設讀取電壓VB皆大於記憶胞的閘極電壓時,在施予第三預設讀取電壓VC下,記憶胞之通道會導通並輸出值'1'的第1上頁驗證值,並且在施予第二預設讀取電壓VB下記憶胞之通道會導通並輸出值'1'的第2上頁驗證值。此時,MSB會被識別為處於第二狀態,即,’1’。
必須瞭解的是,儘管本發明是以MLC NAND型快閃記憶體來作說明。然而,本發明不限於此,其他多層記憶胞NAND型快閃記憶體亦可依據上述原理進行資料的讀取。
例如,以TLC NAND型快閃記憶體為例(如圖11所示),每一個儲存狀態包括左側算起之第1個位元的最低有效位元LSB、從左側算起之第2個位元的中間有效位元(Center Significant Bit,CSB)以及從左側算起之第3個位元的最高有效位元MSB,其中LSB對應下頁面(或下實體程式化單元),CSB對應中頁面(或中實體程式化單元),MSB對應上頁面(或上實體程式化單元)。在此範例中,每一記憶胞中的閘極電壓可依據第一預設讀取電壓VA、
第二預設讀取電壓VB、第三預設讀取電壓VC、第四預設讀取電壓VD、第五預設讀取電壓VE、第六預設讀取電壓VF與第七預設讀取電壓VG而區分為8種儲存狀態(即,"111"、"110"、"100"、"101"、"001"、"000"、"010"與"011")。
圖12是根據一範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。
請參照圖12,記憶體控制電路單元104會以實體程式化單元為單位來對可複寫式非揮發性記憶體模組106的記憶胞702進行寫入運作並且以實體區塊為單位來對可複寫式非揮發性記憶體模組106的記憶胞702進行抹除運作。具體來說,可複寫式非揮發性記憶體模組106的記憶胞702會構成多個實體程式化單元,並且此些實體程式化單元會構成多個實體區塊410(0)~410(N)。實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。實體程式化單元為程式化的最小單元。即,一個實體程式化單元為寫入資料的最小單元。每一實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體存取位址用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,控制資訊與錯誤更正碼)。例如,以TLC NAND快閃記憶體為例,位於同一條字元線上之記憶胞的LSB會構成一個下實體程式化單元;位於同一條字元線上之記憶胞的CSB會構成一個中實體程式化單元;並且位於同一條字元線上之記憶胞的MSB會構成一個上實體程式化單元。
請參照圖13,記憶體控制電路單元104包括記憶體管理電路202、主機介面204、記憶體介面206與錯誤檢查與校正電路208。
記憶體管理電路202用以控制記憶體控制電路單元104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組106的實體區塊;記憶體寫入電路用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於USB標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、SD標準、SATA標準、UHS-I介面標準、UHS-II介面標準、MS標準、
MMC標準、eMMC介面標準、UFS介面標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
錯誤檢查與校正電路208是耦接至記憶體管理電路202並且用以執行一錯誤校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時,錯誤檢查與校正電路208會對所讀取的資料執行錯誤校正程序。例如,在本範例實施例中,錯誤檢查與校正電路208為低密度奇偶校正(Low Density Parity Check,LDPC)電路,並且會儲存記錄對數可能性比(Log Likelihood Ratio,LLR)值查詢表。當記憶體管理電路202從可複寫式非揮發性記憶體模組106讀取資料時,錯誤檢查與校正電路208會依據所讀取的資料以及查詢表中對應的LLR值來執行錯誤校正程序。其中,值得說明的是在另一範例實施例中,錯誤檢查與校正電路208亦可為渦輪碼(Turbo Code)電路或其他用以進行錯誤校正演算法的電路。
在本發明一範例實施例中,記憶體控制電路單元104還包括緩衝記憶體210與電源管理電路212。
緩衝記憶體210是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發
性記憶體模組106的資料。
電源管理電路212是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
圖14與圖15是根據一範例實施例所繪示之管理實體區塊的範例示意圖。
請參照圖14,在本發明一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)可將實體區塊410(0)~410-(N)邏輯地分組為資料區502、閒置區504、系統區506與取代區508。
邏輯上屬於資料區502與閒置區504的實體區塊是用以儲存來自於主機系統1000的資料。具體來說,資料區502的實體區塊是被視為已儲存資料的實體區塊,而閒置區504的實體區塊是用以替換資料區502的實體區塊。也就是說,當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理電路202會從閒置區504中提取實體區塊,並且將資料寫入至所提取的實體區塊中,以替換資料區502的實體區塊。
邏輯上屬於系統區506的實體區塊是用以記錄系統資料。例如,系統資料包括關於可複寫式非揮發性記憶體模組的製造商與型號、可複寫式非揮發性記憶體模組的實體區塊數、每一實體區塊的實體程式化單元數等。
邏輯上屬於取代區508中的實體區塊是用於壞實體區塊取代程序,以取代損壞的實體區塊。具體來說,倘若取代區508中仍存有正常之實體區塊並且資料區502的實體區塊損壞時,記
憶體管理電路202會從取代區508中提取正常的實體區塊來更換損壞的實體區塊。
特別是,資料區502、閒置區504、系統區506與取代區508之實體區塊的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體區塊關聯至資料區502、閒置區504、系統區506與取代區508的分組關係會動態地變動。例如,當閒置區504中的實體區塊損壞而被取代區508的實體區塊取代時,則原本取代區508的實體區塊會被關聯至閒置區504。
請參照圖15,記憶體控制電路單元104(或記憶體管理電路202)會配置邏輯頁面LA(0)~LA(H)以映射資料區502的實體程式化單元。並且,當主機系統100欲寫入資料至邏輯頁面或更新儲存於邏輯頁面中的資料時,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個實體區塊來寫入資料,以輪替資料區502的實體區塊。
為了識別資料每個邏輯頁面的資料被儲存在那個實體區塊,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會記錄邏輯頁面與實體程式化單元之間的映射。並且,當主機系統1000欲在邏輯頁面中存取資料時,記憶體控制電路單元104(或記憶體管理電路202)會確認此邏輯頁面所映射的實體程式化單元,並且在此實體程式化單元中來存取資料。例如,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)
會在可複寫式非揮發性記憶體模組106中儲存邏輯位址轉實體位址映射表來記錄每一邏輯頁面所映射的實體程式化單元,並且當欲存取資料時記憶體控制電路單元104(或記憶體管理電路202)會將邏輯位址轉實體位址映射表載入至緩衝記憶體208來維護。
值得一提的是,由於緩衝記憶體208的容量有限無法儲存記錄所有邏輯頁面之映射關係的映射表,因此,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會將邏輯頁面LA(0)~LA(H)分組為多個邏輯區域LZ(0)~LZ(M),並且為每一邏輯區域配置一個邏輯位址轉實體位址映射表。特別是,當記憶體控制電路單元104(或記憶體管理電路202)欲更新某個邏輯頁面的映射時,對應此邏輯頁面所屬之邏輯區域的邏輯位址轉實體位址映射表會被載入至緩衝記憶體208來被更新。
如上所述,在執行寫入指令時,不管目前資料是要寫入至那個邏輯頁面,記憶體控制電路單元104(或記憶體管理電路202)皆會以一個實體程式化單元接續一個實體程式化單元的方式來寫入資料(以下亦稱為隨機寫入機制)。具體來說,記憶體控制電路單元104(或記憶體管理電路202)會從閒置區504中提取一個空的實體區塊作為目前使用或作動(active)實體區塊來寫入資料。並且,當此作動實體區塊已被寫滿時,記憶體控制電路單元104(或記憶體管理電路202)會再從閒置區504中提取另一個空的實體區塊作為作動實體區塊,以繼續寫入對應來自於主機系統1000之寫入指令的隨機資料。特別是,為了避免閒置區504的實體區塊被
耗盡,當閒置區504的實體區塊的數目下降到所設定之垃圾回收門檻值時,記憶體控制電路單元104(或記憶體管理電路202)會執行資料合併程序,以使資料區502的至少一個實體區塊中的資料成為無效資料,並且之後將資料區502中所儲存之資料皆為無效資料之實體區塊關聯回閒置區504。例如,在執行資料合併程序時,記憶體控制電路單元104(或記憶體管理電路202)至少需使用一個空的實體區塊,因此,垃圾回收門檻值至少會被設定大於最低門檻值(即,1)。
在本範例實施例中,每當記憶體儲存裝置100上電時,記憶體控制電路單元104(或記憶體管理電路202)會識別出在作動實體區塊中最後一個被程式化的實體程式化單元,並且比較最後一個被程式化的實體程式化單元的狀態資料與其前面的實體程式化單元的狀態資料是否有明顯地差異,由此識別上次記憶體儲存裝置100斷電時是否發生程式化失敗。
具體來說,在本範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)會依序掃瞄作動實體區塊中的每個實體程式化單元,找出第一個處於完全抹除狀態的實體程式化單元(以下稱為第一實體程式化單元),由此將所找到之實體程式化單元的前一個實體程式化單元(以下稱為第二實體程式化單元)識別為最後一個被程式化的實體程式化單元。特別是,記憶體控制電路單元104(或記憶體管理電路202)會識別第二實體程式化單元之記憶胞的門檻電壓分佈資料以及排列在第二實體程式化單元之前的
實體程式化單元(以下稱為第三實體程式化單元)之記憶胞的門檻電壓分佈資料,然後,判斷第二實體程式化單元之記憶胞的門檻電壓分佈資料和第三實體程式化單元之記憶胞的門檻電壓分佈資料之間的差異量是否大於一個門檻值。若第二實體程式化單元之記憶胞的門檻電壓分佈資料和第三實體程式化單元之記憶胞的門檻電壓分佈資料之間的差異量大於此門檻值時,記憶體控制電路單元104(或記憶體管理電路202)會識別第二實體程式化單元發生程式化失敗(即,處於程式化失敗狀態)。若第二實體程式化單元之記憶胞的門檻電壓分佈資料和第三實體程式化單元之記憶胞的門檻電壓分佈資料之間的差異量不大於門檻值,且該第二實體程式化單元的錯誤位元數目大於一錯誤位元門檻值時,記憶體控制電路單元104(或記憶體管理電路202)通過錯誤檢查校正碼修正第二實體程式化單元的錯誤位元。
圖16是根據一範例實施例所繪示的記憶體管理方法的流程圖。
請同時參照圖16及圖12,在此假設連接第一實體程式化單元411(0)的所有記憶胞是完全抹除狀態(也就是說,第一實體程式化單元411(0)上的所有位元為第一儲存狀態(例如,1)),且第三實體程式化單元415(0)、第三實體程式化單元414(0)、第三實體程式化單元413(0)、第二實體程式化單元412(0)是依序地被程式化。
在步驟S1602中,記憶體控制電路單元104(或記憶體管
理電路202)會在記憶體儲存裝置100的上電(power on)時,利用記憶體儲存裝置100出廠時的預設讀取電壓識別出第一實體程式化單元411(0),其中第一實體程式化單元411(0)的所有位元是處於完全抹除狀態且第一實體程式化單元411(0)的前一個實體程式化單元(即,第二實體程式化單元)已被程式化過(即,非處於完全抹除狀態)。
接著,記憶體控制電路單元104(或記憶體管理電路202)會在步驟S1604中識別在第一實體程式化單元411(0)之前依序被程式化的第三實體程式化單元413(0)及第二實體程式化單元412(0),並且在步驟S1606中獲取第二實體程式化單元412(0)及第三實體程式化單元413(0)的記憶胞的門檻電壓分佈資料。
在步驟S1608中,記憶體控制電路單元104(或記憶體管理電路202)會比較第二實體程式化單元412(0)及第三實體程式化單元413(0)的記憶胞的門檻電壓分佈資料,並且計算第二實體程式化單元412(0)及第三實體程式化單元413(0)的記憶胞的門檻電壓分佈資料的差異量。接著在步驟S1610中,記憶體控制電路單元104(或記憶體管理電路202)會判斷第二實體程式化單元412(0)及第三實體程式化單元413(0)的記憶胞的門檻電壓分佈資料的差異量是否大於一門檻值。
若第二實體程式化單元412(0)及第三實體程式化單元413(0)的記憶胞的門檻電壓分佈資料的差異量大於門檻值時,在步驟S1612中,記憶體控制電路單元104(或記憶體管理電路202)會
識別第二實體程式化單元412(0)處於程式化失敗狀態。若第二實體程式化單元412(0)及第三實體程式化單元413(0)門檻電壓分佈資料的差異量非大於門檻值時,在步驟S1614中,記憶體控制電路單元104(或記憶體管理電路202)會將第二實體程式化單元412(0)的資料識別為有效資料。
例如,如圖17所示,若第二實體程式化單元412(0)的記憶胞的門檻電壓資料分佈為右偏移(峰值P1的門檻電壓大於門檻電壓基準值M超過一預設值)而第三實體程式化單元413(0)的門檻電壓分佈資料為左偏移(峰值P2的門檻電壓小於門檻電壓基準值M超過一預設值)時,則第二實體程式化單元412(0)及第三實體程式化單元413(0)的記憶胞的門檻電壓分佈資料的差異量會被視為大於門檻值。再例如,如圖18所示,若第二實體程式化單元412(0)及第三實體程式化單元413(0)的門檻電壓分佈資料僅有小部分的偏移(峰值P1與P2的門檻電壓與門檻電壓基準值M差異量不大),則第二實體程式化單元412(0)及第三實體程式化單元413(0)的記憶胞的門檻電壓分佈資料的差異量會被視為小於門檻值。
值得注意的是,雖然以上說明了比較第二實體程式化單元412(0)及一個第三實體程式化單元413(0)的記憶胞的門檻電壓分佈資料,但本揭露並不以此為限。在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)也可以先計算出在第二實體程式化單元412(0)之前程式化的兩個實體程式化單元(例如,第三實體程式化單元413(0)及第三實體程式化單元414(0))的
記憶胞的門檻電壓分佈資料,並且求出第三實體程式化單元413(0)及第三實體程式化單元414(0)的記憶胞的門檻電壓分佈資料的平均值,接著再計算此平均值與第二實體程式化單元412(0)的記憶胞的門檻電壓分佈資料的差異。在又一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)也可以先計算出在第二實體程式化單元412(0)之前程式化的三個實體程式化單元(例如,第三實體程式化單元413(0)、第三實體程式化單元414(0)及第三實體程式化單元415(0))或更多個實體程式化單元的記憶胞的門檻電壓分佈資料,並且求出此些實體程式化單元的記憶胞的門檻電壓分佈資料的平均值,再計算此平均值與第二實體程式化單元412(0)的記憶胞的門檻電壓分佈資料的差異。在此,以圖10的MLC型快閃記憶體為例,下頁的門檻電壓分佈資料為第一讀取電壓VA,而下頁的門檻電壓分佈資料為第一讀取電壓VA、第二讀取電壓VB及第三讀取電壓VC。又以圖11的TLC型快閃記憶體為例,下頁面的門檻電壓分佈資料為第一讀取電壓VA,中頁面的門檻電壓分佈資料為第一讀取電壓VA、第二讀取電壓VB及第三讀取電壓VC,而上頁面的門檻電壓分佈資料為第一讀取電壓VA到第七讀取電壓VG。
值得一提的是,儘管在上述範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)是識別實體程式化單元之記憶胞的門檻電壓分佈資料作為狀態資料來識別是否發生程式化失敗,但本發明不限於此。例如,在另一範例實施例中,記憶體控
制電路單元104(或記憶體管理電路202)亦可以實體程式化單元的記憶胞的最佳讀取電壓值作為狀態資料來識別是否發生程式化失敗。
圖19是根據另一範例實施例所繪示的記憶體管理方法的流程圖。
請同時參照圖19及圖12,在步驟S1902中,記憶體控制電路單元104(或記憶體管理電路202)會在記憶體儲存裝置100的上電時,利用一個出廠時的預設讀取電壓識別出第一實體程式化單元411(0),其中第一實體程式化單元411(0)的所有記憶胞是完全抹除狀態且第一實體程式化單元411(0)的前一個實體程式化單元(即,第二實體程式化單元)已被程式化過(即,非處於完全抹除狀態)。
接著,在步驟S1904中,記憶體控制電路單元104(或記憶體管理電路202)會識別在第一實體程式化單元411(0)之前依序被程式化的第三實體程式化單元413(0)及第二實體程式化單元412(0),並且在步驟S1906中獲取施加於第二實體程式化單元412(0)及第三實體程式化單元413(0)的字元線的最佳化讀取電壓資料。例如,在獲取最佳化讀取電壓資料的過程中,記憶體控制電路單元104(或記憶體管理電路202)會在字元線上施加一個初始讀取電壓,並且利用錯誤檢查與校正電路208計算出此字元線對應頁面的錯誤位元數量,若錯誤位元數量大於錯誤檢查與校正電路208能校正的上限,則依照預設演算法調整初始讀取電壓並計
算錯誤位元數量,直到此字元線對應頁面的錯誤位元數量小於錯誤檢查與校正電路208能校正的上限,記憶體控制電路單元104(或記憶體管理電路202)便把此時施加於字元線的讀取電壓設定為最佳化讀取電壓。
在步驟S1908中,記憶體控制電路單元104(或記憶體管理電路202)會比較施加於第二實體程式化單元412(0)及第三實體程式化單元413(0)的字元線的最佳化讀取電壓資料,並且計算施加於第二實體程式化單元412(0)及第三實體程式化單元413(0)的字元線的最佳化讀取電壓資料的差異量。接著在步驟S1910中,記憶體控制電路單元104(或記憶體管理電路202)會判斷施加於第二實體程式化單元412(0)及第三實體程式化單元413(0)的字元線的最佳化讀取電壓資料的差異量是否大於一個門檻值。
若第二實體程式化單元412(0)及第三實體程式化單元413(0)的字元線的最佳化讀取電壓資料的差異量大於此門檻值時,在步驟S1912中,記憶體控制電路單元104(或記憶體管理電路202)會識別第二實體程式化單元412(0)處於程式化失敗狀態。若第二實體程式化單元412(0)的字元線的最佳化讀取電壓資料(如圖20所示的V1)及第三實體程式化單元413(0)的字元線的最佳化讀取電壓資料(如圖20所示的V2)之間的差異量小於門檻值時,在步驟S1914中,記憶體控制電路單元104(或記憶體管理電路202)會將第二實體程式化單元412(0)上的資料識別為有效資料。
值得注意的是,雖然以上說明了比較施加於第二實體程
式化單元412(0)及一個第三實體程式化單元413(0)的字元線的最佳化讀取電壓資料,但本揭露並不以此為限。在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)也可以先計算出在施加於第二實體程式化單元412(0)之前程式化的兩個實體程式化單元(例如,第三實體程式化單元413(0)及第三實體程式化單元414(0))的字元線的最佳化讀取電壓資料的平均值,並且比較此平均值與施加於第二實體程式化單元412(0)的字元線的最佳化讀取電壓。在又一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)也可以先計算出施加於第二實體程式化單元412(0)之前程式化的三個實體程式化單元(例如,第三實體程式化單元413(0)、第三實體程式化單元414(0)及第三實體程式化單元415(0))或更多個實體程式化單元字元線的最佳化讀取電壓資料的平均值,並且比較此平均值與施加於第二實體程式化單元412(0)的最佳化讀取電壓。
在此,以圖10的MLC型快閃記憶體為例,下頁的最佳化讀取電壓資料為對應第一讀取電壓VA的最佳化讀取電壓,而下頁的最佳化讀取電壓資料為對應第一讀取電壓VA、第二讀取電壓VB及第三讀取電壓VC的最佳化讀取電壓。又以圖11的TLC型快閃記憶體為例,下頁面的最佳化讀取電壓資料為對應第一讀取電壓VA的最佳化讀取電壓,中頁面的最佳化讀取電壓資料為第一讀取電壓VA、第二讀取電壓VB及第三讀取電壓VC的最佳化讀取電壓,而上頁面的最佳化讀取電壓資料為對應第一讀取電壓VA
到第七讀取電壓VG的最佳化讀取電壓。
此外,除了以上述門檻電壓分佈資料和最佳化讀取電壓資料作為狀態資料來識別是否發生程式化失敗之外,在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)亦可以實體程式化單元中之資料的錯誤位元數作為狀態資料來識別是否發生程式化失敗。
圖21是根據另一範例實施例所繪示的記憶體管理方法的流程圖。
請同時參照圖21及圖12,在步驟S2102中,記憶體控制電路單元104(或記憶體管理電路202)會在記憶體儲存裝置100的上電時,利用一個出廠時的預設讀取電壓識別出第一實體程式化單元411(0),其中第一實體程式化單元411(0)的所有記憶胞是完全抹除狀態且第一實體程式化單元411(0)的前一個實體程式化單元(即,第二實體程式化單元)已被程式化過(即,非處於完全抹除狀態)。
接著,記憶體控制電路單元104(或記憶體管理電路202)會在步驟S2104中識別在第一實體程式化單元411(0)之前依序被程式化的第三實體程式化單元413(0)及第二實體程式化單元412(0),並且在步驟S2106中獲取於第二實體程式化單元412(0)及第三實體程式化單元413(0)的錯誤位元的數目(以下稱為錯誤位元數目)。
在步驟S2108中,記憶體控制電路單元104(或記憶體管
理電路202)會計算第二實體程式化單元412(0)的錯誤位元數目及第三實體程式化單元413(0)的錯誤位元數目的差異量。接著在步驟S2110中,記憶體控制電路單元104(或記憶體管理電路202)會判斷第二實體程式化單元412(0)的錯誤位元數目及第三實體程式化單元413(0)的錯誤位元數目之間的差異量是否大於一個門檻值。
若第二實體程式化單元412(0)的錯誤位元數目及第三實體程式化單元413(0)的錯誤位元數目之間的差異量大於此門檻值時,在步驟S2112中,記憶體控制電路單元104(或記憶體管理電路202)會識別第二實體程式化單元412(0)處於程式化失敗狀態。若第二實體程式化單元412(0)的錯誤位元數目及第三實體程式化單元413(0)的錯誤位元數目之間的差異量小於此門檻值時,在步驟S2114中,記憶體控制電路單元104(或記憶體管理電路202)會將第二實體程式化單元412(0)上的資料識別為有效資料。
值得注意的是,雖然以上說明了比較了第二實體程式化單元412(0)及一個第三實體程式化單元413(0)上的資料的錯誤位元數目,但本揭露並不以此為限。在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)也可以先計算出在第二實體程式化單元412(0)之前程式化的兩個實體程式化單元(例如,第三實體程式化單元413(0)及第三實體程式化單元414(0))上所讀出的資料上的錯誤位元的數目的平均值,並且比較此平均值與第二實體程式化單元412(0)的錯誤位元數目。在又一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)也可以先計算出
在第二實體程式化單元412(0)之前程式化的三個實體程式化單元(例如,第三實體程式化單元413(0)、第三實體程式化單元414(0)及第三實體程式化單元415(0))或更多個實體程式化單元上讀出的資料上的錯誤位元的數目的平均值,並且比較此平均值與對應第二實體程式化單元412(0)的錯誤位元數目。
此外,除了以上述門檻電壓分佈資料、最佳化讀取電壓資料與錯誤位元數目作為狀態資料來識別是否發生程式化失敗之外,在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)亦可以執行重讀的次數(以下稱為重讀次數)作為狀態資料來識別是否發生程式化失敗。
圖22是根據另一範例實施例所繪示的記憶體管理方法的流程圖。
請同時參照圖22及圖12,在步驟S2202中,記憶體控制電路單元104(或記憶體管理電路202)會在記憶體儲存裝置100的上電時,利用一個出廠時的預設讀取電壓識別出第一實體程式化單元411(0),其中第一實體程式化單元411(0)的所有記憶胞是完全抹除狀態且第一實體程式化單元411(0)的前一個實體程式化單元(即,第二實體程式化單元)已被程式化過(即,非處於完全抹除狀態)。
接著,在步驟S2204中,記憶體控制電路單元104(或記憶體管理電路202)會識別在第一實體程式化單元411(0)之前依序被程式化的第三實體程式化單元413(0)及第二實體程式化單元
412(0),並且在步驟S2206中獲取從第二實體程式化單元412(0)及第三實體程式化單元413(0)的重讀次數。
圖23是根據一範例實施例所繪示的確認實體程式化單元的最佳化讀取電壓的示意圖。在圖23中,記憶體控制電路單元104(或記憶體管理電路202)會施加以第一預設讀取電壓VA為基礎調整的第一檢測讀取電壓VTEST1以讀取實體程式化單元的資料,並且依據檢測資料計算以第一檢測讀取電壓VTEST1所讀取的實體程式化單元的資料中的錯誤位元數。若以第一檢測讀取電壓VTEST1所讀取的實體程式化單元的資料中的錯誤位元數是不可被校正的,也就是實體程式化單元上之資料中的錯誤位元的數目大於錯誤檢查與校正碼所能校正的錯誤位元數時,記憶體控制電路單元104(或記憶體管理電路202)會施加第二檢測讀取電壓VTEST2來讀取資料,並且再次判斷所讀取的資料是否能夠被校正。若以第二檢測讀取電壓VTEST2所讀取的資料仍無法被校正時,記憶體控制電路單元104(或記憶體管理電路202)會施加第三檢測讀取電壓VTEST3來讀取資料。以此類推,直到所讀取的資料可以被錯誤校正或者重新讀取的次數超過預設值為止。在此,重讀次數是指記憶體控制電路單元104(或記憶體管理電路202)會施加檢測讀取電壓讀取資料的次數。
請再參照圖22,在步驟S2208中,記憶體控制電路單元104(或記憶體管理電路202)會比較第二實體程式化單元412(0)及第三實體程式化單元413(0)的重讀次數,並且計算第二實體程式
化單元412(0)及第三實體程式化單元413(0)的重讀次數之間的差異量。接著在步驟S2210中,記憶體控制電路單元104(或記憶體管理電路202)會判斷第二實體程式化單元412(0)及第三實體程式化單元413(0)的重讀次數之間的差異量是否大於一個門檻值。
若第二實體程式化單元412(0)及第三實體程式化單元413(0)的重讀次數之間的差異量大於門檻值,在步驟S2212中,記憶體控制電路單元104(或記憶體管理電路202)會識別第二實體程式化單元412(0)處於程式化失敗狀態。若第二實體程式化單元412(0)及第三實體程式化單元413(0)的重讀次數之間的差異量小於門檻值,在步驟S2214中,記憶體控制電路單元104(或記憶體管理電路202)會將第二實體程式化單元412(0)上的資料識別為有效資料。
值得注意的是,雖然以上說明了比較了第二實體程式化單元412(0)及一個第三實體程式化單元413(0)的重讀次數,但本揭露並不以此為限。在另一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)也可以先計算出在第二實體程式化單元412(0)之前程式化的兩個實體程式化單元(例如,第三實體程式化單元413(0)及第三實體程式化單元414(0))的重讀次數的平均值,並且比較此平均值與從第二實體程式化單元412(0)的重讀次數。在又一範例實施例中,記憶體控制電路單元104(或記憶體管理電路202)也可以先計算出在第二實體程式化單元412(0)之前程式化的三個實體程式化單元(例如,第三實體程式化單元413(0)、
第三實體程式化單元414(0)及第三實體程式化單元415(0))或更多個實體程式化單元的重讀次數的平均值,並且比較此平均值與第二實體程式化單元412(0)的重讀次數。
綜上所述,本揭露的記憶體管理方法及使用此方法的記憶體控制電路單元及記憶體儲存裝置會在記憶體儲存裝置上電時找出完全抹除的實體程式化單元及在此實體程式化單元之前被程式化的多個頁面,並且比較此些頁面的門檻電壓分佈資料、最佳化讀取電壓資料、錯誤位元數目或重讀次數等狀態資料,以判斷此些實體程式化單元中最後被程式化的實體程式化單元是否為異常斷電時正在被程式化的頁面。由於異常斷電時正在被程式化的實體程式化單元的上述狀態資料通常會與其他頁面有較大的差異量,因此,若最後被程式化的實體程式化單元的狀態資料與其他頁面具有較大差異量時,則可判斷此實體程式化單元在異常斷電時正在被程式化並將此實體程式化單元識別為處於程式化失敗狀態。經由本揭露的方法,可以避免記憶體管理電路任意地將錯誤位元數目超過預設值的有效頁面資料判斷為無效資料,而導致存取記憶體儲存裝置時發生錯誤。
雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露,任何所屬技術領域中具有通常知識者,在不脫離本揭露的精神和範圍內,當可作些許的更動與潤飾,故本揭露的保護範圍當視後附的申請專利範圍所界定者為準。
S1602、S1604、S1606、S1608、S1610、S1612、S1614‧‧‧記憶體管理方法的步驟
Claims (24)
- 一種記憶體管理方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體程式化單元,每一該些實體程式化單元包括多個位元,該記憶體管理方法包括:利用一預設讀取電壓識別出該些實體程式化單元中的一第一實體程式化單元,其中該第一實體程式化單元被識別為一完全抹除狀態實體程式化單元實體程式化單元實體程式化單元;識別一第二實體程式化單元與至少一第三實體程式化單元,其中該第二實體程式化單元在該第一實體程式化單元之前被程式化且該至少一第三實體程式化單元在該第二實體程式化單元之前被程式化;獲取該第二實體程式化單元的一狀態資料與該至少一第三實體程式化單元的至少一狀態資料;計算該第二實體程式化單元的該狀態資料與該至少一第三實體程式化單元的該至少一狀態資料之間的一差異量;以及若該差異量大於一門檻值時,將該第二實體程式化單元的狀態識別為一程式化失敗狀態。
- 如申請專利範圍第1項所述的記憶體管理方法,其中當該第一實體程式化單元中的每一位元皆處於一第一儲存狀態時,該第一實體程式化單元被識別為該完全抹除狀態。
- 如申請專利範圍第1項所述的記憶體管理方法,更包括: 若該差異量不大於該門檻值且該第二實體程式化單元的錯誤位元數目大於一錯誤位元門檻值時,通過一錯誤檢查校正碼修正該第二實體程式化單元的錯誤位元。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該至少一第三實體程式化單元為複數個第三實體程式化單元,其中計算該第二實體程式化單元的該狀態資料與該至少一第三實體程式化單元的該至少一狀態資料之間的差異量的步驟包括:計算該複數個第三實體程式化單元的狀態資料的一平均值,並計算該第二實體程式化單元的該狀態資料與該平均值之間的差異作為該差異量。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第二實體程式化單元該狀態資料為該第二實體程式化單元的記憶胞的一門檻電壓分佈資料,且該至少一第三實體程式化單元的該至少一狀態資料為該至少一第三實體程式化單元的記憶胞的至少一門檻電壓分佈資料。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第二實體程式化單元的該狀態資料為施加於該第二實體程式化單元的字元線的一最佳化讀取電壓資料,且該至少一第三實體程式化單元的該至少一狀態資料為施加於該至少一第三實體程式化單元的字元線的至少一最佳化讀取電壓資料。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第 二實體程式化單元的該狀態資料為從該第二實體程式化單元讀出的資料上的錯誤位元的數目,且該至少一第三實體程式化單元的該至少一狀態資料為從該至少一第三實體程式化單元讀出的資料上的錯誤位元的數目。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第二實體程式化單元的該狀態資料為從該第二實體程式化單元上讀取到可校正的資料所需的一重讀次數,且該至少一第三實體程式化單元的該至少一狀態資料為從該至少一第三實體程式化單元上讀取到可校正的資料所需的至少一重讀次數。
- 一種記憶體控制電路單元,用於存取一可複寫式非揮發性記憶體模組,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體程式化單元,每一該些實體程式化單元包括多個位元;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路利用一預設讀取電壓識別出該些實體程式化單元中的一第一實體程式化單元,其中該第一實體程式化單元被識別為一完全抹除狀態;其中該記憶體管理電路識別一第二實體程式化單元與至少一第三實體程式化單元,其中該第二實體程式化單元在該第一實體程式化單元之前被程式化且該至少一第三實體程式化單元在該第 二實體程式化單元之前被程式化;其中該記憶體管理電路獲取該第二實體程式化單元的一狀態資料與該至少一第三實體程式化單元的至少一狀態資料;其中該記憶體管理電路計算該第二實體程式化單元的該狀態資料與該至少一第三實體程式化單元的該至少一狀態資料之間的一差異量;以及其中若該差異量大於一門檻值時,該記憶體管理電路將該第二實體程式化單元的狀態識別為一程式化失敗狀態。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中當該第一實體程式化單元中的每一位元皆處於一第一儲存狀態時,該第一實體程式化單元被識別為該完全抹除狀態。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中若該差異量不大於該門檻值且該第二實體程式化單元的錯誤位元數目大於一錯誤位元門檻值時,該記憶體管理電路通過一錯誤檢查校正碼修正該第二實體程式化單元的錯誤位元。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中該至少一第三實體程式化單元為複數個第三實體程式化單元,其中該記憶體管理電路計算該複數個第三實體程式化單元的狀態資料的一平均值,並計算該第二實體程式化單元的該狀態資料與該平均值之間的差異作為該差異量。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中該第二實體程式化單元的該狀態資料為該第二實體程式化單元 的記憶胞的一門檻電壓分佈資料,且該至少一第三實體程式化單元的該至少一狀態資料為該至少一第三實體程式化單元的記憶胞的至少一門檻電壓分佈資料。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中該第二實體程式化單元的該狀態資料為該記憶體管理電路施加於該第二實體程式化單元的字元線的一最佳化讀取電壓資料,且該至少一第三實體程式化單元的該至少一狀態資料為該記憶體管理電路施加於該至少一第三實體程式化單元的字元線的至少一最佳化讀取電壓資料。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中該第二實體程式化單元的該狀態資料為該記憶體管理電路從該第二實體程式化單元讀出的資料上的錯誤位元的數目,且該至少一第三實體程式化單元的該至少一狀態資料為該記憶體管理電路從該至少一第三實體程式化單元讀出的資料上的錯誤位元的數目。
- 如申請專利範圍第9項所述的記憶體控制電路單元,其中該第二實體程式化單元的該狀態資料為該記憶體管理電路從該第二實體程式化單元上讀取到可校正的資料所需的一重讀次數,且該至少一第三實體程式化單元的該至少一狀態資料為該記憶體管理電路從該至少一第三實體程式化單元上讀取到可校正的資料所需的至少一重讀次數。
- 一種記憶體儲存裝置,包括: 一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體程式化單元,每一該些實體程式化單元包括多個位元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元利用一預設讀取電壓識別出該些實體程式化單元中的一第一實體程式化單元,其中該第一實體程式化單元被識別為一完全抹除狀態;其中該記憶體控制電路單元識別一第二實體程式化單元與至少一第三實體程式化單元,其中該第二實體程式化單元在該第一實體程式化單元之前被程式化且該至少一第三實體程式化單元在該第二實體程式化單元之前被程式化;其中該記憶體控制電路單元獲取該第二實體程式化單元的一狀態資料與該至少一第三實體程式化單元的至少一狀態資料;其中該記憶體控制電路單元計算該第二實體程式化單元的該狀態資料與該至少一第三實體程式化單元的該至少一狀態資料之間的一差異量;以及其中若該差異量大於一門檻值時,該記憶體控制電路單元將該第二實體程式化單元的狀態識別為一程式化失敗狀態。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中當該第一實體程式化單元中的每一位元皆處於一第一儲存狀態時, 該第一實體程式化單元被識別為該完全抹除狀態。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中若該差異量不大於該門檻值且該第二實體程式化單元的錯誤位元數目大於一錯誤位元門檻值時,該記憶體控制電路單元通過一錯誤檢查校正碼修正該第二實體程式化單元的錯誤位元。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中該至少一第三實體程式化單元為複數個第三實體程式化單元,其中該記憶體控制電路單元計算該複數個第三實體程式化單元的狀態資料的一平均值,並計算該第二實體程式化單元的該狀態資料與該平均值之間的差異作為該差異量。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中該第二實體程式化單元的該狀態資料為該第二實體程式化單元的記憶胞的一門檻電壓分佈資料,且該至少一第三實體程式化單元的該至少一狀態資料為該至少一第三實體程式化單元的記憶胞的至少一門檻電壓分佈資料。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中該第二實體程式化單元的該狀態資料為該記憶體控制電路單元施加於該第二實體程式化單元的字元線的一最佳化讀取電壓資料,且該至少一第三實體程式化單元的該至少一狀態資料為該記憶體控制電路單元施加於該至少一第三實體程式化單元的字元線的至少一最佳化讀取電壓資料。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中該 第二實體程式化單元的該狀態資料為該記憶體控制電路單元從該第二實體程式化單元讀出的資料上的錯誤位元的數目,且該至少一第三實體程式化單元的該至少一狀態資料為該記憶體控制電路單元從該至少一第三實體程式化單元讀出的資料上的錯誤位元的數目。
- 如申請專利範圍第17項所述的記憶體儲存裝置,其中該第二實體程式化單元的該狀態資料為該記憶體控制電路單元從該第二實體程式化單元上讀取到可校正的資料所需的一重讀次數,且該至少一第三實體程式化單元的該至少一狀態資料為該記憶體控制電路單元從該至少一第三實體程式化單元上讀取到可校正的資料所需的至少一重讀次數。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104104527A TWI512462B (zh) | 2015-02-11 | 2015-02-11 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
US14/693,885 US9563508B2 (en) | 2015-02-11 | 2015-04-23 | Memory management method, memory control circuit unit and memory storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104104527A TWI512462B (zh) | 2015-02-11 | 2015-02-11 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI512462B true TWI512462B (zh) | 2015-12-11 |
TW201629772A TW201629772A (zh) | 2016-08-16 |
Family
ID=55407815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104104527A TWI512462B (zh) | 2015-02-11 | 2015-02-11 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9563508B2 (zh) |
TW (1) | TWI512462B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI601011B (zh) * | 2016-07-05 | 2017-10-01 | 慧榮科技股份有限公司 | 偵測使用中邏輯頁面之資料儲存裝置與資料儲存方法 |
CN110727390A (zh) * | 2018-07-16 | 2020-01-24 | 深圳大心电子科技有限公司 | 存储器管理方法以及存储控制器 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI596476B (zh) * | 2015-11-27 | 2017-08-21 | 群聯電子股份有限公司 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI591641B (zh) * | 2016-02-19 | 2017-07-11 | 群聯電子股份有限公司 | 資料程式化方法、記憶體控制電路單元及記憶體儲存裝置 |
US9933963B1 (en) | 2017-03-01 | 2018-04-03 | Seagate Technology | Open block handling to reduce write errors |
TWI628660B (zh) * | 2017-09-19 | 2018-07-01 | 群聯電子股份有限公司 | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 |
TWI674505B (zh) * | 2017-11-30 | 2019-10-11 | 宜鼎國際股份有限公司 | 資料存取效率的預估方法 |
TWI655640B (zh) * | 2018-01-24 | 2019-04-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
CN110942798B (zh) * | 2018-09-25 | 2024-06-11 | 三星电子株式会社 | 半导体存储器件、存储系统及操作半导体存储器件的方法 |
KR20200117374A (ko) * | 2019-04-04 | 2020-10-14 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치, 이의 동작 방법 및 이를 이용하는 시스템 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7483297B2 (en) * | 2003-02-26 | 2009-01-27 | Renesas Technology Corp. | Nonvolatile memory card |
US7817480B2 (en) * | 2002-09-25 | 2010-10-19 | Renesas Electronics Corporation | Nonvolatile memory |
TWI467379B (zh) * | 2012-04-23 | 2015-01-01 | Phison Electronics Corp | 系統運作方法、記憶體控制器與記憶體儲存裝置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7957187B2 (en) * | 2008-05-09 | 2011-06-07 | Sandisk Corporation | Dynamic and adaptive optimization of read compare levels based on memory cell threshold voltage distribution |
US8055942B2 (en) * | 2009-12-03 | 2011-11-08 | Seagate Technology Llc | Data storage devices and methods for power-on initialization |
TWI447733B (zh) * | 2010-04-14 | 2014-08-01 | Phison Electronics Corp | 計算補償電壓與調整門檻值電壓之方法及記憶體裝置與控制器 |
US8411519B2 (en) * | 2010-06-04 | 2013-04-02 | Apple Inc. | Selective retirement of blocks |
TWI428743B (zh) * | 2010-12-24 | 2014-03-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US9396080B2 (en) * | 2014-08-07 | 2016-07-19 | Sandisk Technologies Llc | Storage module and method for analysis and disposition of dynamically tracked read error events |
-
2015
- 2015-02-11 TW TW104104527A patent/TWI512462B/zh active
- 2015-04-23 US US14/693,885 patent/US9563508B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7817480B2 (en) * | 2002-09-25 | 2010-10-19 | Renesas Electronics Corporation | Nonvolatile memory |
US7483297B2 (en) * | 2003-02-26 | 2009-01-27 | Renesas Technology Corp. | Nonvolatile memory card |
TWI467379B (zh) * | 2012-04-23 | 2015-01-01 | Phison Electronics Corp | 系統運作方法、記憶體控制器與記憶體儲存裝置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI601011B (zh) * | 2016-07-05 | 2017-10-01 | 慧榮科技股份有限公司 | 偵測使用中邏輯頁面之資料儲存裝置與資料儲存方法 |
US10248339B2 (en) | 2016-07-05 | 2019-04-02 | Silicon Motion, Inc. | Data storage device and data storage method for detecting currently-used logical pages |
CN110727390A (zh) * | 2018-07-16 | 2020-01-24 | 深圳大心电子科技有限公司 | 存储器管理方法以及存储控制器 |
Also Published As
Publication number | Publication date |
---|---|
US20160232053A1 (en) | 2016-08-11 |
US9563508B2 (en) | 2017-02-07 |
TW201629772A (zh) | 2016-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI512462B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI521513B (zh) | 讀取電壓設定方法、控制電路與記憶體儲存裝置 | |
CN111078149B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US9019770B2 (en) | Data reading method, and control circuit, memory module and memory storage apparatus and memory module using the same | |
TWI515734B (zh) | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI545572B (zh) | 記憶胞程式化方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI582779B (zh) | 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元 | |
US9530509B2 (en) | Data programming method, memory storage device and memory control circuit unit | |
US9514848B2 (en) | Solid state drive and associated error check and correction method | |
US8972653B2 (en) | Memory management method, and memory controller and memory storage apparatus using the same | |
US9947417B2 (en) | Memory management method, memory storage device and memory controlling circuit unit | |
TW201642266A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
US10685711B1 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
TWI556248B (zh) | 記憶體程式化方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9312013B1 (en) | Configuration method of erase operation, memory controlling circuit unit and memory storage device | |
TWI501245B (zh) | 資料讀取方法、控制電路、記憶體模組與記憶體儲存裝置 | |
US20140050024A1 (en) | Data reading method, and circuit, rewritable non-volatile memory module and memory storage apparatus using the same | |
CN105810246B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TW201814717A (zh) | 記憶體程式化方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN105761754B (zh) | 存储单元编程方法、存储器控制电路单元与存储装置 |