專利名稱:縮短與高速緩存相關(guān)性目錄遺漏關(guān)聯(lián)的延遲的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及使用基于目錄的高速緩存相關(guān)性技術(shù)的數(shù)據(jù)處理系統(tǒng)中的高速緩沖存儲器的管理。具體來說,本發(fā)明旨在縮短與外部高速緩存上的高速緩存相關(guān)性目錄遺漏關(guān)聯(lián)的存儲器訪問延遲。
背景技術(shù):
作為背景,現(xiàn)代的計算機系統(tǒng)利用與關(guān)聯(lián)的高速緩存控制器(統(tǒng)稱為“高速緩存”)連接的高速緩沖存儲器作為處理器和持有處理器數(shù)據(jù)的相對比較慢的主存儲器之間的橋路。如圖1所示,高速緩存通常駐留在它所服務(wù)的處理器的附近,一個或多個高速緩存級別常常位于處理器本身中。高速緩存的功能是臨時存儲所選擇的主存儲器的子集,具體來說,就是被頻繁地訪問的存儲塊。如此,高速緩存的信息可用于快速滿足存儲器訪問,而沒有與對主存儲器的訪問請求關(guān)聯(lián)的延遲。
在多處理器系統(tǒng)中,如圖2所示的多處理器系統(tǒng)中,每一個處理器通常都具有其自己的高速緩存,每一個高速緩存都可以獨立地存儲被所有處理器通過共同的系統(tǒng)總線共享的來自主存儲器的相同存儲塊的副本。這種情況要求使用高速緩存相關(guān)模式,以便確保在多個處理器之間保持數(shù)據(jù)一致性。在當(dāng)前技術(shù)中眾所周知,為此目的通常使用“總線嗅探”協(xié)議??偩€嗅探基于這樣的概念,總線是對存儲器的所有處理器啟動的讀取和寫入請求的廣播介質(zhì)。每一個處理器的高速緩存都是總線代理,該代理可以如此在總線上收聽或“嗅探”,以便通知其本身有關(guān)其他高速緩存相對于共享的存儲塊所采取的總線相關(guān)的操作。當(dāng)處理器希望更新存儲塊并且一個寫入到塊中的存儲器請求被其高速緩存放置在總線中時,持有相同存儲塊的所有其他高速緩存都將將知道要使它們的副本失效。與塊寫入處理器關(guān)聯(lián)的高速緩存現(xiàn)在在系統(tǒng)中將具有存儲塊的唯一有效副本(直到塊被寫入到主存儲器中)。當(dāng)處理器請求存儲塊并且其高速緩存在總線上放置讀取請求時,持有被請求的塊的有效副本的另一個高速緩存可以作出響應(yīng)。如果主存儲器具有唯一有效副本,則該請求將從此存儲器得到滿足,如果處理器高速緩存具有唯一有效副本,則該請求必須通過高速緩存得到滿足。
在較大規(guī)模的多處理器系統(tǒng)中,如圖3所示的多處理器系統(tǒng)中,系統(tǒng)的主存儲器常常在通過網(wǎng)絡(luò)互連的多個處理節(jié)點之間分布。每一個節(jié)點通常都包括小規(guī)模的多處理器系統(tǒng),如上文參考圖2所述(即,多個處理器通過共享總線訪問主存儲器)。每一個節(jié)點的本地存儲器都提供整個系統(tǒng)存儲器的一部分。任何給定節(jié)點中的處理器都可以訪問其自己的本地存儲器以及其他節(jié)點的存儲器。對于給定節(jié)點,系統(tǒng)中的任何其他節(jié)點任何其他節(jié)點處的存儲器通常被稱為遠程存儲器或外部存儲器。
通常使用分布式基于目錄的高速緩存相關(guān)模式來維護不同節(jié)點的高速緩存之間的相關(guān)性,所有的節(jié)點都可以從理論上來講持有相同存儲塊的副本。每一個節(jié)點都維護了高速緩存相關(guān)性目錄,以跟蹤系統(tǒng)中的哪些處理器具有來自該節(jié)點的本地存儲器的高速緩沖存儲器塊。每一個目錄條目通常都包含對應(yīng)于給定存儲塊的地址的標記,用于定位所有正在緩存該塊的處理器的標識信息,以及表示高速緩存的副本是否有效的狀態(tài)字段。節(jié)點的目錄信息用來評估屬于該節(jié)點的存儲塊的讀取和寫入請求,并向維護了副本的所有高速緩存發(fā)出相關(guān)性消息。當(dāng)系統(tǒng)中的處理器更新共享存儲塊時,查詢對存儲塊具有管轄權(quán)的目錄以判斷哪些高速緩存持有該塊的副本。在寫入操作可以進行之前,將失效消息發(fā)送到標識的高速緩存,必須返回失效確認,以證實所有高速緩存的副本都已經(jīng)被失效。類似地,當(dāng)處理器請求對共享存儲塊進行讀取訪問時,查詢對存儲塊具有管轄權(quán)的目錄以識別所有高速緩存的副本的位置和狀態(tài)?;谀夸浿械男畔?,可以從其中一個持有有效副本的高速緩存中,或從存儲了塊的節(jié)點的主存儲器,將被請求的塊提供給請求者。
在每一個節(jié)點內(nèi),管理高速緩存相關(guān)性目錄和協(xié)調(diào)相關(guān)性消息交換的作業(yè)由被稱為“相關(guān)性控制器”的智能處理代理來執(zhí)行。如圖3所示,每一個相關(guān)性控制器都這樣連接,以便它可以通過系統(tǒng)互連網(wǎng)絡(luò)與其他節(jié)點上的其對等節(jié)點傳遞并行性消息。每一個相關(guān)性控制器還作為其主節(jié)點的本地存儲器總線上的嗅探代理。相關(guān)性控制器可以如此跟蹤在它們的管轄下的存儲塊的所有外部和本地緩存。
由于高速緩存相關(guān)性目錄有時很大,并且通常存儲在相對低速的存儲器中,因此,相關(guān)性控制器實現(xiàn)目錄高速緩存以便臨時存儲相關(guān)的目錄條目的子集是常見的。這可以大大地縮短與目錄查詢關(guān)聯(lián)的延遲。為了填充目錄高速緩存,相關(guān)性控制器將在接收對特定存儲塊的實際查詢請求之前執(zhí)行目錄條目的預(yù)取(投機查詢)。可以使用基于空間局限性的原理的常規(guī)算法來選擇最佳的預(yù)取候選。例如,在作為讀取或?qū)懭氩僮鞯囊徊糠侄M行的對某些處理器請求的特定存儲塊的目錄查詢之后,高速緩存算法可以試圖將對應(yīng)于其地址位于被請求的塊的地址附近的存儲塊的某些額外的目錄條目預(yù)取到目錄高速緩存中。
當(dāng)使用目錄預(yù)取方案時產(chǎn)生的一個問題是,預(yù)取操作可能會在候選目錄條目上導(dǎo)致目錄“遺漏”。目錄遺漏表示,與預(yù)取嘗試關(guān)聯(lián)的存儲塊沒有高速緩存在本地節(jié)點的外面的系統(tǒng)中的任何地方,即,在任何外部高速緩存中都不存在副本。在這種情況下,對于存儲塊,要么沒有目錄條目,要么目錄條目將存在,但將被標記為無效。這樣的目錄條目將不會放在目錄高速緩存中,因為高速緩存算法被設(shè)計為丟棄無效條目,以便為新高速緩存條目騰出空間,添加無效條目可能會潛在地替換有效條目,如此會消耗時間和系統(tǒng)資源來替換該條目。
隨后,當(dāng)與預(yù)取遺漏關(guān)聯(lián)的存儲塊實際被本地處理器請求進行讀取或?qū)懭氩僮鲿r,將再次訪問高速緩存相關(guān)性目錄,目錄遺漏將會再次發(fā)生。注意,由于請求者是本地處理器,第二次目錄查詢是完全無保證的。存在目錄遺漏狀況的事實表示,沒有存儲塊的外部高速緩存的副本,可以使用存儲塊的本地副本,而不必通知其他節(jié)點。只要相關(guān)性控制器是本地總線嗅探代理(在可以滿足來自本地請求者的存儲塊請求之前,必須等待其嗅探響應(yīng)),本地節(jié)點就會體驗到不適當(dāng)?shù)奶幚硌舆t。假如知道目錄查詢將遺漏,則發(fā)出請求的處理器可以提前許多周期地本地獲取存儲塊,而不必等待相關(guān)性控制器。
應(yīng)該提供一種對前面的問題的解決方案,從而可以避免這樣的延遲,具體來說,由于本地存儲器請求易于在任何給定節(jié)點占優(yōu)勢,而對其他節(jié)點上的遠程或外部存儲器的請求會更少。
發(fā)明內(nèi)容
本發(fā)明提供了一種系統(tǒng)、方法和產(chǎn)品,用于縮短在共享的分布式存儲器數(shù)據(jù)處理系統(tǒng)的外部高速緩存上的高速緩存相關(guān)性目錄預(yù)取遺漏之后發(fā)生的延遲。在本發(fā)明的示范性實施例中,對高速緩存相關(guān)性目錄進行評估,以了解可能進行的將目錄條目預(yù)取到目錄高速緩存中。如果預(yù)取評估是目錄遺漏,則設(shè)置預(yù)取遺漏指示符。在對對應(yīng)于在頇取評估過程中被遺漏的目錄條目的存儲塊請求的隨后的處理期間,將查詢預(yù)取遺漏指示符。如果設(shè)置了預(yù)取遺漏指示符,將采取加速的嗅探響應(yīng)操作。如此,就避免了否則會需要的對高速緩存相關(guān)性目錄的第二次查詢的延遲。
預(yù)取遺漏指示符可以以多種方式來實現(xiàn),包括通過建立預(yù)取遺漏緩沖區(qū),用于存儲與目錄預(yù)取遺漏關(guān)聯(lián)的標記。另一個選項是建立目錄高速緩存條目的新狀態(tài)標志,該標志表示在關(guān)聯(lián)的標記上發(fā)生了目錄預(yù)取遺漏。
從下面比較具體的參考附圖對本發(fā)明的優(yōu)選實施例的描述中,本發(fā)明的前述的及其他特點和優(yōu)點將變得顯而易見,其中圖1是顯示了包含單處理器、高速緩存和主存儲器的采用現(xiàn)有技術(shù)的數(shù)據(jù)處理系統(tǒng)的功能方框圖;圖2是顯示了包含多個處理器、多個關(guān)聯(lián)的高速緩存、共享主存儲器和共同的系統(tǒng)總線,并使用總線嗅探高速緩存相關(guān)性協(xié)議的另一個采用現(xiàn)有技術(shù)的數(shù)據(jù)處理系統(tǒng)的功能方框圖;
圖3是顯示了包含訪問共享存儲空間的處理節(jié)點的網(wǎng)絡(luò)的另一個采用現(xiàn)有技術(shù)的數(shù)據(jù)處理系統(tǒng)的功能方框圖,每一個節(jié)點都包含根據(jù)圖2的數(shù)據(jù)處理系統(tǒng),同時具有用于實現(xiàn)基于目錄的高速緩存相關(guān)性協(xié)議的功能;圖4是顯示了代表根據(jù)本發(fā)明的原理的對圖3的數(shù)據(jù)處理系統(tǒng)的改善的數(shù)據(jù)處理系統(tǒng)的功能方框圖;圖5是顯示了根據(jù)本發(fā)明的一個示范性實施例的相關(guān)性控制器、目錄高速緩存、目錄和預(yù)取遺漏緩沖區(qū)的功能方框圖;圖6是顯示了可以根據(jù)本發(fā)明而執(zhí)行的示范性預(yù)取處理過程的流程圖;圖7是顯示了根據(jù)本發(fā)明的示范性協(xié)議邏輯處理過程的流程圖;圖8是顯示了根據(jù)本發(fā)明的另一個示范性實施例的相關(guān)性控制器、目錄高速緩存、目錄的功能方框圖;以及圖9是可以用來存儲計算機程序以提供用于實現(xiàn)根據(jù)本發(fā)明的功能的產(chǎn)品的存儲介質(zhì)的示意圖。
具體實施例方式
現(xiàn)在請參看圖形,其中,在所有圖形中,類似的參考編號表示類似的元素,圖4顯示了數(shù)據(jù)處理系統(tǒng)2,該系統(tǒng)提供了可以實現(xiàn)本發(fā)明的示范性環(huán)境。數(shù)據(jù)處理系統(tǒng)2被配置為共享分布式存儲空間的數(shù)據(jù)處理節(jié)點的網(wǎng)絡(luò)。cc-NUMA體系結(jié)構(gòu),代表“高速緩存相關(guān)非均勻的存儲器訪問”可以用作數(shù)據(jù)處理系統(tǒng)2的模型的一種共享分布式存儲器系統(tǒng)。還可以潛在地使用其他共享分布式存儲器體系結(jié)構(gòu)類型。
數(shù)據(jù)處理系統(tǒng)2包括“N”個處理節(jié)點,其中,N可以根據(jù)處理要求、成本及其他因素,是任何所希望的數(shù)字。為清楚起見,圖2只顯示了第1和第n個節(jié)點,分別被表示為“節(jié)點1”和“節(jié)點N”?;ミB網(wǎng)絡(luò)4將節(jié)點1到節(jié)點N互連,以構(gòu)成在當(dāng)前技術(shù)中所謂的“群集”。互連網(wǎng)絡(luò)4可以通過開關(guān)織品拓撲、環(huán)形拓撲或任何其他合適的布局(包括環(huán)形和織品拓撲)來實現(xiàn)。
數(shù)據(jù)處理系統(tǒng)2中的每一個節(jié)點包括1到N個處理器6,與每一個處理器關(guān)聯(lián)的高速緩存8,以及通過系統(tǒng)存儲器總線12互連的共同的主存儲器10。數(shù)據(jù)處理系統(tǒng)2的存儲器跨系統(tǒng)的所有節(jié)點的主存儲器10分布,以便每一個節(jié)點的主存儲器都提供整個系統(tǒng)存儲器的一部分。有單一的全系統(tǒng)范圍的地址空間,給每一個節(jié)點的主存儲器10都分配了地址空間內(nèi)的唯一地址范圍。由于節(jié)點之間的互連,任何給定節(jié)點中的處理器6都可以訪問其自己的本地存儲器10,以及其他節(jié)點的存儲器(和高速緩存)(后者被視為相對于給定節(jié)點的遠程或外部存儲器)。哪一個節(jié)點將服務(wù)處理器存儲器訪問,取決于被請求的存儲塊的地址。
數(shù)據(jù)處理系統(tǒng)2的單個節(jié)點內(nèi)的處理器6之間的高速緩存相關(guān)性在某種程度上得到常規(guī)的總線嗅探協(xié)議的支持,如上文作為背景所描述的。如此,節(jié)點內(nèi)的每一個高速緩存8將嗅探本地總線12上的活動(即,通過沒有單獨顯示的常規(guī)高速緩存控制器)。數(shù)據(jù)處理系統(tǒng)2進一步使用基于目錄的高速緩存相關(guān)性協(xié)議來維護不同節(jié)點的高速緩存8之間的一致性。為此,如上文作為背景所描述的,每一個節(jié)點都包括由相關(guān)性控制器16進行管理的高速緩存相關(guān)性目錄14。每一個相關(guān)性控制器16嗅探其自己的本地總線12,也與其他節(jié)點中的其對等物進行通信。
可以使用在基于目錄的高速緩存相關(guān)性體系結(jié)構(gòu)中通常發(fā)現(xiàn)的的任何已知的技術(shù)來配置目錄14。一個選項是將目錄14配置為完全映射的目錄,其中,與給定目錄關(guān)聯(lián)的本地主存儲器10中的每個存儲塊都由列出了緩存了該塊的所有處理器的目錄條目來表示。也可以使用稀疏的目錄格式,在這樣的情況下,在任何給定時間將只代表目錄的本地主存儲器10中的一小部分存儲塊。可以使用任何合適的存儲技術(shù)來實現(xiàn)目錄14,外部DRAM模塊是對于完全目錄的常規(guī)選擇,嵌入的DRAM是最通常使用稀疏目錄的技術(shù)。
除對相關(guān)性控制器16進行修改以便實現(xiàn)本發(fā)明的功能之外,它們在設(shè)計方面都是常規(guī)的。如此,它們可以根據(jù)已知的技術(shù)使用可編程協(xié)議處理器、用ASIC(特定用途集成電路)實現(xiàn)的自定義硬件設(shè)計,或通過任何其他合適的裝置來實現(xiàn)。如上文作為背景所描述的,相關(guān)性控制器16的主要功能是維護存儲在其他節(jié)點上的外部高速緩存中的本地存儲塊的相關(guān)性。涉及這樣的存儲塊的訪問請求作為來自對等相關(guān)性控制器的消息,來自相關(guān)性控制器16的互連網(wǎng)絡(luò)端。在本地總線端,對本地存儲塊的訪問請求作為本地總線12上的常規(guī)讀取/寫入請求到達。相關(guān)性控制器16的另一個功能是通過互連網(wǎng)絡(luò)4轉(zhuǎn)發(fā)對外部存儲塊(具有本地主存儲器的范圍外面的地址)的本地請求。
本發(fā)明涉及來自本地處理器的本地存儲塊請求,本討論的其余部分將專門談相關(guān)性控制器操作的這一方面。當(dāng)本地處理器6請求對本地存儲塊進行訪問時,它斷言,通過其常規(guī)總線嗅探功能,通知總線12上的被請求的地址,以及本地相關(guān)性控制器16。同時,所有本地高速緩存8將同樣嗅探請求,只要它們也是總線12上的代理。然后,發(fā)出請求的處理器6將等待幾個周期,以接收來自不同總線代理的嗅探響應(yīng)。例如,如果發(fā)出請求的處理器6試圖讀取存儲塊,總線12上的總線代理將提供嗅探響應(yīng),通知它們是否具有被請求的塊的有效副本。關(guān)于這一點,相關(guān)性控制器16的嗅探響應(yīng)和總線12上的其他總線代理的響應(yīng)之間的唯一差別是,相關(guān)性控制器16共同地代表持有其他節(jié)點中的被請求的存儲塊的副本的所有外部高速緩存來發(fā)言。如此,相關(guān)性控制器16可以被視為外部高速緩存的總線嗅探代理。
每一個相關(guān)性控制器16使用其目錄14來向本地處理器6提供嗅探響應(yīng)。如果本地存儲塊的一個或多個副本正在被從外部高速緩存在其他節(jié)點中,在目錄14中將會有目錄條目,該目錄條目包含用于識別正在緩存該塊的其他節(jié)點中的外部處理器6的信息,以及表示外部副本是否有效的狀態(tài)字段。如果正在使用稀疏的目錄格式,并且沒有被請求的本地存儲塊的從外部高速緩存的副本,則沒有該塊的目錄條目。如果正在使用完全目錄格式,將會有被標記為無效的目錄條目,處理器標識信息將顯示沒有持有該塊的外部處理器。此狀況叫做“目錄遺漏”。此情況下的相關(guān)性控制器的嗅探響應(yīng)是通知發(fā)出請求的處理器6,控制器不在緩存被請求的存儲塊。
如上文作為背景技術(shù)所討論的,通??梢杂擅恳粋€相關(guān)性控制器16可以可以執(zhí)行的各種不同的功能中,包括建立和管理目錄高速緩存,如4中的附圖標記18所示。每一個目錄高速緩存18都用來持有目錄條目的子集,以便讓其相關(guān)性控制器16進行快速訪問,因為后者服務(wù)于存儲塊訪問請求。通常使用諸如SRAM(靜態(tài)隨機存取存儲器)之類的快速存儲器技術(shù)來實現(xiàn)這樣的高速緩存。如作為背景所提及的,相關(guān)性控制器16通常實現(xiàn)預(yù)取算法來將預(yù)期的目錄條目從其目錄14中預(yù)加載到其目錄高速緩存18中。
圖5顯示了對于某些存儲塊,從評估具有標記T1的目錄高速緩存條目的相關(guān)性控制器16產(chǎn)生的典型的預(yù)取操作。相關(guān)性控制器16中的緩存邏輯20推測,應(yīng)該從目錄14中將具有標記T2和T3的額外的目錄條目(對應(yīng)于連續(xù)的存儲塊)預(yù)取到目錄高速緩存18中。如此,緩存邏輯20訪問目錄14中的目錄條目T2,并將它復(fù)制到目錄高速緩存18中。然后,緩存邏輯20訪問目錄14中的目錄條T3。在稀疏的目錄中,緩存邏輯20將發(fā)現(xiàn),沒有T3的條目。在完全目錄中,緩存邏輯20將發(fā)現(xiàn),T3的狀態(tài)是無效的,其處理器標識字段沒有顯示持有與此條目關(guān)聯(lián)的存儲塊的副本的外部處理器(在圖5中被稱為NULL字段)。如此,T3目錄條目代表在目錄預(yù)取嘗試中發(fā)生的目錄遺漏。
如上文作為背景所討論的,在目錄預(yù)取操作過程中遇到T3目錄條目的常規(guī)相關(guān)性控制器將忽略它。相反,本發(fā)明認識到,預(yù)取目錄遺漏狀況提供了有用信息,該有用信息可以用來在實際(非投機性的)請求中涉及相同存儲塊時避免隨后的處理延遲。為此,本發(fā)明提議預(yù)取遺漏指示符的設(shè)置來代表在目錄預(yù)取操作過程中發(fā)生了目錄遺漏的事實。在圖5中,預(yù)取遺漏指示符被設(shè)置為預(yù)取遺漏緩沖區(qū)22中的T3標記的副本,預(yù)取遺漏緩沖區(qū)22使用它所在的節(jié)點中的高速數(shù)據(jù)存儲硬件來實現(xiàn)(見下文)。當(dāng)緩存邏輯20判斷T3目錄條目在預(yù)取操作過程中在該標記上產(chǎn)生了目錄遺漏時,在預(yù)取遺漏緩沖區(qū)22中放置了T3標記。整個T3目錄條目可以作為預(yù)取遺漏指示符存儲在預(yù)取遺漏緩沖區(qū)22中。然而,不需要標記其本身之外的信息來表示預(yù)取遺漏。
隨后,當(dāng)接收到對T3存儲塊的非投機性的請求時,相關(guān)性控制器的協(xié)議邏輯24除了其在目錄高速緩存18中的正常查詢之外還在預(yù)取遺漏緩沖區(qū)22中執(zhí)行查詢。假設(shè)在遠程節(jié)點上沒有發(fā)生對T3存儲塊的干涉訪問,則預(yù)取緩沖器查詢將導(dǎo)致T3標記上的匹配。這又會終止該標記上的進一步處理。相關(guān)性控制器16能夠立即向本地總線12返回嗅探響應(yīng),通知它沒有T3存儲塊的高速緩存的副本。與如果在目錄14中必須執(zhí)行T3標記的第二次查詢產(chǎn)生的嗅探響應(yīng)相比,此嗅探響應(yīng)更快。作為示例,外部DRAM目錄中的目錄查詢的延遲大約為40-60時鐘周期。嵌入的DRAM目錄中的目錄查詢的延遲大約為8個周期。通過比較,如果預(yù)取遺漏緩沖區(qū)22在SRAM中實現(xiàn)或作為存儲寄存器來實現(xiàn),則它能夠提供單周期訪問,如上面所討論的。
如果上述假設(shè)不成立,并且在預(yù)取操作的時間和非投機性的查詢之間有對T3存儲塊的干涉訪問,預(yù)取遺漏緩沖區(qū)22中的T3標記被相關(guān)性控制器16作廢。此后,當(dāng)進行非投機性的查詢時,在預(yù)取遺漏緩沖區(qū)22中將不會發(fā)現(xiàn)T3標記,將進行常規(guī)的標記查詢處理。
圖6和7概括了示范性處理邏輯,該邏輯可以分別通過相關(guān)性控制器16的緩存邏輯20和協(xié)議邏輯24來實現(xiàn),以支持本發(fā)明的如前所述的功能。在圖6的步驟30中開始,緩存邏輯20訪問目錄14中的候選目錄條目,以便可以預(yù)取到目錄高速緩存18中。在步驟32中,緩存邏輯20進行測試,以檢驗是否有預(yù)取遺漏狀況。如果不存在遺漏狀況,則緩存邏輯20在步驟34中將目錄條目復(fù)制到目錄高速緩存18中。如果存在遺漏狀況,緩存邏輯20通過將目錄條目標記復(fù)制到預(yù)取遺漏緩沖區(qū)22中設(shè)置預(yù)取遺漏指示符。
在圖7的步驟40中,協(xié)議邏輯24接收存儲塊訪問請求。在步驟42中,它啟動目錄高速緩存18和預(yù)取遺漏緩沖區(qū)22的并行查詢。如果在步驟44中協(xié)議邏輯24在預(yù)取遺漏緩沖區(qū)22中找到存儲塊的對應(yīng)的標記,則它在步驟46中產(chǎn)生嗅探響應(yīng)。否則,在步驟48中,協(xié)議邏輯24將在目錄高速緩存18中查找對應(yīng)的標記,或者,如果沒有標記的目錄高速緩存條目,隨后在目錄14中查找。
預(yù)取遺漏緩沖區(qū)22可以使用以比較高的速度工作的任何合適的數(shù)據(jù)存儲硬件來實現(xiàn)。SRAM是一個選擇。另一個選項是使用與用于相關(guān)性控制器16的處理器或ASIC關(guān)聯(lián)的一個或多個存儲寄存器。通過使用預(yù)取遺漏緩沖區(qū)22的快速存儲硬件,與存儲塊請求關(guān)聯(lián)的延遲從完全外部DRAM目錄中的查詢的40-60個周期,以及從稀疏的嵌入的DRAM目錄中的查詢的8個周期,加速到單周期訪問延遲,后者是SRAM模塊和存儲寄存器的特征。如上所述,若不使用根據(jù)本發(fā)明的預(yù)取遺漏指示符,將對于任何目錄條目執(zhí)行這樣的對目錄14的查詢,即使該條目預(yù)先產(chǎn)生了預(yù)取遺漏。
應(yīng)該理解,預(yù)取遺漏緩沖區(qū)22不是在隨后的非投機性的存儲塊請求過程中供考慮設(shè)置的預(yù)取遺漏指示符的唯一方法。如圖8所示,一種可能的替代技術(shù)將是通過向目錄高速緩存條目中添加新的狀態(tài)標志字段來實現(xiàn)預(yù)取遺漏指示符。此標志由圖8中的“I/M”指示符來作為示例,代表“無效/遺漏”。相關(guān)性控制器的協(xié)議邏輯24將在其在目錄高速緩存18中的正常查詢過程中遇到預(yù)取遺漏指示符。相關(guān)性控制器16中的緩存邏輯還將使用新的狀態(tài)標志來區(qū)別由于預(yù)取遺漏而產(chǎn)生的目錄高速緩存條目與正常的無效目錄高速緩存條目。前者應(yīng)該在高速緩存中保留某指定的時間段,而后者可以清除。
相應(yīng)地,說明了用于縮短由于外部高速緩存上的高速緩存相關(guān)性目錄遺漏而產(chǎn)生的本地存儲器訪問延遲的技術(shù)??梢岳斫?,前面的概念可以用數(shù)據(jù)處理系統(tǒng)、機器實現(xiàn)的方法,以及產(chǎn)品(其中,編程裝置記錄在一個或多個數(shù)據(jù)存儲介質(zhì)上,以便在對諸如相關(guān)性控制器16之類的設(shè)備進行程序控制時使用)中的任何一種方式來實現(xiàn),以執(zhí)行所要求的功能。圖9中的附圖標記100顯示了用于存儲這樣的編程裝置的示范性數(shù)據(jù)存儲介質(zhì)。介質(zhì)100被顯示為通常用于商業(yè)化軟件銷售的便攜式光存儲光盤。這樣的介質(zhì)可以存儲本發(fā)明的編程裝置。編程裝置也可以存儲在便攜式磁性介質(zhì)(如軟盤、flash記憶棒等等)上或存儲與在裝入計算機平臺上的驅(qū)動系統(tǒng)(例如,光盤驅(qū)動器)相結(jié)合的磁性介質(zhì)上。
盡管顯示和描述了本發(fā)明的多個實施例,但是,顯然,也可以實現(xiàn)許多修改和替代實施例。因此,可以理解,不對本發(fā)明進行任何形式的限制,除非符合所附權(quán)利要求和它們的等效物的精神。
權(quán)利要求
1.一種用于在共享分布式存儲器數(shù)據(jù)處理系統(tǒng)中縮短與外部高速緩存上的高速緩存相關(guān)性目錄遺漏關(guān)聯(lián)的延遲的方法,包括對高速緩存相關(guān)性目錄進行評估,以了解可能進行的將目錄條目預(yù)取到目錄高速緩存中;響應(yīng)導(dǎo)致目錄遺漏的所述預(yù)取評估,設(shè)置預(yù)取遺漏指示符;在對對應(yīng)于所述目錄條目的存儲器請求進行隨后的處理期間,查詢所述預(yù)取遺漏指示符;以及基于設(shè)置了所述預(yù)取遺漏指示符的情況,采取加速的嗅探響應(yīng)操作。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述目錄評估包括評估完全映射的目錄。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述目錄評估包括評估稀疏的的目錄。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述設(shè)置預(yù)取遺漏指示符包括存儲所述目錄條目的標記。
5.根據(jù)權(quán)利要求1所述的方法,其中,所述設(shè)置預(yù)取遺漏指示符包括將所述目錄條目的標記存儲在預(yù)取遺漏緩沖區(qū)中。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述預(yù)取遺漏緩沖區(qū)包括可尋址存儲器。
7.根據(jù)權(quán)利要求5所述的方法,其中,所述預(yù)取遺漏緩沖區(qū)包括存儲寄存器。
8.根據(jù)權(quán)利要求1所述的方法,其中,所述設(shè)置預(yù)取遺漏指示符包括在所述目錄條目中設(shè)置預(yù)取遺漏狀態(tài)指示符并將所述條目存儲在所述目錄高速緩存中。
9.根據(jù)權(quán)利要求1所述的方法,其中,通過與查詢所述目錄高速緩存相關(guān)地查詢預(yù)取遺漏緩沖區(qū)來執(zhí)行所述預(yù)取遺漏指示符的所述查詢。
10.根據(jù)權(quán)利要求1所述的方法,其中,通過查詢所述目錄高速緩存來執(zhí)行所述預(yù)取遺漏指示符的所述查詢以便識別具有預(yù)取遺漏狀態(tài)指示符的目錄條目。
11.一種用于在共享分布式存儲器數(shù)據(jù)處理系統(tǒng)中縮短與外部高速緩存上的高速緩存相關(guān)性目錄遺漏關(guān)聯(lián)的延遲的基于目錄的高速緩存相關(guān)性控制器系統(tǒng),包括高速緩存相關(guān)性目錄;目錄高速緩存;第一高速緩存邏輯,用于對所述高速緩存相關(guān)性目錄進行評估,以了解是否可以將目錄條目預(yù)取到所述目錄高速緩存中;第二高速緩存邏輯,用于響應(yīng)導(dǎo)致目錄遺漏的所述預(yù)取評估,設(shè)置預(yù)取遺漏指示符;第一協(xié)議邏輯,用于,在對對應(yīng)于所述目錄條目的存儲器請求進行隨后的處理期間,查詢所述預(yù)取遺漏指示符;以及第二協(xié)議邏輯,用于,基于設(shè)置了所述預(yù)取遺漏指示符的情況,采取加速的嗅探響應(yīng)操作。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述高速緩存相關(guān)性目錄是完全映射的目錄。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述高速緩存相關(guān)性目錄是稀疏的目錄。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述第二高速緩存邏輯包括用于存儲所述目錄條目的標記的邏輯。
15.根據(jù)權(quán)利要求11所述的系統(tǒng),進一步包括預(yù)取遺漏緩沖區(qū),其中,所述第二高速緩存邏輯包括用于將所述目錄條目的標記存儲在預(yù)取遺漏緩沖區(qū)中的邏輯。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述預(yù)取遺漏緩沖區(qū)包括可尋址存儲器。
17.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述預(yù)取遺漏緩沖區(qū)包括存儲寄存器。
18.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述第二高速緩存邏輯包括用于在所述目錄條目中設(shè)置預(yù)取遺漏狀態(tài)指示符并將所述條目存儲在所述目錄高速緩存中的邏輯。
19.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述第一協(xié)議邏輯包括用于與查詢所述目錄高速緩存相關(guān)地查詢預(yù)取遺漏緩沖區(qū)的邏輯。
20.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述第一協(xié)議邏輯包括用于查詢所述目錄高速緩存以便識別具有預(yù)取遺漏狀態(tài)指示符的目錄條目的邏輯。
21.共享分布式存儲器數(shù)據(jù)處理系統(tǒng)中的用于網(wǎng)絡(luò)互連的數(shù)據(jù)處理節(jié)點,包括多個處理器;分別與所述處理器關(guān)聯(lián)的多個高速緩存;節(jié)點主存儲器;相關(guān)性控制器;互連所述高速緩存的總線,所述主存儲器和所述相關(guān)性控制器;用于定位所述數(shù)據(jù)處理系統(tǒng)的外部節(jié)點中的本地存儲塊的高速緩存的副本的高速緩存相關(guān)性目錄;用于臨時存儲來自所述高速緩存相關(guān)性目錄的目錄條目的目錄高速緩存;所述相關(guān)性控制器中的第一高速緩存邏輯,用于對所述高速緩存相關(guān)性目錄進行評估,以了解是否可以將目錄條目預(yù)取到所述目錄高速緩存中;所述相關(guān)性控制器中的第二高速緩存邏輯,用于響應(yīng)導(dǎo)致目錄遺漏的所述預(yù)取評估,設(shè)置預(yù)取遺漏指示符,表示沒有與所述目錄條目關(guān)聯(lián)的存儲塊的外部高速緩存的副本;第一協(xié)議邏輯,用于,在對對應(yīng)于所述目錄條目的存儲塊請求進行隨后的處理期間,查詢所述預(yù)取遺漏指示符;以及第二協(xié)議邏輯,用于,基于設(shè)置了所述預(yù)取遺漏指示符的情況,采取加速的嗅探響應(yīng)操作;從而,由于所述加速響應(yīng),而縮短與所述目錄遺漏關(guān)聯(lián)的延遲。
22.一種用于在共享分布式存儲器數(shù)據(jù)處理系統(tǒng)中縮短與外部高速緩存上的高速緩存相關(guān)性目錄遺漏關(guān)聯(lián)的延遲的產(chǎn)品,包括一個或多個數(shù)據(jù)存儲介質(zhì);記錄在所述數(shù)據(jù)存儲介質(zhì)上的用于對設(shè)備進行程序控制以便進行操作的裝置對高速緩存相關(guān)性目錄進行評估,以了解可能進行的將目錄條目預(yù)取到目錄高速緩存中;響應(yīng)導(dǎo)致目錄遺漏的所述預(yù)取評估,設(shè)置預(yù)取遺漏指示符;在對對應(yīng)于所述目錄條目的存儲器請求進行隨后的處理期間,查詢所述預(yù)取遺漏指示符;以及基于設(shè)置了所述預(yù)取遺漏指示符的情況,采取加速的嗅探響應(yīng)操作。
23.根據(jù)權(quán)利要求22所述的產(chǎn)品,其中,所述目錄評估包括評估完全映射的目錄。
24.根據(jù)權(quán)利要求22所述的產(chǎn)品,其中,所述目錄評估包括評估稀疏的的目錄。
25.根據(jù)權(quán)利要求22所述的產(chǎn)品,其中,所述設(shè)置預(yù)取遺漏指示符包括存儲所述目錄條目的標記。
26.根據(jù)權(quán)利要求22所述的產(chǎn)品,其中,所述設(shè)置預(yù)取遺漏指示符包括將所述目錄條目的標記存儲在預(yù)取遺漏緩沖區(qū)中。
27.根據(jù)權(quán)利要求22所述的產(chǎn)品,其中,所述預(yù)取遺漏緩沖區(qū)包括可尋址存儲器。
28.根據(jù)權(quán)利要求22所述的產(chǎn)品,其中,所述預(yù)取遺漏緩沖區(qū)包括存儲寄存器。
29.根據(jù)權(quán)利要求22所述的產(chǎn)品,其中,所述設(shè)置預(yù)取遺漏指示符包括在所述目錄條目中設(shè)置預(yù)取遺漏狀態(tài)指示符并將所述條目存儲在所述目錄高速緩存中。
30.根據(jù)權(quán)利要求22所述的產(chǎn)品,其中,通過與查詢所述目錄高速緩存相關(guān)地查詢預(yù)取遺漏緩沖區(qū)來執(zhí)行所述預(yù)取遺漏指示符的所述查詢。
31.根據(jù)權(quán)利要求22所述的產(chǎn)品,其中,通過查詢所述目錄高速緩存來執(zhí)行所述預(yù)取遺漏指示符的所述查詢以便識別具有預(yù)取遺漏狀態(tài)指示符的目錄條目。
全文摘要
一種用于在共享分布式存儲器數(shù)據(jù)處理系統(tǒng)中縮短與外部高速緩存上的高速緩存相關(guān)性目錄遺漏關(guān)聯(lián)的延遲的系統(tǒng)、方法和產(chǎn)品。對高速緩存相關(guān)性目錄進行評估,以了解可能進行的將目錄條目預(yù)取到目錄高速緩存中。如果預(yù)取評估導(dǎo)致目錄遺漏,則設(shè)置預(yù)取遺漏指示符。在對對應(yīng)于在預(yù)取評估過程中被遺漏的目錄條目的存儲塊請求進行隨后的處理期間,將查詢預(yù)取遺漏指示符。如果設(shè)置了預(yù)取遺漏指示符,將采取加速的嗅探響應(yīng)操作。從而就避免了否則會需要的對高速緩存相關(guān)性目錄的第二次查詢的延遲。
文檔編號G06F12/08GK1790296SQ200510118678
公開日2006年6月21日 申請日期2005年11月7日 優(yōu)先權(quán)日2004年11月8日
發(fā)明者埃里克·拉伊斯, 唐納德·德索塔, 羅布·約爾斯 申請人:國際商業(yè)機器公司