TWI468938B - 用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,設備及系統 - Google Patents

用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,設備及系統 Download PDF

Info

Publication number
TWI468938B
TWI468938B TW101130432A TW101130432A TWI468938B TW I468938 B TWI468938 B TW I468938B TW 101130432 A TW101130432 A TW 101130432A TW 101130432 A TW101130432 A TW 101130432A TW I468938 B TWI468938 B TW I468938B
Authority
TW
Taiwan
Prior art keywords
memory
nvram
partition
storage
address
Prior art date
Application number
TW101130432A
Other languages
English (en)
Other versions
TW201337556A (zh
Inventor
Vincent J Zimmer
Michael A Rothman
Mark Doran
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201337556A publication Critical patent/TW201337556A/zh
Application granted granted Critical
Publication of TWI468938B publication Critical patent/TWI468938B/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/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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/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
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • 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/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,設備及系統
本發明的實施例相關於電腦系統;且更具體地說,相關於可位元組定址不變性記憶體在電腦系統之平台儲存階層中的使用。
A.目前的記憶體及儲存組態
當今電腦創新的限制因素之一係記憶體及儲存技術。在習知電腦系統中,系統記憶體典型地係以動態隨機存取記憶體(DRAM)實施。因為DRAM-為基的記憶體必須不斷地重充電內部電容器,其消耗電力,即使在沒有記憶體讀寫發生時。DRAM-為基的記憶體係依電的,意謂著一旦將電力移除,將喪失儲存在DRAM記憶體中的資料。
關於大量儲存器,習知大量儲存裝置典型地包括不變性磁性媒體(例如,硬碟驅動器)及/或快閃記憶體(也稱為「快閃記憶體」)(例如,固態硬碟(SSD))。此等儲存裝置係可區塊定址的,意謂著不可單獨地存取儲存器的單一位元組。更確切地說,位元組係作為資料的多位元組(例如,16個位元組)區塊讀寫。通常,將此等儲存裝置視為係I/O裝置,因為彼等經由實施各種I/O協定的各種I/O配接卡為處理器所存取。此等I/O配接卡及I/O協定消耗可觀電量,且在晶粒面積及平台的形狀因數上可具有可觀影響。此外,針對具有有限電池壽命的可攜或行動裝置 (例如,平板電腦、攝影機、及行動電話),彼等的儲存裝置(例如,嵌入式多媒體卡(eMMC)及安全數位(SD)卡)典型地經由低功率互連及I/O控制器耦合至處理器,以符合有效及閒置電力安排。此等互連及I/O控制器不能一致地交付滿足使用者感受所需的帶寬。
關於韌體記憶體,習知電腦系統典型地使用快閃記憶體裝置儲存常讀出但不常(或從未)寫入的持久性系統資訊。例如,基本輸入及輸出系統(BIOS)影像典型地儲存在快閃記憶體裝置中。目前市售的快閃記憶體裝置通常具有有限速度(例如,50MHz)。此速度另外為讀取協定的消耗所降低(例如,2.5 MHz)。為加速BIOS執行速度,習知處理器通常在開機處理的預擴展韌體介面(PEI)階段期間快取部分的BIOS碼。然而,處理器快取具有非常有限的容量。因此,可用於初始系統組態的BIOS碼量也係非常有限的。處理器快取的尺寸限制將可觀限制加諸在使用在PEI階段中的BIOS碼(也稱為「PEI BIOS碼」)的尺寸上。因此,不能輕易地擴展PEI BIOS碼,以支援記憶體組態及多處理器家族的大型混合。隨著對以不同技術及多處理器家族實施之處理器的初始化、處理互連、記憶體、以及儲存器的需求增長,對更多多變PEI BIOS碼的需求也成長。一解決方案係建立用於快取該碼的更大處理器快取。然而,不能輕易地增加處理器快取的尺寸而不對系統其他部位造成負面衝擊。
B.相變記憶體(PCM)及相關技術
相變記憶體(PCM),有時也稱為PCME、PRAM、PCRAM、雙向通用記憶體、硫族化合物RAM、及C-RAM,係一種運用硫族化合物玻璃之獨特行為的不變性電腦記憶體。由於電流通過所產生的熱,此材料可在二狀態之間切換:晶態及非晶態。PCM的最近型號可實現二額外不同狀態,有效地將記憶體儲存容量加倍。PCM係與快閃記憶體競爭不變性角色的許多新記憶體技術之一。快閃記憶體具有此等替代者希望解決的許多實際問題。
例如,PCM可在迅速寫入係重要的應用中提供高得多的效能,部分因為記憶體元件可更快速地切換,並也因為可能將個別位元改變為1或0,而無需先抹除全部胞元區塊(如使用快閃記憶體的情形)。PCM的高效能可能使其在目前效能受記憶體存取時序限制的不變性記憶體角色中非常有利。
此外,當PCM裝置隨使用退化時(與快閃記憶體相似),彼等的退化慢得多。PCM裝置可能存活約100百萬次寫入週期。PCM的使用期限受諸如,在程式化期間由於GST熱膨脹所造成的退化、金屬(或其他材料)遷移的機制,及其他機制限制。
在以下描述中,陳述許多特定細節。然而,已理解可能實踐本發明實施例而無須此等特定細節。在其他實例中 ,未詳細顯示已為人所熟知之電路、結構、以及技術,以不模糊對此描述的理解。
引用於本說明書中的「一實施例」、「實施例」、「範例實施例」等指示所描述的實施例可能包括特定特性、結構、或特徵,但可能不係每個實施例均需包括該特定特性、結構、或特徵。此外,此種片語不必然指相同的實施例。另外,當特定特性、結構、或特徵關聯於實施例描述時,無論是否明顯地描述,認為其係在熟悉本發明之人士的知識內,以影響與其他實施例關聯之此種特性、結構、或特徵。
在以下描述及申請專利範圍中,該等術語「耦合」及「連接」可能隨著彼等之衍生物使用。應理解未將此等術語視為係彼此的同義辭。「耦合」係用於指示可能或可能不直接實體或電性彼此接觸的二或多個元件彼此合作或互動。「連接」係用於指示彼此耦合的二或多個元件之間的通訊的建立。
在本文中有時使用以虛線邊框(例如,大虛線、小虛線、點虛線、點線)括起的文字及方塊,以描繪將額外特性加至本發明之實施例的選擇性操作/組件。然而,此種符號不應用於表示僅有該等選項或選擇性操作/組件,且/或具有實邊框的區塊在本發明的特定實施例中不係選擇性的。
下文描述的本發明實施例界定將供NVRAM使用之階層記憶體次系統組織致能的平台組態。NVRAM在記憶體 階層中的使用也致能新用途,諸如,擴展開機空間及大量儲存器實施,如下文所詳細描述的。
圖1係描繪使用在平台儲存階層的一或多個層級中之可位元組定址不變性隨機存取記憶體(NVRAM)130的電腦系統100。術語「平台儲存階層」在本文中係指由電腦系統100使用之用於儲存資料、指令、狀態、及其他持久及非持久資訊的全部儲存媒體。在一實施例中,可用可組態方式將電腦系統100中的所有持久儲存器併入一NVRAM 130中。此外,可將NVRAM 130的特定部位分配為用於系統記憶體的DRAM替代物。NVRAM 130的多變性有助於使技術從具有在持久區塊導向檔案系統上操作之作業系統(OS)的習知平台變遷至理解全面持久、可位元組定址、單層資料儲存的OS。
在一實施例中,可將NVRAM 130組態成將在典型平台儲存階層中的角色實施為下列一或多者:快取、系統記憶體(也稱為主記憶體、主要記憶體、可執行記憶體)、儲存器(也稱為次級儲存器及大量儲存器)、以及韌體記憶體(諸如,開機記憶體(也稱為BIOS快閃記憶體)、可信賴平台模組(TPM)記憶體、及用於儲存其媒體存取控制(MAC)位址的十兆位元乙太網路完整性控制器(NIC)等)。也考慮具有不同角色的平台儲存階層,且NVRAM 130的應用並未受限於上述角色。
NVRAM(例如,NVRAM 130)依據其特徵及/或其在平台儲存階層中的應用可與其他指令及資料記憶體/儲存技 術區分。例如,NVRAM與下列各者不同:1)施用為處理器核心專屬之或為多處理器核心共享之快取的靜態隨機存取記憶體(S RAM);2)施用為處理器內部(例如,在與處理器相同的晶粒上)及/或處理器外部(例如,在與處理器相同或不同之封裝上)的一或多個快取的更高速記憶體(例如,動態隨機存取記憶體(DRAM));3)施用為磁碟儲存器的快閃記憶體/磁碟/光碟;及施用為開機ROM之諸如快閃記憶體或唯讀記憶體(ROM)的記憶體。
在本發明的一實施例中,NVRAM具有下列特徵:1)不變性(即使移除電力,仍維持其內容,與使用在固態硬碟(SSD)中的快閃記憶體相似),並與係依電的SRAM及DRAM不同);2)比諸如SRAM及DRAM之依電記憶體更低的電力消耗;3)隨機存取(也稱為可隨機定址);4)可用比在SSD中發現的快閃記憶體(其僅可每次重寫及抹除「區塊」,NOR快閃記憶體的最小尺寸係64千位元組且NAND快閃記憶體係16千位元組)更低的粒度等級(例如,位元組等級)重寫及抹除;5)可使用為系統記憶體並配置全部或部分的系統位址空間;以及 6)能使用交易協定(支援交易識別符(ID)以區分不同交易,使得此等交易可完全無序的協定)透過匯流排耦合至處理器,並容許以小至足以支援作為系統記憶體的NVRAM之操作的粒度等級存取(例如,諸如,64或128位元組的快取線尺寸)。例如,該匯流排可能係記憶體匯流排(例如,DDR匯流排,諸如、DDR3、DDR4等),在其上運行與常使用之非交易協定相反的交易協定)。作為另一範例,該匯流排可能係在其上正常運行交易協定(原生交易協定)的匯流排,諸如,快捷PCI(PCIE)匯流排、桌面管理介面(DMI)匯流排,或使用交易協定及足夠小之交易酬載尺寸(例如,諸如64或128位元組的快取線尺寸)的任何其他種類的匯流排。
7)下列一或多者:a)比目前不變性記憶體/儲存技術(諸如,快閃記憶體)更快的寫入速度;b)非常高的讀取速度(比快閃記憶體更快並接近或等於DRAM的讀取速度);c)可直接寫入(而非像使用在SSD中的快閃記憶體,在寫入資料前需要抹除(以1s覆寫));及/或d)在故障前有(例如,2或3個)數量級的更高寫入耐久性(比開機ROM及使用在SSD中 的快閃記憶體更多)。
如上文提及的,與必須每次重寫及抹除完整「區塊」的快閃記憶體相反,NVRAM在任何給定實施中的存取粒度等級可能依據特定記憶體控制器及特定記憶體匯流排或與NVRAM耦合之其他種類的匯流排。例如,在將NVRAM 130使用為系統記憶體的部分實施中,雖然固有能力係以位元組粒度存取,因為快取線係記憶體次系統存取記憶體的等級,NVRAM可能以快取線(例如,64位元組或128位元組的快取線)的粒度存取。因此,當將NVRAM使用在記憶體次系統中時,其可能以與使用在相同記憶體次系統中的DRAM(例如,「近端記憶體」)相同的粒度等級存取。即使如此,藉由記憶體控制器及記憶體匯流排或其他種類的匯流排存取NVRAM的粒度等級係小於由快閃記憶體使用的區塊尺寸及I/O次系統的控制器及匯流排之存取尺寸的粒度等級。
可能將NVRAM 130使用為具有足夠短存取時間要求以在處理器上導致些許影響的指令及資料儲存器。此處,程式指令及資料在為處理器執行前,可能從較深的快閃/磁性/光學大量儲存器152載入至NVRAM 130。再者,如下文所詳細描述的,可能將NVRAM 130放置在記憶體匯流排上並可能與依次地與處理器直接通訊的記憶體控制器直接通訊。
用於NVRAM 130的新記憶體技術的存在提供豐富的新可能性。雖然在下文將討論的更多,此等可能性的一部 分將迅速地立即在下文強調。
根據一可能實施,NVRAM 130的作用如同系統記憶體中之習知DRAM技術的完全替代品或補充。在一實施例中,NVRAM 130呈現次級系統記憶體的採用(例如,系統記憶體係如DRAM 140及部分或全部NVRAM 130的組合)。因此,可能將系統記憶體視為具有近端記憶體部分NM 141及遠端記憶體部分FM 142。應理解在不同實施例中,可將近端記憶體使用為記憶體側快取(例如,近端記憶體快取141B)、暫存、及其他與系統記憶體不同的角色。在本文描述的實施例中,NVRAM 130的NM 141部位僅使用為系統記憶體,以簡化討論。
根據部分實施例,NVRAM 130提供NVRAM儲存器,其作用如同習知大量儲存器,例如,快閃/磁性/光學大量儲存器152的完全替代品或補充。此申請案中的術語「習知大量儲存器」係指基於光學、磁性、及/或快閃技術的大量儲存器,諸如,硬碟或快閃記憶體。為簡化此討論,快閃/磁性/光學大量儲存器152也稱為習知大量儲存器152。因此,用於計算系統100的不變性大量儲存器可能使用NVRAM、快閃記憶體、磁性儲存器、或彼等的任何組合實施。在NVRAM儲存器150的作用如同習知大量儲存器152之完全替代品的實施例中,不必使用用於可區塊定址儲存器存取的儲存驅動器。將儲存驅動器消耗從儲存器存取移除可增加存取速度並節省電力。在所欲將NVRAM儲存器150對OS及/或應用程式呈現為可區塊存 取且不可與習知大量儲存器152區分的替代實施例中,可使用模擬儲存驅動器以將可區塊存取介面(例如,通用串列匯流排(USB)批量傳輸(BOT)1.0、及序列先進技術附接(SATA)3.0等)曝露至用於存取NVRAM儲存器150的軟體。在部分實施例中,NVRAM 130的可位元組定址能力可為最低階儲存驅動器使用,以移動NVRAM儲存器150的區塊並模擬可區塊存取大量儲存器,而不用承擔I/O介面的成本。
根據部分實施例,NVRAM 130提供BIOS NVRAM 160及TPM NVRAM 170,彼等的作用如同韌體記憶體,諸如,BIOS快閃記憶體162及TPM快閃記憶體172的完全替代品或補充。韌體記憶體常以快閃記憶體技術實施,並常儲存由處理器執行的初始指令(例如,BIOS),以在開機處理期間將關鍵系統組件初始化。韌體記憶體也可儲存由TPM 134使用的系統持久狀態,以保護敏感的系統資訊(例如,加密金鑰)。在一實施例中,將NVRAM 130用於韌體記憶體消除了對第三方快閃記憶體零件的需求,以儲存對系統操作關鍵的碼及資料。
記憶體及儲存裝置的選擇可能取決於使用裝置的平台種類。例如,在個人電腦、平板電腦、筆記型電腦、行動裝置(例如,智慧型手機或PDA)中,不變性大量儲存器可能僅使用NVRAM儲存器150,或使用組合快閃記憶體/磁性儲存器的NVRAM儲存器150實施。在其他實施例中(例如,大型伺服器),不變性大量儲存器可能使用磁性儲 存器(例如,硬碟)或磁性儲存器、快閃記憶體、及NVRAM儲存器150的任何組合實施。在此種情形中,負責儲存器的電腦系統硬體及/或軟體可能實施各種智能型持久儲存配置技術,以用有效或其他有用的方式將持久程式碼及資料的區塊配置在FM 142/NVRAM儲存器150及習知大量儲存器152之間。在部分實施例中,NVRAM 130可能變成晶片外的單獨記憶體/儲存裝置(例如,在處理器晶片外)。在部分實施例中,取代晶片外DRAM 140,DRAM可能用於提供晶片上快取(例如,近端記憶體快取141B)。此等實施例可具體地相關於非常小的平台(例如,智慧型手機或PDA),其中多記憶體類別/技術可能係成本昂貴的,並可將(包括儲存器的)更多電晶體放置在晶片上。
NVRAM 130可能合併「平均抹寫」演算法,以處理在過多次寫入存取後,遠端記憶體級的儲存胞元開始磨損的現象。因為高週期計數區塊最可能以此方式磨損,平均抹寫藉由以低週期計數區塊交換高週期計數區塊的位址將寫入遍佈在遠端記憶體胞元上。須注意多數的位址交換典型地對終端使用者透明,因為其係由硬體、軟體(例如,低階驅動程式或作業系統)、或彼等的組合管理。
在一實施例中,NVRAM 130可用不變性隨機存取記憶體(NVRAM)實施,諸如,PCM,或更具體地說,PCMS(也稱為(PRAM或PCRAM)、雙向通用記憶體(OUM)、(CRAM))。用於遠端記憶體的其他可能技術選擇 包括,但未受限於可位元組定址持久記憶體(BPRAM)、存取級記憶體(SCM)、通用記憶體、Ge2Sb2Te5、可程式化金屬化胞元(PMC)、電阻式記憶體(RRAM)、RESET(非晶)胞元、SET(晶體)胞元、PCME、奧夫辛斯基(Ovshinsky)、鐵電記憶體(也稱為聚合物記憶體及聚(N-乙烯咔唑))、鐵磁記憶體(也以自旋電子學為人所知,SPRAM(自旋傳輸力矩RAM)、STRAM(自旋穿隧RAM)、磁阻、磁性記憶體、以及磁性隨機存取記憶體(MRAM))、以及半導體-氧化層-氮化層-氧化層-半導體(SONOS,也稱為介電記憶體)。
為便於解釋,本申請案的大部分其餘部分有時將「PCM」或「PCMS」稱為NVRAM 130的技術選擇。就此而言,術語NVRAM、PCM、以及PCMS可能在下列討論中互換地使用。然而應認知,如上文討論的,也可能將不同技術用於NVRAM 130。
然後繼續圖1之系統的討論,在部分實施例中,電腦系統100的架構可能包括多個處理器,雖然為了簡明將單一處理器110描繪在圖1中。處理器110可能係包括通用或專用中央處理單元(CPU)、特定應用積體電路(ASIC)、或數位訊號處理器(DSP)之任何種類的資料處理器。例如,處理器110可能係通用處理器,諸如,CoreTM i3、i5、i7、2 Duo及Quad、XeonTM 、或ItaniumTM 處理器,彼等全部由加州聖克拉拉的英特爾公司銷售。或者,處理器110可能來自其他公司,諸如,加州桑尼維爾的ARM Holdings,Ltd、加州桑尼維爾的MIPS Technologies等。 處理器110可能係專用處理器,例如,網路或通訊處理器、壓縮引擎、圖形引擎、共處理器、或嵌入式處理器等。處理器110可能實施在包括在一或多個封裝內的一或多個晶片上。處理器110可能係使用任何數量的處理技術,例如,BiCMOS、CMOS、或NMOS,之一或多個基材的一部分及/或實施在該等基材上。
在一實施例中,處理器110包括積體圖型單元111、其包括用於執行圖型指令的邏輯,諸如,3D或2D圖型指令。雖然本發明的實施例並未受限於任何特定積體圖型單元111,在一實施例中,圖形單元111能執行工業標準圖型指令,諸如,由Open GL及/或Direct X應用程式發展介面(API)(例如,OpenGL 4.1及Direct X 11)指定的指令。
處理器110也可能包括一或多個核心112,雖然為了清楚,將單核心112描繪於圖1中。在許多實施例中,核心112包括內部功能區塊,諸如,一或多個執行單元、引退單元、通用及專用暫存器集等。若核心112係多執行緒或超執行緒的,則也可能將各硬體執行緒視為係「邏輯」核心。依據架構及/或指令集,核心112可能係同質或異質的。例如,部分核心可能係有序的,而其他係無序的。作為另一範例,二或多個核心可能能執行相同指令集,而其他可能僅能執行該指令集的子集或不同指令集。
處理器110也可能包括一或多個快取,諸如可能實施為SRAM及/或DRAM的快取113。在未圖示的許多實施 例中,實施快取113以外的額外快取,使得多級快取存在於核心(等)112中的執行單元及記憶體裝置141及142之間。例如,共享快取單元集可能包括上級快取,諸如,1級(L1)快取、中級快取,諸如,2級(L2)、3級(L3)、4級(L4)、或其他級的快取,最終級快取(LLC)、及/或彼等的不同組合。在不同實施例中,快取113可能以不同方式分配,且在不同實施例中,可能係許多不同尺寸之一。例如,快取113可能係8百萬位元組(MB)快取、16MB快取等。此外,在不同實施例中,快取可能係直接映射快取、全關聯式快取、多路集合關聯式快取、或具有其他種類映射的快取。在包括多核心的其他實施例中,快取113可能包括在所有核心之間共享的一大部位,或可能分割為數個功能分隔位元片(例如,一核心一位元片)。快取113也可能包括在所有核心之間共享的一部位,以及每核心之功能分隔位元片的數個其他部位。在一實施例中,快取113可能包括DRAM近端記憶體快取141B。
處理器110也可能包括本地代理器114,其包括協調及操作核心(等)112的此等組件。本地代理器單元114可能包括,例如,電源控制單元(PCU)及顯示單元。PCU可能係或包括用於調整核心(等)112及積體圖型單元111之電源狀態所需要的邏輯及組件。顯示單元用於驅動一或多個外部連接的顯示器。
在部分實施例中,處理器110包括積體記憶體控制器(IMC)131,以提供用於與記憶體及儲存次系統180通訊的 介面。更具體地說,在一實施例中,IMC 131包含用於從DRAM裝置140讀取、寫入、及復新所需的邏輯。IMC 131可在與處理器110相同的晶片上,或在連接至處理器110的分離晶片及/或封裝上。
在部分實施例中,處理器110包括耦合至IMC131的I/O次系統115。I/O次系統115致能處理器110及下列串聯或並聯I/O裝置之間的通訊:一或多個網路136(諸如,區域網路、廣域網路、或網際網路)、儲存I/O裝置(諸如,習知大量儲存器152、BIOS快閃記憶體162、TPM快閃記憶體172)、及一或多個非儲存I/O裝置137(諸如,顯示器、鍵盤、及揚聲器等)。I/O次系統115可能包括平台控制器集線器(PCH)(未圖示),其另外包括數個I/O配接卡138及其他I/O電路,以提供對儲存及非儲存I/O裝置及網路的存取。為完成此,I/O次系統115可能對每個使用的I/O協定具有至少一積體I/O配接卡138。I/O次系統115可在與處理器110相同的晶片上,或在連接至處理器110的分離晶片及/或封裝上。
I/O配接卡138將使用在處理器110內的主通訊協定轉換為與特定I/O裝置相容的協定。針對習知大量儲存器152,可能為I/O配接卡138轉換的部分協定包括週邊組件互連(PCI)-Express 3.0、通用串列匯流排(USB)3.0、序列先進技術附接(SATA)3.0、小型電腦系統介面(SCSI)、平價磁碟冗餘陣列(RAID)、及1394「火線」等。針對BIOS快閃記憶體162,可能為I/O配接卡138轉換的部分 協定包括串列週邊介面(SPI)、微傳線等。此外,可能有一或多個無線協定I/O配接卡。無線協定的範例係藍牙4.0、IEEE 802.11-為基的無線協定、以及蜂巢式協定等。
在部分實施例中,I/O次系統115也包括管理引擎(ME)135,其係容許系統管理者監視、維護、更新、升級、及修復電腦系統100的微處理器。在一實施例中,系統管理者可能經由網路136透過ME 135遠端組態電腦系統100。在一實施例中,該組態可能儲存在處理器110內的解碼表133中。解碼表133可為IMC 131及I/O次系統115讀取,然後彼等決定資料存取請求應導向何處。
在部分實施例中,處理器110包括可信賴平台模組(TPM)134,以控制對系統持久狀態的存取,諸如,安全資料、加密金鑰、及平台組態資訊等。在一實施例中,將此等系統持久狀態儲存在TPM NVRAM 170中,其可使用PCM-為基的記憶體實施,諸如,PCMS。在圖1所示的實施例中,TPM NVRAM 170係NVRAM 130的一部分。
在一實施例中,TPM 134係具有加密功能的安全微控制器。TPM 134具有許多可信賴相關能力:例如,用於確保由TPM保護的資料僅對相同的TPM有效的「封印」能力。TPM 134可使用其加密能力保護資料及(例如,秘密的金鑰)。在一實施例中,TPM 134具有獨特及秘密的RSA金鑰(其基於由Ron Rivest、Adi Shamir、Leonard Adleman發展的RSA演算法產生),其容許認證硬體裝置及平台。例如,TPM 134可驗證尋求存取儲存在電腦系統 100中之資料的系統係預期系統。TPM 134也能回報平台(例如,電腦系統100)的完整性。此容許外部資源(例如,網路上的伺服器)判定該平台的確實性,但不防止使用者對該平台的存取。
應理解電腦系統可將NVRAM 130使用為系統記憶體、大量儲存器、韌體記憶體、及/或其他記憶體及儲存目的,即使其處理器不具有處理器110的所有上述組件,或具有比處理器110更多的組件。
在一實施例中,電腦系統100包括NVRAM控制器132,以控制對NVRAM 130的資料存取。將NVRAM控制器132耦合至IMC 131及I/O次系統115。NVRAM控制器132可從解碼表133讀取組態資料,或者,可依賴從IMC 131及I/O次系統115傳送的解碼結果。在NVRAM 130係以PCMS實施的實施例中,NVRAM控制器132係以與PCMS技術一致的協定實施位元組等級存取的PCMS控制器。雖然IMC 131及NVRAM控制器132可係二分離控制器(如以虛線分離該等二控制器之圖1所示),在部分實施例中,此等二控制器可實施為一組合控制器,以控制對記憶體及儲存器的存取。
在圖1中,將NVRAM控制器132顯示成使用三條個別線連接至FM 142、NVRAM大量儲存器150、以及BIOS NVRAM 160。然而,此不必然意謂著有將NVRAM控制器132連接至NVRAM 130之此等部位的三個個別實體匯流排或通訊通道。更確切地說,在部分實施例中,使 用共同記憶體匯流排或其他種類的匯流排,以將NVRAM控制器132通訊地耦合至FM 142、NVRAM大量儲存器150、以及BIOS NVRAM 160。例如,在一實施例中,圖1中的三條線代表匯流排,諸如,NVRAM控制器132透過其實施交易協定以與NVRAM 130通訊的記憶體匯流排(例如,DDR3、DDR4等)。NVRAM控制器132也可能透過支援原生交易協定的匯流排與NVRAM 130通訊,諸如,快捷PCI(PCI-E)匯流排、桌面管理介面(DMI)匯流排、或使用交易協定之任何其他種類的匯流排。
圖2係描繪根據本發明的一實施例之電腦系統200的方塊圖,其將NVRAM 130使用為習知大量儲存器152及韌體記憶體(例如,BIOS快閃記憶體162及TPM快閃記憶體172)的完全替代品。電腦系統200包括耦合至記憶體及儲存次系統280的處理器210。在此實施例中,記憶體及儲存次系統280僅包括DRAM裝置140及NVRAM 130。如上文所述,NVRAM 130具有包括系統記憶體(FM 142)、大量儲存器(NVRAM儲存器150)、及韌體記憶體(BIOS NVRAM 160及TPM NVRAM 170)的可組態分區。處理器210可與圖1之處理器110相同,除了I/O配接卡238不必包括圖1之用於存取習知大量儲存器及快閃記憶體的所有配接卡138。在此種情形中,負責記憶體及儲存器存取的電腦系統硬體及/或軟體可能實施各種智能型技術,以從NVRAM 130的低延遲、高通量、及強健性獲利(相較於習知快閃記憶體/磁性儲存器,諸如,習知大量儲 存器152、BIOS快閃記憶體162、及TPM快閃記憶體172)。
NVRAM的可組態分區
如之前所述,可將NVRAM 130分區為在平台儲存階層中具有不同角色的多個分區。如上文所述,術語「平台儲存階層」係指為不同目的服務(例如,BIOS儲存器及TPM儲存器)的快取、系統記憶體、大量儲存器、及韌體記憶體。在一實施例中,將存取引導至NVRAM 130之不同分區的機制係經由解碼邏輯。例如,在製造時或在該領域中,電腦系統100可將解碼表133程式化以將NVRAM 130的不同區域標記為系統記憶體、大量儲存器、韌體等。
在圖1及2的實施例中,將NVRAM 130分區為FM 142、NVRAM儲存器150、BIOS NVRAM 160、及TPM NVRAM 170。可將各分區的位址範圍界定在解碼表133中。在一實施例中,當IMC 131接收存取請求時,將該請求的目標位址解碼以揭露是否將該請求導向記憶體或I/O。若其係記憶體請求,IMC 131從目標位址另外判定是否將該請求導向NM 141或FM 142。針對FM 142的存取,IMC 131將該請求前傳至NVRAM控制器132。若將此請求導向至I/O(例如,非儲存及儲存I/O裝置),IMC 131將該請求傳送至I/O次系統115。I/O次系統115另外解碼該位址,以判定該位址是否指向NVRAM儲存器 150、BIOS NVRAM 162、或其他非儲存及儲存I/O裝置。若此位址指向NVRAM儲存器150或BIOS NVRAM 162,I/O次系統115將該請求前傳至NVRAM控制器132。若此位址指向TPM NVRAM 170,I/O次系統115將該請求傳送至TPM 134以執行安全存取。在一實施例中,前傳至NVRAM控制器132的各請求伴隨有屬性(也稱為交易種類),以指示存取種類。在一實施例中,NVRAM控制器132可能針對請求存取種類模仿存取協定,使得平台的其餘部分仍未察覺NVRAM 130在平台儲存階層中實行的多重角色。在替代實施例中,NVRAM控制器132可能對NVRAM 130實行記憶體存取,而與其交易種類無關。已理解解碼路徑可與上述路徑不同。例如,IMC 131可能解碼存取請求的目標位址並判定是否將其導向NVRAM 130。若將其導向NVRAM 130,IMC 131根據解碼表133產生屬性。基於該屬性,IMC 131然後將該請求前傳至合適的下游邏輯(例如,NVRAM控制器132及I/O次系統115),以實行所請求的資料存取。又在另一實施例中,若該對應屬性未從上游邏輯傳送(例如,IMC 131及I/O次系統115),NVRAM控制器132可能解碼該目標位址。可能實施其他解碼路徑。
圖3描繪根據本發明的一實施例之解碼輸入位址並產生指示NVRAM分區之一者的輸出之解碼邏輯330。在一實施例中,輸入位址係指向NVRAM 130內之位置(例如,位元組位置)的實體位址。在一實施例中,該實體位址可 藉由轉換邏輯320從系統位址(例如,由核心113產生的位址)轉換。解碼邏輯330的輸出指示輸入位址所導向的NVRAM 130的分區。在一實施例中,該輸出藉由其對應屬性指示NVRAM分區;例如,00指FM 142、01指NVRAM儲存器150、10指BIOS NVRAM 160、且11指TPM NVRAM 170。已理解屬性可藉由任何數位或類比指示器表示且未受本文描述及顯示的範例限制。另外,解碼邏輯330可將輸入位址映射至比圖3所示之實施例更多或更少的分區。例如,若(根據解碼表133)將NVRAM 130組態成僅包含二分區,解碼邏輯330可將輸入位址映射至該等二分區。
在一實施例中,解碼邏輯330基於儲存在解碼表133中的組態資料解碼輸入位址。在一實施例中,解碼表133針對NVRAM 130中的各分區儲存屬性311、基底位址312、以及長度313。解碼表133可在開機時由BISO建立。例如,BIOS可在開機時讀取儲存在控制狀態暫存器(CSR)310中的組態資料。CSR 310可能包括待組態於NVRAM 130中之各分區的範圍(例如,尺寸)。然後BIOS因此建立解碼表133。
應注意解碼邏輯330係在平台(例如,圖1之電腦系統100或圖2的電腦組件200)內實行之解碼操作的邏輯表示。實施解碼邏輯330的硬體可能在單一功能單元(例如,IMC 131)中或在多功能單元中(例如,IMC 131、I/O次系統115、以及/或NVRAM控制器132的任何組合)。 相似地,轉換邏輯320可能藉由單一功能單元(例如,IMC 131)、藉由多功能單元(例如,IMC 131、I/O次系統115、及/或NVRAM控制器132的任何組合)、或藉由軟體及硬體的組合實施。解碼邏輯330及/或轉換邏輯320也可能在IMC 131、I/O次系統115、及NVRAM控制器132外側或耦合至彼等。為簡化說明,圖1及2的實施例顯示IMC 131、I/O次系統115、及NVRAM控制器132各者具有至解碼表133的連接,以指示彼等全部可能從解碼表133讀取以實行解碼邏輯330之功能的可能性。然而,應理解在替代實施例中,僅將IMC 131、或將IMC 131及I/O次系統115連接至解碼表133,以實行解碼邏輯330的功能。
在一實施例中,CSR 310可藉由硬體熔絲(例如,僅可程式化一次的可程式化唯讀記憶體(PROM))、可重程式化ROM(例如,可電抹除可程式化ROM(EEPROM))、或其他可程式化硬體實施。在解碼表133可重程式化的實施例中,解碼表133中的此等位址範圍可藉由如圖4之實施例描述地藉由授權伺服器遠端程式化。
圖4係描繪根據本發明的一實施例之組態NVRAM內的分區之方法400的流程圖。為簡化討論,將參考圖1的實施例描述圖4之流程圖的操作。然而,應理解該流程圖的操作可藉由圖2的實施例,及顯示於此等圖式中之實施例以外的實施例實行。此外,參考圖1及2討論的實施例可實行與參考圖4的流程圖討論之操作不同的操作。
參考圖1及4,在一實施例中,電腦系統100經由網路連接向授權伺服器請求用於組態NVRAM 130內之分區的組態資料(方塊410)。授權伺服器可能為電腦系統100的製造商、第三方供應商、或持有組態NVRAM 130之權利的任何供應商所控制或擁有。經由網路連接,電腦系統100(例如,ME 135)可將其憑據(例如,安全地儲存在TMP NVRAM 170中的加密金鑰)傳送至授權伺服器(方塊420)。在授權伺服器認證電腦系統100後,其回傳包括請求組態資料的已簽署訊息(方塊430)。在接收該已簽署訊息後,MC 135可根據接收的位址範圍設定CSR 310(方塊440),使得解碼表133可在開機時程式化。然後電腦系統100重開機(方塊450)。在開機期間,電腦系統100的BIOS將解碼表133程式化(方塊460)。BIOS也將組態傳播至OS;例如,BIOS可建立包含供OS讀取之組態資料的許多表格(方塊470)。
在電腦系統100完全開機之後並在接收具有NVRAM實體位址的資料存取請求時,解碼邏輯330基於在解碼表133中的組態資料解碼在該請求中指示的位址(方塊480)。解碼邏輯330產生指示NVRAM 130中的分區之一者的屬性(方塊490)。基於該屬性,解碼邏輯330將該請求前傳至合適的下游邏輯(例如,I/O配接卡138、及TPM 134等)(方塊495)。該請求可能與指示NVRAM分區之屬性的交易種類前傳。在一實施例中,該下游邏輯可基於該屬性判定用於存取該分區的適當協定。
在一實施例中,在方塊470產生的此等表格之一者係親近表,其儲存各相關記憶體裝置的邏輯距離。該親近表容許核心層OS碼在以不同技術,諸如,DRAM(NM 141)及NVRAM(FM 142)實施之系統記憶體的不同分區之間區分,並因此容許合適的OS頁面遷移政策。例如,可將NM 141用於頻繁存取的資料,以在電腦系統100的常規操作期間吸收部分寫入。
在一實施例中,該親近表包括記憶體位址範圍的邏輯距離,其中該邏輯距離指示實際實體距離、領域、存取速度/時間、或任何其他度量,以代表邏輯記憶體的存取時間或距離。基於該親近表中的資訊,OS可將記憶體存取導向不同的記憶體位置。例如,OS可基於區域記憶體的邏輯距離,對操作產生執行緒排程決定及資源配置。可能使用許多考量,諸如,操作的時間臨界本質,判定所使用的區域記憶體。例如,當DRAM在親近表中以比FM 141更短的邏輯距離表示時,可將極度時間臨界的操作排程為使用DRAM(NM 141)。在該變化中,可將非時間密集之背景執行的執行緒排程為使用FM 141,以確保NM 142可用於其他操作。可能將其他考量,諸如,區域記憶體的尺寸、待執行或實行之執行緒或操作的種類,或基於存取距離或速度選擇記憶體的任何其他已知考量用於判定所使用的區域記憶體。
移除儲存存取中的儲存驅動器消耗
如上文所述,NVRAM 130係不變及可隨機存取的。其可用位元組粒度存取,且其存取延遲接近今日的依電性RAM。當此不變性記憶體提供接近於習知儲存媒體的高容量時,其可在平台中取代附接至不變性大量儲存裝置的習知I/O。
如圖2所示,用於系統記憶體(例如,FM 142)及NVRAM儲存器150的NVRAM 130可使平台儲存階層中之二不同層級的角色之間的界線模糊。因為FM 142及NVRAM儲存器150二者均在相同的NVRAM 130中,可將彼等視為一連續分區,並可經由相同的記憶體互連以相同方式存取。因此,NVRAM儲存器150的使用可移除習知I/O資料存取的負擔。亦即,不再需要用於儲存器存取的I/O協定,諸如,SATA、及PCI-E等。結果,在部分實施例中,可存取NVRAM儲存器150而不需要實行I/O操作的儲存驅動器,並替代地使用CPU記憶體指令以從儲存器複製至記憶體緩衝器,因此針對OS及應用軟體模擬區塊存取。或者,OS檔案系統可察覺記憶體可定址儲存器(亦即,NVRAM儲存器150),並將NVRAM儲存器150位址空間直接映射至應用程式位址空間。此節省複製的成本及使用在系統中的記憶體量。NVRAM儲存器150在本文中稱為「記憶體可定址」,因為其在實體記憶體位址空間中可直接定址,且將記憶體位址使用為運算元的所有指令將使用NVRAM儲存器150的位址工作。
然而,傳統軟體(例如,OS及應用程式)可能仍在儲 存驅動器存在於電腦系統中以實行區塊存取的假設下操作。例如,典型的傳統作業系統將資料視為在大量儲存器中,而不在視為非駐地的系統記憶體中,且在存取該資料時,會觸發頁面錯誤。然後頁面錯誤管理器發訊至儲存驅動器,以將資料帶回系統記憶體。此可藉由模擬區塊儲存器在儲存驅動器中管理。或者,在具有察覺記憶體可定址儲存器之檔案系統的OS中,頁面錯誤管理可能係取代記憶體複製或I/O操作的記憶體映射操作。
由於節省電力及增加儲存器存取速度,移除I/O介面及I/O控制器,以及降低存取成本的利益通常超過軟體修改的成本。本發明的實施例將PCMS使用為該平台中的高效能儲存器,利用其低功率、高容量、不變性、及記憶體模式的特性。本發明的實施例移除習知儲存堆疊I/O路徑,並使儲存器可藉由處理器而定址及快取,而以最低功率實現最快效能。
本發明的實施例以許多層級在軟體及儲存器(藉由NVRAM,諸如,PCMS實施)之間提供介面,其將參考圖5、7、8A、8B、及9於下文描述。顯示在此等圖式中的軟體(例如,OS及應用程式)及硬體操作可藉由圖1及2之處理器110及210的實施例,以及顯示於此等圖式中之實施例以外的實施例執行。此外,參考圖1及2討論的實施例可實行與參考圖5、7、8A、8B、以及9的討論之操作不同的操作。
圖5描繪根據本發明的第一實施例之在軟體及藉由圖 2之NVRAM 130提供的儲存器之間的介面。在此實施例中,IMC 131具有針對軟體將NVRAM 130抽象化為習知不變性大量儲存器(例如,磁碟或快閃記憶體)的額外能力。將IMC 131耦合至可用軟體實施的儲存驅動程式513。IMC 131的作用如同可為儲存驅動程式513區塊定址的習知不變性大量儲存器。電腦系統200將此儲存驅動程式513使用為最低階磁碟驅動程式。在此實施例中,軟體(OS 512及應用程式)可使用NVRAM 130中的資料而無需修改軟體。亦即,對非駐留頁面(不在系統記憶體中的頁面)的資料存取將觸發頁面錯誤並將實行磁碟I/O。
在圖5所示的實施例中,當OS 512啟動儲存I/O時(例如,回應頁面錯誤,以引入未駐留在系統記憶體,諸如,NM 141及FM142中的頁面),其呼叫儲存驅動程式513並提供記憶體位址、儲存器位址、長度、及操作種類(例如,讀或寫)(方塊510)。儲存驅動程式513使用與標準I/O介面/協定,諸如,SATA 3.0、PCI-E 3.0等,不同的介面將此等參數傳訊至IMC 131(方塊520)。該記憶體位址指示與藉由儲存位址指定之儲存位置交換頁面的記憶體位置(在NM 141或FM 142之任一者中)。IMC 131將儲存位址轉換為NVRAM 130中的實體位址(方塊530)。然後NVRAM控制器132(或IMC 131,若其實施用於存取NVRAM 130的協定)將資料從該記憶體位址複製至儲存器位址(若操作為讀取),或將資料從儲存器位址複製至該記憶體位址(若操作為寫入)(方塊540)。
在一實施例中,記憶體位址落在FM 142的位址空間內。在此實施例中,IMC 131也將該記憶體位址轉換為NVRAM 130中的實體位址。然後NVRAM控制器132(或IMC 131,若1MC可直接存取NVRAM 130)藉由在相同的NVRAM內實行記憶體對記憶體複製,在記憶體位址及儲存器位址之間複製資料。在記憶體位址落在NM 141之位址空間內的另一實施例中,複製包含在二記憶體裝置(例如NVRAM 130及DRAM 140)之間的記憶體對記憶體複製。在複製完成後,IMC 131發訊至儲存驅動程式513(方塊550),其依次將指示I/O完成的訊號發訊至OS 512。
圖6A描繪根據本發明之替代實施例的記憶體及儲存次系統680。在此實施例中,記憶體及儲存次系統680使用由OS產生的RAM硬碟650取代NVRAM儲存器150(圖2)。RAM硬碟650的作用如同用於檔案系統660的儲存器。茲參考圖7的流程圖更詳細地描述作為儲存器之RAM硬碟650的使用。NVRAM 130可能包括比圖6A所示的分區更多或更少的分區(例如,可能缺少BIOS NVRAM 160及/或TPM NVRAM 170)。在一實施例中,RAM硬碟650在OS安裝期間組態及格式化,且在經過系統開機後持續存在(與常規硬碟類似)。
圖7描繪根據本發明的第二實施例之在軟體及藉由NVRAM 130提供的儲存器之間的介面。此第二實施例參考圖6A的記憶體及儲存次系統680,其中該「儲存器」係在由OS 712指定為RAM硬碟650(也稱為 「RAMDisk」)之FM 142內的分區。OS 712將RAM硬碟650視為習知不變性大量儲存裝置(例如,硬碟或固態驅動機)。至RAM硬碟650的存取係由核心層驅動程式控制,稱為RAM硬碟驅動程式713,其將標準硬碟驅動程式提交給OS 712,並作為最低階硬碟驅動程式。在此實施例中,軟體(OS 712及應用程式)可使用NVRAM 130中的資料而無需修改軟體。亦即,對非駐留頁面(不在系統記憶體中的頁面)的資料存取將觸發頁面錯誤並將實行磁碟I/O。
在圖7所示的實施例中,當OS 712啟動硬碟I/O時(例如,回應頁面錯誤,以引入未駐留在系統記憶體,諸如,圖6A中的NM 141及FM142中的頁面),其呼叫RAM硬碟驅動程式713並提供記憶體位址、儲存器位址、長度、及操作種類(例如,讀或寫)(方塊710)。該記憶體位址指示與藉由儲存位址指定之儲存位置交換頁面的記憶體位置(在NM 141或FM 142之任一者中)。IMC 131將儲存位址轉換為NVRAM 130中的實體位址(方塊720)。然後NVRAM控制器132(或IMC 131,若其實施用於存取NVRAM 130的協定)將資料從該記憶體位址複製至儲存器位址(若操作為讀取),或將資料從儲存器位址複製至該記憶體位址(若操作為寫入)(方塊730)。
在一實施例中,記憶體位址落在FM 142的位址空間內。在此實施例中,RAM硬碟驅動程式713也將該記憶體位址轉換為NVRAM 130中的實體位址。然後NVRAM 控制器132(或IMC 131,若IMC可直接存取NVRAM 130)藉由在相同的NVRAM裝置內實行記憶體對記憶體複製,在記憶體位址及儲存器位址之間複製資料。在記憶體位址落在NM 141(其作用如同系統記憶體)之位址空間內的另一實施例中,複製包含在二記憶體裝置(例如NVRAM 130及DRAM裝置140)之間的記憶體對記憶體複製。在複製完成後,IMC 131發訊至RAM硬碟驅動程式713(方塊740),其依次將指示I/O完成的訊號發訊至OS 712。
圖8A及8B描繪根據本發明的一實施例之在軟體及藉由參考圖6B的NVRAM 130提供的儲存器之間的介面的第三實施例。圖6B描繪根據本發明的一實施例的記憶體及儲存次系統682。在圖6B顯示的實施例中,在NVRAM 130內的大量儲存器及系統記憶體之間沒有區別。OS(圖8B的OS 850)產生記憶體映射檔案系統,其中FM 142的作用如同用於檔案系統660的儲存器。已理解NVRAM 130可能包括比圖6B所示的分區更多或更少的分區(例如,可能缺少BIOS NVRAM 160及/或TPM NVRAM 170)。
在記憶體映射檔案系統中,可將由應用程式810使用的檔案(且因此係在配置給應用程式810的虛擬位址空間820中)直接映射至NVRAM裝置位址空間840。NVRAM裝置位址空間840中的各位址位置可藉由處理器直接定址,且因此「駐留」在記憶體中。無需觸發頁面錯誤以從儲存器引入頁面,因為OS 850瞭解儲存器與記憶體相 同。在此實施例中,OS 850需要修改以使用NVRAM 130,但可使用應用程式810而無需修改。相反地,在非記憶體映射檔案系統中,應用程式的每個讀/寫均係系統呼叫。若將讀/寫導向至尚未在記憶體中的頁面時,對該頁的存取將包含藉由儲存驅動程式實行的儲存器I/O存取,其遠慢於記憶體存取。
圖8B更詳細地描繪圖8A的實施例。參考圖8A及8B,當應用程式810檔案的頁面821請求讀入存取時(方塊860),當頁面821已在記憶體中映射為頁面841時,OS 850將該請求傳送至記憶體存取硬體(方塊870)。該記憶體存取硬體(例如,IMC 131或IMC 131及NVRAM控制器132的組合)從NVRAM 130取得頁面841並將該頁面前傳至快取830(例如,SRAM或DRAM快取),以減少未來的存取延遲(方塊880)。該記憶體存取硬體然後發訊給OS 850,其依次將提取已完成的訊號發訊給應用程式810。若頁面尚未提取,對頁面的寫入存取可用與讀取相同的方式實行。此外,當應用程式810修改已提取之頁面821時,可實行寫入時複製以在虛擬位址空間820中產生頁面821的寫入複製822。此寫入複製可儲存在快取830中以供未來存取,並可於稍後回寫至NVRAM 130(例如,當快取830已滿且必需產生用於新提取頁面的空間時)。
圖9描繪根據本發明的第四實施例之在軟體及藉由NVRAM 130提供的儲存器之間的介面。此第四實施例參考圖6B的記憶體及儲存次系統682,其中OS及應用程式 (例如,應用程式910)二者需要修改以使用NVRAM 130。儲存器的概念在此實施例中消失。在此實施例中,應用程式910可使用記憶體存取指令管理NVRAM裝置位址空間930。例如,應用程式910可呼叫OS應用程式發展介面集(API)920,以實行memory_allocation、memory_deallocation、memory_read、memory_write等的等效指令。可將此等指令各者導向至NVRAM 130中的特定位址位置。因此,應用程式910擁有管理寫至NVRAM 130之資料的持久存在及最佳寫入管理的責任。
顯示在圖4、5、7、8A、8B、及9之圖式中的技術可使用儲存在非暫時機器可讀或電腦可讀媒體上的指令及資料實施,諸如,非暫時機器可讀或電腦可讀儲存媒體(例如,磁碟;光碟;隨機存取記憶體;唯讀記憶體;快閃記憶體裝置;以及相變記憶體)。
也可能將本發明的實施例提供為電腦程式產品,其可能包括具有可能用於程式化電腦(或其他電子裝置)以實行處理之儲存於其上的指令之非暫時機器可讀媒體。該非暫時機器可讀媒體可能包括,但未受限於軟碟、光碟、CD-ROM、以及磁光碟、ROM、RAM、EPROM、EEPROM、磁性或光學卡、傳播媒體、或適用於儲存電子指令之其他種類的媒體/機器可讀媒體。本發明的實施例也可能作為電腦程式產品下載,其中該程式可能藉由將資料訊號嵌入在載波或其他傳播媒體中經由通訊鏈路(例如,數據機、或網路連接)從遠端電腦(例如,伺服器)轉移至請求電腦(例 如,客戶端)。
當本發明已依次描述在數個實施例中時,熟悉本技術的人士將承認本發明並未受限於所述的該等實施例,可用在隨附之申請專利範圍的精神及範圍內的修改及變化實施。因此將本描述視為說明性的而非限制性的。
100、200‧‧‧電腦系統
110、210‧‧‧處理器
111‧‧‧積體圖型單元
112‧‧‧核心
113、830‧‧‧快取
114‧‧‧本地代理器
115‧‧‧I/O次系統
130‧‧‧不變性隨機存取記憶體(NVRAM)
131‧‧‧積體記憶體控制器(IMC)
132‧‧‧NVRAM控制器
133‧‧‧解碼表
134‧‧‧TPM
135‧‧‧管理引擎(ME)
136‧‧‧網路
137‧‧‧非儲存I/O裝置
138、238‧‧‧I/O配接卡
140‧‧‧晶片外DRAM
141B‧‧‧近端記憶體快取
142‧‧‧遠端記憶體部分
150‧‧‧NVRAM儲存器
152‧‧‧快閃/磁性/光學大量儲存器
160‧‧‧BIOS NVRAM
162‧‧‧BIOS快閃記憶體
170‧‧‧TPM NVRAM
172‧‧‧TPM快閃記憶體
180、280、680、682‧‧‧記憶體及儲存次系統
310‧‧‧控制狀態暫存器(CSR)
311‧‧‧屬性
312‧‧‧基底位址
313‧‧‧長度
320‧‧‧轉換邏輯
330‧‧‧解碼邏輯
400‧‧‧方法
512、712、850‧‧‧OS
513‧‧‧儲存驅動程式
650‧‧‧RAM硬碟
660‧‧‧檔案系統
713‧‧‧RAM硬碟驅動程式
810、910‧‧‧應用程式
820‧‧‧虛擬位址空間
821、841‧‧‧頁面
822‧‧‧寫入複製
840、930‧‧‧NVRAM裝置位址空間
920‧‧‧OS應用程式發展介面集
本發明最好可能藉由參考至用於說明本發明實施例的以下描述及隨附圖式而理解。在該等圖式中:圖1描繪根據本發明的一實施例之使用在平台儲存階層的一或多個層級中之不變性隨機存取記憶體(NVRAM)的電腦系統。
圖2描繪根據本發明的一實施例之使用作為習知不變性大量儲存器及韌體記憶體的完全替代品之NVRAM的電腦系統。
圖3描繪根據本發明的一實施例之解碼輸入位址的解碼邏輯。
圖4描繪根據本發明的一實施例之組態NVRAM裝置內之分區的方法。
圖5描繪根據本發明的第一實施例之在軟體及藉由圖2之NVRAM提供的儲存器之間的介面。
圖6A描繪根據本發明之替代實施例的記憶體及儲存次系統。
圖6B描繪根據本發明之替代實施例的記憶體及儲存 次系統。
圖7描繪根據本發明的第二實施例之在軟體及藉由NVRAM提供的儲存器之間的介面。
圖8A描繪根據本發明的第三實施例之在軟體及藉由NVRAM提供的儲存器之間的介面。
圖8B更詳細地描繪圖8A的實施例。
圖9描繪根據本發明的第四實施例之在軟體及藉由NVRAM提供的儲存器之間的介面。
100‧‧‧電腦系統
110‧‧‧處理器
111‧‧‧積體圖型單元
112‧‧‧核心
113‧‧‧快取
114‧‧‧本地代理器
115‧‧‧I/O次系統
130‧‧‧不變性隨機存取記憶體(NVRAM)
131‧‧‧積體記憶體控制器(IMC)
132‧‧‧NVRAM控制器
133‧‧‧解碼表
134‧‧‧TPM
135‧‧‧管理引擎(ME)
136‧‧‧網路
137‧‧‧非儲存I/O裝置
138‧‧‧I/O配接卡
140‧‧‧晶片外DRAM
141B‧‧‧近端記憶體快取
142‧‧‧遠端記憶體部分
150‧‧‧NVRAM儲存器
152‧‧‧快閃/磁性/光學大量儲存器
160‧‧‧BIOS NVRAM
162‧‧‧BIOS快閃記憶體
170‧‧‧TPM NVRAM
172‧‧‧TPM快閃記憶體
180‧‧‧記憶體及儲存次系統

Claims (17)

  1. 一種用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,包含:藉由電腦系統接收組態資料,該組態資料界定在位元組可重寫及位元組可抹除不變性隨機存取記憶體(NVRAM)中之位址空間的分區,其中該等分區包含實施該電腦系統的平台儲存階層之二不同層級的至少二分區;根據該組態資料編程在耦合至該NVRAM之處理器中的解碼表;及基於該解碼表解碼資料存取請求中的位址;及產生指示該等分區之待存取之一分區的屬性。
  2. 如申請專利範圍第1項的方法,其中該NVRAM包含相變記憶體(PCM)。
  3. 如申請專利範圍第1項的方法,其中該NVRAM包含相變記憶體及開關(PCMS)。
  4. 如申請專利範圍第1項的方法,其中該等分區包括實施系統記憶體的第一分區及實施大量儲存器的第二分區。
  5. 如申請專利範圍第4項的方法,其中該等分區包括實施韌體記憶體的一或多個額外分區。
  6. 如申請專利範圍第1項的方法,其中編程該解碼表的步驟另外包含:經由網路連接向授權伺服器請求該組態資料;傳送憑據至該授權伺服器; 接收由該授權伺服器簽署的該組態資料;根據該組態資料設定狀態暫存器的值;及根據該等狀態暫存器的該等值在該電腦系統重啟時編程該解碼表。
  7. 如申請專利範圍第1項的方法,其中編程該解碼表的步驟另外包含:產生可由該電腦系統之作業系統(OS)存取的關聯表,其中該關聯表容許該OS在使用不同技術實施之系統記憶體的不同部分之間區分。
  8. 一種用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之設備,包含:系統記憶體,其之至少一部分係藉由位元組可重寫及位元組可抹除不變性隨機存取記憶體(NVRAM)的第一分區實施;大量儲存器,其之至少一部分係藉由該NVRAM的第二分區實施;耦合至該NVRAM的處理器;儲存在該處理器內的解碼表,該解碼表可由組態資料編程,以指示該第一分區及該第二分區的尺寸;及在該處理器內的解碼邏輯,以基於該解碼表解碼資料存取請求中的位址,並產生指示該第一分區及該第二分區之待存取之一分區的屬性。
  9. 如申請專利範圍第8項的設備,其中該NVRAM包含相變記憶體(PCM)。
  10. 如申請專利範圍第8項的設備,其中該NVRAM包含相變記憶體及開關(PCMS)。
  11. 如申請專利範圍第8項的設備,其中該等分區包括實施系統記憶體的第一分區及實施大量儲存器的第二分區。
  12. 如申請專利範圍第11項的設備,其中該等分區包括實施韌體記憶體的一或多個額外分區。
  13. 一種用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之系統,包含:系統記憶體,其之第一部分係藉由位元組可重寫及位元組可抹除不變性隨機存取記憶體(NVRAM)的第一分區實施,且其之第二部分係藉由動態隨機存取記憶體(DRAM)實施;大量儲存器,其之至少一部分係藉由該NVRAM的第二分區實施;耦合至該系統記憶體及該大量儲存器的處理器;及儲存在該處理器內的解碼表,該解碼表可由組態資料編程,以指示該第一分區及該第二分區的尺寸;及在該處理器內的解碼邏輯,以基於該解碼表解碼資料存取請求中的位址,並產生指示該第一分區及該第二分區之待存取之一分區的屬性。
  14. 如申請專利範圍第13項的系統,其中該NVRAM包含相變記憶體(PCM)。
  15. 如申請專利範圍第13項的系統,其中該NVRAM 包含相變記憶體及開關(PCMS)。
  16. 如申請專利範圍第13項的系統,其中該等分區包括實施系統記憶體的第一分區及實施大量儲存器的第二分區。
  17. 如申請專利範圍第16項的系統,其中該等分區包括實施韌體記憶體的一或多個額外分區。
TW101130432A 2011-09-30 2012-08-22 用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,設備及系統 TWI468938B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/054404 WO2013048483A1 (en) 2011-09-30 2011-09-30 Platform storage hierarchy with non-volatile random access memory having configurable partitions

Publications (2)

Publication Number Publication Date
TW201337556A TW201337556A (zh) 2013-09-16
TWI468938B true TWI468938B (zh) 2015-01-11

Family

ID=47996214

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101130432A TWI468938B (zh) 2011-09-30 2012-08-22 用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,設備及系統

Country Status (5)

Country Link
US (1) US20130275661A1 (zh)
EP (1) EP2761468B1 (zh)
CN (1) CN103946810B (zh)
TW (1) TWI468938B (zh)
WO (1) WO2013048483A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI663542B (zh) * 2016-09-20 2019-06-21 東芝記憶體股份有限公司 Memory system

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2761469B1 (en) * 2011-09-30 2019-11-13 Intel Corporation Non-volatile random access memory (nvram) as a replacement for traditional mass storage
EP3364304B1 (en) 2011-09-30 2022-06-15 INTEL Corporation Memory channel that supports near memory and far memory access
WO2013048491A1 (en) 2011-09-30 2013-04-04 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
CN103975287B (zh) 2011-12-13 2017-04-12 英特尔公司 使用非易失性随机存取存储器的服务器中的增强系统睡眠状态支持
US9958926B2 (en) * 2011-12-13 2018-05-01 Intel Corporation Method and system for providing instant responses to sleep state transitions with non-volatile random access memory
WO2013095465A1 (en) 2011-12-21 2013-06-27 Intel Corporation High-performance storage structures and systems featuring multiple non-volatile memories
KR101572403B1 (ko) 2011-12-22 2015-11-26 인텔 코포레이션 메모리 채널 셧다운에 의한 전력 절약
CN104704569B (zh) * 2012-12-19 2017-11-14 慧与发展有限责任合伙企业 Nvram路径选择
US20140229654A1 (en) * 2013-02-08 2014-08-14 Seagate Technology Llc Garbage Collection with Demotion of Valid Data to a Lower Memory Tier
US9678689B2 (en) 2013-05-29 2017-06-13 Microsoft Technology Licensing, Llc Storage systems and aliased memory
US9244839B2 (en) * 2013-07-26 2016-01-26 Intel Corporation Methods and apparatus for supporting persistent memory
US9558124B2 (en) * 2013-11-08 2017-01-31 Seagate Technology Llc Data storage system with passive partitioning in a secondary memory
US10331457B2 (en) * 2014-01-22 2019-06-25 Hewlett-Packard Development Company, L.P. Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region
JP5741722B1 (ja) * 2014-01-28 2015-07-01 日本電気株式会社 情報処理装置、及び、情報処理方法
US10824342B2 (en) 2014-02-28 2020-11-03 Hewlett Packard Enterprise Development Lp Mapping mode shift between mapping modes that provides continuous application access to storage, wherein address range is remapped between said modes during data migration and said address range is also utilized bypass through instructions for direct access
WO2016033539A1 (en) * 2014-08-29 2016-03-03 Memory Technologies Llc Control for authenticated accesses to a memory device
WO2016093813A1 (en) * 2014-12-10 2016-06-16 Hewlett Packard Enterprise Development Lp A multi-tier security framework
WO2016122491A1 (en) * 2015-01-28 2016-08-04 Hewlett-Packard Development Company, L.P. Page cache in a non-volatile memory
US10303235B2 (en) * 2015-03-04 2019-05-28 Qualcomm Incorporated Systems and methods for implementing power collapse in a memory
US10204047B2 (en) 2015-03-27 2019-02-12 Intel Corporation Memory controller for multi-level system memory with coherency unit
WO2016159930A1 (en) 2015-03-27 2016-10-06 Hewlett Packard Enterprise Development Lp File migration to persistent memory
US10684954B2 (en) 2015-04-02 2020-06-16 Hewlett Packard Enterprise Development Lp Page cache on persistent memory
US10387259B2 (en) 2015-06-26 2019-08-20 Intel Corporation Instant restart in non volatile system memory computing systems with embedded programmable data checking
US10073659B2 (en) 2015-06-26 2018-09-11 Intel Corporation Power management circuit with per activity weighting and multiple throttle down thresholds
US9886194B2 (en) * 2015-07-13 2018-02-06 Samsung Electronics Co., Ltd. NVDIMM adaptive access mode and smart partition mechanism
US10108549B2 (en) 2015-09-23 2018-10-23 Intel Corporation Method and apparatus for pre-fetching data in a system having a multi-level system memory
US10185501B2 (en) 2015-09-25 2019-01-22 Intel Corporation Method and apparatus for pinning memory pages in a multi-level system memory
US10261901B2 (en) 2015-09-25 2019-04-16 Intel Corporation Method and apparatus for unneeded block prediction in a computing system having a last level cache and a multi-level system memory
US9792224B2 (en) 2015-10-23 2017-10-17 Intel Corporation Reducing latency by persisting data relationships in relation to corresponding data in persistent memory
US10241683B2 (en) 2015-10-26 2019-03-26 Nxp Usa, Inc. Non-volatile RAM system
US10033411B2 (en) 2015-11-20 2018-07-24 Intel Corporation Adjustable error protection for stored data
US10095618B2 (en) 2015-11-25 2018-10-09 Intel Corporation Memory card with volatile and non volatile memory space having multiple usage model configurations
US9747041B2 (en) 2015-12-23 2017-08-29 Intel Corporation Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device
US10007606B2 (en) 2016-03-30 2018-06-26 Intel Corporation Implementation of reserved cache slots in computing system having inclusive/non inclusive tracking and two level system memory
US10185619B2 (en) 2016-03-31 2019-01-22 Intel Corporation Handling of error prone cache line slots of memory side cache of multi-level system memory
US10747694B2 (en) * 2016-06-07 2020-08-18 Ncorium Multi-level data cache and storage on a memory bus
US10120806B2 (en) 2016-06-27 2018-11-06 Intel Corporation Multi-level system memory with near memory scrubbing based on predicted far memory idle time
US10255202B2 (en) * 2016-09-30 2019-04-09 Intel Corporation Multi-tenant encryption for storage class memory
KR20180061851A (ko) 2016-11-30 2018-06-08 삼성전자주식회사 바이트 액세서블 인터페이스 및 블록 액세서블 인터페이스를 지원하는 스토리지 장치 및 이를 포함하는 전자 시스템
US10359953B2 (en) * 2016-12-16 2019-07-23 Western Digital Technologies, Inc. Method and apparatus for offloading data processing to hybrid storage devices
US10915453B2 (en) 2016-12-29 2021-02-09 Intel Corporation Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures
US10445261B2 (en) 2016-12-30 2019-10-15 Intel Corporation System memory having point-to-point link that transports compressed traffic
CN108733311B (zh) * 2017-04-17 2021-09-10 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
KR102319189B1 (ko) * 2017-06-21 2021-10-28 삼성전자주식회사 스토리지 장치, 이를 포함하는 스토리지 시스템 및 스토리지 장치의 동작 방법
US10304814B2 (en) 2017-06-30 2019-05-28 Intel Corporation I/O layout footprint for multiple 1LM/2LM configurations
US11188467B2 (en) 2017-09-28 2021-11-30 Intel Corporation Multi-level system memory with near memory capable of storing compressed cache lines
US10860244B2 (en) 2017-12-26 2020-12-08 Intel Corporation Method and apparatus for multi-level memory early page demotion
US11099995B2 (en) 2018-03-28 2021-08-24 Intel Corporation Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory
US11055228B2 (en) 2019-01-31 2021-07-06 Intel Corporation Caching bypass mechanism for a multi-level memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200519595A (en) * 2003-12-02 2005-06-16 Hewlett Packard Development Co Data storage system with error correction code and replaceable defective memory
US20060184722A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US20070294496A1 (en) * 2006-06-19 2007-12-20 Texas Instruments Incorporated Methods, apparatus, and systems for secure demand paging and other paging operations for processor devices
TW200821909A (en) * 2006-05-18 2008-05-16 Buffalo Inc Data storage device and data storage method
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68915186T2 (de) * 1988-03-09 1994-08-25 Toshiba Kawasaki Kk Tragbarer elektronischer Apparat.
US5560008A (en) * 1989-05-15 1996-09-24 International Business Machines Corporation Remote authentication and authorization in a distributed data processing system
US5230052A (en) * 1990-10-01 1993-07-20 International Business Machines Corp. Apparatus and method for loading bios into a computer system from a remote storage location
US5519843A (en) * 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
US5822581A (en) * 1995-09-29 1998-10-13 Intel Corporation Method for CMOS configuration information storage and retrieval in flash
US6178541B1 (en) * 1998-03-30 2001-01-23 Lsi Logic Corporation PLD/ASIC hybrid integrated circuit
US6345349B1 (en) * 1998-12-30 2002-02-05 Intel Corporation Combined memory and mass storage device
EP1046998A1 (en) * 1999-04-22 2000-10-25 Texas Instruments Incorporated Digital signal processors with virtual addressing
US7889544B2 (en) * 2004-04-05 2011-02-15 Super Talent Electronics, Inc. High-speed controller for phase-change memory peripheral device
US6292874B1 (en) * 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
US6567897B2 (en) * 2001-03-01 2003-05-20 International Business Machines Corporation Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls
US6925558B2 (en) * 2001-03-29 2005-08-02 Intel Corporation System and method for selecting and loading configuration data into a register through the use of a first and second reset signal
US6867701B2 (en) * 2002-04-18 2005-03-15 International Business Machines Corporation Computer-server rack enclosure fault light diagnostic system
US7269721B2 (en) * 2002-08-13 2007-09-11 Intel Corporation Method, system, and apparatus for booting with remote configuration data
US20050010811A1 (en) * 2003-06-16 2005-01-13 Zimmer Vincent J. Method and system to support network port authentication from out-of-band firmware
US7836248B2 (en) * 2003-07-29 2010-11-16 International Business Machines Corporation Methods and systems for managing persistent storage of small data objects
US7203808B2 (en) * 2004-03-19 2007-04-10 Intel Corporation Isolation and protection of disk areas controlled and for use by virtual machine manager in firmware
US20060090058A1 (en) * 2004-10-26 2006-04-27 Chng Yongpeng Method and data storage system for providing multiple partition support
US8637342B2 (en) * 2005-11-10 2014-01-28 Ovonyx, Inc. Phase change memory with threshold switch select device
US20070143546A1 (en) * 2005-12-21 2007-06-21 Intel Corporation Partitioned shared cache
KR100801014B1 (ko) * 2006-08-21 2008-02-04 삼성전자주식회사 Dos 부트 프로그램을 내장한 디스크를 구비하는 하드 디스크 드라이브와 그를 포함하는 컴퓨터 시스템, 상기 하드 디스크 드라이브의 펌웨어 다운로드 방법 및 그를 포함하는 기록 매체
US7913055B2 (en) * 2006-11-04 2011-03-22 Virident Systems Inc. Seamless application access to hybrid main memory
US8041920B2 (en) * 2006-12-29 2011-10-18 Intel Corporation Partitioning memory mapped device configuration space
US7617340B2 (en) * 2007-01-09 2009-11-10 International Business Machines Corporation I/O adapter LPAR isolation with assigned memory space
EP1965297A1 (en) * 2007-03-02 2008-09-03 Inventec Corporation Memory partitioning method
WO2008131058A2 (en) * 2007-04-17 2008-10-30 Rambus Inc. Hybrid volatile and non-volatile memory device
US8176233B1 (en) * 2008-07-17 2012-05-08 Virident Systems Inc. Using non-volatile memory resources to enable a virtual buffer pool for a database application
KR101573047B1 (ko) * 2009-01-23 2015-12-02 삼성전자주식회사 복합 메모리 장치 및 이를 이용한 i/o 처리 방법
US8291159B2 (en) * 2009-03-12 2012-10-16 Vmware, Inc. Monitoring and updating mapping of physical storage allocation of virtual machine without changing identifier of the storage volume assigned to virtual machine
US20130024602A1 (en) * 2011-07-18 2013-01-24 Dell Products L.P. Universal Storage for Information Handling Systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200519595A (en) * 2003-12-02 2005-06-16 Hewlett Packard Development Co Data storage system with error correction code and replaceable defective memory
US20060184722A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
TW200821909A (en) * 2006-05-18 2008-05-16 Buffalo Inc Data storage device and data storage method
US20070294496A1 (en) * 2006-06-19 2007-12-20 Texas Instruments Incorporated Methods, apparatus, and systems for secure demand paging and other paging operations for processor devices
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI663542B (zh) * 2016-09-20 2019-06-21 東芝記憶體股份有限公司 Memory system

Also Published As

Publication number Publication date
EP2761468A1 (en) 2014-08-06
WO2013048483A1 (en) 2013-04-04
US20130275661A1 (en) 2013-10-17
EP2761468B1 (en) 2019-12-11
TW201337556A (zh) 2013-09-16
EP2761468A4 (en) 2015-06-24
CN103946810B (zh) 2017-06-20
CN103946810A (zh) 2014-07-23

Similar Documents

Publication Publication Date Title
TWI468938B (zh) 用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,設備及系統
US10001953B2 (en) System for configuring partitions within non-volatile random access memory (NVRAM) as a replacement for traditional mass storage
US10055353B2 (en) Apparatus, method and system that stores bios in non-volatile random access memory
US10241943B2 (en) Memory channel that supports near memory and far memory access
TWI528164B (zh) 使用非揮發性隨機存取記憶體支援在伺服器中之增強系統睡眠狀態的方法、設備及系統
GB2514023B (en) System and method for intelligently flushing data from a processor into a memory subsystem
TWI454915B (zh) 實施具有不同操作模式之多階記憶體階層的設備與方法
TWI596474B (zh) 用於系統存取非依電性半導體儲存體作為隨機存取記憶體之方法及半導體晶片
US20130304979A1 (en) Access control for non-volatile random access memory across platform agents
US20130283079A1 (en) Method and system for providing instant responses to sleep state transitions with non-volatile random access memory
US9202548B2 (en) Efficient PCMS refresh mechanism

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees