CN108369488B - 使用易失性存储器作为非易失性存储器 - Google Patents
使用易失性存储器作为非易失性存储器 Download PDFInfo
- Publication number
- CN108369488B CN108369488B CN201780004322.5A CN201780004322A CN108369488B CN 108369488 B CN108369488 B CN 108369488B CN 201780004322 A CN201780004322 A CN 201780004322A CN 108369488 B CN108369488 B CN 108369488B
- Authority
- CN
- China
- Prior art keywords
- volatile memory
- memory
- volatile
- pages
- computing device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012546 transfer Methods 0.000 claims abstract description 68
- 238000000034 method Methods 0.000 claims description 43
- 230000004044 response Effects 0.000 claims description 14
- 230000009467 reduction Effects 0.000 claims description 8
- 230000002085 persistent effect Effects 0.000 claims description 4
- 230000001568 sexual effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 230000002829 reductive effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000000670 limiting effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 5
- 230000000717 retained effect Effects 0.000 description 5
- 230000036541 health Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002618 waking effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000004146 energy storage Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000010248 power generation Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- D—TEXTILES; PAPER
- D05—SEWING; EMBROIDERING; TUFTING
- D05B—SEWING
- D05B19/00—Programme-controlled sewing machines
-
- D—TEXTILES; PAPER
- D05—SEWING; EMBROIDERING; TUFTING
- D05B—SEWING
- D05B19/00—Programme-controlled sewing machines
- D05B19/02—Sewing machines having electronic memory or microprocessor control unit
-
- D—TEXTILES; PAPER
- D05—SEWING; EMBROIDERING; TUFTING
- D05B—SEWING
- D05B19/00—Programme-controlled sewing machines
- D05B19/02—Sewing machines having electronic memory or microprocessor control unit
- D05B19/04—Sewing machines having electronic memory or microprocessor control unit characterised by memory aspects
-
- D—TEXTILES; PAPER
- D05—SEWING; EMBROIDERING; TUFTING
- D05B—SEWING
- D05B19/00—Programme-controlled sewing machines
- D05B19/02—Sewing machines having electronic memory or microprocessor control unit
- D05B19/04—Sewing machines having electronic memory or microprocessor control unit characterised by memory aspects
- D05B19/06—Physical exchange of memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- 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
-
- 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/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- 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/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0653—Monitoring storage devices or systems
-
- 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/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/003—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation in serial memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/006—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation at wafer scale level, i.e. wafer scale integration [WSI]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computer Security & Cryptography (AREA)
- Textile Engineering (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Power Sources (AREA)
- Memory System (AREA)
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种计算设备可以包括处理器、易失性存储器和非易失性存储设备。设备的操作系统或固件可以引起易失性存储器的一个或多个页面被在计算设备上执行的应用视为非易失性存储器页面。可以被视为非易失性的页面的最大页面可以基于电池中可用的能量的量以及将存储器的页面转移到非易失性存储设备所需要的能量的量而被确定。
Description
技术领域
本公开内容总体上涉及计算设备中的存储器模块的操作。特别地,本公开内容涉及用于使用易失性存储器向在计算设备上执行的应用提供非易失性存储的系统、方法和计算机程序产品。
背景技术
计算设备的主存储器通常基于动态随机存取(“DRAM”)存储器模块。DRAM具有适合用作主存储器的各种性质,诸如低成本和高存储密度。然而,DRAM存储器模块通常包含电容器或需要电力的持续或几乎持续的供应以防止数据丢失的其他电路。DRAM存储器因此被称为易失性的,因为被存储在DRAM存储器中的数据在电源被中断的情况中会丢失。
诸如与非门(“NAND”)存储器的其他类型的存储器可以被称为非易失性存储器,因为NAND存储器模块的内容在模块的电源被中断时不会丢失。然而,由于各种原因(诸如与DRAM存储器模块相比较高的成本和较低的存储密度),计算机的主存储器通常不是根据NAND存储器模块而被构建的。
发明内容
计算设备可以包括易失性存储器和非易失性存储设备。当计算设备在公用电源上操作时,计算设备可以接收指示在公用电源将被中断的情况中计算设备将有多少能量可用的信息。计算设备还可以确定将需要多少能量来将易失性存储器的页面转移到非易失性存储设备,并且使用这一信息来确定使用电池中的可用能量可以保存存储器的多少页面。至少部分基于这一信息,计算设备的操作系统或固件可以将易失性存储器的多个页面标识为非易失性的,从而使得在计算设备上执行的应用可以将信息存储在易失性存储器的页面上,就好像这些页面是非易失性的。
提供本发明内容是为了以简化的形式介绍将在以下具体实施方式中被进一步描述的概念的选择。本发明内容并非旨在确定所要求保护的主题内容的关键特征或基本特征,也并非旨在被用于限制所要求保护的主题内容的范围。
附图说明
在下文中将参考附图更全面地描述本公开内容的实施例,在附图中:
图1是描绘具有被操作系统标识为非易失性存储器的易失性存储器的示例计算系统的框图。
图2是描绘基于可用电池电源来调节被标识为非易失性的页面的数目的框图。
图3是描绘将易失性存储器标识为易失性或非易失性存储器的计算设备的示例的框图。
图4描绘由多个计算设备共享的电池。
图5是描绘用于操作具有被标识为非易失性存储器的易失性存储器的计算设备的示例过程的流程图。
图6是描绘基于应用性能参数来调节非易失性存储器标识的过程的示例的流程图。
图7是提供保存易失性存储器的内容的示例的框图。
图8是描绘用于保存被标识为非易失性的易失性存储器的内容的示例过程的流程图。
图9是描绘在存储器保存期间控制到处理器核的电力递送的示例的流程图。
图10是描绘操作具有被标识为非易失性的易失性存储器模块的计算设备的示例的流程图。
图11描绘其中可以体现在此描述的技术的示例通用计算环境。
具体实施方式
计算设备可以包括处理器、包括易失性存储器模块的主存储器和非易失性存储设备。易失性存储器模块可能是在断电的情况中其内容丢失的存储器。在一些情况中,易失性存储器模块可以是关于被存储在存储器中的内容的保存相对于非易失性存储器其耐久力相对较低的存储器模块。
到计算设备的电力可以通过公用电源和电池电源的某种组合来提供。公用电源可以是指诸如通过电网输送的电网电力等来源。公用电源还可以是指通常被认为可持续或通常可用的其他电力来源,诸如本地生成的太阳能、风能或热能。公用电源有时可以包括电池组件,诸如在太阳能或风力发电系统中被使用的、用于在存在剩余时储存能量并且在存在不足时提供能量的电池。更一般地,公用电源可以是指通常针对计算设备的操作时段可用的任何电力来源。
电池电源可以指代能量的备用源,诸如包含电池单元、电容器或其他能量存储机构的设备。当公用电源可用时,电池可以充电并且可用于计算设备的电量可以增加。当公用电源不可用时,计算设备可以在电池电源上操作并且电池中可用的电力的量可以减少。诸如温度、电池使用年限和由其他设备消耗的电池电量的其他因素也可以影响可用电力的量。
设备的操作系统或固件可以表示应用的易失性存储器,如同易失性存储器是非易失性的。可以被表示或标识为非易失性的易失性存储器的量可以基于两个因素而被确定。第一因素可以是在公用电源被暂停的情况中可用于由计算设备使用的能量的量。第二因素可以是将易失性存储器的页面转移到非易失性存储设备所需要的电力量的估计。基于这些因素,操作系统或固件可以确定在公用电源被中断时可以将存储器的多少页面保存到存储设备。这些页面然后可以被操作系统或固件标识为非易失性的。
如果公用电源被中断,则计算设备可以进入其中被标识为非易失性的易失性存储器的内容被保存的存储器保存阶段。在这一阶段期间,到计算设备的组件的电力递送可以限于针对存储器保存所需要的那些组件。这可以允许更大量的易失性存储器被标识为非易失性的。另外,存储器保存期间的电力状态可以使得相对于能量消耗和可用性的预测更可靠。
图1是描绘具有被操作系统标识为非易失性存储器的易失性存储器的示例计算系统的框图。计算设备100可以包括承载操作系统102和固件104、处理器106、DRAM存储器模块114和非易失性存储设备120的指令的存储器。
计算设备100通常可以在公用电源122上操作。有时,诸如当公用电源116被中断时,计算设备100可以在电池电源124上操作。在停电或与公用电源122相关的其他故障期间,计算设备可以将它的功率源从公用电源122切换或转移到电池电源124。在一些情况中,电池电源124可以被集成到计算设备100中。在其他情况中,电池电源可以在计算设备100外部。
处理器106可以包括各种子组件,包括核108和非核110。处理器102的功耗可以被控制为使得到核108和非核110的功率可以被独立地暂停或保持。例如,到核108的电力递送可以被暂停,同时到非核110的电力可以被保持。暂停电力可以包括部分或完全中断到受影响组件的能量的流。暂停电力也可以是指将组件置于低功耗状态中。通常,其电力已经被暂停的组件在电力被暂停时不工作,但是在电力已经被恢复之后可以恢复工作。保持到组件的电力可以包括向组件递送足够的电力,从而使得组件可以相对于它的功能中的至少一些功能保持操作。
核108可以包括处理器106的处理单元。典型地,尽管为了表示简单图1将处理器106描绘为具有单个核108,但是处理器106可以包括多个核。作为处理器106的处理单元,核108通常执行计算机可读指令,诸如操作系统102和固件104的计算机可读指令,并且由此引起计算设备执行各种操作。
非核110可以包括处理器106的与核108的那些部分相关但是未被包括在其中的部分。在一些情况中,处理器106可以包括一个非核110以及诸如所描绘的核108的多个核。通常,非核110可以执行与L3高速缓存维护相关的功能并且包括存储器控制器112。
存储器控制器112可以控制对被存储在DRAM存储器模块114中的数据的访问。这可以包括执行直接存储器访问(“DMA”)操作。DMA操作可以涉及转移存储器的内容。例如,DMA操作可以涉及将DRAM存储器模块114的内容转移到非易失性存储设备120。DMA操作可以由执行操作系统102或固件104的指令的核108发起。一旦DMA操作已经被发起,核108就可以恢复其他操作,或者在DMA操作完成时被置于低电力状态或无电力状态中。
中断信号可以被传输到处理器106。中断信号可以包括来自计算设备100的组件或者诸如电池电源124的外部设备的信号或其他传输。中断信号的示例包括由网络组件、用户接口组件等生成的信号。在一些情况中,各种中断信号可以响应于在计算设备100的操作期间可能出现的错误条件或状态改变而被生成。中断信号可以关于DMA操作而被生成。例如,中断信号可以响应于DMA操作的完成而被生成。诸如与DMA操作有关的中断的某些中断可以由非核110处理。
电池电源124还可以向计算设备100提供中断信号或其他通信。通信可以指示对电池电源124的状态的改变。状态信息可以例如包括指示电池电源124当前是否正在从公用电源122被充电以及有多少电池电源可用于计算设备100的信息。在一些情况中,电池电源124可以向多个设备供应电力,因此可用于计算设备100的电力的量可以小于被存储在电池中的电力的总量。
DRAM存储器模块114可以被细分成有时被称为页面的存储器的单元。存储器的页面可以与某些特性相关联,诸如存储器速度和易失性。例如,DRAM存储器模块114可以是易失性RAM,从而使得如果到DRAM存储器模块114的电力被暂停,则DRAM存储器模块114的内容将会丢失。存储器的特性可以被转移到在计算设备100上执行的应用。在一些情况中,固件104可以在引导时间确定DRAM存储器模块114的特性,并且将这一信息转移给操作系统102。操作系统102然后可以将这些特性转移给应用。
如本文中使用的存储器的页面可以是指存储器模块内的存储器的一部分。在一些情况中,存储器的页面(有时被称为存储器的区域或存储器的一部分)可以通过存储器设备的特性被分组或逻辑地分割。例如,存储器的页面、区域或部分可以对应于其内容可以在单个操作中可读或可写的存储器。在另一示例中,存储器的页面、区域或部分可以共享高速缓存行。在其他情况中,存储器的页面、区域或部分的边界可以由存储器控制器、固件或操作系统逻辑地分割。
如上所述,DRAM存储器模块114可以是易失性RAM。然而,固件104和/或操作系统102可以将易失性DRAM存储器模块114的页面标识为非易失性存储器。标识可以包括将关于存储器的特性的信息转移给存储器的用户。例如,固件104可以向操作系统102报告DRAM存储器模块114的某些页面是非易失性存储器页面。例如,这可以涉及更新系统描述表,诸如由高级配置和电源接口(“ACPI”)定义的系统描述表。操作系统102可以将这一信息报告给在计算设备100上运行的应用。在操作系统上运行的应用可以通过调用操作系统应用编程接口(“API”)、通过检查ACPI系统描述表等来确定操作系统已经将存储器的页面标识为非易失性。注意,在某些情况中,将存储器标识为非易失性可以涉及固件或操作系统记录存储器的页面应当被视为非易失性,而无需显式地或隐式地向用户通知存储器的页面。
被标识为易失性或非易失性的页面的数目可以取决于各种因素,包括电池电源124中可用的电力的量以及保存已经被标识为非易失性的易失性存储器的页面的内容所需要的电力的量。因此,DRAM存储器模块114可以包括标识的非易失性存储器116部分和标识的易失性存储器118部分。
在计算设备100上运行的应用可以通过例如将数据写入被标识为非易失性存储器的存储器而不必执行附加的步骤来确保数据已经被提交来适配它们的处理。在一些情况中,当更多量的存储器被标识为在非易失性提交模式中时,应用可以实现更高的性能。例如,如果写入是去往已经被标识为非易失性的存储器的区域,则应用可以绕过与确保写入已经被提交有关的处理。
图2是描绘基于可用电池电源调节被标识为非易失性的页面的数目的框图。图2描绘电池200和DRAM存储器模块208。示出了电池200的三个状态,对应于三个能级202、204、206。图2的示例旨在说明诸如由图1所示的计算设备100的计算设备的实施例,其基于设备可用的能量调节被标识为非易失性的存储器的量。在图2的示例中,计算设备100可以在公用电源上运行,同时电池200中可用的能量的量随时间波动。尽管图2描绘电池电源的减少量,但是在一些情况中,能量的量可以随着时间而增加,并且与图2所示的类似的原理可以被应用。由于各种原因,能量可能波动。例如,在一些情况中,电池200可能连接到多个计算设备,其中一些计算设备可能从电池200汲取电力,而计算设备100保持电池电源。在另一示例中,电池的温度或其他操作条件可能导致可用能量的量。在另一示例中,电池的最大容量可能会随着时间的推移而降低。
在能级202处,电池200中的能量的量可以足以在一些数目的存储器页面220上执行存储器转移。在图2中,例如,能级202处的电池200中的能量的量可以足以转移十个所示存储器页面220中的七个的内容。操作系统或固件可以基于诸如每个页面中的存储器的量、用于执行DMA操作的能量的量、在存储器转移操作期间其电力被保持的设备所使用的能量的量的因素来确定可以被转移的存储器页面的数目。当电池200具有更大量的可用能量时,可以将更多数目的页面标识为非易失性存储器210,并且可以将更少的页面标识为易失性存储器212。
在降低的能级204处,可用于转移存储器页面220的内容的能量的量也可以减少。例如,可以有足够的存储器以用于使用可用电池电源来转移四个存储器页面。操作系统或固件可以将四个存储器页面标识为非易失性存储器214,并且将六个页面标识为易失性存储器216。
类似地,在进一步降低的能级206处,电池200可能不能够提供足够的电池电源来将DRAM存储器模块208的任何页面转移到非易失性存储设备。操作系统或固件然后可以将DRAM存储器模块208的所有页面标识为易失性存储器218。
当存储器页面被标识为非易失性存储器时,其内容可以在随后被标识为易失性存储器之前被保存。例如,当电池200中可用的能量的量从能级202到能级204降低时,三个标识的非易失性存储器页面210然后可以转变为被标识为易失性存储器216。操作系统或固件可以响应于确定转换要被标识为易失性存储器216的页面来转移三个先前标识的非易失性存储器页面210的内容。存储器的内容可以在计算设备100仍在使用公用电源的同时传输,并且因此电池200中的可用能量的量不受转移的影响。
如果公用电源在完成转移之前发生故障,则可能没有足够的能量来转移先前被标识为非易失性存储器210的所有存储器页面。这种情况的风险可以按照各种方式而被缓解,包括但不限于更频繁地调节被标识为非易失性的存储器的页面的数目,并且在用于确定标识为非易失性的存储器的页面的数目的计算中包含对电池波动的更大容忍度。例如,要标识为非易失性的页面的数目可以与电池中的功率电平波动量成比例地减小。
图3是描绘将易失性存储器标识为易失性或非易失性存储器的计算设备的示例的框图。计算设备300可以包括接收来自电池310的通信的固件308。电池310可以例如发送包含关于公用电源的当前状态、电池310中可用的能量的量等信息的数据。在一些情况中,电池310可以提供各种度量和历史信息,诸如公用电源中断的日期、时间和持续时间。
固件308可以是基本输入/输出系统(“BIOS”)。固件308可以将计算设备300的各种硬件设备和组件初始化。固件308还可以涉及运行时的操作的各个方面。在一些情况中,固件308可以提供用于计算设备300的硬件组件的抽象层,操作系统304通过该抽象层访问计算设备300的硬件。
配置和电源接口306可以向操作系统304提供对与计算设备300的存储器配置有关的信息和更新的访问。在一些情况中,配置和电源接口可以包括高级配置和电源接口“ACPI”)。固件308可以通过ACPI提供描述被安装在计算设备上的各种存储器模块的特性的配置表。在某些情况中,这些表格可能会描述存储器模块的特性,将易失性存储器报告为易失性存储器,将非易失性存储器报告为非易失性。在其他情况中,这些表格可能用于指示易失性存储器模块的一部分(包括潜在的所有易失性存储器模块)是非易失性的。在某些情况中,这些表格可能会提供存储器的非易失性特性由固件或操作系统来模拟的指示。在其他情况中,该表可能不包含非易失性特性不是存储器模块本身的非易失性特性的指示。
操作系统304可以使得能够执行各种程序、过程和子过程。这些可以在本文中被称为应用,诸如图3中描绘的应用302。应用302可以利用以各种方式被标识为非易失性的存储器。在一个示例中,操作系统304可以向应用302使用应用编程接口(“API”)来提供对被标识为非易失性的存储器的访问。这可能包括调用堆创建或存储器分配API并且指定标志,该标志指示返回的堆或存储器段应当是非易失性存储器页面。在某些情况中,应用可能能够指定是否可以由操作系统或固件提供所提供的存储器的非易失性特性。在其他情况中,可以透明地提供基于易失性存储器模块的页面,从而使得应用可能不一定包括适合于所提供的存储器的模拟的非易失性的指令。
涉及电池310的状态的数据可以被分配给计算设备300的各种组件,包括固件308。固件308可以例如从电池310接收或以其他方式获取数据。固件308可以经由配置和电源接口306将信息分配给操作系统304。操作系统304然后可以通过调节被标识为非易失性的存储器的量来应用信息。被标识为非易失性的存储器的量可以基于各种因素而被确定,诸如性能风险比率、估计的公用电源中断的概率和长度、电池的健康状况、电池电源波动的速率等。
操作系统304可以响应于可用于由计算设备300使用的能量的量的增加。该响应可以包括增加被标识为非易失性的存储器的量。例如,操作系统304可以选择DRAM存储器模块的附加页面以用于被标识为非易失性存储器页面。这可以涉及向应用302提供对所选择的DRAM模块的页面的访问,将页面标识为非易失性的,并且在发生公用电源故障或系统关闭时引起存储器页面的内容被转移到非易失性存储设备。存储器内容还可以被转移到非易失性存储设备以腾出空间用于对非易失性存储器的后续写入操作,或者由于其他原因。
操作系统304可以响应于可用于由计算设备300使用的能量的量的减少。响应的各方面可以包括选择先前被标识为非易失性的DRAM存储器模块的页面,并且引起这些页面代替地被标识为易失性的。如上所述,标识过程可以包括更新系统配置表以指示存储器页面是易失性还是非易失性的。当电池310中可用的能量的量已经减少时,可以更新表格,从而使得先前被指示为非易失性的页面被指示为易失性的。响应的另一方面可以包括将这些取消选择的页面的内容转移到非易失性存储设备。取消选择的页面可能具有尚未被保存在非易失性存储设备上的内容,并且因此当页面被取消选择时可以保存这些内容。当没有未经保存的数据被写入取消选择的页面时,可以避免这种情况。因此,在一些情况中,其内容已经被保存或尚未写入数据的页面可以被优选为用于取消选择的目标。
除了计算设备300之外,电池310可以由设备共享。图4描绘由多个计算设备共享的电池。电池400可以向多个计算设备408、410、412提供保留操作电力。电池400还可提供或允许访问与电池400的状态有关的数据。
电池电源的一部分可以被保留用于由计算设备408、410、412中的每个使用。如图4所示,计算设备408、410、412中的每个可以具有保留的能量部分402、404、406。保留的能量部分402、404、406可以被保留用于由对应的计算设备408、410、412在公用电源中断时使用。在一些情况中,保留的能量部分402、404、406可以被保留专门用于转移已经被标识为非易失性的DRAM存储器模块的内容。
保留的能量部分402、404、406中的能量的量可以基于诸如要被标识为非易失性的目标存储器量的因素。例如,计算设备408可以被配置为积极地将DRAM存储器模块标识为非易失性。这样,用于计算设备408的保留的能量部分402可以制造得比其他保留的能量部分404、406的大。可以被结合到保留的能量的量中的其他因素可以是风险容限、估计的丢失公用电源的概率、电池健康状况等。转移存储器内容所需要的能量模型可以与来自电池的能量供应的模型相结合地被使用。计算设备408、410、412中的每个可以使用这些模型来确定有多少存储器可以被标识为非易失性的,而不会干扰其他计算设备408、410、412的电力需求。
电池400中的能量可以由计算设备408、410和412的操作系统或固件保留。例如,计算设备408的操作系统可以接收或以其他方式获取关于电池400的其他用户的信息,诸如其他描绘的计算设备410、412。该信息可以包括可能影响为每个部分保留的能量的量的因素。在公用电源中断的情况中,计算设备408可以在其所指派的“功率预算”内起作用,例如,通过仅使用保留能量的量402来转移被标识为非易失性的存储器的内容。
图5是描绘用于操作具有被标识为非易失性存储器的易失性存储器的计算设备的示例过程的流程图。虽然图5被描绘为一系列区块,但是应当理解,所描绘的序列不应当被解释为将本发明的范围限制为遵守所描绘的序列的实施例。此外,应当理解,在本公开内容的一些实施例中,由所描绘的框指示的某些操作可以被改变,重新排序,并行执行或省略。
在计算设备(诸如图1中描绘的计算设备100)的操作期间,计算设备的操作系统或固件可以至少部分基于将该存储器的内容转移到非易失性存储设备所需要的能量的量来周期性地确定可以将多少存储器标识为非易失性。框500描绘确定用于将易失性存储器模块标识为非易失性的当前容量,其中容量可能受到在公用电源中断时可用于保存存储器内容的能量的量的限制。
框502描绘在公用电源阶段期间计算设备利用被标识为非易失性的多个易失性存储器页面进行操作。公用电源阶段可以是指公用电源可用于计算设备的时间。在一些情况中,公用电源阶段可以包括其中公用电源中断的时间段,但是其时间长度低于阈值时间长度。阈值可以基于在阈值时间段过去之前电力将被恢复的估计概率。如果中断时段相对较短,则公用电源阶段可以继续。
框504的操作还可以在公用电源阶段期间执行。在此期间,如框504所示,计算设备可以监测电池容量和电力状态。监测容量可以涉及接收或以其他方式获取关于存储在电池中的电力量的信息。此外,计算设备可以监测既存储在电池中又被保留用于在电源故障时由计算设备使用的电力量。监测电力状态可以涉及接收或以其他方式获取指示计算设备和/或电池当前是否正被供应公用电源的信息,或者是否某个其他情况正在导致电池中的可用能量的量减少。
如框506所示,可以在公用电源阶段继续时重复框500至504的操作。如果公用电源发生故障或以其他方式中断,则可以执行框508和510的操作。
如图5所示并且在本文中解释的,公用电源阶段可以与公用电源的瞬时中断相关联。然而,中断的持续时间可以使得计算设备可以进入其中其行为适应于使用电池电源的阶段。框508描绘进入其中计算设备的操作适应于电池电源的使用的电池电源阶段。关于将易失性存储器标识为非易失性存储器,计算设备的操作可以按照各种方式而被适配。例如,计算设备可能停止以将新的易失性存储器页面标识为非易失性,并且当这些页面的内容被转移到非易失性存储设备时,可能适时地将易失性存储器页面取消选择为非易失性。发生这种情况的程度可以基于各种因素,诸如允许指定风险与性能折衷的调节参数。
框510的操作可以被延迟,直到电池中可用的能量的量已经减少到如下点:即如果电池耗尽继续,则可能没有足够的能量来保存已经被确定为非易失性的易失性存储器的内容。框510描绘进入用于已经被标识为非易失性的易失性存储器的存储器保存阶段。在这个阶段中,计算设备可以进入其中功耗主要针对保存被标识为非易失性的存储器内容的状态。
被标识为非易失性的存储器的量可能对计算设备的性能具有影响。在一些情况中,通过将更大量的存储器标识为非易失性并且使用本文中描述的各种技术来确保写入易失性存储器的数据被保存,可以增加应用性能。图6是描绘用于基于应用性能参数来调节非易失性存储器标识的过程的示例的流程图。虽然被描绘为一系列的框,但是应当理解,所描述的顺序不应当被解释为将本公开内容的范围限制为遵守所描述的顺序的实施例。此外,应当理解,在本公开内容的一些实施例中,由所描绘的框指示的某些操作可以被改变,重新排序,并行执行或省略。
框600描绘接收可用电池电源的指示的计算设备。该指示可以包括足以确定在计算设备进入存储器保存模式中时将有多少可用电力可靠地可用的信息,如图5的框510所示。
框602描绘确定功率预算和功率预算方差。功率预算可以指在进入存储器保存模式的情况中电池电源的分配。例如,功率预算可以包括用于操作核、非核、一个或多个存储器模块以及非易失性存储设备以便保存被标识为非易失性的存储器的内容的可用电池电源的分配。功率预算也可能包括其他设备的分配。
功率预算差异可以是指功率预算的估计可靠性。这可以包括对诸如可用电力量和功率预算中的项目在存储器保存阶段实际消耗的电力量的因素的调节。例如,更积极的功耗预算可能会假设在存储器保存阶段,实际上不需要保存被标识为非易失性的存储器页面的某些百分比,因为它们可能在正常操作过程中已经被保存,或者它们可能从未被写入并且因此不包含任何要保存的内容。但是,如果这些假设结果不准确,则可能会超出存储器预算。
框604描绘使用调节参数来改进功率预算。例如,调节参数可以是指示计算系统应当如何侵犯性地将易失性存储器标识为非易失性的操作系统或固件配置元素。例如,在某些应用中,可以可接受的是,在发生系统故障时丢失风险数据。然后可以调节功率预算以允许将更大量的易失性存储器标识为非易失性。对于其他应用,数据丢失可以被视为不可接受。对于这些应用,操作系统或固件配置元素可能会指示功率预算应当基于存储器保存阶段期间电力使用的悲观预测进行计算。
在框606处,计算设备可以向易失性存储器的页面指派提交模式。换言之,计算设备可以确定以将易失性存储器的某些页面标识为具有非易失性提交模式,而其他页面可以保持在易失性提交模式。这里,提交模式可以涉及当被写入存储器时是否可以将写入视为提交,即持久性。
计算系统可以基于功率预算来选择用于非易失性提交模式的存储器的页面。这可以包括选择高达由功率预算允许具有非易失性提交模式的存储器的页面的最大数目。它也可以包括选择页面以最大化可以与非易失性提交模式相关联的页面的数目,同时保持与功率预算相一致。在一些情况中,所选择的页面可以由存储器模块分组,从而使得具有非易失性提交模式页面的存储器模块的总数可以减少,并且与功率预算的一致性可以增加。
图7是提供保存易失性存储器的内容的示例的框图。具有易失性存储器特性的DRAM存储器模块700可以包括存储器的多个页面。由于所描绘的DRAM存储器模块700是易失性的,所以其所有组成存储器页面是易失性的,即,如果对DRAM存储器模块700的电力中断,则其内容将会丢失。然而,如本文所述,某些页面可以被标识为非易失性的,并且由此被计算设备上执行的应用视为非易失性。如图7所示,DRAM存储器模块可以包含标识的非易失性页面704、706。其中一些存储器页面704可以包含未保存的内容,而其他存储器页面706可以包含已经保存的内容,或者等同地,存储器页面706可以从来没有被写入,并且因此没有要保存的内容。DRAM存储器模块700还可以包含当前未被标识为易失性的存储器的页面708。
在图7的示例中,通过将页面706的内容转移到非易失性存储设备702,所标识的非易失性页面706的内容可能已经被预先保存。页面706的内容被指示为通过保存的页面记录712被存储在非易失性存储设备702上。
被标识为非易失性但是尚未保存704的一个或多个存储器页面的内容可以通过直接存储器转移操作714被保存在非易失性存储设备上。例如,处理器和存储器控制器可以引起DMA操作将页面的内容转移到非易失性存储设备702。
非易失性存储设备702的区域可以被保留。这在图7中通过标记为保留的存储装置710的元件来示出。保留的存储装置710可以包括足以存储被标识为非易失性704和706的存储器的页面的内容的空间区域。被标识为非易失性的存储器的量在一些情况中可以部分基于非易失性存储设备702上可用的存储空间的量,因为缺少可用存储空间可能防止被标识为非易失性的存储器的内容被保存。
存储器保存阶段可以通过进入适合于保存易失性存储器的内容的低电力状态开始。低电力状态可以允许图8是描绘用于保存被标识为非易失性的易失性存储器的内容的示例过程的流程图。虽然被描绘为一系列的框,但是应当理解,所描述的顺序不应当被解释为将本公开内容的范围限制为遵守所描述的顺序的实施例。此外,应当理解,在本公开内容的一些实施例中,由所描绘的框指示的某些操作可以被改变,重新排序,并行执行或省略。
框800描绘计算设备暂停虚拟机或诸如数据库等其他应用,期望其变为静止的时间段。例如,在确定计算设备已经进入存储器保存阶段或即将到来时,诸如虚拟机的各种应用可以被通知并且被给予受控的时间段,其中它们可以节省尽可能多的未提交的数据。由于在存储器保存阶段期间操作系统和/或固件将保存存储器的内容,所以写入被标识为非易失性的存储器的数据在某些情况中可以被应用视为处于提交状态。
在框802处,通过暂停向在剩余的存储器保存阶段期间不需要的某些设备的电力递送,计算设备可以开始进入低电力状态。这些设备可以包括图形卡、用户界面总线、网卡等。
如框804所示,计算设备还可以屏蔽处理器中断。例如,除了与某些错误相关的中断和处理存储器转移操作(诸如DMA操作)所需要的那些中断之外,可以屏蔽所有处理器中断。
框806描绘可以暂停向未使用的处理器(包括所有相关联的核、非核以及其他处理器组件)的电力递送。在这种情况中,未使用的处理器可以是指那些不需要用于执行存储器保存的处理器。例如,在某些情况中,单个处理器或单个处理器的单个核可以足以完成存储器保存。因此,在存储器保存阶段,可以暂停向计算系统的其余处理器的电力递送。注意,在某些情况中,中断可以唤醒处理器并且导致重新开始电力递送。框804所描绘的中断屏蔽可以防止这种情况的发生并且将未使用的处理器保持在低功率或无电力状态。
框808描绘计算设备也可以暂停向不具有被标识为非易失性的页面的易失性存储器模块的电力递送。计算设备也可以暂停到其内容已经被保存的任何易失性存储器模块的电力。另外,计算设备还可以暂停到固有地是非易失性的任何存储器模块(诸如与非门(“NAND”)存储器模块)的电力。
在各种情况中,计算设备可以优先考虑可能最早完成的涉及易失性存储器模块的存储器转移操作。例如,如果第一存储器模块的内容可以比第二存储器模块的内容更快地被保存,则与第二存储器模块的内容相比,计算设备可以优先转移第一存储器模块的内容。该方法可以允许与到第二存储器模块电力递送相比,到第一存储器模块的电力递送被更早地暂停,导致在存储器保存阶段中使用的能量的总量减少。
框810描绘计算设备可以在保持向处理器的非核的电力递送的同时暂停到处理器的核的电力递送。对于多核处理器,可以暂停到所有核的电力递送。在存储器保存阶段期间,可以周期性地恢复到一个或多个核的电力递送。在恢复时,核可以用于发起存储器转移操作,之后可以再次暂停电力递送。这由框812来描绘。同时,保持到处理器的非核的电力递送。包含存储器控制器的非核可以监督存储器转移操作,并且在转移完成时引起到处理器核的电力递送被恢复。
如框814所示,可以在存储器保存阶段期间保持到非易失性存储设备的电力递送以及写入存储设备所需要的任何接口或通信总线,从而使得存储器转移操作可以完成。
图9是描绘在存储器保存期间控制到处理器核的电力递送的示例的流程图。虽然被描绘为一系列的框,但是应当理解,所描绘的顺序不应当被解释为将本公开内容的范围限制为遵守所描述的顺序的实施例。此外,应当理解,在本公开内容的一些实施例中,由所描绘的框指示的某些操作可以被改变,重新排序,并行执行或省略。
框900描绘处理器的核可以执行指令以发起从易失性存储器模块到非易失性存储设备的直接存储器转移操作。直接存储器转移操作可以将已经被标识为非易失性的易失性存储器模块的页面复制到非易失性存储设备。
框902描绘在处理器已经发起直接存储器转移操作之后暂停到处理器的核的电力。直接存储器转移操作可以在电力被暂停时正在进行。在这段时间内,可以保持到处理器的非核的电力递送。
如框904所示,可以生成中断以指示存储器转移操作完成。中断可以由非核的存储器控制器生成。中断信号的处理可以包括通过至少恢复到核的电力递送来引起核被重新唤醒。该操作由框900描绘。
在框908处,唤醒的核可以执行指令以确定先前被标识为非易失性的所有易失性存储器是否已经被保存。这可以包括执行检查被标识为非易失性的易失性存储器页面的记录的指令,并且指示对应的页面的内容是否已经被保存的信息不需要保存,因为它尚未被写入或者仍然需要被保存。
如果被标识为非易失性存储器的所有易失性存储器已经被保存或不需要保存,则系统可以如框910所示关闭。否则处理可以在框900处重新开始,在框900中,唤醒的处理器可以发起附加的存储器转移操作。
图10是描绘操作具有被标识为非易失性的易失性存储器模块的计算设备的示例的流程图。虽然被描绘为一系列的框,但是应当理解,所描述的顺序不应当被解释为将本公开内容的范围限制为遵守所描述的顺序的实施例。此外,应当理解,在本公开内容的一些实施例中,由所描绘的框指示的某些操作可以被改变,重新排序,并行执行或省略。
框1000描绘获取指示将用于将易失性存储器的页面的内容转移到非易失性存储设备的能量的估计量的信息。该信息可以从观察、实验、在计算设备的操作期间记录的度量等获取。该信息在某些情况中可以由配置参数提供。该信息可以包括用于执行对非易失性存储设备的DMA转移操作的能量的量。该信息还可以包括处理器核用来发起DMA转移的能量以及由非易失性存储设备消耗的能量的量。其他功耗因素也可以被包括在内。
框1002描绘获取指示电池中可用的能量的量的信息。该信息可以例如从从电池发送到计算设备的消息或者从由计算设备发起的轮询机制来获取。这些示例是说明性的,并且不应当被解释为限制。
框1004描绘确定可以使用电池中可用的能量的量来将存储器的页面的内容转移到非易失性存储设备。
该确定可以基于诸如性能模式或数据安全模式的操作模式。操作模式可以由参数或配置数据来指定,例如,操作模式可以指示在计算用于被标识为非易失性的易失性存储器的页面的最大数目时被认为可允许的风险等级。
该确定还可以基于当前标识为非易失性的页面的总数目或者如此标识并且当前具有需要保存的数据的页面的数目。操作系统或固件可以确定每页可用的能量的量,并且将该值与保存存储器的页面所需要的能量相比较。如果该量绰绰有余,则可以将更多页面标识为非易失性。如果该量不足,则在公用电源上时,操作系统或固件可能采取各种步骤来将足够数目的页面重新标识为易失性。计算系统可以类似地确定可以被标识为非易失性的易失性存储器的页面的最大数目。最大数目可以周期性地被重新计算。
该确定可以基于在公用电源中断的情况中易失性存储器的该部分使用可用能量的量可转移到非易失性存储器的统计概率的计算。
框1006描绘基于确定来将计算设备的操作系统配置为将易失性存储器的页面视为非易失性存储器。将易失性存储器的页面视为非易失性可以包括向在计算设备上执行的应用提供标识由存储器支持的提交模式的信息。例如,提交模式可以指示写入存储器的数据立即提交,即就应用的参与而言立即变得耐久(因为操作或固件将承担责任以保存被标识为非易失性的存储器的内容)。
配置操作系统可以包括用指示页面是非易失性而非易失性的信息来更新配置接口数据。例如,固件可以更新ACPI表,从而使得存储器被描述为其用户是非易失性的。
框1008描绘接收指示进入存储器保存阶段的信息。例如,该信息可以在公用电源被中断时从电池发送或以其他方式获取。响应于公用电源被中断,计算设备可以切换到使用电池电源并且继续正常操作。然而,随着时间的推移,电池中的可用电力可以下降到如下点:即如果它进一步减小,可用能量的量将不足以保存当前被标识为非易失性并且有内容要保存的所有易失性存储器页面的内容。此时,计算设备可以进入存储器保存阶段,这可以涉及关闭存储器保存所不需要的功耗,并且发起保存被标识为非易失性的易失性存储器的内容所需要的存储器转移。
响应于接收到指示电池中可用能量的量减少的信息,可以转移页面的内容。例如,这种减少可能是由于公用电源的丢失、电池健康状况的降低、与电池连接的附加设备等而发生的。
在进入存储器保存阶段之前,计算设备的操作系统或固件可能开始使已经被标识为非易失性的易失性存储器的页面停用。这可以涉及保存存储器的内容并且将页面重新标识为易失性。例如,虽然在电池电源上但是在正常操作的情况中,操作系统或固件可以监测各种因素,诸如自从公用电源中断以来的时间或可用电池电源的量,并且在存储器保存阶段变得越来越可能但是还不确定的假设下开始停用仿真的非易失性页面。调节参数或性能参数可以用于调节应当发生的速度。在性能而不是安全性很高的情况中,这些参数可以表明系统应当继续尽可能长时间地将易失性存储器视为非易失性。
框1010描绘通过将页面的内容转移到非易失性存储设备来保存存储器的页面的内容。例如,内容可以通过如本文中描述的DMA操作来转移。计算设备可以在其中可以存储页面的内容的非易失性存储设备上保留预留空间。
在一个实施例中,一种计算设备可以包括:
易失性存储器,其被逻辑分割成多个页面;
非易失性存储设备,其中所述多个页面中的页面的内容通过存储器转移操作可转移到所述非易失性存储设备;
所述计算设备的操作系统;
一个或多个处理器,其引起所述计算设备至少:
接收指示电池中的能量的量的信息,所述能量可用于由所述计算设备使用;
确定执行所述存储器转移操作所需要的能量的量;
至少部分基于执行所述存储器转移操作所需要的能量的量,使用可用于由所述计算设备使用的能量的量来确定所述多个页面中的其内容可转移到所述非易失性存储设备的页面的数目;以及
将所述操作系统配置为将所述易失性存储器的所述多个页面中的一个或多个页面视为非易失性存储器,其中所述一个或多个页面的数目基于页面的确定的数目。
在一个实施例中,所述一个或多个处理器还引起所述计算设备至少:
将所述一个或多个页面的内容转移到所述非易失性存储设备的保留部分。
在一个实施例中,所述一个或多个页面的内容响应于接收到指示所述电池中的能量的量的减少的信息而被转移。
在一个实施例中,配置所述操作系统包括利用指示与易失性存储器的所述一个或多个页面对应的非易失性存储器的一个或多个页面的信息来更新配置接口数据。
在一个实施例中,一种使用计算设备的存储器的方法,包括:
获取指示将易失性存储器的页面的内容转移到非易失性存储器所需要的能量的量的信息;
接收指示可用于将易失性存储器的页面的内容转移到所述非易失性存储器的能量的量的信息;
至少部分基于所需要的能量的量,来确定易失性存储器的页面的内容使用可用的能量的量可转移到所述非易失性存储器;以及
将所述计算设备的操作系统配置为将易失性存储器的页面视为非易失性存储器的页面。
在一个实施例中,所述方法还包括:
将易失性存储器的页面的内容转移到所述非易失性存储器的保留部分。
在一个实施例中,所述方法还包括:
响应于接收到指示可用于将易失性存储器的页面的内容转移到所述非易失性存储器的能量的量的减少的信息,将易失性存储器的页面的内容转移到所述非易失性存储器的保留部分。
在一个实施例中,配置所述操作系统包括利用指示与易失性存储器页面的所述一个或多个对应的非易失性存储器的一个或多个页面的信息来更新配置接口数据。
在一个实施例中,所述方法还包括:
至少部分基于指示所述计算设备的性能模式或安全模式中的至少一种的信息,来确定易失性存储器的页面的内容可转移到所述非易失性存储器。
在一个实施例中,所述方法还包括:
接收指示所述计算设备已经从公用电源切换到电池电源的信息;
将所述操作系统配置为至少部分基于自从所述计算设备从公用电源切换到电池电源的时间长度来将易失性存储器的页面视为易失性存储器;以及
将易失性存储器的页面的内容转移到所述非易失性存储器。
在一个实施例中,指示将易失性存储器的页面的内容转移到非易失性存储器所需要的能量的量的信息至少部分基于由从易失性存储器的页面向所述非易失性存储器执行直接存储器访问转移消耗的能量。
在一个实施例中,指示将易失性存储器页面的内容转移到非易失性存储器所需要的能量的量的信息至少部分基于由处理器发起转移所述页面的内容的操作消耗的能量。
在一个实施例中,所述方法还包括:
至少部分基于被配置为被所述操作系统视为非易失性存储器页面的易失性存储器的其他页面的数目来确定易失性存储器的页面的内容是可转移的。
在一个实施例中,所述方法还包括:
确定使用可用于将易失性存储器的页面的内容转移到所述非易失性存储器的能量而可转移到所述非易失性存储器的易失性存储器的页面的最大数目。
在一个实施例中,一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机执行时引起所述计算机至少:
获取指示将易失性存储器的内容转移到非易失性存储器所需要的能量的量的信息;
接收指示可用于将所述易失性存储器的内容转移到所述非易失性存储器的能量的量的信息;
至少部分基于所需要的能量的量,来标识使用可用的能量的量而可转移到所述非易失性存储器的易失性存储器的一部分;以及
将所述计算机的操作系统配置为将所述易失性存储器的所述一部分视为非易失性存储器。
在一个实施例中,所述计算机可读存储介质还包括在由所述计算机执行时引起所述计算机至少进行以下操作的指令:
通过至少确定可以使用所述可用能量的量来转移到所述非易失性存储器的存储器的量来标识可转移到所述非易失性存储器的所述易失性存储器的所述部分。
在一个实施例中,所述计算机可读存储介质还包括在由所述计算机执行时引起所述计算机至少进行以下操作的指令:
计算在公用电源中断的情况中所述易失性存储器的所述部分使用所述可用能量的量可转移到所述非易失性存储器的统计概率。
在一个实施例中,所述计算机可读存储介质还包括在由所述计算机执行时引起所述计算机至少进行以下操作的另外的指令:
响应于接收到指示可用于将所述易失性存储器的内容转移到所述非易失性存储器的可用能量的量的减少的信息,将所述易失性存储器的所述部分转移到所述非易失性存储器的保留部分。
在一个实施例中,所述操作系统被配置为通过至少更新由所述操作系统访问的配置和接口数据来将所述易失性存储器的所述部分视为非易失性存储器。
在一个实施例中,通过至少向在所述计算机上执行的应用提供指示与存储在所述易失性存储器的所述部分中的数据兼容的提交模式的信息,所述易失性存储器的所述部分被所述操作系统视为非易失性存储器。
本公开内容的各方面可以在一个或多个计算设备或环境上实现。图11描绘其中可以实施本文中描述的一些技术的示例计算环境。计算设备1102仅仅是合适的计算环境的一个示例,并且不意图对在此公开的主题内容的使用范围或功能提出任何限制。计算环境的描述也不应当被解释为暗示与示例计算设备1102中示出的组件中的任何一个或组合相关的任何依赖或要求。在一些实施例中,各个描绘的计算元件可以包括被配置为将本公开内容的具体方面实例化的电路。例如,本公开内容中使用的术语电路可以包括被配置为通过固件或开关执行功能的专用硬件组件。在其他示例实施例中,术语电路可以包括由实施可操作以执行功能的逻辑的软件指令来配置的通用处理单元、存储器等。在其中电路包括硬件和软件的组合的示例实施例中,实现者可以编写实施逻辑的源代码,并且源代码可以被编译成可以由通用处理单元处理的机器可读代码。由于本领域技术人员可以理解,现有技术已经发展到硬件、软件或硬件/软件的组合之间几乎没有差别的地步,选择硬件与软件以实现特定功能是留给实施者的设计选择。更具体地,本领域技术人员可以理解,软件过程可以转换成等效的硬件结构,并且硬件结构本身可以转换成等效的软件过程。因此,硬件实现与软件实现的选择是设计选择之一,并且由实施者决定。
可以包括移动设备、智能电话、平板计算机、膝上型计算机、台式计算机等中的任何一个的计算设备1102通常包括各种计算机可读介质。计算机可读介质可以是可以由计算设备1102访问的任何可用介质,并且包括易失性和非易失性介质、可移除和不可移除介质。如本文中使用的,介质和计算机可读介质不包括传播或暂态信号本身。
系统存储器1122包括诸如只读存储器(“ROM”)1123和随机存取存储器(“RAM”)1160的存储器形式的计算机可读存储介质。RAM存储器1160可以包括易失性存储器模块,诸如双列直插式存储器模块(“DFMM”)。系统存储器1122的RAM 1160部分有时可以被称为主存储器。RAM 1160通常包含处理器1159立即可访问和/或目前正在处理器1159上操作的数据和/或程序模块。作为示例而非限制,图11示出了操作系统1025、应用程序1126、其他程序模块1127和程序数据1128。
处理器1159通常包含至少一个主处理单元(有时被称为核)和至少一个系统代理(有时被称为非核)。处理器1159的核通常执行计算机可执行指令,而非核执行相关任务,这可以包括监督存储器转移和保持处理器高速缓存。非核可以包括用于在处理器1159的核和系统存储器1122之间接口的存储器控制器。
包含诸如在启动期间帮助在计算设备1102内的元件之间传输信息的基本例程的基本输入/输出系统1124(“BIOS”)通常存储在ROM1123中。在各种实施例中,BIOS 1124可以被其他固件替换。
计算设备1102还可以包括非易失性存储设备。仅作为示例,图11示出了从不可移除非易失性磁介质读取或向其写入的硬盘驱动器1138、以及从诸如CD ROM或其他光学介质的可移除非易失性光盘1153读取或向其写入的光盘驱动器1114。可以在示例操作环境中使用的其他非易失性存储设备包括但不限于闪存、数字多功能盘、固态盘驱动器等。硬盘驱动器1138通常通过诸如接口1134的不可移除存储器接口连接到系统总线1121,并且光盘驱动器1104通常通过诸如接口1135的可移除存储器接口连接到系统总线1121。
上面讨论并且在图11中示出的驱动器及其相关联的计算机存储介质为计算设备1102提供计算机可读指令、数据结构、程序模块和其他数据的存储。在图1中,例如,硬盘驱动器1138被示出为存储操作系统1158、应用程序1157、其他程序模块1156和程序数据1155的指令。注意,这些组件可以与操作系统1125、应用程序1126、其他程序模块1127和程序数据1128相同或不同。操作系统1158、应用程序1157、其他程序模块1156和程序数据1155在本文中被赋予不同的数字以说明至少它们是不同的副本。用户可以通过用户输入设备1152将命令和信息输入到计算设备1102中。用户接口设备1152可以包括但不限于键盘、触摸板、计算机鼠标、轨迹球等。也未示出的其他输入设备可以包括麦克风、操纵杆、游戏手柄、卫星天线、扫描仪等。这些和其他输入设备通常通过耦合到系统总线的用户输入接口1136连接到处理单元1159,但是可以通过其他接口和总线结构(诸如并行端口、游戏端口或通用串行总线(USB))连接。屏幕1142或其他类型的显示设备也经由GPU 1129连接,但是在一些情况中,屏幕1142可以通过系统总线1121或另一接口来驱动。除了显示器之外,计算机还可以包括可以通过输入/输出接口1133连接的其他外围输入/输出设备,诸如扬声器、打印机等。电池1184也可以通过输入/输出接口1133连接到系统。电池1184可以经由输入/输出接口1133发送和接收信息。该信息可以包括状态信息,诸如电池1134中可用的能量的量、公用电源1182的状态、电池1134的健康状况等。
电源1180可以控制到计算设备1102的组件的电力递送。到特定组件的电力递送可以有时暂停,而到其他组件的电力递送保持。电力的暂停可以涉及到有效组件的能量流的全部或部分中断,并且因此可以包括引起组件进入低电力状态。
电源1180可以从公用电源1182或电池1184接收电力。公用电源1182可以是指在计算设备1102的操作时段期间可以被认为通常可用的任何电源。电池1184可以包括旨在在公用电源1182中断的情况中提供备用电力的任何电源。
计算设备1102可以使用到一个或多个远程计算机(诸如远程计算机1146)的逻辑连接在联网环境中操作。远程计算机1146可以是个人计算机、服务器、路由器、网络PC、对等设备或其他计算节点,并且通常包括上面关于计算设备1102描述的很多或全部元件。图11中描绘的连接包括网络1145,其可以包括局域网、广域网、蜂窝网和网状网或其他类型的网络。
还应理解,各种项目被示出为在使用时被存储在存储器中或存储装置上,并且为了存储器管理和数据完整性的目的,这些项目或其部分可以在存储器和其他存储设备之间转移。或者,在其他实施例中,软件模块和/或系统中的一些或全部可以在另一设备上的存储器中执行并且经由计算机间通信与所示出的计算系统通信。此外,在一些实施例中,系统和/或模块中的一些或全部可以按照其他方式而被实现或提供,诸如至少部分以固件和/或硬件,包括但不限于一个或多个专用集成电路(ASIC)、标准集成电路、控制器(例如,通过执行适当的指令并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)等。模块、系统和数据结构中的一些或全部也可以存储在计算机可读介质(诸如硬盘、存储器、网络或便携式介质制品)上(例如,作为软件指令或结构化数据)以由适当的驱动器或通过适当的连接来读取。系统、模块和数据结构也可以在各种计算机可读传输介质(包括基于无线的和基于有线/线缆的介质)上作为生成的数据信号(例如,作为载波或其他模拟或数字传播信号的一部分)传输,并且可以采取多种形式(例如,作为单个或多路复用模拟信号的一部分,或者作为多个离散数字分组或帧)。这样的计算机程序产品在其他实施例中也可以采取其他形式。因此,本公开内容可以利用其他计算机系统配置而被实践。
本文中描述的过程、方法和算法中的每个可以在包括加载到存储器中并且由计算设备的一个或多个处理器执行的计算机可执行指令的模块中实施,并且完全或部分地由其自动化。过程和算法也可以全部或部分地在专用电路中实现。所公开的过程和过程步骤的结果可以持久地或以其他方式存储在任何类型的计算机存储设备中,诸如例如易失性或非易失性存储装置。如本文中使用的易失性和非易失性存储装置排除传播或暂态信号本身。
本文中描述的各种特征和过程可以彼此独立地使用,或者可以按照各种方式被组合。所有可能的组合和子组合均旨在落入本公开内容的范围内。另外,在一些实现中,过程、方法和算法的某些元素可以被省略。本文中描述的方法和过程也不限于任何特定的序列,并且包含与其相关的块或状态的描述可以按照适当的其他序列而被执行。例如,所描述的块或状态可以按照不同于具体公开的顺序而被执行,或者多个块或状态可以在单个块或状态中组合。示例块或状态可以串行、并行或以某种其他方式执行。块或状态可以被添加到所公开的示例实施例或从其中移除。本文中描述的示例系统和组件可以不同于所描述的来配置。例如,与公开的示例实施例相比,元素可以被添加,被移除或重新布置。
除非特别声明或者在所使用的上下文中以其他方式理解,否则诸如“可以(can)”、“可以(could)”、“可以(might)”、“可以(may)”、“例如”的本文中使用的条件语言通常旨在表达某些实施例包括而其他实施例不包括某些特征、元素和/或步骤。因此,这样的条件语言通常不旨在暗示特征、元素和/或步骤以任何方式对于一个或多个实施例是必需的,或者一个或多个实施例必然包括用于在具有或者没有作者输入或提示的情况中决定这些特征、元素和/或步骤是否被包括在或将在任何特定实施例中执行的逻辑。术语“包括(comprising)”、“包括(including)”、“具有(having)”等是同义词,并且以开放式的方式包含性地使用,并且不排除附加的元素、特征、动作、操作等。此外,术语“或”以其包含性含义(而不是其排他性含义)使用,因此当用于例如连接元素列表时,术语“或”表示列表中的一个、一些或全部元素。
本文中呈现的实施例通过示例的方式呈现,并且不旨在限制本公开内容的范围。因此,前述描述中的任何内容都不旨在暗示任何特定特征、特性、步骤、模块或块是必需的、必要的或不可或缺的。本文中描述的方法和系统可以按照各种形式而被实施。在不脱离在此公开的内容的精神的情况中,可以对本文中描述的方法和系统的形式进行各种省略、替换和改变。所附权利要求及其等同物旨在覆盖落入在此公开的某些实施例的范围和精神内的这样的形式或修改。
尽管已经用特定于结构特征和/或动作的语言描述了主题内容,但是应当理解,所附权利要求中限定的主题内容不一定限于上面描述的具体特征或动作。相反,上述特定特征和动作作为实施权利要求的示例而被公开,并且其他等同特征和动作旨在落入权利要求的范围内。
Claims (20)
1.一种计算设备,包括:
易失性存储器,其被逻辑地分割成多个页面;
非易失性存储设备,其中所述多个页面中的页面的内容通过存储器转移操作可转移到所述非易失性存储设备;
所述计算设备的操作系统;
一个或多个处理器,其引起所述计算设备至少:
接收指示电池中的能量的量的信息,所述能量可用于由所述计算设备使用;
确定执行所述存储器转移操作所需要的能量的量;
至少部分基于执行所述存储器转移操作所需要的能量的所述量,使用在公用电源中断的情况中可用于由所述计算设备使用的能量的所述量来确定所述多个页面中的其内容可转移到所述非易失性存储设备的页面的最大数目;以及
将所述操作系统配置为将所述易失性存储器的所述多个页面中的一个或多个页面视为非易失性存储器,其中标识提交模式的信息被提供给在所述计算设备上执行的应用,所述提交模式指示被写入所述易失性存储器的数据被立即变得持久,并且其中所述一个或多个页面的数目基于页面的确定的所述最大数目。
2.根据权利要求1所述的计算设备,其中所述一个或多个处理器还引起所述计算设备至少:
将所述一个或多个页面的内容转移到所述非易失性存储设备的保留部分。
3.根据权利要求2所述的计算设备,其中所述一个或多个页面的所述内容响应于接收到指示所述电池中的能量的所述量的减少的信息而被转移。
4.根据权利要求1所述的计算设备,其中配置所述操作系统包括利用指示与易失性存储器的所述一个或多个页面对应的非易失性存储器的一个或多个页面的信息来更新配置接口数据。
5.一种使用计算设备的存储器的方法,所述方法包括:
获取指示将易失性存储器的页面的内容转移到非易失性存储器所需要的能量的量的信息;
接收指示可用于将易失性存储器的所述页面的内容转移到所述非易失性存储器的能量的量的信息;
至少部分基于所需要的能量的所述量,来确定易失性存储器的所述页面的所述内容使用可用的能量的所述量可转移到所述非易失性存储器;以及
将所述计算设备的操作系统配置为将易失性存储器的所述页面视为非易失性存储器的页面,其中标识提交模式的信息被提供给在所述计算设备上执行的应用,所述提交模式指示被写入所述易失性存储器的数据被立即变得持久。
6.根据权利要求5所述的方法,还包括:
将易失性存储器的所述页面的所述内容转移到所述非易失性存储器的保留部分。
7.根据权利要求5所述的方法,还包括:
响应于接收到指示可用于将易失性存储器的所述页面的内容转移到所述非易失性存储器的能量的所述量的减少的信息,将易失性存储器的所述页面的所述内容转移到所述非易失性存储器的保留部分。
8.根据权利要求5所述的方法,其中配置所述操作系统包括利用指示与易失性存储器的一个或多个页面对应的非易失性存储器的一个或多个页面的信息来更新配置接口数据。
9.根据权利要求5所述的方法,还包括:
至少部分基于指示所述计算设备的性能模式或安全模式中的至少一种的信息,来确定易失性存储器的所述页面的所述内容可转移到所述非易失性存储器。
10.根据权利要求5所述的方法,还包括:
接收指示所述计算设备已经从公用电源切换到电池电源的信息;
将所述操作系统配置为至少部分基于自从所述计算设备从公用电源切换到电池电源的时间长度来将易失性存储器的所述页面视为易失性存储器;以及
将易失性存储器的所述页面的所述内容转移到所述非易失性存储器。
11.根据权利要求5所述的方法,其中指示将易失性存储器的页面的内容转移到非易失性存储器所需要的能量的量的所述信息至少部分基于由从易失性存储器的所述页面向所述非易失性存储器执行直接存储器访问转移消耗的能量。
12.根据权利要求5所述的方法,其中指示将易失性存储器页面的内容转移到非易失性存储器所需要的能量的量的所述信息至少部分基于由处理器发起转移所述页面的所述内容的操作消耗的能量。
13.根据权利要求5所述的方法,还包括:
至少部分基于被配置为被所述操作系统视为非易失性存储器页面的易失性存储器的其他页面的数目来确定易失性存储器的所述页面的所述内容是可转移的。
14.根据权利要求5所述的方法,还包括:
确定使用可用于将易失性存储器的所述页面的内容转移到所述非易失性存储器的所述能量而可转移到所述非易失性存储器的易失性存储器的页面的最大数目。
15.一种使用计算设备的存储器的系统,包括:
用于获取指示将易失性存储器的内容转移到非易失性存储器所需要的能量的量的信息的装置;
用于接收指示可用于将所述易失性存储器的所述内容转移到所述非易失性存储器的能量的量的信息的装置;
用于至少部分基于所需要的能量的所述量,来标识使用可用的能量的所述量而可转移到所述非易失性存储器的所述易失性存储器的一部分的装置;以及
用于将所述系统的操作系统配置为将所述易失性存储器的所述一部分视为非易失性存储器的装置,其中标识提交模式的信息被提供给在所述计算设备上执行的应用,所述提交模式指示被写入所述易失性存储器的数据被立即变得持久。
16.根据权利要求15所述的系统,包括:
用于通过至少确定能够使用可用的能量的所述量而被转移到所述非易失性存储器的存储器的量来标识可转移到所述非易失性存储器的所述易失性存储器的所述部分的装置。
17.根据权利要求15所述的系统,包括:
用于计算在公用电源中断的情况中所述易失性存储器的所述部分将使用可用的能量的所述量而可转移到所述非易失性存储器的统计概率的装置。
18.根据权利要求15所述的系统,还包括:
用于响应于接收到指示可用于将所述易失性存储器的所述内容转移到所述非易失性存储器的可用的能量的所述量的减少的信息,将易失性存储器的所述部分转移到所述非易失性存储器的保留部分的装置。
19.根据权利要求15所述的系统,其中所述操作系统被配置为通过至少更新由所述操作系统访问的配置和接口数据来将所述易失性存储器的所述部分视为非易失性存储器。
20.根据权利要求15所述的系统,其中所述易失性存储器的所述部分通过至少向在所述系统上执行的应用提供指示与被存储在所述易失性存储器的所述部分中的数据兼容的提交模式的信息而被被所述操作系统视为非易失性存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/004,830 US9746895B2 (en) | 2016-01-22 | 2016-01-22 | Use of volatile memory as non-volatile memory |
US15/004,830 | 2016-01-22 | ||
PCT/US2017/014377 WO2017127709A1 (en) | 2016-01-22 | 2017-01-20 | Use of volatile memory as non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108369488A CN108369488A (zh) | 2018-08-03 |
CN108369488B true CN108369488B (zh) | 2021-11-02 |
Family
ID=57956418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780004322.5A Active CN108369488B (zh) | 2016-01-22 | 2017-01-20 | 使用易失性存储器作为非易失性存储器 |
Country Status (17)
Country | Link |
---|---|
US (2) | US9746895B2 (zh) |
EP (1) | EP3405858A1 (zh) |
JP (1) | JP7054384B2 (zh) |
KR (1) | KR102711781B1 (zh) |
CN (1) | CN108369488B (zh) |
AU (1) | AU2017210226B2 (zh) |
BR (1) | BR112018010704A8 (zh) |
CA (1) | CA3003486C (zh) |
CL (1) | CL2018001390A1 (zh) |
CO (1) | CO2018005630A2 (zh) |
IL (1) | IL259104B (zh) |
MX (1) | MX393173B (zh) |
PH (1) | PH12018550054B1 (zh) |
RU (1) | RU2739722C2 (zh) |
SG (1) | SG11201803670UA (zh) |
WO (1) | WO2017127709A1 (zh) |
ZA (1) | ZA201802763B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9760147B2 (en) | 2016-01-22 | 2017-09-12 | Microsoft Technology Licensing, Llc | Power control for use of volatile memory as non-volatile memory |
US10474550B2 (en) | 2017-05-03 | 2019-11-12 | Vmware, Inc. | High availability for persistent memory |
US10496443B2 (en) * | 2017-05-03 | 2019-12-03 | Vmware, Inc. | OS/hypervisor-based persistent memory |
CN113535666A (zh) * | 2020-04-15 | 2021-10-22 | 华为技术有限公司 | 数据写入方法及装置、数据库系统、存储介质 |
CN115080158B (zh) * | 2021-03-12 | 2024-07-09 | Oppo广东移动通信有限公司 | 界面显示方法、装置、终端设备及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866223A (zh) * | 2005-05-20 | 2006-11-22 | 株式会社瑞萨科技 | 存储模块、存储系统、以及信息设备 |
CN105190526A (zh) * | 2013-02-08 | 2015-12-23 | 微软技术许可有限责任公司 | 对用于非易失性存储设备的存储器重新编址 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01241653A (ja) * | 1988-03-24 | 1989-09-26 | Matsushita Graphic Commun Syst Inc | メモリー・バックアップ・システム |
JPH0467219A (ja) * | 1990-07-09 | 1992-03-03 | Fujitsu Ltd | 停電時における半導体記憶装置のデータ保護方式 |
JPH07271683A (ja) * | 1994-03-31 | 1995-10-20 | Fanuc Ltd | データ保持方式 |
JPH07306839A (ja) * | 1994-05-11 | 1995-11-21 | Hitachi Ltd | ネットワークファイルのアクセス高速化方法 |
US6957355B2 (en) | 2002-09-18 | 2005-10-18 | Sun Microsystems, Inc. | Method and system for dynamically adjusting storage system write cache based on the backup battery level |
GB0320142D0 (en) * | 2003-08-28 | 2003-10-01 | Ibm | Data storage systems |
US7051223B2 (en) * | 2003-09-30 | 2006-05-23 | International Business Madnine Corporation | System, apparatus, and method for limiting non-volatile memory |
US7805523B2 (en) * | 2004-03-15 | 2010-09-28 | Mitchell David C | Method and apparatus for partial updating of client interfaces |
ATE347731T1 (de) * | 2004-10-04 | 2006-12-15 | Research In Motion Ltd | System und verfahren zum datensichern bei stromausfall |
JP4842563B2 (ja) * | 2005-05-16 | 2011-12-21 | パナソニック株式会社 | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 |
US7451348B2 (en) | 2005-08-04 | 2008-11-11 | Dot Hill Systems Corporation | Dynamic write cache size adjustment in raid controller with capacitor backup energy source |
CZ200627A3 (cs) * | 2006-01-13 | 2007-09-12 | Ažd Praha S. R. O. | Způsob zachování bezpečného stavu elektronických bezpečnostně relevantních zařízení se složenou bezpečností při poruše |
US9081669B2 (en) * | 2006-04-27 | 2015-07-14 | Avalanche Technology, Inc. | Hybrid non-volatile memory device |
US8200885B2 (en) * | 2007-07-25 | 2012-06-12 | Agiga Tech Inc. | Hybrid memory system with backup power source and multiple backup an restore methodology |
US8281169B2 (en) | 2008-08-27 | 2012-10-02 | Wireless Silicon Group, Inc. | Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM) |
US8468370B2 (en) * | 2009-09-16 | 2013-06-18 | Seagate Technology Llc | Systems, methods and devices for control of the operation of data storage devices using solid-state memory and monitoring energy used therein |
US8437808B2 (en) | 2010-05-03 | 2013-05-07 | Hewlett-Packard Development Company, L.P. | Apparatus and methods for power management on mobile devices |
US9037820B2 (en) * | 2012-06-29 | 2015-05-19 | Intel Corporation | Optimized context drop for a solid state drive (SSD) |
US9317212B2 (en) | 2012-12-18 | 2016-04-19 | Intel Corporation | Method and apparatus for controlling a storage device |
US9098280B2 (en) | 2012-12-28 | 2015-08-04 | Intel Corporation | Staged power distribution control |
US9335809B2 (en) | 2013-03-15 | 2016-05-10 | Seagate Technology Llc | Volatile memory storing system data during low power mode operation and monitoring the voltage supplied to the memory during low power mode |
JP2014194634A (ja) * | 2013-03-28 | 2014-10-09 | Sony Corp | 情報処理装置、情報処理方法、並びに記録媒体 |
US9372759B2 (en) * | 2014-06-16 | 2016-06-21 | Samsung Electronics Co., Ltd. | Computing system with adaptive back-up mechanism and method of operation thereof |
-
2016
- 2016-01-22 US US15/004,830 patent/US9746895B2/en active Active
-
2017
- 2017-01-20 WO PCT/US2017/014377 patent/WO2017127709A1/en active Application Filing
- 2017-01-20 BR BR112018010704A patent/BR112018010704A8/pt not_active Application Discontinuation
- 2017-01-20 EP EP17702741.4A patent/EP3405858A1/en not_active Ceased
- 2017-01-20 CN CN201780004322.5A patent/CN108369488B/zh active Active
- 2017-01-20 SG SG11201803670UA patent/SG11201803670UA/en unknown
- 2017-01-20 PH PH1/2018/550054A patent/PH12018550054B1/en unknown
- 2017-01-20 MX MX2018006388A patent/MX393173B/es unknown
- 2017-01-20 JP JP2018528232A patent/JP7054384B2/ja active Active
- 2017-01-20 RU RU2018119717A patent/RU2739722C2/ru active
- 2017-01-20 KR KR1020187015412A patent/KR102711781B1/ko active Active
- 2017-01-20 AU AU2017210226A patent/AU2017210226B2/en active Active
- 2017-01-20 CA CA3003486A patent/CA3003486C/en active Active
- 2017-07-28 US US15/663,571 patent/US10359826B2/en active Active
-
2018
- 2018-04-25 ZA ZA2018/02763A patent/ZA201802763B/en unknown
- 2018-05-02 IL IL259104A patent/IL259104B/en unknown
- 2018-05-23 CL CL2018001390A patent/CL2018001390A1/es unknown
- 2018-05-28 CO CONC2018/0005630A patent/CO2018005630A2/es unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866223A (zh) * | 2005-05-20 | 2006-11-22 | 株式会社瑞萨科技 | 存储模块、存储系统、以及信息设备 |
CN105190526A (zh) * | 2013-02-08 | 2015-12-23 | 微软技术许可有限责任公司 | 对用于非易失性存储设备的存储器重新编址 |
Also Published As
Publication number | Publication date |
---|---|
AU2017210226B2 (en) | 2021-07-22 |
CO2018005630A2 (es) | 2018-05-31 |
MX393173B (es) | 2025-03-24 |
WO2017127709A1 (en) | 2017-07-27 |
CN108369488A (zh) | 2018-08-03 |
JP7054384B2 (ja) | 2022-04-13 |
PH12018550054B1 (en) | 2023-12-06 |
KR20180102057A (ko) | 2018-09-14 |
JP2019510284A (ja) | 2019-04-11 |
AU2017210226A1 (en) | 2018-05-17 |
US9746895B2 (en) | 2017-08-29 |
ZA201802763B (en) | 2019-07-31 |
RU2018119717A3 (zh) | 2020-06-30 |
CL2018001390A1 (es) | 2018-09-14 |
US10359826B2 (en) | 2019-07-23 |
KR102711781B1 (ko) | 2024-09-27 |
EP3405858A1 (en) | 2018-11-28 |
SG11201803670UA (en) | 2018-08-30 |
RU2018119717A (ru) | 2019-12-02 |
CA3003486C (en) | 2024-01-16 |
CA3003486A1 (en) | 2017-07-27 |
US20170212573A1 (en) | 2017-07-27 |
HK1256100A1 (zh) | 2019-09-13 |
IL259104B (en) | 2021-09-30 |
BR112018010704A2 (pt) | 2018-11-21 |
IL259104A (en) | 2018-07-31 |
MX2018006388A (es) | 2018-09-05 |
NZ742061A (en) | 2021-09-24 |
BR112018010704A8 (pt) | 2019-02-26 |
PH12018550054A1 (en) | 2018-11-12 |
US20170329379A1 (en) | 2017-11-16 |
RU2739722C2 (ru) | 2020-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10115442B2 (en) | Demand-based provisioning of volatile memory for use as non-volatile memory | |
US10936038B2 (en) | Power control for use of volatile memory as non-volatile memory | |
CN108369488B (zh) | 使用易失性存储器作为非易失性存储器 | |
US10521006B2 (en) | Report updated threshold level based on parameter | |
US8392736B2 (en) | Managing memory power usage | |
US9483103B2 (en) | Process state of a computing machine | |
TW201423400A (zh) | 用於超管理器系統之針對雙直列記憶體模組節能的系統與方法 | |
CN112204514B (zh) | 用于保留非易失性存储器的预期寿命的技术 | |
HK1256100B (zh) | 使用易失性存储器作为非易失性存储器 | |
NZ742061B2 (en) | Use of volatile memory as non-volatile memory | |
CN112506686A (zh) | 一种dcs控制器日志系统实现方法和装置 | |
JP2013196316A (ja) | ディスクアレイ装置及びディスクアレイ装置の制御方法 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1256100 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |