CN101578587A - 延迟缩减存储器寿命的操作 - Google Patents
延迟缩减存储器寿命的操作 Download PDFInfo
- Publication number
- CN101578587A CN101578587A CNA2007800431763A CN200780043176A CN101578587A CN 101578587 A CN101578587 A CN 101578587A CN A2007800431763 A CNA2007800431763 A CN A2007800431763A CN 200780043176 A CN200780043176 A CN 200780043176A CN 101578587 A CN101578587 A CN 101578587A
- Authority
- CN
- China
- Prior art keywords
- storer
- life
- span
- different information
- data
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
Abstract
本发明提供一种用于延迟缩减存储器寿命的操作的系统、方法和计算机程序产品。在使用中,识别至少一个与存储器寿命相关联的方面。为此,基于所述方面而延迟至少一个缩减所述存储器的所述寿命的操作。
Description
技术领域
本发明的实施例涉及存储器,且更明确地说,涉及具有有限寿命的存储器。
背景技术
存储器是现代企业计算系统的性能的最具限制性的方面之一。存储器的一个限制性方面在于许多类型的存储器展现出有限的寿命。举例来说,每次对例如快闪存储器的非易失性存储器进行擦除和再写入时,所述存储器的寿命就缩减(虽然是较小的量)。随着时间的过去以及数千次的擦除和再写入,此快闪存储器可能变得越来越不可靠。
因此,取决于使用类型(例如,轻量型对繁重型),快闪存储器的寿命可能变化很大。这在各个方面都可能是有问题的。举例来说,快闪存储器制造商常被预期提供指定时间量的有限保修。虽然此保修对于快闪存储器的轻量型到典型使用来说可能是足够的,但在繁重型使用的情况下(例如,在企业应用等中),可能需要退回且更换所述快闪存储器。
此些情形可显著影响快闪存储器制造商的利润。明确地说,繁重型使用客户的连续更换被保快闪存储器的需要可相当多地减少从向轻量型到典型使用客户销售快闪存储器所得到的利润。因此需要解决与现有技术相关联的这些和/或其它问题。
发明内容
本发明提供一种系统、方法和计算机程序产品,其用于延迟缩减存储器寿命的操作。在使用中,识别至少一个与存储器寿命相关联的方面。为此,基于所述方面而延迟至少一个缩减所述存储器的所述寿命的操作。
附图说明
图1展示根据一个实施例的用于延迟缩减存储器寿命的操作的方法。
图2展示根据另一实施例的用于延迟缩减存储器寿命的操作的技术。
图3展示根据本发明又一实施例的用于延迟缩减存储器寿命的操作的基于时间间隔的技术。
图4展示根据本发明又一实施例的用于延迟缩减存储器寿命的操作的基于积分的技术。
图5说明根据本发明另一实施例的用于在所需寿命持续时间超过估计寿命持续时间的情况下延迟缩减存储器寿命的操作的系统。
图6说明根据另一实施例的用于在所需寿命持续时间超过估计寿命持续时间的情况下延迟缩减存储器寿命的操作的方法。
图7展示根据另一实施例的用于计量存储器寿命的图形用户界面。
图8展示根据另一实施例的用于利用差异信息来减少存储器中的写入操作的方法。
图9说明根据另一实施例的用于减少存储器中的写入操作的系统。
图10说明根据一个实施例的用于使用差异信息来对存储器进行读取的方法。
图11说明根据一个实施例的用于使用差异信息来对存储器进行写入的方法。
图12说明使用基于处理器的系统的实施例。
具体实施方式
根据将描述的不同实施例,可为延长存储器寿命的目的而控制缩减此寿命的各种操作。在本描述的上下文中,此些操作可涉及写入操作、擦除操作、编程操作和/或能够缩减前面所提及的寿命的任何其它操作。
图1展示根据一个实施例的用于延迟缩减存储器寿命的操作的方法100。如图所示,识别与存储器寿命相关联的至少一个方面。参见操作102。
在本描述的上下文中,存储器的寿命可包含存储器在此期间展现任何所需程度的可用性的任何持续时间。举例来说,在各种实施例中,此寿命可包含(但无疑不限于)所需寿命、实际寿命、估计寿命等。此外,可用性程度可涉及任何与可用性有关的参数,例如仍可操作的组件(例如,块、单元等)的百分比、存储器或其组件的可靠性和/或就此而论的任何其它参数。
同样在本描述的上下文中,与在操作102中识别的寿命相关联的方面在各种实施例中可包含时间周期、缩减存储器寿命的操作的速率、缩减存储器寿命的操作的总许可数目、寿命持续时间等。而且,在一个说明性实施例中,在给定前面所提及的操作的总许可数目和选定或所需寿命的情况下,可直接计算以每时间周期的操作数目为单位的操作的最大平均速率。当然,仅出于说明性目的而陈述此些示范性方面,因为出于很快将变得明了的原因,完全可识别寿命的任何其它方面。
为此,基于所述方面而延迟至少一个缩减存储器寿命的操作。参见操作104。此延迟因此可以操作102中识别的存储器寿命的方面的至少一部分功能的任何方式来执行。在本描述的上下文中,将操作的前面所提及的延迟视为包含其中仅操作的一部分被延迟的情形。举例来说,在一操作可包含多个组成部分的情形中,此延迟可应用于此操作的一个或一个以上(或所有)部分。
在一个实施例中,可通过延迟起始操作的命令来延迟所述操作。举例来说,响应于写入或擦除命令的识别,可延迟此命令的执行。当然,在其它实施例中,可简单地延迟操作本身。通过此设计,原本将缩减存储器寿命的一个或一个以上操作的此延迟导致此缩减至少部分地减小。
现在将陈述关于可按照用户需要实施或不实施上述框架所借助的各种任选结构和特征的更多说明性信息。举例来说,可使用无数种不同的技术以多种不同方式来管理延迟,现在将陈述所述技术的实例。应重点注意,以下信息是出于说明性目的而陈述的,且不应被解释为以任何方式具有限制性。以下特征中的任一者可任选地在排除或不排除所描述的其它特征的情况下并入。
图2展示根据另一实施例的用于延迟缩减存储器寿命的操作的技术200。作为选择,可实施本技术200来实行图1的方法100。然而当然,技术200可在任何所需环境中实施。还应注意,前面所提及的定义可在本描述期间应用。
如图所示,技术200考虑导致存储器展现最小可用性程度的总操作数目202以及存储器的最小所需寿命204。从此些数据点,可计算出实现最小所需寿命204的最大平均操作速率206。
在使用中,可随着时间进行而监视缩减寿命的操作的数目。如果在任何时间,随着时间的过去此些操作的数目超过最大平均操作速率206,那么可以所示的方式,使任何过量操作(其导致超过所述速率)延迟所计算出的量、延迟预定时间量或基于先前或预测的缩减寿命操作的速率而自适应地延迟。在一个实施例中,此预定时间量可为导致最大平均操作速率206不被超过的时间。
在各种实施例中,关于哪些操作将经受延迟(以及延迟本身的长度)的确定可基于多种因素。举例来说,在一个实施例中,延迟可基于起始操作的应用程序。在此实施例中,由具有较低优先权的应用程序起始的操作可经受延迟,而由具有较高优先权的应用程序起始的操作可能没有必要经受延迟(在可能时)。
当然,预期其它实施例,其中以与应用程序无关的方式在操作上管理延迟。举例来说,无论发源应用程序如何,延迟均可应用于某一类型的所有操作(例如,擦除操作等)。此外,还预期涉及混合方法的实施例。
而且,预期其中被延迟的操作可包含引起寿命不正常缩减的操作或操作模式的实施例。在一个实施例中,可仅延迟这些模式。举例来说,可检测病毒或粗略应用程序操作模式,且可仅延迟来自此些模式的操作。
图3展示根据本发明又一实施例的用于延迟缩减存储器寿命的操作的基于时间间隔的技术300。作为选择,可实施本技术300来实行图1的方法100,且/或可进一步在图2的技术200的上下文中实施本技术300。然而当然,技术300可在任何所需环境中实施。此外,还应注意,前面所提及的定义可在本描述期间应用。
类似于图2的技术,技术300考虑导致存储器展现最小可用性程度的总操作数目302以及存储器的最小所需寿命304。从此些数据点,可计算出实现最小所需寿命304的最大平均操作速率306。在使用中,可随着时间进行而监视缩减寿命的操作的数目。
如果在任何时间,随着时间的过去此些操作的数目超过最大平均操作速率206,那么以所示的方式,不必以无条件方式(类似于图2的技术200)来延迟任何过量操作。而是,可基于操作在此期间起始的时间间隔而有条件地延迟此些过量操作。此时间间隔(例如)可包含(但不限于)一天中的时刻、一周中的天、一年中的月份等。在额外实施例中,可将所述时间间隔自适应地且动态地调节到最佳周期。举例来说,此自适应和动态调节可基于间隔的子间隔内缩减寿命操作的频率的直方图等。
举例来说,如果以所示的方式在星期一、星期二、星期三、星期四等识别到过量的操作数目,那么可认识到(例如,预期)在后续的星期五、星期六和星期日期间可能识别到的操作数目将较少。因此,代替于无条件地延迟此些过量数目操作,可立即执行所述操作,这依赖于平均操作速率(当在一周内取得时)将不超过最大平均操作速率206的可能性。当然,如果情况并不是这样,那么在后续的一周等期间可能出现某种延迟。虽然已在一周期间的若干天的上下文中陈述了上述实例,但预期其它更多的“大量使用的”实施例,其考虑存储器使用在一个月的星期、一年的月份等内的波动。
在又一些额外实施例中,可使操作的有条件延迟一般化,以便使其不一定基于间隔,而是基于存储器的历史使用和/或甚至存储器的预测使用。在此些实施例中,可能出于预测未来使用的目的而使用历史数据来执行任何所需的统计分析,从而更准确地识别其中延迟过量操作未必需要发生等情形。
图4展示根据本发明又一实施例的用于延迟缩减存储器寿命的操作的基于积分的技术400。作为选择,可实施本技术400来实行图1的方法100,且/或可进一步在图2到图3的技术200和300的上下文中实施本技术400。然而当然,技术400可在任何所需环境中实施。此外还应注意,前面所提及的定义可在本描述期间应用。
类似于先前的技术,技术400考虑导致存储器展现最小可用性程度的总操作数目402以及存储器的最小所需寿命404。从此些数据点,可计算出实现最小所需寿命404的最大平均操作速率406。在使用中,可随着时间进行而监视缩减寿命的操作的数目。
如果在任何时间,随着时间的过去此些操作的数目以所示的方式(参见408)超过最大平均操作速率406,那么不必以无条件方式(类似于图2的技术200)来延迟任何过量操作。而是,可基于反映存储器使用的积分函数而有条件延迟此些过量操作。明确地说,可在正在进行的基础上计算随着时间的过去缩减寿命操作的总速率与最大平均操作速率406之间的差的积分。为此,如果此积分指示此些操作可能超过最大平均操作速率406,那么前面所提及的延迟未必需要发生。
图5说明根据另一实施例的用于在所需寿命持续时间超过估计寿命持续时间的情况下延迟缩减存储器寿命的操作的系统500。作为选择,可实施本系统500来实行图1的方法100,且/或本系统500可进一步任选地并入有图2到图4的技术中的任一者。然而,当然,可以任何所需方式使用系统500。
如图所示,包含存储系统503,存储系统503包括多个存储装置530、540。至少一个存储总线502使至少一个控制器511与至少一个计算机501耦合。在各种实施例中,存储总线502可包含(但不限于)串行高级技术附接(SATA)总线、串行附接SCSI(SAS)总线、光纤通道总线、存储器总线接口、快闪存储器总线、“与非”(NAND)快闪总线、集成驱动电子元件(IDE)总线、高级技术附接(ATA)总线、消费型电子元件(CE)总线、通用串行总线(USB)总线、智能卡总线、多媒体卡(MMC)总线等。因此,控制器511能够耦合在系统(例如,计算机501)与次级存储装置(例如,存储装置530、540中的至少一者)之间。进一步包含至少一个设备510,其用于延长与存储装置530、540相关联的存储器的寿命。
如图所示,设备510包含控制器511,其分别经由多个对应总线521、522耦合到存储装置530、540。控制器511使用多个总线521、522来控制多个存储装置530、540并与其交换数据,以便执行经由存储总线502从计算机501接收到的命令。存储装置530、540各包含至少一个用于存储数据的模块或块531、532、533、541、542、543。此外,前面所提及的命令中的至少一部分是缩减寿命的命令,其对至少一个模块或块531、532、533、541、542、543具有不利影响。在使用中,设备510用于延长存储装置530、540的寿命(尽管存在此些缩减寿命的命令)。
为实现此目的,控制器511经由对应总线512耦合到寿命估计器模块514。设备510进一步包含时间模块517,其经由总线518耦合到寿命估计器模块514,以用于提供当前时间。在使用中,寿命估计器模块514用以接收经由存储总线502从计算机501传送到控制器511的命令。此外,寿命估计器模块514通过假定经由总线512接收到的命令已被执行来计算估计寿命。
继续参看图5,寿命估计模块514经由总线515耦合到扼制模块516。寿命估计模块514使用总线515来将针对控制器511当前所执行的命令而估计出的寿命传递到扼制模块516。在一个实施例中,当前所执行的命令可与寿命估计器模块514经由总线512接收到的命令相同,且可进一步与控制器511经由存储总线502从计算机501接收到的命令相同。
当前时间模块517也经由总线518耦合到扼制模块516。因此,来自当前时间模块517的当前时间同样可传递到扼制模块516。在一个实施例中,可将当前时间模块517实施为(例如)以恒定时间间隔等递增的简单计数器。
扼制模块516进一步经由总线519与所需寿命模块520耦合,且经由总线513耦合到控制器511。在使用中,所需寿命模块520适合于存储所需寿命。通过此设计,扼制模块516可经配置以经由总线513向控制器511传递信息,以指令控制器511延迟当前命令的执行。
在一个实施例中,设备510的扼制模块516可操作以使得当前命令的执行被延迟,直到所述执行对寿命的影响使得估计寿命长于所需寿命模块520中所存储的所需寿命或与其相同为止。在一个实施例中,扼制模块516的功能性可与在经由总线515接收到的估计寿命短于经由总线519接收到的所需寿命的情况下向控制器511提供延迟信号一样简单。
在另一实施例中,控制器511、寿命估计器模块514以及扼制模块516的上述功能可以预定义时间间隔应用于接收到的一组命令。此布置可允许系统500满足所需寿命,而不会不必要地扼制原本将缩减寿命的命令的短突发。通过将所述时间间隔选择为(例如)一天,此技术允许系统500为缩减寿命命令提供较高的瞬时性能,因为在所述一天的某个时期(例如,夜间等)期间,可能存在缩减寿命命令的频率与缩减寿命命令的平均频率相比减少的时间间隔。
在一个任选实施例中,可随时间的过去而维持一致性。作为一致性方法的实例,如果缩减寿命命令A被延迟,那么取决于A的数据或从命令A的执行得出的值的所有命令(缩减寿命的或不缩减寿命的)也被延迟。
在另一实施例中,可用各种时间近似值来代替时间,例如磁盘正被加电的时间。在另一实施例中,计算机501、RAID控制器和/或其它装置可提供额外信息以增加所跟踪时间的精确度。因此,当存储装置530、540中的一者或一者以上断开时,时间计数器不计数。由于真实时间在向前,因此这可能不必要地降低性能。在此情境中,计算机501、软件和/或控制器可提供关于系统500断开时的时间的信息,以用于解决此问题。
在另一实施例中,系统500可装备有内部存储装置冗余能力以用于降低成本和改善性能。在此实施例中,数据可基于与个别存储装置530、540的寿命相关联的任何方面(例如,参见例如图1的操作102等)而在所述个别存储装置之间移动。举例来说,一种情形可能涉及存储装置530中的第一者包含相对于存储器装置540中的第二者的数据来说被更频繁地盖写的数据集。在此情况下,在预定时间量之后,此数据可从第一存储装置530移动到第二存储装置540,且从此以后第一存储装置530或其一个或一个以上块/模块531、532、533可用于存储较不频繁地写入的数据或退出未来使用。
为此,可适当地分布存储装置磨损以避免一个存储装置在相对于群组的其它存储装置来说过早的时间点发生故障。当然,本技术不仅可应用于不同的存储装置之间,而且还可应用于所述存储装置的多个部分之间。为此,可以此方式管理任何存储器组件的寿命。
在任何情况下,控制器511因此可经装备以用于减少和/或分布写入。通过此特征,可延长适当的存储装置530、540的寿命。现在将在图6的描述期间陈述用于实行此技术的一种示范性方法。
图6说明根据另一实施例的用于在所需寿命持续时间超过估计寿命持续时间的情况下延迟缩减存储器寿命的操作的方法600。作为选择,可使用图5的系统500来实行本方法600,且/或本方法600可进一步任选地并入有图1到图4的技术中的任一者。然而,当然,方法600可以任何所需方式使用。此外,前面所提及的定义可在本描述期间应用。
在开始操作601后,方法600通过控制器(例如,图5的控制器511等)等待计算机(例如,计算机501等)向至少一个存储装置(例如,存储装置530、540等)发出的命令602而继续。一旦控制器接收到所述命令,方法就进行到决策603,其中控制器确定在操作602中接受的命令是否是缩减寿命命令(例如,擦除操作、写入操作等)。如果在决策603中确定当前接收到的命令不是缩减寿命,那么可按照操作607来简单地处理此命令。
另一方面,如果在决策603中确定当前接收到的命令的确是缩减寿命,那么寿命估计器模块(例如,寿命估计器模块514等)基于在操作602中接收到的命令、先前寿命以及当前时间(例如,经由时间模块517等)而计算估计寿命。参见操作604。在一个实施例中,先前寿命可表示寿命估计器模块的先前状态。在另一实施例中,可通过测量至少一个存储装置的一个或一个以上特性来获得先前寿命。
在任何情况下,接着将此寿命估计器模块所估计的寿命提供给扼制模块(例如,扼制模块516等)。在决策605中,扼制模块在从寿命估计器接收到的估计寿命短于发送到扼制模块的所需寿命的情况下确定扼制是必要的。如果扼制是必要的,那么方法600在操作606中通过延迟(例如,扼制等)缩减寿命的命令而继续进行。然而,如果估计寿命不短于所需寿命,那么方法600在操作607中继续进行,如上文所述。
具体来说,在操作606中,扼制模块可使用控制器来扼制缩减寿命的命令的执行。在一个实施例中,可通过使用控制器延迟缩减寿命命令的执行,直到寿命估计器所估计的寿命长于所需寿命或与之相同为止,来实施此扼制。
在另一实施例中,扼制可在预定时间周期中确定,且在后续预定时间周期中应用于命令。在此实施例中,可应用关于在预定时间间隔内可缩短多少寿命的限制。在又一实施例中,关于在一时间间隔内可缩短多少寿命的限制可在一个或一个以上先前时间间隔中确定。在又一实施例中,可基于对多个待决操作的分析而确定扼制,从而允许不缩减寿命的操作在缩减寿命操作或取决于此些缩减寿命操作的操作之前执行。
通过此设计,可提供数据存储系统,其控制缩减寿命的操作以保证所需的最小寿命。因此可估计缩减寿命的操作对此最小所需寿命的影响,且可自适应地约束缩减寿命的操作的频率。
图7展示根据另一实施例的用于计量存储器寿命的图形用户界面700。作为选择,本图形用户界面700可在图1到图6的功能性和结构的上下文中实施。然而当然,本图形用户界面700可在任何所需环境中实施。此外还应注意,前面所提及的定义可在本描述期间应用。
如图所示,可显示反映与存储器寿命相关联的至少一个方面的各种标记。在一个实施例中,此方面可为图1的操作102中所识别的方面。然而当然,此与寿命有关的方面可包含至少部分与存储器的寿命有关的任何所需方面。举例来说,在图5的系统500的上下文中,所述方面可由控制器511从所示模块中的任何一者中检索,以供处理和/或简单地传递到计算机501,计算机501又可在软件应用程序(例如,插件等)的控制下显示相关联的标记。
举例来说,在一个实施例中,前面所提及的标记可包含用于指示一个或一个以上存储器的剩余的寿命量的计量器702。在此实施例中,计量器702可指示随随着时间的过去已执行的缩减寿命操作的数目而变的总存储器寿命的剩余量。在又一实施例中,前面所提及的标记可包含用于基于对先前使用的外推且假定扼制操作的暂停而指示寿命的估计705。
在另一实施例中,前面所提及的标记可包含用于指示一个或一个以上存储器的剩余的最小寿命量的警告704。可例如基于历史存储器使用数据而估计此寿命。通过此设计,可向用户警告应在预定时间量内更换存储器的情形等。当然,预期其它实施例,其中使用任何所需标记来报告与存储器寿命相关联的各种信息。
图8展示根据另一实施例的用于利用差异信息来减少存储器中的写入操作的方法800。作为选择,本方法800可或可不结合图1到图7的功能性和结构而实行。然而当然,本方法800可在任何所需环境中实施。还应注意,前面所提及的定义可在本描述期间应用。
如图所示,识别将对存储器中所存储的数据执行的写入操作。参见操作802。在本描述的上下文中,此些写入操作可包含导致存储在存储器中的数据被修改的任何操作。此外,可通过拦截与此些操作相关联的写入命令、写入操作本身等而以任何所需方式来识别此些写入操作。
如操作804中所指示,接着确定写入操作的结果与存储在存储器中的数据之间的差异。在本描述的上下文中,前面所提及的差异可至少部分反映存储在存储器中的数据的第一状态与将从上述写入操作得出的第二状态之间的任何差异。
在另一实施例中,可确定存储在存储器中的任何数据之间的差异。举例来说,可创建文件的新的经修改版本,并将其写入到存储器中的新位置,使得可确定来自存储器中不同位置的数据的差异。作为选择,可基于散列、布隆滤波器(bloom filter)等来识别数据的位置。为此,在其中将相同数据的不同实例写入到存储器中的不同位置的一个示范性实施例中,所确定的差异可包含数据的位置,且不一定包含数据本身。
在一个实施例中,可将与差异相关联的差异信息存储在存储器(例如,其中存储数据的同一存储器等)中。在另一实施例中,还可将差异信息以稍后在对一不同实施例的描述期间将详细阐述的方式存储在单独的缓冲器中。应注意,差异信息可包含至少部分地描述操作804中所确定的差异的任何信息。如在对稍后描述的实施例的论述期间将很快明了,在一个实施例中,可利用指令集来存储差异信息。也如下文所述,在各种实施例中,此指令集可自适应地改变和/或动态地扩展。
为此,可利用差异信息来减少写入操作。参见操作806。通过此设计,写入操作的此减少可任选地导致存储器寿命的延长。
现在将陈述关于可按照用户需要实施或不实施上述框架所借助的各种任选结构和特征的更多说明性信息。举例来说,将陈述一种示范性系统,其用于实施基于差异信息而减少写入操作的一种说明性方法。应重点注意,以下信息是出于说明性目的而陈述的,且不应被解释为以任何方式具有限制性。可任选地在排除或不排除所描述的其它特征的情况下并入以下特征中的任一者。
图9说明根据另一实施例的用于减少存储器中的写入操作的系统900。作为选择,可实施本系统900来实行图8的方法800,且/或本系统900可进一步任选地并入有图1到图7的方法或技术中的任一者。然而,当然,系统900可以任何所需方式使用。此外,前面所提及的定义可在本描述期间应用。
如图所示,系统900包含计算机901,其以稍后将陈述的方式经由输入/输出(I/O)总线902耦合到存储装置930。I/O总线902包含读取路径903和写入路径904。存储装置930包含多个存储块931、932、933。存储块931、932、933由计算机901写入和读取。
出于稍后将明了的原因,可分配存储块931、932、933中的每一者的预定部分934,以存储反映计算机901对对应存储块931、932、933的其余部分935中所存储的数据做出的任何改变的不同信息。在各种实施例中,预定部分934的大小可由用户配置。此外,其中所存储的不同信息可采用任何形式。
表1说明用于表示不同信息的实例的一种可能格式(多个所述信息可存储在存储块931、932、933的每一预定部分934中)。
表1
操作码 | 源开始地址 | 大小 | 数据 |
结束 | N/A | N/A | N/A |
更换 | <地址> | <字节长度> | <更换数据> |
上移 | <地址> | <字节长度> | <数据将从其移动的地址> |
下移 | <地址> | <字节长度> | <数据将从其移动的地址> |
插入 | <地址> | <字节长度> | <待插入的数据> |
删除 | <地址> | <字节长度> | N/A |
在本实施例中,操作码可表示将对对应存储块931、932、933的其余部分935中所存储的数据执行的操作。此些操作的实例可包含(但不限于)就此而论的结束、更换、上移、下移、删除、插入和/或任何其它操作。作为选择,此些操作可各具有相关联代码以获得紧凑表示(例如,替换=“001”,上移=“010”等)。
此外,源开始地址和大小可(分别)指向和指示对应存储块931、932、933的其余部分935中所存储的将经受操作的数据的大小。此外,在操作强制执行数据的更换/修改等的情形下,数据本身可作为差异信息的分量而存储。作为又一选择,可将压缩算法应用于差异信息以获得更高效的存储。作为另一选择,在操作强制执行数据的移动的情形下,可指明数据的源位置而不一定是数据本身,因为此数据包含于原始存储块中。
在另一实施例中,可自适应地创建新的操作。举例来说,第一操作的重复序列可由新的第二操作代替。此新的第二操作可任选地描述第一操作的序列。以此方式,可自适应地创建新的操作,使得系统900可使其自身最佳地适应于新的应用。
当然,仅出于说明性目的而陈述表1的数据结构,且所述数据结构不应被解释为以任何方式具有限制性。举例来说,差异信息的实例可简单地包含待替换的数据(没有任何复杂命令等)。
进一步提供设备910,其用于减少存储器中的写入操作。此设备910包含结合存储器(coalescing memory)920,其包含多个结合缓冲器921、922、923。在一个实施例中,结合缓冲器921、922、923中的每一者的大小可为与可在单个操作中写入到存储块931、932、933中的每一者的最小块部分相关的预定大小(例如,4Kb等)。此外,在各种实施例中,结合缓冲器921可包含芯片上存储装置、外部存储器、DRAM、SRAM等。
如稍后将明了,结合存储器缓冲器921、922、923各保存对应存储块931、932、933的差异信息的实例(例如,参见表1)。换句话说,结合存储器缓冲器921的第一者保存用于存储块931的第一者的差异信息的实例,结合存储器缓冲器922的第二者保存用于存储块932的第二者的差异信息的实例,结合存储器缓冲器923的第三者保存用于存储块933的第三者的差异信息的实例,依此类推。
设备910进一步包含更新模块912,其经由总线914耦合到结合存储器920,以用于将存储在结合存储器缓冲器921、922、923中的差异信息写入到对应的存储块931、932、933。在一个实施例中,此写入可在结合存储器缓冲器921、922、923中的一者被填充有差异信息的至少一个实例(且因此对存储块931、932和933中的适当一者构成最小写入大小)时起始。为了实现此写入,更新模块912经由总线915耦合到存储装置930。如图进一步展示,更新模块912的输出经由读取路径903耦合到I/O总线902。
此外,差异计算模块911经由读取路径总线903耦合到更新模块912,经由写入路径总线904耦合到I/O总线902,且进一步经由总线913耦合到结合存储器920。在使用中,差异计算模块911能够从存储装置930读取数据,且进一步使用来自相关联存储块931、932和933和/或结合存储器缓冲器921、922、923的差异信息来重构此数据的当前状态。
差异计算模块911进一步能够通过首先重构此数据的当前状态(类似于上文的读取操作)、识别此当前状态与写入操作(由计算机901起始)之后将得到的状态之间的差异以及在适当时用将用于更新相关联存储块931、932、933的差异信息的一个或一个以上实例填充结合存储器缓冲器921、922、923,来将数据写入到存储装置930。现在将在对图10和图11的描述期间陈述关于此些读取和写入操作的更多信息。
在各种实施例中,差异计算模块911可使用任何所需技术来识别前面所提及的差异。举例来说,可(例如)利用各种串匹配算法(string matching algorithm)、数据运动估计技术等。在又一些额外实施例中,可在逐字节基础上确定差异。
此外,差异的计算可涉及以下各项中的任何一者或一者以上:找到被插入的字节串,找到被删除的字节串,找到被替换的字节串、找到被复制的字节串,确定是否通过添加值来更新字节串,找到存储块的副本且创建其参考,找到块分裂,找到块合并等。
图10说明根据一个实施例的用于使用差异信息来对存储器进行读取的方法1000。作为选择,可使用图9的系统900来实行本方法1000,且/或本方法1000可进一步任选地按需要并入有图1到图8的技术中的任一者。然而当然,方法1000可以任何所需方式使用。此外,前面所提及的定义可在本描述期间应用。
如图所示,方法1000可在操作1001中通过从存储装置(例如,存储装置930等)读取如计算机(例如,计算机901等)所请求的块(例如,图9的块931、932、933等)而开始。接着将所读取的存储块数据发送到更新模块(例如,更新模块912等)。接下来,响应于读取操作,从对应于存储块(与计算机请求相关联)的结合缓冲器(例如,结合缓冲器921、922、923等)且/或从存储块本身读取差异信息。参见操作1002。差异信息的适当来源可取决于所需信息在读取请求时是否已从结合缓冲器被写入到对应的存储块。作为选择,差异信息可散布在快闪存储器中的数据之间。另外,可将与特定数据有关的差异分组成一个或一个以上群组。
接下来,在操作1003中,更新模块对在操作1001中读取的对应块应用来自操作1002的差异信息中所反映的差异。为此,在操作1003中重构的数据可经由读取路径(例如,读取路径903等)发送到计算机。参见操作1004。
在各种实施例中,上述数据读取操作可涉及从逻辑存储块编号到物理存储块编号的映射。此外,方法1000可进一步结合读取而提供错误检测和错误校正。此对读取数据的错误检测和校正可进一步包含尝试恢复数据且将所恢复的数据再定位到另一存储位置的再读取操作。举例来说,所恢复数据的此再定位可涉及逻辑存储块平移且/或基于候选存储块的错误率信息。
图11说明根据一个实施例的用于使用差异信息来对存储器进行写入的方法1100。作为选择,可使用图9的系统900来实行本方法1100,且/或本方法1100可进一步任选地按需要并入有图1到图8、图10的技术中的任一者。然而当然,方法1100可以任何所需方式使用。此外,前面所提及的定义可在本描述期间应用。
类似于图10的读取方法1000,方法1100可在操作1101中通过从存储装置(例如,存储装置930等)读取计算机(例如,计算机901等)的写入请求支配的块(例如,图9的块931、932、933等)而开始。接着将所读取的存储块数据发送到更新模块(例如,更新模块912等)。接下来,在操作1102中,从对应于存储块(与计算机请求相关联)的结合缓冲器(例如,结合缓冲器921、922、923等)且/或从存储块本身读取差异信息。接下来,在操作1103中,更新模块对在操作1101中读取的对应块应用来自操作1102的差异信息中所反映的差异,以重构待读取或写入的数据。
为此,可将在操作1103中重构的数据发送到差异计算模块(例如,差异计算模块911等),并将其与将从执行计算机所请求的写入操作得出的数据的状态进行比较。参见操作1104。为此,识别重构数据与将从执行写入操作得出的数据的状态之间的差异。在一个实施例中,此差异可能由用于更新数据的应用程序(在计算机上运行)引起。此些更新可包含(但不限于)替换字节串、插入字节串、删除字节串、复制字节串等。
在操作1105中,可将与操作1104中计算出的差异相关联的差异信息附加到对应于存在操作1104中计算出的至少一个差异的块的适当结合缓冲器。此附加可通过写入到结合存储器中的结合缓冲器的末尾来完成。在一个实施例中,此附加可进一步包含对结合缓冲器进行解压缩、附加数据以及对适当的结合缓冲器进行再压缩。作为选择,可按需要将结合缓冲器存储器再分配给结合缓冲器。
在一任选实施例中,差异信息可作为描述对数据执行的功能(例如,写入等)的操作而存储。举例来说,差异信息可反映从B树(B-Tree)中所执行的操作得出的改变,且可因此表示相对于此些操作的差异。此些B树可任选地由数据库、邮件服务器、文件系统等利用。
接下来,在决策1106中,测试结合缓冲器以确定其是否已满。如果没有结合缓冲器已满,那么方法1100进行到操作1110。另一方面,如果至少一个结合缓冲器已满,那么方法1100进行到操作1107。在操作1107中,将任何已满的结合缓冲器附加到差异信息。另外,将此些已满的结合缓冲器清空(以供再使用等),如操作1112中所示。
进一步确定差异信息是否已满(操作1114)。如果确定差异信息未满,那么方法1100进行到操作1110。然而,响应于差异信息已满的确定,将来自差异信息的改变应用于数据。注意操作1116。而且,对具有所应用改变的数据块进行写入且丢弃旧的数据,如操作1118中所示。此外,如操作1120中所示,清空差异信息。为此,可提供数据存储系统,其使用写入数据与现存数据之间的差异来减少写入,且使写入分布于存储器块上以改进基于块的存储的可靠性。
在各种实施例中,上述实施例中所提及的存储器可包含机械存储装置(例如,磁盘驱动器,包含SATA磁盘驱动器、SAS磁盘驱动器、光纤通道磁盘驱动器、IDE磁盘驱动器、ATA磁盘驱动器、CE磁盘驱动器、USB磁盘驱动器、智能卡磁盘驱动器、MMC磁盘驱动器等)和/或非机械存储装置(例如,基于半导体的存储装置等)。此非机械存储器可(例如)包含易失性或非易失性存储器。在各种实施例中,非易失性存储器装置可包含快闪存储器(例如,每单元单个位的“或非”(NOR)快闪存储器、每单元多个位的“或非”快闪存储器、每单元单个位的“与非”快闪存储器、每单元多个位的“与非”快闪存储器、每单元多个电平多个位的“与非”快闪存储器、大块快闪存储器等)。虽然本文陈述存储器的各种实例,但应注意,各种原理可应用于寿命可能由于在其上正执行的各种操作而缩减的任何类型的存储器。
图12说明示范性系统1200,其中可实施各种先前实施例的各种结构和/或功能性。举例来说,示范性系统1200可表示在先前实施例中的一些实施例中陈述的计算机。此外,上文所陈述的各种设备甚至可以是系统1200的组件。
如图所示,提供系统1200,其包含至少一个连接到通信总线1202的主机处理器1201。系统1200还包含主存储器1204。控制逻辑(软件)和数据存储在主存储器1204中,主存储器1204采取随机存取存储器(RAM)的形式。
系统1200还包含图形处理器1206和显示器1208,即计算机监视器。系统1200还可包含次级存储装置1210。次级存储装置1210包含(例如)硬盘驱动器和/或可拆卸存储驱动器,其表示软盘驱动器、磁带驱动器、压缩光盘驱动器等。可拆卸存储驱动器以众所周知的方式从可拆卸存储模块进行读取且/或对可拆卸存储模块进行写入。
计算机程序或计算机控制逻辑算法可存储在主存储器1204和/或次级存储装置1210中。此些计算机程序在被执行时使系统1200能够执行各种功能。存储器1204、存储装置1210和/或任何其它存储装置是计算机可读媒体的可能实例。
在一个实施例中,可在主机处理器1201、图形处理器1206、次级存储装置1210、能够具有主机处理器1201和图形处理器1206两者的能力的至少一部分的集成电路(未图示)、芯片集(即,经设计以作为用于执行有关功能的模块而工作和出售的集成电路群组等)和/或就此而论的任何其它集成电路的情形中实施各个先前图式的结构和/或功能性。
此外,可在通用计算机系统、电路板系统、专用于娱乐目的的游戏控制台系统、专用系统和/或任何其它所需系统的情形中实施各个先前图式的结构和/或功能性。举例来说,系统1200可采取桌上型计算机、膝上型计算机和/或任何其它类型的逻辑的形式。此外,系统1200可采取各种其它装置的形式,包含(但不限于)个人数字助理(PDA)装置、移动电话装置、电视机等。
此外,虽然未图示,但系统1200可耦合到网络(例如,电信网络、局域网(LAN)、无线网络、例如因特网的广域网(WAN)、对等网络、电缆网络等),以用于通信目的。
虽然上文已描述了各种实施例,但应理解,所述实施例只是作为实例而呈现而不是作为限制。因此,优选实施例的宽度和范围不应受上文所描述的示范性实施例中任一者限制,而是应仅根据所附权利要求书及其等效物来界定。
Claims (111)
1.一种方法,其包括:
识别至少一个与存储器寿命相关联的方面;以及
基于所述方面而延迟至少一个缩减所述存储器的所述寿命的操作。
2.根据权利要求1所述的方法,其中所述寿命包含所需寿命、实际寿命以及估计寿命中的至少一者。
3.根据权利要求1所述的方法,其中所述方面包含时间周期、缩减所述存储器的所述寿命的所述操作的速率、缩减所述存储器的所述寿命的所述操作的总许可数目以及所述寿命的持续时间中的至少一者。
4.根据权利要求1所述的方法,其中通过延迟起始所述操作的命令来延迟所述操作。
5.根据权利要求1所述的方法,其中所述延迟进一步基于起始所述操作的应用程序。
6.根据权利要求1所述的方法,其中所述延迟与起始所述操作的应用程序无关。
7.根据权利要求1所述的方法,其中所述操作包含擦除操作。
8.根据权利要求1所述的方法,其中所述操作包含编程操作。
9.根据权利要求1所述的方法,其中如果所需寿命持续时间超过估计寿命持续时间,那么延迟所述操作。
10.根据权利要求1所述的方法,其中基于所述存储器的历史使用而有条件地延迟所述操作。
11.根据权利要求1所述的方法,其中基于所述存储器的预测使用而有条件地延迟所述操作。
12.根据权利要求1所述的方法,其中基于所述存储器的使用的积分函数而有条件地延迟所述操作。
13.根据权利要求1所述的方法,其中基于其间起始所述操作的时间间隔而有条件地延迟所述操作。
14.根据权利要求13所述的方法,其中所述时间间隔包含一天中的时刻、一周中的天以及一年中的月份中的至少一者。
15.根据权利要求1所述的方法,其中仅延迟所述操作的一部分。
16.根据权利要求1所述的方法,其中所述存储器包含机械存储装置。
17.根据权利要求1所述的方法,其中所述存储器包含非机械存储装置。
18.根据权利要求1所述的方法,其中所述存储器包含易失性存储器装置。
19.根据权利要求1所述的方法,其中所述存储器包含非易失性存储器装置。
20.根据权利要求1所述的方法,其中所述非易失性存储器装置包含每单元单个位的“或非”快闪存储器、每单元多个位的“或非”快闪存储器、每单元单个位的“与非”快闪存储器、每单元多个位的“与非”快闪存储器、每单元多个电平多个位的“与非”快闪存储器以及大块快闪存储器中的至少一者。
21.一种实施于计算机可读媒体上的计算机程序产品,其包括:
用于识别至少一个与存储器寿命相关联的方面的计算机代码;以及
用于基于所述方面而延迟至少一个缩减所述存储器的所述寿命的操作的计算机代码。
22.一种设备,其包括:
控制器,其用于基于至少一个与存储器的寿命相关联的方面而延迟至少一个缩减所述存储器的所述寿命的操作。
23.根据权利要求22所述的设备,其中所述控制器耦合在系统与所述存储器之间。
24.根据权利要求22所述的设备,其中所述控制器耦合在系统与次级存储装置之间。
25.一种方法,其包括:
识别将对存储在存储器中的数据执行的写入操作;
确定所述写入操作的结果与存储在所述存储器中的所述数据之间的差异;
将与所述差异相关联的差异信息存储在所述存储器中;以及
利用所述差异信息来减少所述写入操作。
26.根据权利要求25所述的方法,其中对所述差异信息进行压缩。
27.根据权利要求25所述的方法,其中响应于读取操作,检索所述数据和所述差异信息,且利用所述差异信息来重构所述数据。
28.根据权利要求27所述的方法,其中从所述存储器检索所述差异信息。
29.根据权利要求27所述的方法,其中从缓冲器检索所述差异信息。
30.根据权利要求25所述的方法,其中将所述差异信息存储在缓冲器中。
31.根据权利要求30所述的方法,其中响应于所述缓冲器已满而将所述差异信息存储在所述存储器中。
32.根据权利要求25所述的方法,其中将所述差异信息存储在所述存储器的其中存储有对应数据的块中。
33.根据权利要求32所述的方法,其中将所述差异信息存储在所述块的具有预定大小的部分中。
34.根据权利要求33所述的方法,其中所述预定大小由用户配置。
35.根据权利要求33所述的方法,其中响应于所述差异信息超过所述预定大小,从所述块检索所述数据和所述差异信息,利用所述差异信息来重构所述数据,且将所述经重构数据存储在所述块中。
36.根据权利要求25所述的方法,其中利用指令集来存储所述差异信息。
37.根据权利要求36所述的方法,其中所述指令集动态地扩展。
38.根据权利要求36所述的方法,其中所述指令集自适应地改变。
39.根据权利要求25所述的方法,其中在逐字节基础上确定所述差异。
40.根据权利要求25所述的方法,其中利用数据运动估计来确定所述差异。
41.根据权利要求25所述的方法,其中所述存储器包含机械存储装置。
42.根据权利要求39所述的方法,其中所述存储器包含磁盘驱动器。
43.根据权利要求25所述的方法,其中所述存储器包含易失性存储器装置。
44.根据权利要求25所述的方法,其中所述存储器包含非易失性存储器装置。
45.根据权利要求44所述的方法,其中所述非易失性存储器装置包含每单元单个位的“或非”快闪存储器、每单元多个位的“或非”快闪存储器、每单元单个位的“与非”快闪存储器以及每单元多个位的“与非”快闪存储器中的至少一者。
46.一种实施于计算机可读媒体上的计算机程序产品,其包括:
用于识别将对存储在存储器中的数据执行的写入操作的计算机代码;
用于确定所述写入操作的结果与存储在所述存储器中的所述数据之间的差异的计算机代码;
用于将与所述差异相关联的差异信息存储在所述存储器中的计算机代码;以及
用于利用所述差异信息来减少所述写入操作的计算机代码。
47.一种设备,其包括:
差异计算模块,其用于确定将对存储在存储器中的数据执行的写入操作的结果与存储在所述存储器中的所述数据之间的差异,其中与所述差异相关联的差异信息存储在所述存储器中;
更新模块,其与所述差异计算模块通信,所述更新模块用于利用所述差异信息来减少所述写入操作。
48.根据权利要求47所述的设备,其中所述设备耦合在系统与所述存储器之间。
49.根据权利要求47所述的设备,其中所述控制器耦合在系统与次级存储装置之间。
50.一种方法,其包括:
识别至少一个与多个存储器装置中的每一者的寿命相关联的方面;以及
基于所述至少一个方面而在所述多个存储器装置之间移动数据。
51.根据权利要求50所述的方法,其中所述寿命包含所需寿命、实际寿命以及估计寿命中的至少一者。
52.根据权利要求50所述的方法,其中所述至少一个方面包含时间周期、缩减所述多个存储器装置中的至少一者的所述寿命的所述操作的速率、缩减所述多个存储器装置中的至少一者的所述寿命的所述操作的总许可数目以及所述寿命的持续时间中的至少一者。
53.根据权利要求50所述的方法,其中所述至少一个方面指示所述多个存储器装置中的第一者包含相对于所述多个存储器装置中的第二者的第二数据集来说被更频繁地盖写的第一数据集。
54.根据权利要求53所述的方法,其中将所述第一数据集从所述第一存储器装置移动到所述第二存储器装置。
55.根据权利要求53所述的方法,其中在预定时间量之后,将所述第一数据集从所述第一存储器装置移动到所述第二存储器装置。
56.根据权利要求50所述的方法,其中所述多个存储器装置包含机械存储装置。
57.根据权利要求50所述的方法,其中所述多个存储器装置包含非机械存储装置。
58.根据权利要求50所述的方法,其中所述多个存储器装置包含易失性存储器装置。
59.根据权利要求50所述的方法,其中所述多个存储器装置包含非易失性存储器装置。
60.根据权利要求59所述的方法,其中所述非易失性存储器装置包含每单元单个位的“或非”快闪存储器、每单元多个位的“或非”快闪存储器、每单元单个位的“与非”快闪存储器、每单元多个位的“与非”快闪存储器、每单元多个电平多个位的“与非”快闪存储器以及大块快闪存储器中的至少一者。
61.一种方法,其包括:
识别至少一个与至少一个存储器装置的多个存储器装置部分中的每一者的寿命相关联的方面;以及
基于所述至少一个方面而在所述至少一个存储器装置的所述多个存储器装置部分之间移动数据。
62.根据权利要求61所述的方法,其中所述寿命包含所需寿命、实际寿命以及估计寿命中的至少一者。
63.根据权利要求61所述的方法,其中所述至少一个方面包含时间周期、缩减所述多个存储器装置部分中的至少一者的所述寿命的操作的速率、缩减所述多个存储器装置部分中的至少一者的所述寿命的所述操作的总许可数目以及所述寿命的持续时间中的至少一者。
64.根据权利要求61所述的方法,其中所述至少一个方面指示所述多个存储器装置部分中的第一者包含相对于所述多个存储器装置部分中的第二者的第二数据集来说被更频繁地盖写的第一数据集。
65.根据权利要求64所述的方法,其中将所述第一数据集从所述第一存储器装置部分移动到所述第二存储器装置部分。
66.根据权利要求64所述的方法,其中在预定时间量之后,将所述第一数据集从所述第一存储器装置部分移动到所述第二存储器装置部分。
67.一种实施于计算机可读媒体上的计算机程序产品,其包括:
用于识别至少一个与至少一个存储器装置的多个存储器装置部分中的每一者的寿命相关联的方面的计算机代码;以及
用于基于所述方面而在所述至少一个存储器装置的所述多个存储器装置部分之间移动数据的计算机代码。
68.一种设备,其包括:
控制器,其用于识别至少一个与多个存储器装置中的每一者的寿命相关联的方面,且基于所述至少一个方面而在所述多个存储器装置之间移动数据。
69.根据权利要求68所述的设备,其中所述控制器耦合在系统与所述多个存储器装置之间。
70.一种实施于计算机可读媒体上的计算机程序产品,其包括:
用于识别至少一个与存储器寿命相关联的方面的计算机代码;以及
用于视觉显示反映所述至少一个方面的标记的计算机代码。
71.根据权利要求70所述的计算机程序产品,其中所述存储器的所述寿命包含所需寿命、实际寿命以及估计寿命中的至少一者。
72.根据权利要求70所述的计算机程序产品,其中所述至少一个方面包含时间周期。
73.根据权利要求70所述的计算机程序产品,其中所述至少一个方面包含缩减所述存储器的所述寿命的操作的速率。
74.根据权利要求70所述的计算机程序产品,其中所述至少一个方面包含缩减所述存储器的所述寿命的操作的总许可数目。
75.根据权利要求70所述的计算机程序产品,其中所述至少一个方面包含所述存储器的所述寿命的持续时间。
76.根据权利要求70所述的计算机程序产品,其中所述至少一个方面包含随随着时间已执行的缩减寿命操作的数目而变的剩余的总存储器寿命量。
77.根据权利要求70所述的计算机程序产品,其中所述计算机代码是插件的组件。
78.根据权利要求70所述的计算机程序产品,其中所述标记包含计量器。
79.根据权利要求70所述的计算机程序产品,其中所述标记包含所述存储器的所述寿命的估计。
80.根据权利要求79所述的计算机程序产品,其中所述存储器的所述寿命的所述估计基于先前使用的外推。
81.根据权利要求70所述的计算机程序产品,其中所述标记包含警告。
82.根据权利要求81所述的计算机程序产品,其中所述警告指示所述存储器剩余的最小寿命量。
83.根据权利要求70所述的计算机程序产品,其中所述存储器包含机械存储装置。
84.根据权利要求70所述的计算机程序产品,其中所述存储器包含非机械存储装置。
85.根据权利要求70所述的计算机程序产品,其中所述存储器包含易失性存储器装置。
86.根据权利要求70所述的计算机程序产品,其中所述存储器包含非易失性存储器装置。
87.一种方法,其包括:
识别至少一个与存储器寿命相关联的方面;以及
视觉显示反映所述至少一个方面的标记。
88.一种设备,其包括:
控制器,其用于识别至少一个与存储器寿命相关联的方面,且视觉显示反映所述至少一个方面的标记。
89.根据权利要求88所述的设备,其中所述控制器耦合在系统与所述存储器之间。
90.一种方法,其包括:
识别将对存储在存储器中的数据执行的写入操作;
确定所述写入操作的结果与存储在所述存储器中的所述数据之间的差异;
使用指令集来存储与所述差异相关联的差异信息;以及
利用所述差异信息来减少所述写入操作。
91.根据权利要求90所述的方法,其中对所述差异信息进行压缩。
92.根据权利要求90所述的方法,其中响应于读取操作,检索所述数据和所述差异信息,且利用所述差异信息来重构所述数据。
93.根据权利要求92所述的方法,其中从所述存储器检索所述差异信息。
94.根据权利要求92所述的方法,其中从缓冲器检索所述差异信息。
95.根据权利要求90所述的方法,其中将所述差异信息存储在缓冲器中。
96.根据权利要求95所述的方法,其中响应于所述缓冲器已满而将所述差异信息存储在所述存储器中。
97.根据权利要求90所述的方法,其中将所述差异信息存储在所述存储器的其中存储有对应数据的块中。
98.根据权利要求97所述的方法,其中将所述差异信息存储在所述块的具有预定大小的部分中。
99.根据权利要求98所述的方法,其中所述预定大小由用户配置。
100.根据权利要求98所述的方法,其中响应于所述差异信息超过所述预定大小,从所述块检索所述数据和所述差异信息,利用所述差异信息来重构所述数据,且将所述经重构数据存储在所述块中。
101.根据权利要求90所述的方法,其中在逐字节基础上确定所述差异。
102.根据权利要求90所述的方法,其中利用数据运动估计来确定所述差异。
103.根据权利要求90所述的方法,其中所述存储器包含机械存储装置。
104.根据权利要求103所述的方法,其中所述机械存储装置包含磁盘驱动器。
105.根据权利要求90所述的方法,其中所述存储器包含非机械存储装置。
106.根据权利要求90所述的方法,其中所述存储器包含易失性存储器装置。
107.根据权利要求90所述的方法,其中所述存储器包含非易失性存储器装置。
108.根据权利要求107所述的方法,其中所述非易失性存储器装置包含每单元单个位的“或非”快闪存储器、每单元多个位的“或非”快闪存储器、每单元单个位的“与非”快闪存储器以及每单元多个位的“与非”快闪存储器中的至少一者。
109.一种实施于计算机可读媒体上的计算机程序产品,其包括:
用于识别将对存储在存储器中的数据执行的写入操作的计算机代码;
用于使用指令集来确定所述写入操作的结果与所述所存储的数据之间的差异的计算机代码;
用于将与所述差异相关联的差异信息存储在所述存储器中的计算机代码;以及
用于利用所述差异信息来减少所述写入操作的计算机代码。
110.一种设备,其包括:
差异计算模块,其用于确定将对存储在存储器中的数据执行的写入操作的结果与存储在所述存储器中的所述数据之间的差异,其中使用指令集来存储与所述差异相关联的差异信息;以及
更新模块,其与所述差异计算模块通信,所述更新模块用于利用所述差异信息来减少所述写入操作。
111.根据权利要求110所述的设备,其中所述设备耦合在系统与所述存储器之间。
Applications Claiming Priority (15)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US86084306P | 2006-11-24 | 2006-11-24 | |
US60/860,843 | 2006-11-24 | ||
US87824207P | 2007-01-03 | 2007-01-03 | |
US60/878,242 | 2007-01-03 | ||
US11/852,082 US7809900B2 (en) | 2006-11-24 | 2007-09-07 | System, method, and computer program product for delaying an operation that reduces a lifetime of memory |
US11/852,117 US7747813B2 (en) | 2006-11-24 | 2007-09-07 | Multi-memory device system and method for managing a lifetime thereof |
US11/852,104 US7904619B2 (en) | 2006-11-24 | 2007-09-07 | System, method, and computer program product for reducing memory write operations using difference information |
US11/852,104 | 2007-09-07 | ||
US11/852,129 | 2007-09-07 | ||
US11/852,117 | 2007-09-07 | ||
US11/852,138 US20080126685A1 (en) | 2006-11-24 | 2007-09-07 | System, method, and computer program product for reducing memory write operations using an instruction set |
US11/852,082 | 2007-09-07 | ||
US11/852,138 | 2007-09-07 | ||
US11/852,129 US7904764B2 (en) | 2006-11-24 | 2007-09-07 | Memory lifetime gauging system, method and computer program product |
PCT/US2007/024295 WO2008063647A2 (en) | 2006-11-24 | 2007-11-21 | Delaying an operation that reduces a lifetime of memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101578587A true CN101578587A (zh) | 2009-11-11 |
CN101578587B CN101578587B (zh) | 2015-02-25 |
Family
ID=39430372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780043176.3A Active CN101578587B (zh) | 2006-11-24 | 2007-11-21 | 延迟缩减存储器寿命的操作 |
Country Status (4)
Country | Link |
---|---|
JP (4) | JP5171840B2 (zh) |
CN (1) | CN101578587B (zh) |
TW (1) | TWI475569B (zh) |
WO (1) | WO2008063647A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106980566A (zh) * | 2017-03-27 | 2017-07-25 | 联想(北京)有限公司 | 一种显示控制方法及存储装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747813B2 (en) | 2006-11-24 | 2010-06-29 | Sandforce, Inc. | Multi-memory device system and method for managing a lifetime thereof |
US7809900B2 (en) | 2006-11-24 | 2010-10-05 | Sandforce, Inc. | System, method, and computer program product for delaying an operation that reduces a lifetime of memory |
US7904619B2 (en) | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for reducing memory write operations using difference information |
US7904672B2 (en) | 2006-12-08 | 2011-03-08 | Sandforce, Inc. | System and method for providing data redundancy after reducing memory writes |
US7849275B2 (en) | 2007-11-19 | 2010-12-07 | Sandforce, Inc. | System, method and a computer program product for writing data to different storage devices based on write frequency |
US7903486B2 (en) | 2007-11-19 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory |
US9183133B2 (en) * | 2007-11-28 | 2015-11-10 | Seagate Technology Llc | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory |
US8291152B2 (en) * | 2009-01-07 | 2012-10-16 | Silicon Motion, Inc. | Method for operating non-volatile memory and data storage system using the same |
US8516166B2 (en) | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
WO2011010344A1 (ja) * | 2009-07-22 | 2011-01-27 | 株式会社日立製作所 | 複数のフラッシュパッケージを有するストレージシステム |
JP5002719B1 (ja) | 2011-03-10 | 2012-08-15 | 株式会社東芝 | 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法 |
JP5405513B2 (ja) | 2011-03-22 | 2014-02-05 | 株式会社東芝 | メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム |
KR101596606B1 (ko) | 2011-08-19 | 2016-03-07 | 가부시끼가이샤 도시바 | 정보 프로세싱 장치, 정보 프로세싱 장치를 제어하는 방법, 제어 도구를 저장하는 비일시적 기록 매체, 호스트 디바이스, 성능 평가 도구를 저장하는 비일시적 기록 매체, 및 외부 메모리 디바이스를 위한 성능 평가 방법 |
US9064579B2 (en) | 2012-07-16 | 2015-06-23 | Kabushiki Kaisha Toshiba | Semiconductor memory apparatus, data transmission device, and recording method |
US10037172B2 (en) | 2016-02-09 | 2018-07-31 | Toshiba Memory Corporation | Memory system and controlling method |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0573435A (ja) * | 1991-09-12 | 1993-03-26 | Nagano Oki Denki Kk | 記憶素子監視保護装置 |
JP3938208B2 (ja) * | 1991-11-28 | 2007-06-27 | 株式会社日立製作所 | フラッシュメモリを備えた情報機器 |
JPH06338195A (ja) * | 1993-05-31 | 1994-12-06 | Nec Corp | 電気的消去可能な不揮発性メモリの書き込み回数管理装置 |
JPH0764868A (ja) * | 1993-08-24 | 1995-03-10 | Melco:Kk | 記憶更新装置 |
JPH0765592A (ja) * | 1993-08-25 | 1995-03-10 | Nec Corp | 不揮発性メモリ |
JPH09237162A (ja) * | 1996-02-23 | 1997-09-09 | Hewlett Packard Co <Hp> | 走査型データ記憶システム、及びその針摩耗管理方法、媒体摩耗管理方法、並びに残存寿命表示装置 |
JPH10187548A (ja) * | 1996-12-24 | 1998-07-21 | Toyota Autom Loom Works Ltd | 記憶装置 |
JPH113287A (ja) * | 1997-06-12 | 1999-01-06 | Hitachi Ltd | 記憶装置およびそれに用いられる記憶領域管理方法 |
JP4079506B2 (ja) * | 1997-08-08 | 2008-04-23 | 株式会社東芝 | 不揮発性半導体メモリシステムの制御方法 |
JP3557511B2 (ja) * | 1997-08-27 | 2004-08-25 | 沖電気工業株式会社 | 半導体ディスク装置の寿命算出方法 |
JP3544859B2 (ja) * | 1998-05-11 | 2004-07-21 | 富士通株式会社 | 不揮発性半導体メモリを使用した2次記憶装置 |
JP3242890B2 (ja) * | 1998-12-16 | 2001-12-25 | 株式会社ハギワラシスコム | 記憶装置 |
US6427186B1 (en) * | 1999-03-30 | 2002-07-30 | Frank (Fong-Long) Lin | Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers |
US7130807B1 (en) * | 1999-11-22 | 2006-10-31 | Accenture Llp | Technology sharing during demand and supply planning in a network-based supply chain environment |
TW520514B (en) * | 2001-08-02 | 2003-02-11 | Macronix Int Co Ltd | Circuit and method of qualification test for non-volatile memory |
US7000063B2 (en) * | 2001-10-05 | 2006-02-14 | Matrix Semiconductor, Inc. | Write-many memory device and method for limiting a number of writes to the write-many memory device |
KR100484485B1 (ko) * | 2002-10-01 | 2005-04-20 | 한국전자통신연구원 | 비휘발성 메모리에의 데이터 저장 방법 및 장치 |
US6910106B2 (en) * | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
JP2004145934A (ja) * | 2002-10-22 | 2004-05-20 | Matsushita Electric Ind Co Ltd | ディスク記憶装置およびディスク記憶システム |
US6973531B1 (en) * | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
US7035967B2 (en) * | 2002-10-28 | 2006-04-25 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
JP2004151944A (ja) * | 2002-10-30 | 2004-05-27 | Denso Corp | 不揮発性記憶装置へのデータの書き込み方法、プログラム、および装置、ならびに車載電子制御装置 |
JP2004341989A (ja) * | 2003-05-19 | 2004-12-02 | Matsushita Electric Ind Co Ltd | メモリカードパックとメモリカード |
TWI220031B (en) * | 2003-07-01 | 2004-08-01 | Delta Electronics Inc | Method and apparatus for time-relevant accessing a non-volatile memory in an electrical equipment |
US7480760B2 (en) * | 2003-12-17 | 2009-01-20 | Wegener Communications, Inc. | Rotational use of memory to minimize write cycles |
JP4211627B2 (ja) * | 2004-02-12 | 2009-01-21 | 日本電気株式会社 | ファイル記録方法およびファイルシステム |
JP4527456B2 (ja) * | 2004-07-06 | 2010-08-18 | Necインフロンティア株式会社 | メモリ寿命警告装置、および情報処理方法 |
JP2006092070A (ja) * | 2004-09-22 | 2006-04-06 | Nec Corp | ディスクアレイ装置及びその制御方法並びに制御プログラム |
WO2006052897A2 (en) * | 2004-11-08 | 2006-05-18 | Innopath Software, Inc. | Reorganizing images in static file system differencing and updating |
TWI257044B (en) * | 2004-11-26 | 2006-06-21 | Hon Hai Prec Ind Co Ltd | Apparatus and method for prolonging useful life of non-volatile memory |
JP2006235960A (ja) * | 2005-02-24 | 2006-09-07 | Fujitsu Ltd | ガーベッジコレクション高速化方法 |
JP2006236210A (ja) * | 2005-02-28 | 2006-09-07 | Oki Data Corp | メモリ書込装置 |
US7447944B2 (en) * | 2005-04-29 | 2008-11-04 | Freescale Semiconductor, Inc. | Predictive methods and apparatus for non-volatile memory |
-
2007
- 2007-11-21 JP JP2009538408A patent/JP5171840B2/ja not_active Expired - Fee Related
- 2007-11-21 WO PCT/US2007/024295 patent/WO2008063647A2/en active Application Filing
- 2007-11-21 CN CN200780043176.3A patent/CN101578587B/zh active Active
- 2007-11-22 TW TW096144306A patent/TWI475569B/zh not_active IP Right Cessation
-
2012
- 2012-11-05 JP JP2012243564A patent/JP5448013B2/ja not_active Expired - Fee Related
-
2013
- 2013-12-18 JP JP2013261095A patent/JP5814335B2/ja not_active Expired - Fee Related
- 2013-12-18 JP JP2013261097A patent/JP2014078262A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106980566A (zh) * | 2017-03-27 | 2017-07-25 | 联想(北京)有限公司 | 一种显示控制方法及存储装置 |
CN106980566B (zh) * | 2017-03-27 | 2020-05-26 | 联想(北京)有限公司 | 一种显示控制方法及存储装置 |
Also Published As
Publication number | Publication date |
---|---|
TW200834601A (en) | 2008-08-16 |
JP5171840B2 (ja) | 2013-03-27 |
JP2010511225A (ja) | 2010-04-08 |
TWI475569B (zh) | 2015-03-01 |
JP2014078262A (ja) | 2014-05-01 |
JP5448013B2 (ja) | 2014-03-19 |
WO2008063647A3 (en) | 2008-10-16 |
JP5814335B2 (ja) | 2015-11-17 |
JP2014089734A (ja) | 2014-05-15 |
CN101578587B (zh) | 2015-02-25 |
JP2013084275A (ja) | 2013-05-09 |
WO2008063647A9 (en) | 2008-11-27 |
WO2008063647A2 (en) | 2008-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101578587A (zh) | 延迟缩减存储器寿命的操作 | |
US9696916B2 (en) | Techniques for reducing memory write operations using coalescing memory buffers and difference information | |
US8140860B2 (en) | Policy-driven file system with integrated RAID functionality | |
US8230183B2 (en) | Techniques for prolonging a lifetime of memory by controlling operations that affect the lifetime of the memory | |
US8171356B2 (en) | Reducing writes, and estimating and displaying estimated remaining lifetime of non-volatile memories | |
US8417886B2 (en) | Storage system | |
US20110125956A1 (en) | Techniques for multi-memory device lifetime management | |
CN101925884A (zh) | 增加存储器的备用空间以延长存储器的寿命 | |
US7328326B2 (en) | Storage device | |
US20090132621A1 (en) | Selecting storage location for file storage based on storage longevity and speed | |
US20080126685A1 (en) | System, method, and computer program product for reducing memory write operations using an instruction set | |
CN103425589A (zh) | 控制装置、存储装置以及存储控制方法 | |
CN101763309A (zh) | 非易失性存储装置、信息记录系统及信息记录方法 | |
US11481120B2 (en) | Reducing wear on zoned storage devices for storing digital data | |
CN113050884A (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 | ||
ASS | Succession or assignment of patent right |
Owner name: INFINEON TECHNOLOGIES CORP. Free format text: FORMER OWNER: SANDFORCE INC. Effective date: 20130822 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20130822 Address after: California, USA Applicant after: LSI Corp. Address before: California, USA Applicant before: Sandforce Inc. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |