CN117908761A - 数据储存装置与写入缓存器管理方法 - Google Patents
数据储存装置与写入缓存器管理方法 Download PDFInfo
- Publication number
- CN117908761A CN117908761A CN202211415270.XA CN202211415270A CN117908761A CN 117908761 A CN117908761 A CN 117908761A CN 202211415270 A CN202211415270 A CN 202211415270A CN 117908761 A CN117908761 A CN 117908761A
- Authority
- CN
- China
- Prior art keywords
- memory
- write
- count value
- host device
- memory blocks
- 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
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/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
- 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
- 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
-
- 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/0614—Improving the reliability of 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (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)自主机接收数据。产品开发者会对数据储存装置执行写入缓存器的各种相关测试,以确认数据储存装置的写入操作是否正常,并判断数据储存装置是否可正确地记录写入缓存器相关的各项参数。若所设计的参数维护方式不够完善,可能造成参数于部分测试情境中可正确地被记录,但于其他测试情境中无法正确地被记录的结果。为解决此问题,需要一种于各种测试情境中皆可正确地维护写入缓存器的相关参数的写入缓存器管理方法。
发明内容
本发明之一目的在于提供一种可正确地维护写入缓存器的相关参数的写入缓存器管理方法。
根据本发明的一实施例,一种数据储存装置,包括一存储器装置与一存储器控制器。存储器装置包含多个存储器区块,存储器区块包括多个被配置作为缓存器用以自一主机装置接收数据的既定存储器区块。存储器控制器耦接存储器装置,用以存取存储器装置,存储器控制器响应于由主机装置所发出的一写入指令执行一写入操作,于写入操作中,存储器控制器维护既定存储器区块中已被写入数据的既定存储器区块的一第一数量计数值、判断既定存储器区块中响应于写入操作而被释放的存储器区块的一数量,并且根据数量维护一第二数量计数值。于写入操作完成后,存储器控制器更判断主机装置是否要求对既定存储器区块执行一冲出(flush)操作,并且于判断主机装置要求对既定存储器区块执行一冲出操作时,存储器控制器根据第二数量计数值更新第一数量计数值。
根据本发明的另一实施例,一种写入缓存器管理方法,适用于一数据储存装置,数据储存装置包括一存储器装置与一存储器控制器,存储器装置包含多个存储器区块,存储器区块包括多个被配置作为缓存器用以自一主机装置接收数据的既定存储器区块,该方法包括:响应于由主机装置所发出的一写入指令执行一写入操作,其中响应于由主机装置所发出的写入指令执行写入操作的步骤还包括:于写入操作中维护既定存储器区块中已被写入数据的既定存储器区块的一第一数量计数值;判断既定存储器区块中响应于写入操作而被释放的存储器区块的一数量;以及根据该数量维护一第二数量计数值;该方法还包括:判断主机装置是否要求对既定存储器区块执行一冲出(flush)操作;以及于判断主机装置要求对既定存储器区块执行一冲出操作时,根据第二数量计数值更新第一数量计数值。
附图说明
图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可再将缓存器储存的数据写入另一存储器区块(例如,将多个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)等。
如上所述,产品开发者会对数据储存装置100执行写入缓存器的各种相关测试,以确认数据储存装置利用写入加速器缓存器的写入操作是否正常,并判断数据储存装置是否可正确地记录与写入加速器缓存器相关的各项参数。为能正确记录参数以避免发生参数记录错误的情况,需要一种于各种测试情境中皆可正确地维护写入缓存器的相关参数的写入缓存器管理方法。
图2显示根据本发明的第一实施例所述的写入缓存器管理方法简要流程图,包括由存储器控制器110所执行的以下步骤:
步骤S202:响应于由主机装置130所发出的一写入指令执行一写入操作。于执行写入操作的过程中,存储器控制器110可同步地维护被配置作为缓存器用以自主机装置130接收数据的既定存储器区块中已被写入数据的既定存储器区块的一第一数量计数值、判断既定存储器区块中响应于本次写入操作而被释放的存储器区块的一数量、并且根据该数量维护一第二数量计数值。于本发明的实施例中,所述第一数量计数值用以纪录(计数)当前被配置的既定存储器区块中已被写入数据的既定存储器区块的数量,而所述第二数量计数值用以纪录(计数)在当前已被写入数据的存储器区块中,会被释放的存储器区块的数量。
步骤S204:于写入操作完成后,判断主机装置130是否要求对被配置作为缓存器使用的既定存储器区块执行一冲出(flush)操作。于本发明的实施例中,冲出操作可以是前述将多个做为缓存器使用的SLC存储器区块所储存的数据合并写入另一个存储器区块的操作。于本发明的实施例中,若主机装置130要求对被配置作为缓存器使用的既定存储器区块执行冲出操作,存储器控制器110将于适当时机执行前述数据合并的操作,而于步骤S204中,若判断主机装置130要求对被配置作为缓存器使用的既定存储器区块执行冲出操作,将接续执行步骤S206。
步骤S206:根据第二数量计数值更新第一数量计数值,使第一数量计数值反映出有存储器区块被释放的结果。
另一方面,若判断主机装置130未要求对被配置作为缓存器使用的既定存储器区块执行冲出操作,则不根据第二数量计数值更新第一数量计数值。
根据本发明的一实施例,存储器控制器110可藉由自第一数量计数值减去第二数量计数值以更新第一数量计数值。此外,存储器控制器110可更响应于由主机装置130所发出的一询问指令回传一可用写入缓存器大小给主机装置130,其中的可用写入缓存器大小可以是上述的剩余可用的写入加速器缓存器大小(Available_Write_Booster_Buffer_Size),并且存储器控制器110可根据第一数量计数值计算出可用写入缓存器大小。
由于写入缓存器的相关参数会经常性地随着写入缓存器的使用状态变化,而本发明所提出的写入缓存器管理方法可正确地维护写入缓存器的参数,例如,所述第一数量计数值,使第一数量计数值于适当的时机反映出有存储器区块被释放的结果,因此,由存储器控制器110根据第一数量计数值所计算出的可用写入缓存器大小也能真实地反映出当前可用的写入加速器缓存器大小(Available_Write_Booster_Buffer_Size)。
如上所述,主机装置130可藉由发出对应的指令对数据储存装置100进行写入加速器的控制。举例而言,根据本发明的一实施例,主机装置130可藉由发出对应的指令设立一既定旗标的状态,例如,藉由将既定旗标设定为不同数值,以分别表示启用或不启用将缓存器内的数据冲入使用者区域或数据区域的冲出操作(即,前述将多个做为缓存器使用的SLC存储器区块所储存的数据合并写入另一存储器区块的操作)。因此,根据本发明的一实施例,存储器控制器110可根据既定旗标的设定值判断主机装置130是否要求对作为缓存器使用的既定存储器区块执行冲出操作。
图3显示根据本发明的第一实施例所述的写入缓存器管理方法的详细流程图,于图3的范例中,写入加速器功能已被启用,因此配置作为缓存器使用的既定存储器区块为SLC存储器区块,并且本发明的第一实施例所述的写入缓存器管理方法包括响应于接收到主机装置130发出的写入指令后由存储器控制器110所开始执行的以下步骤:
步骤S302:响应于写入指令进入写入流程以执行一或多个写入工作。
步骤S304:将数据写入配置作为缓存器使用的SLC存储器区块。
步骤S306:判断当前的SLC存储器区块是否被写满。若是,执行步骤S308。若否,执行步骤S310。
步骤S308:取新的SLC存储器区块(例如,取一空闲的存储器区块并执行对应的抹除操作用以将此存储器区块配置为SLC存储器区块),并且更新数量计数值(例如,前述第一数量计数值)SLCCnt,例如,将数量计数值SLCCnt加1。若以算式表示,即为(SLCCnt=SLCCnt+1)。于本发明的实施例中,所述的数量计数值SLCCnt用以纪录(计数)已被写入数据的SLC存储器区块的数量。
若于SLC存储器区块已被写满时本次写入工作所欲写入的数据尚有部分未被写入,则步骤S308可还包括将剩余的数据写入新的SLC存储器区块的操作。
步骤S310:判断已被写入数据的SLC存储器区块中是否有任何存储器区块会被释放。若是,执行步骤S312。若否,执行步骤S314。
根据本发明的一实施例,存储器控制器110可根据已被写入数据的SLC存储器区块中的有效数据量是否为零来判断此存储器区块是否会被释放。更具体的说,存储器控制器110可为各存储器区块记录其有效数据页数量(Valid Page Count)。当一个存储器区块的有效数据页数量为零时,代表其中所储存的数据已皆为无效数据,因此,存储器控制器110可释放此存储器区块。
一般而言,于实体存储器区块所储存的数据会有一对应的逻辑地址,例如,逻辑区块地址(Logical Block Address,缩写LBA),其中的逻辑区块地址可以是主机系统130端用来辨识逻辑储存空间的地址。当存储器控制器110接收到对应于一逻辑地址的写入数据时,会判断存储器装置120内是否已存有该逻辑地址所对应的数据。若有,代表主机系统130更新了此逻辑地址的数据,因此,目前已被写入存储器装置120内的该逻辑地址所对应的数据会被标记于无效数据,且储存该数据的存储器区块所对应的有效数据页数量会被对应地调整,例如,被减少。此外,当一存储器区块所储存的数据因为使用者的删除,或其他的操作而成为无效数据时,该存储器区块所对应的有效数据页数量也会被对应地调整。因此,存储器控制器110可藉由判断一存储器区块的有效数据页数量是否为零来判断是否可释放该存储器区块。
于本发明的实施例中,存储器控制器110可于步骤S310中对目前已被写入数据的SLC存储器区块逐一检视其有效数据页数量,以判断是否有任何存储器区块会响应于目前的写入操作被释放,并记录下响应于目前的写入操作会被释放的存储器区块数量。
步骤S312:假设目前有n个存储器区块于步骤S310中判断会被释放,则存储器控制器110根据该数量维护另一数量计数值(例如,前述第二数量计数值)MinuSLCCnt。若以算式表示,即为(MinuSLCCnt=MinuSLCCnt+n)。
步骤S314:存储器控制器110可判断是否已完成所有的写入工作。若是,执行步骤S316。若否,返回步骤S304执行将数据写入SLC存储器区块的次一写入工作。
步骤S316:判断是否需对写入缓存器执行冲出(flush)操作,若是,执行步骤S318,若否,则可结束此流程。如上所述,存储器控制器110可根据既定旗标的设定值判断主机装置130是否要求对写入缓存器执行冲出操作。
步骤S318:自SLCCnt减去MinuSLCCnt,若以算式表示,即为(SLCCnt=SLCCnt-MinuSLCCn),并且将数量计数值MinuSLCCnt重置为0。
另一方面,若判断无需对写入缓存器执行冲出操作,则不改变数量计数值SLCCnt与MinuSLCCnt。
如上所述,存储器控制器110可根据既定旗标的设定值判断是否需对写入缓存器执行冲出操作。此外,如上所述,本发明所提出的写入缓存器管理可还包括存储器控制器110响应于由主机装置130所发出的一询问指令回传一可用写入缓存器大小给主机装置130,其中的可用写入缓存器大小可以是上述的剩余可用的写入加速器缓存器大小(Available_Write_Booster_Buffer_Size),并且存储器控制器110可根据数量计数值SLCCnt计算出可用写入缓存器大小。例如,自当前的写入加速器缓存器大小(Current_Write_Booster_Buffer_Size)减去数量计数值SLCCnt可得剩余可用的写入加速器缓存器大小(Available_Write_Booster_Buffer_Size)。
藉由实施本发明提出写入缓存器管理方法,可正确记录写入缓存器的相关参数,例如,数量计数值SLCCnt,以避免发生参数记录错误的情况,并可确保主机装置130也可接收到正确的参数值,例如,剩余可用的写入加速器缓存器大小(Available_Write_Booster_Buffer_Size)。
根据本发明的第二实施例,由于写入缓存器的冲出操作可被整合于存储器装置的垃圾回收(Garbage Collection,缩写为GC)操作中,因此存储器控制器110也可将写入缓存器相关的数量计数值的更新操作整合于垃圾回收(Garbage Collection,缩写为GC)的流程中。
图4显示根据本发明的第二实施例所述的写入缓存器管理方法简要流程图,包括由存储器控制器110所执行的以下步骤:
步骤S402:响应于由主机装置130所发出的一写入指令执行一写入操作。于执行写入操作的过程中,存储器控制器110可同步地维护被配置作为缓存器用以自主机装置130接收数据的既定存储器区块中已被写入数据的既定存储器区块的一第一数量计数值、判断既定存储器区块中响应于本次写入操作而被释放的存储器区块的一数量、并且根据响应于本次写入操作而被释放的存储器区块的数量维护一第二数量计数值。于本发明的实施例中,所述第一数量计数值用以纪录(计数)当前被配置的既定存储器区块中已被写入数据的既定存储器区块的数量,而所述第二数量计数值用以纪录(计数)在当前已被写入数据的存储器区块中,会被释放的存储器区块的数量。
步骤S404:于写入操作完成后,执行一垃圾回收操作,用以收集零散分布于不同存储器区块中的有效数据,并将有效数据集中写入新的存储器区块中。根据本发明的一实施例,于垃圾回收操作中,存储器控制器110也可判断响应于垃圾回收操作而被释放的存储器区块的一数量,并且根据响应于垃圾回收操作而被释放的存储器区块的数量维护第二数量计数值。
步骤S406:于垃圾回收操作完成后,判断主机装置130是否要求对被配置作为缓存器使用的既定存储器区块执行一冲出(flush)操作。于本发明的实施例中,冲出操作可以是前述将多个做为缓存器使用的SLC存储器区块所储存的数据合并写入另一个存储器区块的操作。于本发明的实施例中,若判断主机装置130要求对被配置作为缓存器使用的既定存储器区块执行冲出操作,将接续执行步骤S408。若判断主机装置130未要求对被配置作为缓存器使用的既定存储器区块执行冲出操作,则可结束此流程。
步骤S408:对既定存储器区块执行冲出操作,并且根据第二数量计数值更新第一数量计数值,使第一数量计数值反映出有存储器区块被释放的结果。需注意的是,由于存储器装置的垃圾回收操作也可直接包含写入缓存器的冲出操作,即,存储器控制器110可于收集有效数据的过程中,一并收集作为缓存器使用的既定存储器区块内的有效数据,因此,于本发明的一些实施例中,步骤S404中的垃圾回收操作亦可包含冲出操作的执行(当判断主机装置130要求对既定存储器区块执行冲出操作时),而于这些实施例中,步骤S408可仅包含根据第二数量计数值更新第一数量计数值的操作。
另一方面,若判断主机装置130未要求对被配置作为缓存器使用的既定存储器区块执行冲出操作,则不根据第二数量计数值更新第一数量计数值。
如上所述,存储器控制器110可藉由自第一数量计数值减去第二数量计数值以更新第一数量计数值。此外,存储器控制器110可更响应于由主机装置130所发出的一询问指令回传一可用写入缓存器大小给主机装置130,其中的可用写入缓存器大小可以是上述的剩余可用的写入加速器缓存器大小(Available_Write_Booster_Buffer_Size),并且存储器控制器110可根据第一数量计数值计算出可用写入缓存器大小。
由于写入缓存器的相关参数会经常性地随着写入缓存器的使用状态变化,而本发明所提出的写入缓存器管理方法可正确地维护写入缓存器的参数,例如,所述第一数量计数值,使第一数量计数值可即时反映出有存储器区块被释放的结果,因此,由存储器控制器110根据第一数量计数值所计算出的可用写入缓存器大小也能真实地反映出当前可用的写入加速器缓存器大小(Available_Write_Booster_Buffer_Size)。
此外,如上所述,主机装置130可藉由发出对应的指令对数据储存装置100进行写入加速器的控制。举例而言,根据本发明的一实施例,主机装置130可藉由发出对应的指令设立一既定旗标的状态,例如,藉由将既定旗标设定为不同数值,以分别表示启用或不启用将缓存器内的数据冲入使用者区域或数据区域的冲出操作(即,前述将多个做为缓存器使用的SLC存储器区块所储存的数据合并写入另一存储器区块的操作)。因此,根据本发明的一实施例,存储器控制器110可根据既定旗标的设定值判断主机装置130是否要求对作为缓存器使用的既定存储器区块执行冲出操作。
图5显示根据本发明的第二实施例所述的写入缓存器管理方法的详细流程图。于图5的范例中,写入加速器功能已被启用,因此配置作为缓存器使用的既定存储器区块为SLC存储器区块,并且本发明的第二实施例所述的写入缓存器管理方法包括响应于接收到主机装置130发出的写入指令后由存储器控制器110所开始执行的以下步骤:
步骤S502:响应于写入指令进入写入流程以执行一或多个写入工作。
步骤S504:将数据写入配置作为缓存器使用的SLC存储器区块。
步骤S506:判断当前的SLC存储器区块是否被写满。若是,执行步骤S508。若否,执行步骤S510。
步骤S508:取新的SLC存储器区块(例如,取一空闲的存储器区块并执行对应的抹除操作用以将此存储器区块配置为SLC存储器区块),并且更新数量计数值(例如,前述第一数量计数值)SLCCnt,例如,将数量计数值SLCCnt加1。若以算式表示,即为(SLCCnt=SLCCnt+1)。于本发明的实施例中,所述的数量计数值SLCCnt用以纪录(计数)已被写入数据的SLC存储器区块的数量。
若于SLC存储器区块已被写满时本次写入工作所欲写入的数据尚有部分未被写入,则步骤S508可还包括将剩余的数据写入新的SLC存储器区块的操作。
步骤S510:判断已被写入数据的SLC存储器区块中是否有任何存储器区块会被释放。若是,执行步骤S512。若否,执行步骤S514。
类似地,存储器控制器110可根据已被写入数据的SLC存储器区块中的有效数据量是否为零来判断此存储器区块是否会被释放。例如,存储器控制器110可藉由判断一存储器区块的有效数据页数量是否为零来判断是否可释放该存储器区块。于本发明的实施例中,存储器控制器110可于步骤S510中对目前已被写入数据的SLC存储器区块逐一检视其有效数据页数量,以判断是否有任何存储器区块会响应于目前的写入操作被释放,并记录下响应于目前的写入操作会被释放的存储器区块数量。
步骤S512:假设目前有n个存储器区块于步骤S510中判断会被释放,则存储器控制器110根据该数量维护另一数量计数值(例如,前述第二数量计数值)MinuSLCCnt。若以算式表示,即为(MinuSLCCnt=MinuSLCCnt+n)。
步骤S514:存储器控制器110可判断是否已完成所有的写入工作。若是,执行步骤S516。若否,返回步骤S504执行将数据写入SLC存储器区块的次一写入工作。
步骤S516:离开写入流程。
根据本发明的一实施例,于离开写入流程后,存储器控制器110可于适当的时间,例如,于判断数据储存装置100闲置时,执行步骤S518。例如,存储器控制器110可观察一既定时间,并判断于既定时间内是否自主机装置130接收到任何指令。若于既定时间内都未自主机装置130接收到任何指令,可判断数据储存装置100为闲置,并开始执行步骤S518。
步骤S518:进入垃圾回收流程。
步骤S520:对存储器区块(例如,SLC存储器区块)执行垃圾回收操作。
步骤S522:判断是否一SLC存储器区块被释放。如上所述,存储器控制器110可于执行垃圾回收操作的过程中检视当前的SLC存储器区块中的有效数据页数量是否因垃圾回收而降至零,以判断是否此存储器区块会响应于目前的垃圾回收操作被释放。若是,执行步骤S524,若否,执行步骤S526。
步骤S524:响应于存储器区块的释放更新数量计数值MinuSLCCnt。若以算式表示,即为(MinuSLCCnt=MinuSLCCnt+1)。
步骤S526:判断垃圾回收流程是否结束。若是,执行步骤S528,若否,返回步骤S520继续执行垃圾回收操作。
步骤S528:判断是否需对写入缓存器执行冲出(flush)操作,若是,执行步骤S530,若否,则可结束此流程。如上所述,存储器控制器110可根据既定旗标的设定值判断主机装置130是否要求对写入缓存器执行冲出操作。
步骤S530:自SLCCnt减去MinuSLCCnt,若以算式表示,即为(SLCCnt=SLCCnt-MinuSLCCn),并且将数量计数值MinuSLCCnt重置为0。
另一方面,若判断无需对写入缓存器执行冲出操作,则不改变数量计数值SLCCnt与MinuSLCCnt。
如上所述,存储器控制器110可根据既定旗标的设定值判断是否需对写入缓存器执行冲出操作。此外,如上所述,本发明所提出的写入缓存器管理可还包括存储器控制器110响应于由主机装置130所发出的一询问指令回传一可用写入缓存器大小给主机装置130,其中的可用写入缓存器大小可以是上述的剩余可用的写入加速器缓存器大小(Available_Write_Booster_Buffer_Size),并且存储器控制器110可根据数量计数值SLCCnt计算出可用写入缓存器大小。例如,自当前的写入加速器缓存器大小(Current_Write_Booster_Buffer_Size)减去数量计数值SLCCnt可得剩余可用的写入加速器缓存器大小(Available_Write_Booster_Buffer_Size)。
藉由实施本发明提出写入缓存器管理方法,可正确记录写入缓存器的相关参数,例如,数量计数值SLCCnt,以避免发生参数记录错误的情况,并可确保主机装置130也可接收到正确的参数值,例如,剩余可用的写入加速器缓存器大小(Available_Write_Booster_Buffer_Size)。
特别是,当主机装置130重复在相同逻辑地址上写入数据时,因旧的数据会响应于数据的更新而被标记成无效数据,加速存储器区块的释放,而藉由实施本发明提出写入缓存器管理方法,若主机装置130并未要求写入缓存器执行冲出操作,则暂时不在数量计数值SLCCnt反映出有存储器区块被释放的结果。反之,若主机装置130要求写入缓存器执行冲出操作,则如本发明第一实施例与第二实施例所述,于适当的时机反映出有存储器区块被释放的结果,如此一来,由存储器控制器110根据数量计数值SLCCnt所计算出的可用写入缓存器大小也能真实地反映出当前可用的写入加速器缓存器大小,以确保主机装置130可接收到正确的参数值,避免发生于传统技术中主机装置130持续对数据储存装置100写入相同逻辑地址的数据,但主机装置130所接收到的当前可用写入缓存器大小却不会对应地因写入操作而减少的问题。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (12)
1.一种数据储存装置,包括:
一存储器装置,包含多个存储器区块,这些存储器区块包括多个被配置作为缓存器用以自一主机装置接收数据的既定存储器区块;以及
一存储器控制器,耦接该存储器装置,用以存取该存储器装置,该存储器控制器响应于由该主机装置所发出的一写入指令执行一写入操作,于该写入操作中,该存储器控制器维护这些既定存储器区块中已被写入数据的既定存储器区块的一第一数量计数值、判断这些既定存储器区块中响应于该写入操作而被释放的存储器区块的一数量,并且根据该数量维护一第二数量计数值,以及
于该写入操作完成后,该存储器控制器更判断该主机装置是否要求对这些既定存储器区块执行一冲出(flush)操作,并且于判断该主机装置要求对这些既定存储器区块执行一冲出操作时,该存储器控制器根据该第二数量计数值更新该第一数量计数值。
2.如权利要求1所述的数据储存装置,其特征在于,于判断该主机装置未要求对这些既定存储器区块执行一冲出操作时,该存储器控制器不根据该第二数量计数值更新该第一数量计数值。
3.如权利要求1所述的数据储存装置,其特征在于,该存储器控制器藉由自该第一数量计数值减去该第二数量计数值以更新该第一数量计数值。
4.如权利要求1所述的数据储存装置,其特征在于,该存储器控制器更响应于由该主机装置所发出的一询问指令回传一可用写入缓存器大小给该主机装置,其中该存储器控制器根据该第一数量计数值计算出该可用写入缓存器大小。
5.如权利要求1所述的数据储存装置,其特征在于,该存储器控制器根据一既定旗标的设定值判断该主机装置是否要求对这些既定存储器区块执行一冲出操作。
6.如权利要求1所述的数据储存装置,其特征在于,该存储器控制器根据已被写入数据的既定存储器区块中有效数据量为零的存储器区块的一数量判断这些既定存储器区块中响应于该写入操作而被释放的存储器区块的该数量。
7.一种写入缓存器管理方法,适用于一数据储存装置,该数据储存装置包括一存储器装置与一存储器控制器,该存储器装置包含多个存储器区块,这些存储器区块包括多个被配置作为缓存器用以自一主机装置接收数据的既定存储器区块,该方法包括:
响应于由该主机装置所发出的一写入指令执行一写入操作,其中响应于由该主机装置所发出的该写入指令执行该写入操作的步骤还包括:
于该写入操作中维护这些既定存储器区块中已被写入数据的既定存储器区块的一第一数量计数值;
判断这些既定存储器区块中响应于该写入操作而被释放的存储器区块的一数量;以及
根据该数量维护一第二数量计数值;
判断该主机装置是否要求对这些既定存储器区块执行一冲出(flush)操作;以及
于判断该主机装置要求对这些既定存储器区块执行一冲出操作时,根据该第二数量计数值更新该第一数量计数值。
8.如权利要求7所述的写入缓存器管理方法,其特征在于,还包括:
于判断该主机装置未要求对这些既定存储器区块执行一冲出操作时,不根据该第二数量计数值更新该第一数量计数值。
9.如权利要求7所述的写入缓存器管理方法,其特征在于,根据该第二数量计数值更新该第一数量计数值的步骤还包括:
自该第一数量计数值减去该第二数量计数值。
10.如权利要求7所述的写入缓存器管理方法,还包括:
根据该第一数量计数值计算出一可用写入缓存器大小;以及
响应于由该主机装置所发出的一询问指令回传该可用写入缓存器大小给该主机装置。
11.如权利要求7所述的写入缓存器管理方法,其特征在于,该主机装置是否要求对这些既定存储器区块执行一冲出操作该根据一既定旗标的设定值被判断。
12.如权利要求7所述的写入缓存器管理方法,其特征在于,这些既定存储器区块中响应于该写入操作而被释放的存储器区块的该数量根据已被写入数据的既定存储器区块中有效数据量为零的存储器区块的一数量被判断。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111139513A TWI810095B (zh) | 2022-10-18 | 2022-10-18 | 資料儲存裝置與寫入緩存器管理方法 |
TW111139513 | 2022-10-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117908761A true CN117908761A (zh) | 2024-04-19 |
Family
ID=88149563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211415270.XA Pending CN117908761A (zh) | 2022-10-18 | 2022-11-11 | 数据储存装置与写入缓存器管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240126473A1 (zh) |
CN (1) | CN117908761A (zh) |
TW (1) | TWI810095B (zh) |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8205037B2 (en) * | 2009-04-08 | 2012-06-19 | Google Inc. | Data storage device capable of recognizing and controlling multiple types of memory chips operating at different voltages |
US7843225B2 (en) * | 2009-04-14 | 2010-11-30 | Via Technologies, Inc. | Protocol-based bus termination for multi-core processors |
US8738846B2 (en) * | 2010-10-15 | 2014-05-27 | Arkologic Limited | File system-aware solid-state storage management system |
US20130091331A1 (en) * | 2011-10-11 | 2013-04-11 | Iulian Moraru | Methods, apparatus, and articles of manufacture to manage memory |
US10102119B2 (en) * | 2015-10-30 | 2018-10-16 | Sandisk Technologies Llc | Garbage collection based on queued and/or selected write commands |
US10346324B2 (en) * | 2017-02-13 | 2019-07-09 | Microchip Technology Incorporated | Devices and methods for autonomous hardware management of circular buffers |
TWI660346B (zh) * | 2018-09-07 | 2019-05-21 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
KR20200113988A (ko) * | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 가비지 컬렉션을 위한 상태정보를 전송하는 장치 및 방법 |
KR102685013B1 (ko) * | 2019-11-11 | 2024-07-15 | 삼성전자주식회사 | 스토리지 장치 및 그 동작방법 |
US20210149800A1 (en) * | 2019-11-20 | 2021-05-20 | Western Digital Technologies, Inc. | Ssd system using power-cycle based read scrub |
KR20210101982A (ko) * | 2020-02-11 | 2021-08-19 | 삼성전자주식회사 | 스토리지 장치 및 메모리 컨트롤러의 동작 방법 |
KR20210142981A (ko) * | 2020-05-19 | 2021-11-26 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20220079264A (ko) * | 2020-12-04 | 2022-06-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US11625333B2 (en) * | 2021-04-26 | 2023-04-11 | Micron Technology, Inc. | Configurable flush operation speed |
-
2022
- 2022-10-18 TW TW111139513A patent/TWI810095B/zh active
- 2022-11-11 CN CN202211415270.XA patent/CN117908761A/zh active Pending
-
2023
- 2023-07-11 US US18/220,288 patent/US20240126473A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240126473A1 (en) | 2024-04-18 |
TW202418090A (zh) | 2024-05-01 |
TWI810095B (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10402318B2 (en) | Mapping table updating method, memory control circuit unit and memory storage device | |
CN107179996B (zh) | 数据存储装置和其操作方法 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US9582416B2 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
KR102507140B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN110989918B (zh) | 写入控制方法以及数据存储装置及其控制器 | |
US20150012687A1 (en) | Method for managing commands in command queue, memory control circuit unit and memory storage apparatus | |
KR102743227B1 (ko) | 메모리 시스템 및 그것의 동작방법 | |
CN108932107A (zh) | 数据存储装置及其操作方法 | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN113885808B (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
CN114327240B (zh) | 计算机可读存储介质、闪存存储器的数据存储方法及装置 | |
US9037781B2 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
US11922062B2 (en) | Controller and operating method thereof | |
CN114328297A (zh) | 映射表管理方法、存储器控制电路单元与存储器存储装置 | |
CN112099731B (zh) | 数据储存装置与数据处理方法 | |
TWI814625B (zh) | 資料儲存裝置與寫入緩存器管理方法 | |
TWI810095B (zh) | 資料儲存裝置與寫入緩存器管理方法 | |
US20220012180A1 (en) | Memory system for meta data management and operating method of memory system | |
CN104142895B (zh) | 写入方法、存储器控制器与存储器储存装置 | |
TWI828391B (zh) | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 | |
TWI822398B (zh) | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 | |
CN107229413B (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 |