TWI897781B - 記憶體管理方法、記憶體儲存裝置與記憶體控制電路單元 - Google Patents
記憶體管理方法、記憶體儲存裝置與記憶體控制電路單元Info
- Publication number
- TWI897781B TWI897781B TW113150704A TW113150704A TWI897781B TW I897781 B TWI897781 B TW I897781B TW 113150704 A TW113150704 A TW 113150704A TW 113150704 A TW113150704 A TW 113150704A TW I897781 B TWI897781 B TW I897781B
- Authority
- TW
- Taiwan
- Prior art keywords
- physical units
- physical
- random read
- unit
- memory
- Prior art date
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提出一種記憶體管理方法、記憶體儲存裝置以及記憶體控制電路單元。記憶體管理方法包括:紀錄多個第一實體單元中每一者的隨機讀取計數,其中每個第一實體單元儲存有效資料;啟動資料整併程序;根據隨機讀取計數從第一實體單元中挑選多個來源實體單元;將來源實體單元中的有效資料搬移至目標實體單元。
Description
本揭露是有關於一種記憶體管理方法,且特別是有關於可複寫式非揮發性記憶體模組的資料整併的方法、記憶體儲存裝置以及記憶體控制電路單元。
行動電話與筆記型電腦等可攜式電子裝置在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式電子裝置中。
在可複寫式非揮發性記憶體模組的操作過程中,讀取行為通常分為隨機讀取(Random Read)與順序讀取(Sequential Read)。隨機讀取用於非連續性存取需求,順序讀取則適合大規模且連續性資料的存取。兩種讀取模式的效能表現直接影響整體系統性能。
可複寫式非揮發性記憶體模組的另一項核心機制為垃圾收集(Garbage Collection,GC),其目的在於將有效資料集中至某一個區塊,釋放出更多區塊的儲存容量。然而,垃圾收集操作需要執行資料搬移與區塊抹除,這些額外的成本可能與正常讀取操作發生衝突。當垃圾收集與隨機讀取重疊執行時,讀取延遲將大幅增加,導致用戶體驗下降。
本揭露提出一種記憶體管理方法、記憶體儲存裝置以及記憶體控制電路單元,可以降低讀取延遲。
本揭露提出一種記憶體管理方法,用於可複寫式非揮發性記憶體模組,此可複寫式非揮發性記憶體模組包括多個實體單元。記憶體管理方法包括:紀錄多個第一實體單元中每一者的隨機讀取計數,其中每個第一實體單元儲存有效資料;啟動資料整併程序;根據隨機讀取計數從第一實體單元中挑選多個來源實體單元;將來源實體單元中的有效資料搬移至目標實體單元。來源實體單元中的一記憶胞用以儲存P個位元,目標實體單元中的一記憶胞用以儲存Q個位元,P、Q為正整數,且Q大於P。
在本揭露的一實施例中,來源實體單元的隨機讀取計數小於第一實體單元中沒有被挑選的實體單元的隨機讀取計數。
在本揭露的一實施例中,根據隨機讀取計數挑選來源實體單元的步驟包括:對於每個第一實體單元,根據對應的隨機讀取計數以及有效資料的大小設定優先度,其中優先度和隨機讀取計數為負相關,優先度和有效資料的大小為負相關;以及根據優先度從第一實體單元挑選來源實體單元。
在本揭露的一實施例中,上述的記憶體管理方法還包括:根據來源實體單元的隨機讀取計數決定目標實體單元的程式化模式,此程式化模式為第一子程式化模式或第二子程式化模式。在第一子程式化模式,目標實體單元中的記憶胞用以儲存Q
1個位元。在第二子程式化模式,目標實體單元中的記憶胞用以儲存Q
2個位元。其中Q1、Q2為正整數,且Q1小於Q2。
在本揭露的一實施例中,根據來源實體單元的隨機讀取計數決定目標實體單元的程式化模式的步驟包括:若來源實體單元的隨機讀取計數小於一臨界值,設定目標實體單元的程式化模式為第二子程式化模式;若來源實體單元的隨機讀取計數大於等於臨界值,設定目標實體單元的程式化模式為第一子程式化模式。
在本揭露的一實施例中,紀錄每個第一實體單元的隨機讀取計數的步驟包括:接收來自主機系統的多筆讀取指令;以及當連續的兩筆讀取指令讀取不同的第一實體單元時,更新兩筆讀取指令的後者所讀取的第一實體單元的隨機讀取計數。
在本揭露的一實施例中,紀錄每個第一實體單元的隨機讀取計數的步驟包括:對於每個第一實體單元,計算對應的隨機讀取次數除以隨機讀取總次數的比例以作為隨機讀取計數。
以另一個角度來說,本發明的實施例提出一種記憶體儲存裝置,包括:連接介面單元,用以耦接至主機系統;可複寫式非揮發性記憶體模組,包括多個實體單元;以及記憶體控制電路單元,耦接至連接介面單元與可複寫式非揮發性記憶體模組。記憶體控制電路單元用以執行多個步驟:紀錄多個第一實體單元中每一者的隨機讀取計數,其中每個第一實體單元儲存有效資料;啟動資料整併程序;根據隨機讀取計數從第一實體單元中挑選多個來源實體單元;將來源實體單元中的有效資料搬移至目標實體單元。來源實體單元中的一記憶胞用以儲存P個位元,目標實體單元中的一記憶胞用以儲存Q個位元,P、Q為正整數,且Q大於P。
以另一個角度來說,本發明的實施例提出一種記憶體控制電路單元,用以控制可複寫式非揮發性記憶體模組。可複寫式非揮發性記憶體模組包括多個實體單元。記憶體控制電路單元包括:主機介面,用以耦接至主機系統;記憶體介面,用以耦接至可複寫式非揮發性記憶體模組;記憶體管理電路,耦接至主機介面及記憶體介面。記憶體管理電路用以執行多個步驟:紀錄多個第一實體單元中每一者的隨機讀取計數,其中每個第一實體單元儲存有效資料;啟動資料整併程序;根據隨機讀取計數從第一實體單元中挑選多個來源實體單元;將來源實體單元中的有效資料搬移至目標實體單元。來源實體單元中的一記憶胞用以儲存P個位元,目標實體單元中的一記憶胞用以儲存Q個位元,P、Q為正整數,且Q大於P。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
本發明的部份實施例接下來將會配合附圖來詳細描述,以下的描述所引用的元件符號,當不同附圖出現相同的元件符號將視為相同或相似的元件。這些實施例只是本發明的一部份,並未揭示所有本發明的可實施方式。更確切的說,這些實施例只是本發明的專利申請範圍中的系統與方法的範例。
關於本文中所使用之「第一」、「第二」等,並非特別指次序或順位的意思,其僅為了區別以相同技術用語描述的元件或操作。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與控制器(亦稱,控制電路)。記憶體儲存裝置可與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據本發明的範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。圖2是根據本發明的範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。
請參照圖1與圖2,主機系統11可包括處理器111、隨機存取記憶體(random access memory, RAM)112、唯讀記憶體(read only memory, ROM)113及資料傳輸介面114。處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114可耦接至系統匯流排(system bus)110。
在一範例實施例中,主機系統11可透過資料傳輸介面114與記憶體儲存裝置10耦接。例如,主機系統11可經由資料傳輸介面114將資料儲存至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。此外,主機系統11可透過系統匯流排110與I/O裝置12耦接。例如,主機系統11可經由系統匯流排110將輸出訊號傳送至I/O裝置12或從I/O裝置12接收輸入訊號。
在一範例實施例中,處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114可設置在主機系統11的主機板20上。資料傳輸介面114的數目可以是一或多個。透過資料傳輸介面114,主機板20可以經由有線或無線方式耦接至記憶體儲存裝置10。
在一範例實施例中,記憶體儲存裝置10可例如是隨身碟201、記憶卡202、固態硬碟(Solid State Drive, SSD)203或無線記憶體儲存裝置204。無線記憶體儲存裝置204可例如是近距離無線通訊(Near Field Communication, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,主機系統11為電腦系統。在一範例實施例中,主機系統11可為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。在一範例實施例中,記憶體儲存裝置10與主機系統11可分別包括圖3的記憶體儲存裝置30與主機系統31。
圖3是根據本發明的範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,記憶體儲存裝置30可與主機系統31搭配使用以儲存資料。例如,主機系統31可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統。例如,記憶體儲存裝置30可為主機系統31所使用的安全數位(Secure Digital, SD)卡32、小型快閃(Compact Flash, CF)卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded Multi Media Card, eMMC)341及/或嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)儲存裝置342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據本發明的範例實施例所繪示的記憶體儲存裝置的示意圖。請參照圖4,記憶體儲存裝置10包括連接介面單元41、記憶體控制電路單元42及可複寫式非揮發性記憶體模組43。
連接介面單元41用以耦接至主機系統11。記憶體儲存裝置10可經由連接介面單元41與主機系統11通訊。在一範例實施例中,連接介面單元41是相容於高速周邊零件互連(Peripheral Component Interconnect Express, PCI Express)標準。在一範例實施例中,連接介面單元41亦可以是符合序列先進附件(Serial Advanced Technology Attachment, SATA)標準、並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、通用序列匯流排(Universal Serial Bus, USB)標準、SD介面標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、MCP介面標準、MMC介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、eMCP介面標準、CF介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。連接介面單元41可與記憶體控制電路單元42封裝在一個晶片中,或者連接介面單元41是佈設於一包含記憶體控制電路單元42之晶片外。
記憶體控制電路單元42耦接至連接介面單元41與可複寫式非揮發性記憶體模組43。記憶體控制電路單元42用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統11的指令在可複寫式非揮發性記憶體模組43中進行資料的寫入、讀取與抹除等運作。
可複寫式非揮發性記憶體模組43用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組43可包括單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、二階記憶胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、三階記憶胞(Triple Level Cell, TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、四階記憶胞(Quad Level Cell, QLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存4個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
可複寫式非揮發性記憶體模組43中的每一個記憶胞是以電壓(以下亦稱為臨界電壓)的改變來儲存一或多個位元。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,進而改變記憶胞的臨界電壓。此改變記憶胞之臨界電壓的操作亦稱為“把資料寫入至記憶胞”或“程式化(programming)記憶胞”。隨著臨界電壓的改變,可複寫式非揮發性記憶體模組43中的每一個記憶胞具有多個儲存狀態。透過施予讀取電壓可以判斷一個記憶胞是屬於哪一個儲存狀態,藉此取得此記憶胞所儲存的一或多個位元。
在一範例實施例中,可複寫式非揮發性記憶體模組43的記憶胞可構成多個實體程式化單元,並且此些實體程式化單元可構成多個實體抹除單元。具體來說,同一條字元線上的記憶胞可組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元可至少被分類為下實體程式化單元與上實體程式化單元。例如,一記憶胞的最低有效位元(Least Significant Bit, LSB)是屬於下實體程式化單元,並且一記憶胞的最高有效位元(Most Significant Bit, MSB)是屬於上實體程式化單元。一般來說,在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,及/或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。
在一範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元可為實體頁(page)或是實體扇(sector)。若實體程式化單元為實體頁,則此些實體程式化單元可包括資料位元區與冗餘(redundancy)位元區。資料位元區包含多個實體扇,用以儲存使用者資料,而冗餘位元區用以儲存系統資料(例如,錯誤更正碼等管理資料)。在一範例實施例中,資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte, B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,並且每一個實體扇的大小也可以是更大或更小。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊(block)。
圖5是根據本發明的範例實施例所繪示的記憶體控制電路單元的示意圖。請參照圖5,記憶體控制電路單元42包括記憶體管理電路51、主機介面52及記憶體介面53。
記憶體管理電路51用以控制記憶體控制電路單元42的整體運作。具體來說,記憶體管理電路51具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路51的操作時,等同於說明記憶體控制電路單元42及記憶體儲存裝置10的操作。
在一範例實施例中,記憶體管理電路51的控制指令是以韌體型式來實作。例如,記憶體管理電路51具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在一範例實施例中,記憶體管理電路51的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組43的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路51具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當記憶體控制電路單元42被致能時,微處理器單元會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組43中之控制指令載入至記憶體管理電路51的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
在一範例實施例中,記憶體管理電路51的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路51包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。記憶胞管理電路用以管理可複寫式非揮發性記憶體模組43的記憶胞或記憶胞群組。記憶體寫入電路用以對可複寫式非揮發性記憶體模組43下達寫入指令序列以將資料寫入至可複寫式非揮發性記憶體模組43中。記憶體讀取電路用以對可複寫式非揮發性記憶體模組43下達讀取指令序列以從可複寫式非揮發性記憶體模組43中讀取資料。記憶體抹除電路用以對可複寫式非揮發性記憶體模組43下達抹除指令序列以將資料從可複寫式非揮發性記憶體模組43中抹除。資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組43的資料以及從可複寫式非揮發性記憶體模組43中讀取的資料。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示可複寫式非揮發性記憶體模組43執行相對應的寫入、讀取及抹除等操作。在一範例實施例中,記憶體管理電路51還可以下達其他類型的指令序列給可複寫式非揮發性記憶體模組43以指示執行相對應的操作。
主機介面52是耦接至記憶體管理電路51。記憶體管理電路51可透過主機介面52與主機系統11通訊。主機介面52可用以取得與識別主機系統11所傳送的指令與資料。例如,主機系統11所傳送的指令與資料可透過主機介面52來傳送至記憶體管理電路51。此外,記憶體管理電路51可透過主機介面52將資料傳送至主機系統11。在本範例實施例中,主機介面52是相容於PCI Express標準。然而,必須瞭解的是本發明不限於此,主機介面52亦可以是相容於SATA標準、PATA標準、IEEE 1394標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面53是耦接至記憶體管理電路51並且用以存取可複寫式非揮發性記憶體模組43。例如,記憶體管理電路51可透過記憶體介面53存取可複寫式非揮發性記憶體模組43。也就是說,欲寫入至可複寫式非揮發性記憶體模組43的資料會經由記憶體介面53轉換為可複寫式非揮發性記憶體模組43所能接受的格式。具體來說,若記憶體管理電路51要存取可複寫式非揮發性記憶體模組43,記憶體介面53會傳送對應的指令序列。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓準位或執行垃圾回收(Garbage Collection, GC)操作等等)的相對應的指令序列。這些指令序列例如是由記憶體管理電路51產生並且透過記憶體介面53傳送至可複寫式非揮發性記憶體模組43。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
在一範例實施例中,記憶體控制電路單元42還包括錯誤檢查與校正電路54、緩衝記憶體55及電源管理電路56。
錯誤檢查與校正電路54是耦接至記憶體管理電路51並且用以執行錯誤檢查與校正操作以確保資料的正確性。具體來說,當記憶體管理電路51從主機系統11中取得寫入指令時,錯誤檢查與校正電路54會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code, ECC)及/或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路51會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組43中。之後,當記憶體管理電路51從可複寫式非揮發性記憶體模組43中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路54會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正操作。例如,錯誤檢查與校正電路54可採用低密度奇偶檢查碼(Low Density Parity Check code, LDPC code)、BCH碼、里德-所羅門碼(Reed-solomon code, RS code)、互斥或(Exclusive OR, XOR)碼等各式編/解碼演算法來編碼與解碼資料。
緩衝記憶體55是耦接至記憶體管理電路51並且用以暫存資料。電源管理電路56是耦接至記憶體管理電路51並且用以控制記憶體儲存裝置10的電源。
在一範例實施例中,圖4的可複寫式非揮發性記憶體模組43可包括快閃記憶體模組。在一範例實施例中,圖4的記憶體控制電路單元42可包括快閃記憶體控制器。在一範例實施例中,圖5的記憶體管理電路51可包括快閃記憶體管理電路。
圖6是根據本發明的範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。請參照圖6,記憶體管理電路51可將可複寫式非揮發性記憶體模組43中的實體單元610(0)~610(C)邏輯地分組至儲存區601、閒置(spare)區602及系統區603。
在一範例實施例中,一個實體單元是由多個連續或不連續的實體位址組成。在一範例實施例中,一個實體單元亦可以是指一個虛擬區塊(VB),一個虛擬區塊可包括一或多個實體抹除單元。
在一範例實施例中,儲存區601中的實體單元610(0)~610(A)用以儲存使用者資料(例如來自圖1的主機系統11的使用者資料)。例如,儲存區601中的實體單元610(0)~610(A)可儲存有效(valid)資料與無效(invalid)資料。閒置區602中的實體單元610(A+1)~610(B)未儲存資料(例如有效資料)。例如,若某一個實體單元未儲存有效資料,則此實體單元可被關聯(或加入)至閒置區602。此外,閒置區602中的實體單元(或未儲存有效資料的實體單元)可被抹除。在寫入新資料時,一或多個實體單元可被從閒置區602中提取以儲存此新資料。在一範例實施例中,閒置區602亦稱為閒置池(free pool)。
在一範例實施例中,記憶體管理電路51可配置邏輯單元612(0)~612(D)以映射儲存區601中的實體單元610(0)~610(A)。在一範例實施例中,每一個邏輯單元對應一個邏輯位址。例如,一個邏輯位址可包括一或多個邏輯區塊位址(Logical Block Address, LBA)或其他的邏輯管理單元。在一範例實施例中,一個邏輯單元也可對應一個邏輯程式化單元或者由多個連續或不連續的邏輯位址組成。
須注意的是,一個邏輯單元可被映射至一或多個實體單元。若某一實體單元當前有被某一邏輯單元映射,則表示此實體單元當前儲存的資料包括有效資料。反之,若某一實體單元當前未被任一邏輯單元映射,則表示此實體單元當前儲存的資料為無效資料。
在一範例實施例中,記憶體管理電路51可將描述邏輯單元與實體單元之間的映射關係的管理資料(亦稱為邏輯至實體映射資訊)記錄於至少一邏輯至實體映射表(L2P table)。當主機系統11欲從記憶體儲存裝置10讀取資料或寫入資料至記憶體儲存裝置10時,記憶體管理電路51可根據此邏輯至實體映射表中的資訊來存取可複寫式非揮發性記憶體模組43。
在一範例實施例中,記憶體管理電路51可將特定類型的資料儲存於系統區603中。例如,系統區603中的實體單元610(B+1)~610(C)可專用以儲存重要性較高的資料及/或不想要被主機系統11存取或修改的資料。例如,所述重要性較高的資料及/或不想要被主機系統11存取或修改的資料可包括邏輯至實體映射表、壞塊管理表、損耗平衡管理表、有效資料管理表及/或其他類型的管理資料,本發明不加以限制。邏輯至實體映射表用以記載映射資訊。此映射資訊可反映邏輯單元與實體單元之間的映射關係。壞塊管理表用以記載與可複寫式非揮發性記憶體模組43中的至少一壞塊有關的資訊。損耗平衡管理表可用以記載與可複寫式非揮發性記憶體模組43中的至少一實體單元的損耗狀態有關的資訊(例如讀取計數、寫入計數及/或抹除計數)。有效資料管理表可用以記載與可複寫式非揮發性記憶體模組43中的至少一實體單元的有效計數(valid count)相關的資訊,其中有效計數表示實體單元中有幾筆有效資料。
在一範例實施例中,記憶體管理電路51可不將任何邏輯單元映射至系統區603中的實體單元。藉此,可避免儲存於系統區603中的資料被主機系統11存取或修改。
在一範例實施例中,可複寫式非揮發性記憶體模組43中的實體單元610(0)~610(C)可包括第一類實體單元與第二類實體單元。例如,可複寫式非揮發性記憶體模組43中的每一個實體單元可以是第一類實體單元與第二類實體單元的其中之一。每一個第一類實體單元的資料存取速度會高於每一個第二類實體單元的資料存取速度,及/或每一個第一類實體單元的資料容量會少於每一個第二類實體單元的資料容量。
在一範例實施例中,第一類實體單元可視為資料的暫存區或緩衝區,而第二類實體單元可視為資料的儲存區。在一範例實施例中,來自主機系統11的資料可被透過較高的寫入效率而快速儲存至第一類實體單元中。響應於來自主機系統11的資料被儲存至第一類實體單元中,寫入完成訊息可被回傳給主機系統11。爾後,儲存於第一類實體單元中的資料可在背景運作中被複製至資料容量較大的第二類實體單元進行儲存。然後,使用過的第一類實體單元可被釋放並抹除,以持續接收(即儲存)來自主機系統11的新資料。
在一範例實施例中,記憶體管理電路51可指示可複寫式非揮發性記憶體模組43基於某一程式化模式(亦稱為第一程式化模式)來程式化第一類實體單元,以將資料儲存至第一類實體單元中。另一方面,記憶體管理電路51可指示可複寫式非揮發性記憶體模組43基於另一程式化模式(亦稱為第二程式化模式)來程式化第二類實體單元,以將資料儲存至第二類實體單元中。第一程式化模式不同於第二程式化模式。
在一範例實施例中,第一程式化模式是用以將P個位元儲存於第一類實體單元中的單一個記憶胞,而第二程式化模式是用以將Q個位元儲存於第二類實體單元中的單一個記憶胞。P與Q皆為正整數,且P不等於Q。
在一範例實施例中,P小於Q。例如,P可為“1”,而Q可為“2”、“3”或“4”。在一範例實施例中,在記憶胞數量相同的情況,每一個第一類實體單元的資料容量可為每一個第二類實體單元的資料容量的P/Q。例如,假設P與Q分別為“1”與“4”,則每一個第一類實體單元的資料容量可為每一個第二類實體單元的資料容量的1/4。
在一範例實施例中,第一程式化模式是指SLC程式化模式、虛擬(pseudo)SLC程式化模式、下實體程式化(lower physical programming)模式、混合程式化(mixture programming)模式及少層記憶胞(less layer memory cell)模式的其中之一。在SLC程式化模式與虛擬SLC程式化模式中,一個記憶胞只儲存一個位元的資料。在下實體程式化模式中,只有下實體程式化單元會被程式化,而此下實體程式化單元所對應之上實體程式化單元可不被程式化。在混合程式化模式中,有效資料(或真實資料)會被程式化於下實體程式化單元中,而同時虛擬資料(dummy data)會被程式化至儲存有效資料之下實體程式化單元所對應的上實體程式化單元中。在少層記憶胞模式中,一個記憶胞儲存一第一數目之位元的資料。例如,此第一數目可設為“1”。
在一範例實施例中,第二程式化模式包含了多個子程式化模式,在這些子程式化模式中一個記憶胞可儲存不同數目的位元。例如,這些子程式化模式包含了MLC程式化模式、TLC程式化模式、QLC程式化模式或類似模式。特別的是,當記憶體管理電路51把資料寫入至一個實體單元時,可以在寫入指令中增加一個參數來決定子程式化模式,也就是說一個實體單元的子程式化模式可以動態的被決定。
圖7是根據一實施例繪示記憶體管理方法的流程圖。請參照圖7,步驟701~705由記憶體管理電路51執行,以下不再重複贅述。在步驟701,紀錄多個第一實體單元中每一者的隨機讀取計數,其中每個第一實體單元都儲存有效資料。例如,這些第一實體單元為上述的第一類實體單元,這些第一實體單元是以第一程式化模式(例如,SLC程式化模式)來儲存資料。
圖8是根據一實施例繪示紀錄隨機讀取計數的示意圖。請參照圖8,在此假設有3個第一實體單元811~813,主機系統11下達了讀取指令801~805,每個讀取指令中都有邏輯位址,根據邏輯至實體映射表可以將邏輯位址轉換為實體位址,並找到對應的實體單元。在此例子中,讀取指令801用以讀取實體單元811中的有效資料;讀取指令802用以讀取實體單元811中的有效資料;讀取指令803用以讀取實體單元812中的有效資料;讀取指令804用以讀取實體單元813中的有效資料;讀取指令805用以讀取實體單元812中的有效資料。
在此例子中,當連續兩筆讀取指令讀取同一個實體單元中的有效資料時,則視為順序讀取(sequential read);當連續兩筆讀取指令讀取不同實體單元中的有效資料時,則視為隨機讀取(random read)。具體來說,記憶體管理電路51會接收來自主機系統11的讀取指令801~805。當有連續的兩筆讀取指令讀取不同的實體單元811~813時,會更新這兩筆讀取指令中後者所讀取的實體單元的隨機讀取計數。舉例來說,讀取指令801~802是讀取相同的實體單元811,因此並不會更新隨機讀取計數。讀取指令802、803分別讀取不同的實體單元811、812,因此會更新讀取指令803所讀取的實體單元812的隨機讀取計數,例如增加隨機讀取計數,此隨機讀取計數越大表示對應的實體單元中儲存的有效資料被隨機讀取的頻率(或機率)越高,以下會再說明隨機讀取計數的定義。讀取指令803、804分別讀取不同的實體單元812、813,因此會更新讀取指令804所讀取的實體單元813的隨機讀取計數。讀取指令804、805分別讀取不同的實體單元813、812,因此會更新讀取指令805所讀取的實體單元812的隨機讀取計數。
在一些實施例中,如果連續兩筆讀取指令讀取不同的實體單元,但這兩筆讀取指令所要存取的實體位址是連續的,則不會視為隨機讀取。舉例來說,讀取指令802所要存取的實體位址為PBA,而讀取指令803所要存取的實體位址為PBA+1。雖然讀取指令802、803是分別讀取不同的實體單元811、812,但由於所要存取的兩個實體位址為連續的,因此並不視為隨機讀取,也就不會更新實體單元812的隨機讀取計數。此外,假設讀取指令804所要讀取的實體位址為PBA+K,其中K為大於2的正整數。在這樣的例子中,讀取指令803、804讀取不同的實體單元,而且所要存取的實體位址並不是連續,因此視為隨機存取,也就會更新實體單元813的隨機讀取計數。
在一些實施例中,隨機讀取計數是定義為隨機讀取次數除以隨機讀取總次數的比例。每次更新隨機讀取計數時會將隨機讀取次數加上1,在圖8的例子中實體單元811的隨機讀取次數為0,實體單元812的隨機讀取次數為2,實體單元813的隨機讀取次數為1。而隨機讀取總次數為2+1=3。因此,實體單元811的隨機讀取計數為0,實體單元812的隨機讀取計數為2/3,實體單元813的隨機讀取計數為1/3。在這樣的例子中,實體單元812中的有效資料有更高的頻率被隨機讀取,而實體單元813中的有效資料有較低的頻率被隨機讀取。
在其他實施例中,也可以直接把隨機讀取計數設定為相同於隨機讀取次數。或者,可以把隨機讀取次數除以讀取總次數(包含隨機讀取以及順序讀取)的比例設定為隨機讀取計數。
當資料是以第一程式化模式儲存在實體單元中時,讀取延遲通常較低(相比於第二程式化模式)。對於順序讀取來說,因為有交錯(interleave)的機制,等待一個實體單元的讀取時可以進行其他操作,對於讀取的效能影響較小。然而,當隨機讀取時就比較難以仰賴交錯的機制,這會使得讀取延遲無法隱藏在其他操作中。在此實施例中是讓隨機讀取的資料盡量保留在第一程式化模式的實體單元中,這樣可以降低讀取延遲。具體做法是在進行數據整併操作時依照隨機讀取計數來挑選來源實體單元,或者依照隨機讀取計數來設定目標實體單元的程式化模式,以下將詳細說明此作法。
請參照圖7,在步驟702,啟動資料整併程序。資料整併程序也稱為垃圾收集,用以挑選來源實體單元,並把來源實體單元中的有效資料搬移至目標實體單元,接下來抹除來源實體單元以釋放這些記憶體空間。在一些實施例中,可以判斷閒置區602中實體單元的數量是否小於一臨界值,如果是的話則啟動資料整併程序。然而,在其他實施例中也可以依照其他機制來啟動資料整併程序,本發明並不在此限。
在步驟703,根據隨機讀取計數從上述的第一實體單元中挑選多個來源實體單元。如上所述,第一實體單元是以第一程式化模式(例如SLC程式化模式)來儲存有效資料。當讀取第一實體單元中的有效資料時,讀取延遲較低。在此可以挑選隨機讀取計數較小的第一實體單元以作為來源實體單元。換言之,來源實體單元的隨機讀取計數會小於沒有被挑選的第一實體單元的隨機讀取計數。如此一來,可以把隨機讀取的資料保留在處於第一程式化模式的第一實體單元中,可以降低讀取延遲。
圖9是根據一實施例繪示挑選來源實體單元的示意圖。請參照圖9,來自主機系統11的資料會被寫入至實體單元910當中,此實體單元910是操作在第一程式化模式。當實體單元910被寫滿以後,實體單元910會被加入至一個集合920。當要進行資料整併程序時,便從集合920中挑選來源實體單元。在此例子中,集合920包含了實體單元921~926,這些實體單元921~926都是以第一程式化模式來儲存資料。其中實體單元921、922、924、925的隨機讀取計數會小於實體單元923、926的隨機讀取計數。因此,在此實施例中會挑選實體單元921、922、924、925以作為來源實體單元。
在一些實施例中,在挑選來源實體單元時不僅會參考隨機讀取計數,也會參考有效資料的大小(例如表示為多少個實體頁)。如果來源實體單元中有效資料較少,則需要搬移的資料量較小,這樣可以快速的釋放出實體單元。因此,對於每一個第一實體單元,可以依據對應的隨機讀取計數以及有效資料的大小來設定優先度,優先度較大的實體單元則優先(或是有更高的機率)被挑選為來源實體單元。另一方面,優先度和隨機讀取計數為負相關,且優先度和有效資料的大小為負相關。換言之,在進行資料整併程序時是優先挑選隨機讀取計數較低及有效資料較少的實體單元作為來源實體單元。
在一些實施例中可以透過流程的設計或是計算一個指標來設定優先度,本發明並不在此限。例如,可以先挑選隨機讀取計數較低的實體單元,再從中挑選有效資料較少的實體單元。或者,可以先挑選有效資料較少的實體單元,再從中挑選隨機讀取計數較低的實體單元。或者,可以將隨機讀取計數和有效資料大小代入一函數來計算優先度,此函數可以是線性函數、多項式函數、指數函數等。
在步驟704,取得目標實體單元,並且根據來源實體單元的隨機讀取計數決定目標實體單元的程式化模式。目標實體單元的程式化模式為上述的第二程式化模式。換言之,來源實體單元中的一個記憶胞用以儲存P個位元,而目標實體單元中的一記憶胞用以儲存Q個位元,P、Q為正整數,且Q大於P。
在一些實施例中第二程式化模式可以再細分為多個子程式化模式,例如包含MLC、TLC、QLC等子程式化模式。在此實施例中,假設有第一子程式化模式以及第二子程式化模式,在第一子程式化模式中一個記憶胞可以儲存Q
1個位元,而在第二子程式化模式中一個記憶胞可以儲存Q
2個位元,其中Q
1、Q
2為大於1的正整數,且Q
1小於Q
2。例如,Q
1=3且Q
2=4,在這樣的例子中第一子程式化模式亦稱為TLC程式化模式,而第二子程式化模式亦稱為QLC程式化模式。在另一實施例中,Q
1=2且Q
2=3,在這樣的例子中第一子程式化模式亦稱為MLC程式化模式,而第二子程式化模式亦稱為TLC程式化模式。
為了降低讀取延遲,在此可以將隨機讀取的資料搬移至MLC或是TLC等程式化模式的目標實體單元,並把其他資料搬移至QLC程式化模式的目標實體單元。圖10是根據一實施例繪示決定目標實體單元的程式化模式的示意圖。請參照圖10,集合920中包含了實體單元1001~1007,其中實體單元1001、1002、1005、1006的隨機讀取計數較低,而實體單元1003、1004、1007的隨機讀取計數較高。在一些實施例中,當來源實體單元的隨機讀取計數大於等於一臨界值,設定目標實體單元的程式化模式為第一子程式化模式;當來源實體單元的隨機讀取計數小於一臨界值,設定目標實體單元的程式化模式為第二子程式化模式。例如,當啟動資料整併程序以後,可以挑選實體單元1001、1002、1005、1006作為來源實體單元,並且設定目標實體單元的程式化模式為第二子程式化模式。如果閒置區602中的實體單元還是不夠,需要繼續進行資料整併程序,可以挑選實體單元1003、1004、1007作為來源實體單元,由於這些來源實體單元的隨機讀取計數較高,因此可以設定目標實體單元1020的程式化模式為第一子程式化模式。換言之,目標實體單元1020中每個記憶胞儲存的位元個數會小於目標實體單元1010中每個記憶胞儲存的位元個數。由於目標實體單元1010的儲存容量較大,而目標實體單元1020有較低的讀取延遲,這樣的作法是為了平衡空間與讀取延遲之間的權衡。
請回到圖7,在步驟705,將來源實體單元中的有效資料搬移至目標實體單元。在圖9中是將沒有隨機讀取(或是隨機讀取程度較低)的資料搬移至目標實體單元930。在圖10是將隨機讀取程度較低的資料搬移至目標實體單元1010,並將隨機讀取程度較高的資料搬移至目標實體單元1020。以上做法都是要讓隨機讀取的資料盡量儲存在讀取延遲較低的實體單元中。
圖7中各步驟可以實作為多個程式碼或是電路,本發明並不在此限。此外,圖7的方法可以搭配以上實施例使用也可以單獨使用,換言之,圖7的各步驟之間也可以加入其他的步驟。在一些實施例中,可以只根據隨機讀取計數來挑選來源實體單元,但沒有根據隨機讀取計數設定目標實體單元的程式化模式。在一些實施例中則相反,可以根據隨機讀取計數設定目標實體單元的程式化模式,但沒有根據隨機讀取計數來挑選來源實體單元。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10,30:記憶體儲存裝置
11,31:主機系統
110:系統匯流排
111:處理器
112:隨機存取記憶體
113:唯讀記憶體
114:資料傳輸介面
12:輸入/輸出(I/O)裝置
20:主機板
201:隨身碟
202:記憶卡
203:固態硬碟
204:無線記憶體儲存裝置
205:全球定位系統模組
206:網路介面卡
207:無線傳輸裝置
208:鍵盤
209:螢幕
210:喇叭
32:SD卡
33:CF卡
34:嵌入式儲存裝置
341:嵌入式多媒體卡
342:嵌入式多晶片封裝儲存裝置
41:連接介面單元
42:記憶體控制電路單元
43:可複寫式非揮發性記憶體模組
51:記憶體管理電路
52:主機介面
53:記憶體介面
54:錯誤檢查與校正電路
55:緩衝記憶體
56:電源管理電路
601:儲存區
602:閒置區
603:系統區
610(0)~610(C):實體單元
612(0)~612(D):邏輯單元
701~705:步驟
801~805:讀取指令
811~813,910,921~926,1001~1007:實體單元
920:集合
930,1010,1020:目標實體單元
圖1是根據本發明的範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
圖2是根據本發明的範例實施例所繪示的主機系統、記憶體儲存裝置及I/O裝置的示意圖。
圖3是根據本發明的範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是根據本發明的範例實施例所繪示的記憶體儲存裝置的示意圖。
圖5是根據本發明的範例實施例所繪示的記憶體控制電路單元的示意圖。
圖6是根據本發明的範例實施例所繪示的管理可複寫式非揮發性記憶體模組的示意圖。
圖7是根據一實施例繪示記憶體管理方法的流程圖。
圖8是根據一實施例繪示紀錄隨機讀取計數的示意圖。
圖9是根據一實施例繪示挑選來源實體單元的示意圖。
圖10是根據一實施例繪示決定目標實體單元的程式化模式的示意圖。
701~705:步驟
Claims (21)
- 一種記憶體管理方法,用於一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體單元,且該記憶體管理方法包括: 紀錄該些實體單元中多個第一實體單元的每一者的一隨機讀取計數,其中該些第一實體單元的每一者儲存一有效資料; 啟動一資料整併程序; 根據該些隨機讀取計數從該些第一實體單元中挑選多個來源實體單元; 將該些來源實體單元中的該有效資料搬移至該些實體單元中的一目標實體單元,其中該些來源實體單元的每一者中的一記憶胞用以儲存P個位元,該目標實體單元中的一記憶胞用以儲存Q個位元,P、Q為正整數,且Q大於P。
- 如請求項1所述的記憶體管理方法,其中該些來源實體單元的該些隨機讀取計數小於該些第一實體單元中沒有被挑選的實體單元的該隨機讀取計數。
- 如請求項1所述的記憶體管理方法,其中根據該些隨機讀取計數從該些第一實體單元中挑選該些來源實體單元的步驟包括: 對於該些第一實體單元中的每一者,根據對應的該隨機讀取計數以及該有效資料的大小設定一優先度,其中該優先度和該隨機讀取計數為負相關,該優先度和該有效資料的大小為負相關;以及 根據該優先度從該些第一實體單元挑選該些來源實體單元。
- 如請求項1所述的記憶體管理方法,還包括: 根據該些來源實體單元的該些隨機讀取計數決定該目標實體單元的一程式化模式,其中該程式化模式為一第一子程式化模式或一第二子程式化模式, 其中在該第一子程式化模式,該目標實體單元中的該記憶胞用以儲存Q1個位元, 其中在該第二子程式化模式,該目標實體單元中的該記憶胞用以儲存Q2個位元,其中Q1、Q2為正整數,且Q1小於Q2。
- 如請求項4所述的記憶體管理方法,其中根據該些來源實體單元的該些隨機讀取計數決定該目標實體單元的該程式化模式的步驟包括: 若該些來源實體單元的該些隨機讀取計數小於一臨界值,設定該目標實體單元的該程式化模式為該第二子程式化模式; 若該些來源實體單元的該些隨機讀取計數大於等於該臨界值,設定該目標實體單元的該程式化模式為該第一子程式化模式。
- 如請求項1所述的記憶體管理方法,其中紀錄該些實體單元中該些第一實體單元的每一者的該隨機讀取計數的步驟包括: 接收來自一主機系統的多筆讀取指令;以及 當該些讀取指令中連續的兩筆讀取指令讀取不同的該些第一實體單元時,更新該兩筆讀取指令的後者所讀取的該第一實體單元的該隨機讀取計數。
- 如請求項6所述的記憶體管理方法,其中紀錄該些實體單元中該些第一實體單元的每一者的該隨機讀取計數的步驟包括: 對於該些第一實體單元的每一者,計算對應的一隨機讀取次數除以一隨機讀取總次數的一比例以作為該隨機讀取計數。
- 一種記憶體儲存裝置,包括: 連接介面單元,用以耦接至主機系統; 可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體單元;以及 記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組, 其中該記憶體控制電路單元用以執行多個步驟: 紀錄該些實體單元中多個第一實體單元的每一者的一隨機讀取計數,其中該些第一實體單元的每一者儲存一有效資料; 啟動一資料整併程序; 根據該些隨機讀取計數從該些第一實體單元中挑選多個來源實體單元; 將該些來源實體單元中的該有效資料搬移至該些實體單元中的一目標實體單元,其中該些來源實體單元的每一者中的一記憶胞用以儲存P個位元,該目標實體單元中的一記憶胞用以儲存Q個位元,P、Q為正整數,且Q大於P。
- 如請求項8所述的記憶體儲存裝置,其中該些來源實體單元的該些隨機讀取計數小於該些第一實體單元中沒有被挑選的實體單元的該隨機讀取計數。
- 如請求項8所述的記憶體儲存裝置,其中根據該些隨機讀取計數從該些第一實體單元中挑選該些來源實體單元的步驟包括: 對於該些第一實體單元中的每一者,根據對應的該隨機讀取計數以及該有效資料的大小設定一優先度,其中該優先度和該隨機讀取計數為負相關,該優先度和該有效資料的大小為負相關;以及 根據該優先度從該些第一實體單元挑選該些來源實體單元。
- 如請求項8所述的記憶體儲存裝置,其中該些步驟還包括: 根據該些來源實體單元的該些隨機讀取計數決定該目標實體單元的一程式化模式,其中該程式化模式為一第一子程式化模式或一第二子程式化模式, 其中在該第一子程式化模式,該目標實體單元中的該記憶胞用以儲存Q1個位元, 其中在該第二子程式化模式,該目標實體單元中的該記憶胞用以儲存Q2個位元,其中Q1、Q2為正整數,且Q1小於Q2。
- 如請求項11所述的記憶體儲存裝置,其中根據該些來源實體單元的該些隨機讀取計數決定該目標實體單元的該程式化模式的步驟包括: 若該些來源實體單元的該些隨機讀取計數小於一臨界值,設定該目標實體單元的該程式化模式為該第二子程式化模式; 若該些來源實體單元的該些隨機讀取計數大於等於該臨界值,設定該目標實體單元的該程式化模式為該第一子程式化模式。
- 如請求項8所述的記憶體儲存裝置,其中紀錄該些實體單元中該些第一實體單元的每一者的該隨機讀取計數的步驟包括: 接收來自該主機系統的多筆讀取指令;以及 當該些讀取指令中連續的兩筆讀取指令讀取不同的該些第一實體單元時,更新該兩筆讀取指令的後者所讀取的該第一實體單元的該隨機讀取計數。
- 如請求項13所述的記憶體儲存裝置,其中紀錄該些實體單元中該些第一實體單元的每一者的該隨機讀取計數的步驟包括: 對於該些第一實體單元的每一者,計算對應的一隨機讀取次數除以一隨機讀取總次數的一比例以作為該隨機讀取計數。
- 一種記憶體控制電路單元,用以控制可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體單元,且該記憶體控制電路單元包括: 主機介面,用以耦接至主機系統; 記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組; 記憶體管理電路,耦接至該主機介面及該記憶體介面, 其中該記憶體管理電路用以執行多個步驟: 紀錄該些實體單元中多個第一實體單元的每一者的一隨機讀取計數,其中該些第一實體單元的每一者儲存一有效資料; 啟動一資料整併程序; 根據該些隨機讀取計數從該些第一實體單元中挑選多個來源實體單元; 將該些來源實體單元中的該有效資料搬移至該些實體單元中的一目標實體單元,其中該些來源實體單元的每一者中的一記憶胞用以儲存P個位元,該目標實體單元中的一記憶胞用以儲存Q個位元,P、Q為正整數,且Q大於P。
- 如請求項15所述的記憶體控制電路單元,其中該些來源實體單元的該些隨機讀取計數小於該些第一實體單元中沒有被挑選的實體單元的該隨機讀取計數。
- 如請求項15所述的記憶體控制電路單元,其中根據該些隨機讀取計數從該些第一實體單元中挑選該些來源實體單元的步驟包括: 對於該些第一實體單元中的每一者,根據對應的該隨機讀取計數以及該有效資料的大小設定一優先度,其中該優先度和該隨機讀取計數為負相關,該優先度和該有效資料的大小為負相關;以及 根據該優先度從該些第一實體單元挑選該些來源實體單元。
- 如請求項15所述的記憶體控制電路單元,其中該些步驟還包括: 根據該些來源實體單元的該些隨機讀取計數決定該目標實體單元的一程式化模式,其中該程式化模式為一第一子程式化模式或一第二子程式化模式, 其中在該第一子程式化模式,該目標實體單元中的該記憶胞用以儲存Q1個位元, 其中在該第二子程式化模式,該目標實體單元中的該記憶胞用以儲存Q2個位元,其中Q1、Q2為正整數,且Q1小於Q2。
- 如請求項18所述的記憶體控制電路單元,其中根據該些來源實體單元的該些隨機讀取計數決定該目標實體單元的該程式化模式的步驟包括: 若該些來源實體單元的該些隨機讀取計數小於一臨界值,設定該目標實體單元的該程式化模式為該第二子程式化模式; 若該些來源實體單元的該些隨機讀取計數大於等於該臨界值,設定該目標實體單元的該程式化模式為該第一子程式化模式。
- 如請求項15所述的記憶體控制電路單元,其中紀錄該些實體單元中該些第一實體單元的每一者的該隨機讀取計數的步驟包括: 接收來自一主機系統的多筆讀取指令;以及 當該些讀取指令中連續的兩筆讀取指令讀取不同的該些第一實體單元時,更新該兩筆讀取指令的後者所讀取的該第一實體單元的該隨機讀取計數。
- 如請求項20所述的記憶體控制電路單元,其中紀錄該些實體單元中該些第一實體單元的每一者的該隨機讀取計數的步驟包括: 對於該些第一實體單元的每一者,計算對應的一隨機讀取次數除以一隨機讀取總次數的一比例以作為該隨機讀取計數。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW113150704A TWI897781B (zh) | 2024-12-25 | 2024-12-25 | 記憶體管理方法、記憶體儲存裝置與記憶體控制電路單元 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW113150704A TWI897781B (zh) | 2024-12-25 | 2024-12-25 | 記憶體管理方法、記憶體儲存裝置與記憶體控制電路單元 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TWI897781B true TWI897781B (zh) | 2025-09-11 |
Family
ID=97831975
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW113150704A TWI897781B (zh) | 2024-12-25 | 2024-12-25 | 記憶體管理方法、記憶體儲存裝置與記憶體控制電路單元 |
Country Status (1)
| Country | Link |
|---|---|
| TW (1) | TWI897781B (zh) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8255614B2 (en) * | 2009-01-16 | 2012-08-28 | Kabushiki Kaisha Toshiba | Information processing device that accesses memory, processor and memory management method |
| CN102667736A (zh) * | 2010-01-27 | 2012-09-12 | 株式会社东芝 | 存储器管理装置及存储器管理方法 |
| TW202213085A (zh) * | 2020-09-29 | 2022-04-01 | 慧榮科技股份有限公司 | 快閃記憶體的資料儲存方法及裝置以及電腦程式產品 |
| TW202414217A (zh) * | 2022-09-26 | 2024-04-01 | 慧榮科技股份有限公司 | 資料處理方法及對應之資料儲存裝置 |
-
2024
- 2024-12-25 TW TW113150704A patent/TWI897781B/zh active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8255614B2 (en) * | 2009-01-16 | 2012-08-28 | Kabushiki Kaisha Toshiba | Information processing device that accesses memory, processor and memory management method |
| CN102667736A (zh) * | 2010-01-27 | 2012-09-12 | 株式会社东芝 | 存储器管理装置及存储器管理方法 |
| TW202213085A (zh) * | 2020-09-29 | 2022-04-01 | 慧榮科技股份有限公司 | 快閃記憶體的資料儲存方法及裝置以及電腦程式產品 |
| TW202414217A (zh) * | 2022-09-26 | 2024-04-01 | 慧榮科技股份有限公司 | 資料處理方法及對應之資料儲存裝置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW201820145A (zh) | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 | |
| CN113140253A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
| TW202420099A (zh) | 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI859965B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI852352B (zh) | 有效節點管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI839144B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI863051B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI834149B (zh) | 表格管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI897781B (zh) | 記憶體管理方法、記憶體儲存裝置與記憶體控制電路單元 | |
| CN116841471A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
| TWI897614B (zh) | 記憶體管理方法、記憶體儲存裝置與記憶體控制電路單元 | |
| TWI898784B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI859897B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI845275B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI880783B (zh) | 資料檢查方法、記憶體儲存裝置及記憶體控制電路單元 | |
| CN119440416B (zh) | 存储器管理方法以及存储器存储装置 | |
| TWI844172B (zh) | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI883606B (zh) | 裝置控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
| CN119148935B (zh) | 磨损均衡方法以及存储器存储装置 | |
| TWI886949B (zh) | 裝置控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI913112B (zh) | 解碼控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI819876B (zh) | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI886798B (zh) | 解碼參數更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI880640B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TWI867874B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |