CN104011691B - 非易失性ram盘 - Google Patents
非易失性ram盘 Download PDFInfo
- Publication number
- CN104011691B CN104011691B CN201180076054.0A CN201180076054A CN104011691B CN 104011691 B CN104011691 B CN 104011691B CN 201180076054 A CN201180076054 A CN 201180076054A CN 104011691 B CN104011691 B CN 104011691B
- Authority
- CN
- China
- Prior art keywords
- memory
- software application
- pcms
- ram disc
- processor
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- 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
- 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
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0009—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
- G11C14/0036—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell and the nonvolatile element is a magnetic RAM [MRAM] element or ferromagnetic cell
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0009—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
- G11C14/0045—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell and the nonvolatile element is a resistive RAM element, i.e. programmable resistors, e.g. formed of phase change or chalcogenide material
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2024—Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0004—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开方法和系统。在一个实施例中,方法包括在变存储器和开关(PCMS)存储器内若存储器位置以用作随机存取存储器(RAM)盘。创建RAM盘以供在计算机系统中运行的软件应用使用。方法还包括将分配数量的PCMS存储器中的至少一部分映射到软件应用地址空间。最后,方法还授予软件应用对分配数量的PCMS存储器的至少一部分的直接访问。
Description
技术领域
本发明涉及在非易失性存储器中实现RAM盘。
背景技术
相变存储器和开关(PCMS)是开发中的作为现今的固态存储设备中普遍存在的NAND非易失性存储的后继者的非易失性存储技术。PCMS提供比NAND闪存高得多的性能并且实际上开始逼近当前在大部分客户端计算设备中用作主要动态存储的动态随机存取存储器(DRAM)的性能点。尽管PCMS存储初始可每位比NAND存储更昂贵,预测到该关系随时间改变直至PCMS要比NAND便宜。
附图说明
下列描述和附图用于图示本发明的实施例。在图中:
图1图示采用基于NVRAM的RAM盘的计算机系统的实施例。
图2图示利用备选存储器子系统拓扑的计算机系统的实施例。
图3是另一个备选存储器子系统拓扑的实施例。
图4图示基于DMA控制器的DRAM到NVRAM转移(transfer)系统的实施例。
图5图示DRAM到NVRAM RAM盘转移系统的另一个实施例。
图6图示映射到软件应用地址空间的NVRAM RAM盘的实施例。
图7是在PCMS存储器空间中分配RAM盘并且将RAM盘直接映射到软件应用的逻辑地址空间的过程的实施例的流程图。
图8是在PCMS存储器空间中分配RAM盘并且执行从DRAM存储器到基于PCMS的RAM盘的DMA数据转移的过程的实施例的流程图。
具体实施方式
具有集成电路中晶体管性能提高和尺寸减小的例如PCMS非易失性存储等技术的组合允许通常将局限于易失性存储器的软件方案在非易失性实施例中能适用并且也尤其有益。例如,通常在易失性存储器中实现的随机存取存储器(RAM)盘如果用非易失性存储器技术实现则将具有扩大的益处。RAM盘是存储器块,在计算机系统上运行的操作系统或软件应用将其视为好像该块是大容量存储盘(即,硬驱动器、固态驱动器,等)一样。RAM盘在软件应用试图频繁访问大容量存储盘时是有用的。因为RAM盘驻存在存储器中,如果被访问的项定位在RAM盘上而不是定位在外面的实际大容量存储驱动器,访问可以以小得多的延迟而发生。另外,当RAM盘在非易失性存储器中实现时,可实现额外的益处,例如使功率状态转变的速度增加以及用于计算机系统的安全性增加的方案。
从而,非易失性存储器/存储技术使给定RAM盘的效率提高。存在许多类型的非易失性存储,但根据描述的许多实施例,使用非易失性随机存取存储器(NVRAM)存储并且在下文更详细地描述它。
1.
非易失性随机存取存储器综览
对于NVRAM存在许多可能的技术选项,包括相变存储器(PCM)、相变存储器和开关(PCMS)(后者是前者的更特定实现)、字节可寻址持续存储器(BPRAM)、存储类存储器(SCM)、通用存储器、Ge2Sb2Te5、可编程金属化单元(PMC)、电阻存储器(RRAM)、RESET(非晶)单元、SET(结晶)单元、PCME、Ovshinsky存储器、铁电存储器(也称为聚合物存储器和聚(N-乙烯基咔唑))、铁磁存储器(也称为自旋电子、SPRAM(自旋转移转矩RAM)、STRAM(自旋遂穿RAM)、磁阻存储器、磁性存储器和磁性随机存取存储器(MRAM)和半导体-氧化物-氮化物-氧化物-半导体(SONOS,也称为介电存储器)。
NVRAM具有下列特性:
·甚至如果去除电力的话,它维持它的内容,这与在固态盘(SSD)中使用的FLASH存储器类似,并且与易失性的SRAM和DRAM不同;
·它可具有比例如SRAM和DRAM等易失性存储器要低的总功耗;
·它可具有与SRAM和DRAM(也称为随机可寻址)相似的随机存取;
·它以比SSD中存在的FLASH要低的粒度级(例如,字节级)可重写和可擦除(其仅可以每次一个“块”地被重写和擦除-在大小上对于NOR FLASH最小是64千字节并且对于NAND FLASH是16千字节);
·它可以用作系统存储器并且被分配系统存储器地址空间的全部或一部分;
·它可以能够通过总线(也能互换地称为互连或链路)使用事务协议(支持事务标识符(ID)来区分不同事务使得那些事务可以无序地完成的协议)耦合于CPU并且允许以小到足以支持NVRAM作为系统存储器操作的粒度级(例如,高速缓存行大小,例如64或128字节)来访问。例如,总线/互连可以是存储器总线(例如,双数据速率(DDR)总线,例如DDR3、DDR4,等),通过该总线来运行事务协议,如与通常使用的非事务协议不同。作为另一个示例,总线可通过通常运行事务协议(本地事务协议)的总线来运行,例如PCI高速(PCIE)总线、桌面管理界面(DMI)总线或使用事务协议和足够小的事务有效载荷大小(例如,例如64或128字节等高速缓存行大小)的任何其他类型的总线;以及
·它还可具有下列特性中的一个或多个:
○ 比非易失性存储器/存储技术(例如FLASH)更快的写速度;
○ 非常高的读速度(比FLASH更快并且接近或等于DRAM读速度);
○ 它可以直接可写(而不是像在SSD中使用的FLASH存储器一样在写数据之前需要擦除(用1s覆盖写));
○ 在失效之前更大数量的写(比在SSD中使用的启动ROM和FLASH要多)。
如上文提到的,与每次必须整个 “块”地重写和擦除的FLASH存储器相比之下,在任何给定实现中访问NVRAM所采用的粒度级可取决于特定存储器控制器和特定存储器总线或NVRAM所耦合的其他类型的总线。例如,在NVRAM用作系统存储器的一些实现中,尽管有以字节粒度访问的固有能力,因为高速缓存行是存储器子系统访问存储器所采用的级别,可以高速缓存行(例如,64字节或128字节高速缓存行)的粒度访问NVRAM。从而,在一些实施例中,当NVRAM部署在存储器子系统内时,可以与在相同存储器子系统中使用的DRAM相同的粒度级来访问它。即使如此,在一些实施例中,由存储器控制器和存储器总线或其他类型的总线对NVRAM访问的粒度级小于Flash使用的块大小和I/O子系统的控制器和总线的访问大小。
NVRAM还可包含损耗均衡算法来考虑存储单元在许多写访问之后开始磨损这一事实,尤其在可能出现大量写的情况下,例如在系统存储器实现中。因为高循环计数块最可能采用该方式磨损,损耗均衡通过交换高循环计数块的地址与低循环计数块而使得将写跨远存储器单元扩展。注意大部分的地址交换典型地对于应用程序是透明的,因为它由硬件、低级软件(例如,低级驱动器或操作系统)或这两个的组合处理。
NVRAM从它的特性和/或它在存储器/存储分层结构中的应用方面能与其他指令和数据存储器/存储技术区分。例如,NVRAM与以下不同:
·静态随机存取存储器(SRAM),其可用于专用于处理器内的每个核的级0和级1内部处理器高速缓存和由处理器内的核共享的更低级高速缓存(LLC);
·动态随机存取存储器(DRAM),其配置为处理器晶片(die)内部(例如,在与处理器相同的晶片上)的高速缓存、配置为处理器晶片外部(例如,在与处理器晶片相同或不同的封装件中)的一个或多个高速缓存,或在处理器封装件外部的通用系统存储器;以及
·作为大容量存储而应用的FLASH存储器/磁盘/光盘;以及
·例如FLASH存储器或作为固件存储器(其可以指启动ROM、基本输入/输出系统(BIOS)闪存和/或可信平台模块(TPM)闪存)而应用的其他只读存储器(ROM)等存储器。
与作为大容量存储而应用的FLASH/磁盘/光盘相比之下,NVRAM可用作直接被处理器可寻址并且能够充分与处理器保持同步的指令和数据存储。直接可寻址能力指的是能够向NVRAM发送存储器请求就好像它是标准DRAM(例如,通过标准存储器存储和加载命令)一样的处理器,例如CPU或GPU。此外,如上文论述并且在下文详细描述的,NVRAM可置于存储器总线上并且可直接与存储器控制器通信,该存储器控制器进而直接与处理器通信。
NVRAM可与其他指令和数据存储技术(例如,DRAM)组合来形成混合存储器(也称为同定位PCM和DRAM;第一级存储器和第二级存储器;FLAM(FLASH和DRAM))。注意上文的技术中的至少一些(包括PCM/PCMS)可用于大容量存储来代替系统存储器,或作为系统存储器的补充,并且在采用该方式应用时不必是处理器随机可访问、字节可寻址或直接可寻址。
为了便于解释,应用的剩余部分中的大部分将指代“NVRAM”,或更具体地,指代“PCM”或“PCMS”,作为对于非易失性存储器的技术选择。如此,术语NVRAM、PCM和PCMS可在下列论述中能互换地使用。然而,应意识到(如上文论述)还可使用不同的技术。
2.
基于
NVRAM
的
RAM
盘
图1图示采用基于NVRAM的RAM盘的计算机系统的实施例。图1中的计算机系统包括:
·一个或多个中央/通用处理器(CPU)(100);
·一个或多个图形处理器(102)。在许多实施例中,该一个或多个图形处理器中的每个可包括一个或多个核。每个核除其他外还具有内部单元,例如向量单元、纹理单元、光栅化单元;
·一个或多个输入/输出(I/O)控制器和它们关联的IO设备(104),例如盘或固态驱动器(SSD)(106)和其他输入/输出(I/O)设备(108);
·晶片上高速缓存(110),其意在使中央处理器和可选地图形处理器与相对慢DRAM存储器隔离;
·存储器控制器(112),其设计成根据此时系统要求来对于带宽和/或延迟最佳地调度DRAM命令;
·一个或多个DRAM存储(114)组,其典型地设置为64位通道。在不同的实施例中,DRAM存储114除其他外还可包括同步DRAM(SDRAM)、双数据速率(DDR)SDRAM、DDR2、DDR3、DDR4。低端计算设备可能具有单个通道,而高端计算设备可能具有两个或三个DRAM通道;
·一个或多个NVRAM存储(116)组。NVRAM存储的许多不同实施例在上文描述。
在许多实施例中,一个或多个中央处理器中的每个可包括一个或多个核。尽管未示出,每个核可在内部包括一个或多个指令/数据高速缓存、执行单元、预取缓冲器、指令队列、分支地址计算单元、指令解码器、浮点单元、引退单元,等。
存在一个或多个I/O控制器,用于将由中央处理器使用的主机通信协议转换成与特定I/O设备兼容的协议。适配器可被使用以用于转换的协议中的一些除其他外还包括:外围部件互连(PCI)-高速(PCI-E)3.0;通用串行总线(USB)3.0;串行高级技术附件(SATA)3.0;小型计算机系统接口(SCSI)超级-640;和电气和电子工程师协会(IEEE)1394“火线”。
还可存在一个或多个无线协议I/O适配器。除其他外,无线协议的示例在个人区域网中使用,例如IEEE
802.15和Bluetooth 4.0;在无线局域网中使用,例如基于IEEE 802.11的无线协议;和蜂窝协议。
尽管未示出,基本输入/输出系统(BIOS)闪存设备可另外在系统中存在并且通过I/O控制器而耦合以在系统通电或重启时提供一组启动指令。对于BIOS闪存设备,除其他外,I/O控制器可转换的协议中的一些还包括串行外围接口(SPI)、微波。
另外,图1包括在NVRAM中存在的RAM盘(RD)118。如上文论述,RAM盘118是存储器块(即,存储器范围、存储器区域等等),在计算机系统上运行的操作系统或软件应用将其视为好像该块是大容量盘(即,硬驱动器、固态驱动器,等)一样。RAM盘118在软件应用试图频繁引起大容量存储盘访问时是有用的。因为RAM盘118驻存在存储器中,如果被存储的项定位在RAM盘118上而不是定位在外面的真实大容量存储驱动器上,访问可以小得多的延迟而发生。
RAM盘118通常在DRAM或相似类型的存储器中存在。在图1中图示的实施例中,RAM盘118在NVRAM中存在。从而,在这些实施例中,RAM盘118能够通过供应给NVRAM的低电力或无需电力供应给NVRAM而存储RAM盘118。
在许多实施例中,通过软件应用的指定地址空间来访问RAM盘。也就是说,当软件应用(SA
120)加载到存储器(DRAM 114)内时,在计算机系统上运行的操作系统(OS
122)可对软件应用分配逻辑地址空间的区域(由操作系统管理)以便在其中操作。操作系统可采用专门的驱动器(DR
124)来访问地址转换表以从逻辑地址空间(即,操作系统使用的用于正常操作的空间)得到物理地址空间。
从而,操作系统可向软件应用提供地址范围以用于RAM盘。在许多实施例中,该地址范围在从逻辑转换到物理空间之后在物理上定位在NVRAM而不是通常的DRAM中。
在图1中,存储器控制112是对于DRAM 114以及NVRAM 116的组合存储器控制器。但是,对于存储器子系统存在其他配置。例如,图2图示具有备选存储器子系统拓扑的计算机系统的实施例。在图2中,存在独立DRAM控制200,其耦合于控制DRAM 114的中央处理器100。另外,NVRAM控制202控制NVRAM 116,NVRAM控制202通过I/O控制器104而耦合于中央处理器。
备选存储器子系统拓扑的另一个示例在图3中图示。在图3中,NVRAM控制112潜在地集成到与中央处理器100相同的半导体封装件内。在该实施例中,没有DRAM,而相反,晶片上高速缓存110可扩展来对操作系统提供足够大的易失性存储器空间用于适当的操作。另外,在该实施例中,可对于主存储器操作使用大量NVRAM。
基于NVRAM的RAM盘可用于许多应用。例如,在一些实施例中,可存在DRAM到NVRAM(存储器到存储器)DMA转移,其使用RAM盘作为用于使计算机系统降低用电以进入低功率状态的快速方法。
在图2和图3两者中,存在图1中示出的软件应用、驱动器、操作系统和映射表但未明确示出。
图4图示基于DMA控制器的DRAM到NVRAM转移系统的实施例。
在图4中,中央处理器400耦合于DRAM控制器402,其控制向DRAM 404和从DRAM 404的转移,并且耦合于控制向NVRAM 408和从NVRAM
408的转移的NVRAM控制器406。另外,DMA控制器410还耦合于DRAM和NVRAM控制器。DMA控制器可以将DRAM条目(例如条目412)转移到NVRAM条目(例如条目414)。操作系统可使用这些NVRAM条目来设置RAM盘416。DMA控制器410可以独立于中央处理器400而操作,这允许中央处理器降低用电到低功率状态。功率管理逻辑418可监视进站和出站中央处理器业务并且允许中央处理器在DMA控制器418执行转移并且向中央处理器400和从中央处理器400的转移进入静止状态时进入低功率状态。
另外,因为RAM盘416是非易失性的,操作系统可促使DMA控制器410快速执行任何关键处理器状态变量到RAM盘416的快速DMA复制(这些变量通常存储在DRAM 404内)以允许在空闲时间期间使DRAM 404降电到低功率状态用于额外的功率节省。这些转移可提高进入或退出低功率状态的速度,因为信息可以存储在NVRAM
408中并且然后在DRAM加电回至操作状态时快速返回至DRAM
404。将不必执行到大容量存储设备的向外I/O转移来保存系统的状态,并且相反,系统状态数据将简单地转移到NVRAM RAM盘416。
图5图示DRAM到NVRAM RAM盘转移系统的另一个实施例。在图5中,中央处理器500耦合于控制向DRAM 504和从DRAM 504的转移的DRAM控制器502,并且耦合于控制向NVRAM 508和从NVRAM 508的转移的NVRAM控制器506。在该实施例中,中央处理器可以直接执行DRAM条目(例如条目510)到NVRAM条目(例如条目512)的转移。再次,操作系统可使用这些NVRAM条目来设置RAM盘514。功率管理逻辑516可监视进站和出站中央处理器业务并且允许中央处理器500在转移进入静止状态时进入低功率状态。另外,如果所有必需的状态变量存储在NVRAM RAM盘514中,功率管理逻辑516还可使整个系统处于低功率状态。
在其他实施例中,在计算机系统上运行的操作系统可允许NVRAM RAM盘的页面直接映射到用户应用的地址空间内。图6图示映射到软件应用地址空间内的NVRAM RAM盘的实施例。
在计算机系统上运行的操作系统具有逻辑地址空间600,其用作对于任何驻存软件应用的功能地址空间。逻辑地址空间通过地址转换/重定向表而能映射到物理NVRAM空间602。逻辑地址空间可以在不同的实施例中转换到逻辑块地址(LBA)空间604或物理页面地址(PPA)空间606,这取决于如何识别NVRAM。在一些实施例中,NVRAM的部分被识别为大容量存储并且部分被识别为直接可寻址存储器。在图6中,地址重定向表提供用于将页面粒度PPA和LBA映射到物理NVRAM设备中不断变化的页面的功能性。根据一些实施例,重映射表608和610定位在SRAM或其他高速存储器存储结构(其在硬件控制逻辑内集成)内,在其他实施例中,仅PPA重映射表610定位在这样的设备中并且LBA重映射表608也可定位在外部的物理NVRAM。
LBA空间604是由例如大容量存储设备等存储设备所使用的空间。该空间由存储块组织并且文件存储在块内。一般,结合操作系统操作的存储驱动器发起逻辑地址空间600到LBA空间604转换。在许多实施例中,LBA空间然后可以由系统中的存储控制器使用以在大容量存储设备中执行LBA块查找。但是,在图6中示出的实施例中,LBA空间604通过LBA重映射表608而至少部分转换到物理NVRAM空间602。该LBA重映射表608将在表中执行LBA空间604查找并且结果将是NVRAM中的物理位置。在LBA重映射表608中存在存储描述符。在图6中示出的实施例中,因为每个条目指代LBA地址空间的唯一4KB页面,在LBA重映射表608中存在1千5百万个存储直接地址空间(DSPACE)条目。
PPA空间606是由系统中的物理存储器使用的空间。但是,在图6中示出的实施例中,PPA空间606不包含物理NVRAM地址位置。相反,PPA空间通过LBA重映射表608而重映射到物理NVRAM空间602。
在图6中,存在PPA重映射表700,其将给定PPA页面地址重映射到DSPACE地址(指代NVRAM的特定物理页面的地址)。PPA重映射表610在许多实施例中作为单块存储器而存储在集成到存储器控制逻辑内的SRAM中或在近存储器(DRAM)中。例如,在4GB可寻址PPA空间中,因为每个条目指代PPA地址空间的唯一4KB页面,在PPA重映射表610中存在1百万个存储器DSPACE条目。存储器重映射表610从重映射描述符(例如,存储器DSPACE 1代表PPA重映射表610中存储的描述符)组来构造。在许多实施例中,对于PPA空间的每个高速缓存行(例如,4K高速缓存行)存在一个描述符。描述符的内容可基于可需要跟踪的不同信息片段而改变。至少NVRAM设备地址对于每个描述符实施例将是共同的,其将包括对应于PPA存储器条目的NVRAM设备空间中的某一组地址位。该地址将需要在每个描述符中以允许发生实际重映射规程。
基本上,图6图示用于使用RAM盘的存储器/存储子系统,其由下列部件组成:
·PPA重映射表610,其通过微量DRAM与指向NVRAM空间602的物理存储器部分的指针阵列的组合而创建仿效传统DRAM的虚拟或“虚幻”空间;
·LBA重映射表608,其提供从LBA地址空间到NVRAM空间602的物理存储部分的转换;
·硬件控制逻辑(未示出),其允许结合OS而运行的软件驱动器逻辑操纵PPA重映射表610中的指针以及LBA重映射表608中的指针;
·在OS的逻辑地址空间中运行的软件驱动器,其使用前面提到的硬件控制逻辑来重映射NVRAM的存储与存储器部分之间的指针来代替通过中断请求和DMA转移而调度数据的硬件驱动的复制。
在一些实施例中,存在用于操纵重映射系统的存储器和存储部分的独立软件驱动器。在其他实施例中,存在一个软件驱动器,其包括例如软件驱动器逻辑等处理两个重映射表的逻辑。
如在图6中示出的,没有将NVRAM设备划分成存储和存储器区域的特定原因,只要使两者混合的复杂性可以采用直接的方式被管理即可。
一旦存储和存储器已经定位在相同的物理设备中并且它们的地址发生混合,采用传统方式执行盘相关DMA操作变得不必要-特别地,数据应从NVRAM的一个部分复制到另一个部分,这变得不清楚。
回到由操作系统控制的逻辑地址空间600,在许多实施例中,该空间包括对加载到存储器内的软件应用指定的用户应用空间。在该用户/软件应用空间610内,操作系统(和执行逻辑到物理地址空间的重映射职责的软件驱动器)映射RAM盘612(其是为了RAM盘目的而使用的一组地址)用于由用户软件应用的直接访问和操纵。当加载软件应用时,它因为它请求存储在DRAM和NVRAM中的资源而变成地址空间的请求者。
根据实施例,RAM盘在LBA空间(612A)内或在PPA空间(612B)内起作用。从而,对于LBA实现,RAM盘的逻辑地址空间映射到LBA空间604,并且然后通过LBA重映射表608而转换来到达RAM盘的物理NVRAM位置,其可在整个物理NVRAM空间602中分散。对于PPA实现,RAM盘的逻辑地址空间映射到PPA空间606,并且然后通过PPA重映射表610而转换来到达RAM盘的物理NVRAM位置,其还可在整个物理NVRAM空间602中分散。
对于映射到用户地址空间内的文件,这是很自然的。对文件的所有改变将立即反映回到RAM盘,因为那些改变将是对于RAM盘自身的页面的。在一些实施例中,直接I/O还可以允许请求者直接访问NVRAM页面。这在图1至图3中描述的实施例中的任一个中可以是能适用的。如果分配的存储器空间区域是映射的只读,将不额外需要什么。另一方面,如果分配的存储器空间区域是映射的读/写,新近映射的NVRAM RAM盘将必须利用写时复制使用模型来建立以防止对RAM盘的修改无意反映回到原始文件。写时复制使用模型允许给予多个请求者(即,用户软件应用)指向相同资源(例如,给定重映射表中的条目)的指针。这可以被维持直到请求者中的一个实际上试图修改资源。在那时,请求者被给予资源的私有副本来阻止其他请求者看到改变。
LBA重映射表608和PPA重映射表610具有描述符,其基本上是转换后备缓冲器(TLB)条目。发生页面游动,其将LBA和PPA空间映射到物理NVRAM空间。这些条目可被多个请求者(例如,在操作系统上运行的多个线程,对其每个分配逻辑地址空间600中的某一地址范围)访问。从而,写时复制方法起作用,但在发生修改时存在成本,因为未修改资源的其他请求者需要执行TLB击落(刷新它们的副本),因为它们不再访问资源的之前版本(因为它已经被修改)。
与重映射地址空间关联的TLB击落的固有成本可使不执行数据副本的写时复制的任何节省无效。RAM盘页面到请求者的本地存储器空间内的直接映射可局限于仅具有少量活跃线程的地址空间。在许多实施例中,请求者具有与它关联的一定数量的线程ID,并且该数量可与请求者获得直接映射NVRAM RAM盘访问所允许的最大线程数量相比较。操作系统中的管理逻辑可做出关于哪些请求者被授予对该类型的RAM盘的访问权的最终确定。另外,操作系统管理逻辑可随后在已经授予请求者使用NVRAM RAM盘的权利之后监视请求者的线程计数。在看到由被监视的请求者创建太多的额外线程时,操作系统可以去除对NVRAM RAM盘的访问或阻止进一步的线程创建。
该问题还可以通过使新类型的I/O请求被分配或交托给地址空间中的实际页面而减轻,因为对于页面表格条目的“不存在”到“存在”转变不需要TLB击落。
图7是在PCMS存储器空间中分配RAM盘并且将RAM盘直接映射到软件应用的逻辑地址空间内的过程的实施例的流程图。该过程可由处理逻辑执行,该处理逻辑包括硬件、软件、固件或处理逻辑的列出形式中的两个或以上的组合。过程通过处理逻辑分配PCMS存储器内的地址空间位置以用作RAM盘而开始(处理块700)。可对于在计算机系统中运行的软件应用的使用而分配RAM盘。
接着,处理逻辑将分配的数量的PCMS存储器中的至少一部分映射到软件应用的逻辑地址空间(处理块702)。最后,处理逻辑授予软件应用对存储RAM盘的PCMS地址位置的直接访问(处理块704)。当发生该授予时,软件应用具有写入这些映射的存储器位置并且直接影响对对应物理PCMS存储器位置中的数据的改变的能力。
图8是在PCMS存储器空间中分配RAM盘并且执行从DRAM存储器到基于PCMS的RAM盘的DMA数据转移的过程的实施例的流程图。该过程可由处理逻辑执行,该处理逻辑包括硬件、软件、固件或处理逻辑的列出形式中的两个或以上的组合。过程通过处理逻辑分配PCMS存储器内的地址空间位置以用作RAM盘而开始(处理块800)(与在上文在图7中图示的过程相似)。
然后处理逻辑执行从DRAM位置到PCMS位置(其中驻存RAM盘)的DMA存储器到存储器复制(处理块802)。该处理逻辑在一些实施例中可驻存在中央处理器中或在其他实施例中可驻存在DMA控制器中,其具有对DRAM和PCMS存储器设备两者的访问。
在下面描述中,阐述例如逻辑实现、规定操作数的部件、资源划分/共享/复制实现、系统部件的类型和相互关系和逻辑划分/集成选择等许多具体的细节以便提供对本公开更加透彻的理解。然而,本领域内技术人员将意识到可实践本发明而无需这样的具体细节。在其他实例中,为了不混淆本公开,可未详细地示出控制结构、门级电路和全软件指令序列。本领域内普通技术人员利用所包括的描述将能够实现适当的功能性而无需过度的实验。
在说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示描述的实施例可包括特定特征、结构或特性,但每个实施例可不一定包括该特定特征、结构或特性。此外,这样的短语不一定指相同的实施例。此外,当特定特征、结构或特性连同实施例描述时,认为连同其他无论是否明确描述的实施例实现这样的特征、结构或特性,这在本领域内技术人员的知识内。
在下列描述和权利要求中,可使用术语“耦合”和“连接”连同它们的派生词。要理解这些术语不规定为是彼此的同义词。“耦合”用于指示彼此可以或可以不直接物理或电接触的两个或以上的元件彼此共同操作或相互作用。“连接”用于指示彼此耦合的两个或以上的元件之间的通信的建立。
本发明的实施例还可作为计算机程序产品而提供,该计算机程序产品可包括具有存储在其上的指令的非暂时性机器可读介质,这些指令可用于对计算机(或其他电子设备)编程来执行进程。非暂时性机器可读介质可包括,但不限于,软盘、光盘、CD-ROM和磁光盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、传播介质或适合于存储电子指令的其它类型的介质/机器可读介质。本发明的实施例还可作为计算机程序产品而下载,其中程序可通过在载波或其他传播介质中包含的数据信号的方式经由通信链路(例如,调制解调器或网络连接)而从远程计算机(例如,服务器)转移到请求计算机(例如,客户端)。
尽管已经从若干实施例方面描述本发明,本领域内技术人员将认识到本发明不限于描述的实施例、可以在附上的权利要求的精神和范围内修改和更改的情况下实践。描述从而视为说明性而非限制性的。
Claims (19)
1.一种用于计算机的方法,包括:
分配相变存储器和开关PCMS存储器内的一定数量的位置以用作随机存取存储器RAM盘以供计算机系统中运行的软件应用来使用;
将所分配的数量的PCMS存储器中的至少一部分映射到软件应用地址空间;以及
授予所述软件应用对所分配的数量的PCMS存储器的至少一部分的直接访问。
2.如权利要求1所述的方法,进一步包括:
对于已经映射到所述软件应用地址空间的第一PCMS RAM盘分配位置,将所述第一PCMS RAM盘分配位置设置为写时复制状态。
3.如权利要求2所述的方法,进一步包括:
仅在第一软件应用当前具有在所述计算机系统中运行的少于阈值数量的线程时,允许对在所述计算机系统上运行的一个或多个软件应用中的所述第一软件应用分配所述PCMS存储器内该数量的位置以用作RAM盘。
4.如权利要求3所述的方法,进一步包括:
监视所述第一软件应用,其已经被分配所述PCMS存储器内该数量的位置以用作对于创建的线程的RAM盘,
其中在起初对所述第一软件应用给予其分配时在所述第一软件应用的所分配的环境中当前运行的线程的数量结合所创建的线程的数量而超出所述阈值数量时,去除从所述第一软件应用到所述RAM盘的访问。
5.一种用于计算机的方法,包括:
分配一定数量的相变存储器和开关PCMS存储器空间以用作随机存取存储器RAM盘以供计算机系统中执行的一个或多个软件应用来使用;以及
执行直接存储器访问DMA存储器到存储器数据复制,其中所述DMA存储器到存储器数据复制从动态随机存取存储器DRAM存储器空间中的位置获得数据并且将获得的数据存储在所述PCMS存储器空间中为RAM盘所分配的位置中。
6.如权利要求5所述的方法,其中DMA控制器执行所述存储器到存储器复制。
7.如权利要求6所述的方法,进一步包括:
允许至少一个处理器在所述DMA控制器执行所述存储器到存储器复制时进入低功率模式。
8.如权利要求7所述的方法,进一步包括:
将一个或多个处理器状态变量从所述DRAM存储器复制到基于PCMS的RAM盘;以及
在完成所述一个或多个处理器状态变量的复制时,使所述DRAM存储器进入低功率模式,所述低功率模式促使所述DRAM存储器在进入所述低功率模式时失去存储在所述DRAM存储器中的任何数据。
9.权利要求8所述的方法,进一步包括:
发起从低功率模式到对于所述DRAM的操作模式的返回过程,其中在所述返回过程期间,将所述一个或多个处理器状态变量从所述基于PCMS的RAM盘复制到所述DRAM存储器。
10.如权利要求5所述的方法,其中处理器执行所述DMA存储器到存储器数据复制。
11.一种用于计算机的系统,包括:
处理器;
相变存储器和开关PCMS设备,用于存储随机存取存储器RAM盘以供在所述处理器上运行的第一软件应用使用;以及
动态随机存取存储器DRAM,用于至少存储指令,其在由所述处理器执行时促使所述处理器执行方法,所述方法包括:
将所分配的数量的PCMS存储器的至少一部分映射到所述第一软件应用的地址空间;以及
授予所述软件应用对所分配的数量的PCMS存储器的该至少一部分的直接访问。
12.如权利要求11所述的系统,其中执行的方法进一步包括:
对于已经映射到所述软件应用地址空间的第一PCMS RAM盘分配位置,将所述第一PCMS RAM盘分配位置设置为写时复制状态。
13.如权利要求12所述的系统,其中执行的方法进一步包括:
仅在第一软件应用当前具有少于阈值数量的在所述系统中运行的线程时,允许对在所述系统上运行的一个或多个软件应用中的所述第一软件应用分配所述PCMS存储器内该数量的位置用作RAM盘。
14.如权利要求13所述的系统,其中执行的方法进一步包括:
监视所述第一软件应用,其已经被分配所述PCMS存储器内该数量的位置以用作对于创建的线程的RAM盘,
其中当起初对所述第一软件应用给予其分配时在所述第一软件应用的所分配的环境中当前运行的线程的数量结合所创建的线程的数量超出所述阈值数量时,去除从所述第一软件应用到所述RAM盘的访问。
15.一种用于计算机的系统,包括:
处理器;
相变存储器和开关PCMS设备,用于存储随机存取存储器RAM盘以供在所述处理器上运行的第一软件应用使用;以及
动态随机存取存储器DRAM;
所述处理器分配所述PCMS设备内的一定数量的存储器空间以用作随机存取存储器RAM盘以供在所述处理器上执行的一个或多个软件应用使用;以及
直接存储器访问DMA控制器,用于执行DMA存储器到存储器数据复制,其中所述DMA存储器到存储器数据复制从动态随机存取存储器DRAM存储器空间中的位置获得数据并且将获得的数据存储在所述PCMS存储器空间中为RAM盘所分配的位置中。
16.如权利要求15所述的系统,进一步包括:
功率管理硬件逻辑,用于在所述DMA控制器执行所述存储器到存储器复制时允许至少一个处理器进入低功率模式。
17.如权利要求16所述的系统,进一步包括:
所述DMA控制器将一个或多个处理器状态变量从所述DRAM存储器复制到基于PCMS的RAM盘;以及
在完成所述一个或多个处理器状态变量的复制时,所述功率管理硬件逻辑促使所述DRAM存储器进入低功率模式,所述低功率模式促使所述DRAM存储器在进入所述低功率模式时失去存储在所述DRAM存储器中的任何数据。
18.如权利要求17所述的系统,进一步包括:
所述功率管理逻辑发起从低功率模式到对于所述DRAM的操作模式的返回过程,其中在所述返回过程期间,所述DMA控制器将所述一个或多个处理器状态变量从所述基于PCMS的RAM盘复制到所述DRAM存储器。
19.如权利要求15所述的系统,其中所述处理器在所述处理器未处于低功率模式时执行所述DMA存储器到存储器数据复制。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/067829 WO2013101053A1 (en) | 2011-12-29 | 2011-12-29 | Non-volatile ram disk |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104011691A CN104011691A (zh) | 2014-08-27 |
CN104011691B true CN104011691B (zh) | 2016-12-14 |
Family
ID=48698290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180076054.0A Active CN104011691B (zh) | 2011-12-29 | 2011-12-29 | 非易失性ram盘 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9535827B2 (zh) |
CN (1) | CN104011691B (zh) |
TW (2) | TWI578156B (zh) |
WO (1) | WO2013101053A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013101053A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Non-volatile ram disk |
US10303618B2 (en) * | 2012-09-25 | 2019-05-28 | International Business Machines Corporation | Power savings via dynamic page type selection |
US9898410B2 (en) * | 2013-09-10 | 2018-02-20 | Intel Corporation | Hybrid main memory using a fine-grain level of remapping |
US9250999B1 (en) * | 2013-11-19 | 2016-02-02 | Google Inc. | Non-volatile random access memory in computer primary memory |
CN105917308B (zh) * | 2014-01-22 | 2019-02-12 | 惠普发展公司,有限责任合伙企业 | 分区为包括元数据区域的多个区域的字节可寻址非易失性读写主存储器 |
US9507714B2 (en) * | 2014-03-27 | 2016-11-29 | Intel Corporation | Managed runtime extensions to reduce power consumption in devices with hybrid memory |
KR20160007859A (ko) * | 2014-07-04 | 2016-01-21 | 삼성전자주식회사 | 컴퓨팅 시스템 및 이의 동작 방법. |
CN104268443A (zh) * | 2014-09-28 | 2015-01-07 | 北京航天数控系统有限公司 | 一种数控系统防护设备 |
CN104951412B (zh) * | 2015-06-06 | 2018-01-02 | 华为技术有限公司 | 一种通过内存总线访问的存储装置 |
KR101920474B1 (ko) | 2015-06-15 | 2018-11-20 | 한국전자통신연구원 | 인메모리 가상 데스크탑 시스템 |
GB2539429B (en) | 2015-06-16 | 2017-09-06 | Advanced Risc Mach Ltd | Address translation |
GB2539428B (en) * | 2015-06-16 | 2020-09-09 | Advanced Risc Mach Ltd | Data processing apparatus and method with ownership table |
GB2539433B8 (en) | 2015-06-16 | 2018-02-21 | Advanced Risc Mach Ltd | Protected exception handling |
GB2539435B8 (en) | 2015-06-16 | 2018-02-21 | Advanced Risc Mach Ltd | Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level |
US10459847B1 (en) | 2015-07-01 | 2019-10-29 | Google Llc | Non-volatile memory device application programming interface |
US20170068304A1 (en) * | 2015-09-09 | 2017-03-09 | Mediatek Inc. | Low-power memory-access method and associated apparatus |
CN105978871A (zh) * | 2016-05-09 | 2016-09-28 | 北京航天数控系统有限公司 | 一种针对数控系统的通信防护设备 |
US10402092B2 (en) * | 2016-06-01 | 2019-09-03 | Western Digital Technologies, Inc. | Resizing namespaces for storage devices |
US11175853B2 (en) | 2017-05-09 | 2021-11-16 | Samsung Electronics Co., Ltd. | Systems and methods for write and flush support in hybrid memory |
KR102498668B1 (ko) * | 2017-05-17 | 2023-02-09 | 삼성전자주식회사 | 플래시-인지 힙 메모리 관리 방법 및 호스트 장치 |
US11113205B2 (en) | 2017-07-31 | 2021-09-07 | Micron Technology, Inc. | Die addressing using a reduced size translation table entry |
US10782880B2 (en) | 2017-08-30 | 2020-09-22 | Electronics And Telecommunications Research Institute | Apparatus and method for providing storage for providing cloud services |
CN107817953B (zh) * | 2017-11-20 | 2020-07-28 | 杭州宏杉科技股份有限公司 | 一种双控存储设备访问硬盘的方法及装置 |
FR3073959A1 (fr) * | 2017-11-23 | 2019-05-24 | Bull Sas | Systeme informatique, procede d'acces a un fichier informatique et programme d'ordinateur correspondant |
TWI714830B (zh) * | 2018-02-13 | 2021-01-01 | 緯穎科技服務股份有限公司 | 目錄資料的管理方法與記憶體裝置 |
JP7132491B2 (ja) * | 2018-05-14 | 2022-09-07 | 富士通株式会社 | メモリ制御装置、メモリ制御プログラムおよびメモリ制御方法 |
US10725690B2 (en) * | 2018-05-18 | 2020-07-28 | Intel Corporation | Non-volatile memory cloning with hardware copy-on-write support |
US11163680B2 (en) | 2018-11-28 | 2021-11-02 | International Business Machines Corporation | Dynamic write-back to non-volatile memory |
US10585833B1 (en) * | 2019-01-28 | 2020-03-10 | Quanta Computer Inc. | Flexible PCIe topology |
US11157404B2 (en) * | 2019-08-27 | 2021-10-26 | Micron Technology, Inc. | Remapping techniques for a range of logical block addresses in a logical to physical table of NAND storage |
US11327686B2 (en) | 2019-09-30 | 2022-05-10 | Electronics And Telecommunications Research Institute | Apparatus and method for managing integrated storage supporting hierarchical structure |
TWI727509B (zh) * | 2019-11-20 | 2021-05-11 | 瑞昱半導體股份有限公司 | 具有省電模式且能夠在省電模式盡量省電的通訊裝置 |
CN114371814B (zh) * | 2021-12-08 | 2024-05-10 | 浙江华忆芯科技有限公司 | 数据处理的方法、装置及固态硬盘 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430858A (en) * | 1993-11-24 | 1995-07-04 | Northrop Grumman Corporation | Method for RAM conservation employing a RAM disk area non-sequential addresses on arranged order basis to access executable procedures |
CN1215864A (zh) * | 1997-10-15 | 1999-05-05 | 戴尔美国公司 | 使用随机存取存储器盘的系统和方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5359713A (en) * | 1989-06-01 | 1994-10-25 | Legato Systems, Inc. | Method and apparatus for enhancing synchronous I/O in a computer system with a non-volatile memory and using an acceleration device driver in a computer operating system |
US6032240A (en) * | 1997-11-12 | 2000-02-29 | Intergraph Corporation | Bypassing a nonpaged pool controller when accessing a remainder portion of a random access memory |
US20030070065A1 (en) * | 1999-03-31 | 2003-04-10 | Fleming Bruce L. | Suspending to nonvolatile storage |
US20030233485A1 (en) * | 2002-06-13 | 2003-12-18 | Mircrosoft Corporation | Event queue |
US7664771B2 (en) * | 2002-10-16 | 2010-02-16 | Microsoft Corporation | Optimizing defragmentation operations in a differential snapshotter |
US7260698B2 (en) * | 2003-10-30 | 2007-08-21 | International Business Machines Corporation | Method and system for page initialization using off-level worker thread |
US20050177635A1 (en) * | 2003-12-18 | 2005-08-11 | Roland Schmidt | System and method for allocating server resources |
US7249241B1 (en) * | 2004-04-29 | 2007-07-24 | Sun Microsystems, Inc. | Method and apparatus for direct virtual memory address caching |
US7484016B2 (en) * | 2004-06-30 | 2009-01-27 | Intel Corporation | Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine |
US20080097294A1 (en) * | 2006-02-21 | 2008-04-24 | Possis Medical, Inc. | Occlusive guidewire system having an ergonomic handheld control mechanism prepackaged in a pressurized gaseous environment and a compatible prepackaged torqueable kink-resistant guidewire with distal occlusive balloon |
JP5209993B2 (ja) * | 2008-03-03 | 2013-06-12 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
KR20100016987A (ko) * | 2008-08-05 | 2010-02-16 | 삼성전자주식회사 | 상 변화 메모리를 포함하는 컴퓨팅 시스템 |
US9123409B2 (en) * | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
US20110107042A1 (en) * | 2009-11-03 | 2011-05-05 | Andrew Herron | Formatting data storage according to data classification |
US20110208900A1 (en) | 2010-02-23 | 2011-08-25 | Ocz Technology Group, Inc. | Methods and systems utilizing nonvolatile memory in a computer system main memory |
US8966188B1 (en) * | 2010-12-15 | 2015-02-24 | Symantec Corporation | RAM utilization in a virtual environment |
WO2013101053A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Non-volatile ram disk |
-
2011
- 2011-12-29 WO PCT/US2011/067829 patent/WO2013101053A1/en active Application Filing
- 2011-12-29 US US13/993,344 patent/US9535827B2/en active Active
- 2011-12-29 CN CN201180076054.0A patent/CN104011691B/zh active Active
-
2012
- 2012-12-27 TW TW101150581A patent/TWI578156B/zh active
- 2012-12-27 TW TW106101677A patent/TWI616749B/zh active
-
2016
- 2016-11-21 US US15/357,509 patent/US9852069B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430858A (en) * | 1993-11-24 | 1995-07-04 | Northrop Grumman Corporation | Method for RAM conservation employing a RAM disk area non-sequential addresses on arranged order basis to access executable procedures |
CN1215864A (zh) * | 1997-10-15 | 1999-05-05 | 戴尔美国公司 | 使用随机存取存储器盘的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI578156B (zh) | 2017-04-11 |
TW201346549A (zh) | 2013-11-16 |
TWI616749B (zh) | 2018-03-01 |
US9852069B2 (en) | 2017-12-26 |
TW201738752A (zh) | 2017-11-01 |
CN104011691A (zh) | 2014-08-27 |
US20140013045A1 (en) | 2014-01-09 |
WO2013101053A1 (en) | 2013-07-04 |
US9535827B2 (en) | 2017-01-03 |
US20170139827A1 (en) | 2017-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104011691B (zh) | 非易失性ram盘 | |
US10719443B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy | |
US9817758B2 (en) | Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage | |
US10102126B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes | |
US9317429B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels | |
KR101761044B1 (ko) | 메모리 채널 셧다운에 의한 전력 절약 | |
GB2514023B (en) | System and method for intelligently flushing data from a processor into a memory subsystem | |
US20140229659A1 (en) | Thin translation for system access of non volatile semicondcutor storage as random access memory | |
KR20150138399A (ko) | 2-레벨 메모리 계층구조에서 메모리측 캐쉬의 동적인 부분적 전원 차단 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |