国产精品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>

      用于從處理器到存儲器子系統(tǒng)智能刷新數(shù)據(jù)的系統(tǒng)和方法

      文檔序號:6763898閱讀:326來源:國知局
      用于從處理器到存儲器子系統(tǒng)智能刷新數(shù)據(jù)的系統(tǒng)和方法
      【專利摘要】本發(fā)明描述了用于從處理器高速緩存智能刷新數(shù)據(jù)的系統(tǒng)和方法。例如,根據(jù)本發(fā)明一個實施例的系統(tǒng)包括:處理器,具有從其刷新數(shù)據(jù)的高速緩存,數(shù)據(jù)與具體系統(tǒng)地址范圍關(guān)聯(lián);以及PCM存儲器控制器,用于管理對存儲在PCM存儲器裝置中對應(yīng)于具體系統(tǒng)地址范圍的數(shù)據(jù)的存??;處理器確定對于規(guī)定的系統(tǒng)地址范圍是否啟用存儲器刷新提示,其中如果對于規(guī)定的系統(tǒng)地址范圍啟用存儲器刷新提示,則處理器向PCM存儲器裝置的PCM存儲器控制器發(fā)送存儲器刷新提示,并且其中PCM存儲器控制器使用存儲器刷新提示確定是否將刷新的數(shù)據(jù)保存到PCM存儲器裝置。
      【專利說明】用于從處理器到存儲器子系統(tǒng)智能刷新數(shù)據(jù)的系統(tǒng)和方法

      【技術(shù)領(lǐng)域】
      [0001] 此發(fā)明一般涉及計算機系統(tǒng)的領(lǐng)域。更具體地說,本發(fā)明涉及用于實現(xiàn)多級存儲 器層級的設(shè)備和方法。

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

      【專利附圖】

      【附圖說明】
      [0007] 以下描述和附圖用于例證本發(fā)明的實施例。在附圖中: 圖1例證了根據(jù)本發(fā)明實施例的高速緩存和系統(tǒng)存儲器布置; 圖2例證了在本發(fā)明實施例中采用的存儲器和存儲裝置層級; 圖3例證了可在其上實現(xiàn)本發(fā)明實施例的計算機系統(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)的存儲頁面之間的交織; 圖7例證了可實現(xiàn)本發(fā)明實施例的示范性多處理器架構(gòu)。
      [0008] 圖8例證了根據(jù)本發(fā)明一些實施例的系統(tǒng)存儲器映射。
      [0009] 圖9例證了含有刷新提示數(shù)據(jù)的存儲器范圍寄存器(MRR)的一個實施例。
      [0010] 圖10例證了 PCMS存儲器控制器的一個實施例。
      [0011] 圖11例證了用于向PCMS裝置智能刷新數(shù)據(jù)的方法的一個實施例。
      [0012] 圖12例證了根據(jù)本發(fā)明一個實施例的方法。

      【具體實施方式】
      [0013] 在以下描述中,闡述了許多具體細(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)功能性,而無需過多實驗。
      [0014] 在說明書中提到" 一個實施例"、"實施例"、"示例實施例"等指示所描述的實施例 可包含具體特征、結(jié)構(gòu)或特性,但可能不一定每一個實施例都包含該具體特征、結(jié)構(gòu)或特 性。此外,此類短語不一定是指同一實施例。進一步說,當(dāng)具體特征、結(jié)構(gòu)或特性結(jié)合一實 施例描述時,認(rèn)為結(jié)合其它實施例實現(xiàn)此類特征、結(jié)構(gòu)或特性在本領(lǐng)域技術(shù)人員的知識范 圍內(nèi),而不管是否明確描述了。
      [0015] 在以下說明書和權(quán)利要求書中,可以使用術(shù)語"耦合"和"連接"連同它們的派生 詞。應(yīng)該理解,這些術(shù)語不打算作為彼此的同義詞。"耦合"用于指示可以直接彼此物理接 觸或電氣接觸或者可以不直接彼此物理接觸或電氣接觸的兩個或更多元件彼此協(xié)同操作 或交互作用。"連接"用于指示在彼此耦合的兩個或更多元件之間建立通信。
      [0016] 帶括號的文本以及具有虛線邊框(例如大破折號、小破折號、點劃線、點等)的塊 有時在本文用于例證向本發(fā)明實施例添加附加特征的可選操作/組件。然而,此類記號不 應(yīng)該被視為意味著這些是僅有的選項或僅有的可選操作/組件,和/或不應(yīng)該被視為意味 著具有實線邊框的塊在本發(fā)明的某些實施例中不是可選的。
      [0017] 介紹 存儲器容量和性能要求隨著處理器核以及新用途模型(諸如虛擬化)的數(shù)量增加而繼 續(xù)增加。此外,存儲器功率和成本已經(jīng)分別變成電子系統(tǒng)的總體功率和成本的重要組成部 分。
      [0018] 本發(fā)明的一些實施例通過在存儲器技術(shù)之間智能細(xì)分性能要求和容量要求來解 決以上挑戰(zhàn)。此方法的焦點在于通過如下方式來提供性能:利用相對小量的相對較高速的 存儲器(諸如DRAM),同時使用顯著更便宜并且更密集的非易失性隨機存取存儲器(NVRAM) 來實現(xiàn)大多數(shù)系統(tǒng)存儲器。下面描述的本發(fā)明實施例定義了對于使用NVRAM能夠?qū)崿F(xiàn)層級 存儲器子系統(tǒng)組織的平臺配置。在存儲器層級中使用NVRAM也能夠?qū)崿F(xiàn)新用途,諸如擴大 的引導(dǎo)空間以及大容量存儲裝置實現(xiàn),如下面所詳細(xì)描述的。
      [0019] 圖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)存儲器"的一種具體類型存儲器是 非易失性隨機存取存儲器("NVRAM")。因而,下面提供了 NVRAM的概覽,隨后是遠(yuǎn)存儲器 和近存儲器的概覽。
      [0020] A.非易失件隨機存取存儲器("NVRAM") 存在許多可能的技術(shù)選擇用于NVRAM,包含PCM、相變存儲器和開關(guān)(PCMS)(后者是前 者的更具體實現(xiàn))、字節(jié)可尋址持久存儲器(BPRAM)、通用存儲器、Ge2Sb2Te5、可編程金屬 化單元(PMC)、電阻性存儲器(RRAM)、RESET (非晶體)單元、SET (晶體)單元、PCME、奧氏 存儲器、鐵電存儲器(也稱為聚合物存儲器和聚(N-乙烯基咔唑))、鐵磁存儲器(也稱為自 旋電子器件、SPRAM(自旋傳遞扭矩RAM)、STRAM (自旋遂穿RAM)、磁阻存儲器、磁存儲器、磁 隨機存取存儲器(MRAM))以及半導(dǎo)體-氧化物-氮化物-氧化物-半導(dǎo)體(S0N0S,也稱為 介電存儲器)。
      [0021] 供在此申請中描述的存儲器層級之用,NVRAM具有如下特性: (1) 即便移除電源它也保持其內(nèi)容,這類似于在固態(tài)盤(SSD)中使用的閃速存儲器,并 且不同于易失性的SRAM和DRAM ; (2) 當(dāng)空閑時比易失性存儲器(諸如SRAM和DRAM)更低的功耗; (3) 類似于SRAM和DRAM的隨機存取(也稱為可隨機尋址); (4) 以比在SSD中含有的閃存更低級的粒度(例如字節(jié)級)可重寫以及可擦除(SSD中 含有的閃存每次僅能被重寫并擦除"塊"--對于N0R閃存而言大小最低限度是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等),通過所述總線運行事務(wù)協(xié)議,這與正 常使用的非事務(wù)協(xié)議形成對比。作為另一示例,總線可以是通過其正常運行事務(wù)協(xié)議(本 機事務(wù)協(xié)議)的總線,諸如PCI快速(PCIE)總線、桌面管理接口(DMI)總線或利用事務(wù)協(xié) 議和足夠的小事務(wù)有效載荷大?。ɡ绺咚倬彺婢€大小、諸如64字節(jié)或128字節(jié))的任何 其它類型總線;以及 (7) 如下一項或多項: a) 比非易失性存儲器/存儲裝置技術(shù)(諸如閃存)更快的寫速度; b) 非常高的讀速度(比閃存更快,并且接近或相當(dāng)于DRAM讀速度); c) 直接可寫(而不是在寫數(shù)據(jù)之前需要擦除(用1蓋寫)(比如在SSD中使用的閃速 存儲器));和/或 d) 在故障之前較高(例如2或3)數(shù)量級的寫持續(xù)時間(比在SSD中使用的引導(dǎo)ROM 和閃存大)。
      [0022] 如上面所提到的,與閃速存儲器形成對照(閃速存儲器每次必須被重寫并且擦除 整個"塊"),在任何給定實現(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)的控制器和總線的存取大小的粒度級。
      [0023] NVRAM也可結(jié)合耗損均勻化算法來考慮如下事實:在遠(yuǎn)存儲器級的存儲裝置單元 在若干次寫存取之后開始耗盡,特別是在諸如在系統(tǒng)存儲器實現(xiàn)中可出現(xiàn)大量寫的情況 下。由于用這種方式高循環(huán)計數(shù)塊最有可能耗盡,因此耗損均勻化通過交換高循環(huán)計數(shù)塊 與低循環(huán)計數(shù)塊的地址而在遠(yuǎn)存儲單元上擴散寫。要指出,大部分地址交換通常對應(yīng)用程 序而言是透明的,這是因為它由硬件、低級軟件(例如低級驅(qū)動程序或操作系統(tǒng))或二者的 組合來處置。
      [0024] 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)隨機存取存儲器(SRAM),其可用于分別專用于處理器核101-104中每一個處理 器核的〇級和1級內(nèi)部處理器高速緩存l〇la-b、102a-b、103a-b、103a_b和104a_b,以及由 處理器核共享的較低級高速緩存(LLC) 105 ; 2) 動態(tài)隨機存取存儲器(DRAM),其配置為在處理器100內(nèi)部的高速緩存106 (例 如在與處理器106相同的裸晶上)和/或配置為在處理器外部的一個或多個高速緩存 107-109(例如在與處理器100相同的封裝或不同的封裝中);以及 3) 閃速存儲器/磁盤/光盤,其應(yīng)用為大容量存儲裝置(未示出);及 4) 存儲器(諸如閃速存儲器或其它只讀存儲器(R0M)),其應(yīng)用為固件存儲器(其可以 指引導(dǎo)ROM、BIOS閃存和/或TPM閃存)(未示出)。
      [0025] 遠(yuǎn)存儲器122可被用作可直接由處理器100尋址并且能夠充分跟上處理器100的 指令和數(shù)據(jù)存儲裝置,其與應(yīng)用為大容量存儲裝置的閃存/磁盤/光盤形成對照。此外,如 上面所討論和下面詳細(xì)描述的,遠(yuǎn)存儲器122可被放在存儲器總線上,并且可與存儲器控 制器直接通信,所述存儲器控制器又與處理器100直接通信。
      [0026] 遠(yuǎn)存儲器122可與其它指令和數(shù)據(jù)存儲技術(shù)(例如DRAM)組合以形成混合存儲器 (也稱為協(xié)同定位的PCM和DRAM ;第一級存儲器和第二級存儲器;FLAM(閃存和DRM))。要 指出,以上技術(shù)中的至少一些技術(shù)(包含PCM/PCMS)可用于大容量存儲裝置,來代替系統(tǒng)存 儲器或作為系統(tǒng)存儲器的附加,并且當(dāng)用這種方式應(yīng)用時不必是可由處理器隨機存取的、 字節(jié)尋址的或直接尋址的。
      [0027] 為了便于說明,本申請其余部分中的大部分將引用"NVRAM",或者更特別是"PCM" 或"PCMS"來作為用于遠(yuǎn)存儲器122的技術(shù)選擇。因而,術(shù)語NVRAM、PCM、PCMS和遠(yuǎn)存儲器 在以下討論中可互換使用。然而,應(yīng)該意識到,如上面所討論的,對于遠(yuǎn)存儲器也可利用不 同技術(shù)。還有,那個NVRAM不限于用作遠(yuǎn)存儲器。
      [0028] C.沂存儲器 "近存儲器" 121是配置在遠(yuǎn)存儲器122前面的中級存儲器,其相對于遠(yuǎn)存儲器具有更 低讀/寫存取等待時間和/或更對稱的讀/寫存取等待時間(即具有大致相當(dāng)于寫時間的 讀時間)。在一些實施例中,近存儲器121具有比遠(yuǎn)存儲器122顯著低的寫等待時間但具有 類似(例如略低或相等)的讀等待時間;例如,近存儲器121可以是易失性存儲器(諸如易 失性隨機存取存儲器(VRAM)),并且可包括DRAM或其它基于電容器的高速存儲器。然而,要 指出,本發(fā)明的基本原理不限于這些特定存儲器類型。附加地,近存儲器121可具有相對低 的密度,和/或可能比遠(yuǎn)存儲器122制造起來更昂貴。
      [0029] 在一個實施例中,近存儲器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可包含如下模式,其中它除了扮演高速緩存角色之外 還扮演其它角色,或者替代扮演高速緩存角色而扮演其它角色。
      [0030] 近存儲器121可位于處理器裸晶上(作為一個或多個高速緩存106)和/或位于 處理器裸晶外部(作為高速緩存107-109)(例如在位于CPU封裝上的單獨裸晶上、位于CPU 封裝外部(具有到CPU封裝的高帶寬鏈路),例如在存儲器雙列直插式存儲器模塊(DIMM)、 轉(zhuǎn)接卡/小背板或計算機主板上)。近存儲器121可使用單個或多個高帶寬鏈路(諸如DDR 或其它事務(wù)的高帶寬鏈路(如下面所詳細(xì)描述的))與處理器100通信耦合。
      [0031] 示范性系統(tǒng)存儲器分配方案 圖1例證了在本發(fā)明實施例中如何相對于系統(tǒng)物理地址(SPA)空間116-119配置各級 高速緩存101-109。如所提到的,這個實施例包括具有一個或多個核101-104的處理器100, 其中每個核都具有它自己的專用上級高速緩存(L0) 101a-104a和中級高速緩存(MLC) (L1)高速緩存101b-104b。處理器100還包含共享的LLC 105。這些各級高速緩存的操作 眾所周知,并且在此將不詳細(xì)描述。
      [0032] 圖1中例證的高速緩存107-109可專用于具體系統(tǒng)存儲器地址范圍或不連續(xù)地址 范圍集合。例如,高速緩存107專用于充當(dāng)用于系統(tǒng)存儲器地址范圍# 1 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-106對整個SPA 空間執(zhí)行高速緩存操作。
      [0033] 本文所使用的系統(tǒng)存儲器是對在處理器100上執(zhí)行的軟件而言可見和/或可直接 由其尋址的存儲器;而高速緩存存儲器101a-109可在如下意義上對軟件而言透明地操作: 它們未形成系統(tǒng)地址空間的直接可尋址部分,但這些核也可支持指令執(zhí)行以允許軟件向一 些高速緩存或所有高速緩存提供某種控制(配置、策略、提示等)。系統(tǒng)存儲器細(xì)分成區(qū)域 116-119可作為系統(tǒng)配置過程的一部分(例如由系統(tǒng)設(shè)計者)手動執(zhí)行,和/或可由軟件自 動執(zhí)行。
      [0034] 在一個實施例中,使用遠(yuǎn)存儲器(例如PCM)并且在一些實施例中使用配置為系 統(tǒng)存儲器的近存儲器來實現(xiàn)系統(tǒng)存儲器區(qū)域116-119。系統(tǒng)存儲器地址范圍# 4表示使用 較高速存儲器(諸如DRAM)實現(xiàn)的地址范圍,較高速存儲器可以是配置在系統(tǒng)存儲器模式 (與高速緩存模式相對)的近存儲器。
      [0035] 圖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和/或BIOS NVRAM 172以及可選地包含可信平臺模塊(TPM) NVRAM 173。
      [0036] 如所指示的,近存儲器144可實現(xiàn)成在各種不同模式操作,其包含:第一模式,在 此模式它作為用于遠(yuǎn)存儲器的高速緩存(作為用于FM的高速緩存150B的近存儲器)操作; 第二模式,在此模式它作為系統(tǒng)存儲器151A操作,并占據(jù)SPA空間的一部分(有時稱為近 存儲器"直接存取"模式);以及一個或多個附加操作模式,諸如暫存器存儲器192或作為 寫緩沖器193。在本發(fā)明的一些實施例中,近存儲器是可劃分的,其中每個分區(qū)可同時在所 支持模式中的不同模式操作;并且不同實施例可支持通過硬件(例如熔絲、管腳)、固件和/ 或軟件(例如通過MSC控制器124內(nèi)的一組可編程范圍寄存器,在其內(nèi)例如可存儲不同二 進制代碼以標(biāo)識每個模式和分區(qū))配置分區(qū)(例如大小、模式)。
      [0037] 圖2中的系統(tǒng)地址空間A 190用于例證當(dāng)近存儲器被配置為用于遠(yuǎn)存儲器的MSC 150B時的操作。在此配置中,系統(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)地址空間中指配給NVRAM 174的范圍。
      [0038] 此外,當(dāng)充當(dāng)用于遠(yuǎn)存儲器的高速緩存150B時,近存儲器144可在MSC控制器124 的控制下在各種子模式操作。在這些模式中的每個模式中,近存儲器地址空間(NMA)在如 下意義上對軟件而言是透明的:近存儲器未形成系統(tǒng)地址空間的直接可尋址部分。這些模 式包括但不限于如下項: (1)寫回高諫緩存樽式:在此樽式,充當(dāng)FM高速緩存150B的全部或部分近存儲器被用 作用于NVRAM遠(yuǎn)存儲器(FM)151B的高速緩存。雖然在寫回模式,但每一個寫操作最初都指 向作為用于FM的高速緩存150B的近存儲器(假定在高速緩存中存在所述寫所指向的高速 緩存線)。僅當(dāng)作為用于FM的高速緩存150B的近存儲器內(nèi)的高速緩存線要由另一高速緩 存線替換時才執(zhí)行對應(yīng)寫操作以更新NVRAM FM 151B(與下面描述的每個寫操作被立即傳 播到NVRAM FM 151B的寫直達(dá)模式形成對照)。
      [0039] (2)近存儲器旁路樽式:在此模式,所有讀和寫都旁路充當(dāng)FM高速緩存150B的NM ,并且直接去到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)高速緩 存。
      [0040] (3)沂存儲器讀-高諫緩存寫旁路樽式:這是上面模式的變型,其中允許從NVRAM FM 151B讀高速緩存持久數(shù)據(jù)(即,持久數(shù)據(jù)在作為用于遠(yuǎn)存儲器的高速緩存的近存儲器 150B中高速緩存以便進行只讀操作)。當(dāng)大部分持久數(shù)據(jù)是"只讀"的并且應(yīng)用用途是高 速緩存友好的時,這是有用的。
      [0041] (4)沂存儲器讀-高諫緩存寫官汰樽式:這是近存儲器讀-高速緩存寫旁路模式 的變型,其中除了讀高速緩存之外,還高速緩存寫命中。對作為用于FM的高速緩存150B的 近存儲器的每一次寫引起對FM 151B的寫。從而,由于高速緩存的寫直達(dá)性質(zhì),仍保證了高 速緩存線持久性。
      [0042] 當(dāng)在近存儲器直接存取模式中起作用時,作為系統(tǒng)存儲器151A的近存儲器的全 部或部分對軟件而言直接可見,并且形成SPA空間的一部分。此類存儲器可完全在軟件控 制下。此類方案可創(chuàng)建用于軟件的非均勻存儲器地址(NUMA)存儲區(qū),其中它從近存儲器 144得到相對于NVRAM系統(tǒng)存儲器174更高的性能。作為示例而非限制,此類使用可用于需 要對某些數(shù)據(jù)結(jié)構(gòu)進行非??焖俅嫒〉哪承└咝阅苡嬎悖℉PC)和圖形應(yīng)用。
      [0043] 在備選實施例中,近存儲器直接存取模式通過對近存儲器中的某些高速緩存線 (即具有也同時存儲在NVRAM 142中的數(shù)據(jù)的高速緩存線)"固定(pinning)"來實現(xiàn)。此 類固定可有效地在較大、多路且組關(guān)聯(lián)的高速緩存中進行。
      [0044] 圖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部分可用于保護敏感系統(tǒng)信息(例 如加密密鑰)。
      [0045] 從而,如所指示的,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;BI0S NVRAM 172;以及TPM NVRAM 173。雖然不同實施例可按不同方式規(guī)定NVRAM模式,但圖3描述了解碼表333的使 用。
      [0046] 圖3例證了可在其上實現(xiàn)本發(fā)明實施例的示范性計算機系統(tǒng)300。計算機系統(tǒng)300 包含處理器310和存儲器/存儲裝置子系統(tǒng)380,該存儲器/存儲裝置子系統(tǒng)380具有用于 系統(tǒng)存儲器、大容量存儲裝置以及可選地固件存儲器的NVRAM 142。在一個實施例中,NVRAM 142包括由計算機系統(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和TPM NVRAM 173。也考慮了具有不同角色的存儲裝置層級,并且NVRAM 142的應(yīng)用不限于上面提 到的角色。
      [0047] 作為示例,描述了作為用于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)存儲器地址變換成NVRAM物理裝 置地址(PDA),并將讀操作指向遠(yuǎn)存儲器151B的這個區(qū)域。在一個實施例中,解碼表333包 含間接尋址表(AIT)組件,NVRAM控制器332使用所述AIT組件在系統(tǒng)存儲器地址與NVRAM PDA之間進行變換。在一個實施例中,AIT被更新為耗損均勻化算法的實現(xiàn)成分布存儲器存 取操作并由此降低NVRAM FM 151B上耗損的部分。備選地,AIT可以是存儲在NVRAM控制 器332內(nèi)的單獨表。
      [0048] 在從NVRAM FM 151B接收到所請求的數(shù)據(jù)時,NVRAM控制器332會將所請求的數(shù)據(jù) 返回到MSC控制器124,MSC控制器124會將所述數(shù)據(jù)存儲在充當(dāng)FM高速緩存150B的MSC 近存儲器中,并且還通過I/O子系統(tǒng)115將所述數(shù)據(jù)發(fā)送到發(fā)出請求的處理器核101-104 或者I/O裝置。對于此數(shù)據(jù)的隨后請求可從充當(dāng)FM高速緩存150B的近存儲器直接服務(wù), 直到它由某一其它NVRAM FM數(shù)據(jù)替換。
      [0049] 如所提到的,在一個實施例中,存儲器寫操作也首先去到MSC控制器124, MSC控制 器124將它寫入充當(dāng)FM高速緩存150B的MSC近存儲器中。在寫回高速緩存模式中,當(dāng)接收 到寫操作時,可不將數(shù)據(jù)直接發(fā)送到階狀1?115川。例如,僅當(dāng)充當(dāng)?1高速緩存15(?的 MSC近存儲器中存儲數(shù)據(jù)的位置必須針對不同系統(tǒng)存儲器地址再用于存儲數(shù)據(jù)時,才可將 數(shù)據(jù)發(fā)送到NVRAM FM 151B。當(dāng)這個發(fā)生時,MSC控制器124注意到數(shù)據(jù)當(dāng)前不在NVRAM FM 151B中,并且從而將從充當(dāng)FM高速緩存150B的近存儲器中檢索它,并將它發(fā)送到NVRAM控 制器332。NVRAM控制器332查找用于系統(tǒng)存儲器地址的PDA,并且然后將數(shù)據(jù)寫到NVRAM FM 151B。
      [0050] 在圖3中,顯示NVRAM控制器332使用三條單獨的線路連接到FM 151B、NVRAM大 容量存儲裝置152A和BIOS NVRAM 172。然而,這不一定意味著,存在三條單獨的物理總線 或通信信道將NVRAM控制器332連接到NVRAM 142的這些部分。而是,在一些實施例中,公 共存儲器總線或其它類型總線(諸如下面相對于圖4A-N描述的總線)用于以通信方式將 NVRAM控制器332耦合到FM 151B、NVRAM大容量存儲裝置152A和BIOS NVRAM 172。例如, 在一個實施例中,圖3中的三條線路表示如下總線(諸如存儲器總線(例如DDR3、DDR4等 總線)),通過該總線NVRAM控制器332實現(xiàn)了與NVRAM 142通信的事務(wù)協(xié)議。NVRAM控制 器332也可通過支持本機事務(wù)協(xié)議的總線(諸如PCI快速總線、桌面管理接口(DMI)總線 或利用事務(wù)協(xié)議和足夠的小事務(wù)有效載荷大?。ɡ绺咚倬彺婢€大小、諸如64字節(jié)或128 字節(jié))的任何其它類型總線)與NVRAM 142通信。
      [0051] 在一個實施例中,計算機系統(tǒng)300包含執(zhí)行用于處理器310的中央存儲器存取控 制的集成存儲器控制器(IMC) 331,其耦合到:1)存儲器側(cè)高速緩存(MSC)控制器124,以控 制對充當(dāng)遠(yuǎn)存儲器高速緩存150B的近存儲器(NM)的存?。灰约?) NVRAM控制器332,以控 制對NVRAM 142的存取。盡管在圖3中例證為單獨單元,但MSC控制器124和NVRAM控制 器332在邏輯上可形成MC 331的一部分。
      [0052] 在例證的實施例中,MSC控制器124包含一組范圍寄存器336,范圍寄存器336規(guī) 定供充當(dāng)遠(yuǎn)存儲器高速緩存150B的NM使用的操作模式(例如上面描述的寫回高速緩存模 式、近存儲器旁路模式等)。在所例證的實施例中,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ù)于該請求。
      [0053] 在用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ù)(諸如閃存)的粒度級,該技術(shù)僅能在 "塊"級(對于N0R閃存的大小最低限度是64K字節(jié),并且對于NAND閃存最低限度是16K字 節(jié))執(zhí)行重寫和擦除操作。
      [0054] 在所例證的實施例中,NVRAM控制器332能夠讀取配置數(shù)據(jù)以從解碼表333中確立 之前描述的用于NVRAM 142的模式、大小等,或者備選地,可依賴于從MC 331和I/O子系 統(tǒng)315傳遞的解碼結(jié)果。例如,在制造時間或者在現(xiàn)場,計算機系統(tǒng)300可對解碼表333編 程以將NVRAM 142的不同區(qū)域標(biāo)記為系統(tǒng)存儲器、經(jīng)由SATA接口暴露的大容量存儲裝置、 經(jīng)由USB僅塊傳輸(Β0Τ)接口暴露的大容量存儲裝置、支持TPM存儲的加密存儲裝置,除此 之外還有其它。對NVRAM裝置142的不同分區(qū)操縱存取所用的手段是利用解碼邏輯的。例 如,在一個實施例中,在解碼表333中定義每個分區(qū)的地址范圍。在一個實施例中,當(dāng)MC 331接收到存取請求時,該請求的目標(biāo)地址被解碼以揭示該請求是指向存儲器、NVRAM大容 量存儲裝置還是I/O。如果它是存儲器請求,則頂C 331和/或MSC控制器124根據(jù)目標(biāo) 地址進一步確定該請求是指向作為用于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進一步對該地址進行解碼以確定該地址是針對NVRAM大容量存儲裝置152A、BI0S NVRAM 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í)行 安全存取。
      [0055] 在一個實施例中,轉(zhuǎn)發(fā)到NVRAM控制器332的每個請求兼有指示存取類型的屬性 (也稱為"事務(wù)類型")。在一個實施例中,NVRAM控制器332可模擬所請求存取類型的存取 協(xié)議,使得平臺的其余部分保持不了解由NVRAM 142在存儲器和存儲裝置層級中扮演的多 個角色。在備選實施例中,NVRAM控制器332可執(zhí)行對NVRAM 142的存儲器存取,而不管它 是哪種事務(wù)類型。要理解,解碼路徑可不同于上面所描述的。例如,頂C 331可對存取請求 的目標(biāo)地址進行解碼,并確定它是否指向NVRAM 142。如果它指向NVRAM 142,則MC 331 根據(jù)解碼表333生成屬性?;谠搶傩?,頂C 331然后將該請求轉(zhuǎn)發(fā)到適當(dāng)下游邏輯(例 如NVRAM控制器332和I/O子系統(tǒng)315)以執(zhí)行所請求的數(shù)據(jù)存取。在又一實施例中,如果 對應(yīng)屬性未從上游邏輯(例如頂C 331和I/O子系統(tǒng)315)傳遞,則NVRAM控制器332可對 目標(biāo)地址進行解碼。也可實現(xiàn)其它解碼路徑。
      [0056] 存在諸如本文描述的新存儲器架構(gòu)提供了豐富的新可能性。盡管下面以更大長度 進一步討論了,但這些可能性中的一些緊接在下面很快強調(diào)了。
      [0057] 根據(jù)一種可能實現(xiàn),NVRAM 142充當(dāng)系統(tǒng)存儲器中用于傳統(tǒng)DRAM技術(shù)的總替換或 補充。在一個實施例中,NVRAM 142表示引入第二級系統(tǒng)存儲器(例如該系統(tǒng)存儲器可被 視為具有包括近存儲器作為高速緩存150B (DRAM裝置340的一部分)的第一級系統(tǒng)存儲 器和包括遠(yuǎn)存儲器(FM) 151B (NVRAM 142的一部分)的第二級系統(tǒng)存儲器)。
      [0058] 根據(jù)一些實施例,NVRAM 142充當(dāng)閃存/磁/光大容量存儲裝置152B的總替換或 補充。如本文之前所描述的,在一些實施例中,即使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)大容量存儲裝置器件(例如串行ΑΤΑ硬驅(qū)動器或其它標(biāo)準(zhǔn)形式 的大容量存儲裝置器件)。
      [0059] 在NVRAM大容量存儲裝置152Α充當(dāng)閃存/磁/光大容量存儲裝置152Β的總替換 的實施例中,對于塊可尋址存儲裝置存取沒有必要使用存儲裝置驅(qū)動器。從存儲裝置存取 中移除存儲裝置驅(qū)動器開銷可增大存取速度并節(jié)省功率。在期望NVRAM大容量存儲裝置 152A對于0S和/或應(yīng)用而言看起來是塊可存取且與閃存/磁/光大容量存儲裝置152B不 可區(qū)分的備選實施例中,模擬的存儲裝置驅(qū)動器可用于將塊可存取接口(例如通用串行總 線(USB)僅大塊傳遞(Β0Τ),1. 0 ;串行先進技術(shù)附件(SATA),3. 0等)暴露于用于存取NVRAM 大容量存儲裝置152A的軟件。
      [0060] 在一個實施例中,NVRAM 142充當(dāng)用于固件存儲器(諸如BIOS閃存362和TPM閃 存372)(圖3中用點線例證以指示它們是可選的)的總替換或補充。例如,NVRAM 142可 包含BIOS NVRAM 172部分以補充或替換BIOS閃存362,并且可包含TPM NVRAM 173部分以 補充或替換TPM閃存372。固件存儲器還可存儲由TPM 334用于保護敏感系統(tǒng)信息(例如 加密密鑰)的系統(tǒng)持久狀態(tài)。在一個實施例中,對于固件存儲器使用NVRAM 142移除了對 于如下的需要:第三方閃存部分存儲對系統(tǒng)操作關(guān)鍵的代碼和數(shù)據(jù)。
      [0061] 然后繼續(xù)對圖3的系統(tǒng)的討論,在一些實施例中,計算機系統(tǒng)100的架構(gòu)可包含 多個處理器,不過圖3中為了簡化例證了單個處理器310。處理器310可以是任何類型數(shù) 據(jù)處理器,包含通用或?qū)S弥醒胩幚韱卧–PU)、專用集成電路(ASIC)或數(shù)字信號處理器 (DSP)。例如,處理器310可以是通用處理器,諸如Core? i3、i5、i7、2 Duo和QuacUXeon? 或Itanium?處理器,它們?nèi)伎蓮募永D醽喪タ死挠⑻貭柟镜玫健溥x地,處理 器310可以來自另一公司,諸如加利福尼亞桑尼韋爾的ARM股份有限公司、加利福尼亞桑尼 韋爾的MIPS技術(shù)公司等。處理器310可以是專用處理器,諸如例如網(wǎng)絡(luò)處理器或通信處理 器、壓縮引擎、圖形處理器、協(xié)處理器、嵌入式處理器等等。處理器310可實現(xiàn)在包含在一個 或多個封裝內(nèi)的一個或多個芯片上。處理器310可以是一個或多個襯底的一部分,和/或 可使用若干工藝技術(shù)(諸如例如BiCM0S、CM0S或NM0S)中的任一技術(shù)實現(xiàn)在一個或多個襯 底上。在圖3中示出的示例中,處理器310具有芯片上系統(tǒng)(S0C)配置。
      [0062] 在一個實施例中,處理器310包含集成圖形單元311,其包含用于執(zhí)行圖形命令 (諸如3D或2D圖形命令)的邏輯。雖然本發(fā)明的實施例不限于任何具體集成圖形單元311, 但在一個實施例中,圖形單元311能夠執(zhí)行工業(yè)標(biāo)準(zhǔn)圖形命令,諸如由開放式GL和/或直 接X應(yīng)用編程接口(API)(例如開放式GL 4. 1和直接XII)規(guī)定的命令。
      [0063] 處理器310還可包含一個或多個核101-104,不過再次為了清楚目的在圖3例證了 單個核。在許多實施例中,核101-104包含內(nèi)部功能塊,諸如一個或多個執(zhí)行單元、退役單 元、一組通用寄存器和專用寄存器等。如果核是多線程或超線程的,則每個硬件線程也可被 視為"邏輯"核。核101-104在架構(gòu)和/或指令集方面可以是同質(zhì)的或異質(zhì)的。例如,其中 一些核可以是有序的,而其它核是無序的。作為另一示例,所述核中的兩個或更多核可以能 夠執(zhí)行相同指令集,而其它核可以能夠僅執(zhí)行那個指令集的子集或不同指令集。
      [0064] 處理器310還可包含一個或多個高速緩存,諸如可實現(xiàn)為SRAM和/或DRAM的高 速緩存313。在未示出的許多實施例中,實現(xiàn)不同于高速緩存313的附加高速緩存,使得在 核101-104中的執(zhí)行單元與存儲器裝置150B和151B之間存在多級高速緩存。例如,該組 共享高速緩存單元可包含上級高速緩存(諸如級1(L1)高速緩存)、中級高速緩存(諸如 級2(L2)、級3(L3)、級4(L4))或其它級高速緩存(LLC)和/或它們的不同組合。在不同實 施例中,高速緩存313可按不同方式分派,并且在不同實施例中可具有許多不同大小之一。 例如,高速緩存313可以是8兆字節(jié)(MB)高速緩存、16MB高速緩存等。附加地,在不同實 施例中,高速緩存可以是直接映射高速緩存、完全關(guān)聯(lián)高速緩存、多路組關(guān)聯(lián)高速緩存或具 有另一類型映射的高速緩存。在包含多個核的其它實施例中,高速緩存313可包含在所有 核之間共享的一個大的部分,或者可被分成多個單獨的功能片段(例如每個核一個片段)。 高速緩存313也可包含在所有核之間共享的一個部分以及是每個核的單獨功能片段的多 個其它部分。
      [0065] 處理器310還可包含歸屬代理314,歸屬代理314包含協(xié)調(diào)和操作核101-104的那 些組件。歸屬代理單元314例如可包含功率控制單元(P⑶)和顯示單元。P⑶可以是或者 可包含調(diào)節(jié)核101-104和集成圖像單元311的功率狀態(tài)所需的邏輯和組件。顯示單元用于 驅(qū)動一個或多個外部連接的顯示器。
      [0066] 如所提到的,在一些實施例中,處理器310包含集成存儲器控制器(MC) 331、近 存儲器高速緩存(MSC)控制器以及NVRAM控制器332,所有這些全都可以在與處理器310相 同的芯片上或者在連接到處理器310的單獨芯片和/或封裝上。DRAM裝置144可以在與 MC 331和MSC控制器124相同的芯片或不同的芯片上;從而,一個芯片可具有處理器310 和DRAM裝置144 ;一個芯片可具有處理器310而另一個芯片可具有DRAM裝置144 (并且這 些芯片可在相同或不同的封裝中);一個芯片可具有核101-104而另一個芯片可具有MC 331、MSC控制器124和DRAM 144(這些芯片可在相同或不同的封裝中);一個芯片可具有 核101-104而另一個芯片可具有MC 331和MSC控制器124以及另一個芯片可具有DRAM 144(這些芯片可在相同或不同的封裝中);等等。
      [0067] 在一些實施例中,處理器310包含耦合到MC 331的I/O子系統(tǒng)115。I/O子系 統(tǒng)115使得在處理器310與如下串行或并行I/O裝置之間能夠進行通信:一個或多個網(wǎng)絡(luò) 336 (諸如局域網(wǎng)、廣域網(wǎng)或因特網(wǎng))、存儲裝置I/O裝置(諸如閃存/磁/光大容量存儲裝 置152B、BI0S閃存362、TPM閃存372)以及一個或多個非存儲裝置I/O裝置337 (諸如顯示 器、鍵盤、揚聲器等等)。I/O子系統(tǒng)115可包含平臺控制器中心(PCH)(未示出),該PCH 進一步包含多個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的單獨芯片和/或封裝上。
      [0068] I/O適配器338將在處理器310內(nèi)利用的主機通信協(xié)議變換成與具體I/O裝置兼 容的協(xié)議。對于閃存/磁/光大容量存儲裝置152B,I/O適配器338可變換的其中一些協(xié) 議包含:外圍組件互連(PCI)-快速(PCI-E),3. 0 ;USB,3. 0 ;SATA,3. 0 ;小型計算機系統(tǒng)接 口(SCSI),超-640 ;以及電氣與電子工程師協(xié)會(IEEE) 1394 "防火墻",除此之外還有其 它。對于BIOS閃存362, I/O適配器338可變換的其中一些協(xié)議包含串行外圍接口(SPI)、 微線,除此之外還有其它。附加地,可能存在一個或多個無線協(xié)議I/O適配器。無線協(xié)議的 示例用在個域網(wǎng)中(除此之外還有其它),諸如IEEE 802. 15和藍(lán)牙4. 0 ;用在無線局域網(wǎng) 中,諸如基于IEEE 802. 11的無線協(xié)議;以及用在蜂窩協(xié)議中。
      [0069] 在一些實施例中,I/O子系統(tǒng)115耦合到TPM控制件334以控制對系統(tǒng)持久狀態(tài) 的存取,諸如安全數(shù)據(jù)、加密密鑰、平臺配置信息等等。在一個實施例中,這些系統(tǒng)持久狀態(tài) 被存儲在TPM NVRAM 173中,并經(jīng)由NVRAM控制器332來存取。
      [0070] 在一個實施例中,TPM 334是具有密碼功能性的安全微控制器。TPM 334具有若干 信任相關(guān)能力;例如,用于確保受TPM保護的數(shù)據(jù)僅對于同一 TPM可用的SEAL能力。TPM 334可使用其加密能力保護數(shù)據(jù)和密鑰(例如秘密)。在一個實施例中,TPM 334具有獨特 且秘密的RSA密鑰,其允許它認(rèn)證硬件裝置和平臺。例如,TPM 334可驗證尋求對存儲在計 算機系統(tǒng)300中的數(shù)據(jù)進行存取的系統(tǒng)是預(yù)期系統(tǒng)。TPM 334也能夠報告平臺(例如計算 機系統(tǒng)300)的完整性。這允許外部源(例如網(wǎng)絡(luò)上的服務(wù)器)確定平臺的可信度,但不阻 止用戶存取該平臺。
      [0071] 在一些實施例中,I/O子系統(tǒng)315還包含管理引擎(ME) 335,其是允許系統(tǒng)管理員 監(jiān)視、維護、更新、升級和修理計算機系統(tǒng)300的微處理器。在一個實施例中,系統(tǒng)管理員可 通過如下方式來遠(yuǎn)程配置計算機系統(tǒng)300 :通過ME 335經(jīng)由網(wǎng)絡(luò)336編輯解碼表333的內(nèi) 容。
      [0072] 為了便于說明,本申請的剩余部分有時將NVRAM 142稱為PCMS裝置。PCMS裝置包 含非易失性、具有低功耗并且在位級可修改的多層(垂直堆疊)的PCM單元陣列。因而,術(shù) 語NVRAM裝置和PCMS裝置在以下討論中可互換使用。然而,應(yīng)該認(rèn)識到,如上面所討論的, 對于NVRAM 142也可利用除PCMS之外的不同技術(shù)。
      [0073] 應(yīng)該理解,計算機系統(tǒng)可將NVRAM 142用于系統(tǒng)存儲器、大容量存儲裝置、固件存 儲器和/或其它存儲器和存儲裝置目的(即便那個計算機系統(tǒng)的處理器并不具有處理器 310的所有上述組件,或具有比處理器310多的組件)。
      [0074] 在圖3中示出的具體實施例中,MSC控制器124和NVRAM控制器332位于與處理 器310相同的裸晶或封裝(稱為CPU封裝)上。在其它實施例中,MSC控制器124和/或 NVRAM控制器332可位于裸晶外或CPU封裝外,通過總線(諸如存儲器總線(比如DDR總線 (例如DDR3、DDR4等))、PCI快速總線、桌面管理接口(DMI)總線或任何其它類型總線)耦 合到處理器310或CPU封裝。
      [0075] 示范性PCM總線和封裝配置 圖4A-M例證了各種不同部署,其中處理器、近存儲器和遠(yuǎn)存儲器以不同方式來配置和 封裝。具體地說,在圖4A-M中例證的一系列平臺存儲器配置使新非易失性系統(tǒng)存儲器能夠 使用,諸如PCM技術(shù),或更具體地,PCMS技術(shù)。
      [0076] 雖然在圖4A-N中的多幅圖上使用其中一些相同數(shù)字標(biāo)記,但這不一定意味著由 那些數(shù)字標(biāo)記標(biāo)識的結(jié)構(gòu)總是一樣的。例如,雖然在多幅圖中使用相同數(shù)字來標(biāo)識集成存 儲器控制器(MC)331和CPU 401,但這些組件在不同圖中可以不同方式實現(xiàn)。這些差異中 的一些未被強調(diào),原因在于它們對于理解本發(fā)明的基本原理而言不是相關(guān)的。
      [0077] 雖然下面描述了多種不同系統(tǒng)平臺配置方法,但這些方法落入兩個廣義類別:分 離架構(gòu)和統(tǒng)一架構(gòu)。簡言之,在分離架構(gòu)方案中,存儲器側(cè)高速緩存(MSC)控制器(例如位 于處理器裸晶中或CPU封裝中的單獨裸晶上)攔截所有系統(tǒng)存儲器請求。存在兩個單獨接 口,這兩個單獨接口從離開CPU封裝的那個控制器"流向下游"以耦合到近存儲器和遠(yuǎn)存儲 器。每個接口對于特定類型存儲器都是特制的,并且每個存儲器可在性能和容量方面獨立 縮放。
      [0078] 在統(tǒng)一架構(gòu)方案中,單個存儲器接口離開處理器裸晶或CPU封裝,并且所有存儲 器請求都被發(fā)送到這個接口。MSC控制器連同近存儲器子系統(tǒng)和遠(yuǎn)存儲器子系統(tǒng)被合并在 此單個接口上。此存儲器接口必須被特制成滿足處理器的存儲器性能要,并且必須支持事 務(wù)無序協(xié)議,這至少因為PCMS裝置可能未有序處理讀請求。根據(jù)上面的通用類別,可采用 如下特定平臺配置。
      [0079] 下面描述的實施例包含各種類型的總線/通道。術(shù)語"總線"和"通道"在本文同 義地使用。每個DIMM插槽的存儲器通道數(shù)量將取決于在計算機系統(tǒng)中使用的具體CPU封 裝(其中一些CPU封裝例如支持每個插槽3個存儲器通道)。
      [0080] 附加地,在下面描述的使用DRAM的實施例中,實際上,可使用任何類型DRAM存儲 器通道,作為示例而非限制,其包括DDR通道(例如DDR3、DDR4、DDR5等)。從而,雖然DDR 因為其在工業(yè)上的廣泛認(rèn)可、作為結(jié)果的價格點等是有利的,但本發(fā)明的基本原理不限于 任何具體類型DRAM或易失性存儲器。
      [0081] 圖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)。
      [0082] DIMM 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é)議)。
      [0083] 圖4B例證了使用通過DDR通道440耦合的基于DRAM的DDR DMM 452來形成充當(dāng) MSC的近存儲器的分離架構(gòu)。處理器310托管存儲器控制器331和MSC控制器124。NVRAM 裝置(諸如PCM存儲器裝置)駐留在基于PCM的DMM 453上,DMM 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 DIMM 452(例如DDR4 DIMM)和PCM DIMM 453配置以獲得期望容量和/或性能點。
      [0084] 圖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)存儲器容 量。
      [0085] 圖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 DIMM 452提供多個DDR通道440。
      [0086] 圖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上。
      [0087] 圖4F例證了在使用DDR通道457的DI麗458上托管充當(dāng)MSC的近存儲器和遠(yuǎn) 存儲器NVRAM (諸如PCM)的統(tǒng)一架構(gòu)。此統(tǒng)一架構(gòu)中的近存儲器在每個DIMM 458上包括 DRAM,其充當(dāng)?shù)侥莻€相同DIMM 458上的PCM裝置的存儲器側(cè)高速緩存,所述PCM裝置形成 那個具體DIMM的遠(yuǎn)存儲器。MSC控制器124與近存儲器和遠(yuǎn)存儲器一起駐留在每個DIMM 458上。在此實施例中,在CPU封裝外提供DDR總線457的多個存儲器通道。此實施例的 DDR總線457實現(xiàn)了 DDR電氣連接上的事務(wù)協(xié)議。
      [0088] 圖4G例證了混合分離架構(gòu),由此,MSC控制器124駐留在處理器310上,并且近存 儲器接口和遠(yuǎn)存儲器接口共享相同DDR總線410。此配置使用基于DRAM的DDR DIMM 411a 作為充當(dāng)MSC的近存儲器,其中基于PCM的DMM 411b (即遠(yuǎn)存儲器)使用DDR插槽和NVRAM (諸如PCM存儲器裝置)駐留在DDR總線410的相同存儲器通道上。此實施例的存儲器通 道同時攜帶DDR協(xié)議和事務(wù)協(xié)議以分別尋址近存儲器DIMM 411a和遠(yuǎn)存儲器DIMM 411b。
      [0089] 圖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麗形成。
      [0090] 圖41例證了可被用作對在其DDR存儲器子系統(tǒng)上通過DDR總線471連接到CPU 封裝401的DDR存儲器子系統(tǒng)和DIMM 464的存儲器容量擴展的統(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 形成。
      [0091] 圖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)存儲器坐落在相同DIMM 465上并由NVRAM (諸如PCM裝置)形成。
      [0092] 圖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裝置)形成。
      [0093] 圖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 的單個緩沖器/控制器。
      [0094] 圖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。
      [0095] 在上面描述的其中一些實施例中,諸如在圖4G中例證的實施例中,DRAM DMM 411a和基于PCM的DMM 411b駐留在相同存儲器通道上。因而,使用同一組地址/控制和 數(shù)據(jù)線路將CPU連接到DRAM存儲器和PCM存儲器。為了減少通過CPU網(wǎng)格互連的數(shù)據(jù)業(yè) 務(wù)量,在一個實施例中,具有基于PCM的DIMM的公共存儲器信道上的DDR DIMM配置成充當(dāng) 存儲在基于PCM的DIMM中的數(shù)據(jù)的唯一 MSC。在此類配置中,存儲在基于PCM的DMM中的 遠(yuǎn)存儲器數(shù)據(jù)僅在相同存儲器通道內(nèi)的DDR DIMM近存儲器中高速緩存,由此將存儲器事務(wù) 局限于那個具體存儲器通道。
      [0096] 附加地,為了實現(xiàn)上面的實施例,系統(tǒng)地址空間可在邏輯上在不同存儲器通道之 間細(xì)分。例如,如果存在4個存儲器通道,則可向每個存儲器通道分配1/4的系統(tǒng)地址空間。 如果給每個存儲器通道提供一個基于PCMS的DIMM和一個DDR DIMM,則DDR DIMM可配置成 充當(dāng)那個1/4部分系統(tǒng)地址空間的MSC。
      [0097] 系統(tǒng)存儲器和大容量存儲裝置器件的選擇可取決于在其上采用本發(fā)明實施例的 電子平臺類型。例如,在個人計算機、平板計算機、筆記本計算機、智能電話、移動電話、功能 電話、個人數(shù)字助理(PDA)、便攜式媒體播放器、便攜式游戲裝置、游戲控制臺、數(shù)字?jǐn)z像機、 交換機、中心、路由器、機頂盒、數(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 151B /NVRAM存儲裝置152A與閃存/磁/光大容量存儲 裝置152B之間分配。
      [0098] 例如,在一個實施例中,大功率服務(wù)器配置有近存儲器(例如DRAM)、PCMS裝置和 磁大容量存儲裝置器件(用于大量持久存儲裝置)。在一個實施例中,筆記本計算機配置有 近存儲器和PCMS裝置,其扮演遠(yuǎn)存儲器和大容量存儲裝置器件兩者的角色(即,其在邏輯 上被劃分成扮演如圖3中所示的這些角色)。家庭或辦公室臺式計算機的一個實施例類似 筆記本計算機而配置,但也可包含一個或多個磁存儲裝置器件以提供大量持久存儲裝置能 力。
      [0099] 平板計算機或蜂窩電話裝置的一個實施例配置有PCMS存儲器,但潛在地沒有近 存儲器并且沒有附加大容量存儲裝置(以便節(jié)省成本/功率)。然而,平板計算機/電話可 配置有可拆卸大容量存儲裝置器件,諸如閃存或PCMS存儲棒。
      [0100] 各種其它類型裝置可如上所述配置。例如,便攜式媒體播放器和/或個人數(shù)字助 理(PDA)可按類似于上面描述的平板計算機/電話的方式配置,游戲控制臺可按類似于臺 式計算機或膝上型計算機的方式配置。可類似配置的其它裝置包含數(shù)字?jǐn)z像機、路由器、機 頂盒、數(shù)字視頻記錄器、電視和汽車。
      [0101] MSC架構(gòu)的實施例 在本發(fā)明的一個實施例中,系統(tǒng)存儲器中的大多數(shù)DRAM用PCM替換。如之前討論的, PCM以相對DRAM顯著低的成本提供了在系統(tǒng)容量上的顯著改進,并且是非易失性的。然而, 某些PCM特性(諸如非對稱讀對寫性能、寫循環(huán)持續(xù)時間極限以及其非易失性性質(zhì))使直 接替換DRAM而不招致重大軟件改變對其具有挑戰(zhàn)性。在下面描述的本發(fā)明的實施例提供 了集成PCM的軟件透明方式,同時還通過軟件增強能夠?qū)崿F(xiàn)較新的用途。這些實施例促進 了存儲器子系統(tǒng)架構(gòu)中的成功轉(zhuǎn)變,并提供了使用單個PCM池合并存儲器和存儲裝置的方 式,從而減少對于平臺中單獨非易失性存儲裝置層的需要。
      [0102] 在圖5A中例證的具體實施例包含各具有用于生成存儲器請求的內(nèi)部存儲器管理 單元(MMU) 502的一個或多個處理器核501以及用于根據(jù)規(guī)定的高速緩存管理策略來存儲 程序代碼行和數(shù)據(jù)的一個或多個內(nèi)部CPU高速緩存503。如之前所提到的,高速緩存管理 策略可包括排它型高速緩存管理策略(其中存在于層級中一個具體高速緩存級中的任何 線不存在于任何其它高速緩存級中)或包含型高速緩存管理策略(其中重復(fù)的高速緩存線 被存儲在高速緩存層級的不同級)。本領(lǐng)域技術(shù)人員很好理解,對于管理內(nèi)部高速緩存503 可采用特定的高速緩存管理策略,并且因而,在此將不詳細(xì)描述了。本發(fā)明的基本原理不限 于任何具體高速緩存管理策略。
      [0103] 圖5A中還例證了歸屬代理505,歸屬代理505通過生成用于存儲器請求的存儲器 通道地址(MCA)來提供對MSC 510的存取。歸屬代理505負(fù)責(zé)管理規(guī)定存儲器地址空間, 并解決指向那個存儲器空間的存儲器存取沖突。從而,如果任何核需要存取給定地址空間, 則它將向那個歸屬代理505發(fā)送請求,該歸屬代理然后將向具體MMU 502發(fā)送該請求。在 一個實施例中,每個MMU 502分配一個歸屬代理505 ;然而,在一些實施例中,單個歸屬代理 505可服務(wù)于多于一個的存儲器管理單元502。
      [0104] 如圖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)隨機存取存 儲器(DRAM)。在此類情況下,電氣信號可包含行地址選通脈沖(RAS)信號和列地址選通脈 沖(CAS)信號。然而,應(yīng)該指出,本發(fā)明的基本原理不限于將DRAM用于近存儲器。
      [0105] 確保軟件透明存儲器應(yīng)用的另一組件是優(yōu)化的PCM遠(yuǎn)存儲器控制器521,其管理 PCM遠(yuǎn)存儲器530特性,同時仍提供所需的性能。在一個實施例中,PCM控制器521包含間 接尋址表520,其將由高速緩存控制單元515生成的MCA變換成用于直接尋址PCM遠(yuǎn)存儲 器530的TOA。這些變換可以通常是5KB的"塊"粒度發(fā)生。在一個實施例中,當(dāng)遠(yuǎn)存儲器 控制器521遍及PCM裝置地址空間不斷移動PCM塊以確保沒有由于對任何特定塊的高頻寫 而引起的耗盡熱點時需要該變換。如之前所描述的,此類技術(shù)在本文有時被稱為"耗損均勻 化"。
      [0106] 從而,MSC 510由高速緩存控制單元512管理,高速緩存控制單元512允許MSC 510吸收、聯(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)同步加載/存儲接口。
      [0107] 現(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將該地址變換成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ù)替換。
      [0108] 在一個實施例中,存儲器寫操作也首先去到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。
      [0109] 在一個實施例中,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。
      [0110] 圖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信號)。
      [0111] 此實施例還包含負(fù)責(zé)數(shù)據(jù)路由選擇和處理的一組邏輯單元,其包含用于存儲取自 近存儲器或存儲到近存儲器的數(shù)據(jù)的一組數(shù)據(jù)緩沖器546。在一個實施例中,還包含預(yù)取數(shù) 據(jù)高速緩存547,其用于存儲從近存儲器和/或遠(yuǎn)存儲器預(yù)取的數(shù)據(jù)。然而,預(yù)取數(shù)據(jù)高速 緩存547是可選的,并且對于遵從本發(fā)明基本原理不是必要的。
      [0112] 糾錯碼(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信令)。
      [0113] 圖5B中還例證了用于將MSC 510耦合到遠(yuǎn)存儲器的遠(yuǎn)存儲器控制接口 548。具體 地說,遠(yuǎn)存儲器控制接口 548生成尋址遠(yuǎn)存儲器所需的MCA,并且在數(shù)據(jù)緩沖器546與遠(yuǎn)存 儲器之間傳遞數(shù)據(jù)。
      [0114] 如所提到的,在一個實施例中采用的近存儲器518與在當(dāng)前處理器/系統(tǒng)架構(gòu)中 發(fā)現(xiàn)的常規(guī)高速緩存相比是非常大的。因而,保存系統(tǒng)存儲器地址到近存儲器地址的變換 的標(biāo)簽高速緩存511可能也非常大。存儲和查找MSC標(biāo)簽的成本可能是構(gòu)建大高速緩存的 顯著阻礙。因而,在本發(fā)明的一個實施例中,這個問題使用創(chuàng)新方案解決了,該創(chuàng)新方案將 高速緩存標(biāo)簽存儲在位于MSC中的存儲裝置內(nèi)進行ECC保護,由此基本上移除了對于標(biāo)簽 的存儲裝置成本。
      [0115] 在圖5C中一般性地例證了這個實施例,其示出了用于存儲/管理高速緩存標(biāo)簽、 存儲ECC數(shù)據(jù)并執(zhí)行ECC操作的集成標(biāo)簽高速緩存和ECC單元554。如所例證的,當(dāng)執(zhí)行標(biāo) 簽檢查操作(例如以確定具體數(shù)據(jù)塊是否被存儲在近存儲器高速緩存518內(nèi))時,在請求 時將所存儲的標(biāo)簽提供給標(biāo)簽檢查/命令調(diào)度器550。
      [0116] 圖?例證了數(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中。
      [0117] 在一個實施例中,3字節(jié)(24位)標(biāo)簽522與在圖?中例證的位指配一起使 用。特別是,位〇〇至16是提供高速緩存線的高地址位的地址位。對于具有56位(例如 SPA[55:00])的系統(tǒng)地址,位00至16映射到系統(tǒng)地址的位55-29(從而允許512 MB的最 小高速緩存大?。7祷氐?字節(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=無效)。
      [0118] 利用上面所描述的直接映射高速緩存架構(gòu)(其允許直接從系統(tǒng)存儲器提取近存 儲器地址),降低或消除了在可讀取MSC 510之前查找標(biāo)簽存儲設(shè)備的等待時間成本,由此 顯著改進了性能。而且,檢查高速緩存標(biāo)簽以判定MSC 510是否具有所需數(shù)據(jù)的時間也被 消除了,這是因為它與從MSC讀取的數(shù)據(jù)的ECC檢查并行進行。
      [0119] 在某些條件下,將標(biāo)簽與數(shù)據(jù)一起存儲可產(chǎn)生寫的問題。寫首先讀數(shù)據(jù),以便確保 它對于某一其它地址不蓋寫數(shù)據(jù)。在每次寫之前的此類讀變得成本很高。本發(fā)明的一個實 施例采用保存最近存取的近存儲器地址(NMA)的標(biāo)簽的臟線標(biāo)簽高速緩存。由于許多寫針 對最近存取的地址,因此合理小的標(biāo)簽高速緩存可得到高效的命中率,以在寫之前過濾大 部分讀。
      [0120] 圖5E中例證了與PCM DMM 519的一個實施例關(guān)聯(lián)的附加細(xì)節(jié),其包含PCM遠(yuǎn)存儲 器控制器521和一組PCM遠(yuǎn)存儲器模塊530a-i。在一個實施例中,PCM遠(yuǎn)存儲器530a-i的單 個池在系統(tǒng)存儲器用途與存儲裝置用途之間動態(tài)共享。在此實施例中,整個PCM池530a-i 可被細(xì)分成4KB大小的"塊"。PCM描述符表(PDT) 565標(biāo)識每個PCM塊作為存儲器或者存 儲裝置的使用。例如,每行PDT可表示具體塊,其中具體列標(biāo)識每個塊的使用(例如1=存 儲器;〇=存儲裝置)。在此實施例中,初始系統(tǒng)配置可在存儲裝置使用與存儲器使用之間劃 分PCM 530a-i內(nèi)的PCM塊(例如通過對TOT 565編程)。在一個實施例中,使用相同表來 排除壞的塊,并提供用于耗損均勻化操作的備用塊。此外,PDT 565還可包含每個PCMS塊 到由軟件使用的"邏輯"塊地址的映射。在系統(tǒng)存儲器的情況下,邏輯塊地址與MCA或SPA 相同。不管何時由于耗損均勻化而移動PCMS塊,更新間接尋址表(AIT) 563都需要這種關(guān) 聯(lián)。當(dāng)這發(fā)生時,由軟件使用的邏輯塊地址必須被映射到不同PCMS裝置地址(PDA)。在一 個實施例中,此映射被存儲在AIT中,并且在每次耗損均勻化移動時更新。
      [0121] 如所例證的,PCM控制器521包含系統(tǒng)物理地址(SPA)到PCM映射器556,其響應(yīng)于 耗損管理單元555和間接尋址單元563而操作,以將SPA映射到PCM塊。在一個實施例中, 耗損管理邏輯555實現(xiàn)耗損均勻化算法以考慮如下事實:在太多次寫和/或擦除存取之后 PCM 530a-530i的存儲裝置單元開始耗盡。例如通過迫使具有低循環(huán)計數(shù)的數(shù)據(jù)塊偶爾移 動,并由此允許高循環(huán)數(shù)據(jù)塊被放在曾存儲低循環(huán)數(shù)據(jù)塊的存儲單元中,耗損均勻化跨PCM 裝置的存儲單元擴散寫和擦除。通常,大多數(shù)塊不循環(huán),但高循環(huán)計數(shù)塊最可能失敗,并且 耗損均勻化將高循環(huán)計數(shù)塊的地址與低循環(huán)計數(shù)塊的地址互換。耗損管理邏輯555可使用 一個或多個計數(shù)器和寄存器來跟蹤循環(huán)計數(shù)(例如每當(dāng)檢測到循環(huán)時,計數(shù)器可遞增1并 且結(jié)果可被存儲在該組寄存器中)。
      [0122] 在一個實施例中,間接尋址邏輯563包含間接尋址表(AIT),其含有寫操作應(yīng)該被 指向的PCM塊的指示。AIT可用于自動在存儲器用途與存儲裝置用途之間移動塊。從軟件 角度看,對所有塊的存取使用傳統(tǒng)存儲器加載/存儲語義(即耗損均勻化和間接尋址操作 對軟件而言透明地發(fā)生)。在一個實施例中,AIT用于將由軟件生成的SPA變換成PDA。當(dāng) 需要均勻地耗損PCMS裝置時需要這種變換,數(shù)據(jù)將需要在PDA空間中到處移動以避免任何 熱點。當(dāng)此類移動發(fā)生時,SPA與PDA之間的關(guān)系將改變,并且AIT將被更新以反映這種新 變換。
      [0123] 在SPA到PCM的映射之后,調(diào)度器單元557調(diào)度對PCM裝置530a_l的基礎(chǔ)PCM操 作(例如讀和/或?qū)懀?,并且PCM協(xié)議引擎558生成執(zhí)行讀/寫操作所需的電氣信令。ECC 單元562執(zhí)行檢錯和糾錯操作,并且數(shù)據(jù)緩沖器561暫時緩沖從PCM裝置530a-l讀的數(shù)據(jù) 或向PCM裝置530a-l寫的數(shù)據(jù)。持久寫緩沖器559用于保存甚至在意想不到電源故障(例 如它使用非易失性存儲裝置實現(xiàn))的情況下也保證被寫回PCMS的數(shù)據(jù)。包含刷新支持邏 輯560以周期性的和/或根據(jù)規(guī)定的數(shù)據(jù)刷新算法(例如在持久寫緩沖器達(dá)到規(guī)定閾限之 后)向PCMS刷新持久寫緩沖器。
      [0124] 在一個實施例中,MSC 510自動將存儲裝置存取直接路由到PCM遠(yuǎn)存儲器控制器 521,并將存儲器存取路由到MSC高速緩存控制單元512。到達(dá)PCM遠(yuǎn)存儲器控制器521的 存儲裝置存取被當(dāng)作正規(guī)讀和寫,并且本文描述的間接尋址和耗損均勻化機制照常應(yīng)用。 在本發(fā)明的一個實施例中采用附加優(yōu)化,其在數(shù)據(jù)需要在存儲裝置與存儲器之間移動時能 夠?qū)崿F(xiàn)。由于使用公共PCM池530a-l,因此可通過簡單地改變變換表(例如AIT)中的指針 來取消或推遲數(shù)據(jù)移動。例如,當(dāng)數(shù)據(jù)從存儲裝置傳遞到存儲器時,標(biāo)識具體物理PCM存儲 裝置位置中數(shù)據(jù)的指針可被更新成指示相同物理PCM存儲裝置位置現(xiàn)在是系統(tǒng)存儲器中 的存儲器位置。在一個實施例中,這通過硬件以軟件透明的方式進行,以提供性能效益和功 率效益。
      [0125] 除了軟件透明的操作模式之外,MSC控制器512的一個實施例還提供了由MSC范 圍寄存器(RR) 545所指示的備選操作模式。這些操作模式可包含但不限于如下項: 1)對于存儲裝置類應(yīng)用對PCM存儲器的直接存取。此類用途將還要求MSC控制器512 確保提交給PCM 519的寫實際上被交付給持久狀態(tài)。
      [0126] 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的高速緩存, 如本文描述的)。
      [0127] 如之前所討論的,MSC架構(gòu)定義成使得多個不同系統(tǒng)劃分方法是有可能的。這些 方法落在兩個廣義桶(bucket)中: (1)分離架構(gòu):在此方案中,MSC控制器512位于CPU中,并且攔截所有系統(tǒng)存儲器請 求。存在兩個單獨的接口,它們從MSC離開CPU以連接到近存儲器(例如DRAM)和遠(yuǎn)存儲 器(例如PCM)。每個接口對于特定類型存儲器都是特制的,并且每個存儲器可在性能和容 量方面獨立縮放。
      [0128] (2)統(tǒng)一架構(gòu):在此方案中,單個存儲器接口離開CPU,并且所有存儲器請求都被 發(fā)送到這個接口。MSC控制器512連同近存儲器(例如DRAM)和遠(yuǎn)存儲器(例如PCM)子系 統(tǒng)在CPU外部被合并在此單個接口上。在一個實施例中,此存儲器接口被特制成滿足CPU 的存儲器性能要求,并支持事務(wù)的無序協(xié)議。近存儲器要求和遠(yuǎn)存儲器要求在這些接口的 每個接口上以"統(tǒng)一"方式來滿足。
      [0129] 在上面桶的范圍內(nèi),多個不同分份選項是可行的,下面描述了其中一些。
      [0130] (1)分離示例: 近存儲器:DDR5 DIMM 近存儲器接口 :一個或多個DDR5通道 遠(yuǎn)存儲器:PCI快速(PCIe)卡上的PCM控制器/裝置 遠(yuǎn)存儲器接口 :第三代xl6 PCIe ⑵統(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ù)器上運行,因此本發(fā)明的一個實 施例允許同時啟用多用途模式。附加地,一個實施例提供了控制為這些用途模式中的每個 模式分配近存儲器的能力。
      [0131] 在一個實施例中,MSC控制器152提供用于使用近存儲器的如下模式。如之前所 提到的,在一個實施例中,當(dāng)前操作模式可由存儲在MSC范圍寄存器(RR) 545中的操作代碼 規(guī)定。
      [0132] (1)寫回高諫緩存樽式:在此模式中,所有或部分近存儲器518被用作用于PCM存 儲器530的高速緩存。雖然在寫回模式,但每一個寫操作最初都指向近存儲器518 (假定在 高速緩存中存在該寫所指向的高速緩存線)。僅當(dāng)近存儲器518內(nèi)的高速緩存線要由另一 高速緩存線替換時才執(zhí)行對應(yīng)寫操作以更新PCM遠(yuǎn)存儲器530 (與下面描述的每個寫操作 被立即傳播到遠(yuǎn)存儲器530的寫直達(dá)模式形成對照)。
      [0133] 在一個實施例中,讀操作將首先到達(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)存儲器地址變換成PCM物 理裝置地址(PDA),并將讀操作指向遠(yuǎn)存儲器530的這個區(qū)域。如之前所提到的,此變換可 利用間接尋址表(AIT) 563, PCM控制器521使用AIT 563在系統(tǒng)存儲器地址與PCM PDA之 間進行變換。在一個實施例中,AIT被更新為耗損均勻化算法的一部分,耗損均勻化算法被 實現(xiàn)以分布存儲器存取操作并由此降低PCM FM 530上的耗損。
      [0134] 在從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ù)替換。
      [0135] 在一個實施例中,存儲器寫操作也首先去到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。
      [0136] (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的匪內(nèi)高速緩存。
      [0137] (3)沂存儲器讀-高諫緩存寫旁路樽式:這是上面模式的變型,其中允許從PCM 519讀高速緩存持久數(shù)據(jù)(即,持久數(shù)據(jù)在MSC 510中高速緩存以便進行只讀操作)。當(dāng)大 部分持久數(shù)據(jù)是"只讀"的并且應(yīng)用用途是高速緩存友好的時,這是有用的。
      [0138] (4)沂存儲器讀-高諫緩存寫官汰樽式:這是前一模式的變型,其中除了讀高速緩 存之外,還高速緩存寫命中。每次對MSC近存儲器518的寫都引起對PCM遠(yuǎn)存儲器530的 寫。從而,由于高速緩存的寫直達(dá)性質(zhì),仍保證了高速緩存線持久性。
      [0139] (5)近存儲器盲接存取樽式:在此模式,所有或部分近存儲器對軟件而言直接可 見,并形成系統(tǒng)存儲器地址空間的一部分。此類存儲器可完全在軟件控制下。從PCM存儲 器519到近存儲器的這個區(qū)域的任何數(shù)據(jù)移動都需要明確軟件拷貝。此類方案可創(chuàng)建用于 軟件的非均勻存儲器地址(NUMA)存儲區(qū),其中它從近存儲器518得到相對于PCM遠(yuǎn)存儲器 530高得多的性能。此類用途可用于需要對某些數(shù)據(jù)結(jié)構(gòu)非??焖俅嫒〉哪承└咝阅苡嬎?(HPC)和圖形應(yīng)用。此近存儲器直接存取模式相當(dāng)于對近存儲器中的某些高速緩存線"固 定"。此類固定可在較大、多路組關(guān)聯(lián)高速緩存中有效地進行。
      [0140] 表A下面概括了上面描述的每一種操作模式。
      [0141] 表 A

      【權(quán)利要求】
      1. 一種在計算機系統(tǒng)內(nèi)利用存儲器刷新提示的方法,包括: 從處理器高速緩存刷新數(shù)據(jù); 確定對于分配給相變存儲器("PCM")存儲器裝置的規(guī)定的系統(tǒng)地址范圍是否啟用存 儲器刷新提示; 如果對于所述規(guī)定的系統(tǒng)地址范圍啟用所述存儲器刷新提示,則生成所述PCM存儲器 裝置的PCM存儲器控制器的存儲器刷新提示;以及 使用所述存儲器刷新提示確定是否將刷新的數(shù)據(jù)保存到所述PCM存儲器裝置。
      2. 如權(quán)利要求1所述的方法,進一步包括: 根據(jù)所述存儲器刷新提示將所述刷新的數(shù)據(jù)保存到所述PCM存儲器裝置。
      3. 如權(quán)利要求1所述的方法,其中所述PCM存儲器裝置包括相變存儲器和開關(guān) ("PCMS")存儲器裝置。
      4. 如權(quán)利要求1所述的方法,其中如果對于所述規(guī)定的地址范圍不啟用刷新提示,則 將所述刷新的數(shù)據(jù)保存到所述PCM存儲器裝置。
      5. 如權(quán)利要求1所述的方法,其中確定對于規(guī)定的系統(tǒng)地址范圍是否啟用存儲器刷 新提示的操作包括:讀存儲在存儲器范圍寄存器中的啟用/禁用位,所述啟用/禁用位如果 啟用存儲器刷新提示則具有第一值而如果禁用存儲器刷新提示則具有第二值。
      6. 如權(quán)利要求1所述的方法,進一步包括: 使用間接尋址表(AIT)標(biāo)識對應(yīng)于所述規(guī)定的系統(tǒng)地址范圍的特定PCM存儲塊。
      7. 如權(quán)利要求1所述的方法,進一步包括: 規(guī)定用于所述系統(tǒng)地址范圍的存儲器通道。
      8. 一種系統(tǒng),包括: 處理器,具有從其刷新數(shù)據(jù)的高速緩存,所述數(shù)據(jù)與具體系統(tǒng)地址范圍關(guān)聯(lián);以及 PCM存儲器控制器,用于管理對存儲在PCM存儲器裝置中對應(yīng)于所述具體系統(tǒng)地址范 圍的數(shù)據(jù)的存??; 所述處理器確定對于所述規(guī)定的系統(tǒng)地址范圍是否啟用存儲器刷新提示,其中如果對 于所述規(guī)定的系統(tǒng)地址范圍啟用存儲器刷新提示,則所述處理器向所述PCM存儲器裝置的 PCM存儲器控制器發(fā)送存儲器刷新提示,并且其中所述PCM存儲器控制器使用所述存儲器 刷新提示確定是否將所述刷新的數(shù)據(jù)保存到所述PCM存儲器裝置。
      9. 如權(quán)利要求7所述的系統(tǒng),其中所述PCM存儲器裝置是PCMS存儲器裝置。
      10. 如權(quán)利要求7所述的系統(tǒng),進一步包括: 所述PCMS存儲器控制器內(nèi)的讀和寫緩沖器,用于緩沖根據(jù)所述存儲器刷新提示存儲 的數(shù)據(jù)。
      11. 如權(quán)利要求8所述的系統(tǒng),其中如果對于所述規(guī)定的地址范圍不啟用刷新提示, 則所述PCMS存儲器控制器將所述刷新的數(shù)據(jù)保存到所述PCM存儲器裝置。
      12. 如權(quán)利要求8所述的系統(tǒng),包括: 存儲器范圍寄存器,包含啟用/禁用位以指示對于規(guī)定的系統(tǒng)地址范圍是否啟用存儲 器刷新提示,所述啟用/禁用位如果啟用存儲器刷新提示則具有第一值而如果禁用存儲器 刷新提示則具有第二值。
      13. 如權(quán)利要求12所述的系統(tǒng),進一步包括: 間接尋址表(AIT),以標(biāo)識對應(yīng)于所述規(guī)定的系統(tǒng)地址范圍的特定PCM存儲塊。
      14. 如權(quán)利要求13所述的系統(tǒng),進一步包括: 與所述系統(tǒng)地址范圍關(guān)聯(lián)的DIMM存儲器通道。
      15. -種系統(tǒng),包括: 處理器,具有從其刷新數(shù)據(jù)的高速緩存,所述數(shù)據(jù)與具體系統(tǒng)地址范圍關(guān)聯(lián);以及 PCM存儲器控制器,用于管理對存儲在PCM存儲器裝置中對應(yīng)于所述具體系統(tǒng)地址范 圍的數(shù)據(jù)的存??; 所述處理器向所述PCM存儲器裝置的PCM存儲器控制器發(fā)送存儲器刷新提示,并且其 中所述PCM存儲器控制器使用所述存儲器刷新提示確定是否基于由MFLUSH指令規(guī)定的地 址范圍或頁面將刷新的數(shù)據(jù)保存到所述PCM存儲器裝置。
      16. 如權(quán)利要求15所述的系統(tǒng),其中所述PCM存儲器裝置是PCMS存儲器裝置。
      17. 如權(quán)利要求15所述的系統(tǒng),進一步包括: 所述PCMS存儲器控制器內(nèi)的讀和寫緩沖器,用于緩沖根據(jù)所述存儲器刷新提示存儲 的數(shù)據(jù)。
      18. 如權(quán)利要求15所述的系統(tǒng),進一步包括: 與所述系統(tǒng)地址范圍關(guān)聯(lián)的DIMM存儲器通道。
      19. 如權(quán)利要求15所述的系統(tǒng),其中FENCE指令使所述規(guī)定的存儲器地址范圍或頁面 從高速緩存刷新,并向所述PCMS存儲器控制器發(fā)送存儲器刷新提示。
      20. -種在計算機系統(tǒng)內(nèi)利用存儲器刷新提示的方法,包括: 向持久存儲器發(fā)出一個或多個寫; 與所述一個或多個寫一起發(fā)出存儲器防護指令; 確定寫是否命中由存儲器控制器范圍寄存器覆蓋的地址; 如果是,則向PCM控制器發(fā)出寫,并等待確認(rèn); 在接收到所述確認(rèn)時完成所述存儲器防護指令。
      21. 如權(quán)利要求20所述的方法,進一步包括: 如果所述地址未由范圍寄存器覆蓋,則繼續(xù)正常執(zhí)行模式。
      22. 如權(quán)利要求20所述的方法,其中所述PCM控制器是PCMS控制器。
      23. -種系統(tǒng),包括: 處理器構(gòu)件,具有從其刷新數(shù)據(jù)的高速緩存,所述數(shù)據(jù)與具體系統(tǒng)地址范圍關(guān)聯(lián);以及 PCM存儲器控制器構(gòu)件,用于管理對存儲在PCM存儲器裝置構(gòu)件中對應(yīng)于所述具體系 統(tǒng)地址范圍的數(shù)據(jù)的存?。? 所述處理器構(gòu)件確定對于所述規(guī)定的系統(tǒng)地址范圍是否啟用存儲器刷新提示,其中如 果對于所述規(guī)定的系統(tǒng)地址范圍啟用存儲器刷新提示,則所述處理器構(gòu)件向所述PCM存儲 器裝置構(gòu)件的PCM存儲器控制器發(fā)送存儲器刷新提示,并且其中所述PCM存儲器控制器構(gòu) 件使用所述存儲器刷新提示確定是否將所述刷新的數(shù)據(jù)保存到所述PCM存儲器裝置。
      24. 如權(quán)利要求23所述的系統(tǒng),其中所述PCM存儲器裝置構(gòu)件是PCMS存儲器裝置。
      25. 如權(quán)利要求23所述的系統(tǒng),進一步包括: 所述PCMS存儲器控制器構(gòu)件內(nèi)的讀和寫緩沖器構(gòu)件,用于緩沖要根據(jù)所述存儲器刷 新提示存儲的數(shù)據(jù)。
      26. 如權(quán)利要求25所述的系統(tǒng),其中如果對于所述規(guī)定的地址范圍不啟用刷新提示, 則所述PCMS存儲器控制器構(gòu)件將所述刷新的數(shù)據(jù)保存到所述PCM存儲器裝置構(gòu)件。
      27. 如權(quán)利要求26所述的系統(tǒng),包括: 存儲器范圍寄存器構(gòu)件,包含啟用/禁用位以指示對于規(guī)定的系統(tǒng)地址范圍是否啟用 存儲器刷新提示,所述啟用/禁用位如果啟用存儲器刷新提示則具有第一值而如果禁用存 儲器刷新提示則具有第二值。
      28. 如權(quán)利要求27所述的系統(tǒng),進一步包括: 間接尋址表(AIT)構(gòu)件,以標(biāo)識對應(yīng)于所述規(guī)定的系統(tǒng)地址范圍的特定PCM存儲塊。
      29. 如權(quán)利要求28所述的系統(tǒng),進一步包括: 與所述系統(tǒng)地址范圍關(guān)聯(lián)的DIMM存儲器通道構(gòu)件。
      【文檔編號】G11C13/02GK104115129SQ201180076401
      【公開日】2014年10月22日 申請日期:2011年12月21日 優(yōu)先權(quán)日:2011年12月21日
      【發(fā)明者】M.K.納基穆圖, M.庫馬 申請人:英特爾公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1