CN117908760A - 数据储存装置与数据储存装置的缓存器大小估计方法 - Google Patents
数据储存装置与数据储存装置的缓存器大小估计方法 Download PDFInfo
- Publication number
- CN117908760A CN117908760A CN202211411243.5A CN202211411243A CN117908760A CN 117908760 A CN117908760 A CN 117908760A CN 202211411243 A CN202211411243 A CN 202211411243A CN 117908760 A CN117908760 A CN 117908760A
- Authority
- CN
- China
- Prior art keywords
- memory blocks
- data
- free memory
- memory
- storage device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 60
- 239000000872 buffer Substances 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000008569 process Effects 0.000 claims description 10
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- 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/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; 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/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
- 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
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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]
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Communication Control (AREA)
- Read Only Memory (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 FlashStorage,缩写为UFS)已经广泛地被应用在多种用途上。
通常数据储存装置会配置写入缓存器(write buffer)自主机接收数据。写入缓存器的种类与大小配置会影响数据的写入速度,也会影响主机对于写入数据量的安排,最终影响到数据储存装置的存取效能。此外,数据储存装置的存取效能更将主导使用者感受。
因此,如何准确地估计当前可配置的写入缓存器大小,以避免数据的写入速度产生大幅度变化,并维持较佳的使用者感受为本领域值得关注的课题。
发明内容
本发明之一目的在于提供一种可准确地估计当前写入缓存器大小的方法,以避免数据的写入速度产生大幅度变化,并维持较佳的使用者感受。
根据本发明的一实施例,一种数据储存装置,包括一存储器装置与一存储器控制器。存储器装置包含多个存储器区块,这些存储器区块包括一或多个尚未被写入数据的空闲存储器区块,以及一或多个被配置作为缓存器用以自一主机装置接收数据的既定存储器区块。存储器控制器耦接存储器装置,用以存取存储器装置,存储器控制器根据当前剩余的空闲存储器区块的一数量、所述一或多个既定存储器区块中已被写入数据的既定存储器区块的一数量以及一既定临界值决定所述一或多个既定存储器区块的一数量的一当前设定值,并且根据当前设定值配置该数量的既定存储器区块作为缓存器。
根据本发明的一实施例,一种缓存器大小的估计方法,适用于一数据储存装置,数据储存装置包括一存储器装置与一存储器控制器,存储器装置包含多个存储器区块,存储器区块包括一或多个尚未被写入数据的空闲存储器区块,以及一或多个被配置作为缓存器用以自一主机装置接收数据的既定存储器区块,该方法包括:取得当前剩余的空闲存储器区块的一数量;取得所述一或多个既定存储器区块中已被写入数据的既定存储器区块的一数量;根据当前剩余的空闲存储器区块的数量、已被写入数据的既定存储器区块的数量以及一既定临界值决定所述一或多个既定存储器区块的一数量的一当前设定值;以及根据当前设定值配置该数量的既定存储器区块作为缓存器。
附图说明
图1显示根据本发明的一实施例所述的数据储存装置的方块图范例。
图2显示根据本发明的第一实施例所述的缓存器大小估计方法简要流程图。
图3显示根据本发明的第一实施例所述的缓存器大小估计方法详细流程图。
图4显示根据本发明的第二实施例所述的缓存器大小估计方法简要流程图。
图5显示根据本发明的第二实施例所述的缓存器大小估计方法详细流程图。
【符号说明】
100:数据储存装置
110:存储器控制器
112:微处理器
112C:程序码
112M:只读存储器
114:存储器接口
116:缓存存储器
118:主机接口
120:存储器装置
130:主机装置
132:编码器
134:解码器
具体实施方式
在下文中,描述了许多具体细节以提供对本发明实施例的透彻理解。然而,本领域技术人员仍将理解如何在缺少一个或多个具体细节或依赖于其他方法、元件或材料的情况下实施本发明。在其他情况下,未详细示出或描述公知的结构、材料或操作,以避免模糊本发明的主要概念。
在整个说明书中对“一实施例”或“一范例”的引用意味着结合该实施例或范例所描述的特定特征、结构或特性包括于本发明的多个实施例的至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语“于本发明的一实施例中”、“根据本发明的一实施例”、“于一范例中”或“根据本发明的一范例”不一定都指到相同的实施例或范例。此外,特定特征、结构或特性可以在一个或多个实施例或范例中以任何合适的组合和/或子组合进行结合。
此外,为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附式,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软体、硬体、韧体、或上述任意组合来实现。
图1显示根据本发明的一实施例所述的数据储存装置的方块图范例。数据储存装置100可包括一存储器装置120与一存储器控制器110。存储器控制器110用以存取(Access)存储器装置120及控制存储器装置120的运作。存储器装置120可为一非挥发性(non-volatile,缩写为NV)存储器装置(例如,一快闪存储器(flash memory)),并且可包括一或多个记忆元件(例如,一或多个快闪存储器晶粒、一或多个快闪存储器芯片、或其他类似元件)。
数据储存装置100可耦接至一主机装置130。主机装置130可至少包括一处理器、一电源电路、以及至少一随机存取存储器(Random Access Memory,缩写为RAM),例如至少一动态随机存取存储器(Dynamic RAM,缩写为DRAM)、至少一静态随机存取存储器(StaticRAM,缩写为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可包括一或多个程序模块,例如启动载入(bootloader)程序码。当数据储存装置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沟通。举例而言,上述的标准通讯协定包含(但不限于):通用串行总线(UniversalSerial Bus,缩写为USB)标准、SD接口标准、超高速一代(Ultra High Speed-I,缩写为UHS-I)接口标准、超高速二代(Ultra High Speed-II,缩写为UHS-II)接口标准、CF接口标准、MMC接口标准、eMMC接口标准、UFS接口标准、高技术组态(Advanced TechnologyAttachment,缩写为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提供更佳的保护。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (14)
1.一种数据储存装置,包括:
一存储器装置,包含多个存储器区块,这些存储器区块包括一或多个尚未被写入数据的空闲存储器区块,以及一或多个被配置作为缓存器用以自一主机装置接收数据的既定存储器区块;以及
一存储器控制器,耦接该存储器装置,用以存取该存储器装置,该存储器控制器根据当前剩余的空闲存储器区块的一数量、所述一或多个既定存储器区块中已被写入数据的既定存储器区块的一数量以及一既定临界值决定所述一或多个既定存储器区块的一数量的一当前设定值,并且根据该当前设定值配置该数量的既定存储器区块作为缓存器。
2.如权利要求1所述的数据储存装置,其特征在于,该存储器控制器更根据当前剩余的空闲存储器区块的该数量与已被写入数据的既定存储器区块的该数量决定有效的空闲存储器区块的一数量,并且根据有效的空闲存储器区块的该数量与该既定临界值的一差值决定该当前设定值。
3.如权利要求2所述的数据储存装置,其特征在于,有效的空闲存储器区块的该数量为当前剩余的空闲存储器区块的该数量与已被写入数据的既定存储器区块的该数量的一总和。
4.如权利要求2所述的数据储存装置,其特征在于,当有效的空闲存储器区块的该数量小于该既定临界值时,该存储器控制器将该当前设定值设定为0。
5.如权利要求2所述的数据储存装置,其特征在于,当有效的空闲存储器区块的该数量不小于该既定临界值时,该存储器控制器将该当前设定值设定为有效的空闲存储器区块的该数量与该既定临界值的该差值。
6.如权利要求1所述的数据储存装置,其特征在于,该既定临界值为空闲存储器区块的一最小允许数量。
7.如权利要求1所述的数据储存装置,其特征在于,该既定临界值为配置用以触发一垃圾回收程序的一空闲存储器区块数量临界值。
8.一种缓存器大小的估计方法,适用于一数据储存装置,该数据储存装置包括一存储器装置与一存储器控制器,该存储器装置包含多个存储器区块,这些存储器区块包括一或多个尚未被写入数据的空闲存储器区块,以及一或多个被配置作为缓存器用以自一主机装置接收数据的既定存储器区块,该方法包括:
取得当前剩余的空闲存储器区块的一数量;
取得所述一或多个既定存储器区块中已被写入数据的既定存储器区块的一数量;
根据当前剩余的空闲存储器区块的该数量、已被写入数据的既定存储器区块的该数量以及一既定临界值决定所述一或多个既定存储器区块的一数量的一当前设定值;以及
根据该当前设定值配置该数量的既定存储器区块作为缓存器。
9.如权利要求8所述的缓存器大小的估计方法,其特征在于,根据当前剩余的空闲存储器区块的该数量、已被写入数据的既定存储器区块的该数量以及该既定临界值决定所述一或多个既定存储器区块的该数量的该当前设定值的步骤还包括:
根据当前剩余的空闲存储器区块的该数量与已被写入数据的既定存储器区块的该数量决定有效的空闲存储器区块的一数量;以及
根据有效的空闲存储器区块的该数量与该既定临界值的一差值决定该当前设定值。
10.如权利要求9所述的缓存器大小的估计方法,其特征在于,有效的空闲存储器区块的该数量为当前剩余的空闲存储器区块的该数量与已被写入数据的既定存储器区块的该数量的一总和。
11.如权利要求9所述的缓存器大小的估计方法,其特征在于,根据有效的空闲存储器区块的该数量与该既定临界值的该差值决定该当前设定值的步骤还包括:
判断有效的空闲存储器区块的该数量是否小于该既定临界值;以及
当有效的空闲存储器区块的该数量小于该既定临界值时,将该当前设定值设定为0。
12.如权利要求9所述的缓存器大小的估计方法,其特征在于,根据有效的空闲存储器区块的该数量与该既定临界值的该差值决定该当前设定值的步骤还包括:
当有效的空闲存储器区块的该数量不小于该既定临界值时,将该当前设定值设定为有效的空闲存储器区块的该数量与该既定临界值的该差值。
13.如权利要求8所述的缓存器大小的估计方法,其特征在于,该既定临界值为空闲存储器区块的一最小允许数量。
14.如权利要求8所述的缓存器大小的估计方法,其特征在于,该既定临界值为配置用以触发一垃圾回收程序的一空闲存储器区块数量临界值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111139506A TWI822398B (zh) | 2022-10-18 | 2022-10-18 | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 |
TW111139506 | 2022-10-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117908760A true CN117908760A (zh) | 2024-04-19 |
Family
ID=89722528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211411243.5A Pending CN117908760A (zh) | 2022-10-18 | 2022-11-11 | 数据储存装置与数据储存装置的缓存器大小估计方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240126463A1 (zh) |
CN (1) | CN117908760A (zh) |
TW (1) | TWI822398B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101692553B1 (ko) * | 2010-04-05 | 2017-01-03 | 삼성전자주식회사 | 통신 시스템에서 업링크 스케쥴링 방법 및 장치 |
US9474067B2 (en) * | 2013-03-26 | 2016-10-18 | Qualcomm Incorporated | WLAN uplink scheduler for LTE-WLAN aggregation |
US20170257883A1 (en) * | 2014-09-03 | 2017-09-07 | Nec Corporation | Communication system, base station, user equipment, communication method, and recording medium |
US11412406B2 (en) * | 2020-02-13 | 2022-08-09 | Charter Communications Operating, Llc | Apparatus and methods for user device buffer management in wireless networks |
-
2022
- 2022-10-18 TW TW111139506A patent/TWI822398B/zh active
- 2022-11-11 CN CN202211411243.5A patent/CN117908760A/zh active Pending
-
2023
- 2023-07-10 US US18/219,705 patent/US20240126463A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
TWI822398B (zh) | 2023-11-11 |
US20240126463A1 (en) | 2024-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107608908B (zh) | 用于数据储存装置的磨损平均方法 | |
US9582416B2 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
KR101966693B1 (ko) | Lba 비트맵 사용 | |
US8843697B2 (en) | Operating method of data storage device | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US9164833B2 (en) | Data storage device, operating method thereof and data processing system including the same | |
US9436267B2 (en) | Data storage device | |
CN108369818A (zh) | 一种闪存设备的刷新方法和装置 | |
US20150127886A1 (en) | Memory system and method | |
US11204864B2 (en) | Data storage devices and data processing methods for improving the accessing performance of the data storage devices | |
CN111414131B (zh) | 数据存储装置、其操作方法和包括其的存储系统 | |
US10339045B2 (en) | Valid data management method and storage controller | |
CN114063893A (zh) | 数据储存装置与数据处理方法 | |
CN109840218B (zh) | 有效数据管理方法以及存储控制器 | |
US9733832B2 (en) | Buffer memory accessing method, memory controller and memory storage device | |
CN113885808A (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
KR20190118016A (ko) | 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
US10564886B2 (en) | Methods and apparatus for controlling flash translation layer recycle from host | |
TWI828391B (zh) | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 | |
TWI822398B (zh) | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 | |
TWI810095B (zh) | 資料儲存裝置與寫入緩存器管理方法 | |
US20240143226A1 (en) | Data storage device and method for managing a write buffer | |
CN112799601A (zh) | 有效数据合并方法、存储器存储装置及控制电路单元 | |
TW202418285A (zh) | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 | |
TW202418286A (zh) | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |