CN111026326B - 存储器控制器、存储装置及管理元数据的方法 - Google Patents
存储器控制器、存储装置及管理元数据的方法 Download PDFInfo
- Publication number
- CN111026326B CN111026326B CN201910479898.8A CN201910479898A CN111026326B CN 111026326 B CN111026326 B CN 111026326B CN 201910479898 A CN201910479898 A CN 201910479898A CN 111026326 B CN111026326 B CN 111026326B
- Authority
- CN
- China
- Prior art keywords
- log
- metadata
- log records
- time
- sets
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 254
- 238000000034 method Methods 0.000 title claims abstract description 33
- 239000000872 buffer Substances 0.000 claims abstract description 57
- 238000013507 mapping Methods 0.000 claims description 22
- 230000001186 cumulative effect Effects 0.000 claims description 12
- 101000969594 Homo sapiens Modulator of apoptosis 1 Proteins 0.000 description 21
- 102100021440 Modulator of apoptosis 1 Human genes 0.000 description 21
- HONKEGXLWUDTCF-YFKPBYRVSA-N (2s)-2-amino-2-methyl-4-phosphonobutanoic acid Chemical compound OC(=O)[C@](N)(C)CCP(O)(O)=O HONKEGXLWUDTCF-YFKPBYRVSA-N 0.000 description 17
- 101000616438 Homo sapiens Microtubule-associated protein 4 Proteins 0.000 description 17
- 102100021794 Microtubule-associated protein 4 Human genes 0.000 description 17
- 230000003936 working memory Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 101000979001 Homo sapiens Methionine aminopeptidase 2 Proteins 0.000 description 5
- 101000969087 Homo sapiens Microtubule-associated protein 2 Proteins 0.000 description 5
- 102100023174 Methionine aminopeptidase 2 Human genes 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 3
- 241000699670 Mus sp. Species 0.000 description 1
- 101100131116 Oryza sativa subsp. japonica MPK3 gene Proteins 0.000 description 1
- 101100456045 Schizosaccharomyces pombe (strain 972 / ATCC 24843) map3 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration 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/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/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)
- Debugging And Monitoring (AREA)
Abstract
公开一种存储器控制器、存储装置及管理元数据的方法。一种存储器控制器可包括:缓冲存储器,被配置为:存储多个元数据组和所述多个元数据组中的元数据组的日志记录集,其中,日志记录集包括分别指示所述多个元数据组的更新信息的多个日志记录。存储器控制器可包括:控制电路,被配置为:识别执行所述多个日志记录中的各个日志记录所花费的日志时间,识别基于日志记录集更新元数据组所花费的预测时间,以及基于日志时间和预测时间控制包括在日志记录集中的日志记录的数量。
Description
本申请要求于2018年10月10日提交到韩国知识产权局的第10-2018-0120598号韩国专利申请的权益,所述韩国专利申请的公开通过引用完整地包含于此。
技术领域
本公开的一些发明构思涉及存储器控制器、包括存储器控制器的存储装置和/或操作这样的存储器控制器的方法。
背景技术
即使电源切断,作为非易失性存储器的闪存也可保持存储的数据。近来,包括闪存的存储装置(诸如,固态驱动器(SSD)和存储器卡)已被广泛使用。这样的存储装置使用元数据来管理非易失性存储器。因此,提供有效管理元数据的装置及其配置会是有益的,这可提升存储装置的性能。
发明内容
本公开的一些发明构思提供一种存储器控制器和/或操作存储器控制器的方法,其中,存储器控制器控制包括在日志记录集中的日志记录的数量,以将包括存储器控制器的存储装置的打开时间保持在特定水平以内。
一些示例实施例可包括一种示例存储器控制器,包括:缓冲存储器,被配置为:存储多个元数据组和所述多个元数据组中的元数据组的日志记录集,其中,日志记录集包括分别指示所述多个元数据组的更新信息的多个日志记录。示例存储器控制器还包括:控制电路,被配置为:识别执行所述多个日志记录中的各个日志记录所花费的日志时间,识别基于日志记录集更新元数据组所花费的预测时间,以及基于日志时间和预测时间控制包括在日志记录集中的日志记录的数量。
一些示例实施例可包括一种包括非易失性存储器的示例存储装置。所述示例存储装置还可包括包含控制电路的存储器控制器,其中,控制电路被配置为:存储多个元数据组和所述多个元数据组中的元数据组的日志记录集,其中,日志记录集包括分别指示所述多个元数据组的更新信息的多个日志记录;识别执行所述多个日志记录中的各个日志记录所花费的日志时间;以及通过以下操作,控制包括在日志记录集中的日志记录的数量:基于日志时间识别第一数量;以及在包括在日志记录集中的日志记录的当前数量达到第一数量的条件下,将元数据组和元数据组的日志记录集编程到非易失性存储器。
一些示例实施例可包括一种管理非易失性存储器的元数据的示例方法。所述示例方法可包括生成分别指示元数据组的更新信息的日志记录的日志记录集。所述示例方法可包括:基于各个日志记录的日志时间,识别将被包括在日志记录集中的日志记录的第一数量。所述示例方法可包括:在日志记录集中的日志记录的当前数量达到第一数量的条件下,将元数据组和日志记录集编程到非易失性存储器。
附图说明
从以下结合附图进行的详细描述,将会理解一些发明构思的一些示例实施例,其中:
图1是根据一些示例实施例的存储***的框图;
图2示出根据一些示例实施例的缓冲存储器的示例;
图3示出根据一些示例实施例的非易失性存储器的示例;
图4示出根据一些示例实施例的从非易失性存储器加载元数据组和日志记录集(journal log set)的操作的示例;
图5A示出根据一些示例实施例的日志时间的示例;
图5B示出根据一些示例实施例的日志时间表的示例;
图6是根据一些示例实施例的存储器控制器的示例的框图;
图7是根据一些示例实施例的存储器控制器的另一示例的框图;
图8示出根据一些示例实施例的管理日志记录集的操作的示例;
图9示出根据一些示例实施例的管理日志记录集的操作的另一示例;
图10示出根据一些示例实施例的管理日志记录集的操作的另一示例;
图11是根据管理日志记录集的操作(诸如,图10中所示的操作)的日志时间表;
图12示出根据一些示例实施例的管理日志记录集的操作的另一示例;
图13是根据管理日志记录集的操作(诸如,图12中所示的操作)的日志时间表;
图14是根据一些示例实施例的管理非易失性存储器的元数据的示例方法的流程图;
图15是根据一些示例实施例的操作存储器控制器的示例方法的流程图;
图16是根据一些示例实施例的操作存储器控制器的示例方法的流程图;
图17是根据一些示例实施例的计算***的框图。
具体实施方式
图1是根据一些示例实施例的存储***SS的框图。
参照图1,存储***SS可包括存储装置10和主机HT,存储装置10可包括存储器控制器100和非易失性存储器(NVM)200。主机HT可通过各种接口与存储装置10通信。例如,主机HT可被实现为应用处理器(AP)或片上***(SoC)。此外,主机HT可被实现为例如集成电路、母板或数据库服务器。然而,主机HT不限于此。
非易失性存储器200可包括存储器组210,每个存储器组210可包括存储器单元。例如,多个存储器组210可分别对应于多个页。在一些示例实施例中,非易失性存储器200可包括闪存装置(例如,NAND闪存装置)。然而,一些发明构思的一个或多个示例实施例可不限于此。非易失性存储器200可包括电阻式存储器装置(诸如,电阻式随机存取存储器(ReRAM)、相变RAM(PRAM)或磁性RAM(MRAM))。
存储器控制器100可包括控制电路CC和缓冲存储器BM。在一些示例实施例中,控制电路CC可被配置为作为日志管理器JM进行操作。在一些示例实施例中,缓冲存储器BM可被实现为存储器控制器100的内部存储器(例如,图6的缓冲存储器130)。图1示出缓冲存储器BM包括在存储器控制器100中。然而,一些发明构思的一个或多个示例实施例可不限于此。在一些示例实施例中,缓冲存储器BM可被实现为可在控制器芯片外部的存储器芯片(例如,动态RAM(DRAM)芯片(例如,图7的DRAM 300)),其中,存储器控制器100被实现在控制器芯片中。
缓冲存储器BM存储元数据,控制电路CC被配置为使用存储在缓冲存储器BM中的元数据,以将从主机HT接收的逻辑地址转换为非易失性存储器200的物理地址。这里,元数据由控制电路CC生成,其中,控制电路CC可被配置为管理用户数据或非易失性存储器200。例如,元数据可包括用于将主机HT的逻辑地址转换为非易失性存储器200的物理地址的映射信息。此外,元数据可包括例如用于管理非易失性存储器200的存储器空间的多条信息。
元数据可被分成元数据组MD1至MDn,并且控制电路CC可被配置为管理元数据组MD1至MDn,其中,n是大于1的自然数。例如,元数据组MD1至MDn可包括映射表。在一些示例实施例中,可基于逻辑地址将元数据分成组,因此,可生成元数据组MD1至MDn。在一些示例实施例中,可基于非易失性存储器200的存储器组210的大小来确定元数据组MD1至MDn中的每个的大小。例如,存储器组210可对应于物理页。
缓冲存储器BM可存储元数据组MD1至MDn。此外,缓冲存储器BM可存储与元数据组MD1至MDn相应的日志记录集JLS。日志记录集JLS可包括日志记录,每个日志记录可存储指示元数据组MD1至MDn中的一个的改变的更新信息。根据一些示例实施例,日志记录可被称为日志数据或记录数据,并且日志记录集可被称为日志数据集、记录数据集或日志集。图2中描述了缓冲存储器BM的示例。
日志记录可包括恢复元数据的改变所需的信息。在一些示例实施例中,日志记录可包括关于元数据被改变的操作的类型的信息,以及用于恢复元数据的改变的数据。关于操作的类型的信息可包括定义可改变元数据的各种操作(例如,编程操作、块分配操作和页复制操作)的类型的多条信息。用于恢复元数据的改变的数据可包括逻辑地址、先前的物理地址、新的物理地址等。
图2示出根据一些示例实施例的缓冲存储器BM的示例。
参照图2,缓冲存储器BM可存储第一元数据组MD1至第四元数据组MD4。例如,第一元数据组MD1至第四元数据组MD4可分别被存储在第一元数据缓冲器MB1至第四元数据缓冲器MB4中。此外,缓冲存储器BM可存储与第一元数据组MD1至第四元数据组MD4相应的日志记录集JLS。例如,日志记录集JLS可被存储在日志缓冲器JB中。如所描述的,缓冲存储器BM可包括分别存储第一元数据组MD1至第四元数据组MD4的第一元数据缓冲器MB1至第四元数据缓冲器MB4,以及存储日志记录集JLS的日志缓冲器JB。
日志记录集JLS可包括第一日志记录JL1至第三日志记录JL3。在一些示例实施例中,可根据输入/输出模式对第一日志记录JL1至第三日志记录JL3进行分类。例如,在根据从主机HT接收的写入命令改变元数据的条件下,可生成第一日志记录JL1。例如,在根据从主机HT接收的读取命令改变元数据的条件下,可生成第二日志记录JL2。例如,在根据从主机HT接收的修剪命令(trim command)改变元数据的条件下,可生成第三日志记录JL3。然而,一个或多个实施例不限于此。第一日志记录JL1至第三日志记录JL3可根据各种标准被分类,并且至少三种类型的日志记录可包括在日志记录集JLS中。
返回参照图1,日志管理器JM可被配置为识别(例如,测量、估计和/或预测)执行各个日志记录所花费的日志时间,并且可基于日志时间控制包括在日志记录集JLS中的日志记录的数量。此外,日志管理器JM可被配置为管理通过使用日志记录集JLS来更新元数据组MD1至MDn所花费的预测时间,并且可基于日志时间和预测时间来控制包括在日志记录集JLS中的日志记录的数量。例如,日志管理器JM可识别将被包括在日志记录集中的日志记录的第一数量,使得当日志记录集中的日志记录的当前数量达到第一数量时,日志记录集被确定为完成。在图5A和图5B中详细描述控制日志记录的数量的示例。
在包括在日志记录集JLS中的日志记录的当前数量达到在日志管理器JM中设置的日志记录的第一数量的条件下,日志管理器JM可确定日志记录集JLS完成。换句话说,日志管理器JM可确定日志缓冲器已满。如所描述的,在日志记录集JLS完成的条件下,控制电路CC可被配置为将从元数据组MD1至MDn选择的元数据组和选择的元数据组的日志记录集JLS编程到非易失性存储器200。如在此使用的,“编程”可包括将元数据组MD和/或日志记录集JLS存储在非易失性存储器200中,诸如,将元数据组MD和/或日志记录集JLS从易失性存储器和/或第一非易失性存储器传送到第二非易失性存储器,或者使存储器控制器100的另一组件将元数据组MD和/或日志记录集JLS编程到非易失性存储器200中。
因此,包括在缓冲存储器BM中的日志缓冲器进行清空,并且新的日志记录被存储在日志缓冲器中,从而生成新的日志记录集。被配置为作为存储器控制器100的日志管理器JM进行操作的控制电路CC可被配置为:基于包括在日志记录集中的日志记录的当前数量和第一数量,确定日志记录集的完成。在新的日志记录集完成的条件下,存储器控制器100可将从多个元数据组MD1至MDn选择的另一元数据组和选择的元数据组的新的日志记录集编程到非易失性存储器200。如所描述的,存储器控制器100可顺序地将可被顺序生成的日志记录集编程到非易失性存储器200。
图3示出根据一些示例实施例的非易失性存储器200的示例。在下文中,参照图1至图3,描述对元数据组和日志记录集进行编程的示例操作。
非易失性存储器200可包括第一存储器组210a至第四存储器组210d。存储器控制器100可将存储在日志缓冲器JB中的第一日志记录集JLS1与第一元数据组MD1一起编程到第一存储器组210a。然后,存储器控制器100可将存储在日志缓冲器JB中的第二日志记录集JLS2与第二元数据组MD2一起编程到第二存储器组210b。然后,存储器控制器100可将存储在日志缓冲器JB中的第三日志记录集JLS3与第三元数据组MD3一起编程到第三存储器组210c。然后,存储器控制器100可将存储在日志缓冲器JB中的第四日志记录集JLS4与第四元数据组MD4一起编程到第四存储器组210d。如所描述的,存储器控制器100可将第一元数据组MD1至第四元数据组MD4以及第一日志记录集JLS1至第四日志记录集JLS4顺序地编程到非易失性存储器200。
根据一些示例实施例,存储器控制器100可根据轮询调度(round-robin)方法将第一元数据组MD1至第四元数据组MD4编程到非易失性存储器200。换句话说,在顺序地对第一元数据组MD1至第四元数据组MD4以及第一日志记录集JLS1至第四日志记录集JLS4进行编程的操作完成之后,存储器控制器100可将存储在日志缓冲器JB中的下一个生成的日志记录集与第一元数据组MD1一起编程到非易失性存储器200。图4示出根据一些示例实施例的从非易失性存储器200加载元数据组和日志记录集的操作的示例。
参照图1至图4,在向存储装置10施加电力的条件下,被编程到非易失性存储器200的第一元数据组MD1至第四元数据组MD4以及第一日志记录集JLS1至第四日志记录集JLS4可被顺序地加载到缓冲存储器BM中。在这种情况下,可根据将第一元数据组MD1至第四元数据组MD4以及第一日志记录集JLS1至第四日志记录集JLS4编程到非易失性存储器200的顺序来确定加载元数据和重放日志的顺序。
被编程到第一存储器组210a的第一元数据组MD1和第一日志记录集JLS1被加载到缓冲存储器BM中,在这种情况下,可花费第一时间t1。由于第一元数据组MD1在生成第一日志记录集JLS1的条件下(例如,当第一日志记录集JLS1被改变时,诸如,在生成第一日志记录集JLS1和/或检测到第一日志记录集JLS1的生成时)的时间点以最新的状态被编程到第一存储器组210a,因此第一元数据组MD1不会通过使用包括在第一日志记录集JLS1中的日志记录被更新。此外,由于第二元数据组MD2至第四元数据组MD4尚未加载到缓冲存储器BM中,因此第二元数据组MD2至第四元数据组MD4不会通过使用包括在第一日志记录集JLS1中的日志记录被更新。
被编程到第二存储器组210b的第二元数据组MD2和第二日志记录集JLS2被加载到缓冲存储器BM中,第一元数据组MD1可通过使用包括在第二日志记录集JLS2中的日志记录之中的与第一元数据组MD1相应的日志记录被更新,在这种情况下,可花费第二时间t2。由于第二日志记录集JLS2在第一元数据组MD1被编程到第一存储器组210a之后被生成,因此第一元数据组MD1可通过使用与第一元数据组MD1相应的日志记录被更新。
然后,被编程到第三存储器组210c的第三元数据组MD3和第三日志记录集JLS3被加载到缓冲存储器BM中,第一元数据组MD1和第二元数据组MD2可通过使用包括在第三日志记录集JLS3中的日志记录之中的与第一元数据组MD1和第二元数据组MD2相应的日志记录被更新,在这种情况下,可花费第三时间t3。然后,被编程到第四存储器组210d的第四元数据组MD4和第四日志记录集JLS4被加载到缓冲存储器BM中,第一元数据组MD1至第三元数据组MD3可通过使用包括在第四日志记录集JLS4中的日志记录之中的与第一元数据组MD1至第三元数据组MD3相应的日志记录被更新,在这种情况下,可花费第四时间t4。
如所描述的,在存储装置10通电之后,第一元数据组MD1至第四元数据组MD4以及第一日志记录集JLS1至第四日志记录集JLS4从非易失性存储器200被读取,并且一旦第一元数据组MD1至第四元数据组MD4通过使用读取的第一日志记录集JLS1至第四日志记录集JLS4完成更新,存储装置10就可响应于从主机HT接收的命令处理数据输入/输出操作。例如,第一时间t1至第四时间t4的总和可对应于存储装置10的打开时间(open time)t_open。
在本说明书中,打开时间t_open表示从电力被施加到存储装置10的时间点到数据输入/输出操作可被处理的时间点的时间,并且可被称为“准备就绪时间”。在一些情况下,将被包括在每个日志记录集中的日志记录的第一数量被选择为固定的数量。然而,由于对于不同的日志记录类型日志时间可能不同,因此相应的日志记录集的重放时间(换句话说,通过使用相应的日志记录集更新元数据组所花费的时间)可根据包括在日志记录集中的日志记录的类型而不同。因此,在存储装置10的突然断电之后的通电状态下,打开时间t_open可能难以保持恒定。
图5A示出根据一些示例实施例的包括与日志记录分别相应的日志时间的第一日志时间表51的示例。
参照图1和图5A,日志管理器JM可被配置为管理第一日志时间表51,其中,第一日志时间表51指示与日志记录分别相应的日志时间。这里,术语“日志时间”指示固件(例如,闪存转换层FTL(例如,图6的FTL))执行日志记录所花费的时间。与第一日志记录JL1相应的日志时间可以是第一日志时间T1。例如,第一日志时间T1可以是1μs。与第二日志记录JL2相应的日志时间可以是第二日志时间T2。例如,第二日志时间T2可以是2μs。与第三日志记录JL3相应的日志时间可以是第三日志时间T3。例如,第三日志时间T3可以是4μs。在第一日志时间表51中,可存储更多类型的日志记录的日志时间。
图5B示出根据一些示例实施例的包括与日志记录集相应的预测时间的第二日志时间表52的示例。
参照图1、图5A和图5B,日志管理器JM可被配置为管理第二日志时间表52,其中,第二日志时间表52指示与日志记录集分别相应的预测时间。这里,术语“预测时间”指示通过使用包括在日志记录集中的日志记录来更新元数据组所花费的时间。日志管理器JM可基于第一日志时间表51和第二日志时间表52,控制包括在第一日志记录集JLS1至第四日志记录集JLS4中的每个中的日志记录的数量。
例如,在第一日志记录集JLS1中存储四个第一日志记录JL1和三个第二日志记录JL2的条件下,第一日志记录集JLS1的预测时间可以是10μs。例如,在第二日志记录集JLS2中存储两个第一日志记录JL1、两个第二日志记录JL2和一个第三日志记录JL3的条件下,第二日志记录集JLS2的预测时间可以是10μs。例如,在第三日志记录集JLS3中存储两个第一日志记录JL1和四个第二日志记录JL2的条件下,第三日志记录集JLS3的预测时间可以是10μs。例如,在第四日志记录集JLS4中存储五个第二日志记录JL2的条件下,第四日志记录集JLS4的预测时间可以是10μs。因此,顺序地重放第一日志记录集JLS1至第四日志记录集JLS4的打开时间可被估计为40μs。
返回参照图1,日志管理器JM可被配置为管理图5A中所示的第一日志时间表51和图5B中所示的第二日志时间表52,并且可基于第一日志时间表51和第二日志时间表52来控制包括在日志记录集JLS中的日志记录的数量。因此,存储装置10的打开时间可保持恒定,因此,可管理存储装置10的最大响应时间。
在一些示例实施例中,日志管理器JM可确定与日志记录集JLS相应的时间片(timeslice),并且可基于日志时间和时间片来控制包括在日志记录集JLS中的日志记录的数量。在一些示例实施例中,日志管理器JM可基于包括在缓冲存储器BM中的多个元数据组中的元数据组MD1至MDn的数量来确定时间片。在图8中详细描述了控制日志记录的数量的示例。
在一些示例实施例中,日志管理器JM可顺序地生成与包括在缓冲存储器BM中的多个元数据组中的元数据组MD1至MDn的数量相应的日志记录集。例如,如图3中所示,日志管理器JM可顺序地生成第一日志记录集JLS1至第四日志记录集JLS4。在这种情况下,日志管理器JM可确定与日志记录集相应的时间窗口,并且可基于时间窗口控制包括在每个日志记录集中的日志记录的数量。例如,在先前生成的日志记录集的累积预测时间超过阈值时间的条件下,日志管理器JM可减少将被包括在下一个生成的日志记录集中的日志记录的数量。在图9中描述了控制日志记录的数量的示例。
在一些示例实施例中,日志管理器JM可基于日志时间,针对各个日志记录集生成预测时间,并且可将预测时间存储在日志时间表(例如,图5B的第二日志时间表52)中。例如,如图5B中所示,日志管理器JM可基于第一日志记录JL1至第三日志记录JL3的日志时间,分别针对第一日志记录集JLS1至第四日志记录集JLS4生成预测时间,并且可通过存储更新的预测时间来更新第二日志时间表52。
在一些示例实施例中,日志管理器JM可基于日志时间,分别针对元数据组MD1至MDn生成预测时间,并且可更新日志时间表(例如,图11的日志时间表111和图13的日志时间表131)中的预测时间。在一些示例实施例中,日志管理器JM可从元数据组MD1至MDn之中选择预测时间超过阈值时间的第一元数据组,可将第一元数据组确定为最长的元数据组,并且可将最长的元数据组编程到非易失性存储器200。在图10和图11中描述了一些示例实施例。
在一些示例实施例中,在元数据组MD1至MDn的总预测时间超过阈值时间的条件下,日志管理器JM可从元数据组MD1至MDn之中选择具有最长的预测时间的第二元数据组,可将第二元数据组确定为最新的元数据组,并且可控制第二元数据组被编程到非易失性存储器200。图12和图13中描述了示例实施例。
例如,存储***SS可被实现为个人计算机(PC)、数据服务器、网络附加存储装置、物联网(IoT)装置或便携式电子装置。便携式电子装置可以是膝上型计算机、移动电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数码相机、数码摄像机、音频装置、便携式多媒体播放器(PMP)、个人导航装置(PND)、MP3播放器、手持式游戏机、电子书阅读器、可穿戴装置等。
在一些示例实施例中,存储装置10可以是嵌入在电子装置中的内部存储器。例如,存储装置10可以是SSD、嵌入式通用闪存(UFS)存储器装置或嵌入式多媒体卡(eMMC)。在一些示例实施例中,存储装置10可以是能够从电子装置拆卸的外部存储器。例如,存储装置10可以是UFS存储器卡、紧凑型闪存(CF)卡、安全数字(SD)卡、微型安全数字(Micro-SD)卡、迷你安全数字(Mini-SD)卡、极限数字(xD)卡或记忆棒。
图6是根据一些示例实施例的存储器控制器100a的示例的框图。参照图6,存储器控制器100a可包括处理器110、工作存储器120、缓冲存储器130、主机接口140和非易失性存储器接口150,所有这些组件可经由总线160彼此通信。处理器110可包括中央处理器(CPU)、微处理器等,并且可控制存储器控制器100a的所有操作。在一些示例实施例中,处理器110可被实现为多核处理器,或者可被实现为例如双核处理器或四核处理器。在另一实施例中,存储器控制器100a可包括控制电路CC(诸如,包括逻辑电路的硬件、包括软件和执行软件的核的处理单元,或者硬件和处理单元的组合)。例如,控制电路可包括但不限于处理器、中央处理器(CPU)、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、片上***(SoC)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等。
在一些示例实施例中,包括控制电路CC的存储器控制器100a可包括闪存核(flashcore,F核)和管理F核的中央核(central core),其中,闪存核的数量对应于电连接到存储器控制器100a的非易失性存储器芯片的数量,或者对应于存储器控制器100a与非易失性存储器200之间的通道的数量。在这种情况下,多个F核可分别执行多个日志管理器,多个日志管理器可分别管理多个日志记录集。
日志管理器JM和日志时间表JTT可被加载在工作存储器120中。日志管理器JM可被实现为固件或软件,并且可被加载到工作存储器120中。然而,一个或多个实施例不限于此。在一些示例实施例中,日志管理器JM可被实现为硬件并且可位于工作存储器120外部。例如,日志时间表JTT可包括图5A中所示的第一日志时间表51和图5B中所示的第二日志时间表52。在工作存储器120中,可存储可由处理器110执行的FTL。
在缓冲存储器130中,第一元数据组MD1至第四元数据组MD4以及日志记录集JLS可被存储。在一些示例实施例中,工作存储器120和缓冲存储器130可被实现为集成存储器芯片。在其他示例实施例中,工作存储器120和缓冲存储器130可被实现为单独的存储器芯片。在一些示例实施例中,工作存储器120可被实现为易失性存储器(诸如,DRAM或静态RAM(SRAM))或非易失性存储器(诸如,PRAM或闪存)。在一些示例实施例中,缓冲存储器130可被实现为易失性存储器(诸如,DRAM或静态RAM(SRAM))或非易失性存储器(诸如,PRAM或闪存)。
主机接口140可提供主机HT与存储器控制器100a之间的接口,并且可根据例如通用串行总线(USB)、MMC、PCI快速(PCI-E)、AT附件(ATA)、串行AT附件(SATA)、并行AT附件(PATA)、小型计算机***接口(SCSI)、串行连接SCSI(SAS)、增强型小磁盘接口(ESDI)、集成驱动电子设备(IDE)等提供接口。
非易失性存储器接口150可提供存储器控制器100a与非易失性存储器200之间的接口。例如,第一元数据组MD1至第四元数据组MD4、日志记录集JLS、写入数据以及读取数据可经由非易失性存储器接口150,在存储器控制器100a与非易失性存储器200之间交换。在一些示例实施例中,非易失性存储器接口150的数量可对应于包括在存储装置10中的非易失性存储器芯片的数量,或者对应于存储器控制器100a与非易失性存储器200之间的通道的数量。
图7是根据一些示例实施例的存储器控制器100b的另一示例的框图。
参照图7,存储器控制器100b可包括处理器110、工作存储器120、主机接口140、非易失性存储器接口150和DRAM接口170,所有这些组件可经由总线160彼此通信。根据一些示例实施例的存储器控制器100b可对应于图6的存储器控制器100a的修改示例,并且即使没有在图7的上下文中描述,图6的一些特征也可应用。根据一些示例实施例,缓冲存储器可被实现为存储器控制器100b外部的DRAM 300。DRAM接口170可提供存储器控制器100b与DRAM300之间的接口。例如,包括在第一元数据组MD1至第四元数据组MD4以及日志记录集JLS中的一些数据可经由DRAM接口170,在存储器控制器100b与DRAM 300之间交换。
图8示出根据一些示例实施例的管理日志记录集的操作的示例。
参照图1和图8,日志管理器JM可确定与日志记录集JLS相应的时间片TS,并且可基于确定的时间片TS和日志时间,确定将被包括在日志记录集JLS中的日志记录的第一数量。在一些示例实施例中,日志管理器JM可基于打开时间和存储在缓冲存储器BM中的多个元数据组中的元数据组MD1至MDn的数量来确定时间片TS。在这种情况下,存储在缓冲存储器BM中的多个元数据组中的元数据组MD1至MDn的数量可对应于被编程到非易失性存储器200的日志记录集的数量。在一些示例实施例中,日志管理器JM可将存储装置10的打开时间除以在存储装置10的打开时间内加载在缓冲存储器BM中的日志记录集的数量,并且可设置将被分配给每个日志记录集的时间(即,时间片TS)。
例如,存储装置10的打开时间可被确定为小于或等于40μs,并且第一映射表MAP1至第四映射表MAP4可被存储在缓冲存储器BM中。这里,第一映射表MAP1至第四映射表MAP4可对应于元数据组MD1至MDn的示例。在这种情况下,日志管理器JM可将打开时间(即,40μs)除以作为映射表的数量的4,并且可将第一日志记录集JLS1至第四日志记录集JLS4中的每个的时间片TS确定为小于或等于10μs。
在日志记录集JLS中存储四个第一日志记录JL1和三个第二日志记录JL2的条件下,日志管理器JM可基于时间片TS和日志时间确定日志记录集JLS完成。在这种情况下,存储器控制器100可将第一映射表MAP1和第一日志记录集JLS1编程到非易失性存储器200。然后,在日志记录集JLS中存储两个第一日志记录JL1、两个第二个日志记录JL2和一个第三日志记录JL3的条件下,日志管理器JM可确定日志记录集JLS完成。在这种情况下,存储器控制器100可将第二映射表MAP2和第二日志记录集JLS2编程到非易失性存储器200。
然后,在日志记录集JLS中存储两个第一日志记录JL1和四个第二日志记录JL2的条件下,日志管理器JM可确定日志记录集JLS完成。在这种情况下,存储器控制器100可将第三映射表MAP3和第三日志记录集JLS3编程到非易失性存储器200。然后,在日志记录集JLS中存储五个第二日志记录JL2的条件下,日志管理器JM可确定日志记录集JLS完成。在这种情况下,存储器控制器100可将第四映射表MAP4和第四日志记录集JLS4编程到非易失性存储器200。
如所描述的,根据一些示例实施例,由于将被存储在日志记录集JLS中的日志记录的第一数量基于时间片TS和日志时间而确定,因此将被存储在第一日志记录集JLS1到第四日志记录集JLS4中的每个中的日志记录的第一数量可不同。例如,由于第二日志记录集JLS2包括具有最长的日志时间的第三日志记录JL3,因此将被包括在第二日志记录集JLS2中的日志记录的第一数量可能是最小的。例如,由于第一日志记录集JLS1包括最大数量的具有最短的日志时间的第一日志记录JL1,因此将被包括在第一日志记录集JLS1中的日志记录的第一数量可能是最大的。
根据一些示例实施例,在向存储装置10施加电力的条件下,第一映射表MAP1至第四映射表MAP4以及第一日志记录集JLS1至第四日志记录集JLS4从非易失性存储器200被顺序地读取,并且通过使用第一日志记录集JLS1至第四日志记录集JLS4来更新第一映射表MAP1至第四映射表MAP4所花费的时间可以是40μs。因此,存储装置10的打开时间可保持不变。
图9示出根据一些示例实施例的管理日志记录集的操作的另一示例。
参照图1和图9,日志管理器JM可确定与日志记录集的总数量相应的时间窗口TW,并且可基于确定的时间窗口TW和日志时间,确定将被包括在日志记录集JLS中的日志记录的第一数量。在一些示例实施例中,日志管理器JM可基于打开时间来确定时间窗口TW,并且在先前生成的日志记录集的累积预测时间接近时间窗口TW的条件下(例如,在累积预测时间超过阈值时间的条件下),日志管理器JM可减少将被包括在下一个生成的日志记录集中的日志记录的第一数量。
例如,存储装置10的打开时间可被确定为小于或等于40μs,并且第一映射表MAP1至第四映射表MAP4可被存储在缓冲存储器BM中。第一映射表MAP1至第四映射表MAP4可对应于元数据组MD1至MDn的示例。在这种情况下,日志管理器JM可基于打开时间,将与第一日志记录集JLS1至第四日志记录集JLS4相应的时间窗口TW确定为小于或等于40μs。
例如,对于包括三个第一日志记录JL1、三个第二日志记录JL2和两个第三日志记录JL3的第一日志记录集JLS1,与第一日志记录集JLS1相应的预测时间可以是17μs(即,3×1+3×2+2×4=17)。例如,对于包括两个第一日志记录JL1、两个第二日志记录JL2和三个第三日志记录JL3的第二日志记录集JLS2,与第二日志记录集JLS2相应的预测时间可以是18μs(即,2×1+2×2+3×4=18)。在这种情况下,针对第一日志记录集JLS1和第二日志记录集JLS2的累积预测时间是35μs。
在第一日志记录集JLS1和第二日志记录集JLS2的累积预测时间接近时间窗口TW的条件下(例如,在检测到累积预测时间在时间窗口TW的阈值内时),日志管理器JM可减少包括在第三日志记录集JLS3和第四日志记录集JLS4中的每个中的日志记录的第一数量。在一些示例实施例中,日志管理器JM可基于时间窗口TW预先设置阈值时间(例如,30μs),并且在第一日志记录集JLS1和第二日志记录集JLS2的累积预测时间超过阈值时间的条件下,包括在第三日志记录集JLS3和第四日志记录集JLS4中的每个中的日志记录的第一数量可基于时间窗口TW被减少。
例如,日志管理器JM可把将被包括在第三日志记录集JLS3和第四日志记录集JLS4中的每个中的日志记录的第一数量确定为1。在第三日志记录集JLS3中存储一个第二个日志记录JL2的条件下,第一日志记录集JLS1至第三日志记录集JLS3的累积预测时间是37μs。在第四日志记录集JSL4中存储一个第一日志记录JL1的条件下,第一日志记录集JLS1至第四日志记录集JLS4的累积预测时间是小于时间窗TW的38μs。
然而,一个或多个实施例不限于此。在一些示例实施例中,日志管理器JM可把将被存储在第三日志记录集JLS3和第四日志记录集JLS4中的日志记录的第一数量确定为0。换句话说,在第一日志记录集JLS1和第二日志记录集JLS2的累积预测时间超过阈值时间的条件下,可确定第三日志记录集JLS3和第四日志记录集JLS4为空。在这种情况下,第一日志记录集JLS1至第四日志记录集JLS4的累积预测时间是小于时间窗口TW的35μs。
根据一些示例实施例,在向存储装置10施加电力的条件下,第一映射表MAP1至第四映射表MAP4以及第一日志记录集JLS1至第四日志记录集JLS4从非易失性存储器被顺序地读取,并且通过使用第一日志记录集JLS1至第四日志记录集JLS4来更新第一映射表MAP1至第四映射表MAP4所花费的时间可以是38μs。因此,存储装置10的打开时间可保持恒定。
图10示出根据一些示例实施例的管理日志记录集的操作的另一示例,图11是根据管理日志记录集的操作(诸如,图10中所示的操作)的日志时间表。
参照图1、图10和图11,日志管理器JM可被配置为管理元数据组MD1至MDn的预测时间,并且可更新存储元数据组MD1至MDn的预测时间的日志时间表111。在一些示例实施例中,日志管理器JM可选择预测时间超过阈值时间的第一元数据组,并且可将选择的第一元数据组确定为最新的元数据组。然后,存储器控制器100可将最新的元数据组编程到非易失性存储器200。在这种情况下,更新信息被反映到被编程到非易失性存储器200的最新的元数据组。
如参照图4所述,在对存储装置10通电的条件下,加载元数据组的顺序和重放日志记录集的顺序可遵循将元数据组和日志记录集编程到非易失性存储器200的顺序。因此,被编程到非易失性存储器200的最新的元数据组(例如,第四日志记录集JLS4)被最新加载到缓冲存储器BM中,并且最新的元数据组不会被更新。因此,在对存储装置10通电的条件下,最新的元数据组不会被更新,因此,存储装置10的打开时间可保持恒定。
例如,第一映射表MAP1至第四映射表MAP4可被存储在缓冲存储器BM中。第一映射表MAP1至第四映射表MAP4可对应于元数据组MD1至MDn的示例。日志管理器JM可更新日志时间表111中的第一映射表MAP1至第四映射表MAP4的预测时间。
在一些示例实施例中,日志管理器JM可在日志时间表111中选择预测时间超过阈值时间(例如,10μs)的第一映射表MAP1,并且可将第一映射表MAP1确定为最新的映射表。因此,存储器控制器100可将反映更新信息的第一映射表MAP1编程到非易失性存储器200。例如,与第一映射表MAP1一起被编程到非易失性存储器200的日志记录集JLS1’可被确定为处于不包括日志记录的空状态。然而,一个或多个实施例不限于此。
然后,日志管理器JM可将日志时间表111更新为日志时间表111’。根据更新的日志时间表111’,更新第一映射表MAP1至第四映射表MAP4所花费的总预测时间可以是可短于打开时间(例如,目标或阈值持续时间)的30μs。因此,存储装置10的最大响应时间可在打开时间之内。
图12示出根据一些示例实施例的管理日志记录集的操作的另一示例。图13是根据管理日志记录集的操作(诸如,图12中所示的操作)的日志时间表。
参照图1、图12和图13,日志管理器JM可被配置为管理元数据组MD1至MDn的预测时间,并且可更新存储元数据组MD1至MDn的预测时间的日志时间表131。在一些示例实施例中,在元数据组MD1至MDn的总预测时间超过阈值时间的条件下,日志管理器JM可从元数据组MD1至MDn之中选择具有最长预测时间的第二元数据组,并且可将选择的第二元数据组确定为最新的元数据组。然后,存储器控制器100可将最新的元数据组编程到非易失性存储器200。在这种情况下,更新信息被反映到被编程到非易失性存储器200的最新的元数据组。
例如,第一映射表MAP1至第四映射表MAP4可被存储在缓冲存储器BM中。这里,第一映射表MAP1至第四映射表MAP4可对应于元数据组MD1至MDn的示例。日志管理器JM可更新日志时间表131中的第一映射表MAP1至第四映射表MAP4的预测时间。
在一些示例实施例中,在日志时间表131中的总预测时间超过阈值时间(例如,40μs)的条件下,日志管理器JM可选择具有最长预测时间的第二映射表MAP2,并且可将第二映射表MAP2确定为最新的映射表。因此,存储器控制器100可将第二映射表MAP2编程到非易失性存储器200。例如,与第二映射表MAP2一起被编程到非易失性存储器200的日志记录集JLS2’可被确定为处于不包括日志记录的空状态。然而,一个或多个实施例不限于此。
然后,日志管理器JM可将日志时间表131更新为日志时间表131’。根据日志时间表131’,更新第一映射表MAP1至第四映射表MAP4所花费的总预测时间可以是可短于打开时间的30μs。因此,存储装置10的最大响应时间可在打开时间之内。
图14是根据一些示例实施例的管理非易失性存储器200的元数据的示例方法的流程图。尽管图14的流程图和其他这样的流程图中的操作以特定顺序呈现,但是将理解,在一些示例实施例中,顺序可变化;例如,可以以不同的顺序执行操作,和/或可与其他操作迭代地和/或同时地执行操作。
在操作S110中,示例方法涉及生成分别指示元数据组MD的更新信息的日志记录JL的日志记录集JLS。例如,可通过被配置为作为日志管理器JM进行操作的控制电路CC来执行所述生成。
在操作S120中,示例方法涉及基于各个日志记录JL的日志时间来识别将被包括在日志记录集JLS中的日志记录JL的第一数量。例如,可通过被配置为作为日志管理器JM进行操作的控制电路CC来执行所述识别。
在操作S130中,示例方法涉及在日志记录集JLS中的日志记录JL的当前数量达到第一数量的条件下,将元数据组MD和日志记录集JLS编程到非易失性存储器。
图15是根据一些示例实施例的操作存储器控制器的示例方法的流程图。
参照图15,根据一些示例实施例的示例方法可对应于在存储装置的运行时间期间管理元数据组和日志记录集的方法。根据一些示例实施例的示例方法可包括由图1的存储器控制器100按时间顺序地执行的操作。即使没有在图15的上下文中描述,参照图1至图14提供的描述也可应用于一些示例实施例,并且图1至图14的一些特征也可应用。
在操作S210中,存储器控制器100将多个元数据组MD1至MDn存储在缓冲存储器BM中。在操作S220中,存储器控制器100更新多个元数据组MD1至MDn的元数据组,并生成指示元数据组的更新信息的日志记录。在操作S230中,存储器控制器100基于日志记录的日志时间来控制包括在元数据组的日志记录集JLS中的日志记录的数量。在日志记录集JLS中的日志记录的当前数量达到第一数量的条件下,可执行操作S240。
在操作S240中,存储器控制器100将元数据组和元数据组的日志记录集编程到非易失性存储器。在操作S250中,确定在存储装置10中是否发生断电。作为确定的结果,在断电的条件下,示例方法结束,在继续供电的条件下,可执行操作S220。为了进入受控的断电状态,更新到缓冲存储器BM的所有元数据组被编程到非易失性存储器200,然后供应给存储装置10的电力可被阻断。
图16是根据一些示例实施例的操作存储器控制器的示例方法的流程图。
参照图16,根据一些示例实施例的示例方法可对应于在存储装置通电之后管理元数据组的示例方法。例如,在图15的示例方法之后可执行根据一些示例实施例的示例方法。根据一些示例实施例的示例方法可包括例如由图1的存储器控制器100按时间顺序地执行的操作。即使没有在图16的上下文中描述,参照图1至图15提供的描述也可应用于一些示例实施例,并且图1至图15的一些特征也可应用。
在操作S310中,存储器控制器100确定存储装置10是否处于通电状态。作为确定的结果,在存储装置10通电的条件下,在操作S320中,存储器控制器100从非易失性存储器200顺序地读取元数据组和日志记录集。在操作S330中,存储器控制器100可使用读取的日志记录集来顺序地恢复元数据组。
图17是根据一些示例实施例的计算***1000的框图。
参照图17,计算***1000可包括存储器***1100、处理器1200、RAM1300、输入/输出装置1400和电源1500。存储器***1100可包括存储器装置1110和存储器控制器1120。尽管没有在图17中示出,但是计算***1000还可包括能够与视频卡、声卡、存储卡、USB装置等通信或者与其他电子装置通信的端口。计算***1000可被实现为PC或便携式电子装置(诸如,膝上型计算机、移动电话、PDA或相机)。
处理器1200可执行特定的计算或任务。根据一些示例实施例,处理器1200可包括微处理器或CPU。处理器1200可经由总线1600(诸如,地址总线、控制总线或数据总线)与RAM1300、输入/输出装置1400和存储器***1100通信。在这种情况下,存储器***1100可通过使用一些示例实施例(诸如,图1至图16中所示的示例实施例)来实现。根据一些示例实施例,处理器1200可连接到扩展总线(诸如,***组件互连(PCI)总线)。
在一些示例实施例中,指令可被存储在存储器中,其中,存储器可以是非易失性的和/或非暂时性的。例如,RAM 1300可在其中存储操作计算***1000所需的数据。例如,RAM1300可被实现为动态随机存取存储器(DRAM)、移动DRAM、静态随机存取存储器(SRAM)、参数随机存取存储器(PRAM)、铁电随机存取存储器(FRAM)、电阻式随机存取存储器(RRAM)和/或磁阻式随机存取存储器(MRAM)。输入/输出装置1400可包括输入装置(诸如,键盘、小键盘和鼠标)和输出装置(诸如,打印机和显示器)。电源1500可供应操作计算***1000所需的操作电压。
尽管已经参照本公开的一些示例实施例示出和描述了本公开的一些发明构思,但是将会理解,在不脱离所附权利要求的精神和范围的情况下,可在形式和细节上进行各种改变。
如在此使用的,诸如“当……时”和“在……的同时”的术语可以,但不一定意图暗示诸如事件的序列的时间顺序关系。例如,被描述为在“当条件被满足时”和“在条件被满足的同时”发生的操作可与条件的满足同时执行,或者在条件满足期间执行,或者在条件满足之后执行,或者因为条件被满足或者已经被满足而执行等。类似地,诸如将操作与条件相关联的“在……条件下”的短语可指示操作与条件的满足同时执行,或者在条件满足期间执行,或者在条件满足之后执行,或者因为条件被满足或者已经被满足而执行等。所有这些合理和逻辑上可能并且与其他陈述不矛盾的解释,都意图包括在本公开中,其中,本公开的范围将被理解为仅受权利要求的限制。
Claims (19)
1.一种存储器控制器,包括:
缓冲存储器,被配置为:存储多个元数据组和所述多个元数据组中的元数据组的日志记录集,其中,日志记录集包括分别指示所述多个元数据组中的元数据组的更新信息的多个日志记录;以及
控制电路,被配置为:
识别执行所述多个日志记录中的各个日志记录所花费的日志时间,
识别基于日志记录集更新元数据组所花费的预测时间,以及
基于日志时间和预测时间控制包括在日志记录集中的日志记录的数量。
2.根据权利要求1所述的存储器控制器,其中,
控制电路还被配置为:确定与日志记录集相应的时间片,以及
控制电路基于日志时间、预测时间和时间片执行对日志记录的数量的控制。
3.根据权利要求2所述的存储器控制器,其中,控制电路还被配置为:基于所述多个元数据组中的元数据组的数量来确定时间片。
4.根据权利要求1所述的存储器控制器,其中,控制电路还被配置为:顺序地生成与所述多个元数据组中的元数据组的数量相应的多个日志记录集。
5.根据权利要求4所述的存储器控制器,其中,
控制电路还被配置为:确定与所述多个日志记录集相应的时间窗口,以及
控制电路基于日志时间、预测时间和时间窗口,执行对包括在所述多个日志记录集中的每个日志记录集中的日志记录的数量的控制。
6.根据权利要求5所述的存储器控制器,其中,控制电路还被配置为:在先前生成的日志记录集的累积预测时间超过阈值时间的条件下,减少包括在下一个生成的日志记录集中的日志记录的数量。
7.根据权利要求4所述的存储器控制器,其中,
控制电路被配置为:基于日志记录集中的日志记录的日志时间,执行预测时间的识别,
控制电路还被配置为:更新日志时间表中的预测时间。
8.根据权利要求4所述的存储器控制器,其中,
控制电路被配置为:基于元数据组的日志记录集中的日志记录的日志时间,执行预测时间的识别,以及
控制电路还被配置为:将元数据组的预测时间存储在日志时间表中。
9.根据权利要求8所述的存储器控制器,其中,控制电路还被配置为:
从所述多个元数据组选择预测时间超过阈值时间的第一元数据组;
将第一元数据组识别为最新的元数据组;以及
将最新的元数据组编程到非易失性存储器。
10.根据权利要求8所述的存储器控制器,其中,控制电路还被配置为:在所述多个元数据组的总预测时间超过阈值时间的条件下,
在所述多个元数据组之中选择预测时间为最长预测时间的第二元数据组;
将第二元数据组识别为最长的元数据组;以及
将最长的元数据组编程到非易失性存储器。
11.根据权利要求1所述的存储器控制器,其中,所述多个元数据组包括多个映射表。
12.根据权利要求1所述的存储器控制器,其中,控制电路还被配置为:
确定包括在日志记录集中的日志记录第一数量;以及
在包括在日志记录集中的日志记录的当前数量达到第一数量的条件下,将元数据组和元数据组的日志记录集编程到非易失性存储器。
13.一种存储装置,包括:
非易失性存储器;以及
存储器控制器,包括控制电路,其中,控制电路被配置为:
存储多个元数据组和所述多个元数据组中的元数据组的日志记录集,其中,日志记录集包括分别指示所述多个元数据组中的元数据组的更新信息的多个日志记录,
识别执行所述多个日志记录中的各个日志记录所花费的日志时间,以及
通过以下操作,控制包括在日志记录集中的日志记录的数量:
基于日志时间识别第一数量,以及
在包括在日志记录集中的日志记录的当前数量达到第一数量的条件下,将所述多个元数据组中的一个元数据组和所述多个元数据组中的所述一个元数据组的日志记录集编程到非易失性存储器,
其中,控制电路还被配置为:
基于日志记录集中的各个日志记录的日志时间,预测基于日志记录集更新所述多个元数据组所花费的预测时间,以及
基于日志时间和预测时间来执行对包括在日志记录集中的日志记录的数量的控制。
14.根据权利要求13所述的存储装置,其中,
所述多个元数据组包括第一元数据组和第二元数据组,
控制电路还被配置为:在向存储装置施加电力时,
从非易失性存储器读取第一元数据组和与第一元数据组相应的第一日志记录集;
从非易失性存储器读取第二元数据组和与第二元数据组相应的第二日志记录集;以及
通过使用第二日志记录集更新第一元数据组。
15.根据权利要求14所述的存储装置,还包括:
缓冲存储器,其中,第一元数据组和第二元数据组加载到缓冲存储器中。
16.根据权利要求14所述的存储装置,其中,
非易失性存储器包括第一存储器组和第二存储器组,以及
控制电路还被配置为:将第一元数据组和第一日志记录集存储在第一存储器组中,将第二元数据组和第二日志记录集存储在第二存储器组中。
17.如权利要求13所述的存储装置,其中,
控制电路还被配置为:基于所述多个元数据组中的元数据组的数量,确定与日志记录集相应的时间片,以及
控制电路基于日志时间、预测时间和时间片,执行对包括在日志记录集中的日志记录的数量的控制。
18.根据权利要求13所述的存储装置,其中,
控制电路还被配置为:
顺序地生成与所述多个元数据组中的元数据组的数量相应的多个日志记录集;以及
确定与所述多个日志记录集相应的时间窗口,以及
包括在所述多个日志记录集中的每个中的日志记录的数量的控制基于日志时间、预测时间和时间窗口。
19.一种管理非易失性存储器的元数据的方法,所述方法包括:
生成分别指示元数据组的更新信息的日志记录的日志记录集;以及
基于各个日志记录的日志时间,识别将被包括在日志记录集中的日志记录的第一数量;
在日志记录集中的日志记录的当前数量达到第一数量的条件下,将元数据组和日志记录集编程到非易失性存储器;
基于日志记录集中的各个日志记录的日志时间,预测基于日志记录集更新元数据组所花费的预测时间;以及
基于日志时间和预测时间来执行对包括在日志记录集中的日志记录的数量的控制。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0120598 | 2018-10-10 | ||
KR1020180120598A KR102553261B1 (ko) | 2018-10-10 | 2018-10-10 | 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 스토리지 장치, 및 상기 메모리 컨트롤러의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111026326A CN111026326A (zh) | 2020-04-17 |
CN111026326B true CN111026326B (zh) | 2024-03-19 |
Family
ID=70159976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910479898.8A Active CN111026326B (zh) | 2018-10-10 | 2019-06-04 | 存储器控制器、存储装置及管理元数据的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10936247B2 (zh) |
KR (1) | KR102553261B1 (zh) |
CN (1) | CN111026326B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210022260A (ko) * | 2019-08-20 | 2021-03-03 | 삼성전자주식회사 | 메모리 컨트롤러의 구동방법, 메모리 컨트롤러 및 스토리지 장치 |
CN112486403A (zh) * | 2019-09-12 | 2021-03-12 | 伊姆西Ip控股有限责任公司 | 管理存储对象的元数据的方法、装置和计算机程序产品 |
US11429308B2 (en) * | 2020-03-18 | 2022-08-30 | Vmware, Inc. | Adaptive metadata batching based on input/output rate |
US10877972B1 (en) * | 2020-07-27 | 2020-12-29 | Ja1, Inc. | Systems and methods for high efficiency data logging |
KR20220019570A (ko) * | 2020-08-10 | 2022-02-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이에 포함된 메모리 컨트롤러의 동작 방법 |
KR20220113146A (ko) | 2021-02-05 | 2022-08-12 | 에스케이하이닉스 주식회사 | 호스트 및 이에 연결되는 메모리 시스템의 동작 방법 |
KR20220130526A (ko) | 2021-03-18 | 2022-09-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
US11947839B2 (en) | 2021-05-10 | 2024-04-02 | Samsung Electronics Co., Ltd. | Storage device, system, and method for customizable metadata |
KR20230060817A (ko) * | 2021-10-28 | 2023-05-08 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR102435910B1 (ko) * | 2022-03-15 | 2022-08-25 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848071A (zh) * | 2005-03-24 | 2006-10-18 | 株式会社东芝 | 计算机***、盘装置以及数据更新控制方法 |
JP2009140142A (ja) * | 2007-12-05 | 2009-06-25 | Hitachi Ltd | ジャーナルファイルシステム及びその修復方法 |
EP2365442A1 (en) * | 2010-03-11 | 2011-09-14 | Hitachi, Ltd. | Computer system and method of data cache management |
CN108108308A (zh) * | 2016-11-24 | 2018-06-01 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8244958B2 (en) | 2005-05-09 | 2012-08-14 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
US7533215B2 (en) | 2005-09-15 | 2009-05-12 | Intel Corporation | Distributed and packed metadata structure for disk cache |
US7685378B2 (en) * | 2007-02-15 | 2010-03-23 | Hitachi, Ltd. | Methods and apparatus for adjusting a journal area for continuous data protection |
JP5198245B2 (ja) | 2008-12-27 | 2013-05-15 | 株式会社東芝 | メモリシステム |
JP5740943B2 (ja) * | 2010-12-01 | 2015-07-01 | 株式会社リコー | 画像形成装置、画像処理システム、画像処理プログラム及び画像処理方法 |
KR101790165B1 (ko) * | 2011-08-09 | 2017-11-20 | 삼성전자 주식회사 | 메모리 시스템 및 그것의 메타 데이터 관리 방법 |
US10915256B2 (en) | 2015-02-25 | 2021-02-09 | SK Hynix Inc. | Efficient mapping scheme with deterministic power transition times for flash storage devices |
KR102403202B1 (ko) | 2015-03-13 | 2022-05-30 | 삼성전자주식회사 | 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법 |
US9927985B2 (en) * | 2016-02-18 | 2018-03-27 | SK Hynix Inc. | Method of dynamic table journaling |
US9940261B2 (en) | 2016-05-05 | 2018-04-10 | Western Digital Technology, Inc. | Zoning of logical to physical data address translation tables with parallelized log list replay |
-
2018
- 2018-10-10 KR KR1020180120598A patent/KR102553261B1/ko active IP Right Grant
-
2019
- 2019-05-17 US US16/415,102 patent/US10936247B2/en active Active
- 2019-06-04 CN CN201910479898.8A patent/CN111026326B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848071A (zh) * | 2005-03-24 | 2006-10-18 | 株式会社东芝 | 计算机***、盘装置以及数据更新控制方法 |
JP2009140142A (ja) * | 2007-12-05 | 2009-06-25 | Hitachi Ltd | ジャーナルファイルシステム及びその修復方法 |
EP2365442A1 (en) * | 2010-03-11 | 2011-09-14 | Hitachi, Ltd. | Computer system and method of data cache management |
CN108108308A (zh) * | 2016-11-24 | 2018-06-01 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US10936247B2 (en) | 2021-03-02 |
KR102553261B1 (ko) | 2023-07-07 |
CN111026326A (zh) | 2020-04-17 |
KR20200040544A (ko) | 2020-04-20 |
US20200117389A1 (en) | 2020-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111026326B (zh) | 存储器控制器、存储装置及管理元数据的方法 | |
US10275162B2 (en) | Methods and systems for managing data migration in solid state non-volatile memory | |
CN106354615B (zh) | 固态硬盘日志生成方法及其装置 | |
CN106874217B (zh) | 存储器***及控制方法 | |
US9645924B2 (en) | Garbage collection scaling | |
US11487630B2 (en) | Storage device and data processing method thereof | |
TWI729307B (zh) | 記憶體系統及非揮發性記憶體之控制方法 | |
US9146691B2 (en) | Method for managing commands in command queue, memory control circuit unit and memory storage apparatus | |
US8825946B2 (en) | Memory system and data writing method | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
US11113202B2 (en) | Operating method forcing the second operation to fail using a scatter-gather buffer and memory system thereof | |
KR20200137244A (ko) | 메모리 시스템 및 그것의 동작방법 | |
CN108108261A (zh) | 数据存储装置及其操作方法 | |
US11188267B2 (en) | Method and apparatus and computer program product for handling sudden power off recovery | |
US20170017406A1 (en) | Systems and methods for improving flash-oriented file system garbage collection | |
CN111625187B (zh) | 一种存储器及其控制方法与存储*** | |
US11144380B2 (en) | Memory controller and storage device including the same | |
CN106055488A (zh) | 数据储存设备及其操作方法 | |
KR102653017B1 (ko) | 비휘발성 메모리 장치들 및 이를 제어하는 방법들 | |
CN108509295B (zh) | 存储器***的操作方法 | |
KR20200113991A (ko) | 컨트롤러 및 메모리 시스템 | |
US11915048B2 (en) | Method of scheduling jobs in storage device using pre-defined time and method of operating storage system including the same | |
US20240020226A1 (en) | Data storage device, memory controller therefor, and operating method thereof | |
US20240143226A1 (en) | Data storage device and method for managing a write buffer |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |