TWI616749B - 非依電性隨機存取記憶磁碟(二) - Google Patents

非依電性隨機存取記憶磁碟(二) Download PDF

Info

Publication number
TWI616749B
TWI616749B TW106101677A TW106101677A TWI616749B TW I616749 B TWI616749 B TW I616749B TW 106101677 A TW106101677 A TW 106101677A TW 106101677 A TW106101677 A TW 106101677A TW I616749 B TWI616749 B TW I616749B
Authority
TW
Taiwan
Prior art keywords
memory
physical address
software application
remapping table
nvram
Prior art date
Application number
TW106101677A
Other languages
English (en)
Other versions
TW201738752A (zh
Inventor
詹姆斯B 克羅斯蘭德
托比 奧普費曼
布萊斯 范甯
Original Assignee
英特爾公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 英特爾公司 filed Critical 英特爾公司
Publication of TW201738752A publication Critical patent/TW201738752A/zh
Application granted granted Critical
Publication of TWI616749B publication Critical patent/TWI616749B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0009Digital 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/0036Digital 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0009Digital 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/0045Digital 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2024Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0004Digital 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

揭示一種方法及系統。在一實施例中,該方法包括分配要被用作一隨機存取記憶體(RAM)磁碟之一相變記憶體與開關(PCMS)記憶體內之若干記憶體位址。該RAM磁碟經建立以供在一電腦系統中執行之一軟體應用程式使用。該方法亦包括將所分配量之PCMS記憶體之至少一部分映射至該軟體應用程式位址空間。最後,該方法亦授予該軟體應用程式直接存取該所分配量之該PCMS記憶體之至少一部分的權力。

Description

非依電性隨機存取記憶磁碟(二) 發明領域
本發明係關於以非依電性記憶體實施RAM磁碟之技術。
發明背景
相變記憶體與開關(PCMS)為正作為現今之固態儲存裝置中普遍存在的反及(NAND)非依電性儲存器之後繼者而有所發展的一種非依電性儲存器技術。PCMS提供比NAND快閃記憶體高得多之效能,且事實上開始接近大部分用戶端計算裝置中目前用作主要動態儲存器之動態隨機存取記憶體(DRAM)之效能點。雖然PCMS儲存器可能最初每個位元比NAND儲存器昂貴,但預見彼關係將隨時間而改變,直至PCMS最終比NAND便宜為止。
依據本發明之一實施例,係特地提出一種方法,其包含:配置供一軟體應用程式使用的作為一隨機存取記憶體(RAM)磁碟的一位元組可定址非依電性記憶體之第一實體位址位置;配置在該位元組可定址非依電性記憶體內 供該軟體應用程式使用的作為儲存器之第二實體位址位置;產生一重新映射表來供該軟體應用程式將一邏輯位址空間映射至指向該等第一實體位址位置之指標;允許該軟體應用程式經由該重新映射表對該等第一實體位址位置直接存取;接收由該軟體應用程式之一請求來將在該等第二實體位址位置中之一者處的資料複製至該等第一實體位址位置中之一或多者;以及以一新指標更新該重新映射表中的一現有輸入項來指出該等第二實體位址位置中之該一者要被用作該等第一實體位址位置中之一者,使得該請求不複製該資料而被履行。
100‧‧‧中央/通用處理器
102‧‧‧圖形處理器
104‧‧‧IO裝置/I/O控制器
106‧‧‧磁碟或固態磁碟(SSD)
108‧‧‧其他輸入/輸出(I/O)裝置
110‧‧‧晶粒上快取記憶體
112‧‧‧記憶體控制器
114‧‧‧DRAM儲存器
116‧‧‧NVRAM儲存器
118‧‧‧RAM磁碟(RD)
120‧‧‧軟體應用程式(SA)
122‧‧‧作業系統(OS)
124‧‧‧專用驅動器(DR)
200‧‧‧DRAM控制
202‧‧‧NVRAM控制
400、500‧‧‧中央處理器
402、502‧‧‧DRAM控制器
404、504‧‧‧DRAM
406、506‧‧‧NVRAM控制器
408、508‧‧‧NVRAM
410‧‧‧DMA控制器
412、414、510、512‧‧‧輸入項
416、514、612‧‧‧RAM磁碟
700~704、800、802‧‧‧處理區塊
418、516‧‧‧電源管理邏輯
600‧‧‧邏輯位址空間
602‧‧‧實體NVRAM空間
604、612A‧‧‧邏輯區塊位址(LBA)空間
606、612B‧‧‧實體頁面位址(PPA)空間
608‧‧‧LBA重新映射表
610‧‧‧PPA重新映射表/使用者/軟體應用程式空間
下面的說明和附圖係用來說明本發明的數個實施例。在圖式中:圖1例示使用基於NVRAM之RAM磁碟的電腦系統的一個實施例。
圖2例示具有替代記憶體子系統拓撲的電腦系統的一個實施例。
圖3為另一種替代記憶體子系統拓撲的一個實施例。
圖4例示基於DMA控制器之DRAM至NVRAM傳送系統的一個實施例。
圖5例示RAM至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)儲存器且在下文更詳細地描述NVRAM儲存器。
1. 非依電性隨機存取記憶體概述
對於NVRAM係有許多可能能技術選擇存在,包括相變記憶體(PCM)、相變記憶體與開關(PCMS)(後者為前者之更為特定的實施形態)、位元組可定址持續記憶體(BPRAM)、儲存類別記憶體(SCM)、通用記憶體、Ge2Sb2Te5、可程式化金屬化單元(PMC)、電阻性記憶體(RRAM)、RESET(非晶系)單元、SET(結晶)單元、PCME、奧夫辛斯基(Ovshinsky)記憶體、鐵電記憶體(亦稱為聚合物記憶體及聚(N-乙烯咔唑))、鐵磁性記憶體(亦稱為自旋電子(Spintronics)、SPRAM(自旋轉移力矩RAM))、STRAM(自旋穿隧RAM)、磁阻式記憶體、磁性記憶體、磁性隨機存取記憶體(MRAM)、及半導體-氧化物-氮化物-氧化物-半導體(SONOS,亦稱為介電記憶體)。
NVRAM具有以下特性:●其即使在電力被移除之情況下亦維持其內容,類似於固態磁碟(SSD)中所使用的快閃(FLASH)記憶體,且不同於依電性的SRAM和DRAM;●其可具有比依電性記憶體(例如SRAM和DRAM)低的總功率消耗;●其可具有類似於SRAM和DRAM之隨機存取能力(亦 稱為可隨機定址);●其可以比SSD中可見的FLASH低的細微度等級(例如,位元組等級)來進行重寫及抹除(快閃記憶體每次僅可被重寫和抹除一個「區塊」一對於NOR FLASH而言最小的大小為64Kbyte,且對於NAND FLAHS而言最小的大小為16Kbyte);●其可用作系統記憶體,並可被分配系統記憶體位址空間的全部或一部分;●其可係能夠利用一異動協定(支援用以區別不同異動以使得那些異動可無序地完成的異動識別符(ID)的協定)經由一匯流排(亦可互換地被稱為是互連件或鏈路)而耦接至CPU,且允許以小到足以以支援NVRAM作為系統記憶體之操作的細微度等級(例如,項是64或128位元組的快取行大小)進行存取。舉例來說,匯流排/互連件可為一記憶體匯流排(例如,諸如DDR3、DDR4等之雙資料速率(DDR)匯流排),在該記憶體匯流排上執行異動協定(與通常所使用之非異動協定相對比)。作為另一實例,該匯流排可優先於通常執行一異動協定(一原生異動協定)之匯流排,諸如PCI express(PCIE)匯流排、桌上型管理介面(DMI)匯流排或利用一異動協定及一足夠小異動有效負載大小(例如,諸如64或128位元組之快取行大小)之任何其他類型之匯流排;及●其亦可具有以下特性中之一或多者:○比諸如快閃記憶體之非依電性記憶體/儲存器技術快的寫入速度; ○極高讀取速度(比FLASH快且接近或等於DRAM讀取速度);○其可直接寫入(而不需要像SSD中所使用的FLASH記憶體一樣要在寫入資料之前作抹除(以1覆寫));及/或○在故障之前的較大寫入數量(比SSD中所使用的開機ROM和FLASH多)。
如於上文所提過的,對比於每次都必須要被重寫和抹除一個完整「區塊」的FLASH記憶體,在任何給定實作中存取NVRAM所用的細微度等級可係取決於此NVRAM所耦接至的特定記憶體控制器和特定記憶體匯流排或其他類型的匯流排。舉例來說,在使用NVRAM作為系統記憶體之一些實施中,可以快取行(例如,64位元組或128位元組之快取行)之細微度存取NVRAM,而不管以位元組之細微度進行存取之固有能力,此係因為快取行為記憶體子系統存取記憶體所用之等級。因此,在一些實施例中,當將NVRAM部署於記憶體子系統內時,可以與同一記憶體子系統中所使用之DRAM相同的細微度等級來存取NVRAM。雖然如此,但在一些實施例中,記憶體控制器及記憶體匯流排或其他類型之匯流排存取NVRAM之細微度等級小於快閃記憶體所使用之區塊大小及I/O子系統之控制器及匯流排之存取大小的細微度等級。
NVRAM亦可併有磨損調節(wear leveling)演算法以對如下事實加以考量:儲存單元在多次寫入存取之後 會開始耗損,尤其是在很大量的寫入可能會在,例如,系統記憶體實作中發生的情況下。由於高循環計數區塊最可能以此方式耗損,因此磨損調節藉由交換高循環計數區塊之位址與低循環計數區塊之位址而將寫入分散於遠處記憶胞上。請注意,大部分位址交換對應用程式而言通常為透明的,此係因為位址交換係由硬體、較低層級軟體(例如,低層級驅動器或作業系統)或兩者之組合來處置。
NVRAM在其特性及/或其在記憶體/儲存器階層中之應用方面可與其他指令和資料記憶體/儲存器技術有所區別。舉例來說,NVRAM不同於:●靜態隨機存取記憶體(SRAM),其可用於專用於處理器內之各個核心的層級0和層級1內部處理器快取記憶體以及由處理器內的數個核心共用得較低層級快取記憶體(LLC);●動態隨機存取記憶體(DRAM),其被組配為在處理器晶粒內部(例如,在與處理器相同的晶粒上)的快取記憶體、被組配為在處理器晶粒外部(例如,在與處理器晶粒相同或不同的封裝中)的一或多個快取記憶體,或在處理器封裝外部的通用系統記憶體;及●作為大容量儲存器而應用的FLASH記憶體/磁碟/光碟;以及●諸如快FLASH或作為韌體記憶體而應用的其他唯讀記憶體(ROM)等的記憶體(其可係指開機ROM、基本輸入/輸出系統(BIOS)快閃記憶體(Flash)及/或受信任平台模組 (TPM)快閃記憶體)。
NVRAM可用作指令和資料儲存器,相對於作為大容量儲存器而應用的FLASH/磁碟/光碟,其係可由處理器直接定址且能夠充分地跟上處理器之步調。直接可定址性指涉處理器(諸如,CPU或GPU)能夠將記憶體請求發送至NVRAM(例如,經由標準記憶體儲存及載入命令),就好像NVRAM為標準DRAM一樣。此外,如上文所論述及下文中所詳細描述,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)-Express(PCI-E)3.0;通用串列匯流排(USB)3.0;串列進階附接技術(SATA)3.0;小型電腦系統介面(SCSI)超級-640;及電氣及電子工程師學會(IEEE)1394「Firewire」。
亦可有一或多個無線協定I/O配接器。無線協定之實例尤其用於以下各者中:個人區域網路(諸如,IEEE 802.15及藍芽4.0);無線區域網路(諸如,基於IEEE 802.11之無線協定);及蜂巢式協定。
儘管未在圖中示出,但在此系統中可額外有基本輸入/輸出系統(BIOS)快閃裝置,且其係經由一I/O控制器而耦接,以在系統通電或重新開機時提供一組開機指令。對於BIOS快閃裝置,I/O控制器可轉譯之協定中之一些協定尤其包括串列周邊介面(SPI)、微線(Microwire)。
另外,圖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中,存在耦接至中央處理器100之單獨DRAM控制200,其控制DRAM 114。另外,控制NVRAM 116之NVRAM控制202,其係經由I/O控制器104耦接至中央處理器。
替代記憶體子系統拓撲的另一實例係例示於圖3中。在圖3中,NVRAM控制112可能整合至與中央處理器100相同之半導體封裝中。在此實施例中,不存在DRAM,且實情為,可擴展晶粒上快取記憶體110以為作業系統提供足夠大之依電性記憶體空間以用於適當操作。另外,在此實施例中,NVRAM可以相當大量用於主記憶體操作。
基於NVRAM之RAM磁碟可用於許多應用。舉例來說,在一些實施例中,可存在利用RAM磁碟作為用於使電腦系統斷電而進入一低功率狀態之快速方法的DRAM至NVRAM(記憶體至記憶體)DMA傳送。
在圖2及圖3中皆有展示於圖1中的軟體應用程式、驅動器、作業系統及映射表存在,但並未予以清楚展示。
圖4例示出基於DMA控制器之DRAM至NVRAM傳送系統的一實施例。
在圖4中,中央處理器400耦接至控制至及自DRAM 404之傳送的DRAM控制器402,並耦接至控制至及自NVRAM 408之傳送的NVRAM控制器406。另外,DMA控制器410亦耦接至DRAM控制器及NVRAM控制器。DMA控制器可將DRAM輸入項(entry)(諸如,輸入項412)傳送至 NVRAM輸入項(諸如,輸入項414)。作業系統可使用此等NVRAM輸入項來設置RAM磁碟416。DMA控制器410可獨立於中央處理器400而操作,此情形允許中央處理器斷電至一低功率狀態。電源管理邏輯418可監視傳入及傳出之中央處理器訊務且允許中央處理器在DMA控制器418正執行傳送且至及自中央處理器400之傳送進入一靜止狀態時進入一低功率狀態。
另外,因為RAM磁碟416係非依電性的,所以作業系統可使DMA控制器410快速地執行對任何關鍵處理器狀態變數的至RAM磁碟416的快速DMA複製,該等關鍵處理器狀態變數通常係儲存於DRAM 404內以使得DRAM 404能被斷電至一低功率狀態以在閒置時間期間內有額外電力節省。此等傳送可增加進入或退出一低功率狀態之速度,此係由於資訊可儲存於NVRAM 408中且接著在DRAM電力開啟而恢復至一操作狀態時快速地傳回至DRAM 404。將不需要執行向外至一大容量儲存裝置之I/O傳送以保持(save)系統之狀態,且實情為,將僅將系統狀態資料傳送至NVRAM RAM磁碟416。
圖5例示出DRAM至NVRAM RAM磁碟傳送系統的另一實施例。在圖5中,中央處理器500耦接至控制至及自DRAM 504之傳送的DRAM控制器502且耦接至控制至及自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。在不同實施例中,可取決於辨識NVRAM之方式而將邏輯位址空間轉譯至邏輯區塊位址(LBA)空間604或實體頁面位址(PPA)空間606。在一些實施例中,NVRAM之部分經辨識為大容量儲存器且部分經辨識為可直接定址之記憶體。在圖6中,位址重定向表提供用於將頁面細微度(page-granular)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重新映射表608中存在一千五百萬個儲存器直接位址空間(DSPACE)輸入項,此係由於每一輸入項指涉LBA位址空間之一唯一4KB頁面。
PPA空間606為由系統中之實體記憶體所使用的空間。然而,在圖6中所展示之實施例中,PPA空間606並不含有實體NVRAM位址位置。更確切而言,經由LBA重新映射表608將PPA空間重新映射至實體NVRAM空間602。
在圖6中係有一PPA重新映射表700,其將給定PPA頁面位址重新映射至DSPACE位址(指涉NVRAM之特定實體頁面的位址)。在許多實施例中,PPA重新映射表610作為記憶體之單一區塊儲存於整合至記憶體控制邏輯中之SRAM中或附近記憶體(DRAM)中。舉例來說,在4GB之可定址PPA空間中,PPA重新映射表610中存在一百萬個記憶 體DSPACE輸入項,此係由於每一輸入項指涉PPA位址空間之一唯一4KB頁面。記憶體重新映射表610係由重新映射描述符(例如,記憶體DSPACE 1表示PPA重新映射表610中之已儲存描述符)之群組建置而成。在許多實施例中,存在針對PPA空間之每一快取行(例如,4K快取行)之一個描述符。描述符之內容可基於可能需要追蹤之資訊之不同片段而變化。至少NVRAM裝置位址將為每一描述符實施例所共同的,NVRAM裝置位址將包含NVRAM裝置空間中對應於PPA記憶體輸入項之位址位元之特定集合。此位址將需要在每一描述符中以允許發生實際重新映射程序。
基本上,圖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位置可散佈於整個實體NVRAM空間602中。針對PPA實施,將RAM磁碟之邏輯位址空間映射至PPA空間606,且接著經由PPA重新映射表610轉譯該邏輯位址空間以變成RAM磁碟之實體NVRAM位置,該等實體NVRAM位置亦可散佈於整個實體NVRAM空間602中。
對於映射至使用者位址空間的檔案而言,這是一種自然適應(natural fit)。檔案之所有改變將立即反映回至RAM磁碟中,此係由於彼等改變將為RAM磁碟本身之頁面之改變。在一些實施例中,直接I/O亦可允許請求者直接存取NVRAM頁面。此直接I/O可應用於圖1至圖3中所描述之實施例中之任一者中。若所分配記憶體空間區域係以唯讀方式映射,則將不需要任何補充。另一方面,若所分配記憶體空間區域係以讀取/寫入方式映射,則將必須以寫入時複製(copy-on-write)使用模型建立新映射之NVRAM RAM磁碟以防止將對RAM磁碟之修改無意地反映回至原始檔案。寫入時複製使用模型允許對多個請求者(亦即,使用者軟體應用程式)給予至相同資源(例如,給定重新映射表中之一輸入項)之指標。可維持此情形,直至該等請求者中之一者實際上試圖修改該資源為止。彼時,給予該請求者該資源之一私人複本以防止其他請求者看見該改變。
LBA重新映射表608及PPA重新映射表610具有實質上為轉譯後備緩衝器(TLB)輸入項的描述符。將LBA及PPA空間映射至實體NVRAM空間之頁面查核行程(page walk)已發生。此等輸入項可由多個請求者(例如,在作業系統上執行之多個執行緒,其各自經分配邏輯位址空間600中之一特定位址範圍)存取。因此,寫入時複製方法起作用,但在發生修改時存在成本,此係因為不修改資源之其他請求者由於其不再能夠存取該資源之先前版本(由於該資源已被修改)而必須執行一TLB關閉(shoot-down)(清空該等請求者之複本)。
與重新映射位址空間相關聯的TLB關閉之固有成本可使得對於不執行寫入時複製類型之資料複製的任何節省無效。至請求者之本端記憶體空間中的直接映射之RAM磁碟頁面可限於僅具有少量作用中執行緒之位址空間。在許多實施例中,一請求者具有與其相關聯之特定數目個執行緒ID,且此數目可與允許請求者獲得直接映射之NVRAM RAM磁碟存取之執行緒之最大數目相比。作業系統中之管理邏輯可作出關於哪些請求者被授予存取此類型之RAM磁碟之權利的最後判定。另外,在已授予請求者利用NVRAM RAM磁碟之權利之後,作業系統管理邏輯可隨後監視請求者之執行緒計數。在看見由受監視請求者建立之過多額外執行緒後,作業系統隨即可移除對NVRAM RAM磁碟之存取或阻止進一步執行緒建立。
亦可藉由使新類型之I/O請求被分配或是提交至位址空間中之實際頁面來減輕此問題,此係由於頁面表輸入項之從「不存在」至「存在」的轉變不需要TLB關閉。
圖7為一處理程序之一實施例的流程圖,用以在 PCMS記憶體空間中分配RAM磁碟並將此RAM磁碟直接映射至軟體應用程式之邏輯位址空間中。該處理程序可由處理邏輯來執行,該處理邏輯包含硬體、軟體、韌體或處理邏輯之所列形式中之兩者或兩者以上之組合。該處理程序藉由處理邏輯分配要被用作一RAM磁碟之一PCMS記憶體內之位址空間位置(處理區塊700)開始。可分配該RAM磁碟以供正在一電腦系統中執行之一軟體應用程式使用。
接下來,處理邏輯將所分配之PCMS記憶體量的至少一部分映射至該軟體應用程式之邏輯位址空間(處理區塊702)。最後,處理邏輯授予該軟體應用程式直接存取正儲存該RAM磁碟之PCMS位址位置的權力(處理區塊704)。當發生此授予時,該軟體應用程式具有寫入至此等映射之記憶體位置且直接影響相應實體PCMS記憶體位置中之資料之改變的能力。
圖8為一處理程序之一實施例的流程圖,用以在PCMS記憶體空間中分配RAM磁碟並執行自DRAM記憶體至基於PCMS之RAM磁碟的DMA資料傳送。該處理程序可由處理邏輯來執行,該處理邏輯包含硬體、軟體、韌體或處理邏輯之所列形式中之兩者或兩者以上之組合。該處理程序藉由處理邏輯分配要被用作一RAM磁碟之一PCMS記憶體內之位址空間位置(處理區塊800)開始(類似於上文在圖7中所例示之處理程序)。
接著,處理邏輯執行自DRAM位置至此RAM磁碟所駐之PCMS位置的DMA記憶體至記憶體複製(處理區塊 802)。此處理邏輯在一些實施例中可駐留於中央處理器中或在其他實施例中可駐留於能夠存取DRAM及PCMS記憶體裝置兩者之DMA控制器中。
在以下說明中,係提出眾多特定細節(例如,邏輯實作、用以指定運算元之方式、資源分割/共用/複寫實作、系統組件之類型及相互關係,及邏輯分割/整合選擇)以提供對本發明之較透徹的理解。然而,熟習此項技術者將瞭解,可在無此等特定細節之情況下實踐本發明。在其他例子中,為了不使本發明不清楚,尚未詳細展示控制結構、閘極階層電路及全軟體指令序列。藉由所包括之描述,一般熟習此項技術者將能夠在無過度實驗之情況下實施適當功能性。
於本說明書中對「一個實施例」、「一實施例」、「一實例實施例」等之指涉係指所描述之實施例可包括一特定特徵、結構或特性,但並非每個實施例都必須包括該特定特徵、結構或特性。此外,此等片語未必指涉相同實施例。另外,當結合一實施例描述一特定特徵、結構或特性時,認為結合本文中清楚地或未清楚地描述之其他實施例實現此特徵、結構或特性在熟習此項技術者已知之範圍內。
在以下之說明及申請專利範圍中,可係使用「耦接」及「連接」等詞語以及該等詞語之衍生詞。應理解,此等詞語不欲為彼此同義的。「耦接」用以指示可或可不彼此直接實體或電接觸之兩個或兩個以上元件彼此合作或相 互作用。「連接」用以指示彼此耦接之兩個或兩個以上元件之間的通信之建立。
亦可將本發明之實施例提供為一電腦程式產品,其可包括儲存有指令的非暫時性機器可讀媒體,該等指令可被用來程式化一電腦(或其他電子裝置)以執行一處理程序該非暫時性機器可讀媒體可包括(但不限於)軟碟、光碟、CD-ROM,及磁光碟、ROM、RAM、EPROM、EEPROM、磁卡或光卡、傳播媒體或適合於儲存電子指令之其他類型之媒體/機器可讀媒體。本發明之實施例亦可下載為一電腦程式產品,其中可經由一通信鏈路(例如,一數據機或網路連接)藉由體現於一載波或其他傳播媒體中之資料信號將程式自一遠端電腦(例如,一伺服器)傳送至一請求電腦(例如,一用戶端)。
雖然已就若干實施例描述本發明,但熟習此項技術者會可識出,本發明並不限於所描述之實施例,而是可在後附申請專利範圍之精神及範疇內配合一些修改和變更來實踐本發明。描述因此被視為例示性的而非限制性的。
100‧‧‧中央/通用處理器
102‧‧‧圖形處理器
104‧‧‧IO裝置/I/O控制器
106‧‧‧磁碟或固態磁碟(SSD)
108‧‧‧其他輸入/輸出(I/O)裝置
110‧‧‧晶粒上快取記憶體
112‧‧‧記憶體控制器
114‧‧‧DRAM儲存器
116‧‧‧NVRAM儲存器
118‧‧‧RAM磁碟(RD)
120‧‧‧軟體應用程式(SA)
122‧‧‧作業系統(OS)
124‧‧‧專用驅動器(DR)

Claims (16)

  1. 一種方法,其包含:配置供一軟體應用程式使用的作為一隨機存取記憶體(RAM)磁碟的一位元組可定址非依電性記憶體之第一實體位址位置;配置在該位元組可定址非依電性記憶體內供該軟體應用程式使用的作為儲存器之第二實體位址位置;產生一重新映射表來供該軟體應用程式將一邏輯位址空間映射至指向該等第一實體位址位置之指標;允許該軟體應用程式經由該重新映射表對該等第一實體位址位置直接存取;接收由該軟體應用程式之一請求來將在該等第二實體位址位置中之一者處的資料複製至該等第一實體位址位置中之一或多者;以及以一新指標更新該重新映射表中的一現有輸入項來指出該等第二實體位址位置中之該一者要被用作該等第一實體位址位置中之一者,使得該請求在不複製該資料的情況下被履行。
  2. 如請求項1之方法,其包含該位元組可定址非依電性記憶體包括:儲存類別記憶體(SCM)、相變記憶體(PCM)、相變記憶體與開關(PCMS)、鐵磁性記憶體、磁阻式記憶體、磁性記憶體、磁性隨機存取記憶體(MRAM)或半導體-氧化物-氮化物-氧化物-半導體(SONOS)記憶體。
  3. 如請求項1之方法,其包含該重新映射表被維持在一依電性記憶體中。
  4. 如請求項1之方法,其包含該位元組可定址非依電性記由該軟體應用程式經辨識為可直接定址記憶體。
  5. 一種設備,其包含:一處理器;以及由該處理器執行之軟體驅動器邏輯,該軟體驅動器邏輯用以:配置供一軟體應用程式使用的作為一隨機存取記憶體(RAM)磁碟的一位元組可定址非依電性記憶體之第一實體位址位置;配置在該位元組可定址非依電性記憶體內供該軟體應用程式使用的作為儲存器之第二實體位址位置;產生一重新映射表來供該軟體應用程式將一邏輯位址空間映射至指向該等第一實體位址位置之指標;允許該軟體應用程式經由該重新映射表對該等第一實體位址位置直接存取;接收由該軟體應用程式之一請求來將在該等第二實體位址位置中之一者處的資料複製至該等第一實體位址位置中之一或多者;以及以一新指標更新該重新映射表中的一現有輸入項來指出該等第二實體位址位置中之該一者要被用 作該等第一實體位址位置中之一者,使得該請求在不複製該資料的情況下被履行。
  6. 如請求項5之設備,其包含該位元組可定址非依電性記憶體包括:儲存類別記憶體(SCM)、相變記憶體(PCM)、相變記憶體與開關(PCMS)、鐵磁性記憶體、磁阻式記憶體、磁性記憶體、磁性隨機存取記憶體(MRAM)或半導體-氧化物-氮化物-氧化物-半導體(SONOS)記憶體。
  7. 如請求項5之設備,其包含該重新映射表被維持在一依電性記憶體中。
  8. 如請求項5之設備,其包含該位元組可定址非依電性記由該軟體應用程式或該軟體驅動器邏輯經辨識為可直接定址記憶體。
  9. 一種系統,其包含:用於一計算系統之一處理器;經由一記憶體匯流排與該處理器耦接之一位元組可定址非依電性記憶體;以及用於該計算系統之一作業系統,該作業系統用以:配置供一軟體應用程式使用的作為一隨機存取記憶體(RAM)磁碟的該位元組可定址非依電性記憶體之第一實體位址位置;配置在該位元組可定址非依電性記憶體內供該軟體應用程式使用的作為儲存器之第二實體位址位置;產生一重新映射表來供該軟體應用程式將一 邏輯位址空間映射至指向該等第一實體位址位置之指標;允許該軟體應用程式經由該重新映射表對該等第一實體位址位置直接存取;接收由該軟體應用程式之一請求來將在該等第二實體位址位置中之一者處的資料複製至該等第一實體位址位置中之一或多者;以及以一新指標更新該重新映射表中的一現有輸入項來指出該等第二實體位址位置中之該一者要被用作該等第一實體位址位置中之一者,使得該請求在不複製該資料的情況下被履行。
  10. 如請求項9之系統,其包含該位元組可定址非依電性記憶體包括:儲存類別記憶體(SCM)、相變記憶體(PCM)、相變記憶體與開關(PCMS)、鐵磁性記憶體、磁阻式記憶體、磁性記憶體、磁性隨機存取記憶體(MRAM)或半導體-氧化物-氮化物-氧化物-半導體(SONOS)記憶體。
  11. 如請求項9之系統,其進一步包含:一依電性記憶體,其包括動態隨機存取記憶體(DRAM)或靜態隨機存取記憶體(SRAM),其中該重新映射表被維持在該依電性記憶體中。
  12. 如請求項9之系統,其包含該位元組可定址非依電性記由該軟體應用程式或該作業系統經辨識為可直接定址記憶體。
  13. 一種包含複數個指令之至少一機器可讀媒體,該等複數 個指令回應於由一系統在一計算裝置處被執行,致使該系統用以:配置供運行於該計算裝置中的一軟體應用程式使用的作為一隨機存取記憶體(RAM)磁碟的一位元組可定址非依電性記憶體之第一實體位址位置;配置在該位元組可定址非依電性記憶體內供該軟體應用程式使用的作為儲存器之第二實體位址位置;產生一重新映射表來供該軟體應用程式將一邏輯位址空間映射至指向該等第一實體位址位置之指標;允許該軟體應用程式經由該重新映射表對該等第一實體位址位置直接存取;接收由該軟體應用程式之一請求來將在該等第二實體位址位置中之一者處的資料複製至該等第一實體位址位置中之一或多者;以及以一新指標更新該重新映射表中的一現有輸入項來指出該等第二實體位址位置中之該一者要被用作該等第一實體位址位置中之一者,使得該請求在不複製該資料的情況下被履行。
  14. 如請求項13之至少一機器可讀媒體,其包含該位元組可定址非依電性記憶體包括:儲存類別記憶體(SCM)、相變記憶體(PCM)、相變記憶體與開關(PCMS)、鐵磁性記憶體、磁阻式記憶體、磁性記憶體、磁性隨機存取記憶體(MRAM)或半導體-氧化物-氮化物-氧化物-半導體(SONOS)記憶體。
  15. 如請求項13之至少一機器可讀媒體,其包含該重新映射表被維持在一依電性記憶體中。
  16. 如請求項13之至少一機器可讀媒體,其包含該位元組可定址非依電性記由該軟體應用程式經辨識為可直接定址記憶體。
TW106101677A 2011-12-29 2012-12-27 非依電性隨機存取記憶磁碟(二) TWI616749B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US2011/067829 WO2013101053A1 (en) 2011-12-29 2011-12-29 Non-volatile ram disk
??PCT/US11/67829 2011-12-29

Publications (2)

Publication Number Publication Date
TW201738752A TW201738752A (zh) 2017-11-01
TWI616749B true TWI616749B (zh) 2018-03-01

Family

ID=48698290

Family Applications (2)

Application Number Title Priority Date Filing Date
TW106101677A TWI616749B (zh) 2011-12-29 2012-12-27 非依電性隨機存取記憶磁碟(二)
TW101150581A TWI578156B (zh) 2011-12-29 2012-12-27 非依電性隨機存取記憶磁碟

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW101150581A TWI578156B (zh) 2011-12-29 2012-12-27 非依電性隨機存取記憶磁碟

Country Status (4)

Country Link
US (2) US9535827B2 (zh)
CN (1) CN104011691B (zh)
TW (2) TWI616749B (zh)
WO (1) WO2013101053A1 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9535827B2 (en) 2011-12-29 2017-01-03 Intel Corporation RAM disk using non-volatile random access memory
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 한국전자통신연구원 인메모리 가상 데스크탑 시스템
GB2539433B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
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
GB2539428B (en) 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
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 瑞昱半導體股份有限公司 具有省電模式且能夠在省電模式盡量省電的通訊裝置
US12093574B2 (en) 2021-06-21 2024-09-17 Electronics And Telecommunications Research Institute Apparatus and method for managing integrated storage based on memory
CN114371814B (zh) * 2021-12-08 2024-05-10 浙江华忆芯科技有限公司 数据处理的方法、装置及固态硬盘

Citations (3)

* Cited by examiner, † Cited by third party
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
US20050097294A1 (en) * 2003-10-30 2005-05-05 International Business Machines Corporation Method and system for page initialization using off-level worker thread
CN102063178A (zh) * 2008-03-03 2011-05-18 佳能株式会社 信息处理装置及其控制方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
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
US6032223A (en) 1997-10-15 2000-02-29 Dell Usa, L.P. System and method for determining a RAM disk logical drive designation
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
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
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
US9535827B2 (en) 2011-12-29 2017-01-03 Intel Corporation RAM disk using non-volatile random access memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
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
US20050097294A1 (en) * 2003-10-30 2005-05-05 International Business Machines Corporation Method and system for page initialization using off-level worker thread
CN102063178A (zh) * 2008-03-03 2011-05-18 佳能株式会社 信息处理装置及其控制方法

Also Published As

Publication number Publication date
TW201738752A (zh) 2017-11-01
US20140013045A1 (en) 2014-01-09
US9535827B2 (en) 2017-01-03
US20170139827A1 (en) 2017-05-18
US9852069B2 (en) 2017-12-26
CN104011691B (zh) 2016-12-14
TW201346549A (zh) 2013-11-16
WO2013101053A1 (en) 2013-07-04
TWI578156B (zh) 2017-04-11
CN104011691A (zh) 2014-08-27

Similar Documents

Publication Publication Date Title
TWI616749B (zh) 非依電性隨機存取記憶磁碟(二)
US10719443B2 (en) Apparatus and method for implementing a multi-level memory hierarchy
US10817201B2 (en) Multi-level memory with direct access
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
GB2510762B (en) A method and device to distribute code and data stores between volatile memory and non-volatile memory
US9317429B2 (en) Apparatus and method for implementing a multi-level memory hierarchy over common memory channels
EP2761469B1 (en) Non-volatile random access memory (nvram) as a replacement for traditional mass storage
US10180796B2 (en) Memory system
US20170109070A1 (en) Memory system
US9977605B2 (en) Memory system