TW202544816A - 用於提升四階儲存單元快閃記憶體之效能與壽命的控制快閃記憶體的方法與相關記憶體控制器 - Google Patents
用於提升四階儲存單元快閃記憶體之效能與壽命的控制快閃記憶體的方法與相關記憶體控制器Info
- Publication number
- TW202544816A TW202544816A TW113140051A TW113140051A TW202544816A TW 202544816 A TW202544816 A TW 202544816A TW 113140051 A TW113140051 A TW 113140051A TW 113140051 A TW113140051 A TW 113140051A TW 202544816 A TW202544816 A TW 202544816A
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- flash memory
- region
- memory
- target block
- Prior art date
Links
Abstract
一種控制一快閃記憶體的方法,包含:響應於一個或多個主機寫入命令,以一次性編程方式,在一特定寫入模式中,將與該一個或多個主機寫入命令相關聯的主機資料寫入至該快閃記憶體的一區域內的一目標區塊中;對該目標區塊執行一區塊可靠性檢查,以產生一區塊可靠性指示;根據該區塊可靠性指示,選擇一直接轉換模式與一基於垃圾回收操作的轉換模式中的一者;以及根據所選擇的轉換模式對該目標區塊執行儲存單元階級重配置。
Description
本發明關於快閃記憶體,尤其關於用於提高四階儲存單元(quad-level cell,QLC)快閃記憶體之性能和耐用性的控制方法,以及相關的記憶體控制器和資料儲存裝置。
四階儲存單元(Quadruple-Level Cell,QLC)快閃記憶體是一項先進的儲存技術,主要優勢在於大幅提高儲存密度。每個QLC記憶體單元可以儲存4位元組的資訊,這意味著相較於單階儲存單元(Single-Level Cell,SLC)、多階儲存單元(Multi-level Cell,MLC)和三階儲存單元(Triple-level Cell,TLC)技術,QLC技術可以在相同的物理空間內儲存更多資訊。這種更高的儲存密度使QLC快閃記憶體成為一種高度經濟實惠的儲存解決方案,特別適合大型資料儲存應用和企業級應用。然而,由於每個QLC記憶體單元具有16種可能的電荷狀態(對應於4位元),無形中提高了識別難度,進而導致在寫入和讀取過程中錯誤發生率的增加。與其他技術相比,QLC快閃記憶體的讀寫速度較慢,讀寫錯誤率也相對較高。顯然,QLC快閃記憶體需要更先進的寫入管理機制來克服其固有的缺陷。
基於上述背景,本發明的目的在於提供用於QLC快閃記憶體的區塊管理和配置機制。在本發明的實施例中,提供了一種控制快閃記憶體的方法。該方法可針對快閃記憶體的TLC區塊進行儲存單元階級重配置(cell level reconfiguration),並根據TLC區塊的區塊可靠性檢查結果,選擇性地執行直接轉換,進而重新配置與寫入TLC區塊,使其轉換為QLC區塊。這種方法在保證儲存可靠性的同時,還維持了QLC快閃記憶體的寫入性能。在本發明的實施例中,還提供了一種決定QLC快閃記憶體之控制策略的方法。此方法根據QLC快閃記憶體的耗損狀態,選擇性能導向策略或壽命導向策略中的一者,在顧及設備壽命的同時,也維持了QLC快閃記憶體的寫入性能。
本發明的實施例提供一種控制一快閃記憶體的方法,該方法包含:響應於一個或多個主機寫入命令,以一次性編程方式,在一特定寫入模式中,將與該一個或多個主機寫入命令相關聯的主機資料寫入至該快閃記憶體的一區域內的一目標區塊中;對該目標區塊執行一區塊可靠性檢查,以產生一區塊可靠性指示;根據該區塊可靠性指示,選擇一直接轉換模式與一基於垃圾回收操作的轉換模式中的一者;以及根據所選擇的轉換模式對該目標區塊執行儲存單元階級重配置。
本發明的實施例提供一種用於一快閃記憶體內的一記憶體控制器。該記憶體控制器包含:一儲存單元與一處理單元。該儲存單元用於儲存一程式碼。該處理單元用於執行該程式碼,以對該快閃記憶體執行以下操作:響應於一個或多個主機寫入命令,以一次性編程方式,在一特定寫入模式中,將與該一個或多個主機寫入命令相關聯的主機資料寫入至該快閃記憶體的一區域內的一目標區塊中;對該目標區塊執行一區塊可靠性檢查,以產生一區塊可靠性指示;根據該區塊可靠性指示,選擇一直接轉換模式與一基於垃圾回收操作的轉換模式中的一者;以及根據所選擇的轉換模式對該目標區塊執行儲存單元階級重配置。
本發明的實施例提供一種控制一快閃記憶體的方法。該方法包含:選擇一第一策略來配置該快閃記憶體,並且根據該第一策略來控制該快閃記憶體;決定相關於該快閃記憶體的一耗損狀態指示值是否超過一預定臨界值;以及若該耗損狀態指示值超過該預定臨界值,則選擇一第二策略來配置該快閃記憶體,並且根據該第二策略來控制該快閃記憶體。進一步來說,在該第一策略中,一旦該快閃記憶體的一特定區域內的區塊的一可用數量低於一下限時,不會立即執行一垃圾回收操作。該第二策略中,一旦該快閃記憶體的該特定區域內的區塊的該可用數量低於該下限,將立即執行該垃圾回收操作。
本發明的實施例提供一種用於一快閃記憶體內的一記憶體控制器。該記憶體控制器包含:一儲存單元與一處理單元。該儲存單元用於儲存一程式碼。該處理單元用於執行該程式碼,以對該快閃記憶體執行以下操作:選擇一第一策略來配置該快閃記憶體,並且根據該第一策略來控制該快閃記憶體;決定相關於該快閃記憶體的一耗損狀態指示值是否超過一預定臨界值;以及若該耗損狀態指示值超過該預定臨界值,則選擇一第二策略來配置該快閃記憶體,並且根據該第二策略來控制該快閃記憶體。其中,在該第一策略中,一旦該快閃記憶體的一特定區域內的區塊的一可用數量低於一下限時,不會立即執行一垃圾回收操作。在該第二策略中,一旦該快閃記憶體的該特定區域內的區塊的該可用數量低於該下限,將立即執行該垃圾回收操作。
在以下內文中,描述了許多具體細節以提供閱讀者對本發明實施例的透徹理解。然而,本領域的技術人士將能理解,如何在缺少一個或多個具體細節的情況下,或者利用其他方法或元件或材料等來實現本發明。在其他情況下,眾所皆知的結構、材料或操作不會被示出或詳細描述,從而避免模糊本發明的核心概念。另外,除非另有說明,否則附圖和書面說明中類似的參考符號將用於表示類似的元件,不會重複描述。並且,為了清晰起見,附圖中,特定元件的尺寸和彼此之間的相對比例並不一定符合其物理尺寸或相對比例。
說明書中所出現的「一實施例」或「一種實施例」的表述實質上是意味著,與所描述的實施例或範例相關的特定特徵、結構或特性包含在至少一個實施例中。因此,在本說明書的不同位置處出現的「一實施例」或「一種實施例」的表述不一定都是指向同一個實施例。此外,前述的特定特徵、結構或特性可以以任何合適的形式在一個或多個實施例中結合。
第1圖為本發明實施例的電子裝置與資料儲存設備的架構圖。其中,電子裝置10包括主機裝置50和資料儲存設備100。主機裝置50可以包含:至少一個用於控制主機裝置50的處理器52,以及一個隨機存取記憶體(Random Access Memory)54,用於儲存處理器52需要的資料和資訊。主機裝置50的範例包含但不限定於:智慧型手機、平板電腦、可穿戴設備、個人電腦(例如,桌面型電腦和筆記型電腦)、影像設備(例如,數位相機或攝影機)、遊戲主機、汽車導航系統、印表機、掃描器或伺服器系統。資料儲存設備100的範例包括但不限定於:可攜式儲存裝置(例如,符合SD/MMC、CF、MS、XD或UFS規範的記憶卡)、固態硬碟(Solid State Drive,SSD)和各種嵌入式儲存裝置(例如符合UFS或EMMC規範的嵌入式儲存裝置)。
在本發明的各種實施例中,資料儲存設備100可以包括一控制器(例如,記憶體控制器110),並且還可以包括一非揮發性(Non-volatile,NV)記憶體120。NV記憶體120被用於儲存資訊。NV記憶體120可以包含一個或多個NV記憶體元件,例如,複數個NV記憶體元件122_1~122_N。NV記憶體120可能是快閃記憶體,而NV記憶體元件122_1~122_N分別可以是複數個快閃記憶體晶片(chip)或複數個快閃記憶體裸晶(die),但本發明不限於此。此外,NV記憶體120可以包括具有二維結構的記憶體單元(memory cells),也可以包括具有三維結構的記憶體單元。
如第1圖所示,記憶體控制器110可以包括一處理單元112、一唯獨記憶體(Read-Only Memory,ROM) 112M、一內部記憶體113、一控制邏輯電路114、和一傳輸介面電路118、一錯誤校正編碼(Error correction coding,ECC)處理電路130。這些電路元件中的至少一部分可以通過匯流排互相耦合與溝通。內部記憶體113可由一個或多個記憶體裝置來實現。例如,內部記憶體113可以是靜態RAM(Static SRAM,SRAM)以及/或者是動態RAM(Dynamic RAM,DRAM)。內部記憶體113可用來為記憶體控制器110提供內部儲存空間,例如,暫存:變數/參數、資料、命令、位址以及/或位址映射表等資訊。在某些實施例中,記憶體控制器110可能不具有內部記憶體113,並且依賴主機記憶體緩衝(Host Memory Buffer,HMB)技術。通過使用HMB技術,記憶體控制器110可以利用主機裝置50的RAM 54(如:DRAM)來做為內部記憶體113的一部份或延伸,或者是利用RAM 54作為內部記憶體113的替代方案,從而提高資料儲存設備100的讀寫性能。
此外, ROM 112M中的程式碼112C(;或者,程式碼112C可儲存於記憶體控制器110的一非揮發性記憶體內(未示出)),可被微處理器112讀取且執行,進而實現對NV記憶體120的存取控制。程式碼112C可包括一或多個程式模組,例如啟動載入(boot loader)程式碼。當資料儲存設備100自主機裝置50取得電源時,處理單元112可藉由執行程式碼112C,啟動資料儲存裝置100之一初始化程序。於初始化程序中,微處理器112可自NV記憶體120載入一組系統內編程(In-System Programming,縮寫為ISP)程式碼(未示於第1圖)。微處理器112可執行該組系統內編程程式碼,使得資料儲存設備100可具備執行各種功能的能力。在本發明一實施例中,該組系統內編程程式碼可包括,但不限於:一或多個與記憶體存取(例如,讀取、寫入與抹除)相關的程式模組(例如,一讀取操作模組)、一查找表格模組、一耗損均衡(wear leveling)模組、一讀取刷新(read refresh) 模組、一讀取回收(read reclaim)模組、一垃圾回收模組、一非預期斷電恢復(Sudden Power Off Recovery,SPOR)模組,分別被提供用以執行對應之讀取、查找表格、耗損均衡、讀取刷新、讀取回收、垃圾回收以及非預期斷電恢復處理等操作。
記憶體控制器110通過控制邏輯電路114控制NV記憶體120的讀取(Read)、寫入(Write)和抹除(Erase)。此外,記憶體控制器110可以同時執行:基於主機裝置50的主機命令(Host Command)所執行的使用者資料寫入,以及基於垃圾回收操作以及/或損耗均衡操作,讀取自NV記憶體120的有效資料的寫入。傳輸接口電路118可能符合特定的通訊規範(例如,通用序列匯流排(Universal Serial Bus,USB)標準、SD介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、CompactFlash (CF)介面標準、多媒體記憶卡(Multimedia Card,MMC)介面標準、eMMC介面標準、通用快閃記憶體儲存(Universal Flash Storage,UFS)介面標準、高技術組態(Advanced Technology Attachment,ATA)標準、序列高技術組態(Serial ATA,SATA)標準、快捷外設互聯標準(Peripheral Component Interconnect Express,PCI-E)標準、並列先進附件(Parallel Advanced Technology Attachment,PATA)標準等),並可以根據特定的通訊規範與主機裝置50進行通訊。
通常來說,主機裝置50可能透過將主機命令和相應的邏輯位址傳輸到記憶體控制器110來間接地存取NV記憶體120。記憶體控制器110接收到主機命令和邏輯位址後,將邏輯位址轉譯成實體位址,並且將主機命令轉譯為記憶體操作命令(Memory Operation Command),進一步透過記憶體操作命令控制NV記憶體120,以對具有實體位址的記憶體單元或資料頁(Page)執行讀取(read)、編程(program)或抹除(erase)操作。其中,NV記憶體120包含有一個或多個頁緩存器121(可透過SRAM來實現),以及一個或多個控制電路123。記憶體控制器110所欲寫入至NV記憶體120的資料,將先被寫入至頁緩存器121,而後被寫入NV記憶體120的記憶體單元。一個或多個控制電路123則根據記憶體控制器110所發送的記憶體操作命令來讀取、編程或抹除資料。當記憶體控制器110對複數個NV記憶體元件122_1~122_N中的任何一個NV記憶體元件122_k執行抹除操作時,NV記憶體元件122_k中的至少一個區塊(Block)可作為抹除操作的執行標的。此外,NV記憶體元件122_k的每個區塊可以包含多個頁(Page),而一個或多個頁可以做為讀取或寫入操作的執行標的。
在一實施例中,NV記憶體元件122_1~122_N中的每一個可能是一個NV記憶體裸晶或晶片。每個NV記憶體裸晶122_1~122_N上都有控制電路,用於執行由記憶體控制器110發出的記憶體操作命令(memory operation commands)。此外,每個NV記憶體裸晶122_1~122_N都可能包含多個平面(Plane)。每個平面具有多個由記憶體單元所組成的區塊,以及相關的列與行控制電路。每個平面中的記憶體單元可能以2維或3維記憶體結構排列。並且,透過多平面操作(Multi-plane operation)命令,可以同時對不同的平面執行各種處理操作,例如,多個記憶體操作可以平行地(同時)在不同平面內的記憶體區塊上進行,以進行多平面(例如:讀取、寫入、抹除)操作。另外,在一實施例中,記憶體控制器110可以將NV記憶體120的區塊組合為多個超級區塊(Super Block)。在一實施例中,超級區塊的組成可以橫跨NV記憶體晶片122_1~122_N。並且,超級區塊可以作為每個NV記憶體晶片122_1~122_N的一個或多個儲存區塊。
在本發明一實施例中,由複數個邏輯至實體(Logical-to-Physical,L2P)位址映射項目(entries)所組成的L2P位址映射表,可能被分割為多個映射群組(mapping groups),每個映射群組包括L2P位址映射表的一部分的位址映射項目,以執行邏輯至實體位址轉換。這些映射群組被永久地儲存在NV記憶體120的區塊中,並且在需要時被載入至內部記憶體113。相仿地,由複數個實體至邏輯(Physical-to-logical,P2L)位址映射項目所組成的P2L位址映射表,可能被分割為多個映射群組,每個映射群組包括P2L位址映射表的一部分位址映射項目,以執行實體到邏輯位址轉換。這些映射群組被永久地儲存在NV記憶體120的區塊中,並在需要時被載入至內部記憶體113。
在本發明實施例中,記憶體控制器110能夠支援多種寫入模式。在記憶體控制器110支援的單階儲存單元(SLC)寫入模式中,每個記憶體單元可寫入1位元的資料。在記憶體控制器110支援的多階儲存單元(MLC)寫入模式中,每個記憶體單元可寫入2位元的資料。在記憶體控制器110支援的三階儲存單元(TLC)寫入模式中,每個記憶體單元可寫入3位元的資料。在記憶體控制器110支援的四階儲存單元(QLC)寫入模式中,每個記憶體單元可寫入4位元的資料。據此,記憶體控制器110將選擇其所支援的一種寫入模式來對NV記憶體120執行寫入操作。
每個NV記憶體元件122_1~122_N可以是每個記憶體單元用於儲存一個或多個位元的快閃記憶體。例如,每個記憶體單元儲存1位元資料的SLC快閃記憶體、每個記憶體單元儲存2位元資料的MLC快閃記憶體、每個記憶體單元儲存3位元資料的TLC快閃記憶體、以及每個記憶體單元儲存4位元資料的QLC快閃記憶體。每個NV記憶體元件122_1~122_N內的每個頁包含連接到一條字線(word line)的記憶體單元,以作為資料寫入/讀取操作的單位。另外,字線也可作為資料寫入/讀取操作的單位。
在一實施例中,NV記憶體120可被配置為MLC快閃記憶體,使每個記憶體單元儲存2位元。在通常運用上,將2筆頁資料(即,低頁資料(lower page data)和高頁資料(upper page data))寫入連接到單條字線的記憶體單元,從而使每個記憶體單元能夠儲存2位元。然而,MLC快閃記憶體120中的任何區域(例如,一個或多個區塊)都可以選擇性地指定為特定區域,該區域可被配置為每個記憶體單元僅儲存1位元,以提高性能。這種靈活性能在MLC快閃記憶體120內創建SLC區域(即,SLC快取(cache))。如此一來,記憶體控制器110可在SLC寫入模式下執行寫入操作,將資料編程至SLC區域,使得單一筆頁資料被寫入至連接到單條字線的記憶體單元。簡言之,在MLC快閃記憶體120內的SLC區域內,每個區塊都作為SLC區塊;在此之外的區塊,則作為MLC區塊使用。
在一實施例中,NV記憶體120可被配置為TLC快閃記憶體,使每個記憶體單元儲存3個位元。在通常運用上,將3筆頁資料(即,低頁資料(lower page data)、中頁資料(middle page data)和高頁資料(upper page data))寫入連接到單條字線的記憶體單元,從而使每個記憶體單元能夠儲存3位元。然而,TLC快閃記憶體120的任何區域(例如,一個或多個區塊)都可以選擇性地配置為SLC區域(每個記憶體單元儲存1位元),以及/或配置為每個記憶體單元儲存2位元的MLC區域,以提高性能。這種靈活性能夠在TLC快閃記憶體120內創建SLC區域(即,SLC快取)以及/或MLC區域。如此一來,記憶體控制器110可在SLC寫入模式下執行寫入操作,將資料編程至SLC區域,使得單一筆頁資料被寫入至連接到單條字線的記憶體單元。又或者是,記憶體控制器110可在MLC寫入模式下執行寫入操作,將資料編程到MLC區域,使兩筆頁資料被寫入連接到單條字線的記憶體單元。因此,在TLC快閃記憶體120內的SLC區域內,每個區塊都作為SLC區塊,而在其MLC區域內,每個區塊都作為MLC區塊;在此之外的區塊,則作為TLC區塊使用。
在一實施例中,非揮發性記憶體120可以配置為QLC快閃記憶體,使每個記憶體單元儲存4個位元。在通常運用上,將4筆頁資料(即,低頁資料(lower page data)、中頁資料(middle page data)、高頁資料(upper page data)和頂頁資料(top page data))寫入連接到單條字線的記憶體單元,從而使每個記憶體單元能夠儲存4位元。然而,QLC快閃記憶體120的任何區域(例如,一個或多個區塊)都可以選擇性地配置為SLC區域(每個記憶體單元儲存1位元)、MLC區域(每個記憶體單元儲存2位元)以及/或配置為每個記憶體單元儲存3位元的TLC區域,以提高性能。這種靈活性能在QLC快閃記憶體120內創建SLC區域(即,SLC快取)、MLC區域以及/或TLC區域。如此一來,記憶體控制器110可在SLC寫入模式下執行寫入操作,將資料編程至SLC區域,使得單一筆頁資料被寫入至連接到單條字線的記憶體單元。又或者是,記憶體控制器110可在MLC寫入模式下執行寫入操作,將資料編程到MLC區域,使兩筆頁資料被寫入連接到單條字線的記憶體單元。還可以是,記憶體控制器110可在TLC寫入模式下執行寫入操作,將資料編程到TLC區域,使三筆頁資料被寫入連接到單條字線的記憶體單元。因此,在QLC快閃記憶體120內的SLC區域內,每個區塊都作為SLC區塊,在其MLC區域內,每個區塊都作為MLC區塊,以及在其TLC區域內,每個區塊都作為TLC區塊;在此之外的區塊,則作為QLC區塊使用。
在一實施例中,如果NV記憶體120的一個目標區塊被寫滿資料(例如,被寫入與主機寫入命令相關聯的主機資料),則記憶體控制器110可對該目標區塊執行儲存單元階級重配置。其中,目標區塊可以是QLC快閃記憶體120的TLC區域內的TLC區塊。進一步來說,在一個編程週期(program cycle)內,資料係以一次性編程方式(one-shot programming)寫入TLC區塊。而在對目標區塊執行儲存單元階級重配置之前,需要進行區塊可靠性檢查,以決定如何執行儲存單元階級重配置。
請參閱第2圖,該圖繪示在本發明實施例中,對一目標區塊執行區塊可靠性檢查的流程圖。在步驟S101中,決定資料寫入該目標區塊時的一寫入溫度是否在一預定溫度範圍內。如果是,則流程進入步驟S102。否則,流程結束,且產生指出該目標區塊的可靠性較弱的區塊可靠性指示。在一實施例中,該預定溫度範圍約為20°C至60°C。也就是說,如果資料寫入該目標區塊時的寫入溫度低於20°C或者高於60°C,則認定該目標區塊的可靠性較弱。
在步驟S102中,判斷該目標區塊內的資料被讀取的讀取次數(read count)是否超過一預定讀取次數臨界值TH1。若否,流程進入步驟S103。若是,則流程結束,且產生指出該目標區塊的可靠性較弱的該區塊可靠性指示。在一實施例中,預定讀取次數臨界值TH1可能低於NV記憶體120的區塊所能接受(承受)的一通常讀取次數臨界值。通常來說,當NV記憶體120的某個區塊的讀取次數超過該通常讀取次數臨界值時,記憶體控制器110透過將該區塊的資料,移動到一個新的或空白的區塊(可透過垃圾回收操作來實現),從而對該區塊執行更新(refresh)操作,避免該區塊內資料的潛在讀取干擾(read disturbance)風險。然而,本發明用於區塊可靠性檢查的預定讀取次數臨界值TH1將低於該通常讀取次數臨界值,以實現更高的可靠性要求。在一實施例中,預定讀取次數臨界值TH1可以是該通常讀取次數臨界值的一半。
在步驟S103中,判斷自從該目標區塊被抹除或被寫入資料起,所經過的時間(即,區塊生命週期(block lifetime))是否超過一預定區塊生命週期臨界值TH2。若否,則流程進入步驟S104;若是,則流程結束,且產生指出該目標區塊的可靠性較弱的該區塊可靠性指示。在一實施例中,預定區塊生命期臨界值TH2可能低於NV記憶體120的區塊所能接受(承受)的一通常區塊生命週期臨界值。通常來說,若NV記憶體120的某個區塊自從被寫入資料直到被抹除之前的生命週期,超過該通常區塊生命週期臨界值時,記憶體控制器110透過將該區塊的資料移動到一個新的/空白的區塊(可透過垃圾回收操作實現),從而對該區塊進行更新操作,而改善資料保留(data retention)。然而,本發明用於進行區塊可靠性檢查的預定區塊生命週期臨界值TH2將低於該通常區塊生命週期臨界值,以實現更高的可靠性要求。在一實施例中,預定區塊生命週期臨界值TH2可以是該通常區塊生命週期臨界值的一半。
在步驟S104中,判斷在讀取該目標區塊內的資料時,ECC處理電路130是否啟動軟解碼操作(soft decoding)。若否,則流程進入步驟S105;若是,則流程結束,且產生指出該目標區塊的可靠性較弱的該區塊可靠性指示。進一步來說,如果在讀取該目標區塊內的資料時,ECC處理電路130曾啟動軟解碼操作,這意味著該目標區塊存在資料損毀的潛在風險。
在步驟S105中,判斷在讀取該目標區塊內的資料時的讀取重試操作(read retry)所進行的次數,是否超過一預定讀取重試次數臨界值TH3。若否,則流程進入步驟S106;若是,則流程結束,且產生指出該目標區塊的可靠性較弱的該區塊可靠性指示。在一實施例中,預定讀取重試次數臨界值TH3可能低於NV記憶體120的區塊所能接受(承受)的一通常讀取重試次數臨界值。通常來說,當NV記憶體120的某個區塊的讀取重試次數超過該通常讀取重試次數臨界值時,記憶體控制器110透過將該區塊的資料移動到一個新的/空白的區塊(可透過垃圾回收操作實現),從而對該區塊執行一更新/移動操作,保證該區塊的資料完整性。然而,本發明用於區塊可靠性檢查的預定讀取重試次數臨界值TH3將低於該通常讀取重試次數臨界值,以實現更高的可靠性要求。在一實施例中,預定讀取重試次數臨界值TH3可以是該通常讀取重試次數臨界值的一半。在步驟S106中,產生指出該目標區塊的可靠性較強的該區塊可靠性指示。應當注意的是,儘管以上流程中透過步驟S101~S105來判斷區塊可靠性。然而,在本發明的部分實施例中,部分流程可以被忽略,不需要完全執行所有的步驟,便能作出區塊可靠性的判斷。
一旦根據第2圖所示的流程產生了該區塊可靠性指示,記憶體控制器110將選擇直接轉換(direct conversion)模式,或者是基於垃圾回收操作的轉換(garbage-collection-based conversion)模式中的一種,對該目標區塊執行儲存單元階級重配置。如果該區塊可靠性指示表明該目標區塊的可靠性較差,則記憶體控制器110將選擇基於垃圾回收操作的轉換模式,來進行該目標區塊的儲存單元階級重配置。另一方面,如果該區塊可靠性指示表明該目標區塊的可靠性較強,則記憶體控制器110將選擇直接轉換模式,來進行該目標區塊的儲存單元階級重配置。
請參閱第3圖以進一步理解。第3圖繪了儲存有頁資料(page data)D_1~D_12的一目標區塊,該目標區塊為TLC區塊。其中,頁資料D_1~D_12可以透過TLC寫入模式中的一次性編程方式(one-shot programming),寫入至該目標區塊。在後續的儲存單元階級重配置中,若選擇了基於垃圾回收的轉換模式,記憶體控制器110將啟動垃圾回收操作,從該目標區塊讀取頁資料D_1、D_2和D_3(即,低頁資料(LP)、中頁資料(MP)和高頁資料(UP)(可能對應於同一字線)),以及從NV記憶體120中不同於該目標區塊的一來源區塊內,讀取出有效的頁資料D_N。接著,記憶體控制器110將透過兩次性編程(two-pass programming)將頁資料D_1、D_2、D_3和D_N編程至NV記憶體120中不同於該目標區塊的一個目的區塊(即,垃圾回收操作的目的地)。即,在兩次編程遍(two programming pass)將頁資料D_1、D_2、D_3和D_N編程至該目的區塊。最後,該目的區塊將被配置為儲存頁資料D_1、D_2、D_3和D_N(即,低頁資料(LP)、中頁資料(MP)、高頁資料(UP)和頂頁資料(TP))的QLC區塊。上述的過程也被稱為基於垃圾回收操作的TLC至QLC轉換。
另一方面,如果選擇了直接轉換模式,記憶體控制器110將從該目標區塊(即,TLC區塊)內讀取頁資料D_1、D_2和D_3(即,低頁資料 (LP)、中頁資料(MP)和高頁資料(UP)(可能對應於同一字線)),並且從NV記憶體120中不同於該目標區塊的一個來源區塊內,讀取有效頁資料D_N。據此,記憶體控制器110將透過一次編程(one-pass programming)(即,一次編程遍(one programming pass)),將頁資料D_1、D_2、D_3和D_N,寫回該目標區塊。這這樣的操作之所以可行,是因為在將該目標區塊配置為TLC區塊時,已對該目標區塊執行了第一次編程遍(first programming pass))。換句話說,該目標區塊透過第一次一次編程遍(first programming pass)寫入了資料頁資料D_1、D_2、D_3,而透過第二次一次編程遍(second programming pass),將頁資料D_N寫入。之後,該目標區塊將從TLC區塊轉換為儲存頁資料D_1、D_2、D_3和D_N(即,低頁資料(LP)、中頁資料(MP)、高頁資料(UP)和頂頁資料(TP)(這些可能對應於同一字線))的QLC區塊,上述的過程也被稱為TLC至QLC的直接轉換。
基於上述實施例,本發明提供了一種控制快閃記憶體的方法。請參閱第4圖,該圖展示了控制一快閃記憶體的簡化流程圖,包含以下步驟:
步驟S201:響應於一個或多個主機寫入命令,以一次性編程方式(one-shot programming),在一特定寫入模式中,將與該一個或多個主機寫入命令相關聯的主機資料寫入至該快閃記憶體的一區域內的一目標區塊中;
步驟S202:對該目標區塊執行一區塊可靠性檢查,以產生一區塊可靠性指示;
步驟S203:根據該區塊可靠性指示,選擇一直接轉換模式與一基於垃圾回收操作的轉換模式中的一者;以及
步驟S204:根據所選擇的轉換模式對該目標區塊執行儲存單元階級重配置。
由於上述步驟的原理和具體細節已在先前的實施例中詳細描述,因此這裡不再贅述。值得一提的是,上述流程可以透過添加其他額外步驟或對特定步驟進行適當的修改和調整來改善,以提高QLC快閃記憶體的性能、耐用性和可靠性。而這樣的變化也應當被視為本發明的範疇。
在一實施例中,記憶體控制器110可以選擇壽命導向策略(lifespan-oriented strategy)或性能導向策略(performance-oriented strategy)中的一種。然後,記憶體控制器110根據所選擇的策略,對NV記憶體120進行配置,並根據主機寫入命令在NV記憶體120上執行特定形式的寫入操作(或者其他控制操作)。
請參閱第5圖以進一步理解。如第5圖所示,在壽命導向策略中,NV記憶體120被配置為具有包含多個SLC區塊的靜態SLC區域210,以及包含多個QLC區塊的QLC區域220。再者,在壽命導向策略中,記憶體控制器110被配置為優先將主機資料寫入SLC區域210的SLC區塊。一旦SLC區域210的可用(剩餘)SLC區塊的數量低於一下限,則記憶體控制器110將執行垃圾回收操作,從SLC區域210的SLC區塊中收集有效資料,並相應地將收集到的有效資料,寫入QLC區域220的QLC區塊(即,SLC至QLC的垃圾回收操作(SLC-to-QLC (S2Q) GC operation))。此外,記憶體控制器110還可以從QLC區域220的QLC區塊中收集有效資料,並相應地將收集到的有效資料寫入至QLC區域220中的空白QLC區塊(即,QLC至QLC的垃圾回收操作(QLC-to-QLC (Q2Q) GC operation))。也就是說,在壽命導向策略中,只要SLC區域210的SLC區塊的數量不足,記憶體控制器110便會執行垃圾回收操作。
在性能導向策略中,NV記憶體120被配置為具有:靜態SLC區域310和/或動態SLC區域320(分別包含多個SLC區塊)、TLC區域330(包含多個TLC區塊)和QLC區域340(包含多個QLC區塊)。在性能導向策略中,記憶體控制器110用於優先將主機資料寫入靜態SLC區域310和/或動態SLC區域320的SLC區塊。一旦靜態SLC區域310和/或動態SLC區域320的可用(剩餘)SLC區塊的數量低於一下限,記憶體控制器110將以一次性編程方式(即,TLC直接寫入(TLC direct write)),將主機資料寫入TLC區域330的TLC區塊。此時,記憶體控制器110不會執行SLC至QLC的垃圾回收操作。再者,當TLC區域330內的TLC區塊的可用數量較低時,記憶體控制器110可能進一步執行上述的儲存單元階級重配置構(即,進行TLC至QLC直接轉換),將TLC區塊重新配置為QLC區塊以儲存更多資料。如果TLC區域330內的TLC區塊的可用數量,以及/或靜態SLC區域310和/或動態SLC區域320內的SLC區塊的可用數量仍低於該下限,記憶體控制器110將執行垃圾回收操作,從靜態SLC區域310和/或動態SLC區域320內的SLC區塊收集有效資料,並相應地將收集到的有效資料寫入至QLC區域340內的QLC區塊(即,執行S2Q垃圾回收操作),以及/或從TLC區域330內的TLC區塊收集有效資料,並相應地將收集到的有效資料寫入至QLC區域340內的QLC區塊(即,執行T2Q垃圾回收操作)。也就是說,在性能導向策略中,記憶體控制器110不會在靜態SLC區域310和/或動態SLC區域320的可用SLC區塊的數量低於該下限後立即執行垃圾回收操作,這是因為垃圾回收操作耗時較長。有鑑於此,記憶體控制器110將優先執行其他操作(例如,優先執行TLC直接寫入,或者TLC至QLC直接轉換),從而在執行垃圾回收操作之前,盡可能地延緩寫入性能下降。
在一實施例中,記憶體控制器110將根據一個能反映NV記憶體120耗損狀態(wearing condition)的耗損狀態指示值,從壽命導向策略或性能導向策略中選擇一者。在一實施例中,記憶體控制器110將首先選擇性能導向策略來控制NV記憶體120的寫入。如果該耗損狀態指示值超過一預定臨界值(意味著NV記憶體120的耗損狀態顯著),記憶體控制器110將選擇壽命導向策略。在性能導向策略中,記憶體控制器110將根據動態SLC區域320中的區塊的最大編程/擦除循環次數(program/erase cycles,P/E cycles)、TLC區域330中的區塊的最大P/E循環次數、以及QLC區域340中的區塊的最大P/E循環次數,來決定該耗損狀態指示值。進一步來說,某個特定區塊的一P/E循環次數包含一次抹除操作(即,抹除該區塊中所有記憶體單元中儲存的資料)以及在該區塊中的每個頁中寫入資料。在另一實施例中,記憶體控制器110還可根據動態SLC區域320中的區塊的平均P/E循環次數、TLC區域330中的區塊的平均P/E循環次數、以及QLC區域340中的區塊的平均P/E循環次數,來決定該耗損狀態指示值。在一實施例中,該耗損狀態指示值可由以下算式決定:(DSLC_P/E)*f1+(TLC_P/E)*f2+(QLC_P/E)。其中,"DSLC_P/E"可以是動態SLC區域320中的區塊的最大(或平均)P/E循環次數,"TLC_P/E"可以是TLC區域330中的區塊的最大(或平均)P/E循環次數以及"QLC_P/E"可以是QLC區域340中的區塊的最大(或平均)P/E循環次數。另外,加權因子f1和f2可以是小於"1"的任何數值。這種方法能夠在考慮NV記憶體120的耗損(即,透過選擇壽命導向策略)的同時,保證寫入性能(即,透過選擇性能導向策略),從而避免由於過度追求性能而導致NV記憶體120的壽命下降。
基於上述實施例,本發明提供了一種控制快閃記憶體的方法。請參閱64圖,該圖展示了控制一快閃記憶體的簡化流程圖,包括以下步驟:
步驟S301:選擇一第一策略來配置該快閃記憶體,並且根據該第一策略來控制該快閃記憶體;其中,在該第一策略中,一旦該快閃記憶體的一特定區域內的區塊的一可用數量低於一下限時,不會立即執行一垃圾回收操作;
步驟S302:決定相關於該快閃記憶體的一耗損狀態指示值是否超過一預定臨界值;以及
步驟S303:若該耗損狀態指示值超過該預定臨界值,則選擇一第二策略來配置該快閃記憶體,並且根據該第二策略來控制該快閃記憶體;其中,在該第二策略中,一旦該快閃記憶體的該特定區域內的區塊的該可用數量低於該下限,將立即執行該垃圾回收操作。
由於上述步驟的原理和具體細節已在先前的實施例中詳細描述,因此這裡不再贅述。值得一提的是,上述流程可以透過添加其他額外步驟或對特定步驟進行適當的修改和調整來改善,以提高QLC快閃記憶體的性能、耐用性和可靠性。而這樣的變化也應當被視為本發明的範疇。
本發明的實施例可以被具體實現為裝置、方法或電腦程式產品。據此,本發明的實施例可以採取完全由硬體實現的實體、完全由軟體實現的實體(包括韌體、常駐軟體、微代碼等),或者結合軟體和硬體方面的實體,這些可以通稱為「模組」或「系統」。此外,本發明的實施例可以採用體現在任何有形表達媒體中的電腦程式產品的形式,且該媒體具有電腦可用程式碼。就硬體而言,本發明可以透過應用以下任何技術或相關組合來實現:能夠根據資料信號執行邏輯函數的邏輯閘的單獨運算邏輯,以及具有適當組合邏輯的應用特定積體電路(application specific integrated circuit,ASIC)、可編程閘陣列(programmable gate array,PGA)或現場可編程閘陣列(field programmable gate array,FPGA)。
流程圖和方塊圖表明了本發明實施例的不同可能的實施方式的系統、方法和電腦程式產品的架構、功能和操作。在這方面,流程圖或方塊圖中的每個方塊可能代表一個模組、區段或一部分的程式碼,其中包括一個或多個可執行指令,以實現特定的邏輯函數。還要注意,方塊圖以及/或流程圖中的每個方塊,以及方塊圖和/或流程圖中的方塊組合都可以由特殊用途的硬體基礎系統,或特殊硬體和電腦程式指令的組合實現。這些電腦程式指令可以儲存在可讀取的電腦媒體中,以命令電腦或其他可編程資料處理裝置以特定方式運行,以便在可讀取的電腦媒體中所儲存的指令,產生包括實現流程圖和/或方塊圖的方塊或方塊組合中指定的功能/操作。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
50:主機裝置
52:處理器
54:RAM
100:資料儲存裝置
110:記憶體控制器
112:處理單元
112C:程式碼
112M:ROM
113:內部記憶體
114:控制邏輯電路
118:傳輸介面電路
120:NV記憶體
121:頁緩存器
122_1~122_N:NV記憶體元件
123:控制電路
130:ECC處理電路
第1圖繪示本發明實施例的資料儲存裝置的架構示意圖。
第2圖繪示本發明實施例如何對目標區塊執行區塊可靠性檢查的流程圖。
第3圖繪示本發明實施例如何執行直接轉換模式和基於垃圾回收操作的轉換模式。
第4圖繪示本發明實施例的控制快閃記憶體的方法流程圖。
第5圖繪示本發明實施例如何根據性能導向策略和壽命導向策略配置和控制快閃記憶體。
第6圖繪示本發明實施例的控制快閃記憶體的方法流程圖。
Claims (16)
- 一種控制一快閃記憶體的方法,包含: 響應於一個或多個主機寫入命令,以一次性編程方式(one-shot programming),在一特定寫入模式中,將與該一個或多個主機寫入命令相關聯的主機資料寫入至該快閃記憶體的一區域內的一目標區塊中; 對該目標區塊執行一區塊可靠性檢查,以產生一區塊可靠性指示; 根據該區塊可靠性指示,選擇一直接轉換模式與一基於垃圾回收操作的轉換模式中的一者;以及 根據所選擇的轉換模式對該目標區塊執行儲存單元階級重配置。
- 如請求項1所述的方法,其中根據所選擇的轉換模式對該目標區塊執行儲存單元階級重配置的步驟包含: 從該目標區塊讀取下頁(lower page)資料、中頁(middle page)資料和上頁(upper page)資料; 從與該快閃記憶體中不同於該目標區塊的一來源區塊讀取一有效頁資料;以及 若該直接轉換模式被選擇時,則在四階儲存單元(quad-level cell,QLC)寫入模式下,透過一次編程遍(one programming pass),將該目標區塊中的下頁資料、中頁資料和上頁資料以及該來源區塊中的有效頁資料編程至該目標區塊中。
- 如請求項1所述的方法,其中根據所選擇的轉換模式對該目標區塊執行儲存單元階級重配置的步驟包含: 從該目標區塊讀取下頁資料、中頁資料和上頁資料; 從與該快閃記憶體中不同於該目標區塊的一來源區塊讀取一有效頁資料;以及 若該基於垃圾回收操作的轉換模式被選擇時,則在QLC寫入模式下,透過兩次編程遍(two programming pass),將該目標區塊中的下頁資料、中頁資料和上頁資料以及該來源區塊中的有效頁資料編程至該快閃記憶體中不同於該目標區塊的一垃圾回收操作的目的區塊中。
- 如請求項1所述的方法,其中對該目標區塊執行該區塊可靠性檢查的步驟包含: 根據將資料寫入該目標區塊內時的一寫入溫度是否落於一預定溫度範圍內,產生該區塊可靠性指示; 根據該目標區塊內的資料被讀取的次數是否超過一預定讀取次數臨界值,產生該區塊可靠性指示; 根據自從該目標區塊被寫入資料之後所經歷的一區塊生命週期是否已超過一預定塊生命週期臨界值,產生該區塊可靠性指示; 根據在讀取該目標區塊內的資料的過程中是否曾啟動一軟解碼操作(soft decoding),產生該區塊可靠性指示;以及/或 根據在讀取該目標區塊內的資料時發生的讀取重試操作的次數是否超過一預定讀取重試次數臨界值,產生該區塊可靠性指示。
- 如請求項1所述的方法,其中根據該區塊可靠性指示選擇該直接轉換模式與該基於垃圾回收操作的轉換模式中的一者的步驟包含: 若該區塊可靠性指示表明該目標區塊表現出較強的可靠性,則選擇該直接轉換模式;以及 若該區塊可靠性指示表明該目標區塊表現出較弱的可靠性,則選擇該基於垃圾回收操作的轉換模式。
- 如請求項1所述的方法,其中該快閃記憶體是QLC快閃記憶體,而該目標區塊是該QLC快閃記憶體內的一三階儲存單元(triple-level cell,TLC)區域中的一個TLC區塊;並且,在該TLC區域內,每個儲存單元被寫入3位元資料。
- 一種用於一快閃記憶體內的一記憶體控制器,包含: 一儲存單元,用於儲存一程式碼; 一處理單元,用於執行該程式碼,以對該快閃記憶體執行以下操作: 響應於一個或多個主機寫入命令,以一次性編程方式(one-shot programming),在一特定寫入模式中,將與該一個或多個主機寫入命令相關聯的主機資料寫入至該快閃記憶體的一區域內的一目標區塊中; 對該目標區塊執行一區塊可靠性檢查,以產生一區塊可靠性指示; 根據該區塊可靠性指示,選擇一直接轉換模式與一基於垃圾回收操作的轉換模式中的一者;以及 根據所選擇的轉換模式對該目標區塊執行儲存單元階級重配置。
- 一種資料儲存裝置,包含如請求項7所述的記憶體控制器和一快閃記憶體。
- 一種控制一快閃記憶體的方法,包含: 選擇一第一策略來配置該快閃記憶體,並且根據該第一策略來控制該快閃記憶體; 決定相關於該快閃記憶體的一耗損狀態指示值是否超過一預定臨界值;以及 若該耗損狀態指示值超過該預定臨界值,則選擇一第二策略來配置該快閃記憶體,並且根據該第二策略來控制該快閃記憶體; 其中,在該第一策略中,一旦該快閃記憶體的一特定區域內的區塊的一可用數量低於一下限時,不會立即執行一垃圾回收操作;而在該第二策略中,一旦該快閃記憶體的該特定區域內的區塊的該可用數量低於該下限,將立即執行該垃圾回收操作。
- 如請求項9所述的方法,其中該第一策略是一性能導向策略,而該第二策略是一壽命導向策略。
- 如請求項10所述的方法,其中選擇該第一策略來配置該快閃記憶體的步驟包含: 將該快閃記憶體配置為至少包含:具備複數個第一類型區塊的一第一區域、具備複數個第一類型區塊的一第二區域、具備複數個第二類型區塊的一第三區域和具備複數個第三類型區塊的一第四區域;以及 若該第一類型區塊的一可用數量低於一下限,則以一次性編程方式,將資料寫入該第三區域中的該複數個第二類型區塊,而不執行該垃圾回收操作。
- 如請求項11所述的方法,其中該耗損狀態指示值由以下數值的一加權總合來決定:該第二區域內的第一類型區塊的一最大編程/擦除循環次數(program/erase cycles,P/E cycles)、該第三區域內的第二類型區塊的一最大P/E循環次數、以及該第四區域內的第三類型區塊的一最大P/E循環次數。
- 如請求項12所述的方法,其中該第二區域中的第一類型區塊是一動態式(dynamic)單階儲存單元(single-level cell,SLC)區域中的SLC區塊,該第三區域中的第二類型區塊是一TLC區域中的TLC區塊,而該第四區域中的第三類型區塊是一QLC區域中的QLC區塊。
- 如請求項10所述的方法,其中選擇該第二策略來配置該快閃記憶體的步驟包含: 將該快閃記憶體配置為至少包含:具備複數個第一類型區塊的一第一區域和具備複數個第二類型區塊的一第二區域;以及 若該第一類型區塊的一可用數量低於一下限,則在將資料寫入該第一區域中的第一類型區塊之前,先執行該垃圾回收操作,以將該第一區域內的第一類型區塊中的有效資料移動到該第二區域內的第二類型區塊中。
- 一種用於一快閃記憶體內的一記憶體控制器,包含: 一儲存單元,用於儲存一程式碼; 一處理單元,用於執行該程式碼,以對該快閃記憶體執行以下操作: 選擇一第一策略來配置該快閃記憶體,並且根據該第一策略來控制該快閃記憶體; 決定相關於該快閃記憶體的一耗損狀態指示值是否超過一預定臨界值;以及 若該耗損狀態指示值超過該預定臨界值,則選擇一第二策略來配置該快閃記憶體,並且根據該第二策略來控制該快閃記憶體; 其中,在該第一策略中,一旦該快閃記憶體的一特定區域內的區塊的一可用數量低於一下限時,不會立即執行一垃圾回收操作;而在該第二策略中,一旦該快閃記憶體的該特定區域內的區塊的該可用數量低於該下限,將立即執行該垃圾回收操作。
- 一種資料儲存裝置,包含如請求項16所述的記憶體控制器和一快閃記憶體。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/661,689 | 2024-05-12 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW202544816A true TW202544816A (zh) | 2025-11-16 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8843697B2 (en) | Operating method of data storage device | |
| US10339046B1 (en) | Data moving method and storage controller | |
| EP2291746B1 (en) | Hybrid memory management | |
| KR101734200B1 (ko) | 적응적 머지를 수행하는 메모리 시스템 및 그것의 데이터 쓰기 방법 | |
| US20140019670A1 (en) | Data writing method, memory controller, and memory storage device | |
| US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
| US11010057B2 (en) | Storage system and method for storage system calibration | |
| TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
| US10503433B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
| CN111309654B (zh) | 存储装置及操作存储装置的方法 | |
| CN111338978B (zh) | 存储装置以及操作存储装置的方法 | |
| CN109933540A (zh) | 存储装置及其操作方法 | |
| US20130332653A1 (en) | Memory management method, and memory controller and memory storage device using the same | |
| US20150161042A1 (en) | Memory management method, memory controlling circuit unit, and memory storage device | |
| KR20200132171A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 장치 | |
| CN110471612B (zh) | 存储器管理方法以及存储控制器 | |
| US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
| TWI644215B (zh) | 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器 | |
| US9001585B1 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
| US11586379B2 (en) | Memory system and method of operating the same | |
| TWI876648B (zh) | 用於四階儲存單元快閃記憶體的資料寫入與回復方法與記憶體控制器以及儲存設備 | |
| US10997081B2 (en) | Host and method for storage system calibration | |
| KR102648790B1 (ko) | 데이터 저장 장치 및 그 동작 방법 | |
| US12164784B2 (en) | Memory controller for performing wear-leveling and memory system including the same | |
| TW202544816A (zh) | 用於提升四階儲存單元快閃記憶體之效能與壽命的控制快閃記憶體的方法與相關記憶體控制器 |