两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

供多處理器系統(tǒng)中的高速緩存同步中使用的轉(zhuǎn)發(fā)狀態(tài)的制作方法

文檔序號:6375075閱讀:131來源:國知局
專利名稱:供多處理器系統(tǒng)中的高速緩存同步中使用的轉(zhuǎn)發(fā)狀態(tài)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及高速緩沖存儲器。更特別地,本發(fā)明涉及一種供多處理器系統(tǒng)中的高速緩存同步協(xié)議中使用的轉(zhuǎn)發(fā)(F)狀態(tài)。
背景技術(shù)
大部分的高速緩存同步協(xié)議都具有共享狀態(tài),在該共享狀態(tài)中數(shù)據(jù)能夠在許多系統(tǒng)組件(例如,處理器)之間被共享。當系統(tǒng)組件請求數(shù)據(jù)的只讀副本并且該數(shù)據(jù)已在另一個系統(tǒng)組件中處于排它(E)狀態(tài)時,出現(xiàn)共享(S)狀態(tài)。發(fā)請求的系統(tǒng)組件和具有數(shù)據(jù)副本的系統(tǒng)組件中的每一個都在共享狀態(tài)下對數(shù)據(jù)進行標記。當數(shù)據(jù)處于共享狀態(tài)時,請求數(shù)據(jù)的只讀副本的系統(tǒng)組件能夠自由地拷貝那個數(shù)據(jù)。
在基于總線的多處理器系統(tǒng)中,高速緩存同步協(xié)議通常不許可系統(tǒng)組件向發(fā)請求的系統(tǒng)組件提供共享數(shù)據(jù)。而是,從存儲系統(tǒng)中直接檢索出所述數(shù)據(jù)。在基于目錄的高速緩存同步協(xié)議中,存儲系統(tǒng)還向發(fā)請求的系統(tǒng)組件提供共享副本。將超高速緩沖存儲器線狀態(tài)(由此,數(shù)據(jù)狀態(tài))的目錄定位在系統(tǒng)組件和存儲器之間,由此從存儲器檢索出所述數(shù)據(jù)并將其發(fā)送給發(fā)請求的系統(tǒng)組件。
共享狀態(tài)可能會帶來多處理器系統(tǒng)中的許多問題,特別是當所述多處理器系統(tǒng)不依賴于用于追蹤超高速緩沖存儲器線狀態(tài)的目錄時,該多處理器系統(tǒng)在系統(tǒng)組件之間使用點對點互連網(wǎng)絡(luò)。為了限制這類系統(tǒng)中的問題的發(fā)生,現(xiàn)有技術(shù)的解決方案提出將來自系統(tǒng)組件的請求直接路由到存儲系統(tǒng),然后所述存儲系統(tǒng)負責廣播該請求以確定數(shù)據(jù)(超高速緩沖存儲器線)狀態(tài),收集來自其它系統(tǒng)組件的響應(yīng),然后確定當履行所述請求時數(shù)據(jù)應(yīng)為什么狀態(tài)。這些協(xié)議導致將被返回的數(shù)據(jù)的四次跳躍(hop)1)對存儲器的請求者,2)存儲器向其它系統(tǒng)組件廣播請求,3)系統(tǒng)組件對存儲系統(tǒng)作出響應(yīng),和4)存儲系統(tǒng)將數(shù)據(jù)轉(zhuǎn)發(fā)給請求者。
為了在完全連接的點對點系統(tǒng)中縮短與履行請求相關(guān)聯(lián)的等待時間,發(fā)請求的系統(tǒng)組件能夠?qū)⑺恼埱髲V播到所有其它系統(tǒng)組件以及廣播到存儲系統(tǒng)。如果另一個系統(tǒng)組件具有處于共享狀態(tài)下的數(shù)據(jù),那么它就會直接把數(shù)據(jù)傳送給請求者。當多個系統(tǒng)組件同時地請求同一個數(shù)據(jù)并且多個其它的系統(tǒng)組件具有處于共享狀態(tài)下的數(shù)據(jù)時復雜度上升。所述請求者系統(tǒng)組件必須潛在地處理多個數(shù)據(jù)返回。當一個或多個系統(tǒng)組件請求修改共享數(shù)據(jù)的權(quán)利時,出現(xiàn)了更多的問題。
當其中一個系統(tǒng)組件想要修改數(shù)據(jù)時,那個組件必須發(fā)出″所有權(quán)請求(RFO)″,以從其余的系統(tǒng)那里要求修改被請求數(shù)據(jù)的許可。在RFO獲得準許之后,數(shù)據(jù)的狀態(tài)從共享狀態(tài)變成表明所述數(shù)據(jù)已被修改的另一個狀態(tài)(例如,修改狀態(tài))。
為了舉例說明,

圖1a和1b是具有現(xiàn)有技術(shù)的高速緩存同步協(xié)議的四節(jié)點系統(tǒng)的概念圖解。在圖1b的示例中,虛線表示先前發(fā)送的消息,而實線表示正在描述的消息。在這種系統(tǒng)中,僅僅采用四種常規(guī)的超高速緩沖存儲器線狀態(tài)修改(M)、排它(E)、共享(S)和無效(I)。這公知為MESI高速緩存同步協(xié)議。節(jié)點110、120和130是存儲高速緩沖存儲器中的被請求數(shù)據(jù)的副本(例如,超高速緩沖存儲器線)的對等節(jié)點。本地節(jié)點140在存儲器中存儲數(shù)據(jù)原本,或者當將修改版本寫回到存儲器時存儲數(shù)據(jù)的修改版本。也就是說,本地節(jié)點140負責非高速緩存的數(shù)據(jù)副本。在圖1a的示例中,節(jié)點120和130兩者都具有存儲在高速緩沖存儲器中的被請求數(shù)據(jù)的副本,并且該數(shù)據(jù)處于共享(S)狀態(tài)。
當對等節(jié)點110發(fā)出請求修改數(shù)據(jù)的權(quán)利的RFO時,對等節(jié)點110將RFO廣播到所述系統(tǒng)的其它節(jié)點。正如在圖1b中舉例說明的那樣,節(jié)點120和130兩者都通過提供被請求數(shù)據(jù)的副本,對來自對等節(jié)點110的請求作出響應(yīng)。因為這兩個節(jié)點120和130都能夠提供被請求數(shù)據(jù)的副本,所以對等節(jié)點110必須能夠接收和協(xié)調(diào)被請求數(shù)據(jù)的的多個副本。這給對等節(jié)點110的設(shè)計增加了復雜度。隨著系統(tǒng)中節(jié)點數(shù)目的增加,這要求復雜度方面的進一步增加,這增加了系統(tǒng)設(shè)計的成本和難度。
還可以存在更多的復雜狀態(tài),在其中多個發(fā)請求的節(jié)點中的每一個都能夠接收被請求數(shù)據(jù)的副本,例如從三個或更多節(jié)點中接收。由此,每一個節(jié)點都必須能夠解析被請求數(shù)據(jù)的多個沖突副本以便確保正確的系統(tǒng)功能。
附圖簡要說明本發(fā)明是按照舉例的方式而不是作為限制在附圖中加以說明的,在附圖中相同的參考標記是指相似的元件。
圖1a和1b是具有現(xiàn)有技術(shù)的高速緩存同步協(xié)議的四節(jié)點系統(tǒng)的概念上的說明。
圖2a和2b是利用轉(zhuǎn)發(fā)狀態(tài)將數(shù)據(jù)從其本地節(jié)點傳送到發(fā)請求的節(jié)點的概念上的說明。
圖3a-3c是利用轉(zhuǎn)發(fā)狀態(tài)將數(shù)據(jù)在對等節(jié)點之間傳送在概念上的說明。
圖4是與用于利用轉(zhuǎn)發(fā)狀態(tài)來提供數(shù)據(jù)副本的技術(shù)的一個實施例相對應(yīng)的流程圖。
圖5是節(jié)點的一個實施例的框圖。
圖6是多處理器系統(tǒng)的一個實施例。
詳細說明描述用于多節(jié)點系統(tǒng)中的高速緩存同步的轉(zhuǎn)發(fā)(F)狀態(tài)的使用。所述F狀態(tài)許可共享數(shù)據(jù)從當前自己的系統(tǒng)組件被傳輸?shù)桨l(fā)請求的系統(tǒng)組件,而不牽涉在發(fā)請求的系統(tǒng)組件上接收的多個數(shù)據(jù)副本,因為所述請求是只讀請求或讀取所有權(quán)的請求。
所述F狀態(tài)不同于現(xiàn)有技術(shù)的高速緩存同步協(xié)議當中的O狀態(tài),所述現(xiàn)有技術(shù)的高速緩存同步協(xié)議通稱MOESI(修改、所擁有、排它、共享和無效),因為具有處于O狀態(tài)下的數(shù)據(jù)的系統(tǒng)組件在所述系統(tǒng)中具有唯一的更新數(shù)據(jù)值。此外,它不兼容于存儲系統(tǒng)中的副本。這需要系統(tǒng)組件剛一驅(qū)逐所擁有的數(shù)據(jù)就把那個數(shù)據(jù)發(fā)送回以存儲在存儲系統(tǒng)中。所述F狀態(tài)表明所述數(shù)據(jù)值與存儲系統(tǒng)中的副本相一致。如果系統(tǒng)組件驅(qū)逐處于F狀態(tài)下的數(shù)據(jù),那么所述組件就能夠簡單地刪除該數(shù)據(jù)而無需將該數(shù)據(jù)存儲回至存儲系統(tǒng)。
在下面的說明中,為了解釋起見,闡述了許多具體細節(jié)以便提供對本發(fā)明的徹底理解。然而,明顯的是對于本領(lǐng)域熟練技術(shù)人員而言,可以在沒有這些具體細節(jié)中的一些細節(jié)的情況下實踐本發(fā)明。在其它實例中,為了避免混淆本發(fā)明,以框圖的形式示出了結(jié)構(gòu)和裝置。
在下面的說明中,描述包含五種狀態(tài)(修改、排它、共享、無效、轉(zhuǎn)發(fā))的高速緩存同步協(xié)議,并且也將其稱為MESIF協(xié)議。在可替換的實施例中,所述轉(zhuǎn)發(fā)狀態(tài)能夠與不同于MESI狀態(tài)和/或除MESI狀態(tài)以外的狀態(tài)一起使用。換言之,其中一個是轉(zhuǎn)發(fā)狀態(tài)的五種狀態(tài)不是必需的。
為了提供高速緩存同步協(xié)議,描述了幾種高速緩存同步協(xié)議消息類型。作為初步解決的問題,在下面提供了用于高速緩存同步的消息概要。并不需要所有的所描述的消息以提供具有F狀態(tài)的同步協(xié)議,而是可以使用消息群來提供具有F狀態(tài)的高速緩存同步協(xié)議。
請求消息下列消息是來自發(fā)請求的節(jié)點(系統(tǒng)組件)的數(shù)據(jù)/動作請求。將這些消息廣播到該系統(tǒng)的所有節(jié)點。
端口讀取線(PRL)這是對數(shù)據(jù)段副本的請求,例如超高速緩沖存儲器線。
端口讀取無效線(PRIL)這是對數(shù)據(jù)段副本的請求,在其中使提供商節(jié)點的數(shù)據(jù)副本無效。這是″所有權(quán)請求″(RFO)型消息。
端口寫線(PWL)這個消息令數(shù)據(jù)(例如,修改的超高速緩沖存儲器線)將被寫入存儲器中。這個消息還可以稱為″臟驅(qū)逐(dirtyeviction)″。
響應(yīng)消息 下列消息是響應(yīng)于上述請求從對等(即,非本地)節(jié)點發(fā)送到發(fā)請求的節(jié)點的消息。本地節(jié)點是包含與被請求的超高速緩沖存儲器線相對應(yīng)的存儲系統(tǒng)的節(jié)點。
無效狀態(tài)確認(IACK)這個消息是當發(fā)送響應(yīng)的節(jié)點具有被請求數(shù)據(jù)的無效副本或沒有被請求數(shù)據(jù)的副本時對請求(PRL、PRIL、PWL)的響應(yīng)。
共享狀態(tài)確認(SACK)這個消息是當發(fā)送響應(yīng)的節(jié)點具有并保留有處于共享狀態(tài)下的被請求數(shù)據(jù)的副本時對請求的響應(yīng)。
數(shù)據(jù)收到確認(DACK)這個消息確認被請求數(shù)據(jù)的接收。
沖突這個消息表明存在對被請求的超高速緩沖存儲器線的共同待決(copending)請求。
到本地節(jié)點的消息將這些消息通過對等節(jié)點傳送到本地節(jié)點。
讀(沖突)這個消息請求來自本地節(jié)點的數(shù)據(jù)并列出所有沖突(如果有的話)。
CNCL(沖突)響應(yīng)于對等節(jié)點中的命中而將這個消息發(fā)送給本地節(jié)點,并且列出所有沖突(如果有的話)。這個消息取消本地節(jié)點的預取操作。
來自本地節(jié)點的消息將這些消息從本地節(jié)點發(fā)送到對等節(jié)點和/或發(fā)請求的節(jié)點。
數(shù)據(jù)這個消息包含被請求數(shù)據(jù)并且能夠表明將被發(fā)請求的節(jié)點使用的數(shù)據(jù)的狀態(tài)(M/E/F/S)。
確認(ACK)這個消息表明被請求數(shù)據(jù)已被發(fā)送給發(fā)請求的節(jié)點。
等待這個消息令正在進行接收的節(jié)點在進一步發(fā)送消息之前等待輸入數(shù)據(jù)。
傳送(XFR)這個消息令正在進行接收的節(jié)點把數(shù)據(jù)傳送到該消息中指明的節(jié)點。
MESIF高速緩存同步協(xié)議的綜述這里所述的是具有五種狀態(tài)的高速緩存同步協(xié)議,該五種狀態(tài)為修改、排它、共享、無效和轉(zhuǎn)發(fā)(MESIF)。所述MESIF高速緩存同步協(xié)議包括指明單個數(shù)據(jù)副本的轉(zhuǎn)發(fā)(F)狀態(tài),從該單個數(shù)據(jù)副本中能夠進一步產(chǎn)生副本。使用處于F狀態(tài)下的超高速緩沖存儲器線來響應(yīng)對超高速緩沖存儲器線副本的請求。在一個實施例中,將新創(chuàng)建的副本置于F狀態(tài)下,并且將另一個系統(tǒng)組件(非本地節(jié)點)中的先前處于F狀態(tài)下的超高速緩沖存儲器線置成共享(S)狀態(tài)或無效(I)狀態(tài)。由此,如果共享超高速緩沖存儲器線,則一個系統(tǒng)組件中的一個共享副本就處于F狀態(tài)下,而其它系統(tǒng)組件中的剩余的超高速緩沖存儲器線副本就處于S狀態(tài)下。
這里所描述的MESIF協(xié)議是新的,因為它實質(zhì)上是一種沒有單條串行化總線限制的監(jiān)聽協(xié)議。與監(jiān)聽高速緩存協(xié)議相類似,MESIF依賴于具有數(shù)據(jù)的高速緩存副本的節(jié)點以便保持同步。采用點對點鏈接而非同步鏈接,集中廣播引入了時間異常(time-warp)(即從不同的節(jié)點的角度來看,事件看起來是以不同的順序發(fā)生的事實)的問題。所述MESIF協(xié)議正確地處理時間異常,識別何時潛在錯誤會產(chǎn)生并確定該錯誤得到正確處理。本地節(jié)點的概念主要是為了判斷未高速緩存的副本駐留在哪里,但是本地節(jié)點能夠參予每個事務(wù)(而不必位于關(guān)鍵路徑上)以便解決沖突和時間異常問題。由于所述方案的并發(fā)廣播特性,MESIF實現(xiàn)了與監(jiān)聽協(xié)議相關(guān)聯(lián)的低等待時間,從而在大多數(shù)情況下以最短的可能等待時間(單次往返路程的請求響應(yīng))獲得可高速緩存的數(shù)據(jù)副本。
忽略時間異常的問題,就可能當在系統(tǒng)中存在唯一的高速緩存副本時實現(xiàn)兩次跳躍的存取。F狀態(tài)的引入將這一能力擴展到存在多個副本的常見情形。實質(zhì)上,F(xiàn)狀態(tài)建立判斷當允許多個節(jié)點時哪一個節(jié)點應(yīng)響應(yīng)的″平等中的第一(first-among-equa1s)″。
所述MESIF協(xié)議包含向所有對等節(jié)點以及本地節(jié)點廣播初始請求。如果在狀態(tài)E、F或M下高速緩存副本的話,則它就被包含在所述響應(yīng)當中。繼而,向本地節(jié)點發(fā)送第二個消息,以通知它所述請求已被滿足。如果未高速緩存被請求的線,或如果只有S狀態(tài)的副本存在的話,則利用發(fā)送給本地節(jié)點的第二個請求來確認前一個請求,其中此刻可能已經(jīng)從其存儲器中取出所述本地節(jié)點。不論是在哪種情況下,為了同步化和沖突解決起見,所述本地節(jié)點都必須響應(yīng)第二個請求(盡管它們往往能夠被組合在一起也響應(yīng)第一個請求)。注意,本地節(jié)點可以具有一個或多個高速緩存,所以它可以像任何其它節(jié)點那樣響應(yīng)初始請求。
所述數(shù)據(jù)一旦到達而非等待所有的響應(yīng),就因允許節(jié)點使用所述數(shù)據(jù)而造成復雜化。由此,允許接收數(shù)據(jù)副本的節(jié)點一接收就在內(nèi)部立即使用所述數(shù)據(jù),但是可以不影響使用其余系統(tǒng)可見的數(shù)據(jù)直到所述節(jié)點已經(jīng)從本地節(jié)點那里接收到確認為止。所述確認還可以包括節(jié)點必須將它的副本轉(zhuǎn)發(fā)給另一個節(jié)點的指令,并且或許會從它自己的高速緩存中驅(qū)逐所述節(jié)點。
當節(jié)點通過提供已高速緩存的數(shù)據(jù)對來自于另一個節(jié)點的請求作出響應(yīng)時,所述節(jié)點推延它為同一個超高速緩沖存儲器線接收的所有其它請求直到所述節(jié)點接收到來自本地節(jié)點的響應(yīng),該響應(yīng)確認所述節(jié)點轉(zhuǎn)發(fā)了該數(shù)據(jù)的事實,由此確保所有節(jié)點都注意到相同順序的(可能可寫的)超高速緩沖存儲器線的傳送。
所述本地節(jié)點是未高速緩存的數(shù)據(jù)的存儲庫,但是所述本地節(jié)點還可以具有產(chǎn)生請求的處理器并且包括一個或多個高速緩存。像任何其它的節(jié)點一樣,當本地節(jié)點處理器錯過時,所述本地節(jié)點必須向所有其它(對等)節(jié)點廣播請求,并且所述本地節(jié)點必須內(nèi)部地處理所述請求,因為它可能是針對本地節(jié)點而到達的任何其它請求。注意,這是一個特例,因為本地節(jié)點不顯式地向它自身(本地節(jié)點)發(fā)送消息。另外,當外部請求針對局部高速緩存的數(shù)據(jù)而到達時,所述本地節(jié)點必須以這樣一種方式來進行響應(yīng),以確保來自本地節(jié)點的最新響應(yīng)不是有歧義的。也就是說,所述本地節(jié)點可以通過提供所述數(shù)據(jù)來響應(yīng)初始請求,但是所述本地節(jié)點同時也必須作為本地節(jié)點來響應(yīng)第二個請求。
協(xié)議的變形允許本地節(jié)點在不知道數(shù)據(jù)是否有效的情況下以這個數(shù)據(jù)的未高速緩存的副本響應(yīng),把它留給發(fā)請求的節(jié)點并且來自本地節(jié)點的第二個響應(yīng)挑選出不適當?shù)靥峁?shù)據(jù)的情形。
轉(zhuǎn)發(fā)狀態(tài)的綜述在一個實施例中,所述轉(zhuǎn)發(fā)狀態(tài)是用在異步地廣播請求的系統(tǒng)中的,這意味著所述響應(yīng)不能被系統(tǒng)中的所有節(jié)點注意到,并且具有在F狀態(tài)下存儲的數(shù)據(jù)的節(jié)點不能具有唯一的副本,因為有效的副本是(例如,由本地節(jié)點)存儲在存儲器中的。由此,不同于MOESI協(xié)議的所擁有狀態(tài),其中處于O狀態(tài)下的數(shù)據(jù)是唯一有效的數(shù)據(jù)副本,可以丟棄處于F狀態(tài)下的數(shù)據(jù)或者如果期望的話則將其轉(zhuǎn)變成S狀態(tài)。
在存儲器中存在有效的被請求數(shù)據(jù)的副本的環(huán)境下,所述F狀態(tài)可以被稱作為″平等中的第一″的概念。早先的協(xié)議(例如,MOESI和SCI)沒有提供這種狀態(tài)。所述MOESI協(xié)議維護所擁有的副本,因為有效的副本并不是維護在存儲器中的。僅僅通過更新存儲器中的副本就可以清除該所擁有的副本。所述SCI協(xié)議不是廣播協(xié)議,因為請求是發(fā)送給將要處理的目錄節(jié)點的。
圖2a和2b是使用轉(zhuǎn)發(fā)狀態(tài)將數(shù)據(jù)從其本地節(jié)點傳送到兩個對等節(jié)點中的每一個的概念上的說明。在圖2a和2b以及圖3a至3c的示例中,虛線表示先前發(fā)送的消息,而實線表示正被描述的消息。為了保持圖更加清楚,當分解一組消息(例如,PRIL和對應(yīng)的IACK)時,所述這些線表示消息不再被包含在所述圖中。
隨后的論述是就多節(jié)點系統(tǒng)內(nèi)的節(jié)點而言給出的。在一個實施例中,非本地節(jié)點包含具有內(nèi)部高速緩沖存儲器和/或外部高速緩沖存儲器的處理器。在可替換的實施例中,非本地節(jié)點是與其它電子系統(tǒng)相連的電子系統(tǒng)(例如,計算機系統(tǒng)、移動裝置)。在又一個實施例中,每個節(jié)點和所有節(jié)點都可以是具有內(nèi)部高速緩沖存儲器和鄰接的存儲系統(tǒng)的處理器。在上面描述的最后一個實施例中,當所請求的數(shù)據(jù)在節(jié)點的存儲系統(tǒng)中是本地的時,所述節(jié)點能夠充當對該請求的本地節(jié)點。
圖2a舉例說明了多節(jié)點系統(tǒng),其中僅僅由本地節(jié)點240存儲所請求的數(shù)據(jù)集(例如,超高速緩沖存儲器線)。這個狀態(tài)例如可以在存取數(shù)據(jù)集的第一時間出現(xiàn)。將數(shù)據(jù)存儲在與本地節(jié)點240相關(guān)聯(lián)的存儲器中,而不是存儲在與任何節(jié)點210、220和230相關(guān)聯(lián)的高速緩沖存儲器中。對等節(jié)點230通過向系統(tǒng)的所有節(jié)點廣播PRL消息來請求數(shù)據(jù)塊。對等節(jié)點230能夠利用其它類型的消息(例如,PRIL消息)來請求數(shù)據(jù)塊。
圖2b舉例說明了響應(yīng)于對等節(jié)點230的數(shù)據(jù)請求的圖2a的多節(jié)點系統(tǒng)。節(jié)點210和220向?qū)Φ裙?jié)點230發(fā)送IACK消息,以表明節(jié)點210和220的高速緩沖存儲器不包含被請求數(shù)據(jù)的有效副本。本地節(jié)點240在DataE消息中向?qū)Φ裙?jié)點230發(fā)送被請求數(shù)據(jù)。所述DataE消息向?qū)Φ裙?jié)點230表明被請求數(shù)據(jù)應(yīng)被存儲在處于E狀態(tài)下的對等節(jié)點230上。
當另一個對等節(jié)點(例如,對等節(jié)點220)對相同的超高速緩沖存儲器線產(chǎn)生后續(xù)請求時,對等節(jié)點230通過以DataF消息(而非如本地節(jié)點240所提供的DataE消息)響應(yīng)來自對等節(jié)點220的PRL請求來直接地向?qū)Φ裙?jié)點220提供超高速緩沖存儲器線。對等節(jié)點230將其超高速緩沖存儲器線的副本轉(zhuǎn)變?yōu)楣蚕頎顟B(tài)(S)。此外,當對等節(jié)點220隨著來自對等節(jié)點230的DataF消息一起接收來自對等節(jié)點210的接收時,該對等節(jié)點220就向本地節(jié)點240發(fā)送CNCL()消息。然后,本地節(jié)點240向?qū)Φ裙?jié)點220發(fā)送ACK消息,由此許可對等節(jié)點220使超高速緩沖存儲器線保持在F狀態(tài)下。對等節(jié)點220能繼而以DataF響應(yīng)對相同的超高速緩沖存儲器線的后續(xù)請求。
在一個實施例中,處于F狀態(tài)下的數(shù)據(jù)的副本是用來向隨后發(fā)請求的節(jié)點提供附加副本的副本。由此,使用處于F狀態(tài)下的數(shù)據(jù)來對將來的數(shù)據(jù)副本請求作出響應(yīng)。將新創(chuàng)建的數(shù)據(jù)副本置于F狀態(tài)下,而將早先處于F狀態(tài)下的數(shù)據(jù)副本置成S狀態(tài)。換言之,如果共享所述數(shù)據(jù),則一個共享副本就處于F狀態(tài)下,而剩余的數(shù)據(jù)副本(如果有的話)就處于S狀態(tài)下??商鎿Q地,使被請求數(shù)據(jù)的副本的源維持在F狀態(tài)下,并且在S狀態(tài)下存儲新的副本。
處于F狀態(tài)下的數(shù)據(jù)的單個副本帶來了至少兩個優(yōu)點。第一,高速緩存到高速緩存的響應(yīng)一般比存儲器到高速緩存的響應(yīng)更快速。因此,在指定單個的情況下,用來向發(fā)請求的節(jié)點提供副本的高速緩存的數(shù)據(jù)副本能夠提高多節(jié)點系統(tǒng)的整體性能。
第二,所述F狀態(tài)使數(shù)據(jù)從S狀態(tài)到修改(M)狀態(tài)的轉(zhuǎn)變簡單化。因為只有一個處于F狀態(tài)下的數(shù)據(jù)副本存在,所以這允許了用于解決沖突請求的單個點并降低了轉(zhuǎn)變成使所有其它副本無效的一種狀態(tài)的可能。使用處于F狀態(tài)下的副本以提供冗余的副本,使得更易于禁止在這期間副本的激增。
圖3a至3c是利用轉(zhuǎn)發(fā)狀態(tài)在對等節(jié)點之間進行的數(shù)據(jù)傳送的概念上的例圖。圖3a舉例說明了對早先請求的數(shù)據(jù)和目前在F狀態(tài)下存儲于對等節(jié)點230中的數(shù)據(jù)進行請求的對等節(jié)點210(例如,正如在上面圖2a和2b中舉例說明的那樣)。為了請求所述數(shù)據(jù),對等節(jié)點210向系統(tǒng)的其它節(jié)點廣播PRL消息(對等節(jié)點210還可以將PRL消息傳輸?shù)焦?jié)點的子集)。對等節(jié)點220以IACK消息響應(yīng),以表明對等節(jié)點220不具有被請求數(shù)據(jù)的有效副本。對等節(jié)點230以DataF消息響應(yīng),來向?qū)Φ裙?jié)點210提供數(shù)據(jù)副本并指示對等節(jié)點210應(yīng)該在F狀態(tài)下存儲該數(shù)據(jù)。在另一個實施例中,將對等節(jié)點230所存儲的被請求數(shù)據(jù)的副本置于S狀態(tài)下。
圖3b舉例說明了響應(yīng)于從對等節(jié)點230那里接收被請求數(shù)據(jù)的副本的、來自于對等節(jié)點210的消息。當對等節(jié)點210從對等節(jié)點220和230那里接收到所有的響應(yīng)時,該對等節(jié)點210就向本地節(jié)點240發(fā)送CNCL()消息,該CNCL()消息使本地節(jié)點240響應(yīng)于來自對等節(jié)點210的PRL消息,暫停已開始的取出操作,并且相對于該PRL消息指示不存在已知沖突。然后,所述本地節(jié)點240向節(jié)點210發(fā)送ACK消息。
圖3c舉例說明了來自本地節(jié)點240的、結(jié)束從對等節(jié)點230到對等節(jié)點220的數(shù)據(jù)傳送的最終消息。在一個實施例中,一旦對等節(jié)點210接收到該ACK消息,該對等節(jié)點210就向?qū)Φ裙?jié)點230發(fā)送DACK消息以表明對等節(jié)點210已經(jīng)從對等節(jié)點230那里接收到了被請求的數(shù)據(jù)。在可替換的實施例中,本地節(jié)點240能夠向?qū)Φ裙?jié)點230發(fā)送DACK消息而不是讓對等節(jié)點210向節(jié)點230發(fā)送該DACK消息。在可替換的實施例中,來自對等節(jié)點210的CNCL()消息包含指示對等節(jié)點210從對等節(jié)點230接收數(shù)據(jù)的信息以便本地節(jié)點240能夠追蹤到哪個對等節(jié)點應(yīng)該接收該DACK消息。
雖然圖2a和2b以及圖3a至3c的示例是相對于四節(jié)點系統(tǒng)加以描述的,但是在這里描述的技術(shù)可應(yīng)用到任何大小的多節(jié)點系統(tǒng)。圖2a和2b以及圖3a至3c的節(jié)點是用來表示能夠存儲數(shù)據(jù)和請求數(shù)據(jù)副本的任何類型的組件。例如,節(jié)點可能是多處理機計算機系統(tǒng)中的高速緩沖存儲器,或者節(jié)點可能是網(wǎng)絡(luò)中的計算機系統(tǒng),或者節(jié)點可能是更復雜的系統(tǒng)內(nèi)的一個或多個處理器和/或高速緩沖存儲器的群組。
處理流程的一個實施例圖4是與用于利用轉(zhuǎn)發(fā)狀態(tài)來提供數(shù)據(jù)副本的技術(shù)的一個實施例相對應(yīng)的流程圖。在一個實施例中,當節(jié)點請求數(shù)據(jù)時,發(fā)請求的節(jié)點向系統(tǒng)的所有其它節(jié)點廣播對數(shù)據(jù)的請求(例如,PRIL消息)(410)。在可替換的實施例中,可以將所述請求傳輸?shù)较到y(tǒng)內(nèi)的節(jié)點的子集,或經(jīng)由網(wǎng)絡(luò)連接傳輸?shù)狡渌?jié)點。
從系統(tǒng)中的其它節(jié)點那里接收響應(yīng)消息(415)。正如上面所論述的那樣,所述響應(yīng)消息可能采取幾種形式。發(fā)請求的節(jié)點將從不具備被請求數(shù)據(jù)的有效副本的系統(tǒng)中的節(jié)點那里接收一個或多個xACK(例如,IACK、SACK)消息。發(fā)請求的節(jié)點還將從具有處于F狀態(tài)下的被請求數(shù)據(jù)的副本的本地節(jié)點或?qū)Φ裙?jié)點那里接收DATAx(例如,DataF、DataM)消息。
如果已經(jīng)接收到所有的響應(yīng)(420),則發(fā)請求的節(jié)點就隨已標識的沖突列表一起向本地節(jié)點發(fā)送READ消息或CANCEL消息(425)。如果ACK消息是接收自本地節(jié)點的(430),那么就在DATA消息所表示的狀態(tài)下存儲數(shù)據(jù)。如果XFER消息是接收自本地節(jié)點而非ACK消息的話(440),那么發(fā)請求的節(jié)點就處理來自于本地節(jié)點的XFER消息。
響應(yīng)于XFER消息,發(fā)請求的節(jié)點向XFER消息所表示的節(jié)點發(fā)送DATA消息(445)。如果XFER消息表明所述數(shù)據(jù)應(yīng)被無效(450),那么發(fā)請求的節(jié)點就使所保留的數(shù)據(jù)的副本無效(455)。如果XFER消息沒有令發(fā)請求的節(jié)點使數(shù)據(jù)的副本無效(450),那么發(fā)請求的節(jié)點就在S狀態(tài)下存儲所述數(shù)據(jù)(460)。
節(jié)點的示例實施例圖5是節(jié)點的一個實施例的框圖。節(jié)點500是以單個處理器、高速緩沖存儲器、存儲器控制器和存儲器來舉例說明的;然而,任何組件中的許多組件都能夠被包含在節(jié)點當中。此外,還可以將附加的和/或不同的組件(例如,總線橋)包含在節(jié)點中。
處理器510可以是本領(lǐng)域中所公知的任何類型的處理器。在一個實施例中,處理器510包含高速緩沖存儲器520。在可替換的實施例中,高速緩沖存儲器520是位于處理器510之外的,并且/或者可以在處理器510之內(nèi)或之外包含附加的高速緩沖存儲器。
存儲器控制器530與高速緩沖存儲器520和存儲器540相耦合。存儲器控制器530作為處理器510、高速緩沖存儲器520與存儲器540之間的接口來進行操作。在一個實施例中,存儲器控制器530根據(jù)這里所述的高速緩存同步協(xié)議來維護高速緩存同步。存儲器控制器530經(jīng)由節(jié)點鏈接550與其它節(jié)點進行交互。在可替換的實施例中,處理器510與存儲器控制器530進行交互以維護如這里所述的高速緩存同步,并且處理器510經(jīng)由可替換的節(jié)點鏈接555來與其它節(jié)點進行交互。
多處理器系統(tǒng)的示例實施例圖6是多處理器系統(tǒng)的一個實施例。多處理器系統(tǒng)600是用來表示具有多個處理器的系統(tǒng)的范圍,例如計算機系統(tǒng)、實時監(jiān)控系統(tǒng)等等??商鎿Q的多處理器系統(tǒng)可以包括更多的、更少的和/或不同的組件。在某些情形中,可以將這里所述的高速緩存管理技術(shù)應(yīng)用于單個處理器和多處理器系統(tǒng)兩者。可以把多處理器系統(tǒng)600配置成作為多節(jié)點系統(tǒng)進行操作。
多處理器系統(tǒng)600包括總線系統(tǒng)610或其它通信設(shè)備以傳遞信息??偩€系統(tǒng)610可以包括許多總線和相關(guān)的互連電路(例如總線橋)。處理器620與總線系統(tǒng)610相耦合以處理信息。處理器620可以包括高速緩沖存儲器622(例如零電平(LO)高速緩沖存儲器)和高速緩存控制器624。在一個實施例中,處理器620還與高速緩存625相耦合,所述高速緩存625可以是任何類型的高速緩沖存儲器。在可替換的實施例中,高速緩存625可以與總線系統(tǒng)610相耦合。還可以使用其它類型的處理器高速緩存配置。
在一個實施例中,高速緩存控制器624經(jīng)由高速緩沖存儲器接口628與高速緩沖存儲器622相耦合,所述高速緩沖存儲器接口628例如可以是到處理器620內(nèi)部的總線。高速緩存控制器經(jīng)由高速緩存接口626與高速緩沖存儲器625相耦合,所述高速緩存接口626提供了處理器620和外部高速緩沖存儲器之間的接口。
多處理器系統(tǒng)600還包括具有高速緩沖存儲器632和高速緩存控制器634的處理器630。高速緩存控制器634經(jīng)由高速緩存接口638與高速緩沖存儲器632相耦合。同樣,高速緩存控制器634經(jīng)由高速緩存接口636與高速緩沖存儲器635相耦合。在一個實施例中,高速緩沖存儲器635與處理器630相耦合。
雖然多處理器系統(tǒng)600是以兩個處理器來舉例說明的,但是多處理器系統(tǒng)600能夠包括許多處理器和/或協(xié)處理器。多處理器系統(tǒng)600還包括與總線系統(tǒng)610相耦合的存儲系統(tǒng)640。在適當?shù)那闆r下,存儲系統(tǒng)640能夠包括動態(tài)(例如,隨機存取存儲器)和靜態(tài)(例如,只讀存儲器、CD-ROM、盤式存儲器、快閃存儲器)存儲裝置與相關(guān)的驅(qū)動器的任何組合。使用存儲系統(tǒng)640的存儲裝置來存儲將由多處理器系統(tǒng)600的處理器執(zhí)行的信息和指令。還可以在由處理器執(zhí)行指令期間使用存儲系統(tǒng)640來存儲臨時變量或其它中間信息。
可以經(jīng)由有線或無線的遠程連接等等、從靜態(tài)或遠程存儲裝置那里向存儲系統(tǒng)640提供指令,所述存儲裝置比如像磁盤、只讀存儲器(ROM)集成電路、CD-ROM、DVD。在可替換的實施例中,可以代替軟件指令或與軟件指令相結(jié)合地使用硬件實現(xiàn)的電路。因此,指令序列的執(zhí)行不限于任何特定的硬件電路和軟件指令的組合。
多處理器系統(tǒng)600還包括用于提供對諸如局域網(wǎng)和/或因特網(wǎng)之類的網(wǎng)絡(luò)的訪問的網(wǎng)絡(luò)接口650。網(wǎng)絡(luò)接口650能夠提供無線和/或有線的網(wǎng)絡(luò)接口,所述網(wǎng)絡(luò)接口能夠包括向和/或來自遠程電子可訪問介質(zhì)的指令的通信。電子可訪問介質(zhì)包括以電子裝置(例如,計算機、個人數(shù)字助理、蜂窩式電話)可讀的形式提供(即,存儲和/或傳輸)內(nèi)容(例如,計算機可執(zhí)行指令)的任何機構(gòu)。
例如,機器可訪問介質(zhì)包括只讀存儲器(ROM);隨機存取存儲器(RAM);磁盤存儲介質(zhì);光存儲介質(zhì);快閃存儲裝置;電學、光學、聽覺或其它形式的傳播信號(例如,載波、紅外信號、數(shù)字信號)。
多處理器系統(tǒng)600還可以包括用于顯示信息的顯示裝置660,比如陰極射線管(CRT)或液晶顯示器(LCD)。輸入裝置670例如包括具有字母數(shù)字鍵及其它鍵的鍵盤,該輸入裝置670被典型地耦合到總線610以向處理器620和/或630傳遞信息和命令選擇。另一種類型的用戶輸入裝置是用于向處理器620和630傳遞方向信息和命令選擇并用于控制顯示裝置660上的光標移動的光標控制裝置(比如鼠標、跟蹤球或光標方向鍵)。
結(jié)論在說明書中對″一個實施例″或″實施例″的引用意指結(jié)合實施例所描述的特定的特征、結(jié)構(gòu)或特性是包含在本發(fā)明的至少一個實施例當中的。短語″在一個實施例中″在說明書中的不同地方的出現(xiàn)未必都是指同一個實施例。
在上述說明書中,已經(jīng)參照本發(fā)明的特定實施例描述了本發(fā)明。然而,顯然在不背離本發(fā)明的更寬泛的精神和范圍的情況下能夠?qū)Ρ景l(fā)明作出各種不同的修改和變化。所以,應(yīng)該把說明書和附圖視作為說明性的而非限制性的??梢詫狀態(tài)用在基于總線的多處理器系統(tǒng)中。
權(quán)利要求
1.一種方法,其包括在具有多個高速緩沖存儲器的系統(tǒng)當中的一個或多個高速緩沖存儲器中存儲數(shù)據(jù)塊;將單個高速緩存的數(shù)據(jù)塊的副本指定為將用于對數(shù)據(jù)塊的副本的廣播請求作出響應(yīng)的副本;以及通過給數(shù)據(jù)塊的副本提供存儲所指定的數(shù)據(jù)塊副本的高速緩沖存儲器來對數(shù)據(jù)塊的廣播請求作出響應(yīng)。
2.如權(quán)利要求1所述的方法,其中相對于接收高速緩沖存儲器中的高速緩存操作異步地廣播所述請求。
3.如權(quán)利要求1所述的方法,進一步包括存儲作為對發(fā)請求的高速緩沖存儲器的響應(yīng)的數(shù)據(jù)塊的副本,其中將由發(fā)請求的高速緩沖存儲器所存儲的數(shù)據(jù)塊的副本指定為將用來響應(yīng)將來的數(shù)據(jù)塊副本的請求的單個高速緩存副本。
4.如權(quán)利要求1所述的方法,其中數(shù)據(jù)塊包括超高速緩沖存儲器線。
5.如權(quán)利要求1所述的方法,其中通過給數(shù)據(jù)塊的副本提供存儲所指定的數(shù)據(jù)塊副本的高速緩沖存儲器來對數(shù)據(jù)塊的請求作出響應(yīng)包括接收數(shù)據(jù)塊的請求;確定數(shù)據(jù)塊的副本是否被存儲在本地高速緩沖存儲器中;如果數(shù)據(jù)塊的副本被存儲在本地高速緩沖存儲器中,則確定所存儲的數(shù)據(jù)塊是否是所指定的數(shù)據(jù)塊的副本;以及如果所存儲的數(shù)據(jù)塊是所指定的數(shù)據(jù)塊的副本,則將數(shù)據(jù)塊的副本傳輸給發(fā)請求的高速緩沖存儲器。
6.一種方法,其包括將數(shù)據(jù)段的副本的請求從發(fā)請求的節(jié)點傳輸?shù)蕉喙?jié)點系統(tǒng)中的一個或多個節(jié)點,其中接收該請求的其中一個節(jié)點是在非高速緩沖存儲器中存儲該數(shù)據(jù)段的本地節(jié)點,而非本地節(jié)點是到發(fā)請求的節(jié)點的對等節(jié)點,如果有副本,則該發(fā)請求的節(jié)點在與各自的對等節(jié)點相關(guān)聯(lián)的高速緩沖存儲器中存儲該副本;如果對等節(jié)點中的任何一個都沒有存儲可共享的數(shù)據(jù)段的副本,則從本地節(jié)點那里提供數(shù)據(jù)段的副本;以及從存儲處于轉(zhuǎn)發(fā)狀態(tài)下的數(shù)據(jù)段副本的對等節(jié)點那里提供數(shù)據(jù)段的副本,其中只有由多個對等節(jié)點存儲的多個數(shù)據(jù)段副本的其中一個被指定處于轉(zhuǎn)發(fā)狀態(tài)。
7.如權(quán)利要求6所述的方法,進一步包括如果所指定的對等節(jié)點是唯一的存儲數(shù)據(jù)段副本的對等節(jié)點,則從所指定的具有數(shù)據(jù)段副本的對等節(jié)點那里提供數(shù)據(jù)段的副本。
8.如權(quán)利要求6所述的方法,其進一步包括將提供給發(fā)請求的節(jié)點的數(shù)據(jù)段副本指定為處于轉(zhuǎn)發(fā)狀態(tài);以及響應(yīng)于來自發(fā)請求的節(jié)點的數(shù)據(jù)段請求,將來自對等節(jié)點的處于轉(zhuǎn)發(fā)狀態(tài)下的數(shù)據(jù)段副本指定為處于共享狀態(tài)。
9.如權(quán)利要求6所述的方法,其中將數(shù)據(jù)段的副本請求從發(fā)請求的節(jié)點傳輸?shù)蕉喙?jié)點系統(tǒng)的一個或多個節(jié)點包括向多節(jié)點系統(tǒng)的所有未發(fā)請求的節(jié)點廣播所述請求。
10.如權(quán)利要求6所述的方法,其中將數(shù)據(jù)段的副本請求從發(fā)請求的節(jié)點傳輸?shù)蕉喙?jié)點系統(tǒng)的一個或多個節(jié)點包括將所述請求傳輸?shù)蕉喙?jié)點系統(tǒng)的所有未發(fā)請求的節(jié)點的子集。
11.如權(quán)利要求6所述的方法,其中所述數(shù)據(jù)段包括超高速緩沖存儲器線。
12.如權(quán)利要求6所述的方法,其中所述數(shù)據(jù)段包括小于超高速緩沖存儲器線的數(shù)據(jù)塊。
13.如權(quán)利要求6所述的方法,其中所述數(shù)據(jù)段包括大于超高速緩沖存儲器線的數(shù)據(jù)塊。
14.一種系統(tǒng),其包括與存儲系統(tǒng)相耦合的本地節(jié)點,以存儲數(shù)據(jù)段的原本;和經(jīng)由總線系統(tǒng)與本地節(jié)點相耦合的多個對等節(jié)點,所述多個對等節(jié)點具有高速緩沖存儲器,其中,響應(yīng)于由請求數(shù)據(jù)段副本的發(fā)請求的對等節(jié)點所發(fā)出的請求,如果未發(fā)請求的對等節(jié)點具有處于轉(zhuǎn)發(fā)狀態(tài)下的數(shù)據(jù)段副本,則該未發(fā)請求的對等節(jié)點提供數(shù)據(jù)段的副本,而如果未發(fā)請求的對等節(jié)點不具有處于轉(zhuǎn)發(fā)狀態(tài)下的數(shù)據(jù)段副本,則本地節(jié)點提供數(shù)據(jù)段的副本,并且進一步其中,一個或多個高速緩存的數(shù)據(jù)段副本當中只有一個在所述請求之前是處于轉(zhuǎn)發(fā)狀態(tài)的。
15.如權(quán)利要求14所述的系統(tǒng),其中所述數(shù)據(jù)段包括超高速緩沖存儲器線。
16.如權(quán)利要求14所述的系統(tǒng),其中所述數(shù)據(jù)段包括小于超高速緩沖存儲器線的數(shù)據(jù)塊。
17.如權(quán)利要求14所述的系統(tǒng),其中所述數(shù)據(jù)段包括大于超高速緩沖存儲器線的數(shù)據(jù)塊。
18.如權(quán)利要求14所述的系統(tǒng),其中所述發(fā)請求的對等節(jié)點向本地節(jié)點和每個未發(fā)請求的對等節(jié)點廣播數(shù)據(jù)段請求。
19.如權(quán)利要求14所述的系統(tǒng),其中所述發(fā)請求的對等節(jié)點將數(shù)據(jù)段請求傳輸?shù)奖镜毓?jié)點和每個未發(fā)請求的對等節(jié)點的子集。
20.一種設(shè)備,其包括高速緩沖存儲器控制器;與高速緩沖存儲器控制器相耦合的高速緩沖存儲器接口,所述高速緩沖存儲器接口允許高速緩沖存儲器控制器與高速緩沖存儲器進行交互;和與高速緩沖存儲器控制器相耦合的系統(tǒng)接口,所述系統(tǒng)接口允許高速緩沖存儲器控制器與系統(tǒng)的其它組件進行交互;其中當數(shù)據(jù)段將被使用并且有效的數(shù)據(jù)段副本未被存儲在高速緩沖存儲器中時,所述高速緩沖存儲器控制器經(jīng)由系統(tǒng)接口傳輸數(shù)據(jù)段請求,并且進一步其中當接收到被請求數(shù)據(jù)段的副本時,所述高速緩沖存儲器控制器令被請求數(shù)據(jù)的副本將被存儲在高速緩沖存儲器中并且指定為處于轉(zhuǎn)發(fā)狀態(tài),并且進一步其中當經(jīng)由系統(tǒng)接口接收到數(shù)據(jù)段副本的請求時,如果所存儲的副本處于轉(zhuǎn)發(fā)狀態(tài)下,則所述高速緩沖存儲器控制器令數(shù)據(jù)段副本被傳輸出去。
21.如權(quán)利要求20所述的設(shè)備,其中所述數(shù)據(jù)段包括超高速緩沖存儲器線。
22.如權(quán)利要求20所述的設(shè)備,其中所述高速緩沖存儲器控制器使數(shù)據(jù)段的請求被廣播到多節(jié)點系統(tǒng)的每個節(jié)點。
23.如權(quán)利要求20所述的設(shè)備,其中所述高速緩沖存儲器控制器使數(shù)據(jù)段的請求被廣播到多節(jié)點系統(tǒng)的節(jié)點子集。
24.如權(quán)利要求20所述的設(shè)備,進一步包括與高速緩沖存儲器控制器相耦合的存儲器接口,用于允許高速緩沖存儲器控制器和外部存儲器之間的交互,其中響應(yīng)于數(shù)據(jù)段的副本請求,針對所述請求將外部存儲器指定為本地節(jié)點,所述高速緩沖存儲器控制器使數(shù)據(jù)段從外部存儲器被檢索出來,并經(jīng)由網(wǎng)絡(luò)接口傳輸給發(fā)請求的節(jié)點。
25.一種包括機器可訪問介質(zhì)的產(chǎn)品,用于提供機器可讀指令,當執(zhí)行該機器可讀指令時令一個或多個電子系統(tǒng)在具有多個高速緩沖存儲器的系統(tǒng)當中的一個或多個高速緩沖存儲器中存儲數(shù)據(jù)塊;將單個高速緩存的數(shù)據(jù)塊的副本指定為將用于對數(shù)據(jù)塊的副本請求作出響應(yīng)的副本;以及通過給數(shù)據(jù)塊的副本提供存儲所指定的數(shù)據(jù)塊副本的高速緩沖存儲器來對數(shù)據(jù)塊請求作出響應(yīng)。
26.如權(quán)利要求25所述的產(chǎn)品,其還包括如下指令,當執(zhí)行所述指令時,令一個或多個電子系統(tǒng)存儲作為對發(fā)請求的高速緩沖存儲器的響應(yīng)而提供的數(shù)據(jù)塊副本,其中將由發(fā)請求的高速緩沖存儲器存儲的數(shù)據(jù)塊的副本指定為將用于對將來的數(shù)據(jù)塊副本請求作出響應(yīng)的單個高速緩存副本。
27.如權(quán)利要求25所述的產(chǎn)品,其中所述數(shù)據(jù)塊包括超高速緩沖存儲器線。
28.如權(quán)利要求25所述的產(chǎn)品,其中令所述一個或多個電子系統(tǒng)通過給數(shù)據(jù)塊副本提供存儲所指定的數(shù)據(jù)塊副本的高速緩沖存儲器來對數(shù)據(jù)塊請求作出響應(yīng)的指令包括如下指令,當執(zhí)行所述指令時,令該一個或多個電子系統(tǒng)接收數(shù)據(jù)塊請求;確定數(shù)據(jù)塊副本是否被存儲在本地高速緩沖存儲器中;如果數(shù)據(jù)塊副本是被存儲在本地高速緩沖存儲器中,則確定所存儲的數(shù)據(jù)塊是否是所指定的數(shù)據(jù)塊的副本;以及如果所存儲的數(shù)據(jù)塊是所指定的數(shù)據(jù)塊的副本,則將數(shù)據(jù)塊副本傳輸?shù)桨l(fā)請求的高速緩沖存儲器。
29.一種包括機器可訪問介質(zhì)的產(chǎn)品,用于提供機器可讀指令,當執(zhí)行該機器可讀指令時,令一個或多個電子系統(tǒng)從發(fā)請求的節(jié)點向多節(jié)點系統(tǒng)的一個或多個節(jié)點傳輸數(shù)據(jù)段的副本請求,其中接收所述請求的其中一個節(jié)點是在非高速緩沖存儲器中存儲該數(shù)據(jù)段的本地節(jié)點,并且非本地節(jié)點是到發(fā)請求的節(jié)點的對等節(jié)點,如果有副本,則該發(fā)請求的節(jié)點在與各自的對等節(jié)點相關(guān)聯(lián)的高速緩沖存儲器中存儲該副本;如果對等節(jié)點中沒有任何一個存儲可共享的數(shù)據(jù)段副本,則從本地節(jié)點那里提供數(shù)據(jù)段副本;以及從在轉(zhuǎn)發(fā)狀態(tài)下存儲數(shù)據(jù)段副本的對等節(jié)點那里提供數(shù)據(jù)段副本,其中由多個對等節(jié)點所存儲的多個數(shù)據(jù)段副本中只有一個被指定為轉(zhuǎn)發(fā)狀態(tài)。
30.如權(quán)利要求29所述的產(chǎn)品,還包括如下指令,當執(zhí)行所述指令時,如果所指定的對等節(jié)點是用于存儲數(shù)據(jù)段副本的唯一的對等節(jié)點,則令一個或多個電子系統(tǒng)從具有數(shù)據(jù)段副本的指定的對等節(jié)點那里提供數(shù)據(jù)段副本。
31.如權(quán)利要求29所述的產(chǎn)品,還包括如下指令,當執(zhí)行所述指令時,令一個或多個電子系統(tǒng)將提供給發(fā)請求的節(jié)點的數(shù)據(jù)段副本指定為處于轉(zhuǎn)發(fā)狀態(tài);以及響應(yīng)于來自于發(fā)請求的節(jié)點的數(shù)據(jù)段請求,將來自對等節(jié)點的處于轉(zhuǎn)發(fā)狀態(tài)下的數(shù)據(jù)段副本指定為處于共享狀態(tài)。
32.如權(quán)利要求29所述的產(chǎn)品,其中令一個或多個電子系統(tǒng)從發(fā)請求的節(jié)點向多節(jié)點系統(tǒng)的一個或多個節(jié)點傳輸針對數(shù)據(jù)段副本的請求的指令包括如下指令,當執(zhí)行所述指令時,令一個或多個電子系統(tǒng)向多節(jié)點系統(tǒng)的所有未發(fā)請求的節(jié)點廣播所述請求。
33.如權(quán)利要求29所述的產(chǎn)品,其中令所述一個或多個電子系統(tǒng)從發(fā)請求的節(jié)點向多節(jié)點系統(tǒng)的一個或多個節(jié)點傳輸數(shù)據(jù)段副本請求的指令包括如下指令,當執(zhí)行所述指令時,令一個或多個電子系統(tǒng)向多節(jié)點系統(tǒng)的所有未發(fā)請求的節(jié)點的子集傳輸所述請求。
34.如權(quán)利要求29所述的產(chǎn)品,其中所述數(shù)據(jù)段包括超高速緩沖存儲器線。
全文摘要
這里所述的是一種具有五種狀態(tài)的高速緩存同步協(xié)議,該五種狀態(tài)為修改、排它、共享、無效和轉(zhuǎn)發(fā)(MESIF)。所述MESIF高速緩存同步協(xié)議包括轉(zhuǎn)發(fā)(F)狀態(tài),該狀態(tài)指明單個數(shù)據(jù)副本,從所述數(shù)據(jù)副本中能夠產(chǎn)生另一個副本。利用F狀態(tài)下的超高速緩沖存儲器線來響應(yīng)對超高速緩沖存儲器線的副本的請求。在一個實施例中,將新創(chuàng)建的副本置于F狀態(tài)下并將先前處于F狀態(tài)下的超高速緩沖存儲器線置成共享(S)狀態(tài)或無效(I)狀態(tài)。由此,如果共享超高速緩沖存儲器線,則一個共享的副本就處于F狀態(tài)下并且剩余的超高速緩沖存儲器線副本處于S狀態(tài)下。
文檔編號G06F12/08GK1729458SQ200380106590
公開日2006年2月1日 申請日期2003年12月3日 優(yōu)先權(quán)日2002年12月19日
發(fā)明者H·胡姆, J·A·古德曼 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
财经| 靖宇县| 辉县市| 临沭县| 霍城县| 灌云县| 和田市| 巴彦淖尔市| 巴南区| 田林县| 东方市| 陇西县| 文水县| 镶黄旗| 方正县| 丰镇市| 阿尔山市| 潞城市| 棋牌| 乌恰县| 贺兰县| 观塘区| 裕民县| 焦作市| 富蕴县| 罗平县| 射洪县| 丰都县| 沙河市| 宁强县| 兰州市| 洛宁县| 朝阳县| 汉中市| 青岛市| 台东市| 衡阳县| 广南县| 北海市| 南川市| 吉木乃县|