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

為網(wǎng)絡(luò)處理器調(diào)度連接的方法與裝置的制作方法

文檔序號(hào):7598221閱讀:210來源:國知局
專利名稱:為網(wǎng)絡(luò)處理器調(diào)度連接的方法與裝置的制作方法
技術(shù)領(lǐng)域
一般地,本發(fā)明涉及網(wǎng)絡(luò)處理器,更具體地,涉及一種高速調(diào)度器與使用該調(diào)度器的方法。
背景技術(shù)
諸如交換機(jī)或路由器等網(wǎng)絡(luò)設(shè)備可以包括網(wǎng)絡(luò)處理器。該網(wǎng)絡(luò)處理器經(jīng)常被用來處理從一個(gè)或多個(gè)連接接收與向該網(wǎng)絡(luò)設(shè)備發(fā)出的數(shù)據(jù)(例如信元(cell)或幀)發(fā)送。網(wǎng)絡(luò)設(shè)備可以使用一個(gè)或多個(gè)相應(yīng)于連接的控制結(jié)構(gòu)(例如控制塊)在存儲(chǔ)器中存儲(chǔ)信息,數(shù)據(jù)從所述連接發(fā)送到網(wǎng)絡(luò)處理器。網(wǎng)絡(luò)處理器一般在存儲(chǔ)器中可以存儲(chǔ)250000或更多個(gè)控制結(jié)構(gòu)。因此,需要大型存儲(chǔ)器來存儲(chǔ)這些控制結(jié)構(gòu)。由于網(wǎng)絡(luò)處理器的大小限制,所以大型存儲(chǔ)器一般位于在網(wǎng)絡(luò)處理器外部。
網(wǎng)絡(luò)處理器的一個(gè)或多個(gè)組件可以修改存儲(chǔ)在控制結(jié)構(gòu)中的信息。例如,每次網(wǎng)絡(luò)處理器從連接接收信元或幀時(shí),網(wǎng)絡(luò)處理器的一個(gè)或多個(gè)組件可以訪問外部存儲(chǔ)器,以修改存儲(chǔ)在一個(gè)或多個(gè)控制結(jié)構(gòu)中的信息。
由于有限的存儲(chǔ)器帶寬,所以外部存儲(chǔ)器訪問可以成為網(wǎng)絡(luò)處理器的速度限制手段或瓶頸。因?yàn)橄M员韧獠看鎯?chǔ)器訪問快的速度接收數(shù)據(jù)進(jìn)入和/或從網(wǎng)絡(luò)處理器發(fā)送數(shù)據(jù),所以存在一種需求,需要為網(wǎng)絡(luò)處理器提供數(shù)據(jù)高速調(diào)度的方法與裝置。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了為網(wǎng)絡(luò)處理器調(diào)度連接的第一方法。該第一方法包括以下步驟在高速緩沖存儲(chǔ)器中,根據(jù)存儲(chǔ)在相應(yīng)于每個(gè)連接(connection)的控制結(jié)構(gòu)中的服務(wù)質(zhì)量參數(shù),調(diào)度多個(gè)待服務(wù)連接;以及在調(diào)度時(shí)機(jī)期間(1)在高速緩沖存儲(chǔ)器中,標(biāo)識(shí)多個(gè)連接中的一個(gè)或多個(gè)待服務(wù)連接;(2)選擇所標(biāo)識(shí)的待服務(wù)連接中的一個(gè);(3)對(duì)所選擇的連接進(jìn)行服務(wù);(4)訪問在高速緩沖存儲(chǔ)器中的、包括服務(wù)質(zhì)量參數(shù)的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分,所述服務(wù)質(zhì)量參數(shù)相應(yīng)于所選擇的連接;(5)計(jì)算對(duì)所選擇的連接進(jìn)行服務(wù)的下一服務(wù)時(shí)間,所述下一服務(wù)時(shí)間基于服務(wù)質(zhì)量參數(shù);以及(6)根據(jù)下一服務(wù)時(shí)間,確定是否在高速緩沖存儲(chǔ)器與日程表之一中調(diào)度所選擇的待服務(wù)連接。
根據(jù)本發(fā)明的第二方面,提供了為網(wǎng)絡(luò)處理器調(diào)度連接的第二方法。該第二方法包括以下步驟在調(diào)度時(shí)機(jī)期間,(1)根據(jù)相應(yīng)于多個(gè)連接中每一個(gè)的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分,在高速緩沖存儲(chǔ)器中,標(biāo)識(shí)被調(diào)度進(jìn)行服務(wù)的多個(gè)連接中的一個(gè)或多個(gè);(2)對(duì)所所標(biāo)識(shí)的連接中的一個(gè)進(jìn)行服務(wù);以及(3)根據(jù)相應(yīng)于已接受服務(wù)的連接的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分,在高速緩沖存儲(chǔ)器與日程表之一中,調(diào)度待再次服務(wù)的已接受服務(wù)的連接。
還提供了許多其他方面,以及根據(jù)本發(fā)明這些其他方面的系統(tǒng)與裝置。
從以下詳細(xì)描述、權(quán)利要求以及附圖中可以更明顯地看出本發(fā)明的其他特征與方面。


圖1為其中可以實(shí)現(xiàn)本發(fā)明的網(wǎng)絡(luò)處理器系統(tǒng)的示例性示意圖;圖2為根據(jù)本發(fā)明的示例性網(wǎng)絡(luò)處理器系統(tǒng)的詳細(xì)方框圖;圖3顯示根據(jù)本發(fā)明的調(diào)度數(shù)據(jù)的示例性方法;圖4顯示根據(jù)本發(fā)明的調(diào)度數(shù)據(jù)的更詳細(xì)的示例性方法;圖5顯示根據(jù)本發(fā)明的對(duì)調(diào)度進(jìn)行服務(wù)的連接進(jìn)行服務(wù)的示例性方法;圖6顯示根據(jù)本發(fā)明的調(diào)度連接進(jìn)行服務(wù)的示例性方法。
具體實(shí)施例方式
在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,網(wǎng)絡(luò)處理器系統(tǒng)可以包括耦合至一個(gè)或多個(gè)高速連接的網(wǎng)絡(luò)處理器。網(wǎng)絡(luò)處理器也可以包括耦合至輸出連接的輸出端口。網(wǎng)絡(luò)處理器可以從高速連接接收數(shù)據(jù),并通過輸出端口從輸出連接發(fā)送該數(shù)據(jù)。網(wǎng)絡(luò)處理器包括調(diào)度邏輯,用來調(diào)度何時(shí)借助網(wǎng)絡(luò)處理器的輸出端口從輸出連接發(fā)送由該網(wǎng)絡(luò)處理器所接收的數(shù)據(jù)。
為了調(diào)度從高速連接所接收的數(shù)據(jù)的發(fā)送,調(diào)度邏輯可以訪問外部存儲(chǔ)器,以檢索相應(yīng)于高速連接的信息(例如控制結(jié)構(gòu))。因?yàn)檎{(diào)度邏輯必須使用有限大小的帶寬來訪問外部存儲(chǔ)器,所以該存儲(chǔ)器訪問的速度是有限的。當(dāng)網(wǎng)絡(luò)處理器系統(tǒng)耦合至一個(gè)或多個(gè)需要服務(wù)的高速連接時(shí),這樣的速度限制可以成為問題。本方法與裝置通過在調(diào)度待服務(wù)的高速連接時(shí)限制為檢索控制結(jié)構(gòu)而訪問外部存儲(chǔ)器的次數(shù),提供了從高速連接所接收的數(shù)據(jù)的高速調(diào)度。
圖1為根據(jù)本發(fā)明的網(wǎng)絡(luò)處理器系統(tǒng)100的示例性示意圖。網(wǎng)絡(luò)處理器系統(tǒng)100可以包括網(wǎng)絡(luò)處理器102。網(wǎng)絡(luò)處理器102可以從自主流104-108和/或管道120-124接收數(shù)據(jù)。自主流(autonomous flow)與管道是對(duì)等的。每個(gè)自主流104-108表示從網(wǎng)絡(luò)處理器102到網(wǎng)絡(luò)設(shè)備(未顯示)的各個(gè)連接。每個(gè)管道120-124可以包括一個(gè)或多個(gè)管道流130。管道流130表示從網(wǎng)絡(luò)處理器102到網(wǎng)絡(luò)設(shè)備(未顯示)的與其他各個(gè)到網(wǎng)絡(luò)設(shè)備的連接在一起組合在管道120-124中的各個(gè)連接(例如因特網(wǎng)服務(wù)供應(yīng)商可以從系統(tǒng)帶寬所有者購買一組管道流,并向消費(fèi)者銷售這些管道流)。
在圖1所示的網(wǎng)絡(luò)處理器系統(tǒng)100中,網(wǎng)絡(luò)處理器102從多個(gè)自主流104-118和/或多個(gè)管道120-124接收數(shù)據(jù),其中每個(gè)管道包括多個(gè)管道流(例如130),這些數(shù)據(jù)將從輸出端口132發(fā)送。網(wǎng)絡(luò)處理器102的每個(gè)輸出端口132可以連接到有限系統(tǒng)帶寬的網(wǎng)絡(luò)連接。因此,來自所有自主流104-118以及管道120-124的數(shù)據(jù)不能同時(shí)得到服務(wù)(例如來自每個(gè)自主流與管道的數(shù)據(jù)不能同時(shí)發(fā)送)。
在圖1所示的網(wǎng)絡(luò)處理器102中,可以向每個(gè)自主流104-118或管道120-124分配優(yōu)先級(jí),(例如高、中、或低),以及帶寬。分配給自主流104-118或管道120-124的優(yōu)先級(jí)決定了自主流104-118或管道120-124接受服務(wù)的頻率。分配給自主流104-118或管道120-124的帶寬決定了在服務(wù)自主流或管道時(shí)可用于自主流104-118或管道120-124的系統(tǒng)帶寬的比例。
圖2為根據(jù)本發(fā)明的示例性網(wǎng)絡(luò)處理器系統(tǒng)100的詳細(xì)方框圖。網(wǎng)絡(luò)處理器系統(tǒng)100包括耦合至存儲(chǔ)器(諸如外部存儲(chǔ)器)的網(wǎng)絡(luò)處理器102。網(wǎng)絡(luò)處理器102可以通過一個(gè)或多個(gè)上述連接接收數(shù)據(jù),并通過一個(gè)或多個(gè)輸出端口132(圖1)從連接發(fā)送數(shù)據(jù)。存儲(chǔ)器202可以在一個(gè)或多個(gè)相應(yīng)于每個(gè)連接的控制結(jié)構(gòu)(例如控制塊)中存儲(chǔ)信息,網(wǎng)絡(luò)處理器102從所述連接接收數(shù)據(jù)。網(wǎng)絡(luò)處理器102可以包括通過存儲(chǔ)器接口206(諸如存儲(chǔ)器控制器)耦合至存儲(chǔ)器202的調(diào)度邏輯204。調(diào)度邏輯204可以調(diào)度待服務(wù)連接和/或?qū)@些連接提供服務(wù),網(wǎng)絡(luò)處理器系統(tǒng)100從所述待服務(wù)連接接收數(shù)據(jù)。當(dāng)從網(wǎng)絡(luò)服務(wù)器102發(fā)送由該網(wǎng)絡(luò)服務(wù)器102從一連接中所接收到的數(shù)據(jù)時(shí)服務(wù)該連接。
調(diào)度邏輯204可以包括高速緩沖存儲(chǔ)器210,用來存儲(chǔ)有關(guān)于近期要接受服務(wù)的連接的信息。更具體地,高速緩沖存儲(chǔ)器210可以作為項(xiàng)存儲(chǔ)相應(yīng)于近期要接受服務(wù)的連接的控制結(jié)構(gòu)(例如控制塊)。雖然高速緩沖存儲(chǔ)器210存儲(chǔ)相應(yīng)于近期要接受服務(wù)的連接的控制結(jié)構(gòu),但為了方便,稱高速緩沖存儲(chǔ)器210在其中存儲(chǔ)了連接。在一個(gè)方面,高速緩沖存儲(chǔ)器210可以包括時(shí)間戳內(nèi)容可尋址存儲(chǔ)器(CAM)212、流標(biāo)識(shí)CAM 214及流控制塊RAM 216。時(shí)間戳內(nèi)容CAM 212、流標(biāo)識(shí)CAM 214及流控制塊RAM 216可以存儲(chǔ)每個(gè)高速緩沖存儲(chǔ)器項(xiàng)中的一個(gè)或多個(gè)部分??梢允褂闷渌渲煤?或存儲(chǔ)器類型。
調(diào)度邏輯204可以包括連接到高速緩沖存儲(chǔ)器210以及存儲(chǔ)器202(例如通過存儲(chǔ)器接口206)的入隊(duì)控制邏輯208。雖然包含在調(diào)度邏輯204中的控制邏輯可以耦合至?xí)r間戳內(nèi)容CAM 212、流標(biāo)識(shí)CAM 214以及流控制塊RAM216中的一個(gè)或多個(gè),但是為了方便,稱該控制邏輯耦合至高速緩沖存儲(chǔ)器210。入隊(duì)控制邏輯208可以使用高速緩沖存儲(chǔ)器210調(diào)度待服務(wù)連接,網(wǎng)絡(luò)處理器系統(tǒng)100通過該待服務(wù)連接接收新數(shù)據(jù)。
出隊(duì)控制邏輯218可以耦合至高速緩沖存儲(chǔ)器210。對(duì)于給定的調(diào)度時(shí)機(jī),出隊(duì)控制邏輯218可以在高速緩沖存儲(chǔ)器210中標(biāo)識(shí)在該調(diào)度時(shí)機(jī)期間相應(yīng)于被調(diào)度待服務(wù)連接的項(xiàng),并對(duì)一個(gè)或多個(gè)連接進(jìn)行服務(wù)。
出隊(duì)更新控制邏輯220可以耦合至高速緩沖存儲(chǔ)器210的輸出。出隊(duì)更新控制邏輯220可以更新相應(yīng)于在調(diào)度時(shí)機(jī)期間接受服務(wù)的連接的控制塊中的一個(gè)或多個(gè)部分。下一時(shí)間戳控制邏輯222也可以耦合至高速緩沖存儲(chǔ)器210的輸出。下一時(shí)間戳控制邏輯222確定在調(diào)度時(shí)機(jī)期間已接受服務(wù)的連接應(yīng)該再次被調(diào)度到接受服務(wù)的時(shí)間。出隊(duì)更新控制邏輯220與下一時(shí)間戳控制邏輯222中每一個(gè)的輸出可以耦合至高速緩沖存儲(chǔ)器210與清出控制邏輯224的輸入。
根據(jù)在調(diào)度時(shí)機(jī)期間已接受服務(wù)的連接再次被調(diào)度到接受服務(wù)的時(shí)間,將剛接受服務(wù)的連接(例如相應(yīng)于該連接的控制塊)輸入高速緩沖存儲(chǔ)器210或清出控制邏輯224。如果剛接受服務(wù)的連接需要調(diào)度到在近期接受服務(wù),則該連接存儲(chǔ)在高速緩沖存儲(chǔ)器210中。在另一方面,如果剛接受服務(wù)的連接在近期不會(huì)被調(diào)度為再次接受服務(wù),則將該連接輸出到清出控制邏輯224。
清出控制邏輯224確定是向存儲(chǔ)器202(例如外部存儲(chǔ)器)還是重裝控制邏輯226輸出相應(yīng)于剛接受服務(wù)的連接的控制塊。如果剛接受服務(wù)的連接不再需要服務(wù)(例如若該連接為空),則將相應(yīng)于該連接的控制塊寫入存儲(chǔ)器202。另一方面,如果剛接受服務(wù)的連接需要再次服務(wù)但不在近期,則將相應(yīng)于該連接的控制塊輸出到重裝控制邏輯226(其進(jìn)而耦合至重裝日程表228)。
重裝日程表228可以包括一組存儲(chǔ)器地址,這些存儲(chǔ)器地址被反復(fù)檢查以標(biāo)識(shí)需要接受服務(wù)的連接的項(xiàng)。當(dāng)反復(fù)檢查存儲(chǔ)器地址組時(shí),在第一時(shí)間單元期間指示該組中的第一個(gè)存儲(chǔ)器地址的指針,可以在每一接下來的時(shí)間單元期間遞增以指示在該組中的下一個(gè)存儲(chǔ)器地址。如果在該時(shí)間單元中檢查了日程表的最后一個(gè)地址,則在下一個(gè)時(shí)間單元中可以檢查該日程表的第一個(gè)地址。在重裝日程表228中被調(diào)度項(xiàng)的存儲(chǔ)器地址與在重裝日程表228中正在被檢查的存儲(chǔ)器地址之間的距離越長,則由該被調(diào)度的項(xiàng)所標(biāo)識(shí)的連接等待服務(wù)的時(shí)間越長。
根據(jù)輸入到重裝邏輯控制226的連接何時(shí)需要再次服務(wù),重裝邏輯控制226向重裝日程表228寫入相應(yīng)于連接的控制塊。重裝邏輯控制226可以訪問重裝日程表228,以確定是否在近期調(diào)度一個(gè)或多個(gè)連接接受服務(wù),可以從存儲(chǔ)器202中檢索相應(yīng)于這些連接的控制塊,并且可以向高速緩沖存儲(chǔ)器210寫入這些控制塊。
除了上述功能之外,清出控制邏輯224還可以從高速緩沖存儲(chǔ)器210中去除項(xiàng),并且在重裝日程表228中調(diào)度該項(xiàng)接受服務(wù)(例如通過重裝邏輯控制226),以為表示需要在被去除項(xiàng)之前服務(wù)的連接的項(xiàng)騰出空間(例如通過入隊(duì)控制邏輯208和/或重裝邏輯控制226)。
現(xiàn)在參照?qǐng)D1-2,并參照?qǐng)D3,詳細(xì)描述網(wǎng)絡(luò)處理器系統(tǒng)100的操作,其中圖3顯示了根據(jù)本發(fā)明的調(diào)度數(shù)據(jù)的示例性方法。參照?qǐng)D3,在步驟302,開始方法300。在步驟304,在高速緩沖存儲(chǔ)器210中被調(diào)度服務(wù)的多個(gè)連接中的一個(gè)或多個(gè)被標(biāo)識(shí)為在調(diào)度時(shí)機(jī)期間進(jìn)行服務(wù)。根據(jù)相應(yīng)于所述多個(gè)連接的每一個(gè)的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分來標(biāo)識(shí)多個(gè)連接進(jìn)行服務(wù)。更具體地,高速緩沖存儲(chǔ)器210中的每一項(xiàng)都可以是相應(yīng)于連接的控制塊。每個(gè)控制塊可以包括描述該連接的多個(gè)字段。出隊(duì)控制邏輯218可以使用鍵值來標(biāo)識(shí)在高速緩沖存儲(chǔ)器210中被調(diào)度服務(wù)的多個(gè)連接中的一個(gè)或多個(gè)。例如,當(dāng)出隊(duì)控制邏輯218向高速緩沖存儲(chǔ)器210輸入該鍵值時(shí),高速緩沖存儲(chǔ)器210將通知出隊(duì)控制邏輯218包括匹配該鍵值的部分(例如,任何命中)的所有控制塊項(xiàng)。
在步驟306,在調(diào)度時(shí)機(jī)期間,對(duì)所標(biāo)識(shí)的連接之一進(jìn)行服務(wù)。在調(diào)度時(shí)機(jī)期間,出隊(duì)控制邏輯218任意地選擇所標(biāo)識(shí)的控制塊項(xiàng)之一并且對(duì)相應(yīng)于所選擇的控制塊項(xiàng)的連接進(jìn)行服務(wù)。更具體地,來自相應(yīng)于所選擇的控制塊項(xiàng)的連接的數(shù)據(jù)從網(wǎng)絡(luò)處理器系統(tǒng)100發(fā)送,并且通過出隊(duì)更新邏輯220與下一時(shí)間戳控制邏輯222更新該控制塊的一個(gè)或多個(gè)部分。
在步驟308,在高速緩沖存儲(chǔ)器與日程表之一中調(diào)度該已服務(wù)連接再次在調(diào)度時(shí)機(jī)期間接受服務(wù)。根據(jù)相應(yīng)于連接的控制塊的一個(gè)或多個(gè)部分,剛接受服務(wù)的連接在一位置中被調(diào)度為再次接受服務(wù)。例如,相應(yīng)于連接的控制塊可以包括指示何時(shí)應(yīng)該再次對(duì)該連接進(jìn)行服務(wù)的字段。如果該字段的值指示應(yīng)該在近期對(duì)該連接進(jìn)行服務(wù)(例如,近似小于預(yù)定數(shù)目的調(diào)度時(shí)機(jī)),則在高速緩沖存儲(chǔ)器210中調(diào)度該連接接受服務(wù)。否則,在重裝日程表228中調(diào)度該連接接受服務(wù)。
如上所述,在步驟304,出隊(duì)控制邏輯218可以在高速緩沖存儲(chǔ)器210中標(biāo)識(shí)多個(gè)連接中的一個(gè)或多個(gè),以在調(diào)度時(shí)機(jī)期間進(jìn)行服務(wù)。假設(shè)在步驟304中標(biāo)識(shí)所述多個(gè)連接中的多個(gè),則在步驟310,在每個(gè)隨后的調(diào)度時(shí)機(jī)期間,對(duì)所標(biāo)識(shí)的連接中剩余的一個(gè)進(jìn)行服務(wù),直至對(duì)所有所標(biāo)識(shí)的連接進(jìn)行了服務(wù)。更具體地,在每個(gè)隨后的調(diào)度時(shí)機(jī)期間,出隊(duì)控制邏輯218任意選擇剩余控制塊項(xiàng)中的一個(gè),并且對(duì)所選擇的項(xiàng)進(jìn)行服務(wù)(如上所述),直至對(duì)每個(gè)剩余的所標(biāo)識(shí)的連接進(jìn)行了服務(wù),所述剩余控制塊項(xiàng)作為對(duì)出隊(duì)控制邏輯218所輸入的鍵值的響應(yīng)由高速緩沖存儲(chǔ)器210標(biāo)識(shí)。在步驟312,圖3的方法300結(jié)束。
參照?qǐng)D1-2并參照?qǐng)D4,描述網(wǎng)絡(luò)處理器系統(tǒng)100的操作,圖4顯示了根據(jù)本發(fā)明的調(diào)度數(shù)據(jù)的更詳細(xì)的示例性方法400。參照?qǐng)D4,在步驟402,開始該調(diào)度數(shù)據(jù)的方法。在步驟404,可以在高速緩沖存儲(chǔ)器中調(diào)度多個(gè)連接接受服務(wù)??梢愿鶕?jù)存儲(chǔ)在相應(yīng)于每個(gè)連接的控制塊中的服務(wù)質(zhì)量參數(shù),在高速緩沖存儲(chǔ)器210中調(diào)度所述多個(gè)連接。
如上所述,當(dāng)調(diào)度邏輯204對(duì)連接進(jìn)行服務(wù)時(shí),調(diào)度邏輯204訪問并修改相應(yīng)于該連接的控制塊的部分。如果由存儲(chǔ)器202(例如外部存儲(chǔ)器)存儲(chǔ)控制塊,則每次對(duì)連接進(jìn)行服務(wù)時(shí)進(jìn)行外部存儲(chǔ)器訪問。因?yàn)榈酱鎯?chǔ)器202的帶寬是有限的,所以所述存儲(chǔ)器訪問可以很耗時(shí)。如果每次網(wǎng)絡(luò)處理器102對(duì)連接進(jìn)行服務(wù)時(shí),網(wǎng)絡(luò)處理器系統(tǒng)100都訪問外部存儲(chǔ)器202,則網(wǎng)絡(luò)處理器102通過其接收數(shù)據(jù)的連接的速度就由該存儲(chǔ)器訪問時(shí)間限制。因此,在高速緩沖存儲(chǔ)器210中本地存儲(chǔ)必定在近期訪問的控制塊減少了所進(jìn)行的外部存儲(chǔ)器訪問的次數(shù),并且允許對(duì)連接的高速調(diào)度。
例如,相應(yīng)于網(wǎng)絡(luò)處理器系統(tǒng)100通過其接收數(shù)據(jù)的連接的每個(gè)控制塊包括或者被給定下一時(shí)間字段值。該下一時(shí)間字段的值基于分配給該連接的帶寬。該下一時(shí)間字段的值指示該連接何時(shí)需要服務(wù)。如果下一時(shí)間近似小于預(yù)定的值(例如,小于2*Ds調(diào)度時(shí)機(jī),其中Ds為在高速緩存中的項(xiàng)數(shù)),則在高速緩沖存儲(chǔ)器210中調(diào)度該連接接受服務(wù)。在一個(gè)實(shí)施例中,高速緩沖存儲(chǔ)器包括64個(gè)項(xiàng)。因此,如果多于64個(gè)的連接包括小于預(yù)定值的下一時(shí)間,則在高速緩沖存儲(chǔ)器210中只存儲(chǔ)64個(gè)連接。高速緩沖存儲(chǔ)器210可以存儲(chǔ)其他數(shù)目的項(xiàng)。
入隊(duì)控制邏輯208、重裝控制邏輯226以及高速緩沖存儲(chǔ)器210可以在高速緩沖存儲(chǔ)器210中調(diào)度多個(gè)連接(例如相應(yīng)于連接的控制塊)接受服務(wù)。入隊(duì)控制邏輯208可以從存儲(chǔ)器202中檢索相應(yīng)于網(wǎng)絡(luò)處理器102通過其接收新數(shù)據(jù)的連接的控制塊,并且在高速緩沖存儲(chǔ)器210中調(diào)度該連接。調(diào)度邏輯204(例如通過入隊(duì)控制邏輯208)如何由調(diào)度網(wǎng)絡(luò)處理器102通過其接收新數(shù)據(jù)的連接的細(xì)節(jié)以下將參照?qǐng)D6描述。重裝控制邏輯226可以從存儲(chǔ)器202中檢索相應(yīng)于在重裝日程表228中調(diào)度的連接的控制塊,并且在高速緩沖存儲(chǔ)器210中調(diào)度該連接。高速緩沖存儲(chǔ)器210可以在高速緩沖存儲(chǔ)器210中調(diào)度剛從高速緩沖存儲(chǔ)器210中接受服務(wù)了的連接再次接受服務(wù)。
在步驟406,標(biāo)識(shí)在高速緩沖存儲(chǔ)器210中的多個(gè)連接中的一個(gè)或多個(gè)以在調(diào)度時(shí)機(jī)期間進(jìn)行服務(wù)。步驟406類似于上述的步驟304。更具體地,由出隊(duì)控制邏輯218輸入高速緩沖存儲(chǔ)器210中的鍵值可以是時(shí)間值(例如,當(dāng)前指針(curptr)),其指示由調(diào)度邏輯204正在進(jìn)行服務(wù)的項(xiàng)。該時(shí)間值可以等于當(dāng)前時(shí)間或在其之后。例如,當(dāng)出隊(duì)控制邏輯218輸入當(dāng)前指針到高速緩沖存儲(chǔ)器210時(shí),高速緩沖存儲(chǔ)器210(例如,高速緩沖存儲(chǔ)器210的時(shí)間戳CAM 212)將向出隊(duì)控制邏輯218返回高速緩沖存儲(chǔ)器210中每個(gè)包含等于當(dāng)前指針值的值(例如,在下一時(shí)間字段中)的控制塊項(xiàng)的地址。由高速緩沖存儲(chǔ)器210返回給出隊(duì)控制邏輯218的每一個(gè)值都被認(rèn)為是一次命中。每次命中都表示在高速緩沖存儲(chǔ)器210中被調(diào)度以在下一調(diào)度時(shí)機(jī)期間進(jìn)行服務(wù)的連接。雖然可以標(biāo)識(shí)高速緩沖存儲(chǔ)器210中多個(gè)連接中的一個(gè)或多個(gè)為在下一調(diào)度時(shí)機(jī)期間進(jìn)行服務(wù),但是對(duì)于以下圖4的方法400的描述,假設(shè)標(biāo)識(shí)多個(gè)連接為在下一調(diào)度時(shí)機(jī)期間進(jìn)行服務(wù)。
在步驟408,在調(diào)度時(shí)機(jī)期間,選擇被標(biāo)識(shí)接受服務(wù)的連接之一。更具體地,因?yàn)樗鶚?biāo)識(shí)的所有連接都被調(diào)度為在調(diào)度時(shí)機(jī)期間進(jìn)行服務(wù),所以出隊(duì)控制邏輯218任意從高速緩沖存儲(chǔ)器210中讀入所標(biāo)識(shí)的連接之一(例如,相應(yīng)于該連接的控制塊的一個(gè)或多個(gè)部分)。
在步驟410,在調(diào)度時(shí)機(jī)期間,對(duì)所選擇的連接進(jìn)行服務(wù)。來自所選擇的連接的數(shù)據(jù)從網(wǎng)絡(luò)處理器系統(tǒng)100發(fā)送。更具體地,出隊(duì)控制邏輯218發(fā)送相應(yīng)于所選擇連接的控制塊的一部分(例如頭指針)給發(fā)送接口(例如輸出端口),數(shù)據(jù)從該發(fā)送接口從網(wǎng)絡(luò)處理器系統(tǒng)100發(fā)送。頭指針指向從連接接收的信元或幀隊(duì)列中的第一個(gè)信元或幀。在服務(wù)過程中,第一個(gè)信元或幀(例如,由頭指針指向的信元或幀)從隊(duì)列中移除,并從網(wǎng)絡(luò)處理器發(fā)送。
在步驟412,在調(diào)度時(shí)機(jī)期間,在高速緩沖存儲(chǔ)器210中訪問相應(yīng)于所選擇連接的控制塊的一個(gè)或多個(gè)部分。出隊(duì)更新控制邏輯220從速緩存存儲(chǔ)器210中讀取并更新相應(yīng)于剛接受服務(wù)的連接的控制塊的一個(gè)或多個(gè)部分。更具體地,出隊(duì)更新控制邏輯220修改相應(yīng)于剛接受服務(wù)的連接的控制塊的頭指針,以及可以的尾指針。尾指針指向從所選擇的連接接收的信元或幀隊(duì)列中的最后一個(gè)信元或幀。出隊(duì)更新控制邏輯220可以更新存儲(chǔ)相應(yīng)于所選擇的連接的統(tǒng)計(jì)數(shù)字的控制塊的一個(gè)或多個(gè)部分,諸如在隊(duì)列中剩余的信元或幀的數(shù)目,或者從所選擇的連接接收的信元或幀的數(shù)目。下一時(shí)間戳控制邏輯222可以讀入控制塊的一個(gè)或多個(gè)部分(例如下一時(shí)間字段)。
在步驟414,在調(diào)度時(shí)機(jī)期間,計(jì)算對(duì)所選擇的連接進(jìn)行服務(wù)的下一服務(wù)時(shí)間。下一服務(wù)時(shí)間可以基于服務(wù)質(zhì)量參數(shù)(例如帶寬參數(shù))。更具體地,通過將基于服務(wù)質(zhì)量參數(shù)與從該連接發(fā)送的信元或幀的大小的值加到該連接的上一服務(wù)時(shí)間上,下一時(shí)間戳控制邏輯222計(jì)算對(duì)于剛接受服務(wù)的連接的下一服務(wù)時(shí)間。在調(diào)度時(shí)機(jī)期間,下一時(shí)間戳控制邏輯222用新算出的下一服務(wù)時(shí)間來更新相應(yīng)于剛接受服務(wù)的連接的控制塊。
在對(duì)所選擇的連接進(jìn)行服務(wù)之后,所選擇的連接可以包括待從該連接發(fā)送的其他信元或幀,或者不包括待從該連接發(fā)送的其他信元或幀(例如,所選擇的連接為空)。假設(shè)剛接受服務(wù)的連接包括待從網(wǎng)絡(luò)處理器發(fā)送的其他數(shù)據(jù)(例如,該連接不為空),則在步驟416,在調(diào)度時(shí)機(jī)期間,根據(jù)下一服務(wù)時(shí)間,確定是否在高速緩沖存儲(chǔ)器210與日程表(例如重裝日程表228)之一中調(diào)度所選擇的連接接受服務(wù)。步驟416類似于上述的步驟308。更具體地,剛接受服務(wù)的連接的更新后的下一服務(wù)時(shí)間與當(dāng)前指針進(jìn)行比較,如上所述,當(dāng)前指針表示時(shí)間值。如果更新后下一服務(wù)時(shí)間與當(dāng)前指針之間的差異近似小于預(yù)定值(例如,小于2*Ds調(diào)度時(shí)機(jī),其中Ds為在高速緩存中可以存儲(chǔ)的項(xiàng)數(shù)),則高速緩沖存儲(chǔ)器210(例如通過下一時(shí)間戳控制邏輯222與出隊(duì)更新控制邏輯220)在高速緩沖存儲(chǔ)器210中調(diào)度所選擇的連接再次接受服務(wù)。在另一方面,如果更新后下一服務(wù)時(shí)間與當(dāng)前指針之間的差異近似大于或等于預(yù)定值,則高速緩沖存儲(chǔ)器210(例如通過下一時(shí)間戳控制邏輯222與出隊(duì)更新控制邏輯220)將相應(yīng)于剛接受服務(wù)的連接的控制塊輸入到清出控制邏輯224??梢允褂酶蟮幕蚋〉念A(yù)定值。清出控制邏輯224將控制塊寫入存儲(chǔ)器202,并通知重裝控制邏輯226,以根據(jù)該連接的下一服務(wù)時(shí)間在重裝日程表228中調(diào)度該連接接受服務(wù)。如上所述,在重裝日程表228中被調(diào)度的存儲(chǔ)器地址與在重裝日程表228中當(dāng)前正在被檢查的存儲(chǔ)器地址之間的距離越長,則該連接必須等待服務(wù)的時(shí)間越長。
在步驟418,圖4的方法400結(jié)束。類似于圖3的步驟310,在進(jìn)行了方法400之后,在每個(gè)隨后的調(diào)度時(shí)機(jī)期間,可以對(duì)高速緩沖存儲(chǔ)器210中標(biāo)識(shí)為接受服務(wù)的連接中的剩余的一個(gè)進(jìn)行(如圖3所述),直至對(duì)所有被標(biāo)識(shí)連接進(jìn)行了服務(wù)。更具體地,在每個(gè)隨后的調(diào)度時(shí)機(jī)期間,可以對(duì)高速緩沖存儲(chǔ)器210中標(biāo)識(shí)為接受服務(wù)的連接中的剩余的一個(gè)進(jìn)行步驟410至416,直至對(duì)所有被標(biāo)識(shí)連接進(jìn)行了服務(wù)。
現(xiàn)在參照?qǐng)D1、2、4并參照?qǐng)D5描述網(wǎng)絡(luò)處理器系統(tǒng)100的操作,圖5顯示包括圖4所示方法的步驟406至416的、對(duì)被調(diào)度要進(jìn)行服務(wù)的連接進(jìn)行服務(wù)的方法。
對(duì)被調(diào)度要進(jìn)行服務(wù)的連接進(jìn)行服務(wù)參照?qǐng)D5,在步驟502開始方法500。在步驟504與506,出隊(duì)控制邏輯218向高速緩沖存儲(chǔ)器210(例如高速緩沖存儲(chǔ)器210的時(shí)間戳CAM 212)輸入作為鍵值的當(dāng)前指針,并且高速緩沖存儲(chǔ)器210分別通知所有命中的出隊(duì)控制邏輯218,如圖4的步驟406所述。如果在步驟506高速緩沖存儲(chǔ)器210向出隊(duì)控制邏輯218返回命中,則進(jìn)行步驟512。在步驟512,出隊(duì)控制邏輯218從高速緩沖存儲(chǔ)器210中讀入命中之一(例如相應(yīng)于被調(diào)度待服務(wù)連接的控制塊),如圖4的步驟408所述。在步驟514,向發(fā)送接口(例如輸出端口)發(fā)送指向從相應(yīng)于該命中的連接接收的幀或信元的隊(duì)列中的第一個(gè)幀或信元的指針(例如頭指針),如圖4的步驟410所述。因此,在步驟514,對(duì)該連接進(jìn)行服務(wù)。在步驟516,更新相應(yīng)于該連接的控制塊的一個(gè)或多個(gè)部分(例如指針),如圖4的步驟412所述。在步驟518,對(duì)于在步驟514進(jìn)行了服務(wù)的連接計(jì)算接入時(shí)間(例如下一服務(wù)時(shí)間),如圖4的步驟414所述。
在步驟520,確定剛接受服務(wù)的連接現(xiàn)在是否為空(例如,該連接不包含待發(fā)送的任何數(shù)據(jù))。例如,出隊(duì)更新控制邏輯220可以訪問相應(yīng)于該連接的控制塊的一個(gè)或多個(gè)部分(例如計(jì)數(shù)字段),以確定該連接是否為空。如果在步驟520確定該連接為空,則進(jìn)行步驟530。在步驟530,從高速緩沖存儲(chǔ)器210中清出該連接(例如,相應(yīng)于該連接的控制塊)。更具體地,高速緩沖存儲(chǔ)器210(例如通過下一時(shí)間戳控制邏輯222與出隊(duì)更新控制邏輯220)輸出該連接給清出控制邏輯224。清出控制邏輯224將相應(yīng)于該連接的控制塊寫入存儲(chǔ)器202。因?yàn)樵撨B接不包含待發(fā)送的任何數(shù)據(jù),所以不需要在高速緩沖存儲(chǔ)器210或在重裝日程表228中調(diào)度該連接接受服務(wù)。此后,進(jìn)行步驟532。在步驟532,圖5的方法500結(jié)束。
或者,如果在步驟520確定剛接受服務(wù)的連接不為空(例如剛接受服務(wù)的連接包含待發(fā)送的數(shù)據(jù)),則進(jìn)行步驟522。步驟522,接入時(shí)間(例如下一服務(wù)時(shí)間)與當(dāng)前指針比較,當(dāng)前指針表示時(shí)間值,如圖4的步驟416所述。如果接入時(shí)間與當(dāng)前指針之間的距離小于預(yù)定值,則進(jìn)行步驟524。在步驟524,剛接受服務(wù)的連接接入(例如,被調(diào)度為接受服務(wù))高速緩沖存儲(chǔ)器210(例如,到時(shí)間戳CAM 212,和/或流控制塊RAM 216),如圖4的步驟416所述。此后,進(jìn)行步驟532。
或者,如果接入時(shí)間與當(dāng)前指針之間的距離大于或等于預(yù)定值,則進(jìn)行步驟526與528。在步驟526與528,該連接依次從高速緩沖存儲(chǔ)器210中清出,并且接入重裝日程表228,如圖4的步驟416所述。此后,進(jìn)行步驟532,在其中圖5的方法500結(jié)束。
然而,如果在步驟506高速緩沖存儲(chǔ)器210未向出隊(duì)控制邏輯218返回命中(例如在調(diào)度時(shí)機(jī)期間沒有標(biāo)識(shí)連接為接受服務(wù)),則進(jìn)行步驟508。在步驟508,確定當(dāng)前指針是否等于當(dāng)前時(shí)間。如上所述,當(dāng)前指針為可以等于當(dāng)前時(shí)間或在其之后的時(shí)間值。如果當(dāng)前指針不等于當(dāng)前時(shí)間,則進(jìn)行步驟510。在步驟510,將當(dāng)前指針遞增一個(gè)調(diào)度時(shí)機(jī)。此后,使用更新后的當(dāng)前指針進(jìn)行步驟504。在另一方面,如果在步驟508確定當(dāng)前指針等于當(dāng)前時(shí)間,則使用當(dāng)前指針進(jìn)行步驟504。因?yàn)椴荒苓f增當(dāng)前指針到當(dāng)前時(shí)間之前,所以不遞增當(dāng)前指針。
雖然當(dāng)前時(shí)間繼續(xù)遞增,但是每次在步驟506發(fā)現(xiàn)命中,并因此對(duì)調(diào)度為接受服務(wù)的連接進(jìn)行服務(wù),故不遞增當(dāng)前指針。因此,如果在給定調(diào)度時(shí)機(jī)期間,對(duì)于所輸入的當(dāng)前指針發(fā)現(xiàn)多個(gè)命中(例如連接),則在每次隨后的調(diào)度時(shí)機(jī)期間,對(duì)剩余的多個(gè)命中之一進(jìn)行服務(wù),直至對(duì)于所輸入的當(dāng)前指針的所有命中都接受服務(wù)。在對(duì)多個(gè)命中進(jìn)行服務(wù)的調(diào)度時(shí)機(jī)期間,因?yàn)闆]有遞增當(dāng)前指針,所以當(dāng)前指針落在當(dāng)前時(shí)間之后。在沒有發(fā)現(xiàn)命中的下一個(gè)調(diào)度時(shí)機(jī)期間,執(zhí)行步驟508和510,并且遞增當(dāng)前指針。
現(xiàn)在參照?qǐng)D1、2、4并參照?qǐng)D6描述網(wǎng)絡(luò)處理器系統(tǒng)100的操作,圖6顯示的包括圖4所示方法的步驟404的、通過入隊(duì)控制邏輯208調(diào)度連接進(jìn)行服務(wù)的方法。
通過入隊(duì)控制邏輯調(diào)度連接進(jìn)行服務(wù)參照?qǐng)D6,在步驟602,開始方法600。在步驟604,在調(diào)度時(shí)機(jī)期間,調(diào)度邏輯204可以在入隊(duì)控制邏輯208中接收包括流標(biāo)識(shí)、幀或信元標(biāo)識(shí)以及幀或信元大小的數(shù)據(jù)(例如新的入隊(duì)請(qǐng)求)。流標(biāo)識(shí)標(biāo)識(shí)網(wǎng)絡(luò)處理器系統(tǒng)100通過其接收數(shù)據(jù)的連接。幀或信元標(biāo)識(shí)以及幀或信元大小相應(yīng)于在網(wǎng)絡(luò)處理器系統(tǒng)100中從連接接收的數(shù)據(jù)。
在步驟606,流標(biāo)識(shí)送往高速緩沖存儲(chǔ)器210。更具體地,入隊(duì)控制邏輯208將流標(biāo)識(shí)作為鍵值輸入高速緩沖存儲(chǔ)器210(例如,高速緩沖存儲(chǔ)器210的流標(biāo)識(shí)CAM 214),以確定相應(yīng)于由該流標(biāo)識(shí)所標(biāo)識(shí)的連接的控制塊是否存儲(chǔ)在高速緩沖存儲(chǔ)器210中。入隊(duì)控制邏輯208可以訪問相應(yīng)于該連接的控制塊,以更新控制塊的部分,從而反映新接收的幀或信元。
在步驟608,確定是否在高速緩沖存儲(chǔ)器210發(fā)現(xiàn)命中。例如,當(dāng)入隊(duì)控制邏輯208向高速緩沖存儲(chǔ)器210輸入鍵值(例如流標(biāo)識(shí))時(shí),高速緩沖存儲(chǔ)器210(例如,流標(biāo)識(shí)CAM)通知入隊(duì)控制邏輯208包含匹配該鍵值的部分的控制塊項(xiàng)(例如,任何命中)。命中指示在高速緩沖存儲(chǔ)器210中包括了相應(yīng)于由該流標(biāo)識(shí)所標(biāo)識(shí)的連接的控制塊。如果在步驟608中發(fā)現(xiàn)命中,則進(jìn)行步驟612。
或者,如果在步驟608中未發(fā)現(xiàn)命中,則進(jìn)行步驟610。在步驟610中,從存儲(chǔ)器202中讀取相應(yīng)于由該流標(biāo)識(shí)所標(biāo)識(shí)的連接的控制塊。因?yàn)橄鄳?yīng)于該連接的控制塊沒有存儲(chǔ)在高速緩沖存儲(chǔ)器210中,所以其存儲(chǔ)在存儲(chǔ)器202中,這表示或者在重裝日程表228中調(diào)度該連接接受服務(wù),或者沒有調(diào)度該連接接受服務(wù)。如果連接不包含待發(fā)送的數(shù)據(jù),則該連接沒有調(diào)度進(jìn)行服務(wù)。更具體地,例如,入隊(duì)控制邏輯208通過存儲(chǔ)器接口206從存儲(chǔ)器202檢索(例如讀取)相應(yīng)于由流標(biāo)識(shí)所標(biāo)識(shí)的連接的控制塊(例如流控制塊(FCB))。當(dāng)從存儲(chǔ)器202讀取控制塊時(shí),在入隊(duì)控制邏輯208能夠檢索控制塊之前,入隊(duì)控制邏輯208可以等待來自該存儲(chǔ)器的數(shù)據(jù)有效信號(hào)。然后,入隊(duì)控制邏輯208將該控制塊寫入高速緩沖存儲(chǔ)器210。此后,進(jìn)行步驟612。
在步驟612,更新控制塊的一個(gè)或多個(gè)部分(例如指針)。更具體地,入隊(duì)控制邏輯208可以更新控制塊中的尾指針(以及可以的頭指針),以反映在網(wǎng)絡(luò)處理器系統(tǒng)100中從該連接接收的新的幀或信元。入隊(duì)控制邏輯208可以更新存儲(chǔ)相應(yīng)于該連接的統(tǒng)計(jì)數(shù)字的控制塊的一個(gè)或多個(gè)部分,諸如從該連接接收的信元或幀的隊(duì)列中的信元或幀的數(shù)目(例如計(jì)數(shù)字段)。
在步驟614,對(duì)于由流標(biāo)識(shí)所標(biāo)識(shí)的連接,計(jì)算接入時(shí)間(例如下一服務(wù)時(shí)間)。更具體地,入隊(duì)控制邏輯208可以計(jì)算該包含(例如分配給)在相應(yīng)于通過其接收信元或幀的連接的控制塊中的接入時(shí)間。如上所述,下一服務(wù)時(shí)間表示調(diào)度連接何時(shí)接受服務(wù),并且基于服務(wù)質(zhì)量參數(shù)(例如帶寬參數(shù))。入隊(duì)控制邏輯208可以用下一服務(wù)時(shí)間來更新相應(yīng)于網(wǎng)絡(luò)處理器102通過其接收數(shù)據(jù)的連接的控制塊。如果網(wǎng)絡(luò)處理器從新的連接接收數(shù)據(jù),則入隊(duì)控制邏輯208為該連接計(jì)算并分配下一服務(wù)時(shí)間值,該值快于如果先前從該連接接收的數(shù)據(jù)被調(diào)度來服務(wù),應(yīng)計(jì)算并分配給同一連接的下一時(shí)間值。
在步驟616,根據(jù)下一服務(wù)時(shí)間,確定是否在高速緩沖存儲(chǔ)器210與重裝日程表228之一中調(diào)度網(wǎng)絡(luò)處理器102通過其接收數(shù)據(jù)的連接。入隊(duì)控制邏輯208進(jìn)行類似于由下一時(shí)間戳控制邏輯222在步驟398與428中所進(jìn)行的步驟,以在高速緩沖存儲(chǔ)器210或重裝日程表228中調(diào)度該待服務(wù)的連接。因?yàn)槿腙?duì)控制邏輯208先前將該連接寫入高速緩沖存儲(chǔ)器210(例如在步驟610),所以在步驟616,入隊(duì)控制邏輯208確定是在高速緩沖存儲(chǔ)器210保留該連接,還是將其移動(dòng)到重裝日程表228中。更具體地,將接入時(shí)間(例如下一服務(wù)時(shí)間)與指示時(shí)間值的當(dāng)前指針進(jìn)行比較。類似于步驟522,如果接入時(shí)間與當(dāng)前指針之間的差異小于預(yù)定值,則進(jìn)行步驟618。類似于步驟524,在步驟618中,網(wǎng)絡(luò)處理器102通過其接收數(shù)據(jù)的連接保留接入(例如調(diào)度進(jìn)行服務(wù))到高速緩沖存儲(chǔ)器210。此后,進(jìn)行步驟622,其中結(jié)束圖6的方法600。
在另一方面,如果接入時(shí)間與當(dāng)前指針之間的差異大于或等于預(yù)定值,則進(jìn)行步驟620。類似于步驟528,在步驟620中,網(wǎng)絡(luò)處理器102通過其接收數(shù)據(jù)的連接接入到重裝日程表228中。更具體地,入隊(duì)控制邏輯208將該連接從高速緩沖存儲(chǔ)器210移動(dòng)到重裝日程表228中。此后,進(jìn)行步驟622,其中結(jié)束圖6的方法600。
如上圖5中所述,在調(diào)度時(shí)機(jī)期間,入隊(duì)控制邏輯208可以選擇并對(duì)來自高速緩沖存儲(chǔ)器210的連接進(jìn)行服務(wù)。也可以在同一調(diào)度時(shí)機(jī)期間,在高速緩沖存儲(chǔ)器210中調(diào)度連接接受服務(wù)。如上圖6是所述,入隊(duì)控制邏輯208可以在高速緩沖存儲(chǔ)器210中調(diào)度連接接受服務(wù)。重裝控制邏輯226也可以在高速緩沖存儲(chǔ)器210中調(diào)度連接接受服務(wù)。更具體地,重裝控制邏輯226可以在重裝日程表228中發(fā)現(xiàn)相應(yīng)于連接的一個(gè)或多個(gè)控制塊,這些控制塊被調(diào)度在近期接受服務(wù)(例如,在一個(gè)或兩個(gè)調(diào)度時(shí)機(jī)之內(nèi)),重裝控制邏輯226可以從存儲(chǔ)器202中讀取相應(yīng)于連接的控制塊,并且在高速緩沖存儲(chǔ)器210中存儲(chǔ)(例如調(diào)度進(jìn)行服務(wù))這些相應(yīng)于連接的控制塊。通過這種方式,當(dāng)必要時(shí),可以從存儲(chǔ)器202中檢索相應(yīng)于被調(diào)度近期服務(wù)(例如在重裝日程表228中)的連接的控制塊,并且在調(diào)度這些控制塊接受服務(wù)的調(diào)度時(shí)機(jī)之前,在高速緩沖存儲(chǔ)器210中調(diào)度這些控制塊。因此,在該連接服務(wù)接受服務(wù)的調(diào)度時(shí)機(jī)期間,調(diào)度邏輯204可以本地訪問相應(yīng)于該連接的控制塊。
在高速緩沖存儲(chǔ)器210中當(dāng)前被調(diào)度進(jìn)行服務(wù)的連接(例如,相應(yīng)于連接的控制塊)可以在其接受服務(wù)之前從高速緩沖存儲(chǔ)器210中移除,以為其他必須在高速緩沖存儲(chǔ)器210中當(dāng)前被調(diào)度進(jìn)行服務(wù)的一個(gè)或多個(gè)連接之前進(jìn)行服務(wù)的連接騰出空間。高速緩沖存儲(chǔ)器210可以使用移除策略,諸如最近最少使用策略,以移除連接。如上所述,根據(jù)包含在相應(yīng)于連接的控制塊中的下一服務(wù)時(shí)間值來調(diào)度該連接進(jìn)行服務(wù)。高速緩沖存儲(chǔ)器210可以借助清出控制邏輯224將被移除項(xiàng)(例如,連接)提供給重裝控制邏輯226。根據(jù)連接的下一服務(wù)時(shí)間,重裝控制邏輯226可以在重裝日程表228中調(diào)度被移除連接。
通過使用圖3與4的方法,調(diào)度連接進(jìn)行服務(wù),同時(shí)限制為檢索相應(yīng)于連接的控制結(jié)構(gòu)而訪問存儲(chǔ)器(例如外部存儲(chǔ)器)的次數(shù)。
以上描述只公開了本發(fā)明的示例性實(shí)施例。對(duì)于本領(lǐng)域技術(shù)人員來說,顯然可在不脫離本發(fā)明范圍的前提下進(jìn)行對(duì)本發(fā)明上述實(shí)施例的修改。例如,雖然本發(fā)明實(shí)施例公開了在高速緩沖存儲(chǔ)器210的不同的部分(例如時(shí)間戳CAM 212、流標(biāo)識(shí)CAM 214以及流控制塊RAM 216)中存儲(chǔ)相應(yīng)于連接的控制塊的一個(gè)或多個(gè)部分,但是在其他實(shí)施例中,整個(gè)控制塊可以作為一項(xiàng)存儲(chǔ)在高速緩沖存儲(chǔ)器210的一個(gè)部分中。另外,雖然在一個(gè)或多個(gè)實(shí)施例中,重裝控制邏輯226、入隊(duì)控制邏輯208以及清出控制邏輯224直接耦合至存儲(chǔ)器接口206,但在其他實(shí)施例中,重裝控制邏輯226、入隊(duì)控制邏輯208以及清出控制邏輯224可以通過的控制邏輯耦合至存儲(chǔ)器接口206,所述控制邏輯跟蹤對(duì)存儲(chǔ)器接口的大量操作,并保證對(duì)存儲(chǔ)器帶寬的高效利用??梢允褂枚嘤诨蛏儆谒鰯?shù)目的高速緩存器項(xiàng)。另外,除了在調(diào)度時(shí)機(jī)期間對(duì)一個(gè)連接進(jìn)行服務(wù)之外,在其他實(shí)施例中,還可以在調(diào)度時(shí)機(jī)期間對(duì)多個(gè)連接進(jìn)行服務(wù)。
因此,雖然針對(duì)其示例性實(shí)施例描述了本發(fā)明,但是應(yīng)該理解其他實(shí)施例也落入由權(quán)利要求所限定的本發(fā)明的精神與范圍之內(nèi)。
權(quán)利要求
1.一種為網(wǎng)絡(luò)處理器調(diào)度連接的方法,包括以下步驟在高速緩沖存儲(chǔ)器中,根據(jù)存儲(chǔ)在相應(yīng)于每個(gè)連接的控制結(jié)構(gòu)中的服務(wù)質(zhì)量參數(shù),調(diào)度多個(gè)待服務(wù)連接;以及在調(diào)度時(shí)機(jī)期間在所述高速緩沖存儲(chǔ)器中,標(biāo)識(shí)所述多個(gè)待服務(wù)連接中的一個(gè)或多個(gè);選擇所標(biāo)識(shí)的待服務(wù)連接中的一個(gè);對(duì)所選擇的連接進(jìn)行服務(wù);訪問在所述高速緩沖存儲(chǔ)器中的、包括所述服務(wù)質(zhì)量參數(shù)的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分,所述服務(wù)質(zhì)量參數(shù)相應(yīng)于所選擇的連接;計(jì)算對(duì)所選擇的連接進(jìn)行服務(wù)的下一服務(wù)時(shí)間,所述下一服務(wù)時(shí)間基于所述服務(wù)質(zhì)量參數(shù);以及根據(jù)所述下一服務(wù)時(shí)間,確定是否在所述高速緩沖存儲(chǔ)器與日程表之一中調(diào)度所選擇的待服務(wù)連接。
2.根據(jù)權(quán)利要求1的方法,還包括以下步驟在每個(gè)隨后的調(diào)度時(shí)機(jī)期間,對(duì)在所述高速緩沖存儲(chǔ)器中所標(biāo)識(shí)的待服務(wù)的一個(gè)或多個(gè)連接中的剩余的一個(gè)進(jìn)行服務(wù),直至對(duì)所有所標(biāo)識(shí)的待服務(wù)的一個(gè)或多個(gè)連接進(jìn)行了服務(wù)。
3.根據(jù)權(quán)利要求1的方法,其中所述根據(jù)存儲(chǔ)在相應(yīng)于每個(gè)連接的控制結(jié)構(gòu)中的服務(wù)質(zhì)量參數(shù),調(diào)度多個(gè)待服務(wù)連接的步驟包括從第一連接接收數(shù)據(jù);確定相應(yīng)于第一連接的控制結(jié)構(gòu)的項(xiàng)是否包含在所述高速緩沖存儲(chǔ)器與外部存儲(chǔ)器之一中;訪問所述控制結(jié)構(gòu)的一個(gè)或多個(gè)部分;計(jì)算對(duì)第一連接進(jìn)行服務(wù)的服務(wù)時(shí)間,所述服務(wù)時(shí)間基于所述服務(wù)質(zhì)量參數(shù);確定是否在所述高速緩沖存儲(chǔ)器與日程表之一中調(diào)度待服務(wù)的第一連接;以及如果確定在所述高速緩沖存儲(chǔ)器中調(diào)度第一連接,則根據(jù)存儲(chǔ)在相應(yīng)于第一連接的控制結(jié)構(gòu)中的服務(wù)質(zhì)量參數(shù),在所述高速緩沖存儲(chǔ)器中調(diào)度待服務(wù)的第一連接。
4.根據(jù)權(quán)利要求1的方法,其中根據(jù)存儲(chǔ)在相應(yīng)于每個(gè)連接的控制結(jié)構(gòu)中的服務(wù)質(zhì)量參數(shù),調(diào)度多個(gè)待服務(wù)連接的步驟包括在高速緩沖存儲(chǔ)器項(xiàng)中,存儲(chǔ)相應(yīng)于所述多個(gè)連接的每一個(gè)連接的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分。
5.根據(jù)權(quán)利要求1的方法,其中在所述高速緩沖存儲(chǔ)器中,標(biāo)識(shí)所述多個(gè)待服務(wù)連接中的一個(gè)或多個(gè)的步驟包括使用鍵值,以在所述高速緩沖存儲(chǔ)器中標(biāo)識(shí)所述多個(gè)連接中的一個(gè)或多個(gè)包含了匹配所述鍵值的服務(wù)時(shí)間的連接,所述服務(wù)時(shí)間基于所述服務(wù)質(zhì)量參數(shù)。
6.根據(jù)權(quán)利要求5的方法,還包括以下步驟當(dāng)所述下一服務(wù)時(shí)間與所述鍵值之間的差異近似小于預(yù)定數(shù)目的調(diào)度時(shí)機(jī)時(shí),在所述高速緩沖存儲(chǔ)器中調(diào)度所選擇的待服務(wù)連接。
7.根據(jù)權(quán)利要求5的方法,還包括以下步驟當(dāng)所述下一服務(wù)時(shí)間與所述鍵值之間的差異近似大于或等于預(yù)定數(shù)目的調(diào)度時(shí)機(jī)時(shí),在所述日程表中調(diào)度所選擇的待服務(wù)連接。
8.根據(jù)權(quán)利要求1的方法,其中所述訪問在所述高速緩沖存儲(chǔ)器中的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分的步驟包括至少以下之一從片上存儲(chǔ)器(on chipmemory)中讀取,以及向片上存儲(chǔ)器寫入。
9.根據(jù)權(quán)利要求1的方法,其中所述計(jì)算對(duì)所選擇的連接進(jìn)行服務(wù)的下一服務(wù)時(shí)間的步驟包括計(jì)算在對(duì)所選擇的連接進(jìn)行服務(wù)之前,要等待多少個(gè)調(diào)度時(shí)機(jī)。
10.一種為網(wǎng)絡(luò)處理器調(diào)度連接的裝置,包括外部存儲(chǔ)器;以及調(diào)度邏輯,具有高速緩沖存儲(chǔ)器以及日程表,耦合至所述外部存儲(chǔ)器,并且用來在所述高速緩沖存儲(chǔ)器中,根據(jù)存儲(chǔ)在相應(yīng)于每個(gè)連接的控制結(jié)構(gòu)中的服務(wù)質(zhì)量參數(shù),調(diào)度多個(gè)待服務(wù)連接;以及在調(diào)度時(shí)機(jī)期間在所述高速緩沖存儲(chǔ)器中,標(biāo)識(shí)所述多個(gè)待服務(wù)連接中的一個(gè)或多個(gè);選擇所標(biāo)識(shí)的待服務(wù)連接中的一個(gè);對(duì)所選擇的連接進(jìn)行服務(wù);訪問在所述高速緩沖存儲(chǔ)器中的、包括所述服務(wù)質(zhì)量參數(shù)的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分,所述服務(wù)質(zhì)量參數(shù)相應(yīng)于所選擇的連接;計(jì)算對(duì)所選擇的連接進(jìn)行服務(wù)的下一服務(wù)時(shí)間,所述下一服務(wù)時(shí)間基于所述服務(wù)質(zhì)量參數(shù);以及根據(jù)所述下一服務(wù)時(shí)間,確定是否在所述高速緩沖存儲(chǔ)器與日程表之一中調(diào)度所選擇的待服務(wù)連接。
11.根據(jù)權(quán)利要求10的裝置,其中所述調(diào)度邏輯還用來在每個(gè)隨后的調(diào)度時(shí)機(jī)期間,對(duì)在所述高速緩沖存儲(chǔ)器中所標(biāo)識(shí)的待服務(wù)的一個(gè)或多個(gè)連接中的剩余的一個(gè)進(jìn)行服務(wù),直至對(duì)所有所標(biāo)識(shí)的待服務(wù)的一個(gè)或多個(gè)連接進(jìn)行了服務(wù)。
12.根據(jù)權(quán)利要求10的裝置,其中所述調(diào)度邏輯還用來從第一連接接收數(shù)據(jù);確定相應(yīng)于第一連接的控制結(jié)構(gòu)的項(xiàng)是否包含在所述高速緩沖存儲(chǔ)器與外部存儲(chǔ)器之一中;訪問所述控制結(jié)構(gòu)的一個(gè)或多個(gè)部分;計(jì)算對(duì)第一連接進(jìn)行服務(wù)的服務(wù)時(shí)間,所述服務(wù)時(shí)間基于所述服務(wù)質(zhì)量參數(shù);確定是否在所述高速緩沖存儲(chǔ)器與日程表之一中調(diào)度待服務(wù)的第一連接;以及如果確定在所述高速緩沖存儲(chǔ)器中調(diào)度第一連接,則根據(jù)存儲(chǔ)在相應(yīng)于第一連接的控制結(jié)構(gòu)中的服務(wù)質(zhì)量參數(shù),在所述高速緩沖存儲(chǔ)器中調(diào)度待服務(wù)的第一連接。
13.根據(jù)權(quán)利要求10的裝置,其所述調(diào)度邏輯還用來在高速緩沖存儲(chǔ)器項(xiàng)中,存儲(chǔ)相應(yīng)于所述多個(gè)連接的每一個(gè)連接的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分。
14.根據(jù)權(quán)利要求10的裝置,其中所述調(diào)度邏輯還用來使用鍵值,以在所述高速緩沖存儲(chǔ)器中標(biāo)識(shí)所述多個(gè)連接中的一個(gè)或多個(gè)包含了匹配所述鍵值的服務(wù)時(shí)間的連接,所述服務(wù)時(shí)間基于所述服務(wù)質(zhì)量參數(shù)。
15.根據(jù)權(quán)利要求14的裝置,其中所述調(diào)度邏輯還用來當(dāng)所述下一服務(wù)時(shí)間與鍵值時(shí)間之間的差異近似小于預(yù)定數(shù)目的調(diào)度時(shí)機(jī)時(shí),在所述高速緩沖存儲(chǔ)器中調(diào)度所選擇的待服務(wù)連接。
16.根據(jù)權(quán)利要求14的裝置,其中所述調(diào)度邏輯還用來當(dāng)所述下一服務(wù)時(shí)間與所述鍵值之間的差異近似大于或等于預(yù)定數(shù)目的調(diào)度時(shí)機(jī)時(shí),在所述日程表中調(diào)度所選擇的待服務(wù)連接。
17.根據(jù)權(quán)利要求10的裝置,其中所述調(diào)度邏輯還用來進(jìn)行至少以下之一從片上存儲(chǔ)器中讀取,以及向片上存儲(chǔ)器寫入。
18.根據(jù)權(quán)利要求10的裝置,其中所述調(diào)度邏輯還用來計(jì)算在對(duì)所選擇的連接進(jìn)行服務(wù)之前,要等待多少個(gè)調(diào)度時(shí)機(jī)。
19.根據(jù)權(quán)利要求10的裝置,其中所述調(diào)度邏輯包括重裝控制邏輯,耦合至所述高速緩沖存儲(chǔ)器、重裝日程表、外部存儲(chǔ)器以及清出控制邏輯,用來在所述重裝日程表中,調(diào)度相應(yīng)于待服務(wù)連接的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分;從所述重裝日程表中,檢索所述相應(yīng)于待服務(wù)連接的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分;以及在所述高速緩沖存儲(chǔ)器中,調(diào)度相應(yīng)于待服務(wù)連接的所檢索的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分;入隊(duì)控制邏輯,耦合至所述高速緩沖存儲(chǔ)器以及外部存儲(chǔ)器,用來在所述高速緩沖存儲(chǔ)器中,調(diào)度相應(yīng)于待服務(wù)連接的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分;出隊(duì)控制邏輯,耦合至所述高速緩沖存儲(chǔ)器,用來在所述高速緩沖存儲(chǔ)器中,標(biāo)識(shí)待服務(wù)的多個(gè)連接中的一個(gè)或多個(gè);選擇所標(biāo)識(shí)的待服務(wù)連接中的一個(gè);以及對(duì)所選擇的連接進(jìn)行服務(wù);以及清出控制邏輯,耦合至所述高速緩沖存儲(chǔ)器以及外部存儲(chǔ)器,用來檢索相應(yīng)于已在所述高速緩沖存儲(chǔ)器中調(diào)度的連接的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分;以及確定是否輸出所述控制結(jié)構(gòu)的一個(gè)或多個(gè)部分到所述外部存儲(chǔ)器與重裝控制邏輯中的一個(gè)。
20.根據(jù)權(quán)利要求19的裝置,其中所述高速緩沖存儲(chǔ)器包括時(shí)間戳內(nèi)容可尋址存儲(chǔ)器;流標(biāo)識(shí)內(nèi)容可尋址存儲(chǔ)器;以及流控制塊存儲(chǔ)器;其中所述時(shí)間戳內(nèi)容可尋址存儲(chǔ)器、流標(biāo)識(shí)內(nèi)容可尋址存儲(chǔ)器以及流控制塊存儲(chǔ)器用來存儲(chǔ)每個(gè)高速緩沖存儲(chǔ)器項(xiàng)的一個(gè)或多個(gè)部分。
21.一種用來調(diào)度連接的方法,包括在調(diào)度時(shí)機(jī)期間根據(jù)相應(yīng)于多個(gè)連接中每一個(gè)的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分,在所述高速緩沖存儲(chǔ)器中,標(biāo)識(shí)被調(diào)度進(jìn)行服務(wù)的多個(gè)連接中的一個(gè)或多個(gè);對(duì)所標(biāo)識(shí)的連接中的一個(gè)進(jìn)行服務(wù);以及根據(jù)相應(yīng)于已接受服務(wù)的連接的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分,在所述高速緩沖存儲(chǔ)器與日程表之一中,調(diào)度待再次服務(wù)的已接受服務(wù)的連接。
22.根據(jù)權(quán)利要求1的方法,還包括以下步驟在隨后的每個(gè)調(diào)度時(shí)機(jī)期間,對(duì)所標(biāo)識(shí)的連接中剩余的一個(gè)進(jìn)行服務(wù),直至對(duì)所有所標(biāo)識(shí)的連接進(jìn)行了服務(wù)。
全文摘要
根據(jù)第一方面,提供了一種為網(wǎng)絡(luò)處理器調(diào)度連接的方法。該方法包括以下步驟在高速緩沖存儲(chǔ)器中,根據(jù)存儲(chǔ)在相應(yīng)于每個(gè)連接的控制結(jié)構(gòu)中的服務(wù)質(zhì)量參數(shù),調(diào)度多個(gè)待服務(wù)連接;以及在調(diào)度時(shí)機(jī)期間(1)在高速緩沖存儲(chǔ)器中,標(biāo)識(shí)多個(gè)連接中的一個(gè)或多個(gè)待服務(wù)連接;(2)選擇所標(biāo)識(shí)的待服務(wù)連接中的一個(gè);(3)對(duì)所選擇的連接進(jìn)行服務(wù);(4)訪問在高速緩沖存儲(chǔ)器中的控制結(jié)構(gòu)的一個(gè)或多個(gè)部分;(5)計(jì)算對(duì)所選擇的連接進(jìn)行服務(wù)的下一服務(wù)時(shí)間;以及(6)根據(jù)下一服務(wù)時(shí)間,確定是否在高速緩沖存儲(chǔ)器與日程表之一中調(diào)度所選擇的待服務(wù)連接。還提供了許多其他方面。
文檔編號(hào)H04L29/08GK1602014SQ20041008244
公開日2005年3月30日 申請(qǐng)日期2004年9月22日 優(yōu)先權(quán)日2003年9月25日
發(fā)明者萊爾·E·格羅斯巴克, 格倫·H·漢德洛格滕, 詹姆斯·F·邁科斯, 戴維·A·諾加德 申請(qǐng)人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
公主岭市| 绥芬河市| 普安县| 自贡市| 灵武市| 大方县| 威宁| 平利县| 辽阳市| 寻乌县| 上栗县| 中西区| 彰化县| 昭觉县| 浠水县| 任丘市| 广元市| 阿城市| 庆安县| 平定县| 黑河市| 方正县| 上虞市| 毕节市| 周口市| 乳山市| 蓬溪县| 确山县| 手机| 郁南县| 静安区| 加查县| 伊宁县| 咸宁市| 特克斯县| 北碚区| 建始县| 清涧县| 甘谷县| 峨眉山市| 法库县|