CN102841868A - 使用优化的基于闪存的高速缓存存储器的方法和系统 - Google Patents
使用优化的基于闪存的高速缓存存储器的方法和系统 Download PDFInfo
- Publication number
- CN102841868A CN102841868A CN201210157368XA CN201210157368A CN102841868A CN 102841868 A CN102841868 A CN 102841868A CN 201210157368X A CN201210157368X A CN 201210157368XA CN 201210157368 A CN201210157368 A CN 201210157368A CN 102841868 A CN102841868 A CN 102841868A
- Authority
- CN
- China
- Prior art keywords
- restraining
- memory device
- factor
- data
- response
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
Abstract
本发明的实施例涉及节制对闪存器件的访问。该闪存器件是包括该闪存器件和第二存储器器件的存储系统的部分。所述节制由闪存器件外部的逻辑进行,且包括响应于闪存器件的估计的剩余寿命来计算节制因子。确定该节制因子是否超出阈值。响应于确定该节制因子不超出该阈值,向闪存器件写入数据。响应于确定该节制因子超出该阈值,向第二存储器器件写入数据。
Description
技术领域
本发明通常涉及存储器,且更具体地,涉及使用闪存器件作为高速缓存存储器。
背景技术
闪存器件是可以在大块中电擦除和再编程的一类非易失性存储器件。闪存器件在由浮置栅极晶体管构造的存储器单元的阵列中存储信息。单电平单元(SLC)闪存器件在每个单元中存储一比特信息。多电平单元(MLC)闪存器件可以通过在多级电荷之间选择来施加到其单元的浮置栅极,使得每单元存储多于一比特。闪存器件具有有限寿命,因为它们仅可以支持有限次数的编程-擦除(P/E)循环。当今商业可得的闪存器件通常被保证在损耗开始影响存储的可靠性之前支持指定次数的P/E循环。
使用闪存器件作为动态随机存取存储器(DRAM)和/或硬盘(HDD)的替换或补充正日益吸引人,因为闪存的成本降低,且闪存的性能增加。从成本角度,闪存当前大约比传统DRAM便宜十倍。闪存的较低成本允许存储大得多的数据组,而不相应增加存储器的成本。从性能角度,当今闪存当前具有比传统机械盘高大约两倍量级的随机读取吞吐量。使用闪存器件用于高速缓存存储器的一个缺点是闪存器件具有有限寿命,且可能不理想地存储经历大量更新的数据。
发明内容
一个实施例是包括节制对闪存器件的访问的方法。该闪存器件是包括该闪存器件和第二存储器器件的存储系统的部分。所述节制由闪存器件外部的逻辑进行,且包括响应于闪存器件的估计的剩余寿命来计算节制因子。确定该节制因子是否超出阈值。响应于确定该节制因子不超出该阈值,向闪存器件写入数据。响应于确定该节制因子超出该阈值,向第二存储器器件写入数据。
另一实施例是包括存储器和存储器控制器的一种系统。该存储器包括闪存器件和第二存储器器件。所述存储器控制器耦合于所述闪存,且被配置以响应于闪存器件的估计的剩余寿命来计算节制因子。所述存储器控制器还被配置以确定该节制因子是否超出阈值。响应于确定该节制因子不超出该阈值,向闪存器件写入数据,且响应于确定该节制因子超出该阈值,向第二存储器器件写入数据。
另一实施例是一种计算机程序产品,其包括具有其中实现的计算机只读程序代码的计算机可读存储介质。计算机可读程序代码包括被配置用于节制对闪存器件的访问的计算机可读程序代码。该闪存器件是包括该闪存器件和第二存储器器件的存储系统的部分。所述介质由闪存器件外部的逻辑进行。所述节制包括响应于闪存器件的估计的剩余寿命,计算节制因子;确定该节制因子是否超出阈值。响应于确定该节制因子不超出该阈值,向闪存器件写入数据。响应于确定该节制因子超出该阈值,向第二存储器器件写入数据。
另一个实施例是包括节制对闪存器件的访问的方法。该闪存器件是包括该闪存器件和第二存储器器件的存储系统的部分。所述介质由闪存器件外部的逻辑进行。所述节制包括响应于闪存器件的估计的剩余寿命,计算寿命节制因子。另外,计算响应于闪存器件的估计的最大吞吐量的吞吐量节制因子,以及响应于寿命节制因子和吞吐量节制因子的最大节制因子。确定该最大节制因子是否超出阈值。响应于确定所述最大节制因子超出所述阈值,进行数据大小节制、预取窗口大小节制和使用节制中的至少一个。响应于所述节制,向所述闪存器件和所述第二存储器器件中的至少一个写数据。
另一实施例是一种计算机程序产品,其包括具有其中实现的计算机只读程序代码的计算机可读存储介质。计算机可读程序代码包括被配置用于节制对闪存器件的访问的计算机可读程序代码。该闪存器件是包括该闪存器件和第二存储器器件的存储系统的部分。所述介质由闪存器件外部的逻辑进行。所述节制包括响应于闪存器件的估计的剩余寿命,计算寿命节制因子。也计算响应于闪存器件的估计的最大吞吐量的吞吐量节制因子,以及响应于寿命节制因子和吞吐量节制因子的最大节制因子。确定该最大节制因子是否超出阈值。响应于确定所述最大节制因子超出所述阈值,进行数据大小节制、预取窗口大小节制和使用节制中的至少一个。响应于所述节制,向所述闪存器件和所述第二存储器器件中的至少一个写数据。
通过本发明的技术实现其他特征和优点。在此详细描述本发明的其他实施例和方面,且将其考虑为要求保护的本发明的部分。为了便于理解具有优点和特征的本发明,参考说明书和附图。
附图说明
具体指出视为本发明的主题,且在本说明书的结尾的权利要求书中清楚地要求保护。从结合所附附图进行的以下详细描述,本发明的前述和其他特征和优点将变得更明显,其中:
图1图示根据实施例的用于提供快闪高速缓存存储器的系统的方框图;
图2是根据实施例的用于节制向快闪高速缓存存储器写入数据的速率的处理流程;
图3是根据实施例的用于基于数据大小来节制向快闪高速缓存存储器写入数据的速率的处理流程;
图4是根据实施例的用于基于预取窗口大小来节制向快闪高速缓存存储器写入数据的速率的处理流程;以及
图5是根据实施例的用于基于数据使用来节制向快闪高速缓存存储器写入数据的速率的处理流程。
具体实施方式
一个实施例使用闪存作为在动态随机存取存储器(DRAM)和硬盘(HDD)存储器之间的第二级高速缓存。控制并由位于存储器控制器中的逻辑来节制对快闪高速缓存存储器的访问。基于正被存储的数据的特征(例如,数据访问是否是顺序的或随机的、数据的大小)来节制对快闪高速缓存存储器的访问。在一个实施例中,当检测特定数据特征时,完全避开对快闪高速缓存的访问。通过基于数据特征来节制在存储器控制器级的数据,可以使用闪存器件作为第二级高速缓存,同时仍然保证将维持闪存器件的声称的寿命。
在一个实施例中,诸如图1所示的实施例,使用快闪高速缓存存储器106作为DRAM高速缓存存储器104和盘108之间的第二级高速缓存。使用位于存储器控制器中的逻辑来确定在哪里存储数据(例如,到快闪高速缓存存储器106、DRAM高速缓存存储器104和/或盘108)且跟踪先前存储的数据的位置。可以使用快闪高速缓存存储器106作为读取高速缓存和/或写入高速缓存。当用作读取高速缓存时,在从盘108返回数据到DRAM高速缓存存储器104时和/或在当DRAM高速缓存存储器104逐出未修改数据时的稍后时间,快闪高速缓存存储器106被装入数据。对于修改的数据,DRAM高速缓存存储器104(例如被用作写入高速缓存)具有将数据降级(de-staging)到快闪高速缓存存储器106中而不到盘108中的选择。当以该方式使用时,除了吸收过写入,快闪高速缓存存储器106(例如用作写入高速缓存)累积大量写入,其可以稍后以高效方式被归类并降级到盘108。
在图1所示的系统的实施例中,该数据通过DRAM高速缓存存储器104流动,且快闪高速缓存存储器106的使用可选。这允许在存储器控制器102中的逻辑节制被发送到快闪高速缓存存储器106的数据的量和类型。
闪存器件是可以通过在此描述的示例实施例实现的受限寿命存储器器件的一个例子。其他受限寿命存储器器件,诸如、但不限于:还可以由示例实施例来实现相变存储器(PCM)和其他存储类存储器(SCM)。
基于传统DRAM的高速缓存算法主要关心最大化高速缓存的击中率(或最小化失误率),以便减少对底层盘的引用的数量。例如,最近最少使用(LRU)算法利用工作负荷中的时间位置来首先取出最老的未引用数据块。LRU算法已经被成功使用来减少读取和写入两者的失败的数量。类似地,数据预取是通过利用工作负荷中的空间位置来改善读取的击中率的另一技术。
但是,仅关注击中和失败,可能对基于闪存的高速缓存来说不是最佳的。具体地,与耐受不是问题的DRAM相反,闪存仅允许在其损耗且变得不可用之前的有限数量的写入。因此,盲目关注击中和失败度量,可能导致过量和不可控损耗,使得快闪高速缓存的寿命短和不可预测。寿命和不可预测性的该缩短可能对于许多类型的实施方式来说不可接受。
例如,多电平单元(MLC)闪存器件当前被标定为大约五千的损耗循环,且如果使用这种器件作为高速缓存,而没有节制,则仅将花费数月来损耗掉这种器件。为了保持服务成本低,将期望任何存储系统的高速缓存具有数年的寿命,且理想地保证实现该寿命,而不管工作负荷。
解决上述问题的一个方法是在闪存器件到达其寿命末期时使得闪存器件运行得更慢。这扩展闪存器件的寿命,但同时征服其用作高速缓存的主要目的来改善系统的性能。实际,用作高速缓存的慢闪存器件的存在可以降低该系统的整体性能。在此描述的实施例利用避免快闪高速缓存变为性能瓶颈、同时保证最小可接受寿命的情况的技术。
在此描述的实施例利用节制技术,其控制对快闪高速缓存存储器106的输入/输出(I/O)的速率,以便维持低于闪存器件和将快闪高速缓存存储器106连接到DRAM高速缓存存储器104的网络的吞吐量容量。这允许闪存器件维持最小保证寿命。可以经验地确定闪存器件和网络的吞吐量容量。这允许快闪高速缓存存储器106的快闪控制模块(FCM)(在一个实施例中,位于存储器控制器102)来在任何给定的时间计算当前使用的该容量的百分比p。使用该百分比来计算吞吐量节制因子(TTF),一个实施例使用吞吐量节制因子(TTF)来防止快闪高速缓存存储器106变为性能瓶颈。
可以以各种方式确定闪存器件的剩余寿命。一个选择是使用一些制造商为其闪存器件提供的内置损耗指示器。简单的损耗指示器是只读计数器,其在一到一百的范围内取值,其中,一的值指示完全没有损耗,且一百的值指示该器件到达了其最大写入数量。在没有这种指示器的情况下,FCM可以通过本身保持向闪存器件的写入的跟踪来计算该损耗。在任一情况下,可以计算闪存器件的剩余寿命。计算的剩余寿命c和期望的剩余寿命d之间的不同形成由实施例使用的第二节制因子、在此称为寿命节制因子(LTF)的基础。使用LTF来保护闪存器件不以比预期更早地达到其寿命末期。
为了简单,在一个实施例中,两个节制因子(TTF和LTF)取从-∞到1的值。对应于两个因子,负值指示不需要节制,且该数据可以被自由地发送到快闪高速缓存存储器106。1的值指示需要完全节制,且不应该向快闪高速缓存存储器106发送数据。在0和1之间的值指示某些节制取决于节制因子的特定值而需要被应用于快闪高速缓存存储器106。
在一个实施例中,对于TTF,选择90%的阈值作为吞吐量容量,在该吞吐量容量以上,将应用节制。这被定义为如下:TTF=(p-90)/(100-90)。类似地,对于LTF,选择期望剩余寿命以上的10%的阈值,且对于其以下的值,应用阈值节制。这被定义为如下:LTF=(1.1d-c)/1.1d.可以通过一个实施例来实现任何阈值数,且该阈值可基于实施方式特定需求被编程。在另一实施例中,选择这些阈值为写入高速缓存比只读高速缓存更保守,由于在只读高速缓存中,通过HDD上的副本来保护该数据,且该实施方式可以更靠近闪存器件的寿命末期地运行,而没有数据丢失的风险。在另一实施例中,其中实现混合、读取/写入高速缓存,由于接近更高节制因子,因此快闪高速缓存存储器106被动态地分裂为读取和写入部分,且在读取部分中比写入部分中允许更快的损耗。该实施例利用读取部分中的介质错误(media errors)的事实将预言在写入部分中的期望行为,且允许该器件的寿命末期的提前通知。
图2是根据实施例的用于节制向快闪高速缓存存储器106写入数据的速率的整体处理。在一个实施例中,通过存储器控制器102中的逻辑来实现该处理流程。
在块202处,计算TTF、LTF和(TTF,LTF)的最大值。在块204,确定(TTF,LTF)的最大值是否大于规定的阈值。如果(TTF,LTF)的最大值不高于规定的阈值,则该处理循环回到204,因为不需要节制。如果在块204,确定(TTF,LTF)的最大值高于规定的阈值,则进行块206。在块206,进行数据大小节制来基于数据的大小和(TTF,LTF)的最大值来限制在快闪高速缓存存储器106中存储的数据量。图3中示出数据大小节制处理的实施例。在一个实施例中,进行块206处的数据大小节制处理达规定数量的迭代和/或达规定的时间量。接下来,进行块208,重新计算TTF、LTF和(TTF,LTF)的最大值。在块210,通过比较(TTF,LTF)的最大值和规定的阈值来确定数据大小节制处理是否提供足够的节制。如果(TTF,LTF)的最大值不高于规定的阈值,则该处理继续到块204。
如果在块210,确定(TTF,LTF)的最大值高于规定的阈值,则处理继续到块212,其中,进行预取窗口大小节制。图4中示出预期窗口大小节制处理的实施例。在一个实施例中,在块212处进行预取窗口大小节制处理达规定数量的迭代和/或达规定的时间量。接下来,进行块214,重新计算TTF、LTF和(TTF,LTF)的最大值。在块216,通过比较(TTF,LTF)的最大值和规定的阈值来确定预取窗口大小节制处理是否提供足够的节制。如果(TTF,LTF)的最大值不高于规定的阈值,则该处理继续到块204。在一个实施例中,处理继续到块212,该处理在循环回到块204之前循环回到212,达规定数量的迭代和/或达规定的时间量。
如果在块216,确定(TTF,LTF)的最大值高于规定的阈值,则处理继续到块218,其中,进行预取使用节制。在图5中示出该使用节制处理的实施例。使用节制处理该情况,在该情况下,TTF或LTF或两者的值甚至在很好表现的工作负荷之下快速且不成比例地增长。这可以来源于不能预先预期的闪存器件的特定物理特征,且可以导致以下情况,在该情况下,快速高速缓存存储器106变为即时的瓶颈和/或比预期快得多地达到其寿命末期。在这种情况下,即使设置快速预取参考大小为0(这意味着,仅原始请求的数据被发送到快速高速缓存存储器106)可能不足够。
在一个实施例中,进行块218处的使用节制处理达规定数量的迭代和/或达规定的时间量。接下来,进行块220,且重新计算TTF、LTF和(TTF,LTF)的最大值。在块222,通过比较(TTF,LTF)的最大值和规定的阈值来确定使用节制处理是否提供足够的节制。如果(TTF,LTF)的最大值不高于规定的阈值,则该处理继续到块204。在另一个实施例中,处理继续到块212(或块218),且该处理在循环回到块204之前循环回到212(或块218),达规定数量的迭代和/或达规定的时间量。如果(TTF,LTF)的最大值高于规定的阈值,则进行块224,且停止快闪高速缓存高速缓存器106的使用。该系统继续使用DRAM高速缓存存储器104,且其缺省高速缓存算法仅与盘108通信,且绕开快闪高速缓存存储器106。
在一个实施例中,在指定时间量和/或指定的访问数量之后,处理从块224继续到块202,以看是否可以使用快闪高速缓存存储器106用于当前工作负荷。在一个实施例中,以不同的顺序进行图2所示的节制处理。在另一实施例中,最大因子与不同值相比较。在另一实施例中,进行图2所示的节制处理的子集。在另一实施例中,进行与图2所示的节制处理的另外或不同的节制处理。例如,可以优选地节制某些工作负荷或量,或可以在决定哪些数据是重要的要发送到闪存以及哪些可以被节制时使用来自应用的一些暗示。
图3是根据实施例的用于基于数据大小来节制向快闪高速缓存写入数据的速率的处理流程。在一个实施例中,通过存储器控制器102中的逻辑来实现该处理流程。
图3所示的处理流程避免污染具有来源于顺序读取或写入的大块数据的快闪高速缓存存储器106。在一个实施例中,这些大块数据直接从DRAM高速缓存存储器104发送到盘108。不向快闪高速缓存存储器106写入顺序的工作负荷由于若干原因而是有益的。首先,顺序的工作负荷具有很少的位置,因此不利用该高速缓存。另外,传统的盘的顺序的性能可与闪存器件的性能相当,且不可能通过高速缓存来改进,且可能甚至更差。另外,顺序的工作负荷可能导致对闪存器件更多的损耗。
在图3所示的实施例中,进行节制,且设置大小阈值。低于阈值的数据大小从DRAM高速缓存存储器104发送到快闪高速缓存存储器106,且高于阈值的数据大小直接发送到盘108。该阈值基于如图3所示的实施例中的节制因子可以是静态或动态的。
参考图3,在块302,TTF和LTF的最大值被分配给变量“maxfactor(最大因子)”。在一个实施例中,从图2所示的整体处理流程中调用图3中的处理流程,其中,计算了TTF和LTF。在另一实施例中,块302中的处理的部分包括计算TTF和LTF。在块304,确定该最大因子是否小于0。如果该最大因子小于0,处理继续到块306,其中,该最大数据大小被设置为无限大(即,所有数据被发送到快闪高速缓存存储器106)。如果在块304处确定该最大因子不小于0,则处理继续到块308,以确定该最大因子是否小于0.2。如果该最大因子小于0.2,处理继续到块310,其中,该最大数据大小被设置为256千字节(KB)。因此,尺寸为小于256KB的数据仅从DRAM高速缓存存储器104发送到快闪高速缓存存储器106,且尺寸为大于256KB的数据从DRAM高速缓存存储器104发送到盘108。如果在块308处确定该最大因子不小于0.2,则处理继续到块312,以确定该最大因子是否小于0.4。
如果该最大因子小于0.4,处理继续到块314,以防止对高于128KB的数据大小的快闪高速缓存存储器106的访问,且如果该最大因子不小于0.4,则防止对块316的访问。在块316,确定该最大因子是否小于0.6。如果该最大因子小于0.6,处理继续到块318,以防止对高于64KB的数据大小的快闪高速缓存存储器106的访问,且如果该最大因子不小于0.6,则防止对块320的访问。在块320,确定该最大因子是否小于0.8。如果该最大因子小于0.8,处理继续到块322,以防止对高于16KB的数据大小的快闪高速缓存存储器106的访问,且如果该最大因子不小于0.8,则防止对块324的访问。在块324,确定该最大因子是否小于0.95。如果该最大因子小于0.95,处理继续到块326,以防止对高于4KB的数据大小的快闪高速缓存存储器106的访问,且如果该最大因子不小于0.95,则防止对块328的访问。在块328,防止向快闪高速缓存存储器写入所有数据。因此,直接从DRAM高速缓存存储器104直接向盘108写入所有存储器。
其中基于数据大小来节制对快闪高速缓存存储器106的访问的其他实施例具有对应于相同最大因子值的不同最大数据大小值、对应于不同最大数据大小值的不同最大因子值、更小的最大因子值、或更大的最大因子值。在另一实施例中,图3所示的处理在块306、310、314、318、322、326和328之前循环回到块302,以重写计算TTF、LTF和最大因子用于每个数据访问。在另一实施例中,周期性地或响应于检测到可能具有对因子的影响(例如,对快闪高速缓存存储器106的特定数量的访问)的情况,重新计算TTF、LTF和最大因子。
在另一实施例中,最大数据大小的最小值大于0。
在另一实施例中,为被写入(修改)的数据相比于被读取(未修改)的数据不同地选择上述节制阈值(最大因子和最大数据大小)。首先或比修改后的数据更积极地节制未修改的数据可以是有益的,因为节制修改后的数据具有对整体性能的直接负面影响。
图4是根据实施例的用于基于预取窗口大小来节制向快闪高速缓存写入数据的速率的处理流程。在一个实施例中,通过存储器控制器102中的逻辑来实现该处理流程。
图4所示的处理限制为在随机读取时存储到快闪高速缓存存储器106的数据进行的预取的量。在一个实施例中,预取等待读取丢失的发生,且然后,将除了请求的数据块以外的在空间上相邻于所请求的块的一个或多个另外的块预取到高速缓存中。另外的块的数量(或另外的块的大小)在此称为预取窗。在另一实施例中,使用变化的块大小(具有等于预取窗大小的大小),且比原始请求的更大的高速缓存块被预取到高速缓存中。
在在此描述的基于闪存的高速缓存的实施例中,首先将数据预取到DRAM高速缓存存储器104,然后将数据从DRAM高速缓存存储器104发送到快闪高速缓存存储器106。在图4所示的处理流程中,节制被发送到快闪高速缓存存储器106的预取的数据的量。在图4所示的实施例中,这通过将DRAM高速缓存存储器预取窗的大小(或预取块大小)从快闪高速缓存存储器预取窗(或预取块大小)分离(decouple)来进行。
参考图4,在块402,TTF和LTF的最大值被分配给变量“maxfactor”。在一个实施例中,从图2所示的整体处理流程中调用图4中的处理流程,其中,计算了TTF和LTF。在另一实施例中,块402中的处理的部分包括计算TTF和LTF。在块404,确定该最大因子是否小于0。如果该最大因子小于0,处理继续到块406,其中,该快闪高速缓存存储器预取窗口大小被设置为DRAM快闪高速缓存存储器预取窗口大小。因此,不基于预取窗口大小来进行节制。
如果该最大因子不小于0,则处理继续到块408,其中,确定该最大因子是否小于0.95。如果该最大因子小于95,处理继续到块410,其中,该快闪高速缓存存储器预取窗口大小被设置为0。因此,不预取数据用于快闪高速缓存存储器106。如果该最大因子小于0,处理继续到块412,其中,该快闪高速缓存存储器预取窗口大小被设置为等于(DRAM高速缓存存储器预取大小)乘以(0.95-最大因子)。因此,该预取窗口大小取决于该最大因子的值而变化。
在其中基于预取窗口大小来节制快闪高速缓存存储器106的其他实施例中,使用不同最大因子阈值来将预取限制到快闪高速缓存存储器106。在其他实施例中,在块412中的计算中使用不同于0.95的百分比。在另一实施例中,图4所示的处理在块406、410和412之后循环回到块402,以重新计算TTF、LTF和最大因子用于每个数据访问。在另一实施例中,周期性地或响应于检测到可能具有对因子的影响(例如,对快闪高速缓存存储器106的特定数量的访问)的情况,重新计算TTF、LTF和最大因子。在其他实施例中,为被写入(修改)的数据相比于被读取(未修改)的数据不同地选择上述节制阈值(最大因子和闪存预取窗口大小)。
图5是根据实施例的用于基于数据使用来节制向快闪高速缓存写入数据的速率的处理流程。在一个实施例中,通过随机选择驻留在DRAM高速缓存存储器104中的原始请求的页的子集、且仅向快闪高速缓存存储器106发送原始请求的页的所选子集来进行使用节制。可以使用固定概率(例如,随机选择这些页的50%以发送到快闪高速缓存存储器106)或通过使用以下描述的动态概率来进行该选择。注意,随机地丢弃未修改的数据不会导致数据不一致性,因为数据的副本总是存在于硬盘上。对于修改的数,不能简单地丢弃数据,但在当节制逻辑指示该闪存不能接受那些修改的数据时的情况下向盘写入数据。另外,其中概率地选择页的实施例具有附加的属性,即被多次访问的页最终将进入快闪高速缓存存储器106中。
参考图5,在块502,TTF和LTF的最大值被分配给变量“maxfactor”。在一个实施例中,从图2所示的整体处理流程中调用图5中的处理流程,其中,计算了TTF和LTF。在另一实施例中,块502中的处理的部分包括计算TTF和LTF。在块504,由主机读取的页的小部分被随机选择以被发送到快闪高速缓存存储器106。在图5所示的实施例中,该小部分基于该最大因子的当前值而变化,且等于(1-最大因子)。
在其他实施例中,该小部分被设置为不同值、诸如(0.95-最大因子)的绝对值。在其他实施例中,对被写入(修改)数据选择一个小部分,且对被写入(未修改)的数据选择另一小部分。
上述实施例使用TTF和LTF的最大孩子(即,最大因子),来确定应用于快闪高速缓存存储器106的节制量。在其他实施例中,仅使用TTF,仅使用LTF,或使用另一因子来确定要应用的节制量。在其他实施例中,使用一个或多个因子和阈值的一组,用于一个节制处理(例如,数据大小节制),且使用一个或多个因子和阈值的不同组,用于另一节制处理(例如,使用节制)。这些组可以重叠或相互不包括。类似地,为读取的数据和写入的数据,可以使用因子和阈值的不同组。
技术效果和益处包括能够使用存储器系统中的高速缓存存储器的闪存器件,同时支持闪存器件的期望的有用的寿命,而不使得闪存器件变成存储器系统的瓶颈。这可能导致存储器系统吞吐量的增加。
在此使用的技术是仅用于描述具体实施例的目的,且不意图限制该发明。如在此使用的,单数形式"一个","一"和"该"意图也包括复数形式,除非上下文另外清楚地指出。还将理解,术语"包括"和/或"包含"当在该说明书中使用时指定所陈述的特征、整数、步骤、操作、元件和/或组件的出现,且不排除除了一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组的出现或添加。
在以下权利要求中的所有部件或步骤加上功能元件的等同物意图包括用于接合如所具体要求保护的其他元素进行该功能的任何结构、材料或动作。本发明的描述仅为了图示和描述的目的,但不意图穷举或限制本发明为所公开的精确的形式。在不脱离本发明的范围和精神的情况下,本领域技术人员将知道许多修改和变化。选择并描述该实施例以便最佳地说明本发明的原理和其实际的应用,以使得本领域技术人员能够理解具有适合于所构思的具体用途的各种修改的各种实施例的本发明。
另外,如本领域技术人员将知道的,本发明的方面可以被实施为系统、方法或计算机程序产品。因此,本发明的方面可以采取全部硬件实施例、全部软件实施例(包括固件、驻留软件、微代码等)、或组合通常都可以被称为"电路"、"模块"或"系统"的软件和硬件方面的实施例的形式。另外,本发明的方面可以采取具有其上实现的计算机可读程序代码的一个或多个计算机可读介质中实施的计算机程序产品的形式。
可以使用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如、但不限于电、磁、光、电磁、红外或半导体系统、装置或设备,或前述的任一适当组合。计算机可读存储介质的更具体例子(非穷举列表)将包括以下:具有一条或多条线的电连接、便携式计算机磁碟、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或前述的任一适当组合。在本文档的上下文中,计算机可读存储介质可以是可以包含或存储由或结合指令执行系统、装置或设备使用的程序的任意有形介质。
计算机可读信号介质可以包括具有在基带中或作为载波的一部分的其中实现的计算机可读程序代码的传播的数据信号。这种传播信号可以采用包括、但不限于电磁、光的各种形式的任一或其任意适当的组合。计算机可读信号介质可以是不是计算机可读存储介质且可以通信、传播或传输由或结合指令执行系统、装置或设备使用的程序的任何计算机可读介质。
可以使用任何适当的介质、包括但不限于无线、有线、光纤电缆、RF等或前述的任一适当组合来传输计算机可读介质上实现的程序代码。
可以以一个或多个编程语言的任意组合,包括诸如Java,Smalltalk,C++等的面向对象的编程语言、以及诸如“C”编程语言或类似编程语言的传统过程编程语言,来撰写用于进行本发明的方面的操作的计算机程序代码。程序代码可以全部在用户的计算机上,部分在用户的计算机上,作为单独的软件包,部分在用户的计算机上且部分在远程计算机上,或全部在远程计算机或服务器上执行。在稍后的情形下,远程计算机可以通过任何类型的网络、包括局域网(LAN)或广域网(WAN)而被连接到用户的计算机,或可以(例如,使用因特网服务提供商通过因特网)对外部计算机进行该连接。
以下参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图例示和/或方框图来描述本发明的方面。将理解,流程图例示和/或方框图的每个块和在流程图例示和/或方框图中的块的组合可以由计算机程序指令来实现。可以向通用计算机、专用计算机或其他可编程数据处理装置的处理器提供这些计算机程序指令来产生机器,以便经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或方框图的一个块或多个块中指定的功能/动作的部件。
还可以在可以指示计算机、其他可编程数据处理装置或其他设备来以特定方式运作的计算机可读介质中存储这些计算机程序指令,以便在计算机可读介质中存储的指令产生包括实现在流程图和/或方框图的一个块或多个块中指定的功能/动作的指令的制品。
该计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,来使得在计算机、其他可编程装置或其他设备上进行的一系列可操作步骤产生计算机实现的处理,以便在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或方框图的一个块或多个块中指定的功能/动作的处理。
在图中的流程图和方框图图示根据本发明的各种实施例的系统、方法和计算机程序产品的可能的实施方式的架构、功能和操作。在这点上,在流程图或方框图中的每个块可以呈现模块、片段、或代码的部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。也应该注意,在一些替换的实施方式中,在块中指示的功能可以以不是在图中标示的顺序来出现。例如,连续示出的两个块可以取决于所涉及的功能而实际上被实质上同时执行,或这些块可以有时以相反顺序来执行。将注意,方框图和/或流程图例示的每个块和在方框图和/或流程图例示中的块的组合可以由进行指定功能或动作的专用基于硬件的系统或专用硬件和计算机指令的组合来实现。
Claims (19)
1.一种方法,包括:
节制对闪存器件的访问,该闪存器件是包括闪存器件和第二存储器器件的存储器系统的一部分,所述节制通过闪存器件外部的逻辑进行,所述节制包括:
响应于闪存器件的估计的剩余寿命,计算节制因子;
确定该节制因子是否超出阈值;
响应于确定该节制因子不超出该阈值,向闪存器件写入数据;以及
响应于确定该节制因子超出该阈值,向第二存储器器件写入数据。
2.根据权利要求1的方法,其中,所述计算节制因子进一步响应于该数据的特征。
3.根据权利要求2的方法,其中,所述特征是该数据的大小。
4.根据权利要求1的方法,其中,所述计算节制因子进一步响应于所述闪存器件的估计的最大吞吐量。
5.根据权利要求1的方法,其中,所述闪存器件包括高速缓存存储器。
6.根据权利要求1的方法,其中,所述第二存储器器件是硬盘驱动器。
7.一种系统,包括:
存储器,包括闪存器件和第二存储器器件;以及
耦合于所述闪存器件的存储器控制器,所述存储器控制器被配置以:
响应于所述闪存器件的估计的剩余寿命,计算节制因子;
确定该节制因子是否超出阈值;
响应于确定该节制因子不超出该阈值,向闪存器件写入数据;以及
响应于确定该节制因子超出该阈值,向第二存储器器件写入数据。
8.根据权利要求7的系统,其中,所述计算节制因子进一步响应于该数据的特征。
9.根据权利要求7的系统,其中,所述计算节制因子进一步响应于所述闪存器件的估计的最大吞吐量。
10.根据权利要求7的系统,其中,所述闪存器件包括高速缓存存储器。
11.根据权利要求7的系统,其中,所述第二存储器器件包括硬盘驱动器。
12.根据权利要求7的系统,其中,所述特征是该数据的大小。
13.一种方法,包括:
节制对闪存器件的访问,该闪存器件是包括闪存器件和第二存储器器件的存储器系统的一部分,所述节制通过闪存器件外部的逻辑进行,所述节制包括:
响应于闪存器件的估计的剩余寿命,计算寿命节制因子;
响应于闪存器件的估计的最大吞吐量,计算吞吐量节制因子;
响应于所述寿命节制因子和所述吞吐量节制因子来计算最大节制因子;
确定该最大节制因子是否超出阈值;以及
响应于确定所述最大节制因子超出所述阈值,进行数据大小节制、预取窗口大小节制和使用节制中的至少一个;以及
响应于所述节制,向所述闪存器件和所述第二存储器器件中的至少一个写数据。
14.根据权利要求13的方法,其中,所述闪存器件包括高速缓存存储器,且所述第二存储器器件包括硬盘驱动器。
15.根据权利要求13的方法,其中,所述进行数据大小节制响应于最大节制因子和数据的大小,进行数据大小节制在数据大小超出所选大小时使得写数据指向第二存储器器件,其中,所述进行数据大小节制包括响应于最大节制因子来计算所述所选大小。
16.根据权利要求13的方法,其中,所述进行预取窗口大小节制响应于最大节制因子,且包括当向闪存器件写数据时设置预取窗口的大小。
17.根据权利要求13的方法,其中,所述进行使用节制包括进行要写到闪存器件的接收数据的小部分的随机选择,所述小部分响应于所述最大节制因子。
18.一种系统,包括:
被配置用于节制对闪存器件访问的装置,该闪存器件是包括闪存器件和第二存储器器件的存储器系统的一部分,所述节制通过闪存器件外部的逻辑进行,所述节制包括:
响应于闪存器件的估计的剩余寿命,计算寿命节制因子;
响应于闪存器件的估计的最大吞吐量,计算吞吐量节制因子;
响应于所述寿命节制因子和所述吞吐量节制因子来计算最大节制因子;
确定该最大节制因子是否超出阈值;以及
响应于确定所述最大节制因子超出所述阈值,进行数据大小节制、预取窗口大小节制和使用节制中的至少一个;以及
被配置用于响应于所述节制,向所述闪存器件和所述第二存储器器件中的至少一个写数据的装置。
19.根据权利要求18的系统,其中:
所述进行数据大小节制响应于最大节制因子和数据的大小,进行数据大小节制在数据大小超出所选大小时使得写数据指向第二存储器器件,其中,所述进行数据大小节制包括响应于最大节制因子来计算所述所选大小。
所述进行预取窗口大小节制响应于最大节制因子,且包括当向闪存器件写数据时设置预取窗口的大小;以及
所述进行使用节制包括进行要写到闪存器件的接收数据的小部分的随机选择,所述小部分响应于所述最大节制因子。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/112,894 | 2011-05-20 | ||
US13/112,894 US8656088B2 (en) | 2011-05-20 | 2011-05-20 | Optimized flash based cache memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102841868A true CN102841868A (zh) | 2012-12-26 |
CN102841868B CN102841868B (zh) | 2015-11-18 |
Family
ID=46330626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210157368.XA Expired - Fee Related CN102841868B (zh) | 2011-05-20 | 2012-05-18 | 使用优化的基于闪存的高速缓存存储器的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8656088B2 (zh) |
CN (1) | CN102841868B (zh) |
DE (1) | DE102012103869B4 (zh) |
GB (1) | GB2491004B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514958A (zh) * | 2012-12-31 | 2014-01-15 | Tcl集团股份有限公司 | 一种emmc芯片寿命检测方法 |
CN107040690A (zh) * | 2015-12-08 | 2017-08-11 | 京瓷办公信息系统株式会社 | 电子设备及数据访问控制方法 |
CN113168373A (zh) * | 2018-10-30 | 2021-07-23 | 美光科技公司 | 基于通电时间的数据重新定位 |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9098399B2 (en) | 2011-08-31 | 2015-08-04 | SMART Storage Systems, Inc. | Electronic system with storage management mechanism and method of operation thereof |
US9063844B2 (en) | 2011-09-02 | 2015-06-23 | SMART Storage Systems, Inc. | Non-volatile memory management system with time measure mechanism and method of operation thereof |
US9021319B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Non-volatile memory management system with load leveling and method of operation thereof |
US9239781B2 (en) | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US9128854B1 (en) * | 2012-09-28 | 2015-09-08 | Emc Corporation | System and method for data prediction |
US9671962B2 (en) | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
US20140189204A1 (en) * | 2012-12-28 | 2014-07-03 | Hitachi, Ltd. | Information processing apparatus and cache control method |
US9123445B2 (en) | 2013-01-22 | 2015-09-01 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9183137B2 (en) * | 2013-02-27 | 2015-11-10 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
TWI511035B (zh) * | 2013-03-08 | 2015-12-01 | Acer Inc | 動態調整快取層級方法 |
CN104063182B (zh) * | 2013-03-20 | 2017-04-12 | 宏碁股份有限公司 | 动态调整快取层级方法 |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US9543025B2 (en) | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
US10546648B2 (en) | 2013-04-12 | 2020-01-28 | Sandisk Technologies Llc | Storage control system with data management mechanism and method of operation thereof |
CN104182359B (zh) * | 2013-05-23 | 2017-11-14 | 杭州宏杉科技股份有限公司 | 一种缓存分配方法及装置 |
JP6106028B2 (ja) * | 2013-05-28 | 2017-03-29 | 株式会社日立製作所 | サーバ及びキャッシュ制御方法 |
US9367353B1 (en) | 2013-06-25 | 2016-06-14 | Sandisk Technologies Inc. | Storage control system with power throttling mechanism and method of operation thereof |
US9244519B1 (en) | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
US9146850B2 (en) | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
US9448946B2 (en) | 2013-08-07 | 2016-09-20 | Sandisk Technologies Llc | Data storage system with stale data mechanism and method of operation thereof |
US9361222B2 (en) | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
US9431113B2 (en) | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
WO2015167490A1 (en) | 2014-04-30 | 2015-11-05 | Hewlett-Packard Development Company, L.P. | Storage system bandwidth adjustment |
US9478274B1 (en) | 2014-05-28 | 2016-10-25 | Emc Corporation | Methods and apparatus for multiple memory maps and multiple page caches in tiered memory |
US9535844B1 (en) | 2014-06-30 | 2017-01-03 | EMC IP Holding Company LLC | Prioritization for cache systems |
US10254814B2 (en) | 2014-09-04 | 2019-04-09 | Hewlett Packard Enterprise Development Lp | Storage system bandwidth determination |
US10235054B1 (en) * | 2014-12-09 | 2019-03-19 | EMC IP Holding Company LLC | System and method utilizing a cache free list and first and second page caches managed as a single cache in an exclusive manner |
US10956617B2 (en) * | 2014-12-12 | 2021-03-23 | Coresecure Technologies, Llc | Systems and methods for random fill caching and prefetching for secure cache memories |
KR102288546B1 (ko) | 2015-08-31 | 2021-08-10 | 삼성전자주식회사 | 스토리지 장치 및 그 제어 방법 |
US10037172B2 (en) | 2016-02-09 | 2018-07-31 | Toshiba Memory Corporation | Memory system and controlling method |
US10228868B1 (en) | 2016-09-30 | 2019-03-12 | EMC IP Holding Company LLC | Managing lifespan of a flash memory |
US10593409B2 (en) * | 2017-10-12 | 2020-03-17 | Distech Controls Inc. | Memory device comprising flash memory and method for controlling a write speed of a bus transmitting data for storage on the flash memory |
US10855556B2 (en) * | 2018-07-25 | 2020-12-01 | Netapp, Inc. | Methods for facilitating adaptive quality of service in storage networks and devices thereof |
KR20200073592A (ko) * | 2018-12-14 | 2020-06-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
US11347428B2 (en) * | 2019-01-16 | 2022-05-31 | EMC IP Holding Company LLC | Solid state tier optimization using a content addressable caching layer |
US11182087B2 (en) * | 2019-09-27 | 2021-11-23 | Micron Technology, Inc. | Modifying write performance to prolong life of a physical memory device |
CN114557024A (zh) * | 2019-10-30 | 2022-05-27 | 高通股份有限公司 | 调制解调器吞吐量节流 |
US11768777B2 (en) * | 2020-01-22 | 2023-09-26 | EMC IP Holding Company LLC | Application aware cache management |
US11334285B2 (en) * | 2020-06-25 | 2022-05-17 | Corvil Limited | Method and system for accelerating storage of data in write-intensive computer applications |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101004935A (zh) * | 2006-01-17 | 2007-07-25 | 株式会社东芝 | 信息记录装置及其控制方法 |
CN101419842A (zh) * | 2008-11-07 | 2009-04-29 | 成都市华为赛门铁克科技有限公司 | 硬盘的损耗均衡方法、装置及系统 |
US20100077096A1 (en) * | 2008-09-22 | 2010-03-25 | Sun Microsystems, Inc. | Method and system for heuristic throttling for distributed file systems |
US20120017034A1 (en) * | 2010-07-14 | 2012-01-19 | Umesh Maheshwari | Methods and systems for reducing churn in flash-based cache |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5696917A (en) | 1994-06-03 | 1997-12-09 | Intel Corporation | Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory |
US6574707B2 (en) | 2001-05-07 | 2003-06-03 | Motorola, Inc. | Memory interface protocol using two addressing modes and method of operation |
US6990558B2 (en) | 2002-06-18 | 2006-01-24 | Ip-First, Llc | Microprocessor, apparatus and method for selective prefetch retire |
US7272710B2 (en) | 2004-09-30 | 2007-09-18 | Dell Products L.P. | Configuration aware pre-fetch switch setting by BIOS based on the number of CPUs and cache size |
US7472256B1 (en) | 2005-04-12 | 2008-12-30 | Sun Microsystems, Inc. | Software value prediction using pendency records of predicted prefetch values |
US20080065718A1 (en) | 2006-09-12 | 2008-03-13 | Emc Corporation | Configuring a cache prefetch policy that is controllable based on individual requests |
US7565494B1 (en) | 2006-09-12 | 2009-07-21 | Emc Corporation | Configuring a bounded cache prefetch policy in a computer system employing object addressable storage |
KR100847021B1 (ko) | 2006-10-26 | 2008-07-17 | 한국과학기술원 | 데이터 저장 장치, 데이터 저장 방법 및 그 방법이 기록된컴퓨터로 읽을 수 있는 기록매체 |
KR100866962B1 (ko) | 2007-03-08 | 2008-11-05 | 삼성전자주식회사 | Hdd를 하이브리드 hdd에서 노멀 hdd로 전환시키는방법 |
US7908439B2 (en) | 2007-06-25 | 2011-03-15 | International Business Machines Corporation | Method and apparatus for efficient replacement algorithm for pre-fetcher oriented data cache |
JP4829191B2 (ja) | 2007-08-30 | 2011-12-07 | 株式会社東芝 | キャッシュシステム |
US20090106498A1 (en) | 2007-10-23 | 2009-04-23 | Kevin Michael Lepak | Coherent dram prefetcher |
US20090193187A1 (en) | 2008-01-25 | 2009-07-30 | International Business Machines Corporation | Design structure for an embedded dram having multi-use refresh cycles |
KR101032359B1 (ko) | 2008-04-22 | 2011-05-03 | 영진전문대학 산학협력단 | 블렌디드러닝 종합관리시스템과 그 관리방법 |
US20100185816A1 (en) | 2009-01-21 | 2010-07-22 | Sauber William F | Multiple Cache Line Size |
US8195878B2 (en) | 2009-02-19 | 2012-06-05 | Pmc-Sierra, Inc. | Hard disk drive with attached solid state drive cache |
US8112587B2 (en) | 2009-04-30 | 2012-02-07 | International Business Machines Corporation | Shared data prefetching with memory region cache line monitoring |
US8176367B2 (en) | 2009-05-28 | 2012-05-08 | Agere Systems Inc. | Systems and methods for managing end of life in a solid state drive |
-
2011
- 2011-05-20 US US13/112,894 patent/US8656088B2/en not_active Expired - Fee Related
-
2012
- 2012-05-02 GB GB1207613.9A patent/GB2491004B/en active Active
- 2012-05-03 DE DE102012103869.4A patent/DE102012103869B4/de active Active
- 2012-05-18 CN CN201210157368.XA patent/CN102841868B/zh not_active Expired - Fee Related
- 2012-07-19 US US13/553,194 patent/US8645619B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101004935A (zh) * | 2006-01-17 | 2007-07-25 | 株式会社东芝 | 信息记录装置及其控制方法 |
US20100077096A1 (en) * | 2008-09-22 | 2010-03-25 | Sun Microsystems, Inc. | Method and system for heuristic throttling for distributed file systems |
CN101419842A (zh) * | 2008-11-07 | 2009-04-29 | 成都市华为赛门铁克科技有限公司 | 硬盘的损耗均衡方法、装置及系统 |
US20120017034A1 (en) * | 2010-07-14 | 2012-01-19 | Umesh Maheshwari | Methods and systems for reducing churn in flash-based cache |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514958A (zh) * | 2012-12-31 | 2014-01-15 | Tcl集团股份有限公司 | 一种emmc芯片寿命检测方法 |
CN103514958B (zh) * | 2012-12-31 | 2016-02-10 | Tcl集团股份有限公司 | 一种emmc芯片寿命检测方法 |
CN107040690A (zh) * | 2015-12-08 | 2017-08-11 | 京瓷办公信息系统株式会社 | 电子设备及数据访问控制方法 |
US10437488B2 (en) | 2015-12-08 | 2019-10-08 | Kyocera Document Solutions Inc. | Electronic device and non-transitory computer readable storage medium |
CN113168373A (zh) * | 2018-10-30 | 2021-07-23 | 美光科技公司 | 基于通电时间的数据重新定位 |
Also Published As
Publication number | Publication date |
---|---|
DE102012103869B4 (de) | 2014-02-13 |
GB201207613D0 (en) | 2012-06-13 |
GB2491004A (en) | 2012-11-21 |
GB2491004B (en) | 2013-04-24 |
DE102012103869A1 (de) | 2012-11-22 |
US8656088B2 (en) | 2014-02-18 |
US8645619B2 (en) | 2014-02-04 |
US20120297127A1 (en) | 2012-11-22 |
CN102841868B (zh) | 2015-11-18 |
US20120297113A1 (en) | 2012-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102841868A (zh) | 使用优化的基于闪存的高速缓存存储器的方法和系统 | |
US10209902B1 (en) | Method and apparatus for selecting a memory block for writing data, based on a predicted frequency of updating the data | |
US8200904B2 (en) | System and method for clearing data from a cache | |
US20210349659A1 (en) | Optimize Information Requests to a Memory System | |
US9569118B2 (en) | Promoting consistent response times in a data storage system having multiple data retrieval mechanisms | |
CN102623042B (zh) | 存储器系统及其操作方法 | |
US11360672B2 (en) | Performing hybrid wear leveling operations based on a sub-total write counter | |
US20140281820A1 (en) | Method and system for adaptive setting of verify levels in flash memory | |
US11385836B2 (en) | Read look ahead data size determination | |
CN113924546A (zh) | 非易失性存储器中的磨损感知块模式转换 | |
US11455242B2 (en) | Scrubber driven wear leveling in out of place media translation | |
US20210019058A1 (en) | Limiting hot-cold swap wear leveling | |
Kwon et al. | Swap-aware garbage collection for nand flash memory based embedded systems | |
US20230019910A1 (en) | Limiting hot-cold swap wear leveling | |
US11302407B2 (en) | Memory proximity disturb management | |
US11175859B1 (en) | Managing memory commands in a memory subsystem by adjusting a maximum number of low priority commands in a DRAM controller | |
US20210064265A1 (en) | Garbage collection in a memory component using an adjusted parameter | |
Yue et al. | Reducing read latency in MLC PCM | |
Ji et al. | Flash-aware Virtual Memory System for Consumer Electronics [J] | |
WO2020092435A1 (en) | Power-on-time based data relocation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151118 |