TWI578156B - 非依電性隨機存取記憶磁碟 - Google Patents

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

Info

Publication number
TWI578156B
TWI578156B TW101150581A TW101150581A TWI578156B TW I578156 B TWI578156 B TW I578156B TW 101150581 A TW101150581 A TW 101150581A TW 101150581 A TW101150581 A TW 101150581A TW I578156 B TWI578156 B TW I578156B
Authority
TW
Taiwan
Prior art keywords
memory
nvram
processor
dram
ram disk
Prior art date
Application number
TW101150581A
Other languages
English (en)
Other versions
TW201346549A (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 TW201346549A publication Critical patent/TW201346549A/zh
Application granted granted Critical
Publication of TWI578156B publication Critical patent/TWI578156B/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)

Description

非依電性隨機存取記憶磁碟 發明領域
本發明係關於以非依電性記憶體實施RAM磁碟之技術。
發明背景
相變記憶體與開關(PCMS)為正作為現今之固態儲存裝置中普遍存在的反及(NAND)非依電性儲存器之後繼者而有所發展的一種非依電性儲存器技術。PCMS提供比NAND快閃記憶體高得多之效能,且事實上開始接近大部分用戶端計算裝置中目前用作主要動態儲存器之動態隨機存取記憶體(DRAM)之效能點。雖然PCMS儲存器可能最初每個位元比NAND儲存器昂貴,但預見彼關係將隨時間而改變,直至PCMS最終比NAND便宜為止。
依據本發明之一實施例,係特地提出一種方法,其包含下列步驟:分配一相變記憶體與開關(PCMS)記憶體內之要被用作一隨機存取記憶體(RAM)磁碟的一定量之位置,以供執行於在一電腦系統中的一軟體應用程式使用; 將所分配之該定量之PCMS記憶體之至少一部分映射至該軟體應用程式位址空間;以及授予該軟體應用程式對所分配之該定量之PCMS記憶體之該至少部分的直接存取權。
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磁碟
418、516‧‧‧電源管理邏輯
600‧‧‧邏輯位址空間
602‧‧‧實體NVRAM空間
604、612A‧‧‧邏輯區塊位址(LBA)空間
606、612B‧‧‧實體頁面位址(PPA)空間
608‧‧‧LBA重新映射表
610‧‧‧PPA重新映射表/使用者/軟體應用程式空間
700~704、800、802‧‧‧處理區塊
下面的說明和附圖係用來說明本發明的數個實施例。在圖式中:圖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而言最小的大小為64 Kbyte,且對於NAND FLAHS而言最小的大小為16 Kbyte);˙其可用作系統記憶體,並可被分配系統記憶體位址 空間的全部或一部分;˙其可係能夠利用一異動協定(支援用以區別不同異動以使得那些異動可無序地完成的異動識別符(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 (19)

  1. 一種方法,其包含下列步驟:配置在一非依電性隨機存取記憶體(NVRAM)內之供運行於一電腦系統中的一軟體應用程式使用的要被用作一隨機存取記憶體(RAM)磁碟的數個第一位置、及在該NVRAM內之要被用作資料儲存器的數個第二位置,該等第二位置與該等第一位置互不重疊;產生在動態RAM中的一重新映射表,該重新映射表將該RAM磁碟的數個邏輯位址空間映射至指向在該NVRAM內之該等第一位置的數個指標;允許該軟體應用程式經由該動態RAM中之該重新映射表而直接存取該NVRAM內之該等位置;以及反應於要將在該等第二位置中之一者處的資料複製至該RAM磁碟中的一請求,不複製該資料而將該重新映射表中的一現有輸入項配置為將該等邏輯位址空間中之一者映射至一新指標,該新指標指出該等第二位置中之該一者現在要被用作該等第一位置中之一者。
  2. 如申請專利範圍第1項之方法,其進一步包含下列步驟:將所配置的在該NVRAM內之要被用作該RAM磁碟的該等第一位置設定成一寫入時複製狀態。
  3. 如申請專利範圍第2項之方法,其進一步包含下列步驟:在運行於該電腦系統上的該軟體應用程式所具有的運行於該電腦系統中之執行緒數量目前小於一臨限 數目時將該RAM磁碟配置給該軟體應用程式。
  4. 如申請專利範圍第3項之方法,其進一步包含下列步驟:當新執行緒之數目與在該軟體應用程式最初得到配置之當時運行於該軟體應用程式之被配置環境中的執行緒之數目組合起來超過該臨限數目時,去除該軟體應用程式對該RAM磁碟的存取權。
  5. 一種方法,其包含下列步驟:配置非依電性隨機存取記憶體(NVRAM)之供運行於一電腦系統中的一或多個軟體應用程式使用的要被用作一第一隨機存取記憶體(RAM)磁碟的一第一定量空間、及該NVRAM之要被用作資料儲存器的一第二定量空間,該NVRAM之該第二定量空間與該NVRAM之該第一定量空間互不重疊;進行從一動態隨機存取記憶體(DRMA)記憶體空間中之一位置至為該第一RAM磁碟所配置的該NVRAM之該第一定量空間的一直接記憶體存取(DMA)記憶體至記憶體資料複製;產生在該DRAM中的一重新映射表,該重新映射表將該第一RAM磁碟的數個邏輯位址空間映射至指向在該NVRAM之該第一定量空間內之數個第一位置的數個指標;反應於要將在該NVRAM之該第二定量空間之一部分中的資料複製至該第一RAM磁碟中的一請求,不複製該資料而將該重新映射表中的一現有輸入項配置為將 該等邏輯位址空間中之一者映射至一新指標,指出該NVRAM之該第二定量空間之該部分之一第二位置的該新指標因而重新配置該第二位置為該NVRAM之該第一定量空間之一部份之一第一位置。
  6. 如申請專利範圍第5項之方法,其中,係由一DMA控制器進行該DMA記憶體至記憶體複製。
  7. 如申請專利範圍第6項之方法,其進一步包含下列步驟:允許一處理器在該DMA控制器進行該DMA記憶體至記憶體複製時進入一低功率狀態。
  8. 如申請專利範圍第7項之方法,其進一步包含下列步驟:在該處理器進入該低功率狀態時將數個處理器狀態變數和該重新映射表自該DRAM記憶體複製至該NVRAM;以及在完成對該等處理器狀態變數和該重新映射表之複製後,使該DRAM記憶體進入一低功率模式,該低功率模式使得該DRAM記憶體在進入了該低功率模式時失去儲存於該DRAM記憶體中之任何資料。
  9. 如申請專利範圍第8項之方法,其進一步包含下列步驟:在該處理器離開該低功率狀態時,將該等處理器狀態變數和該重新映射表自該NVRAM複製至該DRAM記憶體。
  10. 如申請專利範圍第5項之方法,其中,係由一處理器進行該DMA記憶體至記憶體資料複製。
  11. 一種系統,其包含: 一處理器;一非依電性隨機存取記憶體(NVRAM)裝置,其被劃分成一第一部份與一第二部份,該第一部份係用於儲存供運行於該處理器上的一軟體應用程式使用的一隨機存取記憶體(RAM)磁碟,該第二部份係用於儲存不屬於該RAM磁碟的資料,該第二部份與該第一部份互不重疊;以及一動態隨機存取記憶體(DRAM),用以至少儲存在由該處理器執行時會致使該處理器進行一方法的指令,該方法包含以下步驟:產生在該DRAM中的一重新映射表,該重新映射表將該RAM磁碟的數個邏輯位址空間映射至指向在該NVRAM裝置之該第一部分內的數個第一位置的數個指標;允許該軟體應用程式經由該DRAM中之該重新映射表而直接存取該NVRAM裝置之被配置給該RAM磁碟的該第一部分;以及反應於要將在該NVRAM裝置之該第二部分處的資料複製至該RAM磁碟中的一請求,不複製該資料而將該重新映射表中的一現有輸入項配置為將該等邏輯位址空間中之一者映射至一新指標,該新指標指出儲存在該NVRAM裝置之該第二部分處之資料之一第二位置現在要被用作儲存在該NVRAM裝置之該第一部分處之資料之一第一位置。
  12. 如申請專利範圍第11項之系統,其中,所進行之該方法進一步包含下列步驟:將該NVRAM裝置內之被配置成要被用作該RAM磁碟的該等第一位置設定成一寫入時複製狀態。
  13. 如申請專利範圍第12項之系統,其中,所進行之該方法進一步包含下列步驟:在運行於該處理器上的該軟體應用程式所具有的運行於該處理器中之執行緒數量目前小於一臨限數目時將該RAM磁碟配置給該軟體應用程式。
  14. 如申請專利範圍第13項之系統,其中,所進行之該方法進一步包含下列步驟:當新執行緒之數目與在該軟體應用程式最初得到配置之當時運行於該軟體應用程式之被配置環境中的執行緒之數目組合起來超過該臨限數目時,去除該軟體應用程式對該RAM磁碟的存取權。
  15. 一種系統,其包含:一非依電性隨機存取記憶體(NVRAM)裝置,用以儲存供一軟體應用程式使用的一第一隨機存取記憶體(RAM)磁碟;一動態隨機存取記憶體(DRAM);一處理器,用以進行下列操作:在該NVRAM裝置中配置供執行於該處理器上的該軟體應用程式使用的要被用作該第一RAM磁碟的一第一記憶體空間; 在該NVRAM裝置中配置用於儲存不與該第一RAM磁碟相關聯之資料的一第二記憶體空間,該第二記憶體空間與該第一記憶體空間互不重疊;產生在該DRAM中的一重新映射表,該重新映射表將該第一RAM磁碟的數個邏輯位址空間映射至指向在該NVRAM裝置之該第一記憶體空間內之數個第一位置的數個指標;及反應於要將在該NVRAM裝置之該第二記憶體空間中的資料複製至該第一RAM磁碟中的一請求,不複製該資料而將該重新映射表中的一現有輸入項配置為將該等邏輯位址空間中之一者映射至一新指標,該新指標指出該NVRAM裝置之該第二記憶體空間內之資料之一第二位置現在要被用作儲存在該NVRAM裝置之該第一記憶體空間中之資料之一第一位置;以及一直接記憶體存取(DMA)控制器,用以進行自該DRAM中之一第三記憶體空間中之位置至該NVRAM裝置中之被配置成要被用作該第一RAM磁碟的該第一記憶體空間的一DMA記憶體至記憶體資料複製。
  16. 如申請專利範圍第15項之系統,其進一步包含:電源管理硬體邏輯,用以在該DMA控制器進行該記憶體至記憶體複製時使該處理器進入一低功率狀態。
  17. 如申請專利範圍第16項之系統,其中:該DAM控制器會在該處理器進入該低功率狀態時 將數個處理器狀態變數和該重新映射表自該DRAM記憶體複製至該NVRAM裝置;並且在完成對該等處理器狀態變數和該重新映射表之複製後,該電源管理硬體邏輯會致使該DRAM記憶體進入一低功率模式,該低功率模式致使該DRAM記憶體在進入了該低功率模式時失去儲存於該DRAM記憶體中之任何資料。
  18. 如申請專利範圍第17項之系統,其中:該電源管理硬體邏輯會起始對該DRAM的自一低功率模式返回至一操作模式的一返回處理程序;並且在該返回處理程序期間內,該DMA控制器會將該等處理器狀態變數和該重新映射表自該NVRAM裝置複製至該DRAM記憶體。
  19. 如申請專利範圍第15項之系統,其中,該處理器會在該處理器並不處於一低功率狀態中時進行該DMA記憶體至記憶體資料複製。
TW101150581A 2011-12-29 2012-12-27 非依電性隨機存取記憶磁碟 TWI578156B (zh)

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
TW201346549A TW201346549A (zh) 2013-11-16
TWI578156B true TWI578156B (zh) 2017-04-11

Family

ID=48698290

Family Applications (2)

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

Family Applications After (1)

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

Country Status (4)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11113205B2 (en) 2017-07-31 2021-09-07 Micron Technology, Inc. Die addressing using a reduced size translation table entry

Families Citing this family (32)

* 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 한국전자통신연구원 인메모리 가상 데스크탑 시스템
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
GB2539433B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
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 삼성전자주식회사 플래시-인지 힙 메모리 관리 방법 및 호스트 장치
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 (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
US20060004946A1 (en) * 2004-06-30 2006-01-05 Shah Shrikant M 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

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
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
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
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
US20060004946A1 (en) * 2004-06-30 2006-01-05 Shah Shrikant M 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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11113205B2 (en) 2017-07-31 2021-09-07 Micron Technology, Inc. Die addressing using a reduced size translation table entry
TWI739022B (zh) * 2017-07-31 2021-09-11 美商美光科技公司 晶粒定址

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI578156B (zh) 非依電性隨機存取記憶磁碟
US10719443B2 (en) Apparatus and method for implementing a multi-level memory hierarchy
US11132298B2 (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
US9269438B2 (en) System and method for intelligently flushing data from a processor into a memory subsystem
US9547594B2 (en) Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage
US20140229659A1 (en) Thin translation for system access of non volatile semicondcutor storage as random access memory
US10180796B2 (en) Memory system
US20170109070A1 (en) Memory system
US20170109043A1 (en) Memory system
US20170109074A1 (en) Memory system
US20170109064A1 (en) Memory system