TW201506932A - 用來管理一記憶裝置之方法以及記憶裝置與控制器 - Google Patents
用來管理一記憶裝置之方法以及記憶裝置與控制器 Download PDFInfo
- Publication number
- TW201506932A TW201506932A TW102144913A TW102144913A TW201506932A TW 201506932 A TW201506932 A TW 201506932A TW 102144913 A TW102144913 A TW 102144913A TW 102144913 A TW102144913 A TW 102144913A TW 201506932 A TW201506932 A TW 201506932A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- volatile memory
- memory
- received
- controller
- Prior art date
Links
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提供一種用來管理一記憶裝置之方法以及其相關之記憶裝置與控制器,該方法包含有下列步驟:將接收自一主裝置之資料暫時地儲存於該控制器中之一揮發性記憶體作為接收資料,並動態地監控該接收資料的資料量以決定是否立即將該接收資料寫入至少一非揮發性記憶體元件;以及當決定立即將該接收資料寫入該至少一非揮發性記憶體元件時,將該接收資料直接寫入一特定非揮發性記憶體元件當中被組態成多階細胞記憶區塊之一特定區塊,而非藉由先將該接收資料暫時地寫入被組態成單階細胞記憶區塊之任何其它區塊來間接地寫入該特定區塊。
Description
本發明係有關於快閃記憶體(Flash Memory)之控制,尤指一種用來管理一記憶裝置之方法以及其相關之記憶裝置與控制器。
近年來由於快閃記憶體的技術不斷地發展,各種可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)被廣泛地實施於諸多應用中。因此,這些可攜式記憶裝置中之快閃記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(Single Level Cell,SLC)與多階細胞(Multiple Level Cell,MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶細胞(Memory Cell;亦可稱為「記憶單元」)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶細胞的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄多個位元之資訊(例如:00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之兩倍以上,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。依據相關技術,由於
某些類型的多階細胞快閃記憶體的運作複雜,故傳統的記憶體控制器會將多階細胞快閃記憶體內的一部分實體區塊組態成單階細胞記憶區塊,以供接收來自主裝置(Host Device)之寫入資料。然而,某些問題就產生了。例如:由於多階細胞快閃記憶體內的一部分實體區塊被組態成單階細胞記憶區塊,多階細胞快閃記憶體內可供用來作為多階細胞記憶區塊的實體區塊之數量就減少了,使得傳統的記憶裝置之整體儲存容量減少了。又例如:傳統的記憶體控制器先將接收資料暫時地寫入單階細胞記憶區塊,再將資料從單階細胞記憶區塊收集到多階細胞記憶區塊,其中這些單階細胞記憶區塊的儲存空間很容易用完,故傳統的記憶體控制器需要頻繁地抹除這些單階細胞記憶區塊。於是,傳統的記憶體控制器的工作負荷大幅地增加了,且這些額外的運作需要額外的處理時間,使得傳統的記憶裝置之整體效能變差。因此,需要一種新穎的方法來加強控管快閃記憶體之資料存取,以在不產生副作用(例如:儲存資料錯誤)的狀況下提升整體效能。
因此,本發明之目的之一在於提供一種用來管理一記憶裝置之方法以及其相關之記憶裝置與控制器,以解決上述問題。
本發明之另一目的在於提供一種用來管理一記憶裝置之方法以及其相關之記憶裝置與控制器,以提昇記憶裝置之運作效能。
本發明之至少一較佳實施例中提供一種用來管理一記憶裝置之方法,該記憶裝置包含至少一非揮發性(Non-volatile,NV)記憶體元件,每一非揮發性記憶體元件包含複數個區塊(Block),該方法係應用於該記憶裝置中之一控制器,該控制器係用來控制該至少一非揮發性記憶體元件,該方法包含有下列步驟:將接收自一主裝置(Host Device)之資料暫時地儲存於該控制器中之一揮發性記憶體作為接收資料,並動態地監控該接收資料的資料量以決定是否立即將該接收資料寫入該至少一非揮發性記憶體元件,其中接收自該主裝置之至少一寫入指令指出該主裝置要求寫入該資料;以及當
決定立即將該接收資料寫入該至少一非揮發性記憶體元件時,將該接收資料直接寫入該至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件當中被組態成多階細胞(Multiple Level Cell,MLC)記憶區塊之一特定區塊,而非藉由先將該接收資料暫時地寫入被組態成單階細胞(Single Level Cell,SLC)記憶區塊之任何其它區塊來間接地將該接收資料寫入該特定區塊。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置,包含有:至少一非揮發性記憶體元件,每一非揮發性記憶體元件包含複數個區塊;以及一控制器,用來控制該至少一非揮發性記憶體元件,該控制器包含一處理單元,以依據內嵌於該處理單元或接收自該處理單元之外之一程式碼來管理該記憶裝置。另外,該控制器將接收自一主裝置之資料暫時地儲存於該控制器中之一揮發性記憶體作為接收資料,並動態地監控該接收資料的資料量以決定是否立即將該接收資料寫入該至少一非揮發性記憶體元件,其中接收自該主裝置之至少一寫入指令指出該主裝置要求寫入該資料。此外,當決定立即將該接收資料寫入該至少一非揮發性記憶體元件時,該控制器將該接收資料直接寫入該至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件當中被組態成多階細胞記憶區塊之一特定區塊,而非藉由先將該接收資料暫時地寫入被組態成單階細胞記憶區塊之任何其它區塊來間接地將該接收資料寫入該特定區塊。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置之控制器,該記憶裝置包含至少一非揮發性記憶體元件,每一非揮發性記憶體元件包含複數個區塊,該控制器包含有:一處理單元,用來依據內嵌於該處理單元或接收自該處理單元之外之一程式碼來管理該記憶裝置。另外,該控制器將接收自一主裝置之資料暫時地儲存於該控制器中之一揮發性記憶體作為接收資料,並動態地監控該接收資料的資料量以決定是否立即將該接收資料寫入該至少一非揮發性記憶體元件,其中接收自該主裝置之至少一寫入指令指出該主裝置要求寫入該資料。此外,當決定立即將該接收資料寫入該
至少一非揮發性記憶體元件時,該控制器將該接收資料直接寫入該至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件當中被組態成多階細胞記憶區塊之一特定區塊,而非藉由先將該接收資料暫時地寫入被組態成單階細胞記憶區塊之任何其它區塊來間接地將該接收資料寫入該特定區塊。
本發明的好處之一是,相較於相關技術,本發明之方法、記憶裝置、與控制器可省下單階細胞記憶區塊所佔用的儲存空間,以提供更多的多階細胞記憶區塊。因此,本發明提供較相關技術更高的儲存容量。
本發明的另一好處是,相較於相關技術,本發明之方法、記憶裝置、與控制器可大幅地省下先將接收資料暫時地寫入單階細胞記憶區塊再將資料從單階細胞記憶區塊收集到多階細胞記憶區塊的時間,還可省下頻繁地抹除單階細胞記憶區塊的時間。因此,本發明提供較相關技術更佳的效能。
100‧‧‧記憶裝置
110‧‧‧處理單元
120‧‧‧揮發性記憶體
130‧‧‧傳輸介面
140_0,140_1,...,140_N‧‧‧非揮發性記憶體元件
150‧‧‧匯流排
200‧‧‧用來管理一記憶裝置之方法
210,220‧‧‧步驟
BLK(0),BLK(1),BLK(2),...,BLK(M),BLK(m)‧‧‧區塊
CHP(n)‧‧‧快閃晶片
Data(0),Data(1),Data(2),Data(3),Data(4),Data(5),Data(6),Data(7),Data(8),...‧‧‧資料
Page(0),Page(1),Page(2),Page(3),Page(4),Page(5),Page(6),Page(7),Page(8),...,Page(189),Page(190),Page(191)‧‧‧頁
Page(63)‧‧‧頁
SEC(0),SEC(1),SEC(2),SEC(3)‧‧‧區段
WL0,WL1,WL2,...,WL63‧‧‧字線
第1圖為依據本發明一第一實施例之一種記憶裝置的示意圖。
第2圖繪示本發明之一實施例中關於第1圖所示之非揮發性記憶體元件中之一者的內容安排,其中該非揮發性記憶體元件於本實施例中係為快閃晶片。
第3圖繪示本發明之另一實施例中關於第1圖所示之非揮發性記憶體元件中之一者的內容安排,其中該非揮發性記憶體元件於本實施例中係為快閃晶片。
第4圖為依據本發明一實施例之一種用來管理一記憶裝置之方法。
第5圖繪示第4圖所示之方法於一實施例中所涉及之控制方案。
第6圖繪示第5圖所示之控制方案的工作流程。
第7圖繪示第4圖所示之方法於另一實施例中所涉及之控制方案。
請參考第1圖,其繪示依據本發明一第一實施例之一種記憶裝置100的示意圖。記憶裝置100包含:一處理單元110,一揮發性(Volatile)記憶體120,一傳輸介面130,複數個非揮發性(Non-volatile,NV)記憶體元件140_0、140_1、...、與140_N(符號「N」代表一正整數)諸如(N+1)個快閃晶片,以及一匯流排150。於典型狀況下,於傳輸介面130耦接至一主裝置(未顯示於第1圖)之後,該主裝置可透過傳輸介面130來存取(Access)記憶裝置100。舉例來說,該主裝置可代表一個人電腦,例如一膝上型電腦或一桌上型電腦。
處理單元110可依據內嵌於處理單元110中或接收自處理單元110之外的程式碼(未顯示)來管理記憶裝置100。例如:該程式碼可為內嵌於處理單元110之硬體碼,尤其是一唯讀記憶體碼(ROM code)。又例如:該程式碼可為接收自處理單元110之外的韌體碼。尤其是,處理單元110係用來控制揮發性記憶體120、傳輸介面130、非揮發性記憶體元件140_0、140_1、...、與140_N、以及匯流排150。本實施例之處理單元110可為一高級縮減指令集電腦機器(Advanced Reduced Instruction Set Computer Machine,Advanced RISC Machine,ARM)處理器或一亞哥縮減指令集電腦核心(Argonaut RISC Core,ARC)處理器。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之不同的變化例,處理單元110可為其它種處理器。
另外,揮發性記憶體120可用來儲存一全域頁位址鏈結表(Global Page Address Linking Table)、該主裝置所存取之資料、以及用來存取記憶裝置100之其它所需資訊。本實施例之揮發性記憶體120可為一動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)或一靜態隨機存取記憶體(Static Random Access Memory,SRAM)。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之不同的變化例,揮發性記憶體120
可為其它種揮發性記憶體。例如:揮發性記憶體120可包含一靜態隨機存取記憶體(Static Random Access Memory,SRAM)。
依據本實施例,第1圖所示之傳輸介面130係用來傳輸資料以及該主裝置與記憶裝置100之間的指令,其中傳輸介面130符合一特定通訊標準諸如串列高級技術附件(Serial Advanced Technology Attachment,SATA)標準、並列高級技術附件(Parallel Advanced Technology Attachment,PATA)標準、或通用序列匯流排(Universal Serial Bus,USB)標準。例如:記憶裝置100係一設置於該主裝置中之固態硬碟(Solid State Drive,SSD),且該特定通訊標準可為用來實施該主裝置之內部通訊的一些典型通訊標準,諸如串列高級技術附件標準或並列高級技術附件標準。又例如:記憶裝置100係一固態硬碟且位於該主裝置之外,並且該特定通訊標準可為用來實施該主裝置之外部通訊的一些典型通訊標準,諸如通用序列匯流排標準。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之不同的變化例,記憶裝置100可為一可攜式記憶裝置諸如一記憶卡,且該特定通訊標準可為用來實施一記憶卡之輸入/輸出介面的一些典型通訊標準,諸如安全數碼(Secure Digital,SD)標準或小型快閃(Compact Flash,CF)標準。
另外,非揮發性記憶體元件140_0、140_1、...、與140_N係用來儲存資料,其中非揮發性記憶體元件140_0、140_1、...、與140_N可為(但不限於)NAND型快閃晶片。匯流排150係用來耦接處理單元110、揮發性記憶體120、傳輸介面130、和非揮發性記憶體元件140_0、140_1、...、與140_N,以及用來進行其通訊。於本實施例中,第1圖所示架構中除了非揮發性記憶體元件140_0、140_1、...、與140_N之外的部分可整合成一控制器,尤其是一積體電路(Integrated Circuit,IC)諸如一控制器晶片,其中該控制器係用來控制記憶裝置100中之至少一非揮發性記憶體元件諸如非揮發性記憶體元件140_0、140_1、...、與140_N,故可視為記憶裝置100之控制器。
第2圖繪示本發明一實施例中關於第1圖所示之非揮發性記
憶體元件140_0、140_1、...、與140_N中之任一非揮發性記憶體元件140_n的內容安排,其中非揮發性記憶體元件140_n於本實施例中可稱為快閃晶片CHP(n),而索引n可代表落入區間[0,N]的範圍內之任一整數。如第2圖所示,非揮發性記憶體元件140_0、140_1、...、與140_N中之每一非揮發性記憶體元件諸如快閃晶片CHP(n)可包含複數個區塊(Block)諸如第2圖所示之各個區塊BLK(0)、BLK(1)、BLK(2)、...、與BLK(M)(符號「M」代表一正整數),其中每一區塊可包含複數頁,而每一頁可包含複數個區段。於本實施例中,一區段可為最小讀取單位。換言之,在一讀取運作期間,處理單元110可讀取一個區段或複數個區段。這只是為了說明的目的而已,並非對本發明之限制。
如第2圖所示,在非揮發性記憶體元件140_n諸如快閃晶片CHP(n)中之一區塊(例如區塊BLK(0))被組態成單階細胞(Single Level Cell,SLC)記憶區塊的狀況下,該區塊諸如區塊BLK(0)可包含一預定數量之多頁,諸如分別對應於複數個字線(Word-Line)WL0、WL1、WL2、...、與WL63之各頁Page(0)、Page(1)、Page(2)、...、與Page(63),其中每一頁諸如頁Page(0)可包含區段SEC(0)、SEC(1)、SEC(2)、與SEC(3)。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之某些變化例,諸如第3圖所示之實施例,在非揮發性記憶體元件140_n諸如快閃晶片CHP(n)中之一區塊(例如區塊BLK(0))被組態成多階細胞(Multiple Level Cell,MLC)記憶區塊諸如三階細胞(Triple Level Cell,TLC)記憶區塊的狀況下,該區塊諸如區塊BLK(0)可包含一預定數量之多頁,諸如分別對應於上述複數個字線WL0、WL1、WL2、...、與WL63之各組頁{Page(0),Page(1),Page(2)}、{Page(3),Page(4),Page(5)}、{Page(6),Page(7),Page(8)}、...、與{Page(189),Page(190),Page(191)},其中每一頁諸如頁Page(0)可包含區段SEC(0)、SEC(1)、SEC(2)、與SEC(3)。
第4圖為依據本發明一實施例之一種用來管理一記憶裝置之
方法200。該方法可應用於第1圖所示之記憶裝置100,尤其是上述之控制器(例如:透過處理單元110執行上述程式碼之記憶體控制器),其中執行上述程式碼之該控制器係用來控制上述之至少一非揮發性記憶體元件諸如第1圖所示之非揮發性記憶體元件140_0、140_1、...、與140_N。該方法說明如下:於步驟210中,該控制器將接收自該主裝置之資料暫時地儲存於該控制器中之揮發性記憶體120作為接收資料,並動態地監控該接收資料的資料量以決定是否立即將該接收資料寫入上述之至少一非揮發性記憶體元件,其中接收自該主裝置之至少一寫入指令指出該主裝置要求寫入該資料。尤其是,當該接收資料的資料量達到一預定資料量門檻值PDDA_TH時,該控制器決定立即將該接收資料寫入上述之至少一非揮發性記憶體元件。
於步驟220中,當決定立即將該接收資料寫入上述之至少一非揮發性記憶體元件時,該控制器將該接收資料直接寫入上述之至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件當中被組態成多階細胞記憶區塊(例如第3圖所示實施例中具有192頁Page(0),Page(1),...,Page(191)之該區塊)之一特定區塊,而非藉由先將該接收資料暫時地寫入被組態成單階細胞記憶區塊(例如第2圖所示實施例中具有64頁Page(0),Page(1),...,Page(63)之該區塊)之任何其它區塊來間接地將該接收資料寫入該特定區塊。例如:該特定非揮發性記憶體元件可為第3圖所示實施例中之快閃晶片CHP(n),其中該特定區塊可為區塊{BLK(0),BLK(1),BLK(2),...,BLK(M)}中之一區塊諸如區塊BLK(m),而索引m可代表落入區間[0,M]的範圍內之任一整數。
依據本實施例,在該特定區塊中之一記憶細胞(Memory Cell)被用來儲存複數個位元的狀況下,該複數個位元需被重複地寫入該記憶細胞達一預定次數PDNT_WR以使該記憶細胞於該特定非揮發性記憶體元件當中被正確地程式化(Programmed),以致該複數個位元中之每一位元均正確地儲存於該記憶細胞以供進一步讀取,其中預定次數PDNT_WR大於一。實作上,
揮發性記憶體120的儲存容量大於或等於預定資料量門檻值PDDA_TH和預定次數PDNT_WR之乘積(PDDA_TH * PDNT_WR),以容許該接收資料之至少一部分被用於該記憶細胞之重複寫入運作。例如:針對某些類型的多階細胞快閃記憶體而言,該特定區塊可被組態成三階細胞記憶區塊,而預定次數PDNT_WR可等於三,並且預定資料量門檻值PDDA_TH可等於該特定非揮發性記憶體元件當中屬於一個字線(Word-Line)之一組記憶細胞的儲存容量。這只是為了說明的目的而已,並非對本發明之限制。
請注意,於本實施例中,該控制器可多次將該接收資料直接寫入該特定區塊,以確保使用者資料不會有任何錯誤。尤其是,在該控制器之控制下,該接收資料被寫入該特定區塊之次數達到預定次數PDNT_WR以使該特定區塊中屬於一特定字線之一特定組記憶細胞於該特定非揮發性記憶體元件當中被正確地程式化,以致該接收資料中之每一位元均正確地儲存於該特定組記憶細胞以供進一步讀取。
另外,在該主裝置欲從上述之至少一非揮發性記憶體元件讀取該資料的狀況下(例如該主裝置傳送一個或多個讀取指令至記憶裝置100),該資料於步驟210中尚未被寫入任何非揮發性記憶體元件。因此,在決定立即將該接收資料寫入上述之至少一非揮發性記憶體元件之前,當接收自該主裝置之至少一讀取指令指出該主裝置要求讀取該資料之至少一部分時,該控制器可自揮發性記憶體120讀取該資料之該至少一部分以供回傳予該主裝置,而非自該特定非揮發性記憶體元件讀取該資料之該至少一部分。
依據本實施例之某些變化例,該控制器自該主裝置分別接收複數組資料{Data(0),Data(1),Data(2)}、{Data(3),Data(4),Data(5)}、{Data(6),Data(7),Data(8)}、...,且將該複數組資料{Data(0),Data(1),Data(2)}、{Data(3),Data(4),Data(5)}、{Data(6),Data(7),Data(8)}、...暫時地儲存於揮發性記憶體120,其中該複數組資料中之每一組資料包含複數頁,且該複數組資料中之每一組資料的資料量等於預定資料量門檻值PDDA_TH。尤其是,該控制器自
揮發性記憶體120分別讀取該複數組資料{Data(0),Data(1),Data(2)}、{Data(3),Data(4),Data(5)}、{Data(6),Data(7),Data(8)}、...,以分別將該複數組資料{Data(0),Data(1),Data(2)}、{Data(3),Data(4),Data(5)}、{Data(6),Data(7),Data(8)}、...直接寫入該特定區塊,並且多次將該複數組資料{Data(0),Data(1),Data(2)}、{Data(3),Data(4),Data(5)}、{Data(6),Data(7),Data(8)}、...中之第一組資料{Data(0),Data(1),Data(2)}直接寫入該特定區塊,其中第一組資料{Data(0),Data(1),Data(2)}被寫入該特定區塊之次數達到預定次數PDNT_WR以使該特定區塊中屬於一特定字線之一特定組記憶細胞於該特定非揮發性記憶體元件當中被正確地程式化,以致第一組資料{Data(0),Data(1),Data(2)}中之每一位元均正確地儲存於該特定組記憶細胞以供進一步讀取。
第5圖繪示第4圖所示之方法200於一實施例中所涉及之控制方案,而第6圖繪示第5圖所示之控制方案的工作流程300,其中第5圖所示之資料Data(0)、Data(1)、Data(2)、Data(3)、Data(4)、Data(5)、Data(6)、Data(7)、Data(8)、...中之每一者可為一頁資料。例如:一頁資料的大小可為16KB(Kilobyte,即千位元組)。這只是為了說明的目的而已,並非對本發明之限制。
於步驟310中,該控制器自該主裝置逐頁地接收包含複數頁之第一組資料{Data(0),Data(1),Data(2)}直到第一組資料{Data(0),Data(1),Data(2)}的總資料量達到預定資料量門檻值PDDA_TH,且將第一組資料{Data(0),Data(1),Data(2)}暫時地儲存於揮發性記憶體120,其中在第一組資料{Data(0),Data(1),Data(2)}之總資料量達到預定資料量門檻值PDDA_TH之前,第一組資料{Data(0),Data(1),Data(2)}並未被寫入該特定區塊。
於步驟312中,當第一組資料{Data(0),Data(1),Data(2)}之總資料量達到預定資料量門檻值PDDA_TH時,該控制器自揮發性記憶體120讀取第一組資料{Data(0),Data(1),Data(2)}之至少一部分,以將第一組資料{Data(0),Data(1),Data(2)}直接寫入該特定區塊。
於步驟320中,該控制器自該主裝置逐頁地接收包含複數頁之第二組資料{Data(3),Data(4),Data(5)}直到第二組資料{Data(3),Data(4),Data(5)}的總資料量達到預定資料量門檻值PDDA_TH,且將第二組資料{Data(3),Data(4),Data(5)}暫時地儲存於揮發性記憶體120,其中在第二組資料{Data(3),Data(4),Data(5)}之總資料量達到預定資料量門檻值PDDA_TH之前,第二組資料{Data(3),Data(4),Data(5)}並未被寫入該特定區塊。
於步驟322中,當第二組資料{Data(3),Data(4),Data(5)}之總資料量達到預定資料量門檻值PDDA_TH時,該控制器自揮發性記憶體120讀取第二組資料{Data(3),Data(4),Data(5)}之至少一部分,以將第二組資料{Data(3),Data(4),Data(5)}直接寫入該特定區塊,並且第二次將第一組資料{Data(0),Data(1),Data(2)}直接寫入該特定區塊。
於步驟330中,該控制器自該主裝置逐頁地接收包含複數頁之第三組資料{Data(6),Data(7),Data(8)}直到第三組資料{Data(6),Data(7),Data(8)}的總資料量達到預定資料量門檻值PDDA_TH,且將第三組資料{Data(6),Data(7),Data(8)}暫時地儲存於揮發性記憶體120,其中在第三組資料{Data(6),Data(7),Data(8)}之總資料量達到預定資料量門檻值PDDA_TH之前,第三組資料{Data(6),Data(7),Data(8)}並未被寫入該特定區塊。
於步驟332中,當第三組資料{Data(6),Data(7),Data(8)}之總資料量達到預定資料量門檻值PDDA_TH時,該控制器自揮發性記憶體120讀取第三組資料{Data(6),Data(7),Data(8)}之至少一部分,以將第三組資料{Data(6),Data(7),Data(8)}直接寫入該特定區塊,並且第二次將第二組資料{Data(3),Data(4),Data(5)}直接寫入該特定區塊,以及第三次將第一組資料{Data(0),Data(1),Data(2)}直接寫入該特定區塊,藉此,第一組資料{Data(0),Data(1),Data(2)}中之任一頁資料的每一位元均正確地儲存於該特定區塊以供進一步讀取。例如:在預定次數PDNT_WR等於三的狀況下,第一組資料{Data(0),Data(1),Data(2)}之寫入運作已完成。
針對該複數組資料{Data(0),Data(1),Data(2)}、{Data(3),Data(4),Data(5)}、{Data(6),Data(7),Data(8)}、...中之後續各組資料,該控制器可依據第6圖所示之工作流程300所掲露的運作(尤其是步驟330及步驟332中之運作)對應地進行處理;依此類推。例如:當該複數組資料{Data(0),Data(1),Data(2)}、{Data(3),Data(4),Data(5)}、{Data(6),Data(7),Data(8)}、...中之第四組資料{Data(9),Data(10),Data(11)}之總資料量達到預定資料量門檻值PDDA_TH時,該控制器自揮發性記憶體120讀取第四組資料{Data(9),Data(10),Data(11)}之至少一部分,以將第四組資料{Data(9),Data(10),Data(11)}直接寫入該特定區塊,並且第二次將第三組資料{Data(6),Data(7),Data(8)}直接寫入該特定區塊,以及第三次將第二組資料{Data(3),Data(4),Data(5)}直接寫入該特定區塊,藉此,第二組資料{Data(3),Data(4),Data(5)}中之任一頁資料的每一位元均正確地儲存於該特定區塊以供進一步讀取,其中,在預定次數PDNT_WR等於三的狀況下,第二組資料{Data(3),Data(4),Data(5)}之寫入運作已完成。於是,藉由利用第6圖所示之工作流程300,該複數組資料{Data(0),Data(1),Data(2)}、{Data(3),Data(4),Data(5)}、{Data(6),Data(7),Data(8)}、...中之所有的資料最終均正確地儲存於該特定區塊以供進一步讀取。本實施例與前述實施例/變化例相仿之處不再重複贅述。
第7圖繪示第4圖所示之方法200於另一實施例中所涉及之控制方案,其中第7圖所示之資料Data(0)、Data(1)、Data(2)、Data(3)、Data(4)、Data(5)、Data(6)、Data(7)、Data(8)、...中之每一者可為16KB的大小之資料,且可區分為一組各自為4KB的大小之資料(於第7圖中係分別標示成「4K」,即4KB的大小之意)。本實施例可用於隨機邏輯位址的資料之寫入。這只是為了說明的目的而已,並非對本發明之限制。
依據本實施例,該控制器可利用揮發性記憶體120收集隨機邏輯位址的資料,其中一個隨機寫入運作的資料之大小可為4KB。當收集到的資料之大小達到16KB時,該控制器可將所收集到16KB之資料視為第5
圖所示實施例中之一頁資料(例如:資料Data(0);又例如:其它資料Data(1)、Data(2)、Data(3)、Data(4)、Data(5)、Data(6)、Data(7)、Data(8)、...中之任一者)來進行處理。本實施例與前述實施例/變化例相仿之處不再重複贅述。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧記憶裝置
110‧‧‧處理單元
120‧‧‧揮發性記憶體
130‧‧‧傳輸介面
140_0,140_1,...,140_N‧‧‧非揮發性記憶體元件
150‧‧‧匯流排
Claims (20)
- 一種用來管理一記憶裝置之方法,該記憶裝置包含至少一非揮發性(Non-volatile,NV)記憶體元件,每一非揮發性記憶體元件包含複數個區塊(Block),該方法係應用於該記憶裝置中之一控制器,該控制器係用來控制該至少一非揮發性記憶體元件,該方法包含有下列步驟:將接收自一主裝置(Host Device)之資料暫時地儲存於該控制器中之一揮發性記憶體作為接收資料,並動態地監控該接收資料的資料量以決定是否立即將該接收資料寫入該至少一非揮發性記憶體元件,其中接收自該主裝置之至少一寫入指令指出該主裝置要求寫入該資料;以及當決定立即將該接收資料寫入該至少一非揮發性記憶體元件時,將該接收資料直接寫入該至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件當中被組態成多階細胞(Multiple Level Cell,MLC)記憶區塊之一特定區塊,而非藉由先將該接收資料暫時地寫入被組態成單階細胞(Single Level Cell,SLC)記憶區塊之任何其它區塊來間接地將該接收資料寫入該特定區塊。
- 如申請專利範圍第1項所述之方法,其中在該特定區塊中之一記憶細胞(Memory Cell)被用來儲存複數個位元的狀況下,該複數個位元需被重複地寫入該記憶細胞達一預定次數以使該記憶細胞於該特定非揮發性記憶體元件當中被正確地程式化,以致該複數個位元中之每一位元均正確地儲存於該記憶細胞以供進一步讀取;以及該預定次數大於一。
- 如申請專利範圍第2項所述之方法,其中動態地監控該接收資料的資料量之步驟另包含有: 當該接收資料的資料量達到一預定資料量門檻值時,決定立即將該接收資料寫入該至少一非揮發性記憶體元件;其中該揮發性記憶體的儲存容量大於或等於該預定資料量門檻值和該預定次數之乘積,以容許該接收資料之至少一部分被用於該記憶細胞之重複寫入運作。
- 如申請專利範圍第3項所述之方法,其中該預定資料量門檻值等於該特定非揮發性記憶體元件當中屬於一個字線(Word-Line)之一組記憶細胞的儲存容量。
- 如申請專利範圍第4項所述之方法,其中該複數個區塊中之任一區塊包含一預定數量之多頁;以及該方法另包含:自該主裝置分別接收複數組資料,且將該複數組資料暫時地儲存於該揮發性記憶體,其中該複數組資料中之每一組資料包含複數頁,且該複數組資料中之每一組資料的資料量等於該預定資料量門檻值;以及自該揮發性記憶體分別讀取該複數組資料,以分別將該複數組資料直接寫入該特定區塊,並且多次將該複數組資料中之一第一組資料直接寫入該特定區塊,其中該第一組資料被寫入該特定區塊之次數達到該預定次數以使該特定區塊中屬於一特定字線之一特定組記憶細胞於該特定非揮發性記憶體元件當中被正確地程式化,以致該第一組資料中之每一位元均正確地儲存於該特定組記憶細胞以供進一步讀取。
- 如申請專利範圍第2項所述之方法,其中該複數個區塊中之任一區塊包含一預定數量之多頁;以及該方法另包含: 自該主裝置逐頁地接收包含複數頁之一第一組資料直到該第一組資料的總資料量達到一預定資料量門檻值,且將該第一組資料暫時地儲存於該揮發性記憶體,其中在該第一組資料之該總資料量達到該預定資料量門檻值之前,該第一組資料並未被寫入該特定區塊;以及當該第一組資料之該總資料量達到該預定資料量門檻值時,自該揮發性記憶體讀取該第一組資料之至少一部分,以將該第一組資料直接寫入該特定區塊。
- 如申請專利範圍第6項所述之方法,其另包含:自該主裝置逐頁地接收包含複數頁之一第二組資料直到該第二組資料的總資料量達到該預定資料量門檻值,且將該第二組資料暫時地儲存於該揮發性記憶體,其中在該第二組資料之該總資料量達到該預定資料量門檻值之前,該第二組資料並未被寫入該特定區塊;以及當該第二組資料之該總資料量達到該預定資料量門檻值時,自該揮發性記憶體讀取該第二組資料之至少一部分,以將該第二組資料直接寫入該特定區塊,並且第二次將該第一組資料直接寫入該特定區塊。
- 如申請專利範圍第7項所述之方法,其另包含:自該主裝置逐頁地接收包含複數頁之一第三組資料直到該第三組資料的總資料量達到該預定資料量門檻值,且將該第三組資料暫時地儲存於該揮發性記憶體,其中在該第三組資料之該總資料量達到該預定資料量門檻值之前,該第三組資料並未被寫入該特定區塊;以及 當該第三組資料之該總資料量達到該預定資料量門檻值時,自該揮發性記憶體讀取該第三組資料之至少一部分,以將該第三組資料直接寫入該特定區塊,並且第二次將該第二組資料直接寫入該特定區塊,以及第三次將該第一組資料直接寫入該特定區塊,藉此,該第一組資料中之任一頁資料的每一位元均正確地儲存於該特定區塊以供進一步讀取。
- 如申請專利範圍第1項所述之方法,其另包含有:在決定立即將該接收資料寫入該至少一非揮發性記憶體元件之前,當接收自該主裝置之至少一讀取指令指出該主裝置要求讀取該資料之至少一部分時,自該揮發性記憶體讀取該資料之該至少一部分以供回傳予該主裝置,而非自該特定非揮發性記憶體元件讀取該資料之該至少一部分。
- 如申請專利範圍第1項所述之方法,其另包含有:多次將該接收資料直接寫入該特定區塊,其中在該控制器之控制下,該接收資料被寫入該特定區塊之次數達到一預定次數以使該特定區塊中屬於一特定字線(Word-Line)之一特定組記憶細胞於該特定非揮發性記憶體元件當中被正確地程式化,以致該接收資料中之每一位元均正確地儲存於該特定組記憶細胞以供進一步讀取。
- 一種記憶裝置,包含有:至少一非揮發性(Non-volatile,NV)記憶體元件,每一非揮發性記憶體元件包含複數個區塊(Block);以及一控制器,用來控制該至少一非揮發性記憶體元件,該控制器包含一處理單元,以依據內嵌於該處理單元或接收自該處理單元之外之一 程式碼來管理該記憶裝置,其中該控制器將接收自一主裝置(Host Device)之資料暫時地儲存於該控制器中之一揮發性記憶體作為接收資料,並動態地監控該接收資料的資料量以決定是否立即將該接收資料寫入該至少一非揮發性記憶體元件,其中接收自該主裝置之至少一寫入指令指出該主裝置要求寫入該資料;其中當決定立即將該接收資料寫入該至少一非揮發性記憶體元件時,該控制器將該接收資料直接寫入該至少一非揮發性記憶體元件中之一特定非揮發性記憶體元件當中被組態成多階細胞(Multiple Level Cell,MLC)記憶區塊之一特定區塊,而非藉由先將該接收資料暫時地寫入被組態成單階細胞(Single Level Cell,SLC)記憶區塊之任何其它區塊來間接地將該接收資料寫入該特定區塊。
- 如申請專利範圍第11項所述之記憶裝置,其中在該特定區塊中之一記憶細胞(Memory Cell)被用來儲存複數個位元的狀況下,該複數個位元需被重複地寫入該記憶細胞達一預定次數以使該記憶細胞於該特定非揮發性記憶體元件當中被正確地程式化,以致該複數個位元中之每一位元均正確地儲存於該記憶細胞以供進一步讀取;以及該預定次數大於一。
- 如申請專利範圍第12項所述之記憶裝置,其中當該接收資料的資料量達到一預定資料量門檻值時,該控制器決定立即將該接收資料寫入該至少一非揮發性記憶體元件;以及該揮發性記憶體的儲存容量大於或等於該預定資料量門檻值和該預定次數之乘積,以容許該接收資料之至少一部分被用於該記憶細胞之重複寫入運作。
- 如申請專利範圍第13項所述之記憶裝置,其中該預定資料量門檻值等 於該特定非揮發性記憶體元件當中屬於一個字線(Word-Line)之一組記憶細胞的儲存容量。
- 如申請專利範圍第14項所述之記憶裝置,其中該複數個區塊中之任一區塊包含一預定數量之多頁;該控制器自該主裝置分別接收複數組資料,且將該複數組資料暫時地儲存於該揮發性記憶體,其中該複數組資料中之每一組資料包含複數頁,且該複數組資料中之每一組資料的資料量等於該預定資料量門檻值;以及該控制器自該揮發性記憶體分別讀取該複數組資料,以分別將該複數組資料直接寫入該特定區塊,並且多次將該複數組資料中之一第一組資料直接寫入該特定區塊,其中該第一組資料被寫入該特定區塊之次數達到該預定次數以使該特定區塊中屬於一特定字線之一特定組記憶細胞於該特定非揮發性記憶體元件當中被正確地程式化,以致該第一組資料中之每一位元均正確地儲存於該特定組記憶細胞以供進一步讀取。
- 一種記憶裝置之控制器,該記憶裝置包含至少一非揮發性(Non-volatile,NV)記憶體元件,每一非揮發性記憶體元件包含複數個區塊(Block),該控制器包含有:一處理單元,用來依據內嵌於該處理單元或接收自該處理單元之外之一程式碼來管理該記憶裝置,其中該控制器將接收自一主裝置(Host Device)之資料暫時地儲存於該控制器中之一揮發性記憶體作為接收資料,並動態地監控該接收資料的資料量以決定是否立即將該接收資料寫入該至少一非揮發性記憶體元件,其中接收自該主裝置之至少一寫入指令指出該主裝置要求寫入該資料;其中當決定立即將該接收資料寫入該至少一非揮發性記憶體元件時,該控制器將該接收資料直接寫入該至少一非揮發性記憶體元件中之一特 定非揮發性記憶體元件當中被組態成多階細胞(Multiple Level Cell,MLC)記憶區塊之一特定區塊,而非藉由先將該接收資料暫時地寫入被組態成單階細胞(Single Level Cell,SLC)記憶區塊之任何其它區塊來間接地將該接收資料寫入該特定區塊。
- 如申請專利範圍第16項所述之控制器,其中在該特定區塊中之一記憶細胞(Memory Cell)被用來儲存複數個位元的狀況下,該複數個位元需被重複地寫入該記憶細胞達一預定次數以使該記憶細胞於該特定非揮發性記憶體元件當中被正確地程式化,以致該複數個位元中之每一位元均正確地儲存於該記憶細胞以供進一步讀取;以及該預定次數大於一。
- 如申請專利範圍第17項所述之控制器,其中當該接收資料的資料量達到一預定資料量門檻值時,該控制器決定立即將該接收資料寫入該至少一非揮發性記憶體元件;以及該揮發性記憶體的儲存容量大於或等於該預定資料量門檻值和該預定次數之乘積,以容許該接收資料之至少一部分被用於該記憶細胞之重複寫入運作。
- 如申請專利範圍第18項所述之控制器,其中該預定資料量門檻值等於該特定非揮發性記憶體元件當中屬於一個字線(Word-Line)之一組記憶細胞的儲存容量。
- 如申請專利範圍第19項所述之控制器,其中該複數個區塊中之任一區塊包含一預定數量之多頁;該控制器自該主裝置分別接收複數組資料,且將該複數組資料暫時地儲存於該揮發性記憶體,其中該複數組資料中之每一組資料包含複數頁,且該複數組資料中之每一組資料的資料量等 於該預定資料量門檻值;以及該控制器自該揮發性記憶體分別讀取該複數組資料,以分別將該複數組資料直接寫入該特定區塊,並且多次將該複數組資料中之一第一組資料直接寫入該特定區塊,其中該第一組資料被寫入該特定區塊之次數達到該預定次數以使該特定區塊中屬於一特定字線之一特定組記憶細胞於該特定非揮發性記憶體元件當中被正確地程式化,以致該第一組資料中之每一位元均正確地儲存於該特定組記憶細胞以供進一步讀取。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710518261.6A CN107423231B (zh) | 2013-08-05 | 2014-06-18 | 用来管理一记忆装置的方法以及记忆装置与控制器 |
CN201410272738.3A CN104346288B (zh) | 2013-08-05 | 2014-06-18 | 用来管理一记忆装置的方法以及记忆装置与控制器 |
CN201710380118.5A CN107391389B (zh) | 2013-08-05 | 2014-06-18 | 用来管理一记忆装置的方法以及记忆装置与控制器 |
US14/334,684 US9514042B2 (en) | 2013-08-05 | 2014-07-18 | Method for managing memory apparatus to perform writing control according to monitored data amount of received data, associated memory apparatus thereof and associated controller thereof |
KR1020140100426A KR101561546B1 (ko) | 2013-08-05 | 2014-08-05 | 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361862094P | 2013-08-05 | 2013-08-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201506932A true TW201506932A (zh) | 2015-02-16 |
TWI523016B TWI523016B (zh) | 2016-02-21 |
Family
ID=53019466
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102144911A TWI502591B (zh) | 2013-08-05 | 2013-12-06 | 用來管理一記憶裝置之方法以及記憶裝置與控制器 |
TW102144913A TWI523016B (zh) | 2013-08-05 | 2013-12-06 | 用來管理一記憶裝置之方法以及記憶裝置與控制器 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102144911A TWI502591B (zh) | 2013-08-05 | 2013-12-06 | 用來管理一記憶裝置之方法以及記憶裝置與控制器 |
Country Status (1)
Country | Link |
---|---|
TW (2) | TWI502591B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210255783A1 (en) * | 2020-02-19 | 2021-08-19 | Silicon Motion, Inc. | Method and apparatus for performing data storage management to enhance data reliability with aid of repeated write command detection |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452912B2 (en) * | 2007-10-11 | 2013-05-28 | Super Talent Electronics, Inc. | Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read |
KR101548175B1 (ko) * | 2008-11-05 | 2015-08-28 | 삼성전자주식회사 | 싱글 레벨 메모리 셀 블락과 멀티 레벨 메모리 셀 블락을 포함하는 불휘발성 메모리 장치의 마모 레벨링 방법 |
US8244960B2 (en) * | 2009-01-05 | 2012-08-14 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partition management methods |
US8040744B2 (en) * | 2009-01-05 | 2011-10-18 | Sandisk Technologies Inc. | Spare block management of non-volatile memories |
US20110041005A1 (en) * | 2009-08-11 | 2011-02-17 | Selinger Robert D | Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System |
US8886990B2 (en) * | 2011-01-27 | 2014-11-11 | Apple Inc. | Block management schemes in hybrid SLC/MLC memory |
US8537613B2 (en) * | 2011-03-31 | 2013-09-17 | Sandisk Technologies Inc. | Multi-layer memory system |
US9176862B2 (en) * | 2011-12-29 | 2015-11-03 | Sandisk Technologies Inc. | SLC-MLC wear balancing |
-
2013
- 2013-12-06 TW TW102144911A patent/TWI502591B/zh active
- 2013-12-06 TW TW102144913A patent/TWI523016B/zh active
Also Published As
Publication number | Publication date |
---|---|
TW201506931A (zh) | 2015-02-16 |
TWI523016B (zh) | 2016-02-21 |
TWI502591B (zh) | 2015-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9058900B2 (en) | System, semiconductor memory device and operating method thereof | |
TWI566253B (zh) | 用來管理一記憶裝置之方法以及記憶裝置與控制器 | |
CN107423231B (zh) | 用来管理一记忆装置的方法以及记忆装置与控制器 | |
CN107741913B (zh) | 用来管理一记忆装置的方法、记忆装置与控制器 | |
US10853236B2 (en) | Storage device and method for operating the same | |
CN111158579B (zh) | 固态硬盘及其数据存取的方法 | |
TWI782644B (zh) | 用來進行資料儲存管理以提升資料可靠度之方法、記憶裝置及其控制器以及電子裝置 | |
TW202028988A (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
US20220269616A1 (en) | Electronic system including memory system and host | |
TWI734063B (zh) | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 | |
US9728264B2 (en) | Nonvolatile memory device, operating method thereof, and data storage device including the same | |
KR20170109344A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
TWI523016B (zh) | 用來管理一記憶裝置之方法以及記憶裝置與控制器 | |
KR102716788B1 (ko) | 메모리 시스템, 메모리 장치 및 메모리 컨트롤러 | |
US8713242B2 (en) | Control method and allocation structure for flash memory device | |
TWI837829B (zh) | 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置 | |
US11249676B2 (en) | Electronic device, flash memory controller and associated control method | |
US20240319897A1 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
CN118672938A (zh) | 快闪存储器控制器的控制方法、快闪存储器控制器以及储存装置 | |
CN117762820A (zh) | 存取快闪存储器模块的方法与相关的快闪存储器控制器及记忆装置 | |
TW202046120A (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |