• / 24
  • 下載費用:30 金幣  

存儲器管理方法、存儲器存儲裝置及存儲器控制電路單元.pdf

摘要
申請專利號:

CN201410125751.6

申請日:

2014.03.31

公開號:

CN104951241A

公開日:

2015.09.30

當前法律狀態:

授權

有效性:

有權

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

CN201410125751.6

授權公告號:

||||||

法律狀態公告日:

2018.02.27|||2015.11.04|||2015.09.30

法律狀態類型:

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

摘要

本發明提供一種存儲器管理方法、存儲器存儲裝置及存儲器控制電路單元。此方法包括:接收寫入指令以寫入第一數據至第一閑置物理抹除單元;選取第一物理抹除單元,其中第一物理抹除單元不包含第一閑置物理抹除單元且存儲有復數筆數據,且所述數據中的至少二者屬于不同的邏輯抹除單元;復制并寫入所述數據中的有效數據至第二閑置物理抹除單元,其中第二閑置物理抹除單元不同于第一閑置物理抹除單元。

權利要求書

權利要求書
1.  一種存儲器管理方法,用于一可復寫式非易失性存儲器模塊,其特征在于,該可復寫式非易失性存儲器模塊包括多個物理抹除單元,并且該存儲器管理方法包括:
配置多個邏輯地址,其中該些邏輯地址組成多個邏輯程序化單元,該些邏輯程序化單元組成多個邏輯抹除單元,并且該些物理抹除單元包括至少一閑置物理抹除單元;
接收一第一寫入指令,其中該第一寫入指令指示將一第一數據寫入至該些邏輯地址中的至少一第一邏輯地址,并寫入該第一數據至從該至少一閑置物理抹除單元中提取的一第一閑置物理抹除單元;
從該些物理抹除單元中選取一第一物理抹除單元,其中該第一物理抹除單元不包含該第一閑置物理抹除單元且存儲有復數筆數據,且該些數據中的至少二者屬于不同的邏輯抹除單元;
復制并寫入該些數據中的至少一有效數據至從該至少一閑置物理抹除單元中提取的一第二閑置物理抹除單元,其中該第二閑置物理抹除單元不同于該第一閑置物理抹除單元;以及
抹除該第一物理抹除單元。

2.  根據權利要求1所述的存儲器管理方法,其特征在于,還包括:
在寫入該第一數據的期間,判斷該第一閑置物理抹除單元是否已被寫滿;
當該第一閑置物理抹除單元已被寫滿時,從該些閑置物理抹除單元中提取一第三閑置物理抹除單元以寫入該第一數據;
在寫入該至少一有效數據的期間,判斷該第二閑置物理抹除單元是否已被寫滿;以及
當該第二閑置物理抹除單元已被寫滿時,從該些閑置物理抹除單元中提取一第四閑置物理抹除單元以寫入該至少一有效數據;
其中該第三閑置物理抹除單元不同于該第四閑置物理抹除單元。

3.  根據權利要求1所述的存儲器管理方法,其特征在于,當該至少一閑置物理抹除單元的數量達到一數量門限值時,執行復制并寫入該至少一有效數據至該第二閑置物理抹除單元的步驟。

4.  根據權利要求1所述的存儲器管理方法,其特征在于,該第一物理抹除單元是該些物理抹除單元中存儲最少有效數據的物理抹除單元。

5.  根據權利要求1所述的存儲器管理方法,其特征在于,該第一物理抹除單元是該些物理抹除單元中存儲有寫入時間最早的有效數據的物理抹除單元。

6.  根據權利要求1所述的存儲器管理方法,其特征在于,還包括:
接收一第二寫入指令,其中該第二寫入指令指示將一第二數據寫入至該些邏輯地址中的至少一第二邏輯地址;
判斷被寫入至該第二閑置物理抹除單元的該至少一有效數據的任一者所屬的邏輯程序化單元與該第二數據所屬的邏輯程序化單元是否相同;
當該至少一有效數據的該任一者所屬的邏輯程序化單元與該第二數據所屬的邏輯程序化單元不相同時,根據該至少一有效數據與該第二閑置物理抹除單元的對應關系更新一邏輯地址-物理抹除單元映射表;以及
當該至少一有效數據的該任一者所屬的邏輯程序化單元與該第二數據所屬的邏輯程序化單元相同時,將所屬的邏輯程序化單元與該第二數據所屬的邏輯程序化單元相同的有效數據標記為無效數據。

7.  一種存儲器存儲裝置,其特征在于,包括:
一連接接口單元,用以電性連接至一主機系統;
一可復寫式非易失性存儲器模塊,包括多個物理抹除單元;以及
一存儲器控制電路單元,電性連接至該連接接口單元與該可復寫式非易失性存儲器模塊,
其中該存儲器控制電路單元用以配置多個邏輯地址,其中該些邏輯地址組成多個邏輯程序化單元,該些邏輯程序化單元組成多個邏輯抹除單元,并且該些物理抹除單元包括至少一閑置物理抹除單元,
該存儲器控制電路單元還用以接收一第一寫入指令,其中該第一寫入指令指示將一第一數據寫入至該些邏輯地址中的至少一第一邏輯地址,并寫入該第一數據至從該至少一閑置物理抹除單元中提取的一第一閑置物理抹除單元,
該存儲器控制電路單元還用以從該些物理抹除單元中選取一第一物理抹除單元,其中該第一物理抹除單元不包含該第一閑置物理抹除單元且存儲有復數筆數據,且該些數據中的至少二者屬于不同的邏輯抹除單元,
該存儲器控制電路單元還用以復制并寫入該些數據中的至少一有效數據至從該至少一閑置物理抹除單元中提取的一第二閑置物理抹除單元,其中該 第二閑置物理抹除單元不同于該第一閑置物理抹除單元,
該存儲器控制電路單元還用以抹除該第一物理抹除單元。

8.  根據權利要求7所述的存儲器存儲裝置,其特征在于,該存儲器控制電路單元還用以在寫入該第一數據的期間,判斷該第一閑置物理抹除單元是否已被寫滿,
當該第一閑置物理抹除單元已被寫滿時,該存儲器控制電路單元還用以從該些閑置物理抹除單元中提取一第三閑置物理抹除單元以寫入該第一數據,
該存儲器控制電路單元還用以在寫入該至少一有效數據的期間,判斷該第二閑置物理抹除單元是否已被寫滿,
當該第二閑置物理抹除單元已被寫滿時,該存儲器控制電路單元還用以從該些閑置物理抹除單元中提取一第四閑置物理抹除單元以寫入該至少一有效數據,
其中該第三閑置物理抹除單元不同于該第四閑置物理抹除單元。

9.  根據權利要求7所述的存儲器存儲裝置,其特征在于,當該至少一閑置物理抹除單元的數量達到一數量門限值時,該存儲器控制電路單元執行復制并寫入該至少一有效數據至該第二閑置物理抹除單元的操作。

10.  根據權利要求7所述的存儲器存儲裝置,其特征在于,該第一物理抹除單元是該些物理抹除單元中存儲最少有效數據的物理抹除單元。

11.  根據權利要求7所述的存儲器存儲裝置,其特征在于,該第一物理抹除單元是該些物理抹除單元中存儲有寫入時間最早的有效數據的物理抹除單元。

12.  根據權利要求7所述的存儲器存儲裝置,其特征在于,該存儲器控制電路單元還用以接收一第二寫入指令,其中該第二寫入指令指示將一第二數據寫入至該些邏輯地址中的至少一第二邏輯地址,
該存儲器控制電路單元還用以判斷被寫入至該第二閑置物理抹除單元的該至少一有效數據的任一者所屬的邏輯程序化單元與該第二數據所屬的邏輯程序化單元是否相同,
當該至少一有效數據的該任一者所屬的邏輯程序化單元與該第二數據所屬的邏輯程序化單元不相同時,該存儲器控制電路單元還用以根據該至少一有效數據與該第二閑置物理抹除單元的對應關系更新一邏輯地址-物理抹除 單元映射表,
當該至少一有效數據的該任一者所屬的邏輯程序化單元與該第二數據所屬的邏輯程序化單元相同時,該存儲器控制電路單元還用以將所屬的邏輯程序化單元與該第二數據所屬的邏輯程序化單元相同的有效數據標記為無效數據。

13.  一種存儲器控制電路單元,用于控制一可復寫式非易失性存儲器模塊,其特征在于,該可復寫式非易失性存儲器模塊包括多個物理抹除單元,該存儲器控制電路單元包括:
一主機接口,用以電性連接至一主機系統;
一存儲器接口,用以電性連接至該可復寫式非易失性存儲器模塊;以及
一存儲器管理電路,電性連接至該主機接口與該存儲器接口,
其中該存儲器管理電路用以配置多個邏輯地址,其中該些邏輯地址組成多個邏輯程序化單元,該些邏輯程序化單元組成多個邏輯抹除單元,并且該些物理抹除單元包括至少一閑置物理抹除單元,
該存儲器管理電路還用以接收一第一寫入指令,其中該第一寫入指令指示將一第一數據寫入至該些邏輯地址中的至少一第一邏輯地址,并發送一第一指令序列,其中該第一指令序列指示寫入該第一數據至從該至少一閑置物理抹除單元中提取的一第一閑置物理抹除單元,
該存儲器管理電路還用以從該些物理抹除單元中選取一第一物理抹除單元,該第一物理抹除單元不包含該第一閑置物理抹除單元且存儲有復數筆數據,且該些數據中的至少二者屬于不同的邏輯抹除單元,
該存儲器管理電路還用以發送一第二指令序列,其中該第二指令序列指示復制并寫入該些數據中的至少一有效數據至從該至少一閑置物理抹除單元中提取的一第二閑置物理抹除單元,并且該第二閑置物理抹除單元不同于該第一閑置物理抹除單元,
該存儲器管理電路還用以發送一第三指令序列,其中該第三指令序列指示抹除該第一物理抹除單元。

14.  根據權利要求13所述的存儲器控制電路單元,其特征在于,該存儲器管理電路還用以在寫入該第一數據的期間,判斷該第一閑置物理抹除單元是否已被寫滿,
當該第一閑置物理抹除單元已被寫滿時,該存儲器管理電路還用以發送 一第四指令序列,其中該第四指令序列指示從該些閑置物理抹除單元中提取一第三閑置物理抹除單元以寫入該第一數據,
該存儲器管理電路還用以在寫入該至少一有效數據的期間,判斷該第二閑置物理抹除單元是否已被寫滿,
當該第二閑置物理抹除單元已被寫滿時,該存儲器管理電路還用以發送一第五指令序列,其中該第五指令序列指示從該些閑置物理抹除單元中提取一第四閑置物理抹除單元以寫入該至少一有效數據,
其中該第三閑置物理抹除單元不同于該第四閑置物理抹除單元。

15.  根據權利要求13所述的存儲器控制電路單元,其特征在于,當該至少一閑置物理抹除單元的數量達到一數量門限值時,該存儲器管理電路發送該第二指令序列。

16.  根據權利要求13所述的存儲器控制電路單元,其特征在于,該第一物理抹除單元是該些物理抹除單元中存儲最少有效數據的物理抹除單元。

17.  根據權利要求13所述的存儲器控制電路單元,其特征在于,該第一物理抹除單元是該些物理抹除單元中存儲有寫入時間最早的有效數據的物理抹除單元。

18.  根據權利要求13所述的存儲器控制電路單元,其特征在于,該存儲器管理電路還用以接收一第二寫入指令,其中該第二寫入指令指示將一第二數據寫入至該些邏輯地址中的至少一第二邏輯地址,
該存儲器管理電路還用以判斷被寫入至該第二閑置物理抹除單元的該至少一有效數據的任一者所屬的邏輯程序化單元與該第二數據所屬的邏輯程序化單元是否相同,
當該至少一有效數據的該任一者所屬的邏輯程序化單元與該第二數據所屬的邏輯程序化單元不相同時,該存儲器管理電路還用以根據該至少一有效數據與該第二閑置物理抹除單元的對應關系更新一邏輯地址-物理抹除單元映射表,
當該至少一有效數據的該任一者所屬的邏輯程序化單元與該第二數據所屬的邏輯程序化單元相同時,該存儲器管理電路還用以將所屬的邏輯程序化單元與該第二數據所屬的邏輯程序化單元相同的有效數據標記為無效數據。

說明書

說明書存儲器管理方法、存儲器存儲裝置及存儲器控制電路單元
技術領域
本發明是有關于一種存儲器管理機制,且特別是有關于一種可復寫式非易失性存儲器模塊的存儲器管理方法、存儲器存儲裝置及存儲器控制電路單元。
背景技術
數碼相機、移動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對存儲媒體的需求也急速增加。由于可復寫式非易失性存儲器模塊(例如,快閃存儲器)具有數據非易失性、省電、體積小,以及無機械結構等特性,所以非常適合內建于上述所舉例的各種可攜式多媒體裝置中。
一般來說,在可復寫式非易失性存儲器模塊被使用一段時間之后,可復寫式非易失性存儲器模塊會自動地執行一垃圾收集程序,以釋放出多余的存儲器空間。然而,垃圾收集程序可能會使經整理出的有效的舊數據與新寫入的數據混淆,從而降低可復寫式非易失性存儲器模塊往后執行順序寫入(sequential write)時的數據寫入效率。
發明內容
本發明提供一種存儲器管理方法、存儲器存儲裝置及存儲器控制電路單元,可有效減少可復寫式非易失性存儲器模塊因長時間使用而導致數據寫入效率降低的情形。
本發明提供一種存儲器管理方法,存儲器管理方法用于可復寫式非易失性存儲器模塊,并且可復寫式非易失性存儲器模塊包括多個物理抹除單元。存儲器管理方法包括:配置多個邏輯地址,其中所述邏輯地址組成多個邏輯程序化單元,所述邏輯程序化單元組成多個邏輯抹除單元,并且所述物理抹除單元包括至少一閑置物理抹除單元;接收第一寫入指令,其中第一寫入指令指示將第一數據寫入至所述邏輯地址中的至少一第一邏輯地址,并寫入第 一數據至從所述閑置物理抹除單元中提取的第一閑置物理抹除單元;從所述物理抹除單元中選取第一物理抹除單元,其中第一物理抹除單元不包含第一閑置物理抹除單元且存儲有復數筆數據,且所述數據中的至少二者屬于不同的邏輯抹除單元;復制并寫入所述數據中的至少一有效數據至從所述閑置物理抹除單元中提取的第二閑置物理抹除單元,其中第二閑置物理抹除單元不同于第一閑置物理抹除單元;以及抹除第一物理抹除單元。
在本發明的一范例實施例中,所述的存儲器管理方法還包括:在寫入第一數據的期間,判斷第一閑置物理抹除單元是否已被寫滿;當第一閑置物理抹除單元已被寫滿時,從所述閑置物理抹除單元中提取第三閑置物理抹除單元以寫入第一數據;在寫入所述有效數據的期間,判斷第二閑置物理抹除單元是否已被寫滿;以及當第二閑置物理抹除單元已被寫滿時,從所述閑置物理抹除單元中提取第四閑置物理抹除單元以寫入所述有效數據,其中第三閑置物理抹除單元不同于第四閑置物理抹除單元。
在本發明的一范例實施例中,當所述閑置物理抹除單元的數量達到一數量門限值時,執行復制并寫入所述有效數據至第二閑置物理抹除單元的步驟。
在本發明的一范例實施例中,所述的第一物理抹除單元是所述物理抹除單元中存儲最少有效數據的物理抹除單元。
在本發明的一范例實施例中,所述的第一物理抹除單元是所述物理抹除單元中存儲有寫入時間最早的有效數據的物理抹除單元。
在本發明的一范例實施例中,所述的存儲器管理方法還包括:接收第二寫入指令,其中第二寫入指令指示將第二數據寫入至所述邏輯地址中的至少一第二邏輯地址;判斷被寫入至第二閑置物理抹除單元的所述有效數據的任一者所屬的邏輯程序化單元與第二數據所屬的邏輯程序化單元是否相同;當有效數據的任一者所屬邏輯程序化單元與第二數據所屬的邏輯程序化單元不相同時,根據有效數據與第二閑置物理抹除單元的對應關系更新一邏輯地址-物理抹除單元映射表;以及當有效數據的任一者所屬的邏輯程序化單元與第二數據所屬的邏輯程序化單元相同時,將有效數據標記為無效數據。
本發明另提出一種存儲器存儲裝置,所述存儲器存儲裝置包括連接接口單元、可復寫式非易失性存儲器模塊及存儲器控制電路單元。連接接口單元用以電性連接至主機系統。可復寫式非易失性存儲器模塊包括多個物理抹除 單元。存儲器控制電路單元電性連接至連接接口單元與可復寫式非易失性存儲器模塊。存儲器控制電路單元用以配置多個邏輯地址,其中所述邏輯地址組成多個邏輯程序化單元,所述邏輯程序化單元組成多個邏輯抹除單元,并且所述物理抹除單元包括至少一閑置物理抹除單元。存儲器控制電路單元還用以接收第一寫入指令,其中第一寫入指令指示將第一數據寫入至所述邏輯地址中的至少一第一邏輯地址,并寫入第一數據至從所述閑置物理抹除單元中提取的第一閑置物理抹除單元。存儲器控制電路單元還用以從所述物理抹除單元中選取第一物理抹除單元,其中第一物理抹除單元不包含第一閑置物理抹除單元且存儲有復數筆數據,且所述數據中的至少二者屬于不同的邏輯抹除單元。存儲器控制電路單元還用以復制并寫入所述數據中的至少一有效數據至從所述閑置物理抹除單元中提取的第二閑置物理抹除單元,其中第二閑置物理抹除單元不同于第一閑置物理抹除單元。存儲器控制電路單元還用以抹除第一物理抹除單元。
在本發明的一范例實施例中,所述的存儲器控制電路單元還用以在寫入第一數據的期間,判斷第一閑置物理抹除單元是否已被寫滿。當第一閑置物理抹除單元已被寫滿時,存儲器控制電路單元還用以從所述閑置物理抹除單元中提取第三閑置物理抹除單元以寫入第一數據。存儲器控制電路單元還用以在寫入所述有效數據的期間,判斷第二閑置物理抹除單元是否已被寫滿。當第二閑置物理抹除單元已被寫滿時,存儲器控制電路單元還用以從所述閑置物理抹除單元中提取第四閑置物理抹除單元以寫入所述有效數據。第三閑置物理抹除單元不同于第四閑置物理抹除單元。
在本發明的一范例實施例中,其中當所述閑置物理抹除單元的數量達到數量門限值時,存儲器控制電路單元復制并寫入所述有效數據至所述第二閑置物理抹除單元。
在本發明的一范例實施例中,所述的第一物理抹除單元是所述物理抹除單元中存儲最少有效數據的物理抹除單元。
在本發明的一范例實施例中,所述的第一物理抹除單元是所述物理抹除單元中存儲有寫入時間最早的有效數據的物理抹除單元。
在本發明的一范例實施例中,所述的存儲器控制電路單元還用以接收第二寫入指令,其中第二寫入指令指示將第二數據寫入至所述邏輯地址中的至 少一第二邏輯地址。存儲器控制電路單元還用以判斷被寫入至第二閑置物理抹除單元的所述有效數據的任一者所屬的邏輯程序化單元與第二數據所屬的邏輯程序化單元是否相同。當有效數據的任一者所屬邏輯程序化單元與第二數據所屬的邏輯程序化單元不相同時,存儲器控制電路單元還用以根據有效數據與第二閑置物理抹除單元的對應關系更新邏輯地址-物理抹除單元映射表。當有效數據的任一者所屬的邏輯程序化單元與第二數據所屬的邏輯程序化單元相同時,存儲器控制電路單元還用以將有效數據標記為無效數據。
本發明還提出一種存儲器控制電路單元,所述存儲器控制電路單元用于控制可復寫式非易失性存儲器模塊,其中可復寫式非易失性存儲器模塊包括多個物理抹除單元。所述存儲器控制電路單元包括主機接口、存儲器接口及存儲器管理電路。主機接口用以電性連接至主機系統。存儲器接口用以電性連接至可復寫式非易失性存儲器模塊。存儲器管理電路電性連接至主機接口與存儲器接口。存儲器管理電路用以配置配置多個邏輯地址,其中所述邏輯地址組成多個邏輯程序化單元,所述邏輯程序化單元組成多個邏輯抹除單元,并且所述物理抹除單元包括至少一閑置物理抹除單元。存儲器管理電路還用以接收第一寫入指令,其中第一寫入指令指示將第一數據寫入至所述邏輯地址中的至少一第一邏輯地址,并發送第一指令序列,其中第一指令序列指示寫入第一數據至從所述閑置物理抹除單元中提取的第一閑置物理抹除單元。存儲器管理電路還用以從所述物理抹除單元中選取第一物理抹除單元,其中第一物理抹除單元不包含第一閑置物理抹除單元且存儲有復數筆數據,且所述數據中的至少二者屬于不同的邏輯抹除單元。存儲器管理電路還用以發送第二指令序列,其中第二指令序列指示復制并寫入所述數據中的至少一有效數據至從所述閑置物理抹除單元中提取的第二閑置物理抹除單元,并且第二閑置物理抹除單元不同于第一閑置物理抹除單元。存儲器管理電路還用以發送第三指令序列,其中第三指令序列指示抹除第一物理抹除單元。
在本發明的一范例實施例中,所述的存儲器管理電路還用以在寫入第一數據的期間,判斷第一閑置物理抹除單元是否已被寫滿。當第一閑置物理抹除單元已被寫滿時,存儲器管理電路還用以發送第四指令序列,其中第四指令序列指示從所述閑置物理抹除單元中提取第三閑置物理抹除單元以寫入第一數據。存儲器管理電路還用以在寫入所述有效數據的期間,判斷第二閑置 物理抹除單元是否已被寫滿。當第二閑置物理抹除單元已被寫滿時,存儲器管理電路還用以發送第五指令序列,其中第五指令序列指示從所述閑置物理抹除單元中提取一第四閑置物理抹除單元以寫入所述有效數據。其中第三閑置物理抹除單元不同于第四閑置物理抹除單元。
在本發明的一范例實施例中,當所述閑置物理抹除單元的數量達到數量門限值時,存儲器管理電路發送第二指令序列。
在本發明的一范例實施例中,所述的第一物理抹除單元是所述物理抹除單元中存儲最少有效數據的物理抹除單元。
在本發明的一范例實施例中,所述的第一物理抹除單元是所述物理抹除單元中存儲有寫入時間最早的有效數據的物理抹除單元。
在本發明的一范例實施例中,所述的存儲器管理電路還用以接收第二寫入指令,其中第二寫入指令指示將第二數據寫入至所述邏輯地址中的至少一第二邏輯地址。存儲器管理電路還用以判斷被寫入至第二閑置物理抹除單元的所述有效數據的任一者所屬的邏輯程序化單元與第二數據所屬的邏輯程序化單元是否相同。當有效數據的任一者所屬邏輯程序化單元與第二數據所屬的邏輯程序化單元不相同時,存儲器管理電路還用以根據有效數據與第二閑置物理抹除單元的對應關系更新一邏輯地址-物理抹除單元映射表。當有效數據的任一者所屬的邏輯程序化單元與第二數據所屬的邏輯程序化單元相同時,存儲器管理電路還用以將有效數據標記為無效數據。
基于上述,本發明通過將來自主機系統的數據寫入至接收物理抹除單元,并且將從可復寫式非易失性存儲器模塊中的部分物理抹除單元收集的有效數據寫入至回收物理抹除單元,使得可復寫式非易失性存儲器模塊中的有效舊數據與新數據不會存儲在相同的物理抹除單元,進而有效減少可復寫式非易失性存儲器模塊因長時間使用而導致數據寫入效率降低的情形。
為讓本發明的上述特征和優點能更明顯易懂,下文特舉實施例,并配合附圖作詳細說明如下。
附圖說明
圖1A是本發明的一范例實施例的主機系統與存儲器存儲裝置示意圖;
圖1B是本發明的一范例實施例的電腦、輸入/輸出裝置與存儲器存儲裝 置的示意圖;
圖1C是本發明的一范例實施例的主機系統與存儲器存儲裝置的示意圖;
圖2是圖1A所示的存儲器存儲裝置的概要示意圖;
圖3是本發明的一范例實施例的存儲器控制電路單元的概要示意圖;
圖4是本發明的一范例實施例的管理可復寫式非易失性存儲器模塊的范例示意圖;
圖5A與圖5B是本發明的一范例實施例的管理可復寫式非易失性存儲器模塊的范例示意圖;
圖6是本發明的一范例實施例的管理可復寫式非易失性存儲器模塊的范例示意圖;
圖7是本發明的一范例實施例的存儲器管理方法的流程圖。
附圖標記說明:
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、502、601、602、603:數據;
610(0)~610(E):邏輯程序化單元;
S702、S704、S706、S708、S710、S712:步驟。
具體實施方式
一般而言,存儲器存儲裝置(也稱,存儲器存儲系統)包括可復寫式非易失性存儲器模塊與控制器(也稱,控制電路)。通常存儲器存儲裝置是與主機系統一起使用,以使主機系統可將數據寫入至存儲器存儲裝置或從存儲器存儲裝置中讀取數據。
圖1A是本發明的一范例實施例的主機系統與存儲器存儲裝置示意圖。圖1B是本發明的一范例實施例的電腦、輸入/輸出裝置與存儲器存儲裝置的示意圖。圖1C是本發明的一范例實施例的主機系統與存儲器存儲裝置的示意圖。
請參照圖1A,主機系統1000一般包括電腦1100與輸入/輸出 (input/output,簡稱I/O)裝置1106。電腦1100包括微處理器1102、隨機存取存儲器(random access memory,簡稱RAM)1104、系統總線1108與數據傳輸接口1110。輸入/輸出裝置1106包括如圖1B的鼠標1202、鍵盤1204、顯示器1206與打印機1208。必須了解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可還包括其他裝置。
在本發明實施例中,存儲器存儲裝置100是通過數據傳輸接口1110與主機系統1000的其他元件電性連接。通過微處理器1102、隨機存取存儲器1104與輸入/輸出裝置1106的運作可將數據寫入至存儲器存儲裝置100或從存儲器存儲裝置100中讀取數據。例如,存儲器存儲裝置100可以是如圖1B所示的隨身盤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標準、IEEE1394標準、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會為對應此寫入指令的數據產生對應的錯誤更正碼(error correcting code,簡稱ECC code),并且存儲器管理電路202會將對應此寫入指令的數據與對應的錯誤更正碼寫入至可復寫式非易失性存儲器模塊106中。之后,當存儲器管理電路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是以邏輯程序化單元來管理對應的物理抹除單元。此外,存儲器管理電路202會建立邏輯地址-物理抹除單元映射表(logical address-physical erasing unit mapping table),以記錄邏輯地址與物理抹除單元之間的映射關系。此邏輯地址-物理抹除單元映射表還可以例如是記錄邏輯地址與物理程序化單元、邏輯程序化單元與物理程序化單元及/或邏輯程序化單元與物理抹除單元之間的映射關系等各種邏輯與物理的對應關系,本發明不加以限制。
存儲器管理電路202會從存儲區402的閑置物理抹除單元中提取一或多個第一閑置物理抹除單元,以作為接收物理抹除單元。存儲器管理電路202會從存儲區402的閑置物理抹除單元中提取一或多個第二閑置物理抹除單元,以作為回收物理抹除單元。例如,存儲器管理電路202可以將第一閑置物理抹除單元與第二閑置物理抹除單元編號,并且利用查表等方式來識別出 當前被作為接收物理抹除單元的第一閑置物理抹除單元與當前被作為回收物理抹除單元的第二閑置物理抹除單元。被作為接收物理抹除單元的物理抹除單元只用來寫入來自主機系統1000的數據,并且被作為回收物理抹除單元的物理抹除單元只用來寫入來自存儲區402的部分物理抹除單元的有效數據。此外,在一范例實施例中,不會有任何一個物理抹除單元同時被作為接收物理抹除單元與回收物理抹除單元。
存儲器管理電路202會接收來自主機系統1000的第一寫入指令。第一寫入指令指示將第一數據寫入至邏輯地址410(0)~410(D)中的至少一個第一邏輯地址。存儲器管理電路202會將第一數據寫入至接收物理抹除單元。例如,假設當前被作為接收物理抹除單元的物理抹除單元是第一閑置物理抹除單元,則存儲器管理電路202會將第一數據寫入至第一閑置物理抹除單元。
存儲器管理電路202會從存儲區402的物理抹除單元中選取一或多個第一物理抹除單元。在此提及的第一物理抹除單元存儲有復數筆數據,且此些數據中的至少二者屬于不同的邏輯抹除單元。在特定時間點,存儲器管理電路202會執行垃圾收集(garbage collection)程序,以從第一物理抹除單元所存儲的數據中復制有效數據,并且將所復制的有效數據寫入至回收物理抹除單元(例如,第二閑置物理抹除單元)。在此提及的特定時間點,例如是當存儲區402的閑置物理抹除單元的數量達到一數量門限值時。此數量門限值例如是1、2或者更多。例如,每當存儲器管理電路202從存儲區402中提取一個閑置物理抹除單元作為接收物理抹除單元或者回收物理抹除單元之后,存儲器管理電路202會判斷剩余的閑置物理抹除單元的數量是否達到數量門限值。若剩余的閑置物理抹除單元的數量已達到數量門限值,則存儲器管理電路202就會執行此垃圾收集程序。此外,存儲器管理電路202也可以是在閑置一段預設時間(例如,在一段預設時間內沒有接收到來自主機系統1000的任何寫入指令)之后或者任意時間點,執行此垃圾收集程序。再者,存儲器管理電路202還可以是在每將一筆數據寫入至接收物理抹除單元時,同步執行此垃圾回收程序。也就是說,存儲器管理電路202可以一次執行對于第一物理抹除單元的部分垃圾回收程序,并且當目前被作為接收物理抹除單元的物理抹除單元被寫滿時,存儲器管理電路202就會同步釋放出至少一個閑置物理抹除單元,從而確保存儲區402中的閑置物理抹除單元維持在一預設數量。
值得一提的是,被作為接收物理抹除單元的物理抹除單元與被作為回收物理抹除單元的物理抹除單元并非是固定的。例如,在將第一數據寫入至第一閑置物理抹除單元的期間,存儲器管理電路202會判斷第一閑置物理抹除單元是否已被寫滿。當第一閑置物理抹除單元已被寫滿時,存儲器管理電路202會從存儲區402的閑置物理抹除單元中提取一或多個第三閑置物理抹除單元,以取代被寫滿的第一閑置物理抹除單元作為接收物理抹除單元,從而可將尚未被完全寫入的第一數據的全部或一部分寫入至第三閑置物理抹除單元。類似地,在將所復制的有效數據寫入至第二閑置物理抹除單元的期間,存儲器管理電路202會判斷第二閑置物理抹除單元是否已被寫滿。當第二閑置物理抹除單元已被寫滿時,存儲器管理電路202會從存儲區402的閑置物理抹除單元中提取一或多個第四閑置物理抹除單元,以取代被寫滿的第二閑置物理抹除單元作為回收物理抹除單元,從而可將尚未被完全寫入的有效數據的全部或一部寫入至第四閑置物理抹除單元。
值得一提的是,第一物理抹除單元不包括當前被作為接收物理抹除單元的物理抹除單元與當前被作為回收物理抹除單元的物理抹除單元。例如,假設當前被作為接收物理抹除單元的物理抹除單元是第一閑置物理抹除單元,則第一物理抹除單元不會包括第一閑置物理抹除單元。若當前被作為回收物理抹除單元的物理抹除單元是第二閑置物理抹除單元,則第一物理抹除單元不會包括第二閑置物理抹除單元。
在一范例實施例中,從第一物理抹除單元中復制的有效數據至少包括第一有效數據與第二有效數據,并且第一有效數據所屬的邏輯抹除單元(也稱為第一邏輯抹除單元)與第二有效數據所屬的邏輯抹除單元(也稱為第二邏輯抹除單元)不相同。也就是說,對于主機系統1000來說,第一有效數據是被存儲在一或多個第一邏輯地址所屬的第一邏輯抹除單元,并且第二有效數據是被存儲在一或多個第二邏輯地址所屬的第二邏輯抹除單元。此外,上述將所復制的有效數據寫入至回收物理抹除單元的操作,也可視為存儲器管理電路202對于有效數據的搬移。在將所復制的有效數據寫入至回收物理抹除單元之后,存儲器管理電路202會抹除第一物理抹除單元。被抹除后的第一物理抹除單元即可被視為閑置物理抹除單元。
在本范例實施例中,存儲器管理電路202是將存儲區402中除了當前被 作為接收物理抹除單元的物理抹除單元與當前被作為回收物理抹除單元的物理抹除單元之外的所有物理抹除單元都視為第一物理抹除單元。然而,在另一范例實施例中,存儲器管理電路202則是僅將物理抹除單元中符合一特定條件的一或多個物理抹除單元視為第一物理抹除單元。例如,此特定條件可以是與存儲區402中每一個物理抹除單元所存儲的有效數據的數據量及/或寫入時間有關。例如,在一范例實施例中,除了當前被作為接收物理抹除單元的物理抹除單元與當前被作為回收物理抹除單元的物理抹除單元之外,存儲器管理電路202可以將存儲區402中所有物理抹除單元中存儲有效數據量最小及/或寫入時間最早的有效數據的一或多個物理抹除單元視為第一物理抹除單元。此外,在其他范例實施例中,存儲器管理電路202還可以根據任意的條件,例如根據物理抹除單元中有效數據與無效數據的比例是否符合一預設比例等條件來選擇第一物理抹除單元,且不限于此。
圖5A與圖5B是一范例實施例的管理可復寫式非易失性存儲器模塊的范例示意圖。
請參照圖5A,假設當前是物理抹除單元304(0)被作為接收物理抹除單元,并且物理抹除單元304(1)被作為回收物理抹除單元,則當存儲器管理電路202接收到一寫入指令時,存儲器管理電路202會將對應于此寫入指令的數據501寫入至物理抹除單元304(0)。假設存儲器管理電路202決定物理抹除單元304(2)與物理抹除單元304(3)是第一物理抹除單元,則在特定時間點,存儲器管理電路202會對物理抹除單元304(2)與物理抹除單元304(3)執行垃圾收集程序,以將物理抹除單元304(2)與物理抹除單元304(3)中的有效數據復制至物理抹除單元304(1)。在將物理抹除單元304(2)與物理抹除單元304(3)中所有的有效數據都復制至物理抹除單元304(1)之后,存儲器管理電路202會將物理抹除單元304(2)與物理抹除單元304(3)抹除,使得物理抹除單元304(2)與物理抹除單元304(3)成為閑置物理抹除單元。
請參照圖5B,假設在物理抹除單元304(0)與物理抹除單元304(1)被寫滿之后,存儲器管理電路202提取閑置物理抹除單元304(2)以作為接收物理抹除單元,并且提取閑置物理抹除單元304(3)以作為回收物理抹除單元,則當存儲器管理電路202接收到另一寫入指令時,存儲器管理電路202會將對應于此另一寫入指令的數據502寫入至物理抹除單元304(2)。假設存儲器管理 電路202決定物理抹除單元304(4)與物理抹除單元304(6)是第一物理抹除單元,則在特定時間點,存儲器管理電路202會對物理抹除單元304(4)與物理抹除單元304(6)執行垃圾收集程序,以將物理抹除單元304(4)與物理抹除單元304(6)中的有效數據復制至物理抹除單元304(3)。在將物理抹除單元304(4)與物理抹除單元304(6)中所有的有效數據復制至物理抹除單元304(3)之后,存儲器管理電路202會將物理抹除單元304(4)與物理抹除單元304(6)抹除,使得物理抹除單元304(4)與物理抹除單元304(6)成為閑置物理抹除單元。
也就是說,任何來自主機系統1000且欲寫入至可復寫式非易失性存儲器模塊106的數據一開始都會被寫入至接收物理抹除單元,并且任何因垃圾收集程序而收集到的數據都會被寫入至回收物理抹除單元,因此可復寫式非易失性存儲器模塊106中有效的舊數據與來自主機系統1000的新數據不會被寫入至相同的物理抹除單元。此外,閑置物理抹除單元也會隨著垃圾收集程序的執行而持續地被釋放,因此即使可復寫式非易失性存儲器模塊106被使用了非常長的一段時間,存儲器管理電路202對于可復寫式非易失性存儲器模塊106的寫入速度都不會因新舊數據在同一個物理抹除單元中交叉存儲及/或閑置物理抹除單元不夠而下降。
在一范例實施例中,反應于存儲器管理電路202將第一物理抹除單元中的有效數據寫入至回收物理抹除單元,存儲器管理電路202還會記錄有效數據被寫入至回收物理抹除單元的一搬移信息,但是存儲器管理電路202暫時不根據有效數據被寫入至回收物理抹除單元而對應地更新邏輯地址-物理抹除單元映射表。原因在于,在存儲器管理電路202將有效數據寫入至回收物理抹除單元的期間,有可能與被搬移的有效數據屬于相同的邏輯程序化單元的數據同時被寫入至接收物理抹除單元。當此情形發生時,原先被視為有效數據并且被搬移至回收物理抹除單元的數據會變成無效數據,因此若此數據的邏輯地址與回收物理抹除單元的一映射關系已經被更新至邏輯地址-物理抹除單元映射表中,則此映射關系也會隨即失效。
在此范例實施例中,假設在存儲器管理電路202將有效數據搬移至回收物理抹除單元的期間或者任意時間點,存儲器管理電路202接收一第二寫入指令。此第二寫入指令指示將第二數據寫入至邏輯地址410(0)~410(D)中的至少一第二邏輯地址。存儲器管理電路202會將第二數據寫入至接收物理抹除 單元。存儲器管理電路202會判斷被寫入至回收物理抹除單元的任一有效數據所屬的邏輯程序化單元(也稱為第一邏輯程序化單元)與第二數據所屬的邏輯程序化單元(也稱為第二邏輯程序化單元)是否相同。僅當第一邏輯程序化單元與第二邏輯程序化單元不相同時,存儲器管理電路202才會根據搬移信息更新邏輯地址-物理抹除單元映射表。反之,當第一邏輯程序化單元與第二邏輯程序化單元相同時,存儲器管理電路202則會被寫入至回收物理抹除單元的有效數據標記為無效數據。
圖6是本發明的一范例實施例的管理可復寫式非易失性存儲器模塊的范例示意圖。
請參照圖6,假設當前是物理抹除單元304(0)被作為接收物理抹除單元,并且物理抹除單元304(1)被作為回收物理抹除單元,則當存儲器管理電路202接收到指示將數據601寫入至屬于邏輯程序化單元610(0)的邏輯地址的一寫入指令時,存儲器管理電路202會將數據601寫入至邏輯程序化單元610(0),將邏輯程序化單元610(0)映射至物理抹除單元304(0),并且將數據601寫入至物理抹除單元304(0)。假設存儲器管理電路202選擇物理抹除單元304(2)與物理抹除單元304(3)是第一物理抹除單元,則在特定時間點,存儲器管理電路202會對物理抹除單元304(2)與物理抹除單元304(3)執行垃圾收集程序,以將物理抹除單元304(2)與物理抹除單元304(3)中的有效數據(即,數據602與數據603)寫入至物理抹除單元304(1),并且記錄數據602與數據603被寫入至物理抹除單元304(1)的搬移信息。在數據602與數據603被寫入至物理抹除單元304(1)之后,存儲器管理電路202會判斷數據601所屬的邏輯程序化單元610(0)是否與數據602與數據603的任一者所屬的邏輯程序化單元相同。若數據601所屬的邏輯程序化單元610(0)與數據602與數據603的任一者所屬的邏輯程序化單元皆不同,例如數據602所屬的邏輯程序化單元是邏輯程序化單元610(1),并且數據603所屬的邏輯程序化單元是邏輯程序化單元610(2),則存儲器管理電路202會根據先前記錄的數據602與數據603的搬移信息,將數據602所屬的邏輯程序化單元610(1)與物理抹除單元304(1)之間的映射關系以及數據603所屬的邏輯程序化單元610(2)與物理抹除單元304(1)之間的映射關系更新至邏輯地址-物理抹除單元映射表中。反之,若數據601所屬的邏輯程序化單元610(0)與數據602與數據603的任一者所屬的 邏輯程序化單元相同,例如數據602所屬的邏輯程序化單元也是邏輯程序化單元610(0),則存儲器管理電路202會直接將數據602標記為無效,而僅將數據603所屬的邏輯程序化單元與物理抹除單元304(1)之間的映射關系更新至邏輯地址-物理抹除單元映射表,從而提升邏輯地址-物理抹除單元映射表的更新效率。
此外,在圖6的另一范例實施例中,存儲器管理電路202則是會在數據602與數據603被寫入至物理抹除單元304(1)之前或者期間,就預先判斷數據601所屬的邏輯程序化單元610(0)是否與數據602或數據603所屬的邏輯程序化單元相同。若數據601所屬的邏輯程序化單元610(0)與數據602以及數據603的任一者所屬的邏輯程序化單元相同,則存儲器管理電路202就會停止數據602及/或數據603被寫入或搬移至物理抹除單元304(1)的操作。例如,假設在接收到將數據601寫入至邏輯程序化單元610(0)的寫入指令時,存儲器管理電路202得知對于物理抹除單元304(2)與物理抹除單元304(3)的垃圾回收程序即將被執行,此時存儲器管理電路202會判斷數據601所屬的邏輯程序化單元610(0)是否與數據602或數據603所屬的邏輯程序化單元相同。例如,假設數據602所屬的邏輯程序化單元也是邏輯程序化單元610(0),則存儲器管理電路202會直接將數據602從有效數據標記為無效數據,并且停止對于數據602的復制以及寫入,從而減少物理抹除單元304(1)被寫入無效數據的機率。反之,若數據601所屬的邏輯程序化單元610(0)與數據602以及數據603的任一者所屬的邏輯程序化單元皆不同,則存儲器管理電路202不會停止數據602與數據603的復制以及寫入。
圖7是本發明的一范例實施例的存儲器管理方法的流程圖。
請參照圖7,在步驟S702中,配置多個邏輯地址,其中邏輯地址組成多個邏輯程序化單元,并且邏輯程序化單元組成多個邏輯抹除單元。
在步驟S704中,接收第一寫入指令,其中第一寫入指令指示將第一數據寫入至所述邏輯地址中的至少一第一邏輯地址。
在步驟S706中,寫入第一數據至從至少一閑置物理抹除單元中提取的第一閑置物理抹除單元。
在步驟S708中,從多個物理抹除單元中選取第一物理抹除單元,其中第一物理抹除單元不包含第一閑置物理抹除單元且存儲有復數筆數據,且所述 數據中的至少二者屬于不同的邏輯抹除單元。
在步驟S710中,復制并寫入所述數據中的至少一有效數據至從所述閑置物理抹除單元中提取的第二閑置物理抹除單元,其中第二閑置物理抹除單元不同于第一閑置物理抹除單元。
在步驟S712中,抹除第一物理抹除單元。
然而,圖7中各步驟已詳細說明如上,在此便不在贅述。值得注意的是,圖7中各步驟可以實作為多個程序碼或是電路,且圖7中各步驟的執行順序可以視實務上的需求調整,本發明并不在此限。圖7的方法可以搭配以上實施例使用,也可以單獨使用,本發明并不在此限。
此外,存儲器管理電路202對于可復寫式非易失性存儲器模塊106的“提取”、“寫入”、“搬移”、“讀取”、“垃圾回收”及“抹除”等操作所對應的控制指令,例如是實作為各種指令序列(command sequence),且每一個指令序列可包括一或多個指令(例如,指令碼)。以存儲器管理電路202對于可復寫式非易失性存儲器模塊106的“提取操作”為例,存儲器管理電路202可以發送一指令序列,其中此指令序列用以指示從存儲區402的物理抹除單元中提取一或多個物理抹除單元。其余的操作指令以此類推。可復寫式非易失性存儲器模塊106可以根據存儲器管理電路202所下達的指令序列執行相對應的操作。
綜上所述,本發明的存儲器管理方法、存儲器存儲裝置及存儲器控制電路單元,可通過將來自主機系統的數據寫入至接收物理抹除單元,并且將從可復寫式非易失性存儲器模塊中的部分物理抹除單元收集的有效數據寫入至回收物理抹除單元,使得新數據與可復寫式非易失性存儲器模塊中的有效舊數據不會存儲在相同的物理抹除單元,進而有效減少可復寫式非易失性存儲器模塊因長時間使用而導致數據寫入效率降低的情形。特別是,可以有效減少因新舊數據混雜存儲而導致數據在順序寫入(sequential write)時的寫入效率降低的情形。
最后應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。

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

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


收起
展開
山东11选5中奖结果走势图