TWI828391B - 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 - Google Patents
資料儲存裝置與資料儲存裝置之緩存器大小估計方法 Download PDFInfo
- Publication number
- TWI828391B TWI828391B TW111140786A TW111140786A TWI828391B TW I828391 B TWI828391 B TW I828391B TW 111140786 A TW111140786 A TW 111140786A TW 111140786 A TW111140786 A TW 111140786A TW I828391 B TWI828391 B TW I828391B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory blocks
- memory
- predetermined
- setting value
- current setting
- Prior art date
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims description 47
- 239000000872 buffer Substances 0.000 title abstract description 24
- 230000015654 memory Effects 0.000 claims abstract description 348
- 230000008569 process Effects 0.000 claims description 14
- 230000006870 function Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種資料儲存裝置,包括一記憶體裝置與一記憶體控制器。記憶體裝置包含複數記憶體區塊,其包括一或多個尚未被寫入資料的空閒記憶體區塊,與一或多個被配置作為緩存器用以自一主機裝置接收資料的既定記憶體區塊。記憶體控制器取得記憶體區塊之剩餘可抹除次數之一總量,並且根據當前剩餘的空閒記憶體區塊之一數量、所述一或多個既定記憶體區塊中已被寫入資料的既定記憶體區塊之一數量、一既定臨界值與剩餘可抹除次數之總量決定所述一或多個既定記憶體區塊之一數量之一當前設定值,並且根據當前設定值配置該數量之既定記憶體區塊作為緩存器。
Description
本發明係關於一種估計當前寫入緩存器大小的方法,特別是一種可準確地估計當前寫入緩存器大小的方法。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合安全數位(Secure Digital,縮寫為SD)/ 多媒體卡(Multi Media Card,縮寫為MMC)規格、複合式快閃記憶體(Compact flash,縮寫為CF)規格、記憶條(Memory Stick,縮寫為MS)規格與極數位(Extreme Digital,縮寫為XD)規格的記憶卡、固態硬碟、嵌入式多媒體記憶卡(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。
通常資料儲存裝置會配置寫入緩存器(write buffer)自主機接收資料。寫入緩存器的種類與大小配置會影響資料的寫入速度,也會影響主機對於寫入資料量的安排,最終影響到資料儲存裝置的存取效能。此外,資料儲存裝置的存取效能更將主導使用者感受。
因此,如何準確地估計當前可配置的寫入緩存器大小,以避免資料的寫入速度產生大幅度變化,並維持較佳的使用者感受為本領域值得關注的課題。
本發明之一目的在於提供一種可準確地估計當前寫入緩存器大小的方法,以避免資料的寫入速度產生大幅度變化,並維持較佳的使用者感受。
根據本發明之一實施例,一種資料儲存裝置,包括一記憶體裝置與一記憶體控制器。記憶體裝置包含複數記憶體區塊,該等記憶體區塊包括一或多個尚未被寫入資料的空閒記憶體區塊,以及一或多個被配置作為緩存器用以自一主機裝置接收資料的既定記憶體區塊。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置,記憶體控制器取得記憶體區塊之剩餘可抹除次數之一總量,並且根據當前剩餘的空閒記憶體區塊之一數量、所述一或多個既定記憶體區塊中已被寫入資料的既定記憶體區塊之一數量、一既定臨界值以及剩餘可抹除次數之總量決定所述一或多個既定記憶體區塊之一數量之一當前設定值,並且根據當前設定值配置該數量之既定記憶體區塊作為緩存器。
根據本發明之一實施例,一種緩存器大小的估計方法,適用於一資料儲存裝置,資料儲存裝置包括一記憶體裝置與一記憶體控制器,記憶體裝置包含複數記憶體區塊,記憶體區塊包括一或多個尚未被寫入資料的空閒記憶體區塊,以及一或多個被配置作為緩存器用以自一主機裝置接收資料的既定記憶體區塊,該方法包括:取得當前剩餘的空閒記憶體區塊之一數量;取得所述一或多個既定記憶體區塊中已被寫入資料的既定記憶體區塊之一數量;取得記憶體區塊之剩餘可抹除次數之一總量;根據當前剩餘的空閒記憶體區塊之數量、已被寫入資料的既定記憶體區塊之數量、記憶體區塊之剩餘可抹除次數之總量以及一既定臨界值決定所述一或多個既定記憶體區塊之一數量之一當前設定值;以及根據當前設定值配置該數量之既定記憶體區塊作為緩存器。
在下文中,描述了許多具體細節以提供對本發明實施例的透徹理解。然而,本領域技術人員仍將理解如何在缺少一個或多個具體細節或依賴於其他方法、元件或材料的情況下實施本發明。在其他情況下,未詳細示出或描述公知的結構、材料或操作,以避免模糊本發明的主要概念。
在整個說明書中對「一實施例」或「一範例」的引用意味著結合該實施例或範例所描述的特定特徵、結構或特性係包括於本發明之多個實施例的至少一個實施例中。因此,貫穿本說明書在各個地方出現的短語「於本發明之一實施例中」、「根據本發明之一實施例」、「於一範例中」或「根據本發明之一範例」不一定都指到相同的實施例或範例。此外,特定特徵、結構或特性可以在一個或多個實施例或範例中以任何合適的組合和/或子組合進行結合。
此外,為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置的方塊圖範例。資料儲存裝置100可包括一記憶體裝置120與一記憶體控制器110。記憶體控制器110用以存取(Access)記憶體裝置120及控制記憶體裝置120之運作。記憶體裝置120可為一非揮發性(non-volatile,縮寫為NV)記憶體裝置(例如,一快閃記憶體(flash memory)),並且可包括一或多個記憶元件(例如,一或多個快閃記憶體晶粒、一或多個快閃記憶體晶片、或其他類似元件)。
資料儲存裝置100可耦接至一主機裝置130。主機裝置130可至少包括一處理器、一電源電路、以及至少一隨機存取記憶體(Random Access Memory,縮寫為RAM),例如至少一動態隨機存取記憶體(Dynamic RAM,縮寫為DRAM)、至少一靜態隨機存取記憶體(Static RAM,縮寫為SRAM)等(以上未示於第1圖)。處理器與隨機存取記憶體可透過一匯流排彼此相互連接,並且可耦接至電源電路以取得電源。處理器可控制主機裝置130之運作。電源電路可將電源供應至處理器、隨機存取記憶體以及資料儲存裝置100,例如輸出一或多個驅動電壓至資料儲存裝置100。資料儲存裝置100可自主機裝置130取得所述驅動電壓作為資料儲存裝置100的電源,並且為主機裝置130提供儲存空間。
根據本發明之一實施例,記憶體控制器110可包括一微處理器112、一唯讀記憶體(Read Only Memory,縮寫為ROM)112M、一記憶體介面114、一緩存記憶體116、與一主機介面118。唯讀記憶體112M係用以儲存程式碼112C。而微處理器112則用來執行程式碼112C以控制對記憶體裝置120之存取操作。程式碼112C可包括一或多個程式模組,例如啟動載入(boot loader)程式碼。當資料儲存裝置100自主機裝置130取得電源時,微處理器112可藉由執行程式碼112C執行資料儲存裝置100之一初始化程序。於初始化程序中,微處理器112可自記憶體裝置120載入一組系統內編程(In-System Programming,縮寫為ISP)程式碼(未示於第1圖)。微處理器112可執行該組系統內編程程式碼,使得資料儲存裝置100可具備各種功能。根據本發明之一實施例,該組系統內編程程式碼可包括,但不限於:一或多個與記憶體存取(例如,讀取、寫入與抹除)相關的程式模組,例如一讀取操作模組、一查找表格模組、一損耗均衡(wear leveling)模組、一讀取刷新(read refresh) 模組、一讀取回收(read reclaim)模組、一垃圾回收模組、一非預期斷電恢復(Sudden Power Off Recovery,縮寫為SPOR)模組、以及一不可更正錯誤更正碼(Uncorrectable Error Correction Code,縮寫為UECC)模組,其分別被提供用以執行對應之讀取、查找表格、損耗均衡、讀取刷新、讀取回收、垃圾回收、非預期斷電恢復以及對偵測到的UECC錯誤進行錯誤處理等操作。
記憶體介面114包含了一編碼器132以及一解碼器134,其中編碼器132用來對需被寫入記憶體裝置120的資料進行編碼,例如執行錯誤更正碼(ECC)編碼,而解碼器134用來對從記憶體裝置120所讀出的資料進行解碼。
於典型狀況下,記憶體裝置120包含了多個記憶元件,例如多個快閃記憶體晶粒或多個快閃記憶體晶片,各記憶元件可包含複數個記憶體區塊(Block)。記憶體控制器110對記憶體裝置120進行抹除資料運作係以區塊為單位來進行。另外,一記憶體區塊可記錄(包含)特定數量的資料頁(Page),例如,實體資料頁,其中記憶體控制器110對記憶體裝置120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用記憶體介面114來控制記憶體裝置120之存取運作(尤其是對至少一記憶體區塊或至少一資料頁之存取運作)、利用緩存記憶體116進行所需之緩存處理、以及利用主機介面118來與主機裝置130溝通。
在一實施例中,記憶體控制器110透過主機介面118並使用一標準通訊協定與主機裝置130溝通。舉例而言,上述之標準通訊協定包含(但不限於):通用序列匯流排(Universal Serial Bus ,縮寫為USB)標準、SD介面標準、超高速一代 (Ultra High Speed-I,縮寫為UHS-I) 介面標準、超高速二代 (Ultra High Speed-II,縮寫為UHS-II) 介面標準、CF介面標準、MMC介面標準、eMMC介面標準、UFS介面標準、高技術組態(Advanced Technology Attachment,縮寫為ATA)標準、序列高技術組態(Serial ATA,縮寫為SATA)標準、快捷外設互聯標準(Peripheral Component Interconnect Express,縮寫為PCI-E)標準、並列先進附件(Parallel Advanced Technology Attachment,縮寫為PATA)標準等。
在一實施例中,緩存記憶體116係以隨機存取記憶體來實施。例如,緩存記憶體116可以是靜態隨機存取記憶體,但本發明亦不限於此。於其他實施例中,緩存記憶體116可以是動態隨機存取記憶體。
在一實施例中,資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦…等等。而在另一實施例中,資料儲存裝置100可以是固態硬碟或符合UFS或eMMC規格之嵌入式儲存裝置,並且可被設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是該電子裝置的一處理器。
主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者主機裝置130可對資料儲存裝置100發出指令以進一步控制、管理資料儲存裝置100。
一般而言,記憶體控制器110可配置一或多個既定記憶體區塊作為快取記憶體,或稱緩存器(buffer),亦可稱為現用區塊(current block)或活用區塊(active block),用以自主機裝置130接收資料。被配置的既定記憶體區塊可以是單層單元(Single-level cell,縮寫為SLC)記憶體區塊、多層單元(Multiple-level cell,縮寫為MLC)記憶體區塊、三層單元(Triple-level cell,縮寫為TLC)記憶體區塊、或其他更多層單元的記憶體區塊。待緩存器的使用率達到一定程度時,記憶體控制器110可再執行沖出(flush)操作,用以將緩存器儲存的資料寫入另一記憶體區塊(例如,將多個SLC記憶體區塊儲存的資料合併並儲存於一個TLC 記憶體區塊),並使其成為記憶體裝置120之使用者區域或資料區域的資料區塊,或直接將作為緩存器使用之記憶體區塊更新成為使用者區域或資料區域的資料區塊,如此一來,緩存器的記憶體空間可被釋放並可再度被使用。
此外,主機裝置130可決定是否於資料儲存裝置100端啟用寫入加速器(WriteBooster)功能。當寫入加速器功能被啟用後,記憶體控制器110會配置SLC 記憶體區塊作為緩存器用以自主機裝置130接收資料。由於將資料寫入SLC 記憶體區塊的速度會比將資料寫入其他類型之記憶體區塊(例如,MLC、TLC或其他)來的快,藉此可使資料的寫入運作於高速模式。
主機裝置130可藉由發出對應的指令對資料儲存裝置100進行寫入加速器的控制。例如,主機裝置130可藉由發出對應的指令設立對應的旗標或者發出啟用寫入加速器的指令使資料儲存裝置100端啟用寫入加速器功能。
當寫入加速器功能被啟用時,主機裝置130可進一步發出詢問指令至資料儲存裝置100,用以詢問目前由記憶體控制器110所配置的緩存器大小(size)。舉例而言,主機裝置130可以讀取屬性的方式對資料儲存裝置100詢問寫入加速器的狀態,其中的屬性可包含當前的寫入加速器緩存器大小(Current_Write_Booster_Buffer_Size) 、剩餘可用的寫入加速器緩存器大小(Available_Write_Booster_Buffer_Size)等。
於接收到主機裝置130發出的詢問指令後,主機裝置130可計算或估計當前的緩存器大小(例如,計算或估計可被配置作為緩存器的既定記憶體區塊的數量),並將估計值回傳給主機裝置130。既有的估計方式僅會考慮記憶體裝置120內空閒(spare)記憶體區塊的數量,其中空閒記憶體區塊為資料已被抹除且尚未被寫入新的資料,也尚未被被配置作為任何其他用途使用的記憶體區塊。然而,僅考慮空閒記憶體區塊的數量將會在資料被寫入已配置的既定記憶體區塊後,開始產生錯誤的估計結果,導致主機裝置130無法取得準確的緩存器大小資訊。而由於主機裝置130會根據所取得的緩存器大小資訊對後續的寫入資料做安排,錯誤的緩存器大小資訊會進一步導致資料寫入速度產生大幅度變化,此為不樂見的結果。
為解決上述問題,本發明提出一種緩存器大小的估計方法,可準確地計算或估計當前可配置的寫入緩存器大小,以避免資料的寫入速度產生大幅度變化。
第2圖係顯示根據本發明之第一實施例所述之緩存器大小估計方法簡要流程圖,包括由記憶體控制器110所執行的以下步驟:
步驟S202: 取得當前剩餘的空閒記憶體區塊之一數量。
步驟S204: 取得被配置作為緩存器使用的一或多個既定記憶體區塊中已被寫入資料的既定記憶體區塊之一數量。
步驟S206: 根據當前剩餘的空閒記憶體區塊之數量、已被寫入資料的既定記憶體區塊之數量以及一既定臨界值決定既定記憶體區塊之一數量之一當前設定值(即,最新的緩存器大小設定值)。
步驟S208: 根據當前設定值配置該數量之既定記憶體區塊作為緩存器。
於本發明之一實施例中,如第2圖所示之緩存器大小之估計流程可響應於接收到主機裝置130發出的詢問指令後開始執行,並且可於決定出當前設定值後,將此設定值回傳給主機裝置130。
根據本發明之一實施例,於步驟S206中,記憶體控制器110可更根據所取得之當前剩餘的空閒記憶體區塊之數量與已被寫入資料的既定記憶體區塊之數量決定有效的空閒記憶體區塊之一數量,並且根據有效的空閒記憶體區塊之數量與既定臨界值之一差值決定當前設定值。
更具體的說,於本發明之一實施例中,有效的空閒記憶體區塊之數量為當前剩餘的空閒記憶體區塊之數量與已被寫入資料的既定記憶體區塊之數量之一總和。
此外,根據本發明之一實施例,於步驟S206中,記憶體控制器110可更判斷有效的空閒記憶體區塊之數量是否小於既定臨界值,其中的既定臨界值可以是空閒記憶體區塊之一最小允許數量,或者配置用以觸發一垃圾回收(Garbage Collection,縮寫為GC)程序之一空閒記憶體區塊數量臨界值。即,當當前剩餘的空閒記憶體區塊的數量被判斷小於既定臨界值時,記憶體控制器110會觸發垃圾回收程序,用以將儲存無效資料的記憶體空間釋放出來,使得空閒記憶體區塊的數量可上升。
於本發明之一實施例中,若有效的空閒記憶體區塊之數量小於既定臨界值時,記憶體控制器110可將當前設定值設定為0,並且於步驟S208中將此當前設定值回傳給主機裝置130。若有效的空閒記憶體區塊之數量不小於(即,大於或等於)既定臨界值時,記憶體控制器110可將當前設定值設定為有效的空閒記憶體區塊之數量與既定臨界值之差值,以避免於自主機裝置130接收資料的過程中,因空閒記憶體區塊的不足進而觸發垃圾回收程序。
第3圖係顯示根據本發明之第一實施例所述之緩存器大小估計方法詳細流程圖,於第3圖之範例中,寫入加速器功能已被啟用,因此配置作為緩存器使用的既定記憶體區塊為SLC記憶體區塊,並且本發明之第一實施例所述之緩存器大小估計方法包括響應於接收到主機裝置130發出的詢問指令後由記憶體控制器110所開始執行的以下步驟:
步驟S302: 計算或取得當前剩餘的空閒記憶體區塊之一數量(Left_Spare_Blk)。記憶體控制器110可根據其所記錄的相關數值計算出當前剩餘的空閒記憶體區塊之數量,或者可藉由讀取對應之用以紀錄剩餘的空閒記憶體區塊之數量之一計數值取得此資訊。
步驟S304: 計算或取得被配置作為緩存器使用的一或多個SLC記憶體區塊(即,既定記憶體區塊)中已被寫入資料的SLC記憶體區塊之一數量(Used_SLC_Blk)。記憶體控制器110可根據其所記錄的相關數值計算出已被寫入資料的既定記憶體區塊之數量,或者可藉由讀取對應之用以紀錄已被寫入資料的既定記憶體區塊之數量之一計數值取得此資訊。
步驟S306: 計算有效的空閒記憶體區塊之一數量(Valid_Spare_Blk),其中記憶體控制器110可將當前剩餘的空閒記憶體區塊之數量(Left_Spare_Blk)加上已被寫入資料的SLC記憶體區塊之數量(Used_SLC_Blk)而得有效的空閒記憶體區塊之數量(Valid_Spare_Blk),若以算式表示,即為(Valid_Spare_Blk= Left_Spare_Blk+ Used_SLC_Blk)。由於已被寫入資料的既定記憶體區塊(於此實施例為SLC記憶體區塊)可以經由沖出(flush)操作將其所儲存之資料整理並儲存於另一個記憶體區塊(例如,TLC 記憶體區塊),或者經由解除映射關係(unmap)的操作捨棄其所儲存之資料,並且在這些操作完成後,這些既定記憶體區塊便可以重新被釋放為空閒記憶體區塊再重複使用,因此,於計算有效的空閒記憶體區塊之數量時,可取當前剩餘的空閒記憶體區塊之數量與已被寫入資料的既定記憶體區塊之數量之一總和作為有效的空閒記憶體區塊之數量。
步驟S308: 判斷有效的空閒記憶體區塊之數量(Valid_Spare_Blk)是否大於等於一既定臨界值,例如,將觸發垃圾回收(GC)程序之一空閒記憶體區塊數量臨界值(GC_TH)。若否,代表有效的空閒記憶體區塊之數量小於既定臨界值,執行步驟S310。若是,代表有效的空閒記憶體區塊之數量不小於既定臨界值,執行步驟S312。
步驟S310: 記憶體控制器110可將既定記憶體區塊之數量之當前設定值設定為0,若以算式表示,即為(Current_Size=0),其中Current_Size的數值代表記憶體控制器110當前所估計的寫入加速器緩存器大小,因此記憶體控制器110當前所估計的寫入加速器緩存器大小為0,並將此估計值回傳給主機裝置130。
步驟S312: 記憶體控制器110可將當前設定值設定為有效的空閒記憶體區塊之數量與既定臨界值之差值。若以算式表示,即為(Current_Size=Valid_Spare_Blk- GC_TH)。因此記憶體控制器110當前所估計的寫入加速器緩存器大小為(Valid_Spare_Blk- GC_TH)。
步驟S314: 記憶體控制器110將此估計值(即,當前設定值(Current_Size))回傳給主機裝置130。
藉由實施本發明提出緩存器大小估計方法,可準確地計算或估計當前可配置的寫入緩存器大小,以避免資料的寫入速度產生大幅度變化。
於本發明之第二實施例中,於估計緩存器大小時,記憶體控制器110可進一步參考當前尚可對資料儲存裝置100的記憶體區塊進行抹除操作的剩餘次數,如此可於資料儲存裝置100已被使用一段時間後,對資料儲存裝置100提供更佳的保護。
第4圖係顯示根據本發明之第二實施例所述之緩存器大小估計方法簡要流程圖,包括由記憶體控制器110所執行的以下步驟:
步驟S402: 取得當前剩餘的空閒記憶體區塊之一數量。
步驟S404: 取得被配置作為緩存器使用的一或多個既定記憶體區塊中已被寫入資料的既定記憶體區塊之一數量。
步驟S406: 取得資料儲存裝置100之記憶體區塊之剩餘可抹除次數之一總量。
步驟S408: 根據當前剩餘的空閒記憶體區塊之數量、已被寫入資料的既定記憶體區塊之數量、記憶體區塊之剩餘可抹除次數之總量以及一既定臨界值決定所述一或多個既定記憶體區塊之一數量之一當前設定值 (即,最新的緩存器大小設定值)。
步驟S410: 根據當前設定值配置該數量之既定記憶體區塊作為緩存器。
於本發明之一實施例中,如第4圖所示之緩存器大小之估計流程可響應於接收到主機裝置130發出的詢問指令後開始執行,並且可於決定出當前設定值後,將此設定值回傳給主機裝置130。
根據本發明之一實施例,記憶體控制器110可為每個記憶體區塊記錄其已抹除次數(Erase_Cnt),並且可將資料儲存裝置100之所有記憶體區塊的已抹除次數(Erase_Cnt)加總,以獲得資料儲存裝置100所對應之抹除次數的總量。此外,記憶體控制器110可另記錄一抹除次數總量上限值,此數值可以是依據客戶需求而設定的數值,代表資料儲存裝置100可被允許的抹除次數總量上限,並且可於製作過程中被寫入唯讀記憶體(ROM)112M內。記憶體控制器110可藉由將抹除次數總量上限減去當前資料儲存裝置100所對應之抹除次數的總量取得資料儲存裝置100之記憶體區塊之剩餘可抹除次數之一總量(Left_Erase_Cnt)。
此外,根據本發明之一實施例,於步驟S408中,記憶體控制器110可更根據所取得之當前剩餘的空閒記憶體區塊之數量與已被寫入資料的既定記憶體區塊之數量決定有效的空閒記憶體區塊之一數量,並且根據有效的空閒記憶體區塊之數量與既定臨界值之一差值決定當前設定值(其可以是一初階設定值)。
更具體的說,於本發明之一實施例中,有效的空閒記憶體區塊之數量為當前剩餘的空閒記憶體區塊之數量與已被寫入資料的既定記憶體區塊之數量之一總和。
此外,根據本發明之一實施例,於步驟S408中,記憶體控制器110可更判斷有效的空閒記憶體區塊之數量是否小於既定臨界值,其中的既定臨界值可以是空閒記憶體區塊之一最小允許數量,或者配置用以觸發一垃圾回收(GC)程序之一空閒記憶體區塊數量臨界值。
於本發明之一實施例中,若有效的空閒記憶體區塊之數量小於既定臨界值時,記憶體控制器110可將當前設定值設定為0,並且於步驟S410中將此當前設定值回傳給主機裝置130。若有效的空閒記憶體區塊之數量不小於(即,大於或等於)既定臨界值時,記憶體控制器110可將當前設定值設定為有效的空閒記憶體區塊之數量與既定臨界值之差值,以避免於自主機裝置130接收資料的過程中,因空閒記憶體區塊的不足進而觸發垃圾回收程序。
此外,於步驟S408中,記憶體控制器110可更根據剩餘可抹除次數之一總量(Left_Erase_Cnt)判斷是否修改當前設定值。當剩餘可抹除次數之總量不小於當前設定值時,記憶體控制器110不修改當前設定值。當剩餘可抹除次數之總量小於當前設定值時,記憶體控制器110可將當前設定值修改為剩餘可抹除次數之總量之一數值,以避免資料儲存裝置100之記憶體區塊之抹除次數的總量超過抹除次數總量上限值。需注意的是,由於記憶體控制器110對記憶體裝置120進行資料抹除的操作係以區塊為單位來進行,因此,剩餘可抹除次數之總量可被視為當前尚可進行抹除操作的記憶體區塊的數量。
第5圖係顯示根據本發明之第二實施例所述之緩存器大小估計方法詳細流程圖,於第5圖之範例中,寫入加速器功能已被啟用,因此配置作為緩存器使用的既定記憶體區塊為SLC記憶體區塊,並且本發明之第二實施例所述之緩存器大小估計方法包括響應於接收到主機裝置130發出的詢問指令後由記憶體控制器110所開始執行的以下步驟:
步驟S502: 計算或取得當前剩餘的空閒記憶體區塊之一數量(Left_Spare_Blk)。記憶體控制器110可根據其所記錄的相關數值計算出當前剩餘的空閒記憶體區塊之數量,或者可藉由讀取對應之用以紀錄剩餘的空閒記憶體區塊之數量之一計數值取得此資訊。
步驟S504: 計算或取得被配置作為緩存器使用的一或多個SLC記憶體區塊(即,既定記憶體區塊)中已被寫入資料的SLC記憶體區塊之一數量(Used_SLC_Blk)。記憶體控制器110可根據其所記錄的相關數值計算出已被寫入資料的既定記憶體區塊之數量,或者可藉由讀取對應之用以紀錄已被寫入資料的既定記憶體區塊之數量之一計數值取得此資訊。
步驟S506: 計算有效的空閒記憶體區塊之一數量(Valid_Spare_Blk),其中記憶體控制器110可將當前剩餘的空閒記憶體區塊之數量(Left_Spare_Blk)加上已被寫入資料的SLC記憶體區塊之數量(Used_SLC_Blk)而得有效的空閒記憶體區塊之數量(Valid_Spare_Blk),若以算式表示,即為(Valid_Spare_Blk= Left_Spare_Blk+ Used_SLC_Blk)。由於已被寫入資料的既定記憶體區塊(於此實施例為SLC記憶體區塊)可以經由沖出(flush)操作將其所儲存之資料整理並儲存於另一個記憶體區塊(例如,TLC 記憶體區塊),或者經由解除映射關係(unmap)的操作捨棄其所儲存之資料,並且在這些操作完成後,這些既定記憶體區塊便可以重新被釋放為空閒記憶體區塊再重複使用,因此,於計算有效的空閒記憶體區塊之數量時,可取當前剩餘的空閒記憶體區塊之數量與已被寫入資料的既定記憶體區塊之數量之一總和作為有效的空閒記憶體區塊之數量。
步驟S508: 判斷有效的空閒記憶體區塊之數量(Valid_Spare_Blk)是否大於等於一既定臨界值,例如,將觸發垃圾回收(GC)程序之一空閒記憶體區塊數量臨界值(GC_TH)。若否,代表有效的空閒記憶體區塊之數量小於既定臨界值,執行步驟S510。若是,代表有效的空閒記憶體區塊之數量不小於既定臨界值,執行步驟S512。
步驟S510: 記憶體控制器110可將既定記憶體區塊之數量之當前設定值設定為0,若以算式表示,即為(Current_Size=0),其中Current_Size的數值代表記憶體控制器110當前所估計的寫入加速器緩存器大小,因此記憶體控制器110當前所估計的寫入加速器緩存器大小為0,並將此估計值回傳給主機裝置130。
步驟S512: 記憶體控制器110可將當前設定值設定為有效的空閒記憶體區塊之數量與既定臨界值之差值。若以算式表示,即為(Current_Size=Valid_Spare_Blk- GC_TH)。
步驟S514: 記憶體控制器110可計算或取得剩餘可抹除次數之一總量(Left_Erase_Cnt)。如上所述,記憶體控制器110可藉由將抹除次數總量上限減去當前資料儲存裝置100所對應之抹除次數的總量取得資料儲存裝置100之記憶體區塊之剩餘可抹除次數之總量(Left_Erase_Cnt)。
步驟S516: 判斷剩餘可抹除次數之總量(Left_Erase_Cnt)是否大於或等於於步驟S512中所得的當前設定值。若否,代表剩餘可抹除次數之總量小於當前設定值(Left_Erase_Cnt<Current_Size),執行用以修改當前設定值的步驟S518與步驟S520。若是,代表剩餘可抹除次數之總量不小於當前設定值(Left_Erase_Cnt>=Current_Size),記憶體控制器110不修改當前設定值,直接執行步驟S520。因此,當剩餘可抹除次數之總量不小於當前設定值時,記憶體控制器110當前所估計的寫入加速器緩存器大小仍為(Valid_Spare_Blk- GC_TH)。
步驟S518: 記憶體控制器110可將當前設定值修改為剩餘可抹除次數之總量之一數值。若以算式表示,即為(Current_Size= Left_Erase_Cnt)。因此記憶體控制器110當前所估計的寫入加速器緩存器大小為Left_Erase_Cnt。
步驟S520: 記憶體控制器110將估計值(即,當前設定值(Current_Size))回傳給主機裝置130。
綜上所述,藉由實施本發明提出緩存器大小估計方法,可準確地估計當前可配置的寫入緩存器大小,以避免資料的寫入速度產生大幅度變化。此外,於本發明之一些實施例中,於估計緩存器大小時,記憶體控制器110可進一步參考當前尚可對資料儲存裝置100的記憶體區塊進行抹除操作的剩餘次數,如此可於資料儲存裝置100已被使用一段時間後,對資料儲存裝置100提供更佳的保護。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩存記憶體
118:主機介面
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置的方塊圖範例。
第2圖係顯示根據本發明之第一實施例所述之緩存器大小估計方法簡要流程圖。
第3圖係顯示根據本發明之第一實施例所述之緩存器大小估計方法詳細流程圖。
第4圖係顯示根據本發明之第二實施例所述之緩存器大小估計方法簡要流程圖。
第5圖係顯示根據本發明之第二實施例所述之緩存器大小估計方法詳細流程圖。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩存記憶體
118:主機介面
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
Claims (14)
- 一種資料儲存裝置,包括: 一記憶體裝置,包含複數記憶體區塊,該等記憶體區塊包括一或多個尚未被寫入資料的空閒記憶體區塊,以及一或多個被配置作為緩存器用以自一主機裝置接收資料的既定記憶體區塊;以及 一記憶體控制器,耦接該記憶體裝置,用以存取該記憶體裝置,該記憶體控制器取得該等記憶體區塊之剩餘可抹除次數之一總量,並且根據當前剩餘的空閒記憶體區塊之一數量、所述一或多個既定記憶體區塊中已被寫入資料的既定記憶體區塊之一數量、一既定臨界值以及該等記憶體區塊之剩餘可抹除次數之該總量決定所述一或多個既定記憶體區塊之一數量之一當前設定值,並且根據該當前設定值配置該數量之既定記憶體區塊作為緩存器。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器更根據當前剩餘的空閒記憶體區塊之該數量與已被寫入資料的既定記憶體區塊之該數量之一總和決定有效的空閒記憶體區塊之一數量。
- 如申請專利範圍第2項所述之資料儲存裝置,其中該記憶體控制器更判斷有效的空閒記憶體區塊之該數量是否小於該既定臨界值,當有效的空閒記憶體區塊之該數量小於該既定臨界值時,該記憶體控制器將該當前設定值設定為0。
- 如申請專利範圍第3項所述之資料儲存裝置,其中當有效的空閒記憶體區塊之該數量不小於該既定臨界值時,該記憶體控制器將該當前設定值設定為有效的空閒記憶體區塊之該數量與該既定臨界值之一差值。
- 如申請專利範圍第4項所述之資料儲存裝置,其中該記憶體控制器更判斷該等記憶體區塊之剩餘可抹除次數之該總量是否小於該當前設定值,當該等記憶體區塊之剩餘可抹除次數之該總量小於該當前設定值時,該記憶體控制器將該當前設定值修改為該等記憶體區塊之剩餘可抹除次數之該總量之一數值。
- 如申請專利範圍第5項所述之資料儲存裝置,其中當該等記憶體區塊之剩餘可抹除次數之該總量不小於該當前設定值時,該記憶體控制器不修改該當前設定值。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該既定臨界值為配置用以觸發一垃圾回收程序之一空閒記憶體區塊數量臨界值。
- 一種緩存器大小的估計方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置與一記憶體控制器,該記憶體裝置包含複數記憶體區塊,該等記憶體區塊包括一或多個尚未被寫入資料的空閒記憶體區塊,以及一或多個被配置作為緩存器用以自一主機裝置接收資料的既定記憶體區塊,該方法包括: 取得當前剩餘的空閒記憶體區塊之一數量; 取得所述一或多個既定記憶體區塊中已被寫入資料的既定記憶體區塊之一數量; 取得該等記憶體區塊之剩餘可抹除次數之一總量; 根據當前剩餘的空閒記憶體區塊之該數量、已被寫入資料的既定記憶體區塊之該數量、該等記憶體區塊之剩餘可抹除次數之該總量以及一既定臨界值決定所述一或多個既定記憶體區塊之一數量之一當前設定值;以及 根據該當前設定值配置該數量之既定記憶體區塊作為緩存器。
- 如申請專利範圍第8項所述之緩存器大小的估計方法,其中根據當前剩餘的空閒記憶體區塊之該數量、已被寫入資料的既定記憶體區塊之該數量、該等記憶體區塊之剩餘可抹除次數之該總量以及該既定臨界值決定所述一或多個既定記憶體區塊之該數量之該當前設定值之步驟更包括: 更根據當前剩餘的空閒記憶體區塊之該數量與已被寫入資料的既定記憶體之該數量之一總和決定有效的空閒記憶體區塊之一數量。
- 如申請專利範圍第9項所述之緩存器大小的估計方法,其中根據當前剩餘的空閒記憶體區塊之該數量、已被寫入資料的既定記憶體區塊之該數量、該等記憶體區塊之剩餘可抹除次數之該總量以及該既定臨界值決定所述一或多個既定記憶體區塊之該數量之該當前設定值之步驟更包括: 判斷有效的空閒記憶體區塊之該數量是否小於該既定臨界值;以及 當有效的空閒記憶體區塊之該數量小於該既定臨界值時,將該當前設定值設定為0。
- 如申請專利範圍第10項所述之緩存器大小的估計方法,其中根據當前剩餘的空閒記憶體區塊之該數量、已被寫入資料的既定記憶體區塊之該數量、該等記憶體區塊之剩餘可抹除次數之該總量以及該既定臨界值決定所述一或多個既定記憶體區塊之該數量之該當前設定值之步驟更包括: 當有效的空閒記憶體區塊之該數量不小於該既定臨界值時,將該當前設定值設定為有效的空閒記憶體區塊之該數量與該既定臨界值之一差值。
- 如申請專利範圍第11項所述之緩存器大小的估計方法,其中根據當前剩餘的空閒記憶體區塊之該數量、已被寫入資料的既定記憶體區塊之該數量、該等記憶體區塊之剩餘可抹除次數之該總量以及該既定臨界值決定所述一或多個既定記憶體區塊之該數量之該當前設定值之步驟更包括: 判斷該等記憶體區塊之剩餘可抹除次數之該總量是否小於該當前設定值;以及 當該等記憶體區塊之剩餘可抹除次數之該總量小於該當前設定值時,將該當前設定值修改為該等記憶體區塊之剩餘可抹除次數之該總量之一數值。
- 如申請專利範圍第12項所述之緩存器大小的估計方法,其中根據當前剩餘的空閒記憶體區塊之該數量、已被寫入資料的既定記憶體區塊之該數量、該等記憶體區塊之剩餘可抹除次數之該總量以及該既定臨界值決定所述一或多個既定記憶體區塊之該數量之該當前設定值之步驟更包括: 當該等記憶體區塊之剩餘可抹除次數之該總量不小於該當前設定值時,不修改該當前設定值。
- 如申請專利範圍第8項所述之緩存器大小的估計方法,其中該既定臨界值為配置用以觸發一垃圾回收程序之一空閒記憶體區塊數量臨界值。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111140786A TWI828391B (zh) | 2022-10-27 | 2022-10-27 | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 |
CN202211411221.9A CN117950572A (zh) | 2022-10-27 | 2022-11-11 | 数据储存装置与数据储存装置的缓存器大小估计方法 |
US18/219,101 US20240143208A1 (en) | 2022-10-27 | 2023-07-07 | Data storage device and method for determining buffer size of the data storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111140786A TWI828391B (zh) | 2022-10-27 | 2022-10-27 | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI828391B true TWI828391B (zh) | 2024-01-01 |
TW202418286A TW202418286A (zh) | 2024-05-01 |
Family
ID=90458897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111140786A TWI828391B (zh) | 2022-10-27 | 2022-10-27 | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240143208A1 (zh) |
CN (1) | CN117950572A (zh) |
TW (1) | TWI828391B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101341471A (zh) * | 2005-12-23 | 2009-01-07 | Nxp股份有限公司 | 动态高速缓存管理的设备和方法 |
CN104903841A (zh) * | 2012-12-31 | 2015-09-09 | 桑迪士克科技股份有限公司 | 用于基于主机缓冲器的估计填充级别重新分配存储设备资源的存储设备和方法 |
US10448418B2 (en) * | 2015-08-18 | 2019-10-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Decreasing free-riding data traffic in uplink scheduling |
CN115080457A (zh) * | 2021-03-10 | 2022-09-20 | 爱思开海力士有限公司 | 控制器及其操作方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8560770B2 (en) * | 2009-11-13 | 2013-10-15 | Seagate Technology Llc | Non-volatile write cache for a data storage system |
US8788783B1 (en) * | 2010-06-18 | 2014-07-22 | Disney Enterprises, Inc. | Dynamically tuning the size of a cache stored in a shared memory |
US9455048B2 (en) * | 2013-06-28 | 2016-09-27 | Sandisk Technologies Llc | NAND flash word line management using multiple fragment pools |
TWI516922B (zh) * | 2014-03-12 | 2016-01-11 | 慧榮科技股份有限公司 | 資料儲存裝置及快閃記憶體零散資料收集方法 |
US10430328B2 (en) * | 2014-09-16 | 2019-10-01 | Sandisk Technologies Llc | Non-volatile cache and non-volatile storage medium using single bit and multi bit flash memory cells or different programming parameters |
US10127157B2 (en) * | 2014-10-06 | 2018-11-13 | SK Hynix Inc. | Sizing a cache while taking into account a total bytes written requirement |
US20170083444A1 (en) * | 2015-09-22 | 2017-03-23 | Advanced Micro Devices, Inc. | Configuring fast memory as cache for slow memory |
TWI603193B (zh) * | 2016-03-31 | 2017-10-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
TWI606388B (zh) * | 2016-12-14 | 2017-11-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
CN111066007B (zh) * | 2017-07-07 | 2023-10-31 | 美光科技公司 | 对受到管理的nand的rpmb改进 |
US10545685B2 (en) * | 2017-08-30 | 2020-01-28 | Micron Technology, Inc. | SLC cache management |
TWI749279B (zh) * | 2018-12-18 | 2021-12-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
-
2022
- 2022-10-27 TW TW111140786A patent/TWI828391B/zh active
- 2022-11-11 CN CN202211411221.9A patent/CN117950572A/zh active Pending
-
2023
- 2023-07-07 US US18/219,101 patent/US20240143208A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101341471A (zh) * | 2005-12-23 | 2009-01-07 | Nxp股份有限公司 | 动态高速缓存管理的设备和方法 |
CN104903841A (zh) * | 2012-12-31 | 2015-09-09 | 桑迪士克科技股份有限公司 | 用于基于主机缓冲器的估计填充级别重新分配存储设备资源的存储设备和方法 |
US10448418B2 (en) * | 2015-08-18 | 2019-10-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Decreasing free-riding data traffic in uplink scheduling |
CN115080457A (zh) * | 2021-03-10 | 2022-09-20 | 爱思开海力士有限公司 | 控制器及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202418286A (zh) | 2024-05-01 |
US20240143208A1 (en) | 2024-05-02 |
CN117950572A (zh) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US20130013853A1 (en) | Command executing method, memory controller and memory storage apparatus | |
TWI459400B (zh) | 記憶體儲存裝置、及其記憶體控制器與電源控制方法 | |
TW201706847A (zh) | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201740265A (zh) | 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI479315B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
TWI802068B (zh) | 記憶體效能優化方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW202205095A (zh) | 資料儲存裝置與資料處理方法 | |
CN113885808B (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
US10339045B2 (en) | Valid data management method and storage controller | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
TWI644210B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI534814B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI828391B (zh) | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 | |
TWI822398B (zh) | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 | |
CN114328297A (zh) | 映射表管理方法、存储器控制电路单元与存储器存储装置 | |
TWI814625B (zh) | 資料儲存裝置與寫入緩存器管理方法 | |
TWI810095B (zh) | 資料儲存裝置與寫入緩存器管理方法 | |
CN112799601A (zh) | 有效数据合并方法、存储器存储装置及控制电路单元 | |
CN107229413B (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 | |
TWI760262B (zh) | 資料儲存裝置與資料處理方法 | |
TWI814666B (zh) | 資料儲存裝置與動態決定緩存器大小的方法 |