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

路由表的動態(tài)更新的制作方法

文檔序號:7710659閱讀:210來源:國知局
專利名稱:路由表的動態(tài)更新的制作方法
技術領域
本發(fā)明涉及高速點對點互連鏈路,具體來說,涉及點對點互連架 構中的路由選擇。
背景技術
隨著計算機發(fā)展,它們已經(jīng)從簡單算術計算領域轉移到任何數(shù)量 的媒體和非媒體應用的媒體中心。因此,計算機系統(tǒng)往往包括任何數(shù) 量的外圍或輸入/輸出裝置。此外,半導體處理和計算機設計的發(fā)展 使計算機系統(tǒng)能夠在單個物理處理器上包括更多晶體管和處理能力, 同時還允許多個物理處理器駐留在單個系統(tǒng)中。以前,在斷電時將這 些處理器和其它裝置加入計算機系統(tǒng),以便允許計算機正確初始化和 處理新紐/f牛。
但是,近來,設計人員已經(jīng)使用戶能夠在機器的運行時間期間對
組件/裝置進行添加或去除(remove)。這種類型的去除往往稱作裝置/ 組件的"熱添加"或"熱去除"。然而,組件的熱添加或去除并不局限于 對系統(tǒng)的物理添加或去除。實際上,軟件設計人員、如操作系統(tǒng)(OS) 設計人員還已經(jīng)支持從軟件的角度的熱添加或去除。換言之,熱去除 的裝置仍然可以在物理上存在、斷電、軟件不識別、虛擬去除或者它 們的4壬何組合。
作為集成電if各及其處理能力發(fā)展的必然結果,裝置之間的互連也 發(fā)展為向高功率組件提供足夠帶寬。 一種類型的互連架構包括基于相 關(coherent)鏈路的架構。作為一個具體示例,架構中的組件可利用點 對點鏈路進行耦合,在點對點鏈路中將裝置/代理被^L為相互路由消 息的節(jié)點。
6目前,在對這種類型的互連架構"熱添加"或"熱去除"組件、代理 和/或節(jié)點時,相應地暫停整個系統(tǒng)以更新路由選擇信息從而加入或
解除分配熱添加或熱去除的裝置。這種暫?;蜢o止(quiescence)引 起所有當前消息的清除,因為新的路由選擇信息可導致相對于這些 消息的路由選擇差錯,系統(tǒng)的暫?;蜢o止,以及由某個外部軟件或固 件、如基本輸入輸出軟件(BIOS)對路由選擇表的更新??梢栽O想,用 于添加或去除代理的這種靜止過程可能是昂貴的,它引起可能更慢的 終端用戶體-驗。

發(fā)明內容
本發(fā)明的第一方面提供一種互連代理,包括多個端口,能夠通 過點對點鏈路與多個代理耦合;以及,第一邏輯,保存包含目標條目 的路由選擇表,所述目標條目按照優(yōu)先順序將所述多個端口與目標代 理相關聯(lián)。
本發(fā)明的第二方面提供另一種互連代理,包括在第一節(jié)點中用 于在點對點鏈路上與接收節(jié)點進行通信的部件;用于響應于確定要把 所述第 一節(jié)點熱去除而生成停用消息的部件,所述停用消息將通過用 于在點對點鏈路上與所述接收節(jié)點進行通信的所述部件傳送給所述 第二節(jié)點;以及,用于保存將目標節(jié)點與用于在點對點鏈路上與所述 接收節(jié)點進行通信的所述部件的啟用字段相關聯(lián)的表的部件,其中, 響應于在用于在點對點鏈路上與所述接收節(jié)點進行通信的所述部件 上接收到與所述停用消息相關聯(lián)的完成消息,將用于在點對點鏈路上 與所述接收節(jié)點進行通信的所述部件的所述啟用字段更新為停用值。
本發(fā)明的第三方面提供一種設備,包括第一代理,所述第一代理 包含多個端口,其中,所述多個端口的第一端口將接收到端口停用 消息;以及,第一邏輯,保存含有與多個目標代理相關聯(lián)的多個條目 的表,所述多個條目中每個條目保存與所述多個端口對應的多個啟用 字段,以及其中,所述第一邏輯響應于所述第一端口接收到所述端口停用消息而將與所述第一端口對應的多個條目的每個條目中保存的 啟用字段更新為停用值。
本發(fā)明的第四方面提供一種系統(tǒng),包括第一代理,包括響應于 與第二代理相關聯(lián)的熱添加事件而生成至所述第二代理的啟用端口
消息;第二代理,包括第一端口、第二端口和第一邏輯,所述第一邏 輯將所述第一代理的目標標識符與用于所述第一端口的第一啟用字 段以及用于所述第二端口的第二啟用字段相關聯(lián),其中,所述第一邏 輯響應于在所述第二端口上接收到來自所述第一代理的所述啟用端 口消息而將所述第二啟用字段更新為啟用值。
本發(fā)明的第五方面提供一種方法,包括響應于與第一節(jié)點相關 聯(lián)的熱去除事件而在所述笫一節(jié)點生成停用端口消息;響應于在所述 第 一節(jié)點的第 一端口上接收到與所述停用端口消息相關聯(lián)的完成消 息而在所述第 一節(jié)點內所保存的多個路由選擇條目中停用所述第一 端口;以及,響應于將所述第一節(jié)點中包括所述第一端口的所有端口 停用而去除所述第一節(jié)點。


附圖中的各圖以舉例而不是限定的方式來說明本發(fā)明。 圖1示出協(xié)議架構的一個實施例。
圖2示出包括利用點對點互連耦合到芯片組的多個處理器的系 統(tǒng)的一個實施例。
圖3示出利用分層輸入/輸出(I/0)棧的雙向互連架構的框圖的一 個實施例。
圖4示出包括邏輯的多個代理的一個實施例,所述邏輯保存具有
與多個端口關聯(lián)的目標條目的表。
圖5示出代理的熱去除的協(xié)議/流程圖的一個實施例。
圖6示出用于執(zhí)行返回循環(huán)(cycle)以將用于目標代理的端口停用
的協(xié)議/流程圖的 一個實施例。圖7示出代理的熱添加的協(xié)議/流程圖的一個實施例。
具體實施例方式
在以下描述中,提出例如具體互連架構、具體消息、具體路由選 擇表實現(xiàn)、具體互連架構層等的示例的許多具體細節(jié),以便提供對本 發(fā)明的透徹理解。然而,本領域的技術人員會清楚地知道,這些具體 細節(jié)不一定要用于實施本發(fā)明。在其它情況下,沒有詳細描述例如具 體互連層架構細節(jié)/邏輯、具體非相關消息和協(xié)議、處理器和高速緩 存的具體操作細節(jié)等的眾所周知的組件或方法,以免不必要地混淆本 發(fā)明。
本文所述的方法和設備用于在無需靜止的情況下提供對路由選 擇信息的動態(tài)修改的支持。具體來說,主要參照在下文更詳細描述的 說明性的基于高速緩存相關鏈路的互連架構來論述路由選擇信息的 動態(tài)修改。但是,用于修改在互連架構中沒有相關性的路由選擇信息 的方法和設備并不局限于此,因為它們可采用任何已知的互連架構來 實現(xiàn)。
i兌明性互連架構的實施例
圖1示出高級簡化協(xié)議架構的一個實施例。在一個實施例中,協(xié) 議架構將在正常事務期間以及在沖突請求期間保持架構內高速緩存 中的數(shù)據(jù)之間的數(shù)據(jù)一致性。另外,在一個實施例中,協(xié)議架構還提 供各請求的轉發(fā)進度,使得滿足并引退/完成各請求。
協(xié)議架構可包括任何數(shù)量的節(jié)點或代理。在一個實施例中,節(jié)點 包括與內部高速緩沖存儲器、外部高速緩沖存儲器和/或外部存儲器 相關聯(lián)的處理器。但是,在互連架構中,節(jié)點或代理可表示任何裝置 或者它們的集合,例如處理器、存儲控制器中心(hub)和I/0中心、 通用控制器中心、I/O裝置、I/O裝置的集合或者能夠訪問存儲器的 任何其它裝置/組件。 另一個實施例中,節(jié)點是與其它電子系統(tǒng)互連的電子系統(tǒng)(例如計算機系統(tǒng)、移動裝置)。也可使用其它類型的節(jié) 點配置。如圖所示,架構100包括高速緩存節(jié)點/代理105-106和歸屬代理 (home agent) 110-112。在一個實施例中,歸屬代理110-112將保護作 為相關存儲器空間的存儲庫(repository)的存儲器存儲單元(location)。 換言之,代理110是歸屬代理,負責用于相關存儲器空間的數(shù)據(jù)的多 個原始物理存儲器存儲單元。歸屬代理110-112可執(zhí)行如下任務的任 何組合跟蹤來自高速緩存代理105-106的高速緩存狀態(tài)轉移、管理 高速緩存代理105-106之間的沖突、與存儲器接口、提供數(shù)據(jù)和/或所 有權以及任何其它已知的與歸屬代理有關的任務。在一個實施例中,高速緩存代理105-106包括與高速緩沖存儲器 關聯(lián)的代理,例如包括高速緩沖存儲器和高速緩存I/O代理實體的處 理器。高速緩存代理105-106可執(zhí)行以下任務的任何組合以及任何其 它任務例如執(zhí)行對相關存儲器空間的讀寫請求,保存來自相關存儲 器空間的數(shù)據(jù)的緩存副本,以及將緩存副本提供給其它對等高速緩存 代理。高速緩存代理或節(jié)點相對于另一個高速緩存代理又可稱作對等 代理/節(jié)點。雖然圖1中沒有具體示出,但是協(xié)議架構還可包括非高速緩存代理,例如代表輸入/輸出(i/o)裝置參與或見證事務的輸入/輸出(I/0)中心。在一個實施例中,高速緩存代理105-106和歸屬代理110-112保 持數(shù)據(jù)一致性,并且通過在網(wǎng)絡結構101上交換消息來提供轉發(fā)進 度。在一個實施例中,結構101幫助消息通過點對點互連網(wǎng)絡從一個 代理/節(jié)點到另一個代理/節(jié)點的傳輸。通常說,圖l示出基礎網(wǎng)絡的 高速緩存相關協(xié)議的概要視圖。在一個實施例中,互連架構100可結合如以下共同未決申請中所 述的新特征的4壬何組合。例如,標題為"Forward State for Use in Cache Coherency in a Multi-Node System"的美國專利號6922756描述了利用 轉發(fā)高速緩存相關性狀態(tài)(F狀態(tài))。此外,在以下申請中論述了各種情形下的相關協(xié)議的示例2004年4月27日提交的標題為"A Two-Hop Cache Coherency Protocol"的申請序號10/833963 (案號 P15925); 2004年4月27日提交的標題為"A Messaging Protocol"的申 請序號10/833965 (案號P18890); 2004年4月27日提交的標題為"A Cache Coherence Protocol"的申請序號10/833977 (案號P18891); 2006 年1月11日提交的標題為"A Two-Hop Source Snoop Based Cache Coherence Protocol"的申請序號11/330977 (案號P22376);以及2006 年1月11日I是交的標題為"A Two-Hop Source Snoop Messaging Protocol"的申請序號11/331301 (案號P23106)。其它示例包括2002年12月19日的標題為"Speculative Distributed Conflict Resolution for a Cache Coherency Protocol"的申請 號10/325427 (案號P13923); 2002年12月19日提交的標題為 "Hierarchical Directories for Cache Coherency in a Multiprocessor System"的申請?zhí)?0/326234 (案號P13984); 2002年12月19日提交 的標題為"Hierarchical Virtual Model of a Cache Hierarchy in a Multiprocessor System"的申請?zhí)?0/324711 (案號P13985); 2002年12 月19日4是交的才示題為"Non-speculative Distributed Conflict Resolution for a Cache Coherency Protocol"的申請?zhí)?0/326232 (案號P13986)。注意,上述共同未決申請中所述的特征可結合到本文所述的實施 例中;但是,本文所述的實施例并不局限于此,因為它們可包括附加 特征以及可能沒有包括上述特征。圖2示出包括利用點對點互連架構耦合到芯片組的多個處理器 的系統(tǒng)的一個實施例。圖2的系統(tǒng)還可包括若干處理器,.為了簡潔起 見,爿f叉示出其中兩個處理器205、 210。如圖所示,處理器205、 210 各自包括兩個處理元件206-207、 211-212;但是在處理器205、 210 中可包含4壬何凄丈量的處理元件。處理元件表示線程單元、進程單元、上下文、邏輯處理器、硬件 線程、核心和/或能夠保存處理器的狀態(tài)、如執(zhí)行狀態(tài)或架構狀態(tài)的任何其它元件。換言之,在一個實施例中,處理元件表示能夠與例如 軟件線程、操作系統(tǒng)、應用程序或其它代碼的代碼單獨關聯(lián)的任何硬 件。作為一個示例,物理處理器通常表示集成電路,它可能包括任何 數(shù)量的其它處理元件、如核心或硬件線程。核心通常表示設置在集成電路上、能夠保持獨立架構狀態(tài)的邏 輯,其中各獨立保持的架構狀態(tài)與至少某些專用執(zhí)行資源相關聯(lián)。與 核心相比,又可稱作物理線程的硬件線程通常表示設置在集成電路 上、能夠保持獨立架構狀態(tài)的任何邏輯,其中獨立保持的架構狀態(tài)共 享對執(zhí)行資源的訪問。因此,可以看到,在一個實施例中,多個軟件線程、如單線程應用程序的多個復制本(replication)能夠在多個處理元 件上并行運行,所述多個處理元件可包括例如核心或硬件線程的上述 處理元件中4壬一 個的組合。在處理器205、 210中還示出資源208、 213,它們通常包括寄存 器、單元、邏輯、固件、存儲器以及運行代碼或者與其它裝置接口的 其它資源。如上所述,資源110中的某些可部分或全部專用于處理元 件,而其它資源在處理元件之間共享。例如,可對物理線程復制諸如 指令指針和重命名邏輯等較小資源。例如重排序/引退單元中的重排 序緩沖器、指令后備轉換緩沖器(instruction liikaside translation buffer: ILTB)、加載/存儲緩沖器和隊列的某些資源可通過分區(qū)(partitioning) 來共享。例如通用內部寄存器、頁表基址寄存器、低級數(shù)據(jù)高速緩存、 數(shù)據(jù)TLB、執(zhí)行單元和無序單元的其它資源可能完全在線程之間進行 共享。相比之下,核心可具有專用執(zhí)^f亍資源,同時還共享例如第二級 高速緩存(L2)的高級高速緩存的至少 一部分。在一個實施例中,資源208、 213包括處理器流水線,它們可包 括任何數(shù)量的流水線階段(stage)。流水線階段的常見示例包括指令指 針階段、取階段、解碼階段、驅動階段和分配階段、重命名階段、隊 列階段、重排序階段、調度階段、分發(fā)階段、執(zhí)行階段、存儲器訪問 階段以及寄存器訪問階段。注意,這些階段的這個列表包括處理器流水線階段的示范性非詳盡列表,因為在處理器100中可包含任何已知的流水線階段。相應地,處理器205、 210還可各自包括與存儲器209、 214接口 的存儲控制器或本地存儲控制器中心(memory controller hub: MCH)。 存儲器209、 214包括任何存儲器裝置,例如隨機存取存儲器(RAM)、 高速緩沖存儲器、閃速存儲器或者其它存儲器裝置。在一個實施例中, 存儲器214包括高級高速緩沖存儲器,而資源213包括低級高速緩沖 存儲器。在另一個實施例中,存儲器209包括與處理器205關聯(lián)的動 態(tài)隨機存取存儲器(DRAM),其中處理器205包括高速緩存來自 DRAM 209的數(shù)據(jù)的高速緩沖存儲器。注意,這是一個說明性實施例, 因為存儲器209、 214可能包括任何類型的存儲器裝置。在一個實施例中,存儲器209、 214包括包含如圖所示在處理器 205、 210之內或者處理器205、 210外部的高速緩沖存儲器,處理器 205、 210能夠作為歸屬節(jié)點以及作為對等高速緩存節(jié)點。例如,當 事務引用(reference)存儲器209中的存儲器存儲單元時,相對于事務 和存儲器存儲單元將負責存儲器209的代理、即處理器205確定為歸 屬代理。類似地,隨著事務引用另一存儲器存^fi者單元、如存儲器214 中的存儲單元,將處理器205確定為對等高速緩存代理??梢钥吹?,點對點鏈路220-224以點對點方式將組件耦合在一起。 在一個實施例中,物理鏈路220-224各自包括雙向差分信令互連,例 如與以下參照圖3所述的物理層相關聯(lián)的物理鏈路。因此,處理器 205、 210和芯片組230能夠相互直4妄通信。芯片組230往往是例如與輸入/輸出(I/0)集線器耦合的存儲控制 器的多個集成電路的一般表示。但是,在一個其中代理各自包括與存 儲器接口的存儲控制器中心的一種形式的實施例中,芯片組230表示 I/O中心或其它控制器中心。在一個實施例中,如上所述,芯片組230 是參與或見證事務的非高速緩存代理。但是,芯片組230并不局限于 此,因為在其它實施例中,芯片組230是包括高速緩沖存儲器的高速緩存代理和/或包括具有數(shù)據(jù)的原始存儲器存儲單元存儲庫的存儲器 的歸屬代理。如圖所示,芯片組230還與多個互連和I/O裝置接口,例如外設 部件互連(PCI)或PCI Express (PCI-E)裝置261、集成設備電路(IDE) 或高級傳輸附件(ATA)裝置262、通用串行總線(USB)裝置263、局域 網(wǎng)(LAN)或無線LAN (WLAN)裝置264、音頻裝置265以及也可包括 用于按照本文所述耦合1/0裝置的其它互連架構的其它I/O裝置266。參照圖3,示出利用分層互連棧的雙向互連架構的框圖的一個實 施例。對圖3的層、如物理層302的參照包括對可在不同代理中實現(xiàn) 的通用層、如物理層302a和物理層302b的論述。如圖所示,互連棧 分為五層,其中之一或多個根據(jù)設計實現(xiàn)可能是可選的。例如,在一 個實施例中,路由選擇層304嵌入鏈路層303的功能性中;因此,在 一個實施例中,路由選擇層不是獨立的不同層。在一個實施例中,物理層302負責信息在物理介質上的電傳輸。 例如,在鏈路層實體303a與303b之間使用物理點對點鏈路。作為一 個說明性示例,物理鏈路包括差分信令方案,其包括雙向差分信令對 351和352。在這里,物理層可能在邏輯上分為電氣子塊和邏輯子塊, 使得物理層將棧的其余部分與信息的電傳輸隔離,并且將與鏈路層 303進行通信。在一個實施例中,鏈路層303從棧的上層對物理層302進行抽象 (abstract),并且提供與鏈路相關的服務,例如已連接代理/實體之間的 數(shù)據(jù)傳輸和流程控制以及物理信道/接口到多個虛擬信道和消息類的 虛擬化。在這里,虛擬信道可看作是供棧的上層使用的多個虛擬網(wǎng)絡。 例如,協(xié)議層306可能依靠鏈路層303所提供的抽象來將協(xié)議消息映 射到消息類并因此映射到一個或多個虛擬信道。在一個實施例中,路由選擇層304提供一種用于將分組/人來源鴻^ 由到目的地的靈活方法。如上所述,在極簡單的拓樸結構中,路由選 擇層304可以不是顯式的,而是集成到鏈路層303的功能性中。例如,路由選擇層304可依靠鏈路層303的抽象來指定要路由分組的<端口 , 虛擬網(wǎng)絡〉對。在一個實施例中,路由選擇層304或者通過它的功能性與其關聯(lián) 的邏輯將保存路由選擇信息、如路由選擇表。作為一個具體示例,路 由選擇表可包括互連架構中的各目標的條目。在這里,條目可保存任 何類型的信息,例如^各由與目標代理關聯(lián)的分組所經(jīng)過的端口。下面 更詳細地論述路由選擇表及關聯(lián)信息。在一個實施例中,傳輸層305提供端對端可靠傳輸服務。與路由 選擇層304相似,傳輸層305根據(jù)設計實現(xiàn)也是可選的。作為一個示 例,傳輸層305依靠路由選擇層304的服務來提供對協(xié)議層306的可 靠傳輸支持。在一個實施例中,在互連架構中,組件子集包括傳輸層 305。因此,該組件子集定義與傳輸層305有關的分組的子字段,而 其它組件可能不定義那些子字段。在一個實施例中,協(xié)議層306將在節(jié)點/代理之間實現(xiàn)較高級通 信協(xié)議,例如高速緩存相關性、排序、對等通信、中斷傳遞等。換言 之,協(xié)議層306相應地為例如歸屬節(jié)點、對等節(jié)點、高速緩存節(jié)點和 非高速緩存節(jié)點的節(jié)點或代理定義可允許的消息、請求、響應、階)爻 (phase)、相關狀態(tài)等。下面論述例如歸屬節(jié)點消息、監(jiān)聽(snoop) 消息、響應消息等消息的示例。進行耦合。例如,可以說,協(xié)議邏輯與物理層、即傳送或接收邏輯耦 合。在這里,從圖3可以看到,在一個實施例中,協(xié)議邏輯可以不直 接與物理層邏輯耦合,而是通過其它層邏輯進行耦合。此外,在一個 實施例中,互連棧與內組件邏輯、如高速緩存控制或高速緩沖存儲器 邏輯耦合,以便發(fā)起適當?shù)母咚倬彺嫦嚓P動作。MESIF協(xié)議的實施例的概述在 一 個實施例中,基本改進型排它性共享無效轉發(fā)(ModifiedExclusive Shared Invalid Forward: MESIF)協(xié)議在沒有單一 串行總線的 潛在限制的情況下提供與監(jiān)聽協(xié)議相似的協(xié)議。與監(jiān)聽高速緩存協(xié)議 相似,MESIF依靠具有數(shù)據(jù)的緩存副本的節(jié)點來保持相關性。點對 點鏈路而不是同步集中廣播的使用帶來時間異常(time-warp)的問題、 即事件從不同節(jié)點的角度看來好像以不同順序出現(xiàn)的事實。作為 一個 示例,MESIF協(xié)議通過識別因時間異常而引起的可能誤差并向其提 供協(xié)議或軟件解決方案來處理時間異常。
歸屬節(jié)點往往與數(shù)據(jù)的未緩存副本相關聯(lián)。因此,歸屬節(jié)點可參 與有關與歸屬節(jié)點關聯(lián)的數(shù)據(jù)的事務。但是,歸屬節(jié)點并不一定包含
在與事務關聯(lián)的"關鍵路徑"中,而是歸屬節(jié)點可插入事務中,以便解 決沖突和時間異常問題。由于方案的并發(fā)廣播性質,在一個實施例中, MESIF實現(xiàn)與監(jiān)聽協(xié)議關聯(lián)的低等待時間,同時在某些情況下以最 小可能的等待時間、單個往返請求-響應獲取數(shù)據(jù)的可緩存副本。
在一個實施例中,與MESIF協(xié)議有關的基本事務涉及向所有對 等節(jié)點以及歸屬節(jié)點廣播初始請求。如果副本以狀態(tài)E、 F或M相關 性狀態(tài)進行高速緩存,則將其包含在響應中。然后,將第二消息發(fā)送 給歸屬節(jié)點,通知它已經(jīng)滿足了該請求。如果所請求線未被緩存,或 者如果僅存在S狀態(tài)副本,則發(fā)送給歸屬節(jié)點的第二請求用于確認歸 屬節(jié)點這時可能已經(jīng)從其存儲器中取出的前一個請求。在任一種情況 下,為了同步和沖突解決,歸屬節(jié)點響應第二請求(并可能響應第一 請求,但它們有時可以結合)。注意,歸屬節(jié)點可具有一個或多個高 速緩存,因此它可響應初始請求,就4象任何其它節(jié)點那樣。
在一個實施例中,以分布方式處理沖突。時間異常問題4吏得難以 檢測到?jīng)_突,因為各個請求可能被延遲任意長的時間。但是,如果每 個節(jié)點在進行請求之后監(jiān)測沖突,則將會檢測到?jīng)_突。多個節(jié)點可能 檢測到?jīng)_突,但是作為一個示例,這些節(jié)點中至少之一將檢測到?jīng)_突。 因此,在一個實施例中,來自節(jié)點的響應可能包含沖突信息。
在一個實施例中,允許接收來自響應的數(shù)據(jù)副本的節(jié)點在接收時
16立即在內部使用該數(shù)據(jù),但是不令使用該數(shù)據(jù)的效果為系統(tǒng)的其余部 分可見、即全局可見,直到節(jié)點已經(jīng)接收到確認為止。確認也可包含 請求節(jié)點必須將其副本轉發(fā)給另 一個節(jié)點以及也許從其自身的高速
緩存中逐出(evict)該節(jié)點的指令。
最后,當節(jié)點通過提供緩存數(shù)據(jù)來響應來自另一個節(jié)點的請求 時,在一個實施例中,該節(jié)點推遲它對相同高速緩存線接收的其它請 求,直到該節(jié)點從歸屬節(jié)點接收到確認節(jié)點轉發(fā)了該數(shù)據(jù)的事實的響 應為止,因而確保所有節(jié)點觀察到(可能可寫的)高速緩存線的相同順 序的傳輸。
如上所述,歸屬節(jié)點是未緩存數(shù)據(jù)的存儲庫,但是歸屬節(jié)點也可 包括處理器和高速緩存。在這里,當歸屬節(jié)點處理器漏掉高速緩存時, 則歸屬節(jié)點向所有其它(對等)節(jié)點廣播請求,且歸屬節(jié)點在內部處理 該請求,好像它是到達歸屬節(jié)點的任何其它請求那樣。注意,這是一 種特例,因為歸屬節(jié)點沒有顯式向其本身(歸屬節(jié)點)發(fā)送消息。另夕卜, 在對本地緩存的數(shù)據(jù)的外部請求到達時,歸屬節(jié)點適當?shù)剡M行響應。
所公開的消息協(xié)議定義相關(高速緩存和歸屬)代理、非高速緩存 代理以及其它代理(存儲控制器、處理器等)之間的容許消息集合。相 關協(xié)議使用消息作為算法中的詞和語法來表示相關想法(thought)。 這種算法明智地對請求排序、解決沖突并描述高速緩存代理之間的交 互。雖然上文描述了 MESIF協(xié)議,但是不要求使用MESIF高速緩存 相關協(xié)議。例如,可以不使用轉發(fā)狀態(tài),這引起使用已知的MESI協(xié) 議。此外,注意,以上論述包括MESIF協(xié)議的一個實施例的示范概 述。因此,以上所述的各種組件在單獨實施例中可有所不同。下文包 括在消息傳遞和/或相關協(xié)議中使用的可能消息的非詳盡示范列表。
參照圖4,示出包括保存具有與多個端口關聯(lián)的目標條目的表的 邏輯的多個代理的一個實施例。如上所述,又可稱作節(jié)點的代理410、 420、 430、 440、 450和460 (410-460)可以是任何類型的代理或節(jié)點, 例如處理器、控制器中心、1/0裝置或者任何其它已知代理/節(jié)點。在一個實施例中,代理410-460包含在基于鏈路的相關互連架構 中。如圖所示,代理410-460以點對點方式相互耦合,使得代理410 在端口 411向代理420傳送送往代理450的消息,代理420在端口 421接收該消息,并且通過端口 422將該消息路由到代理450。如下 文所述,可存在到代理450的任何其它數(shù)量的路徑,例如通過代理 460、 440再通過420到450。雖然主要參照點對點鏈路架構來論述路 由選擇信息的動態(tài)修改,但是本文所述的方法和設備并不局限于此。
此外,在一個實施例中,代理410-460的至少一部分將實現(xiàn)互連 棧,例如上文所述的互連棧。注意,在一些實施例中,在互連棧的層 在邏輯中實現(xiàn)的情況下,各層的邊界可以沒有明確定義,還部分重疊。 例如,如上所述,路由選擇層邏輯可能在鏈路層邏輯中實現(xiàn)或者與其 部分重疊。
在一個實施例中,代理410-460中的每個包括保存路由選擇信息
的邏輯,例如邏輯415、 425、 435、 445和455。例如,邏輯415將
保存代理410的路由選擇表416。通常,在傳送可具有分組形式的消
息時,所述消息引用某個目標、目的地或者其它標識符(ID)。因此,
在一個實施例中,路由選擇表416相應地包括與多個目的地或目標代
理/節(jié)點、即代理420-460相關聯(lián)的多個條目,如條目416a-e。在這里,
多個條目416a-e提供引用目標或目的地ID的分組/消息的路由選擇信 自
例如,假定代理410從代理430接收到引用與代理450關聯(lián)的目 標ID的分組。在一個實施例中,利用目標代理的目標ID或者其表示 來對表416進行索引。因此,確定代理450的條目,并且從關耳關端口 列表確定要在其上路由分組的端口。在這里,確定分組將在端口411 上進行路由。類似地,當代理420接收消息時,路由選擇邏輯425用 于在端口 422上向代理450路由分組。以前,各目標代理僅與用于路 由的單個端口關聯(lián),例如端口 411用于代理440。但是,如果從系統(tǒng) 去除代理420,則將使用靜止狀態(tài)來把用于代理440的端口從411更新到413或412,這可能引起由BIOS或其它軟件進行的長的昂貴的 更新過程。
因此,在一個實施例中,目標條目以優(yōu)先順序或方式與多個端口 關聯(lián)。換言之,目標代理的路由選擇條目可在用于向目標代理進行路 由的代理的可用端口之間提供優(yōu)選(reference)。注意,優(yōu)選可基于任 何數(shù)量的因素,例如端口被啟用(enable)/停用(disable)、與到目標代理 的端口關聯(lián)的傳輸時間、從端口到目標代理的跳數(shù)或者中間代理/節(jié) 點的數(shù)量、在端口上路由的丟失分組的數(shù)量或者任何其它已知的路由 選擇優(yōu)選因素。此外,優(yōu)選可通過任何方式來表示,例如表示優(yōu)選哪 些端口的比特編碼,或者其中列在另一個端口之前的一個端口根據(jù)實 現(xiàn)指明更高或更低優(yōu)選的簡單有序列表。
作為一個示例,代理420在條目416a中與代理410的所有三個 端口 411-413關聯(lián)。在這里,優(yōu)選列表用于對端口排序,即,端口 411 具有比端口 412更高的優(yōu)選,如通過在列表中排位更高來表示。此外, 對于條目416a,端口 412具有比端口 413更高的優(yōu)先級。但是要注 意,在不同的條目中,可存在不同的優(yōu)先級/優(yōu)選,例如在條目416e 中,端口413是最高優(yōu)選。因此,當代理410接收到消息以便將其路 由到代理420時,在一個實施例中,消息在"優(yōu)選的"端口、即根據(jù)條 目416a中的端口的優(yōu)選順序的最高優(yōu)先級端口 411上進4亍路由。
此外,在一個實施例中,多個端口也與啟用字段相關聯(lián)。例如, 代理430中的邏輯435將保存路由表.436。路由表436包含條目 436a-e。各條目、如條目436a將保存與代理430中的多個端口的多 個啟用/停用字段相關聯(lián)的目標標識符、即代理410或者其表示。在 這里,條目436a包含對于目標代理410具有最高優(yōu)先級的端口 431 以及啟用的端口 433,而端口 432凈皮停用。注意,端口 432祐J亭用, 因為它沒有與任何其它代理/節(jié)點連接。
在一個實施例中,啟用/停用字段包含與代理430的端口關聯(lián)的 比特矢量,其中設置的比特表示對應端口被啟用,而清除的比特表示對應端口^f皮停用。如圖所示,比特矢量可與端口 ID對齊,以l更在各
條目中將啟用字段與各個端口相關聯(lián)。因此,在這里,將啟用字段更新為啟用或停用值分別包括設置比特或清除比特。但是要注意,術語"更新"的使用不一定包括狀態(tài)或值的變更。例如,如果端口在條目中已經(jīng)停用,則在該條目中將該端口更新為停用值可能沒有包括動作,因為該比特已經(jīng)清除。另外,啟用字段并不局限于設置或清除比特。在一個實施例中,可使用用于啟用或停用端口或者其它邏輯的任何已
知的;s更件或邏輯實現(xiàn)。
端口的停用可因為任何數(shù)量的原因而發(fā)生。例如,如圖所示,端口 432因在物理上未連接或斷開連接、即沒有代理或裝置與端口 432耦合而停用。但是,在一個實施例中,端口還響應接收到該端口的端口停用消息而停用。在另 一個實施例中,端口響應接收到返回循環(huán)消息而停用。下面分別參照圖5和圖7更詳細地-淪述端口停用和返回循環(huán)消息傳遞。因此,雖然沒有具體示出,但是端口可在目標代理的一個路由選擇條目中啟用,而在另一個目標代理的另一個路由選擇條目中停用。
來看圖5,示出代理的熱去除的協(xié)議/框圖的一個實施例。注意,圖5-7示出圖4的互連架構中所示的代理的子集之間的協(xié)議。此外,圖5-7采用具體說明性消息以實質串行方式示出協(xié)議流程的具體實施例。但是,消息可按照不同順序來生成/傳送,以及如上所述,按照互連架構中可能的時間異常,消息可按照完全不同的順序來接收。此外,這些消息、流程和框可串行以及并行執(zhí)行。
在框405,對代理430檢測到熱去除事件。在一個實施例中,熱去除事件包括代理或裝置^v系統(tǒng)物理的去除。例如,如果代理430包括USB存儲鑰匙(key),則可從系統(tǒng)拔出存儲鑰匙。這種熱拔往往通過才喿作系統(tǒng)通常將它稱作安全和不安全抽出(ejection)的兩種方式中之一來進行。在安全抽出情形下,通知軟件關于該抽出、即用戶選擇抽出裝置,以及一旦軟件刪除裝置的抽象,則該裝置被安全去除。在另一種情形下,執(zhí)行物理去除,并且軟件稍后刪除該裝置。因此,熱去除事件可包括軟件有關事件或者物理去除事件。作為利用互連棧的相關架構中的軟件相關事件的一個示例,高級層、如應用層可通過棧來下傳軟件有關事件,以^_指明熱去除事件。
但是,代理的物理去除可能不是裝置的唯一熱去除。實際上,在一個實施例中,代理的熱去除包括將裝置去除、停用、斷電或者通過使用硬件、軟件、固件或者它們的組合簡單地對系統(tǒng)的其余部分隱藏該裝置。因此,作為第一說明性示例,熱去除可在代理想要進入低功率狀態(tài)時發(fā)生。注意,根據(jù)設計實現(xiàn),代理的熱去除可通過包括上述示例或者從系統(tǒng)或OS的角度去除裝置的其它已知方法的任何方式來定義。
響應于4企測到熱去除事件505,代理430生成停用端口消息451。停用端口消息包括向接收代理指明端口將被停用的任何消息。在一個實施例中,該消息包括指明哪個端口將被停用的端口標識符。備選地,該消息只指明某個端口將被停用,并且接收代理在其上接收消息的端口就是要停用的端口。
在一個實施例中,該消息利用例如與協(xié)議層關聯(lián)的協(xié)議邏輯的邏輯來生成。在這里,規(guī)則可能規(guī)定消息451將響應于檢測到所定義去除事件而生成。在一個實施例中,將停用端口消息451傳送到相鄰代理410、 440。作為一個示例,在互連棧中,在生成之后,利用要傳送消息的邏輯、如物理層邏輯來傳送消息。
從圖4中注意到,保存在代理430的邏輯435中的表436的條目436a指明要被路由到目辨代理410的消息優(yōu)選地在端口 431、即目標代理410的最高優(yōu)選端口上轉發(fā)。類似地,條目436c指明該消息應當在端口 433上轉發(fā)給代理440。在這里,代理410和440分別在端口 412和442上接收停用端口消息451。
在一個實施例中,代理430立即停用它在其上轉發(fā)停用端口消息451的端口、即端口431、 433。備選地,如圖所示,代理430等待與該停用端口消息關聯(lián)的完成消息以便停用對應端口。因此,在這個實
施例中,當代理430在停用端口消息被發(fā)送之后但在完成消息被接收之前由接收到消息時,代理430繼續(xù)在啟用端口上路由消息。例如,代理410向代理430轉發(fā)以代理440為目標的消息(MSG)。由于代理430尚未接收到完成453以侵J亭用端口 433,所以^C理430在端口 433上向代理440轉發(fā)消息。
此外,在一個實施例中,接收停用端口消息、向其傳送完成或者它們的組合引起代理清除通過端口的任何排隊循環(huán)。例如,代理410令Msg (消息)1 、 Msg 2和Msg3排隊以便轉發(fā)給代理430。在這里,由于接收到停用端口消息451,代理410從隊列中清除送往代理430的這些消息。注意,經(jīng)由端口 412的循環(huán)的清除示出在端口 412的停用和完成的傳送之前;但是,可按照任何順序來清除循環(huán)。
響應于在端口 412和442上接收到停用端口消息,代理410和440分別停用那些端口。換言之,代理410在端口 412上接收到停用端口消息,因此它停用端口412。在一個實施例中,停用端口412包括在路由選擇表416的各條目中停用端口 412。例如,回到圖4,注意在所有條目416a-e中停用端口 412。在另一個實施例中,僅在與生成該停用端口消息的源代理對應的條目中停用端口 412。以類似方式在代理440的路由選擇邏輯445中停用端口 442。在另一個實施例中,響應于接收到停用端口消息而從表416的參與者列表中刪除代理430。
代理410和440分別生成完成消息452、 453并將其傳送給代理430。響應于在端口 433上接收到來自代理440的完成消息453,代理430停用端口 433。在一個實施例中,如圖4所示,響應土完成消息、如來自代理440的完成453,在表436的各條目中停用端口 433。換言之,在條目436a-e中停用端口 433。以類似方式在表436中停用端口 431,即,如圖所示,在i 各由選擇表436的各條目436a-e中停用端口431。在一個實施例中,響應于停用所有端口、即接收到所有完成,將該裝置去除。從以上所述注意到,去除可包括任何數(shù)量的動作,例如從軟件的去除、從硬件的去除、斷電或者其它去除動作。
來看圖6,示出說明返回循環(huán)的協(xié)議/框圖的一個實施例。在一個實施例中,向鄰居傳送停用端口消息,以及其它節(jié)點通過至停用代理和/或端口的正常嘗試循環(huán)來學習以便向其進行路由。換言之,在這里,停用端口消息將熱去除的裝置的鄰居的端口停用。如下文所述,在該鄰居的路由選擇邏輯中停用接收到那個消息的端口 。正常業(yè)務引起下文進行描述的返回循環(huán),所述返回循環(huán)最終將在與熱去除的裝置關聯(lián)的其它組件中的端口停用。因此,通過停用端口消息以及正常業(yè)務和返回循環(huán)交換,互連架構從熱去除接近穩(wěn)定的路由選擇信息。
作為一個示例,代理450生成并傳送送往代理430的消息。才艮據(jù)節(jié)點450中的路由選擇邏輯455,通過端口 451將該消息路由到代理420。根據(jù)代理420中的路由選擇表425,該消息還通過端口 421被路由到代理410。在這里,在一個實施例中,響應于端口停用消息,代理410停用端口 412。但是,在當前優(yōu)選列表中,對代理430啟用節(jié)點413和411。因此,代理410可嘗試通過那些端口向代理430進行路由。但是,如下文更詳細描述,返回循環(huán)流程應當最終在代理410的路由選擇邏輯415中停用用于代理430的所有端口。在下文所述的另 一個實施例中,立即從表416的參與者列表中刪除代理430。
無論哪種方式,最終,當代理430在路由選擇邏輯415中停用、
即對于代理430沒有啟用條目中的端口或者用于代理430的條目不存
在時,消息都到達代理410。在這里,當代理410因代理430在路由
選擇邏輯415中停用而不能轉發(fā)該消息時,在一個實施例中,代理
410生成/執(zhí)行返回循環(huán)。在一個實施例中,返回循環(huán)消息包括具有為了將其標識為返回循環(huán)而設置的字段或其它標志的原始消息。但是,
在其它實施例中,指明不可轉發(fā)消息的任何方法被確定為返回循環(huán)。作為第一示例,將返回循環(huán)提供回消息的原始源、如代理450。作為另一個示例,將返回循環(huán)提供回傳輸路徑中在當前節(jié)點之前的傳送節(jié)點。
在這里,將返回循環(huán)消息提供回代理420。在一個實施例中,當在端口 421上接收到該返回循環(huán)消息時,在代理420的邏輯425中停用用于代理430的端口 421。作為一個示例,除了停用端口 421之外,代理420還可嘗試在用于代理430的另 一個啟用端口 、如端口 423上重新3各由消息,其中端口 423通過代理440、代理460(因為在代理440中端口 442^皮停用)再次向代理410進行路由。代理410通過代理460的路徑將使用于代理430的端口停用的類似返回循環(huán)消息提供回代理440并提供回代理420。當該消息返回到代理420時,在路由選擇邏輯425中對代理430去除端口 423,因為在端口 423接收到了送往代理430的消息的返回循環(huán)。在這里,在一個實施例中,通過在邏輯425中所有端口對代理430停用,可以說,從表416的參與者列表中刪除代理430。代理從路由選擇表中的刪除可包括刪除條目。但是,在另一個實施例中,條目的刪除包括給該條目留下被停用的所有關聯(lián)端口。
可以看到,代理420可能沒有立即知道已經(jīng)從系統(tǒng)去除了代理430,但它通過嘗試的消息路由來了解到代理430已被去除。換言之,代理420的路由選擇表425通過正常業(yè)務的路由來了解到代理430已被去除。在這里,如果循環(huán)到達盡頭(deadend),則通過接收到來自正常循環(huán)的所返回消息,路由選擇邏輯425能夠識別代理430不可達。類似地,在以上所述的一個實施例中,代理410可以4義停用在其上接收到停用消息的端口 ,并在以后通過返回循環(huán)協(xié)議可將用于代理430的其它啟用端口停用,以便基本上從參與者列表中刪除代理430。
還要注意,當返回循環(huán)消息在代理420到達盡頭、即在邏輯425中用于代理430的所有端口被停用時,則將該返回循環(huán)消息轉發(fā)回代理450。在這里,代理450在邏輯455中停用用于代理430的端口 451。因此,互連架構隨時間通過端口的停用來了解代理已#:去除或者至少了解它是不可達的。
雖然參照圖6使用傳送給相鄰代理的停用端口消息來論述熱去除,j旦是停用消息或停用端口消息并不局限于此。例如,在一個實施例中,將停用消息在整個系統(tǒng)或互連架構廣播。在這里,各組件廣播/轉發(fā)該停用消息,并且更新其與熱去除的裝置關聯(lián)的路由選擇邏輯。注意,路由選擇邏輯的更新可與上文所述方法相似,例如從路由選擇
熱去除的代理相關聯(lián)的所有端口停用。
接下來參照圖7,示出代理的熱添加的協(xié)議/框圖的一個實施例。在這里,在框705檢測到對代理430的熱添加,而不是在圖5的框505中的熱去除。基本上,執(zhí)添加包括上文所述的熱去除的可能實施例的任一個的相反面。因此,如果熱去除包括代理從系統(tǒng)的物理去除,則熱添加包括所述代理向系統(tǒng)的物理添加,并且對于斷電/加電和軟件去除/添加類似。
由于檢測到與代理430關聯(lián)的熱添加,啟用端口消息由代理430生成。在一個實施例中,將啟用端口消息傳送給互連網(wǎng)絡中的所有節(jié)點。在這里,甚至在僅將停用端口消息發(fā)送給鄰居的實施例中,可向所有節(jié)點廣播啟用端口消息。備選地,在另一個實施例中,僅將啟用端口消息傳送給相鄰節(jié)點、即與代理430直接連接的那些節(jié)點。
如圖所示,代理410在端口 412上接收該啟用消息。如果不存在用于代理430的當前條目,則將代理430添加到參與者列表。在一個實施例中,所有端口、如411-413響應于接收到啟用端口消息而凈皮啟用,甚至當僅在單個端口接收到該啟用消息時。在這里,可啟用沒有向代理430進行路由的端口,但是與上文一樣,代理410將隨時間了解到通過返回循環(huán)應當停用那些端口。此外,將來的路由循環(huán)可用于在邏輯415中確定和動態(tài)改變用于代理430的優(yōu)選列表。
在另 一個實施例中,在接收到該啟用端口消息時僅啟用端口 412。在這里,可在不同的端口上接收到多個啟用端口消息,以便啟用代理
25410的正確端口以供向代理430進行路由。類似地,代理440接收到 啟用端口消息,并且相應地將其路由選擇表配置用于^理430。在一 個實施例中,將啟用端口完成消息/人代理410、 440傳回,相應地將 端口 431、 433啟用。
因此,從上文可見,互連架構中的路由選擇表響應于代理配置變 化的修改可動態(tài)執(zhí)行,而不是使用停止狀態(tài)。因此,可能避免將系統(tǒng) 暫停并且令外部軟件/固件重新配置路由選擇信息的昂貴性質。此外, 通過使用至鄰居的停用消息和返回循環(huán),系統(tǒng)可能了解到已去除了裝 置,而不是必須將去除進行系統(tǒng)范圍廣播,這可能減少不必要的業(yè)務。 此外,用于目標代理的端口可設置在優(yōu)選列表中,所述優(yōu)選列表是動 態(tài)可改變的,從而確保分組在系統(tǒng)操作期間的最有利路由。
本文所使用的模塊表示任何硬件、軟件、固件或者它們的組合。 通常,示為獨立的模塊邊界一般可改變并且可能重疊。例如,第一和 第二模塊可共享硬件、軟件、固件或者它們的組合,同時可能保留一 些獨立的硬件、軟件或固件。在一個實施例中,術語"邏輯"的使用包 括例如晶體管、寄存器的硬件或者例如可編程邏輯裝置的其它硬件。 但是,在另一個實施例中,邏輯還包括與硬件集成的軟件或代碼,例 如固件或微碼。
本文所使用的值包括數(shù)值、狀態(tài)、邏輯狀態(tài)或者二進制邏輯狀態(tài) 的任何已知表示。通常,邏輯電平、邏輯值的使用又稱作只是表示二 進制邏輯狀態(tài)的1和0。例如,l表示高邏輯電平,而O表示j氐邏輯 電平。在一個實施例中,存儲單元、如晶體管或閃存單元可以能夠保 存單個邏輯值或多個邏輯值。但是,在計算機系統(tǒng)中已經(jīng)使用值的其 它表示。例如,十進制數(shù)IO也可表示為二進制值1010以及十六進制 字母A。因此,值包括能夠在計算機系統(tǒng)中保存的信息的任何表示。
此外,狀態(tài)可由值或者值的部分來表示。作為一個示例,第一值、 如邏輯1可表示默認或初始狀態(tài),而第二值、如邏輯O可表示非默認 狀態(tài)。另外,在一個實施例中,術語"重置"和"設置"分別表示默認和更新值或狀態(tài)。例如,默認值可能包括高邏輯值、即重置,而更新值 可能包括低邏輯值、即設置。注意,值的任何組合可用于表示任何數(shù) 量的狀態(tài)。
上文提出的方法、硬件、軟件、固件或代碼的實施例可經(jīng)由機器 可訪問或機器可讀介質上存儲的、由處理元件執(zhí)行的指令或代碼來實 現(xiàn)。機器可訪問/可讀介質包括以機器、如計算機或電子系統(tǒng)可讀形 式來提供(即存儲和/或傳送)信息的任何機構。例如,機器可訪問介質
包括隨機存取存儲器(RAM),例如靜態(tài)RAM(SRAM)或動態(tài)RAM (DRAM); ROM;磁或光存儲介質;閃速存儲器裝置;電存儲裝置、 光存儲裝置、聲存儲裝置或者其它形式的傳播信號(例如載波、紅外 信號、數(shù)字信號)存儲裝置等。例如,機器可通過從能夠保存要在傳 播信號上傳送的信息的介質接收例如載波等傳播信號來訪問存儲裝 置。
本說明書中對"一個實施例,,或"實施例"的引用表示結合該實施 例所述的具體特征、結構或特性包含在本發(fā)明的至少一個實施例中。 因此,詞語"在一個實施例中"或"在實施例中"在本說明書的各個位置 的出現(xiàn)不一定都表示同一個實施例。此外,這些具體特征、結構或特 性可通過任何適當方式結合在一個或多個實施例中。
在以上說明書中,參照具體示范實施例來提供詳細描述。但是顯 而易見,在沒有背離所附權利要求書所提出的本發(fā)明的廣義精神和范 圍的情況下,可對其進行各種修改和變更。因此,說明書和附圖將被 看作是說明性而不是限制性的。此外,實施例及其它示范語言的使用 不一定表示相同的實施例或者相同的示例,而是可表示不同且有區(qū)別 的實施例以及可能相同的實施例。
權利要求
1.一種互連代理,包括多個端口,能夠通過點對點鏈路與多個代理耦合;以及第一邏輯,保存包含目標條目的路由選擇表,所述目標條目按照優(yōu)先順序將所述多個端口與目標代理相關聯(lián)。
2. 如權利要求1所述的互連代理,其中,按照所述優(yōu)先順序將 所述多個端口與目標代理相關聯(lián)的所述目標條目是按照優(yōu)先順序將 所述多個端口與多個目標代理相關聯(lián)的多個目標條目中之一。
3. 如權利要求1所述的互聯(lián)代理,其中,第一邏輯能夠按照基 于路由選擇因素的不同優(yōu)先順序動態(tài)配置至關聯(lián)的所述多個端口的 目標條目,其中,所述路由選擇因素從以下各項組成的組中選取所 述多個端口中最近停用的端口 、到與所述多個端口的端口相關聯(lián)的目 標條目的跳數(shù)、以及通過所述多個端口的端口到所述目標代理的路由 時間。
4. 如權利要求1所述的互連代理,其中,第一邏輯保存包含目 標條目的路由選擇表,按照優(yōu)先順序將所述多個端口與目標代理相關 聯(lián)的所述目標條目包括含有與優(yōu)選列表中通過優(yōu)選列出的多個端口 對應的多個端口標識符的條目,以及其中,所述多個端口標識符中每 個端口標識符與啟用字段相關聯(lián),并且其中,響應于在所述第一端口 上接收到返回循環(huán)消息而將與所述多個端口的第 一 端口相關聯(lián)的啟 用字段更新為停用值。
5. —種互連代理,包括在第 一節(jié)點中用于在點對點鏈路上與接收節(jié)點進行通信的部件; 用于響應于確定要把所述第一節(jié)點熱去除而生成停用消息的部件,所述停用消息將通過用于在點對點鏈路上與所述接收節(jié)點進行通信的所述部件傳送給所述第二節(jié)點;以及用于保存將目標節(jié)點與用于在點對點鏈路上與所述接收節(jié)點進行通信的所述部件的啟用字段相關聯(lián)的表的部件,其中,響應于在用 于在點對點鏈路上與所述接收節(jié)點進行通信的所述部件上接收到與 所述停用消息相關聯(lián)的完成消息,將用于在點對點鏈路上與所述接收 節(jié)點進行通信的所述部件的所述啟用字段更新為停用值。
6. 如權利要求5所述的設備,還包括用于檢測和用于在點對點鏈路上與所述接收節(jié)點進行通信的所 述部件相關聯(lián)的熱去除事件的部件;以及用于根據(jù)檢測到所述熱去除事件來確定要將所述第 一 節(jié)點熱去 除的部件。
7. —種設備,包括第一代理,所述第一代理包含 多個端口,其中,所述多個端口的第一端口將接收到端口停用消息;以及第一邏輯,保存含有與多個目標代理相關聯(lián)的多個條目的表,所 述多個條目中每個條目保存與所述多個端口對應的多個啟用字段,以 及其中,所述第一邏輯響應于所述第一端口接收到所述端口停用消息 而將與所述第一端口對應的多個條目的每個條目中保存的啟用字段 更新為停用值。
8. 如權利要求7所述的設備,還包括與所述第一邏輯耦合的第二邏輯,響應于所述第一邏輯將用于所述第一端口的啟用字^a更新為所述停用值而生成至與所述端口停用消息相關聯(lián)的源節(jié)點的、與所 述端口停用消息相關聯(lián)的完成消息。
9. 如權利要求7所述的設備,其中,所述第一邏輯響應于所述 條目保存與所述多個端口對應的所有所述多個啟用字段的停用值而 從所述表中刪除所述多個條目中與所述多個目標代理的目標代理相 關if關的條目。
10. 如權利要求9所述的設備,還包括與所述第一邏輯耦合的 第二邏輯,響應于在所述第一邏輯從所述表中刪除所述條目之后,人所 述源代理接收到引用所述多個 理的所述目標代理的消息而生成到源代理的返回循環(huán)。
11. 如權利要求7所述的設備,還包括與所述第一邏輯耦合的 第二邏輯,響應于所述第 一端口接收到所述端口停用消息而發(fā)起與所 述第一端口相關聯(lián)的多個排隊循環(huán)的清除。
12. 如權利要求7所述的設備,其中,所述第一邏輯還響應于所 述第二端口接收到返回的循環(huán)消息而將與第二端口對應的多個條目 的每個條目中保存的第二啟用字段更新為所述停用值。
13. —種系統(tǒng),包括第 一代理,包括響應于與第二代理相關聯(lián)的熱添加事件而生成至 所述第二代理的啟用端口消息;第二代理,包括第一端口、第二端口和第一邏輯,所述第一邏輯 將所述第一代理的目標標識符與用于所述第一端口的第一啟用字段 以及用于所述第二端口的第二啟用字段相關聯(lián),其中,所述第一邏輯 響應于在所述第二端口上接收到來自所述第一代理的所述啟用端口 消息而將所述第二啟用字段更新為啟用值。
14. 如權利要求13所述的系統(tǒng),其中,響應于在所述第二端口 上接收到來自所述第一代理的所述啟用端口消息,還將用于所述第一 端口的第一啟用字段更新為所述啟用值,以及其中,所述第二代理還 包括與所述第 一邏輯耦合的第二邏輯,所述第二邏輯響應于所述第二 端口 #1更新為所述啟用值而生成至所述第 一代理的、與所述啟用端口 消息相關聯(lián)的完成消息。
15. —種方法,包括響應于與第一節(jié)點相關聯(lián)的熱去除事件而在所述第一節(jié)點生成 停用端口消息;響應于在所述第 一節(jié)點的第 一端口上接收到與所述停用端口消 息相關聯(lián)的完成消息而在所述第 一 節(jié)點內所保存的多個路由選擇條 目中停用所述第一端口;以及響應于將所述第 一節(jié)點中包括所述第 一端口的所有端口停用而去除所述第一節(jié)點。
16. 如權利要求15所述的方法,還包括用所述第一節(jié)點轉發(fā) 在生成所述停用端口消息之后且在接收到所述完成消息之前通過所 述第 一端口接收到的、與所述第 一端口相關聯(lián)的任何消息。
17. 如權利要求15所述的方法,還包括在第二節(jié)點的第二端口接收所述停用端口消息;響應于接收到所述停用端口消息,清除與所述第二端口相關聯(lián)的 任何正在處理的循環(huán);在所述第二節(jié)點內所保存的第二多個路由選擇 條目中停用所述第二端口;以及生成至所述第一節(jié)點的完成消息。
18. 如權利要求17所述的方法,還包括用所述第二節(jié)點接收來自傳送節(jié)點的所傳送消息,所述傳送消息 包含所述第一節(jié)點的目的地標識符;確定在所述第二多個路由選擇條目中與所述第一節(jié)點的所述目 的地標識符相關聯(lián)的路由選擇條目中停用所有端口;以及響應于確定在與所述第一節(jié)點的所述目的地標識符相關聯(lián)的所 述路由選擇條目中停用所有端口而生成至所述傳送節(jié)點的返回循環(huán) 消息。
19. 如權利要求18所述的方法,還包括 在所述傳送節(jié)點的第三端口上接收到所述返回循環(huán)消息;以及 響應于在所述第三端口上接收到所述返回循環(huán)消息而在所述傳送節(jié)點內所保存的第三多個路由選擇條目中停用所述第三端口 。
20. 如權利要求17所述的方法,還包括響應于與所述第一節(jié)點相關聯(lián)的熱添加事件而在所述第一節(jié)點 生成啟用端口消息;響應于在所述第一端口上接收到與所述啟用端口消息相關聯(lián)的 第二完成消息而在所述第 一 節(jié)點內所保存的所述多個路由選擇條目 中啟用所述第一節(jié)點的所述第一端口。
全文摘要
本文描述了用于在無需靜止的情況下動態(tài)修改互連架構中的路由選擇信息的方法和設備。各代理/節(jié)點保存與互連架構中的目標代理/節(jié)點有關的、可包含路由選擇優(yōu)選的路由選擇信息。當節(jié)點要被熱拆除時,它生成到鄰居的端口停用消息。鄰居將在其上接收到停用消息的端口停用,并且生成回到要去除的節(jié)點的完成消息。要去除的節(jié)點繼續(xù)路由消息,直至它接收到完成;這時它停用對應節(jié)點。當所述節(jié)點被停用時,可去除該裝置?;ミB架構中的其它節(jié)點通過使用在所嘗試的循環(huán)路由期間消息到達盡頭時的返回循環(huán)來了解代理去除。此外,節(jié)點的熱添加包括啟用消息向啟用節(jié)點的廣播以便向所添加節(jié)點進行路由。
文檔編號H04L12/56GK101635679SQ200910159869
公開日2010年1月27日 申請日期2009年7月7日 優(yōu)先權日2008年7月7日
發(fā)明者S·S·常 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1