TWI867845B - 非揮發式記憶體控制器、控制方法、以及電腦程式產品 - Google Patents
非揮發式記憶體控制器、控制方法、以及電腦程式產品 Download PDFInfo
- Publication number
- TWI867845B TWI867845B TW112143854A TW112143854A TWI867845B TW I867845 B TWI867845 B TW I867845B TW 112143854 A TW112143854 A TW 112143854A TW 112143854 A TW112143854 A TW 112143854A TW I867845 B TWI867845 B TW I867845B
- Authority
- TW
- Taiwan
- Prior art keywords
- valid data
- blocks
- physical address
- logical
- block
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
- Memory System (AREA)
Abstract
非揮發式記憶體之垃圾回收。非揮發式記憶體控制器之處理器自一非揮發式記憶體選出垃圾回收用的一起始來源區塊、以及一目標區塊,以該起始來源區塊上第一筆有效資料所對應的一第一邏輯至實體地址映射子表為目標做掃描,據以尋得有效資料,收集至該目標區塊。該第一邏輯至實體地址映射子表之掃描完成後,該處理器係自該起始來源區塊尋得尚未收集至該目標區塊的一第二筆有效資料,並以該第二筆有效資料所對應的一第二邏輯至實體地址映射子表為目標,掃描該第二邏輯至實體地址映射子表,尋得有效資料,收集至該目標區塊。
Description
本發明是關於非揮發式記憶體之控制技術。
非揮發式記憶體有多種形式─例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,用於長時間資料保存,可做為儲存媒體實現一資料儲存裝置。
如何高效控制非揮發式記憶體為本技術領域重要課題。
根據本案一種實施方式實現的一種非揮發式記憶體控制器包括一通訊介面、以及一處理器。該通訊介面耦接一非揮發式記憶體。該處理器係透過該通訊介面操作該非揮發式記憶體。該處理器自該非揮發式記憶體選出垃圾回收用的一起始來源區塊、以及一目標區塊。該處理器係自該起始來源區塊進行有效資料判斷,並以該起始來源區塊上第一筆有效資料所對應的一第一邏輯至實體地址映射子表為目標,掃描該第一邏輯至實體地址映射子表,尋得有效資料,收集至該目標區塊。該第一邏輯至實體地址映射子表之掃描完成後,該處理器係自該起始來源區塊尋得尚未收集至該目標區塊的一第二筆有效資料,並以該第二筆有效資料所對應的一第二邏輯至實體地址映射子表為目標,掃描該第二邏輯至實體地址映射子表,尋得有效資料,收集至該目標區塊。
如此非揮發式記憶體控制器所實現的垃圾回收不僅善用已下載的邏輯至實體地址映射子表,還集中資源先清出起始來源區塊,大幅改善垃圾回收效能。
一種實施方式中,該處理器是依據有效資料量,自該非揮發式記憶體選出複數個來源區塊,其中包括該起始來源區塊。該處理器對目標之邏輯至實體地址映射子表進行掃描時,是自該等來源區塊尋得有效資料,收集至該目標區塊。
一種實施方式中,該處理器更為各邏輯至實體地址映射子表管理一標誌,標示已完成掃描的邏輯至實體地址映射子表,以排除已收集至該目標區塊之資料的有效判斷。
本案垃圾回收技術改良更用於實現一種非揮發式記憶體控制方法。
本案更揭露根據所述非揮發式記憶體控制方法實現程式碼的一種電腦程式產品。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。以下所提及的各種功能方塊可由硬件、軟件、韌體組合實現,也可包括特殊電路。各種功能方塊不限定為分開實現,也可結合在一起,共用某些功能。
非揮發式記憶體可以是快閃記憶體(Flash Memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,提供長時間資料保存之儲存媒體。以下特別以快閃記憶體為例進行討論,但所述技術也可使用在其他種類非揮發式記憶體上。
現今資料儲存裝置常以快閃記憶體為儲存媒體,實現記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD) 、通用快閃記憶體儲存裝置(UFS Device)…等產品。有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起─稱為嵌入式快閃記憶體模組(如eMMC)。
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子裝置中。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備…等。電子裝置的處理器可視為主機(Host),操作電子裝置所配置的資料儲存裝置,透過其中的控制器存取作為儲存媒體的快閃記憶體。
以快閃記憶體為儲存媒體的資料儲存裝置也可用於建構資料中心。例如,伺服器可操作固態硬碟(SSD)陣列形成資料中心。伺服器即可視為主機,操作所連結之固態硬碟,透過其中控制器存取作為儲存媒體的快閃記憶體。
車載系統也可使用快閃記憶體實現資料儲存裝置。車載系統的各種感測器可視為主機,也會有存取資料儲存裝置的需求。
快閃記憶體有其特殊的儲存特性。主機(Host)端是以邏輯地址(例如,邏輯區塊地址LBA或全域主機頁編號GHP…等)對快閃記憶體發出讀、寫要求。邏輯地址需映射到實體地址,才能對應到快閃記憶體實體空間。
快閃記憶體之實體空間是劃分為複數個實體區塊(physical blocks)配置使用。第1圖圖解快閃記憶體一實體區塊Blk之結構。
實體區塊Blk包括複數個實體頁(physical pages),例如,頁面0…頁面255。各實體頁包括複數個實體區段(physical sectors),例如,頁面0的32個實體區段S0_0…S0_31。每一實體區段可儲存512B長度的使用者資料;一實體頁面可供應16KB儲存空間。一種實施方式係根據頁面編號─由低編號(頁面0)至高編號(頁面255)─循序使用實體區塊Blk的儲存空間。或者,某些實施方式使用的是數據吞吐量大幅提升的多通道技術,係將不同通道存取的實體區塊視為一個超級區塊(Super Block);將不同通道上,同編號實體區塊之同編號實體頁視為超級頁面(Super Page)。多通道技術可根據超級頁面編號─由低編號至高編號─循序使用一超級區塊的儲存空間。某些應用中所指實體區塊是超級區塊。本案不限定區塊、頁面、區段之尺寸。以下是特定尺寸之討論僅是為了方便說明。
一種實施方式中,一實體區段(512B)可對應一個邏輯區塊位址LBA。以4KB映射模式為例,八個連續512B實體區段(如,S0_0…S0_7)組成的4KB空間為一映射管理單位(如MU0_0),對應八個連續邏輯區塊位址LBAs之數據儲存,即對應一個全域主機頁編號GHP。一實體頁面的四段映射管理單位(如,MU0_0、MU0_1、MU0_2、MU0_3、共4x4KB,佔16KB)可對應四個全域主機頁編號GHP。如第1圖所示,實體區塊Blk包括一備用區域Spare_Area,由各實體頁末端備用空間組成,儲存後設資料(meta data),其中相應對應之實體頁面的四段映射管理單位,標註所對應的四個全域主機頁編號GHP。此實施方式是在備用區域Spare_Area為各4KB映射管理單位規劃4B的全域主機頁編號GHP欄位(GHP entry),顯示實體至邏輯地址映射關係。
除了載於該備用區域Spare_Area,整個實體區塊Blk所映射的全域主機頁編號GHP也可編組為一實體至邏輯地址映射表(理解為flash-to-host mapping table,以下代號F2H),作為一區塊結尾資訊(end-of-block information,簡稱EoB),載於該實體區塊Blk最末的頁面255。在其他實施方式中,該實體至邏輯地址映射表F2H也可以是儲存在快閃記憶體儲存系統資訊的系統區塊內。
備用區域Spare_Area、或區塊結尾資訊(EoB)所載之全域主機頁編號GHP用於追蹤實體空間以及邏輯位址之間複雜的映射關係。
特別是,快閃記憶體有一項重要特性,儲存空間須以實體區塊為單位抹除(erase)才能再使用。同樣邏輯地址的資料更新並非覆寫至舊資料的儲存空間。新版本的資料須寫入空白空間。舊空間的內容則無效。因此,好幾個實體地址可能對應相同的邏輯地址。
由前述內容可知,快閃記憶體的空間配置相當複雜。一種實施方式是除了維護前述實體地址至邏輯地址映射的資訊 (例如,相應各4KB映射管理單位而記錄的4B全域主機頁編號GHP),更反向建立一邏輯至實體地址映射表(理解為host-to-flash mapping table,以下代號H2F),自低邏輯地址至高邏輯地址,顯示主機操作用之全域主機頁編號GHP是映射到快閃記憶體哪些實體地址。邏輯至實體地址映射表H2F一般維護在快閃記憶體的系統區塊中,必須自快閃記憶體載入控制器的記憶體(如DRAM、或SRAM)進行讀寫。
然而,隨著製程進步,快閃記憶體尺寸越來越大。4TB的快閃記憶體,其邏輯至實體地址映射表H2F會達4GB。8TB的快閃記憶體,其邏輯至實體地址映射表H2F會達8GB。過分龐大的邏輯至實體地址映射表H2F不容易動態管理。
一種解決方案是將邏輯至實體地址映射表H2F切分為較小尺寸的邏輯至實體地址映射子表;例如,對應不同邏輯地址群組G#(#為編號)的邏輯至實體地址映射子表H2F_G#。一種實施方式是令每個邏輯至實體地址映射子表H2F_G#為4KB(恰為一映射管理單位之尺寸),相應1K個全域主機頁編號GHP,儲存1K個4B實體地址資訊。被呼叫到的邏輯至實體地址映射子表H2F_G#才會自快閃記憶體載出參考、或更新。相較於完整的載出該邏輯至實體地址映射表H2F,邏輯至實體地址映射子表H2F_G#的載出只耗費少量系統資源。
又如前所述,快閃記憶體一定要完整區塊抹除後才來再利用的特性,會導致不少實體區塊僅零星留存有效資料,卻無法歸入備用區塊抹除再使用。有限數量的備用區塊逐漸消耗。備用區塊數量不足時(如,低於閥值),垃圾回收(Garbage Collection)需求產生。來源區塊留存的零星有效資料經垃圾回收集中到目標區塊。徒留無效資料的來源區塊就可以釋出,拉升備用區塊數量,確保快閃記憶體之正常使用。
垃圾回收(GC)也需要參考邏輯至實體地址映射子表H2F_G#。第2圖舉例說明一來源區塊SBLK的有效資料判斷,其中以頁面0的四個映射管理單位MU0_0、MU0_1、MU0_2、以及MU0_3為例。如後設資料Meta0所記載,映射管理單位MU0_0、MU0_1、MU0_2、以及MU0_3對應的是全域主機頁編號GHP_a、GHP_b、GHP_c、以及GHP_d(a、b、c、d為相差甚大的四個編號),分別落於邏輯群組Gk、Gh、Gj、以及Gi,相應四個邏輯至實體地址映射子表H2F_Gk、H2F_Gh、H2F_Gi、以及H2F_Gj。來源區塊SBLK頁面0的有效資料判斷因此涉及多達四次的邏輯至實體地址映射子表載出(輪番載出H2F_Gk、H2F_Gh、H2F_Gi、以及H2F_Gj)。以邏輯至實體地址映射子表H2F_Gk為例,其需經全域主機頁編號GHP_a反向檢索,另外獲得一映射實體地址。該映射實體地址若確實指向該來源區塊SBLK的該映射管理單位MU0_0,則該映射管理單位MU0_0儲存內容為有效資料;反之,該映射管理單位MU0_0儲存內容為無效資料。傳統垃圾回收技術中,如此輪番載出映射子表H2F_Gk、H2F_Gh、H2F_Gi、以及H2F_Gj會耗費龐大的運算資源。
本案提出一種新穎的垃圾回收技術,其中善用已下載的邏輯至實體地址映射子表H2F_G#,掃描完其中所有映射資訊,獲得、並收集有效資料至目標區塊後,才下載另外一個邏輯至實體地址映射子表H2F_G#進行掃描。如此一來,簡單下載幾個的邏輯至實體地址映射子表H2F_G#就能集滿一個目標區塊的有效資料。特別是,以掃描邏輯至實體地址映射子表H2F_G#的方式收集有效資料,目標區塊容易收集到連續邏輯地址的資料,方便日後讀取。相較之,傳統的垃圾回收可能使得目標區塊收集到邏輯順序跳躍的資料,會拖累日後讀取的速度。
特別是,為了有效釋出空間,本案部分實施方式限定只搬移低有效資料量的區塊。如此一來,很容易就有實體區塊只剩無效資料,得以釋出。
第3圖圖解一邏輯至實體地址映射子表H2F_G#之掃描方式,係按全域主機頁編號GHP低至高掃描(各相應一映射管理單位之4KB資料,理解為逐映射管理單位掃描)。依照各目標邏輯地址(GHP)所映射的一映射實體地址,四散在實體區塊中的有效資料可被一一尋得。本案特別只收集來源區塊的有效資料,但略過非來源區塊的有效資料,以快速清出來源區塊,釋出空間,實現垃圾回收。
第4圖為根據本案一種實施方式所實現的一電子系統400,包括組成資料儲存裝置的一快閃記憶體402、以及一控制器404還包括操作該資料儲存裝置的一主機406。該控制器404包括耦接該快閃記憶體402的一閃存介面(Flash Interface)408、一主機介面(host interface)409、以及透過該閃存介面408操作該快閃記憶體402的一處理器410。該主機406係透過該控制器404存取該快閃記憶體402。閃存介面408是相應快閃記憶體402而提供,若是其它型態儲存媒體,則可用相應之通訊介面。閃存介面408與快閃記憶體402可以雙倍資料率(Double Data Rate,DDR)通訊協定彼此溝通,例如,開放NAND快閃(Open NAND Flash Interface,ONFI)、雙倍資料率開關(DDR Toggle)或其他通訊協定。控制器404可通過主機介面409以通用序列匯流排(Universal Serial Bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)、通用快閃記憶儲存(Universal Flash Storage,UFS)、嵌入式多媒體卡(Embedded Multi-Media Card,eMMC)等通訊協定與主機406彼此溝通。
該快閃記憶體402可包括系統區塊池SysBlk、資料區塊池DataBlk、備用區塊池SpareBlk、以及主動區塊池ABlk。邏輯至實體地址映射子表H2F_G#儲存於系統區塊池SysBlk。使用者資料儲存於資料區塊池DataBlk。備用區塊池SpareBlk則不存在有效資料,其中實體區塊可被選出來抹除,推入主動區塊池ABlk。主動區塊池ABlk包括接收主機406寫入資料用的寫入區塊A0、以及垃圾回收(GC)中收集有效資料的目標區塊A1。
如圖所示,控制器404可更包括記憶體(DRAM或SRAM)412,用以自系統區塊池SysBlk下載目標之邏輯至實體地址映射子表H2F_Gt進行掃描,實現本案提出之新穎垃圾收集技術。相應此垃圾收集操作,處理器410更在記憶體412上管理一有效資料計量表VDTable、一掃描標記表ScanTable、以及一地址標記VDAddr。
有效資料計量表VDTable記錄各實體區塊中,儲存有效內容的映射管理單位(4KB單位)之總數。一種實施方式中,有效資料計量表VDTable是保存在系統區塊池SysBlk的區塊中,一般是隨著該邏輯至實體地址映射表H2F一起更新。處理器410係根據有效資料計量表VDTable,獲知各實體區塊的有效資料量,據以自資料區塊池DataBlk選出將被垃圾回收的來源區塊SBlk。
一種實施方式是選擇有效資料量較低的N個實體區塊為來源區塊,其中,N為正整數(如16),且該些來源區塊依照有效資料量低至高編號為SBlk0…SBlk(N-1),最低有效資料量的來源區塊SBlk0為起始來源區塊。
處理器410係自該起始來源區塊SBlk0進行有效資料判斷(第2圖相關說明),在辨識到該起始來源區塊SBlk0上第一筆有效資料VD1時,該處理器410記錄該起始來源區塊SBlk0上該第一筆有效資料VD1之實體地址為該地址標記VDAddr。處理器410更以該第一筆有效資料VD1所對應的一第一邏輯至實體地址映射子表H2F_Ga為目標 (以H2F_Gt標號),進行完整掃描(第3圖相關說明)。由於判別出有效資料VD1時,此目標子映射表H2F_Gt(即H2F_Ga)就已經自系統區塊池SysBlk載入記憶體412,因此,直接將之做為掃描目標H2F_Gt還可以省下再次下載子映射表H2F_Ga(自SysBlk載入412)的時間。該處理器410係逐映射管理單位,自掃描目標H2F_Gt(即H2F_Ga),查詢出各目標邏輯地址所映射的映射實體地址,在其落入該等來源區塊SBlk0…SBlk(N-1)時,將該映射實體地址所標示之儲存內容收集到該目標區塊A1。處理器410可以隨著有效資料之收集,追蹤更新該有效資料計量表VDTable。隨著有效資料搬移至該目標區塊A1,相應之來源區塊SBlk的有效資料量遞減更新於該有效資料計量表VDTable。該處理器410可根據該有效資料計量表VDTable,排除零有效資料量之來源區塊SBlk。清空的來源區塊SBlk可釋出至該備用區塊池SpareBlk。
掃描標記表ScanTable則用來為各邏輯至實體地址映射子表H2F_G#管理一標誌,標示已完成掃描的邏輯至實體地址映射子表H2F_G#,以排除已收集至目標區塊A1之資料的有效判斷。該第一邏輯至實體地址映射子表H2F_Ga之掃描完成後,該處理器410將該掃描標記表ScanTable中,相應該第一邏輯至實體地址映射子表H2F_Ga之標誌立起。後續判斷來源區塊中有效資料時,映射到H2F_Ga邏輯地址範圍的資料可直接認定為無效資料(已收集到目標區塊A1),無須再載出該第一邏輯至實體地址映射子表H2F_Ga作反向覆核。例如,該起始來源區塊SBlk0之資料D1係對應已掃描過的第一邏輯至實體地址映射子表H2F_Ga。處理器410在該掃描標記表ScanTable找到相應第一邏輯至實體地址映射子表H2F_Ga的標誌後,會直接認定資料D1已確實收集,無須再次載入該第一邏輯至實體地址映射子表H2F_Ga判斷資料D1是否有效。
在考量掃描標記表ScanTable下,該處理器410係根據該地址標記VDAddr,自該起始來源區塊SBlk0的該第一筆有效資料VD1往下繼續進行有效資料判斷(第2圖相關說明),直至尋得尚未收集至該目標區塊A1的一第二筆有效資料VD2。
該處理器410以該起始來源區塊SBlk0上第二筆有效資料VD2之實體地址更新該地址標記VDAddr,並以該第二筆有效資料VD2所對應的一第二邏輯至實體地址映射子表H2F_Gb為掃描目標H2F_Gt。同樣地,由於判別出有效資料VD2時,此目標子映射表H2F_Gt(即H2F_Gb)就已經自系統區塊池SysBlk載入記憶體412,因此,直接將之做為掃描目標H2F_Gt還可以省下再次下載子映射表H2F_Gb(自SysBlk載入412)的時間。經完整掃描(第3圖相關說明),落在該等來源區塊SBlk0…SBlk(N-1)的有效資料收集到該目標區塊A1。處理器410同樣隨著有效資料之收集,追蹤更新該有效資料計量表VDTable,以排除零有效資料量之來源區塊SBlk,並將清空的來源區塊SBlk釋出至該備用區塊池SpareBlk。
該第二邏輯至實體地址映射子表H2F_Gb之掃描完成後,該處理器410將該掃描標記表ScanTable中,相應該第二邏輯至實體地址映射子表H2F_Gb之標誌立起,映射到H2F_Gb邏輯地址範圍的資料(如資料D2)可直接認定為無效資料(已收集到目標區塊A1),無須再載出該第二邏輯至實體地址映射子表H2F_Gb作反向覆核。
一種實施方式中,該初始來源區塊SBlk0中有效資料所涉及的邏輯至實體地址映射子表H2F_G#掃描完後,該初始來源區塊SBlk0有效資料已搬空。處理器410可以根據該有效資料計量表VDTable之動態更新狀態,選擇目前最低有效資料量的來源區塊SBlk作有效資料判斷(第2圖相關說明),以擇定下一個子映射表全掃描之目標H2F_Gt。
由於掃描目標H2F_Gt是專對低有效資料量的區塊選定,利於搬空其中僅存不多的有效資料量,將其釋出至備用區塊池SpareBlk。如此設計也會加速垃圾收集。
一種實施方式中,該處理器410更依據低有效資料量至高有效資料量,將該等來源區塊SBlk0…SBlk(N-1)劃分為首要清除區塊SBlk0…SBlki、以及次要清除區塊SBlk(i+1)…SBl(N-1)。該等首要清除區塊SBlk0…SBlki總計的一有效資料總量(以下標號VDtotal),為不超過該目標區塊A1一空白空間尺寸(以下標號SizeA1)的極限值。例如,來源區塊SBlk0…SBlk(i+1)累加的有效資料總量VDtotal為3.2MB,來源區塊SBlk0…SBlk(i+1)累加的有效資料總量4.2MB,而目標區塊A1的空白空間尺寸SizeA1為4MB,則來源區塊塊SBlk0…SBlk(N-1)劃分為首要清除區塊SBlk0…SBlki、以及次要清除區塊SBlk(i+1)…SBl(N-1)。該處理器410令該等首要清除區塊SBlk0…SBlki的有效資料收集優先於該等次要清除區塊SBlk(i+1)…SBl(N-1)。
其他實施方式中,首要清除區塊、以及次要清除區塊之劃分可能有所變動,但核心概念依舊是首要清除區塊較次要清除區塊優先清除。
一種實施方式中,該處理器410計算首要清除區塊SBlk0…SBlki該有效資料總量VDtotal、以及目標區塊A1該空白空間尺寸SizeA1之間的一差值,據以初始化一餘裕量(以下標號Diff)。隨著將有效資料自該等次要清除區塊SBlk(i+1)…SBl(N-1)搬移至該目標區塊A1,該處理器410遞減該餘裕量Diff。待該餘裕量Diff遞減到一臨界值(如0),該處理器410停止將有效資料自該等次要清除區塊SBlk(i+1)…SBl(N-1)搬移至該目標區塊A1,只准許首要清除區塊SBlk0…SBlki之有效資料搬移至該目標區塊A1。如此一來,首要清除區塊SBlk0…SBlki優先於次要清除區塊SBlk(i+1)…SBl(N-1)清空釋出。
第5圖為流程圖,根據本案一種實施方式圖解優化之垃圾收集程序。
步驟S502根據有效資料量升冪排列資料區塊池DataBlk中的區塊;按低至高的有效資料量,擇定N個區塊SBlk0…SBl(N-1)為來源區塊。
步驟S504擇定起始來源區塊SBlk0作有效資料判斷(第2圖相關說明)。
步驟S506相應起始來源區塊SBlk0中頭一筆有效資料,設定一地址標記VDAddr,並設定目標掃描的邏輯至實體地址映射子表H2F_Gt。
步驟S508掃描該邏輯至實體地址映射子表H2F_Gt,將位於來源區塊SBlk0…SBl(N-1)的有效資料收集至目標區塊A1,期間動態更新該有效資料計量表VDTable。
步驟S510相應該邏輯至實體地址映射子表H2F_Gt掃描完畢,更新該掃描標記表ScanTable。
步驟S512判斷目標區塊A1是否已滿。若是,流程結束。若否流程進行步驟S514,根據該有效資料計量表VDTable、以及該地址標記VDAddr,重啟來源區塊SBlk0…SBl(N-1)之有效資料判斷,其中包括參考該掃描標記表ScanTable,排除對已收集到目標區塊A1的資料,作無謂的有效資料判斷。所述有效資料判斷將更新掃瞄目標H2F_Gt,以再次進行步驟S508,對新目標H2F_Gt進行掃描。
第6圖為流程圖,係關於更細分為首要清除區塊SBlk0…SBlki、以及次要清除區塊SBlk(i+1)…SBl(N-1)的優化垃圾回收。
步驟S602以一目標邏輯地址檢索該掃描目標H2F_Gt,得一映射實體地址。步驟S604判斷該映射實體地址落入何處。若屬於首要清除區塊SBlk0…SBlki,流程以步驟S606進行有效資料搬移(自首要清除區塊SBlk0…SBlki收集到目標區塊A1)。步驟S608判斷H2F_Gt掃描是否完成。若尚未完成H2F_Gt掃描,步驟S610更新該目標邏輯地址。流程回到步驟S602繼續H2F_Gt掃描。
若步驟S604判定該映射實體地址是落入次要清除區塊SBlk(i+1)…SBl(N-1),流程以步驟S612判斷餘裕量Diff是否為0。若否,步驟S614遞減該餘裕量Diff,且步驟S606進行有效資料搬移(自次要清除區塊SBlk(i+1)…SBl(N-1)收集到目標區塊A1)。步驟S608判斷H2F_Gt掃描是否完成。
若步驟S612判定餘裕量Diff為0,則略去有效資料搬移(排除自次要清除區塊SBlk(i+1)…SBl(N-1)收集有效資料到目標區塊A1)。步驟S608判斷H2F_Gt掃描是否完成。
另有一種實施方式並不是自起始掃描區塊SBlk0開始有效資料判斷,再據以尋得掃描目標H2F_Gt,而是按邏輯地址低至高,順序選擇邏輯至實體地址映射子表H2F_G#為掃描目標H2F_Gt。
第7圖為根據本案一種實施方式所實現的一電子系統700。有別於第4圖,電子系統700中,控制器704是以另一種方式實施。該控制器704包括耦接該快閃記憶體402的一閃存介面708、與該主機406通信的一主機介面709、透過該閃存介面708操作該快閃記憶體402的一處理器710、以及該處理器710中運作使用的一記憶體712。該處理器710之設計不同於第4圖之處理器410。控制器704除了以記憶體(DRAM或SRAM)712載有目標掃描之邏輯至實體地址映射子表H2F_Gt,還在記憶體712上管理一有效資料計量表VDTable(自系統區塊池SysBlk載出先前版本做更新)。但相較第4圖,第7圖記憶體712上不須維護掃描標記表ScanTable、或地址標記VDAddr。
有效資料計量表VDTable記錄各實體區塊中,儲存有效內容的映射管理單位(4KB單位)之總數。處理器710係根據有效資料計量表VDTable,獲知各實體區塊的有效資料量,據以自資料區塊池DataBlk選出將被垃圾回收的來源區塊SBlk。一種實施方式是選擇有效資料量較低的N個實體區塊為來源區塊,其中,N為正整數(如16),且該些來源區塊依照有效資料量低至高編號為SBlk0…SBlk(N-1)。
特別是,處理器710並不對起始來源區塊SBlk0作有效資料判斷。圖示快閃記憶體402的空間利用是以M個邏輯至實體地址映射子表H2F_G0…H2F_G(M-1)管理,分別對應低到高邏輯地址的邏輯地址群組G0…G(M-1),M為正整數。處理器710擇定來源區塊SBlk0…SBlk(N-1)後,是按邏輯地址低至高(邏輯地址群組G0至G(M-1)),順序載出邏輯至實體地址映射子表H2F_G0…H2F_G(M-1)為掃描目標H2F_Gt,進行完整掃描(第3圖相關說明)。該處理器410係逐映射管理單位,自目標之邏輯至實體地址映射子表H2F_Gt,查詢出各目標邏輯地址所映射的映射實體地址,在其落入該等來源區塊SBlk0…SBlk(N-1)時,將該映射實體地址所標示之儲存內容收集到該目標區塊A1。
處理器710可以隨著有效資料之收集,追蹤更新該有效資料計量表VDTable。隨著有效資料搬移至該目標區塊A1,相應之來源區塊SBlk的有效資料量遞減更新於該有效資料計量表VDTable。該處理器710可根據該有效資料計量表VDTable,排除零有效資料量之來源區塊SBlk。清空的來源區塊SBlk可釋出至該備用區塊池SpareBlk。
如此設計索性省去來源區塊SBlk0…SBlk(N-1)之有效資料判斷,更節省運算資源。
一種實施方式中,該處理器710同樣依據低有效資料量至高有效資料量,將該等來源區塊SBlk0…SBlk(N-1)劃分為首要清除區塊SBlk0…SBlki、以及次要清除區塊SBlk(i+1)…SBl(N-1),並採前述餘裕量Diff概念,令該等首要清除區塊SBlk0…SBlki的有效資料收集優先於該等次要清除區塊SBlk(i+1)…SBl(N-1)。
第8圖為流程圖,根據本案一種實施方式圖解優化之垃圾收集程序。
步驟S802根據有效資料量升冪排列資料區塊池DataBlk中的區塊,按低至高有效資料量擇定N個區塊SBlk0…SBl(N-1)為來源區塊。
步驟S804載入邏輯至實體地址映射子表H2F_Gi(i=0)為掃描目標H2F_Gt。
步驟S806掃描該邏輯至實體地址映射子表H2F_Gt,將位於來源區塊SBlk0…SBl(N-1)的有效資料收集至目標區塊A1,期間動態更新該有效資料計量表VDTable。
步驟S808判斷目標區塊A1是否已滿。若是,流程結束。若否流程進行步驟S810,遞增變數i(i++),且載入邏輯至實體地址映射子表H2F_Gi為掃描目標H2F_Gt,以再次進行步驟S806作新目標H2F_Gt之掃描。
更細分為首要清除區塊SBlk0…SBlki、以及次要清除區塊SBlk(i+1)…SBl(N-1)的優化垃圾回收則可參考第6圖內容。
以上垃圾回收概念可實現快閃記憶體控制方法。
關於第4圖架構,一種快閃記憶體控制方法包括:自一快閃記憶體402選出垃圾回收用的一起始來源區塊SBlk0、以及一目標區塊A1;自該起始來源區塊SBlk0進行有效資料判斷,並以該起始來源區塊SBlk0上第一筆有效資料VD1所對應的一第一邏輯至實體地址映射子表H2F_Ga為目標(載為H2F_Gt),完整掃描之,以自來源區塊SBlk0…SBlk(N-1)尋得有效資料,收集至該目標區塊A1。來源區塊SBlk0…SBlk(N-1)更可劃分為首要清除區塊SBlk0…SBlki、以及次要清除區塊SBlk(i+1)…SBl(N-1)。首要清除區塊SBlk0…SBlki之有效資料回收優先於次要清除區塊SBlk(i+1)…SBl(N-1)。所述方法可以程式碼方式實現為一電腦程式產品,由處理器410執行。
關於第7圖架構,一種快閃記憶體控制方法包括:以複數個邏輯至實體地址映射子表H2F_G0…H2F_G(M-1)顯示一快閃記憶體402之空間利用;自該快閃記憶體402選出垃圾回收用的複數個來源區塊SBlk0…SBlk(N-1)、以及一目標區塊A1;且按邏輯地址低至高G0…G(M-1),順序選擇該等邏輯至實體地址映射子表H2F_G0…H2F_G(M-1)為目標H2F_Gt進行掃描,以自該等來源區塊SBlk0…SBlk(N-1)尋得有效資料,收集至該目標區塊A1。來源區塊SBlk0…SBlk(N-1)更可劃分為首要清除區塊SBlk0…SBlki、以及次要清除區塊SBlk(i+1)…SBl(N-1)。首要清除區塊SBlk0…SBlki之有效資料回收優先於次要清除區塊SBlk(i+1)…SBl(N-1)。所述方法可以程式碼方式實現為一電腦程式產品,由處理器410執行。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
400、700:電子系統
402:快閃記憶體
404、704:控制器
406:主機
408、708:閃存介面
409、709:主機介面
410、710:處理器
412、712:記憶體
A0:寫入區塊
A1:來源區塊
ABlk:主動區塊池
Blk:實體區塊
DataBlk:資料區塊池
GHP、GHP_a…GHP_d:全域主機頁編號
H2F_G#、H2F_G0…H2F_G(M-1)、H2F_Ga、H2F_Gb、H2F_Gh、H2F_Gi、H2F_Gj、H2F_Gk:邏輯至實體地址映射子表
H2F_Gt:掃描目標之邏輯至實體地址映射子表
Meta0:後設資料
MU0_0…MU0_3:映射管理單位
S0_0…S0_31:實體區段
S502…S514、S602…S610、S802…S810:步驟
SBlk、SBlk0…SBlk(N-1):來源區塊
ScanTable:掃描標記表
Spare_Area:備用區域
SpareBlk:備用區塊池
SysBlk:系統區塊池
D1、D2:已收集至目標區塊A1之資料
VD1、VD2:有效資料
VDAddr:地址標記
VDTable:有效資料計量表
第1圖圖解快閃記憶體一實體區塊Blk之結構;
第2圖舉例說明一來源區塊SBLK的有效資料判斷;
第3圖圖解一邏輯至實體地址映射子表H2F_G#之掃描方式;
第4圖為根據本案一種實施方式所實現的一電子系統400;
第5圖為流程圖,根據本案一種實施方式圖解優化之垃圾收集程序;
第6圖為流程圖,係關於更細分為首要清除區塊SBlk0…SBlki、以及次要清除區塊SBlk(i+1)…SBl(N-1)的優化垃圾回收;
第7圖為根據本案一種實施方式所實現的一電子系統700;以及
第8圖為流程圖,根據本案一種實施方式圖解優化之垃圾收集程序。
無
400:電子系統
402:快閃記憶體
404:控制器
406:主機
408:閃存介面
409:主機介面
410:處理器
412:記憶體
A0:寫入區塊
A1:來源區塊
ABlk:主動區塊池
DataBlk:資料區塊池
H2F_Ga、H2F_Gb:邏輯至實體地址映射子表
H2F_Gt:掃描目標之邏輯至實體地址映射子表
SBlk0…SBlk(N-1):來源區塊
ScanTable:掃描標記表
SpareBlk:備用區塊池
SysBlk:系統區塊池
D1、D2:已收集至目標區塊A1之資料
VD1、VD2:有效資料
VDAddr:地址標記
VDTable:有效資料計量表
Claims (19)
- 一種非揮發式記憶體控制器,包括: 一通訊介面,耦接一非揮發式記憶體;以及 一處理器,透過該通訊介面操作該非揮發式記憶體, 其中: 該處理器自該非揮發式記憶體選出垃圾回收用的一起始來源區塊、以及一目標區塊; 該處理器係自該起始來源區塊進行有效資料判斷,並以該起始來源區塊上第一筆有效資料所對應的一第一邏輯至實體地址映射子表為目標,掃描該第一邏輯至實體地址映射子表,尋得有效資料,收集至該目標區塊;且 該第一邏輯至實體地址映射子表之掃描完成後,該處理器係自該起始來源區塊尋得尚未收集至該目標區塊的一第二筆有效資料,並以該第二筆有效資料所對應的一第二邏輯至實體地址映射子表為目標,掃描該第二邏輯至實體地址映射子表,尋得有效資料,收集至該目標區塊。
- 如請求項1之非揮發式記憶體控制器,其中: 該處理器是依據有效資料量,自該非揮發式記憶體選出複數個來源區塊,其中包括該起始來源區塊;且 該處理器對目標之邏輯至實體地址映射子表進行掃描時,是自該等來源區塊尋得有效資料,收集至該目標區塊。
- 如請求項2之非揮發式記憶體控制器,其中: 該處理器更為各邏輯至實體地址映射子表管理一標誌,標示已完成掃描的邏輯至實體地址映射子表,以排除已收集至該目標區塊之資料的有效判斷。
- 如請求項3之非揮發式記憶體控制器,其中: 該處理器係逐映射管理單位,自目標之邏輯至實體地址映射子表,查詢出一目標邏輯地址所映射的一映射實體地址,在該映射實體地址落入該等來源區塊時,將該映射實體地址所標示之儲存內容收集到該目標區塊。
- 如請求項3之非揮發式記憶體控制器,其中: 該處理器更依據有效資料量,將該等來源區塊劃分為首要清除區塊、以及次要清除區塊; 該起始來源區塊屬於該等首要清除區塊; 該等首要清除區塊總計的一有效資料總量,不超過該目標區塊的一空白空間尺寸;且 該處理器令該等首要清除區塊的有效資料收集優先於該等次要清除區塊。
- 如請求項5之非揮發式記憶體控制器,其中: 該處理器更根據該有效資料總量、以及該空白空間尺寸之間的一差值,據以初始化一餘裕量; 隨著將有效資料自該等次要清除區塊搬移至該目標區塊,該處理器遞減該餘裕量;且 待該餘裕量遞減到一臨界值,該處理器停止將有效資料自該等次要清除區塊搬移至該目標區塊。
- 如請求項6之非揮發式記憶體控制器,其中: 該處理器係選擇較低有效資料量的N個區塊為該等來源區塊,N為正整數; 該處理器令該等來源區塊中,較低有效資料量的區塊為該等首要清除區塊,較高有效資料量的區塊為該等次要清除區塊,且最低有效資料量的首要清除區塊為該起始來源區塊; 該等首要清除區塊總計的該有效資料總量,為不超過該空白空間尺寸的極限值; 該處理器係按低有效資料量至高有效資料量,選擇該等首要清除區塊作有效資料判斷;且 評判該餘裕量的該臨界值為0。
- 如請求項3之非揮發式記憶體控制器,其中: 隨著將有效資料搬移至該目標區塊,該處理器遞減相應之來源區塊的有效資料量,以排除零有效資料量之來源區塊。
- 如請求項1之非揮發式記憶體控制器,其中: 該處理器記錄該起始來源區塊上該第一筆有效資料之實體地址為一地址標記;且 該第一邏輯至實體地址映射子表之掃描完成後,該處理器係基於該地址標記,重啟該起始來源區塊之有效資料判斷,以獲得該第二筆有效資料。
- 一種非揮發式記憶體控制方法,包括: 自一非揮發式記憶體選出垃圾 回收用的一起始來源區塊、以及一目標區塊; 自該起始來源區塊進行有效資料判斷,並以該起始來源區塊上第一筆有效資料所對應的一第一邏輯至實體地址映射子表為目標,掃描該第一邏輯至實體地址映射子表,尋得有效資料,收集至該目標區塊;且 在該第一邏輯至實體地址映射子表之掃描完成後,自該起始來源區塊尋得尚未收集至該目標區塊的一第二筆有效資料,並以該第二筆有效資料所對應的一第二邏輯至實體地址映射子表為目標,掃描該第二邏輯至實體地址映射子表,尋得有效資料,收集至該目標區塊。
- 如請求項10之非揮發式記憶體控制方法,更包括: 依據有效資料量,自該非揮發式記憶體選出複數個來源區塊,其中包括該起始來源區塊; 其中,目標之邏輯至實體地址映射子表之掃描進行時,係自該等來源區塊尋得有效資料,收集至該目標區塊。
- 如請求項11之非揮發式記憶體控制方法,更包括: 為各邏輯至實體地址映射子表管理一標誌,標示已完成掃描的邏輯至實體地址映射子表,以排除已收集至該目標區塊之資料的有效判斷。
- 如請求項12之非揮發式記憶體控制方法,更包括: 逐映射管理單位,自目標之邏輯至實體地址映射子表,查詢出一目標邏輯地址所映射的一映射實體地址;且 在該映射實體地址落入該等來源區塊時,將該映射實體地址所標示之儲存內容收集到該目標區塊。
- 如請求項12之非揮發式記憶體控制方法,更包括: 依據有效資料量,將該等來源區塊劃分為首要清除區塊、以及次要清除區塊,其中,該起始來源區塊屬於該等首要清除區塊,且該等首要清除區塊總計的一有效資料總量,不超過該目標區塊的一空白空間尺寸;且 令該等首要清除區塊的有效資料收集優先於該等次要清除區塊。
- 如請求項14之非揮發式記憶體控制方法,更包括: 根據該有效資料總量、以及該空白空間尺寸之間的一差值,據以初始化一餘裕量; 隨著將有效資料自該等次要清除區塊搬移至該目標區塊,該處理器遞減該餘裕量;且 待該餘裕量遞減到一臨界值,該處理器停止將有效資料自該等次要清除區塊搬移至該目標區塊。
- 如請求項15之非揮發式記憶體控制方法,更包括: 選擇較低有效資料量的N個區塊為該等來源區塊,N為正整數;且 令該等來源區塊中,較低有效資料量的區塊為該等首要清除區塊,較高有效資料量的區塊為該等次要清除區塊,其中,該等首要清除區塊總計的該有效資料總量,為不超過該空白空間尺寸的極限值,且最低有效資料量的首要清除區塊為該起始來源區塊;且 按低有效資料量至高有效資料量,選擇該等首要清除區塊作有效資料判斷; 其中,評判該餘裕量,決定是否停止將有效資料自該等次要清除區塊搬移至該目標區塊的該臨界值為0。
- 如請求項12之非揮發式記憶體控制方法,更包括: 隨著將有效資料搬移至該目標區塊,遞減相應之來源區塊的有效資料量,以排除零有效資料量之來源區塊。
- 如請求項10之非揮發式記憶體控制方法,更包括: 記錄該起始來源區塊上該第一筆有效資料之實體地址為一地址標記;且 在該第一邏輯至實體地址映射子表之掃描完成後,基於該地址標記,重啟該起始來源區塊之有效資料判斷,以獲得該第二筆有效資料。
- 一種電腦程式產品,包含程式碼,由一處理器執行,實施如請求項10至18中任一項所述的非揮發式記憶體控制方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW112143854A TWI867845B (zh) | 2023-11-14 | 2023-11-14 | 非揮發式記憶體控制器、控制方法、以及電腦程式產品 |
| CN202311621394.8A CN120011251A (zh) | 2023-11-14 | 2023-11-29 | 非挥发式存储器控制器、控制方法、以及电脑程序产品 |
| US18/932,790 US20250156318A1 (en) | 2023-11-14 | 2024-10-31 | Non-volatile memory controller and control method, and computer program products |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW112143854A TWI867845B (zh) | 2023-11-14 | 2023-11-14 | 非揮發式記憶體控制器、控制方法、以及電腦程式產品 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI867845B true TWI867845B (zh) | 2024-12-21 |
| TW202520272A TW202520272A (zh) | 2025-05-16 |
Family
ID=94769822
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW112143854A TWI867845B (zh) | 2023-11-14 | 2023-11-14 | 非揮發式記憶體控制器、控制方法、以及電腦程式產品 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20250156318A1 (zh) |
| CN (1) | CN120011251A (zh) |
| TW (1) | TWI867845B (zh) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7447869B2 (en) * | 2005-04-07 | 2008-11-04 | Ati Technologies, Inc. | Method and apparatus for fragment processing in a virtual memory system |
| US9489296B1 (en) * | 2012-10-17 | 2016-11-08 | Western Digital Technologies, Inc. | Methods, devices and systems for hardware-based garbage collection in solid state drives |
| US9542278B2 (en) * | 2013-12-26 | 2017-01-10 | Silicon Motion, Inc. | Data storage device and flash memory control method |
| US20210240612A1 (en) * | 2020-02-04 | 2021-08-05 | Western Digital Technologies, Inc. | Storage System and Method for Automatic Data Phasing |
| WO2021221727A1 (en) * | 2020-04-28 | 2021-11-04 | Western Digital Technologies, Inc. | Condensing logical to physical table pointers in ssds utilizing zoned namespaces |
| TWI805445B (zh) * | 2022-01-04 | 2023-06-11 | 慧榮科技股份有限公司 | 借助額外實體位址資訊來進行記憶體裝置之存取控制的方法、記憶體裝置以及記憶體裝置的控制器 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20180135188A (ko) * | 2017-06-12 | 2018-12-20 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
| US11663136B2 (en) * | 2020-06-24 | 2023-05-30 | Western Digital Technologies, Inc. | Storage capacity recovery source selection |
| US12019878B2 (en) * | 2021-11-22 | 2024-06-25 | Western Digital Technologies, Inc. | Pre-validation of blocks for garbage collection |
-
2023
- 2023-11-14 TW TW112143854A patent/TWI867845B/zh active
- 2023-11-29 CN CN202311621394.8A patent/CN120011251A/zh active Pending
-
2024
- 2024-10-31 US US18/932,790 patent/US20250156318A1/en active Pending
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7447869B2 (en) * | 2005-04-07 | 2008-11-04 | Ati Technologies, Inc. | Method and apparatus for fragment processing in a virtual memory system |
| US9489296B1 (en) * | 2012-10-17 | 2016-11-08 | Western Digital Technologies, Inc. | Methods, devices and systems for hardware-based garbage collection in solid state drives |
| US9542278B2 (en) * | 2013-12-26 | 2017-01-10 | Silicon Motion, Inc. | Data storage device and flash memory control method |
| US20210240612A1 (en) * | 2020-02-04 | 2021-08-05 | Western Digital Technologies, Inc. | Storage System and Method for Automatic Data Phasing |
| WO2021221727A1 (en) * | 2020-04-28 | 2021-11-04 | Western Digital Technologies, Inc. | Condensing logical to physical table pointers in ssds utilizing zoned namespaces |
| US11200162B2 (en) * | 2020-04-28 | 2021-12-14 | Western Digital Technologies, Inc. | Condensing logical to physical table pointers in SSDs utilizing zoned namespaces |
| TWI805445B (zh) * | 2022-01-04 | 2023-06-11 | 慧榮科技股份有限公司 | 借助額外實體位址資訊來進行記憶體裝置之存取控制的方法、記憶體裝置以及記憶體裝置的控制器 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202520272A (zh) | 2025-05-16 |
| US20250156318A1 (en) | 2025-05-15 |
| CN120011251A (zh) | 2025-05-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11216185B2 (en) | Memory system and method of controlling memory system | |
| US10789162B2 (en) | Memory system and method for controlling nonvolatile memory | |
| CN111033477B (zh) | 逻辑到物理映射 | |
| CN110955384B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
| US10120606B2 (en) | Data storage devices including storage controller circuits to select data streams based on application tags and computing systems including the same | |
| CN108572796A (zh) | 具有异构nvm类型的ssd | |
| CN106874211A (zh) | 存储器系统及非易失性存储器的控制方法 | |
| US20190391756A1 (en) | Data storage device and cache-diversion method thereof | |
| US8332575B2 (en) | Data management systems, methods and computer program products using a phase-change random access memory for selective data maintenance | |
| US11422930B2 (en) | Controller, memory system and data processing system | |
| CN112684976A (zh) | 用于执行迁移操作的存储器系统及其操作方法 | |
| JP2021533467A (ja) | 論理対物理テーブルフラグメント | |
| CN113448487A (zh) | 写入闪存管理表的计算机可读取存储介质、方法及装置 | |
| CN112825025A (zh) | 控制器及其操作方法 | |
| US20240370196A1 (en) | Storage device and operating method of storage device | |
| US20250348430A1 (en) | Memory controller, memory system managing logical-to-physical mapping table, method, and storage medium thereof | |
| TWI867845B (zh) | 非揮發式記憶體控制器、控制方法、以及電腦程式產品 | |
| TWI876673B (zh) | 非揮發式記憶體控制器、控制方法、以及電腦程式產品 | |
| US20210089223A1 (en) | Data storage device and non-volatile memory control method | |
| CN110968525B (zh) | Ftl提供的缓存、其优化方法与存储设备 | |
| JP6721765B2 (ja) | メモリシステムおよび制御方法 | |
| CN120010771A (zh) | 一种数据处理方法、装置、存储设备及介质 | |
| JP2025522175A (ja) | データ検索を実行するメモリコントローラおよびメモリシステム | |
| CN121364813A (zh) | 基于数据类型的数据搜集方法及装置、存储介质及计算机程序产品 | |
| JP2025528633A (ja) | メモリコントローラ、データセット管理取り扱いのためのメモリシステム、方法、およびその記憶媒体 |