TWI528164B - 使用非揮發性隨機存取記憶體支援在伺服器中之增強系統睡眠狀態的方法、設備及系統 - Google Patents
使用非揮發性隨機存取記憶體支援在伺服器中之增強系統睡眠狀態的方法、設備及系統 Download PDFInfo
- Publication number
- TWI528164B TWI528164B TW101142624A TW101142624A TWI528164B TW I528164 B TWI528164 B TW I528164B TW 101142624 A TW101142624 A TW 101142624A TW 101142624 A TW101142624 A TW 101142624A TW I528164 B TWI528164 B TW I528164B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- dram
- volatile
- power management
- sleep state
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Description
本發明之實施例係關於一種計算機系統;且更具體來說是關於使用非揮發性隨機存取記憶體增強計算機系統的睡眠狀態支援。
對於現今電腦創新的其中一個限制因素係為記憶體和儲存技術。在傳統計算機系統中,主記憶體通常係藉由動態隨機存取記憶體(DRAM)來實作。即使當沒有記憶體讀取或寫入發生時,DRAM基礎的記憶體仍會消耗電力,因為它必須不斷地再充電內部電容器。DRAM基礎的記憶體係為揮發性的,這意味著一旦移除電源時便遺失儲存在DRAM記憶體中的資料。
最近一項研究顯示伺服器電腦每年使用的電力正以驚人的速率增加。在2005年,伺服器電腦的電力消耗超過12億千瓦/小時,表示佔全球用電量的1%。根據美國能源部所提供的統計,從2000到2007這七年期間當中,電力成本已增加了41%。這些統計凸顯出對電力效率的伺服器電腦之需求。
傳統中,伺服器作業系統(OS)和虛擬機監視器(VMM)由於各種限制,例如延遲時間需求、假使系統故障時保存系統狀態等,通常僅支援系統睡眠狀態的子集。一般來
說,支援之系統睡眠狀態包括S1(待命狀態)和S5(軟關機狀態),如由進階組態與電力介面(ACPI)規格rev.4.0a所定義。在大型的記憶體組態中,對S4(休眠狀態)的支援會由於進入此狀態的高延遲時間而受限。對其他睡眠狀態的支援係不存在的或基於OS、VMM和平台組態而改變。這導致失去了在伺服器平台上節省電力的機會。
相變記憶體(PCM),有時亦稱為PCME、PRAM、PCRAM、雙向通用記憶體、硫族化合物RAM和C-RAM,係為一種非揮發性電腦記憶體類型,其利用硫族化合物玻璃之特有行為。由於通過電流所產生的熱,這種材料能在兩狀態之間進行切換:結晶和非晶。最新型式的PCM能實現兩種額外不同的狀態,有效地使記憶體儲存容量加倍。
例如,PCM能在應用程式中提供更高的效能,其中快速寫入係重要的,部分是因為能更快速地開關記憶體元件,且還因為個別的位元可被改變成1或0而不需一開始抹除格的整個區塊(如同在快閃記憶體(「快閃」)的情況下)。PCM的高效能使它非常有可能有益於非揮發性記憶體角色,其目前受到記憶體存取時序的效能限制。
另外,當PCM裝置隨著使用而受損時,其受損速度會比快閃記憶體還慢得多。PCM裝置可生存約為1億個寫入週期。PCM壽命會受到如由於在程式化、金屬(和其
他材料)移動期間的GeSbTe(GST)熱膨脹之退化的機制、及其他機制的限制。
一種方法,包含:藉由一計算機系統中的電源管理韌體攔截由該計算機系統之一作業系統啟動之用於進入一睡眠狀態的一請求,該計算機系統包含耦接一動態隨機存取記憶體(DRAM)的一處理器和一非揮發性隨機存取記憶體(NVRAM),該NVRAM可被該處理器再寫位元組和抹除位元組,其中該DRAM對該計算機系統提供部分的系統位址空間;將資料從該DRAM複製到該NVRAM、將部分的該系統位址空間從該DRAM映射至該NVRAM、並在該計算機系統轉換至該睡眠狀態時關閉給該DRAM的電源;及一旦發生一喚醒事件,便對該計算機系統將控制從該電源管理韌體回傳至該作業系統,以在該作業系統不知部分的該系統位址空間已被映射至該NVRAM的情況下能回復工作狀態操作。
一種設備,包含:一處理器,在一計算機系統中;一非揮發性隨機存取記憶體(NVRAM),耦接該處理器,該NVRAM可被該處理器再寫位元組和抹除位元組;及電源管理模組,耦接該處理器、該NVRAM及一動態
隨機存取記憶體(DRAM),其中該DRAM對該計算機系統提供部分的系統位址空間,該電源管理模組係用來攔截由該計算機系統之一作業系統啟動之用於進入一睡眠狀態的一請求、將資料從該DRAM複製到該NVRAM、將部分的該系統位址空間從該DRAM映射至該NVRAM、並在該計算機系統轉換至該睡眠狀態時關閉該DRAM,且一旦發生一喚醒事件,便將控制回傳至該作業系統,使得在該作業系統不知部分的該系統位址空間已被映射至該NVRAM的情況下計算機系統能回復工作狀態操作。
一種系統,包含:一處理器,在一計算機系統中;一非揮發性隨機存取記憶體(NVRAM),耦接該處理器,該NVRAM可被該處理器再寫位元組和抹除位元組;一動態隨機存取記憶體(DRAM),對該計算機系統提供部分的系統位址空間;及電源管理模組,耦接該處理器、該NVRAM和該DRAM,該電源管理模組係用來攔截由該計算機系統之一作業系統啟動之用於進入一睡眠狀態的一請求、將資料從該DRAM複製到該NVRAM、將部分的該系統位址空間從該DRAM映射至該NVRAM、並在該計算機系統轉換至該睡眠狀態時關閉該DRAM,且一旦發生一喚醒事件,便將控制回傳至該作業系統,使得在該作業系統不知部分的該系統位址空間已被映射至該NVRAM的情況下計算機系統能回復工作狀態操作。
在下面說明中,提出了許多具體細節。然而,應了解本發明之實施例能在沒有這些具體細節的情況下實行。在其他情況下,已詳細顯示熟知的電路、結構和技術以不致模糊本說明的理解。在本說明書中參考「一個實施例」、「一實施例」、「一示範實施例」等表示所述之實施例可包括特定特徵、結構、或特性,但每個實施例可不一定包括特定特徵、結構、或特性。此外,上述用詞不一定係指相同的實施例。此外,上述辭彙不一定關於相同實施例。再者,當說明關於一實施例的特定特徵、結構、或特性時,無論是否明確說明,都認為其係落在本領域之熟知技術者的知識範圍內以影響關於其他實施例的上述特徵、結構、或特性。
在下列說明和申請專利範圍中,可使用「耦接」和「連接」及與其衍生之詞。應了解到這些名詞並不打算作為彼此的同義字。「耦接」係用來表示可能或可能並非彼此直接實體或電性接觸的兩個或多個元件會共同運作或彼此互動。「連接」係用來表示在兩個或多個彼此耦接的元件之間建立通訊。
本文中有時候使用括號文字和具有虛線邊界之區塊(例如,大虛線、小虛線、點虛線、點)以繪示對本發明之實施例添加額外特徵的可選操作/元件。然而,上述符號不應被視為意味著這些是僅有的選擇或可選操作/元件,
及/或意味著具有實線邊界的區塊在本發明之某些實施例中不是可選的。
下述本發明之實施例增強了用於計算機系統,尤其是伺服器電腦的系統睡眠狀態。增強系統睡眠狀態提供顯著的省電。在這些伺服器電腦上的現有作業系統在其對系統睡眠狀態支援方面能保持不變。在一實施例中,增強係藉由使用非揮發性隨機存取記憶體(NVRAM)來啟動;例如,相變記憶體(PCM)基礎的記憶體技術。
在一實施例中,本文所述之計算機系統包括NVRAM和動態隨機存取記憶體(DRAM)兩者作為系統記憶體。由於NVRAM係為非揮發性的,因此即便關閉電源仍能保留NVRAM中的資料。儲存在DRAM中的資料能在計算機系統轉換成睡眠狀態之前被複製到NVRAM,允許當系統進入睡眠狀態時能關閉給DRAM的電源。因此,能節省大量的電源。
第1圖係繪示根據本發明之一實施例之提供增強睡眠狀態支援的計算機系統100的方塊圖。在一實施例中,計算機系統100包括耦接DRAM 140及NVRAM 130的處理器110。另外,計算機系統100包括一電源管理(PM)模組210,用來管理用於計算機系統100的睡眠狀態轉換。在一實施例中,PM模組210包括PM韌體230及一些暫存器,如SLP_EN暫存器211和SLP_TYP暫存器212。亦可包括如邏輯及/或記憶體電路的額外元件。作業系統(OS)使用SLP_EN暫存器211和SLP_TYP暫存器212以分別
指出睡眠啟動和睡眠狀態類型。在一實施例中,睡眠狀態類型係根據進階組態與電力介面(ACPI)規格rev.4.0a來定義。
在一實施例中,PM韌體230儲存可被處理器110執行的PM碼以進行睡眠狀態轉換。在另一實施例中,PM韌體230儲存可被位於處理器110內、在耦接處理器110的晶片組中、或計算機系統100中的其他地方之邏輯電路(例如,微控制器、閘、或其他電路)(未顯示)執行的PM碼。一旦偵測一睡眠請求(例如,當OS設定SLP_EN暫存器211時),PM韌體230便將DRAM 140的內容複製到NVRAM 130,並使供應給DRAM 140的電源被關閉。一旦偵測一喚醒事件(例如,當OS設定SLP_EN暫存器211時),PM韌體230便將NVRAM 130中的內容複製回存至DRAM 140。由於NVRAM 130能夠保留跨電源週期的儲存內容,因此在睡眠狀態中能安全地移除供應給DRAM 140的電源而不會遺失資料。
了解如第1圖所示之PM模組210係為用於管理睡眠狀態轉換之電路的邏輯表示。在第1圖之實施例中,PM模組210係位於耦接處理器110的晶片組中。在另一實施例中,PM模組210能位在多於一個的硬體元件上。例如,PM模組210的第一部分(例如,SLP_EN暫存器211和SLP_TYP暫存器212)會位於處理器110或耦接處理器110的I/O子系統晶片組內,而PM模組210的第二部分(例如,PM韌體230)會位於非揮發性記憶體裝置(例如,
NVRAM 130)內。亦了解在一些其他實施例中,PM韌體230的功能性能以硬體、軟體、韌體、或以上之組合來實作。硬體、軟體、和韌體可位於相同硬體元件上、或在不同硬體元件中。將參考第2圖來詳細說明這些替代實施例。
本發明之實施例的一項優點在於其不會對OS產生任何改變。反而,PM韌體230攔截睡眠狀態轉換的正常流量並進行省電操作。此省電還延伸到虛擬機系統,其中計算機系統主控多個虛擬機。每個虛擬機能獨立於其他虛擬機地進入睡眠狀態。PM韌體230能為每個虛擬機攔截睡眠狀態轉換的正常流量,而對系統中的虛擬機監視器(VMM)不會產生任何改變。在下列說明中,「OS」之詞係用來說明負責系統資源分配的系統軟體。了解在虛擬機系統中,在下列說明中的「OS」之詞能以「VMM」替換。
第2圖係繪示在一或多層平台儲存階層中使用位元組可定址NVRAM 130之計算機系統200的方塊圖。本文中「平台儲存階層」之詞係指計算機系統200所使用之用於儲存資料、指令、狀態、及其他永久性和非永久性資訊的整個儲存媒體。在一實施例中,計算機系統200中的所有永久性儲存能以可組態方式合併至一個NVRAM 130中。另外,NVRAM 130的一些部分能被分配為用於系統記憶體的DRAM替換。NVRAM 130的多樣性促進從具有運作在永久性區塊導向檔案系統上的OS之傳統平台移動至了
解完全永久性、位元組可定址、單級資料儲存之OS的技術。
在一實施例中,NVRAM 130能配置以實作在典型平台儲存階層中的角色作為下列之一或多者:快取、系統記憶體(亦稱為主記憶體、主要記憶體、可執行記憶體)、儲存器(亦稱為次要儲存器和大量儲存器)、及韌體記憶體(例如開機記憶體(亦稱為BIOS快閃)、可信賴平台模組(TPM)記憶體等)。亦設想具有不同角色的平台儲存階層且NVRAM 130的應用不以上述角色為限。
NVRAM 130在其平台儲存階層中的特徵及/或應用方面不同於其他指令和資料記憶體/儲存技術。例如,NVRAM 130不同於:1)靜態隨機存取記憶體(SRAM),應用作為專用於處理器核心或被多個處理器核心共享的快取;2)較高速度記憶體(例如,動態隨機存取記憶體(DRAM)),應用作為處理器內部(例如,在與處理器相同的晶粒上)及/或處理器外部(例如,在與處理器相同或不同的封裝上)的一或多個快取;3)快閃記憶體/磁碟/光碟,應用作為驅動儲存器;及如快閃記憶體或應用作為開機ROM之唯讀記憶體(ROM)的記憶體。
本發明之一實施例中的NVRAM(例如,NVRAM 130)具有下列特性:
1)非揮發性(即使移除電源仍維持其內容,類似於使用在固態硬碟(SSD)中的快閃記憶體,而不同於為揮發性的SRAM和DRAM);2)比如SRAM和DRAM更低的電力消耗;3)隨機存取(亦稱為隨機可定址);4)以比在SSD中發現的快閃更低層級的粒度(例如,位元組層級)可再寫和可抹除(其僅能以最小時間之用於NOR快閃的64K位元組大小和用於NAND快閃的16K位元組可再寫和抹除一「區塊」);5)可作為系統記憶體並分配所有或部分的系統位址空間;6)能夠使用交易協定(支援交易識別符(ID)以區別不同的交易,使得那些交易能完成亂序的協定)在匯流排上耦接處理器,並允許以夠小的粒度層級來存取以支援作為系統記憶體的NVRAM之操作(例如,如64或128位元組的快取線大小)。例如,匯流排可以是於其上運作交易協定而不是正常使用的非交易協定的記憶體匯流排(例如,如DDR3、DDR4等的DDR匯流排)。作為另一實例,匯流排可以是於其上正常運作交易協定(固有交易協定)的匯流排,例如PCI快捷(PCIE)匯流排、桌上管理介面(DMI)匯流排、或利用交易協定和足夠小之交易負載大小(例如,如64或
128位元組的快取線大小)的任何其他匯流排類型;及7)下列之一或多者:a)比目前非揮發性記憶體/儲存技術更快的寫入速度(例如快閃);b)極高的讀取速度(比快閃更快且接近或等同於DRAM讀取速度);c)直接可寫(而非需要在寫入資料之前抹除(用1覆寫),就像使用在SSD中的快閃記憶體);及/或d)比失敗之前(比使用在SSD中之開機ROM和快閃)更高的寫入耐久性之量級(例如,2或3)。
如上所述,對照於必須一次再寫和抹除完整「區塊」的快閃記憶體,以任何特定實作來存取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 141A和遠記憶體部分FM 142。了解在不同實施例中,近記憶體能當作記憶體端快取、高速暫存記憶體、及其他不同於系統記憶體的角色。
根據一些實施例,NVRAM 130提供NVRAM儲存,其當作傳統大量記憶體(例如快閃/磁性/光學大量儲存器152)的全部替換或補充。在本說明書中的「傳統大量儲存
器」之詞係指基於光學、磁性及/或快閃技術的大量儲存器,如磁碟和快閃記憶體。為了簡單說明,快閃/磁性/光學大量儲存器152亦稱為傳統大量儲存器152。因此,用於計算機系統200的非揮發性大量儲存器可使用NVRAM、快閃記憶體、磁性儲存器、或以上之任何組合來實作。在NVRAM儲存器150當作傳統大量儲存器152之全部替換的實施例中,沒有必要使用用於區塊可定址儲存存取的儲存驅動程式。從儲存存取移除儲存驅動程式負擔會增加存取速度並節省電力。在希望NVRAM儲存器150像是如區塊可存取且可與傳統大量儲存器152區別之OS及/或應用程式的其他實施例中,能使用模擬儲存驅動程式來使區塊可存取介面(例如,通用序列匯流排(USB)巨量型傳輸(BOT)1.0、序列先進技術附件(SATA)3.0等)接觸用來存取NVRAM儲存器150的軟體。意即,儲存驅動程式能使用NVRAM 130的位元組可定址性以移動NVRAM儲存器150的區塊並模擬區塊可存取大量儲存器而不會在這些其他實施例中產生I/O介面的成本。
根據一些實施例,NVRAM 130提供韌體記憶體。在第2圖之實施例中,僅顯示BIOS NVRAM 160和TPM NVRAM 170。了解亦能包括其他韌體分區。這些韌體分區係當作如BIOS快閃162和TPM快閃172之韌體記憶體的全部替換或補充。韌體記憶體通常與快閃技術一起實作且通常儲存處理器所執行的初始指令(例如,BIOS)以在開機程序期間初始化鍵系統元件。韌體記憶體亦能儲存
TPM 134所使用之系統永久性狀態以保護敏感系統資訊(例如,加密金鑰)。在一實施例中,使用用於韌體記憶體的NVRAM 130移除對第三方快閃部分的需求以儲存對系統操作至關重要的代碼和資料。
應了解NVRAM 130能包括比第2圖所示之更多或更少的分區。例如,NVRAM 130能包括當作永久性記憶體的分區。永久性記憶體係為一種處理器及用於讀取和寫入的I/O可直接位元組定址的記憶體類型;然而,不同於揮發性記憶體,會跨平台電源週期地保留寫入記憶體。在使用快閃裝置或其他非揮發性裝置來儲存BIOS及/或TPM的一些實施例中,可能不必包括BIOS快閃162及/或TPM快閃172作為部分的NVRAM 130。
記憶體和儲存裝置之選擇可取決於其上使用裝置的平台之類型而定。例如,在個人電腦、平板電腦、筆記型電腦、行動裝置(例如,智慧型手機或PDA)中,非揮發性大量儲存器可單獨使用NVRAM儲存器150、或使用結合快閃/磁性儲存器的NVRAM儲存器150來實作。在其他實作(例如,大規模伺服器)中,非揮發性大量儲存器可使用磁性儲存器(例如,硬碟)或磁性儲存器、快閃、及NVRAM儲存器150之任何組合來實作。在這樣的情況下,負責儲存的計算機系統硬體及/或軟體可實作各種智慧型永久儲存配置技術以藉由有效或其他有用的方式來配置FM 142/NVRAM儲存器150與傳統大量儲存器152之間的永久程式碼和資料之區塊。在一些實施例中,
NVRAM 130可成為與晶片隔開(意即,與處理器晶片隔開)的單獨記憶體/儲存裝置。在一些實施例中,替代於或除了晶片外DRAM 140之外,可使用DRAM 140來提供晶片上記憶體(例如,近記憶體141B)。這些實施例特別會與極小的平台相關(例如,智慧型手機或PDA),其中多個記憶體類別/技術可能成本高昂且更多電晶體(包括儲存器)能放在晶片上。
NVRAM 130可結合「平均抹除」演算法以考量在太多寫入存取之後開始抹除在遠記憶體級的儲存格。由於高週期計數區塊最有可能以此方式而磨損,因此平均抹除展開藉由以低週期計數區塊置換高週期計數區塊的位址來寫入遠記憶體格。請注意大多數的位址置換通常對終端用戶係透明的,因為其藉由硬體、軟體(例如,低層級驅動程式或作業系統)、或以上之組合來處理。
在一實施例中,NVRAM 130能以如PCM或尤其是PCMS(亦稱為(PRAM或PCRAM))、雙向通用記憶體(OUM)、(CRAM)的非揮發性隨機存取記憶體來實作。用於遠記憶體之其他可能的技術選擇包括,但不限於位元組可定址永久記憶體(BPRAM)、儲存級記憶體(SCM)、通用記憶體、Ge2Sb2Te5、可程式金屬化單元(PMC)、電阻式記憶體(RRAM)、重置(非晶)格、設定(結晶)格、PCME、奧維辛斯基、鐵電記憶體(亦稱為聚合物記憶體和聚(N-乙烯咔唑))、鐵磁性記憶體(亦稱為自旋電子學、SPRAM(自旋-傳輸轉矩RAM)、STRAM(自旋穿隧RAM)、磁電阻、
磁性記憶體、和磁性隨機存取記憶體(MRAM)、及半導體-氧化物-氮化物-氧化物-半導體(SONOS,亦稱為介電記憶體)。
為了便於說明,本說明書之大多數的其餘部分將有時指「PCM」或「PCMS」作為用於NVRAM 130的技術選擇。由此而論,在下列說明中可替換地使用NVRAM、PCM及PCMS之詞。然而,如上所述,應了解亦可將不同技術用於NVRAM 130。
接著繼續討論第2圖之系統,在一些實施例中,雖然為求簡單起見在第2圖中繪示單一處理器110,但計算機系統200的架構可包括多個處理器。處理器110可以是任何類型的資料處理器,包括通用或專用中央處理單元(CPU)、專用積體電路(ASIC)或數位信號處理器(DSP)。例如,處理器110可以是通用處理器,例如CoreTMi3、i5、i7、2Duo及Quad、XeonTM、或ItaniumTM處理器,上述所有可由美國加州聖克拉拉的Intel公司供應。替代地,處理器110可來自於另一公司,例如美國加州Sunnyvale的ARM公司、美國加州Sunnyvale的MIPS技術等)。處理器110可以是專用處理器,例如網路或通訊處理器、壓縮引擎、圖形處理器、共處理器、內嵌處理器或之類。處理器110可實作於包括在一或多個封裝內的一或多個晶片上。處理器110可以是一或多個基板的一部分及/或可使用一些如BiCMOS、CMOS、或NMOS之處理技術在一或多個基板上實作。
在一實施例中,處理器110包括一整合圖形單元111,其包括用來執行如3D或2D圖形命令之圖形命令的邏輯。儘管本發明之實施例並不限於任何特定的整合圖形單元111,但在一實施例中,圖形單元111能夠執行如Open GL及/或Direct X應用程式編程介面(API)所規範的工業標準圖形命令(例如,OpenGL 4.1及Direct X 11)。
雖然同樣為求簡單起見在第2圖中繪示單一核心112,但處理器110亦可包括一或多個核心112。在許多實施例中,核心112包括內部功能方塊,如一或多個執行單元、引退單元、一組通用和專用暫存器等。若核心112係為多緒程或超緒程,則接著每個硬體緒可同樣被視為「邏輯」核心。就架構及/或指令集而言,核心112可以是同型或不同型的。例如,有些核心可以是有序的,而其他核心是亂序的。如同另一實例,兩個或更多核心也許能夠執行相同的指令集,而其他核心也許僅能夠執行指令集的子集或不同的指令集。
處理器110亦可包括如快取113的一或多個快取,其可實作成SRAM及/或DRAM。在許多未顯示的實施例中,實作出不同於快取113的其他快取,使得多級快取存在於核心112中的執行單元與記憶體裝置141A和142之間。例如,這組的共享快取單元可包括如第1級(L1)快取的上級快取、如第2級(L2)、第3級(L3)、第4級(L4)、或其他級快取的中級快取、最後一級快取(LLC)、及/或以上之不同組合。在不同實施例中,快取113可以不同方式
按比例分配且在不同實施例中可以有許多不同大小之其一者。例如,快取113可以是8百萬位元組(MB)快取、16MB快取等。另外,在不同實施例中的快取可以是直接映射快取、全關聯快取、多路集合關聯快取、或具有另一映射類型的快取。在包括多個核心的其他實施例中,快取113可包括在所有核心之間共享的一個大部分,或可分成幾個獨立的功能部分(例如,用於每個核心的一個部分)。快取113亦可包括在所有核心之間共享的一個部分及為每個核心之獨立的功能部分的幾個其他部分。在一實施例中,快取113可包括當作快取的DRAM NM 141B。
處理器110亦可包括本地代理器114,其包括那些協調和操作核心112的元件。本地代理器單元114可包括例如電源控制單元(PCU)及顯示單元。PCU可以是或可包括用於調節核心112與整合圖形單元111之電源狀態所需的邏輯和元件。顯示單元係用來驅動一或多個外部連接的顯示器。
在一些實施例中,處理器110包括一整合記憶體控制器(IMC)131,用來提供連繫記憶體與儲存子系統280的介面。更具體來說,在一實施例中,IMC 131包含用來讀取、寫入和再新DRAM裝置140所必需的邏輯。IMC 131能在與處理器110相同的晶片上、或在連接處理器110的獨立晶片及/或封裝上。在一些實施例中,處理器110係耦接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之獨立晶片/封裝上(如以表示獨立晶片/封裝250的虛線所示)。
I/O配接器138將在處理器110內所利用的主機通訊協定轉換成與特定I/O裝置相容的協定。關於傳統的大量儲存器152,I/O配接器138可轉換的一些協定包括周邊元件互連(PCI)快捷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,其係為允許系統管理者監控、維持、更新、升級、和修理計算機系統200的微處理器(等效於微控制
器)。在一實施例中,系統管理者能透過ME 135經由網路136遠端地組態計算機系統200。在一實施例中,組態能儲存在處理器110內的解碼表133中。解碼表133能被IMC 131和I/O子系統115讀取,其接著決定應將資料存取請求導向何處。
在一些實施例中,晶片組250包括可信賴平台模組(TPM)134以控制存取系統永久狀態,例如安全資料、加密金鑰、平台組態資訊等。在一實施例中,這些系統永久狀態係儲存在TPM NVRAM 170中,其能以如PCMS之PCM基礎的記憶體來實作。在第2圖所示之實施例中,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能驗證企圖存取儲存在計算機系統200中之資料的系統係為預期系統。TPM 134亦能夠報告平台(例如,計算機系統200)的完整性。這允許外部資源(例如,在一網路上的伺服器)確定平台的可信賴度而不防礙使用者進入平台。在一實施例中,TPM 134包括用來連接NVRAM 130的NVRAM介面。
在一實施例中,ME 135和TPM 134能位於處理器110外部並耦接處理器110的一或多個晶片組(例如,晶片組250)上。這些晶片組組態能適用於伺服器平台。在其他實施例中,ME 135和TPM 134會位在系統單晶片(SOC)組態中的處理器110內。SOC組態可適用於行動平台和其他可攜系統。
應了解計算機系統能為了系統記憶體、大量儲存器、韌體記憶體及/或其他記憶體和儲存目的來利用NVRAM 130,即使其處理器不具有處理器110之所有上述元件,或比處理器110具有更多元件。
在一實施例中,計算機系統200包括用來控制資料存取NVRAM 130的NVRAM介面132。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會是兩個分開的控制器(如在第2圖中以分開兩個控制器的虛線所示),但在一些實施例中,這兩個控制器能實作成一個組合控制器以控制存取記憶體和儲存器。在其他實施例中,NVRAM控制器132能位於NVRAM 130內以控制存取NVRAM記憶體格。在這些替代實施例中,NVRAM介面(未顯示)能設置在處理器晶片上以與NVRAM 130介接。
在第2圖中,顯示NVRAM控制器132使用三條分開的線來連接FM 142、NVRAM大量儲存器150和BIOS NVRAM 160。然而,這不一定意味著有將NVRAM控制器132連接至NVRAM 130的這些部分之三個分開的實體匯流排或通訊通道。反而,在一些實施例中,係使用共同記憶體匯流排或其他類型的匯流排來將NVRAM控制器132通訊地耦接至FM 142、NVRAM大量儲存器150、和BIOS NVRAM 160。例如,在一實施例中,在第2圖中的三條線代表如記憶體匯流排(例如,DDR3、DDR4等)的匯流排,於其上NVRAM控制器132實作與NVRAM 130通訊的交易協定。NVRAM控制器132亦可在支援固有交易協定的匯流排(如PCI快捷(PCI-E)匯流排、桌上管理介面(DMI)匯流排、或利用交易協定之任何其他類型的匯流排)上與NVRAM 130通訊。
在一些實施例中,NVRAM 130能經由採用與處理器間協定相同的協定(例如,HyperTransport 3.0、快速路徑互連(QPI)1.1及其變異等)之高速連結來耦接處理器110。在這些實施例中,NVRAM控制器132能使用為這些高速連結定義的協定與NVRAM 130通訊。
在如第2圖所示的一實施例中,PM韌體230係位於NVRAM 130內。在一些實施例中,PM韌體230能位於BIOS NVRAM 160內。替代地,PM韌體模組230能位於任何可被處理器110存取的非揮發性記憶體中。顯示暫存器SLP_EN 211和SLP_TYPE 212位於晶片組250內(例
如,在I/O子系統115內)。替代地,SLP_EN 211和SLP_TYPE 212能位於任何可被處理器110存取的硬體元件中(例如,在處理器110或其他處理器可存取模組內)。在另一實施例中,計算機系統200能包括硬體(例如,PM硬體236或其他硬體邏輯)、軟體(可被處理器110或其他微控制器執行)、韌體(例如,PM韌體230或其他韌體邏輯)、或以上之組合以管理計算機系統200的睡眠狀態。
已說明了根據本發明之實施例之實作電源管理之平台,接下來說明根據本發明之實施例之進行之電源管理操作以增強系統睡眠狀態。
第3圖係繪示根據本發明之一實施例之映射於DRAM 140與NVRAM 130之間的位址空間之實例的方塊圖。在一實施例中,第2圖之計算機系統200的系統位址空間(或第1圖之計算機系統100)連續地從位址0跨距至位址Max。在此實例中,系統位址空間0-X係由DRAM 140支持,而系統位址空間的高端係由NVRAM 130支持。在計算機系統200轉換成要求保存記憶體內容的睡眠狀態之前,PM韌體230將DRAM 140中的資料複製到NVRAM 130的位址空間(例如,組態成系統記憶體的第2圖之FM 142區域)。在計算機系統200轉換成離開睡眠狀態之後,PM韌體230將NVRAM 130中的資料複製回DRAM 140的位址空間中。由於NVRAM 130的容量通常遠遠大於DRAM 140的容量,因此NVRAM 130能輕易地容納DRAM 140的所有內容而不會遺失任何資料。
在睡眠狀態轉換期間將資料從DRAM複製到NVRAM的機制不但節省電力,而且還提高記憶體內容的可靠度。因為DRAM內容被複製到NVRAM 130,因此能在睡眠狀態期間關閉DRAM 140。同時,亦能安全地關閉巡查糾錯而不會遺失任何資料。巡查糾錯通常在背景中進行以驗證記憶體內容的正確性;例如,藉由使用錯誤校正碼。在進入如S1或S3的睡眠狀態之具有DRAM記憶體的傳統系統中,關閉巡查糾錯。若系統留在睡眠狀態中一段延長的時間,則有些資料可能會遺失。透過如本文所述地將DRAM資料複製到NVRAM 130中,由於NVRAM 130係非揮發性的,因此不必巡查糾錯。於是,資料在NVRAM 130中能比在DRAM 140中保留一段更長的時間。
應了解使用PM模組210來管理睡眠狀態轉換係獨立於記憶體和儲存子系統280的組態。更具體來說,無論記憶體和儲存子系統280是否比第2圖所示包括更多的記憶體裝置,及/或在NVRAM 130內是否比第2圖所示包括更多或少數的分區,計算機系統200仍能進行本文所述之電源管理技術。在下列說明中,計算機系統200的這些替代實施例係統稱為「計算機系統200的變化」。第4A圖係繪示根據本發明之一實施例之管理轉換成睡眠狀態的方法400之流程圖。第4B圖係繪示根據本發明之一實施例之管理轉換離開睡眠狀態的方法450之流程圖。方法400和450能由如前面所述的第1圖之計算機系統100、第2圖之計算機系統200或其變化執行。為求簡單說明,將參考
第2圖之實施例來說明第4A和4B圖之流程圖的操作。然而,應了解流程圖之操作能由第2圖之實施例、以及除了這些圖示所示以外的實施例進行。另外,參考第2圖所說明的實施例能進行不同於參考第4A和4B圖之流程圖所說明的操作。
為求簡單說明,方法400和450之操作被描述為由PM韌體230進行。然而,了解到這些操作能被硬體(例如,PM硬體236或其他硬體邏輯)、軟體(可被處理器110或其他微控制器執行)、韌體(例如,PM韌體230或其他韌體邏輯)、或以上之組合進行。
在一實施例中,PM韌體230攔截對SLP_EN暫存器211的寫入操作(方塊401)。反應於內部產生事件或外部產生命令而OS能啟動寫入操作。暫時攔截根據本發明之實施例的寫入操作阻止平台硬體處理睡眠狀態轉換。反之,PM韌體230掌管執行流程以進行下述方塊402-405之操作。在一些實施例中,「掌管執行流程」意味著被程式化到PM韌體230中的代碼(例如,指令)被處理器210或硬體電路執行。當PM韌體230掌管執行流程時,OS能知道正被進行的操作。
當OS啟動對SLP_EN暫存器211的寫入操作時,OS亦能將所請求之睡眠類型寫入至SLP_TYPE暫存器212以指定所請求之睡眠狀態。所請求之睡眠狀態指定一睡眠狀態,這要求在睡眠與喚醒狀態之間保存記憶體內容。一旦攔截(亦即,捕集)對SLP_EN暫存器211的寫入操作,PM
韌體230就將DRAM 140位址空間中的內容複製到NVRAM 130(方塊402)。接著關閉供應給DRAM 140的電源(方塊403)。PM韌體230將系統位址空間映射至包含DRAM內容之NVRAM 133的區域(方塊404)。PM韌體230接著發出一命令至SLP_EN暫存器211以將對進入睡眠狀態的請求發送至負責進行睡眠狀態轉換之操作的平台硬體(方塊405)。平台硬體接著處理睡眠狀態轉換(例如,關閉平台裝置和平台),且計算機系統200在沒有供應電源給DRAM 140的情況下進入所請求之睡眠狀態(方塊406)。
接下來,參考第4B圖,發生一喚醒事件。關於一些睡眠狀態(例如,S1和S3),喚醒事件使得處理器110啟動平台硬體和系統軟體。在OS掌管平台之前,PM韌體230攔截喚醒事件(方塊421)並排程一複製回存操作以將DRAM內容從NVRAM 130複製回DRAM 140(方塊422)。PM韌體230接著將控制回傳至OS(方塊423)。在不知被映射至DRAM 140之部分的系統記憶體空間現在被映射至NVRAM 130的情況下,OS使用NVRAM 130中的資料而不使用DRAM 140來繼續運作。一旦完成方塊422圖之複製回存操作,就觸發一韌體事件(方塊424)。在使用硬體(例如,PM硬體236)來管理睡眠狀態轉換的實施例中,觸發一硬體事件而非一韌體事件。反應於事件,PM韌體230將系統位址空間(其在方塊404中被映射至NVRAM 130)再映射至DRAM 140(方塊425)。計算機系統200接
著回到工作狀態,其係為在進入睡眠狀態之前的狀態(方塊426)。
在其他實施例中,在方塊421中,PM韌體230在OS掌管平台之前攔截喚醒事件,PM韌體230將DRAM內容從NVRAM 130複製回DRAM 140並接著將控制回傳至OS。
如上所述,本發明之實施例能有益於對如S1和S3沒有任何支援或有限支援的伺服器電腦。本發明之實施例不論是否正請求睡眠狀態,都允許關閉供應給系統記憶體之DRAM部分的電源。DRAM中的資料會藉由使用NVRAM來保存。資料複製操作能對OS透明地進行(或在虛擬機器系統中的VMM)。
本發明之實施例亦能使伺服器系統能較佳地利用S4睡眠狀態。在傳統伺服器系統中,DRAM能依照太-位元組的順序。將DRAM內容複製到磁碟並將內容復原回DRAM記憶體會花費數秒的量級。這樣漫長的延遲時間使得S4睡眠狀態在伺服器系統中幾乎無法使用。然而,基於如本文所述之NVRAM支持系統,DRAM的足跡遠遠小於NVRAM,且OS能從睡眠狀態回復而不會立即地需要將資料從NVRAM複製回DRAM。因此,能顯著地減少在傳統伺服器中阻止使用S4的延遲時間。
第4A和4B圖之流程圖所示的技術能使用儲存在如非暫態機器可讀或電腦可讀儲存媒體(例如,磁碟、光碟、隨機存取記憶體、唯讀記憶體、快閃記憶體裝置、及
相變記憶體)之非暫態機器可讀或電腦可讀媒體上的指令和資料來實作。
本發明之實施例亦可提供作為電腦程式產品,其可包括具有儲存於其上之指令的非暫態機器可讀媒體,指令可用來程式化電腦(或其他電子裝置)以進行程序。非暫態機器可讀媒體可包括、但不限於軟碟、光碟、CD-ROM、及磁光碟、ROM、RAM、EPROM、EEPROM、磁性或光學卡、傳播媒體或其他類型之適用於儲存電子指令的媒體/機器可讀媒體。本發明之實施例亦可下載作為電腦程式產品,其中可藉由以載波或其他傳播媒體透過通訊連結(例如,數據機或網路連線)實作的資料信號之方式將程式從遠端電腦(例如,伺服器)轉移至請求電腦(例如,用戶端)。
儘管已就幾個實施例來說明本發明,本領域之熟知技術者將了解到本發明並不限於所述之實施例,能以在所附的申請專利範圍之精神和範圍下的修改和變化來實作。因此,本說明被視為是說明性而不是限制性的。
100‧‧‧計算機系統
110‧‧‧處理器
130‧‧‧NVRAM
140‧‧‧DRAM
210‧‧‧電源管理模組
211‧‧‧SLP_EN暫存器
212‧‧‧SLP_TYP暫存器
230‧‧‧PM韌體
200‧‧‧計算機系統
111‧‧‧整合圖形單元
112‧‧‧核心
113‧‧‧快取
114‧‧‧本地代理器
115‧‧‧I/O子系統
131‧‧‧整合記憶體控制器
132‧‧‧NVRAM介面
133‧‧‧解碼表
134‧‧‧TPM
135‧‧‧管理引擎
136‧‧‧網路
137‧‧‧非儲存I/O裝置
138‧‧‧I/O配接器
141A‧‧‧近記憶體部分NM
142‧‧‧遠記憶體部分FM
141B‧‧‧近記憶體
150‧‧‧NVRAM儲存器
152‧‧‧快閃/磁性/光學大量儲存器
160‧‧‧BIOS NVRAM
162‧‧‧BIOS快閃
170‧‧‧TPM NVRAM
172‧‧‧TPM快閃
236‧‧‧PM硬體
250‧‧‧晶片組
280‧‧‧記憶體與儲存子系統
400‧‧‧方法
401-406‧‧‧方塊
450‧‧‧方法
421-426‧‧‧方塊
本發明可藉由參考下列敘述和用來說明本發明之實施例的附圖來作最佳理解。在圖示中:第1圖繪示根據本發明之一實施例之提供增強睡眠狀態支援的計算機系統。
第2圖繪示根據本發明之一實施例之在一或多層平台
儲存階層中使用非揮發性隨機存取記憶體(NVRAM)的計算機系統。
第3圖繪示根據本發明之一實施例之映射於NVRAM與動態隨機存取記憶體(DRAM)之間的位址之實例。
第4A圖繪示根據本發明之一實施例之進入睡眠狀態的計算機系統之方法。
第4B圖繪示根據本發明之一實施例之離開睡眠狀態的計算機系統之方法。
Claims (28)
- 一種使用非揮發性隨機存取記憶體之增強系統睡眠狀態的方法,包含:藉由一計算機系統中的電源管理韌體攔截由該計算機系統之一作業系統啟動之用於進入一睡眠狀態的一請求,該計算機系統包含耦接一動態隨機存取記憶體(DRAM)的一處理器和一非揮發系統記憶體,該非揮發性系統記憶體可被該處理器再寫位元組和抹除位元組,其中該DRAM對該計算機系統提供部分的系統記憶體位址空間;將資料從該DRAM複製到該非揮發性系統記憶體、將該部分的該系統記憶體位址空間從該DRAM映射至該非揮發性系統記憶體、並在該計算機系統轉換至該睡眠狀態時關閉給該DRAM的電源;及在當發生一喚醒事件時,便將該計算機系統之控制從該電源管理韌體回傳至用於該計算機系統的該作業系統,以在該作業系統不知部分的該系統記憶體位址空間已被映射至該非揮發性系統記憶體的情況下能回復操作離開該非揮發性系統記憶體的工作狀態操作。
- 如申請專利範圍第1項所述之方法,更包含:在當發生該喚醒事件時,該電源管理韌體便攔截該喚醒事件;在將控制回傳至該作業系統之前,該電源管理韌體排程一複製回存操作;及在將控制回傳至該作業系統之後,進行該複製回存操 作以在一背景中將該資料從該非揮發性系統記憶體複製回該DRAM。
- 如申請專利範圍第2項所述之方法,更包含:在當完成該複製回存操作時,該電源管理韌體便接收一韌體事件;及將該部分的該系統記憶體位址空間從該非揮發性系統記憶體再映射回該DRAM。
- 如申請專利範圍第1項所述之方法,更包含:在當發生一喚醒事件時,該電源管理韌體便攔截該喚醒事件;及在將控制回傳至該作業系統之前,將該資料從該非揮發性系統記憶體複製回該DRAM。
- 如申請專利範圍第1項所述之方法,更包含:在進入到該睡眠狀態之前,該電源管理韌體將一命令發出至一睡眠啟動暫存器以將用於進入該睡眠狀態的該請求發送至進行睡眠狀態轉換之操作的該計算機系統之硬體。
- 如申請專利範圍第1項所述之方法,其中該非揮發性系統記憶體提供另一部分的該系統位址空間。
- 如申請專利範圍第1項所述之方法,其中該非揮發性系統記憶體包含該電源管理韌體。
- 一種使用非揮發性隨機存取記憶體之增強系統睡眠狀態的設備,包含:一處理器,在一計算機系統中; 一非揮發性系統記憶體,耦接該處理器,該非揮發性系統記憶體可被該處理器再寫位元組和抹除位元組;及電源管理模組,耦接該處理器、該非揮發性系統記憶體及一動態隨機存取記憶體(DRAM),其中該DRAM對該計算機系統提供部分的系統記憶體位址空間,該電源管理模組係用來攔截由該計算機系統之一作業系統啟動之用於進入一睡眠狀態的一請求、將資料從該DRAM複製到該非揮發性系統記憶體、將部分的該系統位址空間從該DRAM映射至該非揮發性系統記憶體、並在該計算機系統轉換至該睡眠狀態時關閉給該DRAM的電源,且在當發生一喚醒事件時,便將該計算機系統之控制回傳至該作業系統,使得在該作業系統不知部分的該系統位址空間已被映射至該非揮發性系統記憶體的情況下該計算機系統能回復操作離開該非揮發性系統記憶體的工作狀態操作。
- 如申請專利範圍第8項所述之設備,其中該電源管理模組係用來:在當發生一喚醒事件時,便攔截該喚醒事件;在將控制回傳至該作業系統之前,排程一複製回存操作;及在將控制回傳至該作業系統之後,進行該複製回存操作以在一背景中將該資料從該非揮發性系統記憶體複製回該DRAM。
- 如申請專利範圍第9項所述之設備,其中該電源管理模組係用來: 在當完成該複製回存操作時,該電源管理模組便接收一事件;及將部分的該系統位址從該非揮發性系統記憶體再映射回該DRAM。
- 如申請專利範圍第8項所述之設備,其中該電源管理模組係用來:在當發生一喚醒事件時,便攔截該喚醒事件;及在將控制回傳至該作業系統之前,將該資料從該非揮發性系統記憶體複製回該DRAM。
- 如申請專利範圍第8項所述之設備,更包含:在進入到該睡眠狀態之前,該電源管理模組將一命令發出至一睡眠啟動暫存器,以將用於進入該睡眠狀態的該請求發送至進行睡眠狀態轉換之操作的該計算機系統之硬體。
- 如申請專利範圍第8項所述之設備,其中該非揮發性系統記憶體提供另一部分的該系統位址空間。
- 如申請專利範圍第8項所述之設備,其中該電源管理模組包含位於該非揮發性系統記憶體中的電源管理韌體。
- 如申請專利範圍第8項所述之設備,其中該電源管理模組包含下列之一或多個:軟體、韌體、和硬體。
- 如申請專利範圍第8項所述之設備,更包含一機制來捕集用以進入睡眠狀態之一軟體請求並延緩該軟體請求直到完成該DRAM至該非揮發性系統記憶體的複製為 止,其中該機制包含韌體、硬體或這兩者之組合。
- 一種使用非揮發性隨機存取記憶體之增強系統睡眠狀態的系統,包含:一處理器,在一計算機系統中;一非揮發性系統記憶體,耦接該處理器,該非揮發性系統記憶體可被該處理器再寫位元組和抹除位元組;一動態隨機存取記憶體(DRAM),對該計算機系統提供部分的系統記憶體位址空間;及電源管理模組,耦接該處理器、該非揮發性系統記憶體和該DRAM,該電源管理模組係用來攔截由該計算機系統之一作業系統啟動之用於進入一睡眠狀態的一請求、將資料從該DRAM複製到該非揮發性系統記憶體、將該部分的該系統位址空間從該DRAM映射至該非揮發性系統記憶體、並在該計算機系統轉換至該睡眠狀態時關閉給該DRAM的電源,且在當發生一喚醒事件時,便將該計算機系統之控制回傳至該作業系統,使得在該作業系統不知該部分的該系統位址空間已被映射至該非揮發性系統記憶體的情況下計算機系統能回復操作離開該非揮發性系統記憶體的工作狀態操作。
- 如申請專利範圍第17項所述之系統,其中該電源管理模組係用來:在當發生一喚醒事件時,便攔截該喚醒事件;在將控制回傳至該作業系統之前,排程一複製回存操作;及 在將控制回傳至該作業系統之後,進行該複製回存操作以在一背景中將該資料從該非揮發性系統記憶體複製回該DRAM。
- 如申請專利範圍第18項所述之系統,其中該電源管理模組係用來:在當完成該複製回存操作時,該電源管理模組便接收一事件;及將部分的該系統位址從該非揮發性系統記憶體再映射回該DRAM。
- 如申請專利範圍第17項所述之系統,其中該電源管理模組係用來:在當發生一喚醒事件時,便攔截該喚醒事件;及在將控制回傳至該作業系統之前,將該資料從該非揮發性系統記憶體複製回該DRAM。
- 如申請專利範圍第17項所述之系統,更包含:在進入到該睡眠狀態之前,該電源管理模組將一命令發出至一睡眠啟動暫存器,以將用於進入該睡眠狀態的該請求發送至進行睡眠狀態轉換之操作的該計算機系統之硬體。
- 如申請專利範圍第17項所述之系統,其中該電源管理模組包含下列之一或多個:軟體、韌體、和硬體。
- 一種使用非揮發性隨機存取記憶體之增強系統睡眠狀態的設備,包含:電源管理模組,用以與在具有非揮發性系統記憶體及 動態隨機存取記憶體(DRAM)的計算機系統中之處理器通訊,其中該DRAM提供用於該計算機系統的部分的系統記憶體位址空間,該電源管理模組用以攔截係用來攔截由該計算機系統之一作業系統啟動之用於進入一睡眠狀態的一請求,將該部分的系統位址空間從該DRAM映射至該非揮發性記憶體,並且當該計算機系統轉換到該睡眠狀態時關閉給該DRAM的電源,且在當一喚醒事件發生時,將該計算機系統之控制回傳至該作業系統,使得在該作業系統不知該部分的該系統位址空間已被映射至該非揮發性系統記憶體的情況下,該計算機系統能回復操作離開該非揮發性系統記憶體的工作狀態操作。
- 如申請專利範圍第23項所述之設備,其中該電源管理模組是用以:在當一喚醒事件發生時,攔截該喚醒事件;在將控制回傳至該作業系統之前,排程一複製回存操作;在將控制回傳至該作業系統之後,進行該複製回存操作以在一背景中將該資料從該非揮發性系統記憶體複製回該DRAM。
- 如申請專利範圍第24項所述之設備,其中該電源管理模組是用以:在當完成該複製回存操作時,該電源管理模組便接收一事件;及將該部分的該系統位址從該非揮發性系統記憶體再映 射回該DRAM。
- 如申請專利範圍第23項所述之設備,其中該電源管理模組是用以:在當發生一喚醒事件時,便攔截該喚醒事件;及在將控制回傳至該作業系統之前,將該資料從該非揮發性系統記憶體複製回該DRAM。
- 如申請專利範圍第23項所述之設備,更包含:在進入到該睡眠狀態之前,該電源管理模組將一命令發出至一睡眠啟動暫存器以將用於進入該睡眠狀態的該請求發送至進行睡眠狀態轉換之操作的該計算機系統之硬體。
- 如申請專利範圍第23項所述之設備,其中該電源管理模組包含下列之一或多個:軟體、韌體、和硬體。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/064686 WO2013089685A1 (en) | 2011-12-13 | 2011-12-13 | Enhanced system sleep state support in servers using non-volatile random access memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201346517A TW201346517A (zh) | 2013-11-16 |
TWI528164B true TWI528164B (zh) | 2016-04-01 |
Family
ID=48612981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101142624A TWI528164B (zh) | 2011-12-13 | 2012-11-15 | 使用非揮發性隨機存取記憶體支援在伺服器中之增強系統睡眠狀態的方法、設備及系統 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9829951B2 (zh) |
CN (1) | CN103975287B (zh) |
TW (1) | TWI528164B (zh) |
WO (1) | WO2013089685A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8307180B2 (en) | 2008-02-28 | 2012-11-06 | Nokia Corporation | Extended utilization area for a memory device |
US8874824B2 (en) | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
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 |
KR101572403B1 (ko) | 2011-12-22 | 2015-11-26 | 인텔 코포레이션 | 메모리 채널 셧다운에 의한 전력 절약 |
US9417998B2 (en) | 2012-01-26 | 2016-08-16 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
US9311226B2 (en) | 2012-04-20 | 2016-04-12 | Memory Technologies Llc | Managing operational state data of a memory module using host memory in association with state change |
US9311209B2 (en) * | 2012-11-27 | 2016-04-12 | International Business Machines Corporation | Associating energy consumption with a virtual machine |
US9250999B1 (en) * | 2013-11-19 | 2016-02-02 | Google Inc. | Non-volatile random access memory in computer primary memory |
WO2015089488A1 (en) | 2013-12-12 | 2015-06-18 | Memory Technologies Llc | Channel optimized storage modules |
CN103777537B (zh) * | 2014-01-28 | 2018-03-13 | 无锡云动科技发展有限公司 | 一种低功耗控制电路及存储装置 |
CN106258006A (zh) | 2014-04-29 | 2016-12-28 | 惠普发展公司,有限责任合伙企业 | 使用状态信息恢复系统 |
JP5901698B2 (ja) | 2014-06-17 | 2016-04-13 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | メモリ管理方法 |
JP2016014957A (ja) * | 2014-07-01 | 2016-01-28 | 株式会社東芝 | ストレージ装置及びそのデータ処理方法 |
US10747449B2 (en) | 2014-07-31 | 2020-08-18 | Toshiba Memory Corporation | Reduction of power use during address translation via selective refresh operations |
US10198274B2 (en) * | 2015-03-27 | 2019-02-05 | Intel Corporation | Technologies for improved hybrid sleep power management |
US9811345B2 (en) * | 2015-04-16 | 2017-11-07 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Utilizing computing resources under a disabled processor node without fully enabling the disabled processor node |
CN105630535A (zh) * | 2015-05-29 | 2016-06-01 | 上海磁宇信息科技有限公司 | 一种计算系统及启动系统的方法 |
WO2017003440A1 (en) | 2015-06-30 | 2017-01-05 | Hewlett-Packard Development Company, L.P. | Patrol scrub periods based on power status |
US10459847B1 (en) | 2015-07-01 | 2019-10-29 | Google Llc | Non-volatile memory device application programming interface |
US9449655B1 (en) * | 2015-08-31 | 2016-09-20 | Cypress Semiconductor Corporation | Low standby power with fast turn on for non-volatile memory devices |
CN105404673B (zh) * | 2015-11-19 | 2018-11-09 | 清华大学 | 基于nvram的高效文件系统构建方法 |
CN105426779B (zh) * | 2015-11-19 | 2018-06-05 | 浪潮(北京)电子信息产业有限公司 | 一种利用nvram保证文件系统数据安全的方法 |
TWI569129B (zh) | 2015-12-01 | 2017-02-01 | 財團法人工業技術研究院 | 系統暫停方法、系統回復方法及應用其之電腦系統 |
US9928168B2 (en) * | 2016-01-11 | 2018-03-27 | Qualcomm Incorporated | Non-volatile random access system memory with DRAM program caching |
US10936045B2 (en) * | 2016-09-26 | 2021-03-02 | Hewlett-Packard Development Company, L.P. | Update memory management information to boot an electronic device from a reduced power mode |
US20180088853A1 (en) * | 2016-09-26 | 2018-03-29 | Intel Corporation | Multi-Level System Memory Having Near Memory Space Capable Of Behaving As Near Memory Cache or Fast Addressable System Memory Depending On System State |
US10783252B2 (en) * | 2017-08-23 | 2020-09-22 | Qualcomm Incorporated | System and method for booting within a heterogeneous memory environment |
US11294743B2 (en) * | 2017-10-26 | 2022-04-05 | SK Hynix Inc. | Firmware event tracking for NAND-based storage devices, and methods and instruction sets for performing the same |
US10591975B2 (en) * | 2017-10-30 | 2020-03-17 | Qualcomm Incorporated | Memory access management for low-power use cases of a system on chip via secure non-volatile random access memory |
US20200026659A1 (en) * | 2017-11-20 | 2020-01-23 | Nutanix, Inc. | Virtualized memory paging using random access persistent memory devices |
US11061692B2 (en) * | 2018-02-07 | 2021-07-13 | Intel Corporation | Low latency boot from zero-power state |
US10795605B2 (en) * | 2018-04-20 | 2020-10-06 | Dell Products L.P. | Storage device buffer in system memory space |
US11550592B2 (en) * | 2018-06-29 | 2023-01-10 | Intel Corporation | Methods and apparatus to utilize non-volatile memory for computer system boot |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04263386A (ja) * | 1991-02-18 | 1992-09-18 | Fuji Photo Film Co Ltd | Icメモリカード |
US6249814B1 (en) * | 1997-09-22 | 2001-06-19 | Compaq Computer Corporation | Method and apparatus for identifying devices on a network |
US6182231B1 (en) * | 1998-03-31 | 2001-01-30 | International Business Machines Corporation | Dynamic program suspension |
US5912839A (en) | 1998-06-23 | 1999-06-15 | Energy Conversion Devices, Inc. | Universal memory element and method of programming same |
US6571333B1 (en) | 1999-11-05 | 2003-05-27 | Intel Corporation | Initializing a memory controller by executing software in second memory to wakeup a system |
US7475174B2 (en) | 2004-03-17 | 2009-01-06 | Super Talent Electronics, Inc. | Flash / phase-change memory in multi-ring topology using serial-link packet interface |
US7380055B2 (en) * | 2004-06-21 | 2008-05-27 | Dot Hill Systems Corporation | Apparatus and method in a cached raid controller utilizing a solid state backup device for improving data availability time |
US7590918B2 (en) | 2004-09-10 | 2009-09-15 | Ovonyx, Inc. | Using a phase change memory as a high volume memory |
US20070005922A1 (en) | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
CN101042608A (zh) | 2006-03-21 | 2007-09-26 | 鸿富锦精密工业(深圳)有限公司 | 具有省电功能的便携式电子装置及其实现方法 |
US7600078B1 (en) | 2006-03-29 | 2009-10-06 | Intel Corporation | Speculatively performing read transactions |
US7913147B2 (en) | 2006-05-08 | 2011-03-22 | Intel Corporation | Method and apparatus for scrubbing memory |
US7756053B2 (en) | 2006-06-30 | 2010-07-13 | Intel Corporation | Memory agent with error hardware |
US7493439B2 (en) | 2006-08-01 | 2009-02-17 | International Business Machines Corporation | Systems and methods for providing performance monitoring in a memory system |
US8051253B2 (en) | 2006-09-28 | 2011-11-01 | Virident Systems, Inc. | Systems and apparatus with programmable memory control for heterogeneous main memory |
US20080082752A1 (en) * | 2006-09-29 | 2008-04-03 | Ram Chary | Method and apparatus for saving power for a computing system by providing instant-on resuming from a hibernation state |
US7942460B2 (en) | 2007-01-09 | 2011-05-17 | Michael Anthony Boskett | Pet litter scooper |
US20080270811A1 (en) | 2007-04-26 | 2008-10-30 | Super Talent Electronics Inc. | Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory |
US8429493B2 (en) | 2007-05-12 | 2013-04-23 | Apple Inc. | Memory device with internal signap processing unit |
US8185886B2 (en) * | 2007-06-26 | 2012-05-22 | Intel Corporation | Method and apparatus to enable dynamically activated firmware updates |
US7971081B2 (en) * | 2007-12-28 | 2011-06-28 | Intel Corporation | System and method for fast platform hibernate and resume |
CN101251766B (zh) * | 2008-03-21 | 2010-12-08 | 北京中星微电子有限公司 | 一种多媒体处理平台芯片 |
US20090313416A1 (en) | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
US20090322795A1 (en) | 2008-06-30 | 2009-12-31 | Maximino Vasquez | Method and apparatus for reducing power consumption for displays |
US8914653B2 (en) * | 2008-09-05 | 2014-12-16 | Hewlett-Packard Development Company, L.P. | Method and system for providing hybrid-shutdown and fast startup processes |
US8504850B2 (en) * | 2008-09-08 | 2013-08-06 | Via Technologies, Inc. | Method and controller for power management |
KR20100091544A (ko) * | 2009-02-10 | 2010-08-19 | 삼성전자주식회사 | 메모리 시스템 및 그 마모도 관리 방법 |
US8331857B2 (en) | 2009-05-13 | 2012-12-11 | Micron Technology, Inc. | Wireless interface to program phase-change memories |
US8250282B2 (en) | 2009-05-14 | 2012-08-21 | Micron Technology, Inc. | PCM memories for storage bus interfaces |
US8504759B2 (en) | 2009-05-26 | 2013-08-06 | Micron Technology, Inc. | Method and devices for controlling power loss |
US20100306453A1 (en) | 2009-06-02 | 2010-12-02 | Edward Doller | Method for operating a portion of an executable program in an executable non-volatile memory |
US9123409B2 (en) | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
US8464035B2 (en) | 2009-12-18 | 2013-06-11 | Intel Corporation | Instruction for enabling a processor wait state |
US8806231B2 (en) | 2009-12-22 | 2014-08-12 | Intel Corporation | Operating system independent network event handling |
US8914568B2 (en) | 2009-12-23 | 2014-12-16 | Intel Corporation | Hybrid memory architectures |
US8612809B2 (en) | 2009-12-31 | 2013-12-17 | Intel Corporation | Systems, methods, and apparatuses for stacked memory |
US20110208900A1 (en) | 2010-02-23 | 2011-08-25 | Ocz Technology Group, Inc. | Methods and systems utilizing nonvolatile memory in a computer system main memory |
KR20110103258A (ko) * | 2010-03-12 | 2011-09-20 | 삼성전자주식회사 | 전력 소모 저감을 위한 하이브리드 메모리 장치 및 그 방법 |
KR20110131781A (ko) | 2010-05-31 | 2011-12-07 | 삼성전자주식회사 | 위치정보의 정확도 확인방법 및 장치 |
US8649212B2 (en) | 2010-09-24 | 2014-02-11 | Intel Corporation | Method, apparatus and system to determine access information for a phase change memory |
US8838935B2 (en) | 2010-09-24 | 2014-09-16 | Intel Corporation | Apparatus, method, and system for implementing micro page tables |
US8612676B2 (en) | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
US8462577B2 (en) | 2011-03-18 | 2013-06-11 | Intel Corporation | Single transistor driver for address lines in a phase change memory and switch (PCMS) array |
US8462537B2 (en) | 2011-03-21 | 2013-06-11 | Intel Corporation | Method and apparatus to reset a phase change memory and switch (PCMS) memory cell |
US8607089B2 (en) | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
US8605531B2 (en) | 2011-06-20 | 2013-12-10 | Intel Corporation | Fast verify for phase change memory with switch |
US8463948B1 (en) | 2011-07-01 | 2013-06-11 | Intel Corporation | Method, apparatus and system for determining an identifier of a volume of memory |
US9529708B2 (en) | 2011-09-30 | 2016-12-27 | Intel Corporation | Apparatus for configuring partitions within phase change memory of tablet computer with integrated memory controller emulating mass storage to storage driver based on request from software |
WO2013048500A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels |
US9430372B2 (en) | 2011-09-30 | 2016-08-30 | Intel Corporation | Apparatus, method and system that stores bios in non-volatile random access memory |
EP2761468B1 (en) | 2011-09-30 | 2019-12-11 | Intel Corporation | Platform storage hierarchy with non-volatile random access memory having configurable partitions |
CN103946813B (zh) | 2011-09-30 | 2017-08-25 | 英特尔公司 | 基于使用统计量追踪的远存储器访问信号的生成 |
WO2013048497A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy |
EP2761472B1 (en) | 2011-09-30 | 2020-04-01 | Intel Corporation | Memory channel that supports near memory and far memory access |
EP2761471B1 (en) | 2011-09-30 | 2017-10-25 | Intel Corporation | Statistical wear leveling for non-volatile system memory |
WO2013048485A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Autonomous initialization of non-volatile random access memory in a computer system |
-
2011
- 2011-12-13 US US13/976,901 patent/US9829951B2/en not_active Expired - Fee Related
- 2011-12-13 WO PCT/US2011/064686 patent/WO2013089685A1/en active Application Filing
- 2011-12-13 CN CN201180075452.0A patent/CN103975287B/zh active Active
-
2012
- 2012-11-15 TW TW101142624A patent/TWI528164B/zh active
-
2017
- 2017-11-27 US US15/823,527 patent/US11054876B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20130290759A1 (en) | 2013-10-31 |
CN103975287B (zh) | 2017-04-12 |
WO2013089685A1 (en) | 2013-06-20 |
US20180143678A1 (en) | 2018-05-24 |
TW201346517A (zh) | 2013-11-16 |
US9829951B2 (en) | 2017-11-28 |
US11054876B2 (en) | 2021-07-06 |
CN103975287A (zh) | 2014-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI528164B (zh) | 使用非揮發性隨機存取記憶體支援在伺服器中之增強系統睡眠狀態的方法、設備及系統 | |
US10055353B2 (en) | Apparatus, method and system that stores bios in non-volatile random access memory | |
TWI468938B (zh) | 用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,設備及系統 | |
EP2761465B1 (en) | Autonomous initialization of non-volatile random access memory in a computer system | |
CN108549609B (zh) | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) | |
EP3364304B1 (en) | Memory channel that supports near memory and far memory access | |
US9958926B2 (en) | Method and system for providing instant responses to sleep state transitions with non-volatile random access memory | |
US20140229659A1 (en) | Thin translation for system access of non volatile semicondcutor storage as random access memory | |
US9202548B2 (en) | Efficient PCMS refresh mechanism |