TWI533308B - 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents
記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 Download PDFInfo
- Publication number
- TWI533308B TWI533308B TW103110716A TW103110716A TWI533308B TW I533308 B TWI533308 B TW I533308B TW 103110716 A TW103110716 A TW 103110716A TW 103110716 A TW103110716 A TW 103110716A TW I533308 B TWI533308 B TW I533308B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- data
- idle
- logical
- erasing unit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Computer Security & Cryptography (AREA)
- Memory System (AREA)
Description
本發明是有關於一種記憶體管理機制,且特別是有關於一種可複寫式非揮發性記憶體模組的記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,在可複寫式非揮發性記憶體模組被使用一段時間之後,可複寫式非揮發性記憶體模組會自動地執行一垃圾收集程序,以釋放出多餘的記憶體空間。然而,垃圾收集程序可能會使經整理出的有效的舊資料與新寫入的資料混淆,從而降低可複寫式非揮發性記憶體模組往後執行循序寫入(sequential write)時的資料寫入效率。
本發明提供一種記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元,可有效減少可複寫式非揮發性記憶體模組因長時間使用而導致資料寫入效率降低之情形。
本發明提供一種記憶體管理方法,記憶體管理方法用於可複寫式非揮發性記憶體模組,並且可複寫式非揮發性記憶體模組包括多個實體抹除單元。記憶體管理方法包括:配置多個邏輯位址,其中所述邏輯位址組成多個邏輯程式化單元,所述邏輯程式化單元組成多個邏輯抹除單元,並且所述實體抹除單元包括至少一閒置實體抹除單元;接收第一寫入指令,其中第一寫入指令指示將第一資料寫入至所述邏輯位址中的至少一第一邏輯位址,並寫入第一資料至從所述閒置實體抹除單元中提取之第一閒置實體抹除單元;從所述實體抹除單元中選取第一實體抹除單元,其中第一實體抹除單元不包含第一閒置實體抹除單元且儲存有複數筆資料,且所述資料中之至少二者屬於不同的邏輯抹除單元;複製並寫入所述資料中之至少一有效資料至從所述閒置實體抹除單元中提取之第二閒置實體抹除單元,其中第二閒置實體抹除單元不同於第一閒置實體抹除單元;以及抹除第一實體抹除單元。
在本發明的一範例實施例中,所述的記憶體管理方法更包括:於寫入第一資料的期間,判斷第一閒置實體抹除單元是否已被寫滿;當第一閒置實體抹除單元已被寫滿時,從所述閒置實
體抹除單元中提取第三閒置實體抹除單元以寫入第一資料;於寫入所述有效資料的期間,判斷第二閒置實體抹除單元是否已被寫滿;以及當第二閒置實體抹除單元已被寫滿時,從所述閒置實體抹除單元中提取第四閒置實體抹除單元以寫入所述有效資料,其中第三閒置實體抹除單元不同於第四閒置實體抹除單元。
在本發明的一範例實施例中,當所述閒置實體抹除單元之數量達到一數量門檻值時,執行複製並寫入所述有效資料至第二閒置實體抹除單元的步驟。
在本發明的一範例實施例中,所述的第一實體抹除單元是所述實體抹除單元中儲存最少有效資料的實體抹除單元。
在本發明的一範例實施例中,所述的第一實體抹除單元是所述實體抹除單元中儲存有寫入時間最早的有效資料之實體抹除單元。
在本發明的一範例實施例中,所述的記憶體管理方法更包括:接收第二寫入指令,其中第二寫入指令指示將第二資料寫入至所述邏輯位址中的至少一第二邏輯位址;判斷被寫入至第二閒置實體抹除單元的所述有效資料的任一者所屬的邏輯程式化單元與第二資料所屬的邏輯程式化單元是否相同;當有效資料的任一者所屬邏輯程式化單元與第二資料所屬的邏輯程式化單元不相同時,根據有效資料與第二閒置實體抹除單元的對應關係更新一邏輯位址-實體抹除單元映射表;以及當有效資料的任一者所屬的邏輯程式化單元與第二資料所屬的邏輯程式化單元相同時,將有
效資料標記為無效資料。
本發明另提出一種記憶體儲存裝置,所述記憶體儲存裝置包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個實體抹除單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組。記憶體控制電路單元用以配置多個邏輯位址,其中所述邏輯位址組成多個邏輯程式化單元,所述邏輯程式化單元組成多個邏輯抹除單元,並且所述實體抹除單元包括至少一閒置實體抹除單元。記憶體控制電路單元更用以接收第一寫入指令,其中第一寫入指令指示將第一資料寫入至所述邏輯位址中的至少一第一邏輯位址,並寫入第一資料至從所述閒置實體抹除單元中提取之第一閒置實體抹除單元。記憶體控制電路單元更用以從所述實體抹除單元中選取第一實體抹除單元,其中第一實體抹除單元不包含第一閒置實體抹除單元且儲存有複數筆資料,且所述資料中之至少二者屬於不同的邏輯抹除單元。記憶體控制電路單元更用以複製並寫入所述資料中之至少一有效資料至從所述閒置實體抹除單元中提取之第二閒置實體抹除單元,其中第二閒置實體抹除單元不同於第一閒置實體抹除單元。記憶體控制電路單元更用以抹除第一實體抹除單元。
在本發明的一範例實施例中,所述的記憶體控制電路單元更用以於寫入第一資料的期間,判斷第一閒置實體抹除單元是否已被寫滿。當第一閒置實體抹除單元已被寫滿時,記憶體控制
電路單元更用以從所述閒置實體抹除單元中提取第三閒置實體抹除單元以寫入第一資料。記憶體控制電路單元更用以於寫入所述有效資料的期間,判斷第二閒置實體抹除單元是否已被寫滿。當第二閒置實體抹除單元已被寫滿時,記憶體控制電路單元更用以從所述閒置實體抹除單元中提取第四閒置實體抹除單元以寫入所述有效資料。第三閒置實體抹除單元不同於第四閒置實體抹除單元。
在本發明的一範例實施例中,其中當所述閒置實體抹除單元之數量達到數量門檻值時,記憶體控制電路單元複製並寫入所述有效資料至所述第二閒置實體抹除單元。
在本發明的一範例實施例中,所述的第一實體抹除單元是所述實體抹除單元中儲存最少有效資料的實體抹除單元。
在本發明的一範例實施例中,所述的第一實體抹除單元是所述實體抹除單元中儲存有寫入時間最早的有效資料之實體抹除單元。
在本發明的一範例實施例中,所述的記憶體控制電路單元更用以接收第二寫入指令,其中第二寫入指令指示將第二資料寫入至所述邏輯位址中的至少一第二邏輯位址。記憶體控制電路單元更用以判斷被寫入至第二閒置實體抹除單元的所述有效資料的任一者所屬的邏輯程式化單元與第二資料所屬的邏輯程式化單元是否相同。當有效資料的任一者所屬邏輯程式化單元與第二資料所屬的邏輯程式化單元不相同時,記憶體控制電路單元更用以
根據有效資料與第二閒置實體抹除單元的對應關係更新邏輯位址-實體抹除單元映射表。當有效資料的任一者所屬的邏輯程式化單元與第二資料所屬的邏輯程式化單元相同時,記憶體控制電路單元更用以將有效資料標記為無效資料。
本發明還提出一種記憶體控制電路單元,所述記憶體控制電路單元用於控制可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組包括多個實體抹除單元。所述記憶體控制電路單元包括主機介面、記憶體介面及記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面。記憶體管理電路用以配置配置多個邏輯位址,其中所述邏輯位址組成多個邏輯程式化單元,所述邏輯程式化單元組成多個邏輯抹除單元,並且所述實體抹除單元包括至少一閒置實體抹除單元。記憶體管理電路更用以接收第一寫入指令,其中第一寫入指令指示將第一資料寫入至所述邏輯位址中的至少一第一邏輯位址,並發送第一指令序列,其中第一指令序列指示寫入第一資料至從所述閒置實體抹除單元中提取之第一閒置實體抹除單元。記憶體管理電路更用以從所述實體抹除單元中選取第一實體抹除單元,其中第一實體抹除單元不包含第一閒置實體抹除單元且儲存有複數筆資料,且所述資料中之至少二者屬於不同的邏輯抹除單元。記憶體管理電路更用以發送第二指令序列,其中第二指令序列指示複製並寫入所述資料中之至少一有效資料至從所述閒置實體抹除
單元中提取之第二閒置實體抹除單元,並且第二閒置實體抹除單元不同於第一閒置實體抹除單元。記憶體管理電路更用以發送第三指令序列,其中第三指令序列指示抹除第一實體抹除單元。
在本發明的一範例實施例中,所述的記憶體管理電路更用以於寫入第一資料的期間,判斷第一閒置實體抹除單元是否已被寫滿。當第一閒置實體抹除單元已被寫滿時,記憶體管理電路更用以發送第四指令序列,其中第四指令序列指示從所述閒置實體抹除單元中提取第三閒置實體抹除單元以寫入第一資料。記憶體管理電路更用以於寫入所述有效資料的期間,判斷第二閒置實體抹除單元是否已被寫滿。當第二閒置實體抹除單元已被寫滿時,記憶體管理電路更用以發送第五指令序列,其中第五指令序列指示從所述閒置實體抹除單元中提取一第四閒置實體抹除單元以寫入所述有效資料。其中第三閒置實體抹除單元不同於第四閒置實體抹除單元。
在本發明的一範例實施例中,當所述閒置實體抹除單元之數量達到數量門檻值時,記憶體管理電路發送第二指令序列。
在本發明的一範例實施例中,所述的第一實體抹除單元是所述實體抹除單元中儲存最少有效資料的實體抹除單元。
在本發明的一範例實施例中,所述的第一實體抹除單元是所述實體抹除單元中儲存有寫入時間最早的有效資料之實體抹除單元。
在本發明的一範例實施例中,所述的記憶體管理電路更
用以接收第二寫入指令,其中第二寫入指令指示將第二資料寫入至所述邏輯位址中的至少一第二邏輯位址。記憶體管理電路更用以判斷被寫入至第二閒置實體抹除單元的所述有效資料的任一者所屬的邏輯程式化單元與第二資料所屬的邏輯程式化單元是否相同。當有效資料的任一者所屬邏輯程式化單元與第二資料所屬的邏輯程式化單元不相同時,記憶體管理電路更用以根據有效資料與第二閒置實體抹除單元的對應關係更新一邏輯位址-實體抹除單元映射表。當有效資料的任一者所屬的邏輯程式化單元與第二資料所屬的邏輯程式化單元相同時,記憶體管理電路更用以將有效資料標記為無效資料。
基於上述,本發明透過將來自主機系統的資料寫入至接收實體抹除單元,並且將從可複寫式非揮發性記憶體模組中的部份實體抹除單元收集的有效資料寫入至回收實體抹除單元,使得可複寫式非揮發性記憶體模組中的有效舊資料與新資料不會儲存在相同的實體抹除單元,進而有效減少可複寫式非揮發性記憶體模組因長時間使用而導致資料寫入效率降低之情形。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
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是根據本發明之一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明之一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
圖4是根據本發明之一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖5A與圖5B是根據本發明之一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖6是根據本發明之一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的範例示意圖。
圖7是根據本發明之一範例實施例所繪示之記憶體管理方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖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。必須瞭解的是,圖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會為對應此寫入指令的資料產生對應的錯誤更正碼(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)時之寫入效率降低之情形。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S702、S704、S706、S708、S710、S712‧‧‧記憶體管理方法各步驟
Claims (18)
- 一種記憶體管理方法,用於一可複寫式非揮發性記憶體模組,該可複寫式非揮發性記憶體模組包括多個實體抹除單元,並且該記憶體管理方法包括:配置多個邏輯位址,其中該些邏輯位址組成多個邏輯程式化單元,該些邏輯程式化單元組成多個邏輯抹除單元,並且該些實體抹除單元包括至少一閒置實體抹除單元;接收一第一寫入指令,其中該第一寫入指令指示將一第一資料寫入至該些邏輯位址中的至少一第一邏輯位址,並寫入該第一資料至從該至少一閒置實體抹除單元中提取之一第一閒置實體抹除單元;從該些實體抹除單元中選取一第一實體抹除單元,其中該第一實體抹除單元不包含該第一閒置實體抹除單元且儲存有複數筆資料,且該些資料中之至少二者屬於不同的邏輯抹除單元;複製並寫入該些資料中之至少一有效資料至從該至少一閒置實體抹除單元中提取之一第二閒置實體抹除單元,其中該第二閒置實體抹除單元不同於該第一閒置實體抹除單元;抹除該第一實體抹除單元;接收一第二寫入指令,其中該第二寫入指令指示將一第二資料寫入至該些邏輯位址中的至少一第二邏輯位址;判斷被寫入至該第二閒置實體抹除單元的該至少一有效資料的任一者所屬的邏輯程式化單元與該第二資料所屬的邏輯程式化 單元是否相同;以及當該至少一有效資料的該任一者所屬的邏輯程式化單元與該第二資料所屬的邏輯程式化單元相同時,將所屬的邏輯程式化單元與該第二資料所屬的邏輯程式化單元相同的有效資料標記為無效資料。
- 如申請專利範圍第1項所述的記憶體管理方法,更包括:於寫入該第一資料的期間,判斷該第一閒置實體抹除單元是否已被寫滿;當該第一閒置實體抹除單元已被寫滿時,從該些閒置實體抹除單元中提取一第三閒置實體抹除單元以寫入該第一資料;於寫入該至少一有效資料的期間,判斷該第二閒置實體抹除單元是否已被寫滿;以及當該第二閒置實體抹除單元已被寫滿時,從該些閒置實體抹除單元中提取一第四閒置實體抹除單元以寫入該至少一有效資料;其中該第三閒置實體抹除單元不同於該第四閒置實體抹除單元。
- 如申請專利範圍第1項所述的記憶體管理方法,其中當該至少一閒置實體抹除單元之數量達到一數量門檻值時,執行複製並寫入該至少一有效資料至該第二閒置實體抹除單元的步驟。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第一實體抹除單元是該些實體抹除單元中儲存最少有效資料的實體 抹除單元。
- 如申請專利範圍第1項所述的記憶體管理方法,其中該第一實體抹除單元是該些實體抹除單元中儲存有寫入時間最早的有效資料之實體抹除單元。
- 如申請專利範圍第1項所述的記憶體管理方法,更包括:當該至少一有效資料的該任一者所屬的邏輯程式化單元與該第二資料所屬的邏輯程式化單元不相同時,根據該至少一有效資料與該第二閒置實體抹除單元的對應關係更新一邏輯位址-實體抹除單元映射表。
- 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體抹除單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以配置多個邏輯位址,其中該些邏輯位址組成多個邏輯程式化單元,該些邏輯程式化單元組成多個邏輯抹除單元,並且該些實體抹除單元包括至少一閒置實體抹除單元,該記憶體控制電路單元更用以接收一第一寫入指令,其中該第一寫入指令指示將一第一資料寫入至該些邏輯位址中的至少一第一邏輯位址,並寫入該第一資料至從該至少一閒置實體抹除單 元中提取之一第一閒置實體抹除單元,該記憶體控制電路單元更用以從該些實體抹除單元中選取一第一實體抹除單元,其中該第一實體抹除單元不包含該第一閒置實體抹除單元且儲存有複數筆資料,且該些資料中之至少二者屬於不同的邏輯抹除單元,該記憶體控制電路單元更用以複製並寫入該些資料中之至少一有效資料至從該至少一閒置實體抹除單元中提取之一第二閒置實體抹除單元,其中該第二閒置實體抹除單元不同於該第一閒置實體抹除單元,該記憶體控制電路單元更用以抹除該第一實體抹除單元,該記憶體控制電路單元更用以接收一第二寫入指令,其中該第二寫入指令指示將一第二資料寫入至該些邏輯位址中的至少一第二邏輯位址,該記憶體控制電路單元更用以判斷被寫入至該第二閒置實體抹除單元的該至少一有效資料的任一者所屬的邏輯程式化單元與該第二資料所屬的邏輯程式化單元是否相同,當該至少一有效資料的該任一者所屬的邏輯程式化單元與該第二資料所屬的邏輯程式化單元相同時,該記憶體控制電路單元更用以將所屬的邏輯程式化單元與該第二資料所屬的邏輯程式化單元相同的有效資料標記為無效資料。
- 如申請專利範圍第7項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以於寫入該第一資料的期間,判斷該第一 閒置實體抹除單元是否已被寫滿,當該第一閒置實體抹除單元已被寫滿時,該記憶體控制電路單元更用以從該些閒置實體抹除單元中提取一第三閒置實體抹除單元以寫入該第一資料,該記憶體控制電路單元更用以於寫入該至少一有效資料的期間,判斷該第二閒置實體抹除單元是否已被寫滿,當該第二閒置實體抹除單元已被寫滿時,該記憶體控制電路單元更用以從該些閒置實體抹除單元中提取一第四閒置實體抹除單元以寫入該至少一有效資料,其中該第三閒置實體抹除單元不同於該第四閒置實體抹除單元。
- 如申請專利範圍第7項所述的記憶體儲存裝置,其中當該至少一閒置實體抹除單元之數量達到一數量門檻值時,該記憶體控制電路單元執行複製並寫入該至少一有效資料至該第二閒置實體抹除單元的操作。
- 如申請專利範圍第7項所述的記憶體儲存裝置,其中該第一實體抹除單元是該些實體抹除單元中儲存最少有效資料的實體抹除單元。
- 如申請專利範圍第7項所述的記憶體儲存裝置,其中該第一實體抹除單元是該些實體抹除單元中儲存有寫入時間最早的有效資料之實體抹除單元。
- 如申請專利範圍第7項所述的記憶體儲存裝置,其中當 該至少一有效資料的該任一者所屬的邏輯程式化單元與該第二資料所屬的邏輯程式化單元不相同時,該記憶體控制電路單元更用以根據該至少一有效資料與該第二閒置實體抹除單元的對應關係更新一邏輯位址-實體抹除單元映射表。
- 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以配置配置多個邏輯位址,其中該些邏輯位址組成多個邏輯程式化單元,該些邏輯程式化單元組成多個邏輯抹除單元,並且該些實體抹除單元包括至少一閒置實體抹除單元,該記憶體管理電路更用以接收一第一寫入指令,其中該第一寫入指令指示將一第一資料寫入至該些邏輯位址中的至少一第一邏輯位址,並發送一第一指令序列,其中該第一指令序列指示寫入該第一資料至從該至少一閒置實體抹除單元中提取之一第一閒置實體抹除單元,該記憶體管理電路更用以從該些實體抹除單元中選取一第一實體抹除單元,該第一實體抹除單元不包含該第一閒置實體抹除 單元且儲存有複數筆資料,且該些資料中之至少二者屬於不同的邏輯抹除單元,該記憶體管理電路更用以發送一第二指令序列,其中該第二指令序列指示複製並寫入該些資料中之至少一有效資料至從該至少一閒置實體抹除單元中提取之一第二閒置實體抹除單元,並且該第二閒置實體抹除單元不同於該第一閒置實體抹除單元,該記憶體管理電路更用以發送一第三指令序列,其中該第三指令序列指示抹除該第一實體抹除單元,該記憶體管理電路更用以接收一第二寫入指令,其中該第二寫入指令指示將一第二資料寫入至該些邏輯位址中的至少一第二邏輯位址,該記憶體管理電路更用以判斷被寫入至該第二閒置實體抹除單元的該至少一有效資料的任一者所屬的邏輯程式化單元與該第二資料所屬的邏輯程式化單元是否相同,當該至少一有效資料的該任一者所屬的邏輯程式化單元與該第二資料所屬的邏輯程式化單元相同時,該記憶體管理電路更用以將所屬的邏輯程式化單元與該第二資料所屬的邏輯程式化單元相同的有效資料標記為無效資料。
- 如申請專利範圍第13項所述的記憶體控制電路單元,其中該記憶體管理電路更用以於寫入該第一資料的期間,判斷該第一閒置實體抹除單元是否已被寫滿,當該第一閒置實體抹除單元已被寫滿時,該記憶體管理電路 更用以發送一第四指令序列,其中該第四指令序列指示從該些閒置實體抹除單元中提取一第三閒置實體抹除單元以寫入該第一資料,該記憶體管理電路更用以於寫入該至少一有效資料的期間,判斷該第二閒置實體抹除單元是否已被寫滿,當該第二閒置實體抹除單元已被寫滿時,該記憶體管理電路更用以發送一第五指令序列,其中該第五指令序列指示從該些閒置實體抹除單元中提取一第四閒置實體抹除單元以寫入該至少一有效資料,其中該第三閒置實體抹除單元不同於該第四閒置實體抹除單元。
- 如申請專利範圍第13項所述的記憶體控制電路單元,其中當該至少一閒置實體抹除單元之數量達到一數量門檻值時,該記憶體管理電路發送該第二指令序列。
- 如申請專利範圍第13項所述的記憶體控制電路單元,其中該第一實體抹除單元是該些實體抹除單元中儲存最少有效資料的實體抹除單元。
- 如申請專利範圍第13項所述的記憶體控制電路單元,其中該第一實體抹除單元是該些實體抹除單元中儲存有寫入時間最早的有效資料之實體抹除單元。
- 如申請專利範圍第13項所述的記憶體控制電路單元,其中當該至少一有效資料的該任一者所屬的邏輯程式化單元與該第 二資料所屬的邏輯程式化單元不相同時,該記憶體管理電路更用以根據該至少一有效資料與該第二閒置實體抹除單元的對應關係更新一邏輯位址-實體抹除單元映射表。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103110716A TWI533308B (zh) | 2014-03-21 | 2014-03-21 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
US14/280,673 US20150268879A1 (en) | 2014-03-21 | 2014-05-19 | Memory management method, memory storage device and memory control circuit unit |
US15/973,548 US20180260317A1 (en) | 2014-03-21 | 2018-05-08 | Method for managing the copying and storing of data in garbage collection, memory storage device and memory control circuit unit using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103110716A TWI533308B (zh) | 2014-03-21 | 2014-03-21 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201537576A TW201537576A (zh) | 2015-10-01 |
TWI533308B true TWI533308B (zh) | 2016-05-11 |
Family
ID=54142146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103110716A TWI533308B (zh) | 2014-03-21 | 2014-03-21 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Country Status (2)
Country | Link |
---|---|
US (2) | US20150268879A1 (zh) |
TW (1) | TWI533308B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI615713B (zh) * | 2017-05-19 | 2018-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8775717B2 (en) | 2007-12-27 | 2014-07-08 | Sandisk Enterprise Ip Llc | Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10162748B2 (en) * | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
TWI592800B (zh) | 2016-10-04 | 2017-07-21 | 大心電子(英屬維京群島)股份有限公司 | 記憶體管理方法及使用所述方法的儲存控制器 |
TWI732192B (zh) * | 2019-03-20 | 2021-07-01 | 點序科技股份有限公司 | 記憶體管理方法及記憶體儲存裝置 |
CN111400201B (zh) * | 2020-03-19 | 2022-08-16 | 合肥兆芯电子有限公司 | 快闪存储器的数据整理方法、存储装置及控制电路单元 |
US11392327B2 (en) | 2020-09-09 | 2022-07-19 | Western Digital Technologies, Inc. | Local data compaction for integrated memory assembly |
US11650932B2 (en) | 2020-10-25 | 2023-05-16 | Western Digital Technologies, Inc. | Integrated non-volatile memory assembly with address translation |
US11809327B2 (en) | 2021-11-16 | 2023-11-07 | Western Digital Technologies, Inc. | Data auto-relocation in an integrated memory assembly |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100664933B1 (ko) * | 2004-12-15 | 2007-01-04 | 삼성전자주식회사 | 비휘발성 저장장치에 멀티미디어 데이터를 블록 단위로저장하는 방법 및 장치 |
KR101028929B1 (ko) * | 2008-12-31 | 2011-04-12 | 성균관대학교산학협력단 | 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치 |
KR101143397B1 (ko) * | 2009-07-29 | 2012-05-23 | 에스케이하이닉스 주식회사 | 페이지 복사 발생 빈도를 줄이는 반도체 스토리지 시스템 및 그 제어 방법 |
-
2014
- 2014-03-21 TW TW103110716A patent/TWI533308B/zh active
- 2014-05-19 US US14/280,673 patent/US20150268879A1/en not_active Abandoned
-
2018
- 2018-05-08 US US15/973,548 patent/US20180260317A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI615713B (zh) * | 2017-05-19 | 2018-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW201537576A (zh) | 2015-10-01 |
US20180260317A1 (en) | 2018-09-13 |
US20150268879A1 (en) | 2015-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI533308B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI480733B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI537728B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI585770B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI501243B (zh) | 資料寫入方法、記憶體儲存裝置、記憶體控制電路單元 | |
TWI476590B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
TWI696073B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201401050A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI536166B (zh) | 記憶體管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI517165B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI702496B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201407614A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
US11334273B1 (en) | Valid data merging method, memory storage device and memory control circuit unit | |
TWI533309B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TW201526006A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201413450A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI688956B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |