CN103562883B - 存储器装置中的动态存储器高速缓存大小调整 - Google Patents

存储器装置中的动态存储器高速缓存大小调整 Download PDF

Info

Publication number
CN103562883B
CN103562883B CN201280025689.2A CN201280025689A CN103562883B CN 103562883 B CN103562883 B CN 103562883B CN 201280025689 A CN201280025689 A CN 201280025689A CN 103562883 B CN103562883 B CN 103562883B
Authority
CN
China
Prior art keywords
memory
cache
size
dynamic
piece
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
Application number
CN201280025689.2A
Other languages
English (en)
Other versions
CN103562883A (zh
Inventor
西亚麦克·内马齐
法尔希德·大不里士
贝尔哈努·伊曼
鲁吉尔·沙阿
威廉·E·本森
迈克尔·乔治
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN103562883A publication Critical patent/CN103562883A/zh
Application granted granted Critical
Publication of CN103562883B publication Critical patent/CN103562883B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/224Disk storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • G06F2212/6046Using a specific cache allocation policy other than replacement policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

本发明揭示用于动态存储器高速缓存大小调整、启用动态存储器高速缓存大小调整的方法、存储器装置及存储器***。用于动态存储器高速缓存大小调整的一种此方法确定存储器阵列中的可用存储器空间,且响应于所述可用存储器空间而调整所述存储器阵列中的存储器高速缓存的大小。

Description

存储器装置中的动态存储器高速缓存大小调整
技术领域
本实施例大体上涉及存储器,且特定实施例涉及MLC存储器中的动态SLC高速缓存。
背景技术
快闪存储器装置已发展成用于广泛的电子应用的非易失性存储器的普遍来源。快闪存储器装置通常使用允许高存储器密度、高可靠性及低功率消耗的单晶体管存储器单元。快闪存储器的常见使用包含个人计算机、快闪驱动器、数码相机及蜂窝式电话。例如基本输入/输出***(BIOS)的程序代码及***数据通常存储在用于个人计算机***中的快闪存储器装置中。
典型的快闪存储器装置为其中通常将存储器单元的阵列组织为可基于逐块擦除(且基于逐页再编程)的存储器块的一类型存储器。通过擦除电荷存储结构(例如,浮动栅极或电荷陷阱)或对电荷存储结构(例如,浮动栅极或电荷陷阱)进行编程或其它物理现象(例如,相变或极化)改变存储器单元中的每一者的阈值电压来确定编程到每一单元中的数据值。通过所述电荷存储结构中的电荷的存在或不存在来确定此类型的单元中的数据。
编程操作通常包括一系列施加到经编程的存储器单元的控制栅极的递增增加的编程脉冲以增加所述特定存储器单元的阈值电压。每一存储器单元可编程为单层级单元(SLC)存储器或多层级单元(MLC)存储器,其中单元的阈值电压(Vt)指示编程到所述单元中的数据值。例如,在SLC存储器中,2.5V的Vt可指示经编程单元,而-0.5V的Vt可指示经擦除单元。MLC存储器使用各自指示不同状态的多个Vt范围。多层级单元可通过指派位模式给特定Vt范围来利用传统快闪单元的模拟本质。此技术允许取决于指派给所述单元的Vt范围的数量来存储表示每一单元的两个或两个以上位的数据值。
在对存储器单元的块的编程期间,通常使用存储器单元的固定高速缓存来暂时存储待编程到所述存储器单元的块中的数据。例如,在MLC存储器装置中,可使用固定大小SLC高速缓存来存储用于编程到存储器单元的MLC块中的数据。此可改善存储器可靠性。在高速缓存变得接近满之前还改善存储器性能,此时必须将所述高速缓存的部分移动到MLC块以在所述高速缓存中产生更多空间,且所述高速缓存的性能优点将被减弱。性能改善是依据高速缓存的大小但具有减小用户容量的缺陷,这是因为存储器的固定部分被用作SLC高速缓存且不能用来以与MLC相同的效率存储用户数据。
出于上文陈述的原因且出于所属领域的技术人员在阅读并理解本说明书后将明白的其它原因,在此项技术中需要用于在编程期间暂时存储数据的更有效方式。
发明内容
一方面,本发明提供了一种用于动态存储器高速缓存大小调整的方法,所述方法包括:响应于确定存储器装置上的文件***不支持动态高速缓存大小调整,停用所述存储器装置的存储器阵列中的存储器高速缓存的物理大小的动态调整;响应于接收到由所述存储器装置支持的且允许所述存储器高速缓存的物理大小的动态调整的命令,启用所停用的所述存储器高速缓存的所述物理大小的所述动态调整;确定所述存储器装置的所述存储器阵列中的可用存储器空间的大小;及响应于所确定的所述可用存储器空间的大小而调整所述存储器阵列中的所述存储器高速缓存的所述物理大小。
另一方面,本发明提供了一种存储器装置,其包括:存储器单元阵列,其包括存储器高速缓存;存储器控制电路,其耦合到所述存储器单元阵列;及文件***;其中所述控制电路经配置以响应于确定所述文件***不支持动态高速缓存大小调整,而停用所述存储器高速缓存的物理大小的动态调整;其中所述控制电路经配置以响应于接收到的由所述存储器装置支持的且允许所述存储器高速缓存的物理大小的动态调整的命令,而启用所停用的所述存储器高速缓存的所述物理大小的所述动态调整;其中所述控制电路经配置以确定所述存储器单元阵列中的可用存储器的大小,并响应于所确定的所述可用存储器的大小而调整所述存储器高速缓存的所述物理大小。
附图说明
图1展示并入存储器高速缓存的存储器装置中的存储器阵列的一个实施例的框图。
图2为展示根据图1的框图的存储器阵列的一部分的一个实施例的示意图。
图3展示用于动态高速缓存大小调整的方法的一个实施例的流程图。
图4展示用于确定何时调整高速缓存大小的一个函数的一个实施例的曲线图。
图5展示用于确定何时调整高速缓存大小的函数的另一实施例的曲线图。
图6展示存储器***的一个实施例的框图。
具体实施方式
在下列详细描述中,参考形成详细描述的一部分且其中通过说明展示特定实施例的附图。在图式中,贯穿若干视图,相同的数字描述大致上类似的组件。可利用其它实施例,且在不脱离本方面的范围的情况下可做出结构、逻辑及电改变。因此,下列详细描述不应以限制性意义来理解。
图1说明并入动态存储器高速缓存102的存储器装置的存储器阵列100的一个实施例的框图。存储器阵列100经分区且包含:第一分区;下文称为主MLC存储器,其中所述分区中的单元被以MLC模式编程;及第二分区102,下文称为动态SLC存储器高速缓存,其中所述分区中的单元为被SLC模式编程。在一个实施例中,分配给存储器阵列100中的主存储器的块用作MLC,且分配给动态存储器高速缓存102的块用作SLC。在动态存储器高速缓存中,块的分配动态地改变且不固定,块可保持为MLC或SLC或在用作MLC或用作SLC之间切换。在不损失一般性的情况下,用于高速缓存102的块被称为SLC高速缓存块,且用于存储用户数据的块被称为MLC主存储器块。
典型的现有技术存储器高速缓存的大小是固定的,且总是被启用以使得存储器阵列的一部分总是专用于暂时数据高速缓存,从而减小可用于存储用户数据的存储器量。取决于可用的自由空间,动态地调整图1的动态数据高速缓存102的大小,且未必总是被启用。因此,可调整动态存储器高速缓存102使得其不占用比完成高速缓存功能所必需的存储器更多的存储器,其中所述高速缓存大小经动态调整。本发明的另一特征为:将存储器分区为MLC及SLC可按阵列或块层级。本发明的又另一特征为:分区中的阵列或块不需要连续。在一些***中,总是首先将数据写入到高速缓存。在其它***中,仅将一些类型的数据(例如,小于一页大小的数据)写入到高速缓存。在具有固定或动态存储器高速缓存的***中,一些事件将触发将有效数据从高速缓存移动到主存储器块(在一些***中,可移动高速缓存中的有效及无效数据两者)。此类事件包含高速缓存中自由块的数目下降到阈值以下。当将高速缓存中的块移动到主存储器时,擦除所述块且回收所述块。类似地,可通过将新的数据移动到主存储器中的另一块且接着擦除旧的块来回收含有旧及新数据的主存储器中的块。
动态SLC存储器高速缓存102使用存储器阵列100的可变数目的存储器块以暂时存储待编程到主存储器阵列100中的数据。例如,动态SLC存储器高速缓存102可存储全部数据页(下页及上页),直到数据的上页被成功地编程在主MLC存储器阵列100中。如果在上页编程期间发生电力故障,那么此可减小对主MLC存储器阵列100的先前编程的下页的破坏。在一个实施例中,将数据存储在SLC中的动态存储器高速缓存102块中,且当编程MLC块中的一页所需要的全部页可用时(在动态存储器高速缓存102中),则将所述数据移动到主存储器阵列100中的块,使得高速缓存102可存储所需的全部数据页,直到MLC主存储器阵列100的一页被编程为止。例如,SLC动态存储器高速缓存102可存储下页数据,直到MLC主存储器阵列100的上页被成功编程为止。如果在上页编程期间发生电力故障,那么此可减小对MLC主存储器阵列100的先前编程的下页的破坏。
图2说明NAND架构存储器阵列201的一部分的一个实施例的示意图,如图1中说明,其包括非易失性存储器单元的串联串。本实施例的存储器阵列不限于所说明的NAND架构。替代实施例还可使用NOR或其它架构。
存储器阵列201包括布置在若干列(例如串联串204、205)中的非易失性存储器单元(例如,浮动栅极)的阵列。在每一串联串204、205中所述单元中的每一者的漏极耦合到源极。横跨多个串联串204、205的存取线(例如,字线)WL0到WL31耦合到一行中的每一存储器单元的控制栅极以偏置所述行中的所述存储器单元的控制栅极。例如偶数/奇数位线BL_E、BL_O的数据线耦合到所述串联串且最终耦合到通过感测所选择的位线的电流或电压而检测每一单元的状态的感测电路。
存储器单元的每一串联串204、205通过源极选择栅极216、217(例如,晶体管)耦合到源极线206,且通过漏极选择栅极212、213(例如,晶体管)耦合到个别位线BL_E、BL_O。源极选择栅极216、217受控于耦合到其控制栅极的源极选择栅极控制线SG(S)218。所述漏极选择栅极212、213受控于漏极选择栅极控制线SG(D)214。
图3说明用于动态调整图1中说明的动态存储器高速缓存的大小的方法的一个实施例的流程图。因为一些文件***可能未经辨识,所以所述方法确定在存储器装置上实施(例如,安装、执行)的文件***是否为被支持的文件***300。如此项技术中众所周知的,文件***(例如,文件分配表(FAT)、新技术文件***(NTFS))为用于存储并组织计算机文件及其数据的方法。其将这些文件组织成通过计算机的操作***进行存储、组织、操纵及检索的数据库。
如果所述文件***并不支持动态高速缓存大小调整300,那么停用所述动态存储器高速缓存调整310。如果存储器装置支持允许删除若干范围的逻辑块地址以实施存储器高速缓存大小的动态改变的任何命令协议,那么仍可实施动态存储器高速缓存大小调整。此项技术中已知的一种此协议通常一般称为TRIM协议。因此确定是否已接收到TRIM命令302。重复此步骤302,直到接收到所述TRIM命令为止。一旦接收到所述TRIM命令302,则启用所述动态存储器高速缓存304。
因为响应于主存储器阵列中的可用存储器空间来调整动态存储器高速缓存的大小,所以确定主存储器阵列中的可用存储器空间306。可用存储器空间的量可不断改变。在一个实施例中,可在每一写入或擦除操作之后确定主存储器阵列中的可用存储器空间的量。在其它实施例中,可定期或按随机时间确定可用存储器空间的量。可用存储器空间可包含不针对立即使用的经擦除存储器以及尚未被擦除但是存储于存储器中的数据是旧的且不再有效的存储器两者。在又另一实施例中,响应于所接收的TRIM命令(如果支持TRIM)或在已知的文件***的情况中当解除分配或写入群集时调整可用存储器的量。
在具有固定或动态存储器高速缓存的***中,一些事件将触发将有效数据(或任选地,有效及无效数据)从动态SLC高速缓存移动到主MLC存储器块。这些事件包含高速缓存中的自由块的数目下降到阈值以下。当将动态SLC高速缓存中的块移动到主MLC存储器时,擦除所述块且将所述块回收并添加到自由块的集区。类似地,可通过仅将有效数据移动到主MLC存储器中的另一块且接着擦除旧块来回收主MLC存储器中含有旧及新数据的块。
接着响应于可用存储器空间来调整动态存储器高速缓存的大小308。动态存储器高速缓存的大小可为可用存储器空间的百分比、全部可用存储器空间或所述可用存储器空间的某个数目的块。在一个实施例中,还可动态地改变所使用的可用存储器空间的百分比。例如,一次仅可分配50%的可用存储器空间给动态存储器高速缓存,且在稍晚时间,可分配90%的可用存储器空间给动态存储器高速缓存。可按需执行对可用存储器空间的百分比的此动态分配。
图4说明可用以确定分配给动态存储器高速缓存的可用存储器空间的量的函数的一个实施例的曲线图。此函数为线性斜坡函数,其中分配固定百分比(例如,50%)的可用存储器空间给动态存储器高速缓存。
此曲线图包含沿x轴的可用存储器空间及沿y轴的动态存储器高速缓存的大小。在此实施例及下列实施例中,x轴及y轴两者上的存储器大小值仅为出于说明目的,这是因为本实施例并不限于任何特定值。所述线的斜率确定分配给动态存储器高速缓存的可用存储器空间的百分比。所说明的实例展示50%实施例。
图5说明可用以确定分配给动态存储器高速缓存的可用存储器空间的量的函数的另一实施例的曲线图。此函数为可用以减小动态存储器高速缓存大小调整的频率的阶梯函数。
改变动态存储器高速缓存大小使用特定时间量来执行各种清除任务。例如,当已用作动态存储器高速缓存的部分的存储器块将被返回到主存储器阵列时,需要移动所述存储器块中的数据且擦除所述存储器块。在一个实施例中,动态存储器高速缓存的SLC存储器块被重新分配为MLC存储器块。此外,还应执行存储器地址指针及其它存储器内务管理任务,以重新分配动态存储器高速缓存块。因此,通常期望减小动态存储器高速缓存大小改变的频率。
阶梯函数为一种减小动态存储器高速缓存大小改变的频率的方式。此可参考图5的曲线图看到。不像其中响应于所述线的斜率执行大小改变的图4的实施例,阶梯函数中不发生高速缓存大小的改变,直到本台阶达到可变存储器空间的另一特定阈值为止。
例如,1MB的初始动态存储器高速缓存大小不改变,直到可变存储器空间达到2MB阈值为止。接着动态存储器高速缓存大小被增加到2MB。所说明的可变存储器空间及动态存储器高速缓存大小是仅出于说明的目的,这是因为不同的可变存储器空间的量可触发重新分配不同的存储器量给动态存储器高速缓存。类似地,图5中说明的阶梯函数的替代实施例可保持在相同的动态存储器高速缓存大小更久及/或每次达到一阈值时分配更大的存储器量给动态存储器高速缓存。
在用于确定分配给动态存储器高速缓存的可用存储器空间的量的函数的又另一实施例中,高速缓存大小可为如果未使用的可用存储器量在特定时间周期内增加或降低的函数。例如,如果可用存储器空间大小在特定时间周期内增加(而非如图4中说明的固定百分比),那么与如果可用存储器空间大小在所述特定时间周期内降低相比,所述函数可分配更大百分比的存储器给动态存储器高速缓存大小。在另一实施例中,如果可用存储器空间大小在特定时间周期内降低,那么所述函数可分配更小百分比的存储器给动态存储器高速缓存大小。
在又另一实施例中,为最小化额外开销并动态分配大部分自由空间给高速缓存,自由(经擦除)块的共同集区用于动态SLC高速缓存及主MLC存储器两者。当需要自由块(即,自由块的数目下降到第一“开始”阈值以下)时,回收动态SLC高速缓存块并将其添加到自由集区,直到自由块的数目等于或大于第二“停止”阈值。可动态调整所述开始阈值及所述终止阈值。例如在其中希望使回收动态SLC高速缓存块最少化的执行来自主机的命令的前景期间,所述终止阈值将不高,但是在不存在主机命令的背景下,所述终止阈值将被设定为更高。
在一个实施例中,分配为动态存储器高速缓存块的存储器块为连续存储器块。在另一实施例中,动态存储器高速缓存块并不连续。在此实施例中,可使用位图来指示并追踪哪些存储器块用作动态存储器高速缓存块。在另一实施例中,指示SLC或MLC的位可与表格中用于逻辑到物理映射的其它信息组合。在另一实施例中,可针对SLC及MLC块两者维持列表。此列表通常为链接列表以便于实施。在另一实施例中,指示SLC或MLC的位可与表格中用于逻辑到物理映射的其它信息组合。在另一实施例中,额外地针对SLC及MLC块两者维持列表。此列表通常为链接列表以便于实施。
图6说明存储器装置600的功能框图。存储器装置600耦合到外部控制器610。控制器610可为微处理器或一些其它类型的控制器。存储器装置600及所述控制器610形成存储器***620的部分。控制器610可耦合到主机且控制器610可响应于来自所述主机的命令。
存储器装置600包含存储器单元(例如,非易失性存储器单元)的阵列630。存储器阵列630布置在字线行及位线列的排中。在一个实施例中,存储器阵列630的列包括存储器单元的串联串。
提供地址缓冲器电路640以锁存通过I/O电路660提供的地址信号。地址信号通过行解码器644及列解码器646接收并解码以存取存储器阵列630。
存储器装置600通过使用读出放大器电路650感测所述存储器阵列列中的电压或电流改变来读取存储器阵列630中的数据。在一个实施例中,读出放大器电路650经耦合以读取并锁存来自存储器阵列630的一行数据。包含数据输入及输出缓冲器电路660以经由多个数据连接662与控制器610进行双向数据通信以及地址通信。提供写入电路655以将数据写入到所述存储器阵列。
存储器控制电路670解码在控制连接672上从控制器610提供的信号。这些信号用以控制对存储器阵列630的操作,包含数据读取、数据写入(程序)及擦除操作。存储器控制电路670可为状态机、序列器或产生存储器控制信号的一些其它类型的控制器。在一个实施例中,存储器控制电路670及/或外部控制器610经配置以控制动态存储器高速缓存大小调整的执行。
已简化图6中说明的存储器装置以促进对存储器的特征的基本理解。所属领域的技术人员知道对快闪存储器的内部电路及功能的更详细理解。
结论
总而言之,用于动态存储器高速缓存大小调整的方法的一个或一个以上实施例可通过动态调整分配给存储器高速缓存(例如,用作SLC)的存储器量而提供用于存储器装置中的用户数据的增加的容量、性能(读取或写入)及/或可靠性。
虽然本文已说明并描述特定实施例,但是所属领域的一般技术人员将明白,打算实现相同目的的任何布置可替代所示的特定实施例。所属领域的一般技术人员将明白本发明的许多调适。因此,本申请案既定涵盖本发明的任何调适或变动。

Claims (15)

1.一种用于动态存储器高速缓存大小调整的方法,所述方法包括:
响应于确定存储器装置上的文件***不支持动态高速缓存大小调整,停用所述存储器装置的存储器阵列中的存储器高速缓存的物理大小的动态调整;
响应于接收到由所述存储器装置支持的且允许所述存储器高速缓存的物理大小的动态调整的命令,启用所停用的所述存储器高速缓存的所述物理大小的所述动态调整;
确定所述存储器装置的所述存储器阵列中的可用存储器空间的大小;及
响应于所确定的所述可用存储器空间的大小而调整所述存储器阵列中的所述存储器高速缓存的所述物理大小。
2.根据权利要求1所述的方法,其中所述可用存储器空间为不作为使用目标的经擦除存储器或存储非有效数据的未擦除存储器中的一者。
3.根据权利要求1所述的方法,其中所述存储器高速缓存的所述物理大小为所确定的所述可用存储器空间的大小的百分比。
4.根据权利要求3所述的方法,且其进一步包含动态调整所述百分比。
5.根据权利要求3所述的方法,其中所确定的所述可用存储器空间的大小的所述百分比为所确定的所述可用存储器空间的大小的可变百分比。
6.根据权利要求1所述的方法,其中调整所述存储器高速缓存的所述物理大小包括分配所述存储器阵列的第一数目的块以用作所述存储器高速缓存,且分配所述存储器阵列的第二数目的块以用作主存储器。
7.根据权利要求6所述的方法,其中分配第一数目的块包含:分配先前分配用作所述主存储器的部分的块来用作所述存储器高速缓存的部分。
8.根据权利要求6所述的方法,其中将分配用作所述主存储器的部分的块中的存储器单元编程为MLC单元,且其中将分配用作所述存储器高速缓存的部分的块中的存储器单元编程为SLC单元。
9.根据权利要求6所述的方法,其中分配先前分配用作所述主存储器的部分的块用作所述存储器高速缓存的部分包括:在将所述块的存储器单元编程为MLC单元与将所述块的所述存储器单元编程为SLC单元之间切换。
10.根据权利要求1所述的方法,其中接收到由所述存储器装置支持的且允许所述存储器高速缓存的物理大小的动态调整的所述命令包括接收到支持允许删除一定范围的逻辑块地址的协议的命令。
11.一种存储器装置,其包括:
存储器单元阵列,其包括存储器高速缓存;
存储器控制电路,其耦合到所述存储器单元阵列;及
文件***;
其中所述控制电路经配置以响应于确定所述文件***不支持动态高速缓存大小调整,而停用所述存储器高速缓存的物理大小的动态调整;
其中所述控制电路经配置以响应于接收到的由所述存储器装置支持的且允许所述存储器高速缓存的物理大小的动态调整的命令,而启用所停用的所述存储器高速缓存的所述物理大小的所述动态调整;
其中所述控制电路经配置以确定所述存储器单元阵列中的可用存储器的大小,并响应于所确定的所述可用存储器的大小而调整所述存储器高速缓存的所述物理大小。
12.根据权利要求11所述的存储器装置,其中调整所述存储器高速缓存的所述物理大小包括:调整其存储器单元被编程为SLC单元的所述阵列的若干块。
13.根据权利要求11所述的存储器装置,其中所述存储器控制电路经配置以响应于可用存储器达到多个可用存储器阈值中的一者而增加所述存储器高速缓存的所述物理大小。
14.根据权利要求13所述的存储器装置,其中所述多个可用存储器阈值形成可用存储器的阶梯函数。
15.根据权利要求11所述的存储器装置,其中所述存储器控制电路经配置以依据在特定时间周期内所述可用存储器是增加还是减少来动态调整所述存储器高速缓存的所述物理大小。
CN201280025689.2A 2011-05-31 2012-05-08 存储器装置中的动态存储器高速缓存大小调整 Active CN103562883B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/118,721 US8886911B2 (en) 2011-05-31 2011-05-31 Dynamic memory cache size adjustment in a memory device
US13/118,721 2011-05-31
PCT/US2012/036923 WO2012166304A2 (en) 2011-05-31 2012-05-08 Dynamic memory cache size adjustment in a memory device

Publications (2)

Publication Number Publication Date
CN103562883A CN103562883A (zh) 2014-02-05
CN103562883B true CN103562883B (zh) 2016-05-18

Family

ID=47260161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280025689.2A Active CN103562883B (zh) 2011-05-31 2012-05-08 存储器装置中的动态存储器高速缓存大小调整

Country Status (7)

Country Link
US (2) US8886911B2 (zh)
EP (1) EP2715548B1 (zh)
JP (1) JP5808853B2 (zh)
KR (1) KR101547418B1 (zh)
CN (1) CN103562883B (zh)
TW (1) TWI456392B (zh)
WO (1) WO2012166304A2 (zh)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032269B2 (en) 2011-07-22 2015-05-12 Sandisk Technologies Inc. Systems and methods of storing data
KR20130060791A (ko) * 2011-11-30 2013-06-10 삼성전자주식회사 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브
US9348741B1 (en) * 2011-12-19 2016-05-24 Western Digital Technologies, Inc. Systems and methods for handling write data access requests in data storage devices
US20130219146A1 (en) * 2012-02-16 2013-08-22 Micron Technology, Inc. Method, device and system for a configurable address space for non-volatile memory
US8990477B2 (en) * 2012-04-19 2015-03-24 Sandisk Technologies Inc. System and method for limiting fragmentation
KR102147359B1 (ko) * 2012-06-29 2020-08-24 삼성전자 주식회사 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
US9128845B2 (en) * 2012-07-30 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamically partition a volatile memory for a cache and a memory partition
KR20140069659A (ko) * 2012-11-29 2014-06-10 성균관대학교산학협력단 플래시 메모리용 파일 시스템
GB2511325A (en) * 2013-02-28 2014-09-03 Ibm Cache allocation in a computerized system
US9569352B2 (en) * 2013-03-14 2017-02-14 Sandisk Technologies Llc Storage module and method for regulating garbage collection operations based on write activity of a host
KR102121333B1 (ko) * 2013-10-28 2020-06-11 에스케이하이닉스 주식회사 반도체 시스템 및 이의 동작 방법
US9558124B2 (en) * 2013-11-08 2017-01-31 Seagate Technology Llc Data storage system with passive partitioning in a secondary memory
US9471254B2 (en) 2014-04-16 2016-10-18 Sandisk Technologies Llc Storage module and method for adaptive burst mode
US10430328B2 (en) * 2014-09-16 2019-10-01 Sandisk Technologies Llc Non-volatile cache and non-volatile storage medium using single bit and multi bit flash memory cells or different programming parameters
US10452280B2 (en) * 2014-10-03 2019-10-22 International Business Machines Corporation Hybrid storage system employing reconfigurable memory
US10102118B2 (en) * 2014-10-30 2018-10-16 Toshiba Memory Corporation Memory system and non-transitory computer readable recording medium
US11347637B2 (en) 2014-10-30 2022-05-31 Kioxia Corporation Memory system and non-transitory computer readable recording medium
US9542328B2 (en) * 2015-01-26 2017-01-10 International Business Machines Corporation Dynamically controlling a file system write cache
WO2016122466A1 (en) * 2015-01-27 2016-08-04 Hewlett Packard Enterprise Development Lp Transferring a variable data payload
CN107430879B (zh) * 2015-05-08 2020-07-21 桑迪士克科技有限责任公司 非易失性储存装置的数据映射
US10096355B2 (en) 2015-09-01 2018-10-09 Sandisk Technologies Llc Dynamic management of programming states to improve endurance
US20170075812A1 (en) * 2015-09-16 2017-03-16 Intel Corporation Technologies for managing a dynamic read cache of a solid state drive
US10140030B2 (en) 2015-11-02 2018-11-27 International Business Machines Corporation Dynamic modulation of cache memory
US10037149B2 (en) * 2016-06-17 2018-07-31 Seagate Technology Llc Read cache management
US9990158B2 (en) 2016-06-22 2018-06-05 Sandisk Technologies Llc Storage system and method for burst mode management using transfer RAM
US10552327B2 (en) * 2016-08-23 2020-02-04 Apple Inc. Automatic cache partitioning
US10359933B2 (en) 2016-09-19 2019-07-23 Micron Technology, Inc. Memory devices and electronic systems having a hybrid cache including static and dynamic caches with single and multiple bits per cell, and related methods
KR101948988B1 (ko) * 2016-12-12 2019-02-15 주식회사 엘지유플러스 캐시를 이용한 파일 실행 방법 및 그 장치
US10095626B2 (en) 2017-03-10 2018-10-09 Toshiba Memory Corporation Multibit NAND media using pseudo-SLC caching technique
US10049047B1 (en) 2017-03-10 2018-08-14 Toshiba Memory Corporation Multibit NAND media using pseudo-SLC caching technique
KR101961547B1 (ko) * 2017-04-28 2019-07-05 주식회사 엘지유플러스 가상 파일시스템 처리를 위한 장치 및 그 방법
TWI630540B (zh) * 2017-07-13 2018-07-21 慧榮科技股份有限公司 資料儲存裝置及非揮發式記憶體操作方法
US10347329B2 (en) 2017-08-29 2019-07-09 Micron Technology, Inc. Reflow protection
US10522229B2 (en) 2017-08-30 2019-12-31 Micron Technology, Inc. Secure erase for data corruption
US10545685B2 (en) 2017-08-30 2020-01-28 Micron Technology, Inc. SLC cache management
US10572388B2 (en) 2017-08-30 2020-02-25 Micron Technology, Inc. Managed NVM adaptive cache management
US10096380B1 (en) 2017-08-31 2018-10-09 Micron Technology, Inc. Erase page check
US10579288B2 (en) 2017-08-31 2020-03-03 Micron Technology, Inc. Prioritized security
JP2022062264A (ja) * 2017-09-22 2022-04-19 キオクシア株式会社 メモリシステム
JP7030463B2 (ja) * 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム
US10409726B2 (en) * 2017-10-30 2019-09-10 Micron Technology, Inc. Dynamic L2P cache
US10908832B2 (en) 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
US10521146B1 (en) 2017-11-09 2019-12-31 Micron Technology, Inc. UFS based idle time garbage collection management
US10229735B1 (en) 2017-12-22 2019-03-12 Intel Corporation Block management for dynamic single-level cell buffers in storage devices
CN108287794A (zh) * 2018-01-26 2018-07-17 国科美国研究实验室 Nand闪存的动态管理方法
KR102535104B1 (ko) * 2018-03-19 2023-05-23 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10909040B2 (en) 2018-04-19 2021-02-02 Intel Corporation Adaptive calibration of nonvolatile memory channel based on platform power management state
CN108572924B (zh) * 2018-04-20 2021-10-08 华中科技大学 一种3d mlc闪存设备的请求处理方法
CN118210738A (zh) 2018-10-29 2024-06-18 美光科技公司 Slc高速缓存分配
US20200183838A1 (en) * 2018-12-10 2020-06-11 International Business Machines Corporation Dynamic cache resize taking into account underlying raid characteristics
KR20200091679A (ko) 2019-01-23 2020-07-31 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10983829B2 (en) * 2019-07-12 2021-04-20 Micron Technology, Inc. Dynamic size of static SLC cache
US11237732B2 (en) * 2019-08-06 2022-02-01 Intel Corporation Method and apparatus to improve write bandwidth of a block-based multi-level cell nonvolatile memory
US20210042236A1 (en) * 2019-08-06 2021-02-11 Micron Technology, Inc. Wear leveling across block pools
US10950313B1 (en) 2019-08-28 2021-03-16 Micron Technology, Inc. Responding to changes in available power supply
KR102685013B1 (ko) 2019-11-11 2024-07-15 삼성전자주식회사 스토리지 장치 및 그 동작방법
US11656773B2 (en) * 2020-04-28 2023-05-23 EMC IP Holding Company LLC Automatic management of file system capacity using predictive analytics for a storage system
US11740789B2 (en) 2020-05-18 2023-08-29 EMC IP Holding Company LLC Automated storage capacity provisioning using machine learning techniques
US11366754B2 (en) 2020-07-28 2022-06-21 Micron Technology, Inc. Adjustable buffer memory space
JP2022030146A (ja) * 2020-08-06 2022-02-18 キオクシア株式会社 メモリシステムおよび書き込み制御方法
US11449229B2 (en) 2020-10-20 2022-09-20 Red Hat, Inc. Dynamically resizing a region of volatile memory based on a charge level of a backup battery supply
US11256620B1 (en) 2020-11-13 2022-02-22 Micron Technology, Inc. Cache management based on memory device over-provisioning
US20220188242A1 (en) * 2020-12-11 2022-06-16 Micron Technology, Inc. Multi-tier cache for a memory system
US11908504B2 (en) 2021-04-13 2024-02-20 Seagate Technology Llc Front end buffer having ferroelectric field effect transistor (FeFET) based memory
CN113805812B (zh) * 2021-09-22 2024-03-05 深圳宏芯宇电子股份有限公司 一种缓存管理方法、装置、设备及存储介质
TWI793932B (zh) 2021-12-21 2023-02-21 建興儲存科技股份有限公司 固態儲存裝置及其相關的寫入控制方法
US20240061589A1 (en) * 2022-08-17 2024-02-22 Micron Technology, Inc. Code rate as function of logical saturation
CN115168247B (zh) * 2022-09-02 2022-12-02 北京登临科技有限公司 用于并行处理器中动态共享存储空间的方法及相应处理器
TWI814666B (zh) * 2022-12-14 2023-09-01 慧榮科技股份有限公司 資料儲存裝置與動態決定緩存器大小的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101364164A (zh) * 2007-08-09 2009-02-11 株式会社日立制作所 存储***

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127560B2 (en) * 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
US7752391B2 (en) * 2006-01-20 2010-07-06 Apple Inc. Variable caching policy system and method
JP4805696B2 (ja) * 2006-03-09 2011-11-02 株式会社東芝 半導体集積回路装置およびそのデータ記録方式
JP2007305210A (ja) * 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
US7711890B2 (en) * 2006-06-06 2010-05-04 Sandisk Il Ltd Cache control in a non-volatile memory device
US8489817B2 (en) * 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
JP2009003569A (ja) * 2007-06-19 2009-01-08 Toshiba Corp 半導体記憶装置
US8484432B2 (en) * 2008-03-11 2013-07-09 Kabushiki Kaisha Toshiba Memory system
JP4558054B2 (ja) * 2008-03-11 2010-10-06 株式会社東芝 メモリシステム
KR101456592B1 (ko) 2008-06-17 2014-10-31 삼성전자주식회사 멀티-비트 플래시 메모리 장치 및 그것의 플래그 셀 분석방법
US8843691B2 (en) 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US20100017556A1 (en) 2008-07-19 2010-01-21 Nanostar Corporationm U.S.A. Non-volatile memory storage system with two-stage controller architecture
JP2010026933A (ja) * 2008-07-23 2010-02-04 Toshiba Corp メモリシステム、ホスト装置
TWI385516B (zh) * 2008-08-12 2013-02-11 Phison Electronics Corp 快閃記憶體儲存系統及其資料寫入方法
US8407400B2 (en) * 2008-11-12 2013-03-26 Micron Technology, Inc. Dynamic SLC/MLC blocks allocations for non-volatile memory
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US20100332922A1 (en) * 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US20110107042A1 (en) * 2009-11-03 2011-05-05 Andrew Herron Formatting data storage according to data classification
US8677054B1 (en) * 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8402243B2 (en) * 2010-02-25 2013-03-19 Apple Inc. Dynamically allocating number of bits per cell for memory locations of a non-volatile memory
US20110252187A1 (en) * 2010-04-07 2011-10-13 Avigdor Segal System and method for operating a non-volatile memory including a portion operating as a single-level cell memory and a portion operating as a multi-level cell memory
US9021177B2 (en) * 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
US9158695B2 (en) * 2011-08-09 2015-10-13 Seagate Technology Llc System for dynamically adaptive caching
US9152548B2 (en) * 2012-01-17 2015-10-06 Vmware, Inc. Controlling access to a privileged resource in user-mode system level mobile virtualization using a ptrace () system call
US9804960B2 (en) * 2013-03-14 2017-10-31 Western Digital Technologies, Inc. Overprovision capacity in a data storage device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101364164A (zh) * 2007-08-09 2009-02-11 株式会社日立制作所 存储***

Also Published As

Publication number Publication date
US20120311293A1 (en) 2012-12-06
EP2715548A2 (en) 2014-04-09
JP2014515531A (ja) 2014-06-30
EP2715548A4 (en) 2014-12-17
TWI456392B (zh) 2014-10-11
US8886911B2 (en) 2014-11-11
EP2715548B1 (en) 2019-10-30
US20150026416A1 (en) 2015-01-22
KR101547418B1 (ko) 2015-08-25
CN103562883A (zh) 2014-02-05
WO2012166304A3 (en) 2013-01-24
TW201301031A (zh) 2013-01-01
WO2012166304A2 (en) 2012-12-06
US9195604B2 (en) 2015-11-24
JP5808853B2 (ja) 2015-11-10
KR20140016377A (ko) 2014-02-07

Similar Documents

Publication Publication Date Title
CN103562883B (zh) 存储器装置中的动态存储器高速缓存大小调整
US10209902B1 (en) Method and apparatus for selecting a memory block for writing data, based on a predicted frequency of updating the data
JP5002201B2 (ja) メモリシステム
KR101477047B1 (ko) 메모리 시스템 및 그것의 블록 병합 방법
JP5728672B2 (ja) ハイブリッドメモリ管理
US7987332B2 (en) Methods for storing memory operations in a queue
US10740013B2 (en) Non-volatile data-storage device with spare block pools using a block clearing method
US20100082917A1 (en) Solid state storage system and method of controlling solid state storage system using a multi-plane method and an interleaving method
US9747045B2 (en) Sub-sector wear leveling in memories
CN104919438B (zh) 存储器装置中的自动后台操作的主机控制的启用
US20220004496A1 (en) Memory system, memory controller, and method of operating memory system
Kim et al. Improving performance and lifetime of large-page NAND storages using erase-free subpage programming
CN112130749A (zh) 数据储存装置以及非挥发式存储器控制方法
CN113590505B (zh) 地址映射方法、固态硬盘控制器及固态硬盘
US11544002B2 (en) Memory system, memory controller and operating method thereof
US9507706B2 (en) Memory system controller including a multi-resolution internal cache
US11954357B2 (en) Memory system and memory system control method
CN111949199B (zh) 一种存储设备的数据写入方法、装置及存储设备
KR20210130340A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant