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

用于使用多個鏈接的存儲器列表的方法及裝置與流程

文檔序號:11959900閱讀:175來源:國知局
用于使用多個鏈接的存儲器列表的方法及裝置與流程

本公開內容總體上涉及網絡數據傳輸領域,并且更具體地涉及一種用于在將數據令牌從所選擇的隊列出隊和入隊期間鏈接多個存儲器列表以便增加交換網絡在傳輸數據分組時的吞吐量的系統(tǒng)和方法。



背景技術:

在數據交換網絡中,數據業(yè)務被分類為在緩沖器中的大量隊列中存儲的各種流。在路由器或者其他網絡元件中,所存儲的隊列通常競爭公共的外向通信鏈路或者出站端口(例如物理通信鏈路或者偽線)。因此,所緩沖的隊列需要在出站側被調度。因此,需要由路由器中輸出側的令牌調度設備在傳輸之前執(zhí)行處理以選擇所排隊的分組中的哪個分組將為隊列中的為了外向傳輸的下一個分組。

通常,在路由過程中,來自不同源端口的數據令牌基于其源端口和目的端口以及業(yè)務類型而被分類。它們隨后被分類成緩沖器中的不同隊列。通過路由器網絡和/或由路由器網絡處理的數據令牌至少暫時被維持在緩沖器存儲器中。通常,被稱為鏈表隊列的存儲器數據結構被維持與該緩沖器存儲器相關聯(lián)。該鏈表隊列包含分別指向該緩沖器存儲器中存儲有與每個數據令牌關聯(lián)的數據的每個存儲位置的指針的列表。常規(guī)的隊列結構通常在一個連續(xù)的順序列表中存儲與在該緩沖器存儲器中當前存儲的每個數據令牌關聯(lián)的每個指針。當數據令牌進入隊列中時,每個隊列的狀態(tài)被更新并且相關鏈表(linklist)指針被更新。基于輸出端口的可用性,調度器選擇正確的調度算法以將數據令牌從隊列中出隊。當數據令牌移出隊列時, 每個隊列的狀態(tài)和鏈表指針將然后再次被更新。

由于需要基于源端口和目的端口以及業(yè)務類型來對令牌分類的步驟,所以在多播業(yè)務數據分組的處理中產生了附加延遲時間。首先,與數據分組關聯(lián)的數據令牌隨后被分類到不同的隊列中,并且然后在進入隊列中時,該隊列的狀態(tài)被更新。然后,基于端口可用性,調度器選擇調度算法來將令牌從緩沖器存儲器中的對應隊列中出隊。這一步驟等待端口可用性必須重復用于待發(fā)送的數據令牌中的每個數據令牌。另外,如果需要數據令牌的副本被重復并且發(fā)送至額外的端口,則需要進行服務質量(QoS)算法檢查。此外,當為了例如高優(yōu)先級業(yè)務(諸如控制業(yè)務或者語音/視頻延遲敏感業(yè)務、傳輸)需要保證優(yōu)先服務時,必須在傳輸該數據令牌時進行一些額外的檢查。

緩沖器管理器的性能受到入隊和出隊處理操作中的數據令牌的流水線流量的限制。當緩沖器充滿時,該緩沖器管理器必須等待直到數據令牌被出隊才能將附加數據令牌入隊。為了降低這里的延遲時間,引入并聯(lián)緩沖器以使得附加數據令牌能夠入隊。然而,這樣的附加并聯(lián)緩沖器使用附加資源和處理功率。此外,每當緩沖器存儲器要在由路由器執(zhí)行的某種操作中處理時,必須訪問或者尋址該隊列以便獲得與該令牌關聯(lián)的指針。

隨著與路由器或者其他分組交換機關聯(lián)的處理速度增加(例如每秒10吉比特或者更高),與用來維持隊列的存儲器關聯(lián)的輸入和輸出帶寬和訪問延遲變得至關重要。也就是說,鑒于每次需要令牌指針時都必須訪問常規(guī)的隊列的事實,隊列存儲器可能變?yōu)轱@著瓶頸。



技術實現要素:

因此,有利的是,提供一種使用地址鏈表的緩沖器存儲器管理,其通過使用虛擬隊列技術、基于提供多個入隊和出隊令牌緩沖器操作的鏈表能夠增加在當前設備中可以執(zhí)行的入隊和出隊操作的當前 限制數目。

本公開內容的實施例提供了一種用于使用多個列表類型子隊列形成虛擬隊列的鏈表的技術,該子隊列列表的實現使得能夠并聯(lián)調度多個數據令牌傳輸,從而顯著增加路由器中的交換機制的吞吐量。

因此,本公開內容的實施例采用將去往存儲器緩沖器的數據排隊的方法,所述方法包括從多個隊列中選擇隊列并且從所選擇的隊列接收數據令牌。隊列模塊從緩沖器管理器請求用于由緩沖器管理器分配的用于存儲數據令牌的地址的指針和地址。然后,通過緩沖器管理器訪問存儲器列表,并且在存儲器列表中生成指向所分配的地址的指針和地址。所訪問的存儲器列表包括用于附加地址分配的多個鏈接的存儲器列表。此外,向所訪問的存儲器列表中寫入用于所分配的地址的指針。該指針將所分配的地址鏈接在一起。該方法還包括:在從所述隊列接收到隨后的數據令牌時向其他存儲器列表移植附加地址分配,并且生成將所述其他存儲器列表中所分配的地址鏈接在一起的附加指針。

根據本公開內容的另一實施例采用將去往存儲器緩沖器的數據排隊的裝置,所述裝置包括:用于從多個隊列中選擇隊列以及從所選擇的隊列接收數據令牌的選擇器模塊;響應于所述模塊以用于請求由所述管理器分配的用于存儲所述數據令牌的地址的指針和地址的的管理器;響應于所述管理器以訪問存儲器列表并且在所述存儲器列表中生成指向所分配的地址的指針和地址的分配模塊。所訪問的存儲器列表包括用于附加地址分配的多個鏈接的存儲器列表。所述分配模塊向所訪問的存儲器列表中寫入用于所分配的地址的指針,其中所述指針將所分配的地址鏈接在一起,并且所述分配模塊在從所述隊列接收到隨后的數據令牌時向其他存儲器列表移植附加地址分配,并且生成將所述其他存儲器列表中的所分配的地址鏈接在一起的附加指針。

根據本公開內容的又一實施例,所述隊列模塊包括所述隊列模塊包括用于將數據令牌向所鏈接的存儲器列表的所分配的地址中入 隊的入隊模塊以及用于將數據令牌從所鏈接的存儲器列表的所分配的地址出隊的出隊模塊。所述入隊模塊被配置成向所述緩沖器管理器生成請求以用于將多個數據令牌一次性入隊,其中所述多個數據令牌具有通過指針跨所述多個存儲器列表鏈接的地址。所述出隊模塊被配置成向所述緩沖器管理器生成請求以用于將多個數據令牌一次性出隊,其中所述多個數據令牌具有通過指針跨所述多個存儲器列表鏈接的地址。

本發(fā)明內容必然包含對細節(jié)的簡化、概括和省略。因此,本領域技術人員應當理解,本發(fā)明內容僅是說明性的,而非意在以任何方式限制。僅由權利要求來限定的本公開內容的其他方面、發(fā)明特征和優(yōu)點將在以下給出的非限制性詳細描述中變得清楚。

附圖說明

通過閱讀以下詳細描述并且結合附圖,將能更好地理解本公開內容的實施例,在附圖中相似的附圖標記指代相似的元件,并且其中:

圖1是描繪根據本公開內容的實施例的示例性路由器中的緩沖器管理器的配置的框圖;

圖2是根據本公開內容的實施例的緩沖器管理器的框圖,該緩沖器管理器描繪示例性路由器中的隊列尾指針和隊列頭指針的配置;

圖3圖示根據本公開內容的實施例的示例性虛擬隊列鏈表配置;

圖4圖示根據本公開內容的實施例的示例性隊列鏈表配置;

圖5A、圖5B圖示根據本公開內容的實施例的具有鏈表結構的示例性頭指針和尾指針配置的框圖;

圖6A、圖6B圖示了根據本公開內容的實施例的將數據令牌在多個存儲器列表結構中鏈接在一起的框圖;

圖7是示出根據本公開內容的實施例的具有鏈表結構的緩沖器管理器操作的流程圖;

圖8是根據本公開內容的實施例的緩沖器管理器的框圖,該緩沖器管理器描繪示例性路由器中的隊列尾指針和隊列頭指針的配置;以及

圖9是描繪根據本公開內容的示例性路由器中的緩沖器管理器模塊的配置的框圖。

具體實施方式

現在將詳細參考本發(fā)明的優(yōu)選實施例,其示例在附圖中圖示。雖然本發(fā)明結合優(yōu)選實施例來描述,然而應當理解,其并非意在將本發(fā)明限于這些實施例。相反,本發(fā)明意在覆蓋備選、修改和等同方案,這些備選、修改和等同方案可以被包括在如所附權利要求所限定的本發(fā)明的精神和范圍內。此外,在對本發(fā)明的實施例的以下詳細描述中,提出了大量具體細節(jié)以便提供對本發(fā)明的透徹理解。然而,本領域普通技術人員應當認識到,可以在沒有這些具體細節(jié)的情況下來實踐本發(fā)明。在其他情況下,沒有詳細描述公知的方法、過程、部件和電路,以避免不必要地混淆本發(fā)明的實施例的各個方面。示出本發(fā)明的實施例的附圖是半圖解性的并且并未按比例繪制,特別地,其中一些尺度是為了清楚地呈現并且在附圖中被放大示出。類似地,雖然附圖中的視圖出于便于理解的目的而通常示出了相似的方位,然而附圖中的這一描繪在極大程度上是任意的。通常,本發(fā)明可能在任何方位中操作。

然而應當銘記,所有這些術語和相似的術語要與適當的物理量關聯(lián)并且僅是適用于這些物理量的方便的標記。除非清楚地指出或者根據以下討論能夠清楚地看出,否則應當理解,遍及本發(fā)明,使用諸如“處理”或“訪問”或“執(zhí)行”或“存儲”或“渲染”等術語的討論是指將被表示為計算機系統(tǒng)的寄存器和存儲器以及其他計算機可讀介質內的物理(電子)量的數據操縱和變換成被表示為計算機系統(tǒng)存儲器或寄存器或者其他這樣的信息存儲、傳輸或客戶端設備內的物理量的數據的計算機系統(tǒng)或類似的電子計算設備的動作 和處理。當若干實施例中出現某個部件時,相同附圖標記的使用表示該部件與原始實施例中圖示的部件相同。

入隊和出隊緩沖器存儲器管理

圖1示出了在其中可以實現本公開內容的數據令牌處理系統(tǒng)100。該系統(tǒng)100包括處理器110,該處理器110具有復制、QoS及入隊處理器120、緩沖器管理器130、調度出隊140和緩沖器存儲器150。該處理器110被配置成在從其接收數據令牌和其他數據令牌的網絡與去往由調度出隊140控制的輸出端口160的網絡之間提供接口。具有復制、QoS及入隊處理器120、緩沖器管理器130、調度出隊140和緩沖器存儲器150的處理器110可以被實現為例如安裝在路由器或交換機的線路或端口上的一個或多個集成電路。該數據令牌可以被認為但是不限于待傳輸的數據分組的代表部分。例如,數據分組可以具有頭部和凈荷部二者。該數據令牌將通常包含數據分組的頭部或者元數據的收集或者與頭部關聯(lián)的各方面或者與整個數據分組關聯(lián)的各方面。另外,如果該頭部在64位至128位之間,則所需的數據令牌取決于網絡需要可以是45-50位。該數據令牌可以與指針所指的數據分組關聯(lián),并且該數據分組可以被存儲在由耦合至該數據分組的關聯(lián)的指針所指的外部存儲器塊中。

應當理解,圖1所示的系統(tǒng)元件的特定布置僅是說明性示例。更特別地,如先前所指出的,本公開內容可以根據任何類型的分組或令牌處理器來實現并且不限于任何特定分組處理應用。

圖2示出了根據本公開內容的實施例的緩沖存儲器管理器200以及緩沖管理操作210中的隊列存儲器中的隊列尾指針240、隊列頭指針250和空指針260。應當理解,鏈表指針240至260可以在處理器120和140(圖1)的控制下駐留并且被維持在緩沖器管理器130(圖1)中。每個隊列具有隊列頭指針250和隊列尾指針240二者。該隊列尾指針240規(guī)定寫入操作的位置并且該隊列頭指針250規(guī)定讀取操作的位置。在執(zhí)行讀取操作時,該隊列頭指針250將沿著每 個新的讀取操作的隊列移位。同樣地,該隊列尾指針240將沿著每個新的寫入操作的隊列移位。因此,上一隊列尾指針240標識周期中的上一寫入操作,上一隊列頭指針250標識周期中的上一讀取操作。

如圖2所示,在根據隊列尾指針請求220訪問特定隊列時,讀取新的隊列頭指針250和新的隊列尾指針240。接收隊列的令牌。在接收該令牌之后,可以訪問以讀取和處理關于下一頭指針的信息。

圖3示出了根據令牌被接收的順序被填入的所選擇的Q0的并聯(lián)鏈表配置。初始請求的指針可以是隊列頭指針或者隊列尾指針。每個Q0將被分成4個鏈接的鏈表Q00至Q03。因此,Q00可以被分成4個存儲器位置Q00至Q03,其是圖3中示出的列表Q’000至Q’002。Q00至Q03中的單個鏈表被進一步再分成4個子鏈表Q00至Q03。這使得例如在從Q0到現在的一個讀取周期中包括4個存儲位置讀數Q00至Q03或者每個Q00讀數N/4個讀取周期。換言之,將每個Q0的附加的Q00至Q03鏈接在一起實現了在單個鐘控周期Q0內接收附加數據令牌集合的能力,這些附加數據令牌集合初始在最高達4個周期的時間內在沒有對附加鏈表的鏈接的情況下已經被讀入。

圖4圖示了對于Q00而言為N/4的每個Q0的讀取周期。第一鐘控周期可以包括Q00、Q01、Q12和Q00。下一鐘控周期移位N/4在Q01、Q12、Q00和Q01處開始。隨后的周期以Q12開始每個移位N/4。因此,每個隨后的讀取和寫入周期被執(zhí)行N/4次移位。因此,在特定的Q0鐘控時間內,存在大約最多達N/4的4個鐘控寄存器移位以縮短每個寄存器移位的周期距離。

在圖5A中,在選擇隊列之后,執(zhí)行讀取請求并且需要將數據令牌505出隊。調度器響應于該讀取請求彈出所選擇的隊列中的數據令牌。所請求的數據令牌由緩沖器管理器放置在存儲器組的集合的第一可用存儲器位置中,在這一實例中,存儲器組0是被表示為所請求的數據令牌的所分配的地址。頭指針520由該緩沖器存儲器的鏈表類型管理器應用選擇以指向所請求的令牌505.該存儲器位置由該 緩沖器管理器標記為Q000。該緩沖器管理器的內部時鐘應用針對正被請求的數據令牌分配4元組的存儲器位置。在接收到數據505的第一令牌之后,可以查明第一鐘控周期Q0的開始點。這一開始點是初始頭指針510被指向的地方并且在初始令牌請求505被讀取和處理之后被再次識別。

每個存儲器位置的集合Q00N被分配上至4個存儲器位置以用于從所選擇的隊列接收的數據令牌。下一存儲器位置經由尾指針515被鏈接至Q000。緩沖器管理器發(fā)送下一讀取請求并且從隊列接收第二數據令牌。該第二數據令牌被動態(tài)分配至被表示為Q001的組1中的可用存儲器位置。從該緩沖器管理器接收的下一指針515變成存儲器位置Q001的隨后的頭指針。這一將頭指針和尾指針耦合的菊花鏈實現了數據令牌從跨存儲器組的離隊操作的兩步過程。例如在開始515和550處的兩個數據令牌是從隊列請求的初始請求數據令牌Q000515和Q001550。令牌Q000515和Q001550二者在涉及Q0頭指針510的初始讀取的兩步過程中出隊并且處理來自Q000位置的數據令牌。在處理Q000之后,接著可以讀取下一尾指針515并且由緩沖器管理器標識該下一尾指針515。即,在請求Q0時,讀取Q000,并且接收Q000以及然后接收與Q000關聯(lián)的數據,并且標識到下一Q001的路徑。還標識從Q001下一尾指針550至Q002和隨后的下一指針565的路徑。另外,在請求Q0被公開(transpire)時,用于發(fā)送與Q0關聯(lián)的對象集合的位置已知。另外,圖5示出了用于數據令牌525和570的附加集合的鏈路的其他路徑菊花鏈。存儲器分配Q030被鏈接至Q031和隨后的指向組2的地址Q032的尾指針535。地址Q020的存儲器列表分配經由其尾指針被連接至Q021540。附加分配Q01N545在隨后周期中的存儲器列表中呈現附加分配。

隨著緩沖器管理器繼續(xù)發(fā)送讀取請求,創(chuàng)建4個鏈接的存儲器位置的元組或者集合。在完成4個鏈接的位置的第一集合時,緩沖器管理器開始下一個4個鏈接的位置的集合并且繼續(xù)創(chuàng)建4個存儲器位置的元組或者集合的這一過程直至所有數據令牌從所選擇的隊 列中被彈出。如果有奇數個數據令牌或者數據令牌不足以填充在上一集合中可能發(fā)生的待填充的4個鏈接的位置的集合,則在列表中將有空位置。

接著,第三存儲器位置通過尾指針550類似地耦合至第二存儲器位置Q001。該尾指針550現在是第三存儲器位置Q002的頭指針。第三存儲器位置在組2中通過Q002來表示,并且存儲器位置中的每個存儲器位置被動態(tài)地表示并且在跨多個存儲器組遷移的循環(huán)方式中分配。這一循環(huán)規(guī)定可以將數據在給定時間中轉發(fā)到所標識的隊列外部的帶寬輸出或者按照網絡交換算法可以從給定隊列出隊的數據的頻率。例如,在圖5A中,從Q000515到Q001550到Q002565的循環(huán)配置被示出為鏈接存儲器組列表1和2的集合。每個存儲器組列表510、530和555包括在路徑中被鏈接在一起的令牌列表Q000至Q03N,使得每個令牌能夠與Q0的集合相關聯(lián)。

圖5B用框圖圖示了隊列尾指針585以及隊列尾指針590的相關子塊Q00至Q03。還示出了隊列頭指針586以及隊列頭指針595的相關子塊Q00至Q03。隊列尾指針590的堆疊的子塊和隊列頭指針595的堆疊的子塊中的每個子塊在圖5的組1和2所示的并聯(lián)鏈表中被鏈接在一起。

圖6A和圖6B圖示了針對由4個并聯(lián)鏈表組成的單獨隊列的隊列100并聯(lián)鏈表的示例的框圖。應該注意,如果從圖6A的動態(tài)鏈表的示例性實施例添加或者去除一個或多個并聯(lián)鏈表,則本公開內容的示例性實施例的可能的概念將不改變。

圖6A在框圖600中圖示了針對由4個并聯(lián)鏈表組成的單獨隊列的隊列100并聯(lián)鏈表的示例:Q100-0,第一并聯(lián)鏈表605;Q100-1,第二并聯(lián)鏈表610;Q100-2,第三并聯(lián)鏈表615;和Q100-3,第四并聯(lián)鏈表620。塊的子列表之間的外部虛擬耦合625、630圖示了鏈表Q100-01到Q100-11到Q100-21到Q100-31并且回到Q100-01,以及Q100-02到Q100-12到Q100-22到Q100-32并且回到Q100-02的循環(huán)配置中的第一和第二耦合集合。該耦合包括一起鏈接至4個數據令牌 的集合的尾指針和頭指針,其中上一耦合625、630共同用作集合中的上一數據令牌的尾指針和下一數據令牌的頭指針。內部耦合Q100-01到Q100-02到Q100-03表示按照連續(xù)順序的各個數據令牌集合的各個并聯(lián)列表。因此,數據令牌集合1的上一尾指針被連接至下一數據令牌集合2,并且集合1的上一尾指針用作數據令牌集合2的第一頭指針。在圖6A的示例中,因為有鏈表Q100-01到Q100-11到Q100-21到Q100-31并且回到Q100-01,以及Q100-02到Q100-12到Q100-22到Q100-32并且回到Q100-02的數據令牌的兩個完整集合,所以有由尾指針525和630生成的、指向數據令牌集合2和3的兩個頭指針。

另外,在圖6A中示出了將存儲器列表分配入隊和彈出并且將4個數據令牌集合的存儲器分配的多個集合入隊的整個鏈表循環(huán)類型周期或者循環(huán)過程。子列表605、610、615和620之間的數據令牌的第一集合的耦合在圖6A中被表示為“1-1-1-1”。緩沖器管理器依賴于外部計數器應用來跟蹤4個集合中的每個數據令牌集合,并且在緩沖器存儲器中創(chuàng)建虛擬表以存儲具有關聯(lián)的頭指針和尾指針的所有計數值。另外,數據令牌可以具有與用于子列表中的4個集合中的每個數據令牌集合的附加數據集合關聯(lián)的附加指針,從而允許在外部位置處的數據存儲。在完成初始的4個集合時,緩沖器管理器增加其內部計數并且表示為下一集合“2-2-2-2”。重復這一過程直至所有數據令牌從所選擇的隊列入隊或者出隊。緩沖器管理器使用內部計數器應用跟隨4個集合的塊的FIFO類型排序,并且每個集合還按照如圖6A的示例中示出的1-2-3集合的數字順序耦合。

圖6B在框圖中圖示了針對隊列100的業(yè)務類別4和端口4中的特定目的(未示出)生成的隊列列表的示例。示出了并聯(lián)存儲器子列表635、640、645和650。例如,用于Q100的隊列尾指針存儲器是Q100-0,其在被給予當前指針1000的存儲器子列表635中。另外,從存儲器讀取的空指針是1000并且被寫入至用于隊列100-0的隊列尾存儲器。因此,用于Q100-0的隊列尾存儲器具有當前指針1000 和下一指針1100。下表1.2中還示出了具有當前指針和下一指針的“尾請求”的每個的列表。這些隊列尾請求、當前指針和下一指針中的每個構成內部并聯(lián)鏈表。存儲器分配在Q100-0中是隨機的并且是按照可用性動態(tài)選擇的。因此,存儲器列表中的排序根據存儲器位置的可用性而改變。下表1,2中示出了生成的動態(tài)列表,其中在入隊過程期間,緩沖器管理器向4個數據令牌的第一集合分配當前指針1000和然后的下一指針1100用于4個數據令牌的下一集合。圖6B中示出了尾指針1000的內部計數器和計數器0。由從1000-0至2000-1的尾指針的耦合示出了第一集合的數據令牌的下一指針。計數器被更新到1并且子列表Q100-1中的當前指針是2000。在子列表Q100-2中,當前指針是3000伴隨著計數器2,并且在子列表Q100-3中,當前指針是4000伴隨著計數器3。子列表635-650中的每個子列表被分配有當前指針,因為緩沖器管理器遷移至每個列表并且更新其內部計數器,從而創(chuàng)建用于4個數據令牌的每個集合的頭指針和尾指針的集合。在通過子列表中的每個子列表遷移之后,緩沖器管理器將空指針返回655、660作為數據令牌的下一集合的下一當前指針。使用這一循環(huán)方式,所有子列表被用于將數據令牌存儲在4個集合中,并且每個集合的上一尾指針邊長下一集合的隨后的頭指針。因此,初始Q100-0鏈表635的計數器值被表示在0、4、8等的4個集合中,其對應于向數據令牌的每個集合分配的指針的集合。

表1.1

入隊與緩沖器管理器交互

Qtail Teq-100-0->當前指針-1000,下一指針-1100

Qtail Teq-100-1->當前指針-2000,下一指針-2100

Qtail Teq-100-2->當前指針-3000,下一指針-3100

Qtail Teq-100-3->當前指針-4000,下一指針-4100

Qtail Teq-100-4->當前指針-1100,下一指針-1200

Qtail Teq-100-5->當前指針-2100,下一指針-2200

Qtail Teq-100-6->當前指針-3100,下一指針-3200

Qtail Teq-100-7->當前指針-4100,下一指針-4200

Qtail Teq-100-8->當前指針-1200,下一指針-1300

圖7是圖示由圖2的緩沖器管理器操作執(zhí)行的示例性步驟的流程圖。另外,示出了根據圖7的流程圖的步驟的用于隊列100的連續(xù)的分組業(yè)務的表示。在步驟705,基于目的端口和與數據關聯(lián)的業(yè)務的類別來選擇隊列。在步驟710中,(圖1的)入隊模塊120向(圖1的)緩沖器管理器130請求指針以在(圖1的)緩沖器存儲器150中存儲數據。例如,關于圖6A和6B中的所標識的隊列100,入隊模塊可以請求用于隊列100的指針位置。在步驟715,緩沖器管理器檢查隊列尾指針存儲器以找到所識別的隊列并且將當前指針設置為其位置。另外,緩沖器管理器從空指針存儲器彈出附加的一個空指針并且將其寫入隊列尾指針存儲器并且還將這一空指針標識為到入隊模塊的下一指針。

在步驟720中,入隊模塊使用當前指針來將令牌和下一位置寫入緩沖器存儲器中。該入隊模塊使用位置1000來寫入令牌和1100作為如表1.1所示的下一存儲位置。此外,對于下一隊列尾請求100-1,入隊模塊使用在存儲位置3000處的當前指針和在存儲位置3100處的下一指針。表1.1圖示隨后的隊列尾請求以及當前指針和下一指針位置。

在步驟725,在將隊列調度為要出隊之后,出隊模塊向緩沖器管理器請求隊列的隊列頭指針。作為示例,當隊列100被調度為要出隊時,該出隊模塊請求待發(fā)送至緩沖器管理器的隊列100的頭指針1000。如圖表1.2所示,在步驟730中,緩沖器管理器向所請求的隊列分配頭指針值1000。

步驟735,圖示了在出隊模塊從緩沖器存儲器讀取分組和下一指針并且然后向緩沖器管理器轉發(fā)下一指針作為頭指針更新時的出隊模塊操作。該出隊模塊從緩沖器中的其接收令牌和下一指針1100的位置1000讀取。該出隊模塊發(fā)送1100作為隊列100的頭指針更新 請求。指針1000現在為空指針,并且該出隊模塊向緩沖器管理器轉發(fā)空指針。(出隊操作參考下面的圖表1.2)

出隊與緩沖器管理器交互

表1.2

Head Req-100->頭指針-1000

Head update-1100

Head Req-101->頭指針-2000

Head update-2100

Head Req-102->頭指針-3000

Head update-3100

Head Req-103->頭指針-4000

Head update-4100

Head Req-100->頭指針-1100

Head update-1200

Head Req-101->頭指針-2100

Head update-2200

Head Req-102->頭指針-3100

Head update-3200

Head Req-103->頭指針-4100

Head update-4200

Head Req-101->頭指針-1200

Head update-1300

當出隊模塊開始隊列100的調度的隊列操作時,這一操作由調度器在跨多個隊列同樣地分離的每個Q0在4個鐘控周期內執(zhí)行。該調度器依次請求隊列100、101、102和103的頭指針信息,使得按照調度器請求的優(yōu)先級而執(zhí)行出隊操作。當由調度器每4個時鐘在調度的隊列100中執(zhí)行將隊列出隊時,整個Q0可以被視為訪問通過4個不同的并聯(lián)鏈表被鏈接在一起的數據的Q0。因此,對于每個單個并聯(lián)鏈表,該出隊操作可以在周期內出現直至16個時鐘的最大速 度。對于吞吐量和延遲限制的請求,并聯(lián)鏈表出隊可以從4增加至8和以上。

圖8為類似于圖2的框圖,但是圖示了入隊和出隊操作的步驟。在圖8中,接收輸入令牌(1)以通過入隊模塊820進行分類。接著,輸出(3)向緩沖器存儲器830請求新的隊列尾指針。用于并聯(lián)鏈表(2)的隊列尾存儲器被發(fā)送至存儲器(4)用于向緩沖器存儲器850中的寫入操作。該數據令牌被寫入緩沖器存儲器850。該調度器840挑選Q(Q0)(5)并且請求并聯(lián)鏈表的隊列頭指針(6)。該緩沖器管理器讀取隊列頭指針并且使用這一頭指針作為經更新的頭指針并且然后向并聯(lián)鏈表寫入該經更新的頭指針。

在圖9中,圖示了根據本公開內容的實施例的當輸入的令牌被接收和分類為Q0時由緩沖器管理器執(zhí)行的示例性過程。對新的隊列的尾指針(3)的請求被發(fā)送至隊列尾指針模塊920。伴隨著每個請求生成并聯(lián)鏈表的隊列尾指針,并且當接收到令牌時,對于該令牌執(zhí)行向緩沖器存儲器中的寫入操作。對于調度器操作,在Q0被選中時,請求要向隊列頭指針模塊930發(fā)送的隊列頭指針(6)。對于并聯(lián)鏈表的隊列頭指針被發(fā)送自并聯(lián)鏈表中的每個并聯(lián)鏈表。所請求的隊列頭指針被讀取并且與隊列已更新的頭指針和現在的空舊指針一起轉發(fā)(8)與頭指針關聯(lián)的令牌。

因此,如本公開內容的示例性實施例所示,通過將4個并聯(lián)的子鏈表鏈接在一起,使得所選擇的Q0的給定N周期內的入隊和出隊操作、讀取寫入操作最小化。此外,根據本公開內容的路由過程有利地提供了入隊和出隊操作的有限的緩沖器空間分配的增加的吞吐量,從而降低了緩沖器管理器在這一瓶頸操作所浪費的延遲時間。通過將隊列分配劃分為多個虛擬子隊列以用于入隊和出隊,在降低這樣的入隊和出隊操作中產生的總體延遲時間時,可以更快地獲取并且傳輸數據令牌而不對物理緩存器配置作出顯著改變。

應當理解,路由器中的電路可以被實現為專用集成電路(ASIC)、專用標準零件(ASSP)、片上系統(tǒng)(SoC)、現場可編程門陣列(FPGA) 等。另外,應當理解,路由器可以包括本領域公知的各種其他功能和部件。

雖然本文中已經公開了某些優(yōu)選實施例和方法,然而本領域技術人員根據以上公開內容應當理解,可以在不偏離本公開內容的精神和范圍的情況下做出對這樣的實施例和方法的變化和修改。意圖在于,本公開內容應當僅限于所附權利要求以及適用法律細則和原理所要求的范圍。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
河曲县| 山东| 木兰县| 吴忠市| 白水县| 陆河县| 正阳县| 桐乡市| 磐石市| 都江堰市| 屏南县| 万安县| 阳原县| 泾川县| 浦城县| 开江县| 香港| 旌德县| 宁河县| 丰台区| 女性| 义乌市| 游戏| 金沙县| 静安区| 南郑县| 凤山县| 阿鲁科尔沁旗| 福安市| 枝江市| 堆龙德庆县| 卢湾区| 拜泉县| 叶城县| 简阳市| 古田县| 嘉善县| 临汾市| 德江县| 郧西县| 将乐县|