專利名稱:具有指令和數(shù)據(jù)的懸停(h)狀態(tài)的高速緩存相關(guān)協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及一種用于數(shù)據(jù)處理的方法和系統(tǒng),具體涉及一種在多處理器數(shù)據(jù)處理系統(tǒng)中保持?jǐn)?shù)據(jù)相關(guān)的方法和系統(tǒng)。而更具體地,本發(fā)明涉及一種用于多處理器數(shù)據(jù)處理系統(tǒng)的高速緩存相關(guān)協(xié)議,其中包括一懸停(H)狀態(tài),該狀態(tài)允許以有效數(shù)據(jù)修改第一高速緩存,以響應(yīng)第二高速緩存獨(dú)立發(fā)送該有效數(shù)據(jù)至一耦合第一和第二高速緩存的互連部件上。
在常規(guī)的對(duì)稱多處理器(SMP)數(shù)據(jù)處理系統(tǒng)中,所有的處理器通常是相同的,即,這些處理器都采用公共的指令集和通信協(xié)議,具有相似的硬件結(jié)構(gòu),并且一般配備有類似的存儲(chǔ)器層次。例如,一常規(guī)SMP數(shù)據(jù)處理系統(tǒng)可以包括一系統(tǒng)存貯器、多個(gè)處理部件和一系統(tǒng)總線,其中每個(gè)處理部件包括一處理器和一級(jí)或多級(jí)高速緩沖存貯器,該系統(tǒng)總線將一處理部件耦合至每一其它處理部件和系統(tǒng)存貯器。為了在SMP數(shù)據(jù)處理系統(tǒng)中獲得有效的執(zhí)行結(jié)果,重要的是保持相關(guān)存貯器層次,即,為所有的處理部件提供存貯器內(nèi)容的單一視圖。
通過使用一選擇的存貯器相關(guān)協(xié)議,例如MESI協(xié)議的應(yīng)用來(lái)保持相關(guān)存貯器層次。在該MESI協(xié)議中,一相關(guān)狀態(tài)的指示被與至少所有較高級(jí)的(高速緩沖)存貯器的每一相關(guān)區(qū)組(例如,高速緩存行或區(qū)段)相關(guān)聯(lián)地存儲(chǔ),每個(gè)相關(guān)區(qū)組可以具有四個(gè)狀態(tài)中的一個(gè)狀態(tài),即修改(M)、專用(E)、共享(S)或無(wú)效(I),它們?cè)诟咚倬彺婺夸浿杏蓛晌槐硎尽T撔薷臓顟B(tài)表示一相關(guān)區(qū)組僅在存儲(chǔ)該被修改相關(guān)區(qū)組的高速緩存中有效并且該被修改的相關(guān)區(qū)組的值還未寫到系統(tǒng)存貯器。當(dāng)一相關(guān)區(qū)組被指示為專用狀態(tài)時(shí),則在存貯器層次的這一級(jí)的所有高速緩存中,該相關(guān)區(qū)組僅駐留在具有該處于專用狀態(tài)的相關(guān)區(qū)組的高速緩存中。但是在專用狀態(tài)中的數(shù)據(jù)與系統(tǒng)存貯器一致。如果在高速緩存目錄中一相關(guān)區(qū)組被標(biāo)志為共享,則該相關(guān)區(qū)組駐留在其相關(guān)聯(lián)的高速緩存中以及至少一個(gè)位于存貯器層次同一級(jí)的其它高速緩存中,該相關(guān)區(qū)組的所有這些拷貝與系統(tǒng)存貯器一致。最后,所述無(wú)效狀態(tài)指示與一相關(guān)區(qū)組相關(guān)聯(lián)的數(shù)據(jù)和地址標(biāo)志都是無(wú)效的。
每個(gè)相關(guān)區(qū)組(例如高速緩存行)被設(shè)置的狀態(tài)依賴于該高速緩存行的在先狀態(tài)和請(qǐng)求處理器想要的存貯器訪問的類型。因此,在多處理器數(shù)據(jù)處理系統(tǒng)中保持存貯器相關(guān)就需要這些處理器經(jīng)由系統(tǒng)總線傳送指示它們讀或?qū)懘鎯?chǔ)單元的意圖的消息。例如,當(dāng)一處理器想要將數(shù)據(jù)寫到一存儲(chǔ)單元時(shí),為了實(shí)現(xiàn)該寫操作,該處理器必須首先將其把數(shù)據(jù)寫到該存貯單元的意圖通知所有其它處理部件并且從所有其它處理部件接收許可。由該請(qǐng)求處理器接收的這些許可消息表示該存貯單元內(nèi)容的所有其它的高速緩存拷貝已經(jīng)被無(wú)效,由此保證其它處理器將不訪問失效的局部數(shù)據(jù)。這種消息交換就是公知的交叉-無(wú)效(cross-invalidation)(Ⅺ)。
本發(fā)明知道的是,雖然高速緩存項(xiàng)的交叉-無(wú)效足以維持SMP數(shù)據(jù)處理系統(tǒng)中的存貯器相關(guān),但是,遠(yuǎn)程處理器的高速緩存項(xiàng)的無(wú)效因降低局部高速緩存中的命中率而對(duì)數(shù)據(jù)處理系統(tǒng)的性能產(chǎn)生不利影響。因此,即使配置大的局部高速緩存,但是當(dāng)一處理部件從另一處理部件的遠(yuǎn)程高速緩存或者系統(tǒng)存貯器中檢索曾經(jīng)駐留在局部高速緩存中的數(shù)據(jù)時(shí),前述欲檢索數(shù)據(jù)的處理部件也要承擔(dān)長(zhǎng)的訪問等待時(shí)間。因此,如將會(huì)明顯地看到的那樣,最好是提供一種方法和系統(tǒng),用于在SMP數(shù)據(jù)處理系統(tǒng)中保持存貯器相關(guān),該方法和系統(tǒng)減小了由于高速緩存項(xiàng)的交叉-無(wú)效的結(jié)果而招致的性能惡化。
因此,本發(fā)明的一個(gè)目的是提供一種改進(jìn)的用于數(shù)據(jù)處理的方法和系統(tǒng)。
本發(fā)明的另一個(gè)目的是提供一種改進(jìn)的用于在多處理器數(shù)據(jù)處理系統(tǒng)中保持?jǐn)?shù)據(jù)相關(guān)的方法和系統(tǒng)。
本發(fā)明的再一個(gè)目的是提供一種用于多處理器數(shù)據(jù)處理系統(tǒng)的高速緩存相關(guān)協(xié)議,該協(xié)議包括一懸停(H)狀態(tài),該狀態(tài)允許第一高速緩存被以有效數(shù)據(jù)修改,以響應(yīng)第二高速緩存獨(dú)立發(fā)送該有效數(shù)據(jù)至耦合第一和第二高速緩存的互連部件上。
前面的目的的實(shí)現(xiàn)將如下所述。一數(shù)據(jù)處理系統(tǒng)包括多個(gè)處理器,其中每個(gè)處理器與多個(gè)高速緩存中相應(yīng)的一個(gè)相關(guān)聯(lián)。根據(jù)本發(fā)明的方法,一個(gè)數(shù)據(jù)項(xiàng)與表示該數(shù)據(jù)項(xiàng)的地址的一地址標(biāo)志相關(guān)聯(lián)地存儲(chǔ)在第一高速緩存中。在第一高速緩存中的一相關(guān)指示符被設(shè)置為第一狀態(tài),該第一狀態(tài)指示該數(shù)據(jù)項(xiàng)有效。在該相關(guān)指示符被設(shè)置為第一狀態(tài)的時(shí)候,響應(yīng)另一高速緩存指示想要存儲(chǔ)至由該地址標(biāo)志指示的地址,在第一高速緩存中的相關(guān)指示符被修改至第二狀態(tài),該第二狀態(tài)指示該地址標(biāo)志有效而該第一高速緩存中的數(shù)據(jù)項(xiàng)無(wú)效。此后,根據(jù)一個(gè)實(shí)施例,在該相關(guān)指示符設(shè)置為該第二狀態(tài)時(shí),響應(yīng)與由該地址標(biāo)志指示的地址相關(guān)的數(shù)據(jù)傳輸?shù)臋z測(cè),通過與該地址標(biāo)志相關(guān)聯(lián)地在所述第一高速緩存中存儲(chǔ)一個(gè)第二數(shù)據(jù)項(xiàng)而代替第一高速緩存中的該數(shù)據(jù)項(xiàng)。另外,將該相關(guān)指示符更新為第三狀態(tài),該第三狀態(tài)表示該第二數(shù)據(jù)項(xiàng)有效。
本發(fā)明的上述及其它的目的、特性和優(yōu)點(diǎn)將在下面的詳細(xì)描述中變得明白。
新的性能所認(rèn)為的本發(fā)明的特征描述于后附的權(quán)利要求中。但是,本發(fā)明本身,所用的最佳實(shí)施例以及其它的目的和優(yōu)點(diǎn)將最好是結(jié)合附圖并參照下面的說(shuō)明性實(shí)施例的詳細(xì)描述來(lái)理解,其中
圖1描述了根據(jù)本發(fā)明的多處理器數(shù)據(jù)處理系統(tǒng)的一說(shuō)明性實(shí)施例;圖2是描述根據(jù)本發(fā)明的高速緩存的說(shuō)明性實(shí)施例的方框圖;圖3是描述本發(fā)明的H-MESI存貯器相關(guān)協(xié)議的說(shuō)明性實(shí)施例的狀態(tài)圖。
現(xiàn)在參照附圖,特別參照?qǐng)D1,圖1說(shuō)明了根據(jù)本發(fā)明的多處理器數(shù)據(jù)處理系統(tǒng)的高級(jí)方框圖。如圖所示,數(shù)據(jù)處理系統(tǒng)8包括多個(gè)處理器10a-10n,其中每個(gè)處理器最好由來(lái)自IBM公司的Power PCTM系列處理器的其中之一構(gòu)成。除了常規(guī)寄存器、指令流邏輯和用于執(zhí)行程序指令的執(zhí)行部件外,每個(gè)處理器10a-10n還包括板上一級(jí)(L1)高速緩存12a-12n中相關(guān)聯(lián)的一個(gè)高速緩存,這個(gè)高速緩存臨時(shí)存儲(chǔ)很可能被相關(guān)聯(lián)的處理器訪問的指令和數(shù)據(jù)。雖然在圖1中L1高速緩存12a-12n被圖解為存儲(chǔ)指令和數(shù)據(jù)(此后這二者被簡(jiǎn)單地稱作數(shù)據(jù))的一體化的高速緩存,但是本領(lǐng)域的技術(shù)人員將明白的是,L1高速緩存12a-12n中的每一個(gè)都能替換地實(shí)現(xiàn)為分開的指令和數(shù)據(jù)高速緩存。
為了最小化數(shù)據(jù)訪問等待時(shí)間,數(shù)據(jù)處理系統(tǒng)8還包括一級(jí)或多級(jí)附加的高速緩存,例如二級(jí)(L2)高速緩存14a-14n,它們用于分級(jí)至L1高速緩存12a-12n的數(shù)據(jù)。換句話說(shuō),L2高速緩存14a-14n用作系統(tǒng)存貯器18和L1高速緩存12a-12n的中間存儲(chǔ)器,并且它們通常存儲(chǔ)比L1高速緩存12a-12n大的多的數(shù)據(jù)量,但需要較長(zhǎng)的訪問等待時(shí)間。例如,L2高速緩存14a-14n可以具有256或512KB的存貯容量,而L1高速緩存可以具有64或128KB的存貯容量。如上所述,雖然圖1中僅示出了兩級(jí)高速緩存,但是,數(shù)據(jù)處理系統(tǒng)8的存貯層次可以被擴(kuò)展至包括串聯(lián)的附加級(jí)(L3、L4,等等)高速緩存或者后備高速緩存。
如圖所示,數(shù)據(jù)處理系統(tǒng)8還包括I/O設(shè)備20、系統(tǒng)存貯器18、以及非易失性存貯器22,它們都耦合至互連部件16。I/O設(shè)備20包括諸如顯示設(shè)備、鍵盤和圖形指示器等常規(guī)外圍設(shè)備,它們都通過常規(guī)適配器連接至互連部件16。非易失性存儲(chǔ)器22存儲(chǔ)操作系統(tǒng)和其它軟件,響應(yīng)數(shù)據(jù)處理系統(tǒng)8被加電它們被加載到易失性的系統(tǒng)存貯器18。當(dāng)然,本領(lǐng)域的技術(shù)人員將明白的是,數(shù)據(jù)處理系統(tǒng)8能夠包括許多圖1中未示出的其它部件,諸如用于至網(wǎng)絡(luò)或所接設(shè)備的連接的串并口、管理對(duì)系統(tǒng)存儲(chǔ)器18的訪問的存貯控制器,等等。
互連部件16可由一個(gè)或多個(gè)總線或一交叉點(diǎn)開關(guān)組成,該互連部件作為用于在L2高速緩存14a-14n系統(tǒng)存貯器18、輸入/輸出(I/O)設(shè)備20、和非易失性存貯器之間的通信事務(wù)的管道。在互連部件16上的一個(gè)典型通信事務(wù)包括指示該事務(wù)的源的一個(gè)源標(biāo)志、指定該事務(wù)的預(yù)計(jì)的接受者的一個(gè)目的標(biāo)志、一地址和/或數(shù)據(jù)。耦合到互連部件16的每個(gè)設(shè)備最好都探聽在互連部件16上的所有通信事務(wù)。
現(xiàn)在參見圖2,圖2描述了根據(jù)本發(fā)明的L2高速緩存14的一說(shuō)明性實(shí)施例的較詳細(xì)的方框圖。在該說(shuō)明性實(shí)施例中,L2高速緩存14是采用32位地址的四路組相關(guān)高速緩存。因此,L2高速緩存14的數(shù)據(jù)陣列34包括許多同余類(congruence class),每個(gè)同余類含有用于存儲(chǔ)高速緩存行的4個(gè)路。如常規(guī)組相關(guān)高速緩存那樣,采用在存貯單元地址范圍內(nèi)的索引位(例如32位地址的20-26位),系統(tǒng)存貯器18的存貯單元被映射到特定的同余類。
在數(shù)據(jù)陣列34內(nèi)存儲(chǔ)的高速緩存行記錄在高速緩存目錄32中,該目錄包括用于數(shù)據(jù)陣列34的每一路的一個(gè)目錄項(xiàng)。每個(gè)目錄項(xiàng)包括標(biāo)志字段40、相關(guān)狀態(tài)字段42、最近最少使用(LRU)字段44和包含字段46。標(biāo)志字段40通過存儲(chǔ)該高速緩存行的系統(tǒng)存貯器地址的標(biāo)志位(例如0-19位)來(lái)確定哪個(gè)高速緩存行存儲(chǔ)在數(shù)據(jù)陣列34的相應(yīng)路中。如下面將參照?qǐng)D3詳細(xì)討論的那樣,相關(guān)狀態(tài)字段42利用預(yù)定義的位組合來(lái)表示存儲(chǔ)在數(shù)據(jù)陣列34的相應(yīng)路中的數(shù)據(jù)的相關(guān)狀態(tài)。LRU字段44指示最近數(shù)據(jù)陣列34的相應(yīng)路相對(duì)于其同余類的其它路已經(jīng)如何被訪問,由此指示哪個(gè)高速緩存行應(yīng)從該同余類中舍去以響應(yīng)一高速緩存未命中。最后,包含字段46指示存儲(chǔ)在數(shù)據(jù)陣列34的相應(yīng)路中的高速緩存行是否還存儲(chǔ)在相關(guān)聯(lián)的L1高速緩存12中。
再參照?qǐng)D2,L2高速緩存14還包括高速緩存控制器36,它根據(jù)從相關(guān)聯(lián)的L1高速緩存12接收的信號(hào)以及在互連部件16上探聽的事務(wù)而管理在數(shù)據(jù)陣列34中的數(shù)據(jù)的存儲(chǔ)和檢索以及對(duì)高速緩存目錄32的修改。如圖所示,高速緩存控制器36含有一讀隊(duì)列50和一寫隊(duì)列52,從這兩個(gè)隊(duì)列中高速緩存控制器36執(zhí)行對(duì)高速緩存目錄32的修改以及對(duì)數(shù)據(jù)陣列34的訪問。例如,響應(yīng)從關(guān)聯(lián)的L1高速緩存12接收一讀操作,高速緩存控制器36將該讀操作放在讀隊(duì)列50的一個(gè)項(xiàng)中。高速緩存控制器36通過提供所請(qǐng)求的數(shù)據(jù)至關(guān)聯(lián)的L1高速緩存12而滿足該讀請(qǐng)求的需要,并且然后將該讀請(qǐng)求從讀隊(duì)列50中刪除。作為另一個(gè)例子,高速緩存控制器36可以探聽到一由L2高速緩存14a-14n中另一個(gè)啟動(dòng)的表示一遠(yuǎn)程處理器10想要修改其本地的一特定高速緩存行的拷貝的事務(wù)。響應(yīng)于該探聽的事務(wù),高速緩存控制器36在讀隊(duì)列50中放入一個(gè)讀高速緩存目錄32的請(qǐng)求以便確定該特定高速緩存行是否駐留在數(shù)據(jù)陣列34中。如果是那樣的話,高速緩存控制器36發(fā)出一適當(dāng)?shù)捻憫?yīng)到互連部件16上,并且如果需要,插入一目錄寫請(qǐng)求到寫隊(duì)列52中,當(dāng)其被服務(wù)時(shí),修改與該特定高速緩存行相關(guān)聯(lián)的相關(guān)狀態(tài)字段。雖然圖2示出了在其中僅使用一個(gè)讀隊(duì)列和一個(gè)寫隊(duì)列的實(shí)施例,但是應(yīng)該明白,高速緩存控制器36采用的隊(duì)列數(shù)只是設(shè)計(jì)選擇的問題,并且高速緩存控制器36可以為高速緩存目錄訪問和數(shù)據(jù)陣列訪問采用單獨(dú)的隊(duì)列。
高速緩存控制器36還包括模式寄存器60,如下面更詳細(xì)地的描述那樣,該模式寄存器由一位或多位組成,所述一位或多位的設(shè)置控制高速緩存控制器36的操作。另外,高速緩存控制器36包括性能監(jiān)視器70。性能監(jiān)視器70裝配有性能視計(jì)數(shù)器(PMCO-PMCn)72,當(dāng)啟動(dòng)時(shí),這些計(jì)數(shù)器遞增以響應(yīng)由一個(gè)或多個(gè)控制寄存器(CRO-CRm)74確定的一個(gè)事件或事件的組合的每一次發(fā)生??捎蒔MC72計(jì)數(shù)以響應(yīng)CR74的設(shè)置的這些事件包括高速緩存命中、高速緩存未命中、特定隊(duì)列中的項(xiàng)數(shù)、L2高速緩存命中的訪問等待時(shí)間、L2高速緩存未命中的訪問等待時(shí)間,等等。PMC72和CR74中的每一個(gè)最好是可由相關(guān)聯(lián)的處理器10通過加載和存儲(chǔ)指令來(lái)讀和寫的存貯映象寄存器。
現(xiàn)在參見圖3,圖中描述了根據(jù)本發(fā)明的H-MESI存貯器相關(guān)協(xié)議的一說(shuō)明性實(shí)施例。該H-MESI協(xié)議最好只由存貯層次中最低級(jí)的高速緩存(例如,在圖1的數(shù)據(jù)處理系統(tǒng)8的實(shí)施例中的L2高速緩存14a-14n)實(shí)現(xiàn),而較高級(jí)的高速緩存最好實(shí)現(xiàn)常規(guī)的MESI協(xié)議。但是,在數(shù)據(jù)處理系統(tǒng)8的另一實(shí)施例中,H-MESI協(xié)議能夠以額外的高速緩存之間的通信量為代價(jià)而在存貯層次的每一級(jí)高速緩存中實(shí)現(xiàn)。
如圖3所示,H-MESI存貯器相關(guān)協(xié)議包括常規(guī)的MESI協(xié)議的修改(M)、專用(E)、共享(S)和無(wú)效(I)狀態(tài),它們分別由參考號(hào)80、82、84、86標(biāo)識(shí)。另外,本發(fā)明的H-MESI存貯器相關(guān)協(xié)議包括懸停(H)狀態(tài)90,H狀態(tài)指示存儲(chǔ)在相關(guān)聯(lián)的標(biāo)志字段40中的地址標(biāo)志有效而存儲(chǔ)在數(shù)據(jù)陣列34的相應(yīng)路中的數(shù)據(jù)項(xiàng)(例如高速緩存行或高速緩存區(qū)段)無(wú)效。
在一最佳實(shí)施例中,任一L2高速緩存目錄32的每一項(xiàng)的相關(guān)狀態(tài)字段42在加電時(shí)被初始化為I狀態(tài)86,以便指示標(biāo)志字段40和存儲(chǔ)在數(shù)據(jù)陣列34的相應(yīng)路中的數(shù)據(jù)都是無(wú)效的。類似地,根據(jù)常規(guī)MESI協(xié)議,L1高速緩存目錄項(xiàng)也被初始化為無(wú)效狀態(tài)。此后,根據(jù)由處理器10a-10n產(chǎn)生的存貯器請(qǐng)求的類型和存貯層次對(duì)這些請(qǐng)求的響應(yīng),處于無(wú)效狀態(tài)86的存儲(chǔ)于L2高速緩存14a-14n的其中之一的一高速緩存行(或高速緩存區(qū)段)的相關(guān)狀態(tài)能夠修改為M狀態(tài)80、E狀態(tài)82或S狀態(tài)84的其中之一。
例如,如果處理器10a產(chǎn)生一讀請(qǐng)求以響應(yīng)一加載指令,則L1高速緩存12a首先確定所請(qǐng)求的數(shù)據(jù)是否駐留在L1高速緩存12a中。響應(yīng)在L1高速緩存12a中的命中,L1高速緩存12a簡(jiǎn)單地將所請(qǐng)求數(shù)據(jù)提供給處理器10a。但是,響應(yīng)在L1高速緩存12a中的未命中,L1高速緩存12a通過高速緩存之間的連接發(fā)送該讀請(qǐng)求至L2高速緩存14a。響應(yīng)在L2高速緩存14a中的命中,所請(qǐng)求的數(shù)據(jù)被L2高速緩存14a提供至L1高速緩存12a,L1高速緩存12a與適當(dāng)?shù)腗ESI相關(guān)狀態(tài)結(jié)合地存儲(chǔ)所請(qǐng)求數(shù)據(jù)并且發(fā)送所請(qǐng)求數(shù)據(jù)至處理器10a。但是,如果該讀請(qǐng)求在L1高速緩存12a和L2高速緩存14a中都未命中,則L2高速緩存14a的高速緩存控制器36作為一事務(wù)發(fā)出該讀請(qǐng)求到互連部件16上,該事務(wù)被每個(gè)L2高速緩存14b-14n探聽。
根據(jù)探聽在互連部件16上的該讀請(qǐng)求,在每個(gè)L2高速緩存14b-14n中的高速緩存控制器36確定所請(qǐng)求數(shù)據(jù)是否駐留在其數(shù)據(jù)陣列34或者L2高速緩存12b-12n中相關(guān)聯(lián)的一個(gè)中。如果L2高速緩存14b-14n或者L1高速緩存12b-12n都未存儲(chǔ)所請(qǐng)求數(shù)據(jù),則每個(gè)L2高速緩存14a-14n返回一空響應(yīng)至L2高速緩存14a,然后L2高速緩存14a從系統(tǒng)存貯器18中請(qǐng)求該數(shù)據(jù)。當(dāng)所請(qǐng)求數(shù)據(jù)從系統(tǒng)存儲(chǔ)器18返回到L2高速緩存14a時(shí),高速緩存控制器36發(fā)送所請(qǐng)求數(shù)據(jù)至L1高速緩存12a,存儲(chǔ)所請(qǐng)求數(shù)據(jù)到其數(shù)據(jù)陣列34中,并且如參考號(hào)100所示,修改與存儲(chǔ)所請(qǐng)求數(shù)據(jù)的路相關(guān)聯(lián)的相關(guān)狀態(tài)字段42從I狀態(tài)86至E狀態(tài)82。如在常規(guī)MESI協(xié)議中那樣,E狀態(tài)82表示關(guān)聯(lián)的高速緩存行有效并且沒有駐留在存貯層次第二級(jí)的任何其它高速緩存中。
類似地,如果任一L1高速緩存12b-12n或者L2高速緩存14b-14n存儲(chǔ)所請(qǐng)求數(shù)據(jù)在E狀態(tài)82或S狀態(tài)84,并且因此對(duì)由L2高速緩存發(fā)送到互連部件16上的該讀請(qǐng)求指示“共享”響應(yīng),則L2高速緩存14a從系統(tǒng)存貯器18中檢索所請(qǐng)求數(shù)據(jù)。但是,在這種情況下,在存儲(chǔ)所請(qǐng)求數(shù)據(jù)的L2高速緩存14a中的路的相關(guān)狀態(tài)從I狀態(tài)86變換到S狀態(tài)84,如參考號(hào)102所示。存儲(chǔ)所請(qǐng)求數(shù)據(jù)于E狀態(tài)82的其它L2高速緩存14也修改至S狀態(tài)84,如參考號(hào)104所示。
如果處理器10a請(qǐng)求的數(shù)據(jù)沒有駐留在L1高速緩存12a和L2高速緩存14a中,而是例如在L1高速緩存12n中存儲(chǔ)為M狀態(tài)80,則L2高速緩存12n的高速緩存控制器36用一重試回答該讀請(qǐng)求并且發(fā)信號(hào)通知L1高速緩存12n將所請(qǐng)求數(shù)據(jù)推入存貯器。然后,在L1高速緩存12n和L2高速緩存14n中所請(qǐng)求數(shù)據(jù)的相關(guān)狀態(tài)被修改至S狀態(tài)84,如參考號(hào)106所示。此后,當(dāng)L2高速緩存14a重試該讀請(qǐng)求到互連部件16上時(shí),如上所述,L2高速緩存14n回答一共享響應(yīng)并且L2高速緩存14a從系統(tǒng)存貯器18中獲取所請(qǐng)求數(shù)據(jù)。在支持所謂的修改干預(yù)的另一實(shí)施例中,所請(qǐng)求數(shù)據(jù)由L2高速緩存14n的高速緩存控制器36而不是系統(tǒng)存貯器18來(lái)發(fā)送,因而減少了訪問等待時(shí)間。
如果L1高速緩存12a不是發(fā)出一讀請(qǐng)求,而是發(fā)出一表示處理器10a想要獲得一存貯單元的專用權(quán)以便修改該單元的“想要修改的讀”請(qǐng)求,則就會(huì)接著發(fā)生上述的獲得含有該特定存貯單元的高速緩存行的處理。但是,當(dāng)獲得所請(qǐng)求的高速緩存行時(shí),L1高速緩存12a存儲(chǔ)所請(qǐng)求高速緩存行在修改狀態(tài)。另外,由于該“想要修改的讀”事務(wù)表示所請(qǐng)求的高速緩存行的其它拷貝將變?yōu)殛惻f的,因此,其它的L1和L2高速緩存必須將它們的所請(qǐng)求高速緩存行的拷貝表示為無(wú)效。在L1高速緩存12b-12n中,所請(qǐng)求高速緩存行的任何拷貝都簡(jiǎn)單地標(biāo)志為無(wú)效。但是,存儲(chǔ)在L2高速緩存14b-14n中的該請(qǐng)求高速緩存行的拷貝的相關(guān)狀態(tài)不是象常規(guī)的利用交叉-無(wú)效(Ⅺ)的多處理器數(shù)據(jù)處理系統(tǒng)那樣被修改為I狀態(tài)86。但是,根據(jù)本發(fā)明的一個(gè)重要方面,存儲(chǔ)該請(qǐng)求高速緩存行的拷貝的各個(gè)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分別修改為H狀態(tài)90,如參考號(hào)110、112、114所示。如上所述,H狀態(tài)90指示存儲(chǔ)在標(biāo)志字段40中的標(biāo)志保持有效,但在數(shù)據(jù)陣列34中相關(guān)聯(lián)的高速緩存行無(wú)效。類似地,響應(yīng)其它被探聽的要求使數(shù)據(jù)無(wú)效的事務(wù),在高速緩存目錄32中的項(xiàng)也被修改至H狀態(tài)90,前述的事務(wù)包括清除(Kill)(即,明確地使一特定數(shù)據(jù)塊無(wú)效的事務(wù))、清空(flush)(即,使一特定數(shù)據(jù)塊無(wú)效并且拷貝任一修改數(shù)據(jù)至系統(tǒng)存貯器的事務(wù))、dclaim(即,根據(jù)一高速緩存行的局部拷貝變成修改狀態(tài)以響應(yīng)一存儲(chǔ),使在遠(yuǎn)程高速緩存中標(biāo)志為共享的該高速緩存行的拷貝無(wú)效的事務(wù)),等等。
如參考號(hào)116、118、120所示,根據(jù)一高速緩存接收的事務(wù)類型,該高速緩存的目錄項(xiàng)可以從H狀態(tài)90分別變換到E狀態(tài)82、M狀態(tài)80、或者S狀態(tài)84。例如,根據(jù)產(chǎn)生一讀請(qǐng)求的處理器10a(在未命中于L1高速緩存12a和L2高速緩存14a之后)接收一來(lái)自L2高速緩存14b-14n的空響應(yīng),處理H狀態(tài)90的L2高速緩存14a的一目錄項(xiàng)產(chǎn)生一個(gè)至E狀態(tài)82的轉(zhuǎn)換(如參考號(hào)86所示),這是因?yàn)樗械腖2高速緩存14a-14n當(dāng)中,從系統(tǒng)存貯器18檢索到的數(shù)據(jù)僅存儲(chǔ)在L2高速緩存14a中。另一方面,如果處理器10a指示想要存儲(chǔ)數(shù)據(jù)到處于H狀態(tài)90的L1高速緩存12a的一路中,L1高速緩存12a指示這個(gè)意圖至L2高速緩存14a,則L2高速緩存14a將發(fā)送一“想要修改的讀”事務(wù)到互連部件16上。如上所述,響應(yīng)探聽該“想要修改的讀”事務(wù),存儲(chǔ)在L2高速緩存14b-14n中的該請(qǐng)求高速緩存行的拷貝被修改為H狀態(tài)90,而存儲(chǔ)在L1高速緩存12b-12n中的該請(qǐng)求高速緩存行的拷貝被標(biāo)志為無(wú)效。一旦該請(qǐng)求高速緩存行返回到L1高速緩存12a并且處理器10a修改該高速緩存行,在L1高速緩存12a中該高速緩存行就被標(biāo)志為修改狀態(tài)以表示該高速緩存行有效,但是與系統(tǒng)存貯器18不相關(guān)。根據(jù)該實(shí)現(xiàn),其后該修改的高速緩存行可以存儲(chǔ)到L2高速緩存14a(例如,響應(yīng)一L1的舍去)而不需要該修改的高速緩存行寫回到系統(tǒng)存貯器18。如果這樣,則在L2高速緩存14a中與該修改的高速緩存行相關(guān)聯(lián)的相關(guān)狀態(tài)字段被修改為M狀態(tài)80,如參考號(hào)118所示。最后,根據(jù)一些不同的請(qǐng)求響應(yīng)情況,處于H狀態(tài)90的一L2高速緩存目錄項(xiàng)被修改為S狀態(tài)84。
首先,當(dāng)關(guān)聯(lián)的處理器10發(fā)出一讀請(qǐng)求至由標(biāo)志字段40中的(有效)地址指示的地址并且至少一個(gè)L2高速緩存14回答一共享響應(yīng)時(shí),處于H狀態(tài)90的一L2目錄項(xiàng)變換到S狀態(tài)84。更重要地,處于H狀態(tài)90的一L2高速緩存目錄項(xiàng)能夠修改至S狀態(tài)84而不需要關(guān)聯(lián)的處理器10發(fā)出一數(shù)據(jù)請(qǐng)求或者L2高速緩存14產(chǎn)生一事務(wù)到互連部件16上。如上所述,每個(gè)L2高速緩存14a-14n探聽發(fā)送在互連部件16上的所有事務(wù)。如果L2高速緩存14a-14n的其中之一,例如L2高速緩存14a探聽由L2高速緩存14b-14n的另一個(gè)發(fā)出的一事務(wù),該事務(wù)包括在L2高速緩存14a中存儲(chǔ)為H狀態(tài)90的數(shù)據(jù)的一修改(即,有效)拷貝,則L2高速緩存14a的高速緩存控制器36從互連部件16上采樣該數(shù)據(jù),存儲(chǔ)所探聽的數(shù)據(jù)到數(shù)據(jù)陣列34中,并且將相關(guān)聯(lián)的相關(guān)狀態(tài)字段42從H狀態(tài)90修改至S狀態(tài)84。當(dāng)然,如果需要一響應(yīng)以保持相關(guān),則L2高速緩存14a還提供一響應(yīng)至該探聽的事務(wù)。例如,如果該探聽的事務(wù)是一讀請(qǐng)求,則L2高速緩存14a必須提供一表示其想要采樣所請(qǐng)求數(shù)據(jù)的共享響應(yīng),使得發(fā)出請(qǐng)求的L2高速緩存存儲(chǔ)所請(qǐng)求數(shù)據(jù)在S狀態(tài)84而不是E狀態(tài)82。這樣,在互連部件16上的能夠被探聽而刷新與一有效地址標(biāo)志相關(guān)聯(lián)的無(wú)效數(shù)據(jù)的事務(wù)包括讀事務(wù)、寫事務(wù)、由于高速緩存行的舍去而導(dǎo)致的數(shù)據(jù)回寫至系統(tǒng)存貯器18,等等。
在圖3所示的H-MESI存貯器相關(guān)協(xié)議的說(shuō)明性實(shí)施例中可能產(chǎn)生的狀態(tài)變換概括于下面的表Ⅰ中。
表Ⅰ
根據(jù)本發(fā)明的一個(gè)重要方面,H-MESI協(xié)議可以精確地或者不精確地實(shí)現(xiàn)。H-MESI協(xié)議的精確實(shí)現(xiàn)要求L2高速緩存14a-14n總是采樣可在互連部件16上得到的數(shù)據(jù)以便刷新處于H狀態(tài)90的無(wú)效高速緩存行。相反,非精確實(shí)現(xiàn)允許高速緩存14a-14n選擇地采樣互連部件16上的數(shù)據(jù)以便刷新處于H狀態(tài)90的高速緩存行。在圖2所示的說(shuō)明性實(shí)施例中,根據(jù)在其模式寄存器60中的模式位62的狀態(tài),每個(gè)L2高速緩存14能夠獨(dú)立于其它L2高速緩存地操作于精確模式或者非精確模式。
當(dāng)在對(duì)軟件進(jìn)行調(diào)試或性能調(diào)整時(shí),由于操作的精確模式促進(jìn)了更加可預(yù)測(cè)的工作狀態(tài)以及一致的軟件定時(shí),因此在精確模式中操作L2高速緩存14a-14n具有特別的優(yōu)點(diǎn)。另外,在該精確模式中,在兩級(jí)局部高速緩存中未命中(并且要求局部L2高速緩存14發(fā)出一事務(wù)到互連部件16上)的數(shù)據(jù)請(qǐng)求通常很少,因此這種數(shù)據(jù)請(qǐng)求在軟件中可用作一可能“故障”(bugs)的指示。而且,在支持修改干預(yù)的本發(fā)明的實(shí)施例中,該精確H-MESI協(xié)議保證由處理器10請(qǐng)求并且在局部L2高速緩存14中存儲(chǔ)為H狀態(tài)90的數(shù)據(jù)將總是通過修改干預(yù)(即,很快地)發(fā)送。在精確模式中操作L2高速緩存14的主要缺點(diǎn)是,對(duì)于探聽到的能夠修改處于H狀態(tài)90的L2高速緩存行的事務(wù),如果例如由于L2高速緩存14的寫隊(duì)列52滿(即,忙)而不能執(zhí)行該修改,則必須重試該事務(wù)。
由于最好不重試必須的操作,例如讀操作,以便執(zhí)行處于H狀態(tài)90的選擇修改,因此,通常較好的是在正常操作期間使L2高速緩存14a-14n處于非精確模式。如上所述,操作的非精確模式允許對(duì)處于H狀態(tài)90的高速緩存行的修改選擇性地執(zhí)行。在一最佳實(shí)施例中,當(dāng)L2高速緩存14處于非精確模式中時(shí),只有當(dāng)寫隊(duì)列52(或者一專用目錄寫隊(duì)列,如果有的話)少于一閾值數(shù)量的項(xiàng)時(shí)才執(zhí)行對(duì)處于H狀態(tài)90的高速緩存行的修改。因此,根據(jù)寫隊(duì)列52中的項(xiàng)數(shù)超過一預(yù)定閾值,在L2高速緩存14中的硬件或者由相關(guān)聯(lián)的處理器10執(zhí)行的軟件能夠用于設(shè)置模式位62至與該非精確模式對(duì)應(yīng)的狀態(tài)。但是,如下所述,本發(fā)明的其它實(shí)施例可以根據(jù)其它的標(biāo)準(zhǔn)來(lái)選擇地執(zhí)行對(duì)處于H狀態(tài)90的L2高速緩存的修改。
在圖2所示的數(shù)據(jù)處理系統(tǒng)8的說(shuō)明性實(shí)施例中,每個(gè)L2高速緩存14a-14n能夠通過軟件或者硬件或者二者的結(jié)合而獨(dú)立地設(shè)置為精確模式或非精確模式。例如,如果需要對(duì)L2高速緩存14a操作于其中的模式進(jìn)行軟件控制,則處理器10a能夠通過執(zhí)行一以模式寄存器60為目標(biāo)的存儲(chǔ)指令而簡(jiǎn)單地設(shè)置模式位62。另外,軟件能夠存儲(chǔ)值至CR74,使得PMC72對(duì)所關(guān)心的事件的發(fā)生,諸如在寫隊(duì)列52中插入并移去項(xiàng)、L2訪問、L2高速緩存未命中、在L2高速緩存未命中時(shí)的訪問等待時(shí)間等等計(jì)數(shù)。然后軟件能夠通過執(zhí)行加載指令訪問在所關(guān)心的PMC72中的值。根據(jù)PMC72的一個(gè)值或幾個(gè)值的組合超過軟件定義的閾值,該軟件能夠設(shè)置模式位62以選擇該精確和非精確模式中適當(dāng)?shù)囊粋€(gè)。例如,如果L2高速緩存14a操作于非精確模式并且L2高速緩存未命中的次數(shù)大于L2訪問總次數(shù)的一預(yù)定比例,則軟件能夠設(shè)置模式位62至與精確模式對(duì)應(yīng)的狀態(tài)。
類似地,性能監(jiān)視器70能夠?qū)崿F(xiàn)L2高速緩存14a-14n的操作模式的硬件控制。在一說(shuō)明性的實(shí)施例中,每個(gè)性能監(jiān)視器70包括用于根據(jù)在一個(gè)或多個(gè)PMC72中累積的一選擇事件或多個(gè)事件的組合發(fā)生的次數(shù)超過一預(yù)定閾值而產(chǎn)生一設(shè)置模式位62至特定狀態(tài)的信號(hào)的邏輯。通過性能監(jiān)視器70的缺省設(shè)置或者通過相關(guān)聯(lián)處理器10執(zhí)行的軟件能夠確定PMC 72的啟動(dòng)和所述關(guān)心的一個(gè)事件或多個(gè)事件的選擇。而在另一個(gè)實(shí)施例中,根據(jù)一選擇事件或多個(gè)事件的組合發(fā)生的次數(shù)超過一預(yù)定閾值,能夠設(shè)置性能監(jiān)視器70以產(chǎn)生一性能監(jiān)視器中斷(PMI)。該P(yáng)MI由相關(guān)聯(lián)的處理器10提供服務(wù),該關(guān)聯(lián)的處理器10執(zhí)行一改變模式位62的狀態(tài)的中斷處理程序。
如上所述,本發(fā)明提供了一種用于在多處理器數(shù)據(jù)處理系統(tǒng)中保持存貯器相關(guān)的改進(jìn)的方法和系統(tǒng)。本發(fā)明提供的改進(jìn)的存貯器相關(guān)協(xié)議允許在相關(guān)聯(lián)的處理器不發(fā)出一明確的讀或?qū)懻?qǐng)求的情況下,與一有效地址標(biāo)志相關(guān)聯(lián)的存儲(chǔ)在一高速緩存中的一無(wú)效數(shù)據(jù)項(xiàng)被自動(dòng)地修改為有效數(shù)據(jù)。這樣,因遠(yuǎn)程處理器的活動(dòng)而被無(wú)效的數(shù)據(jù)能夠在該數(shù)據(jù)被本地處理器訪問之前刷新,從而通過消除從一遠(yuǎn)程高速緩存或系統(tǒng)存貯器中檢索該數(shù)據(jù)的需求而實(shí)質(zhì)上減少了訪問等待時(shí)間。由于在不訪問存貯器或不請(qǐng)求一鎖定的情況下就能修改高速緩存行,因此也實(shí)質(zhì)上減少了對(duì)存貯器訪問的爭(zhēng)用和系統(tǒng)范圍內(nèi)的鎖定。
雖然本發(fā)明已經(jīng)參照說(shuō)明性的實(shí)施例而具體地示出和描述,但是應(yīng)該明白,在不脫離本發(fā)明的精神和范圍的前提下,本領(lǐng)域的技術(shù)人員可以在形式和細(xì)節(jié)上作出各種改變。例如,在圖3所示的存貯器相關(guān)協(xié)議的說(shuō)明性實(shí)施例中,由于I狀態(tài)86僅用于在加電時(shí)初始化目錄項(xiàng)并且決不會(huì)從另一狀態(tài)重新進(jìn)入,因此可通過刪除I狀態(tài)86而修改該實(shí)施例。如果I狀態(tài)86被刪除,則在加電時(shí)每個(gè)L2目錄項(xiàng)的相關(guān)狀態(tài)字段被初始化為H狀態(tài)90,并且每個(gè)L2目錄項(xiàng)的標(biāo)志字段初始化為一標(biāo)志值,該標(biāo)志值至少在同一同余類中是唯一的。另外,應(yīng)該明白的是,圖2的性能監(jiān)視器70能夠可替換地實(shí)現(xiàn)為耦合至互連部件16的單個(gè)系統(tǒng)范圍內(nèi)的性能監(jiān)視器,而不是在每個(gè)L2高速緩存14內(nèi)部的多個(gè)分離的性能監(jiān)視器。
權(quán)利要求
1.一種在含有多個(gè)處理器的數(shù)據(jù)處理系統(tǒng)中保持高速緩存相關(guān)的方法,每個(gè)處理器與多個(gè)高速緩存中相應(yīng)的一個(gè)相關(guān)聯(lián),所述方法的特征在于包括在所述多個(gè)高速緩存的第一高速緩存中,與一地址標(biāo)志相關(guān)聯(lián)地存儲(chǔ)第一數(shù)據(jù)項(xiàng),該地址標(biāo)志指示所述數(shù)據(jù)項(xiàng)的地址;設(shè)置所述第一高速緩存中的一相關(guān)指示符至第一狀態(tài),該第一狀態(tài)指示所述數(shù)據(jù)項(xiàng)有效;以及在所述相關(guān)指示符被設(shè)置為所述第一狀態(tài)的時(shí)候,響應(yīng)所述多個(gè)高速緩存中的另一個(gè)指示想要存儲(chǔ)至由所述地址標(biāo)志指示的所述地址,修改所述第一高速緩存中的所述相關(guān)指示符至第二狀態(tài),該第二狀態(tài)指示所述地址標(biāo)志有效而在所述第一高速緩存中的所述數(shù)據(jù)項(xiàng)無(wú)效。
2.如權(quán)利要求1的方法,其特征在于所述數(shù)據(jù)處理系統(tǒng)還包括一個(gè)連接所述多個(gè)處理器的互連部件,所述數(shù)據(jù)項(xiàng)是一個(gè)第一數(shù)據(jù)項(xiàng),而所述方法還包括步驟探聽所述互連部件以識(shí)別在所述互連部件上的與由所述地址標(biāo)志指示的所述地址相關(guān)的一數(shù)據(jù)傳送,所述數(shù)據(jù)傳送由所述多個(gè)高速緩存中的另一個(gè)啟動(dòng)并且包括一個(gè)第二數(shù)據(jù)項(xiàng);在所述相關(guān)指示符設(shè)置為所述第二狀態(tài)時(shí),響應(yīng)在所述互連部件上檢測(cè)的與由所述地址標(biāo)志指示的所述地址相關(guān)的一數(shù)據(jù)傳送,通過在所述第一高速緩存中與所述地址標(biāo)志相關(guān)聯(lián)地存儲(chǔ)所述第二數(shù)據(jù)項(xiàng)以代替所述第一數(shù)據(jù)項(xiàng);以及修改所述相關(guān)指示符至第三狀態(tài)表示所述第二數(shù)據(jù)項(xiàng)有效。
3.如權(quán)利要求2的方法,其特征在于所述修改所述相關(guān)指示符至指示所述第二數(shù)據(jù)項(xiàng)有效的第三狀態(tài)的步驟包括修改所述相關(guān)指示符至一共享狀態(tài)的步驟,該共享狀態(tài)指示所述第二數(shù)據(jù)項(xiàng)存儲(chǔ)在所述第一高速緩存和所述多個(gè)高速緩存的另一個(gè)中。
4.如權(quán)利要求1的方法,其特征在于,所述設(shè)置所述第一高速緩存中的一相關(guān)指示符至指示所述數(shù)據(jù)項(xiàng)有效的第一狀態(tài)的步驟包括設(shè)置所述第一高速緩存中的所述相關(guān)指示符至修改狀態(tài)、共享狀態(tài)和專用狀態(tài)的其中之一的步驟。
5.如權(quán)利要求1的方法,其特征在于所述數(shù)據(jù)處理系統(tǒng)還包括一個(gè)低級(jí)存儲(chǔ)器,所述第一高速緩存可從該低級(jí)存儲(chǔ)器檢索數(shù)據(jù),所述多個(gè)處理器包括與所述第一高速緩存相關(guān)的第一處理器,所述數(shù)據(jù)項(xiàng)包括一個(gè)第一數(shù)據(jù)數(shù)據(jù)項(xiàng),所述方法還包括步驟在所述相關(guān)指示符設(shè)置為所述第二狀態(tài)時(shí),響應(yīng)所述第一處理器對(duì)與由所述地址標(biāo)志指示的所述地址相關(guān)的數(shù)據(jù)的請(qǐng)求,從所述多個(gè)高速緩存的另一個(gè)中而不是從所述低級(jí)存儲(chǔ)器中獲得與所述地址有關(guān)的一個(gè)有效的第二數(shù)據(jù)項(xiàng)。
6.如權(quán)利要求1的方法,其特征在于還包括設(shè)置所述相關(guān)指示符為一個(gè)無(wú)效狀態(tài)以表示所述地址標(biāo)志和所述數(shù)據(jù)項(xiàng)均無(wú)效的步驟。
7.一種用于在含有多個(gè)處理器的數(shù)據(jù)處理系統(tǒng)中支持高速緩存相關(guān)的高速緩存,所述多個(gè)處理器中的每一個(gè)與多個(gè)高速緩存中相應(yīng)的一個(gè)相關(guān)聯(lián),所述高速緩存的特征在于包括存儲(chǔ)一個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù)存儲(chǔ)器;標(biāo)志存儲(chǔ)器,它存儲(chǔ)指示包含在所述數(shù)據(jù)存儲(chǔ)器中的所述數(shù)據(jù)項(xiàng)的地址的地址標(biāo)志;相關(guān)指示符,響應(yīng)所述數(shù)據(jù)項(xiàng)存入所述數(shù)據(jù)存儲(chǔ)器,該相關(guān)指示符被設(shè)置至表示所述數(shù)據(jù)項(xiàng)有效的第一狀態(tài),而在所述相關(guān)指示符被設(shè)置為所述第一狀態(tài)的時(shí)候,響應(yīng)該多個(gè)高速緩存中的另一個(gè)指示想要存儲(chǔ)至由所述地址標(biāo)志指示的所述地址,該相關(guān)指示符被設(shè)置至第二狀態(tài),所述相關(guān)指示符的所述第二狀態(tài)指示所述地址標(biāo)志有效而在所述數(shù)據(jù)存儲(chǔ)器中的所述數(shù)據(jù)項(xiàng)無(wú)效。
8.根據(jù)權(quán)利要求7的高速緩存,其特征在于所述數(shù)據(jù)項(xiàng)是一個(gè)第一數(shù)據(jù)項(xiàng),所述數(shù)據(jù)處理系統(tǒng)還包括一個(gè)連接所述多個(gè)處理器的互連部件,而所述高速緩存還包括探聽所述互連部件以識(shí)別在所述互連部件上的與由所述地址標(biāo)志指示的所述地址相關(guān)的一數(shù)據(jù)傳送的裝置,所述數(shù)據(jù)傳送由所述多個(gè)高速緩存中的另一個(gè)啟動(dòng)并且包括一個(gè)第二數(shù)據(jù)項(xiàng);在所述相關(guān)指示符設(shè)置為所述第二狀態(tài)時(shí),響應(yīng)在所述互連部件上的與由所述地址標(biāo)志指示的所述地址相關(guān)的一數(shù)據(jù)傳送的檢測(cè),通過在所述數(shù)據(jù)存儲(chǔ)器中與所述地址標(biāo)志相關(guān)聯(lián)地存儲(chǔ)所述第二數(shù)據(jù)項(xiàng)以代替所述第一數(shù)據(jù)項(xiàng)的裝置;以及修改所述相關(guān)指示符至第三狀態(tài)表示所述第二數(shù)據(jù)項(xiàng)有效的裝置。
9.如權(quán)利要求8的高速緩存,其特征在于所述修改所述相關(guān)指示符至指示所述第二數(shù)據(jù)項(xiàng)有效的第三狀態(tài)的裝置包括修改所述相關(guān)指示符至一共享狀態(tài)的裝置,該共享狀態(tài)指示所述第二數(shù)據(jù)項(xiàng)存儲(chǔ)在所述高速緩存和所述多個(gè)高速緩存的另一個(gè)中。
10.如權(quán)利要求7的高速緩存,其特征在于所述相關(guān)指示符的第一狀態(tài)包括修改狀態(tài)、共享狀態(tài)和專用狀態(tài)的其中之一。
11.如權(quán)利要求7的高速緩存,其特征在于所述高速緩存是一個(gè)第一高速緩存,所述多個(gè)處理器包括與所述第一高速緩存相關(guān)的第一處理器,所述數(shù)據(jù)處理系統(tǒng)還包括一個(gè)低級(jí)存儲(chǔ)器,所述第一高速緩存可從該低級(jí)存儲(chǔ)器檢索數(shù)據(jù),所述高速緩存還包括在所述相關(guān)指示符設(shè)置為所述第二狀態(tài)時(shí),響應(yīng)所述第一處理器對(duì)與由所述地址標(biāo)志指示的所述地址相關(guān)的數(shù)據(jù)的請(qǐng)求,從所述多個(gè)高速緩存的另一個(gè)中而不是從所述低級(jí)存儲(chǔ)器中獲得與所述地址有關(guān)的有效數(shù)據(jù)的裝置。
12.如權(quán)利要求7的高速緩存,其特征在于所述相關(guān)指示符還包括一個(gè)無(wú)效狀態(tài)以表示所述地址標(biāo)志和所述數(shù)據(jù)項(xiàng)均無(wú)效。
13.一種數(shù)據(jù)處理系統(tǒng),包括一互連部件;耦合至所述互連部件的多個(gè)處理器;多個(gè)高速緩存,其中每個(gè)高速緩存與所述多個(gè)處理器中相應(yīng)的一個(gè)相關(guān)聯(lián),其中,在所述多個(gè)高速緩存中的第一高速緩存包括存儲(chǔ)一個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù)存儲(chǔ)器;標(biāo)志存儲(chǔ)器,它存儲(chǔ)指示包含在所述數(shù)據(jù)存儲(chǔ)器中的所述數(shù)據(jù)項(xiàng)的地址的地址標(biāo)志;相關(guān)指示符,響應(yīng)所述數(shù)據(jù)項(xiàng)存入所述數(shù)據(jù)存儲(chǔ)器,該相關(guān)指示符被設(shè)置至表示所述數(shù)據(jù)項(xiàng)有效的第一狀態(tài),在所述相關(guān)指示符被設(shè)置為所述第一狀態(tài)的時(shí)候,響應(yīng)該多個(gè)高速緩存中的另一個(gè)指示想要存儲(chǔ)至由所述地址標(biāo)志指示的所述地址,該相關(guān)指示符被設(shè)置至第二狀態(tài),所述相關(guān)指示符的所述第二狀態(tài)指示所述地址標(biāo)志有效而在所述數(shù)據(jù)存儲(chǔ)器中的所述數(shù)據(jù)項(xiàng)無(wú)效。
14.根據(jù)權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其特征在于所述數(shù)據(jù)項(xiàng)是一個(gè)第一數(shù)據(jù)項(xiàng),所述第一高速緩存還包括探聽所述互連部件以識(shí)別在所述互連部件上的與由所述地址標(biāo)志指示的所述地址相關(guān)的一數(shù)據(jù)傳送的裝置,所述數(shù)據(jù)傳送由所述多個(gè)高速緩存中的另一個(gè)啟動(dòng)并且包括一個(gè)第二數(shù)據(jù)項(xiàng);在所述相關(guān)指示符設(shè)置為所述第二狀態(tài)時(shí),響應(yīng)在所述互連部件上的與由所述地址標(biāo)志指示的所述地址相關(guān)的一數(shù)據(jù)傳送的檢測(cè),通過在所述數(shù)據(jù)存儲(chǔ)器中與所述地址標(biāo)志相關(guān)聯(lián)地存儲(chǔ)所述第二數(shù)據(jù)項(xiàng)以代替所述第一數(shù)據(jù)項(xiàng)的裝置;以及修改所述相關(guān)指示符至第三狀態(tài)表示所述第二數(shù)據(jù)項(xiàng)有效的裝置。
15.如權(quán)利要求14的數(shù)據(jù)處理系統(tǒng),其特征在于所述修改所述相關(guān)指示符至指示所述第二數(shù)據(jù)項(xiàng)有效的第三狀態(tài)的裝置包括修改所述相關(guān)指示符至一共享狀態(tài)的裝置,該共享狀態(tài)指示所述第二數(shù)據(jù)項(xiàng)存儲(chǔ)在所述第一高速緩存和所述多個(gè)高速緩存的另一個(gè)中。
16.如權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其特征在于所述相關(guān)指示符的第一狀態(tài)包括修改狀態(tài)、共享狀態(tài)和專用狀態(tài)的其中之一。
17.如權(quán)利要求13的高速緩存,其特征在于所述多個(gè)處理器包括與所述第一高速緩存相關(guān)的第一處理器,所述數(shù)據(jù)處理系統(tǒng)還包括一個(gè)低級(jí)存儲(chǔ)器,所述第一高速緩存可從該低級(jí)存儲(chǔ)器檢索數(shù)據(jù);在所述第一高速緩存的所述相關(guān)指示符設(shè)置為所述第二狀態(tài)時(shí),響應(yīng)所述第一處理器對(duì)與由所述地址標(biāo)志指示的所述地址相關(guān)的數(shù)據(jù)的請(qǐng)求,從所述多個(gè)高速緩存的另一個(gè)中而不是從所述低級(jí)存儲(chǔ)器中獲得與所述地址有關(guān)的有效數(shù)據(jù)的裝置。
18.如權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其特征在于所述相關(guān)指示符還包括一個(gè)無(wú)效狀態(tài)以表示所述地址標(biāo)志和所述數(shù)據(jù)項(xiàng)均無(wú)效。
全文摘要
描述了維護(hù)數(shù)據(jù)處理系統(tǒng)中的高速緩存相關(guān)性的高速緩存和方法。該系統(tǒng)包括分別與多個(gè)高速緩存中的一個(gè)相關(guān)的多個(gè)處理器。一個(gè)數(shù)據(jù)項(xiàng)存儲(chǔ)在第一高速緩存中,同時(shí)還相關(guān)存儲(chǔ)指示該數(shù)據(jù)項(xiàng)地址的一個(gè)地址標(biāo)志,相關(guān)指示符設(shè)置在第一狀態(tài),表示該數(shù)據(jù)項(xiàng)有效。如果另一個(gè)高速緩存要在該地址標(biāo)志指示的地址存儲(chǔ)數(shù)據(jù),則將相關(guān)指示符更新的第二狀態(tài),表示該地址標(biāo)志有效,第一高速緩存中的數(shù)據(jù)項(xiàng)無(wú)效。在此狀態(tài),若檢測(cè)到與該地址標(biāo)志相關(guān)的數(shù)據(jù)傳送,則用第二數(shù)據(jù)項(xiàng)代替第一數(shù)據(jù)項(xiàng),同時(shí)將相關(guān)指示符更新為第三狀態(tài)。
文檔編號(hào)G06F12/08GK1230721SQ99101308
公開日1999年10月6日 申請(qǐng)日期1999年1月15日 優(yōu)先權(quán)日1998年2月17日
發(fā)明者R·K·阿里米利, J·S·多森, J·D·劉易斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司