亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

具有儲(chǔ)存遠(yuǎn)程快取存在信息的處理器高速緩存的計(jì)算機(jī)系統(tǒng)的制作方法

文檔序號(hào):6417358閱讀:165來(lái)源:國(guó)知局
專利名稱:具有儲(chǔ)存遠(yuǎn)程快取存在信息的處理器高速緩存的計(jì)算機(jī)系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明主要涉及一種計(jì)算機(jī)系統(tǒng),特別是涉及一種在計(jì)算機(jī)系統(tǒng)內(nèi)的遠(yuǎn)程快取(remote caching)。
背景技術(shù)
一般計(jì)算機(jī)系統(tǒng)包括一個(gè)或多個(gè)高速緩存以減少處理器存取內(nèi)存的延遲時(shí)間。一般來(lái)說(shuō),高速緩存可儲(chǔ)存一個(gè)或多個(gè)區(qū)段,而這些區(qū)段的每一個(gè)分別為儲(chǔ)存在計(jì)算機(jī)系統(tǒng)的內(nèi)存系統(tǒng)中的對(duì)應(yīng)地址的數(shù)據(jù)復(fù)本。
由于已知區(qū)段可儲(chǔ)存于一個(gè)或多個(gè)高速緩存內(nèi),更因?yàn)榭烊?fù)本之一可根據(jù)內(nèi)存系統(tǒng)內(nèi)的復(fù)本加以修改,因此可使計(jì)算機(jī)系統(tǒng)的高速緩存和內(nèi)存系統(tǒng)之間維持其同步。如果根據(jù)預(yù)設(shè)的同步協(xié)議(coherency protocol)以區(qū)段的其它快取復(fù)本反映一個(gè)區(qū)段的更新時(shí),則可維持其同步。各種特定的同步協(xié)議已為人所公知。如此處所述,“區(qū)段”為儲(chǔ)存在連續(xù)內(nèi)存地址內(nèi)的字節(jié)的集合,這些地址在同步的目的上被視為單元。在某些實(shí)施例中,區(qū)段也可為高速緩存內(nèi)分配與解除分配的單位。區(qū)段內(nèi)的字節(jié)數(shù)目可根據(jù)設(shè)計(jì)選擇而不同,并且可為任何大小。例如,通常使用32字節(jié)及64字節(jié)的區(qū)段。
許多同步協(xié)議利用探測(cè)消息(probe)在計(jì)算機(jī)系統(tǒng)內(nèi)各種高速緩存之間通信。一般而言,“探測(cè)消息”是一種從計(jì)算機(jī)系統(tǒng)內(nèi)協(xié)調(diào)點(diǎn)(coherency point)傳送到計(jì)算機(jī)系統(tǒng)內(nèi)的一個(gè)或多個(gè)高速緩存的消息,用以測(cè)定高速緩存是否具有區(qū)段的復(fù)本以及視需要時(shí)指示高速緩存應(yīng)將該區(qū)段置入的狀態(tài)。協(xié)調(diào)點(diǎn)可傳送探測(cè)消息以響應(yīng)來(lái)自組件(例如,處理器)的讀取或?qū)懭朐搮^(qū)段的命令。各探測(cè)消息接收器可對(duì)探測(cè)消息產(chǎn)生響應(yīng),并且一旦接收探測(cè)響應(yīng)之后即完成該命令。協(xié)調(diào)點(diǎn)是負(fù)責(zé)維持同步的組件,例如內(nèi)存系統(tǒng)的內(nèi)存控制器。
計(jì)算機(jī)系統(tǒng)通常采用廣播高速緩存同步協(xié)議(broadcast cachecoherency protocol)或基于目錄的高速緩存同步協(xié)議(directorybased cache coherency protocol)的其中之一。在采用廣播協(xié)議的系統(tǒng)中,探測(cè)消息被廣播到全部處理器(或高速緩存子系統(tǒng))。當(dāng)具有數(shù)據(jù)共享復(fù)本的子系統(tǒng)觀察到來(lái)自專用存取該區(qū)段的命令的探測(cè)消息時(shí),則其復(fù)本為無(wú)效。同理,當(dāng)目前擁有數(shù)據(jù)區(qū)段的子系統(tǒng)觀察到對(duì)應(yīng)該區(qū)段的探測(cè)消息時(shí),則擁有的子系統(tǒng)一般以提供數(shù)據(jù)給請(qǐng)求者以及需要時(shí)使其復(fù)本無(wú)效作為響應(yīng)。
比較之下,采用基于目錄的協(xié)議的系統(tǒng)則維持包含指示現(xiàn)存數(shù)據(jù)快取復(fù)本的信息的目錄。目錄信息用于確定為了產(chǎn)生特定的同步作用而必需被傳送探測(cè)消息的特定子系統(tǒng)(其可包含數(shù)據(jù)的快取復(fù)本),而并非無(wú)條件地廣播該探測(cè)消息。例如,目錄可包含指示具有區(qū)段數(shù)據(jù)共享復(fù)本的各種子系統(tǒng)的信息。為響應(yīng)專用存取該區(qū)段的命令,無(wú)效探測(cè)數(shù)據(jù)可被傳送至共享子系統(tǒng)。目錄也可含指示目前擁有特定數(shù)據(jù)區(qū)段的子系統(tǒng)的信息。因此,命令的響應(yīng)可另外包括使擁有子系統(tǒng)向請(qǐng)求子系統(tǒng)傳送數(shù)據(jù)的探測(cè)消息。許多不同的基于目錄的高速緩存同步協(xié)議已為所屬領(lǐng)域所公知。
由于在采用廣播快取同步協(xié)議的系統(tǒng)中,探測(cè)消息必須廣播至所有其它處理器,故與處理器互連的網(wǎng)絡(luò)相關(guān)的頻寬立即成為其性能的限制因素,特別是對(duì)采用大量處理器的系統(tǒng)而言或是當(dāng)在短時(shí)間內(nèi)必須傳輸大量探測(cè)消息時(shí)情況更為嚴(yán)重。在該環(huán)境之下,由于采用目錄協(xié)議的系統(tǒng)的網(wǎng)絡(luò)流量較低并且可避免網(wǎng)絡(luò)頻寬的瓶頸,故整體而言可產(chǎn)生較高的性能。
當(dāng)基于目錄的系統(tǒng)可使用更高效率的快取同步協(xié)議時(shí),通常需要額外硬件的配合。目錄機(jī)制通常包括可在專用集成電路(ASIC)或其它與處理器分離的半定制芯片上實(shí)現(xiàn)的目錄高速緩存。當(dāng)目錄高速緩存在單獨(dú)芯片上實(shí)現(xiàn)時(shí),可能會(huì)增加整體系統(tǒng)的成本,以及增加所需板件面積、功耗和冷卻要求。另一方面,將目錄高速緩存納入與處理器核心相同的芯片上的方法也無(wú)法滿足需要,特別是意圖在單處理器或多處理器系統(tǒng)皆可使用的商用微處理器尤其如此。當(dāng)用于單處理器系統(tǒng)時(shí),目錄高速緩存可能不被使用,因而浪費(fèi)寶貴的芯片區(qū)域并且由于降低產(chǎn)率而增加其成本。
另一種應(yīng)用于共享內(nèi)存計(jì)算機(jī)系統(tǒng)中以降低內(nèi)存延遲時(shí)間的技術(shù)稱之為遠(yuǎn)程快取(remote caching)。在采用遠(yuǎn)程快取的系統(tǒng)中,依附于一個(gè)節(jié)點(diǎn)的部分系統(tǒng)內(nèi)存可被分配用于與映射到另一節(jié)點(diǎn)的內(nèi)存位置相對(duì)應(yīng)的快取數(shù)據(jù)。在遠(yuǎn)程內(nèi)存的存取延遲時(shí)間遠(yuǎn)大于本地內(nèi)存的延遲時(shí)間的系統(tǒng)中,遠(yuǎn)程快取的效果最為明顯。
在執(zhí)行遠(yuǎn)程快取的系統(tǒng)中,一般為利用儲(chǔ)存器機(jī)制以確認(rèn)遠(yuǎn)程高速緩存內(nèi)的線路或區(qū)段。如上述,將此功能納入意圖配置于單處理器環(huán)境內(nèi)的集成電路,將導(dǎo)致芯片面積的浪費(fèi)以及制造成本增加。

發(fā)明內(nèi)容
本發(fā)明揭示一種具有儲(chǔ)存遠(yuǎn)程快取存在信息的處理器高速緩存的計(jì)算機(jī)系統(tǒng)。在一個(gè)實(shí)施例中,儲(chǔ)存多個(gè)存在向量以指示映射到另一節(jié)點(diǎn)的特定數(shù)據(jù)區(qū)段是否正被遠(yuǎn)程快取。此遠(yuǎn)程快取存在向量可儲(chǔ)存在結(jié)合處理器核心的高速緩存子系統(tǒng)的指定位置,而不是將存在向量?jī)?chǔ)存于專用儲(chǔ)存器內(nèi),該子系統(tǒng)例如第二級(jí)高速緩存(L2 cache)。例如,可利用高速緩存子系統(tǒng)的指定路徑作為遠(yuǎn)程快取存在向量的儲(chǔ)存位置,而高速緩存的其余路徑則用于儲(chǔ)存一般的處理器數(shù)據(jù)。在一個(gè)特定的實(shí)施例中,僅干凈的(clean)、共享的數(shù)據(jù)區(qū)段被遠(yuǎn)程快取。新數(shù)據(jù)區(qū)段可遠(yuǎn)程快取以響應(yīng)來(lái)自高速緩存子系統(tǒng)的驅(qū)逐(eviction)。在另一實(shí)施例中,也可利用高速緩存子系統(tǒng)的額外項(xiàng)目(entries)來(lái)儲(chǔ)存目錄項(xiàng),以過(guò)濾探測(cè)命令及響應(yīng)流量。
通過(guò)將高速緩存子系統(tǒng)用于遠(yuǎn)程快取存在信息的存儲(chǔ),可避免單獨(dú)目錄儲(chǔ)存器的需求。其結(jié)果為,可降低整體的價(jià)格,以及所需板件面積、功耗和冷卻的需求。此外,根據(jù)該子系統(tǒng)配置于單處理器環(huán)境或多處理器環(huán)境的不同而選擇性地使能用于儲(chǔ)存遠(yuǎn)程快取存在信息的高速緩存子系統(tǒng)的也可在一些具體實(shí)施例中采用。因此,當(dāng)配置于單處理器環(huán)境時(shí),高速緩存子系統(tǒng)的儲(chǔ)存位置可專用地應(yīng)用于處理器-快取操作,而可避免專用目錄儲(chǔ)存器的浪費(fèi)(即,不利用)。


通過(guò)閱讀下列詳細(xì)說(shuō)明及參考附圖之后可更加清楚本發(fā)明的其它目的和優(yōu)點(diǎn)。
圖1示出了計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例的方框圖。
圖2示出了數(shù)據(jù)包定義的一個(gè)實(shí)施例的圖表。
圖3示出了處理節(jié)點(diǎn)的一個(gè)實(shí)施例的方框圖。
圖4示出了內(nèi)存控制器的一個(gè)實(shí)施例的方框圖。
圖5示出了高速緩存子系統(tǒng)的方框圖。
圖6示出了公知高速緩存配置的一個(gè)實(shí)施例。
圖7示出了直接映射目錄快取結(jié)構(gòu)。
圖8和圖9示出了利用目錄項(xiàng)來(lái)過(guò)濾探測(cè)命令及響應(yīng)流量的方法。
圖10示出了利用4路結(jié)構(gòu)儲(chǔ)存目錄項(xiàng)的高速緩存配置方法。
圖11和圖12示出了另一種目錄項(xiàng)的格式。
圖13示出了含遠(yuǎn)程高速緩存的計(jì)算機(jī)系統(tǒng)的另一實(shí)施例。
圖14示出了處理節(jié)點(diǎn)的另一實(shí)施例的方框圖。
圖15示出了其中利用指定路徑來(lái)儲(chǔ)存現(xiàn)有向量的高速緩存子系統(tǒng)的結(jié)構(gòu)。
圖16示出了檢索給定存在位的另一種格式。
本發(fā)明可有各種改良和替換形式,因此下面將通過(guò)附圖中的例子顯示本發(fā)明的具體實(shí)施例并將對(duì)其詳細(xì)說(shuō)明。然而,應(yīng)該了解這些附圖及詳細(xì)說(shuō)明并非意在將本發(fā)明局限于所揭示的特定形式,相反地,本發(fā)明的全部的改良、等效和替換均涵蓋于本發(fā)明所附權(quán)利要求的精神和范圍內(nèi)。
具體實(shí)施例方式
現(xiàn)在參考圖1,其顯示計(jì)算機(jī)系統(tǒng)10的一個(gè)具體實(shí)施例。計(jì)算機(jī)系統(tǒng)10包含多個(gè)處理節(jié)點(diǎn)12A、12B、12C和12D。各處理節(jié)點(diǎn)經(jīng)由各自的內(nèi)存控制器16A至16D而連接到各自的內(nèi)存14A至14D。此外,各處理節(jié)點(diǎn)12A至12D包含用于和其它處理節(jié)點(diǎn)12A至12D通信的接口邏輯18A至18D。例如,處理節(jié)點(diǎn)12A包含和處理節(jié)點(diǎn)12B及12C通信的接口邏輯18A。同理,處理節(jié)點(diǎn)12B包含和處理節(jié)點(diǎn)12A及12D通信的接口邏輯18B,依此類推。在圖1的實(shí)施例中,處理節(jié)點(diǎn)12D經(jīng)由接口邏輯18D而和其所連接的輸出/輸入(I/O)裝置20A相通信,并且輸出/輸入裝置20A進(jìn)一步連接至第二輸出/輸入裝置20B。其它處理節(jié)點(diǎn)可依類似方法和其它輸出/輸入裝置相互通信?;蛘?,處理節(jié)點(diǎn)可和連接至輸出/輸入總線的輸出/輸入橋接器相通信。
計(jì)算機(jī)系統(tǒng)10可實(shí)現(xiàn)一個(gè)基于數(shù)據(jù)包的鏈接以用于節(jié)點(diǎn)間通信。在所描述的實(shí)施例中,該鏈接以多組單向線路來(lái)實(shí)現(xiàn)(例如,利用線路24A從處理節(jié)點(diǎn)12A傳輸數(shù)據(jù)包至處理節(jié)點(diǎn)12B,以及利用線路24B從處理節(jié)點(diǎn)12B傳輸數(shù)據(jù)包至處理節(jié)點(diǎn)12A)。其它組線路24C至24H用于在圖1中所示的其它處理節(jié)點(diǎn)之間傳輸數(shù)據(jù)包。處理節(jié)點(diǎn)間通信的鏈接可為快取同步的方式,或?yàn)檩敵?輸入裝置20A至20B(以及需要時(shí)其它的輸出/輸入裝置)間的菊鏈構(gòu)造(daisy-chain structure)的不同步方式。應(yīng)注意,從處理節(jié)點(diǎn)傳送至另一節(jié)點(diǎn)的數(shù)據(jù)包可通過(guò)一個(gè)或多個(gè)中間節(jié)點(diǎn)。例如,由處理節(jié)點(diǎn)12A傳送至處理節(jié)點(diǎn)12D的數(shù)據(jù)包可經(jīng)過(guò)如圖1中所示的處理節(jié)點(diǎn)12B或處理節(jié)點(diǎn)12C的其中之一??衫萌魏芜m合的路由算法。計(jì)算機(jī)系統(tǒng)10的其它實(shí)施例可包括較圖1所示實(shí)施例更多或更少的處理節(jié)點(diǎn)。此外,在其它實(shí)施例中各個(gè)處理節(jié)點(diǎn)也可通過(guò)點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)而連接至其它所有處理節(jié)點(diǎn)。
如下面所述,除所述的內(nèi)存控制器和接口邏輯之外,各處理節(jié)點(diǎn)12A至12D可包括一種或多種處理器及相關(guān)的高速緩存。大體而言,處理節(jié)點(diǎn)至少包含一個(gè)處理器,并且在需要時(shí),可選擇性地包含與內(nèi)存和其它邏輯器通信的內(nèi)存控制器。
內(nèi)存14A至14D可包括任何適合的存儲(chǔ)裝置。例如,內(nèi)存14A至14D可包含一個(gè)或多個(gè)隨機(jī)存取內(nèi)存總線動(dòng)態(tài)隨機(jī)存取內(nèi)存(RAMBUSDRAMs;RDRAMs)、同步動(dòng)態(tài)隨機(jī)存取內(nèi)存(SDRAMs)、動(dòng)態(tài)隨機(jī)存取內(nèi)存(DRAM)、靜態(tài)隨機(jī)存取內(nèi)存(static RAM)等。計(jì)算機(jī)系統(tǒng)10的地址空間在內(nèi)存14A至14D中劃分。各處理節(jié)點(diǎn)12A至12D可包括用于決定何內(nèi)存14A至14D映射到何地址的內(nèi)存配置圖,以及因而決定特定地址的內(nèi)存請(qǐng)求應(yīng)路由到處理節(jié)點(diǎn)12A至12D的哪一個(gè)。在一個(gè)實(shí)施例中,在計(jì)算機(jī)系統(tǒng)10內(nèi)地址的同步點(diǎn)為內(nèi)存控制器16A至16D,這些內(nèi)存控制器16A至16D連接到對(duì)應(yīng)于該地址的內(nèi)存儲(chǔ)存字節(jié)。內(nèi)存控制器16A至16D可包括用來(lái)與內(nèi)存14A至14D接口的控制電路。此外,內(nèi)存控制器16A至16D可包括排列內(nèi)存請(qǐng)求的請(qǐng)求隊(duì)列。
通常,接口邏輯18A至18D可包括從鏈接接收數(shù)據(jù)包并緩沖在鏈接上傳送的數(shù)據(jù)包的緩沖器。計(jì)算機(jī)系統(tǒng)10可利用任何適合的流程控制機(jī)制以傳送數(shù)據(jù)包。
輸出/輸入裝置20A至20B可為任何需要的外圍設(shè)備。例如,輸出/輸入裝置20A至20B可包括網(wǎng)絡(luò)適配卡、視頻加速卡、音頻卡、硬盤(pán)或軟盤(pán)驅(qū)動(dòng)器或驅(qū)動(dòng)控制器、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)適配器和電話卡、調(diào)制解調(diào)器、聲卡以及各種數(shù)據(jù)捕獲卡,例如,通用接口總線(GPIB)或現(xiàn)場(chǎng)總線接口卡。
計(jì)算機(jī)系統(tǒng)10的處理節(jié)點(diǎn)12A至12D間的通信需要時(shí)可利用各種特定基于數(shù)據(jù)包的消息而調(diào)節(jié)。圖2的表38為根據(jù)計(jì)算機(jī)系統(tǒng)10內(nèi)同步鏈接的一個(gè)實(shí)施例,顯示所采用的一組基于數(shù)據(jù)包的消息。也可采用其它的實(shí)施例,包括采用其它適合的數(shù)據(jù)包定義的實(shí)施例、或采用基于總線的通信機(jī)制的實(shí)施例。
如圖2所示,可利用ReadSized、RdBlk、RdBlkS或RdBlkMod命令中的一個(gè)來(lái)開(kāi)始讀取事務(wù)。ReadSized命令可用于非快取的讀取或除區(qū)段大小之外數(shù)據(jù)的讀取。所讀取數(shù)據(jù)的數(shù)量編碼到ReadSized命令數(shù)據(jù)包中。讀取區(qū)段時(shí)可利用RdBlk命令,除非(i)需要該區(qū)段的可寫(xiě)入復(fù)本,在此情況下可利用RdBlkMod命令;或(ii)需要該區(qū)段的復(fù)本,但已知無(wú)改變?cè)搮^(qū)段的意圖,在此情況下可利用RdBlkS命令。一般而言,適當(dāng)?shù)淖x取命令是從開(kāi)始事務(wù)的來(lái)源傳送至擁有對(duì)應(yīng)于該區(qū)段的內(nèi)存的目標(biāo)節(jié)點(diǎn)。目標(biāo)節(jié)點(diǎn)可傳送Probe命令至系統(tǒng)內(nèi)其它節(jié)點(diǎn)以維持其同步。在某些情況下,探測(cè)命令可導(dǎo)致該區(qū)段在某些節(jié)點(diǎn)中的狀態(tài)的改變,且若存在該區(qū)段的已更新復(fù)本,將其傳送至來(lái)源節(jié)點(diǎn)。接收到探測(cè)命令的各節(jié)點(diǎn)傳送ProbeResp命令數(shù)據(jù)包至該來(lái)源節(jié)點(diǎn)。若探測(cè)節(jié)點(diǎn)具有讀取數(shù)據(jù)(例如,污染(dirty)數(shù)據(jù))的更新復(fù)本,則節(jié)點(diǎn)會(huì)傳送RdResponse響應(yīng)數(shù)據(jù)包及該污染數(shù)據(jù)。此外,目標(biāo)節(jié)點(diǎn)內(nèi)的內(nèi)存控制器將利用后面跟著數(shù)據(jù)包內(nèi)數(shù)據(jù)的RdResponse響應(yīng)數(shù)據(jù)包而傳送所請(qǐng)求讀取的數(shù)據(jù)。若來(lái)源節(jié)點(diǎn)接收到來(lái)自探測(cè)節(jié)點(diǎn)的RdResponse響應(yīng)數(shù)據(jù)包,則使用該讀取數(shù)據(jù)。否則,使用該來(lái)自該目標(biāo)節(jié)點(diǎn)的數(shù)據(jù)。一旦在來(lái)源節(jié)點(diǎn)內(nèi)接收到各探測(cè)響應(yīng)和讀取數(shù)據(jù),則來(lái)源節(jié)點(diǎn)傳送SrcDone響應(yīng)數(shù)據(jù)包至目標(biāo)節(jié)點(diǎn),以作為終止事務(wù)的正面應(yīng)答。傳送污染數(shù)據(jù)的節(jié)點(diǎn)也可傳送MemCancel響應(yīng)數(shù)據(jù)包至目標(biāo)節(jié)點(diǎn),以試圖通過(guò)所請(qǐng)求讀取數(shù)據(jù)的目標(biāo)節(jié)點(diǎn)取消傳送動(dòng)作。
可利用后面跟隨對(duì)應(yīng)數(shù)據(jù)包的WrSized或VicBlk命令而開(kāi)始寫(xiě)入事務(wù)。WrSized命令可用于非快取的寫(xiě)入或除區(qū)段大小外的數(shù)據(jù)的寫(xiě)入。為維持WrSized命令的同步,目標(biāo)節(jié)點(diǎn)可向系統(tǒng)中其它每個(gè)節(jié)點(diǎn)傳送Probe命令。為響應(yīng)Probe命令,各探測(cè)節(jié)點(diǎn)傳送ProbeResp響應(yīng)數(shù)據(jù)包至該目標(biāo)節(jié)點(diǎn)。若探測(cè)節(jié)點(diǎn)儲(chǔ)存污染數(shù)據(jù),則探測(cè)節(jié)點(diǎn)以RdResponse響應(yīng)數(shù)據(jù)包及污染數(shù)據(jù)作為響應(yīng)。依此方法,通過(guò)WrSized命令更新的區(qū)段送返至內(nèi)存控制器,而和WrSized命令所提供的數(shù)據(jù)合并。內(nèi)存控制器在接收來(lái)自各探測(cè)節(jié)點(diǎn)的探測(cè)響應(yīng)之后,傳送TgtDone響應(yīng)數(shù)據(jù)包至來(lái)源節(jié)點(diǎn)以作為終止事務(wù)的正面應(yīng)答。來(lái)源節(jié)點(diǎn)則以SrcDone響應(yīng)數(shù)據(jù)包作為響應(yīng)。
已由節(jié)點(diǎn)修改并正在節(jié)點(diǎn)的高速緩存內(nèi)被取代的犧牲區(qū)段(victim block)利用VicBlk命令傳送回內(nèi)存。VicBlk命令不需要探測(cè)消息。因此,當(dāng)目標(biāo)內(nèi)存控制器準(zhǔn)備將犧牲區(qū)段數(shù)據(jù)交付給內(nèi)存時(shí),目標(biāo)內(nèi)存控制器傳送TgtDone響應(yīng)數(shù)據(jù)包至犧牲區(qū)段的來(lái)源節(jié)點(diǎn)。來(lái)源節(jié)點(diǎn)以SrcDone響應(yīng)數(shù)據(jù)包或MemCancel響應(yīng)數(shù)據(jù)包其中之一作為答復(fù),其中,該ScrDone響應(yīng)數(shù)據(jù)包表示數(shù)據(jù)必須提交,而該MemCancel響應(yīng)數(shù)據(jù)包則表示VicBlk命令的傳送及TgtDone響應(yīng)數(shù)據(jù)包的接收之間的數(shù)據(jù)已無(wú)效(例如,響應(yīng)一介入的探測(cè)消息)。
為了在不可寫(xiě)入狀態(tài)中獲得由來(lái)源節(jié)點(diǎn)儲(chǔ)存的區(qū)段的寫(xiě)入許可,來(lái)源節(jié)點(diǎn)可傳送ChangetoDirty命令數(shù)據(jù)包。以ChangetoDirty命令開(kāi)始的事務(wù)除了目標(biāo)節(jié)點(diǎn)不回傳數(shù)據(jù)之外,其余和寫(xiě)入操作相類似。若來(lái)源節(jié)點(diǎn)企圖更新整個(gè)區(qū)段,則可使用ValidateBlk命令以取得未由來(lái)源節(jié)點(diǎn)所儲(chǔ)存的區(qū)段的寫(xiě)入許可。此類事務(wù)中沒(méi)有數(shù)據(jù)被傳送到來(lái)源節(jié)點(diǎn),但除此之外其操作類似讀取的事務(wù)。
目標(biāo)可使用TgtStart響應(yīng)來(lái)表示事務(wù)已激活(例如,要求進(jìn)行其后的事務(wù))。Nop信息數(shù)據(jù)包是可使用的無(wú)操作(no-operation)數(shù)據(jù)包,以例如在節(jié)點(diǎn)間傳送緩沖空閑指示。廣播命令可用于在節(jié)點(diǎn)間廣播消息(例如,廣播命令可用于分配中斷)。最后,在需要結(jié)構(gòu)同步的情況下(例如,錯(cuò)誤檢測(cè)、重置、初始化等),可使用同步信息數(shù)據(jù)包。應(yīng)注意在其它實(shí)施例中,根據(jù)需要可使用其它類型的命令及相關(guān)的同步協(xié)議。
下面參考圖3,其顯示示例性處理節(jié)點(diǎn)12A的一個(gè)實(shí)施例的方框圖。對(duì)應(yīng)于圖1的電路部分有相同的組件符號(hào)。處理節(jié)點(diǎn)12A包括內(nèi)存控制器16A、接口邏輯18A、處理器核心50、高速緩存子系統(tǒng)52以及數(shù)據(jù)包處理邏輯58。需要時(shí),處理節(jié)點(diǎn)12A也可包括一個(gè)或多個(gè)額外的處理器核心54及高速緩存子系統(tǒng)56。在一個(gè)實(shí)施例中,此處理節(jié)點(diǎn)12A的說(shuō)明性功能可納入單個(gè)集成電路。處理節(jié)點(diǎn)12B至12D可具有類似的構(gòu)造。
一般而言,數(shù)據(jù)包處理邏輯58配置為響應(yīng)在與處理節(jié)點(diǎn)12A連接的鏈接上所接收的控制數(shù)據(jù)包、產(chǎn)生控制數(shù)據(jù)包以響應(yīng)處理器核心50及54和/或高速緩存子系統(tǒng)52及56、產(chǎn)生探測(cè)命令及響應(yīng)數(shù)據(jù)包以響應(yīng)內(nèi)存控制器16A因服務(wù)而選擇的事務(wù)、以及選擇數(shù)據(jù)包路徑以決定何節(jié)點(diǎn)12A為通過(guò)接口邏輯18A至其它節(jié)點(diǎn)的中間節(jié)點(diǎn)。接口邏輯18A可包括接收數(shù)據(jù)包的邏輯以及使數(shù)據(jù)包與數(shù)據(jù)包處理邏輯58所使用的內(nèi)部時(shí)鐘同步的邏輯。
高速緩存子系統(tǒng)52及56包括配置以儲(chǔ)存數(shù)據(jù)區(qū)段的高速的高速緩存。高速緩存子系統(tǒng)52及56可集成在各自的處理器核心50及54內(nèi)。或者,高速緩存子系統(tǒng)52及56需要時(shí)可以背側(cè)(backside)高速緩存配置或直插(in-line)配置連接至處理器核心52及56。再者,高速緩存子系統(tǒng)52及56可實(shí)現(xiàn)為級(jí)聯(lián)式高速緩存。較靠近處理器核心50及54的高速緩存(在層級(jí)內(nèi))需要時(shí)可集成到處理器核心50及54中。在一個(gè)實(shí)施例中,高速緩存子系統(tǒng)52及56每個(gè)代表第二級(jí)高速緩存(L2)結(jié)構(gòu)。
處理器核心50及54包括根據(jù)預(yù)設(shè)命令集執(zhí)行命令的電路。例如,可選擇使用x86命令集的架構(gòu)?;蛘?,可選擇Alpha、PowerPC或任何其它命令集的架構(gòu)。一般而言,處理器核心50及54分別存取高速緩存子系統(tǒng)52及56的數(shù)據(jù)和命令。若偵測(cè)出高速緩存錯(cuò)誤,則產(chǎn)生讀取請(qǐng)求并且將該讀取請(qǐng)求傳送至該錯(cuò)誤區(qū)段所映射的節(jié)點(diǎn)中的內(nèi)存控制器。
在下面將要進(jìn)一步詳述的計(jì)算機(jī)系統(tǒng)10的一個(gè)實(shí)施例中,可維持目錄項(xiàng)以某些事務(wù)的過(guò)濾探測(cè)命令及響應(yīng)流量。目錄項(xiàng)可儲(chǔ)存在高速緩存子系統(tǒng)52(以及高速緩存子系統(tǒng)56,根據(jù)具體實(shí)施方式
而定)的指定位置內(nèi),而不是將目錄項(xiàng)儲(chǔ)存在專用目錄儲(chǔ)存器內(nèi)。在計(jì)算機(jī)系統(tǒng)10的另一個(gè)實(shí)施例中,也可使用高速緩存子系統(tǒng)52的其它位置來(lái)儲(chǔ)存遠(yuǎn)程快取存在的信息。通過(guò)將高速緩存子系統(tǒng)52用于儲(chǔ)存目錄項(xiàng)和/或遠(yuǎn)程快取存在信息,可避免對(duì)單獨(dú)儲(chǔ)存器的需求。其結(jié)果為,可降低整體的成本、以及所需的板件面積、功耗、冷卻要求。此外,在一些實(shí)施例中,儲(chǔ)存目錄項(xiàng)和/或遠(yuǎn)程快取存在信息的高速緩存子系統(tǒng)52的利用有可能根據(jù)該子系統(tǒng)是配置在單處理器環(huán)境還是多處理器環(huán)境而選擇性地應(yīng)用。因此,當(dāng)配置于單處理器環(huán)境時(shí),高速緩存子系統(tǒng)的儲(chǔ)存位置可專用性地供處理器-快取操作使用,而可避免專用目錄儲(chǔ)存器的浪費(fèi)(即,無(wú)利用)。有關(guān)此高速緩存子系統(tǒng)52的這些特性的具體細(xì)節(jié)將在下面做更詳細(xì)說(shuō)明。
下面參考圖4,其顯示內(nèi)存控制器16A的一個(gè)具體實(shí)施例的方框圖。內(nèi)存控制器16B至16D可類似地配置。在圖4的實(shí)施例中,內(nèi)存控制器16A包括請(qǐng)求隊(duì)列60、同步控制電路64以及內(nèi)存存取控制電路66。
內(nèi)存控制器16A從數(shù)據(jù)包處理邏輯58接收命令數(shù)據(jù)包至請(qǐng)求隊(duì)列60中。若地址受對(duì)應(yīng)于內(nèi)存14A中內(nèi)存位置的命令的影響,則命令數(shù)據(jù)包通過(guò)數(shù)據(jù)包處理邏輯58而選擇到內(nèi)存控制器16A路由。換言之,若命令數(shù)據(jù)包的地址尋址儲(chǔ)存在內(nèi)存14A內(nèi)的區(qū)段,則命令數(shù)據(jù)包路由到內(nèi)存控制器16A。內(nèi)存控制器16A在請(qǐng)求隊(duì)列60中排列命令信息,并隨后處理該命令。同步控制電路64確認(rèn)以同步方式執(zhí)行該命令。若該命令需進(jìn)行探測(cè),則同步控制電路64將探測(cè)指示傳送給數(shù)據(jù)包處理邏輯58。例如,此探測(cè)指示可包括來(lái)自對(duì)應(yīng)命令的SrcNode、SrcUnit和SrcTag、地址、以及命令的類型。數(shù)據(jù)包處理邏輯58可傳送探測(cè)命令以響應(yīng)探測(cè)指示。同步控制電路64可進(jìn)一步接收來(lái)自數(shù)據(jù)包處理邏輯58的SrcDone數(shù)據(jù)包,并且可接收WrSized命令的探測(cè)響應(yīng)。內(nèi)存存取控制電路66可與內(nèi)存14A接口,以執(zhí)行由同步控制電路64所交付的命令(例如,在同步操作已傳送以及要從其它節(jié)點(diǎn)接收的任何響應(yīng)已接收之后)。若命令是讀取,則數(shù)據(jù)可從內(nèi)存14A回傳至數(shù)據(jù)包處理邏輯58,以轉(zhuǎn)送至RdResponse數(shù)據(jù)包內(nèi)的來(lái)源節(jié)點(diǎn)。
同步控制電路64可另外配置以維持特定數(shù)據(jù)區(qū)段的目錄項(xiàng)。如上述的討論,這些目錄項(xiàng)儲(chǔ)存在高速緩存子系統(tǒng)52和/或高速緩存子系統(tǒng)56的指定位置內(nèi)。為此目的,同步控制電路64可包括連接至高速緩存子系統(tǒng)的接口。同步控制電路64可根據(jù)命令的類型以及根據(jù)命令指定的地址的目錄項(xiàng)的存在決定是否需進(jìn)行探測(cè)。目錄項(xiàng)根據(jù)具體實(shí)施方式
可含有各種同步信息。例如,目錄項(xiàng)可指示給定區(qū)段的擁有者(無(wú)論該區(qū)段是否以給定模式進(jìn)行修改)和/或具有該區(qū)段的共享復(fù)本的存在節(jié)點(diǎn)。下面將提供有關(guān)各種示例性目錄項(xiàng)的格式的進(jìn)一步細(xì)節(jié)。
圖5示出了高速緩存子系統(tǒng)52的一個(gè)實(shí)施例的方框圖。高速緩存子系統(tǒng)52包括連接至高速緩存控制器74的高速緩存72。在所描述的實(shí)施例中,高速緩存控制器74包括模式儲(chǔ)存單元75,如下所述,該高速緩存控制器74能夠可編程地設(shè)定而能在高速緩存72的位置內(nèi)儲(chǔ)存目錄項(xiàng)。
一般高速緩存項(xiàng)目(亦即,高速緩存72內(nèi)儲(chǔ)存由處理器核心50操作的數(shù)據(jù)的項(xiàng)目)及目錄項(xiàng)在需要時(shí)可用各種特定格式儲(chǔ)存在高速緩存72內(nèi)。圖6說(shuō)明以具有2L交錯(cuò)存取的K-路組合式(K-way setassociative)快取結(jié)構(gòu)執(zhí)行的一種可能的高速緩存配置。高速緩存72內(nèi)的儲(chǔ)存區(qū)段102顯示具有數(shù)據(jù)項(xiàng)、標(biāo)簽字段以及狀態(tài)字段。在一個(gè)實(shí)施例中,該數(shù)據(jù)項(xiàng)包含64字節(jié)的數(shù)據(jù)。該狀態(tài)字段確認(rèn)高速緩存區(qū)段的狀態(tài),例如,在MOESI協(xié)議中的修改(Modified)、擁有(Owned)、專用(Exclusive)、共享(Shared)或無(wú)效(Invalid)等狀態(tài)。在傳統(tǒng)的方法中,可通過(guò)比較用于存取高速緩存地址的標(biāo)簽字段與高速緩存區(qū)段中儲(chǔ)存的標(biāo)簽信息來(lái)決定快取命中率。利用地址的索引部分存取給定高速緩存的區(qū)段集合。LRU字段表示在該集合中何項(xiàng)目最近被參照最少,并且可與高速緩存控制器74所采用的快取置換算法結(jié)合使用。圖6中說(shuō)明的高速緩存配置方法是公知的。應(yīng)注意,在其它的實(shí)施例中,可利用其它特定高速緩存配置方法來(lái)實(shí)現(xiàn)高速緩存72。還應(yīng)注意,當(dāng)配置于單處理器環(huán)境中時(shí),高速緩存72的所有儲(chǔ)存位置可用以作為一般高速緩存的項(xiàng)目(例如,在單個(gè)處理器環(huán)境模式中通過(guò)設(shè)定高速緩存控制器74的模式儲(chǔ)存單元75)。
如前所述,當(dāng)配置于多處理器環(huán)境中時(shí),高速緩存72的某些位置可用于儲(chǔ)存目錄項(xiàng)??赏ㄟ^(guò)同步控制電路64維持及存取該目錄項(xiàng)以控制同步操作。
目錄項(xiàng)可利用多種方式儲(chǔ)存在高速緩存72中。例如,圖7示出了一種高速緩存配置方法,在該配置方法中可利用高速緩存72的指定路徑(例如,此說(shuō)明性實(shí)施例中的路徑15)儲(chǔ)存目錄項(xiàng)。在一個(gè)實(shí)施例中,此配置在多處理器環(huán)境模式中可由高速緩存控制器74的編程模式儲(chǔ)存單元75可編程地設(shè)定。
圖7的實(shí)施例示出了直接映射的目錄高速緩存結(jié)構(gòu),在該高速緩存結(jié)構(gòu)中的給定高速緩存區(qū)段可儲(chǔ)存多個(gè)目錄項(xiàng)。例如,在一個(gè)實(shí)施例中,每個(gè)目錄項(xiàng)包含16位,因此在高速緩存區(qū)段內(nèi)的64字節(jié)數(shù)據(jù)字段可儲(chǔ)存32個(gè)目錄項(xiàng)。通過(guò)用于存取高速緩存的地址的目錄索引部分可檢索給定目錄項(xiàng)。在一個(gè)實(shí)施例中,目錄項(xiàng)可根據(jù)地址的選取位交錯(cuò)插入多個(gè)高速緩存子系統(tǒng)(例如,圖3中的高速緩存子系統(tǒng)52和56)。當(dāng)高速緩存區(qū)段所儲(chǔ)存的區(qū)段標(biāo)簽(例如,TagL2)以及作為目錄項(xiàng)一部分儲(chǔ)存的目錄標(biāo)簽(例如,Tagdir)匹配用于存取該高速緩存的地址的相應(yīng)標(biāo)簽部分時(shí),則發(fā)生目錄命中。
在計(jì)算機(jī)系統(tǒng)10的一個(gè)實(shí)施例中,目錄項(xiàng)用于追蹤其狀態(tài)為修改、擁有或?qū)S玫膮^(qū)段。目錄項(xiàng)的存在意指該區(qū)段已快取。應(yīng)注意,由于處理器可能悄悄地將區(qū)段從專用轉(zhuǎn)變成修改狀態(tài),故從處理器核心和對(duì)應(yīng)高速緩存子系統(tǒng)的外部可能無(wú)法分辨E狀態(tài)和M狀態(tài)。因此,在此類實(shí)施例中,其目錄項(xiàng)可能包括狀態(tài)O(擁有)、狀態(tài)ME(修改/專用)或狀態(tài)I(無(wú)效)其中一種。不存在目錄項(xiàng)意味著區(qū)段在各種高速緩存子系統(tǒng)中為共享或無(wú)效。應(yīng)注意,當(dāng)發(fā)生高速緩存沖突錯(cuò)誤(conflictmiss)時(shí),所有受影響的高速緩存區(qū)段的目錄項(xiàng)必須從M、O或E狀態(tài)降級(jí)。修改或擁有區(qū)段被復(fù)制回內(nèi)存,并且轉(zhuǎn)變?yōu)镾狀態(tài)。
圖8和圖9示出了目錄項(xiàng)在計(jì)算機(jī)系統(tǒng)10的一個(gè)實(shí)施例中被用來(lái)過(guò)濾(或控制)探測(cè)命令及響應(yīng)流量的方法。在圖8和圖9中,顯示了一組處理節(jié)點(diǎn)P0至P3,處理節(jié)點(diǎn)P0至P3的每一個(gè)代表圖1中的分別的處理節(jié)點(diǎn)12。為了說(shuō)明的目的,各處理節(jié)點(diǎn)P0至P3顯示與其相關(guān)的內(nèi)存(內(nèi)存0至3)以及其第二級(jí)高速緩存。依照前面的描述,每個(gè)第二級(jí)高速緩存具有其各自的目錄項(xiàng)組合。
圖8舉例性說(shuō)明操作的集合,可以響應(yīng)處理節(jié)點(diǎn)P3向映射到內(nèi)存0的區(qū)段所發(fā)出的讀取請(qǐng)求來(lái)執(zhí)行這些操作。在此例子中,該讀取請(qǐng)求導(dǎo)該區(qū)段以共享狀態(tài)安裝在處理節(jié)點(diǎn)P3中。如圖所示,該內(nèi)存請(qǐng)求通過(guò)處理節(jié)點(diǎn)P2路由到處理節(jié)點(diǎn)P0,并且處理節(jié)點(diǎn)P0執(zhí)行目錄查找(例如,通過(guò)圖4對(duì)應(yīng)的同步控制電路64),以確定高速緩存子系統(tǒng)內(nèi)是否存在該高速緩存區(qū)段的目錄項(xiàng)。在圖8的實(shí)施例中,對(duì)應(yīng)該目錄查找,產(chǎn)生目錄錯(cuò)誤。因此,由于不存在該目錄項(xiàng),故該區(qū)段在任何處理節(jié)點(diǎn)的高速緩存中僅可能為共享或無(wú)效。因此,處理節(jié)點(diǎn)P0單純從內(nèi)存0取回?cái)?shù)據(jù),并且通過(guò)處理節(jié)點(diǎn)P2將該數(shù)據(jù)提供給處理節(jié)點(diǎn)P3。當(dāng)處理節(jié)點(diǎn)P3接收該數(shù)據(jù)之后,來(lái)源完成消息可通過(guò)例如處理節(jié)點(diǎn)P1從處理節(jié)點(diǎn)P3傳送到處理節(jié)點(diǎn)P0。此即完成該事務(wù)。在此例子中應(yīng)注意,由于目錄搜尋結(jié)果發(fā)現(xiàn)為目錄錯(cuò)誤,故處理節(jié)點(diǎn)P0不需向任何其它處理節(jié)點(diǎn)傳送任何無(wú)效探測(cè),這在采用廣播同步協(xié)議的系統(tǒng)中是需要的。
圖9為類似例子的說(shuō)明,在該例子中的處理節(jié)點(diǎn)P3向映射到內(nèi)存0的區(qū)段發(fā)出讀取請(qǐng)求。然而,在此例子中,當(dāng)處理節(jié)點(diǎn)P0進(jìn)行目錄查找時(shí),在該高速緩存的對(duì)應(yīng)項(xiàng)發(fā)生目錄命中。目錄項(xiàng)指示該區(qū)段在處理節(jié)點(diǎn)P1中處于ME狀態(tài)。處理節(jié)點(diǎn)P0的同步控制電路因而產(chǎn)生要傳送到處理節(jié)點(diǎn)1的探測(cè)命令,以使處理節(jié)點(diǎn)1將數(shù)據(jù)傳送給處理節(jié)點(diǎn)3。在一個(gè)實(shí)施例中,由于數(shù)據(jù)在處理節(jié)點(diǎn)3以共享狀態(tài)安裝,故處理節(jié)點(diǎn)P1的高速緩存控制器將使其區(qū)段的快取復(fù)本從M狀態(tài)降級(jí)至O狀態(tài)。處理節(jié)點(diǎn)P0的同步控制電路也更新該區(qū)段的目錄項(xiàng),以表示該區(qū)段目前在處理節(jié)點(diǎn)P1中以O(shè)狀態(tài)快取。應(yīng)注意,在此例子中由于區(qū)段的目錄命中發(fā)生在ME狀態(tài),故處理節(jié)點(diǎn)P0不須向任何處理節(jié)點(diǎn)傳送(例如,廣播)無(wú)效探測(cè)消息。
為響應(yīng)其它由處理節(jié)點(diǎn)所激活的事務(wù),可調(diào)用各種其它特定的同步操作。類似上述的例子,可根據(jù)被存取的區(qū)段存在的目錄項(xiàng)、和/或根據(jù)目錄項(xiàng)內(nèi)所指示的區(qū)段狀態(tài)過(guò)濾探測(cè)命令及響應(yīng)流量。例如,回到圖9,若處理節(jié)點(diǎn)P3激活讀取命令以接收特定區(qū)段的專用復(fù)本(例如,通過(guò)激活RdBlkMod命令),處理節(jié)點(diǎn)P0可將探測(cè)命令傳送到含區(qū)段的修改復(fù)本的處理節(jié)點(diǎn)P1。處理節(jié)點(diǎn)P1則對(duì)應(yīng)地將數(shù)據(jù)傳送給處理節(jié)點(diǎn)P3。而且處理節(jié)點(diǎn)P1可將其復(fù)本降級(jí)為無(wú)效,而且處理節(jié)點(diǎn)P0可更新該區(qū)段的目錄項(xiàng)以指示該區(qū)段在處理節(jié)點(diǎn)P3中處于ME狀態(tài)。適當(dāng)時(shí),根據(jù)事務(wù)的類型、存在的目錄項(xiàng)、以及目錄項(xiàng)內(nèi)區(qū)段的狀態(tài),可適當(dāng)?shù)貓?zhí)行許多其它類似的特定同步操作。
在其它實(shí)施例中可具有許多其它的目錄項(xiàng)格式。在其它因素中,目錄項(xiàng)的特殊格式可根據(jù)其所保存狀態(tài)信息的數(shù)量、系統(tǒng)的可擴(kuò)展性以及目錄儲(chǔ)存的開(kāi)銷而定。
圖10說(shuō)明另一種不同的配置方法,在該配置方法中利用4路高速緩存結(jié)構(gòu)來(lái)儲(chǔ)存目錄項(xiàng)。可維持LRU字段以決定在發(fā)生目錄沖突錯(cuò)誤時(shí)(即,當(dāng)新項(xiàng)目覆蓋現(xiàn)存項(xiàng)目時(shí))取代最近最少使用的項(xiàng)目(集合中)。應(yīng)注意,當(dāng)發(fā)生目錄沖突時(shí),同步控制電路在需要時(shí)可調(diào)用特定同步行為。例如,在某些情況下,其高速緩存同步電路可導(dǎo)致具有區(qū)段的修改復(fù)本的節(jié)點(diǎn)執(zhí)行寫(xiě)回操作。
維持在目錄項(xiàng)內(nèi)的數(shù)據(jù)數(shù)量視執(zhí)行的狀況也各有不同。圖11說(shuō)明在64字節(jié)高速緩存區(qū)段內(nèi)具有512個(gè)目錄項(xiàng)的實(shí)施例。1位狀態(tài)字段表示該區(qū)段是否為修改、擁有或?qū)S脿顟B(tài)(MOE)。圖12說(shuō)明在64字節(jié)高速緩存區(qū)段內(nèi)具有64個(gè)目錄項(xiàng)的實(shí)施例。在所示的例子中,5位擁有者字段編碼該擁有者為ME或O狀態(tài),而足夠支持32個(gè)處理核心(例如,各具有4個(gè)核心的8個(gè)節(jié)點(diǎn))。圖12的目錄格式適合用于使經(jīng)修改區(qū)段呈現(xiàn)某些頁(yè)面地方性(page locality)的工作負(fù)荷。
應(yīng)注意,若存在的話,可根據(jù)所采用的特定同步方法以及對(duì)應(yīng)目錄項(xiàng)內(nèi)所含的信息而調(diào)用特定同步行為以響應(yīng)一給定的事務(wù)(例如,探測(cè)命令和響應(yīng))??刹捎酶鞣N特定的基于目錄的協(xié)議。
此外還應(yīng)注意,上述實(shí)施例中雖然采用高速緩存72的特定方式儲(chǔ)存目錄項(xiàng),但也可使用其它實(shí)施例。例如,也可采用高速緩存72的指定的集合來(lái)儲(chǔ)存目錄項(xiàng)或某一路中全部項(xiàng)目的一部分(例如,1/2)專用于目錄項(xiàng)存儲(chǔ)。
另外,實(shí)施例中也可不含模式儲(chǔ)存單元75。以高速緩存區(qū)段保持的信息可包括一個(gè)或多個(gè)設(shè)定用于確認(rèn)含目錄信息的項(xiàng)目的位。
下面參考圖13,計(jì)算機(jī)系統(tǒng)10的另一實(shí)施例可包括遠(yuǎn)程快取的功能,其中給定處理節(jié)點(diǎn)12的部分系統(tǒng)內(nèi)存14(即,14A至14D)分配給映射到另一節(jié)點(diǎn)的系統(tǒng)內(nèi)存的遠(yuǎn)程快取地址。這些遠(yuǎn)程快取區(qū)域即為圖13中的遠(yuǎn)程高速緩存302A至302D。圖13中相當(dāng)于圖1中以相同組件符號(hào)標(biāo)示的電路部分,且這些電路部分具有上述相同的功能。
給定系統(tǒng)內(nèi)存14的遠(yuǎn)程高速緩存302內(nèi)所儲(chǔ)存的遠(yuǎn)程數(shù)據(jù)可通過(guò)相應(yīng)的遠(yuǎn)程高速緩存控制器402A來(lái)控制,其中該遠(yuǎn)程高速緩存控制器402A位于圖14所示的內(nèi)存控制器16A內(nèi)。處理節(jié)點(diǎn)12B至12D可包括類似的遠(yuǎn)程高速緩存控制器。如下面將進(jìn)一步描述的,在一個(gè)實(shí)施例中的遠(yuǎn)程高速緩存控制器402A可包括與高速緩存子系統(tǒng)52(和/或高速緩存子系統(tǒng)56)的接口。可利用在高速緩存子系統(tǒng)52內(nèi)的儲(chǔ)存位置來(lái)儲(chǔ)存信息,該信息用來(lái)確認(rèn)特定地址是否由對(duì)應(yīng)節(jié)點(diǎn)的對(duì)應(yīng)系統(tǒng)內(nèi)存14A內(nèi)的遠(yuǎn)程高速緩存控制器402A所遠(yuǎn)程快取。有關(guān)此功能的進(jìn)一步細(xì)節(jié)將在下面提供。
在一個(gè)實(shí)施例中,遠(yuǎn)程高速緩存控制器402A所采用的遠(yuǎn)程快取策略是僅儲(chǔ)存共享的遠(yuǎn)程數(shù)據(jù)。在此實(shí)施例中,修改、擁有或?qū)S脭?shù)據(jù)并不儲(chǔ)存在該遠(yuǎn)程高速緩存302A內(nèi)。該遠(yuǎn)程高速緩存302A對(duì)于高速緩存子系統(tǒng)52而言可為非必備的(non-inclusive),并且可作為從高速緩存子系統(tǒng)52(以及需要時(shí)從高速緩存子系統(tǒng)56)所驅(qū)逐的共享區(qū)段的犧牲高速緩存(victim cache)。這樣,僅當(dāng)未存在于遠(yuǎn)程高速緩存302A中的共享遠(yuǎn)程區(qū)段在高速緩存子系統(tǒng)52(和/或高速緩存子系統(tǒng)56)內(nèi)被取代時(shí),該遠(yuǎn)程高速緩存302A才會(huì)由遠(yuǎn)程高速緩存控制器402所寫(xiě)入。
圖15示出了高速緩存子系統(tǒng)52的結(jié)構(gòu),在該高速緩存子系統(tǒng)52中利用指定路徑(例如,已說(shuō)明實(shí)施例的路徑14)來(lái)儲(chǔ)存含確認(rèn)對(duì)應(yīng)遠(yuǎn)程區(qū)段是否在遠(yuǎn)程高速緩存302內(nèi)被快取的信息的存在向量。高速緩存區(qū)段可包括含多個(gè)項(xiàng)目的存在向量,這些項(xiàng)目的每一個(gè)分別表示遠(yuǎn)程高速緩存302A內(nèi)是否有以共享(S)狀態(tài)存在的對(duì)應(yīng)區(qū)塊。在圖14的實(shí)施例中,每個(gè)項(xiàng)目包括單一存在位??筛鶕?jù)用于存取該高速緩存的地址而選取的檢索位(IndexL2)來(lái)存取給定的存在向量。同理,可利用地址的其它位(例如,IndexPV)選取已知存在向量的存在位。當(dāng)儲(chǔ)存有高速緩存區(qū)段的區(qū)段標(biāo)簽(例如,TagL2)與用于存取該高速緩存的地址的對(duì)應(yīng)標(biāo)簽位相匹配時(shí),即發(fā)生存在向量命中。
可根據(jù)儲(chǔ)存于結(jié)合遠(yuǎn)程快取控制器402A的配置寄存器(configuration register)內(nèi)的RC基地址值來(lái)指定為遠(yuǎn)程高速緩存302A分配的系統(tǒng)內(nèi)存14A的物理地址。因此可利用與形成所述存在向量檢索及第二級(jí)高速緩存索引(L2 index)的位有關(guān)聯(lián)的RC基地址來(lái)尋址內(nèi)存14A的遠(yuǎn)程高速緩存302A內(nèi)的遠(yuǎn)程快取區(qū)段。
應(yīng)注意在圖14的實(shí)施例中,將區(qū)段置于遠(yuǎn)程高速緩存302A并不需驅(qū)逐修改或擁有數(shù)據(jù)(或具有目錄的系統(tǒng)內(nèi)專用數(shù)據(jù)的置換通知)。此外,由于存在位足夠表示區(qū)段為有效及處于共享狀態(tài),故遠(yuǎn)程快取區(qū)段可不需同步狀態(tài)信息。當(dāng)高速緩存子系統(tǒng)52(以及高速緩存子系統(tǒng)56,若需要時(shí))內(nèi)的共享區(qū)段被取代時(shí),若該區(qū)段未出現(xiàn)在遠(yuǎn)程高速緩存內(nèi)時(shí),則該區(qū)段將置于遠(yuǎn)程高速緩存302A內(nèi)。由于遠(yuǎn)程高速緩存302A內(nèi)的數(shù)據(jù)從未污染,故遠(yuǎn)程高速緩存302A內(nèi)的區(qū)段可被悄悄取代,并且不需驅(qū)逐遠(yuǎn)程高速緩存。當(dāng)另一節(jié)點(diǎn)執(zhí)行儲(chǔ)存或請(qǐng)求目前處于共享(S)狀態(tài)的區(qū)段的專用復(fù)本時(shí),由處理節(jié)點(diǎn)12A接收(例如,來(lái)自母節(jié)點(diǎn))所產(chǎn)生的無(wú)效探測(cè)命令將導(dǎo)致在高速緩存子系統(tǒng)52中執(zhí)行查找動(dòng)作,從而決定該區(qū)段是否出現(xiàn)在遠(yuǎn)程高速緩存302A或高速緩存子系統(tǒng)52的任一個(gè)中。若發(fā)生命中表示該區(qū)段為遠(yuǎn)程高速緩存302A或高速緩存子系統(tǒng)52所共享,則該區(qū)段無(wú)效。
在有些實(shí)施例中,高速緩存子系統(tǒng)52可用于儲(chǔ)存前述的目錄項(xiàng)以及遠(yuǎn)程高速緩存存在的指示。例如,在一個(gè)實(shí)施例中,高速緩存子系統(tǒng)52可指定一條路徑(例如,路徑15)儲(chǔ)存目錄項(xiàng)(例如,如圖7或圖10所示),同時(shí),指定另一條路徑(例如,路徑14)儲(chǔ)存存在向量。當(dāng)合并使用時(shí),可執(zhí)行高速緩存子系統(tǒng)52的單次存取,以決定其數(shù)據(jù)是否被快取(例如,于路徑0至13)以及其數(shù)據(jù)是否在遠(yuǎn)程高速緩存302A內(nèi)被快取。此外,當(dāng)存取的是映射到本地節(jié)點(diǎn)的數(shù)據(jù)時(shí),則對(duì)高速緩存子系統(tǒng)的存取可另外決定該數(shù)據(jù)是否在其它處理器的高速緩存中以修改、擁有或?qū)S脿顟B(tài)快取,以及假如這樣,何節(jié)點(diǎn)含有該數(shù)據(jù)。更進(jìn)一步,在儲(chǔ)存(或來(lái)自另一節(jié)點(diǎn)接收數(shù)據(jù)區(qū)段的專用復(fù)本的請(qǐng)求)的情況下,由處理節(jié)點(diǎn)所接收的對(duì)應(yīng)無(wú)效探測(cè)可同時(shí)導(dǎo)致高速緩存74(例如,路徑0至13)內(nèi)及遠(yuǎn)程高速緩存302A內(nèi)的區(qū)段的無(wú)效(即,通過(guò)改變與高速緩存子系統(tǒng)的路徑14中區(qū)段對(duì)應(yīng)的存在位)。
應(yīng)注意在其它實(shí)施例中,可利用其它特定的結(jié)構(gòu)儲(chǔ)存高速緩存子系統(tǒng)54內(nèi)所含的存在信息。例如,圖16示出了另一種方法,在該方法中,高速緩存子系統(tǒng)可被檢索以存取給定存在位。
此外,應(yīng)注意可以選擇性地啟用根據(jù)操作環(huán)境使用高速緩存子系統(tǒng)52(和/或高速緩存子系統(tǒng)56)的項(xiàng)目(例如,選擇的路徑)作為儲(chǔ)存遠(yuǎn)程高速緩存的存在信息。例如,儲(chǔ)存在模式儲(chǔ)存單元75中的值可控制是否激活遠(yuǎn)程高速緩存的指示特性。依此方法,當(dāng)配置于單處理器環(huán)境時(shí),模式儲(chǔ)存單元75可設(shè)定成指定高速緩存子系統(tǒng)的所有項(xiàng)目為一般快取操作,從而避免儲(chǔ)存資源的浪費(fèi)。
一旦完全了解以上披露的內(nèi)容之后,本領(lǐng)域技術(shù)人員將清楚地掌握各種變化和修改。應(yīng)該理解的是,所有這種變化和修改均視為涵蓋在權(quán)利要求書(shū)的保護(hù)范圍之內(nèi)。
產(chǎn)業(yè)利用性本發(fā)明大致應(yīng)用于計(jì)算機(jī)系統(tǒng)。
權(quán)利要求
1.一種計(jì)算機(jī)系統(tǒng),其包括第一節(jié)點(diǎn)(12A),其包括處理器核心(50)、高速緩存子系統(tǒng)(52),以及第一系統(tǒng)內(nèi)存(25A);第二節(jié)點(diǎn)(12B),其包括第二系統(tǒng)內(nèi)存(14B);其中,至少該高速緩存子系統(tǒng)(52)的某些項(xiàng)目根據(jù)該高速緩存子系統(tǒng)的操作模式而配置成選擇性地儲(chǔ)存處理器數(shù)據(jù)或遠(yuǎn)程快取存在信息的其中之一。
2.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中該第一系統(tǒng)內(nèi)存(14A)配置為遠(yuǎn)程地快取映射到該第二系統(tǒng)內(nèi)存(14B)的數(shù)據(jù),以及其中該遠(yuǎn)程快取存在信息指示在該第一系統(tǒng)內(nèi)存中該數(shù)據(jù)的存在。
3.如權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其中該第一節(jié)點(diǎn)包括用于控制在該第一系統(tǒng)內(nèi)存中的該數(shù)據(jù)的遠(yuǎn)程快取的遠(yuǎn)程高速緩存控制器(302A)。
4.如權(quán)利要求3所述的計(jì)算機(jī)系統(tǒng),其中該遠(yuǎn)程高速緩存控制器采用一種快取策略,在該快取策略中數(shù)據(jù)在該第一系統(tǒng)內(nèi)存中以共享狀態(tài)被遠(yuǎn)程快取,以及在快取策略中處于修改或擁有狀態(tài)的數(shù)據(jù)在該第一系統(tǒng)內(nèi)存中無(wú)法被遠(yuǎn)程快取。
5.如權(quán)利要求4所述的計(jì)算機(jī)系統(tǒng),其中該遠(yuǎn)程高速緩存控制器配置為響應(yīng)來(lái)自該高速緩存子系統(tǒng)的該區(qū)段的置換,在該第一系統(tǒng)內(nèi)存中以共享狀態(tài)儲(chǔ)存數(shù)據(jù)區(qū)段。
6.如權(quán)利要求5所述的計(jì)算機(jī)系統(tǒng),其中該遠(yuǎn)程高速緩存控制器配置為響應(yīng)來(lái)自該高速緩存子系統(tǒng)的置換,僅遠(yuǎn)程快取在該第一系統(tǒng)內(nèi)存中的數(shù)據(jù)。
7.如權(quán)利要求6所述的計(jì)算機(jī)系統(tǒng),其中該遠(yuǎn)程高速緩存控制器配置為僅在該區(qū)段在該第一系統(tǒng)內(nèi)存中未被遠(yuǎn)程快取時(shí),才在該第一系統(tǒng)內(nèi)存中儲(chǔ)存該區(qū)段。
8.如前述權(quán)利要求中任一項(xiàng)所述的計(jì)算機(jī)系統(tǒng),其中該高速緩存子系統(tǒng)的另外項(xiàng)目配置為根據(jù)該高速緩存子系統(tǒng)的操作模式而選擇性地儲(chǔ)存處理器數(shù)據(jù)或目錄信息其中之一,以控制整體的同步行為。
9.如前述權(quán)利要求中任一項(xiàng)所述的計(jì)算機(jī)系統(tǒng),其中該高速緩存子系統(tǒng)的給定儲(chǔ)存線路包括遠(yuǎn)程快取存在向量。
10.如前述權(quán)利要求中任一項(xiàng)所述的計(jì)算機(jī)系統(tǒng),其中該高速緩存子系統(tǒng)的指定路徑被選擇性地啟用以儲(chǔ)存遠(yuǎn)程快取存在信息。
全文摘要
一種具有儲(chǔ)存遠(yuǎn)程快取存在信息的處理器高速緩存的計(jì)算機(jī)系統(tǒng)。在一個(gè)實(shí)施例中,儲(chǔ)存多個(gè)存在向量以指示映射到另一節(jié)點(diǎn)的特定數(shù)據(jù)區(qū)段是否正被遠(yuǎn)程快取。該遠(yuǎn)程快取存在向量可儲(chǔ)存在結(jié)合處理器核心(50)的高速緩存子系統(tǒng)(52)的指定位置,例如第二級(jí)高速緩存,而不是將存在向量?jī)?chǔ)存在專用的儲(chǔ)存器內(nèi)。例如,高速緩存子系統(tǒng)的指定路徑可被分配來(lái)儲(chǔ)存遠(yuǎn)程快取存在向量,而高速緩存的其余路徑則用于儲(chǔ)存一般的處理器數(shù)據(jù)。新的數(shù)據(jù)區(qū)段可被遠(yuǎn)程快取以響應(yīng)來(lái)自高速緩存子系統(tǒng)的驅(qū)逐。在另一實(shí)施例中,也可利用高速緩存子系統(tǒng)的另外項(xiàng)目來(lái)儲(chǔ)存目錄項(xiàng)以過(guò)濾探測(cè)命令及響應(yīng)流量。
文檔編號(hào)G06F12/08GK1685320SQ03823144
公開(kāi)日2005年10月19日 申請(qǐng)日期2003年9月18日 優(yōu)先權(quán)日2002年9月27日
發(fā)明者P·康韋, F·D·韋伯 申請(qǐng)人:先進(jìn)微裝置公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1