存储器装置中的动态存储器高速缓存大小调整的制作方法

文档序号:6764314阅读:178来源:国知局
存储器装置中的动态存储器高速缓存大小调整的制作方法
【专利摘要】本发明揭示用于动态存储器高速缓存大小调整、启用动态存储器高速缓存大小调整的方法、存储器装置及存储器系统。用于动态存储器高速缓存大小调整的一种此方法确定存储器阵列中的可用存储器空间,且响应于所述可用存储器空间而调整所述存储器阵列中的存储器高速缓存的大小。
【专利说明】存储器装置中的动态存储器高速缓存大小调整
【技术领域】
[0001]本实施例大体上涉及存储器,且特定实施例涉及MLC存储器中的动态SLC高速缓存。
【背景技术】
[0002]快闪存储器装置已发展成用于广泛的电子应用的非易失性存储器的普遍来源。快 闪存储器装置通常使用允许高存储器密度、高可靠性及低功率消耗的单晶体管存储器单 元。快闪存储器的常见使用包含个人计算机、快闪驱动器、数码相机及蜂窝式电话。例如基 本输入/输出系统(BIOS)的程序代码及系统数据通常存储在用于个人计算机系统中的快 闪存储器装置中。
[0003]典型的快闪存储器装置为其中通常将存储器单元的阵列组织为可基于逐块擦除 (且基于逐页再编程)的存储器块的一类型存储器。通过擦除电荷存储结构(例如,浮动 栅极或电荷陷阱)或对电荷存储结构(例如,浮动栅极或电荷陷阱)进行编程或其它物理 现象(例如,相变或极化)改变存储器单元中的每一者的阈值电压来确定编程到每一单元 中的数据值。通过所述电荷存储结构中的电荷的存在或不存在来确定此类型的单元中的数 据。
[0004]编程操作通常包括一系列施加到经编程的存储器单元的控制栅极的递增增加的 编程脉冲以增加所述特定存储器单元的阈值电压。每一存储器单元可编程为单层级单元 (SLC)存储器或多层级单元(MLC)存储器,其中单元的阈值电压(Vt)指示编程到所述单元 中的数据值。例如,在SLC存储器中,2.5V的Vt可指示经编程单元,而-0.5V的Vt可指示 经擦除单元。MLC存储器使用各自指示不同状态的多个Vt范围。多层级单元可通过指派位 模式给特定Vt范围来利用传统快闪单元的模拟本质。此技术允许取决于指派给所述单元 的Vt范围的数量来存储表示每一单元的两个或两个以上位的数据值。
[0005]在对存储器单元的块的编程期间,通常使用存储器单元的固定高速缓存来暂时存 储待编程到所述存储器单元的块中的数据。例如,在MLC存储器装置中,可使用固定大小 SLC高速缓存来存储用于编程到存储器单元的MLC块中的数据。此可改善存储器可靠性。在 高速缓存变得接近满之前还改善存储器性能,此时必须将所述高速缓存的部分移动到MLC 块以在所述高速缓存中产生更多空间,且所述高速缓存的性能优点将被减弱。性能改善是 依据高速缓存的大小但具有减小用户容量的缺陷,这是因为存储器的固定部分被用作SLC 高速缓存且不能用来以与MLC相同的效率存储用户数据。
[0006]出于上文陈述的原因且出于所属领域的技术人员在阅读并理解本说明书后将明 白的其它原因,在此项技术中需要用于在编程期间暂时存储数据的更有效方式。

【发明内容】
【专利附图】

【附图说明】[0007]图1展示并入存储器高速缓存的存储器装置中的存储器阵列的一个实施例的框 图。
[0008]图2为展示根据图1的框图的存储器阵列的一部分的一个实施例的示意图。
[0009]图3展示用于动态高速缓存大小调整的方法的一个实施例的流程图。
[0010]图4展示用于确定何时调整高速缓存大小的一个函数的一个实施例的曲线图。
[0011]图5展示用于确定何时调整高速缓存大小的函数的另一实施例的曲线图。
[0012]图6展示存储器系统的一个实施例的框图。
【具体实施方式】
[0013]在下列详细描述中,参考形成详细描述的一部分且其中通过说明展示特定实施例 的附图。在图式中,贯穿若干视图,相同的数字描述大致上类似的组件。可利用其它实施例, 且在不脱离本方面的范围的情况下可做出结构、逻辑及电改变。因此,下列详细描述不应以 限制性意义来理解。
[0014]图1说明并入动态存储器高速缓存102的存储器装置的存储器阵列104的一个实 施例的框图。存储器阵列104经分区且包含:第一分区;下文称为主MLC存储器,其中所述 分区中的单元被以MLC模式编程;及第二分区102,下文称为动态SLC存储器高速缓存,其 中所述分区中的单元为被SLC模式编程。在一个实施例中,分配给存储器阵列100中的主 存储器的块用作MLC,且分配给动态存储器高速缓存102的块用作SLC。在动态存储器高速 缓存中,块的分配动态地改变且不固定,块可保持为MLC或SLC或在用作MLC或用作SLC之 间切换。在不损失一般性的情况下,用于高速缓存102的块被称为SLC高速缓存块,且用于 存储用户数据的块被称为MLC主存储器块。
[0015]典型的现有技术存储器高速缓存的大小是固定的,且总是被启用以使得存储器阵 列的一部分总是专用于暂时数据高速缓存,从而减小可用于存储用户数据的存储器量。取 决于可用的自由空间,动态地调整图1的动态数据高速缓存102的大小,且未必总是被启 用。因此,可调整动态存储器高速缓存102使得其不占用比完成高速缓存功能所必需的存 储器更多的存储器,其中所述高速缓存大小经动态调整。本发明的另一特征为:将存储器分 区为MLC及SLC可按阵列或块层级。本发明的又另一特征为:分区中的阵列或块不需要连 续。在一些系统中,总是首先将数据写入到高速缓存。在其它系统中,仅将一些类型的数据 (例如,小于一页大小的数据)写入到高速缓存。在具有固定或动态存储器高速缓存的系统 中,一些事件将触发将有效数据从高速缓存移动到主存储器块(在一些系统中,可移动高 速缓存中的有效及无效数据两者)。此类事件包含高速缓存中自由块的数目下降到阈值以 下。当将高速缓存中的块移动到主存储器时,擦除所述块且回收所述块。类似地,可通过将 新的数据移动到主存储器中的另一块且接着擦除旧的块来回收含有旧及新数据的主存储 器中的块。
[0016]动态SLC存储器高速缓存102使用存储器阵列104的可变数目的存储器块来暂时 存储待编程到主存储器阵列100中的数据。例如,动态SLC存储器高速缓存102可存储全 部数据页(下页及上页),直到数据的上页被成功地编程在主MLC存储器100中。如果在上 页编程期间发生电力故障,那么此可减小对主MLC存储器阵列100的先前编程的下页的破 坏。在一个实施例中,将数据存储在SLC中的动态存储器高速缓存102块中,且当编程MLC块中的一页所需要的全部页可用时(在动态存储器高速缓存102中),则将所述数据移动 到主存储器阵列100中的块,使得高速缓存102可存储所需的全部数据页,直到MLC主存储 器阵列100的一页被编程为止。例如,SLC动态存储器高速缓存102可存储下页数据,直到 MLC主存储器阵列100的上页被成功编程为止。如果在上页编程期间发生电力故障,那么此 可减小对MLC主存储器阵列100的先前编程的下页的破坏。
[0017]图2说明NAND架构存储器阵列201的一部分的一个实施例的示意图,如图1中说 明,其包括非易失性存储器单元的串联串。本实施例的存储器阵列不限于所说明的NAND架 构。替代实施例还可使用NOR或其它架构。
[0018]存储器阵列201包括布置在若干列(例如串联串204、205)中的非易失性存储器 单元(例如,浮动栅极)的阵列。在每一串联串204、205中所述单元中的每一者的漏极耦 合到源极。横跨多个串联串204、205的存取线(例如,字线)WL0到WL31耦合到一行中的 每一存储器单元的控制栅极以偏置所述行中的所述存储器单元的控制栅极。例如偶数/奇 数位线BL_E、BL_0的数据线耦合到所述串联串且最终耦合到通过感测所选择的位线的电 流或电压而检测每一单元的状态的感测电路。
[0019]存储器单元的每一串联串204、205通过源极选择栅极216、217 (例如,晶体管)耦 合到源极线206,且通过漏极选择栅极212、213(例如,晶体管)耦合到个别位线BL_E、BL_ O。源极选择栅极216、217受控于耦合到其控制栅极的源极选择栅极控制线SG(S)218。所 述漏极选择栅极212、213受控于漏极选择栅极控制线SG(D)214。
[0020]图3说明用于动态调整图1中说明的动态存储器高速缓存的大小的方法的一个实 施例的流程图。因为一些文件系统可能未经辨识,所以所述方法确定在存储器装置上实施 (例如,安装、执行)的文件系统是否为被支持的文件系统300。如此项技术中众所周知的, 文件系统(例如,文件分配表(FAT)、新技术文件系统(NTFS))为用于存储并组织计算机文 件及其数据的方法。其将这些文件组织成通过计算机的操作系统进行存储、组织、操纵及检 索的数据库。
[0021]如果所述文件系统并不支持动态高速缓存大小调整300,那么停用所述动态存储 器高速缓存调整310。如果存储器装置支持允许删除若干范围的逻辑块地址以实施存储器 高速缓存大小的动态改变的任何命令协议,那么仍可实施动态存储器高速缓存大小调整。 此项技术中已知的一种此协议通常一般称为TRM协议。因此确定是否已接收到TR頂命令 302。重复此步骤302,直到接收到所述TR頂命令为止。一旦接收到所述TR頂命令302,则 启用所述动态存储器高速缓存304。
[0022]因为响应于主存储器阵列中的可用存储器空间来调整动态存储器高速缓存的大 小,所以确定主存储器阵列中的可用存储器空间306。可用存储器空间的量可不断改变。 在一个实施例中,可在每一写入或擦除操作之后确定主存储器阵列中的可用存储器空间的 量。在其它实施例中,可定期或按随机时间确定可用存储器空间的量。可用存储器空间可包 含不针对立即使用的经擦除存储器以及尚未被擦除但是存储于存储器中的数据是旧的且 不再有效的存储器两者。在又另一实施例中,响应于所接收的TRIM命令(如果支持TRIM) 或在已知的文件系统的情况中当解除分配或写入群集时调整可用存储器的量。
[0023]在又另一实施例中,响应于所述TRM命令(如果支持TRM)或者在已知的文件系 统的情况中当解除分配或写入群集时调整可用存储器的量。在具有固定或动态存储器高速缓存的系统中,一些事件将触发将有效数据(或任选地,有效及无效数据)从动态SLC高速 缓存移动到主MLC存储器块。这些事件包含高速缓存中的自由块的数目下降到阈值以下。 当将动态SLC高速缓存中的块移动到主MLC存储器时,擦除所述块且将所述块回收并添加 到自由块的集区。类似地,可通过仅将有效数据移动到主MLC存储器中的另一块且接着擦 除旧块来回收主MLC存储器中含有旧及新数据的块。
[0024]接着响应于可用存储器空间来调整动态存储器高速缓存的大小308。动态存储器 高速缓存的大小可为可用存储器空间的百分比、全部可用存储器空间或所述可用存储器空 间的某个数目的块。在一个实施例中,还可动态地改变所使用的可用存储器空间的百分比。 例如,一次仅可分配50%的可用存储器空间给动态存储器高速缓存,且在稍晚时间,可分配 90%的可用存储器空间给动态存储器高速缓存。可按需执行对可用存储器空间的百分比的 此动态分配。
[0025]图4说明可用以确定分配给动态存储器高速缓存的可用存储器空间的量的函数 的一个实施例的曲线图。此函数为线性斜坡函数,其中分配固定百分比(例如,50%)的可 用存储器空间给动态存储器高速缓存。
[0026]此曲线图包含沿X轴的可用存储器空间及沿I轴的动态存储器高速缓存的大小。 在此实施例及下列实施例中,X轴及I轴两者上的存储器大小值仅为出于说明目的,这是因 为本实施例并不限于任何特定值。所述线的斜率确定分配给动态存储器高速缓存的可用存 储器空间的百分比。所说明的实例展示50%实施例。
[0027]图5说明可用以确定分配给动态存储器高速缓存的可用存储器空间的量的函数 的另一实施例的曲线图。此函数为可用以减小动态存储器闻速缓存大小调整的频率的阶梯 函数。
[0028]改变动态存储器高速缓存大小使用特定时间量来执行各种清除任务。例如,当已 用作动态存储器高速缓存的部分的存储器块将被返回到主存储器阵列时,需要移动所述存 储器块中的数据且擦除所述存储器块。在一个实施例中,动态存储器高速缓存的SLC存储 器块被重新分配为MLC存储器块。此外,还应执行存储器地址指针及其它存储器内务管理 任务,以重新分配动态存储器高速缓存块。因此,通常期望减小动态存储器高速缓存大小改 变的频率。
[0029]阶梯函数为一种减小动态存储器高速缓存大小改变的频率的方式。此可参考图5 的曲线图看到。不像其中响应于所述线的斜率执行大小改变的图4的实施例,阶梯函数中 不发生高速缓存大小的改变,直到本台阶达到可变存储器空间的另一特定阈值为止。
[0030]例如,IMB的初始动态存储器高速缓存大小不改变,直到可变存储器空间达到2MB 阈值为止。接着动态存储器高速缓存大小被增加到2MB。所说明的可变存储器空间及动态 存储器高速缓存大小是仅出于说明的目的,这是因为不同的可变存储器空间的量可触发重 新分配不同的存储器量给动态存储器高速缓存。类似地,图5中说明的阶梯函数的替代实 施例可保持在相同的动态存储器高速缓存大小更久及/或每次达到一阈值时分配更大的 存储器量给动态存储器高速缓存。
[0031]在用于确定分配给动态存储器高速缓存的可用存储器空间的量的函数的又另一 实施例中,高速缓存大小可为如果未使用的可用存储器量在特定时间周期内增加或降低的 函数。例如,如果可用存储器空间大小在特定时间周期内增加(而非如图4中说明的固定百分比),那么与如果可用存储器空间大小在所述特定时间周期内降低相比,所述函数可分 配更大百分比的存储器给动态存储器高速缓存大小。在另一实施例中,如果可用存储器空 间大小在特定时间周期内降低,那么所述函数可分配更小百分比的存储器给动态存储器高 速缓存大小。
[0032]在又另一实施例中,为最小化额外开销并动态分配大部分自由空间给高速缓存, 自由(经擦除)块的共同集区用于动态SLC高速缓存及主MLC存储器两者。当需要自由块 (即,自由块的数目下降到第一“开始”阈值以下)时,回收动态SLC高速缓存块并将其添加 到自由集区,直到自由块的数目等于或大于第二“停止”阈值。可动态调整所述开始阈值及 所述终止阈值。例如在其中希望使回收动态SLC高速缓存块最少化的执行来自主机的命令 的前景期间,所述终止阈值将不高,但是在不存在主机命令的背景下,所述终止阈值将被设 定为更闻。
[0033]在一个实施例中,分配为动态存储器高速缓存块的存储器块为连续存储器块。在 另一实施例中,动态存储器高速缓存块并不连续。在此实施例中,可使用位图来指示并追踪 哪些存储器块用作动态存储器高速缓存块。在另一实施例中,指示SLC或MLC的位可与表 格中用于逻辑到物理映射的其它信息组合。在另一实施例中,可针对SLC及MLC块两者维 持列表。此列表通常为链接列表以便于实施。在另一实施例中,指不SLC或MLC的位可与 表格中用于逻辑到物理映射的其它信息组合。在另一实施例中,额外地针对SLC及MLC块 两者维持列表。此列表通常为链接列表以便于实施。
[0034]图6说明存储器装置600的功能框图。存储器装置600耦合到外部控制器610。 控制器610可为微处理器或一些其它类型的控制器。存储器装置600及所述控制器610形 成存储器系统620的部分。控制器610可耦合到主机且控制器610可响应于来自所述主机 的命令。
[0035]存储器装置600包含存储器单元(例如,非易失性存储器单元)的阵列630。存储 器阵列630布置在字线行及位线列的排中。在一个实施例中,存储器阵列630的列包括存 储器单兀的串联串。
[0036]提供地址缓冲器电路640以锁存通过I / 0电路660提供的地址信号。地址信号 通过行解码器644及列解码器646接收并解码以存取存储器阵列630。
[0037]存储器装置600通过使用读出放大器电路650感测所述存储器阵列列中的电压或 电流改变来读取存储器阵列630中的数据。在一个实施例中,读出放大器电路650经耦合 以读取并锁存来自存储器阵列630的一行数据。包含数据输入及输出缓冲器电路660以经 由多个数据连接662与控制器610进行双向数据通信以及地址通信。提供写入电路655以 将数据写入到所述存储器阵列。
[0038]存储器控制电路670解码在控制连接672上从控制器610提供的信号。这些信号 用以控制对存储器阵列630的操作,包含数据读取、数据写入(程序)及擦除操作。存储器 控制电路670可为状态机、序列器或产生存储器控制信号的一些其它类型的控制器。在一 个实施例中,存储器控制电路670及/或外部控制器610经配置以控制动态存储器高速缓 存大小调整的执行。
[0039]已简化图6中说明的存储器装置以促进对存储器的特征的基本理解。所属领域的 技术人员知道对快闪存储器的内部电路及功能的更详细理解。[0040]结论
[0041]总而言之,用于动态存储器高速缓存大小调整的方法的一个或一个以上实施例可 通过动态调整分配给存储器高速缓存(例如,用作SLC)的存储器量而提供用于存储器装置 中的用户数据的增加的容量、性能(读取或写入)及/或可靠性。
[0042]虽然本文已说明并描述特定实施例,但是所属领域的一般技术人员将明白,打算 实现相同目的的任何布置可替代所示的特定实施例。所属领域的一般技术人员将明白本发 明的许多调适。因此,本申请案既定涵盖本发明的任何调适或变动。
【权利要求】
1.一种用于动态存储器高速缓存大小调整的方法,所述方法包括:确定存储器阵列中的可用存储器空间;及响应于所述可用存储器空间而调整所述存储器阵列中的存储器高速缓存的大小。
2.根据权利要求1所述的方法,且其进一步包含:确定是否支持包含所述存储器阵列的存储器装置的文件系统;及如果支持特定文件系统,那么启用动态存储器高速缓存大小调整。
3.根据权利要求1所述的方法,其中所述可用存储器空间为不作为使用目标的经擦除存储器或存储非有效数据的未擦除存储器中的一者。
4.根据权利要求1所述的方法,其中所述存储器高速缓存的所述大小为所述可用存储器空间的百分比。
5.根据权利要求4所述的方法,且其进一步包含动态调整所述百分比。
6.根据权利要求4所述的方法,其中所述可用存储器空间的所述百分比为所述可用存储器空间的可变百分比。
7.根据权利要求1所述的方法,其中调整大小包括分配所述存储器阵列的第一数目的块以用作所述存储器高速缓存,且分配所述存储器阵列的第二数目的块以用作主存储器。
8.根据权利要求7所述的方法,其中分配第一数目的块包含:分配先前分配用作所述主存储器的部分的块来用作所述存储器高速缓存的部分。
9.根据权利要求7所述的方法,其中将分配用作所述主存储器的部分的块中的存储器单元编程为MLC单元,且其中将分配用作所述存储器高速缓存的部分的`块中的存储器单元编程为SLC单兀。
10.根据权利要求7所述的方法,其中分配先前分配用作所述主存储器的部分的块用作所述存储器高速缓存的部分包括:在将所述块的存储器单元编程为MLC单元与将所述块的所述存储器单元编程为SLC单元之间切换。
11.根据权利要求2所述的方法,其中确定是否支持所述存储器装置的文件系统包括: 确定所述存储器装置的所述文件系统是否支持动态高速缓存大小调整及启用动态存储器高速缓存大小调整。
12.根据权利要求2所述的方法,其中确定是否支持所述存储器装置的文件系统包括: 确定是否接收到支持允许删除一定范围的逻辑块地址的协议的命令。
13.根据权利要求2所述的方法,其中如果所述特定文件系统不支持动态存储器高速缓存大小调整或未接收到支持删除所述存储器装置的一定范围的逻辑块地址的命令,那么停用动态存储器高速缓存大小调整。
14.一种存储器装置,其包括:存储器单元阵列,其包括存储器高速缓存 '及存储器控制电路,其耦合到所述存储器单元阵列且经配置以确定所述存储器单元阵列中的可用存储器,并响应于所述可用存储器而调整所述存储器高速缓存的大小。
15.根据权利要求14所述的存储器装置,其中调整所述存储器高速缓存的所述大小包括:调整其存储器单元被编程为SLC单元的所述阵列的若干块。
16.根据权利要求14所述的存储器装置,其中所述存储器控制电路为进一步经配置以响应于所使用的文件系统而启用或停用动态存储器高速缓存大小调整。
17.根据权利要求14所述的存储器装置,其中所述存储器控制电路经配置以响应于可用存储器达到多个可用存储器阈值中的一者而增加所述存储器高速缓存的所述大小。
18.根据权利要求17所述的存储器装置,其中所述多个可用存储器阈值形成可用存储器的阶梯函数。
19.根据权利要求14所述的存储器装置,其中所述存储器控制电路经配置以依据在特定时间周期内所述可用存储器是增加还是减少来动态调整所述存储 器高速缓存的所述大小。
【文档编号】G11C16/06GK103562883SQ201280025689
【公开日】2014年2月5日 申请日期:2012年5月8日 优先权日:2011年5月31日
【发明者】西亚麦克·内马齐, 法尔希德·大不里士, 贝尔哈努·伊曼, 鲁吉尔·沙阿, 威廉·E·本森, 迈克尔·乔治 申请人:美光科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1