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