專利名稱:具有空懸(h)和最新(r)狀態(tài)的高速緩存相關(guān)性協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體涉及一種數(shù)據(jù)處理方法和系統(tǒng),特別是一種在多處理器數(shù)據(jù)處理系統(tǒng)中保持高速緩存相關(guān)性的方法和系統(tǒng)。更具體來說,本發(fā)明涉及一種用于多處理器數(shù)據(jù)處理系統(tǒng)的高速緩存相關(guān)性協(xié)議,它包括一個(gè)最新(R)狀態(tài)和一個(gè)空懸(H)狀態(tài),前者支持共享干預(yù)(shared intervention),后者允許當(dāng)?shù)诙€(gè)高速緩存在連接第一個(gè)和第二個(gè)高速緩存的互連上獨(dú)立地傳輸有效數(shù)據(jù)時(shí),用該有效數(shù)據(jù)更新第一個(gè)高速緩存。
在常規(guī)的對(duì)稱多處理器(SMP)數(shù)據(jù)處理系統(tǒng)中,所有處理器都基本相同,就是說,所有處理器都使用相同的指令集和通訊協(xié)議,都具有類似的硬件結(jié)構(gòu),一般都配備類似的分級(jí)存儲(chǔ)器體系。例如,某常規(guī)SMP數(shù)據(jù)處理系統(tǒng)中可能含有一個(gè)系統(tǒng)存儲(chǔ)器,多個(gè)處理單元—每個(gè)處理單元包括一個(gè)處理器和一級(jí)或多級(jí)高速緩存,以及一個(gè)將各處理單元互相連接并與系統(tǒng)存儲(chǔ)器連接的系統(tǒng)總線。要獲得SMP數(shù)據(jù)處理系統(tǒng)中的有效執(zhí)行結(jié)果,重要的是保持一個(gè)相干的分級(jí)存儲(chǔ)器體系,即對(duì)所有處理器提供單一內(nèi)存內(nèi)容視圖。
要保持相干的分級(jí)存儲(chǔ)器體系,就要選擇使用某種存儲(chǔ)相關(guān)性協(xié)議,例如MESI協(xié)議。在MESI協(xié)議中,至少所有高層次(高速緩沖)存儲(chǔ)器的每個(gè)相關(guān)區(qū)組(coherency granule)(例如高速緩沖存儲(chǔ)器行或區(qū)段)都相聯(lián)地存儲(chǔ)著一個(gè)表示相關(guān)性狀態(tài)的指示項(xiàng)。各相關(guān)區(qū)組具有下述4種狀態(tài)之一修改(M)、排他(E)、共享(S)、無效(I)。在高速緩存目錄中用兩個(gè)二進(jìn)制位來表示狀態(tài)。修改狀態(tài)表示,相關(guān)區(qū)組只有存儲(chǔ)在被修改相關(guān)區(qū)組的高速緩存中,并且修改相關(guān)區(qū)組的值尚未寫入系統(tǒng)存儲(chǔ)器時(shí)才是有效的。如果相關(guān)區(qū)組被指示處于排他狀態(tài),則該相關(guān)區(qū)組僅駐留在分級(jí)存儲(chǔ)器體系中所有同一層次高速緩存中含有排他狀態(tài)的相關(guān)區(qū)組的高速緩存中。不過,排他狀態(tài)的數(shù)據(jù)是與系統(tǒng)存儲(chǔ)器一致的。如果相關(guān)區(qū)組在高速緩存目錄中被指示處于共享狀態(tài),則該相關(guān)區(qū)組駐留在相聯(lián)高速緩存中,同時(shí)還駐留在分級(jí)存儲(chǔ)器體系中至少另一個(gè)同一層次的高速緩存中,并且相關(guān)區(qū)組的所有拷貝都與系統(tǒng)存儲(chǔ)器一致。最后一個(gè)是無效狀態(tài),它表示與相關(guān)區(qū)組相聯(lián)的數(shù)據(jù)和地址標(biāo)記都無效。
各相關(guān)區(qū)組(例如高速緩沖存儲(chǔ)器行)被設(shè)置到何種狀態(tài),既依賴于高速緩沖存儲(chǔ)器行的上一個(gè)狀態(tài),也依賴于請(qǐng)求處理器尋求的存儲(chǔ)器訪問的類型。因此,要保持多處理器數(shù)據(jù)處理系統(tǒng)中的存儲(chǔ)相關(guān)性,就要求處理器在系統(tǒng)總線上傳播表明其對(duì)存儲(chǔ)單元讀寫意向的消息。例如,如果某處理器希望向某存儲(chǔ)單元寫數(shù)據(jù),則處理器首先必須向所有其它處理單元通報(bào)其要向該存儲(chǔ)單元寫數(shù)據(jù)的意向,在收到所有其它處理單元的允許信息后,才能執(zhí)行寫操作。由請(qǐng)求處理器接收的允許消息,表示對(duì)該存儲(chǔ)單元內(nèi)容的所有其它高速緩存的拷貝都已經(jīng)被無效,由此保證其它處理器不會(huì)訪問過時(shí)的本地?cái)?shù)據(jù)。這種消息交換稱作交叉無效(XI)。
本發(fā)明認(rèn)為,盡管高速緩存項(xiàng)目的交叉無效有助于保持SMP數(shù)據(jù)處理系統(tǒng)中的存儲(chǔ)相關(guān)性,但是遠(yuǎn)程處理器對(duì)高速緩存項(xiàng)目的無效卻會(huì)因?yàn)楸镜馗咚倬彺婷新实慕档?,而?duì)數(shù)據(jù)處理系統(tǒng)的效能產(chǎn)生負(fù)面影響。因此,即使配備了大容量的本地高速緩存,當(dāng)某個(gè)處理單元檢索曾經(jīng)在本地高速緩存中駐留的、來自另一個(gè)處理單元中遠(yuǎn)程高速緩存或來自系統(tǒng)存儲(chǔ)器的數(shù)據(jù)時(shí),也可能會(huì)引起長(zhǎng)時(shí)間的訪問延滯。以上表明,需要提供某種方法和系統(tǒng),它要能既保持SMP數(shù)據(jù)處理系統(tǒng)中的存儲(chǔ)相關(guān)性,同時(shí)又減少由于高速緩存項(xiàng)目的交叉無效而對(duì)系統(tǒng)效能帶來的損失。
本發(fā)明還認(rèn)為,常規(guī)MESI協(xié)議并不支持有效地檢索遠(yuǎn)程高速緩存中存儲(chǔ)的數(shù)據(jù)。某些已知的多處理器數(shù)據(jù)處理系統(tǒng)支持所謂的修改干預(yù)(modified intervention),而修改干預(yù)允許存儲(chǔ)著處于修改狀態(tài)的數(shù)據(jù)的遠(yuǎn)程高速緩存響應(yīng)讀請(qǐng)求而提供修改數(shù)據(jù)(modified data)。盡管如此,MESI協(xié)議并沒有規(guī)定當(dāng)被請(qǐng)求數(shù)據(jù)處于共享狀態(tài)時(shí)將數(shù)據(jù)提供到另一個(gè)處理單元的責(zé)任。因此,盡管被請(qǐng)求數(shù)據(jù)可以以相對(duì)短的訪問延滯存儲(chǔ)在多個(gè)遠(yuǎn)程處理單元中,但在常規(guī)多處理器數(shù)據(jù)處理系統(tǒng)中,共享數(shù)據(jù)總是必須從系統(tǒng)存儲(chǔ)器檢索。因此,需要提供一種支持共享干預(yù)的改進(jìn)高速緩存相關(guān)性協(xié)議。
因此,本發(fā)明的一個(gè)目的是,提供一種改進(jìn)的數(shù)據(jù)處理方法和系統(tǒng)。
本發(fā)明的另一個(gè)目的是,提供一種在多處理器數(shù)據(jù)處理系統(tǒng)中保持高速緩存相關(guān)性的方法和系統(tǒng)。
本發(fā)明的再一個(gè)目的是,提供一種用于多處理器數(shù)據(jù)處理系統(tǒng)的高速緩存的改進(jìn)相關(guān)性協(xié)議,它包括一個(gè)最新(R)狀態(tài)和一個(gè)空懸(H)狀態(tài),前者支持共享干預(yù),后者允許當(dāng)?shù)诙€(gè)高速緩存在連接第一個(gè)和第二個(gè)高速緩存的互連上獨(dú)立地傳輸有效數(shù)據(jù)時(shí),用該有效數(shù)據(jù)更新第一個(gè)高速緩存。
現(xiàn)在說明上述目的的實(shí)現(xiàn)方法。所提供的數(shù)據(jù)處理系統(tǒng),包括多個(gè)處理器和多個(gè)與互連部件相連的高速緩存。根據(jù)本發(fā)明的方法,第一個(gè)數(shù)據(jù)項(xiàng)是與表示該第一數(shù)據(jù)項(xiàng)的一個(gè)地址標(biāo)記關(guān)聯(lián)存儲(chǔ)在第一個(gè)高速緩存中的。第一個(gè)高速緩存中的相關(guān)性指示符被設(shè)置到第一狀態(tài),表示該地址標(biāo)記有效,第一數(shù)據(jù)項(xiàng)無效。然后,窺探該互連部件,監(jiān)測(cè)由多個(gè)高速緩存中另一個(gè)高速緩存啟動(dòng)的數(shù)據(jù)傳輸,其中該數(shù)據(jù)傳輸要與該地址標(biāo)記表示的該地址關(guān)聯(lián),并且含有一個(gè)有效的第二數(shù)據(jù)項(xiàng)。在相關(guān)性指示符設(shè)置在第一狀態(tài)期間,響應(yīng)對(duì)這種數(shù)據(jù)傳輸?shù)臋z測(cè),將第二數(shù)據(jù)項(xiàng)與該地址標(biāo)記關(guān)聯(lián)存儲(chǔ)在第一個(gè)高速緩存中,替換第一數(shù)據(jù)項(xiàng),并且將相關(guān)性指示符更新到第二狀態(tài),表示該第二數(shù)據(jù)項(xiàng)有效,第一個(gè)高速緩存能夠應(yīng)請(qǐng)求提供第二數(shù)據(jù)項(xiàng)。
本發(fā)明的上述及其它目的、特點(diǎn)和優(yōu)點(diǎn)顯見于以下的詳細(xì)說明中。
本說明書后附的權(quán)利要求中陳述了本發(fā)明特有的新穎特點(diǎn)。然而,欲透徹理解本發(fā)明本身以及它的一種優(yōu)選使用方式及其進(jìn)一步的目的和優(yōu)點(diǎn),則要參閱以下結(jié)合各附圖對(duì)示例性實(shí)施例的說明。附圖簡(jiǎn)介如下
圖1表示按照本發(fā)明的多處理器數(shù)據(jù)處理系統(tǒng)的一個(gè)示例性實(shí)施例。
圖2是表示按照本發(fā)明的高速緩存的一個(gè)示例性實(shí)施例的框圖。
圖3是表示本發(fā)明的HR-MESI高速緩存相關(guān)性協(xié)議的一個(gè)示例性實(shí)施例的狀態(tài)圖。
現(xiàn)在參見各附圖,特別是圖1,該圖用高度抽象的框圖表示了按照本發(fā)明的一個(gè)多處理器數(shù)據(jù)處理系統(tǒng)。如圖所示,數(shù)據(jù)處理系統(tǒng)8中包括許多處理器10a~10n,每個(gè)處理器最好是IBM公司生產(chǎn)的PowerPCTM系列的某種處理器。除了常規(guī)寄存器、指令流邏輯和用來執(zhí)行程序指令的執(zhí)行單元之外,處理器10a~10n中每個(gè)處理器還包括一個(gè)相聯(lián)的第一層次的(L1)機(jī)載高速緩存12a~12n,用于暫時(shí)存儲(chǔ)相聯(lián)處理器可能要訪問的指令和數(shù)據(jù)。圖1中將L1高速緩存12a~12n一律表示為既存儲(chǔ)指令又存儲(chǔ)數(shù)據(jù)(本文以后將指令和數(shù)據(jù)統(tǒng)稱為數(shù)據(jù))的高速緩存,不過本領(lǐng)域的熟練人員明白,L1高速緩存12a~12n的每個(gè)高速緩存也都可以選擇用分開的指令高速緩存和數(shù)據(jù)高速緩存來實(shí)現(xiàn)。
為了盡量降低數(shù)據(jù)訪問延滯,數(shù)據(jù)處理系統(tǒng)8還包括另外一層或多層高速緩存,例如第二層次的(L2)高速緩存14a~14n,用于分級(jí)傳遞數(shù)據(jù)到L1高速緩存。換言之,第二層次的(L2)高速緩存14a~14n起著系統(tǒng)存儲(chǔ)器與L1高速緩存12a~12n之間中間存儲(chǔ)器的作用,與L1高速緩存12a~12n相比,它一般能存儲(chǔ)更多的數(shù)據(jù)量,但訪問延滯的時(shí)間更長(zhǎng)。例如,L2高速緩存14a~14n的存儲(chǔ)容量為256或512KB,而L1高速緩存12a~12n的存儲(chǔ)容量為64或128KB。處理器10a進(jìn)一步由第三層次的(L3)后備高速緩存15a支持。后備高速緩存與L2高速緩存14a并聯(lián)到互連部件16,存儲(chǔ)容量最好等于或大于L2高速緩存14a。
如圖所示,數(shù)據(jù)處理系統(tǒng)8進(jìn)一步包括輸入輸出設(shè)備20、系統(tǒng)存儲(chǔ)器18和非易失性存儲(chǔ)器22,它們都與互連部件16相連。輸入輸出設(shè)備20包括有常規(guī)的外部設(shè)備,例如顯示器、鍵盤和圖形指針,它們都通過常規(guī)適配器而與互連部件16相連。非易失性存儲(chǔ)器22存儲(chǔ)著操作系統(tǒng)和其它軟件,它們要隨數(shù)據(jù)處理系統(tǒng)的通電而被寫入易失性系統(tǒng)存儲(chǔ)器18中。當(dāng)然,本領(lǐng)域的熟練人員明白,數(shù)據(jù)處理系統(tǒng)8可以包含未在圖1中表示的許多其它部件,例如用于連接網(wǎng)絡(luò)或附屬設(shè)備的串行與并行端口,控制對(duì)系統(tǒng)存儲(chǔ)器18訪問的存儲(chǔ)控制器,等等。
互連部件16中含有一個(gè)或多個(gè)總線,或者一個(gè)交叉點(diǎn)開關(guān),它作為一個(gè)管道,用于L2高速緩存14a~14n、L3高速緩存15a、系統(tǒng)存儲(chǔ)器18、輸入/輸出設(shè)備20和非易失性存儲(chǔ)器18之間的通訊事務(wù)。互連部件16上典型的通訊事務(wù)包括一個(gè)表示事務(wù)源的源標(biāo)記、一個(gè)指定事務(wù)的接收者的目的地標(biāo)記、以及地址和/或數(shù)據(jù)。與互連部件16相連的各設(shè)備最好都窺探在互連部件16上的所有通訊事務(wù)。
現(xiàn)在參見圖2,該圖是表示按照本發(fā)明的L2高速緩存14的一個(gè)示例性實(shí)施例的更詳細(xì)的框圖。在該示例性實(shí)施例中,L2高速緩存14是一個(gè)使用32位地址的8分路(way)組關(guān)聯(lián)高速緩存。與此相應(yīng),L2高速緩存14的數(shù)據(jù)陣列34中包含許多同余類(congruence classes),每個(gè)同余類含有8個(gè)用于存儲(chǔ)高速緩沖存儲(chǔ)器行的分路。如常規(guī)的組關(guān)聯(lián)高速緩存中的一樣,利用存儲(chǔ)單元地址內(nèi)的變址位(例如32位地址中的20~26位),就能將系統(tǒng)存儲(chǔ)器18的存儲(chǔ)單元映射到數(shù)據(jù)陣列34內(nèi)的特定同余類。
在數(shù)據(jù)陣列34中存儲(chǔ)的高速緩沖存儲(chǔ)器行被記錄在高速緩存目錄32中。對(duì)應(yīng)數(shù)據(jù)陣列34中的每個(gè)分路,該目錄都有一個(gè)目錄項(xiàng)。每個(gè)目錄項(xiàng)中包含標(biāo)記域40、相關(guān)性狀態(tài)域42、最近最少使用(LRU-least recently used)域44和蘊(yùn)含域46。標(biāo)記域40通過存入高速緩沖存儲(chǔ)器行的系統(tǒng)存儲(chǔ)器地址中的標(biāo)記位(例如0~19位),載明哪個(gè)高速緩沖存儲(chǔ)器行被存儲(chǔ)在數(shù)據(jù)陣列34的對(duì)應(yīng)分路中。相關(guān)性狀態(tài)域42利用預(yù)定的位組合,來表示存儲(chǔ)在數(shù)據(jù)陣列34的對(duì)應(yīng)分路中的數(shù)據(jù)的相關(guān)性狀態(tài)(下文將結(jié)合圖3詳細(xì)討論)。LRU域44表示的是,數(shù)據(jù)陣列34的對(duì)應(yīng)分路,相對(duì)于其同余類的其它分路,在最近什么時(shí)間被訪問過,由此進(jìn)而指示,當(dāng)發(fā)生高速緩存失中(miss)時(shí),應(yīng)當(dāng)將哪個(gè)高速緩沖存儲(chǔ)器行從該同余類中拋棄。最后是蘊(yùn)含域46,它表示在數(shù)據(jù)陣列34的對(duì)應(yīng)分路中存儲(chǔ)的高速緩沖存儲(chǔ)器行,是否也存儲(chǔ)在關(guān)聯(lián)的L1高速緩存12中。
還是參見圖2,L2高速緩存14進(jìn)一步包括高速緩存控制器36,它管理著數(shù)據(jù)陣列34內(nèi)部數(shù)據(jù)的存儲(chǔ)和檢索,以及根據(jù)從相關(guān)的L1高速緩存12接收的信號(hào)和在互連部件16上窺探到的事務(wù),對(duì)高速緩存目錄32進(jìn)行更新。如圖所示,高速緩存控制器36中含有一個(gè)讀隊(duì)列50和一個(gè)寫隊(duì)列52,高速緩存控制器32根據(jù)隊(duì)列的內(nèi)容,執(zhí)行對(duì)高速緩存目錄32的更新以及對(duì)數(shù)據(jù)陣列34的訪問。例如,如果從關(guān)聯(lián)的L1高速緩存12接收到一個(gè)讀請(qǐng)求,高速緩存控制器36就將該讀請(qǐng)求放置到讀隊(duì)列50內(nèi)的一個(gè)單元上。高速緩存控制器36為該讀請(qǐng)求所作的服務(wù)是,將所請(qǐng)求的數(shù)據(jù)提供給關(guān)聯(lián)的L1高速緩存12,然后將該讀請(qǐng)求從讀隊(duì)列50中刪除。另一個(gè)例子是,高速緩存控制器36窺探到由L2高速緩存14a~14n中的另一個(gè)高速緩存啟動(dòng)的一個(gè)事務(wù),這表明某遠(yuǎn)程處理器10打算修改其對(duì)某高速緩沖存儲(chǔ)器行的本地拷貝的內(nèi)容。當(dāng)窺探到該事務(wù)時(shí),高速緩存控制器36就在讀隊(duì)列50中放置一個(gè)要求讀高速緩存目錄32的請(qǐng)求,目的是確定該高速緩沖存儲(chǔ)器行是否駐留在數(shù)據(jù)陣列34中。如果是,高速緩存控制器36就在互連部件16上放置一個(gè)適當(dāng)?shù)膽?yīng)答,必要的話,還在寫隊(duì)列52中插入一個(gè)目錄寫請(qǐng)求—如果目錄寫請(qǐng)求得到服務(wù),就更新該高速緩沖存儲(chǔ)器行相關(guān)的相關(guān)性狀態(tài)域。盡管圖2所示的實(shí)施例只使用了一個(gè)讀隊(duì)列和一個(gè)寫隊(duì)列,應(yīng)當(dāng)明白,高速緩存控制器36所采用的隊(duì)列的數(shù)目只是一個(gè)設(shè)計(jì)選擇問題,而且高速緩存控制器36還可以采用獨(dú)立的隊(duì)列分別用于對(duì)高速緩存目錄的訪問和對(duì)數(shù)據(jù)陣列的訪問。
L3高速緩存15a與圖2所示的L2高速緩存14的結(jié)構(gòu)幾乎相同,只有很少的例外。具體來說,如上所述,L3高速緩存15a的高速緩存控制器并不是通過高速緩存間連路與L2高速緩存14a相連,而是與L2高速緩存14a并聯(lián)到互連部件16,使得L3高速緩存15a的高速緩存控制器能窺探到互連部件16上由L2高速緩存14a發(fā)出的所有事務(wù)。
參見圖3。該圖表示了根據(jù)本發(fā)明的HR-MESI高速緩存相關(guān)性協(xié)議的一個(gè)示例性實(shí)施例的狀態(tài)圖。所示HR-MESI協(xié)議,最好由分級(jí)存儲(chǔ)器體系中最低層次的聯(lián)機(jī)(in-line)高速緩存(例如L2高速緩存14a~14n)、以及稍作變化,由較低層次的后備高速緩存(例如L3高速緩存15a)來執(zhí)行。較高層次的高速緩存最好執(zhí)行諸如MESI協(xié)議、R-MESI協(xié)議之類的協(xié)議子集。本文的引證文獻(xiàn)—美國(guó)專利申請(qǐng)系列號(hào)08/839,557描述了R-MESI協(xié)議。然而應(yīng)當(dāng)明白,數(shù)據(jù)處理系統(tǒng)8的另選方案的實(shí)施例中,可以以增加高速緩存間通信量為代價(jià),在分級(jí)存儲(chǔ)器體系中任何層次的高速緩存上執(zhí)行HR-MESI協(xié)議。
如圖3所示,HR-MESI高速緩存相關(guān)性協(xié)議包括MESI協(xié)議的4個(gè)常規(guī)狀態(tài)修改(M)、排他(E)、共享(S)、無效(I),圖中分別用引用號(hào)80、82、84、86表示。此外,本發(fā)明的HR-MESI高速緩存相關(guān)性協(xié)議還包括空懸(H)狀態(tài)90和R狀態(tài)92??諔覡顟B(tài)表示,在關(guān)聯(lián)的標(biāo)記域40中存儲(chǔ)的地址標(biāo)記是有效的,但是在數(shù)據(jù)陣列34的對(duì)應(yīng)分路中存儲(chǔ)的數(shù)據(jù)項(xiàng)(例如高速緩沖存儲(chǔ)器行或高速緩存區(qū)段)卻是無效的。R狀態(tài)表示,在存儲(chǔ)某數(shù)據(jù)項(xiàng)的拷貝的多個(gè)高速緩存中,哪個(gè)高速緩存在離當(dāng)前最近的時(shí)間通過互連部件16上的某個(gè)事務(wù)接收了該共享數(shù)據(jù)項(xiàng)。
在一個(gè)最佳實(shí)施例中,在系統(tǒng)通電時(shí),各L2高速緩存目錄32的各目錄項(xiàng)的相關(guān)性狀態(tài)域42被初始化到I狀態(tài)86,表示標(biāo)記域40以及在數(shù)據(jù)陣列34的對(duì)應(yīng)分路中存儲(chǔ)的數(shù)據(jù)項(xiàng)均為無效。與此類似,L1和L3高速緩存的目錄項(xiàng)的初始化狀態(tài)也是無效狀態(tài)。然后,在L2高速緩存14a~14n的其中之一、或在處于無效狀態(tài)86的L3高速緩存15a中存儲(chǔ)的高速緩沖存儲(chǔ)器行(或高速緩存區(qū)段)的相關(guān)性狀態(tài),可以被更新到M狀態(tài)80、E狀態(tài)82或R狀態(tài)92的其中某一個(gè)狀態(tài),具體狀態(tài)取決于處理器10a~10n提出的存儲(chǔ)器請(qǐng)求的類型以及分級(jí)存儲(chǔ)器體系對(duì)這些請(qǐng)求的響應(yīng)。
例如,如果處理器10a根據(jù)某個(gè)加載指令而提出讀請(qǐng)求,L1高速緩存12a首先判斷被請(qǐng)求數(shù)據(jù)是否駐留在L1高速緩存12a。如果在L1高速緩存12a中命中該數(shù)據(jù),L1高速緩存12a就將該被請(qǐng)求數(shù)據(jù)提供給處理器10a。然而,如果在L1高速緩存12a中沒有命中該數(shù)據(jù),L1高速緩存12a就通過高速緩存間連路,將該讀請(qǐng)求傳遞到L2高速緩存14a。如果在L2高速緩存14a中命中該數(shù)據(jù),L2高速緩存14a就將該被請(qǐng)求數(shù)據(jù)提供給L1高速緩存12a,后者將該被請(qǐng)求數(shù)據(jù)結(jié)合適當(dāng)?shù)南嚓P(guān)性狀態(tài)存儲(chǔ)起來,并將該被請(qǐng)求數(shù)據(jù)傳遞到處理器10a。
然而,如果該讀請(qǐng)求在L1高速緩存12a和L2高速緩存14a中都沒有命中,則L2高速緩存14a的高速緩存控制器36就將讀請(qǐng)求作為一個(gè)事務(wù)傳送到互連部件16上,L2高速緩存14b~14n及L3高速緩存1 5a都能窺探到該事務(wù)。根據(jù)對(duì)互連部件16上的該讀請(qǐng)求的窺探,L2高速緩存14b~14n中每個(gè)的高速緩存控制器36就要判斷,被請(qǐng)求數(shù)據(jù)是駐留在其數(shù)據(jù)陣列34中還是駐留在L1高速緩存12b~12n中一個(gè)關(guān)聯(lián)的高速緩存中。L3高速緩存15a的高速緩存控制器36類似地判斷讀請(qǐng)求是否在L3高速緩存目錄中命中。如果L2高速緩存14b~14n、L1高速緩存12b~12n及L3高速緩存15a都沒有存儲(chǔ)被請(qǐng)求數(shù)據(jù),則L2高速緩存14b~14n及L3高速緩存15a每個(gè)都返回一個(gè)空應(yīng)答(null response)給L2高速緩存14a,后者然后就向系統(tǒng)存儲(chǔ)器18請(qǐng)求該數(shù)據(jù)。當(dāng)被請(qǐng)求數(shù)據(jù)從系統(tǒng)存儲(chǔ)器18返回到L2高速緩存14a,高速緩存控制器36就將被請(qǐng)求數(shù)據(jù)傳遞到L1高速緩存12a,在其數(shù)據(jù)陣列34中存儲(chǔ)該請(qǐng)求數(shù)據(jù),將與存儲(chǔ)被請(qǐng)求數(shù)據(jù)的分路相關(guān)的相關(guān)性狀態(tài)域42從I狀態(tài)86更新為E狀態(tài)82—如引用號(hào)100所示。如常規(guī)的MESI協(xié)議一樣,E狀態(tài)82表示相關(guān)的高速緩沖存儲(chǔ)器行有效,并且不駐留在分級(jí)存儲(chǔ)器體系中第二層次的任何其它高速緩存中。L3高速緩存15a類似地將被請(qǐng)求數(shù)據(jù)以E狀態(tài)82儲(chǔ)存起來。
如果由處理器10a請(qǐng)求的數(shù)據(jù)沒有駐留在L1高速緩存12a、L2高速緩存14a、或L3高速緩存15a中,但卻存儲(chǔ)在例如L1高速緩存12n中,處于M狀態(tài)80,則L2高速緩存14n的高速緩存控制器36根據(jù)讀請(qǐng)求產(chǎn)生一個(gè)修改應(yīng)答,指示L1高速緩存12n將該被請(qǐng)求數(shù)據(jù)壓入L2高速緩存14n。以后,L2高速緩存14n將在互連部件16上提供該被請(qǐng)求數(shù)據(jù)。根據(jù)讀請(qǐng)求,L1高速緩存12n和L2高速緩存14n中的被請(qǐng)求數(shù)據(jù)的相關(guān)性狀態(tài)被更新為S狀態(tài)84—如引用號(hào)102所示。根據(jù)本發(fā)明,L2高速緩存14a中存儲(chǔ)被請(qǐng)求數(shù)據(jù)的分路的相關(guān)性狀態(tài)從I狀態(tài)86轉(zhuǎn)換到R狀態(tài)92—如引用號(hào)104所示。如上所述,R狀態(tài)92表示,其關(guān)聯(lián)的數(shù)據(jù)是最晚被L2高速緩存14a引用的,如果窺探到互連部件16上有對(duì)該數(shù)據(jù)的請(qǐng)求,則L2高速緩存14a要提供該數(shù)據(jù)。當(dāng)L3高速緩存15a窺探到該被請(qǐng)求數(shù)據(jù)從系統(tǒng)存儲(chǔ)器18返回時(shí),L3高速緩存15a提取被請(qǐng)求數(shù)據(jù),將其以S狀態(tài)84存儲(chǔ)起來。圖中引用號(hào)105所示的I狀態(tài)86與S狀態(tài)84之間轉(zhuǎn)換是用虛線表示的,虛線表示這種轉(zhuǎn)換僅適用于L3高速緩存15a。本領(lǐng)域的熟練人員由以上的例子會(huì)明白,在不支持修改干預(yù)的其它選擇方案的本發(fā)明實(shí)施例中也能作同樣的狀態(tài)轉(zhuǎn)換,然而,在這些其它選擇方案的實(shí)施例中,被請(qǐng)求數(shù)據(jù)是從系統(tǒng)存儲(chǔ)器18獲得的,其代價(jià)是增加了訪問延滯。
L2高速緩存14a在收到因其讀請(qǐng)求而產(chǎn)生的共享干預(yù)應(yīng)答或共享應(yīng)答時(shí),類似地進(jìn)行一次由I狀態(tài)86到R狀態(tài)92的轉(zhuǎn)換。如果L2高速緩存14b~14n之一,例如L2高速緩存14n存儲(chǔ)著R狀態(tài)92或者E狀態(tài)82的被請(qǐng)求數(shù)據(jù),則L2高速緩存14a會(huì)收到一個(gè)共享干預(yù)應(yīng)答(以及被請(qǐng)求數(shù)據(jù))。根據(jù)讀請(qǐng)求,L2高速緩存14n的高速緩存控制器36將其對(duì)被請(qǐng)求數(shù)據(jù)的拷貝的相關(guān)性狀態(tài)由R狀態(tài)92更新到S狀態(tài)84—如引用號(hào)106所示。如果L2高速緩存14b~14n都沒有存儲(chǔ)著R狀態(tài)92的被請(qǐng)求數(shù)據(jù),但至少有一個(gè)存儲(chǔ)著S狀態(tài)84的被請(qǐng)求數(shù)據(jù),則存儲(chǔ)著S狀態(tài)84的被請(qǐng)求數(shù)據(jù)的L2高速緩存14用一個(gè)共享應(yīng)答來響應(yīng)該讀請(qǐng)求,將其對(duì)被請(qǐng)求數(shù)據(jù)的拷貝保留在S狀態(tài)84。如果只收到一個(gè)共享應(yīng)答,L2高速緩存14a就從系統(tǒng)存儲(chǔ)器18檢索被請(qǐng)求數(shù)據(jù),并將被請(qǐng)求數(shù)據(jù)以R狀態(tài)92存儲(chǔ)起來。在這兩種情況,L3高速緩存15a采樣被請(qǐng)求數(shù)據(jù),并將其以S狀態(tài)84存儲(chǔ)。
如果L2高速緩存14a在互連部件16上發(fā)出一個(gè)“意欲修改的讀”請(qǐng)求,表示處理器10a需要排他使用某存儲(chǔ)單元,目的是對(duì)其修改,如上所述,該請(qǐng)求數(shù)據(jù)可以從L3高速緩存15a、某個(gè)遠(yuǎn)程L2高速緩存14或者系統(tǒng)存儲(chǔ)器18獲得。然而當(dāng)被請(qǐng)求高速緩沖存儲(chǔ)器行被獲得時(shí),L1高速緩存12a和L2高速緩存14a以M狀態(tài)將被請(qǐng)求高速緩沖存儲(chǔ)器行存儲(chǔ)起來一如引用號(hào)107所示。此外,由于“意欲修改的讀”請(qǐng)求事務(wù)指出,其它對(duì)被請(qǐng)求高速緩沖存儲(chǔ)器行的拷貝將變得過時(shí)無用,所以L3高速緩存15a和遠(yuǎn)程L1和L2高速緩存必須指示,它們對(duì)被請(qǐng)求高速緩沖存儲(chǔ)器行的拷貝是無效的。在L1高速緩存12b~12n中,所有對(duì)被請(qǐng)求高速緩沖存儲(chǔ)器行的拷貝都被簡(jiǎn)單地標(biāo)記為無效。然而,在L3高速緩存15a和L2高速緩存14b~14n中存儲(chǔ)的對(duì)被請(qǐng)求高速緩沖存儲(chǔ)器行的拷貝的相關(guān)性狀態(tài),卻不像在使用交叉無效(XI)的常規(guī)多處理器數(shù)據(jù)處理系統(tǒng)中的那樣被更新到I狀態(tài)86。相反,根據(jù)本發(fā)明的一個(gè)重要方面,存儲(chǔ)著對(duì)被請(qǐng)求高速緩沖存儲(chǔ)器行的拷貝的L3高速緩存15a和L2高速緩存14b~14n中的各高速緩存,要將與其拷貝關(guān)聯(lián)的相關(guān)性狀態(tài)域42,從R狀態(tài)92、S狀態(tài)84、M狀態(tài)80或E狀態(tài)82中的任何狀態(tài)更新到H狀態(tài)90—分別如引用號(hào)108、110、112、114所示。如上所述,H狀態(tài)90表示,標(biāo)記域40中的標(biāo)記保持有效,而數(shù)據(jù)陣列34內(nèi)關(guān)聯(lián)的高速緩沖存儲(chǔ)器行是無效的。L2和L3高速緩存目錄中的目錄項(xiàng),根據(jù)窺探到的其它要求使數(shù)據(jù)無效的事務(wù)—包括刪除(即明確地?zé)o效掉特定數(shù)據(jù)塊的事務(wù))、清倉(cāng)(即無效掉特定數(shù)據(jù)塊并將修改數(shù)據(jù)拷貝到系統(tǒng)存儲(chǔ)器的事務(wù))和放棄(即響應(yīng)某個(gè)因存儲(chǔ)而被修改的本地高速緩沖存儲(chǔ)器行的拷貝,無效掉各遠(yuǎn)程高速緩存中標(biāo)記為共享的該高速緩沖存儲(chǔ)器行的拷貝的事務(wù)),也類似地被更新到H狀態(tài)90。
如引用號(hào)116和118所示,高速緩存目錄項(xiàng)根據(jù)高速緩存接收的事務(wù)的類型,可以由H狀態(tài)90分別轉(zhuǎn)換到E狀態(tài)82或M狀態(tài)80。例如,處于H狀態(tài)90的L2高速緩存14a的某目錄項(xiàng),在提出讀請(qǐng)求的處理器10a(在L1高速緩存12a和L2高速緩存14a中都沒有命中后)收到L3高速緩存15a和L2高速緩存14b~14n發(fā)來的空應(yīng)答時(shí),轉(zhuǎn)換到E狀態(tài)82。E狀態(tài)82表示,從系統(tǒng)存儲(chǔ)器18檢索的數(shù)據(jù),將只被存儲(chǔ)到L2高速緩存14a~14n中的L2高速緩存14a中。另一方面,如果處理器10a提出意愿,要向L1高速緩存12a的某個(gè)處于H狀態(tài)90的分路存儲(chǔ)數(shù)據(jù),則L1高速緩存12a向L2高速緩存14a指出該意愿,后者然后在互連部件16上發(fā)出一個(gè)“意欲修改的讀”事務(wù)。如上所述,當(dāng)窺探到“意欲修改的讀”事務(wù)時(shí),在L3高速緩存15a和L2高速緩存14b~14n中存儲(chǔ)的被請(qǐng)求高速緩沖存儲(chǔ)器行的拷貝被更新到H狀態(tài)90,在L1高速緩存12b~12n中存儲(chǔ)的被請(qǐng)求高速緩沖存儲(chǔ)器行的拷貝被標(biāo)記為無效。一旦獲得被請(qǐng)求高速緩沖存儲(chǔ)器行,L2高速緩存14a和L1高速緩存12a中的該高速緩沖存儲(chǔ)器行的相關(guān)性狀態(tài)就被設(shè)置到M狀態(tài)80,表示該高速緩沖存儲(chǔ)器行有效,但與系統(tǒng)存儲(chǔ)器18不相干。
H狀態(tài)90的高速緩存目錄項(xiàng)也可以被更新到S狀態(tài)84—如引用號(hào)120所示。如上所述,L2高速緩存14a~14n每個(gè)都能窺探一切在互連部件16上發(fā)出的事務(wù)。如果L2高速緩存14a~14n其中之一,例如L2高速緩存14a,窺探到由L2高速緩存14b~14n中的另一個(gè)發(fā)出的事務(wù)含有L2高速緩存14a存儲(chǔ)的H狀態(tài)90的數(shù)據(jù)的更新(即有效)拷貝,則L2高速緩存14a的高速緩存控制器36從互連部件16提取該數(shù)據(jù),將該窺探數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)陣列34,并將其關(guān)聯(lián)的相關(guān)性狀態(tài)域42由H狀態(tài)90更新到S狀態(tài)84。這樣,本發(fā)明允許將高速緩存目錄項(xiàng),在相關(guān)的處理器10沒有提出數(shù)據(jù)請(qǐng)求、或高速緩存沒有在互連部件16上啟動(dòng)事務(wù)的情況下,由H狀態(tài)90更新到S狀態(tài)84。當(dāng)然,在上述情形中,如果需要應(yīng)答來保持相關(guān)性,則L2高速緩存14a也向被窺探的事務(wù)提供應(yīng)答。例如,如果被窺探的事務(wù)是個(gè)讀請(qǐng)求,則L2高速緩存14a必須提供一個(gè)共享應(yīng)答,表示其要提取被請(qǐng)求數(shù)據(jù)的意愿,使得提出請(qǐng)求的L2高速緩存以R狀態(tài)92而不是E狀態(tài)82存儲(chǔ)被請(qǐng)求數(shù)據(jù)。能按這種方式窺探、以刷新與某有效地址標(biāo)記關(guān)聯(lián)的無效數(shù)據(jù)的互連部件16上的事務(wù)包括讀事務(wù)、寫事務(wù)、因高速緩沖存儲(chǔ)器行的丟棄而向系統(tǒng)存儲(chǔ)器18的數(shù)據(jù)回寫,等等。
H狀態(tài)90的高速緩存目錄項(xiàng),也可以根據(jù)許多不同的請(qǐng)求/響應(yīng)情況,被更新到R狀態(tài)92。例如,如果處理器10a提出的讀請(qǐng)求在L1高速緩存12a中沒有命中,導(dǎo)致在L2高速緩存14a命中一個(gè)標(biāo)記,并且如果該匹配標(biāo)記相關(guān)的相關(guān)性狀態(tài)域42處于H狀態(tài)90,則L2高速緩存14a的高速緩存控制器36在互連部件16上發(fā)出一個(gè)讀事務(wù)。如果從L3高速緩存15a和L2高速緩存14b~14n收到對(duì)該讀事務(wù)的共享干預(yù)應(yīng)答、共享應(yīng)答或修改應(yīng)答,則L2高速緩存14a的高速緩存控制器36將被請(qǐng)求數(shù)據(jù)相關(guān)的相關(guān)性狀態(tài)域42由H狀態(tài)90更新到R狀態(tài)92—如引用號(hào)122所示。
更重要的是,H狀態(tài)90的高速緩存目錄項(xiàng),在相關(guān)的處理器沒有請(qǐng)求數(shù)據(jù)的情況下,也能被更新到R狀態(tài)92。例如,在由處理器10a提出“意欲修改的讀”請(qǐng)求后,L1高速緩存12a和L2高速緩存14a以M狀態(tài)80存儲(chǔ)被請(qǐng)求數(shù)據(jù),同時(shí)將該高速緩沖存儲(chǔ)器行在L3高速緩存15a和L2高速緩存14b~14n中的拷貝的相關(guān)性狀態(tài)設(shè)置到H狀態(tài)90。如果例如因?yàn)樽x漏失(read miss),隨后從L2高速緩存14a選擇被請(qǐng)求數(shù)據(jù)作為替代,則L2高速緩存14a的高速緩存控制器36在互連部件16上發(fā)出一個(gè)寫事務(wù),以便將被請(qǐng)求數(shù)據(jù)存儲(chǔ)到系統(tǒng)存儲(chǔ)器18。當(dāng)L3高速緩存15a的高速緩存控制器36窺探到這個(gè)寫事務(wù)時(shí),就提取數(shù)據(jù),將數(shù)據(jù)存儲(chǔ)到它的L3數(shù)據(jù)陣列,并將相關(guān)的相關(guān)性狀態(tài)域由H狀態(tài)90更新到R狀態(tài)92,這樣,L3高速緩存15a以后就能在收到讀或“意欲修改的讀”請(qǐng)求時(shí)作為數(shù)據(jù)源來提供該數(shù)據(jù)。
下面的表Ⅰ,總結(jié)了圖3所示的HR-MESI高速緩存相關(guān)性協(xié)議的示例性實(shí)施例中所能進(jìn)行的狀態(tài)轉(zhuǎn)換。
表Ⅰ
如上所述,本發(fā)明提供一種用于保持多處理器數(shù)據(jù)處理系統(tǒng)中高速緩存相關(guān)性的改進(jìn)方法和裝置。本發(fā)明提供的改進(jìn)高速緩存相關(guān)性協(xié)議能在本地處理器不明確發(fā)出讀或?qū)懻?qǐng)求的情況下,將與有效地址標(biāo)記關(guān)聯(lián)存儲(chǔ)在某高速緩存中的無效數(shù)據(jù)項(xiàng)自動(dòng)更新為有效數(shù)據(jù)項(xiàng)。以這種方式,因遠(yuǎn)程處理器的操作而無效的數(shù)據(jù)能在本地處理器訪問之前被刷新,由此實(shí)質(zhì)性地減少數(shù)據(jù)訪問延滯,這是因?yàn)椴恍枰獜倪h(yuǎn)程高速緩存或系統(tǒng)存儲(chǔ)器中檢索數(shù)據(jù)。實(shí)質(zhì)性地減少數(shù)據(jù)訪問延滯的另一個(gè)原因是,本發(fā)明的高速緩存相關(guān)性協(xié)議支持共享干預(yù),即不從系統(tǒng)存儲(chǔ)器而是從遠(yuǎn)程高速緩存提供共享狀態(tài)下存儲(chǔ)的數(shù)據(jù)。
以上結(jié)合示例性實(shí)施例具體地表示和敘述了本發(fā)明,然而本領(lǐng)域的熟練人員明白,在不偏離本發(fā)明的實(shí)質(zhì)和范圍的前提下,對(duì)實(shí)施例的形式和內(nèi)容可以有各種改變。例如,可以修改圖3所示的高速緩存相關(guān)性協(xié)議,刪除其中的I狀態(tài)86,因?yàn)樵摖顟B(tài)僅僅用于在通電時(shí)初始化目錄項(xiàng),其它狀態(tài)永遠(yuǎn)不會(huì)轉(zhuǎn)換到這個(gè)狀態(tài)。如果將I狀態(tài)86刪除,在通電時(shí)各L2目錄項(xiàng)的相關(guān)性狀態(tài)域就被初始化為H狀態(tài)90,各L2目錄項(xiàng)的標(biāo)記域就被初始化成一個(gè)至少在同一同余類中是唯一的標(biāo)記值。
權(quán)利要求
1.一種保持?jǐn)?shù)據(jù)處理系統(tǒng)中高速緩存相關(guān)性的方法,其中的數(shù)據(jù)處理系統(tǒng)包括多個(gè)連接著一個(gè)互連部件上的高速緩存和多個(gè)處理器,該方法的特征在于包含將第一數(shù)據(jù)項(xiàng)與表示其地址的某地址標(biāo)記關(guān)聯(lián)存儲(chǔ)在多個(gè)高速緩存中的第一個(gè)高速緩存中;將第一個(gè)高速緩存中的某相關(guān)性指示符設(shè)置到第一狀態(tài),第一狀態(tài)表示第一個(gè)高速緩存中該地址標(biāo)記有效,該第一數(shù)據(jù)項(xiàng)無效;然后,窺探檢測(cè)互連部件上與地址標(biāo)記指示的地址關(guān)聯(lián)的數(shù)據(jù)傳輸,其中該數(shù)據(jù)傳輸是由多個(gè)高速緩存中的另一個(gè)高速緩存啟動(dòng)的,并且包括有第二個(gè)數(shù)據(jù)項(xiàng);在相關(guān)性指示符設(shè)置在第一狀態(tài)期間,如果檢測(cè)到互連部件上與地址標(biāo)記指示的地址關(guān)聯(lián)的數(shù)據(jù)傳輸,則,將第二數(shù)據(jù)項(xiàng)與該地址標(biāo)記關(guān)聯(lián)存儲(chǔ)在第一個(gè)高速緩存中,并且,更新相關(guān)性指示符到第二狀態(tài),表示該第二數(shù)據(jù)項(xiàng)有效,并且第一個(gè)高速緩存能夠應(yīng)請(qǐng)求提供第二數(shù)據(jù)項(xiàng)。
2.權(quán)利要求1的方法,其特征在于,將相關(guān)性指示符更新到第二狀態(tài)的步驟包含,將相關(guān)性指示符更新到表示第二數(shù)據(jù)項(xiàng)既存儲(chǔ)在第一個(gè)高速緩存、又存儲(chǔ)在多個(gè)高速緩存中另一個(gè)高速緩存的第二狀態(tài)的步驟。
3.權(quán)利要求1的方法,其特征在于,將相關(guān)性指示符設(shè)置到第一狀態(tài)的步驟包含,當(dāng)多個(gè)高速緩存其中之一表示要向地址標(biāo)記表示的地址存儲(chǔ)的意愿時(shí),將相關(guān)性指示符設(shè)置到第一狀態(tài)的步驟。
4.權(quán)利要求1的方法,其特征在于,進(jìn)一步包含以下步驟在相關(guān)性指示符設(shè)置在第二狀態(tài)期間,當(dāng)在第一個(gè)高速緩存通過互連部件而收到要求第二數(shù)據(jù)項(xiàng)的請(qǐng)求時(shí),將第二數(shù)據(jù)項(xiàng)放到互連部件上。
5.權(quán)利要求1的方法,其特征在于,第一個(gè)高速緩存與多個(gè)處理器中的某特定處理器關(guān)聯(lián),并且窺探檢測(cè)互連部件上與地址標(biāo)記指示的地址關(guān)聯(lián)的數(shù)據(jù)傳輸?shù)牟襟E包含,窺探檢測(cè)由與該特定處理器關(guān)聯(lián)的某更高層次高速緩存發(fā)出的數(shù)據(jù)傳輸?shù)牟襟E。
6.一種用于支持包括多個(gè)連接在一個(gè)互連部件上的高速緩存和多個(gè)處理器的數(shù)據(jù)處理系統(tǒng)中的高速緩存相關(guān)性的高速緩存,該高速緩存包含數(shù)據(jù)存儲(chǔ)器;存儲(chǔ)表示數(shù)據(jù)存儲(chǔ)器中保存的第一數(shù)據(jù)項(xiàng)的地址的地址標(biāo)記的標(biāo)記存儲(chǔ)器;一個(gè)至少有第一和第二狀態(tài)的相關(guān)性指示符,其中第一狀態(tài)表示地址標(biāo)記有效而第一數(shù)據(jù)項(xiàng)無效;窺探所述互連部件以檢測(cè)在其上與所述地址標(biāo)記指示的地址關(guān)聯(lián)的數(shù)據(jù)傳輸?shù)难b置,所述數(shù)據(jù)傳輸由所述多個(gè)高速緩存中的另一個(gè)啟動(dòng),并包括一個(gè)第二數(shù)據(jù)項(xiàng);以及在相關(guān)性指示符設(shè)置在第一狀態(tài)期間,當(dāng)檢測(cè)到互連部件上與地址標(biāo)記指示的地址關(guān)聯(lián)的數(shù)據(jù)傳輸時(shí),(1)將第二數(shù)據(jù)項(xiàng)與該地址標(biāo)記關(guān)聯(lián)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器中,并且,(2)將相關(guān)性指示符更新到第二狀態(tài),表示該第二數(shù)據(jù)項(xiàng)有效,并且第一個(gè)高速緩存能夠應(yīng)請(qǐng)求提供第二數(shù)據(jù)項(xiàng)的裝置。
7.權(quán)利要求6的高速緩存,其特征在于,將相關(guān)性指示符更新到第二狀態(tài)的裝置包含,將該相關(guān)性指示符更新到表示第二數(shù)據(jù)項(xiàng)既存儲(chǔ)在第一高速緩存又存儲(chǔ)在多個(gè)高速緩存中另一個(gè)高速緩存的第二狀態(tài)的裝置。
8.權(quán)利要求6的高速緩存,其特征在于,進(jìn)一步包含,當(dāng)多個(gè)處理器其中之一表示要向地址標(biāo)記表示的地址存儲(chǔ)的意愿時(shí),將相關(guān)性指示符設(shè)置到第一狀態(tài)的裝置。
9.權(quán)利要求6的高速緩存,其特征在于,進(jìn)一步包含,在相關(guān)性指示符設(shè)置在第二狀態(tài)期間,當(dāng)在第一個(gè)高速緩存通過互連部件而收到要求第二數(shù)據(jù)項(xiàng)的請(qǐng)求時(shí),將第二數(shù)據(jù)項(xiàng)放到互連部件上的裝置。
10.權(quán)利要求6的高速緩存,其特征在于,高速緩存與多個(gè)處理器中的某特定處理器關(guān)聯(lián),并且窺探檢測(cè)互連部件上與地址標(biāo)記指示的地址關(guān)聯(lián)的數(shù)據(jù)傳輸?shù)难b置包含,窺探檢測(cè)由與該特定處理器關(guān)聯(lián)的某更高層次高速緩存發(fā)出的數(shù)據(jù)傳輸?shù)难b置。
11.權(quán)利要求6的高速緩存,其特征在于,高速緩存以后備配置方式與互連部件相連。
12.一個(gè)數(shù)據(jù)處理系統(tǒng),包括一個(gè)互連部件;多個(gè)連接在所述互連部件上的處理器;多個(gè)高速緩存,其每一個(gè)均與多個(gè)處理器中的一個(gè)處理器關(guān)聯(lián),其中所述多個(gè)高速緩存中的第一個(gè)高速緩存包括數(shù)據(jù)存儲(chǔ)器;存儲(chǔ)表示在所述數(shù)據(jù)存儲(chǔ)器中包含的一個(gè)第一數(shù)據(jù)項(xiàng)的地址的一個(gè)地址標(biāo)記的標(biāo)記存儲(chǔ)器;一個(gè)具有至少第一和第二狀態(tài)的相關(guān)性指示符,其中第一狀態(tài)表示,地址標(biāo)記有效,而第一數(shù)據(jù)項(xiàng)無效;窺探所述互連部件、檢測(cè)在該互連部件上與由地址標(biāo)記表示的地址關(guān)聯(lián)的數(shù)據(jù)傳輸?shù)难b置,所述數(shù)據(jù)傳輸由多個(gè)高速緩存中的另一個(gè)啟動(dòng),并包括一個(gè)第二數(shù)據(jù)項(xiàng);在相關(guān)性指示符設(shè)置在第一狀態(tài)期間,當(dāng)檢測(cè)到互連部件上與由地址標(biāo)記表示的地址關(guān)聯(lián)的數(shù)據(jù)傳輸時(shí),用于(1)將第二數(shù)據(jù)項(xiàng)與地址標(biāo)記關(guān)聯(lián)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器中,以及用于(2)更新相關(guān)性指示符為第二狀態(tài)的裝置,該第二狀態(tài)表示,第二數(shù)據(jù)項(xiàng)有效并且第一高速緩存能響應(yīng)請(qǐng)求提供第二數(shù)據(jù)項(xiàng)。
13.權(quán)利要求12的數(shù)據(jù)處理系統(tǒng),其特征在于,更新相關(guān)性指示符為第二狀態(tài)的裝置包括更新相關(guān)性指示符為表示第二數(shù)據(jù)項(xiàng)既存儲(chǔ)在第一高速緩存,也存儲(chǔ)在多個(gè)高速緩存中另一個(gè)高速緩存中的第二狀態(tài)的裝置。
14.權(quán)利要求12的數(shù)據(jù)處理系統(tǒng),其特征在于,進(jìn)一步包括當(dāng)多個(gè)處理器中一個(gè)處理器表示要向地址標(biāo)記表示的地址存儲(chǔ)時(shí),設(shè)定相關(guān)性指示符為第一狀態(tài)的裝置。
15.權(quán)利要求12的數(shù)據(jù)處理系統(tǒng),其特征在于進(jìn)一步包括,在相關(guān)性指示符設(shè)定為第二狀態(tài)期間,第一高速緩存通過所述互連部件接收到要求第二數(shù)據(jù)項(xiàng)的請(qǐng)求時(shí),把第二數(shù)據(jù)項(xiàng)放在所述互連部件上的裝置。
16.權(quán)利要求12的數(shù)據(jù)處理系統(tǒng),其特征在于,第一高速緩存與多個(gè)處理器中某特定處理器關(guān)聯(lián),所述窺探檢測(cè)在互連部件上與地址標(biāo)記表示的地址關(guān)聯(lián)的數(shù)據(jù)傳輸?shù)难b置包括窺探檢測(cè)由一個(gè)與該特定處理器關(guān)聯(lián)的較高層次高速緩存發(fā)出的數(shù)據(jù)傳輸?shù)难b置。
17.權(quán)利要求12的數(shù)據(jù)處理系統(tǒng),其特征在于,第一高速緩存以后備配置方式連接在互連部件上。
全文摘要
本文介紹一種保持?jǐn)?shù)據(jù)處理系統(tǒng)中高速緩存相關(guān)性的高速緩存和方法。根據(jù)本發(fā)明的方法,第一個(gè)高速緩存的第一個(gè)數(shù)據(jù)項(xiàng)是與表示其地址的一個(gè)地址標(biāo)記關(guān)聯(lián)存儲(chǔ)的。第一個(gè)高速緩存的相關(guān)性指示符被設(shè)置到第一狀態(tài)。然后,窺探互連部件,監(jiān)測(cè)由多個(gè)高速緩存中另一個(gè)高速緩存啟動(dòng)的數(shù)據(jù)傳輸。如果在相關(guān)性指示符設(shè)置在第一狀態(tài)期間,檢測(cè)到這種數(shù)據(jù)傳輸,則將第二數(shù)據(jù)項(xiàng)與該地址標(biāo)記關(guān)聯(lián)存儲(chǔ)在第一個(gè)高速緩存中,并且將相關(guān)性指示符設(shè)置到第二狀態(tài)。
文檔編號(hào)G06F12/08GK1226706SQ9910130
公開日1999年8月25日 申請(qǐng)日期1999年1月15日 優(yōu)先權(quán)日1998年2月17日
發(fā)明者R·K·阿里米里, J·S·多德森, J·D·劉易斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司