TWI545581B - 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents

資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 Download PDF

Info

Publication number
TWI545581B
TWI545581B TW103113696A TW103113696A TWI545581B TW I545581 B TWI545581 B TW I545581B TW 103113696 A TW103113696 A TW 103113696A TW 103113696 A TW103113696 A TW 103113696A TW I545581 B TWI545581 B TW I545581B
Authority
TW
Taiwan
Prior art keywords
data
unit
entity
segment
erasing unit
Prior art date
Application number
TW103113696A
Other languages
English (en)
Other versions
TW201539465A (zh
Inventor
梁鳴仁
Original Assignee
群聯電子股份有限公司
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 群聯電子股份有限公司 filed Critical 群聯電子股份有限公司
Priority to TW103113696A priority Critical patent/TWI545581B/zh
Priority to US14/302,445 priority patent/US9430325B2/en
Publication of TW201539465A publication Critical patent/TW201539465A/zh
Application granted granted Critical
Publication of TWI545581B publication Critical patent/TWI545581B/zh

Links

Classifications

    • 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

Description

資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
本發明是有關於一種資料寫入機制,且特別是有關於一種用於可複寫式非揮發性記憶體模組的資料寫入方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,可複寫式非揮發性記憶體模組內的每一個實體區塊的使用壽命是與實體區塊的抹除次數有關。在一個實體區塊被重複的抹除之後,儲存在此實體區塊內的資料的錯誤位元會逐漸增加。當資料的錯誤位元數超過可以正確地被更正的數量(例如,實體區塊的抹除次數超過一抹除次數上限)時,此實體區塊往往會被捨棄不用。
本發明提供一種資料寫入方法、記憶體儲存裝置及記憶體控制電路單元,可在實體抹除單元的位元錯誤率升高時,改為利用可靠度較高的方式來持續使用此實體抹除單元,而不是直接將其捨棄不用。
本發明提供一種資料寫入方法,用於控制可複寫式非揮發性記憶體模組,可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一所述實體抹除單元包括多個實體程式化單元,並且所述資料寫入方法包括:接收寫入指令,其中寫入指令指示將一資料寫入至多個邏輯單元的至少其中之一,其中所述邏輯單元的至少其中之一映射至所述實體程式化單元中的第一實體程式化單元,並且第一實體程式化單元屬於所述實體抹除單元中的第一實體抹除單元;判斷第一實體抹除單元屬於第一類實體抹除單元或第二類實體抹除單元,其中第一類實體抹除單元的第一位元錯誤率低於第二類實體抹除單元的第二位元錯誤率;當第一實體抹除單元屬於第一類實體抹除單元時,依據第一碼率(code rate)來將資料與對應於資料的一校驗碼程式化至第一實體程式化單元;以及當第一實體抹除單元屬於第二類實體抹除單元時,依據第二碼率來將資料與對應於資料的校驗碼程式化至第一實體程式化單元,其中第一碼率高於第二碼率。
在本發明的一範例實施例中,所述判斷第一實體抹除單 元屬於第一類實體抹除單元或第二類實體抹除單元的步驟包括:判斷第一實體抹除單元的位元錯誤率評估值是否符合門檻條件;若第一實體抹除單元的位元錯誤率評估值不符合門檻條件,判定第一實體抹除單元屬於第一類實體抹除單元;以及若第一實體抹除單元的位元錯誤率評估值符合門檻條件,判定第一實體抹除單元屬於第二類實體抹除單元。
在本發明的一範例實施例中,所述資料寫入方法更包括:根據第一實體抹除單元的抹除次數資訊、寫入次數資訊、讀取次數資訊、錯誤位元數資訊、錯誤位元率資訊、資料存放時間資訊及溫度資訊的至少其中之一或至少二者之組合,來決定第一實體抹除單元的位元錯誤率評估值。
在本發明的一範例實施例中,所述依據第一碼率來將資料與對應於資料的校驗碼寫入至第一實體程式化單元的步驟包括:將資料分成至少一第一資料段並且產生至少一第一校驗碼段,其中每一所述第一校驗碼段對應於所述第一資料段的其中之一。所述依據第二碼率來將資料與對應於資料的校驗碼寫入至第一實體程式化單元的步驟包括:將資料分成至少一第二資料段並且產生至少一第二校驗碼段,其中每一所述第二校驗碼段對應於所述第二資料段的其中之一。其中每一所述第一資料段的一資料長度相同於每一所述第二資料段的一資料長度,並且每一所述第一校驗碼段的一資料長度短於每一所述第二校驗碼段的一資料長度。
在本發明的一範例實施例中,所述其中依據第一碼率來將資料與對應於資料的校驗碼寫入至第一實體程式化單元的步驟包括:將資料分成至少一第一資料段並且產生至少一第一校驗碼段,其中每一所述第一校驗碼段對應於所述第一資料段的其中之一。所述依據第二碼率來將資料與對應於資料的校驗碼寫入至第一實體程式化單元的步驟包括:將資料分成至少一第二資料段並且產生至少一第二校驗碼段,其中每一所述第二校驗碼段對應於所述第二資料段的其中之一。其中每一所述第一資料段的一資料長度長於每一所述第二資料段的一資料長度,並且每一所述第一校驗碼段的一資料長度相同於每一所述第二校驗碼段的一資料長度。
在本發明的一範例實施例中,所述依據第二碼率來將資料與對應於資料的校驗碼寫入至第一實體程式化單元的步驟包括:判斷資料的資料長度是否超過N個基本管理單位的資料長度,其中N是正整數,並且N+1個基本管理單位的資料長度等於第一實體程式化單元的容量大小;當資料的資料長度不超過N個基本管理單位的資料長度時,僅依據第二碼率將資料與對應於資料的校驗碼寫入至第一實體程式化單元;以及當資料的資料長度超過N個基本管理單位的資料長度時,依據第二碼率將第一部分的資料與第一部分的校驗碼寫入至第一實體程式化單元並且將第二部份的資料與第二部份的校驗碼寫入至所述實體程式化單元中的第二實體程式化單元。
在本發明的一範例實施例中,所述第二實體程式化單元屬於第一實體抹除單元或者所述實體抹除單元中亦屬於第二類實體抹除單元的第二實體抹除單元。
在本發明的一範例實施例中,所述第一部分的資料的資料長度符合N個基本管理單位的資料長度,並且所述資料寫入方法更包括:將至少一第一無效位元寫入至第一實體程式化單元中以填滿未被第一部分的資料與第一部分的校驗碼所寫滿的部分;以及將至少一第二無效位元寫入至第二實體程式化單元中以填滿未被第二部分的資料與第二部分的校驗碼所寫滿的部分。
本發明另提供一種記憶體儲存裝置,所述記憶體儲存裝置包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個實體抹除單元,並且每一所述實體抹除單元包括多個實體程式化單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組。其中記憶體控制電路單元用以接收寫入指令,其中寫入指令指示將資料寫入至多個邏輯單元的至少其中之一,其中所述邏輯單元的至少其中之一映射至所述實體程式化單元中的第一實體程式化單元,並且第一實體程式化單元屬於所述實體抹除單元中的第一實體抹除單元。記憶體控制電路單元更用以判斷第一實體抹除單元屬於第一類實體抹除單元或第二類實體抹除單元,其中第一類實體抹除單元的第一位元錯誤率低於第二類實體抹除單元的第二位元錯誤率。當第一 實體抹除單元屬於第一類實體抹除單元時,記憶體控制電路單元更用以依據第一碼率來將資料與對應於資料的校驗碼程式化至第一實體程式化單元。當第一實體抹除單元屬於第二類實體抹除單元時,記憶體控制電路單元更用以依據第二碼率來將資料與對應於資料的校驗碼程式化至第一實體程式化單元,其中第一碼率高於第二碼率。
在本發明的一範例實施例中,所述記憶體控制電路單元判斷第一實體抹除單元屬於第一類實體抹除單元或第二類實體抹除單元的操作包括:判斷第一實體抹除單元的位元錯誤率評估值是否符合門檻條件;若第一實體抹除單元的位元錯誤率評估值不符合門檻條件,判定第一實體抹除單元屬於第一類實體抹除單元;以及若第一實體抹除單元的位元錯誤率評估值符合門檻條件,判定第一實體抹除單元屬於第二類實體抹除單元。
在本發明的一範例實施例中,所述記憶體控制電路單元更用以根據第一實體抹除單元的抹除次數資訊、寫入次數資訊、讀取次數資訊、錯誤位元數資訊、錯誤位元率資訊、資料存放時間資訊及溫度資訊的至少其中之一或至少二者之組合,來決定第一實體抹除單元的位元錯誤率評估值。
在本發明的一範例實施例中,所述記憶體控制電路單元依據第一碼率來將資料與對應於資料的校驗碼寫入至第一實體程式化單元的操作包括:將資料分成至少一第一資料段並且產生至少一第一校驗碼段,其中每一所述第一校驗碼段對應於所述第一 資料段的其中之一。所述記憶體控制電路單元依據第二碼率來將資料與對應於資料的校驗碼寫入至第一實體程式化單元的操作包括:將資料分成至少一第二資料段並且產生至少一第二校驗碼段,其中每一所述第二校驗碼段對應於所述第二資料段的其中之一。其中每一所述第一資料段的一資料長度相同於每一所述第二資料段的一資料長度,並且每一所述第一校驗碼段的一資料長度短於每一所述第二校驗碼段的一資料長度。
在本發明的一範例實施例中,所述記憶體控制電路單元依據第一碼率來將資料與對應於資料的校驗碼寫入至第一實體程式化單元的操作包括:將資料分成至少一第一資料段並且產生至少一第一校驗碼段,其中每一所述第一校驗碼段對應於所述第一資料段的其中之一。所述記憶體控制電路單元依據第二碼率來將資料與對應於資料的校驗碼寫入至第一實體程式化單元的操作包括:將資料分成至少一第二資料段並且產生至少一第二校驗碼段,其中每一所述第二校驗碼段對應於所述第二資料段的其中之一。其中每一所述第一資料段的一資料長度長於每一所述第二資料段的一資料長度,並且每一所述第一校驗碼段的一資料長度相同於每一所述第二校驗碼段的一資料長度。
在本發明的一範例實施例中,所述記憶體控制電路單元依據第二碼率來將資料與對應於資料的校驗碼寫入至第一實體程式化單元的操作包括:判斷資料的資料長度是否超過N個基本管理單位的資料長度,其中N是正整數,並且N+1個基本管理單位 的資料長度等於第一實體程式化單元的容量大小;當資料的資料長度不超過N個基本管理單位的資料長度時,僅依據第二碼率將資料與對應於資料的校驗碼寫入至第一實體程式化單元;以及當資料的資料長度超過N個基本管理單位的資料長度時,依據第二碼率將第一部分的資料與第一部分的校驗碼寫入至第一實體程式化單元並且將第二部份的資料與第二部份的校驗碼寫入至所述實體程式化單元中的第二實體程式化單元。
在本發明的一範例實施例中,所述第一部分的資料的一資料長度符合N個基本管理單位的資料長度。所述記憶體控制電路單元更用以將至少一第一無效位元寫入至第一實體程式化單元中以填滿未被第一部分的資料與第一部分的校驗碼所寫滿的部分。所述記憶體控制電路單元更用以將至少一第二無效位元寫入至第二實體程式化單元中以填滿未被第二部分的資料與第二部分的校驗碼所寫滿的部分。
本發明另提供一種記憶體控制電路單元,所述記憶體控制電路單元用於控制可複寫式非揮發性記憶體模組。其中可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一所述實體抹除單元包括多個實體程式化單元,並且記憶體控制電路單元包括主機介面、記憶體介面、錯誤檢查與校正電路及記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面、記憶體介面及錯誤檢查與校正電路。其中記憶體管理電路用以接收寫入 指令,其中寫入指令指示將資料寫入至多個邏輯單元中的至少其中之一,其中所述邏輯單元中的至少其中之一映射至所述實體程式化單元中的第一實體程式化單元,並且第一實體程式化單元屬於所述實體抹除單元中的一第一實體抹除單元。記憶體控制電路單元更用以判斷第一實體抹除單元屬於第一類實體抹除單元或第二類實體抹除單元,其中第一類實體抹除單元的第一位元錯誤率低於第二類實體抹除單元的第二位元錯誤率。當第一實體抹除單元屬於第一類實體抹除單元時,記憶體管理電路更用以發送第一指令序列,其中第一指令序列指示依據第一碼率將資料與對應於資料的校驗碼程式化至第一實體程式化單元。當第一實體抹除單元屬於第二類實體抹除單元時,記憶體管理電路更用以發送第二指令序列,其中第二指令序列指示依據第二碼率將資料與對應於資料的校驗碼程式化至第一實體程式化單元,其中第一碼率高於第二碼率。
在本發明的一範例實施例中,所述記憶體管理電路判斷第一實體抹除單元屬於第一類實體抹除單元或第二類實體抹除單元的操作包括:判斷第一實體抹除單元的位元錯誤率評估值是否符合門檻條件;若第一實體抹除單元的位元錯誤率評估值不符合門檻條件,判定第一實體抹除單元屬於第一類實體抹除單元;以及若第一實體抹除單元的位元錯誤率評估值符合門檻條件,判定第一實體抹除單元屬於第二類實體抹除單元。
在本發明的一範例實施例中,所述記憶體管理電路更用 以根據第一實體抹除單元的抹除次數資訊、寫入次數資訊、讀取次數資訊、錯誤位元數資訊、錯誤位元率資訊、資料存放時間資訊及溫度資訊的至少其中之一或至少二者之組合,來決定第一實體抹除單元的位元錯誤率評估值。
在本發明的一範例實施例中,所述記憶體管理電路發送第一指令序列的操作更包括:將資料分成至少一第一資料段並且控制錯誤檢查與校正電路產生至少一第一校驗碼段,其中每一所述第一校驗碼段對應於所述第一資料段的其中之一。其中記憶體管理電路發送第二指令序列的操作更包括:將資料分成至少一第二資料段並且控制錯誤檢查與校正電路產生至少一第二校驗碼段,其中每一所述第二校驗碼段對應於所述第二資料段的其中之一。其中每一所述第一資料段的一資料長度相同於每一所述第二資料段的一資料長度,並且每一所述第一校驗碼段的一資料長度短於每一所述第二校驗碼段的一資料長度。
在本發明的一範例實施例中,所述記憶體管理電路發送第一指令序列的操作更包括:將資料分成至少一第一資料段並且控制錯誤檢查與校正電路產生至少一第一校驗碼段,其中每一所述第一校驗碼段對應於所述第一資料段的其中之一。其中記憶體管理電路發送第二指令序列的操作更包括:將資料分成至少一第二資料段並且控制錯誤檢查與校正電路產生至少一第二校驗碼段,其中每一所述第二校驗碼段對應於所述第二資料段的其中之一。其中每一所述第一資料段的一資料長度長於每一所述第二資 料段的一資料長度,並且每一所述第一校驗碼段的一資料長度相同於每一所述第二校驗碼段的一資料長度。
在本發明的一範例實施例中,所述記憶體管理電路發送第二指令序列的操作包括:判斷資料的資料長度是否超過N個基本管理單位的資料長度,其中N是正整數,並且N+1個基本管理單位的資料長度等於第一實體程式化單元的容量大小。當資料的資料長度不超過N個基本管理單位的資料長度時,發送第二指令序列,其中第二指令序列指示依據第二碼率而僅將資料與對應於資料的校驗碼寫入至第一實體程式化單元。當資料的資料長度超過N個基本管理單位的資料長度時,發送第二指令序列,其中第二指令序列指示依據第二碼率將第一部分的資料與第一部分的校驗碼需寫入至第一實體程式化單元並且將第二部份的資料與第二部份的校驗碼寫入至所述實體程式化單元中的一第二實體程式化單元。
在本發明的一範例實施例中,所述第一部分的資料的資料長度符合N個基本管理單位的資料長度。第二指令序列更指示至少一第一無效位元需被寫入至第一實體程式化單元中以填滿未被第一部分的資料與第一部分的校驗碼所寫滿的部分,以及至少一第二無效位元需被寫入至第二實體程式化單元中以填滿未被第二部分的資料與第二部分的校驗碼所寫滿的部分。
基於上述,本發明提出的資料寫入方法、記憶體儲存裝置及記憶體控制電路單元,可根據可複寫式非揮發性記憶體模組 中的實體抹除單元是第一類實體抹除單元或第二類實體抹除單元,而適應性地根據第一碼率或高於第一碼率的第二碼率來將資料與對應於此資料的校驗碼程式化至此實體抹除單元的實體程式化單元。藉此,即使實體抹除單元的位元錯誤率超過預設的容許範圍,此實體抹除單元還是可以被持續使用,而不會直接被捨棄。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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‧‧‧可複寫式非揮發性記憶體模組
304(0)~304(R)‧‧‧實體抹除單元
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
252‧‧‧緩衝記憶體
254‧‧‧電源管理電路
256‧‧‧錯誤檢查與校正電路
402‧‧‧儲存區
406‧‧‧系統區
410(0)~410(D)‧‧‧邏輯位址
501、601、701、801‧‧‧資料
510(0)~510(A)、610(0)~610(C)、710(0)~710(F)、810(0)~810(H)‧‧‧邏輯程式化單元
512(0)~512(B)、612(0)~612(E)、712(0)~712(G)、812(0)~812(I)‧‧‧實體程式化單元
501_1~501_4、601_1~601_4、701_1~701_8、801_1~801_5‧‧‧資料段
502_1~502_4、602_1~602_4、702_1~702_8、802_1~802_5‧‧‧校驗碼段
S902、S904、S906、S908‧‧‧資料寫入方法各步驟
S1002、S1004、S1006、S1008、S1010、S1012‧‧‧資料寫入方法各步驟
圖1A是根據本發明之一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖1B是根據本發明之一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明之一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明之一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
圖4是根據本發明之一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖5是根據本發明之一範例實施例所繪示的根據第一碼率將 資料與對應於此資料之校驗碼至實體程式化單元的範例示意圖。
圖6是根據本發明之一範例實施例所繪示的根據第二碼率將資料與對應於此資料的校驗碼寫入至實體程式化單元的範例示意圖。
圖7是根據本發明之另一範例實施例所繪示的根據第二碼率將資料與對應於此資料的校驗碼寫入至實體程式化單元的範例示意圖。
圖8是根據本發明之另一範例實施例所繪示的根據第二碼率將資料與對應於此資料的校驗碼寫入至實體程式化單元的範例示意圖。
圖9是根據本發明之一範例實施例所繪示的資料寫入方法的流程圖。
圖10是根據本發明之另一範例實施例所繪示的資料寫入方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1A是根據本發明之一範例實施例所繪示的主機系統與記憶體儲存裝置。
請參照圖1A,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖1B的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖2所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包 括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
請參照圖2,記憶體儲存裝置100包括連接介面單元102、記憶體控制電路單元104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接介面單元102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、安全數位(Secure Digital,SD)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。在本範例實施例中,連接介面單元可與記憶體控制電路單元封裝在一個晶片中,或佈設於一包含記憶體控制電路單元之晶片外。
記憶體控制電路單元104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制電路單元104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106具有實體抹除單元304(0)~304(R)。例如,實體抹除單元304(0)~304(R)可屬於同一個記憶體晶粒(die)或者屬於不同的記憶體晶粒。每一實體抹除單元分別具有複數個實體程式化單元,並且屬於同一個實體抹除單元之實體程式化單元可被獨立地寫入且被同時地抹除。例如,每一實體抹除單元是由128個實體程式化單元所組成。然而,必須瞭解的是,本發明不限於此,每一實體抹除單元是可由64個實體程式化單元、256個實體程式化單元或其他任意個實體程式化單元所組成。
更具體來說,每一個實體抹除單元包括多條字元線與多條位元線,每一條字元線與每一條位元線交叉處配置有一個記憶胞。每一個記憶胞可儲存一或多個位元。在同一個實體抹除單元中,所有的記憶胞會一起被抹除。在此範例實施例中,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊。另一方面,同一個字元線上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一個字元線上 的實體程式化單元可被分類為下實體程式化單元與上實體程式化單元。一般來說,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度。在此範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面或是實體扇(sector)。在本範例實施例中,實體程式化單元為實體頁面,並且每一個實體程式化單元包括資料位元區與冗餘位元區。資料位元區包含多個實體扇,用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,校驗碼)。在本範例實施例中,每一個資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte,B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,本發明並不限制實體扇的大小以及個數。
在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組,即一個記憶胞中可儲存至少2個位元。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖3是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖3,記憶體控制電路單元104包括記憶體管理電 路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制電路單元104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路202的操作時,等同於說明記憶體控制電路單元104的操作,以下並不再贅述。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元104被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106的實體抹除單元;記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除單元用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標 準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明之一範例實施例中,記憶體控制電路單元104還包括緩衝記憶體252、電源管理電路254與錯誤檢查與校正電路256。
緩衝記憶體252是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的校驗碼,並且記憶體管理電路202會將對應此寫入指令的資料與對應的校驗碼寫入至可複寫式非揮發性記憶體模組106中。例如,此校驗碼包括錯誤更正碼(error correcting code,ECC code)與錯誤偵測碼(error detecting code,EDC code)的至少其中之一。此 外,此校驗碼還可以包括任意可以用來對資料的正確性進行驗證的碼,本發明不加以限制。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的校驗碼,並且錯誤檢查與校正電路256會依據此校驗碼對所讀取的資料執行錯誤檢查與校正程序。
圖4是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
必須瞭解的是,在此描述可複寫式非揮發性記憶體模組106之實體抹除單元的運作時,以“提取”、“分組”、“劃分”、“關聯”等詞來操作實體抹除單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組之實體抹除單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組的實體抹除單元進行操作。
請參照圖4,記憶體管理電路202可將可複寫式非揮發性記憶體模組106的實體抹除單元304(0)~304(R)邏輯地劃分為多個區域,例如為儲存區402與系統區406。
儲存區402的實體抹除單元是用以儲存來自主機系統1000的資料。儲存區402中會儲存有效資料與無效資料。例如,當主機系統要刪除一份有效資料時,被刪除的資料可能還是儲存在儲存區402中,但會被標記為無效資料。沒有儲存有效資料的實體抹除單元亦被稱為閒置實體抹除單元。沒有儲存有效資料的實體程式化單元亦被稱為閒置實體程式化單元。例如,被抹除以 後的實體抹除單元便會成為閒置實體抹除單元。若儲存區402或系統區406中有實體抹除單元損壞時,儲存區402中的實體抹除單元也可以用來替換損壞的實體抹除單元。倘若儲存區402中沒有可用的實體抹除單元來替換損壞的實體抹除單元時,則記憶體管理電路202會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
系統區406的實體抹除單元是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體抹除單元數、每一實體抹除單元的實體程式化單元數等。
儲存區402與系統區406的實體抹除單元的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體抹除單元關聯至儲存區402與系統區406的分組關係會動態地變動。例如,當系統區406中的實體抹除單元損壞而被儲存區402的實體抹除單元取代時,則原本在儲存區402的實體抹除單元會被關聯至系統區406。
記憶體管理電路202會配置邏輯位址410(0)~410(D)以映射至儲存區402中部份的實體抹除單元304(0)~304(A)。主機系統1000是透過邏輯位址410(0)~410(D)來存取儲存區402中的資料。在此範例實施例中,一個邏輯位址是映射至一個實體扇,多個邏輯位址會組成一個邏輯程式化單元,並且多個邏輯程式化單元會組成一個邏輯抹除單元。一個邏輯程式化單元可以是映射至一或多個實體程式化單元,而一個邏輯抹除單元可以是映射至一或多 個實體抹除單元。
記憶體管理電路202會接收來自主機系統1000的寫入指令。此寫入指令指示將一資料寫入至一或多個邏輯單元。在本範例實施例中,一個邏輯單元是指邏輯位址410(0)~410(D)中的一個邏輯位址(亦稱為第一邏輯位址)。第一邏輯位址屬於一或多個第一邏輯程式化單元,並且第一邏輯程式化單元映射至儲存區402的一或多個第一實體程式化單元。然而,在另一範例實施例中,一個邏輯單元也可以是指一個邏輯程式化單元(例如,第一邏輯程式化單元)。在將資料寫入至第一實體程式化單元之前,記憶體管理電路202會判斷第一實體程式化單元所屬的實體抹除單元(亦稱為第一實體抹除單元)是第一類實體抹除單元或第二類實體程式化單元。其中,第一類實體抹除單元的位元錯誤率(bit error rate,第一類實體抹除單元的位元錯誤率亦稱為第一位元錯誤率)會低於第二類實體程式化單元的位元錯誤率(亦稱為第二位元錯誤率)。實體抹除單元的位元錯誤率指的是儲存在此實體抹除單元中的資料被讀取後,錯誤位元在所讀取出的資料中所佔的比例。在一範例實施例中,亦可將第二類實體程式化單元稱為高錯誤率實體程式化單元。
在一範例實施例中,記憶體管理電路202會判斷第一實體抹除單元的位元錯誤率評估值是否符合門檻條件。若第一實體抹除單元的位元錯誤率評估值不符合門檻條件,記憶體管理電路202會判定第一實體抹除單元屬於第一類實體抹除單元。若第一實 體抹除單元的位元錯誤率評估值符合門檻條件,則記憶體管理電路202會判定第一實體抹除單元屬於第二類實體抹除單元。例如,在一範例實施例中,一個實體抹除單元的位元錯誤率評估值具有兩種狀態,分別是“0”或“1”。只有當一個實體抹除單元的位元錯誤率評估值是“1”時,記憶體管理電路202會判定此實體抹除單元的位元錯誤率評估值符合門檻條件。
此外,在另一範例實施例中,一個實體抹除單元的位元錯誤率評估值則可以具有兩種以上的狀態,並且每一種狀態與此實體抹除單元的位元錯誤率有關。在一範例實施例中,位元錯誤率評估值可以是0~100中的任一個數值。一個實體抹除單元的位元錯誤率評估值越高,表示此實體抹除單元的位元錯誤率越高。一個實體抹除單元的位元錯誤率評估值越低,表示此實體抹除單元的位元錯誤率越低。只有當實體抹除單元的位元錯誤率評估值達到一個門檻值(例如,70)時,記憶體管理電路202會判定此實體抹除單元的位元錯誤率評估值符合門檻條件。此外,位元錯誤率評估值也可以是以任意的形式來表示,而不限於上述。
一般來說,實體抹除單元的位元錯誤率與實體抹除單元的抹除次數、寫入次數及讀取次數呈正相關(positive correlation)。其中,實體抹除單元的抹除次數、寫入次數及讀取次數分別指的是實體抹除單元被抹除、寫入及讀取過的次數。一個實體抹除單元的抹除次數、寫入次數及讀取次數的至少其中之一越高,則儲存在此實體抹除單元中的資料被讀取時所包含的錯誤位元之數量 可能會越多。其中,又以抹除次數對於實體抹除單元的位元錯誤率的影響最大。此外,在某些情況下,實體抹除單元的位元錯誤率也可能會與實體抹除單元的資料存放時間及/或溫度有關。實體抹除單元的資料存放時間指的是資料被儲存在實體抹除單元內多久了,並且可以是取一個實體抹除單元中的每一筆資料的存放時間中的最大者或平均值,且不限於此。此外,可複寫式非揮發性記憶體模組106中的各個實體抹除單元的溫度可能相同也可以不同,但通常會有些微差異。
當一個實體抹除單元的抹除次數、寫入次數及讀取次數至少其中之一超過一預設次數、一個實體抹除單元的資料存放時間超過一預設時間及/或一個實體抹除單元的溫度超出一預設溫度範圍時,儲存在此實體抹除單元中的資料被讀取時所包含的錯誤位元數及/或錯誤位元率會大幅升高,並且有很高的機率會超過錯誤檢查與校正電路256所能夠偵測及/或校正的錯誤位元之最大數量。因此,在一範例實施例中,記憶體管理電路202可以根據一個實體抹除單元的抹除次數資訊、寫入次數資訊、讀取次數資訊、錯誤位元數資訊、錯誤位元率資訊、資料存放時間資訊及溫度資訊的至少其中之一或至少二者之組合,來決定此實體抹除單元的位元錯誤率評估值。例如,在一範例實施例中,根據抹除次數資訊,記憶體管理電路202會判斷第一實體抹除單元的抹除次數是否超過一預設次數。此預設次數例如是由廠商預先設定或由使用者自行設定。例如,此預設次數可以是3000次或者更多或更少。 當第一實體抹除單元的抹除次數超過此預設次數時,記憶體管理電路202會將第一實體抹除單元的位元錯誤率評估值設為“1”或相對應的任意數值。反之,當第一實體抹除單元的抹除次數沒有超過此預設次數時,則記憶體管理電路202會將第一實體抹除單元的位元錯誤率評估值設為“0”或相對應的任意數值。
換句話說,對於一個全新的可複寫式非揮發性記憶體模組來說,此可複寫式非揮發性記憶體模組中所有的實體抹除單元都會是第一類實體抹除單元。然而,隨著此可複寫式非揮發性記憶體模組的使用時間增加,在此可複寫式非揮發性記憶體模組中將會有越來越多的實體抹除單元會因為被執行抹除、寫入及/或讀取操作的次數增加而成為第二類實體抹除單元。或者,根據資料儲存時間增加與溫度變化,部分的第一類實體抹除單元也可能會轉變為第二類實體抹除單元。換言之,任何會影響實體抹除單元的位元錯誤率的因素,都可以用來作為判斷一個實體抹除單元是第一類實體抹除單元或第二類實體抹除單元的依據。
記憶體管理電路202可以將被判定為是第二類實體抹除單元的實體抹除單元紀錄在一表格。當記憶體管理電路202欲將資料寫入至屬於第一實體抹除單元的第一實體程式化單元時,記憶體管理電路202可以查詢此表格,以得知第一實體抹除單元是第一類實體抹除單元或第二類實體抹除單元。此外,記憶體管理電路202也可以是以分區或分組的方式,將被判定為是第二類實體抹除單元的實體抹除單元關聯至儲存區402中的一高錯誤率區 或一高錯誤率群組,本發明不加以限制。
根據第一實體抹除單元是第一類實體抹除單元或第二類實體抹除單元,記憶體管理電路202會選擇性地根據一第一碼率(code rate)或一第二碼率來將此資料與對應於此資料的校驗碼程式化(programming)至第一實體程式化單元,其中第一碼率高於第二碼率。例如,當第一實體抹除單元是第一類實體抹除單元時,記憶體管理電路202會依據第一碼率來將此資料與對應於此資料的校驗碼程式化至第一實體程式化單元。當第一實體抹除單元是第二類實體抹除單元時,則記憶體管理電路202會依據第二碼率來將此資料與對應於此資料的校驗碼程式化至第一實體程式化單元。在一範例實施例中,程式化亦可被稱為寫入。也就是說,將一筆資料程式化至一個實體程式化單元,等同於將一筆資料寫入至一個實體程式化單元。
詳細而言,記憶體管理電路202會將欲寫入之資料分成一或多個資料段並且控制檢查與校正電路256產生一或多個校驗碼段,其中每一個校驗碼段對應於一個資料段。在此,一個資料段是用來產生一個校驗碼段的單位,並且一個校驗碼段是用來對其對應的資料段進行驗證及/或校正。舉例來說,假設k是一個資料段的資料長度,並且n-k是對應於此資料段的校驗碼段的資料長度,則k與n的比值(即,k/n)可稱為碼率。特別是,若欲寫入之資料的資料長度符合一個資料段的資料長度,則此資料本身就是一個資料段,並且對應於此資料的校驗碼就是對應於此資料段 的校驗碼段。若欲寫入之資料的資料長度符合多個資料段的資料長度之總和,則此資料可以被分為多個資料段,並且對應於此資料的校驗碼會包括對應於此些資料段的多個校驗碼段。
在本範例實施例中,當第一實體抹除單元是第一類實體抹除單元時,記憶體管理電路202是根據預設的資料段的資料長度與校驗碼段的資料長度(即,第一碼率)來將欲寫入之資料與對應的校驗碼寫入至第一實體程式化單元。
圖5是根據本發明之一範例實施例所繪示的根據第一碼率將資料與對應於此資料之校驗碼至實體程式化單元的範例示意圖。
請參照圖5,假設來自主機系統1000的寫入指令指示將資料501寫入至邏輯位址410(0)。例如,資料501的資料長度是4KB(1KB=1024bytes)。假設邏輯位址410(0)屬於邏輯程式化單元510(0),則記憶體管理電路202會將資料501寫入至邏輯程式化單元510(0)。邏輯程式化單元510(0)映射至實體程式化單元512(0)。當實體程式化單元512(0)所屬的實體抹除單元304(0)是第一類實體抹除單元時,基於資料501的資料長度,記憶體管理電路202會將資料501分為資料段501_1~501_4。例如,每一個資料段501_1~501_4的資料長度是1KB。檢查與校正電路256會產生對應於資料段501_1~501_4的校驗碼段502_1~502_4。例如,每一個校驗碼段502_1~502_4的資料長度是70 B(1 B=1bytes)。也就是說,當一個資料長度是1KB的資料段被讀取時,此資料段可以 被依據資料長度是70 B的校驗碼段來進行驗證及/或校正。記憶體管理電路202會根據一預設規則將資料段501_1~501_4與校驗碼段502_1~502_4寫入至實體程式化單元512(0)。例如,在本範例實施例中,每一個儲存校驗碼段的實體位址範圍是接續於儲存此校驗碼段所對應的資料段的實體位址範圍(如圖5所示)。然而,在另一範例實施例中,所有的資料段與校驗碼段也可以是被分開地儲存。例如,將所有的資料段儲存在存放使用者資料的實體位址範圍,並且將所有的校驗碼段儲存在存放冗餘資料的實體位址範圍。
另一方面,在本範例實施例中,當第一實體抹除單元是第二類實體抹除單元時,記憶體管理電路202會增加每一個資料段所對應的校驗碼段的資料長度,以根據預設的資料段的資料長度與較長的校驗碼段的資料長度(即,第二碼率)來將欲寫入之資料與對應的校驗碼寫入至第一實體程式化單元。
圖6是根據本發明之一範例實施例所繪示的根據第二碼率將資料與對應於此資料的校驗碼寫入至實體程式化單元的範例示意圖。
請參照圖6,假設來自主機系統1000的寫入指令指示將資料601寫入至邏輯位址410(1)。例如,資料501的資料長度是4KB。假設邏輯位址410(1)屬於邏輯程式化單元610(0),則記憶體管理電路202會將資料601寫入至邏輯程式化單元610(0)。邏輯程式化單元610(0)映射至實體程式化單元612(0)。當實體程式化 單元612(0)所屬的實體抹除單元304(1)是第二類實體抹除單元時,基於資料601的資料長度,記憶體管理電路202會將資料601分為資料段601_1~601_4。例如,每一個資料段601_1~601_4的資料長度是1KB。檢查與校正電路256會產生對應於資料段601_1~601_4的校驗碼段602_1~602_4。例如,每一個校驗碼段602_1~602_4的資料長度是140 B。也就是說,在此範例實施例中,每一個校驗碼段的資料長度是圖5的範例實施例中的每一個校驗碼段的資料長度的2倍,且不限於此。例如,此倍數還可以是3倍、4倍或者更多。記憶體管理電路202根據上述預設規則將資料段601_1~601_4與校驗碼段602_1~602_4寫入至實體程式化單元612(0)。也就是說,當一個資料長度是1KB的資料段被讀取時,此資料段可以被依據資料長度是140 B的校驗碼段來進行驗證及/或校正。藉此,即使用來儲存資料的實體抹除單元是第二類實體抹除單元,所讀取之資料中更多的錯誤位元可以被找到及/或更正。例如,在圖5的範例實施例中,1個資料長度是1KB的資料段中約有40bits的錯誤位元可以被找到,而在此範例實施例中,1個資料長度是1KB的資料段中可能有80bits的錯誤位元可以被找到。
然而,在另一範例實施例中,當第一實體抹除單元是第二類實體抹除單元時,記憶體管理電路202不去改變校驗碼段的資料長度,而是去減少每一個資料段的資料長度,以根據較短的資料段的資料長度與預設的校驗碼段的資料長度(亦即,第二碼率) 來將欲寫入之資料與對應的校驗碼寫入至第一實體程式化單元。
圖7是根據本發明之另一範例實施例所繪示的根據第二碼率將資料與對應於此資料的校驗碼寫入至實體程式化單元的範例示意圖。
請參照圖7,假設來自主機系統1000的寫入指令指示將資料701寫入至邏輯位址410(2)。例如,資料701的資料長度是4KB。假設邏輯位址410(2)屬於邏輯程式化單元710(0),則記憶體管理電路202會將資料701寫入至邏輯程式化單元710(0)。邏輯程式化單元710(0)映射至實體程式化單元612(0)。當實體程式化單元712(0)所屬的實體抹除單元304(2)是第二類實體抹除單元時,基於資料701的資料長度,記憶體管理電路202會將資料701分為資料段701_1~701_8。例如,每一個資料段701_1~701_8的資料長度是512 B。也就是說,在此範例實施例中,每一個資料段的資料長度是圖5的範例實施例中的每一個資料段的資料長度的1/2倍,且不限於此。例如,此倍數還可以是1/3倍、1/4倍或者更少。檢查與校正電路256會產生對應於資料段701_1~701_8的校驗碼段702_1~702_8。例如,每一個校驗碼段702_1~702_8的資料長度是70 B。記憶體管理電路202根據上述預設規則將資料段701_1~701_8與校驗碼段702_1~702_8寫入至實體程式化單元712(0)。也就是說,當一個資料長度是512 B的資料段被讀取時,此資料段可以被依據資料長度是70 B的校驗碼段來進行驗證及/或校正。藉此,即使用來儲存資料的實體抹除單元是第二類實體 抹除單元,所讀取之資料中更多的錯誤位元可以被找到及/或更正。例如,在圖5的範例實施例中,1個資料長度是1KB的資料段中約有40bits的錯誤位元可以被找到,而在此範例實施例中,1個資料長度是512 B的資料段中可能有40bits的錯誤位元可以被找到。以此類推,在資料長度之總和是1KB的2個資料段中,就可能有80bits的錯誤位元可以被找到。
值得一提的是,若根據上述碼率的定義(即,k/n),則圖5的範例實施例中的第一碼率可以是以1024/(1024+70)來表示,圖6的範例實施例中的第二碼率可以是以1024/(1024+140)來表示,並且圖7的範例實施例中的第二碼率可以是以512/(512+70)來表示。也就是說,當一個實體抹除單元的位元錯誤率提高至無法使用預設的錯誤偵測機制來偵錯時,透過使用較低的碼率來對欲寫入至此實體抹除單元的資料進行編碼,此實體抹除單元仍然可以繼續使用,而不需要馬上將其視為無法使用或損壞的實體抹除單元。
值得一提的是,在圖5的範例實施例中,只需要一個實體程式化單元就可以完整的儲存資料長度不超過一個邏輯程式化單元之容量大小的資料與此資料所對應的校驗碼。例如,假設實體程式化單元512(0)的容量大小是8KB,則只要資料501的資料長度不超過8KB,則資料501與對應於資料501的校驗碼就可以被完整的寫入至實體程式化單元512(0)。在根據第二碼率來寫入資料與對應於此資料的校驗碼的另一實施例中,假設實體程式化 單元512(0)的容量大小是16KB,則只要資料501的資料長度不超過16KB,則資料501與對應於資料501的校驗碼就可以被完整的寫入至實體程式化單元512(0)。此外,實體程式化單元的容量大小還可以是32KB或者更大,而不限於此。然而,在圖6與圖7的範例實施例中,欲寫入之資料的資料長度不變,但是對應於此資料的校驗碼的資料長度增加了,因此,在某些例子中,即使欲寫入之資料的資料長度沒有超過一個邏輯程式化單元之容量大小,但是此資料的資料長度與對應於此資料的校驗碼之資料長度的總和仍有可能會超過一個實體程式化單元的容量大小。在此情況下,記憶體管理電路202通常會使用兩個或兩個以上的實體程式化單元來儲存資料與對應於此資料的校驗碼。亦即,將欲寫入之資料的一部份(亦稱為第一部分)寫入至第一實體程式化單元,並且將欲寫入之資料的另一部分(亦稱為第二部分)寫入至一第二實體程式化單元。例如,假設第一實體程式化單元的容量大小是8KB,則在一範例實施例中,第一實體程式化單元最多可以被用來儲存資料長度為7KB的資料與對應的資料長度為980 B(即,7×140或者14×70)校驗碼。若欲寫入之資料的資料長度為8KB,則此資料中資料長度為7KB的第一部分資料會被寫入至第一實體程式化單元,並且此資料中資料長度為1KB的第二部分資料則會被寫入至第二實體程式化單元。例如,第二實體程式化單元可以是屬於上述第一實體抹除單元、儲存區402中亦屬於第二類實體抹除單元的任一個實體抹除單元或者任意的實體抹除單元,本發明不加 以限制。
在一範例實施例中,記憶體管理電路202是以特定的一資料長度作為一個基本管理單位,並且根據此基本管理單位來將資料寫入至可複寫式非揮發性記憶體模組106。例如,一個基本管理單位的資料長度是4KB,且不限於此。一個實體程式化單元的容量大小可以是符合一或多個基本管理單位的資料長度。例如,當實體程式化單元的容量大小是8KB時,此實體程式化單元的容量大小符合2個基本管理單位的資料長度。當實體程式化單元的容量大小是16KB時,此實體程式化單元的容量大小符合4個基本管理單位的資料長度,以此類推。以容量大小為8KB的實體程式化單元為例,當欲寫入至此實體程式化單元之資料的資料長度不超過一個基本管理單位的資料長度時,記憶體管理電路202是以一個基本管理單位來將此資料寫入至此實體程式化單元。當欲寫入之資料的資料長度超過一個基本管理單位的資料長度並且不超過2個基本管理單位的資料長度時,記憶體管理電路202是以二個基本管理單位來將此資料寫入至此實體程式化單元。
在此範例實施例中,假設一個實體程式化單元的容量大小符合N+1個基本管理單位的資料長度,其中N是正整數。例如,N可以是1、3或5,且不限於此。當第一實體程式化單元是第二類實體抹除單元時,記憶體管理電路202會判斷欲寫入之資料的資料長度是否超過N個基本管理單位的資料長度,其中N是視第一實體程式化單元的容量大小而定。例如,當實體程式化單元的 容量大小是8KB時,表示此實體程式化單元的容量大小符合2個基本管理單位的資料長度,故N是1。當實體程式化單元的容量大小是16KB時,表示此實體程式化單元的容量大小符合4個基本管理單位的資料長度,故N是3,以此類推。當第一實體抹除單元是第二類實體抹除單元且欲寫入之資料的資料長度不超過N個基本管理單位的資料長度時,記憶體管理電路202即可僅依據第二碼率將欲寫入之資料與對應於此資料的校驗碼寫入至第一實體程式化單元。反之,當第一實體抹除單元是第二類實體抹除單元且欲寫入之資料的資料長度超過N個基本管理單位的資料長度時,記憶體管理電路202會依據第二碼率將欲寫入之資料的一第一部分與對應於此資料的校驗碼的一第一部分寫入至第一實體程式化單元,並且依據第二碼率將欲寫入之資料的一第二部分與對應於此資料的校驗碼的一第二部分寫入至第二實體程式化單元。例如,第二實體程式化單元可以是屬於上述第一實體抹除單元、儲存區402中亦屬於第二類實體抹除單元的任一個實體抹除單元或者任意的實體抹除單元,本發明不加以限制。
圖8是根據本發明之另一範例實施例所繪示的根據第二碼率將資料與對應於此資料的校驗碼寫入至實體程式化單元的範例示意圖。
請參照圖8,假設來自主機系統1000的寫入指令指示將資料801寫入至邏輯位址410(3)。例如,資料801的資料長度是5KB。假設邏輯位址410(3)屬於邏輯程式化單元810(0),則記憶體 管理電路202會將資料801寫入至邏輯程式化單元810(0)。邏輯程式化單元810(0)映射至實體程式化單元812(0)。當實體程式化單元812(0)所屬的實體抹除單元304(3)是第二類實體抹除單元時,基於資料801的資料長度,記憶體管理電路202會將資料801分為資料段801_1~801_5。例如,每一個資料段801_1~801_5的資料長度是1KB。檢查與校正電路256會產生對應於資料段801_1~801_5的校驗碼段802_1~802_5。例如,每一個校驗碼段802_1~802_5的資料長度是140 B。此外,資料801也可以是以圖7的範例實施例之方式來劃分為更多的資料段(例如,10個資料長度是512 B的資料段等),並且每一個校驗碼段的資料長度可以被設定為預設的校驗碼段的資料長度(例如,70 B),本發明不加以限制。記憶體管理電路202會判斷資料801的資料長度是否超過N個基本管理單位的資料長度。在此,假設實體程式化單元812(0)的容量大小是8KB,故N是1。記憶體管理電路202會判斷資料801的資料長度(例如,5KB)是否超過一個基本管理單位的資料長度(例如,4KB)。當資料801的資料長度超過一個基本管理單位的資料長度時,記憶體管理電路202會將資料段801_1~801_4與對應於資料段801_1~801_4的校驗碼段802_1~802_4寫入至實體程式化單元812(0),並且將資料段801_5與對應於資料段801_5的校驗碼段802_5寫入至實體程式化單元812(1),其中,資料段801_1~801_4的資料長度符合一個基本管理單位的資料長度。雖然在此範例實施例中第二實體程式化單元是以同樣屬於實體抹除單 元304(3)的實體程式化單元812(1)為例,但是,在另一範例實施例中,第二實體程式化單元也可以是屬於儲存區402中亦屬於第二類實體抹除單元的任一個實體抹除單元或者任意的實體抹除單元。也就是說,在將資料801寫入至實體程式化單元812(0)與812(1)之後,邏輯程式化單元810(0)是映射至實體程式化單元812(0)與812(1)。此外,若實體程式化單元812(0)的容量大小是16KB或者更多,則僅需將N設為3或者相對應的數值即可。
此外,在圖5至圖8的範例實施例中,當記憶體管理電路202在將資料段與校驗碼段寫入至第一實體程式化單元時,記憶體管理電路202會一併將一或多個第一無效位元寫入至第一實體程式化單元中未被資料段與校驗碼段所寫滿的部分。類似地,當記憶體管理電路202在將資料段與校驗碼段寫入至第二實體程式化單元時,記憶體管理電路202會一併將一或多個第二無效位元寫入至第二實體程式化單元中未被資料段與校驗碼段所寫滿的部分。第一無效位元與第二無效位元可以是任意的無效資料。
圖9是根據本發明之一範例實施例所繪示的資料寫入方法的流程圖。
請參照圖9,在步驟S902中,接收寫入指令,其中此寫入指令指示將資料寫入至多個邏輯單元中的至少其中之一,其中所述邏輯單元中的至少其中之一映射至第一實體程式化單元,並且第一實體程式化單元屬於第一實體抹除單元。
在步驟S904中,判斷第一實體抹除單元是第一類實體抹 除單元或第二類實體抹除單元。
當第一實體抹除單元是第一類實體抹除單元時,在步驟S906中,依據第一碼率來將此資料與對應於此資料的校驗碼程式化至此第一實體程式化單元。
當第一實體抹除單元是第二類實體抹除單元時,在步驟S908中,依據第二碼率來將此資料與對應於此資料的此校驗碼程式化至此第一實體程式化單元,其中此第一碼率高於此第二碼率。
圖10是根據本發明之另一範例實施例所繪示的資料寫入方法的流程圖。
請參照圖10,在步驟S1002中,接收寫入指令,其中此寫入指令指示將資料寫入至多個邏輯單元中的至少其中之一,其中所述邏輯單元中的至少其中之一映射至第一實體程式化單元,並且第一實體程式化單元屬於第一實體抹除單元。
在步驟S1004中,判斷第一實體抹除單元是第一類實體抹除單元或第二類實體抹除單元。
當第一實體抹除單元是第一類實體抹除單元時,在步驟S1006中,依據第一碼率來將此資料與對應於此資料的校驗碼寫入至此第一實體程式化單元。
當第一實體抹除單元是第二類實體抹除單元時,在步驟S1008中,判斷此資料的資料長度是否超過N個基本管理單位的資料長度,其中N是正整數,並且N+1個基本管理單位的資料長度等於第一實體程式化單元的容量大小。
當此資料的資料長度沒有超過N個基本管理單位的資料長度時,在步驟S1010中,僅依據第二碼率將此資料與對應於此資料的校驗碼寫入至第一實體程式化單元。
當此資料的資料長度超過N個基本管理單位的資料長度時,在步驟S1012中,依據第二碼率將第一部分的此資料與第一部分的此校驗碼寫入至第一實體程式化單元並且將第二部份的此資料與第二部份的此校驗碼寫入至第二實體程式化單元。
然而,圖9與圖10中各步驟已詳細說明如上,在此便不在贅述。值得注意的是,圖9與圖10中各步驟可以實作為多個程式碼或是電路,本發明並不在此限。此外,圖9與圖10的方法可以搭配以上實施例使用,也可以單獨使用,本發明並不在此限。特別是,在本範例實施例中,記憶體管理電路202所執行的資料及/或校驗碼的寫入或讀取等對於可複寫式非揮發性記憶體模組106的各種操作,例如是透過發送至少一指令序列(command sequence)至可複寫式非揮發性記憶體模組106來完成,其中每一個指令序列包括至少一個指令。可複寫式非揮發性記憶體模組106可以根據所接收到的指令序列來執行相對應的操作。
此外,在另一範例實施例中,上述判斷步驟亦可以套用至實體程式化單元或實體扇。例如,可根據上述各範例實施例中提及的方式來判斷第一實體程式化單元是第一類實體程式化單元或者第二類實體程式化單元,並且根據判斷結果決定根據第一碼率或第二碼率來將資料與對應的校驗碼寫入至第一實體程式化單 元。特別是,同一個實體抹除單元中不同的實體程式化單元或實體扇也可能有不同的位元錯誤率,因此,這樣的作法可能會更貼近實際的記憶體使用狀況。
綜上所述,本發明提出的資料寫入方法、記憶體儲存裝置及記憶體控制電路單元,可根據可複寫式非揮發性記憶體模組中的實體抹除單元是第一類實體抹除單元或第二類實體抹除單元,而適應性地根據第一碼率或高於第一碼率的第二碼率來將資料與對應於此資料的校驗碼寫入至此實體抹除單元中。藉此,即使某一實體抹除單元的位元錯誤率超過預設的容許範圍,此實體抹除單元還是可以被持續使用,而不會直接被捨棄。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S902、S904、S906、S908‧‧‧資料寫入方法各步驟

Claims (21)

  1. 一種資料寫入方法,用於控制一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一該些實體抹除單元包括多個實體程式化單元,並且該資料寫入方法包括:接收一寫入指令,其中該寫入指令指示將一資料寫入至多個邏輯單元中的至少其中之一,其中該些邏輯單元中的該至少其中之一映射至該些實體程式化單元中的一第一實體程式化單元,並且該第一實體程式化單元屬於該些實體抹除單元中的一第一實體抹除單元;根據該第一實體抹除單元的一讀取次數資訊、一資料存放時間資訊及一溫度資訊的至少其中之一,來決定該第一實體抹除單元的一位元錯誤率評估值;根據該第一實體抹除單元的該位元錯誤率評估值來判斷該第一實體抹除單元屬於一第一類實體抹除單元或一第二類實體抹除單元;當該第一實體抹除單元屬於該第一類實體抹除單元時,依據一第一碼率(code rate)來將該資料與對應於該資料的一校驗碼程式化至該第一實體程式化單元;以及當該第一實體抹除單元屬於該第二類實體抹除單元時,依據一第二碼率來將該資料與對應於該資料的該校驗碼程式化至該第一實體程式化單元,其中該第一碼率高於該第二碼率。
  2. 如申請專利範圍第1項所述的資料寫入方法,其中判斷該第一實體抹除單元屬於該第一類實體抹除單元或該第二類實體抹除單元的步驟包括:判斷該第一實體抹除單元的該位元錯誤率評估值是否符合一門檻條件;若該第一實體抹除單元的該位元錯誤率評估值不符合該門檻條件,判定該第一實體抹除單元屬於該第一類實體抹除單元;以及若該第一實體抹除單元的該位元錯誤率評估值符合該門檻條件,判定該第一實體抹除單元屬於該第二類實體抹除單元。
  3. 如申請專利範圍第2項所述的資料寫入方法,更包括:根據該第一實體抹除單元的一抹除次數資訊、一寫入次數資訊、一錯誤位元數資訊及一錯誤位元率資訊的至少其中之一或至少二者之組合,來決定該第一實體抹除單元的該位元錯誤率評估值。
  4. 如申請專利範圍第1項所述的資料寫入方法,其中依據該第一碼率來將該資料與對應於該資料的該校驗碼寫入至該第一實體程式化單元的步驟包括:將該資料分成至少一第一資料段並且產生至少一第一校驗碼段,其中每一該至少一第一校驗碼段對應於該至少一第一資料段的其中之一,其中依據該第二碼率來將該資料與對應於該資料的該校驗碼 寫入至該第一實體程式化單元的步驟包括:將該資料分成至少一第二資料段並且產生至少一第二校驗碼段,其中每一該至少一第二校驗碼段對應於該至少一第二資料段的其中之一,其中每一該至少一第一資料段的一資料長度相同於每一該至少一第二資料段的一資料長度,並且每一該至少一第一校驗碼段的一資料長度短於每一該至少一第二校驗碼段的一資料長度。
  5. 如申請專利範圍第1項所述的資料寫入方法,其中依據該第一碼率來將該資料與對應於該資料的該校驗碼寫入至該第一實體程式化單元的步驟包括:將該資料分成至少一第一資料段並且產生至少一第一校驗碼段,其中每一該至少一第一校驗碼段對應於該至少一第一資料段的其中之一,其中依據該第二碼率來將該資料與對應於該資料的該校驗碼寫入至該第一實體程式化單元的步驟包括:將該資料分成至少一第二資料段並且產生至少一第二校驗碼段,其中每一該至少一第二校驗碼段對應於該至少一第二資料段的其中之一,其中每一該至少一第一資料段的一資料長度長於每一該至少一第二資料段的一資料長度,並且每一該至少一第一校驗碼段的一資料長度相同於每一該至少一第二校驗碼段的一資料長 度。
  6. 如申請專利範圍第1項所述的資料寫入方法,其中依據該第二碼率來將該資料與對應於該資料的該校驗碼寫入至該第一實體程式化單元的步驟包括:判斷該資料的一資料長度是否超過N個基本管理單位的一資料長度,其中N是正整數,並且N+1個基本管理單位的一資料長度等於該第一實體程式化單元的一容量大小;當該資料的該資料長度不超過該N個基本管理單位的該資料長度時,僅依據該第二碼率將該資料與對應於該資料的該校驗碼寫入至該第一實體程式化單元;以及當該資料的該資料長度超過該N個基本管理單位的該資料長度時,依據該第二碼率將一第一部分的該資料與一第一部分的該校驗碼寫入至該第一實體程式化單元並且將一第二部份的該資料與一第二部份的該校驗碼寫入至該些實體程式化單元中的一第二實體程式化單元。
  7. 如申請專利範圍第6項所述的資料寫入方法,其中該第二實體程式化單元屬於該第一實體抹除單元或者該些實體抹除單元中亦屬於該第二類實體抹除單元的一第二實體抹除單元。
  8. 如申請專利範圍第6項所述的資料寫入方法,其中該第一部分的該資料的一資料長度符合該N個基本管理單位的該資料長度,並且該資料寫入方法更包括:將至少一第一無效位元寫入至該第一實體程式化單元中以填 滿未被該第一部分的該資料與該第一部分的該校驗碼所寫滿的部分;以及將至少一第二無效位元寫入至該第二實體程式化單元中以填滿未被該第二部分的該資料與該第二部分的該校驗碼所寫滿的部分。
  9. 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體抹除單元,並且每一該些實體抹除單元包括多個實體程式化單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以接收一寫入指令,其中該寫入指令指示將一資料寫入至多個邏輯單元的至少其中之一,其中該些邏輯單元中的該至少其中之一映射至該些實體程式化單元中的一第一實體程式化單元,並且該第一實體程式化單元屬於該些實體抹除單元中的一第一實體抹除單元,該記憶體控制電路單元更用以判斷該第一實體抹除單元屬於一第一類實體抹除單元或一第二類實體抹除單元,其中該第一類實體抹除單元的一第一位元錯誤率低於該第二類實體抹除單元的一第二位元錯誤率,當該第一實體抹除單元屬於該第一類實體抹除單元時,該記憶體控制電路單元更用以依據一第一碼率來將該資料與對應於該 資料的一校驗碼程式化至該第一實體程式化單元,其中該記憶體控制電路單元依據該第一碼率來將該資料與對應於該資料的該校驗碼寫入至該第一實體程式化單元的操作包括:將該資料分成至少一第一資料段並且產生不包含該至少一第一資料段的至少一第一校驗碼段,其中該至少一第一校驗碼段中的每一校驗碼段對應於該至少一第一資料段的其中之一,當該第一實體抹除單元屬於該第二類實體抹除單元時,該記憶體控制電路單元更用以依據一第二碼率來將該資料與對應於該資料的該校驗碼程式化至該第一實體程式化單元,其中該第一碼率高於該第二碼率,其中該記憶體控制電路單元依據該第二碼率來將該資料與對應於該資料的該校驗碼寫入至該第一實體程式化單元的操作包括:將該資料分成至少一第二資料段並且產生不包含該至少一第二資料段的至少一第二校驗碼段,其中該至少一第二校驗碼段中的每一校驗碼段對應於該至少一第二資料段的其中之一,其中該至少一第一資料段中的每一資料段的一資料長度相同於該至少一第二資料段中的每一資料段的一資料長度,其中該至少一第一校驗碼段中的每一校驗碼段的一資料長度短於該至少一第二校驗碼段中的每一校驗碼段的一資料長度。
  10. 如申請專利範圍第9項所述的記憶體儲存裝置,其中該記憶體控制電路單元判斷該第一實體抹除單元屬於該第一類實體抹除單元或該第二類實體抹除單元的操作包括: 判斷該第一實體抹除單元的一位元錯誤率評估值是否符合一門檻條件;若該第一實體抹除單元的該位元錯誤率評估值不符合該門檻條件,判定該第一實體抹除單元屬於該第一類實體抹除單元;以及若該第一實體抹除單元的該位元錯誤率評估值符合該門檻條件,判定該第一實體抹除單元屬於該第二類實體抹除單元。
  11. 如申請專利範圍第10項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以根據該第一實體抹除單元的一抹除次數資訊、一寫入次數資訊、一讀取次數資訊、一錯誤位元數資訊、一錯誤位元率資訊、一資料存放時間資訊及一溫度資訊的至少其中之一或至少二者之組合,來決定該第一實體抹除單元的該位元錯誤率評估值。
  12. 如申請專利範圍第9項所述的記憶體儲存裝置,其中該記憶體控制電路單元依據該第二碼率來將該資料與對應於該資料的該校驗碼寫入至該第一實體程式化單元的操作包括:判斷該資料的一資料長度是否超過N個基本管理單位的一資料長度,其中N是正整數,並且N+1個基本管理單位的一資料長度等於該第一實體程式化單元的一容量大小;當該資料的該資料長度不超過該N個基本管理單位的該資料長度時,僅依據該第二碼率將該資料與對應於該資料的該校驗碼寫入至該第一實體程式化單元;以及 當該資料的該資料長度超過該N個基本管理單位的該資料長度時,依據該第二碼率將一第一部分的該資料與一第一部分的該校驗碼寫入至該第一實體程式化單元並且將一第二部份的該資料與一第二部份的該校驗碼寫入至該些實體程式化單元中的一第二實體程式化單元。
  13. 如申請專利範圍第12項所述的記憶體儲存裝置,其中該第二實體程式化單元屬於該第一實體抹除單元或者該些實體抹除單元中亦屬於該第二類實體抹除單元的一第二實體抹除單元。
  14. 如申請專利範圍第12項所述的記憶體儲存裝置,其中該第一部分的該資料的一資料長度符合該N個基本管理單位的該資料長度,該記憶體控制電路單元更用以將至少一第一無效位元寫入至該第一實體程式化單元中以填滿未被該第一部分的該資料與該第一部分的該校驗碼所寫滿的部分,該記憶體控制電路單元更用以將至少一第二無效位元寫入至該第二實體程式化單元中以填滿未被該第二部分的該資料與該第二部分的該校驗碼所寫滿的部分。
  15. 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,每一該些實體抹除單元包括多個實體程式化單元,並且該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統; 一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一錯誤檢查與校正電路;以及一記憶體管理電路,耦接至該主機介面、該記憶體介面及該錯誤檢查與校正電路,其中該記憶體管理電路用以接收一寫入指令,其中該寫入指令指示將一資料寫入至多個邏輯單元中的至少其中之一,其中該些邏輯單元中的該至少其中之一映射至該些實體程式化單元中的一第一實體程式化單元,並且該第一實體程式化單元屬於該些實體抹除單元中的一第一實體抹除單元,該記憶體控制電路單元更用以判斷該第一實體抹除單元屬於一第一類實體抹除單元或一第二類實體抹除單元,其中該第一類實體抹除單元的一第一位元錯誤率低於該第二類實體抹除單元的一第二位元錯誤率,當該第一實體抹除單元屬於該第一類實體抹除單元時,該記憶體管理電路更用以發送一第一指令序列,其中該第一指令序列指示依據一第一碼率將該資料與對應於該資料的一校驗碼程式化至該第一實體程式化單元,當該第一實體抹除單元屬於該第二類實體抹除單元時,該記憶體管理電路更用以發送一第二指令序列,其中該第二指令序列指示依據一第二碼率將該資料與對應於該資料的該校驗碼程式化至該第一實體程式化單元,其中該第一碼率高於該第二碼率,其中該記憶體管理電路發送該第二指令序列的操作包括: 判斷該資料的一資料長度是否超過N個基本管理單位的一資料長度,其中N是正整數,並且N+1個基本管理單位的一資料長度等於該第一實體程式化單元的一容量大小;當該資料的該資料長度不超過該N個基本管理單位的該資料長度時,發送該第二指令序列,其中該第二指令序列指示依據該第二碼率而僅將該資料與對應於該資料的該校驗碼寫入至該第一實體程式化單元;以及當該資料的該資料長度超過該N個基本管理單位的該資料長度時,發送該第二指令序列,其中該第二指令序列指示依據該第二碼率將一第一部分的該資料與一第一部分的該校驗碼寫入至該第一實體程式化單元並且將一第二部份的該資料與一第二部份的該校驗碼寫入至該些實體程式化單元中的一第二實體程式化單元。
  16. 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體管理電路判斷該第一實體抹除單元屬於該第一類實體抹除單元或該第二類實體抹除單元的操作包括:判斷該第一實體抹除單元的一位元錯誤率評估值是否符合一門檻條件;若該第一實體抹除單元的該位元錯誤率評估值不符合該門檻條件,判定該第一實體抹除單元屬於該第一類實體抹除單元;以及若該第一實體抹除單元的該位元錯誤率評估值符合該門檻條 件,判定該第一實體抹除單元屬於該第二類實體抹除單元。
  17. 如申請專利範圍第16項所述的記憶體控制電路單元,其中該記憶體管理電路更用以根據該第一實體抹除單元的一抹除次數資訊、一寫入次數資訊、一讀取次數資訊、一錯誤位元數資訊、一錯誤位元率資訊、一資料存放時間資訊及一溫度資訊的至少其中之一或至少二者之組合,來決定該第一實體抹除單元的該位元錯誤率評估值。
  18. 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體管理電路發送該第一指令序列的操作更包括:將該資料分成至少一第一資料段並且控制該錯誤檢查與校正電路產生至少一第一校驗碼段,其中每一該至少一第一校驗碼段對應於該至少一第一資料段的其中之一,其中該記憶體管理電路發送該第二指令序列的操作更包括:將該資料分成至少一第二資料段並且控制該錯誤檢查與校正電路產生至少一第二校驗碼段,其中每一該至少一第二校驗碼段對應於該至少一第二資料段的其中之一,其中每一該至少一第一資料段的一資料長度相同於每一該至少一第二資料段的一資料長度,並且每一該至少一第一校驗碼段的一資料長度短於每一該至少一第二校驗碼段的一資料長度。
  19. 如申請專利範圍第15項所述的記憶體控制電路單元,其中該記憶體管理電路發送該第一指令序列的操作更包括: 將該資料分成至少一第一資料段並且控制該錯誤檢查與校正電路產生至少一第一校驗碼段,其中每一該至少一第一校驗碼段對應於該至少一第一資料段的其中之一,其中該記憶體管理電路發送該第二指令序列的操作更包括:將該資料分成至少一第二資料段並且控制該錯誤檢查與校正電路產生至少一第二校驗碼段,其中每一該至少一第二校驗碼段對應於該至少一第二資料段的其中之一,其中每一該至少一第一資料段的一資料長度長於每一該至少一第二資料段的一資料長度,並且每一該至少一第一校驗碼段的一資料長度相同於每一該至少一第二校驗碼段的一資料長度。
  20. 如申請專利範圍第15項所述的記憶體控制電路單元,其中該第二實體程式化單元屬於該第一實體抹除單元或者該些實體抹除單元中亦屬於該第二類實體抹除單元的一第二實體抹除單元。
  21. 如申請專利範圍第15項所述的記憶體控制電路單元,其中該第一部分的該資料的一資料長度符合該N個基本管理單位的該資料長度,該第二指令序列更指示至少一第一無效位元需被寫入至該第一實體程式化單元中以填滿未被該第一部分的該資料與該第一部分的該校驗碼所寫滿的部分,以及至少一第二無效位元需被寫入至該第二實體程式化單元中以填滿未被該第二部分的該資料與該 第二部分的該校驗碼所寫滿的部分。
TW103113696A 2014-04-15 2014-04-15 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 TWI545581B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW103113696A TWI545581B (zh) 2014-04-15 2014-04-15 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
US14/302,445 US9430325B2 (en) 2014-04-15 2014-06-12 Method for programming data, memory storage device and memory control circuit unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103113696A TWI545581B (zh) 2014-04-15 2014-04-15 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元

Publications (2)

Publication Number Publication Date
TW201539465A TW201539465A (zh) 2015-10-16
TWI545581B true TWI545581B (zh) 2016-08-11

Family

ID=54265161

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103113696A TWI545581B (zh) 2014-04-15 2014-04-15 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元

Country Status (2)

Country Link
US (1) US9430325B2 (zh)
TW (1) TWI545581B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI512750B (zh) * 2014-07-30 2015-12-11 Phison Electronics Corp 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
US9959067B2 (en) * 2015-02-04 2018-05-01 Sandisk Technologies Llc Memory block allocation by block health
TWI596476B (zh) * 2015-11-27 2017-08-21 群聯電子股份有限公司 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元
TWI591641B (zh) * 2016-02-19 2017-07-11 群聯電子股份有限公司 資料程式化方法、記憶體控制電路單元及記憶體儲存裝置
TWI597731B (zh) * 2016-07-13 2017-09-01 大心電子(英屬維京群島)股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN107643876A (zh) * 2016-07-20 2018-01-30 大心电子股份有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7864587B2 (en) * 2008-09-22 2011-01-04 Micron Technology, Inc. Programming a memory device to increase data reliability
US9170897B2 (en) * 2012-05-29 2015-10-27 SanDisk Technologies, Inc. Apparatus, system, and method for managing solid-state storage reliability
KR101606718B1 (ko) * 2010-10-27 2016-03-28 엘에스아이 코포레이션 플래시 메모리 기반 데이터 저장을 위한 적응적 ecc 기술들
US8732557B2 (en) * 2011-05-31 2014-05-20 Micron Technology, Inc. Data protection across multiple memory blocks
US8589761B2 (en) * 2011-05-31 2013-11-19 Micron Technology, Inc. Apparatus and methods for providing data integrity
TWI436209B (zh) * 2011-06-14 2014-05-01 Phison Electronics Corp 記憶體管理表處理方法、記憶體控制器與記憶體儲存裝置
US8762798B2 (en) 2011-11-16 2014-06-24 Stec, Inc. Dynamic LDPC code rate solution
JP2014035673A (ja) * 2012-08-09 2014-02-24 Renesas Electronics Corp 半導体記憶装置及び方法

Also Published As

Publication number Publication date
US20150293814A1 (en) 2015-10-15
TW201539465A (zh) 2015-10-16
US9430325B2 (en) 2016-08-30

Similar Documents

Publication Publication Date Title
TWI649754B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI545581B (zh) 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
TWI591482B (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
TW201642266A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI584291B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TW201637019A (zh) 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元
TWI670716B (zh) 資料存取方法、記憶體儲存裝置與記憶體控制電路單元
CN105005450A (zh) 数据写入方法、存储器存储装置及存储器控制电路单元
TWI486765B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TW201810025A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TW202009942A (zh) 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
CN111078146B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
TWI591640B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI529530B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TW201913383A (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US9213597B2 (en) Memory storage device, memory controller thereof, and method for programming data thereof
TWI642059B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI527058B (zh) 記憶體控制方法、記憶體儲存裝置與記憶體控制電路單元
TWI550625B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI597731B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
TWI596477B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI751620B (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
TWI541809B (zh) 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
TWI554884B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI615713B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置