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

用于分級調(diào)度的方法和系統(tǒng)的制作方法

文檔序號:6411698閱讀:197來源:國知局
專利名稱:用于分級調(diào)度的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明總的涉及網(wǎng)絡(luò)處理器,具體地說,涉及用于分級調(diào)度的方法和裝置。本申請涉及2003年9月30日提交的美國專利申請系列號10/676,153,其名稱為“分級調(diào)度”,在此將其全部引入作為參考。
背景技術(shù)
網(wǎng)絡(luò)處理器可以通過該網(wǎng)絡(luò)處理器的輸入端口耦接到一個或多個網(wǎng)絡(luò)設(shè)備,例如計算機(jī)。該網(wǎng)絡(luò)處理器的每個輸出端口都連接到具有有限系統(tǒng)帶寬的網(wǎng)絡(luò)。該網(wǎng)絡(luò)一次只能發(fā)送一定數(shù)量的數(shù)據(jù)。
為保證對該網(wǎng)絡(luò)的訪問,用戶希望從所有人那里購買對一部分系統(tǒng)帶寬的訪問權(quán)。因此,系統(tǒng)帶寬的所有人可以將該系統(tǒng)帶寬分為多個部分并出售給一個或多個用戶。典型的,購買一部分系統(tǒng)帶寬的人不會在所有時間使用其購買的全部系統(tǒng)帶寬部分。因此,為了增加收入,系統(tǒng)帶寬的所有人一般將出售系統(tǒng)帶寬,而不是在任何時候都可獲得(即超額訂購)。如果用戶希望使用多于其購買的系統(tǒng)帶寬部分,則他可以臨時使用附加帶寬(例如已由另一用戶購買但此時沒有被使用的帶寬)。但是,當(dāng)很多用戶同時試圖使用其購買的全部或大部分帶寬時,帶寬的可利用性無法預(yù)測??赡茉试S一些用戶使用超過其購買的系統(tǒng)帶寬部分,而只允許另一些用戶使用其購買的帶寬的一部分。
因此,需要一種改進(jìn)的、有效提供訪問有限系統(tǒng)帶寬的系統(tǒng)。
圖1是傳統(tǒng)網(wǎng)絡(luò)處理系統(tǒng)100的示例性示意圖。網(wǎng)絡(luò)處理器系統(tǒng)100可以包括網(wǎng)絡(luò)處理器102。網(wǎng)絡(luò)處理器102可以從自主流104-108或管線120、122、124接收數(shù)據(jù)。自主流和管線是同等的(例如同等地競爭系統(tǒng)帶寬)。每個自主流104、106、108、110、112、114、116、118代表從網(wǎng)絡(luò)處理器102到網(wǎng)絡(luò)設(shè)備(未示出)的單個連接。每個管線120、122、124可以包括一個或多個管線流130。管線流130代表從網(wǎng)絡(luò)處理器102到網(wǎng)絡(luò)設(shè)備(未示出)的單個連接,該連接與其它到網(wǎng)絡(luò)設(shè)備的連接一起分組,從而形成管線120、122、124(例如互聯(lián)網(wǎng)服務(wù)供應(yīng)商可以從系統(tǒng)帶寬的所有人那里購買一組管線流,并將管線流出售給用戶)。
在圖1所示的傳統(tǒng)網(wǎng)絡(luò)器處理系統(tǒng)100中,網(wǎng)絡(luò)處理器102從多個自主流104-118和每個都包括多個管線流(例如130)的多個管線120、122、124接收數(shù)據(jù)。所接收的數(shù)據(jù)將從同一輸出端口132發(fā)送。網(wǎng)絡(luò)處理器102的每個輸出端口132(只示出一個輸出端口132)都連接到有限系統(tǒng)帶寬的網(wǎng)絡(luò)連接。因此,可能無法同時服務(wù)來自所有自主流和管線的數(shù)據(jù)(即可能無法同時發(fā)送來自每個自主流或管線的數(shù)據(jù))。在圖1所示的傳統(tǒng)網(wǎng)絡(luò)處理器102中,可以為每個自主流104-118或管線120-124指定諸如高、中或低的優(yōu)先級以及帶寬。指定給自主流或管線的優(yōu)先級確定將以多大的頻率服務(wù)自主流或管線。指定給自主流或管線的帶寬確定在服務(wù)該自主流或管線時可供其利用的系統(tǒng)帶寬部分。
圖1所示的傳統(tǒng)網(wǎng)絡(luò)處理器系統(tǒng)100可以對每個優(yōu)先級類型使用單獨(dú)的日歷,以調(diào)度待服務(wù)的自主流和/或管線(例如高優(yōu)先級日歷、中優(yōu)先級日歷和低優(yōu)先級日歷)。每個這種日歷包括一組存儲器地址,將重復(fù)檢查這些地址以查找識別需要投入服務(wù)的自主流或管線的條目。或者,單個日歷可以包括識別一個或多個優(yōu)先級類型的自主流和/或管線的條目。該日歷的不同存儲器地址組或區(qū)可以用于存儲識別每個優(yōu)先級類型的自主流和/或管線的條目。重復(fù)檢查這些組中的每一個,以識別需要服務(wù)的條目。
在重復(fù)檢查一組存儲器地址時,在第一時間單元期間指向該組中第一存儲器地址的指針可以在每個連續(xù)時間單元期間前進(jìn)以指向該組中的下個存儲器地址。如果在該時間單元期間檢查該日歷的最后一個地址,則在下個時間單元期間可以檢查該日歷的第一地址。因此,為方便起見,這里的日歷示意性地表示為一個方塊,并以單數(shù)指代,盡管可以理解日歷可以包含包括多個優(yōu)先級的單個日歷,也可以包含一組日歷,優(yōu)選每一個都只包括單一的優(yōu)先級。
在日歷中已調(diào)度的條目的存儲器地址和該日歷中當(dāng)前檢查的存儲器地址之間的距離越大,由該調(diào)度日歷條目識別的自主流或管線必須等待服務(wù)所需的時間就越長。由網(wǎng)絡(luò)處理器102接收的數(shù)據(jù)可以用于識別對應(yīng)于該數(shù)據(jù)的自主流或管線。根據(jù)預(yù)先指定的優(yōu)先級和帶寬,網(wǎng)絡(luò)處理器102可以在日歷中為該自主流或管線確定合適的存儲器地址。
當(dāng)網(wǎng)絡(luò)處理器系統(tǒng)100包括多個每一個都具有不同優(yōu)先級類型的日歷時,不會將來自識別在一個時間單元期間需要投入服務(wù)的自主流或管線的低優(yōu)先級日歷的條目選為優(yōu)勝者并投入服務(wù),直到識別在該時間單元期間需要投入服務(wù)的自主流或管線的高和/或中優(yōu)先級日歷中的條目投入服務(wù)為止。同樣,不會將識別在一個時間單元期間需要投入服務(wù)的自主流或管線的中優(yōu)先級日歷中的條目選為優(yōu)勝者并投入服務(wù),直到識別在該時間單元期間需要投入服務(wù)的自主流或管線的高優(yōu)先級日歷中的條目投入服務(wù)為止。
在圖1的傳統(tǒng)網(wǎng)絡(luò)處理器系統(tǒng)中,如果已經(jīng)將一個自主流識別為獲得了服務(wù),則從該自主流接收的數(shù)據(jù)從輸出端口132發(fā)送出去。相反,由于管線包括一個或多個管線流,因此當(dāng)日歷識別需要投入服務(wù)的管線時,必須執(zhí)行額外的查找。網(wǎng)絡(luò)處理器必須為每個管線維護(hù)列表,其中包括包含在該管線中的每個管線流。每個列表都表明從該列表中最后投入服務(wù)的管線流。當(dāng)日歷識別需要投入服務(wù)的管線時,在對應(yīng)于該識別管線的列表中執(zhí)行查找,并為該列表中下一個管線流服務(wù)。
圖2是包含在圖1的傳統(tǒng)網(wǎng)絡(luò)處理器系統(tǒng)100中的調(diào)度器邏輯200的框圖。傳統(tǒng)網(wǎng)絡(luò)處理器系統(tǒng)100可以將調(diào)度器邏輯200用于調(diào)度待服務(wù)的自主流或管線。調(diào)度器邏輯200可以包括主日歷202(其可以包含一個或多個不同優(yōu)先級的日歷)。主日歷202可以耦接到存儲器204(例如通過列隊和新附屬邏輯(enqueue and new attach logic)208以及判優(yōu)單元210)以及每個管線的管線流的列表206(例如通過出列和重附屬邏輯(dequeue and reattachlogic)212)。判優(yōu)單元210對存儲器204的讀取和寫入進(jìn)行判優(yōu)。例如,列隊和新附屬邏輯208可以接收識別管線的數(shù)據(jù)。列隊和新附屬邏輯208可以訪問存儲器204(例如通過判優(yōu)單元210),并確定由接收的數(shù)據(jù)識別的管線具有低優(yōu)先級,并分配一定的帶寬。根據(jù)該信息,列隊和新附屬邏輯208將確定主日歷202的合適地址,其中將寫入識別對應(yīng)于該接收數(shù)據(jù)的該管線的條目,并在該地址中寫入所識別的條目(即,將調(diào)度待服務(wù)的管線)。
在將條目寫入主日歷202中時,該條目可作為單一條目寫入主日歷202的位置。寫入日歷的該條目可以是指向?qū)?yīng)于自主流或管線(在本例中是管線)的控制結(jié)構(gòu)(下面詳細(xì)描述)的指針。但為方便起見,將日歷中的該條目稱為自主流或管線本身,而不是指向控制結(jié)構(gòu)的指針。
如上面討論日歷操作時所述,主日歷202將在其存儲器地址中檢查用于識別需要投入服務(wù)的管線或自主流的條目。當(dāng)主日歷202到達(dá)識別對應(yīng)于在一個時間單元期間接收的數(shù)據(jù)的管線的條目時,主日歷202將選擇待服務(wù)的該管線條目(即將該管線選為優(yōu)勝者),假定在該時間單元期間沒有來自該日歷的具有更高優(yōu)先級的條目需要服務(wù)。
如上所述,由于一個管線包括一個或多個管線流,因此當(dāng)主日歷202識別在該時間單元期間需要服務(wù)的管線時必須執(zhí)行額外的查找。因此,當(dāng)主日歷202識別需要服務(wù)的低優(yōu)先級管線(即選擇優(yōu)勝者)時,假定在同一時間單元期間沒有更高優(yōu)先級的管線需要服務(wù),調(diào)度器邏輯200(例如通過出列和重附屬邏輯212)在列出每個管線的管線流的表206中執(zhí)行查找。調(diào)度器邏輯200因此查找對應(yīng)于該識別管線的管線流列表。該列表表明下個待服務(wù)的管線流。該管線流將投入服務(wù)(即來自該管線流的數(shù)據(jù)將從網(wǎng)絡(luò)處理器系統(tǒng)100的輸出端口132發(fā)送出去)。
傳統(tǒng)網(wǎng)絡(luò)處理器系統(tǒng)100不提供用于區(qū)分包含在管線中的各管線流的裝置。在任何管線流獲得第二次服務(wù)之前,每個管線流都獲得了一次服務(wù)。因此,傳統(tǒng)網(wǎng)絡(luò)處理器系統(tǒng)100為高和低優(yōu)先級流統(tǒng)一提供緩慢的傳輸。但是,由于管線流可以包括改變大小和重要性的數(shù)據(jù),因此網(wǎng)絡(luò)管理員可能希望在第二管線流獲得一次服務(wù)之前為第一管線流服務(wù)多次。該網(wǎng)絡(luò)管理員可能還希望在為該第一管線流服務(wù)時使用大帶寬,在為該第二管線流服務(wù)時使用小帶寬。

發(fā)明內(nèi)容
在本發(fā)明的第一方面,提供用于分級調(diào)度的第一方法。第一方法包括步驟(1)在一時間單元期間從多個主日歷的一個中選擇第一優(yōu)勝條目,該第一優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第一管線;(2)確定在該時間單元期間沒有對應(yīng)于該優(yōu)勝第一管線的管線流當(dāng)前需要服務(wù);(3)在該時間單元期間從多個主日歷中選擇第二優(yōu)勝條目,該第二優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第二管線或自主流;和(4)在該時間單元期間將對應(yīng)于該第二優(yōu)勝條目的自主流或管線流投入服務(wù)。
在本發(fā)明的第二方面,提供一種第一裝置,其包括至少一個存儲器和耦接到至少一個存儲器的調(diào)度器邏輯。該至少一個存儲器適用于存儲對應(yīng)于一個或多個管線和管線流的一個或多個服務(wù)質(zhì)量優(yōu)先級參數(shù),所述調(diào)度器邏輯適用于(1)在一時間單元期間從多個主日歷的一個中選擇第一優(yōu)勝條目,該第一優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第一管線;(2)確定在該時間單元期間沒有對應(yīng)于該優(yōu)勝第一管線的管線流需要投入服務(wù);(3)在該時間單元期間從多個主日歷中選擇第二優(yōu)勝條目,該第二優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第二管線或自主流;和(4)在該時間單元期間將對應(yīng)于該第二優(yōu)勝條目的自主流或管線流投入服務(wù)。根據(jù)本發(fā)明的這些和其它方面提供很多其它方面。
本發(fā)明的其它特征和方面將由下面的詳細(xì)描述、所附權(quán)利要求和附圖變得更加清楚明顯。


圖1是傳統(tǒng)網(wǎng)絡(luò)處理器系統(tǒng)的示例性示意圖。
圖2是包含在圖1的傳統(tǒng)網(wǎng)絡(luò)處理器系統(tǒng)中的調(diào)度器邏輯的框圖。
圖3是示例性調(diào)度器邏輯的框圖,其中可以實施用于在一時間單元期間,在具有分級調(diào)度的網(wǎng)絡(luò)處理器中選擇多個待服務(wù)條目的本發(fā)明。
圖4說明用于分級調(diào)度從流接收的數(shù)據(jù)的示例方法。
圖5說明根據(jù)共同未決申請10/676,153的用于從主日歷中選擇空的優(yōu)勝管線的方法和裝置的處理。
圖6是在高優(yōu)先級日歷、中優(yōu)先級日歷和低優(yōu)先級日歷中的多個存儲器地址的框圖。
圖7說明根據(jù)本發(fā)明實施例用于在一時間單元期間選擇多個待服務(wù)條目的方法。
圖8說明在執(zhí)行本發(fā)明方法的高優(yōu)先級日歷、中優(yōu)先級日歷和低優(yōu)先級日歷中的多個存儲器地址的框圖。
圖9說明在執(zhí)行本發(fā)明方法的高優(yōu)先級日歷、中優(yōu)先級日歷和低優(yōu)先級日歷中的多個存儲器地址的框圖。
具體實施例方式
一種用于區(qū)分包含在一個管線中的多個管線流、并因此提供數(shù)據(jù)的分級調(diào)度(即區(qū)分包含在一個管線中的多個管線流,以及區(qū)分在網(wǎng)絡(luò)處理系統(tǒng)中的多個管線和/或自主流)的方法已在同一日遞交的、共同受讓的未決申請10/676,153(律師案卷號ROC920030061)中提出。根據(jù)未決申請序號10/676,153(律師案卷號ROC920030061)中的方法和裝置,將主要或初級日歷用于調(diào)度待服務(wù)的自主流和/或管線,將次級日歷用于調(diào)度待服務(wù)的管線流。可以為網(wǎng)絡(luò)處理器系統(tǒng)100可從中接收數(shù)據(jù)的每個自主流、管線和/或管線流分配優(yōu)先級和帶寬。對應(yīng)于該自主流、管線和/或管線流的優(yōu)先級和帶寬確定日歷中的位置,在該位置中插入用于該自主流、管線和/或管線流的條目,并因此確定何時調(diào)度待服務(wù)的自主流、管線和/或管線流。
根據(jù)共同未決申請序號10/676,153(律師案卷號ROC920030061)的方法和裝置,在給定的時間單元期間選擇待服務(wù)的管線,如果在該時間單元期間包含在該選擇管線中的管線流不需要服務(wù),則在該時間單元期間沒有管線流獲得如本發(fā)明圖5-6所示的服務(wù)。因此,在該時間單元期間不發(fā)送數(shù)據(jù)。
本發(fā)明介紹一種方法和裝置,用于在具有分級調(diào)度的網(wǎng)絡(luò)處理器中、在一時間單元期間從鏈接的或解鏈的條目中選擇待服務(wù)的多個條目,并將參照圖3-4和7-9描述。具體的,如果在一時間單元期間選擇為待服務(wù)的第一條目為空,則可以將第二條目選擇為待服務(wù),并在該時間單元期間服務(wù)。
圖3是示例性調(diào)度器邏輯300的框圖,其中可以實施用于在一時間單元期間、在具有分級調(diào)度的網(wǎng)絡(luò)處理器中選擇多個待服務(wù)條目的本發(fā)明的方法和設(shè)備。示例性調(diào)度器邏輯300可以包含在網(wǎng)絡(luò)處理器系統(tǒng)(例如類似于圖1所示的傳統(tǒng)網(wǎng)絡(luò)處理器系統(tǒng)的網(wǎng)絡(luò)處理器系統(tǒng))中。和傳統(tǒng)網(wǎng)絡(luò)處理器系統(tǒng)100類似,包含本發(fā)明調(diào)度器邏輯300的網(wǎng)絡(luò)處理器系統(tǒng)(未示出)可以從自主流和/或管線接收數(shù)據(jù)。自主流和管線是同等的。每個管線可以包含一個或多個管線流。與傳統(tǒng)網(wǎng)絡(luò)處理器系統(tǒng)100相反,調(diào)度器邏輯300包括次級日歷310,用于調(diào)度管線流和可以包括與給定管線對應(yīng)的一個或多個(例如256個)管線流的管線隊列表314。下面詳細(xì)描述次級日歷310和管線隊列表314。
調(diào)度器邏輯300包括耦接到存儲器304的列隊和新附屬邏輯302(例如通過判優(yōu)單元306)。和傳統(tǒng)調(diào)度器邏輯200一樣,判優(yōu)單元306對存儲器304的寫入和讀取進(jìn)行判優(yōu)。列隊和新附屬邏輯302可以接收識別流(例如自主流或管線流)的數(shù)據(jù)。與圖2所示的傳統(tǒng)調(diào)度器邏輯200的存儲器204一樣,調(diào)度器邏輯300的存儲器304可以配置為存儲每個自主流或管線的優(yōu)先級和帶寬。此外,存儲器304可以存儲包含在每個管線中的每個管線流的優(yōu)先級和帶寬。
存儲器304也可以用于存儲表述隊列結(jié)構(gòu)的信息(例如描述從流接收的數(shù)據(jù)幀或單元的隊列的結(jié)構(gòu)的信息)。對應(yīng)于自主流、管線和/或管線流的、存儲在存儲器304中的優(yōu)先級和帶寬信息可以例如由諸如網(wǎng)絡(luò)管理員的用戶在系統(tǒng)初始化時提供。
根據(jù)由數(shù)據(jù)識別的流(例如自主流或管線流),列隊和新附屬邏輯302檢索對應(yīng)于所識別流的優(yōu)先級和帶寬信息,并根據(jù)該流是自主流還是管線流來不同地處理數(shù)據(jù),如下面小標(biāo)題后所述。
由數(shù)據(jù)識別的流對應(yīng)于自主流如果所接收的數(shù)據(jù)識別自主流,則從存儲器304檢索對應(yīng)于該自主流的優(yōu)先級和帶寬信息。列隊和新附屬邏輯302確定在初級(或主)日歷308中是否存在條目用于由該數(shù)據(jù)識別的自主流。如上所提到的,盡管在圖3的調(diào)度器邏輯300中只示出一個初級日歷308,還可能存在對應(yīng)于不同優(yōu)先級類型的其它日歷。如果在初級日歷308中存在條目用于所識別的自主流,則列隊和新附屬邏輯302不將條目寫入初級日歷308中。如果在初級日歷308中不存在用于該自主流的條目,則將關(guān)于該自主流的數(shù)據(jù)寫入初級日歷308中。與傳統(tǒng)調(diào)度器邏輯200的主日歷202相同,初級日歷308包括存儲器地址組(例如在一個或多個日歷中),其將被重復(fù)檢查以查找識別需要投入服務(wù)的自主流或管線的條目。
調(diào)度器邏輯300按照類似于傳統(tǒng)調(diào)度器邏輯200采用的方式處理自主流的調(diào)度。列隊和新附屬邏輯302為自主流確定在日歷中的合適存儲器地址。例如,如果該自主流是低優(yōu)先級的,則將該自主流放置在初級日歷308的低優(yōu)先級部分。此外,如果該自主流是初級日歷的低優(yōu)先級部分的新條目,則將其放置在當(dāng)前正在該初級日歷的低優(yōu)先級部分檢查的存儲器地址附近。已調(diào)度的條目的存儲器地址和當(dāng)前正檢查的日歷的存儲器地址之間的距離越大,由該已調(diào)度的日歷條目識別的自主流或管線必須等待投入服務(wù)的時間越長。
與傳統(tǒng)邏輯電路200的主日歷200相反,存儲在初級日歷308中的條目可以被鏈接。鏈接的條目代表在同一時間單元或調(diào)度機(jī)會期間調(diào)度為待服務(wù)的多個管線和/或自主流。具體地說,在初級日歷308中被鏈接的自主流或管線條目可以指向?qū)?yīng)于該自主流或管線的控制結(jié)構(gòu)(例如控制塊)。該控制結(jié)構(gòu)的一部分(下個鏈接條目指針)將指向?qū)?yīng)于該鏈接的條目的下個自主流或管線的控制結(jié)構(gòu)。但是,為簡便起見,在初級日歷中被鏈接的條目稱為指向鏈中的下個自主流或管線條目。
因此,如果一個條目在初級日歷中是單一條目或包含在初級日歷308的鏈接的條目中,則可以認(rèn)為該條目存在于初級日歷308中。當(dāng)新條目寫入初級日歷308中時,可以將其作為單一條目寫入初級日歷308中的位置?;蛘撸梢詫⒃摋l目寫入已經(jīng)包含自主流或管線的條目的初級日歷308的位置中。在這種情況下,新條目將取代該位置上先前已存在的條目,并且該新條目將指向先前已存在的條目。
在操作時,初級日歷可以在一時間單元期間,從每個優(yōu)先組中識別需要服務(wù)的條目。此后,初級日歷從已識別的條目中選擇在該時間單元期間待服務(wù)的優(yōu)勝者。
如上所述,初級日歷中的條目可以被鏈接。如果從已識別的條目中選擇的優(yōu)勝者是鏈接的條目,則在發(fā)送了來自該優(yōu)勝者的數(shù)據(jù)之后,該優(yōu)勝者將在日歷中被鏈中的下個自主流或管線條目取代。如果取代優(yōu)勝者的條目是鏈中的最后一個條目,則將該條目作為解鏈的條目對待。
參照圖3和4描述本發(fā)明的調(diào)度器邏輯300的一般操作時,盡管在一時間單元期間可以將解鏈和/或鏈接的條目寫入初級日歷或從中選擇,為簡單起見,假定只將排隊和新附屬解鏈條目寫入初級日歷308并從中選擇。
初級日歷308可以耦接到出列和重附屬邏輯312。初級日歷308將所選擇的優(yōu)勝者通知出列和重附屬邏輯312。如果該優(yōu)勝者是自主流,則將利用指定給該自主流的帶寬將從該自主流接收的數(shù)據(jù)從輸出端口132發(fā)送出去。
類似于列隊和新附屬邏輯302,出列和重附屬邏輯312可以耦接到存儲器304(例如通過判優(yōu)單元306)。出列和重附屬邏輯312可以從存儲器304中檢索對應(yīng)于選擇為優(yōu)勝者的自主流的優(yōu)先級和帶寬信息。出列和重附屬邏輯312根據(jù)所檢索的信息,將該自主流條目重新附屬(例如重寫)到初級日歷308的合適存儲器地址。
類似于將自主流或管線的條目寫入已經(jīng)包含自主流或管線條目的初級日歷的位置,出列和重附屬邏輯312可以將剛接受了服務(wù)的自主流或管線重新附屬到已被占用的初級日歷的存儲器地址,以形成被鏈接的條目。
由數(shù)據(jù)識別的流對應(yīng)于管線流如上所述,調(diào)度器邏輯300包括耦接到存儲器304的列隊和新附屬邏輯302。列隊和新附屬邏輯302可以接收識別流(例如自主流或管線流)的數(shù)據(jù)。如果由列隊和新附屬邏輯302接收的數(shù)據(jù)識別管線流,則可以從存儲器304中檢索對應(yīng)于該管線流的優(yōu)先級和帶寬信息。列隊和新附屬邏輯302還可以從存儲器304中檢索對應(yīng)于包含該管線流的管線的優(yōu)先級和帶寬信息。
如上所述,列隊和新附屬邏輯302可以耦接到初級日歷308。列隊和新附屬邏輯302確定在初級日歷308中是否存在用于對應(yīng)于由所接收數(shù)據(jù)識別的管線流的管線的條目。如果在初級日歷308中不存在這樣一個條目,則將關(guān)于該管線的數(shù)據(jù)按照類似于自主流的方式寫入初級日歷308中。初級日歷如上所述工作,以從所識別的待服務(wù)條目中選擇優(yōu)勝者。然后,初級日歷308將選擇的優(yōu)勝者通知出列和重附屬邏輯312。
列隊和新附屬邏輯302可以耦接到次級日歷310,并且可以確定在次級日歷310中是否存在用于由所接收數(shù)據(jù)識別的管線流的條目。如果在次級日歷中不存在這樣一個條目,則將關(guān)于該管線流的數(shù)據(jù)寫入次級日歷310中。類似于初級日歷,次級日歷310可以包括存儲器地址的優(yōu)先級組(例如在一個或多個日歷中),其將被重復(fù)檢查以查找識別需要投入服務(wù)的管線流的條目。次級日歷可以在一時間單元期間從每個優(yōu)先級組中識別需要服務(wù)的條目。此后,次級日歷從已識別的條目中選擇該時間單元期間待服務(wù)的優(yōu)勝者。
次級日歷310可以耦接到存儲管線隊列的管線隊列表314(例如存儲器)。每個管線隊列包括管線流的一個或多個條目。次級日歷310將從次級日歷310中選擇的優(yōu)勝者通知管線隊列表314。管線隊列表314將該選擇的優(yōu)勝者(管線流)放置在包含該優(yōu)勝管線流的管線的隊列中。
管線隊列表314耦接到出列和重附屬邏輯312。當(dāng)初級日歷將來自初級日歷的優(yōu)勝者(在本例中假定是管線)通知給出列和重附屬邏輯312時,出列和重附屬邏輯312從管線隊列表314的隊列中選擇對應(yīng)于來自初級日歷308的優(yōu)勝管線的管線流。出列和重附屬邏輯312利用指定給該管線流的帶寬,通過網(wǎng)絡(luò)處理器系統(tǒng)(未示出)的輸出端口132發(fā)送從該管線流接收的數(shù)據(jù)。
出列和重附屬邏輯312可以耦接到存儲器304(例如通過判優(yōu)單元306)。出列和重附屬邏輯312可以從次級日歷310中檢索對應(yīng)于選擇為優(yōu)勝者的管線流的優(yōu)先級和帶寬信息。出列和重附屬邏輯312根據(jù)所檢索的信息,將該管線流條目重新附屬到次級日歷310的合適存儲器地址。同樣,出列和重附屬邏輯312可以從初級日歷308中檢索對應(yīng)于選擇為優(yōu)勝者的管線的優(yōu)先級和帶寬信息,并且可以根據(jù)所檢索的信息,將該管線條目重附屬到初級日歷308的合適存儲器地址。
類似于將自主流或管線的新條目寫入已經(jīng)包含自主流或管線條目的初級日歷的位置,出列和重附屬邏輯312可以將剛接受了服務(wù)的自主流或管線重新附屬到已被占用的初級日歷的存儲器地址,并由此形成被鏈接條目。
應(yīng)當(dāng)注意,列隊和新附屬邏輯302和出列和重附屬邏輯312可以包括邏輯器件,例如特殊應(yīng)用集成電路、可編程邏輯電路或類似的標(biāo)準(zhǔn)邏輯。初級日歷308、次級日歷310和管線隊列表314可以包括芯片上存儲器,例如SRAM等等??梢允褂闷渌鎯ζ鳎缧酒獯鎯ζ?。存儲器304例如可以是外部存儲器,例如DRAM等等。
現(xiàn)在參照圖3和4描述調(diào)度器邏輯300的操作,圖3和4說明用于分級調(diào)度從流中接收的數(shù)據(jù)的方法示例。為方便起見,假定所有的數(shù)據(jù)都是從管線流接收的。但是,應(yīng)注意分級調(diào)度的方法可以用于從管線流和/或自主流接收數(shù)據(jù)的網(wǎng)絡(luò)處理器系統(tǒng)。還假定在初級日歷中的所有條目都是解鏈的。但是,應(yīng)當(dāng)注意本發(fā)明裝置的初級日歷可以包括解鏈和/或鏈接的條目。上面討論了用于調(diào)度自主流的方法,該方法可以根據(jù)傳統(tǒng)方法執(zhí)行,因此不再重復(fù)。
參考圖3和4,在步驟402,用于分級調(diào)度從流接收的數(shù)據(jù)的方法開始。在步驟404,接收識別管線流的數(shù)據(jù)。例如,調(diào)度器邏輯300的列隊和新附屬邏輯302可以接收識別流的數(shù)據(jù)。該數(shù)據(jù)可以包括在流中接收的幀或單元的大小,以及指向在流中接收的該幀或單元的指針。
列隊和新附屬邏輯302從存儲器304中檢索存儲為服務(wù)質(zhì)量(QoS)參數(shù)的信息,例如優(yōu)先級和帶寬信息,其對應(yīng)于由所接收的數(shù)據(jù)識別的流。如上所述,在本例中,假定所接收的數(shù)據(jù)識別管線流。存儲器304可以包括每個由網(wǎng)絡(luò)處理器系統(tǒng)(未示出)接收的流(例如自主流和/或管線流)的控制結(jié)構(gòu)(例如控制塊)。每個自主流和/或管線流的控制塊可以包括一個或多個優(yōu)先級參數(shù)和一個或多個帶寬參數(shù)的值。優(yōu)先級參數(shù)定義將以多大的頻率服務(wù)管線流。帶寬參數(shù)定義當(dāng)選擇待服務(wù)的管線流時,該管線流可利用的系統(tǒng)帶寬部分。
列隊和新附屬邏輯302從存儲器304中檢索存儲為服務(wù)質(zhì)量(QoS)參數(shù)的信息,例如優(yōu)先級和帶寬信息,其對應(yīng)于包含由接收數(shù)據(jù)識別的管線流的管線。除了包括具有管線帶寬和優(yōu)先級參數(shù)的控制結(jié)構(gòu)(例如控制塊)之外,存儲器304還可以包括具有每個管線的服務(wù)質(zhì)量(QoS)參數(shù)值的一個或多個控制結(jié)構(gòu),該參數(shù)值例如是優(yōu)先級和帶寬參數(shù)。
列隊和新附屬邏輯302確定在初級(第一)日歷308中是否存在條目用于與由所接收數(shù)據(jù)識別的管線流對應(yīng)的管線。如果在第一日歷308中存在用于該管線的條目,則該管線已經(jīng)調(diào)度為待服務(wù),并且列隊和新附屬邏輯302不需要將關(guān)于該管線的數(shù)據(jù)寫入第一日歷308中。但是,如果在步驟406不存在用于該管線的條目,則列隊和新附屬邏輯302將關(guān)于該管線的數(shù)據(jù)寫入第一日歷308中。
列隊和新附屬邏輯302確定在次級(第二)日歷310中是否存在條目用于由所接收數(shù)據(jù)識別的管線流。如果存在用于該管線流的條目,則該管線流已經(jīng)被調(diào)度為待服務(wù),并且列隊和新附屬邏輯302不需要將關(guān)于該管線流的數(shù)據(jù)寫入第二日歷310中。但是,如果不存在用于該管線流的條目,則在步驟408,列隊和新附屬邏輯302將關(guān)于該管線流的數(shù)據(jù)寫入第二日歷310的合適地址。該數(shù)據(jù)可以包括關(guān)于包含該管線流的管線的信息。例如,如果該管線流是高優(yōu)先級的,則將其放置在次級日歷310的高優(yōu)先級部分。此外,如果該管線流是次級日歷310的高優(yōu)先級部分的新條目,則將其放置在次級日歷310的該高優(yōu)先級部分中當(dāng)前正被檢查的存儲器地址附近,從而可以更快地服務(wù)該管線流。
在步驟410,檢查第一日歷308以查找優(yōu)勝管線。初級日歷可以在一時間單元期間(例如一個或多個時鐘周期)從初級日歷的每個優(yōu)先級部分中識別待服務(wù)的條目。該初級日歷從該時間單元期間識別為待服務(wù)的條目中選擇優(yōu)勝者(例如待服務(wù)的條目)。在本例中,假定優(yōu)勝條目對應(yīng)于管線。初級日歷308將優(yōu)勝管線例如通過總線通知給出列和重附屬邏輯312。
在步驟412,檢查第二日歷310以查找優(yōu)勝管線流。具體地說,次級日歷可以在該時間單元期間從每個優(yōu)先級組中識別需要服務(wù)的條目。次級日歷從該時間單元期間識別為待服務(wù)的條目中選擇優(yōu)勝者。在一個實施例中,4個優(yōu)先級類型可以用于調(diào)度由網(wǎng)絡(luò)處理系統(tǒng)接收的管線和流,因此,次級日歷310可以分為4組。每一組或區(qū)將被重復(fù)檢查。還可以使用其它數(shù)量的優(yōu)先級類型。次級日歷310可以從每個組或區(qū)中識別一個條目(例如識別待服務(wù)的高優(yōu)先級管線流、中優(yōu)先級管線流和低優(yōu)先級管線流)。在包括調(diào)度器邏輯300的網(wǎng)絡(luò)處理器(未示出)的每個時鐘周期中,可以將由次級日歷識別的條目中的一個選擇為優(yōu)勝條目(例如作為待服務(wù)的條目)。優(yōu)勝條目對應(yīng)于一管線流。次級日歷310將該優(yōu)勝管線流例如通過總線通知給管線隊列表314。
在步驟414,將優(yōu)勝管線流寫入對應(yīng)的管線隊列。具體地說,管線隊列表314可以接收關(guān)于該優(yōu)勝管線流以及包含該優(yōu)勝管線流的管線的信息。管線隊列表314可以從存儲器304中檢索對應(yīng)于該管線流的優(yōu)先級和帶寬信息??梢园凑諆?yōu)先級順序安排每個隊列中的條目。如果兩個或更多條目具有相同的優(yōu)先級,則按照每個條目已存儲在隊列中的時間長度來安排這些條目。根據(jù)從次級日歷310接收的信息和從存儲器304檢索的信息,將來自次級日歷310的優(yōu)勝管線流放置在存儲于管線隊列表314中的隊列的一個中。具體地說,將優(yōu)勝管線流條目放置在包括該優(yōu)勝管線流的管線的隊列中。
將優(yōu)勝管線流條目放置在管線隊列中可以根據(jù)從存儲器304檢索的信息來確定。例如,如果管線隊列事先包含高優(yōu)先級管線流的條目,而該條目后面緊接著中優(yōu)先級管線流的條目,后面再緊接著低優(yōu)先級管線流的條目,并且該優(yōu)勝管線流具有高優(yōu)先級,則將優(yōu)勝管線的條目插入到中優(yōu)先級管線流條目之前、以及事先存在的高優(yōu)先級管線流條目之后的管線隊列中。
在步驟416,來自第一日歷308的優(yōu)勝管線用于從對應(yīng)的管線隊列中選擇管線流。如上所述,初級日歷308將該優(yōu)勝管線通知給出列和重附屬邏輯312。出列和重附屬邏輯312可以確定對應(yīng)于該優(yōu)勝管線的管線隊列(存儲在管線隊列表314中)是否為空(即該管線隊列不包括任何在該時間單元期間需要服務(wù)的管線流)。當(dāng)對應(yīng)于優(yōu)勝管線的管線隊列為空時執(zhí)行的步驟包括本發(fā)明的新穎方面,后面將描述。
在本例中,假定對應(yīng)于優(yōu)勝管線的管線隊列非空。出列和重附屬邏輯312從對應(yīng)于優(yōu)勝管線的管線隊列(存儲在管線隊列表314中)中選擇管線流條目。具體地說,出列和重附屬邏輯312從管線隊列中選擇在該隊列中存在時間最長的最高優(yōu)先級管線流條目,以作為待服務(wù)的管線流條目。
在步驟418中,發(fā)送來自所選擇的管線流的數(shù)據(jù)。由網(wǎng)絡(luò)處理器系統(tǒng)(未示出)從所選擇的管線流接收的一個或多個幀或單元通過網(wǎng)絡(luò)處理器系統(tǒng)的輸出端口發(fā)送出去。在步驟420,假定沒有附加數(shù)據(jù)用于優(yōu)勝管線流,圖4的方法結(jié)束。否則該處理如下所述進(jìn)行。
如果存在該優(yōu)勝管線流的附加數(shù)據(jù),則出列和重附屬邏輯312確定用于識別所選的管線流的附加數(shù)據(jù)需要服務(wù)。為了做出該確定,出列和重附屬邏輯312將訪問存儲在描述隊列結(jié)構(gòu)的存儲器中的信息。如果識別所選擇的流的附加數(shù)據(jù)需要服務(wù),出列和重附屬邏輯312將從存儲器304中檢索對應(yīng)于該管線流的優(yōu)先級和帶寬信息。根據(jù)該信息,出列和重附屬邏輯312可以確定在次級日歷310中的合適存儲器地址,以將選擇的管線流條目重新附屬(重寫)到該地址,從而所選擇的管線流可以再次調(diào)度為待服務(wù)。
例如,假定所選擇的管線流是高優(yōu)先級的,將該管線流寫入次級日歷310的高優(yōu)先級部分。由于該管線流剛接受了服務(wù),因此與剛開始將該管線流附屬到(寫入)次級日歷310時相比,在次級日歷的高優(yōu)先級部分中選擇的存儲器地址可以較遠(yuǎn)于高優(yōu)先級組中正被檢查的存儲器地址。因此,與剛開始附屬到次級日歷310時相比,該管線流在重新附屬到次級日歷310之后可能必須等待更長的時間以投入服務(wù)。
或者,如果出列和重附屬邏輯312確定識別所選擇的管線流的附加數(shù)據(jù)不需要服務(wù)時,則不將所選擇的管線流重新附屬到第二日歷310。
出列和重附屬邏輯312可以通過訪問存儲在存儲器304中的、描述包含在所選擇管線中的每個管線流的隊列結(jié)構(gòu)的信息,來確定所選擇的管線是否為空(即在該時間單元期間需要服務(wù)的接收數(shù)據(jù)不識別包含在所選管線中的管線流)。如果識別包含在所選管線中的流的附加數(shù)據(jù)需要服務(wù),則出列和重附屬邏輯312將從存儲器304中檢索對應(yīng)于所選管線的優(yōu)先級和帶寬信息。根據(jù)該信息,出列和重附屬邏輯312可以確定在初級日歷308中的合適存儲器地址,以將所選管線條目重新附屬(重寫)到該地址。
例如,類似于將管線流條目重新附屬到次級日歷310,如果所選管線是高優(yōu)先級的,則將該管線寫入初級日歷308的高優(yōu)先級部分的存儲器地址。由于該管線剛接受了服務(wù),因此與剛開始將該管線附屬到(寫入)初級日歷308時相比,在初級日歷308的高優(yōu)先級部分中選擇的存儲器地址可以較遠(yuǎn)于在該日歷的該部分中正被檢查的存儲器地址。因此,與剛開始附屬到初級日歷308時相比,該管線在重新附屬到初級日歷308之后可能必須等待更長的時間以投入服務(wù)。
或者,如果出列和重附屬邏輯312確定附加數(shù)據(jù)(即識別包含在所選管線中的流的數(shù)據(jù))不需要服務(wù)時,則不將所選擇的管線重附屬到初級日歷308。
如上描述步驟416時所述,在接收到優(yōu)勝管線的通知時,出列和重附屬邏輯312確定對應(yīng)于該優(yōu)勝管線的管線隊列是否為空。根據(jù)同一天提交的未決申請?zhí)枺撸咧械姆椒ê脱b置(律師卷號ROC920030061),如果對應(yīng)于優(yōu)勝管線的管線隊列為空(即該管線隊列沒有在該時間單元期間需要服務(wù)的管線流條目),則出列和重附屬邏輯3 12可以給予對應(yīng)于所選管線的管線隊列一個信用(例如通過在管線隊列表314中為該管線隊列設(shè)置一個管線信用比特)。但是,在該時間單元期間不為管線或流服務(wù)。如果管線隊列具有信用,則當(dāng)在隨后的時間單元內(nèi)將優(yōu)勝管線流條目放置在該管線隊列上時,管線隊列表314將該條目通知給出列和重附屬邏輯312。出列和重附屬邏輯312將從該管線隊列中選擇該管線流條目,并清除管線隊列的優(yōu)勝信用,如參照圖5的更詳細(xì)描述。
圖5說明根據(jù)未決申請__中的方法和裝置的處理(律師卷號ROC920030061),其從主日歷中選擇為空的優(yōu)勝管線(即對應(yīng)于優(yōu)勝管線的管線隊列不包括在該時間單元期間待服務(wù)的流)。盡管自主流可以包含在初級日歷308中,但在本例中假定初級日歷308中只包含管線,只有管線才經(jīng)歷在給定時間單元期間無數(shù)據(jù)發(fā)送的缺點,而自主流不經(jīng)歷。
參考圖6描述圖5,圖6是在高優(yōu)先級日歷608a、中優(yōu)先級日歷608b和低優(yōu)先級日歷608c中的多個存儲器地址的框圖。在圖6的示例中,在第一時間單元t1期間,在高、中和低優(yōu)先級日歷608a、608b、608c中分別被指向的存儲器地址610a、610b、610c是空的。因此,不采用參考圖3-4和7-9描述的本發(fā)明,在時間單元t1期間不為管線服務(wù)。在時間單元t2期間,分別在高、中和低優(yōu)先級日歷608a-c中指向存儲器地址612a、612b、612c。在高優(yōu)先級日歷608a中的存儲器地址612a和低優(yōu)先級日歷608c中的存儲器地址612c包括在時間單元t2期間待服務(wù)的條目。由于其較高的優(yōu)先級,來自高優(yōu)先級日歷的存儲器地址612a的條目將在時間單元t2期間投入服務(wù)。
在時間t3期間,分別在高、中和低優(yōu)先級日歷608a-c中指向存儲器地址614a、614b、614c。由于低優(yōu)先級日歷608c中的存儲器地址612c包括在時間單元t2期間待服務(wù)的條目,因此在時間t3期間,指針不前進(jìn)到低優(yōu)先級日歷608c的另一個存儲器地址。如圖所示,在時間t3期間,高、中和低優(yōu)先級日歷的存儲器地址614a、614b、612c分別包括在時間t3期間待服務(wù)的條目。
參考圖5,在步驟502,從主日歷308中選擇空優(yōu)勝條目的處理流開始。由于上述原因,并如圖5的步驟504所示,將來自高優(yōu)先級日歷的存儲器地址614a的條目選擇為在時間t3期間待服務(wù)的優(yōu)勝者。由于在本例中假定日歷中的所有條目都是管線,因此在步驟506,將確定所選擇的條目(即優(yōu)勝者)為管線。接著執(zhí)行步驟508。
在步驟508,將確定所選擇的管線是否為空。如果確定優(yōu)勝管線不為空,則執(zhí)行步驟510。在步驟510,發(fā)送來自包含在所選管線中的流的數(shù)據(jù)。步驟510可以包括圖4所示用于調(diào)度管線流的方法的步驟416和418。
如果在步驟508中確定所選擇的管線為空,則執(zhí)行步驟512。如上所述,如果對應(yīng)于所選管線的管線隊列不包含條目,則所選擇的管線為空。在步驟512,如上所述,在該時間單元期間為對應(yīng)于所選管線(例如在存儲器地址614a中包含的管線)的管線隊列分配一個優(yōu)勝信用。此后,在步驟514,圖5所示的處理結(jié)束。
因此,盡管中優(yōu)先級日歷608b和低優(yōu)先級日歷608c的存儲器地址614b和存儲器地址612c包括在時間單元t3期間待服務(wù)的條目,但是在該時間單元期間不為任何管線流服務(wù),因為在所選管線(例如在存儲器地址614a中包含的管線)的管線隊列中沒有指向任何條目。這導(dǎo)致提供訪問有限系統(tǒng)帶寬的方法是低效的。
與同一天提交的未決申請__中的裝置和方法(律師卷號ROC920030061)相反,本發(fā)明提供了一種具有分級調(diào)度的網(wǎng)絡(luò)處理器,包括用于選擇在時間單元期間待服務(wù)的多個條目的方法和裝置?,F(xiàn)在參考圖7描述調(diào)度器邏輯300的操作,其中圖7說明這樣一種方法。對于圖7的例子,不再假定主日歷中的所有條目都是解鏈的。同樣,在圖7的例子中假定從初級日歷中選擇的第一條目是管線。做出該假定是因為自主流永遠(yuǎn)不會是空的,因此對理解本發(fā)明提供的優(yōu)點是沒有幫助的。
圖7的方法說明(1)一種方法,用于如果在一時間單元期間事先選擇的管線條目是空的解鏈的條目,則從初級日歷308中選擇另一個自主流或管線條目(以虛線框A示出);和(2)一種方法,用于如果在一時間單元期間事先選擇的管線條目是空的鏈接的條目,則從初級日歷308中選擇另一個自主流或管線條目(以虛線框B示出)。
如果在一時間單元期間事先選擇的管線條目是空的解鏈的條目則從初級日歷308中選擇另一個自主流或管線條目的方法將同時參考圖7和圖8描述,其中圖8說明在執(zhí)行本發(fā)明方法的高優(yōu)先級日歷608a、中優(yōu)先級日歷608b和低優(yōu)先級日歷608c中的多個存儲器地址的框圖。
圖8所示的處理流類似于圖6所示的直到時間單元t3的處理流。在時間單元t3期間,高、中和低優(yōu)先級日歷608a-c的存儲器地址614a、614b、612c分別包括在時間單元t3期間待服務(wù)的條目。參考圖7,在步驟702,如果在一時間單元期間事先選擇的管線條目是空的解鏈的條目則從初級日歷308中選擇另一個自主流或管線條目的方法(以虛線框A示出)開始。在圖7的步驟704中,由于其較高的優(yōu)先級,將來自高優(yōu)先級日歷608a的存儲器地址614a的條目選擇為在時間t3期間待服務(wù)的優(yōu)勝者。在步驟706中,確定所選擇的條目(即優(yōu)勝者)是否是管線。如果所選擇的條目不是管線,則是自主流,并在步驟708,從網(wǎng)絡(luò)處理器系統(tǒng)100(圖1)的輸出端口132發(fā)送來自該自主流的數(shù)據(jù)。如果確定所選擇的條目是管線,則在步驟710,確定該優(yōu)勝管線是否為空。如上所述,如果管線隊列不包含在當(dāng)前時間單元期間需要服務(wù)的管線流條目,則管線是空的。如果優(yōu)勝管線非空,則執(zhí)行步驟708,并從輸出端口132(圖1)輸出來自包含在優(yōu)勝管線中的管線流的數(shù)據(jù)。
如果在步驟710確定所選擇的管線(例如在高優(yōu)先級日歷608a的存儲器地址614a中的條目)是空的,則執(zhí)行步驟712。在步驟712,確定所選擇的管線條目是否被鏈接。
選擇的管線條目是空的解鏈條目在步驟712,假定所選擇的管線條目是解鏈的。接著執(zhí)行步驟716。在步驟716,確定是否有任何較低優(yōu)先級日歷包括在該時間單元期間待服務(wù)的管線或自主流條目。例如,如果在當(dāng)前時間單元(例如t3)期間確定(通過出列和重附屬邏輯312和管線隊列表314)高優(yōu)先級日歷的存儲器地址614a中的管線條目是空的,則調(diào)度器邏輯300將確定中優(yōu)先級日歷608b的存儲器地址614b或低優(yōu)先級日歷608c的存儲器地址612c是否包括在該時間單元t3期間待服務(wù)的管線或自主流。如果在該時間單元t3期間沒有更低優(yōu)先級日歷包括待服務(wù)的條目,則執(zhí)行結(jié)束圖7方法的步驟720。
或者,如果在該時間單元期間較低優(yōu)先級日歷包括待服務(wù)的管線或自主流條目,則執(zhí)行步驟718。例如,在時間t3期間,中優(yōu)先級日歷中的存儲器地址614b和低優(yōu)先級日歷中的存儲器地址612c包括時間t3期間調(diào)度為待服務(wù)的條目,因此執(zhí)行步驟718。在步驟718,從一個較低優(yōu)先級日歷中選擇一個條目作為該時間單元期間的優(yōu)勝者。具體地說,在選擇低優(yōu)先級日歷608c的存儲器地址612c之前,將中優(yōu)先級日歷608b的存儲器地址614b中的管線或自主流日條目選擇為待服務(wù)。一旦將來自一個較低優(yōu)先級日歷的條目選擇為該時間單元期間的優(yōu)勝者,處理就返回步驟706,并確定該條目是否為管線。
與圖5的方法相反(其中在優(yōu)勝管線為空的時間單元期間不發(fā)送數(shù)據(jù)),圖7的本發(fā)明方法(其中如果事先選擇的管線條目是空的解鏈條目,則在一時間單元期間從初級日歷中選擇另一個管線條目)有效地提供了對有限系統(tǒng)帶寬的訪問。
選擇的管線條目是空的鏈接條目如果在一時間單元期間事先選擇的管線條目是空的鏈接條目則從初級日歷308中選擇另一個自主流或管線條目的方法將參考圖7和圖9描述,其中圖9說明其中執(zhí)行本發(fā)明方法的高優(yōu)先級日歷、中優(yōu)先級日歷和低優(yōu)先級日歷608a-c中的多個存儲器地址的框圖。
圖9所示的處理流類似于圖6和圖8所示的直到時間單元t3的處理流。在時間單元t3期間,高、中和低優(yōu)先級日歷608a-c的存儲器地址614a、存儲器地址614b、和存儲器地址612c分別包括在時間t3期間待服務(wù)的條目。在步驟702,如果在一時間單元期間事先選擇的管線條目是空的鏈接條目則從初級日歷308中選擇另一個自主流或管線條目的方法(以虛線框B示出)開始。本方法中的步驟704、708、710和712與如果在一時間單元期間事先選擇的管線條目是空的解鏈條目則從初級日歷308中選擇另一個自主流或管線條目的方法(以虛線框A示出)中的步驟相同。但是,在步驟712,將所選擇的條目確定為鏈接的條目。接著執(zhí)行步驟714。在步驟714,將鏈中的下個條目選擇為待服務(wù)的條目。如上所述,當(dāng)在該時間單元期間從所識別的條目中選擇的優(yōu)勝者是鏈接條目時,該優(yōu)勝者將在日歷中被鏈中的下個自主流或管線條目取代。例如,當(dāng)高優(yōu)先級日歷608a的存儲器地址614a中的鏈接條目被選擇為優(yōu)勝者時(步驟704),鏈中的下個自主流或管線條目將取代高優(yōu)先級日歷608a的存儲器地址614a中的所選條目(即選擇為時間t3期間的優(yōu)勝者)。盡管中優(yōu)先級日歷608b的存儲器地址614b和低優(yōu)先級日歷608c的存儲器地址612c也包括在時間t3期間待服務(wù)的條目,在高優(yōu)先級日歷608a的存儲器地址614a中的、鏈中的下個條目將成為在時間單元t3期間選擇為待服務(wù)的下個條目。一旦在時間單元t3期間將鏈中的下個條目選擇為優(yōu)勝者,處理就返回步驟706。
如上所述,當(dāng)鏈接的條目選擇為待服務(wù)的條目時,所選擇的條目將在日歷中被鏈中的下個自主流或管線條目取代。如果取代所選條目的條目是鏈中的最后一個條目,則它將是初級日歷中的解鏈條目。
類似于如果事先選擇的管線條目是空的解鏈條目則從初級日歷中選擇另一個管線條目的方法,本方法(在虛線框B中所示)有效地提供了當(dāng)選擇空鏈接條目時對有限系統(tǒng)帶寬的訪問。因此,如果包括本發(fā)明的調(diào)度器邏輯300的網(wǎng)絡(luò)處理器系統(tǒng)耦接到一個或多個超額訂購和未充分使用的管線時(即包含在管線中的所有管線流中的一小部分在一時間單元期間是有效的),則在時間單元期間可以頻繁將空管線選擇為待服務(wù)。因此,不是從網(wǎng)絡(luò)處理器系統(tǒng)的輸出端口132不輸出數(shù)據(jù),本發(fā)明的方法和裝置在該時間單元期間將另一個條目選擇為待服務(wù)。
上述描述只是公開了本發(fā)明的示例性實施例。上述公開的裝置和方法落在本發(fā)明范圍中的修改對本領(lǐng)域的技術(shù)人員是顯而易見的。例如,本發(fā)明的方法和裝置公開了將首先加入鏈接條目的最后一個條目選擇為待服務(wù),或者,可以將加入鏈接條目的第一個條目選擇為在時間單元期間待服務(wù)。為此,第二個加入到該鏈接條目的條目取代所選擇的條目,作為該鏈接條目的第一條目。
因此,雖然參照示例性實施例公開了本發(fā)明,應(yīng)當(dāng)理解,其他實施例也可能落在如所附權(quán)利要求所限定的本發(fā)明的精神和范圍中。
權(quán)利要求
1.一種方法,包括在一時間單元期間從多個主日歷的一個中選擇第一優(yōu)勝條目,該第一優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第一管線;確定在該時間單元期間沒有對應(yīng)于該優(yōu)勝第一管線的管線流當(dāng)前需要投入服務(wù);在該時間單元期間從多個主日歷中選擇第二優(yōu)勝條目,該第二優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第二管線或自主流;和在該時間單元期間將對應(yīng)于該第二優(yōu)勝條目的自主流或管線流投入服務(wù)。
2.根據(jù)權(quán)利要求1所述的方法,其中,在所述時間單元期間從多個主日歷的一個中選擇第一條目包括從最高優(yōu)先級日歷中選擇第一優(yōu)勝條目,其表示需要投入服務(wù)的條目。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述第一優(yōu)勝條目包括鏈中的第一條目,該鏈包含調(diào)度為在所述時間單元期間待投入服務(wù)的多個管線條目。
4.根據(jù)權(quán)利要求1所述的方法,其中,在所述時間單元期間從多個主日歷的一個中選擇第一優(yōu)勝條目包括在該時間單元期間從每個都具有不同優(yōu)先級的多個主日歷的一個中選擇第一優(yōu)勝條目。
5.根據(jù)權(quán)利要求1所述的方法,其中,在所述時間單元期間從多個主日歷的一個中選擇第一優(yōu)勝條目包括在多個時鐘周期期間從多個主日歷的一個中選擇第一優(yōu)勝條目。
6.根據(jù)權(quán)利要求1所述的方法,其中,確定在所述時間單元期間沒有對應(yīng)于該優(yōu)勝第一管線的管線流當(dāng)前需要投入服務(wù)包括訪問與需要投入服務(wù)的管線流的優(yōu)勝管線一致的管線隊列,并確定在該時間單元期間沒有對應(yīng)于該優(yōu)勝第一管線條目的管線流當(dāng)前需要投入服務(wù)。
7.根據(jù)權(quán)利要求3所述的方法,其中,在所述時間單元期間從多個主日歷的一個中選擇第二優(yōu)勝條目包括選擇所述鏈的第二條目。
8.根據(jù)權(quán)利要求2所述的方法,其中,在所述時間單元期間從多個主日歷的一個中選擇第二優(yōu)勝條目包括從優(yōu)先級比最高優(yōu)先級日歷低的日歷中選擇所述第二優(yōu)勝條目。
9.根據(jù)權(quán)利要求8所述的方法,其中,在所述時間單元期間從多個主日歷的一個中選擇第二優(yōu)勝條目包括從優(yōu)先級比最高優(yōu)先級日歷低的日歷中選擇所述第二優(yōu)勝條目,包括從具有表明在所述時間單元期間待投入服務(wù)的管線或自主流的條目的最高優(yōu)先級日歷中選擇第二優(yōu)勝條目。
10.根據(jù)權(quán)利要求1所述的方法,其中,在所述時間單元期間為對應(yīng)于所述第二優(yōu)勝條目的自主流或管線流服務(wù)包括訪問對應(yīng)于該第二優(yōu)勝條目的管線隊列,以選擇需要投入服務(wù)的管線流。
11.根據(jù)權(quán)利要求10所述的方法,其中,在所述時間單元期間為對應(yīng)于所述第二優(yōu)勝條目的自主流或管線流服務(wù)包括為處于所述隊列中時間最長的最高優(yōu)先級管線流服務(wù)。
12.一種網(wǎng)絡(luò)處理器系統(tǒng),包括至少一個存儲器,適用于存儲對應(yīng)于一個或多個管線和管線流的一個或多個服務(wù)質(zhì)量優(yōu)先級參數(shù);和調(diào)度器邏輯,耦接到至少一個存儲器,適用于在一時間單元期間從多個主日歷的一個中選擇第一優(yōu)勝條目,該第一優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第一管線;確定在該時間單元期間沒有對應(yīng)于該優(yōu)勝第一管線的管線流當(dāng)前需要服務(wù);在該時間單元期間從多個主日歷中選擇第二優(yōu)勝條目,該第二優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第二管線或自主流;和在該時間單元期間將對應(yīng)于該第二優(yōu)勝條目的自主流或管線流投入服務(wù)。
13.根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)處理器系統(tǒng),其中所述調(diào)度器邏輯包括多個主日歷,用于存儲調(diào)度為待投入服務(wù)的自主流和管線中的至少一個;多個次級日歷,用于存儲調(diào)度為待投入服務(wù)的管線流;和管線隊列表,用于在該管線流所對應(yīng)的管線的隊列中存儲優(yōu)勝管線流。
14.根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)處理器系統(tǒng),其中所述調(diào)度器邏輯進(jìn)一步包括列隊和新附屬邏輯,用于將自主流和管線流中的至少一個調(diào)度為待投入服務(wù);和出列和重附屬邏輯,用于選擇待投入服務(wù)的自主流和管線流中的至少一個。
15.一種方法,包括在一時間單元期間從多個主日歷的一個中選擇第一優(yōu)勝條目,該第一優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第一管線;確定在該時間單元期間沒有對應(yīng)于該優(yōu)勝第一管線的管線流當(dāng)前需要投入服務(wù);在該時間單元期間從多個主日歷中選擇第二優(yōu)勝條目,該第二優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第二管線;和在該時間單元期間將對應(yīng)于該第二優(yōu)勝條目的管線流投入服務(wù)。
16.一種方法,包括在一時間單元期間從多個主日歷的一個中選擇第一優(yōu)勝條目,該第一優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第一管線;確定在該時間單元期間沒有對應(yīng)于該優(yōu)勝第一管線的管線流當(dāng)前需要投入服務(wù);在該時間單元期間從多個主日歷中選擇第二優(yōu)勝條目,該第二優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的自主流;和在該時間單元期間將對應(yīng)于該第二優(yōu)勝條目的自主流投入服務(wù)。
17.一種網(wǎng)絡(luò)處理器系統(tǒng),包括至少一個存儲器,適用于存儲對應(yīng)于一個或多個管線和管線流的一個或多個服務(wù)質(zhì)量優(yōu)先級參數(shù);和調(diào)度器邏輯,耦接到至少一個存儲器,適用于在一時間單元期間從多個主日歷的一個中選擇第一優(yōu)勝條目,該第一優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第一管線;確定在該時間單元期間沒有對應(yīng)于該優(yōu)勝第一管線的管線流需要投入服務(wù);在該時間單元期間從多個主日歷中選擇第二優(yōu)勝條目,該第二優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第二管線;和在該時間單元期間將對應(yīng)于該第二優(yōu)勝條目的管線流投入服務(wù)。
18.一種網(wǎng)絡(luò)處理器系統(tǒng),包括至少一個存儲器,適用于存儲對應(yīng)于一個或多個管線和管線流的一個或多個服務(wù)質(zhì)量優(yōu)先級參數(shù);和調(diào)度器邏輯,耦接到至少一個存儲器,適用于在一時間單元期間從多個主日歷的一個中選擇第一優(yōu)勝條目,該第一優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第一管線;確定在該時間單元期間沒有對應(yīng)于該優(yōu)勝第一管線的管線流當(dāng)前需要服務(wù);在該時間單元期間從多個主日歷中選擇第二優(yōu)勝條目,該第二優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的自主流;和在該時間單元期間將對應(yīng)于該第二優(yōu)勝條目的自主流投入服務(wù)。
全文摘要
在本發(fā)明的第一方面,提供一種用于分級調(diào)度的第一方法。該第一方法包括步驟(1)在一時間單元期間從多個主日歷的一個中選擇第一優(yōu)勝條目,該第一優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第一管線;(2)確定在該時間單元期間沒有對應(yīng)于該優(yōu)勝第一管線的管線流當(dāng)前需要投入服務(wù);(3)在該時間單元期間從多個主日歷中選擇第二優(yōu)勝條目,該第二優(yōu)勝條目表明在該時間單元期間待投入服務(wù)的第二管線或自主流;和(4)在該時間單元期間將對應(yīng)于該第二優(yōu)勝條目的自主流或管線流投入服務(wù)。還提供其它很多方面。
文檔編號G06F15/173GK1604581SQ20041005450
公開日2005年4月6日 申請日期2004年7月22日 優(yōu)先權(quán)日2003年9月30日
發(fā)明者萊爾·E·格羅斯巴赫, 格倫·H·漢德洛格滕, 詹姆斯·F·米科斯, 戴維·A·諾加德 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1