欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

文檔序號:6612027閱讀:196來源:國知局
專利名稱:供多處理器系統(tǒng)中的高速緩存同步中使用的轉發(fā)狀態(tài)的制作方法
技術領域
本發(fā)明涉及高速緩沖存儲器。更特別地,本發(fā)明涉及一種供多處理 器系統(tǒng)中的高速緩存同步協(xié)議中使用的轉發(fā)(F)狀態(tài)。
背景技術
大部分的高速緩存同步協(xié)議都具有共享狀態(tài),在該共享狀態(tài)中數據 能夠在許多系統(tǒng)組件(例如,處理器)之間被共享。當系統(tǒng)組件請求數 據的只讀副本并且該數據已在另一個系統(tǒng)組件中處于排它(E)狀態(tài)時, 出現共享(S)狀態(tài)。發(fā)請求的系統(tǒng)組件和具有數據副本的系統(tǒng)組件中 的每一個都在共享狀態(tài)下對數據進行標記。當數據處于共享狀態(tài)時,請 求數據的只讀副本的系統(tǒng)組件能夠自由地拷貝那個數據。在基于總線的多處理器系統(tǒng)中,高速緩存同步協(xié)議通常不許可系統(tǒng)
組件向發(fā)請求的系統(tǒng)組件提供共享數據。而是,從存儲系統(tǒng)中直接檢索 出所述數據。在基于目錄的高速緩存同步協(xié)議中,存儲系統(tǒng)還向發(fā)請求 的系統(tǒng)組件提供共享副本。將超高速緩沖存儲器線狀態(tài)(由此,數據狀 態(tài))的目錄定位在系統(tǒng)組件和存儲器之間,由此從存儲器檢索出所述數 據并將其發(fā)送給發(fā)請求的系統(tǒng)組件。共享狀態(tài)可能會帶來多處理器系統(tǒng)中的許多問題,特別是當所述多 處理器系統(tǒng)不依賴于用于追蹤超高速緩沖存儲器線狀態(tài)的目錄時,該多 處理器系統(tǒng)在系統(tǒng)組件之間使用點對點互連網絡。為了限制這類系統(tǒng)中的問題的發(fā)生,現有技術的解決方案提出將來自系統(tǒng)組件的請求直接 路由到存儲系統(tǒng),然后所述存儲系統(tǒng)負責廣播該請求以確定數據(超高 速緩沖存儲器線)狀態(tài),收集來自其它系統(tǒng)組件的響應,然后確定當履 行所述請求時數據應為什么狀態(tài)。這些協(xié)議導致將被返回的數據的四次 跳躍(hop) : 1)對存儲器的請求者,2)存儲器向其它系統(tǒng)組件廣播 請求,3)系統(tǒng)組件對存儲系統(tǒng)作出響應,和4)存儲系統(tǒng)將數據轉發(fā)給 請求者。為了在完全連接的點對點系統(tǒng)中縮短與履行請求相關聯的等待時 間,發(fā)請求的系統(tǒng)組件能夠將它的請求廣播到所有其它系統(tǒng)組件以及廣 播到存儲系統(tǒng)。如果另一個系統(tǒng)組件具有處于共享狀態(tài)下的數據,那么 它就會直接把數據傳送給請求者。當多個系統(tǒng)組件同時地請求同 一個數 據并且多個其它的系統(tǒng)組件具有處于共享狀態(tài)下的數據時復雜度上 升。所述請求者系統(tǒng)組件必須潛在地處理多個教:才居返回。當一個或多個 系統(tǒng)組件請求修改共享數據的權利時,出現了更多的問題。當其中一個系統(tǒng)組件想要修改數據時,那個組件必須發(fā)出"所有權 請求(RF0),,,以從其余的系統(tǒng)那里要求修改祐:請求數據的許可。在 RF0獲得準許之后,數據的狀態(tài)從共享狀態(tài)變成表明所述數據已被修改 的另一個狀態(tài)(例如,修改狀態(tài))。為了舉例說明,圖la和lb是具有現有技術的高速緩存同步協(xié)議的 四節(jié)點系統(tǒng)的概念圖解。在圖lb的示例中,虛線表示先前發(fā)送的消息, 而實線表示正在描述的消息。在這種系統(tǒng)中,僅僅采用四種常規(guī)的超高 速緩沖存儲器線狀態(tài)修改(M)、排它(E)、共享(S)和無效(I)。 這公知為MESI高速緩存同步協(xié)議。節(jié)點IIO、 120和130是存儲高速緩 沖存儲器中的被請求數據的副本(例如,超高速緩沖存儲器線)的對等
節(jié)點。本地節(jié)點140在存儲器中存儲數據原本,或者當將修改版本寫回到存儲器時存儲數據的修改版本。也就是說,本地節(jié)點140負責非高速 緩存的數據副本。在圖la的示例中,節(jié)點120和130兩者都具有存儲 在高速緩沖存儲器中的被請求數據的副本,并且該數據處于共享(S) 狀態(tài)。當對等節(jié)點IIO發(fā)出請求修改數據的權利的RFO時,對等節(jié)點110 將RFO廣播到所述系統(tǒng)的其它節(jié)點。正如在圖lb中舉例說明的那樣, 節(jié)點12 0和130兩者都通過提供被請求數據的副本,對來自對等節(jié)點110 的請求作出響應。因為這兩個節(jié)點120和130都能夠提供被請求數據的 副本,所以對等節(jié)點110必須能夠接收和協(xié)調被請求數據的的多個副 本。這給對等節(jié)點110的設計增加了復雜度。隨著系統(tǒng)中節(jié)點數目的增 加,這要求復雜度方面的進一步增加,這增加了系統(tǒng)設計的成本和難 度。還可以存在更多的復雜狀態(tài),在其中多個發(fā)請求的節(jié)點中的每一個 都能夠接收被請求數據的副本,例如從三個或更多節(jié)點中接收。由此, 每一個節(jié)點都必須能夠解析被請求數據的多個沖突副本以便確保正確 的系統(tǒng)功能。附圖
簡要說明本發(fā)明是按照舉例的方式而不是作為限制在附圖中加以說明的,在 附圖中相同的參考標記是指相似的元件。圖la和lb是具有現有技術的高速緩存同步協(xié)議的四節(jié)點系統(tǒng)的概 念上的說明。圖2a和2b是利用轉發(fā)狀態(tài)將數據從其本地節(jié)點傳送到發(fā)請求的節(jié) 點的積克念上的說明。圖3a-3c是利用轉發(fā)狀態(tài)將數據在對等節(jié)點之間傳送在概念上的說明。圖4是與用于利用轉發(fā)狀態(tài)來提供數據副本的技術的 一個實施例相 對應的流程圖。圖5是節(jié)點的一個實施例的框圖。 圖6是多處理器系統(tǒng)的一個實施例。
詳細說明描述用于多節(jié)點系統(tǒng)中的高速緩存同步的轉發(fā)(F)狀態(tài)的使用。所述F狀態(tài)許可共享數據從當前自己的系統(tǒng)組件;故傳輸到發(fā)請求的系統(tǒng) 組件,而不牽涉在發(fā)請求的系統(tǒng)組件上接收的多個數據副本,因為所述請求是只讀請求或讀取所有權的請求。所述F狀態(tài)不同于現有技術的高速緩存同步協(xié)議當中的0狀態(tài),所 述現有技術的高速緩存同步協(xié)議通稱MOESI (修改、所擁有、排它、共 享和無效),因為具有處于O狀態(tài)下的數據的系統(tǒng)組件在所述系統(tǒng)中具 有唯一的更新數據值。此外,它不兼容于存儲系統(tǒng)中的副本。這需要系 統(tǒng)組件剛 一驅逐所擁有的數據就把那個數據發(fā)送回以存儲在存儲系統(tǒng) 中。所述F狀態(tài)表明所述數據值與存儲系統(tǒng)中的副本相一致。如果系統(tǒng) 組件驅逐處于F狀態(tài)下的數據,那么所述組件就能夠簡單地刪除該數據 而無需將該數據存儲回至存儲系統(tǒng)。在下面的說明中,為了解釋起見,闡述了許多具體細節(jié)以便提供對 本發(fā)明的徹底理解。然而,明顯的是對于本領域熟練技術人員而言, 可以在沒有這些具體細節(jié)中的一些細節(jié)的情況下實踐本發(fā)明。在其它實 例中,為了避免混淆本發(fā)明,以框圖的形式示出了結構和裝置。在下面的說明中,描述包含五種狀態(tài)(修改、排它、共享、無效、 轉發(fā))的高速緩存同步協(xié)議,并且也將其稱為MESIF協(xié)議。在可替換的 實施例中,所述轉發(fā)狀態(tài)能夠與不同于MESI狀態(tài)和/或除MESI狀態(tài)以 外的狀態(tài)一起使用。換言之,其中一個是轉發(fā)狀態(tài)的五種狀態(tài)不是必需 的。為了提供高速緩存同步協(xié)議,描述了幾種高速緩存同步協(xié)議消息類 型。作為初步解決的問題,在下面提供了用于高速緩存同步的消息概 要。并不需要所有的所描述的消息以提供具有F狀態(tài)的同步協(xié)議,而是 可以使用消息群來提供具有F狀態(tài)的高速緩存同步協(xié)議。請求消息下列消息是來自發(fā)請求的節(jié)點(系統(tǒng)組件)的數據/動作請求。將 這些消息廣播到該系統(tǒng)的所有節(jié)點。端口讀取線(PRL):這是對數據段副本的請求,例如超高速緩沖 存儲器線。端口讀取無效線(PRIL):這是對數據段副本的請求,在其中使提 供商節(jié)點的數據副本無效。這是"所有權請求"UFO)型消息。端口寫線(PWL):這個消息令數據(例如,修改的超高速緩沖存儲器線)將被寫入存儲器中。這個消息還可以稱為"臟驅逐(dirtyeviction ),,。 響應消息
下列消息是響應于上述請求從對等(即,非本地)節(jié)點發(fā)送 到發(fā)請求的節(jié)點的消息。本地節(jié)點是包含與被請求的超高速緩沖存儲器 線相對應的存儲系統(tǒng)的節(jié)點。無效狀態(tài)確認(IACK):這個消息是當發(fā)送響應的節(jié)點具有被請求 數據的無效副本或沒有被請求數據的副本時對請求(PRL、 PRIL、 PWL) 的響應。共享狀態(tài)確認(SACK):這個消息是當發(fā)送響應的節(jié)點具有并保留 有處于共享狀態(tài)下的被請求數據的副本時對請求的響應。數據收到確認(DACK):這個消息確認被請求數據的接收。沖突這個消息表明存在對被請求的超高速緩沖存儲器線的共同待 決(copending)請求。到本地節(jié)點的消息將這些消息通過對等節(jié)點傳送到本地節(jié)點。讀(沖突)這個消息請求來自本地節(jié)點的數據并列出所有沖突(如 果有的話)。CNCL(沖突)響應于對等節(jié)點中的命中而將這個消息發(fā)送給本地 節(jié)點,并且列出所有沖突(如果有的話)。這個消息取消本地節(jié)點的預 取操作。來自本地節(jié)點的消息將這些消息從本地節(jié)點發(fā)送到對等節(jié)點和/或發(fā)請求的節(jié)點。數據這個消息包含被請求數據并且能夠表明將被發(fā)請求的節(jié)點使用的數據的狀態(tài)(M/E/F/S)。確認(ACK ):這個消息表明被請求數據已被發(fā)送給發(fā)請求的節(jié)點。 等待這個消息令正在進行接收的節(jié)點在進一步發(fā)送消息之前等待輸入數據。傳送(XFR):這個消息令正在進行接收的節(jié)點把數據傳送到該消 息中指明的節(jié)點。 MESIF高速緩存同歩協(xié)議的綜述這里所述的是具有五種狀態(tài)的高速緩存同步協(xié)議,該五種狀態(tài)為 修改、排它、共享、無效和轉發(fā)(MESIF)。所述MESIF高速緩存同步 協(xié)議包括指明單個數據副本的轉發(fā)(F)狀態(tài),從該單個數據副本中能 夠進一步產生副本。使用處于F狀態(tài)下的超高速緩沖存儲器線來響應對 超高速緩沖存儲器線副本的請求。在一個實施例中,將新創(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é)議是新的,因為它實質上是一種沒有單條串 行化總線限制的監(jiān)聽協(xié)議。與監(jiān)聽高速緩存協(xié)議相類似,MESIF依賴于 具有數據的高速緩存副本的節(jié)點以便保持同步。采用點對點鏈接而非同 步鏈接,集中廣播引入了時間異常(time-warp)(即從不同的節(jié)點的 角度來看,事件看起來是以不同的順序發(fā)生的事實)的問題。所述MESIF 協(xié)議正確地處理時間異常,識別何時潛在錯誤會產生并確定該錯誤得到 正確處理。本地節(jié)點的概念主要是為了判斷未高速緩存的副本駐留在哪 里,但是本地節(jié)點能夠參予每個事務(而不必位于關鍵路徑上)以便解 決沖突和時間異常問題。由于所述方案的并發(fā)廣播特性,MESIF實現了 與監(jiān)聽協(xié)議相關聯的低等待時間,從而在大多數情況下以最短的可能等 待時間(單次往返路程的請求響應)獲得可高速緩存的數據副本。忽略時間異常的問題,就可能當在系統(tǒng)中存在唯一的高速緩存副本 時實現兩次跳躍的存取。F狀態(tài)的引入將這一能力擴展到存在多個副本 的常見情形。實質上,F狀態(tài)建立判斷當允許多個節(jié)點時哪一個節(jié)點應 響應的"平等中的第一 (first-among-equals ),,。所述MESIF協(xié)議包含向所有對等節(jié)點以及本地節(jié)點廣播初始請求。 如果在狀態(tài)E、 F或M下高速緩存副本的話,則它就被包含在所述響應 當中。繼而,向本地節(jié)點發(fā)送第二個消息,以通知它所述請求已被滿足。 如果未高速緩存被請求的線,或如果只有S狀態(tài)的副本存在的話,則利 用發(fā)送給本地節(jié)點的第二個請求來確認前一個請求,其中此刻可能已經 從其存儲器中取出所述本地節(jié)點。不論是在哪種情況下,為了同步化和 沖突解決起見,所述本地節(jié)點都必須響應第二個請求(盡管它們往往能 夠被組合在一起也響應第一個請求)。注意,本地節(jié)點可以具有一個或 多個高速緩存,所以它可以像任何其它節(jié)點那樣響應初始請求。所述數據一旦到達而非等待所有的響應,就因允許節(jié)點使用所述數 據而造成復雜化。由此,允許接收數據副本的節(jié)點一接收就在內部立即 使用所述數據,但是可以不影響使用其余系統(tǒng)可見的數據直到所述節(jié)點 已經從本地節(jié)點那里接收到確認為止。所述確認還可以包括節(jié)點必須將 它的副本轉發(fā)給另一個節(jié)點的指令,并且或許會從它自己的高速緩存中 驅逐所述節(jié)點。當節(jié)點通過提供已高速緩存的數據對來自于另 一個節(jié)點的請求作 出響應時,所述節(jié)點推延它為同一個超高速緩沖存儲器線接收的所有其 它請求直到所述節(jié)點接收到來自本地節(jié)點的響應,該響應確認所述節(jié)點 轉發(fā)了該數據的事實,由此確保所有節(jié)點都注意到相同順序的(可能可 寫的)超高速緩沖存儲器線的傳送。所述本地節(jié)點是未高速緩存的數據的存儲庫,但是所述本地節(jié)點還 可以具有產生請求的處理器并且包括一個或多個高速緩存。像任何其它 的節(jié)點一樣,當本地節(jié)點處理器錯過時,所述本地節(jié)點必須向所有其它 (對等)節(jié)點廣播請求,并且所述本地節(jié)點必須內部地處理所述請求, 因為它可能是針對本地節(jié)點而到達的任何其它請求。注意,這是一個特 例,因為本地節(jié)點不顯式地向它自身(本地節(jié)點)發(fā)送消息。另外,當 外部請求針對局部高速緩存的數據而到達時,所述本地節(jié)點必須以這樣一種方式來進行響應,以確保來自本地節(jié)點的最新響應不是有歧義的。 也就是說,所述本地節(jié)點可以通過提供所述數據來響應初始請求,但是 所述本地節(jié)點同時也必須作為本地節(jié)點來響應第二個請求。協(xié)議的變形允許本地節(jié)點在不知道數據是否有效的情況下以這個 數據的未高速緩存的副本響應,把它留給發(fā)請求的節(jié)點并且來自本地節(jié) 點的第二個響應挑選出不適當地提供數據的情形。轉發(fā)狀態(tài)的綜述在一個實施例中,所述轉發(fā)狀態(tài)是用在異步地廣播請求的系統(tǒng)中的,這意味著所述響應不能被系統(tǒng)中的所有節(jié)點注意到,并且具有在F狀態(tài)下存儲的數據的節(jié)點不能具有唯一的副本,因為有效的副本是(例如,由本地節(jié)點)存儲在存儲器中的。由此,不同于MOESI協(xié)議的所擁
有狀態(tài),其中處于o狀態(tài)下的數據是唯一有效的數據副本,可以丟棄處 于F狀態(tài)下的數據或者如果期望的話則將其轉變成S狀態(tài)。
在存儲器中存在有效的被請求數據的副本的環(huán)境下,所述F狀態(tài)可 以被稱作為"平等中的第一,,的概念。早先的協(xié)議(例如,M0ESI和SCI ) 沒有提供這種狀態(tài)。所述M0ESI協(xié)議維護所擁有的副本,因為有效的副 本并不是維護在存儲器中的。僅僅通過更新存儲器中的副本就可以清除 該所擁有的副本。所述SCI協(xié)議不是廣播協(xié)議,因為請求是發(fā)送給將要 處理的目錄節(jié)點的。
圖2a和2b是使用轉發(fā)狀態(tài)將數據從其本地節(jié)點傳送到兩個對等節(jié) 點中的每一個的;f既念上的"i兌明。在圖2a和2b以及圖3a至3c的示例中, 虛線表示先前發(fā)送的消息,而實線表示正被描述的消息。為了保持圖更 加清楚,當分解一組消息(例如,PRIL和對應的IACK)時,所述這些 線表示消息不再被包含在所述圖中。
隨后的論述是就多節(jié)點系統(tǒng)內的節(jié)點而言給出的。在 一 個實施例 中,非本地節(jié)點包含具有內部高速緩沖存儲器和/或外部高速緩沖存儲 器的處理器。在可替換的實施例中,非本地節(jié)點是與其它電子系統(tǒng)相連的電子系統(tǒng)(例如,計算機系統(tǒng)、移動裝置)。在又一個實施例中,每 個節(jié)點和所有節(jié)點都可以是具有內部高速緩沖存儲器和鄰接的存儲系統(tǒng)的處理器。在上面描述的最后一個實施例中,當所請求的數據在節(jié)點 的存儲系統(tǒng)中是本地的時,所述節(jié)點能夠充當對該請求的本地節(jié)點。
圖2a舉例說明了多節(jié)點系統(tǒng),其中僅僅由本地節(jié)點240存儲所請 求的數據集(例如,超高速緩沖存儲器線)。這個狀態(tài)例如可以在存取 數據集的第一時間出現。將數據存儲在與本地節(jié)點240相關聯的存儲器 中,而不是存儲在與任何節(jié)點210、 220和230相關聯的高速緩沖存儲 器中。對等節(jié)點230通過向系統(tǒng)的所有節(jié)點廣播PRL消息來請求數據 塊。對等節(jié)點230能夠利用其它類型的消息(例如,PRIL消息)來請求 數據塊。
圖2b舉例說明了響應于對等節(jié)點230的數據請求的圖2a的多節(jié)點 系統(tǒng)。節(jié)點210和220向對等節(jié)點230發(fā)送IACK消息,以表明節(jié)點210 和220的高速緩沖存儲器不包含被請求數據的有效副本。本地節(jié)點240 在DataE消息中向對等節(jié)點230發(fā)送被請求數據。所述DataE消息向對 等節(jié)點230表明被請求數據應被存儲在處于E狀態(tài)下的對等節(jié)點230上。當另一個對等節(jié)點(例如,對等節(jié)點220 )對相同的超高速緩沖存 儲器線產生后續(xù)請求時,對等節(jié)點230通過以DataF消息(而非如本地 節(jié)點240所提供的DataE消息)響應來自對等節(jié)點220的PRL請求來直 接地向對等節(jié)點220提供超高速緩沖存儲器線。對等節(jié)點230將其超高 速緩沖存儲器線的副本轉變?yōu)楣蚕頎顟B(tài)(S)。此外,當對等節(jié)點220 隨著來自對等節(jié)點230的DataF消息一起接收來自對等節(jié)點210的接 收時,該對等節(jié)點220就向本地節(jié)點240發(fā)送CNCL ()消息。然后,本 地節(jié)點240向對等節(jié)點220發(fā)送ACK消息,由此許可對等節(jié)點220使超 高速緩沖存儲器線保持在F狀態(tài)下。對等節(jié)點220能繼而以DataF響應 對相同的超高速緩沖存儲器線的后續(xù)請求。在一個實施例中,處于F狀態(tài)下的數據的副本是用來向隨后發(fā)請求 的節(jié)點提供附加副本的副本。由此,使用處于F狀態(tài)下的數據來對將來 的數據副本請求作出響應。將新創(chuàng)建的數據副本置于F狀態(tài)下,而將早 先處于F狀態(tài)下的數據副本置成S狀態(tài)。換言之,如果共享所述數據, 則一個共享副本就處于F狀態(tài)下,而剩余的數據副本(如果有的話)就 處于S狀態(tài)下??商鎿Q地,使被請求數據的副本的源維持在F狀態(tài)下, 并且在S狀態(tài)下存儲新的副本。處于F狀態(tài)下的數據的單個副本帶來了至少兩個優(yōu)點。第一,高速 緩存到高速緩存的響應 一般比存儲器到高速緩存的響應更快速。因此, 在指定單個的情況下,用來向發(fā)請求的節(jié)點提供副本的高速緩存的數據 副本能夠提高多節(jié)點系統(tǒng)的整體性能。第二,所述F狀態(tài)使數據從S狀態(tài)到修改(M)狀態(tài)的轉變簡單化。 因為只有一個處于F狀態(tài)下的數據副本存在,所以這允許了用于解決沖突請求的單個點并降低了轉變成使所有其它副本無效的一種狀態(tài)的可 能。使用處于F狀態(tài)下的副本以提供冗余的副本,使得更易于禁止在這 期間副本的激增。圖3a至3c是利用轉發(fā)狀態(tài)在對等節(jié)點之間進行的數據傳送的概念 上的例圖。圖3a舉例說明了對早先請求的數據和目前在F狀態(tài)下存儲 于對等節(jié)點230中的數據進行請求的對等節(jié)點210 (例如,正如在上面 圖2a和2b中舉例說明的那樣)。為了請求所述數據,對等節(jié)點210向 系統(tǒng)的其它節(jié)點廣播PRL消息(對等節(jié)點210還可以將PRL消息傳輸到 節(jié)點的子集)。對等節(jié)點220以IACK消息響應,以表明對等節(jié)點220 不具有被請求數據的有效副本。對等節(jié)點230以DataF消息響應,來向 對等節(jié)點210提供數據副本并指示對等節(jié)點210應該在F狀態(tài)下存儲該 數據。在另一個實施例中,將對等節(jié)點230所存儲的被請求數據的副本 置于S狀態(tài)下。圖3b舉例說明了響應于從對等節(jié)點230那里接收被請求數據的副 本的、來自于對等節(jié)點210的消息。當對等節(jié)點210從對等節(jié)點220和 230那里接收到所有的響應時,該對等節(jié)點210就向本地節(jié)點240發(fā)送 CNCL ()消息,該CNCL ()消息4吏本地節(jié)點240響應于來自對等節(jié)點 210的PRL消息,暫停已開始的取出操作,并且相對于該PRL消息指示 不存在已知沖突。然后,所述本地節(jié)點240向節(jié)點210發(fā)送ACK消息。圖3c舉例說明了來自本地節(jié)點240的、結束從對等節(jié)點230到對 等節(jié)點220的數據傳送的最終消息。在一個實施例中,一旦對等節(jié)點210 接收到該ACK消息,該對等節(jié)點210就向對等節(jié)點230發(fā)送DACK消息 以表明對等節(jié)點210已經從對等節(jié)點230那里接收到了被請求的數據。 在可替換的實施例中,本地節(jié)點240能夠向對等節(jié)點230發(fā)送DACK消 息而不是讓對等節(jié)點210向節(jié)點230發(fā)送該DACK消息。在可替換的實 施例中,來自對等節(jié)點210的CNCL ()消息包含指示對等節(jié)點210從對 等節(jié)點230接收數據的信息以便本地節(jié)點240能夠追蹤到哪個對等節(jié)點 應該4姿收該DACK消 息o雖然圖2a和2b以及圖3a至3c的示例是相對于四節(jié)點系統(tǒng)加以描 述的,但是在這里描述的技術可應用到任何大小的多節(jié)點系統(tǒng)。圖2a 和2b以及圖3a至3c的節(jié)點是用來表示能夠存儲數據和請求數據副本 的任何類型的組件。例如,節(jié)點可能是多處理機計算機系統(tǒng)中的高速緩 沖存儲器,或者節(jié)點可能是網絡中的計算機系統(tǒng),或者節(jié)點可能是更復 雜的系統(tǒng)內的一個或多個處理器和/或高速緩沖存儲器的群組。處理流禾呈的 一個實施例圖4是與用于利用轉發(fā)狀態(tài)來提供數據副本的技術的一個實施例相 對應的流程圖。在一個實施例中,當節(jié)點請求數據時,發(fā)請求的節(jié)點向 系統(tǒng)的所有其它節(jié)點廣播對數據的請求(例如,PRIL消息)(410)。 在可替換的實施例中,可以將所述請求傳輸到系統(tǒng)內的節(jié)點的子集,或 經由網絡連接傳輸到其它節(jié)點。
從系統(tǒng)中的其它節(jié)點那里4妾收響應消息(415)。正如上面所i侖述 的那樣,所述響應消息可能采取幾種形式。發(fā)請求的節(jié)點將從不具備被 請求數據的有效副本的系統(tǒng)中的節(jié)點那里接收一個或多個xACK (例如, IACK、 SACK)消息。發(fā)請求的節(jié)點還將從具有處于F狀態(tài)下的被請求數 據的副本的本地節(jié)點或對等節(jié)點那里接收DATAx (例如,DataF、 DataM) 消息。如果已經接收到所有的響應(420 ),則發(fā)請求的節(jié)點就隨已標識 的沖突列表一起向本地節(jié)點發(fā)送READ消息或CANCEL消息(425 )。如 果ACK消息是接收自本地節(jié)點的(430 ),那么就在DATA消息所表示的 狀態(tài)下存儲數據。如果XFER消息是接收自本地節(jié)點而非ACK消息的話 (440 ),那么發(fā)請求的節(jié)點就處理來自于本地節(jié)點的XFER消息。響應于XFER消息,發(fā)請求的節(jié)點向XFER消息所表示的節(jié)點發(fā)送 DATA消息(445 )。如果XFER消息表明所述數據應被無效(450 ),那 么發(fā)請求的節(jié)點就使所保留的數據的副本無效(455 )。如果XFER消息 沒有令發(fā)請求的節(jié)點使數據的副本無效(450 ),那么發(fā)請求的節(jié)點就 在S狀態(tài)下存儲所述數據(460 )。節(jié)點的示例實施例圖5是節(jié)點的一個實施例的框圖。節(jié)點500是以單個處理器、高速 緩沖存儲器、存儲器控制器和存儲器來舉例說明的;然而,任何組件中 的許多組件都能夠被包含在節(jié)點當中。此外,還可以將附加的和/或不 同的組件(例如,總線橋)包含在節(jié)點中。處理器510可以是本領域中所/>知的任何類型的處理器。在一個實 施例中,處理器510包含高速緩沖存儲器520。在可替換的實施例中, 高速緩沖存儲器520是位于處理器510之外的,并且/或者可以在處理 器510之內或之外包含附加的高速緩沖存儲器。存儲器控制器530與高速緩沖存儲器520和存儲器540相耦合。存 儲器控制器530作為處理器510、高速緩沖存儲器520與存儲器540之 間的接口來進行操作。在一個實施例中,存儲器控制器530根據這里所 述的高速緩存同步協(xié)議來維護高速緩存同步。存儲器控制器5 3 0經由節(jié) 點鏈接550與其它節(jié)點進行交互。在可替換的實施例中,處理器510與 存儲器控制器530進行交互以維護如這里所述的高速緩存同步,并且處 理器510經由可替換的節(jié)點鏈接555來與其它節(jié)點進行交互。
多處理器系統(tǒng)的示例實施例圖6是多處理器系統(tǒng)的一個實施例。多處理器系統(tǒng)600是用來表示 具有多個處理器的系統(tǒng)的范圍,例如計算機系統(tǒng)、實時監(jiān)控系統(tǒng)等等。 可替換的多處理器系統(tǒng)可以包括更多的、更少的和/或不同的組件。在 某些情形中,可以將這里所述的高速緩存管理技術應用于單個處理器和 多處理器系統(tǒng)兩者??梢园讯嗵幚砥飨到y(tǒng)600配置成作為多節(jié)點系統(tǒng)進 行操作。多處理器系統(tǒng)600包括總線系統(tǒng)610或其它通信設備以傳遞信息。 總線系統(tǒng)610可以包括許多總線和相關的互連電路(例如總線橋)。處 理器620與總線系統(tǒng)610相耦合以處理信息。處理器620可以包括高速 緩沖存儲器622 (例如零電平(LO)高速緩沖存儲器)和高速緩存控制 器624。在一個實施例中,處理器620還與高速緩存625相耦合,所述 高速緩存625可以是任何類型的高速緩沖存儲器。在可替換的實施例 中,高速緩存625可以與總線系統(tǒng)610相耦合。還可以使用其它類型的 處理器高速緩存配置。在一個實施例中,高速緩存控制器624經由高速緩沖存儲器接口 628與高速緩沖存儲器622相耦合,所述高速緩沖存儲器接口 628例如 可以是到處理器620內部的總線。高速緩存控制器經由高速緩存接口 626與高速緩沖存儲器625相耦合,所述高速緩存接口 626提供了處理 器62 0和外部高速緩沖存儲器之間的接口 。多處理器系統(tǒng)6 0 0還包括具有高速緩沖存儲器6 32和高速緩存控制 器634的處理器630。高速緩存控制器634經由高速緩存接口 638與高 速緩沖存儲器632相耦合。同樣,高速緩存控制器634經由高速緩存接 口 636與高速緩沖存儲器635相耦合。在一個實施例中,高速緩沖存儲 器635與處理器630相耦合。雖然多處理器系統(tǒng)600是以兩個處理器來舉例說明的,但是多處理 器系統(tǒng)600能夠包括許多處理器和/或協(xié)處理器。多處理器系統(tǒng)600還 包括與總線系統(tǒng)610相耦合的存儲系統(tǒng)640。在適當的情況下,存儲系 統(tǒng)640能夠包括動態(tài)(例如,隨機存取存儲器)和靜態(tài)(例如,只讀存 儲器、CD-ROM、盤式存儲器、快閃存儲器)存儲裝置與相關的驅動器的 任何組合。使用存儲系統(tǒng)640的存儲裝置來存儲將由多處理器系統(tǒng)600 的處理器執(zhí)行的信息和指令。還可以在由處理器執(zhí)行指令期間使用存儲
系統(tǒng)6 4 0來存儲臨時變量或其它中間信息??梢越浻捎芯€或無線的遠程連接等等、從靜態(tài)或遠程存儲裝置那里向存儲系統(tǒng)640提供指令,所述存儲裝置比如像磁盤、只讀存儲器(ROM) 集成電路、CD-R0M、 DVD。在可替換的實施例中,可以代替軟件指令或 與軟件指令相結合地使用硬件實現的電路。因此,指令序列的執(zhí)行不限 于任何特定的硬件電路和軟件指令的組合。多處理器系統(tǒng)600還包括用于提供對諸如局域網和/或因特網之類 的網絡的訪問的網絡接口 650。網絡接口 650能夠提供無線和/或有線的 網絡接口 ,所述網絡接口能夠包括向和/或來自遠程電子可訪問介質的 指令的通信。電子可訪問介質包括以電子裝置(例如,計算機、個人數 字助理、蜂窩式電話)可讀的形式提供(即,存儲和/或傳輸)內容(例 如,計算機可執(zhí)行指令)的任何機構。例如,機器可訪問介質包括只讀存儲器(ROM);隨機存取存儲 器(RAM);磁盤存儲介質;光存儲介質;快閃存儲裝置;電學、光學、 聽覺或其它形式的傳播信號(例如,載波、紅外信號、數字信號)。多處理器系統(tǒng)600還可以包括用于顯示信息的顯示裝置660,比如 陰極射線管(CRT)或液晶顯示器(LCD)。輸入裝置670例如包括具有 字母數字鍵及其它鍵的鍵盤,該輸入裝置670被典型地耦合到總線610 以向處理器620和/或630傳遞信息和命令選擇。另一種類型的用戶輸 入裝置是用于向處理器620和630傳遞方向信息和命令選擇并用于控制 顯示裝置660上的光標移動的光標控制裝置(比如鼠標、跟蹤球或光標 方向4建)。結論在說明書中對"一個實施例"或"實施例"的引用意指結合實施例 所描述的特定的特征、結構或特性是包含在本發(fā)明的至少一個實施例當 中的。短語"在一個實施例中,,在說明書中的不同地方的出現未必都是 指同一個實施例。在上述說明書中,已經參照本發(fā)明的特定實施例描述了本發(fā)明。然 而,顯然在不背離本發(fā)明的更寬泛的精神和范圍的情況下能夠對本發(fā)明 作出各種不同的修改和變化。所以,應該把說明書和附圖一見作為說明性的而非限制性的??梢詫狀態(tài)用在基于總線的多處理器系統(tǒng)中。
權利要求
1.一種方法,其包括將數據段的副本的請求從發(fā)請求的節(jié)點傳輸到多節(jié)點系統(tǒng)中的一個或多個節(jié)點,其中接收該請求的其中一個節(jié)點是在非高速緩沖存儲器中存儲該數據段的本地節(jié)點,而非本地節(jié)點是到發(fā)請求的節(jié)點的對等節(jié)點,如果有副本,則該發(fā)請求的節(jié)點在與各自的對等節(jié)點相關聯的高速緩沖存儲器中存儲該副本;如果對等節(jié)點中的任何一個都沒有存儲可共享的數據段的副本,則從本地節(jié)點那里提供數據段的副本;以及從存儲處于轉發(fā)狀態(tài)下的數據段副本的對等節(jié)點那里提供數據段的副本,其中只有由多個對等節(jié)點存儲的多個數據段副本的其中一個被指定處于轉發(fā)狀態(tài)。
2. 如權利要求1所述的方法,進一步包括如果所指定的對等節(jié) 點是唯一的存儲數據段副本的對等節(jié)點,則從所指定的具有數據段副本 的對等節(jié)點那里提供數據段的副本。
3. 如權利要求l所述的方法,其進一步包括 將提供給發(fā)請求的節(jié)點的數據段副本指定為處于轉發(fā)狀態(tài);以及 響應于來自發(fā)請求的節(jié)點的數據段請求,將來自對等節(jié)點的處于轉發(fā)狀態(tài)下的數據段副本指定為處于共享狀態(tài)。
4. 如權利要求1所述的方法,其中將數據段的副本請求從發(fā)請求 的節(jié)點傳輸到多節(jié)點系統(tǒng)的一個或多個節(jié)點包括向多節(jié)點系統(tǒng)的所有 未發(fā)請求的節(jié)點廣播所述請求。
5. 如權利要求1所述的方法,其中將數據段的副本請求從發(fā)請求 的節(jié)點傳輸到多節(jié)點系統(tǒng)的一個或多個節(jié)點包括將所述請求傳輸到多 節(jié)點系統(tǒng)的所有未發(fā)請求的節(jié)點的子集。
6. 如權利要求1所述的方法,其中所述數據段包括超高速緩沖存 儲器線。
7. 如權利要求1所述的方法,其中所述數據段包括小于超高速緩 沖存儲器線的數據塊。
8. 如權利要求1所述的方法,其中所述數據段包括大于超高速緩 沖存儲器線的數據塊。
9. 一種系統(tǒng),其包括2 與存儲系統(tǒng)相耦合的本地節(jié)點,以存儲數據段的原本;和 經由總線系統(tǒng)與本地節(jié)點相耦合的多個對等節(jié)點,所述多個對等節(jié) 點具有高速緩沖存儲器,其中,響應于由請求數據段副本的發(fā)請求的對 等節(jié)點所發(fā)出的請求,如果未發(fā)請求的對等節(jié)點具有處于轉發(fā)狀態(tài)下的 數據段副本,則該未發(fā)請求的對等節(jié)點提供數據段的副本,而如果未發(fā) 請求的對等節(jié)點不具有處于轉發(fā)狀態(tài)下的數據段副本,則本地節(jié)點提供 數據段的副本,并且進一步其中, 一個或多個高速緩存的數據段副本當 中只有 一個在所述請求之前是處于轉發(fā)狀態(tài)的。
10. 如權利要求9所述的系統(tǒng),其中所述數據段包括超高速緩沖存 儲器線。
11. 如權利要求9所述的系統(tǒng),其中所述數據段包括小于超高速緩 沖存儲器線的數據塊。
12. 如權利要求9所述的系統(tǒng),其中所述數據段包括大于超高速緩 沖存儲器線的數據塊。
13. 如權利要求9所述的系統(tǒng),其中所述發(fā)請求的對等節(jié)點向本地 節(jié)點和每個未發(fā)請求的對等節(jié)點廣播數據段請求。
14. 如權利要求9所述的系統(tǒng),其中所述發(fā)請求的對等節(jié)點將數據 段請求傳輸到本地節(jié)點和每個未發(fā)請求的對等節(jié)點的子集。
15. —種設備,其包括 高速緩沖存儲器控制器;與高速緩沖存儲器控制器相耦合的高速緩沖存儲器接口 ,所述高速 緩沖存儲器接口允許高速緩沖存儲器控制器與高速緩沖存儲器進行交 互;和與高速緩沖存儲器控制器相耦合的系統(tǒng)接口 ,所述系統(tǒng)接口允許高 速緩沖存儲器控制器與系統(tǒng)的其它組件進行交互;其中當數據段將被使用并且有效的數據段副本未被存儲在高速緩 沖存儲器中時,所述高速緩沖存儲器控制器經由系統(tǒng)接口傳輸數據段請 求,并且進一步其中當接收到被請求數據段的副本時,所述高速緩沖存 儲器控制器令被請求數據的副本將被存儲在高速緩沖存儲器中并且指 定為處于轉發(fā)狀態(tài),并且進一步其中當經由系統(tǒng)接口接收到數據段副本 的請求時,如果所存儲的副本處于轉發(fā)狀態(tài)下,則所述高速緩沖存儲器 控制器令數據段副本被傳輸出去。
16. 如權利要求15所述的設備,其中所述數據段包括超高速緩沖 存儲器線。
17. 如權利要求15所述的設備,其中所述高速緩沖存儲器控制器 使數據段的請求被廣播到多節(jié)點系統(tǒng)的每個節(jié)點。
18. 如權利要求15所述的設備,其中所述高速緩沖存儲器控制器 使數據段的請求被廣播到多節(jié)點系統(tǒng)的節(jié)點子集。
19. 如權利要求15所述的設備,進一步包括與高速緩沖存儲器控 制器相耦合的存儲器接口 ,用于允許高速緩沖存儲器控制器和外部存儲 器之間的交互,其中響應于數據段的副本請求,針對所述請求將外部存 儲器指定為本地節(jié)點,所述高速緩沖存儲器控制器使數據段從外部存儲 器被檢索出來,并經由網絡接口傳輸給發(fā)請求的節(jié)點。
20. —種包括機器可訪問介質的產品,用于提供機器可讀指令,當 執(zhí)行該機器可讀指令時令一個或多個電子系統(tǒng)在具有多個高速緩沖存儲器的系統(tǒng)當中的一個或多個高速緩沖存 儲器中存儲數據塊;將單個高速緩存的數據塊的副本指定為將用于對數據塊的副本請求作出響應的副本;以及通過給數據塊的副本提供存儲所指定的數據塊副本的高速緩沖存 儲器來對數據塊請求作出響應。
21. 如權利要求20所述的產品,其還包括如下指令,當執(zhí)行所述 指令時,令一個或多個電子系統(tǒng)存儲作為對發(fā)請求的高速緩沖存儲器的 響應而提供的數據塊副本,其中將由發(fā)請求的高速緩沖存儲器存儲的數 據塊的副本指定為將用于對將來的數據塊副本請求作出響應的單個高 速緩存副本。
22. 如權利要求20所述的產品,其中所述數據塊包括超高速緩沖 存儲器線。
23. 如權利要求20所述的產品,其中令所述一個或多個電子系統(tǒng) 通過給數據塊副本提供存儲所指定的數據塊副本的高速緩沖存儲器來 對數據塊請求作出響應的指令包括如下指令,當執(zhí)行所述指令時,令該 一個或多個電子系統(tǒng)接收數據塊請求;確定數據塊副本是否被存儲在本地高速緩沖存儲器中; 如果數據塊副本是被存儲在本地高速緩沖存儲器中,則確定所存儲的數據塊是否是所指定的數據塊的副本;以及如果所存儲的數據塊是所指定的數據塊的副本,則將數據塊副本傳輸到發(fā)請求的高速緩沖存儲器。
24. —種包括機器可訪問介質的產品,用于提供機器可讀指令,當 執(zhí)行該機器可讀指令時,令一個或多個電子系統(tǒng)從發(fā)請求的節(jié)點向多節(jié)點系統(tǒng)的 一個或多個節(jié)點傳輸數據段的副 本請求,其中接收所述請求的其中一個節(jié)點是在非高速緩沖存儲器中存 儲該數據段的本地節(jié)點,并且非本地節(jié)點是到發(fā)請求的節(jié)點的對等節(jié) 點,如果有副本,則該發(fā)請求的節(jié)點在與各自的對等節(jié)點相關聯的高速 緩沖存儲器中存儲該副本;如果對等節(jié)點中沒有任何一個存儲可共享的數據段副本,則從本地 節(jié)點那里提供數據段副本;以及從在轉發(fā)狀態(tài)下存儲數據段副本的對等節(jié)點那里提供數據段副 本,其中由多個對等節(jié)點所存儲的多個數據段副本中只有一個被指定為 轉發(fā)狀態(tài)。
25. 如權利要求24所述的產品,還包括如下指令,當執(zhí)行所述指 令時,如果所指定的對等節(jié)點是用于存儲數據段副本的唯一的對等節(jié) 點,則令一個或多個電子系統(tǒng)從具有數據段副本的指定的對等節(jié)點那里 提供數據段副本。
26. 如權利要求24所述的產品,還包括如下指令,當執(zhí)行所述指 令時,4^一個或多個電子系統(tǒng)將提供給發(fā)請求的節(jié)點的數據段副本指定為處于轉發(fā)狀態(tài);以及 響應于來自于發(fā)請求的節(jié)點的數據段請求,將來自對等節(jié)點的處于 轉發(fā)狀態(tài)下的數據段副本指定為處于共享狀態(tài)。
27. 如權利要求24所述的產品,其中令一個或多個電子系統(tǒng)從發(fā) 請求的節(jié)點向多節(jié)點系統(tǒng)的一個或多個節(jié)點傳輸針對數據段副本的請 求的指令包括如下指令,當執(zhí)行所述指令時,令一個或多個電子系統(tǒng)向 多節(jié)點系統(tǒng)的所有未發(fā)請求的節(jié)點廣播所述請求。
28. 如權利要求24所述的產品,其中令所述一個或多個電子系統(tǒng) 從發(fā)請求的節(jié)點向多節(jié)點系統(tǒng)的 一個或多個節(jié)點傳輸數據段副本請求 的指令包括如下指令,當執(zhí)行所述指令時,令一個或多個電子系統(tǒng)向多 節(jié)點系統(tǒng)的所有未發(fā)請求的節(jié)點的子集傳輸所述請求。
29.如權利要求24所述的產品,其中所述數據段包括超高速緩沖存儲器線。
全文摘要
這里所述的是一種具有五種狀態(tài)的高速緩存同步協(xié)議,該五種狀態(tài)為修改、排它、共享、無效和轉發(fā)(MESIF)。所述MESIF高速緩存同步協(xié)議包括轉發(fā)(F)狀態(tài),該狀態(tài)指明單個數據副本,從所述數據副本中能夠產生另一個副本。利用F狀態(tài)下的超高速緩沖存儲器線來響應對超高速緩沖存儲器線的副本的請求。在一個實施例中,將新創(chuàng)建的副本置于F狀態(tài)下并將先前處于F狀態(tài)下的超高速緩沖存儲器線置成共享(S)狀態(tài)或無效(I)狀態(tài)。由此,如果共享超高速緩沖存儲器線,則一個共享的副本就處于F狀態(tài)下并且剩余的超高速緩沖存儲器線副本處于S狀態(tài)下。
文檔編號G06F12/08GK101127009SQ20071014830
公開日2008年2月20日 申請日期2003年12月3日 優(yōu)先權日2002年12月19日
發(fā)明者H·胡姆, J·A·古德曼 申請人:英特爾公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
凤城市| 东兰县| 吉水县| 房产| 婺源县| 文昌市| 南康市| 周至县| 烟台市| 东方市| 儋州市| 德兴市| 大新县| 江陵县| 麻江县| 五峰| 紫阳县| 绵阳市| 义乌市| 平谷区| 宾川县| 上栗县| 泽普县| 会泽县| 舟山市| 南靖县| 温宿县| 农安县| 菏泽市| 嘉黎县| 尉犁县| 仁怀市| 囊谦县| 静海县| 柏乡县| 德格县| 峨山| 上高县| 宣恩县| 庄浪县| 旅游|