TWI499977B - 儲存bios於非揮發性隨機存取記憶體的裝置、方法及系統 - Google Patents
儲存bios於非揮發性隨機存取記憶體的裝置、方法及系統 Download PDFInfo
- Publication number
- TWI499977B TWI499977B TW101132015A TW101132015A TWI499977B TW I499977 B TWI499977 B TW I499977B TW 101132015 A TW101132015 A TW 101132015A TW 101132015 A TW101132015 A TW 101132015A TW I499977 B TWI499977 B TW I499977B
- Authority
- TW
- Taiwan
- Prior art keywords
- bios
- nvram
- memory
- processor
- pei
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- 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
-
- 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/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0004—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明之實施例係有關一種電腦系統,且尤係有關將位元組可定址之非揮發性隨機存取記憶體用於BIOS儲存。
現今電腦創新的一限制因素是記憶體及儲存技術。在傳統的電腦系統中,通常以動態隨機存取記憶體(Dynamic Random Access Memory;簡稱DRAM)實施系統記憶體。即使在不進行記憶體讀取或寫入時,基於DRAM的記憶體也消耗電力,這是因為此種記憶體必須不斷地將內部電容再充電。基於DRAM的記憶體是揮發性的,此即意指一旦斷電之後,DRAM記憶體中儲存之資料將喪失。
關於大量儲存器,傳統的大量儲存裝置通常包括非揮發性磁性媒體(例如,硬碟機)及/或快閃記憶體(也被稱為"閃存"(flash))(例如,固態硬碟(Solid State Drive;簡稱SSD)。這些儲存裝置是可區塊定址的,此即意指無法個別地存取單一位元組的儲存。更確切地說,係以多位元組(例如,16位元組)區塊的資料之方式讀取及寫入各位元組。一般而言,這些儲存裝置被視為輸入/輸出(I/O)裝置,這是因為處理器經由實施各種I/O
協定之各種I/O配接器而存取該等儲存裝置。這些I/O配接器及I/O協定耗用了大量的電力,且可能對平台的晶粒面積及形狀因數(form factor)有顯著的影響。此外,對於電池使用時間有限的可攜式或行動裝置(例如,平板電腦、相機、及行動電話)而言,該等裝置的儲存裝置(例如,嵌入式多媒體卡(Embedded Multimedia Card;簡稱eMMC)及安全數位(Secure Digital;簡稱SD)卡)通常經由低功率互連及I/O控制器而被耦合到處理器,以便符合現用及閒置功率預算(power budget)。這些互連及I/O控制器無法一貫地提供滿意的使用者體驗(user experience)所需之頻寬。
關於韌體記憶體,傳統的電腦系統通常使用快閃記憶體裝置來儲存經常被讀取但是很少(或永不)被寫入之持續性系統資訊。例如,基本輸入及輸出系統(Basic Input and Output System;簡稱BIOS)映像檔(image)通常被儲存在快閃記憶體裝置。目前市場上供應的快閃記憶體裝置通常具有有限的速度(例如,50 MHz(MHz:百萬赫))。讀取協定的負擔(overhead)進一步降低了該速度(例如,2.5 MHz)。為了提高BIOS執行的速度,在啟動(boot)程序的前置可延伸韌體介面(Pre-Extensible Firmware Interface;簡稱PEI)階段中,傳統的處理器通常高速存取BIOS碼的一部分。然而,處理器的快取記憶體只有非常有限的容量。因此,可被用於初始系統組態設定的BIOS碼之容量是非常有限的。處理器快取記憶體的
此種容量限制對被用於PEI階段的BIOS碼(也被稱為PEI BIOS碼)之大小施加了顯著的限制。例如,無法輕易地將該PEI BIOS碼延伸而支援大量混合的記憶體組態及多個處理器家族。由於對以各種技術及多個處理器家族實施的處理器、程序互連、記憶體、及儲存裝置的初始化之需求不斷增加,所以對更多功能的PEI BIOS碼之需求也增加了。一種解決方案是建構一大容量的處理器快取記憶體,以供高速存取該PEI BIOS碼。然而,無法在不對系統的其餘部分造成負面影響之情形下輕易地增加處理器快取記憶體的容量。
有時也被稱為PCME、PRAM、PCRAM、雙向通用記憶體(Ovonic Unified Memory)、硫屬化合物隨機存取記憶體(Chalcogenide RAM)、及C-RAM之相變化記憶體(Phase Change Memory;簡稱PCM)是一種利用硫屬玻璃(chalcogenide glass)的特性之非揮發性電腦記憶體。由於電流通過所產生的熱,此種材料可在結晶(crystalline)與非晶(amorphous)的這兩種狀態之間切換。PCM的最新版本可實現兩種額外的不同狀態,因而使記憶體儲存容量有效地加倍。PCM是在非揮發性記憶體市場中與快閃記憶體競爭的一些新記憶體技術中之一種新記憶體技術。快閃記憶體有這些替代記憶體技術希望解決的一些實際問題。
例如,PCM在迅速寫入係重要的應用中可提供高許多的效能,部分地是因為可更迅速地切換記憶體元件,並且亦因為可將個別的位元改變為1或0,而無須先抹除一整個區塊的記憶體單元(如同快閃記憶體的情況)。PCM的高效能使其可能非常有利於目前效能受到記憶體存取時間限制的非揮發性記憶體之作用。
此外,雖然PCM裝置隨著使用次數的增加而退化(如同快閃記憶體),但是PCM裝置的退化速度緩慢許多。一PCM裝置可具有大約一億次的寫入週期。諸如由於程式化期間的鍺銻碲(GeSbTe;GST)合金的熱膨脹而造成的退化、金屬(及其他材料)的遷移、以及其他機制等的機制限制了PCM的使用期限。
在下文的說明中,述及了許多特定細節。然而,我們應可了解:可在沒有這些特定細節的情形下實施本發明之實施例。在其他的情形中,並未詳細示出一些習知的電路、結構、及技術,以便不會模糊對本說明的理解。
在本說明書中提及"一個實施例"、"一實施"、或"一例示實施例"等的辭語時,意指所述之實施例可包括一特定特徵、結構、或特性,但是每一實施例可能不必然包括該特定特徵、結構、或特性。此外,這些辭語不必然參照到相同的實施例。此外,當以與一實施例有關之方式說明一特定特徵、結構、或特性時,熟悉此項技術者當可了解
將該特定特徵、結構、或特性實施於其他實施例之方式,不論該方式是否被明確地述及。
在下文的說明及申請專利範圍中,可使用術語"被耦合"及"被連接"以及其派生詞。我們應可了解:這些術語將不是彼此的同義字。"被耦合"被用來指示:可能在或可能不在實體上或電氣上相互直接接觸的兩個或更多個元件相互配合或作用。"被連接"被用來指示:相互耦合的兩個或更多個元件間之通訊的建立。
在本說明書中,有時將具有虛線邊界(例如,長虛線、短虛線、點虛線、點線)的有括號之文字或方塊用來示出將額外的特徵加入本發明的實施例之可供選擇採用的操作/組件。然而,不應將此種表示法理解為意指這些操作/組件只是選項或可供選擇採用的操作/組件,且/或不應將具有實線邊界的區塊理解為在本發明的某些實施例中為非可選的。
下文所述之本發明的實施例界定了使階層式記憶體子系統架構能夠使用NVRAM之平台組態。如將於下文中詳細說明的,在記憶體階層中使用NVRAM亦使諸如擴充啟動空間及實現大容量儲存的新用途變得可能。
第1圖是將可位元組定址的非揮發性隨機存取記憶體(NVRAM)130用於平台儲存階層的一或多層的一電腦系統100之一方塊圖。術語"平台儲存階層"在本說明書中意指用來儲存資料、指令、狀態、以及其他持續性或非持續性資訊的電腦系統100使用之整個儲存媒體。在一實施例
中,電腦系統100中之所有持續性儲存器可以一種可配置之方式合併到一NVRAM 130。此外,NVRAM 130的某一部分可被分配為系統記憶體之DRAM代替物。NVRAM 130之多功能性促進了將技術自具有在一持續性區塊導向的檔案系統上操作的作業系統(Operating System;簡稱OS)之一傳統平台遷移到具有可了解有全持續性且可位元組定址的單階(single-level)資料儲存裝置的OS之平台。
在一實施例中,可將NVRAM 130配置成以下列方式中之一或多種方式執行一典型平台儲存階層中之任務:快取記憶體、系統記憶體(也被稱為主記憶體、主要記憶體、可執行記憶體)、儲存器(也被稱為輔助儲存器、大量儲存器)、以及韌體記憶體(諸如啟動記憶體(也被稱為BIOS閃存)、及可信賴的平台模組(Trusted Platform Module;簡稱TPM)記憶體等的韌體記憶體)。也考慮到具有不同任務之平台儲存階層,且NVRAM 130之應用不限於前文所述之該等任務。
可以NVRAM的特徵及/或其在平台儲存階層中之應用而區分NVRAM 130以及其他的指令及資料記憶體/儲存器技術。例如,NVRAM 130與下列各項不同:(1)被應用作為某一處理器核心專用或多個處理器核心共用之快取記憶體之靜態機存取記憶體(Static Random Access Memory;簡稱SRAM);(2)被應用作為處理器內部的一或多個快取記憶體
(例如,在與該處理器相同的晶粒中)及/或處理器外部的一或多個快取記憶體(例如,在與該處理器相同的或不同的封裝中)之高速記憶體(例如,動態隨機存取記憶體(DRAM));(3)被應用作為驅動儲存器之快閃記憶體/磁碟/光碟;以及(4)被應用作為啟動ROM之諸如快閃記憶體或唯讀記憶體(Read Only Memory;簡稱ROM)等的記憶體。
本發明的一實施例中之NVRAM(例如,NVRAM 130)具有下列特徵:(1)非揮發性(縱然斷電,NVRAM也將保持其內容,該特徵類似於固態硬碟(SSD)中使用之快閃記憶體,且不同於係為揮發性之SRAM及DRAM);(2)比諸如SRAM及DRAM等的揮發性記憶體低的電力消耗;(3)隨機存取(也被稱為可隨機定址);(4)可在比SSD中使用的快閃記憶體的粒度(granularity)級別小的一粒度(例如,位元組級別)下重寫及抹除(一次只能重寫及抹除快閃記憶體的一"區塊",最小的區塊大小是"反或"(NOR)快閃記憶體之64千位元組(Kbyte)以及"反及"(NAND)快閃記憶體之16千位元組);(5)可被用來作為系統記憶體,且被分配了系統位址空間之全部或一部分;
(6)能夠使用一交易協定(transactional protocol)(一種支援用來區分不同的交易因而可以非循序方式完成那些交易的交易識別碼(ID)之協定)而經由一匯流排被耦合到處理器,且容許在小到足以支援作為系統記憶體的該NVRAM的操作的一粒度級別(例如,64或128位元組的快取列(cache line)大小)下之存取。例如,該匯流排可以是其上運行相對於通常使用的非交易協定之一交易協定的記憶體匯流排(例如,雙倍資料速率三(DDR3)或雙倍資料速率四(DDR4)等的記憶體匯流排)。舉另一例子,該匯流排可以是諸如周邊組件高速互連(PCI Express;簡稱PCIE)、桌面管理介面(Desktop Management Interface;簡稱DMI)、或使用一交易協定及足夠小的一交易酬載(payload)大小(諸如64或128位元組等的快取列大小)之任何其他類型的匯流排等的通常運行一交易協定(一原生交易協定)之一匯流排;以及(7)下列特徵中之一或多個特徵:(a)比現有非揮發性記憶體/儲存器技術(諸如快閃記憶體)快的寫入速度;(b)非常高的讀取速度(比快閃記憶體快速,且接近或相等於DRAM讀取速度);(c)可直接寫入(無須如同SSD中使用的快閃記憶體需要先抹除資料(以1覆寫)然後才寫入資料;及/或(d)數量級(order of magnitude)(例如,2
或3)較高的故障前寫入耐用期限(大於啟動ROM及SSD中使用的快閃記憶體)。
如前文所述,對比於必須一次重寫及抹除一整個"區塊"之快閃記憶體,NVRAM的存取粒度級別可取決於特定記憶體控制器、以及該NVRAM被耦合到的特定記憶體匯流排或其他類型的匯流排。例如,在NVRAM 130被用來作為系統記憶體之某些實施例中,雖然固有的能力是在一位元組的粒度下存取,但是可在一快取列(例如,64位元組或128位元組的快取列)之粒度下存取NVRAM,這是因為快取列是記憶體子系統存取記憶體的級別。例如,當NVRAM被部署在一記憶體子系統內時,可在與相同的記憶體子系統中使用的DRAM(例如,近端記憶體)的粒度級別相同之粒度級別下存取NVRAM。即使如此,記憶體控制器以及記憶體匯流排或其他類型的匯流排存取NVRAM之粒度級別還是小於快閃記憶體使用的區塊大小以及I/O子系統的控制器及匯流排的存取大小之粒度級別。
NVRAM 130可被用來作為需要足夠短的存取時間以免對處理器造成一些影響之指令及資料儲存器。此處,可先自較深的快閃/磁性/光學大量儲存器152將程式指令及資料載入NVRAM 130,然後才被處理器執行。此外,如將於下文中詳細說明的,可將NVRAM 130放置在一記憶體匯流排上,且可與一記憶體控制器直接通訊,而該記憶體控制器又與該等處理器直接通訊。
NVRAM 130的新記憶體技術之存在提供了豐富的新可能性。雖然將在下文中更詳細地說明,但是即將迅速地突顯這些可能性中之某些可能性。
根據一可能的實施例,NVRAM 130被用來作為系統記憶體中之傳統DRAM技術之一完全替代物或增補物。
在一實施例中,NVRAM 130意味著加入了一第二階系統記憶體(例如,系統記憶體是DRAM 140及NVRAM 130的某些部分或全部之一組合)。因此,可將該系統記憶體視為具有一近端記憶體部分(Near Memory part;簡稱NM)141A及一遠端記憶體部分(Far Memory part;簡稱FM)142。我們應可了解:在不同的實施例中,近端記憶體可被用來作為記憶體端快取記憶體(例如,近端記憶體快取記憶體141B)、暫存記憶體(scratch pad)、及不同於系統記憶體之其他任務。在本發明所述之實施例中,NVRAM 130之NM 141A部分只被用來作為系統記憶體,以便簡化本說明。
根據某些實施例,NVRAM 130提供給用來作為諸如快閃/磁性/光學大量儲存器152等的傳統大量儲存器的一完全替代物或增補物之NVRAM儲存器。在本申請案中,術語"傳統大量儲存器"意指諸如磁碟或光碟及快閃記憶體等的基於光學、磁性、及/或快閃技術之大量儲存器。為了簡化本說明,快閃/磁性/光學大量儲存器152也被稱為傳統大量儲存器152。因此,可使用NVRAM、快閃記憶體、磁性儲存器、或以上各項之任何組合實施電
腦系統100之該非揮發性大量儲存器。在NVRAM儲存器150被用來作為傳統大量儲存器152的完全替代物之一實施例中,不需要將儲存驅動程式(storage driver)用於可區塊定址的儲存器存取。自儲存器存取移除儲存驅動程式負擔時,可提高存取速度,且省電。在期望NVRAM儲存器150被OS及/或應用程式視為可區塊存取且與傳統大量儲存器152無異之替代實施例中,模擬儲存驅動程式可被用來將可區塊存取的介面(例如,通用序列匯流排(Universal Serial Bus;簡稱USB)大容量傳輸協定(Bulk-Only Transfer;簡稱BOT)1.0及序列先進技術連接(Serial Advanced Technology Attachment;簡稱SATA)3.0等的介面)顯露給存取NVRAM儲存器150之軟體。亦即,在這些替代實施例中,該儲存驅動程式可將NVRAM 130之位元組定址能力用來移動NVRAM儲存器150之區塊,且模擬可區塊存取的大量儲存器,而無須產生I/O介面的成本。
根據某些實施例,NVRAM 130提供了被用來作為諸如BIOS快閃記憶體162及TPM快閃記憶體172等的韌體記憶體的完全替代物或增補物之BIOS NVRAM 160及TPM NVRAM 170。通常以快閃記憶體技術實施韌體記憶體,且韌體記憶體通常儲存一處理器於啟動程序期間為了將一些關鍵性系統組件初始化而執行之初始指令(例如,BIOS)。韌體記憶體亦可儲存一TPM 134用來保護敏感性系統資訊(例如,加密金鑰(encryption key))之系
統持續性狀態。在一實施例中,由於將NVRAM 130用於韌體記憶體,所以不需要用來儲存對系統操作極為重要的程式碼及資料之第三方快閃記憶體零件。
對記憶體及儲存裝置的選擇可取決於使用該等裝置的平台之類型。例如,在個人電腦、平板電腦、筆記本電腦、行動裝置(例如,智慧型手機或個人數位助理(PDA)中,可以單獨使用NVRAM儲存器150或以結合快閃記憶體/磁性儲存器而使用NVRAM儲存器150之方式,實施非揮發性大量儲存器。在其他實施例(例如,大型伺服器)中,可使用磁性儲存器(例如,硬碟機)或磁性儲存器、快閃記憶體、及NVRAM儲存器150之任何組合實施該非揮發性大量儲存器。在此種情形中,負責儲存的電腦系統硬體及/或軟體可實施各種智慧型持續性儲存器分配技術,以便以一種有效率的或其他適用之方式在FM 142/NVRAM儲存器150與傳統大量儲存器152之間分配持續性程式碼及資料之區塊。在某些實施例中,NVRAM 130可成為唯一的記憶體/儲存裝置外部晶片(亦即,在處理器晶片的外部)。在某些實施例中,並不作為外部晶片DRAM 140,而是可將DRAM用來提供一晶片內部快取記憶體(近端記憶體快取記憶體141B)。這些實施例尤其與極小平台(例如,智慧型手機或PDA)有關,其中多個記憶體等級/技術可能是成本過高,且較多的電晶體(其中包括儲存器)可能被放置在晶片中。
NVRAM 130可加入"平均抹寫"("wear leveling")演
算法,以便應對下列狀況:遠端記憶體階層上的儲存單元在經過太多的寫入存取之後,將開始耗損。因為高週期計數的區塊最有可能被此種方式耗損,所以平均抹寫法以低週期計數的區塊交換高週期計數的區塊之位址,而分散對該等遠端記憶體單元的寫入。請注意,大部分的位址交換對最終使用者通常是透明的,這是因為由硬體、軟體(例如,一低階驅動程式或作業系統)、或以上各項的組合處理該位址交換。
在一實施例中,可以諸如PCM或更具體的相變化記憶體及開關(PCMS)(也被稱為PRAM或PCRAM)、雙向通用記憶體(OUM)、或CRAM等的非揮發性隨機存取記憶體(NVRAM)實施NVRAM 130。遠端記憶體之其他可能的技術選擇包括(但不限於)可位元組定址的持續性記憶體(Byte-addressable Persistent Memory;簡稱BPRAM)、儲存級記憶體(Storage Class Memory;簡稱SCM)、通用記憶體(universal memory)、鍺銻碲合金(Ge2Sb2Te5)、可編程金屬化單元(Programmable Metallization Cell;簡稱PMC)、電阻性記憶體(Resistive Memory;簡稱RRAM)、重置(非晶)單元(RESET(amorphous)cell)、設定(結晶)單元(SET(crystalline)cell)、PCME、奧夫辛斯(Ovshinsky)、鐵電記憶體(ferroelectric memory)(也被稱為聚合物記憶體(polymer memory)及聚乙烯咔唑(poly(N-vinylcarbazole))、鐵磁記憶體(ferromagnetic
memory)(也被稱為Spintronics、自旋轉矩式隨機存取記憶體(Spin-Transfer Torque RAM;簡稱SPRAM)、自旋穿隧隨機存取記憶體(spin tunneling RAM)、磁阻式記憶體、磁性記憶體、及磁性隨機存取記憶體(Magnetic Random Access Memory;簡稱MRAM))、以及半導體-氧化物-氮化物-氧化物-半導體(Semiconductor-Oxide-Nitride-Oxide-Semiconductor;簡稱SONOS)(也被稱為介電記憶體(dielectric memory)。
為了便於解說,本申請案的其餘部分之大部分有時將"PCM"或"PCMS"稱為NVRAM 130之技術選擇。因此,在下文的說明中,可互換地使用該等術語NVRAM、PCM、及PCMS。然而,如前文所述,我們應可了解:可將不同的技術用於NVRAM 130。
然後繼續說明第1圖所述之系統,在某些實施例中,電腦系統100之架構可包括多個處理器,但是第1圖中為了簡化而只示出單一處理器110。處理器110可以是其中包括一般用途或特殊用途中央處理單元(Central Processing Unit;簡稱CPU)、特定應用積體電路(Application-Specific Integrated Circuit;簡稱ASIC)、或數位信號處理器(Digital Signal Processor;簡稱DSP)之任何類型的資料處理器。例如,處理器110可以是諸如由Intel Corporation(位於Santa Clara,Calif.)供應的CoreTM
i3、i5、i7、2 Duo及Quad、XeonTM
、或ItaniumTM
處理器等的一般用途處理器。或
者,處理器110可來自諸如ARM Holdings,Ltd.(位於Sunnyvale,CA)或MIPS Technologies(位於Sunnyvale,CA)等的另一公司。處理器110可以是諸如網路或通訊處理器、壓縮引擎、圖形處理器、共處理機、或嵌入式處理器等的特殊用途處理器。可在被包含在一或多個封裝內之一或多個晶片中實施處理器110。可使用諸如雙載子互補金屬氧化物半導體(BiCMOS)、互補金屬氧化物半導體(CMOS)、或N型金屬氧化物半導體(NMOS)等的一些製程技術中之任何製程技術而在一或多個基材上實施處理器110及/或其一部分。
在一實施例中,處理器110包含一整合式圖形單元111,該整合式圖形單元111包含用來執行諸如三維(3D)或二維(2D)圖形命令等的圖形命令之邏輯。雖然本發明之該等實施例不限於任何特定的整合式圖形單元111,但是在一實施例中,圖形單元111能夠執行諸如Open GL及/或Direct X應用程式介面(Application Programming Interface;簡稱API)(例如,OpenGL 4.1及Direct X 11)指定的那些圖形命令等的工業標準圖形命令。
處理器110亦可包含一或多個核心112,但是第1圖中仍然為了清晰而只示出單一的核心112。在許多實施例中,核心112包含諸如一或多個執行單元、引退單元(retirement unit)、以及一組一般用途及特定暫存器等的一些內部功能方塊。如果核心112是多執行緒的
(multi-threaded)或超執行緒的(hyper-threaded)核心,則亦可將每一硬體執行緒視為一"邏輯"核心。該等核心112在架構及/或指令集上可以是同質的或異質的。例如,該等核心中之某些核心可以是循序的,而其他的核心可以是非循序的。舉另一個例子,該等核心中之兩個或更多個核心可執行相同的指令集,而其他的核心只能夠執行該指令集之一子集、或一不同的指令集。
處理器110亦可包含諸如可被實施為一SRAM及/或一DRAM之一快取記憶體113等的一或多個快取記憶體。在未被示出的許多實施例中,實施了快取記憶體113之外的一些額外的快取記憶體,因而該一或多個核心112中之該等執行單元與記憶體裝置141A及142之間存在了多階的快取記憶體。例如,該組被共用的快取記憶體單元可包括諸如第一階(L1)快取記憶體等的一高階快取記憶體、諸如第二階(L2)、第三階(L3)、第四階(L4)、或其他階的快取記憶體等的中階快取記憶體、一最後階快取記憶體(Last Level Cache;簡稱LLC)、及/或上述各項之不同的組合。在不同的實施例中,快取記憶體113可被以不同的方式分配,且在不同的實施例中可具有許多不同的大小中之一大小。例如,快取記憶體113可以是一8百萬位元組(MB)快取記憶體、或16 MB快取記憶體等的快取記憶體。此外,在不同的實施例中,該快取記憶體可以是直接映射式快取記憶體(direct mapped cache)、完全關聯式快取記憶體(fully associative
cache)、多路集合關聯式快取記憶體(multi-way set-associative cache)、或具有另一類型的映射之快取記憶體。在包含多個核心之其他實施例中,快取記憶體113可包含被所有核心共用的一大容量部分,或者可被分成數個各別的功能性部分(例如,每一核心有一功能性部分)。快取記憶體113亦可包含被所有核心共用的一部分、以及係為每一核心的各別功能性部分之數個其他部分。在一實施例中,快取記憶體113可包含一DRAM近端記憶體快取記憶體141B。
處理器110亦可包含一本地代理單元114,該本地代理單元114包含用來協調及操作一或多個核心112的一些組件。本地代理單元114可包含諸如一電源控制單元(Power Control Unit;簡稱PCU)及一顯示單元。該PCU可以是或包含管制該一或多個核心112及整合式圖形單元111的電源狀態所需之邏輯及組件。該顯示單元被用來驅動一或多個外部連接的顯示器。
在某些實施例中,處理器110包含一整合式記憶體控制器(Integrated Memory Controller;簡稱IMC)131,用以提供與一記憶體及儲存子系統180通訊之一介面。更具體而言,在一實施例中,IMC 131包含讀取、寫入、及更新DRAM裝置140所需之邏輯。IMC 131可在與處理器110相同的晶片中,或在被連接到處理器110的一獨立晶片及/或封裝中。
在某些實施例中,處理器110包含被耦合到IMC 131
之一I/O子系統115。I/O子系統115能夠執行處理器110與下列序列或平行I/O裝置間之通訊:一或多個網路136(諸如一區域網路、廣域網路、或網際網路)、儲存I/O裝置(諸如傳統大量儲存器152、BIOS快閃記憶體162、TPM快閃記憶體172)、以及一或多個非儲存I/O裝置137(諸如顯示器、鍵盤、及喇叭等的裝置)。I/O子系統115可包含一平台控制中心(Platform Controller Hub;簡稱PCH)(圖中未示出),該PCH進一步包含用來提供對該等儲存及非儲存I/O裝置以及網路的存取之數個I/O配接器138及其他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可轉換之某些協定尤其包括周邊組件高速互連(Peripheral Component Interconnect(PCI)-Express)3.0、通用序列匯流排(USB)3.0、序列先進技術連接(SATA)3.0、小型電腦系統介面(Small Computer System Interface;簡稱SCSI)、低成本磁碟機備用陣列(Redundant Array of Inexpensive Disks;簡稱RAID)、以及1394 "Firewire"等的協定。對於BIOS快閃記憶體162而言,I/O配接器138可轉換之某些協定尤其
包括序列周邊介面(Serial Peripheral Interface;簡稱SPI)以及Microwire等的協定。此外,可以有一或多個無線協定I/O配接器。無線協定之例子尤其包括藍牙(Bluetooth)4.0、基於IEEE 802.11之無線協定、以及細胞式協定等的協定。
在某些實施例中,I/O子系統115也包含一管理引擎(Management Engine;簡稱ME)135,該ME 135是可讓系統管理者監視、維護、更新、升級、及修復電腦系統100之一微處理器。在一實施例中,系統管理者可經由ME 135及網路136而在遠端設定電腦系統100之組態。在一實施例中,該組態設定可被儲存在處理器110內之一解碼表133中。IMC 131及I/O子系統115可讀取解碼表133,然後決定應將一資料存取要求導向何處。
在某些實施例中,處理器110包含一可信賴的平台模組(TPM)134,用以控制對諸如安全資料、加密金鑰、及平台組態資訊等的系統持續性狀態之存取。在一實施例中,這些系統持續性狀態被儲存在可以諸如PCMS等的基於PCM的記憶體實施之TPM NVRAM 170。在第1圖所示之實施例中,TPM NVRAM 170是NVRAM 130的一部分。
在一實施例中,TPM 134是一具有密碼功能之安全微控制器。TPM 134具有一些與信賴相關的能力;例如,用來保證被一TPM保護的資料只能被相同的TPM利用之"密封"能力。TPM 134可使用其加密能力保護資料及金鑰
(例如,密鑰)。在一實施例中,TPM 134具有一唯一的且祕密的(根據Ron Rivest、Adi Shamir、及Leonard Adleman研發的RSA演算法而產生之)RSA金鑰,該RSA金鑰可讓TPM 134鑑別硬體裝置及平台。例如,TPM 134可驗證試圖存取電腦系統100中儲存之資料的系統是預期的系統。TPM 134也能夠回報平台(例如,電腦系統100)的完整性。因而可讓一外部資源(例如,一網路上的一伺服器)決定對該平台的信賴度,但是不阻止使用者對該平台的存取。在一實施例中,TPM 134包含用來與NVRAM 130通訊之一NVRAM介面。
我們應可了解:一電腦系統之處理器縱然沒有處理器110的所有的前文所述之組件,或有比處理器110的該等組件更多之組件,該電腦系統仍然可將NVRAM 130用於系統記憶體、大量儲存器、韌體記憶體、及/或其他記憶體及儲存用途。
在一實施例中,電腦系統100包含一NVRAM控制器132,用以控制對NVRAM 130之資料存取。NVRAM控制器132被耦合到IMC 131及I/O子系統115。NVRAM控制器132可自解碼表133讀取該組態資料,或者可依賴自IMC 131及I/O子系統115傳送的解碼結果。在以PCMS實施NVRAM 130之一實施例中,NVRAM控制器132是以與PCMS技術一致的協定執行位元組級別的存取之一PCMS控制器。雖然IMC 131及NVRAM控制器132可以是兩個離散控制器(如第1圖所示,以一虛線隔離該等兩
個控制器),但是在某些實施例中,可將這兩個控制器實施為用來控制對記憶體及儲存器的存取之一合併式控制器。在替代實施例中,可將NVRAM控制器132設置在NVRAM 130內,以便控制對NVRAM記憶體單元的存取。在這些替代實施例中,可在該處理器晶片中提供一NVRAM介面(圖中未示出),用以介接到NVRAM 130。
在第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亦可經由諸如周邊組件高速互連(PCI-E)匯流排、桌面管理介面(DMI)匯流排、或利用一交易協定之其他類型的匯流排等的支援原生交易協定之一匯流排而與NVRAM 130通訊。
第2圖是根據本發明的一實施例而使用NVRAM 130作為傳統大量儲存器152及韌體記憶體(例如,BIOS快
閃記憶體162及TPM快閃記憶體172)的一完全替代物的一電腦系統200之一方塊圖。電腦系統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 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 141A或FM 142。對於FM 142存取而言,IMC 131將該要求轉送到NVRAM控制器132。如果該要求導向I/O(例如,非儲存器及儲存器I/O裝置),則IMC 131將該要求傳送到I/O子系統115。I/O子系統115進一步將該位址解碼,而決定該位址指向NVRAM儲存器150、BIOS NVRAM 160、或其他非儲存器及儲存器I/O裝置。如果該位址指向NVRAM儲存器150或BIOS NVRAM 160,則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可將該目標位址解碼。可實施其他的解碼路徑。
如前文所述,在啟動期間,處理器提供小量的快取記憶體,以供執行前置可延伸韌體介面(PEI)BIOS碼。通常以一高階語言(例如,C程式語言)撰寫該PEI BIOS碼,而該高階語言於執行期間使用堆疊及/或堆積(heap)。該PEI BIOS碼負責初始的系統組態設定,例如,處理器、晶片組、處理器及晶片組互連(諸如HyperTransport 3.0、快速路徑互連(QuickPath Interconnect;簡稱QPI)1.1)、以及記憶體及儲存子系統之初始化。該PEI BIOS碼也負責交插記憶體(interleaving memory)、以及統一可延伸韌體介面
(Unified EFI;簡稱UEFI)標準中界定的被稱為驅動執行環境(Driver Execution Environment;簡稱DXE)的較高階BIOS模組之交遞(handing off)。
在某些系統中,在啟動程序的PEI階段期間,該處理器快取記憶體被設定為不收回模式(No Eviction Mode;簡稱NEM)。NEM也被稱為快取記憶體當作記憶體(Cache As RAM;簡稱CAR)模式,此即意指快取記憶體被執行程式碼流視為記憶體儲存裝置,因而所有的資料記憶體存取都是命中,且不會造成任何快取收回。該"不收回"避免在記憶體控制器及系統互連被初始化之前的寫回到系統記憶體。在某些情況中,寫回可能造成諸如機器檢查中止(machine-check abort)等的錯誤狀況。
在啟動程序的PEI階段期間(亦即,當處理器執行該PEI BIOS碼時),處理器快取記憶體的一主要部分被分割為:被映射到用來儲存該PEI BIOS碼的BIOS快取記憶體位址範圍之一第一分割區、以及被用於堆疊及堆積之一第二分割區。該處理器快取記憶體的該第一及第二分割區之組合也被稱為"NEM快取記憶體",這是因為該NEM快取記憶體之內容在該PEI BIOS碼的執行期間不會被收回。只有該處理器快取記憶體的一極小部分(例如,幾千位元組)可被用於"正規的"快取用途;例如,可被用於快取在執行期間產生的且可能即將被重新使用的資料。
由於I/O介面(例如,序列周邊介面(SPI))於處理器及BIOS快閃記憶體裝置間之緩慢速度,所以該PEI
BIOS碼被複製到該NEM快取記憶體的該第一分割區。在傳統的系統中,該NEM快取記憶體的該第一分割區與BIOS快閃記憶體中之該PEI BIOS碼區域間之位址範圍映射是1:1,以便確保對該PEI BIOS碼的任何提取可被快取,以便加速該PEI的執行。因此,在此類系統中,該BIOS快閃記憶體中之該PEI BIOS碼無法被壓縮。在傳統的系統中,該NEM快取記憶體被分割為具有2:1的典型大小比率之該等兩個分割區。在該NEM快取記憶體的大小為1.5 MB之一系統中,該分割意指:1 MB被用於該PEI BIOS碼,且0.5 MB被用於堆疊及堆積。如前文所述,該NEM快取記憶體的此種大小限制對該PEI BIOS碼的功能及執行施加了顯著的限制。
第3圖示出根據本發明的一實施例而能夠壓縮BIOS之一電腦系統300。電腦系統300包含被耦合到一記憶體及儲存子系統380之一處理器310。處理器310亦可被耦合到一或多個其他處理器520,而構成一多處理器系統。在一實施例中,處理器310可經由諸如HyperTransport 3.0、快速路徑互連(QPI)、或其他類似介面等的一高速平行互連或介面而被耦合到其他處理器520。
在一實施例中,電腦系統300將一壓縮BIOS映像檔582儲存在快閃記憶體裝置("BIOS快閃記憶體")162。BIOS快閃記憶體162經由I/O子系統115而被耦合到處理器310。由於使用了BIOS快閃記憶體162,所以可讓處理器310在重置之後如同傳統系統而在相同的位置上找
到BIOS;亦即,在可經由I/O子系統115而存取的一快閃記憶體裝置中找到BIOS。壓縮BIOS映像檔582儲存被用於在啟動期間建立電腦系統300的BIOS之用途之程式碼、參數、及其他資源。(在將壓縮BIOS映像檔582解壓縮之後的)解壓縮BIOS映像檔包含各種BIOS模組。每一BIOS模組又包含可被電腦系統300的處理器310執行之程式指令或"碼"。在一實施例中,該等BIOS模組中之一或多個BIOS模組含有PEI BIOS碼,該PEI BIOS碼被執行時,可讓處理器310在該電腦系統的初始啟動階段("PEI"階段)期間偵測且初始化各種系統資源(例如,記憶體及儲存子系統380以及非儲存I/O裝置137。該PEI BIOS碼包括發現建立初始系統資源所需的最小容量的記憶體所需之最小量的碼。
在一實施例中,電腦系統300進一步包含經由遵循與處理器間協定相同的協定之一高速鏈路(例如,HyperTransport 3.0及QPI等的高速鏈路)而被耦合到處理器310之BIOS NVRAM 560。由於BIOS NVRAM 560的較大容量及較小讀取延遲(與BIOS快閃記憶體162相比時),所以BIOS NVRAM 560可被用來:儲存解壓縮PEI BIOS碼(亦即,BIOS映像檔570),提供堆疊及堆積的空間,以及儲存程式碼執行期間產生的除錯或錯誤或進展狀態訊息。因此,快取記憶體113可被空出,且可被用於"正規的"快取用途;例如,可被用於快取在執行期間產生的且可能即將被重新使用的資料。快取記憶體113亦可被
用於快取該PEI BIOS碼中之某些部分,以便加速程式碼的執行。此外,由於使用了BIOS NVRAM 560,所以可壓縮該PEI BIOS碼,這是因為處理器310現在可將該碼解壓縮到BIOS NVRAM 560,且直接自BIOS NVRAM 560執行該碼。因此,該PEI BIOS碼的大小不再受限於NEM快取記憶體的大小,且可容納更多的功能,並可建構更多的支援。
在該PEI階段中,處理器310執行一序列的操作:自BIOS快閃記憶體162提取壓縮PEI BIOS映像檔582,將該壓縮PEI BIOS映像檔582解壓縮為BIOS NVRAM 560中之一BIOS映像檔570,以及自BIOS NVRAM 560執行BIOS映像檔570。處理器310也將快取記憶體113設定為寫回(Write Back;簡稱WB)模式。因此,處理器310可將快取記憶體113之全部容量用來快取該PEI BIOS碼以及該PEI BIOS碼的執行期間產生之資料。當快取記憶體113已被填滿且需要快取新的碼及/或資料時,可將快取記憶體113之較舊的內容寫回到BIOS NVRAM 560,因而利用了BIOS NVRAM 560的大容量以及至BIOS NVRAM 560之該高速介面。此種方式與快取記憶體113處於NEM時的有限存取能力(例如,用於快取用途的幾千位元組)形成對比。
在一實施例中,係以與NVRAM 130相同之諸如PCMS或其他基於PCM之技術等的記憶體/儲存器技術實施BIOS NVRAM 560。可在大約幾十億位元組的極大容量
下建構一PCMS裝置,且可以一高速鏈路(例如,HyperTransport 3.0鏈路及QPI鏈路等的高速鏈路)將該PCMS裝置耦合到一處理器。該PCMS裝置之位址空間可被映射到正規的系統位址空間。前文中已說明了與使用基於DRAM的記憶體比較時使用PCMS或其他基於PCM的記憶體之效益。然而,我們應可了解:可將具有與PCMS的讀取及寫入存取特徵類似之其他高容量且低延遲時間之位元組定址非揮發性記憶體裝置用來實施BIOS NVRAM 560。
我們應可了解:將BIOS NVRAM 560用來啟用PEI BIOS碼壓縮係與記憶體及儲存子系統380之組態無關。更具體而言,無論是否將NVRAM 130用於記憶體及儲存子系統380,都可使用BIOS NVRAM 560。在第3圖所示之實施例中,記憶體及儲存子系統380包含被分割為FM 142、NVRAM儲存器150、及TPM NVRAM 170之NVRAM 130。在該實施例中,NVRAM 130不需要包含一BIOS NVRAM分割區,這是因為該BIOS可存在於BIOS NVRAM 560及/或BIOS快閃記憶體162。在替代實施例中,記憶體及儲存子系統380可不包含NVRAM 130,或可包含具有不同於第3圖所示的分割區之NVRAM 130。此外,在記憶體及儲存子系統380不包含NVRAM 130之實施例中,處理器310不需要包含NVRAM控制器132及解碼表133,且TPM資料可被儲存在一區塊定址的非揮發性裝置(例如,快閃記憶體裝置)。在下文之說明中,
電腦系統300及這些替代實施例被統稱為電腦系統300及其變形。
第4圖是根據本發明的一實施例的啟動程序的PEI階段期間之一BIOS執行序列的一方法400之一流程圖。可以前文中以與第3圖有關之方式界定之電腦系統300及其變形執行方法400。為了顧及說明的簡化,在下文之說明中,處理器310係經由QPI鏈路(但是我們應可了解亦可使用其他的高速互連)而被耦合到其他處理器520及BIOS NVRAM 560。此外,為了顧及說明的簡化,將參照第3圖之實施例而說明第4圖的流程圖之操作。然而,我們應可了解:可以這些圖式所示的那些實施例以外之實施例執行該流程圖之該等操作。此外,參照第3圖而述及之該等實施例可執行與參照第4圖的流程圖所述之那些操作不同的操作。
在一實施例中,當該平台(例如,電腦系統300)在方塊401中開機時,該平台在方塊402中產生一開機重置(power on reset)信號,以便重置處理器310。在方塊403中,處理器310將快取記憶體模式設定為NEM,且將快取記憶體113中之NEM空間初始化。在PEI BIOS碼執行需要堆積及/或堆疊空間之實施例中,處理器310也建立快取記憶體113中之堆積及/或堆疊空間。然後在方塊404中,處理器310將本地處理器插座中之QPI鏈路初始化,此時該QPI鏈路將處理器310耦合到BIOS NVRAM 560。
在找到BIOS NVRAM 560之後,處理器310將BIOS NVRAM 560初始化,且利用自QPI鏈路接收的參數而決定BIOS NVRAM 560之大小。然後在方塊405中,處理器310將BIOS NVRAM 560初始化,且產生存取BIOS NVRAM 560的一位址範圍。在一實施例中,處理器310將一來源位址解碼器(Source Address Decoder;簡稱SAD)540配置成將BIOS NVRAM 560之大小映射到處理器記憶體位址空間,而產生該位址範圍。
然後,當該重置被解除時,處理器310在方塊406中將來自BIOS快閃記憶體162中之一預定位置的PEI BIOS碼之一較小部分複製到BIOS NVRAM 560。在一實施例中,該預定位置是在4 GB(GB:十億位元組)至4 GB-16 MB的系統位址空間,且該預定位置可被預先配置到SAD 540。該PEI BIOS碼的該小部分可將該PEI BIOS碼(亦即,壓縮BIOS映像檔582)之其餘部分解壓縮。此時,處理器310亦可在方塊407中將NEM資料(該NEM資料是NEM快取記憶體中被快取的資料)複製到BIOS NVRAM 560,且在方塊408中使用先前被複製到BIOS NVRAM 560的PEI BIOS碼之該小部分將該PEI BIOS碼之其餘部分解壓縮到BIOS NVRAM 560。
在該複製步驟之後,處理器310在方塊409中跳越到BIOS NVRAM 560之位址空間,且開始執行該解壓縮PEI BIOS碼(亦即,BIOS映像檔570)。在方塊410中,處理器310停用(亦即,關閉)NEM,且啟用快取記憶體
113中之WB模式。處理器310然後執行來自BIOS NVRAM 560之該解壓縮PEI BIOS碼,且將快取記憶體113的全部容量用來儲存該執行期間可能需要的碼及資料。然後,處理器310在方塊411將其餘的QPI鏈路(亦即,連接到其他處理器520之鏈路)初始化,且建立QPI鏈路路徑,且在方塊412中將每一處理器插座中之記憶體(例如,雙列直插式記憶體模組(DIMM))初始化,且在方塊413中建立全域系統記憶體位址路由。在方塊414中,處理器310進一步將來自BIOS NVRAM 560的BIOS映像檔之其餘部分複製到系統記憶體(例如,NM 141A),且在該BIOS執行的後續階段中跳越到該記憶體。處理器310然後在方塊415中將該等I/O裝置(例如,I/O裝置137以及其他I/O介面(在有該等其他I/O介面之情形下)初始化,且在方塊416中啟動作業系統。
在一實施例中,可將BIOS NVRAM 560的一部分設定為可寫入。因此,縱然DIMM記憶體初始化失敗,亦可將該PEI BIOS執行期間發生的錯誤記錄到該可寫入區域,作為除錯或錯誤或進展狀態訊息。在一實施例中,於該PEI BIOS碼期間,亦可將視訊及顯示錯誤訊息初始化。
在某些實施例中,可將一BIOS映像檔儲存在被直接耦合到一處理器而沒有經由一I/O子系統傳送的一高容量
且低延遲時間之位元組定址非揮發性記憶體裝置。在一實施例中,可以諸如PCMS或其他基於PCM的技術等的與NVRAM 130相同之記憶體/儲存器技術實施該裝置。該裝置可儲存具有一些額外的新特徵之一大型BIOS映像檔。該大型BIOS映像檔可支援多種平台,因而降低支援成本。該裝置亦可儲存諸如BIOS之組態及更新、管理引擎(ME)、電源控制單元(PCU)、電壓控制單元(Voltage Control Unit;簡稱VCU)、及微碼等的平台韌體之組態及更新。藉由將平台韌體整合到一單一的大型持續性記憶體,本發明之實施例開啟了有效率的平台韌體更新、平台組態設定、及應用管理支援之可能性。
第5圖示出根據本發明的一實施例而支援大型BIOS映像檔及平台韌體的一電腦系統500之一實施例。在該實施例中,電腦系統500將一或多個BIOS映像檔730儲存在BIOS NVRAM 560。與第3圖之實施例類似,BIOS NVRAM 560係經由遵循與處理器間協定相同的協定之一高速鏈路(例如,HyperTransport 3.0及QPI等的高速鏈路)而被耦合到處理器510。
在一實施例中,電腦系統500亦可包含作為一選項之BIOS快閃記憶體162。亦即,在一實施例中,電腦系統500包含BIOS快閃記憶體162及BIOS NVRAM 560。在替代實施例中,電腦系統500可包含BIOS NVRAM 560,但是不包含BIOS快閃記憶體162。在電腦系統500包含BIOS快閃記憶體162及BIOS NVRAM 560之實施例中,
處理器510之組態可被設定成選擇自BIOS快閃記憶體162或BIOS NVRAM 560執行該PEI BIOS碼。可經由處理器510之一接腳而設定該組態。該配置可以是軟性配置,此即意指:內定可能是BIOS快閃記憶體162;然而,ME 135或其他平台硬體於啟動時可先將該組態設定改變為BIOS NVRAM 560,然後才解除處理器重置。如果處理器510之組態被設定為選擇BIOS快閃記憶體162,則可不理會BIOS NVRAM 560的存在,且將自BIOS快閃記憶體162執行該PEI BIOS碼。
在處理器510被硬編碼(hard coded)為在啟動時只使用BIOS NVRAM 560之實施例中,電腦系統500不需要包含BIOS快閃記憶體162。移除BIOS快閃記憶體162的一項優點是降低了平台成本。
與第3圖之實施例類似,我們應可了解:將BIOS NVRAM 560用來支援大型BIOS碼及韌體係與記憶體及儲存子系統580之組態無關。更具體而言,無論是否將NVRAM 130用來作為記憶體及/或儲存器,都可使用BIOS NVRAM 560。在第5圖所示之實施例中,記憶體及儲存子系統580包含被分割為FM 142、NVRAM儲存器150、及TPM NVRAM 170之NVRAM 130。在該實施例中,NVRAM 130不需要包含一BIOS NVRAM分割區,這是因為BIOS可存在於BIOS NVRAM 560或BIOS快閃記憶體162。在替代實施例中,記憶體及儲存子系統580可以不包含NVRAM 130,或者可包含具有與第5圖所示的
那些分割區不同的分割區之NVRAM 130。此外,在記憶體及儲存子系統580不包含NVRAM 130之實施例中,處理器510不需要包含NVRAM控制器132及解碼表133,且可將TPM資料儲存在一區塊定址非揮發性裝置(例如,快閃記憶體裝置)。在下文之說明中,電腦系統500及這些替代實施例被統稱為電腦系統500及其變形。
第6圖是根據本發明的一實施例而在啟動程序的PEI階段中之一BIOS執行序列的一方法600之一流程圖。可以前文中以與第5圖有關之方式界定之電腦系統500及其變形執行方法600。為了顧及說明的簡化,在下文之說明中,處理器510係經由QPI鏈路(但是我們應可了解亦可使用其他的高速互連)而被耦合到其他處理器520及BIOS NVRAM 560。此外,為了顧及說明的簡化,將參照第5圖之實施例而說明第6圖的流程圖之操作。然而,我們應可了解:可以第5圖之實施例以及這些圖式所示的那些實施例以外之實施例執行該流程圖之該等操作。此外,參照第5圖而述及之該等實施例可執行與參照第6圖的流程圖所述之那些操作不同的操作。
在一實施例中,當該平台(例如,電腦系統500)在方塊601中開機時,電腦系統500在方塊602中產生一開機重置信號,以便重置處理器510。
如前文所述,在一實施例中,處理器510支援BIOS快閃記憶體162及BIOS NVRAM 560,且處理器510之組態可被設定成選擇這兩者中之一者以供PEI BIOS執行。
如果處理器510之組態被設定成選擇BIOS NVRAM 560作為BIOS儲存器,則ME 135或其他平台硬體可先將該組態設定為BIOS NVRAM 560,然後才解除處理器重置。然後在方塊603中,ME 135、硬體層級碼(例如,電源控制碼(pcode)或微碼(ucode))、或其他平台硬體可將被耦合到BIOS NVRAM 560之QPI鏈路初始化,藉由檢查該QPI鏈路上交換的參數而決定BIOS NVRAM 560內之韌體分割區740的大小,且以韌體分割區740之位址配置SAD 540。SAD 540需要被配置,而使位於該等韌體分割區的位址空間之位址可被轉送到BIOS NVRAM 560。
在處理器510被硬編碼為於啟動時只使用BIOS NVRAM 560之一實施例(第6圖中未示出)中,處理器510可將被耦合到BIOS NVRAM 560之QPI鏈路初始化,藉由檢查該QPI鏈路上交換的參數而決定BIOS NVRAM 560內之韌體分割區740的大小,且以韌體分割區740之位址配置SAD 540。
接續方塊603之操作,在釋出該重置信號之後,處理器510在方塊604中在一預定BIOS存取區(例如,系統記憶體位址空間的4 GB至4 GB-16 MB區)上自一韌體介面表(Firmware Interface Table;簡稱FIT)720提取該資訊。該區是在BIOS NVRAM 560內。該區(現在是在BIOS NVRAM 560中)含有一韌體介面表(FIT)720以及能夠存取韌體分割區740之必要資訊。韌體分割區740可儲存一或多個BIOS映像檔730以及其他平台韌體
碼及資料750。在一實施例中,FIT 720含有韌體分割區740的每一分割區、以及被用來作為NVRAM的一分割區之大小資訊。FIT 720具有用來指定每一BIOS映像檔730的位置及一對應的類型定義之機制。該類型定義尤其可被用來指定BIOS映像檔的版本、以及BIOS映像檔預期的平台之類型。
接續方塊604之操作,處理器510在方塊605中將記憶體類型範圍暫存器(Memory Type Range Register;簡稱MTRR)程式化,使快取記憶體113被設定為寫回(WB)模式,以便執行BIOS映像檔730中之一BIOS映像檔所含的PEI BIOS碼。處理器510然後在方塊606中跳越到含有該PEI BIOS碼之韌體分割區,且執行該碼。
然後,處理器510在方塊607中將其餘的QPI鏈路(例如,連接到其他處理器520的鏈路)初始化,且建立QPI鏈路路徑,在方塊608中將每一處理器插座中之記憶體(例如,DIMM)初始化,且在方塊609中建立全域系統記憶體位址路由。在方塊610中,處理器510進一步將來自BIOS NVRAM 560的BIOS映像檔之其餘部分複製到系統記憶體(例如,NM 141A),且在該BIOS執行的後續階段中跳越到該記憶體。處理器510也在方塊611中將該等I/O裝置(例如,I/O裝置137以及其他I/O介面(在有該等其他I/O介面之情形下)初始化,且在方塊612中啟動作業系統。
在該PEI BIOS碼之執行期間,如果該碼的最新版本
無法啟動,則可將該失敗記錄在BIOS NVRAM 560內之一BIOS旗標區,且可使用FIT 720中界定的處理程式碼而以該碼的一較早版本重新開始該啟動程序。
在一實施例中,可將BIOS NVRAM 560的一部分設定為可寫入的。因此,縱然DIMM記憶體初始化失敗,亦可將該PEI BIOS執行期間發生的錯誤記錄到該可寫入區域。在一實施例中,於該PEI BIOS碼期間,亦可將視訊及顯示錯誤訊息初始化。
一旦針對出自BIOS NVRAM 560的PEI BIOS碼執行而將快取記憶體113設定為寫回模式之後,該BIOS碼能夠將資料寫回到BIOS NVRAM 560。因此,該BIOS碼中到此刻為止尚未被執行的部分可以壓縮碼之形式被儲存在BIOS NVRAM 560。在快取記憶體113被設定為寫回模式之後,處理器510可將該PEI BIOS碼的其餘部分解壓縮,將該解壓縮碼寫到BIOS NVRAM 560,且自BIOS NVRAM 560的解壓縮區執行。
可使用被儲存在諸如非暫時性機器可讀取或電腦可讀取的儲存媒體(例如,磁碟、光碟、隨機存取記憶體、唯讀記憶體、快閃記憶體裝置、及相變化記憶體)等的非暫時性機器可讀取或電腦可讀取的媒體之指令及資料實施第4及6圖的流程圖所示之該等技術。
亦可以可包括儲存了可被用來將一電腦(或其他電子裝置)程式化成執行一程序的指令的非暫時性機器可讀取的媒體之電腦程式產品之形式提供本發明之實施例。該非
暫時性機器可讀取的媒體可包括(但不限於)軟碟、光碟、唯讀光碟(CD-ROM)、磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(Random Access Memory;簡稱RAM)、可抹除可程式唯讀記憶體(EPROM)、電氣可抹除可程式唯讀記憶體(EEPROM)、磁卡或光學卡、傳播媒體、或適於儲存電子指令之其他類型的媒體/機器可讀取的媒體。可以電腦程式產品之方式下載本發明之實施例,其中可經由一通訊鏈路(例如,一數據機或網路連接)且利用被包含在載波或其他傳播媒體中之資料信號而將程式自一遠端電腦(例如,一伺服器)傳輸到提出要求的一電腦(例如,一用戶端電腦)。
雖然已參照數個實施例而說明了本發明,但是熟悉此項技術者當可了解:本發明不限於所述之該等實施例,且可在後附的申請專利範圍之精神及範圍內以修改及改變實施本發明。本說明因而將被視為例示而非限制。
100,200,300,500‧‧‧電腦系統
130‧‧‧非揮發性隨機存取記憶體
152‧‧‧快閃/磁性/光學大量儲存器
141A‧‧‧近端記憶體部分
142‧‧‧遠端記憶體部分
141B‧‧‧近端記憶體快取記憶體
150‧‧‧非揮發性隨機存取記憶體儲存器
160,560‧‧‧基本輸入及輸出系統非揮發性隨機存取記憶體
170‧‧‧可信賴的平台模組非揮發性隨機存取記憶體
162‧‧‧基本輸入及輸出系統快閃記憶體
134‧‧‧可信賴的平台模組
140‧‧‧動態隨機存取記憶體
110,210,310,510‧‧‧處理器
111‧‧‧整合式圖形單元
112‧‧‧核心
113‧‧‧快取記憶體
114‧‧‧本地代理單元
131‧‧‧整合式記憶體控制器
180,280,380,580‧‧‧記憶體及儲存子系統
115‧‧‧輸入/輸出子系統
136‧‧‧網路
137‧‧‧非儲存輸入/輸出裝置
138,238‧‧‧輸入/輸出配接器
135‧‧‧管理引擎
133‧‧‧解碼表
132‧‧‧非揮發性隨機存取記憶體控制器
520‧‧‧其他處理器
582‧‧‧壓縮基本輸入及輸出系統映像檔
570,730‧‧‧基本輸入及輸出系統映像檔
540‧‧‧來源位址解碼器
740‧‧‧韌體分割區
720‧‧‧韌體介面表
750‧‧‧其他平台韌體碼及資料
若參照前文中之說明以及被用來示出本發明的實施例之各附圖,將可對本發明有最佳的了解。在該等圖式中:第1圖示出根據本發明的一實施例而將非揮發性隨機存取記憶體(NVRAM)用於平台儲存階層的一或多層之一電腦系統。
第2圖示出是根據本發明的一實施例而使用NVRAM作為傳統非揮發性大量儲存器及韌體記憶體的一完全替代
物之一電腦系統。
第3圖示出根據本發明的一實施例而能夠壓縮BIOS之一電腦系統。
第4圖示出根據本發明的一實施例的啟動程序的PEI階段期間之一BIOS執行序列之一方法。
第5圖示出根據本發明的一實施例而支援大型BIOS映像檔及韌體的一電腦系統之一實施例。
第6圖示出根據本發明的一實施例而在啟動程序的PEI階段期間之一BIOS執行序列之一方法。
100‧‧‧電腦系統
110‧‧‧處理器
111‧‧‧整合式圖形單元
112‧‧‧核心
113‧‧‧快取記憶體
114‧‧‧本地代理單元
115‧‧‧輸入/輸出子系統
130‧‧‧非揮發性隨機存取記憶體
131‧‧‧整合式記憶體控制器
132‧‧‧非揮發性隨機存取記憶體控制器
133‧‧‧解碼表
134‧‧‧可信賴的平台模組
135‧‧‧管理引擎
136‧‧‧網路
137‧‧‧非儲存輸入/輸出裝置
138‧‧‧輸入/輸出配接器
140‧‧‧動態隨機存取記憶體
141B‧‧‧近端記憶體快取記憶體
142‧‧‧遠端記憶體部分
150‧‧‧非揮發性隨機存取記憶體儲存器
152‧‧‧快閃/磁性/光學大量儲存器
160‧‧‧基本輸入及輸出系統非揮發性隨機存取記憶體
162‧‧‧基本輸入及輸出系統快閃記憶體
170‧‧‧可信賴的平台模組非揮發性隨機存取記憶體
172‧‧‧TPM快閃記憶體
180‧‧‧記憶體及儲存子系統
Claims (17)
- 一種用於儲存BIOS於非揮發性隨機存取記憶體的裝置,包含:一處理器,該處理器包含一或多個核心;該處理器內之一快取記憶體;以及被耦合到該處理器之一非揮發性隨機存取記憶體(NVRAM),該處理器可對該NVRAM執行位元組重寫及位元組抹除,且該NVRAM具有被儲存於其中之基本輸入及輸出系統(BIOS)映像檔,其中在啟動程序的前置可延伸韌體介面(PEI)階段期間,該BIOS映像檔之執行將該快取記憶體置於一寫回模式。
- 如申請專利範圍第1項之裝置,進一步包含:經由一I/O介面而被耦合到該處理器之一非揮發性記憶體(NVM),該NVM具有被儲存於其中之一壓縮BIOS映像檔,其中該處理器將該壓縮BIOS映像檔解壓縮,而產生被儲存在該NVRAM之BIOS映像檔。
- 如申請專利範圍第2項之裝置,其中該NVM經由一I/O子系統而被耦合到該處理器,且該NVRAM不通過該I/O子系統而被耦合到該處理器。
- 如申請專利範圍第1項之裝置,其中該NVRAM具有被儲存於其中之複數個BIOS映像檔,且其中該處理器在該啟動程序的該PEI階段期間執行該等BIOS映像檔中之一BIOS映像檔。
- 如申請專利範圍第4項之裝置,其中該複數個 BIOS映像檔包含一BIOS的多個版本。
- 如申請專利範圍第4項之裝置,其中該複數個BIOS映像檔支援多種平台或多種處理器家族。
- 如申請專利範圍第1項之裝置,其中該NVRAM包含被用來寫入該啟動程序期間產生的除錯或錯誤或進展狀態訊息之一可寫入區域。
- 一種用於儲存BIOS於非揮發性隨機存取記憶體的方法,包含:由一處理器將一基本輸入及輸出系統(BIOS)映像檔儲存在被耦合到該處理器之一非揮發性隨機存取記憶體(NVRAM),且該處理器可對該NVRAM執行位元組重寫及位元組抹除;在啟動程序的前置可延伸韌體介面(PEI)階段期間執行該BIOS映像檔;以及在該啟動程序的該PEI階段期間操作該處理器內之一快取記憶體處於一寫回模式。
- 如申請專利範圍第8項之方法,其中在將該BIOS映像檔儲存在該NVRAM之前,該方法進一步包含:由該處理器在一啟動程序期間經由一I/O介面而自一非揮發性記憶體(NVM)讀取一壓縮BIOS映像檔;以及由該處理器在該啟動程序的該PEI階段期間自該壓縮BIOS映像檔產生該BIOS映像檔。
- 如申請專利範圍第9項之方法,其中該NVM經由一I/O子系統而被耦合到該處理器,且該NVRAM不通過 該I/O子系統而被耦合到該處理器。
- 如申請專利範圍第8項之方法,其中該NVRAM具有被儲存於其中之複數個BIOS映像檔,該方法進一步包含:在該啟動程序的該PEI階段期間執行該等BIOS映像檔中之一BIOS映像檔。
- 如申請專利範圍第11項之方法,其中該複數個BIOS映像檔包含一BIOS的多個版本。
- 如申請專利範圍第11項之方法,其中該複數個BIOS映像檔支援多種平台或多種處理器家族。
- 如申請專利範圍第8項之方法,其中該NVRAM包含被用來寫入該啟動程序期間產生的除錯或錯誤或進展狀態訊息之一可寫入區域。
- 一種用於儲存BIOS於非揮發性隨機存取記憶體的系統,包含:用來將一基本輸入及輸出系統(BIOS)映像檔儲存在被耦合到一處理器之一非揮發性隨機存取記憶體(NVRAM)之機構其中該處理器可對該NVRAM執行位元組重寫及位元組抹除;用來在啟動程序的前置可延伸韌體介面(PEI)階段期間執行該BIOS映像檔之機構;以及用來在該啟動程序的該PEI階段期間操作該處理器內之一快取記憶體處於一寫回模式之機構。
- 如申請專利範圍第15項之系統,進一步包含: 用來在一啟動程序期間經由一I/O介面而自一非揮發性記憶體(NVM)讀取一壓縮BIOS映像檔之機構;以及用來在該啟動程序的該PEI階段期間自該壓縮BIOS映像檔產生該BIOS映像檔之機構。
- 如申請專利範圍第15項之系統,其中該NVRAM具有被儲存於其中之複數個BIOS映像檔,該系統進一步包含:用來在該啟動程序的該PEI階段期間執行該等BIOS映像檔中之一BIOS映像檔之機構。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/054417 WO2013048491A1 (en) | 2011-09-30 | 2011-09-30 | Apparatus, method and system that stores bios in non-volatile random access memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201331843A TW201331843A (zh) | 2013-08-01 |
TWI499977B true TWI499977B (zh) | 2015-09-11 |
Family
ID=47996222
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101132015A TWI499977B (zh) | 2011-09-30 | 2012-09-03 | 儲存bios於非揮發性隨機存取記憶體的裝置、方法及系統 |
TW104120743A TWI564801B (zh) | 2011-09-30 | 2012-09-03 | 儲存bios於非揮發性隨機存取記憶體的裝置、方法及系統 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104120743A TWI564801B (zh) | 2011-09-30 | 2012-09-03 | 儲存bios於非揮發性隨機存取記憶體的裝置、方法及系統 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9430372B2 (zh) |
EP (1) | EP2761476B1 (zh) |
CN (1) | CN104115136B (zh) |
TW (2) | TWI499977B (zh) |
WO (1) | WO2013048491A1 (zh) |
Families Citing this family (53)
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 |
WO2013089685A1 (en) | 2011-12-13 | 2013-06-20 | Intel Corporation | Enhanced system sleep state support in servers using non-volatile random access memory |
US9448922B2 (en) | 2011-12-21 | 2016-09-20 | Intel Corporation | High-performance storage structures and systems featuring multiple non-volatile memories |
CN104115132B (zh) | 2011-12-22 | 2018-02-06 | 英特尔公司 | 借助于存储器通道关闭的功率节约 |
US9582216B2 (en) * | 2011-12-28 | 2017-02-28 | Intel Corporation | Method and device to distribute code and data stores between volatile memory and non-volatile memory |
CN105917308B (zh) * | 2014-01-22 | 2019-02-12 | 惠普发展公司,有限责任合伙企业 | 分区为包括元数据区域的多个区域的字节可寻址非易失性读写主存储器 |
EP3100168B1 (en) * | 2014-01-30 | 2022-01-19 | Hewlett-Packard Development Company, L.P. | Data erasure of a target device |
US9419952B2 (en) * | 2014-06-05 | 2016-08-16 | Stmicroelectronics (Grenoble 2) Sas | Memory encryption method compatible with a memory interleaved system and corresponding system |
WO2016099665A1 (en) | 2014-12-19 | 2016-06-23 | Rambus, Inc. | Dynamic random access memory (dram) component for high-performance,high-capacity registered memory modules |
US10204047B2 (en) | 2015-03-27 | 2019-02-12 | Intel Corporation | Memory controller for multi-level system memory with coherency unit |
CN105630407A (zh) * | 2015-05-29 | 2016-06-01 | 上海磁宇信息科技有限公司 | 一种计算系统及操作系统调度内存和启动系统的方法 |
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 |
CN106528491A (zh) * | 2015-09-11 | 2017-03-22 | 展讯通信(上海)有限公司 | 移动终端 |
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 |
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 |
US10185501B2 (en) | 2015-09-25 | 2019-01-22 | Intel Corporation | Method and apparatus for pinning memory pages in a multi-level system memory |
US10203893B2 (en) | 2015-10-22 | 2019-02-12 | American Megatrends, Inc. | Memory channel storage device detection |
US10558468B2 (en) * | 2015-10-22 | 2020-02-11 | American Megatrends International, Llc | Memory channel storage device initialization |
US9792224B2 (en) | 2015-10-23 | 2017-10-17 | Intel Corporation | Reducing latency by persisting data relationships in relation to corresponding data in persistent memory |
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 |
KR102395195B1 (ko) * | 2016-01-07 | 2022-05-10 | 삼성전자주식회사 | 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
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 |
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 |
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 |
TWI621017B (zh) * | 2017-03-06 | 2018-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
TWI662403B (zh) * | 2017-03-06 | 2019-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置開機方法 |
US10474473B2 (en) * | 2017-04-11 | 2019-11-12 | Intel Corporation | Technology to facilitate rapid booting with high-speed and low-speed nonvolatile memory |
US10958729B2 (en) * | 2017-05-18 | 2021-03-23 | Intel Corporation | Non-volatile memory express over fabric (NVMeOF) using volume management device |
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 |
CN111279325A (zh) * | 2017-10-31 | 2020-06-12 | 惠普发展公司,有限责任合伙企业 | 非易失性双列直插式存储器模块的配置 |
US10860244B2 (en) | 2017-12-26 | 2020-12-08 | Intel Corporation | Method and apparatus for multi-level memory early page demotion |
TWI722269B (zh) * | 2018-01-26 | 2021-03-21 | 和碩聯合科技股份有限公司 | 韌體更新方法及使用此方法的電子裝置 |
CN108287670B (zh) * | 2018-01-30 | 2021-07-02 | 郑州云海信息技术有限公司 | 一种系统关机时保护数据的方法及bmc |
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 |
US11550592B2 (en) * | 2018-06-29 | 2023-01-10 | Intel Corporation | Methods and apparatus to utilize non-volatile memory for computer system boot |
WO2020061098A1 (en) * | 2018-09-17 | 2020-03-26 | Micron Technology, Inc. | Cache operations in a hybrid dual in-line memory module |
US11055228B2 (en) | 2019-01-31 | 2021-07-06 | Intel Corporation | Caching bypass mechanism for a multi-level memory |
JP2020149236A (ja) * | 2019-03-12 | 2020-09-17 | キオクシア株式会社 | 電子機器及び電子機器の制御方法 |
US10636486B1 (en) * | 2019-03-26 | 2020-04-28 | Winbond Electronics Corp. | Resistive memory and control method thereof |
CN110941452B (zh) * | 2019-10-11 | 2022-02-18 | 合肥联宝信息技术有限公司 | 一种配置方法、bios芯片和电子设备 |
US11029868B1 (en) * | 2020-01-29 | 2021-06-08 | Dell Products L.P. | Initialization code/data memory mapping system |
US11941409B2 (en) | 2020-04-20 | 2024-03-26 | Intel Corporation | Methods, systems, and apparatuses for a multiprocessor boot flow for a faster boot process |
US11586446B1 (en) * | 2020-05-20 | 2023-02-21 | Marvell Asia Pte Ltd | System and methods for hardware-based PCIe link up based on post silicon characterization |
US20230176735A1 (en) * | 2020-05-22 | 2023-06-08 | Intel Corporation | Accelerating system boot times via host-managed device memory |
US20220197746A1 (en) * | 2020-12-18 | 2022-06-23 | Advanced Micro Devices, Inc. | Combination bios with a/b recovery |
CN113064610A (zh) * | 2021-03-09 | 2021-07-02 | 山东英信计算机技术有限公司 | 一种更新bios的方法、装置及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI247489B (en) * | 2003-06-16 | 2006-01-11 | Intel Corp | Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan |
US7058779B1 (en) * | 2001-03-05 | 2006-06-06 | Advanced Micro Devices, Inc. | Computer system initialization via boot code stored in a non-volatile memory having an interface compatible with synchronous dynamic random access memory |
TW200949688A (en) * | 2008-05-27 | 2009-12-01 | Via Tech Inc | Method to write new value to re-writable non-volatile state and microprocessor therefor |
Family Cites Families (96)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62191947A (ja) | 1986-02-19 | 1987-08-22 | Alps Electric Co Ltd | デイスクキヤツシユ制御処理方式 |
DE68915186T2 (de) | 1988-03-09 | 1994-08-25 | Toshiba Kawasaki Kk | Tragbarer elektronischer Apparat. |
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 |
GB2251324B (en) | 1990-12-31 | 1995-05-10 | Intel Corp | File structure for a non-volatile semiconductor memory |
US5519843A (en) | 1993-03-15 | 1996-05-21 | M-Systems | Flash memory system providing both BIOS and user storage capability |
US5511202A (en) | 1993-07-26 | 1996-04-23 | International Business Machines Corporation | Desktop computer system having zero-volt system suspend and control unit for ascertaining interrupt controller base address |
JPH08137634A (ja) | 1994-11-09 | 1996-05-31 | Mitsubishi Electric Corp | フラッシュディスクカード |
US5822581A (en) | 1995-09-29 | 1998-10-13 | Intel Corporation | Method for CMOS configuration information storage and retrieval in flash |
US6018806A (en) | 1995-10-16 | 2000-01-25 | Packard Bell Nec | Method and system for rebooting a computer having corrupted memory using an external jumper |
US5974576A (en) | 1996-05-10 | 1999-10-26 | Sun Microsystems, Inc. | On-line memory monitoring system and methods |
US6035432A (en) | 1997-07-31 | 2000-03-07 | Micron Electronics, Inc. | System for remapping defective memory bit sets |
US5912839A (en) | 1998-06-23 | 1999-06-15 | Energy Conversion Devices, Inc. | Universal memory element and method of programming same |
US6326973B1 (en) | 1998-12-07 | 2001-12-04 | Compaq Computer Corporation | Method and system for allocating AGP/GART memory from the local AGP memory controller in a highly parallel system architecture (HPSA) |
US6345349B1 (en) | 1998-12-30 | 2002-02-05 | Intel Corporation | Combined memory and mass storage device |
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 |
US7165137B2 (en) * | 2001-08-06 | 2007-01-16 | Sandisk Corporation | System and method for booting from a non-volatile application and file storage device |
US7107386B1 (en) | 2001-08-08 | 2006-09-12 | Pasternak Solutions, Llc | Memory bus arbitration using memory bank readiness |
US6990577B2 (en) | 2001-08-10 | 2006-01-24 | Intel Corporation | Updating a BIOS image by replacing a portion of the BIOS image with a portion of another BIOS image |
US6957295B1 (en) | 2002-01-18 | 2005-10-18 | Lexar Media, Inc. | File management of one-time-programmable nonvolatile memory devices |
FI20021620A (fi) | 2002-09-10 | 2004-03-11 | Nokia Corp | Muistirakenne, järjestelmä ja elektroniikkalaite sekä menetelmä muistipiirin yhteydessä |
WO2004099912A2 (en) * | 2003-05-02 | 2004-11-18 | Egenera, Inc. | System and method for emulating serial port communication |
US7836248B2 (en) | 2003-07-29 | 2010-11-16 | International Business Machines Corporation | Methods and systems for managing persistent storage of small data objects |
US7165170B2 (en) | 2003-09-12 | 2007-01-16 | Intel Corporation | System and method for firmware to export pre-boot data into the operating system runtime environment |
US20050120265A1 (en) | 2003-12-02 | 2005-06-02 | Pline Steven L. | Data storage system with error correction code and replaceable defective memory |
US20050251617A1 (en) | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory 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 |
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 |
US20050223157A1 (en) * | 2004-04-02 | 2005-10-06 | Matti Floman | Fast non-volatile random access memory in electronic devices |
EP1870814B1 (en) | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
US20050273584A1 (en) | 2004-06-07 | 2005-12-08 | Wisecup George D | Locating environment variables in non-volatile memory |
US7590918B2 (en) | 2004-09-10 | 2009-09-15 | Ovonyx, Inc. | Using a phase change memory as a high volume memory |
US20060184719A1 (en) | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US20080250189A1 (en) | 2005-05-18 | 2008-10-09 | Ziyi Cheng | Circuit and Method for Improving Operation Life of Memory |
US20070005922A1 (en) | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
US7457928B2 (en) | 2005-10-28 | 2008-11-25 | International Business Machines Corporation | Mirroring system memory in non-volatile random access memory (NVRAM) for fast power on/off cycling |
US8637342B2 (en) | 2005-11-10 | 2014-01-28 | Ovonyx, Inc. | Phase change memory with threshold switch select device |
US7600078B1 (en) | 2006-03-29 | 2009-10-06 | Intel Corporation | Speculatively performing read transactions |
US20070260869A1 (en) * | 2006-05-01 | 2007-11-08 | Symbol Technologies, Inc. | Apparatus and Method for Booting a Computing Device from a NAND Memory Device |
US7913147B2 (en) | 2006-05-08 | 2011-03-22 | Intel Corporation | Method and apparatus for scrubbing memory |
JP4700562B2 (ja) | 2006-05-18 | 2011-06-15 | 株式会社バッファロー | データ記憶装置およびデータ記憶方法 |
US7930468B2 (en) | 2006-05-23 | 2011-04-19 | Dataram, Inc. | System for reading and writing on flash memory device having plural microprocessors |
CN100451987C (zh) | 2006-05-23 | 2009-01-14 | 北京金元龙脉信息科技有限公司 | 对计算机bios固件进行安全风险检测的系统和方法 |
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 |
KR20090102789A (ko) | 2006-12-06 | 2009-09-30 | 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) | 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법 |
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 |
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 |
US8145893B2 (en) * | 2007-10-26 | 2012-03-27 | Intel Corporation | Hot-plugging a memory device |
US8239665B2 (en) | 2007-10-31 | 2012-08-07 | Dell Products L.P. | Methods, systems and media for configuring boot options |
US7882341B2 (en) * | 2007-12-31 | 2011-02-01 | Intel Corporation | System and method to enable parallelization of early platform initialization |
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 |
US20090313416A1 (en) | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
CN101620539B (zh) | 2008-07-01 | 2013-12-25 | 联想(北京)有限公司 | 开关机方法和计算机 |
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 |
US20110197018A1 (en) | 2008-10-06 | 2011-08-11 | Sam Hyuk Noh | Method and system for perpetual computing using non-volatile random access memory |
KR101573047B1 (ko) | 2009-01-23 | 2015-12-02 | 삼성전자주식회사 | 복합 메모리 장치 및 이를 이용한 i/o 처리 방법 |
KR20100091544A (ko) | 2009-02-10 | 2010-08-19 | 삼성전자주식회사 | 메모리 시스템 및 그 마모도 관리 방법 |
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 |
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 |
US7898859B2 (en) | 2009-06-15 | 2011-03-01 | Micron Technology, Inc. | Use of emerging non-volatile memory elements with flash memory |
US8626997B2 (en) | 2009-07-16 | 2014-01-07 | Micron Technology, Inc. | Phase change memory in a dual inline memory module |
US8341387B2 (en) * | 2009-08-18 | 2012-12-25 | Dell Products, Lp | System and method to manipulate a system setting when booting an information handling system |
KR20110029402A (ko) * | 2009-09-15 | 2011-03-23 | 삼성전자주식회사 | 비휘발성 메모리 장치, 및 그것을 포함한 메모리 시스템, 그것의 쓰기 전류 제어 방법 |
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 |
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 |
KR20120119092A (ko) * | 2011-04-20 | 2012-10-30 | 삼성전자주식회사 | 반도체 메모리 시스템 및 이의 구동 방법 |
US8607089B2 (en) | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
US20120311262A1 (en) | 2011-06-01 | 2012-12-06 | International Business Machines Corporation | Memory cell presetting for improved memory performance |
US20120324156A1 (en) | 2011-06-17 | 2012-12-20 | Naveen Muralimanohar | Method and system of organizing a heterogeneous memory architecture |
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 |
WO2013048497A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy |
EP2761469B1 (en) | 2011-09-30 | 2019-11-13 | Intel Corporation | Non-volatile random access memory (nvram) as a replacement for traditional mass storage |
US20130275661A1 (en) | 2011-09-30 | 2013-10-17 | Vincent J. Zimmer | Platform storage hierarchy with non-volatile random access memory with configurable partitions |
WO2013048467A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Generation of far memory access signals based on usage statistic tracking |
EP3364304B1 (en) | 2011-09-30 | 2022-06-15 | INTEL Corporation | Memory channel that supports near memory and far memory access |
EP2761465B1 (en) | 2011-09-30 | 2022-02-09 | Intel Corporation | Autonomous initialization of non-volatile random access memory in a computer system |
CN103946819B (zh) | 2011-09-30 | 2017-05-17 | 英特尔公司 | 用于非易失性系统存储器的统计耗损均衡 |
US20150089102A1 (en) * | 2013-09-23 | 2015-03-26 | Lsi Corporation | Solid state drives that cache boot data |
-
2011
- 2011-09-30 EP EP11873014.2A patent/EP2761476B1/en active Active
- 2011-09-30 US US13/997,940 patent/US9430372B2/en active Active
- 2011-09-30 CN CN201180075111.3A patent/CN104115136B/zh active Active
- 2011-09-30 WO PCT/US2011/054417 patent/WO2013048491A1/en active Application Filing
-
2012
- 2012-09-03 TW TW101132015A patent/TWI499977B/zh active
- 2012-09-03 TW TW104120743A patent/TWI564801B/zh not_active IP Right Cessation
-
2016
- 2016-08-29 US US15/250,832 patent/US10055353B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058779B1 (en) * | 2001-03-05 | 2006-06-06 | Advanced Micro Devices, Inc. | Computer system initialization via boot code stored in a non-volatile memory having an interface compatible with synchronous dynamic random access memory |
TWI247489B (en) * | 2003-06-16 | 2006-01-11 | Intel Corp | Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan |
TW200949688A (en) * | 2008-05-27 | 2009-12-01 | Via Tech Inc | Method to write new value to re-writable non-volatile state and microprocessor therefor |
Also Published As
Publication number | Publication date |
---|---|
CN104115136A (zh) | 2014-10-22 |
US10055353B2 (en) | 2018-08-21 |
EP2761476A4 (en) | 2015-10-14 |
TWI564801B (zh) | 2017-01-01 |
TW201331843A (zh) | 2013-08-01 |
TW201604785A (zh) | 2016-02-01 |
EP2761476B1 (en) | 2017-10-25 |
US20170052896A1 (en) | 2017-02-23 |
EP2761476A1 (en) | 2014-08-06 |
CN104115136B (zh) | 2017-12-08 |
US20140082262A1 (en) | 2014-03-20 |
US9430372B2 (en) | 2016-08-30 |
WO2013048491A1 (en) | 2013-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI499977B (zh) | 儲存bios於非揮發性隨機存取記憶體的裝置、方法及系統 | |
US10001953B2 (en) | System for configuring partitions within non-volatile random access memory (NVRAM) as a replacement for traditional mass storage | |
US11054876B2 (en) | Enhanced system sleep state support in servers using non-volatile random access memory | |
TWI468938B (zh) | 用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,設備及系統 | |
US9378133B2 (en) | Autonomous initialization of non-volatile random access memory in a computer system | |
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 | |
WO2013095437A1 (en) | System and method for intelligently flushing data from a processor into a memory subsystem | |
US9202548B2 (en) | Efficient PCMS refresh mechanism |