存储器系统及其操作方法与流程

文档序号:20203390发布日期:2020-03-27 20:52阅读:231来源:国知局
存储器系统及其操作方法与流程

相关申请的交叉引用

本申请要求于2018年9月20日提交的韩国专利申请no.10-2018-0112758的优先权,其全部内容通过引用并入本文。

本发明的各种实施例涉及一种存储器系统,并且更具体地涉及一种能够有效地执行耗损均衡操作的存储器系统及其操作方法。



背景技术:

计算机环境范例已经转移到普适计算,这使得计算系统能够随时随地使用。结果,诸如移动电话、数码相机和膝上型计算机的便携式电子设备的使用迅速增加。这些便携式电子设备通常使用具有一个或多个存储设备的存储器系统来存储数据。存储器系统可以用作便携式电子设备的主存储器设备或辅助存储器设备。

与硬盘设备相比,存储器系统提供优异的稳定性、耐用性、高信息访问速度和低功耗,因为它们没有移动部件。具有这样的优点的存储器系统的示例包括通用串行总线(usb)存储器设备、具有各种接口的存储器卡、和固态驱动器(ssd)。



技术实现要素:

本发明的各种实施例涉及一种能够在映射存储器块上有效地执行耗损均衡操作的存储器系统。

在一个实施例中,一种存储器系统可以包括存储器设备和控制器。存储器设备包括用于存储映射数据的映射存储器块和用于存储主机数据或系统数据的数据存储器块。控制器适合于:当映射存储器块的平均擦除计数小于数据存储器块的平均擦除计数并且映射存储器块的平均擦除计数与数据存储器块的平均擦除计数之间的差值大于第一阈值时,检测每个具有的擦除计数小于或等于数据存储器块的平均擦除计数的映射存储器块,作为第一牺牲存储器块;以及对检测到的第一牺牲存储器块执行垃圾收集操作,将数据存储器块之中的热数据存储器块中存储的数据映射到第一牺牲存储器块,并且将映射存储器块之中的冷映射存储器块中存储的数据映射到热数据存储器块。

在一个实施例中,一种存储器系统的操作方法可以包括:当映射存储器块的平均擦除计数小于数据存储器块的平均擦除计数并且映射存储器块的平均擦除计数与数据存储器块的平均擦除计数之间的差值大于第一阈值时,检测每个具有的擦除计数小于或等于数据存储器块的平均擦除计数的映射存储器块,作为第一牺牲存储器块;以及对检测到的第一牺牲存储器块执行垃圾收集操作,将数据存储器块之中的热数据存储器块中存储的数据映射到第一牺牲存储器块,并且将映射存储器块之中的冷映射存储器块中存储的数据映射到热数据存储器块。

在一个实施例中,一种存储器系统可以包括存储设备和控制器。存储设备包括第一存储器块和第二存储器块。控制器适合于:当第一存储器块的第一平均擦除计数比第二存储器块的第二平均擦除计数小了大于第一阈值的量时,选择具有擦除计数小于或等于第二平均擦除计数的存储器块作为牺牲存储器块;当第一存储器块的第一平均擦除计数比第二存储器块的第二擦除计数小了小于或等于第一阈值并且大于第二阈值的量时,选择具有最小擦除计数的存储器块作为牺牲存储器块;控制存储器设备利用所选择的牺牲存储器块来执行垃圾收集操作;以及控制存储器设备将第二存储器块之中的第三存储器块中存储的热数据映射到牺牲存储器块并且将第一存储器块之中的第四存储器块中存储的冷数据映射到第三存储器块。

附图说明

图1是示出根据本发明的实施例的包括存储器系统的数据处理系统的框图;

图2是示出图1所示的存储器系统中采用的存储器设备的配置的示意图;

图3是示出图1所示的存储器设备中的存储器块的存储器单元阵列的配置的电路图;

图4是示出根据本发明的实施例的存储器系统的存储器设备的结构的框图;

图5是示意性地示出根据本公开的实施例的存储器系统的框图;

图6是示意性地示出根据本公开的实施例的耗损均衡触发模块的框图;

图7是示意性地示出根据本公开的另一实施例的耗损均衡触发模块的框图;

图8是示意性地示出根据本公开的实施例的目标牺牲存储器块检测器的框图;

图9是示意性地示出根据本公开的另一实施例的目标牺牲存储器块检测器的框图;

图10是示意性地示出根据本公开的实施例的耗损均衡操作模块的框图;

图11是示意性地示出根据本公开的另一实施例的耗损均衡操作模块的框图;

图12是示出根据本公开的实施例的存储器系统的操作的流程图;

图13是示出根据本公开的另一实施例的存储器系统的操作的流程图;以及

图14至22是示意性地示出根据本发明的各种实施例的数据处理系统的应用示例的图。

具体实施方式

下面将参考附图更详细地描述本发明的各种实施例。然而,本发明可以以不同的形式实现,这些形式可以是任何所公开的实施例的变型。因此,本发明不限于本文中阐述的实施例。而是,提供这些实施例是为了使得本公开彻底和完整并且向本领域技术人员充分传达本发明的范围。贯穿本公开,在本发明的各个图和实施例中,相同的附图标记指代相同的部件。

应当注意,对“实施例”、“另一实施例”等的引用不一定仅表示一个实施例,并且对任何这样的短语的不同引用不一定是指同一实施例。

应当理解,尽管本文中可以使用术语“第一”和/或“第二”来标识各种元素,但是这些元素不应当受这些术语的限制。这些术语仅用于将一个元素与具有相同或相似名称的另一元素区分开。例如,在不脱离本公开的教导的情况下,在一个实例中的第一元素可以在另一实例中称为第二元素,反之亦然。

应当理解,当一个元件被称为“耦合”或“连接”到另一元件时,它可以直接耦合或连接到另一元件,或者可以在它们之间存在一个或多个中间元件。相反,应当理解,当一个元件被称为“直接耦合”或“直接连接”到另一元件时,不存在中间元件。解释元件之间的关系的其他表达(诸如“在......之间”、“直接在......之间”、“与......相邻”或“与......直接相邻”)应当以相同的方式来解释。两个元件之间的通信(无论是直接还是间接连接/耦合)可以是有线的或无线的,除非上下文另有说明。

本文中使用的术语仅用于描述特定实施例的目的,而非旨在是限制性的。在本公开中,除非上下文另有明确说明,否则单数形式旨在包括复数形式,反之亦然。本申请和所附权利要求中使用的冠词“一个(a)”和“一个(an)”通常应当被解释为表示“一个或多个”,除非另有说明或从上下文清楚地指向单数形式。将进一步理解,术语“包括(comprise)”、“包括(include)”、“具有(have)”和任何其他开放式转换术语当在本说明书中使用时指定所述特征、数字、步骤、操作、元素、组件和/或其组合的存在,但不排除一个或多个其他特征、数字、步骤、操作、元素、组件和/或其组合的存在或添加。

上述实施例仅用于理解本发明,而不是限制本发明的范围。如相关领域的技术人员将从本公开理解的,可以对任何上述实施例进行各种修改。

除非另外定义,否则本文中使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。除非在本公开中另外定义,否则这些术语不应当被解释为过于理想或过于正式。

现在将参考附图详细描述本发明的各种实施例。

图1是示出根据本发明的实施例的包括存储器系统110的数据处理系统100的框图。

参考图1,数据处理系统100可以包括主机102和存储器系统110。

主机102可以包括各种便携式电子设备中的任何一种,诸如移动电话、mp3播放器和膝上型计算机,或者可以包括各种非便携式电子设备中的任何一种,诸如台式计算机、游戏机、电视和投影仪。

主机102可以包括至少一个os(操作系统)。主机102可以执行os以在存储器系统110上执行与用户请求相对应的操作。本文中,主机102可以向存储器系统110提供与用户请求相对应的多个命令。因此,存储器系统110可以执行与多个命令相对应(即,与用户的请求相对应)的某些操作。os可以管理和控制主机102的整体功能和操作。os可以使用数据处理系统100或存储器系统110来支持主机102与用户之间的操作。

存储器系统110可以响应于来自主机102的请求而操作或执行特定功能或操作,并且特别地,可以存储要由主机102访问的数据。存储器系统110可以用作主机102的主存储器系统或辅助存储器系统。存储器系统110可以根据主机接口的协议利用可以与主机102电耦合的各种类型的存储设备中的任何一种来实现。存储器系统110的非限制性示例包括固态驱动器(ssd)、多媒体卡(mmc)和嵌入式mmc(emmc)。

存储器系统110可以包括各种类型的存储设备中的任何一种。这样的存储设备的非限制性示例包括诸如dram动态随机存取存储器(dram)和静态ram(sram)的易失性存储器设备、以及诸如只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电ram(fram)、相变ram(pram)、磁阻ram(mram)、电阻ram(rram)和闪存的非易失性存储器设备。

存储器系统110可以包括存储器设备150和控制器130。

控制器130和存储器设备150可以集成到单个半导体器件中,该半导体器件可以被包括在如上所述的各种类型的存储器系统中的任何一种中。例如,控制器130和存储器设备150可以集成为单个半导体器件以构成ssd、pcmcia(个人计算机存储器卡国际协会)卡、包括mini-sd的sd卡、micro-sd和sdhc、以及ufs设备。存储器系统110可以被配置为计算机、智能电话、便携式游戏机、或配置计算系统的各种组件中的一个的一部分。

存储器设备150可以是非易失性存储器设备,即使没有供电,非易失性存储器设备也可以保留所存储的数据。存储器设备150可以存储通过写入操作从主机102提供的数据,并且通过读取操作将存储在其中的数据输出到主机102。在一个实施例中,存储器设备150可以包括多个存储器管芯(未示出),并且每个存储器管芯可以包括多个平面(未示出)。每个平面可以包括多个存储器块152至156,每个存储器块可以包括多个页面,每个页面可以包括耦合到字线的多个存储器单元。在一个实施例中,存储器设备150可以是具有3维(3d)堆叠结构的闪存。

下面将参考图2至图4详细描述包括存储器设备150的3d堆叠结构的存储器设备150的结构。

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

更具体地,控制器130可以包括主机接口(i/f)132、处理器134、存储器接口142和存储器144,它们都经由内部总线可操作地耦合或接合。如稍后参考图5所述,控制器130还可以包括耗损均衡触发模块502、目标牺牲存储器块检测器504和耗损均衡操作模块506。

主机接口132可以处理主机102的命令和数据。主机接口132可以通过诸如通用串行总线(usb)、多媒体卡(mmc)、外围组件互连express(pci-e)、小型计算机系统接口(scsi)、串行连接scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、增强型小磁盘接口(esdi)和集成驱动电子设备(ide)的各种接口协议中的一个或多个而与主机102通信。主机接口132可以经由固件(即,用于与主机102交换数据的主机接口层(hil))来驱动。

存储器接口142可以用作控制器130与存储器设备150之间的存储器/存储接口,使得控制器130可以响应于来自主机102的请求而控制存储器设备150。

存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。

存储器144可以是易失性存储器。例如,存储器144可以是静态随机存取存储器(sram)或动态随机存取存储器(dram)。存储器144可以设置在控制器130内部或外部。图1示出了设置在控制器130内的存储器144。在另一实施例中,存储器144可以是具有用于在存储器144与控制器130之间传输数据的存储器接口的外部易失性存储器。

如上所述,存储器144可以包括程序存储器、数据存储器、写缓冲器/高速缓存、读缓冲器/高速缓存、数据缓冲器/高速缓存以及映射缓冲器/高速缓存,以存储用于执行主机102与存储器设备150之间的数据写入和读取操作的一些数据、以及控制器130和存储器设备150执行这些操作所需要的其他数据。

处理器134可以控制存储器系统110的整体操作。处理器134可以使用固件来控制存储器系统110的整体操作。固件可以称为闪存转换层(ftl)。处理器134可以用微处理器或中央处理单元(cpu)来实现。

例如,控制器130可以通过处理器134执行由主机102在存储器设备150中请求的操作,处理器134被实现为微处理器、cpu等。而且,控制器130可以通过处理器134对存储器设备150执行后台操作,处理器134可以实现为微处理器或cpu。对存储器设备150执行的后台操作可以包括:将存储在存储器设备150的存储器块152到156中的一些存储器块中的数据复制和处理成其他存储器块的操作(例如,垃圾收集(gc)操作)、在存储器块152至156中的一些之间执行交换数据的操作(例如,耗损均衡(wl)操作)、将存储在控制器130中的映射数据存储在存储器块152至156中的操作(例如,映射刷新操作)、或者管理存储器设备150的坏块的操作(例如,检测和处理存储器设备150中的存储器块152至156中的坏块的坏块管理操作)。

参考图2至图4详细描述根据本发明的实施例的存储器系统的存储器设备。

图2是示出存储器设备150的示意图。图3是示出存储器设备150中的存储器块330的存储器单元阵列的配置的电路图。图4是示出存储器设备150的3d结构的示意图。

参考图2,存储器设备150可以包括多个存储器块block0至blockn-1,其中n是大于1的整数。块block0至blockn-1中的每个可以包括多个页面,例如,2m或m个页面,其数目可以根据电路设计而变化,m是大于1的整数。每个页面可以包括耦合到多个字线wl的多个存储器单元。

此外,相应存储器块block0至blockn-1中的存储器单元可以是存储1位数据的单级单元(slc)或存储2位或更多位数据的多级单元(mlc)中的一个或多个。因此,存储器设备150可以包括slc存储器块或mlc存储器块,这取决于可以在存储器块中的每个存储器单元中表达或存储的位的数目。slc存储器块可以包括由存储器单元实现的多个页面,每个存储器单元存储一位数据。slc存储器块通常可以具有比mlc存储器块更高的数据计算性能和更高的耐用性。mlc存储器块可以包括多个页面,这些页面由存储器单元实现,每个存储器单元存储多位数据(例如,2位或更多位)。mlc存储器块通常可以具有比slc存储器块更大的数据存储空间,即更高的集成密度。在另一实施例中,存储器设备150可以包括多个三级单元(tlc)存储器块。在又一实施例中,存储器设备150可以包括多个四级单元(qlc)存储器块。tcl存储器块可以包括多个页面,这些页面由每个能够存储3位数据的存储器单元实现。qlc存储器块可以包括多个页面,这些页面由每个能够存储4位数据的存储器单元实现。

代替非易失性存储器,存储器设备150可以由相变随机存取存储器(pcram)、电阻随机存取存储器(rram(reram))、铁电随机存取存储器(fram)和自旋转移力矩磁随机存取存储器(stt-ram(stt-mram))中的任何一个来实现。

存储器块210、220、230、240可以通过编程操作存储从主机102传输的数据,并且可以通过读取操作将存储在其中的数据传输到主机102。

参考图3,存储器块330可以包括耦合到多个对应位线bl0至blm-1的多个单元串340。每列的单元串340可以包括一个或多个漏极选择晶体管dst和一个或多个源极选择晶体管sst。在漏极选择晶体管dst与源极选择晶体管sst之间,多个存储器单元mc0至mcn-1可以串联耦合。在一个实施例中,存储器单元晶体管mc0至mcn-1中的每个可以由能够存储多个位的数据信息的mlc实现。单元串340中的每个可以电耦合到多个位线bl0至blm-1中的对应位线。例如,如图3所示,第一单元串耦合到第一位线bl0,并且最后的单元串耦合到最后的位线blm-1。

虽然图3示出了与非闪存存储器单元,但是本公开不限于此。注意,存储器单元可以是或非闪存单元,或者是包括组合在其中的两种或更多种存储器单元的混合闪存单元。此外,应当注意,存储器设备150可以是包括导电浮栅作为电荷存储层的闪存器件,或者可以是包括绝缘层作为电荷存储层的电荷陷阱闪存(ctf)存储器设备。

存储器设备150还可以包括电压源310,电压源310根据操作模式生成包括编程电压、读取电压和通过电压在内的不同字线电压以提供给字线。电压源310的电压生成操作可以由控制电路(未示出)控制。在控制电路的控制下,电压源310可以选择存储器单元阵列的至少一个存储器块(或扇区),选择所选择的存储器块的至少一个字线,并且可以根据需要向所选择的字线和未选择的字线提供字线电压。

存储器设备150可以包括由控制电路控制的读取/写入电路320。在验证/正常读取操作期间,读取/写入电路320可以作为感测放大器进行操作以从存储器单元阵列读取(感测和放大)数据。在编程操作期间,读取/写入电路320可以作为写入驱动器进行操作以根据要存储在存储器单元阵列中的数据向位线提供电压或电流。在编程操作期间,读取/写入电路320可以从缓冲器(未示出)接收要存储到存储器单元阵列中的数据,并且根据所接收的数据驱动位线。读取/写入电路320可以包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322至326。页面缓冲器322至326中的每个可以包括多个锁存器(未示出)。

存储器设备150可以由2d或3d存储器设备实现。特别地,如图4所示,存储器设备150可以由具有3d堆叠结构的非易失性存储器设备实现。当存储器设备150具有3d结构时,存储器设备150可以包括多个存储器块blk0至blkn-1,这些存储器块可以对应于图1所示的存储器设备150的存储器块152、154和156。存储器块152、154和156中的每个可以以3d结构(或竖直结构)实现。例如,存储器块152、154和156中的每个以及集合结构可以是三维的,其尺寸在相互正交的方向上延伸,例如,x轴方向、y轴方向和z轴方向,如图4所示。

存储器设备150中包括的每个存储器块330可以包括沿第二方向延伸的多个与非串ns(未示出)以及沿第一方向和第三方向延伸的多个与非串ns。在本文中,每个与非串ns可以耦合到位线bl、至少一个串选择线ssl、至少一个地选择线gsl(未示出)、多个字线wl、至少一个虚拟字线dwl(未示出)和公共源极线csl,并且每个与非串ns可以包括多个晶体管结构ts(未示出)。

简而言之,代表存储器设备150的存储器块152、154和156中的任何一个的每个存储器块330可以耦合到多个位线bl、多个串选择线ssl、多个地选择线gsl、多个字线wl、多个虚拟字线dwl和多个公共源极线csl,并且每个存储器块330可以包括多个与非串ns。而且,在每个存储器块330中,一个位线bl可以耦合到多个与非串ns以在一个与非串ns中实现多个晶体管。而且,每个与非串ns的串选择晶体管sst可以耦合到对应的位线bl,并且每个与非串ns的地选择晶体管gst可以耦合到公共源极线csl。在本文中,存储器单元mc可以被提供在每个与非串ns的串选择晶体管sst与地选择晶体管gst之间。换言之,可以在存储器设备150的每个存储器块330中实现多个存储器单元。

闪存设备以页面为单位执行编程和读取操作,以存储器块为单位执行擦除操作,并且不支持重写操作,这与硬盘系统不同。因此,为了改变在页面中编程的原始数据,闪存设备将原始数据的已改变版本编程到另一页面中并且使原始数据无效。当特定存储器块充满无效页面时,控制器130可以控制存储器设备150对特定存储器块执行擦除操作,并且然后对特定(现在经擦除的)存储器块执行编程操作。当特定存储器块的擦除计数达到最大擦除计数时,控制器130可以将特定存储器块指定为坏存储器块,该存储器块不再能够使用。控制器130可以控制存储器设备150对存储器块执行耗损均衡操作,使得存储器块的擦除计数不达到最大擦除计数。通过耗损均衡操作,存储器设备150中包括的存储器块的耗损水平可以保持均匀,从而增加闪存的寿命。

在耗损均衡操作期间,在具有高擦除计数的存储器块中编程的数据可以被映射到具有低擦除计数的存储器块中,而在具有低擦除计数的存储器块中编程的数据可以被映射到具有高擦除计数的存储器块。通过耗损均衡操作,对具有低擦除计数的存储器块的编程和擦除操作的频率可以增加,而对具有高擦除计数的存储器块的编程和擦除操作的频率可以降低。通过耗损均衡操作,存储器设备150中的存储器块的耗损水平可以保持均匀,从而增加闪存的寿命。

根据现有技术,控制器控制存储器设备对存储映射数据的映射存储器块以及存储系统数据和主机数据的数据存储器块单独地执行耗损均衡操作。例如,对映射存储器块的耗损均衡操作期间,控制器检测具有低擦除计数的映射存储器块和具有高擦除计数的映射存储器块,并且将在具有高擦除计数的映射存储器块中编程的映射数据映射到具有低擦除计数的映射存储器块中,同时将在具有低擦除计数的映射存储器块中编程的映射数据映射到具有高擦除计数的映射存储器块中。

根据现有技术,当对映射存储器块和数据存储器块两者集中执行编程和擦除操作时,很难保持包括映射存储器块和数据存储器块在内的所有存储器块的耗损水平均匀。例如,当对数据存储器块比对映射存储器块更集中地执行编程和擦除操作时,数据存储器块的平均擦除计数很高,而映射存储器块的平均擦除计数很低。在这种情况下,尽管通过对数据存储器块的耗损均衡操作可以保持数据存储器块的耗损水平均匀,但是很难保持包括映射存储器块和数据存储器块在内的所有存储器块的耗损水平均匀。

例如,当对映射存储器块比对数据存储器块更集中地执行编程和擦除操作时,映射存储器块的平均擦除计数很高,而数据存储器块的平均擦除计数很低。在这种情况下,尽管通过对映射存储器块的耗损均衡操作可以保持映射存储器块的耗损水平均匀,但是很难保持包括映射存储器块和数据存储器块在内的所有存储器块的耗损水平均匀。

根据本公开的实施例,当对数据存储器块比对映射存储器块更集中地执行编程和擦除操作时,可以改变具有低擦除计数的映射存储器块以变为数据存储器块。控制器130可以执行将在具有高擦除计数的数据存储器块中编程的数据映射到已改变的数据存储器块的耗损均衡操作。根据本公开的另一实施例,当对映射存储器块比对数据存储器块更强烈地执行编程和擦除操作时,可以改变具有低擦除计数的数据存储器块以变为映射存储器块。控制器130可以执行将在具有高擦除计数的映射存储器块中编程的数据映射到已改变的映射存储器块的耗损均衡操作。根据本公开的实施例,可以对映射存储器块和数据存储器块不是单独地而是聚合地执行耗损均衡操作,从而保持包括映射存储器块和数据存储器块在内的所有存储器块的耗损水平均匀。

图5是示意性地示出根据本公开的实施例的存储器系统110的框图。图5简要地示出了数据处理系统100的元件中与本公开的实施例有关的元件。

如上所述,存储器系统110可以包括存储器设备150和控制器130。控制器130可以控制存储器设备150对存储器块执行耗损均衡操作和垃圾收集操作。

参考图5,控制器130还可以包括耗损均衡触发模块502、目标牺牲存储器块检测器504和耗损均衡操作模块506。存储器设备150可以包括多个映射存储器块160、162和164以及数据存储器块170、172和174。

耗损均衡触发模块502可以基于映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值来触发目标牺牲存储器块检测操作。

根据本公开的实施例,当映射存储器块的平均擦除计数ecavg_map小于数据存储器块的平均擦除计数ecavg_data并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值大于第一阈值th1时,耗损均衡触发模块502可以向目标牺牲存储器块检测器504提供第一触发信号sigtrig1。

当映射存储器块的平均擦除计数ecavg_map小于数据存储器块的平均擦除计数ecavg_data并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1,但是映射存储器块的最小擦除计数ecmin_map与数据存储器块的平均擦除计数ecavg_data之间的差值大于第二阈值th2时,耗损均衡触发模块502可以向目标牺牲存储器块检测器504提供第二触发信号sigtrig2。

根据本公开的另一实施例,当数据存储器块的平均擦除计数ecavg_data小于映射存储器块的平均擦除计数ecavg_map并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值大于第一阈值th1时,耗损均衡触发模块502可以向目标牺牲存储器块检测器504提供第三触发信号sigtrig3。

当数据存储器块的平均擦除计数ecavg_data小于映射存储器块的平均擦除计数ecavg_map并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1,但是数据存储器块的最小擦除计数ecmin_data与映射存储器块的平均擦除计数ecavg_map之间的差值大于第二阈值th2时,耗损均衡触发模块502可以向目标牺牲存储器块检测器504提供第四触发信号sigtrig4。

图6是示意性地示出根据本公开的实施例的耗损均衡触发模块502的框图。

耗损均衡触发模块502可以包括擦除计数部分602和第一比较部分604。

擦除计数部分602可以获取映射存储器块的平均擦除计数ecavg_map和数据存储器块的平均擦除计数ecavg_data。

擦除计数部分602可以获取存储器设备150内的相应映射存储器块的擦除计数和相应数据存储器块的擦除计数。擦除计数部分602可以通过对相应映射存储器块的擦除计数求和、并且然后将该总和除以映射存储器块的数目来获取映射存储器块的平均擦除计数ecavg_map。擦除计数部分602可以通过对相应数据存储器块的擦除计数求和、并且然后将该总和除以数据存储器块的数目来获取数据存储器块的平均擦除计数ecavg_data。

擦除计数部分602可以向第一比较部分604和目标牺牲存储器块检测器504提供表示映射存储器块的平均擦除计数ecavg_map和数据存储器块的平均擦除计数ecavg_data的擦除计数信息infoec、以及存储器设备150内的相应映射存储器块的擦除计数和相应数据存储器块的擦除计数。

第一比较部分604可以基于擦除计数信息infoec来比较映射存储器块的平均擦除计数ecavg_map和数据存储器块的平均擦除计数ecavg_data。

根据本公开的实施例,当映射存储器块的平均擦除计数ecavg_map小于数据存储器块的平均擦除计数ecavg_data并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值大于第一阈值th1时,第一比较部分604可以向目标牺牲存储器块检测器504提供第一触发信号sigtrig1。

当映射存储器块的平均擦除计数ecavg_map小于数据存储器块的平均擦除计数ecavg_data并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1时,第一比较部分604可以获取映射存储器块的最小擦除计数ecmin_map。第一比较部分604可以根据擦除计数信息infoec从存储器设备150内的映射存储器块的擦除计数中获取映射存储器块的最小擦除计数ecmin_map。

当映射存储器块的平均擦除计数ecavg_map小于数据存储器块的平均擦除计数ecavg_data并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1,但是映射存储器块的最小擦除计数ecmin_map与数据存储器块的平均擦除计数ecavg_data之间的差值大于第二阈值th2时,第一比较部分604可以向目标牺牲存储器块检测器504提供第二触发信号sigtrig2。

耗损均衡触发模块502可以通过在特定条件下(即,当映射存储器块的最小擦除计数ecmin_map与数据存储器块的平均擦除计数ecavg_data之间的差值大于第二阈值th2时)触发耗损均衡操作来控制存储器设备150优先地对具有最小擦除计数ecmin_map的映射存储器块执行耗损均衡操作,即使当映射存储器块的平均擦除计数ecavg_map小于数据存储器块的平均擦除计数ecavg_data并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1时。

因此,耗损均衡触发模块502可以防止由于如下长时间情况而导致对具有最小擦除计数ecmin_map的映射存储器块长时间不执行耗损均衡操作的问题:其中映射存储器块的平均擦除计数ecavg_map小于数据存储器块的平均擦除计数ecavg_data并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1。

图7是示意性地示出根据本公开的另一实施例的耗损均衡触发模块502的框图。

根据本公开的另一实施例,当数据存储器块的平均擦除计数ecavg_data小于映射存储器块的平均擦除计数ecavg_map并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值大于第一阈值th1时,第一比较部分604可以向目标牺牲存储器块检测器504提供第三触发信号sigtrig3。

当数据存储器块的平均擦除计数ecavg_data小于映射存储器块的平均擦除计数ecavg_map并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1时,第一比较部分604可以获取数据存储器块的最小擦除计数ecmin_data。第一比较部分604可以根据擦除计数信息infoec从存储器设备150内的数据存储器块的擦除计数中获取数据存储器块的最小擦除计数ecmin_data。

当数据存储器块的平均擦除计数ecavg_data小于映射存储器块的平均擦除计数ecavg_map并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1,但是数据存储器块的最小擦除计数ecmin_data与映射存储器块的平均擦除计数ecavg_map之间的差值大于第二阈值th2时,第一比较部分604可以向目标牺牲存储器块检测器504提供第四触发信号sigtrig4。

耗损均衡触发模块502可以通过在特定条件下(即,当数据存储器块的最小擦除计数ecmin_data与映射存储器块的平均擦除计数ecavg_map之间的差值大于第二阈值th2时)触发耗损均衡操作来控制存储器设备150优先地对具有最小擦除计数ecmin_map的数据存储器块执行耗损均衡操作,即使当数据存储器块的平均擦除计数ecavg_data小于映射存储器块的平均擦除计数ecavg_map并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1时。

因此,耗损均衡触发模块502可以防止由于如下长时间情况而导致对具有最小擦除计数ecmin_data的数据存储器块长时间不执行耗损均衡操作的问题:其中数据存储器块的平均擦除计数ecavg_data小于映射存储器块的平均擦除计数ecavg_map并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1。

再次参考图5,根据本公开的实施例,目标牺牲存储器块检测器504可以根据第一触发信号sigtrig1和第二触发信号sigtrig2来检测第一牺牲存储器块。目标牺牲存储器块检测器504可以根据第一触发信号sigtrig1检测每个具有的擦除计数小于或等于数据存储器块的平均擦除计数ecavg_data的映射存储器块作为第一牺牲存储器块。目标牺牲存储器块检测器504还可以根据第二触发信号sigtrig2检测具有映射存储器块的最小擦除计数ecmin_map的映射存储器块作为第一牺牲存储器块。

根据本公开的另一实施例,目标牺牲存储器块检测器504可以根据第三触发信号sigtrig3和第四触发信号sigtrig4来检测第二牺牲存储器块。目标牺牲存储器块检测器504可以根据第三触发信号sigtrig3检测每个具有的擦除计数小于或等于映射存储器块的平均擦除计数ecavg_map的数据存储器块作为第二牺牲存储器块。目标牺牲存储器块检测器504还可以根据第四触发信号sigtrig4检测具有数据存储器块的最小擦除计数ecmin_data的数据存储器块作为第二牺牲存储器块。

根据本公开的实施例,目标牺牲存储器块检测器504可以控制存储器设备150执行将第一牺牲存储器块的有效页面数据复制到目标映射存储器块中、并且擦除第一牺牲存储器块的数据的垃圾收集操作。目标牺牲存储器块检测器504可以向耗损均衡操作模块506提供关于第一牺牲存储器块的信息infowl_blk1和第一完整信号sigcomplete1。

根据本公开的另一实施例,目标牺牲存储器块检测器504可以控制存储器设备150执行将第二牺牲存储器块的有效页面数据复制到目标映射存储器块中、并且擦除第二牺牲存储器块的数据的垃圾收集操作。目标牺牲存储器块检测器504可以向耗损均衡操作模块506提供关于第二牺牲存储器块的信息infowl_blk2和第二完整信号sigcomplete2。

图8是示意性地示出根据本公开的实施例的目标牺牲存储器块检测器504的框图。

目标牺牲存储器块检测器504可以包括阈值确定部分702、第二比较部分704和垃圾收集操作部分706。

阈值确定部分702可以分别根据第一触发信号sigtrig1和第二触发信号sigtrig2将数据存储器块的平均擦除计数ecavg_data和映射存储器块的最小擦除计数ecmin_map确定为阈值th。阈值确定部分702可以向第二比较部分704提供表示所确定的阈值th的阈值信息infoth。

第二比较部分704可以根据阈值信息infoth将阈值th与相应映射存储器块的擦除计数进行比较。根据本公开的实施例,第二比较部分704可以检测作为第一牺牲存储器块的、具有擦除计数小于或等于阈值th的映射存储器块。第二比较部分704可以向垃圾收集操作部分706和耗损均衡操作模块506提供关于检测到的第一牺牲存储器块的信息infowl_blk1。

垃圾收集操作部分706可以根据关于第一牺牲存储器块的信息infowl_blk1来控制存储器设备150对第一牺牲存储器块执行垃圾收集操作。在垃圾收集操作期间,存储器设备150可以将第一牺牲存储器块的有效页面数据复制到目标映射存储器块中,并且可以擦除第一牺牲存储器块的数据。每个目标存储器块可以具有空页面,空页面的数目大于或等于阈值,该阈值可以是预定的。当第一牺牲存储器块的所有页面由于垃圾收集操作而变空时,垃圾收集操作部分706可以向耗损均衡操作模块506提供第一完整信号sigcomplete1。

图9是示意性地示出根据本公开的另一实施例的目标牺牲存储器块检测器504的框图。

阈值确定部分702可以分别根据第三触发信号sigtrig3和第四触发信号sigtrig4将映射存储器块的平均擦除计数ecavg_map和数据存储器块的最小擦除计数ecmin_data确定为阈值th。阈值确定部分702可以向第二比较部分704提供表示所确定的阈值th的阈值信息infoth。

第二比较部分704可以根据阈值信息infoth将阈值th与相应数据存储器块的擦除计数进行比较。根据本公开的另一实施例,第二比较部分704可以检测作为第二牺牲存储器块的、具有擦除计数小于或等于阈值th的数据存储器块。第二比较部分704可以向垃圾收集操作部分706和耗损均衡操作模块506提供关于检测到的第二牺牲存储器块的信息infowl_blk2。

垃圾收集操作部分706可以根据关于第二牺牲存储器块的信息infowl_blk2来控制存储器设备150对第二牺牲存储器块执行垃圾收集操作。在垃圾收集操作期间,存储器设备150可以将第二牺牲存储器块的有效页面数据复制到目标数据存储器块中,并且可以擦除第二牺牲存储器块的数据。每个目标存储器块可以具有空页面,空页面的数目大于或等于阈值,该阈值可以是预定的。当第二牺牲存储器块的所有页面由于垃圾收集操作而变空时,垃圾收集操作部分706可以向耗损均衡操作模块506提供第二完整信号sigcomplete2。

再次参考图5,耗损均衡操作模块506可以控制存储器设备150根据第一完整信号sigcomplete1和第二完整信号sigcomplete2对牺牲存储器块执行耗损均衡操作。

根据本公开的实施例,耗损均衡操作模块506可以根据第一完整信号sigcomplete1检测作为热数据存储器块的、每个具有的擦除计数等于或大于阈值的数据存储器块,该阈值可以是预定的。热数据存储器块可以是存储热数据的那些存储器块,热数据是经常被访问的数据,即具有高访问频率的数据。耗损均衡操作模块506可以基于关于第一牺牲存储器块的信息infowl_blk1控制存储器设备150执行将存储在热数据存储器块中的数据映射到第一牺牲存储器块的耗损均衡操作。

根据本公开的实施例,控制器130可以不是单独地而是聚合地通过经由垃圾收集操作和映射操作将映射存储器块改变为数据存储器块来控制存储器设备150对映射存储器块和数据存储器块执行耗损均衡操作。控制器130可以通过控制存储器设备150执行将存储在数据存储器块中的热数据映射到具有低擦除计数的映射存储器块的耗损均衡操作来防止映射存储器块的擦除计数不增加的问题。因此,所有存储器块的擦除计数可以在存储器设备150内保持均匀。

根据本公开的另一实施例,耗损均衡操作模块506可以根据第二完整信号sigcomplete2检测作为热映射存储器块的、每个具有的擦除计数大于或等于阈值的映射存储器块,该阈值可以是预定的。耗损均衡操作模块506可以基于关于第二牺牲存储器块的信息infowl_blk2控制存储器设备150执行将存储在热映射存储器块中的数据映射到第二牺牲存储器块的耗损均衡操作。

根据本公开的另一实施例,控制器130可以不是单独地而是聚合地通过经由垃圾收集操作和映射操作将数据存储器块改变为映射存储器块来控制存储器设备150对映射存储器块和数据存储器块执行耗损均衡操作。控制器130可以通过控制存储器设备150执行将存储在映射存储器块中的热数据映射到具有低擦除计数的数据存储器块的耗损均衡操作来防止数据存储器块的擦除计数不增加的问题。因此,所有存储器块的擦除计数可以在存储器设备150内保持均匀。

图10是示意性地示出根据本公开的实施例的耗损均衡操作模块506的框图。

耗损均衡操作模块506可以包括热数据检测部分802和映射部分804。

根据本公开的实施例,热数据检测部分802可以根据第一完整信号sigcomplete1检测存储热数据的热数据存储器块。热数据检测部分802可以基于擦除计数信息infoec检测作为热数据存储器块的、每个具有的擦除计数大于或等于阈值的数据存储器块,该阈值可以是预定的。热数据检测部分802可以向映射部分804提供关于热数据存储器块的信息infohot_data_blk。

映射部分804可以根据关于热数据存储器块的信息infohot_data_blk和关于第一牺牲存储器块的信息infowl_blk1,来控制存储器设备150执行将存储在热数据存储器块中的数据映射到第一牺牲存储器块的耗损均衡操作。在耗损均衡操作完成之后,映射部分804可以控制存储器设备150擦除存储在热数据存储器块中的数据,并且将存储在映射存储器块中的冷数据映射到热数据存储器块,从而延迟热数据存储器块的擦除计数的增加。因此,由于耗损均衡操作,可以提高每个具有低擦除计数的第一牺牲存储器块的擦除计数的增加的速率或幅度,同时可以降低每个具有高擦除计数的热数据存储器块的擦除计数的增加的速率或幅度。因此,可以保持所有存储器块的总擦除计数均匀。

图11是示意性地示出根据本公开的另一实施例的耗损均衡操作模块506的框图。

耗损均衡操作模块506可以包括热数据检测部分802和映射部分804。

根据本公开的另一实施例,热数据检测部分802可以根据第二完整信号sigcomplete2检测存储热数据的热映射存储器块。热数据检测部分802可以基于擦除计数信息infoec检测作为热映射存储器块的、每个具有的擦除计数大于或等于阈值的映射存储器块,该阈值可以是预定的。热数据检测部分802可以向映射部分804提供关于热映射存储器块的信息infohot_map_blk。

映射部分804可以根据关于热映射存储器块的信息infohot_map_blk和关于第二牺牲存储器块的信息infowl_blk2,来控制存储器设备150执行将存储在热映射存储器块中的数据映射到第二牺牲存储器块的耗损均衡操作。在耗损均衡操作完成之后,映射部分804可以控制存储器设备150擦除存储在热映射存储器块中的数据,并且将存储在数据存储器块中的冷数据映射到热映射存储器块,从而延迟热映射存储器块的擦除计数的增加。因此,由于耗损均衡操作,可以提高每个具有低擦除计数的第二牺牲存储器块的擦除计数的增加的速率或幅度,同时可以降低每个具有高擦除计数的热映射存储器块的擦除计数的增加的速率或幅度。因此,可以保持所有存储器块的总擦除计数均匀。

图12是示出根据本公开的实施例的存储器系统110的操作的流程图。

参考图12,存储器系统110的操作可以包括:对平均擦除计数进行计数的步骤s1202;检测牺牲存储器块的步骤s1204、s1206、s1208、s1210和s1212;执行垃圾收集操作的步骤s1214;以及执行耗损均衡操作的步骤s1216。

在步骤s1202处,控制器130可以获取映射存储器块的平均擦除计数ecavg_map和数据存储器块的平均擦除计数ecavg_data。控制器130可以通过对存储器设备150内的相应映射存储器块的擦除计数求和、并且然后将该总和除以映射存储器块的数目来获取映射存储器块的平均擦除计数ecavg_map。控制器130可以通过对存储器设备150内的相应数据存储器块的擦除计数求和、并且然后将该总和除以数据存储器块的数目来获取数据存储器块的平均擦除计数ecavg_data。

在步骤s1204处,当映射存储器块的平均擦除计数ecavg_map小于数据存储器块的平均擦除计数ecavg_data时(步骤s1204为“是”),控制器130可以基于在步骤s1202处获取的映射存储器块的平均擦除计数ecavg_map和数据存储器块的平均擦除计数ecavg_data来检测牺牲存储器块。

在步骤s1206处,控制器130可以基于在步骤s1202处获取的映射存储器块的平均擦除计数ecavg_map和数据存储器块的平均擦除计数ecavg_data,来将映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值与第一阈值th1进行比较。当映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1时(步骤s1206为“否”),控制器130可以从映射存储器块的擦除计数中获取映射存储器块的最小擦除计数ecmin_map。

在步骤s1208处,控制器130可以基于在步骤s1202处获取的映射存储器块的平均擦除计数ecavg_map和数据存储器块的平均擦除计数ecavg_data以及在步骤s1206获取的映射存储器块的最小擦除计数ecmin_map,来将映射存储器块的最小擦除计数ecmin_map与数据存储器块的平均擦除计数ecavg_data之间的差值与第二阈值th2进行比较。当映射存储器块的最小擦除计数ecmin_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第二阈值th2时(步骤s1208为“否”),该过程可以返回到步骤s1204。

在步骤s1210和s1212,控制器130可以检测作为第一牺牲存储器块的、每个具有的擦除计数小于或等于阈值th的映射存储器块。

在步骤s1210处,控制器130可以将数据存储器块的平均擦除计数ecavg_data确定为阈值th。当映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值大于第一阈值th1时(步骤s1206为“是”),控制器130可以检测作为第一牺牲存储器块的、每个具有的擦除计数小于或等于数据存储器块的平均擦除计数ecavg_data的映射存储器块。

在步骤s1212处,控制器130可以将映射存储器块的最小擦除计数ecmin_map确定为阈值th。当映射存储器块的最小擦除计数ecmin_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于第一阈值th1但大于第二阈值th2时(步骤s1208为“是”),控制器130可以检测作为第一牺牲存储器块的、具有映射存储器块的最小擦除计数ecmin_map的映射存储器块。

根据本公开的实施例,控制器130可以通过在特定条件下(即,当映射存储器块的最小擦除计数ecmin_map与数据存储器块的平均擦除计数ecavg_data之间的差值大于第二阈值th2时)触发耗损均衡操作来控制存储器设备150优先地对具有最小擦除计数ecmin_map的映射存储器块执行耗损均衡操作,即使当映射存储器块的平均擦除计数ecavg_map小于数据存储器块的平均擦除计数ecavg_data并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1时。

因此,控制器130可以防止由于如下长时间情况而导致对具有最小擦除计数ecmin_map的映射存储器块长时间不执行耗损均衡操作的问题:其中映射存储器块的平均擦除计数ecavg_map小于数据存储器块的平均擦除计数ecavg_data并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1。

在步骤s1214处,控制器130可以控制存储器设备150对在步骤s1210处和s1212处检测到的第一牺牲存储器块执行垃圾收集操作。在垃圾收集操作期间,存储器设备150可以将第一牺牲存储器块的有效页面数据复制到目标映射存储器块中并且擦除第一牺牲存储器块的数据。

在步骤s1216处,控制器130可以控制存储器设备150执行将存储在数据存储器块中的热数据映射到第一牺牲存储器块的耗损均衡操作。热数据可以是存储在每个具有的擦除计数大于或等于阈值的数据存储器块中的数据,该阈值可以是预定的。

例如,当映射存储器块的平均擦除计数ecavg_map为“20”,数据存储器块的平均擦除计数ecavg_data为“100”并且第一阈值th1为“50”时,映射存储器块的平均擦除计数ecavg_map小于数据存储器块的平均擦除计数ecavg_data,并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值大于第一阈值th1。因此,控制器130可以检测作为第一牺牲存储器块的、每个具有的擦除计数小于或等于数据存储器块的平均擦除计数ecavg_data的映射存储器块。控制器130可以控制存储器设备150对第一牺牲存储器块(即,每个具有的擦除计数小于或等于数据存储器块的平均擦除计数ecavg_data的映射存储器块)执行垃圾收集操作。在垃圾收集操作期间,存储器设备150可以将第一牺牲存储器块的有效页面数据复制到目标映射存储器块中、并且擦除第一牺牲存储器块的数据。控制器130可以控制存储器设备150执行将存储在热数据存储器块(每个热数据存储器块具有擦除计数“120”)中的热数据映射到第一牺牲存储器块、并且将存储在冷映射存储器块(每个冷映射存储器块具有小于或等于“10”的擦除计数)中的冷数据映射到热数据存储器块的耗损均衡操作。

例如,当映射存储器块的平均擦除计数ecavg_map为“55”,数据存储器块的平均擦除计数ecavg_data为“100”,第一阈值th1为“50”,并且第二阈值th2为“40”时,映射存储器块的平均擦除计数ecavg_map小于数据存储器块的平均擦除计数ecavg_data、并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_map之间的差值小于第一阈值th1但大于第二阈值th2。因此,控制器130可以检测作为第一牺牲存储器块的、具有映射存储器块的最小擦除计数ecmin_map的映射存储器块,并且可以控制存储器设备150对第一牺牲存储器块(即,具有映射存储器块的最小擦除计数ecmin_map的映射存储器块)执行耗损均衡操作。

根据本公开的实施例,控制器130可以不是单独地而是聚合地通过在步骤s1214处和s1216处将映射存储器块改变为数据存储器块来控制存储器设备150对映射存储器块和数据存储器块执行耗损均衡操作。控制器130可以通过控制存储器设备150执行将存储在数据存储器块中的热数据映射到具有低擦除计数的映射存储器块的耗损均衡操作,来防止映射存储器块的擦除计数不增加的问题。因此,所有存储器块的擦除计数可以在存储器设备150内保持均匀。

图13是示意性地示出根据本公开的另一实施例的存储器系统110的操作的流程图。

参考图13,存储器系统110的操作可以包括:对平均擦除计数进行计数的步骤s1302;检测牺牲存储器块的步骤s1304至s1312;执行垃圾收集操作的步骤s1314;以及执行耗损均衡操作的步骤s1316。

在步骤s1302处,控制器130可以获取映射存储器块的平均擦除计数ecavg_map和数据存储器块的平均擦除计数ecavg_data。控制器130可以通过对存储器设备150内的相应映射存储器块的擦除计数求和、并且然后将该总和除以存储器设备150内的映射存储器块的数目来获取映射存储器块的平均擦除计数ecavg_map。控制器130可以通过对存储器设备150内的相应数据存储器块的擦除计数求和、并且然后将该总和除以存储器设备150内的数据存储器块的数目来获取数据存储器块的平均擦除计数ecavg_data。

在步骤s1304处,当数据存储器块的平均擦除计数ecavg_data小于映射存储器块的平均擦除计数ecavg_map时(步骤s1304为“是”),控制器130可以基于在步骤s1302获取的映射存储器块的平均擦除计数ecavg_map和数据存储器块的平均擦除计数ecavg_data来检测牺牲存储器块。

在步骤s1306处,控制器130可以基于在步骤s1302处获取的映射存储器块的平均擦除计数ecavg_map和数据存储器块的平均擦除计数ecavg_data来将映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值与第一阈值th1进行比较。当映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1时(步骤s1306为“否”),控制器130可以从数据存储器块的擦除计数中获取数据存储器块的最小擦除计数ecmin_data。

在步骤s1308处,控制器130可以基于在步骤s1302处获取的映射存储器块的平均擦除计数ecavg_map和数据存储器块的平均擦除计数ecavg_data以及在步骤s1306处获取的数据存储器块的最小擦除计数ecmin_data,来将数据存储器块的最小擦除计数ecmin_data与映射存储器块的平均擦除计数ecavg_map之间的差值与第二阈值th2进行比较。当数据存储器块的最小擦除计数ecmin_data与映射存储器块的平均擦除计数ecavg_map之间的差值小于或等于第二阈值th2时(步骤s1308为“否”),该过程可以返回到步骤s1304。

在步骤s1310处和s1312处,控制器130可以检测作为第二牺牲存储器块的、每个具有的擦除计数小于或等于阈值th的数据存储器块。

在步骤s1310处,控制器130可以将映射存储器块的平均擦除计数ecavg_map确定为阈值th。当映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值大于第一阈值th1时(步骤s1306为“是”),控制器130可以检测作为第二牺牲存储器块的、每个具有的擦除计数小于或等于映射存储器块的平均擦除计数ecavg_map的数据存储器块。

在步骤s1312处,控制器130可以将数据存储器块的最小擦除计数ecmin_data确定为阈值th。当数据存储器块的最小擦除计数ecmin_data与映射存储器块的平均擦除计数ecavg_map之间的差值小于第一阈值th1但大于第二阈值th2时(步骤s1308为“是”),控制器130可以检测作为第二牺牲存储器块的、具有数据存储器块的最小擦除计数ecmin_data的数据存储器块。

根据本公开的另一实施例,控制器130可以通过在特定条件下(即,当数据存储器块的最小擦除计数ecmin_data与映射存储器块的平均擦除计数ecavg_map之间的差值大于第二阈值th2时)触发耗损均衡操作来控制存储器设备150优先地对具有最小擦除计数ecmin_data的数据存储器块执行耗损均衡操作,即使当数据存储器块的平均擦除计数ecavg_data小于映射存储器块的平均擦除计数ecavg_map并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1时。

因此,控制器130可以防止由于如下长时间情况而导致对具有最小擦除计数ecmin_data的数据存储器块长时间不执行耗损均衡操作的问题:其中数据存储器块的平均擦除计数ecavg_data小于映射存储器块的平均擦除计数ecavg_map并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于或等于第一阈值th1。

在步骤s1314处,控制器130可以控制存储器设备150对在步骤s1310和s1312处检测到的第二牺牲存储器块执行垃圾收集操作。在垃圾收集操作期间,存储器设备150可以将第二牺牲存储器块的有效页面数据复制到目标数据存储器块中并且擦除第二牺牲存储器块的数据。

在步骤s1316处,控制器130可以控制存储器设备150执行将存储在映射存储器块中的热数据映射到第二牺牲存储器块的耗损均衡操作。热数据可以存储在每个具有的擦除计数大于或等于阈值的映射存储器块中,该阈值可以是预定的。

例如,当数据存储器块的平均擦除计数ecavg_data为“20”,映射存储器块的平均擦除计数ecavg_map为“100”,并且第一阈值th1为“50”时,数据存储器块的平均擦除计数ecavg_data小于映射存储器块的平均擦除计数ecavg_map,并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值大于第一阈值th1。因此,控制器130可以检测作为第二牺牲存储器块的、每个具有的擦除计数小于或等于映射存储器块的平均擦除计数ecavg_map的数据存储器块。控制器130可以控制存储器设备150对第二牺牲存储器块(即,每个具有的擦除计数小于或等于映射存储器块的平均擦除计数ecavg_map的数据存储器块)执行垃圾收集操作。在垃圾收集操作期间,存储器设备150可以将第二牺牲存储器块的有效页面数据复制到目标数据存储器块中并且擦除第二牺牲存储器块的数据。控制器130可以控制存储器设备150执行将存储在热映射存储器块(每个热映射存储器块具有擦除计数“120”)中的热数据映射到第二牺牲存储器块、并且将存储在冷数据存储器块(每个冷数据存储器块具有小于或等于“10”的擦除计数)中的冷数据映射到冷数据存储器块的耗损均衡操作。

例如,当数据存储器块的平均擦除计数ecavg_data为“55”,映射存储器块的平均擦除计数ecavg_map为“100”,第一阈值th1为“50”,并且第二阈值th2为“40”时,数据存储器块的平均擦除计数ecavg_data小于映射存储器块的平均擦除计数ecavg_map,并且映射存储器块的平均擦除计数ecavg_map与数据存储器块的平均擦除计数ecavg_data之间的差值小于第一阈值th1但大于第二阈值th2。因此,控制器130可以检测作为第二牺牲存储器块的、具有数据存储器块的最小擦除计数ecmin_data的数据存储器块,并且可以控制存储器设备150对第二牺牲存储器块(即,具有数据存储器块的最小擦除计数ecmin_data的数据存储器块)执行耗损均衡操作。

根据本公开的另一实施例,控制器130可以不是单独地而是聚合地通过在步骤s1314和s1316处将数据存储器块改变为映射存储器块来控制存储器设备150对映射存储器块和数据存储器块执行耗损均衡操作。控制器130可以通过控制存储器设备150执行将存储在映射存储器块中的热数据映射到具有低擦除计数的数据存储器块的耗损均衡操作来防止数据存储器块的擦除计数不增加的问题。因此,所有存储器块的擦除计数可以在存储器设备150内保持均匀。

下面,参考图14至图22描述根据本公开的实施例的包括上述控制器130和存储器设备150的存储器系统110在其中实现的数据处理系统和电子装置。

图14是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的图。图14示意性地示出了可以应用存储器系统的存储器卡系统。

参考图14,存储器卡系统6100可以包括存储器控制器6120、存储器设备6130和连接器6110。

更具体地,存储器控制器6120可以电连接到并且被配置为访问由非易失性存储器实现的存储器设备6130。例如,存储器控制器6120可以被配置为控制存储器设备6130的读取、写入、擦除和后台操作。存储器控制器6120可以被配置为提供存储器设备6130与主机之间的接口,并且使用固件用于控制存储器设备6130。即,存储器控制器6120可以对应于参考图1描述的存储器系统110的控制器130,并且存储器设备6130可以对应于参考图1描述的存储器系统110的存储器设备150。

因此,存储器控制器6120可以包括ram、处理器、主机接口、存储器接口和误差校正组件。

存储器控制器6120可以通过连接器6110与外部设备(例如,图1的主机102)通信。例如,如参考图1所述,存储器控制器6120可以被配置为通过诸如通用串行总线(usb)、多媒体卡(mmc)、嵌入式mmc(emmc)、外围组件互连(pci)、pciexpress(pcie)、高级技术附件(ata)、串行ata、并行ata、小型计算机系统接口(scsi)、增强型小磁盘接口(edsi)、集成驱动电子设备(ide)、火线(firewire)、通用闪存(ufs)、wifi和蓝牙等各种通信协议中的一个或多个与外部设备通信。因此,存储器系统和数据处理系统可以应用于有线/无线电子设备,特别是移动电子设备。

存储器设备6130可以由非易失性存储器实现。例如,存储器设备6130可以由各种非易失性存储器设备中的任何一种实现,诸如可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、与非闪存、nor闪存、相变ram(pram)、电阻ram(reram)、铁电ram(fram)和自旋扭矩传递磁ram(stt-ram)。

存储器控制器6120和存储器设备6130可以集成到单个半导体器件中以形成固态驱动器(ssd)。此外,存储器控制器6120和存储器设备6130可以如此集成以形成存储器卡,诸如pc卡(pcmcia:个人计算机存储器卡国际协会)、紧凑型闪存(cf)卡、智能媒体卡(例如,、sm和smc)、记忆棒、多媒体卡(例如,mmc、rs-mmc、mmcmicro和emmc)、sd卡(例如,sd、minisd、microsd和sdhc)和/或通用闪存(ufs)。

图15是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的图。

参考图15,数据处理系统6200可以包括具有一个或多个非易失性存储器的存储器设备6230和用于控制存储器设备6230的存储器控制器6220。图15所示的数据处理系统6200可以用作诸如存储器卡(cf、sd、micro-sd等)或usb设备的存储介质,如参考图1所述。存储器设备6230可以对应于图1所示的存储器系统110中的存储器设备150,并且存储器控制器6220可以对应于图1所示的存储器系统110中的控制器130。

存储器控制器6220可以响应于主机6210的请求而控制对存储器设备6230的读取、写入或擦除操作。存储器控制器6220可以包括一个或多个cpu6221、诸如ram6222的缓冲存储器、ecc电路6223、主机接口6224和诸如nvm接口6225的存储器接口。

cpu6221可以控制对存储器设备6230的整体操作,例如,读取、写入、文件系统管理和坏页面管理操作。ram6222可以根据cpu6221的控制来操作,并且用作工作存储器、缓冲存储器或高速缓冲存储器。当ram6222用作工作存储器时,由cpu6221处理的数据可以临时存储在ram6222中。当ram6222用作缓冲存储器时,ram6222可以用于缓冲从主机6210传输到存储器设备6230的数据,反之亦然。当ram6222用作高速缓冲存储器时,ram6222可以帮助存储器设备6230高速操作。

ecc电路6223可以生成用于校正从存储器设备6230提供的数据的失败位或误差位的ecc(误差校正码)。ecc电路6223可以对提供给存储器设备6230的数据执行误差校正编码,从而形成具有奇偶校验位的数据。奇偶校验位可以存储在存储器设备6230中。ecc电路6223可以对从存储器设备6230输出的数据执行误差校正解码。ecc电路6223可以使用奇偶校验位来校正误差。例如,如参考图1所述,ecc电路6223可以使用ldpc码、bch码、turbo码、reed-solomon码、卷积码、rsc或者诸如tcm或bcm等编码调制来纠正错误。

存储器控制器6220可以通过主机接口6224与主机6210交换数据。存储器控制器6220可以通过nvm接口6225与存储器设备6230交换数据。主机接口6224可以通过pata总线、sata总线、scsi、usb、pcie或与非接口连接到主机6210。存储器控制器6220可以具有与诸如wifi或长期演进(lte)等移动通信协议的无线通信功能。存储器控制器6220可以连接到外部设备,例如主机6210或另一外部设备,并且然后与外部设备交换数据。具体地,由于存储器控制器6220被配置为根据各种通信协议中的一个或多个与外部设备通信,所以存储器系统和数据处理系统可以应用于有线/无线电子设备,尤其是移动电子设备。

图16是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的图。图16示意性地示出了可以应用存储器系统的ssd。

参考图16,ssd6300可以包括控制器6320和包括多个非易失性存储器的存储器设备6340。控制器6320可以对应于图1的存储器系统110中的控制器130,并且存储器设备6340可以对应于图1的存储器系统中的存储器设备150。

更具体地,控制器6320可以通过多个通道ch1至chi连接到存储器设备6340。控制器6320可以包括一个或多个处理器6321、缓冲存储器6325、ecc电路6322、主机接口6324和存储器接口,例如,非易失性存储器接口6326。

缓冲存储器6325可以临时存储从主机6310提供的数据或者从存储器设备6340中包括的多个闪存nvm提供的数据。此外,缓冲存储器6325可以临时存储多个闪存nvm的元数据,例如,包括映射表的映射数据。缓冲存储器6325可以由各种易失性存储器(诸如dram、sdram、ddrsdram、lpddrsdram和gram)或非易失性存储器(诸如fram、reram、stt-mram和pram)中的任何一种实现。图12示出了缓冲存储器6325在控制器6320中实现。然而,在另一实施例中,缓冲存储器6325可以在控制器6320外部。

ecc电路6322可以在编程操作期间计算要编程到存储器设备6340的数据的ecc值,在读取操作期间基于ecc值,对从存储器设备6340读取的数据执行误差校正操作,并且在失败数据恢复操作期间对从存储器设备6340恢复的数据执行误差校正操作。

主机接口6324可以提供与外部设备(例如,主机6310)的接口功能,并且非易失性存储器接口6326可以提供与通过多个通道连接的存储器设备6340的接口功能。

此外,图1的存储器系统110可以被提供给的多个ssd6300实现数据处理系统,例如,raid(独立磁盘冗余阵列)系统。raid系统可以包括多个ssd6300和用于控制多个ssd6300的raid控制器。当raid控制器响应于从主机6310提供的写入命令而执行编程操作时,raid控制器可以根据多个raid级别(即,从ssd6300中的主机6310提供的写入命令的raid级别信息)选择一个或多个存储器系统或ssd6300,并且向所选择的ssd6300输出与写入命令相对应的数据。此外,当raid控制器响应于从主机6310提供的读取命令而执行读取命令时,raid控制器可以根据多个raid级别(即,从ssd6300中的主机6310提供的读取命令的raid级别信息)选择一个或多个存储器系统或ssd6300,并且向主机6310提供从所选择的ssd6300读取的数据。

图17是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的图。图17示意性地示出了可以应用存储器系统的嵌入式多媒体卡(emmc)。

参考图17,emmc6400可以包括控制器6430和由一个或多个与非闪存实现的存储器设备6440。控制器6430可以对应于图1的存储器系统110中的控制器130。存储器设备6440可以对应于图1的存储器系统110中的存储器设备150。

更具体地,控制器6430可以通过多个通道连接到存储器设备6440。控制器6430可以包括一个或多个核6432、主机接口6431和存储器接口,例如与非接口6433。

核6432可以控制emmc6400的整体操作,主机接口6431可以提供控制器6430与主机6410之间的接口功能,并且与非接口6433可以提供存储器设备6440与控制器6430之间的接口功能。例如,主机接口6431可以用作并行接口,例如,如参考图1所述的mmc接口。此外,主机接口6431可以用作串行接口,例如,uhs((超高速)-i/uhs-ii)接口。

图18至图21是示意性地示出根据实施例的包括存储器系统的数据处理系统的其他示例的图。图18至图21示意性地示出了可以应用存储器系统的ufs(通用闪存)系统。

参考图18至图21,ufs系统6500、6600、6700、6800可以分别包括主机6510、6610、6710、6810、ufs设备6520、6620、6720、6820和ufs卡6530、6630、6730、6830。主机6510、6610、6710、6810可以用作有线/无线电子设备或特别是移动电子设备的应用处理器,ufs设备6520、6620、6720、6820可以用作嵌入式ufs设备,并且ufs卡6530、6630、6730、6830可以用作外部嵌入式ufs设备或可移动ufs卡。

各个ufs系统6500、6600、6700、6800中的主机6510、6610、6710、6810、ufs设备6520、6620、6720、6820和ufs卡6530、6630、6730、6830可以通过ufs协议与外部通信设备,例如,有线/无线电子设备或特别是移动电子设备,并且ufs设备6520、6620、6720、6820和ufs卡6530、6630、6730、6830可以由图1所示的存储器系统110实现。例如,在ufs系统6500、6600、6700、6800中,ufs设备6520、6620、6720、6820可以以参考图15至图17描述的数据处理系统6200、ssd6300或emmc6400的形式实现,并且ufs卡6530、6630、6730、6830可以以参考图14描述的存储器卡系统6100的形式实现。

此外,在ufs系统6500、6600、6700、6800中,主机6510、6610、6710、6810、ufs设备6520、6620、6720、6820和ufs卡6530、6630、6730、6830可以通过ufs接口(例如,mipi(移动行业处理器接口)中的mipim-phy和mipiunipro(统一协议))彼此通信。此外,ufs设备6520、6620、6720、6820和ufs卡6530、6630、6730、6830可以通过除ufs协议之外的各种协议彼此通信,例如,ufd、mmc、sd、mini-sd和micro-sd。

在图18所示的ufs系统6500中,主机6510、ufs设备6520和ufs卡6530中的每个可以包括unipro。主机6510可以执行切换操作以与ufs设备6520和ufs卡6530通信。具体地,主机6510可以通过链路层切换(例如,在unipro处的l3切换)与ufs设备6520或ufs卡6530通信。ufs设备6520和ufs卡6530可以通过主机6510的unipro处的链路层切换来彼此通信。在所示实施例中,一个ufs设备6520和一个ufs卡6530连接到主机6510。然而,在另一实施例中,多个ufs设备和ufs卡可以并联或以星形形式连接到主机6410。星形形式是一种其中单个设备与多个设备耦合以进行集中操作的布置。多个ufs卡可以并联或以星形形式连接到ufs设备6520,或者串联或以链形式连接到ufs设备6520。

在图19所示的ufs系统6600中,主机6610、ufs设备6620和ufs卡6630中的每个可以包括unipro。主机6610可以通过执行切换操作的切换模块6640与ufs设备6620或ufs卡6630通信,例如通过切换模块6640,切换模块6640在unipro处执行链路层切换,例如l3切换。ufs设备6620和ufs卡6630可以通过unipro处的切换模块6640的链路层切换来彼此通信。在所示实施例中,一个ufs设备6620和一个ufs卡6630连接到切换模块6640。然而,在另一实施例中,多个ufs设备和ufs卡可以并联或以星形形式连接到切换模块6640。多个ufs卡可以串联或以链形式连接到ufs设备6620。

在图20所示的ufs系统6700中,主机6710、ufs设备6720和ufs卡6730中的每个可以包括unipro。主机6710可以通过执行切换操作的切换模块6740与ufs设备6720或ufs卡6730通信,例如通过切换模块6740,切换模块6740在unipro处执行链路层切换,例如l3切换。ufs设备6720和ufs卡6730可以通过unipro处的切换模块6740的链路层切换来彼此通信。切换模块6740可以作为一个模块与ufs设备6720集成在ufs设备6720内部或外部。在所示实施例中,一个ufs设备6720和一个ufs卡6730连接到切换模块6740。然而,在另一实施例中。每个包括切换模块6740和ufs设备6720的多个模块可以并联或以星形形式连接到主机6710。在另一示例中,多个模块可以串联或以链形式彼此连接。此外,多个ufs卡可以并联或以星形形式连接到ufs设备6720。

在图21所示的ufs系统6800中,主机6810、ufs设备6820和ufs卡6830中的每个可以包括m-phy和unipro。ufs设备6820可以执行切换操作以与主机6810和ufs卡6830通信。具体地,ufs设备6820可以通过用于与主机6810和m-phy通信的m-phy和unipro模块与用于与ufs卡6830通信的m-phy和unipro模块之间的切换操作来与主机6810或ufs卡6830通信,例如,通过目标id(标识符)切换操作。主机6810和ufs卡6830可以通过ufs设备6820的m-phy和unipro模块之间的目标id切换来彼此通信。在所示实施例中,一个ufs设备6820连接到主机6810并且一个ufs卡6830连接到ufs设备6820。然而,在另一实施例中,多个ufs设备可以并联或以星形形式连接到主机6810,或者串联或以链形式连接到主机6810。多个ufs卡可以并联或以星形形式连接到ufs设备6820,或者串联或以链形式连接到ufs设备6820。

图22是示意性地示出根据本发明的实施例的包括存储器系统的数据处理系统的另一示例的图。图22是示意性地示出可以应用存储器系统的用户系统的图。

参考图22,用户系统6900可以包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950和用户接口6910。

更具体地,应用处理器6930可以驱动用户系统6900中的组件,例如os,并且包括控制用户系统6900中包括的组件的控制器、接口和图形引擎。应用处理器6930可以作为片上系统(soc)提供。

存储器模块6920可以用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块6920可以包括易失性ram(诸如dram、sdram、ddrsdram、ddr2sdram、ddr3sdram、lpddrsdarm、lpddr3sdram或lpddr3sdram)或非易失性ram(诸如pram、reram、mram或fram)。例如,可以基于pop(封装上封装)来封装和安装应用处理器6930和存储器模块6920。

网络模块6940可以与外部设备通信。例如,网络模块6940不仅可以支持有线通信,还可以支持各种无线通信协议,诸如码分多址(cdma)、全球移动通信系统(gsm)、宽带cdma(wcdma)、cdma-2000、时分多址(tdma)、长期演进(lte)、全球微波接入互操作性(wimax)、无线局域网(wlan)、超宽带(uwb)、蓝牙、无线显示(wi-di),从而与有线/无线电子设备通信,尤其是移动电子设备。因此,根据本发明的实施例的存储器系统和数据处理系统可以应用于有线/无线电子设备。网络模块6940可以被包括在应用处理器6930中。

存储模块6950可以存储数据,例如,从应用处理器6930接收的数据,并且然后可以将所存储的数据传输到应用处理器6930。存储模块6950可以由非易失性半导体存储器设备实现,诸如相变ram(pram)、磁ram(mram)、电阻ram(reram)、与非闪存、或非闪存和3d与非闪存,并且作为用户系统6900的可移动存储介质来提供,诸如存储器卡或外部驱动器。存储模块6950可以对应于参考图1描述的存储器系统110。此外,存储模块6950可以实现为ssd、emmc和ufs,如上面参考图16至21所述。

用户界面6910可以包括用于向应用处理器6930输入数据或命令或者向外部设备输出数据的接口。例如,用户界面6910可以包括用户输入接口(诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件)和用户输出接口(诸如液晶显示器(lcd)、有机发光二极管(oled)显示设备、有源矩阵oled(amoled)显示设备、led、扬声器和电机)。

此外,当图1的存储器系统110应用于用户系统6900的移动电子设备时,应用处理器6930可以控制移动电子设备的整体操作,并且网络模块6940可以用作用于控制与外部设备的有线/无线通信的通信模块。用户界面6910可以在移动电子设备的显示/触摸模块上显示由处理器6930处理的数据,或者支持从触摸面板接收数据的功能。

根据本发明的实施例,存储器系统可以有效地对映射存储器块和数据存储器块执行耗损均衡操作,从而改善存储器设备的寿命。

虽然已经关于特定实施例说明和描述了本发明,但是根据本公开,本领域技术人员将清楚,在不脱离如所附权利要求中限定的本公开的精神和范围的情况下,可以进行各种改变和修改。

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