減少來(lái)自偵聽(tīng)過(guò)濾器的后無(wú)效事務(wù)的制作方法
【專利摘要】本發(fā)明涉及減少來(lái)自偵聽(tīng)過(guò)濾器的后無(wú)效事務(wù),在一個(gè)實(shí)施例中,本發(fā)明包括一種方法:從高速緩存代理接收未決容量驅(qū)逐的指示,確定來(lái)自高速緩存代理的無(wú)效寫回事務(wù)對(duì)于與未決容量驅(qū)逐相關(guān)聯(lián)的高速緩存線是否是可能的,以及如果為是,則將與所述高速緩存線相關(guān)聯(lián)的偵聽(tīng)過(guò)濾器條目從偵聽(tīng)過(guò)濾器移到分級(jí)區(qū)。描述并要求保護(hù)其他實(shí)施例。
【專利說(shuō)明】減少來(lái)自偵聽(tīng)過(guò)濾器的后無(wú)效事務(wù)
[0001]本申請(qǐng)是申請(qǐng)日為2009年5月27日、申請(qǐng)?zhí)?00910145575.1、名稱為“減少來(lái)自
偵聽(tīng)過(guò)濾器的后無(wú)效事務(wù)”的申請(qǐng)的分案申請(qǐng)。
【背景技術(shù)】
[0002]在具有多個(gè)處理器和多個(gè)高速緩存的多處理器系統(tǒng)中,每個(gè)高速緩存可存儲(chǔ)存儲(chǔ)器中所存儲(chǔ)的數(shù)據(jù)片的副本。當(dāng)一個(gè)以上的高速緩存包含同一數(shù)據(jù)片的副本時(shí)出現(xiàn)了問(wèn)題。已經(jīng)開(kāi)發(fā)了多種技術(shù)來(lái)確保多個(gè)高速緩存上的數(shù)據(jù)一致性。例如,當(dāng)一個(gè)高速緩存中的數(shù)據(jù)被修改時(shí),該數(shù)據(jù)的其它副本被標(biāo)記為無(wú)效,以使得它們將不會(huì)被使用。
[0003]為了幫助維持高速緩存一致性,很多系統(tǒng)包括諸如偵聽(tīng)過(guò)濾器之類的目錄以幫助確定在這種多個(gè)高速緩存的高速緩存線中數(shù)據(jù)的存在和狀態(tài)??砂l(fā)生總線代理監(jiān)視例如讀/寫操作的存儲(chǔ)器事務(wù)的偵聽(tīng)操作。代理可將存儲(chǔ)器事務(wù)中涉及的高速緩存線的狀態(tài)記錄在偵聽(tīng)過(guò)濾器中。高速緩存線的狀態(tài)可指示該線是僅具有在主存儲(chǔ)器外的一個(gè)有效副本,具有由多個(gè)高速緩存共享的多個(gè)有效副本,還是不具有在主存儲(chǔ)器外的副本(即它在所有高速緩存中都已經(jīng)無(wú)效)。偵聽(tīng)過(guò)濾器中的數(shù)據(jù)條目通常部分地根據(jù)主存儲(chǔ)器中其地址的一部分索引。
[0004]偵聽(tīng)過(guò)濾器有時(shí)會(huì)缺乏用于記錄新存儲(chǔ)器事務(wù)的線的狀態(tài)的空間,且可能需要從偵聽(tīng)過(guò)濾器驅(qū)逐條目以容納新的事務(wù)。通常當(dāng)條目被驅(qū)逐出偵聽(tīng)過(guò)濾器時(shí),后無(wú)效(back-1nvalidation)消息被發(fā)送到可能保存與所驅(qū)逐條目相關(guān)聯(lián)的線的有效副本的每個(gè)處理器高速緩存。很多高速緩存未命中是由于偵聽(tīng)過(guò)濾器發(fā)起即將使用的高速緩存線的后無(wú)效。
[0005]某些偵聽(tīng)過(guò)濾器被稱為包含式偵聽(tīng)過(guò)濾器(ISF),因?yàn)閭陕?tīng)過(guò)濾器中的信息用偵聽(tīng)過(guò)濾器覆蓋的高速緩存的高速緩存線來(lái)包含式地維持。在包含式高速緩存分層結(jié)構(gòu)中,高速緩存存儲(chǔ)器之一(即,較低層的高速緩存存儲(chǔ)器)包括另一個(gè)高速緩存存儲(chǔ)器(較高層高速緩存存儲(chǔ)器)中所包含的數(shù)據(jù)的子集。高速緩存分層結(jié)構(gòu)可提高處理器性能,因?yàn)樗鼈兪沟镁哂邢鄬?duì)較快存取速度的較小高速緩存包含頻繁使用的數(shù)據(jù)。而存取速度比較小高速緩存慢的較大高速緩存存儲(chǔ)較不頻繁使用的數(shù)據(jù)(以及較低層高速緩存中的數(shù)據(jù)的副本)。
[0006]偵聽(tīng)過(guò)濾器同它們覆蓋的高速緩存一樣分配并驅(qū)逐條目。然而,因?yàn)榫哂蠭SF的包含式高速緩存分層結(jié)構(gòu)存儲(chǔ)某些共用數(shù)據(jù),一個(gè)高速緩存層中的高速緩存線或偵聽(tīng)過(guò)濾器的驅(qū)逐可導(dǎo)致高速緩存分層結(jié)構(gòu)的另一個(gè)層中的相應(yīng)高速緩存線驅(qū)逐以維持高速緩存一致性。ISF必需確保其地址被驅(qū)逐出偵聽(tīng)過(guò)濾器的高速緩存線從所有覆蓋的高速緩存中去除。一般而言,這涉及將后無(wú)效請(qǐng)求從偵聽(tīng)過(guò)濾器發(fā)送到所覆蓋的高速緩存。當(dāng)偵聽(tīng)過(guò)濾器發(fā)送很多這種請(qǐng)求時(shí)它消耗互連帶寬,這可增加有效存儲(chǔ)器等待時(shí)間,并可能去除有用的聞速緩存條目。
[0007]附圖簡(jiǎn)沭
[0008]圖1是多處理器系統(tǒng)的實(shí)施例的框圖。
[0009]圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的一致性控制器的框圖。[0010]圖3是根據(jù)本發(fā)明的實(shí)施例示出高速緩存代理、偵聽(tīng)過(guò)濾器和分級(jí)區(qū)(stagingarea)之間的交互的框圖。
[0011]圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的方法的流程圖。
[0012]詳細(xì)描沭
[0013]在各實(shí)施例中,偵聽(tīng)過(guò)濾器可被配置成使得它將數(shù)量減少的后無(wú)效消息發(fā)送到與其率禹合的聞速緩存。由此,從聞速緩存驅(qū)逐較少的條目,從而提聞聞速緩存命中率。減少后無(wú)效消息的數(shù)量還將減少系統(tǒng)互連通信量,從而改進(jìn)存儲(chǔ)器等待時(shí)間和其它系統(tǒng)效率因數(shù)。更具體地,在各實(shí)現(xiàn)中,如果相應(yīng)的高速緩存有可能將立刻發(fā)出給定高速緩存線的其自身的無(wú)效消息,則將從偵聽(tīng)過(guò)濾器驅(qū)逐條目的偵聽(tīng)過(guò)濾器(其中條目與該給定高速緩存線相關(guān)聯(lián))可避免發(fā)送后無(wú)效消息。由此,可避免從偵聽(tīng)過(guò)濾器發(fā)送后無(wú)效消息的開(kāi)銷。
[0014]取決于高速緩存大小和應(yīng)用,被驅(qū)逐出偵聽(tīng)過(guò)濾器的高速緩存線的相當(dāng)大的部分將被修改(也稱為“臟”)。當(dāng)高速緩存決定驅(qū)逐臟線時(shí),它一般發(fā)出“顯式寫回”(EWB)事務(wù)。在某些實(shí)現(xiàn)中,這種事務(wù)被稱為無(wú)效顯式寫回(或BWL.1NVLD)事務(wù),其將兩個(gè)語(yǔ)義組合到單個(gè)事務(wù)中。更具體地,該事務(wù)報(bào)告所指高速緩存線的當(dāng)前值,并提供指示高速緩存線已經(jīng)從高速緩存分層結(jié)構(gòu)的所有層中完全去除的指示。各實(shí)施例利用該第二屬性,以使得覆蓋該高速緩存的偵聽(tīng)過(guò)濾器可靜默去除其相關(guān)聯(lián)的條目。即,偵聽(tīng)過(guò)濾器可將相應(yīng)條目驅(qū)逐出偵聽(tīng)過(guò)濾器而不發(fā)出后無(wú)效請(qǐng)求。
[0015]因此,當(dāng)ISF可確定所覆蓋的高速緩存有可能對(duì)已經(jīng)或即將被驅(qū)逐的ISF條目發(fā)出無(wú)效顯式寫回事務(wù)時(shí),它可延遲發(fā)出無(wú)效請(qǐng)求。然后,當(dāng)高速緩存對(duì)所指高速緩存線發(fā)出該事務(wù)時(shí),偵聽(tīng)過(guò)濾器不需要發(fā)出該無(wú)效請(qǐng)求。
[0016]因此,實(shí)施例可提供第一機(jī)制,其向ISF提供可能對(duì)該偵聽(tīng)過(guò)濾器中已驅(qū)逐(或即將驅(qū)逐)的條目發(fā)出無(wú)效顯式寫回的指示,以及第二機(jī)制,其利用該信息制止在給定時(shí)間段內(nèi)發(fā)出無(wú)效請(qǐng)求。如果在該時(shí)間段中接收到相關(guān)聯(lián)的無(wú)效顯式寫回事務(wù),則偵聽(tīng)過(guò)濾器可避免發(fā)送該請(qǐng)求。
[0017]在一個(gè)實(shí)施例中,第一機(jī)制可就讀取事務(wù)利用提示,其指示特定高速緩存中的哪個(gè)高速緩存線位置正被驅(qū)逐從而為讀取結(jié)果讓出空間。提示本身可包括用以報(bào)告該驅(qū)逐方式被修改的在本文中稱為“EWB提示”的信息。該機(jī)制的替換形式可利用偵聽(tīng)過(guò)濾器本身中的信息。例如,在接收驅(qū)逐提示后,偵聽(tīng)過(guò)濾器可保持指示高速緩存獲得將被驅(qū)逐的線的獨(dú)占所有權(quán)的指示。請(qǐng)求線的獨(dú)占所有權(quán)與修改該線高度相關(guān)(通常,對(duì)于Intel ? 64和Intel ?架構(gòu)(ΙΑ) -32指令集架構(gòu)(ISA)應(yīng)用遠(yuǎn)超過(guò)90%的概率)。因此,該指示可導(dǎo)致偵聽(tīng)過(guò)濾器延遲發(fā)出無(wú)效消息。
[0018]在一個(gè)實(shí)施例中,第二機(jī)制可被實(shí)現(xiàn)為緩沖器,諸如無(wú)效請(qǐng)求的虛擬或物理隊(duì)列或池。即,偵聽(tīng)過(guò)濾器可被分成主偵聽(tīng)過(guò)濾器部分和輔偵聽(tīng)過(guò)濾器部分,在主偵聽(tīng)過(guò)濾器部分中存儲(chǔ)所有的偵聽(tīng)過(guò)濾器條目,輔偵聽(tīng)過(guò)濾器部分可被稱為分級(jí)池或無(wú)效池,其中存儲(chǔ)要被驅(qū)逐出偵聽(tīng)過(guò)濾器的條目。因此在驅(qū)逐前,且在其中阻止來(lái)自偵聽(tīng)過(guò)濾器的無(wú)效請(qǐng)求進(jìn)行傳輸?shù)闹辽僖粋€(gè)時(shí)間段(例如,在某些實(shí)施例中可以是約100納秒數(shù)量級(jí)的預(yù)定時(shí)間段)內(nèi),被驅(qū)逐出主偵聽(tīng)過(guò)濾器部分的條目可被存儲(chǔ)在該分級(jí)池中。因此傳入的無(wú)效顯式寫回事務(wù)可用于引起對(duì)包括等待無(wú)效請(qǐng)求的未決條目集合的該池的搜索并刪除任何匹配項(xiàng)。該虛擬或物理結(jié)構(gòu)中的未決無(wú)效可在某一時(shí)間段之后發(fā)出,在池或隊(duì)列群體達(dá)到某一水平時(shí)以某種時(shí)間順序?yàn)榛A(chǔ)發(fā)出,和/或在有足夠的系統(tǒng)資源可用時(shí)發(fā)出。
[0019]參照?qǐng)D1,示出的是多處理器系統(tǒng)10的實(shí)施例的框圖。如圖1所示,系統(tǒng)10可具有與芯片組13互連的多個(gè)處理節(jié)點(diǎn)17。每個(gè)處理節(jié)點(diǎn)17可包括一個(gè)或多個(gè)處理器11(示出每個(gè)處理節(jié)點(diǎn)有兩個(gè)處理器,其中每個(gè)處理器可以是處理器核或多核處理器)和高速緩存12。每個(gè)高速緩存12可被“主節(jié)點(diǎn)”(該高速緩存所處的處理節(jié)點(diǎn))的處理器11本地訪問(wèn),且可被“遠(yuǎn)程節(jié)點(diǎn)”(主節(jié)點(diǎn)以外的處理節(jié)點(diǎn))的處理器11遠(yuǎn)程訪問(wèn)。高速緩存12被稱為關(guān)于主節(jié)點(diǎn)的處理器11的“本地高速緩存”,且可由諸如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)之類的相對(duì)較小且快速的存儲(chǔ)器構(gòu)成。處理節(jié)點(diǎn)17可經(jīng)由一個(gè)或多個(gè)前端總線(FSB)14(僅示出兩個(gè)FSB)或諸如點(diǎn)對(duì)點(diǎn)互連之類的其它類型的互連耦合到芯片組13。可在單個(gè)芯片上實(shí)現(xiàn)一個(gè)或多個(gè)處理節(jié)點(diǎn)17。系統(tǒng)10由于其所具有的高集合處理能力而可用作服務(wù)器系統(tǒng),但本發(fā)明的范圍不限于此方面。
[0020]芯片組13可包括一致性控制器132,其可包括根據(jù)本發(fā)明實(shí)施例的偵聽(tīng)過(guò)濾器,用于處理從FSB14接收的請(qǐng)求并在高速緩存12之間維持?jǐn)?shù)據(jù)一致性。以下參照?qǐng)D2詳細(xì)討論一致性控制器132的功能。芯片組13可包括用于向處理節(jié)點(diǎn)17和系統(tǒng)10的其它組件提供接口以訪問(wèn)存儲(chǔ)器15的存儲(chǔ)單元的存儲(chǔ)器控制器134。存儲(chǔ)器15可以是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)器件或適用于服務(wù)器或一般應(yīng)用的其它易失性或非易失性存儲(chǔ)器器件。
[0021]芯片組13還可包括用以向處理節(jié)點(diǎn)11和系統(tǒng)10的其它組件提供接口以訪問(wèn)一個(gè)或多個(gè)I/o設(shè)備16的I/O控制器136。I/O設(shè)備16可包括工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)設(shè)備、外圍組件互連(PCI)設(shè)備、PCI快速設(shè)備、通用串行總線(USB)設(shè)備、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)設(shè)備或其它適用于服務(wù)器或一般應(yīng)用的標(biāo)準(zhǔn)或?qū)S蠭/O設(shè)備。在某些實(shí)施例中,芯片組13可被實(shí)現(xiàn)為單個(gè)芯片。在某些實(shí)施例中,芯片組13可被實(shí)現(xiàn)為兩個(gè)或更多個(gè)芯片。
[0022]處理器11可在其相應(yīng)的本地高速緩存12中存儲(chǔ)存儲(chǔ)器線以便于快速存取。高速緩存12可存儲(chǔ)數(shù)據(jù)、指令或兩者的組合。對(duì)于每個(gè)高速緩存線,高速緩存12可存儲(chǔ)將高速緩存線關(guān)聯(lián)或映射到存儲(chǔ)器15中的對(duì)應(yīng)線的標(biāo)簽(例如,存儲(chǔ)器地址的一部分)。高速緩存12還可存儲(chǔ)并更新每個(gè)高速緩存線的一致性狀態(tài)。例如,高速緩存12可支持MESI —致性狀態(tài),其中高速緩存線可具有修改(M)狀態(tài)、獨(dú)占(E)狀態(tài)、共享(S)狀態(tài)或無(wú)效(I)狀態(tài)。
[0023]參照?qǐng)D2,在一個(gè)實(shí)施例中,一致性控制器132可包括偵聽(tīng)過(guò)濾器24以提供高速緩存線的一致性信息。如圖2所示,一致性控制器132的一個(gè)實(shí)施例可具有若干FSB端口(FSB_端口 _221和FSB_端口 _122)、一致性引擎23、偵聽(tīng)過(guò)濾器24和分級(jí)池28。
[0024]偵聽(tīng)過(guò)濾器24可包括一個(gè)或多個(gè)存儲(chǔ)陣列,諸如全相聯(lián)陣列、組相聯(lián)陣列或包括用于存儲(chǔ)一致性信息的路或線的直接映射陣列。在一個(gè)實(shí)施例中,偵聽(tīng)過(guò)濾器24包括N路組相聯(lián)陣列,其中每個(gè)組包括用于存儲(chǔ)N個(gè)高速緩存線的一致性信息的N個(gè)槽(或路)225(僅示出一個(gè))??赏ㄟ^(guò)例如利用存儲(chǔ)器地址的特定位將高速緩存線映射到這些組之一。每個(gè)路225可存儲(chǔ)線的信息。信息可包括地址標(biāo)簽、MESI —致性狀態(tài)信息和存在向量。存在向量可指示哪個(gè)FSB14連接到可能具有高速緩存線的高速緩存。
[0025]在一個(gè)實(shí)施例中,偵聽(tīng)過(guò)濾器24可僅存儲(chǔ)與E/Μ狀態(tài)中的線相關(guān)聯(lián)的那些條目??蓪⑦@些偵聽(tīng)過(guò)濾器條目稱為E/Μ條目。即,如果任何高速緩存包含或可能包含主存儲(chǔ)器以外的線的獨(dú)占副本,則偵聽(tīng)過(guò)濾器24可存儲(chǔ)該線的E/Μ條目。僅存儲(chǔ)E/Μ條目可減少存儲(chǔ)在偵聽(tīng)過(guò)濾器24中的條目的總數(shù),且可有效地?cái)U(kuò)大偵聽(tīng)過(guò)濾器的大小。作為折衷,僅存儲(chǔ)E/Μ條目可導(dǎo)致由偵聽(tīng)過(guò)濾器24生成的偵聽(tīng)的數(shù)目增加。然而,尤其是對(duì)于讀取密集應(yīng)用,一般改進(jìn)了總體的系統(tǒng)性能。
[0026]如圖2進(jìn)一步示出的,偵聽(tīng)過(guò)濾器24可與分級(jí)池28相關(guān)聯(lián)。盡管示為具有圖2實(shí)施例中的這種結(jié)構(gòu),但本發(fā)明的范圍不限于這個(gè)方面且在各實(shí)現(xiàn)中分級(jí)池28可以是偵聽(tīng)過(guò)濾器24的一部分。在被驅(qū)逐出偵聽(tīng)過(guò)濾器24的條目被實(shí)際驅(qū)逐(且由此從分級(jí)池28中去除)且相應(yīng)的無(wú)效消息被從一致性引擎23發(fā)送到一個(gè)或多個(gè)處理器節(jié)點(diǎn)之前,分級(jí)池28可存儲(chǔ)這些條目。
[0027]在一個(gè)實(shí)施例中,當(dāng)對(duì)存儲(chǔ)器事務(wù)的請(qǐng)求到達(dá)一致性控制器132時(shí),一致性引擎23可確定將該請(qǐng)求轉(zhuǎn)發(fā)到哪里。存儲(chǔ)器事務(wù)指的是需要對(duì)存儲(chǔ)器或高速緩存進(jìn)行訪問(wèn)的事務(wù)。一致性引擎23可查找偵聽(tīng)過(guò)濾器24以確定偵聽(tīng)過(guò)濾器是否具有所請(qǐng)求線的信息。如果偵聽(tīng)過(guò)濾器24具有該信息,則一致性引擎23基于線的存在向量將該請(qǐng)求轉(zhuǎn)發(fā)到與具有線的當(dāng)前副本的高速緩存相連接的FSB端口(21或22)。如果事務(wù)可能改變所請(qǐng)求線的狀態(tài),則一致性引擎23利用更新單元25更新偵聽(tīng)過(guò)濾器24中的信息以反映變化。如果偵聽(tīng)過(guò)濾器24不具有線的信息,則一致性引擎23也可利用更新單元25將條目增加到偵聽(tīng)過(guò)濾器以記錄所請(qǐng)求線的一致性信息。
[0028]如果在將新的條目插入全偵聽(tīng)過(guò)濾器的情況下或在從高速緩存接收到與偵聽(tīng)過(guò)濾器24中的給定條目相關(guān)聯(lián)的無(wú)效事務(wù)后,一致性引擎23的無(wú)效單元26可用于使偵聽(tīng)過(guò)濾器中的條目無(wú)效。在執(zhí)行這種無(wú)效時(shí),所選的條目將被驅(qū)逐出偵聽(tīng)過(guò)濾器24。然而,如果有可能從高速緩存接收到對(duì)所驅(qū)逐條目的無(wú)效顯式寫回事務(wù),則無(wú)效單元26可使偵聽(tīng)過(guò)濾器24將條目傳送給分級(jí)池28,因此避免后無(wú)效消息的傳輸。
[0029]現(xiàn)在參照?qǐng)D3,其是示出根據(jù)本發(fā)明實(shí)施例的高速緩存代理、偵聽(tīng)過(guò)濾器和分級(jí)區(qū)之間的交互的框圖。具體地,圖3示出高速緩存代理17,其可對(duì)應(yīng)于圖2的處理器節(jié)點(diǎn)之一。高速緩存代理17耦合到偵聽(tīng)過(guò)濾器24,偵聽(tīng)過(guò)濾器24進(jìn)而耦合到分級(jí)池28。為了便于說(shuō)明,還示出分級(jí)池28耦合到高速緩存代理17。然而,應(yīng)理解在各實(shí)現(xiàn)中,偵聽(tīng)過(guò)濾器24和分級(jí)池28可以是芯片組或其它接口組件的一部分,芯片組或其它接口組件進(jìn)而可耦合到相應(yīng)的高速緩存代理。
[0030]在操作期間,與高速緩存代理17相關(guān)聯(lián)的高速緩存存儲(chǔ)器——諸如2層(L2)高速緩存——可確定它處于容量水平并由此存儲(chǔ)附加信息,它需要驅(qū)逐一個(gè)或多個(gè)條目。為了這樣做,高速緩存代理17可向包括偵聽(tīng)過(guò)濾器24的接口發(fā)送容量驅(qū)逐事務(wù)。因?yàn)閭陕?tīng)過(guò)濾器24是包含式偵聽(tīng)過(guò)濾器,所以在接收到這種容量驅(qū)逐事務(wù)后,偵聽(tīng)過(guò)濾器24可使要被驅(qū)逐出高速緩存代理17的高速緩存線的關(guān)聯(lián)條目被驅(qū)逐出偵聽(tīng)過(guò)濾器本身。如圖3所示,如果偵聽(tīng)過(guò)濾器24確定無(wú)效顯式寫回事務(wù)可能從該高速緩存線的高速緩存代理17發(fā)出,則取代直接將條目驅(qū)逐出偵聽(tīng)過(guò)濾器24并使無(wú)效請(qǐng)求從偵聽(tīng)過(guò)濾器24發(fā)送到具有該線的獨(dú)占所有權(quán)的高速緩存代理,在這種情況下偵聽(tīng)過(guò)濾器24可使未決條目移到分級(jí)池28。SP,分級(jí)池28可包括用于等待被驅(qū)逐出偵聽(tīng)過(guò)濾器24的各個(gè)條目的存儲(chǔ)。如果在該條目被置入分級(jí)池28之后高速緩存代理17在給定的時(shí)間段過(guò)期之前發(fā)出無(wú)效驅(qū)逐事務(wù),則在不傳輸后無(wú)效請(qǐng)求的情況下可從分級(jí)池28驅(qū)逐該條目。
[0031]現(xiàn)在參照?qǐng)D4,示出的是根據(jù)本發(fā)明一個(gè)實(shí)施例的方法的流程圖。根據(jù)本發(fā)明的實(shí)施例方法300可用于延遲傳輸來(lái)自偵聽(tīng)過(guò)濾器的無(wú)效請(qǐng)求。如圖4所示,方法300可通過(guò)從高速緩存代理接收到未決容量驅(qū)逐的指示開(kāi)始(框310)。接下來(lái),可由偵聽(tīng)過(guò)濾器確定來(lái)自高速緩存代理的無(wú)效寫回事務(wù)是否可能(菱形320)。盡管不限于該方面,但如上所討論的,該確定可基于來(lái)自高速緩存代理的一個(gè)或多個(gè)提示和/或基于偵聽(tīng)過(guò)濾器中已經(jīng)存在的信息而作出。如果這一事務(wù)不可能,則控制傳遞到框330,其中基于偵聽(tīng)過(guò)濾器中的信息,相關(guān)聯(lián)偵聽(tīng)過(guò)濾器條目可被驅(qū)逐且無(wú)效事務(wù)可從偵聽(tīng)過(guò)濾器發(fā)送到一個(gè)或多個(gè)高速緩存代理。
[0032]然而,如以上所討論的,這種無(wú)效事務(wù)的傳輸可影響系統(tǒng)互連帶寬。因此,在各實(shí)施例中,如果確定來(lái)自高速緩存代理的無(wú)效寫回事務(wù)是可能的,則控制相反從菱形320傳遞到框340。此處,相關(guān)聯(lián)的偵聽(tīng)過(guò)濾器條目可被移到諸如分級(jí)或無(wú)效池之類的分級(jí)區(qū)。然后,它可確定從條目被移到分級(jí)區(qū)開(kāi)始的預(yù)定時(shí)間長(zhǎng)度內(nèi)是否從高速緩存代理接收到無(wú)效寫回事務(wù)(菱形350)。即,該分級(jí)池可對(duì)應(yīng)于待發(fā)送的無(wú)效事務(wù)列表,除非由于給定時(shí)間段內(nèi)接收到傳入的無(wú)效寫回事務(wù)而刪除了條目。由此,當(dāng)接收到這一無(wú)效寫回事務(wù)時(shí),避免了來(lái)自偵聽(tīng)過(guò)濾器的無(wú)效消息的傳輸。
[0033]如果在該時(shí)間段內(nèi)接收到了無(wú)效寫回事務(wù),則可不發(fā)送無(wú)效事務(wù)就驅(qū)逐偵聽(tīng)過(guò)濾器條目(框360)。然而,如果在該預(yù)定時(shí)間段內(nèi)未從高速緩存代理接收到事務(wù),則如上所述控制相反從菱形350傳遞到框330。盡管用圖4實(shí)施例中的這一特殊實(shí)現(xiàn)來(lái)示出,但是本發(fā)明的范圍在這方面不受限制。
[0034]因此實(shí)施例可減少包含式偵聽(tīng)過(guò)濾器所使用的系統(tǒng)互連帶寬,這可減少有效存儲(chǔ)器等待時(shí)間并提高系統(tǒng)性能。此外,通過(guò)至少部分地基于系統(tǒng)資源可用性調(diào)制無(wú)效通信量,可減少系統(tǒng)性能易變性。
[0035]各實(shí)施例可被實(shí)現(xiàn)為代碼并且可被存儲(chǔ)在其上存儲(chǔ)有指令的存儲(chǔ)介質(zhì)上,其中這些指令可用于編程系統(tǒng)以執(zhí)行這些指令。存儲(chǔ)介質(zhì)可包括但不限于任何類型的磁盤,包括軟盤、光盤、壓縮盤只讀存儲(chǔ)器(⑶-ROM)、可重寫壓縮盤(⑶-RW)以及磁光盤,半導(dǎo)體器件,比如只讀存儲(chǔ)器(ROM)、諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)之類的隨機(jī)存取存儲(chǔ)器(RAM)、可擦除可編程只讀存儲(chǔ)器(EPR0M)、閃存、電可擦除可編程只讀存儲(chǔ)器(EEPR0M),磁卡或光卡,或適于存儲(chǔ)電子指令的任何其它類型的介質(zhì)。
[0036]盡管已關(guān)于有限數(shù)量的實(shí)施例描述了本發(fā)明,本領(lǐng)域中的技術(shù)人員將從中認(rèn)識(shí)到許多修改和變型。所附權(quán)利要求書旨在涵蓋落入本發(fā)明的真實(shí)精神和范圍內(nèi)的所有這些修改和變型。
【權(quán)利要求】
1.一種方法,包括: 從高速緩存代理接收未決容量驅(qū)逐的指示; 確定來(lái)自所述高速緩存代理的無(wú)效寫回事務(wù)對(duì)于與所述未決容量驅(qū)逐相關(guān)聯(lián)的高速緩存線是否是可能的;以及 如果所述無(wú)效寫回事務(wù)是可能的,則將與所述高速緩存線相關(guān)聯(lián)的偵聽(tīng)過(guò)濾器條目從偵聽(tīng)過(guò)濾器移到分級(jí)區(qū)。
2.如權(quán)利要求1所述的方法,其特征在于,還包括如果無(wú)效寫回事務(wù)不可能,則基于所述偵聽(tīng)過(guò)濾器中的信息,驅(qū)逐所述偵聽(tīng)過(guò)濾器條目并將無(wú)效事務(wù)從所述偵聽(tīng)過(guò)濾器發(fā)送到一個(gè)或多個(gè)高速緩存代理。
3.一種裝置,包括: 偵聽(tīng)過(guò)濾器,用于存儲(chǔ)各自與高速緩存存儲(chǔ)器的高速緩存線相關(guān)聯(lián)的條目,其中所述偵聽(tīng)過(guò)濾器用多個(gè)高速緩存存儲(chǔ)器包含;以及 與所述偵聽(tīng)過(guò)濾器耦合的一致性單元,其用于控制所述偵聽(tīng)過(guò)濾器,其中如果高速緩存代理可能要發(fā)送對(duì)與所驅(qū)逐的偵聽(tīng)過(guò)濾器條目相對(duì)應(yīng)的高速緩存線的無(wú)效事務(wù),則所述一致性單元阻止對(duì)要被驅(qū)逐出所述偵聽(tīng)過(guò)濾器的偵聽(tīng)過(guò)濾器條目的后無(wú)效事務(wù)的傳輸。
4.一種系統(tǒng),包括: 包括至少一個(gè)核和至少一個(gè)高速緩存存儲(chǔ)器的第一處理器; 包括至少一個(gè)核和至少一個(gè)高速緩存存儲(chǔ)器的第二處理器; 耦合到所述第一和第二處理器的芯片組,所述芯片組包括:偵聽(tīng)過(guò)濾器,用于存儲(chǔ)各自與所述高速緩存存儲(chǔ)器之一的高速緩存線相關(guān)聯(lián)的條目;與所述偵聽(tīng)過(guò)濾器耦合的一致性單元,其在所述第一或第二處理器可能要發(fā)送對(duì)與所驅(qū)逐的偵聽(tīng)過(guò)濾器條目相對(duì)應(yīng)的高速緩存線的無(wú)效事務(wù)時(shí),阻止對(duì)要被驅(qū)逐出所述偵聽(tīng)過(guò)濾器的偵聽(tīng)過(guò)濾器條目的后無(wú)效事務(wù)的傳輸;以及耦合到所述偵聽(tīng)過(guò)濾器的存儲(chǔ)區(qū),用于在從所述一致性單元發(fā)送后無(wú)效事務(wù)之前存儲(chǔ)被驅(qū)逐出所述偵聽(tīng)過(guò)濾器的偵聽(tīng)過(guò)濾器條目;以及 耦合到所述芯片組的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。
【文檔編號(hào)】G06F12/08GK103714015SQ201310739178
【公開(kāi)日】2014年4月9日 申請(qǐng)日期:2009年5月27日 優(yōu)先權(quán)日:2008年5月30日
【發(fā)明者】T·庫(kù)爾茨, K·程, J·D·吉爾伯特, J·曼德?tīng)柌既R特 申請(qǐng)人:英特爾公司