CN105556485A - 基于相邻体和基于动态热阈值的热数据识别 - Google Patents
基于相邻体和基于动态热阈值的热数据识别 Download PDFInfo
- Publication number
- CN105556485A CN105556485A CN201480019802.5A CN201480019802A CN105556485A CN 105556485 A CN105556485 A CN 105556485A CN 201480019802 A CN201480019802 A CN 201480019802A CN 105556485 A CN105556485 A CN 105556485A
- Authority
- CN
- China
- Prior art keywords
- threshold value
- dynamic thermal
- thermal threshold
- address
- temperature
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Radiation Pyrometers (AREA)
Abstract
接收地址。确定与接收到的地址有关的一个或更多个相邻体。为与接收到的地址有关的一个或更多个相邻体确定一个或更多个相邻热度。至少部分地基于相邻热度来确定用于接收到的地址的热度。
Description
相关申请的交叉引用
本申请要求于2013年4月4日提交的名称为“REDUCINGWRITEAMPLIFICATIONANDINCREASINGTHROUGHPUTINSSDS(在SSD中减小写入放大率以及增大吞吐量)”的第61/808,529号(代理人记录号LINKP134+)美国临时专利申请的优先权,该美国临时专利申请为了所有目的通过引用合并于此。
背景技术
热数据识别是将数据分类或识别为热或冷的处理或技术。热数据(一般而言)是在将来会很快无效的数据。冷数据(一般而言)是在将来会长期保持有效的数据。在一个示例应用中,例如,当接收到主机写入(例如,热数据被写入至高速缓存器,而冷数据被写入至更大但更慢的主驱动器)时或在垃圾收集(garbagecollection)(例如,块中的被垃圾收集的热数据被写入至第一新块,而在同一块中的冷数据被写入至第二新块)期间,固态储存系统利用热数据识别技术来将热数据分组在一起以及将冷数据分组在一起。虽然存在若干热数据识别技术,但是改善的热数据识别技术将是期望的。这样的改善的技术可以(例如)改善热数据识别的准确性,进而改善固态系统的效率(例如,通过减小写入放大率,写入放大率被定义为至固态储存器的写入的数量与主机写入的数量的比率)。
附图说明
在以下具体实施方式和附图中公开了本发明的各种实施例。
图1是示出基于相邻体的热数据识别处理的实施例的流程图。
图2是示出将基于相邻体的热数据识别与另一热数据识别技术相比较的示例性模拟结果的示图。
图3是示出执行基于相邻体的热数据识别器系统的系统的实施例的示图。
图4是示出确定一个或更多个相邻热度的处理的实施例的流程图。
图5是示出利用相邻热度来确定热度的处理的实施例的的流程图。
图6是示出基于动态热阈值的热数据识别处理的实施例的流程图。
图7是示出执行基于动态热阈值的热数据识别的系统实施例的示图。
图8是示出利用动态热阈值并基于相邻体来识别热数据的处理的实施例的流程图。
图9是示出执行基于相邻体和基于动态热阈值的热数据识别的系统的实施例的示图。
具体实施方式
本发明可以以许多方式实现,包括处理、设备、系统、组合物、在计算机可读储存介质上实施的计算机程序产品和/或处理器(诸如,被配置为进行储存在耦接至处理器的存储器上和/或通过耦接至处理器的存储器提供的指令的处理器)。在该说明书中,这些实施方式或本发明可采取的任何其他形式可以被称为技术。一般而言,所公开的处理的步骤的顺序可以在本发明的范围内改变。除非另有说明,否则描述为被配置来执行任务的组件(诸如处理器或存储器)可以实现为被临时配置为在给定时间执行该任务的一般组件,或实现为被制造来执行该任务的特定组件。如本文所用,术语“处理器”指被配置为处理数据(诸如计算机程序指令)的一个或更多个器件、电路和/或处理核。
以下连同示出本发明的原理的附图来提供本发明的一个或更多个实施例的详细描述。结合这样的实施例来描述本发明,但是本发明不局限于任何实施例。本发明的范围仅由权利要求来限定,本发明包含许多替代、修改和等同物。在以下描述中阐述许多特定细节以便提供本发明的透彻理解。出于示例的目的来提供这些细节,本发明可以在没有这些特定细节中的一些或全部的情况下根据权利要求来实践。出于清楚的目的,在与本发明有关的技术领域中已知的技术材料未被详细地描述,使得本发明不被不必要地模糊。
本文描述了两种热数据识别技术。首先,描述了一些示例,这些示例描述了基于相邻体的热数据识别技术的各个方面。然后,描述了利用动态热阈值的热数据识别技术的示例。最后,描述了示出两种技术被一起使用的示例。
图1是示出基于相邻体的热数据识别处理的实施例的流程图。在一些实施例中,通过固态储存系统中的储存控制器来执行所述处理。在一些这样的实施例中,储存控制器被实现为或利用半导体器件,诸如专用集成电路(ASIC)或场可编程门阵列(FPGA)。
在100处,接收地址。在一个示例中,接收到的地址是固态储存器(例如,NAND闪存)中的逻辑块地址(LBA)。在一些实施例中,在主机写入期间执行图1的处理,在步骤100处接收到的地址与主机写入有关。
在102处,对与接收到的地址有关的一个或更多个相邻体确定一个或更多个相邻热度。如本文所用,相邻热度指与相邻体(例如,在步骤100处接收到的地址的相邻体)有关的度。在一些实施例中,即时产生在步骤102处确定的相邻热度,使得相邻热度是最新的或最近的。在步骤102处可以使用各种热数据识别技术中的任意一种。例如,可以基于最近时间(recency)和/或频率(frequency)来确定与接收到的地址有关的度,然后将该度与一些热阈值作比较。
在一些实施例中,(相邻)热度是两种可能值中的一种:热或冷。例如,在步骤102处确定的相邻热度可以是两种值中的一种:热(例如,1)或冷(例如,0)。在一些实施例中,(相邻)热度是评分。例如,在步骤102处确定的相邻热度可以在从1(例如,非常冷)至5(例如,非常热)的值的范围内。
在104处,至少部分地基于相邻热度来确定用于接收到的地址的热度。在一个示例中,如果在步骤102处确定的任意一个相邻热度对应于热值,那么将用于接收到的地址的热度设置为热值。
在如何使用根据图1的处理所产生的热度的一个示例中,可以在主机写入期间由固态储存系统(例如,NAND闪存储存系统)来执行图1的处理。示例性固态储存系统包括高速缓冲存储器(cache)(例如,其具有更快的访问时间(例如,更快地读取和/或写入)),能够容忍更多错误(例如,与非高速缓冲存储部分(non-cacheportion)相比),以及能够容忍更多编程/擦除循环(例如,更强)。在该示例中,如果地址(例如,在主机写入期间被写入)被图1的处理确定为热数据,那么该数据被写入至高速缓冲存储器中。相反地,如果地址被确定为冷数据,那么该数据被写入至非高速缓冲存储部分。
在一些应用中,在垃圾收集期间利用基于相邻体的热数据识别可能是不期望的。用固态储存器作为示例,固态储存器不支持原位更新(例如,不同于磁性储存器)。例如,当旧数据被一些新数据取代时,页中的旧位置或地址(例如,旧数据的旧位置或地址)被标记为无效,而新数据被写入至固态储存器的另一页中的新位置或地址。随着时间的过去,在块中的无效的位置的数量将增多。为了改造该块,其余的有效位置被写入至另一块,因此释放固态储存器中的整个块而挪作他用。该改造处理被称为垃圾收集。被垃圾收集的块可能含有冷地址。照此,在一些固态储存系统的垃圾收集期间,检查相邻体可能导致过多误报。
与一些其他热数据识别技术相比,基于相邻体的热数据识别的优点在于,当(例如,固态)储存器被首先写入时,其可以更好地检测热数据。例如,一些其他热数据识别技术通过将位置的访问计数(例如,过去已经被访问的特定LBA的次数)与热阈值作比较来识别热数据。如果访问计数大于热阈值,那么位置被认定为热。当位置被首先访问时,该位置的访问计数是0,且在该位置被认为是热之前,需要几个访问以达到热阈值。因此,对于早先的为数不多的访问,位置将被错误地识别为冷。相反地,基于相邻体的热数据识别将更快地将数据识别为热,因为:(至少在一些实施例中)如果在考虑中的至少一个相邻体具有已经达到热阈值的访问计数,那么给定位置将被认定为热。图2是示出将基于相邻体的热数据识别与另一热数据识别技术作比较的示例性模拟结果的示图。如图表的区域200中所示,当访问计数低于2*104时,基于相邻体的热数据识别倾向于具有更好的正确识别百分比。
图3是示出执行基于相邻体的热数据识别器系统的系统的实施例的示图。在各种实施例中,基于相邻体的热数据识别器300可以是储存控制器(例如,储存控制器从固态储存介质读取和/或写入至固态储存介质)的一部分,并且/或者可以利用ASIC或FPGA实现。在一些实施例中,仅在主机写入期间使用基于相邻体的热数据识别器300,而在垃圾收集期间不使用基于相邻体的热数据识别器300。例如,传送至基于相邻体的热数据识别器300的LBA可以是正在被写入(例如,作为主机写入的一部分)的LBA。自然地,如果需要,那么在其他实施例中,可以在垃圾收集期间使用基于相邻体的热数据识别技术。
相邻体发生器310接收LBA,并且从设置304获取要考虑的相邻体的范围。在一个示例中,以寄存器来实现设置304,且被考虑的相邻体的数量是可编程的(例如,使得更多/更少的相邻体被考虑)。基于要考虑的相邻体的范围,相邻体发生器302产生被传送至热数据识别器306的相邻体的一个或更多个LBA。
热数据识别器306产生相邻体的一个或更多个热数据度。在该特定示例中,热数据识别器306利用独立于要被写入的LBA的相邻体的热数据识别器技术(即,不考虑相邻体的热度)。热数据识别器306可以采用任何适当的技术。
将相邻体的热度从热数据识别器306传送至组合器312。如上所述,热度可以是热值/冷值或在范围(例如,1-5的范围)内的一些评分。在该特定示例中,如果被评估的至少一个相邻体是热数据,那么通过组合器312(例如,组合器312是OR)输出具有热值的热度。如果所有相邻体具有冷数据,那么通过基于相邻体的热数据识别器300输出与冷值对应的热度。组合器312可以利用任何组合方式。
在一些实施例(例如,与该图和以下描述的其他图有关)中,实时更新用于产生热数据度的信息。例如,由基于相邻体的热数据识别器300产生的热数据度可以直接或间接地影响用于该LBA或另一LBA的热数据度。在一个示例中,产生的热度可以影响哪个块被垃圾收集,进而影响受影响块的编程/擦除计数,进而影响随后的热度。或者,如果接收到的LBA与主机写入有关,那么主机写入可以引起LBA的编程/擦除计数增加,进而影响随后的热度。
图4是示出用于确定一个或更多个相邻热度的处理的实施例的流程图。在一些实施例中,在图1的步骤102处使用该处理。在所示示例中,示出了由图3的基于相邻体的热数据识别器300执行的处理。
在400处,获取考虑的相邻体的范围。例如,假设n=3。在402处,基于所述范围确定在接收到的地址的第一侧上的一个或更多个相邻地址。在一个示例中,如果接收到的地址是ADDR且n=3,那么步骤402产生地址(ADDR-3)、(ADDR-2)和(ADDR-1)。在404处,基于所述范围确定接收到的地址的第二侧上的一个或更多个相邻地址。继续上面的示例,步骤404产生地址(ADDR+1)、(ADDR+2)和(ADDR+3)。在图3中,由控制器302执行步骤402和步骤404。
在406处,对于第一侧上的相邻地址,确定第一侧上的一个或更多个相邻热度。在一个示例中,确定以下相邻热度:(ADDR-3)=冷,(ADDR-2)=冷,和(ADDR-1)=冷。在408处,对于第二侧上的相邻地址,确定第二侧上的一个或更多个相邻热度。例如,(ADDR+1)=冷,(ADDR+2)=冷,和(ADDR+3)=热。
图5是示出利用相邻热度来确定热度的处理的实施例的流程图。在一些实施例中,在图1的步骤104处利用所述处理。在所示示例中,示出了由图3的基于相邻体的热数据识别器300执行的处理。在500处,确定是否至少一个相邻热度对应于热值。如果是,那么在502处将用于接收到的地址的热度设置为热值。如果否,那么在504处将用于接收到的地址的热度设置为冷值。
如果根据图5来处理以上示例,那么因为相邻体(LBA+3)具有与热值相对应的相邻热度,所以用于接收到的地址的热度将被设置为热值。
以下附图描述利用动态热阈值的热数据识别技术的一些示例。在一些实施例中,在主机写入期间利用所述技术。在一些实施例中,在垃圾收集期间利用所述技术。
图6是示出基于动态热阈值的热数据识别处理的实施例的流程图。在一些实施例中,由固态储存系统中的储存控制器来执行所述处理。在一些这样的实施例中,储存控制器实现为或利用半导体器件,诸如专用集成电路(ASIC)或场可编程门阵列(FPGA)。
在600处,接收地址。例如,地址可以是固态储存系统的块之内的LBA。在一些实施例中,接收到的地址与主机写入有关。在一些实施例中,接收到的地址与垃圾收集有关(例如,其是还包括无效数据的块之内的有效数据的地址)。
在602处,确定动态热阈值。不同于静态热阈值,动态热阈值随时间改变,例如,随着固态储存系统的状态的改变而改变。在一些实施例中,基于一个或更多个以下内容来确定动态热阈值:目标块的平均访问计数(Cavg)、与固态储存器有关的高速缓冲存储器的充满度(fullness)的测量(/)、或与固态储存器有关的耗损均衡(wearleveling)的一些测量(例如,耗损均衡差、整个固态储存器的耗损均衡、固态储存器的特定部分的耗损均衡等)。
在一些实施例中,对整个固态储存驱动器(其可以包括多固态裸片)确定单个动态热阈值。在一些应用中,储存控制器不能控制逻辑块地址被储存在哪里。例如,逻辑块地址可以随着每次垃圾收集从裸片移动至裸片。
在604处,确定将与动态热阈值作比较的与接收到的地址相关的度。在步骤604处可以利用任何适当的技术来确定所述度。在一些实施例中,在步骤604处确定的度是基于最近时间(recency)(例如,利用与最后写入至该地址有关的时间戳来追踪)和频率(例如,利用访问计数来追踪)。例如,被频繁地且最近写入的地址被认为是热,但是,频繁地但很久前被写入的地址或者最近被写入但不经常被写入的地址被认为是冷。相似地,既不被频繁地写入也不是最近写入的地址也将被认为是冷。
在606处,至少部分地基于与接收到的地址有关的度和动态热阈值来确定用于接收到的地址的热度。在步骤606处利用动态热阈值能够使系统产生适应不同使用模式的热度。例如,不同的用户可以具有不同的使用模式,即使是相同的用户随时间也可以有不同的使用模式。除用户模式以外或作为用户模式的替代方案,动态热阈值能够使系统适应固态储存器自身的条件(该条件随时间而改变)。为此,利用动态热阈值确定的热度是所期望的。
图7是示出执行基于动态热阈值的热数据识别的系统的实施例的示图。在所示示例中,将LBA输入至基于动态热阈值的热数据识别器700。例如,LBA可以是与主机写入相关的地址或与垃圾收集相关的地址(例如,其是被垃圾收集的块之内的地址)。
在该示例中,基于访问计数的热数据识别器706(例如,内部地)产生用于接收到的LBA的访问计数。基于访问计数的热数据识别器706可以利用任何适当的技术来追踪和/或确定给定LBA的访问计数。访问计数通过基于访问计数的热数据识别器706与由动态热阈值发生器704(下面进行进一步详细描述)产生的动态热阈值进行比较。在该示例中,如果访问计数小于动态热阈值,那么为接收到的LAB输出具有冷值的热度。如果访问计数大于动态热阈值,那么为接收到的LBA输出具有热值的热度。如上所述,通过基于动态热阈值的热数据识别器700输出的热度可以是热值/冷值或跨过一定值的范围(例如,1-5的范围)的值。
动态热阈值发生器704利用输入流量(incomingtraffic)(以图7中的LBA的形式)来调节动态热阈值。这是因为可以以截然不同的方式来使用两种相同的固态储存系统,以及根据使用,将产生不同的热阈值。动态热阈值发生器704也使用很多设置702。例如,所述设置可以指定:用于产生动态热阈值的常数值和/或在产生动态热阈值中使用什么系统或状态信息。在一些实施例中,动态热阈值发生器704所用的设置始于系统默认值或初始值,并且随着固态储存系统的实际使用模式变得更明显而随时间调节。
在一些实施例中,动态热阈值发生器704利用Cavg产生动态热阈值,Cavg是目标块(例如,正在被垃圾收集的块或在主机写入期间正在被写入的块)中的LBA的平均访问计数。例如,动态热阈值(T)可以是T(Cavg)=1.2Cavg。通常,随着高速缓冲存储器变满(即,随着/增大),动态热阈值增大。这具有以下效果,即,使得更多数据被分类为冷数据并且被储存在固态储存器的与高速缓冲存储器相反的非高速缓冲存储部分中。
在一些实施例中,动态热阈值发生器704利用/来产生动态热阈值,即,T(f),/是与固态储存器有关的高速缓冲存储器的充满程度的测量。随着与其他固态储存器相比,高速缓冲存储器保持更多耗损(即,随着wdiff增大),动态热阈值增大。在这种情况下,由于高速缓冲存储器比其余的固态储存器耗损更快,因此期望在固态储存器的非高速缓冲存储部分中储存更多数据。
在一些实施例中,动态热阈值发生器704利用wdiff产生动态热阈值,wdiff是高速缓冲存储器的耗损均衡(wcache)与固态储存器的非高速缓冲存储部分的耗损均衡(w)之差。换句话说,T(wdiff)。这使动态热阈值利用平均访问计数(Cavg)来适应于不同的使用模式。例如,随着平均访问计数增大,动态热阈值增大。例如,对于经历(例如,完全)不同使用模式的固态储存系统,具有相同的热阈值是没有意义的。
为了示出示例性值,Cavg可以是一些非负实数,/可以是0与1之间的数(例如,其中,0意味着高速缓冲存储器是空的,而1意味着高速缓冲存储器是满的),以及wdiff、wcache和w可以是0与1之间的数(例如,其中,1表示编程/擦除循环的最大数的100%,而0表示编程/擦除循环的最大数的0%)。
除上述变量以外,影响动态热阈值发生的任意数量的常数和/或配置可以从设置702获得。例如,可以利用下式计算动态热阈值(T):
其中,ki、k2、k3、fk和w3/4是如期望地设置并从设置702获得的常数。
基于访问计数的热数据识别器706仅是示例性的而不意在进行限制。利用阈值的任何适当的热数据识别技术可以结合本文所述的动态热阈值技术来使用。
在一些实施例中,结合基于相邻体的热数据识别来使用动态热阈值。以下附图示出了这样的一些示例。
图8是示出利用动态热阈值并基于相邻体来识别热数据的处理的实施例的流程图。如上所述,在各种实施例中,接收到的地址可以与主机写入或垃圾收集有关。
在802处,确定用于与接收到的地址有关的一个或更多个相邻体的一个或更多个相邻热度,包括:(1)确定动态热阈值;以及(2)对于一个或更多个相邻体中的每个:(a)确定与给定相邻体有关的度来与动态热阈值作比较,以及(b)至少部分地基于与给定相邻体有关的度和动态热阈值来确定用于给定相邻体的热度。换句话说,确定一个或更多个相邻热度,其中,利用随时间变化(例如,随固态储存系统的状态和/或使用变化)的动态热度来确定每个相邻热度。
在804处,至少部分地基于相邻热度来确定用于接收到的地址的热度。例如,如果至少一个相邻热度对应于热值,那么将用于接收到的地址的热度设置为热值。
图9是示出执行基于相邻体和基于动态热阈值的热数据识别的系统的实施例的示图。在所示示例中,通过基于相邻体和基于动态热阈值的热数据识别器900接收LBA。接收到的地址被传送至基于相邻体和基于动态热阈值的热数据识别器900中的动态热阈值发生器904和相邻体发生器910。
利用来自设置902的很多参数或设置以及接收到的LBA,动态热阈值发生器904产生被传送至基于访问计数的热数据识别器906的动态热阈值。相邻体发生器908利用接收到的LBA以及来自设置902的很多设置或参数来为指定LBA的一个或更多个相邻体产生一个或更多个LBA。相邻体的LBA被从相邻体发生器910传送至基于访问计数的热数据识别器906。
基于访问计数的热数据识别器906(为每个相邻体)产生度以与动态热阈值作比较,以及基于比较将相邻体的一个或更多个相邻热度发送至比较器912。在一些实施例中,如果至少一个相邻热度对应于热值,那么将输出的LBA的热度设置为热值(例如,比较器912是OR)。
下面表格示出了在通过本文描述的各种热数据识别技术的写入放大率来测量时的性能改善。写入放大率被定义为至固态储存器的(例如,实际)写入总数与主机写入(例如,其触发实际写入)数的比率。例如,如果主机写入一个LBA,且这样做时引起垃圾收集处理从而进行除主机写入以外的一个额外或附加写入,那么写入放大率是2。写入放大率是有用的参数,因为减小写入放大率是固态储存管理的重要方面。大的写入放大率值增大了执行主机写入的时间量,这是不期望的。此外,由于固态储存器仅可以维持有限数量的写入循环,因此减小写入放大率可以延长固态储存系统的寿命。
在下面的表格中,基于相邻体的热数据识别技术(即,最后两行)利用值n=3(即,考虑在目标地址的LBA的每侧处的三个相邻体)。对于动态热阈值技术(即,第三行和最后一行),所用的阈值函数为T(Cavg)=1.2Cavg。
热数据识别技术 | 写入放大率 |
无 | 6.1 |
一些其他热数据识别技术 | 5.01 |
基于动态热阈值 | 4.74 |
基于相邻体 | 4.65 |
基于动态热阈值和基于相邻体二者 | 4.55 |
表1:用于各种热数据识别技术的写入放大率值的比较
虽然已经出于清楚理解的目的详细地描述了前述实施例,但是本发明不限于提供的细节。存在很多实现本发明的可替代方式。公开的实施例是说明性的而非限制性的。
Claims (23)
1.一种系统,包括:
相邻体发生器,被配置为:接收地址,以及确定与接收到的地址有关的一个或更多个相邻体;
热数据识别器,被配置为确定用于与接收到的地址有关的所述一个或更多个相邻体的一个或更多个相邻热度;以及
比较器,被配置为至少部分地基于相邻热度来确定用于接收到的地址的热度。
2.如权利要求1所述的系统,其中,接收到的地址与主机写入有关。
3.如权利要求1所述的系统,其中,接收到的地址与垃圾收集有关。
4.如权利要求1所述的系统,其中,热数据识别器被配置为确定相邻热度,包括:
获取要考虑的相邻体的范围;
基于所述范围确定在接收到的地址的第一侧上的一个或更多个相邻地址;
基于所述范围确定在接收到的地址的第二侧上的一个或更多个相邻地址;
对于第一侧上的相邻地址,确定在第一侧上的一个或更多个相邻热度;以及
对于第二侧上的相邻地址,确定在第二侧上的一个或更多个相邻热度。
5.如权利要求1所述的系统,其中,比较器被配置为确定用于接收到的地址的热度,包括:
确定至少一个相邻热度是否对应于热值;
如果确定至少一个相邻热度对应于热值,那么将用于接收到的地址的热度设置为热值;以及
如果确定至少一个相邻热度不对应于热值,那么将用于接收到的地址的热度设置为冷值。
6.如权利要求1所述的系统,其中,热数据识别器被配置为确定相邻热度,包括:
确定动态热阈值;以及
对于所述一个或更多个相邻体中的每个:
确定与给定相邻体有关的度来与动态热阈值作比较,以及
至少部分地基于与给定相邻体有关的度和动态热阈值来确定用于给定相邻体的热度。
7.如权利要求6所述的系统,其中,热数据识别器被配置为确定动态热阈值,包括:利用目标块中的逻辑块地址LBA的平均访问计数来确定动态热阈值。
8.如权利要求6所述的系统,其中,热数据识别器被配置为确定动态热阈值,包括:利用与固态储存器有关的高速缓冲存储器的充满度的测量来确定动态热阈值。
9.如权利要求6所述的系统,其中,热数据识别器被配置为确定动态热阈值,包括:利用高速缓冲存储器的耗损均衡与固态储存器的非高速缓冲存储部分的耗损均衡之差来确定动态热阈值。
10.一种系统,包括:
动态热阈值发生器,被配置为确定动态热阈值;以及
热数据识别器,被配置为:
接收地址;
确定与接收到的地址有关的度来与动态热阈值做比较;以及
至少部分地基于与接收到的地址有关的度和动态热阈值来确定用于接收到的地址的热度。
11.如权利要求10所述的系统,其中,接收地址与主机写入有关。
12.如权利要求10所述的系统,其中,接收地址与垃圾收集有关。
13.如权利要求10所述的系统,其中,热数据识别器被配置为确定动态热阈值,包括:利用目标块中的逻辑块地址LBA的平均访问计数来确定动态热阈值。
14.如权利要求10所述的系统,其中,热数据识别器被配置为确定动态热阈值,包括:利用与固态储存器有关的高速缓冲存储器的充满度的测量来确定动态热阈值。
15.如权利要求10所述的系统,其中,热数据识别器被配置为确定动态热阈值,包括:利用高速缓冲存储器的耗损均衡与固态储存器的非高速缓冲存储部分的耗损均衡之差来确定动态热阈值。
16.一种方法,包括:
接收地址;
确定与接收到的地址有关的一个或更多个相邻体;
利用处理器来确定用于与接收到的地址有关的所述一个或更多个相邻体的一个或更多个相邻热度;以及
至少部分地基于相邻热度来确定用于接收到的地址的热度。
17.如权利要求16所述的方法,其中,利用处理器来确定相邻热度的步骤包括:
获取要考虑的相邻体的范围;
基于所述范围确定在接收到的地址的第一侧上的一个或更多个相邻地址;
基于所述范围确定在接收到的地址的第二侧上的一个或更多个相邻地址;
对于第一侧上的相邻地址,确定在第一侧上的一个或更多个相邻热度;以及
对于第二侧上的相邻地址,确定在第二侧上的一个或更多个相邻热度。
18.如权利要求16所述的方法,其中,确定用于接收到的地址的热度的步骤包括:
确定至少一个相邻热度是否对应于热值;
如果确定至少一个相邻热度对应于热值,那么将用于接收到的地址的热度设置为热值;以及
如果确定至少一个相邻热度不对应于热值,那么将用于接收到的地址的热度设置为冷值。
19.如权利要求16所述的方法,其中,利用处理器来确定相邻热度的步骤包括:
确定动态热阈值;以及
对于所述一个或更多个相邻体中的每个:
确定与给定相邻体有关的度来与动态热阈值作比较;以及
至少部分地基于与给定相邻体有关的度和动态热阈值来确定用于给定相邻体的热度。
20.一种方法,包括:
利用处理器来确定动态热阈值;以及
接收地址;
确定与接收到的地址有关的度来与动态热阈值做比较;以及
至少部分地基于与接收到的地址有关的度和动态热阈值来确定用于接收到的地址的热度。
21.如权利要求20所述的方法,其中,利用处理器来确定动态热阈值的步骤包括:利用目标块中的逻辑块地址LBA的平均访问计数来确定动态热阈值。
22.如权利要求20所述的系统,其中,利用处理器来确定动态热阈值的步骤包括:利用与固态储存器有关的高速缓冲存储器的充满度的测量来确定动态热阈值。
23.如权利要求20所述的系统,其中,利用处理器来确定动态热阈值的步骤包括:利用高速缓冲存储器的耗损均衡与固态储存器的非高速缓冲存储部分的耗损均衡之差来确定动态热阈值。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361808529P | 2013-04-04 | 2013-04-04 | |
US61/808,529 | 2013-04-04 | ||
US14/169,877 US9342389B2 (en) | 2013-04-04 | 2014-01-31 | Neighbor based and dynamic hot threshold based hot data identification |
US14/169,877 | 2014-01-31 | ||
PCT/US2014/014506 WO2014163743A1 (en) | 2013-04-04 | 2014-02-03 | Neighbor based and dynamic hot threshold based hot data identification |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105556485A true CN105556485A (zh) | 2016-05-04 |
CN105556485B CN105556485B (zh) | 2018-12-07 |
Family
ID=51655335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480019802.5A Active CN105556485B (zh) | 2013-04-04 | 2014-02-03 | 基于相邻体和基于动态热阈值的热数据识别 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9342389B2 (zh) |
CN (1) | CN105556485B (zh) |
WO (1) | WO2014163743A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874213A (zh) * | 2017-01-12 | 2017-06-20 | 杭州电子科技大学 | 一种融合多种机器学习算法的固态硬盘热数据识别方法 |
CN106897026A (zh) * | 2016-10-07 | 2017-06-27 | 威盛电子股份有限公司 | 非易失性存储器装置及其地址分类方法 |
TWI652570B (zh) | 2016-10-07 | 2019-03-01 | 威盛電子股份有限公司 | 非依電性記憶體裝置及其位址分類方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9612964B2 (en) * | 2014-07-08 | 2017-04-04 | International Business Machines Corporation | Multi-tier file storage management using file access and cache profile information |
US20170139826A1 (en) * | 2015-11-17 | 2017-05-18 | Kabushiki Kaisha Toshiba | Memory system, memory control device, and memory control method |
US10446197B2 (en) | 2017-08-31 | 2019-10-15 | Micron Technology, Inc. | Optimized scan interval |
US10754580B2 (en) | 2017-10-23 | 2020-08-25 | Micron Technology, Inc. | Virtual partition management in a memory device |
US11455245B2 (en) | 2017-12-11 | 2022-09-27 | Micron Technology, Inc. | Scheme to improve efficiency of garbage collection in cached flash translation layer |
KR102504368B1 (ko) * | 2017-12-22 | 2023-02-24 | 에스케이하이닉스 주식회사 | 비휘발성 메모리의 웨어 레벨링 동작을 관리하는 반도체 장치 |
US10365854B1 (en) | 2018-03-19 | 2019-07-30 | Micron Technology, Inc. | Tracking data temperatures of logical block addresses |
US11055002B2 (en) * | 2018-06-11 | 2021-07-06 | Western Digital Technologies, Inc. | Placement of host data based on data characteristics |
US10884627B2 (en) | 2018-09-26 | 2021-01-05 | International Business Machines Corporation | Compacting data in a dispersed storage network |
US11080205B2 (en) | 2019-08-29 | 2021-08-03 | Micron Technology, Inc. | Classifying access frequency of a memory sub-system component |
CN111881346B (zh) * | 2020-07-15 | 2022-06-17 | 北京浪潮数据技术有限公司 | 一种热点数据的识别方法、系统及相关装置 |
US11561907B2 (en) * | 2020-08-18 | 2023-01-24 | Micron Technology, Inc. | Access to data stored in quarantined memory media |
US11442654B2 (en) * | 2020-10-15 | 2022-09-13 | Microsoft Technology Licensing, Llc | Managing and ranking memory resources |
CN112948398B (zh) * | 2021-04-29 | 2023-02-24 | 电子科技大学 | 一种面向冷热数据的分级存储系统及方法 |
US11829636B2 (en) * | 2021-09-01 | 2023-11-28 | Micron Technology, Inc. | Cold data identification |
KR20230060569A (ko) * | 2021-10-27 | 2023-05-08 | 삼성전자주식회사 | 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321240B1 (en) | 1999-03-15 | 2001-11-20 | Trishul M. Chilimbi | Data structure partitioning with garbage collection to optimize cache utilization |
US7769974B2 (en) * | 2004-09-10 | 2010-08-03 | Microsoft Corporation | Increasing data locality of recently accessed resources |
US9153337B2 (en) * | 2006-12-11 | 2015-10-06 | Marvell World Trade Ltd. | Fatigue management system and method for hybrid nonvolatile solid state memory system |
US7991942B2 (en) | 2007-05-09 | 2011-08-02 | Stmicroelectronics S.R.L. | Memory block compaction method, circuit, and system in storage devices based on flash memories |
TWI397071B (zh) * | 2008-12-31 | 2013-05-21 | A Data Technology Co Ltd | 記憶體儲存裝置及其控制方法 |
US8296506B2 (en) | 2009-11-09 | 2012-10-23 | Lite-On It Corporation | Method for managing a non-violate memory and computer readable medium thereof |
US8458417B2 (en) | 2010-03-10 | 2013-06-04 | Seagate Technology Llc | Garbage collection in a storage device |
US9183134B2 (en) | 2010-04-22 | 2015-11-10 | Seagate Technology Llc | Data segregation in a storage device |
US9176864B2 (en) | 2011-05-17 | 2015-11-03 | SanDisk Technologies, Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
US9141528B2 (en) * | 2011-05-17 | 2015-09-22 | Sandisk Technologies Inc. | Tracking and handling of super-hot data in non-volatile memory systems |
US9594685B2 (en) * | 2012-07-06 | 2017-03-14 | Seagate Technology Llc | Criteria for selection of data for a secondary cache |
US9529724B2 (en) * | 2012-07-06 | 2016-12-27 | Seagate Technology Llc | Layered architecture for hybrid controller |
-
2014
- 2014-01-31 US US14/169,877 patent/US9342389B2/en active Active
- 2014-02-03 WO PCT/US2014/014506 patent/WO2014163743A1/en active Application Filing
- 2014-02-03 CN CN201480019802.5A patent/CN105556485B/zh active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897026A (zh) * | 2016-10-07 | 2017-06-27 | 威盛电子股份有限公司 | 非易失性存储器装置及其地址分类方法 |
TWI652570B (zh) | 2016-10-07 | 2019-03-01 | 威盛電子股份有限公司 | 非依電性記憶體裝置及其位址分類方法 |
CN106897026B (zh) * | 2016-10-07 | 2020-02-07 | 威盛电子股份有限公司 | 非易失性存储器装置及其地址分类方法 |
US10733107B2 (en) | 2016-10-07 | 2020-08-04 | Via Technologies, Inc. | Non-volatile memory apparatus and address classification method thereof |
CN106874213A (zh) * | 2017-01-12 | 2017-06-20 | 杭州电子科技大学 | 一种融合多种机器学习算法的固态硬盘热数据识别方法 |
CN106874213B (zh) * | 2017-01-12 | 2020-03-20 | 杭州电子科技大学 | 一种融合多种机器学习算法的固态硬盘热数据识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105556485B (zh) | 2018-12-07 |
US20140304480A1 (en) | 2014-10-09 |
WO2014163743A1 (en) | 2014-10-09 |
US9342389B2 (en) | 2016-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105556485A (zh) | 基于相邻体和基于动态热阈值的热数据识别 | |
CN107391398B (zh) | 一种闪存缓存区的管理方法及系统 | |
CN103608782B (zh) | Lsb页面和msb页面中的选择性数据存储 | |
US11093385B2 (en) | Memory device with dynamic cache management | |
CN113015965B (zh) | 基于小计写入计数器执行混合损耗均衡操作 | |
US20110010489A1 (en) | Logical block management method for a flash memory and control circuit storage system using the same | |
CN104126178A (zh) | Slc-mlc损耗平衡 | |
US9274943B2 (en) | Storage unit management method, memory controller and memory storage device using the same | |
DE112020004958T5 (de) | Dynamische zonenaktivgrenze für offenen zns | |
TWI707232B (zh) | 快閃記憶體控制器及相關的存取方法及電子裝置 | |
US10126970B2 (en) | Paired metablocks in non-volatile storage device | |
CN103984736A (zh) | 一种高效的nand闪存数据库系统的缓存管理方法 | |
US20210342094A1 (en) | Read Performance of Memory Devices | |
US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
KR102681181B1 (ko) | 메모리 시스템 및 그것의 동작방법 | |
CN108733318A (zh) | 一种tlc nand flash固态硬盘的写入方法 | |
TWI692688B (zh) | 快閃記憶體控制器及相關電子裝置 | |
Yang et al. | Ars: Reducing f2fs fragmentation for smartphones using decision trees | |
Hong et al. | Improving SSD performance using adaptive restricted-copyback operations | |
CN101458659A (zh) | 闪存储存系统及其方法 | |
CN112181274A (zh) | 提升存储设备性能稳定性的大块的组织方法及其存储设备 | |
EP4231131A1 (en) | Data storage method and device | |
US11705192B2 (en) | Managing read level voltage offsets for low threshold voltage offset bin placements | |
JPWO2015118623A1 (ja) | 情報処理装置 | |
CN112181276B (zh) | 提升存储设备服务质量的大块构造、分配方法及其存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |