国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于在公共存儲器通道上實現(xiàn)多級存儲器層級的設(shè)備和方法

      文檔序號:6485201閱讀:164來源:國知局
      用于在公共存儲器通道上實現(xiàn)多級存儲器層級的設(shè)備和方法
      【專利摘要】本發(fā)明描述一種用于集成包含計算機(jī)系統(tǒng)內(nèi)非易失性存儲器層的存儲器和存儲裝置層級的系統(tǒng)和方法。在一個實施例中,PCMS存儲器裝置被用作層級中的一層,有時被稱為“遠(yuǎn)存儲器”。較高性能存儲器裝置(諸如DRAM)放在遠(yuǎn)存儲器前面,并且用于掩蔽遠(yuǎn)存儲器的一些性能限制。這些較高性能存儲器裝置被稱為“近存儲器”。
      【專利說明】用于在公共存儲器通道上實現(xiàn)多級存儲器層級的設(shè)備和方法
      【技術(shù)領(lǐng)域】
      [0001]一般而言,此公開涉及計算機(jī)系統(tǒng)領(lǐng)域。更具體地說,本發(fā)明涉及用于實現(xiàn)多級存儲器層級的設(shè)備和方法。
      【背景技術(shù)】
      [0002]A.當(dāng)前存儲器和存儲裝置配置
      今天計算機(jī)創(chuàng)新的限制因素之一是存儲器和存儲裝置技術(shù)。在常規(guī)計算機(jī)系統(tǒng)中,系統(tǒng)存儲器(也稱為主存儲器、主要存儲器、可執(zhí)行存儲器)通常由動態(tài)隨機(jī)存取存儲器(DRAM)實現(xiàn)?;贒RAM的存儲器甚至當(dāng)沒有存儲器讀或者寫發(fā)生時也消耗功率,這是因為它必須不斷給內(nèi)部電容器再充電。基于DRAM的存儲器是易失性的,這意味著,一旦移除電源,存儲在DRAM存儲器中的數(shù)據(jù)就丟失。常規(guī)計算機(jī)系統(tǒng)還依賴于多級高速緩存以改進(jìn)性能。高速緩存是位于處理器與系統(tǒng)存儲器之間的高速存儲器,以比可能從系統(tǒng)存儲器服務(wù)于存儲器訪問請求更快地服務(wù)于它們。此類高速緩存通常用靜態(tài)隨機(jī)存取存儲器(SRAM)實現(xiàn)。高速緩存管理協(xié)議可用于確保最頻繁訪問的數(shù)據(jù)和指令被存儲在其中一級高速緩存內(nèi),由此減少存儲器訪問事務(wù)數(shù)量并改進(jìn)性能。
      [0003]相對于大容量存儲裝置(也稱為輔助存儲裝置或盤存儲裝置),常規(guī)大容量存儲裝置器件通常包含磁介質(zhì)(例如硬盤驅(qū)動器)、光介質(zhì)(例如壓縮盤(CD)驅(qū)動器、數(shù)字多功能盤(DVD)等)、全息介質(zhì)和/或大容量存儲裝置閃速存儲器(例如固態(tài)驅(qū)動器(SSD)、可拆卸閃速驅(qū)動器等)。一般而言,這些存儲裝置器件被視為輸入/輸出(I/O)裝置,這是因為它們由處理器通過實現(xiàn)各種I/O協(xié)議的各種I/O適配器來訪問。這些I/O適配器和I/O協(xié)議消耗相當(dāng)大量的功率,并且可對平臺的管芯面積和形狀因子具有重大影響。當(dāng)未連接到永久電源時具有有限電池壽命的便攜式裝置或移動裝置(例如膝上型計算機(jī)、筆記本、平板計算機(jī)、個人數(shù)字助理(PDA)、便攜式媒體播放器、便攜式游戲裝置、數(shù)字?jǐn)z像機(jī)、移動電話、智能電話、功能手機(jī)等)可包含可拆卸大容量存儲裝置器件(例如嵌入式多媒體卡(eMMC)、安全數(shù)字(SD)卡),它們通常經(jīng)由低功率互連和I/O控制器耦合到處理器以便滿足活動和空閑功率預(yù)算。
      [0004]相對于固件存儲器(諸如引導(dǎo)存儲器(也稱為BIOS閃存))、常規(guī)計算機(jī)系統(tǒng)通常使用閃速存儲器裝置來存儲經(jīng)常被讀但很少(或者從不)被寫的持久系統(tǒng)信息。例如,由處理器執(zhí)行的、在引導(dǎo)過程期間初始化關(guān)鍵系統(tǒng)組件的初始指令(基本輸入和輸出系統(tǒng)(BIOS)映像)通常存儲在閃速存儲器裝置中。當(dāng)前在市場上可買到的閃速存儲器裝置一般具有有限速度(例如50 MHz)。由于用于讀協(xié)議的開銷,此速度進(jìn)一步降低(例如2.5 MHz)。為了加速BIOS執(zhí)行速度,常規(guī)處理器一般在引導(dǎo)過程的預(yù)先可擴(kuò)展固件接口(PEI)階段期間高速緩存BIOS代碼的一部分。處理器高速緩存的大小對在PEI階段中使用的BIOS代碼(也稱為“PEI BIOS代碼”)的大小施加了約束。
      _5] B.相變存儲器(PCM)以及相關(guān)技術(shù) 相變存儲器(PCM)(有時也稱為相變隨機(jī)存取存儲器(PRAM或PCRAM)、PCME、奧式統(tǒng)一存儲器或硫?qū)倩颮AM(C-RAM))是采用硫?qū)倩锊AУ莫毺匦袨榈姆且资杂嬎銠C(jī)存儲器類型。由于由電流經(jīng)過產(chǎn)生的熱量,硫?qū)倩锊AЭ稍趦煞N狀態(tài):晶體與非晶體之間切換。PCM的當(dāng)前版本可獲得兩種截然不同的附加狀態(tài)。
      [0006]PCM提供比閃存更高的性能,這是因為PCM的存儲元件可更快地開關(guān),可進(jìn)行寫(將各個位改變成I或O)而無需首先擦除單元的整個塊,并且來自寫的降級更慢(PCM裝置可存活近似I億個寫循環(huán);PCM降級由于編程期間的熱膨脹、金屬(和其它材料)遷移以及其它機(jī)制引起)。
      【專利附圖】

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