CN110781096B - 用于通过预测需求时间来执行垃圾收集的设备和方法 - Google Patents
用于通过预测需求时间来执行垃圾收集的设备和方法 Download PDFInfo
- Publication number
- CN110781096B CN110781096B CN201910695645.4A CN201910695645A CN110781096B CN 110781096 B CN110781096 B CN 110781096B CN 201910695645 A CN201910695645 A CN 201910695645A CN 110781096 B CN110781096 B CN 110781096B
- Authority
- CN
- China
- Prior art keywords
- block
- blocks
- time
- super
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 39
- 230000015654 memory Effects 0.000 claims abstract description 650
- 239000000872 buffer Substances 0.000 claims abstract description 59
- 230000003139 buffering effect Effects 0.000 claims abstract description 14
- 238000012546 transfer Methods 0.000 claims description 61
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000013507 mapping Methods 0.000 description 37
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 11
- 238000003860 storage Methods 0.000 description 10
- 101100072644 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) INO2 gene Proteins 0.000 description 8
- 230000008859 change Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 101100483112 Caenorhabditis elegans ttx-3 gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101100510323 Caenorhabditis elegans pkc-1 gene Proteins 0.000 description 1
- 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
- 238000013459 approach Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 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
- 238000002360 preparation method 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/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/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
- 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
- G06F2212/1036—Life time enhancement
-
- 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/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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
一种存储器系统,包括:非易失性存储器装置,所述非易失性存储器装置包括多个管芯,每个管芯包括多个平面,每个平面包括多个块,每个块包括多个页面,并且所述非易失性存储器装置进一步包括多个页面缓冲器,每个页面缓冲器用于以页面为单位缓存要输入到所述块中的每个块以及从所述块中的每个块输出的数据;以及控制器,所述控制器适于根据条件管理多个超级块,每个超级块包括在所述块之中能够被并行读取的N个块,分别针对所述超级块生成预测需求时间,所述预测需求时间中的每一个表示从对应的所述超级块提取有效数据所需的时间,以及基于所述预测需求时间从所述块之中选择用于垃圾收集的牺牲块。
Description
相关申请的交叉引用
本申请要求于2018年7月31日提交的第10-2018-0089400号韩国专利申请和于2018年12月21日提交的第10-2018-0167583号韩国专利申请的优先权,这些申请通过引用整体并入本文。
技术领域
各种实施例涉及一种存储器系统,并且更具体地,涉及一种支持垃圾收集的存储器系统及其操作方法。
背景技术
计算机环境范例已经改变为可以随时随地使用的普适计算系统。正因如此,诸如移动电话、数码相机和笔记本计算机等便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可以用作便携式电子装置的主存储装置或辅助存储装置。
存储器系统提供了极好的稳定性、耐久性、高信息访问速度和低功耗,这是因为它们没有移动部件。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡和固态驱动器(SSD)。
发明内容
各种实施例涉及一种存储器系统及其操作方法,该存储器系统能够以超级块为单位预测性地计算在用于垃圾收集的块中提取有效数据时所需的需求时间,以及基于预测性地计算的需求时间来选择用于垃圾收集的牺牲块。
在一个实施例中,存储器系统可以包括:非易失性存储器装置,包括多个管芯,每个管芯包括多个平面,每个平面包括多个块,每个块包括多个页面,并且非易失性存储器装置进一步包括多个页面缓冲器,每个页面缓冲器用于以页面为单位缓存要输入到块中的每个块以及从块中的每个块输出的数据;以及控制器,该控制器适于根据条件管理多个超级块,每个超级块包括块之中能够被并行读取的N个块,分别针对超级块生成预测需求时间,该预测需求时间中的每一个表示从对应的超级块提取有效数据所需的时间,以及基于预测需求时间从块之中选择用于垃圾收集的牺牲块。N可以是2或更大的自然数。
当仅针对在超级块中的第一超级块中的相应N个块中的相同位置处的页面启用并行读取时,控制器可以通过对第一时间和第二时间求和来生成与第一超级块相对应的预测需求时间,第一时间是通过将一个数字乘以预测读取时间计算得到的,该数字表示在第一超级块的N个块之中位置相同的有效页面的计数与第一计数之差,第一计数表示N个块的有效页面计数与预测读取时间的和,第二时间表示第一计数和预测传输时间的乘积,预测读取时间可以是预测将第一超级块的数据缓存在页面缓冲器中所需的时间,并且预测传输时间可以是预测将页面缓冲器中缓存的数据传输到控制器所需的时间。
当针对在超级块中的第二超级块中的相应N个块中的不同位置处的页面启用并行读取时,控制器可以通过对第三时间和第四时间求和来生成与第二超级块相对应的预测需求时间,第三时间是通过将N个块的有效页面计数之中的最大计数乘以预测读取时间计算得到的,第四时间是通过将表示N个块的有效页面计数的和的计数乘以预测传输时间计算得到的,预测读取时间可以是预测将第二超级块的数据缓存在页面缓冲器中所需的时间,并且预测传输时间可以是预测将页面缓冲器中缓存的数据传输到控制器所需的时间。
每当块之中的块的有效页面计数改变时,控制器可以计算与超级块相对应的更新预测需求时间,该超级块包括有效页面计数已经改变的块。
控制器可以在每个设置时间检查在超级块的块之中是否存在有效页面计数已经改变的块,并且当存在有效页面计数已经改变的块时,可以计算与超级块相对应的更新预测需求时间,该超级块包括有效页面计数已经改变的块。
控制器可以在与预测需求时间之中的最低预测需求时间相对应的超级块的N个块之中选择包括至少一个有效页面的块作为牺牲块。
当超级块之中的仅一个超级块具有小于或等于设置计数的有效页面数时,控制器可以选择一个超级块的N个块作为牺牲块,并且当超级块之中的至少两个超级块均具有小于或等于设置计数的有效页面数时,控制器可以在超级块的N个块之中选择包括至少一个有效页面的块作为牺牲块,该超级块具有分别与至少两个超级块相对应的至少两个预测需求时间之中的最低预测需求时间。
当超级块之中的超级块的N个块被选择作为牺牲块并且所有有效数据被移动到目标块时,控制器可以将与所选的超级块相对应的预测需求时间设置为特定值。
控制器可以在块之中的空闲块数目小于或等于第一数目的时间段期间生成和管理预测需求时间,并且控制器可以在块之中的空闲块数目大于或等于第二数目的时间段期间不管理预测需求时间,该第二数目大于第一数目。
多个管芯中的第一管芯可以被耦合至第一通道,多个管芯中的第二管芯可以被耦合至第二通道,被包括在第一管芯中的平面可以被耦合至共享第一通道的多个第一路径,并且被包括在第二管芯中的平面可以被耦合至共享第二通道的多个第二路径,并且控制器可以根据条件管理第一超级块以及管理第二超级块,第一超级块包括在第一管芯的第一平面中的第一块和在第一管芯的第二平面中的第二块,第二超级块包括在第二管芯的第三平面中的第三块和在第二管芯的第四平面中的第四块,控制器可以根据条件管理第三超级块以及管理第四超级块,第三超级块包括在第一管芯的第一平面中的第一块和在第二管芯的第三平面中的第三块,第四超级块包括在第一管芯的第二平面中的第二块和在第二管芯的第四平面中的第四块,或者控制器可以根据条件管理第五超级块,第五超级块包括在第一管芯的第一平面中的第一块、在第一管芯的第二平面中的第二块、在第二管芯的第三平面中的第三块和在第二管芯的第四平面中的第四块。
在一个实施例中,一种用于操作存储器系统的方法,该存储器系统包括控制器和非易失性存储器装置,该非易失性存储器装置包括多个管芯,每个管芯包括多个平面,每个平面包括多个块,每个块包括多个页面,并且包括多个页面缓冲器,每个页面缓冲器用于以页面为单位缓存要输入到块中的每个块以及从块中的每个块输出的数据,该方法可以包括:根据设置条件管理多个超级块,每个超级块包括块之中能够被并行读取的N个块;分别针对超级块生成预测需求时间,该预测需求时间中的每一个表示从对应的超级块提取有效数据所需的时间;以及基于预测需求时间从块之中选择用于垃圾收集的牺牲块,N可以是2或更大的自然数。
当仅针对在超级块之中的第一超级块中的相应N个块中的相同位置处的页面启用并行读取时,预测需求时间的生成可以包括:通过将一个数字乘以预测读取时间来计算第一时间,该数字表示在第一超级块的N个块之中位置相同的有效页面的计数与第一计数之差,第一计数表示第一超级块的N个块的有效页面计数与预测读取时间的和;通过将第一计数乘以预测传输时间来计算第二时间;通过对该超级块的第一时间和第二时间求和来针对每个超级块生成预测需求时间。预测读取时间可以是预测将第一超级块的数据缓存在页面缓冲器中所需的时间,并且预测传输时间可以是预测将页面缓冲器中缓存的数据传输到控制器所需的时间。
当针对在超级块之中的第二超级块中的相应N个块中的不同位置处的页面启用并行读取时,预测需求时间的生成可以包括:通过将第二超级块中的N个块的有效页面计数之中的最大计数乘以预测读取时间来计算第三时间;通过将通过对第二超级块中的N个块的有效页面计数求和而获得的计数乘以预测传输时间来计算第四时间;通过对第三时间和第四时间求和来生成与第二超级块相对应的预测需求时间。预测读取时间可以是预测将第二超级块的数据缓存在页面缓冲器中所需的时间,并且预测传输时间可以是预测将页面缓冲器中缓存的数据传输到控制器所需的时间。
该方法可以进一步包括:每当块之中的块的有效页面计数改变时,计算与超级块相对应的更新预测需求时间,该超级块包括有效页面计数已经改变的块。
该方法可以进一步包括:在每个设置时间检查在块之中是否存在有效页面计数已经改变的块,并且当存在有效页面计数已经改变的块时,计算与超级块相对应的更新预测需求时间,该超级块包括有效页面计数已经改变的块。
牺牲块的选择可以包括在与预测需求时间之中的最低预测需求时间相对应的超级块的N个块之中选择包括至少一个有效页面的块作为牺牲块。
牺牲块的选择可以包括:当仅一个超级块具有小于或等于设置计数的有效页面数时,选择一个超级块的N个块作为牺牲块;以及当至少两个超级块均具有小于或等于设置计数的有效页面数时,在超级块的N个块之中选择包括至少一个有效页面的块作为牺牲块,该超级块具有分别与至少两个超级块相对应的至少两个预测需求时间之中的最低预测需求时间。
该方法可以进一步包括:当超级块之中的超级块的N个块被选择作为牺牲块并且所有有效数据被移动到目标块时,将与所选的超级块相对应的预测需求时间设置为特定值。
预测需求时间的生成可以包括:在块之中的空闲块数目小于或等于第一数目的时间段期间生成和管理预测需求时间;以及在块之中的空闲块数目大于或等于第二数目的时间段期间不管理预测需求时间,该第二数目大于第一数目。
多个管芯中的第一管芯可以被耦合至第一通道,多个管芯中的第二管芯可以被耦合至第二通道,被包括在第一管芯中的平面可以被耦合至共享第一通道的多个第一路径,并且被包括在第二管芯中的平面可以被耦合至共享第二通道的多个第二路径,并且设置条件可以包括:管理包括在第一管芯的第一平面中的第一块和在第一管芯的第二平面中的第二块的超级块,以及管理包括在第二管芯的第三平面中的第三块和在第二管芯的第四平面中的第四块的超级块,设置条件可以包括:管理包括在第一管芯的第一平面中的第一块和在第二管芯的第三平面中的第三块的超级块,以及管理包括在第一管芯的第二平面中的第二块和在第二管芯的第四平面中的第四块的超级块,或者设置条件可以包括:管理包括在第一管芯的第一平面中的第一块、在第一管芯的第二平面中的第二块、在第二管芯的第三平面中的第三块和在第二管芯的第四平面中的第四块的超级块。
在一个实施例中,存储器系统可以包括:存储器装置,该存储器装置包括多个块和页面缓冲器;以及控制器,该控制器适于:针对多个超级块中的每个块预测数据读取时间和数据传输时间,每个超级块包括块之中的块的子集;分别基于超级块的有效页面数、数据读取时间和数据传输时间来选择超级块;以及在所选超级块中的块之中对所选超级块的至少一个块执行垃圾收集操作;针对每个超级块,数据读取时间指示用于读取超级块的块中存储的有效页面的数据并且将读取数据缓存在页面缓冲器中的时间,并且数据传输时间指示用于将缓存数据传输到控制器的时间。
在该技术中,可以以超级块为单位预测性地计算在用于垃圾收集的块中提取有效数据时所需的需求时间,并且可以基于预测性地计算的需求时间来选择用于垃圾收集的牺牲块。
通过这一点,可以提供可以将执行垃圾收集所需的时间最小化的优点。
此外,由于垃圾收集的执行,还可以使存储器系统的性能退化最小化。
附图说明
图1是图示了根据一个实施例的数据处理系统的示意图。
图2是图示了根据一个实施例的存储器系统的控制器的示意图。
图3是图示了根据一个实施例的在存储器系统中使用的垃圾收集的示例的示意图。
图4是图示了根据一个实施例的在存储器系统中使用的超级存储器块的概念的示意图。
图5A和5B是图示了根据一个实施例的针对存储器系统中的超级存储器块的垃圾收集的示意图。
图6是图示了根据一个实施例的存储器系统的示意图。
图7A和7B是图示了根据一个实施例的针对存储器系统中的超级存储器块的垃圾收集的示意图。
图8是图示了根据一个实施例的存储器系统的示意图。
具体实施方式
下面参照附图更详细地描述各种实施例。然而,本发明可以以不同形式体现,并且不应该被解释为限于本文中陈述的实施例。相反,提供这些实施例,使得本公开是彻底且完整的,并且将本发明的范围充分传达给本领域技术人员。贯穿本公开,相同的附图标记在本发明的各种附图和实施例中指代相同部件。贯穿本说明书,对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这种短语的不同引用不一定针对相同实施例。
图1是图示了根据一个实施例的数据处理系统100的示意图。
参照图1,数据处理系统100可以包括主机102和存储器系统110。
主机102包括电子装置,例如,诸如移动电话、MP3播放器和膝上型计算机等便携式电子装置,或者诸如台式计算机、游戏机、电视机(TV)和投影仪等电子装置,即,有线和无线电子装置。
主机102包括至少一个操作系统(OS)。操作系统总体上管理和控制主机102的功能和操作,并且在主机102与使用数据处理系统100或存储器系统110的用户之间提供互操作性。操作系统支持与用户的使用目的和操作系统的用途相对应的功能和操作。例如,操作系统可以根据主机102的移动性被分类为通用操作系统和移动操作系统。此外,通用操作系统可以根据用户的使用环境分类为个人操作系统和企业操作系统。例如,其特征在于支持对一般用户的服务提供功能的个人操作系统可以包括Windows和Chrome,并且其特征在于保护和支持高性能的企业操作系统可以包括Windows服务器、Linux和Unix。另外,其特征在于支持对用户的移动服务提供功能和系统节能功能的移动操作系统可以包括Android、iOS、Windows mobile等。主机102可以包括多个操作系统,并且运行操作系统以根据用户请求利用存储器系统110来执行操作。主机102将与用户请求相对应的多个命令传输到存储器系统110,并因此,存储器系统110执行与命令相对应的操作,即,与用户请求相对应的操作。
存储器系统110响应于主机102的请求而操作,特别地,存储要由主机102访问的数据。换言之,存储器系统110可以用作主机102的主存储器装置或辅助存储器装置。存储器系统110可以根据与主机102耦合的主机接口协议被实现为各种种类的存储装置中的任一种。例如,存储器系统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包括存储器装置150和控制器130,存储器装置150存储要由主机102访问的数据,控制器130控制数据在存储器装置150中的存储。
控制器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)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下发射和接收信息的装置、配置家庭网络的各种电子装置中的一种电子装置、配置计算机网络的各种电子装置中的一种电子装置、配置远程信息处理网络的各种电子装置中的一种电子装置、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)堆叠结构。
控制器130响应于来自主机102的请求来控制存储器装置150。例如,控制器130将从存储器装置150读取的数据提供给主机102,并且将从主机102提供的数据存储在存储器装置150中。为此,控制器130控制存储器装置150的操作,诸如,读取、写入、编程和擦除操作。
控制器130包括主机接口132、处理器134、存储器接口142和存储器144。
主机接口132处理主机102的命令和数据。主机接口132可以配置为通过各种接口协议中的至少一种与主机102通信,诸如,通用串行总线(USB)、多媒体卡(MMC)、外围部件互连高速(PCI-e或PCIe)、串行连接SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强小型磁盘接口(ESDI)、集成驱动电子设备(IDE)和移动行业处理器接口(MIPI)。主机接口132可以通过称为主机接口层(HIL)的固件驱动,该HIL是与主机102交换数据的区域。
存储器接口142充当在控制器130与存储器装置150之间执行接口连接的存储器/存储接口。存储器接口142可以允许控制器130响应于来自主机102的请求来控制存储器装置150。存储器接口142生成用于存储器装置150的控制信号,并且在处理器134的控制下处理数据。在存储器装置150是闪存存储器的情况下,特别地,在存储器装置150是NAND闪存存储器的情况下,存储器接口142是或充当NAND闪存控制器(NFC)。存储器接口142可以支持处理控制器130与存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)的操作。特别地,存储器接口142处理在控制器130与存储器装置150之间的数据输入/输出。存储器接口142可以通过称为闪存接口层(FIL)的固件驱动,该FIL是与存储器装置150交换数据的区域。
作为存储器系统110和控制器130的工作存储器,存储器144存储用于驱动存储器系统110和控制器130的数据。详细地,存储器144存储控制器130响应于来自主机102的请求来控制存储器装置150所需的数据。例如,存储器144存储在控制器130控制存储器装置150的操作(诸如,读取、写入、编程和擦除操作)时所需的数据。控制器130控制将从存储器装置150读取的数据提供给主机102的操作以及将从主机102提供的数据存储在存储器装置150中的操作。
存储器144可以通过易失性存储器实现。例如,存储器144可以通过静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)实现。存储器144可以被包括在图1所图示的控制器130中。在另一实施例中,存储器144可以设置在控制器130外,在这种情况下,存储器144可以实现为通过单独的存储器接口(未示出)与控制器130交换数据的外部易失性存储器。
如上所述,存储器144存储在主机102与存储器装置150之间执行数据读取和写入操作所需的数据,并且在执行数据读取和写入操作时存储数据。针对这种数据存储,存储器144可以包括程序存储器、数据存储器、写入缓冲器或缓存(缓冲器/缓存)、读取缓冲器/缓存、数据缓冲器/缓存、映射缓冲器/缓存等等。
处理器134控制存储器系统110的全部操作。特别地,处理器134响应于来自主机102的写入请求或读取请求来控制存储器装置150的编程操作或读取操作。处理器134驱动称为闪存转换层(FTL)的固件,以控制存储器系统110的总体操作。处理器134可以通过微处理器或中央处理单元(CPU)实现。
例如,控制器130在存储器装置150中执行从主机102请求的操作。即,控制器130通过由微处理器或中央处理单元(CPU)体现的处理器134利用存储器装置150来执行与从主机102接收到的命令相对应的命令操作。控制器130可以将前台操作作为与从主机102接收到的命令相对应的命令操作来执行。例如,控制器130可以执行与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除命令相对应的擦除操作或者与作为设置命令的设置参数命令或设置特征命令相对应的参数设置操作。
控制器130也可以通过由微处理器或中央处理单元(CPU)体现的处理器134来执行针对存储器装置150的后台操作。针对存储器装置150的后台操作可以包括将存储器装置150的存储器块152、154和156之中的存储器块中存储的数据复制到另一存储器块的操作,例如,垃圾收集(GC)操作。通过这种方式,由于处理器134可以将垃圾收集操作作为针对存储器装置150的后台操作来控制,所以垃圾收集控制电路196可以被包括在处理器134中。后台操作可以包括在存储器装置150的存储器块152、154和156中的一个或多个之间调换数据的操作,例如,损耗均衡(WL)操作。后台操作可以包括将从控制器130取回的映射数据存储在存储器装置150的存储器块152、154和156中的操作,例如,映射刷新操作。后台操作可以包括存储器装置150的不良管理操作,该不良管理操作可以包括检查和处理存储器装置150中的多个存储器块152、154和156之中的不良块。
在控制器130的处理器134内,可以包括用于执行针对存储器装置150的不良管理的部件。这种部件执行检查多个存储器块152、154和156之中的不良块并且将所标识的不良块处理为不良的不良块管理。通过不良块管理,将已经发生编程故障的存储器块作为不良存储器块处理,并且将编程故障的数据写入到新的存储器块中。由于存储器装置150(例如,NAND闪存存储器)的特性,在执行数据写入(或编程)时可能发生编程故障的情况下,可以执行不良管理。
图2是图示了根据一个实施例的存储器系统的(例如,图1所示的)控制器的示意图。
参照图2,控制器130与主机102和存储器装置150协作。控制器130可以包括主机接口(I/F)132、闪存转换层(FTL)40、存储器接口142和存储器144。
主机接口132处理从主机102接收到的命令和数据。作为示例而非限制,主机接口132可以包括缓冲器管理器52、事件队列54和命令队列56。命令队列56可以顺序地存储命令和数据,并且按照它们存储在命令队列56中的顺序来将命令和数据输出到缓冲器管理器52。缓冲器管理器52可以对从命令队列56递送的命令和数据进行分类、管理或调整。事件队列54可以顺序地传输事件,以处理从缓冲器管理器52接收到的命令和数据。
存储器系统110可以接收具有相同特性的多个命令或数据,或者在混合或混杂之后具有不同特性的多个命令和数据。例如,存储器系统110接收多个命令以读取数据(即,读取命令),或者可替代地,接收用于读取数据(即,读取命令)和编程/写入数据(即,写入命令)的多个命令。主机接口132可以将从主机102接收到的命令和数据顺序地存储到命令队列56。此后,主机接口132可以根据命令和数据的特性来估计或预测控制器130将执行什么种类的操作。主机接口132可以至少基于命令和数据的特性来确定其处理顺序和优先级。根据命令和数据的特性,缓冲器管理器52可以确定是否将命令和数据存储在存储器144中或者是否将命令和数据递送到闪存转换层40中。事件队列54接收从缓冲器管理器52输入的事件,存储器系统110或控制器130将响应于命令和数据在内部执行和处理这些事件,以便按照接收到的顺序将事件递送到闪存转换层40中。
根据一个实施例,闪存转换层40可以包括状态管理器42、映射管理器(MM)44、主机请求管理器(HRM)46和块管理器48。主机请求管理器46可以管理从事件队列54输入的事件。映射管理器44可以处理或控制映射数据。状态管理器42可以执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可以对存储器装置150中的块执行命令或指令。
作为示例而非限制,主机请求管理器46可以使用映射管理器44和块管理器48来根据从主机接口132递送的读取和编程命令以及事件应对或处理请求。主机请求管理器46可以将查询请求发送到映射数据管理器44,以计算出与和事件一起输入的逻辑地址相对应的物理地址。主机请求管理器46可以将具有物理地址的读取请求传输到存储器接口142,以处理读取请求(或者应对事件)。另一方面,主机请求管理器46可以将编程请求(或写入请求)传输到块管理器48,以将数据编程到存储器装置150中的特定空闲页面(即,没有数据的页面)。进一步地,主机请求管理器46可以将与编程请求相对应的映射更新请求传输到映射管理器44,以更新与映射信息中的编程数据相关的项目。映射信息可以指示逻辑地址与物理地址之间的映射关系。
块管理器48可以将从主机请求管理器46、映射数据管理器44和/或状态管理器42递送的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强存储器系统110的编程或写入性能,块管理器48可以收集编程请求,并且将对多平面和单次编程操作的闪存编程请求发送到存储器接口142。块管理器48可以将若干闪存编程请求发送到存储器接口142以增强或最大化多通道和多方向闪存控制器的并行处理。
另一方面,块管理器48可以根据有效页面数来管理存储器装置150的块。进一步地,当需要空闲块时,块管理器48可以选择和擦除没有有效页面的块,并且当确定需要垃圾收集时,选择包括最少数目的有效页面的块。状态管理器42可以执行垃圾收集以将有效数据移动到空块,并且擦除用于包含有效数据的块,使得块管理器48可以具有足够的空闲块(即,没有数据的空块)。如果块管理器48将关于要擦除的块的信息提供给状态管理器42,则状态管理器42可以检查要擦除的块的所有闪存页面,以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可以标识存储在每个页面的带外(OOB)区域中的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与映射到从查询请求获得的逻辑地址的物理地址相比较。状态管理器42将编程请求发送到每个有效页面的块管理器48。当编程操作完成时,可以通过映射管理器44的更新来更新映射表。
映射管理器44可以管理逻辑到物理映射表。映射管理器44可以处理由主机请求管理器46或状态管理器42生成的请求,诸如,查询和更新。映射管理器44可以将整个映射表存储在存储器装置150中,并且根据存储器144的存储容量来缓存映射条目。当在处理查询或更新请求时发生映射缓存丢失时,映射管理器44可以将读取请求发送到存储器接口142以加载存储在存储器装置150中的相关映射表。当不洁缓存块的数目超过某个阈值时,映射管理器44可以将编程请求传输到块管理器48,从而制造干净的缓存块以及可以将不洁映射表存储在存储器装置150中。
另一方面,当执行垃圾收集时,状态管理器42将(多个)有效页面复制到空闲块中,并且主机请求管理器46可以针对页面的相同逻辑地址对最新版本的数据进行编程,并且当前发出更新请求。当状态管理器42在(多个)有效页面的复制未正常完成的状态下请求映射更新时,映射管理器44可以不执行映射更新(即,映射表的更新)。这是因为,如果状态管理器42请求映射更新并且随后完成有效页面复制,则会利用旧的物理信息来发出映射请求。仅在最新的映射表仍然指向旧的物理地址的情况下,映射管理器44才可以执行映射更新以确保准确性。
根据一个实施例,图2的块管理器48、映射管理器44和状态管理器42中的至少一个可以包括随后在图3中描述的垃圾收集控制电路196。
存储器装置150可以包括多个存储器块。多个存储器块中的每个存储器块可以根据可以在该存储器块的一个存储器单元中存储或表示的比特数,被实施为各种类型中的任一种,诸如,单层单元(SLC)存储器块和多层单元(MLC)存储器块。SLC存储器块包括由存储器单元实施的多个页面,每个页面存储一位数据。SLC存储器块可以具有数据输入和输出(I/O)操作的高性能以及高耐久性。MLC存储器块包括由存储器单元实施的多个页面,每个页面存储多位数据(例如,两位或更多)。与SLC存储器块相比,MLC存储器块在相同空间中可能具有更大的存储容量。MLC存储器块可以在存储容量方面高度集成。在一个实施例中,存储器装置150可以利用MLC存储器块实施,诸如,MLC存储器块、三层单元(TLC)存储器块、四层单元(QLC)存储器块及其组合。MLC存储器块可以包括由存储器单元实施的多个页面,每个页面能够存储2位数据。三层单元存储器块可以包括由存储器单元实施的多个页面,每个页面能够存储3位数据。四层单元存储器块可以包括由存储器单元实施的多个页面,每个页面能够存储4位数据。在另一实施例中,存储器装置150可以利用包括由存储器单元实施的多个页面的块来实施,每个页面能够存储5位数据或更多。
在本公开的实施例中,存储器装置150被体现为非易失性存储器,例如,闪存存储器,诸如,NAND闪存存储器和NOR闪存存储器。然而,存储器装置150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)和自旋转移力矩磁性随机存取存储器(STT-RAM或STT-MRAM)中的至少一个实施。
图3是图示了根据一个实施例的在存储器系统中使用的垃圾收集(GC)的示例的示意图。
参照图3,在图2所示的包括控制器130和存储器装置150的存储器系统110的上下文中图示了垃圾收集的示例。在没有外部命令或指令(例如,没有来自图2的主机102的命令)的情况下,可以由存储器系统110执行自动垃圾收集。可以响应于外部命令或指令来执行手动垃圾收集。
控制器130可以从存储器装置150的多个数据块40_1读取用户数据,并且将用户数据存储在控制器130的存储器144中。控制器130可以将用户数据编程在至少一个空闲块40_2中。多个数据块40_1可以包括无法再利用数据编程的封闭块。根据一个实施例,存储器144可以设置在控制器130外并且与控制器130耦合。
具体地,控制器130的垃圾收集控制电路196可以选择多个数据块40_1中的至少一个作为目标块。垃圾收集控制电路196可以搜索目标块,并且从目标块提取有效数据。垃圾收集控制电路196可以将提取到的有效数据复制到空闲块40_2,该空闲块40_2被擦除并且准备利用数据对其进行编程。在目标块中确定不再有效的数据可以被丢弃,并且可以不复制到空闲块40_2。在将先前存储在目标块中的所有有效数据复制到空闲块40_2之后,控制器130认为目标块40_1不再具有有效数据并且可以擦除其中的任何数据。因此,当需要利用新数据编程的任何块时,可以擦除存储在目标块中的所有数据并且使用目标块来存储新数据。
根据一个实施例,控制器130可以使用存储器144来暂时地存储从目标块选择的有效数据,直到将有效数据编程到空闲块40_2中。
针对垃圾收集,控制器130应该区分目标块中的有效数据与无效数据。关于与每个数据块40_1相对应的有效页面计数(VPC)的信息可以指示每个数据块40_1中的有效数据或有效页面的数量,但是可能未示出每个数据块40_1中的哪些数据或哪个页面是有效或无效的。因此,控制器130可能需要利用有效页面数和包括映射数据的操作信息来确定或确认哪些数据或哪个页面是有效或无效的。在一个实施例中,当容易地区分出要存储在空闲块40_2中的有效数据以用于垃圾收集时,可以减少垃圾收集所需的资源(例如,时间和功率)。
存储器装置150中的多个块40_1和40_2可以存储大量数据。根据一个实施例,控制器130可以将每个块分成多个单位块,以便更有效地控制和管理多个块40_1和40_2。当单个块被分成多个单位块时,控制器130可以为每个单位块生成映射数据(例如,逻辑到物理(L2P)表或物理到逻辑(P2L)表)。
根据一个实施例,各种数目的单位块可以被包括在单个块中。作为示例而非限制,被包括在单个块中的单位块的数目可以至少取决于存储器装置150的结构、映射数据的大小或映射数据的位置。在一个实施例中,存储器装置150中的每个块可以被编程有单页单位或多页单位的数据。此时,可以存储在每个页面中的数据的大小可以根据每个块中的单位单元或单元字符串的结构而变化。当以位图格式生成映射数据时,可以将与映射数据的大小的一倍或多倍相对应的区域确定为单位块的大小。
可以在数据块40_1中从第一页面到最末页面顺序地对数据进行编程。当在块的最末页面上对数据进行编程时,该块从可以对新数据进行编程的开放状态改变为无法再对新数据进行编程的封闭状态。根据一个实施例,当数据块40_1之中的特定块变为封闭状态时,垃圾收集控制电路196可以将与存储在对应块的单位块中的数据相关的映射数据的数目与有效页面数相比较,以确定存储在对应块中的数据的有效性。
具体地,当存储器装置150的数据块40_1处于封闭状态时,控制器130可以将多个单位块的有效页面数与映射数据的和相比较。如果特定块的有效页面数与映射数据的和彼此不匹配,则可以推测该特定块包括一些无效或不必要的映射数据。控制器130可以检查与存储在特定块中的数据相对应的映射数据是否是有效的。当存在不再有效的映射数据时,控制器130可以删除无效的映射数据或者使其无效,以更新映射数据。
根据一个实施例,垃圾收集控制电路196可以基于对应块中的多个单位块的映射数据的和除以对应块中的页面数的比率,来确定是否指定用于垃圾收集的目标块。在各种实施例中,块中的页面数可以是由存储器装置150的电路设计和制造工序确定的固定值。页面数可以表示可以存储在块中的有效数据的最大数量。当将特定块分成多个单位块并且为每个单位块生成映射数据时,对应块中的多个单位块的映射数据的和可以指示对应块中的有效数据的数量。因此,垃圾收集控制电路196可以基于一个块中的多个单位块的映射数据的和除以对应块中的页面数的比率,来识别出哪个块比另一个块存储更多的有效数据。在与块有关的比率较低时,所以垃圾收集控制电路196可以优先选择具有较低比率的块作为用于垃圾收集的目标块。另外,垃圾收集控制电路196可以根据该比率是否在设置范围内或者低于阈值来确定是否选择块作为用于垃圾收集的目标块。
在上述实施例中,控制器130可以在用于垃圾收集的多个数据块40_1之中的目标块中搜索有效数据。此时,控制器30不在存储器装置150中的每个数据块40_1中搜索有效数据,而是可能仅在单位块的数目在设置范围内的数据块40_1中搜索有效数据。在这种情况下,可以减少在垃圾收集期间搜索要存储在空闲块40_2中的有效数据所需的资源(例如,时间和功率)。
有效页面的搜索可能与垃圾收集的子操作相关。搜索有效页面和搜索目标块可能是管理存储器系统中的垃圾收集所消耗的时间的关键因素。用于执行垃圾收集的方法和设备将支持搜索有效页面和搜索目标块。在本文中,垃圾收集可以包括用于搜索动态分配的存储区域不再可用或者不必要地占用的区域(例如,块)并且擦除存储在对应区域中的数据以准备对新数据进行编程的操作。擦除包含在非易失性存储器装置的特定区域中的数据所需的时间可能会根据非易失性存储器装置的单元结构或单元特性而变化。另一方面,在非易失性存储器装置中搜索要擦除的区域所需的时间可能会根据用于根据各种实施例控制非易失性存储器装置的方法和设备而变化。
图4是图示了根据一个实施例的在存储器系统中使用的超级存储器块的概念的示意图。
参照图4,存储器装置150可以包括多个管芯,该多个管芯可以包括多个平面,该多个平面可以包括多个存储器块。
存储器装置150包括多个存储器块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N和BLOCK110至BLOCK11N。
存储器装置150包括能够通过第零通道CH0输入和输出数据的第零存储器管芯DIE0以及能够通过第一通道CH1输入和输出数据的第一存储器管芯DIE1。第零通道CH0和第一通道CH1可以以交叉存取方案输入和输出数据。
第零存储器管芯DIE0包括分别与多个路径WAY0和WAY1相对应的多个平面PLANE00和PLANE01,该多个路径WAY0和WAY1能够通过共享第零通道CH0来以交叉存取方案输入和输出数据。
第一存储器管芯DIE1包括分别与多个路径WAY2和WAY3相对应的多个平面PLANE10和PLANE11,该多个路径WAY2和WAY3能够通过共享第一通道CH1来以交叉存取方案输入和输出数据。
在多个存储器块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N和BLOCK110至BLOCK11N中的所有存储器块之中,第零存储器管芯DIE0的第一平面PLANE00包括设置或预定数目的存储器块BLOCK000至BLOCK00N。
在多个存储器块中的所有存储器块之中,第零存储器管芯DIE0的第二平面PLANE01包括设置或预定数目的存储器块BLOCK010至BLOCK01N。
在多个存储器块中的所有存储器块之中,第一存储器管芯DIE1的第一平面PLANE10包括设置或预定数目的存储器块BLOCK100至BLOCK10N。
在多个存储器块中的所有存储器块之中,第一存储器管芯DIE1的第二平面PLANE11包括设置或预定数目的存储器块BLOCK110至BLOCK11N。
通过这种方式,存储器装置150的多个存储器块可以根据物理位置划分,使得相同平面中的块使用相同路径,并且相同管芯中的块使用相同通道。
尽管在图4中图示了存储器装置150包括两个管芯,每个管芯包括两个平面,但是这仅是示例。基于设计和操作考虑,存储器装置150中的存储器管芯的数目可以是任何合适的数目,并且每个存储器管芯中的平面数目也可以不同于图4所示的示例。当然,根据设计和操作考虑,每个平面中的存储器块的设置或预定数目也可以不同。
此外,与根据物理位置划分存储器块不同,在另一实施例中,控制器130可以使用根据存储器块的同时选择和操作来划分存储器块的方案。即,控制器130可以通过对能够同时选择的存储器块进行分组并且从而将多个存储器块分成超级存储器块来管理多个存储器块。
根据设计考虑,由控制器130分组为超级存储器块的多个存储器块可以根据各种方案来划分。例如,本文将描述三种方案。
根据第一方案,例如,控制器130可以通过将第零存储器管芯DIE0的第一平面PLANE000中的一个存储器块BLOCK000和第零存储器管芯DIE0的第二平面PLANE01中的一个存储器块BLOCK010分组在一起来生成和管理存储器装置150中的一个超级存储器块A1。当将第一方案应用于第一存储器管芯DIE1时,控制器130可以通过将第一平面PLANE10中的一个存储器块BLOCK100和第二平面PLANE11中的一个存储器块BLOCK110分组在一起来生成和管理一个超级存储器块A2。
根据第二方案,控制器130可以生成和管理一个超级存储器块B1,以包括第零存储器管芯DIE0的第一平面PLANE00中的存储器块BLOCK002和第一存储器管芯DIE1的第一平面PLANE10中的一个存储器块BLOCK102。当再次应用第二方案时,控制器130可以通过将第零存储器管芯DIE0的第二平面PLANE01中的一个存储器块BLOCK012和第一存储器管芯DIE1的第二平面PLANE11中的一个存储器块BLOCK112分组在一起来生成和管理一个超级存储器块B2。因此,尽管第一方案将来自相同管芯的两个不同平面的两个存储器块分组为超级块,但是第二方案将来自每个不同管芯的一个块分组为超级块。可以扩展任一方案的方法以应用于多于两个管芯和管芯中的多于两个平面的布置。
根据第三方案,控制器130可以通过将第零存储器管芯DIE0的第一平面PLANE00中的一个存储器块BLOCK001、第零存储器管芯DIE0的第二平面PLANE01中的一个存储器块BLOCK011、第一存储器管芯DIE1的第一平面PLANE10中的一个存储器块BLOCK101以及被包括在第一存储器管芯DIE1的第二平面PLANE11中的一个存储器块BLOCK111分组在一起,来生成和管理一个超级存储器块C。因此,根据第三方案,将来自每个管芯中的每个平面的两个块分组在一起以形成超级块。也可以扩展第三方案以应用于更复杂的管芯/平面布置,如下面进一步描述的。
可以通过交叉存取方案基本上同时地选择能够通过被包括在相同超级存储器块中而同时选择的存储器块。例如,交叉存取方案可以包括通道交叉存取方案、存储器管芯交叉存取方案、存储器芯片交叉存取方案或路径交叉存取方案。
<第一实施例>
图5A和5B是图示了根据一个实施例的针对存储器系统中的超级存储器块的垃圾收集的示意图。
在图5A和5B的实施例中可以看到,控制器130使用上述的第三方案来将存储器块分成超级存储器块。
参照图5A和5B,控制器130通过在存储器装置150的四个平面PLANE<00、01、10、11>中的每一个中选择一个存储器块来管理超级存储器块SUPER BLOCK<0>和SUPER BLOCK<1>中的每一个。因此,四个存储器块被包括在超级存储器块SUPER BLOCK<0>和SUPER BLOCK<1>中的每一个中。
例如,参照图4和5A,通过将第一存储器块BLOCK000、第一存储器块BLOCK010、第一存储器块BLOCK100和第一存储器块BLOCK110分组在一起来定义(或生成)第一超级存储器块SUPER BLOCK<0>。第一存储器块BLOCK000在第一存储器管芯DIE0的第一平面PLANE00中。第一存储器块BLOCK010在第一存储器管芯DIE0的第二平面PLANE01中。第一存储器块BLOCK100在第二存储器管芯DIE1的第一平面PLANE10中。第一存储器块BLOCK110在第二存储器管芯DIE1的第二平面PLANE11中。
参照图4和5B,通过将第二存储器块BLOCK001、第二存储器块BLOCK011、第二存储器块BLOCK101和第二存储器块BLOCK111分组在一起来定义(或生成)第二超级存储器块SUPER BLOCK<1>。第二存储器块BLOCK001在第一存储器管芯DIE0的第一平面PLANE00中。第二存储器块BLOCK011在第一存储器管芯DIE0的第二平面PLANE01中。第二存储器块BLOCK101在第二存储器管芯DIE1的第一平面PLANE10中。第二存储器块BLOCK111在第二存储器管芯DIE1的第二平面PLANE11中。
如图5A和5B所示,超级存储器块SUPER BLOCK<0、1>中的每一个可以通过并行选择被包括在其中的四个存储器块BLOCK<000、010、100、110>或BLOCK<001、011、101、111>来输入和输出页面单位的数据。
在这方面,可以假设在并行选择被包括在其中的四个存储器块BLOCK<000、010、100、110>或BLOCK<001、011、101、111>时,超级存储器块SUPER BLOCK<0、1>中的每一个仅能够并行读取相同位置的页面。
在图5A中,第一超级存储器块SUPER BLOCK<0>并行选择四个存储器块BLOCK<000、010、100、110>意味着在四个存储器块BLOCK<000、010、100、110>中同时选择相同位置的页面。也就是说,第一超级存储器块SUPER BLOCK<0>同时选择四个相应的存储器块BLOCK<000、010、100、110>的第一页面P<0>或第二页面P<1>。这也意味着第一超级存储器块SUPERBLOCK<0>无法同时选择不同位置处的页面,诸如,第一和第二存储器块BLOCK<000、010>中的第一页面P<0>以及第三和第四存储器块BLOCK<100、110>中的第二页面P<1>。
在图5B中,第二超级存储器块SUPER BLOCK<1>并行选择四个存储器块BLOCK<001、011、101、111>意味着在四个存储器块BLOCK<001、011、101、111>中同时选择相同位置的页面。也就是说,第二超级存储器块SUPER BLOCK<1>同时选择四个相应的存储器块BLOCK<001、011、101、111>的第三页面P<2>或第四页面P<3>。这也意味着第二超级存储器块SUPERBLOCK<1>无法同时选择不同位置的页面,诸如,第一和第二存储器块BLOCK<001、011>中的第三页面P<2>以及第三和第四存储器块BLOCK<101、111>中的第四页面P<3>。
在图5A和5B中,四个存储器块BLOCK<000、010、100、110>和四个存储器块BLOCK<001、011、101、111>中的每一个中的多个页面中的每一个页面可以是有效页面(VALIDPAGE)或无效页面(INVALID PAGE)。特定页面是否有效与任何其它页面是否有效无关。
例如,在图5A的第一超级存储器块SUPER BLOCK<0>中,仅第一至第三存储器块BLOCK<000、010、100>的第一页面P<0>可能是有效页面(如通过粗体框示出的),并且所有其它页面可能是无效页面(如通过非粗体框示出的)。
在图5B的第二超级存储器块SUPER BLOCK<1>中,仅第一存储器块BLOCK001的第一页面P<0>、第二存储器块BLOCK011的第三页面P<2>和第四存储器块BLOCK111的第二页面P<1>可能是有效页面,并且所有其它页面可能是无效页面。
图5A的第一超级存储器块SUPER BLOCK<0>和图5B的第二超级存储器块SUPERBLOCK<1>中的每一个包括三个有效页面。
在图5A和5B中,可以分别选择超级存储器块SUPER BLOCK<0、1>的四个存储器块BLOCK<000、010、100、110>和四个存储器块BLOCK<001、011、101、111>作为用于垃圾收集的牺牲块。
当选择图5A的第一超级存储器块SUPER BLOCK<0>作为用于垃圾收集的牺牲块时,从四个存储器块BLOCK<000、010、100、110>的三个有效页面提取数据所需的时间可以被定义为第一需求时间TOTAL<0>。当选择图5B的第二超级存储器块SUPER BLOCK<1>作为用于垃圾收集的牺牲块时,从四个存储器块BLOCK<001、011、101、111>的三个有效页面提取数据所需的时间可以被定义为第二需求时间TOTAL<1>。
由于下面陈述的原因,第一需求时间TOTAL<0>和第二需求时间TOTAL<1>可能基本上不同。
为了从四个存储器块BLOCK<000、010、100、110>的三个有效页面提取数据,通过选择图5A的第一超级存储器块SUPER BLOCK<0>作为牺牲块,可以确定三个有效页面的位置。
因此,在图5A的第一超级存储器块SUPER BLOCK<0>中,仅第一至第三存储器块BLOCK<000、010、100>的第一页面P<0>是有效页面,并且所有其它页面是无效页面。
根据图5A的确定结果,第一超级存储器块SUPER BLOCK<0>的三个有效页面在其相应的块中具有相同位置。利用该布置,从三个有效页面提取有效数据仅需要一次读取P<0>_READ。
因此,控制器130在第零时间t0时对四个存储器块BLOCK<000、010、100、110>的第一页面P<0>执行一次读取P<0>_READ。通过该读取P<0>_READ,分别将数据B000P0_VD、B010P0_VD、B100P0_VD和B110P0_IVD的四个页面缓存在四个页面缓冲器PB<000、010、100、110>中。在第一时间t1时,控制器130仅在页面缓冲器PB<000、010、100、110>中缓存的数据B000P0_VD、B010P0_VD、B100P0_VD和B110P0_IVD的四个页面之中选择具有有效数据B000P0_VD、B010P0_VD和B100P0_VD的三个页面,并且将所选的有效数据的三个页面传输到存储器144(数据传送)。在第一时间t1时,控制器130不将第零时间t0时的无效数据B110P0_IVD的一个页面传输到存储器144。相反,控制器130丢弃无效数据。
通过这种方式,控制器130可以通过一次读取P<0>_READ来提取第一超级存储器块SUPER BLOCK<0>的三个有效页面中存储的所有有效数据B000P0_VD、B010P0_VD和B100P0_VD。
在本文中,执行一次读取P<0>_READ所需的时间可以表示为读取时间tREAD。此外,将一个页面缓冲器PB<000>、PB<010>或PB<100>中存储的数据B000P0_VD、B010P0_VD或B100P0_VD的一个页面传输到存储器144所需的时间可以表示为传输时间tTX。因此,通过选择第一超级存储器块SUPER BLOCK<0>提取数据所需的第一需求时间TOTAL<0>可以是“{(tREAD*1)+(tTX*3)}”,其中,tREAD是读取时间并且tTX是传输时间。例如,当读取时间tREAD是50us并且传输时间tTX是10us时,第一需求时间TOTAL<0>是80us。
为了从四个存储器块BLOCK<001、011、101、111>的三个有效页面提取数据,通过选择图5B的第二超级存储器块SUPER BLOCK<1>作为牺牲块,可以确定三个有效页面的位置。
因此,在第二超级存储器块SUPER BLOCK<1>中,仅第一存储器块BLOCK001的第一页面P<0>、第二存储器块BLOCK011的第三页面P<2>和第四存储器块BLOCK111的第二页面P<1>是有效页面,并且所有其它页面是无效页面。
根据确定结果,第二超级存储器块SUPER BLOCK<1>的三个有效页面在其相应的块中不位于相同位置处。因此,为了从三个有效页面提取有效数据,需要执行三次读取P<0>_READ、P<1>_READ和P<2>_READ。
因此,控制器130在第零时间t0时对四个存储器块BLOCK<001、011、101、111>的第一页面P<0>执行第一读取P<0>_READ。通过第一读取P<0>_READ,分别将数据B001P0_VD、B011P0_IVD、B101P0_IVD和B111P0_IVD的四个页面缓存在四个页面缓冲器PB<001、011、101、111>中。在第一时间t1时,控制器130仅在页面缓冲器PB<001、011、101、111>中缓存的数据B001P0_VD、B011P0_IVD、B101P0_IVD和B111P0_IVD的四个页面之中选择具有有效数据B001P0_VD的一个页面,并且将有效数据的所选的一个页面传输到被包括在其中的存储器144。此时,控制器130不将无效数据B011P0_IVD、B101P0_IVD和B111P0_IVD的三个页面传输到存储器144。相反,控制器130丢弃无效数据的三个页面。
通过这种方式,控制器130可以通过第一读取P<0>_READ来提取第二超级存储器块SUPER BLOCK<1>的BLOCK001_P<0>中存储的有效数据B001P0_VD的一个页面。
接下来,控制器130在第二时间t2时对四个存储器块BLOCK<001、011、101、111>的第二页面P<1>执行第二读取P<1>_READ。通过第二读取P<1>_READ,将数据B001P1_IVD、B011P1_IVD、B101P1_IVD和B111P1_VD的四个页面缓存在四个页面缓冲器PB<001、011、101、111>中。在第三时间t3时,控制器130仅在页面缓冲器PB<001、011、101、111>中缓存的数据B001P1_IVD、B011P1_IVD、B101P1_IVD和B111P1_VD的四个页面之中选择有效数据B111P1_VD的一个页面,并且将有效数据的所选的页面传输到存储器144。此时,控制器130不将无效数据B001P1_IVD、B011P1_IVD和B101P1_IVD的三个页面传输到存储器144。相反,控制器130丢弃无效数据的三个页面。
通过这种方式,控制器130可以通过第二读取P<1>_READ来提取第二超级存储器块SUPER BLOCK<1>的一个有效页面BLOCK111_P<1>中存储的有效数据B111P1_VD的一个页面。
随后,控制器130在第四时间t4时对四个存储器块BLOCK<001、011、101、111>的第三页面P<2>执行第三读取P<2>_READ。通过第三读取P<2>_READ,将数据B001P2_IVD、B011P2_VD、B101P2_IVD和B111P2_IVD的四个页面缓存在四个页面缓冲器PB<001、011、101、111>中。在第五时间t5时,控制器130仅在页面缓冲器PB<001、011、101、111>中缓存的四个页面数据B001P2_IVD、B011P2_VD、B101P2_IVD和B111P2_IVD之中选择有效数据B011P2_VD的一个页面,并且将有效数据的所选的页面传输到存储器144。此时,控制器130不将无效数据B001P2_IVD、B101P2_IVD和B111P2_IVD的三个页面传输到存储器144。相反,控制器130丢弃无效数据的三个页面。
通过这种方式,控制器130可以通过第三读取P<2>_READ来提取第二超级存储器块SUPER BLOCK<1>的有效页面BLOCK011_P<2>中存储的有效数据B011P2_VD。
如上所述,为了提取第二超级存储器块SUPER BLOCK<1>的三个有效页面BLOCK001_P<0>、BLOCK011_P<2>和BLOCK111_P<1>中存储的所有有效数据B001P0_VD、B011P2_VD和B111P1_VD,控制器130可以确定需要三次读取P<0>_READ、P<1>_READ和P<2>_READ。
在本文中,执行一次读取P<0>_READ、P<1>_READ或P<2>_READ所需的时间可以表示为读取时间tREAD。此外,将一个页面缓冲器PB<001>、PB<011>或PB<111>中存储的数据B001P0_VD、B011P2_VD或B111P1_VD的一个页面传输到存储器144所需的时间可以表示为传输时间tTX。因此,通过选择第二超级存储器块SUPER BLOCK<1>提取数据所需的第二需求时间TOTAL<1>可以是“{(tREAD*3)+(tTX*3)}”,其中,tREAD是读取时间并且tTX是传输时间。例如,当读取时间tREAD是50us并且传输时间tTX是10us时,第二需求时间TOTAL<1>将是180us。
总之,由于图5A的第一超级存储器块SUPER BLOCK<0>和图5B的第二超级存储器块SUPER BLOCK<1>中的每一个包括三个有效页面,所以它们在基于有效页面数选择用于垃圾收集的牺牲块的方案中具有相同条件。
然而,在选择图5A和5B的超级存储器块SUPER BLOCK<0、1>中的每一个作为用于垃圾收集的牺牲块的情况下,从图5A的第一超级存储器块SUPER BLOCK<0>提取数据所需的第一需求时间TOTAL<0>是80us,而从图5B的第二超级存储器块SUPER BLOCK<1>提取数据所需的第二需求时间TOTAL<1>是180us,该第二需求时间是第一需求时间TOTAL<0>的两倍多。
因此,为了有效地执行垃圾收集,控制器130可以在超级存储器块SUPER BLOCK<0、1>之中选择第一超级存储器块SUPER BLOCK<0>作为牺牲块。
图6是图示了根据一个实施例的存储器系统的示意图。图6的操作可以与图5A和5B的任何方案相对应。
参照图6,存储器系统110包括控制器130和存储器装置150。
控制器130可以包括垃圾收集控制电路196和存储器144。由于上面参照图3描述了垃圾收集控制电路196的操作,所以此处省略其进一步的描述。
存储器装置150包括多个存储器块。控制器130根据设置条件对能够在存储器装置150的多个存储器块之中并行读取的N个存储器块进行分组,从而管理多个超级存储器块SUPER BLOCK<0:M>,其中,N和M分别是2或更大的自然数,并且在图5A和5B中假设N是4。存储器装置150可以包括图5A和5B的两个超级存储器块SUPER BLOCK<0、1>以及处于空闲状态的一个超级存储器块SUPER BLOCK<2>。上述配置是示例性的;在其它实施例中,任何合适数目的超级存储器块可以被包括在存储器装置150中。
控制器130通过以超级块为单位预测性地计算从存储器装置150的存储器块提取用于垃圾收集的有效数据所需的需求时间来生成预测需求时间PRE_TOTAL<0、1>。进一步地,控制器130通过垃圾收集控制电路196在预测需求时间表600中管理所生成的预测需求时间PRE_TOTAL<0、1>。
通过垃圾收集控制电路196,控制器130以超级块为单位对存储器装置150的相应存储器块的有效页面数VPC<0:1>进行计数。进一步地,控制器130在有效页面计数表610中管理计数得到的有效页面VPC<0:1>。
在各种实施例中,控制器130通过FIRST_TIME<0:1>=(VPC<0:1>-DP_CNT<0:1>)*PRE_tREAD的等式来计算第一时间FIRST_TIME<0:1>。换言之,控制器130从VPC<0:1>减去DP_CNT<0:1>。DP_CNT<0:1>是超级存储器块SUPER BLOCK<0>的四个存储器块BLOCK<000、010、100、110>和超级存储器块SUPER BLOCK<1>的四个存储器块BLOCK<001、011、101、111>中具有相同位置的有效页面计数。VPC<0:1>分别是多个超级存储器块SUPER BLOCK<0、1>的有效页面计数。然后,控制器130将减法结果乘以预测读取时间PRE_tREAD。
此外,控制器130通过SECOND_TIME<0:1>=VPC<0:1>*PRE_tTX的等式来计算第二时间SECOND_TIME<0:1>。换言之,控制器130将VPC<0:1>乘以预测传输时间PRE_tTX。VPC<0:1>是多个超级存储器块SUPER BLOCK<0、1>的有效页面的计数。
控制器130生成多个超级存储器块SUPER BLOCK<0、1>中的每一个的预测需求时间PRE_TOTAL<0、1>。换言之,控制器130通过TOTAL<0:1>=FIRST_TIME<0:1>+SECOND_TIME<0:1>的等式来计算第一时间FIRST_TIME<0:1>和第二时间SECOND_TIME<0:1>的和。
参照图5A和图6,在第一超级存储器块SUPER BLOCK<0>中,仅第一至第三存储器块BLOCK<000、010、100>的第一页面P<0>是有效页面,并且所有其它页面是无效页面。
因此,控制器130可以确定第一超级存储器块SUPER BLOCK<0>中的有效页面的第一有效页面计数VPC<0>是3。
此外,控制器130可以确定,由于第一超级存储器块SUPER BLOCK<0>中的所有三个有效页面是第一页面P<0>,所以位置相同的有效页面的第一计数DP_CNT<0>是2。基于第一有效页面BLOCK000/P<0>,第二和第三有效页面BLOCK010/P<0>和BLOCK100/P<0>均具有与第一有效页面BLOCK000/P<0>相同的位置。因此,第一超级存储器块SUPER BLOCK<0>中位置相同的有效页面包括第二和第三有效页面BLOCK010/P<0>和BLOCK100/P<0>,并因此,第一计数DP_CNT<0>是2。
因此,与第一超级存储器块SUPER BLOCK<0>相对应的第一个第一时间FIRST_TIME<0>表示预测读取时间PRE_tREAD,其通过计算{(3–2)*PRE_tREAD}导出。与第一超级存储器块SUPER BLOCK<0>相对应的第一个第二时间SECOND_TIME<0>是预测传输时间PRE_tTX的三倍,其通过计算{3*PRE_tTX}导出。因此,通过对第一个第一时间FIRST_TIME<0>和第一个第二时间SECOND_TIME<0>求和来获得与第一超级存储器块SUPER BLOCK<0>相对应的第一预测需求时间PRE_TOTAL<0>。
例如,当预测读取时间PRE_tREAD是50us并且预测传输时间PRE_tTX是10us时,与第一超级存储器块SUPER BLOCK<0>相对应的第一预测需求时间PRE_TOTAL<0>是80us。换言之,通过对50us的第一个第一时间FIRST_TIME<0>和30us的第一个第二时间SECOND_TIME<0>求和来计算第一预测需求时间PRE_TOTAL<0>。
参照图5B和图6,在第二超级存储器块SUPER BLOCK<1>中,仅第一存储器块BLOCK001的第一页面P<0>、第二存储器块BLOCK011的第三页面P<2>和第四存储器块BLOCK111的第二页面P<1>是有效页面,并且所有其它页面是无效页面。
因此,控制器130可以确定第二超级存储器块SUPER BLOCK<1>中的有效页面的第二有效页面计数VPC<1>是3。
此外,控制器130可以确定,由于第二超级存储器块SUPER BLOCK<1>中的三个有效页面的位置彼此不同,所以位置相同的有效页面的第二计数DP_CNT<1>是0。基于块BLOCK001的第一有效页面P<0>BLOCK001/P<0>,第二有效页面BLOCK011/P<2>和第三有效页面BLOCK111/P<1>均具有与第一有效页面BLOCK001/P<0>不同的位置。此外,第二有效页面BLOCK011/P<2>和第三有效页面BLOCK111/P<1>的位置也彼此不同。因此,在第二超级存储器块SUPER BLOCK<1>中不存在位置相同的有效页面,并因此,位置相同的有效页面的第二计数DP_CNT<1>是0。
因此,与第二超级存储器块SUPER BLOCK<1>相对应的第二个第一时间FIRST_TIME<1>是预测读取时间PRE_tREAD的三倍,其通过计算{(3–0)*PRE_tREAD}导出。与第二超级存储器块SUPER BLOCK<1>相对应的第二时间SECOND_TIME<1>是预测传输时间PRE_tTX的三倍,其通过计算{3*PRE_tTX}导出。因此,通过对与预测读取时间PRE_tREAD的三倍相对应的第二个第一时间FIRST_TIME<1>和是预测传输时间PRE_tTX的三倍的第二时间SECOND_TIME<1>求和来获得与第二超级存储器块SUPER BLOCK<1>相对应的第二预测需求时间PRE_TOTAL<1>。
例如,当预测读取时间PRE_tREAD是50us并且预测传输时间PRE_tTX是10us时,与第二超级存储器块SUPER BLOCK<1>相对应的第二预测需求时间PRE_TOTAL<1>是180us。换言之,通过对150us的第二个第一时间FIRST_TIME<1>和30us的第二个第二时间SECOND_TIME<1>求和来计算第二预测需求时间PRE_TOTAL<1>。
在各种实施例中,控制器130可以设置有关于存储器装置150的预测读取时间PRE_tREAD和预测传输时间PRE_tTX的信息。即,设计者可以根据存储器装置150的类型或配置通过测试预先设置存储器装置150的预测读取时间PRE_tREAD和预测传输时间PRE_tTX。
如上所述,控制器130可以在执行垃圾收集之前预测性地计算针对多个超级存储器块SUPER BLOCK<0、1>中的每一个的相应预测需求时间PRE_TOTAL<0、1>。
控制器130可以通过垃圾收集控制电路196,基于针对多个超级存储器块SUPERBLOCK<0、1>的预测需求时间PRE_TOTAL<0、1>,在存储器装置150的多个存储器块之中确定和选择作为用于垃圾收集的牺牲块的存储器块。预测需求时间PRE_TOTAL<0、1>被包括在预测需求时间表600中。
可以根据以下两种方案中的任一种来执行控制器130参考和使用预测需求时间PRE_TOTAL<0、1>的方法;控制器130可以选择要使用的(多种)方案。
根据第一方案,控制器130在分组为超级存储器块的N个存储器块之中选择包括至少一个有效页面的存储器块作为牺牲块,该所选存储器块具有针对多个超级存储器块SUPER BLOCK<0、1>的最低预测需求时间PRE_TOTAL<0、1>。
例如,当针对第一超级存储器块SUPER BLOCK<0>的预测需求时间PRE_TOTAL<0>是80us并且针对第二超级存储器块SUPER BLOCK<1>的预测需求时间PRE_TOTAL<1>是180us时,针对第一超级存储器块SUPER BLOCK<0>的预测需求时间PRE_TOTAL<0>更短。因此,控制器130在分组为第一超级存储器块SUPER BLOCK<0>的四个存储器块BLOCK<000、010、100、110>之中选择均包括至少一个有效页面的三个存储器块BLOCK<000、010、100>作为牺牲块。
通过这种方式,由于选择第一超级存储器块SUPER BLOCK<0>的三个存储器块BLOCK<000、010、100>作为牺牲块,所以在执行垃圾收集的时间段期间,将第一超级存储器块SUPER BLOCK<0>的三个有效页面的数据传送到存储器144,然后存储在作为目标块的第三超级存储器块SUPER BLOCK<2>中。
根据在使用上述第一方案之前使用的第二方案,控制器130检查将有效页面计数VPC<0:1>与设置计数(例如,2)相比较的超级存储器块的数目。通过对相应的超级存储器块SUPER BLOCK<0、1>中的存储器块的有效页面计数求和来获得有效页面计数VPC<0:1>。换言之,当仅一个超级存储器块具有小于或等于设置计数的有效页面计数VPC<0:1>时,控制器130不使用上述的第一方案。相反,当存在多于一个(例如,至少两个)超级存储器块时,控制器130使用上述的第一方案,每个超级存储器块具有小于或等于设置计数的有效页面计数。
在另一示例中,与上面给定的不同,第一超级存储器块SUPER BLOCK<0>的有效页面计数VPC<0>可以是5,并且第二超级存储器块SUPER BLOCK<1>的有效页面计数VPC<1>可以是1,并且控制器130可以将设置计数设置为2。在这种情况下,控制器130可以确定一个超级存储器块(即,第二超级存储器块SUPER BLOCK<1>)具有小于或等于设置计数的有效页面计数VPC<1>。因此,控制器130不使用上述的第一方案。相反,控制器130在具有小于或等于设置计数的有效页面计数VPC<1>的第二超级存储器块SUPER BLOCK<1>中的N个存储器块之中选择包括至少一个有效页面的存储器块,作为牺牲块。
在另一示例中,第一超级存储器块SUPER BLOCK<0>的有效页面计数VPC<0>可以是3,并且第二超级存储器块SUPER BLOCK<1>的有效页面计数VPC<1>可以是3,并且控制器130可以将设置计数设置为2。在这种情况下,控制器130可以确定两个超级存储器块中的两者(即,第一超级存储器块SUPER BLOCK<0>和第二超级存储器块SUPER BLOCK<1>)具有小于或等于设置计数的有效页面计数。因此,控制器130使用上述的第一方案。换言之,控制器130在具有最短预测需求时间PRE_TOTAL<0>的第一超级存储器块SUPER BLOCK<0>中的N个存储器块之中选择均包括至少一个有效页面的存储器块,作为牺牲块。
如上所述,控制器130生成预测需求时间PRE_TOTAL<0、1>,并且在预测需求时间表600中管理所生成的预测需求时间PRE_TOTAL<0、1>。
在这方面,控制器130可以通过使用以下两种方案中的任一种来更新预测需求时间PRE_TOTAL<0、1>。
根据第一方案,每当特定存储器块的有效页面计数改变时,控制器130就可以更新包括特定存储器块的超级存储器块的预测需求时间。
参照图4和5A,例如,第一存储器管芯DIE0的第一平面PLANE00的第一存储器块BLOCK000的有效页面计数可以根据第一前台操作或后台操作而改变。然后,第一存储器管芯DIE0的第一平面PLANE00的第二存储器块BLOCK001的有效页面计数可以根据第二前台操作或后台操作的执行而改变。
在这种情况下,响应于第一存储器块BLOCK000的有效页面计数改变,控制器130可以再次预测性地计算与包括存储器块BLOCK000的第一超级存储器块SUPER BLOCK<0>相对应的第一预测需求时间PRE_TOTAL<0>的值。然后,响应于第二存储器块BLOCK001的有效页面计数改变,控制器130可以再次预测性地计算与包括存储器块BLOCK001的第二超级存储器块SUPER BLOCK<1>相对应的第二预测需求时间PRE_TOTAL<1>的值。
根据第二方案,控制器130可以在每个设置时间检查在多个存储器块之中是否存在有效页面计数已经改变的特定存储器块。作为检查的结果,在存在有效页面计数已经改变的特定存储器块的情况下,控制器130可以更新包括特定存储器块的超级存储器块的预测需求时间。
参照图4和5A,例如,当在第一设置时间与第二设置时间之间执行至少两个连续的前台操作或后台操作时,第一存储器管芯DIE0的第一平面PLANE00的第一存储器块BLOCK000和第二存储器块BLOCK001的有效页面计数可能会改变。
在这种情况下,控制器130可以在第二设置时间检查在多个存储器块中是否存在有效页面计数已经改变的存储器块。作为检查的结果,控制器130可以确定第一存储器管芯DIE0的第一平面PLANE00的第一存储器块BLOCK000和第二存储器块BLOCK001的有效页面计数已经改变。因此,控制器130可以在第二设置时间再次同时预测性地计算与包括第一存储器块BLOCK000的第一超级存储器块SUPER BLOCK<0>相对应的第一预测需求时间PRE_TOTAL<0>的值以及与包括第二存储器块BLOCK001的第二超级存储器块SUPER BLOCK<1>相对应的第二预测需求时间PRE_TOTAL<1>的值。
在各种实施例中,设置时间可以由设计者预先限定。每当写入一定大小的数据时或者每当完成特定操作时,就可能会出现这种时间。
当执行垃圾收集时,如果作为牺牲块的第一超级存储器块SUPER BLOCK<0>的所有有效页面被传送到存储器144,然后被移动到作为目标块的第三超级存储器块SUPER BLOCK<2>,则第一超级存储器块SUPER BLOCK<0>呈现它没有有效页面的状态。因此,在垃圾收集之后,作为无效的超级存储器块的第一超级存储器块SUPER BLOCK<0>不需要参与除了它通过擦除操作变为空闲的超级存储器块的操作之外的任何操作。在这方面,由于控制器130在执行垃圾收集之前已经针对第一超级存储器块SUPER BLOCK<0>生成了第一预测需求时间PRE_TOTAL<0>,所以即使在执行垃圾收集之后,其值也可以保留在预测需求时间表600中。由于第一预测需求时间PRE_TOTAL<0>的值通过这种方式保留在预测需求时间表600中,可能会对第一超级存储器块SUPER BLOCK<0>执行未知的异常操作。因此,在执行针对第一超级存储器块SUPER BLOCK<0>的垃圾收集之后,控制器130将与第一超级存储器块SUPERBLOCK<0>相对应的第一预测需求时间PRE_TOTAL<0>设置为特定值,从而防止针对第一超级存储器块SUPER BLOCK<0>执行未知的异常操作。此处,可以将特定值设置为可设置的最大值。
综上所述,在特定超级存储器块被选择作为牺牲块并且其中的所有有效页面被移动到目标超级存储器块的情况下,控制器130可以将针对所选的超级存储器块的预测需求时间设置为特定值,使得所选的超级存储器块无法执行未知的异常操作。
如果存储器装置150中的多个存储器块之中的空闲存储器块的数目足够大,则执行垃圾收集的可能性不高。即,通常,垃圾收集是在存储器装置150中的空闲块数目减少到阈值数目或低于阈值数目时执行的操作。
因此,控制器130在存储器装置150中的多个存储器块之中的空闲存储器块的数目小于或等于第一数目的时间段期间生成和管理上述的预测需求时间PRE_TOTAL<0、1>。进一步地,控制器130在存储器装置150中的多个存储器块之中的空闲存储器块的数目大于或等于第二数目的时间段期间不生成和管理预测需求时间PRE_TOTAL<0、1>,该第二数目大于第一数目。
在各种实施例中,第一数目可以设置为与用于确定一般垃圾收集操作的触发时间的数目不同。例如,触发时间数目可以小于第一数目。
<第二实施例>
图7A和7B是图示了根据另一实施例的针对存储器系统中的超级存储器块的垃圾收集的示意图。
可以看到,图7A和7B的实施例使用上面参照图4描述的由控制器130将存储器块分成超级存储器块的方案之中的第三方案。
参照图7A和7B,控制器130通过在存储器装置150的四个平面PLANE<00、01、10、11>中的每一个中选择一个存储器块来管理超级存储器块SUPER BLOCK<0>和SUPER BLOCK<1>中的每一个。因此,四个存储器块被包括在超级存储器块SUPER BLOCK<0>和SUPER BLOCK<1>中的每一个中。
例如,参照图4和7A,通过将第一存储器块BLOCK000、第一存储器块BLOCK010、第一存储器块BLOCK100和第一存储器块BLOCK110分组在一起来定义(或生成)第一超级存储器块SUPER BLOCK<0>。第一存储器块BLOCK000被包括在第一存储器管芯DIE0的第一平面PLANE00中。第一存储器块BLOCK010被包括在第一存储器管芯DIE0的第二平面PLANE01中。第一存储器块BLOCK100被包括在第二存储器管芯DIE1的第一平面PLANE10中。第一存储器块BLOCK110被包括在第二存储器管芯DIE1的第二平面PLANE11中。
参照图4和7B,通过将第二存储器块BLOCK001、第二存储器块BLOCK011、第二存储器块BLOCK101和第二存储器块BLOCK111分组在一起来定义(或生成)第二超级存储器块SUPER BLOCK<1>。第二存储器块BLOCK001被包括在第一存储器管芯DIE0的第一平面PLANE00中。第二存储器块BLOCK011被包括在第一存储器管芯DIE0的第二平面PLANE01中。第二存储器块BLOCK101被包括在第二存储器管芯DIE1的第一平面PLANE10中。第二存储器块BLOCK111被包括在第二存储器管芯DIE1的第二平面PLANE11中。
如图7A和7B所示,超级存储器块SUPER BLOCK<0、1>中的每一个可以通过并行选择被包括在其中的四个存储器块BLOCK<000、010、100、110>或BLOCK<001、011、101、111>来输入和输出页面单位的数据。
在这方面,在并行选择被包括在其中的四个存储器块BLOCK<000、010、100、110>或BLOCK<001、011、101、111>时,超级存储器块SUPER BLOCK<0、1>中的每一个能够并行读取不同位置处的页面。虽然能够并行读取不同位置处的页面,但是一次仅可以选择和读取一个块中的一个页面。
在图7A中,第一超级存储器块SUPER BLOCK<0>并行选择四个存储器块BLOCK<000、010、100、110>意味着分别在四个存储器块BLOCK<000、010、100、110>中同时选择页面,无论位置如何。也就是说,第一超级存储器块SUPER BLOCK<0>在第一存储器块BLOCK000中选择第一页面P<0>,在第二存储器块BLOCK010中选择第三页面P<2>,并且在第三和第四存储器块BLOCK<100、110>中的每一个中选择第二页面P<1>。当然,在第一和第二存储器块BLOCK<000、010>中的每一个中选择两个页面并且在第三和第四存储器块BLOCK<100、110>中不选择页面的这种模式下的读取是不可能的。
在图7B中,第二超级存储器块SUPER BLOCK<1>并行选择四个存储器块BLOCK<001、011、101、111>意味着分别在四个存储器块BLOCK<001、011、101、111>中同时选择页面,无论位置如何。也就是说,第二超级存储器块SUPER BLOCK<1>在第一存储器块BLOCK001中选择第一页面P<0>,并且在第二至第四存储器块BLOCK<011、101、111>中的每一个中选择第二页面P<1>。当然,在第二和第三存储器块BLOCK<011、101>中的每一个中选择两个页面并且在第一和第四存储器块BLOCK<001、111>中不选择页面的这种模式下的读取是不可能的。
在图7A和7B中,四个存储器块BLOCK<000、010、100、110>和四个存储器块BLOCK<001、011、101、111>中的每一个中的多个页面中的每一个页面可以是有效页面或无效页面,这与其它页面中的任一个的有效性或无效性无关。
例如,在图7A的第一超级存储器块SUPER BLOCK<0>中,仅第一存储器块BLOCK000的第一页面P<0>、第二存储器块BLOCK010的第三页面P<2>以及第三和第四存储器块BLOCK<100、110>的第二页面P<1>可能是有效页面(如通过粗体框示出的),并且所有其它页面可能是无效页面(如通过非粗体框示出的)。
在图7B的第二超级存储器块SUPER BLOCK<1>中,仅第一存储器块BLOCK001的第一页面P<0>、第二存储器块BLOCK011的第二和第三页面P<1、2>和第四存储器块BLOCK111的第二页面P<1>可能是有效页面,并且所有其它页面可能是无效页面。
图7A的第一超级存储器块SUPER BLOCK<0>和图7B的第二超级存储器块SUPERBLOCK<1>中的每一个包括四个有效页面。
在图7A和7B中,可以分别选择超级存储器块SUPER BLOCK<0、1>的四个存储器块BLOCK<000、010、100、110>和四个存储器块BLOCK<001、011、101、111>作为用于垃圾收集的牺牲块。
当选择图7A的第一超级存储器块SUPER BLOCK<0>作为用于垃圾收集的牺牲块时,从四个存储器块BLOCK<000、010、100、110>的四个有效页面提取数据所需的时间可以被定义为第一需求时间TOTAL<0>。当选择图7B的第二超级存储器块SUPER BLOCK<1>作为用于垃圾收集的牺牲块时,从四个存储器块BLOCK<001、011、101、111>的四个有效页面提取数据所需的时间可以被定义为第二需求时间TOTAL<1>。
由于下面陈述的原因,图7A的第一需求时间TOTAL<0>和图7B的第二需求时间TOTAL<1>可能基本上不同。
为了从四个存储器块BLOCK<000、010、100、110>的四个有效页面提取数据,通过选择图7A的第一超级存储器块SUPER BLOCK<0>作为牺牲块,可以确定四个有效页面的位置。
作为确定的结果,在图7A的第一超级存储器块SUPER BLOCK<0>中,仅第一存储器块BLOCK000的第一页面P<0>、第二存储器块BLOCK010的第三页面P<2>以及第三和第四存储器块BLOCK<100、110>中的每一个的第二页面P<1>是有效页面,并且所有其它页面是无效页面。
根据确定结果,第一超级存储器块SUPER BLOCK<0>的四个有效页面包括位置不同的有效页面和位置相同的有效页面。进一步地,第一超级存储器块SUPER BLOCK<0>的四个存储器块BLOCK<000、010、100、110>中的每一个包括一个有效页面。也就是说,第一超级存储器块SUPER BLOCK<0>的四个存储器块BLOCK<000、010、100、110>的有效页面计数之中的最大计数是1。这意味着,为了从第一超级存储器块SUPER BLOCK<0>中所包括的四个有效页面提取有效数据,需要执行一次读取FIRST_READ。
因此,控制器130在第零时间t0时对第一存储器块BLOCK000的第一页面P<0>、第二存储器块BLOCK010的第三页面P<2>以及第三和第四存储器块BLOCK<100、110>中的每一个的第二页面P<1>执行一次读取FIRST_READ。通过一次读取FIRST_READ,分别将数据B000P0_VD、B010P2_VD、B100P1_VD和B110P1_VD的四个页面缓存在四个页面缓冲器PB<000、010、100、110>中。在第一时间t1时,由于这些页面包含有效数据,所以控制器130将数据B000P0_VD、B010P2_VD、B100P1_VD和B110P1_VD的所有四个页面传输到存储器144。
通过这种方式,控制器130可以通过一次读取FIRST_READ来提取第一超级存储器块SUPER BLOCK<0>的四个有效页面BLOCK000_P<0>、BLOCK010_P<2>、BLOCK100_P<1>和BLOCK110_P<1>中存储的所有有效数据(VALID DATA)B000P0_VD、B010P2_VD、B100P1_VD和B110P1_VD。
在本文中,执行一次读取FIRST_READ所需的时间可以表示为读取时间tREAD。此外,将一个页面缓冲器PB<000>、PB<010>、PB<100>或PB<110>中存储的数据B000P0_VD、B010P2_VD、B100P1_VD或B110P1_VD的一个页面传输到存储器144所需的时间可以表示为传输时间tTX。因此,通过选择第一超级存储器块SUPER BLOCK<0>提取数据所需的第一需求时间TOTAL<0>可以是“{r(tREAD*1)+(tTX*4)}”,其中,tREAD是读取时间并且tTX是传输时间。例如,当读取时间tREAD是50us并且传输时间tTX是10us时,第一需求时间TOTAL<0>将是90us。
为了从四个存储器块BLOCK<001、011、101、111>的四个有效页面提取数据,通过选择图7B的第二超级存储器块SUPERBLOCK<1>作为牺牲块,可以检查四个有效页面的位置。
作为图7B的检查结果,在第二超级存储器块SUPER BLOCK<1>中,仅第一存储器块BLOCK001的第一页面P<0>、第二存储器块BLOCK011的第二和第三页面P<1、2>和第四存储器块BLOCK111的第二页面P<1>是有效页面,并且所有其它页面是无效页面。
根据检查结果,第二超级存储器块SUPER BLOCK<1>的四个有效页面包括具有不同位置的有效页面和具有相同位置的有效页面。此外,在第二超级存储器块SUPER BLOCK<1>的四个存储器块BLOCK<001、011、101、111>之中,第一和第四存储器块BLOCK<001、111>中的每一个包括一个有效页面,第二存储器块BLOCK011包括两个有效页面,并且第三存储器块BLOCK101不包括有效页面。也就是说,第二超级存储器块SUPER BLOCK<1>的四个存储器块BLOCK<001、011、101、111>的有效页面计数之中的最大计数是2。这意味着,为了从第二超级存储器块SUPER BLOCK<1>中所包括的四个有效页面提取四个有效数据,需要执行两次读取FIRST_READ和SECOND_READ。
因此,控制器130在第零时间t0时对第二超级存储器块SUPER BLOCK<1>中的第一存储器块BLOCK001的第一页面P<0>以及第二至第四存储器块BLOCK<011、101、111>中的每一个的第二页面P<1>执行第一读取FIRST_READ。通过第一读取FIRST_READ,将有效数据B001P0_VD、B011P1_VD、B101P1_IVD和B111P1_VD的四个页面缓存在四个页面缓冲器PB<001、011、101、111>中。在第一时间t1时,控制器130在页面缓冲器PB<001、011、101、111>中缓存的数据B001P0_VD、B011P1_VD、B101P1_IVD和B111P1_VD的四个页面之中仅选择三个有效数据B001P0_VD、B011P1_VD和B111P1_VD,并且将所选的有效数据传输到存储器144(数据传送)。此时,控制器130不将页面缓冲器PB<001、011、101、111>中缓存的四个页面数据B001P0_VD、B011P1_VD、B101P1_IVD、B111P1_VD之中的无效数据B101P1_IVD传输到存储器144。相反,控制器130丢弃无效数据。
通过这种方式,控制器130可以通过第一读取FIRST_READ来提取第二超级存储器块SUPER BLOCK<1>的三个有效页面BLOCK001_P<0>、BLOCK011_P<1>和BLOCK111_P<1>中存储的有效数据B001P0_VD、B011P1_VD和B111P1_VD。
接下来,控制器130在第二时间t2时对四个存储器块BLOCK<001、011、101、111>的第三页面P<2>执行第二读取SECOND_READ。通过第二读取SECOND_READ,将数据B001P2_IVD、B011P2_VD、B101P2_IVD和B111P2_IVD的四个页面缓存在四个页面缓冲器PB<001、011、101、111>中。在第三时间t3时,控制器130仅在页面缓冲器PB<001、011、101、111>中缓存的四个页面数据B001P2_IVD、B011P2_VD、B101P2_IVD和B111P2_IVD之中选择有效数据B011P2_VD,并且将所选的有效数据传输到存储器144。此时,控制器130不将页面缓冲器PB<001、011、101、111>中缓存的数据B001P2_IVD、B011P2_VD、B101P2_IVD和B111P2_IVD的四个页面之中的无效数据B001P2_IVD、B101P2_IVD和B111P2_IVD传输到存储器144,而是丢弃无效数据。
通过这种方式,控制器130可以通过第二读取SECOND_READ来提取第二超级存储器块SUPER BLOCK<1>的一个有效页面BLOCK011_P<2>中存储的一个有效数据(VALID DATA)B011P2_VD。
如上所述,为了提取第二超级存储器块SUPER BLOCK<1>的四个有效页面BLOCK001_P<0>、BLOCK011_P<1>、BLOCK011_P<2>和BLOCK111_P<1>中存储的所有有效数据B001P0_VD、B011P1_VD、B011P2_VD和B111P1_VD,控制器130可以确定需要两次读取FIRST_READ和SECOND_READ。
在本文中,执行一次读取FIRST_READ或SECOND_READ所需的时间可以表示为读取时间tREAD。此外,将一个页面缓冲器PB<001>、PB<011>、PB<101>或PB<111>中存储的数据B001P0_VD、B011P1_VD、B011P2_VD或B111P1_VD的一个页面传输到存储器144所需的时间可以表示为传输时间tTX。因此,通过选择第二超级存储器块SUPER BLOCK<1>提取数据所需的第二需求时间TOTAL<1>可以是“{(tREAD*2)+(tTX*4)}”,其中,tREAD是读取时间并且tTX是传输时间。例如,当读取时间tREAD是50us并且传输时间tTX是10us时,第二需求时间TOTAL<1>将是140us。
总之,由于图7A的第一超级存储器块SUPER BLOCK<0>和图7B的第二超级存储器块SUPER BLOCK<1>中的每一个包括四个有效页面,所以它们在基于有效页面数选择用于垃圾收集的牺牲块的方案的情况下具有相同条件。
然而,在选择图7A和7B的超级存储器块SUPER BLOCK<0、1>中的每一个作为用于垃圾收集的牺牲块的情况下,从图7A的第一超级存储器块SUPER BLOCK<0>提取数据所需的第一需求时间TOTAL<0>是90us,而从图7B的第二超级存储器块SUPER BLOCK<1>提取数据所需的第二需求时间TOTAL<1>是140us,该第二需求时间与第一需求时间TOTAL<0>明显不同。
因此,为了有效地执行垃圾收集,控制器130可以在图7A和7B的超级存储器块SUPER BLOCK<0、1>之中选择第一超级存储器块SUPER BLOCK<0>作为牺牲块。
图8是图示了根据一个实施例的存储器系统的示意图。图8的操作可以与图7A和7B的方案相对应。
参照图8,存储器系统110包括控制器130和存储器装置150。
控制器130可以包括垃圾收集控制电路196和存储器144。由于上面参照图3描述了垃圾收集控制电路196的生成操作,所以此处将省略其详细描述。
存储器装置150包括多个存储器块。控制器130根据设置条件对能够在存储器装置150的多个存储器块之中并行读取的N个存储器块进行分组,从而管理多个超级存储器块SUPER BLOCK<0:M>,其中,N是2或更大的自然数,并且在图7A和7B中假设N是4。存储器装置150可以包括图7A和7B的两个超级存储器块SUPER BLOCK<0、1>以及处于空闲状态的一个超级存储器块SUPER BLOCK<2>。当然,存储器装置150中可以包括不同数目的超级存储器块,例如,多于两个的超级存储器块。
控制器130通过以超级块为单位预测性地计算在从存储器装置150的存储器块提取用于垃圾收集的有效数据时所需的需求时间来生成预测需求时间PRE_TOTAL<0、1>。进一步地,控制器130通过垃圾收集控制电路196将所生成的预测需求时间PRE_TOTAL<0、1>作为预测需求时间表600进行管理。
通过垃圾收集控制电路196,控制器130以超级块为单位对存储器装置150的相应存储器块的有效页面VPC<0:1>进行计数。进一步地,控制器130在有效页面计数表610中管理通过这种方式进行计数的有效页面计数VPC<0:1>。
在各种实施例中,控制器130通过FIRST_TIME<0:1>=MB_CNT<0:1>*PRE_tREAD的等式来计算第一时间FIRST_TIME<0:1>。换言之,控制器130将MB_CNT<0:1>乘以预测读取时间PRE_tREAD。MB_CNT<0:1>是多个超级存储器块SUPER BLOCK<0、1>的四个相应存储器块BLOCK<000、010、100、110>和四个相应存储器块BLOCK<001、011、101、111>的有效页面计数之中的最大计数值。
此外,控制器130通过SECOND_TIME<0:1>=VPC<0:1>*PRE_tTX的等式来计算第二时间SECOND_TIME<0:1>。换言之,控制器130将VPC<0:1>乘以预测传输时间PRE_tTX。VPC<0:1>是多个超级存储器块SUPER BLOCK<0、1>的有效页面计数。
控制器130生成多个超级存储器块SUPER BLOCK<0、1>中的每一个的预测需求时间PRE_TOTAL<0、1>。换言之,控制器130通过TOTAL<0:1>=FIRST_TIME<0:1>+SECOND_TIME<0:1>的等式来计算第一时间FIRST_TIME<0:1>和第二时间SECOND_TIME<0:1>的和。
参照图7A和图8,在第一超级存储器块SUPER BLOCK<0>中,仅第一存储器块BLOCK000的第一页面P<0>、第二存储器块BLOCK010的第三页面P<2>以及第三和第四存储器块BLOCK<100、110>中的每一个的第二页面P<1>是有效页面,并且所有其它页面是无效页面。
因此,控制器130可以确定第一超级存储器块SUPER BLOCK<0>中的有效页面的第一有效页面计数VPC<0>是4。
进一步地,控制器130可以确定第一超级存储器块SUPER BLOCK<0>的四个存储器块BLOCK<000、010、100、110>中的每一个包括一个有效页面。也就是说,第一超级存储器块SUPER BLOCK<0>的四个存储器块BLOCK<000、010、100、110>的有效页面计数之中的最大计数MB_CNT<0>是1。
因此,与第一超级存储器块SUPER BLOCK<0>相对应的第一个第一时间FIRST_TIME<0>是预测读取时间PRE_tREAD,其通过计算(1*PRE_tREAD)导出。与第一超级存储器块SUPER BLOCK<0>相对应的第一个第二时间SECOND_TIME<0>是预测传输时间PRE_tTX的四倍,其通过计算(4*PRE_tTX)导出。因此,通过对第一个第一时间FIRST_TIME<0>和第一个第二时间SECOND_TIME<0>求和来获得与第一超级存储器块SUPER BLOCK<0>相对应的第一预测需求时间PRE_TOTAL<0>。
例如,当预测读取时间PRE_tREAD是50us并且预测传输时间PRE_tTX是10us时,与第一超级存储器块SUPER BLOCK<0>相对应的第一预测需求时间PRE_TOTAL<0>是90us。换言之,通过对50us的第一个第一时间FIRST_TIME<0>和40us的第一个第二时间SECOND_TIME<0>求和来计算第一预测需求时间PRE_TOTAL<0>。
参照图7B和图8,在第二超级存储器块SUPER BLOCK<1>中,仅第一存储器块BLOCK001的第一页面P<0>、第二存储器块BLOCK011的第二和第三页面P<1、2>和第四存储器块BLOCK111的第二页面P<1>是有效页面,并且所有其它页面是无效页面。
因此,控制器130可以确定第二超级存储器块SUPER BLOCK<1>中的有效页面的第二有效页面计数VPC<1>是4。
此外,控制器130可以确定,在第二超级存储器块SUPER BLOCK<1>的四个存储器块BLOCK<001、011、101、111>之中,第一和第四存储器块BLOCK<001、111>中的每一个包括一个有效页面,第二存储器块BLOCK011包括两个有效页面,并且第三存储器块BLOCK101不包括有效页面。也就是说,第二超级存储器块SUPER BLOCK<1>的四个存储器块BLOCK<001、011、101、111>的有效页面计数之中的最大计数MB_CNT<1>是2。
因此,与第二超级存储器块SUPER BLOCK<1>相对应的第二个第一时间FIRST_TIME<1>是预测读取时间PRE_tREAD的两倍,其通过计算{2*PRE_tREAD}导出。与第二超级存储器块SUPER BLOCK<1>相对应的第二时间SECOND_TIME<1>是预测传输时间PRE_tTX的四倍,其通过计算{4*PRE_tTX}导出。因此,通过对是预测读取时间PRE_tREAD的两倍的第二个第一时间FIRST_TIME<1>和是预测传输时间PRE_tTX的四倍的第二时间SECOND_TIME<1>求和来获得与第二超级存储器块SUPER BLOCK<1>相对应的第二预测需求时间PRE_TOTAL<1>。
例如,当预测读取时间PRE_tREAD是50us并且预测传输时间PRE_tTX是10us时,与第二超级存储器块SUPER BLOCK<1>相对应的第二预测需求时间PRE_TOTAL<1>是140us。换言之,通过对100us的第二个第一时间FIRST_TIME<1>和40us的第二个第二时间SECOND_TIME<1>求和来计算第二预测需求时间PRE_TOTAL<1>。
在各种实施例中,控制器130可以设置有关于存储器装置150的预测读取时间PRE_tREAD和预测传输时间PRE_tTX的信息。即,设计者可以根据存储器装置150的类型或配置通过测试预先设置存储器装置150的预测读取时间PRE_tREAD和预测传输时间PRE_tTX。
如上所述,控制器130可以在执行垃圾收集之前预测性地计算针对多个超级存储器块SUPER BLOCK<0、1>中的每一个的相应预测需求时间PRE_TOTAL<0、1>。
控制器130可以通过垃圾收集控制电路196,基于针对多个超级存储器块SUPERBLOCK<0、1>的预测需求时间PRE_TOTAL<0、1>,在存储器装置150的多个存储器块之中确定和选择作为用于垃圾收集的牺牲块的存储器块。预测需求时间PRE_TOTAL<0、1>被包括在预测需求时间表600中。
控制器130参考预测需求时间PRE_TOTAL<0、1>的方法可以包括以下两种方案,并且控制器130可以选择任何一种方案。
根据第一方案,控制器130在分组为超级存储器块的N个存储器块之中选择包括至少一个有效页面的存储器块作为牺牲块,针对该超级存储器块,预测需求时间是针对多个超级存储器块SUPER BLOCK<0、1>的预测需求时间PRE_TOTAL<0、1>之中的最低预测需求时间。
例如,在针对第一超级存储器块SUPER BLOCK<0>的预测需求时间PRE_TOTAL<0>是90us并且针对第二超级存储器块SUPER BLOCK<1>的预测需求时间PRE_TOTAL<1>是140us时,控制器130在分组为第一超级存储器块SUPER BLOCK<0>的四个存储器块BLOCK<000、010、100、110>之中选择均包括至少一个有效页面的四个存储器块BLOCK<000、010、100、110>作为牺牲块,因为PRE_TOTAL<0>是两个预测需求时间中较短的预测需求时间。
通过这种方式,由于选择第一超级存储器块SUPER BLOCK<0>的四个存储器块BLOCK<000、010、100、110>作为牺牲块,所以在执行垃圾收集的时间段期间,将第一超级存储器块SUPER BLOCK<0>的四个有效页面的数据传送到存储器144,然后存储在作为目标块的第三超级存储器块SUPER BLOCK<2>中。
根据在使用上述第一方案之前使用的第二方案,控制器130在多个超级存储器块SUPER BLOCK<0、1>之中检查有效页面计数VPC<0:1>小于或等于设置计数的超级存储器块的数目。通过对多个相应的超级存储器块SUPER BLOCK<0、1>中的每一个中的N个存储器块的有效页面计数求和来获得每个有效页面计数VPC<0:1>。换言之,在仅一个超级存储器块具有小于或等于设置计数的有效页面数的情况下,控制器130不使用上述的第一方案。相反,当存在至少两个这种超级存储器块时,控制器130使用上述的第一方案。
作为另一示例,第一超级存储器块SUPER BLOCK<0>的有效页面计数VPC<0>可以是5,第二超级存储器块SUPER BLOCK<1>的有效页面计数VPC<1>可以是1,并且控制器130可以将设置计数设置为2。在这种情况下,控制器130可以检查一个超级存储器块(即,第二超级存储器块SUPER BLOCK<1>)具有小于或等于设置计数的有效页面计数VPC<1>。因此,控制器130不使用上述的第一方案。相反,控制器130在具有小于或等于设置计数的有效页面计数VPC<1>的第二超级存储器块SUPER BLOCK<1>中的N个存储器块之中选择包括至少一个有效页面的存储器块,作为牺牲块。
在另一示例中,第一超级存储器块SUPER BLOCK<0>的有效页面计数VPC<0>可以是4,第二超级存储器块SUPER BLOCK<1>的有效页面计数VPC<1>可以是4,并且控制器130可以将设置计数设置为2。在这种情况下,控制器130可以检查第一超级存储器块SUPER BLOCK<0>和第二超级存储器块SUPER BLOCK<1>中的两者具有小于或等于设置计数的有效页面计数。因此,控制器130使用上述的第一方案。换言之,控制器130在具有最短预测需求时间PRE_TOTAL<0>的第一超级存储器块SUPER BLOCK<0>中的N个存储器块之中选择均包括至少一个有效页面的存储器块,作为牺牲块。
如上所述,控制器130生成预测需求时间PRE_TOTAL<0、1>,并且在预测需求时间表600中管理所生成的预测需求时间PRE_TOTAL<0、1>。
在这方面,控制器130可以通过使用以下两种方案中的任一种来更新预测需求时间PRE_TOTAL<0、1>。
根据第一方案,每当存储器装置150的存储器块之中的特定存储器块的有效页面计数改变时,控制器130就可以更新包括特定存储器块的超级存储器块的预测需求时间。
参照图4和7A,例如,第一存储器管芯DIE0的第一平面PLANE00的第一存储器块BLOCK000的有效页面计数可以根据第一前台操作或后台操作而改变。然后,第一存储器管芯DIE0的第一平面PLANE00的第二存储器块BLOCK001的有效页面计数可以根据第二前台操作或后台操作的执行而改变。
在这种情况下,响应于第一存储器块BLOCK000的有效页面计数改变,控制器130可以再次预测性地计算与包括对应存储器块BLOCK000的第一超级存储器块SUPER BLOCK<0>相对应的第一预测需求时间PRE_TOTAL<0>的值。然后,响应于第二存储器块BLOCK001的有效页面计数改变,控制器130可以再次预测性地计算与包括对应存储器块BLOCK001的第二超级存储器块SUPER BLOCK<1>相对应的第二预测需求时间PRE_TOTAL<1>的值。
根据第二方案,控制器130可以在每个预设时间检查在多个存储器块之中是否存在有效页面计数已经改变的特定存储器块。作为检查的结果,在存在有效页面计数已经改变的特定存储器块的情况下,控制器130可以更新包括特定存储器块的超级存储器块的预测需求时间。
参照图4和7A,例如,当在第一设置时间与第二设置时间之间执行至少两个连续的前台操作或后台操作时,第一存储器管芯DIE0的第一平面PLANE00的第一存储器块BLOCK000和第二存储器块BLOCK001的有效页面计数可能会改变。
在这种情况下,控制器130可以在第二设置时间检查在多个存储器块中是否存在有效页面计数已经改变的存储器块。作为检查的结果,控制器130可以确定第一存储器管芯DIE0的第一平面PLANE00的第一存储器块BLOCK000和第二存储器块BLOCK001的有效页面计数已经改变。因此,控制器130可以在第二设置时间再次同时预测性地计算与包括第一存储器块BLOCK000的第一超级存储器块SUPER BLOCK<0>相对应的第一预测需求时间PRE_TOTAL<0>的值以及与包括第二存储器块BLOCK001的第二超级存储器块SUPER BLOCK<1>相对应的第二预测需求时间PRE_TOTAL<1>的值。
在各种实施例中,设置时间可以由设计者预先限定。每当写入一定大小的数据时或者每当完成特定操作时,就可能重复这种时间。
当执行垃圾收集时,如果作为牺牲块的第一超级存储器块SUPER BLOCK<0>的所有有效页面被传送到存储器144,然后被移动到作为目标块的第三超级存储器块SUPER BLOCK<2>,则第一超级存储器块SUPER BLOCK<0>呈现不存在有效页面的状态。因此,在垃圾收集之后,作为无效的超级存储器块的第一超级存储器块SUPER BLOCK<0>不需要参与除了它通过擦除操作变为空闲的超级存储器块的操作之外的任何操作。在这方面,由于控制器130在执行垃圾收集之前已经针对第一超级存储器块SUPER BLOCK<0>生成了第一预测需求时间PRE_TOTAL<0>,所以即使在执行垃圾收集之后,其值也可以保留在预测需求时间表600中。由于第一预测需求时间PRE_TOTAL<0>的值通过这种方式保留在预测需求时间表600中,可能会对第一超级存储器块SUPER BLOCK<0>执行未知的异常操作。因此,在执行针对第一超级存储器块SUPER BLOCK<0>的垃圾收集之后,控制器130将与第一超级存储器块SUPERBLOCK<0>相对应的第一预测需求时间PRE_TOTAL<0>设置为特定值,从而防止针对第一超级存储器块SUPER BLOCK<0>执行未知的异常操作。此处,可以将特定值设置为可设置的最大值。
综上所述,在特定超级存储器块被选择作为牺牲块并且其中的所有有效页面被移动到目标超级存储器块的情况下,控制器130可以将针对所选的超级存储器块的预测需求时间设置为一定值,使得所选的超级存储器块无法执行未知的异常操作。
如果存储器装置150中的多个存储器块之中的空闲存储器块的数目足够大,则执行垃圾收集的可能性不高。即,通常,垃圾收集是在存储器装置150中的空闲块数目减少到小于或等于阈值数目时执行的操作。
因此,控制器130在存储器装置150中的多个存储器块之中的空闲存储器块的数目小于或等于第一数目的时间段期间生成和管理上述的预测需求时间PRE_TOTAL<0、1>。进一步地,控制器130在存储器装置150中的多个存储器块之中的空闲存储器块的数目大于或等于第二数目的时间段期间不生成和管理预测需求时间PRE_TOTAL<0、1>,该第二数目大于第一数目。
在各种实施例中,第一数目可以设置为与用于确定一般垃圾收集操作的触发时间的数目不同。例如,触发时间数目可以小于第一数目。
尽管已经图示和描述了各种实施例,但是根据本公开,对本领域技术人员来说将明显的是,可以在不脱离以下权利要求定义的本发明的精神和范围的情况下进行各种改变和修改。
Claims (18)
1.一种存储器系统,包括:
非易失性存储器装置,包括多个管芯,每个管芯包括多个平面,每个平面包括多个块,每个块包括多个页面,并且所述非易失性存储器装置进一步包括多个页面缓冲器,每个页面缓冲器用于以页面为单位缓存要输入到所述块中的每个块以及从所述块中的每个块输出的数据;以及
控制器,适于根据条件管理多个超级块,每个超级块包括所述块之中能够被并行读取的N个块,分别针对所述超级块生成预测需求时间,所述预测需求时间中的每一个表示从对应的所述超级块提取有效数据所需的时间,以及基于所述预测需求时间从所述块之中选择用于垃圾收集的牺牲块,
其中,N是2或更大的自然数,以及
其中,所述控制器在所述块之中的空闲块数目小于或等于第一数目的时间段期间生成和管理所述预测需求时间,以及
所述控制器在所述块之中的所述空闲块数目大于或等于第二数目的时间段期间不管理所述预测需求时间,所述第二数目大于所述第一数目。
2.根据权利要求1所述的存储器系统,其中,
当仅针对在所述超级块中的第一超级块中的相应N个块中的相同位置处的页面启用并行读取时,
所述控制器通过对第一时间和第二时间求和来生成与所述第一超级块相对应的所述预测需求时间,所述第一时间是通过将一个数字乘以预测读取时间计算得到的,所述数字表示在所述第一超级块的所述N个块之中位置相同的有效页面的计数与第一计数之差,所述第一计数表示所述N个块的有效页面计数与预测读取时间的和,所述第二时间表示所述第一计数和预测传输时间的乘积,
其中,所述预测读取时间是预测将所述第一超级块的数据缓存在所述页面缓冲器中所需的时间,以及
其中,所述预测传输时间是预测将所述页面缓冲器中缓存的所述数据传输到所述控制器所需的时间。
3.根据权利要求1所述的存储器系统,其中,
当针对在所述超级块中的第二超级块中的相应N个块中的不同位置处的页面启用并行读取时,
所述控制器通过对第三时间和第四时间求和来生成与所述第二超级块相对应的所述预测需求时间,所述第三时间是通过将所述N个块的有效页面计数之中的最大计数乘以预测读取时间计算得到的,所述第四时间是通过将表示所述N个块的所述有效页面计数的和的计数乘以预测传输时间计算得到的,
其中,所述预测读取时间是预测将所述第二超级块的数据缓存在所述页面缓冲器中所需的时间,以及
其中,所述预测传输时间是预测将所述页面缓冲器中缓存的所述数据传输到所述控制器所需的时间。
4.根据权利要求1所述的存储器系统,其中,每当所述块之中的块的有效页面计数改变时,所述控制器计算与所述超级块相对应的更新预测需求时间,所述超级块包括所述有效页面计数已经改变的所述块。
5.根据权利要求1所述的存储器系统,其中,所述控制器在每个设置时间检查在所述超级块的所述块之中是否存在有效页面计数已经改变的块,并且当存在有效页面计数已经改变的块时,计算与所述超级块相对应的更新预测需求时间,所述超级块包括所述有效页面计数已经改变的所述块。
6.根据权利要求1所述的存储器系统,其中,所述控制器在与所述预测需求时间之中的最低预测需求时间相对应的超级块的所述N个块之中选择包括至少一个有效页面的块作为牺牲块。
7.根据权利要求1所述的存储器系统,其中,
当所述超级块之中的仅一个超级块具有小于或等于设置计数的有效页面数时,所述控制器选择所述一个超级块的N个块作为牺牲块,以及
当所述超级块之中的至少两个超级块均具有小于或等于所述设置计数的有效页面数时,所述控制器在超级块的所述N个块之中选择包括至少一个有效页面的块作为所述牺牲块,所述超级块具有分别与所述至少两个超级块相对应的至少两个预测需求时间之中的最低预测需求时间。
8.根据权利要求1所述的存储器系统,其中,当所述超级块之中的超级块的所述N个块被选择作为牺牲块并且所有有效数据被移动到目标块时,所述控制器将与所选的所述超级块相对应的预测需求时间设置为特定值。
9.根据权利要求1所述的存储器系统,
其中,所述多个管芯中的第一管芯被耦合至第一通道,所述多个管芯中的第二管芯被耦合至第二通道,被包括在所述第一管芯中的平面被耦合至共享所述第一通道的多个第一路径,并且被包括在所述第二管芯中的平面被耦合至共享所述第二通道的多个第二路径,以及
其中,所述控制器根据所述条件管理第一超级块以及管理第二超级块,所述第一超级块包括在所述第一管芯的第一平面中的第一块和在所述第一管芯的第二平面中的第二块,所述第二超级块包括在所述第二管芯的第三平面中的第三块和在所述第二管芯的第四平面中的第四块,
其中,所述控制器根据所述条件管理第三超级块以及管理第四超级块,所述第三超级块包括在所述第一管芯的第一平面中的第一块和在所述第二管芯的第三平面中的第三块,所述第四超级块包括在所述第一管芯的第二平面中的第二块和在所述第二管芯的第四平面中的第四块,或者
其中,所述控制器根据所述条件管理第五超级块,所述第五超级块包括在所述第一管芯的第一平面中的第一块、在所述第一管芯的第二平面中的第二块、在所述第二管芯的第三平面中的第三块和在所述第二管芯的第四平面中的第四块。
10.一种用于操作存储器系统的方法,所述存储器系统包括控制器和非易失性存储器装置,所述非易失性存储器装置包括多个管芯,每个管芯包括多个平面,每个平面包括多个块,每个块包括多个页面,并且所述非易失性存储器装置包括多个页面缓冲器,每个页面缓冲器用于以页面为单位缓存要输入到所述块中的每个块以及从所述块中的每个块输出的数据,所述方法包括:
根据设置条件管理多个超级块,每个超级块包括所述块之中能够被并行读取的N个块;
分别针对所述超级块生成预测需求时间,所述预测需求时间中的每一个表示从对应的所述超级块提取有效数据所需的时间;以及
基于所述预测需求时间从所述块之中选择用于垃圾收集的牺牲块,
其中,N是2或更大的自然数,以及
其中,所述预测需求时间的所述生成包括:
在所述块之中的空闲块数目小于或等于第一数目的时间段期间生成和管理所述预测需求时间;以及
在所述块之中的所述空闲块数目大于或等于第二数目的时间段期间不管理所述预测需求时间,所述第二数目大于所述第一数目。
11.根据权利要求10所述的方法,其中,当仅针对在所述超级块之中的第一超级块中的相应N个块中的相同位置处的页面启用并行读取时,所述预测需求时间的所述生成包括:
通过将一个数字乘以预测读取时间来计算第一时间,所述数字表示在所述第一超级块的所述N个块之中位置相同的有效页面的计数与第一计数之差,所述第一计数表示所述第一超级块的所述N个块的有效页面计数与预测读取时间的和;
通过将所述第一计数乘以预测传输时间来计算第二时间;
通过对所述超级块的所述第一时间和所述第二时间求和来针对每个超级块生成所述预测需求时间,
其中,所述预测读取时间是预测将所述第一超级块的数据缓存在所述页面缓冲器中所需的时间,并且所述预测传输时间是预测将所述页面缓冲器中缓存的所述数据传输到所述控制器所需的时间。
12.根据权利要求10所述的方法,其中,当针对在所述超级块之中的第二超级块中的相应N个块中的不同位置处的页面启用并行读取时,所述预测需求时间的所述生成包括:
通过将所述第二超级块中的所述N个块的有效页面计数之中的最大计数乘以预测读取时间来计算第三时间;
通过将通过对所述第二超级块中的所述N个块的所述有效页面计数求和而获得的计数乘以预测传输时间来计算第四时间;
通过对所述第三时间和所述第四时间求和来生成与所述第二超级块相对应的所述预测需求时间,
其中,所述预测读取时间是预测将所述第二超级块的数据缓存在所述页面缓冲器中所需的时间,并且所述预测传输时间是预测将所述页面缓冲器中缓存的所述数据传输到所述控制器所需的时间。
13.根据权利要求10所述的方法,所述方法进一步包括:
每当所述块之中的块的有效页面计数改变时,计算与所述超级块相对应的更新预测需求时间,所述超级块包括所述有效页面计数已经改变的所述块。
14.根据权利要求10所述的方法,所述方法进一步包括:
在每个设置时间检查在所述块之中是否存在有效页面计数已经改变的块,并且当存在有效页面计数已经改变的块时,计算与所述超级块相对应的更新预测需求时间,所述超级块包括所述有效页面计数已经改变的所述块。
15.根据权利要求10所述的方法,其中,所述牺牲块的所述选择包括:在与所述预测需求时间之中的最低预测需求时间相对应的超级块的N个块之中选择包括至少一个有效页面的块作为牺牲块。
16.根据权利要求10所述的方法,其中,所述牺牲块的所述选择包括:
当仅一个超级块具有小于或等于设置计数的有效页面数时,选择所述一个超级块的N个块作为牺牲块;以及
当至少两个超级块均具有小于或等于所述设置计数的有效页面数时,在超级块的N个块之中选择包括至少一个有效页面的块作为所述牺牲块,所述超级块具有分别与所述至少两个超级块相对应的至少两个预测需求时间之中的最低预测需求时间。
17.根据权利要求10所述的方法,所述方法进一步包括:
当所述超级块之中的超级块的N个块被选择作为牺牲块并且所有有效数据被移动到目标块时,将与所选的所述超级块相对应的预测需求时间设置为特定值。
18.根据权利要求10所述的方法,
其中,所述多个管芯中的第一管芯被耦合至第一通道,所述多个管芯中的第二管芯被耦合至第二通道,被包括在所述第一管芯中的平面被耦合至共享所述第一通道的多个第一路径,并且被包括在所述第二管芯中的平面被耦合至共享所述第二通道的多个第二路径,以及
其中,所述设置条件包括:管理包括在所述第一管芯的第一平面中的第一块和在所述第一管芯的第二平面中的第二块的超级块,以及管理包括在所述第二管芯的第三平面中的第三块和在所述第二管芯的第四平面中的第四块的超级块,
其中,所述设置条件包括:管理包括在所述第一管芯的第一平面中的第一块和在所述第二管芯的第三平面中的第三块的超级块,以及管理包括在所述第一管芯的第二平面中的第二块和在所述第二管芯的第四平面中的第四块的超级块,或者
其中,所述设置条件包括:管理包括在所述第一管芯的第一平面中的第一块、在所述第一管芯的第二平面中的第二块、在所述第二管芯的第三平面中的第三块和在所述第二管芯的第四平面中的第四块的超级块。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0089400 | 2018-07-31 | ||
KR20180089400 | 2018-07-31 | ||
KR1020180167583A KR20200014175A (ko) | 2018-07-31 | 2018-12-21 | 소요시간을 예측하여 가비지 컬렉션을 수행하는 방법 및 장치 |
KR10-2018-0167583 | 2018-12-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110781096A CN110781096A (zh) | 2020-02-11 |
CN110781096B true CN110781096B (zh) | 2023-05-05 |
Family
ID=69227477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910695645.4A Active CN110781096B (zh) | 2018-07-31 | 2019-07-30 | 用于通过预测需求时间来执行垃圾收集的设备和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11030094B2 (zh) |
CN (1) | CN110781096B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102653659B1 (ko) * | 2019-07-05 | 2024-04-03 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 |
US11726869B2 (en) | 2019-08-20 | 2023-08-15 | Micron Technology, Inc. | Performing error control operation on memory component for garbage collection |
US11281578B2 (en) | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory sub-system during a low battery state |
US11282567B2 (en) | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Sequential SLC read optimization |
US20210055878A1 (en) * | 2019-08-20 | 2021-02-25 | Micron Technology, Inc. | Data compaction within the same plane of a memory component |
US11281392B2 (en) | 2019-08-28 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory component using an adjusted parameter |
KR20220020008A (ko) | 2020-08-11 | 2022-02-18 | 삼성전자주식회사 | 비휘발성 메모리를 포함하는 메모리 저장 장치 및 전자 장치 |
KR20220033784A (ko) * | 2020-09-10 | 2022-03-17 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 장치 및 스토리지 장치 |
US11467942B2 (en) | 2020-12-16 | 2022-10-11 | Western Digital Technologies, Inc. | Predictive performance indicator for storage devices |
KR20220099848A (ko) * | 2021-01-07 | 2022-07-14 | 에스케이하이닉스 주식회사 | 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN112817879B (zh) * | 2021-01-11 | 2023-04-11 | 成都佰维存储科技有限公司 | 垃圾回收方法、装置、可读存储介质及电子设备 |
US11507502B2 (en) * | 2021-02-23 | 2022-11-22 | Western Digital Technologies, Inc. | Data storage device performance prediction based on valid fragment count |
US11599416B1 (en) * | 2021-09-01 | 2023-03-07 | Micron Technology, Inc. | Memory sub-system using partial superblocks |
KR20230072196A (ko) * | 2021-11-17 | 2023-05-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126433A (zh) * | 2015-05-07 | 2016-11-16 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451265B2 (en) * | 2006-08-04 | 2008-11-11 | Sandisk Corporation | Non-volatile memory storage systems for phased garbage collection |
US8296498B2 (en) * | 2007-11-13 | 2012-10-23 | Sandisk Technologies Inc. | Method and system for virtual fast access non-volatile RAM |
US8626986B2 (en) | 2010-06-30 | 2014-01-07 | Sandisk Technologies Inc. | Pre-emptive garbage collection of memory blocks |
US8909860B2 (en) * | 2012-08-23 | 2014-12-09 | Cisco Technology, Inc. | Executing parallel operations to increase data access performance |
US9798657B2 (en) * | 2014-10-15 | 2017-10-24 | Samsung Electronics Co., Ltd. | Data storage device including nonvolatile memory device and operating method thereof |
KR102292198B1 (ko) | 2014-10-15 | 2021-08-25 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 및 그것의 동작 방법 |
KR20160075229A (ko) | 2014-12-19 | 2016-06-29 | 삼성전자주식회사 | 가비지 컬렉션 동작 방법 및 이를 적용하는 레이드 스토리지 시스템 |
KR102301772B1 (ko) | 2015-03-09 | 2021-09-16 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법 |
KR102291806B1 (ko) * | 2015-04-20 | 2021-08-24 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
US10210041B2 (en) * | 2015-11-05 | 2019-02-19 | SK Hynix Inc. | Systems and methods for low latency copy operations in non-volatile memory |
KR102601211B1 (ko) * | 2016-06-01 | 2023-11-10 | 삼성전자주식회사 | 빠른 재사용 메모리 블록 검출 방법 및 이를 이용한 메모리 블록 관리 방법 |
KR102340094B1 (ko) * | 2017-03-31 | 2021-12-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US10515008B2 (en) * | 2017-10-25 | 2019-12-24 | Western Digital Technologies, Inc. | Performance based memory block usage |
-
2019
- 2019-07-03 US US16/502,964 patent/US11030094B2/en active Active
- 2019-07-30 CN CN201910695645.4A patent/CN110781096B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126433A (zh) * | 2015-05-07 | 2016-11-16 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
Non-Patent Citations (1)
Title |
---|
朱康挺.一种NAND Flash的垃圾回收及块管理方法的设计.《万方学位论文》.2014,1-62. * |
Also Published As
Publication number | Publication date |
---|---|
CN110781096A (zh) | 2020-02-11 |
US20200042438A1 (en) | 2020-02-06 |
US11030094B2 (en) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110781096B (zh) | 用于通过预测需求时间来执行垃圾收集的设备和方法 | |
CN106874217B (zh) | 存储器系统及控制方法 | |
US10860231B2 (en) | Memory system for adjusting map segment based on pattern and operating method thereof | |
US11747989B2 (en) | Memory system and method for controlling nonvolatile memory | |
CN110928807B (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
US11449418B2 (en) | Controller and method for selecting victim block for wear leveling operation | |
US11392309B2 (en) | Memory system for performing migration operation and operating method thereof | |
US11526296B2 (en) | Controller providing host with map information of physical address for memory region, and operation method thereof | |
KR20210115954A (ko) | 컨트롤러 및 메모리 시스템 | |
US11422930B2 (en) | Controller, memory system and data processing system | |
CN110806837A (zh) | 数据处理系统及其操作方法 | |
CN111831578A (zh) | 用于处理存储器系统中的不同类型数据的设备及方法 | |
CN113805792A (zh) | 存储器系统及其操作方法 | |
KR20200014175A (ko) | 소요시간을 예측하여 가비지 컬렉션을 수행하는 방법 및 장치 | |
US11409444B2 (en) | Memory system and operation method thereof | |
CN115080457A (zh) | 控制器及其操作方法 | |
CN113918084B (zh) | 存储器系统及其操作方法 | |
CN110825317B (zh) | 用于分布式存储输入数据的存储器系统和数据处理系统 | |
CN114691534A (zh) | 控制器以及包括控制器的存储器系统 | |
CN116501655A (zh) | 将存储器块解除分配的存储控制器及其操作方法 | |
CN114328294A (zh) | 控制器、其操作方法以及包括控制器的存储器系统 | |
KR20230115196A (ko) | 메모리 블록을 할당 해제하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법 | |
CN114546885A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240613 Address after: American Texas Patentee after: Mimi IP Co.,Ltd. Country or region after: U.S.A. Address before: Gyeonggi Do, South Korea Patentee before: Sk Hynix Inc. Country or region before: Republic of Korea |