專利名稱:在交換結(jié)構(gòu)網(wǎng)絡(luò)中管理芯片上隊(duì)列的制作方法
在交換結(jié)構(gòu)網(wǎng)絡(luò)中管理芯片上隊(duì)列
背景技術(shù):
本發(fā)明涉及在交換結(jié)構(gòu)網(wǎng)絡(luò)中管理芯片上隊(duì)列。高級(jí)交換互連
(ASI)是一種基于快速外圍設(shè)備互連(PCIe)體系結(jié)構(gòu)的技術(shù)并能使得各 種底板標(biāo)準(zhǔn)化。高級(jí)交換互連特殊興趣小組(ASI-SIG)是一個(gè)協(xié)作貿(mào)易 組織,旨在提供交換結(jié)構(gòu)互連標(biāo)準(zhǔn)及其規(guī)范,包括它向其成員提供的 高級(jí)交換核心體系結(jié)構(gòu)規(guī)范(Rev. 1.1, 2004年11月,可在 www.asi-sig.com從ASI國SIG得到)。
ASI利用可在PCIe物理和數(shù)據(jù)鏈路層上操作的基于分組的事務(wù) 層協(xié)議。ASI體系結(jié)構(gòu)提供許多對(duì)于多主機(jī)、端對(duì)端通訊設(shè)備(如刀片 服務(wù)器、集群、存儲(chǔ)陣列、電信路由器以及交換機(jī))常見的特征。這些 特征包括支持靈活的拓樸、分組路由選擇、擁塞管理、冗余結(jié)構(gòu)以及 故障恢復(fù)機(jī)制。
ASI體系結(jié)構(gòu)需要ASI設(shè)備使用基于狀態(tài)的流控(SBFC)、基于信 譽(yù)的流控以及注入率限制的組合來支持精細(xì)顆粒度的服務(wù)質(zhì)量(QoS)。 ASI端點(diǎn)設(shè)備還需要在響應(yīng)SBFC流控消息時(shí)遵循嚴(yán)格的指南。通常, 各ASI端點(diǎn)設(shè)備具有固定窗口 ,在該窗口中用來在SBFC流控消息被 接收用于給定連接控制隊(duì)列之后中止或重新開始來自該具體連接隊(duì) 列的分組傳輸。
連接隊(duì)列通常實(shí)現(xiàn)在外部存儲(chǔ)器中。ASI端點(diǎn)設(shè)備的調(diào)度程序使 用算法(如加權(quán)輪轉(zhuǎn)WRR、加權(quán)公平隊(duì)列WRR或輪轉(zhuǎn)RR)來調(diào)度來 自連接隊(duì)列的分組用于在ASI結(jié)構(gòu)上傳送。調(diào)度程序使用SBFC狀態(tài) 信息作為用來確定合格隊(duì)列的輸入之一。用來提取調(diào)度的分組并將他 們注入到ASI端點(diǎn)設(shè)備的傳送管道中的等待時(shí)間會(huì)高,這歸因于由處 理管道階段引入的延遲以及訪問外部存儲(chǔ)器的等待時(shí)間。如果連接隊(duì)
列被流控,則大的等待時(shí)間可能會(huì)導(dǎo)致不希望的狀況。因此,分組需
要^支再次調(diào)度以確保選擇的分組與SBFC狀態(tài)一致。
圖1是交換結(jié)構(gòu)網(wǎng)絡(luò)的框圖。 圖2A是ASI分組格式圖。 圖2B是ASI路由報(bào)頭格式。 圖3是ASI端點(diǎn)的框圖。
圖4是在交換結(jié)構(gòu)網(wǎng)絡(luò)的設(shè)備處緩沖器管理過程的流程圖。
具體實(shí)施例方式
參考圖1,高級(jí)交換互連(ASI)交換結(jié)構(gòu)網(wǎng)絡(luò)100包括經(jīng)由物理鏈 路互連的ASI設(shè)備。構(gòu)成網(wǎng)絡(luò)100的內(nèi)部節(jié)點(diǎn)的ASI設(shè)備稱作"交換 元件"102,以及駐留在網(wǎng)絡(luò)100的邊緣的ASI設(shè)備稱作"端點(diǎn),,104。 在網(wǎng)絡(luò)100中可包括其他ASI設(shè)備(未示出)。這種ASI設(shè)備可包括負(fù) 責(zé)列舉、配置以及維護(hù)網(wǎng)絡(luò)100的ASI結(jié)構(gòu)管理器,以及將網(wǎng)絡(luò)100 連接到其他通信基礎(chǔ)結(jié)構(gòu)(如PCI Express結(jié)構(gòu))的ASI橋。
各ASI設(shè)備102、 104具有ASI接口,該接口為由高級(jí)交換核心 體系結(jié)構(gòu)規(guī)范("ASI規(guī)范")定義的ASI體系結(jié)構(gòu)的一部分。各ASI 交換元件102可實(shí)現(xiàn)為支持局部化的擁塞控制機(jī)制,在ASI規(guī)范中稱 作"基于狀態(tài)的流控(Status Based Flow Control)"或"SBFC" 。 SBFC 機(jī)制規(guī)定通過兩個(gè)相鄰ASI設(shè)備102、 104(如ASI交換元件102及其 相鄰的ASI端點(diǎn)104)之間或兩個(gè)相鄰的ASI交換元件102之間的鏈路 的業(yè)務(wù)流的優(yōu)化。相鄰意味著兩個(gè)ASI設(shè)備102、 104直4妄鏈4妄,而 不會(huì)有任何插入的ASI設(shè)備104、 104。
通常,SBFC機(jī)制按照如下方式工作下游ASI交換元件102將 SBFC流控制消息傳送到上游ASI端點(diǎn)104。 SBFC流控消息提供一些 或所有的以下狀態(tài)信息業(yè)務(wù)類指示、僅有序的標(biāo)記狀態(tài)、出口輸出 端口標(biāo)識(shí)符以及請(qǐng)求的調(diào)度行為。上游ASI端點(diǎn)104使用狀態(tài)信息來 修改它的調(diào)度,使得在下游ASI交換元件102中的目標(biāo)為擁塞纟爰沖器 的分組被賦予較低優(yōu)先級(jí)。具體來說,上游ASI端點(diǎn)104或者中止(如 SBFC消息是ASIXoff消息)或者重新開始(如SBFC消息是ASIXon 消息)來自連接隊(duì)列的分組傳送,在該連接隊(duì)列中,所有的分組具有請(qǐng) 求的^又有序的標(biāo)記狀態(tài)、業(yè)務(wù)類領(lǐng)域標(biāo)識(shí)、出口輸出端口標(biāo)識(shí)符。當(dāng) 分組的傳送從連接隊(duì)列中止時(shí),該連接隊(duì)列就;故稱作4支"流控"。
在以下描述的示例場(chǎng)景中,從上游ASI端點(diǎn)104向下游ASI交換 元件102傳送的分組包括ASI協(xié)議接口 2(PI-2)分組。參考圖2A和圖 2B,各PI-2分組200包括ASI路由報(bào)頭202、 ASI有效栽荷204、以 及可選地,PI-2循環(huán)冗佘校驗(yàn)(CRC)206。 ASI路由報(bào)頭202包括路由 信息(如轉(zhuǎn)向池210、轉(zhuǎn)向指針212和方向214)、業(yè)務(wù)類指示216以及 避免死鎖信息(如僅有序的標(biāo)記狀態(tài)218)。 ASI有效載荷204含有給定 協(xié)議的協(xié)議數(shù)據(jù)單元(PDU)或PDU的段,其中所述給定協(xié)議例如為(以 下僅僅是列舉其中的 一些)以太網(wǎng)/點(diǎn)對(duì)點(diǎn)協(xié)議(PPP)、異步傳輸模式 (ATM)、在SONET上的分組(PoS)、通用交換接口(CSIX)。
參考圖3,上游ASI端點(diǎn)104包括網(wǎng)絡(luò)處理器(NPU)302,其配置 為緩沖從一個(gè)或多個(gè)PDU源304a-304n(如線路卡)接收的PDU,并將 PDU存儲(chǔ)在PDU存儲(chǔ)器306中,該P(yáng)DU存儲(chǔ)器306駐留在NPU 302 的外部(在所示示例中)。
NPU 302的主調(diào)度程序308確定從PDU存儲(chǔ)器306檢索PDU的 順序。檢索的PDU由NPU 302轉(zhuǎn)發(fā)到上游ASI端點(diǎn)的Pl-2分段與重 組(SAR)引擎310。
ASI設(shè)備102、 104通常實(shí)現(xiàn)為將最大的ASI分組大小限制到小 于ASI體系結(jié)構(gòu)支持的2176字節(jié)的最大ASI分組大小。在從PDU存 儲(chǔ)器206檢索的PDU具有大于可通過ASI結(jié)構(gòu)傳送的最大有效載荷 大小的分組大小的實(shí)例中,PDU^L分段成許多段。在一些實(shí)現(xiàn)中,在 各段^皮轉(zhuǎn)發(fā)到PI-2 SAR引擎301之前,通過NPU 302中的微引擎軟
件來執(zhí)行分段。在其他實(shí)現(xiàn)中,PDU被轉(zhuǎn)發(fā)到PI-2 SAR引擎310,在 那里執(zhí)行分段。
對(duì)于每個(gè)接收的PDU (或PDU的段),PI-2 SAR引擎310通過將 PDU分段成其大小小于網(wǎng)絡(luò)支持的最大值的多個(gè)段、以及各段附加一 個(gè)ASI路由t艮頭并且可選地計(jì)算PI-2 CRC來形成一個(gè)或多個(gè)PI-2分 組。緩沖器管理器312將由PI-2 SAR引擎310形成的各PI-2分組存 儲(chǔ)到數(shù)據(jù)緩沖器存儲(chǔ)器314(在本說明書中稱作"傳送緩沖器"或
"TBUF")中。在理想的場(chǎng)景中,TBUF314具有足夠大小以便緩沖通 過ASI結(jié)構(gòu)發(fā)送的所有PI-2分組。在這種場(chǎng)景中,理想地實(shí)現(xiàn)的NPU 302具有TBUF 314,對(duì)于低數(shù)據(jù)速率TBUF 314具有大于512 MB的 大小,而對(duì)于高數(shù)據(jù)速率TBUP314具有大于2MB的大小。
雖然ASI體系結(jié)構(gòu)并沒有對(duì)TBUF 314設(shè)任何大小限制,但是由 于管芯大小和成本限制通常最好實(shí)現(xiàn)小得多的大小的TBUF 314(如 64K至256KB)。在一個(gè)實(shí)現(xiàn)中,TBUF 314是可含有達(dá)128K數(shù)據(jù)的 隨機(jī)存取存儲(chǔ)器。TBUF 314組織為具有固定大小(elem一size)的元件 314a-314n,該固定大小通常為每元件32字節(jié)或64字節(jié)。給定的長度 為L的PI-2分組將^皮分配TBUF 314的mod(L/elem—size)元件314n。 含有PI-2分組的元件314n標(biāo)明為"被占用",或者元件314n標(biāo)明為
"可用"。
對(duì)于存儲(chǔ)在TBUF 314中的各PI-2分組,緩沖器管理器312還創(chuàng) 建一個(gè)對(duì)應(yīng)的隊(duì)列描述符、從許多駐留在芯片上存儲(chǔ)器318上的連接 隊(duì)列316a-316n中選擇隊(duì)列描述符將要被插入隊(duì)列的目標(biāo)連接隊(duì)列 316a、并且將隊(duì)列描述符附加到目標(biāo)連4妄隊(duì)列316a中的最后隊(duì)列描述 符。緩沖器管理器312記錄各隊(duì)列描述符在它附加到目標(biāo)連接隊(duì)列 316a的插入隊(duì)列時(shí)間。對(duì)目標(biāo)連接隊(duì)列316a的選擇通?;趯?duì)應(yīng)于 將要纟皮插入隊(duì)列的隊(duì)列描述符的PI-2分組的業(yè)務(wù)類指示、及其目的地 和通過ASI結(jié)構(gòu)的路徑。
為了確保TBUF 314不神支過負(fù)載,緩沖器管理器312實(shí)現(xiàn)用于動(dòng)
態(tài)地確定TBUF 314空間分配策略的緩沖器管理方案。通常,緩沖器 管理方案遵守以下規(guī)則(l)如果連接隊(duì)列316a-316n不被流控,則PI-2 分組(對(duì)應(yīng)于將被附加到該連接隊(duì)列316a-316n的隊(duì)列描述符)在TBUF
(2)如果連接隊(duì)列316a-316n被流控,則對(duì)應(yīng)于將被附加到該連接隊(duì)列 316a-316n的隊(duì)列描述符的PI-2分組在TBUF 314中被分配空間直到 超過某個(gè)可編程的每連接隊(duì)列闊值為止,在該點(diǎn),緩沖器管理器312 選擇幾個(gè)選項(xiàng)之一以解決該情況;以及(3)僅僅當(dāng)TBUF占用超過某個(gè) 閾值時(shí)觸發(fā)分組丟棄和回滾操作以確保該貴重的回滾操作^f皮保持在 最小。
參考圖4,作為緩沖器管理方案的一部分,緩沖器管理器312監(jiān) 視(402)上游ASI設(shè)備104的狀態(tài)。緩沖器管理器314包括以下中的一 個(gè)或多個(gè)(1)維持被流控的連接隊(duì)列316a-316n的總數(shù)的計(jì)數(shù)器;(2) 對(duì)由該連接隊(duì)列316a-316n消耗的TBUF元件314a-314n的總數(shù)進(jìn)行 計(jì)數(shù)的每連接隊(duì)列316a-316n的計(jì)數(shù)器;(3)指明各連接隊(duì)列316a-316n 的流控狀態(tài)的位向量;(4)對(duì)分配的TBUF元件314a-314n的總數(shù)進(jìn)行 計(jì)數(shù)的全局計(jì)數(shù)器;以及(5)對(duì)于各連接隊(duì)列316a-316n,指明在連接 隊(duì)列316a-316n的報(bào)頭處的隊(duì)列描述符被插入隊(duì)列的時(shí)間的時(shí)間標(biāo)記 ("連接隊(duì)列時(shí)間標(biāo)記的報(bào)頭,,)。當(dāng)緩沖器管理器312在給定的連接隊(duì) 列316a-316n上執(zhí)行出列操作時(shí)更新連接隊(duì)列時(shí)間標(biāo)記的報(bào)頭。
NPU 302具有輔助調(diào)度程序320,其對(duì)TBUF314中的PI-2分組 進(jìn)行調(diào)度用于在ASI結(jié)構(gòu)上經(jīng)由ASI事務(wù)層322、ASI數(shù)據(jù)鏈路層324 和ASI物理鏈路層326傳送。在一些實(shí)現(xiàn)中,ASI設(shè)備104包括將NPU 302連接到ASI結(jié)構(gòu)的結(jié)構(gòu)接口芯片。在正常的操作才莫式中,TBUF 314 的占用(即在TBUF中被占用元件314a-314n的數(shù)目)足夠低以便將 元件314a-314n加到TBUF 314的速率處于(或低于)在TBUF 314中元 件314a-314n ^皮使得可用的速率。即,輔助調(diào)度程序320能夠跟上主 調(diào)度程序308填充TBUF元件314a-314n的速率。
輔助調(diào)度程序320向NPU302的隊(duì)列管理引擎330發(fā)送提交消息。一 旦隊(duì)列管理引擎330接收用于PDU的段已被封裝到的所有PI2分組的 提交消息,則隊(duì)列管理引擎330從PDU存儲(chǔ)器306移除PDU數(shù)據(jù)。
一旦檢測(cè)(404)到觸發(fā)條件,則緩沖器管理器312發(fā)起(406)在 TBUF 314中重新要求空間的過程(在本說明書中稱作"數(shù)據(jù)緩沖器元 件恢復(fù)過程")以便減輕TBUF314占用影響。這種觸發(fā)條件的示例包 括(l)落在某個(gè)最小閾值以下的可用TBUF元件314a-314n的數(shù)目; (2)超過可編程閾值的流控的隊(duì)列316a-316n的數(shù)目;以及(3)與任何一 個(gè)超過可編程閾值的流控連接隊(duì)列316a- 316n相關(guān)聯(lián)的TBUP元件 314a-314n的數(shù)目。
一旦發(fā)起數(shù)據(jù)緩沖器元件恢復(fù)過程,則緩沖器管理器312選擇 (408)—個(gè)或多個(gè)連接隊(duì)列316a-316n用于丟棄,并對(duì)各選擇的連接隊(duì) 列316a-316n執(zhí)行(410)回滾操作,使得對(duì)應(yīng)于各選擇的連接隊(duì)列 316a-316n的TBUF 314的被占用元件314a-314n被標(biāo)明為可用?;貪L 操作的一種實(shí)現(xiàn)涉及將回滾消息(而不是提交消息)發(fā)送到NPU 302的 隊(duì)列管理引擎330。當(dāng)隊(duì)列管理引擎330接收PDU的回滾消息時(shí),它 重新將PDU插入到連接隊(duì)列316a-316n的報(bào)頭并且不會(huì)從PDU存儲(chǔ) 器306移除PDU數(shù)據(jù)。按此方式,緩沖器管理器312能夠在其中可 存儲(chǔ)其他PI-2分組的TBUTF314中重新要求空間。通常,數(shù)據(jù)緩沖器 元件恢復(fù)過程遵循以下兩個(gè)規(guī)則(l)選擇一個(gè)或多個(gè)連接隊(duì)列 316a-316n以便確保集合的重新要求的TBUF 314空間足夠,4吏得 TBUF 314占用落到預(yù)定閾值條件以下;以及(2)使要執(zhí)行的回滾操作 的總數(shù)最小。
可以通過緩沖器管理器312執(zhí)行數(shù)據(jù)緩沖器元件恢復(fù)過程來實(shí)現(xiàn) 四種示例技術(shù)。在給定場(chǎng)景中使用的特定技術(shù)可取決于PDU的源 304a-304n。即,應(yīng)用的4支術(shù)可以是線路卡特定的,以便最佳適合具體 線路卡配置的操作條件。在一個(gè)示例中,緩沖器管理器312檢查各連接隊(duì)列的計(jì)數(shù)器以及 指示連接隊(duì)列是否^皮流控的位向量,并識(shí)別在分配給連4妄隊(duì)列 316a-316n的TBUF 314中具有最大數(shù)目的#皮占用元件314a-314n的流 控連接隊(duì)列316a-316n。緩沖器管理器312標(biāo)記識(shí)別的流控連接隊(duì)列 316a-316n用于丟棄,并對(duì)該連接隊(duì)列發(fā)起回滾操作。分配給該連接 隊(duì)列316a-316n的TBUF 314中的被占用元件314a-314n被標(biāo)明為可 用,并且緩沖器管理器312重新評(píng)估(412)觸發(fā)條件。如果觸發(fā)條件沒 有消除(即,重新要求的TBUF 314空間不夠),則緩沖器管理器312 識(shí)別具有次最大數(shù)目的TBUF 314中分配的被占用元件314a-314n的 流控連接隊(duì)列316a-316n,并重復(fù)該過程(在408)直到觸發(fā)條件消除(即 變?yōu)槌鲥e(cuò))為止,在該點(diǎn),緩沖器管理器返回到監(jiān)視(402)NPU 302的 狀態(tài)。通過選擇具有相對(duì)較大數(shù)目的分配的被占用元件314a-314n的 流控隊(duì)列316a-316n,緩沖器管理器312能夠消除觸發(fā)條件,同時(shí)使 對(duì)其執(zhí)行回滾操作的連接隊(duì)列316a-316n的數(shù)目最小。
在另 一示例中,緩沖器管理器312檢查各連接隊(duì)列的連接隊(duì)列時(shí) 間標(biāo)記的報(bào)頭以及指示連接隊(duì)列316a-316n是否被流控的位向量,并 識(shí)別具有最早的連接隊(duì)列時(shí)間標(biāo)記的報(bào)頭的流控連接隊(duì)列316a-316n。 緩沖器管理器312對(duì)識(shí)別的流控連接隊(duì)列316a-316n進(jìn)行標(biāo)記用于丟 棄,并發(fā)起對(duì)該連接隊(duì)列316a-316n的回滾操作。分配給該連接隊(duì)列 316a-316n的TBUF314的被占用元件314a-314n被標(biāo)明為可用,并且 緩沖器管理器312重新評(píng)估(412)觸發(fā)條件。如果觸發(fā)條件沒有消除, 則緩沖器管理器312識(shí)別具有次最早的連接隊(duì)列時(shí)間標(biāo)記的^^艮頭的流 控連接隊(duì)列316a-316n,并重復(fù)過程(在408)直到觸發(fā)條件消除為止。 通過選擇最老的流控隊(duì)列316a-316n(如由最早的連接隊(duì)列時(shí)間標(biāo)記的 報(bào)頭所反映),緩沖器管理器312能夠消除觸發(fā)條件,同時(shí)重新標(biāo)明具 有最老SBFC狀態(tài)的TBUF 314的元件314a-314n。
在第三示例中,緩沖器管理器312檢查各連接隊(duì)列的連接隊(duì)列時(shí) 間標(biāo)記的報(bào)頭以及指示連接隊(duì)列316a-316n是否被流控的位向量,并
識(shí)別具有最近的連接隊(duì)列時(shí)間標(biāo)記的報(bào)頭的流控連接隊(duì)列316a-316n。 ^^沖器管理器312對(duì)識(shí)別的流控連接隊(duì)列316a-316n進(jìn)行標(biāo)記用于丟 棄,并發(fā)起對(duì)該連接隊(duì)列316a-316n的回滾操作。分配給該連4妄隊(duì)列 316a-316n的TBUF314的被占用元件314a-314n被標(biāo)明為可用,并且 緩沖器管理器312重新評(píng)估觸發(fā)條件。如果觸發(fā)條件沒有消除(即,重 新要求的TBUF314空間不夠),則緩沖器管理器312識(shí)別具有次最近 的連接隊(duì)列時(shí)間標(biāo)記的報(bào)頭的流控連接隊(duì)列316a-316n,并重復(fù)過程 (在408)直到觸發(fā)條件消除為止。通過選擇最新的流控隊(duì)列 316a-316n(如最近的連接隊(duì)列時(shí)間標(biāo)記的報(bào)頭所反映),緩沖器管理器 312工作在以下前提下最新的流控連接隊(duì)列316a-316n不可能受控 于緊接著的ASI Xon消息(發(fā)信號(hào)通知重新開始來自連接隊(duì)列 316a-316n的分組傳送)。因此,對(duì)最新的流控連接隊(duì)列316a-316n執(zhí) 行回滾操作使得緩沖器管理器312能夠重新要求TBUF 314的元件 314a-314n,同時(shí)使得較老的流控隊(duì)列316a-316n能被維持,因?yàn)檫@些 更可能受控于ASI Xon消息。圖4的技術(shù)在上游ASI端點(diǎn)中能特別有 效地工作,在該端點(diǎn)處Xon和Xoff事務(wù)按輪轉(zhuǎn)方式發(fā)生。
在第四示例中,數(shù)據(jù)緩沖器元件恢復(fù)過程在流控連接隊(duì)列 316a-316n的數(shù)目超過某個(gè)閾值時(shí)觸發(fā)。當(dāng)此發(fā)生時(shí),緩沖器管理器 312基于占用(即使用各連接隊(duì)列的每連接隊(duì)列計(jì)數(shù)器)、最老元件(即 識(shí)別最早的連接隊(duì)列時(shí)間標(biāo)記凈艮頭)、最新元件(即識(shí)別最近的連接隊(duì) 列時(shí)間標(biāo)記報(bào)頭)或通逸逸加輪轉(zhuǎn)方案來選擇連接隊(duì)列316a-316n用于 丟棄。緩沖器管理器312重復(fù)地選擇連接隊(duì)列316a-316n用于丟棄直 到流控連接隊(duì)列316a-316n的數(shù)目降到觸發(fā)閾值以下為止。
在上述示例中,實(shí)現(xiàn)的NPU302具有芯片上連接隊(duì)列316a-316n, 芯片上連接隊(duì)列316a-316n具有比芯片外連接隊(duì)列短的響應(yīng)時(shí)間。這 些較短的響應(yīng)時(shí)間使得NPU302能滿足嚴(yán)格的響應(yīng)時(shí)間要求,這些要 求是用于在SBFC流控消息被接收用于該具體連接隊(duì)列316a-316n之 后中止或重新開始來自給定連^^妄隊(duì)列316a-316n的分組的傳送。實(shí)現(xiàn)
的上游ASI端點(diǎn)還具有緩沖器管理器312,該緩沖器管理器312動(dòng)態(tài) 地管理緩沖器利用以便即使在考慮到管芯大小和成本限制而TBUF 314大小相對(duì)較小時(shí)防止緩沖器過負(fù)載。
本發(fā)明的一個(gè)實(shí)施例的技術(shù)可通過一個(gè)或多個(gè)可編程處理器執(zhí) 行,該處理器可執(zhí)行計(jì)算機(jī)程序以通過對(duì)輸入數(shù)據(jù)進(jìn)行操作并生成輸 出來執(zhí)行實(shí)施例的功能。這些技術(shù)還可通過專用邏輯電路執(zhí)行,并且 本發(fā)明的 一個(gè)實(shí)施例的裝置可實(shí)現(xiàn)為專用邏輯電路,如一個(gè)或多個(gè) FPGA(現(xiàn)場(chǎng)可編程門陣列)和/或一個(gè)或多個(gè)ASIC(專用集成電路)。
適于執(zhí)行計(jì)算機(jī)程序的處理器例如包括通用和專用微處理器以 及任何種類的數(shù)字計(jì)算機(jī)的任何一個(gè)或多個(gè)處理器。通常,處理器會(huì) 接收來自存儲(chǔ)器(如存儲(chǔ)器330)的指令和數(shù)據(jù)。存儲(chǔ)器可包括許多種類 的存儲(chǔ)媒體,其包括但不限于易失存儲(chǔ)器、非易失存儲(chǔ)器、閃存、可 編程變量或狀態(tài)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、閃存 或其他靜態(tài)或動(dòng)態(tài)存儲(chǔ)々某體。在一個(gè)示例中,機(jī)器可讀指令或內(nèi)容可 從機(jī)器可訪問介質(zhì)形式提供到存儲(chǔ)器。機(jī)器可訪問介質(zhì)可表示任何按 機(jī)器(如ASIC、專用功能控制器或處理器、FPGA或其他硬件設(shè)備)可 讀形式提供(即存儲(chǔ)或傳送)信息的機(jī)制。例如,機(jī)器可訪問介質(zhì)可包 括ROM; RAM;磁盤存儲(chǔ)々某體;光存儲(chǔ)々某體;閃存存儲(chǔ)器設(shè)備; 電、光、聲或其他形式的傳播信號(hào)(如載波、紅外信號(hào)、數(shù)字信號(hào))等。 處理器和存儲(chǔ)器可以由專用邏輯電路補(bǔ)充或結(jié)合在該電路中。
已經(jīng)按特定實(shí)施例的形式描述了本發(fā)明。其他實(shí)施例落在所附權(quán) 利要求的范圍內(nèi)。例如,本發(fā)明實(shí)現(xiàn)的步驟可按不同的順序執(zhí)行并且 仍然取得希望的結(jié)果。
權(quán)利要求
1.一種方法,包括監(jiān)視交換結(jié)構(gòu)網(wǎng)絡(luò)的設(shè)備的狀態(tài),所述設(shè)備包括用來存儲(chǔ)隊(duì)列描述符的芯片上隊(duì)列和用來存儲(chǔ)數(shù)據(jù)分組的數(shù)據(jù)緩沖器,各隊(duì)列描述符具有對(duì)應(yīng)的數(shù)據(jù)分組;檢測(cè)用來將所述設(shè)備從第一狀態(tài)轉(zhuǎn)換到第二狀態(tài)的第一觸發(fā)條件;以及響應(yīng)于所述第一觸發(fā)條件檢測(cè)而恢復(fù)所述數(shù)據(jù)緩沖器中的空間,所述恢復(fù)步驟包括選擇所述芯片上隊(duì)列中的一個(gè)或多個(gè)芯片上隊(duì)列用于丟棄,以及從所述數(shù)據(jù)緩沖器移除對(duì)應(yīng)于在選擇的一個(gè)或多個(gè)芯片上隊(duì)列中的隊(duì)列描述符的數(shù)據(jù)分組。
2. 如權(quán)利要求1所述的方法,其中所述監(jiān)視步驟包括監(jiān)視由數(shù) 據(jù)分組占用的數(shù)據(jù)緩沖器空間的數(shù)量。
3. 如權(quán)利要求1所述的方法,其中所述監(jiān)視步驟包括維持識(shí)別 被流控的芯片上隊(duì)列的數(shù)目的計(jì)數(shù)器。
4. 如權(quán)利要求1所述的方法,其中所述監(jiān)視步驟包括對(duì)于各芯 片上隊(duì)列識(shí)別對(duì)應(yīng)于所述芯片上隊(duì)列的隊(duì)列描述符的數(shù)據(jù)分組所占 用的數(shù)據(jù)緩沖器空間的數(shù)量。
5. 如權(quán)利要求1所述的方法,其中所述監(jiān)視步驟包括維持指示 各芯片上隊(duì)列的流控狀態(tài)的位向量。
6. 如權(quán)利要求1所述的方法,其中所述監(jiān)視步驟包括對(duì)于各芯 片上隊(duì)列維持時(shí)間標(biāo)記,所述時(shí)間標(biāo)記指示與所述芯片上隊(duì)列的報(bào)頭 處的隊(duì)列描述符相關(guān)聯(lián)的插入隊(duì)列時(shí)間。
7. 如權(quán)利要求1所述的方法,其中所述第一觸發(fā)條件指示由數(shù) 據(jù)分組占用的數(shù)據(jù)緩沖器空間的數(shù)量超過預(yù)定閾值。
8. 如權(quán)利要求1所述的方法,其中所述第一觸發(fā)條件指示^f皮流 控的芯片上隊(duì)列的數(shù)目超過預(yù)定閾值。
9. 如權(quán)利要求1所述的方法,其中所述第一觸發(fā)條件指示對(duì)應(yīng) 于芯片上隊(duì)列的隊(duì)列描述符的數(shù)據(jù)分組占用的數(shù)據(jù)緩沖器空間的數(shù) 量超過預(yù)定閾值。
10. 如權(quán)利要求l所述的方法,其中所述第一觸發(fā)條件指示^皮流 控的芯片上隊(duì)列的數(shù)目超過預(yù)定閾值。
11. 如權(quán)利要求l所述的方法,其中所述選擇步驟包括使被選擇 用于丟棄的芯片上隊(duì)列的數(shù)目最小,同時(shí)使從所述數(shù)據(jù)緩沖器恢復(fù)的 空間的數(shù)量最大。
12. 如權(quán)利要求l所述的方法,其中所述選擇步驟包括確定哪一 個(gè)流控芯片上隊(duì)列與占用最大數(shù)量的緩沖器空間的數(shù)據(jù)分組相關(guān)聯(lián), 并基于所述確定來選擇流控芯片上隊(duì)列用于丟棄。
13. 如權(quán)利要求l所述的方法,其中所述選擇步驟包括確定哪一 個(gè)流控芯片上隊(duì)列具有最老的"^艮頭隊(duì)列描述符,并基于所述確定來選 擇流控芯片上隊(duì)列用于丟棄。
14. 如權(quán)利要求l所述的方法,其中所述選擇步驟包括確定哪一 個(gè)流控芯片上隊(duì)列具有最新的報(bào)頭隊(duì)列描述符,并基于所述確定來選 擇流控芯片上隊(duì)列用于丟棄。
15. 如權(quán)利要求l所述的方法,還包括重復(fù)執(zhí)行直到用來將所述設(shè)備從第二狀態(tài)轉(zhuǎn)換到第 一狀態(tài)的第 二觸發(fā)條件祐:檢測(cè)到為止。
16. 如權(quán)利要求15所述的方法,其中所述第二觸發(fā)條件指示由 數(shù)據(jù)分組占用的數(shù)據(jù)緩沖器空間的數(shù)量低于預(yù)定閾值。
17. 如權(quán)利要求l所述的方法,其中所述交換結(jié)構(gòu)網(wǎng)絡(luò)包括高級(jí) 交換互連(ASI)結(jié)構(gòu),所述設(shè)備包括ASI端點(diǎn)或ASI交換元件,并且 各芯片上隊(duì)列包括ASI連接隊(duì)列。
18. 如權(quán)利要求l所述的方法,其中所述設(shè)備包括網(wǎng)絡(luò)處理器單 元,所述網(wǎng)絡(luò)處理器單元包括高級(jí)交換互連(ASI)接口。
19. 如權(quán)利要求1所述的方法,其中所述設(shè)備包括結(jié)構(gòu)接口芯片, 所述結(jié)構(gòu)接口芯片通過第 一高級(jí)交換互連(ASI)接口連接到網(wǎng)絡(luò)處理 器單元,并通過第二 ASI接口連接到ASI結(jié)構(gòu)。
20. 如權(quán)利要求l所述的方法,其中所述設(shè)備包括網(wǎng)絡(luò)處理器單 元和高級(jí)交換互連(ASI)接口 。
21. 在交換結(jié)構(gòu)設(shè)備處,所述交換結(jié)構(gòu)設(shè)備包括芯片上隊(duì)列和緩 沖器元件,各緩沖器元件的可用性狀態(tài)^皮標(biāo)明, 一種方法,所述方法 包括在4全測(cè)到第 一觸發(fā)條件時(shí),恢復(fù)所述緩沖器元件的一個(gè)或多個(gè)纟爰 沖器元件中的空間直到4全測(cè)到第二觸發(fā)條件為止,所述恢復(fù)步驟包括 選擇所述芯片上隊(duì)列中的一個(gè)用于丟棄,并將分配給選擇的芯片上隊(duì) 列的元件標(biāo)明為可用。
22. 如權(quán)利要求21所述的方法,其中標(biāo)明為被占用的緩沖器元 件存儲(chǔ)數(shù)據(jù)分組。
23. —種包括內(nèi)容的機(jī)器可訪問介質(zhì),當(dāng)由機(jī)器執(zhí)行所述內(nèi)容時(shí) 所述內(nèi)容會(huì)導(dǎo)致所述機(jī)器檢測(cè)用來將交換結(jié)構(gòu)設(shè)備從第 一狀態(tài)轉(zhuǎn)換到第二狀態(tài)的第 一觸 發(fā)條件,所述設(shè)備包括用來存儲(chǔ)隊(duì)列描述符的芯片上隊(duì)列和用來存儲(chǔ) 數(shù)據(jù)分組的數(shù)據(jù)緩沖器,各隊(duì)列描述符具有對(duì)應(yīng)的數(shù)據(jù)分組;以及響應(yīng)于所述第一觸發(fā)條件檢測(cè)而恢復(fù)所述數(shù)據(jù)纟爰沖器中的空間, 其中由所述機(jī)器執(zhí)行時(shí)導(dǎo)致所述機(jī)器恢復(fù)所述數(shù)據(jù)緩沖器中的空間 的內(nèi)容包括用來選擇所述芯片上隊(duì)列中的一個(gè)或多個(gè)芯片上隊(duì)列用 于丟棄的內(nèi)容,以及用來從所述數(shù)據(jù)緩沖器移除對(duì)應(yīng)于在選擇的一個(gè) 或多個(gè)芯片上隊(duì)列中的隊(duì)列描述符的數(shù)據(jù)分組的內(nèi)容。
24. 如權(quán)利要求23所述的機(jī)器可訪問介質(zhì),還包括當(dāng)由所述機(jī) 器執(zhí)行時(shí)導(dǎo)致所述機(jī)器來執(zhí)行以下步驟的內(nèi)容恢復(fù)所述數(shù)據(jù)緩沖器中的空間直到用來將所述設(shè)備從第二狀態(tài) 轉(zhuǎn)換到第 一狀態(tài)的第二觸發(fā)條件祐:檢測(cè)到為止。
25. 如權(quán)利要求24所述的機(jī)器可訪問介質(zhì),其中所述笫二觸發(fā) 條件指示由數(shù)據(jù)分組占用的數(shù)據(jù)緩沖器空間的數(shù)量低于預(yù)定閾值。
26. —種交換結(jié)構(gòu)設(shè)備,包括 處理器;用來存儲(chǔ)隊(duì)列描述符的芯片上隊(duì)列;用來存儲(chǔ)對(duì)應(yīng)于所述隊(duì)列描述符的數(shù)據(jù)分組的第 一存儲(chǔ)器; 包括緩沖器管理軟件的第二存儲(chǔ)器,所述軟件用來向所述處理器 提供指令以便檢測(cè)用來將所述設(shè)備從第 一狀態(tài)轉(zhuǎn)換到第二狀態(tài)的第一觸 發(fā)條件;以及響應(yīng)于所述第 一觸發(fā)條件檢測(cè),執(zhí)行第 一存儲(chǔ)器空間恢復(fù)過 程,所述過程包括選擇所述芯片上隊(duì)列中的一個(gè)或多個(gè)芯片上隊(duì)列用 于丟棄,以及從所述第一存儲(chǔ)器中移除對(duì)應(yīng)于在選擇的一個(gè)或多個(gè)芯 片上隊(duì)列中的隊(duì)列描述符的數(shù)據(jù)分組。
27. 如權(quán)利要求26所述的交換結(jié)構(gòu)設(shè)備,其中所述第一存儲(chǔ)器 包括多個(gè)緩沖器元件,根據(jù)數(shù)據(jù)分組是否存儲(chǔ)在所迷緩沖器元件中而 將各緩沖器元件標(biāo)明為可用或:f皮占用。
28. 如權(quán)利要求27所述的交換結(jié)構(gòu)設(shè)備,其中所述緩沖器管理 軟件還向所述處理器提供用于將分配給選擇的一個(gè)或多個(gè)芯片上隊(duì) 列的緩沖器元件標(biāo)明為可用的指令。
29. 如權(quán)利要求26所述的交換結(jié)構(gòu)設(shè)備,其中所述交換結(jié)構(gòu)網(wǎng) 絡(luò)包括高級(jí)交換互連(ASI)結(jié)構(gòu),所迷設(shè)備包括ASI端點(diǎn)或ASI交換 元件,并且各芯片上隊(duì)列包括ASI連接隊(duì)列。
30. —種系統(tǒng),包括通過結(jié)構(gòu)的鏈路互連的交換結(jié)構(gòu)^殳備,所述交換結(jié)構(gòu)設(shè)備中的至 少一個(gè)設(shè)備包括協(xié)議數(shù)據(jù)單元的源;以及 網(wǎng)絡(luò)處理器單元,包括 處理器; 用來存儲(chǔ)隊(duì)列描述符的芯片上隊(duì)列;用來存儲(chǔ)對(duì)應(yīng)于所述隊(duì)列描述符的數(shù)據(jù)分組的第 一存 儲(chǔ)器,各數(shù)據(jù)分組包括協(xié)議數(shù)據(jù)單元或協(xié)議數(shù)據(jù)單元的段;以及包括緩沖器管理軟件的第二存儲(chǔ)器,所述軟件用來向所 述處理器提供指令以便檢測(cè)用來將所述設(shè)備從第 一狀態(tài)轉(zhuǎn)換到第二 狀態(tài)的第一觸發(fā)條件,并響應(yīng)于所述第一觸發(fā)條件檢測(cè),才丸行第一存 儲(chǔ)器空間恢復(fù)過程,所述過程包括選擇所述芯片上隊(duì)列中的一個(gè)或多 個(gè)芯片上隊(duì)列用于丟棄,以及從所述第一存儲(chǔ)器移除對(duì)應(yīng)于在選擇的 一個(gè)或多個(gè)芯片上隊(duì)列中的隊(duì)列描述符的數(shù)據(jù)分組。
31. 如權(quán)利要求30所述的系統(tǒng),其中所述協(xié)議數(shù)據(jù)單元的源包 括線路卡。
32. 如權(quán)利要求30所述的系統(tǒng),其中所述結(jié)構(gòu)包括高級(jí)交換互 連(ASI)結(jié)構(gòu),所述至少一個(gè)交換結(jié)構(gòu)設(shè)備包括ASI端點(diǎn),并且各芯片 上隊(duì)列包括ASI連接隊(duì)列。
全文摘要
方法和裝置及其計(jì)算機(jī)程序產(chǎn)品,用于實(shí)現(xiàn)以下技術(shù)監(jiān)視交換結(jié)構(gòu)網(wǎng)絡(luò)的設(shè)備的狀態(tài),所述設(shè)備包括用來存儲(chǔ)隊(duì)列描述符的芯片上隊(duì)列和用來存儲(chǔ)數(shù)據(jù)分組的數(shù)據(jù)緩沖器,各隊(duì)列描述符具有對(duì)應(yīng)的數(shù)據(jù)分組;檢測(cè)用來將所述設(shè)備從第一狀態(tài)轉(zhuǎn)換到第二狀態(tài)的第一觸發(fā)條件;以及響應(yīng)于所述第一觸發(fā)條件檢測(cè)而恢復(fù)所述數(shù)據(jù)緩沖器中的空間,所述恢復(fù)步驟包括選擇所述芯片上隊(duì)列中的一個(gè)或多個(gè)芯片上隊(duì)列用于丟棄,以及從所述數(shù)據(jù)緩沖器移除對(duì)應(yīng)于在選擇的一個(gè)或多個(gè)芯片上隊(duì)列中的隊(duì)列描述符的數(shù)據(jù)分組。
文檔編號(hào)H04L12/56GK101356777SQ200680047740
公開日2009年1月28日 申請(qǐng)日期2006年12月11日 優(yōu)先權(quán)日2005年12月21日
發(fā)明者H·M·威爾金森三世, J·J·塞迪爾, P·多爾米奇, S·拉克什馬納穆爾蒂 申請(qǐng)人:英特爾公司