專利名稱::支持共享全局一致性狀態(tài)的處理器、數(shù)據(jù)處理系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明一般地涉及數(shù)據(jù)處理系統(tǒng)并且更特別地涉及一種改進(jìn)的多處理器數(shù)據(jù)處理系統(tǒng)。更特別地,本發(fā)明涉及多處理器數(shù)據(jù)處理系統(tǒng)內(nèi)層級(jí)結(jié)構(gòu)高速緩存系統(tǒng)的改進(jìn)的一致性管理。
背景技術(shù):
:常規(guī)對(duì)稱多處理器(SMP)計(jì)算機(jī)系統(tǒng)如服務(wù)器計(jì)算機(jī)系統(tǒng)包括全部耦合到系統(tǒng)互連的多個(gè)處理單元,該系統(tǒng)互連通常包括一個(gè)或者多個(gè)地址總線、數(shù)據(jù)總線和控制總線。耦合到系統(tǒng)互連的還有系統(tǒng)存儲(chǔ)器,該系統(tǒng)存儲(chǔ)器代表多處理器計(jì)算機(jī)系統(tǒng)中最低級(jí)別的易失性存儲(chǔ)器并且一般可用于由所有處理單元進(jìn)行讀取和寫入訪問。為了減少對(duì)駐留于系統(tǒng)存儲(chǔ)器中的指令和數(shù)據(jù)的訪問延遲,各處理單元通常還受相應(yīng)多級(jí)高速緩存層級(jí)結(jié)構(gòu)支持,該多級(jí)高速緩存層級(jí)結(jié)構(gòu)中的一個(gè)或者多個(gè)低級(jí)別可以由一個(gè)或者多個(gè)處理器內(nèi)核共享。由于多個(gè)處理器內(nèi)核可以請(qǐng)求對(duì)同一高速緩存數(shù)據(jù)行的寫入訪問以及由于經(jīng)修改的高速緩存行沒有立即與系統(tǒng)存儲(chǔ)器同步,所以多處理器計(jì)算機(jī)系統(tǒng)的高速緩存層級(jí)結(jié)構(gòu)通常實(shí)施高速緩存一致性協(xié)議以保證在各處理器內(nèi)核對(duì)系統(tǒng)存儲(chǔ)器內(nèi)容的"查看"之間的至少最低的一致性水平。特別地,高速緩存一致性至少要求在處理單元訪問存儲(chǔ)器塊的副本并且隨后訪問存儲(chǔ)器塊的更新副本之后,處理單元不能再次訪問存儲(chǔ)器塊的舊副本。高速緩存一致性協(xié)議通常限定了與在高速緩存層級(jí)結(jié)構(gòu)的各個(gè)級(jí)別存儲(chǔ)的高速緩存行相關(guān)聯(lián)地存儲(chǔ)的高速緩存狀態(tài)集以及用來在高速緩存層級(jí)結(jié)構(gòu)之間傳送高速緩存狀態(tài)信息的一致'性消息集。在典型實(shí)施中,高速緩存狀態(tài)信息采取公知的MESI(修改、獨(dú)占、共享、無效)協(xié)議或者其變型的形式,而一致性消息表明在存儲(chǔ)器訪問請(qǐng)求的請(qǐng)求者和/或接收者的高速緩存層級(jí)結(jié)構(gòu)中由協(xié)議限定的一致性狀態(tài)轉(zhuǎn)變。MESI協(xié)議使得可以利用四個(gè)狀態(tài)之一來標(biāo)記高速緩存數(shù)據(jù)行"M"(修改)、"E"(獨(dú)占)、"S"(共享)或者'T,(無效)。"修改"狀態(tài)表明一致性粒度(granule)僅在存儲(chǔ)經(jīng)修改的一致性顆粒的高速緩存中才有效并且經(jīng)修改的一致性粒度的值尚未寫到系統(tǒng)存儲(chǔ)器。當(dāng)一致性粒度表示為"獨(dú)占"時(shí),于是在存儲(chǔ)器層級(jí)結(jié)構(gòu)中的所有高速緩存之中,僅該高速緩存才保持一致性粒度。然而,在"獨(dú)占"狀態(tài)下的數(shù)據(jù)與系統(tǒng)存儲(chǔ)器相一致。如果一致性粒度在高速緩存目錄中被標(biāo)為"共享",則一致性粒度駐留于關(guān)聯(lián)高速緩存中以及可能駐留于存儲(chǔ)器層級(jí)結(jié)構(gòu)中的一個(gè)或者多個(gè)其它高速緩存中,并且一致性粒度的所有副本與系統(tǒng)存儲(chǔ)器相一致。最后,"無效"狀態(tài)表明與一致性粒度相關(guān)聯(lián)的數(shù)據(jù)和地址標(biāo)記都是無效的。各一致性粒度(例如高速緩存行)被設(shè)置成的狀態(tài)依賴于高速緩存行內(nèi)數(shù)據(jù)的先前狀態(tài)以及從進(jìn)行請(qǐng)求的設(shè)備(例如處理器)接收的存儲(chǔ)器訪問請(qǐng)求的類型。因而,在系統(tǒng)中維持存儲(chǔ)器一致性要求處理器跨系統(tǒng)總線傳送消息,這些消息表明它們讀取存儲(chǔ)器位置或者向存儲(chǔ)器位置寫入的意圖。例如,當(dāng)處理器希望寫入數(shù)據(jù)到存儲(chǔ)器位置時(shí),處理器必須先向所有其它處理單元通知它要寫入數(shù)據(jù)到存儲(chǔ)器位置的意圖并且從所有其它處理單元接收?qǐng)?zhí)行寫入操作的許可。進(jìn)行請(qǐng)求的處理器所收5'J的許可消息表明存儲(chǔ)器位置的內(nèi)容的所有其它高速緩存副本已經(jīng)或者將要無效,由此確保其它處理器不會(huì)錯(cuò)誤地訪問它們的陳舊的本地lt據(jù)。在一些系統(tǒng)中,高速緩存層級(jí)結(jié)構(gòu)包括至少兩級(jí),第一級(jí)(L1)或者高級(jí)別高速緩存,以及一級(jí)或者多級(jí)低級(jí)別高速緩存,比如第二級(jí)(L2)高速緩存和第三級(jí)(L3)高速緩存(L2高速緩存相對(duì)于L3高速緩存是高級(jí)別高速緩存)。Ll高速緩存通常是與MP系統(tǒng)中特定處理器內(nèi)核相關(guān)聯(lián)的專用高速緩存。處理器內(nèi)核首先嘗試訪問在它的L1高速緩存中的數(shù)據(jù)。如果在L1高速緩存中沒有找到所請(qǐng)求的數(shù)據(jù),則處理器內(nèi)核然后訪問一個(gè)或者多個(gè)低級(jí)別高速緩存(例如第二級(jí)(L2)或者第三級(jí)(L2)高速緩存)以獲得所請(qǐng)求的數(shù)據(jù)。通常在數(shù)個(gè)處理器內(nèi)核之間共享低級(jí)別高速緩存(例如L3)。通常,當(dāng)高級(jí)別高速緩存的同余類變得充滿時(shí),數(shù)據(jù)行被"驅(qū)逐"或者寫到低級(jí)別高速緩存或者被"驅(qū)逐"出或者寫出到系統(tǒng)存儲(chǔ)器以供存儲(chǔ)。然而,在任何存儲(chǔ)器層級(jí)結(jié)構(gòu)中,可能有同一數(shù)據(jù)的數(shù)個(gè)副本同時(shí)駐留于存儲(chǔ)器層級(jí)結(jié)構(gòu)中。為了在高級(jí)別高速緩存中提供更多空間而驅(qū)逐高速緩存行的策略引起對(duì)低級(jí)別高速緩存的更新,包括對(duì)低級(jí)別高速緩存目錄中一致性狀態(tài)信息的更新。迄今為止,高速緩存一致性協(xié)議已經(jīng)一般地假設(shè)為了維持高速緩存一致性,在從高級(jí)別高速緩存驅(qū)逐高速緩存行時(shí),將來自高級(jí)別高速緩存的一致性狀態(tài)復(fù)制到低級(jí)別高速緩存中。本發(fā)明認(rèn)識(shí)到,通過在執(zhí)行逐出(castout)時(shí)以及針對(duì)其它數(shù)據(jù)處理場(chǎng)合智能地限定高速緩存層級(jí)結(jié)構(gòu)中的一致性狀態(tài)和一致性狀態(tài)轉(zhuǎn)變,能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)處理系統(tǒng)性能的增強(qiáng)。
發(fā)明內(nèi)容本發(fā)明提供一種在多處理器數(shù)據(jù)處理系統(tǒng)中一致性管理的改進(jìn)處理單元、數(shù)據(jù)處理系統(tǒng)和方法。根據(jù)本發(fā)明的一個(gè)實(shí)施例,一種數(shù)據(jù)處理系統(tǒng)至少包括第——致性域和第二一致性域,其中第——致性域包括系統(tǒng)存儲(chǔ)器和高速緩存存儲(chǔ)器。根據(jù)一種數(shù)據(jù)處理方法,在高速緩存存儲(chǔ)器的數(shù)據(jù)陣列中緩存高速緩存行,并且將高速緩存存儲(chǔ)器的高速緩存目錄中的狀態(tài)字段設(shè)置為一致性狀態(tài)以表明高速緩存行在數(shù)據(jù)陣列中有效、高速緩存行非獨(dú)占地保持于高速緩存存儲(chǔ)器中、以及所述第二一致性域中的另一高速緩存可以保持高速緩存行的副本。本發(fā)明的所有目的、特征和優(yōu)點(diǎn)將在如下具體書面描述中變得明顯。將通過參照結(jié)合附圖來閱讀的對(duì)示例性實(shí)施例的如下具體描述來最好地理解本發(fā)明以及優(yōu)選實(shí)施方式,在附圖中相似的標(biāo)號(hào)代表相同或者類似的單元,其中圖1圖示了根據(jù)本發(fā)明的高速緩存一致性對(duì)稱多處理器(SMP)數(shù)據(jù)處理系統(tǒng)的示例性實(shí)施例的高級(jí)框圖;圖2是根據(jù)本發(fā)明優(yōu)選實(shí)施例的示例性處理單元的框圖;圖3A是根據(jù)本發(fā)明優(yōu)選實(shí)施例的處理器內(nèi)核和L2高速緩存的示例性實(shí)施例的更具體框圖;圖3B是根據(jù)本發(fā)明優(yōu)選實(shí)施例的L3高速緩存的示例性實(shí)施例的更具體框圖;圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的數(shù)據(jù)處理系統(tǒng)的本地或者系統(tǒng)互連上的示例性操作的時(shí)間-空間圖;圖5圖示了根據(jù)本發(fā)明優(yōu)選實(shí)施例包括域指示符的系統(tǒng)存儲(chǔ)器;圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例對(duì)L3高速緩存存儲(chǔ)器執(zhí)行驅(qū)入(cast-in)的示例性方法的高級(jí)邏輯流程圖;圖7是根據(jù)本發(fā)明優(yōu)選實(shí)施例響應(yīng)于驅(qū)入而在L3高速緩存存儲(chǔ)器中實(shí)施一致性狀態(tài)轉(zhuǎn)變策略的示例性方法的高級(jí)邏輯流程圖;圖8是描繪了現(xiàn)有技術(shù)的操作流程的時(shí)序圖,其中出于Ig—致性狀態(tài)逐出命中創(chuàng)建了一致性解析窗口,在該窗口中必須查詢高速緩存目錄以確定對(duì)所監(jiān)聽的讀取型操作的正確一致性響應(yīng);以及圖9是根據(jù)本發(fā)明由L2高速緩存存儲(chǔ)器實(shí)施的一致性狀態(tài)轉(zhuǎn)變策略的示例性方法的高級(jí)邏輯流程圖。具體實(shí)施方式I.示例性架構(gòu)概述現(xiàn)在參照其中相似標(biāo)號(hào)通篇地指代相似和對(duì)應(yīng)部分的附圖并且特別地參照?qǐng)D1,圖示了描繪本發(fā)明可以實(shí)施于其中的示例性數(shù)據(jù)處理系統(tǒng)的高級(jí)框圖。數(shù)據(jù)處理系統(tǒng)被描繪成高速緩存一致性對(duì)稱多處理器(SMP)數(shù)據(jù)處理系統(tǒng)100。如圖所示,數(shù)據(jù)處理系統(tǒng)100包括用于處理數(shù)據(jù)和指令的多個(gè)處理節(jié)點(diǎn)102a、102b。處理節(jié)點(diǎn)102耦合到用于傳送地址、數(shù)據(jù)和控制信息的系統(tǒng)互連110。系統(tǒng)互連110可以例如實(shí)施為總線式互連、開關(guān)式互連或者混合型互連。在所示實(shí)施例中,各處理節(jié)點(diǎn)102^皮實(shí)現(xiàn)為包含四個(gè)處理單元104a-104d的多芯片模塊(MCM),各處理單元優(yōu)選地實(shí)現(xiàn)為相應(yīng)集成電路。在各處理節(jié)點(diǎn)102內(nèi)的處理單元104被耦合用于通過本地互連114來彼此通信和與系統(tǒng)互連110通信,該本地互連114與系統(tǒng)互連110—樣可以例如利用一個(gè)或者多個(gè)總線和/或開關(guān)來實(shí)施。如圖2中所示,處理單元104各包括耦合到相應(yīng)系統(tǒng)存儲(chǔ)器108的集成存儲(chǔ)器控制器(IMC)206。駐留于系統(tǒng)存儲(chǔ)器108中的數(shù)據(jù)和指令一般能夠由數(shù)據(jù)處理系統(tǒng)100內(nèi)任何處理節(jié)點(diǎn)102的任何處理單元104中的處理器內(nèi)核來訪問和修改。在本發(fā)明的可選實(shí)施例中,一個(gè)或者多個(gè)存儲(chǔ)器控制器206(和系統(tǒng)存儲(chǔ)器108)能夠耦合到系統(tǒng)互連110或者本地互連114。本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到圖1的SMP數(shù)據(jù)處理系統(tǒng)100能夠包括很多未示出的附加部件,比如互連橋接器、非易失性存儲(chǔ)器、用于連接到網(wǎng)絡(luò)或者附接設(shè)備的端口等。由于這樣的附加部件對(duì)于理解本發(fā)明而言不是必需的,所以在圖1中沒有圖示它們或者在這里沒有進(jìn)一步討論它們。然而應(yīng)當(dāng)理解,本發(fā)明所提供的增強(qiáng)適用于各種架構(gòu)的高速緩存一致性數(shù)據(jù)處理系統(tǒng)而不以任何方式限制于圖1中所示的一般數(shù)據(jù)處理系統(tǒng)架構(gòu)?,F(xiàn)在參照?qǐng)D2,描繪了根據(jù)本發(fā)明的示例性處理單元104的更具體框圖。在所示實(shí)施例中,能夠有利地實(shí)現(xiàn)為單個(gè)集成電路的各處理單元104包括用于獨(dú)立地處理指令和數(shù)據(jù)的四個(gè)處理器內(nèi)核200a-200d。在一個(gè)優(yōu)選實(shí)施例中,各處理器內(nèi)核200支持執(zhí)行的多個(gè)(例如兩個(gè))并行硬件線程。各處理器內(nèi)核200的操作受多級(jí)易失性存儲(chǔ)器子系統(tǒng)支持,該子系統(tǒng)在它的最低級(jí)別具有共享系統(tǒng)存儲(chǔ)器108而在它的高級(jí)別具有兩級(jí)或者更多級(jí)高速緩存存儲(chǔ)器用于對(duì)駐留于可高速緩存地址內(nèi)的數(shù)據(jù)和指令進(jìn)行高速緩存。在所示實(shí)施例中,高速緩存存儲(chǔ)器層級(jí)結(jié)構(gòu)包括位于各處理器內(nèi)核200內(nèi)并且專用于各處理器內(nèi)核200的相應(yīng)存儲(chǔ)直達(dá)(store-through)第一級(jí)(Ll)高速緩存(未示出)、專用于各處理器內(nèi)核200的相應(yīng)存入(store-in)第二級(jí)(L2)高速緩存230和用于對(duì)L2逐出進(jìn)行緩沖的L3犧牲(victim)高速緩存232。在所示實(shí)施例中,處理器內(nèi)核200a和200d共享L3高速緩存232a而處理器內(nèi)核200b和200c共享L3高速緩存232b。當(dāng)然,在其它實(shí)施例中,各處理器內(nèi)核200可以具有它自己的相應(yīng)L3高速緩存232。在包括圖2中所示實(shí)施例的至少一些實(shí)施例中,L3高速緩存232a-232b還耦合在一起以使得可以進(jìn)行數(shù)據(jù)交換,包括使得L3高速緩存232可以將它的高速緩存行之一逐出到L3高速緩存232的另一高速緩存行中以盡可能久地在處理單元104的高速緩存層級(jí)結(jié)構(gòu)內(nèi)保留處理器內(nèi)核200可能要訪問的數(shù)據(jù)。各處理單元104還包括響應(yīng)邏輯210的實(shí)例,該響應(yīng)邏輯實(shí)施在數(shù)據(jù)處理系統(tǒng)100內(nèi)維持高速緩存一致性的分布式一致性信令機(jī)制的一部分。此外,各處理單元104包括用于管理處理單元104與本地互連114和系統(tǒng)互連110之間的通信的互連邏輯212的實(shí)例。L2高速緩存230和L3高速緩存232各經(jīng)由未示出的連接耦合到互連邏輯212以實(shí)現(xiàn)參與在圖1的互連110和114上的數(shù)據(jù)和一致性通信。最后,各處理單元104包括集成I/0(輸入/輸出)控制器214,該控制器支持一個(gè)或者多個(gè)I/O設(shè)備如I/O設(shè)備216的附接。I/O控制器214可以響應(yīng)于I/O設(shè)備216的請(qǐng)求在本地互連114和/或系統(tǒng)互連110上發(fā)出操作。現(xiàn)在參照?qǐng)D3A,圖示了圖2的處理單元104內(nèi)的處理器內(nèi)核200和L2高速緩存230的更具體框圖。如圖所示,處理器內(nèi)核200包括用于對(duì)指令進(jìn)行獲取和排序以供執(zhí)行的指令定序單元(ISU)300、用于執(zhí)行指令的一個(gè)或者多個(gè)執(zhí)行單元302以及Ll高速緩存306。執(zhí)行單元302包括加載-存儲(chǔ)單元(LSU)304,該LSU執(zhí)行存儲(chǔ)器訪問(例如加載和存儲(chǔ))指令以使得從存儲(chǔ)器加載數(shù)據(jù)和存儲(chǔ)數(shù)據(jù)到存儲(chǔ)器。通過由存儲(chǔ)器子系統(tǒng)實(shí)施一致性協(xié)議,在執(zhí)行這樣的存儲(chǔ)器訪問操作的同時(shí),維持對(duì)存儲(chǔ)器內(nèi)容的一致性查看。根據(jù)本發(fā)明,可以包括分叉式L1數(shù)據(jù)和指令高速緩存的Ll高速緩存306被實(shí)施為存儲(chǔ)直達(dá)高速緩存,這意味著相對(duì)于其它處理器內(nèi)核200而言的高速緩存一致性點(diǎn)位于Ll高速緩存306以下,并且在所示實(shí)施例中位于L2高速緩存230。因而,Ll高速緩存306沒有針對(duì)它的高速緩存行維持真正的高速緩存一致性狀態(tài)而僅維持有效/無效位。L2高速緩存230包含存儲(chǔ)高速緩存指令行和數(shù)據(jù)行的數(shù)據(jù)陣列310以及數(shù)據(jù)陣列300的內(nèi)容的高速緩存目錄312。與在常規(guī)的集合關(guān)聯(lián)高速緩存中一樣,利用系統(tǒng)存儲(chǔ)器(真實(shí))地址內(nèi)的預(yù)定索引位將系統(tǒng)存儲(chǔ)器108中的存儲(chǔ)器塊映射到數(shù)據(jù)陣列310內(nèi)的特定同余類。在一個(gè)實(shí)施例中,在128字節(jié)的高速緩存行中設(shè)置用于一致性系統(tǒng)的標(biāo)準(zhǔn)存儲(chǔ)器塊。存儲(chǔ)于數(shù)據(jù)陣列310內(nèi)的特定存儲(chǔ)器塊或者高速緩存行被記錄于高速緩存目錄312中,該目錄針對(duì)數(shù)據(jù)陣列310中的每個(gè)高速緩存行包含一個(gè)目錄條目。正如本領(lǐng)域技術(shù)人員所理解的,高速緩存目錄302中的各目錄條目至少包括標(biāo)記字段314,該字段利用對(duì)應(yīng)的真實(shí)地址的一部分來指定數(shù)據(jù)陣列310中存儲(chǔ)的特定高速緩存行;狀態(tài)字段316,該字段表明高速緩存行的一致性狀態(tài);以及LRU(最近最少使用)字段318,該字段表明高速緩存行相對(duì)于同一同余類中的其它高速緩存行而言的替換次序。如圖3A中進(jìn)一步所示,L2高速緩存230也包括對(duì)L2高速緩存230的數(shù)據(jù)和一致性操作進(jìn)行控制的高速緩存控制器330。高速緩存控制器330包括多個(gè)讀取-主張(RC)機(jī)器332,用于獨(dú)立和并行地服務(wù)于從附屬處理器內(nèi)核200接收的加載(LD)和存儲(chǔ)(ST)請(qǐng)求;以及多個(gè)監(jiān)聽機(jī)器(SN)334,用于獨(dú)立和并行地服務(wù)于由附屬處理器內(nèi)核200以外的處理器內(nèi)核發(fā)出的并且從本地互連114"監(jiān)聽"的遠(yuǎn)程存儲(chǔ)器訪問請(qǐng)求。正如將理解到的,RC機(jī)器232服務(wù)于存儲(chǔ)器訪問請(qǐng)求可能要求使數(shù)據(jù)陣列310內(nèi)的存儲(chǔ)器塊被替換或者無效。因而,高速緩存控制器330也包括對(duì)從數(shù)據(jù)陣列310去除和回寫存儲(chǔ)器塊進(jìn)行管理的多個(gè)CO(逐出)機(jī)器336。現(xiàn)在參照?qǐng)D3B,描繪了根據(jù)本發(fā)明的L3高速緩存的示例性實(shí)施例的更具體框圖。正如從圖3A和3B的比較中可見,作為用于對(duì)L2逐出進(jìn)行緩沖的犧牲高速緩存來使用的L3高速緩存232與圖3的L2高速緩存230相似地來配置。因而,L3高速緩存232包括集合關(guān)聯(lián)數(shù)據(jù)陣列360、數(shù)據(jù)陣列360的內(nèi)容的高速緩存目錄362和高速緩存控制器380。高速緩存目錄362中的各目錄條目至少包括標(biāo)記字段364,該字段利用對(duì)應(yīng)的真實(shí)地址的一部分來指定數(shù)據(jù)陣列360中存儲(chǔ)的特定高速緩存行;狀態(tài)字段366,該字段表明高速緩存行的一致性狀態(tài);以及LRU(最近最少使用)字段368,該字段表明高速緩存行相對(duì)于同一同余類中的其它高速緩存行而言的替換次序。高速緩存控制器380包括如上文參照?qǐng)D3A所討論的多個(gè)監(jiān)聽機(jī)器384和多個(gè)逐出機(jī)器386。作為對(duì)RC機(jī)器的替代,高速緩存控制器380包括服務(wù)于垂直連接的L2高速緩存230的數(shù)據(jù)請(qǐng)求的多個(gè)讀取(RD)機(jī)器382。II,示例性操作現(xiàn)在參照?qǐng)D4,描繪了圖1的數(shù)據(jù)處理系統(tǒng)100的本地或者系統(tǒng)互連110、114上的示例性#:作的時(shí)間-空間圖。雖然互連110、114并非必然地是總線式互連,但是在一個(gè)或者多個(gè)本地互連114和/或系統(tǒng)互連114上發(fā)送的操作在這里稱為"總線操作"以使它們區(qū)別于在處理器內(nèi)核200與駐留于它們自己的高速緩存層級(jí)結(jié)構(gòu)內(nèi)的高速緩存存儲(chǔ)器之間發(fā)送的CPU請(qǐng)求。所示總線操作始于主控(M)400如L2高速緩存230的RC機(jī)器332或者I/O控制器214在本地互連114和/或系統(tǒng)互連110上發(fā)出請(qǐng)求402。請(qǐng)求402優(yōu)選地包括表明希望訪問的類型的事務(wù)類型和表明該請(qǐng)求所要訪問的資源的資源標(biāo)識(shí)符(例如真實(shí)地址)。普通類型的請(qǐng)求優(yōu)選地包括下面在表I中闡述的請(qǐng)求。表I<table>tableseeoriginaldocumentpage15</column></row><table>DCBZ(數(shù)據(jù)高速緩存塊零)請(qǐng)求用以創(chuàng)建存儲(chǔ)器塊的新唯一高速緩存副本而不考慮它的當(dāng)前狀態(tài)并且隨后修改它的內(nèi)容的權(quán)限;如果有其它副本則要求破壞其它副本逐出在準(zhǔn)備破壞高級(jí)別副本時(shí)將存儲(chǔ)器塊的映像從高級(jí)別存儲(chǔ)器復(fù)制到低級(jí)別存儲(chǔ)器;驅(qū)入是從高級(jí)別高速緩存存儲(chǔ)器接收的逐出。寫入請(qǐng)求用以創(chuàng)建存儲(chǔ)器塊的新唯一副本而不考慮它的當(dāng)前狀態(tài)并且立刻在準(zhǔn)備破壞高級(jí)別副本時(shí)將存儲(chǔ)器塊的映像從高級(jí)別存儲(chǔ)器復(fù)制到低級(jí)別存儲(chǔ)器的權(quán)限部分寫入請(qǐng)求用以創(chuàng)建部分存儲(chǔ)器塊(partialmemoryblock)的新唯一副本而不考慮它的當(dāng)前狀態(tài)并且立即在準(zhǔn)備破壞高級(jí)別副本時(shí)將該部分存儲(chǔ)器塊的映像從高_(dá)級(jí)別存儲(chǔ)器復(fù)制到低級(jí)別存儲(chǔ)器的權(quán)限_請(qǐng)求402由監(jiān)聽器412接收,該監(jiān)聽器比如是L2高速緩存230的監(jiān)聽機(jī)器334、L3高速緩存232的監(jiān)聽機(jī)器384和存儲(chǔ)器控制器206(圖2)。一般而言,除例外的情況之外,與發(fā)出了請(qǐng)求402的RC機(jī)器232和所連接的L3高速緩存232的監(jiān)聽才幾器384在同一L2高速緩存230中的監(jiān)聽機(jī)器334并不監(jiān)聽請(qǐng)求402(即一般沒有自監(jiān)聽),因?yàn)橹挥性谔幚韱卧?04不能內(nèi)部地服務(wù)于請(qǐng)求402時(shí)才在本地互連114和/或系統(tǒng)互連110上發(fā)送請(qǐng)求402。收到請(qǐng)求402的各監(jiān)聽器412可以提供相應(yīng)的部分響應(yīng)406,該部分響應(yīng)代表了至少該監(jiān)聽器對(duì)請(qǐng)求402的響應(yīng)。存儲(chǔ)器控制器206例如基于存儲(chǔ)器控制器206是否負(fù)責(zé)請(qǐng)求地址以及它是否具有可用來服務(wù)于該請(qǐng)求的資源來確定所要提供的部分響應(yīng)406。L2或者L3高速緩存可以例如基于它的L2高速緩存目錄的可用性、用以處理該請(qǐng)求的監(jiān)聽機(jī)器的可用性以及與高速緩存目錄中的請(qǐng)求地址相關(guān)聯(lián)的一致性狀態(tài)來確定它的部分響應(yīng)406。監(jiān)聽器412的部分響應(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)410l是供給總線操作的主控和監(jiān)聽器以表明針對(duì)請(qǐng)求402的系統(tǒng)范圍的響應(yīng)(例如成功、失敗、重試等)。如果CR410表明請(qǐng)求402成功,則CR410可以例如表明用于所請(qǐng)求的存儲(chǔ)器塊的數(shù)據(jù)源、將用以對(duì)所請(qǐng)求的存儲(chǔ)器塊進(jìn)行高速緩存的高速緩存狀態(tài)以及是否要求用以在一個(gè)或者多個(gè)L2高速緩存230或者L3高速緩存232中使所請(qǐng)求的存儲(chǔ)器塊無效的"清除"操作。響應(yīng)于收到組合響應(yīng)410,一個(gè)或者多個(gè)主控400和監(jiān)聽器412通常執(zhí)行一個(gè)或者多個(gè)操作以便服務(wù)于請(qǐng)求402。這些操作可以包括將數(shù)據(jù)供應(yīng)給主控400、無效或者用別的方式更新在一個(gè)或者多個(gè)L2或者L3高速緩存中高速緩存的數(shù)據(jù)的一致性狀態(tài)、執(zhí)行逐出操作、將數(shù)據(jù)寫回到系統(tǒng)存儲(chǔ)器108等。如果請(qǐng)求402提出要求,則在響應(yīng)邏輯210生成組合響應(yīng)410之前或者之后,所請(qǐng)求的存儲(chǔ)器塊或者目標(biāo)存儲(chǔ)器塊可以被發(fā)送到主控400或者被從主控400發(fā)送。在如下描述中,將針對(duì)由請(qǐng)求所指定的請(qǐng)求地址關(guān)于監(jiān)聽器是否為一致性最高點(diǎn)(HPC)、一致性最低點(diǎn)(LPC)或者二者都不是來描述監(jiān)聽器412對(duì)請(qǐng)求的部分響應(yīng)以及該監(jiān)聽器響應(yīng)于該請(qǐng)求和/或它的組合響應(yīng)而執(zhí)行的操作。在此將LPC限定為作為用于存儲(chǔ)器塊的存儲(chǔ)庫(repository)來使用的存儲(chǔ)器設(shè)備。在沒有用于存儲(chǔ)器塊的HPC時(shí),LCP保持存儲(chǔ)器塊的真正映像并且具有用以準(zhǔn)許或者拒絕對(duì)生成存儲(chǔ)器塊附加高速緩存副本的請(qǐng)求的權(quán)限。對(duì)于在圖1和圖2的數(shù)據(jù)處理系統(tǒng)實(shí)施例中的典型請(qǐng)求,LPC將是如下存儲(chǔ)器控制器206,該存儲(chǔ)器控制器用于對(duì)所引用的存儲(chǔ)器塊進(jìn)行保持的系統(tǒng)存儲(chǔ)器108。HPC在這里限定為唯一標(biāo)識(shí)的設(shè)備,該設(shè)備對(duì)存儲(chǔ)器塊的真正映像進(jìn)行高速緩存(可以與或者可以不與在LPC的對(duì)應(yīng)存儲(chǔ)器塊相一致)并且具有用以準(zhǔn)許或者拒絕對(duì)修改存儲(chǔ)器塊的請(qǐng)求的權(quán)限。作為描述,HPC也可以響應(yīng)于不對(duì)存儲(chǔ)器塊進(jìn)行修改的操作向請(qǐng)求者提供存儲(chǔ)器塊的副本。由此,對(duì)于在圖1和圖2的數(shù)據(jù)處理系統(tǒng)實(shí)施例中的典型請(qǐng)求,如果有HPC則該HPC將是L2高速緩存230。雖然其它指示符可以用來標(biāo)識(shí)用于存儲(chǔ)器塊的HPC,但是如果有HPC則本發(fā)明的優(yōu)選實(shí)施例利用在L2高速緩存230的L2高速緩存目錄310或者L3高速緩存232的L3高速緩存目錄362內(nèi)的一個(gè)或者多個(gè)所選高速緩存一致性狀態(tài)來標(biāo)識(shí)用于存儲(chǔ)器塊的該HPC,這一點(diǎn)將在下文中參照表II進(jìn)一步描述。仍然參照?qǐng)D4,如果有用于在請(qǐng)求402中引用的存儲(chǔ)器塊的HPC則該HPC優(yōu)選地負(fù)責(zé)在保護(hù)窗口404a期間保護(hù)響應(yīng)于請(qǐng)求402而對(duì)存儲(chǔ)器塊所有權(quán)的轉(zhuǎn)移,或者在沒有HPC時(shí)存儲(chǔ)器塊的LPC優(yōu)選地負(fù)責(zé)在保護(hù)窗口404a期間保護(hù)響應(yīng)于請(qǐng)求402而對(duì)存儲(chǔ)器塊所有權(quán)的轉(zhuǎn)移。在圖4所示示例性方案中,監(jiān)聽器412(它是用于由請(qǐng)求402的請(qǐng)求地址指定的存儲(chǔ)器塊的HPC)在保護(hù)窗口404a期間保護(hù)所請(qǐng)求的存儲(chǔ)器塊的所有權(quán)向主控232的轉(zhuǎn)移,該保護(hù)窗口從監(jiān)聽器236確定它的部分響應(yīng)406的時(shí)刻延伸到監(jiān)聽器412收到組合響應(yīng)410為止。在保護(hù)窗口404a期間,監(jiān)聽器412通過向指定了同一請(qǐng)求地址的其它請(qǐng)求提供部分響應(yīng)406來保護(hù)對(duì)所有權(quán)的轉(zhuǎn)移,這些部分響應(yīng)防止其它主控在所有一又已經(jīng)成功轉(zhuǎn)移到主控400之前獲得所有權(quán)。主控400類似地啟動(dòng)保護(hù)窗口404b,以在收到組合響應(yīng)410之后保護(hù)它對(duì)在請(qǐng)求402中所請(qǐng)求的存儲(chǔ)器塊的所有權(quán)。III.數(shù)據(jù)遞送域常規(guī)的基于廣播的數(shù)據(jù)處理系統(tǒng)通過廣播通信來處理高速緩存一致性和數(shù)據(jù)遞送,在常規(guī)系統(tǒng)中,該廣播通信在系統(tǒng)互連上被至少發(fā)送到系統(tǒng)中的所有存儲(chǔ)器控制器和高速緩存層級(jí)結(jié)構(gòu)。與具有可選架構(gòu)和類似規(guī)模的系統(tǒng)相比,基于廣播的系統(tǒng)往往能提供減少的訪問延遲以及對(duì)共享存儲(chǔ)器塊的更佳數(shù)據(jù)處理和一致性管理。隨著基于廣播的系統(tǒng)在規(guī)模上擴(kuò)張,在系統(tǒng)互連上的業(yè)務(wù)量倍增,這意味著系統(tǒng)成本隨著系統(tǒng)規(guī)模急劇上升,這是因?yàn)樾枰鄮捰糜谙到y(tǒng)互連上的通信。也就是說,具有m個(gè)處理器內(nèi)核(各處理器內(nèi)核具有n個(gè)事務(wù)的平均業(yè)務(wù)量)的系統(tǒng)具有業(yè)務(wù)量wx,這意味著在基于廣播系統(tǒng)中的業(yè)務(wù)量乘法式地而不是加法式地?cái)U(kuò)張。除了對(duì)于基本上更大互連帶寬的要求以外,系統(tǒng)規(guī)模的增加的次級(jí)效應(yīng)是增加一些訪問延遲。例如,讀取數(shù)據(jù)的訪問延遲在最壞情況下受限于最遠(yuǎn)的低級(jí)別高速緩存的組合響應(yīng)延遲,該低級(jí)別高速緩存在共享一致性狀態(tài)下保持所請(qǐng)求的存儲(chǔ)器塊,可以從該存儲(chǔ)器塊中提供所請(qǐng)求的數(shù)據(jù)。為了在仍然保持基于廣播的系統(tǒng)的優(yōu)點(diǎn)的同時(shí)減少系統(tǒng)互連要求和訪問延遲,允許分布在整個(gè)數(shù)據(jù)處理系統(tǒng)100上的多個(gè)L2高速緩存230在"特殊"共享一致性狀態(tài)下保持同一存儲(chǔ)器塊的副本,該"特殊"共享一致性狀態(tài)使得這些高速緩存可以使用高速緩存到高速緩存的干預(yù)將存儲(chǔ)器塊供應(yīng)給進(jìn)行請(qǐng)求的L2高速緩存230。為了在SMP數(shù)據(jù)處理系統(tǒng)如數(shù)據(jù)處理系統(tǒng)100中針對(duì)共享存儲(chǔ)器塊實(shí)施多個(gè)并行的分布式源,必須解決兩個(gè)問題。首先,必須實(shí)施某一規(guī)則,該規(guī)則對(duì)在上文間接提到的"特殊"共享一致性狀態(tài)下創(chuàng)建存儲(chǔ)器塊的副本進(jìn)行支配。其次,必須有如下規(guī)則,該規(guī)則支配了哪個(gè)監(jiān)聽L2高速緩存230(如果有)例如響應(yīng)于總線讀取操作或者總線RWITM操作而將共享存儲(chǔ)器塊提供給進(jìn)行請(qǐng)求的L2高速緩存230。這兩個(gè)問題在這里通過實(shí)施數(shù)據(jù)源域來解決。特別地,SMP數(shù)據(jù)處理系統(tǒng)內(nèi)的各域(其中域被限定為包括參與對(duì)數(shù)據(jù)請(qǐng)求進(jìn)行響應(yīng)的一個(gè)或者多個(gè)低級(jí)別(例如L2或者L3)高速緩存)一次只允許包括一個(gè)高速緩存,該高速緩存在"特殊"共享一致性狀態(tài)下保持特定存儲(chǔ)器塊。如果當(dāng)同一域中進(jìn)行請(qǐng)求的高速緩存發(fā)起總線讀取型(例如讀取或者RWITM)操作時(shí)該高速緩存存在,則該高速緩存負(fù)責(zé)將所請(qǐng)求的存儲(chǔ)器塊提供給進(jìn)行請(qǐng)求的高速緩存。雖然可以限定很多不同的域大小,但是在圖1的數(shù)據(jù)處理系統(tǒng)100中,為了方便而將各處理節(jié)點(diǎn)102(即MCM)視為數(shù)據(jù)源域。下文參照表II來描述這樣的"特殊"共享狀態(tài)(例如Sl和Slg)的例子。IV,—致性域盡管如上所述的數(shù)據(jù)遞送域的實(shí)施改進(jìn)了數(shù)據(jù)訪問延遲,但是這一增強(qiáng)沒有解決業(yè)務(wù)量隨著系統(tǒng)規(guī)模增加而發(fā)生的mx"倍增。為了在仍然維持基于廣播的一致性機(jī)制的同時(shí)減少業(yè)務(wù)量,本發(fā)明的優(yōu)選實(shí)施例還實(shí)施一致性域,類似于前文描述的數(shù)據(jù)遞送域,該一致性域能夠方便地但并不要求利用形成分立一致性域的各處理節(jié)點(diǎn)102來實(shí)施。數(shù)據(jù)遞送域和一致性域可以是但并不要求是共同擴(kuò)展的,并且出于說明數(shù)據(jù)處理系統(tǒng)100的示例性操作的目的而在下文中被假設(shè)為具有由處理節(jié)點(diǎn)102來限定的邊界。在并非所有一致性域都參與對(duì)請(qǐng)求的服務(wù)的情況下,一致性域的實(shí)施通過限制通過系統(tǒng)互連110上的域間廣播通信來減少系統(tǒng)業(yè)務(wù)。例如,如果處理節(jié)點(diǎn)102a的處理單元104a有總線讀取操作要發(fā)出,則處理單元104a可以選擇首先將總線讀取操作廣播到在它自己的一致性域(例如處理節(jié)點(diǎn)102a)內(nèi)的所有參與者但不廣播到在其它一致性域(例如處理節(jié)點(diǎn)102b)中的參與者。僅向在與廣播操作的主控在同——致性域內(nèi)的那些參與者所發(fā)送的該操作在這里被定義為"本地操作"。如果能夠在處理單元104a的一致性域內(nèi)服務(wù)于本地總線讀取操作,則不執(zhí)行對(duì)總線讀取操作的進(jìn)一步廣播。然而,如果對(duì)本地總線讀取操作的部分響應(yīng)和組合響應(yīng)表明不能僅在處理節(jié)點(diǎn)102a的一致性域內(nèi)服務(wù)于總線讀取操作,則廣播的范圍可以擴(kuò)展到除了包括本地一致性域之外還包括一個(gè)或者多個(gè)附加一致性域。在基本實(shí)施中,利用兩個(gè)廣播范圍"本地"范圍,僅包括本地一致性域;以及"全局范圍",包括在SMP數(shù)據(jù)處理系統(tǒng)中的所有其它一致性域。由此,向SMP數(shù)據(jù)處理系統(tǒng)中的所有一致性域發(fā)送的操作在這里被定義為"全局操作"。重要的是,無論是利用本地操作還是范圍更廣的操作(例如全局操作)來服務(wù)于操作,在SMP數(shù)據(jù)處理系統(tǒng)中的所有一致性域上都維持高速緩存一致性。本地操作和全局操作的例子在美國(guó)專利申請(qǐng)第11/055,697號(hào)中進(jìn)行了具體描述,在此通過引用的方式包含其全部?jī)?nèi)容。在優(yōu)選實(shí)施例中,操作的范圍在總線操作中由本地/全局范圍指示符(信號(hào))來表明,在一個(gè)實(shí)施例中,該指示符可以包括1位的標(biāo)志。在處理單元104內(nèi)的轉(zhuǎn)發(fā)邏輯212優(yōu)選地基于在經(jīng)由本地互連114接收的操作中的本地/全局范圍指示符(信號(hào))的設(shè)置來確定是否將該操作轉(zhuǎn)發(fā)到系統(tǒng)互連110上。V.域指示符為了限制對(duì)所不需要的本地操作進(jìn)行發(fā)出并且由此減少操作延遲和保留本地互連上的附加帶寬,本發(fā)明優(yōu)選地針對(duì)每一存儲(chǔ)器塊實(shí)施如下域指示符,該指示符表明關(guān)聯(lián)存儲(chǔ)器塊的副本是否被高速緩存在本地一致性域以外。例如,圖5描繪了根據(jù)本發(fā)明的域指示符的第一示例性實(shí)施例。如圖5中所示,可以在動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)中實(shí)施的系統(tǒng)存儲(chǔ)器108存儲(chǔ)多個(gè)存儲(chǔ)器塊500。系統(tǒng)存儲(chǔ)器108與各存儲(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位指示符如果完全僅在與作為用于存儲(chǔ)器塊500的LPC來使用的存儲(chǔ)器控制器206相同的一致性域內(nèi)對(duì)關(guān)聯(lián)存儲(chǔ)器塊500進(jìn)行高速緩存,則設(shè)置該1位指示符(例如設(shè)置為'1,以表明"本地")。否則,就重置域指示符504(例如重置為'O,以表明"全局")??梢圆痪_地實(shí)施將域指示符504設(shè)置為表明"本地",這是因?yàn)殄e(cuò)誤設(shè)置"全局"不會(huì)引起任何一致性錯(cuò)誤,但是這可能造成對(duì)操作的不必要的全局廣播。響應(yīng)于操作來提供存儲(chǔ)器塊的存儲(chǔ)器控制器206優(yōu)選地與所請(qǐng)求的存儲(chǔ)器塊相結(jié)合地發(fā)送關(guān)聯(lián)域指示符504。VI.示例性一致性協(xié)議在優(yōu)選實(shí)施例中,L2高速緩存230和L3高速緩存232利用公知MESI(修改、獨(dú)占、共享、無效)協(xié)議的變型。除了提供(l)高速緩存是否為用于存儲(chǔ)器塊的HPC這一指示之外,一致性狀態(tài)集也表明(2)高速緩存副本在那一存儲(chǔ)器層級(jí)結(jié)構(gòu)級(jí)別的高速緩存之中是否唯一(即為僅有的高速緩存副本)、(3)高速緩存是否以及何時(shí)能夠?qū)⒋鎯?chǔ)器塊的副本提供給請(qǐng)求的主控以及(4)存儲(chǔ)器塊的高速緩存映像是否與LPC中的對(duì)應(yīng)存儲(chǔ)器塊相一致??梢栽谙旅嬖诒鞩I中所總結(jié)的一致性協(xié)議狀態(tài)中表達(dá)這四個(gè)屬性。<table>tableseeoriginaldocumentpage21</column></row><table><table>tableseeoriginaldocumentpage22</column></row><table><table>tableseeoriginaldocumentpage23</column></row><table><table>tableseeoriginaldocumentpage24</column></row><table>要求使標(biāo)記無效、用數(shù)據(jù)更新存儲(chǔ)器以及向MC表明該域位應(yīng)當(dāng)設(shè)置成'全局'。Te標(biāo)記獨(dú)占狀態(tài)數(shù)據(jù)和標(biāo)記有效。數(shù)據(jù)未被修改并且由這一高速緩存提供給在這一域以外的另一主控(即在過去某一時(shí)間處于Me狀態(tài),并且共享副本被提供給遠(yuǎn)程一致性域中的另一高速緩存)。從這一狀態(tài),將不會(huì)經(jīng)由干預(yù)將數(shù)據(jù)提供給另一L2,直至收到表明沒有其它L2/L3在提供數(shù)據(jù)(即如果沒有L2/L3是Sl或者Slg)的組合響應(yīng)。Te行的逐出僅要求使標(biāo)記無效以及向MC表明該域位應(yīng)當(dāng)設(shè)置成'全局,(即數(shù)據(jù)無需逐出到存儲(chǔ)器)。來自這一域以外主控的監(jiān)聽讀取命中(Me)。M修改狀態(tài)數(shù)據(jù)和標(biāo)記有效。數(shù)據(jù)已#:修改并且被獨(dú)占地?fù)碛?。高速緩存行無法在任何其它高速緩存行中有效。從這一狀態(tài),能夠經(jīng)由干預(yù)將數(shù)據(jù)提供給另一L2(在本地MCM或者遠(yuǎn)程MCM中)。處理器內(nèi)核數(shù)據(jù)存儲(chǔ)或者DCBZ。Me修改獨(dú)占狀態(tài)數(shù)據(jù)和標(biāo)記有效。數(shù)據(jù)就系統(tǒng)存儲(chǔ)器而言未纟皮修改并且纟皮這一L2/L3獨(dú)占。高速緩存行無法在任何其它高速緩存行中有LPC供應(yīng)lt據(jù)并且其它高速緩存未被共享。<table>tableseeoriginaldocumentpage26</column></row><table>在參照?qǐng)D1而描述的數(shù)據(jù)處理系統(tǒng)IOO的實(shí)施例中,域指示符由L2/L3高速緩存230和232與關(guān)聯(lián)存儲(chǔ)器塊相結(jié)合地接收并且可以可選地與存儲(chǔ)器塊一起存儲(chǔ)于數(shù)據(jù)陣列310、360中。盡管這一布局使得可以簡(jiǎn)化用于域指示符的數(shù)據(jù)流,但是當(dāng)?shù)谝籐2高速緩存230通過供應(yīng)所請(qǐng)求的存儲(chǔ)器塊而對(duì)駐留于不同的一致性域中的第二L2高速緩存230的總線RWITM操作做出響應(yīng)時(shí),沒有"全局"指示符保持被高速緩存于本地一致性域中。由此,必須訪問LPC以確定是否知道要完全地還是僅局部地對(duì)存儲(chǔ)器塊進(jìn)行高速緩存。因而,如果用于存儲(chǔ)器塊的HPC從遠(yuǎn)程一致性域中的請(qǐng)求者收到總線RWITM操作(或者其它存儲(chǔ)修改操作),則系統(tǒng)利用重試-推送來做出響應(yīng),該重試-推送包括對(duì)所請(qǐng)求的存儲(chǔ)器塊的高速緩存逐出以及對(duì)總線RWITM操作的重試。正如將理解到的,消除與重試-推送操作相關(guān)聯(lián)的延遲和帶寬利用將是優(yōu)選的。為了減少對(duì)域指示的訪問延遲,提供了Ig(無效全局)、Sg(共享全局)和Slg(共享本地全局)一致性狀態(tài)。Ig狀態(tài)在這里定義為表明如下各項(xiàng)的高速緩存一致性狀態(tài)(1)高速緩存陣列中的關(guān)聯(lián)存儲(chǔ)器塊無效;(2)高速緩存目錄中的地址標(biāo)記有效;以及(3)地址標(biāo)記所標(biāo)識(shí)的存儲(chǔ)器塊的經(jīng)修改副本被提供給遠(yuǎn)程一致性域中的高速緩存。Sg狀態(tài)在這里定義為表明如下各項(xiàng)的高速緩存一致性狀態(tài)(1)高速緩存陣列中的關(guān)聯(lián)存儲(chǔ)器塊有效;(2)高速緩存目錄中的地址標(biāo)記有效;(3)地址標(biāo)記所標(biāo)識(shí)的存儲(chǔ)器塊的經(jīng)修改副本被提供給遠(yuǎn)程一致性域中的高速緩存;以及(4)存儲(chǔ)器塊的副本被保持并且可能仍然保持于另一高速緩存中。類似地,Slg狀態(tài)在這里定義為表明如下各項(xiàng)的高速緩存一致性狀態(tài)(1)高速緩存陣列中的關(guān)聯(lián)存儲(chǔ)器塊有效;(2)高速緩存目錄中的地址標(biāo)記有效;(3)地址標(biāo)記所標(biāo)識(shí)的存儲(chǔ)器塊的進(jìn)修改副本被提供給遠(yuǎn)程一致性域中的高速緩存;(4)存儲(chǔ)器塊的副本被保持并且可能仍然保持于另一高速緩存中;以及(5)高速緩存具有用以通過高速緩存到高速緩存的數(shù)據(jù)干預(yù)將存儲(chǔ)器塊的副本提供給在它的一致性域中的主控的權(quán)限??梢詢?yōu)選地針對(duì)僅在如下一致性域中的給定存儲(chǔ)器塊形成lg、Sg和Slg狀態(tài),該一致性域包含用于該存儲(chǔ)器塊的LPC。在這樣的實(shí)施例中,必須實(shí)施一些4幾制(例如LPC的部分響應(yīng)以及后續(xù)的組合響應(yīng))以向提供所請(qǐng)求的存儲(chǔ)器塊的高速緩存表明LPC在它的本地一致性域內(nèi)。在不支持傳送"LPC在本地"這一指示的其它實(shí)施例中,可以在提供存儲(chǔ)器塊到遠(yuǎn)程一致性域時(shí)形成Ig、Sg或者Slg狀態(tài),因此可能不精確地形成Ig、Sg和Slg。數(shù)個(gè)規(guī)則支配了對(duì)Ig、Sg和Slg(統(tǒng)稱為Xg)高速緩存條目的選擇和替換。第一,如果高速緩存選擇Xg條目作為用于替換的犧牲者,則執(zhí)行對(duì)Xg條目的逐出(不同于當(dāng)選擇I或者S條目時(shí)的情況)。第二,對(duì)Xg狀態(tài)的逐出優(yōu)選地作為本地操作來執(zhí)行,或者如果作為全局操作來執(zhí)行則被逐出地址的遠(yuǎn)程LPC所忽略。如果允許Xg條目形成于不在與用于存儲(chǔ)器塊的LPC相同的一致性域內(nèi)的高速緩存中,則無需對(duì)LPC中的域指示符進(jìn)行更新。第四,對(duì)Xg狀態(tài)的逐出優(yōu)選地作為無數(shù)據(jù)僅地址的操作來執(zhí)行,其中域指示符被寫回到LPC(如果在執(zhí)行該逐出的高速緩存的本地)。由于包括Xg狀態(tài)的高速緩存目錄條目攜帶了潛在有用的信息,所以在至少一些實(shí)施中希望例如通過修改最近最少使用(LRU)算法來保持Xg狀態(tài)下的條目?jī)?yōu)先于具有同一基本狀態(tài)(例如S或者I)的其它條目,該LRU算法用來評(píng)價(jià)LRU字段318、368以選沖奪犧牲高速緩存條目以供替換。隨著Xg目錄條目保持于高速緩存中,這樣的條目有可能隨著時(shí)間變得"陳舊",這是因?yàn)槠洫?dú)占訪問請(qǐng)求引發(fā)了Xg狀態(tài)的形成的高速緩存可以解除對(duì)它的存儲(chǔ)器塊副本的分配或者回寫它的存儲(chǔ)器塊副本而不通知給在Xg狀態(tài)下保持存儲(chǔ)器塊的地址標(biāo)記的高速緩存。在這樣的情況下,錯(cuò)誤地表明應(yīng)當(dāng)發(fā)出全局操作而不是本地操作的"陳舊"Xg狀態(tài)不會(huì)造成任何一致性錯(cuò)誤,而是將僅僅造成本來利用本地操作就能得到服務(wù)的一些操作被作為全局操作來發(fā)出。發(fā)生此類低效情況的持續(xù)時(shí)間將受限于"陳舊"子g高速緩存條目的最終替換。即使當(dāng)沒有有效的存儲(chǔ)器塊副本保持被高速緩存于一致性域中時(shí)(在Ig的情況下),Xg—致性狀態(tài)的實(shí)施仍然通過針對(duì)一致性域中的存儲(chǔ)器塊維護(hù)高速緩存域指示符來提高通信效率。因而,用于存儲(chǔ)器塊的HPC能夠服務(wù)于來自遠(yuǎn)程一致性域的獨(dú)占訪問請(qǐng)求(例如總線RWITM或者總線DClaim操作)而無需重試請(qǐng)求和執(zhí)行將所請(qǐng)求的存儲(chǔ)器塊推送到LPC。VII.示例性L2/L3—致性狀態(tài)轉(zhuǎn)變現(xiàn)在參照?qǐng)D6,描繪了根據(jù)本發(fā)明優(yōu)選實(shí)施例對(duì)L3高速緩存執(zhí)行驅(qū)入的示例性方法的高級(jí)邏輯流程圖。圖6中所示處理涉及到L3高速緩存控制器380的操作。該處理始于方框600、然后繼續(xù)到方框602,該方框602描繪了由于高速緩存行被從源L2高速緩存230中逐出,所以L3高速緩存232(例如L3高速緩存232a)的L3高速緩存控制器380從它所連接到的L2高速緩存230之一(例如L2高速緩存230a)接收逐出請(qǐng)求。逐出請(qǐng)求包含目標(biāo)地址、驅(qū)入高速緩存行和驅(qū)入高速緩存行的高速緩存目錄狀態(tài)。以替換策略對(duì)L3高速緩存控制器380進(jìn)行編程以確定驅(qū)入高速緩存行是否將保存于它的數(shù)據(jù)陣列360中,并且如果是這樣,則在狀態(tài)字段366中針對(duì)高速緩存行確定適當(dāng)?shù)囊恢滦誀顟B(tài)。接著在方框604,高速緩存控制器380讀取L3高速緩存目錄362的標(biāo)記字段364以確定用于目標(biāo)地址的目錄條目是否已經(jīng)存在。如果目標(biāo)地址不在目標(biāo)字段364中,則該處理前進(jìn)到方框605,該方框描繪了高速緩存控制器380根據(jù)犧牲者的一致性狀態(tài)(例如Xg、M、T或者Tn)來選擇用于替換的犧牲高速緩存行,該高速緩存行可以被逐出到系統(tǒng)存儲(chǔ)器。該處理然后繼續(xù)到步驟606,其中高速緩存控制器380在L3數(shù)據(jù)陣列360中存儲(chǔ)從源L2高速緩存230接收的驅(qū)入高速緩存行并且在高速緩存目錄362內(nèi)創(chuàng)建對(duì)應(yīng)的高速緩存目錄條目。高速緩存控制器380根據(jù)在逐出請(qǐng)求中指定的狀態(tài)來設(shè)置目錄條目的一致性狀態(tài)字段366。隨后該處理在方框608結(jié)束?;氐椒娇?04,如果高速緩存控制器380確定用于驅(qū)入高速緩存行的目標(biāo)地址的目錄條目已經(jīng)在L3高速緩存目錄362內(nèi),則該處理繼續(xù)到方框610。方框610描繪了L3高速緩存控制器380根據(jù)驅(qū)入策略通過參照逐出請(qǐng)求來更新數(shù)據(jù)陣列360和高速緩存目錄362,這一點(diǎn)在下文中參照表in和圖7進(jìn)一步加以描述。如在本發(fā)明的優(yōu)選實(shí)施例中實(shí)施的,驅(qū)入指定了(1)驅(qū)入高速緩存行是被存儲(chǔ)于L3數(shù)據(jù)陣列360內(nèi)還是被丟棄;以及(2)高速緩存條目366中對(duì)應(yīng)條目的一致性狀態(tài)。在優(yōu)選實(shí)施例中,在下表III中總結(jié)了當(dāng)針對(duì)已經(jīng)在高速緩存目錄362中具有條目的高速緩存行執(zhí)行驅(qū)入時(shí)L3高速緩存232所實(shí)施的驅(qū)入策略。表III根據(jù)高速緩存行在L3高速緩存目錄362中的先前狀態(tài)以及在逐出請(qǐng)求中指定的一致性狀態(tài)來標(biāo)識(shí)在狀態(tài)字段366中的所得到的一致性狀態(tài)。表III<table>tableseeoriginaldocumentpage29</column></row><table><table>tableseeoriginaldocumentpage30</column></row><table>這一逐出策略還支配了對(duì)存儲(chǔ)于L3數(shù)據(jù)陣列360內(nèi)的存儲(chǔ)器塊是要予以保留還是要通過從源L2高速緩存230接收的驅(qū)入高速緩存行來改寫。對(duì)是否改寫高速緩存行數(shù)據(jù)的確定在表III中由具有下劃線的所得到的一致性狀態(tài)(例如M2i)來代表。如果所得到的一致性狀態(tài)轉(zhuǎn)變具有下劃行,則驅(qū)入高速緩存行取代先前的高速緩存數(shù)據(jù)行而存儲(chǔ)于L3高速緩存陣列360中。如果所得到的一致性狀態(tài)沒有下劃線,則保持高速緩存陣列360內(nèi)的高速緩存行,并且將狀態(tài)字段366中的一致性狀態(tài)更新為在表III中標(biāo)識(shí)的所得到的一致性狀態(tài)。具體參照表III的Sg行和Slg行,如果L3高速緩存目錄362中高速緩存行的當(dāng)前狀態(tài)是In、Ig或者I一致性狀態(tài)中的任意狀態(tài)并且驅(qū)入一致性狀態(tài)是Sg或者Slg,則用驅(qū)入一致性狀態(tài)來更新狀態(tài)字段366。同樣,如表III中的下劃線條目所示,高速緩存行在高速緩存陣列360中被驅(qū)入數(shù)據(jù)所取代。如果L3高速緩存目錄362中高速緩存行的當(dāng)前狀態(tài)是Sg而驅(qū)入一致性狀態(tài)是Slg,則用驅(qū)入一致性狀態(tài)來更新狀態(tài)字段366,使得保持通過高速緩存到高速緩存的干預(yù)來提供數(shù)據(jù)這一能力(如Slg中的'T,所示);然而,如果L3高速緩存目錄362中高速緩存行的當(dāng)前狀態(tài)是Sg狀態(tài)而驅(qū)入一致性狀態(tài)是Sg,則不對(duì)L3高速緩存232進(jìn)行一致性或者數(shù)據(jù)更新。類似地,如果L3高速緩存目錄362中的當(dāng)前狀態(tài)是Slg而驅(qū)入狀態(tài)是Sg或者Slg,則不對(duì)L3高速緩存232進(jìn)行一致性或者數(shù)據(jù)更新。如果L3高速緩存目錄362中高速緩存行的當(dāng)前狀態(tài)是S或者Sl而驅(qū)入一致性狀態(tài)是Sg,則高速緩存控制器380將狀態(tài)字段366從S更新成Sg或者從SI更新成Slg以保持應(yīng)當(dāng)更新域指示符504這一高速緩存指示。高速緩存控制器380響應(yīng)于收到驅(qū)入Slg—致性狀態(tài)來執(zhí)行類似的S狀態(tài)到Slg的一致性狀態(tài)更新。如表III中進(jìn)一步所示,L2和L3高速緩存兩者無法都包含Six狀態(tài)下的高速緩存行,這意味著Sl-Slg情況表明已經(jīng)出現(xiàn)錯(cuò)誤。如果L3當(dāng)前狀態(tài)是如Tx列和Mx列中所示的Tx或者M(jìn)x,則在來自L2的驅(qū)入時(shí)總是將這一信息保持于L3高速緩存內(nèi)。現(xiàn)在轉(zhuǎn)向表III的Sg列和Slg列,在驅(qū)入Tx—致性狀態(tài)的情況下,高速緩存控制器380執(zhí)行對(duì)數(shù)據(jù)陣列360的更新以及一致性狀態(tài)從Sg或者Slg到Tx的更新。在記錄于高速緩存目錄362內(nèi)的先前一致性狀態(tài)是Slg的各其它情況下,并不響應(yīng)于收到驅(qū)入而執(zhí)行數(shù)據(jù)或者一致性狀態(tài)更新。對(duì)于高速緩存目錄362中標(biāo)記為Sg的高速緩存行,高速緩存控制器380響應(yīng)于Sl或者Slg—致性狀態(tài)下的驅(qū)入高速緩存行來執(zhí)行一致性狀態(tài)從Sg到Slg的更新,但是對(duì)于In、Ig、Sg或者S—致性狀態(tài)下的驅(qū)入則不執(zhí)行數(shù)據(jù)或者一致性狀態(tài)更新?,F(xiàn)在參照?qǐng)D7,圖示了根據(jù)本發(fā)明優(yōu)選實(shí)施例響應(yīng)于收到逐出請(qǐng)求而在L3高速緩存中實(shí)施驅(qū)入策略的示例性方法的高級(jí)邏輯流程圖。該處理例如響應(yīng)于在圖6的方框604處的肯定確定而始于方框700、然后前進(jìn)到方框704,該方框704圖示了L3高速緩存控制器380檢查逐出請(qǐng)求以確定犧牲高速緩存行的指定一致性狀態(tài)。此外,在方框706處,L3高速緩存控制器380讀取高速緩存目錄362中相關(guān)條目的狀態(tài)字段366以便針對(duì)驅(qū)入高速緩存行確定現(xiàn)有一致性狀態(tài)。該處理然后繼續(xù)到方框708,該方框圖示了L3高速緩存控制器380根據(jù)在表I11中總結(jié)的驅(qū)入策略來確定L3高速緩存目錄362中適當(dāng)?shù)乃玫降囊恢滦誀顟B(tài)。這一確定能夠例如通過參照L3高速緩存232內(nèi)非易失性存儲(chǔ)器中的狀態(tài)表來進(jìn)行。在可選實(shí)施例中,L3高速緩存控制器380可以通過執(zhí)行軟件或者通過由集成電路所執(zhí)行的計(jì)算來進(jìn)行在方框708所示的確定。該處理然后繼續(xù)到方框710,該方框描繪了L3高速緩存控制器380基于在方框708確定的所得到的一致性狀態(tài)來確定是否將對(duì)用于犧牲高速緩存行的現(xiàn)有一致性狀態(tài)進(jìn)行更新。如果將要更新當(dāng)前狀態(tài),則該處理繼續(xù)到方框712,該方框表示了高速緩存控制器380利用在方框708確定的所得到的一致性狀態(tài)來改寫高速緩存目錄362中的一致性狀態(tài)。該處理從方框712繼續(xù)到判決方框714或者如果將不進(jìn)行對(duì)一致性狀態(tài)的更新則從方框710繼續(xù)到判決方框714,該方框714圖示了高速緩存控制器380確定驅(qū)入策略是否表明要在L3數(shù)據(jù)陣列360中存儲(chǔ)從L2高速緩存230接收的驅(qū)入高速緩存行。如果是這樣,則該處理繼續(xù)到方框716,該方框描述了高速緩存控制器380在L3數(shù)據(jù)陣列360中存儲(chǔ)驅(qū)入高速緩存行,由此針對(duì)驅(qū)入目標(biāo)地址而改寫先前存儲(chǔ)的高速緩存數(shù)據(jù)行。在方框716之后或者如果將不執(zhí)行數(shù)據(jù)更新則在方框714之后,該處理在方框718結(jié)束。除了影響如上文參照表III以及圖6和圖7所討論的執(zhí)行L3驅(qū)入操作的方式之外,根據(jù)本發(fā)明的Sg和Slg—致性狀態(tài)的實(shí)施也簡(jiǎn)化了高級(jí)別高速緩存如L2高速緩存230響應(yīng)于收到在由Ig—致性狀態(tài)下的L2高速緩存保持的高速緩存行上命中的CPU讀取請(qǐng)求或者CPU更新請(qǐng)求來執(zhí)行的操作。為了便于理解響應(yīng)于這樣的操作方案(在圖9中示出)而在L2高速緩存230中進(jìn)行處理的示例性方法,將首先參照?qǐng)D8描述在L2高速緩存中進(jìn)行處理的常規(guī)方法?,F(xiàn)在參照?qǐng)D8,描繪了示出由現(xiàn)有技術(shù)的L2高速緩存響應(yīng)于收到在由Ig—致性狀態(tài)下的L2高速緩存保持的高速緩存行上命中的CPU讀取請(qǐng)求而執(zhí)行的操作的時(shí)序圖。如圖所示,該處理始于現(xiàn)有技術(shù)的L2高速緩存從其關(guān)聯(lián)處理器內(nèi)核收到CPU讀取請(qǐng)求800時(shí)。響應(yīng)于收到CPU讀取請(qǐng)求,L2高速緩存如在參考標(biāo)號(hào)802處所示地分配RC機(jī)器以服務(wù)于該請(qǐng)求并且如在參考標(biāo)號(hào)804處所示地發(fā)起對(duì)它的高速緩存目錄的目錄讀取。響應(yīng)于確定高速緩存目錄中的一致性狀態(tài)是Ig,現(xiàn)有技術(shù)的L2高速緩存也如在參考標(biāo)號(hào)806處所示地分配CO機(jī)器以便將系統(tǒng)存儲(chǔ)器中的域指示符更新成"全局"狀態(tài)從而維護(hù)一致性。RC和CO機(jī)器的操作的完成是異步的,這意味著這些操作能夠以任何次序完成。如果RC機(jī)器在時(shí)刻t0完成它的4乘作而C04幾器在時(shí)刻tl完成它的#:作,則形成一致性解析窗口810。到時(shí)刻t0,RC才幾器已經(jīng)更新了目錄(例如更新成"共享,,)以反映新獲取的高速緩存行的狀態(tài),但是CO機(jī)器在時(shí)刻tl之前仍然在活動(dòng)地進(jìn)行逐出。通常,當(dāng)確定對(duì)在互連上所監(jiān)聽的操作的部分響應(yīng)時(shí),僅考慮L2高速緩存中的活動(dòng)機(jī)器所反映的一致性狀態(tài)。然而,對(duì)于以正在由CO機(jī)器處理的同一高速緩存行為目標(biāo)、在一致性解析窗口810期間所監(jiān)聽的操作而言,這一策略并不充分,并且在確定要針對(duì)所監(jiān)聽的操作而提供的部分響應(yīng)時(shí)必須考慮由活動(dòng)的逐出機(jī)器反映的目錄狀態(tài)和一致性狀態(tài)。無法做到這一點(diǎn)可能造成在進(jìn)行請(qǐng)求的L2高速緩存處形成錯(cuò)誤的一致性狀態(tài),從而導(dǎo)致一致性損失。因而,必須在L2高速緩存內(nèi)實(shí)施特殊的一致性解析邏輯以處理針對(duì)在一致性解析窗口800期間的正在由CO機(jī)器處理的同一高速緩存行的監(jiān)聽。L2高速緩存的設(shè)計(jì)并且特別是它在圖8中所示操作方案中的一致性處理的設(shè)計(jì)通過根據(jù)本發(fā)明的Sl和Slg—致性狀態(tài)的實(shí)施來簡(jiǎn)化?,F(xiàn)在參照?qǐng)D9,圖示了根據(jù)本發(fā)明在高級(jí)別高速緩存如L2高速緩存230中進(jìn)行一致性處理的示例性方法的高級(jí)邏輯流程圖。如圖所示,該處理始于方框900、然后繼續(xù)到方框902,該方框圖示了更新請(qǐng)求。響應(yīng)于收到一般包括標(biāo)識(shí)了請(qǐng)求類型的事務(wù)類型(TTYPE)以及目標(biāo)地址的CPU請(qǐng)求,L2高速緩存230的L2高速緩存控制器330利用目標(biāo)地址來訪問它的高速緩存目錄312以針對(duì)目標(biāo)地址確定它的一致性狀態(tài)并且指派RC機(jī)器332以服務(wù)于CPU請(qǐng)求(方框904)。如在方框906處所示,如果高速緩存控制器330確定一致性狀態(tài)是Ig,則高速緩存控制器330如在方框920和后續(xù)方框處所示地服務(wù)于CPU請(qǐng)求。如果一致性狀態(tài)不是Ig,則高速緩存控制器330利用在方框910處所示的其它處理來服務(wù)于CPU請(qǐng)求。現(xiàn)在參照方框920,響應(yīng)于確定用于CPU請(qǐng)求的目標(biāo)存儲(chǔ)器塊的一致性狀態(tài)在L2高速緩存目錄312中是Ig,則所指派的RC機(jī)器332確定TTYPE是否表明CPU更新請(qǐng)求,并且如果是這樣,則在所有本地和全局互連110、114上發(fā)出全局范圍的總線RWITM才喿作以獲得目標(biāo)存儲(chǔ)器塊的獨(dú)占副本(方框922)。RC機(jī)器332基于由Ig一致性狀態(tài)所提供的不精確指示來選擇全局操作范圍,該指示表明存儲(chǔ)器塊的已更新副本駐留于遠(yuǎn)程一致性域中。當(dāng)收到目標(biāo)存儲(chǔ)器塊的副本時(shí),RC機(jī)器332將目標(biāo)存儲(chǔ)器塊放入數(shù)據(jù)陣列310中并且將L2高速緩存目錄312中對(duì)應(yīng)條目的一致性狀態(tài)從Ig更新成M,如在方框924處所示。隨后,解除對(duì)RC才幾器332的分配,并且該處理在方框940結(jié)束。再次參照方框920,如果RC機(jī)器332根據(jù)CPU請(qǐng)求的TTYPE確定它是CPU讀取請(qǐng)求,則該處理前進(jìn)到方框930。方框930圖示了RC機(jī)器332發(fā)出全局范圍的總線讀取操作以獲得目標(biāo)存儲(chǔ)器塊的副本。RC機(jī)器232再次基于由Ig—致性狀態(tài)所提供的不精確指示來選擇全局操作范圍,該指示表明存儲(chǔ)器塊的已更新副本駐留于遠(yuǎn)程一致性域中。響應(yīng)于收到所請(qǐng)求的存儲(chǔ)器塊,RC機(jī)器332將存儲(chǔ)器塊放入數(shù)據(jù)陣列310中并且將高速緩存目錄312中對(duì)應(yīng)條目的狀態(tài)字段316從Ig—致性狀態(tài)更新成Slg狀態(tài)或者M(jìn)e狀態(tài)之一,如在方框932處所示。特別地,如果存儲(chǔ)器控制器206已提供過存儲(chǔ)器塊并且沒有其它高速緩存保持該存儲(chǔ)器塊的副本,則RC機(jī)器332將一致性狀態(tài)更新成Me,否則就將一致性狀態(tài)更新成Slg。隨后,解除對(duì)RC機(jī)器332的分配,并且該處理在方框940結(jié)束。正如將理解到的j艮據(jù)本發(fā)明的Sg和Slg—致性狀態(tài)的實(shí)施在至少兩個(gè)方面簡(jiǎn)化了一致性處理。第一,由于對(duì)Ig狀態(tài)所代表的域指示符的全局狀態(tài)的高速緩存指示能夠按照Sg或者Slg—致性狀態(tài)保持于高速緩存目錄中,所以在針對(duì)CPU讀取請(qǐng)求的Ig命中情況下不分配CO機(jī)器336來逐出Ig—致性狀態(tài)。因而,減少了在L2高速緩存控制器330內(nèi)對(duì)有限資源的利用。第二,由于在這樣的情況下不分配CO機(jī)器336來執(zhí)行逐出,所以沒有形成一致性解析窗口800,并且響應(yīng)邏輯210可以確定適當(dāng)?shù)囊恢滦誀顟B(tài),對(duì)直接來自高速緩存目錄312的所監(jiān)聽的請(qǐng)求的部分響應(yīng)將基于該一致性狀態(tài)。結(jié)果,簡(jiǎn)化了在響應(yīng)邏輯120內(nèi)實(shí)施的邏輯。如前所述,本發(fā)明提供了一種用于數(shù)據(jù)處理的改進(jìn)方法、裝置和系統(tǒng),其中利用一致性狀態(tài)如Sg或者Slg來提供如下指示特定存儲(chǔ)器塊可以保持于多個(gè)高速緩存中,并且存儲(chǔ)器塊的副本駐留于高速緩存的本地一致性域之外。一個(gè)或者多個(gè)這樣的一致性狀態(tài)的實(shí)施有利地使得在存儲(chǔ)器塊的Ig副本上的逐出命中的情況下,被共享的低級(jí)別(例如L3)高速緩存可以保持存儲(chǔ)器塊的副本。此外,一個(gè)或者多個(gè)這樣的一致性狀態(tài)的實(shí)施簡(jiǎn)化了高級(jí)別(例如L2)高速緩存設(shè)計(jì)和流水線一致性處理。盡管已經(jīng)參照優(yōu)選實(shí)施例特別地示出和描述了本發(fā)明,但是本領(lǐng)域普通技術(shù)人員將理解到,在不脫離本發(fā)明的精神和范圍的情況下,可以在優(yōu)選實(shí)施例中做出形式和細(xì)節(jié)上的各種改變。權(quán)利要求1.一種在至少包括第一一致性域和第二一致性域的多處理器數(shù)據(jù)處理系統(tǒng)中進(jìn)行數(shù)據(jù)處理的方法,其中所述第一一致性域包括至少一個(gè)處理單元、系統(tǒng)存儲(chǔ)器和高速緩存存儲(chǔ)器,所述方法包括在所述高速緩存存儲(chǔ)器的數(shù)據(jù)陣列中對(duì)高速緩存行進(jìn)行緩沖;將所述高速緩存存儲(chǔ)器的高速緩存目錄中的狀態(tài)字段設(shè)置為一致性狀態(tài)以表明所述高速緩存行在所述數(shù)據(jù)陣列中有效、所述高速緩存行非獨(dú)占地保持于所述高速緩存存儲(chǔ)器中、以及所述第二一致性域中的另一高速緩存可以保持所述高速緩存行的副本。2.根據(jù)權(quán)利要求1所述的方法,其中所述高速緩存存儲(chǔ)器是低級(jí)別高速緩存存儲(chǔ)器;所述數(shù)據(jù)處理系統(tǒng)包括耦合到所述低級(jí)別高速緩存存儲(chǔ)器的多個(gè)高級(jí)別高速緩存存儲(chǔ)器;所述一致性狀態(tài)是第——致性狀態(tài);以及所述設(shè)置包括響應(yīng)于將所述高速緩存行從所述多個(gè)高級(jí)別高速緩存存儲(chǔ)器之一驅(qū)入到所述數(shù)據(jù)陣列中而將所述狀態(tài)字段從表明所述高速緩存行無效的第二一致性狀態(tài)更新成所述第——致性狀態(tài)。3.根據(jù)權(quán)利要求1所述的方法,其中所述高速緩存存儲(chǔ)器耦合到所述數(shù)據(jù)處理系統(tǒng)的互連;所述一致性狀態(tài)是第——致性狀態(tài);所述方法還包括所述高速緩存存儲(chǔ)器在所述互連上發(fā)出對(duì)所述高速緩存行的請(qǐng)求;所述設(shè)置包括響應(yīng)于作為對(duì)所述請(qǐng)求的響應(yīng)而收到所述高速緩存行,將所述狀態(tài)字段從第二一致性狀態(tài)更新成所述第——致性狀態(tài),該第二一致性狀態(tài)表明所述高速緩存行無效以及所述第二一致性域中的另一高速緩存行保持所述高速緩存行的副本。4.根據(jù)權(quán)利要求1所述的方法,還包括選擇用于從所述數(shù)據(jù)陣列中驅(qū)逐的所述高速緩存行;以及響應(yīng)于選擇用于驅(qū)逐的所述高速緩存行,所述高速緩存存儲(chǔ)器執(zhí)行對(duì)如下指示的無數(shù)據(jù)逐出,該指示表明所述第二一致性域中的另一高速緩存保持所述高速緩存行的副本。5.根據(jù)權(quán)利要求4所述的方法,還包括響應(yīng)于收到表明所述第二一致性域中的另一高速緩存保持所述高速緩存行的副本的指示,所述系統(tǒng)存儲(chǔ)器的存儲(chǔ)器控制器針對(duì)所述高速緩存行更新域指示符。6.根據(jù)權(quán)利要求1所述的方法,其中所述一致性狀態(tài)還表明所述高速緩存存儲(chǔ)器在所述第一一致性域內(nèi)具有通過高速緩存到高速緩存的數(shù)據(jù)干預(yù)來提供所述高速緩存行的副本的權(quán)限。7.—種用于多處理器數(shù)據(jù)處理系統(tǒng)的處理單元,所述多處理器數(shù)據(jù)處理系統(tǒng)至少包括第——致性域和第二一致性域,其中所述第——致性域包括系統(tǒng)存儲(chǔ)器和所述處理單元,所述處理單元包括處理器內(nèi)核;以及耦合到所述處理器內(nèi)核的高速緩存存儲(chǔ)器,所述高速緩存存儲(chǔ)器包括保持高速緩存行的數(shù)據(jù)陣列;高速緩存目錄,包括與所述高速緩存行相關(guān)聯(lián)的條目,所述條目包括狀態(tài)字段;高速緩存控制器,將所述狀態(tài)字段設(shè)置為一致性狀態(tài)以表明所述高速緩存行在所述數(shù)據(jù)陣列中有效、所述高速緩存行非獨(dú)占地保持于所述高速緩存存儲(chǔ)器中、以及所述第二一致性域中的另一高速緩存可以保持所述高速緩存行的副本。8.根據(jù)權(quán)利要求7所述的處理單元,其中所述高速緩存存儲(chǔ)器是低級(jí)別高速緩存存儲(chǔ)器;所述數(shù)據(jù)處理單元包括耦合到所述低級(jí)別高速緩存存儲(chǔ)器的多個(gè)高級(jí)別高速緩存存儲(chǔ)器;所述一致性狀態(tài)是第——致性狀態(tài);以及所述高速緩存控制器響應(yīng)于將所述高速緩存行從所述多個(gè)高級(jí)別高速緩存存儲(chǔ)器之一驅(qū)入到所述數(shù)據(jù)陣列中而將所述狀態(tài)字段從表明所述高速緩存行無效的第二一致性狀態(tài)更新成所述第——致性狀態(tài)。9.根據(jù)權(quán)利要求7所述的處理單元,其中所述高速緩存存儲(chǔ)器耦合到所述數(shù)據(jù)處理系統(tǒng)的互連;所述一致性狀態(tài)是第一~^^致性狀態(tài);所述高速緩存控制器響應(yīng)于作為對(duì)數(shù)據(jù)請(qǐng)求的響應(yīng)而收SU所述高速緩存行,將所述狀態(tài)字段從第二一致性狀態(tài)更新成所述第一一致性狀態(tài),該第二一致性狀態(tài)表明所述高速緩存行無效以及所述第二一致性域中的另一高速緩存行保持所述高速緩存行的副本。10.根據(jù)權(quán)利要求7所述的處理單元,其中所述高速緩存控制器響應(yīng)于對(duì)用于從所述數(shù)據(jù)陣列中驅(qū)逐的所述高速緩存行的選擇而執(zhí)行對(duì)如下指示的無數(shù)據(jù)逐出,該指示表明所述第二一致性域中的另一高速緩存保持所述高速緩存行的副本。11.根據(jù)權(quán)利要求7所述的處理單元,其中所述一致性狀態(tài)還表明所述高速緩存存儲(chǔ)器在所述第——致性域內(nèi)具有通過高速緩存到高速緩存的數(shù)據(jù)干預(yù)來提供所述高速緩存行的副本的權(quán)限。12.—種數(shù)據(jù)處理系統(tǒng),包括耦合在一起的至少第一高速緩存一致性域和第二高速緩存一致性域,其中所述第——致性域包括第一系統(tǒng)存儲(chǔ)器和第一處理單元,而所述第二一致性域包括第二系統(tǒng)存儲(chǔ)器和第二處理單元,所述第一處理單元包括處理器內(nèi)核;以及耦合到所述處理器內(nèi)核的高速緩存存儲(chǔ)器,所述高速緩存存儲(chǔ)器包括保持高速緩存行的數(shù)據(jù)陣列;高速緩存目錄,包括與所述高速緩存行相關(guān)聯(lián)的條目,所述條目包括狀態(tài)字段;高速緩存控制器,將所述狀態(tài)字段設(shè)置為一致性狀態(tài)以表明所述高速緩存行在所述數(shù)據(jù)陣列中有效、所述高速緩存行非獨(dú)占地保持于所述高速緩存存儲(chǔ)器中、以及所述第二一致性域中的另一高速緩存可以保持所述高速緩存行的副本。13.根據(jù)權(quán)利要求12所述的數(shù)據(jù)處理系統(tǒng),其中所述高速緩存存儲(chǔ)器是低級(jí)別高速緩存存儲(chǔ)器;所述第一處理單元包括耦合到所述低級(jí)別高速緩存存儲(chǔ)器的多個(gè)高級(jí)別高速緩存存儲(chǔ)器;所述一致性狀態(tài)是第一一致性狀態(tài);以及所述高速緩存控制器響應(yīng)于將所述高速緩存行從所述多個(gè)高級(jí)別高速緩存存儲(chǔ)器之一驅(qū)入到所述數(shù)據(jù)陣列中而將所述狀態(tài)字段從表明所述高速緩存行無效的第二一致性狀態(tài)更新成所述第——致性狀態(tài)。14.根據(jù)權(quán)利要求12所述的數(shù)據(jù)處理系統(tǒng),其中所述高速緩存存儲(chǔ)器耦合到所述數(shù)據(jù)處理系統(tǒng)的互連;所述一致性狀態(tài)是第——致性狀態(tài);所述高速緩存控制器響應(yīng)于作為對(duì)數(shù)據(jù)請(qǐng)求的響應(yīng)而收到所述高速緩存行,將所述狀態(tài)字段從第二一致性狀態(tài)更新成所述第一一致性狀態(tài),該第二一致性狀態(tài)表明所述高速緩存行無效以及所述第二一致性域中的另一高速緩存行保持所述高速緩存行的副本。15.根據(jù)權(quán)利要求12所述的數(shù)據(jù)處理系統(tǒng),其中所述高速緩存控制器響應(yīng)于對(duì)用于從所述數(shù)據(jù)陣列中驅(qū)逐的所述高速緩存行的選擇而執(zhí)行對(duì)如下指示的無數(shù)據(jù)逐出,該指示表明所述第二一致性域中的另一高速緩存保持所述高速緩存行的副本。16.根據(jù)權(quán)利要求15所述的數(shù)據(jù)處理系統(tǒng),還包括所述第一系統(tǒng)存儲(chǔ)器的存儲(chǔ)器控制器,其中所述存儲(chǔ)器控制器響應(yīng)于收到表明所述第二一致性域中的另一高速緩存保持所述高速緩存行的副本的指示而針對(duì)所述高速緩存行更新域指示符。17.根據(jù)權(quán)利要求12所述的數(shù)據(jù)處理系統(tǒng),其中所述一致性狀態(tài)還表明所述高速緩存存儲(chǔ)器在所述第一一致性域內(nèi)具有通過高速緩存到高速緩存的數(shù)據(jù)干預(yù)來提供所述高速緩存行的副本的權(quán)限。全文摘要一種多處理器數(shù)據(jù)處理系統(tǒng),至少包括第一一致性域和第二一致性域,其中第一一致性域包括系統(tǒng)存儲(chǔ)器和高速緩存存儲(chǔ)器。根據(jù)一種數(shù)據(jù)處理方法,在高速緩存存儲(chǔ)器的數(shù)據(jù)陣列中對(duì)高速緩存行進(jìn)行緩沖,并且將高速緩存存儲(chǔ)器的高速緩存目錄中的狀態(tài)字段設(shè)置為一致性狀態(tài)以表明高速緩存行在數(shù)據(jù)陣列中有效、高速緩存行非獨(dú)占地保持于高速緩存存儲(chǔ)器中、以及所述第二一致性域中的另一高速緩存可以保持高速緩存行的副本。文檔編號(hào)G06F12/08GK101162442SQ20071015441公開日2008年4月16日申請(qǐng)日期2007年9月12日優(yōu)先權(quán)日2006年10月9日發(fā)明者D·E·威廉斯,G·L·格思里,P·G·威廉斯,W·J·斯塔克申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司