用于相變存儲(chǔ)器漂移管理的設(shè)備和方法
【專利摘要】本發(fā)明描述了用于選擇用于讀和寫操作的分界電壓的系統(tǒng)和方法。本發(fā)明實(shí)施例提供了使用多個(gè)VDM覆蓋PCMS小區(qū)的上電漂移不同于斷電漂移的情況的方案??刂破魍ㄟ^(guò)跟蹤刷新和寫來(lái)自動(dòng)管理這個(gè)。此外,本發(fā)明的實(shí)施例提供了通過(guò)哈希表或類似方案跟蹤最近寫地址而降低寫之后的懲罰框的性能影響的高效方案。作為示例,根據(jù)一個(gè)實(shí)施例的方法包括:檢測(cè)指向PCMS存儲(chǔ)器的第一塊的讀操作;確定在讀操作之前的規(guī)定時(shí)間量?jī)?nèi)先前是否已經(jīng)發(fā)生了對(duì)第一塊的寫操作;如果在寫操作之前的規(guī)定時(shí)間量?jī)?nèi)先前已經(jīng)發(fā)生了對(duì)第一塊的寫操作,則使用用于讀操作的第一分界電壓(VDM);并且如果在寫操作或刷新操作之前的規(guī)定時(shí)間量?jī)?nèi)先前尚未發(fā)生對(duì)第一塊的寫操作,則使用用于讀操作的第二VDM。
【專利說(shuō)明】用于相變存儲(chǔ)器漂移管理的設(shè)備和方法
【技術(shù)領(lǐng)域】
[0001]此發(fā)明一般涉及計(jì)算機(jī)系統(tǒng)的領(lǐng)域。更具體地說(shuō),本發(fā)明涉及用于相變存儲(chǔ)器漂移管理的設(shè)備和方法。
【背景技術(shù)】
[0002]A.當(dāng)前存儲(chǔ)器和存儲(chǔ)裝置配置
當(dāng)今計(jì)算機(jī)創(chuàng)新的限制因素之一是存儲(chǔ)器和存儲(chǔ)裝置技術(shù)。在常規(guī)計(jì)算機(jī)系統(tǒng)中,系統(tǒng)存儲(chǔ)器(也稱為主存儲(chǔ)器、主要存儲(chǔ)器、可執(zhí)行存儲(chǔ)器)通常由動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)實(shí)現(xiàn)?;贒RAM的存儲(chǔ)器甚至在沒(méi)有存儲(chǔ)器讀或者寫發(fā)生時(shí)也消耗功率,這是因?yàn)樗仨毑粩嘟o內(nèi)部電容器再充電?;贒RAM的存儲(chǔ)器是易失性的,這意味著,一旦移除電源,存儲(chǔ)在DRAM存儲(chǔ)器中的數(shù)據(jù)就丟失。常規(guī)計(jì)算機(jī)系統(tǒng)還依賴于多級(jí)高速緩存以改進(jìn)性能。高速緩存是位于處理器與系統(tǒng)存儲(chǔ)器之間的高速存儲(chǔ)器,以比可能從系統(tǒng)存儲(chǔ)器服務(wù)于存儲(chǔ)器存取請(qǐng)求更快地服務(wù)于它們。此類高速緩存通常用靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)實(shí)現(xiàn)。高速緩存管理協(xié)議可用于確保最頻繁存取的數(shù)據(jù)和指令被存儲(chǔ)在其中一級(jí)高速緩存內(nèi),由此減少存儲(chǔ)器存取事務(wù)數(shù)量并改進(jìn)性能。
[0003]相對(duì)于大容量存儲(chǔ)裝置(也稱為輔助存儲(chǔ)裝置或盤存儲(chǔ)裝置),常規(guī)大容量存儲(chǔ)裝置器件通常包含磁介質(zhì)(例如硬盤驅(qū)動(dòng)器)、光介質(zhì)(例如壓縮盤(CD)驅(qū)動(dòng)器、數(shù)字多功能盤(DVD)等)、全息介質(zhì)和/或大容量存儲(chǔ)裝置閃速存儲(chǔ)器(例如固態(tài)驅(qū)動(dòng)器(SSD)、可拆卸閃速驅(qū)動(dòng)器等)。一般而言,這些存儲(chǔ)裝置器件被視為輸入/輸出(I/O)裝置,這是因?yàn)樗鼈冇商幚砥魍ㄟ^(guò)實(shí)現(xiàn)各種I/O協(xié)議的各種I/O適配器來(lái)存取。這些I/O適配器和I/O協(xié)議消耗相當(dāng)大量的功率,并且可對(duì)平臺(tái)的管芯面積和形狀因子具有重大影響。當(dāng)未連接到永久電源時(shí)具有有限電池壽命的便攜式裝置或移動(dòng)裝置(例如膝上型計(jì)算機(jī)、筆記本、平板計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、便攜式媒體播放器、便攜式游戲裝置、數(shù)字?jǐn)z像機(jī)、移動(dòng)電話、智能電話、功能手機(jī)等)可包含可拆卸大容量存儲(chǔ)裝置器件(例如嵌入式多媒體卡(eMMC)、安全數(shù)字(SD)卡),它們通常經(jīng)由低功率互連和I/O控制器耦合到處理器以便滿足活動(dòng)和空閑功率預(yù)算。
[0004]相對(duì)于固件存儲(chǔ)器(諸如引導(dǎo)存儲(chǔ)器(也稱為BIOS閃存))、常規(guī)計(jì)算機(jī)系統(tǒng)通常使用閃速存儲(chǔ)器裝置來(lái)存儲(chǔ)經(jīng)常被讀但很少(或者從不)被寫的持久系統(tǒng)信息。例如,由處理器執(zhí)行的、在引導(dǎo)過(guò)程期間初始化關(guān)鍵系統(tǒng)組件的初始指令(基本輸入和輸出系統(tǒng)(BIOS)映像)通常存儲(chǔ)在閃速存儲(chǔ)器裝置中。當(dāng)前在市場(chǎng)上可買到的閃速存儲(chǔ)器裝置一般具有有限速度(例如50 MHz)。由于用于讀協(xié)議的開(kāi)銷,此速度進(jìn)一步降低(例如2.5 MHz)。為了加速BIOS執(zhí)行速度,常規(guī)處理器一般在引導(dǎo)過(guò)程的預(yù)先可擴(kuò)展固件接口(PEI)階段期間高速緩存BIOS代碼的一部分。處理器高速緩存的大小對(duì)在PEI階段中使用的BIOS代碼(也稱為“PEI BIOS代碼”)的大小施加了約束。
[0005]B.相變存儲(chǔ)器(PCM)以及相關(guān)技術(shù)
相變存儲(chǔ)器(PCM)(有時(shí)也稱為相變隨機(jī)存取存儲(chǔ)器(PRAM或PCRAM)、PCME、奧式統(tǒng)一存儲(chǔ)器或硫?qū)倩颮AM(C-RAM))是采用硫?qū)倩锊AУ莫?dú)特行為的非易失性計(jì)算機(jī)存儲(chǔ)器類型。由于由電流經(jīng)過(guò)產(chǎn)生的熱量,硫?qū)倩锊AЭ稍趦煞N狀態(tài):晶體與非晶體之間切換。PCM的當(dāng)前版本可獲得兩種截然不同的附加狀態(tài)。
[0006]PCM提供比閃存更高的性能,這是因?yàn)镻CM的存儲(chǔ)元件可更快地開(kāi)關(guān),可進(jìn)行寫(將各個(gè)位改變成I或O)而無(wú)需首先擦除單元的整個(gè)塊,并且來(lái)自寫的降級(jí)更慢(PCM裝置可存活近似I億個(gè)寫循環(huán);PCM降級(jí)是由于編程期間的熱膨脹、金屬(和其它材料)遷移以及其它機(jī)制)。
【專利附圖】
【附圖說(shuō)明】
[0007]以下說(shuō)明書和附圖用于說(shuō)明本發(fā)明的實(shí)施例。在附圖中:
圖1圖示了根據(jù)本發(fā)明實(shí)施例的高速緩存和系統(tǒng)存儲(chǔ)器布置;
圖2圖示了在本發(fā)明實(shí)施例中采用的存儲(chǔ)器和存儲(chǔ)裝置層級(jí);
圖3圖示了可在其上實(shí)現(xiàn)本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng);
圖4A圖示了根據(jù)本發(fā)明實(shí)施例包含PCM的第一系統(tǒng)架構(gòu);
圖4B圖示了根據(jù)本發(fā)明實(shí)施例包含PCM的第二系統(tǒng)架構(gòu);
圖4C圖示了根據(jù)本發(fā)明實(shí)施例包含PCM的第三系統(tǒng)架構(gòu);
圖4D圖示了根據(jù)本發(fā)明實(shí)施例包含PCM的第四系統(tǒng)架構(gòu);
圖4E圖示了根據(jù)本發(fā)明實(shí)施例包含PCM的第五系統(tǒng)架構(gòu);
圖4F圖示了根據(jù)本發(fā)明實(shí)施例包含PCM的第六系統(tǒng)架構(gòu);
圖4G圖示了根據(jù)本發(fā)明實(shí)施例包含PCM的第七系統(tǒng)架構(gòu);
圖4H圖示了根據(jù)本發(fā)明實(shí)施例包含PCM的第八系統(tǒng)架構(gòu);
圖41圖示了根據(jù)本發(fā)明實(shí)施例包含PCM的第九系統(tǒng)架構(gòu);
圖4J圖示了根據(jù)本發(fā)明實(shí)施例包含PCM的第十系統(tǒng)架構(gòu);
圖4K圖示了根據(jù)本發(fā)明實(shí)施例包含PCM的第十一系統(tǒng)架構(gòu);
圖4L圖示了根據(jù)本發(fā)明實(shí)施例包含PCM的第十二系統(tǒng)架構(gòu) '及 圖4M圖示了根據(jù)本發(fā)明實(shí)施例包含PCM的第十三系統(tǒng)架構(gòu);
圖5A圖示了系統(tǒng)架構(gòu)的一個(gè)實(shí)施例,其包含易失性近存儲(chǔ)器和非易失性遠(yuǎn)存儲(chǔ)器;
圖5B圖示了存儲(chǔ)器側(cè)高速緩存(MSC)的一個(gè)實(shí)施例;
圖5C圖示了存儲(chǔ)器側(cè)高速緩存(MSC)的另一實(shí)施例,其包含集成標(biāo)簽高速緩存和ECC生成/檢查邏輯;
圖圖示了示范標(biāo)簽高速緩存和ECC生成器/檢查單元的一個(gè)實(shí)施例;
圖5E圖示了包含PCM控制器的PCM DMM的一個(gè)實(shí)施例;
圖6A圖示了根據(jù)本發(fā)明一個(gè)實(shí)施例專用于某些規(guī)定系統(tǒng)物理地址(SPA)范圍的MCE控制器和高速緩存;
圖6B圖示了根據(jù)本發(fā)明一個(gè)實(shí)施例在系統(tǒng)存儲(chǔ)器映射、近存儲(chǔ)器地址映射與PCM地址映射之間的示范性映射;
圖6C圖示了根據(jù)本發(fā)明一個(gè)實(shí)施例在系統(tǒng)物理地址(SPA)與PCM物理裝置地址(PDA)或近存儲(chǔ)器地址(NMA)之間的示范性映射;
圖6D圖示了根據(jù)本發(fā)明一個(gè)實(shí)施例在系統(tǒng)物理地址(SPA)空間與存儲(chǔ)器通道地址(MCA)空間內(nèi)的存儲(chǔ)頁(yè)面之間的交織;
圖7a圖示了在本發(fā)明一個(gè)實(shí)施例中采用的分界電壓(VDM)定時(shí);
圖7B-C分別圖示了在本發(fā)明一個(gè)實(shí)施例中采用的用于讀操作和寫操作的系統(tǒng)架構(gòu); 圖7D-E分別圖示了在本發(fā)明一個(gè)實(shí)施例中采用的用于讀操作和寫操作的方法。
【具體實(shí)施方式】
[0008]在以下描述中,闡述了許多具體細(xì)節(jié),諸如邏輯實(shí)現(xiàn)、操作碼、規(guī)定操作數(shù)的構(gòu)件、資源劃分/共享/復(fù)制實(shí)現(xiàn)、系統(tǒng)組件的類型和相互關(guān)系以及邏輯劃分/集成選擇,以便提供對(duì)本發(fā)明的更透徹理解。然而,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,沒(méi)有此類特定細(xì)節(jié)也可實(shí)踐本發(fā)明。在其它實(shí)例中,控制結(jié)構(gòu)、門級(jí)電路以及全軟件指令序列未詳細(xì)示出,以免模糊了本發(fā)明。本領(lǐng)域普通技術(shù)人員用所包含的描述將能夠?qū)崿F(xiàn)適當(dāng)功能性,而無(wú)需過(guò)多實(shí)驗(yàn)。
[0009]在說(shuō)明書中提到“ 一個(gè)實(shí)施例”、“實(shí)施例”、“示例實(shí)施例”等指示所描述的實(shí)施例可包含具體特征、結(jié)構(gòu)或特性,但可能不一定每一個(gè)實(shí)施例都包含該具體特征、結(jié)構(gòu)或特性。此外,此類短語(yǔ)不一定是指同一實(shí)施例。進(jìn)一步說(shuō),當(dāng)具體特征、結(jié)構(gòu)或特性結(jié)合一實(shí)施例描述時(shí),認(rèn)為結(jié)合其它實(shí)施例實(shí)現(xiàn)此類特征、結(jié)構(gòu)或特性在本領(lǐng)域技術(shù)人員的知識(shí)范圍內(nèi),而不管是否明確描述。
[0010]在以下說(shuō)明書和權(quán)利要求書中,可以使用術(shù)語(yǔ)“耦合”和“連接”連同它們的派生詞。應(yīng)該理解,這些術(shù)語(yǔ)不打算作為彼此的同義詞?!榜詈稀庇糜谥甘究梢灾苯颖舜宋锢斫佑|或電接觸或者可以不直接彼此物理接觸或電接觸的兩個(gè)或更多元件彼此協(xié)同操作或交互作用。“連接”用于指示在彼此耦合的兩個(gè)或更多元件之間建立通信。
[0011]帶括號(hào)的文本以及具有虛線邊框(例如大劃線、小劃線、點(diǎn)劃線、點(diǎn)等)的塊有時(shí)在本文用于圖示向本發(fā)明實(shí)施例添加附加特征的可選操作/組件。然而,此類記號(hào)不應(yīng)該被視為意味著這些是僅有的選項(xiàng)或僅有的可選操作/組件,和/或不應(yīng)該被視為意味著具有實(shí)線邊框的塊在本發(fā)明的某些實(shí)施例中不是可選的。
[0012]介紹
存儲(chǔ)器容量和性能要求隨著處理器核以及新使用模型(諸如虛擬化)的數(shù)量增加而繼續(xù)增加。此外,存儲(chǔ)器功率和成本已經(jīng)分別變成電子系統(tǒng)的總體功率和成本的重要組成部分。
[0013]本發(fā)明的一些實(shí)施例通過(guò)在存儲(chǔ)器技術(shù)之間智能細(xì)分性能要求和容量要求來(lái)解決以上挑戰(zhàn)。此方法的關(guān)注點(diǎn)在于通過(guò)如下方式來(lái)提供性能:利用相對(duì)小量的相對(duì)更高速的存儲(chǔ)器(諸如DRAM),同時(shí)使用顯著更便宜并且更密集的非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)來(lái)實(shí)現(xiàn)大多數(shù)系統(tǒng)存儲(chǔ)器。下面描述的本發(fā)明實(shí)施例定義了對(duì)于使用NVRAM能夠?qū)崿F(xiàn)層級(jí)存儲(chǔ)器子系統(tǒng)組織的平臺(tái)配置。在存儲(chǔ)器層級(jí)中使用NVRAM也能夠?qū)崿F(xiàn)新的使用,諸如擴(kuò)大的引導(dǎo)空間以及大容量存儲(chǔ)裝置實(shí)現(xiàn),如下面所詳細(xì)描述的。
[0014]圖1圖示了根據(jù)本發(fā)明實(shí)施例的高速緩存和系統(tǒng)存儲(chǔ)器布置。特別地,圖1示出了存儲(chǔ)器層級(jí),其包含一組內(nèi)部處理器高速緩存120、充當(dāng)遠(yuǎn)存儲(chǔ)器高速緩存的“近存儲(chǔ)器” 121以及“遠(yuǎn)存儲(chǔ)器” 122,“近存儲(chǔ)器” 121可包含一個(gè)或多個(gè)內(nèi)部高速緩存106和外部高速緩存107-109。在本發(fā)明的一些實(shí)施例中可用于“遠(yuǎn)存儲(chǔ)器”的一種具體類型存儲(chǔ)器是非易失性隨機(jī)存取存儲(chǔ)器(“NVRAM”)。因而,下面提供了 NVRAM的概覽,隨后是遠(yuǎn)存儲(chǔ)器和近存儲(chǔ)器的概覽。
[0015]A.非易失性隨機(jī)存取存儲(chǔ)器(“NVRAM”)
存在許多可能的技術(shù)選擇用于NVRAM,包含PCM、相變存儲(chǔ)器和開(kāi)關(guān)(PCMS)(后者是前者的更具體實(shí)現(xiàn))、字節(jié)可尋址持久存儲(chǔ)器(BPRAM)、通用存儲(chǔ)器、Ge2Sb2Te5、可編程金屬化單元(PMC)、電阻性存儲(chǔ)器(RRAM)、RESET (非晶體)單元、SET (晶體)單元、PCME、奧氏存儲(chǔ)器、鐵電存儲(chǔ)器(也稱為聚合物存儲(chǔ)器和聚(N-乙烯基咔唑))、鐵磁存儲(chǔ)器(也稱為自旋電子器件、SPRAM (自旋傳遞扭矩RAM)、STRAM (自旋遂穿RAM)、磁阻存儲(chǔ)器、磁存儲(chǔ)器、磁隨機(jī)存取存儲(chǔ)器(MRAM))以及半導(dǎo)體-氧化物-氮化物-氧化物-半導(dǎo)體(S0N0S,也稱為介電存儲(chǔ)器)。
[0016]供在此申請(qǐng)中描述的存儲(chǔ)器層級(jí)之用,NVRAM具有如下特性:
(1)即便移除電源它也保持其內(nèi)容,這類似于在固態(tài)盤(SSD)中使用的閃速存儲(chǔ)器,并且不同于易失性的SRAM和DRAM ;
(2)當(dāng)空閑時(shí)比易失性存儲(chǔ)器(諸如SRAM和DRAM)更低的功耗;
(3)類似于SRAM和DRAM的隨機(jī)存取(也稱為可隨機(jī)尋址);
(4)以比在SSD中含有的閃存更低級(jí)的粒度(例如字節(jié)級(jí))可重寫以及可擦除(SSD中含有的閃存每次僅能被重寫并擦除“塊”——對(duì)于NOR閃存而言大小最低限度是64K字節(jié),并且對(duì)于NAND閃存而言大小最低限度是16K字節(jié));
(5)可用作系統(tǒng)存儲(chǔ)器并且分配了全部系統(tǒng)存儲(chǔ)器地址空間或部分系統(tǒng)存儲(chǔ)器地址空
間;
(6)能夠使用事務(wù)協(xié)議通過(guò)總線耦合到處理器(支持事務(wù)標(biāo)識(shí)符(ID)來(lái)區(qū)分不同的事務(wù)的協(xié)議,使得那些事務(wù)可無(wú)序地完成)并允許在小到足以支持作為系統(tǒng)存儲(chǔ)器的NVRAM的操作(例如高速緩存行大小、諸如64字節(jié)或128字節(jié))的粒度級(jí)存取。例如,總線可以是存儲(chǔ)器總線(例如DDR總線、諸如DDR3、DDR4等),通過(guò)所述總線運(yùn)行事務(wù)協(xié)議,這與正常使用的非事務(wù)協(xié)議形成對(duì)比。作為另一示例,總線可以是通過(guò)其正常運(yùn)行事務(wù)協(xié)議(本機(jī)事務(wù)協(xié)議)的總線,諸如PCI EXPRESS (PCIE)總線、桌面管理接口(DMI)總線或利用事務(wù)協(xié)議和足夠小的事務(wù)有效載荷大小(例如高速緩存行大小、諸如64字節(jié)或128字節(jié))的任何其它類型總線;以及
(7)以下一項(xiàng)或多項(xiàng):
a)比非易失性存儲(chǔ)器/存儲(chǔ)裝置技術(shù)(諸如閃存)更快的寫速度;
b)非常高的讀速度(比閃存更快,并且接近或相當(dāng)于DRAM讀速度);
c)直接可寫(而不是在寫數(shù)據(jù)之前需要擦除(用I蓋寫)(比如在SSD中使用的閃速存儲(chǔ)器));和/或
d)在故障之前較高(例如2或3)數(shù)量級(jí)的寫持續(xù)時(shí)間(比在SSD中使用的引導(dǎo)ROM和閃存大)。
[0017]如上面所提到的,與閃速存儲(chǔ)器形成對(duì)照(閃速存儲(chǔ)器每次必須被重寫并且擦除整個(gè)“塊”),在任何給定實(shí)現(xiàn)中存取NVRAM所用的粒度級(jí)可取決于具體存儲(chǔ)器控制器和具體存儲(chǔ)器總線或耦合NVRAM的其它類型總線。例如,在NVRAM被用作系統(tǒng)存儲(chǔ)器的一些實(shí)現(xiàn)中,盡管固有能力是以字節(jié)粒度來(lái)存取,仍可以以高速緩存行(例如64字節(jié)或128字節(jié)的高速緩存行)的粒度來(lái)存取NVRAM,這是因?yàn)楦咚倬彺嫘惺谴鎯?chǔ)器子系統(tǒng)存取存儲(chǔ)器的所用的級(jí)。從而,當(dāng)NVRAM被部署在存儲(chǔ)器子系統(tǒng)內(nèi)時(shí),可以以與在同一存儲(chǔ)器子系統(tǒng)中使用的DRAM(例如“近存儲(chǔ)器”)相同的粒度級(jí)來(lái)存取NVRAM。即便如此,由存儲(chǔ)器控制器和存儲(chǔ)器總線或其它類型總線對(duì)NVRAM的存取的粒度級(jí)也小于由閃存使用的塊大小和I/O子系統(tǒng)的控制器和總線的存取大小的粒度級(jí)。
[0018]NVRAM也可結(jié)合耗損均衡算法來(lái)考慮如下事實(shí):在遠(yuǎn)存儲(chǔ)器級(jí)的存儲(chǔ)裝置單元在若干次寫存取之后開(kāi)始損耗,特別是在諸如在系統(tǒng)存儲(chǔ)器實(shí)現(xiàn)中可出現(xiàn)大量寫的情況下。由于用這種方式高循環(huán)計(jì)數(shù)塊最有可能損耗,因此耗損均衡通過(guò)交換高循環(huán)計(jì)數(shù)塊與低循環(huán)計(jì)數(shù)塊的地址而在遠(yuǎn)存儲(chǔ)單元上擴(kuò)散寫。要指出,大部分地址交換通常對(duì)應(yīng)用程序而言是透明的,這是因?yàn)樗捎布⒌图?jí)軟件(例如低級(jí)驅(qū)動(dòng)程序或操作系統(tǒng))或二者的組合來(lái)處置。
[0019]B.遠(yuǎn)存儲(chǔ)器
本發(fā)明一些實(shí)施例的遠(yuǎn)存儲(chǔ)器122用NVRAM實(shí)現(xiàn),但不一定局限于任何具體存儲(chǔ)器技術(shù)。遠(yuǎn)存儲(chǔ)器122在其特性和/或其在存儲(chǔ)器/存儲(chǔ)裝置層級(jí)中的應(yīng)用方面與其它指令和數(shù)據(jù)存儲(chǔ)器/存儲(chǔ)裝置技術(shù)有區(qū)別。例如,遠(yuǎn)存儲(chǔ)器122不同于:
1)靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM),其可用于分別專用于處理器核101-104中每一個(gè)處理器核的級(jí)O和級(jí)I內(nèi)部處理器高速緩存101a-b、102a-b、103a-b、103a_b和104a_b,以及由處理器核共享的較低級(jí)高速緩存(LLC) 105 ;
2)動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM),其配置為在處理器100內(nèi)部的高速緩存106(例如在與處理器106相同的管芯上)和/或配置為在處理器外部的一個(gè)或多個(gè)高速緩存107-109(例如在與處理器100相同的封裝或不同的封裝中);以及
3)閃速存儲(chǔ)器/磁盤/光盤,其應(yīng)用為大容量存儲(chǔ)裝置(未示出)'及
4)存儲(chǔ)器(諸如閃速存儲(chǔ)器或其它只讀存儲(chǔ)器(R0M)),其應(yīng)用為固件存儲(chǔ)器(其可以指引導(dǎo)ROM、BIOS閃存和/或TPM閃存)(未示出)。
[0020]遠(yuǎn)存儲(chǔ)器122可被用作可直接由處理器100尋址并且能夠充分跟上處理器100的指令和數(shù)據(jù)存儲(chǔ)裝置,其與應(yīng)用為大容量存儲(chǔ)裝置的閃存/磁盤/光盤形成對(duì)照。此外,如上面所討論和下面詳細(xì)描述的,遠(yuǎn)存儲(chǔ)器122可被放在存儲(chǔ)器總線上,并且可與存儲(chǔ)器控制器直接通信,所述存儲(chǔ)器控制器又與處理器100直接通信。
[0021]遠(yuǎn)存儲(chǔ)器122可與其它指令和數(shù)據(jù)存儲(chǔ)技術(shù)(例如DRAM)組合以形成混合存儲(chǔ)器(也稱為共同定位的PCM和DRAM ;第一級(jí)存儲(chǔ)器和第二級(jí)存儲(chǔ)器;FLAM(閃存和DRM))。要指出,以上技術(shù)中的至少一些技術(shù)(包含PCM/PCMS)可用于大容量存儲(chǔ)裝置,來(lái)代替系統(tǒng)存儲(chǔ)器或作為系統(tǒng)存儲(chǔ)器的附加,并且當(dāng)以這種方式應(yīng)用時(shí)不必是可由處理器隨機(jī)可存取的、字節(jié)可尋址的或直接可尋址的。
[0022]為了便于說(shuō)明,本申請(qǐng)其余部分中的大部分將引用“NVRAM”,或者更特別地“PCM”或“PCMS”來(lái)作為用于遠(yuǎn)存儲(chǔ)器122的技術(shù)選擇。因而,術(shù)語(yǔ)NVRAM、PCM、PCMS和遠(yuǎn)存儲(chǔ)器在以下討論中可互換使用。然而,應(yīng)該意識(shí)到,如上面所討論的,對(duì)于遠(yuǎn)存儲(chǔ)器也可利用不同技術(shù)。還有,那個(gè)NVRAM不限于用作遠(yuǎn)存儲(chǔ)器。
[0023]C.近存儲(chǔ)器
“近存儲(chǔ)器” 121是配置在遠(yuǎn)存儲(chǔ)器122前面的中間級(jí)存儲(chǔ)器,其相對(duì)于遠(yuǎn)存儲(chǔ)器具有更低讀/寫存取等待時(shí)間和/或更對(duì)稱的讀/寫存取等待時(shí)間(即具有大致相當(dāng)于寫時(shí)間的讀時(shí)間)。在一些實(shí)施例中,近存儲(chǔ)器121具有比遠(yuǎn)存儲(chǔ)器122顯著低的寫等待時(shí)間但具有類似(例如略低或相等)的讀等待時(shí)間;例如,近存儲(chǔ)器121可以是易失性存儲(chǔ)器(諸如易失性隨機(jī)存取存儲(chǔ)器(VRAM)),并且可包括DRAM或其它基于電容器的高速存儲(chǔ)器。然而,要指出,本發(fā)明的基本原理不限于這些特定存儲(chǔ)器類型。附加地,近存儲(chǔ)器121可具有相對(duì)低的密度,和/或可能比遠(yuǎn)存儲(chǔ)器122制造起來(lái)更昂貴。
[0024]在一個(gè)實(shí)施例中,近存儲(chǔ)器121配置在遠(yuǎn)存儲(chǔ)器122與內(nèi)部處理器高速緩存120之間。在下面描述的一些實(shí)施例中,近存儲(chǔ)器121配置為一個(gè)或多個(gè)存儲(chǔ)器側(cè)高速緩存(MSC) 107-109以掩蔽遠(yuǎn)存儲(chǔ)器的性能和/或使用限制,其包括例如讀/寫等待時(shí)間限制和存儲(chǔ)器降級(jí)限制。在這些實(shí)現(xiàn)中,MSC 107-109和遠(yuǎn)存儲(chǔ)器122的組合以近似、相當(dāng)于或超過(guò)僅使用DRAM作為系統(tǒng)存儲(chǔ)器的系統(tǒng)的性能級(jí)操作。如下面所詳細(xì)討論的,雖然在圖1中顯示為“高速緩存”,但近存儲(chǔ)器121可包含如下模式,其中它除了扮演高速緩存角色之外還扮演其它角色,或者替代扮演高速緩存角色而扮演其它角色。
[0025]近存儲(chǔ)器121可位于處理器管芯上(作為一個(gè)或多個(gè)高速緩存106)和/或位于處理器管芯外部(作為高速緩存107-109)(例如在位于CPU封裝上、位于具有到CPU封裝的高帶寬鏈路的CPU封裝外部的單獨(dú)管芯上,例如在存儲(chǔ)器雙列直插式存儲(chǔ)器模塊(DIMM)、轉(zhuǎn)接卡(riser)/夾層卡(mezzanine)或計(jì)算機(jī)主板上)。近存儲(chǔ)器121可使用單個(gè)或多個(gè)高帶寬鏈路(諸如DDR或其它事務(wù)的高帶寬鏈路)與處理器100通信耦合(如下面所詳細(xì)描述的)。
[0026]示范性系統(tǒng)存儲(chǔ)器分配方案
圖1圖示了在本發(fā)明實(shí)施例中如何相對(duì)于系統(tǒng)物理地址(SPA)空間116-119配置各級(jí)高速緩存101-109。如所提到的,這個(gè)實(shí)施例包括具有一個(gè)或多個(gè)核101-104的處理器100,其中每個(gè)核都具有它自己的專用上級(jí)高速緩存(LO) 101a-104a和中間級(jí)高速緩存(MLC)(LI)高速緩存101b-104b。處理器100還包含共享的LLC 105。這些各級(jí)高速緩存的操作很好理解,并且在此將不詳細(xì)描述。
[0027]圖1中圖示的高速緩存107-109可專用于具體系統(tǒng)存儲(chǔ)器地址范圍或不連續(xù)地址范圍集合。例如,高速緩存107專用于充當(dāng)用于系統(tǒng)存儲(chǔ)器地址范圍# I 116的MSC,并且高速緩存108和109專用于充當(dāng)用于系統(tǒng)存儲(chǔ)器地址范圍# 2 117和# 3 118的非重疊部分的MSC。后面的實(shí)現(xiàn)可用于如下系統(tǒng):其中由處理器100使用的SPA空間被交織到由高速緩存107-109(例如當(dāng)配置為MSC時(shí))使用的地址空間中。在一些實(shí)施例中,這個(gè)后面的地址空間被稱為存儲(chǔ)器通道地址(MCA)空間。在一個(gè)實(shí)施例中,內(nèi)部高速緩存101a-106a對(duì)整個(gè)SPA空間執(zhí)行高速緩存操作。
[0028]本文所使用的系統(tǒng)存儲(chǔ)器是對(duì)在處理器100上執(zhí)行的軟件而言可見(jiàn)和/或可直接由其尋址的存儲(chǔ)器;而高速緩存存儲(chǔ)器101a-109可在如下意義上對(duì)軟件而言透明地操作:它們未形成系統(tǒng)地址空間的直接可尋址部分,但這些核也可支持指令執(zhí)行以允許軟件向一些高速緩存或所有高速緩存提供某種控制(配置、策略、提示等)。系統(tǒng)存儲(chǔ)器細(xì)分成區(qū)域116-119可作為系統(tǒng)配置過(guò)程的一部分(例如由系統(tǒng)設(shè)計(jì)者)手動(dòng)執(zhí)行,和/或可由軟件自動(dòng)執(zhí)行。
[0029]在一個(gè)實(shí)施例中,使用遠(yuǎn)存儲(chǔ)器(例如PCM)并且在一些實(shí)施例中使用配置為系統(tǒng)存儲(chǔ)器的近存儲(chǔ)器來(lái)實(shí)現(xiàn)系統(tǒng)存儲(chǔ)器區(qū)域116-119。系統(tǒng)存儲(chǔ)器地址范圍# 4表示使用更高速存儲(chǔ)器(諸如DRAM)實(shí)現(xiàn)的地址范圍,更高速存儲(chǔ)器可以是配置在系統(tǒng)存儲(chǔ)器模式(與高速緩存模式相對(duì))的近存儲(chǔ)器。
[0030]圖2圖示了根據(jù)本發(fā)明實(shí)施例用于近存儲(chǔ)器144和NVRAM的存儲(chǔ)器/存儲(chǔ)裝置層級(jí)140和不同的可配置操作模式。存儲(chǔ)器/存儲(chǔ)裝置層級(jí)140具有多級(jí),其包含:(1)高速緩存級(jí)150,其可包含處理器高速緩存150A(例如圖1中的高速緩存101A-105)以及可選地包含近存儲(chǔ)器來(lái)作為用于遠(yuǎn)存儲(chǔ)器的高速緩存150B(在本文所討論的某些操作模式中),(2)系統(tǒng)存儲(chǔ)器級(jí)151,其在近存儲(chǔ)器存在時(shí)可包含遠(yuǎn)存儲(chǔ)器151B (例如NVRAM、諸如PCM)(或者當(dāng)近存儲(chǔ)器不存在時(shí)可只是包含NVRAM作為系統(tǒng)存儲(chǔ)器174)以及可選地包含作為系統(tǒng)存儲(chǔ)器151A操作的近存儲(chǔ)器(在本文所描述的某些操作模式中),(3)大容量存儲(chǔ)裝置級(jí)152,其可包含閃存/磁/光大容量存儲(chǔ)裝置152B和/或NVRAM大容量存儲(chǔ)裝置152A (例如NVRAM 142的一部分);以及(4)固件存儲(chǔ)器級(jí)153,其可包含BIOS閃存170和/或BIOSNVRAM 172以及可選地包含可信平臺(tái)模塊(TPM) NVRAM 173。
[0031]如所指示的,近存儲(chǔ)器144可實(shí)現(xiàn)成在各種不同模式操作,其包含:第一模式,在此模式它作為用于遠(yuǎn)存儲(chǔ)器的高速緩存(近存儲(chǔ)器作為用于FM的高速緩存150B)操作;第二模式,在此模式它作為系統(tǒng)存儲(chǔ)器151A操作,并占據(jù)SPA空間的一部分(有時(shí)稱為近存儲(chǔ)器“直接存取”模式);以及一個(gè)或多個(gè)附加操作模式,諸如暫存器存儲(chǔ)器192或作為寫緩沖器193。在本發(fā)明的一些實(shí)施例中,近存儲(chǔ)器是可劃分的,其中每個(gè)分區(qū)可同時(shí)在所支持模式中的不同模式操作;并且不同實(shí)施例可支持通過(guò)硬件(例如熔絲、管腳)、固件和/或軟件(例如通過(guò)MSC控制器124內(nèi)的一組可編程范圍寄存器,在其內(nèi)例如可存儲(chǔ)不同二進(jìn)制代碼以標(biāo)識(shí)每個(gè)模式和分區(qū))配置分區(qū)(例如大小、模式)。
[0032]圖2中的系統(tǒng)地址空間A 190用于圖示當(dāng)近存儲(chǔ)器被配置為用于遠(yuǎn)存儲(chǔ)器的MSC150B時(shí)的操作。在此配置中,系統(tǒng)地址空間A 190表示整體系統(tǒng)地址空間(并且系統(tǒng)地址空間B 191不存在)。備選地,系統(tǒng)地址空間B 191用于示出當(dāng)給全部或部分近存儲(chǔ)器指配一部分系統(tǒng)地址空間時(shí)的實(shí)現(xiàn)。在此實(shí)施例中,系統(tǒng)地址空間B 191表示系統(tǒng)地址空間中指配給近存儲(chǔ)器151 A的范圍,并且系統(tǒng)地址空間A 190表示系統(tǒng)地址空間中指配給NVRAM174的范圍。
[0033]此外,當(dāng)充當(dāng)用于遠(yuǎn)存儲(chǔ)器的高速緩存150B時(shí),近存儲(chǔ)器144可在MSC控制器124的控制下在各種子模式操作。在這些模式中的每個(gè)模式中,近存儲(chǔ)器地址空間(NMA)在如下意義上對(duì)軟件而言是透明的:近存儲(chǔ)器未形成系統(tǒng)地址空間的直接可尋址部分。這些模式包括但不限于以下:
(I)寫回高速緩存模式:在此模式,充當(dāng)FM高速緩存150B的全部或部分近存儲(chǔ)器被用作用于NVRAM遠(yuǎn)存儲(chǔ)器(FM) 15IB的高速緩存。雖然在寫回模式,但每一個(gè)寫操作最初都指向作為用于FM的高速緩存的近存儲(chǔ)器150B (假定在高速緩存中存在所述寫所指向的高速緩存行)。僅當(dāng)作為用于FM的高速緩存150B的近存儲(chǔ)器內(nèi)的高速緩存行要由另一高速緩存行替換時(shí)才執(zhí)行對(duì)應(yīng)寫操作以更新NVRAM FM 151B(與下面描述的每個(gè)寫操作被立即傳播到NVRAM FM 151B的寫直達(dá)模式形成對(duì)照)。
[0034](2)近存儲(chǔ)器旁路模式:在此模式,所有讀和寫都旁路充當(dāng)FM高速緩存的NM150B,并且直接去到NVRAM FM 151B。例如當(dāng)應(yīng)用不是高速緩存友好的時(shí),或者需要以高速緩存行的粒度持久交付數(shù)據(jù)時(shí),可使用此類模式。在一個(gè)實(shí)施例中,由處理器高速緩存150A和充當(dāng)FM高速緩存的匪150B執(zhí)行的高速緩存彼此獨(dú)立操作。因而,未在處理器高速緩存150A中高速緩存(并且在一些情況下其可能未準(zhǔn)許在處理器高速緩存150A中高速緩存)的數(shù)據(jù)可在充當(dāng)FM高速緩存的匪150B中高速緩存并且反之亦然。從而,在處理器高速緩存中可被指定為“不可高速緩存”的某些數(shù)據(jù)可在充當(dāng)FM高速緩存的匪150B內(nèi)高速緩存。
[0035](3)近存儲(chǔ)器讀-高速緩存寫旁路模式:這是上面模式的變化,其中允許從NVRAMFM 151B讀高速緩存持久數(shù)據(jù)(即,持久數(shù)據(jù)在作為用于遠(yuǎn)存儲(chǔ)器的高速緩存的近存儲(chǔ)器150B中高速緩存以便進(jìn)行只讀操作)。當(dāng)大部分持久數(shù)據(jù)是“只讀”的并且應(yīng)用使用是高速緩存友好的時(shí),這是有用的。
[0036](4)近存儲(chǔ)器讀-高速緩存寫肓達(dá)模式:這是近存儲(chǔ)器讀-高速緩存寫旁路模式的變化,其中除了讀高速緩存之外,還高速緩存寫命中。對(duì)作為用于FM的高速緩存的近存儲(chǔ)器150B的每一次寫引起對(duì)FM 151B的寫。從而,由于高速緩存的寫直達(dá)性質(zhì),仍保證了高速緩存行持久性。
[0037]當(dāng)在近存儲(chǔ)器直接存取模式中起作用時(shí),作為系統(tǒng)存儲(chǔ)器151A的近存儲(chǔ)器的全部或部分對(duì)軟件而言直接可見(jiàn),并且形成SPA空間的一部分。此類存儲(chǔ)器可完全在軟件控制下。此類方案可創(chuàng)建用于軟件的非均勻存儲(chǔ)器地址(NUMA)存儲(chǔ)區(qū),其中它從近存儲(chǔ)器144得到相對(duì)于NVRAM系統(tǒng)存儲(chǔ)器174更高的性能。作為示例而非限制,此類使用可用于需要對(duì)某些數(shù)據(jù)結(jié)構(gòu)進(jìn)行非??焖俅嫒〉哪承└咝阅苡?jì)算(HPC)和圖形應(yīng)用。
[0038]在備選實(shí)施例中,近存儲(chǔ)器直接存取模式通過(guò)對(duì)近存儲(chǔ)器中的某些高速緩存行(即具有也同時(shí)存儲(chǔ)在NVRAM 142中的數(shù)據(jù)的高速緩存行)“設(shè)置管腳”來(lái)實(shí)現(xiàn)。此類設(shè)置管腳可有效地在較大、多路且組關(guān)聯(lián)的高速緩存中進(jìn)行。
[0039]圖2還圖示NVRAM 142的一部分可被用作固件存儲(chǔ)器。例如,BIOS NVRAM 172部分可用于存儲(chǔ)BIOS映像(代替將BIOS信息存儲(chǔ)在BIOS閃存170中,或者作為對(duì)將BIOS信息存儲(chǔ)在BIOS閃存170中的附加)。BIOS NVRAM部分172可以是SPA空間的一部分,并且可由在處理器核101-104上執(zhí)行的軟件直接尋址,而BIOS閃存170可通過(guò)1/0子系統(tǒng)115來(lái)尋址。作為另一示例,可信平臺(tái)模塊(TPM) NVRAM 173部分可用于保護(hù)敏感系統(tǒng)信息(例如加密密鑰)。
[0040]從而,如所指示的,NVRAM 142可實(shí)現(xiàn)成在各種不同模式操作,其包含作為遠(yuǎn)存儲(chǔ)器151B (例如當(dāng)近存儲(chǔ)器144存在/操作時(shí),而無(wú)論近存儲(chǔ)器是否經(jīng)由MSC控制器124充當(dāng)用于FM的高速緩存(在一個(gè)或多個(gè)高速緩存101A-105之后直接存取并且沒(méi)有MSC控制器124));只是NVRAM系統(tǒng)存儲(chǔ)器174 (不作為遠(yuǎn)存儲(chǔ)器,這是因?yàn)闆](méi)有近存儲(chǔ)器存在/操作,并且在沒(méi)有MSC控制器124的情況下存取);NVRAM大容量存儲(chǔ)裝置152A ;B10S NVRAM172;以及TPM NVRAM 173。雖然不同實(shí)施例可按不同方式規(guī)定NVRAM模式,但圖3描述了解碼表333的使用。
[0041]圖3圖示了可在其上實(shí)現(xiàn)本發(fā)明實(shí)施例的示范性計(jì)算機(jī)系統(tǒng)300。計(jì)算機(jī)系統(tǒng)300包含處理器310和存儲(chǔ)器/存儲(chǔ)裝置子系統(tǒng)380,該存儲(chǔ)器/存儲(chǔ)裝置子系統(tǒng)380具有用于系統(tǒng)存儲(chǔ)器、大容量存儲(chǔ)裝置以及可選地固件存儲(chǔ)器的NVRAM 142。在一個(gè)實(shí)施例中,NVRAM142包括由計(jì)算機(jī)系統(tǒng)300用于存儲(chǔ)數(shù)據(jù)、指令、狀態(tài)和其它持久和非持久信息的整體系統(tǒng)存儲(chǔ)器和存儲(chǔ)裝置層級(jí)。如之前所討論的,NVRAM 142可配置成實(shí)現(xiàn)典型存儲(chǔ)器和存儲(chǔ)裝置層級(jí)中系統(tǒng)存儲(chǔ)器、大容量存儲(chǔ)裝置和固件存儲(chǔ)器、TPM存儲(chǔ)器等的角色。在圖3的實(shí)施例中,NVRAM 142被劃分成FM 151B、NVRAM大容量存儲(chǔ)裝置152A、BIOS NVRAM 173和TPMNVRAM 173。也考慮了具有不同角色的存儲(chǔ)裝置層級(jí),并且NVRAM 142的應(yīng)用不限于上面提到的角色。
[0042]作為示例,描述了作為用于FM的高速緩存的近存儲(chǔ)器150B處于寫回高速緩存時(shí)的操作。在一個(gè)實(shí)施例中,雖然作為用于FM的高速緩存150B的近存儲(chǔ)器處于上面提到的寫回高速緩存模式,但讀操作將首先到達(dá)MSC控制器124,其將執(zhí)行查找以確定在充當(dāng)用于FM的高速緩存150B的近存儲(chǔ)器中是否存在所請(qǐng)求的數(shù)據(jù)(例如利用標(biāo)簽高速緩存342)。如果存在,則它會(huì)通過(guò)I/O子系統(tǒng)115將數(shù)據(jù)返回到發(fā)出請(qǐng)求的CPU、核101-104或I/O裝置。如果數(shù)據(jù)不存在,則MSC控制器124會(huì)將請(qǐng)求與系統(tǒng)存儲(chǔ)器地址一起發(fā)送到NVRAM控制器332。NVRAM控制器332將使用解碼表333來(lái)將系統(tǒng)存儲(chǔ)器地址轉(zhuǎn)譯成NVRAM物理裝置地址(PDA),并將讀操作指向遠(yuǎn)存儲(chǔ)器151B的這個(gè)區(qū)域。在一個(gè)實(shí)施例中,解碼表333包含間接尋址表(AIT)組件,NVRAM控制器332使用所述AIT組件在系統(tǒng)存儲(chǔ)器地址與NVRAMPDA之間進(jìn)行轉(zhuǎn)譯。在一個(gè)實(shí)施例中,AIT被更新為耗損均衡算法的實(shí)現(xiàn)成分布存儲(chǔ)器存取操作并由此降低NVRAM FM 151B上耗損的部分。備選地,AIT可以是存儲(chǔ)在NVRAM控制器332內(nèi)的單獨(dú)表。
[0043]在從NVRAM FM 151B接收到所請(qǐng)求的數(shù)據(jù)時(shí),NVRAM控制器332會(huì)將所請(qǐng)求的數(shù)據(jù)返回到MSC控制器124,MSC控制器124會(huì)將所述數(shù)據(jù)存儲(chǔ)在充當(dāng)FM高速緩存的MSC近存儲(chǔ)器150B中,并且還通過(guò)I/O子系統(tǒng)115將所述數(shù)據(jù)發(fā)送到發(fā)出請(qǐng)求的處理器核101-104或者I/O裝置。對(duì)于此數(shù)據(jù)的后續(xù)請(qǐng)求可從充當(dāng)FM高速緩存的近存儲(chǔ)器150B直接服務(wù),直到它由某個(gè)其它NVRAM FM數(shù)據(jù)替換。
[0044]如所提到的,在一個(gè)實(shí)施例中,存儲(chǔ)器寫操作也首先去到MSC控制器124,MSC控制器124將它寫入充當(dāng)FM高速緩存的MSC近存儲(chǔ)器150B中。在寫回高速緩存模式中,當(dāng)接收到寫操作時(shí),可不將數(shù)據(jù)直接發(fā)送到NVRAM FM 151B。例如,僅當(dāng)充當(dāng)FM高速緩存的MSC近存儲(chǔ)器150B中存儲(chǔ)數(shù)據(jù)的位置必須針對(duì)不同系統(tǒng)存儲(chǔ)器地址再用于存儲(chǔ)數(shù)據(jù)時(shí),才可將數(shù)據(jù)發(fā)送到NVRAM FM 151B。當(dāng)這個(gè)發(fā)生時(shí),MSC控制器124注意到數(shù)據(jù)當(dāng)前不在NVRAM FM151B中,并且從而將從充當(dāng)FM高速緩存的近存儲(chǔ)器150B中檢索它,并將它發(fā)送到NVRAM控制器332。NVRAM控制器332查找用于系統(tǒng)存儲(chǔ)器地址的PDA,并且然后將數(shù)據(jù)寫到NVRAMFM 151B。
[0045]在圖3中,顯示NVRAM控制器332使用三條單獨(dú)的線路連接到FM 151B、NVRAM大容量存儲(chǔ)裝置152A和BIOS NVRAM 172。然而,這不一定意味著,存在三條單獨(dú)的物理總線或通信信道將NVRAM控制器332連接到NVRAM 142的這些部分。而是,在一些實(shí)施例中,公共存儲(chǔ)器總線或其它類型總線(諸如下面相對(duì)于圖4A-N描述的總線)用于以通信方式將NVRAM控制器332耦合到FM 151B、NVRAM大容量存儲(chǔ)裝置152A和BIOS NVRAM 172。例如,在一個(gè)實(shí)施例中,圖3中的三條線路表示總線(諸如存儲(chǔ)器總線(例如DDR3、DDR4等總線)),通過(guò)該總線NVRAM控制器332實(shí)現(xiàn)與NVRAM 142通信的事務(wù)協(xié)議。NVRAM控制器332也可通過(guò)支持本機(jī)事務(wù)協(xié)議的總線(諸如PCI EXPRESS總線、桌面管理接口(DMI)總線或利用事務(wù)協(xié)議和足夠小的事務(wù)有效載荷大小(例如高速緩存行大小、諸如64字節(jié)或128字節(jié))的任何其它類型總線)與NVRAM 142通信。
[0046]在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)300包含執(zhí)行用于處理器310的中央存儲(chǔ)器存取控制的集成存儲(chǔ)器控制器(IMC) 331,其耦合到:1)存儲(chǔ)器側(cè)高速緩存(MSC)控制器124,以控制對(duì)充當(dāng)遠(yuǎn)存儲(chǔ)器高速緩存的近存儲(chǔ)器(_ 150B的存??;以及2) NVRAM控制器332,以控制對(duì)NVRAM 142的存取。盡管在圖3中圖示為單獨(dú)單元,但MSC控制器124和NVRAM控制器332在邏輯上可形成MC 331的一部分。
[0047]在圖示的實(shí)施例中,MSC控制器124包含一組范圍寄存器336,范圍寄存器336規(guī)定供充當(dāng)遠(yuǎn)存儲(chǔ)器高速緩存的NM 150B之用的操作模式(例如上面描述的寫回高速緩存模式、近存儲(chǔ)器旁路模式等)。在所圖示的實(shí)施例中,DRAM 144被用作用于充當(dāng)用于遠(yuǎn)存儲(chǔ)器的高速緩存的匪150B的存儲(chǔ)器技術(shù)。響應(yīng)于存儲(chǔ)器存取請(qǐng)求,MSC控制器124可(根據(jù)在范圍寄存器336中規(guī)定的操作模式)確定是否可從充當(dāng)用于FM的高速緩存的NM 150B服務(wù)于該請(qǐng)求,或者是否必須向NVRAM控制器332發(fā)送該請(qǐng)求,控制器332然后可從NVRAM142的遠(yuǎn)存儲(chǔ)器(FM)部分151B服務(wù)于該請(qǐng)求。
[0048]在用PCMS實(shí)現(xiàn)NVRAM 142的實(shí)施例中,NVRAM控制器332是用與PCMS技術(shù)一致的協(xié)議來(lái)執(zhí)行存取的PCMS控制器。如之前所討論的,固有地,能夠以字節(jié)粒度存取PCMS存儲(chǔ)器。盡管如此,NVRAM控制器332可以以較低級(jí)粒度(諸如高速緩存行(例如64位或128位的高速緩存行))或與存儲(chǔ)器子系統(tǒng)一致的任何其它級(jí)粒度來(lái)存取基于PCMS的遠(yuǎn)存儲(chǔ)器151B。本發(fā)明的基本原理不限于用于存取基于PCMS的遠(yuǎn)存儲(chǔ)器151B的任何具體級(jí)粒度。然而,一般而言,當(dāng)基于PCMS的遠(yuǎn)存儲(chǔ)器151B用于形成系統(tǒng)地址空間的一部分時(shí),該粒度級(jí)將高于在傳統(tǒng)上用于其它非易失性存儲(chǔ)裝置技術(shù)(諸如閃存)的粒度級(jí),其僅能在“塊”級(jí)(對(duì)于NOR閃存的大小最低限度是64K字節(jié),并且對(duì)于NAND閃存最低限度是16K字節(jié))執(zhí)行重寫和擦除操作。
[0049]在所圖示的實(shí)施例中,NVRAM控制器332能夠讀取配置數(shù)據(jù)以從解碼表333中確立之前描述的用于NVRAM 142的模式、大小等,或者備選地,可依賴于從MC 331和I/O子系統(tǒng)315傳遞的解碼結(jié)果。例如,在制造時(shí)間或者在現(xiàn)場(chǎng),計(jì)算機(jī)系統(tǒng)300可對(duì)解碼表333編程以將NVRAM 142的不同區(qū)域標(biāo)記為系統(tǒng)存儲(chǔ)器、經(jīng)由SATA接口暴露的大容量存儲(chǔ)裝置、經(jīng)由USB單批量傳輸(BOT)接口暴露的大容量存儲(chǔ)裝置、支持TPM存儲(chǔ)的加密存儲(chǔ)裝置,除此之外還有其它。對(duì)NVRAM裝置142的不同分區(qū)操縱存取所用的手段是利用解碼邏輯的。例如,在一個(gè)實(shí)施例中,在解碼表333中定義每個(gè)分區(qū)的地址范圍。在一個(gè)實(shí)施例中,當(dāng)MC331接收到存取請(qǐng)求時(shí),該請(qǐng)求的目標(biāo)地址被解碼以揭示該請(qǐng)求是指向存儲(chǔ)器、NVRAM大容量存儲(chǔ)裝置還是I/O。如果它是存儲(chǔ)器請(qǐng)求,則MC 331和/或MSC控制器124根據(jù)目標(biāo)地址進(jìn)一步確定該請(qǐng)求是指向作為用于FM的高速緩存的匪150B還是指向FM 151B。對(duì)于FM 151B存取,該請(qǐng)求被轉(zhuǎn)發(fā)到NVRAM控制器332。如果此請(qǐng)求被指向I/O(例如非存儲(chǔ)裝置I/O裝置和存儲(chǔ)裝置I/O裝置),則IMC 331將該請(qǐng)求傳遞到I/O子系統(tǒng)115。I/O子系統(tǒng)115進(jìn)一步對(duì)該地址進(jìn)行解碼以確定該地址是針對(duì)NVRAM大容量存儲(chǔ)裝置152A、B10SNVRAM 172還是其它非存儲(chǔ)裝置I/O裝置和存儲(chǔ)裝置I/O裝置。如果此地址針對(duì)NVRAM大容量存儲(chǔ)裝置152A或BIOS NVRAM 172,則I/O子系統(tǒng)115將該請(qǐng)求轉(zhuǎn)發(fā)到NVRAM控制器332。如果此地址針對(duì)TMP NVRAM 173,則I/O子系統(tǒng)115將該請(qǐng)求傳遞到TPM 334以執(zhí)行安全存取。
[0050]在一個(gè)實(shí)施例中,轉(zhuǎn)發(fā)到NVRAM控制器332的每個(gè)請(qǐng)求兼有指示存取類型的屬性(也稱為“事務(wù)類型”)。在一個(gè)實(shí)施例中,NVRAM控制器332可模擬所請(qǐng)求存取類型的存取協(xié)議,使得平臺(tái)的其余部分保持不了解由NVRAM 142在存儲(chǔ)器和存儲(chǔ)裝置層級(jí)中扮演的多個(gè)角色。在備選實(shí)施例中,NVRAM控制器332可執(zhí)行對(duì)NVRAM 142的存儲(chǔ)器存取,而不管它是哪種事務(wù)類型。要理解,解碼路徑可不同于上面所描述的。例如,MC 331可對(duì)存取請(qǐng)求的目標(biāo)地址進(jìn)行解碼,并確定它是否指向NVRAM 142。如果它指向NVRAM 142,則MC 331根據(jù)解碼表333生成屬性?;谠搶傩?,MC 331然后將該請(qǐng)求轉(zhuǎn)發(fā)到適當(dāng)下游邏輯(例如NVRAM控制器332和I/O子系統(tǒng)135)以執(zhí)行所請(qǐng)求的數(shù)據(jù)存取。在又一實(shí)施例中,如果對(duì)應(yīng)屬性未從上游邏輯(例如頂C 331和I/O子系統(tǒng)315)傳遞,則NVRAM控制器332可對(duì)目標(biāo)地址進(jìn)行解碼。也可實(shí)現(xiàn)其它解碼路徑。
[0051 ] 存在諸如本文描述的新存儲(chǔ)器架構(gòu)提供了豐富的新可能性。盡管下面以更大長(zhǎng)度進(jìn)一步討論了,但這些可能性中的一些緊接在下面很快強(qiáng)調(diào)了。
[0052]根據(jù)一種可能實(shí)現(xiàn),NVRAM 142充當(dāng)系統(tǒng)存儲(chǔ)器中用于傳統(tǒng)DRAM技術(shù)的總替換或補(bǔ)充。在一個(gè)實(shí)施例中,NVRAM 142表示引入第二級(jí)系統(tǒng)存儲(chǔ)器(例如該系統(tǒng)存儲(chǔ)器可被視為具有包括近存儲(chǔ)器作為高速緩存150B (DRAM裝置340的一部分)的第一級(jí)系統(tǒng)存儲(chǔ)器和包括遠(yuǎn)存儲(chǔ)器(FM) 151B (NVRAM 142的一部分)的第二級(jí)系統(tǒng)存儲(chǔ)器)。
[0053]根據(jù)一些實(shí)施例,NVRAM 142充當(dāng)閃存/磁/光大容量存儲(chǔ)裝置152B的總替換或補(bǔ)充。如本文之前所描述的,在一些實(shí)施例中,即使NVRAM 152A有字節(jié)級(jí)可尋址的能力,但NVRAM控制器332仍可根據(jù)實(shí)現(xiàn)按多字節(jié)塊(例如64K字節(jié)、128K字節(jié)等)存取NVRAM大容量存儲(chǔ)裝置152A。由NVRAM控制器332從NVRAM大容量存儲(chǔ)裝置152A存取數(shù)據(jù)的特定方式可對(duì)由處理器310執(zhí)行的軟件而言是透明的。例如,即使NVRAM大容量存儲(chǔ)裝置152A可以不同于閃存/磁/光大容量存儲(chǔ)裝置152A的方式來(lái)存取,操作系統(tǒng)仍可將NVRAM大容量存儲(chǔ)裝置152A看作標(biāo)準(zhǔn)大容量存儲(chǔ)裝置器件(例如串行ATA硬驅(qū)動(dòng)器或其它標(biāo)準(zhǔn)形式的大容量存儲(chǔ)裝置器件)。
[0054]在NVRAM大容量存儲(chǔ)裝置152A充當(dāng)閃存/磁/光大容量存儲(chǔ)裝置152B的總替換的實(shí)施例中,對(duì)于塊可尋址存儲(chǔ)裝置存取沒(méi)有必要使用存儲(chǔ)裝置驅(qū)動(dòng)器。從存儲(chǔ)裝置存取中移除存儲(chǔ)裝置驅(qū)動(dòng)器開(kāi)銷可增大存取速度并節(jié)省功率。在期望NVRAM大容量存儲(chǔ)裝置152A對(duì)于OS和/或應(yīng)用而言看起來(lái)是塊可存取并且與閃存/磁/光大容量存儲(chǔ)裝置152B不可區(qū)分的備選實(shí)施例中,模擬的存儲(chǔ)裝置驅(qū)動(dòng)器可用于將塊可存取接口(例如通用串行總線(USB)單批量傳遞(BOT),1.0;串行先進(jìn)技術(shù)附件(SATA),3.0等)暴露于用于存取NVRAM大容量存儲(chǔ)裝置152A的軟件。
[0055]在一個(gè)實(shí)施例中,NVRAM 142充當(dāng)用于固件存儲(chǔ)器(諸如BIOS閃存362和TPM閃存372)(圖3中用點(diǎn)線圖示以指示它們是可選的)的總替換或補(bǔ)充。例如,NVRAM 142可包含BIOS NVRAM 172部分以補(bǔ)充或替換BIOS閃存362,并且可包含TPM NVRAM 173部分以補(bǔ)充或替換TPM閃存372。固件存儲(chǔ)器還可存儲(chǔ)由TPM 334用于保護(hù)敏感系統(tǒng)信息(例如加密密鑰)的系統(tǒng)持久狀態(tài)。在一個(gè)實(shí)施例中,對(duì)于固件存儲(chǔ)器使用NVRAM 142移除了對(duì)于如下的需要:第三方閃存部分存儲(chǔ)對(duì)系統(tǒng)操作關(guān)鍵的代碼和數(shù)據(jù)。
[0056]然后繼續(xù)對(duì)圖3的系統(tǒng)的討論,在一些實(shí)施例中,計(jì)算機(jī)系統(tǒng)100的架構(gòu)可包含多個(gè)處理器,不過(guò)圖3中為了簡(jiǎn)化圖示了單個(gè)處理器310。處理器310可以是任何類型數(shù)據(jù)處理器,包含通用或?qū)S弥醒胩幚韱卧?CPU)、專用集成電路(ASIC)或數(shù)字信號(hào)處理器(DSP)。例如,處理器310可以是通用處理器,諸如Core? i3、i5、i7、2 Duo和QuacUXeon ?或Itanium?處理器,它們?nèi)伎蓮募永D醽喪タ死挠⑻貭柟镜玫健溥x地,處理器310可以來(lái)自另一公司,諸如加利福尼亞桑尼韋爾的ARM股份有限公司、加利福尼亞桑尼韋爾的MIPS技術(shù)公司等。處理器310可以是專用處理器,諸如例如網(wǎng)絡(luò)處理器或通信處理器、壓縮引擎、圖形處理器、協(xié)處理器、嵌入式處理器等等。處理器310可實(shí)現(xiàn)在包含在一個(gè)或多個(gè)封裝內(nèi)的一個(gè)或多個(gè)芯片上。處理器310可以是一個(gè)或多個(gè)襯底的一部分,和/或可使用若干工藝技術(shù)(諸如例如BiCMOS、CMOS或NMOS)中的任一技術(shù)實(shí)現(xiàn)在一個(gè)或多個(gè)襯底上。在圖3中示出的示例中,處理器310具有芯片上系統(tǒng)(SOC)配置。
[0057]在一個(gè)實(shí)施例中,處理器310包含集成圖形單元311,其包含用于執(zhí)行圖形命令(諸如3D或2D圖形命令)的邏輯。雖然本發(fā)明的實(shí)施例不限于任何具體集成圖形單元311,但在一個(gè)實(shí)施例中,圖形單元311能夠執(zhí)行工業(yè)標(biāo)準(zhǔn)圖形命令,諸如由Open GL和/或Direct X應(yīng)用編程接口(API)(例如Open GL 4.1和Direct XII)規(guī)定的命令。
[0058]處理器310還可包含一個(gè)或多個(gè)核101-104,不過(guò)再次為了清楚目的在圖3圖示了單個(gè)核。在許多實(shí)施例中,核101-104包含內(nèi)部功能塊,諸如一個(gè)或多個(gè)執(zhí)行單元、引退單元、一組通用寄存器和專用寄存器等。如果核是多線程或超線程的,則每個(gè)硬件線程也可被視為“邏輯”核。核101-104在架構(gòu)和/或指令集方面可以是同質(zhì)的或異質(zhì)的。例如,其中一些核可以是有序的,而其它核是無(wú)序的。作為另一示例,所述核中的兩個(gè)或更多核可以能夠執(zhí)行相同指令集,而其它核可以能夠僅執(zhí)行那個(gè)指令集的子集或不同指令集。
[0059]處理器310還可包含一個(gè)或多個(gè)高速緩存,諸如可實(shí)現(xiàn)為SRAM和/或DRAM的高速緩存313。在未示出的許多實(shí)施例中,實(shí)現(xiàn)不同于高速緩存313的附加高速緩存,使得在核101-104中的執(zhí)行單元與存儲(chǔ)器裝置150B和151B之間存在多級(jí)高速緩存。例如,該組共享高速緩存單元可包含上級(jí)高速緩存(諸如級(jí)I (LI)高速緩存)、中間級(jí)高速緩存(諸如級(jí)2(L2)、級(jí)3(L3)、級(jí)4(L4))或其它級(jí)高速緩存(LLC)和/或它們的不同組合。在不同實(shí)施例中,高速緩存313可按不同方式分派,并且在不同實(shí)施例中可具有許多不同大小之一。例如,高速緩存313可以是8兆字節(jié)(MB)高速緩存、16MB高速緩存等。附加地,在不同實(shí)施例中,高速緩存可以是直接映射高速緩存、完全關(guān)聯(lián)高速緩存、多路組關(guān)聯(lián)高速緩存或具有另一類型映射的高速緩存。在包含多個(gè)核的其它實(shí)施例中,高速緩存313可包含在所有核之間共享的一個(gè)大的部分,或者可被分成多個(gè)單獨(dú)的功能片段(例如每個(gè)核一個(gè)片段)。高速緩存313也可包含在所有核之間共享的一個(gè)部分以及作為每個(gè)核的單獨(dú)功能片段的多個(gè)其它部分。
[0060]處理器310還可包含歸屬代理314,歸屬代理314包含協(xié)調(diào)和操作核101-104的那些組件。歸屬代理單元314例如可包含功率控制單元(P⑶)和顯示單元。P⑶可以是或者可包含調(diào)節(jié)核101-104功率狀態(tài)所需的邏輯和組件以及集成圖形單元311。顯示單元用于驅(qū)動(dòng)一個(gè)或多個(gè)外部連接的顯示器。
[0061]如所提到的,在一些實(shí)施例中,處理器310包含集成存儲(chǔ)器控制器(MC) 331、近存儲(chǔ)器高速緩存(MSC)控制器以及NVRAM控制器332,所有這些全都可以在與處理器310相同的芯片上或者在連接到處理器310的單獨(dú)芯片和/或封裝上。DRAM裝置144可以在與IMC 331和MSC控制器124相同的芯片或不同的芯片上;從而,一個(gè)芯片可具有處理器310和DRAM裝置144 ;一個(gè)芯片可具有處理器310而另一個(gè)芯片可具有DRAM裝置144 (并且這些芯片可在相同或不同的封裝中);一個(gè)芯片可具有核101-104而另一個(gè)芯片可具有MC331、MSC控制器124和DRAM 144(這些芯片可在相同或不同的封裝中);一個(gè)芯片可具有核101-104而另一個(gè)芯片可具有MC 331和MSC控制器124以及另一個(gè)芯片可具有DRAM144(這些芯片可在相同或不同的封裝中);等等。
[0062]在一些實(shí)施例中,處理器310包含耦合到MC 331的I/O子系統(tǒng)115。I/O子系統(tǒng)115使得在處理器310與如下串行或并行I/O裝置之間能夠進(jìn)行通信:一個(gè)或多個(gè)網(wǎng)絡(luò)336 (諸如局域網(wǎng)、廣域網(wǎng)或因特網(wǎng))、存儲(chǔ)裝置I/O裝置(諸如閃存/磁/光大容量存儲(chǔ)裝置152B、B10S閃存362、TPM閃存372)以及一個(gè)或多個(gè)非存儲(chǔ)裝置I/O裝置337 (諸如顯示器、鍵盤、揚(yáng)聲器等等)。I/O子系統(tǒng)115可包含平臺(tái)控制器中心(PCH)(未示出),該P(yáng)CH進(jìn)一步包含多個(gè)I/O適配器338以及其它I/O電路以提供對(duì)存儲(chǔ)裝置和非存儲(chǔ)裝置I/O裝置和網(wǎng)絡(luò)的存取。為了完成此方面,I/O子系統(tǒng)115可對(duì)于所利用的每個(gè)I/O具有至少一個(gè)集成I/O適配器338。I/O子系統(tǒng)115可在與處理器310相同的芯片上,或者在連接到處理器310的單獨(dú)芯片和/或封裝上。
[0063]I/O適配器338將在處理器310內(nèi)利用的主機(jī)通信協(xié)議轉(zhuǎn)譯成與具體I/O裝置兼容的協(xié)議。對(duì)于閃存/磁/光大容量存儲(chǔ)裝置152B,I/O適配器338可轉(zhuǎn)譯的其中一些協(xié)議包含:外圍組件互連(PCI)-EXPRESS (PC1-E),3.0 ;USB, 3.0 ;SATA, 3.0 ;小型計(jì)算機(jī)系統(tǒng)接口(SCSI),Ultra-640 ;以及電氣與電子工程師協(xié)會(huì)(IEEE) 1394 “防火墻”,除此之外還有其它。對(duì)于BIOS閃存362,I/O適配器338可轉(zhuǎn)譯的其中一些協(xié)議包含串行外圍接口(SPI)、微線,除此之外還有其它。附加地,可能存在一個(gè)或多個(gè)無(wú)線協(xié)議I/O適配器。無(wú)線協(xié)議的示例用在個(gè)域網(wǎng)中(除此之外還有其它),諸如IEEE 802.15和藍(lán)牙4.0 ;用在無(wú)線局域網(wǎng)中,諸如基于IEEE 802.11的無(wú)線協(xié)議;以及蜂窩協(xié)議。
[0064]在一些實(shí)施例中,I/O子系統(tǒng)115耦合到TPM控制334以控制對(duì)系統(tǒng)持久狀態(tài)的存取,諸如安全數(shù)據(jù)、加密密鑰、平臺(tái)配置信息等等。在一個(gè)實(shí)施例中,這些系統(tǒng)持久狀態(tài)被存儲(chǔ)在TPM NVRAM 173中,并經(jīng)由NVRAM控制器332來(lái)存取。
[0065]在一個(gè)實(shí)施例中,TPM 334是具有密碼功能性的安全微控制器。TPM 334具有若干信任相關(guān)能力;例如,用于確保受TPM保護(hù)的數(shù)據(jù)僅對(duì)于同一 TPM可用的SEAL能力。TPM334可使用其加密能力保護(hù)數(shù)據(jù)和密鑰(例如秘密)。在一個(gè)實(shí)施例中,TPM 334具有獨(dú)特且秘密的RSA密鑰,其允許它認(rèn)證硬件裝置和平臺(tái)。例如,TPM 334可驗(yàn)證尋求對(duì)存儲(chǔ)在計(jì)算機(jī)系統(tǒng)300中的數(shù)據(jù)進(jìn)行存取的系統(tǒng)是預(yù)期系統(tǒng)。TPM 334也能夠報(bào)告平臺(tái)(例如計(jì)算機(jī)系統(tǒng)300)的完整性。這允許外部源(例如網(wǎng)絡(luò)上的服務(wù)器)確定平臺(tái)的可信度,但不阻止用戶存取該平臺(tái)。
[0066]在一些實(shí)施例中,I/O子系統(tǒng)315還包含管理引擎(ME) 335,其是允許系統(tǒng)管理員監(jiān)視、維護(hù)、更新、升級(jí)和修理計(jì)算機(jī)系統(tǒng)300的微處理器。在一個(gè)實(shí)施例中,系統(tǒng)管理員可通過(guò)如下方式來(lái)遠(yuǎn)程配置計(jì)算機(jī)系統(tǒng)300:通過(guò)ME 335經(jīng)由網(wǎng)絡(luò)336編輯解碼表333的內(nèi)容。
[0067]為了便于說(shuō)明,應(yīng)用的剩余部分有時(shí)將NVRAM 142稱為PCMS裝置。PCMS裝置包含非易失性、具有低功耗并且在位級(jí)可修改的多層(垂直堆疊)的PCM單元陣列。因而,術(shù)語(yǔ)NVRAM裝置和PCMS裝置在以下討論中可互換使用。然而,應(yīng)該認(rèn)識(shí)到,如上面所討論的,對(duì)于NVRAM 142也可利用除PCMS之外的不同技術(shù)。
[0068]應(yīng)該理解,計(jì)算機(jī)系統(tǒng)可將NVRAM 142用于系統(tǒng)存儲(chǔ)器、大容量存儲(chǔ)裝置、固件存儲(chǔ)器和/或其它存儲(chǔ)器和存儲(chǔ)裝置目的(即便那個(gè)計(jì)算機(jī)系統(tǒng)的處理器并不具有處理器310的所有上述組件,或具有比處理器310多的組件)。
[0069]在圖3中示出的具體實(shí)施例中,MSC控制器124和NVRAM控制器332位于與處理器310相同的管芯或封裝(稱為CPU封裝)上。在其它實(shí)施例中,MSC控制器124和/或NVRAM控制器332可位于管芯外或CPU封裝外,通過(guò)總線(諸如存儲(chǔ)器總線(比如DDR總線(例如DDR3、DDR4等))、PCI EXPRESS總線、桌面管理接口(DMI)總線或任何其它類型總線)耦合到處理器310或CPU封裝。
[0070]示范性PCM總線和封裝配置
圖4A-M圖示了各種不同部署,其中處理器、近存儲(chǔ)器和遠(yuǎn)存儲(chǔ)器以不同方式來(lái)配置和封裝。具體地說(shuō),在圖4A-M中圖示的一系列平臺(tái)存儲(chǔ)器配置使新的非易失性系統(tǒng)存儲(chǔ)器能夠使用,諸如PCM技術(shù),或更具體地,PCMS技術(shù)。
[0071]雖然在圖4A-N中的多幅圖上使用其中一些相同數(shù)字標(biāo)記,但這不一定意味著由那些數(shù)字標(biāo)記標(biāo)識(shí)的結(jié)構(gòu)總是一樣的。例如,雖然在多幅圖中使用相同數(shù)字來(lái)標(biāo)識(shí)集成存儲(chǔ)器控制器(MC)331和CPU 401,但這些組件在不同圖中可以不同方式實(shí)現(xiàn)。這些差異中的一些未被強(qiáng)調(diào),原因在于它們對(duì)于理解本發(fā)明的基本原理而言不是相關(guān)的。
[0072]雖然下面描述了多種不同系統(tǒng)平臺(tái)配置方法,但這些方法落入兩個(gè)廣義類別:分離架構(gòu)和統(tǒng)一架構(gòu)。簡(jiǎn)言之,在分離架構(gòu)方案中,存儲(chǔ)器側(cè)高速緩存(MSC)控制器(例如位于處理器管芯中或CPU封裝中的單獨(dú)管芯上)攔截所有系統(tǒng)存儲(chǔ)器請(qǐng)求。存在兩個(gè)單獨(dú)接口,這兩個(gè)單獨(dú)接口從那個(gè)控制器“流向下游”離開(kāi)CPU封裝以耦合到近存儲(chǔ)器和遠(yuǎn)存儲(chǔ)器。每個(gè)接口對(duì)于特定類型存儲(chǔ)器都是特制的,并且每個(gè)存儲(chǔ)器可在性能和容量方面獨(dú)立縮放。
[0073]在統(tǒng)一架構(gòu)方案中,單個(gè)存儲(chǔ)器接口離開(kāi)處理器管芯或CPU封裝,并且所有存儲(chǔ)器請(qǐng)求都被發(fā)送到這個(gè)接口。MSC控制器連同近存儲(chǔ)器子系統(tǒng)和遠(yuǎn)存儲(chǔ)器子系統(tǒng)被合并在此單個(gè)接口上。此存儲(chǔ)器接口必須被特制成滿足處理器的存儲(chǔ)器性能要,并且必須支持事務(wù)無(wú)序協(xié)議,這至少因?yàn)镻CMS裝置可能未有序處理讀請(qǐng)求。根據(jù)上面的通用類別,可采用如下特定平臺(tái)配置。
[0074]下面描述的實(shí)施例包含各種類型的總線/通道。術(shù)語(yǔ)“總線”和“通道”在本文同義地使用。每個(gè)DIMM插座的存儲(chǔ)器通道數(shù)量將取決于在計(jì)算機(jī)系統(tǒng)中使用的具體CPU封裝(其中一些CPU封裝例如支持每個(gè)插座3個(gè)存儲(chǔ)器通道)。
[0075]另外,在下面描述的使用DRAM的實(shí)施例中,實(shí)際上,可使用任何類型DRAM存儲(chǔ)器通道,作為示例而非限制,其包括DDR通道(例如DDR3、DDR4、DDR5等)。從而,雖然DDR因?yàn)槠湓诠I(yè)上的廣泛認(rèn)可、作為結(jié)果的價(jià)格點(diǎn)等是有利的,但本發(fā)明的基本原理不限于任何具體類型DRAM或易失性存儲(chǔ)器。
[0076]圖4A圖示了分離架構(gòu)的一個(gè)實(shí)施例,其在CPU封裝401中(在處理器管芯上或者在單獨(dú)管芯上)包含作為充當(dāng)用于FM的高速緩存(即MSC)的近存儲(chǔ)器操作的一個(gè)或多個(gè)DRAM裝置403-406以及一個(gè)或多個(gè)NVRAM裝置(諸如駐留在DIMM 450-451上充當(dāng)遠(yuǎn)存儲(chǔ)器的PCM存儲(chǔ)器)。CPU封裝401上的高帶寬鏈路407將單個(gè)或多個(gè)DRAM裝置403-406互連到處理器310,處理器310寄宿集成存儲(chǔ)器控制器(MC) 331和MSC控制器124。盡管在圖4A和下面描述的其它附圖中圖示為單獨(dú)單元,但在一個(gè)實(shí)施例中MSC控制器124可被集成在存儲(chǔ)器控制器331內(nèi)。
[0077]DMM 450-451使用DDR插槽和電連接,其用DDR地址、數(shù)據(jù)線路和控制線路以及電壓來(lái)定義DDR通道440 (例如由聯(lián)合電子器件工程委員會(huì)(JEDEC)所定義的DDR3或DDR4標(biāo)準(zhǔn))。DIMM 450-451上的PCM裝置提供了此分離架構(gòu)的遠(yuǎn)存儲(chǔ)器容量,其中到CPU封裝401的DDR通道440能夠攜帶DDR和事務(wù)協(xié)議。相比其中CPU封裝內(nèi)的處理器310或其它邏輯(例如頂C 331或MSC控制器124)傳送命令并接收立即響應(yīng)的DDR協(xié)議,用于與PCM裝置通信的事務(wù)協(xié)議允許CPU 401發(fā)布一系列事務(wù),每個(gè)由獨(dú)特事務(wù)ID標(biāo)識(shí)。這些命令由在PCM DIMM中作為接收方的PCM DMM上的PCM控制器服務(wù),其將響應(yīng)發(fā)送回CPU封裝401,潛在地是無(wú)序的。CPU封裝401內(nèi)的處理器310或其它邏輯通過(guò)與響應(yīng)一起發(fā)送的其事務(wù)ID識(shí)別每個(gè)事務(wù)響應(yīng)。以上配置允許系統(tǒng)支持標(biāo)準(zhǔn)的基于DDR DRAM的DI麗(使用DDR電連接上的DDR協(xié)議)和基于PCM的DI麗配置(在相同DDR電連接上使用事務(wù)協(xié)議)。
[0078]圖4B圖示了使用通過(guò)DDR通道440耦合的基于DDR DRAM的DMM 452來(lái)形成充當(dāng)MSC的近存儲(chǔ)器的分離架構(gòu)。處理器310寄宿存儲(chǔ)器控制器331和MSC控制器124。NVRAM裝置(諸如PCM存儲(chǔ)器裝置)駐留在基于PCM的DMM 453上,DMM 453使用CPU封裝401外的附加DDR通道442上的電連接和DDR插槽?;赑CM的DMM 453提供了此分離架構(gòu)的遠(yuǎn)存儲(chǔ)器容量,其中到CPU封裝401的DDR通道442基于DDR電連接并且能夠攜帶DDR和事務(wù)協(xié)議。這允許系統(tǒng)用可變數(shù)量的DDR DRAM DIMM 452(例如DDR4 DIMM)和PCM DIMM453配置以獲得期望容量和/或性能點(diǎn)。
[0079]圖4C圖示了在CPU封裝401上(在處理器管芯上或者在單獨(dú)管芯上)寄宿充當(dāng)存儲(chǔ)器側(cè)高速緩存(MSC)的近存儲(chǔ)器403-406的分離架構(gòu)。使用CPU封裝上的高帶寬鏈路407將單個(gè)或多個(gè)DRAM裝置403-406互連到處理器310,處理器310寄宿存儲(chǔ)器控制器331和MSC控制器124,如分離架構(gòu)所定義的。NVRAM(諸如PCM存儲(chǔ)器裝置)駐留在PCIEXPRESS卡或轉(zhuǎn)接卡455上,它們使用PCI EXPRESS電連接以及PCI EXPRESS協(xié)議或在PCIEXPRESS總線454上使用不同事務(wù)協(xié)議。PCI EXPRESS卡或轉(zhuǎn)接卡455上的PCM裝置提供此分離架構(gòu)的遠(yuǎn)存儲(chǔ)器容量。
[0080]圖4D是使用基于DDR DRAM的DI麗452和DDR通道440來(lái)形成充當(dāng)MSC的近存儲(chǔ)器的分離架構(gòu)。處理器310寄宿存儲(chǔ)器控制器331和MSC控制器124。NVRAM (諸如PCM存儲(chǔ)器裝置455)駐留在PCI EXPRESS卡或轉(zhuǎn)接卡上,它們使用PCI EXPRESS電連接以及PCIEXPRESS協(xié)議或在PCI EXPRESS鏈路454上使用不同事務(wù)協(xié)議。PCI EXPRESS卡或轉(zhuǎn)接卡455上的PCM裝置提供此分離架構(gòu)的遠(yuǎn)存儲(chǔ)器容量,其中CPU封裝401外的存儲(chǔ)器通道接口為DDR DRAM DIMM 452提供多個(gè)DDR通道440。
[0081]圖4E圖示了在PCI EXPRESS卡或轉(zhuǎn)接卡456上寄宿充當(dāng)MSC的近存儲(chǔ)器和遠(yuǎn)存儲(chǔ)器NVRAM(諸如PCM)的統(tǒng)一架構(gòu),PCI EXPRESS卡或轉(zhuǎn)接卡456使用PCI EXPRESS電連接以及PCI EXPRESS協(xié)議或在PCI EXPRESS總線454上使用不同事務(wù)協(xié)議。處理器310寄宿集成存儲(chǔ)器控制器331,但在此統(tǒng)一架構(gòu)情況下,MSC控制器124與DRAM近存儲(chǔ)器和NVRAM遠(yuǎn)存儲(chǔ)器一起駐留在卡或轉(zhuǎn)接卡456上。
[0082]圖4F圖示了在使用DDR通道457的DMM 458上寄宿充當(dāng)MSC的近存儲(chǔ)器和遠(yuǎn)存儲(chǔ)器NVRAM(諸如PCM)的統(tǒng)一架構(gòu)。此統(tǒng)一架構(gòu)中的近存儲(chǔ)器在每個(gè)DIMM 458上包括DRAM,其充當(dāng)?shù)侥莻€(gè)相同DMM 458上的PCM裝置的存儲(chǔ)器側(cè)高速緩存,所述PCM裝置形成那個(gè)具體DIMM的遠(yuǎn)存儲(chǔ)器。MSC控制器124與近存儲(chǔ)器和遠(yuǎn)存儲(chǔ)器一起駐留在每個(gè)DIMM458上。在此實(shí)施例中,在CPU封裝外提供DDR總線457的多個(gè)存儲(chǔ)器通道。此實(shí)施例的DDR總線457實(shí)現(xiàn)了 DDR電連接上的事務(wù)協(xié)議。
[0083]圖4G圖示了混合分離架構(gòu),在此,MSC控制器124駐留在處理器310上,并且近存儲(chǔ)器接口和遠(yuǎn)存儲(chǔ)器接口共享相同DDR總線410。此配置使用基于DRAM的DDR DMM 411a作為充當(dāng)MSC的近存儲(chǔ)器,其中基于PCM的DMM 411b (即遠(yuǎn)存儲(chǔ)器)使用DDR插槽和NVRAM(諸如PCM存儲(chǔ)器裝置)駐留在DDR總線410的相同存儲(chǔ)器通道上。此實(shí)施例的存儲(chǔ)器通道同時(shí)攜帶DDR協(xié)議和事務(wù)協(xié)議以分別尋址近存儲(chǔ)器DIMM 411a和遠(yuǎn)存儲(chǔ)器DIMM 411b。
[0084]圖4H圖示了充當(dāng)存儲(chǔ)器側(cè)高速緩存的近存儲(chǔ)器461a以基于DRAM的DDR DMM形式駐留在夾層卡或轉(zhuǎn)接卡461上的統(tǒng)一架構(gòu)。存儲(chǔ)器側(cè)高速緩存(MSC)控制器124位于轉(zhuǎn)接卡的DDR和PCM控制器460中,其可具有在夾層卡/轉(zhuǎn)接卡461上連接到DDR DIMM通道470并通過(guò)高性能互連462 (諸如不同存儲(chǔ)器鏈路)互連到CPU的兩個(gè)或更多存儲(chǔ)器通道。所關(guān)聯(lián)的遠(yuǎn)存儲(chǔ)器461b位于同一夾層卡/轉(zhuǎn)接卡461上,并且由使用DDR通道470并組裝有NVRAM (諸如PCM裝置)的DI麗形成。
[0085]圖41圖示了可被用作對(duì)在其DDR存儲(chǔ)器子系統(tǒng)上通過(guò)DDR總線471連接到CPU封裝401的DDR存儲(chǔ)器子系統(tǒng)和DIMM 464的存儲(chǔ)器容量擴(kuò)展的統(tǒng)一架構(gòu)。對(duì)于在此配置中基于NVM的附加容量,充當(dāng)MSC的近存儲(chǔ)器以基于DRAM的DDR DMM 463a的形式駐留在夾層卡或轉(zhuǎn)接卡463上。MSC控制器124位于轉(zhuǎn)接卡的DDR和PCM控制器460中,其可具有在夾層卡/轉(zhuǎn)接卡上連接到DDR DIMM通道470并通過(guò)高性能互連462 (諸如不同存儲(chǔ)器鏈路)互連到CPU的兩個(gè)或更多存儲(chǔ)器通道。所關(guān)聯(lián)的遠(yuǎn)存儲(chǔ)器463b位于同一夾層卡/轉(zhuǎn)接卡463上,并且由使用DDR通道470并組裝有NVRAM (諸如PCM裝置)的DMM 463b形成。
[0086]圖4J是充當(dāng)存儲(chǔ)器側(cè)高速緩存(MSC)的近存儲(chǔ)器以DRAM的形式駐留在每一個(gè)DI麗465上的統(tǒng)一架構(gòu)。DI麗465在將CPU封裝401與位于DI麗上的MSC控制器124耦合的高性能互連/通道462 (諸如差分存儲(chǔ)器鏈路)上。所關(guān)聯(lián)的遠(yuǎn)存儲(chǔ)器位于相同DIMM465上并由NVRAM (諸如PCM裝置)形成。
[0087]圖4K圖示了充當(dāng)MSC的近存儲(chǔ)器以DRAM的形式駐留在每一個(gè)DMM 466上的統(tǒng)一架構(gòu)。這些DMM在將CPU封裝401與位于DMM上的MSC控制器124連接的高性能互連/通道470上。所關(guān)聯(lián)的遠(yuǎn)存儲(chǔ)器位于相同DMM 466上并由NVRAM(諸如PCM裝置)形成。
[0088]圖4L圖示了在DDR總線471上使用基于DDR DRAM的DMM 464以形成充當(dāng)MSC的必要的近存儲(chǔ)器的分離架構(gòu)。處理器310寄宿集成存儲(chǔ)器控制器331和存儲(chǔ)器側(cè)高速緩存控制器124。NVRAM (諸如PCM存儲(chǔ)器)形成駐留在使用高性能互連468的卡或轉(zhuǎn)接卡467上的遠(yuǎn)存儲(chǔ)器,高性能互連468使用事務(wù)協(xié)議與CPU封裝401通信。寄宿遠(yuǎn)存儲(chǔ)器的卡或轉(zhuǎn)接卡467寄宿能控制多個(gè)基于PCM的存儲(chǔ)器或連接在那個(gè)轉(zhuǎn)接卡上的多個(gè)基于PCM的DIMM的單個(gè)緩沖器/控制器。
[0089]圖4M圖示了可使用卡或轉(zhuǎn)接卡469上的DRAM來(lái)形成充當(dāng)MSC的必要的近存儲(chǔ)器的統(tǒng)一架構(gòu)。NVRAM(諸如PCM存儲(chǔ)器裝置)形成也駐留在卡或轉(zhuǎn)接卡469上的遠(yuǎn)存儲(chǔ)器,卡或轉(zhuǎn)接卡469使用到CPU封裝401的高性能互連468。寄宿遠(yuǎn)存儲(chǔ)器的卡或轉(zhuǎn)接卡469寄宿能控制多個(gè)基于PCM的存儲(chǔ)器或在那個(gè)轉(zhuǎn)接卡469上的多個(gè)基于PCM的DI麗的單個(gè)緩沖器/控制器,并且還集成存儲(chǔ)器側(cè)高速緩存控制器124。
[0090]在上面描述的其中一些實(shí)施例中,諸如在圖4G中圖示的實(shí)施例中,DRAM DMM411a和基于PCM的DMM 411b駐留在相同存儲(chǔ)器通道上。因而,使用同一組地址/控制和數(shù)據(jù)線路將CPU連接到DRAM存儲(chǔ)器和PCM存儲(chǔ)器。為了減少通過(guò)CPU網(wǎng)格互連的數(shù)據(jù)業(yè)務(wù)量,在一個(gè)實(shí)施例中,具有基于PCM的DI麗的公共存儲(chǔ)器信道上的DDR DI麗配置成充當(dāng)存儲(chǔ)在基于PCM的DIMM中的數(shù)據(jù)的唯一 MSC。在此類配置中,存儲(chǔ)在基于PCM的DIMM中的遠(yuǎn)存儲(chǔ)器數(shù)據(jù)僅在相同存儲(chǔ)器通道內(nèi)的DDR DIMM近存儲(chǔ)器中高速緩存,由此將存儲(chǔ)器事務(wù)局限于那個(gè)具體存儲(chǔ)器通道。
[0091]附加地,為了實(shí)現(xiàn)上面的實(shí)施例,系統(tǒng)地址空間可在邏輯上在不同存儲(chǔ)器通道之間細(xì)分。例如,如果存在4個(gè)存儲(chǔ)器通道,則可向每個(gè)存儲(chǔ)器通道分配1/4的系統(tǒng)地址空間。如果給每個(gè)存儲(chǔ)器通道提供一個(gè)基于PCMS的DIMM和一個(gè)DDR DIMM,則DDR DIMM可配置成充當(dāng)那個(gè)1/4部分系統(tǒng)地址空間的MSC。
[0092]系統(tǒng)存儲(chǔ)器和大容量存儲(chǔ)裝置器件的選擇可取決于在其上采用本發(fā)明實(shí)施例的電子平臺(tái)類型。例如,在個(gè)人計(jì)算機(jī)、平板計(jì)算機(jī)、筆記本計(jì)算機(jī)、智能電話、移動(dòng)電話、功能手機(jī)、個(gè)人數(shù)字助理(PDA)、便攜式媒體播放器、便攜式游戲裝置、游戲控制臺(tái)、數(shù)字?jǐn)z像機(jī)、交換機(jī)、中心、路由器、機(jī)頂盒、數(shù)字視頻記錄器或具有相對(duì)小的大容量存儲(chǔ)裝置要求的其它裝置中,大容量存儲(chǔ)裝置可僅使用NVRAM大容量存儲(chǔ)裝置152A來(lái)實(shí)現(xiàn),或結(jié)合閃存/磁/光大容量存儲(chǔ)裝置152B使用NVRAM大容量存儲(chǔ)裝置152A來(lái)實(shí)現(xiàn)。在具有相對(duì)大的大容量存儲(chǔ)裝置要求的其它電子平臺(tái)(例如大規(guī)模服務(wù)器)中,大容量存儲(chǔ)裝置可使用磁存儲(chǔ)裝置(例如硬驅(qū)動(dòng)器)或磁存儲(chǔ)裝置、光存儲(chǔ)裝置、全息存儲(chǔ)裝置、大容量存儲(chǔ)裝置閃速存儲(chǔ)器和NVRAM大容量存儲(chǔ)裝置152A的任何組合實(shí)現(xiàn)。在此類情況下,負(fù)責(zé)存儲(chǔ)裝置的系統(tǒng)硬件和/或軟件可實(shí)現(xiàn)各種智能持久存儲(chǔ)裝置分配技術(shù),以高效或者否則有用的方式將持久程序代碼和數(shù)據(jù)的塊在FM 15IB /NVRAM存儲(chǔ)裝置152A與閃存/磁/光大容量存儲(chǔ)裝置152B之間分配。
[0093]例如,在一個(gè)實(shí)施例中,大功率服務(wù)器配置有近存儲(chǔ)器(例如DRAM)、PCMS裝置和磁大容量存儲(chǔ)裝置器件(用于大量持久存儲(chǔ)裝置)。在一個(gè)實(shí)施例中,筆記本計(jì)算機(jī)配置有近存儲(chǔ)器和PCMS裝置,其扮演遠(yuǎn)存儲(chǔ)器和大容量存儲(chǔ)裝置器件兩者的角色(即,其在邏輯上被劃分成扮演如圖3中所示的這些角色)。家庭或辦公室臺(tái)式計(jì)算機(jī)的一個(gè)實(shí)施例類似地配置成筆記本計(jì)算機(jī),但也可包含一個(gè)或多個(gè)磁存儲(chǔ)裝置器件以提供大量持久存儲(chǔ)裝置能力。
[0094]平板計(jì)算機(jī)或蜂窩電話裝置的一個(gè)實(shí)施例配置有PCMS存儲(chǔ)器,但潛在地沒(méi)有近存儲(chǔ)器并且沒(méi)有附加大容量存儲(chǔ)裝置(以便節(jié)省成本/功率)。然而,平板計(jì)算機(jī)/電話可配置有可拆卸大容量存儲(chǔ)裝置器件,諸如閃存或PCMS存儲(chǔ)條。
[0095]各種其它類型裝置可如上所述配置。例如,便攜式媒體播放器和/或個(gè)人數(shù)字助理(PDA)可按類似于上面描述的平板計(jì)算機(jī)/電話的方式配置,游戲控制臺(tái)可按類似于臺(tái)式計(jì)算機(jī)或膝上型計(jì)算機(jī)的方式配置。可類似配置的其它裝置包含數(shù)字?jǐn)z像機(jī)、路由器、機(jī)頂盒、數(shù)字視頻記錄器、電視和汽車。
[0096]MSC架構(gòu)的實(shí)施例
在本發(fā)明的一個(gè)實(shí)施例中,系統(tǒng)存儲(chǔ)器中的大多數(shù)DRAM用PCM替換。如之前討論的,PCM以相對(duì)DRAM顯著低的成本提供了在系統(tǒng)容量上的顯著改進(jìn),并且是非易失性的。然而,某些PCM特性(諸如非對(duì)稱讀對(duì)寫性能、寫循環(huán)持續(xù)時(shí)間極限以及其非易失性性質(zhì))使它對(duì)直接替換DRAM而沒(méi)有招致重大軟件改變具有挑戰(zhàn)性。在下面描述的本發(fā)明的實(shí)施例提供了集成PCM的軟件透明方式,同時(shí)還通過(guò)軟件增強(qiáng)能夠?qū)崿F(xiàn)較新的使用。這些實(shí)施例促進(jìn)了存儲(chǔ)器子系統(tǒng)架構(gòu)中的成功轉(zhuǎn)變,并提供了使用單個(gè)PCM池合并存儲(chǔ)器和存儲(chǔ)裝置的方式,從而減少對(duì)于平臺(tái)中單獨(dú)非易失性存儲(chǔ)裝置層的需要。
[0097]在圖5A中圖示的具體實(shí)施例包含各具有用于生成存儲(chǔ)器請(qǐng)求的內(nèi)部存儲(chǔ)器管理單元(MMU) 502的一個(gè)或多個(gè)處理器核501以及用于根據(jù)規(guī)定的高速緩存管理策略來(lái)存儲(chǔ)程序代碼行和數(shù)據(jù)的一個(gè)或多個(gè)內(nèi)部CPU高速緩存503。如之前所提到的,高速緩存管理策略可包括排它型高速緩存管理策略(其中存在于層級(jí)中一個(gè)具體高速緩存級(jí)中的任何行不存在于任何其它高速緩存級(jí)中)或包含型高速緩存管理策略(其中重復(fù)的高速緩存行被存儲(chǔ)在高速緩存層級(jí)的不同級(jí))。本領(lǐng)域技術(shù)人員很好理解,對(duì)于管理內(nèi)部高速緩存503可采用特定的高速緩存管理策略,并且因而在此將不詳細(xì)描述。本發(fā)明的基本原理不限于任何具體高速緩存管理策略。
[0098]圖5A中還圖示了歸屬代理505,歸屬代理505通過(guò)生成用于存儲(chǔ)器請(qǐng)求的存儲(chǔ)器通道地址(MCA)來(lái)提供對(duì)MSC 510的存取。歸屬代理505負(fù)責(zé)管理規(guī)定存儲(chǔ)器地址空間,并解決指向那個(gè)存儲(chǔ)器空間的存儲(chǔ)器存取沖突。從而,如果任何核需要存取給定地址空間,則它將向那個(gè)歸屬代理505發(fā)送請(qǐng)求,該歸屬代理然后將向具體MMU 502發(fā)送該請(qǐng)求。在一個(gè)實(shí)施例中,每個(gè)MMU 502分配一個(gè)歸屬代理505 ;然而,在一些實(shí)施例中,單個(gè)歸屬代理505可服務(wù)于多于一個(gè)的存儲(chǔ)器管理單元502。
[0099]如圖5A中所圖示的,MSC 510配置在基于PCM的遠(yuǎn)存儲(chǔ)器519的前面。MSC 510管理對(duì)近存儲(chǔ)器518的存取,并在適當(dāng)時(shí)(例如在從近存儲(chǔ)器518不能服務(wù)于這些請(qǐng)求時(shí))向遠(yuǎn)存儲(chǔ)器控制器521轉(zhuǎn)發(fā)存儲(chǔ)器存取請(qǐng)求(例如讀和寫)。MSC 510包含高速緩存控制單元512,高速緩存控制單元512響應(yīng)于存儲(chǔ)標(biāo)識(shí)近存儲(chǔ)器518內(nèi)含有的高速緩存行的標(biāo)簽的標(biāo)簽高速緩存511而操作。在操作中,當(dāng)高速緩存控制單元512確定可從近存儲(chǔ)器518服務(wù)于存儲(chǔ)器存取請(qǐng)求(例如響應(yīng)于高速緩存命中)時(shí),它生成近存儲(chǔ)器地址(NMA)以標(biāo)識(shí)存儲(chǔ)在近存儲(chǔ)器518內(nèi)的數(shù)據(jù)。近存儲(chǔ)器控制器單元515解釋NMA,并作為響應(yīng)生成電信號(hào),以存取近存儲(chǔ)器518。如之前所提到的,在一些實(shí)施例中,近存儲(chǔ)器是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。在此類情況下,電信號(hào)可包含行地址選通脈沖(RAS)信號(hào)和列地址選通脈沖(CAS)信號(hào)。然而,應(yīng)該指出,本發(fā)明的基本原理不限于將DRAM用于近存儲(chǔ)器。
[0100]確保軟件透明存儲(chǔ)器應(yīng)用的另一組件是優(yōu)化的PCM遠(yuǎn)存儲(chǔ)器控制器521,其管理PCM遠(yuǎn)存儲(chǔ)器530特性,同時(shí)仍提供所需的性能。在一個(gè)實(shí)施例中,PCM控制器521包含間接尋址表520,其將由高速緩存控制單元515生成的MCA轉(zhuǎn)譯成用于直接尋址PCM遠(yuǎn)存儲(chǔ)器530的PDA。這些轉(zhuǎn)譯可以通常是4KB的“塊”粒度發(fā)生。在一個(gè)實(shí)施例中,當(dāng)遠(yuǎn)存儲(chǔ)器控制器521遍及PCM裝置地址空間不斷移動(dòng)PCM塊以確保沒(méi)有由于對(duì)任何特定塊的高頻寫而引起的損耗熱點(diǎn)時(shí)需要該轉(zhuǎn)譯。如之前所描述的,此類技術(shù)在本文有時(shí)被稱為“耗損均衡”。
[0101]從而,MSC 510由高速緩存控制單元512管理,高速緩存控制單元512允許MSC510吸收、聯(lián)合并過(guò)濾對(duì)PCM遠(yuǎn)存儲(chǔ)器530的事務(wù)(例如讀和寫)。高速緩存控制單元512管理在近存儲(chǔ)器518與PCM遠(yuǎn)存儲(chǔ)器530之間的所有數(shù)據(jù)移動(dòng)和一致性要求。附加地,在一個(gè)實(shí)施例中,MSC高速緩存控制器512與CPU接口,并提供在基于DRAM的傳統(tǒng)存儲(chǔ)器子系統(tǒng)中使用的標(biāo)準(zhǔn)同步加載/存儲(chǔ)接口。
[0102]現(xiàn)在將在圖5A中示出的架構(gòu)上下文內(nèi)描述示范讀和寫操作。在一個(gè)實(shí)施例中,讀操作將首先到達(dá)MSC控制器512,MSC控制器512將執(zhí)行查找以確定是否存在所請(qǐng)求的數(shù)據(jù)(例如利用標(biāo)簽高速緩存511)。如果存在,則它會(huì)將數(shù)據(jù)返回到發(fā)出請(qǐng)求的CPU、核501或I/O裝置(未示出)。如果數(shù)據(jù)不存在,則MSC控制器512會(huì)將該請(qǐng)求與系統(tǒng)存儲(chǔ)器地址(在本文中也稱為存儲(chǔ)器通道地址或MCA) —起發(fā)送到PCM遠(yuǎn)存儲(chǔ)器控制器521。PCM控制器521將使用間接尋址表520將該地址轉(zhuǎn)譯成PDA并將讀操作指向PCM的這個(gè)區(qū)域。在從PCM遠(yuǎn)存儲(chǔ)器530接收到所請(qǐng)求的數(shù)據(jù)時(shí),PCM控制器521會(huì)將所請(qǐng)求的數(shù)據(jù)返回到MSC控制器512,MSC控制器512會(huì)將數(shù)據(jù)存儲(chǔ)在MSC近存儲(chǔ)器518中,并且還將數(shù)據(jù)發(fā)送到發(fā)出請(qǐng)求的CPU核501或者I/O裝置。對(duì)于此數(shù)據(jù)的后續(xù)請(qǐng)求可從近存儲(chǔ)器518直接服務(wù),直到它由某個(gè)其它PCM數(shù)據(jù)替換。
[0103]在一個(gè)實(shí)施例中,存儲(chǔ)器寫操作也首先去到MSC控制器512,MSC控制器512將它寫入MSC近存儲(chǔ)器518中。在此實(shí)施例中,當(dāng)接收到寫操作時(shí),可不將數(shù)據(jù)直接發(fā)送到PCM遠(yuǎn)存儲(chǔ)器530。例如,僅當(dāng)MSC近存儲(chǔ)器518中存儲(chǔ)數(shù)據(jù)的位置必須再用于存儲(chǔ)不同系統(tǒng)存儲(chǔ)器地址的數(shù)據(jù)時(shí),才可將數(shù)據(jù)發(fā)送到PCM遠(yuǎn)存儲(chǔ)器530。當(dāng)這個(gè)發(fā)生時(shí),MSC控制器512注意到數(shù)據(jù)當(dāng)前不在PCM遠(yuǎn)存儲(chǔ)器530中,并且從而將從近存儲(chǔ)器518中檢索它,并將它發(fā)送到PCM控制器521。PCM控制器521查找用于該系統(tǒng)存儲(chǔ)器地址的PDA,并且然后將數(shù)據(jù)寫到PCM遠(yuǎn)存儲(chǔ)器530。
[0104]在一個(gè)實(shí)施例中,MSC近存儲(chǔ)器518的大小將由工作載荷存儲(chǔ)器要求以及近存儲(chǔ)器和遠(yuǎn)存儲(chǔ)器性能所支配。對(duì)于基于DRAM的MSC,大小可設(shè)置成1/10的工作載荷存儲(chǔ)器占用空間大小或PCM遠(yuǎn)存儲(chǔ)器530大小。此類MSC與在當(dāng)前處理器/系統(tǒng)架構(gòu)中發(fā)現(xiàn)的常規(guī)高速緩存相比非常大。作為示例,而非限制,對(duì)于128GB的PCM遠(yuǎn)存儲(chǔ)器大小,MSC近存儲(chǔ)器的大小可達(dá)16GB。
[0105]圖5B圖示了與MSC 510的一個(gè)實(shí)施例關(guān)聯(lián)的附加細(xì)節(jié)。此實(shí)施例包含負(fù)責(zé)命令和尋址的一組邏輯單元,其包含用于緩沖命令/地址的命令緩沖跟蹤單元542和響應(yīng)于來(lái)自MSC范圍寄存器(RR)單元545的控制信號(hào)而選擇MSC操作模式的高速緩存存取模式檢查單元544。下面描述幾個(gè)示范操作模式。簡(jiǎn)言之,這些可包含如下模式:其中近存儲(chǔ)器用在傳統(tǒng)高速緩存角色中的模式以及其中近存儲(chǔ)器518形成部分系統(tǒng)存儲(chǔ)器的模式。標(biāo)簽檢查/命令調(diào)度器550使用來(lái)自標(biāo)簽高速緩存511的標(biāo)簽來(lái)確定具體高速緩存行是否被存儲(chǔ)在近存儲(chǔ)器518中,并且近存儲(chǔ)器控制器515生成通道地址信號(hào)(例如CAS和RAS信號(hào))。
[0106]此實(shí)施例還包含負(fù)責(zé)數(shù)據(jù)路由和處理的一組邏輯單元,其包含用于存儲(chǔ)取自近存儲(chǔ)器或存儲(chǔ)到近存儲(chǔ)器的數(shù)據(jù)的一組數(shù)據(jù)緩沖器546。在一個(gè)實(shí)施例中,還包含預(yù)取數(shù)據(jù)高速緩存547,其用于存儲(chǔ)從近存儲(chǔ)器和/或遠(yuǎn)存儲(chǔ)器預(yù)取的數(shù)據(jù)。然而,預(yù)取數(shù)據(jù)高速緩存547是可選的,并且對(duì)于遵從本發(fā)明基本原理不是必要的。
[0107]糾錯(cuò)碼(ECC)生成器/檢查器單元552生成和檢查ECC以確保向近存儲(chǔ)器寫或從近存儲(chǔ)器讀的數(shù)據(jù)是無(wú)錯(cuò)誤的。如下面所討論的,在本發(fā)明的一個(gè)實(shí)施例中,ECC生成器/檢查器單元552被修改成存儲(chǔ)高速緩存標(biāo)簽。本領(lǐng)域普通技術(shù)人員很好理解特定ECC,并且因此在此未詳細(xì)描述。信道控制器553將近存儲(chǔ)器518的數(shù)據(jù)總線耦合到MSC 510,并生成對(duì)于存取近存儲(chǔ)器518必要的電信令(例如用于DRAM近存儲(chǔ)器的RAS和CAS信令)。
[0108]圖5B中還圖示了用于將MSC 510耦合到遠(yuǎn)存儲(chǔ)器的遠(yuǎn)存儲(chǔ)器控制接口 548。具體地說(shuō),遠(yuǎn)存儲(chǔ)器控制接口 548生成尋址遠(yuǎn)存儲(chǔ)器所需的MCA,并且在數(shù)據(jù)緩沖器546與遠(yuǎn)存儲(chǔ)器之間傳遞數(shù)據(jù)。
[0109]如所提到的,在一個(gè)實(shí)施例中采用的近存儲(chǔ)器518與在當(dāng)前處理器/系統(tǒng)架構(gòu)中發(fā)現(xiàn)的常規(guī)高速緩存相比是非常大的。因而,保存系統(tǒng)存儲(chǔ)器地址到近存儲(chǔ)器地址的轉(zhuǎn)譯的標(biāo)簽高速緩存511可能也非常大。存儲(chǔ)和查找MSC標(biāo)簽的成本可能是構(gòu)建大高速緩存的顯著阻礙。因而,在本發(fā)明的一個(gè)實(shí)施例中,這個(gè)問(wèn)題使用創(chuàng)新方案解決了,該創(chuàng)新方案將高速緩存標(biāo)簽存儲(chǔ)在位于MSC中的存儲(chǔ)裝置內(nèi)進(jìn)行ECC保護(hù),由此基本上移除了對(duì)于標(biāo)簽的存儲(chǔ)裝置成本。
[0110]在圖5C中一般性地圖示了這個(gè)實(shí)施例,其示出了用于存儲(chǔ)/管理高速緩存標(biāo)簽、存儲(chǔ)ECC數(shù)據(jù)并執(zhí)行ECC操作的集成標(biāo)簽高速緩存和ECC單元554。如所圖示的,當(dāng)執(zhí)行標(biāo)簽檢查操作(例如以確定具體數(shù)據(jù)塊是否被存儲(chǔ)在近存儲(chǔ)器高速緩存518內(nèi))時(shí),應(yīng)請(qǐng)求將所存儲(chǔ)的標(biāo)簽提供給標(biāo)簽檢查/命令調(diào)度器550。
[0111]圖圖示了數(shù)據(jù)524以及對(duì)應(yīng)的ECC 523和標(biāo)簽522的示范組的組織。如所圖示的,標(biāo)簽522與ECC 523被共同定位在標(biāo)簽高速緩存/ECC單元554的存儲(chǔ)器(例如在一個(gè)實(shí)施例中是DDR DRAM)中。在此示例中,總計(jì)64字節(jié)的多個(gè)數(shù)據(jù)塊已經(jīng)被讀到標(biāo)簽高速緩存/ECC單元554中。ECC檢查/生成器單元554a使用數(shù)據(jù)525來(lái)生成ECC,并將生成的ECC和與數(shù)據(jù)關(guān)聯(lián)的現(xiàn)有ECC 523相比較。在此示例中,對(duì)于64字節(jié)的數(shù)據(jù)525生成4字節(jié)的ECC。然而,本發(fā)明的基本原理不限于任何具體類型或大小的ECC。附加地,應(yīng)該指出,術(shù)語(yǔ)“數(shù)據(jù)”在本文中廣義上用來(lái)指可執(zhí)行程序代碼和數(shù)據(jù),它們二者都可存儲(chǔ)在圖中示出的數(shù)據(jù)存儲(chǔ)裝置525中。
[0112]在一個(gè)實(shí)施例中,3字節(jié)(24位)標(biāo)簽522與在圖中圖示的位指配一起使用。特別地,位00至16是提供高速緩存行的高地址位的地址位。對(duì)于具有56位(例如SPA[55:00])的系統(tǒng)地址,位00至16映射到系統(tǒng)地址的位55-29(從而允許512 MB的最小高速緩存大小)。返回到3字節(jié)標(biāo)簽,預(yù)留位17-19 ;位20-21是目錄位,它們提供有關(guān)高速緩存行的遠(yuǎn)程CPU高速緩存的信息(例如提供關(guān)于在其上高速緩存該行的其它CPU的指示);位21-22指示高速緩存行的當(dāng)前狀態(tài)(例如00=干凈;01=臟;10和11=未用);并且位23指示高速緩存行是否有效(例如1=有效;0=無(wú)效)。
[0113]利用上面所描述的直接映射高速緩存架構(gòu)(其允許直接從系統(tǒng)存儲(chǔ)器提取近存儲(chǔ)器地址),降低或消除了在可讀取MSC 510之前查找標(biāo)簽存儲(chǔ)設(shè)備的等待時(shí)間成本,由此顯著改進(jìn)了性能。而且,檢查高速緩存標(biāo)簽以判定MSC 510是否具有所需數(shù)據(jù)的時(shí)間也被消除了,這是因?yàn)樗c從MSC讀取的數(shù)據(jù)的ECC檢查并行進(jìn)行。
[0114]在某些條件下,將標(biāo)簽與數(shù)據(jù)一起存儲(chǔ)可產(chǎn)生寫的問(wèn)題。寫首先讀數(shù)據(jù),以便確保它對(duì)于某個(gè)其它地址不蓋寫數(shù)據(jù)。在每次寫之前的此類讀變得成本很高。本發(fā)明的一個(gè)實(shí)施例采用保存最近存取的近存儲(chǔ)器地址(NMA)的標(biāo)簽的臟行標(biāo)簽高速緩存。由于許多寫針對(duì)最近存取的地址,因此合理小的標(biāo)簽高速緩存可得到高效的命中率,以在寫之前過(guò)濾大部分讀。
[0115]圖5E中圖示了與PCM DIMM 519的一個(gè)實(shí)施例關(guān)聯(lián)的附加細(xì)節(jié),其包含PCM遠(yuǎn)存儲(chǔ)器控制器521和一組PCM遠(yuǎn)存儲(chǔ)器模塊530a-1。在一個(gè)實(shí)施例中,PCM遠(yuǎn)存儲(chǔ)器530a_i的單個(gè)池在系統(tǒng)存儲(chǔ)器使用與存儲(chǔ)裝置使用之間動(dòng)態(tài)共享。在此實(shí)施例中,整個(gè)PCM池530a-1可被細(xì)分成4KB大小的“塊”。PCM描述符表(PDT) 565標(biāo)識(shí)每個(gè)PCM塊作為存儲(chǔ)器或者存儲(chǔ)裝置的使用。例如,每行PDT可表示具體塊,其中具體列標(biāo)識(shí)每個(gè)塊的使用(例如1=存儲(chǔ)器;0=存儲(chǔ)裝置)。在此實(shí)施例中,初始系統(tǒng)配置可在存儲(chǔ)裝置使用與存儲(chǔ)器使用之間劃分PCM 530a-1內(nèi)的PCM塊(例如通過(guò)對(duì)I3DT 565編程)。在一個(gè)實(shí)施例中,使用相同表來(lái)排除壞的塊,并提供用于耗損均衡操作的備用塊。此外,PDT 565還可包含每個(gè)PCMS塊到由軟件使用的“邏輯”塊地址的映射。在系統(tǒng)存儲(chǔ)器的情況下,邏輯塊地址與MCA或SPA相同。不管何時(shí)由于耗損均衡而移動(dòng)PCMS塊,更新間接尋址表(AIT) 563都需要這種關(guān)聯(lián)。當(dāng)這發(fā)生時(shí),由軟件使用的邏輯塊地址必須被映射到不同PCMS裝置地址(PDA)。在一個(gè)實(shí)施例中,此映射被存儲(chǔ)在AIT中,并且在每次耗損均衡移動(dòng)時(shí)更新。
[0116]如所圖示的,PCM控制器521包含系統(tǒng)物理地址(SPA)到PCM映射器556,其響應(yīng)于耗損管理單元555和間接尋址單元563而操作,以將SPA映射到PCM塊。在一個(gè)實(shí)施例中,耗損管理邏輯555實(shí)現(xiàn)耗損均衡算法以考慮如下事實(shí):在太多次寫和/或擦除存取之后PCM 530a-530i的存儲(chǔ)裝置單元開(kāi)始損耗。耗損均衡在PCM裝置的存儲(chǔ)單元上擴(kuò)散寫和擦除,例如通過(guò)迫使具有低循環(huán)計(jì)數(shù)的數(shù)據(jù)塊偶爾移動(dòng),并由此允許高循環(huán)數(shù)據(jù)塊被放在存儲(chǔ)低循環(huán)數(shù)據(jù)塊的存儲(chǔ)單元中。通常,大多數(shù)塊不循環(huán),但高循環(huán)計(jì)數(shù)塊最可能失敗,并且耗損均衡將高循環(huán)計(jì)數(shù)塊的地址與低循環(huán)計(jì)數(shù)塊的地址互換。耗損管理邏輯555可使用一個(gè)或多個(gè)計(jì)數(shù)器和寄存器來(lái)跟蹤循環(huán)計(jì)數(shù)(例如每當(dāng)檢測(cè)到循環(huán)時(shí),計(jì)數(shù)器可遞增I并且結(jié)果可被存儲(chǔ)在該組寄存器中)。
[0117]在一個(gè)實(shí)施例中,間接尋址邏輯563包含間接尋址表(AIT),其含有寫操作應(yīng)該被指向的PCM塊的指示。AIT可用于自動(dòng)在存儲(chǔ)器使用與存儲(chǔ)裝置使用之間移動(dòng)塊。從軟件角度看,對(duì)所有塊的存取使用傳統(tǒng)存儲(chǔ)器加載/存儲(chǔ)語(yǔ)義(即耗損均衡和間接尋址操作對(duì)軟件而言透明地發(fā)生)。在一個(gè)實(shí)施例中,AIT用于將由軟件生成的SPA轉(zhuǎn)譯成PDA。當(dāng)需要均勻地耗損PCMS裝置時(shí)需要這種轉(zhuǎn)譯,數(shù)據(jù)將需要在PDA空間中到處移動(dòng)以避免任何熱點(diǎn)。當(dāng)此類移動(dòng)發(fā)生時(shí),SAP與PDA之間的關(guān)系將改變,并且AIT將被更新以反映這種新轉(zhuǎn)譯。
[0118]在SAP到PCM的映射之后,調(diào)度器單元557調(diào)度對(duì)PCM裝置530a_I的基礎(chǔ)PCM操作(例如讀和/或?qū)?,并且PCM協(xié)議引擎558生成執(zhí)行讀/寫操作所需的電信令。ECC單元562執(zhí)行檢錯(cuò)和糾錯(cuò)操作,并且數(shù)據(jù)緩沖器562暫時(shí)緩沖從PCM裝置530a_I讀的數(shù)據(jù)或向PCM裝置530a-1寫的數(shù)據(jù)。持久寫緩沖器559用于保存甚至在意想不到電源故障(例如它使用非易失性存儲(chǔ)裝置實(shí)現(xiàn))的情況下也保證被寫回PCMS的數(shù)據(jù)。包含刷新支持邏輯560以周期性的和/或根據(jù)規(guī)定的數(shù)據(jù)刷新算法(例如在持久寫緩沖器達(dá)到規(guī)定閾限之后)對(duì)PCMS刷新持久寫緩沖器。
[0119]在一個(gè)實(shí)施例中,MSC 510自動(dòng)將存儲(chǔ)裝置存取直接路由到PCM遠(yuǎn)存儲(chǔ)器控制器521,并將存儲(chǔ)器存取路由到MSC高速緩存控制單元512。到達(dá)PCM遠(yuǎn)存儲(chǔ)器控制器521的存儲(chǔ)裝置存取被當(dāng)做正規(guī)讀和寫,并且本文描述的間接尋址和耗損均衡機(jī)制照常應(yīng)用。在本發(fā)明的一個(gè)實(shí)施例中采用附加優(yōu)化,其在數(shù)據(jù)需要在存儲(chǔ)裝置與存儲(chǔ)器之間移動(dòng)時(shí)能夠?qū)崿F(xiàn)。由于使用公共PCM池530a-1,因此可通過(guò)簡(jiǎn)單地改變轉(zhuǎn)譯表(例如AIT)中的指針來(lái)取消或推遲數(shù)據(jù)移動(dòng)。例如,當(dāng)數(shù)據(jù)從存儲(chǔ)裝置傳遞到存儲(chǔ)器時(shí),標(biāo)識(shí)具體物理PCM存儲(chǔ)裝置位置中數(shù)據(jù)的指針可被更新成指示相同物理PCM存儲(chǔ)裝置位置現(xiàn)在是系統(tǒng)存儲(chǔ)器中的存儲(chǔ)器位置。在一個(gè)實(shí)施例中,這通過(guò)硬件以軟件透明的方式進(jìn)行,以提供性能效益和功率效益。
[0120]除了軟件透明的操作模式之外,MSC控制器512的一個(gè)實(shí)施例還提供了由MSC范圍寄存器(RR) 545所指示的備選操作模式。這些操作模式可包含但不限于以下:
I)對(duì)于存儲(chǔ)裝置類應(yīng)用對(duì)PCM存儲(chǔ)器的直接存取。此類使用將還要求MSC控制器512確保提交給PCM 519的寫實(shí)際上被交付給持久狀態(tài)。
[0121]2)近存儲(chǔ)器518的混合使用,向軟件暴露出它的部分以便直接使用,同時(shí)保持剩余部分作為MSC。當(dāng)近存儲(chǔ)器518的一部分被暴露給軟件以便直接使用時(shí),那部分在系統(tǒng)地址空間內(nèi)可直接尋址。這允許某些應(yīng)用在高性能小區(qū)域(近存儲(chǔ)器518)與相對(duì)低性能塊區(qū)域(遠(yuǎn)存儲(chǔ)器530)之間明確地劃分它們的存儲(chǔ)器分配。相比之下,作為MSC內(nèi)高速緩存分配的部分未形成系統(tǒng)地址空間的一部分(而相反充當(dāng)用于遠(yuǎn)存儲(chǔ)器530的高速緩存,如本文描述的)。
[0122]如之前所討論的,MSC架構(gòu)定義成使得多個(gè)不同系統(tǒng)劃分方法是有可能的。這些方法落在兩個(gè)廣義桶(bucket)中:
(1)分離架構(gòu):在此方案中,MSC控制器512位于CPU中,并且攔截所有系統(tǒng)存儲(chǔ)器請(qǐng)求。存在兩個(gè)單獨(dú)的接口,它們從MSC離開(kāi)CPU以連接到近存儲(chǔ)器(例如DRAM)和遠(yuǎn)存儲(chǔ)器(例如PCM)。每個(gè)接口對(duì)于特定類型存儲(chǔ)器都是特制的,并且每個(gè)存儲(chǔ)器可在性能和容量方面獨(dú)立縮放。
[0123](2)統(tǒng)一架構(gòu):在此方案中,單個(gè)存儲(chǔ)器接口離開(kāi)CPU,并且所有存儲(chǔ)器請(qǐng)求都被發(fā)送到這個(gè)接口。MSC控制器512連同近存儲(chǔ)器(例如DRAM)和遠(yuǎn)存儲(chǔ)器(例如PCM)子系統(tǒng)在CPU外部被合并在此單個(gè)接口上。在一個(gè)實(shí)施例中,此存儲(chǔ)器接口被特制成滿足CPU的存儲(chǔ)器性能要求,并支持事務(wù)的無(wú)序協(xié)議。近存儲(chǔ)器要求和遠(yuǎn)存儲(chǔ)器要求在這些接口的每個(gè)接口上以“統(tǒng)一”方式來(lái)滿足。
[0124]在上面桶的范圍內(nèi),多個(gè)不同劃分選項(xiàng)是可行的,下面描述了其中一些。
[0125](I)分離示例:
近存儲(chǔ)器:DRR5 DIMM
近存儲(chǔ)器接口:一個(gè)或多個(gè)DDR5通道 遠(yuǎn)存儲(chǔ)器:PCI EXPRESS (PCIe)卡上的PCM控制器/裝置 遠(yuǎn)存儲(chǔ)器接口:xl6 PCIe, Gen 3
(2)統(tǒng)一示例:
CPU存儲(chǔ)器接口:一個(gè)或多個(gè)KTMI (或QPMI)通道 在轉(zhuǎn)接卡上具有MSC/PCM控制器的近存儲(chǔ)器/遠(yuǎn)存儲(chǔ)器 MSC/PCM控制器外的近存儲(chǔ)器接口:DDR5接口 MSC/PCM控制器外的遠(yuǎn)存儲(chǔ)器接口:PCM裝置接口 具有不同近存儲(chǔ)器操作模式的實(shí)施例
如上面所討論的,二級(jí)存儲(chǔ)器層級(jí)可用于引入快速非易失性存儲(chǔ)器(諸如PCM)作為系統(tǒng)存儲(chǔ)器,同時(shí)使用非常大的基于DRAM的近存儲(chǔ)器。近存儲(chǔ)器可被用作硬件管理的高速緩存。然而,一些應(yīng)用不是硬件高速緩存友好的,并且因而將受益于使用此類存儲(chǔ)器的備選方式。因?yàn)樵谌魏谓o定時(shí)間可能都有多個(gè)不同應(yīng)用在服務(wù)器上運(yùn)行,因此本發(fā)明的一個(gè)實(shí)施例允許同時(shí)啟用多使用模式。附加地,一個(gè)實(shí)施例提供了控制為這些使用模式中的每個(gè)模式分配近存儲(chǔ)器的能力。
[0126]在一個(gè)實(shí)施例中,MSC控制器152提供用于使用近存儲(chǔ)器的如下模式。如之前所提到的,在一個(gè)實(shí)施例中,當(dāng)前操作模式可由存儲(chǔ)在MSC范圍寄存器(RR) 545中的操作代碼規(guī)定。
[0127](I)寫回高速緩存模式:在此模式中,所有或部分近存儲(chǔ)器518被用作PCM存儲(chǔ)器530的高速緩存。雖然在寫回模式,但每一個(gè)寫操作最初都指向近存儲(chǔ)器518 (假定在高速緩存中存在該寫所指向的高速緩存行)。僅當(dāng)近存儲(chǔ)器518內(nèi)的高速緩存行要由另一高速緩存行替換時(shí)才執(zhí)行對(duì)應(yīng)寫操作以更新PCM遠(yuǎn)存儲(chǔ)器530 (與下面描述的每個(gè)寫操作被立即傳播到遠(yuǎn)存儲(chǔ)器530的寫直達(dá)模式形成對(duì)照)。
[0128]在一個(gè)實(shí)施例中,讀操作將首先到達(dá)MSC高速緩存控制器512,該控制器512將執(zhí)行查找以確定在PCM遠(yuǎn)存儲(chǔ)器518中是否存在所請(qǐng)求的數(shù)據(jù)(例如利用標(biāo)簽高速緩存511)。如果存在,則它會(huì)將數(shù)據(jù)返回到發(fā)出請(qǐng)求的CPU、核501或I/O裝置(圖5A中未示出)。如果數(shù)據(jù)不存在,則MSC高速緩存控制器512會(huì)將該請(qǐng)求與系統(tǒng)存儲(chǔ)器地址一起發(fā)送到PCM遠(yuǎn)存儲(chǔ)器控制器521。PCM遠(yuǎn)存儲(chǔ)器控制器521會(huì)將系統(tǒng)存儲(chǔ)器地址轉(zhuǎn)譯成PCM物理裝置地址(PDA),并將讀操作指向遠(yuǎn)存儲(chǔ)器530的這個(gè)區(qū)域。如之前所提到的,此轉(zhuǎn)譯可利用間接尋址表(AIT) 563,PCM控制器521使用AIT 563在系統(tǒng)存儲(chǔ)器地址與PCM PDA之間進(jìn)行轉(zhuǎn)譯。在一個(gè)實(shí)施例中,AIT被更新為耗損均衡算法的一部分,耗損均衡算法被實(shí)現(xiàn)以分布存儲(chǔ)器存取操作并由此降低PCM FM 530上的耗損。
[0129]在從PCM FM 530接收到所請(qǐng)求的數(shù)據(jù)時(shí),PCM FM控制器521將所請(qǐng)求的數(shù)據(jù)返回到MSC控制器512,MSC控制器512將數(shù)據(jù)存儲(chǔ)在MSC近存儲(chǔ)器518中,并且還將數(shù)據(jù)發(fā)送到發(fā)出請(qǐng)求的處理器核501或者I/O裝置(圖5A中未示出)。對(duì)于此數(shù)據(jù)的后續(xù)請(qǐng)求可從近存儲(chǔ)器518直接服務(wù),直到它由某一其它PCM FM數(shù)據(jù)替換。
[0130]在一個(gè)實(shí)施例中,存儲(chǔ)器寫操作也首先去到MSC控制器512,MSC控制器512將它寫入充當(dāng)FM高速緩存518的MSC近存儲(chǔ)器中。在此實(shí)施例中,當(dāng)接收到寫操作時(shí),可不將數(shù)據(jù)直接發(fā)送到PCM FM 530。例如,僅當(dāng)充當(dāng)FM高速緩存518的MSC近存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)的位置必須再用于存儲(chǔ)不同系統(tǒng)存儲(chǔ)器地址的數(shù)據(jù)時(shí),才可將數(shù)據(jù)發(fā)送到PCM FM 530。當(dāng)這個(gè)發(fā)生時(shí),MSC控制器512注意到數(shù)據(jù)當(dāng)前不在PCM FM 530中,并且從而將從充當(dāng)FM高速緩存518的近存儲(chǔ)器中檢索它,并將它發(fā)送到PCM FM控制器521。PCM控制器521查找用于系統(tǒng)存儲(chǔ)器地址的PDA,并且然后將數(shù)據(jù)寫到PCM FM 530。
[0131](2)近存儲(chǔ)器旁路模式:在此模式,所有讀和寫都旁路充當(dāng)FM高速緩存518的NM,并且直接去到PCM遠(yuǎn)存儲(chǔ)器530。當(dāng)應(yīng)用不是高速緩存友好的,或者需要以高速緩存行的粒度持久交付數(shù)據(jù)時(shí),例如可使用此類模式。在一個(gè)實(shí)施例中,由處理器高速緩存503和充當(dāng)FM高速緩存518的NM執(zhí)行的高速緩存彼此獨(dú)立操作。因而,未在處理器高速緩存503中高速緩存(并且在一些情況下其可不被準(zhǔn)許在處理器高速緩存503中高速緩存)的數(shù)據(jù)可在充當(dāng)FM高速緩存518的匪中高速緩存,并且反之亦然。從而,在處理器高速緩存503中可被指定為“不可高速緩存”的某些數(shù)據(jù)可在充當(dāng)FM高速緩存518的NM內(nèi)高速緩存。[0132](3)近存儲(chǔ)器讀-高速緩存寫旁路模式:這是上面模式的變化,其中允許從PCM519讀高速緩存持久數(shù)據(jù)(即,持久數(shù)據(jù)在MSC 510中高速緩存以便進(jìn)行只讀操作)。當(dāng)大部分持久數(shù)據(jù)是“只讀”的并且應(yīng)用使用是高速緩存友好的時(shí),這是有用的。
[0133](4)近存儲(chǔ)器讀-高速緩存寫肓達(dá)模式:這是前一模式的變化,其中除了讀高速緩存之外,還高速緩存寫命中。每次對(duì)MSC近存儲(chǔ)器518的寫都引起對(duì)PCM遠(yuǎn)存儲(chǔ)器530的寫。從而,由于高速緩存的寫直達(dá)性質(zhì),仍保證了高速緩存行持久性。
[0134](5)近存儲(chǔ)器肓接存取模式:在此模式,所有或部分近存儲(chǔ)器對(duì)軟件而言直接可見(jiàn),并形成系統(tǒng)存儲(chǔ)器地址空間的一部分。此類存儲(chǔ)器可完全在軟件控制下。從PCM存儲(chǔ)器519到近存儲(chǔ)器的這個(gè)區(qū)域的任何數(shù)據(jù)移動(dòng)都需要明確軟件拷貝。此類方案可創(chuàng)建用于軟件的非均勻存儲(chǔ)器地址(NUMA)存儲(chǔ)區(qū),其中它從近存儲(chǔ)器518得到相對(duì)于PCM遠(yuǎn)存儲(chǔ)器530更高的性能。此類使用可用于需要對(duì)某些數(shù)據(jù)結(jié)構(gòu)非??焖俅嫒〉哪承└咝阅苡?jì)算(HPC)和圖形應(yīng)用。此近存儲(chǔ)器直接存取模式相當(dāng)于對(duì)近存儲(chǔ)器中的某些高速緩存行“設(shè)置管腳”。此類設(shè)置管腳可在較大、多路組關(guān)聯(lián)高速緩存中有效地進(jìn)行。
[0135]下面表A概括了上面描述的每一種操作模式。
[0136]表A
【權(quán)利要求】
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括: 檢測(cè)指向PCMS存儲(chǔ)器的第一塊的讀操作; 確定在所述讀操作之前的規(guī)定時(shí)間量?jī)?nèi)先前是否已經(jīng)發(fā)生了對(duì)所述第一塊的寫操作; 如果在所述寫操作之前的所述規(guī)定時(shí)間量?jī)?nèi)先前已經(jīng)發(fā)生了對(duì)所述第一塊的所述寫操作,則使用第一分界電壓(VDM)用于所述讀操作;以及 如果在所述寫操作或刷新操作之前的所述規(guī)定時(shí)間量?jī)?nèi)先前尚未發(fā)生對(duì)所述第一塊的所述寫操作,則使用第二 VDM用于所述讀操作。
2.如權(quán)利要求1所述的方法,還包括: 檢測(cè)加電條件; 在所述加電條件之后順序地刷新所述PCMS存儲(chǔ)器內(nèi)的每個(gè)塊;以及 如果所述第一塊尚未被刷新,則使用第三VDM用于所述讀操作。
3.如權(quán)利要求2所述的方法,還包括: 當(dāng)每個(gè)塊被刷新時(shí)更新含有每個(gè)塊的條目的表以提供每個(gè)塊已經(jīng)被刷新的指示。
4.如權(quán)利要求1所述的方法,其中確定包括: 使用與所述讀操作關(guān)聯(lián)的地址生成對(duì)第一表的索引值;以及 如果在所述表中發(fā)現(xiàn)匹配,則確定在所述讀之前的規(guī)定時(shí)間量?jī)?nèi)先前已經(jīng)發(fā)生了對(duì)所述第一塊的寫操作。
5.如權(quán)利要求1所述的方法,其中所述表中的每個(gè)條目已經(jīng)與指示所述條目是否有效的有效位關(guān)聯(lián),所述有效位在所述寫操作之后的所述規(guī)定時(shí)間量之后被重新設(shè)置。
6.如權(quán)利要求5所述的方法,其中所述表中的每個(gè)條目還已經(jīng)與指示自從所述寫操作以來(lái)已過(guò)去的時(shí)間量的有效定時(shí)器關(guān)聯(lián)。
7.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括: 檢測(cè)指向PCMS存儲(chǔ)器的第一塊的寫操作; 生成第一表中的條目以指示所述寫操作; 確定加電條件之后所述第一塊是否已經(jīng)被刷新; 如果加電條件之后所述第一塊尚未被刷新,則作為響應(yīng)生成刷新所述第一塊的要求刷新信號(hào);以及 執(zhí)行所述寫操作。
8.如權(quán)利要求7所述的方法,在已經(jīng)過(guò)去規(guī)定時(shí)間量之后,使所述第一表中的所述條目無(wú)效。
9.如權(quán)利要求8所述的方法,還包括: 檢測(cè)指向PCMS存儲(chǔ)器的第二塊的讀操作; 讀所述第一表以確定在所述讀操作之前的規(guī)定時(shí)間量?jī)?nèi)先前是否已經(jīng)發(fā)生了對(duì)PCMS存儲(chǔ)器的所述第二塊的第二寫操作; 如果在所述第二寫操作之前的所述規(guī)定時(shí)間量?jī)?nèi)先前已經(jīng)發(fā)生了對(duì)所述第二塊的所述寫操作,則使用第一分界電壓(VDM)用于所述讀操作;以及 如果在所述寫操作之前的所述規(guī)定時(shí)間量?jī)?nèi)先前尚未發(fā)生對(duì)所述第一塊的所述第二寫操作,則使用第二 VDM用于所述讀操作;檢測(cè)加電條件; 在所述加電條件之后順序地刷新所述PCMS存儲(chǔ)器內(nèi)的每個(gè)塊;以及 如果所述第一塊尚未被刷新,則使用第三VDM用于所述讀操作。
10.如權(quán)利要求9所述的方法,還包括: 當(dāng)每個(gè)塊被刷新時(shí)更新所述第一表以提供每個(gè)塊已經(jīng)被刷新的指示。
11.如權(quán)利要求9所述的方法,其中讀所述第一表以確定包括: 使用與所述讀操作關(guān)聯(lián)的地址生成對(duì)第一表的索引值;以及 如果在所述表中發(fā)現(xiàn)匹配,則確定在所述讀之前的規(guī)定時(shí)間量?jī)?nèi)先前已經(jīng)發(fā)生了對(duì)所述第一塊的寫操作。
12.如權(quán)利要求9所述的方法,其中所述第一表中的每個(gè)條目已經(jīng)與指示所述條目是否有效的有效位關(guān)聯(lián),所述有效位在所述寫操作之后的所述規(guī)定時(shí)間量之后被重新設(shè)置。
13.如權(quán)利要求12所述的方法,其中所述第一表中的每個(gè)條目還已經(jīng)與指示自從所述寫操作以來(lái)已過(guò)去的時(shí)間 量的有效定時(shí)器關(guān)聯(lián)。
【文檔編號(hào)】G06F12/00GK103999161SQ201180075637
【公開(kāi)日】2014年8月20日 申請(qǐng)日期:2011年12月20日 優(yōu)先權(quán)日:2011年12月20日
【發(fā)明者】R.K.拉馬努詹, M.A.施米斯塞尤 申請(qǐng)人:英特爾公司