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

數(shù)據(jù)處理的單元、系統(tǒng)和方法

文檔序號(hào):6574430閱讀:253來源:國知局
專利名稱:數(shù)據(jù)處理的單元、系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及數(shù)據(jù)處理,具體地說,涉及高速緩存一致數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)處理。
背景技術(shù)
傳統(tǒng)的對稱多處理器(SMP)計(jì)算機(jī)系統(tǒng)(如服務(wù)器計(jì)算機(jī)系統(tǒng))包括多個(gè)全部連接到系統(tǒng)互連的處理單元,所述系統(tǒng)互連通常包括一個(gè)或多個(gè)地址、數(shù)據(jù)和控制總線。連接到所述系統(tǒng)互連的是系統(tǒng)存儲(chǔ)器,其代表所述多處理器計(jì)算機(jī)系統(tǒng)中的易失性存儲(chǔ)器的最低級別并且通常可由所有處理單元進(jìn)行讀和寫訪問。為了減少對駐留在系統(tǒng)存儲(chǔ)器中的指令和數(shù)據(jù)的訪問等待時(shí)間,每個(gè)處理單元通常都由各自的多級別高速緩存層次結(jié)構(gòu)來進(jìn)一步支持,所述層次結(jié)構(gòu)的較低級別可由一個(gè)或多個(gè)處理器核心所共享。
由于多個(gè)處理器核心可以請求對數(shù)據(jù)的同一高速緩存線的寫訪問并且由于修改后的高速緩存線不會(huì)立即與系統(tǒng)存儲(chǔ)器同步,所以多處理器計(jì)算機(jī)系統(tǒng)的高速緩存層次結(jié)構(gòu)通常實(shí)現(xiàn)高速緩存一致性(coherency)協(xié)議以確保系統(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)信息的一致性消息。在一個(gè)典型實(shí)現(xiàn)中,高速緩存狀態(tài)信息采取公知的MESI(修改、獨(dú)占、共享和無效)協(xié)議或其變型的形式,并且一致性消息指示存儲(chǔ)器訪問請求的請求方和/或接收方的高速緩存層次結(jié)構(gòu)中的協(xié)議定義的一致性狀態(tài)轉(zhuǎn)換。
在某些高速緩存一致性協(xié)議中,不精確地形成和/或更新一個(gè)或多個(gè)一致性狀態(tài)以響應(yīng)后續(xù)的操作。因此,這些一致性狀態(tài)可能沒有準(zhǔn)確地反映關(guān)聯(lián)存儲(chǔ)器塊的系統(tǒng)范圍內(nèi)的一致性狀態(tài)。本發(fā)明認(rèn)識(shí)到不精確或不準(zhǔn)確的一致性狀態(tài)的存在(即使沒有導(dǎo)致一致性錯(cuò)誤)可能導(dǎo)致執(zhí)行系統(tǒng)操作,如果不精確的一致性狀態(tài)被減少或消除,將無需執(zhí)行所述系統(tǒng)操作。

發(fā)明內(nèi)容
鑒于以上所述,本發(fā)明提供了一種改進(jìn)的高速緩存一致數(shù)據(jù)處理系統(tǒng)、高速緩存系統(tǒng)和在高速緩存一致數(shù)據(jù)處理系統(tǒng)中進(jìn)行數(shù)據(jù)處理的方法。
在一個(gè)實(shí)施例中,高速緩存一致數(shù)據(jù)處理系統(tǒng)至少包括第一和第二一致性域。所述第一一致性域包括用于系統(tǒng)存儲(chǔ)器的系統(tǒng)存儲(chǔ)器控制器和具有第一高速緩沖存儲(chǔ)器的第一處理單元。所述第二一致性域包括具有第二高速緩沖存儲(chǔ)器的第二處理單元。在所述第一高速緩沖存儲(chǔ)器中,將與存儲(chǔ)位置和地址標(biāo)記關(guān)聯(lián)的一致性狀態(tài)字段設(shè)置為第一一致性狀態(tài)。響應(yīng)于窺探指定與所述地址標(biāo)記匹配的目標(biāo)地址的獨(dú)占訪問請求,所述第一高速緩沖存儲(chǔ)器至少部分地根據(jù)所述第一一致性狀態(tài)來將第一部分響應(yīng)提供給所述獨(dú)占訪問請求。響應(yīng)于窺探所述獨(dú)占訪問請求,所述存儲(chǔ)器控制器判定其是否負(fù)責(zé)所述目標(biāo)地址,并且至少部分地根據(jù)所述判定的結(jié)果來將第二部分響應(yīng)提供給所述獨(dú)占訪問請求。至少累加所述第一和第二部分響應(yīng)以獲得所述獨(dú)占訪問請求的組合響應(yīng)。所述組合響應(yīng)包括所述目標(biāo)地址的一致性最高點(diǎn)與主系統(tǒng)存儲(chǔ)器的存儲(chǔ)器控制器是否位于同一一致性域中的指示。所述第一高速緩沖存儲(chǔ)器將所述一致性狀態(tài)字段從所述第一一致性狀態(tài)更新為第二一致性狀態(tài)以響應(yīng)所述組合響應(yīng)中的所述指示。
本發(fā)明的所有目標(biāo)、特征和優(yōu)點(diǎn)將在以下詳細(xì)的書面描述中變得顯而易見。


在所附權(quán)利要求書中說明了被認(rèn)為是本發(fā)明特性的新穎特征。但是,當(dāng)結(jié)合附圖閱讀時(shí),通過參考以下對示例性實(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í)空圖;圖5示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的域指示符;圖6是根據(jù)本發(fā)明的高速緩沖存儲(chǔ)器通過其為數(shù)據(jù)處理系統(tǒng)中的處理器核心接收的操作服務(wù)的示例性方法的高級邏輯流程圖;以及圖7A-7C共同形成了根據(jù)本發(fā)明的高速緩存通過其處理窺探的存儲(chǔ)修改操作的示例性方法的高級邏輯流程圖;圖8是根據(jù)本發(fā)明的存儲(chǔ)器控制器通過其處理窺探的存儲(chǔ)修改操作的示例性方法的高級邏輯流程圖;圖9是根據(jù)本發(fā)明的一個(gè)實(shí)施例的通過其分級累加部分響應(yīng)的示例性處理的高級邏輯流程圖;以及圖10是根據(jù)本發(fā)明的一個(gè)實(shí)施例的通過其生成存儲(chǔ)修改操作的組合響應(yīng)的示例性處理的高級邏輯流程圖。
具體實(shí)施例方式
I.示例性數(shù)據(jù)處理系統(tǒng)現(xiàn)在參考附圖,具體地說,參考圖1,其中示出了根據(jù)本發(fā)明的高速緩存一致對稱多處理器(SMP)數(shù)據(jù)處理系統(tǒng)的一個(gè)示例性實(shí)施例的高級方塊圖。如圖所示,數(shù)據(jù)處理系統(tǒng)100包括用于處理數(shù)據(jù)和指令的多個(gè)處理節(jié)點(diǎn)102a、102b。處理節(jié)點(diǎn)102a、102b與系統(tǒng)互連110相連以便傳送地址、數(shù)據(jù)和控制信息。系統(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)為相應(yīng)的集成電路。每個(gè)處理節(jié)點(diǎn)102內(nèi)的處理單元104a-104d都通過本地互連114連接以便進(jìn)行通信,類似于系統(tǒng)互連110,可以使用一個(gè)或多個(gè)總線和/或交換機(jī)來實(shí)現(xiàn)本地互連114。
連接到每個(gè)本地互連114的設(shè)備不僅包括處理單元104,還包括一個(gè)或多個(gè)系統(tǒng)存儲(chǔ)器108a-108d。駐留在系統(tǒng)存儲(chǔ)器108中的數(shù)據(jù)和指令通??梢杂蓴?shù)據(jù)處理系統(tǒng)100的任何處理節(jié)點(diǎn)102中的任何處理單元104中的處理器核心來訪問并修改。在本發(fā)明的備選實(shí)施例中,一個(gè)或多個(gè)系統(tǒng)存儲(chǔ)器108可以被連接到系統(tǒng)互連110,而不是本地互連114。
本領(lǐng)域的技術(shù)人員將理解,SMP數(shù)據(jù)處理系統(tǒng)100可以包括許多額外的未示出的組件,例如互連橋、非易失性存儲(chǔ)裝置、用于連接到網(wǎng)絡(luò)或附加設(shè)備的端口等。由于此類額外組件并不是理解本發(fā)明所必需的,因此它們并未在圖1中示出或在此進(jìn)一步被討論。但是,還應(yīng)當(dāng)理解,本發(fā)明提供的增強(qiáng)可應(yīng)用于各種體系結(jié)構(gòu)的高速緩存一致數(shù)據(jù)處理系統(tǒng)并且絕非限于圖1中示出的通用數(shù)據(jù)處理系統(tǒng)體系結(jié)構(gòu)。
現(xiàn)在參考圖2,其中示出了根據(jù)本發(fā)明的示例性處理單元104的更詳細(xì)的方塊圖。在所示實(shí)施例中,每個(gè)處理單元104包括兩個(gè)用于獨(dú)立地處理指令和數(shù)據(jù)的處理器核心200a、200b。每個(gè)處理器核心200至少包括用于取回和排序指令以便執(zhí)行的指令定序單元(ISU)208和一個(gè)或多個(gè)用于執(zhí)行指令的執(zhí)行單元224。如以下進(jìn)一步討論的,執(zhí)行單元224優(yōu)選地包括用于執(zhí)行引用存儲(chǔ)器塊或?qū)е律梢么鎯?chǔ)器塊的操作的存儲(chǔ)器訪問指令的加載存儲(chǔ)單元(LSU)228。
每個(gè)處理器核心200的操作都由在其最低級別具有共享系統(tǒng)存儲(chǔ)器108a-108d并且在其較高級別具有一個(gè)或多個(gè)級別的高速緩沖存儲(chǔ)器的多級別易失性存儲(chǔ)器層次結(jié)構(gòu)來支持。在所示實(shí)施例中,每個(gè)處理單元104都包括集成存儲(chǔ)器控制器(IMC)206,集成存儲(chǔ)器控制器206控制對其處理節(jié)點(diǎn)102內(nèi)的系統(tǒng)存儲(chǔ)器108a-108d中的相應(yīng)系統(tǒng)存儲(chǔ)器的讀寫訪問,以響應(yīng)從處理器核心200a-200b接收的請求和由窺探器(S)222在本地互連114上窺探的操作。IMC 206包括基地址寄存器(BAR)邏輯240,邏輯240包括定義IMC 206所負(fù)責(zé)的地址的范圍寄存器。
在示例性實(shí)施例中,處理單元104的高速緩沖存儲(chǔ)器層次結(jié)構(gòu)包括每個(gè)處理器核心200內(nèi)的直通存儲(chǔ)(store-through)一級(L1)高速緩存226和由處理單元104的所有處理器核心200a、200b共享的二級(L2)高速緩存230。L2高速緩存230包括L2陣列和目錄234以及高速緩存控制器,所述高速緩存控制器包括主機(jī)232和窺探器236。主機(jī)232發(fā)起本地互連114和系統(tǒng)互連110上的事務(wù)并訪問L2陣列和目錄234,以響應(yīng)從關(guān)聯(lián)的處理器核心200a-200b接收的存儲(chǔ)器訪問(以及其他)請求。窺探器236窺探本地互連114上的操作、提供相應(yīng)的響應(yīng),并執(zhí)行操作所需的對L2陣列和目錄234的任何訪問。
盡管示出的高速緩存層次結(jié)構(gòu)僅包括兩級高速緩存,但是本領(lǐng)域的技術(shù)人員將理解,備選實(shí)施例可以包括其他級別(L3、L4、L5等)的片上或片外嵌入或旁視高速緩存,其可以完全包括、部分包括或不包括較高級別的高速緩存的內(nèi)容。
每個(gè)處理單元104還包括響應(yīng)邏輯210的實(shí)例,該實(shí)例實(shí)現(xiàn)在數(shù)據(jù)處理系統(tǒng)100內(nèi)維持高速緩存一致性的分布式一致性發(fā)信號(hào)機(jī)制的一部分。此外,每個(gè)處理單元104包括用于在其本地互連114和系統(tǒng)互連110之間選擇性地轉(zhuǎn)發(fā)通信的互連邏輯212的實(shí)例。最后,每個(gè)處理單元104包括支持附加一個(gè)或多個(gè)I/O設(shè)備(如I/O設(shè)備216)的集成I/O(輸入/輸出)控制器214。I/O控制器214可以響應(yīng)于I/O設(shè)備216的請求而在本地互連114和/或系統(tǒng)互連110上發(fā)布操作。
現(xiàn)在參考圖3,其中示出了L2陣列和目錄234的示例性實(shí)施例的更詳細(xì)的方塊圖。如圖所示,L2陣列和目錄234包括一組相關(guān)的L2高速緩存陣列300和L2高速緩存陣列300的內(nèi)容的L2高速緩存目錄302。如在傳統(tǒng)的一組相關(guān)高速緩存中,利用系統(tǒng)存儲(chǔ)器(真實(shí))地址中的預(yù)定索引位將系統(tǒng)存儲(chǔ)器108中的存儲(chǔ)器單元映射到高速緩存陣列300中的特定一致類。存儲(chǔ)在高速緩存陣列300中的特定高速緩存線被記錄在高速緩存目錄302中,高速緩存目錄302包含一個(gè)用于高速緩存陣列300中的每個(gè)高速緩存線的目錄表項(xiàng)。如本領(lǐng)域的技術(shù)人員所理解的,高速緩存目錄302中的每個(gè)目錄表項(xiàng)至少包括標(biāo)記字段304(其利用相應(yīng)真實(shí)地址的標(biāo)記部分指定了存儲(chǔ)在高速緩存陣列300中的特定高速緩存線)、狀態(tài)字段306(其指示高速緩存線的一致性狀態(tài))以及LRU(最近最少使用)字段308(其指示了相對于同一一致類中的其他高速緩存線而言的高速緩存線的替換順序)。
II.示例性操作現(xiàn)在參考圖4,其中示出了圖1的數(shù)據(jù)處理系統(tǒng)100的本地或系統(tǒng)互連110、114上的示例性操作的時(shí)空圖。當(dāng)L2高速緩存230的主機(jī)232(或其他主機(jī),如I/O控制器214)在本地互連114和/或系統(tǒng)互連110上發(fā)出請求402時(shí),操作開始。請求402優(yōu)選地包括事務(wù)類型(指示期望的訪問類型)和資源標(biāo)識(shí)符(例如真實(shí)地址,指示所述請求將訪問的資源)。常見的請求類型優(yōu)選地包括那些在下表I中說明的類型。
表I


請求402由L2高速緩存230的窺探器236以及存儲(chǔ)器控制器206(圖1)的窺探器222接收。通常(存在某些例外),由于僅當(dāng)處理單元104無法內(nèi)部地為請求402服務(wù)時(shí),請求402才在本地互連114和/或系統(tǒng)互連110上傳輸,所以在與請求402的主機(jī)232處于同一L2高速緩存230中的窺探器236不會(huì)窺探請求402(即,通常沒有自窺探)。每個(gè)接收請求402的窺探器222、236都可以提供代表至少該窺探器對請求402的響應(yīng)的相應(yīng)部分響應(yīng)406。存儲(chǔ)器控制器206中的窺探器222根據(jù)例如窺探器222是否負(fù)責(zé)請求地址以及其是否具有可用于為所述請求服務(wù)的資源來確定部分響應(yīng)406。L2高速緩存230的窺探器236可以根據(jù)例如其L2高速緩存目錄302的可用性、窺探器236內(nèi)處理所述請求的窺探邏輯實(shí)例的可用性以及與L2高速緩存目錄302中的請求地址關(guān)聯(lián)的一致性狀態(tài)來確定其部分請求406。
窺探器222和236的部分響應(yīng)由響應(yīng)邏輯210的一個(gè)或多個(gè)實(shí)例分步或立即邏輯地組合以確定對請求402的系統(tǒng)范圍的組合響應(yīng)(CR)410。根據(jù)下面討論的范圍限制,響應(yīng)邏輯210通過其本地互連114和/或系統(tǒng)互連110將組合響應(yīng)410提供給主機(jī)232和窺探器222、236以指示對請求402的系統(tǒng)范圍的響應(yīng)(例如,成功、失敗、重試等)。如果CR 410指示請求402成功,則CR 410可以指示例如請求的存儲(chǔ)器塊的數(shù)據(jù)源、其中將被主機(jī)232緩存的所述請求的存儲(chǔ)器塊的高速緩存狀態(tài),以及是否需要無效一個(gè)或多個(gè)L2高速緩存230中的請求的存儲(chǔ)器塊的“清空”(例如,KILL)操作。
響應(yīng)于接收到組合響應(yīng)410,一個(gè)或多個(gè)主機(jī)232和窺探器222、236通常執(zhí)行一個(gè)或多個(gè)操作以便為請求402服務(wù)。這些操作可以包括向主機(jī)232提供數(shù)據(jù)、無效或更新一個(gè)或多個(gè)L2高速緩存230中緩存的數(shù)據(jù)的一致性狀態(tài)、執(zhí)行驅(qū)逐操作、將數(shù)據(jù)寫回系統(tǒng)存儲(chǔ)器108等。如果請求402需要,在響應(yīng)邏輯210生成組合響應(yīng)410之前或之后,請求或目標(biāo)存儲(chǔ)器塊可以被傳輸?shù)街鳈C(jī)232或從主機(jī)232傳輸請求或目標(biāo)存儲(chǔ)器塊。
在以下描述中,將根據(jù)請求指定的請求地址參考窺探器是一致性最高點(diǎn)(HPC)、一致性最低點(diǎn)(LPC)還是兩者皆不是來描述窺探器222、236對所述請求的部分響應(yīng)以及由所述窺探器響應(yīng)于所述請求和/或其組合響應(yīng)而執(zhí)行的操作。LPC在此被定義為用作存儲(chǔ)器塊的庫的控制點(diǎn)的存儲(chǔ)器設(shè)備或I/O設(shè)備。在沒有用于存儲(chǔ)器塊的HPC的情況下,LPC控制對持有存儲(chǔ)器塊的真實(shí)映像的存儲(chǔ)的訪問,并具有許可或拒絕生成所述存儲(chǔ)器塊的附加高速緩存副本的請求的授權(quán)。對于圖1和2的數(shù)據(jù)處理系統(tǒng)實(shí)施例中的典型請求,所述LPC將是持有所述引用的存儲(chǔ)器塊的系統(tǒng)存儲(chǔ)器108的存儲(chǔ)器控制器206。HPC在此被定義為緩存所述存儲(chǔ)器塊(其與LPC處的相應(yīng)存儲(chǔ)器塊可能一致,也可能不一致)的真實(shí)映像的唯一標(biāo)識(shí)的設(shè)備并具有許可或拒絕修改存儲(chǔ)器塊的請求的授權(quán)。說明性地,HPC還可以響應(yīng)于不修改所述存儲(chǔ)器塊的操作而向請求方提供所述存儲(chǔ)器塊的副本。因此,對于圖1和2的數(shù)據(jù)處理系統(tǒng)實(shí)施例中的典型請求,HPC(如果存在)將是L2高速緩存230。如下面參考表II進(jìn)一步描述的,盡管其他指示符可以被用來為存儲(chǔ)器塊指定HPC,但是本發(fā)明的優(yōu)選實(shí)施例利用L2高速緩存230的L2高速緩存目錄302內(nèi)的選定高速緩存一致性狀態(tài)(多個(gè))來為存儲(chǔ)器塊指定HPC(如果存在)。
仍然參考圖4,用于在請求402中引用的存儲(chǔ)器塊的HPC(如果存在),或在沒有HPC的情況下,所述存儲(chǔ)器塊的LPC優(yōu)選地具有保護(hù)存儲(chǔ)器塊的所有權(quán)的轉(zhuǎn)移以響應(yīng)保護(hù)窗口404a期間的請求402的責(zé)任。在圖4中示出的示例性情況中,窺探器236(其是用于由請求402的請求地址指定的存儲(chǔ)器塊的HPC)在保護(hù)窗口404a期間(從窺探器236確定其部分響應(yīng)406時(shí)延伸到窺探器236接收到組合響應(yīng)410時(shí)為止)保護(hù)將所請求的存儲(chǔ)器塊的所有權(quán)轉(zhuǎn)移到主機(jī)232。在保護(hù)窗口404a期間,窺探器236通過將部分響應(yīng)406提供給其他請求(指定了相同的請求地址并且阻止其他主機(jī)獲得所有權(quán)直到所有權(quán)已被成功地轉(zhuǎn)移到主機(jī)232為止)來保護(hù)所有權(quán)的轉(zhuǎn)移。主機(jī)232在接收到組合響應(yīng)410后同樣啟動(dòng)一個(gè)保護(hù)窗口404b來保護(hù)其在請求402中請求的存儲(chǔ)器塊的所有權(quán)。
由于窺探器222、236都具有用于處理上述的CPU和I/O請求的有限資源,所以若干不同級別的部分響應(yīng)和相應(yīng)的CR是可能的。例如,如果在負(fù)責(zé)請求的存儲(chǔ)器塊的存儲(chǔ)器控制器206中的窺探器222具有可用于處理請求的隊(duì)列,則窺探器222可以響應(yīng)以指示其能夠用作所述請求的LPC的部分響應(yīng)。另一方面,如果窺探器222沒有可用于處理請求的隊(duì)列,則窺探器222可以響應(yīng)以指示其是存儲(chǔ)器塊的LPC,但是當(dāng)前無法為所述請求服務(wù)的部分響應(yīng)。
類似地,L2高速緩存230中的窺探器236可能需要窺探邏輯的可用實(shí)例并訪問L2高速緩存目錄302以便處理請求。缺少對這些資源中的任一資源(或兩者)的訪問將導(dǎo)致發(fā)信號(hào)告知由于缺少所需資源而當(dāng)前無法為所述請求服務(wù)的部分響應(yīng)(以及相應(yīng)的CR)。
此后,提供了指示窺探器具有當(dāng)前為請求服務(wù)所需的全部內(nèi)部資源的部分響應(yīng)的窺探器222、236(如果需要)被稱為“確認(rèn)”請求。對于窺探器236,確認(rèn)了窺探操作的部分響應(yīng)優(yōu)選地指示在該窺探器236處的請求或目標(biāo)存儲(chǔ)器塊的高速緩存狀態(tài)。提供了指示窺探器236不具有當(dāng)前為請求服務(wù)所需的全部內(nèi)部資源的部分響應(yīng)的窺探器222、236可以被稱為“可能隱藏”或“無法”為所述請求服務(wù)。由于窺探器236因缺少窺探邏輯的可用實(shí)例或?qū)2高速緩存目錄302的當(dāng)前訪問而無法在以上定義的意義上“確認(rèn)”請求并且從其他主機(jī)232和窺探器222、236的角度,具有未知的一致性狀態(tài),所以此類窺探器236是“可能隱藏的”或“無法”為請求服務(wù)。
III.數(shù)據(jù)傳送域傳統(tǒng)的基于廣播的數(shù)據(jù)處理系統(tǒng)通過廣播通信來處理高速緩存一致性和數(shù)據(jù)傳送這兩者,在傳統(tǒng)的系統(tǒng)中,在系統(tǒng)互連上將所述廣播通信至少傳輸?shù)剿鱿到y(tǒng)中的所有存儲(chǔ)器控制器和高速緩存層次結(jié)構(gòu)。與具有備選體系結(jié)構(gòu)和類似規(guī)模的系統(tǒng)相比,基于廣播的系統(tǒng)傾向于提供降低的訪問等待時(shí)間和更好的共享存儲(chǔ)器塊的數(shù)據(jù)處理和一致性管理。
隨著基于廣播的系統(tǒng)的規(guī)模的擴(kuò)大,系統(tǒng)互連上的通信量倍增,意味著由于需要更多的帶寬用于系統(tǒng)互連上的通信,系統(tǒng)成本隨著系統(tǒng)規(guī)模而急劇增加。即,具有m個(gè)處理器核心(每個(gè)處理器核心都具有n個(gè)事務(wù)的平均通信量)的系統(tǒng)具有m×n的通信量,意味著基于廣播的系統(tǒng)中的通信量成倍地而不是累加性地增加。除了對實(shí)際更大的互連帶寬的要求以外,系統(tǒng)大小的增加具有增加某些訪問等待時(shí)間的副作用。例如,讀取數(shù)據(jù)的訪問等待時(shí)間,在最壞的情況下,由持有處于共享一致性狀態(tài)中的請求存儲(chǔ)器塊(其可以作為請求的數(shù)據(jù)的源)的最遠(yuǎn)低級高速緩存的組合響應(yīng)等待時(shí)間所限制。
為了減少系統(tǒng)互連帶寬要求和訪問等待時(shí)間同時(shí)仍然保留基于廣播的系統(tǒng)的優(yōu)點(diǎn),分布在整個(gè)數(shù)據(jù)處理系統(tǒng)100中的多個(gè)L2高速緩存230被允許持有處于“特殊”共享一致性狀態(tài)中的同一存儲(chǔ)器塊的副本,所述“特殊”共享一致性狀態(tài)允許這些高速緩存使用高速緩存到高速緩存干預(yù)將所述存儲(chǔ)器塊提供給發(fā)出請求的L2高速緩存230。為了實(shí)現(xiàn)用于SMP數(shù)據(jù)處理系統(tǒng)(如數(shù)據(jù)處理系統(tǒng)100)中的共享存儲(chǔ)器塊的多個(gè)并發(fā)和分布的源,必須解決兩個(gè)問題。首先,必須實(shí)現(xiàn)某些管理處于以上提到的“特殊”共享一致性狀態(tài)中的存儲(chǔ)器塊的副本的創(chuàng)建的規(guī)則。其次,必須存在管理哪一個(gè)窺探L2高速緩存230(如果存在)例如響應(yīng)于總線讀取操作或總線RWITM操作將共享存儲(chǔ)器塊提供給發(fā)出請求的L2高速緩存230的規(guī)則。
根據(jù)本發(fā)明,這兩個(gè)問題都通過實(shí)現(xiàn)數(shù)據(jù)源域來解決。具體地說,SMP數(shù)據(jù)處理系統(tǒng)中的每個(gè)域(其中域被定義為包括一個(gè)或多個(gè)參與響應(yīng)數(shù)據(jù)請求的低級(例如,L2)高速緩存)被允許每次只包括一個(gè)持有處于“特殊”共享一致性狀態(tài)中的特定存儲(chǔ)器塊的高速緩存層次結(jié)構(gòu)。該高速緩存層次結(jié)構(gòu),如果當(dāng)同一域中的請求低級高速緩存啟動(dòng)總線讀取類型(例如,讀取或RWITM)操作時(shí)存在,負(fù)責(zé)將請求的存儲(chǔ)器塊作為源提供給發(fā)出請求的低級高速緩存。盡管可以定義許多不同的域大小,但是在圖1的數(shù)據(jù)處理系統(tǒng)100中,如果每個(gè)處理節(jié)點(diǎn)102(即,MCM)都被視為數(shù)據(jù)源域是很方便的。參考表II在下面描述了此類“特殊”共享狀態(tài)(即,Sr)的一個(gè)實(shí)例。
IV.一致性域盡管實(shí)現(xiàn)上述數(shù)據(jù)傳送域改進(jìn)了數(shù)據(jù)訪問等待時(shí)間,但是此改進(jìn)并未解決隨著系統(tǒng)規(guī)模增加而出現(xiàn)的通信量的m×n倍增。為了減少通信量同時(shí)仍然維持基于廣播的一致性機(jī)制,本發(fā)明的優(yōu)選實(shí)施例額外地實(shí)現(xiàn)了一致性域,其類似于此前描述的數(shù)據(jù)傳送域,可以方便地(但不是必需的)用每個(gè)形成單獨(dú)的一致性域的處理節(jié)點(diǎn)102來實(shí)現(xiàn)。數(shù)據(jù)傳送域和一致性域可以(但并不要求)是同延的,并且出于解釋數(shù)據(jù)處理系統(tǒng)100的示例性操作的目的,此后將被假設(shè)為具有由處理節(jié)點(diǎn)102定義的邊界。
通過限制在系統(tǒng)互連110上的域內(nèi)廣播通信,在其中請求可以由少于所有一致性域的域參與提供服務(wù)的情況下,一致性域的實(shí)現(xiàn)減少了系統(tǒng)通信量。例如,如果處理節(jié)點(diǎn)102a的處理單元104a具有總線讀取操作要發(fā)布,則處理單元104a可以選擇首先將所述總線讀取操作廣播到其自己的一致性域(例如,處理節(jié)點(diǎn)102a)內(nèi)的所有參與者,但是不廣播到其他一致性域(例如,處理節(jié)點(diǎn)102b)中的參與者。僅傳送到那些與操作的主機(jī)在同一一致性域中的參與者的廣播操作在此被定義為“本地操作”。如果可以在處理單元104a的一致性域中為本地總線讀取操作服務(wù),則不執(zhí)行總線讀取操作的進(jìn)一步廣播。但是,如果對本地總線讀取操作的部分響應(yīng)和組合響應(yīng)指示無法單獨(dú)在處理單元104a的一致性域中為總線讀取操作服務(wù),則廣播的范圍可以被擴(kuò)展到包括(除了本地一致性域以外)一個(gè)或多個(gè)其他一致性域。
在一種基本實(shí)施方式中,采用了兩個(gè)廣播范圍只包括本地一致性域的“本地”范圍和包括SMP數(shù)據(jù)處理系統(tǒng)中的所有其他一致性域的“全局”范圍。因此,被傳送到SMP數(shù)據(jù)處理系統(tǒng)中的所有一致性域的操作在此被定義為“全局操作”。重要的是,無論是否采用本地操作或更大擴(kuò)展范圍的操作(例如,全局操作)來為操作服務(wù),都將在SMP數(shù)據(jù)處理系統(tǒng)中的所有一致性域之間維護(hù)高速緩存一致性。在美國專利申請No.11/055,305(其全部內(nèi)容在此引入作為參考)中詳細(xì)描述了本地和全局操作的實(shí)例。
在一個(gè)優(yōu)選實(shí)施例中,由本地/全局范圍指示符(信號(hào))指示總線操作中的操作的范圍,在一個(gè)實(shí)施例中,所述指示符可以包括1-位標(biāo)志。處理單元104中的轉(zhuǎn)發(fā)邏輯212優(yōu)選地根據(jù)操作中的本地/全局范圍指示符(信號(hào))的設(shè)置來確定是否將通過本地互連114接收到的操作轉(zhuǎn)發(fā)到系統(tǒng)互連110上。
在本說明中,如果一致性域(或處理節(jié)點(diǎn))包含存儲(chǔ)器塊的LPC,則將該一致性域稱為所述存儲(chǔ)器塊的“主”一致性域(或“主”節(jié)點(diǎn))。
V.域指示符為了限制不需要的本地操作的發(fā)布并由此減少操作等待時(shí)間并節(jié)約本地互連上的附加帶寬,本發(fā)明優(yōu)選地實(shí)現(xiàn)每存儲(chǔ)器塊的域指示符,該指示符指示關(guān)聯(lián)存儲(chǔ)器塊的副本是否被緩存在本地一致性域之外。例如,圖5示出了根據(jù)本發(fā)明的域指示符的第一示例性實(shí)現(xiàn)。如圖5所示,系統(tǒng)存儲(chǔ)器108(其可以以動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)實(shí)現(xiàn))存儲(chǔ)了多個(gè)存儲(chǔ)器塊500。系統(tǒng)存儲(chǔ)器108與每個(gè)存儲(chǔ)器塊500關(guān)聯(lián)地存儲(chǔ)了用來校正存儲(chǔ)器塊500中的錯(cuò)誤(如果存在)的關(guān)聯(lián)錯(cuò)誤校正碼(ECC)502和域指示符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相同的一致性域中的情況下,所述指示符被設(shè)置(例如,設(shè)置成‘1’以指示‘本地’)。否則,重置域指示符504(例如,重置為‘0’以指示‘全局’)。設(shè)置域指示符504以指示“本地”可以被不嚴(yán)密地實(shí)現(xiàn),因?yàn)殄e(cuò)誤設(shè)置“全局”將不會(huì)引起任何一致性錯(cuò)誤,但可能會(huì)導(dǎo)致操作的不需要的全局廣播。
響應(yīng)于操作而作為存儲(chǔ)器塊的源的存儲(chǔ)器控制器206(和L2高速緩存230)優(yōu)選地將關(guān)聯(lián)的域指示符504與請求的存儲(chǔ)器塊一起傳送。
VI.示例性一致性協(xié)議本發(fā)明優(yōu)選地實(shí)現(xiàn)了高速緩存一致性協(xié)議,該協(xié)議旨在影響如上所述的數(shù)據(jù)傳送和一致性域的實(shí)現(xiàn)。在一個(gè)優(yōu)選實(shí)施例中,所述協(xié)議中的高速緩存一致性狀態(tài)除了提供(1)高速緩存是否是存儲(chǔ)器塊的HPC的指示之外,還指示(2)高速緩存的副本在該存儲(chǔ)器層次結(jié)構(gòu)級別的高速緩存之間是否唯一(即,是系統(tǒng)范圍內(nèi)僅有的高速緩存副本),(3)所述高速緩存是否以及何時(shí)可以將存儲(chǔ)器塊的副本提供給用于所述存儲(chǔ)器塊的請求的主機(jī),(4)所述存儲(chǔ)器塊的高速緩存的映像與在LPC(系統(tǒng)存儲(chǔ)器)處的相應(yīng)存儲(chǔ)器塊是否一致,以及(5)遠(yuǎn)程一致性域(可能)中的其他高速緩存是否持有具有匹配地址的高速緩存表項(xiàng)。可以例如在下表II中總結(jié)的公知MESI(修改、獨(dú)占、共享、無效)協(xié)議的示例性變型中表達(dá)這五個(gè)屬性。
表II


A.Ig狀態(tài)為了避免不得不訪問LPC以確定存儲(chǔ)器塊是否將僅本地地被緩存(如果可能),Ig(無效全局)一致性狀態(tài)被用來在其中沒有存儲(chǔ)器塊的副本保持緩存在一致性域中的情況下維持域指示。所述Ig狀態(tài)在此被定義為指示以下項(xiàng)的高速緩存一致性狀態(tài)(1)高速緩存陣列中的關(guān)聯(lián)存儲(chǔ)器塊是無效的,(2)高速緩存目錄中的地址標(biāo)志是有效的,以及(3)由地址標(biāo)志標(biāo)識(shí)的存儲(chǔ)器塊的副本可能被緩存在除主一致性域以外的一致性域中。所述Ig指示優(yōu)選地是不精確的,意味著在不違反一致性的情況下其可能是不正確的。
所述Ig狀態(tài)在所述主一致性域內(nèi)的低級高速緩存中形成,以響應(yīng)高速緩存響應(yīng)于獨(dú)占訪問請求(例如,總線RWITM操作)而將請求的存儲(chǔ)器塊提供給另一個(gè)一致性域中的請求方。
由于包括Ig狀態(tài)的高速緩存目錄表項(xiàng)可能攜帶有用信息,所以至少在某些實(shí)現(xiàn)中,希望優(yōu)選地保留Ig狀態(tài)中的表項(xiàng)而不是I狀態(tài)中的表項(xiàng)(例如,通過修改用來選擇用于替換的犧牲品高速緩存表項(xiàng)的最近最少使用(LRU)算法)。由于Ig目錄表項(xiàng)被保留在高速緩存中,某些Ig表項(xiàng)可能隨著時(shí)間的推移而變得“失效”,因?yàn)楦咚倬彺?其獨(dú)占訪問請求導(dǎo)致了Ig狀態(tài)的形成)可以解除分配或?qū)懟仄浯鎯?chǔ)器塊的副本,而不通知將存儲(chǔ)器塊的地址標(biāo)記保持在Ig狀態(tài)的高速緩存。在這種情況下,所述“失效”Ig狀態(tài)(其錯(cuò)誤地指示應(yīng)發(fā)布全局操作而不是本地操作)將不會(huì)導(dǎo)致任何一致性錯(cuò)誤,而只是導(dǎo)致某些操作(可以利用本地操作以其他方式為它們服務(wù))被發(fā)布為全局操作。如下面進(jìn)一步描述的,此類低效率的出現(xiàn)將通過最終替換“失效”Ig高速緩存表項(xiàng)來在持續(xù)時(shí)間上進(jìn)行限制。
若干規(guī)則管理著Ig高速緩存表項(xiàng)的選擇和替換。首先,如果高速緩存選擇Ig表項(xiàng)作為替換的犧牲品,則執(zhí)行Ig表項(xiàng)的驅(qū)逐(不同于當(dāng)I、In、Igp表項(xiàng)被選擇時(shí)的情況)以便更新系統(tǒng)存儲(chǔ)器108中的相應(yīng)域指示符504。其次,如果導(dǎo)致存儲(chǔ)器塊被加載到高速緩存中的請求命中該同一高速緩存中的Ig高速緩存表項(xiàng),則所述高速緩存將Ig命中視為高速緩存未命中并在將Ig表項(xiàng)作為選定的犧牲品的情況下執(zhí)行驅(qū)逐操作。所述高速緩存因此避免了將同一地址標(biāo)記的兩個(gè)副本放置在高速緩存目錄中。第三,Ig狀態(tài)的驅(qū)逐優(yōu)選地作為范圍限于本地一致性域的僅本地操作來執(zhí)行。第四,Ig狀態(tài)的驅(qū)逐優(yōu)選地作為無數(shù)據(jù)僅地址操作來執(zhí)行,其中將域指示寫回LPC中的域指示符504。
根據(jù)本發(fā)明的Ig狀態(tài)的實(shí)現(xiàn)通過為主一致性域中的存儲(chǔ)器塊維護(hù)緩存的域指示符(即使沒有存儲(chǔ)器塊的有效副本繼續(xù)緩存在該主一致性域中)來提高通信效率。如下所述,由Ig狀態(tài)提供的高速緩存域指示可用來為以關(guān)聯(lián)存儲(chǔ)器塊為目標(biāo)的操作預(yù)測互連結(jié)構(gòu)上的全局廣播范圍。
B.Igp狀態(tài)Igp(無效全局僅預(yù)測)一致性狀態(tài)被用于在其中沒有存儲(chǔ)器塊的副本繼續(xù)緩存在非主一致性域中的情況下維持緩存的域指示。所述Igp狀態(tài)在此被定義為指示以下項(xiàng)的高速緩存一致性狀態(tài)(1)高速緩存陣列中的關(guān)聯(lián)存儲(chǔ)器塊是無效的,(2)高速緩存目錄中的地址標(biāo)記是有效的,(3)當(dāng)前一致性域不是主一致性域,以及(4)由地址標(biāo)記標(biāo)識(shí)的存儲(chǔ)器塊的副本可能被緩存在除當(dāng)前非主一致性域以外的一致性域中。盡管精確地形成,但是優(yōu)選地不精確地維護(hù)所述Igp指示,意味著在不違反一致性的情況下其可能是不正確的。
所述Igp狀態(tài)在非主一致性域內(nèi)的低級高速緩存中形成,以響應(yīng)高速緩存響應(yīng)于獨(dú)占訪問請求(例如,RWITM、Dclaim、DCBZ、Kill、寫入或部分寫入請求)而將請求的存儲(chǔ)器塊的一致性所有權(quán)提供給另一個(gè)一致性域中的請求方。
由于包括Igp狀態(tài)的高速緩存目錄表項(xiàng)可能攜帶有用信息,所以至少在某些實(shí)現(xiàn)中,希望優(yōu)選地保留Ig狀態(tài)中的表項(xiàng)而不是I狀態(tài)中的表項(xiàng)(如果有)(例如,通過修改用來選擇用于替換的犧牲品高速緩存表項(xiàng)的最近最少使用(LRU)算法)。由于Igp目錄表項(xiàng)被保留在高速緩存中,某些Igp表項(xiàng)可能隨著時(shí)間的推移而變得“失效”,因?yàn)榇鎯?chǔ)器塊的副本可能返回一致性域,而沒有由將存儲(chǔ)器塊的地址標(biāo)記保持在Igp狀態(tài)的高速緩存進(jìn)行窺探。在這種情況下,所述“失效”Igp狀態(tài)(其錯(cuò)誤地指示應(yīng)發(fā)布全局操作而不是本地操作)將不會(huì)導(dǎo)致任何一致性錯(cuò)誤,而只是導(dǎo)致某些操作(可以利用本地操作以其他方式為它們服務(wù))被發(fā)布為全局操作。此類低效率的出現(xiàn)將通過最終替換“失效”Igp高速緩存表項(xiàng)來在持續(xù)時(shí)間上進(jìn)行限制。
與處理Ig表項(xiàng)相比,沒有響應(yīng)于選擇Igp表項(xiàng)作為替換的犧牲品而執(zhí)行Igp表項(xiàng)的驅(qū)逐,例如,根據(jù)替換算法(例如,LRU)或因?yàn)閷?dǎo)致存儲(chǔ)器塊被加載到高速緩存的請求命中同一高速緩存中的Igp高速緩存表項(xiàng)。相反,只是取消分配Igp表項(xiàng)。沒有執(zhí)行驅(qū)逐,因?yàn)镮gp表項(xiàng)沒有維護(hù)基礎(chǔ)域指示符504的緩存的并可能修改的副本。
根據(jù)本發(fā)明的Igp狀態(tài)的實(shí)現(xiàn)通過出于范圍預(yù)測目的為非主一致性域中的存儲(chǔ)器塊維護(hù)緩存的域指示符(即使沒有存儲(chǔ)器塊的有效副本繼續(xù)緩存在該非主一致性域中)來提高通信效率。
C.In狀態(tài)In狀態(tài)在此被定義為高速緩存一致性狀態(tài),所述高速緩存一致性狀態(tài)指示(1)高速緩存陣列中的關(guān)聯(lián)存儲(chǔ)器塊是無效的,(2)高速緩存目錄中的地址標(biāo)記是有效的,以及(3)由所述地址標(biāo)記標(biāo)識(shí)的存儲(chǔ)器塊的副本可能僅由本地一致性域中的一個(gè)或多個(gè)其他高速緩存層次結(jié)構(gòu)來緩存(如果可能)。In指示優(yōu)選地是不精確的,意味著在不違反一致性的情況下其可能是不正確的。In狀態(tài)在低級高速緩存中形成以響應(yīng)該高速緩存將請求的存儲(chǔ)器塊提供給同一一致性域中的請求方以響應(yīng)獨(dú)占訪問請求(例如,總線RWITM操作)。
由于包括In狀態(tài)的高速緩存目錄表項(xiàng)可能攜帶有用信息,所以至少在某些實(shí)現(xiàn)中,希望優(yōu)選地保留In狀態(tài)中的表項(xiàng)而不是I狀態(tài)中的表項(xiàng)(例如,通過修改用來選擇用于替換的犧牲品高速緩存表項(xiàng)的最近最少使用(LRU)算法)。由于In目錄表項(xiàng)被保留在高速緩存中,某些In表項(xiàng)可能隨著時(shí)間的推移而變得“失效”,因?yàn)楦咚倬彺?其獨(dú)占訪問請求導(dǎo)致了In狀態(tài)的形成)自身可以將存儲(chǔ)器塊的共享副本提供給遠(yuǎn)程一致性域,而不通知將存儲(chǔ)器塊的地址標(biāo)記保持在In狀態(tài)的高速緩存。在這種情況下,所述“失效”In狀態(tài)(其錯(cuò)誤地指示應(yīng)發(fā)布本地操作而不是全局操作)將不會(huì)導(dǎo)致任何一致性錯(cuò)誤,而只是導(dǎo)致某些操作首先錯(cuò)誤地被發(fā)布為本地操作而非全局操作。此類低效率的出現(xiàn)將通過最終替換“失效”In高速緩存表項(xiàng)來在持續(xù)時(shí)間上進(jìn)行限制。在一個(gè)優(yōu)選實(shí)施例中,處于In一致性狀態(tài)的高速緩存表項(xiàng)不會(huì)受到驅(qū)逐,而只是被替換。因此,與Ig高速緩存表項(xiàng)不同,In高速緩存表項(xiàng)并未被用來更新系統(tǒng)存儲(chǔ)器108中的域指示符504。
根據(jù)本發(fā)明的In狀態(tài)的實(shí)現(xiàn)通過為存儲(chǔ)器塊(可由主機(jī)咨詢以便為其操作中的某一操作選擇本地范圍)維護(hù)高速緩存的域指示符來提高通信效率。結(jié)果,節(jié)約了其他一致性域中的系統(tǒng)互連110和本地互連114上的帶寬。
D.Sr狀態(tài)在下面描述的操作中,能夠確定持有處于Sr一致性狀態(tài)的共享請求存儲(chǔ)器塊的低級高速緩存是否位于與發(fā)出請求的主機(jī)相同的域中是有用的。在一個(gè)實(shí)施例中,位于與發(fā)出請求的主機(jī)相同的域中的“本地”Sr窺探器的存在可以由在持有處于Sr一致性狀態(tài)的請求存儲(chǔ)器塊的低級高速緩存處的窺探器的響應(yīng)行為來指示。例如,假設(shè)每個(gè)總線操作都包括范圍指示符,所述范圍指示符指示所述總線操作是否已穿過域邊界(例如,主機(jī)的顯式域標(biāo)識(shí)符或單個(gè)本地/非本地范圍位),持有處于Sr一致性狀態(tài)的共享存儲(chǔ)器塊的低級高速緩存可以提供部分響應(yīng)(僅為同一數(shù)據(jù)源域中的主機(jī)的請求確認(rèn)請求處于Sr狀態(tài))并提供指示所有其他請求的S狀態(tài)的部分響應(yīng)。在此類實(shí)施例中,響應(yīng)行為可以被總結(jié)為如表III所示,其中使用(’)符號(hào)來指定可能與存儲(chǔ)器塊的實(shí)際高速緩存狀態(tài)不同的部分響應(yīng)。
表III


假設(shè)以上在表III中說明了響應(yīng)行為,通過增加在可用作數(shù)據(jù)源的SMP數(shù)據(jù)處理系統(tǒng)中分布的存儲(chǔ)器塊的共享副本的數(shù)量,共享數(shù)據(jù)的平均數(shù)據(jù)等待時(shí)間可以顯著減少。
VII.示例性獨(dú)占訪問操作首先參考圖6,其中示出了根據(jù)本發(fā)明的在數(shù)據(jù)處理系統(tǒng)中為處理器(CPU)獨(dú)占訪問(或存儲(chǔ)修改)請求服務(wù)的示例性方法的高級邏輯流程圖。與在此提供的其他邏輯流程圖一樣,圖6中示出的步驟中的至少某些步驟可以以不同于所示的順序執(zhí)行或者可以同時(shí)執(zhí)行。
圖6的過程開始于方塊600,方塊600代表從其處理單元104中的關(guān)聯(lián)處理器核心200接收CPU獨(dú)占訪問請求(例如,CPU數(shù)據(jù)存儲(chǔ)請求或CPU kill請求等)的L2高速緩存230中的主機(jī)232。響應(yīng)于接收到CPU請求,主機(jī)232在方塊602判定目標(biāo)存儲(chǔ)器塊(其在所述CPU獨(dú)占訪問請求中由目標(biāo)地址來標(biāo)識(shí))是否被以一致性狀態(tài)(允許為所述CPU獨(dú)占訪問請求服務(wù)而不在互連構(gòu)造上發(fā)布總線操作)保存在L2高速緩存目錄302中。例如,如果L2高速緩存目錄302指示所述目標(biāo)存儲(chǔ)器塊的一致性狀態(tài)是M或Me狀態(tài)之一,則可以為CPU數(shù)據(jù)存儲(chǔ)請求服務(wù)而不在互連構(gòu)造上發(fā)布總線操作。如方塊632所示,如果主機(jī)232在方塊602判定可以為所述CPU獨(dú)占訪問請求服務(wù)而不在互連構(gòu)造上發(fā)布總線操作,則主機(jī)232根據(jù)需要訪問L2高速緩存陣列300來為所述CPU請求服務(wù)。例如,主機(jī)232可以將CPU數(shù)據(jù)存儲(chǔ)請求中提供的數(shù)據(jù)存儲(chǔ)到L2高速緩存陣列300中。在方塊632之后,所述過程在方塊634終止。
返回方塊602,如果所述目標(biāo)存儲(chǔ)器塊并未以一致性狀態(tài)(允許為所述CPU獨(dú)占訪問請求服務(wù)而不在互連構(gòu)造上發(fā)布總線操作)保存在L2目錄302中,則還在方塊604判定是否需要驅(qū)逐現(xiàn)有高速緩存線以容納L2高速緩存230中的所述目標(biāo)存儲(chǔ)器塊。在一個(gè)實(shí)施例中,如果存儲(chǔ)器塊被選擇以便從請求處理器的L2高速緩存230中被驅(qū)逐以響應(yīng)所述CPU獨(dú)占訪問請求,并且所述存儲(chǔ)器塊在L2目錄302中被標(biāo)記為處于M、T、Te、Tn或Ig一致性狀態(tài)中的任何狀態(tài),則在方塊604處需要驅(qū)逐操作。響應(yīng)于在方塊604判定需要驅(qū)逐,如方塊606所指示的,執(zhí)行高速緩存驅(qū)逐操作。同時(shí),主機(jī)232在方塊610確定將被發(fā)布以便為所述CPU獨(dú)占訪問請求服務(wù)的總線操作的范圍。例如,在一個(gè)實(shí)施例中,主機(jī)232在方塊610判定將總線操作廣播為本地操作(范圍限于單個(gè)處理節(jié)點(diǎn)102)還是全局操作(包括數(shù)據(jù)處理系統(tǒng)100中的所有處理節(jié)點(diǎn)102)。
在其中每個(gè)總線操作最初被發(fā)布為本地操作并且作為本地操作僅被發(fā)布一次的第一實(shí)施例中,在方塊610示出的判定可以只代表由主機(jī)進(jìn)行的總線操作先前是否已被發(fā)布為本地總線操作的判定。在其中可以以本地范圍重試本地總線操作的第二備選實(shí)施例中,在方塊610示出的判定可以代表由主機(jī)進(jìn)行的總線操作先前是否被發(fā)布了超過閾值次數(shù)的判定。在第三備選實(shí)施例中,在方塊610做出的判定可以基于由主機(jī)232進(jìn)行的本地總線操作是否可能成功地解決目標(biāo)存儲(chǔ)器塊的一致性而不與其他一致性域中的處理節(jié)點(diǎn)通信的預(yù)測。例如,如果關(guān)聯(lián)的L2高速緩存目錄302將目標(biāo)地址與In一致性狀態(tài)關(guān)聯(lián),則主機(jī)232可以選擇本地總線操作,并且如果關(guān)聯(lián)的L2高速緩存目錄302將目標(biāo)地址與Ig或Igp一致性狀態(tài)關(guān)聯(lián),則主機(jī)232可以選擇全局總線操作。如果成功發(fā)出操作(即,接收到重試組合響應(yīng)),則在方塊610示出的判定還可以考慮從未成功操作的組合響應(yīng)獲得的信息,例如,對本地一致性域中處于Ig或Igp一致性狀態(tài)的高速緩存線存在的指示。
響應(yīng)于在方塊610的判定,主機(jī)232僅在包含主機(jī)232的本地一致性域(例如,處理節(jié)點(diǎn)102)內(nèi)發(fā)出本地總線獨(dú)占訪問操作廣播(方塊612),或在數(shù)據(jù)處理系統(tǒng)100的所有一致性域中發(fā)出全局總線獨(dú)占訪問操作廣播(方塊620)。所述獨(dú)占訪問操作至少包括標(biāo)識(shí)獨(dú)占訪問操作類型(RWITM、DClaim、DCBZ、Kill、寫入或部分寫入)的事務(wù)類型(Ttype)和標(biāo)識(shí)目標(biāo)存儲(chǔ)器塊的目標(biāo)地址。如方塊622和624所示,然后主機(jī)232等待接收所述操作的組合響應(yīng)。
出于本說明的目的,所述組合響應(yīng)可以是至少三種常規(guī)類型中的任意一種成功、成功且清除,以及重試。如果所述組合響應(yīng)指示“重試”,則主機(jī)232未能通過在方塊612或620發(fā)出的獨(dú)占訪問請求獲得目標(biāo)存儲(chǔ)器塊的一致性所有權(quán),并且必須重新發(fā)出所述操作(可能具有擴(kuò)展的廣播范圍)。因此,處理從方塊622返回到前面已經(jīng)說明的方塊610。如果主機(jī)232未收到指示重試的組合響應(yīng),而是接收到指示成功且清除的組合響應(yīng),則主機(jī)232已被授予目標(biāo)存儲(chǔ)器塊的一致性所有權(quán)并必須無效其他高速緩沖存儲(chǔ)器230中保存的目標(biāo)存儲(chǔ)器塊的任何其余緩存的備份。如方塊626所示,要執(zhí)行此操作,主機(jī)232啟動(dòng)選定范圍(例如,本地或全局)的后臺(tái)終止(BK)操作。在至少某些實(shí)施例中,主機(jī)232可以根據(jù)獨(dú)占訪問操作的組合響應(yīng)中包含的信息來選擇范圍。在方塊626之后,在方塊624測試所述后臺(tái)終止操作的組合響應(yīng)。響應(yīng)于在方塊624判定獨(dú)占訪問操作或后臺(tái)終止操作的組合響應(yīng)指示成功,主機(jī)232已成功獲得對目標(biāo)存儲(chǔ)器塊的獨(dú)占訪問。此后,主機(jī)232更新用于做出在方塊630示出的范圍選擇的預(yù)測器(例如,一致性狀態(tài)或基于歷史的預(yù)測器)。此外,如方塊632所示,主機(jī)232為CPU請求服務(wù)。在此之后,所述過程在方塊634終止。
因此,假設(shè)同一一致性域中的過程與它們的數(shù)據(jù)之間存在親密關(guān)系,則可以利用范圍限于請求主機(jī)的一致性域或其他小于整個(gè)全局范圍的受限范圍的廣播通信來頻繁地為所述CPU請求服務(wù)。如以上所述的數(shù)據(jù)傳送域的組合和一致性域因此不僅改進(jìn)了數(shù)據(jù)訪問等待時(shí)間,而且還通過限制廣播通信的范圍減少了系統(tǒng)互連(和其他本地互連)上的通信量。
現(xiàn)在參考圖7A-7C,其中示出了根據(jù)本發(fā)明的高速緩存窺探器(如L2高速緩存窺探器236)通過其處理獨(dú)占訪問操作(也稱為存儲(chǔ)修改改作)的示例性方法的高級邏輯流程圖。獨(dú)占訪問請求包括上述的RWITM、DClaim、DCBZ、Kill、寫入和部分寫入操作。
如圖所示,所述過程開始于圖7A的方塊700以響應(yīng)L2高速緩存窺探器236在其本地互連114上接收到請求。響應(yīng)于接收到請求,窺探器236在方塊702判定所述請求是否是獨(dú)占訪問操作,例如,通過參考該請求內(nèi)的事務(wù)類型(Ttype)字段。如果否,則窺探器236執(zhí)行其他處理,如方塊704所示,并且過程在方塊740結(jié)束。但是,如果窺探器236在方塊702判定所述請求是獨(dú)占訪問操作,則窺探器236在方塊706還判定當(dāng)前是否能夠?qū)嵸|(zhì)上響應(yīng)獨(dú)占訪問操作(例如,其是否具有窺探邏輯的可用實(shí)例并且當(dāng)前是否可以訪問其L2高速緩存目錄302)。如果窺探器236當(dāng)前不能實(shí)質(zhì)上響應(yīng)域查詢請求,則如方塊708所示,窺探器236提供指示“重試_其他”的部分響應(yīng)(PR),并且獨(dú)占訪問操作的處理在方塊740結(jié)束。
假設(shè)窺探器236可以實(shí)質(zhì)上響應(yīng)獨(dú)占訪問操作,則在方塊710,窺探器236判定關(guān)聯(lián)的L2高速緩存目錄302是否指示了包含目標(biāo)地址的存儲(chǔ)器塊的標(biāo)記有效、數(shù)據(jù)無效的一致性狀態(tài)(如,In、Ig、Igp、I)。如果是,則所述過程通過頁連接器A轉(zhuǎn)到將在下面詳細(xì)說明的圖7B。但是,如果關(guān)聯(lián)的L2高速緩存目錄302指示數(shù)據(jù)有效一致性狀態(tài)(Mx、Tx或Sx),則所述過程分為兩支并且平行地進(jìn)入方塊712和之后的方塊,它們代表窺探器236執(zhí)行的一致性狀態(tài)更新,并通過頁連接器B轉(zhuǎn)到圖7C,圖7C示出了窺探器236的數(shù)據(jù)傳送和保護(hù)活動(dòng)(如果有)。
首先參考方塊712,窺探器236通過參考從其L2高速緩存目錄302讀取的一致性狀態(tài)判定其是否位于由窺探請求的目標(biāo)地址標(biāo)識(shí)的目標(biāo)存儲(chǔ)器塊的HPC處。如果否,則窺探器236可選地在方塊714判定窺探請求的Ttype是否指示該窺探請求是后臺(tái)終止請求。如果否,則所述過程進(jìn)行到下面說明的方塊720。
響應(yīng)于在方塊714的肯定判定,根據(jù)窺探器236是否與原始發(fā)出后臺(tái)終止請求(方塊716)的設(shè)備(例如,L2高速緩存230)位于同一一致性域中,允許窺探器(但不是必須)在收到組合響應(yīng)前更新其L2高速緩存目錄302中的目標(biāo)地址的一致性狀態(tài)。例如,窺探器236可以通過檢查后臺(tái)終止請求中包含的范圍位來做出在方塊716的判定。如果窺探器236在方塊716判定其與發(fā)起后臺(tái)終止請求的設(shè)備位于同一一致性域中,則窺探器236將后臺(tái)終止請求的目標(biāo)地址的一致性狀態(tài)更新為L2高速緩存目錄302中的In一致性狀態(tài)(方塊724)。如上所述,In一致性狀態(tài)提供了存儲(chǔ)器塊的HPC位于本地(不必為主)一致性域中以及請求所述存儲(chǔ)器塊的后續(xù)本地操作可能成功的不精確指示。另一方面,如果窺探器236在方塊716判定其與發(fā)起后臺(tái)終止請求的設(shè)備沒有位于同一一致性域中,則過程進(jìn)行到方塊734。方塊734示出了窺探器236將目標(biāo)地址的一致性狀態(tài)更新為其L2高速緩存目錄302中的Igp。如上所述,Igp一致性狀態(tài)提供了目標(biāo)存儲(chǔ)器塊的HPC位于遠(yuǎn)程一致性域中以及請求所述目標(biāo)存儲(chǔ)器塊的后續(xù)操作應(yīng)為全局的不精確指示。在方塊724或方塊734之后,過程在方塊740終止。
現(xiàn)在參考方塊720,如果在可選方塊714做出否定判定,或如果沒有執(zhí)行在方塊714示出的判定,則窺探器236等待接收獨(dú)占訪問請求的組合響應(yīng)。響應(yīng)于在方塊720接收到組合響應(yīng),窺探器236在方塊726判定獨(dú)占訪問請求的組合響應(yīng)是否指示了“重試”。如果否,則所述獨(dú)占訪問請求成功并帶有“成功”或“成功且清除”組合響應(yīng),所述過程轉(zhuǎn)到如前所述的方塊716。但是,如果獨(dú)占訪問請求的組合響應(yīng)指示“重試”(即,獨(dú)占訪問請求沒有成功),則窺探器236只是將目標(biāo)地址的一致性狀態(tài)更新為其L2高速緩存目錄302中的I,如在方塊728所示。將采用I一致性狀態(tài)而不是Ig、Igp或In狀態(tài),因?yàn)椴怀晒Φ莫?dú)占訪問操作的組合響應(yīng)沒有指示目標(biāo)地址的HPC對于窺探器236的相對位置。在方塊728之后,過程在方塊740終止。
返回方塊712,響應(yīng)于窺探器236判定其位于目標(biāo)地址的HPC處,窺探器236等待接收獨(dú)占訪問請求的組合響應(yīng),如方塊718所示。響應(yīng)于窺探器236接收到組合響應(yīng),過程進(jìn)行到方塊722。方塊722示出了窺探器236判定其是否與原始發(fā)出獨(dú)占訪問請求的設(shè)備(例如,L2高速緩存230)位于同一一致性域中。如上所述,窺探器236可以通過檢查獨(dú)占訪問請求中包含的范圍位來做出在方塊722示出的判定。如果窺探器236在方塊722判定其與發(fā)起獨(dú)占訪問請求的設(shè)備位于同一一致性域中,則窺探器236將目標(biāo)地址的一致性狀態(tài)更新為其L2高速緩存目錄302中的In一致性狀態(tài)(方塊724)。如上所述,In一致性狀態(tài)提供了存儲(chǔ)器塊的HPC位于本地(不必為主)一致性域中以及請求存儲(chǔ)器塊的后續(xù)本地操作可能成功的不精確指示。另一方面,如果窺探器236在方塊722判定其與發(fā)起獨(dú)占訪問請求的設(shè)備沒有位于同一致性域中,則窺探器236根據(jù)其是否與目標(biāo)地址的主系統(tǒng)存儲(chǔ)器108位于同一一致性域來更新其L2高速緩存目錄302中的目標(biāo)地址的一致性狀態(tài)(方塊730)。在一個(gè)優(yōu)選實(shí)施例中,根據(jù)組合響應(yīng)中窺探器本地的存儲(chǔ)器控制器(MCLS)字段的狀態(tài)來做出在方塊730示出的判定??梢愿鶕?jù)圖10中示出的方法來設(shè)置組合響應(yīng)的MCLS字段的狀態(tài)并在將下面說明該狀態(tài)。
響應(yīng)于在方塊730判定未斷言組合響應(yīng)的MCLS字段,意味著窺探器236與目標(biāo)地址的主系統(tǒng)存儲(chǔ)器108沒有位于同一致性域中,窺探器236將目標(biāo)地址的一致性狀態(tài)更新為其L2高速緩存目錄302中的Igp(方塊734)。否則,窺探器236將目標(biāo)地址的一致性狀態(tài)更新為Ig(方塊732)。Igp和Ig一致性狀態(tài)都提供了目標(biāo)存儲(chǔ)器塊的HPC位于遠(yuǎn)程一致性域中以及請求目標(biāo)存儲(chǔ)器塊的后續(xù)操作應(yīng)為全局的不精確指示。但是,Igp一致性狀態(tài)不會(huì)被后續(xù)驅(qū)逐到系統(tǒng)存儲(chǔ)器108,而只是被取消分配。在方塊732或方塊734之后,過程在方塊740終止。
現(xiàn)在參考圖7B,圖7B示出了窺探器236對具有目標(biāo)地址的獨(dú)占訪問請求的響應(yīng),其中窺探器236在其L2高速緩存目錄302中具有用于所述目標(biāo)地址的數(shù)據(jù)無效一致性狀態(tài)(例如,In、Ig、Igp或I)。所述過程從圖7A通過頁連接器A進(jìn)行到方塊742,方塊742示出了窺探器236向獨(dú)占訪問請求提供適當(dāng)?shù)牟糠猪憫?yīng)。在某些實(shí)施例中,在方塊742提供的部分響應(yīng)對于所有Ix一致性狀態(tài)(除Ig外)可以為空,以便指示包含窺探器236的L2高速緩存230沒有保存目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)有效副本。對于Ig一致性狀態(tài),部分響應(yīng)是某種形式的重試,指示目標(biāo)地址的HPC可能位于包含窺探器236的一致性域之外。在其他實(shí)施例中,在方塊742生成的非Ig一致性狀態(tài)的部分響應(yīng)可以額外提供反映本地一致性狀態(tài)(Igp或In)指示的范圍信息的范圍提示。在方塊742之后,過程在方塊744分為兩支,如果目標(biāo)地址的本地一致性狀態(tài)是Ig,則進(jìn)行到方塊746,否則進(jìn)行到方塊750。
在方塊746,窺探器236可選地判定窺探請求的Ttype是否指示窺探請求是后臺(tái)終止請求。如果否(或未進(jìn)行可選的判定),該過程進(jìn)行到如下所述的方塊747。如果在可選的方塊746判定窺探請求是后臺(tái)終止請求,則在方塊749進(jìn)一步判定窺探器236是否與原始發(fā)出后臺(tái)終止請求的設(shè)備(例如,L2高速緩存230)位于同一一致性域中(方塊749)。例如,窺探器236可以通過檢查后臺(tái)終止請求中包含的范圍位來做出在方塊749所示的判定。如果窺探器236在方塊749判定其與發(fā)起后臺(tái)終止請求的設(shè)備位于同一一致性域中,則過程通過連接器D轉(zhuǎn)到方塊757,方塊757示出了窺探器236將后臺(tái)終止請求的目標(biāo)地址的一致性狀態(tài)更新為其L2高速緩存目錄302中的In一致性狀態(tài)。如前所述,In一致性狀態(tài)提供了存儲(chǔ)器塊的HPC位于本地(不必為主)一致性域中以及請求存儲(chǔ)器塊的后續(xù)本地操作可能成功的不精確指示。然后過程在方塊760終止。另一方面,如果窺探器236在方塊749判定其與發(fā)起后臺(tái)終止請求的設(shè)備沒有位于同一一致性域中,則過程轉(zhuǎn)到方塊747。
方塊747示出了窺探器236等待接收窺探請求的組合響應(yīng)。響應(yīng)于接收到窺探請求的組合響應(yīng),在方塊748判定所述組合響應(yīng)是否指示重試。如果是,則窺探操作不成功,并且窺探器236沒有為目標(biāo)地址更新其一致性狀態(tài)。因此,過程通過頁連接器C并在方塊760終止。但是,如果窺探請求的組合響應(yīng)沒有指示重試,則窺探器236在方塊758通過參考窺探請求中包含的范圍位來判定其是否與發(fā)出窺探請求的主機(jī)232位于同一一致性域(例如,處理節(jié)點(diǎn)102)中。如果是,則窺探器236將后臺(tái)終止請求的目標(biāo)地址的一致性狀態(tài)更新為其L2高速緩存目錄302中的In一致性狀態(tài)(方塊757)。此后,過程在方塊760終止。
返回方塊758,響應(yīng)于窺探器236判定其與發(fā)出窺探請求的主機(jī)232不在同一一致性域中,窺探器236判定其是否與目標(biāo)地址的主系統(tǒng)存儲(chǔ)器108位于同一一致性域中(方塊759)。在一個(gè)優(yōu)選實(shí)施例中,根據(jù)組合響應(yīng)中的窺探器本地的存儲(chǔ)器控制器(MCLS)字段的狀態(tài)來做出在方塊759示出的判定。如果窺探器236在方塊759判定其與目標(biāo)地址的主系統(tǒng)存儲(chǔ)器108位于同一一致性域中,則窺探器236不更新其L2高速緩存目錄302中的Ig一致性狀態(tài),并且過程在方塊760終止。在這種情況下沒有進(jìn)行任何一致性狀態(tài)更新,因?yàn)榭赡苄枰狪g一致性狀態(tài)來更新系統(tǒng)存儲(chǔ)器108中關(guān)聯(lián)的域指示符504的狀態(tài)。但是,如果窺探器236在方塊759做出否定判定,則窺探器236將后臺(tái)終止請求的目標(biāo)地址的一致性狀態(tài)更新為其L2高速緩存目錄302中的Igp一致性狀態(tài)(方塊756)。如果一致性狀態(tài)已經(jīng)是Igp,則可能執(zhí)行也可能不執(zhí)行一致性狀態(tài)更新,這取決于窺探器236實(shí)現(xiàn)的復(fù)雜性。如上所述,Igp一致性狀態(tài)提供了目標(biāo)存儲(chǔ)器塊的HPC位于遠(yuǎn)程一致性域中以及請求目標(biāo)存儲(chǔ)器塊的后續(xù)操作應(yīng)為全局的不精確指示。在方塊756之后,過程在760終止。
現(xiàn)在參考方塊750,如果窺探請求的目標(biāo)地址的本地一致性狀態(tài)不是Ig,則窺探器236可以可選地更新其L2高速緩存目錄302中的目標(biāo)地址的Ix一致性狀態(tài)而無需參考窺探請求的組合響應(yīng),以便減少將窺探器236分配給窺探請求的期限。備選地,窺探器236可以響應(yīng)于所述組合響應(yīng)而更新其L2高速緩存目錄302中的目標(biāo)地址的Ix一致性狀態(tài)。等待組合響應(yīng)以執(zhí)行更新代表期限的性能折衷以便改進(jìn)準(zhǔn)確性,因?yàn)樵诮邮盏浇M合響應(yīng)之前,窺探器236不確定窺探請求的主機(jī)232是否成功獲得了目標(biāo)地址的一致性所有權(quán)。如果窺探器236被實(shí)現(xiàn)為更新Ix一致性狀態(tài)而無需參考組合響應(yīng),則過程直接進(jìn)行到如下所述的方塊755。但是,如果窺探器236被實(shí)現(xiàn)為通過參考窺探請求的組合響應(yīng)來更新Ix一致性狀態(tài),則過程進(jìn)行到方塊751,方塊751表示窺探器236通過參考窺探請求的Ttype來可選地判定窺探請求是否是后臺(tái)終止請求。如果是,過程進(jìn)行到如下所述的方塊755。如果窺探器236在方塊751判定窺探請求不是后臺(tái)終止請求,則窺探器236在方塊752等待接收窺探請求的組合響應(yīng)。
響應(yīng)于接收到組合響應(yīng),窺探器236在方塊753判定獨(dú)占訪問請求的組合響應(yīng)是否指示“重試”。如果否,則獨(dú)占訪問請求成功并帶有“成功”或“成功且清除”組合響應(yīng),并且過程轉(zhuǎn)到方塊755。但是,如果獨(dú)占訪問請求的組合響應(yīng)指示“重試”(即,獨(dú)占訪問請求不成功),則窺探器236只是可選地將目標(biāo)地址的一致性狀態(tài)更新為其L2高速緩存目錄302中的I,如在方塊754所示。將采用I一致性狀態(tài)而不是Ig、Igp或In狀態(tài),因?yàn)椴怀晒Φ莫?dú)占訪問操作沒有指示目標(biāo)地址的HPC對于窺探器236的相對位置。在方塊753的否定判定或可選的方塊754之后,過程在方塊760終止。
現(xiàn)在參考方塊755,窺探器236根據(jù)其是否與原始發(fā)出窺探請求的設(shè)備(例如,L2高速緩存230)位于同一一致性域中來更新其L2高速緩存目錄302中的目標(biāo)地址的Ix一致性狀態(tài)。例如,窺探器236可以通過檢查窺探請求中包含的范圍位來做出方塊755中所示的判定。如果窺探器236在方塊755判定其與發(fā)起窺探請求的設(shè)備位于同一一致性域中,則窺探器236在其L2高速緩存目錄302中將窺探請求的目標(biāo)地址的一致性狀態(tài)更新為In一致性狀態(tài)(方塊757)。另一方面,如果窺探器236在方塊755判定其與發(fā)起窺探請求的設(shè)備沒有位于同一一致性域中,則窺探器236在其L2高速緩存目錄302中將目標(biāo)地址的一致性狀態(tài)更新為Igp(方塊756)。如果在方塊757,一致性狀態(tài)已經(jīng)是In或在方塊756,一致性狀態(tài)已經(jīng)是Igp,則可以執(zhí)行也可以不執(zhí)行更新,這取決于窺探器236實(shí)現(xiàn)的復(fù)雜性。在方塊756或方塊757之后,過程在方塊760終止。
現(xiàn)在參考圖7C,圖7C示出了L2高速緩存230(保存了目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)有效緩存的副本)的窺探器236的數(shù)據(jù)傳輸和保護(hù)活動(dòng)(如果有)。如圖所示,窺探器236在方塊761判定窺探獨(dú)占訪問操作是否是RWITM操作,例如,通過檢查窺探請求指定的Ttype。如上表I所示,RWITM操作是獨(dú)占訪問操作,其中發(fā)起方從其他參與方請求存儲(chǔ)器塊映像的唯一副本以對其進(jìn)行更新(或修改)。如果在方塊761判定獨(dú)占訪問操作是RWITM操作,則過程進(jìn)行到如下所述的方塊770。如果否,則過程進(jìn)行到方塊762,方塊762示出了窺探器236通過例如參考關(guān)聯(lián)的L2高速緩存目錄302中的目標(biāo)存儲(chǔ)器塊的一致性狀態(tài),判定其是否位于目標(biāo)存儲(chǔ)器塊的HPC處。響應(yīng)于在方塊762判定窺探器236沒有位于獨(dú)占訪問操作的目標(biāo)存儲(chǔ)器塊的HPC處,窺探器236生成或?qū)е律伞翱铡辈糠猪憫?yīng)(方塊764)。但是,響應(yīng)于在方塊762判定窺探器236位于HPC處,窺探器236提供(或?qū)е绿峁?“HPC_ack”部分響應(yīng),確認(rèn)獨(dú)占訪問操作的發(fā)起方已被選為目標(biāo)存儲(chǔ)器塊的新HPC,并擴(kuò)展保護(hù)窗口404a以防止其他請求方獲取所述存儲(chǔ)器塊的一致性所有權(quán)(方塊766)。
現(xiàn)在參考方塊770和之后的方塊,窺探器236根據(jù)其關(guān)聯(lián)的L2高速緩存目錄302中的目標(biāo)存儲(chǔ)器塊的一致性狀態(tài)來響應(yīng)RWITM操作。具體地說,如果L2高速緩存目錄302中的目標(biāo)存儲(chǔ)器塊的一致性狀態(tài)是Mx(例如,M或Me),則擴(kuò)展保護(hù)窗口404a來防止其他請求方獲取所述目標(biāo)存儲(chǔ)器塊的所有權(quán),提供“HPC_ack”部分響應(yīng)并將存儲(chǔ)器塊的副本提供給請求方。如方塊770和772所示。
備選地,如果L2高速緩存目錄302中的目標(biāo)存儲(chǔ)器塊的一致性狀態(tài)是Sr,并且窺探器236與請求方位于同一數(shù)據(jù)源域(例如,處理節(jié)點(diǎn)102),則窺探器236擴(kuò)展保護(hù)窗口404a,提供“共享”部分響應(yīng),并將存儲(chǔ)器塊的副本提供給請求方,如方塊774和776所示。備選地,如果L2高速緩存目錄302中的目標(biāo)存儲(chǔ)器塊的一致性狀態(tài)是Tx(例如,T、Te、Tn或Ten),如方塊780所示,則窺探器236擴(kuò)展保護(hù)窗口404a以防止其他請求方獲取所述目標(biāo)存儲(chǔ)器塊的所有權(quán),并且提供“HPC_ack”部分響應(yīng),如方塊782中所示。此外,如在方塊784和786指示的,窺探器236可以根據(jù)從響應(yīng)邏輯210接收的組合響應(yīng)來將目標(biāo)存儲(chǔ)器塊的副本提供給請求方。即,如果所述組合響應(yīng)指示該窺探器236負(fù)責(zé)提供目標(biāo)存儲(chǔ)器塊的副本(例如,與請求方位于同一一致性域的窺探器236都沒有將目標(biāo)存儲(chǔ)器塊保持在Sr狀態(tài)),則窺探器236將所述目標(biāo)存儲(chǔ)器塊的副本傳輸給請求方,如方塊786所示。
再次參考方塊780,響應(yīng)于否定的判定,窺探器236只是提供“空”部分響應(yīng),如方塊790所示。在方塊766、764、772、776、784、786和790中的任一方塊之后,過程在方塊792終止。
通過參考以上引用的專利申請將理解,對于本地范圍的獨(dú)占訪問請求,在其中組合響應(yīng)指示IMC 206負(fù)責(zé)將請求的存儲(chǔ)器塊提供給發(fā)出請求的主機(jī)232的每一種情況下,IMC 206可能能夠也可能無法執(zhí)行此操作。結(jié)果,在某些實(shí)施方式中,在方塊726、748和753示出的CR是否指示重試的判定可以進(jìn)一步保守地將指示IMC 206負(fù)責(zé)提供目標(biāo)存儲(chǔ)器塊的組合響應(yīng)視為重試組合響應(yīng),以便在旁觀窺探L2高速緩沖存儲(chǔ)器230處更新目標(biāo)地址的一致性狀態(tài)。
現(xiàn)在參考圖8,其中示出了根據(jù)本發(fā)明的IMC 18通過其響應(yīng)窺探請求的示例性過程的高級邏輯流程圖。如圖所示,過程在方塊800開始并在此后進(jìn)行到方塊802,方塊802示出了IMC 18通過參考BAR邏輯240判定其是否負(fù)責(zé)窺探請求中指定的目標(biāo)地址。如果否,則IMC 18不將窺探器222分配給窺探請求,并且過程只是在方塊830終止。另一方面,如果IMC18在方塊802判定其負(fù)責(zé)目標(biāo)地址,則IMC 18在方塊832生成LPC_Ack部分響應(yīng)。接著,IMC 18在方塊803通過參考窺探請求的Ttype來判定請求是否是獨(dú)占訪問請求。如果否,則IMC執(zhí)行其他處理,如方塊804所示。此后,過程在方塊830終止。
返回方塊803,響應(yīng)于判定窺探請求是獨(dú)占訪問請求,IMC 18在方塊810和820進(jìn)一步判定其窺探器222之一是否激活且具有窺探請求的目標(biāo)地址以及窺探器222之一是否可供分派。如果IMC 18在方塊810判定其窺探器222之一已激活且具有窺探請求的目標(biāo)地址,或在方塊820判定沒有可供調(diào)度的窺探器222,則過程進(jìn)行到方塊812,方塊812示出了IMC 18將Retry_LPC部分響應(yīng)傳輸給窺探請求。此后,過程在方塊830終止。
如果IMC 18在方塊810判定其窺探器222都沒有激活且具有窺探請求的目標(biāo)地址,并且在方塊820判定其具有可供分派的窺探器222,則過程進(jìn)行到方塊822和824,方塊822和824示出了IMC 18分派窺探器222以等待接收窺探請求的組合響應(yīng)。響應(yīng)于接收到組合響應(yīng),所分派的窺探器222從系統(tǒng)存儲(chǔ)器108提供請求的數(shù)據(jù)(如有必要),并且如有必要,更新系統(tǒng)存儲(chǔ)器108中的域指示符504(方塊826)。此后,將窺探器解除分配,并且過程在方塊830結(jié)束。
現(xiàn)在參考圖9,其中示出了根據(jù)本發(fā)明的通過其生成并累加獨(dú)占訪問操作的部分響應(yīng)的示例性方法的高級邏輯流程圖。在示出的實(shí)施例中,逐節(jié)點(diǎn)地順序或平行地累加部分響應(yīng),直到獲得單個(gè)完整的部分響應(yīng)。
如圖所示,過程在方塊900開始,然后進(jìn)行到方塊902,方塊902示出了第一處理節(jié)點(diǎn)102中的處理單元104將部分響應(yīng)中的所有位字段初始化為0。接著,在方塊910,處理單元104中的每個(gè)窺探器222、236執(zhí)行其單個(gè)部分響應(yīng)與累加的部分響應(yīng)的邏輯“或”。然后處理節(jié)點(diǎn)102中的響應(yīng)邏輯210在方塊912判定是否分別由當(dāng)前處理節(jié)點(diǎn)102中的L2高速緩存窺探器236和存儲(chǔ)器控制器窺探器222斷言了HPC_ack部分響應(yīng)和LPC_ack部分響應(yīng)。如果是,則目標(biāo)存儲(chǔ)器塊的先前HPC和目標(biāo)存儲(chǔ)器塊的主系統(tǒng)存儲(chǔ)器108都存在于此處理節(jié)點(diǎn)102中。因此,響應(yīng)邏輯210執(zhí)行斷言的MCLS位與累加的部分響應(yīng)中的相應(yīng)MCLS位的邏輯“或”操作。如方塊914所示。
接著,在方塊916,當(dāng)前處理節(jié)點(diǎn)102的響應(yīng)邏輯210判定當(dāng)前處理節(jié)點(diǎn)102是否是要為其累加部分響應(yīng)的最后處理節(jié)點(diǎn)102(例如,包含發(fā)起獨(dú)占訪問請求的主機(jī)232的處理節(jié)點(diǎn)102)。如果否,則響應(yīng)邏輯210將累加的部分響應(yīng)傳輸?shù)较乱惶幚砉?jié)點(diǎn)102以便進(jìn)行處理,如方塊918所示。此后,在該下一處理節(jié)點(diǎn)102中累加部分響應(yīng),如方塊910和之后的方塊所示。另一方面,如果響應(yīng)邏輯210判定當(dāng)前處理節(jié)點(diǎn)102是要為其累加部分響應(yīng)的最后處理節(jié)點(diǎn)102,則過程進(jìn)行到方塊920,方塊920示出了將累加的部分響應(yīng)提供給包含發(fā)起獨(dú)占訪問操作的主機(jī)232的處理單元104的響應(yīng)邏輯210。此后,圖9中示出的過程在方塊922終止。
現(xiàn)在參考圖10,其中示出了根據(jù)本發(fā)明的響應(yīng)邏輯210通過其在存在Ix L2高速緩存窺探器236時(shí)生成獨(dú)占訪問操作的組合響應(yīng)的示例性方法的高級邏輯流程圖。(可以在上面參考的共同待決申請中找到有關(guān)生成其他一致性狀態(tài)的組合響應(yīng)的更多詳細(xì)信息。)在一個(gè)優(yōu)選實(shí)施例中,生成獨(dú)占訪問操作的組合響應(yīng)的響應(yīng)邏輯210是處理單元104(包含發(fā)出獨(dú)占訪問操作的主機(jī)232)的響應(yīng)邏輯210。
如圖所示,過程在方塊1000開始以響應(yīng)接收到累加的部分響應(yīng),并在此后進(jìn)行到方塊1002,方塊1002示出了判定獨(dú)占訪問操作是否是全局操作,并且判定累加的部分響應(yīng)是否包括來自存儲(chǔ)器控制器206的LPC_ack部分響應(yīng)。如果響應(yīng)邏輯210在方塊1002判定獨(dú)占訪問操作是全局操作,并且累加的部分響應(yīng)不包括LPC_ack部分響應(yīng),則處理在方塊1004停止且具有錯(cuò)誤狀況,因?yàn)槲凑业侥繕?biāo)地址的LPC。
另一方面,如果響應(yīng)邏輯210在方塊1002做出否定判定,則響應(yīng)邏輯210在方塊1006判定獨(dú)占訪問操作是否具有本地范圍以及累加的部分響應(yīng)是否指示未收到LPC_ack部分響應(yīng)或HPC_ack部分響應(yīng)。在方塊1006的肯定判定指示應(yīng)增大獨(dú)占訪問請求的范圍,因?yàn)槟繕?biāo)地址的LPC不在本地一致性域中并且所述HPC可能不在本地一致性域中。因此,響應(yīng)于方塊1006的肯定判定,過程進(jìn)行到方塊1009,方塊1009示出了響應(yīng)邏輯210生成指示重試(并可選地還指示應(yīng)以增大的范圍重新發(fā)出請求)的組合響應(yīng)。如以上根據(jù)圖6的方塊622和610說明的,生成重試組合響應(yīng)以響應(yīng)圖10的方塊1001或1002處的肯定判定將導(dǎo)致主機(jī)232重新發(fā)出獨(dú)占訪問請求(可能以增大的廣播范圍)。然后過程進(jìn)行到下面說明的方塊1022。
再次參考方塊1006,響應(yīng)于否定的判定,過程進(jìn)行到方塊1008。方塊1008示出了響應(yīng)邏輯210判定累加的部分響應(yīng)是否包括來自L2高速緩存窺探器236的HPC_ack部分響應(yīng)或不包括來自IMC 206的Retry_LPC部分響應(yīng)。響應(yīng)于在方塊1008的否定判定,過程進(jìn)行到方塊1009,方塊1009示出了響應(yīng)邏輯210生成指示重試的組合響應(yīng)。然后過程進(jìn)行到方塊1022。
返回方塊1008,如果響應(yīng)邏輯210做出肯定的判定,則過程從方塊1008進(jìn)行到方塊1010,方塊1010示出了響應(yīng)邏輯210判定累加的部分響應(yīng)是否指示Retry_other或共享部分響應(yīng)的存在。如果是,則發(fā)起主機(jī)232可以被授予獨(dú)占訪問請求的目標(biāo)存儲(chǔ)器塊的一致性所有權(quán),但是至少一個(gè)非HPC L2高速緩沖存儲(chǔ)器230可以保留目標(biāo)存儲(chǔ)器塊的緩存的數(shù)據(jù)有效副本。因此,響應(yīng)邏輯210生成成功且清除組合響應(yīng),例如Addr_ack_BK。如上所述,成功且清除組合響應(yīng)將導(dǎo)致發(fā)起主機(jī)232發(fā)出后臺(tái)終止請求,如圖6的方塊626所示。此后,過程轉(zhuǎn)到下面說明的方塊1022。
再次參考方塊1010,響應(yīng)于響應(yīng)邏輯210判定累加的部分響應(yīng)沒有指示收到Retry_other或共享部分響應(yīng),過程進(jìn)行到方塊1020,方塊1020示出了響應(yīng)邏輯210生成指示成功的組合響應(yīng),如Addr_ack組合響應(yīng)。然后過程進(jìn)行到方塊1022,方塊1022示出了響應(yīng)邏輯210判定是否在累加的部分響應(yīng)中斷言了MCLS字段,如上面參考圖9的方塊912和914所描述的。如果否,則過程直接進(jìn)行到方塊1026。另一方面,如果在方塊1022做出肯定的判定,則響應(yīng)邏輯210在方塊1024在組合響應(yīng)中斷言MCLS字段。然后過程進(jìn)行到方塊1026。
方塊1026示出了響應(yīng)邏輯210使用與原始獨(dú)占訪問請求相匹配的廣播范圍來傳輸組合響應(yīng)(方塊1026)。此后,過程終止于方塊1030。
如上所述,本發(fā)明提供了一種用于指示存儲(chǔ)器塊是否可能緩存在一致性域之內(nèi)或之外的改進(jìn)的數(shù)據(jù)處理系統(tǒng)、處理單元、高速緩存分層結(jié)構(gòu)和數(shù)據(jù)處理方法。根據(jù)本發(fā)明,可以建立和/或更新可以由一致性狀態(tài)提供的指示以響應(yīng)對獨(dú)占訪問操作的組合響應(yīng)。
雖然參考優(yōu)選實(shí)施例具體示出并描述了本發(fā)明,但是本領(lǐng)域中的技術(shù)人員將理解,在不偏離本發(fā)明的精神和范圍的情況下,可以在其中做出各種形式和細(xì)節(jié)上的更改。
權(quán)利要求
1.一種在至少包括第一和第二一致性域的高速緩存一致數(shù)據(jù)處理系統(tǒng)中進(jìn)行數(shù)據(jù)處理的方法,其中所述第一一致性域包括用于系統(tǒng)存儲(chǔ)器的系統(tǒng)存儲(chǔ)器控制器和具有第一高速緩沖存儲(chǔ)器的第一處理單元,并且其中所述第二一致性域包括具有第二高速緩沖存儲(chǔ)器的第二處理單元,所述方法包括在所述第一高速緩沖存儲(chǔ)器中,將與存儲(chǔ)位置和地址標(biāo)記關(guān)聯(lián)的一致性狀態(tài)字段設(shè)置為第一一致性狀態(tài);響應(yīng)于窺探指定與所述地址標(biāo)記匹配的目標(biāo)地址的獨(dú)占訪問請求,所述第一高速緩沖存儲(chǔ)器至少部分地根據(jù)所述第一一致性狀態(tài)來將第一部分響應(yīng)提供給所述獨(dú)占訪問請求;響應(yīng)于窺探所述獨(dú)占訪問請求,所述存儲(chǔ)器控制器判定其是否負(fù)責(zé)所述目標(biāo)地址,并且至少部分地根據(jù)所述判定的結(jié)果來將第二部分響應(yīng)提供給所述獨(dú)占訪問請求;至少累加所述第一和第二部分響應(yīng)以獲得所述獨(dú)占訪問請求的組合響應(yīng),所述組合響應(yīng)包括所述目標(biāo)地址的一致性最高點(diǎn)與主系統(tǒng)存儲(chǔ)器的存儲(chǔ)器控制器是否位于同一一致性域中的指示;以及所述第一高速緩沖存儲(chǔ)器將所述一致性狀態(tài)字段從所述第一一致性狀態(tài)更新為第二一致性狀態(tài)以響應(yīng)所述組合響應(yīng)中的所述指示。
2.根據(jù)權(quán)利要求1的方法,其中第二數(shù)據(jù)無效一致性狀態(tài)指示所述地址標(biāo)記有效、所述存儲(chǔ)位置不包含有效數(shù)據(jù),以及與所述地址標(biāo)記關(guān)聯(lián)的目標(biāo)存儲(chǔ)器塊可能緩存在所述第一一致性域中。
3.根據(jù)權(quán)利要求2的方法,其中所述第一一致性狀態(tài)包括不同的數(shù)據(jù)無效一致性狀態(tài)。
4.根據(jù)權(quán)利要求1的方法,其中所述更新包括將所述一致性狀態(tài)字段從所述第一一致性狀態(tài)更新為所述第二一致性狀態(tài),以響應(yīng)所述指示指示所述目標(biāo)地址的一致性最高點(diǎn)與主系統(tǒng)存儲(chǔ)器的存儲(chǔ)器控制器沒有位于同一一致性域中。
5.根據(jù)權(quán)利要求1的方法,還包括所述第一高速緩沖存儲(chǔ)器通過參考所述一致性狀態(tài)字段來預(yù)測將所述存儲(chǔ)器塊作為目標(biāo)的數(shù)據(jù)訪問請求的廣播傳輸?shù)姆秶?br> 6.根據(jù)權(quán)利要求1的方法,其中所述更新包括僅響應(yīng)于所述組合響應(yīng)指示所述請求方已獲得所述目標(biāo)存儲(chǔ)器塊的獨(dú)占一致性所有權(quán),所述第一高速緩沖存儲(chǔ)器才更新所述一致性狀態(tài)字段。
7.一種至少包括第一和第二一致性域的高速緩存一致數(shù)據(jù)處理系統(tǒng)的處理單元,每個(gè)一致性域都包括至少一個(gè)處理單元,其中所述第一一致性域包括所述處理單元,并且所述第二一致性域包括其他處理單元,所述處理單元包括一個(gè)或多個(gè)處理器核心;連接到所述一個(gè)或多個(gè)處理器核心中的一個(gè)處理器核心的高速緩沖存儲(chǔ)器,所述高速緩沖存儲(chǔ)器包括數(shù)據(jù)陣列,所述數(shù)據(jù)陣列包括用于緩存存儲(chǔ)器塊的數(shù)據(jù)存儲(chǔ)位置;以及高速緩存目錄,所述高速緩存目錄包括標(biāo)記字段,所述標(biāo)記字段用于存儲(chǔ)與所述存儲(chǔ)器塊相關(guān)的地址標(biāo)記;一致性狀態(tài)字段,所述一致性狀態(tài)字段與所述標(biāo)記字段和所述數(shù)據(jù)存儲(chǔ)位置關(guān)聯(lián),其中所述一致性狀態(tài)字段具有多個(gè)可能的一致性狀態(tài),所述狀態(tài)包括第一和第二一致性狀態(tài);以及高速緩存控制器,所述高速緩存控制器響應(yīng)于窺探指定與所述地址標(biāo)記匹配的目標(biāo)地址的獨(dú)占訪問請求,至少部分地根據(jù)所述一致性狀態(tài)字段來將第一部分響應(yīng)提供給所述獨(dú)占訪問請求,其中所述高速緩存控制器,響應(yīng)于接收到表示所述獨(dú)占訪問請求的系統(tǒng)范圍響應(yīng)的組合響應(yīng),在所述組合響應(yīng)中檢查所述目標(biāo)地址的一致性最高點(diǎn)與主系統(tǒng)存儲(chǔ)器的存儲(chǔ)器控制器是否位于同一一致性域中的指示,并且將所述一致性狀態(tài)字段從所述第一一致性狀態(tài)更新為第二一致性狀態(tài)以響應(yīng)所述組合響應(yīng)中的所述指示。
8.根據(jù)權(quán)利要求7的處理單元,其中第二數(shù)據(jù)無效一致性狀態(tài)指示所述地址標(biāo)記有效、所述存儲(chǔ)位置不包含有效數(shù)據(jù),以及與所述地址標(biāo)記關(guān)聯(lián)的目標(biāo)存儲(chǔ)器塊可能緩存在所述第一一致性域中。
9.根據(jù)權(quán)利要求8的處理單元,其中所述第一一致性狀態(tài)包括不同的數(shù)據(jù)無效一致性狀態(tài)。
10.根據(jù)權(quán)利要求7的處理單元,其中所述高速緩存控制器將所述一致性狀態(tài)字段從所述第一一致性狀態(tài)更新為所述第二一致性狀態(tài),以響應(yīng)所述指示指示所述目標(biāo)地址的一致性最高點(diǎn)與主系統(tǒng)存儲(chǔ)器的存儲(chǔ)器控制器沒有位于同一一致性域中。
11.根據(jù)權(quán)利要求7的處理單元,其中所述高速緩存控制器通過參考所述一致性狀態(tài)字段來預(yù)測將所述存儲(chǔ)器塊作為目標(biāo)的數(shù)據(jù)訪問請求的廣播傳輸?shù)姆秶?br> 12.根據(jù)權(quán)利要求7的處理單元,其中僅響應(yīng)于所述組合響應(yīng)指示所述請求方已獲得所速目標(biāo)存儲(chǔ)器塊的獨(dú)占一致性所有權(quán),所述高速緩存控制器才更新所述一致性狀態(tài)字段。
13.一種數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括至少第一和第二一致性域,每個(gè)一致性域都包括至少一個(gè)處理單元,其中所述第一一致性域的所述處理單元包括一個(gè)或多個(gè)處理器核心;連接到所述一個(gè)或多個(gè)處理器核心中的一個(gè)處理器核心的高速緩沖存儲(chǔ)器,所述高速緩沖存儲(chǔ)器包括數(shù)據(jù)陣列,所述數(shù)據(jù)陣列包括用于緩存存儲(chǔ)器塊的數(shù)據(jù)存儲(chǔ)位置;以及高速緩存目錄,所述高速緩存目錄包括標(biāo)記字段,所述標(biāo)記字段用于存儲(chǔ)與所述存儲(chǔ)器塊相關(guān)的地址標(biāo)記;一致性狀態(tài)字段,所述一致性狀態(tài)字段與所述標(biāo)記字段和所述數(shù)據(jù)存儲(chǔ)位置關(guān)聯(lián),其中所述一致性狀態(tài)字段具有多個(gè)可能的一致性狀態(tài),所述狀態(tài)包括第一和第二一致性狀態(tài);以及高速緩存控制器,所述高速緩存控制器響應(yīng)于窺探指定與所述地址標(biāo)記匹配的目標(biāo)地址的獨(dú)占訪問請求,至少部分地根據(jù)所述一致性狀態(tài)字段來將第一部分響應(yīng)提供給所述獨(dú)占訪問請求;存儲(chǔ)器控制器,所述存儲(chǔ)器控制器響應(yīng)于窺探所述獨(dú)占訪問請求,判定其是否負(fù)責(zé)所述目標(biāo)地址,并且至少部分地根據(jù)所述判定的結(jié)果來將第二部分響應(yīng)提供給所述獨(dú)占訪問請求;響應(yīng)邏輯,所述響應(yīng)邏輯至少累加所述第一和第二部分響應(yīng)以獲得所述獨(dú)占訪問請求的組合響應(yīng),所述組合響應(yīng)包括所述目標(biāo)地址的一致性最高點(diǎn)與主系統(tǒng)存儲(chǔ)器的存儲(chǔ)器控制器是否位于同一一致性域中的指示;以及其中所述高速緩存控制器將所述一致性狀態(tài)字段從所述第一一致性狀態(tài)更新為第二一致性狀態(tài)以響應(yīng)所述組合響應(yīng)中的所述指示。
14.根據(jù)權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其中第二數(shù)據(jù)無效一致性狀態(tài)指示所述地址標(biāo)記有效、所述存儲(chǔ)位置不包含有效數(shù)據(jù),以及與所述地址標(biāo)記關(guān)聯(lián)的目標(biāo)存儲(chǔ)器塊可能緩存在所述第一一致性域中。
15.根據(jù)權(quán)利要求14的數(shù)據(jù)處理系統(tǒng),其中所述第一一致性狀態(tài)包括不同的數(shù)據(jù)無效一致性狀態(tài)。
16.根據(jù)權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其中所述高速緩存控制器將所述一致性狀態(tài)字段從所述第一一致性狀態(tài)更新為所述第二一致性狀態(tài),以響應(yīng)所述指示指示所述目標(biāo)地址的一致性最高點(diǎn)與主系統(tǒng)存儲(chǔ)器的存儲(chǔ)器控制器沒有位于同一一致性域中。
17.根據(jù)權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其中所述高速緩存控制器通過參考所述一致性狀態(tài)字段來預(yù)測將所述存儲(chǔ)器塊作為目標(biāo)的數(shù)據(jù)訪問請求的廣播傳輸?shù)姆秶?br> 18.根據(jù)權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其中僅響應(yīng)于所述組合響應(yīng)指示所述請求方已獲得所述目標(biāo)存儲(chǔ)器塊的獨(dú)占一致性所有權(quán),所述高速緩存控制器才更新所述一致性狀態(tài)字段。
全文摘要
一種數(shù)據(jù)處理系統(tǒng)。在第一高速緩沖存儲(chǔ)器中,將與存儲(chǔ)位置和地址標(biāo)記關(guān)聯(lián)的一致性狀態(tài)字段設(shè)置為第一一致性狀態(tài)。響應(yīng)于窺探指定與地址標(biāo)記匹配的目標(biāo)地址的獨(dú)占訪問請求,第一高速緩沖存儲(chǔ)器至少部分地根據(jù)第一一致性狀態(tài)將第一部分響應(yīng)提供給獨(dú)占訪問請求。響應(yīng)于窺探獨(dú)占訪問請求,存儲(chǔ)器控制器判定其是否負(fù)責(zé)目標(biāo)地址,并至少部分地根據(jù)判定結(jié)果將第二部分響應(yīng)提供給獨(dú)占訪問請求。至少累加第一和第二部分響應(yīng)以獲得獨(dú)占訪問請求的組合響應(yīng)。組合響應(yīng)包括目標(biāo)地址的一致性最高點(diǎn)與主系統(tǒng)存儲(chǔ)器的存儲(chǔ)器控制器是否位于同一一致性域中的指示。第一高速緩沖存儲(chǔ)器將一致性狀態(tài)字段從第一一致性狀態(tài)更新為第二一致性狀態(tài)以響應(yīng)組合響應(yīng)中的指示。
文檔編號(hào)G06F12/08GK101042678SQ20071008608
公開日2007年9月26日 申請日期2007年3月9日 優(yōu)先權(quán)日2006年3月23日
發(fā)明者G·L·居特里, D·E·威廉斯, J·S·小菲爾茨, W·J·斯塔克, L·J·克拉克 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1