JP2013236124A - Packet scheduling method and communication device - Google Patents

Packet scheduling method and communication device Download PDF

Info

Publication number
JP2013236124A
JP2013236124A JP2012105370A JP2012105370A JP2013236124A JP 2013236124 A JP2013236124 A JP 2013236124A JP 2012105370 A JP2012105370 A JP 2012105370A JP 2012105370 A JP2012105370 A JP 2012105370A JP 2013236124 A JP2013236124 A JP 2013236124A
Authority
JP
Japan
Prior art keywords
value
packet
scheduling
queue
activelist
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012105370A
Other languages
Japanese (ja)
Inventor
Tetsushi Matsuda
哲史 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012105370A priority Critical patent/JP2013236124A/en
Publication of JP2013236124A publication Critical patent/JP2013236124A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a packet scheduling method that can change a quantum value without changing a ratio among flows according to the state of loads of other processing.SOLUTION: A packet scheduling method for determining a packet to be transmitted at each schedule round by use of an EBRR scheme is able to change a quantum value without changing a ratio among respective flows in concert with the state of loads of other processing performed by a CPU and the like when scheduling processing is implemented by means of software by the CPU and the like.

Description

本発明は、パケットスケジューリング方法および通信装置に関する。   The present invention relates to a packet scheduling method and a communication apparatus.

パケットスケジューリングアルゴリズムとして、計算量がO(1)となるO(1)スケジューリング方式が複数提案されている。例えば、Deficit Round Robin(DRR),Surplus Round Robin(SRR),Eligibility Based Round Robin(EBRR)(下記非特許文献1参照)等が挙げられる。   As a packet scheduling algorithm, a plurality of O (1) scheduling schemes with a calculation amount of O (1) have been proposed. Examples include Deficit Round Robin (DRR), Surplus Round Robin (SRR), Eligibility Based Round Robin (EBRR) (see Non-Patent Document 1 below), and the like.

これらのうちLenziniらが提案したEBRRは、DRRやSRRと異なり、quantum値(スケジューリングラウンド毎に各フローのCredit Counterに加算する値)が最大パケットサイズ未満の場合でも計算量がO(1)であるという特徴を持っている。方式的には、EBRRは、quantum値が最大パケットサイズ未満の場合でも計算量がO(1)である様に拡張したSRRと見なすことができる。EBRRの動作を以下に説明する。   Among these, EBRR proposed by Lenzini et al. Differs from DRR and SRR in that the amount of calculation is O (1) even when the quantum value (value added to the Credit Counter of each flow for each scheduling round) is less than the maximum packet size. It has the characteristic of being. Systematically, the EBRR can be regarded as an extended SRR so that the calculation amount is O (1) even when the quantum value is less than the maximum packet size. The operation of EBRR will be described below.

EBRRのパケットスケジューリングは、パケットのフローを単位として行う。即ち、パケットスケジューリングは、次に送信するパケットをどのフローの先頭パケットにするかを決定する処理を行う。パケットのフローは、例えばパケットの送信元と送信先のアドレスの値により特定される。   EBRR packet scheduling is performed in units of packet flows. That is, in the packet scheduling, a process for determining which flow's leading packet is to be the next packet to be transmitted is performed. The packet flow is specified by, for example, the value of the packet source and destination addresses.

EBRRでは、各フローi(iはフローを識別する識別番号)に対して、フローiに属するパケットを1つのキューとして格納するためのQueue[i]、フローiからのパケット送信可否判断に使用するCredit CounterであるCi、1スケジューリングサイクルでのCredit Counterの増分値quantum値Qiを管理する。   In the EBRR, for each flow i (i is an identification number for identifying the flow), Queue [i] for storing packets belonging to the flow i as one queue is used for determining whether packets can be transmitted from the flow i. The credit counter Ci, and the credit counter increment value quantum Qi in one scheduling cycle are managed.

また、EBRRでは、配列ActiveList[]を管理する。ActiveList[]のインデックスはスケジューリングラウンドに対応し、ActiveList[]の要素は、インデックスが表わすスケジューリングラウンドでスケジューリング対象となるフローのQueue[i]のリストである。以下では、最大パケットサイズをL、配列ActiveList[]のサイズをq、現在のスケジューリングラウンドをRC(RC=0,1,2,…)と表わす。このとき、q=ceil(L/(Qiの最小値))となる。なお、ceil(x)はx以上の最小の整数を返す関数である。   In EBRR, the array ActiveList [] is managed. The index of ActiveList [] corresponds to the scheduling round, and the element of ActiveList [] is a list of Queue [i] of the flow to be scheduled in the scheduling round represented by the index. In the following, the maximum packet size is represented by L, the size of the array ActiveList [] is represented by q, and the current scheduling round is represented by RC (RC = 0, 1, 2,...). At this time, q = ceil (L / (minimum value of Qi)). Note that ceil (x) is a function that returns the smallest integer greater than or equal to x.

1スケジューリングラウンドでの処理は以下の様になる。
i)ActiveList[RC mod q](x mod y は、xをyで割った余りを示す)から最初の要素(Queue[i])を取り出す。Queue[i]の先頭から1パケットをデキューし送信する。Ciをパケット長分減算する。
ii)もし、Ci>0かつQueue[i]が空でなければ、Queue[i]をActiveList[RC mod q]の最後に追加する。もし、Ci≦0ならば、スケジューリングラウンド毎にQiをCiに加算することで、Ciが0より大きくなるスケジューリングラウンドrcを求める。すなわち、rc=RC+floor(−Ci/Qi)+1としてrcを求める。なお、floor(x)はx以下の最大の整数を返す関数である。そして、Queue[i]が空でなければ、Queue[i]をActiveList[rc mod q]の最後に追加し、CiをスケジューリングラウンドrcでのCi(Ci(更新前)+(floor(−Ci/Qi)+1)×Qi)の値に更新する。Queue[i]が空であり、Queue[i]のパケットがスケジューリングラウンドrc以降ならば送信可能であることを記録し、Ciの値をQiに更新する。
iii)フローiに対してスケジューリングラウンドRCでパケットを受信した場合、Queue[i]にパケットをエンキューする。もしQueue[i]がエンキューする前は空であったならば、rcをQueue[i]内のパケットを送信可能なスケジューリングラウンドとすると、Queue[i]をActiveList[max(rc,RC) mod q]の最後に追加する。なお、max(x,y)はxとyのうち大きい方を出力する関数である。
The processing in one scheduling round is as follows.
i) The first element (Queue [i]) is extracted from ActiveList [RC mod q] (x mod y indicates a remainder obtained by dividing x by y). One packet is dequeued from the head of Queue [i] and transmitted. Ci is subtracted by the packet length.
ii) If Ci> 0 and Queue [i] is not empty, add Queue [i] to the end of ActiveList [RC mod q]. If Ci ≦ 0, Qi is added to Ci for each scheduling round to obtain a scheduling round rc in which Ci is greater than 0. That is, rc is obtained by setting rc = RC + floor (−Ci / Qi) +1. Note that floor (x) is a function that returns the largest integer less than or equal to x. If Queue [i] is not empty, Queue [i] is added to the end of ActiveList [rc mod q], and Ci is set to Ci (Ci (before update) + (floor (−Ci / Update to the value of Qi) +1) × Qi). If Queue [i] is empty and the packet of Queue [i] is after the scheduling round rc, it is recorded that transmission is possible, and the value of Ci is updated to Qi.
iii) When a packet is received in the scheduling round RC for the flow i, the packet is enqueued in Queue [i]. If Queue [i] is empty before enqueue, and rc is a scheduling round capable of transmitting packets in Queue [i], Queue [i] is ActiveList [max (rc, RC) mod q ] At the end of Note that max (x, y) is a function that outputs the larger of x and y.

L.Lenzini,E.Mingozzi and G.Stea,“Eligibility−Based Round Robin for Fair and Efficient Packet Scheduling in Wormhole Switching Networks”,Trans. On Parallel and Distributed Systems,Vol.15,No.3L. Lenzini, E.M. Mingozzi and G. Stea, “Eligibility-Based Round Robin for Fair and Efficient Packet Scheduling in Wormhole Switching Networks”, Trans. On Parallel and Distributed Systems, Vol. 15, No. Three

上記従来のEBRR技術によれば、フローのquantum値の間の比率を変えずにquantum値を小さくすることで、フロー間の公平性改善とフローのバースト性の削減が可能である。一方で、quantum値を小さくするとActiveList[]のサイズ(=q)が大きくなり、ActiveList[]の各要素に対して空でないかをチェックするための計算量が増える。1スケジューリングラウンドで送信されるデータ量をquantum値が表すことを考慮すると、より小さいquantum値を使用して、一定のデータ送信レートを維持する場合、単位時間当たりに実行するスケジューリングラウンド数が増える。これらのことより、quantum値を小さくすると計算量が増える。   According to the above-described conventional EBRR technique, it is possible to improve the fairness between flows and reduce the burstiness of flows by reducing the quantum value without changing the ratio between the quantum values of the flows. On the other hand, when the quantum value is decreased, the size (= q) of ActiveList [] increases, and the amount of calculation for checking whether each element of ActiveList [] is empty is increased. Considering that the quantum value represents the amount of data transmitted in one scheduling round, the number of scheduling rounds executed per unit time increases when a smaller data value is used and a constant data transmission rate is maintained. For these reasons, the calculation amount increases when the quantum value is reduced.

EBRRによるスケジューリング処理をCPU(Central Processing Unit)を用いてソフトウェアで実行する場合、CPUが実行する他の処理の負荷に応じて、公平性およびバースト性の改善と、計算量を増大させないことと、のどちらが優先であるかが変わる。したがって、CPUが実行する他の処理の負荷に応じて、各フロー間の比率を変えずquantum値を変更することが望ましい。しかし、従来のEBRRでは、スケジューリング処理実行中にquantum値を変更する場合の送信待ちパケットやデータ構造の扱いが規定されておらず、CPUが実行する他の処理の負荷に応じてquantum値を変更することの実現性が示されていないという問題があった。   When the scheduling process by EBRR is executed by software using a CPU (Central Processing Unit), the fairness and burstiness are improved according to the load of other processes executed by the CPU, and the calculation amount is not increased. Which one has priority is changed. Therefore, it is desirable to change the quantum value without changing the ratio between the flows in accordance with the load of other processing executed by the CPU. However, in the conventional EBRR, the handling of the transmission waiting packet and data structure when the quantum value is changed during the execution of the scheduling process is not stipulated, and the quantum value is changed according to the load of other processes executed by the CPU. There was a problem that the feasibility of doing was not shown.

本発明は、上記に鑑みてなされたものであって、スケジューリング処理をCPU等によりソフトウェアで実現する際に、当該CPU等が実行する他の処理の負荷状況に合わせて、各フロー間の比率を変えずにquantum値を変更することが可能なパケットスケジューリング方法および通信装置を得ることを目的とする。   The present invention has been made in view of the above, and when the scheduling process is realized by software by a CPU or the like, the ratio between the flows is set in accordance with the load status of other processes executed by the CPU or the like. It is an object of the present invention to obtain a packet scheduling method and a communication apparatus that can change a quantum value without changing it.

上述した課題を解決し、目的を達成するために、本発明は、パケット送信を行う通信装置において、EBRR方式を用いてスケジュールラウンドごとに送信するパケットを決定するパケットスケジューリング方法であって、iを、フローを識別する識別番号とし、EBRR方式におけるCredit Counterの1スケジューリングランドあたりの増分値であるquantum値をQiとし、jを0以上の整数とし、同一時点ではjの値はフロー間で同一として、Qiをフローiの最小quantum値に2jを乗じた値として設定するquantum値設定ステップと、jの最大値をNとし、EBRR方式におけるQueue[i]のリストであるActiveList[]の要素をチェックする際に使用するインデックス値の1スケジューリングランドあたりの増分値であるstrideを2jとし、各フローの最小quantum値のうちの最小値をminQsysとするとき、配列ActiveList[]のサイズqを、q=ceil((ceil(L/minQsys)+1)/(2N))*(2N)とする配列サイズ設定ステップと、EBRR方式に従って、送信要求のあったパケットをフローiのパケットに対応するパケットデータ格納用メモリのキューであるQueue[i]に格納するとともに配列ActiveList[]にQueue[i]を追加するデータ格納ステップと、現在のスケジューリングランドをRCとするとき、当該スケジュールラウンドでのQueue[i]の送信後に、Credit Counterが1より小さくかつQueue[i]が空でない場合、Queue[i]をActiveList[(RC+ceil(加算が必要なcredit値/Qi)*2j) mod q]の最後に追加するリスト追加ステップと、quantum値を小さくする場合、jの値をこれまでのjの値より小さい新たな値とし、新たなjの値を用いて、Qiをフローiの最小quantum値に2jを乗じた値に更新するとともにstride値を2jに更新する更新ステップと、を含むことを特徴とする。 In order to solve the above-described problem and achieve the object, the present invention provides a packet scheduling method for determining a packet to be transmitted for each schedule round using an EBRR scheme in a communication apparatus that performs packet transmission, and , An identification number for identifying a flow, a quantum value that is an increment value per scheduling land of a credit counter in the EBRR system is Qi, j is an integer of 0 or more, and the value of j is the same between flows at the same time. , Qi is a quantum value setting step for setting the minimum quantum value of flow i by 2 j , and the maximum value of j is N, and an element of ActiveList [] which is a list of Queue [i] in the EBRR method the stride is the increment per scheduling lands index value to be used when checking the 2 j, most of the flow When the minimum value of the quantum value is MinQsys, array size to the size q of the array ActiveList [], q = ceil ( (ceil (L / minQsys) +1) / (2 N)) * (2 N) According to the setting step and the EBRR method, the packet requested for transmission is stored in Queue [i] which is a packet data storage memory queue corresponding to the packet of flow i, and Queue [i] is added to the array ActiveList [] And when the current scheduling land is RC, if Queue [i] is less than 1 and Queue [i] is not empty after sending Queue [i] in the schedule round, Queue [i] ActiveList [(RC + ceil (subject to the necessary credit value / Qi) * 2 j) mod q] and the last list to add to the additional step of, when reducing the quantum value, the value of j for a value j far Ri and smaller new value, using the new value of j, include the updating step of updating the stride value to 2 j updates the Qi to a value obtained by multiplying a 2 j to the minimum quantum value of the flow i It is characterized by.

本発明によれば、スケジューリング処理をCPU等によりソフトウェアで実現する際に、当該CPU等が実行する他の処理の負荷状況に合わせて、各フロー間の比率を変えずにquantum値を変更することが可能となる、という効果を奏する。   According to the present invention, when scheduling processing is realized by software by a CPU or the like, the quantum value is changed without changing the ratio between the flows in accordance with the load status of other processing executed by the CPU or the like. There is an effect that becomes possible.

図1は、本発明にかかる通信装置の構成例を示す図である。FIG. 1 is a diagram illustrating a configuration example of a communication apparatus according to the present invention. 図2は、パケット送信処理手順の一例を示す図である。FIG. 2 is a diagram illustrating an example of a packet transmission processing procedure. 図3−1は、スケジューリング処理を実行するためのアルゴリズムの一例を示す図である。FIG. 3A is a diagram illustrating an example of an algorithm for executing the scheduling process. 図3−2は、スケジューリング処理を実行するためのアルゴリズムの一例を示す図である。FIG. 3-2 is a diagram illustrating an example of an algorithm for executing the scheduling process. 図3−3は、スケジューリング処理を実行するためのアルゴリズムの一例を示す図である。FIG. 3-3 is a diagram illustrating an example of an algorithm for executing the scheduling process. 図3−4は、スケジューリング処理を実行するためのアルゴリズムの一例を示す図である。FIG. 3-4 is a diagram illustrating an example of an algorithm for executing the scheduling process. 図3−5は、スケジューリング処理を実行するためのアルゴリズムの一例を示す図である。FIG. 3-5 is a diagram illustrating an example of an algorithm for executing the scheduling process.

以下に、本発明にかかるパケットスケジューリング方法および通信装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。   Embodiments of a packet scheduling method and a communication apparatus according to the present invention will be described below in detail with reference to the drawings. Note that the present invention is not limited to the embodiments.

実施の形態.
図1は、本発明にかかる通信装置の構成例を示す図である。本実施の形態の通信装置1は、CPUやMPU(Micro Processing Unit)等である制御部2と、タイマー部3と、Credit Counter格納用メモリ4と、Quantum(quantum)値格納用メモリ5と、ActiveList格納用メモリ6と、パケットデータ格納用メモリ7と、処理待ちパケット情報格納用メモリ8と、キュー情報格納用メモリ9と、パケット入力部10と、で構成される。
Embodiment.
FIG. 1 is a diagram illustrating a configuration example of a communication apparatus according to the present invention. The communication device 1 according to the present embodiment includes a control unit 2 such as a CPU or MPU (Micro Processing Unit), a timer unit 3, a credit counter storage memory 4, a quantum (quantum) value storage memory 5, The memory includes an ActiveList storage memory 6, a packet data storage memory 7, a process waiting packet information storage memory 8, a queue information storage memory 9, and a packet input unit 10.

本実施の形態の通信装置は、本発明にかかるパケットスケジューリング方法(EBRRを拡張したスケジューリング方法)によりパケットスケジューリング処理を実施してパケットを送信する。以下、本実施の形態では、通常のEBRRと同様に、各フローi(iはフローを識別する識別番号)に対して、フローiに属するパケットを格納するためキューをQueue[i]とし、フローiからのパケット送信可否判断に使用するCredit CounterをCiとし、1スケジューリングサイクルでのCredit Counterの増分値quantum値をQiとし、配列ActiveList[]を管理する。ActiveList[]のインデックスはスケジューリングラウンドに対応し、ActiveList[]の要素は、インデックスが表わすスケジューリングラウンドでスケジューリング対象となるフローのQueue[i]のリストである。また、以下では、配列ActiveList[]のサイズをq、現在のスケジューリングラウンドをRC(RC=0,1,2,…)と表わす。   The communication apparatus according to the present embodiment performs packet scheduling processing by the packet scheduling method according to the present invention (scheduling method that extends EBRR) and transmits the packet. Hereinafter, in the present embodiment, as in normal EBRR, for each flow i (i is an identification number for identifying the flow), the queue for storing packets belonging to the flow i is Queue [i], and the flow The Credit Counter used for determining whether or not to transmit a packet from i is Ci, and the increment value quantum value of the Credit Counter in one scheduling cycle is Qi, and the array ActiveList [] is managed. The index of ActiveList [] corresponds to the scheduling round, and the element of ActiveList [] is a list of Queue [i] of the flow to be scheduled in the scheduling round represented by the index. In the following, the size of the array ActiveList [] is represented by q, and the current scheduling round is represented by RC (RC = 0, 1, 2,...).

制御部2は、パケット送信要求受付処理部21と、スケジューリング処理部22と、パケット送信処理部23と、を備える。パケット送信要求受付処理部21、スケジューリング処理部22およびパケット送信処理部23は、それぞれソフトウェアのプログラムとして図示しない記憶部に格納され、処理の実行時には、記憶部に格納されたプログラムに従って制御部2によりそれぞれの処理を実行する。   The control unit 2 includes a packet transmission request reception processing unit 21, a scheduling processing unit 22, and a packet transmission processing unit 23. The packet transmission request reception processing unit 21, the scheduling processing unit 22, and the packet transmission processing unit 23 are each stored in a storage unit (not shown) as a software program, and are executed by the control unit 2 according to the program stored in the storage unit when executing processing. Execute each process.

本実施の形態のパケットスケジューラは、パケット送信要求受付処理部21、スケジューリング処理部22、パケット送信処理部23は、タイマー部3と、Credit Counter格納用メモリ4、Quantum値格納用メモリ5、ActiveList格納用メモリ6、パケットデータ格納用メモリ7、処理待ちパケット情報格納用メモリ8、キュー情報格納用メモリ9およびパケット入力部10で構成される。   The packet scheduler of the present embodiment includes a packet transmission request reception processing unit 21, a scheduling processing unit 22, a packet transmission processing unit 23, a timer unit 3, a credit counter storage memory 4, a quantum value storage memory 5, and an ActiveList storage. A memory 6 for storing packet data, a memory 8 for storing waiting packet information, a memory 9 for storing queue information, and a packet input unit 10.

パケット送信要求受付処理部21は、通信装置1内のパケット入力部10からパケット送信要求を受け付ける処理を行う。送信要求を受け付けたパケットをパケットデータ格納用メモリ7に保存し、当該パケットに関する情報を処理待ちパケット情報格納用メモリ8に格納する。   The packet transmission request reception processing unit 21 performs processing for receiving a packet transmission request from the packet input unit 10 in the communication device 1. The packet that has received the transmission request is stored in the packet data storage memory 7, and information about the packet is stored in the processing-waiting packet information storage memory 8.

パケット入力部10は、自身が生成したパケット(または他の装置や他の機能部から受信したパケット)とパケットの送信開始を要求する送信要求とをパケットスケジューラのパケット送信要求受付処理部21へ入力する。   The packet input unit 10 inputs a packet generated by itself (or a packet received from another device or another functional unit) and a transmission request for requesting transmission start of the packet to the packet transmission request reception processing unit 21 of the packet scheduler. To do.

スケジューリング処理部22は、タイマー部3から一定周期で起動され、起動されたタイミングでパケットスケジューリング処理を行い、送信するパケットを決定して当該パケットの送信要求をパケット送信処理部23へ出力する。   The scheduling processing unit 22 is activated from the timer unit 3 at a fixed period, performs packet scheduling processing at the activated timing, determines a packet to be transmitted, and outputs a transmission request for the packet to the packet transmission processing unit 23.

パケット送信処理部23は、スケジューリング処理部22から受け取った送信要求に基づき、送信対象パケットをパケットデータ格納用メモリ7から読み出してネットワークインタフェース等へ送信する処理を行う。   Based on the transmission request received from the scheduling processing unit 22, the packet transmission processing unit 23 performs a process of reading the transmission target packet from the packet data storage memory 7 and transmitting it to the network interface or the like.

タイマー部3は、パケットスケジューリング処理を起動する周期を管理し、指定された時間(割込み発生周期)毎にスケジューリング処理部22を起動するためのCPUへの割込みを発生させる。割込み発生周期はスケジューリング処理部22が指定する。   The timer unit 3 manages the cycle for starting the packet scheduling process, and generates an interrupt to the CPU for starting the scheduling processing unit 22 every specified time (interrupt generation cycle). The interrupt generation cycle is designated by the scheduling processing unit 22.

パケットデータ格納用メモリ7は、パケットデータ本体を格納するメモリである。キュー情報格納用メモリ9は、本実施の形態のパケットスケジューリング処理で使用するQueue[i]の情報を格納するメモリである。処理待ちパケット情報格納用メモリ8は、パケット送信要求受付処理部21経由でパケットデータ格納用メモリ7に格納された、スケジューリング処理部22の処理待ち状態のパケットの情報を格納するメモリである。   The packet data storage memory 7 is a memory for storing the packet data body. The queue information storage memory 9 is a memory for storing information of Queue [i] used in the packet scheduling process of the present embodiment. The process waiting packet information storage memory 8 is a memory for storing information on packets waiting to be processed by the scheduling processing unit 22 stored in the packet data storage memory 7 via the packet transmission request reception processing unit 21.

Credit Counter格納用メモリ4は、本実施の形態のパケットスケジューリング処理で使用するCredit CounterであるCiの情報を格納するメモリである。Quantum値格納用メモリ5は、本実施の形態のパケットスケジューリング処理で使用するQuantumであるQiの情報を格納するメモリである。ActiveList格納用メモリ6は、本実施の形態のパケットスケジューリング処理で使用するActiveList[]の情報を格納するメモリである。   The credit counter storage memory 4 is a memory for storing information on Ci that is a credit counter used in the packet scheduling processing of the present embodiment. The Quantum value storage memory 5 is a memory that stores information on Qi that is a Quantum used in the packet scheduling process of the present embodiment. The ActiveList storage memory 6 is a memory for storing information of ActiveList [] used in the packet scheduling process of the present embodiment.

図2は、本実施の形態の通信装置におけるパケット送信処理手順の一例を示す図である。図2を用いて本実施の形態の通信装置におけるパケット送信処理を説明する。図2では、quantum値の変更のない通常のスケジューリング処理を示している。   FIG. 2 is a diagram illustrating an example of a packet transmission processing procedure in the communication apparatus according to the present embodiment. A packet transmission process in the communication apparatus according to the present embodiment will be described with reference to FIG. FIG. 2 shows a normal scheduling process without changing the quantum value.

本実施の形態では、フローiの最小quantum値をMinQiとするとき、フローiのquantum値であるQiをMinQi*2j(jは、0以上の整数)とする。同一時点では、各フローのjの値は同一とする。また、本実施の形態では、ActiveList[]の要素をチェックする時に使用するインデックスの増分値(スケジュールラウンド毎のRCの増分値)をstrideとよび、通常のスケジューリングプロセスでは2jをstrideとして使用する。また、jが取り得る最大の値をNとし、各フロー毎の最小quantum値の中の最小値をminQsysと表し、パケット最大長をLとするとき、配列ActiveList[]のサイズqを、
q=ceil((ceil(L/minQsys)+1)/(2N))*(2N
とする。また、現在のスケジューリングラウンドにおけるパケットの送信の後にQueue[i]が空でなく、Ciが0より小さい場合、Queue[i]は、ActiveList[(RC+ceil(加算が必要なcredit値/Qi)*2j) mod q]の最後に追加される。加算が必要なcredit値とは、Ciが0より小さい場合の−Ciである。通常のスケジューリング処理における1スケジューリングラウンドでの処理は、以上述べた点と、後述するquantum値の変更に関連する処理を除き、従来のEBRRと同様である。
In the present embodiment, when the minimum quantum value of flow i is MinQi, Qi that is the quantum value of flow i is MinQi * 2 j (j is an integer of 0 or more). At the same time, the j value of each flow is the same. In this embodiment, an index increment value (RC increment value for each schedule round) used when checking an element of ActiveList [] is called stride, and 2 j is used as stride in a normal scheduling process. . Further, when the maximum value that j can take is N, the minimum value among the minimum quantum values for each flow is expressed as minQsys, and the maximum packet length is L, the size q of the array ActiveList [] is
q = ceil ((ceil (L / minQsys) +1) / (2 N )) * (2 N )
And Further, when Queue [i] is not empty after transmission of a packet in the current scheduling round and Ci is smaller than 0, Queue [i] is ActiveList [(RC + ceil (credit value / Qi that needs addition) * 2 j ) Added to the end of mod q]. The credit value that needs to be added is -Ci when Ci is smaller than 0. The process in one scheduling round in the normal scheduling process is the same as the conventional EBRR except for the points described above and the process related to the change of the quantum value described later.

まず、通信装置1内のパケット入力部10が、パケットスケジューラに対してパケット送信要求を入力する(ステップS1)。パケット送信要求受付処理部21がパケット送信要求を受け付け、パケットデータ格納用メモリにパケットデータ本体を格納すると共に、処理待ちパケット情報格納用メモリ8に当該パケットの情報(例えば、パケット長、パケットが属するフロー決定に必要なヘッダ情報等)を既に格納済みの情報に追加して格納する(ステップS2)。   First, the packet input unit 10 in the communication device 1 inputs a packet transmission request to the packet scheduler (step S1). The packet transmission request acceptance processing unit 21 accepts a packet transmission request, stores the packet data body in the packet data storage memory, and information on the packet (for example, packet length, packet belongs to the processing-waiting packet information storage memory 8) Header information necessary for flow determination) is added to the already stored information and stored (step S2).

次に、タイマー部3は、一定時間が経過したか否かを管理し(ステップS3)、一定時間経過する(ステップS3 Yes)と、制御部2に対して割込みを発生させることによりスケジューリング処理部22の処理が起動され、スケジューリング処理が開始される(ステップS4)。スケジューリング処理部22は、処理待ちパケット情報格納用メモリ8にアクセスし、処理待ちパケット情報に基づいて後述のパケット到着処理によりパケットデータとフローを対応付けてフローごとにパケットをエンキューする(ステップS5)。なお、各フローに対応するキュー(Queue[i])は、パケットデータ格納用メモリ7に設けてもよいし、別途キュー部として設けてもよい。その後、スケジューリング処理部22は、後述の本実施の形態のEBRRスケジューリング処理を実施し(ステップS6)、EBRRスケジューリング処理の結果により、送信対象パケットが決定されるとともにその時点でのstrideの値であるCurStrideが決定される(ステップS7)。   Next, the timer unit 3 manages whether or not a certain time has elapsed (step S3), and when the certain time has elapsed (step S3 Yes), the control unit 2 generates an interrupt to generate a scheduling processing unit. The process 22 is started and the scheduling process is started (step S4). The scheduling processing unit 22 accesses the processing-waiting packet information storage memory 8 and enqueues the packet for each flow by associating the packet data with the flow by the packet arrival processing described later based on the processing-waiting packet information (step S5). . The queue (Queue [i]) corresponding to each flow may be provided in the packet data storage memory 7 or may be provided as a separate queue unit. Thereafter, the scheduling processing unit 22 performs EBRR scheduling processing according to the present embodiment, which will be described later (step S6). The transmission target packet is determined based on the result of the EBRR scheduling processing, and the value of stride at that time. CurStride is determined (step S7).

スケジューリング処理部22は、送信対象パケットをパケット送信処理部23へ通知し、パケット送信処理部23は、通知された送信対象パケットをパケットデータ格納用メモリ7から読み出して、送信する(ステップS8)。次に、スケジューリング処理部22は、RCにCurStrideを加算してRCの値を更新してそのスケジューリングラウンドの処理を終了し、ステップS3へ戻る。以上のように、一定時間ごとに、パケットスケジューラはパケットのスケジューリング処理を繰り返す。   The scheduling processing unit 22 notifies the transmission target packet to the packet transmission processing unit 23, and the packet transmission processing unit 23 reads the notified transmission target packet from the packet data storage memory 7 and transmits it (step S8). Next, the scheduling processing unit 22 adds CurStride to RC to update the value of RC, ends the scheduling round processing, and returns to step S3. As described above, the packet scheduler repeats the packet scheduling process at regular intervals.

図1では、制御部2として本実施の形態のパケットスケジューラの構成部を示しているが、実際には制御部2はパケットスケジューリング以外の他の処理も実施することが多い。EBRRでは、フローのquantum値の間の比率を変えずにquantum値を小さくすることで、フロー間の公平性改善とフローのバースト性の削減が可能である。一方で、quantum値を小さくすると計算量が増える。例えば、制御部2において他の処理による負荷が多い場合には、計算量の増加は望ましくないが、制御部2において他の処理による負荷が少ない場合には、計算量が増加してもフロー間の公平性改善とフローのバースト性の削減を優先させる方がよい場合もある。このように、quantum値の最適値は、制御部2における他の処理による負荷に依存して変化する。   In FIG. 1, the configuration unit of the packet scheduler according to the present embodiment is shown as the control unit 2, but actually, the control unit 2 often performs other processes besides the packet scheduling. In EBRR, it is possible to improve the fairness between flows and reduce the burstiness of flows by reducing the quantum value without changing the ratio between the quantum values of the flows. On the other hand, reducing the quantum value increases the amount of calculation. For example, when the load due to other processing is large in the control unit 2, an increase in calculation amount is not desirable, but when the load due to other processing is small in the control unit 2, even if the calculation amount increases, It may be better to prioritize improving fairness and reducing flow burstiness. Thus, the optimum value of the quantum value changes depending on the load caused by other processing in the control unit 2.

本実施の形態では、以下に示す手順により、スケジューリング処理の実行中に、フローのquantum値の間の比率を変えずにquantum値を変更可能とする。上述のように、本実施の形態では、QiをMinQi*2jとしており、quantum値を変更する際には、jの値を変更する。 In the present embodiment, according to the following procedure, the quantum value can be changed without changing the ratio between the flow quantum values during execution of the scheduling process. As described above, in this embodiment, it has a MinQi * 2 j and Qi, when changing the quantum value changes the value of j.

quantum値を小さくする場合、jをそれまでのjより小さい値として決定し、スケジューリング処理部22に対して、新たなj(または新たなstrideである2j)を指定してquantum値の更新を指示する。quantum値の更新の指示は、図示しない通信装置内の処理部が制御部2の負荷に応じて自動で生成するようにしてもよいし、運用者等からの入力を受け付けてスケジューリング処理部22に入力されるようにしてもよい。 When the quantum value is reduced, j is determined as a value smaller than the previous j, and a new j (or new stride 2 j ) is designated to the scheduling processing unit 22 to update the quantum value. Instruct. An instruction to update the quantum value may be automatically generated by a processing unit in the communication device (not shown) according to the load of the control unit 2 or may be input to the scheduling processing unit 22 in response to an input from an operator or the like. It may be input.

quantum値を小さくする指示があった場合、スケジューリング処理部22は、Qiを、新たなjに対応する値(MinQi*2j)に更新する。また、stride値を新たなjに対応する2jの値に更新する。quantum値を小さくし、新しい2jの値が古い(それまでの)2jの値より小さい場合、古いstride値(古い2jの値)は新しい2jの倍数となる。このため、新しい2jをstride値として使ってチェックされるActiveList[]の要素は、古いstride値でアクセスされたActiveList[]の要素を含む。よって、stride値を直ちに(quantum値を小さくする指示があったスケジューリングラウンドで)新しい2jの値に更新可能である。 When there is an instruction to reduce the quantum value, the scheduling processing unit 22 updates Qi to a value (MinQi * 2 j ) corresponding to the new j. Also, the stride value is updated to a value of 2 j corresponding to the new j. If the quantum value is decreased and the new 2 j value is smaller than the old (previous) 2 j value, the old stride value (old 2 j value) is a multiple of the new 2 j . For this reason, the elements of ActiveList [] that are checked using the new 2 j as the stride value include the elements of ActiveList [] that are accessed with the old stride value. Therefore, the stride value can be immediately updated to a new value of 2 j (in a scheduling round in which there has been an instruction to reduce the quantum value).

quantum値を大きくする場合、jをそれまでのjより大きい値として決定し、スケジューリング処理部22に対して、新たなj(または新たなstrideである2j)を指定してquantum値の更新を指示する。 When the quantum value is increased, j is determined as a value larger than the previous j, and a new j (or new stride 2 j ) is specified to the scheduling processing unit 22 to update the quantum value. Instruct.

quantum値を大きくする指示があった場合、スケジューリング処理部22は、Qiを、新たなjに対応する値(MinQi*2j)に直ちに(quantum値を小さくする指示があったスケジューリングラウンドで)更新する。そして、スケジューリング処理部22は、quantum値が変更された場合のActiveList[]のインデックス値を記録し、スケジューリング処理でアクセスするActiveList[]のインデックス値が記録したインデックス値と等しくなるまでの間は、古いstride値を使い続ける。Queue[i]からパケットを送信した後に、Queue[i]からパケット送信可能となるスケジューリングラウンド(ActiveList[]のインデックス値)を計算する時に、以下の式(1)を用いる。
index=((floor((RC−1)/新しい2j)+1)*(新しい2j)+
ceil(加算が必要なCredit値/Qi)*(新しい2j)) mod q …(1)
When there is an instruction to increase the quantum value, the scheduling processing unit 22 immediately updates Qi to a value corresponding to the new j (MinQi * 2 j ) (in the scheduling round in which there is an instruction to decrease the quantum value). To do. Then, the scheduling processing unit 22 records the index value of the ActiveList [] when the quantum value is changed, and until the index value of the ActiveList [] accessed by the scheduling process becomes equal to the recorded index value, Continue to use the old stride value. The following formula (1) is used when calculating a scheduling round (index value of ActiveList []) that enables packet transmission from Queue [i] after transmitting the packet from Queue [i].
index = ((floor ((RC-1) / new 2 j ) +1) * (new 2 j ) +
ceil (Credit value that needs addition / Qi) * (new 2 j )) mod q (1)

quantum値が増やされ、新しい2jの値が古い2jの値より大きい場合、古いstride値(古い2jの値)でアクセスされていた全てのActiveList[]の要素が1度はアクセスされるまでの間は、古いstride値のままとして上記の様に特別な処理が必要となる。上記式(1)の最初の部分は、インデックス値が新しい2jの倍数となる様に、新しい2jの値で丸めた場合の現在のインデックス値を求めている。この様にすることで、各フローに対して同一長さの異なるスケジューリングインターバルでのCredit Counterの増加量をほぼ同じにすることができる。 quantum value is incremented, if the value of the new 2 j is greater than the value of the old 2 j, the elements of the old stride values for all has been accessed (the old value of 2 j) ActiveList [] is access once Until then, the old stride value remains as it is and special processing is required as described above. The first part of the above equation (1) obtains the current index value when rounded by the new 2 j value so that the index value is a multiple of the new 2 j . In this way, the amount of increase in Credit Counter can be made substantially the same for each flow at different scheduling intervals of the same length.

図3−1〜3−5に、本実施の形態のスケジューリング処理を実行するためのアルゴリズムの一例を示す図である。図3−1〜3−5は一例であり、本実施の形態のスケジューリング処理を実行するためのアルゴリズムは、上述のスケジューリング処理を実行できるアルゴリズムであれば図3−1〜3−5の例に限定されない。   FIGS. 3-1 to 3-5 are diagrams illustrating an example of an algorithm for executing the scheduling process of the present embodiment. FIGS. 3-1 to 3-5 are examples, and the algorithm for executing the scheduling process according to the present embodiment is an example of FIGS. 3-1 to 3-5 as long as the algorithm can execute the above-described scheduling process. It is not limited.

図3−1〜3−5におけるSystemInit()初期化の処理であり、パケット送信処理の開始時に実行される。maxExponentは、上述のN(jの最大値)に対応し、curExponentは、上述のjに対応し、minQuantumは上述のminQsysに対応し、macPacketSizeは上述のLに対応する。FlowInit()は、新たなフローが生じた場合に実行される。   This is SystemInit () initialization processing in FIGS. 3-1 to 3-5, and is executed at the start of packet transmission processing. maxExponent corresponds to the above-described N (the maximum value of j), curExponent corresponds to the above-described j, minQuantum corresponds to the above-described minQsys, and macPacketSize corresponds to the above-described L. FlowInit () is executed when a new flow occurs.

ChangeQuantum()は、quantum値を変更指示があった際に実行される。newStrideは、新しい2jに対応する。NeedToStartAdjustは、quantum値が大きくなる変更があった際の上述の特別な処理を実施するか否かを示す変数であり、NeedToStartAdjustは初期値は0であり、NeedToStartAdjustが1の場合(newStrideがCurStrideより大きい場合に1に設定される)、特別な処理を実施することを示す。AdjustInProgressは、quantum値が大きくなる変更があった際の上述の特別な処理を実施中であるか否かを示す変数であり、初期値は0であり、AdjustInProgressが1の場合、特別な処理を実施中であることを示す。 ChangeQuantum () is executed when there is an instruction to change the quantum value. newStride corresponds to the new 2 j . NeedToStartAdjust is a variable that indicates whether or not to execute the above-mentioned special processing when there is a change that increases the quantum value. NeedToStartAdjust is an initial value of 0 and NeedToStartAdjust is 1 (newStride is from CurStride) Set to 1 if large) to indicate that special processing is to be performed. AdjustInProgress is a variable that indicates whether or not the above-mentioned special processing is being performed when there is a change that increases the quantum value. The initial value is 0, and when AdjustInProgress is 1, special processing is performed. Indicates that it is in progress.

PacketArrival()は、図2で説明したパケット到着処理に対応する処理であり、従来のECRRと同様である。   PacketArrival () is a process corresponding to the packet arrival process described with reference to FIG. 2, and is the same as the conventional ECRR.

EBRRScheduler2()は、図2で説明したEBRRスケジューリング処理に対応する処理であり、従来のEBRRから拡張した処理に対応する。EBRRScheduler2()のなかで、上述の特別な処理が実施される。NewRound()は、RCを更新する処理である。   EBRRScheduler2 () is a process corresponding to the EBRR scheduling process described with reference to FIG. 2, and corresponds to a process extended from the conventional EBRR. The special processing described above is performed in EBRRScheduler2 (). NewRound () is a process for updating RC.

以上のように、本実施の形態では、QiをMinQi*2jとし、ActiveList[]の要素をチェックする時に使用するインデックスの増分値であるstrideを2jとする。そして、quantum値を小さくする場合はjの値を小さくし、Qiおよびstrideを新しいjに対応する値に直ちに更新し、quantum値を大きくする場合はjの値を大きくし、Qiを新しいjに対応する値に直ちに更新し、strideについては、すぐには更新せず、quantum値が変更された場合のActiveList[]のインデックス値を記録し、スケジューリング処理でアクセスするActiveList[]のインデックス値が記録したインデックス値となった後にstrideを更新するようにした。このため、スケジューリング処理をCPU等の制御部によりソフトウェアで実現する際に、制御部が実行する他の処理の負荷状況に合わせて、各フロー間の比率を変えずにquantum値を変更することが可能となる。 As described above, in this embodiment, Qi is set to MinQi * 2 j, and stride that is an increment value of an index used when checking an element of ActiveList [] is set to 2 j . When the quantum value is decreased, the value of j is decreased, and Qi and stride are immediately updated to values corresponding to the new j. When the quantum value is increased, the value of j is increased, and Qi is changed to the new j. Updates to the corresponding value immediately, does not update stride immediately, records the ActiveList [] index value when the quantum value is changed, and records the ActiveList [] index value accessed in the scheduling process The stride is updated after the index value is reached. For this reason, when the scheduling process is realized by software by a control unit such as a CPU, the quantum value can be changed without changing the ratio between the flows in accordance with the load status of other processes executed by the control unit. It becomes possible.

また、同一スケジューリングラウンドで、キューが空でかつ送信可能状態(Credit Counterが正の値)である複数のフローとして受信したパケットについて、パケットサイズが小さいものを先に送信することができる。   Further, among packets received as a plurality of flows in the same scheduling round where the queue is empty and transmission is possible (Credit Counter is a positive value), packets having a small packet size can be transmitted first.

以上のように、本発明にかかるパケットスケジューリング方法および通信装置は、ある時点で送信するパケットを決定するパケットスケジューリングを行う通信装置に有用であり、特に、パケットスケジューリングをソフトウェアで実行する通信装置に適している。   As described above, the packet scheduling method and the communication apparatus according to the present invention are useful for a communication apparatus that performs packet scheduling for determining a packet to be transmitted at a certain point in time, and particularly suitable for a communication apparatus that executes packet scheduling by software. ing.

1 通信装置
2 制御部
3 タイマー部
4 Credit Counter格納用メモリ
5 Quantum(quantum)値格納用メモリ
6 ActiveList格納用メモリ
7 パケットデータ格納用メモリ
8 処理待ちパケット情報格納用メモリ
9 キュー情報格納用メモリ
10 パケット入力部
21 パケット送信要求受付処理部
22 スケジューリング処理部
23 パケット送信処理部
DESCRIPTION OF SYMBOLS 1 Communication apparatus 2 Control part 3 Timer part 4 Credit Counter storage memory 5 Quantum (quantum) value storage memory 6 ActiveList storage memory 7 Packet data storage memory 8 Processing waiting packet information storage memory 9 Queue information storage memory 10 Packet input unit 21 Packet transmission request reception processing unit 22 Scheduling processing unit 23 Packet transmission processing unit

Claims (4)

パケット送信を行う通信装置において、EBRR方式を用いてスケジュールラウンドごとに送信するパケットを決定するパケットスケジューリング方法であって、
iを、フローを識別する識別番号とし、EBRR方式におけるCredit Counterの1スケジューリングランドあたりの増分値であるquantum値をQiとし、jを0以上の整数とし、同一時点ではjの値はフロー間で同一として、Qiをフローiの最小quantum値に2jを乗じた値として設定するquantum値設定ステップと、
jの最大値をNとし、EBRR方式におけるQueue[i]のリストであるActiveList[]の要素をチェックする際に使用するインデックス値の1スケジューリングランドあたりの増分値であるstrideを2jとし、各フローの最小quantum値のうちの最小値をminQsysとするとき、配列ActiveList[]のサイズqを、q=ceil((ceil(L/minQsys)+1)/(2N))*(2N)とする配列サイズ設定ステップと、
EBRR方式に従って、送信要求のあったパケットをフローiのパケットに対応するパケットデータ格納用メモリのキューであるQueue[i]に格納するとともに配列ActiveList[]にQueue[i]を追加するデータ格納ステップと、
現在のスケジューリングランドをRCとするとき、当該スケジュールラウンドでのQueue[i]の送信後に、Credit Counterが1より小さくかつQueue[i]が空でない場合、Queue[i]をActiveList[(RC+ceil(加算が必要なcredit値/Qi)*2j) mod q]の最後に追加するリスト追加ステップと、
quantum値を小さくする場合、jの値をこれまでのjの値より小さい新たな値とし、新たなjの値を用いて、Qiをフローiの最小quantum値に2jを乗じた値に更新するとともにstride値を2jに更新する更新ステップと、
を含むことを特徴とするパケットスケジューリング方法。
A packet scheduling method for determining a packet to be transmitted for each schedule round using an EBRR method in a communication apparatus that performs packet transmission,
i is an identification number for identifying a flow, a quantum value that is an increment value per scheduling land of a Credit Counter in the EBRR method is Qi, j is an integer of 0 or more, and the value of j is the same between flows at the same time. A quantum value setting step for setting Qi as a value obtained by multiplying the minimum quantum value of flow i by 2 j ,
The maximum value of j is N, and the stride that is the increment value per scheduling land of the index value used when checking the elements of ActiveList [] that is the list of Queue [i] in the EBRR method is 2 j , When the minimum value of the minimum quantum values of the flow is minQsys, the size q of the array ActiveList [] is q = ceil ((ceil (L / minQsys) +1) / (2 N )) * (2 N ) An array size setting step,
A data storage step of storing a packet requested for transmission in Queue [i], which is a queue of a packet data storage memory corresponding to the packet of flow i, and adding Queue [i] to the array ActiveList [] according to the EBRR method When,
When RC is the current scheduling land, if Credit Counter is less than 1 and Queue [i] is not empty after transmission of Queue [i] in the schedule round, Queue [i] is set to ActiveList [(RC + ceil (addition A credit value / Qi) * 2 j ) mod q] to add to the end of the list addition step;
When the quantum value is reduced, the value of j is changed to a new value smaller than the previous value of j, and Qi is updated to the value obtained by multiplying the minimum quantum value of flow i by 2 j using the new value of j. And updating the stride value to 2 j ,
A packet scheduling method comprising:
quantum値を大きくする場合、jの値をこれまでのjの値より大きい新たな値とし、新たなjの値を用いて、Qiをフローiの最小quantum値に2jを乗じた値に更新するとともに、新たなjの値に基づくActiveList[]のインデックス値を記憶するquantum更新ステップと、
quantum値を大きくする場合、現在のスケジューリングラウンドにおいてアクセスするActiveList[]のインデックス値と記憶しているインデックス値とが等しくなるとstride値を新たなjに基づく2jに更新し、strideの更新までは更新前のstrideを用いてActiveList[]のインデックス値をスケジュールラウンドごとに更新するstride更新ステップと、
をさらに含むことを特徴とする請求項1に記載のパケットスケジューリング方法。
When the quantum value is increased, the value of j is set to a new value larger than the value of j so far, and the new value of j is used to update Qi to the value obtained by multiplying the minimum quantum value of flow i by 2 j. And a quantum update step for storing an index value of ActiveList [] based on a new value of j;
When increasing the quantum value, if the index value of ActiveList [] accessed in the current scheduling round becomes equal to the stored index value, the stride value is updated to 2 j based on the new j. A stride update step for updating the index value of ActiveList [] using the stride before the update every schedule round;
The packet scheduling method according to claim 1, further comprising:
EBRR方式を用いてスケジュールラウンドごとに送信するパケットを決定する通信装置であって、
iを、フローを識別する識別番号とし、送信要求のあったパケットをフローiのパケットに格納するQueue[i]をフローごとに備えるキュー部と、
EBRR方式におけるCredit Counterの1スケジューリングランドあたりの増分値であるquantum値をQiとし、jを0以上の整数とし、同一時点ではjの値はフロー間で同一として、Qiをフローiの最小quantum値に2jを乗じた値として設定し、jの最大値をNとし、EBRR方式におけるQueue[i]のリストであるActiveList[]の要素をチェックする際に使用するインデックス値の1スケジューリングランドあたりの増分値であるstrideを2jとし、各フローの最小quantum値のうちの最小値をminQsysとするとき、配列ActiveList[]のサイズqを、q=ceil((ceil(L/minQsys)+1)/(2N))*(2N)として設定し、EBRR方式に従って、送信要求のあったパケットをフローiのパケットに対応するパケットデータ格納用メモリのキューであるQueue[i]に格納するとともに配列ActiveList[]にQueue[i]を追加し、現在のスケジューリングランドをRCとするとき、当該スケジュールラウンドでのQueue[i]の送信後にCredit Counterが1より小さく、かつQueue[i]が空でない場合、Queue[i]をActiveList[(RC+ceil(加算が必要なcredit値/Qi)*2j) mod q]の最後に追加するスケジューリング処理部と、
を備え、
前記スケジューリング処理部は、quantum値を小さくする場合、jの値をこれまでのjの値より小さい新たな値とし、新たなjの値を用いて、Qiをフローiの最小quantum値に2jを乗じた値に更新するとともにstride値を2jに更新することを特徴とする通信装置。
A communication device that determines a packet to be transmitted for each schedule round using an EBRR method,
i is an identification number for identifying a flow, and a queue unit that includes a Queue [i] for storing a packet for which transmission is requested in a packet of the flow i for each flow;
In the EBRR system, the credit counter increment value per scheduling land is Qi, j is an integer greater than or equal to 0, j is the same between flows at the same time, and Qi is the minimum quantum value of flow i. to set as a value obtained by multiplying the 2 j, the maximum value of j is N, a list of Queue [i] in EBRR method ActiveList [] elements per scheduling lands index value to be used when checking the When the stride that is the increment value is 2 j and the minimum value of the minimum quantum values of each flow is minQsys, the size q of the array ActiveList [] is set to q = ceil ((ceil (L / minQsys) +1) / (2 N )) * (2 N ), and according to the EBRR method, a packet for which a transmission request has been made is queued in a queue for storing packet data corresponding to the packet of the flow i. i] and adding Queue [i] to the array ActiveList [] and setting the current scheduling land as RC, the Credit Counter is less than 1 after transmission of Queue [i] in the schedule round, and the Queue If [i] is not empty, the scheduling processing unit adds Queue [i] to the end of ActiveList [(RC + ceil (credit value that needs to be added / Qi) * 2 j ) mod q];
With
Wherein the scheduling processing unit, to reduce the quantum value, the value of j to a value smaller than the new value of j so far, by using the new value of j, 2 a Qi to the minimum quantum value of the flow i j communication device and updates the stride value to 2 j and updates the value obtained by multiplying.
前記スケジューリング処理部は、quantum値を大きくする場合、jの値をこれまでのjの値より大きい新たな値とし、新たなjの値を用いて、Qiをフローiの最小quantum値に2jを乗じた値に更新するとともに、新たなjの値に基づくActiveList[]のインデックス値を記憶し、現在のスケジューリングラウンドにおいてアクセスするActiveList[]のインデックス値と記憶しているインデックス値とが等しくなるとstride値を新たなjに基づく2jに更新し、strideの更新までは更新前のstrideを用いてActiveList[]のインデックス値をスケジュールラウンドごとに更新することを特徴とする請求項3に記載の通信装置。 Wherein the scheduling processing unit, when increasing the quantum value, the value of j to a value greater than the new value of j so far, by using the new value of j, 2 a Qi to the minimum quantum value of the flow i j And the index value of ActiveList [] based on the new j value is stored, and the index value of ActiveList [] accessed in the current scheduling round becomes equal to the stored index value. The stride value is updated to 2 j based on a new j, and the index value of ActiveList [] is updated for each schedule round using the stride before the update until stride is updated. Communication device.
JP2012105370A 2012-05-02 2012-05-02 Packet scheduling method and communication device Pending JP2013236124A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012105370A JP2013236124A (en) 2012-05-02 2012-05-02 Packet scheduling method and communication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012105370A JP2013236124A (en) 2012-05-02 2012-05-02 Packet scheduling method and communication device

Publications (1)

Publication Number Publication Date
JP2013236124A true JP2013236124A (en) 2013-11-21

Family

ID=49761927

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012105370A Pending JP2013236124A (en) 2012-05-02 2012-05-02 Packet scheduling method and communication device

Country Status (1)

Country Link
JP (1) JP2013236124A (en)

Similar Documents

Publication Publication Date Title
CN107579926B (en) QoS setting method of Ceph cloud storage system based on token bucket algorithm
US9575691B2 (en) Scheduling user requests in a distributed resource system having a plurality of schedulers and coordinators
US20180159802A1 (en) Data enqueuing method, data dequeuing method, and queue management circuit
JP4338285B2 (en) Packet scheduling method and apparatus
Ahn et al. Competitive partial computation offloading for maximizing energy efficiency in mobile cloud computing
WO2015096362A1 (en) Method and apparatus for adding token in traffic shaping
CN111143036A (en) Virtual machine resource scheduling method based on reinforcement learning
Shen et al. Goodbye to fixed bandwidth reservation: Job scheduling with elastic bandwidth reservation in clouds
JP5710006B2 (en) Method and apparatus for scheduling communication traffic in an ATCA based device
CN109905331B (en) Queue scheduling method and device, communication equipment and storage medium
KR20120055946A (en) Method and apparatus for packet scheduling based on allocating fair bandwidth
US9628398B1 (en) Queuing methods and apparatus in a network device
US9128755B2 (en) Method and apparatus for scheduling resources in system architecture
WO2017032075A1 (en) Quality of service multiplexing method and device, and computer storage medium
JP2013236124A (en) Packet scheduling method and communication device
US8869171B2 (en) Low-latency communications
EP1757036A1 (en) Method and system for scheduling synchronous and asynchronous data packets over the same network
CN113225263A (en) Flow request processing method and device and network chip
CN116521234B (en) Method and device for polling and scheduling processor pipeline instructions
JP7122871B2 (en) VEHICLE GATEWAY DEVICE, METHOD AND PROGRAM
JP3952058B2 (en) Transaction load distribution method and method based on estimated expansion rate, and computer-readable recording medium
US20190121664A1 (en) Method, apparatus and computer-readable medium for application scheduling
JP2013239910A (en) Communication device
CN105024943B (en) Method and storage medium for selecting a waiting queue from which to extract a transmission data segment
CN116828510B (en) Power distribution method and device based on Internet of things