專利名稱::使高速緩存線暫時無效和重新有效的方法和數(shù)據(jù)處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明通常涉及改進(jìn)型數(shù)據(jù)處理系統(tǒng),具體涉及用于通過檢測和跟蹤暫時安靜存儲(temporallysilentstore)來縮減存儲器通信量的計算機實現(xiàn)的方法、數(shù)據(jù)處理系統(tǒng)和計算機程序產(chǎn)品。
背景技術(shù):
:隨著處理要求的不斷增多,目前,許多數(shù)據(jù)處理系統(tǒng)包含有多個處理器。利用多個處理器,可將處理任務(wù)在這些處理器之間進(jìn)行分配。此外,這些處理器還可訪問數(shù)據(jù)處理系統(tǒng)內(nèi)其他處理器訪問的信息。在多數(shù)據(jù)處理系統(tǒng)中,對于每個處理器都能訪問更新的值非常重要。有時,需要知道每個處理器何時可對所選數(shù)據(jù)進(jìn)行訪問。一些指令,例如,刷新或無效指令,意味著其他處理器將會獲得存儲器中信息的更新的值。刷新指令是強迫將處在中央處理器(CPU)處高速緩存中的存儲器的所有變化刷新到主存儲器中的指令。無效指令是使其他CPU可具有且針對同一存儲器的任何高速緩存線無效的指令。例如,當(dāng)?shù)貙Φ谝籆PU將數(shù)據(jù)寫入到高速緩存線時,可將無效信號發(fā)送到系統(tǒng)中包含同一存儲器的高速緩存線的其他CPU的結(jié)構(gòu)(fabric),無效信號使具有同一高速緩存線的所有其他CPU刷新高速緩存線,以去除在它們的高速緩存中的過期值。在執(zhí)行無效指令之后,其他CPU將從存儲器載入更新的值,而并非從高速緩存載入過期值。還可使用同步指令確保已完成所有存儲器存儲操作。如KevinM.Lepak和MikkoH.Lipasti在TemporallySilentStores(ACMDigitalLibrary,2002年10月,pp.1國12,此后將其稱為"Lepak")中所述,可釆用經(jīng)常出現(xiàn)的一貫安靜(traditionallysilent)和暫時安靜(temporallysilent)存儲來縮減存儲器通信量并提高性能。一貫安靜存儲,或簡單安靜(simplesilent)存儲是不改變已在目標(biāo)存儲器地址處出現(xiàn)的值的存儲指令。暫時安靜存儲是,暫時改變在目標(biāo)存儲器地址處的值,然后又將其改變回其原始值的存儲指令。一貫安靜存儲和暫時安靜存儲可頻繁出現(xiàn)。研究表明,在過去表現(xiàn)出暫時安靜存儲特性的存儲器地址在未來往往具有同樣特性(即,自旋鎖總是在0與l之間改變存儲值)
發(fā)明內(nèi)容示意性實施例給出了通過檢測和跟蹤暫時安靜存儲來縮減存儲器通信量的計算機實現(xiàn)的方法、數(shù)據(jù)處理系統(tǒng)和計算機程序產(chǎn)品。當(dāng)檢測到針對高速緩存的存儲器存儲(包括地址和數(shù)據(jù)值)時,確定在高速緩存中的高速緩存線是否包含與存儲器存儲中的地址相同的地址。然后,確定先前是否將針對高速緩存線的臨時(tentative)高速緩存線無效信號發(fā)送到網(wǎng)絡(luò)中其他數(shù)據(jù)處理系統(tǒng),以臨時地使高速緩存線無效。如果存儲器存儲是暫時安靜存儲,則將高速緩存線重新有效發(fā)送到其他數(shù)據(jù)處理系統(tǒng),以便清除針對高速緩存線的臨時無效信號。在所附權(quán)利要求中給出了認(rèn)為是本發(fā)明的新穎特征的特性。不過,結(jié)合附圖,參照后面關(guān)于示意性實施例的詳細(xì)描述,將更好地理解本發(fā)明本身,以及優(yōu)選實施方式,及其更多目的和優(yōu)點,其中圖l表示可實現(xiàn)示意性實施例的分布式數(shù)據(jù)處理系統(tǒng)的圖示;圖2表示可實現(xiàn)示意性實施例的數(shù)據(jù)處理系統(tǒng)的框圖;圖3表示根據(jù)示意性實施例的示例性安靜存儲高速緩存的視圖;圖4表示根據(jù)示意性實施例用于檢測和跟蹤存儲器存儲的存儲器存儲處理的流程圖;以及圖5表示根據(jù)示意性實施例用于跟蹤存儲器存儲的存儲器讀取處理的流程圖。具體實施方式下面,參照附圖,具體參照圖1-2,給出其中可實現(xiàn)示意性實施例的數(shù)據(jù)處理環(huán)境的示例性視圖。應(yīng)該理解,圖l-2僅僅是示例性的,并不意在斷言和表示對可實現(xiàn)不同實施例的環(huán)境進(jìn)行任何限定??梢詫λ经h(huán)境進(jìn)行多種修改。下面參照附圖,圖l表示可實現(xiàn)示意性實施例的數(shù)據(jù)處理系統(tǒng)的圖示。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是可實現(xiàn)實施例的計算機網(wǎng)絡(luò)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100包含網(wǎng)絡(luò)102,網(wǎng)絡(luò)102是用于提供在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100內(nèi)連接在一起的各種設(shè)備和計算機之間的通信鏈路。網(wǎng)絡(luò)102可包括連接,例如,有線、無線通信鏈路或光纜。在所示示例中,服務(wù)器104和服務(wù)器106以及存儲單元108—道與網(wǎng)絡(luò)102相連接。此外,客戶機110,112和114也與網(wǎng)絡(luò)102相連。這些客戶機110,112和114可為例如個人計算機或網(wǎng)絡(luò)計算機。在所示示例中,服務(wù)器104向客戶機110,112和114提供數(shù)據(jù),例如,引導(dǎo)文件、操作系統(tǒng)映象和應(yīng)用程序。在該示例中,客戶機110,112和114是服務(wù)器104的客戶機。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100可包括更多服務(wù)器、客戶機以及其他設(shè)備(未示出)。在所示示例中,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是以網(wǎng)絡(luò)102表示彼此使世界集合體的因特網(wǎng):在因特網(wǎng)的中心,是主節(jié)點^主機(由成千上萬個商業(yè)、政府、教育以及其他計算機系統(tǒng))之間用于路由數(shù)據(jù)和消息的高速數(shù)據(jù)通信鏈路骨干。當(dāng)然,還可將網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100實現(xiàn)為多個不同類型的網(wǎng)絡(luò),例如,內(nèi)部網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。圖l意在作為示例,而并非對不同實施例進(jìn)行體系結(jié)構(gòu)限制。下面參照圖2,圖2表示可實現(xiàn)示意性實施例的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)200是計算機的示例,例如,圖l所示的服務(wù)器104或客戶機110,在其中可存儲用于實現(xiàn)示意性實施例的處理的計算機可用代碼或指令。在所示示例中,數(shù)據(jù)處理系統(tǒng)200采用包括有北樹northbridge)及存儲器控制器集線器(MCH)202、南橋及輸入/輸出(I/O)控制器集線器(ICH)204的集線器體系結(jié)構(gòu)。處理器206、主存儲器208和圖形處理器210與北橋及存儲器控制器集線器202相連。圖形處理器210可例如通過加速圖形端口(AGP)與MCH相連。在所示示例中,局域網(wǎng)(LAN)適配器212與南橋及I/0控制器集線器204相連,音頻適配器216、鍵盤及鼠標(biāo)適配器220、調(diào)制解調(diào)器222、只讀存儲器(ROM)224、通用串行總線(USB)端口及其他通信端口232,以及PCI/PCIe設(shè)備234通過總線238與南橋及I/O控制器集線器204相連接,硬盤驅(qū)動器(HDD)226和CD-ROM驅(qū)動器230通過總線240與南橋及I/O控制器集線器204相連。PCI/PCIe"^殳備可包括,例如,以太網(wǎng)適配器、內(nèi)插卡、和用于筆記本電腦的PC卡。PCI使用卡總線控制器,而PCIe則不這樣。ROM224可為,例如,快閃二進(jìn)制輸入/輸出系統(tǒng)(BIOS,flashbinaryinput/outputsystem)。硬盤驅(qū)動器226和CD-ROM驅(qū)動器可使用,例如,集成驅(qū)動器電子設(shè)備(IDE)或串行高級技術(shù)附連(SATA)接口。超級1/0(SIO)設(shè)備236可與南橋及I/O控制器集線器204連接。操作系統(tǒng)運行在處理器206上,用于對圖2所示數(shù)據(jù)處理系統(tǒng)200內(nèi)的各個單元進(jìn)行協(xié)調(diào)和提供控制。操作系統(tǒng)可為可商業(yè)購買的操作系統(tǒng),例如,MicrosoftWindowsXP(Microsoft和Windows是美國及其他國家等的微軟公司的商標(biāo))。面向?qū)ο缶幊滔到y(tǒng),例如,Java編程系統(tǒng),可結(jié)合操作系統(tǒng)一起運行,并從在數(shù)據(jù)處理系統(tǒng)200上執(zhí)行的Java程序或應(yīng)用程序提供對操作系統(tǒng)的調(diào)用(Java以及所有基于Java的商標(biāo)都是美國及其他國家等的SunMicrosystems的商標(biāo))。操作系統(tǒng)的指令、面向?qū)ο缶幊滔到y(tǒng)和應(yīng)用程序或程序處在存儲設(shè)備(例如,硬盤驅(qū)動器226)上,可將其栽入到主存儲器208中,以便由處理器206執(zhí)行。通過使用計算機實現(xiàn)的指令,處理器206可實現(xiàn)示意性實施例的處理,這些指令可處在存儲器(例如,主存儲器208、只讀存儲器224)中,或處在一個或多個外圍設(shè)備中。如圖l-2所示硬件可根據(jù)實現(xiàn)方式而有所變化。除圖1-2所示硬件外,還可使用其他內(nèi)部硬件或外圍設(shè)備,例如,閃存、等效非易失性存儲器或光盤驅(qū)動器等,或使用這些設(shè)備代替圖l-2所示硬件。另外,還可將示意性實施例的處理應(yīng)用到多處理器數(shù)據(jù)處理系統(tǒng)。在某些示意性實施例中,數(shù)據(jù)處理系統(tǒng)200可為個人數(shù)字助理(PDA),其通常設(shè)置有閃存,用于提供非易失性存儲器,以便存儲操作系統(tǒng)文件和/或用戶生成的數(shù)據(jù)??偩€系統(tǒng)可包括一個或多個總線,例如,系統(tǒng)總線、1/0總線和PCI總線。當(dāng)然,總線系統(tǒng)可使用任何類型的通信結(jié)構(gòu)(fabric)或體系結(jié)構(gòu)實現(xiàn),這些通信結(jié)構(gòu)或體系結(jié)構(gòu)提供在與該結(jié)構(gòu)或體系結(jié)構(gòu)相連的不同單元或設(shè)備之間的數(shù)據(jù)傳輸。通信單元可包括用于發(fā)送和接收數(shù)據(jù)的一個或多個設(shè)備,例如,調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器。存儲器可為,例如,主存儲器208或出現(xiàn)在北橋及存儲器控制器集線器202中的高速緩存。處理單元可包括一個或多個處理器或CPU。圖l-2所示示例和上述示例并不意在表示體系結(jié)構(gòu)限制。除釆用PDA方式外,例如,數(shù)據(jù)處理系統(tǒng)200還可為平板型計算機(tabletcomputer)、膝上型計算機或電話設(shè)備。在當(dāng)前技術(shù)中,當(dāng)將數(shù)據(jù)寫入到高速緩存線時,可將高速緩存線無效信號發(fā)送到系統(tǒng)結(jié)構(gòu)(fabric)上。無效信號用于使其他CPU可具有的同一存儲器的任何高速緩存線無效。無效信號使具有同一高速緩存線的所有其他CPU刷新高速緩存線,以去除在高速緩存中的過期值。從而,當(dāng)CPU訪問該存儲器位置時,CPU將使用來自存儲器的更新的值對高速緩存線進(jìn)行重新載入。示意性實施例提供了通過使用"臨時高速緩存線無效"信號對于暫時安靜存儲和一貫安靜存儲進(jìn)行高速緩存線刷新的解決方案。當(dāng)將數(shù)據(jù)寫入到具體CPU中的高速緩存線時,由該CPU生成臨時高速緩存線無效信號。臨時高速緩存線無效信號可用于通知系統(tǒng)中其他CPU:當(dāng)它們讀取、寫入或刷新受影響的高速存儲線時,CPU可能需要執(zhí)行完全高速緩存線無效,以便使在它們各自高速緩存中的過期值無效,并且,可能需要從發(fā)送臨時無效信號的原始CPU獲取新值。執(zhí)行臨時高速緩存線無效的優(yōu)點在于,如果原始CPU執(zhí)行暫時安靜存儲,則臨時無效使得可避免可能不必要的完全高速緩存線無效,并從存儲器獲取高速緩存線。如先前所述,暫時安靜存儲是,暫時改變目標(biāo)存儲器地址處的值然后又將其改變回其原始值的存儲指令。如果原始CPU不執(zhí)行暫時性安靜存儲(即,將原始值寫回高速緩存線),則CPU將會把高速緩存線重新有效信號發(fā)送到結(jié)構(gòu),以清除先前發(fā)送的臨時高速緩存線無效信號。與完全高速緩存線無效情形相比,后跟有高速緩存線重新有效信號的臨時高速緩存線無效信號所導(dǎo)致的通信量會最小。此外,臨時高速緩存線無效和高速緩存線重新有效信號可在CPU總線結(jié)構(gòu)上出現(xiàn),這與慢得多的存儲器總線結(jié)構(gòu)形成對照。下面,參看圖3,顯示出根據(jù)示意性實施例的示例性安靜存儲高速緩存的視圖。安靜存儲高速緩存300是高速緩沖存儲器,并可在如圖2所示數(shù)據(jù)處理系統(tǒng)200中實現(xiàn)。對安靜存儲高速緩存300的存儲器存儲進(jìn)行檢測和跟蹤,以便確定何時發(fā)送臨時高速緩存線無效信號將是有益的。此外,對表現(xiàn)出暫時安靜存儲的存儲器位置進(jìn)行跟蹤,以便可在暫時安靜存儲完成時發(fā)送高速緩存線重新有效信號。在該示意性示例中,安靜存儲高速緩存300是分成兩個區(qū)的單個高速緩存,這兩個區(qū)是先入先出(FIFO)區(qū)302,和安靜存儲區(qū)304。在安靜存儲高速緩存300中的每個存儲器存儲項都包括最近最少使用(LRU)值306、地址308和舊地址310。LRU值306是反映需要存儲器存儲是如何頻繁的值。首先從高速緩存丟棄最不經(jīng)常使用的存儲器存儲。地址308是安靜存儲高速緩存300中出現(xiàn)存儲器存儲的地址。舊值310是當(dāng)前存儲在地址308處的存儲器值。當(dāng)安靜存儲高速緩存300首次遇到存儲器存儲時,將包括地址308和舊地址310的存儲器存儲放置到FIFO區(qū)302中。如果在安靜存儲高速緩存中不存在具有相同地址308的其他項,則高速緩存"首次遇到"存儲器存儲。當(dāng)安靜存儲高速緩存300將存儲器存儲識別為安靜存儲時,可將存儲器存儲從FIFO區(qū)302移到安靜存儲區(qū)304。當(dāng)在相同地址308處的第二存儲器存儲具有與存儲在FIFO區(qū)302中的舊值310相匹配的值時,將存儲器存儲識別為安靜存儲。一旦對于地址308檢測到安靜存儲,則將該地址(具有舊值310和LRU值306)設(shè)置在安靜存儲區(qū)304中。當(dāng)將包括地址308和舊值310的存儲器存儲放置在FIFO區(qū)302中時,通過向系統(tǒng)中其他CPU發(fā)送臨時高速緩存線無效信號,CPU臨時地將在系統(tǒng)中其他CPU上的地址308無效。臨時高速緩存線無效信號通知其他CPU:如果它們需要訪問高速緩存線,它們則應(yīng)執(zhí)行完全高速緩存線無效,以便使它們各自高速緩存中的過期值無效,并從發(fā)送臨時高速緩存線無效信號的原始CPU獲取更新的值??紤]在一CPU(CPUA)上地址308(已對其進(jìn)行了修改)的示例。如果另一CPU(CPUB)需要使用數(shù)據(jù)(讀取或?qū)懭?,基于臨時高速緩存線無效信號,CPUB將執(zhí)行完全高速緩存線無效,以便使它的高速緩存中的過期值無效。CPUB還從CPUA獲取更新的值。然而,臨時高速緩存線無效信號也允許CPUA在不使CPUB不必要地執(zhí)行完全高速緩存線無效的條件下暫時適應(yīng)安靜存儲。再次考慮以上對CPUA上的地址進(jìn)行了修改的示例。如果在CPUA的地址308處的存儲器存儲是暫時安靜存儲(數(shù)據(jù)變回到其舊值),則CPUA可向其他CPU發(fā)送高速緩存線重新有效信號。高速緩存線有效信號通知其他CPU:它們對于地址308所具有的值仍有效。從而,優(yōu)于完全無效的使用臨時無效的優(yōu)點在于在暫時安靜存儲之后發(fā)送重新有效信號的能力。通過允許CPUA將地址308重新有效,其他處理器無需執(zhí)行完全無效,它們也無需重新獲取已存在于其高速緩存中的數(shù)據(jù)。從而,使存儲器通信量和時延得以縮減。FIFO區(qū)302和安靜存儲區(qū)304通過高水位標(biāo)志(highwatermark)312隔離,并通過不同方式維護(hù)。當(dāng)將包括地址/值對的存儲器存儲移動到安靜存儲區(qū)304中時,高水位標(biāo)記312向下移動,以適應(yīng)增加的安靜存儲。相反,當(dāng)從安靜存儲區(qū)304移除地址/值對時,高水位標(biāo)記向上移動。從而,高水位標(biāo)記312提供動態(tài)分界線,其提供了用于通過按照先入先出方法(FIFO區(qū)302)使輸入存儲器存儲操作進(jìn)行循環(huán)來對它們進(jìn)行跟蹤和用來識別導(dǎo)致完全高速緩存線無效的事件的區(qū)域。以此方式,高水位標(biāo)記312提供了僅使用安靜存儲高速緩存300中與跟蹤安靜存儲區(qū)304中已知安靜存儲所需的同樣多的空間。在FIFO區(qū)302中,可使用LRU回收標(biāo)記314設(shè)置安靜存儲區(qū)304的尺寸的限制。例如,如果將多個安靜存儲添加到安靜存儲區(qū)304,使得高水位標(biāo)記312向下移動到LRU回收標(biāo)記314,可運行LRU算法以釋放安靜存儲區(qū)304中的項。限制安靜存儲區(qū)304尺寸的這種能力提供了安靜存儲高速緩存300的可調(diào)節(jié)特性,例如,將LRU回收標(biāo)記314設(shè)置地如何低,以及當(dāng)運行LRU算法時執(zhí)行多少清除。圖4表示根據(jù)示意性實施例用于檢測和跟蹤存儲器存儲的存儲器存儲處理的流程圖。具體地,如圖4所示處理允許確定應(yīng)在何時將與具體存儲器地址相關(guān)聯(lián)的數(shù)據(jù)的臨時無效發(fā)送到其他CPU。當(dāng)對存儲器的存儲發(fā)生時,流程開始(步驟402)。存儲器存儲發(fā)生在安靜存儲高速緩存(例如,如圖3所示安靜存儲高速緩存)中。存儲器存儲包括地址和數(shù)據(jù)值。確定在存儲器存儲中的地址是否已出現(xiàn)在安靜存儲高速緩存的FIFO區(qū)中(步驟404)。如果該地址已出現(xiàn)在FIFO區(qū)中(步驟404的確定結(jié)果為"是"),則確定在存儲器存儲中的值是否與FIFO區(qū)中該地址的舊值相匹配(步驟406)。進(jìn)行這樣的確定,以識別存儲器存儲是否為暫時安靜存儲。如果在存儲器存儲中的新值與FIFO區(qū)中的舊值相匹配(步驟406的確定結(jié)果為"是,,),則將存儲器存儲(地址和舊值)從FIFO區(qū)移動到安靜存儲區(qū)(步驟408)。然后,CPU向系統(tǒng)中所有其他CPU發(fā)送高速緩存線重新有效信號(步驟410)。該重新有效信號通知其他CPU:由于將存儲器存儲識別為暫時安靜存儲,則尚未改變其各自高速緩存中包含的數(shù)據(jù)。返回到步驟406,如果存儲器存儲中的新值與FIFO區(qū)中的舊值不匹配(步驟406的確定結(jié)果為"否"),則CPU以存儲器存儲中的新值更新舊值(步驟412)。然后,CPU更新高速緩存項的LRU信息(步驟414),此后,流程結(jié)束。返回到步驟404,如果在FIFO區(qū)中不存在該地址(步驟404的確定結(jié)果為"否,,),則確定在安靜存儲區(qū)中是否存在該地址(步驟416)。如果在安靜存儲區(qū)中存在該地址(步驟416的確定結(jié)果為"是,,),則確定存儲器存儲中的值是否與安靜存儲區(qū)中該地址的舊值相匹配(步驟418)。如果在存儲器存儲中的新值與安靜存儲區(qū)中的舊值相匹配(步驟418的確定結(jié)果為"是"),則CPU向系統(tǒng)中所有其他CPU發(fā)送高速緩存線重新有效信號(步驟410),此后,流程結(jié)束。返回到步驟418,如果存儲器存儲中的新值與安靜存儲區(qū)中的舊值不匹配(步驟418的確定結(jié)果為"否"),則CPU利用存儲器存儲中的新值更新舊值(步驟412)。然后,CPU更新高速緩存項的LRU信息(步驟414),此后,流程結(jié)束。返回到步驟416,如果在安靜存儲區(qū)中不存在該地址(步驟416的確定結(jié)果為"否"),則將存儲器存儲(地址和舊值)放置在FIFO區(qū)中(步驟420)。然后,CPU向系統(tǒng)中其他CPU發(fā)送臨時高速緩存線無效信號(步驟422),此后,流程結(jié)束。臨時高速緩存線無效信號通知其他CPU:如果它們訪問在受影響的地址處的數(shù)據(jù),則CPU應(yīng)使其高速緩存完全無效,并從發(fā)送臨時無效信號的原始CPU獲取新值。圖5表示根據(jù)示意性實施例用于跟蹤存儲器存儲的存儲器讀取處理的流程圖。具體而言,圖5所示流程允許確定應(yīng)在何時執(zhí)行完全高速緩存無效。當(dāng)從存儲器進(jìn)行讀取時流程開始(步驟502)。確定是否將存儲器讀取地址標(biāo)記為臨時無效(步驟504).如果沒有臨時地將該地址無效(步驟504的確定結(jié)果為"否"),則使用存在于高速緩存中的值執(zhí)行存儲器讀取(步驟510),此后,流程結(jié)束。返回到步驟504,如果臨時地^^該地址無效(步驟504的確定結(jié)果為"是"),則確定執(zhí)行存儲器讀取的CPU與發(fā)送臨時無效的CPU是否為同一CPU(步驟506)。如果CPU與發(fā)送臨時無效的CPU是同一CPU(步驟506的確定結(jié)果為"是"),則使用存在于高速緩存中的值執(zhí)行存儲器讀取(步驟510),此后,流程結(jié)束。返回到步驟506,如果CPU與發(fā)出臨時無效的CPU不相同(步驟506的確定結(jié)果為"否"),則CPU使地址完全無效(步驟508)。然后,CPU通過從發(fā)出臨時無效的CPU獲取新值來執(zhí)行存儲器讀取(步驟510),此后,流程結(jié)束。本發(fā)明可采用全硬件實施例、全軟件實施例或包含硬件和軟件單元的實施例的形式。在優(yōu)選實施例中,以軟件方式實現(xiàn)本發(fā)明,其中包括但不限于固件、常駐軟件、微代碼等。此外,本發(fā)明還可采用可從計算機可用或計算機可讀介質(zhì)訪問的計算機程序產(chǎn)品的形式,其提供由計算機或任何指令執(zhí)行系統(tǒng)使用或結(jié)合使用的程序代碼。出于該描述的目的,計算機可用或計算機可讀介質(zhì)可為能夠包含、存儲、傳遞、傳播或傳輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或結(jié)合使用的程序的任何有形裝置。該介質(zhì)可為電、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)(或裝置,設(shè)備)或傳播介質(zhì)。計算機可讀介質(zhì)的示例包括半導(dǎo)體或固態(tài)存儲器、磁帶、可移動計算機磁盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、硬磁盤以及光盤。光盤的現(xiàn)有示例包括只讀光盤存儲器(CD-ROM)、可讀寫光盤(CD-R/W)和DVD。適于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括與存儲器單元直接或通過系統(tǒng)總線間接相連的至少一個處理器。存儲器單元可包括在實際執(zhí)行程序代碼期間使用的局部存儲器、大容量存儲設(shè)備和為至少某些程序代碼提供臨時存儲以減少在執(zhí)行期間必須從大容量存儲設(shè)備檢索代碼的次數(shù)的高速緩存。輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、顯示器、指點設(shè)備等)可直接或通過中間1/0控制器與系統(tǒng)相連。網(wǎng)絡(luò)適配器也可與系統(tǒng)相連,以便使數(shù)據(jù)處理系統(tǒng)通過中間專用或共用網(wǎng)絡(luò)與其他數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機或存儲設(shè)備相連。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡僅僅是當(dāng)前可用的網(wǎng)絡(luò)適配器的一些類型。以上出于說明和描述的目的給出了本發(fā)明,但該描述并不意在窮舉出所披露的本發(fā)明,不應(yīng)將其視為對本發(fā)明的限制。本領(lǐng)域普通技術(shù)人員顯然能夠想到多種修改和變型。所選和描述的實施例意在最好地理解本發(fā)明原理、實際應(yīng)用,并能夠使本領(lǐng)域其他普通技術(shù)人員理解可通過根據(jù)所考慮具體應(yīng)用進(jìn)行各種修改的多種實施例實現(xiàn)本發(fā)明。權(quán)利要求1.一種用于臨時地使高速緩存線無效和重新有效的計算機實現(xiàn)的方法,所述計算機實現(xiàn)的方法包括響應(yīng)于檢測到對于網(wǎng)絡(luò)中數(shù)據(jù)處理系統(tǒng)中高速緩存的存儲器存儲,其中,存儲器存儲包括地址和數(shù)據(jù)值,確定在高速緩存中的緩存線包含與存儲器存儲中的地址相同的地址;確定先前將針對高速緩存線的臨時高速緩存線無效信號發(fā)送到網(wǎng)絡(luò)中其他數(shù)據(jù)處理系統(tǒng),以臨時地使高速緩存線無效;以及響應(yīng)于確定存儲器存儲是暫時安靜存儲,將高速緩存線重新有效發(fā)送到其他數(shù)據(jù)處理系統(tǒng),以清除針對高速緩存線的臨時無效信號。2.根據(jù)權(quán)利要求l的計算機實現(xiàn)的方法,還包括響應(yīng)于確定存儲器存儲不是暫時安靜存儲,用存儲器存儲的數(shù)據(jù)值代替高速緩存線的數(shù)據(jù)值。3.根據(jù)權(quán)利要求1的計算機實現(xiàn)的方法,其中,高速緩存線重新有效信號通知其他數(shù)據(jù)處理系統(tǒng)高速緩存線的數(shù)據(jù)值沒有改變,防止其他數(shù)據(jù)處理系統(tǒng)不必要地執(zhí)行完全高速緩存線無效,并防止其他數(shù)據(jù)處理系統(tǒng)重新獲取已存在于其各自高速緩存中的數(shù)據(jù)。4.根據(jù)權(quán)利要求1的計算機實現(xiàn)的方法,其中,高速緩存包括先入先出區(qū)和安靜存儲區(qū)。5.根據(jù)權(quán)利要求4的計算機實現(xiàn)的方法,其中,高速緩存線處在先入先出區(qū)中。6.根據(jù)權(quán)利要求4的計算機實現(xiàn)的方法,還包括響應(yīng)于確定存儲器存儲是暫時安靜存儲,將高速緩存線從先入先出區(qū)移動到安靜存儲區(qū)。7.根據(jù)權(quán)利要求4的計算機實現(xiàn)的方法,其中,先入先出區(qū)和安靜存儲區(qū)通過高水位標(biāo)記隔離,且其中,高水位標(biāo)記動態(tài)地向上和向下移動,以反映在安靜存儲區(qū)中高速緩存線的添加或移除,以使安靜存儲區(qū)能夠僅占用高速緩存中跟蹤安靜存儲所需那么多的空間。8.根據(jù)權(quán)利要求4的計算機實現(xiàn)的方法,其中,在先入先出區(qū)內(nèi)的最近最少使用的回收標(biāo)記設(shè)置安靜存儲區(qū)大小的限制。9.根據(jù)權(quán)利要求l的計算機實現(xiàn)的方法,還包括檢測在數(shù)據(jù)處理系統(tǒng)中高速緩存線的存儲器讀?。豁憫?yīng)于確定臨時地將高速緩存線的地址無效,確定執(zhí)行存儲器讀取的數(shù)據(jù)處理系統(tǒng)與發(fā)出臨時高速緩存線無效信號的數(shù)據(jù)處理系統(tǒng)是相同的;如果所述數(shù)據(jù)處理系統(tǒng)與發(fā)出臨時高速緩存線無效信號的數(shù)據(jù)處理系統(tǒng)相同,則使用高速緩存線中的數(shù)據(jù)值執(zhí)行存儲器讀取;以及如果所述數(shù)據(jù)處理系統(tǒng)與發(fā)出臨時無效的數(shù)據(jù)處理系統(tǒng)不相同,則執(zhí)行所述地址的完全高速緩存線無效,并從發(fā)出臨時高速緩存線無效信號的數(shù)據(jù)處理系統(tǒng)的高速緩存獲取更新的值。10.根據(jù)權(quán)利要求9的計算機實現(xiàn)的方法,還包括如果沒有臨時地使高速緩存線的地址無效,則使用高速緩存線中的數(shù)據(jù)值執(zhí)行存儲器讀取。11.根據(jù)權(quán)利要求l的計算機實現(xiàn)的方法,其中,臨時高速緩存線無效和高速緩存線重新有效信號出現(xiàn)在數(shù)據(jù)處理系統(tǒng)的總線結(jié)構(gòu)上。12.—種用于檢測和跟蹤表現(xiàn)出安靜存儲的存儲器地址的計算機實現(xiàn)的方法,所述計算機實現(xiàn)的方法包括對網(wǎng)絡(luò)中數(shù)據(jù)處理系統(tǒng)中針對高速緩存的存儲器存儲進(jìn)行檢測,其中,存儲器存儲包括地址和數(shù)據(jù)值;確定高速緩存中高速緩存線包含與存儲器存儲中的地址相同的地址;以及如果先前將針對高速緩存線的臨時高速緩存線無效信號發(fā)送到網(wǎng)絡(luò)中的其他數(shù)據(jù)處理系統(tǒng)以便臨時地使高速緩存線無效,且存儲器存儲的數(shù)據(jù)值與高速緩存線的數(shù)據(jù)值相匹配,則將存儲器存儲識別為暫時安靜存儲。13.—種用于臨時地使高速緩存線無效和重新有效的數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括總線;與總線相連的存儲設(shè)備,其中,所述存儲設(shè)備包含有計算機可用代碼;與總線相連的至少一個受管理設(shè)備;與總線相連的通信單元;以及與總線相連的處理單元,其中,所述處理單元執(zhí)行所述計算機可用代碼,以便響應(yīng)于檢測到針對網(wǎng)絡(luò)中數(shù)據(jù)處理系統(tǒng)中高速緩存的存儲器存儲,其中,存儲器存儲包括地址和數(shù)據(jù)值,確定在高速緩存中的緩存線包含與存儲器存儲中的地址相同的地址;確定先前將用于高速緩存線的臨時高速緩存線無效信號發(fā)送到網(wǎng)絡(luò)中其他數(shù)據(jù)處理系統(tǒng),以臨時地使高速緩存線無效;以及,響應(yīng)于確定存儲器存儲是暫時安靜存儲,將高速緩存線重新有效信號發(fā)送到其他數(shù)據(jù)處理系統(tǒng),以清除針對高速緩存線的臨時無效信號。全文摘要本發(fā)明提供了一種通過檢測和跟蹤暫時安靜存儲來縮減存儲器通信量的計算機實現(xiàn)的方法、數(shù)據(jù)處理系統(tǒng)和計算機程序產(chǎn)品。當(dāng)檢測到對高速緩存的存儲器存儲(包括地址和數(shù)據(jù)值)時,確定在高速緩存中的高速緩存線是否包含與存儲器存儲中的地址相同的地址。然后,確定先前是否將用于高速緩存線的臨時高速緩存線無效信號發(fā)送到網(wǎng)絡(luò)中其他數(shù)據(jù)處理系統(tǒng),以臨時地使高速緩存線無效。如果存儲器存儲是暫時安靜存儲,則將高速緩存線重新有效發(fā)送到其他數(shù)據(jù)處理系統(tǒng),以便清除針對高速緩存線的臨時無效信號。文檔編號G06F12/08GK101131674SQ20071012864公開日2008年2月27日申請日期2007年7月9日優(yōu)先權(quán)日2006年8月24日發(fā)明者喬爾·H.·舒普,納?!し教刂Z特,邁克爾·T.·斯特羅薩克爾,雅各布·L.·莫伊拉寧申請人:國際商業(yè)機器公司