CN116774922A - 存储设备及其操作方法 - Google Patents
存储设备及其操作方法 Download PDFInfo
- Publication number
- CN116774922A CN116774922A CN202310239314.6A CN202310239314A CN116774922A CN 116774922 A CN116774922 A CN 116774922A CN 202310239314 A CN202310239314 A CN 202310239314A CN 116774922 A CN116774922 A CN 116774922A
- Authority
- CN
- China
- Prior art keywords
- log data
- log
- jnl
- metadata
- data
- 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
- 238000000034 method Methods 0.000 title claims description 23
- 230000015654 memory Effects 0.000 claims abstract description 169
- 238000010586 diagram Methods 0.000 description 38
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 24
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 24
- 238000013507 mapping Methods 0.000 description 20
- 238000013519 translation Methods 0.000 description 12
- 101150101057 PBA1 gene Proteins 0.000 description 6
- 101100520663 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ADD66 gene Proteins 0.000 description 6
- 238000010926 purge Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000873 masking effect Effects 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
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000003936 working memory Effects 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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- 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
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/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/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/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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Library & Information Science (AREA)
Abstract
公开了一种存储设备,其包括非易失性存储器件和存储控制器,所述存储控制器控制所述非易失性存储器件并基于所述非易失性存储器件的操作更新元数据,并且该存储控制器包括:生成与所述元数据的更新相关联的多个日志数据的日志数据生成器,以及并行地重放所述多个日志数据以恢复元数据的日志数据重放器。
Description
相关申请的交叉引用
本申请要求2022年3月15日在韩国知识产权局提交的第10-2022-0031797号韩国专利申请的优先权,该申请的公开内容通过引用整体结合于此。
技术领域
这里描述的本公开的实施例涉及半导体存储器,更具体地,涉及存储设备及其操作方法。
背景技术
半导体存储器件被分类为的易失性存储器件或者非易失性存储器件,易失性存储器件中,诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)中,当电源关闭时存储的数据消失;非易失性存储器件中,诸如闪存存储器件、相变RAM(PRAM)、磁性RAM(MRAM)、阻性RAM(RRAM)或铁电RAM(FRAM)中,即使当电源关闭时存储的数据仍被保留。
闪存存储器件当前被广泛用作高容量存储设备。被配置为控制闪存存储器件的控制器通过使用映射表来控制闪存存储器件。映射表是保证数据可靠性的重要元数据的手段。因此,当诸如映射表之类的元数据丢失时,存储在存储设备中的数据的可靠性无法得到保证,因此正在开发各种用于防止这种元数据丢失的技术。
发明内容
本公开的实施例提供了一种具有提高的可靠性和提高的性能的存储设备及其操作方法。
根据一实施例,存储设备包括非易失性存储器件和存储控制器,所述存储控制器控制非易失性存储器件并基于对非易失性存储器件的控制来更新元数据,并且所述存储控制器包括:生成与元数据的更新相关联的多个日志数据的日志数据生成器,以及并行地重放多个日志数据以恢复所述元数据的日志数据重放器。
根据一实施例,一种存储设备的操作方法,所述存储设备包括非易失性存储器件和被配置为控制非易失性存储器件的存储控制器,所述方法包括:从非易失性存储器件读取多个日志数据;基于所述多个日志数据的依赖性将所述多个日志数据拆分成多个组;以及并行地重放分别包括在多个组中的日志数据以恢复元数据。
根据一实施例,一种存储设备包括非易失性存储器件和控制非易失性存储器件的存储控制器。所述存储控制器包括:生成与元数据的更新相关联的第一至第四日志数据的日志数据生成器、第一重放单元和第二重放单元。当所述元数据丢失时,第一和第二重放单元被配置为重放第一至第四日志数据以恢复所述元数据。第一重放单元重放第一和第二日志数据,并且当第一重放单元重放第一和第二日志数据时,第二重放单元重放第三和第四日志数据。
根据一实施例,一种存储系统包括第一存储设备、第二存储设备和主机,该主机控制第一和第二存储设备并管理用于控制第一和第二存储设备的元数据。该主机包括日志管理器,其被配置为生成与元数据的更新相关联的多个日志数据。当元数据丢失时,日志管理器重放多个日志数据以恢复元数据。日志管理器包括:第一重放单元,其重放多个日志数据中对应于第一存储设备的多个第一日志数据;以及第二重放单元,当第一重放单元重放多个第一日志数据时,该第二重放单元重放多个日志数据中对应于第二存储设备的多个第二日志数据。
根据一实施例,一种存储系统包括第一主机、第二主机和存储设备,该存储设备在第一和第二主机的控制下执行操作并根据该操作来管理元数据。该存储设备包括日志管理器,其被配置为生成与元数据的更新相关联的多个日志数据。当元数据丢失时,日志管理器重放多个日志数据以恢复元数据。该日志管理器包括:第一重放单元,其重放多个日志数据中对应于第一主机的多个第一日志数据;以及第二重放单元,当第一重放单元重放多个第一日志数据时,该第二重放单元重放多个日志数据中对应于第二主机的多个第二日志数据。
附图说明
通过参考附图对其实施例的详细描述,本公开的上述和其他目的和特征将变得明显。
图1是图示根据本公开实施例的存储系统的框图。
图2是图示图1的存储设备的操作的流程图。
图3是用于描述图1的存储控制器中包括的日志管理器生成日志数据的操作的框图。
图4是图示存储在图3的日志存储器中的日志数据的图。
图5是用于描述图1的存储控制器中包括的日志管理器的重放操作的框图。
图6是用于描述图5的日志数据重放器的框图。
图7是用于详细描述由图3的日志管理器管理的日志数据的配置的图。
图8是用于详细描述由图5的日志管理器并行地重放日志数据的配置的图。
图9是用于描述图6的日志数据重放器的操作的时序图。
图10是图示根据本公开实施例的日志数据的格式的图。
图11是用于描述基于图10的日志数据的日志地址字段并行地重放日志数据的操作的图。
图12是用于描述图5的日志数据重放器的操作的图。
图13是用于描述图3的日志数据生成器的操作的框图。
图14是用于描述图3的日志数据生成器的操作的框图。
图15是用于描述如何重放由图14的日志数据生成器生成的日志数据的图。
图16是图示根据本公开实施例的主机存储系统的框图。
图17是图示根据本公开实施例的存储系统的框图。
图18是图示根据本公开实施例的存储系统的框图。
图19是图示根据本公开实施例的存储系统的框图。
图20是图示应用根据本公开实施例的存储设备的数据中心的框图。
具体实施方式
下面,将如此详细且清楚地描述本公开的实施例,使得本领域的任何技术人员都可以容易地实现本发明。
图1是图示根据本公开实施例的存储系统的框图。参考图1,存储系统10可以包括主机11和存储设备100。
主机11可以将数据存储在存储设备100中,或者可以读取存储在存储设备100中的数据。主机11可以基于给定的接口控制存储设备100。在实施例中,给定接口可以包括各种接口之一,诸如ATA(高级技术附件)接口、SATA(串行ATA)接口、e-SATA(外部SATA)接口、SCSI(小型计算机小型接口)接口、SAS(串行附接SCSI)接口、PCI(外围组件互连)接口、PCIe(PCI快速)接口、NVMe(NVM快速)接口、IEEE 1394接口、USB(通用串行总线)接口、SD(安全数字)卡接口、MMC(多媒体卡)接口、eMMC(嵌入式多媒体卡)接口、UFS(通用闪存)接口、eUFS(嵌入式通用闪存)接口和CF(紧凑型闪存)卡接口。
存储设备100可以包括存储控制器110、非易失性存储器件120和缓冲存储器130。在主机11的控制下,存储控制器110可以将数据存储在非易失性存储器件120中,或者可以读取存储在非易失性存储器件120中的数据。
非易失性存储器件120可以在存储控制器110的控制下操作。在实施例中,非易失性存储器件120可以是NAND闪存存储器件,然而本公开不限于此。例如,非易失性存储器件120可以是基于各种非易失性设备,诸如PRAM、RRAM和MRAM等。
缓冲存储器130可以被配置为临时存储要存储在非易失性存储器件120中的数据或者从非易失性存储器件120读取的数据。在实施例中,缓冲存储器130可以是DRAM,然而本公开不限于此。例如,缓冲存储器130可以包括各种高速存储器之一,诸如SRAM、PRAM、RRAM和MRAM等。
在实施例中,缓冲存储器130可以存储存储设备100操作所需的各种信息(例如,元数据MD)。例如,存储控制器110可以通过地址转换操作来管理存储在非易失性存储器件120中的数据。地址转换操作是指将由主机11管理的逻辑块地址转换成非易失性存储器件120的物理块地址的操作。可以通过映射表来执行地址转换操作。映射表可以存储在缓冲存储器130中以便进行管理。
下面,为了简单地描述本公开的实施例,将在元数据MD对应于映射表的情况下给出描述。然而,本公开不限于此。例如,元数据MD可以包括存储设备100操作所需的各种信息。
在实施例中,当元数据MD由于各种原因而丢失时,存储在非易失性存储器件120中的数据的可靠性不能得到保证。为了防止元数据MD的丢失,存储控制器110可以管理包括元数据MD的更新信息的日志数据。例如,存储控制器110可以包括日志管理器111。日志管理器111可以日志数据的形式写入和管理元数据MD的更新信息。在实施例中,由日志管理器111管理的日志数据可以存储在包括在存储控制器110中的内部缓冲器中,或者可以存储在位于存储控制器110外部的缓冲存储器130中。
在实施例中,当元数据MD在各种情况下丢失时,日志管理器111可通过重放所写入的日志数据来恢复丢失的元数据MD。例如,存储控制器110可以周期性地将缓冲存储器130的元数据MD存储在非易失性存储器件120中。在存储系统10中,当突然断电(SPO)发生时,存储设备100可以通过使用内部电源(例如,电容器电源)来执行突然断电操作。在这种情况下,因为缓冲存储器130中存在的元数据MD的容量相对较大,所以可能不会将元数据MD刷新到非易失性存储器件120。也就是说,在突然断电的情况下,非易失性存储器件120中存储(或存在)的元数据MD可能不是最新版本;在这种情况下,元数据MD的部分信息可能丢失。相反,因为由日志管理器111管理的日志数据的容量相对较小,所以在突然断电时,可以将日志数据刷新到非易失性存储器件120。之后,当存储系统10通电时,存储控制器110可以通过重放被刷新到非易失性存储器件120的日志数据来恢复元数据MD。
通常,日志数据的重放是按照写入日志数据的顺序依次执行的。在这种情况下,重放日志数据所花费的的时间可能增加,由此导致恢复元数据MD花费的时间增加。相反,根据本公开,存储控制器110(或日志管理器111)可以基于日志数据的依赖性将日志数据拆分成多个组,并且可以单独或并行地重放拆分的组的日志数据的各部分。在对日志数据并行执行重放操作的情况下,可以缩短恢复元数据MD所花费的时间。此外,因为要并行地重放的日志数据是基于日志数据的依赖性来拆分的,所以可以保证元数据的可靠性。将参照以下附图详细描述根据本公开实施例的存储控制器110的日志数据管理方法。
图2是图示图1的存储设备的操作的流程图。下面,为了清楚地描述本公开的实施例,假设元数据MD对应于映射表。然而,本公开不限于此。例如,元数据MD可以包括各种其他信息。下面,假设恢复元数据MD的情况是在突然断电之后接通电源的情况。然而,本公开不限于此。例如,恢复元数据MD的情况可以包括各种不同的其他情况。例如,当存储设备100操作时元数据MD中发生错误时,存储控制器110可以通过日志数据的重放操作来恢复元数据MD,如下所述。
参照图1和图2,在操作S110中,存储设备100可写入与元数据MD的更新相关联的日志数据。例如,存储控制器110可对非易失性存储器件120执行各种操作(例如,读取操作、写入操作和擦除操作)。在这种情况下,可以更新元数据MD,并且存储控制器110的日志管理器111可以写入与元数据MD的更新相关联的日志数据。
在操作S120,存储设备100可以感测到突然断电。例如,存储设备100可以通过检测从主机11或外部电源(例如,电源管理集成电路(PMIC))提供的电源电压的电压降来感测突然断电。当没有感测到突然断电时,存储设备100继续执行操作S110。
当感测到突然断电时,在操作S130,存储设备100可将日志数据刷新到非易失性存储器件120。例如,当突然断电发生时,存储设备100的存储控制器110可以通过使用辅助电源将缓冲存储器130或内部存储器中存在的各种信息或重要信息刷新到非易失性存储器件120。刷新到非易失性存储器件120的数据可以包括日志数据。在实施例中,可以以高速编程方式或单层单元(SLC)编程方式将日志数据编程在非易失性存储器件120的给定区域中。
在操作S140,可以对存储设备100通电。在操作S150,存储设备100可以从非易失性存储器件120读取日志数据。例如,存储控制器110可以从非易失性存储器件120的给定区域读取数据。
在操作S160,存储设备100可基于日志数据的依赖性来拆分日志数据。例如,为了并行地对日志数据执行重放操作,存储控制器110的日志管理器111可以将日志数据拆分成多个组。在这种情况下,为了并行地对日志数据执行重放操作,在要同时或非依序重放的日志数据之间应该没有依赖性。在实施例中,日志数据的依赖性可以基于与日志数据相关联的操作码、目标元数据的地址等来确定。将参照附图详细描述与日志数据的依赖性相关联的配置。
在操作S170,存储设备100可并行地重放日志数据以恢复元数据MD。例如,存储控制器110的日志管理器111可按照拆分的组的单元单独地或并行地重放日志数据。
如上所述,根据本公开实施例的存储控制器110可以通过基于日志数据的依赖性并行地重放日志数据来恢复元数据MD。也就是说,可以以不同于生成日志数据的顺序(即,更新元数据的顺序)的非依序的顺序来重放日志数据;然而,可以正常恢复元数据MD。在这种情况下,与依序重放日志数据的情况相比,可以缩短恢复元数据MD所花费的时间。
图3是用于描述包括在图1的存储控制器中的日志管理器生成日志数据的操作的框图。图4是图示存储在图3的日志存储器中的日志数据的图。图5是用于描述包括在图1的存储控制器中的日志管理器的重放操作的框图。为了描述方便,省略了描述对日志管理器的操作不必要的组件。
参照图1和图3至图5,存储设备100的存储控制器110可以对非易失性存储器件120执行各种操作(例如,读取操作、写入操作和擦除操作)。随着在非易失性存储器件120上执行各种操作,可以更新存储在缓冲存储器130中的元数据MD。在实施例中,元数据MD的更新可以由包括在存储控制器110中的闪存转换层(FTL)来执行。
日志管理器111可基于元数据MD的更新信息来管理日志数据JNL。例如,日志管理器111可包括日志数据生成器111a、日志存储器111b和日志数据重放器111c。
日志数据生成器111a可基于元数据MD的更新信息生成日志数据JNL。即,日志数据JNL可包括指示元数据MD如何更新的信息;在元数据MD的部分信息丢失的情况下,丢失的信息可通过日志数据JNL来恢复。
由日志数据生成器111a生成的日志数据JNL可以存储在日志存储器111b中。在实施例中,日志存储器111b可以是包括在存储控制器110中的内部存储器、内部缓冲器或内部SRAM。可替换地,尽管图中未图示,日志存储器111b可以用位于存储控制器110外部的缓冲存储器130的一部分来实现。
日志存储器111b可以累积和存储从日志数据生成器111a生成的日志数据JNL。例如,如图4所图示,随着元数据MD被更新,日志数据生成器111a可依序生成多个日志数据JNL_A0、JNL_B0、JNL_C0、JNL_D0、JNL_A1、JNL_C1、JNL_B1、JNL_A2、JNL_D1、JNL_B2、JNL_D2和JNL_C2。可基于生成日志数据的顺序将多个日志数据JNL_A0、JNL_B0、JNL_C0、JNL_D0、JNL_A1、JNL_C1、JNL_B1、JNL_A2、JNL_D1、JNL_B2、JNL_D2和JNL_C2依序写入或存储在日志存储器111b中。在实施例中,生成多个日志数据的顺序可以与更新元数据MD的顺序相关联。
在实施例中,当驱动存储设备100时,可以将存在于缓冲存储器130中的元数据MD周期性地或非周期性地(或随机地)刷新到非易失性存储器件120。
在实施例中,当存储设备100中发生突然断电时,可以将日志存储器111b中存在的日志数据JNL刷新到非易失性存储器件120中。在实施例中,在非易失性存储器件120中,存储元数据MD和日志数据JNL的区域可以是SLC区域。
日志数据重放器111c可以被配置为重放日志数据用于恢复元数据MD的目的。例如,如图5所图示的,当存储设备100在突然断电之后通电时,可以将非易失性存储器件120中存在的元数据MD加载或存储到缓冲存储器130上。在这种情况下,如上所述,非易失性存储器件120中存在的元数据MD可能不是最新版本;在这种情况下,不能保证非易失性存储器件120中存在的数据的可靠性。因此,可能需要恢复元数据MD的最新版本的操作。
日志管理器111的日志数据重放器111c可以通过重放存在于非易失性存储器件120中的日志数据JNL来恢复元数据MD的最新版本。例如,日志数据重放器111c可以从非易失性存储器件120读取日志数据JNL。日志数据重放器111c可通过基于日志数据JNL的依赖性将日志数据JNL拆分成多个组,并依赖于拆分的组单独或并行地重放日志数据JNL,来恢复元数据MD。
图6是用于描述图5的日志数据重放器的框图。参照图5和图6,日志数据重放器111c可以包括日志数据拆分单元SPL和多个日志数据重放单元RP0至RP3。在下文中,为了描述方便,日志数据重放单元可以被称为“重放单元”。在实施例中,包括在日志数据重放器111c中的重放单元的数量可以不同地改变。
日志数据拆分单元SPL可以从非易失性存储器件120接收日志数据JNL。日志数据拆分单元SPL可基于日志数据JNL的依赖性将日志数据JNL拆分成多个组。例如,假设日志数据JNL具有参考图4描述的数据结构。在这种情况下,第A个日志数据JNL_A(包括JNL_A0、JNL_A1和JNL_A2)、第B个日志数据JNL_B(包括JNL_B0、JNL_B1和JNL_B2)、第C个日志数据JNL_C(包括JNL_C0、JNL_C1和JNL_C2)和第D个日志数据JNL_D0(包括JNL_D0、JNL_D1和JNL_D2)可能相互不具有依赖性。
日志数据之间不存在依赖性可能意味着日志数据在时间上或空间上彼此不相关联。例如,在第一日志数据和第二日志数据在空间上彼此关联并被依序写入的情况下,通常只能以以下方式恢复元数据MD:1)首先重放第一日志数据,然后2)重放第二日志数据。在同时或并行地重放第一和第二日志数据的情况下,或者在首先重放第二日志数据的情况下,不能恢复元数据MD。在这种情况下,可以将第一和第二日志数据确定为相互具有依赖性。
相反,在第三日志数据和第四日志数据在时间上或空间上彼此不相关联的情况下,通常可通过重放第三和第四日志数据来恢复元数据MD,而不管重放第三和第四日志数据的顺序。在这种情况下,即使第三和第四日志数据同时或并行地被重放,元数据MD也可以正常被恢复。也就是说,可以将第三和第四日志数据确定为相互不具有依赖性。
即,图4的日志数据JNL、第A个日志数据JNL_A(包括JNL_A0、JNL_A1和JNL_A2)可以具有相互依赖性,但是可以与剩余日志数据JNL_B、JNL_C和JNL_D不具有依赖性;第B个日志数据JNL_B(包括JNL_B0、JNL_B1和JNL_B2)可以具有相互依赖性,但是可以与剩余日志数据JNL_A、JNL_C和JNL_D不具有依赖性;第C个日志数据JNL_C(包括JNL_C0、JNL_C1和JNL_C2)可以具有相互依赖性,但是可以与剩余日志数据JNL_A、JNL_B和JNL_D不具有依赖性;第D个日志数据JNL_D(包括JNL_D0、JNL_D1和JNL_D2)可以具有相互依赖性,但是可以与剩余日志数据JNL_A、JNL_B和JNL_C不具有依赖性。
在实施例中,日志数据之间的依赖性可以基于指示日志数据或地址的操作的操作码来确定。
可以将由日志数据拆分单元SPL拆分的第A个日志数据JNL_A提供给第0重放单元RP0;可以将由日志数据拆分单元SPL拆分的第B个日志数据JNL_B提供给第一重放单元RP1;可以将由日志数据拆分单元SPL拆分的第C个日志数据JNL_C提供给第二重放单元RP2;可以将由日志数据拆分单元SPL拆分的第D个日志数据JNL_D提供给第三重放单元RP3。
第0至第3重放单元RP0至RP3可以单独地或并行地分别重放第A个至第D个日志数据JNL_A、JNL_B、JNL_C和JNL_D,因此,可恢复元数据MD。在实施例中,如上所述,因为第A个至第D个日志数据JNL_A、JNL_B、JNL_C和JNL_D相互没有依赖性,所以即使同时或并行地重放第A个至第D个日志数据JNL_A、JNL_B、JNL_C和JNL_D,也可以正常恢复元数据MD。
在实施例中,取决于给定的顺序,可以由一个重放单元重放具有依赖性的日志数据。例如,第A个日志数据JNL_A(包括JNL_A0、JNL_A1和JNL_A2)可由第0个重放单元RP0重放。在这种情况下,可以取决于写入顺序(即,JNL_A0→JNL_A1→JNL_A2)来重放第A个日志数据JNL_A(包括JNL_A0、JNL_A1和JNL_A2)。
图7是用于详细描述由图3的日志管理器管理的日志数据的配置的图。为了清楚地描述本公开的实施例,假设存储设备100取决于主机11的请求或在主机11的控制下重复执行对第一逻辑块地址LBA1的写入操作。
例如,参照图1和图7,存储设备100可以取决于主机11的请求对第一逻辑块地址LBA1执行第一写入操作(第一WR)。在这种情况下,存储设备100的存储控制器110可以将非易失性存储器件120的第一物理块地址PBA1分配或映射到第一逻辑块地址LBA1。另外,存储控制器110可以将关于第一逻辑块地址LBA1和第一物理块地址PBA1的信息写入作为元数据MD的映射表L2P映射中,并且可以设置第一有效信息VPB1(在图7中由“S”标记)。也就是说,在完成对第一逻辑块地址LBA1的第一写入操作之后,作为元数据MD的映射表L2P映射可以包括第一逻辑块地址LBA1和第一物理块地址PBA1的对应信息以及第一有效信息VPB1。
日志管理器111可以被配置为写入上述元数据MD的更新信息。例如,日志管理器111可以生成与写入第一逻辑块地址LBA1和第一物理块地址PBA1的对应信息的更新操作(即,写入L2P)相关联的第一映射日志数据JNL_L2P_1作为日志数据。之后,日志管理器111可以生成与设置第一有效信息VPB1的更新操作(即,Set_VPB1)相关联的第一有效设置日志数据JNL_VPBSET_1作为日志数据,所述第一有效信息VPB1指示第一逻辑块地址LBA1和第一物理块地址PBA1的对应信息的有效性。
第一映射日志数据JNL_L2P_1和第一有效设置日志数据JNL_VPBSET_1可以依序或按顺序存储在日志存储器111b中。
之后,存储设备100可以对第一逻辑块地址LBA1执行第二写入操作(第二WR)。在这种情况下,存储控制器110可以将非易失性存储器件120的第二物理块地址PBA2分配或映射到第一逻辑块地址LBA1。
另外,存储控制器110可以将关于第一逻辑块地址LBA1和第二物理块地址PBA2的信息写入作为元数据MD的映射表L2P映射中,可以清除第一有效信息VPB1(在图7中用“C”标记),并且可以设置第二有效信息VPB2。也就是说,在完成对第一逻辑块地址LBA1的第二写入操作之后,作为元数据MD的映射表L2P映射可以包括第一逻辑块地址LBA1和第一物理块地址PBA1的对应信息、第一有效信息VPB1、第一逻辑块地址LBA1和第二物理块地址PBA2的对应信息以及第二有效信息VPB2。在这种情况下,因为第一有效信息VPB1被清除(C)并且第二有效信息VPB2被设置(S),所以在第二写入操作完成之后,可以基于第二物理块地址PBA2执行对第一逻辑块地址LBA1的访问。
如在以上描述中,日志管理器111可以被配置为写入上述元数据MD的更新信息。例如,日志管理器111可以生成与写入第一逻辑块地址LBA1和第二物理块地址PBA2的对应信息的更新操作(即,写入L2P)相关联的第二映射日志数据JNL_L2P_2作为日志数据。之后,日志管理器111可以生成,即与清除第一有效信息VPB1的更新操作(即,Clear_VPB1)相关联的第一有效清除日志数据JNL_VPBCLR_1作为日志数据,所述第一有效信息VPB1指示第一逻辑块地址LBA1和第一物理块地址PBA1的对应信息的有效性。之后,日志管理器111可以生成与设置第二有效信息VPB2的更新操作(即,Set_VPB2)相关联的第二有效设置日志数据JNL_VPBSET_2作为日志数据,所述第二有效信息VPB2指示第一逻辑块地址LBA1和第二物理块地址PBA2的对应信息的有效性。
第二映射日志数据JNL_L2P_2、第一有效清除日志数据JNL_VPBCLR_1和第二有效设置日志数据JNL_VPBSET_2可以依序或按顺序存储在日志存储器111b中。
之后,存储设备100可以对第一逻辑块地址LBA1执行第三写入操作(第三WR)。在第三写入操作(第三WR)中,存储控制器110可以将非易失性存储器件120的第三物理块地址PBA3分配或映射到第一逻辑块地址LBA1。在这种情况下,如上所述,可以执行将第一逻辑块地址LBA1和第三物理块地址PBA3的对应信息写入映射表L2P映射的操作(即,写入L2P)、清除第二有效信息VPB2的操作(即,Clear_VPB2)和设置第三有效信息VPB3的操作(即,Set_VPB3)。
日志管理器111可以被配置为写入上述元数据MD的更新信息。例如,日志管理器111可以生成与写入第一逻辑块地址LBA1和第三物理块地址PBA3的对应信息的更新操作(即,写入L2P)相关联的第三映射日志数据JNL_L2P_3作为日志数据。之后,日志管理器111可以生成与清除第二有效信息VPB2的更新操作(即,Clear_VPB2)相关联的第二有效清除日志数据JNL_VPBCLR_2作为日志数据,所述第二有效信息VPB2指示第一逻辑块地址LBA1和第二物理块地址PBA2的对应信息的有效性。之后,日志管理器111可生成与设置第三有效信息VPB3的更新操作(即,Set_VPB3)相关联的第三有效设置日志数据JNL_VPBSET_3作为日志数据,所述第三有效信息VPB3指示第一逻辑块地址LBA1和第三物理块地址PBA3的对应信息的有效性。
第三映射日志数据JNL_L2P_3、第二有效清除日志数据JNL_VPBCLR_2和第三有效设置日志数据JNL_VPBSET_3可以依序或按顺序存储在日志存储器111b中。
如上所述,日志管理器111可生成与元数据MD的更新相关联的日志数据JNL,并且生成的日志数据JNL可以依序地(例如,以更新元数据MD的顺序)存储在日志存储器111b中。
在实施例中,当存储设备100中发生突然断电时,可以将日志存储器111b中存在的日志数据JNL刷新到非易失性存储器件120。
图8是用于详细描述由图5的日志管理器并行地重放日志数据的配置的图。为了描述方便,假设由日志管理器111重放的日志数据JNL是参考图7描述的日志数据JNL。
参照图1、图5、图7和图8,日志管理器111的日志数据重放器111c可以从非易失性存储器件120读取日志数据JNL,并且可以基于日志数据JNL的依赖性并行地重放日志数据JNL。
例如,日志数据拆分单元SPL可以基于日志数据JNL的依赖性来拆分日志数据JNL。详细地,在突然断电时在非易失性存储器件120中刷新的日志数据JNL可以包括以下日志数据:JNL_L2P_1、JNL_VPBSET_1、JNL_L2P_2、JNL_VPBCLR_1、JNL_VPBSET_2、JNL_L2P_3、JNL_VPBCLR_2和JNL_VPBSET_3。在这种情况下,日志数据拆分单元SPL可以将日志数据JNL_L2P_1、JNL_L2P_2和JNL_L2P_3分类为第一组,可以将日志数据JNL_VPBSET_1和JNL_VPBCLR_1分类为第二组,可以将日志数据JNL_VPBSET_2和JNL_VPBCLR_2分类为第三组,并且可以将日志数据JNL_VPBSET_3分类为第四组。
在上述日志数据的拆分中,每组日志数据可以相互不具有依赖性。例如,尽管同时或并行地重放第一组的日志数据(例如,JNL_L2P_1、JNL_L2P_2和JNL_L2P_3)和第二组的日志数据(例如,JNL_VPBSET_1和JNL_VPBCLR_1),但是可以正常恢复元数据MD。相反,当同时或并行地重放第二组的日志数据(例如,JNL_VPBSET_1和JNL_VPBCLR_1)时,第二有效信息VPB2的最终值可以对应于设置(S)状态,这不同于第二有效信息VPB2的实际状态。
也就是说,日志数据拆分单元SPL可以基于日志数据的依赖性将日志数据拆分成多个组。在实施例中,日志数据的依赖性可以基于日志数据中包括的信息来确定,例如操作码或地址。
可以将由日志数据拆分单元SPL拆分成多个组的日志数据JNL分别提供给多个重放单元RP0至RP3。多个重放单元RP0至RP3中的每一个可基于接收的日志数据JNL恢复元数据MD。
例如,第0重放单元RP0可接收第一组的日志数据(例如,JNL_L2P_1、JNL_L2P_2和JNL_L2P_3),并可基于接收的日志数据来更新元数据MD的L2P信息(即,逻辑块地址和物理块地址的对应信息)。
第一重放单元RP1可接收第二组的日志数据(例如,JNL_VPBSET_1和JNL_VPBCLR_1),并可基于接收的日志数据来更新元数据MD的第一有效信息VPB1。
第二重放单元RP2可接收第三组的日志数据(例如,JNL_VPBSET_2和JNL_VPBCLR_2),并可基于接收的日志数据来更新元数据MD的第二有效信息VPB2。
第三重放单元RP3可接收第四组的日志数据(例如,JNL_VPBSET_3),并可基于接收的日志数据来更新元数据MD的第三有效信息VPB3。
传统的日志数据重放器取决于生成或写入日志数据的顺序而一个接一个地依序重放日志数据。在这种情况下,恢复元数据MD的速度可能相对较慢。相反,如上所述,根据本公开实施例的日志数据重放器111c可以包括多个重放单元RP0至RP3,并且可以基于日志数据JNL的依赖性通过重放单元RP0至RP3并行地重放日志数据JNL。在这种情况下,因为由多个重放单元RP0至RP3同时或并行地重放日志数据,所以可以提高恢复元数据MD的操作速度。
图9是用于描述图6的日志数据重放器的操作的时序图。参照图6和图9,日志数据重放器111c可以从非易失性存储器件120读取日志数据JNL。在实施例中,从非易失性存储器件120读取日志数据JNL的操作可以以SLC读取方式执行。日志数据重放器111c可以将读取的日志数据JNL拆分成多个组。接下来,日志数据重放器111c可以通过使用多个重放单元RP0至RP3并行地重放日志数据JNL。
在这种情况下,如图9所图示的,日志数据重放器111c的日志数据读取操作、日志数据拆分操作和日志数据重放操作可以以流水线方式执行,因此,可以提高元数据恢复速度。
图10是图示根据本公开实施例的日志数据的格式的图。图11是用于描述基于图10的日志数据的日志地址字段并行地重放日志数据的操作的图。
在实施例中,图10所图示的日志数据JNL的格式只是示例,并且本公开不限于此。日志数据JNL的格式可以被不同地改变或修改。参考图10和11,日志数据JNL可以包括日志操作码字段、日志地址字段和数据字段。
日志操作码字段可包括关于在重放日志数据JNL时更新的操作的信息。日志地址字段可指示在重放日志数据JNL时更新的元数据的位置(例如,缓冲存储器130的位置)。数据字段可以指示在重放日志数据JNL时更新的值。
在实施例中,参考图8描述的日志数据拆分单元SPL的拆分方式可以基于日志数据JNL的日志操作码字段来执行。例如,日志数据拆分单元SPL可以检查从非易失性存储器件120读取的日志数据JNL的日志操作码字段,并且可以基于日志操作码字段将日志数据JNL拆分成多个组。
在实施例中,日志数据拆分单元SPL可基于日志数据JNL的日志地址字段将日志数据JNL拆分成多个组。例如,如图11所图示,可以在缓冲存储器130的给定地址范围内存储或管理元数据MD。缓冲存储器130的给定地址范围可以包括第0至第三地址范围AR_0、AR_1、AR_2和AR_3。
当重放日志数据JNL时,在第0地址范围AR_0中包括的元数据MD的数据或信息可由第0重放单元RP0更新;在第一地址范围AR_1中包括的元数据MD的数据或信息可由第一重放单元RP1更新;在第二地址范围AR_2中包括的元数据MD的数据或信息可由第二重放单元RP2更新;在第三地址范围AR_3中包括的元数据MD的数据或信息可由第三重放单元RP3更新。
在这种情况下,因为分别被包括在第0至第三地址范围AR_0、AR_1、AR_2和AR_3中的元数据MD在物理上或逻辑上彼此可区分,所以可以正常恢复元数据MD,即使并行地更新也如此。也就是说,分别对应于第0至第三地址范围AR_0、AR_1、AR_2和AR_3的日志数据相互不具有依赖性。详细地,当将第一日志数据的日志地址字段包括在第一地址范围AR_1中并且将第二日志数据的日志地址字段包括在第二地址范围AR_2中时,在第一日志数据和第二日志数据之间可能不存在依赖性,因此,可以同时或并行地重放第一日志数据和第二日志数据。
日志数据拆分单元SPL可基于上述日志数据的各种特征和属性来确定日志数据之间的依赖性,并可将日志数据提供给不同的重放单元,使得同时或并行地重放不具有相互依赖性的日志数据。
图12是用于描述图5的日志数据重放器的操作的图。在上述实施例中,给出了如下描述:日志数据拆分单元SPL基于日志数据JNL的依赖性来拆分日志数据JNL,并将各组的日志数据分别提供给多个重放单元RP0至RP3。然而,本公开不限于此。
例如,如图12所图示,日志数据重放器111c可以包括日志数据拆分单元SPL和多个重放单元RP0至RP3。日志数据拆分单元SPL可以从非易失性存储器件120接收日志数据JNL。日志数据拆分单元SPL可基于参照图1至图11描述的方法将日志数据JNL拆分成多个组。
可以将日志存储器111b划分成多个日志存储单元JM0至JM3。多个日志存储单元JM0至JM3可指示日志存储器111b内物理上或逻辑上彼此区分的存储区域。可以将由日志数据拆分单元SPL拆分的日志数据存储在多个日志存储单元JM0至JM3的相应日志存储单元中。例如,被分类为第一组的第A个日志数据JNL_A可以存储在第0日志存储单元JM0中;被分类为第二组的第B个日志数据JNL_B可以存储在第一日志存储单元JM1中;被分类为第三组的第C个日志数据JNL_C可以存储在第二日志存储单元JM2中;被分类为第四组的第D个日志数据JNL_D可以存储在第三日志存储单元JM3中。
日志数据重放器111c的多个重放单元RP0至RP3中的每一个可以被配置为重放存储在日志存储单元JM0、JM1、JM2和JM3中的相应一个中的日志数据。例如,第0重放单元RP0可依序重放在第0日志存储单元JM0中存储的第A日志数据JNL_A;第一重放单元RP1可依序重放在第一日志存储单元JM1中存储的第B个日志数据JNL_B;第二重放单元RP2可依序重放在第二日志存储单元JM2中存储的第C个日志数据JNL_C;第三重放单元RP3可依序重放在第三日志存储单元JM3中存储的第D个日志数据JNL_D。
图13是用于描述图3的日志数据生成器的操作的框图。参考图1、3和13,日志管理器111的日志数据生成器111a-1可以包括日志数据生成逻辑111a-1a和重放单元分配逻辑111a-1b。日志数据生成逻辑111a-1a可以基于元数据的更新信息生成日志数据JNL。在实施例中,由日志数据生成逻辑111a-1a生成的日志数据JNL可以具有图10的格式,但是本公开不限于此。例如,由日志数据生成逻辑111a-1a生成的日志数据JNL可以具有各种格式。
在上述实施例中,将生成的日志数据JNL存储在日志存储器111b中。相反,在图13的实施例中,在将生成的日志数据JNL存储在日志存储器111b中之前,将生成的日志数据JNL提供给重放单元分配逻辑111a-1b。重放单元分配逻辑111a-1b可以基于日志数据JNL的依赖性,分配稍后将重放日志数据JNL的重放单元。通过与上述日志数据拆分单元SPL的操作和配置类似的操作和配置,将重放单元分配给日志数据JNL,因此,将省略额外的描述以避免冗余。
重放单元分配逻辑111a-1b可通过将包括关于所分配的重放单元的信息的标识符字段RP_ID添加到日志数据JNL来生成内部日志数据JNL_in。内部日志数据JNL_in可以存储在日志存储器111b中。在这种情况下,当稍后重放日志数据JNL时,日志数据拆分单元SPL可以通过检查标识符字段RP_ID来拆分日志数据JNL。
也就是说,根据图13的实施例,日志管理器111可在生成日志数据的过程中基于日志数据的依赖性预先分配稍后将重放日志数据的重放单元,并可将包括关于所分配的重放单元的信息的标识符字段RP_ID添加到日志数据JNL。之后,当重放日志数据JNL时,日志管理器111可基于检查日志数据JNL的标识符字段RP_ID的结果,将日志数据JNL提供给多个重放单元中被分配给日志数据JNL的重放单元。这样,可以并行地重放日志数据。
图14是用于描述图3的日志数据生成器的操作的框图。参考图1、3和14,日志数据生成器111a-2可以包括日志数据生成逻辑111a-2a和重放单元分配逻辑111a-2b。日志数据生成逻辑111a-2a类似于参考图13描述的日志数据生成逻辑111a-1a,因此,将省略额外的描述以避免冗余。
重放单元分配逻辑111a-2b可以基于日志数据JNL的依赖性,分配稍后将重放日志数据JNL的重放单元。通过与上述日志数据拆分单元SPL的操作和配置类似的操作和配置,将重放单元分配给日志数据JNL,因此,将省略额外的描述以避免冗余。
重放单元分配逻辑111a-2b可将日志数据存储在对应于分配给日志数据的重放单元的日志存储单元中。例如,日志数据生成逻辑111a-2a可以生成第A个、第B个、第C个和第D个日志数据JNL_A、JNL_B、JNL_C和JNL_D。第A个、第B个、第C个和第D个日志数据JNL_A、JNL_B、JNL_C和JNL_D可以是没有相互依赖性的日志数据。在这种情况下,重放单元分配逻辑111a-2b可将第A个日志数据JNL_A分配给第0重放单元RP0,将第B个日志数据JNL_B分配给第一重放单元RP1,将第C个日志数据JNL_C分配给第二重放单元RP2,并将第D个日志数据JNL_D分配给第三重放单元RP3。
重放单元分配逻辑111a-2b可以将第A个日志数据JNL_A存储在日志存储器111b-2的第0个日志存储单元JM0中,可以将第B个日志数据JNL_B存储在日志存储器111b-2的第一个日志存储单元JM1中,可以将第C个日志数据JNL_C存储在日志存储器111b-2的第二个日志存储单元JM2中,并且可以将第D个日志数据JNL_D存储在日志存储器111b-2的第三个日志存储单元JM3中。第0个至第3个日志存储单元JM0至JM3可以是日志存储器111b-2中在物理上或逻辑上彼此区分的存储区域。
如上所述,依赖于分别分配给日志数据的重放单元,重放单元分配逻辑可以将日志数据存储在不同的日志存储单元中。在实施例中,可以将通过图14的操作存储在日志存储器111b-2中的日志数据JNL刷新到非易失性存储器件120。
图15是用于描述如何重放由图14的日志数据生成器生成的日志数据的图。参照图1、图3、图14和图15,可以将非易失性存储器件120中存在的日志数据JNL加载到日志存储器111b-2上。在实施例中,可以将日志数据JNL_A、JNL_B、JNL_C和JNL_D加载到日志存储器111b-2的位置处,这些位置与重放单元分配逻辑111a-2b存储日志数据JNL_A、JNL_B、JNL_C和JNL_D的位置相同。例如,类似于重放单元分配逻辑111a-2b存储日志数据的方式,可以将从非易失性存储器件120读取的第A个日志数据JNL_A加载到第0日志存储单元JM0上;可以将从非易失性存储器件120读取的第B个日志数据JNL_B加载到第一日志存储单元JM1上;可以将从非易失性存储器件120读取的第C个日志数据JNL_C加载到第二日志存储单元JM2上;可以将从非易失性存储器件120读取的第D日志数据JNL_D加载到第三日志存储单元JM3上。
在实施例中,可以通过以分组或图像的形式刷新和加载日志存储器111b-2中存在的整个日志数据来实现上述加载日志数据JNL的方式。
之后,加载到第0日志存储单元JM0上的第A个日志数据JNL_A可由第0重放单元RP0重放;加载到第一日志存储单元JM1上的第B个日志数据JNL_B可以由第一重放单元RP1重放;加载到第二日志存储单元JM2上的第C个日志数据JNL_C可以由第二重放单元RP2重放;加载到第三日志存储单元JM3上的第D个日志数据JNL_D可以由第三重放单元RP3重放。相应地,可以实现日志数据的并行重放。
图16是图示根据本公开实施例的主机存储系统的框图。参考图16,主机存储系统1000可以包括主机1010和存储设备1100。此外,存储设备1100可以包括存储控制器1110和非易失性存储器(NVM)1120。此外,根据本公开的实施例,主机1010可以包括主机控制器1011和主机存储器1012。主机存储器1012可以用作缓冲存储器,用于临时存储要发送到存储设备1100的数据或从存储设备1100发送的数据。
存储设备1100可以包括依赖于来自主机1010的请求而存储数据的存储介质。作为示例,存储设备1100可以包括固态驱动器(SSD)、嵌入式存储器和可拆卸外部存储器中的至少一个。在存储设备1100是SSD的情况下,存储设备1100可以是符合非易失性快速存储器(NVMe)标准的设备。在存储设备1100是嵌入式存储器或外部存储器的情况下,存储设备1100可以是符合通用闪存(UFS)或嵌入式多媒体卡(eMMC)标准的设备。主机1010和存储设备1100中的每一个可生成符合应用于其的标准协议的分组,并可传送所生成的分组。
当存储设备1100的非易失性存储器1120包括闪存时,该闪存可以包括二维(2D)NAND闪存阵列或三维(3D)(或垂直)NAND(VNAND)存储阵列。作为另一个示例,存储设备1100可以用各种不同的非易失性存储器来实现。例如,存储设备1100可以包括磁性RAM(MRAM)、自旋转移矩MRAM(STT-MRAM)、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)、阻性RAM(RRAM)或各种不同存储器中的至少一种。
根据一实施例,主机控制器1011和主机存储器1012可以用单独的半导体芯片来实现。可替换地,在一些实施例中,主机控制器1011和主机存储器1012可以在同一半导体芯片中实现。作为示例,主机控制器1011可以是应用处理器中包括的多个模块之一;在这种情况下,应用处理器可以用片上系统(SoC)来实现。此外,主机存储器1012可以是在应用处理器中包括的嵌入式存储器,或者可以是设置在应用处理器外部的非易失性存储器或存储模块。
主机控制器1011可以管理将主机存储器1012的缓冲区的数据(例如,写入数据)存储在非易失性存储器1120中或者将非易失性存储器1120的数据(例如,读取数据)存储在缓冲区中的操作。
存储控制器1110可以包括主机接口1111、存储器接口1112、中央处理单元(CPU)1113。此外,存储控制器1110还可以包括闪存转换层(FTL)1114、日志管理器1115、缓冲存储器1116、纠错码(ECC)引擎1117、高级加密标准(AES)引擎1118。存储控制器1110还可以包括其上加载了闪存转换层1114的工作存储器(未图示),并且当CPU 1113执行闪存转换层1114时,可以控制非易失性存储器1120的数据写入和读取操作。
主机接口1111可以与主机1010交换分组。从主机1010传送到主机接口1111的分组可以包括要写入非易失性存储器1120的命令或数据,并且从主机接口1111传送到主机1010的分组可以包括对从非易失性存储器1120读取的命令或数据的响应。存储器接口1112可以向非易失性存储器1120提供要写入非易失性存储器1120的数据,并且可以接收从非易失性存储器1120读取的数据。可以将存储器接口1112实现为符合诸如切换(Toggle)或ONFI(开放式NAND闪存接口)的标准。
闪存转换层1114可以执行各种功能(或操作),诸如地址映射、损耗均衡和垃圾收集。地址映射操作指的是将从主机1010接收的逻辑地址转换成用于在非易失性存储器1120中实际存储数据的物理地址的操作。可以例如通过用于平衡物理块的擦除计数的固件技术来实现作为一种允许均匀地使用非易失性存储器1120中的块从而防止特定块的过度退化的技术的损耗均衡。垃圾收集是指通过在将现有块的有效数据复制到新块之后擦除现有块的方式来确保非易失性存储器1120的可用容量的技术。在实施例中,闪存转换层1114可以被配置为管理和更新元数据MD,这将参考图1至图15进行描述。
日志管理器1115可以管理和存储与由存储设备1100管理的各种元数据的更新相关联的各种日志数据。在实施例中,日志管理器1115可以是参考图1至图15描述的日志管理器。
缓冲存储器1116可以临时存储要写入非易失性存储器1120的数据或者从非易失性存储器1120读取的数据。缓冲存储器1116可以是存储控制器1110内提供的组件;然而,可以将缓冲存储器1116设置在存储控制器1110的外部。在实施例中,缓冲存储器1116可以是被配置为存储元数据MD的缓冲存储器,这将参照图1至图15进行描述。可替换地,缓冲存储器1116可以是存储参考图1至图15描述的日志数据JNL的日志存储器。
ECC引擎1117可以对从非易失性存储器1120读取的数据执行错误检测和校正功能。详细地,ECC引擎1117可以为要写入非易失性存储器1120中的写入数据生成奇偶校验位,并且如此生成的奇偶校验位可以与写入数据一起存储在非易失性存储器1120中。当从非易失性存储器1120读取数据时,ECC引擎1117可通过使用从非易失性存储器1120读取的奇偶校验位以及读取数据来校正读取数据的错误,并可输出纠错后的读取数据。
AES引擎1118可以通过使用对称密钥算法对输入到存储控制器1110的数据执行加密操作和解密操作中的至少一个。
在实施例中,存储控制器1110还可以包括分组管理器,该分组管理器生成符合与主机1010约定的接口的协议的分组,或者对来自从主机1010接收的分组的各种信息进行解析。
图17是图示根据本公开实施例的存储系统的框图。参考图17,存储系统2000可以包括多个主机2001至200n和存储设备2100。多个主机2001至200n可以被配置为访问存储设备2100。例如,多个主机2001至200n中的每一个可以将数据存储在存储设备2100中,或者可以读取存储在存储设备2100中的数据。
存储设备2100可以包括存储控制器2110、非易失性存储器件2120和缓冲存储器2130。存储设备2100、存储控制器2110、非易失性存储器件2120和缓冲存储器2130的整体操作类似于上述操作,因此,将省略额外的描述以避免冗余。
在实施例中,存储控制器2110可以包括日志管理器2111。日志管理器2111可以生成和管理与在存储设备2100的操作中使用的各种元数据的更新信息相关联的日志数据。
在实施例中,根据参考图1至图16描述的方法,日志管理器2111可以基于日志数据JNL的依赖性将日志数据JNL拆分成多个组,并且可以并行地重放日志数据JNL。
在实施例中,日志管理器2111可以识别日志数据JNL相对于多个主机2001至200n的依赖性。例如,日志管理器2111可根据第一主机2001的请求或操作生成与元数据更新相关联的第一日志数据,并可根据第二主机2002的请求或操作生成与元数据更新相关联的第二日志数据。日志管理器2111可以将第一和第二日志数据作为没有相互依赖性的日志数据来管理。在元数据的恢复中,日志管理器2111可以并行地重放第一和第二日志数据。也就是说,日志管理器2111可以基于对应于日志数据的主机来分类(或识别或确定)日志数据的依赖性。
图18是图示根据本公开实施例的存储系统的框图。参照图18,存储系统3000-1可以包括主机3001-1和多个存储设备3100-1至3n00-1。主机3001-1可以被配置为控制多个存储设备3100-1至3n00-1。
多个存储设备3100-1至3n00-1中的每一个可以被配置为管理其操作所需的元数据;多个存储设备3100-1至3n00-1中的每一个可以通过参照图1至图16描述的日志管理器来管理日志数据。
在实施例中,主机3001-1可以包括日志管理器JM。在主机3001-1中包括的日志管理器JM可被配置成管理与由主机3001-1管理的元数据的更新相关联的日志数据。例如,主机3001-1可以被配置为彼此独立地控制或访问多个存储设备3100-1至3n00-1。在这种情况下,主机3001-1可以管理单独地或共同地访问或控制多个存储设备3100-1至3n00-1所需的各种元数据。在实施例中,如上面描述中那样,主机3001-1的日志管理器JM可以基于日志数据的依赖性同时或并行地重放日志数据。
在实施例中,由主机3001-1管理的日志数据的依赖性可以通过如上所述的各种方法来确定。可替换地,由主机3001-1管理的日志数据的依赖性可以取决于相应的存储设备来确定。例如,对应于第一存储设备3100-1的日志数据可被日志管理器JM确定为具有依赖性,因此可由一个重放单元重放;对应于第二存储设备3200-1的日志数据可由日志管理器JM确定为具有依赖性,因此可由另一重放单元重放。在这种情况下,对应于第一存储设备3100-1的日志数据和对应于第二存储设备3200-1的日志数据可以被确定为没有相互依赖性,并且可以彼此独立地、同时或并行地重放日志数据。
图19是图示根据本公开实施例的存储系统的框图。参照图19,存储系统3000-2可以包括主机3001-2和多个存储设备3100-2至3n00-2。主机3001-2可以包括日志管理器JM。主机3001-2、日志管理器JM和多个存储设备3100-2至3n00-2类似于参考图18描述的那些,因此,将省略额外的描述以避免冗余。
在实施例中,主机3001-2可以进一步包括闪存转换层FTL。在参考图1至图18描述的实施例中,将闪存转换层FTL包括在存储设备的存储控制器中,并且在非易失性存储器件上执行各种维护操作。相反,在图19的实施例中,可以将闪存转换层FTL包括在主机3001-2中。在这种情况下,主机3001-2的闪存转换层FTL可以在多个存储设备3100-2至3n00-2的每一个上执行各种维护操作,并且可以管理多个存储设备3100-2至3n00-2的每一个上的元数据。在实施例中,根据参考图1至图18描述的各种方法,主机3001-2的日志管理器JM可以管理与由主机3001-2的闪存转换层FTL管理的元数据的更新相关联的日志数据,并且可以基于日志管理器的依赖性来独立地、同时地或并行地重放日志数据。
图20是根据一实施例的应用存储设备的数据中心4000的图。
参照图20,数据中心4000可以是收集各种类型的部分数据并提供服务的设施,并且被称为数据存储中心。数据中心4000可以是用于操作搜索引擎和数据库的系统,并且可以是公司(诸如,银行)或政府机构所使用的计算系统。数据中心4000可以包括应用服务器4100至4100n和存储服务器4200至4200m。根据各种实施例,可以不同地选择应用4100至4100n的数量和存储服务器4200至4200m的数量。应用服务器4100至4100n的数量和存储服务器4200至4200m的数量彼此不同。
应用服务器4100或存储服务器4200可以包括处理器4110和4210以及存储器4120和4220中的至少一个。现在将以存储服务器4200为例进行描述。处理器4210可以控制存储服务器4200的所有操作,访问存储器4220,并且执行加载到存储器4220的指令和/或数据。存储器4220可以是双数据率同步DRAM(DDR SDRAM)、高带宽存储器(HBM)、混合内存立方体(HMC)、双列直插式内存模块(DIMM)、傲腾DIMM(Optane DIMM)或非易失性DIMM(NVMDIMM)。在一些实施例中,存储服务器4200中包括的处理器4210和存储器4220的数量可以被不同地选择。在一实施例中,处理器4210和存储器4220可以提供处理器-存储器对。在一实施例中,处理器4210的数量与存储器4220的数量可以不同。处理器4210可以包括单核处理器或多核处理器。对于存储服务器4200的以上描述可以类似地应用于应用服务器4100。在一些实施例中,应用服务器4100可以不包括存储设备4150。存储服务器4200可以包括至少一个存储设备4250。根据不同实施例,存储服务器4200中包括的存储设备4250的数量可以被不同地选择。
应用程序服务器4100至4100n可以通过网络4300与存储服务器4200至4200m通信。网络4300可以通过使用光纤信道(FC)或以太网来实现。在这种情况下,FC可以是用于相对高速的数据传输的介质,并且可以使用具有高性能和高可用性的光开关。根据网络4300的访问方法,可以将存储服务器4200至4200m提供为文件存储、块存储或对象存储。
在一实施例中,网络4300可以是专用于存储的网络,诸如存储区域网络(SAN)。例如,SAN可以是FC-SAN,其使用FC网络并且根据FC协议(FCP)实现。作为另一示例,SAN可以是因特网协议(IP)-SAN,其使用传输控制协议(TCP)/IP网络并且根据TCP/IP上的SCSI或因特网SCSI(iSCSI)协议来实现。在另一实施例中,网络4300可以是通用网络,诸如TCP/IP网络。例如,可以根据诸如以太网上的FC(FCoE)、网络附加存储(NAS)和架构上的NVMe(NVMe-oF)之类的协议来实现网络4300。
在下文中,将主要描述应用服务器4100和存储服务器4200。应用服务器4100的描述可以应用于另一应用服务器4100n,并且存储服务器4200的描述可以应用于另一存储服务器4200m。
应用服务器4100可以通过网络4300将用户或客户端请求存储的数据存储在存储服务器4200至4200m中的一个。此外,应用服务器4100可以通过网络4300从存储服务器4200至4200m中的一个获得由用户或客户端请求读取的数据。例如,应用程序服务器4100可以被实现为网络服务器或数据库管理系统(DBMS)。
应用服务器4100可以通过网络4300访问在另一应用服务器4100n中包括的存储器4120n或存储设备4150n。可替换地,应用服务器4100可以通过网络4300访问在存储服务器4200至4200m中包括的存储器4220至4220m或存储设备4250至4250m。因此,应用服务器4100可以对存储在应用服务器4100至4100n和/或存储服务器4200至4200m中的数据执行各种操作。例如,应用服务器4100可以执行用于在应用服务器4100至4100n和/或存储服务器4200至4200m之间移动或复制数据的指令。在这种情况下,可以将数据从存储服务器4200至4200m的存储设备4250至4250m通过存储服务器4200至4200m的存储器4220至4220m或直接移动到应用服务器4100至4100n的存储器4120至4120n。通过网络4300移动的数据可以是为了安全或隐私而加密的数据。
现在将以存储服务器4200为例进行描述。接口4254可以提供处理器4210和控制器4251之间的物理连接以及网络接口卡(NIC)4240和控制器4251之间的物理连接。例如,可以使用直接附接存储(DAS)方案来实现接口4254,其中存储设备4250直接与专用电缆连接。例如,接口4254可以通过使用各种接口方案来实现,诸如ATA、SATA、e-SATA、SCSI、SAS、PCI、PCIe、NVMe、IEEE 1394、USB接口、SD卡接口、MMC接口、eMMC接口、UFS接口、eUFS接口和CF卡接口。
存储服务器4200可以进一步包括开关4230和网络互连(NIC)4240。开关4230可以经由处理器4210的控制来选择性地将处理器4210连接到存储设备4250,或者选择性地将NIC 4240连接到存储设备4250。
在一实施例中,NIC 4240可以包括网络接口卡和网络适配器。NIC 4240可以通过有线接口、无线接口、蓝牙接口或光接口连接到网络4300。NIC 4240可以包括内部存储器、数字信号处理器(DSP)和主机总线接口,并且通过主机总线接口连接到处理器4210和/或开关4230。主机总线接口可以被实现为接口4254的上述示例之一。在一实施例中,NIC 4240可以与处理器4210、开关4230和存储设备4250中的至少一个集成。
在存储服务器4200至4200m或应用服务器4100至4100n中,处理器可将命令传送到存储设备4150至4150n和4250至4250m或存储器4120至4120n和4220至4220m并编程或读取数据。在这种情况下,数据可以是通过ECC引擎校正了错误的数据。数据可以是对其执行数据总线倒置(DBI)操作或数据掩蔽(DM)操作的数据,并且可以包括循环冗余编码(CRC)信息。数据可以是为了安全或隐私而加密的数据。
存储设备4150至4150n和4250至4250m可以响应于从处理器接收到的读取命令向NAND闪存存储器件4252至4252m传送控制信号和命令/地址信号。因此,当从NAND闪存存储器件4252至4252m读取数据时,可以输入读取使能(RE)信号作为数据输出控制信号,因此,可以将数据输出至DQ总线。可以使用RE信号生成数据选通信号DQS。取决于写入使能(WE)信号的上升沿或下降沿,命令和地址信号可以锁存在页面缓冲器中。
控制器4251可以控制存储设备4250的所有操作。在一实施例中,控制器4251可以包括SRAM。控制器4251可以响应于写入命令将数据写入到NAND闪存存储器件4252,或者响应于读取命令从NAND闪存存储器件4252读取数据。例如,可以从存储服务器4200的处理器4210、另一存储服务器4200m的处理器4210m,或应用服务器4100和4100n的处理器4110和4110n提供写入命令和/或读取命令。DRAM 4253可以临时存储(或缓冲)要写入到NAND闪存存储器件4252的数据或从NAND闪存存储器件4252读取的数据。此外,DRAM 4253可以存储元数据。这里,元数据可以是用户数据或由控制器4251生成的用于管理NAND闪存存储器件4252的数据。存储设备4250可以包括用于安全或隐私的安全元件(SE)。
在一实施例中,包括在存储设备4150至4150n和4250至4250m中的控制器或服务器的CPU可以被配置成管理各种元数据。用于保证各种元数据的可靠性的日志数据可以由存储设备4150至4150n和4250至4250m中包括的控制器或者服务器4100至4200m的CPU来管理。在这种情况下,存储设备4150至4150n和4250至4250m中包括的控制器或者服务器4100至4200m的CPU可以包括参考图1至19描述的日志管理器,或者可以基于参考图1至19描述的方法进行操作。
根据本公开,存储设备可以通过生成与元数据的更新相关联的日志数据并重放该日志数据来恢复元数据。在这种情况下,存储设备可以基于日志数据的依赖性并行地重放日志数据。这可能意味着缩短了恢复元数据所花费的时间。因此,提供了一种具有提高的性能和提高的可靠性的存储设备及其操作方法。
虽然已经参照本公开的实施例描述了本公开,但是对于本领域技术人员来说,显然可以对其进行各种改变和修改,而不脱离如以下权利要求中阐述的本公开的精神和范围。
Claims (20)
1.一种存储设备,包括:
非易失性存储器件;和
存储控制器,被配置为控制所述非易失性存储器件并基于对所述非易失性存储器件的控制来更新元数据,
其中所述存储控制器包括:
日志数据生成器,被配置为生成与所述元数据的更新相关联的多个日志数据;和
日志数据重放器,被配置为并行地重放所述多个日志数据以恢复所述元数据。
2.根据权利要求1所述的存储设备,其中所述日志数据重放器以不同于所述日志数据生成器生成所述多个日志数据的第一顺序的第二顺序重放所述多个日志数据。
3.根据权利要求1所述的存储设备,其中所述日志数据重放器包括:
日志数据拆分单元,被配置为基于所述多个日志数据中的每一个的依赖性将所述多个日志数据拆分成多个组;和
分别对应于所述多个组的多个重放单元,
其中所述多个重放单元中的每一个重放在所述多个组中的对应一个中包括的日志数据。
4.根据权利要求3所述的存储设备,其中所述多个重放单元同时重放不同的日志数据。
5.根据权利要求3所述的存储设备,其中所述存储控制器还包括:
日志存储器,被配置为存储所述多个日志数据。
6.根据权利要求5所述的存储设备,其中所述日志存储器被划分成多个日志存储单元,并且
其中,所述日志数据拆分单元进一步被配置为基于所拆分的组,将被拆分成所述多个组的所述多个日志数据分别存储在所述多个日志存储单元中。
7.根据权利要求6所述的存储设备,其中所述多个重放单元中的每一个重放所述多个日志存储单元中对应的一个中存储的日志数据。
8.根据权利要求3所述的存储设备,其中,所述日志数据拆分单元还被配置为基于所述多个日志数据中的每一个的操作码字段或地址字段来确定所述依赖性。
9.根据权利要求3所述的存储设备,其中所述日志数据生成器还被配置为基于所述多个日志数据的所述依赖性来设置所述多个日志数据中的每一个的标识符字段,并且
其中所述标识符字段包括指示所述多个重放单元中对应的一个的信息。
10.根据权利要求9所述的存储设备,其中所述日志数据重放器包括:
日志数据拆分单元,被配置为基于所述多个日志数据中的每一个的标识符字段将所述多个日志数据拆分成多个组;和
多个重放单元,被配置为重放所述多个组的每一个中包括的日志数据。
11.根据权利要求1所述的存储设备,其中,所述存储控制器还包括被配置为存储所述多个日志数据的日志存储器,
其中所述日志存储器被划分成多个日志存储单元,并且
其中,所述日志数据生成器基于所述多个日志数据的依赖性,将所述多个日志数据分别存储在所述多个日志存储单元中。
12.根据权利要求11所述的存储设备,其中所述日志数据重放器包括多个重放单元,所述多个重放单元被配置为重放所述多个日志存储单元中存储的日志数据,
其中所述多个重放单元中的每一个重放所述多个日志存储单元中的对应一个中存储的日志数据。
13.根据权利要求1所述的存储设备,进一步包括:
缓冲存储器,被配置为存储所述元数据。
14.一种存储设备的操作方法,该存储设备包括非易失性存储器件和被配置为控制所述非易失性存储器件的存储控制器,该方法包括:
从所述非易失性存储器件读取多个日志数据;
基于所述多个日志数据的依赖性,将所述多个日志数据拆分成多个组;和
并行地重放所述多个组中分别包括的日志数据以恢复元数据。
15.根据权利要求14所述的方法,进一步包括:
在从所述非易失性存储器件读取所述多个日志数据之前,
基于所述非易失性存储器件的操作来更新所述元数据,并基于所述元数据的更新生成所述多个日志数据;和
当感测到突然断电时,将所述多个日志数据刷新到所述非易失性存储器件。
16.根据权利要求14所述的方法,其中,当所述多个日志数据中的第一日志数据的第一地址字段被包括在第一地址范围中时,将所述第一日志数据分类为所述多个组中的第一组,并且
其中,当所述多个日志数据中的所述第一日志数据的第一地址字段被包括在不同于所述第一地址范围的第二地址范围中时,将所述第一日志数据分类为所述多个组中的第二组。
17.根据权利要求16所述的方法,其中,当所述第一日志数据被拆分到所述第一组中时,由所述存储控制器中包括的多个重放单元中的第一重放单元来重放所述第一日志数据,并且
其中,当所述第一日志数据被拆分到所述第二组中时,由所述多个重放单元中不同于所述第一重放单元的第二重放单元重放所述第一日志数据。
18.一种存储设备,包括:
非易失性存储器件;和
存储控制器,被配置为控制所述非易失性存储器件,
其中所述存储控制器包括:
日志数据生成器,被配置为生成与元数据的更新相关联的第一日志数据至第四日志数据;
第一重放单元;和
第二重放单元,
其中,当所述元数据丢失时,所述第一重放单元和所述第二重放单元被配置为重放所述第一日志数据至第四日志数据以恢复所述元数据,并且
其中所述第一重放单元重放第一日志数据和第二日志数据,并且当所述第一重放单元重放所述第一日志数据和第二日志数据时,所述第二重放单元重放第三日志数据和第四日志数据。
19.根据权利要求18所述的存储设备,进一步包括:
缓冲存储器,被配置为存储所述元数据。
20.根据权利要求19所述的存储设备,其中,所述第一日志数据和第二日志数据与所述元数据中被包括在所述缓冲存储器的第一地址范围中的数据的更新相关联,并且
其中所述第三日志数据和第四日志数据与所述元数据中被包括在所述缓冲存储器的不同于所述第一地址范围的第二地址范围中的数据的更新相关联。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220031797A KR102435910B1 (ko) | 2022-03-15 | 2022-03-15 | 스토리지 장치 및 그것의 동작 방법 |
KR10-2022-0031797 | 2022-03-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116774922A true CN116774922A (zh) | 2023-09-19 |
Family
ID=83111372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310239314.6A Pending CN116774922A (zh) | 2022-03-15 | 2023-03-13 | 存储设备及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230325093A1 (zh) |
KR (1) | KR102435910B1 (zh) |
CN (1) | CN116774922A (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2653972A1 (en) * | 2011-07-14 | 2013-10-23 | Mitsubishi Electric Corporation | Journal management system |
KR101548452B1 (ko) * | 2014-02-11 | 2015-08-28 | 한양대학교 산학협력단 | 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치 |
US10108503B2 (en) * | 2015-08-24 | 2018-10-23 | Western Digital Technologies, Inc. | Methods and systems for updating a recovery sequence map |
US10997065B2 (en) * | 2017-11-13 | 2021-05-04 | SK Hynix Inc. | Memory system and operating method thereof |
KR102146293B1 (ko) * | 2018-05-08 | 2020-08-28 | 한국전자통신연구원 | 분산 파일 시스템 복구 장치 및 방법 |
KR102553261B1 (ko) * | 2018-10-10 | 2023-07-07 | 삼성전자 주식회사 | 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 스토리지 장치, 및 상기 메모리 컨트롤러의 동작 방법 |
KR20200086143A (ko) * | 2019-01-08 | 2020-07-16 | 삼성전자주식회사 | 저장 장치 및 그것의 데이터 처리 방법 |
-
2022
- 2022-03-15 KR KR1020220031797A patent/KR102435910B1/ko active IP Right Grant
- 2022-12-22 US US18/086,777 patent/US20230325093A1/en active Pending
-
2023
- 2023-03-13 CN CN202310239314.6A patent/CN116774922A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230325093A1 (en) | 2023-10-12 |
KR102435910B1 (ko) | 2022-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11461233B2 (en) | Handling asynchronous power loss in a memory sub-system that programs sequentially | |
US10127166B2 (en) | Data storage controller with multiple pipelines | |
US10275310B2 (en) | Updating exclusive-or parity data | |
US9990146B2 (en) | Apparatus and method of data sequencing | |
KR102592803B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11762572B2 (en) | Method of operating storage device and method of operating storage system using the same | |
US20230153019A1 (en) | Operation methods of storage devices, and operation methods of storage systems including hosts and storage devices | |
CN116755620A (zh) | 基于独立磁盘冗余阵列的数据存储的方法和装置 | |
US11681638B2 (en) | Method of synchronizing time between host device and storage device and system performing the same | |
US20240045597A1 (en) | Storage device and operation method thereof | |
CN112540869A (zh) | 存储器控制器、存储装置和存储装置的操作方法 | |
US20230126685A1 (en) | Storage device and electronic system | |
US11662949B2 (en) | Storage server, a method of operating the same storage server and a data center including the same storage server | |
KR102435910B1 (ko) | 스토리지 장치 및 그것의 동작 방법 | |
EP4246330A1 (en) | Storage device and operating method thereof | |
US20240256175A1 (en) | Storage device, operation method of storage device, and operation method of storage controller | |
EP4318249A1 (en) | Storage device and operation method thereof | |
US12014772B2 (en) | Storage controller and storage device including the same | |
EP4421640A2 (en) | Storage device, operation method of storage device, and operation method of storage controller | |
US20240192860A1 (en) | Method and device for log structured merge-tree based key-value data storage | |
US20230401002A1 (en) | Method of writing data in storage device using write throttling and storage device performing the same | |
US12073095B2 (en) | Storage device performing a data protection operation and operation method thereof | |
US11488640B2 (en) | Method of resetting storage device, storage device performing the same and data center including the same | |
US20230185470A1 (en) | Method of operating memory system and memory system performing the same | |
EP4180935A1 (en) | Operation methods of storage devices, and operation methods of storage systems including hosts and storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |