CN112204514A - 用于保留非易失性存储器的预期寿命的技术 - Google Patents
用于保留非易失性存储器的预期寿命的技术 Download PDFInfo
- Publication number
- CN112204514A CN112204514A CN201980034193.3A CN201980034193A CN112204514A CN 112204514 A CN112204514 A CN 112204514A CN 201980034193 A CN201980034193 A CN 201980034193A CN 112204514 A CN112204514 A CN 112204514A
- Authority
- CN
- China
- Prior art keywords
- application
- computing device
- information
- volatile memory
- budget
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000004044 response Effects 0.000 claims abstract description 16
- 238000003860 storage Methods 0.000 claims description 75
- 230000036541 health Effects 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 4
- 230000003321 amplification Effects 0.000 description 15
- 238000003199 nucleic acid amplification method Methods 0.000 description 15
- 238000013403 standard screening design Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 239000010410 layer Substances 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000035939 shock Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000003090 exacerbative effect Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000005195 poor health Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- 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/3442—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 planning or managing the needed capacity
-
- 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
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- 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/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本文公开了一种用于保留与计算设备可通信地耦接的非易失性存储器的预期寿命的技术。根据一些实施方案,该技术可以由该计算设备实现,并且包括(1)接收与该非易失性存储器相关联的度量,(2)对于与该计算设备相关联的多个应用程序中的每个应用程序:基于该度量为该应用程序建立相应写入预算。根据一些实施方案,每个应用程序的该相应写入预算还可基于该多个应用程序的计数。另外,该技术还可包括(3)从该多个应用程序中的一个应用程序接收指向该非易失性存储器的写入请求,以及(4)响应于确定该写入请求不违反该应用程序的该相应写入预算:向该非易失性存储器发出该写入请求。
Description
技术领域
所述实施方案阐述了用于保留与计算设备可通信地耦接的非易失性存储器(例如,固态驱动器(SSD))的预期寿命的技术。具体地讲,这些技术涉及为应用程序建立写入预算,以根据非易失性存储器的当前健康状况和预期寿命来控制非易失性存储器上的磨损率。
背景技术
固态驱动器(SSD)是一种类型的存储设备,其与传统的基于磁性的硬盘驱动器(HDD)共享类似的物理占有面积(并提供与传统的基于磁性的HDD类似的功能)。值得注意的是,利用“闪存”非易失性存储器的标准SSD可提供优于标准HDD的各种优点,诸如显著更快的输入/输出(I/O)性能。例如,SSD提供的平均I/O延迟速度通常优于HDD的平均I/O延迟速度,因为在SSD的整个存储块上对数据进行分段时SSD的I/O延迟速度受到的影响较小。这是因为HDD包括在每次读取/写入数据时必须重新定位的读取头部件,该读取头部件会在写入数据的平均连续性随时间推移而减少时产生延迟瓶颈。此外,当在HDD内发生分段时,有必要执行耗费资源的重组操作以改善或恢复性能。相比之下,即使数据分段水平增加,不受读取头部件限制的SSD也可以保留I/O性能。SSD还提供增加的抗冲击性的有益效果(因为不存在运动部件),并且一般来讲,实际上是无限的形状因数潜力。这些优点,结合消费者负担得起的价格增加了SSD的可用性,使得SSD成为移动设备诸如膝上型电脑、平板电脑和智能电话的优选选择。
尽管SSD提供了上述有益效果,但仍存在尚未解决的一些缺点,包括通常称为“SSD磨损”的现象,该现象影响SSD的总体寿命。具体地讲,众所周知,SSD的存储块在其总体可靠性开始降低之前仅允许将数据写入其中阈值次数。遗憾的是,SSD操作的性质及其使用方式导致向SSD发出的写入请求的平均数不断增加,从而损害其预期寿命。例如,安装在计算设备上的应用程序的平均数量随时间推移而增加,这直接导致向计算设备的SSD发出的写入请求的数量增加。此外,此类写入请求通常由于写入放大而在体积上倍增,写入放大是由于SSD要求给定块内的所有页面在新数据写入一个或多个页面之前被完全擦除。具体地讲,当待擦除页面内的现有数据需要保留在SSD内时,需要附加的写入命令以将现有数据迁移到SSD内的新存储区域,从而加剧这些问题。
因此,需要一种用于保留与计算设备可通信地耦接的非易失性存储器的预期寿命的方法。
发明内容
一个实施方案阐述了一种用于保留与计算设备可通信地耦接的非易失性存储器的预期寿命的方法。根据一些实施方案,该方法可以由计算设备实现,并且包括以下步骤:(1)接收与非易失性存储器相关联的度量,(2)对于与该计算设备相关联的多个应用程序中的每个应用程序:基于这些度量为该应用程序建立相应写入预算。根据一些实施方案,每个应用程序的相应写入预算还可基于多个应用程序的计数。另外,该方法还可包括以下步骤:(3)从多个应用程序中的一个应用程序接收指向非易失性存储器的写入请求,以及(4)响应于确定写入请求不违反该应用程序的相应写入预算:向非易失性存储器发出写入请求。
其他实施方案包括一种被配置为存储指令的非暂态计算机可读存储介质,该指令当由被包括在计算设备中的处理器执行时使得该计算设备执行上述方法中的任一方法的各步骤。另外的实施方案包括被配置为执行前述方法中任何方法的各种步骤的计算设备。
根据结合以举例的方式示出所述实施方案的原理的附图而进行的以下详细描述,本文所述的实施方案的其他方面和优点将变得显而易见。
附图说明
所包括的附图用于说明性目的,并且仅用于提供所公开的用于提供无线计算设备的本发明装置和方法的可能的结构和布置方式的示例。这些附图决不限制本领域的技术人员在不脱离实施方案的实质和范围的情况下可对实施方案作出的在形式和细节上的任何改变。该实施方案通过以下结合附图的详细描述将易于理解,其中相似的附图标号指代相似的结构元件。
图1示出了根据一些实施方案的可被配置为实现本文所述的各种技术的计算设备的框图。
图2示出了根据一些实施方案的向图1所示的计算设备的部件提供附加上下文的框图。
图3示出了根据一些实施方案的用于为多个应用程序生成写入预算的方法。
图4示出了根据一些实施方案的用于根据对应于应用程序的写入预算处理由该应用程序发出的写入请求的方法。
图5示出了根据一些实施方案的可用于实现本文所述的各个部件的计算设备的详细视图。
具体实施方式
在本部分中提供了根据本发明所述的实施方案的装置和方法的代表性应用。提供这些示例仅为了添加上下文并有助于理解所描述的实施方案。因此对于本领域的技术人员将显而易见的是,当前描述的实施方案可在不具有这些具体细节中的一些或所有的情况下被实践。在其他实例中,未详细描述众所周知的工艺步骤,以便避免不必要地使当前描述的实施方案晦涩难懂。其他应用是可能的,使得以下示例不应被当作是限制性的。
所述实施方案阐述了用于保留与计算设备可通信地耦接的非易失性存储器(例如,固态驱动器(SSD))的预期寿命的技术。根据一些实施方案,该技术可由计算设备实现,并且包括以下步骤:(1)接收与非易失性存储器相关联的度量。根据一些实施方案,这些度量可以包括与非易失性存储器相关联的以下属性中的至少一个属性:写入周期信息、编程/擦除(PE)周期信息、写入放大信息、坏块信息、过度配置信息、存储容量信息、配置类型信息、事件信息或年龄信息。
继而,前述度量可用于为与计算设备相关联的多个应用程序建立写入预算。例如,该技术还可包括以下步骤:(2)对于与该计算设备相关联的多个应用程序中的每个应用程序:基于这些度量为该应用程序建立相应写入预算。根据一些实施方案,每个应用程序的相应写入预算还可基于多个应用程序的计数。另外,该技术还可包括以下步骤:(3)从多个应用程序中的一个应用程序接收指向非易失性存储器的写入请求,以及(4)确定写入请求是否违反该应用程序的相应写入预算。具体地讲,当未违反应用程序的相应写入预算时,计算设备可向非易失性存储器发出写入请求。另选地,当违反应用程序的相应写入预算时,计算设备可执行各种反作用措施,包括例如(i)向计算设备的用户和/或应用程序的开发者提供通知,(ii)延迟向非易失性存储器发出写入请求,(iii)终止应用程序等。
下文阐述了关于这些技术的更详细论述并结合各个附图进行了描述,这些附图示出了可用于实现这些技术的系统和方法的详细图示。
图1示出了计算设备102(例如,智能电话、平板电脑、膝上型电脑、台式计算机、服务器等)的框图100,该计算设备可被配置为实现本文所述的各种技术。应当理解,为了简化起见,图1中示出的计算设备102的各种硬件部件以高层级呈现,并且下面结合图5提供更详细的细分。还应当理解,在不脱离本公开的范围的情况下,计算设备102可包括能够实现本文所述的各种技术的附加实体。还应当理解,在不脱离本公开的范围的情况下,本文所述的实体可被组合或分割成额外的实体。还应当理解,在不脱离本公开的范围的情况下,可使用基于软件或基于硬件的方法来实现本文所述的各种实体。
如图1所示,计算设备102可包括处理器104,该处理器结合易失性存储器106(例如,动态随机存取存储器(DRAM))和存储设备118(例如,固态驱动器(SSD)等),使得在计算设备102上能够执行不同的软件实体。例如,处理器104可被配置为将操作系统(OS)108的各种部件加载到易失性存储器106中,该OS通过在存储设备118上执行的固件120存储在存储设备118的非易失性存储器122中。继而,OS 108可以使计算设备102能够提供各种可用的功能,例如,加载/执行各种软件实体。此类实体可包括例如一个或多个应用程序110、文件系统112、存储驱动器114和预算引擎116。根据一些实施方案,应用程序110可表示被配置为在OS108内执行的任何应用程序,例如系统守护进程、用户应用程序等,其中每个应用程序110与相应唯一的应用程序标识符(ID)111相关联。
根据一些实施方案,并且如图2的框图200所示,存储驱动器114可被配置为与预算引擎116进行交互,该预算引擎为应用程序110生成写入预算117。生成写入预算117的预备步骤可涉及存储驱动器114接收与存储设备118相关联的最新操作信息。如图2所示,此类操作信息由与存储设备118相关联的度量202的集合表示,并且可包括写入周期信息204、编程/擦除(PE)周期信息206、写入放大信息208、坏块信息210、过度配置信息212、存储容量信息214、配置类型信息216、事件信息218和年龄信息220。根据一些实施方案,度量202可由控制存储设备118的总体操作的固件120维护。另外,度量可由存储驱动器114维护—例如,度量202可在存储设备118被添加到计算设备102时被编程到存储驱动器114中,并且在存储设备118的整个操作期间由存储驱动器114更新。
简而言之,需注意,在不脱离本公开的范围的情况下,每个度量202可表示值集合。例如,写入周期信息204可以包括关于以下内容的信息:(1)固件120接收到的写入请求,(2)固件120发出的执行写入请求的补充写入请求(例如,由于写入放大导致),(3)非易失性存储器122可以在经历劣化之前可靠地处理的估计数量的写入请求等。需注意,前述值是示例性的,并不旨在进行限制。此外,对于给定度量202,在不脱离本公开的范围的情况下,值集合中的每个值可涵盖表示不同时间段内的值的各方面的值的子集。例如,写入周期信息204的上述值(1)和(2)可包括以小时计、以日计、以周计、以月计的值等。需注意,前述时间段是示例性的,并不旨在进行限制。另外,对于给定度量202,预算引擎116可使用任何方法来分析所有上述值以计算值,从而有效地建立写入预算117,这些写入预算将使非易失性存储器122的可用性最大化,同时保留其寿命。例如,预算引擎116可被配置为将值一起平均,将权重应用于不同的值,将值置于公式的变量中等。需注意,前述计算是示例性的,并不旨在进行限制。因此,应当理解,在不脱离本公开的范围的情况下,前述概念可以任何粒度级别应用于任何度量202。
根据一些实施方案,写入周期信息204可识别已由存储设备118处理的写入请求。如上所述,写入周期信息204可以表示与由固件120处理的写入请求的量相关联的许多方面。例如,写入周期信息204可涵盖由于在处理传入写入请求时发生的写入放大而由存储设备118处理的附加写入请求。同样,写入放大可能由于以下事实而发生:在将新数据写入一个或多个页面之前,必须完全擦除非易失性存储器122的给定块内的所有页面。值得注意的是,并且根据一些实施方案,此类擦除可由PE周期信息206量化和表示,以进一步补充写入周期信息204。当待擦除页面内的现有数据需要保留在非易失性存储器122内时,可能需要附加写入请求以将现有数据迁移到非易失性存储器122内的新存储区域,这些附加写入请求可被添加到写入周期信息204。就这一点而言,为了估计非易失性存储器122的总体健康状况,可将写入周期信息204/PE周期信息206与存储设备118预期在不发出例如最大写入周期容量的情况下处理的已知数量的操作进行比较。继而,当为应用程序110生成写入预算117时,预算引擎116可考虑总体健康状况。例如,当非易失性存储器122在预期处于良好或优异健康状态的时间期间处于不良健康状态时,预算引擎116可生成写入预算117,这些写入预算有效地减少由应用程序110发出的写入请求的数量,以试图实现非易失性存储器122的预期寿命。
如上所述,写入放大行为可显著影响写入周期信息204和PE周期信息206。因此,写入放大信息208可表示固件120在处理写入请求时观察到的平均放大因数。例如,平均来说,当每个写入请求需要执行三个附加写入请求(由于写入放大导致)时,写入放大信息208可取值为三。就这一点而言,写入放大信息208可影响预算引擎116预测非易失性存储器122的劣化速率的方式。例如,当写入放大信息208在给定时间段内指示高值时,预算引擎116可减少写入预算117以帮助减少非易失性存储器122的磨损,否则如果写入请求未减少,则将发生该磨损。在对比示例中,当写入放大信息在给定时间段内指示低值时,预算引擎116可增加写入预算117以使非易失性存储器122能够以更高的速率被使用,同时最小化对其预期寿命的影响。
根据一些实施方案,坏块信息210可以描述非易失性存储器122的已经被固件120识别为不可靠的区域。这可例如由于制造缺陷,由于较差的写入分布、物理冲击等而发生过度磨损等造成。就这一点而言,坏块信息210可表示与不再可用的非易失性存储器122相关联的存储容量的量。另外,过度配置信息212可指示非易失性存储器122已被预留以在计算设备102的正常操作之外使用的区域/大小。具体地讲,重要的是存储设备118具有内部存储器的预留区域,以确保存储设备118可保持能够执行通常由于写入放大而发生的数据迁移。在一些情况下,SSD制造商在将其SSD分销给客户之前预留内部存储器的固定区域。另选地,计算设备上放置SSD的操作系统(OS)可例如在格式化/OS安装程序期间预留存储器的固定区域。鉴于上述情况,预算引擎116可被配置为减去由坏块信息210(以及过度配置信息212)表示的存储容量的量,以识别非易失性存储器122内的可用存储的实际量,该可用存储的实际量可由存储容量信息214表示。这样,预算引擎116可在生成写入预算117时考虑存储容量信息214。例如,当存储容量信息214指示非易失性存储器122内的可用存储空间的低总体消耗时,预算引擎116可增加写入预算117。具体地讲,由于大量可用存储空间可使得未来写入请求能够广泛分布在整个非易失性存储器122中,因此可增加写入预算117,从而减少原本可能发生的对非易失性存储器122的特定区域的总体磨损。
另外,配置类型信息216可表示与存储设备118相关联的影响其预期寿命的各种物理和操作方面。根据一些实施方案,配置类型信息216可识别非易失性存储器122的底层物理方面,例如,是否使用NOR闪存、NAND闪存等形成非易失性存储器122。此外,配置类型信息216可指示非易失性存储器122的底层物理方面的配置,例如,非易失性存储器122是否为单层单元、多层单元、三层单元、四层单元等。另外,配置类型信息216可指示与非易失性存储器122相关联的其他操作方面,例如,非易失性存储器122操作的电压、非易失性存储器122操作的频率等。根据一些实施方案,配置类型信息216可由预算引擎116用于计算非易失性存储器122的预期寿命。例如,当配置类型信息216指示非易失性存储器122由四层单元配置中的NAND闪存构成时,预算引擎116可减少写入预算117,因为该构成的已知寿命具有更高的磨损率(与三层单元、多层单元和单层单元相比)。在对比示例中,当配置类型信息216指示非易失性存储器122由单层单元配置中的NAND闪存构成时,预算引擎116可增加写入预算117,并且该构成具有最低已知磨损率。
另外,事件信息218可表示在存储设备118的整个操作中发生的可能影响其预期寿命的各种事件。例如,事件信息218可包括可能潜在地损害非易失性存储器122的物理完整性的电压浪涌事件。又如,事件信息218可包括可能潜在地损害非易失性存储器122的物理完整性的物理冲击事件(例如,当计算设备102掉落时)。在又一个示例中,事件信息218可包括可能潜在地损害非易失性存储器122的物理完整性的温度变化事件(例如,当计算设备102被放置在极冷或热环境中时)。在另一个示例中,事件信息218可包括可能潜在地损害非易失性存储器122的物理完整性的湿度变化事件(例如,当计算设备102暴露于液体时)。需注意,前述示例并非意在进行限制,并且事件信息218可涵盖可能潜在地影响存储设备118的预期寿命的任何内部或外部发生的事件。另外,需注意,计算设备102可被配置为结合使前述事件能够被检测的任何部件(图1中未示出),例如,电压传感器、温度传感器、加速度计、湿度传感器等。这样,预算引擎116可在生成写入预算117时考虑事件信息218的影响。例如,预算引擎116可被配置为在事件信息218指示已发生可能已减少存储设备118的预期寿命的若干损害事件(例如,多次掉落、遇水损坏等)时减少写入预算117。
另外,年龄信息220可表示与存储设备118相关联的可潜在地影响其预期寿命的各种时间方面。例如,年龄信息220可包括非易失性存储器122的制造日期、非易失性存储器122的总运行时间、应用于非易失性存储器122的电力周期的数量等。这样,预算引擎116可进一步估计非易失性存储器122的预期寿命。例如,当存储设备118相对于其制造日期年龄较大,但具有低总运行时间/电力周期计数时,预算引擎116可忽略存储设备118原本可能错误地指示不良总体健康状况的较大年龄。又如,当存储设备118相对于其制造日期年龄较小,但具有高总运行时间/电力周期计数时,预算引擎116可忽略存储设备118原本可能错误地指示优秀总体健康状况的较小年龄。
需注意,图2中所示和上文所述的各种度量202并不旨在表示在生成写入预算117时可由预算引擎116分析的信息的详尽列表。相反,预算引擎116可被配置为分析与任何身体、行为、操作等、关联于计算设备102自身的操作、存储设备118自身的操作的方面等相关联的任何可用信息。在任何情况下,度量202可由存储驱动器114提供给预算引擎116,其中预算引擎116继而为应用程序110中的每个应用程序建立相应写入预算117。例如,预算引擎116可针对每个应用程序110维护识别以下内容的条目:(1)与应用程序110相关联的相应应用程序ID 111和(2)为应用程序110生成的相应写入预算117。需注意,附加信息可包括在图2所示的表中,但为了简化本公开而被省略。例如,在不脱离本公开的范围的情况下,预算引擎116可针对每个应用程序110维护与维护相应写入预算117相关的任何信息,例如,生成相应写入预算117的时间、用于先前生成的写入预算117的值等。就这一点而言,预算引擎116可选择性地有效识别应更新的写入预算117。
根据一些实施方案,预算引擎116可识别与计算设备102相关联的应用程序110的数量,并且在生成写入预算117时考虑该数量。例如,当预算引擎116识别到仅单个应用程序110与计算设备102相关联(例如,本地安装在计算设备102上的应用程序110,或者在另一个计算设备上执行但经由计算设备102访问存储设备118的应用程序110)时,预算引擎116可提供写入预算117,该写入预算考虑了可在对应于写入预算117的时间帧内安全发出的所有写入请求。相比之下,当多个应用程序110与计算设备102相关联时,预算引擎116可提供写入预算117,这些写入预算均匀拆分可在对应于写入预算117的预期时间帧内安全发出的写入请求的数量。
另外,需注意,应用程序110可与影响预算引擎116分配可在对应于写入预算117的预期时间帧内安全发出的写入请求的数量的方式的不同优先级相关联。例如,高优先级应用程序110(例如,用户频繁访问的前台应用程序110)可被分配高优先级,而低优先级应用程序110(例如,用户不频繁访问的后台应用程序110)可被分配低优先级。就这一点而言,当预算引擎116正在为应用程序110生成写入预算117时,给定应用程序110的优先级可用作权重。另外,一些应用程序110(例如,OS 108的控制计算设备102的总体操作的守护进程)可免于在写入预算117的要求下操作,因为此类写入预算117可能损害用户以预期方式与计算设备102进行交互的能力。为了实现豁免,存储驱动器114/预算引擎116可被配置为识别被标记为豁免的应用程序110,并且在生成和实施写入预算117时忽略此类应用程序110。
在建立写入预算117的情况下,存储驱动器114可在计算设备102操作时有效地控制处理由应用程序110发出的写入请求的方式。例如,一些应用程序110可通过与由存储驱动器114实现的框架重合的应用程序编程接口(API)调用来访问其相应写入预算117,以使写入预算117可用。这样,应用程序110可根据其相应写入预算117的当前状态任选地自调节其发出的写入请求的数量,意图保持在其写入预算117内。另外,应用程序110可保持不知道其相应写入预算117,使得这些应用程序仅在其写入预算117接近或已达到耗尽时依赖于被存储驱动器114通知。在任一种情况下,写入预算117都可有助于保留存储设备118的预期寿命,从而增强总体用户体验。
根据一些实施方案,当给定应用程序110接近或违反其相应写入预算117时,可使用各种方法。根据一些实施方案,这些方法可包括:向计算设备102的用户和/或应用程序110的开发者提供通知,延迟向非易失性存储器122发出由应用程序110发出的写入请求,终止应用程序110等。需注意,前述方法不旨在表示当写入预算117受到应用程序110的挑战时可实现的响应行为的详尽列表。相反,在不脱离本公开的范围的情况下,可利用任何反应行为,包括听觉/视觉通知、操作变化、信息记录等。
另外,需注意,预算引擎116可被配置为监视指示预算引擎116何时应生成更新的写入预算117的不同条件。例如,预算引擎116可被配置为周期性地(例如,每天、每周等)更新写入预算117。又如,预算引擎116可被配置为在应用程序110的配置改变时更新写入预算117,例如,新应用程序110的安装、现有应用程序110的卸载、新远程应用程序110(在不同于计算设备102的设备上执行的应用程序)的注册、应用程序110的属性(例如,优先级)的改变等。又如,预算引擎116可被配置为响应于例如从计算设备102的用户、计算设备102的管理员、计算设备102的制造商等接收到命令而更新写入预算117。需注意,前述示例不旨在表示当确定是否应更新写入预算117时可由预算引擎116监视的条件的详尽列表。相反,在不脱离本公开的范围的情况下,这些条件可考虑与计算设备102的总体操作相关联的任何数量的方面。
需注意,在不脱离本公开的范围的情况下,可以修改存储驱动器114、预算引擎116和固件120的责任以实现本文所述的相同或类似的功能。例如,在不脱离本公开的范围的情况下,存储驱动器114可以实现由预算引擎116/固件120实现的技术的全部或一部分。又如,在不脱离本公开的范围的情况下,存储驱动器114可以实现与管理存储设备118的度量202相关联的责任的全部或一部分。
因此,图1至图2提供了根据一些实施方案的计算设备102可被配置为实现本文所述的技术的方式的概述。下文结合图3至图4所示的方法提供了存储驱动器114、预算引擎116和固件120可被配置为操作的方式的更详细的细分。
图3示出了根据一些实施方案的用于为与计算设备102相关联的应用程序110生成写入预算117的方法300。需注意,在不脱离本公开的范围的情况下,可以修改存储驱动器114、预算引擎116和固件120的责任以实现本文所述的相同或类似的功能。然而,为了清楚起见,从预算引擎116的角度示出了图3的方法300。
如图3所示,方法300开始于步骤302,其中预算引擎116接收与存储设备118的非易失性存储器122相关联的度量202(例如,如上文结合图1至图2所述)。在步骤304处,预算引擎116针对与计算设备102相关联的应用程序110中的每个应用程序110执行步骤306、308和310。具体地讲,在步骤306处,预算引擎116基于度量202为应用程序110建立相应写入预算117(例如,如上文结合图1至图2所述)。在步骤308处,预算引擎116基于应用程序110的计数来更新相应写入预算117(例如,如上文结合图1至图2所述)。在步骤310处,预算引擎116向应用程序110提供相应写入预算117。
在步骤312处,预算引擎116确定更新写入预算117的条件是否得到满足(例如,如上文结合图1至图2所述)。在步骤312处,如果预算引擎116确定更新写入预算117的条件得到满足,则方法300回到步骤304,在该步骤中如本文先前所述那样执行后续步骤。否则,方法300在步骤312处重复,直到条件得到满足。
图4示出了根据一些实施方案的用于根据对应于应用程序110的写入预算117处理由应用程序110发出的写入请求的方法400。同样,需注意,在不脱离本公开的范围的情况下,可以修改存储驱动器114、预算引擎116和固件120的责任以实现本文所述的相同或类似的功能。然而,为了清楚起见,从预算引擎116的角度示出了图4的方法400。
根据一些实施方案,并且如图4所示,方法400开始于步骤402,其中预算引擎116从应用程序110接收写入请求。在步骤404处,预算引擎116获得应用程序110的相应写入预算117。在步骤406处,预算引擎116确定写入请求是否违反相应写入预算117。在步骤406处,如果预算引擎116确定写入请求违反相应写入预算117,则方法400前进至步骤408,在该步骤处,预算引擎116执行特定动作(例如,如上文结合图1至图2所述)。然而,在步骤406处,如果预算引擎116确定写入请求不违反相应写入预算117,则该方法前进至步骤410,在该步骤处,预算引擎116向非易失性存储器122发出写入请求。
图5示出了根据一些实施方案的可用于实现本文所述的各个部件的计算设备500的详细视图。具体地讲,该详细视图示出了图1所示计算设备102中可包括的各个部件。如图5所示,计算设备500可包括表示用于控制计算设备500的总体操作的微处理器或控制器的处理器502。计算设备500还可包括用户输入设备508,该用户输入设备允许计算设备500的用户与计算设备500进行交互。例如,用户输入设备508可采取多种形式,诸如按钮、小键盘、拨号盘、触摸屏、音频输入接口、视觉/图像捕获输入接口、传感器数据形式的输入等。更进一步地,计算设备500可包括可由处理器502控制以向用户显示信息的显示器510(屏幕显示器)。数据总线516可促进至少存储设备540、处理器502和控制器513之间的数据传输。控制器513可用于通过装置控制总线514来与不同装置进行交互并对其进行控制。计算设备500还可包括耦接至数据链路512的网络/总线接口511。在无线连接的情况下,网络/总线接口511可包括无线收发器。
计算设备500还包括存储设备540,该存储设备可包括单个磁盘或多个磁盘(例如,SSD),并且包括管理存储设备540内的一个或多个分区的存储管理模块。在一些实施方案中,存储设备540可包括闪存存储器、半导体(固态)存储器等。该计算设备500还可包括随机存取存储器(RAM)520和只读存储器(ROM)522。ROM 522可存储将以非易失性方式执行的程序、实用程序或过程。RAM 520可提供易失性数据存储并存储与计算设备102的操作相关的指令。
可单独地或以任何组合使用所述实施方案的各个方面、实施方案、具体实施或特征。可由软件、硬件或硬件与软件的组合来实施所述实施方案的各个方面。所述实施方案也可体现为计算机可读介质上的计算机可读代码。计算机可读介质为可存储可被计算机系统读取的数据的任何数据存储设备。该计算机可读介质的示例包括只读存储器、随机存取存储器、CD-ROM、DVD、磁带、硬盘驱动器、固态驱动器和光学数据存储设备。计算机可读介质还可分布在网络耦合的计算机系统中,使得计算机可读代码以分布的方式被存储和执行。
为了说明的目的,前述描述使用具体命名以提供对所述实施方案的透彻理解。然而,对于本领域的技术人员而言将显而易见的是,不需要具体细节即可实践所述实施方案。因此,具体实施方案的前述描述被呈现用于例示和描述的目的。前述描述不旨在为穷举性的或将所述的实施方案限制为所公开的精确形式。对于本领域的普通技术人员而言将显而易见的是,鉴于上面的教导内容,许多修改和变型是可行的。
Claims (28)
1.一种用于保留与计算设备可通信地耦接的非易失性存储器的预期寿命的方法,所述方法包括在所述计算设备处:
接收与所述非易失性存储器相关联的度量;
对于与所述计算设备相关联的多个应用程序中的每个应用程序:
基于所述度量为所述应用程序建立相应写入预算;
从所述多个应用程序中的一个应用程序接收指向所述非易失性存储器的写入请求;并且
响应于确定所述写入请求不违反所述应用程序的所述相应写入预算:
向所述非易失性存储器发出所述写入请求。
2.根据权利要求1所述的方法,其中对于所述多个应用程序中的每个应用程序,所述相应写入预算还基于所述多个应用程序的计数。
3.根据权利要求1所述的方法,其中所述度量包括与所述非易失性存储器相关联的以下属性中的至少一个属性:
写入周期信息,
编程/擦除(PE)周期信息,
写入放大信息,
坏块信息,
过度配置信息,
配置类型信息,
存储容量信息,
事件信息,或
年龄信息。
4.根据权利要求1所述的方法,还包括响应于确定所述写入请求违反所述应用程序的所述相应写入预算而执行以下动作中的至少一个动作:
向所述计算设备的用户和/或所述应用程序的开发者提供通知,
延迟向所述非易失性存储器发出所述写入请求,或
终止所述应用程序。
5.根据权利要求4所述的方法,还包括:
根据所述写入请求违反或不违反所述应用程序的所述相应写入预算来更新与所述应用程序相关联的总体健康分数。
6.根据权利要求1所述的方法,还包括响应于识别出条件得到满足而:
接收与所述非易失性存储器相关联的更新的度量;并且
对于与所述计算设备相关联的所述多个应用程序中的每个应用程序:
基于所述度量为所述应用程序建立相应更新的写入预算。
7.根据权利要求6所述的方法,其中所述条件包括(i)经过阈值时间量,或(ii)接收命令。
8.至少一种非暂态计算机可读存储介质,所述至少一种非暂态计算机可读存储介质被配置为存储指令,所述指令在由被包括在计算设备中的至少一个处理器执行时,使得所述计算设备通过执行包括以下的步骤来保留与所述计算设备可通信地耦接的非易失性存储器的预期寿命:
接收与所述非易失性存储器相关联的度量;
对于与所述计算设备相关联的多个应用程序中的每个应用程序:
基于所述度量为所述应用程序建立相应写入预算;
从所述多个应用程序中的一个应用程序接收指向所述非易失性存储器的写入请求;并且
响应于确定所述写入请求不违反所述应用程序的所述相应写入预算:
向所述非易失性存储器发出所述写入请求。
9.根据权利要求8所述的至少一种非暂态计算机可读存储介质,其中对于所述多个应用程序中的每个应用程序,所述相应写入预算还基于所述多个应用程序的计数。
10.根据权利要求8所述的至少一种非暂态计算机可读存储介质,其中所述度量包括与所述非易失性存储器相关联的以下属性中的至少一个属性:
写入周期信息,
编程/擦除(PE)周期信息,
写入放大信息,
坏块信息,
过度配置信息,
配置类型信息,
存储容量信息,
事件信息,
或年龄信息。
11.根据权利要求8所述的至少一种非暂态计算机可读存储介质,其中所述步骤还包括响应于确定所述写入请求违反所述应用程序的所述相应写入预算而执行以下动作中的至少一个动作:
向所述计算设备的用户和/或所述应用程序的开发者提供通知,延迟向所述非易失性存储器发出所述写入请求,或
终止所述应用程序。
12.根据权利要求11所述的至少一种非暂态计算机可读存储介质,其中所述步骤还包括:
根据所述写入请求违反或不违反所述应用程序的所述相应写入预算来更新与所述应用程序相关联的总体健康分数。
13.根据权利要求8所述的至少一种非暂态计算机可读存储介质,其中所述步骤还包括响应于识别出条件得到满足而:
接收与所述非易失性存储器相关联的更新的度量;并且
对于与所述计算设备相关联的所述多个应用程序中的每个应用程序:
基于所述度量为所述应用程序建立相应更新的写入预算。
14.根据权利要求13所述的至少一种非暂态计算机可读存储介质,其中所述条件包括(i)经过阈值时间量,或(ii)接收命令。
15.一种计算设备,所述计算设备被配置为保留与所述计算设备可通信地耦接的非易失性存储器的预期寿命,所述计算设备包括:
至少一个处理器;和
至少一个存储器,所述至少一个存储器存储指令,所述指令在由所述至少一个处理器执行时使得所述计算设备:
接收与所述非易失性存储器相关联的度量;
对于与所述计算设备相关联的多个应用程序中的每个应用程序:
基于所述度量为所述应用程序建立相应写入预算;
从所述多个应用程序中的一个应用程序接收指向所述非易失性存储器的写入请求;并且
响应于确定所述写入请求不违反所述应用程序的所述相应写入预算:
向所述非易失性存储器发出所述写入请求。
16.根据权利要求15所述的计算设备,其中对于所述多个应用程序中的每个应用程序,所述相应写入预算还基于所述多个应用程序的计数。
17.根据权利要求15所述的计算设备,其中所述度量包括与所述非易失性存储器相关联的以下属性中的至少一个属性:
写入周期信息,
编程/擦除(PE)周期信息,
写入放大信息,
坏块信息,
过度配置信息,
配置类型信息,
存储容量信息,
事件信息,
或年龄信息。
18.根据权利要求15所述的计算设备,其中所述至少一个处理器还使得所述计算设备响应于确定所述写入请求违反所述应用程序的所述相应写入预算而执行以下动作中的至少一个动作:
向所述计算设备的用户和/或所述应用程序的开发者提供通知,延迟向所述非易失性存储器发出所述写入请求,或
终止所述应用程序。
19.根据权利要求18所述的计算设备,其中所述至少一个处理器进一步使得所述计算设备:
根据所述写入请求违反或不违反所述应用程序的所述相应写入预算来更新与所述应用程序相关联的总体健康分数。
20.根据权利要求15所述的计算设备,其中所述至少一个处理器还使得所述计算设备响应于识别出条件得到满足而:接收与所述非易失性存储器相关联的更新的度量;并且
对于与所述计算设备相关联的所述多个应用程序中的每个应用程序:
基于所述度量为所述应用程序建立相应更新的写入预算。
21.根据权利要求20所述的计算设备,其中所述条件包括(i)经过阈值时间量,或(ii)接收命令。
22.一种计算设备,所述计算设备被配置为保留与所述计算设备可通信地耦接的非易失性存储器的预期寿命,所述计算设备包括:
用于接收与所述非易失性存储器相关联的度量的装置;
用于针对与所述计算设备相关联的多个应用程序中的每个应用程序执行以下操作的装置:
基于所述度量为所述应用程序建立相应写入预算;
用于从所述多个应用程序中的一个应用程序接收指向所述非易失性存储器的写入请求的装置;并且
用于响应于确定所述写入请求不违反所述应用程序的所述相应写入预算而执行以下操作的装置:
向所述非易失性存储器发出所述写入请求。
23.根据权利要求22所述的计算设备,其中对于所述多个应用程序中的每个应用程序,所述相应写入预算还基于所述多个应用程序的计数。
24.根据权利要求22所述的计算设备,其中所述度量包括与所述非易失性存储器相关联的以下属性中的至少一个属性:
写入周期信息,
编程/擦除(PE)周期信息,
写入放大信息,
坏块信息,
过度配置信息,
配置类型信息,
存储容量信息,
事件信息,或
年龄信息。
25.根据权利要求22所述的计算设备,还包括:
用于响应于确定所述写入请求违反所述应用程序的所述相应写入预算而执行以下动作中的至少一个动作的装置:
向所述计算设备的用户和/或所述应用程序的开发者提供通知,
延迟向所述非易失性存储器发出所述写入请求,或
终止所述应用程序。
26.根据权利要求25所述的计算设备,还包括:
用于根据所述写入请求违反或不违反所述应用程序的所述相应写入预算来更新与所述应用程序相关联的总体健康分数的装置。
27.根据权利要求22所述的计算设备,还包括:
用于响应于识别出条件得到满足而执行以下操作的装置:
接收与所述非易失性存储器相关联的更新的度量;并且
用于针对与所述计算设备相关联的所述多个应用程序中的每个应用程序执行以下操作的装置:
基于所述度量为所述应用程序建立相应更新的写入预算。
28.根据权利要求27所述的计算设备,其中所述条件包括(i)经过阈值时间量,或(ii)接收命令。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862678180P | 2018-05-30 | 2018-05-30 | |
US62/678,180 | 2018-05-30 | ||
US16/136,164 | 2018-09-19 | ||
US16/136,164 US10719243B2 (en) | 2018-05-30 | 2018-09-19 | Techniques for preserving an expected lifespan of a non-volatile memory |
PCT/US2019/027068 WO2019231564A1 (en) | 2018-05-30 | 2019-04-11 | Techniques for preserving an expected lifespan of a non-volatile memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112204514A true CN112204514A (zh) | 2021-01-08 |
Family
ID=68693864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980034193.3A Pending CN112204514A (zh) | 2018-05-30 | 2019-04-11 | 用于保留非易失性存储器的预期寿命的技术 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10719243B2 (zh) |
EP (1) | EP3776165A4 (zh) |
CN (1) | CN112204514A (zh) |
WO (1) | WO2019231564A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11144481B2 (en) * | 2018-04-11 | 2021-10-12 | Apple Inc. | Techniques for dynamically adjusting the manner in which I/O requests are transmitted between a computing device and a storage device |
US11514981B1 (en) * | 2021-06-04 | 2022-11-29 | International Business Machines Corporation | Programming devices and weights in hardware |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172253A1 (en) * | 2007-12-28 | 2009-07-02 | Rothman Michael A | Methods and apparatuses for nonvolatile memory wear leveling |
US20150212745A1 (en) * | 2013-02-07 | 2015-07-30 | Apple Inc. | Non-volatile memory monitoring |
US20160342345A1 (en) * | 2015-05-20 | 2016-11-24 | Sandisk Enterprise Ip Llc | Variable Bit Encoding Per NAND Flash Cell to Improve Device Endurance and Extend Life of Flash-Based Storage Devices |
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8554983B2 (en) | 2008-05-27 | 2013-10-08 | Micron Technology, Inc. | Devices and methods for operating a solid state drive |
US9727473B2 (en) | 2008-09-30 | 2017-08-08 | Intel Corporation | Methods to communicate a timestamp to a storage system |
US8214580B2 (en) | 2009-10-23 | 2012-07-03 | International Business Machines Corporation | Solid state drive with adjustable drive life and capacity |
US8972694B1 (en) | 2012-03-26 | 2015-03-03 | Emc Corporation | Dynamic storage allocation with virtually provisioned devices |
US8843912B2 (en) | 2012-02-20 | 2014-09-23 | International Business Machines Corporation | Optimization of an application to reduce local memory usage |
US8832530B2 (en) * | 2012-09-26 | 2014-09-09 | Intel Corporation | Techniques associated with a read and write window budget for a two level memory system |
WO2014088445A1 (en) | 2012-12-05 | 2014-06-12 | Emc Corporation | Storage resource usage analysis for customized application options |
US8918583B2 (en) | 2012-12-20 | 2014-12-23 | Virtium Technology, Inc. | Adapting behavior of solid-state drive using real usage model |
US9229640B2 (en) * | 2013-11-15 | 2016-01-05 | Microsoft Technology Licensing, Llc | Inexpensive solid-state storage by throttling write speed in accordance with empirically derived write policy table |
US9606937B1 (en) * | 2014-02-28 | 2017-03-28 | Veritas Technologies Llc | Cache insertion based on threshold access frequency |
US9070481B1 (en) | 2014-05-30 | 2015-06-30 | Sandisk Technologies Inc. | Internal current measurement for age measurements |
US20160210060A1 (en) | 2015-01-21 | 2016-07-21 | HGST Netherlands B.V. | Dynamic resource allocation within storage devices |
JP2017091456A (ja) | 2015-11-17 | 2017-05-25 | 富士通株式会社 | 制御装置、制御プログラムおよび制御方法 |
KR102667430B1 (ko) * | 2016-08-04 | 2024-05-23 | 삼성전자주식회사 | 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법 |
-
2018
- 2018-09-19 US US16/136,164 patent/US10719243B2/en active Active
-
2019
- 2019-04-11 CN CN201980034193.3A patent/CN112204514A/zh active Pending
- 2019-04-11 EP EP19811266.6A patent/EP3776165A4/en active Pending
- 2019-04-11 WO PCT/US2019/027068 patent/WO2019231564A1/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172253A1 (en) * | 2007-12-28 | 2009-07-02 | Rothman Michael A | Methods and apparatuses for nonvolatile memory wear leveling |
US20150212745A1 (en) * | 2013-02-07 | 2015-07-30 | Apple Inc. | Non-volatile memory monitoring |
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
US20160342345A1 (en) * | 2015-05-20 | 2016-11-24 | Sandisk Enterprise Ip Llc | Variable Bit Encoding Per NAND Flash Cell to Improve Device Endurance and Extend Life of Flash-Based Storage Devices |
Also Published As
Publication number | Publication date |
---|---|
US20190369882A1 (en) | 2019-12-05 |
EP3776165A4 (en) | 2021-12-29 |
EP3776165A1 (en) | 2021-02-17 |
US10719243B2 (en) | 2020-07-21 |
WO2019231564A1 (en) | 2019-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8667216B2 (en) | Information processing device, external storage device, host device, relay device, control program, and control method of information processing device | |
TWI474335B (zh) | 增加記憶體的複數區塊的生命週期的系統、方法及電腦程式產品 | |
US9927985B2 (en) | Method of dynamic table journaling | |
CN105637470B (zh) | 用于脏数据管理的方法和计算设备 | |
US10241701B2 (en) | Solid state memory system with power management mechanism and method of operation thereof | |
JP5814335B2 (ja) | 書込みの削減、及び不揮発性メモリの残り寿命の推定と表示 | |
CN108897492B (zh) | 一种数据写入方法和装置 | |
KR102244921B1 (ko) | 저장 장치 및 그 리프레쉬 방법 | |
CN110515549B (zh) | 一种数据迁移方法及装置 | |
JP6961759B2 (ja) | メモリデバイスにおけるリフレッシュ管理を実行するための方法、関連するメモリデバイス及びそのコントローラ | |
JP7443418B2 (ja) | 情報処理装置の製造方法、及び情報処理装置 | |
CN112204514A (zh) | 用于保留非易失性存储器的预期寿命的技术 | |
US9520197B2 (en) | Adaptive erase of a storage device | |
KR102634813B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN107203332B (zh) | 数据储存装置、闪存控制器及其操作方法 | |
US11749334B2 (en) | Memory management based on temperature and storage media availability | |
US20240143499A1 (en) | Dynamic nand read/write access time for ssd reliability and performance enhancement | |
US20240231976A9 (en) | Storage device write-read error reduction system | |
US20240134727A1 (en) | Storage device write-read error reduction system | |
CN107346216B (zh) | 一种存储设备及其数据处理方法 | |
US20240184679A1 (en) | Storage device and throttling operation method thereof | |
CN117501247A (zh) | 一种数据存储方法及相关设备 | |
CN115240743A (zh) | 利用数据不同特征延长ssd寿命的方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |