用于处理存储器系统中的不同类型数据的设备及方法与流程

文档序号:22676769发布日期:2020-10-28 12:33阅读:98来源:国知局
用于处理存储器系统中的不同类型数据的设备及方法与流程

相关申请的交叉引用

本申请要求于2019年4月18日提交的申请号为10-2019-0045679的韩国专利申请的优先权,其通过引用整体并入本文。

各个实施例涉及一种存储器系统及其操作方法,并且更具体地,涉及一种能够处理存储在存储器系统中的多个存储块中的数据,而不管数据类型的存储器系统及其操作方法。



背景技术:

计算机环境范例已经转变为可以随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已经迅速增长。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统以存储数据。存储器系统可以用作便携式电子装置的主存储装置或辅助存储装置。

存储器系统由于不具有移动部件,因此提供优异的稳定性、耐用性、高信息访问速度以及低功耗。具有这些优点的存储器系统的示例包括通用串行总线(usb)存储器装置、具有各种接口的存储卡以及固态驱动器(ssd)。



技术实现要素:

各个实施例涉及一种能够基于逻辑地址而以整体化方式管理用户块和元块两者的存储器系统及其操作方法。

另外,各个实施例涉及一种可以使用在主机或计算装置中使用的第一逻辑地址来控制用户数据,并且可以通过分配未在主机或计算装置中使用的第二逻辑地址来控制元数据的存储器系统及其操作方法。

应当理解的是,本公开要实现的技术目的不限于上述技术目的,并且对于本公开所属领域的普通技术人员而言,本文未提及的其他技术目的将通过以下描述而显而易见。

在实施例中,一种存储器系统可以包括:非易失性存储器,包括多个存储块,每个存储块包括多个页面;以及控制器,适于控制非易失性存储器装置,以将从主机接收到的用户数据存储在存储块之中的第一块中,生成与用户数据的存储相对应的元数据,并且将元数据存储在存储块之中的第二块中。控制器可以将主机中使用的第一逻辑地址映射到第一块的物理地址,并且可以将未在主机中使用的第二逻辑地址映射到第二块的物理地址,第一逻辑地址和第二逻辑地址是连续的。

控制器可以与主机共享第一逻辑地址的范围,可以响应于从主机接收的第一逻辑地址来在存储块之中选择第一块,并可以将所选择的第一块的物理地址映射到第一逻辑地址。

控制器可以设置第二逻辑地址的范围,该第二逻辑地址的范围与第一逻辑地址的范围不重叠且与第一逻辑地址的范围连续;并且当生成元数据时,控制器可以响应于第二逻辑地址来在存储块之中选择第二块,并可以将所选择的第二块的物理地址映射到第二逻辑地址。

控制器可以将与第一逻辑地址相对应的第一源块的有效数据移动到与第一逻辑地址相对应的第一目标块,并可以将与第二逻辑地址相对应的第二源块的有效数据移动到与第二逻辑地址相对应的第二目标块。

控制器可以设置参考逻辑地址以识别第一逻辑地址和第二逻辑地址;并且控制器可以在存储块之中选择用于合并操作的、与预定条件相对应的预源块,可以将预源块的逻辑地址与参考逻辑地址进行比较,并可以根据比较结果将预源块识别为第一源块和第二源块中的一个。

当将存储块之中的空闲块选择为预目标块时,控制器可以通过将预目标块的物理地址映射到第一逻辑地址,来将预目标块识别为第一目标块,并且可以通过将预目标块的物理地址映射到第二逻辑块,来将预目标块识别为第二目标块。

当将存储块之中的开放块选择为预目标块时,控制器可以通过将预目标块的逻辑地址与参考逻辑地址比较,来将与第一逻辑地址相对应的预目标块识别为第一目标块,并可以将与第二逻辑地址相对应的预目标块识别为第二目标块。

控制器可以将大于第一逻辑地址的范围的最大值的特定值设置为第二逻辑地址的范围的最小值,并且可以将该特定值设置为参考逻辑地址的值。

控制器可以将小于第一逻辑地址的范围的最小值的特定值设置为第二逻辑地址的范围的最大值,并且可以将该特定值设置为参考逻辑地址的值。

当预定条件为有效页面的数量是否小于或等于参考数量时,控制器可以选择预源块以执行垃圾收集作为合并操作;当预定条件为读取计数是否小于或等于第一参考计数时,控制器可以选择预源块以执行读取回收作为合并操作;并且当预定条件为编程/擦除周期计数是否大于或等于第二参考计数时,控制器可以选择预源块以执行耗损均衡作为合并操作。

在实施例中,一种操作存储器系统的方法,存储器系统包括非易失性存储器装置,该非易失性存储器装置包括多个存储块,每个存储块包括多个页面;该方法可以包括:将从主机接收到的用户数据存储在存储块之中的第一块中,第一块的物理地址映射到主机中使用的第一逻辑地址;生成与用户数据的存储相对应的元数据;以及将元数据存储在存储块之中的第二块中,第二块的物理地址映射到未在主机中使用的第二逻辑地址;第一逻辑地址和第二逻辑地址是连续的。

存储用户数据可以包括:与主机共享第一逻辑地址的范围;以及响应于从主机接收的第一逻辑地址来在存储块之中选择第一块,并将所选择的第一块的物理地址映射到第一逻辑地址。

存储元数据可以包括:设置第二逻辑地址的范围,该第二逻辑地址的范围与第一逻辑地址的范围不重叠且与第一逻辑地址的范围是连续的;以及当生成元数据时,响应于第二逻辑地址来在存储块之中选择第二块,并将所选择的第二块的物理地址映射到第二逻辑地址。

该方法还可以包括:在存储块之中选择源块和目标块以执行将源块的有效数据移动到目标块的合并操作;其中选择源块与目标块包括:当选择与第一逻辑地址相对应的第一源块时,选择与第一逻辑地址相对应的第一目标块,并将第一源块的有效数据移动到第一目标块;以及当选择与第二逻辑地址相对应的第二源块时,选择与第二逻辑地址相对应的第二目标块,并将第二源块的有效数据移动到第二目标块。

选择源块与目标块可以包括:设置参考逻辑地址以识别第一逻辑地址和第二逻辑地址;在存储块之中选择用于合并操作的、与预定条件相对应的源块;将在预选择步骤中选择的预源块的逻辑地址与参考逻辑地址进行比较;以及根据比较结果将预源块识别为第一源块和第二源块中的一个。

当将存储块之中的空闲块选择为预目标块时,选择源块和目标块可以进一步包括:通过将预目标块的逻辑地址映射到第一逻辑地址,来将预目标块识别为第一目标块;以及通过将预目标块的物理地址映射到第二逻辑地址,来将预目标块识别为第二目标块。

当将存储块之中的开放块选择为预目标块时,选择源块和目标块可以进一步包括:将预目标块的逻辑地址与参考逻辑地址进行比较;基于比较结果将与第一逻辑地址相对应的预目标块识别为第一目标块;以及基于比较结果将与第二逻辑地址相对应的预目标块识别为第二目标块。

设置参考逻辑地址可以包括:将大于第一逻辑地址的范围的最大值的特定值设置为第二逻辑地址的范围的最小值,并且将该特定值设置为参考逻辑地址的值。

参考逻辑地址的设置可以包括:将小于第一逻辑地址的范围的最小值的特定值设置为第二逻辑地址的范围的最大值,并且将该特定值设置为参考逻辑地址的值。

选择预源块可以包括:当预定条件为有效页面的数量是否小于或等于参考数量时,选择预源块以执行垃圾收集作为合并操作;当预定条件为读取计数是否小于或等于第一参考计数时,选择预源块以执行读取回收作为合并操作;并且当预定条件为编程/擦除周期计数是否大于或等于第二参考计数时,选择预源块以执行耗损均衡作为合并操作。

在实施例中,一种存储器系统可以包括:包括多个存储块的存储器装置,该存储器装置包括第一组块和第二组块;控制器,适于:从主机接收正常数据和与该正常数据相关联的第一逻辑地址;将正常数据存储在第一组块之中的第一块中,该第一块具有映射到第一逻辑地址的第一物理地址;在第二组块之中的第二块中,生成正常数据的元数据;将元数据存储在第二组块之中的第二块中,该第二块具有映射到虚拟逻辑地址的第二物理地址;对第一组块和第二组块执行垃圾收集操作。

根据本公开实施例的设备和操作方法的效果如下:

在根据本公开实施例的存储器系统中,当用于处理从主机或计算装置输入的用户数据与根据用户数据的存储而在存储器系统中生成的元数据的方案彼此不相同时,为了减少ftl(闪存转换层)程序代码的重叠和复杂度,使用了基本上相同的方案来处理不同类型的数据,从而可以减少ftl程序代码的重叠和复杂度,并且可以容易地实现调试。

另外,在根据本公开实施例的存储器系统中,因为用于存储从主机或计算装置输入的用户数据的用户块是通过在主机或计算装置中使用的第一逻辑地址来管理,并且用于存储根据用户数据的存储而在存储器系统中生成的元数据的元块是通过未在主机或计算装置中使用的第二逻辑地址来管理,所以基于逻辑地址以整体化方式管理用户块和元块的操作可以不对主机或计算装置的操作产生任何影响。

进一步地,在根据本公开实施例的存储器系统中,由于待在存储器系统中执行的操作不需要根据数据的类型而以不同方案分别地执行,因此不仅可容易地确定待在存储器系统中执行的操作的余量(margin),还可以提高在存储器系统中进行分配和使用资源的效率。

附图说明

图1是示出根据本公开实施例的以整体化方式管理用户块和元块的操作的示图。

图2为示出根据本公开实施例的包括存储器系统的数据处理系统的示图。

图3为示出根据本公开实施例的存储器系统中的控制器的示图。

图4为示出根据本公开实施例的待对存储器系统中的存储器装置执行的数据处理操作的示图。

图5为示出根据本公开实施例的基于逻辑地址以整体化方式管理用户块和元块的操作的示图。

图6为示出根据本公开实施例的存储器系统的合并操作的示图。

图7为示出根据本公开实施例的在存储器系统中执行的合并操作中的第一操作的流程图。

图8为示出根据本公开实施例的在存储器系统中执行的合并操作中的第二操作的流程图。

具体实施方式

下面将参考附图更详细地描述各个实施例。然而,本发明可以以不同的形式实施,并且不应被解释为限于本文阐述的实施例。相反,提供这些实施例以使得本公开将是透彻和完整的,并将向本领域技术人员充分传达本发明的范围。遍及本公开,在本发明的各个附图和实施例中,相同的附图标记指代相同的部件。

应当理解,附图是所描述的装置的简化示图,并且可能不包括公知的细节,以避免使本发明的特征模糊。

还应注意的是,在不脱离本发明的范围的情况下,一个实施例中出现的特征可以与另一实施例的一个或多个特征一起使用。

图1为示出根据本公开实施例的以整体化方式管理用户块和元块的操作的示图。

参照图1,数据处理系统100可以包括可以互操作的主机102和存储器系统110。主机102可以是计算装置,其可以以移动装置、计算机或服务器的形式实现。存储器系统110可以从主机102接收命令,并且可以存储或输出与接收到的命令相对应的数据。

存储器系统110可以具有可包括非易失性存储器单元的存储空间。例如,存储器系统110可以以闪速存储器或固态驱动器(ssd)的形式实现。

为了存储主机102请求的数据,存储器系统110可以执行将主机102使用的文件系统与包括非易失性存储器单元的存储空间联接的映射操作。根据主机102使用的文件系统的数据的地址可以称为逻辑地址或逻辑块地址。包括非易失性存储器单元的存储空间中的数据的地址可以称为物理地址或物理块地址。当主机102将逻辑地址与写入命令和数据一起发送到存储器系统110时,存储器系统110可以搜索用于存储数据的存储空间、可以利用该逻辑地址来映射搜索到的存储空间的物理地址、并且可以将数据编程到搜索到的存储空间中。当主机102将逻辑地址与读取命令一起发送到存储器系统110时,存储器系统110可以搜索映射到该逻辑地址的物理地址,并且可以将存储在搜索到的物理地址中的数据输出给主机102。

存储器系统110可以包括控制器130和非易失性存储器装置150。非易失性存储器装置150可以包括多个存储块,该多个存储块包括存储块block<0:9>、block<10:19>、block<20:29>、block<30:39>和block<40:49>。控制器130可以包括闪存转换层(ftl)组件40和存储器144。

主机102可以通过使用第一逻辑地址lba1来管理用户数据normal_data。控制器130可以使用存储器装置150中的存储块block<0:9>至block<40:49>之中的第一块,来存储从主机102接收的用户数据normal_data。控制器130可以将第一逻辑地址lba1映射到第一块的物理地址pba1。

控制器130可以生成与用户数据normal_data的存储相对应的元数据meta_data。即,控制器130可以生成与将用户数据normal_data存储在第一块中相对应的元数据meta_data。控制器130可以使用存储块block<0:9>至block<40:49>之中的、不与第一块重叠的第二块来存储元数据meta_data。控制器130可以将未在主机102中使用的第二逻辑地址lba2映射到第二块的物理地址pba2。

可以由闪存转换层组件40来执行以下操作:通过将第一逻辑地址lba1映射到第一块的物理地址pba1来生成元数据meta_data的操作,以及通过将第二逻辑地址lba2映射到第二块的物理地址pba2来生成元数据meta_data的操作。即,可以由闪存转换层组件40来执行通过映射逻辑地址与物理地址来生成元数据meta_data的操作。

与被存储在非易失性存储器装置150中分开地,在主机102和存储器系统110之间传送的用户数据normal_data可以临时存储在控制器130的存储器144中。由控制器130生成与来自主机102的用户数据normal_data的存储相对应的元数据meta_data,并且与被存储在非易失性存储器装置150中分开地,可以将该元数据meta_data临时存储在控制器130的存储器144中。

可存储在存储器系统110中的数据大小通常在制造存储器系统110的过程中被预先确定。例如,可以将可存储在存储器系统110中的数据大小确定为512gbyte或1tbyte。例如,当主机102与存储器系统110联接时,可存储在存储器系统110中的数据大小可以与主机102共享。主机102可以根据存储器系统110的可存储数据大小,来确定第一逻辑地址lba1的范围。存储器系统110可以与主机102共享第一逻辑地址lba1的范围。也就是说,由主机102确定的第一逻辑地址lba1的范围可以与存储器系统110共享,并且存储器系统110可以通过参考第一逻辑地址lba1的范围来确定第二逻辑地址lba2的范围。第二逻辑地址lba2的范围可以不与第一逻辑地址lba1的范围重叠并且可以与第一逻辑地址lba1的范围是连续的。主机102可不知晓存储器系统110中是否使用了第二逻辑地址lba2。

没有预先限定在存储器装置150中的存储块block<0:9>至block<40:49>之中,选择哪个存储块作为第一块并且选择哪个存储块作为第二块。即,控制器130可以选择存储块block<0:9>至block<40:49>之中的任何一个块作为第一块,并且可以选择存储块block<0:9>至block<40:49>之中的任何其他块作为第二块。

这是因为控制器130在存储块block<0:9>至block<40:49>之中选择第一块的时间可与从主机102一起接收到用户数据normal_data与第一逻辑地址lba1的时间相对应。类似地,控制器130在存储块block<0:9>至block<40:49>之中选择第二块的时间可与控制器130生成元数据meta_data的时间相对应。

控制器130可以响应于来自主机102的、与用户数据normal_data一起输入的第一逻辑地址lba1,在存储块block<0:9>至block<40:49>之中选择至少一个第一块。进一步地,控制器130可以将第一逻辑地址lba1映射到所选择的第一块的物理地址。可选地,可以在存储块block<0:9>至block<40:49>之中选择多个第一块,并且可以根据用户数据normal_data的大小而变化。

进一步地,当生成元数据meta_data时,控制器130可以通过参考第一逻辑地址lba1的范围,来确定与元数据meta_data相对应的第二逻辑地址lba2。响应于与元数据meta_data相对应的第二逻辑地址lba2,控制器130可以在存储块block<0:9>至block<40:49>之中选择至少一个第二块。进一步地,控制器130可以将与元数据meta_data相对应的第二逻辑地址lba2映射到所选择的第二块的物理地址。根据元数据meta_data的大小,可以在存储块block<0:9>至block<40:49>之中选择一个或多个第二块。

图2为示出根据本公开实施例的包括存储器系统110的数据处理系统100的示图。

参照图2,数据处理系统100可以包括联接到存储器系统110的主机102。

主机102可以包括电子装置,例如,诸如移动电话、mp3播放器和膝上型计算机的便携式电子装置,或者诸如台式计算机、游戏机、电视(tv)和投影仪的非便携式电子装置,即有线和无线电子装置。

主机102可以包括至少一个操作系统(os),以用于管理和控制主机102的功能和操作,并使用数据处理系统100或存储器系统110来在主机102和用户之间提供互操作性。操作系统可以支持与用户的使用目的和操作系统的使用相对应的功能和操作。例如,根据主机102的移动性,可以将操作系统分类为通用操作系统和移动操作系统。另外,根据用户的使用环境,可以将一般操作系统分类为个人操作系统和企业操作系统。例如,个人操作系统的特征在于支持针对普通用户的服务提供功能,可以包括window和chrome;而企业操作系统的特征在于确保和提供高性能,可以包括windows服务器、linux和unix。另外,移动操作系统的特征在于支持针对用户的移动服务提供功能和系统节能功能,可以包括android、ios、windowsmobile等。主机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可以包括:存储器装置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)播放器、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)堆叠结构。

控制器130可以响应于来自主机102的请求控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供给主机102,并且可以将从主机102提供的数据存储在存储器装置150中。为此,控制器130可以控制存储器装置150的操作,诸如读取操作、写入操作、编程操作和擦除操作。

控制器130可以包括主机接口132、处理器134、错误校正码(ecc)组件138、电源管理单元(pmu)140、存储器接口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)码、涡轮码、里德-所罗门(rs)码、卷积码、递归系统代码(rsc)、网格编码调制(tcm)和分组编码调制(bcm)。然而,ecc组件138不限于这些校正技术。同样地,ecc组件138可以包括用于合适的错误校正的所有电路、模块、系统或装置。

pmu140可以提供和管理控制器130的电力。

存储器接口142可以用作可以执行控制器130与存储器装置150之间的接口连接的存储器/存储接口。存储器接口142可以允许控制器130响应于来自主机102的请求来控制存储器装置150。存储器接口142可以生成用于存储器装置150的控制信号,并且可以在处理器134的控制下处理数据。当存储器装置150是闪速存储器时,特别是当存储器装置150是nand闪速存储器时,存储器接口142可以是nand闪存控制器(nfc)。存储器接口142可以支持接口,例如nand闪存接口的操作,该接口可以处理控制器130与存储器装置150之间的命令和数据。具体地,存储器接口142可以处理在控制器130和存储器装置150之间的数据输入/输出。存储器接口142可以通过称为闪存接口层(fil)的固件来驱动,闪存接口层(fil)是与存储器装置150交换数据的区域。

作为存储器系统110和控制器130的工作存储器,存储器144可以存储用于驱动存储器系统110和控制器130的数据。在控制器130响应于来自主机102的请求控制存储器装置150的过程期间,在将从存储器装置150读取的用户数据normal_data提供给主机102之前,存储器144可以临时存储该用户数据normal_data。另外,在将从主机102提供的用户数据normal_data存储到存储器装置150中之前,控制器130可以将该用户数据normal_data临时存储在存储器144中。当控制器130控制存储器装置150的读取、写入、编程和擦除操作时,可以将待在存储器系统110中的控制器130和存储器装置150之间发送或生成的数据normal_data和meta_data存储在存储器144中。例如,存储器144可以存储执行主机102和存储器装置150之间的数据写入和读取操作所需的元数据meta_data以及当执行数据写入和读取操作时的用户数据normal_data。为了进行这样的数据存储,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存以及映射缓冲器/高速缓存。

存储器144可以由易失性存储器实现。例如,存储器144可以由静态随机存取存储器(sram)或动态随机存取存储器(dram)实现。如图所示,存储器144可以存在于控制器130的内部。可选地,与附图所示出的不同,存储器144可以存在于控制器130的外部。存储器144可以实现为外部易失性存储器,其中通过单独的存储器接口,将来自控制器130的数据输入到该外部易失性存储器,并且将来自该外部易失性存储器的数据输出到控制器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中可以包括合并操作控制电路196。

存储器装置150的后台操作可以包括交换存储器装置150的存储块152、154和156,或存储在存储块152、154和156中的数据的操作,例如耗损均衡(wl)操作和读取回收(rr)操作。此外,存储器装置150的后台操作可以包括将存储在控制器130中的映射数据存储到存储器装置150的存储块152、154和156中的操作,例如映射清除操作;存储器装置150的坏块管理操作,即检查和处理存储器装置150的多个存储块152、154和156之中的坏块的坏块管理操作。

此处,可以将复制、交换、移动或合并存储块152、154和156或者存储在存储块152、154和156中的数据的操作,诸如垃圾收集操作、耗损均衡操作和读取回收操作,定义为合并操作。控制器130的处理器134可以包括用于控制合并操作的合并操作控制电路196。

在处理器134中,可以包括用于执行存储器装置150的坏块管理的管理组件(未示出)。该管理组件可以检查存储器装置150中的多个存储块152、154和156之中的坏块,然后可以执行将检查到的坏块作为坏块处理的坏块管理。当存储器装置150是闪速存储器(例如,nand闪速存储器)时,由于nand闪速存储器的特性,当执行写入操作(编程操作)时可能发生编程失败。管理组件可以将已发生编程失败的存储块作为坏块处理,并且可以将编程失败的数据写入新的存储块中。

下面将描述控制器130的编程操作、读取操作和擦除操作。

首先,控制器130可以将与从主机102接收的编程命令相对应的编程数据normal_data存储在存储器144中的缓冲器/高速缓存中。随后,控制器130可以将存储在缓冲器/高速缓存中的数据normal_data存储到存储器装置150中的存储块152、154和156中。即,当从主机102接收到写入命令时,控制器130可以执行与写入命令相对应的编程操作。此时,控制器130可以将与写入命令相对应的数据normal_data存储到存储器装置150的存储块152、154和156之中的至少一个中(例如,存储块之中的空存储块、开放存储块或执行了擦除操作的空闲存储块)。另外,控制器130可以将与编程操作相对应的映射数据meta_data更新到存储器装置150。随后,控制器130可以将所更新的映射数据meta_data存储到存储器装置150中的存储块152、154和156中。即,控制器130可以将存储在存储块中的用户数据normal_data的逻辑/物理(逻辑到物理,l2p)地址信息(或者l2p映射),以及物理/逻辑(物理到逻辑,p2l)地址信息(或者p2l映射),以映射表或映射列表的形式存储到存储器装置150的存储块之中的空存储块、开放存储块或空闲存储块中。

当从主机102接收到读取命令时,控制器130可以通过检查与读取命令相对应的数据normal_data的映射数据meta_data,来从存储器装置150读取与读取命令相对应的数据normal_data。进一步地,控制器130可以将所读取的数据normal_data存储到控制器130的存储器144中的缓冲器/高速缓存中,然后可以将存储在缓冲器/高速缓存中的数据normal_data提供给主机102。

当从主机102接收到擦除命令时,控制器130可以执行检查与该擦除命令相对应的存储块、擦除存储在检查到的存储块中的数据的擦除操作。进一步地,擦除操作可以包括:更新与所擦除的数据相对应的映射数据meta_data,然后将所更新的映射数据meta_data存储到存储器装置150中包括的存储块152、154和156中。

在映射数据中,存在与编程操作相对应的存储块中存储的数据的逻辑/物理(逻辑到物理,l2p)信息和物理/逻辑(物理到逻辑,p2l)信息。

与命令相对应的数据可以包括用户数据normal_data和由控制器130生成的、与用户数据normal_data的存储相对应的元数据meta_data。元数据meta_data可以包括由控制器130生成的、与存储在存储器装置150中的用户数据normal_data相对应的映射数据。另外,元数据meta_data可以包括关于与从主机102接收的命令相对应的命令数据normal_data的信息、关于与命令相对应的命令操作的信息、关于待被执行命令操作的存储器装置150中的存储块的信息、以及关于与命令操作相对应的映射数据的信息。换言之,元数据meta_data可包括用于命令操作的、除了与从主机102接收的命令相对应的用户数据normal_data之外的信息和数据。如上所述,元数据meta_data可以由控制器130生成。控制器130的处理器134中可以包括用于生成元数据meta_data的元数据生成电路198。

待存储到存储器装置150中的用户数据normal_data可以以具有预定大小的段为单位进行划分。预定大小可以与存储器系统110与主机102互操作所需的最小数据大小相同。根据实施例,可以对应于存储器装置150中的配置和控制方法,来确定作为用户数据normal_data的单位的数据段大小。当将用户数据normal_data的数据段存储到存储器装置150的存储块中时,控制器130可以生成或更新与所存储的数据段相对应的映射地址。当控制器130生成元段时,其中每个元段为元数据meta_data的单位,元数据meta_data包括映射地址(例如,作为映射数据的映射段的逻辑/物理(l2p)段和物理/逻辑(p2l)段),或者将存储在存储块中的映射段加载至存储器144并且随后被更新时,可以将映射段存储到存储器装置150的存储块中。

图3为示出根据本公开实施例的存储器系统中的控制器130的示图。

虽然未在图3中示出,但是闪存转换层(ftl)组件40中可以包括图2的ecc组件138。根据实施例,ecc组件138可以由控制器130中的单独的模块、电路或固件来实现。

参照图3,主机接口(i/f)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可以包括状态管理器(sm)42、映射管理器(mm)44、主机请求管理器(hrm)46和块管理器(bm)48。主机请求管理器46可以管理从事件队列54输入的事件。映射管理器44可以处理或控制映射数据。状态管理器42可执行诸如垃圾收集(gc)、耗损均衡(wl)或读取回收(rr)的合并操作。块管理器48可以对存储器装置150中的块执行命令或指令。

作为示例而非限制,主机请求管理器46可以根据读取和编程命令以及从主机接口132传递的事件,使用映射管理器44和块管理器48来处置或处理请求。主机请求管理器46可以向映射数据管理器44发送查询请求,以确定与事件一起输入的逻辑地址相对应的物理地址。主机请求管理器46可以将具有物理地址的读取请求发送到存储器接口(i/f)142,以处理读取请求(或处置事件)。另一方面,主机请求管理器46可以向块管理器48发送编程请求(或写入请求),以将数据编程到存储器装置150中的特定的空闲页面(即,没有数据的页面)。进一步地,主机请求管理器46可以将与编程请求相对应的映射更新请求发送到映射管理器44,以更新映射信息中的与编程数据相关的项目。该映射信息可以指示逻辑地址和物理地址之间的映射关系。

块管理器48可以将从主机请求管理器46、映射数据管理器44和/或状态管理器42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强存储器系统110的编程或写入性能,块管理器48可以收集编程请求,并将用于多平面和单触发编程操作的闪存编程请求发送到存储器接口142。块管理器48可以向存储器接口142发送若干闪存编程请求,以增强或最大化多通道和多向闪存控制器的并行处理。

块管理器48可以根据有效页面的数量来管理存储器装置150中的块。进一步地,当需要空闲块时,块管理器48可以选择并擦除没有有效页面的块。再进一步地,当确定了需要垃圾收集时,块管理器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可以执行映射更新以确保准确性。

在实施例中,块管理器48、映射管理器44和状态管理器42中的至少一个可以包括以上在图1和图2中以及以下在图6中所描述的合并操作控制电路196和元数据生成电路198。

存储器装置150可以包括多个存储块。根据可以在存储块的一个存储器单元中存储或表示的位的数量,多个存储块中的每一个可以实现为诸如以下的各种类型中的任意一种:单层单元(slc)存储块和多层单元(mlc)存储块。slc存储块可以包括由每个存储一位数据的存储器单元实现的多个页面。slc存储块可以具有数据输入和输出(i/o)操作的高性能和高耐用性。mlc存储块可以包括由每个存储多位数据(例如,两位或更多位)的存储器单元实现的多个页面。在相同的空间中,mlc存储块可比slc存储块具有更大的存储容量。在存储容量方面,mlc存储块可以被高度集成。在实施例中,存储器装置150可以用mlc存储块来实现,诸如mlc存储块、三层单元(tlc)存储块、四层单元(qlc)存储块或它们的组合。mlc存储块可以包括由每个能够存储2位数据的存储器单元实现的多个页面。三层单元存储块可以包括由每个能够存储3位数据的存储器单元实现的多个页面。四层单元存储块可以包括由每个能够存储4位数据的存储器单元实现的多个页面。在另一实施例中,存储器装置150可以利用包括由每个能够存储5位或更多位数据的存储器单元实现的多个页面的块来实现。

在实施例中,存储器装置150实施为例如闪速存储器的非易失性存储器,诸如nand闪速存储器和nor闪速存储器。但是,存储器装置150可以由相变随机存取存储器(pcram)、铁电随机存取存储器(fram)和自旋转移力矩磁性随机存取存储器(stt-ram或stt-mram)中的至少一种来实现。

图4为示出根据实施例的关于存储器系统中的存储器装置的数据处理操作的示图。

参照图4,控制器130可以从主机102接收编程命令、编程数据和逻辑地址。响应于编程命令,控制器130可以将编程数据编程和存储到存储器装置150的存储块552至584中的多个页面中。

控制器130可以生成和更新编程数据的元数据,并且可以将元数据编程和存储到存储器装置150的存储块552至584中。元数据可以包括存储在存储块552至584中的编程数据的逻辑/物理(l2p)信息和物理/逻辑(p2l)信息。另外,元数据可以包括关于与从主机102接收的命令相对应的命令数据的信息、关于与该命令相对应的命令操作的信息、关于待被执行命令操作的存储器装置150的存储块的信息,以及关于与命令操作相对应的映射数据的信息。换言之,元数据可以包括与从主机102接收的命令相对应的、除了编程数据之外的所有其余信息和数据。

逻辑/物理(l2p)信息和物理/逻辑(p2l)信息表示控制器130响应于编程命令而映射与逻辑地址相对应的物理地址的信息。物理地址可以是与存储器装置150的物理存储空间相对应的、待存储从主机102接收的编程数据的地址。

控制器130可以将逻辑地址与物理地址之间的映射信息,即逻辑/物理(l2p)信息和物理/逻辑(p2l)信息,存储到存储器装置150的存储块522至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的物理地址、从通过检查知晓的存储位置,即存储块552至584之中的特定存储块的特定页面,来读取用户数据的数据段512、将数据段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中。

图5为示出根据本公开实施例的基于逻辑地址以整体化方式管理用户块和元块的操作的示图。

参照图1至图5,存储器系统110的控制器130可以使用存储器装置150中的存储块block<0:9>至block<40:49>之中的第一块1st_block,来存储从主机102输入的用户数据normal_data。控制器130可以将第一逻辑地址lba1映射到第一块1st_block的物理地址pba1。

控制器130可以使用存储块block<0:9>至block<40:49>之中的、不与第一块1st_block重叠的第二块2nd_block来存储元数据meta_data。控制器130可以将未在主机102中使用的第二逻辑地址lba2映射到第二块2nd_block的物理地址pba2。

存储器系统110可以与主机102共享第一逻辑地址lba1的范围。也就是说,由主机102确定的第一逻辑地址lba1的范围可以与存储器系统110共享,并且存储器系统110可以通过参考第一逻辑地址lba1的范围来确定第二逻辑地址lba2的范围。第二逻辑地址lba2的范围可以不与第一逻辑地址lba1的范围重叠。主机102可不知晓存储器系统110中是否使用了第二逻辑地址lba2。

参照图5,第一逻辑地址lba1的范围可以设置为0x00000000至0x01dc1800。第二逻辑地址lba2的范围可以设置为0x02000000至0x02020000。即,可以将第一逻辑地址lba1的范围和第二逻辑地址lba2的范围设置为不相互重叠。

控制器130可以设置参考逻辑地址值以区分第一逻辑地址lba1和第二逻辑地址lba2。例如,当第一逻辑地址lba1的范围小于第二逻辑地址lba2的范围时,控制器130可以将大于第一逻辑地址lba1的范围中的最大值的特定值,设置为第二逻辑地址lba2的范围中的最小值,并且可以将该特定值设置为参考逻辑地址值。例如,可以将参考逻辑地址值设置为0x02000000,具有大于或等于作为参考逻辑地址值的0x02000000的值的逻辑地址可以是第二逻辑地址lba2,并且具有小于作为参考逻辑地址值的0x02000000的值的逻辑地址可以是第一逻辑地址lba1。可选地,第一逻辑地址lba1的范围可以大于第二逻辑地址lba2的范围。在这种情况下,控制器130可以将小于第一逻辑地址lba1的范围中的最小值的特定值,设置为第二逻辑地址lba2的范围中的最大值,并且可以将该特定值设置为参考逻辑地址值。

第一块1st_block可以包括用于存储启动数据的启动块、用于存储用户数据的用户块、用于存储安全数据的回放保护存储块(rpmb)和用于存储增强数据的增强块。第二块2nd_block可以包括用于存储映射数据的映射块、用于存储历史数据的历史块和用于存储块状态信息的块状态表(bst)。

图6为示出根据本公开实施例的存储器系统的合并操作的示图。

参照图6,合并操作可以由存储器系统110自行执行,而无需从主机102接收命令。可选地,可响应于从主机102接收到的合并操作命令(未示出),来在存储器系统110中执行合并操作。存储器系统110的控制器130可以从存储器装置150的至少一个源块40_1读取数据,并且可以将该数据存储到控制器130的存储器144中。进一步地,控制器130可以将数据编程到存储器装置150中的至少一个目标块40_2中。该至少一个源块40_1可以包括不能再被编程数据的块。在实施例中,存储器144可以设置在控制器130的外部并且与控制器130互操作。

控制器130的合并操作控制电路196可以通过检查存储器装置150的状态而自启动以执行合并操作,或者可以响应于从主机102接收到的合并操作命令而执行合并操作。

下面将详细描述通过合并操作控制电路196执行的合并操作。

合并操作控制电路196可以选择存储器装置150中的多个存储块之中的至少一个作为源块40_1。此外,合并操作控制电路196可以选择存储器装置150中的多个存储块之中的至少一个作为目标块40_2。合并操作控制电路196可以搜索并提取源块40_1中的有效数据,并且可以将有效数据移动到目标块40_2。源块40_1中的被确定为不再有效的数据可以丢弃(即,可以不移动到目标块40_2)。如果将存储在源块40_1中的有效数据移动到目标块40_2,则控制器130不再认为特定的源块40_1具有有效数据。此后,如果需要将新数据编程到源块40_1中,则可以擦除存储在源块40_1中的所有数据。

在实施例中,控制器130可以使用存储器144以临时存储在合并操作期间选择的有效数据,直到将该有效数据编程到目标块40_2中。

参照图1至图6,存储器装置150中的多个存储块block<0:9>至block<40:49>可以划分为与第一逻辑地址lba1相对应的第一块1st_block和与第二逻辑地址lba2相对应的第二块2nd_block。

控制器130可以将用户数据normal_data存储到第一块1st_block中,并且可以将元数据meta_data存储到第二块2nd_block中。

在实施例中,当存储块之中的被选择用于合并操作的预源块对应于第一逻辑地址lba1时,控制器130的合并操作控制电路196可以将预源块识别为第一源块。合并操作控制电路196可以收集至少一个第一源块中的有效数据,并且可以将所收集的有效数据移动到与第一逻辑地址lba1相对应的至少一个第一目标块。换言之,合并操作控制电路196可以使得执行在与第一逻辑地址lba1相对应的第一源块和第一目标块之间移动用户数据normal_data的合并操作。当存储块之中的被选择用于合并操作的预源块对应于第二逻辑地址lba2时,合并操作控制电路196可以将该预源块识别为第二源块。合并操作控制电路196可以收集第二源块中的有效数据,并且可以将所收集的有效数据移动到与第二逻辑地址lba2相对应的第二目标块。换言之,合并操作控制电路196可以使得执行在与第二逻辑地址lba2相对应的第二源块和第二目标块之间移动元数据meta_data的合并操作。

在每个存储块中,可以从第一页面到最后页面顺序地编程数据。如果相应块中的没有页面被编程有数据,则该相应块是空闲块。空闲块的物理地址可能没有映射到任何逻辑地址。如果相应块中编程了至少一个数据,并且可以将新数据附加地编程到该相应块中,则该相应块是开放块。开放块的物理地址可以映射到特定的逻辑地址。如果相应块的最后页面中编程了数据,并且不能将新数据再编程到该相应块中,则该相应块可能是封闭块。封闭块的物理地址可以映射到特定的逻辑地址。

在实施例中,合并操作控制电路196可以在存储块中的封闭块和开放块之中选择与预定条件相对应的源块40_1作为预源块。进一步地,当预源块与第一逻辑地址lba1相对应时,合并操作控制电路196可以将预源块识别为第一源块,或者当预源块对应于第二逻辑地址lba2时,合并操作控制电路196可以将预源块识别为第二源块。

合并操作控制电路196可以在存储块中的开放块和空闲块之中选择目标块40_2作为预目标块。详细地,当选择未映射到逻辑地址的空闲块作为预目标块时,合并操作控制电路196可以通过将预目标块的逻辑地址与第一逻辑地址lba1匹配来将预目标块识别为第一目标块,或者可以通过将预目标块的逻辑地址与第二逻辑地址lba2匹配来将预目标块识别为第二目标块。当将映射到逻辑地址的开放块选择为预目标块时,当预目标块对应于第一逻辑地址lba1时,合并操作控制电路196可以将该预目标块识别为第一目标块,或者当预目标块对应于第二逻辑地址lba2时,合并操作控制电路196可以将该预目标块识别为第二目标块。

合并操作可以是垃圾收集操作、读取回收操作和耗损均衡操作中的任何一种操作。可以根据合并操作是哪种操作来改变合并操作控制电路196的预定条件。当合并操作是垃圾收集操作时,合并操作控制电路196可以根据预定条件,通过确定有效页面的数量是否小于或等于参考数量,来在存储块之中选择至少一个源块40_1。当合并操作是读取回收操作时,合并操作控制电路196可以根据预定条件,通过确定读取计数是否小于或等于参考计数,来在存储块之中选择至少一个源块40_1。当合并操作是耗损均衡操作时,合并操作控制电路196可以根据预定条件,通过确定编程/擦除周期计数是否大于或等于参考计数,来在存储块之中选择至少一个源块40_1。

图7为示出根据本公开实施例的在存储器系统中执行的合并操作中的第一操作的流程图。

参照图1至图7,可以看到存储器系统110的控制器130如何选择用于执行合并操作的源块。

在图7中,控制器130可以检查是否需要执行合并操作(s10)。

当不需要执行合并操作时(步骤s10的“否”),可以不执行选择源块的操作。

当需要执行合并操作时(步骤s10的“是”),可以在多个存储块之中选择与预定条件相对应的块作为预源块(s20)。例如,当合并操作是垃圾收集操作时,可以在多个存储块之中选择有效页面的数量小于或等于参考数量的块作为预源块。当合并操作是读取回收操作时,可以在多个存储块之中选择读取计数小于或等于参考计数的块作为预源块。当合并操作是耗损均衡操作时,可以在多个存储块之中选择编程/擦除周期计数大于或等于参考计数的块作为预源块。

在存储块之中选择预源块之后,可以将与该预源块相对应的逻辑地址lba的值与参考逻辑地址的值进行比较(s30)。

当检查到预源块对应于第一逻辑地址lba1(s30中的对应于lba1)时,可以将预源块识别为第一源块(s40)。

当将预源块识别为第一源块时,可以执行以下操作:选择目标块以将第一源块的有效数据移动到该目标块的操作,以及将第一源块的有效数据移动到所选择的目标块的合并操作(s60)。下面将参照图8描述选择目标块的操作以及合并操作的执行。

当检查到预源块对应于第二逻辑地址lba2(s30中的对应于lba2)时,可以将预源块识别为第二源块(s50)。

当将预源块识别为第二源块时,可以执行以下操作:选择目标块以将第二源块的有效数据移动到该目标块的操作,以及将第二源块的有效数据移动到所选择的目标块的合并操作(s60)。下面将参照图8描述选择目标块的操作以及合并操作的执行。

图8为示出根据本公开实施例的在存储器系统中执行的合并操作中的第二操作的流程图。

参照图1至图8,可以看到存储器系统110的控制器130如何选择用于执行合并操作的目标块。

如上文参照图7所述,在执行步骤s20、步骤s30和s40之后,或在执行步骤s20、步骤s30和s50之后,可以由控制器130执行选择用于执行合并操作的目标块的操作。步骤s20可以包括选择用于执行合并操作的预源块。步骤s30和s40可以包括:当预源块对应于第一逻辑地址lba1时,将预源块识别为第一源块。步骤s30和s50可以包括:当预源块对应于第二逻辑地址lba2时,将预源块识别为第二源块。

在图8中,控制器130可以确定将开放块和空闲块之中的哪个块选择为用于执行合并操作的预目标块(t10)。在选择开放块作为预目标块之前,开放块可以处于与第一逻辑地址lba1和第二逻辑地址lba2中的任意一个逻辑地址匹配的状态。也就是说,在开放块的情况下,可以在已经存储有数据的状态下附加地编程新数据。因此,在选择开放块作为预目标块之前,在编程存储在相应开放块中的数据的过程中,相应开放块可能已经处于与第一逻辑地址lba1和第二逻辑地址lba2中的任意一个逻辑地址匹配的状态。因为空闲块可被选择作为处于没有存储数据状态的预目标块,所以当将空闲块选择为预目标块时,空闲块可以处于没有匹配到逻辑地址的状态。

当选择空闲块作为预目标块时(步骤t10中的空闲块),可检查第一源块和第二源块中的哪个块的有效数据待移动到预目标块(t20)。

当预源块是与第一逻辑地址lba1对应的第一源块时(图7的s40),可以对应于第一源块的有效数据待移动到预目标块的情况。在预源块是与第二逻辑地址lba2相对应的第二源块的情况下(图7的s50),可以对应于第二源块的有效数据待移动到预目标块的情况。

当第一源块的有效数据待移动到预目标块时(步骤t20中的第一源块),可以将预目标块与第一逻辑地址lba1匹配以被识别为第一目标块(t30)。随后,第一源块的有效数据可以移动到第一目标块,并且可以完成合并操作(t60)。

当第二源块的有效数据待移动到预目标块时(步骤t20中的第二源块),可以将预目标块与第二逻辑地址lba2匹配以被识别为第二目标块(t40)。随后,第二源块的有效数据可以移动到第二目标块,并且可以完成合并操作(t70)。

当选择开放块作为预目标块时(步骤t10中的开放块),在从存储块之中选择了预目标块之后,可以将与该预目标块相对应的逻辑地址lba的值与参考逻辑地址的值进行比较(t50)。

作为与预目标块相对应的逻辑地址lba的值与参考逻辑地址的值的比较结果,当预目标块被检查为与第一逻辑地址lba1相对应的第一目标块时(步骤t50中的对应于lba1),可以选择第一源块的有效数据并且可以将第一源块的有效数据移动到第一目标块,并且可以完成合并操作(t60)。

作为与预目标块相对应的逻辑地址lba的值与参考逻辑地址的值的比较结果,当预目标块被检查为与第二逻辑地址lba2相对应的第二目标块时(步骤t50中的对应于lba2),可以选择第二源块的有效数据并且可以将第二源块的有效数据移动到第二目标块,并且可以完成合并操作(t70)。

如上所述,当需要将第一源块的有效数据和第二源块的有效数据都移动到目标块时,通过选择作为空闲块或开放块的第一目标块,并选择作为空闲块或开放块的第二目标块,可以将第一源块的有效数据移动到第一目标块,并且将第二源块的有效数据移动到第二目标块。

在存储器系统110中,可以基于逻辑地址以整体化方式,来管理用于存储来自主机102的用户数据的用户块,以及用于存储由存储器系统110根据用户数据的存储而生成的元数据的元块。因此,可以减少用于控制存储器系统110中的用户块和元块的操作的闪存转换层(ftl)的程序代码的重叠和复杂性,并且可以容易地实现调试。

此外,在存储器系统110中,可以通过主机102中使用的第一逻辑地址来管理用于存储来自主机102的用户数据的用户块,并且可以通过主机102中未使用的第二逻辑地址来管理用于存储由存储器系统110根据用户数据的存储而生成的元数据的元块。因此,主机可不知晓存储器系统110基于逻辑地址以整体化方式不仅管理用户块,而且还管理元块。因此,基于逻辑地址以整体化方式管理用户块和元块的存储器系统110的操作不会对主机102的操作产生任何影响。

尽管已经出于说明性目的描述了各个实施例,但是对于本领域技术人员显而易见的是,在不脱离如所附权利要求书所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1