用于對等緩存轉發(fā)的方法
【專利摘要】一種使用緩存一致性協(xié)議選擇源節(jié)點的主節(jié)點,包括耦合到目錄的邏輯單元集群,其中所述邏輯單元集群用于從請求緩存節(jié)點接收對數(shù)據(jù)的請求,使用所述目錄確定保存所述被請求數(shù)據(jù)的副本的多個節(jié)點,使用一個或多個選擇參數(shù)選擇其中一個所述節(jié)點作為所述源節(jié)點,以及向所述源節(jié)點發(fā)送消息以確定所述源節(jié)點是否存儲所述被請求數(shù)據(jù)的副本;其中當在所述源節(jié)點中找到所述被請求數(shù)據(jù)時,所述源節(jié)點將所述被請求數(shù)據(jù)轉發(fā)給所述請求緩存節(jié)點;以及一些所述節(jié)點被標記為對應于所述緩存一致性協(xié)議的共享狀態(tài)。
【專利說明】用于對等緩存轉發(fā)的方法
[0001]相關申請案交叉申請
[0002]本發(fā)明要求2012年7月30日由Iulin Lih等人遞交的發(fā)明名稱為“用于對等緩存轉發(fā)的方法(Method for Peer to Peer Cache Forwarding) ”的第 61/677289 號美國臨時專利申請案,以及2013年6月17日由Iulin Lih等人遞交的發(fā)明名稱為“用于對等緩存轉發(fā)的方法(Method for Peer to Peer Cache Forwarding) ”的第 13/919223 號美國專利申請案的在先申請優(yōu)先權,這些在先申請的內容以引用的方式并入本文本中,如全文再現(xiàn)一般。
[0003]關于聯(lián)邦贊助的研宄或開發(fā)的聲明
[0004]不適用。
[0005]參考縮微膠片附錄
[0006]不適用。
【背景技術】
[0007]多核(例如多處理器)系統(tǒng)可以包括多個緩存節(jié)點,這些緩存節(jié)點用于存儲諸如處理指令以及主存儲器位置和/或其它緩存級別中頻繁引用的數(shù)據(jù)之類的數(shù)據(jù)。引用特定主存儲器位置的一個或多個數(shù)據(jù)副本(例如緩存線)可以存儲在多核系統(tǒng)中的不同位置內。例如,與主存儲器地址“0”相關聯(lián)的數(shù)據(jù)值“0”可以存儲在多核系統(tǒng)內的每個緩存節(jié)點中。當其中一個節(jié)點中的一個數(shù)據(jù)副本被修改時,緩存一致性機制可以修改位于其它緩存節(jié)點中的其它副本。緩存一致性機制可通過在多核系統(tǒng)中傳播數(shù)據(jù)變更來保持許多不同緩存節(jié)點內存儲的數(shù)據(jù)的一致性。
[0008]可在多核系統(tǒng)內使用的兩種類型的緩存一致性機制是基于偵聽的一致性和基于目錄的一致性。在基于偵聽的一致性中,每個緩存節(jié)點都可廣播修改數(shù)據(jù)(例如寫指令)的請求。其它緩存節(jié)點可監(jiān)控發(fā)出的請求并確定接收到的請求是否對應于它們自身的緩存存儲器內存儲的數(shù)據(jù)。盡管基于偵聽的一致性可能具有短的延遲周期,但是實施基于偵聽的一致性的系統(tǒng)可能會遇到由于連續(xù)性廣播數(shù)據(jù)所造成的帶寬和可擴展性問題?;蛘?,在基于目錄的一致性中,在一個或多個緩存節(jié)點之間共享的數(shù)據(jù)可以存儲在主節(jié)點中。主節(jié)點可通過目錄保持多核系統(tǒng)內緩存節(jié)點之間的一致性。當一個緩存節(jié)點中的數(shù)據(jù)變更時,主節(jié)點可更新或無效化存儲數(shù)據(jù)的其它緩存節(jié)點中的條目。緩存節(jié)點還可在從主存儲器中加載數(shù)據(jù)之前向主節(jié)點發(fā)送權限請求。因此,與基于偵聽的一致性相比,基于目錄的一致性改善了可擴展性和帶寬問題,但是產(chǎn)生了由于主節(jié)點不斷訪問所造成的較長延遲。
[0009]為了減少基于目錄的一致性內的延遲,可使用修改、自有、排除、共享、無效(M0ESI)協(xié)議或修改、排除、共享、無效、轉發(fā)(MESIF)協(xié)議等緩存一致性協(xié)議來實施對等緩存轉發(fā)。對等緩存轉發(fā)發(fā)生在其中一個節(jié)點用于將被請求數(shù)據(jù)轉發(fā)給另一緩存節(jié)點的時候。指定的緩存節(jié)點直接響應該請求,而不是主節(jié)點從指定的緩存節(jié)點接收被請求數(shù)據(jù)并隨后響應該請求。在M0ESI協(xié)議中,指定用于保存數(shù)據(jù)并響應對數(shù)據(jù)的請求的緩存節(jié)點可指定有“自有”狀態(tài),而MESIF協(xié)議可使用“轉發(fā)”狀態(tài)來指定緩存節(jié)點。在M0ESI和MESIF兩個協(xié)議中,指定的緩存節(jié)點負責響應來自其它緩存節(jié)點的對特定數(shù)據(jù)(例如緩存線)的請求。
[0010]但是,MOESI和MESIF協(xié)議在選擇指定用于響應來自其它緩存節(jié)點的請求方面缺乏靈活性。例如,MESIF協(xié)議指定請求最新數(shù)據(jù)的緩存節(jié)點帶有“轉發(fā)”狀態(tài)。對于MOESI協(xié)議,“自有”狀態(tài)被指定給存儲最新的、正確的數(shù)據(jù)副本的緩存節(jié)點。因此,MOESI和MESIF兩個協(xié)議不能基于請求緩存節(jié)點的位置以及指定的緩存節(jié)點處正在處理的當前工作量等性能因素而動態(tài)選擇緩存節(jié)點。因此,在某些實例中,指定的緩存節(jié)點可能會變?yōu)橐粋€處理瓶頸并導致多核系統(tǒng)內的性能下降。因此,需要一種解決方案來動態(tài)地選擇緩存節(jié)點以滿足多核系統(tǒng)內的請求。
【發(fā)明內容】
[0011]在一項實施例中,本發(fā)明包括一種主節(jié)點,用于使用緩存一致性協(xié)議選擇源節(jié)點,包括耦合到目錄的邏輯單元集群,其中所述邏輯單元集群用于從請求緩存節(jié)點接收對數(shù)據(jù)的請求,使用所述目錄確定保存所述被請求數(shù)據(jù)的副本的多個節(jié)點,使用一個或多個選擇參數(shù)選擇其中一個所述節(jié)點作為所述源節(jié)點,以及向所述源節(jié)點發(fā)送消息以確定所述源節(jié)點是否存儲所述被請求數(shù)據(jù)的副本;其中當在所述源節(jié)點內找到所述被請求數(shù)據(jù)時,所述源節(jié)點將所述被請求數(shù)據(jù)轉發(fā)給所述請求緩存節(jié)點;以及一些所述節(jié)點被標記為對應于所述緩存一致性協(xié)議的共享狀態(tài)。
[0012]在另一項實施例中,本發(fā)明包括一種緩存節(jié)點,用于使用緩存一致性協(xié)議執(zhí)行對等緩存轉發(fā),包括耦合到本地存儲器的邏輯單元集群,其中所述邏輯單元集群用于從主節(jié)點接收偵聽轉發(fā)消息;使用所述偵聽轉發(fā)消息中的信息確定被請求數(shù)據(jù)是否存儲在所述本地存儲器內;當所述被請求數(shù)據(jù)存儲在所述本地存儲器內時,將所述被請求數(shù)據(jù)轉發(fā)給請求緩存節(jié)點;以及當所述被請求數(shù)據(jù)未存儲在所述本地存儲器時,向所述主節(jié)點發(fā)送消息,其中所述緩存節(jié)點分配有所述緩存一致性協(xié)議的共享狀態(tài)。
[0013]在又一項實施例中,本發(fā)明包括一種用于使用緩存一致性協(xié)議選擇源節(jié)點的方法,其中所述方法包括維護將多個條目標記為所述緩存一致性協(xié)議內的共享狀態(tài)的目錄,從其中一個所述緩存節(jié)點接收數(shù)據(jù)請求;確定所述被請求數(shù)據(jù)是否映射到所述目錄內的其中一個所述條目;當在所述目錄內的其中一個所述條目中未找到所述被請求數(shù)據(jù)時,向存儲器的下一級別發(fā)送所述數(shù)據(jù)請求;當在所述其中一個條目中找到所述被請求數(shù)據(jù)時,使用一個或多個選擇參數(shù)從對應于所述其中一個條目的多個緩存節(jié)點中選擇源節(jié)點;向所述源節(jié)點發(fā)送轉發(fā)偵聽消息以確定所述源節(jié)點是否存儲所述被請求數(shù)據(jù)的副本,其中所述選擇參數(shù)按優(yōu)先次序排列選擇作為所述源節(jié)點的緩存節(jié)點,以及所述源節(jié)點在所述緩存節(jié)點之間具有最尚優(yōu)先級。
[0014]結合附圖和權利要求書,可從以下的詳細描述中更清楚地理解這些和其它特征。。
【專利附圖】
【附圖說明】
[0015]為了更完整地理解本發(fā)明,現(xiàn)在參考以下結合附圖和詳細描述進行的簡要描述,其中相同參考標號表不相同部分。
[0016]圖1為具有存儲器的分形結構的多核系統(tǒng)的實施例的示意圖。
[0017]圖2為具有存儲器的分形結構的多核系統(tǒng)的另一實施例的示意圖。
[0018]圖3為節(jié)點的示意圖,所述節(jié)點適用于實施多核系統(tǒng)內揭示的節(jié)點的一個或多個實施例。
[0019]圖4為實施到端緩存轉發(fā)的多核系統(tǒng)的消息序列圖。
[0020]圖5為基于一個或多個選擇參數(shù)動態(tài)選擇源節(jié)點的方法的實施例的流程圖。
【具體實施方式】
[0021]最初應理解,盡管下文提供一個或多個實施例的說明性實施方案,但可使用任意數(shù)目的當前已知或現(xiàn)有的技術來實施所公開的系統(tǒng)和/或方法。本發(fā)明決不應限于下文所說明的所述示例性實現(xiàn)方式、圖式和技術,包含本文所說明并描述的示范性設計和實施方案,而是可以在所附權利要求書的范圍以及其均等物的完整范圍內修改。
[0022]本文公開的是至少一種動態(tài)選擇源節(jié)點的方法、裝置和系統(tǒng)以滿足請求緩存節(jié)點對多核系統(tǒng)的請求。主節(jié)點可基于源節(jié)點的條件狀態(tài)以及多核系統(tǒng)的拓撲動態(tài)地指定源節(jié)點(例如,緩存節(jié)點和/或主節(jié)點)來為請求緩存節(jié)點轉發(fā)數(shù)據(jù)。主節(jié)點無需使用分別在MOESI和MESIF協(xié)議中發(fā)現(xiàn)的“自有”狀態(tài)和/或“轉發(fā)”狀態(tài)就可以選擇源節(jié)點。當請求緩存節(jié)點無法定位其本地緩存存儲器內的特定數(shù)據(jù)(例如,緩存缺失)時,請求緩存節(jié)點可以向主節(jié)點發(fā)送請求以獲得該特定數(shù)據(jù)。一旦主節(jié)點接收到來自請求緩存節(jié)點的數(shù)據(jù),主節(jié)點就可以基于各種選擇因素動態(tài)地選擇與其它緩存節(jié)點(例如,在“共享”狀態(tài)下)共享被請求數(shù)據(jù)的源節(jié)點以滿足請求,這些選擇因素包括源節(jié)點的當前條件狀態(tài)、多核系統(tǒng)的拓撲和/或選擇偏好。主節(jié)點可將消息(例如,偵聽轉發(fā)消息)轉發(fā)給源節(jié)點,從而指示源節(jié)點將數(shù)據(jù)轉發(fā)給請求緩存節(jié)點。如果數(shù)據(jù)位于源節(jié)點內,則源節(jié)點在從主節(jié)點接收指示之后可將該數(shù)據(jù)轉發(fā)給請求緩存節(jié)點。
[0023]圖1為具有存儲器的分形結構的多核系統(tǒng)100的實施例的示意圖。多核系統(tǒng)100可包括形成存儲器層次結構的多級別存儲器。如圖1所示,多核系統(tǒng)100可包括主節(jié)點102、互聯(lián)網(wǎng)絡結構106和一個或多個緩存節(jié)點104。主節(jié)點102可物理上和/或邏輯上集中在多核系統(tǒng)100內以管理緩存節(jié)點104之間的緩存一致性。在一項實施例中,主節(jié)點102可位于多核系統(tǒng)100的存儲器層次結構的N級處,而緩存節(jié)點C0-C3 104可位于存儲器層次結構中的主節(jié)點102的下一級(例如,N-1級)。例如,緩存節(jié)點C0-C3 104可以是2級緩存(例如,存儲器層次結構的2級),而主節(jié)點102可以是3級緩存(例如,存儲器層次結構的3級)。主節(jié)點102可通過互聯(lián)網(wǎng)絡結構106與緩存節(jié)點C0-C3 104通信,互聯(lián)網(wǎng)絡結構106可與主節(jié)點102位于存儲器層次結構的同一級別(例如,N級)處。此外,主節(jié)點102可通過(N+1)級結構108與存儲器層次結構的較高級別通信。多核系統(tǒng)100的其它實施例可使主節(jié)點102跟蹤緩存節(jié)點104,緩存節(jié)點104位于存儲器層次結構中的主節(jié)點102以下的多個級別(例如,N-2級)處。在一個示例中,主節(jié)點102可以是5級緩存,而緩存節(jié)點C0-C3 104可以是3級或更低級緩存。當緩存節(jié)點104位于主節(jié)點102以下的多個存儲器級別處時,主節(jié)點102可能需要更多的資源(例如,存儲空間)來管理存儲器的其它級另IJ,因此增加了實施主節(jié)點102的成本。
[0024]在一項實施例中,主節(jié)點102可與多核系統(tǒng)100的存儲器層次結構的主存儲器級別相關聯(lián)。主節(jié)點102可包括動態(tài)隨機存取存儲器(DRAM)等主存儲器以存儲數(shù)據(jù)的副本。換言之,主節(jié)點102可用于存儲數(shù)據(jù)的未緩存副本。主節(jié)點102還可包括一個或多個緩存存儲器,它們可用于將其中一個緩存級別處的數(shù)據(jù)副本存儲在主節(jié)點102內。如上所述,主節(jié)點102的其它實施例可以在多核系統(tǒng)100的存儲器層次結構的較低級別處(例如,在3級緩存處)實施。
[0025]主節(jié)點102可以是用于保持緩存節(jié)點C0-C3 104之間的緩存一致性的任意節(jié)點。主節(jié)點102可通過監(jiān)控緩存線中的緩存節(jié)點C0-C3 104的狀態(tài)來保持緩存一致性,這些緩存線位于每個緩存節(jié)點C0-C3 104內。主節(jié)點102可包括一個目錄,用于為緩存線中存儲的數(shù)據(jù)監(jiān)控緩存節(jié)點104的狀態(tài)。該目錄可以跟蹤存儲節(jié)點中存儲的緩存線并且將緩存線與緩存狀態(tài)關聯(lián)。例如,該目錄可將緩存節(jié)點C0 104內的一條緩存線與“共享”緩存狀態(tài)關聯(lián),而緩存節(jié)點C0 104內的另一緩存線可具有“無效”緩存狀態(tài)。該目錄可使用編碼的目錄項跟蹤緩存節(jié)點C0-C3 104的狀態(tài),這些目錄項使用各種協(xié)議,包括但不限于位向量協(xié)議和粗向量協(xié)議進行編碼。目錄內的每個目錄項可包括狀態(tài)位,用來表示不同緩存狀態(tài),例如,緩存線是否臟(例如,“修改”狀態(tài))。在一項實施例中,目錄可以存儲在主節(jié)點102的主存儲器內。緩存節(jié)點104的緩存狀態(tài)將在下文進行更詳細地論述。
[0026]緩存節(jié)點C0-C3 104均可包括用于將數(shù)據(jù)存儲在緩存線內的緩存存儲器。所有緩存節(jié)點C0-C3 104內的緩存線根據(jù)緩存一致性協(xié)議可以分配有不同的狀態(tài)。在一項實施例中,多核系統(tǒng)100可用于實施修改、排除、共享、無效(MESI)協(xié)議以保持緩存一致性。對于MESI協(xié)議,緩存節(jié)點104內的每個緩存線均可被標記為“修改”狀態(tài)、“排除”狀態(tài)、“共享”狀態(tài),或“無效”狀態(tài)。標記有“修改”狀態(tài)的緩存線可指示緩存線為“臟”,因為數(shù)據(jù)只存在于緩存線內。緩存線的數(shù)據(jù)值可能已經(jīng)被修改并且與主節(jié)點102和/或主存儲器內存儲的值不同。“排除”狀態(tài)可指示緩存節(jié)點104內的緩存線保存或存儲最新的數(shù)據(jù)并存在于緩存節(jié)點104而不是其它緩存節(jié)點104中。“排除”狀態(tài)還可指示緩存線為“干凈”,這表示緩存線內存儲的數(shù)據(jù)匹配主節(jié)點102和/或主存儲器內存儲的數(shù)據(jù)?!肮蚕怼睜顟B(tài)指示緩存線可存儲在其它緩存節(jié)點104中。在一項實施例中,“共享”狀態(tài)可指示緩存線為“干凈”?!盁o效”狀態(tài)指示緩存線為無效并且不能將數(shù)據(jù)的有效副本保存在緩存線內。緩存線可以是未使用的并且可用于存儲新數(shù)據(jù)。數(shù)據(jù)的有效副本可以存儲在主節(jié)點102、其它緩存節(jié)點104和/或存儲器層次結構的其它存儲器級別(例如主存儲器)中。
[0027]主節(jié)點102內的目錄可在每個目錄項內對兩個位進行編碼以表示修改、排除、共享、有效MESI協(xié)議中的不同狀態(tài)。例如,“00”可被編碼以表示“修改”狀態(tài);“01”可被編碼以表示“排除”狀態(tài);“10”可被編碼以表示“共享”狀態(tài);以及“11”可被編碼以表示“無效”狀態(tài)。與MESI協(xié)議相比,MOESI和MESIF協(xié)議均可使用三個位對緩存線的不同狀態(tài)進行編碼。附加位可分別用來表示MOESI和MESIF協(xié)議中的“自有”狀態(tài)和“轉發(fā)”狀態(tài)。然而,MOESI和MESIF協(xié)議中的附加位會增加管理多核系統(tǒng)100內的緩存一致性的成本。因此,通過使用MESI協(xié)議,目錄不需要第三位對不同狀態(tài)進行編碼,因為主節(jié)點102無需使用MOESI和MESIF協(xié)議中分別要求的“自有”狀態(tài)和/或“轉發(fā)”狀態(tài)就可以選擇源節(jié)點。多核系統(tǒng)100的其它實施例可實施少于四種狀態(tài)的緩存一致性協(xié)議,例如修改、共享、無效(MSI)協(xié)議。
[0028]主節(jié)點102還可用于動態(tài)選擇源節(jié)點以滿足緩存節(jié)點C0-C3104之一的請求,因此與可預指定源節(jié)點的MOESI和MESIF協(xié)議不同。通常,MOESI協(xié)議指定源節(jié)點具有“自有”狀態(tài),意味著源節(jié)點存儲最新的、正確的數(shù)據(jù)副本。MESIF協(xié)議通常指定源節(jié)點具有“轉發(fā)”狀態(tài),意味著源節(jié)點是最近請求數(shù)據(jù)的緩存節(jié)點。然而,MOESI和MESIF協(xié)議都沒有考慮效率因素,例如,源節(jié)點到請求緩存節(jié)點的距離和源節(jié)點的當前工作量。
[0029]為了提高靈活性和性能,主節(jié)點102可基于各種選擇參數(shù),包括但不限于多核系統(tǒng)100的拓撲、緩存節(jié)點104和主節(jié)點102的當前條件狀態(tài),和/或選擇過程的偏好,動態(tài)地選擇源節(jié)點。選擇參數(shù)可將被選為源節(jié)點的緩存節(jié)點104和/或主節(jié)點102按優(yōu)選次序排列和/或按順序列出。選擇參數(shù)可存儲在主存儲器和/或目錄內。“拓撲選擇參數(shù)”可包括關于多核系統(tǒng)100的布局(例如,所有緩存節(jié)點C0-C3 104與主節(jié)點102之間的距離)和多核系統(tǒng)100的拓撲布局的參數(shù)以選擇源節(jié)點?!爱斍皸l件狀態(tài)”選擇參數(shù)可關于與緩存節(jié)點C0-C3 104相關聯(lián)的不同條件,例如緩存線內存儲的數(shù)據(jù)的年齡、緩存節(jié)點C0-C3 104的當前工作量和業(yè)務負載以及緩存節(jié)點C0-C3104的可用帶寬和/或容量?!捌眠x擇參數(shù)”可表示選擇源節(jié)點的預定義方法,例如,在選擇源節(jié)點中使用隨機或輪詢調度方法。選擇參數(shù)將在圖4中進行更詳細地論述??梢圆皇褂脿顟B(tài)指定(例如,“自有”或“轉發(fā)”)來確定源節(jié)點。
[0030]互聯(lián)網(wǎng)絡結構106可以為任意類型的數(shù)據(jù)路徑,用于在所有緩存節(jié)點C0-C3 104與主節(jié)點102之間路由數(shù)據(jù)。例如,緩存節(jié)點C0 104可通過互聯(lián)網(wǎng)絡結構106發(fā)送對數(shù)據(jù)的請求以到達主節(jié)點102。此外,在對等緩存轉發(fā)中,緩存節(jié)點C1 104可通過互聯(lián)網(wǎng)絡結構106將由緩存節(jié)點C0 104請求的數(shù)據(jù)轉發(fā)給緩存節(jié)點C0 104。在一項實施例中,互聯(lián)網(wǎng)絡結構106可以是在線性拓撲中將緩存節(jié)點C0-C3 104和主節(jié)點102互聯(lián)的共享總線?;ヂ?lián)網(wǎng)絡結構106的其它實施例可在各種其它拓撲中將緩存節(jié)點C0-C3 104互聯(lián),例如環(huán)形網(wǎng)拓撲或網(wǎng)狀拓撲。(N+1)級結構108可基本上類似于互聯(lián)網(wǎng)絡結構106,除了(N+1)級結構108可用于將主節(jié)點102互聯(lián)到位于存儲器層次結構的下一級別的其它節(jié)點。
[0031]圖2為具有存儲器的分形結構的多核系統(tǒng)200的另一實施例的示意圖。圖2示出了主節(jié)點0-3 202可分布在多核系統(tǒng)200中。分布式主節(jié)點0-3 202可在多核系統(tǒng)200非常大且復雜時使用。緩存節(jié)點C0-C3 102均可關聯(lián)于其中一個主節(jié)點0-3 202。主節(jié)點0-3 202都可維護位于存儲器層次結構的N級處的存儲器的一部分。主節(jié)點0-3 202內的存儲器可引用N級存儲器的不同地址范圍。例如,N級可以是多核系統(tǒng)200的5級存儲器(例如主存儲器),5級存儲器的總存儲容量約為32千兆字節(jié)。32千兆字節(jié)的存儲器可在主節(jié)點0-3 202之間劃分,使得主節(jié)點0-3 202的存儲容量均約為8千兆字節(jié)。主節(jié)點0202可擁有5級存儲器的第一個八千兆字節(jié)的地址范圍;主節(jié)點1 202可擁有5級存儲器的第二個八千兆字節(jié)的地址范圍;主節(jié)點2 202可擁有5級存儲器的第三個八千兆字節(jié)的地址范圍;以及主節(jié)點3 202可擁有5級存儲器的第四個八千兆字節(jié)的地址范圍。緩存節(jié)點C0-C3 102可用于將5級存儲器的32千兆字節(jié)范圍內存儲的任意數(shù)據(jù)包含在它們的4級存儲器(例如4級緩存)內。
[0032]圖3為節(jié)點300的示意圖,節(jié)點300適用于實施多核系統(tǒng)內公開的節(jié)點(例如,圖1和2中示出的緩存節(jié)點104和主節(jié)點102)的一個或多個實施例。節(jié)點300可包括一個或多個入端口或網(wǎng)絡接口 310以及一個或多個出端口或網(wǎng)絡接口 312。入端口或網(wǎng)絡接口 310以及出端口或網(wǎng)絡接口 312可以是物理和/或邏輯端口,用于連接到如圖1所示的互聯(lián)網(wǎng)絡結構106和/或(N+1)級結構108。入接口或網(wǎng)絡接口 310可內部耦合到接收器(Rx) 306用于從其它節(jié)點接收數(shù)據(jù),而出端口或網(wǎng)絡接口 312可耦合到發(fā)射器(Tx)308用于向其它節(jié)點發(fā)送數(shù)據(jù)。
[0033]節(jié)點300還可包括耦合到Rx306和Tx308的邏輯單元集群302,其中邏輯單元集群302可用于實施進行如下操作的指令:請求來自其它節(jié)點的數(shù)據(jù)、使用選擇參數(shù)確定源節(jié)點,和/或將數(shù)據(jù)轉發(fā)給請求節(jié)點。邏輯單元集群302還可用于實施方法500,方法500將在后面進行更詳細地論述。邏輯單元集群302可包括一個或多個中央處理器(CPU)芯片、現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)、數(shù)字信號處理器(DSP),并且/或者可以是一個或多個ASIC和/或多核處理器集群的一部分。邏輯單元集群302可用于將數(shù)據(jù)寫入緩存存儲器304和存儲器316和/或從緩存存儲器304和存儲器316中讀取數(shù)據(jù),以及當數(shù)據(jù)不在緩存存儲器304和存儲器316中時,向對等節(jié)點生成請求以獲取數(shù)據(jù)。
[0034]圖3示出了邏輯單元集群302可物理上和/或邏輯上耦合到緩存存儲器304。緩存存儲器304可以為易失性和/或非易失性存儲器以及可以使用隨機存取存儲器(RAM)、閃存、磁盤驅動器和/或任意其它合適類型的存儲器來實施。緩存存儲器304可用于為邏輯單元集群302存儲易失性數(shù)據(jù)和指令和/或將頻繁訪問的存儲器位置中的數(shù)據(jù)副本存儲在存儲器316內。在一項實施例中,緩存存儲器304可包括多個緩存級別。例如,緩存存儲器304可包括1級緩存、2級緩存和3級緩存。緩存存儲器304內的一個或多個緩存級別可以嵌入到邏輯單元集群302內的一個或多個處理器中,而緩存存儲器304內的其它緩存級別可位于邏輯單元集群302的外部。緩存存儲器304的其它實施例可具有緩存存儲器304內的嵌入到邏輯單元集群302內的所有緩存級別或具有緩存存儲器304內的位于邏輯單元集群302外部的所有緩存級別。
[0035]緩存存儲器304還可耦合到內存控制器314,其管理存儲器316的傳入和傳出數(shù)據(jù)流。在一項實施例中,內存控制器314可在邏輯單元集群302的外部,而其它實施例可具有嵌入邏輯單元集群302內的內存控制器314。內存控制器314還可用于保持存儲器316和緩存存儲器304之間的緩存一致性。一般而言,存儲器316可使用易失性存儲器,例如RAM存儲器(例如DRAM)來實施。存儲器316的另一項實施例可包括非易失性存儲器,例如一個或多個磁盤、磁帶驅動器、光盤驅動器或固態(tài)驅動器,非易失性存儲器可用于數(shù)據(jù)的非易失性存儲以及用作溢流數(shù)據(jù)存儲部件。當選擇程序用于執(zhí)行時,存儲器316可存儲這些程序并可存儲指令以及程序執(zhí)行期間讀取的數(shù)據(jù)。通常,存儲器316能夠存儲的數(shù)據(jù)比緩存存儲器304的多而且存取的速度比緩存存儲器304的慢。緩存存儲器304和存儲器316可表示節(jié)點300內的本地存儲器。節(jié)點300的一些實施例可能不包括存儲器316和/或內存控制器314。
[0036]圖4為實施對等緩存轉發(fā)的多核系統(tǒng)400的消息序列圖。多核系統(tǒng)400可包括緩存節(jié)點C0-C3 104、主節(jié)點102以及存儲器402。存儲器402可以是多核系統(tǒng)400的主存儲器。主節(jié)點102還可用于執(zhí)行如圖3所述的內存控制器功能。主節(jié)點102和存儲器402可位于存儲器層次結構的N級處,而緩存節(jié)點104可位于存儲器層次結構的N-1級處。如圖4所示,緩存節(jié)點C3 104可通過向主節(jié)點102發(fā)送請求數(shù)據(jù)消息404用作請求節(jié)點。請求消息404可以是位于存儲器402的特定地址內的數(shù)據(jù)的讀取或寫入請求。當本地缺失發(fā)生在緩存節(jié)點C3 104的本地存儲器內時,請求消息404可在緩存節(jié)點C3 104內生成。換言之,請求消息404可指示緩存節(jié)點C3 104想要從源節(jié)點獲取被請求數(shù)據(jù),該源節(jié)點可以是緩存節(jié)點C0-C2 104之一和/或存儲器402,因為緩存節(jié)點C3 104無法在其本地存儲器內找到被請求數(shù)據(jù)?;叵肷衔?,圖3內的邏輯單元集群302可包括可生成數(shù)據(jù)請求的處理器。
[0037]當主節(jié)點102從請求節(jié)點(例如緩存節(jié)點C3 104)接收請求消息404時,主節(jié)點102可將被請求數(shù)據(jù)映射到目錄內的其中一個目錄項。目錄內的信息可用于確定哪些緩存節(jié)點C0-C2 104可能已經(jīng)存儲被請求數(shù)據(jù)以及存儲被請求數(shù)據(jù)的緩存線的狀態(tài)。在圖4中,主節(jié)點102內的目錄指示緩存節(jié)點C0-C2 104標記有對應于被請求數(shù)據(jù)的緩存線的“共享”狀態(tài)。本領域的普通技術人員都知道緩存節(jié)點C0-C2 104根據(jù)緩存節(jié)點C3 104請求的數(shù)據(jù)可具有不同的緩存狀態(tài)。例如,緩存節(jié)點C3 104可向主節(jié)點102發(fā)送請求數(shù)據(jù)消息404以請求存儲器402的地址“0”中的數(shù)據(jù)。針對該請求,緩存節(jié)點C0-C2 104可具有與對應于地址“0”的緩存線相關聯(lián)的“共享”狀態(tài)。緩存節(jié)點C3 104可向主節(jié)點102發(fā)送后續(xù)請求數(shù)據(jù)消息404以請求存儲器402的地址“1”中的數(shù)據(jù)。在該示例中,緩存節(jié)點C0-C1 104可具有“共享”狀態(tài),而緩存節(jié)點C2 104可具有“無效”狀態(tài)用于被請求數(shù)據(jù)。
[0038]在確定哪些緩存節(jié)點C0-C2 104標記有“共享”狀態(tài)之后,主節(jié)點102可動態(tài)選擇其中一個被標記為“共享”狀態(tài)的緩存節(jié)點C0-C2 104為源節(jié)點。在一項實施例中,主節(jié)點102還可選擇它自己而不是其中一個被標記有“共享”狀態(tài)的緩存節(jié)點C0-C2 104作為源節(jié)點。主節(jié)點102可基于一個或多個選擇參數(shù)為每個接收到的請求消息404選擇源節(jié)點。選擇參數(shù)可按優(yōu)選次序排列和/或確定選為源節(jié)點的緩存節(jié)點104和/或主節(jié)點102的順序(例如優(yōu)先級列表)。例如,緩存節(jié)點C2 104可具有最高優(yōu)先級或被列為列表中的第一,以作為選為源節(jié)點的第一節(jié)點。緩存節(jié)點C1 104可具有第二最高優(yōu)先級或被列為第二,而緩存節(jié)點C0 104的優(yōu)先級低于緩存節(jié)點C1 104,被列為第三。主節(jié)點102被指定具有最低優(yōu)先級并被列為優(yōu)先級列表的第四。通過按優(yōu)先次序排列選為源節(jié)點的緩存節(jié)點104,選擇參數(shù)可減少整體的處理時間以滿足緩存節(jié)點C3 104的請求。盡管圖4示出了所選擇的源節(jié)點可處于“共享”狀態(tài),但是其它實施例可具有處于“修改”狀態(tài)和/或“排除”狀態(tài)中的所選源節(jié)點(例如緩存節(jié)點C2 104)。換言之,對等緩存轉發(fā)還可發(fā)生在所選的源節(jié)點處于“修改”狀態(tài)和/或“排除”狀態(tài)中的時候。
[0039]如上所述,選擇參數(shù)可包括基于多核系統(tǒng)400的拓撲、多核系統(tǒng)400內緩存節(jié)點104和主節(jié)點102的當前條件狀態(tài),以及選擇過程的偏好的參數(shù)??山M合一個或多個不同的選擇參數(shù)以優(yōu)化選擇源節(jié)點的選擇過程。例如,主節(jié)點102可基于其中一個“拓撲選擇參數(shù)”和其中一個“當前條件狀態(tài)”選擇參數(shù)來選擇源節(jié)點。選擇參數(shù)可存儲在主存儲器和/或目錄內。每當主節(jié)點102從請求緩存節(jié)點104接收請求時,主節(jié)點102可動態(tài)選擇緩存節(jié)點104和/或它自己作為源節(jié)點。源節(jié)點的選擇不由緩存一致性協(xié)議預定義和/或預定。
[0040]“拓撲選擇參數(shù)”可包括關于多核系統(tǒng)400拓撲的參數(shù)?!巴負溥x擇參數(shù)”在多核系統(tǒng)400拓撲方面存在細節(jié)粒度上的不同。例如,主節(jié)點102可存儲廣義的“拓撲選擇參數(shù)”和/或籠統(tǒng)的拓撲信息,例如,緩存節(jié)點104與相對于發(fā)送請求數(shù)據(jù)消息404的緩存節(jié)點104的主節(jié)點102之間的距離值?;诰嚯x信息,主節(jié)點102可選擇與發(fā)送請求數(shù)據(jù)消息404的緩存節(jié)點104最近的緩存節(jié)點104。以圖4為例,主節(jié)點102可選擇緩存節(jié)點C2104作為源節(jié)點,因為緩存節(jié)點C2 104可能是與緩存節(jié)點C3 104位置最接近的緩存節(jié)點104。在另一項實施例中,主節(jié)點102可使用多核系統(tǒng)400的拓撲布局(例如網(wǎng)狀拓撲)來選擇源節(jié)點。例如,多核系統(tǒng)400可使用提供成本信息的成本圖通過多核系統(tǒng)400內的不同路徑將數(shù)據(jù)從一個緩存節(jié)點104轉發(fā)給另一緩存節(jié)點104。
[0041]“當前條件狀態(tài)”選擇參數(shù)可關于與緩存節(jié)點C0-C2 104相關聯(lián)的不同條件,例如緩存線內存儲的數(shù)據(jù)的年齡。主節(jié)點102可使用緩存節(jié)點C0-C2 104中存儲的數(shù)據(jù)年齡。數(shù)據(jù)年齡可表示將數(shù)據(jù)副本存儲在緩存節(jié)點104內以及通知主節(jié)點102后已經(jīng)消逝的時間間隔。在某些實例中,盡管目錄項可具有標記為“共享”狀態(tài)的緩存節(jié)點C0-C2 104中的緩存線,但是緩存節(jié)點C0-C2 104內的實際緩存線可能已經(jīng)在沒有通知主節(jié)點102的情況下被新數(shù)據(jù)覆蓋。選擇最近將被請求數(shù)據(jù)存儲在緩存線的緩存節(jié)點104增加了緩存節(jié)點104仍然保存正確數(shù)據(jù)的可能性。以圖4為例,緩存節(jié)點C0 104可能已經(jīng)將被請求數(shù)據(jù)保存了最長時間周期(例如,數(shù)據(jù)年齡是緩存節(jié)點C0-C2 104中最老的),而緩存節(jié)點C2 104可能已經(jīng)將被請求數(shù)據(jù)保存了最短時間周期。在某些實例中,緩存節(jié)點C0 104可能已經(jīng)丟棄被請求數(shù)據(jù)并且使用新數(shù)據(jù)覆蓋緩存線。如果主節(jié)點102選擇緩存節(jié)點C0 104作為源節(jié)點,那么緩存節(jié)點C0 104將無法執(zhí)行對等緩存轉發(fā)。因此,主節(jié)點102可選擇具有被請求數(shù)據(jù)的最近副本的緩存節(jié)點104。“當前條件狀態(tài)”選擇參數(shù)還可包括所有緩存節(jié)點104和主節(jié)點102的當前工作量、可用帶寬和容量等參數(shù)。主節(jié)點102可監(jiān)控所有緩存節(jié)點104和它自己的當前工作量、可用帶寬和處理容量。主節(jié)點102可動態(tài)選擇具有最多帶寬和/或最少當前工作量的緩存節(jié)點104和/或主節(jié)點102作為源節(jié)點。
[0042]主節(jié)點102可用于通過“偏好選擇參數(shù)”選擇源節(jié)點?!捌眠x擇參數(shù)”可表示選擇源節(jié)點的預定義方法。例如,主節(jié)點102可用于隨機或以輪詢調度方式選擇源節(jié)點。當多核系統(tǒng)400內存在充足的資源和處理容量時,可隨機選擇源節(jié)點。隨機和/或輪詢調度選擇參數(shù)的實施通常不復雜,因此減少了主節(jié)點102選擇源節(jié)點所需的處理時間。
[0043]選擇源節(jié)點之后,主節(jié)點102接著向源節(jié)點發(fā)送偵聽轉發(fā)消息406。偵聽轉發(fā)消息406可用于確定源節(jié)點是否具有在請求數(shù)據(jù)消息404中請求的數(shù)據(jù)并且指示源節(jié)點將被請求數(shù)據(jù)轉發(fā)給請求緩存節(jié)點104。接收請求之后,源節(jié)點可使用請求數(shù)據(jù)消息404中引用的地址執(zhí)行查找。當源節(jié)點在該地址處具有被請求數(shù)據(jù)時,那么源節(jié)點可將被請求數(shù)據(jù)轉發(fā)給請求緩存節(jié)點104。如圖4所示,作為源節(jié)點,緩存節(jié)點C2 104將轉發(fā)數(shù)據(jù)消息408轉發(fā)給緩存節(jié)點C3 104。在一項實施例中,如果主節(jié)點102使用的選擇參數(shù)選擇主節(jié)點102作為源節(jié)點,則主節(jié)點102還能夠選擇它自己將數(shù)據(jù)轉發(fā)給緩存節(jié)點C3 104。當主節(jié)點102指定它自己作為源節(jié)點時,主節(jié)點102不需要發(fā)送偵聽轉發(fā)消息406。相反,主節(jié)點102無需首先發(fā)送偵聽轉發(fā)消息406就可以直接向緩存節(jié)點C3 104發(fā)送轉發(fā)數(shù)據(jù)消息408。
[0044]或者,如果所選擇的源節(jié)點(例如緩存節(jié)點C2 104)未存儲在請求數(shù)據(jù)消息404中請求的數(shù)據(jù),那么所選擇的源節(jié)點可通過向主節(jié)點102發(fā)送消息來響應偵聽轉發(fā)消息406,其未在圖4中示出,指示沒有找到被請求數(shù)據(jù)。在主節(jié)點102內的目錄指示所選擇的源節(jié)點處于“修改”和/或“排除”狀態(tài)中的實例中,主節(jié)點所選擇的源節(jié)點還可在回復消息內提供回寫指令是否正發(fā)往主節(jié)點102的指示。包含回寫指示可避免潛在的死鎖問題以及不必要的流量開銷,這在2013年5月22日由Iulin Lih等人遞交的發(fā)明名稱為“為緩存一致性處理緩存回寫和緩存淘汰(Handling Cache Write-back and Cache Evict1n forCache Coherence) ”的第13/900187號美國專利申請案中進行了更詳細地論述,該申請的內容以全文引用的方式并入本文中。主節(jié)點102隨后可在向緩存節(jié)點C3 104(例如請求節(jié)點)發(fā)送轉發(fā)數(shù)據(jù)消息408之前等待回寫。
[0045]圖5為基于一個或多個選擇參數(shù)動態(tài)選擇源節(jié)點的方法500的實施例的流程圖。方法500可由主節(jié)點102執(zhí)行以及可在被請求數(shù)據(jù)為“干凈”數(shù)據(jù)(例如,已經(jīng)在主存儲器中存儲的數(shù)據(jù))時使用。如上所述,選擇參數(shù)可存儲在主節(jié)點102的存儲器和/或目錄內。方法500開始于方框502并從請求緩存節(jié)點接收數(shù)據(jù)請求。請求緩存節(jié)點可能無法獲取本地位于請求緩存節(jié)點內的數(shù)據(jù)并且隨后發(fā)送詢問主節(jié)點在哪獲取被請求數(shù)據(jù)的數(shù)據(jù)請求主節(jié)點。
[0046]接收請求后,方法500可前進到方框504并確定是否在主節(jié)點處的目錄內找到了數(shù)據(jù)。如果目錄沒有信息,則方法可前進到方框514以將數(shù)據(jù)請求轉發(fā)給存儲器層次結構的下一層。如圖1和2所示,數(shù)據(jù)請求可通過位于存儲器層次結構的下一級別處的網(wǎng)絡結構轉發(fā)數(shù)據(jù)請求。之后,完成方框514,則方法500結束。返回方框504,如果方法500在目錄內找到被請求數(shù)據(jù),那么方法500前進到方框506。
[0047]在方框506,方法500可基于上述一個或多個選擇參數(shù)選擇源節(jié)點。源節(jié)點可以是請求數(shù)據(jù)的緩存節(jié)點之外的緩存節(jié)點之一和/或主節(jié)點。源節(jié)點的選擇不由緩存一致性協(xié)議來預定義和/或預定,例如使用“自有”狀態(tài)和/或“轉發(fā)”狀態(tài)來標記源節(jié)點。在方法500選擇源節(jié)點之后,方法500可前進到方框508并向源節(jié)點發(fā)送偵聽轉發(fā)消息。之后,方法500移動到方框510并確定源節(jié)點是否回復一條指示未找到數(shù)據(jù)的消息。如果方法500隨后接收到一條指示未找到數(shù)據(jù)的消息,那么方法500繼續(xù)到方框512并選擇新的源節(jié)點。方框512之后,方法500環(huán)回到方框508。返回方框510,如果方法500未接收到來自源節(jié)點的指示未找到被請求數(shù)據(jù)的消息,那么方法500結束。
[0048]應理解,通過將可執(zhí)行指令編程和/或加載至節(jié)點300,邏輯單元集群302、緩存存儲器304、存儲控制器314和存儲器316中的至少之一被改變,從而將節(jié)點300的一部分轉換成本發(fā)明宣揚的擁有新穎功能的特定機器或裝置,例如節(jié)點。加載可執(zhí)行軟件至計算機所實現(xiàn)的功能可以通過公知設計規(guī)則轉換成硬件實施,這在電力工程和軟件工程領域是很基礎的。決定使用軟件還是硬件來實施一個概念通常取決于對設計穩(wěn)定性及待生產(chǎn)的單元數(shù)量的考慮,而不是從軟件領域轉換至硬件領域中所涉及的任何問題。一般來說,經(jīng)常變動的設計更適于在軟件中實施,因為重新編寫硬件實施比重新編寫軟件設計更為昂貴。通常,穩(wěn)定及大規(guī)模生產(chǎn)的設計更適于在如ASIC這樣的硬件中實施,因為運行硬件實施的大規(guī)模生產(chǎn)比軟件實施更為便宜。設計通常可以以軟件形式進行開發(fā)和測試,之后通過公知設計規(guī)則轉變成專用集成電路中等同的硬件實施,該集成電路硬線軟件指令。由新ASIC控制的機器是一特定的機器或裝置,同樣地,編程和/或加載有可執(zhí)行指令的電腦可視為特定的機器或裝置。
[0049]本發(fā)明公開至少一項實施例,且所屬領域的普通技術人員對所述實施例和/或所述實施例的特征作出的變化、組合和/或修改均在本發(fā)明公開的范圍內。因組合、合并和/或省略所述實施例的特征而得到的替代性實施例也在本發(fā)明的范圍內。應當理解的是,本發(fā)明已明確闡明了數(shù)值范圍或限制,此類明確的范圍或限制應包括涵蓋在上述范圍或限制(如從大約1至大約10的范圍包括2、3、4等;大于0.10的范圍包括0.11,0.12,0.13等)內的類似數(shù)量級的迭代范圍或限制。例如,每當公開具有下限札和上限Ru的數(shù)值范圍時,具體是公開落入所述范圍內的任何數(shù)字。具體而言,特別公開所述范圍內的以下數(shù)字:R =尺1+1^0^-1?1),其中1^為從1%到100%范圍內以1%遞增的變量,即,k為1%、2%、3%、4%,7%......70%,71%,72%......97%、96%、97%、98%、99%或 100%。此外,還特此公開了,上文定義的兩個R值所定義的任何數(shù)值范圍。除非另有說明,否則使用術語約是指隨后數(shù)字的±10%。相對于權利要求的某一要素,術語“可選地”的使用表示該要素可以是需要的,或者也可以是不需要的,二者均在所述權利要求的范圍內。使用如包括、包含和具有摂?shù)容^廣術語應被理解為提供對如由……組成、基本上由……組成,以及大體上由……組成等較窄術語的支持。因此,保護范圍不受上文所述的限制,而是由所附權利要求書定義,所述范圍包含所附權利要求書的標的物的所有等效物。每項和每條權利要求作為進一步公開的內容并入說明書中,且權利要求書是本發(fā)明的實施例。所述揭示內容中的參考的論述并不是承認其為現(xiàn)有技術,尤其是具有在本申請案的在先申請 優(yōu)先權日:期之后的
【公開日】期的任何參考。本發(fā)明中所引用的所有專利、專利申請案和公開案的揭示內容特此以引用的方式并入本文本中,其提供補充本發(fā)明的示例性、程序性或其它細節(jié)。
[0050]雖然本發(fā)明中已提供若干實施例,但應理解,在不脫離本發(fā)明的精神或范圍的情況下,本發(fā)明所公開的系統(tǒng)和方法可以以許多其它特定形式來體現(xiàn)。本發(fā)明的實例應被視為說明性而非限制性的,且本發(fā)明并不限于本文本所給出的細節(jié)。例如,各種元件或部件可以在另一系統(tǒng)中組合或合并,或者某些特征可以省略或不實施。
[0051]此外,在不脫離本發(fā)明的范圍的情況下,各種實施例中描述和說明為離散或單獨的技術、系統(tǒng)、子系統(tǒng)和方法可以與其它系統(tǒng)、模塊、技術或方法進行組合或合并。展示或論述為彼此耦合或直接耦合或通信的其它項也可以采用電方式、機械方式或其它方式通過某一接口、設備或中間部件間接地耦合或通信。其它變化、替代和改變的示例可以由本領域的技術人員在不脫離本文精神和所公開的范圍的情況下確定。
【權利要求】
1.一種使用緩存一致性協(xié)議選擇源節(jié)點的主節(jié)點,其特征在于,包括: 耦合到目錄的邏輯單元集群,其中所述邏輯單元集群用于: 從請求緩存節(jié)點接收對數(shù)據(jù)的請求; 使用所述目錄確定保存所述被請求數(shù)據(jù)的副本的多個節(jié)點; 使用一個或多個選擇參數(shù)選擇其中一個節(jié)點作為所述源節(jié)點;以及 向所述源節(jié)點發(fā)送消息以確定所述源節(jié)點是否存儲所述被請求數(shù)據(jù)的副本, 其中當在所述源節(jié)點內找到所述被請求數(shù)據(jù)時,所述源節(jié)點將所述被請求數(shù)據(jù)轉發(fā)給所述請求緩存節(jié)點,以及 一些所述節(jié)點被標記為對應于所述緩存一致性協(xié)議的共享狀態(tài)。
2.根據(jù)權利要求1所述的主節(jié)點,其特征在于,所述邏輯單元集群進一步用于,當在所述源節(jié)點內未找到所述被請求數(shù)據(jù)時,從所述源節(jié)點接收第二消息。
3.根據(jù)權利要求2所述的主節(jié)點,其特征在于,所述邏輯單元集群進一步用于,當接收所述第二消息時,使用一個或多個選擇參數(shù)選擇第二源節(jié)點。
4.根據(jù)權利要求1所述的主節(jié)點,其特征在于,所述目錄包括多個狀態(tài)信息,其對應于位于至少一些所述節(jié)點內的多個緩存線的緩存一致性協(xié)議。
5.根據(jù)權利要求2所述的主節(jié)點,其特征在于,所述緩存一致性協(xié)議是修改、排除、共享、無效(MESI)緩存一致性協(xié)議。
6.根據(jù)權利要求1所述的主節(jié)點,其特征在于,所述選擇參數(shù)包括至少一個以下參數(shù):拓撲選擇參數(shù)、當前條件狀態(tài)選擇參數(shù)以及偏好選擇參數(shù)。
7.根據(jù)權利要求6所述的主節(jié)點,其特征在于,所述拓撲選擇參數(shù)表示所述請求緩存節(jié)點和所述節(jié)點之間的距離。
8.根據(jù)權利要求6所述的主節(jié)點,其特征在于,所述當前條件狀態(tài)選擇參數(shù)表示存儲在所述節(jié)點中的所述被請求數(shù)據(jù)的多個年齡。
9.根據(jù)權利要求6所述的主節(jié)點,其特征在于,所述偏好選擇參數(shù)表示選擇所述源節(jié)點的隨機選擇過程。
10.根據(jù)權利要求1所述的主節(jié)點,其特征在于,其中一個所述節(jié)點是所述主節(jié)點,以及所述主節(jié)點的存儲器級別比其它節(jié)點的高。
11.根據(jù)權利要求1所述的主節(jié)點,其特征在于,所述邏輯單元集群進一步用于從所述請求緩存節(jié)點接收第二請求和選擇第二源節(jié)點以將所述第二請求數(shù)據(jù)轉發(fā)給所述請求緩存節(jié)點,以及所述源節(jié)點和第二源節(jié)點是不同的節(jié)點。
12.一種使用緩存一致性協(xié)議執(zhí)行對等緩存轉發(fā)的緩存節(jié)點,其特征在于,包括: 耦合到本地存儲器的邏輯單元集群,其中所述邏輯單元集群用于: 從主節(jié)點接收偵聽轉發(fā)消息; 使用所述偵聽轉發(fā)消息中的信息確定被請求數(shù)據(jù)是否存儲在所述本地存儲器內; 當所述被請求數(shù)據(jù)存儲在所述本地存儲器內時,將所述被請求數(shù)據(jù)轉發(fā)給請求緩存節(jié)點;以及 當所述被請求數(shù)據(jù)未存儲在所述本地存儲器內時,向所述主節(jié)點發(fā)送消息, 其中所述緩存節(jié)點分配有所述緩存一致性協(xié)議的共享狀態(tài)。
13.根據(jù)權利要求12所述的緩存節(jié)點,其特征在于,所述被請求數(shù)據(jù)的副本存儲在所述主節(jié)點中。
14.根據(jù)權利要求12所述的緩存節(jié)點,其特征在于,所述緩存節(jié)點耦合到多個節(jié)點,以及所述緩存節(jié)點的業(yè)務工作量比所述多個節(jié)點的少。
15.根據(jù)權利要求12所述的緩存節(jié)點,其特征在于,所述緩存一致性協(xié)議使用兩個位表示所述緩存節(jié)點的共享狀態(tài)。
16.根據(jù)權利要求12所述的緩存節(jié)點,其特征在于,所述緩存一致性協(xié)議是修改、共享、無效(MSI)緩存一致性協(xié)議。
17.一種使用緩存一致性協(xié)議選擇源節(jié)點的方法,其特征在于,所述方法包括: 維護將多個條目標記為所述緩存一致性協(xié)議內的共享狀態(tài)的目錄; 從其中一個所述緩存節(jié)點接收數(shù)據(jù)請求; 確定所述被請求的數(shù)據(jù)是否映射到所述目錄內的其中一個條目; 當在所述目錄內的其中一個項目中未找到所述被請求的數(shù)據(jù)時,向存儲器的下一級別發(fā)送所述數(shù)據(jù)請求; 當在所述其中一個條目中找到所述被請求的數(shù)據(jù)時,使用一個或多個選擇參數(shù)從對應于所述其中一個項目的多個緩存節(jié)點中選擇源節(jié)點;以及 向所述源節(jié)點發(fā)送轉發(fā)偵聽消息以確定所述源節(jié)點是否存儲所述被請求數(shù)據(jù)的副本, 其中所述選擇參數(shù)按優(yōu)先次序排列選為所述源節(jié)點的緩存節(jié)點,以及 所述源節(jié)點在所述緩存節(jié)點之間具有最高優(yōu)先級。
18.根據(jù)權利要求17所述的方法,其特征在于,進一步包括接收指示所述源節(jié)點未保存所述被請求數(shù)據(jù)的消息以及選擇在所述緩存節(jié)點之間具有第二最高優(yōu)先級的第二源節(jié)點。
19.根據(jù)權利要求17所述的方法,其特征在于,所述選擇參數(shù)使用所述緩存節(jié)點和主節(jié)點之間的拓撲布局以按優(yōu)先次序排列所述源節(jié)點的所述選擇。
20.根據(jù)權利要求17所述的方法,其特征在于,所述主節(jié)點和緩存節(jié)點位于存儲器的不同級別內。
【文檔編號】G06F12/08GK104508637SQ201380039835
【公開日】2015年4月8日 申請日期:2013年7月30日 優(yōu)先權日:2012年7月30日
【發(fā)明者】林奕林, 賀成洪, 史洪波, 張納新 申請人:華為技術有限公司