CN104781794B - 用于非易失性存储器中的数据结构的暂时和持久状态之间的原地改变 - Google Patents
用于非易失性存储器中的数据结构的暂时和持久状态之间的原地改变 Download PDFInfo
- Publication number
- CN104781794B CN104781794B CN201380061116.XA CN201380061116A CN104781794B CN 104781794 B CN104781794 B CN 104781794B CN 201380061116 A CN201380061116 A CN 201380061116A CN 104781794 B CN104781794 B CN 104781794B
- Authority
- CN
- China
- Prior art keywords
- volatile memory
- memory devices
- state
- data
- stored
- 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
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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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
-
- 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/0625—Power saving in storage 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Semiconductor Memories (AREA)
Abstract
描述了有关用于非易失性存储器上的数据结构的暂时和持久状态之间的原地改变的方法和装置。在一个实施例中,控制器逻辑引起一个或多个非易失性存储器设备的第一部分的状态中在持久状态与暂时状态之间的改变并且不移动被存储在一个或多个非易失性存储器设备的第一部分中的数据。还公开和要求保护其它实施例。
Description
技术领域
本公开一般地涉及电子器件的领域。更具体地,本发明的一些实施例一般涉及用于非易失性存储器中的数据结构的暂时(transient)和持久(persistent)状态之间的原地改变。
背景技术
一般而言,用于在计算系统中存储数据的存储器可以是易失性的(以存储易失性信息)或非易失性的(以存储持久信息)。存储在易失性存储器中的易失性数据结构用于被要求以在程序的运行时期间支持程序的功能性的临时和中间信息。另一方面,存储在非易失性存储器中的持久数据结构在程序的运行时之外可用并且可以被再用。而且,新的数据典型地在用户或程序员决定使数据持久之前首先被生成为易失性数据。例如,程序员或用户可以引起由处理器直接可访问的易失性主存储器中的易失性结构的映射(即实例化)。另一方面,持久数据结构在如同附接到输入/输出(I/O或IO)总线的旋转盘的非易失性存储设备或者如同闪速存储器的基于非易失性存储器的设备上实例化。持久信息因而不是由处理器直接可访问的并且需要从非易失性存储装置拷贝到主存储器以便成为如易失性数据由处理器可使用。
在该方法的情况下的一个问题在于从易失性到持久和往回改变信息状态的低效。过程必须将数据结构的主要内容从存储装置(持久区)拷贝到主存储器(易失性区)和往回。这招致在功耗、性能和/或存储器占用(footprint)方面不必要的开销。例如,易失性存储器区可以映射到主存储器(例如DRAM(动态随机存取存储器))并且持久存储器区可以映射到非易失性存储设备(诸如闪速或旋转盘驱动装置)。方法以相同方式工作并且具有相同的低效率,其中必须在易失性和非易失性持久区之间进行拷贝,即便对于二者使用相同的存储器技术(例如通过将RAM(随机存取存储器)存储映射到主存储器上)。
另外,旋转或硬盘驱动装置提供相对低成本的存储解决方案并且在许多计算设备中用于提供非易失性存储。然而,当相比于闪速存储器时,盘驱动装置可能使用大量功率,因为盘驱动装置需要以相对高速转动它的盘并且相对于转动的盘移动磁盘头以读取/写入数据。所有这种物理移动生成热并且增加功耗。为此,一些更高端的移动设备正在朝向没有移动部分的非易失性设备迁移,诸如闪速存储器和固态驱动装置。然而,闪速存储器也具有许多缺点,包括例如对于改变位状态的相对大电压水平要求、由于电荷泵斜升的要求所致的写入时间中的延迟、必须一次擦除单元的块等。
附图说明
参考附图提供详细描述。在图中,参考标号的(多个)最左数位标识参考标号首先出现在其中的图。相同参考标号在不同图中的使用指示类似或相同项。
图1,5和6图示了计算系统的实施例的框图,所述计算系统可以用于实现本文所讨论的各种实施例。
图2-3图示了依照一些实施例的统一存储器和存储区。
图4图示了根据实施例的重初始化系统状态的方法的流程图。
具体实施方式
在以下描述中,阐述众多特定细节以便提供各种实施例的透彻理解。然而,可以在没有特定细节的情况下实践本发明的各种实施例。在其它实例中,未详细描述众所周知的方法、过程、组件和电路以免模糊本发明的特定实施例。另外,可以使用诸如集成半导体电路(“硬件”)、组织成一个或多个程序的计算机可读指令(“软件”)或硬件和软件的某种组合之类的各种手段来执行本发明的实施例的各种方面。出于本公开的目的,对“逻辑”的提及应当意指硬件、软件、固件或其某种组合。
一些实施例提供用于非易失性存储器(NVM)设备上的数据结构的暂时和持久状态之间的原地改变。如本文所讨论的,“原地改变”是指通过改变元数据(对应于数据结构)来在暂时和持久状态之间改变被存储在NVM中的数据的状态并且不必移动(或拷贝)数据结构或数据本身。NVM设备可以包括闪速存储器、相变存储器(PCM)、旋转力矩转移随机存取存储器(STTRAM)、电阻性随机存取存储器、3D(3维)交叉点存储器等。由于这些NVM设备按照定义提供持久性,一些实施例允许统一存储器和存储(UMS)架构。利用UMS,不再需要主存储器(用于易失性数据结构)与非易失性存储装置(用于持久数据结构)之间的固定分区。代替地,在实施例中,在UMS架构中从易失性向持久(和往回)改变数据结构的状态原地发生而不必拷贝数据结构本身。
因而,一些实施例使存储器和存储子系统在活动时段期间更加功率高效并且降低子系统上的压力。作为结果,移动平台将看到在电池上的更长有效(active)时间方面的直接益处。一些实施例可以在OS(操作系统)和软件应用水平上组合新的编程抽象。如同智能电话和平板之类的越来越多的垂直整合(vertically integrated)的系统因而是针对这样的技术的顺从目标,因为这些系统可以沿整个系统栈而更好地利用创新。
而且,本文所讨论的存储器技术可以提供在各种计算系统(例如包括智能电话、平板、便携式游戏控制台、超移动个人计算机(UMPC)等)中,诸如参考图1-6讨论的那些。更具体地,图1图示了根据本发明的实施例的计算系统100的框图。系统100可以包括一个或多个处理器102-1到102-N(在本文中一般称为“多个处理器102”或“处理器102”)。处理器102可以经由互连或总线104进行通信。每一个处理器可以包括各种组件,为了清楚,仅参考处理器102-1讨论其中的一些。因此,其余处理器102-2到102-N中的每一个可以包括参考处理器102-1讨论的相同或类似组件。
在实施例中,处理器102-1可以包括一个或多个处理器核106-1到106-M(在本文中称为“多个核106”或更一般地称为“核106”)、缓存(cache)108(在各种实施例中可以是共享缓存或专有缓存)和/或路由器110。处理器核106可以实现在单个集成电路(IC)芯片上。而且,芯片可以包括一个或多个共享和/或专有的缓存(诸如缓存108)、总线或互连(诸如总线或互连112)、逻辑120、存储器控制器(诸如参考图5-6讨论的那些)或其它组件。
在一个实施例中,路由器110可以用于在处理器102-1和/或系统100的各种组件之间进行通信。而且,处理器102-1可以包括多于一个路由器110。另外,许多路由器110可以通信以使得能够实现处理器102-1的内部或外部的各种组件之间的数据路由。
缓存108可以存储由处理器102-1的一个或多个组件(诸如核106)利用的数据(例如包括指令)。例如,缓存108可以本地缓存被存储在存储器114中的数据以用于由处理器102的组件更快速地访问。如图1中所示,存储器114可以经由互连104与处理器102通信。在实施例中,缓存108(可以被共享)可以具有各种级别,例如,缓存108可以是中级缓存和/或末级缓存(LLC)。同样,每一个核106可以包括级别1(L1)缓存(116-1)(在本文中一般被称为“L1缓存116”)。处理器102-1的各种组件可以直接、通过总线(例如总线112)和/或存储器控制器或集线器与缓存108通信。
如图1中所示,存储器114可以通过存储器控制器120耦合到系统100的其它组件。在一些实施例中,存储器114可以包括诸如闪速存储器、PCM、STTRAM、电阻性随机存取存储器、3D交叉点存储器等之类的非易失性存储器。虽然将存储器控制器120示出为耦合在互连104和存储器114之间,但是存储器控制器120可以位于系统100中的别处。例如,在一些实施例中,存储器控制器120或其部分可以提供在处理器102之一内。同样,在一些实施例中,系统100可以包括逻辑(例如NVM控制器逻辑125)以控制对一个或多个NVM设备的访问(例如如图1中的存储器114所图示,其中在一些实施例中一个或多个NVM设备可以被提供在相同的集成电路管芯上)和/或导致存储在存储器114中的数据/结构的状态中的改变(在持久和暂时状态之间),如本文关于各种实施例所讨论的那样。
图2-3图示了根据一些实施例的允许用于数据结构在易失性和持久状态之间的原地状态改变的统一存储器和存储区的框图。在实施例中,在被分配用于这样的元信息的存储区域或单元中所提供的数据结构中标注状态(易失性与持久)。任何类型的存储装置可以被用于存储数据/结构状态元信息(诸如参考图5和/或6讨论的那些)。用于在易失性和持久状态之间进行区分的元信息可以但不需要与数据结构直接绑定,即元信息甚至可以被置于不同的存储器设备上,只要元数据可以与(多个)主数据结构相关联即可。在实施例中,元信息被视为是持久的。为了显示的简单,仅粗略的数据结构在图2-3中示出。
在一些实施例中,数据结构包括分层次组织的数据。另一方面,数据结构可以如存储器中的所定义区或部分(例如UMS)那样简单(包括例如一个或多个数据位)。元信息可以非常小。最小要求可以是与数据(诸如数据结构)的每一个部分相关联的单个位以在数据部分的易失性和持久状态之间进行区分。单个位可以存储在诸如寄存器、存储器的部分等之类的任何存储单元中。
参考图2,在右边的易失性结构的状态改变(图2中的阴影框)之前图示了UMS区上的易失性和持久数据结构。在与数据结构相关联的元信息中,“V”代表易失性状态并且“P”指代持久状态。图3图示了在右边的结构的“原地”状态改变(从易失性改变成持久)之后在UMS区上的易失性和持久数据结构。如可以看到的,仅元信息改变(阴影框),从而允许数据结构本身停留在原地而不必拷贝其内容。
图4图示了根据实施例的重初始化系统状态(例如通过易失性数据结构的垃圾收集)的方法400的流程图。在各种实施例中,方法400的一个或多个操作可以由参考其它图讨论的一个或多个组件(例如逻辑125)执行。另外,依照一些实施例,类似的方法还可以应用在用于各个过程/程序的数据结构的上下文中。
参考图4,在操作402处,维持正常操作模式直到在操作404处检测到异常事件(例如,其中异常事件一般是指异常的执行状态和/或系统崩溃事件)。在操作406处,确定元信息是否包含与易失性数据结构的关联(例如诸如在图2中图示的那样)。如果没有元信息关联被发现,则方法400以操作402再继续。否则,在操作408处,可以从系统移除(多个)易失性数据结构和相关联的元信息(在操作406处确定)。在操作408之后,方法400以操作402再继续。
在一些实施例中,应用数据结构的易失性状态的原地改变(例如在UMS中)允许避免对于在易失性和持久区之间拷贝数据结构内容的需要。例如,可以实现以下中的一个或多个:(1)对必须改变其易失性状态的数据结构的较低等待时间访问,诸如从持久对象初始化易失性对象(而传统上,持久对象将会包含通过拷贝信息创建的易失性对象的冗余信息,并且在实施例中,该过程可以原地发生,从而允许对数据结构的几乎立即访问);(2)从用户的视角来看,与数据一起工作将变得比使用当今的打开/关闭文件操作更加直观(例如数据可以简单地被原地编辑并且每当修改将完成时被标记为持久的);(3)不存在将存储器子系统人工分区成易失性和持久区的需要(部分地因为易失性和持久数据结构可以在相同区中共存,由于更紧凑的布局而进一步降低所需的总容量);和/或(4)在对于易失性和持久数据结构所需的吞吐量和总占用方面的UMS区上的较低资源利用,因为避免了冗余拷贝操作。每当仅需要一个拷贝(持久或易失性)时,后一特征都是可见的,例如当从持久储存中初始化易失性数据并且将被视为最终的易失性数据结构“保存”到持久位置时。如果需要的话,一些实施例不阻止使用变化的易失性状态的若干拷贝,例如,如对于维护数据结构的若干版本所需的那样。
在一些实施例中,不能完全避免故障软件和如同功率丢失的外部事件。在传统系统中,按照定义,在系统崩溃之后易失性信息一般丢失并且系统状态必须由OS和/或平台重初始化。为了利用一些实施例提供相同功能性,与数据结构相关联的持久元信息可以用于实现易失性数据结构的垃圾收集,如图4中在系统级别上图示的那样。相同的过程可以应用于为异常终止的各个过程和程序而对易失性数据结构进行垃圾收集以避免不再使用的过期数据。
实施例服从硬件/软件共同开发(例如垃圾收集可以服从硬件加速度,而元信息的修改可以由OS管控)。例如,拆解对应的驱动器/OS区段可以导致识别用以触发硬件块中的活动的控制序列(其很可能可以利用NVM接口上的性能计数器或探针来监控)或者对元信息的维护访问模式。而且,系统软件和应用中的持久性可以用作除本文所讨论的一些实施例之外的编程技术和抽象的选项。示例是处置保护以防数据的恶意使用的对象储存装置和用于使用持久对象的面向对象的类概念。
图5图示了依照本发明的实施例的计算系统500的框图。计算系统500可以包括经由互连网络(或者总线)504通信的一个或多个中央处理单元(CPU)502或者处理器。处理器502可以包括通用处理器、网络处理器(其处理通过计算机网络503传送的数据)、应用处理器(诸如在蜂窝电话、智能电话等中使用的那些)或者其它类型的处理器(包括精简指令集计算机(RISC)处理器或者复杂指令集计算机(CISC))。可以利用各种类型的计算机网络503,包括有线(例如以太网、吉比特、光纤等)或者无线网络(诸如蜂窝、3G(第三代蜂窝电话技术或者第三代无线格式(UWCC))、5G、低功率嵌入的(LPE)等)。而且,处理器502可以具有单核或者多核设计。具有多核设计的处理器502可以在相同的集成电路(IC)管芯上集成不同类型的处理器核。而且,具有多核设计的处理器502可以被实现为对称或者不对称的多处理器。
在实施例中,处理器502中的一个或多个可以与图1的处理器102相同或者类似。例如,处理器502中的一个或多个可以包括缓存108和/或核106中的一个或多个。而且,参考图1-4讨论的操作可以由系统500的一个或多个组件执行。
芯片集506也可以与互连网络504通信。芯片集506可以包括图形和存储器控制集线器(GMCH)508。GMCH 508可以包括与存储器114通信的存储器控制器510(其在实施例中可以与图1的存储器控制器120相同或类似,例如包括逻辑125)。存储器114可以存储数据,包括由CPU 502或者被包括在计算系统500中的任何其它设备执行的指令序列。在本发明的一个实施例中,存储器114可以包括一个或多个易失性存储装置(或者存储器)设备,诸如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或者其它类型的存储设备。还可以利用非易失性存储器,诸如硬盘、闪速装置、PCM、3D交叉点存储器、电阻性随机存取存储器和STTRAM。附加的设备可以经由互连网络504通信,诸如多个CPU和/或多个系统存储器。
GMCH 508还可以包括图形接口514,其与图形加速器516通信。在本发明的一个实施例中,图形接口514可以经由加速的图形端口(AGP)与图形加速器516通信。在本发明的实施例中,显示器517(诸如平板显示器、触摸屏等)可以通过例如信号变换器与图形接口514通信,所述信号变换器将存储在诸如视频存储器或者系统存储器之类的存储设备中的图像的数字表示转化成被显示器解释并显示的显示信号。由显示设备产生的显示信号在被显示器517解释并随后在其上显示之前可以通过各种控制设备。
集线器接口518可以允许GMCH 508和输入/输出控制集线器(ICH)520通信。ICH520可以提供到与计算系统500通信的I/O设备的接口。ICH 520可以通过诸如以下的外围桥(或者控制器)524与总线522通信:外围组件互连(PCI)桥、通用串行总线(USB)控制器或者其它类型的外围桥或者控制器。桥524可以在CPU 502和外围设备之间提供数据路径。可以利用其它类型的拓扑。而且,多个总线可以例如通过多个桥或者控制器与ICH 520通信。而且,在本发明的各种实施例中,与ICH 520通信的其它外围设备可以包括电子集成驱动装置(IDE)或者(多个)小型计算机系统接口(SCSI)硬驱动装置、(多个)USB端口、键盘、鼠标、(多个)并行端口、(多个)串行端口、(多个)软盘驱动装置、数字输出支持(例如数字视频接口(DVI))或者其它设备。
总线522可以与音频设备526、一个或多个盘驱动装置528以及网络接口设备530(其例如经由有线或者无线接口与计算机网络503通信)通信。如所示,网络接口设备530可以耦合到天线531以无线地(例如经由电气和电子工程师协会(IEEE)802.11接口(包括IEEE802.11a/b/g/n等)、蜂窝接口、3G、5G、LPE等)与网络503通信。其它设备可以经由总线522通信。而且,在本发明的一些实施例中,各种组件(诸如网络接口设备530)可以与GMCH 508通信。此外,处理器502和GMCH 508可以组合以形成单个芯片。另外,在本发明的其它实施例中,图形加速器516可以被包括在GMCH 508内。
另外,计算系统500可以包括易失性和/或非易失性存储器(或者存储装置)。例如,非易失性存储器可以包括以下中的一个或多个:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、盘驱动装置(例如528)、软盘、紧致盘ROM(CD-ROM)、数字通用盘(DVD)、闪速存储器、磁光盘或者能够存储电子数据(例如包括指令)的其它类型的非易失性机器可读介质。
图6图示了根据本发明的实施例的以点对点(PtP)配置来布置的计算系统600。具体而言,图6示出了其中处理器、存储器和输入/输出设备通过多个点对点接口互连的系统。参考图1-5讨论的操作可以由系统600的一个或多个组件执行。
如图6中所图示,系统600可以包括若干处理器,其中为了清楚起见仅示出两个处理器602和604。处理器602和604可以各自包括本地存储器控制器集线器(MCH)606和608以使得能够实现与存储器610和612的通信。存储器610和/或612可以存储各种数据,诸如参考图1和/或5的存储器114讨论的那些。而且,在一些实施例中,MCH 606和608可以包括图1的逻辑125和/或存储器控制器120。
在实施例中,处理器602和604可以是参考图5讨论的处理器502中的一个。处理器602和604可以经由点对点(PtP)接口614分别使用PtP接口电路616和618来交换数据。而且,处理器602和604可以各自经由单独的PtP接口622和624使用点对点接口电路626、628、630和632来与芯片集620交换数据。芯片集620还可以经由高性能图形接口636例如使用PtP接口电路637来与高性能图形电路636交换数据。如参考图5讨论的,在一些实施例中,图形接口636可以耦合到显示设备(例如显示器517)。
如图6中所示,图1的缓存108和/或核106中的一个或多个可以位于处理器602和604内。然而,本发明的其它实施例可以存在于图6的系统600内的其它电路、逻辑单元或者设备中。另外,本发明的其它实施例可以遍及图6中图示的若干电路、逻辑单元或者设备进行分布。
芯片集620可以使用PtP接口电路641与总线640通信。总线640可以具有与它通信的一个或多个设备,诸如总线桥642和I/O设备643。经由总线644,总线桥642可以与诸如以下的其它设备通信:键盘/鼠标645、通信设备646(诸如调制解调器、网络接口设备或者可以与计算机网络503通信的其它通信设备,例如,如参考网络接口设备530讨论的,包括经由天线531)、音频I/O设备和/或数据存储设备648。数据存储设备648可以存储可以由处理器602和/或604执行的代码649。
在本发明的各种实施例中,本文中例如参考图1-6讨论的操作可以被实现为硬件(例如电路)、软件、固件、微代码或其组合,其可以作为计算机程序产品来提供,例如包括有形(例如非暂时性)机器可读或者计算机可读介质,所述介质已在其上存储了用于对计算机编程以执行本文所讨论的过程的指令(或者软件过程)。而且,术语“逻辑”可以通过示例方式包括软件、硬件或者软件和硬件的组合。机器可读介质可以包括存储设备,诸如关于图1-6讨论的那些。
此外,这样的有形计算机可读介质可以作为计算机程序产品进行下载,其中程序可以经由通信链路(例如总线、调制解调器或者网络连接)通过数据信号的方式(诸如在载波或者其它传播介质中)从远程计算机(例如服务器)传递到进行请求的计算机(例如客户端)。
在说明书中对“一个实施例”或者“实施例”的提及意味着,结合实施例描述的特定特征、结构或者特性可以被包括在至少一个实现中。短语“在一个实施例中”在说明书中各个地方的出现可以或者可以不都是指相同的实施例。
而且,在说明书和权利要求书中,可以使用术语“耦合的”和“连接的”连同它们的派生词。在本发明的一些实施例中,“连接的”可以用来指示两个或多个元件与彼此直接物理或电气接触。“耦合的”可以意味着两个或多个元件直接物理或电气接触。然而,“耦合的”还可以意味着,两个或多个元件可以不与彼此直接接触,但仍可以与彼此协作或交互。
因此,尽管已经以特定于结构特征和/或方法动作的语言描述了本发明的实施例,但是要理解,所要求保护的主题可以不限于所描述的特定特征或动作。而是,特定特征和动作被公开为实现所要求保护的主题的样本形式。
Claims (24)
1.一种为非易失性存储器中的数据结构提供暂时状态和持久状态之间的原地改变的装置,所述装置包括:
控制器逻辑,用以控制对一个或多个非易失性存储器设备的访问;
存储单元,用以存储一位以指示所述一个或多个非易失性存储器设备的第一部分是否具有持久状态和暂时状态之一,
其中所述控制器逻辑能够引起所述一个或多个非易失性存储器设备的所述第一部分的状态在所述持久状态和所述暂时状态之间的改变并且不移动被存储在所述一个或多个非易失性存储器设备的所述第一部分中的数据。
2.权利要求1的装置,其中所述一个或多个非易失性存储器设备将包括以下中的一个或多个:闪速存储器、相变存储器(PCM)、3D(3维)交叉点存储器、电阻性随机存取存储器和旋转力矩转移随机存取存储器(STTRAM)。
3.权利要求1的装置,其中所述第一部分将包括一个或多个数据位。
4.权利要求1的装置,其中所述位将存储在所述一个或多个非易失性存储器设备中。
5.权利要求1的装置,其中所述控制器逻辑将响应于异常事件的检测以及所述位和所述部分相关联的确定而引起被存储在所述一个或多个非易失性存储器设备的所述部分和所述存储单元中的数据的移除。
6.权利要求1的装置,其中所述控制器逻辑将引起对所述位的状态的改变以在所述持久状态和所述暂时状态之间修改所述一个或多个非易失性存储器设备的所述第一部分的状态并且不移动被存储在所述一个或多个非易失性存储器设备的所述第一部分中的数据。
7.权利要求1的装置,其中所述一个或多个非易失性存储器设备在相同的集成电路管芯上。
8.权利要求1的装置,其中所述控制器逻辑、存储器、所述一个或多个非易失性存储器设备和处理器核中的一个或多个在相同的集成电路管芯上。
9.权利要求1的装置,其中存储器控制器将包括所述控制器逻辑。
10.权利要求1的装置,其中所述存储单元将包括寄存器。
11.一种为非易失性存储器中的数据结构提供暂时状态和持久状态之间的原地改变的方法,所述方法包括:
经由控制器逻辑而控制对一个或多个非易失性存储器设备的访问;
在存储单元中存储一位以指示所述一个或多个非易失性存储器设备的第一部分是否具有持久状态和暂时状态之一,
其中所述控制器逻辑能够引起所述一个或多个非易失性存储器设备的所述第一部分的状态在所述持久状态和所述暂时状态之间的改变并且不移动被存储在所述一个或多个非易失性存储器设备的所述第一部分中的数据。
12.权利要求11的方法,其中所述一个或多个非易失性存储器设备包括以下中的一个或多个:闪速存储器、相变存储器(PCM)、3D交叉点存储器、电阻性随机存取存储器和旋转力矩转移随机存取存储器(STTRAM)。
13.权利要求11的方法,其中所述第一部分包括一个或多个数据位。
14.权利要求11的方法,还包括将所述位存储在所述一个或多个非易失性存储器设备中。
15.权利要求11的方法,还包括响应于异常事件的检测和所述位和所述部分相关联的确定而引起被存储在所述一个或多个非易失性存储器设备的所述部分和所述存储单元中的数据的移除。
16.权利要求11的方法,还包括引起对所述位的状态的改变以在所述持久状态和所述暂时状态之间修改所述一个或多个非易失性存储器设备的所述第一部分的状态并且不移动被存储在所述一个或多个非易失性存储器设备的所述第一部分中的数据。
17.权利要求11的方法,其中所述一个或多个非易失性存储器设备在相同的集成电路管芯上。
18.权利要求11的方法,其中所述控制器逻辑、存储器、所述一个或多个非易失性存储器设备和处理器核中的一个或多个在相同的集成电路管芯上。
19.权利要求11的方法,还包括将所述位存储在寄存器中。
20.一种为非易失性存储器中的数据结构提供暂时状态和持久状态之间的原地改变的系统,所述系统包括:
一个或多个非易失性存储器设备;
处理器,用以经由控制器逻辑而访问被存储在所述一个或多个非易失性存储器设备上的数据;
控制器逻辑,用以控制对所述一个或多个非易失性存储器设备的访问;
存储单元,用以存储一位以指示所述一个或多个非易失性存储器设备的第一部分是否具有持久状态和暂时状态之一,
其中所述控制器逻辑能够引起所述一个或多个非易失性存储器设备的所述第一部分的状态在所述持久状态和所述暂时状态之间的改变并且不移动被存储在所述一个或多个非易失性存储器设备的所述第一部分中的数据。
21.权利要求20的系统,其中所述一个或多个非易失性存储器设备将包括以下中的一个或多个:闪速存储器、相变存储器(PCM)、3D交叉点存储器、电阻性随机存取存储器和旋转力矩转移随机存取存储器(STTRAM)。
22.权利要求20的系统,其中所述第一部分将包括一个或多个数据位。
23.权利要求20的系统,其中所述位将存储在所述一个或多个非易失性存储器设备中。
24.一种包括用以执行如权利要求11至19中任一项中要求保护的方法的构件的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/726,303 US9128824B2 (en) | 2012-12-24 | 2012-12-24 | In-place change between transient and persistent state for data structures on non-volatile memory |
US13/726303 | 2012-12-24 | ||
PCT/US2013/046550 WO2014105141A1 (en) | 2012-12-24 | 2013-06-19 | In-place change between transient and persistent state for data structures in non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104781794A CN104781794A (zh) | 2015-07-15 |
CN104781794B true CN104781794B (zh) | 2017-11-21 |
Family
ID=50976030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380061116.XA Active CN104781794B (zh) | 2012-12-24 | 2013-06-19 | 用于非易失性存储器中的数据结构的暂时和持久状态之间的原地改变 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9128824B2 (zh) |
EP (1) | EP2936317A4 (zh) |
CN (1) | CN104781794B (zh) |
WO (1) | WO2014105141A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9128824B2 (en) | 2012-12-24 | 2015-09-08 | Intel Corporation | In-place change between transient and persistent state for data structures on non-volatile memory |
US11221967B2 (en) * | 2013-03-28 | 2022-01-11 | Hewlett Packard Enterprise Development Lp | Split mode addressing a persistent memory |
US10331457B2 (en) * | 2014-01-22 | 2019-06-25 | Hewlett-Packard Development Company, L.P. | Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region |
US10061515B2 (en) * | 2014-09-11 | 2018-08-28 | Toshiba Memory Corporation | Information processing apparatus and memory system |
US9715453B2 (en) * | 2014-12-11 | 2017-07-25 | Intel Corporation | Computing method and apparatus with persistent memory |
US20160188414A1 (en) * | 2014-12-24 | 2016-06-30 | Intel Corporation | Fault tolerant automatic dual in-line memory module refresh |
US10606513B2 (en) | 2017-12-06 | 2020-03-31 | Western Digital Technologies, Inc. | Volatility management for non-volatile memory device |
US11579770B2 (en) | 2018-03-15 | 2023-02-14 | Western Digital Technologies, Inc. | Volatility management for memory device |
US11157319B2 (en) | 2018-06-06 | 2021-10-26 | Western Digital Technologies, Inc. | Processor with processor memory pairs for improved process switching and methods thereof |
US11176269B2 (en) | 2019-03-08 | 2021-11-16 | International Business Machines Corporation | Access control of specific encrypted data segment |
CN116244216B (zh) * | 2023-03-17 | 2024-03-01 | 摩尔线程智能科技(北京)有限责任公司 | 缓存控制方法、装置、缓存行结构、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1099496A (zh) * | 1993-05-24 | 1995-03-01 | 三菱电机株式会社 | 阵列记录装置的改进型记录装置及方法 |
US5787280A (en) * | 1990-05-21 | 1998-07-28 | Texas Instruments Incorporated | Apparatus and method for providing a facility for managing versions and configurations of persistent and transient objects |
US6073139A (en) * | 1996-08-15 | 2000-06-06 | Gioquest, A Division Of Schlumberger Technology Corp. | Integrated data communication and data access system including the application data interface |
CN101258467A (zh) * | 2005-09-07 | 2008-09-03 | 英特尔公司 | 计算机系统的预启动存储器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7073040B2 (en) * | 2003-09-23 | 2006-07-04 | Intel Corporation | Multilevel segmented memory |
US8452929B2 (en) | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | Method and system for storage of data in non-volatile media |
US7454673B2 (en) | 2005-07-15 | 2008-11-18 | Kyocera Wireless Corp. | Apparatus, system, and method for accessing persistent files in non-execute-in-place flash memory |
US7755527B2 (en) * | 2008-01-16 | 2010-07-13 | Microchip Technology Incorporated | Read and write interface communications protocol for digital-to-analog signal converter with non-volatile memory |
US9037788B2 (en) | 2010-09-30 | 2015-05-19 | Micron Technology, Inc. | Validating persistent memory content for processor main memory |
US9128824B2 (en) | 2012-12-24 | 2015-09-08 | Intel Corporation | In-place change between transient and persistent state for data structures on non-volatile memory |
-
2012
- 2012-12-24 US US13/726,303 patent/US9128824B2/en active Active
-
2013
- 2013-06-19 WO PCT/US2013/046550 patent/WO2014105141A1/en active Application Filing
- 2013-06-19 EP EP13869669.5A patent/EP2936317A4/en not_active Withdrawn
- 2013-06-19 CN CN201380061116.XA patent/CN104781794B/zh active Active
-
2015
- 2015-07-31 US US14/815,508 patent/US9335944B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787280A (en) * | 1990-05-21 | 1998-07-28 | Texas Instruments Incorporated | Apparatus and method for providing a facility for managing versions and configurations of persistent and transient objects |
CN1099496A (zh) * | 1993-05-24 | 1995-03-01 | 三菱电机株式会社 | 阵列记录装置的改进型记录装置及方法 |
US6073139A (en) * | 1996-08-15 | 2000-06-06 | Gioquest, A Division Of Schlumberger Technology Corp. | Integrated data communication and data access system including the application data interface |
CN101258467A (zh) * | 2005-09-07 | 2008-09-03 | 英特尔公司 | 计算机系统的预启动存储器 |
Also Published As
Publication number | Publication date |
---|---|
CN104781794A (zh) | 2015-07-15 |
US20140181367A1 (en) | 2014-06-26 |
WO2014105141A1 (en) | 2014-07-03 |
US20160034224A1 (en) | 2016-02-04 |
EP2936317A4 (en) | 2016-07-13 |
US9128824B2 (en) | 2015-09-08 |
US9335944B2 (en) | 2016-05-10 |
EP2936317A1 (en) | 2015-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104781794B (zh) | 用于非易失性存储器中的数据结构的暂时和持久状态之间的原地改变 | |
CN103988183B (zh) | 2级存储器分级结构中的存储器侧高速缓存的动态部分断电 | |
CN108351813B (zh) | 用于在非易失性存储器快速(NVMe)控制器的不同网络地址上使能个别的NVMe输入/输出(IO)队列的方法和装置 | |
US20170160955A1 (en) | Page migration in a 3d stacked hybrid memory | |
CN103975287B (zh) | 使用非易失性随机存取存储器的服务器中的增强系统睡眠状态支持 | |
CN102346683B (zh) | 用于具有定向i/o的虚拟机的热交换有源存储器 | |
CN104025060B (zh) | 支持近存储器和远存储器访问的存储器通道 | |
CN104115091B (zh) | 多层级cpu高电流保护 | |
CN102460400B (zh) | 基于管理程序的本地和远程虚拟内存页面管理 | |
CN104106057B (zh) | 用非易失性随机存取存储器提供对休眠状态转变的即时响应的方法和系统 | |
CN107466418A (zh) | 用于多级别单元模式非易失性存储器的成本优化单级别单元模式非易失性存储器 | |
US9734081B2 (en) | Thin provisioning architecture for high seek-time devices | |
CN113448504A (zh) | 具有用于实现内部固态驱动器操作的外部软件执行的固态驱动器 | |
CN102646446B (zh) | 硬件动态高速缓存电源管理 | |
US20110271014A1 (en) | Direct i/o device access by a virtual machine with memory managed using memory disaggregation | |
CN104025066B (zh) | 用于能量高效计算的异构存储器晶片堆叠 | |
CN103946826A (zh) | 用于在公共存储器通道上实现多级存储器层级的设备和方法 | |
US10346345B2 (en) | Core mapping | |
CN108701003A (zh) | 用于对远程节点的许多存储操作的原子写入的结构弹性支持 | |
CN105335306B (zh) | 一种内存控制方法和装置 | |
CN109871182A (zh) | 存储装置及其操作方法及发出命令的方法 | |
CN107111452A (zh) | 应用于计算机系统的数据迁移方法和装置、计算机系统 | |
CN107408018A (zh) | 用于在固态驱动器中适应垃圾收集资源分配的机制 | |
JP7385083B2 (ja) | システムオンチップ(soc)のための強化された耐久性 | |
CN108932154A (zh) | 一种分布式虚拟机管理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |