存储器控制器、非易失性存储器系统及其操作方法与流程

文档序号:11590222阅读:217来源:国知局

相关申请的交叉引用

本申请要求2015年9月22日向韩国知识产权局提交的第10-2015-0133887号韩国专利申请的权益,其主题内容通过引用整体并入本文。

本发明构思涉及非易失性存储器系统,而且更具体地,涉及能够执行无用数据(garbage)收集操作的存储器控制器、非易失性存储器系统以及相关方法。



背景技术:

存储器系统,例如,快闪存储器系统被广泛用作通用串行总线(usb)驱动器、数码相机、移动电话、智能电话、平板个人计算机(pc)存储卡和固态驱动器(ssd)中的非易失性存储器设备。在快闪存储器设备中,写/读单元和擦除单元可以彼此不同,并且因此存储器操作可以由快闪转换层(ftl)管理,ftl可以包括固件。

在快闪存储器系统中,数据可以被写入已擦除的块(例如,空闲块),并且可以执行无用数据收集操作以确保一个或多个空闲块。由于数据可以根据无用数据收集操作的执行而转移,因此数据的地址映射信息可以被改变,而且存储器系统的特定区域可以频繁更新或者元数据写入量可以在更新其映射信息的过程中增加。这可能增加完成无用数据收集所需的等待时段,并且还可以缩短存储器系统的有效寿命。



技术实现要素:

附图说明

根据以下结合附图的详细描述,本发明构思的实施例将更加容易理解,在附图中:

图1是示出根据本发明构思的实施例的存储器系统的总体框图;

图2是进一步示出图1的存储器控制器的一个实施例的框图;

图3是进一步示出图1的存储器设备的一个实施例的框图;

图4是概括根据本发明构思的实施例的存储器控制器的一个示例性操作的流程图;

图5是示出图3的存储器单元阵列的一个可能结构的概念图;

图6a和图6b分别是示出存储在映射表中的映射信息的示例的概念图;

图7、图8和图9各自是示出根据本发明构思的某些实施例的执行无用数据收集操作的示例、使用存储在更新高速缓存中的信息来更新存储器设备的映射表的示例、以及在无用数据收集操作期间针对映射表多次执行更新操作的示例的概念图;

图10、图11和图12各自是概括用于本发明构思的实施例的各种存储器控制器操作的流程图;

图13是示出当数据按随机模式(randompattern)被写入时包括在块中的有效数据数目(计数)的示例的曲线图;

图14a和图14b各自是示出选择源块和目标块的示例和存储在更新高速缓存中的映射信息的示例的框图;

图15是示出根据本发明构思的实施例的更新映射表的示例的框图;

图16是概括根据本发明构思的实施例的存储器控制器的操作的流程图;

图17是示出根据所选择的源块的数目的更新操作的频率(计数)的示例的曲线图;

图18是示出根据本发明构思的实施例的存储器控制器的配置的框图;

图19是示出用于存储器设备的存储器单元阵列的一个可能实现变体的透视图;

图20是示出根据本发明构思的实施例的、将存储器系统应用于存储卡系统的示例的框图;以及

图21是示出根据本发明构思的实施例的、将存储器设备应用到固态驱动(ssd)系统的示例的框图。

具体实施方式

如本文所使用的,术语“和/或”包括一个或多个关联的列出项的的任意组合和所有组合。当诸如“中的至少一个”出现在元件的列表之后时,它修饰元件的整个列表,而不是修饰该列表的各个元件。

下文中,将参照附图详细描述本发明构思的实施例。提供这些实施例以使得本公开将是彻底和完整的,并且向本领域普通技术人员充分传达本发明构思。本发明构思可以包括各种实施例和修改,并且其实施例在附图中示出并且将在本文中详细说明。然而,应该理解的是,本发明构思不限制于这些实施例,并且包括落入本发明构思的范围内的所有修改、等同和替换。在说明书和附图中,相同的参考数字和标记始终指代相同或相似的元件。在附图中,为了便于描述和清楚,结构的维度可能被夸大。

本文使用的术语仅用于描述具体实施例,而且并非旨在限制本发明构思。如本文使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另外明确指出。应该理解的是,当诸如“包含”、“包括”和“具有”的术语在本文中使用时,其指定所陈述的特征、整体、步骤、操作、元件、部件或它们的组合的存在,但是并不排除的一个或多个其它特征、整数、步骤、操作、元件、部件或它们的组合的存在或添加。

尽管本文中使用诸如“第一”和“第二”的术语来描述各种元件或组件,但是元件或组件不应受术语的限制。这些术语可以用于将一个元件或组件与另一元件或组件区分开。例如,第一元件或组件也可以被称为第二元件或组件,并且反之亦然。

除非另外定义,否则文本使用的所有术语(包括技术术语和科学术语)可以具有与本发明所属领域的普通技术人员通常理解的含义相同的含义。还应该理解,术语,如通常使用的词典中定义的那些术语,应该被解释为所具有的含义与它们在相关领域的上下文中的含义一致,而不应理想化地或过分形式化地对其进行解释,除非此处明确地如此定义。

图1是示出根据实施例的存储器系统的框图。参照图1,存储器系统100一般包括存储器控制器110和存储器设备120。存储器设备120可以是非易失性存储器设备,例如快闪存储器设备(例如,nand型或nor型),或包括电阻存储器单元(例如,reram、mram或pram)的存储器设备。无论在存储器设备120中使用什么类型的存储器单元,都可以在存储器单元阵列121中排列海量的构成存储器单元,存储器单元阵列121一般包括元区域121_1和存储区域121_2。

存储器控制器110可以被用于在各种存储器系统操作的执行期间控制存储器设备120,所述操作诸如读、写(或编程)、读/写和擦除操作,以及某些内部管理功能(housekeeping)或存储器系统管理操作。一个或多个存储器系统操作通常响应于来自主机的一个或多个请求(以下单独或统称为“数据访问请求(dataaccessrequest)”)来执行,其中各种数据访问请求与一个或多个命令(cmd)、(多个)控制信号指示(ctrl)、数据传输(data)等相关联。

在图1所示的示例中,存储器控制器110被假定为包括快闪转换层(ftl)111和更新高速缓存112。ftl111可以使用系统软件(或固件)来实现,所述系统软件(或固件)管理存储器设备120的某些存储器系统的操作的执行。ftl111的一个或多个组件可以被加载到存储器控制器110的工作存储器(未示出)。包含在ftl111中的固件可以由在存储器控制器110中提供的处理单元(未示出)驱动。更新高速缓存112可以包括能够存储数据的任何类型的存储器。然而,在本发明构思的许多实施例中,更新高速缓存112将使用提供相对快速数据访问操作的、诸如dram或sram的易失性存储器来实现。

当从主机接收到包括至少一个逻辑地址的数据访问请求时,ftl111将逻辑地址转换成相应的物理地址,并且提供物理地址到存储器设备120。也可以在某些存储器系统管理操作期间使用ftl111,其中,这样的管理操作相对于存储器单元阵列121,根据已定义的单元区域基础(例如,以芯片单元为基础、以块单位为基础或以页为单位为基础)来执行。许多不同类型的管理操作,包括所谓的无用数据收集操作、坏块管理操作等将本领域技术人员所理解。

作为管理操作的结果,将(多个)物理地址与相应的(多个)逻辑地址相关的映射信息往往将被改变。得到的改变的映射信息最终将在存储器单元阵列121的元区域121_1中被更新。也就是说,改变的映射信息可以由存储器控制器110周期性地或非周期性地提供给存储器设备120。在这方面,更新高速缓存112可以被用于暂时存储改变的映射信息。

在存储器单元阵列121中,元区域121_1可以被用于存储一个或多个类型的非正常(或“元数据”)数据,诸如开销数据、存储系统管理数据、参考数据等,而存储区域121_2可以被用于存储正常数据,诸如用户定义的数据、用户指示的数据、有效载荷数据等。当然,正常数据和元数据之间的确切边界将在存储器系统设计和应用之间变化,但是本领域技术人员一般能够理解这些常规区别。例如,元区域121_1通常被用于存储(与各种信息类型相关联的)元数据,其在定义、排列、分配/解除分配、表征和管理存储在存储区域121_2中的正常数据方面是有用的。作为可以以这种方式使用的元数据的一个具体示例,某些逻辑-物理映射信息(或“l2p信息”)可以以非易失性方式存储在元区域121_1中。这里,l2p信息是标识或允许(多个)逻辑地址和相应的(多个)物理地址之间的相关性的数据。此后,l2p信息将被用于更一般的“映射信息”的示例,其可以由ftl111和存储器设备120生成和/或使用以使能存储器控制器110和存储器设备120之间的正常数据的通信。

在这方面,任意选择当前所请求的读操作或写操作作为时间参考点,包括映射信息l2p信息的初始(或第一)版本的元数据被存储在元区域121_1中。存储在元区域121_1中的第一映射信息l2p信息在某一点被提供给存储器控制器110。当被存储器控制器110接收时,第一映射信息可以被存储在更新高速缓存112或与更新高速缓存112相关联的存储器中。以这种方式,存储器控制器110可以通过参考存储在更新高速缓存112中的映射信息l2p信息来管理对存储器设备120的数据访问操作的执行。而且在每个数据访问操作被执行时,存储器控制器110可以在必要时改变存储在更新高速缓存112或相关联的存储器中的映射信息l2p信息。在将第一映射信息从存储器设备120转移到存储器控制器110之后并且还在作为(多个)数据访问操作的结果由存储器控制器110至少一次改变所存储的第一映射信息之后的某个时间点,改变的(或第二、或更新的)版本的映射信息将被转移到并且以非易失性方式存储在存储器设备120(例如,元区域121_1中)。在本发明构思的某些实施例中,“更新的映射信息”的这个存储可以由无用数据收集操作或某个其它管理操作的执行而导致。

例如,元区域121_1可以包括多个映射表,不同地用于存储映射信息。应认识到的是,存储器单元阵列121可以被划分成多个区域,每个区域具有一定大小,而且元区域121_1可以包括与多个区域相对应的映射表。因此,假定存储器单元阵列121的存储区域121_2使用具有大小x的多个区域来实现,其中“x”是表示gb的自然数,相应的映射表可以被保持用于每个大小为x的区域。也就是说,每个映射表可以被用于存储与相应的大小为x的单元相关联的映射信息。因此,在某些实施例中,元区域121_1可以包括数百或数千个映射表,其共同用于管理存储区域121_2的大小为x的区域的逻辑-物理地址转换。这里,“x”的值可以由块大小、块的分组、页的分组等等来确定。

本领域技术人员将认识到的是,无用数据收集操作可以按一个或多个源单元和目标单元来执行。(此后,假定源/目标单元是块,但是不必总是这种情况)。因此,假定所请求的无用数据收集操作指定源块和目标块,作为无用数据收集操作的结果,存储在元区域121_1中的至少一个映射表将被更新。即,在无用数据收集操作期间,在源块中指定为“有效数据”的数据将被移动到(即,复制到)目标块,而且与有效数据相关的相应映射信息将被更新或改变。例如,得到的更新的映射信息在被暂时存储在更新高速缓存112中之后,将被写入到存储在元区域121_1中的一个或多个映射表。假定在更新高速缓存112具有相对小的大小(例如,4kb)——因为它具有相对较低的构成存储器单元集成度——的特定示例中,在无用数据收集操作期间使用更新高速缓存112对元区域121_1中的(多个)映射表的更新可以是需要多个数据复制/写操作和相关联的存储器单元擦除操作的迭代过程。

然而,随着更新(多个)映射表所需的数据复制/写操作(或构成无用数据收集操作内的迭代复制/写步骤)的数目增加,无用数据收集操作的等待时段趋于增加,而且施加到用于在元区域121_1中存储元数据的存储器单元的擦除操作的数目(或计数)也增加。这种施加的擦除操作的增加的数目导致非易失性存储器单元加速疲劳,并且会减少存储器设备120的实际工作寿命。

认识到这些潜在的不利影响,本发明构思的实施例试图减少由于无用数据收集操作的执行导致的映射表的更新频率,以减少无用数据收集操作的执行所需的等待时段,并且延长在与本发明构思的实施例一致的存储器系统中提供的非易失性存储器设备的实际寿命。

作为减少元区域121_1的映射表的更新频率的示例,存储在更新高速缓存112中的信息可以以相对于映射表提供高局部性(locality)的方式进行管理。作为其实施例,在无用数据收集操作期间,两个或更多个源块可以被一起选择,并且无用数据收集操作可以对所选择的源块同时执行。

例如,假定映射信息被存储在更新高速缓存112中,存储在更新高速缓存112中的相同映射表中要被更新的映射信息越多,存储在更新高速缓存112中的映射信息可以在越小数目的映射表中更新。即,当更新高速缓存112的映射信息相对于映射表具有高局部性时,在映射信息更新处理过程中可以对相对小数目的映射表执行更新操作。相反,当更新高速缓存112的映射信息相对于映射表具有低局部性时,在更新处理中可以对相对大数目的映射表执行更新操作。也就是说,当相对于映射表的局部性增加时,因为要被更新的映射表的数目减少,所以执行映射信息更新处理所需的延迟时间可以减少。

此外,在无用数据收集操作过程中,可以重复执行基于更新高速缓存112的更新操作。也就是说,由于用于在无用数据收集操作过程中传递的有效数据的复制/写步骤的数目可能相对较大,但是更新高速缓存112的大小(即,数据存储容量)相对较小,因此在无用数据收集操作的执行期间必须反复更新相关联的映射表。因此,当相对于映射表的局部性增加时,由于可以避免(或在频率上降低)对于任何给定映射表的更新操作,因此可以降低每个映射表的更新频率。另外,由于可以防止位于元区域121_1的相同位置处的存储器单元被频繁擦除,因此可以防止存储器设备120的寿命被缩短。

根据本发明构思的一些实施例,为了增加相对于映射表的局部性,可以同时对多个源块执行无用数据收集操作。也就是说,代替按块顺序地执行无用数据收集操作(即,一个源块接一个源块地),可以同时对多个源块执行无用数据收集操作。该方法允许更大的池(pool)用于选择与(多个)相同映射表潜在相关的有效数据。

例如,当以源块为单元顺序地执行无用数据收集操作时,与600个不同映射表相对应的映射信息可以被存储在大小为4kb(或者能够存储1000个映射信息元素)的更新高速缓存112中。另一方面,根据本发明构思的一些实施例,当针对三(3)个源块同时收集无用数据时,仅与200个不同映射表相对应的映射信息可以被存储在更新高速缓存112中。因此,针对元区域121_1中的有关映射表的更新频率可以被减小到通过类似常规方法所需频率的1/3。

用来执行无用数据收集操作的、其中针对两个或更多个源块同时执行“无用数据收集”的前述方法可以通过使用源块确定操作来促进。例如,当数据根据顺序模式而不是随机模式被写入存储器设备120时,数据可以根据顺序的位置被物理写入存储器单元阵列121或者在存储器单元阵列121中被无效。在这种情况下,即使当以块顺序的方式执行无用数据收集操作时,存储在更新高速缓存112中的映射信息将仍然相对于映射表具有高局部性。因此,认识到这个结果,本发明构思的一些实施例将确定被写入包括在存储器单元阵列121中的一个或多个块的数据的数据类型(例如,随机数据对比模式化的数据(patterneddata)),在数据被确定为具有随机模式的情况下,将在多个源块上同时执行针对块的无用数据收集操作。以这种方式,在无用数据收集操作期间必须被更新的元数据的量可以减少。例如,假定每个映射表的大小为16kb,映射表可以以16kb为单位进行更新。然而,由于对于(多个)映射表的更新频率可以在可多次执行的更新过程中被减少,因此无用数据收集操作期间被更新的元数据的总量可以减少。

参照图1,存储器控制器110和存储器设备120可以被集成到单个半导体设备中。作为示例,存储器控制器110和存储器设备120可以被集成到单个半导体设备,以构成存储卡,诸如pc卡(pcmcia)、紧凑闪存卡(cf)、智能媒体卡(sm/smc)、记忆棒、多媒体卡(mmc、rs-mmc或mmcmicro)、sd卡(sd、minisd卡或microsd)或通用闪存(ufs)。作为另一示例,存储器控制器110和存储器设备120可以被集成到单个半导体设备以构成固态盘/驱动器(ssd)。

在前述示例的上下文中,术语“无用数据收集操作”涵盖将有效数据从至少一个源块复制到至少一个目标块以生成一个或多个空闲块的操作的范围。下文中使用的术语“同时无用数据收集操作”指将有效数据从至少两个源块复制到至少一个目标块以生成一个或多个空闲块的无用数据收集操作。在这方面,同时无用数据收集操作可以包括以下步骤:(1)选择两个或更多个源块;(2)将有效数据从所选源块复制到至少一个目标块;(3)根据复制步骤的执行,将更新的映射信息存储在与存储器控制器相关联的更新高速缓存中;(4)考虑存储在更新高速缓存中的更新的映射信息,来更新存储在一个或多个映射表中的映射信息;以及(5)擦除从其复制了有效数据的所选源块。

以一个源块为单位来执行的块顺序无用数据收集操作,可以通过从一个源块复制有效数据然后从另一源块复制有效数据来确保空闲块。与此相反,根据本发明构思的实施例执行的针对两个或更多所选源块的同时无用数据收集操作,可以通过从多个源块复制有效数据,而不管所选源块的顺序,来确保空闲块。在这种情况下,两个或更多个不同源块的有效数据可以被称为“一起复制”到一个或多个目标块。

图2是进一步示出图1的存储器控制器110的一个实施例200的框图。参照图2,存储器控制器200包括处理单元210、工作存储器220、主机接口230、存储器接口240、更新高速缓存250和只读存储器(rom)260。ftl可以被加载到工作存储器220,并且可以包括固件。根据由固件实现的功能,ftl可以不同地包括耗损均衡模块221、坏块管理模块222,无用数据收集模块223和地址映射表224中的一个或多个。

虽然图2中未示出,存储器控制器200还可以包括其它常规理解的组件,诸如用于在读/写操作的执行过程中暂时存储数据的缓冲存储器、用于控制缓冲存储器的使用的缓冲控制模块、以及用于响应于来自主机的(多个)请求生成用于控制不同数据访问操作的执行的(多个)命令(cmd)的命令生成模块。

处理单元210可以包括,例如,中央处理单元(cpu)或微处理器,而且可以控制存储器控制器200的整体操作。为了控制存储器控制器200,处理单元210可以驱动加载到工作存储器220中的固件。存储器控制器200可以通过各种标准接口与外部主机通信,而且主机接口230可以在主机和存储器控制器200之间提供接口。标准接口可以包括各种接口方案,诸如ata(高级技术附件)、sata(串行ata)、e-sata(外部sata)、scsi(小型计算机小接口)、sas(串行连接scsi)、pci(外围组件互连)、pci-e(pciexpress)、ieee1394、usb(通用串行总线)、sd(安全数字)卡、mmc(多媒体卡)、emmc(嵌入式多媒体卡)、通用闪存(ufs)和cf(cf闪存)卡。

存储器接口240可以提供用于存储器设备的接口。例如,可以通过存储器接口240与存储器设备通信写数据和读数据。此外,存储器接口240可以提供命令(cmd)和地址(add)到存储器设备,并且还可以从存储器设备接收各种信息并且将其提供到存储器控制器200。

工作存储器220可以包括各种存储器,并且可以包括,例如,高速缓冲存储器、dram、sram、pram和快闪存储器中的至少一个。耗损均衡模块221可以被用于管理存储器设备中的存储器单元的耗损均衡。存储器单元因写和擦除操作的执行而“老化”,而且最终高度老化或“磨损”的存储器单元可以导致在存储数据时发生数据错误,或者导致存储器系统操作中的缺陷。通过管理施加到存储器单元阵列121中的每个存储器单元的编程/擦除循环的数目,损耗均衡模块221可以防止特定存储器单元阵列区域中的存储器单元磨损得比其他区域的存储器单元更快。作为一个示例,耗损均衡模块221可以管理地址映射表224,以使得编程/擦除计数(针对相同存储器单元的各擦除和写操作的次数)均匀地分布在存储器单元阵列的所定义的区域(例如,以块为单位或以页为单位)上。

坏块管理模块222可以被用于管理由存储器设备120提供的多个块当中被认为有缺陷的块(“坏块”)的识别和不使用或避免。例如,坏块管理模块222可以管理地址映射表224,以使得数据不被写入坏块。

无用数据收集模块223可以被用于管理各种类型的无用数据收集操作的执行,包括根据本发明构思的实施例的同时无用数据收集操作。如上所述,无用数据收集操作被执行,从而通过将有效数据从至少一个源块复制到至少一个目标块并且此后擦除至少一个源块以创建或重新分配一个或多个空闲块,来生成一个或多个附加空闲块。

地址映射表224可以被用于管理映射信息(例如,使从主机提供的(多个)逻辑地址与表示实际被寻址的数据的物理位置的相应的(多个)物理地址相关的信息)的存储。通过参照映射信息,从主机提供的逻辑地址可以被转换成相应的物理地址。地址映射表224可以包括从存储器设备的元区域接收到的映射信息,以及从存储器设备的元区域接收到的映射信息的(部分或全部)更新的版本。因此,映射信息可以根据地址映射表224,在与存储器控制器所关联的更新高速缓存和存储器设备的元区域之间来回传递。

rom260可以被用于存储初始引导存储器控制器200和/或存储系统100的存储器设备120所需的代码和/或数据。当地址映射表224的映射信息被更新时,更新高速缓存250可以被用于暂时存储所得到的更新的映射信息,以使得更新的映射信息随后可以被提供给存储器设备。由于更新高速缓存250具有相对小的大小,因此它可以仅存储地址映射表224的一些映射信息。尽管图2示出的是,更新高速缓存250被单独地提供在存储器控制器200中,但是在本发明构思的不同实施例中也可以提供更新高速缓存250和地址映射表224的其他排列或组合。例如,包括诸如dram或sram的易失性存储器的更新高速缓存250可以被提供在处理单元210中,或者可以被提供在工作存储器220中。

图3是进一步示出图1的存储器设备120的一个实施例300的框图。

参照图3,存储器设备300包括存储器单元阵列310、控制逻辑320、电压发生器330、行解码器340和页缓冲器350。虽然图3未示出,但是存储器设备300还可以包括数据输入/输出电路或输入/输出接口。

存储器单元阵列310包括用于存储元数据的元区域311和用于存储正常数据的存储区域312。元区域311和存储区域312中的每一个可以包括多个存储器单元。假定对于存储器单元阵列310包括快闪存储器单元的某些实施例,存储器单元阵列310可以连接到字线wl、串选择线ssl、地选择线gsl和位线bl。例如,存储器单元阵列310可以通过字线wl、串选择线ssl和地选择线gsl连接到行解码器340,并且可以通过位线bl连接到页缓冲器350。

基于从存储器控制器接收到的命令cmd、地址add和控制信号ctrl,控制逻辑320可以输出各种内部控制信号,以用于将数据写入存储器单元阵列310、从存储器单元阵列310读取数据、以及擦除存储在存储器单元阵列310中的数据。

从控制逻辑320输出的各种控制信号可以被提供给电压发生器330、行解码器340和页缓冲器350。例如,控制逻辑320可以将电压控制信号ctrl_vol提供给电压发生器330、将行地址x-add提供给行解码器340、并且将列地址y-add提供给页缓冲器350。然而,本发明构思不限于此,并且控制逻辑320还可以将其它控制信号提供给电压发生器330、行解码器340和页缓冲器350。

根据一个实施例,元区域311可以包括多个映射表。在存储器控制器的控制下,在无用数据收集操作期间,存储器设备300将有效数据从存储区域312的至少一个源块复制到至少一个目标块。此外,在存储器控制器的控制下,将根据执行无用数据收集过程的结果来更新存储在元区域311中的映射表。在无用数据收集操作的执行期间可以重复执行针对元区域311的更新操作,而且在更新操作的每个迭代期间可以更新一个或多个映射表。然而,通过本发明构思的实施例可以显著减少先前所描述的所需映射表更新的数目。

图4是示出根据实施例的存储器控制器的操作的流程图。

参照图1、图2、图3和图4,存储器控制器110(200)确定执行无用数据收集操作的要求。这个要求可以,例如,通过空闲块的数目降至低于最小阈值的指示、或者通过预定时段的逝去被触发。然而,执行无用数据收集操作的要求的确定将导致至少一个附加空闲块的生成,而且存储器系统100进入相应的无用数据收集模式(s11)。在某些实施例中,正在进行的存储器系统数据访问操作(例如,(多个)读/写操作)可以在进入无用数据收集模式时被中断,其中存储器控制器可以将相应的中断提供给主机。

当进入无用数据收集模式时,存储器控制器选择多个源块(s12)和至少一个目标块(s13)。可以选择比目标块多的源块,以确保一个或多个空闲块。例如,可以选择三个源块和两个目标块,而且存储在三个源块中的有效数据可以被复制到两个目标块。当三个所选源块中的所有有效数据都被复制到(多个)目标块时,三个所选源块可以被擦除,由此三个所选源块被重新分配为三个空闲块。

当有效数据已经被复制到至少一个目标块并且生成至少一个空闲块时(s14),相应的映射信息因此被更新(或改变)。例如,得到的更新的(或改变的)映射信息可以被暂时存储在更新高速缓存中(s15)。此后,存储器控制器可以使用存储在更新高速缓存中的映射信息来更新存储器设备中的映射表(s16)。

根据上述实施例,在无用数据收集操作期间选择多个源块,并且对所选源块同时执行无用数据收集。因此,可以增加与(多个)相同映射表潜在对应的有效数据的池,而且存储在更新高速缓存中的映射信息有可能相对于存储器设备的多个映射表具有相对高的局部性。因此,由于作为无用数据收集操作结果的实际更新的映射表的数目可以被减小,因此需要被更新的元数据的相应量也可以被减小,而且对相同映射表必须执行更新的频率可以被减小。

图5是是进一步示出图1的存储器单元阵列121和图3的存储器单元阵列310的结构的一个示例310的概念图。参照图5,存储器单元阵列310包括元区域311和存储区域312。

元区域311可以被用于存储多个映射表(l2p表),其包含与存储在存储区域312中的正常数据相关联的映射信息。这里,存储区域312可以在物理上或逻辑上被划分为各种单元。例如,存储区域312可以包括多个段(segment),并且每个段可以包括多个块(blk),其中每个块是存储器设备内的可擦除单元。

每个块可以包括多个页,而且包括在每个页面中的多个存储器单元可以连接到相同字线。存储器设备的读/写单元可以在大小上对应于页的大小。可替代地,存储器设备的读/写单元可以在大小上对应于页的一部分的大小。作为一个示例,每一页的大小可以是16kb,而读/写单元可以是4kb。可替代地,每一页的大小和每一个读/写单元的大小可以是4kb。地址可以以对应于读/写单元的4kb数据单元被映射。

图6a和图6b分别是示出在映射表中存储映射信息的一个示例的概念图。

参照图5、图6a和图6b,每个映射表(l2p表)被假定为具有相同大小,并且将存储用于存储在存储区域312的某个大小的区域中的正常数据的映射信息。作为一个示例,每个映射表的大小可以是16kb,其中映射表被用于存储该存储区域的16mb区域的映射信息。上述大小仅是示例性的,并且存储器系统中的映射表的大小以及与映射表相对应的存储区域312的存储区域的大小可以被各种修改。

当数据被随机写入时,任何一个映射表都可以存储用于存储在多个块(blk)中的数据的映射信息。例如,随机数据可以以4kb为单位被写入,并且在16kb的映射表内,4b用于存储4kb数据的映射信息。假定16kb映射表大小,每个映射表可以存储与大约4000个单位的4kb正常数据相关联的映射信息。假定包括在存储区域312中的块的数目是m,每个映射表可以存储用于大约n个数据块的映射信息,其中“n”可以小于或等于“m”。如果所存储的数据是随机数据,则n的值可以增加。

参照图6a中所示的第一映射表(l2p表1),用于存储在多个块中的数据的映射信息被存储在第一映射表(l2p表1)中。当数据按照顺序模式被写入时,第一映射表(l2p表1)可以存储位于相对小数目的块中的数据的映射信息。另一方面,当数据被随机写入时,第一映射表(l2p表1)可以存储用于位于相对大数目的块中的数据的映射信息。

参照图6b,假定第一映射表(l2p表1)包括用于逻辑地址(add_l)和相应物理地址(add_p)的表信息。物理地址(add_p)可以包括块地址(a_blk)和页地址(a_page)。当读/写单元小于页的大小时,除了指示块中的页的信息之外,页地址(a_page)还可以包括代表数据在页中的位置的信息(例如,列地址)。

如图6b所示,当数据被随机写入时,第一映射表(l2p表1)可以存储用于位于各块中的数据的映射信息。

图7是进一步示出根据本发明构思的某些实施例的执行同时无用数据收集操作的一个示例的概念图。

如图7所示,多个源块被选择并且相对于至少一个目标块同时收集无用数据。例如,选择三个源块(源blk1、源blk2和源blk3),以及两个目标块(目标blk1和目标blk2)。

每个源块当前存储一些有效数据,但是也存储其他无效数据。与有效数据有关的映射信息可以被有效地存储,其中有效数据是可以被外部主机有用地访问的数据。另一方面,与无效数据有关的映射信息可以不被有效地存储,其中无效数据是不可以被外部主机有用地访问的数据。

在图7的简单示例中,假定有效数据被收集到每个块的连续区域中。然而,特别地,在数据被随机写入的情况下,有效数据的存储位置可以随机地(非连续地)分布在该块上。

如图7中概念性地示出的,代替将有效数据从所选源块顺序地复制到特定目标块,存储在三个所选源块中的每一个源块中的一些有效数据可以被一起复制到一个或多个目标块。作为一个示例,在这三个源块中,与公共映射表(即,存储在相同映射表中的映射信息)相关联的有效数据可以被一起选择并且被优先地复制到相同目标块。在这些条件下,在更新高速缓存内,与相同映射表相对应的更新的映射信息的比例可以增加,并且因此相对于映射表的局部性可以得到改善。

图8是示出使用存储在更新高速缓存中的更新的映射信息来更新存储器设备的映射表的一个示例的另一概念图。

参照图8,更新高速缓存被假定为4kb的大小。映射信息4b按照4kb写入单位被存储。在这些假定下,更新高速缓存可以临时存储大约1000个映射信息元素(例如,更新的(或改变的)映射信息元素i1,i2,i3,...)。

有效数据可以在无用数据收集操作期间被复制到目标块,而且更新的映射信息将被相应地存储在更新高速缓存中。接着,映射表可以根据存储在更新高速缓存中的映射信息被更新。例如,对于每个映射表的更新操作可以被执行为16kb大小的元数据写入操作。图8示出了这个示例,其中更新高速缓存被用来存储与多个映射表有关的更新的映射信息,并且此后使用存储在更新高速缓存中的更新的映射信息来选择性地更新一些映射表。

图9是示出在无用数据收集操作期间针对映射表的示例性的迭代更新操作的又一概念图。

这里,假定多个源块(例如,源blk1,源blk2和源blk3)每个包含一些有效数据(例如,6kb的有效数据)。还假定组成的更新高速缓存可以存储最多1kb的数据。在这些假定下,在相对于多个源块顺序地执行的传统的无用数据收集操作期间,总共18kb的有效数据将被复制到目标块。因此,与18kb已复制的数据相关的映射信息将被更新。在这种情况下,基于更新高速缓存的更新操作可以被执行多达18次。

因此,在前述示例中,呈现在源块中的每个1kb的有效数据必须被复制,并且相应的映射信息通过更新高速缓存来更新。这个方法固有地降低了包含在更新的映射信息中的“更新数据”将与相同映射表有关的可能性。换句话说,作为无用数据收集操作的结果,前述方法趋向于增加需要被更新的映射表的数目。结果,在更新操作期间,许多不同的映射表被更新,而且执行更新操作所需的等待时段增加。

从前述示例还可以认识到,在执行更新操作的过程中,相同的映射表可以被频繁更新,多达18次。对于存储相同映射表的存储器单元的如此高频率的重复写/擦除操作将降低存储器设备的使用寿命。

然而,与前述示例相比,本发明构思的一些实施例选择多个源块,并且对所选择的源块的集体有效数据同时执行无用数据收集操作。使用本发明的方法,来自多个源块的有效数据与相同映射表(l2p表)有关的概率远高于传统方法。即,有效数据的扩展池更可能与相同映射表(l2p表)有关,并且因此,与相对较小数目的映射表相对应的映射信息可以被存储在更新高速缓存中。结果,在对于任何给定映射表的后续更新操作期间,很可能是,映射表将需要更少的更新周期,从而避免了不必要的存储器单元损耗。

图10、图11和图12各自是示出根据本发明构思的实施例的由存储器系统中的存储器控制器执行的各种示例性操作的流程图。

参照图10,可以做出关于是否应当执行同时无用数据收集操作的阈值确定。例如,可以做出关于被选择(或潜在被选择)用于无用数据收集的一个或多个块的数据类型(例如,随机的还是模式化的)的确定。因此,可以通过考虑数据类型来做出要被执行的无用数据收集操作的类型的阈值确定(例如,块顺序地还是块同时地)。在数据类型是随机或基本上随机的情况下(s20=是),存储器控制器可以确定执行根据本发明构思的实施例的同时无用数据收集操作。否则,如果数据被确定为模式化的数据(s20=否),则存储器控制器可以确定执行顺序的无用数据收集操作(s21)。

顺序的无用数据收集操作可以基本上沿着常规路线执行,但是最终会导致存储相应更新的映射信息在更新高速缓存中(s25),和存储至少一个映射表在非易失性存储器中(s26)。

可以如上所述执行同时无用数据收集操作。也就是说,如果在数据类型确定步骤(s20)中还没有做出选择,则选择多个源块(即,至少两个)(s22),而且还选择至少一个目标块(s23)。在这些选择之后,对多个源块执行同时无用数据收集操作(24)。同样,这再次导致存储相应更新的映射信息在更新高速缓存中(s25),和存储至少一个映射表在非易失性存储器中(s26)。

可以使用一个或多个不同的考虑来做出是执行顺序的无用数据收集操作还是执行同时无用数据收集操作的确定。在一个示例中,存储器系统可以被预先设置为响应于从主机接收的(多个)写请求而随机地写入数据。在另一示例中,随机写入的数据将针对所选择的(多个)源块显示出相对高的有效数据对总写入数据的比率。

图11示出对于无用数据收集操作类型的确定的第二替代方案。这里,代替考虑所存储的数据类型(图10中的s20),确定存储在所选择的(多个)块中的数据的有效数据比率(s31)。在所确定的有效数据比率大于已建立的阈值的情况下(s32=是),执行同时无用数据收集操作。然而,在所确定的比率不大于已建立的阈值的情况下(s32=否),执行顺序的无用数据收集操作。

这里,顺序的无用数据收集操作包括以一(1)个源块为单位复制有效数据的步骤(s33)。最终,这个顺序的无用数据收集操作导致被写入更新高速缓存的更新的映射信息(s36)。随后,使用存储在更新高速缓存中的更新的映射信息来更新存储在非易失性存储器中的映射表(s37)。与此相比,如果在有效数据比率确定步骤(s31)中还没有做出选择,则同时无用数据收集操作包括选择多个源块的步骤(s34),并且以多于一个的资源块为单位来复制有效数据(s35)。最终,这个顺序的无用数据收集操作导致被写入更新高速缓存的更新的映射信息(s36)。随后,使用存储在更新高速缓存中的更新的映射信息来更新存储在非易失性存储器中的映射表(s37)。

参照图12,示出了一个示例,其中使用多个考虑或因素来确定是应该执行顺序的无用数据收集操作还是执行同时无用数据收集操作。例如,做出关于存储在至少一个所选择的源块中的数据的有效数据比率的最小值的第一确定(s41)。在比较有效数据的比率与阈值之后,可以进一步确定数据是否被随机写入(s42)。这两个确定可以针对多个源块中的每一个被独立地或有条件地做出。此后,被确定为基本上存储随机数据和/或满足针对有效数据比率的已建立的阈值的一些所考虑的源块可以被选择用于同时无用数据收集(s43),并且此后可以执行同时无用数据收集操作(s44)。虽然在图12中未示出,但是应当理解,在步骤(s41)和(s42)中考虑的其他可能的源块(即,被确定为基本上存储模式化的数据和/或不满足针对有效数据比率的已建立的阈值的源块)可以被指定用于顺序的无用数据收集。

图13是示出当数据被随机写入时针对存储在所选择的块中的数据的有效数据计数的示例的曲线图。

当随机数据被写入到包含在存储器设备中的多个块时,针对每个块的有效数据计数的分布可以如图13所示展现。在这里,针对每个块的有效数据比率可以根据图13中的有效数据计数来计算。

不具有(0个)有效数据计数的(多个)块是(多个)空闲块。具有小于已建立的阈值的有效数据计数(即,具有相对低的有效数据计数)的(多个)块是要被附加写入的活动块。然而,如以上描述的,存储在块中的数据的连续写入和重新写入愈加导致块中无效数据的积累。因此,无效数据的上升的计数降低了块中的有效数据比率,直到它低于给定有效数据比率阈值。

在图13示出的示例中,示例性的源块具有写入其中的随机数据,并且具有相对低的有效数据比率,对应于约53kb,其表示块的有效数据比率是约64%。被设计的存储器系统可以建立多个阈值,通过所述多个阈值来确定是应该执行顺序的无用数据收集操作还是执行同时无用数据收集操作。此外,这些多个阈值可以被用于“选择”与要被执行的顺序的无用数据收集操作或同时无用数据收集操作有关的一个或多个源块。

图14a和图14b各自是示出选择源块和目标块的示例和存储在更新高速缓存中的映射信息的示例的概念图。

图14a示出了示例,其中,对于同时无用数据收集操作,选择了多个(例如,m个)源块而且选择了多个(例如,n个)目标块。源块(源blk1到源blkm)的数目可以大于目标块(目标blk1到目标blkn)的数目。源块(源blk1到源blkm)中的每一个的有效数据可以被复制到目标块(目标blk1到目标blkn)。

当选择多个源块(源blk1到源blkm)时,存储在更新高速缓存中的映射信息可以相对于映射表具有较高的局部性。另一方面,当选择多个源块(源blk1到源blkm)时,需要管理——诸如跨多个源块对相关的有效数据的选择——的处理吞吐量,增加。根据本发明构思的某些实施例,鉴于存储器系统资源,可以针对源块(源blk1到源blkm)的选择设置(多个)适当的限制。

如图14b所示,在源块(源blk1到源blkm)中,与相同映射表有关的有效数据可以被定义为相同组的有效数据。例如,具有与第一映射表(l2p表1)相关联的映射信息的有效数据可以被分布地(或以分布式的方式)存储在源块(源blk1到源blkm)中,而且与其对应的有效数据可以被定义为第一组的有效数据。多个组的有效数据可以被存储在源块(源blk1到源blkm)中。

在考虑到上述情况,可以以组为单位来执行有效数据复制操作,并且其射信息可以基于以组为单位执行的复制操作被存储在更新高速缓存中。因此,与属于相同组的有效数据相关联的映射信息可以被存储在更新高速缓存中,因此,存储在更新高速缓存中的映射信息可以具有高局部性。

图15是示出根据本发明构思的实施例的更新映射表的示例的概念图。图15示出了一起选择三个源块(源blk1到源blk3)的示例。

源块(源blk1到源blkm)中的每一个可以包括与多个映射表有关的多个有效数据。作为示例,第一源块(源blk1)可以存储与各种映射表有关的有效数据(data_t1,data_t2,data_t3,data_t12,data_t21,···)。

属于相同组的有效数据可以从源块(源blk1到源blkm)选择并且被复制到目标块,而且改变的映射信息可以根据复制结果被存储在更新高速缓存中。例如,第一组的有效数据(data_t1)可以从源块(源blk1到源blkm)选择,而且改变的映射信息可以被存储在与第一组的有效数据(data_t1)有关的该更新高速缓存中的一些区域。类似地,第12和第21组中的有效数据(data_t12和data_21)可以从源块(源blk1到源blkm)选择,而且改变的映射信息可以被存储与其有关的该更新高速缓存中的一些其它区域。

与该更新高速缓存中的相同映射表相对应的映射信息量可以增加,并且因此,每个更新处理中更新的映射表的数目可以被最小化。例如,当存储在更新高速缓存中的映射信息仅包括与第一、第12和第21映射表(l2p表1、12和21)有关的信息时,在更新过程中可以仅更新多个映射表中的第一、第12和第21映射表(l2p表1、12和21)。

图16是示出根据本发明构思的实施例的存储器控制器的操作的流程图。图16示出了从多个源块选择有效数据、以及要被一起存储在更新高速缓存中的相应映射信息的示例。

参照图16,可以选择用于无用数据收集的多个源块,而且选择操作可以通过根据上述实施例确定源块中的有效数据比率来执行。映射信息可以被存储为在存储器系统中的元数据,并且因此可以确定多个源块中的有效数据的映射信息(s51)。

根据确定结果,可以确定与存储在多个源块中的每一个中的有效数据有关的映射表的位置。根据确定结果,可以从多个源块中选择其映射信息要被一起存储在更新高速缓存中的有效数据。例如,可以选择与相同映射表有关的有效数据(或者具有存储在相同映射表中的映射信息的有效数据)(s52)。

可以将所选择的有效数据复制到一个或多个目标块(s53),并且可以将关于所选择的有效数据的映射信息一起存储在更新高速缓存中(s54)。通过重复上述操作,可以将与相对较少数目的映射表相对应的映射信息存储在更新高速缓存中。从另一角度来看,可以将与任一映射表相对应的大量映射信息元素一起存储在更新高速缓存中。

此后,可以确定是否达到更新定时(s55)。当未达到更新定时时,可以重复上述选择有效数据的过程和上述在更新高速缓存中存储改变的映射信息的过程。此后,在达到更新定时,可以在一个或多个映射表中更新存储在更新高速缓存中的映射信息(s56)。

图17是示出根据所选择的源块的数目的更新操作的频率(计数)的示例的曲线图。

如图17所示,当针对无用数据收集所选择的源块的数目增加时,关于映射表的更新计数可以降低。作为一个示例,当选择一个源块时,可以更新多达存储在更新高速缓存中的映射信息元素的数目的约74%的映射表。然而,根据一个实施例,当选择四个源块时,可以仅更新存储在更新高速缓存中的映射信息元素的数目的约38%那么多的映射表。这可以指示更新计数被减少到约51%。

图18是示出根据本发明构思的实施例的存储器控制器的配置的框图。

如图18所示,存储器控制器400可以包括源块特性确定单元410、源块选择单元420、无用数据收集执行单元430和更新高速缓存440。更新高速缓存440可以包括易失性存储器,诸如sram或dram。另外,源块特性确定单元410、源块选择单元420和无用数据收集执行单元430可以被实现为硬件或软件。作为一个示例,源块特性确定单元410、源块选择单元420和无用数据收集执行单元430的功能可以通过上述ftl的固件被实现为软件。

通过参考映射信息(l2p信息),源块特性确定单元410可以确定包括在每个源块中的有效数据的特性。例如,可以确定存储与包括在源块中的每个有效数据有关的映射信息的映射表的位置。另外,与相同组有关的有效数据(或具有由相同映射表管理的映射信息)可以被集中地(或以集中的方式)存储在一些源块中,而且源块特性确定单元410可以通过参考关于多个源块的有效数据的映射信息(l2p信息)来确定源块之间的关系。

参考上述确定结果,源块选择单元420可以选择要被同时进行无用数据收集的源块。可以根据上述确定结果来选择能够提高其局部性的源块。例如,当与特定映射表有关的有效数据的存储比率在任何一个源块中为高而且与相同映射表有关的有效数据的存储比率在另一源块中也为高时,这些源块可以被选择为要被同时进行无用数据收集的源块。也就是说,根据本实施例,可以考虑有效数据的存储特性来选择源块。

根据上述选择结果(info_sel),无用数据收集执行单元430可以生成无用数据收集控制信号(ctrl_gc),以执行从所选择的源块复制有效数据的操作、将映射信息存储在更新高速缓存中的操作、以及通过使用更新高速缓存来更新映射表的操作,如上述实施例中那样。

图19是示出可以结合在本发明构思的一些实施例中的存储器设备的存储器单元阵列的透视图。

存储器单元阵列可以包括多个块,并且每个块可以具有三维(3d)结构(或垂直结构)。例如,每个块可以包括沿第一到第三方向延伸的结构。例如,在快闪存储器设备的情况下,每一个单元块可以包括沿第三方向延伸的多个nand串。在这种情况下,多个nand串可以沿第一和第二方向彼此间隔开一定距离。图19可以表示与一个块blk1相对应的示意图。此外,块blk1可以是被包括在元区域中的块,或者可以是被包括在存储区中的块。

参照图19,单元块blk1可以沿相对于衬底sub的垂直方向上形成。虽然图19示出的是,单元块blk1包括两个选择线gsl和ssl、八个字线wl1到wl8、以及三个位线bl1到bl3,但是线的数目可以进行各种修改。

衬底sub可以具有第一导电类型(例如,p型),并且可以在衬底sub上提供公共源极线csl,其沿第一方向(例如,y方向)延伸并且掺杂有第二导电类型(例如,n型)的杂质。在衬底sub的两个相邻公共源极线csl之间的区域上,可以沿第三方向(例如,z方向)顺序地提供沿第一方向延伸的多个绝缘层il。多个绝缘层il可以沿第三方向彼此间隔开一定距离。例如,多个绝缘层il可以包括绝缘材料,诸如硅氧化物。

在衬底sub的两个相邻公共源极线csl之间的区域上,多个柱p可以被提供为沿第一方向顺序地布置并且沿第三方向穿透绝缘层il。例如,柱p可以穿透绝缘层il以接触衬底sub。例如,每个柱p的表面层s可以包括具有第一类型的硅材料,并且可以用作沟道区。每个柱p的内部层i可以包括绝缘材料,诸如硅氧化物,或者空气隙。

在两个相邻公共源极线csl之间的区域中,电荷存储层的cs可以沿绝缘层il、柱p和衬底sub的暴露的表面提供。电荷存储层cs可以包括栅极绝缘层(或隧穿绝缘层)、电荷捕获层和阻挡绝缘层。例如,电荷存储层cs可以具有氧化物-氮化物-氧化物(ono)结构。另外,在两个相邻公共源极线csl之间的区域中,可以在电荷存储层cs的暴露的表面上提供包括选择线gsl和ssl的栅极电极ge和字线wl1到wl8。

可以在柱p上分别提供漏极或漏极触点dr。例如,漏极或漏极触点dr可以包括掺杂有具有第二导电类型的杂质的硅材料。在漏极或漏极触点dr上,位线bl1到bl3可以被提供为沿第二方向(例如,x方向)延伸并且沿第一方向彼此间隔开一定距离。

第7679133号、第8553466号、第8654587号、第8559235号美国专利公开和第2011/0233648号美国专利申请描述了3d存储器阵列的各种配置,其中,3d存储器阵列包括多个层级而且在这些层级之间共享字线和/或位线,这些公开的内容通过引用并入本文。

图20是示出根据本发明构思的实施例的、将存储器系统应用于存储卡系统的示例的框图。作为一个示例,假定存储器系统是快闪存储器系统。

参照图20,存储卡系统500可以包括主机510和存储卡520。主机510可以包括主机控制器511和主机连接器512。存储卡520可以包括卡连接器521、卡控制器522和存储器系统523。存储器系统523可以通过使用在图1到图19中示出的实施例来实现。因此,存储器系统523可以根据上述实施例执行无用数据收集操作,并且可以通过选择多个源块并且对其同时执行无用数据收集操作来减少映射表的更新频率。

主机510可以将数据写入存储卡520/从存储卡520读数据。主机控制器511可以通过主机连接器512将命令(cmd)、数据(data)和由主机510中的时钟发生器(未示出)生成的时钟信号(clk)发送给存储卡520。

响应于通过卡连接器521接收的请求,卡控制器522可以与由卡控制器522中的时钟发生器(未示出)生成的时钟信号同步地将数据提供给存储器系统523。存储器系统523可以存储从主机510接收的数据。

存储卡520可以被实现为包括,例如,紧凑闪存卡(cfc)、微驱动、智能媒体卡(smc)、多媒体卡(mmc)、安全数字卡(sdc)、通用闪存(ufs)、记忆棒和usb闪存驱动器。

图21是示出根据本发明构思的实施例的、将存储器设备应用到ssd系统的示例的框图。

参照图21,ssd系统600可以包括主机610和ssd620。ssd620可以通过信号连接器与主机610交换信号,并且通过电力连接器接收电力的输入。ssd620可以包括ssd控制器621、辅助电源622和多个非易失性存储系统623、624和625。非易失性存储器系统623、624和625中的每一个可以包括根据实施例的存储器设备。根据实施例,非易失性存储器系统623、624和625中的每一个可以根据上述实施例执行无用数据收集操作,并可以通过选择多个源块并且对其同时执行无用数据收集操作来减少映射表的更新频率。

以上例示了本发明构思的实施例,并且不应被解释为限制本发明构思。此外,本领域技术人员将容易理解的是,可以在这些实施例进行各种修改而在实质上不偏离本发明构思的范围。

虽然已经参照具体实施例示出和描述了实施例,但是可以在形式和细节上做出各种改变而不脱离所附权利要求的精神和范围。

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