鬼佬大哥大
  • / 37
  • 下載費用:30 金幣  

數據存儲方法、存儲器控制電路單元與存儲器存儲裝置.pdf

摘要
申請專利號:

CN201410159463.2

申請日:

2014.04.21

公開號:

CN105022695A

公開日:

2015.11.04

當前法律狀態:

實審

有效性:

審中

法律詳情: 實質審查的生效IPC(主分類):G06F 12/02申請日:20140421|||公開
IPC分類號: G06F12/02 主分類號: G06F12/02
申請人: 群聯電子股份有限公司
發明人: 梁鳴仁
地址: 中國臺灣苗栗縣竹南鎮群義路1號
優先權:
專利代理機構: 北京同立鈞成知識產權代理有限公司11205 代理人: 臧建明
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201410159463.2

授權公告號:

|||

法律狀態公告日:

2015.12.02|||2015.11.04

法律狀態類型:

實質審查的生效|||公開

摘要

本發明提供一種數據存儲方法、存儲器控制電路單元與存儲器存儲裝置。本方法包括記錄每一物理抹除單元的每一預設區域的錯誤比特數目;且判斷是否物理抹除單元的物理程序化單元的其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值。本方法還包括倘若物理抹除單元的物理程序化單元的其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,對此物理抹除單元進行抹除操作之后,使用第二程序化模式來存儲數據。基此,本發明的數據存儲方法可有效地使用不良的物理抹除單元,達到能夠延長存儲器存儲裝置的壽命的效用。

權利要求書

權利要求書
1.  一種數據存儲方法,用于一可復寫式非易失性存儲器模塊,其特征在于,該可復寫式非易失性存儲器模塊具有多個物理抹除單元,每一該些物理抹除單元具有多個物理程序化單元,且每一該些物理抹除單元的該些物理程序化單元包括多個下物理程序化單元與多個上物理程序化單元,該數據存儲方法包括:
選擇該些物理抹除單元之中的一第一物理抹除單元,其中該第一物理抹除單元的每一物理程序化單元具有一個或多個預設區域;
使用一第一程序化模式來存儲一第一數據,其中該第一數據被程序化至該第一物理抹除單元的該些下物理程序化單元的至少其中之一與該些上物理程序化單元的至少其中之一;
記錄該第一物理抹除單元的每一該些預設區域的一錯誤比特數目;
判斷是否該第一物理抹除單元的該些物理程序化單元的所述預設區域之中的至少其中一個預設區域的該錯誤比特數目大于一錯誤比特數目門檻值;以及
倘若該第一物理抹除單元的該些物理程序化單元的該些預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,在將該第一物理抹除單元中的該第一數據抹除之后,使用一第二程序化模式來存儲一第二數據,
其中使用該第一程序化模式對該可復寫式非易失性存儲器模塊進行程序化操作時所需要的程序化次數大于使用該第二程序化模式對該可復寫式非易失性存儲器模塊進行程序化操作時所需要的程序化次數。

2.  根據權利要求1所述的數據存儲方法,其特征在于,該第二程序化模式包括:
一單層存儲單元模式以及一下物理程序化模式至少其中之一,
其中在該單層存儲單元模式中,一個存儲單元只存儲有一個比特的數據,其中在該下物理程序化模式中,只有該些下物理程序化單元會被程序化。

3.  根據權利要求1所述的數據存儲方法,其特征在于,還包括:
在將該第一物理抹除單元中的該第一數據抹除之前,判斷該第一數據是否為有效的數據;以及
倘若該第一數據是有效的數據時,將該第一數據復制至該些物理抹除單元之中的一第二物理抹除單元中,并將原映射該第一物理抹除單元的一邏輯單元重新映射至該第二物理抹除單元,
其中該第二物理抹除單元的任一預設區域的錯誤比特數目非大于該錯誤比特數目門檻值。

4.  根據權利要求1所述的數據存儲方法,其特征在于,還包括:
倘若該第一物理抹除單元的該些物理程序化單元的所述預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,記錄該第一物理抹除單元于一第二程序化模式物理抹除單元分布表中。

5.  根據權利要求1所述的數據存儲方法,其特征在于,還包括:
倘若該第一物理抹除單元的該些物理程序化單元的所述預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,標記該第一物理抹除單元為一第二程序化模式物理抹除單元。

6.  根據權利要求1所述的數據存儲方法,其特征在于,還包括在上述使用該單層存儲單元模式來存儲該第二數據的步驟之前,以一單層存儲單元模式抹除指令對該第一物理抹除單元執行一抹除操作。

7.  根據權利要求1所述的數據存儲方法,其特征在于,還包括:
判斷該第一物理抹除單元是否已被記錄在該第二程序化模式物理抹除單元分布表中;
倘若該第一物理抹除單元已被記錄在該第二程序化模式物理抹除單元分布表中時,使用該單層存儲單元模式抹除指令對該第一物理抹除單元執行該抹除操作;以及
倘若該第一物理抹除單元非被記錄在該第二程序化模式物理抹除單元分布表中時,使用一多層存儲單元模式抹除指令對該第一物理抹除單元執行該抹除操作。

8.  根據權利要求1所述的數據存儲方法,其特征在于,還包括:
判斷該第一物理抹除單元是否已被標記為該第二程序化模式物理抹除單元;
倘若該第一物理抹除單元已被標記為該第二程序化模式物理抹除單元時,使用該單層存儲單元模式抹除指令對該第一物理抹除單元執行該抹除操 作;以及
倘若該第一物理抹除單元非被標記為該第二程序化模式物理抹除單元時,使用一多層存儲單元模式抹除指令對該第一物理抹除單元執行該抹除操作。

9.  一種數據存儲方法,用于一可復寫式非易失性存儲器模塊,其特征在于,該可復寫式非易失性存儲器模塊具有多個物理抹除單元,每一該些物理抹除單元具有多個物理程序化單元,且每一該些物理抹除單元的該些物理程序化單元包括多個下物理程序化單元與多個上物理程序化單元,該數據存儲方法包括:
接收一第一數據;
選擇該些物理抹除單元之中的一第一物理抹除單元,其中該第一物理抹除單元的每一物理程序化單元具有一個或多個預設區域;
判斷是否該第一物理抹除單元的該些物理程序化單元之中的一第一物理程序化單元的預設區域之中的至少其中一個預設區域的一錯誤比特數目大于一錯誤比特數目門檻值;以及
倘若該第一物理程序化單元的預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,將該第一數據程序化至該第一物理抹除單元的該些物理程序化單元之中的一第二物理程序化單元。

10.  根據權利要求9所述的數據存儲方法,其特征在于,還包括:倘若該第一物理程序化單元的預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,將一虛擬數據程序化至該第一物理程序化單元。

11.  根據權利要求9所述的數據存儲方法,其特征在于,還包括:該第二物理程序化單元不同于該第一物理程序化單元且該第二物理程序化單元每一預設區域的錯誤比特數目皆非大于該錯誤比特數目門檻值。

12.  根據權利要求9所述的數據存儲方法,其特征在于,每一該些物理程序化單元可存儲至少一個錯誤檢查與校正框,
其中所述預設區域的大小為該錯誤檢查與校正框的大小。

13.  一種存儲器控制電路單元,其特征在于,用于控制一可復寫式非易失性存儲器模塊,該存儲器控制電路單元包括:
一主機接口,用以電性連接至一主機系統;
一存儲器接口,用以電性連接至該可復寫式非易失性存儲器模塊,其中該可復寫式非易失性存儲器模塊具有多個物理抹除單元,每一該些物理抹除單元具有多個物理程序化單元,且每一該些物理抹除單元的該些物理程序化單元包括多個下物理程序化單元與多個上物理程序化單元;以及
一存儲器管理電路,電性連接至該主機接口與該存儲器接口,并且用以選擇該些物理抹除單元之中的一第一物理抹除單元,其中該第一物理抹除單元的每一物理程序化單元具有一個或多個預設區域,
其中該存儲器管理電路還用以使用一第一程序化模式來存儲一第一數據,其中該第一數據被程序化至該第一物理抹除單元的該些下物理程序化單元的至少其中之一與該些上物理程序化單元的至少其中之一,
其中該存儲器管理電路還用以記錄該第一物理抹除單元的每一該些預設區域的一錯誤比特數目,
其中該存儲器管理電路還用以判斷是否該第一物理抹除單元的該些物理程序化單元的所述預設區域之中的至少其中一個預設區域的該錯誤比特數目大于一錯誤比特數目門檻值,其中
倘若該第一物理抹除單元的該些物理程序化單元的該些預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,該存儲器管理電路在將該第一物理抹除單元中的該第一數據抹除之后,使用一第二程序化模式來存儲一第二數據,
其中使用該第一程序化模式對該可復寫式非易失性存儲器模塊進行程序化操作時所需要的程序化次數大于使用該第二程序化模式對該可復寫式非易失性存儲器模塊進行程序化操作時所需要的程序化次數。

14.  根據權利要求13所述的存儲器控制電路單元,其特征在于,該第二程序化模式包括:
一單層存儲單元模式以及一下物理程序化模式至少其中之一,
其中在該單層存儲單元模式中,一個存儲單元只存儲有一個比特的數據,其中在該下物理程序化模式中,只有該些下物理程序化單元會被程序化。

15.  根據權利要求13所述的存儲器控制電路單元,其特征在于,還包括:
在將該第一物理抹除單元中的該第一數據抹除之前,該存儲器管理電路 還用以判斷該第一數據是否為有效的數據,其中
倘若該第一數據是有效的數據時,該存儲器管理電路便將該第一數據復制至該些物理抹除單元之中的一第二物理抹除單元中,并將原映射該第一物理抹除單元的一邏輯單元重新映射至該第二物理抹除單元,
其中該第二物理抹除單元的任一預設區域的錯誤比特數目非大于該錯誤比特數目門檻值。

16.  根據權利要求13所述的存儲器控制電路單元,其特征在于,還包括:
倘若該第一物理抹除單元的該些物理程序化單元的所述預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,該存儲器管理電路還用以記錄該第一物理抹除單元于一第二程序化模式物理抹除單元分布表中。

17.  根據權利要求13所述的存儲器控制電路單元,其特征在于,還包括:
倘若該第一物理抹除單元的該些物理程序化單元的所述預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,該存儲器管理電路還用以標記該第一物理抹除單元為一第二程序化模式物理抹除單元。

18.  根據權利要求13所述的存儲器控制電路單元,其特征在于,還包括在上述使用該第二程序化模式來存儲該第二數據的運作之前,該存儲器管理電路還用以一單層存儲單元模式抹除指令對該第一物理抹除單元執行一抹除操作。

19.  根據權利要求18所述的存儲器控制電路單元,其特征在于,還包括:
該存儲器管理電路還用以判斷該第一物理抹除單元是否已被記錄在該第二程序化模式物理抹除單元分布表中,
其中倘若該第一物理抹除單元已被記錄在該第二程序化模式物理抹除單元分布表中時,該存儲器管理電路使用該單層存儲單元模式抹除指令對該第一物理抹除單元執行該抹除操作,
其中倘若該第一物理抹除單元非被記錄在該第二程序化模式物理抹除單元分布表中時,該存儲器管理電路使用一多層存儲單元模式抹除指令對該第一物理抹除單元執行該抹除操作。

20.  根據權利要求18所述的存儲器控制電路單元,其特征在于,還包括:
該存儲器管理電路還用以判斷該第一物理抹除單元是否已被標記為該第二程序化模式物理抹除單元,
其中倘若該第一物理抹除單元已被標記為該第二程序化模式物理抹除單元時,該存儲器管理電路使用該單層存儲單元模式抹除指令對該第一物理抹除單元執行該抹除操作,
其中倘若該第一物理抹除單元非被標記為該第二程序化模式物理抹除單元時,該存儲器管理電路使用該多層存儲單元模式抹除指令對該第一物理抹除單元執行該抹除操作。

21.  一種存儲器控制電路單元,其特征在于,用于控制一可復寫式非易失性存儲器模塊,該存儲器控制電路單元包括:
一主機接口,用以電性連接至一主機系統;
一存儲器接口,用以電性連接至該可復寫式非易失性存儲器模塊,其中該可復寫式非易失性存儲器模塊具有多個物理抹除單元,每一該些物理抹除單元具有多個物理程序化單元,且每一該些物理抹除單元的該些物理程序化單元包括多個下物理程序化單元與多個上物理程序化單元;以及
一存儲器管理電路,電性連接至該主機接口與該存儲器接口,并且用以從該主機系統接收一第一數據,
其中該存儲器管理電路還用以選擇該些物理抹除單元之中的一第一物理抹除單元,其中該第一物理抹除單元的每一物理程序化單元具有一個或多個預設區域,
其中該存儲器管理電路還用以記錄該第一物理抹除單元的每一該些預設區域的一錯誤比特數目,
其中該存儲器管理電路還用以判斷是否該第一物理抹除單元的該些物理程序化單元之中的一第一物理程序化單元的預設區域之中的至少其中一個預設區域的該錯誤比特數目大于一錯誤比特數目門檻值,其中
倘若該第一物理程序化單元的預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,該存儲器管理電路將該第一數據程序化至該第一物理抹除單元的該些物理程序化單元之中的一第二物理程序化單元。

22.  根據權利要求21所述的存儲器控制電路單元,其特征在于,還包括: 倘若該第一物理程序化單元的預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,該存儲器管理電路將一虛擬數據程序化至該第一物理程序化單元。

23.  根據權利要求21所述的存儲器控制電路單元,其特征在于,還包括:該第二物理程序化單元不同于該第一物理程序化單元且該第二物理程序化單元每一預設區域的錯誤比特數目皆非大于該錯誤比特數目門檻值。

24.  根據權利要求21所述的存儲器控制電路單元,其特征在于,每一該些物理程序化單元可存儲至少一個錯誤檢查與校正框,
其中所述預設區域的大小為該錯誤檢查與校正框的大小。

25.  一種存儲器存儲裝置,其特征在于,包括:
一連接接口單元,用以電性連接至一主機系統;
一可復寫式非易失性存儲器模塊,其中該可復寫式非易失性存儲器模塊具有多個物理抹除單元,每一該些物理抹除單元具有多個物理程序化單元,且每一該些物理抹除單元的該些物理程序化單元包括多個下物理程序化單元與多個上物理程序化單元;以及
一存儲器控制電路單元,電性連接至該連接接口單元與該可復寫式非易失性存儲器模塊,并且用以選擇該些物理抹除單元之中的一第一物理抹除單元,其中該第一物理抹除單元的每一物理程序化單元具有一個或多個預設區域,
其中該存儲器控制電路單元還用以使用一第一程序化模式來存儲一第一數據,其中該第一數據被程序化至該第一物理抹除單元的該些下物理程序化單元的至少其中之一與該些上物理程序化單元的至少其中之一,
其中該存儲器控制電路單元還用以記錄該第一物理抹除單元的每一該些預設區域的一錯誤比特數目,
其中該存儲器控制電路單元還用以判斷是否該第一物理抹除單元的該些物理程序化單元的所述預設區域之中的至少其中一個預設區域的該錯誤比特數目大于一錯誤比特數目門檻值,其中
倘若該第一物理抹除單元的該些物理程序化單元的該些預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,該存儲器控制電路單元在將該第一物理抹除單元中的該第一數據抹除之后,使 用一第二程序化模式來存儲一第二數據,
其中使用該第一程序化模式對該可復寫式非易失性存儲器模塊進行程序化操作時所需要的程序化次數大于使用該第二程序化模式對該可復寫式非易失性存儲器模塊進行程序化操作時所需要的程序化次數。

26.  根據權利要求25所述的存儲器存儲裝置,其特征在于,該第二程序化模式包括:
一單層存儲單元模式以及一下物理程序化模式至少其中之一,
其中在該單層存儲單元模式中,一個存儲單元只存儲有一個比特的數據,其中在該下物理程序化模式中,只有該些下物理程序化單元會被程序化。

27.  根據權利要求25所述的存儲器存儲裝置,其特征在于,還包括:
在將該第一物理抹除單元中的該第一數據抹除之前,該存儲器控制電路單元還用以判斷該第一數據是否為有效的數據,其中
倘若該第一數據是有效的數據時,該存儲器控制電路單元便將該第一數據復制至該些物理抹除單元之中的一第二物理抹除單元中,并將原映射該第一物理抹除單元的一邏輯單元重新映射至該第二物理抹除單元,
其中該第二物理抹除單元的任一預設區域的錯誤比特數目非大于該錯誤比特數目門檻值。

28.  根據權利要求25所述的存儲器存儲裝置,其特征在于,還包括:
倘若該第一物理抹除單元的該些物理程序化單元的所述預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,該存儲器控制電路單元還用以記錄該第一物理抹除單元于一第二程序化模式物理抹除單元分布表中。

29.  根據權利要求25所述的存儲器存儲裝置,其特征在于,還包括:
倘若該第一物理抹除單元的該些物理程序化單元的所述預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,該存儲器控制電路單元還用以標記該第一物理抹除單元為一第二程序化模式物理抹除單元。

30.  根據權利要求25所述的存儲器存儲裝置,其特征在于,還包括在上述使用該第二程序化模式來存儲該第二數據的運作之前,該存儲器控制電路單元還用以一單層存儲單元模式抹除指令對該第一物理抹除單元執行一抹除 操作。

31.  根據權利要求30所述的存儲器存儲裝置,其特征在于,還包括:
該存儲器控制電路單元還用以判斷該第一物理抹除單元是否已被記錄在該第二程序化模式物理抹除單元分布表中,
其中倘若該第一物理抹除單元已被記錄在該第二程序化模式物理抹除單元分布表中時,該存儲器控制電路單元使用該單層存儲單元模式抹除指令對該第一物理抹除單元執行該抹除操作,
其中倘若該第一物理抹除單元非被記錄在該第二程序化模式物理抹除單元分布表中時,該存儲器控制電路單元使用一多層存儲單元模式抹除指令對該第一物理抹除單元執行該抹除操作。

32.  根據權利要求30所述的存儲器存儲裝置,其特征在于,還包括:
該存儲器控制電路單元還用以判斷該第一物理抹除單元是否已被標記為該第二程序化模式物理抹除單元,
其中倘若該第一物理抹除單元已被標記為該第二程序化模式物理抹除單元時,該存儲器控制電路單元使用該單層存儲單元模式抹除指令對該第一物理抹除單元執行該抹除操作,
其中倘若該第一物理抹除單元非被標記為該第二程序化模式物理抹除單元時,該存儲器控制電路單元使用該多層存儲單元模式抹除指令對該第一物理抹除單元執行該抹除操作。

33.  一種存儲器存儲裝置,其特征在于,包括:
一連接接口單元,用以電性連接至一主機系統;
一可復寫式非易失性存儲器模塊,其中該可復寫式非易失性存儲器模塊具有多個物理抹除單元,每一該些物理抹除單元具有多個物理程序化單元,且每一該些物理抹除單元的該些物理程序化單元包括多個下物理程序化單元與多個上物理程序化單元;以及
一存儲器控制電路單元,電性連接至該連接接口單元與該可復寫式非易失性存儲器模塊,并且用以從該主機系統接收一第一數據,
其中該存儲器控制電路單元還用以選擇該些物理抹除單元之中的一第一物理抹除單元,其中該第一物理抹除單元的每一物理程序化單元具有一個或多個預設區域,
其中該存儲器控制電路單元還用以記錄該第一物理抹除單元的每一該些預設區域的一錯誤比特數目,
其中該存儲器控制電路單元還用以判斷是否該第一物理抹除單元的該些物理程序化單元之中的一第一物理程序化單元的預設區域之中的至少其中一個預設區域的該錯誤比特數目大于一錯誤比特數目門檻值,其中
倘若該第一物理程序化單元的預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,該存儲器控制電路單元將該第一數據程序化至該第一物理抹除單元的該些物理程序化單元之中的一第二物理程序化單元。

34.  根據權利要求33所述的存儲器存儲裝置,其特征在于,還包括:倘若該第一物理程序化單元的預設區域之中的至少其中一個預設區域的該錯誤比特數目大于該錯誤比特數目門檻值時,該存儲器控制電路單元將一虛擬數據程序化至該第一物理程序化單元。

35.  根據權利要求33所述的存儲器存儲裝置,其特征在于,還包括:該第二物理程序化單元不同于該第一物理程序化單元且該第二物理程序化單元每一預設區域的錯誤比特數目皆非大于該錯誤比特數目門檻值。

36.  根據權利要求33所述的存儲器存儲裝置,其特征在于,每一該些物理程序化單元可存儲至少一個錯誤檢查與校正框,
其中所述預設區域的大小為該錯誤檢查與校正框的大小。

說明書

說明書數據存儲方法、存儲器控制電路單元與存儲器存儲裝置
技術領域
本發明是有關于一種用于可復寫式非易失性存儲器的數據存儲方法、存儲器控制電路單元與存儲器存儲裝置。
背景技術
數碼相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對存儲媒體的需求也急速增加。由于可復寫式非易失性存儲器(rewritable non-volatile memory)具有數據非易失性、省電、體積小、無機械結構、讀寫速度快等特性,最適于可攜式電子產品,例如筆記本電腦。固態硬盤就是一種以快閃存儲器作為存儲媒體的存儲器存儲裝置。因此,近年快閃存儲器產業成為電子產業中相當熱門的一環。
可復寫式非易失性存儲器其中又以與非(NAND)型快閃存儲器最為廣泛使用,而依據每個存儲單元可存儲的比特數,與非(NAND)型快閃存儲器可區分為單階存儲單元(Single Level Cell,簡稱SLC)NAND型快閃存儲器、多階存儲單元(Multi Level Cell,簡稱MLC)NAND型快閃存儲器與三階存儲單元(Trinary Level Cell,簡稱TLC)NAND型快閃存儲器,其中SLC NAND型快閃存儲器的每個存儲單元可存儲1個比特的數據(即,“1”與“0”),MLC NAND型快閃存儲器的每個存儲單元可存儲2個比特的數據并且TLC NAND型快閃存儲器的每個存儲單元可存儲3個比特的數據。
在NAND型快閃存儲器中,物理程序化單元是由排列在同一條字線上的數個存儲單元所組成。由于SLC NAND型快閃存儲器的每個存儲單元可存儲1個比特的數據,因此,在SLC NAND型快閃存儲器中,排列在同一條字線上的數個存儲單元是對應一個物理程序化單元。
相對于SLC NAND型快閃存儲器來說,MLC NAND型快閃存儲器的每個存儲單元的浮動門存儲層可存儲2個比特的數據,其中每一個存儲狀態(即,“11”、“10”、“01”與“00”)包括最低有效位(Least Significant Bit,簡稱 LSB)以及最高有效位(Most Significant Bit,簡稱MSB)。例如,存儲狀態中從左側算起的第1個比特的值為LSB,而從左側算起的第2個比特的值為MSB。因此,排列在同一條字線上的數個存儲單元可組成2個物理程序化單元,其中由此些存儲單元的LSB所組成的物理程序化單元稱為下物理程序化單元(low physical programming unit),并且由此些存儲單元的MSB所組成的物理程序化單元稱為上物理程序化單元(upper physical programming unit)。
相較于SLC NAND型快閃存儲器而言,MLC NAND型快閃存儲器的容量更大,且成本低廉,較常被業界選擇以制造使用復寫式非易失性存儲器模塊的存儲器存儲裝置。但是,MLC NAND型快閃存儲器的穩定性較SLCNAND型快閃存儲器低,故,MLC NAND型快閃存儲器有些物理抹除區塊在抹除次數很低時,就有較多的錯誤比特(Error bit)產生。而一般系統為了避免存儲于這些錯誤比特數目較高的物理抹除單元的數據損失,當檢測到某些data讀取時有過多的錯誤比特,就會做數據搬移的動作,故寫入到此些錯誤比特數目過多的不良的物理抹除單元的數據就會因此需要再做一次數據搬移,系統的效能也因此降低。
發明內容
本發明提供一種數據存儲方法、存儲器控制電路單元及存儲器存儲裝置,可再利用不良的物理抹除單元,達到能夠延長存儲器存儲裝置的壽命的效用。
本發明的一范例實施例提出一種數據存儲方法,用于可復寫式非易失性存儲器模塊,其中可復寫式非易失性存儲器模塊具有多個物理抹除單元,每個物理抹除單元具有多個物理程序化單元,且每個物理抹除單元的這些物理程序化單元包括多個下物理程序化單元與多個上物理程序化單元。上述數據存儲方法包括:選擇這些物理抹除單元之中的第一物理抹除單元,其中第一物理抹除單元的每一物理程序化單元具有一個或多個預設區域。上述數據存儲方法還包括:使用第一程序化模式來存儲第一數據,其中第一數據被程序化至第一物理抹除單元的下物理程序化單元的至少其中之一與上物理程序化單元的至少其中之一。另外,上述數據存儲方法還包括記錄第一物理抹除單元的每個預設區域的錯誤比特數目并判斷是否第一物理抹除單元的這些物理程序化單元的所述預設區域之中的至少其中一個預設區域的錯誤比特數目大 于錯誤比特數目門檻值。上述數據存儲方法還包括,倘若第一物理抹除單元的這些物理程序化單元的這些預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,在將第一物理抹除單元中的第一數據抹除之后,使用第二程序化模式來存儲第二數據,其中使用第一程序化模式對可復寫式非易失性存儲器模塊進行程序化操作時所需要的程序化次數大于使用第二程序化模式對可復寫式非易失性存儲器模塊進行程序化操作時所需要的程序化次數。
在本發明的一范例實施例中,上述的第二程序化模式包括:單層存儲單元模式以及下物理程序化模式中的至少其中之一的模式,其中在單層存儲單元模式中,一個存儲單元只存儲有一個比特的數據,而在下物理程序化模式中,只有下物理程序化單元會被程序化。
在本發明的一范例實施例中,上述的數據存儲方法還包括:在將第一物理抹除單元中的第一數據抹除之前,判斷第一數據是否為有效的數據。上述的數據存儲方法還包括:倘若第一數據是有效的數據時,將第一數據復制至這些物理抹除單元之中的第二物理抹除單元中,并將原映射第一物理抹除單元的邏輯單元重新映射至第二物理抹除單元,而上述第二物理抹除單元的任一預設區域的錯誤比特數目非大于錯誤比特數目門檻值。
在本發明的一范例實施例中,上述的數據存儲方法還包括:倘若第一物理抹除單元的這些物理程序化單元的所述預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,記錄第一物理抹除單元于第二程序化模式物理抹除單元分布表中。
在本發明的一范例實施例中,上述的數據存儲方法還包括:倘若第一物理抹除單元的這些物理程序化單元的所述預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,標記第一物理抹除單元為第二程序化模式物理抹除單元。
在本發明的一范例實施例中,上述的數據存儲方法,還包括在上述僅使用第一物理抹除單元的這些下物理程序化單元來存儲第二數據的步驟之前,以單層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作。
在本發明的一范例實施例中,上述的數據存儲方法還包括:判斷第一物理抹除單元是否已被記錄在第二程序化模式物理抹除單元分布表中;倘若第 一物理抹除單元已被記錄在第二程序化模式物理抹除單元分布表中時,使用單層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作;以及倘若第一物理抹除單元非被記錄在第二程序化模式物理抹除單元分布表中時,使用多層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作。
在本發明的一范例實施例中,上述的數據存儲方法,還包括:判斷第一物理抹除單元是否已被標記為第二程序化模式物理抹除單元;倘若第一物理抹除單元已被標記為第二程序化模式物理抹除單元時,使用單層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作;以及倘若第一物理抹除單元非被標記為第二程序化模式物理抹除單元時,使用多層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作。
本發明的一范例實施例提出一種數據存儲方法,用于可復寫式非易失性存儲器模塊,其中可復寫式非易失性存儲器模塊具有多個物理抹除單元,每個物理抹除單元具有多個物理程序化單元,且每個物理抹除單元的這些物理程序化單元包括多個下物理程序化單元與多個上物理程序化單元。上述數據存儲方法包括:接收第一數據并且選擇這些物理抹除單元之中的第一物理抹除單元,其中第一物理抹除單元的每一物理程序化單元具有一個或多個預設區域。此外,上述數據存儲方法也包括記錄第一物理抹除單元的每個預設區域的一錯誤比特數目,并判斷是否第一物理抹除單元的這些物理程序化單元之中的第一物理程序化單元的預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值。上述數據存儲方法還包括:倘若第一物理程序化單元的預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,將第一數據程序化至第一物理抹除單元的這些物理程序化單元之中的第二物理程序化單元。
在本發明的一范例實施例中,上述數據存儲方法還包括:倘若第一物理程序化單元的預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,將虛擬數據程序化至第一物理程序化單元。
在本發明的一范例實施例中,上述第二物理程序化單元是配置在第一物理程序化單元之后且第二物理程序化單元每一預設區域的錯誤比特數目皆非大于錯誤比特數目門檻值。
在本發明的一范例實施例中,上述每個物理程序化單元可存儲至少一個 錯誤檢查與校正框,而上述預設區域的的大小為錯誤檢查與校正框的大小。
本發明的一范例實施例提出一種存儲器控制電路單元,用于控制可復寫式非易失性存儲器模塊,上述存儲器控制電路單元包括:主機接口、存儲器接口與存儲器管理電路。主機接口用以電性連接至主機系統。存儲器接口用以電性連接至可復寫式非易失性存儲器模塊,其中可復寫式非易失性存儲器模塊具有多個物理抹除單元,每個物理抹除單元具有多個物理程序化單元,且每個物理抹除單元的這些物理程序化單元包括多個下物理程序化單元與多個上物理程序化單元。存儲器管理電路電性連接至主機接口與存儲器接口,并且用以選擇這些物理抹除單元之中的第一物理抹除單元,其中第一物理抹除單元的每一物理程序化單元具有一個或多個預設區域。在此,存儲器管理電路還用以使用第一程序化模式來存儲第一數據,其中第一數據被程序化至第一物理抹除單元的下物理程序化單元的至少其中之一與上物理程序化單元的至少其中之一。此外,存儲器管理電路還用以記錄第一物理抹除單元的每個預設區域的錯誤比特數目,并且判斷是否第一物理抹除單元的這些物理程序化單元的所述預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值。倘若第一物理抹除單元的這些物理程序化單元的這些預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,存儲器管理電路在將第一物理抹除單元中的第一數據抹除之后,使用第二程序化模式來存儲第二數據,其中使用第一程序化模式對可復寫式非易失性存儲器模塊進行程序化操作時所需要的程序化次數大于使用第二程序化模式對可復寫式非易失性存儲器模塊進行程序化操作時所需要的程序化次數。
在本發明的一范例實施例中,上述的存儲器管理電路還用以在將第一物理抹除單元中的第一數據抹除之前,判斷第一數據是否為有效的數據。倘若第一數據是有效的數據時,存儲器管理電路將第一數據復制至這些物理抹除單元之中的第二物理抹除單元中,并將原映射第一物理抹除單元的邏輯單元重新映射至第二物理抹除單元,其中第二物理抹除單元的任一預設區域的錯誤比特數目非大于錯誤比特數目門檻值。
在本發明的一范例實施例中,倘若第一物理抹除單元的這些物理程序化單元的所述預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤 比特數目門檻值時,存儲器管理電路還用以記錄第一物理抹除單元于第二程序化模式物理抹除單元分布表中。
在本發明的一范例實施例中,倘若第一物理抹除單元的這些物理程序化單元的所述預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,存儲器管理電路還用以標記第一物理抹除單元為第二程序化模式物理抹除單元。
在本發明的一范例實施例中,上述的存儲器管理電路還用以在上述僅使用第一物理抹除單元的這些下物理程序化單元來存儲第二數據的步驟之前,使用單層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作。
在本發明的一范例實施例中,上述的存儲器管理電路還用以判斷第一物理抹除單元是否已被記錄在第二程序化模式物理抹除單元分布表中。倘若第一物理抹除單元已被記錄在第二程序化模式物理抹除單元分布表中時,存儲器管理電路使用單層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作。此外,倘若第一物理抹除單元非被記錄在第二程序化模式物理抹除單元分布表中時,存儲器管理電路使用多層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作。
在本發明的一范例實施例中,上述的存儲器管理電路還用以判斷第一物理抹除單元是否已被標記為第二程序化模式物理抹除單元。倘若第一物理抹除單元已被標記為第二程序化模式物理抹除單元時,存儲器管理電路使用單層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作。此外,倘若第一物理抹除單元非被標記為第二程序化模式物理抹除單元時,存儲器管理電路使用多層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作。
本發明的一范例實施例提出一種存儲器控制電路單元,用于控制可復寫式非易失性存儲器模塊,上述存儲器控制電路單元包括:主機接口、存儲器接口與存儲器管理電路。其中主機接口電性連接至主機系統。存儲器接口電性連接至可復寫式非易失性存儲器模塊。而可復寫式非易失性存儲器模塊具有多個物理抹除單元,每個物理抹除單元具有多個物理程序化單元,且每個物理抹除單元的這些物理程序化單元包括多個下物理程序化單元與多個上物理程序化單元。存儲器管理電路電性連接至主機接口與存儲器接口,并且用以從主機系統接收第一數據,而上述存儲器管理電路還用以選擇這些物理抹 除單元之中的第一物理抹除單元且第一物理抹除單元的每一物理程序化單元具有一個或多個預設區域。此外,存儲器管理電路還用以記錄第一物理抹除單元的每個預設區域的錯誤比特數目,并判斷是否第一物理抹除單元的這些物理程序化單元之中的第一物理程序化單元的預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值。倘若第一物理程序化單元的預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,存儲器管理電路將第一數據程序化至第一物理抹除單元的這些物理程序化單元之中的第二物理程序化單元。
在本發明的一范例實施例中,上述存儲器控制電路單元還包括:倘若第一物理程序化單元的預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,存儲器管理電路將虛擬數據程序化至第一物理程序化單元。
本發明的一范例實施例提出一種存儲器存儲裝置,包括:連接接口單元、可復寫式非易失性存儲器模塊與存儲器控制電路單元。上述連接接口單元電性連接至主機系統。上述可復寫式非易失性存儲器模塊具有多個物理抹除單元,每個物理抹除單元具有多個物理程序化單元,且每個物理抹除單元的這些物理程序化單元包括多個下物理程序化單元與多個上物理程序化單元。存儲器控制電路單元電性連接至連接接口單元與可復寫式非易失性存儲器模塊,并且用以選擇這些物理抹除單元之中的第一物理抹除單元。上述第一物理抹除單元的每一物理程序化單元具有一個或多個預設區域。存儲器控制電路單元還用以使用第一程序化模式來存儲第一數據,其中第一數據被程序化至第一物理抹除單元的下物理程序化單元的至少其中之一與上物理程序化單元的至少其中之一。此外,存儲器控制電路單元還用以記錄第一物理抹除單元的每個預設區域的錯誤比特數目,以及判斷是否第一物理抹除單元的這些物理程序化單元的所述預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值。倘若第一物理抹除單元的這些物理程序化單元的這些預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,存儲器控制電路單元在將第一物理抹除單元中的第一數據抹除之后,使用第二程序化模式來存儲第二數據,其中使用第一程序化模式對可復寫式非易失性存儲器模塊進行程序化操作時所需要的程序化次數大于使 用第二程序化模式對可復寫式非易失性存儲器模塊進行程序化操作時所需要的程序化次數。
在本發明的一范例實施例中,存儲器控制電路單元還用以在將第一物理抹除單元中的第一數據抹除之前,判斷第一數據是否為有效的數據。并且,倘若第一數據是有效的數據時,存儲器控制電路單元便將第一數據復制至這些物理抹除單元之中的第二物理抹除單元中,并將原映射第一物理抹除單元的邏輯單元重新映射至第二物理抹除單元,其中第二物理抹除單元的任一預設區域的錯誤比特數目非大于錯誤比特數目門檻值。
在本發明的一范例實施例中,倘若第一物理抹除單元的這些物理程序化單元的所述預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,存儲器控制電路單元還用以記錄第一物理抹除單元于第二程序化模式物理抹除單元分布表中。
在本發明的一范例實施例中,倘若第一物理抹除單元的這些物理程序化單元的所述預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,存儲器控制電路單元還用以標記第一物理抹除單元為第二程序化模式物理抹除單元。
在本發明的一范例實施例中,存儲器控制電路單元還用以在上述僅使用第一物理抹除單元的這些下物理程序化單元來存儲第二數據的步驟之前,使用單層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作。
在本發明的一范例實施例中,存儲器控制電路單元還用以判斷第一物理抹除單元是否已被記錄在第二程序化模式物理抹除單元分布表中。倘若第一物理抹除單元已被記錄在第二程序化模式物理抹除單元分布表中時,存儲器控制電路單元使用單層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作。另外,倘若第一物理抹除單元非被記錄在第二程序化模式物理抹除單元分布表中時,存儲器控制電路單元使用多層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作。
在本發明的一范例實施例中,存儲器控制電路單元還用以判斷第一物理抹除單元是否已被標記為第二程序化模式物理抹除單元。倘若第一物理抹除單元已被標記為第二程序化模式物理抹除單元時,存儲器控制電路單元使用單層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作。此外,倘若 第一物理抹除單元非被標記為第二程序化模式物理抹除單元時,存儲器控制電路單元使用多層存儲單元模式抹除指令對第一物理抹除單元執行抹除操作。
本發明的一范例實施例提出一種存儲器存儲裝置,包括:連接接口單元、可復寫式非易失性存儲器模塊與存儲器控制電路單元。連接接口單元電性連接至主機系統。可復寫式非易失性存儲器模塊具有多個物理抹除單元,每個物理抹除單元具有多個物理程序化單元,且每個物理抹除單元的這些物理程序化單元包括多個下物理程序化單元與多個上物理程序化單元。存儲器控制電路單元電性連接至連接接口單元與可復寫式非易失性存儲器模塊,并且用以從主機系統接收第一數據。此外,存儲器控制電路單元還用以選擇這些物理抹除單元之中的第一物理抹除單元,而上述第一物理抹除單元的每一物理程序化單元具有一個或多個預設區域。另外,存儲器控制電路單元還用以記錄第一物理抹除單元的每個預設區域的錯誤比特數目,并且判斷是否第一物理抹除單元的這些物理程序化單元之中的第一物理程序化單元的預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值。倘若第一物理程序化單元的預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,存儲器控制電路單元將第一數據程序化至第一物理抹除單元的這些物理程序化單元之中的第二物理程序化單元。
在本發明的一范例實施例中,上述存儲器存儲裝置還包括:倘若第一物理程序化單元的預設區域之中的至少其中一個預設區域的錯誤比特數目大于錯誤比特數目門檻值時,存儲器控制電路單元將虛擬數據程序化至第一物理程序化單元。
基于上述,本發明可再利用錯誤比特數目較高的不良物理抹除單元,也可避免將數據存儲在錯誤比特數目較高的物理程序化單元所導致的數據錯誤,達到延長可復寫式非易失性存儲器的壽命以及增進數據保存的穩定性的效用。
為讓本發明的上述特征和優點能更明顯易懂,下文特舉實施例,并配合附圖作詳細說明如下。
附圖說明
圖1是根據一范例實施例所示出的主機系統與存儲器存儲裝置示意圖;
圖2是根據本發明范例實施例所示出的電腦、輸入/輸出裝置與存儲器存儲裝置的示意圖;
圖3是根據本發明范例實施例所示出的主機系統與存儲器存儲裝置的示意圖;
圖4是示出圖1所示的存儲器存儲裝置的概要方塊圖;
圖5是根據一范例實施例所示出的存儲器控制電路單元的概要方塊圖;
圖6與圖7是根據第一范例實施例所示出的管理物理抹除單元的范例示意圖;
圖8是根據一范例實施例所示出的錯誤檢查與校正框的范例示意圖;
圖9為根據本發明的范例實施例,所示出的數據存儲方法的流程圖;
圖10為根據本發明的范例實施例,所示出的數據存儲方法的流程圖。
附圖標記說明:
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:可復寫式非易失性存儲器模塊;
202:存儲器管理電路;
204:主機接口;
206:存儲器接口;
208:緩沖存儲器;
210:電源管理電路;
212:錯誤檢查與校正電路;
410(0)~410(N):物理抹除單元;
506:系統區;
502:數據區;
504:閑置區;
508:取代區;
LBA(0)~LBA(H):邏輯單元;
LZ(0)~LZ(M):邏輯區域;
410(F):位于閑置區的第一物理抹除單元;
802:物理程序化單元;
804:第二物理程序化單元;
801:第一物理程序化單元的第一錯誤檢查與校正框;
803:第一物理程序化單元的第二錯誤檢查與校正框;
805:第一物理程序化單元的第三錯誤檢查與校正框;
807:第一物理程序化單元的第四錯誤檢查與校正框;
809:第二物理程序化單元的第一錯誤檢查與校正框;
811:第二物理程序化單元的第二錯誤檢查與校正框;
813:第二物理程序化單元的第三錯誤檢查與校正框;
815:第二物理程序化單元的第四錯誤檢查與校正框;
S901、S903、S905、S907:數據存儲方法的步驟;
S1001、S1003、S1005、S1007、S1009:數據存儲方法的步驟。
具體實施方式
[第一范例實施例]
圖1是根據一范例實施例所示出的主機系統與存儲器存儲裝置示意圖。
請參照圖1,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取存儲器(random access memory,RAM)1104、系統總線1108與數據傳輸接口1110。輸入/輸出裝置1106包括如圖2的鼠標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(如圖3所示)。嵌入式存儲裝置1320包括嵌入式多媒體卡(Embedded MMC,簡稱eMMC)。值得一提的是,嵌入式多媒體卡是直接電性連接于主機系統的基板上。
圖4是示出圖1所示的存儲器存儲裝置的概要方塊圖。
請參照圖4,存儲器存儲裝置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)接口標準、序列先進附件(Serial Advanced Technology Attachment,簡稱SATA)標準、記憶棒(Memory Stick,簡稱MS)接口標準、多媒體存儲卡(Multi Media Card,簡稱MMC)接口標準、小型快閃(Compact Flash,簡稱CF)接口標準、整合式驅動電子接口(Integrated Device Electronics,簡稱IDE)標準或其他適合的標準。在本范例實施例中,連接接口單元可與存儲器控制電路單元封裝在一個晶片中,或布設于一包含存儲器控制電路單元的晶片外。
存儲器控制電路單元104用以執行以硬件型式或固件型式實作的多個邏輯門或控制指令,并且根據主機系統1000的指令對可復寫式非易失性存儲器模塊106下達指令序列以進行數據的寫入、讀取與抹除等運作。
可復寫式非易失性存儲器模塊106是電性連接至存儲器控制電路單元104,并且用以存儲主機系統1000所寫入的數據。可復寫式非易失性存儲器模塊106具有物理抹除單元410(0)~410(N)。例如,物理抹除單元410(0)~410(N)可屬于同一個存儲器晶粒(die)或者屬于不同的存儲器晶粒。每一物理抹除單元分別具有復數個物理程序化單元,例如本發明的范例實施例中,每一個物理抹除單元包含258個物理程序化單元,而其中屬于同一個物理抹除單元的物理程序化單元可被獨立地寫入且被同時地抹除。然而,必須了解的是,本發明不限于此,每一物理抹除單元是可由64個物理程序化單元、256個物理程序化單元或其他任意個物理程序化單元所組成。
更詳細來說,物理抹除單元為抹除的最小單位。亦即,每一物理抹除單元含有最小數目的一并被抹除的存儲單元。物理程序化單元為程序化的最小單元。即,物理程序化單元為寫入數據的最小單元。每一物理程序化單元通 常包括數據比特區與冗余比特區。數據比特區包含多個物理存取位址用以存儲使用者的數據,而冗余比特區用以存儲系統的數據(例如,控制信息與錯誤更正碼)。在本范例實施例中,每一個物理程序化單元的數據比特區中會包含4個物理存取位址,且一個物理存取位址的大小為512比特組(byte)。然而,在其他范例實施例中,數據比特區中也可包含數目更多或更少的物理存取位址,本發明并不限制物理存取位址的大小以及個數。例如,在一范例實施例中,物理抹除單元為物理區塊,并且物理程序化單元為物理頁面或物理扇區,但本發明不以此為限。
在本范例實施例中,可復寫式非易失性存儲器模塊106為多階存儲單元(Multi Level Cell,簡稱MLC)NAND型快閃存儲器模塊(即,一個存儲單元中可存儲2個比特數據的快閃存儲器模塊,以下稱MLC NAND型快閃存儲器模塊),然而,本發明不限于此,可復寫式非易失性存儲器模塊106也可是單階存儲單元(Single Level Cell,簡稱SLC)NAND型快閃存儲器模塊(即,一個存儲單元中可存儲1個比特數據的快閃存儲器模塊)、三階存儲單元(Trinary Level Cell,TLC)NAND型快閃存儲器模塊(即,一個存儲單元中可存儲3個比特數據的快閃存儲器模塊)、其他快閃存儲器模塊或其他具有相同特性的存儲器模塊。
在本范例實施例中,MLC NAND型快閃存儲器模塊的物理抹除單元具有多個物理程序化單元,而此些物理程序化單元,由于一個存儲單元中可存儲2個比特數據,因此還包括下物理程序化單元(Lower programming unit)以及上物理程序化單元(Higher programming unit)。而一般使用MLC NAND型快閃存儲器模塊存儲數據時,會同時使用多層存儲單元模式來程序化下物理程序化單元的其中之一與上物理程序化單元的其中之一以將數據寫入存儲單元中。
值得一提的是,上述的多層存儲單元模式為第一程序化模式(First programming mode)的一種模式。另外,在本發明中還有第二程序化模式(Second programming mode),此模式可包含至少下列三種模式或為至少其中的任一。其中一種模式為單層存儲單元模式(SLC mode),在此模式中,一個存儲單元只存儲有一個比特的數據。另一種模式為下物理程序化模式(lower physical programming unit programming mode),在此模式中,只有下物理程 序化單元會被程序化(a mode that only a lower programming unit is being programmed),而此下物理程序化單元的上物理程序化單元可不對其程序化。另一種模式為混合程序化模式(mixture programming mode),在此模式中,真實的有效數據會被程序化于下物理程序化單元中,而同時虛擬數據會被程序化至對應程序化真實數據的下物理程序化單元的上物理程序化單元中。
具體來說,可復寫式非易失性存儲器模塊106中的存儲單元是以臨界電壓的改變來存儲多比特(bits)。具體來說,每一個存儲單元的控制門極(control gate)與通道之間有一個電荷捕捉層。通過施予一寫入電壓至控制門極,可以改變電荷補捉層的電子量,因而改變了存儲單元的臨界電壓。此改變臨界電壓的程序也稱為”把數據寫入至存儲單元”或”程序化存儲單元”。隨著臨界電壓的改變,存儲單元陣列的每一存儲單元具有多個存儲狀態。并且通過讀取電壓可以判斷存儲單元是屬于哪一個存儲狀態,藉此取得存儲單元所存儲的比特。以本范例實施例中的MLC NAND型快閃存儲器模塊為例,當使用第一程序化模式或是混合程序化模式時,隨著不同的臨界電壓,每一存儲單元具有4種存儲狀態,并且此些存儲狀態分別地代表"11"、"10"、"00"與"01"等比特。因此,在此范例實施例中,每一存儲單元的存儲的數據比特數為2。另外,以本范例實施例中的MLC NAND型快閃存儲器模塊為例,當使用第二程序化模式的單層存儲單元模式時,隨著不同的臨界電壓,每一存儲單元具有2種存儲狀態,并且此些存儲狀態分別地代表"0"與"1"比特。因此,在此范例實施例中,每一存儲單元存儲的數據比特數為1。也就是說,當使用第二程序化模式或是混合程序化模式來程序化數據時,由于每一存儲單元所需要程序化的臨界電壓較高,或是所存儲的有效數據比特數目較多,在使用上述的第二程序化模式的單層存儲單元模式程序化數據時,所需要程序化的次數會小于當使用第二程序化模式的混合程序化模式或是第一程序化模式進行程序化數據時,所需要的程序化的次數。
圖5是根據一范例實施例所示出的存儲器控制電路單元的概要方塊圖。
請參照圖5,存儲器控制電路單元104包括存儲器管理電路202、主機接口204與存儲器接口206。
存儲器管理電路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是相容于SATA標準。然而,必須了解的是本發明不限于此,主機接口204也可以是相容于PATA標準、IEEE1394標準、PCI Express標準、USB標準、UHS-I接口標準、UHS-II接口標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的數據傳輸標準。
存儲器接口206是電性連接至存儲器管理電路202并且用以存取可復寫式非易失性存儲器模塊106。也就是說,欲寫入至可復寫式非易失性存儲器模塊106的數據會經由存儲器接口206轉換為可復寫式非易失性存儲器模塊106所能接受的格式。
在本發明一范例實施例中,存儲器控制電路單元104還包括緩沖存儲器208、電源管理電路210與錯誤檢查與校正電路212。
緩沖存儲器208是電性連接至存儲器管理電路202并且用以暫存來自于主機系統1000的數據與指令或來自于可復寫式非易失性存儲器模塊106的數據。
電源管理電路210是電性連接至存儲器管理電路202并且用以控制存儲器存儲裝置100的電源。
錯誤檢查與校正電路212是電性連接至存儲器管理電路202并且用以執行錯誤檢查與校正程序以確保數據的正確性。具體來說,當存儲器管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路212會為對應此寫入指令的數據產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,簡稱ECC Code),并且存儲器管理電路202會將對應此寫入指令的數據與對應的錯誤檢查與校正碼寫入至可復寫式非易失性存儲器模塊106中。之后,當存儲器管理電路202從可復寫式非易失性存儲器模塊106中讀取數據時會同時讀取此數據對應的錯誤檢查與校正碼,并且錯誤檢查與校正電路212會依據此錯誤檢查與校正碼對所讀取的數據執行錯誤檢查與校正程序。
圖6與圖7是根據一范例實施例所示出的管理物理抹除單元的范例示意圖。
請參照圖6,存儲器控制電路單元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。
請參照圖7,存儲器控制電路單元104(或存儲器管理電路202)會配置邏輯單元LBA(0)~LBA(H)以映射數據區502的物理抹除單元,其中每一邏輯單元具有多個邏輯子單元以映射對應的物理抹除單元的物理程序化單元。并且,當主機系統1000欲寫入數據至邏輯單元或更新存儲于邏輯單元中的數據時,存儲器控制電路單元104(或存儲器管理電路202)會從閑置區504中提取一個物理抹除單元來寫入數據,以輪替數據區502的物理抹除單元。在本范例實施例中,邏輯子單元可以是邏輯頁面或邏輯扇區。
為了識別每個邏輯單元的數據被存儲在那個物理抹除單元,在本范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)會記錄邏輯單元與物理抹除單元之間的映射。并且,當主機系統1000欲在邏輯子單元中存取 數據時,存儲器控制電路單元104(或存儲器管理電路202)會確認此邏輯子單元所屬的邏輯單元,并且對可復寫式非易失性存儲器模塊106下達對應的指令序列以在此邏輯單元所映射的物理抹除單元中來存取數據。例如,在本范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)會在可復寫式非易失性存儲器模塊106中存儲邏輯轉物理位址映射表來記錄每一邏輯單元所映射的物理抹除單元,并且當欲存取數據時存儲器控制電路單元104(或存儲器管理電路202)會將邏輯轉物理位址映射表載入至緩沖存儲器208來維護。
值得一提的是,由于緩沖存儲器208的容量有限無法存儲記錄所有邏輯單元的映射關系的映射表,因此,在本范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)會將邏輯單元LBA(0)~LBA(H)分組為多個邏輯區域LZ(0)~LZ(M),并且為每一邏輯區域配置一個邏輯轉物理位址映射表。特別是,當存儲器控制電路單元104(或存儲器管理電路202)欲更新某個邏輯單元的映射時,對應此邏輯單元所屬的邏輯區域的邏輯轉物理位址映射表會被載入至緩沖存儲器208來被更新。
如上所述,在本范例實施例中,存儲器存儲裝置100的可復寫式非易失性存儲器模塊106是以物理程序化單元為基礎來進行管理,因此,在執行寫入指令時,不管目前數據是要寫入至那個邏輯單元的邏輯子單元,存儲器控制電路單元104(或存儲器管理電路202)皆會以一個物理程序化單元接續一個物理程序化單元的方式來寫入數據。具體來說,存儲器控制電路單元104(或存儲器管理電路202)會從閑置區504中提取一個空的物理抹除單元作為目前使用的物理抹除單元來寫入數據。并且,當此目前使用的物理抹除單元已被寫滿時,存儲器控制電路單元104(或存儲器管理電路202)會再從閑置區504中提取另一個空的物理抹除單元作為目前使用的物理抹除單元,以繼續寫入對應來自于主機系統1000的寫入指令的數據。特別是,為了避免閑置區504的物理抹除單元被耗盡,當存儲器控制電路單元104(或存儲器管理電路202)欲從閑置區504中提取物理抹除單元且閑置區504的物理抹除單元的數目下降到所設定的垃圾回收門檻值時,存儲器控制電路單元104(或存儲器管理電路202)會先執行數據合并程序,來使數據區502的至少一個物理抹除單元中的數據成為無效數據,并且將數據區502中所存儲的數據皆為無效數 據的物理抹除單元關聯回閑置區504,以致于閑置區504的物理抹除單元的數目大于所設定的垃圾回收門檻值。例如,在執行數據合并程序時,存儲器控制電路單元104(或存儲器管理電路202)至少需使用一個空的物理抹除單元,因此,垃圾回收門檻值至少會被設定為大于1的數值。
如上所述,在存儲器存儲裝置100的錯誤檢查與校正電路212會被配置來驗證可復寫式非易失性存儲器模塊106中所存儲的數據是否正確。然而,在執行錯誤校正程序時,無論是編碼或解碼步驟,錯誤檢查與校正電路212都是需要清楚知道所要保護的數據長度為何,如此才能計算出正確的特征碼,以檢查出正確的錯誤位置。在本范例實施例中,當存儲器控制電路單元104(或存儲器管理電路202)接收到數據時,存儲器控制電路單元104(或存儲器管理電路202)會先將數據分割為多個碼框(frame),之后錯誤檢查與校正電路212再產生各碼框對應的錯誤校正碼,以將這些碼框與其各自所對應的錯誤校正碼分別編碼形成為錯誤檢查與校正框。在此,錯誤檢查與校正框的大小是根據傳輸單位的大小來分割,且此傳輸單位的大小是依據可復寫式非易失性存儲器模塊106的規格書來決定。也就是說,每個傳輸單位須保護(protect)多少個比特(bit)。例如,傳輸單位為512bytes,保護12個比特,存儲器控制電路單元104(或存儲器管理電路202)會將數據切割為每單位為512bytes。而錯誤檢查與校正電路212則會針對每512bytes的數據進行錯誤校正編碼,故每個錯誤檢查與校正框的大小就是512bytes。但必須了解的是,本發明不限于此,在另一范例實施例中,錯誤檢查與校正框的大小也可以是1K bytes或2K bytes等等。值得一提的是,每個物理程序化單元的大小會至少大于一個錯誤檢查與校正框的大小,以使存儲在物理程序化單元的數據,以錯誤檢查與校正框的大小為單位,可以受到錯誤檢查與校正電路212的保護。
例如,在本范例實施例中,錯誤檢查與校正電路212的最大保護能力,為12個比特,故當錯誤檢查與校正框所發生的錯誤比特數目大于12(例如,13)時,錯誤檢查與校正電路212將無法校正于錯誤檢查與校正框內的錯誤數據,導致存儲于此錯誤檢查與校正框的數據不能正常讀取,成為不能恢復的損毀數據。當此狀況發生時,也代表具有此損毀數據的物理抹除單元已經過于老化而不堪使用,基此,存儲器控制電路單元104(或存儲器管理電路 202)會將錯誤比特數目超過錯誤檢查與校正電路212最大保護能力的物理程序化單元標記成不良物理程序化單元,并記錄于一個不良物理程序化單元分布表中。
圖8是根據一范例實施例所示出的錯誤檢查與校正框的范例示意圖。
請參照圖8,在本范例實施例中,存儲于數據區502中的第一物理抹除單元410(0)中的第一物理程序化單元802的大小為2K bytes(2048bytes),可存儲4個錯誤檢查與校正框大小的數據,分別為第一錯誤檢查與校正框801、第二錯誤檢查與校正框803、第三錯誤檢查與校正框805、第四錯誤檢查與校正框807,其中每個錯誤檢查與校正框的大小為512bytes。
例如,在操作可復寫式非易失性存儲器模塊106的過程時,存儲器控制電路單元104(或存儲器管理電路202),會持續記錄每個錯誤檢查與校正框所發生的錯誤比特數目。舉例來說,假設第一物理程序化單元802的第一錯誤檢查與校正框801的錯誤比特數目為3,第二錯誤檢查與校正框803的錯誤比特數目為4、第三錯誤檢查與校正框805的錯誤比特數目為5、第四錯誤檢查與校正框807的錯誤比特數目為11;并且第二物理程序化單元804的第一錯誤檢查與校正框809的錯誤比特數目為3,第二錯誤檢查與校正框811的錯誤比特數目為4、第三錯誤檢查與校正框813的錯誤比特數目為5、第四錯誤檢查與校正框815的錯誤比特數目為6。依此類推,在操作可復寫式非易失性存儲器模塊106的過程時也取得并記錄可復寫式非易失性存儲器模塊106的每個物理抹除單元的物理程序化單元的每個錯誤檢查與校正框的錯誤比特數目。
在本范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)會判斷第一物理抹除單元410(0)的每個物理程序化單元的錯誤比特數目是否超過系統預先定義的錯誤比特數目門檻值。例如,在本范例實施例中,系統預先定義的錯誤比特數目門檻值為10。值得一提的是,此系統預先定義的錯誤比特數目門檻值,可以在出廠時定義,或是出廠后經由軟件或是固件設定,此錯誤比特數目門檻值不會超過錯誤檢查與校正電路212的最大保護能力。
在上述的例子中,第一物理抹除單元410(0)的第一物理程序化單元的第四錯誤檢查與校正框807的錯誤比特數目為11,超過錯誤比特數目門檻值10,此時存儲器控制電路單元104(或存儲器管理電路202)會記錄第一物理抹除 單元410(0)于一個第二程序化模式物理抹除單元分布表中。上述的第二程序化模式物理抹除單元分布表是用以記錄在可復寫式非易失性存儲器模塊106的物理抹除單元中,哪些是使用單層存儲單元模式操作的物理抹除單元。例如,在本范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)會將此第二程序化模式物理抹除單元分布表存儲在緩沖存儲器208中,并在可復寫式非易失性存儲器模塊使用的過程中,持續記錄每個物理抹除單元的每個物理抹除程序化單元的錯誤比特數目,并更新第二程序化模式物理抹除單元分布表。
除了記錄于第二程序化模式物理抹除單元分布表的方式,在另一范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)也可于對應此物理抹除單元的系統數據中標記此些錯誤比特數目超過錯誤比特數目門檻值的物理抹除單元為第二程序化模式物理抹除單元。舉例來說,此系統數據可為對應此物理抹除單元的中介數據(Meta data),或是其他類型的系統數據,本發明不限于此。值得一提的是,存儲器控制電路單元104(或存儲器管理電路202)可同時或是分別使用上述兩種方式來記錄上述這些錯誤比特數目超過錯誤比特數目門檻值的物理抹除單元。
另外,在本范例實施例中,一旦第一物理抹除單元410(0)中任一錯誤檢查與校正框的錯誤比特數目超過錯誤比特數目門檻值時,存儲器控制電路單元104(或存儲器管理電路202)會識別第一物理抹除單元410(0)為不良的物理抹除單元,并且記錄于第二程序化模式物理抹除單元分布表或是標記為第二程序化模式物理抹除單元。值得一提的是,本發明不限于此,例如,在另一范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)也可在一個物理抹除單元中的至少兩個錯誤檢查與校正框的錯誤比特數目超過錯誤比特數目門檻值時,才識別此物理抹除單元為不良的物理抹除單元。或者,在另一范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)可在一個物理抹除單元中的錯誤檢查與校正框的錯誤比特數目在不超過錯誤檢查與校正電路212的最大保護能力的狀況下,計算一個物理抹除單元的錯誤檢查與校正框的錯誤比特數目的平均值,并且依據此平均值是否超過錯誤比特數目門檻值,來辨識一個物理抹除單元是否為不良的物理抹除單元。
例如,在一范例實施例中,當存儲器控制電路單元104(或存儲器管理 電路202)要對可復寫式非易失性存儲器模塊106的物理抹除單元進行抹除操作時,會先檢查要進行抹除操作的物理抹除單元是否被記錄在第二程序化模式物理抹除單元分布表或是被標記為第二程序化模式物理抹除單元。倘若要進行抹除操作的物理抹除單元被記錄在第二程序化模式物理抹除單元分布表或是被標記為第二程序化模式物理抹除單元時,存儲器控制電路單元104(或存儲器管理電路202)會對此物理抹除單元使用單層存儲單元模式抹除指令來進行抹除操作。倘若要進行抹除操作的物理抹除單元非被記錄在第二程序化模式物理抹除單元分布表或是非被標記為第二程序化模式物理抹除單元時,存儲器控制電路單元104(或存儲器管理電路202)會對此物理抹除單元使用多層存儲單元模式抹除指令來進行抹除操作。
例如,當存儲器控制電路單元104(或存儲器管理電路202)要對第一物理抹除單元410(0)進行抹除操作時,會先檢查第二程序化模式物理抹除單元分布表或是檢查第一物理抹除單元410(0)是否被標記為第二程序化模式物理抹除單元,由此決定使用單層存儲單元模式抹除指令或多層存儲單元模式抹除指令來對第一物理抹除單元410(0)進行抹除操作。例如,如上所述,倘若第一物理抹除單元410(0)中任一錯誤檢查與校正框的錯誤比特數目超過錯誤比特數目門檻值時,第一物理抹除單元410(0)會被記錄于第二程序化模式物理抹除單元分布表或是標記為第二程序化模式物理抹除單元。在此情況下,當需對第一物理抹除單元410(0)執行數據合并程序時,存儲器控制電路單元104(或存儲器管理電路202)會在第一物理抹除單元410(0)中的數據已變成無效數據后,使用單層存儲單元模式抹除指令來對第一物理抹除單元410(0)進行抹除操作。
值得一提的是,在一范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)也可在記錄第一物理抹除單元410(0)于第二程序化模式物理抹除單元分布表時,就先將第一物理抹除單元410(0)所存儲的有效數據復制到第二物理抹除單元410(F),將原來映射第一物理抹除單元410(0)的邏輯單元重新映射到第二物理抹除單元410(F),并將存儲有效數據的第二物理抹除單元410(F)關聯到數據區502。
詳細來說,在此另一范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)會在記錄第一物理抹除單元410(0)于第二程序化模式物理抹 除單元分布表時,就會先檢查第一物理抹除單元410(0)上所存儲的數據是否為有效數據,倘若第一物理抹除單元410(0)上鎖存儲的數據為有效數據,存儲器控制電路單元104(或存儲器管理電路202)會先從閑置區504中,提取一個第二物理抹除單元410(F),并將第一物理抹除單元410(0)中的有效數據復制到第二物理抹除單元410(F)。值得一提的是,存儲器控制電路單元104(或存儲器管理電路202)所提取的第二物理抹除單元410(F)的任一物理抹除程序化單元的任一錯誤檢查與校正框的錯誤比特數目都不大于錯誤比特數目門檻值。而在另一范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)會先從閑置區504中提取不被記錄在第二程序化模式物理抹除單元分布表中或是不被標記為第二程序化模式物理抹除單元的物理抹除單元來存儲有效數據,當閑置區只剩下被記錄在第二程序化模式物理抹除單元分布表中或是被標記為第二程序化模式物理抹除單元的物理抹除單元時,才提取這些第二程序化模式物理抹除單元來存儲有效數據。
而在復制第一物理抹除單元410(0)的有效數據到第二物理抹除單元410(F)之后,存儲器控制電路單元104(或存儲器管理電路202)會將原來映射第一物理抹除單元410(0)的邏輯單元重新映射到第二物理抹除單元410(F),并將存儲有效數據的第二物理抹除單元410(F)關聯到數據區502。之后,存儲器控制電路單元104(或存儲器管理電路202)會在系統預定的時機,例如,在系統閑暇時,或是直接接著對第一物理抹除單元410(0)進行單層存儲單元模式抹除操作,再將已經完成抹除操作的第一物理抹除單元410(0)關聯到閑置區504。
在本范例實施例中,當存儲器控制電路單元104(或存儲器管理電路202)使用單層存儲單元模式抹除指令來對一個物理抹除單元進行抹除操作之后,存儲器控制電路單元104(或存儲器管理電路202)便會以單層存儲單元模式來操作此物理抹除單元。舉例來說,上述的第一物理抹除單元410(0)已經使用單層存儲單元模式抹除指令對第一物理抹除單元410(0)完成抹除操作之后,若是存儲器控制電路單元104(或存儲器管理電路202)要提取第一物理抹除單元410(0)來寫入數據時,存儲器控制電路單元104(或存儲器管理電路202)只會使用第一物理抹除單元410(0)的下物理程序化單元來存儲欲寫入的數據。換句話說,假設上述的第二物理抹除單元410(F)在寫入數據之前,是 使用多層存儲單元模式抹除指令來進行抹除操作,當要寫入數據到第二物理抹除單元410(F)時,便會同時存儲數據到第二物理抹除單元410(F)的下物理程序化單元以及上物理程序化單元中。
在本范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)通過使用單層存儲單元模式抹除指令來對第一物理抹除單元410(0)進行抹除操作,來設定第一物理抹除單元410(0)的寫入模式處于單層存儲單元模式。而存儲器控制電路單元104(或存儲器管理電路202)便會在之后操作為單層存儲單元模式的第一物理抹除單元410(0)時,使用單層存儲單元模式的指令來操作第一物理抹除單元410(0)。值得一提的是,在本范例實施例中,設定為單層存儲單元模式的物理抹除單元,便會一直處于單層存儲單元模式。此外,被記錄于第二程序化模式物理抹除單元分布表中的物理抹除單元,或是被標記為第二程序化模式物理抹除單元的物理抹除單元也會一直被記錄于第二程序化模式物理抹除單元分布表中或是一直被標記為第二程序化模式物理抹除單元。而當此些處于單層存儲單元模式的物理抹除單元的某個物理程序化單元的其中一個錯誤檢查與校正框的錯誤比特數目大于錯誤比特數目門檻值時,存儲器控制電路單元104(或存儲器管理電路202)會標記此物理抹除單元為壞物理抹除單元,并記錄于一個壞物理抹除單元表中,同時提取閑置區的一個空白的物理抹除單元來存儲此壞物理抹除單元中的有效數據,并將原本映射到此壞物理抹除單元的邏輯單元重新映射到所提取的物理抹除單元,同時將此壞物理抹除單元自數據區502的關聯中移除。之后,存儲器控制電路單元104(或存儲器管理電路202)將不再使用此壞物理抹除單元。
圖9為根據本發明的范例實施例,所示出的數據存儲方法的流程圖。
請參照圖9,在步驟S901中,存儲器控制電路單元104(或存儲器管理電路202)會選擇一個物理抹除單元(以下稱為第一物理抹除單元)。接著,在步驟S903中,存儲器控制電路單元104(或存儲器管理電路202)會判斷所選擇的第一物理抹除單元之中的多個物理程序化單元的其中一個錯誤檢查與校正框的錯誤比特數目是否大于錯誤比特數目門檻值。倘若是,則接著在步驟S905中,存儲器控制電路單元104(或存儲器管理電路202)會設定在第一物理抹除單元被執行抹除操作之后,使用單層存儲單元模式來存儲數據。例如,如上所述,存儲器控制電路單元104(或存儲器管理電路202)會使用 單層存儲單元模式抹除指令來對第一物理抹除單元進行抹除操作,以致于第一物理抹除單元在通過單層存儲單元模式抹除指令進行抹除操作之后,第一物理抹除單元的物理程序化單元僅可存儲1個比特的數據。
倘若第一物理抹除單元之中的多個物理程序化單元的其中一個錯誤檢查與校正框的錯誤比特數目非大于錯誤比特數目門檻值時,在步驟S907中,存儲器控制電路單元104(或存儲器管理電路202)會設定在第一物理抹除單元被執行抹除操作之后,同時使用第一物理抹除單元的上物理程序化單元以及下物理程序化單元來存儲數據。例如,如上所述,存儲器控制電路單元104(或存儲器管理電路202)會使用多層存儲單元模式抹除指令來對第一物理抹除單元進行抹除操作,以致于第一物理抹除單元通過多層存儲單元模式抹除指令來進行抹除操作之后,其上物理程序化單元以及下物理程序化單元會同時被用來存儲數據。
綜上,于本范例實施例中,本發明概念可讓錯誤比特數目超過錯誤比特數目門檻值的不良的物理抹除單元,被設定成單層存儲單元模式而繼續使用。特別是,處于單層存儲單元模式的不良的物理抹除單元因為其存儲單元的電位范圍較廣,可讓原來會發生錯誤的存儲單元變成不會發生錯誤,而降低這些不良的物理抹除單元中的物理程序化單元所發生的錯誤比特數目,增進存儲于這些不良的物理抹除單元的數據的穩定性,同時也因為可以繼續使用錯誤比特數目超過錯誤比特數目門檻值的不良的物理抹除單元,而延長可復寫式非易失性存儲器模塊的使用壽命。
[第二范例實施例]
第二范例實施例在硬件架構上相似于第一范例實施例,而第二范例實施例與第一范例實施例不同的地方在于,第一范例實施例是基于物理抹除單元為單位對不良的物理抹除單元做處理,而第二范例實施例是基于物理程序化單元為單位,對不良的物理程序化單元做處理。以下將利用第一范例實施例的元件編號詳細說明此第二范例實施例的不同之處。
當從主機系統1000接收一筆第一數據,存儲器控制電路單元104(或存儲器管理電路202)會選擇可復寫式非易失性存儲器模塊的數據區502中還有空間的第一物理抹除單元410(0)來寫入第一數據。
如同第一范例實施例所述,存儲器控制電路單元104(或存儲器管理電 路202)會記錄著第一物理抹除單元410(0)的每個程序化單元的每個錯誤檢查與校正框的錯誤比特數目。以上述圖8的例子,第一物理抹除單元410(0)中的第一物理程序化單元802的大小為2K bytes(2048bytes),可存儲4個錯誤檢查與校正框大小的數據,分別為第一錯誤檢查與校正框801、第二錯誤檢查與校正框803、第三錯誤檢查與校正框805、第四錯誤檢查與校正框807、每個錯誤檢查與校正框的大小為512bytes;而第二物理程序化單元804的大小為2K bytes(2048bytes),可存儲4個錯誤檢查與校正框大小的數據,分別為第一錯誤檢查與校正框809、第二錯誤檢查與校正框811、第三錯誤檢查與校正框813、第四錯誤檢查與校正框815、每個錯誤檢查與校正框的大小為512bytes。舉例來說,假設第一物理程序化單元802的第一錯誤檢查與校正框801的錯誤比特數目為3,第二錯誤檢查與校正框803的錯誤比特數目為4、第三錯誤檢查與校正框805的錯誤比特數目為5、第四錯誤檢查與校正框807的錯誤比特數目為11;第二物理程序化單元804的第一錯誤檢查與校正框809的錯誤比特數目為3,第二錯誤檢查與校正框811的錯誤比特數目為4、第三錯誤檢查與校正框813的錯誤比特數目為5、第四錯誤檢查與校正框815的錯誤比特數目為6。
存儲器控制電路單元104(或存儲器管理電路202)會在寫入數據到第一物理抹除單元410(0)中的物理程序化單元之前,根據所記錄的物理程序化單元的錯誤檢查與校正框的錯誤比特數目來判斷在欲寫入的物理程序化單元之中是否其中一個錯誤檢查與校正框的錯誤比特數目大于錯誤比特數目門檻值。如上述的例子,系統預先定義的錯誤比特數目門檻值為10,而第一物理抹除單元410(0)的第一物理程序化單元802中第四錯誤檢查與校正框807的錯誤比特數目為11,大于錯誤比特數目門檻值。基此,存儲器控制電路單元104(或存儲器管理電路202)會辨識出欲寫入的第一物理程序化單元802的其中一個錯誤檢查與校正框的錯誤比特數目大于錯誤比特數目門檻值,并且因此先將一筆虛擬數據(Dummy data)寫入并填滿第一物理程序化單元802。接著存儲器控制電路單元104(或存儲器管理電路202)會判斷下一個物理程序化單元(即,第二物理程序化單元804)中是否有任何錯誤檢查與校正框的錯誤比特數目大于錯誤比特數目門檻值。如上述的例子,第二物理程序化單元804的每個錯誤檢查與校正框的錯誤比特數目都不大于錯誤比特數目門檻值, 因此,存儲器控制電路單元104(或存儲器管理電路202)會將第一數據寫入第二物理程序化單元804中。
值得一提的是,在另一范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)也可不將虛擬數據寫入其中一個錯誤檢查與校正框的錯誤比特數目大于錯誤比特數目門檻值的第一物理程序化單元802,而會先將此其中一個錯誤檢查與校正框的錯誤比特數目大于錯誤比特數目門檻值的第一物理程序化單元802先標記為不良物理程序化單元或是先記錄第一物理程序化單元802于一個不良物理程序化單元表中。之后,存儲器控制電路單元104(或存儲器管理電路202)判斷后續的物理程序化單元中是否有任一個錯誤檢查與校正框的錯誤比特數目大于錯誤比特數目門檻值。依序直到找到所有錯誤檢查與校正框的錯誤比特數目皆非大于錯誤比特數目門檻值的物理程序化單元時,才寫入第一數據于此所有錯誤檢查與校正框的錯誤比特數目皆非大于錯誤比特數目門檻值的物理程序化單元。
值得一提的是,在本范例實施例中,是記錄每一物理程序化單元的錯誤檢查與校正框的錯誤比特數目并據此決定是否將數據寫入至所選擇的物理程序化單元中。然而,本發明不限于此,在另一范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)還可將存有錯誤比特數目大于錯誤比特數目門檻的錯誤檢查與校正框的物理程序化單元標記為不良物理程序化單元或記錄于不良物理程序化單元表中。如此一來,之后,在執行寫入指令時,存儲器控制電路單元104(或存儲器管理電路202)可根據不良物理程序化單元的標記或不良物理程序化單元表,直接在不良物理程序化單元填入虛擬數據,如此一來,可以減少需要寫入數據的時間,增進寫入效率。
甲、而在另一范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)還可以在系統閑暇時,例如,一段預定時間未接收到任何指令時,檢查在每個物理程序化單元中是否有任一個錯誤檢查與校正框的錯誤比特數目大于錯誤比特數目門檻值(以下稱不良的物理程序化單元)。并且,在辨識到有不良的物理程序化單元時,除了如上所述,做標記或是記錄不良的物理程序化單元的步驟之外,存儲器控制電路單元104(或存儲器管理電路202)還檢查此不良的物理程序化單元之中,是否存儲有有效數據,其中倘若存儲著有效數據,存儲器控制電路單元104(或存儲器管理電路202)將有效數據 復制到非不良的物理程序化單元中,并且將原本映射到此不良的物理程序化單元的邏輯子單元重新映射到新存儲著有效數據的非不良的物理程序化單元中,而在之后此不良的物理程序化單元所屬的物理抹除單元進行抹除操作之后,于寫入有效數據的同時,可根據標記或是壞物理程式單元表寫入虛擬數據于不良的物理程序化單元中。
乙、圖10為根據本發明的范例實施例,所示出的數據存儲方法的流程圖。
請參照圖10,在步驟S1001中,存儲器控制電路單元104(或存儲器管理電路202)會從主機系統1000中接收一筆第一數據,接著在步驟S1003中,存儲器控制電路單元104(或存儲器管理電路202)會選擇一個物理抹除單元(以下稱為第一物理抹除單元)的一個物理程序化單元(以下稱為第一物理程序化單元)作為目標物理程序化單元,接著在步驟S1005中,存儲器控制電路單元104(或存儲器管理電路202)會檢查在此目標物理程序化單元中是否其中一個錯誤檢查與校正框的錯誤比特數目大于錯誤比特數目門檻值。倘若是,則接著在步驟S1007中,存儲器控制電路單元104(或存儲器管理電路202)會寫入并填滿一筆虛擬數據于此目標物理程序化單元。
在寫入并填滿一筆虛擬數據于此目標物理程序化單元之后,接著回到步驟S1003中,存儲器控制電路單元104(或存儲器管理電路202)會繼續選擇第一物理抹除單元的一個物理程序化單元作為目標物理程序化單元,值得注意的是,此時所選擇的目標物理程序化單元為配置于剛剛存儲虛擬數據的物理程序化單元之后的一個物理程序化單元,接著再執行步驟S1005。
若是在步驟S1005中判斷在目標物理程序化單元中所有錯誤檢查與校正框的錯誤比特數目皆非大于錯誤比特數目門檻值時,接著在步驟S1009中,存儲器控制電路單元104(或存儲器管理電路202)會寫入第一數據于此目標物理程序化單元中。
綜上,根據第二范例實施例的描述,可得知本發明還可以使系統基于物理程序化單元,來對不良的物理程序化單元做處理,避免將數據寫入不良的物理程序化單元,造成數據損壞,也可繼續使用含有不良的物理程序化單元的不良物理抹除單元,不需使用如第一范例實施例所述,將此不良物理抹除單元設定成第二程序化模式物理抹除單元來繼續操作。如此一來,相較于第 一范例實施例,第二范例實施例還可以繼續使用相較于第二程序化模式物理抹除單元,有著較大存儲空間的非第二程序化模式物理抹除單元,同時也能達到延長可復寫式非易失性存儲器模塊的使用壽命。
值得一提的是,于另一范例實施例中,第一范例實施例和第二范例實施例的方法也可以并存。也就是說,存儲器控制電路單元104(或存儲器管理電路202)可以在寫入第一數據于已經設定成單層存儲單元模式的物理抹除單元之前,相似于第二范例實施例的方法,檢查此第二程序化模式物理抹除單元中的物理程序化單元是否有不良的物理程序化單元,寫入虛擬數據到不良的物理程序化單元,再將第一數據寫入非不良的物理程序化單元中,或是如上所述,可先不寫入虛擬數據于不良的物理程序化單元中,而先標記或是記錄此不良的物理程序化單元,再寫入第一數據于非不良的物理程序化單元。而在另一范例實施例中,存儲器控制電路單元104(或存儲器管理電路202)還可以在此第二程序化模式物理抹除單元含有不良的物理程序化單元的數目大于一不良物理程序化單元門檻值時,再將此物理抹除單元標記為壞物理抹除單元。如此一來,可繼續延長第二程序化模式物理抹除單元的使用壽命。
而在本發明概念中,錯誤檢查與校正框在本發明的范例實施例中,只是一個用來設定檢查每個物理程序化單元的錯誤比特數目的預設區域的大小的例子,本發明不限于此。
綜上所述,本發明可基于物理抹除單元為單位或是基于物理程序化單元為單位,來對不良的物理抹除單元或是不良的物理程序化單元做處理,藉此可以增進數據存儲的穩定性,同時通過繼續使用不良的物理抹除單元或是不良的物理程序化單元,以延長可復寫式非易失性存儲器模塊的使用壽命。
最后應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。

關 鍵 詞:
數據 存儲 方法 存儲器 控制電路 單元 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:數據存儲方法、存儲器控制電路單元與存儲器存儲裝置.pdf
鏈接地址:http://www.wwszu.club/p-6401797.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大