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