CN113918085A - 用于元数据管理的存储器系统及其操作方法 - Google Patents
用于元数据管理的存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN113918085A CN113918085A CN202110067935.1A CN202110067935A CN113918085A CN 113918085 A CN113918085 A CN 113918085A CN 202110067935 A CN202110067935 A CN 202110067935A CN 113918085 A CN113918085 A CN 113918085A
- Authority
- CN
- China
- Prior art keywords
- slice
- dirty
- slices
- data
- meta
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 267
- 238000000034 method Methods 0.000 title claims description 26
- 239000000872 buffer Substances 0.000 claims abstract description 104
- 238000011017 operating method Methods 0.000 claims description 8
- 230000014759 maintenance of location Effects 0.000 claims description 7
- 238000010926 purge Methods 0.000 claims description 6
- 238000007689 inspection Methods 0.000 claims 2
- 238000013507 mapping Methods 0.000 description 24
- 230000004044 response Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000012937 correction Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000010365 information processing 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
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
-
- 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/0658—Controller construction 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]
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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)
- Library & Information Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种存储器系统,该存储器系统包括:控制器,根据将正常数据存储在非易失性存储器装置中来生成元数据;以及缓冲存储器,存储配置元数据的多个元切片。控制器将多个元切片中的经更新的切片分类为第一脏切片,将第一脏切片中的所清除的切片分类为第二脏切片,将第二脏切片中的所清除的切片分类为元切片,并且将第二脏切片中的经更新的切片分类为第三脏切片,将第三脏切片中的所清除的切片分类为第二脏切片,并且允许在执行针对第一至第三脏切片中的每一个的清除操作的同时更新第一至第三脏切片中的每一个。
Description
相关申请的交叉引用
本申请要求于2020年7月7日提交的申请号为10-2020-0083485的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
各个实施例涉及一种存储器系统,并且特别地,涉及一种用于元数据管理的存储器系统以及存储器系统的操作方法。
背景技术
计算机环境范例已经转变为可以在任何时间和任何地点使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可以用作便携式电子装置的主存储装置或辅助存储装置。
由于存储器系统不具有移动部件,所以它们可提供优异的稳定性、耐久性、高信息访问速度和低功耗。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
各个实施例涉及一种能够有效地管理元数据的存储器系统以及管理该存储器系统的方法。
在实施例中,存储器系统可以包括:非易失性存储器装置;控制器,适用于根据将正常数据存储在非易失性存储器装置中来生成元数据;以及缓冲存储器,适用于存储配置元数据的多个元切片,该控制器可以使用多个元切片中的每个经更新的切片的第一状态信息将相应的经更新的切片分类为第一脏切片,可以通过使用第一脏切片中的每个所清除的切片的第一状态信息和第二状态信息将相应的所清除的切片分类为第二脏切片,可以使用第二脏切片中的每个所清除的切片的第二状态信息将相应的所清除的切片分类为元切片,可以使用第二脏切片中的每个经更新的切片的第一状态信息将相应的经更新的切片分类为第三脏切片,可以使用第三脏切片中的每个所清除的切片的第一状态信息将相应的所清除的切片分类为第二脏切片,并且可以在清除第一至第三脏切片中的每一个的同时启用对第一至第三脏切片中的每一个的更新。可以将多个元切片中的每一个的第一状态信息和第二状态信息存储在缓冲存储器中。
控制器可以:生成第一日志数据,并且将该第一日志数据存储在缓冲存储器中,该第一日志数据包括关于对第一至第三脏切片的更新的信息;在第一日志数据的大小小于设定大小的状态下,当存在第一至第三脏切片中的至少一个脏切片时,可以清除该至少一个脏切片;当第一日志数据具有设定大小时,可以通过将该第一日志数据改变为日志保留数据来清除第一日志数据;并且可以在开始清除日志保留数据之后,生成第二日志数据,并且可以将该第二日志数据存储在缓冲存储器中,该第二日志数据包括关于第一至第三脏切片的更新信息。
可以将第二日志数据存储在缓冲存储器中与在缓冲存储器中存储日志保留数据的位置不同的位置。
控制器可以通过写入第一至第三脏切片中的至少一个来清除第一至第三脏切片中的至少一个。控制器可以通过将日志保留数据写入非易失性存储器装置中来清除日志保留数据。
在第一日志数据的大小小于设定大小的状态下,控制器可以通过以下方式清除第一至第三脏片中的至少一个:将第一至第三脏片中的至少一个移动到缓冲存储器的保留空间,并且当清除日志保留数据时,将被移动到保留空间中的第一至第三脏切片中的至少一个与日志保留数据一起写入非易失性存储器装置中。
控制器可以通过以下方式移动第一至第三脏切片中的至少一个:将第一至第三脏切片中的至少一个以大小单位进行分割,并且在设定时间移动所分割的切片。
在开始将第一至第三脏切片中的至少一个移动到保留空间时,控制器可以检查第一日志数据的大小,并且可以基于检查结果确定大小单位和设定时间。
控制器:可以以循环方式在多个元切片中搜索第一至第三脏切片,并且可以清除在搜索中检索到的第一至第三脏切片。
当在开始清除日志保留数据之后生成第二日志数据时,控制器可以从先前检索到的元切片的下一元切片开始搜索第一至第三脏切片。
控制器:可以将第一状态信息和第二状态信息的初始值分别设置为“0”和“0”,可以通过将多个元切片中的每个经更新的切片的第一状态信息的值设置为“1”,将相应的所述经更新的切片分类为第一脏切片,通过将第一脏切片中的每个所清除的切片的第一状态信息和第二状态信息的值分别设置为“0”和“1”,将相应的所清除的切片分类为第二脏切片,通过将第二脏切片中的每个所清除的切片的第二状态信息的值设置为“0”,将相应的所清除的切片分类为元切片,通过将第二脏切片中的每个经更新的切片的第一状态信息的值设置为“1”,将相应的经更新的切片分类为第三脏切片,通过将第三脏切片中的每个所清除的切片的第一状态信息的值设置为“0”,将相应的所清除的切片分类为第二脏切片。
在实施例中,一种存储器系统的操作方法,该存储器系统包括非易失性存储器装置和缓冲存储器,该操作方法可以包括:根据将正常数据存储在非易失性存储器装置中来生成配置有多个元切片的元数据;将元数据以及第一状态信息和第二状态信息存储在缓冲存储器中;在第一分类操作中,使用多个元切片中的每个经更新的切片的第一状态信息,将相应的经更新的切片分类为第一脏切片;在第二分类操作中,使用第一脏切片的每个所清除的切片的第一状态信息和第二状态信息,将相应的所清除的切片分类为第二脏切片;在第三分类操作中,使用第二脏切片的每个所清除的切片的第二状态信息将相应的所清除的切片分类为元切片;在第四分类操作中,使用第二脏切片的每个经更新的切片的第一状态信息将相应的经更新的切片分类为第三脏切片;并且在第五分类操作中,使用第三脏切片的每个所清除的切片的第一状态信息将相应的所清除的切片分类为第二脏切片。在清除第一至第三脏切片中的每一个的同时,可以启用对第一至第三脏切片中的每一个的更新。
该操作方法可以进一步包括:生成第一日志数据,并且将该第一日志数据存储在缓冲存储器中,第一日志数据包括第一至第三脏切片的更新信息;在第一日志数据的大小小于设定大小的状态下,当存在第一至第三脏切片中的至少一个脏切片时,在第一清除操作中清除该至少一个脏切片;当第一日志数据具有设定大小时,在第二清除操作中,通过将第一日志数据改变为日志保留数据来清除第一日志数据;并且在开始清除日志保留数据之后,生成第二日志数据,并且将该第二日志数据存储在缓冲存储器中,该第二日志数据包括与第一至第三脏切片相对应的更新信息。
可以将第二日志数据存储在缓冲存储器中与缓冲存储器中存储日志保留数据的位置不同的位置。
第一清除操作可以包括将第一至第三脏切片中的任意一个写入非易失性存储器装置中,并且第二清除操作可以包括将日志保留数据写入非易失性存储器装置中。
第一清除操作可以包括:将第一至第三脏片中的至少一个移动到缓冲存储器的保留空间,并且在第二清除操作期间,将被移动到保留空间中的第一至第三脏切片中的至少一个与日志保留数据一起写入非易失性存储器装置中。
移动第一至第三脏切片中的至少一个可以包括:将第一至第三脏切片中的至少一个以大小单位进行分割,以及在设定时间移动所分割的切片。
该操作方法可以进一步包括:在开始将第一至第三脏切片中的至少一个移动到保留空间时,检查第一日志数据的大小,并且基于检查结果确定大小单位和设定时间。
该操作方法可以进一步包括:以循环方式在多个元切片中搜索第一至第三脏切片。可以对所搜索到的第一至第三脏切片执行第一清除操作。
当在开始清除日志保留数据之后生成第二日志数据时,可以从紧邻先前搜索到的第一至第三脏切片之中的一个之后的元切片开始搜索第一至第三脏切片。
该操作方法可以进一步包括:将第一状态信息和第二状态信息的初始值分别设置为“0”和“0”。在第一分类操作中,可以通过将多个元切片中的每个经更新的切片的第一状态信息的值设置为“1”,将相应的经更新的切片分类为第一脏切片,在第二分类操作中,可以通过将第一脏切片中的每个所清除的切片的第一状态信息和第二状态信息的值分别设置为“0”和“1”,将相应的所清除的切片分类为第二脏切片,在第三分类操作中,可以通过将第二脏切片中的每个所清除的切片的第二状态信息的值设置为“0”,将相应的所清除的切片分类为元切片,在第四分类操作中,可以通过将第二脏切片中的每个经更新的切片的第一状态信息的值设置为“1”,将经更新的切片分类为第三脏切片,并且在第五分类操作中,可以通过将第三脏切片中的每个所清除的切片的第一状态信息的值设置为“0”,将所清除的切片分类为第二脏切片。
在实施例中,一种控制系统可以包括:元存储器,适用于高速缓存多个元切片的元信息;日志存储器,包括第一和第二区域;以及控制器,适用于:更新元切片中的一个;将经更新的切片标记为脏;将日志数据高速缓存在第一区域中,该日志数据表示该更新;并且交替地清除元信息以及所高速缓存的日志数据。控制器可以通过以下方式清除元信息:以循环方式在切片中搜索脏切片;清除脏切片;在清除脏切片期间,将所清除的切片标记为干净而不更新该脏切片;并且在清除脏切片期间,将所清除的切片保持为脏并更新该脏切片。当第一区域变得充满所高速缓存的日志数据时,控制器可以在第二区域中高速缓存后续的日志数据。控制器可以从变得充满所高速缓存的日志数据的第一区域清除所高速缓存的日志数据,以移除所清除的日志数据。
附图说明
图1示出根据实施例的包括存储器系统的数据处理系统的结构。
图2示意性地示出根据实施例的包括存储器系统的数据处理系统的示例。
图3示出根据实施例的可以对存储器系统中的存储器装置执行的数据处理操作的示例。
图4示出根据实施例的存储器系统中的元数据的结构。
图5A至图5G示出根据实施例的在存储器系统中管理元数据的方法。
具体实施方式
以下参照附图更详细地描述本公开的各个示例。然而,可以以不同的方式实现本技术的各方面和各特征以形成包括任何所公开的实施例的变型的其他实施例。因此,本发明不限于本文所阐述的实施例。相反,提供这些实施例使得本公开将是彻底且完整的,并且将向本技术所属领域的技术人员充分传达本公开。在整个公开中,相同的附图标记在整个本公开的各个附图和示例中表示相同的部件。注意的是,对“实施例”,“另一实施例”等的参考不一定仅指一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然可能在本文使用术语“第一”、“第二”、“第三”等以识别各个元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与另外具有相同或相似名称的另一元件区分开。因此,在一个实例中的第一元件可以在另一实例中被称为第二元件或第三元件,而不指示元件本身的任何改变。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能被夸大。当元件被称为连接或联接到另一元件时,应当理解的是,前者可以直接连接或联接到后者,或者经由一个或多个中间元件电连接或联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。
本文所使用的术语仅是为了描述特定实施例的目的,并且不旨在限制本发明。如本文所使用的,除非上下文另有清楚地说明,否则单数形式也旨在包括复数形式,反之亦然。类似地,不定冠词“一”和“一个”表示一个或多个,除非从语言或上下文中可以清楚看出仅意指一个。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在而并不排除一个或多个其它元件的存在或添加。如本文所使用的,短语“和/或”包括一个或多个相关所列项目的任意和全部组合。
除非另有定义,否则本文所使用的包括技术术语和科学术语的所有术语的含义具有与本技术所属领域中普通技术人员通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且将不以理想化或过于形式化的意义来解释,除非本文中如此明确地限定。
在下面的描述中,为了提供对本技术的全面理解,描述了大量的具体细节。可以在没有这些具体细节中的一些或全部的情况下实施本发明。在其它情况下,为了避免不必要地模糊本发明的主题,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可以单独使用或与另一实施例的其它特征或元件组合使用。
下面参照附图详细描述本公开的实施例,其中相同的附图标记指代相同的元件。
图1示出根据实施例的包括存储器系统的数据处理系统的结构。
参照图1,数据处理系统100可以包括主机102和可操作地联接到主机102的存储器系统110。主机102可以是可以以移动装置、计算机或服务器的形式实现的计算装置。存储器系统110可以从主机102接收命令,并且可以存储或输出与所接收的命令相对应的数据。
存储器系统110可以具有可包括非易失性存储器单元的存储空间。例如,存储器系统110可以以闪速存储器或固态驱动器(SSD)的形式实现。
为了存储主机102请求的数据,存储器系统110可以执行将主机102所使用的文件系统与包括非易失性存储器单元的存储空间联接的映射操作。可以将根据主机102所使用的文件系统的数据地址称为逻辑地址或逻辑块地址。可以将包括非易失性存储器单元的存储空间中的数据地址称为物理地址或物理块地址。当主机102将逻辑地址与写入命令和数据一起传输到存储器系统110时,存储器系统110可以在存储空间中搜索用于存储该数据的位置,可以将存储空间中所识别的位置的物理地址与逻辑地址进行映射,并且可以将数据编程在所识别的位置。当主机102将逻辑地址和读取命令一起传输到存储器系统110时,存储器系统110可以搜索映射到该逻辑地址的物理地址,并且可以将在搜索中发现的物理地址中存储的数据输出到主机102。
具体地,存储器系统110可以包括:非易失性存储器装置150,即使不供应电力也可以保留所存储的数据;缓冲存储器144,用于临时存储数据;以及控制器130,用于控制非易失性存储器装置150和缓冲存储器144的操作。此外,控制器130可以包括闪存转换层(FTL)40。
更具体地,主机102可以使用逻辑地址LBA来管理正常数据NORMAL_DATA。此外,存储器系统110中的控制器130可以将从主机102接收的正常数据NORMAL_DATA存储在非易失性存储器装置150中。在这种情况下,控制器130可以将从主机102接收的逻辑地址LBA与正常数据NORMAL_DATA一起映射到指示非易失性存储器装置150内存储正常数据NORMAL_DATA的物理空间的物理地址PBA。
如上所述,控制器130可以通过映射操作根据正常数据NORMAL_DATA的存储来生成元数据META DATA。也就是说,控制器130可以生成用于将正常数据NORMAL_DATA的逻辑地址LBA映射到指示非易失性存储器装置150内的物理空间的物理地址PBA的映射信息LBA/PBA作为元数据META DATA。在这种情况下,还可以响应于更新非易失性存储器装置150内的正常数据NORMAL_DATA而更新元数据META DATA中包括的映射信息LBA/PBA。此外,控制器130可以将所生成的元数据META DATA存储在非易失性存储器装置150中。
此外,控制器130可以生成可以表示元数据META DATA的更新历史的日志数据JOURNAL_DATA。因此,控制器130可以基于日志数据JOURNAL_DATA来恢复元数据META DATA的先前版本。此外,控制器130可以将所生成的日志数据JOURNAL_DATA存储在非易失性存储器装置150中。
此外,可以由控制器130中的FTL 40执行通过将逻辑地址LBA映射到物理地址PBA来生成元数据META DATA的操作以及通过收集针对元数据META DATA的更新内容的历史信息来生成日志数据JOURNAL_DATA的操作。
此外,与正常数据NORMAL_DATA在非易失性存储器装置150中的存储分开,在主机102和存储器系统110之间输入和输出的正常数据NORMAL_DATA可以临时存储在控制器130中的缓冲存储器144中。此外,与元数据META DATA在非易失性存储器装置150中的存储分开,由控制器130根据对从主机102接收的正常数据NORMAL_DATA的存储而生成的元数据META DATA可以临时存储在控制器130中的缓冲存储器144中。此外,与日志数据JOURNAL_DATA在非易失性存储器装置150中的存储分开,由控制器130根据更新元数据META DATA的操作而生成的日志数据JOURNAL_DATA可以临时存储在控制器130中的缓冲存储器144中。
作为参考,图1示出缓冲存储器144设置在控制器130的外部,但这仅仅是实施例。根据另一实施例,缓冲存储器144可以被包括在控制器130内部。
图2示意性地示出根据实施例的包括存储器系统的数据处理系统的示例。
参照图2,数据处理系统100可以包括联接到存储器系统110的主机102。
主机102可以被实施为各种电子装置中的任意一种,例如,诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置,或诸如台式计算机、游戏机、电视(TV)和投影仪的非便携式电子装置,即有线电子装置和无线电子装置。
主机102可以包括至少一个操作系统(OS),用于管理和控制主机102的功能和操作,并且使用数据处理系统100或存储器系统110来提供主机102和用户之间的互操作性。操作系统可以支持与用户的使用目的和操作系统的用途相对应的功能和操作。例如,根据主机102的移动性,可以将操作系统分类为通用操作系统和移动操作系统。而且,根据用户的使用环境,可以将通用操作系统分类为个人操作系统和企业操作系统。例如,被表征为支持为普通用户提供功能的服务的个人操作系统可以包括Windows和Chrome,并且被表征为保护和支持高性能的企业操作系统可以包括Windows server、Linux和Unix。另外,被表征为支持向用户提供移动服务功能和系统省电功能的移动操作系统可以包括Android、iOS、Windows mobile等。主机102可以包括多个操作系统,并且可以运行操作系统以利用存储器系统110执行对应于用户请求的操作。主机102将对应于用户请求的多个命令传输到存储器系统110,相应地,存储器系统110可以执行对应于这些命令的操作,即对应于用户请求的操作。
存储器系统110可以响应于主机102的请求而操作,特别地,可以存储待由主机102访问的数据。存储器系统110可以用作主机102的主存储器装置或辅助存储器装置。根据与主机102联接的主机接口协议,存储器系统110可以被实现为各种类型的存储装置中的任意一种。例如,存储器系统110可以被实现为固态驱动器(SSD),MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)和微型MMC形式的多媒体卡,SD、迷你SD和微型SD形式的安全数字卡,通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡或记忆棒。
实现存储器系统110的存储装置可以由诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)的易失性存储器装置来实现,或者由诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁性RAM(MRAM)和/或电阻式RAM(RRAM)的非易失性存储器装置来实现。
存储器系统110可以包括可以存储待由主机102访问的数据的存储器装置150,以及可以控制存储器装置150中的数据存储的控制器130。
可以将控制器130和存储器装置150集成到一个半导体装置中以配置SSD。当存储器系统110用作SSD时,可以提高联接到存储器系统110的主机102的操作速度。在另一实施例中,可以将控制器130和存储器装置150集成到一个半导体装置中以配置诸如以下的存储卡:PC卡(例如,个人计算机存储卡国际协会(PCMCIA)卡)、紧凑型闪存卡(CF)、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC和微型MMC)、安全数字(SD)卡(例如,SD、迷你SD、微型SD和SDHC)和/或通用闪存(UFS)。
在另一实施例中,存储器系统110可以配置计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算系统的各种组件之一。
即使没有供应电力,存储器装置150也可以保留所存储的数据。特别地,存储器装置150通过写入操作存储从主机102提供的数据,并且通过读取操作将所存储的数据提供到主机102。存储器装置150可以包括多个存储块152、154和156。存储块152、154和156中的每一个可以包括多个页面,该多个页面包括P<0>至P<4>。包括P<0>至P<4>的页面中的每一个可以包括多个存储器单元。存储块152、154和156包括用于以页面为单位高速缓存待输入/输出的数据的页面缓冲器。存储器装置150可以包括多个平面,在该多个平面中的每一个中包括多个存储块152、154和156中的一些。存储器装置150可以包括多个存储器管芯,在该多个存储器管芯中的每一个中包括多个平面中的一个或多个。存储器装置150可以是例如闪速存储器的非易失性存储器装置。该闪速存储器可以具有三维(3D)堆叠结构。
存储器装置150可以包括多个存储块。根据可以在存储块的一个存储器单元中存储或表示的位的数量,多个存储块中的每一个可以被实施为诸如单层单元(SLC)存储块和多层单元(MLC)存储块的各种类型中的任意一种。SLC存储块可以包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块针对数据输入和输出(I/O)操作可以具有较高的性能,并且具有较高的耐久性。MLC存储块可以包括由每个存储多位数据(例如,两位或更多位数据)的存储器单元实施的多个页面。与SLC存储块相比,MLC存储块在相同空间中可以具有更大的存储容量。在存储容量方面,MLC存储块可以高度集成。在实施例中,存储器装置150可以利用诸如MLC存储块、三层单元(TLC)存储块、四层单元(QLC)存储块以及它们的组合的MLC存储块来实施。MLC存储块可以包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元存储块可以包括由每个能够存储3位数据存储器单元实施的多个页面。四层单元存储块可以包括由每个能够存储4位数据存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由每个能够存储5位数据或更多位数据的存储器单元实施的多个页面的块来实施。
在实施例中,存储器装置150被实现为非易失性存储器,例如诸如NAND闪速存储器和NOR闪速存储器的闪速存储器。然而,存储器装置150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)和自旋转移扭矩磁性随机存取存储器(STT-RAM或STT-MRAM)中的至少一种来实施。
控制器130可以响应于来自主机102的请求而控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供到主机102,并且可以将从主机102提供的数据存储在存储器装置150中。为此,控制器130可以控制存储器装置150的操作,例如读取操作、写入操作、编程操作和擦除操作。
控制器130可以包括主机接口132、处理器134、错误校正码(ECC)组件138、电源管理单元(PMU)(未示出)、存储器接口142和存储器144。
主机接口132可以处理主机102的命令和数据。主机接口132可以被配置为通过诸如以下的各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)和移动工业处理器接口(MIPI)。主机接口132可以通过被称为主机接口层(HIL)的固件来驱动,主机接口层(HIL)是与主机102交换数据的区域。
ECC组件138可以检测和校正从存储器装置150读取的数据中包含的错误。换言之,ECC组件138可以使用在ECC编码进程中使用的ECC码对从存储器装置150读取的数据执行错误校正解码进程。根据错误校正解码进程的结果,ECC组件138可以输出信号,例如错误校正成功/失败信号。当错误位的数量大于可校正错误位的阈值数量时,ECC组件138可以不校正错误位,而是可以输出错误校正失败信号。
ECC组件138可以通过诸如低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、涡轮码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)和分组编码调制(BCM)的编码调制执行错误校正操作。然而,ECC组件138不限于这些校正技术。这样,ECC组件138可以包括用于适当的错误校正的任何和所有电路、模块、系统或装置。
PMU可以提供和管理控制器130的电力。
存储器接口142可以用作可以执行控制器130和存储器装置150之间的接口连接的存储器/存储接口。存储器接口142可以允许控制器130响应于来自主机102的请求而控制存储器装置150。存储器接口142可以在处理器134的控制下生成针对存储器装置150的控制信号并且可以处理数据。当存储器装置150是闪速存储器时,特别是当存储器装置150是NAND闪速存储器时,存储器接口142可以是NAND闪存控制器(NFC)。存储器接口142可以支持例如NAND闪存接口的、可以处理控制器130和存储器装置150之间的命令和数据的接口的操作。特别地,存储器接口142可以处理控制器130和存储器装置150之间的数据输入/输出。存储器接口142可以通过被称为闪存接口层(FIL)的固件来驱动,闪存接口层(FIL)是与存储器装置150交换数据的区域。
作为存储器系统110和控制器130的工作存储器的存储器144可以存储用于驱动存储器系统110和控制器130的数据。也就是说,存储器144可以是与参照图1描述的缓冲存储器144相对应的元件。因此,参照图1和图2,在将正常数据NORMAL_DATA提供到主机102之前,存储器144可以在控制器130响应于主机102的请求而控制非易失性存储器装置150的进程中临时存储从非易失性存储器装置150读取的正常数据NORMAL_DATA。而且,在将正常数据NORMAL_DATA存储在存储器装置150中之前,控制器130可以将从主机102提供的正常数据NORMAL_DATA临时存储在存储器144中。当控制器130控制存储器装置150的读取操作、写入操作和擦除操作时,可以将待在控制器130和存储器装置150之间传输的数据NORMAL_DATA、META DATA和JOURNAL_DATA存储在存储器144中。例如,存储器144可以存储元数据METADATA和日志数据JOURNAL_DATA以执行数据写入和读取操作,并且在执行数据写入和读取操作时可以存储正常数据NORMAL_DATA。为了进行这种数据存储,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存和映射缓冲器/高速缓存。
存储器144可以通过易失性存储器来实现。例如,存储器144可以通过静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实现。存储器144可以如图2所示设置在控制器130内部。可选地,存储器144可以设置在控制器130的外部。存储器144可以被实现为外部易失性存储器,通过该外部易失性存储器,通过分开的存储器接口与控制器130交换数据。
处理器134可以控制存储器系统110的所有操作。特别地,处理器134响应于来自主机102的写入请求或读取请求,控制针对存储器装置150的编程操作或读取操作。处理器134可以驱动被称为闪存转换层(FTL)的固件,以控制存储器系统110的一般操作。处理器134可以通过微处理器或中央处理单元(CPU)来实现。
例如,控制器130可以在存储器装置150中执行从主机102请求的操作。也就是说,控制器130可以通过处理器134利用存储器装置150执行与从主机102接收的命令相对应的命令操作。控制器130可以执行作为与从主机102接收的命令相对应的命令操作的前台操作。例如,控制器130可以执行对应于写入命令的编程操作、对应于读取命令的读取操作、对应于擦除命令的擦除操作、或者对应于作为设置命令的设置参数命令或设置特征命令的参数设置操作。
控制器130还可以通过处理器134对存储器装置150执行后台操作。针对存储器装置150的后台操作可以包括将存储器装置150的存储块152、154和156之中的存储块中存储的数据复制到另一存储块的操作,例如,垃圾收集(GC)操作。
为了控制作为针对存储器装置150的后台操作的垃圾收集操作,可以在处理器134中包括合并操作控制电路(未示出)。
针对存储器装置150的后台操作可以包括交换存储块152、154和156中存储的数据的操作,例如,损耗均衡(WL)操作和读取回收(RR)操作。而且,针对存储器装置150的后台操作可以包括:将控制器130中存储的映射数据存储在存储器装置150的存储块152、154和156中的操作,例如,映射清除操作;或检查和处理存储器装置150的多个存储块152、154和156之中的坏块的坏块管理操作。
在处理器134中,可以包括用于针对存储器装置150执行坏块管理的管理组件(未示出)。该管理组件可以识别存储器装置150中的多个存储块152、154和156之中的坏块,然后可以对所识别的坏块执行坏块管理处理。当存储器装置150是闪速存储器(例如,NAND闪速存储器)时,由于NAND闪速存储器的特性,可能在执行写入操作(编程操作)时发生编程失败。该管理组件可以将发生编程失败的存储块作为坏块进行处理,并且可以将编程失败的数据写入不同的存储块中。
图3示出根据实施例的可以对存储器系统中的存储器装置执行的数据处理操作的示例。
参照图3,控制器130可以从主机102接收编程命令、编程数据和逻辑地址。响应于编程命令,控制器130进行编程,并且可以将编程数据存储在存储器装置150的存储块552至584中的多个页面中。
控制器130可以生成和更新针对编程数据的元数据,并且可以将该元数据存储在存储器装置150的存储块552至584中。元数据可以包括针对存储块552至584中存储的编程数据的逻辑/物理(L2P)信息和物理/逻辑(P2L)信息。而且,元数据可以包括关于对应于从主机102接收的命令的命令数据的信息、关于对应于该命令的命令操作的信息、关于存储器装置150中的待执行该命令操作的存储块的信息以及关于对应于该命令操作的映射数据的信息。换言之,元数据可以包括除了与从主机102接收的命令相对应的编程数据之外的所有信息和数据。
逻辑/物理(L2P)信息和物理/逻辑(P2L)信息可以指代与响应于编程命令而由控制器130映射的逻辑地址相对应的物理地址。该物理地址可以与将存储从主机102接收的编程数据的存储器装置150的物理存储空间相对应。
控制器130可以将逻辑地址和物理地址之间的映射信息,即逻辑/物理(L2P)信息和物理/逻辑(P2L)信息,存储在存储器装置150的存储块552至584之中的至少一个存储块中。可以将可存储逻辑/物理(L2P)信息和物理/逻辑(P2L)信息的存储块称为系统块。
例如,控制器130将对应于编程命令的编程数据高速缓存和缓冲在控制器130的存储器144中的第一缓冲器510中。也就是说,控制器130可以将用户数据的数据段512存储在作为数据缓冲器/高速缓存的第一缓冲器510中。此后,控制器130进行编程,并且可以将第一缓冲器510中存储的数据段512存储在存储器装置150的存储块552至584中的页面中。
随着将编程数据的数据段512编程和存储在存储器装置150的存储块552至584中的页面中,控制器130可以生成L2P段522和P2L段524作为元数据,并且可以将它们存储在控制器130的存储器144中的第二缓冲器520中。在控制器130的存储器144的第二缓冲器520中,可以以列表的形式来存储L2P段522和P2L段524。然后,控制器130可以通过映射清除操作将第二缓冲器520中存储的L2P段522和P2L段524编程和存储在存储器装置150的存储块552至584中的页面中。
控制器130可以从主机102接收读取命令和逻辑地址。控制器130可以响应于读取命令,从存储器装置150读取与逻辑地址相对应的L2P段522和P2L段524,并且将它们加载到第二缓冲器520中。然后,控制器130从加载在第二缓冲器520中的L2P段522和P2L段524中检查与该逻辑地址相对应的存储器装置150的物理地址,从通过检查所识别的存储位置读取用户数据的数据段512。也就是说,存储块552至584之中的特定存储块的特定页面可以将数据段512存储在第一缓冲器510中,并且可以将数据段512提供到主机102。
如上所述,每次从主机102接收到读取命令和逻辑地址时,控制器130可以读取与该逻辑地址相对应的L2P段522和P2L段524,并且将它们加载到第二缓冲器520中。通过这种方式频繁地加载L2P段522和P2L段524会使读取操作的性能劣化。
由于控制器130可以一次从存储器装置150加载更大量的L2P段522和P2L段524,所以加载L2P段522和P2L段524的单个操作可以涉及更大数量的读取命令。因此,可以提高存储器系统110的读取性能。
可以针对搜索与特定逻辑地址相对应的物理地址而优化L2P段。因此,在读取操作中,L2P段在搜索待映射到从主机102输入的逻辑地址的物理地址时可以是有效的。
可以针对编程操作来优化P2L段524。当从主机102接收到编程命令、编程数据和逻辑地址时,控制器130可能需要在存储器装置150中快速分配存储空间来存储编程数据。在这方面,控制器130可以预先在第二缓冲器520中加载可用物理地址的列表。因此,在从主机102接收到编程命令、编程数据和逻辑地址时,控制器130可以快速地搜索被加载在第二缓冲器520中的可用物理地址的列表。进一步,控制器130可以将用于编程数据的物理地址与逻辑地址进行映射,然后可以将编程数据存储在与该物理地址相对应的存储空间中。可以生成P2L段524并且将其临时存储在第二缓冲器520中。可以通过映射清除操作将第二缓冲器520中存储的P2L段524存储在存储器装置150中。
图4示出根据实施例的存储器系统中的元数据的结构。
一起参照图1至图4,在存储器系统110中,元数据META DATA可以包括逻辑-物理地址映射信息L2P、有效页面信息VPC、其他信息ETC等。也就是说,元数据META_DATA可以包括除了根据从主机102接收的命令而输入/输出的正常数据NORMAL_DATA之外的所有剩余的多条信息和数据。
在这种情况下,逻辑-物理地址映射信息L2P可以是从主机102接收的逻辑地址LBA与指示非易失性存储器装置150内将存储与该逻辑地址LBA相对应的正常数据NORMAL_DATA的物理存储空间的物理地址PBA之间的映射信息。此外,有效页面信息VPC可以是关于存储块中包括的多个页面之中存储有效数据的页面的信息。控制器130可以基于有效页面信息VPC来控制垃圾收集操作。此外,根据实施例,其他信息ETC可以包括可靠性信息(未示出)。该可靠性信息可以包括针对存储块的擦除周期计数信息、读取计数信息等。控制器130可以基于可靠性信息来控制读取回收操作或损耗均衡操作。
控制器130可以将元数据META DATA分割成多个元切片META SLICE<1:15>,并且管理多个元切片META SLICE<1:15>。在这种情况下,多个元切片META SLICE<1:15>中的每一个可以是与存储块内的多个页面中的至少一个页面相对应的信息。元数据META DATA中包括的多个元切片META SLICE<1:15>的大小或多个元切片META SLICE<1:15>的数量可以由非易失性存储器装置150的类型和用途来确定。根据实施例,可以基于逻辑地址的值将元数据META DATA分割成多个元切片META SLICE<1:15>。作为参考,参照图3描述的“段”和参照图4描述的“切片”可以表示数据单位;段数据单位和切片数据单位可以具有相同的大小或具有不同的大小。此外,图4示出元切片META SLICE<1:15>的数量是15,但这仅仅是实施例。元数据可以包括更多或更少数量的元切片。
具体地,当执行启动操作时,控制器130可以向缓冲存储器144加载非易失性存储器装置150中存储的元数据META DATA,例如包括逻辑-物理地址映射信息L2P的元数据。此外,当有必要或期望检查非易失性存储器装置150中存储的映射信息L2P时,控制器130可以从非易失性存储器装置150读取包括映射信息L2P的元数据META DATA,并且可以将所读取的元数据META DATA存储在缓冲存储器144中。
控制器130可以从主机102接收写入命令、写入数据和逻辑地址LBA。响应于写入命令,控制器130可以分配非易失性存储器装置150中的将存储写入数据的物理存储空间。也就是说,控制器130可以响应于写入命令将逻辑地址LBA映射到相应的物理地址PBA。在这种情况下,物理地址PBA可以指示非易失性存储器装置150中的将存储从主机102接收的写入数据的物理存储空间。
如上所述,控制器130可以响应于写入命令将逻辑地址LBA映射到相应的物理地址PBA。在这种情况下,控制器130可以利用包括新生成的逻辑地址LBA和物理地址PBA之间的映射信息L2P的元数据META DATA来更新先前存储在缓冲存储器144中的包括映射信息L2P的元数据META DATA。
如果执行更新操作,则在非易失性存储器装置150中存储的包括映射信息L2P的元数据META DATA与在缓冲存储器144中存储的包括映射信息L2P的元数据META DATA之间可能存在差异。因此,控制器130可以通过将缓冲存储器144中存储的包括映射信息L2P的元数据META DATA清除到非易失性存储器装置150中来控制多条不同的映射信息L2P以使之彼此一致。也就是说,控制器130可以通过清除操作控制缓冲存储器144中存储的包括映射信息L2P的元数据META DATA以与非易失性存储器装置150中存储的包括映射信息L2P的元数据META DATA一致。在这种情况下,控制器130可以以元切片为单位执行清除操作。也就是说,控制器130可以选择多个元切片META SLICE<1:15>中的任意一个经更新的元切片,并且可以通过对所选择的元切片执行清除操作来将所选择的元切片存储在非易失性存储器装置150中。
更具体地,控制器130可以将在缓冲存储器144中缓冲的多个元切片META SLICE<1:15>之中的经更新的元切片分类为脏元切片。此外,控制器130可以对多个元切片METASLICE<1:15>之中的脏元切片执行清除操作,即将脏元切片写入非易失性存储器装置150中的操作。在这种情况下,如果在缓冲存储器144中缓冲的多个元切片META SLICE<1:15>之中存在若干脏元切片,则控制器130可以选择该若干脏元切片中的任意一个,并且可以对所选择的脏元切片执行清除操作。此外,控制器130可以以循环(round robin)方式在缓冲存储器144中缓冲的多个元切片META SLICE<1:15>之中选择脏元切片,并且可以对所选择的脏元切片执行清除操作。
此外,控制器130可以针对缓冲存储器144中的多个元切片META SLICE<1:15>中的每一个生成第一状态信息NEW和第二状态信息OLD。在这种情况下,可以将与多个元切片META SLICE<1:15>中的每一个相对应的第一状态信息NEW和第二状态信息OLD连同多个元切片META SLICE<1:15>一起存储在缓冲存储器144中。
具体地,控制器130可以通过调整即设置或改变经更新的元切片的第一状态信息NEW以指示第一脏切片这种分类,来将多个元切片META SLICE<1:15>之中的经更新的元切片分类为第一脏切片。此外,控制器130可以通过调整即设置或改变所清除的第一脏切片的第一状态信息NEW和第二状态信息OLD两者以指示第二脏切片这种分类,来将第一脏切片中的所清除的第一脏切片分类为第二脏切片。此外,控制器130可以通过调整即设置或改变所清除的第二脏切片的第二状态信息OLD以指示干净元切片这种分类,来将第二脏切片中的被清除的第二脏切片分类为干净元切片。此外,控制器130可以通过调整即设置或改变经更新的第二脏切片的第一状态信息NEW以指示第三脏切片这种分类,来将第二脏切片中的经更新的第二脏切片分类为第三脏切片。此外,控制器130可以通过调整即设置或改变所清除的第三脏切片的第一状态信息NEW以指示第二脏切片这种分类,来将第三脏切片中的所清除的第三脏切片分类为第二脏切片。
在这种情况下,干净元切片在缓冲存储器144和非易失性存储器装置150两者中具有相同的值。
如上所述,根据对多个元切片META SLICE<1:15>中的每一个执行更新操作还是执行清除操作,控制器130可以调整与多个元切片META SLICE<1:15>中的每一个相对应的第一状态信息NEW和第二状态信息OLD的值。因此,控制器130可以将多个元切片META SLICE<1:15>中的每一个的状态分类为干净元切片、第一脏切片、第二脏切片和第三脏切片。
更具体地,控制器130可以将多个元切片META SLICE<1:15>中的经更新的元切片分类为第一脏切片。此外,控制器130可以通过对第一脏切片执行清除操作来将所清除的第一脏切片分类为第二脏切片。此外,控制器130可以通过对第二脏切片执行清除操作来将所清除的第二脏切片分类为干净元切片。此外,控制器130可以通过对第二脏切片执行更新操作来将经更新的第二脏切片分类为第三脏切片。此外,控制器130可以通过对第三脏切片执行清除操作来将所清除的第三脏切片分类为第二脏切片。
在这种情况下,控制器130可以允许在对脏切片执行清除操作的同时针对该脏切片的更新操作。换言之,因为控制器130可以通过设置或改变针对多个元切片META SLICE<1:15>中的每一个的第一状态信息NEW和第二状态信息OLD来针对多个元切片META SLICE<1:15>中的每一个定义不同的状态,在清除脏切片的同时,仍可以对该数据切片执行更新操作。
例如,当对第一脏切片执行清除操作时,将该第一脏切片分类为第二脏切片。当对第二脏切片执行清除操作的同时更新该第二脏切片时,可以将该第二脏切片分类为第三脏切片。当对第二脏切片执行清除操作的同时未更新该第二脏切片时,可以继续将该第二脏切片分类为第二脏切片。
同样,当对第二脏切片执行清除操作时,将该第二脏切片分类为干净切片。当对干净切片执行清除操作的同时更新该干净切片时,可以将该干净切片分类为第一脏切片。当对干净切片执行清除操作的同时未更新该干净切片时,可以继续将该干净切片分类为干净切片。
同样,当对第三脏切片执行清除操作时,将该第三脏切片分类为第二脏切片。当对第二脏切片执行清除操作的同时更新该第二脏切片时,可以再次将该第二脏切片分类为第三脏切片。当对第二脏切片执行清除操作的同时未更新该第二脏切片时,可以继续将该第二脏切片分类为第二脏切片。
此外,控制器130可以生成日志数据JOURNAL_DATA。日志数据JOURNAL_DATA可以表示元数据META DATA的更新历史。因此,控制器130可以基于日志数据JOURNAL_DATA恢复先前更新的元数据META DATA。例如,日志数据JOURNAL_DATA可以包括指示改变元数据METADATA的操作的类型的信息以及用于恢复元数据META DATA中的改变的数据。在这种情况下,指示改变元数据META DATA的操作类型的信息可以包括分别定义能够改变元数据METADATA的所有类型的操作的多条信息,该操作诸如写入操作、分配存储块的操作以及复制页面中存储的数据的操作。此外,用于恢复元数据META DATA中的改变的数据可以包括逻辑地址、先前的物理地址和新物理地址。
此外,控制器130可以通过对日志数据JOURNAL_DATA执行清除操作而将所生成的日志数据JOURNAL_DATA存储在非易失性存储器装置150中。在这种情况下,仅当日志数据JOURNAL_DATA的大小为设定大小时,才可以执行针对日志数据JOURNAL_DATA的清除操作。具体地,控制器130可以将日志数据JOURNAL_DATA存储在缓冲存储器144中。特别地,为了将两个日志数据JOURNAL_DATA <1:2>存储在缓冲存储器144中,控制器130可以保留可以存储具有设定大小的数据的两个空间。控制器130可以选择缓冲存储器144中为日志数据的存储而保留的两个存储空间中的第一存储空间,并且可以将第一日志数据JOURNAL_DATA1存储在该第一存储空间中。如果缓冲存储器144的第一存储空间中存储的第一日志数据JOURNAL_DATA1具有设定大小,则控制器130可以将第一日志数据JOURNAL_DATA1设置即表征为日志保留数据,并且可以通过对该日志保留数据执行清除操作来将第一日志数据JOURNAL_DATA1写入非易失性存储器装置150中。在这种情况下,在将被设置为日志保留数据的第一日志数据JOURNAL_DATA1写入非易失性存储器装置150中时,即,即使尚未完成对被设置为日志保留数据的第一日志数据JOURNAL_DATA1的清除操作,控制器130可以将由于元数据META DATA的更新而新生成的第二日志数据JOURNAL_DATA2设置或表征为新日志数据,并且将第二日志数据JOURNAL_DATA2存储在缓冲存储器144中。也就是说,与对被设置为日志保留数据的第一日志数据JOURNAL_DATA1执行清除操作分开,控制器130可以选择缓冲存储器144中为日志数据的存储而保留的两个存储空间中的第二存储空间,并且可以将被设置为新日志数据的第二日志数据JOURNAL_DATA2存储在该第二存储空间中。当针对被设置为日志保留数据的第一日志数据JOURNAL_DATA1的清除操作完成时,即,当将被设置为日志保留数据的第一日志数据JOURNAL_DATA1写入非易失性存储器装置150内的存储空间中的操作完成时,控制器130可以从缓冲存储器144中删除为日志数据的存储而保留的两个存储空间的第一存储空间中存储的第一日志数据JOURNAL_DATA1或使之无效。
如上所述,与对被设置为日志保留数据的第一日志数据JOURNAL_DATA1执行清除操作分开,控制器130已经执行了选择缓冲存储器144中为日志数据的存储而保留的两个存储空间中的第二存储空间并且将被设置为新日志数据的第二日志数据JOURNAL_DATA2存储在该第二存储空间中的操作。在这种情况下,如果缓冲存储器144的第二存储空间中存储的第二日志数据JOURNAL_DATA2具有设定大小,则控制器130可以将第二日志数据JOURNAL_DATA2设置为日志保留数据,并且可以通过对该日志保留数据执行清除操作来将第二日志数据JOURNAL_DATA2写入非易失性存储器装置150中。在这种情况下,在将被设置为日志保留数据的第二日志数据JOURNAL_DATA2写入非易失性存储器装置150中时,即,即使在针对被设置为日志保留数据的第二日志数据JOURNAL_DATA2的清除操作尚未完成的状态下,控制器130可以将由于元数据META DATA的更新而新生成的第一日志数据JOURNAL_DATA1设置为新日志数据,并且将第一日志数据JOURNAL_DATA1存储在缓冲存储器144中。也就是说,与对被设置为日志保留数据的第二日志数据JOURNAL_DATA2执行清除操作分开,控制器130可以选择缓冲存储器144中为日志数据的存储而保留的两个存储空间中的第一存储空间,并且可以将被设置为新日志数据的第一日志数据JOURNAL_DATA1存储在该第一存储空间中。当完成对被设置为日志保留数据的第二日志数据JOURNAL_DATA2的清除操作时,即,当完成将第二日志数据JOURNAL_DATA2写入非易失性存储器装置150内的存储空间中的操作时,控制器130可以从缓冲存储器144中删除为日志数据的存储而保留的两个存储空间中的第二存储空间中存储的第二日志数据JOURNAL_DATA2或使之无效。
如上所述,根据实施例的控制器130可以保留缓冲存储器144中的用于日志数据的存储的两个存储空间,并且可以交替地使用这两个存储空间。因此,即使在执行针对具有设定大小的日志数据JOURNAL_DATA的清除操作,即执行将日志数据JOURNAL_DATA写入非易失性存储器装置150中的操作,控制器130也可以生成新日志数据JOURNAL_DATA。在这种情况下,如果可以生成新日志数据,则这可以表示允许执行针对元数据META DATA的更新操作。因此,例如,在日志数据JOURNAL_DATA具有设定大小并对其执行清除操作的状态下或在日志数据JOURNAL_DATA的大小小于设定大小的状态下,控制器130可以允许执行针对元数据METADATA的更新操作,而不管日志数据JOURNAL_DATA的状态如何。如上所述,控制器130允许对元数据META DATA执行更新操作,而不管日志数据JOURNAL_DATA的状态如何。因此,控制器130可以对元数据META DATA执行清除操作,而不管日志数据JOURNAL_DATA的状态如何。例如,在日志数据JOURNAL_DATA的大小小于设定大小的状态下,作为检查缓冲存储器144中存储的多个元切片META SLICE<1:15>中的每一个的状态的结果,如果存在第一脏切片、第二脏切片和第三脏切片中的任意一个,则控制器130可以对相应的切片执行清除操作。
另一方面,根据实施例的控制器130可以在日志数据JOURNAL_DATA的大小小于设定大小的状态下,通过将第一至第三脏切片中的至少一个移动到缓冲存储器144的保留空间(未示出)来清除第一至第三脏切片中的至少一个。此后,当清除设定大小的日志数据JOURNAL_DATA时,控制器可以将移动到缓冲存储器144的保留空间的第一至第三脏切片中的至少一个与设定大小的日志数据JOURNAL_DATA一起写入非易失性存储器装置中。
此处,根据实施例的控制器130可以将第一至第三脏切片中的至少一个分割成大小单位,并且可以在设定时间将所分割的切片移动到缓冲存储器144的保留空间。进一步,控制器130可以在开始将第一至第三脏切片中的至少一个移动到缓冲存储器144的保留空间时检查小于设定大小的日志数据JOURNAL_DATA的大小,并且可以基于检查结果确定该大小单位和设定时间。
图5A至图5G示出根据实施例的在存储器系统中管理元数据的方法。
参照图5A,控制器130可以以循环方式检查缓冲存储器144中存储的多个元切片META SLICE<1:15>中的每一个的状态。
例如,在图5A中,可以将缓冲存储器144中存储的多个元切片META SLICE<1:15>之中的第三元切片META SLICE 3、第七元切片META SLICE 7和第十三元切片META SLICE 13分类为第一脏切片。也就是说,在图5A中,控制器130可以通过将第三元切片META SLICE 3、第七元切片META SLICE 7和第十三元切片META SLICE 13中的每一个的第一状态信息NEW设置为“1”,并且将第三元切片META SLICE 3、第七元切片META SLICE 7和第十三元切片META SLICE 13中的每一个的第二状态信息OLD设置为“0”,来将第三元切片META SLICE 3、第七元切片META SLICE 7和第十三元切片META SLICE 13中的每一个分类为第一脏切片。在图5A中,控制器130可以通过将剩余元切片META SLICE<1,2,4:6,8:12,14,15>中的每一个的第一状态信息NEW和第二状态信息OLD两者都设置为初始值“0”,来将剩余元切片METASLICE<1,2,4:6,8:12,14,15>中的每一个分类为干净元切片。
在这种状态下,控制器130可以以循环方式检查缓冲存储器144中存储的多个元切片META SLICE<1:15>中的每一个的状态。作为检查的结果,控制器130可以知道第三元切片META SLICE 3被分类为第一脏切片(S10)。
参照图5B,由于控制器130已经检查到第三元切片META SLICE 3被分类为第一脏切片,因此即使在第一日志数据JOURNAL_DATA1的大小小于设定大小的状态下,控制器130也可以开始针对第三元切片META SLICE 3的清除操作(S20)。在这种情况下,控制器130可以在针对第三元切片META SLICE 3的清除操作开始时,将缓冲存储器144中存储的第三元切片METASLICE 3的第一状态信息NEW从“1”调整为“0”,并且将第三元切片META SLICE 3的第二状态信息OLD从“0”调整为“1”。也就是说,当针对第三元切片META SLICE 3的清除操作开始时,控制器130可以将缓冲存储器144中存储的第三元切片METASLICE 3分类为第二脏切片。
参照图5C,控制器130可能正在执行或已经完成针对第三元切片META SLICE 3的清除操作(S30)。如上所述,在控制器130正在执行或已经完成针对第三元切片META SLICE3的清除操作的状态下,可能更新第三元切片META SLICE 3,并因此第一日志数据JOURNAL_DATA1可能具有设定大小(S31)。在这种情况下,如参照图5B所述,在针对第三元切片METASLICE 3的清除操作开始时,将缓冲存储器144中存储的第三元切片META SLICE 3分类为第二脏切片。因此,响应于第三元切片META SLICE 3的更新,可以将缓冲存储器144中存储的第三元切片META SLICE 3再次分类为第三脏切片。也就是说,如参照图5B所述,当针对第三元切片META SLICE 3的清除操作开始时,控制器130通过将第三元切片META SLICE 3的第一和第二状态信息NEW和OLD分别设置为“0”和“1”,来将缓冲存储器144中存储的第三元切片META SLICE 3分类为第二脏切片。在这种状态下,当对第三元切片META SLICE 3执行更新操作时,控制器130可以通过将第三元切片META SLICE 3的第一和第二状态信息NEW和OLD分别设置为“1”和“1”,来将缓冲存储器144中存储的第三元切片META SLICE 3分类为第三脏切片。
此外,由于在第一日志数据JOURNAL_DATA1具有设定大小的状态下更新了第十一元切片META SLICE 11,所以可以新生成第二日志数据JOURNAL_DATA2(S31)。在这种情况下,控制器130可以通过将经更新的第十一元切片META SLICE 11的第一状态信息NEW设置为“1”并且将经更新的第十一元切片META SLICE 11的第二状态信息OLD设置为“0”,来将经更新的第十一元切片META SLICE 11分类为第一脏切片。此外,由于第一日志数据JOURNAL_DATA1具有设定大小,因此控制器130可以开始对具有设定大小的第一日志数据JOURNAL_DATA1的清除操作(S32)。作为参考,在图5C中,执行针对第三元切片META SLICE 3的清除操作的时间段与执行针对第一日志数据JOURNAL_DATA1的清除操作的时间段可以重叠也可以不重叠。
参照图5D,可以假设在图5D中已经完成了在图5B中开始的针对第三元切片METASLICE 3的清除操作。此外,可以假设在图5D中已经完成了在图5C中开始的针对第一日志数据JOURNAL_DATA1的清除操作(S40)。
因此,控制器130可以从缓冲存储器144删除第一日志数据JOURNAL_DATA1或使之无效。
此外,控制器130可以以循环方式检查缓冲存储器144中存储的多个元切片METASLICE<1:15>中的每一个的状态。在这种情况下,如图5A所指示的,因为已经检查了直到第三元切片META SLICE 3的元数据切片中的每一个,所以如图5D所示,控制器130可以从第四元切片META SLICE 4开始检查剩余元切片中的每一个的状态。为此,尽管将第三元切片META SLICE 3分类为第三脏切片,但是控制器130也不搜索第三元切片META SLICE 3,而是可以搜索第七元切片META SLICE 7。也就是说,控制器130可以检查第四至第七元切片METASLICE<4:7>中的每一个的状态,并且作为检查的结果,可以知道第七元切片META SLICE 7被分类为第一脏切片(S41)。
如上所述,因为控制器130已经检查到第七元切片META SLICE 7被分类为第一脏切片,所以即使在第二日志数据JOURNAL_DATA2的大小小于设定大小的状态下,控制器130也可以开始对第七元切片META SLICE 7的清除操作(S41)。
在这种情况下,控制器130可以在针对第七元切片META SLICE 7的清除操作开始时,将缓冲存储器144中存储的第七元切片META SLICE 7的第一状态信息NEW从“1”改变为“0”,并且将第七元切片META SLICE 7的第二状态信息OLD从“0”改变为“1”。也就是说,当针对第七元切片META SLICE 7的清除操作开始时,控制器130可以将缓冲存储器144中存储的第七元切片META SLICE 7分类为第二脏切片。
参照图5E,可以假设在图5E中已经完成了在图5D中开始的针对第七元切片METASLICE 7的清除操作(S50)。
尽管如上所述已经完成了针对第七元切片META SLICE 7的清除操作,但是控制器130可以停止搜索另一个脏切片的操作,直到第二日志数据JOURNAL_DATA2具有设定大小(S51)。这是为了能够交替执行对日志数据的清除操作以及对元切片的清除操作。其原因在于,如果在若干元切片由于被分类为脏切片而被清除的同时清除日志数据中的一项,则元数据在使用该日志数据进行恢复时可能难以恢复。因此,根据实施例的控制器130可以使用交替清除日志数据和元数据的方法。
随着时间推移重复对多个元切片META SLICE<1:15>的更新,第二日志数据JOURNAL_DATA2可以具有设定大小。因此,控制器130可以开始针对具有设定大小的第二日志数据JOURNAL_DATA2的清除操作(S52)。在已经开始针对第二日志数据JOURNAL_DATA2的清除操作的状态下,控制器130可以新生成第一日志数据JOURNAL_DATA1(S52)。作为参考,可以假设,尽管未在附图中直接示出,但是重复执行针对多个元切片META SLICE<1:15>的更新操作,直到大小小于设定大小的第二日志数据JOURNAL_DATA2具有设定大小。
参照图5F,可以假设重复参照图5A至图5E描述的前述操作。
具体地,可以假设在图5F中已经完成在图5E中开始的针对第二日志数据JOURNAL_DATA2的清除操作(S70)。在这种情况下,控制器130可以根据更新元切片的操作来重新生成第一日志数据JOURNAL_DATA1,而不管针对第二日志数据JOURNAL_DATA2的清除操作是否完成。
此外,因为已经完成针对第二日志数据JOURNAL_DATA2的清除操作,所以控制器130可以重新开始搜索另一脏切片的操作,从而检查到第十一元切片META SLICE 11已经被分类为第一脏切片。因此,即使在第一日志数据JOURNAL_DATA1的大小小于设定大小的状态下,控制器130也可以对第十一元切片META SLICE 11执行清除操作(S71)。
在完成针对第十一元切片META SLICE 11的清除操作之后,控制器130可以停止搜索另一脏切片的操作,直到第一日志数据JOURNAL_DATA1由于元切片被更新而具有设定大小。
随着时间推移重复对多个元切片META SLICE<1:15>的更新,第一日志数据JOURNAL_DATA1可以具有设定大小。因此,控制器130可以开始针对具有设定大小的第一日志数据JOURNAL_DATA1的清除操作(S72)。
在这种情况下,控制器130可以根据更新元切片的操作而新生成第二日志数据JOURNAL_DATA2,而不管针对第一日志数据JOURNAL_DATA1的清除操作是否完成。
此外,当对第一日志数据JOURNAL_DATA1的清除操作完成时,控制器130可以重新开始搜索另一个脏切片的操作,并因此检查到第十三元切片META SLICE 13被分类为第一脏切片。因此,即使在第二日志数据JOURNAL_DATA2的大小小于设定大小的状态下,控制器130也可以对第十三元切片META SLICE 13执行清除操作(S73)。
在完成第十三元切片META SLICE 13的清除操作之后,控制器130可以停止搜索另一脏切片的操作,直到第二日志数据JOURNAL_DATA2由于元切片被更新而具有设定大小。
随着时间推移重复对多个元切片META SLICE<1:15>的更新,第二日志数据JOURNAL_DATA2可以具有设定大小。因此,控制器130可以开始针对具有设定大小的第二日志数据JOURNAL_DATA2的清除操作(S74)。
在这种情况下,控制器130可以根据更新元切片的操作而新生成第一日志数据JOURNAL_DATA1,而不管针对第二日志数据JOURNAL_DATA2的清除操作是否完成。
此外,当第二日志数据JOURNAL_DATA2的清除操作完成时,控制器130可以重新开始搜索另一个脏切片的操作,并因此完成以循环方式检查一次所有多个元切片META SLICE<1:15>的状态的操作。
参照图5G,因为在图5F中完成了以循环方式检查一次缓冲存储器144中存储的多个元切片META SLICE<1:15>的各个状态的操作,控制器130可以以循环方式重新检查多个元切片META SLICE<1:15>中的每一个的状态。
因此,控制器130可以以循环方式检查缓冲存储器144中存储的多个元切片METASLICE<1:15>中的每一个的状态,并且作为检查的结果,可以知道第三元切片META SLICE 3已被分类为第三脏切片(S80)。
如上所述,因为控制器130已经检查到第三元切片META SLICE 3已经被分类为第三脏切片,所以即使在第一日志数据JOURNAL_DATA1的大小小于设定大小的状态下,控制器130也可以开始针对第三元切片META SLICE 3的清除操作(S80)。在这种情况下,控制器130可以针对第三元切片META SLICE 3的清除操作开始时,将缓冲存储器144中存储的第三元切片META SLICE 3的第一状态信息NEW从“1”调整为“0”,并且将第三元切片META SLICE 3的第二状态信息OLD保持为“1”。也就是说,当针对第三元切片META SLICE 3的清除操作开始时,控制器130可以将缓冲存储器144中存储的第三元切片META SLICE 3分类为第二脏切片。
根据本发明的实施例,当元数据中包括的多个元切片以及与元切片的更新相对应的日志数据被写入非易失性存储器装置中时,异步地执行写入元切片和写入日志数据的操作。因此,可以允许对正在执行写入操作的元切片进行更新。
因此,本发明的实施例有利地减少或最小化了写入元数据所花费的时间量,从而可以提高整个存储器系统的性能。
尽管已经示出和描述了各个实施例,但是对于本领域技术人员而言显而易见的是,在不脱离如所附权利要求书所限定的本公开的精神和范围的情况下,可以进行各种改变和修改。
Claims (20)
1.一种存储器系统,包括:
非易失性存储器装置;
控制器,根据将正常数据存储在所述非易失性存储器装置中来生成元数据;以及
缓冲存储器,存储配置所述元数据的多个元切片,
其中所述控制器:
使用所述多个元切片中的每个经更新的切片的第一状态信息将相应的所述经更新的切片分类为第一脏切片,
通过使用所述第一脏切片中的每个所清除的切片的所述第一状态信息和第二状态信息将相应的所清除的切片分类为第二脏切片,
使用所述第二脏切片中的每个所清除的切片的所述第二状态信息将相应的所清除的切片分类为所述元切片,
使用所述第二脏切片中的每个经更新的切片的所述第一状态信息将所述经更新的切片分类为第三脏切片,
使用所述第三脏切片中的每个所清除的切片的所述第一状态信息将所清除的切片分类为所述第二脏切片,并且
在清除所述第一脏切片至所述第三脏切片中的每一个的同时启用对所述第一脏切片至所述第三脏切片中的每一个的更新,
其中将所述多个元切片中的每一个的所述第一状态信息和所述第二状态信息存储在所述缓冲存储器中。
2.根据权利要求1所述的存储器系统,其中所述控制器:
生成第一日志数据,并且将所述第一日志数据存储在所述缓冲存储器中,所述第一日志数据包括关于所述第一脏切片至所述第三脏切片的更新的信息;
在所述第一日志数据的大小小于设定大小的状态下,当存在所述第一脏切片至所述第三脏切片中的至少一个脏切片时,清除所述至少一个脏切片;
当所述第一日志数据具有所述设定大小时,通过将所述第一日志数据改变为日志保留数据来清除所述第一日志数据;并且
在开始清除所述日志保留数据之后,生成第二日志数据,并且将所述第二日志数据存储在所述缓冲存储器中,所述第二日志数据包括关于所述第一脏切片至所述第三脏切片的更新信息。
3.根据权利要求2所述的存储器系统,其中将所述第二日志数据存储在所述缓冲存储器中与在所述缓冲存储器中存储所述日志保留数据的位置不同的位置。
4.根据权利要求2所述的存储器系统,
其中所述控制器通过写入所述第一脏切片至所述第三脏切片中的至少一个来清除所述第一脏切片至所述第三脏切片中的所述至少一个,并且
其中所述控制器通过将所述日志保留数据写入所述非易失性存储器装置中来清除所述日志保留数据。
5.根据权利要求2所述的存储器系统,其中在所述第一日志数据的大小小于设定大小的状态下,所述控制器通过以下方式清除所述第一脏切片至所述第三脏切片中的至少一个:
将所述第一脏切片至所述第三脏切片中的所述至少一个移动到所述缓冲存储器的保留空间,并且
当清除所述日志保留数据时,将被移动到所述保留空间中的所述第一脏切片至所述第三脏切片中的所述至少一个与所述日志保留数据一起写入所述非易失性存储器装置中。
6.根据权利要求5所述的存储器系统,其中所述控制器通过以下方式移动所述第一脏切片至所述第三脏切片中的所述至少一个:
将所述第一脏切片至所述第三脏切片中的所述至少一个以大小单位进行分割,并且
在设定时间移动所分割的切片。
7.根据权利要求6所述的存储器系统,其中所述控制器:
在开始将所述第一脏切片至所述第三脏切片中的所述至少一个移动到所述保留空间时,检查所述第一日志数据的大小,并且
基于检查结果确定所述大小单位和所述设定时间。
8.根据权利要求2所述的存储器系统,
其中所述控制器:
以循环方式在所述多个元切片中搜索所述第一脏切片至所述第三脏切片,并且
清除在所述搜索中检索到的所述第一脏切片至所述第三脏切片。
9.根据权利要求8所述的存储器系统,其中当在开始清除所述日志保留数据之后生成所述第二日志数据时,从先前检索到的元切片的下一元切片开始搜索所述第一脏切片至所述第三脏切片。
10.根据权利要求1所述的存储器系统,
其中所述控制器:
将所述第一状态信息和所述第二状态信息的初始值分别设置为“0”和“0”,
通过将所述多个元切片中的每个经更新的切片的第一状态信息的值设置为“1”,将相应的所述经更新的切片分类为第一脏切片,
通过将所述第一脏切片中的每个所清除的切片的所述第一状态信息和所述第二状态信息的值分别设置为“0”和“1”,将相应的所清除的切片分类为第二脏切片,
通过将所述第二脏切片中的每个所清除的切片的所述第二状态信息的值设置为“0”,将相应的所清除的切片分类为所述元切片,
通过将所述第二脏切片中的每个经更新的切片的所述第一状态信息的值设置为“1”,将相应的所述经更新的切片分类为第三脏切片,
通过将所述第三脏切片中的每个所清除的切片的所述第一状态信息的值设置为“0”,将相应的所清除的切片分类为所述第二脏切片。
11.一种存储器系统的操作方法,所述存储器系统包括非易失性存储器装置和缓冲存储器,所述操作方法包括:
根据将正常数据存储在所述非易失性存储器装置中来生成配置有多个元切片的元数据;
将所述元数据以及第一状态信息和第二状态信息存储在所述缓冲存储器中;
在第一分类操作中,使用所述多个元切片中的每个经更新的切片的第一状态信息,将相应的经更新的切片分类为第一脏切片;
在第二分类操作中,使用所述第一脏切片中的每个所清除的切片的所述第一状态信息和所述第二状态信息,将相应的所清除的切片分类为第二脏切片;
在第三分类操作中,使用所述第二脏切片中的每个所清除的切片的所述第二状态信息将相应的所清除的切片分类为所述元切片;
在第四分类操作中,使用所述第二脏切片中的每个经更新的切片的所述第一状态信息将相应的所述经更新的切片分类为第三脏切片;并且
在第五分类操作中,使用所述第三脏切片中的每个所清除的切片的所述第一状态信息将相应的所清除的切片分类为所述第二脏切片,
其中在清除所述第一脏切片至所述第三脏切片中的每一个的同时启用对所述第一脏切片至所述第三脏切片中的每一个的更新。
12.根据权利要求11所述的操作方法,进一步包括:
生成第一日志数据,并且将所述第一日志数据存储在所述缓冲存储器中,所述第一日志数据包括关于所述第一脏切片至所述第三脏切片的更新的信息;
在第一清除操作中,在所述第一日志数据的大小小于设定大小的状态下,当存在所述第一脏切片至所述第三脏切片中的至少一个脏切片时,清除所述至少一个脏切片;
在第二清除操作中,当所述第一日志数据具有所述设定大小时,通过将所述第一日志数据改变为日志保留数据来清除所述第一日志数据;并且
在开始清除所述日志保留数据之后,生成第二日志数据,并且将所述第二日志数据存储在所述缓冲存储器中,所述第二日志数据包括对应于所述第一脏切片至所述第三脏切片的更新信息。
13.根据权利要求12所述的操作方法,其中将所述第二日志数据存储在所述缓冲存储器中与在所述缓冲存储器中存储所述日志保留数据的位置不同的位置。
14.根据权利要求12所述的操作方法,其中:
所述第一清除操作包括将所述第一脏切片至所述第三脏切片中的任意一个写入所述非易失性存储器装置中,并且
所述第二清除操作包括将所述日志保留数据写入所述非易失性存储器装置中。
15.根据权利要求12所述的操作方法,其中所述第一清除操作包括:
将所述第一脏切片至所述第三脏切片中的所述至少一个移动到所述缓冲存储器的保留空间,并且
在所述第二清除操作期间,将被移动到所述保留空间的所述第一脏切片至所述第三脏切片中的所述至少一个与所述日志保留数据一起写入所述非易失性存储器装置中。
16.根据权利要求15操作方法,其中移动所述第一脏切片至所述第三脏切片中的所述至少一个包括:
将所述第一脏切片至所述第三脏切片中的所述至少一个以大小单位进行分割,并且
在设定时间移动所分割的切片。
17.根据权利要求16所述的操作方法,进一步包括:
在开始将所述第一脏切片至所述第三脏切片中的所述至少一个移动到所述保留空间时,检查所述第一日志数据的大小,并且
基于检查结果确定所述大小单位和所述设定时间。
18.根据权利要求12所述的操作方法,
进一步包括:以循环方式在所述多个元切片中搜索所述第一脏切片至所述第三脏切片,并且
其中对所搜索到的所述第一脏切片至所述第三脏切片执行所述第一清除操作。
19.根据权利要求18所述的操作方法,其中当在开始清除所述日志保留数据之后生成所述第二日志数据时,从紧邻先前搜索到的所述第一脏切片至所述第三脏切片之中的一个之后的元切片开始搜索所述第一脏切片至所述第三脏切片。
20.根据权利要求11所述的操作方法,进一步包括:
将所述第一状态信息和所述第二状态信息的初始值分别设置为“0”和“0”,其中
在第一分类操作中,通过将所述多个元切片中的每个经更新的切片的第一状态信息的值设置为“1”,将相应的所述经更新的切片分类为第一脏切片,
在第二分类操作中,通过将所述第一脏切片中的每个所清除的切片的所述第一状态信息和所述第二状态信息的值分别设置为“0”和“1”,将相应的所清除的切片分类为第二脏切片,
在第三分类操作中,通过将所述第二脏切片中的每个所清除的切片的所述第二状态信息的值设置为“0”,将相应的所清除的切片分类为所述元切片,
在第四分类操作中,通过将所述第二脏切片中的每个经更新的切片的所述第一状态信息的值设置为“1”,将相应的所述经更新的切片分类为第三脏切片,并且
在第五分类操作中,通过将所述第三脏切片中的每个所清除的切片的所述第一状态信息的值设置为“0”,将相应的所清除的切片分类为所述第二脏切片。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200083485A KR20220005832A (ko) | 2020-07-07 | 2020-07-07 | 메타 데이터 관리를 위한 메모리 시스템 및 메모리 시스템의 동작방법 |
KR10-2020-0083485 | 2020-07-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918085A true CN113918085A (zh) | 2022-01-11 |
Family
ID=79172563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110067935.1A Pending CN113918085A (zh) | 2020-07-07 | 2021-01-19 | 用于元数据管理的存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220012180A1 (zh) |
KR (1) | KR20220005832A (zh) |
CN (1) | CN113918085A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220147292A (ko) * | 2021-04-27 | 2022-11-03 | 삼성전자주식회사 | 메타 데이터 관리를 수행하는 스토리지 장치 및 이의 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108986864A (zh) * | 2017-05-30 | 2018-12-11 | 爱思开海力士有限公司 | 控制器和存储器系统以及存储器系统的操作方法 |
CN109213705A (zh) * | 2017-07-07 | 2019-01-15 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
US20190146911A1 (en) * | 2017-11-13 | 2019-05-16 | SK Hynix Inc. | Memory system and operating method thereof |
-
2020
- 2020-07-07 KR KR1020200083485A patent/KR20220005832A/ko unknown
- 2020-09-29 US US17/036,960 patent/US20220012180A1/en not_active Abandoned
-
2021
- 2021-01-19 CN CN202110067935.1A patent/CN113918085A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108986864A (zh) * | 2017-05-30 | 2018-12-11 | 爱思开海力士有限公司 | 控制器和存储器系统以及存储器系统的操作方法 |
CN109213705A (zh) * | 2017-07-07 | 2019-01-15 | 爱思开海力士有限公司 | 存储装置及其操作方法 |
US20190146911A1 (en) * | 2017-11-13 | 2019-05-16 | SK Hynix Inc. | Memory system and operating method thereof |
CN109783009A (zh) * | 2017-11-13 | 2019-05-21 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220012180A1 (en) | 2022-01-13 |
KR20220005832A (ko) | 2022-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106095699B (zh) | 用于快闪存储器的可扩展spor算法 | |
US10963160B2 (en) | Apparatus and method for checking valid data in block capable of storing large volume data in memory system | |
US11544157B2 (en) | Apparatus and method for storing data in an MLC area of a memory system | |
US11157402B2 (en) | Apparatus and method for managing valid data in memory system | |
US11281574B2 (en) | Apparatus and method for processing different types of data in memory system | |
US11354250B2 (en) | Apparatus for transmitting map information in memory system | |
US11029867B2 (en) | Apparatus and method for transmitting map information and read count in memory system | |
US11681633B2 (en) | Apparatus and method for managing meta data in memory system | |
CN113900586A (zh) | 存储器系统及其操作方法 | |
CN111581121B (zh) | 用于管理存储器系统中的映射数据的方法和设备 | |
CN112558860A (zh) | 分布和读取数据的存储器系统及其操作方法 | |
CN111752467A (zh) | 传送存储器系统中的垃圾收集状态信息的设备和方法 | |
US11314653B2 (en) | Memory controller | |
KR102653235B1 (ko) | 메모리 블록을 효율적으로 관리할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법 | |
CN113849121A (zh) | 用于访问条带形式的数据的存储器系统及其操作方法 | |
US20220012180A1 (en) | Memory system for meta data management and operating method of memory system | |
US11416410B2 (en) | Memory system, method of operating the same and data processing system for supporting address translation using host resource | |
CN112748873A (zh) | 存储器系统和控制器 | |
CN111857565A (zh) | 存储器系统、数据处理系统及其操作方法 | |
CN111857818A (zh) | 存储器系统和通过该存储器系统执行命令操作的方法 | |
US11663139B2 (en) | Apparatus for transmitting map information in memory system | |
US11366611B2 (en) | Apparatus for transmitting map information in a memory system | |
US20240241834A1 (en) | Apparatus for transmitting map information in memory system | |
CN111831577A (zh) | 用于确定存储器系统中的存储块的特性的设备和方法 | |
CN112068983A (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 |