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

數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)處理的方法和裝置的制作方法

文檔序號(hào):6558491閱讀:112來源:國知局
專利名稱:數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)處理的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及數(shù)據(jù)處理,并尤其涉及高速緩存一致性數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)處理。
背景技術(shù)
傳統(tǒng)的對(duì)稱多處理器(SMP)計(jì)算機(jī)系統(tǒng)例如服務(wù)器計(jì)算機(jī)系統(tǒng)包括均連接到系統(tǒng)互連上的多個(gè)處理單元,該系統(tǒng)互連通常包括一個(gè)或多個(gè)地址、數(shù)據(jù)和控制總線。系統(tǒng)存儲(chǔ)器連接到系統(tǒng)互連上,該系統(tǒng)存儲(chǔ)器代表多處理器計(jì)算機(jī)系統(tǒng)內(nèi)的最低層的易失存儲(chǔ)器,并通常可被所有處理單元進(jìn)行讀和寫訪問。為了減小針對(duì)位于系統(tǒng)存儲(chǔ)器上的指令和數(shù)據(jù)的訪問等待時(shí)間,每個(gè)處理單元通常還被各自的多層高速緩存層次結(jié)構(gòu)支持,所述高速緩存層次結(jié)構(gòu)的最低層可被一個(gè)或多個(gè)處理器核心共享。
因?yàn)槎鄠€(gè)處理器核心可能請(qǐng)求寫訪問相同的數(shù)據(jù)高速緩存線,并且因?yàn)楸恍薷牡母咚倬彺婢€不是立刻與系統(tǒng)存儲(chǔ)器同步,所以多處理器計(jì)算機(jī)系統(tǒng)的高速緩存層次結(jié)構(gòu)通常實(shí)現(xiàn)高速緩存一致性協(xié)議以至少確保多個(gè)處理器核心對(duì)系統(tǒng)存儲(chǔ)器的內(nèi)容的“視圖”之間的最低水平的一致性。具體地,高速緩存一致性至少要求在處理單元訪問存儲(chǔ)塊的副本并隨后訪問該存儲(chǔ)塊的更新副本之后,該處理單元不能再次訪問該存儲(chǔ)塊的舊副本。
高速緩存一致性協(xié)議通常定義了與每個(gè)高速緩存層次結(jié)構(gòu)的高速緩存線相關(guān)聯(lián)地存儲(chǔ)的一組一致性狀態(tài),以及用于在各高速緩存層次結(jié)構(gòu)之間傳送高速緩存狀態(tài)信息的一組一致性消息。在一典型實(shí)現(xiàn)中,一致性狀態(tài)信息采取的形式為公知的MESI(修改、排他、共享、無效)協(xié)議或其變型,而一致性消息指示在存儲(chǔ)器訪問請(qǐng)求的請(qǐng)求者和/或接受者的高速緩存層次結(jié)構(gòu)中的協(xié)議定義的一致性狀態(tài)轉(zhuǎn)變。
在一些高速緩存一致性協(xié)議中,一個(gè)或多個(gè)一致性狀態(tài)響應(yīng)于隨后的操作不被更新或僅被不精確地更新。因此,這些一致性狀態(tài)可隨時(shí)間而變“陳舊”,因?yàn)樗鼈儾辉贉?zhǔn)確地反應(yīng)相關(guān)聯(lián)存儲(chǔ)塊的系統(tǒng)范圍的一致性狀態(tài)。本發(fā)明認(rèn)識(shí)到“陳舊”一致性狀態(tài)的存在會(huì)導(dǎo)致執(zhí)行這樣的系統(tǒng)操作,即如果已更新和/或除去了“陳舊”一致性狀態(tài)則不會(huì)需要這些系統(tǒng)操作。

發(fā)明內(nèi)容
鑒于以上考慮,本發(fā)明提供了一種改進(jìn)的高速緩存一致性數(shù)據(jù)處理系統(tǒng)、高速緩存系統(tǒng)和高速緩存一致性數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)處理方法。
在一個(gè)實(shí)施例中,局部一致性域內(nèi)的高速緩存清理(scrubbing)邏輯向遠(yuǎn)程一致性域內(nèi)的至少一個(gè)高速緩存層次結(jié)構(gòu)發(fā)出域查詢請(qǐng)求。域查詢請(qǐng)求是對(duì)通過該至少一個(gè)高速緩存層次結(jié)構(gòu)與目標(biāo)存儲(chǔ)塊相關(guān)聯(lián)的一致性狀態(tài)的非破壞性探查。接收對(duì)該域查詢請(qǐng)求的一致性響應(yīng)。響應(yīng)于一致性響應(yīng)指示目標(biāo)存儲(chǔ)塊沒有被高速緩存在該遠(yuǎn)程一致性域內(nèi),復(fù)位該局部一致性域內(nèi)的域指示以指示目標(biāo)存儲(chǔ)塊僅被高速緩存在局部一致性域內(nèi),如果它被高速緩存的話。
在另一個(gè)實(shí)施例中,局部一致性域內(nèi)的高速緩存清理邏輯向遠(yuǎn)程一致性域內(nèi)的至少一個(gè)高速緩存層次結(jié)構(gòu)發(fā)出域復(fù)位請(qǐng)求,該域復(fù)位請(qǐng)求迫使該遠(yuǎn)程一致性域內(nèi)保持的目標(biāo)存儲(chǔ)塊的任何被高速緩存的副本無效。接收到對(duì)該域復(fù)位請(qǐng)求的一致性響應(yīng)。響應(yīng)于該一致性響應(yīng)指示目標(biāo)存儲(chǔ)塊沒有被高速緩存在該遠(yuǎn)程一致性域內(nèi),復(fù)位該局部一致性域的系統(tǒng)存儲(chǔ)器內(nèi)的域指示以指示目標(biāo)存儲(chǔ)塊僅被高速緩存在局部一致性域內(nèi),如果它被高速緩存的話。
在另一個(gè)實(shí)施例中,響應(yīng)于程序代碼的執(zhí)行,至少利用目標(biāo)存儲(chǔ)塊的目標(biāo)地址初始化局部一致性域內(nèi)的高速緩存清理邏輯內(nèi)的控制寄存器。響應(yīng)于該初始化,高速緩存清理邏輯向遠(yuǎn)程一致性域內(nèi)的至少一個(gè)高速緩存層次結(jié)構(gòu)發(fā)出高速緩存清理請(qǐng)求,該清理請(qǐng)求針對(duì)可被至少一個(gè)高速緩存層次結(jié)構(gòu)高速緩存的目標(biāo)存儲(chǔ)塊。響應(yīng)于接收到指示目標(biāo)存儲(chǔ)塊沒有被高速緩存在遠(yuǎn)程一致性域內(nèi)的一致性響應(yīng),復(fù)位局部一致性域內(nèi)的域指示以指示目標(biāo)存儲(chǔ)塊僅被高速緩存在局部一致性域內(nèi),如果它被高速緩存的話。
從下面的詳細(xì)說明中可清楚地了解本發(fā)明的所有目標(biāo)、特征和優(yōu)點(diǎn)。


在所附權(quán)利要求中闡述了被認(rèn)為是本發(fā)明的特性的新穎特征。但是,當(dāng)結(jié)合附圖閱讀時(shí)參照下面對(duì)說明性實(shí)施例的詳細(xì)描述可最好地理解本發(fā)明及其優(yōu)選使用方式,在附圖中圖1是根據(jù)本發(fā)明的示例性數(shù)據(jù)處理系統(tǒng)的高層框圖;圖2是根據(jù)本發(fā)明的處理單元的更詳細(xì)的框圖;圖3是圖2中所示的L2高速緩存陣列和目錄的更詳細(xì)的框圖;圖4是圖1的數(shù)據(jù)處理系統(tǒng)的系統(tǒng)互連上的示例性事務(wù)的時(shí)空?qǐng)D(time-space diagram);圖5示出根據(jù)本發(fā)明的優(yōu)選實(shí)施例的域指示符;圖6A是根據(jù)本發(fā)明的啟動(dòng)高速緩存清理操作的方法的高層邏輯流程圖;圖6B是根據(jù)本發(fā)明高速緩存監(jiān)聽器(snooper)用來處理被動(dòng)高速緩存清理操作的方法的高層邏輯流程圖;圖6C是根據(jù)本發(fā)明存儲(chǔ)控制器監(jiān)聽器用來處理被動(dòng)高速緩存清理操作的方法的高層邏輯流程圖;圖7A是根據(jù)本發(fā)明高速緩存監(jiān)聽器用來處理主動(dòng)高速緩存清理操作的方法的高層邏輯流程圖;圖7B是根據(jù)本發(fā)明存儲(chǔ)控制器監(jiān)聽器用來處理主動(dòng)高速緩存清理操作的方法的高層邏輯流程圖;圖8A示出根據(jù)本發(fā)明的用于啟動(dòng)被動(dòng)或主動(dòng)高速緩存清理操作的示例性域指示清理指令;以及圖8B示出根據(jù)本發(fā)明的包括高速緩存清理指令的示例性程序代碼。
具體實(shí)施例方式
I.示例性數(shù)據(jù)處理系統(tǒng)現(xiàn)參照附圖并尤其參照?qǐng)D1,示出根據(jù)本發(fā)明的高速緩存一致性對(duì)稱多處理器(SMP)數(shù)據(jù)處理系統(tǒng)的示例性實(shí)施例的高層框圖。如圖所示,數(shù)據(jù)處理系統(tǒng)100包括用于處理數(shù)據(jù)和指令的多個(gè)處理節(jié)點(diǎn)102a、102b。處理節(jié)點(diǎn)102a、102b連接到用于傳輸?shù)刂?、?shù)據(jù)和控制信息的系統(tǒng)互連110。系統(tǒng)互連110可實(shí)現(xiàn)為例如總線互連、交換互連或混合互連。
在所示實(shí)施例中,每個(gè)處理節(jié)點(diǎn)102實(shí)現(xiàn)為包含四個(gè)處理單元104a-104d的多芯片模塊(MCM),每個(gè)處理單元優(yōu)選地被實(shí)現(xiàn)為各自的集成電路。每個(gè)處理節(jié)點(diǎn)102內(nèi)的處理單元104a-104d通過局部互連114連接以便通信,該局部互連類似于系統(tǒng)互連110可由一條或多條總線和/或交換機(jī)實(shí)現(xiàn)。
連接到每個(gè)局部互連114的設(shè)備不僅包括處理單元104,而且包括一個(gè)或多個(gè)系統(tǒng)存儲(chǔ)器108a-108d。位于系統(tǒng)存儲(chǔ)器108內(nèi)的數(shù)據(jù)和指令通常可被數(shù)據(jù)處理系統(tǒng)100的任何處理節(jié)點(diǎn)102內(nèi)的任何處理單元104內(nèi)的處理核心訪問和修改。在本發(fā)明的其他可選擇實(shí)施例中,一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)器108可連接到系統(tǒng)互連110而不是局部互連114。
本領(lǐng)域內(nèi)的那些技術(shù)人員將理解,SMP數(shù)據(jù)處理系統(tǒng)100可包括許多另外的未示出的部件例如互連橋、非易失存儲(chǔ)器、用于連接到網(wǎng)絡(luò)或附加設(shè)備的端口等。因?yàn)檫@樣的另外的部件對(duì)于理解本發(fā)明并不是必須的,所以它們未在圖1中示出或者在此被進(jìn)一步討論。但是,應(yīng)理解,本發(fā)明提供的增強(qiáng)可應(yīng)用于不同體系結(jié)構(gòu)的高速緩存一致性數(shù)據(jù)處理系統(tǒng),并且決不局限于圖1中所示的一般化的數(shù)據(jù)處理系統(tǒng)體系結(jié)構(gòu)。
現(xiàn)參照?qǐng)D2,示出根據(jù)本發(fā)明的示例性處理單元104的更詳細(xì)的框圖。在所示實(shí)施例中,每個(gè)處理單元104包括用于獨(dú)立地處理指令和數(shù)據(jù)的兩個(gè)處理器核心200a、200b。每個(gè)處理器核心200包括用于讀取和排序用于執(zhí)行的指令的至少一個(gè)指令定序單元(ISU)208,和用于執(zhí)行指令的一個(gè)或多個(gè)執(zhí)行單元224。如下文進(jìn)一步說明的,執(zhí)行單元224優(yōu)選地包括用于執(zhí)行引用存儲(chǔ)塊或使得生成引用存儲(chǔ)塊的操作的存儲(chǔ)器訪問指令的裝入-存儲(chǔ)單元(LSU)228。
每個(gè)處理器核心200的操作由多層易失存儲(chǔ)器層次結(jié)構(gòu)支持,該層次結(jié)構(gòu)在其最低層具有共享系統(tǒng)存儲(chǔ)器108a-108d,而在其上層具有一級(jí)或多級(jí)高速緩沖存儲(chǔ)器。在所示實(shí)施例中,每個(gè)處理單元104包括集成存儲(chǔ)控制器(IMC)206,該集成存儲(chǔ)控制器響應(yīng)于從處理器核心200a-200b接收到的請(qǐng)求和監(jiān)聽器(S)222在局部互連114上監(jiān)聽的操作,控制對(duì)其處理節(jié)點(diǎn)102內(nèi)的相應(yīng)一個(gè)系統(tǒng)存儲(chǔ)器108a-108d的讀和寫訪問。IMC 206通過參考基址存儲(chǔ)器(BAR)邏輯240確定它所負(fù)責(zé)的地址。
在所示實(shí)施例中,處理單元104的高速緩存層次結(jié)構(gòu)包括位于每個(gè)處理器核心200內(nèi)的貫穿存儲(chǔ)(store-through)1級(jí)(L1)高速緩存226,和被處理單元104的所有處理器核心200a、220b共享的2級(jí)(L2)高速緩存230。L2高速緩存230包括L2陣列和目錄234,以及包括主控(master)232和監(jiān)聽器236的高速緩存控制器。主控232響應(yīng)于從相關(guān)聯(lián)的處理器核心200a-220b接收到的存儲(chǔ)器訪問(以及其他)請(qǐng)求,在局部互連114和系統(tǒng)互連110上啟動(dòng)事務(wù),并訪問L2陣列和目錄234。主控232包括高速緩存清理邏輯250,如下文進(jìn)一步說明的,該邏輯可用于更新可被高速緩存在數(shù)據(jù)處理系統(tǒng)100內(nèi)的分布位置內(nèi)的一個(gè)或多個(gè)存儲(chǔ)塊的一致性狀態(tài)和/或域指示符。監(jiān)聽器236監(jiān)聽局部互連114上的操作,提供合適的響應(yīng),并執(zhí)行這些操作所需的對(duì)L2陣列和目錄234的任何訪問。
盡管所述高速緩存層次結(jié)構(gòu)僅包括兩級(jí)高速緩存,但是本領(lǐng)域內(nèi)的那些技術(shù)人員將理解,其他可選擇的實(shí)施例可包括額外的等級(jí)(L3、L4、L5等)的片內(nèi)或片外的內(nèi)聯(lián)(in-line)或后備(lookaside)高速緩存,其可以完全包含、部分包含或不包含上級(jí)高速緩存的內(nèi)容。
每個(gè)處理單元104還包括響應(yīng)邏輯210的實(shí)例,其實(shí)現(xiàn)維護(hù)數(shù)據(jù)處理系統(tǒng)100內(nèi)的高速緩存一致性的分布式一致性信令機(jī)制的一部分。另外,每個(gè)處理單元104包括互連邏輯212的實(shí)例,其用于在其局部互連114和系統(tǒng)互連110之間選擇性地轉(zhuǎn)發(fā)通信。最后,每個(gè)處理單元104包括支持附加一個(gè)或多個(gè)I/O設(shè)備例如I/O設(shè)備216的集成I/O(輸入/輸出)控制器214。I/O控制器214可響應(yīng)于I/O設(shè)備216的請(qǐng)求在局部互連114和/或系統(tǒng)互連110上發(fā)出操作。
現(xiàn)參照?qǐng)D3,示出L2陣列和目錄234的示例性實(shí)施例的更詳細(xì)的框圖。如圖所示,L2陣列和目錄234包括組相聯(lián)(set associative)L2高速緩存陣列300,和L2高速緩存陣列300的內(nèi)容的L2高速緩存目錄302。如在傳統(tǒng)的組相聯(lián)高速緩存中,利用系統(tǒng)存儲(chǔ)器(實(shí))地址內(nèi)的預(yù)定索引位將系統(tǒng)存儲(chǔ)器108中的存儲(chǔ)位置映射到高速緩存300內(nèi)的特定同余類(congruence class)。高速緩存陣列300內(nèi)存儲(chǔ)的特定高速緩存線被記錄在高速緩存目錄302內(nèi),該目錄對(duì)于高速緩存陣列300內(nèi)的每個(gè)高速緩存線包含一個(gè)目錄項(xiàng)。如本領(lǐng)域內(nèi)的那些技術(shù)人員可理解的,高速緩存302內(nèi)的每個(gè)目錄項(xiàng)至少包括標(biāo)記字段304,該標(biāo)記字段利用對(duì)應(yīng)的實(shí)地址內(nèi)的標(biāo)志部分指定存儲(chǔ)在高速緩存陣列300內(nèi)的特定高速緩存線,狀態(tài)字段306,該狀態(tài)字段指示高速緩存線的一致性狀態(tài),和LRU(最近最少使用)字段308,該LRU字段指示該高速緩存線相對(duì)于相同同余類內(nèi)的其他高速緩存線的替換順序。
II.示例性操作現(xiàn)參照?qǐng)D4,示出在圖1的數(shù)據(jù)處理系統(tǒng)100上的局部或系統(tǒng)互連110、114上的示例性操作的時(shí)空?qǐng)D。當(dāng)L2高速緩存230的主控232(或其他主控例如I/O控制器214)在局部互連114和/或系統(tǒng)互連110上發(fā)出請(qǐng)求402時(shí),此操作開始。請(qǐng)求402優(yōu)選地包括指示希望的訪問的類型的事務(wù)類型和指示該請(qǐng)求將訪問的資源的資源標(biāo)識(shí)符(例如實(shí)地址)。常見類型的請(qǐng)求優(yōu)選地包括表I內(nèi)給出的那些。
表I

L2高速緩存230的監(jiān)聽器236以及存儲(chǔ)控制器206的監(jiān)聽器222接收到請(qǐng)求402(圖1)。一般來說,除一些例外,與請(qǐng)求402的主控232相同的L2高速緩存230中的監(jiān)聽器236不監(jiān)聽請(qǐng)求402(即通常沒有自監(jiān)聽),因?yàn)橹挥挟?dāng)請(qǐng)求402不能由處理單元104在內(nèi)部服務(wù)時(shí),請(qǐng)求402才在局部互連114和/或系統(tǒng)互連110上傳輸。接收到請(qǐng)求402的每個(gè)監(jiān)聽器222、236可提供各自的部分響應(yīng)406,該部分響應(yīng)代表至少該監(jiān)聽器對(duì)請(qǐng)求402的響應(yīng)。存儲(chǔ)控制器206內(nèi)的監(jiān)聽器222根據(jù)例如監(jiān)聽器222是否負(fù)責(zé)被請(qǐng)求的地址以及其是否具有可用于服務(wù)于該請(qǐng)求的資源,確定將提供的部分響應(yīng)406。L2高速緩存230的監(jiān)聽器236可根據(jù)例如其L2高速緩存目錄302的可用性、監(jiān)聽器236內(nèi)處理該請(qǐng)求的監(jiān)聽邏輯實(shí)例的可用性、以及與L2高速緩存目錄302內(nèi)的請(qǐng)求地址相關(guān)聯(lián)的一致性狀態(tài),確定其部分請(qǐng)求406。
監(jiān)聽器222和236的部分響應(yīng)被響應(yīng)邏輯210的一個(gè)或多個(gè)實(shí)例分階段地或一次性地組合以確定對(duì)請(qǐng)求402的系統(tǒng)范圍的組合響應(yīng)(CR)410。受制于下文說明的范圍限制,響應(yīng)邏輯210經(jīng)由其局部互連114和/或系統(tǒng)互連110將組合響應(yīng)410提供給主控232和監(jiān)聽器222、236,以指示對(duì)請(qǐng)求402的系統(tǒng)范圍的響應(yīng)(例如成功、失敗、重試等)。如果CR 410指示請(qǐng)求402成功,則CR 410可指示例如被請(qǐng)求的存儲(chǔ)塊的數(shù)據(jù)源,被請(qǐng)求的存儲(chǔ)塊將被主控232高速緩存的高速緩存狀態(tài),以及是否需要使一個(gè)或多個(gè)L2高速緩存230內(nèi)的被請(qǐng)求的存儲(chǔ)塊無效的“清除”操作。
響應(yīng)于接收到組合響應(yīng)410,主控232和監(jiān)聽器222、236中的一個(gè)或多個(gè)通常執(zhí)行一個(gè)或多個(gè)操作以便服務(wù)于請(qǐng)求402。這些操作可包括向主控232提供數(shù)據(jù),使一個(gè)或多個(gè)L2高速緩存230內(nèi)高速緩存的數(shù)據(jù)的一致性狀態(tài)無效或以其他方式更新該一致性狀態(tài),執(zhí)行擲出(castout)操作,將數(shù)據(jù)寫回系統(tǒng)存儲(chǔ)器108等。如果請(qǐng)求402這樣要求,則在響應(yīng)邏輯210生成組合響應(yīng)410之前或之后,可向或從主控232傳送被請(qǐng)求的或目標(biāo)存儲(chǔ)塊。
在下面的說明中,將參照監(jiān)聽器相對(duì)于請(qǐng)求所指定的請(qǐng)求地址是一致性最高點(diǎn)(HPC)、一致性最低點(diǎn)(LPC)還是都不是,說明監(jiān)聽器222、236對(duì)請(qǐng)求的部分響應(yīng)以及響應(yīng)于該請(qǐng)求監(jiān)聽器執(zhí)行的操作和/或其組合響應(yīng)。LPC在此被定義為用作存儲(chǔ)塊的儲(chǔ)存庫的存儲(chǔ)設(shè)備或I/O設(shè)備。在沒有用于存儲(chǔ)塊的HPC的情況下,LPC保持存儲(chǔ)塊的真實(shí)映象,并有權(quán)準(zhǔn)許或拒絕對(duì)生成存儲(chǔ)塊的另外的被高速緩存的副本的請(qǐng)求。對(duì)于圖1和2的數(shù)據(jù)處理系統(tǒng)實(shí)施例中的典型請(qǐng)求,LPC將是用于保持被引用的存儲(chǔ)塊的系統(tǒng)存儲(chǔ)器108的存儲(chǔ)控制器206。HPC在此被定義為高速緩存存儲(chǔ)塊的真映象(可以與在LPC處的對(duì)應(yīng)的存儲(chǔ)塊一致或不一致)并且有權(quán)準(zhǔn)許或拒絕修改存儲(chǔ)塊的請(qǐng)求的被唯一標(biāo)識(shí)的設(shè)備。作為說明,HPC還可響應(yīng)于不修改存儲(chǔ)塊的操作將存儲(chǔ)塊的副本提供給請(qǐng)求者。因此,對(duì)于圖1和2的數(shù)據(jù)處理系統(tǒng)實(shí)施例中的典型請(qǐng)求,HPC如果有的話,將是L2高速緩存230。盡管可使用其他指示符為存儲(chǔ)塊指定HPC,但是如果有HPC的話,則本發(fā)明的優(yōu)選實(shí)施例利用L2高速緩存230的L2高速緩存目錄302內(nèi)的所選擇的高速緩存一致性狀態(tài)為存儲(chǔ)塊指定HPC,如下文參照表II進(jìn)一步說明的那樣。
仍參照?qǐng)D4,如果有的話用于請(qǐng)求402內(nèi)引用的存儲(chǔ)塊的HPC或者在沒有HPC的情況下存儲(chǔ)塊的LPC優(yōu)選地有責(zé)任在保護(hù)窗口404a期間響應(yīng)于請(qǐng)求402保護(hù)存儲(chǔ)塊的所有權(quán)的傳遞。在圖4內(nèi)所示的示例性情況中,作為用于由請(qǐng)求402的請(qǐng)求地址指定的存儲(chǔ)塊的HPC的監(jiān)聽器236在保護(hù)窗口404a期間保護(hù)被請(qǐng)求的存儲(chǔ)塊的所有權(quán)向主控232的傳送,該保護(hù)窗口從監(jiān)聽器236確定其部分響應(yīng)406的時(shí)間一直延伸到監(jiān)聽器236接收到組合響應(yīng)410的時(shí)間。在保護(hù)窗口404a期間,監(jiān)聽器236通過向指定相同請(qǐng)求地址的其他請(qǐng)求提供部分響應(yīng)406以便在所有權(quán)已成功地傳送到主控232之前防止其他主控獲得所有權(quán),來保護(hù)所有權(quán)的傳送。主控232類似地啟動(dòng)保護(hù)窗口404b以在接收到組合請(qǐng)求410之后保護(hù)其對(duì)在請(qǐng)求402中請(qǐng)求的存儲(chǔ)塊的所有權(quán)。
因?yàn)楸O(jiān)聽器222、236均具有有限的資源用于處理上述CPU和I/O請(qǐng)求,所以可存在一些不同級(jí)別的部分請(qǐng)求和對(duì)應(yīng)的CR。例如,如果負(fù)責(zé)被請(qǐng)求的存儲(chǔ)塊的存儲(chǔ)控制器206內(nèi)的監(jiān)聽器222具有可用于處理請(qǐng)求的隊(duì)列,則監(jiān)聽器222可以指示其能夠用作該請(qǐng)求的LPC的部分響應(yīng)來響應(yīng)。另一方面,如果監(jiān)聽器222沒有可用于處理請(qǐng)求的隊(duì)列,則監(jiān)聽器222可以指示其是存儲(chǔ)塊的HPC、但是不能目前服務(wù)于該請(qǐng)求的部分響應(yīng)來響應(yīng)。
類似的,L2高速緩存230內(nèi)的監(jiān)聽器236會(huì)需要監(jiān)聽邏輯的可用實(shí)例和對(duì)L2高速緩存目錄302的訪問以便處理請(qǐng)求。缺少對(duì)這些資源的任何一個(gè)(或全部)的訪問會(huì)得到用信號(hào)通知由于沒有所需的資源而目前不能服務(wù)于該請(qǐng)求的部分響應(yīng)(和對(duì)應(yīng)的CR)。
此后,提供指示監(jiān)聽器具有可用的如果需要的話目前服務(wù)于請(qǐng)求所需的所有內(nèi)部資源的部分響應(yīng)的監(jiān)聽器222、236被說成“確認(rèn)”請(qǐng)求。對(duì)于監(jiān)聽器236,確認(rèn)被監(jiān)聽的操作的部分響應(yīng)優(yōu)選地指示在該監(jiān)聽器236處被請(qǐng)求的或目標(biāo)存儲(chǔ)塊的高速緩存狀態(tài)。提供指示監(jiān)聽器236不具有可用的目前服務(wù)于請(qǐng)求所需的可用的所有內(nèi)部資源的部分響應(yīng)的監(jiān)聽器222、236可被說成“可能隱藏的”或“不能”服務(wù)于該請(qǐng)求。這樣的監(jiān)聽器236是“可能隱藏的”或“不能”服務(wù)于請(qǐng)求,因?yàn)楸O(jiān)聽器236由于沒有監(jiān)聽邏輯的可用實(shí)例或目前的對(duì)L2高速緩存目錄302的訪問而不能在上文定義的意義上“確認(rèn)”請(qǐng)求,并且在其他主控232和監(jiān)聽器222、236看來監(jiān)聽器236具有未知的一致性狀態(tài)。
III.數(shù)據(jù)提供域傳統(tǒng)的基于廣播的數(shù)據(jù)處理系統(tǒng)通過廣播通信處理高速緩存一致性和數(shù)據(jù)傳送兩者,該廣播通信在傳統(tǒng)系統(tǒng)內(nèi)在系統(tǒng)互連上至少被傳輸?shù)较到y(tǒng)內(nèi)的所有存儲(chǔ)控制器和高速緩存層次結(jié)構(gòu)。與其他可選擇結(jié)構(gòu)和類似規(guī)模的系統(tǒng)相比,基于廣播的系統(tǒng)傾向于提供共享存儲(chǔ)塊的減少的訪問等待時(shí)間以及更好的數(shù)據(jù)處理和一致性管理。
當(dāng)基于廣播的系統(tǒng)的大小增加時(shí),系統(tǒng)互連上的通信量倍增,這意味著由于系統(tǒng)互連上的通信需要更大的帶寬所以系統(tǒng)成本會(huì)隨系統(tǒng)規(guī)模迅速升高。就是說,具有m個(gè)處理器核心—每個(gè)處理器核心具有n個(gè)事務(wù)的平均通信量—的系統(tǒng)的通信量為m×n,這意味著在基于廣播的系統(tǒng)內(nèi)的通信量乘法地而不是加法地增加。除了顯著更大的互連帶寬的需求之外,系統(tǒng)尺寸增加的第二個(gè)效果是增加一些訪問等待時(shí)間。例如,在最壞情況下,讀數(shù)據(jù)的訪問等待時(shí)間受限于可從其獲得被請(qǐng)求的數(shù)據(jù)的、以共享一致性狀態(tài)保持被請(qǐng)求的存儲(chǔ)塊的最遠(yuǎn)的低級(jí)高速緩存的組合響應(yīng)等待時(shí)間。
為了減小系統(tǒng)互連帶寬需求和訪問等待延時(shí)間而同時(shí)仍保持基于廣播的系統(tǒng)的優(yōu)點(diǎn),允許分布在整個(gè)數(shù)據(jù)處理系統(tǒng)100內(nèi)的多個(gè)L2高速緩存230以一“特殊的”共享一致性狀態(tài)保持相同存儲(chǔ)塊的副本,該狀態(tài)允許這些高速緩存使用高速緩存到高速緩存干涉將存儲(chǔ)塊提供給請(qǐng)求L2高速緩存230。為了在SMP數(shù)據(jù)處理系統(tǒng)例如數(shù)據(jù)處理系統(tǒng)100內(nèi)為共享存儲(chǔ)塊實(shí)現(xiàn)多個(gè)并行和分布式的源,必須解決兩個(gè)問題。首先,必須實(shí)現(xiàn)某種管理創(chuàng)建處于上文提到的“特殊”共享一致性狀態(tài)的存儲(chǔ)塊副本的規(guī)則。其次,必須存在管理如果有的話哪個(gè)監(jiān)聽L2高速緩存230例如響應(yīng)于總線讀操作或總線RWITM操作向請(qǐng)求L2高速緩存230提供共享存儲(chǔ)塊的規(guī)則。
根據(jù)本發(fā)明,通過實(shí)現(xiàn)數(shù)據(jù)提供域(sourcing domain)來解決這兩個(gè)問題。具體地,允許SMP數(shù)據(jù)處理系統(tǒng)內(nèi)的每個(gè)域每次僅包括一個(gè)以一“特殊”共享一致性狀態(tài)保持特定的存儲(chǔ)塊的高速緩存層次結(jié)構(gòu),其中域被定義為包括一個(gè)或多個(gè)參與響應(yīng)于數(shù)據(jù)請(qǐng)求的低級(jí)(例如L2)高速緩存時(shí)。如果該高速緩存層次結(jié)構(gòu)在相同域內(nèi)的請(qǐng)求低級(jí)高速緩存啟動(dòng)總線讀類型(例如讀或RWITM)操作時(shí)存在,則該高速緩存層次結(jié)構(gòu)負(fù)責(zé)將被請(qǐng)求的存儲(chǔ)塊提供給該請(qǐng)求低級(jí)高速緩存。盡管可在圖1的數(shù)據(jù)處理系統(tǒng)100中定義許多不同的域大小,但是認(rèn)為每個(gè)處理節(jié)點(diǎn)102(即MCM)是一個(gè)數(shù)據(jù)提供域是方便的。下面參照表II說明這樣的“特殊”共享狀態(tài)(即Sr)的一個(gè)示例。
IV.一致性域盡管上述的數(shù)據(jù)提供域的實(shí)現(xiàn)改進(jìn)了數(shù)據(jù)訪問等待時(shí)間,但是此增強(qiáng)未解決通信量會(huì)隨著系統(tǒng)規(guī)模的增加而增加m×n倍的問題。為了減小通信量同時(shí)仍保持基于廣播的一致性機(jī)制,本發(fā)明的優(yōu)選實(shí)施例還實(shí)現(xiàn)一致性域,類似于前文所述的數(shù)據(jù)提供域,該一致性域可方便地(但不必須)這樣實(shí)現(xiàn),其中每個(gè)處理節(jié)點(diǎn)102形成單獨(dú)的一致性域。數(shù)據(jù)提供域和一致性域可以但不必須具有共同范圍,并且為了說明數(shù)據(jù)處理系統(tǒng)100的示例性操作的目的,下文將假設(shè)它們具有由處理節(jié)點(diǎn)102限定的邊界。
一致性域的實(shí)現(xiàn)通過在請(qǐng)求可被少于所有一致性域的參與所服務(wù)的情況下限制系統(tǒng)互連110上的域間廣播通信,減小了通信量。例如,如果處理節(jié)點(diǎn)102的處理單元104a將有一總線讀操作要發(fā)出,則處理單元104可選擇首先將總線讀操作廣播給其自己的一致性域(例如處理節(jié)點(diǎn)102a)內(nèi)的所有參與者而不廣播給其他一致性域(例如處理節(jié)點(diǎn)102b)內(nèi)的參與者。僅傳輸給與操作的主控相同的一致性域內(nèi)的那些參與者的廣播操作在此被定義為“局部操作”。如果局部總線讀操作可在處理單元104a的一致性域內(nèi)被服務(wù),則不進(jìn)一步廣播總線讀操作。但是,如果對(duì)總線讀操作的部分響應(yīng)和組合響應(yīng)指示總線讀操作不能僅在處理節(jié)點(diǎn)102a的一致性域內(nèi)被服務(wù),則廣播范圍可擴(kuò)展到除了該局部一致性域之外還包括一個(gè)或多個(gè)額外的一致性域。
在一基本實(shí)現(xiàn)中,使用兩個(gè)廣播范圍僅包括局部一致性域的“局部”范圍和包括SMP數(shù)據(jù)處理系統(tǒng)內(nèi)的所有其他的一致性域的“全局”范圍。因此,傳輸?shù)絊MP數(shù)據(jù)處理系統(tǒng)內(nèi)的所有一致性域的操作在此被定義為“全局操作”。重要的是,不管使用局部操作還是使用具有更廣闊范圍的操作(例如全局操作)來服務(wù)于操作,在SMP數(shù)據(jù)處理系統(tǒng)內(nèi)的所有一致性域中維護(hù)高速緩存一致性。在全文并入此作為參考文獻(xiàn)的美國專利申請(qǐng)No.11/055305中說明了局部操作和全局操作的示例。
在一優(yōu)選實(shí)施例中,操作范圍由總線操作內(nèi)的局部/全局范圍指示符(信號(hào))指示,該指示符在一個(gè)實(shí)施例中包含1位的標(biāo)志。處理單元104內(nèi)的轉(zhuǎn)發(fā)邏輯212優(yōu)選地根據(jù)操作中的局部/全局范圍指示符(信號(hào))的設(shè)置確定是否將經(jīng)由局部互連114接收到的操作轉(zhuǎn)發(fā)到系統(tǒng)互連110上。
V.域指示符為了限制不需要的局部操作的發(fā)出,并從而減小操作等待時(shí)間以及節(jié)約局部互連上的額外的帶寬,本發(fā)明優(yōu)選地實(shí)現(xiàn)每個(gè)存儲(chǔ)塊的一域指示符,該指示符指示相關(guān)聯(lián)的存儲(chǔ)塊的副本是否被高速緩存在局部一致性域之外。例如,圖5示出根據(jù)本發(fā)明的域指示符的第一示例性實(shí)現(xiàn)。如圖5中所示,可由動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)實(shí)現(xiàn)的系統(tǒng)存儲(chǔ)器108存儲(chǔ)了多個(gè)存儲(chǔ)塊500。系統(tǒng)存儲(chǔ)器108與每個(gè)存儲(chǔ)塊500相關(guān)聯(lián)地存儲(chǔ)了關(guān)聯(lián)的糾錯(cuò)碼(ECC)502,該糾錯(cuò)碼用于校正存儲(chǔ)塊500內(nèi)的錯(cuò)誤(如果有的話),和域指示符504。盡管在本發(fā)明的一些實(shí)施例中,域指示符504可標(biāo)識(shí)特定的一致性域(即,指定一致性域或節(jié)點(diǎn)ID),但是此后假設(shè)域指示符504是1位的指示符,如果相關(guān)聯(lián)的存儲(chǔ)塊500僅被高速緩存(如果被高速緩存的話)在與用作該存儲(chǔ)塊500的LPC的存儲(chǔ)控制器206相同的一致性域內(nèi),則設(shè)置該指示符(例如,將其設(shè)置為‘1’以指示“局部”)。否則復(fù)位域指示符504(例如,復(fù)位為‘0’以指示“全局”)。域指示符504被設(shè)置為指示“局部”可被不精確地實(shí)現(xiàn),因?yàn)椤叭帧钡腻e(cuò)誤設(shè)置將不會(huì)引發(fā)任何一致性錯(cuò)誤,而會(huì)導(dǎo)致操作的不必要的全局廣播。
響應(yīng)于操作提供存儲(chǔ)塊的存儲(chǔ)控制器206(和L2高速緩存230)優(yōu)選地將相關(guān)聯(lián)的域指示符504與被請(qǐng)求的存儲(chǔ)塊一起傳輸。
VI.示例性一致性協(xié)議本發(fā)明優(yōu)選地實(shí)現(xiàn)被設(shè)計(jì)為利用上述數(shù)據(jù)傳送和一致性域的實(shí)現(xiàn)的高速緩存一致性協(xié)議。在一優(yōu)選實(shí)施例中,協(xié)議內(nèi)的高速緩存一致性狀態(tài)除了提供(1)高速緩存是否是存儲(chǔ)塊的HPC的指示之外,還指示(2)被高速緩存的副本在該存儲(chǔ)器層次結(jié)構(gòu)級(jí)別處的高速緩存中是否是唯一的(即是否是系統(tǒng)范圍的唯一被高速緩存的副本),(3)高速緩存是否可將存儲(chǔ)塊提供給請(qǐng)求該存儲(chǔ)塊的主控以及何時(shí)提供,(4)存儲(chǔ)塊的被高速緩存的映象是否與LPC(系統(tǒng)存儲(chǔ)器)處的對(duì)應(yīng)的存儲(chǔ)塊一致,以及(5)是否遠(yuǎn)程一致性域內(nèi)的另一個(gè)高速緩存(可能)保持具有匹配地址的高速緩存項(xiàng)。這五個(gè)屬性可被表示在表II中總結(jié)的公知的MESI(修改、排他、共享、無效)協(xié)議的示例性變型中。
表II


A.Ig狀態(tài)為了避免不得不訪問LPC來確定存儲(chǔ)塊是否已知為僅被局部地高速緩存(如果它被高速緩存的話),在存儲(chǔ)塊的副本沒有繼續(xù)高速緩存在一致性域內(nèi)的情況下,利用Ig(無效全局)一致性狀態(tài)保持域指示。Ig在此被定義為這樣的高速緩存一致性狀態(tài),其指示(1)高速緩存陣列內(nèi)的關(guān)聯(lián)的存儲(chǔ)塊無效,(2)高速緩存目錄內(nèi)的地址標(biāo)記有效,以及(3)該地址標(biāo)記標(biāo)識(shí)的存儲(chǔ)塊的副本可能被高速緩存在另一個(gè)一致性域內(nèi)。Ig指示優(yōu)選地是不精確的,這意味著它可以是不正確的但不會(huì)破壞一致性。
響應(yīng)于低級(jí)高速緩存響應(yīng)于排他的訪問請(qǐng)求(例如總線RWITM操作)將被請(qǐng)求的存儲(chǔ)塊提供給另一個(gè)一致性域內(nèi)的請(qǐng)求者,在該低級(jí)高速緩存內(nèi)形成Ig狀態(tài)。在本發(fā)明的一些實(shí)施例中,優(yōu)選地僅在包含存儲(chǔ)塊的LPC的一致性域內(nèi)形成Ig狀態(tài)。在這樣的實(shí)施例中,必須實(shí)現(xiàn)某種機(jī)制(例如LPC的部分響應(yīng)以及隨后的組合響應(yīng))以向提供被請(qǐng)求的存儲(chǔ)塊的高速緩存指示LPC位于其局部一致性域內(nèi)。在不支持指示LPC是局部的指示的通信的其他實(shí)施例中,可在每當(dāng)高速緩存響應(yīng)于排他的訪問請(qǐng)求將存儲(chǔ)塊提供給遠(yuǎn)程一致性域時(shí),形成Ig狀態(tài)。
由于包括Ig狀態(tài)的高速緩存目錄項(xiàng)攜帶著可能有用的信息,所以在至少一些實(shí)現(xiàn)內(nèi),希望優(yōu)選地優(yōu)先于I狀態(tài)的項(xiàng)保持Ig狀態(tài)的項(xiàng)(例如,通過修改被用于選擇用于替換的犧牲高速緩存項(xiàng)的最近最少使用(LRU)算法)。因?yàn)镮g目錄項(xiàng)被保持在高速緩存內(nèi),所以一些Ig項(xiàng)可能會(huì)隨時(shí)間而變“陳舊”,因?yàn)槠渑潘脑L問請(qǐng)求導(dǎo)致形成該Ig狀態(tài)的高速緩存可能解除分配或?qū)懟仄浯鎯?chǔ)塊副本,而沒有通知以Ig狀態(tài)保持存儲(chǔ)塊的地址標(biāo)記的高速緩存。在這樣的情況下,不正確地指示應(yīng)發(fā)出全局操作而不是局部操作的“陳舊”Ig狀態(tài)將不會(huì)導(dǎo)致任何一致性錯(cuò)誤,而將僅會(huì)使一些本來可利用局部操作服務(wù)的操作作為全局操作被發(fā)出。這樣的無效率的發(fā)生的持續(xù)時(shí)間將被“陳舊”Ig高速緩存項(xiàng)的最終替換和域指示高速緩存清理所限制,如下文將說明的。
一些規(guī)則管理Ig高速緩存項(xiàng)的選擇和替換。首先,如果高速緩存選擇Ig項(xiàng)作為替換的犧牲者,則擲出Ig項(xiàng)(與選擇I項(xiàng)的情況不同)。其次,如果導(dǎo)致存儲(chǔ)塊被加載到高速緩存中的請(qǐng)求命中相同高速緩存內(nèi)的Ig高速緩存項(xiàng),則高速緩存將Ig命中當(dāng)作是高速緩存缺失,并通過將該Ig項(xiàng)作為被選擇的犧牲者來執(zhí)行擲出操作。這樣,高速緩存避免了將相同地址標(biāo)記的兩個(gè)副本放置在高速緩存目錄內(nèi)。第三,擲出Ig狀態(tài)優(yōu)選地作為局部操作執(zhí)行,或者如果作為全局操作執(zhí)行,則被非局部一致性域的存儲(chǔ)控制器忽略。如果允許Ig項(xiàng)在沒有位于與存儲(chǔ)塊的LPC相同的一致性域內(nèi)的高速緩存內(nèi)形成,則不需要更新LPC內(nèi)的域指示符。第四,擲出Ig狀態(tài)優(yōu)選地作為無數(shù)據(jù)僅地址的操作執(zhí)行,其中將域指示符寫回LPC(如果在執(zhí)行擲出的高速緩存的局部)。
根據(jù)本發(fā)明的Ig狀態(tài)的實(shí)現(xiàn)通過在即使存儲(chǔ)塊的有效副本沒有仍然被高速緩存在一致性域內(nèi)時(shí)仍在該一致性域內(nèi)保持用于該存儲(chǔ)塊的被高速緩存的域指示符,改進(jìn)了通信效率。結(jié)果,用于存儲(chǔ)塊的HPC可服務(wù)于來自遠(yuǎn)程一致性域的排他的訪問請(qǐng)求(例如,總線RWITM操作),而無需重試該請(qǐng)求并將被請(qǐng)求的存儲(chǔ)塊推給LPC。
B.In狀態(tài)In狀態(tài)在此被定義為這樣的高速緩存一致性狀態(tài),其指示(1)高速緩存陣列內(nèi)的關(guān)聯(lián)存儲(chǔ)塊無效,(2)高速緩存目錄內(nèi)的地址標(biāo)記有效,以及(3)該地址標(biāo)記標(biāo)識(shí)的存儲(chǔ)塊的副本很可能僅被局部一致性域內(nèi)的一個(gè)或多個(gè)其他高速緩存層次結(jié)構(gòu)高速緩存(如果被高速緩存的話)。In指示優(yōu)選地不精確,這意味著它可以是不正確的而不會(huì)破壞一致性。響應(yīng)于低級(jí)高速緩存響應(yīng)于排他的訪問請(qǐng)求(例如總線RWITM操作)將被請(qǐng)求的存儲(chǔ)塊提供給相同一致性域內(nèi)的請(qǐng)求者,在該低級(jí)高速緩存內(nèi)形成In狀態(tài)。
由于包括In狀態(tài)的高速緩存目錄項(xiàng)攜帶著可能有用的信息,所以在至少一些實(shí)現(xiàn)中,希望優(yōu)選于I狀態(tài)的項(xiàng)保持In狀態(tài)的項(xiàng)(例如,通過修改被用于選擇用于替換的犧牲高速緩存項(xiàng)的最近最少使用(LRU)算法)。因?yàn)镮n目錄項(xiàng)被保持在高速緩存內(nèi),所以一些In項(xiàng)可能會(huì)隨時(shí)間而變“陳舊”,這是因?yàn)槠渑潘脑L問請(qǐng)求導(dǎo)致形成In狀態(tài)的高速緩存可能自己將該存儲(chǔ)塊的共享副本提供給遠(yuǎn)程一致性域,而不通知以In狀態(tài)保持該存儲(chǔ)塊的地址標(biāo)記的高速緩存。在這樣的情況下,不正確地指示應(yīng)發(fā)出局部操作而不是全局操作的“陳舊”In狀態(tài)將不會(huì)導(dǎo)致任何一致性錯(cuò)誤,而將僅會(huì)使一些操作被首先不正確地作為局部操作而不是全局操作發(fā)出。這樣的無效率的發(fā)生的持續(xù)時(shí)間被“陳舊”In高速緩存項(xiàng)的最終替換所限制。在一優(yōu)選實(shí)施例中,In一致性狀態(tài)中的高速緩存項(xiàng)不是經(jīng)受擲出而僅是簡單地被替換。因此,與Ig高速緩存項(xiàng)不同,In高速緩存項(xiàng)并不用于更新系統(tǒng)存儲(chǔ)器108內(nèi)的域指示符504。
根據(jù)本發(fā)明的In狀態(tài)的實(shí)現(xiàn)通過保持可被主控參考以便為其操作之一選擇局部范圍的存儲(chǔ)塊的被高速緩存的域指示符,改進(jìn)了通信效率。結(jié)果,節(jié)約了在其他一致性域內(nèi)的系統(tǒng)互連110和局部互連114上的帶寬。
C.Sr狀態(tài)在上述操作中,能夠確定以Sr一致性狀態(tài)保持共享的被請(qǐng)求的存儲(chǔ)塊的低級(jí)高速緩存是否與請(qǐng)求主控位于相同域內(nèi)是有用的。在一個(gè)實(shí)施例中,可通過以Sr一致性狀態(tài)保持被請(qǐng)求的存儲(chǔ)塊的低級(jí)高速緩存處的監(jiān)聽器的響應(yīng)行為來指示與請(qǐng)求主控處于相同域內(nèi)的“局部”Sr監(jiān)聽器的存在。例如,假設(shè)每個(gè)總線操作包括指示該總線操作是否越過域邊界的范圍指示符(例如,主控的顯式域指示符或單個(gè)局部/非局部范圍位),以Sr一致性狀態(tài)保持共享存儲(chǔ)塊的低級(jí)高速緩存可僅為相同數(shù)據(jù)提供域內(nèi)的主控的請(qǐng)求提供以Sr狀態(tài)確認(rèn)請(qǐng)求的部分響應(yīng),而為所有其他的請(qǐng)求提供指示S狀態(tài)的部分響應(yīng)。表III中總結(jié)了在這樣的實(shí)施例中的響應(yīng)行為,其中撇(’)符號(hào)用于指定可能與存儲(chǔ)塊的實(shí)際高速緩存狀態(tài)不同的部分響應(yīng)。
表III

假設(shè)響應(yīng)行為如以上表III中所述,可通過增加可用作數(shù)據(jù)源的在SMP數(shù)據(jù)處理系統(tǒng)內(nèi)分布的存儲(chǔ)塊的共享副本的數(shù)量來大大降低用于共享數(shù)據(jù)的平均數(shù)據(jù)等待時(shí)間。
VII.高速緩存清理操作如上所述,L2高速緩存目錄302內(nèi)保持的Ig目錄項(xiàng)可隨時(shí)間變“陳舊”,這是因?yàn)槠渑潘脑L問請(qǐng)求導(dǎo)致形成Ig狀態(tài)的非本地L2高速緩存230可能解除分配或者寫回其存儲(chǔ)塊副本,而不通知以Ig狀態(tài)保持該存儲(chǔ)塊的地址標(biāo)記的高速緩存230。在這樣的情況下,該“陳舊”的Ig指示符,其不正確地指示應(yīng)發(fā)出全局操作而不是局部操作來獲得關(guān)聯(lián)存儲(chǔ)塊的副本,將不會(huì)導(dǎo)致任何一致性錯(cuò)誤,而僅會(huì)導(dǎo)致一些本來可利用局部操作來服務(wù)的操作作為全局操作被發(fā)出。類似的,具有顯式的或隱式的“全局”屬性的其他一致性狀態(tài)(例如T和Te)可由于缺少精確的高速緩存狀態(tài)更新機(jī)制而變陳舊。如現(xiàn)在將參照?qǐng)D6A-8B說明的,可通過高速緩存清理來減小這些“陳舊”域指示引起的通信無效率。
首先參照?qǐng)D6A,描述了根據(jù)本發(fā)明的啟動(dòng)高速緩存清理操作的方法的高層流程圖。如圖所示,過程從塊600開始,并隨后轉(zhuǎn)到塊602,該塊602描述了初始化高速緩存清理邏輯250內(nèi)的一個(gè)或多個(gè)控制寄存器252a-252n以建立高速緩存清理操作的參數(shù)。在一個(gè)實(shí)施例中,這些參數(shù)至少包括將被清理的一個(gè)或多個(gè)目標(biāo)實(shí)存儲(chǔ)地址的指示,并且還可包括將在目標(biāo)地址上執(zhí)行的清理操作的類型的指示。例如,高速緩存清理邏輯250可支持一種或多種以下類型的高速緩存清理操作(1)被動(dòng)高速緩存清理操作,在該操作中,如果可能的話,根據(jù)對(duì)數(shù)據(jù)處理系統(tǒng)的非破壞性探查的響應(yīng),更新與存儲(chǔ)塊相關(guān)聯(lián)的域指示(例如域指示符504)以指示“局部”,或(2)主動(dòng)高速緩存清理操作,在該操作中,響應(yīng)于傳輸?shù)綌?shù)據(jù)處理系統(tǒng)內(nèi)的高速緩沖存儲(chǔ)器的可能破壞性的請(qǐng)求,強(qiáng)制復(fù)位與存儲(chǔ)塊相關(guān)聯(lián)的域指示(例如域指示符504)以指示“局部”。
盡管可能有其他實(shí)施例,但是為了便于實(shí)現(xiàn),在此假設(shè)L2高速緩存230的高速緩存清理邏輯250的控制寄存器252可僅被初始化為清理分配給與高速緩存清理邏輯250處于相同一致性域內(nèi)的系統(tǒng)存儲(chǔ)器108的目標(biāo)地址。高速緩存清理邏輯250可例如參考BAR邏輯240或類似的與L2高速緩存230相關(guān)聯(lián)的基址寄存器,驗(yàn)證控制寄存器252a-252n的設(shè)置指定的目標(biāo)地址被分配給其一致性域內(nèi)的一個(gè)或多個(gè)系統(tǒng)存儲(chǔ)器108。在此實(shí)施例中,高速緩存清理邏輯250簡單地忽略分配給在L2高速緩存230的局部一致性域之外的系統(tǒng)存儲(chǔ)器108的目標(biāo)地址。
如圖6A的塊602所示的控制寄存器252的初始化可由例如軟件或固件通過執(zhí)行一個(gè)或多個(gè)存儲(chǔ)器映射I/O寫操作來執(zhí)行,或者作為選擇或附加通過由執(zhí)行單元224(例如LSU 228)的執(zhí)行或處理高速緩存清理指令來執(zhí)行。例如,圖8A示出包括操作碼字段802和操作數(shù)字段804的一示例性高速緩存清理指令800的格式。在一個(gè)實(shí)施例中,操作碼字段802支持包括第一二進(jìn)制值和第二二進(jìn)制值的值,該第一二進(jìn)制值指定由助記的數(shù)據(jù)高速緩存塊域查詢(DCBDQ)表示的被動(dòng)高速緩存清理操作,該第二二進(jìn)制值指定由助記的數(shù)據(jù)高速緩存塊域復(fù)位(DCBDR)表示的主動(dòng)高速緩存清理操作。操作數(shù)字段804利用傳統(tǒng)尋址模式標(biāo)識(shí)高速緩存清理操作的一個(gè)或多個(gè)目標(biāo)高速緩存塊。如圖8B所述,高速緩存清理指令800通常形成至少部分地存儲(chǔ)在計(jì)算機(jī)可用介質(zhì)(例如計(jì)算機(jī)存儲(chǔ)器108)內(nèi)并且要被處理器核心200執(zhí)行或處理的計(jì)算機(jī)可用程序代碼806的一部分。
在塊602所示的初始化之后,圖6A中所示的過程轉(zhuǎn)到塊604,該塊描述L2高速緩存230的主控232的高速緩存清理邏輯250為將被清理的每個(gè)目標(biāo)地址在互連114、110上發(fā)出各自的全局范圍的高速緩存清理請(qǐng)求。例如,可響應(yīng)于高速緩存清理邏輯250輪詢一個(gè)或多個(gè)控制寄存器252以檢測控制寄存器252的初始化,或者響應(yīng)于主控232的高速緩存清理邏輯250響應(yīng)于高速緩存清理指令(例如DCBDQ或DCBDR指令)的執(zhí)行從相關(guān)聯(lián)的處理器核心200接受到初始化控制寄存器252的高速緩存清理操作,而發(fā)出高速緩存清理請(qǐng)求。在互連114、110上發(fā)出的高速緩存清理請(qǐng)求優(yōu)選地指示目標(biāo)地址,以及如果實(shí)現(xiàn)多于一種類型的高速緩存清理的話,指示請(qǐng)求被動(dòng)還是主動(dòng)高速緩存清理的事務(wù)類型。此后,被動(dòng)高速緩存清理請(qǐng)求被稱為“域查詢”請(qǐng)求,而主動(dòng)高速緩存清理請(qǐng)求被稱為“域復(fù)位”請(qǐng)求。應(yīng)指出,與啟動(dòng)L2高速緩存230中的目標(biāo)存儲(chǔ)塊的一致性狀態(tài)無關(guān)地發(fā)出高速緩存清理請(qǐng)求。
在發(fā)出高速緩存清理請(qǐng)求之后,如塊606所示,主控232的高速緩存清理邏輯250等待對(duì)高速緩存清理請(qǐng)求的系統(tǒng)范圍的組合響應(yīng)(CR)。如果組合響應(yīng)指示“重試”,則過程返回塊604,該塊示出高速緩存清理邏輯250重新發(fā)出高速緩存清理請(qǐng)求。如果組合響應(yīng)不指示“重試”,則高速緩存清理請(qǐng)求成功,并且過程在塊610結(jié)束。
現(xiàn)在參照?qǐng)D6B,描述了根據(jù)本發(fā)明高速緩存監(jiān)聽器例如L2高速緩存監(jiān)聽器236用來處理域查詢請(qǐng)求的方法的高層邏輯流程圖。如圖所示,響應(yīng)于L2高速緩存監(jiān)聽器236在其局部互連114上接收到請(qǐng)求,過程從塊620開始。響應(yīng)于接收到請(qǐng)求,監(jiān)聽器236在塊622確定該請(qǐng)求是否是域查詢請(qǐng)求。如果不是,則如塊624所示,監(jiān)聽器236執(zhí)行其他處理,并且過程在塊660結(jié)束。但是,如果監(jiān)聽器236在塊622確定請(qǐng)求是域查詢請(qǐng)求(包括相同L2高速緩存230內(nèi)的高速緩存清理邏輯250發(fā)起的域查詢請(qǐng)求),則監(jiān)聽器236在塊630進(jìn)一步確定它目前是否能夠?qū)嵸|(zhì)上響應(yīng)域查詢請(qǐng)求(例如,它是否具有監(jiān)聽邏輯的可用實(shí)例以及對(duì)L2高速緩存目錄302的當(dāng)前訪問)。如果監(jiān)聽器236目前不能實(shí)質(zhì)上響應(yīng)域查詢請(qǐng)求,則如塊632所示,監(jiān)聽器236提供指示“重試”的部分響應(yīng)(PR),并且域查詢請(qǐng)求的處理在塊660處結(jié)束。
假設(shè)監(jiān)聽器236能夠?qū)嵸|(zhì)上響應(yīng)域查詢請(qǐng)求,監(jiān)聽器236在塊634確定其是否與最初發(fā)出域查詢請(qǐng)求的啟動(dòng)L2高速緩存230處于相同一致性域內(nèi)。例如,監(jiān)聽器236通過檢查域查詢請(qǐng)求內(nèi)包含的范圍位(或者在其他實(shí)施例中,啟動(dòng)L2高速緩存230的域標(biāo)識(shí)符或目標(biāo)地址),進(jìn)行塊634所示的確定。如果監(jiān)聽器236在塊634確定其沒有與啟動(dòng)L2高速緩存230處于相同一致性域內(nèi),則監(jiān)聽器236根據(jù)相對(duì)于其L2高速緩存目錄302的目標(biāo)地址的一致性狀態(tài)提供部分響應(yīng)。就是說,如果監(jiān)聽器236的L2高速緩存目錄302指示目標(biāo)地址具有數(shù)據(jù)有效一致性狀態(tài)(例如M、Me、T、Te、Tn、Ten、Sr或S),則如塊652所示,監(jiān)聽器236提供指示“全局使用中”的部分響應(yīng)。相反,如果監(jiān)聽器236的L2高速緩存目錄302指示目錄地址具有數(shù)據(jù)無效一致性狀態(tài)(例如Ig、In或I),則如塊654所示,監(jiān)聽器236提供指示“非全局使用中”的部分響應(yīng)。在塊652或654之后,過程在塊660結(jié)束。
返回塊634,如果監(jiān)聽器236確定其處于與啟動(dòng)L2高速緩存230相同的一致性域(即在其局部),則如塊636所示,監(jiān)聽器236也確定相對(duì)于其L2高速緩存目錄302的目標(biāo)存儲(chǔ)地址的一致性狀態(tài)。如果目標(biāo)存儲(chǔ)地址不具有記錄在L2高速緩存302內(nèi)的這樣的相關(guān)聯(lián)的一致性狀態(tài),該一致性狀態(tài)顯式或隱式地指示目標(biāo)存儲(chǔ)塊的副本可能被高速緩存在局部一致性域之外(例如,一致性狀態(tài)不同于Ig、T或Te),則不需要執(zhí)行進(jìn)一步的處理,并且處理在塊660結(jié)束。但是,如果監(jiān)聽器236確定域查詢請(qǐng)求的目標(biāo)存儲(chǔ)地址具有記錄在L2高速緩存302內(nèi)的這樣的相關(guān)聯(lián)的一致性狀態(tài),該一致性狀態(tài)顯式或隱式地指示目標(biāo)存儲(chǔ)塊的副本可能被高速緩存在局部一致性域之外(例如,一致性狀態(tài)為Ig、T或Te),則如塊638所示,監(jiān)聽器236等待對(duì)域查詢請(qǐng)求的組合請(qǐng)求。
如上所述,響應(yīng)邏輯210的至少一個(gè)實(shí)例(例如啟動(dòng)處理單元104內(nèi)的響應(yīng)邏輯210)組合響應(yīng)于域查詢請(qǐng)求生成的部分響應(yīng)以確定組合響應(yīng)。在一個(gè)實(shí)施例中,響應(yīng)邏輯210根據(jù)表IV生成組合邏輯,在該表中“Y”指示部分響應(yīng)的存在,“X”代表“無所謂”,而破折號(hào)(“-”)代表沒有部分響應(yīng)。
表IV

因此,在此實(shí)施例中,如果任何監(jiān)聽器236、222提供了指示“重試”的部分響應(yīng),則不管存在還是不存在任何其他部分響應(yīng),組合響應(yīng)邏輯210都生成指示“重試”的組合響應(yīng)。如果沒有監(jiān)聽器236、222生成指示“重試”的部分響應(yīng),并且至少一個(gè)監(jiān)聽器236生成指示“全局使用中”的部分響應(yīng),則組合響應(yīng)邏輯210生成指示“全局使用中”的組合響應(yīng)。最后,如果沒有監(jiān)聽器236、222生成指示“重試”或“全局使用中”的部分響應(yīng),則組合響應(yīng)邏輯210生成指示“非全局使用中”的組合響應(yīng)。
響應(yīng)于接收到對(duì)域查詢請(qǐng)求的組合響應(yīng),監(jiān)聽器236在塊640確定該組合響應(yīng)是否指示目標(biāo)存儲(chǔ)塊為“非全局使用中”(即,目標(biāo)存儲(chǔ)塊僅被高速緩存在局部一致性域內(nèi)(如果它被高速緩存的話))。如果組合響應(yīng)不指示目標(biāo)存儲(chǔ)塊是“非全局使用中”,則不需要執(zhí)行進(jìn)一步的處理,并且過程在塊660處結(jié)束。但是,如果域查詢請(qǐng)求的組合響應(yīng)指示目標(biāo)存儲(chǔ)塊為“非全局使用中”,則監(jiān)聽器236優(yōu)選地將其L2高速緩存目錄302內(nèi)的與目標(biāo)地址相關(guān)聯(lián)的項(xiàng)從Ig更新到In,或從T更新到Tn,或從Te更新到Ten。這樣,更新目標(biāo)存儲(chǔ)塊的一致性狀態(tài)以反映對(duì)域查詢請(qǐng)求的系統(tǒng)范圍的響應(yīng)提供的域信息。
現(xiàn)參照?qǐng)D6C,描述了根據(jù)本發(fā)明存儲(chǔ)控制器監(jiān)聽器例如監(jiān)聽器222用來處理被動(dòng)域查詢請(qǐng)求的方法的高層邏輯流程圖。如圖所示,響應(yīng)于存儲(chǔ)控制器監(jiān)聽器222在其局部互連114上接收到請(qǐng)求,過程從塊670開始。響應(yīng)于接收到請(qǐng)求,監(jiān)聽器222在塊672確定該請(qǐng)求是否是域查詢請(qǐng)求。如果不是,則如塊674所示,監(jiān)聽器222執(zhí)行其他處理并且過程在塊692處結(jié)束。但是,如果監(jiān)聽器222在塊672確定該請(qǐng)求是域查詢請(qǐng)求,則監(jiān)聽器222在塊676進(jìn)一步確定其目前是否能夠?qū)嵸|(zhì)上響應(yīng)該域查詢請(qǐng)求(例如,其是否具有監(jiān)聽邏輯的可用實(shí)例)。如果監(jiān)聽器222目前不能實(shí)質(zhì)上響應(yīng)該域查詢請(qǐng)求,則如塊678所示,監(jiān)聽器222提供指示“重試”的部分響應(yīng)(PR),并且域查詢請(qǐng)求的處理在塊692結(jié)束。
假設(shè)監(jiān)聽器222目前能夠?qū)嵸|(zhì)上響應(yīng)域查詢請(qǐng)求,則如塊680所示,監(jiān)聽器222任選地提供“非全局使用中”部分請(qǐng)求,并且如塊682所示,確定其是否是用于目標(biāo)地址的LPC。例如,監(jiān)聽器222可通過參考BAR邏輯240進(jìn)行如塊682所示的確定。如果監(jiān)聽器222在塊682確定其不是用于目標(biāo)地址的LPC,則不需要進(jìn)一步處理域查詢請(qǐng)求,并且過程在塊692結(jié)束。
返回參照塊682,如果監(jiān)聽器222確定其是用于目標(biāo)地址的LPC,則如塊684所示,監(jiān)聽器222等待對(duì)域查詢請(qǐng)求的組合響應(yīng)。響應(yīng)于接收到對(duì)域查詢請(qǐng)求的組合響應(yīng),監(jiān)聽器222在塊686和688確定組合響應(yīng)是否指示目標(biāo)存儲(chǔ)塊是“非全局使用中”(即,目保存儲(chǔ)塊被高速緩存在局部一致性域之內(nèi)(如果被高速緩存的話))。如果組合響應(yīng)未指示目標(biāo)存儲(chǔ)塊是“非全局使用中”,則監(jiān)聽器222不需要執(zhí)行進(jìn)一步的處理,并且過程在塊692結(jié)束。但是,如果域查詢請(qǐng)求的組合響應(yīng)指示目標(biāo)存儲(chǔ)塊是“非全局使用中”,則監(jiān)聽器222利用讀-修改-寫操作來復(fù)位系統(tǒng)存儲(chǔ)器108內(nèi)的目標(biāo)存儲(chǔ)塊的域指示符504以指示“局部”(塊690)。這樣,在系統(tǒng)存儲(chǔ)器108內(nèi)更新目標(biāo)存儲(chǔ)塊的域指示符504以反映對(duì)域查詢請(qǐng)求的系統(tǒng)范圍的響應(yīng)所提供的域信息。此后,過程在塊692結(jié)束。
現(xiàn)在參照?qǐng)D7A,示出根據(jù)本發(fā)明高速緩存監(jiān)聽器例如L2高速緩存監(jiān)聽器236用來處理主動(dòng)高速緩存清理請(qǐng)求(即域復(fù)位請(qǐng)求)的方法的高層邏輯流程圖。如圖所示,響應(yīng)于L2高速緩存監(jiān)聽器236在其局部互連114上接收到請(qǐng)求,過程在塊700開始。響應(yīng)于接收到請(qǐng)求,監(jiān)聽器236在塊702確定該請(qǐng)求是否是域復(fù)位請(qǐng)求。如果不是,則如塊704所示,監(jiān)聽器236執(zhí)行其他處理并且過程在塊740處結(jié)束。但是,如果監(jiān)聽器236在塊702確定請(qǐng)求是域復(fù)位請(qǐng)求(包括由相同L2高速緩存230內(nèi)的高速緩存清理邏輯250發(fā)起的域復(fù)位請(qǐng)求),則監(jiān)聽器236進(jìn)一步在塊706確定其目前是否能夠?qū)嵸|(zhì)上響應(yīng)域復(fù)位請(qǐng)求(例如,其是否具有監(jiān)聽邏輯的可用實(shí)例和對(duì)L2高速緩存目錄302的當(dāng)前訪問)。如果監(jiān)聽器236目前不能實(shí)質(zhì)上響應(yīng)域復(fù)位請(qǐng)求,則如塊708所示,監(jiān)聽器236提供指示“重試”的部分響應(yīng)(PR),并且域復(fù)位請(qǐng)求的處理在塊740結(jié)束。
假設(shè)監(jiān)聽器236能夠?qū)嵸|(zhì)上響應(yīng)域復(fù)位請(qǐng)求,則監(jiān)聽器236在塊710其是否處于與最初發(fā)出域復(fù)位請(qǐng)求的啟動(dòng)L2高速緩存230相同的一致性域內(nèi)。例如,監(jiān)聽器236可通過檢查域復(fù)位請(qǐng)求內(nèi)包含的范圍位(或者在其他實(shí)施例中,啟動(dòng)L2高速緩存230的域標(biāo)識(shí)符或目標(biāo)地址),進(jìn)行塊710所示的確定。如果監(jiān)聽器236在塊710確定其沒有處于與啟動(dòng)L2高速緩存230相同的一致性域內(nèi),則監(jiān)聽器236還確定相對(duì)于其L2高速緩存目錄302的目標(biāo)地址的一致性狀態(tài)。如果如從塊720和730到塊734的過程指示的,監(jiān)聽器236的L2高速緩存目錄302指示為該存儲(chǔ)塊存儲(chǔ)的一致性狀態(tài)是I或Ig,則監(jiān)聽器236提供指示“成功”的部分響應(yīng)。此后,監(jiān)聽器236的處理在塊740結(jié)束。
返回塊720,如果監(jiān)聽器236的L2高速緩存目錄302指示為該存儲(chǔ)塊存儲(chǔ)的一致性狀態(tài)為M、T或Tn,這意味著相對(duì)于系統(tǒng)存儲(chǔ)器108修改了目標(biāo)存儲(chǔ)塊的副本,則如塊722所示,監(jiān)聽器236通過將被修改的存儲(chǔ)塊推入系統(tǒng)存儲(chǔ)器108來更新系統(tǒng)存儲(chǔ)器,并如塊724所示,將L2高速緩存目錄302內(nèi)記錄的關(guān)聯(lián)的一致性狀態(tài)更新為I。另外,如在塊726所示,監(jiān)聽器236提供指示“重試”的部分響應(yīng),從而當(dāng)啟動(dòng)L2高速緩存230重新發(fā)出域復(fù)位請(qǐng)求時(shí),如塊734所示,監(jiān)聽器236可提供指示“成功”的部分響應(yīng)。在塊726之后,監(jiān)聽器236對(duì)域復(fù)位請(qǐng)求的處理在塊740處結(jié)束。
返回塊730,如果監(jiān)聽器236的L2高速緩存目錄302指示目標(biāo)地址具有某種其他的數(shù)據(jù)有效一致性狀態(tài)(例如Me、Te、Ten、Sr或S),則如塊732所示,監(jiān)聽器236將一致性狀態(tài)更新為I,并如塊734所示提供指示“成功”的部分響應(yīng)。在塊734之后,過程在塊740結(jié)束。
返回參照塊710,如果監(jiān)聽器236確定其與啟動(dòng)L2高速緩存230處于相同的一致性域(即在其局部),則如塊712所示,監(jiān)聽器236也確定相對(duì)于其L2高速緩存目錄302的目標(biāo)存儲(chǔ)地址的一致性狀態(tài)。如果目標(biāo)存儲(chǔ)地址不具有記錄在L2高速緩存302內(nèi)的這樣的相關(guān)聯(lián)的一致性狀態(tài),該一致性狀態(tài)顯式或隱式地指示目標(biāo)存儲(chǔ)塊的副本可能被高速緩存在局部一致性域之外(例如,一致性狀態(tài)不同于Ig、T或Te),則不需要執(zhí)行進(jìn)一步的處理,并且過程在塊740結(jié)束。但是,如果監(jiān)聽器236確定域查詢請(qǐng)求的目標(biāo)存儲(chǔ)地址具有記錄在L2高速緩存302內(nèi)的這樣的相關(guān)聯(lián)的一致性狀態(tài),該一致性狀態(tài)顯式或隱式地指示目標(biāo)存儲(chǔ)塊的副本可能被高速緩存在局部一致性域之外(例如,一致性狀態(tài)為Ig、T或Te),則如塊714所示,監(jiān)聽器236等待對(duì)域查詢請(qǐng)求的組合響應(yīng)。
在一個(gè)實(shí)施例中,響應(yīng)邏輯210根據(jù)表V生成組合邏輯,在該表中“Y”指示部分響應(yīng)的存在,“X”代表“無所謂”,而破折號(hào)(“-”)代表沒有部分響應(yīng)。
表V

因此,在此實(shí)施例中,如果任何監(jiān)聽器236、222提供了指示“重試”的部分響應(yīng),則不管存在還是不存在任何其他部分響應(yīng),組合響應(yīng)邏輯210都生成指示“重試”的組合響應(yīng)。如果沒有監(jiān)聽器236、222生成指示“重試”的部分響應(yīng),而至少一個(gè)監(jiān)聽器236生成指示“成功”的部分響應(yīng),則組合響應(yīng)邏輯210生成指示“成功”的組合響應(yīng)。
響應(yīng)于接收到對(duì)域復(fù)位請(qǐng)求的組合響應(yīng),監(jiān)聽器236在塊714確定該組合邏輯是否指示“成功”(即,目標(biāo)存儲(chǔ)塊僅被高速緩存在局部一致性域內(nèi)(如果它被高速緩存的話))。如果組合響應(yīng)未指示“成功”,則不需要執(zhí)行進(jìn)一步的處理,并且過程在塊740處結(jié)束。但是,如果域復(fù)位請(qǐng)求的組合響應(yīng)指示“成功”,則監(jiān)聽器236優(yōu)選地將其L2高速緩存目錄302內(nèi)的與目標(biāo)地址相關(guān)聯(lián)的項(xiàng)從Ig更新到In,或從T更新到Tn,或從Te更新到Ten。這樣,更新目標(biāo)存儲(chǔ)塊的一致性狀態(tài)以反映對(duì)域查詢請(qǐng)求的系統(tǒng)范圍的響應(yīng)提供的域信息。此后,過程在塊740結(jié)束。
現(xiàn)在參照?qǐng)D7B,示出根據(jù)本發(fā)明存儲(chǔ)控制器監(jiān)聽器例如監(jiān)聽器222用來處理域復(fù)位請(qǐng)求的方法的高層邏輯流程圖。如圖所示,響應(yīng)于存儲(chǔ)控制器監(jiān)聽器222在其局部互連114上接收到請(qǐng)求,過程在塊770開始。響應(yīng)于接收到請(qǐng)求,監(jiān)聽器222在塊722確定該請(qǐng)求是否是域復(fù)位請(qǐng)求。如果不是,則如塊774所示,監(jiān)聽器222執(zhí)行其他處理并且過程在塊790處結(jié)束。但是,如果監(jiān)聽器222在塊772確定該請(qǐng)求是域復(fù)位請(qǐng)求,則監(jiān)聽器222進(jìn)一步在塊776確定其目前是否能夠?qū)嵸|(zhì)上響應(yīng)域復(fù)位請(qǐng)求(例如,其是否具有監(jiān)聽邏輯的可用實(shí)例)。如果監(jiān)聽器222目前不能實(shí)質(zhì)上響應(yīng)域復(fù)位請(qǐng)求,則如塊778所示,監(jiān)聽器222提供指示“重試”的部分響應(yīng)(PR),并且域復(fù)位請(qǐng)求的處理在塊790結(jié)束。
假設(shè)監(jiān)聽器222能夠?qū)嵸|(zhì)上響應(yīng)域復(fù)位請(qǐng)求,則如塊780所示,監(jiān)聽器222任選地提供“成功”部分響應(yīng),并且如塊782所示,確定其是否是用于目標(biāo)地址的LPC。例如,監(jiān)聽器222可通過參考BAR邏輯240進(jìn)行如塊782所示的確定。如果監(jiān)聽器222在塊782確定其不是用于目標(biāo)地址的LPC,則不需要進(jìn)一步處理域復(fù)位請(qǐng)求,并且過程在塊790結(jié)束。
返回參照塊782,如果監(jiān)聽器222確定其是用于目標(biāo)地址的LPC,則如塊784所示,監(jiān)聽器222等待對(duì)域復(fù)位請(qǐng)求的組合響應(yīng)。響應(yīng)于接收到對(duì)域復(fù)位請(qǐng)求的組合響應(yīng),監(jiān)聽器222在塊786確定組合響應(yīng)是否指示“成功”(即,目標(biāo)存儲(chǔ)塊僅被高速緩存在局部一致性域內(nèi)(如果被高速緩存的話))。如果組合響應(yīng)未指示“成功”,則不需要執(zhí)行進(jìn)一步的處理,并且過程在塊790結(jié)束。但是,如果域復(fù)位請(qǐng)求的組合響應(yīng)指示“成功”,則監(jiān)聽器222利用讀-修改-寫操作來復(fù)位系統(tǒng)存儲(chǔ)器108內(nèi)的目標(biāo)存儲(chǔ)塊的域指示符504以指示“局部”(塊788)。這樣,在系統(tǒng)存儲(chǔ)器108內(nèi)更新目標(biāo)存儲(chǔ)塊的域指示符504以反映對(duì)域復(fù)位請(qǐng)求的系統(tǒng)范圍的響應(yīng)提供的域信息。此后,過程在塊692結(jié)束。
如上所述,本發(fā)明提供了一種改進(jìn)的數(shù)據(jù)處理系統(tǒng)、處理單元、高速緩存層次結(jié)構(gòu)和數(shù)據(jù)處理方法,其清理高速緩存以如果可能的話更新局部一致性域中指示存儲(chǔ)塊可能被高速緩存在局部一致性域之外的指示。因此,可以主動(dòng)或被動(dòng)方式執(zhí)行的根據(jù)本發(fā)明的高速緩存清理,可被用來更新被保持在局部一致性域內(nèi)的存儲(chǔ)塊的被高速緩存的副本的一致性狀態(tài),以及在系統(tǒng)存儲(chǔ)器中的域指示。
盡管已參照優(yōu)選實(shí)施例具體示出本發(fā)明,但是本領(lǐng)域內(nèi)的技術(shù)人員將理解其中可在形式和細(xì)節(jié)方面進(jìn)行許多改變而不會(huì)背離本發(fā)明的精神和范圍。例如,盡管已相對(duì)于執(zhí)行指導(dǎo)本發(fā)明的功能的程序代碼的計(jì)算機(jī)系統(tǒng)說明了本發(fā)明的方面,但是應(yīng)理解,作為另一種選擇,本發(fā)明可實(shí)現(xiàn)為與數(shù)據(jù)處理系統(tǒng)一起使用的程序產(chǎn)品。可經(jīng)由多種信號(hào)承載介質(zhì)包括而不局限于不可重寫存儲(chǔ)介質(zhì)(例如CD-ROM)、可重寫存儲(chǔ)介質(zhì)(例如軟盤或硬盤驅(qū)動(dòng)器)以及通信介質(zhì)例如數(shù)字和模擬網(wǎng)絡(luò),將定義本發(fā)明的功能的程序產(chǎn)品傳送給數(shù)據(jù)處理系統(tǒng)。因此,應(yīng)理解這樣的信號(hào)承載介質(zhì)在承載或編碼指導(dǎo)本發(fā)明的功能的計(jì)算機(jī)可讀指令時(shí)代表本發(fā)明的其他可選擇實(shí)施例。
此外,盡管根據(jù)本發(fā)明的高速緩存清理邏輯已作為高速緩存的部件被說明,但是本領(lǐng)域內(nèi)的那些技術(shù)人員將理解,高速緩存清理邏輯可作為替代或作為附加位于數(shù)據(jù)處理系統(tǒng)內(nèi)的其他地方,例如位于存儲(chǔ)控制器(例如IMC 206)內(nèi)或在總線橋內(nèi),或者實(shí)現(xiàn)為連接到互連結(jié)構(gòu)(fabric)的獨(dú)立設(shè)備。在各種實(shí)施例中,高速緩存清理邏輯可實(shí)現(xiàn)為能夠僅執(zhí)行被動(dòng)或主動(dòng)或指示清理之一,或作為另一種選擇,可實(shí)現(xiàn)為選擇性地執(zhí)行任一類型的或指示清理。
在本發(fā)明的另一個(gè)實(shí)施例中,L2高速緩存230內(nèi)的高速緩存清理邏輯250可在圖6A的塊602自初始化,以通過掃描其高速緩存目錄302來識(shí)別這樣的目標(biāo)存儲(chǔ)地址來執(zhí)行或指示清理操作,即這些目標(biāo)存儲(chǔ)地址(1)具有包含L2高速緩存230的一致性域作為主(home)一致性域以及(2)與Ig一致性狀態(tài)或具有顯式或隱式的“遠(yuǎn)程”或“全局”高速緩存指示的其他被選擇的一致性狀態(tài)相關(guān)聯(lián)。在此實(shí)施例中,不需要控制寄存器252的軟件/固件初始化。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)處理方法,所述方法包括局部一致性域內(nèi)的清理邏輯向遠(yuǎn)程一致性域內(nèi)的至少一個(gè)高速緩存層次結(jié)構(gòu)發(fā)出域復(fù)位請(qǐng)求,該域復(fù)位請(qǐng)求強(qiáng)制當(dāng)時(shí)被保持在所述遠(yuǎn)程一致性域內(nèi)的目標(biāo)存儲(chǔ)塊的任何被高速緩存的副本無效;接收對(duì)所述域復(fù)位請(qǐng)求的一致性響應(yīng);以及響應(yīng)于所述一致性響應(yīng)指示所述目標(biāo)存儲(chǔ)塊沒有被高速緩存在所述遠(yuǎn)程一致性域內(nèi),更新所述局部一致性域內(nèi)的域指示以指示所述目標(biāo)存儲(chǔ)塊僅被高速緩存在所述局部一致性域內(nèi),如果它被高速緩存的話。
2.根據(jù)權(quán)利要求1的方法,其中,所述域復(fù)位請(qǐng)求不請(qǐng)求所述目標(biāo)存儲(chǔ)塊的副本。
3.根據(jù)權(quán)利要求1的方法,且還包括響應(yīng)于所述一致性響應(yīng)指示所述目標(biāo)存儲(chǔ)塊沒有被高速緩存在所述遠(yuǎn)程一致性域內(nèi),所述局部一致性域內(nèi)的至少一個(gè)高速緩存層次結(jié)構(gòu)將其相應(yīng)的用于所述目標(biāo)存儲(chǔ)塊的一致性狀態(tài)從第一狀態(tài)更新到第二狀態(tài),該第一狀態(tài)指示所述存儲(chǔ)塊可被高速緩存在所述遠(yuǎn)程一致性域內(nèi),該第二狀態(tài)指示所述目標(biāo)存儲(chǔ)塊僅被高速緩存在所述局部一致性域內(nèi),如果它被高速緩存的話。
4.根據(jù)權(quán)利要求3的方法,其中,所述第一狀態(tài)是第一數(shù)據(jù)無效狀態(tài),且所述第二狀態(tài)是第二數(shù)據(jù)無效狀態(tài)。
5.根據(jù)權(quán)利要求3的方法,其中,所述第一狀態(tài)是第一共享狀態(tài),且所述第二狀態(tài)是第二共享狀態(tài)。
6.根據(jù)權(quán)利要求1的方法,其中,所述更新包括系統(tǒng)存儲(chǔ)器的存儲(chǔ)控制器更新所述域指示。
7.根據(jù)權(quán)利要求1的方法,其中,接收所述一致性響應(yīng)包括接收代表對(duì)所述域復(fù)位請(qǐng)求的系統(tǒng)范圍的響應(yīng)的組合響應(yīng)。
8.根據(jù)權(quán)利要求1的方法,其中,所述清理邏輯響應(yīng)于至少利用所述目標(biāo)存儲(chǔ)塊的目標(biāo)地址初始化控制寄存器,發(fā)出所述域復(fù)位請(qǐng)求。
9.根據(jù)權(quán)利要求1的方法,其中,所述清理邏輯響應(yīng)于所述控制寄存器的所述初始化選擇性地發(fā)出所述域復(fù)位請(qǐng)求而不是發(fā)出非破壞性的域查詢請(qǐng)求。
10.一種裝置,包括包括控制寄存器的清理邏輯裝置,其中所述清理邏輯裝置響應(yīng)于至少利用目標(biāo)存儲(chǔ)塊的目標(biāo)地址初始化所述控制寄存器,向遠(yuǎn)程一致性域內(nèi)的至少一個(gè)高速緩存層次結(jié)構(gòu)發(fā)出域復(fù)位請(qǐng)求,該域復(fù)位請(qǐng)求強(qiáng)制當(dāng)時(shí)被保持在所述遠(yuǎn)程一致性域內(nèi)的所述目標(biāo)存儲(chǔ)塊的任何被高速緩存的副本無效。
11.根據(jù)權(quán)利要求10的裝置,其中,所述域復(fù)位請(qǐng)求不請(qǐng)求所述目標(biāo)存儲(chǔ)塊的副本。
12.根據(jù)權(quán)利要求10的裝置,且還包括包含所述清理邏輯裝置的高速緩沖存儲(chǔ)器。
13.根據(jù)權(quán)利要求12的裝置,且還包括連接到所述高速緩沖存儲(chǔ)器的至少一個(gè)處理器核心。
14.根據(jù)權(quán)利要求10的裝置,且還包括包含所述清理邏輯裝置的系統(tǒng)存儲(chǔ)控制器。
15.根據(jù)權(quán)利要求10的裝置,且還包括包括所述清理邏輯裝置的局部一致性域;包括所述至少一個(gè)高速緩存層次結(jié)構(gòu)的所述遠(yuǎn)程一致性域;在所述局部一致性域內(nèi)的高速緩沖存儲(chǔ)器,其響應(yīng)于接收到指示所述目標(biāo)存儲(chǔ)塊沒有被高速緩存在所述遠(yuǎn)程一致性域內(nèi)的對(duì)所述域復(fù)位請(qǐng)求的一致性響應(yīng),將其相應(yīng)的用于所述目標(biāo)存儲(chǔ)塊的一致性狀態(tài)從第一狀態(tài)更新到第二狀態(tài),該第一狀態(tài)指示所述存儲(chǔ)塊可被高速緩存在所述遠(yuǎn)程一致性域內(nèi),該第二狀態(tài)指示所述目標(biāo)存儲(chǔ)塊僅被高速緩存在所述局部一致性域內(nèi),如果它被高速緩存的話。
16.根據(jù)權(quán)利要求15的裝置,其中,所述第一狀態(tài)是第一數(shù)據(jù)無效狀態(tài),且所述第二狀態(tài)是第二數(shù)據(jù)無效狀態(tài)。
17.根據(jù)權(quán)利要求16的裝置,其中,所述第一狀態(tài)是第一共享狀態(tài),且所述第二狀態(tài)是第二共享狀態(tài)。
18.根據(jù)權(quán)利要求15的裝置,且還包括所述局部一致性域內(nèi)的存儲(chǔ)控制器,其中所述存儲(chǔ)控制器響應(yīng)于所述一致性響應(yīng)指示所述目標(biāo)存儲(chǔ)塊沒有被高速緩存在所述遠(yuǎn)程一致性域內(nèi),更新所述局部一致性域內(nèi)的域指示以指示所述目標(biāo)存儲(chǔ)塊僅被高速緩存在所述局部一致性域內(nèi),如果它被高速緩存的話。
19.根據(jù)權(quán)利要求18的裝置,其中,所述一致性響應(yīng)包括代表對(duì)所述域復(fù)位請(qǐng)求的系統(tǒng)范圍的響應(yīng)的組合響應(yīng)。
全文摘要
局部一致性域內(nèi)的清理邏輯向遠(yuǎn)程一致性域內(nèi)的至少一個(gè)高速緩存層次結(jié)構(gòu)發(fā)出域復(fù)位請(qǐng)求,該域復(fù)位請(qǐng)求強(qiáng)制當(dāng)時(shí)被保持在所述遠(yuǎn)程一致性域內(nèi)的目標(biāo)存儲(chǔ)塊的任何被高速緩存的副本無效。接收到對(duì)所述域復(fù)位請(qǐng)求的一致性響應(yīng)。響應(yīng)于該一致性響應(yīng)指示所述目標(biāo)存儲(chǔ)塊沒有被高速緩存在該遠(yuǎn)程一致性域內(nèi),更新所述局部一致性域內(nèi)的域指示以指示該目標(biāo)存儲(chǔ)塊僅被高速緩存在該局部一致性域內(nèi),如果它被高速緩存的話。
文檔編號(hào)G06F12/08GK1869955SQ20061007851
公開日2006年11月29日 申請(qǐng)日期2006年5月8日 優(yōu)先權(quán)日2005年5月24日
發(fā)明者L·J·克拉克, J·S·小菲爾德, G·L·古思里, W·J·斯塔克, D·E·威廉姆斯 申請(qǐng)人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1