專利名稱:用于相干性濾波的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及相干性濾波,更具體地說,涉及用于相干性濾波的系統(tǒng)和方法。
背景技術(shù):
存在多種方法來實(shí)現(xiàn)多處理器系統(tǒng),包括例如傳統(tǒng)的對(duì)稱多處理器(SMP)設(shè)計(jì)和高速緩存相干不一致存儲(chǔ)訪問(ccNUMA)設(shè)計(jì)。ccNUMA系統(tǒng)通常能擴(kuò)展到較高處理器計(jì)數(shù),因?yàn)閏cNUMA系統(tǒng)不由單一共享資源所限制。在ccNUMA系統(tǒng)中,處理器可直接訪問處于系統(tǒng)中任何位置的全部存儲(chǔ)器。然而,在ccNUMA和其它系統(tǒng)中,性能特性和可縮放性往往隨著分配存儲(chǔ)器的位置而變化。這是因?yàn)橛幸环N增加的與使用全局內(nèi)存對(duì)使用局部?jī)?nèi)存相關(guān)的性能成本。增加的成本在大的基于窺探的相干性系統(tǒng)中特別明顯,因?yàn)榇笙到y(tǒng)中與窺探目關(guān)的開銷可能使互連結(jié)構(gòu)過載并降低性能。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)實(shí)施例可包括一種包含相干性濾波器的系統(tǒng),該濾波器提供根據(jù)數(shù)據(jù)的標(biāo)識(shí)符在相關(guān)地址空間中為數(shù)據(jù)識(shí)別相干性域的信息。窺探引擎被配置成窺探根據(jù)所述信息和標(biāo)識(shí)符識(shí)別的相干性域中的數(shù)據(jù)。
本發(fā)明的另一個(gè)實(shí)施例可包括一種多處理器系統(tǒng)。多處理器系統(tǒng)包括與位于多處理器系統(tǒng)中的多個(gè)存儲(chǔ)器訪問裝置相關(guān)聯(lián)的高速緩存,高速緩存定義至少一部分相關(guān)聯(lián)的地址空間。第一互連將多個(gè)存儲(chǔ)器訪問裝置中的第一組可通信地在局部相互耦合。第二互連將多個(gè)存儲(chǔ)器訪問裝置中的第一組可通信地耦合到至少多個(gè)存儲(chǔ)器訪問裝置中的第二組。濾波器系統(tǒng)用來根據(jù)與數(shù)據(jù)塊相關(guān)的標(biāo)識(shí)符識(shí)別至少兩個(gè)相干性域中的一個(gè),所述至少兩個(gè)相干性域定義由濾波器系統(tǒng)支持的相關(guān)地址空間。根據(jù)濾波器系統(tǒng)為數(shù)據(jù)塊識(shí)別了至少兩個(gè)相干性域中哪一個(gè),有選擇地經(jīng)由第一和第二互連中的至少一個(gè)發(fā)送用于數(shù)據(jù)塊的至少一個(gè)窺探。
本發(fā)明的另一個(gè)實(shí)施例可包括一種系統(tǒng),該系統(tǒng)包括用于識(shí)別地址空間中與數(shù)據(jù)塊相關(guān)的相干性域的裝置。系統(tǒng)還包括用于根據(jù)所識(shí)別的相干性域和根據(jù)標(biāo)識(shí)數(shù)據(jù)的地址、有選擇地將用于數(shù)據(jù)的窺探對(duì)準(zhǔn)地址空間的子區(qū)域的裝置。
本發(fā)明的另一個(gè)實(shí)施例可包括一種方法,該方法包括根據(jù)與數(shù)據(jù)塊關(guān)聯(lián)的地址為數(shù)據(jù)塊識(shí)別相干性域。該方法還包括根據(jù)所識(shí)別的相干性域和地址廣播至少一個(gè)窺探,以便訪問在相關(guān)地址空間的一個(gè)區(qū)域中的數(shù)據(jù)塊。
圖1描繪了相干性濾波器系統(tǒng)的一個(gè)實(shí)施例。
圖2描繪了相干性濾波器系統(tǒng)的另一個(gè)實(shí)施例。
圖3描繪了相干性濾波器系統(tǒng)的又一個(gè)實(shí)施例。
圖4描繪了相干性濾波器系統(tǒng)的再一個(gè)實(shí)施例。
圖5描繪了可實(shí)現(xiàn)濾波器系統(tǒng)的實(shí)施例的計(jì)算機(jī)系統(tǒng)的例子。
圖6描繪了可實(shí)現(xiàn)濾波器系統(tǒng)的實(shí)施例的計(jì)算機(jī)系統(tǒng)的另一個(gè)例子。
圖7描繪了說明一種方法的流程圖。
具體實(shí)施例方式
圖1描繪了一個(gè)可用來有選擇地直接窺探期望數(shù)據(jù)的濾波器系統(tǒng)10的例子。濾波器系統(tǒng)10可實(shí)現(xiàn)為硬件、軟件或配置成實(shí)現(xiàn)這里描述的功能的硬件和軟件的結(jié)合。例如,濾波器系統(tǒng)10可實(shí)現(xiàn)為在多處理器系統(tǒng)中提供所需的可縮放性的專用集成電路(ASIC)。
例如,濾波器系統(tǒng)10可在多處理器系統(tǒng)中實(shí)現(xiàn),如分布式共享存儲(chǔ)器系統(tǒng)。在多處理器系統(tǒng)中,濾波器系統(tǒng)10可在與各個(gè)處理器協(xié)同定位的一個(gè)或多個(gè)交叉開關(guān)中或在多處理器系統(tǒng)可能向外擴(kuò)展的任何接合點(diǎn)實(shí)現(xiàn)。由于濾波器系統(tǒng)能減輕至少某些不必要的窺探通信量,因此濾波器系統(tǒng)10可提供改進(jìn)的可縮放性。通過限制多處理器系統(tǒng)中的窺探通信量,可獲得改進(jìn)的互連帶寬以用于向外擴(kuò)展而實(shí)現(xiàn)更大容量的系統(tǒng)。濾波器系統(tǒng)10還可在多處理器系統(tǒng)中提供額外的安全性以及存儲(chǔ)地址空間的分區(qū)。
如圖1所示,濾波器系統(tǒng)10接收標(biāo)識(shí)符、如與數(shù)據(jù)塊關(guān)聯(lián)的“地址”。該“地址”可對(duì)應(yīng)于與訪問數(shù)據(jù)塊的事務(wù)處理相關(guān)的標(biāo)記地址,例如可由存儲(chǔ)器訪問裝置、如處理器或I/O控制器結(jié)合請(qǐng)求或其它命令來提供。事務(wù)處理例如可對(duì)應(yīng)于請(qǐng)求(例如,讀或?qū)懻?qǐng)求)或者用于訪問“地址”所標(biāo)識(shí)的數(shù)據(jù)塊的其它命令。例如,數(shù)據(jù)塊可以是一行數(shù)據(jù)(例如,高速緩存行)、一組的兩個(gè)或兩個(gè)以上高速緩存行或任何其它用來存儲(chǔ)和傳遞數(shù)據(jù)的有組織的數(shù)據(jù)結(jié)構(gòu)。
對(duì)濾波器系統(tǒng)10編程和/或配置,以控制對(duì)關(guān)聯(lián)地址空間內(nèi)數(shù)據(jù)塊的窺探通信量。濾波器系統(tǒng)10把數(shù)據(jù)分類到相干性域中。然后濾波器系統(tǒng)10有選擇地根據(jù)相干性域向位于地址空間的對(duì)應(yīng)地址區(qū)域中的一個(gè)或多個(gè)高速緩存的期望子集廣播“窺探”。濾波器系統(tǒng)10可接收對(duì)窺探的一個(gè)或多個(gè)響應(yīng),這些響應(yīng)可包括期望數(shù)據(jù)的拷貝以及更新消息。更新消息可包括使濾波器系統(tǒng)10能夠更新相應(yīng)的相干性信息以便于后續(xù)的對(duì)地址空間的適當(dāng)區(qū)域內(nèi)的數(shù)據(jù)的選擇性窺探的信息(例如所有權(quán)信息、狀況信息、狀態(tài)信息等)。
在圖1的例子中,濾波器系統(tǒng)10包括保持在關(guān)聯(lián)地址空間內(nèi)的數(shù)據(jù)的目錄信息的目錄12。如這里所描述的,地址空間可對(duì)應(yīng)于一個(gè)已定義的存儲(chǔ)區(qū)域,例如一個(gè)分區(qū)或多個(gè)分區(qū)的組。一個(gè)分區(qū)對(duì)應(yīng)于地址空間的一個(gè)區(qū)域,地址空間包括多個(gè)通常與一個(gè)或多個(gè)處理器和輸入/輸出(I/O)控制器相關(guān)聯(lián)的高速緩存,以及共享主存儲(chǔ)器??山㈥P(guān)于處理器、其相關(guān)聯(lián)的高速緩存和I/O控制器是否構(gòu)成給定分區(qū)的一部分的指示,例如在引導(dǎo)時(shí)間或者可選地例如在存儲(chǔ)器動(dòng)態(tài)分區(qū)期間即時(shí)進(jìn)行。一個(gè)分區(qū)還可包括兩個(gè)或兩個(gè)以上為地址空間中相應(yīng)分區(qū)定義相應(yīng)相干性域的子區(qū)域。
目錄12可包括一個(gè)或多個(gè)配置成存儲(chǔ)分類信息和與給定分區(qū)中數(shù)據(jù)關(guān)聯(lián)的相干性信息的存儲(chǔ)裝置。分類信息可標(biāo)識(shí)分區(qū)中數(shù)據(jù)的相干性域。因此,目錄12給窺探引擎14提供分類數(shù)據(jù),用于基于“地址”在數(shù)據(jù)塊的地址空間中識(shí)別關(guān)聯(lián)的相干性域。分類數(shù)據(jù)還可經(jīng)過擴(kuò)展以便識(shí)別可能在引用該數(shù)據(jù)塊的多個(gè)不同相干性域中的一個(gè)或多個(gè)。目錄還可向窺探引擎提供數(shù)據(jù)塊的相干性信息。根據(jù)使用的高速緩存相干性協(xié)議(例如在傳統(tǒng)MESI(修改、排他、共享、無效)協(xié)議中對(duì)狀態(tài)編碼的兩位),相干性信息能識(shí)別數(shù)據(jù)塊的相干性狀況。
作為一個(gè)實(shí)例,目錄12可被實(shí)現(xiàn)為一種存儲(chǔ)結(jié)構(gòu),如內(nèi)容可尋址存儲(chǔ)器(CAM),可用來把“地址”分類為分配給相應(yīng)的相干性域?;蛘?,目錄12可被實(shí)現(xiàn)成隨機(jī)存取存儲(chǔ)器(RAM),它配置成為“地址”所標(biāo)識(shí)的數(shù)據(jù)的一個(gè)或多個(gè)擁有者識(shí)別相干性域的可編程查找表。另外,相應(yīng)的目錄高速緩存可與RAM關(guān)聯(lián),以維護(hù)與地址空間中一組常用的或預(yù)定的地址數(shù)據(jù)相關(guān)聯(lián)的附加目錄信息。作為另一個(gè)選擇,目錄12可以將相干性域的一個(gè)子區(qū)域分類。例如,目錄12可以響應(yīng)“地址”提供分類信息以識(shí)別相應(yīng)數(shù)據(jù)塊的地址空間中的相對(duì)接近性。可根據(jù)濾波器系統(tǒng)10所在的位置或者相對(duì)于發(fā)起具有“地址”的事務(wù)處理的裝置所在的位置來確定相對(duì)接近性。
如上所述,目錄12向窺探引擎14提供目錄信息(例如分類和相干性信息)。窺探引擎14配置成根據(jù)目錄12所提供的目錄信息,窺探在數(shù)據(jù)塊的關(guān)聯(lián)系統(tǒng)中所選擇的高速緩存相干性域。由窺探引擎定為目標(biāo)的地址空間的具體地址區(qū)域的確切性可隨著目錄12的實(shí)現(xiàn)和所提供的目錄信息的粒度而變化。
例如,低粒度目錄12可提供使窺探引擎14能有選擇地窺探地址空間(例如局部區(qū)域或全局區(qū)域)的兩個(gè)或兩個(gè)以上子區(qū)域的小子集的分類信息。通過配置濾波器系統(tǒng)以便僅在地址空間的定義區(qū)域內(nèi)有選擇地窺探,濾波器系統(tǒng)10能提供安全性和分區(qū)功能,以及限制通過遍及地址空間的相關(guān)聯(lián)互連結(jié)構(gòu)傳遞的通信量。
作為另一個(gè)實(shí)例,假定濾波器系統(tǒng)10被配置成支持位于給定分區(qū)內(nèi)的數(shù)據(jù),該給定分區(qū)包括兩個(gè)子區(qū)域,即局部相干性域和全局相干性域。如果目錄12提供的目錄信息把“地址”輸入分類為被分配給局部相干性域,則窺探引擎14只窺探局部區(qū)域。通過把窺探通信量限制在局部區(qū)域,由于沒有通過全局互連來發(fā)送不必要的窺探,因此保存了互連帶寬。作為另一個(gè)例子,當(dāng)來自目錄12的目錄信息把“地址”輸入分類為被分配給全局相干性域時(shí),窺探引擎14可以窺探地址空間的全局區(qū)域。另外地或可替換地,分類信息可在局部或全局相干性域中識(shí)別一個(gè)或多個(gè)具體區(qū)域或與存儲(chǔ)器訪問裝置相關(guān)聯(lián)的高速緩存。
本領(lǐng)域技術(shù)人員將明白和理解,目錄12可以用除了上述兩個(gè)級(jí)別(例如,局部和全局)之外的其它級(jí)別的粒度向窺探引擎提供目錄信息。例如,較高粒度的目錄12可提供使窺探引擎14能夠有選擇地窺探地址空間中的不止兩個(gè)子區(qū)域或者甚至預(yù)期數(shù)據(jù)的特定擁有者(擁有數(shù)據(jù)的當(dāng)前拷貝的高速緩存)的目錄信息,例如通過目錄信息將數(shù)據(jù)分類到超過兩個(gè)相干性域。
本領(lǐng)域技術(shù)人員還將明白和理解,濾波器系統(tǒng)10可適合與各種類型的高速緩存相干性協(xié)議結(jié)合工作,包括空目錄協(xié)議和基于廣播(或窺探)協(xié)議。濾波器系統(tǒng)10還可被用在采用基于目錄的協(xié)議的多處理器系統(tǒng)中,例如通過替換或增加協(xié)議所實(shí)現(xiàn)的目錄功能。
圖2描繪了另一個(gè)濾波器系統(tǒng)50的一個(gè)例子。濾波器系統(tǒng)50包括多個(gè)標(biāo)為“分區(qū)1”目錄到“分區(qū)M”目錄的分區(qū)目錄52,其中M是表示相關(guān)聯(lián)的集合地址空間中的分區(qū)數(shù)目的正整數(shù)。例如,分區(qū)目錄52中的每一個(gè)可用作一個(gè)用于濾波器系統(tǒng)50所服務(wù)的集合地址空間的相應(yīng)分區(qū)的對(duì)應(yīng)相干性濾波器。集合地址空間例如可對(duì)應(yīng)于關(guān)聯(lián)分布式共享存儲(chǔ)器多處理器系統(tǒng)中的集合地址空間。各個(gè)分區(qū)目錄52中的每一個(gè)都可用來根據(jù)“地址”輸入把數(shù)據(jù)塊分類為被分配給相應(yīng)分區(qū)中的兩個(gè)或更多預(yù)定相干性域中的一個(gè)。
例如,每個(gè)分區(qū)目錄52可以向相關(guān)的窺探引擎54提供相應(yīng)的目錄信號(hào)。雖然圖2描述了單一的窺探引擎54,但分開的窺探引擎可與每個(gè)目錄52相關(guān)聯(lián)。目錄向窺探引擎54提供目錄信息,把一個(gè)或多個(gè)與“地址”關(guān)聯(lián)的數(shù)據(jù)塊分類成被分配到相干性域,如局部或全局相干性域。其它相干性域分類也可用在地址空間中的每個(gè)相應(yīng)分區(qū)中,如保留域或中間域。本領(lǐng)域技術(shù)人員會(huì)理解,通過實(shí)現(xiàn)分區(qū)目錄52來根據(jù)“地址”識(shí)別數(shù)據(jù)塊的相干性域,可以減輕互連結(jié)構(gòu)上的窺探通信量。因?yàn)楦Q探引擎54使用局部互連對(duì)被分配到局部相干性域的地址子集廣播窺探,并且只對(duì)分類到全局相干性域內(nèi)的數(shù)據(jù)使用全局互連和交換結(jié)構(gòu),所以可減少窺探通信量。
在圖2的例子中,為了簡(jiǎn)化說明,只描繪了“分區(qū)1”目錄的內(nèi)容。本領(lǐng)域技術(shù)人員將明白和理解,各個(gè)分區(qū)目錄52中的每一個(gè)都可類似地配置。“分區(qū)1”目錄包括維護(hù)與地址空間的相應(yīng)分區(qū)關(guān)聯(lián)的目錄信息的相干性表56。目錄信息可包括根據(jù)“地址”以及存儲(chǔ)在相應(yīng)分區(qū)中的數(shù)據(jù)的相干性數(shù)據(jù)識(shí)別至少兩個(gè)相干性域其中之一的分類數(shù)據(jù)。
相干性表56用來以想要的粒度提供分類數(shù)據(jù),通常取決于實(shí)現(xiàn)相干性表的結(jié)構(gòu)。例如,相干性表56可被實(shí)現(xiàn)為一個(gè)高粒度芯片外RAM,其中包含與分區(qū)中每個(gè)數(shù)據(jù)塊關(guān)聯(lián)的相干性和位置信息。或者,相干性表56可被實(shí)現(xiàn)為部分目錄結(jié)構(gòu)(例如在片上靜態(tài)RAM(SRAM)中實(shí)現(xiàn)),它識(shí)別頁(yè)、組或其它在集合地址空間的相應(yīng)分區(qū)中具有多行數(shù)據(jù)的存儲(chǔ)區(qū)域。可被以這種方式編組的數(shù)據(jù)行的具體尺寸或數(shù)目可以是可配置的,并可進(jìn)一步根據(jù)相干性表56的容量而變化。
另外地或可替代地,高速緩存(未示出)可以與用于識(shí)別經(jīng)常被訪問的存儲(chǔ)位置的相干性表56相關(guān)聯(lián)。由相干性表的高速緩存所標(biāo)識(shí)的存儲(chǔ)位置可提供比相干性表中RAM部分更確切的位置信息,例如通過高速緩存行。
“分區(qū)1”目錄還可包括在地址空間的相應(yīng)分區(qū)(例如分區(qū)1)中識(shí)別物理存儲(chǔ)位置的處理器數(shù)據(jù)60和控制器數(shù)據(jù)58。例如,控制器數(shù)據(jù)58保持分區(qū)1中I/O控制器的列表。類似地,用于數(shù)據(jù)的處理60提供分區(qū)1中所有CPU的列表。這樣,控制器數(shù)據(jù)58和處理器數(shù)據(jù)60使窺探引擎54能把窺探指向用于訪問由“地址”指定的數(shù)據(jù)的分區(qū)中的適當(dāng)資源。雖然控制器數(shù)據(jù)58和處理器數(shù)據(jù)60被描繪為“分區(qū)1”目錄52的一部分,但是應(yīng)當(dāng)明白和理解,這種數(shù)據(jù)可與目錄52分開存儲(chǔ)。
作為另一個(gè)實(shí)例,窺探引擎54廣播“窺探”來訪問基于目錄信息所識(shí)別的相干性域和基于提供給分區(qū)目錄52的“地址”的相應(yīng)分區(qū)1中的數(shù)據(jù)。例如,如果“地址”被分類為局部的,那么窺探引擎可局部廣播“窺探”(例如不使用全局互連)到分區(qū)中CPU和I/O控制器的子集。相反,如果“地址”被分類為全局的,窺探引擎54廣播“窺探”到構(gòu)成相應(yīng)分區(qū)的一部分的額外I/O控制器和其它CPU。窺探引擎54接收對(duì)廣播“窺探”的一個(gè)或多個(gè)響應(yīng)。窺探引擎54包括用于管理窺探和跟蹤對(duì)各個(gè)窺探的響應(yīng)的資源,這包括即時(shí)表或其它資源。窺探引擎54還可向各個(gè)分區(qū)目錄52提供“響應(yīng)“,以便更新相應(yīng)的相干性表56。
圖3描繪了濾波器系統(tǒng)100的另一個(gè)例子。濾波器系統(tǒng)100包括比較器系統(tǒng)102,它接收識(shí)別預(yù)期數(shù)據(jù)塊的“存儲(chǔ)地址”?!按鎯?chǔ)地址”可與對(duì)數(shù)據(jù)塊的事務(wù)處理、諸如由存儲(chǔ)器訪問裝置提供的請(qǐng)求或其它命令相關(guān)聯(lián)。比較器系統(tǒng)102被配置為識(shí)別基于“存儲(chǔ)地址”的數(shù)據(jù)塊的相干性域。作為一個(gè)例子,數(shù)據(jù)塊的相干性域可以對(duì)應(yīng)于局部域或全局域。例如,局部域?qū)?yīng)于地址空間中的局部存儲(chǔ)區(qū)域,比如可經(jīng)由一個(gè)或多個(gè)局部互連104訪問的區(qū)域。
可提供局部互連104(例如在單元板上)來使多個(gè)處理器之間能通信以及與一個(gè)或多個(gè)相關(guān)的輸入/輸出(I/O)控制器通信。例如,局部處理器和局部I/O控制器中的每一個(gè)可包括一個(gè)或多個(gè)相應(yīng)的高速緩存。這樣通過局部互連104的通信能允許訪問通過局部互連可通信地彼此耦合的局部部件上的共享存儲(chǔ)器。
全局域?qū)?yīng)于通過全局互連106與濾波器系統(tǒng)100可通信地耦合的地址空間中的一個(gè)以上的存儲(chǔ)區(qū)域。全局互連106可對(duì)應(yīng)于一個(gè)或多個(gè)交叉開關(guān)結(jié)構(gòu)(例如交叉開關(guān)ASIC)、分級(jí)交換機(jī)、交換機(jī)結(jié)構(gòu)或類似物,它們可通信地耦合關(guān)聯(lián)多處理器系統(tǒng)的子系統(tǒng)(例如單元板)。全局互連106提供對(duì)全局高速緩存結(jié)構(gòu)和全局I/O控制器的訪問,比如可在分布式單元存儲(chǔ)器系統(tǒng)中的多個(gè)單元板上實(shí)現(xiàn)。全局高速緩存/控制器在108上示意表示。
作為一個(gè)實(shí)例,每個(gè)存儲(chǔ)子系統(tǒng)中存儲(chǔ)區(qū)的所選部分可以被分配到局部相干性域(或局部地址空間)和全局相干性域(或全局地址空間)。例如,與每個(gè)處理器或I/O控制器關(guān)聯(lián)的高速緩存具有其存儲(chǔ)區(qū)被分配到局部域的第一種百分比,和其存儲(chǔ)區(qū)被分配到全局域的第二種百分比。為了改進(jìn)性能,在給定的處理器的高速緩存中的大量存儲(chǔ)區(qū)可以被分配到局部域而不是全局域。這樣,全局分類通常會(huì)導(dǎo)致給定分區(qū)中一個(gè)或多個(gè)遠(yuǎn)程存儲(chǔ)區(qū)域通過全局互連106被窺探,以及全局域中的一個(gè)或多個(gè)局部存儲(chǔ)區(qū)域例如通過局部互連104被窺探。這樣,全局域可包括被分配到總起來大于每個(gè)單獨(dú)局部域中局部存儲(chǔ)區(qū)域的域的分布存儲(chǔ)區(qū)的集合。
在分區(qū)存儲(chǔ)器系統(tǒng)中,整個(gè)地址空間中的每個(gè)分區(qū)可實(shí)現(xiàn)局部和全局地址空間的類似組織。一個(gè)或多個(gè)濾波器可分布在用于每個(gè)相應(yīng)分區(qū)的多處理器系統(tǒng)中。這樣,濾波器系統(tǒng)100可被配置成將給定的“存儲(chǔ)地址”分類為對(duì)于每個(gè)相應(yīng)分區(qū)的集合地址空間是局部的或全局的。
不對(duì)應(yīng)于給定分區(qū)中數(shù)據(jù)的“存儲(chǔ)地址”對(duì)應(yīng)于未命中,這可導(dǎo)致比較器系統(tǒng)102提供“安全性”信息?!鞍踩浴毙畔⒛茏R(shí)別安全違反的出現(xiàn)。例如,當(dāng)“存儲(chǔ)地址”被輸入到比較器系統(tǒng)102用于駐留在與濾波器系統(tǒng)100所支持的分區(qū)不同的分區(qū)中的數(shù)據(jù)時(shí),安全違反可能存在?!鞍踩浴毙畔⒖商峁┙o適當(dāng)?shù)南到y(tǒng)級(jí)安全特征,例如由操作系統(tǒng)實(shí)現(xiàn),和/或登錄以識(shí)別安全違反。作為選擇或另外地,比較器系統(tǒng)102可提供“安全性”信息來將存儲(chǔ)地址分類為屬于非法的、保留的或受限制的存儲(chǔ)區(qū)域。受限制的或保留的區(qū)域可以在濾波器系統(tǒng)100所支持的分區(qū)中或者可以在不同的分區(qū)。
如圖3所示,比較器系統(tǒng)102可包括多個(gè)被標(biāo)為“比較器1”到“比較器N”的比較器112,其中N是表示比較器數(shù)目的正整數(shù)。比較器112的數(shù)目可以根據(jù)例如濾波器系統(tǒng)100所支持的分區(qū)大小而變化。每個(gè)比較器112可以配置成為“存儲(chǔ)地址”提供表示局部或全局分類的相應(yīng)邏輯輸出信號(hào)。例如,比較器系統(tǒng)102可以實(shí)現(xiàn)成內(nèi)容可尋址存儲(chǔ)器(CAM),其由“存儲(chǔ)地址”索引,用來提供作為“存儲(chǔ)地址”的函數(shù)的相應(yīng)分類數(shù)據(jù)(例如,單個(gè)位或多個(gè)位輸出)。
例如,在每個(gè)比較器112提供對(duì)應(yīng)于局部或全局分類的邏輯輸出的情況下,可利用分類數(shù)據(jù)的單個(gè)位。當(dāng)想要較大的確切度或其它分類時(shí),可使用一個(gè)以上的位。在圖3的例子中,比較器112向局部窺探域框114提供“局部”輸出,框114可實(shí)現(xiàn)邏輯“或”功能以向分區(qū)窺探引擎116提供相應(yīng)信號(hào)。類似地,全局輸出被提供給執(zhí)行邏輯“或”功能的全局窺探域框118,框118向分區(qū)窺探引擎116提供相應(yīng)的邏輯輸出。除了來自窺探域框114和118的分類信息外,“存儲(chǔ)地址”也被提供給窺探引擎116。本領(lǐng)域技術(shù)人員將明白和理解,各種其它實(shí)現(xiàn)可用來提供對(duì)“存儲(chǔ)地址”想要的分類。
濾波器系統(tǒng)100還包括向窺探引擎116提供位置信息的控制器列表120和CPU列表122??刂破髁斜?20和CPU列表122共同地提供識(shí)別分區(qū)的每個(gè)子區(qū)域中的數(shù)據(jù)的潛在擁有者的信息。例如,控制器列表120可以識(shí)別對(duì)應(yīng)于分區(qū)中I/O控制器所用的物理位置的標(biāo)記地址。控制器列表120可以被提供到局部窺探組件124和全局窺探組件126??刂破髁斜?20可以在各個(gè)分區(qū)內(nèi)識(shí)別標(biāo)記地址,該分區(qū)可經(jīng)由局部互連104訪問,I/O控制器可經(jīng)由全局互連106訪問。局部窺探組件124配置成根據(jù)局部窺探域框114、“存儲(chǔ)地址”和控制器列表120所提供的分類信息通過局部互連104來窺探分區(qū)的局部相干性域。局部窺探組件124使用窺探引擎116的資源來管理局部窺探和跟蹤響應(yīng)。
CPU列表122例如可被提供給全局窺探組件126以允許其它CPU在分區(qū)中的窺探。當(dāng)存儲(chǔ)地址被分類為全局時(shí),全局窺探組件126還根據(jù)I/O控制器(由控制器列表126提供)窺探。即,全局窺探組件126窺探I/O控制器(在局部域和全局域)以及全局域中的CPU的高速緩存。前述方法假定在內(nèi)部窺探局部域的CPU的高速緩存,與由濾波器系統(tǒng)100所實(shí)現(xiàn)的窺探分開??梢悦靼缀屠斫?,作為選擇,如果比較器系統(tǒng)102將存儲(chǔ)地址分類為局部的,局部窺探組件124可配置成通過局部互連來窺探局部處理器。
局部窺探組件124和全局窺探組件126中的每一個(gè)都可根據(jù)“存儲(chǔ)地址”所標(biāo)識(shí)的數(shù)據(jù)的分類來窺探分區(qū)的地址空間。如果比較器系統(tǒng)102將“存儲(chǔ)”分類為局部的,則局部窺探組件124向用于根據(jù)控制器列表120來窺探分區(qū)中局部I/O控制器的局部互連104廣播窺探。響應(yīng)來自局部窺探組件124的窺探,局部I/O控制器110可以向分區(qū)窺探引擎116發(fā)回響應(yīng)。
全局窺探組件126以類似的方式工作,響應(yīng)比較器系統(tǒng)102將“消息地址”分類為全局的。全局窺探組件126向全局互連106廣播窺探,該窺探可被廣播到全局高速緩存/控制器108,其中的一些可包括經(jīng)由分區(qū)局部互連可訪問的局部I/O控制器110。即,全局窺探組件126可對(duì)分區(qū)中的被分配到全局域的任何存儲(chǔ)區(qū)域廣播其窺探,而不管其在地址空間內(nèi)的物理位置。
窺探引擎116使用資源來管理窺探并跟蹤分別由局部和全局窺探組件124和126中每一個(gè)所提供的對(duì)窺探的響應(yīng)。例如,如果期望的窺探響應(yīng)沒有被窺探組件之一所接收,則事務(wù)處理可能超時(shí)并可能實(shí)現(xiàn)一個(gè)錯(cuò)誤處理程序,如重試窺探。本領(lǐng)域技術(shù)人員將明白和理解,分區(qū)窺探引擎116可實(shí)現(xiàn)各種機(jī)制以用于錯(cuò)誤處理和確保事務(wù)處理的向前進(jìn)行。
分區(qū)窺探引擎116還可根據(jù)從I/O控制器110或全局高速緩存/控制器108接收的窺探響應(yīng)(或多個(gè)響應(yīng))向比較器系統(tǒng)102提供相應(yīng)的響應(yīng)。響應(yīng)消息可包含位置信息和/或指示由“存儲(chǔ)地址”所標(biāo)識(shí)的數(shù)據(jù)的狀態(tài)的相干性信息。例如,與I/O控制器110和全局高速緩存/控制器108相關(guān)的高速緩存可被實(shí)現(xiàn)為拋出數(shù)據(jù)并提供響應(yīng)消息的寫回高速緩存。濾波器系統(tǒng)100可以使用響應(yīng)消息來動(dòng)態(tài)地更新比較器系統(tǒng)102。也就是說,濾波器系統(tǒng)100能實(shí)現(xiàn)適當(dāng)?shù)目刂疲缗c比較器系統(tǒng)102相關(guān)的(未示出),用于根據(jù)響應(yīng)消息更新比較器系統(tǒng)中的比較器112中的一個(gè)或多個(gè)。這樣,比較器系統(tǒng)102可提供反映濾波器系統(tǒng)所支持的分區(qū)的地址空間中數(shù)據(jù)的當(dāng)前狀態(tài)的分類信息。
圖4描繪了可用于根據(jù)標(biāo)識(shí)預(yù)期數(shù)據(jù)塊的“存儲(chǔ)地址”控制窺探的濾波器系統(tǒng)140的另一個(gè)例子。濾波器系統(tǒng)140包括編程和/或配置成根據(jù)“存儲(chǔ)地址”識(shí)別相干性域的目錄系統(tǒng)150。數(shù)據(jù)的相干性域可指示地址區(qū)域內(nèi)數(shù)據(jù)的相對(duì)鄰近度,如集合地址空間的一個(gè)或多個(gè)分區(qū)。集合地址空間可包含任何數(shù)目的一個(gè)或多個(gè)分區(qū)。例如,目錄系統(tǒng)150可將數(shù)據(jù)分類為局部或全局以響應(yīng)“存儲(chǔ)地址”。還可將數(shù)據(jù)分類擴(kuò)展為更具體地識(shí)別地址空間中的區(qū)域,例如通過指示局部或全局域中的不同區(qū)域或甚至識(shí)別與一個(gè)或多個(gè)目前引用數(shù)據(jù)的存儲(chǔ)器訪問裝置相關(guān)的高速緩存(如潛在擁有者)。目錄系統(tǒng)150還可根據(jù)“存儲(chǔ)地址”識(shí)別與數(shù)據(jù)塊相關(guān)的相干性狀態(tài)信息。
目錄系統(tǒng)150包括一個(gè)可用來將“存儲(chǔ)地址”轉(zhuǎn)換成相應(yīng)塊標(biāo)記地址的映射系統(tǒng)152。映射系統(tǒng)向目錄154提供塊標(biāo)記地址。塊標(biāo)記地址標(biāo)識(shí)“存儲(chǔ)地址”所在的相應(yīng)存儲(chǔ)數(shù)據(jù)塊。存儲(chǔ)塊可對(duì)應(yīng)于存儲(chǔ)行的任何部分、整個(gè)存儲(chǔ)行(例如高速緩存行)或跨過多行,如構(gòu)成一個(gè)或多個(gè)存儲(chǔ)頁(yè)。例如,相關(guān)聯(lián)的操作系統(tǒng)可以映射一個(gè)存儲(chǔ)頁(yè)到給定的進(jìn)程(例如,每頁(yè)具有大約4K字節(jié)到大約1M字節(jié)),映射系統(tǒng)152根據(jù)“存儲(chǔ)地址”映射每個(gè)存儲(chǔ)塊到相應(yīng)操作系統(tǒng)頁(yè)。
可對(duì)目錄154編程以實(shí)現(xiàn)查找表或可用來基于映射系統(tǒng)152所提供的塊標(biāo)記地址識(shí)別數(shù)據(jù)的相干性域的其它數(shù)據(jù)結(jié)構(gòu)。目錄154與映射系統(tǒng)152合作來為“存儲(chǔ)地址”提供較寬的分類信息,如基于映射系統(tǒng)152所提供的塊標(biāo)記地址。本領(lǐng)域技術(shù)人員會(huì)理解,目錄154可實(shí)現(xiàn)各種分層的分類級(jí)別以基于映射系統(tǒng)152所提供的信息對(duì)數(shù)據(jù)分類。
在圖4的例子中,目錄154包括目錄RAM 156,該目錄RAM 156配置成提供指示相應(yīng)的基于映射系統(tǒng)152所提供的塊標(biāo)記地址的相干性域分類的分類數(shù)據(jù)。例如,目錄RAM 156確定相應(yīng)的數(shù)據(jù)塊(基于映射系統(tǒng)152所提供的塊標(biāo)記地址)對(duì)應(yīng)于數(shù)據(jù)的局部擁有者還是相對(duì)于實(shí)現(xiàn)濾波器系統(tǒng)140之處在外部的全局擁有者。在這個(gè)例子中,局部擁有者對(duì)應(yīng)于由“存儲(chǔ)地址”所標(biāo)識(shí)的數(shù)據(jù)的擁有者(例如,處理器的高速緩存或I/O控制器的高速緩存),它可不使用全局互連或結(jié)構(gòu)網(wǎng)絡(luò)來訪問。通過目錄RAM 156的局部分類導(dǎo)致窺探使用局部互連來窺探數(shù)據(jù)擁有者。相反,外部擁有者對(duì)應(yīng)于離濾波器系統(tǒng)150遠(yuǎn)的數(shù)據(jù)擁有者。全局分類導(dǎo)致窺探一個(gè)或多個(gè)外部擁有者,通常包括經(jīng)由一個(gè)或多個(gè)全局互連或結(jié)構(gòu)網(wǎng)絡(luò)窺探。
目錄RAM 156可被實(shí)現(xiàn)為例如芯片上SRAM。可進(jìn)一步減小目錄154的尺寸以通過對(duì)存儲(chǔ)塊、如相關(guān)操作系統(tǒng)所定義的頁(yè)面分類來提供部分目錄結(jié)構(gòu)。當(dāng)與識(shí)別具體數(shù)據(jù)擁有者的全目錄結(jié)構(gòu)相比較時(shí),目錄尺寸可被減小并以降低的成本實(shí)現(xiàn)。目錄RAM 156還可以維護(hù)用于濾波器系統(tǒng)140所支持的存儲(chǔ)區(qū)域中的各個(gè)存儲(chǔ)塊的相干性信息。例如,目錄RAM 156可存儲(chǔ)分類字段,其中可包括一個(gè)或多個(gè)位,取決于位置分類信息的粒度。位置信息例如可包括單個(gè)分類位,用于識(shí)別給定存儲(chǔ)塊相對(duì)于濾波器系統(tǒng)是本地的或外部的。此外,多位分類字段也可存儲(chǔ)相干性信息,如根據(jù)使用的相干性協(xié)議識(shí)別數(shù)據(jù)塊的相干性狀態(tài)(例如修改、排他、共享和無效)。本領(lǐng)域技術(shù)人員將明白和理解,濾波器系統(tǒng)140不限于任何特定的相干性協(xié)議。目錄RAM 156可提供分類和相干性信息,提供任何想要的確切性等級(jí)。作為第一個(gè)例子,目錄RAM 156可以把4位用于分類和相干性信息。例如,兩位可用于識(shí)別高速緩存相干性狀態(tài)(例如根據(jù)MESI相干性協(xié)議),一位用來識(shí)別數(shù)據(jù)為局部的,一位用來識(shí)別數(shù)據(jù)為全局的。
作為第二個(gè)例子,目錄RAM 156可將兩位用于高速緩存相干性狀態(tài),一位用于識(shí)別數(shù)據(jù)是否在全局相干性域內(nèi),Q位用來識(shí)別多個(gè)可能域中的一個(gè)域(其中Q是足夠?qū)Φ刂房臻g中相干性域的數(shù)目編碼的正整數(shù))。該方法使目錄RAM 156能識(shí)別特別是哪個(gè)存儲(chǔ)器訪問裝置(例如CPU或I/O裝置)目前在訪問對(duì)應(yīng)于“存儲(chǔ)地址”的數(shù)據(jù)塊??稍O(shè)置全局位以指示當(dāng)有至少兩個(gè)數(shù)據(jù)共享者并且應(yīng)進(jìn)行廣播的情形。
作為第三個(gè)例子,目錄RAM 156可將兩位用于高速緩存相干性狀態(tài),一位用來指明數(shù)據(jù)是否在局部相干性域內(nèi),一位用來指明數(shù)據(jù)是否在全局相干性域內(nèi),R位用來指明一個(gè)不同的遠(yuǎn)程域(其中R是足夠?qū)Φ刂房臻g中相干性域數(shù)目編碼的正整數(shù))。這與上段描述的例子相似,但加了額外的位來識(shí)別局部域。局部域位提供一個(gè)廉價(jià)的額外編碼級(jí)別,允許引用同一個(gè)數(shù)據(jù)塊的兩個(gè)域的識(shí)別,如局部域和遠(yuǎn)程域。
根據(jù)第四個(gè)例子,目錄RAM 156可提供兩位用于高速緩存相干性狀態(tài)信息,一位用于指示數(shù)據(jù)是否在局部相干性域內(nèi),一位用于識(shí)別數(shù)據(jù)是否在全局相干性域內(nèi),SxT位用來指示一個(gè)不同的遠(yuǎn)程域(其中T是足夠?qū)Φ刂房臻g中相干性域數(shù)目編碼的正整數(shù),S是表示引用數(shù)據(jù)塊的域數(shù)目的正整數(shù))。例如,這允許目錄RAM 156識(shí)別可共享數(shù)據(jù)塊的兩個(gè)或更多域。
目錄RAM 156向解釋器/控制器158提供分類信息和相干性信息。對(duì)解釋器/控制器158進(jìn)行編程和/或配置,以便解釋目錄查找結(jié)果以及更新目錄RAM 156。例如,解釋器/控制器158可接收來自相關(guān)的窺探引擎160的響應(yīng)并使用該響應(yīng)或至少其中一部分來更新目錄RAM 156中的條目。目錄RAM的更新可對(duì)應(yīng)于修改與一個(gè)或多個(gè)存儲(chǔ)塊相關(guān)的分類信息。另外地或可選擇地,新的標(biāo)記更新還可修改與數(shù)據(jù)塊相關(guān)的相干性信息,還基于窺探引擎160所接收的窺探響應(yīng)。解釋器/控制器158可修改相干性信息,例如根據(jù)被實(shí)現(xiàn)的高速緩存相干性協(xié)議,通過加入新的或修改的數(shù)據(jù)狀態(tài)。
通過使用不止一位可增強(qiáng)由目錄RAM 156維護(hù)的分類信息字段。這樣可利用較大數(shù)目的位來定義兩個(gè)以上的相干性域,盡管與濾波器系統(tǒng)140相關(guān)聯(lián)的開銷也將相應(yīng)地增加。例如,性能改進(jìn)可以通過使用兩位來實(shí)現(xiàn)一位用來指示塊是局部的還是全局的,第二位用來識(shí)別全局行由處理器還是I/O控制器所有。這種改進(jìn)由此可使濾波器系統(tǒng)140更好地控制窺探如何定向,因?yàn)閷?duì)于與I/O控制器相關(guān)的高速緩存中的數(shù)據(jù)的窺探通常指向特定存儲(chǔ)區(qū)域。這樣用于分類的另兩位允許濾波器系統(tǒng)140提供另外的控制度以限制傳送給I/O控制器或外部處理器的窺探通信量。
如圖4所描繪的,目錄154還可包括高速緩存162。高速緩存162例如可提供可比目錄RAM 156所提供的分類具有更大確切性地識(shí)別數(shù)據(jù)擁有者的“熱線”高速緩存。目錄RAM 156和高速緩存162可根據(jù)映射系統(tǒng)152提供的標(biāo)記地址實(shí)現(xiàn)不同等級(jí)的分類級(jí)別。映射系統(tǒng)152可配置成向目錄RAM 156和高速緩存162中每個(gè)提供不同類型的標(biāo)記地址。即,提供給高速緩存162的標(biāo)記地址可識(shí)別“存儲(chǔ)地址”所標(biāo)識(shí)的數(shù)據(jù)的擁有者的位置,比提供給目錄RAM 156的塊標(biāo)記地址(例如用于具有多個(gè)高速緩存行的存儲(chǔ)塊、如頁(yè)面的標(biāo)記地址)具有更大的確切性(如用于一個(gè)給定高速緩存行的標(biāo)記地址)。
例如,如果目錄RAM 156被配置成將數(shù)據(jù)塊(例如操作系統(tǒng)頁(yè)面)分類為局部的或全局的,可利用高速緩存162來識(shí)別用于基于映射系統(tǒng)152所提供的標(biāo)記地址的給定高速緩存行的特定擁有者的地址空間內(nèi)的位置。可利用高速緩存162來識(shí)別一個(gè)高速緩存行或比目錄RAM 156所分類的數(shù)據(jù)塊小(例如其子集)的存儲(chǔ)器的任何其它單元。這樣,當(dāng)高速緩存112識(shí)別一個(gè)擁有者時(shí),窺探引擎160可將窺探直接指向所識(shí)別的擁有者。
高速緩存162可被實(shí)現(xiàn)為隊(duì)列或用于維護(hù)識(shí)別給定數(shù)據(jù)行的擁有者的信息和與濾波器系統(tǒng)140所支持的存儲(chǔ)區(qū)域中存儲(chǔ)地址的預(yù)定子集有關(guān)的相干性信息的其它可編程數(shù)據(jù)結(jié)構(gòu)??蛇x擇地或另外地,可對(duì)高速緩存162編程和/或配置,使相干性信息和所有權(quán)信息能夠?yàn)橐唤M可編程存儲(chǔ)行存儲(chǔ)。這樣,熱線可改進(jìn)某段執(zhí)行代碼的性能,如其中多處理器和I/O控制器使用小的共享數(shù)據(jù)集。高速緩存162可由解釋器/控制器158來管理和更新,如基于訪問數(shù)據(jù)的相對(duì)頻率??蛇x擇地或另外地,操作系統(tǒng)本身可根據(jù)被執(zhí)行的應(yīng)用程序的要求對(duì)高速緩存162編程。
高速緩存162基于來自映射系統(tǒng)152的標(biāo)記地址向解釋器控制器158提供相干性和位置信息。來自高速緩存162的信息使解釋器控制器158能夠向窺探引擎160提供更詳細(xì)的信息(例如更細(xì)致的分類級(jí)別)。這樣,高速緩存162使窺探引擎160有選擇地基于“存儲(chǔ)地址”向數(shù)據(jù)的擁有者(或潛在擁有者的小子集)提供目標(biāo)窺探。作為這種以擁有者為目標(biāo)的窺探的結(jié)果,甚至當(dāng)擁有者相對(duì)于濾波器系統(tǒng)150位于外部時(shí),可減小系統(tǒng)中用于廣播的帶寬。
目錄還包括控制器數(shù)據(jù)164和處理器數(shù)據(jù)166,它們向窺探引擎160提供位置信息,用于分區(qū)中潛在窺探目的地(例如數(shù)據(jù)的潛在擁有者)或其它由濾波器系統(tǒng)140所支持的邏輯存儲(chǔ)區(qū)域。例如,控制器數(shù)據(jù)164可標(biāo)識(shí)對(duì)應(yīng)于分區(qū)中I/O控制器所用的物理位置的標(biāo)記地址。處理器數(shù)據(jù)166類似地可標(biāo)識(shí)用于分布在整個(gè)分區(qū)內(nèi)的處理器高速緩存的標(biāo)記地址,該高速緩存可通過局部和全局互連來訪問。
這樣,窺探引擎160提供基于被解釋的分類信息、控制器數(shù)據(jù)、處理器數(shù)據(jù)和“存儲(chǔ)地址”的相干性窺探。例如,如果解釋器控制器158識(shí)別“存儲(chǔ)地址”為局部的,那么窺探引擎160提供基于“存儲(chǔ)地址”局部的相干性窺探,而不經(jīng)由全局互連向系統(tǒng)的其它部分廣播窺探??蛇x擇地,如果解釋器控制器158提供指示“存儲(chǔ)地址”對(duì)應(yīng)于外部擁有者的所解釋相干性信息,那么窺探引擎160向整個(gè)系統(tǒng)提供作為全局廣播的相干性窺探。作為另一個(gè)選擇,窺探引擎160可以向一個(gè)或多個(gè)潛在的擁有者提供目標(biāo)窺探,如高速緩存162所標(biāo)識(shí)的。
如上面所提到的,窺探引擎160可向I/O控制器以及位于整個(gè)系統(tǒng)中的外部CPU全局廣播相干性窺探。局部和全局窺探之間的這種區(qū)別假定局部CPU通過局部處理器總線局部地窺探,與濾波器系統(tǒng)140所實(shí)現(xiàn)的窺探分開,因此不要求由窺探引擎160來窺探。本領(lǐng)域技術(shù)人員將明白和理解,作為選擇,局部處理器也可被窺探引擎160基于用于數(shù)據(jù)的局部和全局分類的被解釋分類信息來窺探。
窺探引擎160還包括用來跟蹤和管理窺探引擎所提供的窺探的資源。例如,窺探引擎160可以保持即時(shí)表或其它包括一個(gè)或多個(gè)用于每個(gè)期望響應(yīng)的突出事務(wù)處理的條目的機(jī)制。在接收到一個(gè)或多個(gè)響應(yīng)時(shí),窺探引擎160可對(duì)適當(dāng)?shù)氖聞?wù)處理?xiàng)l目進(jìn)行更新,在事務(wù)處理完成時(shí),退回條目。窺探引擎160還基于條目的更新向解釋器/控制器158以及可選地向系統(tǒng)內(nèi)其它資源提供響應(yīng)。解釋器/控制器158可使用來自窺探引擎160的更新的響應(yīng)信息來更新目錄RAM156。解釋器/控制器158還可使用響應(yīng)來更新高速緩存162。
目錄系統(tǒng)150還可包括目錄擦洗器170。目錄擦洗器170被編程和/或被配置成瀏覽濾波器系統(tǒng)140所支持的相關(guān)聯(lián)地址空間,以便有選擇地將數(shù)據(jù)從全局(或外部)分類到局部分類進(jìn)行重分類。本領(lǐng)域技術(shù)人員將明白和理解,如果大量數(shù)據(jù)被分類為局部的,窺探引擎160將不太經(jīng)常通過全局互連廣播窺探的可能性增加。全局窺探通信量的減小將導(dǎo)致可用于各種目的的互連帶寬量的相應(yīng)增加。可用的互連帶寬的增加還便于在不使現(xiàn)有開銷過載的條件下擴(kuò)展到較大容量的系統(tǒng)。
例如,目錄擦洗器170用想要的起始地址來編程并走過地址空間。當(dāng)遇到有效數(shù)據(jù)行時(shí),目錄擦洗器170向解釋器/控制器158提供指令使窺探引擎160向相應(yīng)的存儲(chǔ)塊發(fā)出沖洗命令(例如無效命令)。例如,沖洗命令可被提供給單行數(shù)據(jù)或多行、如頁(yè)面。如果沖洗命令不能導(dǎo)致另一個(gè)裝置(例如I/O控制器或處理器)產(chǎn)生新的數(shù)據(jù)請(qǐng)求,解釋器/控制器158向目錄154提供相應(yīng)的指令,將數(shù)據(jù)塊設(shè)置成局部狀態(tài)。這可以結(jié)合被傳送到局部相干性域中的相應(yīng)存儲(chǔ)位置的數(shù)據(jù)的當(dāng)前備份來實(shí)現(xiàn)。
作為選擇,如果在實(shí)現(xiàn)沖洗命令后對(duì)數(shù)據(jù)產(chǎn)生新的請(qǐng)求,目錄擦洗器170不提供指令使數(shù)據(jù)塊的分類變?yōu)榫植康?。例如,?dāng)分區(qū)(例如在全局相干性域)中某處的另一裝置主動(dòng)地處理該行時(shí),將產(chǎn)生對(duì)沖洗數(shù)據(jù)行的新請(qǐng)求。當(dāng)檢測(cè)到對(duì)沖洗數(shù)據(jù)的新請(qǐng)求時(shí),目錄擦洗器移到下一個(gè)地址,使得數(shù)據(jù)保持被分類為全局的。
為了實(shí)現(xiàn)沖洗操作,例如,目錄擦洗器170可包括計(jì)數(shù)器172和一個(gè)或多個(gè)比較器(例如地址比較器)174。利用比較器174來確定是否另一個(gè)處理器或I/O控制器已經(jīng)為由目錄擦洗器170向其發(fā)出沖洗指令的相同地址提供新的請(qǐng)求。例如,目錄擦洗器170保持為其已發(fā)出沖洗命令的地址的隊(duì)列或列表,并使用計(jì)數(shù)器172來確定預(yù)定時(shí)間內(nèi)接收新請(qǐng)求。即,計(jì)數(shù)器172用作使目錄擦洗器170能夠確定是否另一個(gè)處理器或I/O控制器正在使用目錄擦洗器正沖洗的數(shù)據(jù)的計(jì)時(shí)器。目錄擦洗器170可通過順序地沖洗分區(qū)中數(shù)據(jù)的不同數(shù)據(jù)行或其它尺寸的數(shù)據(jù)塊來工作。這樣,目錄擦洗器將使未使用的數(shù)據(jù)返回到局部相干性域。通過從全局域變?yōu)榫植肯喔尚杂颍诳捎玫娜只ミB帶寬上將有相應(yīng)的增加,這進(jìn)一步增強(qiáng)了可縮放性。
圖5描繪了說明使用相干性濾波的分布式存儲(chǔ)多處理器系統(tǒng)200的一個(gè)例子的框圖。系統(tǒng)200包括多個(gè)分別被表示為“單元1”、“單元2”直到“單元P”的單元202,其中P是大于或等于指示單元數(shù)目的數(shù)字的整數(shù)。單元202中的每一個(gè)可被實(shí)現(xiàn)為一個(gè)單元板,通過互連204、如背板或交叉開關(guān)電路(例如可縮放性ASIC)與其它單元202可通信地耦合。
另外,另一個(gè)互連206可與互連204耦合,用于訪問另一個(gè)包括一個(gè)或多個(gè)其它單元(未示出)的基于單元的體系結(jié)構(gòu)。其它基于單元的體系結(jié)構(gòu)可類似地配置成圖3所示和描述的?;ミB206提供可縮放性以增加額外單元(未示出),如用于實(shí)現(xiàn)較大容量的系統(tǒng)。本領(lǐng)域技術(shù)人員將明白和理解,系統(tǒng)200可采用任何數(shù)目的單元來實(shí)現(xiàn)。
I/O子系統(tǒng)208與每個(gè)單元202相關(guān)聯(lián)。I/O子系統(tǒng)208可提供用于訪問相關(guān)總線結(jié)構(gòu)(如PCI總線結(jié)構(gòu))或其它裝置的接口或路徑,如通過相應(yīng)的適配器(未示出)。I/O子系統(tǒng)還可以包括高速緩存結(jié)構(gòu)209。本領(lǐng)域技術(shù)人員將明白和理解,各種類型的I/O裝置和相關(guān)的高速緩存可被訪問或者可經(jīng)由I/O子系統(tǒng)208訪問存儲(chǔ)器。另外,I/O子系統(tǒng)208可分別與局部或全局互連218和204可通信地耦合,以便允許想要的訪問。I/O子系統(tǒng)208還可被實(shí)現(xiàn)成包括在每個(gè)相應(yīng)單元202和相應(yīng)的總線結(jié)構(gòu)之間提供接口的專用集成電路(ASIC),有一個(gè)或多個(gè)輸入/輸出裝置與相應(yīng)的總線結(jié)構(gòu)耦合。
系統(tǒng)地址空間可分布在系統(tǒng)200中的單元的任何部分。包括高速緩存和主存儲(chǔ)器的地址空間還可被局部分區(qū)為任何數(shù)目的一個(gè)或多個(gè)存儲(chǔ)區(qū)域或分區(qū)。例如,每個(gè)處理器、I/O控制器和相關(guān)的高速緩存可被分配到各自的分區(qū)。每個(gè)分區(qū)內(nèi),存儲(chǔ)地址空間還可被分配到兩個(gè)或更多邏輯分類,例如局部相干性域和全局相干性域。此外,作為對(duì)這些分類的補(bǔ)充或替代物,還可利用其它分類方法。
為簡(jiǎn)練起見,只示出單元1的內(nèi)部?jī)?nèi)容,雖然本領(lǐng)域的技術(shù)人員將明白和理解,其它各個(gè)單元202中的每個(gè)都可以類似方式來實(shí)現(xiàn)。作為選擇,相對(duì)于不同的單元202可實(shí)現(xiàn)不同的配置。
回到單元1的內(nèi)容,單元1包括與單元的主存儲(chǔ)器212耦合的控制器210。一個(gè)或多個(gè)中央處理器(CPU)214還與用于訪問存儲(chǔ)子系統(tǒng)212的控制器210相連。當(dāng)描繪四個(gè)CPU P1、P2、P3和P4時(shí),本領(lǐng)域技術(shù)人員將理解,系統(tǒng)200可包括任何數(shù)目的一個(gè)或多個(gè)CPU。控制器210還與I/O子系統(tǒng)208可通信地耦合。每個(gè)CPU 214可包括用于存儲(chǔ)供CPU局部訪問而不要求訪問存儲(chǔ)子系統(tǒng)212的數(shù)據(jù)的相關(guān)高速緩存216。CPU 214可實(shí)現(xiàn)基于目錄的、空目錄或者基于廣播窺探的高速緩存相干性協(xié)議。
在圖5所示的安排中,CPU 214和控制器210均可被看作存儲(chǔ)器訪問裝置,這些裝置可用于通過控制器210和系統(tǒng)200中分布的高速緩存216來訪問存儲(chǔ)子系統(tǒng)212中的數(shù)據(jù)??刂破?10可包括固件、配置和狀態(tài)寄存器(CSR)以及用于訪問存儲(chǔ)子系統(tǒng)212和I/O子系統(tǒng)208中數(shù)據(jù)的有序訪問隊(duì)列。處理器214、存儲(chǔ)器212和I/O子系統(tǒng)208可通信地通過互連218彼此相互耦合。存儲(chǔ)子系統(tǒng)212可包括任何數(shù)目的一個(gè)或多個(gè)存儲(chǔ)模塊,包括一個(gè)或多個(gè)DIMM(雙列直插式存儲(chǔ)模塊)或SIMM(單列直插式存儲(chǔ)模塊)存儲(chǔ)器件。如這里所描述的,存儲(chǔ)器分區(qū)可包括存儲(chǔ)子系統(tǒng)212、I/O子系統(tǒng)和一個(gè)或多個(gè)單元202的任何組合中的高速緩存216中的地址空間的所選部分。
在圖5的例子中,相干性濾波器220在互連204和206中實(shí)現(xiàn)。另外或作為選擇,相干性濾波器可在各個(gè)單元202的局部互連218中實(shí)現(xiàn)。因此可以理解,濾波提供的相干性的特定位置可與這里所示和所描述的不同。相干性濾波器220可通過選擇性地窺探相干性域來限制全局互連204和206的使用。本領(lǐng)域技術(shù)人員將明白和理解各種方法以實(shí)現(xiàn)基于這里的理論(見例如圖1-4)的相干性濾波器220??蔀槎嗵幚砥飨到y(tǒng)200的每個(gè)分區(qū)提供單獨(dú)濾波器。在每個(gè)分區(qū)內(nèi)還可以有可配置數(shù)量的相干性域。
作為一個(gè)實(shí)例,可為給定的分區(qū)定義兩個(gè)相干性域,如局部和全局相干性域。濾波器220可被實(shí)現(xiàn)為硬件、軟件或硬件和軟件的結(jié)合,如根據(jù)這里所描述的實(shí)施例中的任何一個(gè)。例如在圖5中,濾波器220可被實(shí)現(xiàn)為ASIC,如在交叉開關(guān)ASIC的端口中,其構(gòu)成每個(gè)互連204、206的一部分。這樣,相干性濾波器220通過基于在由濾波器200所提供的數(shù)據(jù)分類中被識(shí)別的相干性域,限制通過各個(gè)互連204、206的窺探通信量,在多處理器系統(tǒng)200中提供想要的可縮放性。
圖6描繪了另一個(gè)實(shí)現(xiàn)相干性濾波的多處理器系統(tǒng)250的一個(gè)例子。系統(tǒng)250例如可對(duì)應(yīng)于多處理器系統(tǒng)的一個(gè)單元或其它部分。系統(tǒng)250包括多個(gè)經(jīng)由局部互連254可通信地耦合的處理器252(表示成P1、P2、P3和P4)。當(dāng)描繪四個(gè)處理器P1、P2、P3和P4時(shí),本領(lǐng)域技術(shù)人員將理解,系統(tǒng)250可包括任何數(shù)目的一個(gè)或多個(gè)處理器。
在圖6的例子中,每個(gè)處理器252包括相關(guān)的高速緩存256。存儲(chǔ)器258也例如通過存儲(chǔ)器控制接口260與每個(gè)處理器252耦合。存儲(chǔ)器控制接口260可包括固件、一個(gè)或多個(gè)配置和狀態(tài)寄存器(CRS)和用于訪問每個(gè)存儲(chǔ)器258中數(shù)據(jù)的有序訪問隊(duì)列。每個(gè)存儲(chǔ)器258可包括一個(gè)或多個(gè)存儲(chǔ)模塊,如一個(gè)或多個(gè)DIMM或SIMM存儲(chǔ)器件。存儲(chǔ)器258為系統(tǒng)250定義共享主存儲(chǔ)器,處理器252中的任何一個(gè)可通過互連254局部地訪問。
系統(tǒng)250還包括通過相關(guān)I/O控制器266與互連254可通信地耦合的I/O子系統(tǒng)264。I/O子系統(tǒng)還可包括高速緩存結(jié)構(gòu)265。每個(gè)處理器252和I/O子系統(tǒng)264可以通過互連254和控制器266彼此局部通信。接口268將互連254與一個(gè)或多個(gè)其它互連(未示出)可通信地耦合,如對(duì)應(yīng)于多單元系統(tǒng)的交叉開關(guān)。這樣,接口268可提供到各種其它單元的訪問,這些單元可包括與處理器的安排有關(guān)的存儲(chǔ)器(局部或全局)、存儲(chǔ)器和I/O子系統(tǒng)。結(jié)果,任何存儲(chǔ)器訪問裝置,如處理器252、I/O控制器266或者主存儲(chǔ)器258可通過接口268訪問全局相干性域內(nèi)的存儲(chǔ)器。在圖6所示的安排中,存儲(chǔ)器訪問裝置可訪問存儲(chǔ)器258中的數(shù)據(jù)和處理器的高速緩存256以及與I/O子系統(tǒng)264關(guān)聯(lián)的高速緩存265。
相干性濾波器系統(tǒng)270還與每個(gè)處理器252相關(guān)聯(lián)。在圖6的例子中,相干性濾波器系統(tǒng)包括多個(gè)濾波器,表示成F1、F2、F3和F4,其中的每一個(gè)與處理器P1、P2、P3和P4中相應(yīng)的一個(gè)可操作地相關(guān)聯(lián)。例如,嵌入和集成相干性濾波器系統(tǒng)270以提供想要的相干性濾波,該濾波可被作為互連254的一部分對(duì)于每個(gè)相應(yīng)處理器252實(shí)現(xiàn)。作為一個(gè)例子,互連254由此可被實(shí)現(xiàn)成可縮放性ASIC或在存儲(chǔ)器訪問裝置之間提供想要的通信的其它電路,它包括提供想要的如這里所描述的相干性濾波的存儲(chǔ)裝置。
相干性濾波器系統(tǒng)270可用來根據(jù)預(yù)定的相干性域?yàn)榕c每個(gè)相應(yīng)處理器252相關(guān)聯(lián)的共享地址空間分類數(shù)據(jù)。例如,處理器P1、P2、P3和I/O子系統(tǒng)264可被分配到局部域,處理器P4可被分配到全局域。由相干性濾波器系統(tǒng)270所實(shí)現(xiàn)的分類例如控制窺探是否只向局部相干性域廣播或者是否向全局相干性域廣播。相干性濾波器系統(tǒng)270可根據(jù)這里所示的和所描述的(見例如圖1-4)任何方法來實(shí)現(xiàn)。
本領(lǐng)域技術(shù)人員將明白和理解,多處理器系統(tǒng)250實(shí)現(xiàn)想要的可縮放性,因?yàn)闉樘峁┙训幕趶V播的窺探高速緩存相干性協(xié)議降低了開銷。另外,大量的處理器可被互連而不會(huì)因?yàn)橄喔尚蚤_銷而造成系統(tǒng)結(jié)構(gòu)過載。該方法還不要求利用主存儲(chǔ)器258用于實(shí)現(xiàn)相干性濾波器系統(tǒng)270,相對(duì)于用來實(shí)現(xiàn)目錄的其它方法,該方法提供了減少的等待時(shí)間和改進(jìn)的可縮放性。
考慮到上述結(jié)構(gòu)和功能特征,參照?qǐng)D7將會(huì)更好地理解某些方法。要明白和理解,所述動(dòng)作在其它實(shí)施例中可以以不同的順序發(fā)生和/或與其它動(dòng)作同時(shí)發(fā)生。此外,不是要求所有所述特征以實(shí)現(xiàn)一種方法。還要理解,以下方法可由硬件(例如一個(gè)或多個(gè)集成電路或包含多個(gè)微處理器的電路板)、軟件(例如運(yùn)行在一個(gè)或多個(gè)處理器或控制器上的可執(zhí)行指令)或其任何組合來實(shí)現(xiàn)。
圖7描繪了一種方法300,該方法包括基于與數(shù)據(jù)塊相關(guān)的地址識(shí)別用于數(shù)據(jù)塊的相干性域,被表示成310。該方法還包括廣播至少一個(gè)窺探,用于基于被識(shí)別的相干性域和地址來訪問相關(guān)地址空間的某區(qū)域內(nèi)的數(shù)據(jù)塊,被表示成320。
上面所描述的是本發(fā)明的一些實(shí)例。當(dāng)然不可能為了描述本發(fā)明而描述組件或方法的每一種可能的組合,但本領(lǐng)域的普通技術(shù)人員將理解,本發(fā)明的許多其它組合和置換都是可能的。因此,本發(fā)明意在包含落入所附權(quán)利要求的實(shí)質(zhì)和范圍內(nèi)的所有這些變化、修改和變更。
權(quán)利要求
1.一種系統(tǒng),包括相干性濾波器(12,52,100,150,220,270),它提供基于數(shù)據(jù)的標(biāo)識(shí)符來識(shí)別在關(guān)聯(lián)地址空間中所述數(shù)據(jù)的相干性域的信息;以及窺探引擎(14,54,116,160),它被配置成對(duì)基于所述信息和所述標(biāo)識(shí)符所識(shí)別的相干性域中的數(shù)據(jù)進(jìn)行窺探。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述相干性濾波器(12,52,100,150,220,270)還包括提供分類數(shù)據(jù)的目錄(12,52,154),所述分類數(shù)據(jù)基于所述標(biāo)識(shí)符在所述數(shù)據(jù)的地址空間中識(shí)別至少兩個(gè)相干性域中的一個(gè),所述窺探引擎(14,54,116,160)對(duì)基于所述分類數(shù)據(jù)和所述標(biāo)識(shí)符所識(shí)別的相干性域中的數(shù)據(jù)進(jìn)行窺探。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述地址空間包括分區(qū),所述分區(qū)具有至少兩個(gè)可通信地相互耦合的子區(qū)域以形成該分區(qū)的共享地址空間,所述分區(qū)的所述至少兩個(gè)子區(qū)域中的每一個(gè)對(duì)應(yīng)于至少兩個(gè)相干性域中相應(yīng)的一個(gè),其中所述至少兩個(gè)相干性域包括局部相干性域和全局相干性域。
4.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述窺探引擎(14,54,116,160)基于所述相干性濾波器(12,52,100,150,220,270)提供的所述信息和基于識(shí)別所述至少兩個(gè)子區(qū)域中每一個(gè)中的數(shù)據(jù)的一組潛在擁有者的信息,有選擇地將窺探指向所述至少兩個(gè)子區(qū)域之一的存儲(chǔ)區(qū),所述相干性濾波器所提供的信息識(shí)別所述數(shù)據(jù)被分配到所述至少兩個(gè)相干性域中的哪一個(gè)。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述相干性濾波器(12,52,100,150,220,270)還包括多個(gè)比較器(112),每個(gè)比較器可用來提供識(shí)別所述地址空間的至少兩個(gè)子區(qū)域之一的邏輯輸出,所述地址空間的所述至少兩個(gè)子區(qū)域中的每一個(gè)定義相應(yīng)的相干性域。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述相干性濾波器(12,15,100,150,220,270)還包括提供標(biāo)記地址以基于所述標(biāo)識(shí)符識(shí)別存儲(chǔ)塊的映射系統(tǒng)(152),所述存儲(chǔ)塊包括數(shù)據(jù);以及提供分類數(shù)據(jù)的目錄(12,52,154),所述分類數(shù)據(jù)基于所述標(biāo)記地址識(shí)別所述存儲(chǔ)塊的所述地址空間中至少兩個(gè)相干性域中的一個(gè),所述窺探引擎(14,54,116,160)有選擇地對(duì)基于所述分類數(shù)據(jù)和所述標(biāo)識(shí)符的數(shù)據(jù)進(jìn)行窺探。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述目錄(12,52,154)還包括目錄存儲(chǔ)器(156),提供識(shí)別所述地址空間中的至少兩個(gè)相干性域中的一個(gè)的第一分類數(shù)據(jù);以及目錄高速緩存(162),提供識(shí)別基于所述標(biāo)記地址的所述數(shù)據(jù)塊的擁有者的第二分類數(shù)據(jù),由識(shí)別所述數(shù)據(jù)塊的擁有者的目錄高速緩存結(jié)構(gòu)所提供的所述分類數(shù)據(jù)比所述目錄存儲(chǔ)器所提供的所述分類數(shù)據(jù)具有更大的確切性。
8.如權(quán)利要求6所述的系統(tǒng),其特征在于還包括解釋器/控制器(158),它向所述窺探引擎(114,54,116,160)提供所解釋的分類數(shù)據(jù)以允許對(duì)所述數(shù)據(jù)的窺探,所述解釋器/控制器基于所述窺探引擎接收的窺探響應(yīng)來更新所述目錄(12,52,1 54),從而為所述至少兩個(gè)相干性域中的每一個(gè)保持當(dāng)前分類數(shù)據(jù)。
9.如權(quán)利要求6所述的系統(tǒng),其特征在于還包括擦洗器系統(tǒng)(170),它為所述地址空間的全局存儲(chǔ)區(qū)域中的數(shù)據(jù)塊提供指令,以便將所述數(shù)據(jù)塊的相干性域修改成定義所述地址空間的局部子區(qū)域的至少兩個(gè)相干性域中的一個(gè)。
10.一種分布式存儲(chǔ)、多處理器系統(tǒng)(200,250),包括權(quán)利要求1的系統(tǒng),所述多處理器系統(tǒng)具有地址空間的至少一個(gè)分區(qū),所述至少一個(gè)分區(qū)包括多個(gè)處理器(214,252),所述多個(gè)處理器中的每個(gè)具有至少一個(gè)相關(guān)聯(lián)的高速緩存(216,256),每個(gè)處理器及其至少一個(gè)相關(guān)聯(lián)的高速緩存被分配到至少兩個(gè)相干性域中的一個(gè),所述至少一個(gè)分區(qū)包括可通信地相互耦合的地址空間的至少兩個(gè)子區(qū)域,從而為所述分區(qū)提供共享的地址空間,所述分區(qū)的所述至少兩個(gè)子區(qū)域中的每一個(gè)對(duì)應(yīng)于所述至少兩個(gè)相干性域中相應(yīng)的一個(gè)。
全文摘要
公開了用于相干性濾波的系統(tǒng)和方法。系統(tǒng)可包括提供基于數(shù)據(jù)標(biāo)識(shí)符在關(guān)聯(lián)地址空間中識(shí)別數(shù)據(jù)的相干性域的信息的相干性濾波器(12,52,100,150,220,270)。窺探引擎(14,54,116,160)被配置成對(duì)基于信息和標(biāo)識(shí)符所識(shí)別的相干性域中的數(shù)據(jù)進(jìn)行窺探。
文檔編號(hào)G06F12/00GK1690987SQ20051006963
公開日2005年11月2日 申請(qǐng)日期2005年4月22日 優(yōu)先權(quán)日2004年4月23日
發(fā)明者M·肖 申請(qǐng)人:惠普開發(fā)有限公司