亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

支持近存儲器和遠存儲器訪問的存儲器通道的制作方法

文檔序號:6485207閱讀:127來源:國知局
支持近存儲器和遠存儲器訪問的存儲器通道的制作方法
【專利摘要】一種半導(dǎo)體芯片,包括存儲器控制器電路,所述存儲器控制器電路具有接口電路以耦合到存儲器通道。存儲器控制器包括第一邏輯電路以在存儲器通道上實現(xiàn)第一存儲器通道協(xié)議。第一存儲器通道協(xié)議特定于第一易失性系統(tǒng)存儲器技術(shù)。該接口還包括第二邏輯電路以在存儲器通道上實現(xiàn)第二存儲器通道協(xié)議。第二存儲器通道協(xié)議特定于第二非易失性系統(tǒng)存儲器技術(shù)。第二存儲器通道協(xié)議是事務(wù)協(xié)議。
【專利說明】支持近存儲器和遠存儲器訪問的存儲器通道
【技術(shù)領(lǐng)域】
[0001]本發(fā)明大體上涉及計算機系統(tǒng)的領(lǐng)域。更特別地,本發(fā)明涉及用于實現(xiàn)包括非易失性存儲器(memory)層的多級存儲器層次結(jié)構(gòu)的裝置和方法。
【背景技術(shù)】
[0002]A.目前的存儲器和儲存器(storage)配置
現(xiàn)在,對計算機創(chuàng)新的限制因素之一是存儲器和儲存器技術(shù)。在常規(guī)的計算機系統(tǒng)中,系統(tǒng)存儲器(也稱為主存儲器、初級存儲器、可執(zhí)行存儲器)通常由動態(tài)隨機訪問存儲器(DRAM)來實現(xiàn)?;贒RAM的存儲器即使在不發(fā)生存儲器讀或?qū)懙臅r候也消耗功率,原因在于其必須不斷地對內(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ān)于大容量儲存器(也稱為二級儲存器或磁盤儲存器),常規(guī)的大容量儲存設(shè)備通常包括磁介質(zhì)(例如,硬盤驅(qū)動)、光介質(zhì)(例如,光盤(⑶)驅(qū)動、數(shù)字通用盤(DVD)等)、全息介質(zhì)、和/或大容量儲存閃速存儲器(例如,固態(tài)驅(qū)動(SSD)、可移除閃速驅(qū)動等)。通常,這些儲存設(shè)備被視為輸入/輸出(I/O)設(shè)備,原因在于其由處理器通過實現(xiàn)各種I/O協(xié)議的各種I/O適配器來訪問。這些I/O適配器和I/O協(xié)議消耗大量的功率并且會具有對平臺的形狀因數(shù)和管芯(die)區(qū)域的顯著影響。當(dāng)具有有限電池壽命的便攜式或移動設(shè)備(例如,膝上型計算機、上網(wǎng)本、平板計算機、個人數(shù)字助理(PDA)、便攜式媒體播放器、便攜式游戲設(shè)備、數(shù)字攝像機、移動電話、智能電話、功能電話等)未連接到永久性電源時,可以包括通常經(jīng)由低功率互連和I/O控制器而耦合到處理器的可移除大容量儲存設(shè)備(例如,嵌入式多媒體卡(eMMC)、安全數(shù)字(SD)卡),以便滿足活動和空閑的功率預(yù)算。
[0004]關(guān)于固件存儲器(諸如,引導(dǎo)存儲器(也稱為BIOS閃速)),常規(guī)的計算機系統(tǒng)通常使用閃速存儲器設(shè)備來存儲通常被讀但很少(或從不)被寫到的持久系統(tǒng)信息。例如,由處理器在引導(dǎo)過程期間運行以初始化關(guān)鍵系統(tǒng)組件的初始指令(基本輸入和輸出系統(tǒng)(BIOS)映像)通常存儲在閃速存儲器設(shè)備中。當(dāng)前可在市場中獲得的閃速存儲器設(shè)備通常具有有限的速度(例如,50MHz)。該速度因用于讀協(xié)議的開銷(例如,2.5MHz)而進一步降低。為了加快BIOS運行速度,常規(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的近期版本能夠?qū)崿F(xiàn)兩種附加的不同狀態(tài)。
[0006]PCM提供比閃速更高的性能,原因在于PCM的存儲器元件能夠切換得更快,寫(將單獨的位改變?yōu)镮或O)能夠在不需要首先擦除整個單元塊的情況下完成,并且從寫的退化更慢(PCM設(shè)備可以幸存大約I億次寫周期;PCM退化是由于編程期間的熱膨脹、金屬(和其它材料)遷移、以及其它機制)。
【專利附圖】

【附圖說明】
[0007]以下描述和附圖被用來圖示本發(fā)明的實施例。在所述附圖中:
圖1圖示根據(jù)本發(fā)明的一個實施例的高速緩存和系統(tǒng)存儲器布置;
圖2圖示被用于本發(fā)明的一個實施例中的存儲器和儲存器層次結(jié)構(gòu);
圖3圖示本發(fā)明的實施例可以實現(xiàn)在其上的計算機系統(tǒng);
圖4圖示相同的存儲器通道上的近存儲器高速緩存和遠存儲器的實現(xiàn);
圖5圖示能夠在圖4中所觀察的近存儲器/遠存儲器系統(tǒng)上執(zhí)行的寫過程;
圖6圖示能夠在圖4中所觀察的近存儲器/遠存儲器系統(tǒng)上執(zhí)行的讀過程;
圖7A圖示用于在相同的存儲器通道上集成近存儲器高速緩存和遠存儲器的“近存儲器在前面”架構(gòu);
圖7B-D圖示能夠由圖7A的系統(tǒng)所執(zhí)行的過程;
圖8A圖示用于在相同的存儲器通道上集成近存儲器高速緩存和遠存儲器的“近存儲器在前面”架構(gòu);
圖8B-D圖示能夠由圖8A的系統(tǒng)所執(zhí)行的過程;
圖9A圖示支持近存儲器訪問的存儲器通道布線的應(yīng)用;
圖9B圖示支持遠存儲器訪問的存儲器通道布線的應(yīng)用;
圖10圖示用于訪問近存儲器的過程;
圖11圖示遠存儲器控制邏輯電路的實施例;
圖12A-B圖示可以推知支持近存儲器訪問和遠存儲器訪問的存儲器通道的原子過程?!揪唧w實施方式】
[0008]在以下描述中,闡述了諸如邏輯實現(xiàn)、操作碼、指定操作數(shù)的方式、資源劃分/共享/復(fù)制實現(xiàn)、系統(tǒng)組件的類型和相互關(guān)系、以及邏輯劃分/集成選擇之類的許多特定細節(jié),以便提供對本發(fā)明的更透徹的理解。然而,由本領(lǐng)域技術(shù)人員將領(lǐng)會的是,本發(fā)明可以在不具有此類特定細節(jié)的情況下實施。在其它實例中,未示出控制結(jié)構(gòu)、門級電路和全軟件指令序列,以免使本發(fā)明晦澀難懂。本領(lǐng)域一般技術(shù)人員利用所包括的描述將能夠在不具有過度實驗的情況下實現(xiàn)適當(dāng)?shù)墓δ堋?br> [0009]在本說明書中,對“一個實施例”、“實施例”、“示例性實施例”等的引用指示了所描述的實施例可以包括特定的特征、結(jié)構(gòu)、或特性,但每個實施例可以不必都包括該特定的特征、結(jié)構(gòu)、或特性。此外,此類短語不必指代相同的實施例。進一步地,當(dāng)結(jié)合實施例來描述特定的特征、結(jié)構(gòu)、或特性時,無論是否明確地描述,都主張要在本領(lǐng)域技術(shù)人員的知識內(nèi)結(jié)合其它實施例來實現(xiàn)此類特征、結(jié)構(gòu)、或特性。
[0010]在以下描述和權(quán)利要求中,可以使用術(shù)語“耦合”和“連接”與其衍生物。應(yīng)該理解這些術(shù)語不意為彼此的同義詞?!榜詈稀北挥脕碇甘颈舜丝梢曰蚩梢圆惶幱谥苯游锢砘螂姎饨佑|的兩個或更多元件彼此進行協(xié)作或交互。“連接”被用來指示彼此耦合的兩個或更多元件之間的通信的建立。
[0011]本文中有時使用加括號的文本和具有虛線邊界(例如,大虛線、小虛線、點虛線、點)的塊來圖示將附加特征添加到本發(fā)明實施例的可選的操作/組件。然而,此類注釋不應(yīng)該視為意味著這些是僅有的選項或可選的操作/組件,和/或具有實線邊界的塊在本發(fā)明的某些實施例中不是可選的。
[0012]介紹
隨著處理器核以及諸如虛擬化之類的新使用模型的數(shù)量增加,存儲器容量和性能需要持續(xù)增長。另外,存儲器功率和成本已經(jīng)分別變?yōu)殡娮酉到y(tǒng)的整體功率和成本的重要組成部分。
[0013]本發(fā)明的一些實施例通過智能地細分存儲器技術(shù)之間的性能需要和容量需要來解決以上挑戰(zhàn)。該方法的焦點在于利用相對少量的相對更高速的存儲器(諸如DRAM)來提供性能同時使用明顯更便宜且更密集的非易失性隨機訪問存儲器(NVRAM)來實現(xiàn)大部分系統(tǒng)存儲器。以下所描述的本發(fā)明的實施例定義使得能夠?qū)崿F(xiàn)用于NVRAM的使用的分層存儲器子系統(tǒng)組織的平臺配置。如以下詳細描述的,存儲器層次結(jié)構(gòu)中的NVRAM的使用還使得能夠?qū)崿F(xiàn)諸如擴充的引導(dǎo)空間和大容量儲存器實現(xiàn)之類的新的使用。
[0014]圖1圖示根據(jù)本發(fā)明的實施例的高速緩存和系統(tǒng)存儲器布置。具體地,圖1示出存儲器層次結(jié)構(gòu),包括一組內(nèi)部處理器高速緩存120、可以包括一個或多個內(nèi)部高速緩存106和外部高速緩存107-109這二者的充當(dāng)遠存儲器高速緩存的“近存儲器”121、以及“遠存儲器”122。在本發(fā)明的一些實施例中,可以被用于“遠存儲器”的一種特定類型的存儲器是非易失性隨機訪問存儲器(“NVRAM”)。照此,以下提供了 NVRAM的概觀,后面跟著遠存儲器和近存儲器的概觀。
[0015]A.非易失性隨機訪問存儲器(“NVRAM”)
存在用于NVRAM的許多可能的技術(shù)選擇,包括PCM、相變存儲器和開關(guān)(PCMS)(后者是前者的更特定實現(xiàn))、字節(jié)可尋址持久存儲器(BPRAM)、儲存類存儲器(SCM)、通用存儲器、Ge2Sb2Te5、可編程金屬化單元(PMC)、電阻式存儲器(RRAM)、RESET (重置)(非晶體)單元、SET (設(shè)置)(晶體)單元、PCME、奧弗辛斯基存儲器、鐵電存儲器(也稱為聚合物存儲器和聚(N-乙烯基咔唑))、鐵磁存儲器(也稱為自旋電子、SPRAM (自旋扭矩轉(zhuǎn)換RAM)、STRAM (自旋隧道RAM)、磁阻存儲器、磁存儲器、磁隨機訪問存儲器(MRAM))、以及半導(dǎo)體-氧化物-氮化物-氧化物-半導(dǎo)體(SONOS,也稱為介電存儲器)。
[0016]NVRAM具有以下特性:
(1)即使在斷開電源的情況下其也保持其內(nèi)容,與被用于固態(tài)磁盤(SSD)中的閃速存儲器類似,并且與易失性的SRAM和DRAM不同;
(2)比諸如SRAM和DRAM之類的易失性存儲器更低的功耗;
(3)與SRAM和DRAM類似的隨機訪問(也稱為可隨機尋址);
(4)以比SSD中找到的閃速(一次僅能夠重寫和擦除一“塊”一在大小方面最小為對于NOR閃速而言64千字節(jié)并且對于NAND閃速而言16千字節(jié))更低的粒度級別(例如,字節(jié)級別)而可重寫且可擦除;
(5)被用作系統(tǒng)存儲器并且被分配系統(tǒng)存儲器地址空間的全部或部分;
(6)能夠通過使用事務(wù)協(xié)議(支持事務(wù)標識符(ID)以區(qū)分不同事務(wù)以使得能夠無序地完成那些事務(wù)的協(xié)議)的總線而耦合到處理器,并且允許以小到足以支持將NVRAM作為系統(tǒng)存儲器來操作的粒度級別(例如,諸如64或128字節(jié)的高速緩存線大小)的訪問。例如,總線可以是通過其來運行與通常所使用的非事務(wù)協(xié)議相對的事務(wù)協(xié)議的存儲器總線(例如,諸如DDR3、DDR4等的DDR總線)。作為另一個示例,總線可以是通常通過其來運行事務(wù)協(xié)議(本地事務(wù)協(xié)議)的總線,諸如PCI高速(PCIE)總線、桌面管理接口(DMI)總線、或利用事務(wù)協(xié)議和足夠小的事務(wù)有效載荷大小(例如,諸如64或128字節(jié)的高速緩存線大小)的任何其它類型的總線;
(7)以下中的一個或多個:
a)比諸如閃速之類的非易失性存儲器/儲存器技術(shù)更快的寫速度;
b)非常高的讀速度(比閃速更快,并且接近或等價于DRAM讀速度);
c)直接可寫(不同于像被用于SSD中的閃速存儲器那樣在寫數(shù)據(jù)之前需要擦除(利用I來改寫));和/或
d)故障之前的更大數(shù)量的寫(比被用于SSD中的引導(dǎo)ROM和閃速更多);和/或 如以上提到的,對比于一次必須重寫和擦除一個完整的“塊”的閃速存儲器,在任何給
定實現(xiàn)中NVRAM被訪問的粒度級別可以依賴于特定的存儲器控制器和特定的存儲器總線或NVRAM耦合到的其它類型的總線。例如,在其中NVRAM被用作系統(tǒng)存儲器的一些實現(xiàn)中,盡管固有能力是以字節(jié)的粒度被訪問,但NVRAM也可以以高速緩存線(例如,64字節(jié)或128字節(jié)高速緩存線)的粒度被訪問,原因在于高速緩存線是存儲器子系統(tǒng)訪問存儲器的級另O。因而,當(dāng)在存儲器子系統(tǒng)內(nèi)部署NVRAM時,其可以以與被用于相同的存儲器子系統(tǒng)中的DRAM (例如,“近存儲器”)相同的粒度級別被訪問。即使如此,由存儲器控制器和存儲器總線或其它類型的總線對NVRAM訪問的粒度級別也小于由閃速所使用的塊大小和I/O子系統(tǒng)的控制器和總線的訪問大小的粒度級別。
[0017]NVRAM還可以包含耗損均衡算法以考慮以下事實:遠存儲器級別處的儲存單元在多個寫訪問之后開始耗盡,特別是其中諸如在系統(tǒng)存儲器實現(xiàn)中可以發(fā)生大量的寫。因為高周期計數(shù)塊最可能以該方式而耗盡,所以耗損均衡通過將高周期計數(shù)塊與低周期計數(shù)塊的地址進行交換而跨遠存儲器單元來散布寫。注意,通常大多數(shù)地址交換對應(yīng)用程序而言透明,原因在于其由硬件、較低級別的軟件(例如,低級別驅(qū)動器或操作系統(tǒng))、或該二者的組合來處理。
[0018]B.遠存儲器
本發(fā)明的一些實施例的遠存儲器122利用NVRAM來實現(xiàn),但不必限于任何特定的存儲器技術(shù)。遠存儲器122根據(jù)其在存儲器/儲存器層次結(jié)構(gòu)中的應(yīng)用和/或其特性而可與其它指令和數(shù)據(jù)存儲器/儲存器技術(shù)區(qū)分。例如,遠存儲器122不同于:
I)靜態(tài)隨機訪問存儲器(SRAM),其可以被用于分別專用于處理器核101-104的級別O和級別I內(nèi)部處理器高速緩存101a-b、102a-b、103a_b、和104a_b以及由處理器核所共享的更低級別的高速緩存(LLC) 105 ; 2)動態(tài)隨機訪問存儲器(DRAM),被配置為處理器100內(nèi)部的高速緩存106(例如,在與處理器100相同的管芯上)和/或配置為處理器外部的一個或多個高速緩存107-109 (例如,在與處理器100相同或不同的封裝上);以及
3)閃速存儲器/磁盤/光盤,應(yīng)用為大容量儲存器(未示出);以及
4 )諸如閃速存儲器或其它只讀存儲器(ROM )之類的存儲器,應(yīng)用為固件存儲器(其能夠涉及引導(dǎo)ROM、BIOS閃速、和/或TPM閃速)(未示出)。
[0019]遠存儲器122可以被用作可由處理器100直接尋址的指令和數(shù)據(jù)儲存器,并且對比于應(yīng)用為大容量儲存器的閃速/磁盤/光盤而能夠與處理器100充分地保持同步。此外,如以上所討論的以及以下詳細描述的,遠存儲器122可以被置于存儲器總線上并且可以與繼而與處理器100直接通信的存儲器控制器直接通信。
[0020]遠存儲器122可以與其它指令和數(shù)據(jù)儲存技術(shù)(例如,DRAM)組合以形成混合存儲器(也稱為共置一處的PCM和DRAM ;第一級別存儲器和第二級別存儲器;FLAM (閃速和DRAM))。注意,包括PCM/PCMS的以上技術(shù)中的至少一些可以被用于作為系統(tǒng)存儲器的代替或附加的大容量儲存器,并且當(dāng)以該方式被應(yīng)用時,不需要是由處理器隨機可訪問、字節(jié)可尋址或直接可尋址的。
[0021]為了解釋的方便,本申請的剩余部分的大多數(shù)將把“NVRAM”或者更具體地“PCM”或“PCMS”稱為用于遠存儲器122的技術(shù)選擇。照此,在以下討論中,術(shù)語“NVRAM”、“PCM”、“PCMS”和遠存儲器可以可互換地使用。然而,如以上所討論的,應(yīng)該認識到不同的技術(shù)也可以被用于遠存儲器。同樣,該NVRAM不限于用作遠存儲器。
[0022]C.近存儲器
“近存儲器” 121是被配置在遠存儲器122的前面的中間級別的存儲器,其相對于遠存儲器具有更低的讀/寫訪問延遲和/或更對稱的讀/寫訪問延遲(即,具有大致等價于寫時間的讀時間)。在一些實施例中,近存儲器121具有比遠存儲器122明顯更低的寫延遲但類似(略低或相等)的讀延遲;例如,近存儲器121可以是諸如易失性隨機訪問存儲器(VRAM)之類的易失性存儲器并且可以包括DRAM或其它基于電容器的高速存儲器。然而,注意,本發(fā)明的基本原理不限于這些特定的存儲器類型。另外地,近存儲器121比遠存儲器122可以具有相對更低的密度和/或制造起來可以更貴。
[0023]在一個實施例中,近存儲器121被配置在遠存儲器122和內(nèi)部處理器高速緩存120之間。在以下所描述的實施例的一些中,近存儲器121被配置為一個或多個存儲器側(cè)高速緩存(MSC) 107-109,以掩蓋遠存儲器的性能和/或使用限制,包括例如寫/讀延遲限制和存儲器退化限制。在這些實現(xiàn)中,MSC 107-109和遠存儲器122的組合以近似、等價于或超過僅將DRAM用作系統(tǒng)存儲器的系統(tǒng)的性能級別來操作。如以下詳細討論的,盡管在圖1中示出為“高速緩存”,近存儲器121可以包括其中它執(zhí)行作為執(zhí)行高速緩存的角色的附加或代替的其它角色的模式。
[0024]近存儲器121能夠位于處理器管芯上(作為一個或多個高速緩存106)和/或位于處理器管芯外部(作為高速緩存107-109)(例如,在位于CPU封裝上的單獨的管芯上、在具有到CPU封裝的高帶寬鏈路的情況下位于CPU封裝之外,例如,在存儲器雙列直插式存儲器模塊(DIMM)、立管/夾層、或計算機母板上)。近存儲器121可以使用單個或多個高帶寬鏈路(諸如,DDR或其它事務(wù)高帶寬鏈路(如以下詳細描述的))與處理器100進行通信而耦合。[0025]示例性系統(tǒng)存儲器分配方案
圖1圖示了在本發(fā)明的實施例中各級別的高速緩存101-109如何關(guān)于系統(tǒng)物理地址(SPA)空間116-119而配置。如提到的,該實施例包括具有一個或多個核101-104的處理器100,其中每個核具有其自身專用的高級高速緩存(L0)101a-104a和中級高速緩存(MLC)(LI)高速緩存101b-104b。處理器100還包括共享的LLC 105。這些各高速緩存級別的操作被良好地理解,并且本文將不詳細描述。
[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)可以被用于其中由處理器100所使用的SPA空間被交錯到由高速緩存107-109 (例如,當(dāng)配置為MSC時)所使用的地址空間中的系統(tǒng)。在一些實施例中,該后者的地址空間被稱為存儲器通道地址(MCA)空間。在一個實施例中,內(nèi)部高速緩存101a-106執(zhí)行用于整個SPA空間的高速緩存操作。
[0027]如本文所使用的系統(tǒng)存儲器是對在處理器100上運行的軟件而言可見和/或可由所述軟件直接尋址的存儲器;而高速緩存存儲器101a-109可以在其不形成系統(tǒng)地址空間的直接可尋址部分的意義上對軟件透明地操作,但所述核也可以支持指令的運行以允許軟件提供對一個或多個高速緩存中的一些或所有的一些控制(配置、策略、提示等)。將系統(tǒng)存儲器細分成區(qū)域116-119可以作為系統(tǒng)配置過程的部分而手動執(zhí)行(例如,由系統(tǒng)設(shè)計者)和/或可以由軟件來自動執(zhí)行。
[0028]在一個實施例中,系統(tǒng)存儲器區(qū)域116-119使用遠存儲器(例如,PCM)以及在一些實施例中被配置為系統(tǒng)存儲器的近存儲器來實現(xiàn)。系統(tǒng)存儲器地址范圍#4表示使用諸如DRAM之類的可以是配置于系統(tǒng)存儲器模式(相對于高速緩存模式)中的近存儲器的更高速的存儲器來實現(xiàn)的地址范圍。
[0029]圖2圖示了根據(jù)本發(fā)明的實施例的存儲器/儲存器層次結(jié)構(gòu)140和用于近存儲器144和NVRAM的操作的可配置模式。存儲器/儲存器層次結(jié)構(gòu)140具有多個級別,包括:(I)高速緩存級別150,其可以包括處理器高速緩存150A(例如,圖1中的高速緩存101A-105),并且可選地作為用于遠存儲器150B的高速緩存的近存儲器(在如本文所描述的某些操作模式中),(2)系統(tǒng)存儲器級別151,當(dāng)近存儲器存在時,其可以包括遠存儲器151B (例如,諸如PCM的NVRAM)(或當(dāng)近存儲器不存在時,僅包括作為系統(tǒng)存儲器174的NVRAM),并且可選地作為系統(tǒng)存儲器151A操作的近存儲器(在如本文所描述的某些操作模式中),(3)大容量儲存器級別152,其可以包括閃速/磁/光大容量儲存器152B和/或NVRAM大容量儲存器152A (例如,NVRAM 142的部分);以及(4)固件存儲器級別153,其可以包括BIOS閃速170和/或BIOS NVRAM 172以及可選地可信平臺模塊(TPM) NVRAM 173。
[0030]如所指示的,近存儲器144可以被實現(xiàn)成采用各種不同的模式來操作,包括:第一模式,其中其操作為用于遠存儲器的高速緩存(近存儲器作為用于FM 150B的高速緩存);第二模式,其中其操作為系統(tǒng)存儲器151A并且占用SPA空間的部分(有時被稱為近存儲器“直接訪問”模式);以及諸如暫存存儲器192或如寫緩沖器193之類的一個或多個附加操作模式。在本發(fā)明的一些實施例中,近存儲器是可劃分的,其中每個分區(qū)可以并行地采用所支持的模式中的不同的一個來操作;并且不同的實施例可以支持由硬件(例如,熔絲、引腳)、固件、和/或軟件來配置分區(qū)(例如大小、模式)(例如,通過MSC控制器124內(nèi)的一組可編程范圍寄存器,在其中例如可以存儲不同的二進制碼以標識每個模式和分區(qū))。
[0031]圖2中的系統(tǒng)地址空間A 190被用來圖示當(dāng)近存儲器配置為用于遠存儲器150B的MSC時的操作。在該配置中,系統(tǒng)地址空間A 190表示整個系統(tǒng)地址空間(并且系統(tǒng)地址空間B 191不存在)??商娲兀到y(tǒng)地址空間B 191被用來示出當(dāng)近存儲器的全部或部分被指派系統(tǒng)地址空間的部分時的實現(xiàn)。在該實施例中,系統(tǒng)地址空間B 191表示被指派到近存儲器151A的系統(tǒng)地址空間的范圍,并且系統(tǒng)地址空間A 190表示指派到NVRAM 174的系統(tǒng)地址空間的范圍。
[0032]另外,當(dāng)充當(dāng)用于遠存儲器150 B的高速緩存時,近存儲器144可以采用在MSC控制器124的控制之下的各種子模式來操作。在這些模式的每個中,近存儲器地址空間(NMA)在近存儲器不形成系統(tǒng)地址空間的直接可尋址部分的意義上對軟件而言是透明的。這些模式包括但不限于以下:
(I)回寫高速緩存模式:在該模式中,充當(dāng)FM高速緩存150B的近存儲器的全部或部分被用作用于NVRAM遠存儲器(FM)151B的高速緩存。當(dāng)在回寫模式中時,每次寫操作初始地定向到作為用于FM 150B的高速緩存的近存儲器(假設(shè)該寫所定向到的高速緩存線存在于高速緩存中)。執(zhí)行對應(yīng)的寫操作以僅當(dāng)作為用于FM 150B的高速緩存的近存儲器內(nèi)的高速緩存線要由另一個高速緩存線所替代時,更新NVRAM FM 151B (對比于以下所描述的直寫模式,其中將每次寫操作被立即傳播到NVRAMFM 151B)。
[0033](2)近存儲器繞過模式:在該模式中,所有的讀和寫繞過充當(dāng)FM高速緩存150B的匪并且直接去到NVRAM FM 151B。例如,當(dāng)應(yīng)用不是高速緩存友好的或需要待提交的數(shù)據(jù)以高速緩存線的粒度來存留時,可以使用這種模式。在一個實施例中,由處理器高速緩存150A和充當(dāng)FM高速緩存150B的匪所執(zhí)行的高速緩存彼此獨立地操作。因而,可以在充當(dāng)FM高速緩存150B的NM中對未在處理器高速緩存150A中被高速緩存的(并且在一些情況下可能未被允許在處理器高速緩存150A中進行高速緩存的)數(shù)據(jù)進行高速緩存,并且反之亦然。因而,可能在處理器高速緩存中被指定為“不可高速緩存”的某些數(shù)據(jù)可以在充當(dāng)FM高速緩存150B的匪內(nèi)進行高速緩存。
[0034](3)近存儲器讀高速緩存寫繞過模式:這是以上模式的變形,其中允許對來自NVRAM FM 151B中的持久數(shù)據(jù)進行讀高速緩存(即,在作為用于遠存儲器150B的高速緩存的近存儲器中對持久數(shù)據(jù)進行高速緩存以用于只讀操作)。當(dāng)大多數(shù)持久數(shù)據(jù)是“只讀”并且應(yīng)用使用是高速緩存友好時,這是有用的。
[0035](4)近存儲器讀高速緩存直寫模式:這是近存儲器讀高速緩存寫繞過模式的變形,其中除讀高速緩存之外,寫命中(write-hit)也被高速緩存。對作為用于FM 150B的高速緩存的近存儲器的每次寫都引起對FM 151B的寫。因而,由于高速緩存的直寫性質(zhì),所以仍然保證高速緩存線存留。
[0036]當(dāng)在近存儲器直接訪問模式中動作時,作為系統(tǒng)存儲器151A的近存儲器的全部或部分對軟件而言直接可見,并且形成SPA空間的部分。此類存儲器可以完全在軟件控制之下。此類方案可以創(chuàng)建用于軟件的非統(tǒng)一存儲器地址(NUMA)存儲器域,其中其相對于NVRAM系統(tǒng)存儲器174而從近存儲器144獲得更高的性能。通過示例并非限制的方式,此類使用可以被用于需要對某些數(shù)據(jù)結(jié)構(gòu)非常快訪問的某些高性能計算(HPC)和圖形應(yīng)用。[0037]在可替代的實施例中,近存儲器直接訪問模式通過“釘扎(pinning)”近存儲器中的某些高速緩存線(即,具有也并行地存儲在NVRAM 142中的數(shù)據(jù)的高速緩存線)而實現(xiàn)。此類釘扎可以采用更大的多路且組關(guān)聯(lián)的高速緩存來高效地完成。
[0038]圖2還圖示可以被用作固件存儲器的NVRAM 142的部分。例如,BIOS NVRAM 172部分可以被用來存儲BIOS映像(作為在BIOS閃速170中存儲BIOS信息的替代或附加)。BIOSNVRAM部分172可以是SPA空間的部分,并且可由在處理器核101-104上運行的軟件直接尋址,然而BIOS閃速170可通過1/0子系統(tǒng)115而尋址。作為另一個示例,可信平臺模塊(TPM) NVRAM 173部分可以被用來保護敏感系統(tǒng)信息(例如,加密密鑰)。
[0039]因而,如所指示的,NVRAM 142可以被實現(xiàn)成采用各種不同的模式來操作,包括:作為遠存儲器151B (例如,當(dāng)近存儲器144存在/操作時,無論近存儲器是否經(jīng)由MSC控制124而充當(dāng)用于FM的高速緩存(在一個或多個高速緩存101A-105之后并且在沒有MSC控制124的情況下被直接訪問))HXnvram系統(tǒng)存儲器174 (不作為遠存儲器,原因在于沒有近存儲器存在/操作;并且在沒有MSC控制124的情況下被訪問);NVRAM大容量儲存器152A ;BIOS NVRAM 172 ;以及TPM NVRAM 173。雖然不同的實施例可以規(guī)定采用不同方式的NVRAM模式,但圖3描述了解碼表333的使用。
[0040]圖3圖示了本發(fā)明的實施例可以實現(xiàn)在其上的示例性計算機系統(tǒng)300。計算機系統(tǒng)300包括處理器310和存儲器/儲存器子系統(tǒng)380,其中NVRAM 142被用于系統(tǒng)存儲器、大容量儲存器這二者以及可選地固件存儲器。在一個實施例中,NVRAM 142包括由計算機系統(tǒng)300所使用的用于存儲數(shù)據(jù)、指令、狀態(tài)、以及其它持久和非持久信息的整個系統(tǒng)存儲器和儲存器層次結(jié)構(gòu)。如先前所討論的,NVRAM 142能夠被配置成實現(xiàn)系統(tǒng)存儲器、大容量儲存器、和固件存儲器、TPM存儲器等的典型存儲器和儲存器層次結(jié)構(gòu)中的角色。在圖3的實施例中,NVRAM 142被分成FM 151B、NVRAM大容量儲存器152A、BIOS NVRAM 173、以及TMPNVRAM 173。還考慮具有不同角色的儲存層次,并且NVRAM 142的應(yīng)用不限于以上所描述的角色。
[0041]通過示例的方式,描述了當(dāng)作為用于FM 150B的高速緩存的近存儲器處于回寫高速緩存中時的操作。在一個實施例中,當(dāng)作為用于FM 150B的高速緩存的近存儲器處于以上所提到的回寫高速緩存模式中時,讀操作將首先到達MSC控制器124,其將執(zhí)行查找以確定所請求的數(shù)據(jù)是否存在于充當(dāng)用于FM 150B的高速緩存的近存儲器中(例如,利用標簽高速緩存342)。如果存在,那么其將通過1/0子系統(tǒng)115把數(shù)據(jù)返回到做出請求的CPU、核101-104或1/0設(shè)備。如果數(shù)據(jù)不存在,那么MSC控制器124將把該請求與系統(tǒng)存儲器地址一起發(fā)送到NVRAM控制器332。NVRAM控制器332將使用解碼表333來把系統(tǒng)存儲器地址轉(zhuǎn)換為NVRAM物理設(shè)備地址(PDA),并且把讀操作定向到遠存儲器115B的該區(qū)域。在一個實施例中,解碼表333包括NVRAM控制器332將其用來在系統(tǒng)存儲器地址和NVRAM PDA之間轉(zhuǎn)換的地址間接表(AIT)組件。在一個實施例中,AIT作為被實現(xiàn)以分布存儲器訪問操作并且從而減少NVRAM FM 151B上的耗損的耗損均衡算法的部分而更新??商娲?,AIT可以是在NVRAM控制器332內(nèi)存儲的單獨的表。
[0042]在從NVRAM FM 151B接收到所請求的數(shù)據(jù)時,NVRAM控制器332將把所請求的數(shù)據(jù)返回到將在充當(dāng)FM高速緩存150B的MSC近存儲器中存儲所述數(shù)據(jù)的MSC控制器124,并且還通過1/0子系統(tǒng)115把所述數(shù)據(jù)發(fā)送到做出請求的處理器核101-104、或1/0設(shè)備??梢詮某洚?dāng)FM高速緩存150B的近存儲器直接服務(wù)針對該數(shù)據(jù)的后續(xù)請求,直到其由某一其它的NVRAM FM數(shù)據(jù)所替代。
[0043]如所提到的,在一個實施例中,存儲器寫操作首先還去到MSC控制器124,該MSC控制器124將該存儲器寫操作寫到充當(dāng)FM高速緩存150B的MSC近存儲器中。在回寫高速緩存模式中,當(dāng)接收到寫操作時,可以不將數(shù)據(jù)直接發(fā)送到NVRAM FM 151B。例如,可以僅當(dāng)充當(dāng)在其中存儲所述數(shù)據(jù)的FM高速緩存150B的MSC近存儲器中的位置必須被重新用于為不同的系統(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的近存儲器中檢索該數(shù)據(jù)并且把其發(fā)送到NVRAM控制器332。NVRAM控制器332查找用于系統(tǒng)存儲器地址的PDA并且然后將數(shù)據(jù)寫到NVRAM FM 15IB。
[0044]在圖3中,NVRAM控制器332被示出使用3個單獨的線而連接到FM 151B、NVRAM大容量儲存器152A、以及BIOS NVRAM 172。然而,這不必意味著存在將NVRAM控制器332連接到NVRAM 142的這些部分的3個單獨的物理總線或通信通道。更確切地,在一些實施例中,公共存儲器總線或其它類型的總線(諸如以下參考圖4A-M所描述的那些)被用來將NVRAM控制器332通信耦合到FM 151B,NVRAM大容量儲存器152A、以及BIOS NVRAM 172。例如,在一個實施例中,圖3中的三個線表示總線,諸如存儲器總線(例如,DDR3、DDR4等總線),通過其NVRAM控制器332實現(xiàn)事務(wù)協(xié)議來與NVRAM 142通信。NVRAM控制器332還可以通過支持本地事務(wù)協(xié)議的總線與NVRAM 142通信,諸如PCI高速總線、桌面管理接口(DMI)總線、或利用事務(wù)協(xié)議和足夠小的事務(wù)有效載荷大小(例如,諸如64或128字節(jié)的高速緩存線大小)的任何其它類型的總線。
[0045]在一個實施例中,計算機系統(tǒng)300包括執(zhí)行用于處理器310的中央存儲器訪問控制的集成存儲器控制器(IMC) 331,其耦合到:1)存儲器側(cè)高速緩存(MSC)控制器124,以控制對充當(dāng)遠存儲器高速緩存150B的近存儲器(匪)的訪問;以及2) NVRAM控制器332以控制對NVRAM 142的訪問。盡管在圖3中被圖示為單獨的單元,但MSC控制器124和NVRAM控制器332可以邏輯地形成MC 331的部分。
[0046]在所圖示的實施例中,MSC控制器124包括指定用于充當(dāng)遠存儲器高速緩存150B的匪的操作模式(例如,以上所描述的回寫高速緩存模式、近存儲器繞過模式等)的一組范圍寄存器336。在所圖示的實施例中,DRAM 144被用作用于充當(dāng)用于遠存儲器150B的高速緩存的匪的存儲器技術(shù)。響應(yīng)于存儲器訪問請求,MSC控制器124可以確定(依賴于范圍寄存器336中所指定的操作模式)是能夠從充當(dāng)用于FM 150B的高速緩存的匪服務(wù)該請求還是必須向NVRAM控制器332發(fā)送該請求,所述MSC控制器124然后可以從NVRAM 142的遠存儲器(FM)部分151B服務(wù)該請求。
[0047]在其中NVRAM 142利用PCMS來實現(xiàn)的實施例中,NVRAM控制器332是利用與PCMS技術(shù)一致的協(xié)議來執(zhí)行訪問的PCMS控制器。如先前所討論的,PCMS存儲器固有地能夠以字節(jié)的粒度被訪問。雖然如此,NVRAM控制器332可以以諸如高速緩存線(例如,64位或128位高速緩存線)或與存儲器子系統(tǒng)一致的任何其它級別的粒度之類的較低級別的粒度來訪問基于PCMS的遠存儲器151B。本發(fā)明的基本原理不限于用于訪問基于PCMS的遠存儲器151B的任何特定級別的粒度。然而通常,當(dāng)基于PCMS的遠存儲器151B被用來形成系統(tǒng)地址空間的部分時,粒度級別將高于僅能夠以“塊”的級別來執(zhí)行重寫和擦除操作的傳統(tǒng)地被用于諸如閃速之類的其它非易失性儲存技術(shù)的粒度級別(在大小方面最小為對于NOR閃速而言64千字節(jié)并且對于NAND閃速而言16千字節(jié))。
[0048]在所圖示的實施例中,NVRAM控制器332能夠從解碼表333讀配置數(shù)據(jù)來建立先前所描述的用于NVRAM 142的模式、大小等,或可替代地,能夠依賴于從MC 331和I/O子系統(tǒng)315所傳遞的解碼結(jié)果。例如,在制造時或在現(xiàn)場中,計算機系統(tǒng)300能夠?qū)獯a表333編程,以將NVRAM 142的不同區(qū)域標記為除其它之外尤其是系統(tǒng)存儲器、經(jīng)由SATA接口而暴露的大容量儲存器、經(jīng)由USB單批量傳輸(BOT)接口而暴露的大容量儲存器、支持TPM儲存的加密儲存器。訪問通過其被引向NVRAM設(shè)備142的不同分區(qū)的方式是經(jīng)由解碼邏輯。例如,在一個實施例中,每個分區(qū)的地址范圍被定義在解碼表333中。在一個實施例中,當(dāng)MC331接收到訪問請求時,對請求的目標地址進行解碼以揭露請求是定向到存儲器、NVRAM大容量儲存器、還是I/O。如果其是存儲器請求,IMC 131和/或MSC控制器124進一步根據(jù)目標地址來確定該請求是定向到作為用于FM 150B的高速緩存的匪還是到FM 151B。對于FM 151B訪問而言,該請求被轉(zhuǎn)發(fā)到NVRAM控制器332。如果該請求定向到I/O (例如,非儲存和儲存I/O設(shè)備),那么IMC 131將該請求傳遞到I/O子系統(tǒng)115。I/O子系統(tǒng)115進一步對該地址解碼以確定該地址是指向NVRAM大容量儲存器152A、BIOS NVRAM 172還是其它非儲存或儲存I/O設(shè)備。如果該地址指向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é)議,以使得平臺的其余部分仍不知道由存儲器和儲存器層次結(jié)構(gòu)中的NVRAM 142所執(zhí)行的多個角色。在可替代的實施例中,NVRAM控制器332可以執(zhí)行對NVRAM142的存儲器訪問而不管其是何事務(wù)類型。要理解的是,解碼路徑能夠與以上所描述的不同。例如,IMC 331可以對訪問請求的目標地址進行解碼并且確定其是否定向到NVRAM 142。如果其定向到NVRAM 142,那么MC 131根據(jù)解碼表333生成屬性。基于該屬性,IMC 131然后將請求轉(zhuǎn)發(fā)到適當(dāng)?shù)南掠芜壿?例如,NVRAM控制器332和I/O子系統(tǒng)315)以執(zhí)行所請求的數(shù)據(jù)訪問。在又另一個實施例中,如果對應(yīng)的屬性未從上游邏輯(例如,IMC 331和I/O子系統(tǒng)315)傳遞下去,那么NVRAM控制器332可以對目標地址進行解碼。也可以實現(xiàn)其它解碼路徑。
[0050]諸如本文所描述的新存儲器架構(gòu)的出現(xiàn)提供了很多新的可能性。盡管以下進一步以大得多的長度來討論,但就在以下快速地突顯了這些可能性中的一些。
[0051]根據(jù)一個可能的實現(xiàn),NVRAM 142充當(dāng)用于系統(tǒng)存儲器中的傳統(tǒng)DRAM技術(shù)的全部的替代或補充。在一個實施例中,NVRAM 142表示第二級系統(tǒng)存儲器的引入(例如,系統(tǒng)存儲器可以視為具有包括作為高速緩存150B的近存儲器的第一級系統(tǒng)存儲器(DRAM設(shè)備340的部分)和包括遠存儲器(FM) 151B的第二級系統(tǒng)存儲器(NVRAM 142的部分)。
[0052]根據(jù)一些實施例,NVRAM 142充當(dāng)用于閃速/磁/光大容量儲存器152B的全部的替代或補充。如先前所描述的,在一些實施例中,即使NVRAM 152A能夠字節(jié)級別可尋址,NVRAM控制器332仍然可以依賴于實現(xiàn)而采用多個字節(jié)的塊(例如,64千字節(jié)、128千字節(jié)等)來訪問NVRAM大容量儲存器152A。由NVRAM控制器332從NVRAM大容量儲存器152A訪問數(shù)據(jù)的特定方式可以對由處理器310所運行的軟件而言透明。例如,即使可以與閃速/磁/光大容量儲存器152A不同地訪問NVRAM大容量儲存器152A,操作系統(tǒng)仍然可以將NVRAM大容量儲存器152A視為標準大容量儲存設(shè)備(例如,串行ATA硬盤驅(qū)動或其它標準形式的大容量儲存設(shè)備)。
[0053]在其中NVRAM大容量儲存器152A充當(dāng)用于閃速/磁/光大容量儲存器152B的全部替代的實施例中,不必使用儲存器驅(qū)動器進行塊可尋址儲存器訪問。儲存器驅(qū)動器開銷從儲存器訪問中的移除能夠提高訪問速度并且節(jié)約功率。在其中期望NVRAM大容量儲存器152A對于OS和/或應(yīng)用而言表現(xiàn)為塊可訪問且不可與閃速/磁/光大容量儲存器152B區(qū)分的可替代實施例中,模擬的儲存器驅(qū)動器能夠被用來向軟件暴露塊可訪問接口(例如,通用串行總線(USB)單批量傳輸(BOT)L O ;串行高級技術(shù)附件(SATA)3.0等)以供訪問NVRAM大容量儲存器152A。
[0054]在一個實施例中,NVRAM 142充當(dāng)用于諸如BIOS閃速362和TPM閃速372之類的固件存儲器的全部的替代或補充(在圖3中利用點線來圖示以指示其是可選的)。例如,NVRAM142可以包括BIOS NVRAM 172部分以補充或替代BIOS閃速362,并且可以包括TPM NVRAM173部分以補充或替代TPM閃速372。固件存儲器還能夠存儲由TPM 334用來保護敏感系統(tǒng)信息(例如,加密密鑰)的系統(tǒng)持久狀態(tài)。在一個實施例中,將NVRAM 142用于固件存儲器消除了第三方閃速部件存儲對系統(tǒng)操作而言關(guān)鍵的代碼和數(shù)據(jù)的需要。
[0055]然后繼續(xù)圖3的系統(tǒng)的討論,盡管在圖3中為了簡單而示出了單個處理器310,但在一些實施例中,計算機系統(tǒng)100的架構(gòu)可以包括多個處理器。處理器310可以是任何類型的數(shù)據(jù)處理器,包括通用或?qū)S弥醒胩幚韱卧?CPU)、專用集成電路(ASIC)或數(shù)字信號處理器(DSP)。例如,處理器310可以是通用處理器,諸如C0re?i3、i5、i7、2雙核和四核、Xeon?、或Itanium?處理器,所有的這些都可從加利福尼亞州圣克拉拉市的因特爾公司獲得。可替代地,處理器310可以來自另一個公司,諸如加拿大森尼維爾市的ARM持股有限公司、加拿大森尼維爾市的MIPS科技公司等。處理器310可以是專用處理器,諸如,例如網(wǎng)絡(luò)或通信處理器、壓縮引擎、圖形處理器、協(xié)處理器、嵌入處理器等。處理器310可以在被包括在一個或多個封裝內(nèi)的一個或多個芯片上實現(xiàn)。處理器310可以屬于和/或可以使用許多工藝技術(shù)(諸如,例如BiCM0S、C0MS、或NM0S)中的任何一個而實現(xiàn)在一個或多個襯底上。在圖3中所示出的實施例中,處理器310具有片上系統(tǒng)(SOC)配置。
[0056]在一個實施例中,處理器310包括集成圖形單元311,其包括用于運行諸如3D或2D圖形命令之類的圖形命令的邏輯。雖然本發(fā)明的實施例不限于任何特定的集成圖形單元311,但在一個實施例中,圖形單元311能夠運行行業(yè)標準圖形命令,諸如由OpenGL和/或Direct X應(yīng)用編程接口(API)(例如,OpenGL 4.1和Direct X 11)所規(guī)定的那些。
[0057]再次,盡管為了清楚起見,在圖3中圖示了單個核,但處理器310也可以包括一個或多個核101-104。在許多實施例中,一個或多個核101-104包括內(nèi)部功能塊,諸如一個或多個執(zhí)行單元、回收單元、一組通用和特定寄存器等。如果一個或多個核是多線程或超線程的,那么每個硬件線程也可以視為“邏輯”核。核101-104可以在架構(gòu)和/或指令集方面是同質(zhì)或異質(zhì)的。例如,一些核可以是有序的,而其它是無序的。作為另一個示例,兩個或更多的核可以能夠運行相同的指令集,而其它可以僅能夠運行該指令集的子集或不同的指令集。[0058]處理器310還可以包括可以被實現(xiàn)為SRAM和/或DRAM的一個或多個高速緩存,諸如高速緩存313。在未示出的許多實施例中,不同于高速緩存313的附加的高速緩存被實現(xiàn)成使得多個級別的高速緩存存在于一個或多個核101-104中的執(zhí)行單元與存儲器設(shè)備150B和151B之間。例如,該組共享高速緩存單元可以包括高級高速緩存(諸如級別I (LI)高速緩存)、中級高速緩存(諸如級別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,其包括協(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設(shè)備144可以在與MC331和MSC控制器124相同的芯片或不同的芯片上;因而,一個芯片可以具有處理器310和DRAM設(shè)備144 ;一個芯片可以具有處理器310并且另一個具有DRAM設(shè)備144以及(這些芯片可以在相同或不同的封裝中);一個芯片可以具有一個或多個核101-104并且另一個具有IMC 331、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使得能夠?qū)崿F(xiàn)處理器310與以下串行或并行I/O設(shè)備之間的通信:一個或多個網(wǎng)絡(luò)336(諸如,局域網(wǎng)、廣域網(wǎng)、或因特網(wǎng))、儲存I/O設(shè)備(諸如,閃速/磁/光大容量儲存器152B、BIOS閃速362、TPM閃速372)、以及一個或多個非儲存I/O設(shè)備337 (諸如,顯示器、鍵盤、揚聲器等)。I/O子系統(tǒng)115可以包括平臺控制器中樞(PCH)(未示出),其進一步包括若干I/O適配器338和其它I/O電路以提供對儲存及非儲存I/O設(shè)備和網(wǎng)絡(luò)的訪問。為了實現(xiàn)此,I/O子系統(tǒng)115可以具有用于所利用的每個I/O協(xié)議的至少一個集成I/O適配器338。I/O子系統(tǒng)115能夠處于與處理器310相同的芯片上、或者連接到處理器310的單獨的芯片和/或封裝上。
[0062]I/O適配器338將處理器310內(nèi)所利用的主機通信協(xié)議轉(zhuǎn)換為與特定的I/O設(shè)備兼容的協(xié)議。對于閃速/磁/光大容量儲存器152B而言,I/O適配器338可以轉(zhuǎn)換的協(xié)議中的一些除其它之外尤其包括外圍組件互連(PCI)-高速(PC1-E),3.0、USB,3.0、SATA, 3.0、小型計算機系統(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和藍牙,4.0 ;無線局域網(wǎng),諸如基于IEEE 802.11的無線協(xié)議;和蜂窩協(xié)議。
[0063]在一些實施例中,I/O子系統(tǒng)115耦合到TPM控制334以控制對諸如安全數(shù)據(jù)、加密密鑰、平臺配置信息等之類的系統(tǒng)持久狀態(tài)的訪問。在一個實施例中,這些系統(tǒng)持久狀態(tài)被存儲在TMP NVRAM 173中并且經(jīng)由NVRAM控制器332被訪問。
[0064]在一個實施例中,TPM 334是具有密碼功能的安全微控制器。TPM 334具有多個信任相關(guān)的能力;例如,用于確保由TPM所保護的數(shù)據(jù)僅可用于相同的TPM的“密封”能力。TPM 334能夠使用其加密能力來保護數(shù)據(jù)和密鑰(例如,秘密)。在一個實施例中,TPM 334具有允許其認證硬件設(shè)備和平臺的唯一且秘密的RSA密鑰。例如,TPM 334能夠驗證:尋求對計算機系統(tǒng)300中存儲的數(shù)據(jù)的訪問的系統(tǒng)是所預(yù)期的系統(tǒng)。TPM 334還能夠報告平臺(例如,計算機系統(tǒng)300)的完整性。這允許外部資源(例如,網(wǎng)絡(luò)上的服務(wù)器)確定平臺的可信性,但不防止由用戶對平臺的訪問。
[0065]在一些實施例中,I/O子系統(tǒng)315還包括管理引擎(ME) 335,其是允許系統(tǒng)管理員監(jiān)視、維護、更新、升級、和修復(fù)計算機系統(tǒng)300的微處理器。在一個實施例中,系統(tǒng)管理員能夠通過經(jīng)由網(wǎng)絡(luò)336通過ME 335來編輯解碼表333的內(nèi)容而遠程地配置計算機系統(tǒng)300。
[0066]為了解釋的方便,本申請的剩余部分有時將NVRAM 142稱為PCMS設(shè)備。PCMS設(shè)備包括非易失性的多層(垂直堆疊的)PCM單元陣列,具有低功耗,并且在位級別可修改。照此,在以下討論中,術(shù)語“NVRAM設(shè)備”和“PCMS設(shè)備”可以可互換地使用。然而應(yīng)該認識到,如以上所討論的,除PCMS之外的不同的技術(shù)也可以被用于NVRAM 142。 [0067]應(yīng)該理解,即使計算機系統(tǒng)的處理器不具有處理器310的所有以上所描述的組件,或者具有比處理器310更多的組件,該計算機系統(tǒng)也能夠?qū)VRAM 142用于系統(tǒng)存儲器、大容量儲存器、固件存儲器和/或其它存儲器和儲存器目的。
[0068]在圖3中所示出的特定的實施例中,MSC控制器124和NVRAM控制器332位于與處理器310相同的管芯或封裝(被稱為CPU封裝)上。在其它實施例中,MSC控制器124和/或NVRAM控制器332可以位于管芯外或CPU封裝外,通過諸如存儲器總線(像DDR總線(例如,DDR3、DDR4等))、PCI高速總線、桌面管理接口(DMI)總線、或任何其它類型的總線之類的總線而耦合到處理器310或CPU封裝。
[0069]作為用于遠存儲器的高速緩存層的近存儲器的實現(xiàn)
如以上所討論的,在各種配置中,近存儲器能夠被配置為用于遠存儲器的高速緩存層。本文,可以為特定的(例如,特定范圍的)系統(tǒng)存儲器地址預(yù)留特定的遠存儲器儲存設(shè)備(例如,特定安裝的PCMS存儲器芯片)。照此,特定的近存儲器儲存設(shè)備(例如,特定安裝的DRAM存儲器芯片)可以被設(shè)計成充當(dāng)用于特定的遠存儲器儲存設(shè)備的高速緩存層。因此,這些特定的近存儲器儲存設(shè)備應(yīng)該具有減少最頻繁訪問的系統(tǒng)存儲器地址的訪問時間的效果,特定的遠存儲器儲存設(shè)備被設(shè)計成為所述系統(tǒng)存儲器地址提供儲存。
[0070]根據(jù)進一步的方法,在圖4中所觀察的,近存儲器設(shè)備被配置為用于其遠存儲器配對物(counterpart)的直接映射的高速緩存。如本領(lǐng)域中良好地理解的,直接映射的高速緩存被設(shè)計成使得高速緩存中的每個條目為更深存儲中的唯一條目集而預(yù)留。也就是說,在該情況下,遠存儲器401的儲存空間能夠被視為分解成不同的儲存集401_1、401_2、…401_N,其中每個集被分配高速緩存402中的條目。照此,如圖4中所觀察的,條目402_1為與集401_1關(guān)聯(lián)的任何的系統(tǒng)存儲器地址而預(yù)留;條目402_2為與集401_2關(guān)聯(lián)的任何的系統(tǒng)存儲器地址而預(yù)留等。通常,在圖4以及圖7a、8a和11的任何一個中出現(xiàn)的任何的結(jié)構(gòu)“邏輯塊”可以大部分地(如果不是整體地)利用邏輯電路來實現(xiàn)。
[0071]圖4還示出可以例如從CPU處理核被提供的用于向或從系統(tǒng)存儲器的讀或?qū)懯聞?wù)的示例性系統(tǒng)存儲器地址的部分。實質(zhì)上,一組集合位404定義系統(tǒng)存儲器地址與哪個集合相關(guān)聯(lián),并且一組標簽位405定義系統(tǒng)存儲器地址與適當(dāng)?shù)募现械哪膫€條目(其可以對應(yīng)于高速緩存線)相對應(yīng)。較低階位403標識高速緩存線內(nèi)的特定字節(jié)。
[0072]例如,根據(jù)一個示例性實現(xiàn),高速緩存線大小是64字節(jié),高速緩存402利用大約I千兆字節(jié)(GB)的DRAM儲存來實現(xiàn),并且遠存儲器儲存401利用大約16千兆字節(jié)(GB)的PCMS儲存來實現(xiàn)。地址部分405、404和403對應(yīng)于34位的地址空間A [33:0]。本文,較低階位403對應(yīng)于地址位A [5:0],集合地址位404對應(yīng)于地址位A [29:6],并且標簽地址位405對應(yīng)于地址位A [33:30]。
[0073]根據(jù)該布置,注意四個標簽位405指定與DRAM儲存與PCMS儲存之比對應(yīng)的I至16的范圍內(nèi)的值。照此,高速緩存402中的每個條目將映射到16個不同的遠存儲器401高速緩存線(即,提供跨16個不同的遠存儲器401高速緩存線的可高速緩存支持)。該布置本質(zhì)上定義遠存儲器401中的每個集合的大小(每個集合16個高速緩存線)。與高速緩存402中的條目的數(shù)量對應(yīng)的集合的數(shù)量由集合位404定義。在該示例中,集合位404與地址空間的24位(地址位A[29:6])相對應(yīng),其繼而與16,777,216個高速緩存條目/集合相對應(yīng)。因而,64字節(jié)高速緩存線與高速緩存402內(nèi)的大約IGB的儲存(16,777,216 x 64字節(jié)=I, 073,741,824 字節(jié))相對應(yīng)。
[0074]如果高速緩存402的大小被加倍以包括2GB的DRAM,那么將存在每個集合8個高速緩存線(而不是16),原因在于DRAM =PCMS比將加倍到2:16=1:8。照此標簽405將利用3位(A[33:31])而不是4位來表達。DRAM空間的加倍通過將附加的最高有效位提供到集合位404 (即,地址位A [30:6]而不是A [29:6])(這本質(zhì)上使集合的數(shù)量加倍)來進一步考慮。
[0075]圖4中所觀察的遠存儲器儲存401可以僅與計算機系統(tǒng)的總的遠存儲器儲存的子集相對應(yīng)。例如,用于計算系統(tǒng)的完整系統(tǒng)存儲器可以通過包含圖4中所觀察的近/遠存儲器子系統(tǒng)的多個實例而實現(xiàn)(例如,一個實例用于系統(tǒng)存儲器地址的每個唯一子集)。本文,根據(jù)一種方法,較高階位408被用來指示多個近/遠存儲器子系統(tǒng)之中的哪個特定實例申請給定的系統(tǒng)存儲器訪問。例如,如果每個實例與起源于主機側(cè)409 (或更一般地,主機)的不同的存儲器通道相對應(yīng),那么較高階位408將實際上指定可應(yīng)用的存儲器通道。在采用被稱為“置換”尋址方法的替代方法中,較高階位408不存在。更確切地,位405表示最高階位,并且最低階位空間403內(nèi)的位被用來確定哪個存儲器通道要被用于該地址。該方法被認為通過實際上將更多隨機化引入到隨時間而利用的特定存儲器通道中而給出更好的系統(tǒng)性能。地址位能夠采用任何次序。
[0076]圖5 (寫)和圖6 (讀)描繪圖4的近/遠存儲器子系統(tǒng)的可能的操作方案。參考圖4和圖5,針對寫操作,集成存儲器控制器431接收包括寫地址和要寫的數(shù)據(jù)的寫事務(wù)501。該事務(wù)可以存儲在緩沖器415中。在確定哪個近/遠存儲器子系統(tǒng)實例應(yīng)用時(例如,根據(jù)較高階位408的分析),存儲器側(cè)控制(MSC)邏輯424的命中(hit)未命中(miss)邏輯414向近存儲器高速緩存接口邏輯416提供集合位404,來使得用于可應(yīng)用集合的高速緩存條目從近存儲器高速緩存402來讀502。本文,近存儲器高速緩存接口邏輯416特定于存儲器通道401上的近存儲器(例如,DRAM)而負責(zé)實現(xiàn)協(xié)議,包括電信號的生成/接收。
[0077]如圖4中所觀察的,在實施例中,每個高速緩存條目與其對應(yīng)的數(shù)據(jù)410 —起包括嵌入標簽411、臟位412和ECC信息413。嵌入標簽411標識遠存儲器401中的條目的可應(yīng)用集合中的哪個高速緩存線被高速緩存在高速緩存402中。臟位412指示被高速緩存的條目是否為用于高速緩存線的唯一有效復(fù)制。如本領(lǐng)域中公知的,ECC信息413被用來檢測以及可能地校正從/向高速緩存402讀和/或?qū)憲l目時發(fā)生的錯誤。
[0078]在用于可應(yīng)用集合的被高速緩存的條目利用近存儲器高速緩存接口邏輯416被讀之后,MSC命中/未命中邏輯414將剛讀的條目的嵌入標簽411與寫事務(wù)的地址的標簽405相比較503 (注意,讀自該高速緩存的條目可以存儲在讀緩沖器417中)。如果它們匹配,那么被高速緩存的條目與事務(wù)的目標相對應(yīng)(高速緩存命中)。因此,命中/未命中邏輯414使得近存儲器高速緩存接口邏輯利用為事務(wù)而接收的新數(shù)據(jù)來改寫504高速緩存402中的剛讀的高速緩存條目。處于寫執(zhí)行中的MSC控制邏輯424保持嵌入標簽411的值不變。MSC控制邏輯424還設(shè)置臟位412以指示新寫的條目與高速緩存線的唯一有效版本相對應(yīng),并且計算用于高速緩存線的新ECC數(shù)據(jù)。讀自讀緩沖器417中的高速緩存402的高速緩存線被丟棄。此時,該過程以高速緩存命中而結(jié)束。
[0079]如果讀自高速緩存402的高速緩存線的嵌入標簽411不匹配于事務(wù)地址的標簽405 (高速緩存未命中),與高速緩存命中一樣,命中/未命中邏輯414使得近存儲器高速緩存接口邏輯416將與該事務(wù)關(guān)聯(lián)的新數(shù)據(jù)寫505到高速緩存402中(利用如地址規(guī)定的集合位404),以實際上改寫剛讀自高速緩存402的高速緩存線。嵌入標簽411被寫為與該事務(wù)關(guān)聯(lián)的標簽位405。臟位412被寫以指示被高速緩存的條目是用于該高速緩存線的唯一有效復(fù)制。存儲器控制器的ECC邏輯420計算用于隨該事務(wù)而接收到的高速緩存線的ECC信息413,并且近存儲器高速緩存接口邏輯416將其與高速緩存線一起寫到高速緩存402中。
[0080]關(guān)于剛讀自高速緩存并且存儲在讀緩沖器417中的高速緩存線,近存儲器命中/未命中邏輯414檢查其關(guān)聯(lián)的臟位506,并且如果臟位指示讀緩沖器417中的高速緩存線是高速緩存線的唯一有效版本(臟位被“設(shè)置”),命中/未命中邏輯414使得NVRAM控制器432通過其遠存儲器接口邏輯418將高速緩存線寫507到其適當(dāng)?shù)倪h存儲器位置中(使用剛?cè)绲刂范x的事務(wù)的集合位404和高速緩存線的嵌入標簽位411)。本文,遠存儲器接口邏輯418特定于存儲器通道401上的遠存儲器(例如,PCMS)而負責(zé)實現(xiàn)協(xié)議,包括電信號的生成/接收。如果讀緩沖器417中的高速緩存線的臟位指示讀緩沖器417中的高速緩存線不是高速緩存線的唯一有效版本,那么讀緩沖器中的高速緩存線被丟棄。
[0081]本文,在其中到近存儲器高速緩存和遠存儲器的接口 416、418不忙的時刻期間,MSC控制邏輯424可以從高速緩存402讀高速緩存線條目,并且針對設(shè)置了其臟位的那些高速緩存線條目,存儲器控制器將把其重寫到遠存儲器中,并且“清除”其關(guān)聯(lián)的臟位以指示高速緩存402中的高速緩存線不再是高速緩存線的唯一有效復(fù)制。
[0082]此外,相關(guān)地指出,相應(yīng)的近存儲器高速緩存和遠存儲器接口 416、418能夠彼此完全隔離或者關(guān)于彼此具有一定重疊。本文,重疊與相應(yīng)的近和遠存儲器協(xié)議和/或信令的相同的方面(例如,相同的時鐘信號、相同的管芯上終止信號、相同的尋址信號等)相對應(yīng),并且因而可以使用相同的電路來訪問近存儲器高速緩存和遠存儲器。非重疊區(qū)域與兩個協(xié)議和/或信令的不相同的方面相對應(yīng),并且因而具有可應(yīng)用于近存儲器高速緩存和遠存儲器中的僅一個的電路。
[0083]以上所描述的架構(gòu)能夠被用于其中MSC控制邏輯424通過與NVRAM控制器432和遠存儲器401通過其而耦合通過的存儲器通道不同的隔離存儲器通道來耦合到近存儲器高速緩存402。本文,對于任何特定的通道,依賴于是近存儲器高速緩存還是遠存儲器被耦合到通道來啟用接口 416、418之一而禁用另一個。同樣地,啟用MSC控制邏輯424和NVRAM控制器432之一而禁用另一個。在實施例中,例如可以由BIOS寫到的與存儲器控制器(未示出)關(guān)聯(lián)的配置寄存器確定要啟用哪個配置。
[0084]以上相同的架構(gòu)還可以支持其中近存儲器高速緩存和遠存儲器耦合到相同的通道421的另一個配置。在該情況下,接口 416、416的集成能夠被視為到通道421的單個接口。根據(jù)該配置,“啟用”接口 416、418這二者和控制器424、432這二者,但僅一組(用于近存儲器的接口 416和控制器424,以及用于遠存儲器的接口 418和控制器432)能夠在任何特定的時間點使用該通道。本文,通道的使用隨時間而在近存儲器信令和遠存儲器信令之間交替。該配置可以利用例如前述的配置寄存器中的第三設(shè)置來建立。以下討論主要與該設(shè)置相關(guān)。
[0085]本文,通過能夠?qū)⑾嗤耐ǖ烙糜诮鎯ζ髟L問和遠存儲器訪問這二者,插入到通道中的近存儲器高速緩存能夠被用作用于插入到相同的通道中的遠存儲器儲存的近存儲器高速緩存。換種說法,可以將特定的系統(tǒng)存儲器地址分配到一個單個通道。插入到通道中的遠存儲器設(shè)備為這些特定的系統(tǒng)存儲器地址提供了遠存儲器儲存,并且插入到相同的通道中的近存儲器儲存為這些遠存儲器設(shè)備提供了高速緩存空間。照此,以上所描述的調(diào)用近存儲器和遠存儲器這二者(例如,由于高速緩存未命中和/或臟位被設(shè)置)的事務(wù)能夠通過相同的通道而發(fā)生。
[0086]根據(jù)一種方法,通道被設(shè)計成包括單獨的平板卡(例如,DIMM)能夠插入到其中的機械插座/連接器,所述單獨的平板卡在其上布置了集成電路。本文,所述卡具有與通道的插座/連接器配對的對應(yīng)的插座/連接器。能夠?qū)⒕哂袃H遠存儲器儲存的一個或多個卡插入到第一組連接器中,以實現(xiàn)用于通道的遠存儲器儲存。僅具有近存儲器儲存的一個或多個卡能夠插入到相同的通道中并且充當(dāng)用于遠存儲器卡的近存儲器高速緩存。
[0087]本文,在遠存儲器儲存固有地比近存儲器儲存更密集但近存儲器儲存固有地比遠存儲器儲存更快的情況下,能夠利用考慮到的“速度對密度”權(quán)衡來設(shè)計通道。也就是說,越多的近存儲器卡插入到通道中,通道將執(zhí)行得越快,但代價是越少的由通道所支持的總儲存容量。反之,越少的近存儲器卡插入到通道中,通道將執(zhí)行得越慢,但具有由通道所支持的增強的儲存容量的附加益處。極端情況可以包括其中僅在通道中填入較快的存儲器儲存技術(shù)(例如,DRAM)(在該情況下,其可以像用于另一個通道上的遠存儲器的高速緩存一樣動作,或不像高速緩存一樣動作而是被分配其自身的特定系統(tǒng)存儲器地址空間)或僅在通道中填入較慢的存儲器儲存技術(shù)(例如,PCMS )的實施例。
[0088]在其它實施例中,將近存儲器和遠存儲器布置在相同的卡上,在該情況下,即使多個此類卡被插入到相同的通道中,速度/密度權(quán)衡也由所述卡來確定。[0089]圖6描繪讀事務(wù),根據(jù)圖6的方法,存儲器控制器431接收包括讀地址611的讀事務(wù)。事務(wù)可以存儲在緩沖器415中。在確定哪個近/遠存儲器子系統(tǒng)(例如,哪個存儲器通道)實例應(yīng)用時,MSC控制器的命中未命中邏輯414向近存儲器高速緩存接口邏輯416提供集合位404,以使得用于可應(yīng)用集合的被高速緩存的條目從高速緩存402來讀612。
[0090]在利用高速緩存接口邏輯416來讀用于可應(yīng)用集合的被高速緩存的條目之后,命中/未命中邏輯414將剛讀的條目的嵌入標簽411與讀事務(wù)的地址的標簽405相比較613。如果其匹配,那么被高速緩存的條目與事務(wù)的目標相對應(yīng)(高速緩存命中)。因此,讀過程結(jié)束。如果讀自高速緩存402的高速緩存線的嵌入標簽411與事務(wù)地址的標簽405不匹配(高速緩存未命中),那么命中/未命中邏輯414使得遠存儲器接口邏輯418讀614事務(wù)中所指定的地址處的遠存儲器儲存(403、404、405)。然后,將讀自遠存儲器的高速緩存線寫到高速緩存615中,并且如果在步驟612中為讀自近存儲器高速緩存的高速緩存線設(shè)置了臟位,那么讀自近存儲器高速緩存的高速緩存線被寫到遠存儲器616中。
[0091]盡管MSC控制器424可以執(zhí)行對讀自遠存儲器的讀數(shù)據(jù)進行檢查的ECC,但如以下更詳細地描述的,根據(jù)各種實施例,ECC檢查可以由駐存于一個或多個遠存儲器設(shè)備本地(例如,附到一個或多個PCMS設(shè)備被附到的相同的DMM)的邏輯電路422來執(zhí)行。該相同的邏輯電路422還可以在高速緩存未命中和臟位被“設(shè)置”的情況下為寫事務(wù)計算ECC信
肩、O
[0092]此外,在其中相同的存儲器通道421被用來傳送近存儲器信令和遠存儲器信令的實施例中,邏輯電 路422能夠被用來“加速”以上所描述的核寫和讀過程。就在以下討論了這些加速中的一些。
[0093]利用耦合到相同的存儲器通道的近存儲器和遠存儲器的讀和寫事務(wù) A.近存儲器在遠存儲器控制邏輯的“前面”
圖7a示出“近存儲器在前面”方法,而圖8a示出“近存儲器在后面”方法。以下將進一步更詳細地討論“近存儲器在后面”方法。對于以下的每個模型以及其隨后的討論而言,術(shù)語“存儲器控制器”或“主機”或“主機側(cè)”被用來(主要)指代由MSC控制器或NVRAM控制器所執(zhí)行的電路和/或動作。在特定的情形下應(yīng)用哪個電路在以下中直截了當(dāng)?shù)乩斫?當(dāng)近存儲器高速緩存在通道上被訪問時,MSC控制器被包含,然而當(dāng)遠存儲器在通道上被訪問時,NVRAM控制器被包含。此外,以下討論還涉及遠離主機側(cè)并且位于“通道上之外”的遠存儲器附近的“遠存儲器控制器”或“遠存儲器控制邏輯”。本文,遠存儲器控制邏輯能夠被視為NVRAM控制器的組件,其中NVRAM控制器的另一個組件駐存在主機上以從主機側(cè)執(zhí)行適當(dāng)?shù)倪h存儲器訪問(與以下的實施例一致)。
[0094]參考圖7a,注意近存儲器儲存設(shè)備702_1、702_2...702_Ν (諸如多個DRAM芯片)獨立于遠存儲器邏輯電路722 (及其關(guān)聯(lián)的遠存儲器儲存設(shè)備701_1、701_2、…702_Μ (諸如多個PCMS芯片)耦合到通道721而耦合到相同的通道721。
[0095]換種說法,近存儲器平臺730和遠存儲器平臺732獨立于彼此而單獨地連接到相同的通道721。該方法能夠例如利用插入到相同的存儲器通道中的具有不同的相應(yīng)的存儲器儲存技術(shù)的不同的DMMS (例如,近存儲器平臺730與DRAM DIMM相對應(yīng),并且遠存儲器平臺732與PCMS DIMM相對應(yīng))來實現(xiàn)。該方法還能夠例如利用包含不同的相應(yīng)的存儲器儲存技術(shù)(例如,近存儲器平臺730與DIMM的一側(cè)相對應(yīng),并且遠存儲器平臺732與DIMM的另一側(cè)相對應(yīng))的相同的DIMM來實現(xiàn)。
[0096]圖7b示出包括高速緩存未命中的讀事務(wù),其中遠存儲器控制邏輯722自動地檢測高速緩存未命中并且作為響應(yīng)自動地讀遠存儲器。參考圖7a和7b,主機側(cè)MSC控制邏輯424a接收讀請求761并且從高速緩存702讀用于可應(yīng)用集合的高速緩存線條目762。作為訪問高速緩存702的通道721上的事務(wù)的部分,主機側(cè)MSC控制邏輯424a將原始讀請求的標簽位705 “偷傳(sneak)”到通道721上。在進一步的實施例中,主機側(cè)MSC控制邏輯424a還能夠偷傳指示由存儲器控制器接收到的原始事務(wù)請求是讀請求(而不是寫請求)的信息780。
[0097]根據(jù)一種方法,在以下更詳細地解釋的,在近存儲器地址總線的未使用行或列地址上“偷傳”標簽位705和讀/寫信息780。在進一步的實施例中,與行地址位相比更多的列地址位被用于該目的。根據(jù)還進一步的方法,通過被用于將尋址信息傳送到近存儲器儲存設(shè)備(并且潛在地,還有遠存儲器設(shè)備)的通道721的命令總線組件來提供所偷傳的信息705,780ο
[0098]因為遠程控制邏輯電路722連接到通道721,其能夠“抓取(scarf )”:1)來自原始請求的標簽位705 (以及讀事務(wù)的指示780),當(dāng)其在通道721上被偷傳時;2)應(yīng)用于近存儲器高速緩存702的讀地址;以及3)高速緩存線及其關(guān)聯(lián)的嵌入標簽位711、臟位712以及ECC信息713,當(dāng)從近存儲器高速緩存702讀時。本文,抓取763被理解成包括將這些信息項的任何/所有本地地(例如,在被嵌入的寄存器空間750中)存儲在邏輯電路722上。
[0099]照此,還包括其自身命中/未命中邏輯723的遠存儲器控制邏輯電路722能夠與存儲器控制器的命中/未命中邏輯714并行地確定764存在高速緩存命中還是高速緩存未命中。在高速緩存命中的情況下,遠存儲器控制邏輯電路722不采取進一步的動作并且存儲器控制器731對讀自高速緩存的數(shù)據(jù)執(zhí)行ECC計算,并且將其與嵌入的ECC信息714相比較以確定高速緩存讀數(shù)據(jù)是否有效。
[0100]然而,在高速緩存未命中的情況下,并且在知道事務(wù)是讀事務(wù)的情況下(例如,根據(jù)偷傳信息780),邏輯電路722將意識到將需要讀其組成的遠存儲器儲存701來最終服務(wù)原始讀請求。照此,根據(jù)一個實施例,邏輯電路722能夠自動地讀765其關(guān)聯(lián)的遠存儲器資源732來檢索所期望的讀信息,對讀自遠存儲器(其還具有嵌入的ECC信息)的高速緩存線執(zhí)行ECC計算,并且如果在數(shù)據(jù)中不存在損壞,則提供所期望的遠存儲器讀信息。
[0101]如以上剛提及的,為了執(zhí)行這種“自動讀”,應(yīng)該由存儲器控制器731采用某種方式來通知邏輯電路722:整體事務(wù)是與寫操作相對的讀操作(如果以上所描述的事務(wù)是寫事務(wù),那么邏輯電路將不需要執(zhí)行遠存儲器的讀)。根據(jù)一個實施例,如以上已經(jīng)提到的,指示關(guān)于是寫事務(wù)還是讀事務(wù)起作用的讀/寫信息780被“偷傳”到邏輯電路722 (例如,與原始事務(wù)請求的標簽信息705 —起)。
[0102]與遠存儲器控制邏輯722自動讀遠存儲器732并行地,存儲器控制器731能夠在通道721上將讀請求786調(diào)度并發(fā)布到遠存儲器控制邏輯722。如以下更詳細地描述的,在實施例中,存儲器控制器731被配置成通過通道721傳送兩個不同的協(xié)議:i)特定于近存儲器設(shè)備730的第一協(xié)議(例如,行業(yè)標準DDR DRAM協(xié)議);以及ii)特定于遠存儲器設(shè)備732的第二協(xié)議(例如,特定于PCMS設(shè)備的協(xié)議)。本文,近存儲器高速緩存讀請求762利用第一協(xié)議來實現(xiàn),并且相比之下,對遠存儲器786的讀請求利用第二協(xié)議來實現(xiàn)。[0103]在進一步實施例中,如以下進一步更詳細地描述的,因為由遠存儲器設(shè)備732響應(yīng)讀請求786所需的時間不能被確定無疑地預(yù)測,所以整體讀事務(wù)的標識符790 (“事務(wù)id”)與由存儲器控制器所發(fā)送的遠存儲器讀請求786 —起被發(fā)送到遠存儲器控制邏輯722。當(dāng)該數(shù)據(jù)最后從遠存儲器732讀時,其最終被發(fā)送787到存儲器控制器731。在實施例中,作為事務(wù)的部分,事務(wù)標識符790在將讀數(shù)據(jù)發(fā)送到存儲器控制器731的通道721上被返回到存儲器控制器731。
[0104]本文,事務(wù)標識符790的包含用以通知存儲器控制器731:讀數(shù)據(jù)相關(guān)的事務(wù)。這可以在以下中尤其重要:如以下更詳細描述的,遠存儲器控制邏輯722維持緩沖器以存儲來自存儲器控制器731的多個讀請求,并且遠存儲器的讀響應(yīng)時間的不確定性導(dǎo)致來自遠存儲器的“無序”(000)讀響應(yīng)(在前面的讀請求之前可以響應(yīng)后續(xù)的讀請求)。在進一步實施例中,在通道721上所使用的兩個協(xié)議的特有特征在于近存儲器協(xié)議將設(shè)備730看作不正式請求通道721的使用的從設(shè)備(因為其定時被良好地理解并且在存儲器控制器的控制之下)。相比之下,遠存儲器協(xié)議允許遠存儲器控制邏輯722向存儲器控制器731發(fā)布用于將讀數(shù)據(jù)發(fā)送到存儲器控制器731的請求。作為進一步的區(qū)別點,在近存儲器高速緩存讀的期間被“偷傳”到通道上的標簽705和r/w信息780在以下意義上被“偷傳”:該信息被運輸?shù)竭h存儲器控制邏輯電路,并且與潛在的遠存儲器訪問相關(guān)(即使技術(shù)上近存儲器協(xié)議在起作用)。
[0105]可替代于以上關(guān)于圖7b所討論的“自動”讀,遠存儲器控制邏輯電路722能夠被設(shè)計成制止自動讀所需的數(shù)據(jù)并且作為代替在高速緩存未命中的情況下等待來自存儲器控制器的讀請求及對應(yīng)的地址。在該情況下,當(dāng)近存儲器高速緩存被讀時,邏輯電路722不需要抓取地址,也不需要將關(guān)于整體事務(wù)是讀事務(wù)還是寫事務(wù)的任何信息偷傳到邏輯電路722。如果遠存儲器控制邏輯722能夠無序地服務(wù)讀請求,那么仍然可以需要將事務(wù)ID 790與讀請求一起發(fā)送到遠存儲器控制邏輯722。
[0106]不管邏輯電路722是否對高速緩存未命中自動地執(zhí)行所需的遠存儲器讀,如圖7c中所觀察的,在由遠存儲器控制邏輯電路722檢測到高速緩存未命中的情況下,遠存儲器控制邏輯電路722的命中/未命中邏輯電路723能夠被設(shè)計成檢查在抓取的高速緩存線766中是否設(shè)置臟位712。如果如此,抓取的高速緩存線將需要被寫到遠存儲器732。照此,然后邏輯電路722能夠在沒有來自存儲器控制器的正式請求的情況下,將抓取的高速緩存線自動地存儲767到其組成的遠存儲器儲存資源732中(包括在存儲ECC信息之前重新計算ECC信息,以確保數(shù)據(jù)未損壞)。
[0107]本文,依賴于實現(xiàn),對于對遠存儲器平臺的寫操作而言,邏輯電路722能夠通過如以上所描述的抓取近存儲器高速緩存讀的較早的讀地址以及將其與讀自近存儲器高速緩存的高速緩存線的嵌入標簽信息合并來構(gòu)造適當(dāng)?shù)膶懙刂贰?商娲?,如果邏輯電?22不抓取高速緩存讀地址,那么其能夠通過當(dāng)其請求從遠存儲器讀正確信息時,將嵌入在抓取的高速緩存線中的標簽信息與由存儲器控制器所提供的讀地址合并來構(gòu)造適當(dāng)?shù)膶懙刂?。具體地,邏輯電路722能夠?qū)⒆x請求的設(shè)置和降低階位部分404、405與抓取的高速緩存線上的嵌入標簽711合并,以完全構(gòu)造正確的地址。
[0108]如以上所描述的自動執(zhí)行對遠存儲器平臺732的寫消除了存儲器控制器731請求對遠存儲器平臺的寫的需要,但同樣并且促成使通道721完全擺脫與對遠存儲器平臺的寫相關(guān)的任何活動。這可以與通道的速度方面的顯著的改善相對應(yīng)。
[0109]相關(guān)地指出以上剛描述的加速對:遠存儲器的自動讀(圖7b)和對遠存儲器的自動寫(圖7c)能夠依賴于設(shè)計者選擇而采用任何組合(這二者、只一者)來實現(xiàn)。
[0110]作為對比,不具有由遠存儲器控制器722的存在所提供的加速的基本讀事務(wù)名義上包括用于在臟位被設(shè)置時經(jīng)歷高速緩存未命中的讀事務(wù)的6個原子操作。這些是:高速緩存讀請求、高速緩存讀響應(yīng)、遠存儲器讀請求、遠存儲器讀響應(yīng)、近存儲器寫請求(高速緩存更新)和遠存儲器寫請求(因為臟位被設(shè)置,所以將讀自高速緩存的高速緩存線加載到遠存儲器中)。
[0111]相比之下,在實現(xiàn)圖7b (遠存儲器的自動讀)和圖7c (對遠存儲器的自動寫)的加速這二者時,整體事務(wù)能夠利用對通道的僅4個原子操作來完成。也就是說,能夠消除遠存儲器讀請求和遠存儲器寫請求。
[0112]以上討論涉及在近存儲器在遠存儲器控制邏輯“的前面”時的讀事務(wù)過程。在寫事務(wù)過程的情況下,參考圖7d,響應(yīng)于接收到寫事務(wù)751,存儲器控制器發(fā)起近存儲器高速緩存讀并且偷傳標簽?目息705和指不整體事務(wù)是寫并不是讀的彳目息780,如以上所描述的752。在完成近存儲器的讀之后,存儲器控制器731在高速緩存中用新數(shù)據(jù)改寫舊數(shù)據(jù)753。在實施例中,存儲器控制器檢查來看是否存在高速緩存命中754和/或臟位是否被設(shè)置755,以理解遠存儲器控制邏輯電路將采取什么動作(例如,用于通道調(diào)度),但不以其它方式對通道采取進一步的動作。
[0113]如以上所描述的,遠存儲器控制邏輯電路722抓取被用來訪問高速緩存的地址、被偷傳的信息705、780以及讀自高速緩存的高速緩存線及其關(guān)聯(lián)的信息756,并且根據(jù)其自身來檢測高速緩存未命中 757。如果存在高速緩存命中,那么遠存儲器控制邏輯不采取進一步的動作。如果存在高速緩存未命中,那么依賴于設(shè)計實現(xiàn),類似于以上所描述的過程,邏輯電路722還能夠檢測758臟位是否被設(shè)置以及將被抓取的高速緩存線自動地寫759到遠存儲器中(在沒有來自存儲器控制器的請求的情況下)。
[0114]采用替代的方法,存儲器控制器731在檢測到高速緩存未命中和臟位被設(shè)置754、755之后,將請求發(fā)送到遠存儲器控制邏輯722 (包括寫地址)以將讀自高速緩存的高速緩存線寫到遠存儲器中。存儲器控制器還能夠通過通道721將讀自高速緩存的高速緩存線發(fā)送到遠存儲器控制邏輯。
[0115]B.近存儲器在遠存儲器控制邏輯“后面”
參考圖8a,其描繪了“近存儲器在后面”架構(gòu),注意近存儲器儲存設(shè)備802_1、802_2...802_N (諸如多個DRAM芯片)至少在一定程度上通過遠存儲器控制邏輯電路822而耦合到通道821的至少部分。然而,本文,用于“近存儲器在前面方法”的遠存儲器控制邏輯包括用于通道和遠存儲器的不同接口,相比之下,用于“近存儲器在后面”方法的遠存儲器控制邏輯包括用于通道、遠存儲器和近存儲器的不同接口。根據(jù)一個實施例,通道821能夠被視為具有3個主要的子組件:1)命令總線841 (通過其來發(fā)送讀和寫請求及其對應(yīng)的地址);
2)數(shù)據(jù)總線842 (通過其來發(fā)送讀和寫數(shù)據(jù));以及3)控制信號843 (例如,一個或多個選擇信號、一個或多個時鐘使能信號、一個或多個管芯上終止信號)。
[0116]如圖8a的特定方法中所描繪的,近存儲器儲存平臺830的數(shù)據(jù)總線890可以獨立地耦合891到數(shù)據(jù)總線842,但通過邏輯電路822耦合到命令總線841和控制信號843組件。遠存儲器儲存平臺831通過邏輯電路822耦合到所有3個子組件841、842、843。在替代的實施例中,像遠存儲器儲存平臺一樣,近存儲器儲存平臺830的數(shù)據(jù)總線890通過邏輯電路822耦合到通道的數(shù)據(jù)總線組件842?!敖鎯ζ髟诤竺妗奔軜?gòu)至少可以例如利用邏輯電路822來實現(xiàn),近存儲器儲存設(shè)備830和遠存儲器儲存設(shè)備831都在相同的物理平臺上實現(xiàn)(例如,插入到通道中的相同的DIMM卡,其中多個此類DIMM卡能夠插入到通道中)。
[0117]圖Sb示出在高速緩存未命中情況下的用于“近存儲器在后面”架構(gòu)的讀過程。參考圖8a和8b,如果存儲器控制器831接收到讀請求861,那么其通過命令總線841將包含原始請求的地址的集合位804和較低階位803的讀請求862 (例如,采用分包化形式)發(fā)送到遠存儲器控制邏輯電路822。此外,作為讀請求序列的部分,原始讀請求的標簽位805(例如來自CPU)被“偷傳”862到通道821上。根據(jù)一種方法,以下更詳細地解釋的,在通道821的命令總線組件841 (其被用于將尋址信息傳送到遠存儲器控制邏輯822以用于近和遠存儲器訪問這二者)上“偷傳”標簽位805。本文,不像遠存儲器“在前面”方法那樣,由于以下進一步解釋的原因,在通道上不需要偷傳指示原始事務(wù)是讀還是寫的附加信息。本文,遠存儲器控制邏輯822能夠“切斷”存儲器控制器對遠存儲器的讀請求,以確定整體事務(wù)是讀事務(wù)而不是寫事務(wù)。
[0118]響應(yīng)于接收到的讀請求,邏輯電路822在本地近存儲器地址總線870上呈現(xiàn)關(guān)聯(lián)的地址,以針對近存儲器平臺實現(xiàn)高速緩存讀操作。來自近存儲器平臺830的適當(dāng)?shù)母咚倬彺婢€直接由近存儲器平臺830 (在該情況下存儲器控制器執(zhí)行ECC計算)或者通過遠存儲器控制邏輯822 (在該情況下邏輯822和存儲器控制器831這二者都可以執(zhí)行ECC計算)隨后被呈現(xiàn)804在數(shù)據(jù)總線842上。
[0119]因為遠存儲器控制邏輯電路822連接到通道821,所以其能夠抓取或以其它方式在本地存儲863 (例如,在其自身的寄存器空間850中)以下中的任何一個:1)在通道821上被偷傳的標簽位805 ;2)被用來尋址近存儲器高速緩存830的地址信息;以及3)來自近存儲器830的高速緩存線及其關(guān)聯(lián)的嵌入標簽位811、臟位812和ECC信息813,當(dāng)由近存儲器平臺830來提供時。
[0120]作為響應(yīng),邏輯電路822的命中/未命中邏輯823能夠與存儲器控制器的命中/未命中邏輯814并行地確定是否存在高速緩存命中或高速緩存未命中。在高速緩存命中的情況下,將讀自近存儲器的信息提供到存儲器控制器831,并且邏輯電路822不采取進一步的動作。在其中近存儲器高速緩存平臺在不通過邏輯電路822的情況下連接到數(shù)據(jù)總線的實施例中,存儲器控制器831對讀自近存儲器高速緩存的高速緩存線執(zhí)行ECC計算。在其中近存儲器高速緩存平臺通過邏輯電路822連接到數(shù)據(jù)總線的另一個實施例中,在邏輯電路822和存儲器控制器831這二者上計算對讀自近存儲器高速緩存的高速緩存線的ECC計笪
ο
[0121]在由邏輯電路822檢測到高速緩存未命中的情況下,高速緩存/命中未命中邏輯電路823將意識到:將需要遠存儲器儲存平臺831的讀以最終服務(wù)原始讀請求。照此,根據(jù)一個實施例,邏輯電路822能夠從遠存儲器平臺831自動地讀,以檢索所期望的讀信息864并且執(zhí)行ECC計算。
[0122]與遠存儲器控制邏輯822自動地讀遠存儲器831并行地,回憶起已經(jīng)向存儲器控制器831提供了讀自近存儲器的高速緩存線,存儲器控制器831能夠同樣地檢測高速緩存未命中并且作為響應(yīng)在通道821上將讀請求886調(diào)度和發(fā)布到遠存儲器控制邏輯822。如以上所提及的和如以下更詳細描述的,在實施例中,存儲器控制器831能夠通過通道821來傳送兩個不同的協(xié)議:i)特定于近存儲器設(shè)備830的第一協(xié)議(例如,行業(yè)標準DDR DRAM協(xié)議);以及ii)特定于遠存儲器設(shè)備831的第二協(xié)議(例如,特定于PCMS設(shè)備的協(xié)議)。本文,近存儲器高速緩存讀862通過通道821利用第一協(xié)議來實現(xiàn),并且相比之下,對遠存儲器886的讀請求利用第二協(xié)議來實現(xiàn)。
[0123]在進一步的實施例中,如以上所提及的和如以下更詳細描述的,因為由遠存儲器設(shè)備831響應(yīng)讀請求886所需的時間不能被確定無疑地預(yù)測,所以整體讀事務(wù)的標識符890(“事務(wù)id”)與由存儲器控制器所發(fā)送的遠存儲器讀請求886 —起被發(fā)送到遠存儲器控制邏輯822。當(dāng)最后從遠存儲器831讀數(shù)據(jù)時,其最終被發(fā)送887到存儲器控制器831。在實施例中,作為事務(wù)的部分,事務(wù)標識符890在將讀數(shù)據(jù)發(fā)送到存儲器控制器831的通道821上被返回到存儲器控制器831。
[0124]本文,事務(wù)標識符890的包含用以通知存儲器控制器831:讀數(shù)據(jù)相關(guān)的事務(wù)。這可以在以下中尤其重要:如以下更詳細描述的,遠存儲器控制邏輯822維持緩沖器以存儲來自存儲器控制器831的多個讀請求,并且遠存儲器的讀響應(yīng)時間的不確定性導(dǎo)致來自遠存儲器的“無序”(000)讀響應(yīng)(在前面的讀請求之前可以響應(yīng)后續(xù)的讀請求)。
[0125]在其中在通道上使用的兩個不同的協(xié)議的進一步實施例中,兩個協(xié)議的特有特征在于近存儲器協(xié)議將設(shè)備830看作不正式請求通道821的使用的從設(shè)備(因為近存儲器的定時被良好地理解并且在存儲器控制器的控制之下)。相比之下,遠存儲器協(xié)議允許遠存儲器控制邏輯822向存儲器控制器831發(fā)布用于將讀數(shù)據(jù)發(fā)送到存儲器控制器831的請求。作為進一步的區(qū)別點 ,在近存儲器高速緩存讀的期間被“偷傳”到通道上的標簽805信息在以下意義上被“偷傳”:該信息被運輸?shù)竭h存儲器控制邏輯電路822,以用于潛在的遠存儲器讀(即使技術(shù)上近存儲器協(xié)議在起作用)。
[0126]可替代自動地執(zhí)行遠存儲器讀,遠存儲器控制邏輯電路822能夠被設(shè)計成制止自動讀遠存儲器中所需的數(shù)據(jù),而是等待來自存儲器控制器831的讀請求及對應(yīng)的地址。在該情況下,當(dāng)近存儲器高速緩存被讀時,邏輯電路822不需要保持地址,其也不需要來自存儲器控制器831的關(guān)于整體事務(wù)是讀事務(wù)還是寫事務(wù)的任何被偷傳的彳目息880。
[0127]不管邏輯電路822是否在高速緩存未命中的情況下自動地執(zhí)行遠存儲器讀,如圖Sc的過程中所觀察的,邏輯電路822的命中/未命中邏輯電路823能夠被設(shè)計成當(dāng)高速緩存未命中發(fā)生以及臟位被設(shè)置時,將讀自近存儲器高速緩存的高速緩存線寫到遠存儲器中。在該情況下,在高級別處,除對近存儲器830的寫在近存儲器平臺830不通過通道來尋址的意義上至少部分地對通道821隱藏867之外,該過程基本上與圖7c中所觀察的相同。如果近存儲器平臺830的數(shù)據(jù)總線895不直接耦合到通道的數(shù)據(jù)總線842,而是通過遠存儲器控制邏輯822耦合到通道的數(shù)據(jù)總線842,那么整個遠存儲器寫能夠?qū)νǖ?21隱藏。
[0128]采用該方式來自動執(zhí)行對遠存儲器平臺831的寫不僅消除了存儲器控制器831請求該寫的需要,而且使通道821完全擺脫與對遠存儲器平臺831的寫相關(guān)的任何活動。這應(yīng)該與通道的速度方面的顯著的改善相對應(yīng)。
[0129]在高速緩存未命中的情況下,為了實現(xiàn)高速緩存更新步驟,如果遠存儲器控制邏輯電路822被進一步設(shè)計成利用遠存儲器讀操作的結(jié)果來更新近存儲器高速緩存平臺830,則可以實現(xiàn)附加的效率。本文,因為遠存儲器讀操作869的結(jié)果與對可應(yīng)用集合的最近訪問相對應(yīng),所以這些結(jié)果還需要被寫到用于該集合的高速緩存條目中,以便完成事務(wù)。通過利用遠存儲器讀響應(yīng)來更新高速緩存,避免了用以更新高速緩存的通過通道821對近存儲器的單獨的寫步驟。本文,一些機制(例如,附加的協(xié)議步驟)可以需要被實現(xiàn)到通道中,以使得遠存儲器控制邏輯能夠訪問近存儲器(例如,如果認為近存儲器的使用要在存儲器控制器831的控制之下調(diào)度的話)。
[0130]相關(guān)地指出以上剛描述的加速:遠存儲器的自動讀(圖Sb)、對遠存儲器的自動寫(圖Sc)、以及與讀響應(yīng)并行的高速緩存更新可以依賴于設(shè)計者選擇而采用任何組合(所有、任何二者、只一者)來實現(xiàn)。
[0131]至于寫事務(wù)過程,根據(jù)一種方法,在近存儲器數(shù)據(jù)總線880直接耦合到通道數(shù)據(jù)總線842的情況下,能夠執(zhí)行以上關(guān)于圖7d所描述的過程。在近存儲器數(shù)據(jù)總線880通過遠存儲器控制邏輯822耦合到通道數(shù)據(jù)總線842的情況下,可以使用圖8d中所呈現(xiàn)的另一種方法。
[0132]根據(jù)圖8d的過程,響應(yīng)于接收到寫事務(wù)851,存儲器控制器將寫命令852發(fā)送到遠存儲器控制邏輯822 (包括對應(yīng)的地址和數(shù)據(jù))并且通過通道來偷傳寫事務(wù)的標簽信息。作為響應(yīng),遠存儲器控制邏輯822執(zhí)行近存儲器高速緩存平臺830的讀853,并且根據(jù)嵌入的標簽信息811和偷傳的標簽信息805來確定發(fā)生了高速緩存未命中還是高速緩存命中854。在高速緩存命中或高速緩存未命中的情況下,當(dāng)未設(shè)置臟位時855,將與寫命令一起接收的新的寫數(shù)據(jù)寫856到近存儲器高速緩存830。在高速緩存未命中且設(shè)置了臟位的情況下,遠存儲器控制邏輯電路將與寫命令一起接收的新的寫數(shù)據(jù)寫到近存儲器高速緩存中,并且將剛讀自近存儲器830的被驅(qū)逐(evicted)的高速緩存線寫到遠存儲器831中。
[0133]根據(jù)圖Sb的讀事務(wù)的討論回憶起:在“近存儲器在后面”方法中,指示整體事務(wù)是讀還是寫的信息不需要被偷傳到遠存儲器控制邏輯。這能夠從圖8b和8d看到,其示出在整體讀事務(wù)的情況下存儲器控制器初始地傳送近存儲器讀請求(圖8a)或者在整體寫事務(wù)的情況下初始地傳送近存儲器寫事務(wù)(圖8d)。
[0134]原子通道事務(wù)和物理通道集成
如圖7a和8a中所觀察的,存儲器控制器和近存儲器設(shè)備之間的通信可以通過傳送存儲器控制器和遠存儲器設(shè)備之間的通信的相同通道來載送。進一步地,如以上所提到的,近存儲器和遠存儲器可以由存儲器控制器利用不同的協(xié)議來訪問(用于訪問近存儲器的第一協(xié)議和用于訪問遠存儲器的第二協(xié)議。照此,可以例如在相同的存儲器通道上實現(xiàn)兩種不同的協(xié)議。就在以下討論了這些協(xié)議的各方面。
[0135]a.近存儲器高速緩存訪問(第一協(xié)議)
在以上的章節(jié)中呈現(xiàn)了用于訪問近存儲器的兩種基本方法:第一種其中近存儲器儲存設(shè)備存在于遠存儲器控制邏輯的“前面”,以及第二種其中近存儲器儲存設(shè)備存在于遠存儲器控制邏輯的“后面”。
[0136]1.近存儲器在前面
至少在其中近存儲器設(shè)備位于遠存儲器控制邏輯的“前面”的情況下,保留或以其它方式使用用于與系統(tǒng)存儲器通信的現(xiàn)存/公知的協(xié)議可以是有益的。例如,在其中近存儲器高速緩存利用附到DMM卡的DRAM設(shè)備來實現(xiàn)的情況下,使用被良好地建立/接受的用于與附到DIMM卡的DRAM設(shè)備進行通信的存儲器訪問協(xié)議(例如,目前被良好地建立/接受的協(xié)議,或者未來被良好地建立/接受的協(xié)議)可以是有益的。通過使用用于與DRAM通信的良好地建立/接受的協(xié)議,可以在以下意義上實現(xiàn)規(guī)模效益:具有不必被設(shè)計用于集成到具有近和遠存儲器級別的計算系統(tǒng)中的DRAM設(shè)備的DIMM卡仍然可以被“插入到”此類系統(tǒng)的存儲器通道中并且被用作近存儲器。
[0137]此外,甚至在其中近存儲器位于遠存儲器控制邏輯的“后面”的情況下,當(dāng)嘗試訪問近存儲器時,存儲器控制器仍然可以被設(shè)計成使用良好地建立/公知的DRAM存儲器訪問協(xié)議來與遠存儲器控制邏輯通信,以使得該系統(tǒng)作為整體可以向系統(tǒng)的用戶提供多個不同的系統(tǒng)配置選項。例如,用戶能夠在使用以下內(nèi)容之間選擇:1)用于近存儲器的“僅DRAM”DMM卡;或者2)其上集成了 DRAM和PCMS設(shè)備二者的DMM卡(其中,DRAM充當(dāng)用于位于相同的DMM上的PCMS設(shè)備的近存儲器)。
[0138]良好地建立/公知的DRAM協(xié)議的實現(xiàn)還允許第三個用戶選項,其中不采納兩級存儲器方案(近存儲器和遠存儲器)(例如,沒有PCMS設(shè)備被用來實現(xiàn)系統(tǒng)存儲器),而是僅安裝DRAM DIMM來實現(xiàn)傳統(tǒng)的“僅DRAM”系統(tǒng)存儲器。在該情況下,存儲器控制器的配置將被設(shè)置成使得其表現(xiàn)為(不利用本文所描述的任何特征來實現(xiàn)近和遠存儲器級別的)傳統(tǒng)存儲器控制器。
[0139]照此,將啟用使得存儲器控制器表現(xiàn)得像標準存儲器控制器的邏輯電路,然而將禁用使得存儲器控制器采用考慮近和遠存儲器級別的方式來表現(xiàn)的邏輯電路。在系統(tǒng)存儲器僅采用可替代的系統(tǒng)存儲器技術(shù)來實現(xiàn)的情況下(例如,僅插入PCMS DMM卡),第四個用戶選項可以是相反的。在該情況下,可以啟用使得存儲器控制器僅利用與可替代的系統(tǒng)存儲器技術(shù)一致的不同協(xié)議(例如,PCMS特定信令)來運行基本讀和寫事務(wù)的邏輯。
[0140]圖9a示出適于支持良好地建立/公知的DRAM訪問協(xié)議(諸如根據(jù)相同的信號的上升和下降沿來實現(xiàn)寫和讀訪問的雙倍數(shù)據(jù)速率(“DDR”))的存儲器通道921的示例性描繪。通道921能夠被視為具有3個主要的子組件:1)命令總線941 (通過其來發(fā)送讀和寫請求及其對應(yīng)的地址);2)數(shù)據(jù)總線942 (通過其來發(fā)送讀和寫數(shù)據(jù));以及3)控制信號943(一個或多個選擇信號943_1、一個或多個時鐘使能信號943_2、一個或多個管芯上終止信號943_3)。在實施例中,如以上所描述的,當(dāng)存儲器控制器909訪問近存儲器高速緩存時,不管是否其與一個或多個DMM卡上的實際的DRAM設(shè)備和/或一個或多個相同或附加的DIMM卡上的一個或多個遠存儲器控制邏輯芯片進行“對話”,其都在通道上呈現(xiàn)傳統(tǒng)的DDR信號。
[0141]根據(jù)通道921的操作的一個實施例,對于僅存儲器訪問而言:1)命令總線941在從存儲器控制器909朝向近存儲器儲存設(shè)備的方向上載送分組,其中每個分組包括讀或?qū)懻埱蠛完P(guān)聯(lián)的地址;以及2)數(shù)據(jù)總線942將寫數(shù)據(jù)載送到目標的近存儲器設(shè)備,并且從目標的近存儲器設(shè)備載送讀數(shù)據(jù)。
[0142]如圖9a中所觀察的,數(shù)據(jù)總線942由超出實際的讀/寫數(shù)據(jù)線942_1的附加的線來構(gòu)成。具體地,數(shù)據(jù)總線942還包括多個ECC線942_2和選通線942_3。如所公知的,ECC位與高速緩存線的數(shù)據(jù)一起存儲,以使得能夠檢測與高速緩存線的讀/寫關(guān)聯(lián)的數(shù)據(jù)損壞錯誤。例如,64字節(jié)(64B)高速緩存線可以附加地包括8字節(jié)(8B)的ECC信息,以使得所存儲的信息的實際數(shù)據(jù)寬度是72字節(jié)(72B)。選通線942_3通?;诿繑?shù)據(jù)線來指派(例如,選通線對被指派用于每8或4位的數(shù)據(jù)/ECC)。在雙倍數(shù)據(jù)速率方法中,信息能夠根據(jù)選通942_3的上升和下降沿這二者被寫或讀。
[0143]關(guān)于控制線943,在實施例中,這些包括選擇信號943_1、時鐘使能線943_2、以及管芯上終止線943_3。如公知的,多個DIMM卡能夠插入到相同的存儲器通道中。傳統(tǒng)地,當(dāng)存儲器控制器讀或?qū)懱囟ǖ刂诽幍臄?shù)據(jù)時,其從/向特定DIMM卡讀或?qū)憯?shù)據(jù)(例如,整個DIMM卡或可能是DIMM卡的一側(cè)或DIMM卡的其它部分)。選擇信號943_1被用來激活作為操作的目標的特定DMM卡(或DMM卡的部分),并且去激活不是操作的目標的DMM卡。
[0144]本文,選擇信號943_1可以根據(jù)(例如,來自CPU的)原始讀或?qū)懯聞?wù)的位來確定,其實際上指定起源于存儲器控制器的多個存儲器通道中的哪個存儲器通道是事務(wù)的目標,并且進一步地,插入到所識別的通道中的多個DIMM卡中的哪個DIMM卡是事務(wù)的目標。想得到地,選擇信號943_1能夠被配置成使得插入在相同的存儲器通道中的每個DIMM卡(或DIMM的部分)接收其自身一個唯一的選擇信號。本文,激活被發(fā)送到用于事務(wù)的活動的DIMM卡(或DIMM卡的部分)的特定選擇信號,而去激活被發(fā)送到其它DIMM卡的選擇信號。可替代地,信號信號如總線而路由到每個DMM卡(或DMM卡的部分)。所選擇的DMM卡(DMM卡的部分)由總線的狀態(tài)來確定。
[0145]時鐘使能線943_2和管芯上終止線943_3是在讀/寫數(shù)據(jù)被呈現(xiàn)在通道的數(shù)據(jù)總線942上之前被激活且在讀/寫數(shù)據(jù)被呈現(xiàn)在通道的數(shù)據(jù)總線942_1上之后被去激活的功率節(jié)約特征。
[0146]在各種實施例中,在執(zhí)行事務(wù)的每個步驟所需的時鐘周期的數(shù)量方面精確地理解了諸如從DRAM所構(gòu)造的近存儲器高速緩存、近存儲器事務(wù)的定時。也就是說,對于近存儲器事務(wù)而言,已知完成讀或?qū)懻埱笏璧臅r鐘周期的數(shù)量,并且已知滿足讀或?qū)懻埱笏璧臅r鐘周期的數(shù)量。
[0147]圖10示出當(dāng)應(yīng)用于近存儲器(例如,如以上剛描述的,通過存儲器通道)時的用于近存儲器訪問協(xié)議的讀和寫操作的原子操作序列。根據(jù)圖10的方法,插入到相同的存儲器通道中的多個DIMM卡之中的目標DIMM卡(或DIMM卡的部分)通過激活適當(dāng)?shù)倪x擇線1001來選擇。然后激活1002時鐘使能線和管芯上終止線(想得到地可以存在選擇線以及時鐘使能和管芯上終止線的激活的一定重疊)。然后發(fā)送(例如,通過命令總線)1003具有可應(yīng)用地址的讀或?qū)懨?。僅所選擇/激活的DIMM卡(或DIMM卡的部分)能夠接收并處理命令。在寫的情況下,將寫數(shù)據(jù)寫到已激活的設(shè)備中(例如,從存儲器通道數(shù)據(jù)總線)1004。在讀的情況下,從已激活的設(shè)備呈現(xiàn)(例如,在存儲器通道數(shù)據(jù)總線上)讀數(shù)據(jù)1004。
[0148]注意,圖10的過程盡管描繪了采用未來的存儲器協(xié)議的對近存儲器的原子操作,但也能夠被視為與現(xiàn)有的DDR協(xié)議原子操作一致。此外,包括近存儲器和遠存儲器的未來系統(tǒng)可以利用已經(jīng)現(xiàn)有的DDR協(xié)議或者利用僅具有DRAM系統(tǒng)存儲器技術(shù)的未來系統(tǒng)訪問DRAM系統(tǒng)存儲器所利用的未來DRAM協(xié)議來訪問近存儲器。
[0149]具體地,在其中DRAM近存儲器高速緩存在遠存儲器控制邏輯的“前面”并且其中遠存儲器控制邏輯電路不對具有高速緩存未命中的讀事務(wù)更新DRAM近存儲器高速緩存的實現(xiàn)中,存儲器控制器將驅(qū)動通道上的信號來執(zhí)行步驟1001、1002、1003并且在步驟1004中在數(shù)據(jù)總線上為寫事務(wù)提供寫數(shù)據(jù)。在該情況下,存儲器控制器可以表現(xiàn)得與現(xiàn)存的存儲器控制器或僅具有DRAM系統(tǒng)存儲器的未來系統(tǒng)的存儲器控制器非常相同。對于存儲器控制器關(guān)于以下時候表現(xiàn)的方式也是如此:1)對于讀或?qū)懯聞?wù),首先讀高速緩存;以及ii)對于讀或與事務(wù),在聞速緩存命中之后與聞速緩存。
[0150]i1.近存儲器在后面
又進一步地,在其中DRAM近存儲器高速緩存在遠存儲器控制邏輯的“后面”的實現(xiàn)中,對于近存儲器高速緩存的讀或?qū)懚?,近存儲器仍然可以利用特定于近存儲器設(shè)備的協(xié)議而被訪問。例如,近存儲器設(shè)備可以利用良好地建立(當(dāng)前或未來)的DRAM DDR協(xié)議被訪問。此外,即使近存儲器設(shè)備自身被遠存儲器控制邏輯利用以某種方式與良好地建立的DRAM協(xié)議不同的信號來具體地發(fā)信號通知,存儲器控制器仍然可以在最終控制近存儲器訪問方面在通道921上應(yīng)用良好地建立的DRAM協(xié)議來與遠存儲器控制邏輯進行通信,以實現(xiàn)近存儲器訪問。
[0151]本文,遠存儲器控制邏輯可以執(zhí)行采用各種組合的任何/所有的步驟1001、1002、1003、或其各方面的局部等價物(B卩,在遠存儲器控制邏輯的“后面”而不是在通道上)。另外,存儲器控制器還可以利用遠存儲器控制邏輯來執(zhí)行采用各種組合的這些步驟中的每個,包括其中遠存儲器邏輯電路也執(zhí)行這些相同的步驟的情況。例如,遠存儲器控制邏輯可以被設(shè)計成充當(dāng)簡單地接受最初由存儲器控制器提供的來自通道的信號并且將其重新驅(qū)動到其組成的近存儲器平臺的“轉(zhuǎn)發(fā)”設(shè)備。
[0152]可替代地,遠存儲器控制邏輯可以最初創(chuàng)建執(zhí)行步驟1001、1002、1003或其各方面的至少一些所需的至少一些信號,而存儲器控制器最初創(chuàng)建執(zhí)行其它步驟所需的信號。例如,根據(jù)一種方法,在執(zhí)行高速緩存讀方面,在執(zhí)行步驟1001時,存儲器控制器可以初始地在通道上驅(qū)動選擇信號。響應(yīng)于接收到選擇信號1001,遠存儲器控制邏輯可以將這些信號簡單地重新驅(qū)動到其組成的近存儲器平臺,或者可以根據(jù)與由存儲器控制器在通道上明確地呈現(xiàn)的信令方案不同的 選擇信令方案來處理和理解其含義并且啟用/禁用近存儲器平臺(或其部分)。選擇信號還可以從通道被直接提供到近存儲器平臺,并且還被路由到遠存儲器控制邏輯,因此遠存儲器控制邏輯能夠至少識別其組成的近存儲器平臺(或起部分)何時被定為事務(wù)的目標。
[0153]響應(yīng)于識別其組成的近存儲器設(shè)備的至少部分被定為事務(wù)的目標,遠存儲器控制邏輯可以在步驟1002中在控制邏輯和近存儲器儲存設(shè)備之間的遠存儲器控制邏輯后面最初地且在本地創(chuàng)建任何/所有的時鐘使能信號和/或管芯上終止信號。這些信號可以由遠存儲器控制邏輯根據(jù)由存儲器控制器在通道上提供的時鐘信號或其它信號來加工。不由遠存儲器控制邏輯所創(chuàng)建的任何時鐘使能信號或管芯上終止信號可以由存儲器控制器在通道上提供,并且被直接驅(qū)動到近存儲器平臺或由近存儲器控制邏輯重新驅(qū)動。
[0154]對于近存儲器高速緩存讀操作而言,存儲器控制器可以通過在通道的命令總線上提供合適的請求和訪問來執(zhí)行步驟1003。遠存儲器控制邏輯可以從通道接收命令(并且在本地存儲其相關(guān)的地址信息)。其還可以重新驅(qū)動或以其它方式向近存儲器平臺呈現(xiàn)讀命令和地址。關(guān)于步驟1004,存儲器控制器還將接收高速緩存讀數(shù)據(jù)。讀數(shù)據(jù)可以由遠存儲器控制邏輯電路呈現(xiàn)在通道的數(shù)據(jù)總線上(在重新驅(qū)動由近存儲器平臺所提供的讀數(shù)據(jù)時),或者讀數(shù)據(jù)可以由近存儲器平臺在通道的數(shù)據(jù)總線上直接驅(qū)動。
[0155]關(guān)于發(fā)生在高速緩存讀之后的近存儲器通道操作(諸如用于寫事務(wù)的在高速緩存命中之后對高速緩存的寫),遠存儲器控制邏輯電路或存儲器控制器可以按照以上剛描述的原理來執(zhí)行采用各種組合的任何的步驟1001、1002、1003。在一種極端情況,遠存儲器控制邏輯電路獨立于存儲器控制器而執(zhí)行步驟1001、1002、1003中的每個。在另一種極端情況,存儲器控制器執(zhí)行步驟1001、1002、1003中的每個,并且遠存儲器控制邏輯電路將其所有或一些重新驅(qū)動到近存儲器平臺或者接收并理解,并且然后作為響應(yīng)將其自身的信號應(yīng)用于近存儲器平臺。在這些極端情況之間,遠存儲器控制邏輯可以執(zhí)行步驟1001、1002和1003或其方面的一些,而存儲器控制器執(zhí)行這些步驟或其方面的其它。
[0156]可以酌情將以上剛描述的原子操作與以上在前面的章節(jié)中所公開的實施例進行集成。
[0157]b.遠存儲器訪問
回憶起在從DRAM構(gòu)造近存儲器高速緩存的情況下,例如,在執(zhí)行事務(wù)的每個步驟所需的時鐘周期的數(shù)量方面精確地理解近存儲器事務(wù)的定時。也就是說,對于近存儲器事務(wù)而言,已知完成讀或?qū)懻埱笏璧臅r鐘周期的數(shù)量,并且已知滿足讀或?qū)懻埱笏璧臅r鐘周期的數(shù)量。照此,近存儲器訪問可以整體在存儲器控制器的控制之下,或者至少存儲器控制器能夠精確地知道為每個近存儲器訪問所花費的時間(例如,為了調(diào)度的目的)。
[0158]相比之下,對于遠存儲器事務(wù)而言,盡管可以知道通過命令總線來完成讀或?qū)懻埱笏璧臅r鐘周期的數(shù)量(原因在于,存儲器控制器與近存儲器控制邏輯電路進行通信),但不知道滿足對于遠存儲器設(shè)備自身的任何此類讀或?qū)懻埱笏璧臅r鐘周期的數(shù)量。如就在以下的討論中將更明顯的,這可以導(dǎo)致在通道上用于遠存儲器訪問的與被用于近存儲器訪問的協(xié)議完全不同的協(xié)議的使用。
[0159]圖11示出遠存儲器控制邏輯電路1120和直接與遠存儲器設(shè)備對接的關(guān)聯(lián)的接口電路1135的實施例的更詳細的視圖。本文,例如,近存儲器設(shè)備的各種儲存單元可以依賴于其被訪問得多頻繁而具有不同的“耗盡”速率(較頻繁地被訪問的單元與較不頻繁地被訪問的單元相比耗盡得更快)。
[0160]嘗試保持各種儲存單元的可靠性近似相等,邏輯電路1120和/或接口電路1135可以包括在適當(dāng)?shù)臅r刻將較頻繁地被訪問的儲存單元的數(shù)據(jù)內(nèi)容移動到較不頻繁地被訪問的儲存單元(并且同樣地,將較不頻繁地被訪問的儲存單元的數(shù)據(jù)內(nèi)容移動到較頻繁地被訪問的儲存單元)的耗盡均衡算法電路1136。當(dāng)遠存儲器控制邏輯具有準備向遠存儲器平臺發(fā)布的讀或?qū)懨顣r,耗盡均衡過程可以或可以不處于操作中,或者如果處于操作中,則該過程可以僅剛開始或可以接近完成或處于兩者之間的任何地方。
[0161]這些不確定性以及起源于基本儲存技術(shù)的其它可能的定時不確定性(諸如,根據(jù)其特定的過去使用率而應(yīng)用于單獨的單元的不同的訪問時間)導(dǎo)致某些架構(gòu)特征的出現(xiàn)。具體地,關(guān)于近存儲器控制邏輯,遠存儲器寫緩沖器1137存在以保存對遠存儲器的寫請求,并且遠存儲器讀緩沖器1138存在以保存遠存儲器讀請求。本文,遠存儲器讀和寫緩沖器1137、1138的出現(xiàn)許可讀和寫請求的排隊或暫時保存。
[0162]如果讀或?qū)懻埱鬁蕚湎蜻h存儲器設(shè)備發(fā)布,但遠存儲器設(shè)備不處于接收任何此類請求的位置(例如,由于耗損均衡過程當(dāng)前處于操作中),那么所述請求被保存在其相應(yīng)的緩沖器1137、1138,直到遠存儲器設(shè)備準備接受和處理它們。本文,讀和寫請求可以在緩沖器中根據(jù)此類請求從存儲器控制器和/或遠存儲器控制邏輯的繼續(xù)傳輸而加強(例如,在其中如以上所描述的遠存儲器控制邏輯被設(shè)計成自動地訪問近存儲器的實現(xiàn)中),直到遠存儲器設(shè)備準備開始接收它們。
[0163]第二個架構(gòu)特征是存儲器控制器對通道1121上的(例如,來自CPU的)寫和讀事務(wù)的不同部分進行交錯以增強系統(tǒng)吞吐量的能力。例如,考慮忍受促使從遠存儲器讀的高速緩存未命中的第一讀事務(wù)。因為存儲器控制器不知道何時將服務(wù)對于遠存儲器的讀請求,不是潛在地使通道閑置而等待響應(yīng),而是存儲器控制器自由發(fā)布觸發(fā)用于下一(讀或?qū)?的事務(wù)的高速緩存讀的請求。該過程自由繼續(xù)直到達到某一硬限制。
[0164]例如,存儲器控制器自由發(fā)起用于下一讀事務(wù)的請求,直到其識別到遠存儲器控制邏輯的讀緩沖器1138滿了(由于高速緩存未命中將創(chuàng)建針對遠存儲器讀請求的需要)或遠存儲器控制邏輯的寫緩沖器滿了(由于高速緩存未命中上的設(shè)置臟位將創(chuàng)建針對遠存儲器寫請求的需要)。類似地,存儲器控制器自由發(fā)起用于下一寫事務(wù)的請求,直到其識別到遠存儲器控制邏輯的寫緩沖器滿了(由于高速緩存未命中上的設(shè)置臟位將創(chuàng)建針對遠存儲器寫請求的需要)。
[0165]在實施例中,存儲器控制器為寫緩沖器1137和讀緩沖器1138中的每個保持信用的計數(shù)。每當(dāng)寫緩沖器1137或讀緩沖器1138接受新的請求時,其對應(yīng)的信用計數(shù)減小。當(dāng)信用計數(shù)落在用于緩沖器1137、1138任一的閾值(諸如零)以下或達到閾值時,存儲器控制器1137、1138制止在通道上發(fā)布用于下一事務(wù)的任何請求。如以下更詳細地描述的,存儲器控制器能夠理解用于讀緩沖器的正確的信用計數(shù),是通過:1)每當(dāng)讀請求被理解成向讀緩沖器1138呈現(xiàn)(通過由存儲器控制器通過通道直接發(fā)送,或者被理解成已經(jīng)由遠存儲器控制邏輯自動地創(chuàng)建和輸入)時,使讀緩沖器信用計數(shù)減小;以及2)每當(dāng)讀響應(yīng)為存儲器控制器而呈現(xiàn)在通道1121上時,使讀緩沖器信用減小。
[0166]此外,再次如以下更詳細地描述的,存儲器控制器能夠理解用于寫緩沖器的正確的信用計數(shù),是通過:1)每當(dāng)寫請求被理解成向?qū)懢彌_器1137呈現(xiàn)(例如,通過由存儲器控制器通過通道直接發(fā)送,或者被理解成由遠存儲器控制邏輯自動地發(fā)生)時,使寫緩沖器信用計數(shù)減??;以及2)每當(dāng)從寫緩沖器1137服務(wù)寫請求時,使寫緩沖器信用減小。在實施例中,再次如以下更詳細地描述的,遠存儲器控制邏輯1120通過將此類信息“背負(piggyback)”于遠存儲器讀請求響應(yīng)來對存儲器控制器通知:從寫緩沖器1137向遠存儲器儲存設(shè)備平臺1131發(fā)布寫請求。本文,遠存儲器的讀通過通道1121被返回到存儲器控制器。照此,每當(dāng)遠存儲器控制邏輯1120執(zhí)行遠存儲器的讀并且將響應(yīng)傳送到存儲器控制器時,作為該通信的部分,遠存儲器控制邏輯還對存儲器控制器通知自從就在前面的遠存儲器讀響應(yīng)以來已經(jīng)從寫緩沖器1137發(fā)布的寫請求的數(shù)量。
[0167]附加的復(fù)雜在于,在實施例中,讀請求可以被“無序”服務(wù)。例如,根據(jù)用于遠存儲器控制邏輯電路的一種設(shè)計方法,為寫緩沖器1137中的寫請求遮蔽(screen)讀緩沖器1138中的讀請求。如果兩個緩沖器之間的任何的目標地址都匹配,那么利用與最近未決的寫請求關(guān)聯(lián)的新的寫數(shù)據(jù)來服務(wù)具有寫緩沖器中的一個或多個匹配的配對物的讀請求。如果讀請求位于不同于讀緩沖器隊列1138的前面的任何位置,讀請求的服務(wù)將具有關(guān)于讀請求被輸入在隊列1138中的次序?qū)υ撜埱筮M行“無序”服務(wù)的效果。在各種實施例中,遠存儲器控制邏輯還可以被設(shè)計成由于基礎(chǔ)的遠存儲器技術(shù)(其可以在某些時間允許某一地址空間可用于讀但不是所有的地址空間)而“無序”對請求進行服務(wù)。
[0168]為了使存儲器控制器理解哪個讀請求響應(yīng)與哪個讀請求事務(wù)相對應(yīng),在實施例中,當(dāng)存儲器控制器將讀請求發(fā)送到遠存儲器控制邏輯時,存儲器控制器還將事務(wù)的標識符(“TX_ID”)提供到近存儲器控制邏輯。當(dāng)遠存儲器控制邏輯最后服務(wù)該請求時,其將事務(wù)標識符包括在響應(yīng)中。
[0169]回憶起圖9a及其關(guān)于存儲器通道及其由存儲器控制器用于利用第一(近存儲器)訪問協(xié)議來訪問近存儲器高速緩存的使用的實施例的討論。顯著地,圖9a被進一步增強以示出能夠作為第一(近存儲器)訪問協(xié)議的部分被存儲器控制器“偷傳”到通道上的但仍然被遠存儲器控制器用來潛在地觸發(fā)遠存儲器訪問的信息。圖%示出相同的通道及其用于由存儲器控制器利用第二 (遠存儲器)訪問協(xié)議來訪問遠存儲器高速緩存的使用。
[0170]因為在各種實施例中高速緩存線的全地址的標簽信息與高速緩存線的數(shù)據(jù)一起存儲在近存儲器高速緩存中(例如,嵌入的標簽信息411、711、811),所以注意圖9a指示當(dāng)通道被用來訪問近存儲器高速緩存(讀或?qū)?時,名義上為ECC預(yù)留的某一部分的位線942_2作為代替被用于嵌入的標簽信息411、711。“竊取”ECC線來包含嵌入的標簽信息而不是擴展數(shù)據(jù)總線的大小允許例如為傳統(tǒng)計算機系統(tǒng)中的使用而制造的DIMM卡被用于具有近和遠級別的儲存這二者的系統(tǒng)中。也就是說,例如,如果在沒有任何遠存儲器的通道中安裝了僅DRAM的DIMM (并且因而不表現(xiàn)得像用于遠存儲器的高速緩存),那么ECC位的全寬度將被用于ECC信息。相比之下,如果在具有遠存儲器的通道中安裝了具有DRAM的DI麗(并且因而DRAM表現(xiàn)得像用于遠存儲器的高速緩存),那么當(dāng)訪問DRAM時,某一部分的ECC位942_2將實際地被用來存儲數(shù)據(jù)總線上的關(guān)聯(lián)的高速緩存線的地址的標簽位。當(dāng)近存儲器高速緩存線的數(shù)據(jù)被寫到近存儲器中或從近存儲器被讀時,在圖10的步驟1004期間在ECC線上呈現(xiàn)了嵌入的標簽信息411、711、811。
[0171]同樣根據(jù)以上回憶起在某些實施例中,遠存儲器控制邏輯可以利用作為近存儲器請求的部分在存儲器通道上被“偷傳”到遠存儲器控制器的附加信息的協(xié)助,“自動地”執(zhí)行某些動作。這些自動動作可以包括:1)自動地檢測高速緩存命中或未命中;2)在識別高速緩存未命中和識別讀事務(wù)在起作用時,對遠存儲器的自動讀;以及3)在識別高速緩存未命中外加識別臟位被設(shè)置時,對遠存儲器的自動寫。
[0172]如前面的章節(jié)中所討論的,為了執(zhí)行以上的1)、2)和3),通過作為觸發(fā)近存儲器高速緩存訪問的請求的部分而將事務(wù)的標簽信息405、705、805偷傳到遠存儲器控制邏輯以及將其與讀自近存儲器且與高速緩存線一起存儲的嵌入標簽信息411、711、811相比較來檢測高速緩存命中或未命中。
[0173]在實施例中,參考圖9a和圖10,事務(wù)的標簽信息405、705、805在步驟1003中通過命令總線被偷傳到遠存儲器控制邏輯(命令階段)在原本將被重新產(chǎn)生為近存儲器地址總線上的未使用列和/或行位(例如,尤其列多于行)的位置中。如以上所描述的,當(dāng)高速緩存線通過抓取“被竊取的ECC位”而從近存儲器被讀時,能夠在圖10的步驟1004中做出由遠存儲器控制邏輯對嵌入標簽信號411、711、811的抓取。然后能夠比較該兩個標簽。
[0174]此外,為了執(zhí)行以上的2)或3),遠存儲器控制邏輯應(yīng)能夠檢測在起作用的事務(wù)的類型(讀或?qū)?。在其中近存儲器在遠存儲器控制邏輯的前面的情況下,再次參考圖9a和圖10,在起作用的事務(wù)的類型還能夠通過命令總線采用像剛以上為I)描述的用于事務(wù)的標簽信息的方式那樣的方式而被偷傳到遠存儲器控制邏輯(例如,在命令階段1003期間在命令總線上)。在其中近存儲器在遠存儲器控制邏輯的后面的情況下,對于遠存儲器控制邏輯而言僅通過切斷事務(wù)的來自存儲器控制器的原始請求來檢測整體事務(wù)是讀還是寫(例如,將圖Sb和8d相比較)是可能的。否則,與近存儲器在前面方法相同的操作會受影響。
[0175]另外地,為了執(zhí)行以上的3),參考圖9a和圖10,遠存儲器控制邏輯應(yīng)該能夠檢測臟位是否被設(shè)置。本文,因為臟位是與高速緩存的數(shù)據(jù)一起嵌入在近存儲器中的信息,所以另一個ECC位如剛以上關(guān)于嵌入標簽信息411、711、811所描述的那樣被“竊取”。照此,存儲器控制器通過在近存儲器寫訪問的步驟1004期間在通道的ECC位位置942_2之一中呈現(xiàn)適當(dāng)?shù)闹祦韺懪K位。類似地,遠存儲器控制邏輯能夠通過在近存儲器讀訪問期間抓取該相同的ECC位置來檢測臟位。
[0176]參考圖9b和圖10,為了解決“無序”問題,事務(wù)標識符能夠作為遠存儲器請求的部分被發(fā)送到遠存儲器控制邏輯電路。這還能夠通過在遠存儲器讀請求的命令階段1003期間在命令總線上呈現(xiàn)事務(wù)標識符來完成。
[0177]圖12a示出由存儲器控制器通過通道而做出的用于遠存儲器的讀訪問的原子過程。圖12a的過程可以例如在其中遠存儲器控制邏輯在檢測到用于讀事務(wù)的高速緩存未命中時不自動執(zhí)行到遠存儲器中的讀并且需要由存儲器控制器來明確請求執(zhí)行遠存儲器讀的情況下完成。此外,回憶起在以上所描述的實施例中,即使遠存儲器控制邏輯自動地發(fā)起遠存儲器讀,存儲器控制器也能夠在高速緩存未命中的情況下將讀請求發(fā)布到遠存儲器控制邏輯(例如,見圖7b和8b)。
[0178]參考圖9b、ll和12a,具有遠存儲器讀地址的讀請求由存儲器控制器通過命令總線941來發(fā)布1201。通過命令總線所發(fā)布的讀請求還包括由遠存儲器控制邏輯1120所保持(例如,在寄存器中)的事務(wù)標識符。
[0179]請求被置于1202讀緩沖器1138中。分析保存在寫緩沖器1137中的寫請求,以看是否有任何一個具有匹配的目標地址1203。如果任何一個具有,那么從最近創(chuàng)建的寫請求1204中取得用于讀請求響應(yīng)的數(shù)據(jù)。如果沒有一個具有,那么最后從讀緩沖器1138服務(wù)該讀請求,從遠存儲器平臺1131對讀數(shù)據(jù)進行讀,并且用于讀數(shù)據(jù)的ECC信息被計算并且與和讀數(shù)據(jù)1205 —起存儲的ECC信息相比較。如果ECC檢查失效,那么遠存儲器控制邏輯1206引發(fā)錯誤。本文,參考圖%,錯誤可以通過選擇943_1、時鐘使能943_2或ODT 943_3線之一來發(fā)信號通知。
[0180]如果從寫緩沖器1137中取得讀請求或ECC檢查被清除,那么遠存儲器控制邏輯1120通知存儲器控制器:其具有準備用于傳輸?shù)淖x響應(yīng)1207。在實施例中,如圖9b中所觀察的,該指示990通過為該目的而侵占的通道的選擇信號線943_1、時鐘使能信號線943_2或管芯上終止線943_3之一來做出。當(dāng)存儲器控制器(在各種實施例中,其具有用以調(diào)度通道上的事務(wù)的調(diào)度器)決定其能夠接收讀響應(yīng)時,其將遠存儲器控制邏輯應(yīng)該開始發(fā)送讀響應(yīng)的指示991發(fā)送到所述遠存儲器控制邏輯1208。在實施例中,如圖9b中所觀察的,指示991也通過為該目的而侵占的通道的選擇線943_1、時鐘使能信號線943_2或管芯上終止線943_3之一來做出。
[0181]然后,遠存儲器控制邏輯1120確定自從最后的讀響應(yīng)被發(fā)送以來多少寫請求已經(jīng)從寫緩沖器1137被發(fā)布(“寫緩沖器發(fā)布計數(shù)”)。然后,將讀數(shù)據(jù)與事務(wù)標識符和寫緩沖器發(fā)布計數(shù)一起通過通道而返回1209。在實施例中,因為ECC計算由遠存儲器控制邏輯來做出,所以名義上用于ECC的數(shù)據(jù)總線線本質(zhì)上是“空閑的”。照此,如圖9b中所觀察的,事務(wù)標識符992和寫緩沖器發(fā)布計數(shù)993沿著通道的ECC線942_2從遠存儲器控制器發(fā)送到存儲器控制器。本文,寫緩沖器發(fā)布計數(shù)993被存儲器控制器用來計算新的信用計數(shù),以便允許將新的寫請求發(fā)送到遠存儲器控制邏輯1210。存儲器控制器自身能夠通過保持追蹤已經(jīng)被輸入到讀緩沖器1138中的讀請求的數(shù)量和已經(jīng)被返回的讀響應(yīng)的數(shù)量來調(diào)節(jié)其對讀請求的發(fā)送。
[0182]圖12b示出用于由存儲器控制器通過通道對遠存儲器的寫訪問的基本原子過程。圖12b的過程可以例如在其中遠存儲器控制邏輯不自動執(zhí)行到遠存儲器中的寫(例如,對具有用于讀事務(wù)或?qū)懯聞?wù)的臟位的高速緩存未命中)并且需要由存儲器控制器來明確請求這樣做的情況下完成。圖12b的寫過程還可以被用于不具有任何駐存的近存儲器的通道(例如,僅PCMS的通道)中。根據(jù)圖12b的過程,存儲器控制器接收寫事務(wù)1221。存儲器控制器檢查其寫緩沖器信用計數(shù)來看是否存在足夠的信用以發(fā)送寫請求1222。如果如此,存儲器控制器將寫請求1223通過命令總線發(fā)送到遠存儲器控制邏輯。作為響應(yīng),遠存儲器控制邏輯將請求置于其寫緩沖器中1224。最后,從寫緩沖器來服務(wù)該寫請求,ECC信息為被寫到源存儲器中的數(shù)據(jù)而被計算并且與該數(shù)據(jù)一起存儲到遠存儲器中1224。
[0183]先前關(guān)于圖7d (近存儲器在前面)和圖8d (近存儲器在后面)討論了增強的寫過程。本文中,以上已經(jīng)討論了用于實現(xiàn)這些寫過程的通道的特定組件的實施例以及遠存儲器控制邏輯的操作。然而,顯著地,另外,關(guān)于圖7d的增強的寫過程,存儲器控制器能夠根據(jù)高速緩存讀信息來確定在高速緩存未命中和臟位被設(shè)置的情況下是否需要對遠存儲器的寫。作為響應(yīng),存儲器控制器能夠增加其寫緩沖器計數(shù),原因在于其理解遠存儲器控制邏輯將自動地執(zhí)行到遠存儲器中的寫而也將把請求自動地輸入到寫緩沖器中1224,以便這樣做。關(guān)于圖8d的增強的寫過程,存儲器控制器還能夠接收高速緩存讀信息并且如以上剛描述的那樣操作。
[0184]當(dāng)然,能夠酌情通過僅具有遠存儲器技術(shù)的通道(例如,僅將DMM插入其儲存技術(shù)的DDR通道是僅基于PCMS的)來利用以上所描述的遠存儲器原子操作。
[0185]如以上所描述的,遠存儲器控制邏輯能夠被實現(xiàn)在一個或多個半導(dǎo)體芯片上。同樣地,用于存儲器控制器的邏輯電路能夠被實現(xiàn)在一個或多個半導(dǎo)體芯片上。
[0186]盡管以上的討論中的許多針對位于CPU管芯和CPU封裝外部(例如,在插入到發(fā)源于CPU封裝的通道中的DIMM卡上)的近存儲器系統(tǒng)存儲器和遠存儲器系統(tǒng)存儲器設(shè)備,但架構(gòu)上,以上的實施例和過程仍然也能夠?qū)崿F(xiàn)在相同的CPU封裝內(nèi)(例如,其中通道利用DRAM和PCMS設(shè)備被裝載到的襯底上的導(dǎo)電跡線與CPU管芯一起實現(xiàn)在相同的CPU封裝中(遠存儲器控制邏輯能夠被設(shè)計到CPU管芯或裝載到襯底的另一個管芯中)或甚至在CPU管芯自身上(例如,其中除了用于例如實現(xiàn)CPU和存儲器控制器的邏輯電路之外,CPU管芯還在其上集成了 DRAM系統(tǒng)存儲器和PCMS系統(tǒng)存儲器,并且“通道”利用(例如,多級的)管芯上互連布線來實現(xiàn))。
[0187]訓(xùn)練
訓(xùn)練是一種嵌入的配置方案,經(jīng)通信耦合的半導(dǎo)體設(shè)備能夠通過其來“想出”它們之間的適當(dāng)?shù)男帕钐匦詰?yīng)該是什么。在其中僅DRAM設(shè)備耦合到相同的存儲器通道的情況下,存儲器控制器被訓(xùn)練成由DRAM的每個等級所提供的讀數(shù)據(jù)。存儲器控制器還被訓(xùn)練以向每個等級提供合適地定時的寫數(shù)據(jù)。訓(xùn)練對于x8 DRAM而言基于8位并且對于x4 DRAM而言基于4位而發(fā)生。4或8位組之間的跡線長度方面的差異需要該訓(xùn)練分辨率(在4或8位組內(nèi),跡線需要被匹配)。因為DRAM不具有調(diào)整能力,所以主機應(yīng)該做調(diào)整。這節(jié)約關(guān)于DRAM的成本和功率這二者。
[0188]當(dāng)抓取由于PCMS和DRAM耦合到相同的通道而進行時,還必須訓(xùn)練遠存儲器控制器。對于從近存儲器的讀而言,遠存儲器控制器必須被訓(xùn)練以接受讀數(shù)據(jù)。如果讀數(shù)據(jù)要由來自遠存儲器控制器的DRAM所抓取,那么遠存儲器控制器必須被訓(xùn)練以針對DRAM(其不可調(diào)整)合適地定時數(shù)據(jù),跟著是主機被訓(xùn)練以接收結(jié)果所得的數(shù)據(jù)。在遠存儲器控制器抓取寫數(shù)據(jù)的情況下,將使用類似的兩步驟過程。
【權(quán)利要求】
1.一種由布置在卡上的邏輯電路執(zhí)行的方法,所述卡具有連接器以插入到支持近存儲器高速緩存訪問和遠存儲器訪問的存儲器通道中,包括: 從所述存儲器通道接收由耦合到所述存儲器通道的主機所處理的讀請求事務(wù)的目標地址的第一標簽組件; 響應(yīng)于所述讀請求事務(wù),接收讀自近存儲器高速緩存的高速緩存線的地址的第二標簽組件; 將所述第一和第二標簽組件相比較以確定所述高速緩存線對應(yīng)于高速緩存命中還是高速緩存未命中。
2.根據(jù)權(quán)利要求1所述的方法進一步包括: 響應(yīng)于檢測到發(fā)生了高速緩存未命中,執(zhí)行以下中的至少一個: 從遠存儲器自動地讀期望的高速緩存線; 檢測讀自近存儲器的所述高速緩存線的臟位被設(shè)置,并且將讀自所述近存儲器的所述高速緩存線自動地寫到遠存儲器中。
3.根據(jù)權(quán)利要求1所述的方法,其中在所述從遠存儲器讀所述期望的高速緩存線之后,所述邏輯電路進一步對所述期望的高速緩存線的數(shù)據(jù)執(zhí)行ECC計算。
4.根據(jù)權(quán)利要求1所述的方法,其中所述近存儲器高速緩存利用DRAM技術(shù)來實現(xiàn),并且所述遠存儲器利用PC M技術(shù)來實現(xiàn)。
5.根據(jù)權(quán)利要求1所述的方法,其中所述近存儲器高速緩存駐存在所述卡上。
6.根據(jù)權(quán)利要求1所述的方法,進一步包括: 響應(yīng)于檢測到發(fā)生了高速緩存未命中,執(zhí)行以下操作: 從所述主機接收所述讀請求事務(wù)的標識符,以及作為在將讀自遠存儲器的所述高速緩存線的數(shù)據(jù)運輸?shù)剿鲋鳈C的所述通道上的通信的部分而在所述通道上呈現(xiàn)所述讀請求事務(wù)的所述標識符。
7.根據(jù)權(quán)利要求1所述的方法,其中所述第一標簽組件隨由所述主機根據(jù)被用于訪問所述近存儲器的第一通道協(xié)議而在所述通道上所呈現(xiàn)的第一讀請求一起被接收。
8.根據(jù)權(quán)利要求7所述的方法,其中所述第二標簽組件隨由所述主機根據(jù)被用于訪問所述遠存儲器的第二通道協(xié)議而在所述通道上所呈現(xiàn)的第二讀請求一起被接收。
9.一種半導(dǎo)體芯片,包括: 到存儲器通道的接口; 讀緩沖器,保存從所述存儲器通道接收到的遠存儲器讀請求; 邏輯電路,響應(yīng)于在所述存儲器通道上發(fā)布的近存儲器讀請求而檢測讀自近存儲器的高速緩存線的高速緩存未命中,所述近存儲器用于所述遠存儲器的高速緩存,所述邏輯電路響應(yīng)于此而另外執(zhí)行以下中的至少一個: 發(fā)起從所述遠存儲器讀期望的高速緩存線,所述期望的高速緩存線包含由使得所述近存儲器讀請求被發(fā)布在所述存儲器通道上的事務(wù)所尋找的數(shù)據(jù); 檢測讀自近存儲器的所述高速緩存線的臟位被設(shè)置,以及將讀自所述近存儲器的所述高速緩存線自動地寫到遠存儲器中。
10.根據(jù)權(quán)利要求9所述的半導(dǎo)體芯片,其中所述邏輯電路從所述第一接口接收讀自近存儲器的所述高速緩存線的地址的標簽信息和所述事務(wù)的地址的標簽信息這二者。
11.根據(jù)權(quán)利要求9所述的半導(dǎo)體芯片,其中所述邏輯電路包括與所述第一接口不同的第二接口,以耦合到所述遠存儲器,并且其中所述半導(dǎo)體芯片通過所述第一接口來接收接收所述事務(wù)的地址的標簽信息。
12.根據(jù)權(quán)利要求9所述的半導(dǎo)體芯片,進一步包括ECC邏輯,為讀自所述近存儲器的所述高速緩存線和/或?qū)懙剿鲞h存儲器中的所述高速緩存線計算ECC信息。
13.根據(jù)權(quán)利要求9所述的半導(dǎo)體芯片,進一步包括存儲所述事務(wù)的地址的第一標簽組件的第一寄存器空間和存儲讀自所述近存儲器的所述高速緩存線的地址的第二標簽組件的第二寄存器空間,所述第二標簽組件嵌入于讀自所述近存儲器的所述高速緩存線。
14.根據(jù)權(quán)利要求9所述的半導(dǎo)體芯片,其中所述近存儲器利用DRAM來實現(xiàn),并且所述遠存儲器組件利用PCM來實現(xiàn)。
15.根據(jù)權(quán)利要求14所述的半導(dǎo)體芯片,其中所述半導(dǎo)體芯片進一步包括用于所述PCM遠存儲器的耗盡均衡算法邏輯電路。
16.根據(jù)權(quán)利要求14所述的半導(dǎo)體芯片,其中所述半導(dǎo)體芯片進一步包括保存對所述遠存儲器的寫請求的寫請 求緩沖器和保存對所述遠存儲器的讀請求的讀請求緩沖器。
17.—種半導(dǎo)體芯片,包括: 存儲器控制器電路,具有接口電路以耦合到存儲器通道,所述存儲器控制器電路包括; 第一邏輯電路,通過接口電路來在存儲器通道上實現(xiàn)第一存儲器通道協(xié)議,所述第一存儲器通道協(xié)議特定于第一易失性系統(tǒng)存儲器技術(shù); 第二邏輯電路,通過接口電路來在存儲器通道上實現(xiàn)第二存儲器通道協(xié)議,所述第二存儲器通道協(xié)議特定于第二非易失性系統(tǒng)存儲器技術(shù),所述第二存儲器通道協(xié)議是事務(wù)協(xié)議。
18.根據(jù)權(quán)利要求17所述的半導(dǎo)體芯片,其中所述第一類型的存儲器儲存技術(shù)是DRAM,并且所述第二類型的存儲器儲存技術(shù)是PCM。
19.根據(jù)權(quán)利要求17所述的半導(dǎo)體芯片,其中所述存儲器通道包括命令總線、數(shù)據(jù)總線以及控制線。
20.根據(jù)權(quán)利要求17所述的半導(dǎo)體芯片,其中作為實現(xiàn)所述第一存儲器通道協(xié)議的部分,所述第一邏輯電路不從所述第一接口接收讀請求,并且其中作為實現(xiàn)所述第二存儲器通道協(xié)議的部分,所述第二邏輯電路從所述接口接收讀請求。
21.一種計算機系統(tǒng),包括: 存儲器控制器電路,具有接口電路以耦合到存儲器通道,所述存儲器控制器電路包括; 第一邏輯電路,通過接口電路來在存儲器通道上實現(xiàn)第一存儲器通道協(xié)議,所述第一存儲器通道協(xié)議特定于第一易失性系統(tǒng)存儲器技術(shù); 第二邏輯電路,通過接口電路來在存儲器通道上實現(xiàn)第二存儲器通道協(xié)議,所述第二存儲器通道協(xié)議特定于第二非易失性系統(tǒng)存儲器技術(shù),所述第二存儲器通道協(xié)議是事務(wù)協(xié)議; 第一存儲器設(shè)備,由第一易失性系統(tǒng)存儲器技術(shù)構(gòu)成并耦合到存儲器通道;以及 第二存儲器設(shè)備,由第二非易失性系統(tǒng)存儲器技術(shù)構(gòu)成并耦合到存儲器通道。
22.根據(jù)權(quán)利要求21所述的計算機系統(tǒng),其中所述第一類型的存儲器儲存技術(shù)是DRAM,并且所述第二類型的存儲器儲存技術(shù)是PCM。
23.根據(jù)權(quán)利要求21所述的計算機系統(tǒng),其中所述存儲器通道包括命令總線、數(shù)據(jù)總線以及控制線。
24.根據(jù)權(quán)利要求23所述的計算機系統(tǒng),進一步包括沿著所述命令總線的在通道和第二存儲器設(shè)備之間的遠存儲器控制邏輯電路。
25.根據(jù)權(quán)利要求24所述的計算機系統(tǒng),其中所述遠存儲器控制電路還沿著所述命令總線處于所述通道和所述第一存儲器設(shè)備之間。
【文檔編號】G06F13/16GK104025060SQ201180075116
【公開日】2014年9月3日 申請日期:2011年9月30日 優(yōu)先權(quán)日:2011年9月30日
【發(fā)明者】B.奈爾, R.K.拉馬努簡, M.P.斯瓦米納桑, T.托馬斯, T.波爾佩迪 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1