計算機系統(tǒng)中的非易失性隨機存取存儲器的自主初始化的制作方法
【專利摘要】非易失性隨機存取存儲器(NVRAM)在計算機系統(tǒng)中用來存儲允許NVRAM在通電時自主地初始化它本身的信息。計算機系統(tǒng)包括處理器、耦合到處理器的NVRAM控制器以及包括NVRAM控制器的NVRAM。NVRAM是可由處理器來字節(jié)重寫和字節(jié)擦除的。NVRAM存儲了存儲器接口表,其中包含信息,供NVRAM控制器在計算機系統(tǒng)通電時自主地初始化NVRAM,而沒有與NVRAM外部的固件和處理器交互。該信息由NVRAM控制器提供給處理器,以允許處理器訪問NVRAM。
【專利說明】計算機系統(tǒng)中的非易失性隨機存取存儲器的自主初始化
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實施例涉及計算機系統(tǒng),更具體來說,涉及用于初始化非易失性隨機存取存儲器的自主機制。
【背景技術(shù)】
[0002]A.當(dāng)前的存儲器和存儲裝置配置
當(dāng)今計算機革新的限制因素之一是存儲器和存儲裝置技術(shù)。在常規(guī)計算機系統(tǒng)中,系統(tǒng)存儲器通常由動態(tài)隨機存取存儲器(DRAM)來實現(xiàn)?;贒RAM的存儲器甚至在沒有發(fā)生存儲器讀取或?qū)懭霑r也耗電,因為它必須不斷地對內(nèi)部電容器再充電?;贒RAM的存儲器是易失性的,這意味著,一旦去除電力,則DRAM存儲器中存儲的數(shù)據(jù)丟失。此外,DRAM裝置通常被組裝為雙列直插存儲器模塊(DIMM),其通常包括電可擦可編程只讀存儲器(EEPROM)以存儲串行存在檢測(SPD)數(shù)據(jù)。STO數(shù)據(jù)包含與DIMM大小、類型、制造商、定時有關(guān)的信息以及與存儲器有關(guān)的其它信息。EEPROM(又稱作“SPD EEPR0M”)能夠是通過系統(tǒng)管理總線(SMbus)可訪問的。
[0003]當(dāng)計算機系統(tǒng)引導(dǎo)時,其基本輸入和輸出系統(tǒng)(BIOS)讀取系統(tǒng)中的全部DIMM的SPD數(shù)據(jù),以及基于sro數(shù)據(jù),將存儲控制器配置成初始化存儲器子系統(tǒng)。BIOS代碼極大地取決于DIMM技術(shù)和存儲控制器實現(xiàn)。每當(dāng)引入新的存儲器技術(shù)時,不同的BIOS代碼需要被使用,并且它不可與現(xiàn)有存儲控制器配合工作。此外,存儲器初始化的復(fù)雜度高,并且對sro數(shù)據(jù)的訪問速度低。因此,它可能花費數(shù)秒來初始化系統(tǒng)存儲器。
[0004]B.相變存儲器(PCM)及相關(guān)技術(shù)
有時又稱作PCME、PRAM、PCRAM、奧氏統(tǒng)一存儲器、硫?qū)倩颮AM和C-RAM的相變存儲器(PCM)是一種非易失性計算機存儲器,其利用硫?qū)倩锊AУ莫毺匦袨?。由于電流的通過所產(chǎn)生的熱量,這個材料能夠在兩種狀態(tài)之間切換:結(jié)晶的和非晶的。PCM的最近版本能夠取得兩種附加的不同狀態(tài),從而有效地使存儲器存儲容量翻倍。PCM是在非易失性作用上與閃速存儲器(又稱作“閃存”)競爭的多種新存儲器技術(shù)之一。閃速存儲器具有多個實際問題,這些問題是這些替代物希望解決的。
[0005]例如,PCM能夠在快速寫入是重要的應(yīng)用中提供高得多的性能,部分是因為存儲器元件能夠被更快速地切換,并且還因為單獨的位可改變成I或0,而無需首先擦除整個單元塊(如閃存的情況那樣)。PCM的高性能使它在當(dāng)前因存儲器訪問定時而性能受限的非易失性存儲器作用中潛在地非常有益。
[0006]另外,雖然PCM裝置隨著使用而降級,但是它們的降級與閃存相比要緩慢得多。PCM裝置可經(jīng)受大約I億次寫循環(huán)。PCM使用壽命受到諸如因編程期間的GeSbTe(GST)熱膨脹引起的降級、金屬(和其它材料)遷移之類的機制和其它機制限制。
【專利附圖】
【附圖說明】
[0007]通過參照用于示出本發(fā)明的實施例的以下描述和附圖,可以最佳地理解本發(fā)明。附圖中:
圖1示出按照本發(fā)明的一個實施例的一種計算機系統(tǒng),該系統(tǒng)在平臺存儲分級結(jié)構(gòu)的一層或多層中使用非易失性存儲器隨機存取(NVRAM)。
[0008]圖2示出按照本發(fā)明的一個實施例、支持NVRAM的自主初始化的計算機系統(tǒng)。
[0009]圖3示出按照本發(fā)明的一個實施例在NVRAM中存儲的存儲器接口表(MIT)的一個示例。
[0010]圖4示出按照本發(fā)明的一個實施例自主初始化NVRAM的方法。
【具體實施方式】
[0011]在以下描述中,提出許多具體細(xì)節(jié)。但是,要理解,即使沒有這些具體細(xì)節(jié),也可實施本發(fā)明的實施例。在其它情況下,沒有詳細(xì)示出眾所周知的電路、結(jié)構(gòu)和技術(shù),以免影響對本描述的理解。
[0012]說明書中提到“一個實施例”、“實施例”、“一個示例實施例”等表明所述的實施例可包括特定特征、結(jié)構(gòu)或特性,但可能不一定每個實施例都包括該特定特征、結(jié)構(gòu)或特性。此外,這類短語不一定指同一個實施例。此外,在結(jié)合某個實施例來描述某個特定特征、結(jié)構(gòu)或特性時,無論是否明確地描述,均認(rèn)為結(jié)合其它實施例來實現(xiàn)這種特征、結(jié)構(gòu)或特性是在本領(lǐng)域技術(shù)人員的知識范圍之內(nèi)的。
[0013]在以下描述和權(quán)利要求書中,可使用術(shù)語“耦合”和“連接”及其派生詞。應(yīng)當(dāng)理解,這些術(shù)語并不是要作為彼此的同義詞?!榜詈稀庇糜诒砻骺梢曰蛘呖梢圆槐舜酥苯游锢砘螂娊佑|的兩個或更多元件相互配合或交互?!斑B接”用于表明相互耦合的兩個或更多元件之間的通信的建立。
[0014]加括號的文本以及具有虛線邊界的框(例如長劃線、短劃線、點劃線、點)在本文中有時用來示出可選的操作/組件,它們對本發(fā)明的實施例添加附加特征。但是,這種標(biāo)記法不應(yīng)被視為意味著這些是僅有的選項或者可選的操作/組件,和/或具有實線邊界的框在本發(fā)明的某些實施例中不是可選的。
[0015]以下所述的本發(fā)明的實施例提供用于初始化非易失性隨機存取存儲器(NVRAM)、例如相變存儲器和開關(guān)(PCMS)的自主機制。在一個實施例中,NVRAM的第一部分存儲了存儲器接口表(MIT),該表包含與NVRAM的第二部分(S卩,NVRAM內(nèi)的區(qū)域)有關(guān)的信息。MIT能夠由處理器來讀取和使用,以訪問NVRAM中的BI OS。由于NVRAM是非易失性的,所以MIT中的數(shù)據(jù)跨電力循環(huán)被保持。MIT的使用消除與SPD EEPROM關(guān)聯(lián)的成本,并且使NVRAM和系統(tǒng)的其余部分能夠快速初始化。在一個實施例中,如果計算機系統(tǒng)的管理系統(tǒng)要求NVRAM的SH)數(shù)據(jù)以用于帶外訪問,則NVRAM控制器能夠創(chuàng)建代理,并且將sro數(shù)據(jù)提供給管理系統(tǒng),而無需SPD EEPR0M。
[0016]此外,本發(fā)明的實施例使NVRAM能夠由系統(tǒng)用作引導(dǎo)和記錄裝置。在一個實施例中,NVRAM內(nèi)的有些區(qū)域存儲固件(例如BIOS代碼)、NVRAM的物理特性的描述、差錯圖以及其它數(shù)據(jù)和代碼。本文所述的NVRAM自主初始化(即,自己初始化)技術(shù)不要求BIOS初始化,因而使NVRAM能夠可用作引導(dǎo)目標(biāo)。NVRAM用于存儲BIOS還消除了對于BIOS閃存和其它I/O附連的非易失性系統(tǒng)引導(dǎo)介質(zhì)的需要。通過允許比常規(guī)BIOS閃存要大的占用面積,本發(fā)明的實施例慮及能夠不僅存儲引導(dǎo)序列而且存儲嵌入(或嵌套)管理程序和平臺代理的系統(tǒng)固件的進(jìn)一步發(fā)展。在期望后向兼容性的一個實施例中,計算機系統(tǒng)能夠包括NVRAM以及用于存儲BIOS引導(dǎo)序列的BIOS閃存。
[0017]本發(fā)明的實施例還引入NVRAM硬件(例如NVRAM控制器),其負(fù)責(zé)執(zhí)行初始化序列。初始化序列設(shè)置NVRAM以供處理器來讀訪問。在NVRAM控制器設(shè)置NVRAM以供讀訪問之后,NVRAM控制器還能夠基于MIT中存儲的數(shù)據(jù)來配置NVRAM,并且向處理器報告MIT中存儲的信息。這將允許處理器或系統(tǒng)硬件/固件(例如NVRAM地址解碼器)將NVRAM地址范圍映射到系統(tǒng)地址范圍。在一個實施例中,MIT中存儲的數(shù)據(jù)是可配置的,這意味著,每個NVRAM區(qū)域的大小和地址范圍能夠按照系統(tǒng)的實際需要來改變。
[0018]圖1是示出計算機系統(tǒng)100的框圖,所述計算機系統(tǒng)100在平臺存儲分級結(jié)構(gòu)的一層或多層中使用字節(jié)可尋址的非易失性隨機存取存儲器(NVRAM) 130。本文中的術(shù)語“平臺存儲分級結(jié)構(gòu)”表示由計算機系統(tǒng)100用于存儲數(shù)據(jù)、指令、狀態(tài)以及其它永久和非永久信息的整個存儲介質(zhì)。在一個實施例中,計算機系統(tǒng)100中的所有永久存儲裝置能夠按照可配置方式合并為一個NVRAM 130。另外,NVRAM 130的某個部分能夠被分配為系統(tǒng)存儲器的DRAM替代品。NVRAM 130的多功能性促進(jìn)從具有對永久的面向塊的文件系統(tǒng)進(jìn)行操作的操作系統(tǒng)(OS)的常規(guī)平臺到理解充分持久的字節(jié)可尋址的單級數(shù)據(jù)存儲裝置的OS的技術(shù)遷移。
[0019]在一個實施例中,NVRAM 130能夠配置成在典型平臺存儲分級結(jié)構(gòu)中實現(xiàn)作為下列一個或多個的作用:高速緩存、系統(tǒng)存儲器(又稱作主存儲器、主要存儲器、可執(zhí)行存儲器)、存儲裝置(又稱作輔助存儲裝置和大容量存儲裝置)、固件存儲器(例如引導(dǎo)存儲器(又稱作BIOS閃存)、置信平臺模塊(TPM)存儲器、等等)。還預(yù)期具有不同作用的平臺存儲分級結(jié)構(gòu),并且NVRAM 130的應(yīng)用并不局限于上述作用。
[0020]NVRAM 130按照其特性和/或其在平臺存儲分級結(jié)構(gòu)中的應(yīng)用,可與其它指令和數(shù)據(jù)存儲器/存儲裝置技術(shù)相區(qū)分。例如,NVRAM 130不同于:
1)作為專用于某個處理器核心或者由多個處理器核心共享的高速緩存來應(yīng)用的靜態(tài)隨機存取存儲器(SRAM);
2)作為處理器內(nèi)部(例如與處理器相同的管芯上)和/或處理器外部(例如與處理器相同或不同的封裝上)的一個或多個高速緩存來應(yīng)用的高速存儲器(例如動態(tài)隨機存取存儲器(DRAM));
3)作為驅(qū)動程序存儲裝置來應(yīng)用的閃速存儲器/磁盤/光盤;以及作為引導(dǎo)ROM來應(yīng)用的、諸如閃速存儲器或只讀存儲器(ROM)之類的存儲器。
[0021 ] 本發(fā)明的一個實施例中的NVRAM (例如NVRAM 130)具有下列特性:
1)非易失性(它即使在電力被去除時也保持其內(nèi)容,與固態(tài)盤(SSD)中使用的閃速存儲器相似,但是與易失性的SRAM和DRAM不同);
2)比諸如SRAM和DRAM之類的易失性存儲器低的功耗;
3)隨機訪問(又稱作隨機可尋址);
4)以比SSD中所見的閃存(其只能夠每次一個“塊”來重寫和擦除-在大小方面對NOR閃存最小為64千字節(jié),對NAND閃存最小為16千字節(jié))低的粒度等級(例如字節(jié)等級)可重寫和可擦除;
5)可用作系統(tǒng)存儲器并且分配有系統(tǒng)地址空間的全部或一部分; (6)能夠使用事務(wù)協(xié)議(支持區(qū)分不同事務(wù)以使得那些事務(wù)能夠無序完成的事務(wù)標(biāo)識符(ID)的協(xié)議)通過總線耦合到處理器,并且允許在足夠小的粒度等級的訪問以支持作為系統(tǒng)存儲器的NVRAM的操作(例如,諸如64或128字節(jié)之類的高速緩存行大小)。例如,總線可以是存儲器總線(例如,諸如DDR3、DDR4等的DDR總線),通過總線運行事務(wù)協(xié)議,與通常使用的非事務(wù)協(xié)議相反。作為另一個示例,總線可以是通過其通常運行事務(wù)協(xié)議(本地事務(wù)協(xié)議)的總線,諸如PCI express (PCIE)總線、桌面管理接口(DMI)總線、或者利用事務(wù)協(xié)議和足夠小的事務(wù)凈荷大小(例如,諸如64或128字節(jié)之類的高速緩存行大小)的任何其它類型的總線;以及
6)下列一個或多個:
a)比當(dāng)前的非易失性存儲器/存儲裝置技術(shù)(例如閃存)快的寫入速度;
b)很高的讀取速度(比閃存快,并且接近或相當(dāng)于DRAM讀取速度);
c)直接可寫(而不是像SSD中使用的閃速存儲器那樣要求在寫入數(shù)據(jù)之前擦除(以Is進(jìn)行蓋寫));和/或
d)故障之前的高若干數(shù)量級(例如2或3)的寫耐久性(超過SSD中使用的引導(dǎo)ROM和閃存)。
[0022]如上所述,與閃速存儲器(其必須每次一個完整“塊”來重寫和擦除)相對比,在任何給定實現(xiàn)中訪問NVRAM的粒度等級可取決于特定存儲控制器和特定存儲器總線或者NVRAM耦合到的其它類型的總線。例如,在NVRAM 130用作系統(tǒng)存儲器的一些實現(xiàn)中,盡管有以字節(jié)的粒度來訪問的固有能力,但是可以以高速緩存行(例如64字節(jié)或128字節(jié)高速緩存行)的粒度來訪問NVRAM,因為高速緩存行是存儲器子系統(tǒng)訪問存儲器的等級。因此,當(dāng)NVRAM被部署在存儲器子系統(tǒng)內(nèi)時,它可以以與同一存儲器子系統(tǒng)中使用的DRAM(例如“近存儲器”)相同的粒度等級來訪問。即使如此,由存儲控制器和存儲器總線或者其它類型的總線對NVRAM的訪問的粒度等級也小于閃存使用的塊大小和I/O子系統(tǒng)的控制器和總線的訪問大小的粒度等級。
[0023]NVRAM 130可用作指令和數(shù)據(jù)存儲裝置,其具有充分短的訪問時間要求,從而對處理器引起極小影響。在這里,程序指令和數(shù)據(jù)可在由處理器執(zhí)行之前,從更深的閃存/磁/光大容量存儲裝置152加載到NVRAM 130中。此外,如以下詳細(xì)描述的,NVRAM 130可放置于存儲器總線上,并且可與存儲控制器(其又與處理器直接通信)直接通信。
[0024]NVRAM 130的新存儲器技術(shù)的存在提供大量新的可能性。雖然在更后面會更為詳細(xì)地論述,但是緊接下來快速強調(diào)這些可能性中的一些。
[0025]按照一個可能實現(xiàn),NVRAM 130充當(dāng)系統(tǒng)存儲器中的傳統(tǒng)DRAM技術(shù)的完全替代或補充。在一個實施例中,NVRAM 130表示引入第二級系統(tǒng)存儲器(例如系統(tǒng)存儲器作為DRAM140以及NVRAM 130的部分或全部的組合)。因此,系統(tǒng)存儲器可被看作具有近存儲器部分NM 141A和遠(yuǎn)存儲器部分FM 142。要理解,在不同實施例中,近存儲器能夠用作存儲器側(cè)高速緩存(例如,近存儲器高速緩存141B)、暫存器以及與系統(tǒng)存儲器不同的其它作用。
[0026]按照一些實施例,NVRAM 130提供NVRAM存儲裝置,其充當(dāng)傳統(tǒng)大容量存儲裝置、例如閃存/磁/光大容量存儲裝置152的完全替代或補充。本申請中的術(shù)語“傳統(tǒng)大容量存儲裝置”指的是基于光、磁和/或閃存技術(shù)的大容量存儲裝置,諸如盤和閃速存儲器。為了論述的簡潔起見,閃存/磁/光大容量存儲裝置152又稱作傳統(tǒng)大容量存儲裝置152。因此,用于計算系統(tǒng)100的非易失性大容量存儲裝置可使用NVRAM、閃速存儲器、磁存儲裝置或者它們的任何組合來實現(xiàn)。在NVRAM存儲裝置150充當(dāng)傳統(tǒng)大容量存儲裝置152的完全替代的一個實施例中,不需要將存儲裝置驅(qū)動程序用于塊可尋址存儲裝置訪問。去除來自存儲裝置訪問的存儲裝置驅(qū)動程序開銷能夠增加訪問速度并且節(jié)省電力。在期望NVRAM存儲裝置150對OS和/或應(yīng)用看起來是塊可訪問的并且與傳統(tǒng)大容量存儲裝置152不可區(qū)分的備選實施例中,模擬存儲裝置驅(qū)動程序能夠用來向用于訪問NVRAM存儲裝置150的軟件展示塊可訪問接口(例如,通用串行總線(USB)僅成批傳輸(BOT) 1.0、串行高級技術(shù)附連(SATA) 3.0等等)。也就是說,在這些備選實施例中,NVRAM 130的字節(jié)可尋址性能夠由存儲裝置驅(qū)動程序用來移動NVRAM存儲裝置150的塊,并且模擬塊可訪問大容量存儲裝置,而沒有引起I/O接口的成本。
[0027]按照一些實施例,NVRAM130 提供 BIOS NVRAM 160 和 TPM NVRAM 170、管理引擎(ME)固件165等,這些充當(dāng)如固件閃存162之類的固件存儲器的完全替代或補充。固件存儲器通常采用閃存技術(shù)來實現(xiàn),并且通常存儲由處理器在引導(dǎo)過程期間所執(zhí)行以初始化關(guān)鍵系統(tǒng)組件的初始指令(例如BIOS)。固件存儲器還能夠存儲由TPM 134用來保護(hù)敏感系統(tǒng)信息(例如加密密鑰)的系統(tǒng)永久狀態(tài)。在一個實施例中,NVRAM 130用于固件存儲器消除了對第三方閃存部件存儲對系統(tǒng)操作而言關(guān)鍵的代碼和數(shù)據(jù)的需要。
[0028]應(yīng)當(dāng)理解,NVRAM 130能夠包括比圖1所示的更多或更少的分區(qū)。例如,NVRAM 130能夠包括用作永久存儲器的分區(qū)。永久存儲器是處理器和I/o直接字節(jié)可尋址以用于讀和寫的一種類型的存儲器;但是,與易失性存儲器不同,對存儲器的寫入跨平臺電力循環(huán)被保持。在閃存裝置或其它非易失性裝置用于存儲BIOS和/或TPM的一些實施例中,可以不需要包括 BIOS NVRAM 160 和 / 或 TPM NVRAM 170 作為 NVRAM 130 的一部分。
[0029]存儲器和存儲裝置的選擇可取決于所述裝置所用于的平臺的類型。例如,在個人計算機、平板計算機、筆記本計算機、移動裝置(例如智能電話或PDA)中,非易失性大容量存儲裝置可單獨使用NVRAM存儲裝置150或者使用NVRAM存儲裝置150與閃存/磁存儲裝置相結(jié)合來實現(xiàn)。在其它實現(xiàn)(例如大規(guī)模服務(wù)器)中,非易失性大容量存儲裝置可使用磁存儲裝置(例如硬盤驅(qū)動器)或者磁存儲裝置、閃存和NVRAM存儲裝置150的任何組合來實現(xiàn)。在這種情況下,負(fù)責(zé)存儲裝置的計算機系統(tǒng)硬件和/或軟件可實現(xiàn)各種智能永久存儲裝置分配技術(shù),以按照有效率或者有用的方式在FM 142/NVRAM存儲裝置150與傳統(tǒng)大容量存儲裝置152之間分配永久程序代碼和數(shù)據(jù)的塊。在一些實施例中,NVRAM 130可成為芯片外(即,處理器芯片外)的唯一存儲器/存儲裝置。在一些實施例中,代替芯片外DRAM140,DRAM可用來提供芯片上高速緩存(例如近存儲器高速緩存141B)。這些實施例能夠與很小的平臺(例如智能電話或PDA)特別相關(guān),其中多個存儲器類/技術(shù)可能是極昂貴的,并且更多晶體管(包括存儲裝置)能夠放置在芯片上。
[0030]NVRAM 130可結(jié)合“磨損均勻化”算法以解決在遠(yuǎn)存儲器級的存儲單元在過多寫訪問之后開始磨損的實情。由于高循環(huán)計數(shù)塊最可能這樣磨損,所以磨損均勻化通過與低循環(huán)計數(shù)塊交換高循環(huán)計數(shù)塊的地址,來跨遠(yuǎn)存儲器單元分散寫入。注意,大多數(shù)地址交換通常對最終用戶是透明的,因為它由硬件、軟件(例如低級驅(qū)動程序或操作系統(tǒng))或者它們的組合來操控。
[0031]在一個實施例中,NVRAM 130能夠采用非易失性隨機存取存儲器來實現(xiàn),諸如PCM或者,更具體來說,PCMS (又稱作PRAM或PCRAM)、奧氏統(tǒng)一存儲器(OUM)、(CRAM)。遠(yuǎn)存儲器的其它可能技術(shù)選擇包括但不限于字節(jié)可尋址的永久存儲器(BPRAM)、存儲類存儲器(SCM)、通用存儲器、Ge2Sb2Te5、可編程金屬化單元(PMC)、電阻存儲器(RRAM)、RESET (非晶)單元、SET(結(jié)晶)單元、PCME、奧氏存儲器、鐵電存儲器(又稱作聚合物存儲器和聚(N-乙烯基咔唑))、鐵磁存儲器(又稱作Spintronics、SPRAM(自旋-轉(zhuǎn)移矩RAM)、STRAM(自旋隧穿RAM)、磁阻、磁存儲器、磁隨機存取存儲器(MRAM))以及半導(dǎo)體-氧化物-氮化物-氧化物-半導(dǎo)體(S0N0S,又稱作介電存儲器)。
[0032]為了便于說明,本申請的其余部分的大多數(shù)有時將引用“PCM”或“PCMS”作為NVRAM 130的技術(shù)選擇。同樣地,術(shù)語“NVRAM”、“PCM”和“PCMS”可在以下論述中可互換地使用。但是應(yīng)當(dāng)知道,如上所述,不同技術(shù)也可用于NVRAM 130。
[0033]然后繼續(xù)圖1的系統(tǒng)的論述,在一些實施例中,計算機系統(tǒng)100的架構(gòu)可包括多個處理器,但是為了簡潔起見,圖1中示出單個處理器110。處理器110可以是任何類型的數(shù)據(jù)處理器,包括通用或?qū)S弥醒胩幚砥?CPU)、專用集成電路(ASIC)或者數(shù)字信號處理器(DSP)。例如,處理器110可以是通用處理器,諸如Core? i3、i5、i7、2 Duo和QuacUXeon ?或者Itanium?處理器,所有這些處理器可從Intel Corporation (Santa Clara, Calif.)得至丨J。備選地,處理器110可來自另一個公司,諸如ARM Holdings, Ltd (Sunnyvale, CA)、MIPSTechnologies (Sunnyvale, CA)等。處理器110可以是專用處理器,諸如例如網(wǎng)絡(luò)或通信處理器、壓縮引擎、圖形處理器、協(xié)處理器、嵌入式處理器等。處理器110可在一個或多個封裝內(nèi)包含的一個或多個芯片上實現(xiàn)。處理器110可以是一個或多個襯底的一部分和/或可使用諸如例如BiCM0S、CM0S或NMOS之類的多種工藝技術(shù)的任一種在一個或多個襯底上實現(xiàn)。
[0034]在一個實施例中,處理器110包括集成圖形單元111,集成圖形單元111包括用于執(zhí)行諸如3D或2D圖形命令之類的圖形命令的邏輯。雖然本發(fā)明的實施例并不局限于任何特定集成圖形單元111,但是在一個實施例中,圖形單元111能夠執(zhí)行工業(yè)標(biāo)準(zhǔn)圖形命令,諸如由 Open GL 和 / 或 Direct X 應(yīng)用編程接口 (API)(例如 OpenGL 4.1 和 Direct X 11)所規(guī)定的那些命令。
[0035]處理器110還可包括一個或多個核心112,但是再次為了清楚起見,圖1中示出單個核心112。在許多實施例中,核心112包括內(nèi)部功能塊,諸如一個或多個執(zhí)行單元、退出單元、一組通用和專用寄存器等。如果核心112是多線程或超線程的,則各硬件線程也可被認(rèn)為是“邏輯”核心。核心112在架構(gòu)和/或指令集方面可以是同構(gòu)或異構(gòu)的。例如,有些核心可以是有序的,而有些核心是無序的。作為另一個示例,兩個或更多核心可以能夠執(zhí)行同一指令集,而其它核心可以能夠僅執(zhí)行那個指令集的子集或者不同的指令集。
[0036]處理器110還可包括一個或多個高速緩存、例如高速緩存113,其可實現(xiàn)為SRAM和/或DRAM。在未示出的許多實施例中,除了高速緩存113之外的附加高速緩存實現(xiàn)成使得多級高速緩存存在于(一個或多個)核心112中的執(zhí)行單元與存儲器裝置141A、142之間。例如,共享高速緩存單元的集合可包括上級高速緩存(例如第I級(LI)高速緩存)、中間級高速緩存(例如第2級(L2)、第3級(L3)、第4級(L4)或者其它級的高速緩存)、最后級高速緩存(LLC)和/或它們的不同組合。在不同的實施例中,高速緩存113可按照不同方式來分配,并且在不同實施例中可以是許多不同大小其中之一。例如,高速緩存113可以是8兆字節(jié)(MB)高速緩存、16MB高速緩存等。另外,在不同實施例中,高速緩存可以是直接映射高速緩存、全關(guān)聯(lián)高速緩存、多路組關(guān)聯(lián)高速緩存或者具有另一種類型的映射的高速緩存。在包括多個核心的其它實施例中,高速緩存113可包括在所有核心之中共享的一個大部分,或者可分為若干分離功能層面(例如每個核心一個層面)。高速緩存113還可包括在所有核心之中共享的一個部分以及作為每個核心的分離功能層面的若干其它部分。在一個實施例中,高速緩存113可包括DRAM近存儲器高速緩存141B。
[0037]處理器110還可包括歸屬代理114,其中包括協(xié)調(diào)和操作(一個或多個)核心112的那些組件。歸屬代理單元114可包括例如功率控制單元(P⑶)和顯示單元。P⑶可以是或者包括調(diào)節(jié)(一個或多個)核心112和集成圖形單元111的功率狀態(tài)所需的邏輯和組件。顯示單元用于驅(qū)動一個或多個外部連接的顯示器。
[0038]在一些實施例中,處理器110包括集成存儲控制器(MC) 131,以提供用于與存儲器和存儲裝置子系統(tǒng)180進(jìn)行通信的接口。更具體來說,在一些實施例中,IMC 131包含對DRAM裝置140進(jìn)行讀取、寫入和刷新所需的邏輯。MC 131能夠在與處理器110相同的芯片上或者在連接到處理器110的分開的芯片和/或封裝上。
[0039]在一些實施例中,處理器110包括耦合到MC 131的I/O子系統(tǒng)115。I/O子系統(tǒng)115實現(xiàn)處理器110與下列串行或并行I/O裝置之間的通信:一個或多個網(wǎng)絡(luò)136 (諸如局域網(wǎng)、廣域網(wǎng)或因特網(wǎng))、存儲I/O裝置(諸如傳統(tǒng)大容量存儲裝置152、固件閃存162等)以及一個或多個非存儲I/O裝置137 (諸如顯示器、鍵盤、喇叭等)。I/O子系統(tǒng)115可包括平臺控制器集線器(PCH)(未示出),其中進(jìn)一步包括若干I/O適配器138和其它I/O電路,以提供對存儲和非存儲I/O裝置和網(wǎng)絡(luò)的訪問。為了實現(xiàn)這個方面,I/O子系統(tǒng)115可具有用于所使用的每個I/O協(xié)議的至少一個集成I/O適配器138。I/O子系統(tǒng)115能夠在與處理器110相同的芯片上或者在連接到處理器110的分開的芯片和/或封裝上。
[0040]I/O適配器138將處理器110內(nèi)利用的主機通信協(xié)議轉(zhuǎn)換成與特定I/O裝置兼容的協(xié)議。對于傳統(tǒng)大容量存儲裝置152,I/O適配器138可轉(zhuǎn)換的有些協(xié)議包括外圍部件互連(PCI)-Express 3.0、通用串行總線(USB) 3.0、串行高級技術(shù)附連(SATA) 3.0、小型計算機系統(tǒng)接口(SCSI)、廉價盤冗余陣列(RAID)和1394“Firewire”等等。對于固件閃存162,I/O適配器138可轉(zhuǎn)換的有些協(xié)議包括串行外圍接口(SPI)、Microwire等等。另外,可存在一個或多個無線協(xié)議I/O適配器。無線協(xié)議的示例是藍(lán)牙4.0、基于IEEE 802.11的無線協(xié)議和蜂窩協(xié)議等等。
[0041]在一些實施例中,I/O子系統(tǒng)115還包括管理引擎(ME) 135,ME 135是允許系統(tǒng)管理員監(jiān)測、維護(hù)、更新、升級和修復(fù)計算機系統(tǒng)100的微處理器(等效地為微控制器)。在一個實施例中,系統(tǒng)管理員能夠經(jīng)由網(wǎng)絡(luò)136、通過ME 135來遠(yuǎn)程配置計算機系統(tǒng)100。在一個實施例中,配置能夠存儲在處理器110內(nèi)的解碼表133中。解碼表133能夠由MC 131和I/O子系統(tǒng)115來讀取,IMC 131和I/O子系統(tǒng)115則判定應(yīng)當(dāng)把數(shù)據(jù)訪問請求定向至何處。
[0042]在一些實施例中,處理器110包括置信平臺模塊(TPM) 134,以控制對諸如安全數(shù)據(jù)、加密密鑰、平臺配置信息等的系統(tǒng)永久狀態(tài)的訪問。在一個實施例中,這些系統(tǒng)永久狀態(tài)存儲在TPM NVRAM 170中,TPM NVRAM 170能夠采用基于PCM的存儲器、例如PCMS來實現(xiàn)。在圖1所示的實施例中,TPM NVRAM 170是NVRAM 130的一部分。
[0043]在一個實施例中,TPM 134是具有密碼功能性的安全微控制器。TPM 134具有多個信任相關(guān)能力,例如用于確保由TPM所保護(hù)的數(shù)據(jù)只可用于同一 TPM的“密封”能力。TPM134能夠使用其加密能力來保護(hù)數(shù)據(jù)和密鑰(例如秘密)。在一個實施例中,TPM 134具有唯一和秘密RSA密鑰(其基于Ron Rivest、Adi Shamir和Leonard Adleman所開發(fā)的RSA算法來生成),這允許它認(rèn)證硬件裝置和平臺。例如,TPM 134能夠檢驗尋求對計算機系統(tǒng)100中存儲的數(shù)據(jù)的訪問的系統(tǒng)是預(yù)計系統(tǒng)。TPM 134也能夠報告平臺(例如計算機系統(tǒng)100)的完整性。這允許外部資源(例如網(wǎng)絡(luò)上的服務(wù)器)確定平臺的置信度,但是不防止用戶對平臺的訪問。在一個實施例中,TPM 134包括與NVRAM 130進(jìn)行通信的NVRAM接口。
[0044]在圖1的實施例中,ME 135和TPM 134是按照芯片上系統(tǒng)(SOC)配置的處理器110的部分。SOC配置適合于移動平臺和其它便攜系統(tǒng)。在備選實施例中,ME 135和TPM 134能夠在處理器110外部但是與其耦合的一個或多個芯片組上。這些備選實施例能夠適合于服務(wù)器平臺。
[0045]應(yīng)當(dāng)理解,計算機系統(tǒng)能夠?qū)VRAM 130用于系統(tǒng)存儲器、大容量存儲裝置、固件存儲器和/或其它存儲器和存儲裝置目的,即使其處理器沒有處理器110的所有上述組件,或者具有比處理器110要多的組件。
[0046]在一個實施例中,計算機系統(tǒng)100包括NVRAM接口 132,以控制對NVRAM 130的數(shù)據(jù)訪問。NVRAM接口 132耦合到MC 131和I/O子系統(tǒng)115。NVRAM接口 132能夠從解碼表133中讀取配置數(shù)據(jù),或者備選地能夠依靠從MC 131和I/O子系統(tǒng)115所傳遞的解碼結(jié)果。在NVRAM 130采用PCMS來實現(xiàn)的一個實施例中,NVRAM接口 132是PCMS接口,其采用符合PCMS技術(shù)的協(xié)議來執(zhí)行字節(jié)級訪問。雖然IMC 131和NVRAM接口 132能夠是兩個分立部件(如圖1中采用分隔兩個部件的虛線所示),但是在一些實施例中,頂C 131和NVRAM接口 132能夠?qū)崿F(xiàn)為一個組合控制器,以控制對存儲器和存儲裝置的訪問。
[0047]在圖1中,NVRAM接口 132示為使用三個分開的線路連接到FM 142、NVRAM大容量存儲裝置150和BIOS NVRAM 160。但是,這不一定意味著存在將NVRAM接口 132連接到NVRAM 130的這些部分的三個分開的物理總線或通信信道。而是,在一些實施例中,公共存儲器總線或者其它類型的總線用來在通信上將NVRAM接口 132耦合到FM 142、NVRAM大容量存儲裝置150和BIOS NVRAM 160。例如,在一個實施例中,圖1中的三個線條表示總線、例如存儲器總線(例如DDR3、DDR4等),NVRAM接口 132通過該總線實現(xiàn)事務(wù)協(xié)議以與NVRAM 130進(jìn)行通信。NVRAM接口 132還可通過支持本地事務(wù)協(xié)議的總線,諸如PCIexpress (PC1-E)總線、桌面管理接口(DMI)總線或者利用事務(wù)協(xié)議的任何其它類型的總線,來與NVRAM 130進(jìn)行通信。
[0048]在一些實施例中,NVRAM 130能夠經(jīng)由遵循與處理器間協(xié)議相同的協(xié)議(例如HyperTransport 3.0、快速路徑互連(QPI) 1.1及其變體、等等)的高速鏈路耦合到處理器510。在這些實施例中,NVRAM接口 132能夠使用為這些高速鏈路定義的協(xié)議與NVRAM 130進(jìn)行通信。
[0049]圖2是示出按照本發(fā)明的一個實施例、將NVRAM 130結(jié)合到存儲器和存儲裝置子系統(tǒng)280中的計算機系統(tǒng)200的框圖。在這個實施例中,NVRAM 130具有可配置分區(qū)(NVRAM區(qū)域230),其能夠用作系統(tǒng)存儲器、大容量存儲裝置、固件存儲裝置(例如BIOS存儲裝置)和其它數(shù)據(jù)存儲裝置。計算機系統(tǒng)200包括耦合到一個或多個其它處理器220的處理器210。處理器210能夠與圖1的處理器110相同,但是I/O適配器238不一定包括圖1中用于訪問傳統(tǒng)大容量存儲裝置和閃速存儲器的全部適配器138。在圖2的實施例中,負(fù)責(zé)存儲器和存儲裝置訪問的計算機系統(tǒng)硬件和/或軟件可實現(xiàn)各種智能技術(shù),以獲益于NVRAM130的低等待時間、高吞吐量和健壯性(與諸如大容量存儲裝置152和固件閃存162之類的傳統(tǒng)閃存/磁/光存儲裝置相比)。
[0050]在一個實施例中,NVRAM 130存儲了存儲器接口表(MIT) 240。MIT 240包含NVRAM130的信息,其允許NVRAM 130在系統(tǒng)通電時自主地初始化。稍后參照圖3更詳細(xì)描述MIT240的詳細(xì)內(nèi)容。
[0051]在一個實施例中,將NVRAM 130分區(qū)為多個區(qū)域,以存儲在系統(tǒng)通電時可能使用的數(shù)據(jù)(例如初始化數(shù)據(jù)和BIOS)以及在系統(tǒng)的正常操作期間可能使用的數(shù)據(jù)(例如系統(tǒng)存儲器和永久數(shù)據(jù)存儲裝置)。在一個實施例中,NVRAM 130還包括NVRAM控制器260,其能夠設(shè)置NVRAM 130以供處理器210訪問。NVRAM控制器260還包括NVRAM地址解碼器270,以在系統(tǒng)地址空間(由處理器210使用)與NVRAM地址空間之間轉(zhuǎn)換地址。
[0052]在一個實施例中,NVRAM 130是ME 135可訪問的。在圖2的實施例中,ME 135是集成微處理器(等效地為微控制器),其能夠與處理器210無關(guān)地通電。在一個實施例中,主電力軌285向處理器210、ME 135以及存儲器和存儲裝置子系統(tǒng)280提供電力。另外,ME135和NVRAM 130從備用電力軌290接收獨立電力源。當(dāng)主電力軌285出故障或者以其它方式不提供電力時,ME 135能夠從備用電力軌290接收電力,并且訪問NVRAM 130中的ME固件165 (圖1),以便與處理器210和平臺的其余部分的功率狀態(tài)無關(guān)地成為完全可操作的。
[0053]在一個備選實施例中,NVRAM 130能夠是除ME 135之外的微控制器(例如圖1的TPM 134)可訪問的。這個微控制器耦合到備用電力軌290,并且能夠與處理器210無關(guān)地通電。當(dāng)主電力軌285出故障或者以其它方式不提供電力時,這個微控制器能夠從備用電力軌290接收電力,并且訪問NVRAM 130中的關(guān)聯(lián)固件(例如TPM固件170),以成為完全可操作的。這個微控制器能夠是處理器210的一部分,能夠在處理器210外部但是與其耦合的芯片組上,能夠是I/O子系統(tǒng)115的一部分,或者能夠在I/O子系統(tǒng)115外部。通過這個微控制器或ME 135,計算機系統(tǒng)200或者計算機系統(tǒng)200的至少一部分甚至當(dāng)主電力軌285無法提供電力時仍能起作用(使用NVRAM 130中的固件)。
[0054]圖3是示出按照本發(fā)明的一個實施例在NVRAM 130中存儲的數(shù)據(jù)的一個示例的框圖。NVRAM 130包括MIT 240和多個區(qū)域。MIT 240存儲位置指針310,每個位置指針310指向區(qū)域之一。區(qū)域包括但不限于:物理特性區(qū)域370(其存儲串行存在檢測(SPD)數(shù)據(jù)321、裝置特定初始化序列322和其它初始化數(shù)據(jù));固件區(qū)域375,存儲BIOS、系統(tǒng)配置數(shù)據(jù)、嵌入管理程序、嵌入平臺代理以及其它固件和軟件;差錯圖380,存儲NVRAM 130的差錯位置以用于差錯隔離和恢復(fù);冗余區(qū)域385,存儲NVRAM 130的冗余塊以用于差錯恢復(fù);系統(tǒng)存儲器區(qū)域390,供用作計算機系統(tǒng)的系統(tǒng)存儲器。諸如大容量存儲裝置區(qū)域、TPM區(qū)域、永久存儲器區(qū)域、差錯日志等的附加區(qū)域也能夠包含在NVRAM 130中。對應(yīng)地,位置指針310包括物理特性指針320、固件指針330、差錯圖指針340、冗余度指針350和存儲器指針360。也能夠包含附加指針,以用于指向附加區(qū)域。指針320-360中的每個指向?qū)?yīng)區(qū)域。在一個實施例中,每個指針320-360存儲起始地址的信息和對應(yīng)區(qū)域的長度。圖3中的虛線箭頭示出指針與其對應(yīng)區(qū)域之間的關(guān)系。[0055]如上所述,NVRAM區(qū)域存儲能夠用于差錯恢復(fù)的諸如差錯圖380和冗余區(qū)域385之類的信息。例如,NVRAM 130可在其區(qū)域的任一個和/或MIT 240中包含被破壞數(shù)據(jù)。破壞能夠防止訪問對系統(tǒng)的自行初始化至關(guān)重要的數(shù)據(jù)。為了圍繞這個問題進(jìn)行工作,NVRAM130維護(hù)已知壞位置的差錯圖380以及包含諸如MIT 240、系統(tǒng)配置數(shù)據(jù)等的至關(guān)重要數(shù)據(jù)的副本的冗余區(qū)域385。NVRAM控制器260能夠使用差錯圖380來識別NVRAM 130的壞區(qū),并且利用冗余區(qū)域385重新配置NVRAM 130,以拒絕使用壞區(qū)。
[0056]在一個實施例中,NVRAM 130包括一個或多個NVRAM控制器260。NVRAM 130維護(hù)與如何將NVRAM控制器260 (或者多個NVRAM控制器260)和NVRAM 130連接到系統(tǒng)相關(guān)的至關(guān)重要的系統(tǒng)配置數(shù)據(jù)(例如作為固件區(qū)域375中存儲的系統(tǒng)配置數(shù)據(jù)的一部分)。至關(guān)重要的系統(tǒng)配置數(shù)據(jù)允許計算機系統(tǒng)200在系統(tǒng)的電力循環(huán)(其原本會使系統(tǒng)丟失這種配置信息)之前被配置到其狀態(tài)。至關(guān)重要的系統(tǒng)配置數(shù)據(jù)的示例包括但不限于=NVRAM控制器標(biāo)識數(shù)據(jù)、跨NVRAM控制器260的交織信息、NVRAM控制器260和DIMM相對于系統(tǒng)拓?fù)涞奈恢玫鹊取?br>
[0057]在NVRAM 130包括多個NVRAM控制器260的一個實施例中,多個NVRAM控制器260之一作為引導(dǎo)代理來操作。在這種環(huán)境中,處理器210需要知道哪一個NVRAM控制器260是用于引導(dǎo)的目標(biāo)。這能夠通過允許平臺查詢所有NVRAM控制器260的硬件協(xié)議來實現(xiàn)。具有引導(dǎo)能力的一個NVRAM控制器260將響應(yīng)該查詢,通告其作為引導(dǎo)代理的能力。
[0058]在一個實施例中,在引導(dǎo)時間,在NVRAM 130的自主初始化過程期間讀取MIT240。在初始化NVRAM 130之后,NVRAM 130中存儲的BIOS能夠由處理器210來訪問,以執(zhí)行BIOS代碼,例如pre-EFI (可預(yù)擴(kuò)展固件接口,又稱作PEI) BIOS代碼。PEI BIOS代碼負(fù)責(zé)初始系統(tǒng)配置,諸如處理器、芯片組、處理器和芯片組互連(例如HyperTransport 3.0、快速路徑互連(QPI) 1.1以及存儲器和存儲裝置子系統(tǒng))的初始化。PEI BIOS代碼還負(fù)責(zé)交織存儲器并且切換到稱作驅(qū)動程序執(zhí)行環(huán)境(DXE)的更高級BIOS模塊,如統(tǒng)一 EFI (UEFI)標(biāo)準(zhǔn)(例如UEFI規(guī)范版本2.3.1)中定義。
[0059]應(yīng)當(dāng)理解,MIT 240用于NVRAM 130的自主初始化是與存儲器和存儲裝置子系統(tǒng)280的配置無關(guān)的。更具體來說,NVRAM 130能夠存儲MIT 240和對應(yīng)區(qū)域,而不管存儲器和存儲裝置子系統(tǒng)280是否包括DRAM 140或附加存儲器裝置、例如塊可尋址的非易失性裝置(例如閃存/磁/光存儲裝置)。在以下描述中,計算機系統(tǒng)200的這些備選實施例統(tǒng)稱為“計算機系統(tǒng)200的變體”。
[0060]圖4是示出按照本發(fā)明的一個實施例的NVRAM 130的自主初始化的方法400的流程圖。方法400能夠由計算機系統(tǒng)200或者其變體來執(zhí)行,如先前所定義。為了描述的簡潔起見,將參照圖2的實施例來描述圖4的流程圖的操作。但是,應(yīng)當(dāng)理解,流程圖的操作能夠通過圖2的實施例以及除了這些附圖所示那些實施例之外的實施例來執(zhí)行。另外,參照圖2所述的實施例能夠執(zhí)行與參照圖4的流程圖所述那些操作不同的操作。
[0061]在一個實施例中,NVRAM 130在系統(tǒng)通電時開始自主初始化過程(框450)。當(dāng)計算機系統(tǒng)200通電時(框401),生成通電重置信號,以重置處理器210以及NVRAM 130 (框402)。又參照圖3,NVRAM控制器260初始化裝置特定初始化序列322,以使NVRAM 130(具體來說是MIT 240)是NVRAM控制器260可讀的(框403),使得MIT 240能夠由NVRAM控制器260按照裝置不可知方式來讀取。在這里,“裝置不可知方式”表示NVRAM控制器260不需要與哪種NVRAM正設(shè)法讀取有關(guān)的附加信息,只要NVRAM控制器260有權(quán)訪問裝置特定初始化序列322。如果NVRAM 130中存在任何差錯(由差錯圖380所指示),則NVRAM控制器260通過采用冗余區(qū)域385中的冗余塊替代差錯塊來解決這些差錯(框404)。然后,NVRAM控制器260執(zhí)行裝置特定硬件初始化,以初始化NVRAM 130 (框405)。這個硬件初始化允許NVRAM控制器260后面的整個NVRAM 130是在功率和性能優(yōu)化模式中可訪問的。然后,NVRAM控制器260將MIT 240數(shù)據(jù)提供給處理器210,并且設(shè)置NVRAM 130以供處理器210訪問(框406)。在這點上,還設(shè)置NVRAM地址解碼器270,以將系統(tǒng)地址空間中的地址轉(zhuǎn)換成NVRAM地址空間中的地址。框401-406中的上述初始化操作是自主的,這意味著,在沒有來自處理器210、固件或者NVRAM 130外部的邏輯電路的任何交互或者任何幫助的情況下,初始化NVRAM 130。處理器210、固件或者NVRAM 130外部的邏輯電路無需在NVRAM130的自主初始化之前運行。在訪問和運行BIOS以用于平臺引導(dǎo)之前執(zhí)行自主初始化。在BIOS存儲于NVRAM 130中的實施例中,BIOS僅在NVRAM 130按照框401-406中的上述操作初始化之后才可訪問。
[0062]隨后,處理器210執(zhí)行通電重置向量,其被定向到NVRAM控制器260 (框407)。當(dāng)NVRAM 130已經(jīng)被設(shè)置以供處理器訪問時,處理器210能夠取出NVRAM 130中的BIOS,并且執(zhí)行BIOS以引導(dǎo)計算機系統(tǒng)200的其余部分。然后,處理器210從這點繼續(xù)進(jìn)行引導(dǎo)過程(框408);例如,通過初始化其它處理器220、DRAM 140、1/0裝置(例如1/0裝置137和其它1/0接口(若有的話)),并且引導(dǎo)OS。
[0063]圖4的流程圖所示的技術(shù)能夠使用非暫時機器可讀或計算機可讀介質(zhì)、例如非暫時機器可讀或計算機可讀存儲介質(zhì)(例如磁盤、光盤、隨機存取存儲器、只讀存儲器、閃速存儲器裝置和相變存儲器)上存儲的指令和數(shù)據(jù)來實現(xiàn)。
[0064]本發(fā)明的實施例還可作為計算機程序產(chǎn)品來提供,所述計算機程序產(chǎn)品可包括其上存儲了指令的非暫時機器可讀介質(zhì),所述指令可用來對計算機(或其它電子裝置)編程以執(zhí)行過程。非暫時機器可讀介質(zhì)可包括但不限于軟盤、光盤、⑶-ROM以及磁光盤、ROM、RAM、EPROM、EEPR0M、磁卡或光卡、傳播介質(zhì)或者適合于存儲電子指令的其它類型的介質(zhì)/機器可讀介質(zhì)。本發(fā)明的實施例還可作為計算機程序產(chǎn)品來下載,其中程序可通過載波或其它傳播介質(zhì)中包含的數(shù)據(jù)信號、經(jīng)由通信鏈路(例如調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)從遠(yuǎn)程計算機(例如服務(wù)器)傳遞到請求計算機(例如客戶端)。
[0065]雖然按照若干實施例描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將會知道,本發(fā)明并不局限于所述實施例,而是可在所附權(quán)利要求書的精神和范圍之內(nèi),經(jīng)過修改和變更來實施。因此,本描述要被看作是說明性的而不是限制性的。
【權(quán)利要求】
1.一種設(shè)備,包括: 計算機系統(tǒng)中的處理器; 耦合到所述處理器的非易失性隨機存取存儲器(NVRAM)控制器;以及 包括所述NVRAM控制器的NVRAM,所述NVRAM是可由所述處理器來字節(jié)重寫和字節(jié)擦除的,所述NVRAM上存儲了包含信息的存儲器接口表,所述信息供所述NVRAM控制器在所述計算機系統(tǒng)通電時自主地初始化所述NVRAM,而沒有與所述NVRAM外部的固件和所述處理器交互,由此允許所述計算機系統(tǒng)訪問所述NVRAM。
2.如權(quán)利要求1所述的設(shè)備,其中,所述NVRAM上存儲了基本輸入輸出系統(tǒng)(BIOS),其中,在所述NVRAM的自主初始化之后,所述NVRAM控制器為所述處理器提供所述存儲器接口表中的所述信息,以允許所述處理器訪問所述BIOS并且由此引導(dǎo)所述計算機系統(tǒng)。
3.如權(quán)利要求1所述的設(shè)備,還包括: 耦合到所述處理器的微控制器; 向所述處理器提供電 力的主電力軌;以及 支持給所述微控制器的備用電力的備用電力軌, 其中,當(dāng)所述主電力軌不向所述計算機系統(tǒng)提供電力時,所述微控制器使用所述存儲器接口表中的所述信息來訪問所述NVRAM中的微控制器固件。
4.如權(quán)利要求3所述的設(shè)備,其中,所述微控制器是管理引擎(ME)。
5.如權(quán)利要求1所述的設(shè)備,其中,所述NVRAM包括相變存儲器(PCM)。
6.如權(quán)利要求1所述的設(shè)備,其中,所述NVRAM包含多個區(qū)域,以及所述存儲器接口表包含多個位置指針,所述位置指針中的每個指向所述區(qū)域之一。
7.如權(quán)利要求6所述的設(shè)備,其中,所述多個區(qū)域包括下列一個或多個:串行存在檢測(SPD)數(shù)據(jù)、裝置特定初始化序列、系統(tǒng)配置數(shù)據(jù)、差錯圖和冗余區(qū)域。
8.如權(quán)利要求1所述的設(shè)備,其中,所述NVRAM上存儲了差錯圖,其中,所述NVRAM控制器使用所述差錯圖來識別所述NVRAM的壞區(qū),以及使用所述NVRAM中的冗余區(qū)域重新配置所述NVRAM以拒絕使用所述壞區(qū)。
9.如權(quán)利要求1所述的設(shè)備,還包括: 所述NVRAM內(nèi)的多個NVRAM控制器,所述NVRAM控制器中的每個管理所述NVRAM的一部分, 其中,所述NVRAM上存儲了系統(tǒng)配置數(shù)據(jù),所述系統(tǒng)配置數(shù)據(jù)描述如何將所述多個NVRAM控制器和所述NVRAM連接到所述計算機系統(tǒng)。
10.如權(quán)利要求1所述的設(shè)備,還包括: 所述NVRAM內(nèi)的多個NVRAM控制器,所述NVRAM控制器中的每個管理所述NVRAM的一部分,以及所述NVRAM控制器之一是用于自主地初始化所述NVRAM的引導(dǎo)代理,所述引導(dǎo)代理響應(yīng)來自所述計算機系統(tǒng)的查詢而將它自己識別為所述引導(dǎo)代理。
11.一種方法,包括: 在計算機系統(tǒng)中接收通電信號,所述計算機系統(tǒng)包括處理器、可由所述處理器來字節(jié)重寫和字節(jié)擦除的非易失性隨機存取存儲器(NVRAM); 由耦合到所述NVRAM的NVRAM控制器來讀取所述NVRAM中的存儲器接口表; 由所述NVRAM控制器在所述計算機系統(tǒng)通電時使用所述存儲器接口表中的信息來自主地初始化所述NVRAM,而沒有與所述NVRAM外部的固件和所述處理器交互;以及 向所述處理器提供所述信息以允許所述處理器訪問所述NVRAM。
12.如權(quán)利要求11所述的方法,其中,所述NVRAM上存儲了基本輸入輸出系統(tǒng)(BIOS),所述方法還包括: 在所述NVRAM的自主初始化之后,由所述NVRAM控制器向所述處理器提供所述存儲器接口表中的所述信息,以允許所述處理器訪問所述BIOS并且由此引導(dǎo)所述計算機系統(tǒng)。
13.如權(quán)利要求11所述的方法,其中,所述計算機系統(tǒng)包括:耦合到所述處理器的微控制器、向所述處理器提供電力的主電力軌以及支持給所述微控制器的備用電力的備用電力軌,所述方法還包括: 向所述微控制器提供所述信息以允許所述微控制器:當(dāng)所述主電力軌不向所述計算機系統(tǒng)提供電力時,訪問所述NVRAM中存儲的微控制器固件。
14.如權(quán)利要求13所述的方法,其中,所述微控制器是管理引擎(ME)。
15.如權(quán)利要求11所述的方法,其中,所述NVRAM包括相變存儲器(PCM)。
16.如權(quán)利要求11所述的方法,其中,所述NVRAM包含多個區(qū)域,并且其中,讀取所述NVRAM中的所述存儲器接口表還包括: 定位所述存儲器接口表中的多個位置指針之一;以及 通過跟隨所述位置指針之一來定位所述區(qū)域中的對應(yīng)區(qū)域, 其中,所述多個區(qū)域包括下列一個或多個:串行存在檢測(SPD)數(shù)據(jù)、裝置特定初始化序列、系統(tǒng)配置數(shù)據(jù)、差錯圖和冗余區(qū)域。
17.如權(quán)利要求11所述的方法,其中,所述NVRAM上存儲了差錯圖和冗余區(qū)域,所述方法還包括: 使用所述差錯圖來識別所述NVRAM的壞區(qū);以及 使用所述冗余區(qū)域來重新配置所述NVRAM以拒絕使用所述壞區(qū)。
18.如權(quán)利要求11所述的方法,其中,所述NVRAM包括多個NVRAM控制器,每個控制器管理所述NVRAM的一部分,所述方法還包括: 由所述多個NVRAM控制器接收來自所述計算機系統(tǒng)的對于引導(dǎo)代理的查詢;以及 響應(yīng)所述查詢,所述多個NVRAM控制器之一將它自己識別為所述引導(dǎo)代理。
19.一種系統(tǒng),包括: 計算機系統(tǒng)中的處理器; 耦合到所述處理器的主電力軌; 備用電力軌; 耦合到所述處理器的非易失性隨機存取存儲器(NVRAM)控制器;以及包括所述NVRAM控制器并且耦合到所述主電力軌和所述備用電力軌的NVRAM,所述NVRAM是可由所述處理器來字節(jié)重寫和字節(jié)擦除的,所述NVRAM上存儲了包含信息的存儲器接口表,所述信息供所述NVRAM控制器在所述主電力軌或者所述備用電力軌通電時自主地初始化所述NVRAM,而沒有與所述NVRAM外部的固件和所述處理器交互,由此允許所述計算機系統(tǒng)訪問所述NVRAM。
20.如權(quán)利要求19所述的系統(tǒng),其中,所述NVRAM上存儲了基本輸入輸出系統(tǒng)(BIOS),其中,在所述NVRAM的自主初始化之后,所述NVRAM控制器為所述處理器提供所述存儲器接口表中的所述信息,以允許所述處理器訪問所述BIOS并且由此引導(dǎo)所述計算機系統(tǒng)。
21.如權(quán)利要求19所述的系統(tǒng),還包括: 與所述處理器和所述備用電力軌耦合的微控制器, 其中,當(dāng)所述主電力軌不向所述計算機系統(tǒng)提供電力時,所述微控制器使用所述存儲器接口表中的所述信息來訪問所述NVRAM中的微控制器固件。
22.如權(quán)利要求21所述的系統(tǒng),其中,所述微控制器是管理引擎(ME)。
23.如權(quán)利要求19所述的系統(tǒng),其中,所述NVRAM包括相變存儲器(PCM)。
24.如權(quán)利要求19所述的系統(tǒng),其中,所述NVRAM包含多個區(qū)域,以及所述存儲器接口表包含多個位置指針,所述位置指針中的每個指向所述區(qū)域之一,其中,所述多個區(qū)域包括下列一個或多個:串行存在檢測(SPD)數(shù)據(jù)、裝置特定初始化序列、系統(tǒng)配置數(shù)據(jù)、差錯圖和冗余區(qū)域。
25.如權(quán)利要求19所述的系統(tǒng),其中,所述NVRAM上存儲了差錯圖,其中,所述NVRAM控制器使用所述差錯圖來識別所述NVRAM的壞區(qū),以及使用所述NVRAM中的冗余區(qū)域來重新配置所述NVRAM以拒絕使用所述壞區(qū)。
26.如權(quán)利要求19所述的系統(tǒng),還包括: 所述NVRAM內(nèi)的多個NVRAM控制器,所述NVRAM控制器中的每個管理所述NVRAM的一部分, 其中,所述NVRAM上存儲了系統(tǒng)配置數(shù)據(jù),所述系統(tǒng)配置數(shù)據(jù)描述如何將所述多個NVRAM控制器和所述NVRAM連接到所述計算機系統(tǒng)。
27.如權(quán)利要求19所述的系統(tǒng),還包括: 所述NVRAM內(nèi)的多個NVRAM控制器,所述NVRAM控制器中的每個管理所述NVRAM的一部分,以及所述NVRAM控制器之一是用于自主地初始化所述NVRAM的引導(dǎo)代理,所述引導(dǎo)代理響應(yīng)來自所述計算機系統(tǒng)的查詢而將它自己識別為所述引導(dǎo)代理。
【文檔編號】G06F12/00GK103946814SQ201180075150
【公開日】2014年7月23日 申請日期:2011年9月30日 優(yōu)先權(quán)日:2011年9月30日
【發(fā)明者】M.K.納基穆圖, M.庫馬, D.齊亞卡斯 申請人:英特爾公司