作為隨機(jī)存取存儲器的非易失性半導(dǎo)體存儲裝置的系統(tǒng)存取的薄變換的制作方法
【專利摘要】描述了一種具有含有點對點鏈路接口和非易失性存儲器對接電路的控制器的半導(dǎo)體芯片。點對點鏈路接口從系統(tǒng)接收標(biāo)識具體非易失性存儲器的命令。非易失性存儲器對接電路接收該命令并將命令轉(zhuǎn)發(fā)到非易失性隨機(jī)存取存儲器。
【專利說明】作為隨機(jī)存取存儲器的非易失性半導(dǎo)體存儲裝置的系統(tǒng)存 取的薄變換
【技術(shù)領(lǐng)域】
[0001] 此發(fā)明一般涉及計算機(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)。基于DRAM的存儲器甚至當(dāng)沒有存儲器讀或者寫發(fā)生時也消耗功率,這是因為 它必須不斷給內(nèi)部電容器再充電?;贒RAM的存儲器是易失性的,這意味著,一旦移除電 源,存儲在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ī)、移 動電話、智能電話、功能電話等)可包含可拆卸大容量存儲裝置器件(例如嵌入式多媒體卡 (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代碼")的大小施加了約束。
[0005] 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)行寫 (將各個位改變成1或0)而無需首先擦除單元的整個塊,并且來自寫的降級更慢(PCM裝置 可存活近似1億個寫循環(huán);PCM降級由于編程期間的熱膨脹、金屬(和其它材料)遷移以及 其它機(jī)制引起)。
【專利附圖】
【附圖說明】
[0007] 如下描述和附圖用于例證本發(fā)明的實施例。在附圖中: 圖1例證了根據(jù)本發(fā)明一個實施例的高速緩存和系統(tǒng)存儲器布置; 圖2例證了在本發(fā)明一個實施例中采用的存儲器和存儲裝置層級; 圖3例證了在其上可實現(xiàn)本發(fā)明實施例的計算機(jī)系統(tǒng); 圖4(現(xiàn)有技術(shù))示出了傳統(tǒng)SSD ; 圖5例證了具有能夠由系統(tǒng)作為隨機(jī)存取存儲器存取的非易失性半導(dǎo)體存儲裝置的 裝置; 圖6a例證了插入到背板中的卡的第一布置; 圖6b例證了插入到背板中的卡的第二布置; 圖7例證了能夠由圖5、圖6a和圖6b的控制器執(zhí)行的方法; 圖8例證了圖5、圖6a和圖6b的控制器的實施例。
【具體實施方式】
[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é)同操作 或交互作用。"連接"用于指示在彼此耦合的兩個或更多元件之間建立通信。
[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)、存儲裝置類存儲器(SCM)、通用存 儲器、Ge2Sb2Te5、可編程金屬化單元(PMC)、電阻性存儲器(RRAM)、RESET (非晶體)單元、 SET(晶體)單元、PCME、奧氏存儲器、鐵電存儲器(也稱為聚合物存儲器和聚(N-乙烯基 咔唑))、鐵磁存儲器(也稱為自旋電子器件、SPRAM(自旋傳遞扭矩RAM)、STRAM(自旋遂穿 RAM)、磁阻存儲器、磁存儲器、磁隨機(jī)存取存儲器(MRAM))以及半導(dǎo)體-氧化物-氮化物-氧 化物-半導(dǎo)體(S0N0S,也稱為介電存儲器)。
[0016] NVRAM具有如下特性: (1) 即便移除電源它也保持其內(nèi)容,這類似于在固態(tài)盤(SSD)中使用的閃存存儲器,并 且不同于易失性的SRAM和DRAM ; (2) 比易失性存儲器(諸如SRAM和DRAM)更低的功耗; (3) 類似于SRAM和DRAM的隨機(jī)存取(也稱為可隨機(jī)尋址); (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é)議(本 機(jī)事務(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) 在故障之前的大量寫(比在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)存儲器級的存儲裝置單元 在若干次寫存取之后開始耗盡,特別是在諸如在系統(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中每一個處理 器核的〇級和1級內(nèi)部處理器高速緩存l〇la-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)接卡/小背板或計算機(jī)主板上)。近存儲器121可使用單個或多個高帶寬鏈路(諸如DDR 或其它事務(wù)的高帶寬鏈路(如下面所詳細(xì)描述的))與處理器100通信耦合。
[0025] 示范性系統(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ì)描述。
[0026] 圖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í)行高速緩存操作。
[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和/或BIOS NVRAM 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)存儲器的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的范圍。
[0032] 此外,當(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á)模式形成對照)。
[0033] (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)高速緩 存。
[0034] (3)沂存儲器讀-高諫緩存寫旁路樽式:這是上面模式的變型,其中允許從NVRAM FM 151B讀高速緩存持久數(shù)據(jù)(即,持久數(shù)據(jù)在作為用于遠(yuǎn)存儲器的高速緩存的近存儲器 150B中高速緩存以便進(jìn)行只讀操作)。當(dāng)大部分持久數(shù)據(jù)是"只讀"的并且應(yīng)用用途是高 速緩存友好的時,這是有用的。
[0035] (4)沂存儲器讀-高諫緩存寫官汰樽式:這是近存儲器讀-高速緩存寫旁路模式 的變型,其中除了讀高速緩存之外,還高速緩存寫命中。對作為用于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)行非??焖俅嫒〉哪承└咝阅苡嬎悖℉PC)和圖形應(yīng)用。
[0037] 在備選實施例中,近存儲器直接存取模式通過對近存儲器中的某些高速緩存線 (即具有也同時存儲在NVRAM 142中的數(shù)據(jù)的高速緩存線)"固定(pinning)"來實現(xiàn)。此 類固定可有效地在較大、多路且組關(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可通過I/O子系統(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 ;BI0S 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。在一個實施例中,NVRAM 142包括由計算機(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和TPM NVRAM 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)存儲器地址變換成NVRAM物理裝 置地址(PDA),并將讀操作指向遠(yuǎn)存儲器151B的這個區(qū)域。在一個實施例中,解碼表333包 含間接尋址表(AIT)組件,NVRAM控制器332使用所述AIT組件在系統(tǒng)存儲器地址與NVRAM PDA之間進(jì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高速緩存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ù)替換。
[0043] 如所提到的,在一個實施例中,存儲器寫操作也首先去到MSC控制器124, MSC控制 器124將它寫入充當(dāng)FM高速緩存150B的MSC近存儲器中。在寫回高速緩存模式中,當(dāng)接收 到寫操作時,可不將數(shù)據(jù)直接發(fā)送到階狀1?115川。例如,僅當(dāng)充當(dāng)?11高速緩存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。
[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的近存儲器(NM)的存?。灰约?) NVRAM控制器332,以控 制對NVRAM 142的存取。盡管在圖3中例證為單獨單元,但MSC控制器124和NVRAM控制 器332在邏輯上可形成MC 331的一部分。
[0046] 在例證的實施例中,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ù)于該請求。
[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ù)(諸如閃存)的粒度級,該技術(shù)僅能在 "塊"級(對于N0R閃存的大小最低限度是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)MC 331接收到存取請求時,該請求的目標(biāo)地址被解碼以揭示該請求是指向存儲器、NVRAM大容 量存儲裝置還是I/O。如果它是存儲器請求,則頂C 331和/或MSC控制器124根據(jù)目標(biāo) 地址進(jìn)一步確定該請求是指向作為用于FM的高速緩存150B的匪還是指向FM 151B。對 于FM 151B存取,該請求被轉(zhuǎn)發(fā)到NVRAM控制器332。如果此請求被指向I/O (例如非存儲 裝置I/O裝置和存儲裝置I/O裝置),則IMC 331將該請求傳遞到I/O子系統(tǒng)115。I/O子 系統(tǒng)115進(jìn)一步對該地址進(jìn)行解碼以確定該地址是針對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í)行 安全存取。
[0049] 在一個實施例中,轉(zhuǎn)發(fā)到NVRAM控制器332的每個請求兼有指示存取類型的屬性 (也稱為"事務(wù)類型")。在一個實施例中,NVRAM控制器332可模擬所請求存取類型的存取 協(xié)議,使得平臺的其余部分保持不了解由NVRAM 142在存儲器和存儲裝置層級中扮演的多 個角色。在備選實施例中,NVRAM控制器332可執(zhí)行對NVRAM 142的存儲器存取,而不管它 是哪種事務(wù)類型。要理解,解碼路徑可不同于上面所描述的。例如,頂C 331可對存取請求 的目標(biāo)地址進(jìn)行解碼,并確定它是否指向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)地址進(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ù)的總替換或 補充。在一個實施例中,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的總替換或 補充。如本文之前所描述的,在一些實施例中,即使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)形式 的大容量存儲裝置器件)。
[0053] 在NVRAM大容量存儲裝置152Α充當(dāng)閃存/磁/光大容量存儲裝置152Β的總替換 的實施例中,對于塊可尋址存儲裝置存取沒有必要使用存儲裝置驅(qū)動器。從存儲裝置存取 中移除存儲裝置驅(qū)動器開銷可增大存取速度并節(jié)省功率。在期望NVRAM大容量存儲裝置 152A對于0S和/或應(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中用點線例證以指示它們是可選的)的總替換或補充。例如,NVRAM 142可 包含BIOS NVRAM 172部分以補充或替換BIOS閃存362,并且可包含TPM NVRAM 173部分以 補充或替換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弥醒胩幚韱卧–PU)、專用集成電路(ASIC)或數(shù)字信號處理器 (DSP)。例如,處理器310可以是通用處理器,諸如Core? i3、i5、i7、2 Duo和QuacUXeon? 或Itanium?處理器,它們?nèi)伎蓮募永D醽喪タ死挠⑻貭柟镜玫?。備選地,處理 器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)配置。
[0056] 在一個實施例中,處理器310包含集成圖形單元311,其包含用于執(zhí)行圖形命令 (諸如3D或2D圖形命令)的邏輯。雖然本發(fā)明的實施例不限于任何具體集成圖形單元311, 但在一個實施例中,圖形單元311能夠執(zhí)行工業(yè)標(biāo)準(zhǔn)圖形命令,諸如由開放式GL和/或直 接X應(yīng)用編程接口(API)(例如開放式GL 4. 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之間存在多級高速緩存。例如,該組 共享高速緩存單元可包含上級高速緩存(諸如級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也可包含在所有核之間共享的一個部分以及是每個核的單獨功能片段的多 個其它部分。
[0059] 處理器310還可包含歸屬代理314,歸屬代理314包含協(xié)調(diào)和操作核101-104的那 些組件。歸屬代理單元314例如可包含功率控制單元(P⑶)和顯示單元。P⑶可以是或者 可包含調(diào)節(jié)核101-104以及集成圖形單元311的功率狀態(tài)所需的邏輯和組件。顯示單元用 于驅(qū)動一個或多個外部連接的顯示器。
[0060] 如所提到的,在一些實施例中,處理器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(這些芯片可在相同或不同的封裝中);等等。
[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、BI0S閃存362、TPM閃存372)以及一個或多個非存儲裝置I/O裝置337 (諸如顯示 器、鍵盤、揚聲器等等)。I/O子系統(tǒng)115可包含平臺控制器中心(PCH)(未示出),該PCH 進(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é)議變換成與具體I/O裝置兼 容的協(xié)議。對于閃存/磁/光大容量存儲裝置152B,I/O適配器338可變換的其中一些協(xié) 議包含:外圍組件互連(PCI)-快速(PCI-E),3. 0 ;USB,3. 0 ;SATA,3. 0 ;小型計算機(jī)系統(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é)議中。
[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能力。TPM 334可使用其加密能力保護(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] 為了便于說明,本申請的剩余部分有時將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] 作為隨機(jī)存取存儲器的非易失件半導(dǎo)體存儲裝置的系統(tǒng)存取的薄奪換 圖4示出了現(xiàn)有技術(shù)閃存存儲裝置400的結(jié)構(gòu)的描述。閃存存儲裝置是具有充當(dāng)更大 (例如計算機(jī))系統(tǒng)402的數(shù)據(jù)存儲資源的閃存存儲器裝置的裝置。要指出的是,系統(tǒng)通過 閃存存儲裝置接口 401向閃存存儲裝置傳遞。
[0070] 存儲裝置接口 401定義系統(tǒng)402與存儲裝置400本身之間的一組通信語義。定義 通信接口 401允許系統(tǒng)設(shè)計者設(shè)計僅擴(kuò)展到達(dá)接口 401的系統(tǒng),并允許閃存存儲裝置設(shè)計 者理解它們的裝置期望處置什么命令以及對那些命令的適當(dāng)響應(yīng)理應(yīng)是什么。
[0071] 在公共實現(xiàn)中,在物理層上通過數(shù)據(jù)存儲裝置接口 401傳輸讀命令或?qū)懨?。?態(tài)盤(SSD)的現(xiàn)有實現(xiàn)已經(jīng)利用了 SATA、SAS或接口 401的光纖通道。這些標(biāo)準(zhǔn)中的每個 標(biāo)準(zhǔn)都定義它們自己的通信協(xié)議語義以及物理層信令和引腳輸出規(guī)范。PCIe已經(jīng)用于其它 實現(xiàn)的接口 401的物理層信令和引腳輸出定義,但具有對具體SSD制造商特定的疊加通信 協(xié)議語義。
[0072] 最近,工業(yè)集團(tuán)已經(jīng)形成了設(shè)法使用PCIe物理層標(biāo)準(zhǔn)化閃存存儲裝置接口 401的 NVMEXpresS(NVMe)規(guī)范(其從題為"非易失性存儲器主機(jī)控制器接口規(guī)范(NVMHCI)"的先 前規(guī)范導(dǎo)出)。
[0073] 至少相對于NVMe方法,通過接口 401從系統(tǒng)402接收讀命令和寫命令的閃存存儲 裝置400可被看作包含其中兩層內(nèi)部通信協(xié)議技術(shù)。第一上層403支持系統(tǒng)級接口 401,并 將從系統(tǒng)402接收的命令轉(zhuǎn)換成對其內(nèi)部閃存存儲器裝置405_1至405_M特定的命令。在 此,中肯的是要指出,SSD被系統(tǒng)402視為和/或看作盤驅(qū)動器,盡管實際存儲技術(shù)是閃存 存儲器。上層403領(lǐng)會該區(qū)別,并且實質(zhì)上充當(dāng)將存儲裝置視為盤驅(qū)動器的系統(tǒng)402與實 際基于閃存的(非盤驅(qū)動器)存儲裝置之間的變換層。而且,上層403可包含入站和出站 隊列(以適應(yīng)于目標(biāo)可能未立即服務(wù)于手頭請求的事務(wù))。比如,NVMe是它自己的協(xié)議,其 合并了緩沖、數(shù)據(jù)保護(hù)、元數(shù)據(jù)管理、數(shù)據(jù)放置等。
[0074] 第二下層404向上層403提供閃存存儲器裝置接口 406。另一工業(yè)努力(稱為開 放式NAND閃存接口工作小組(0NFI))已經(jīng)定義了工業(yè)標(biāo)準(zhǔn)閃存存儲器裝置接口 406和基 礎(chǔ)功能(諸如ECC處置、讀高速緩存和裝置定時)。接口 406以及由層404執(zhí)行的基礎(chǔ)功能 從層403的角度用于"不糾纏于(abstract away)"可存在于在不同SSD裝置中利用的不同 閃存存儲器裝置的行為中的任何差異,或至少呈現(xiàn)用于不同閃存裝置制造商的公共接口。
[0075] 特定的針對的通道和裸晶可通過閃存存儲器裝置接口 406標(biāo)識。從而,閃存存儲 器裝置接口 406 (也稱為"NAND接口 "(例如0NFI、切換模式等))是允許對頁面進(jìn)行寫的原 始接口,理想上為了速度,多個通道同時與多個裸晶對話。
[0076] 相比之下,上層協(xié)議103 (諸如NVMe、SAS、SATA等)將塊接口暴露于系統(tǒng),系統(tǒng)允 許主機(jī)向塊寫數(shù)據(jù)(其在上層103內(nèi)的下部從主機(jī)邏輯塊地址(LBA)虛擬映射到內(nèi)部物理 塊地址(在SSD情況下,這稱為通道、裸晶、塊、頁面、扇區(qū)))。因此,SSD的主要元件(并且 最困難的部分)之一是上層103的元數(shù)據(jù)管理功能(或者如何將LBA與PBA相關(guān),其中此 關(guān)系可不受用戶的控制而改變,例如垃圾收集、耗損均勻化等)。進(jìn)一步說,SSD的上層103 進(jìn)行有關(guān)如何存儲/剝離/保護(hù)數(shù)據(jù)的假定。
[0077] 圖4在插圖410示出了閃存存儲裝置的典型硬件實現(xiàn)??刂破靼雽?dǎo)體芯片411集 成在具有多個閃存存儲器裝置405_1至405_M的同一封裝412中。上層403實現(xiàn)在控制器 411上。下層404(包含在下面更詳細(xì)討論的其相應(yīng)上層404a和下層404b)具有控制器端 部分404_C和存儲器裝置側(cè)部分405_1至405_M。在此,作為實現(xiàn)從上層403接收的閃存存 儲器命令的一部分,下層404_C的控制器端部分解釋命令并將命令物理發(fā)送到執(zhí)行所請求 操作的實際閃存存儲器裝置本身405_1至405_M。
[0078] 像這樣,第二下層404本身可被看作具有不同的兩層404a、404b。在控制器端的第 一上層404a向上層403提供閃存存儲器裝置的抽象(例如技術(shù)無關(guān))表示,并響應(yīng)于從上 層403接收的命令向第二下層404b發(fā)出對特定閃存存儲器裝置特定的命令。
[0079] 第二下層404b實現(xiàn)控制器411與閃存存儲器裝置405_1至405_M之間的實際電 子信令(例如電壓電平、波形特性等),并且定義機(jī)械規(guī)范,包含控制器411上的引腳輸出的 數(shù)量以及用于實現(xiàn)控制器411與存儲器裝置405_1至405_M之間成功通信的閃存存儲器裝 置405_1至405_M中的每個存儲器裝置(以及每個存儲器裝置的角色)。上層404a的存儲 器裝置側(cè)實例駐留在每個閃存裝置405_1至405_M上以從控制器端404_C接收命令,并將 它們應(yīng)用于其本地存儲單元(當(dāng)它是命令的目標(biāo)時)。在典型實現(xiàn)中,閃存存儲器裝置被集 成在與控制器411相同的封裝中,包含集成在同一裸晶上??刂破?11和閃存存儲器裝置 405_1至405_M也被共同集成到同一封裝中,該封裝作為整個單元被合并(例如"插入")到 更大系統(tǒng)中。
[0080] 要指出的是,下層404b (至少由0NFI所定義的)可以說消耗了不成比例的量的襯 底表面面積,因為控制器和閃存裝置需要的I/O是高的。
[0081] 圖5示出了可表現(xiàn)為遠(yuǎn)存儲器(而不是盤驅(qū)動器)的非易失性存儲器存儲裝置 500的描繪,其也應(yīng)該允許比完全實現(xiàn)本0NFI規(guī)范的解決方案明顯更高的存儲密度和更低 的等待時間。
[0082] 圖5還表不了圖4不出傳統(tǒng)基于閃存的SSD裝置的插圖410。
[0083] 比較這兩個裝置,注意到,新裝置500不包含上層403。要指出的是,層404的上 層404a仍保留。像這樣,在新裝置500通過PCIe附連到系統(tǒng)502的實施例中,系統(tǒng)502通 過PCIe主機(jī)/裝置互連將0NFI命令"隧道"到上層404a。響應(yīng)于那些命令格式化的0NFI 同樣通過PCIe連接從裝置500隧道到系統(tǒng)502。TOGGLE是0NFI的備選,并且因此也可使 用(以及其它當(dāng)前或?qū)淼膶S谢驑?biāo)準(zhǔn)非易失性隨機(jī)存取存儲器或"NAND"接口技術(shù)也可 使用)。
[0084] 移除上層403意味著閃存存儲器接口 406 (或其它非易失性存儲器接口諸如PCMS 接口)被直接呈現(xiàn)給系統(tǒng)502。像這樣,系統(tǒng)502可作為隨機(jī)存取存儲器(而不是作為盤 驅(qū)動器)直接尋址非易失性存儲器裝置505_1至505_N。作為結(jié)果(除此之外還有其它可 能性)系統(tǒng)502可呈現(xiàn)高速緩存線的地址,和/或執(zhí)行字節(jié)可尋址操作,而不是(與盤驅(qū)動 器一樣)僅尋址諸如"扇區(qū)"或"邏輯塊的大部分?jǐn)?shù)據(jù)"。系統(tǒng)例如可通過規(guī)定具體通道和 /或非易失性存儲器裝置來通過接口 406尋址非易失性存儲器裝置。
[0085] 像這樣,低級"NAND"或其它非易失性隨機(jī)存取存儲器接口被暴露于主機(jī)/系統(tǒng)。 系統(tǒng)然后能以其認(rèn)為必要的方式使用此接口。在一個實施例中,如果裸晶或塊被破壞了,則 系統(tǒng)可用ECC(例如X0R)信息寫數(shù)據(jù)以使能夠重構(gòu)數(shù)據(jù)。在另一實施例中,其中數(shù)據(jù)是純 高速緩存(并且因此不需要保護(hù)),系統(tǒng)可寫數(shù)據(jù)的單一拷貝,這更快速并且最大化了可用 非易失性隨機(jī)存取存儲器的容量。因此,代替一個尺寸適合所有非易失性隨機(jī)存取存儲器 解決方案(使用重量級協(xié)議),這種方法提供了允許系統(tǒng)決定應(yīng)該如何使用非易失性隨機(jī) 存取存儲器的輕量級原始接口。
[0086] 而且,要指出,新裝置500已經(jīng)用串行(基于點對點的鏈路)物理層504b(諸如 PCIe)替換了下層404的物理層下部分404b。從而,根據(jù)一個實施例,利用0NFI的上層 404a,但下物理層404b用PCIe代替0NFI的物理層實現(xiàn)。在此實現(xiàn)中,更高級(例如0NFI) 上層404a命令也通過PCIe遂穿到非易失性存儲器裝置505_1到505_M。在替換方法中,代 替點對點技術(shù)(諸如PCIe)使用0NFI下物理層404b。為了簡化,該文檔的其余部分會將新 裝置500稱為在其相應(yīng)非易失性存儲器裝置處具有點對點互連技術(shù)。
[0087] 在控制器511與非易失性存儲器裝置505_1至505_M之間使用基于鏈路的物理層 504b而不是滿標(biāo)(full scale)總線與0NFI物理層相比較至少減少了 I/O計數(shù),導(dǎo)致更小 的裸晶封裝。與來自移除上層403的節(jié)能組合的更小封裝尺寸(并且對于總裝置/形狀因 子,無論什么最大功耗格式都允許)可被轉(zhuǎn)換成新裝置500上的更多非易失性存儲裝置,與 圖4的插圖410的現(xiàn)有技術(shù)解決方案形成對比(M代替N,其中M>N)。像這樣,新裝置500 應(yīng)該能夠提供比現(xiàn)有技術(shù)解決方案410更大的存儲能力,所有其它東西都一樣。
[0088] 在此,對于與兩個裝置500和410之間相同的形狀因子(例如在同一 PCIe形狀 因子卡上比較兩個解決方案),對于新裝置500,添加附加非易失性存儲器裝置505_N+1至 505_M可消耗從移除上層403可獲得的附加功率預(yù)算。在此,將此類附加裝置封裝到同一 形狀因子中通過由基于鏈路的物理層504b在控制器與非易失性存儲器裝置505j到505_ Μ之間采用的較低I/O計數(shù)而變得可行(這應(yīng)該再次導(dǎo)致更小的裸晶封裝尺寸)。
[0089] 與完全實現(xiàn)的0NFI卡相比較,除了增大的存儲密度,新裝置500作為比較的問題 應(yīng)該還具有縮小的等待時間。確切地說,在現(xiàn)有技術(shù)卡410上存在和操作上層403對指向 新裝置500未擁有的卡的任何讀/寫事務(wù)增加了等待時間。
[0090] 而且,如果新裝置被實現(xiàn)在插入到PCIe插槽中的PCIe卡上(S卩,圖5的接口 406 用PCIe物理層實現(xiàn)),則該卡將在由系統(tǒng)502發(fā)送到卡的相應(yīng)PCIe封裝的有效載荷內(nèi)接收 非易失性存儲器接口命令(例如PCMS接口命令或閃存接口命令(諸如0NFI命令))。在 此,層404a對應(yīng)于薄變換層,其例如可保留許多從系統(tǒng)502接收的PCIe分組結(jié)構(gòu)。
[0091] 更確切地說,層404a可表現(xiàn)得類似于分組轉(zhuǎn)發(fā)裝置,其在分組通過內(nèi)部PCIe物理 層504b重新發(fā)到特定閃存或PCMS裝置之前,對接收的分組的標(biāo)題信息進(jìn)行適度調(diào)整(例 如,將目的地地址字段更新成針對特定非易失性存儲器裝置)。在另外的實施例中,根據(jù)嵌 入在從系統(tǒng)502接收的PCIe分組的有效載荷中的地址(其是由系統(tǒng)502發(fā)出的閃存或PCMS 接口命令的一部分)來確定新目的地地址。與現(xiàn)有技術(shù)裝置410相比較,薄變換應(yīng)該對應(yīng) 于通過新裝置500的控制器511按事務(wù)等待時間明顯更小。
[0092] 圖5的插圖520示出了新設(shè)計500的布局??刂破?11包含層404a (例如在專用 邏輯電路中,用指令執(zhí)行邏輯電路執(zhí)行的程序代碼或二者的組合)和物理層504b的控制器 側(cè)部分的功能性。每一個非易失性存儲器裝置505_1至505_M都包含物理層504b和層404a 的裝置側(cè)實例509_1至509_M。在此,層404a的裝置側(cè)實例能夠理解由層404a的控制器側(cè) 實例發(fā)送給它的命令,并使它們在其常駐存儲器陣列起作用。在一個實施例中,閃存/PCMS 存儲器裝置505_1至505_M在與控制器511相同的相應(yīng)封裝中(備選地,存儲器裸晶和控 制器可在不同的相應(yīng)封裝中)??刂破?11和閃存/PCMS存儲器裝置505_1至505_M也被 共同集成到同一封裝中,該封裝作為整個單元被合并(例如"插入")到更大系統(tǒng)502中。
[0093] 可存取圖5裝置500的系統(tǒng)組件例如可以是上面相對于圖3所討論的NVRAM控制 器 332 和 / 或 TPM 334。
[0094] 備選地或組合地,NVRAM控制器332和/或TPM 334的方面可被集成到圖5的控 制器511中。圖6a示出了控制器511的上面提到的功能被移到系統(tǒng)中(到控制器611a) 的實施例。在此,系統(tǒng)的上層仍可通過PCIe或系統(tǒng)內(nèi)部的某一其它通信技術(shù)傳遞到控制器 611。然而,要指出,如果PCIe是選擇的用于向控制器611a傳遞的機(jī)制,則在圖6a中呈現(xiàn) 的解決方案可容易地集成到系統(tǒng)的I/O層級中,即便它可能更像系統(tǒng)存儲器一樣被對待。
[0095] 要指出的是,插入到PCIe背板630a中的卡600_1至600_Z不包含控制器,并且通 過PCIe直接向控制器611a傳遞。像這樣,非易失性存儲器裝置本身通過PCIe直接向系統(tǒng) 傳遞。在此,控制器611a充當(dāng)命令從系統(tǒng)到其它卡600_1到600_Z的主集線器或路由器。 當(dāng)卡600_1到600_Z甚至沒有控制器,并且反而(通過控制器611a)從系統(tǒng)直接接收上層 404a命令時,甚至實現(xiàn)了附加節(jié)能和表面面積節(jié)省。
[0096] 附加節(jié)能和表面面積節(jié)省允許在卡600_1到600_Z上填充甚至更多的非易失性存 儲器裝置(確切地說是R個存儲器裝置,其中R>M)。更進(jìn)一步說,在卡600_1到600_Z上缺 乏控制器應(yīng)該使它們以每個事務(wù)為基礎(chǔ)比裝置500呈現(xiàn)出減少甚至更多的等待時間(其如 上面所討論的與插圖410的現(xiàn)有技術(shù)解決方案相比較,本身應(yīng)該已經(jīng)減少了等待時間)。像 這樣,將卡600_1到600_Z插入到其中的背板630a應(yīng)該比具有完全實現(xiàn)的ONFI解決方案 的相同數(shù)量的卡呈現(xiàn)出明顯更大的存儲密度和更小的等待時間??刂破?11a充當(dāng)卡600_1 到600_Z的路由集線器,由系統(tǒng)發(fā)送到任何卡600_1到600_Z上的存儲器裝置的PCMS/閃 存存儲器接口命令首先被發(fā)送到控制器??刂破?11a然后(例如通過向從系統(tǒng)接收的分 組添加新目的地地址信息)將命令轉(zhuǎn)發(fā)到卡600_1到600_Z中的適當(dāng)卡。任何響應(yīng)(諸如 用于讀命令的讀數(shù)據(jù))都被發(fā)送到控制器611a以便轉(zhuǎn)發(fā)到系統(tǒng)。要指出,卡600_1至600_ Z的存儲器裝置中的每個存儲器裝置都具有層404a和物理層504b的存儲器裝置側(cè)實例,以 接收和理解(并響應(yīng)于(如果必要的話))由控制器611a發(fā)送的命令。
[0097] 圖6b示出了插入到計算系統(tǒng)中的多個PCIe卡的另一實施例。要指出的是,卡 650_1根據(jù)圖5的設(shè)計520來設(shè)計。其它卡650_2至650_Z不包含控制器。而是,具有控制 器611b的卡650_1的PCIe部分504b充當(dāng)命令從控制器611b到其它卡650_2至650_Z的 主集線器或路由器。當(dāng)卡650_2到650_Z甚至沒有控制器,并且反而從卡650_1的控制器 611b接收上層404a命令時,甚至實現(xiàn)了附加節(jié)能和表面面積節(jié)省。
[0098] 附加節(jié)能和表面面積節(jié)省允許在卡650_2到650_Z上比在卡650_1上填充甚至 更多的非易失性存儲器裝置(確切地說是R個存儲器裝置,其中R>M)。更進(jìn)一步說,在卡 650_2到650_Z上缺乏控制器應(yīng)該使它們以每個事務(wù)為基礎(chǔ)比卡650_1呈現(xiàn)出減少甚至更 多的等待時間(其如上面所討論的與插圖410的現(xiàn)有技術(shù)解決方案相比較,本身應(yīng)該已經(jīng) 減少了等待時間)。像這樣,將卡650_1到650_Z插入到其中的系統(tǒng)的背板630b應(yīng)該比具 有完全實現(xiàn)的0NFI解決方案的相同數(shù)量的卡呈現(xiàn)出明顯更大的存儲密度和更小的等待時 間。
[0099] 卡650_1上的控制器611b充當(dāng)卡650_2到650_Z的路由集線器,由系統(tǒng)發(fā)送到任 何卡650_2到650_Z上的存儲器裝置的PCMS/閃存存儲器接口命令首先被發(fā)送到卡650_1。 卡650_1上的控制器61 lb然后(例如通過向從系統(tǒng)接收的分組添加新目的地地址信息)將 命令轉(zhuǎn)發(fā)到卡650_2到650_Z中的適當(dāng)卡。像這樣,命令從卡650_1流到卡650_2至650_ Z中的適當(dāng)卡。任何響應(yīng)(諸如用于讀命令的讀數(shù)據(jù))都被發(fā)送到卡650_1以便轉(zhuǎn)發(fā)到系 統(tǒng)。要指出,卡650_2至650_Z的存儲器裝置中的每個存儲器裝置都具有層404a和物理層 504b的存儲器裝置側(cè)實例,以接收和理解(并響應(yīng)于(如果必要的話))由控制器611b發(fā) 送的命令。
[0100] 圖7示出了可由圖5的新裝置500或圖6a、6b的控制器611a、611b執(zhí)行的方法 論。根據(jù)圖7的方法論,通過第一串行通道(例如通過第一 PCIe連接)從系統(tǒng)接收701對 于高速緩存線或字節(jié)可尋址操作的讀或?qū)懻埱?。接收的請求根?jù)PCMS或閃存存儲器裝置 接口協(xié)議格式化,并規(guī)定高速緩存線和/或字節(jié)可尋址操作。該請求然后通過第二串行通 道(例如第二PCIe連接)轉(zhuǎn)發(fā)702到適當(dāng)?shù)腜CMS或閃存存儲器裝置。該命令可被轉(zhuǎn)發(fā)到 與接收請求的卡和/或裝置不同的卡和/或裝置(例如,如果接收請求的卡/裝置正在充 當(dāng)其它卡的集線器(諸如上面相對于圖6所討論的))。
[0101] 如果該請求是對于讀的,則所針對的PCMS或閃存存儲器裝置解釋讀命令并執(zhí)行 讀。讀數(shù)據(jù)在第二串行通道上返回,格式與可應(yīng)用PCMS或閃存接口的基礎(chǔ)功能一致。讀數(shù) 據(jù)然后在第一串行通道上通過PCMS或閃存接口轉(zhuǎn)發(fā)到系統(tǒng)。如果該請求是對于寫的,則所 針對的PCMS或閃存裝置解釋寫命令并執(zhí)行寫。
[0102] 圖8示出了圖5的控制器511或圖6a、6b的控制器61 la、61 lb的更詳細(xì)實施例。 如上面所討論的,控制器811可包含將從系統(tǒng)側(cè)PCIe連接接收的分組轉(zhuǎn)發(fā)到PCMS或閃存 存儲器裝置側(cè)PCIe連接的薄轉(zhuǎn)換層801。轉(zhuǎn)發(fā)可至少包含使用由系統(tǒng)針對的地址作為查找 參數(shù)來標(biāo)識所接收分組的新目的地地址。像這樣,控制器可包含嵌入式存儲器或寄存器空 間以便保持查找表802以執(zhí)行查找。
[0103] 控制器還可包含邏輯電路以實現(xiàn)它監(jiān)管(卡上和卡外)的存儲器裝置的任何如下 功能:i)耗損均勻化803 ;ii)用于錯誤糾正編碼/解碼/糾正804的ECC電路;iii)垃圾 收集805 (其是用于刪除移除陳舊信息的自動功能);iv)命令和/或響應(yīng)806的入站和/ 或出站排隊。要注意的是,用于任何功能803、804、805的邏輯電路也可在各個存儲器裝置 本身上實現(xiàn),與在控制器811上實現(xiàn)這些相同功能組合或代替之。在系統(tǒng)設(shè)法以不顯式或 直接參考特定通道或裸晶的更抽象方式尋址存儲器裝置的情況下,控制器還可包含輕量級 元數(shù)據(jù)管理。
[0104] 附加的擴(kuò)展功能也是有可能的。示例包含鏡像。此特征允許具有非易失性存儲器 裝置的一個卡接收寫命令,處理到其本地非易失性存儲器裝置的數(shù)據(jù),同時將命令轉(zhuǎn)發(fā)到 另一個卡,該卡寫數(shù)據(jù)的鏡像到其本地非易失性存儲器裝置,由此增大所存儲數(shù)據(jù)的可靠 性(如果一個拷貝失敗了,則另一個拷貝可用于讀)。
【權(quán)利要求】
1. 一種方法,包括: 從系統(tǒng)接收命令,所述命令標(biāo)識具體非易失性存儲器,所述命令通過點對點鏈路遞送; 以及 將所述命令轉(zhuǎn)發(fā)到所述非易失性存儲器。
2. 如權(quán)利要求1所述的方法,其中所述轉(zhuǎn)發(fā)所述命令包含通過第二點對點鏈路將所述 命令定向到所述非易失性存儲器裝置。
3. 如權(quán)利要求2所述的方法,其中所述第二點對點鏈路是PCIe點對點鏈路。
4. 如權(quán)利要求3所述的方法,其中所述點對點鏈路是PCIe點對點鏈路。
5. 如權(quán)利要求1所述的方法,其中所述點對點鏈路是PCIe點對點鏈路。
6. 如權(quán)利要求1所述的方法,其中所述接收和轉(zhuǎn)發(fā)由支持ONFI接口的控制器執(zhí)行,所 述命令是ONFI格式的命令。
7. 如權(quán)利要求1所述的方法,其中所述非易失性存儲器是閃存隨機(jī)存取存儲器或PCM 隨機(jī)存取存儲器。
8. 如權(quán)利要求1所述的方法,進(jìn)一步包括:將所述命令鏡像到與所述非易失性存儲器 在其上的卡不同的卡上的另一非易失性存儲器。
9. 一種方法,包括: 通過點對點鏈路向非易失性隨機(jī)存取存儲器發(fā)送命令,所述非易失性隨機(jī)存取存儲器 附連到所述點對點鏈路的端。
10. 如權(quán)利要求9所述的方法,其中所述點對點鏈路是PCIe點對點鏈路。
11. 如權(quán)利要求9所述的方法,其中所述點對點鏈路通過背板運行,所述背板將系統(tǒng)連 接到插入到所述背板中的卡并且保持住所述非易失性隨機(jī)存取存儲器。
12. 如權(quán)利要求9所述的方法,其中所述點對點鏈路在具有控制器和所述非易失性存 儲器裝置的封裝內(nèi),其中所述控制器執(zhí)行所述發(fā)送。
13. 如權(quán)利要求9所述的方法,其中所述發(fā)送由駐留在與所述非易失性隨機(jī)存取存儲 器不同的卡上的控制器執(zhí)行。
14. 一種半導(dǎo)體芯片,包括: 控制器,其具有點對點鏈路接口和非易失性存儲器對接電路,所述點對點鏈路接口從 系統(tǒng)接收標(biāo)識具體非易失性存儲器的命令,所述非易失性存儲器對接電路接收所述命令并 將所述命令轉(zhuǎn)發(fā)到所述非易失性隨機(jī)存取存儲器。
15. 如權(quán)利要求14所述的半導(dǎo)體芯片,其中所述半導(dǎo)體芯片被集成到計算系統(tǒng)中。
16. 如權(quán)利要求15所述的半導(dǎo)體芯片,其中所述半導(dǎo)體芯片被集成在插入到所述計算 系統(tǒng)的背板中的裝置上。
17. 如權(quán)利要求16所述的半導(dǎo)體芯片,其中所述非易失性存儲器對接電路是ONFI非易 失性存儲器對接電路。
18. 如權(quán)利要求14所述的半導(dǎo)體芯片,進(jìn)一步包括第二點對點鏈路接口,所述第二點 對點鏈路接口向所述非易失性隨機(jī)存取存儲器發(fā)送所述轉(zhuǎn)發(fā)的命令。
19. 如權(quán)利要求15所述的半導(dǎo)體芯片,其中所述控制器和所述非易失性隨機(jī)存取存儲 器被集成到插入到所述計算系統(tǒng)的背板中的同一封裝中。
20. -種半導(dǎo)體芯片,包括: 非易失性隨機(jī)存取存儲器存儲單元;以及 點對點鏈路,其接收指向所述存儲單元的讀存取和寫存取。
【文檔編號】G11C7/10GK104126181SQ201180076459
【公開日】2014年10月29日 申請日期:2011年12月30日 優(yōu)先權(quán)日:2011年12月30日
【發(fā)明者】M.T.瓊斯 申請人:英特爾公司