此美國專利申請案主張2014年5月8日提出申請的序列號為61/990,199的美國臨時申請案的優(yōu)先權(quán)權(quán)益,所述臨時申請案的內(nèi)容以全文引用的方式并入。
背景技術(shù):
多處理器系統(tǒng)可包含允許多個處理器對同一數(shù)據(jù)執(zhí)行操作的共享存儲器。對共享存儲器的存取可為緩慢的且可導(dǎo)致系統(tǒng)等待時間。為改善存儲器存取時間,多處理器共享存儲器系統(tǒng)可包含相對較小但較快的存取高速緩沖存儲器。高速緩沖存儲器存儲可由處理器頻繁存取的數(shù)據(jù)的副本。為維持經(jīng)高速緩存數(shù)據(jù)的正確性,后續(xù)接著高速緩沖存儲器一致性協(xié)議。高速緩沖存儲器一致性協(xié)議對通過處理器的對經(jīng)高速緩存數(shù)據(jù)的存取強加規(guī)則以確保盡管存在數(shù)據(jù)的多個副本,但數(shù)據(jù)跨越所有處理器是正確的。然而,高速緩沖存儲器一致性協(xié)議可消耗寶貴系統(tǒng)帶寬且產(chǎn)生數(shù)據(jù)存取的不均勻等待時間。本發(fā)明人已認(rèn)識到在多處理器共享存儲器系統(tǒng)中需要經(jīng)改善數(shù)據(jù)管理。
附圖說明
圖1圖解說明可用于實踐本發(fā)明的一些實施例的混合存儲器立方體的表示。
圖2是圖解說明可用于實踐本發(fā)明的一些實施例的混合存儲器立方體的四分之一的框圖。
圖3展示可用于實踐本發(fā)明的一些實施例的混合存儲器立方體的四個可能裝置拓?fù)涞目驁D。
圖4展示可用于實踐本發(fā)明的一些實施例的一種一致性目錄存儲器格式的實例。
圖5展示可用于實踐本發(fā)明的一些實施例的用HMC裝置實施的計算機(jī)系統(tǒng)的實例的框圖。
圖6展示操作計算機(jī)系統(tǒng)的方法的實例的流程圖。
圖7展示操作計算機(jī)系統(tǒng)的方法的另一實例的流程圖。
具體實施方式
在本發(fā)明的實例性實施例的以下詳細(xì)描述中,通過圖式及圖解說明方式而參考本發(fā)明的特定實例性實施例。充分詳細(xì)地描述這些實例以使得所屬領(lǐng)域的技術(shù)人員能夠?qū)嵺`本發(fā)明,且所述實例用于圖解說明本發(fā)明可如何應(yīng)用于各種目的或?qū)嵤├?。存在本發(fā)明的其它實施例且所述實施例在本發(fā)明的范圍內(nèi),且可在不背離本發(fā)明的標(biāo)的或范圍的情況下做出邏輯、機(jī)械、電及其它改變。本文中所描述的本發(fā)明的各種實施例的特征或限制雖然對其中并入所述特征或限制的實例性實施例是必要的,但其并不限制本發(fā)明的其它實施例或作為整體的本發(fā)明,且對本發(fā)明的任何參考(其元件、操作及應(yīng)用)并不限制作為整體的本發(fā)明,而是僅用于定義這些實例性實施例。因此,以下詳細(xì)描述并不限制僅由所附權(quán)利要求書界定的本發(fā)明的各種實施例的范圍。
在常規(guī)計算機(jī)系統(tǒng)中,存儲器以二維方式組織成若干行及若干列。為改善存儲器存取等待時間做出的努力已包含開發(fā)具有高帶寬接口的雙數(shù)據(jù)速率類型三(DDR3)或DDR4。DDR3及DDR4使用傳統(tǒng)行/列方法。
圖1圖解說明混合存儲器立方體105(HMC)的表示。HMC通過堆疊集成電路(IC)存儲器裸片110且使用實現(xiàn)在IC裸片的頂部及底部兩者上的存取的穿硅通孔(TSV)結(jié)構(gòu)(未展示)來互連裸片而包含第三維度。TSV制造技術(shù)實現(xiàn)多個裸片層的互連,以便構(gòu)造三維裸片。互連多個裸片層的此能力準(zhǔn)許建造具有存儲器存儲層與一或多個邏輯層的組合的存儲器裝置。以此方式,所述裝置在單個電子裝置封裝中提供物理存儲器存儲及邏輯存儲器事務(wù)處理。圖1中所展示的布置是用以圖解說明概念且未必表示實際裸片布局。
HMC(例如,如混合存儲器立方體規(guī)范版本1.0中所規(guī)定)可提供具有高達(dá)每裝置320GB/s的可用帶寬容量的極緊湊且功率高效封裝。HMC裝置能夠經(jīng)由階層式且并行設(shè)計方法而具有高帶寬。裝置階層跨越邏輯層而垂直地發(fā)生且硬件并行跨越給定裸片層而發(fā)生。在HMC內(nèi),存儲器組織成若干存儲庫。每一存儲庫120使用穿硅通孔在裸片內(nèi)垂直地橫跨存儲器層中的每一者。在圖1的經(jīng)簡化實例中,HMC組織成16個存儲庫,其中每一存儲庫具有邏輯庫裸片層115或邏輯庫。
圖2是圖解說明HMC 205的四分之一的框圖。展示HMC的四個存儲庫,其中每一存儲庫220包含多個存儲器層。邏輯庫層215包含多個組件。例如,每一存儲庫在邏輯庫中具有管理用于所述存儲庫的所有存儲器參考操作的存儲器控制器。存儲器控制器提供對3D存儲層的靈活存取。3D分層方法準(zhǔn)許存儲器事務(wù)不僅跨越目標(biāo)存儲陣列內(nèi)的存儲組,且還跨越并行存儲陣列并行地存在。邏輯庫層215可包含用以實施所描述功能的一或多個處理器,且HMC可為存儲器中處理器(PIM)裝置。
邏輯庫層215提供對HMC裝置的外部鏈路存取以及內(nèi)部路由及事務(wù)邏輯兩者。外部I/O鏈路由四個或八個邏輯鏈路提供。每一鏈路可包含十六個或八個串行I/O或SERDES雙向鏈路的群組。四鏈路裝置具有在10Gbps、12.5Gbps及15Gbps下操作的能力。八鏈路裝置具有在10Gbps下操作的能力。在內(nèi)部,鏈路附接到路由邏輯以便引導(dǎo)控制每一垂直存儲器存儲單元的邏輯裝置處的事務(wù)。在圖2的實例中,路由邏輯包含縱橫開關(guān)邏輯。
HMC鏈路結(jié)構(gòu)支持將裝置附接到主機(jī)(處理器)或其它HMC裝置兩者的能力。鏈接(chaining)的此概念準(zhǔn)許構(gòu)造需要比單個裝置大的容量而不擾亂鏈路結(jié)構(gòu)及經(jīng)包化事務(wù)協(xié)議的存儲器子系統(tǒng)。鏈路可以眾多拓?fù)渑渲脼橹鳈C(jī)裝置鏈路或直通鏈路。
圖3展示基于庫四鏈路HMC配置的四個可能裝置拓?fù)涞目驁D。HMC存儲器裝置305可以傳統(tǒng)網(wǎng)絡(luò)拓?fù)?例如網(wǎng)狀、環(huán)面或縱橫狀)配置。將多個HMC裝置鏈接在一起增加可用于主機(jī)的總存儲器容量。
返回到圖2,針對每一獨立存儲庫,存儲庫的邏輯庫層類似于DIMM控制器單元。在圖2的實例中,存儲庫邏輯塊225及其相應(yīng)存儲庫存儲單元220可組織成四重單元。每一四重單元表示四個存儲庫單元。每一四重單元與最接近物理鏈路塊松散地相關(guān)聯(lián)。以此方式,主機(jī)裝置具有以下能力:通過邏輯上將請求包發(fā)送到其相關(guān)聯(lián)四重單元物理上最接近于所需存儲庫的鏈路而使HMC裝置的整個邏輯庫層的等待時間最小化。
一旦在目標(biāo)存儲器存儲庫內(nèi),存儲器存儲裝置便可分解成傳統(tǒng)概念的存儲組及動態(tài)隨機(jī)存取存儲器(DRAM)。通過經(jīng)堆疊存儲器層的垂直存取類似于選擇適當(dāng)存儲器存儲組。下部存儲組可經(jīng)配置于下部裸片層中,而垂直上升(vertical ascension)選擇后續(xù)存儲組。一旦在存儲組層內(nèi),便可使用行及列以傳統(tǒng)方式組織DRAM。存儲庫控制器將DRAM分解成各自尋址16個字節(jié)的一百萬位(1Mb)塊。針對每一列提取,可以32個字節(jié)來執(zhí)行到目標(biāo)存儲組的讀取或?qū)懭胝埱蟆?/p>
針對多主機(jī)多HMC系統(tǒng),使用經(jīng)包化格式來執(zhí)行主機(jī)裝置與HMC裝置之間的帶內(nèi)通信。此經(jīng)包化格式可包含三個主要包分類:請求包、響應(yīng)包及流控制包。包可經(jīng)配置為單個16字節(jié)流單位或FLIT的倍數(shù)。最大包大小含有9個FLIT或144個字節(jié)。最小16字節(jié)(一個FLIT)包含有包標(biāo)頭及包尾標(biāo)。用于所有存儲器有效負(fù)載大小的存儲器讀取請求包可僅需要包標(biāo)頭、包尾標(biāo)及相應(yīng)物理存儲器地址。因此,讀取請求可使用單個FLIT配置。然而,寫入請求及原子請求包還含有分別用于寫入及讀取-修改-寫入操作的所需輸入數(shù)據(jù)。因此,這些請求類型具有2個FLIT到9個FLIT的包寬度。
HMC系統(tǒng)實施方案可具有多個包重新排序點。目的地是輔助裝置的到達(dá)包可通過等待本地存儲庫存取的那些輔助裝置。本地存儲庫還可重新排序已排隊包以便最高效地利用去往及來自相應(yīng)存儲庫存儲組的帶寬。然而,存在于給定HMC實施方案中的重新排序點維持包流從特定鏈路到存儲庫內(nèi)的特定存儲組的次序。此確保后續(xù)接著存儲器讀取請求的存儲器寫入請求遞送正確且確定性存儲器行為。
如先前所解釋,HMC提供高帶寬裝置。然而,本發(fā)明系統(tǒng)互連規(guī)范通常缺少維持系統(tǒng)(其主存儲器基于高帶寬裝置,例如HMC)中的適當(dāng)平衡必需的充分功能性、靈活性及性能。例如,系統(tǒng)架構(gòu)可包含用以維持系統(tǒng)單芯片(SoC)與本地存儲器之間的每秒數(shù)百十億字節(jié)帶寬的一或多個HMC,但所述系統(tǒng)架構(gòu)可提供僅具有此可用帶寬的一小部分(例如,十分之一)的系統(tǒng)互連。所述結(jié)果可為高度不平衡系統(tǒng)。
此外,如果附接到系統(tǒng)互連的處理器提供高速緩沖存儲器一致性機(jī)構(gòu),那么可必須將單獨邏輯塊添加到所述系統(tǒng)以提供充分帶寬及功能性以維持共享存儲器及高速緩沖存儲器子系統(tǒng)兩者中的并發(fā)性及正確性。此產(chǎn)生與一組復(fù)雜外圍邏輯塊的處理器互連、存儲器互連及系統(tǒng)互連及具有不同程度的等待時間的復(fù)雜協(xié)議規(guī)范。
低效高速緩沖存儲器一致性尤其在具有分布于多個SoC裝置或插座當(dāng)中的多個執(zhí)行線程(或任務(wù))的應(yīng)用中是一擔(dān)憂。如果核心SoC或處理器支持功能數(shù)據(jù)高速緩存,那么SoC插座之間的高速緩沖存儲器一致性機(jī)構(gòu)必須支持可為比可用于系統(tǒng)互連上的帶寬高的數(shù)量級的本地存儲器帶寬。再次,所述結(jié)果是高度不平衡系統(tǒng)。
用以改善系統(tǒng)層級等待時間的方法是提供具有大體上高帶寬存儲器裝置的帶寬的存儲器一致性子系統(tǒng)。用以提供此目的的一種方式是使用一或多個HMC裝置實施系統(tǒng)存儲器一致性。由于HMC具有執(zhí)行原位原子存儲器操作的能力,因此HMC可經(jīng)延伸以提供高帶寬及低等待時間存儲器一致性機(jī)構(gòu)。
在常規(guī)系統(tǒng)中,用于高速緩沖存儲器一致性的一種方法是使用基于目錄的高速緩沖存儲器一致性協(xié)議。一致性目錄充當(dāng)篩選器,處理器通過所述篩選器尋求許可以將條目從主要存儲器加載到其高速緩沖存儲器。當(dāng)條目改變時,所述目錄更新具有所述條目的其它高速緩沖存儲器或使所述其它高速緩沖存儲器失效?;谀夸浀母咚倬彌_存儲器一致性包含對將狀態(tài)指派到高速緩沖存儲器線的“目錄”的維持。每一高速緩沖存儲器線可被指派“家節(jié)點(home node)”作為高速緩沖存儲器線的狀態(tài)的最終仲裁者。家節(jié)點擁有地址空間且準(zhǔn)許修改高速緩沖存儲器線。目錄指派狀態(tài)且基于目錄的協(xié)議接著使用主機(jī)當(dāng)中的點對點通信來處理元數(shù)據(jù)。
處理器通常存儲目錄的顯著量的高速緩沖存儲器線狀態(tài)信息且依賴于快速高速緩沖存儲器存取以讀取高速緩沖存儲器元數(shù)據(jù)且確定高速緩沖存儲器線的狀態(tài)。高速緩沖存儲器控制器保持跟蹤哪一主機(jī)簽出高速緩沖存儲器線。在此配置中,高速緩沖存儲器目錄本身必須被高速緩存(通常完全相關(guān)聯(lián)地),從而形成維持于最后層級高速緩沖存儲器或存儲器控制器處的復(fù)雜且高耗電數(shù)據(jù)結(jié)構(gòu)。針對大的對稱多處理器(SMP)配置,這些數(shù)據(jù)結(jié)構(gòu)通常不適合于芯片上且必須由DRAM支持。
由于HMC裝置的物理存儲器存儲裝置的階層式性質(zhì),因此HMC裝置相比于傳統(tǒng)分組DRAM裝置(例如,DDR3或DDR4裝置)具有不同物理尋址與交錯模型。HMC裝置的物理地址編碼到含有存儲庫、存儲組及地址位的34位字段中。具有四鏈路裝置的實施方案利用所述字段的下部32個位,且具有八鏈路裝置的實施方案利用所述字段的下部33個位。
與DDR3或DDR4裝置相比,HMC裝置可廉價地實施抽象化存儲器存儲接口。例如針對DDR類型裝置,當(dāng)處理器期望存取地址時,真實或?qū)嶋H物理地址被置于總線上且被存取。在HMC協(xié)議中,物理地址可在其到達(dá)HMC處時重新映射到不同存儲器地址。因此,對于HMC,不存在對所寫入的實際存儲器位置的保證。另外,不需要HMC在設(shè)置時間產(chǎn)生響應(yīng)。
可利用HMC的此地址重新映射能力以實施基于目錄的存儲器一致性。為提供對目錄存儲器一致性的支持,HMC的庫邏輯層可經(jīng)配置以將給定存儲器塊的位置抽象化成相關(guān)聯(lián)存儲器字或“高速緩沖存儲器線”。因此,可將存儲器一致性目錄存儲于HMC存儲裝置存儲庫內(nèi)。此提供使用相同HMC協(xié)議管理傳統(tǒng)存儲器業(yè)務(wù)及高速緩沖存儲器一致性業(yè)務(wù)兩者的方法;借此提供本地存儲器數(shù)據(jù)存取及系統(tǒng)存儲器數(shù)據(jù)存取的統(tǒng)一性。
圖4展示一種一致性目錄存儲器格式的實例??稍诎趲煳锢淼刂纷侄沃械奈锢淼刂贩矫婷枋鯤MC的直接存儲器空間。在所展示的實例中,高達(dá)34個位的物理地址存儲是可用的。庫物理地址用作存儲器操作的目標(biāo)且可包含存儲庫、存儲組及DRAM地址位。地址擴(kuò)展立方體ID(CUB)字段指示支持存儲器字的存儲器駐存于其中的HMC裝置。目錄位字段提供存儲器一致性位以如同存儲器字是高速緩沖存儲器線一般地維持存儲器字的狀態(tài)信息。如果存儲器一致性目錄使用MESI一致性協(xié)議,那么目錄位包含經(jīng)修改位、專屬位、共享位及無效位。通過存取與庫物理地址相關(guān)聯(lián)的存儲器字加上CUB偏移而執(zhí)行將數(shù)據(jù)字作為高速緩沖存儲器線而存取。如果數(shù)據(jù)條目包含八個字節(jié),那么單個8GB HMC裝置可支持超過十億個并發(fā)目錄條目。
在存儲器一致性以此方式組織的情況下,可使用HMC原子存儲器操作對存儲器執(zhí)行查找及修改操作。在使用HMC原生的事務(wù)協(xié)議與目錄交互時維持目錄可變動性。此使得存儲器存取的類型較統(tǒng)一。
可使用原子請求執(zhí)行對目錄條目的存取。原子請求涉及:從DRAM讀取16個字節(jié)的數(shù)據(jù)(如由請求地址字段存取);通過使用16字節(jié)操作數(shù)(也包含于請求包中)而對數(shù)據(jù)執(zhí)行操作;及接著將結(jié)果寫回到DRAM中的相同位置。讀取-更新-寫入序列以原子方式發(fā)生,此意指直到原子請求的寫入完成為止,無其它請求可存取相同存儲組。原子請求類似于16字節(jié)寫入請求,在于所述原子請求在請求包中具有16字節(jié)數(shù)據(jù)有效負(fù)載,且可或可不返回寫入響應(yīng)(取決于所發(fā)出的請求是張貼(posted)請求還是非張貼請求)。由原子操作產(chǎn)生的數(shù)據(jù)在響應(yīng)命令中不被返回??墒褂迷哟鎯ζ鞑僮?例如(舉例來說)HMC協(xié)議的ADD即時請求命令)執(zhí)行對目錄條目的修改。還可使用原子存儲器操作(例如(舉例來說)其中目標(biāo)即時值為零的ADD即時請求命令)執(zhí)行對目錄條目的查找。
圖5展示用HMC裝置實施以包含基于HMC的存儲器一致性目錄的計算機(jī)系統(tǒng)500的實例的框圖。所述系統(tǒng)包含多個主機(jī)處理器。所述處理器可實施為SoC,其中每一處理器由SoC插座502表示。所述實例展示四個處理器,但所述系統(tǒng)靈活地包含其它數(shù)目個處理器。
所述系統(tǒng)也包含經(jīng)配置為用于主機(jī)處理器的分布式共享存儲器的多個HMC裝置。所述HMC裝置中的一些HMC裝置用作端點裝置且一些HMC裝置用作集線器裝置。集線器裝置可提供直通通信能力以提供系統(tǒng)內(nèi)通信。
在給出用具有以三維方式布置的存儲器裸片的HMC裝置實施存儲器時,共享存儲器經(jīng)配置以用于3D存儲器存取。HMC裝置505的存儲器裸片的存儲器的至少一部分經(jīng)映射以包含存儲器一致性目錄的至少一部分。此暗示常規(guī)高速緩沖存儲器一致性數(shù)據(jù)或元數(shù)據(jù)可存儲于存儲器字駐存于其中的存儲器中。HMC裝置的邏輯庫裸片包含管理至少一個第二裝置(例如(舉例來說)處理器或另一HMC裝置)對HMC裝置存儲器的三維(3D)存取的至少一個存儲器控制器。邏輯庫裸片還包含針對存儲于多個存儲器裸片的存儲器中的數(shù)據(jù)實施存儲器一致性協(xié)議的邏輯電路。
由于一致性目錄存儲于HMC裝置中,因此HMC裝置本身可用作用于其自身的數(shù)據(jù)的家節(jié)點。存儲器一致性狀態(tài)信息可與所述數(shù)據(jù)存儲在一起。邏輯庫層在不將所述數(shù)據(jù)存儲于單獨高速緩沖存儲器中的情況下允許存儲器一致性狀態(tài)信息在處理器當(dāng)中傳遞。存儲于共享存儲器中的數(shù)據(jù)基本上是高速緩沖存儲器線。另外,在給出由HMC裝置實施存儲器一致性的情況下,與維持存儲器一致性狀態(tài)信息相關(guān)聯(lián)的處理開銷被從處理器移除。
如先前所解釋,針對多主機(jī)多HMC系統(tǒng),使用經(jīng)包化協(xié)議來執(zhí)行主機(jī)裝置與HMC裝置之間的I/O通信。存儲器一致性協(xié)議可包含于此I/O協(xié)議中。經(jīng)包化信息可包含存儲器一致性狀態(tài)信息。在一些實例中,存儲器一致性狀態(tài)信息可如圖4的實例中一般與地址信息包含在一起。將存儲器一致性協(xié)議與I/O協(xié)議包含在一起將兩種功能組合到統(tǒng)一高效通信系統(tǒng)中。此使本地存儲器請求及系統(tǒng)存儲器請求兩者中的等待時間最小化且消除本地接口與系統(tǒng)接口之間的協(xié)議翻譯。
狀態(tài)信息確定處理器是否可安全地將數(shù)據(jù)寫入到存儲器字、存儲器字當(dāng)前是否保持有效數(shù)據(jù)且確定可如何將存儲器字轉(zhuǎn)換為其中可能進(jìn)行對存儲器字的讀取或?qū)懭氲臓顟B(tài)。在一些實例中,HMC裝置的邏輯電路實施MSI高速緩沖存儲器一致性協(xié)議且確定存儲器裸片的存儲器字的“經(jīng)修改”狀態(tài)信息、“共享”狀態(tài)信息及“無效”狀態(tài)信息且與存儲器裸片的存儲器字相關(guān)聯(lián)地存儲狀態(tài)信息。在特定變化中,經(jīng)修改狀態(tài)信息、共享狀態(tài)信息及無效狀態(tài)信息分別包含經(jīng)修改位、共享位及無效位。在特定實例中,HMC裝置的邏輯電路實施確定專屬權(quán)狀態(tài)信息的MESI高速緩沖存儲器。在特定實例中,HMC裝置的邏輯電路實施確定存儲器裸片的存儲器字的所有權(quán)狀態(tài)信息的MOSI高速緩沖存儲器。邏輯電路與共享存儲器數(shù)據(jù)字相關(guān)聯(lián)地存儲專屬權(quán)狀態(tài)信息及所有權(quán)狀態(tài)中的一者或兩者。在一些實例中,集線器HMC裝置將路由信息添加到經(jīng)包化消息。路由信息可用于(例如,通過接收HMC裝置)確定存儲器一致性狀態(tài)信息。
根據(jù)一些實例,“簽出/簽入”機(jī)制由希望更新特定存儲器字的處理器使用。在此情形中,處理器請求對存儲器位置X的專屬存取。一旦所述存取由存儲器字駐存于其中的HMC裝置授予,存儲器字便可標(biāo)記為“經(jīng)簽出”(在裝置上的小相關(guān)聯(lián)表中或作為存儲器中的狀態(tài)的額外位)。當(dāng)數(shù)據(jù)由處理器往回簽入時,HMC裝置推定所述數(shù)據(jù)被更新。因此,存儲器字本身將由處理器寫回(或“清空”)且存儲器中的空間可經(jīng)重新使用于存儲額外狀態(tài)信息(例如,指示簽出存儲器字的裝置的狀態(tài)信息)。對存儲器字X的進(jìn)一步請求可從組合兩條信息(例如,高速緩沖存儲器線由處理器P簽出的狀態(tài)信息)的HMC裝置接收響應(yīng)。基于目錄的一致性協(xié)議接著通過使用存儲器一致性狀態(tài)更新(例如,可要求處理器P清空存儲器內(nèi)容等)而繼續(xù)進(jìn)行。當(dāng)處理器P將新數(shù)據(jù)清空回到家節(jié)點(存儲器字的HMC裝置)時,可簽入存儲器字且清除狀態(tài)信息。
在一些實例中,HMC裝置響應(yīng)于對目標(biāo)存儲器字的特定狀態(tài)請求。例如,目標(biāo)HMC裝置可從處理器接收對對存儲器字的專屬存取的請求(例如,對專屬狀態(tài)的請求)。HMC裝置的邏輯電路可起始對存儲器字的狀態(tài)信息的讀取。如果狀態(tài)信息指示第二裝置已具有對存儲器字的專屬存取及所有權(quán),那么邏輯電路可使所述存儲器字無效且等待來自擁有的裝置的無效確認(rèn)。當(dāng)接收到確認(rèn)時,HMC裝置可將專屬存取賦予原始請求裝置。
圖6展示操作計算機(jī)系統(tǒng)(例如圖5中所展示的實例性系統(tǒng))的方法600的實例的流程圖。在605處,例如通過HMC協(xié)議而管理對所述計算機(jī)系統(tǒng)的分布式共享存儲器的存取。所述共享存儲器經(jīng)配置以用于三維存取,且包含一或多個HMC裝置。
在610處,將存儲器一致性狀態(tài)信息作為存儲器一致性目錄存儲于分布式共享存儲器中。在一些實例中,存儲器一致性目錄分布于計算機(jī)系統(tǒng)的多個HMC裝置上。
在615處,在計算系統(tǒng)的多個處理器與共享存儲器之間傳遞傳遞經(jīng)包化信息,且在620處,將高速緩沖存儲器一致性狀態(tài)信息與所傳遞經(jīng)包化信息包含在一起。在一些實例中,620在計算機(jī)系統(tǒng)的處理器之間點對點地傳遞高速緩沖存儲器一致性狀態(tài)信息。
本文中所描述的實例性系統(tǒng)及方法提供優(yōu)于常規(guī)多處理器分布式共享存儲器系統(tǒng)的數(shù)個優(yōu)點。由HMC裝置提供的高帶寬產(chǎn)生高帶寬存儲器及高帶寬系統(tǒng)互連。HMC裝置在系統(tǒng)架構(gòu)中的分布使本地存儲器之間以及與HMC裝置互連的其它系統(tǒng)層級存儲器之間的帶寬及系統(tǒng)等待時間特性平衡。將存儲器一致性協(xié)議并入到系統(tǒng)I/O協(xié)議中提供維持本地存儲器與系統(tǒng)層級存儲器之間的存儲器請求的原子性的一個統(tǒng)一協(xié)議。所述統(tǒng)一協(xié)議通過減少或消除本地存儲器存取與系統(tǒng)層級存儲器存取之間的協(xié)議翻譯且通過使用用于本地存儲器存取及系統(tǒng)層級存儲器存取兩者的高效HMC包規(guī)范而使等待時間最小化。通過卸載存儲器一致性目錄的維持且通過由SoC簡化一致性目錄查找而簡化SoC設(shè)計。
用于高速緩沖存儲器一致性的另一方法是使用窺探協(xié)議。在窺探協(xié)議中,計算機(jī)系統(tǒng)的處理器監(jiān)視使用可提供處理器當(dāng)中的點對點通信的存儲器一致性接口發(fā)射的存儲器業(yè)務(wù)。與基于目錄的方法相比,處理器從經(jīng)由一致性接口的通信跟蹤狀態(tài)信息而非通過存取目錄來確定狀態(tài)信息。針對MSI窺探協(xié)議,存儲器一致性接口廣播特定高速緩沖存儲器線是否處于經(jīng)修改、共享或無效狀態(tài)中,從而允許高速緩沖存儲器及處理器相應(yīng)地更新共享副本的狀態(tài)。例如,當(dāng)修改高速緩沖存儲器線時,必須使系統(tǒng)中的高速緩沖存儲器線的其它副本無效,使得可維持一致數(shù)據(jù)。
計算機(jī)系統(tǒng)的HMC裝置可經(jīng)配置以從處理器將窺探功能卸載(例如通過將存儲器一致性廣播協(xié)議并入到系統(tǒng)的I/O協(xié)議中)。保持跟蹤存儲器字的狀態(tài)(或窺探)的HMC裝置可響應(yīng)于對共享存儲器字的請求,猶如任何常規(guī)高速緩沖存儲器響應(yīng)于對共享高速緩沖存儲器線的請求一樣。
例如,HMC裝置的存儲庫的邏輯庫層可包含確定駐存于其裝置中的存儲器字的狀態(tài)信息的邏輯電路。當(dāng)對存儲器字進(jìn)行讀取存取時,邏輯庫層的邏輯電路可將所述存儲器字的狀態(tài)信息設(shè)置為“專屬的”以將專屬存取賦予請求者??山柚鷮ψx取存取的經(jīng)包化響應(yīng)而返回狀態(tài)信息。其它HMC裝置可跟蹤包含于經(jīng)包化通信中的狀態(tài)信息(例如,通過使用經(jīng)擴(kuò)展HMC協(xié)議)。計算機(jī)系統(tǒng)中的一些HMC裝置(例如,集線器HMC裝置)包含直通鏈路以促進(jìn)包路由。直通鏈路可用于跟蹤在響應(yīng)包中傳遞的狀態(tài)信息。端點(例如HMC主機(jī)鏈路或處理器)可通過將非修改請求發(fā)射到存儲器字而從存儲器字的擁有者查詢狀態(tài)信息。可以對非修改請求的經(jīng)包化響應(yīng)通信來返回狀態(tài)信息且其它HMC裝置可從響應(yīng)包檢測狀態(tài)信息。
圖7展示操作計算機(jī)系統(tǒng)的方法700的另一實例的流程圖。所述計算機(jī)系統(tǒng)包含經(jīng)配置為共享存儲器的多個HMC裝置。在705處,管理對所述計算機(jī)系統(tǒng)的分布式共享存儲器的存取(例如,使用經(jīng)擴(kuò)展HMC協(xié)議)。在710處,分布式共享存儲器確定由存儲器存取產(chǎn)生的存儲器一致性狀態(tài)信息。在一些實例中,共享存儲器分布于多個HMC裝置上且使用HMC裝置來確定存儲器一致性狀態(tài)信息。
在715處,在計算系統(tǒng)的多個處理器及共享存儲器端點當(dāng)中傳遞經(jīng)包化信息。將存儲器一致性狀態(tài)信息與所傳遞經(jīng)包化信息包含在一起。在一些實例中,使用經(jīng)擴(kuò)展HMC協(xié)議來傳遞經(jīng)包化信息。在720處,使用共享存儲器端點來跟蹤或窺探所廣播存儲器一致性狀態(tài)信息。
經(jīng)窺探無效及寫回將使數(shù)據(jù)的一致副本能夠維持于存儲器中且可產(chǎn)生系統(tǒng)協(xié)議的總體簡化。將協(xié)議并入到存儲器接口的經(jīng)包化通信中可增加響應(yīng)代理(或響應(yīng)端點)的數(shù)目,但HMC裝置的高帶寬還可能實現(xiàn)較快且較具可擴(kuò)縮性響應(yīng)。
雖然本文中已圖解說明且描述了特定實施例,但所屬領(lǐng)域的技術(shù)人員將了解,實現(xiàn)相同目的、結(jié)構(gòu)或功能的任何布置可替代所展示的特定實施例。
舉例來說,以上描述特定來說是指HMC裝置。然而,HMC裝置僅是實施計算機(jī)系統(tǒng)以利用所描述實施例的一個說明性實例。所屬領(lǐng)域的技術(shù)人員將理解,在閱讀本說明書后,所述實施例可應(yīng)用于利用其它裝置實施的計算機(jī)系統(tǒng)。例如,可利用存儲器中處理器(PIM)裝置及DRAM中的一者或兩者來實施所述實施例。PIM裝置是指緊密地耦合到存儲器的一或多個處理器。有時,PIM裝置的一或多個處理器與存儲器裝置包含于同一IC中。PIM裝置也可包含邏輯電路,所述邏輯電路用以實施用于存儲于一或若干PIM裝置的存儲器中的數(shù)據(jù)的存儲器一致性協(xié)議。
在本文獻(xiàn)中,就像在專利文獻(xiàn)中常見的一樣,術(shù)語“一(a或an)”用來包含一或多個,而不管“至少一個”或“一或多個”的任何其它實例或使用。在本文獻(xiàn)中,術(shù)語“或(or)”用來指代非排他性或,使得除非另有指示,否則“A或B”包含“A但非B”、“B但非A”以及“A及B”。在所附權(quán)利要求書中,術(shù)語“包含(including)”及“其中(in which)”用作相應(yīng)術(shù)語“包括(comprising)”及“其中(wherein)”的通俗英語等效物。并且,在所附權(quán)利要求書中,術(shù)語“包含”及“包括”為開放式的,即,在一技術(shù)方案中除在此術(shù)語后列示的那些要素外還包含其它要素的系統(tǒng)、裝置、物品或過程仍視為屬于所述技術(shù)方案的范圍內(nèi)。此外,在所附權(quán)利要求書中,術(shù)語“第一”、“第二”及“第三”等僅用作標(biāo)簽,且不打算對其對象強加數(shù)值要求。
本申請案打算涵蓋對本文中所描述的本發(fā)明的實例性實施例的任何更改或變化形式。打算本發(fā)明僅由權(quán)利要求書及其等效物的完全范圍限制。