JP5303593B2 - パケット送信制御装置及びパケット送信制御方法 - Google Patents

パケット送信制御装置及びパケット送信制御方法 Download PDF

Info

Publication number
JP5303593B2
JP5303593B2 JP2011058191A JP2011058191A JP5303593B2 JP 5303593 B2 JP5303593 B2 JP 5303593B2 JP 2011058191 A JP2011058191 A JP 2011058191A JP 2011058191 A JP2011058191 A JP 2011058191A JP 5303593 B2 JP5303593 B2 JP 5303593B2
Authority
JP
Japan
Prior art keywords
packet
queue
interface
priority
interface queue
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.)
Expired - Fee Related
Application number
JP2011058191A
Other languages
English (en)
Other versions
JP2012195766A (ja
Inventor
享弘 山本
俊介 猿渡
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.)
Core Corp
Original Assignee
Core 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 Core Corp filed Critical Core Corp
Priority to JP2011058191A priority Critical patent/JP5303593B2/ja
Publication of JP2012195766A publication Critical patent/JP2012195766A/ja
Application granted granted Critical
Publication of JP5303593B2 publication Critical patent/JP5303593B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、移動通信端末上のアプリケーションによって生成されたパケットの送信順序を優先度に応じて制御するパケット送信制御装置及びパケット送信制御方法に関する。
パーソナルコンピュータ(PC)では、オンラインゲームやコンテンツアップロード/ダウンロード、プログラムアップデート、P2Pなど複数のアプリケーションによって同時に通信を行われることが多い。移動通信端末でも高機能化に伴い、近年ではウェブの閲覧中にメールの着信問い合わせが実行されるなど複数のアプリケーションが同時に通信を行う状況が増加傾向にある。
しかしながら、移動通信端末では伝送容量が小さいために、バックグラウンドで通信が行われるとスループットが低下して、フォアグラウンドで行われるウェブページの閲覧などの通信に大きな遅延をもたらす。そのため、複数のアプリケーションが同時に通信を行ってもユーザの操作性に影響を与えないようにするには、移動通信端末内でのパケットの優先制御が必要となる。
ルータなどの通信専用端末ではパケットの優先制御がハードウェアによって実現されているが、多様な用途で利用される移動通信端末では通信のプロトコルスタックがソフトウェアによって構成されることから、パケットの優先制御もソフトウェアで実現する必要がある。ソフトウェアは所望の動作をCPUによる逐次処理によって実現することから、処理の実行順序がパケットの優先順位と一致しなければパケットの優先度逆転が発生して高優先度の通信に遅延が生じる(例えば、非特許文献1)。
H. Tokuda et al., "Priority Inversions in Real-Time Communication",IEEE RTSS, 1989年
上述したように、移動通信端末上で複数のアプリケーションによって同時に通信を行うと、フォアグラウンドで行われる通信の遅延やスループットの悪化を招く。低優先度のパケットが先に移動通信端末の送信キューから通信路上に送出されてしまい、当該低優先度のパケットの送信が完了するまで高優先度のパケットが通信路上に送出されずに滞留するためである。
そこで、本発明は、このような状況に鑑みてなされたものであり、移動通信端末など、通信に関する大部分の処理をソフトウェアで実現する場合において、高優先度パケットの遅延やスループットの悪化を効果的に抑制し得るパケット送信制御装置及びパケット送信制御方法の提供を目的とする。
本発明の第1の特徴は、ネットワークインタフェース毎に用意されたインタフェースキュー(インタフェースキュー20)と、デバイスが有する送信キュー(送信キュー30)とを有し、アプリケーションタスク(アプリケーションタスク10H, 10M, 10L)に基づいて生成された低優先度パケット(例えば、パケットPL)及びアプリケーションタスクに基づいて生成され、前記低優先度パケットよりも送信すべき優先度が高い高優先度パケット(例えば、パケットPH)の送信順序を制御するパケット送信制御装置(パケット送信制御装置1)であって、前記インタフェースキューは、前記低優先度パケットを格納する第1インタフェースキュー(例えば、インタフェースキュー20L)と、前記高優先度パケットを格納し、前記第1インタフェースキューから独立した第2インタフェースキュー(例えばインタフェースキュー20H)とを少なくとも含み、前記送信キューは、前記第1インタフェースキューから出力された前記低優先度パケット、及び前記第2インタフェースキューから出力された前記高優先度パケットを格納可能であり、ハードウェア(通信コントローラ40)からのハードウェア割り込みを処理するハードウェア割り込みハンドラ(ハードウェア割り込みハンドラ35)またはタスクスケジューラ(タスクスケジューラ150)から呼び出され、前記インタフェースキューに対するソフトウェア割り込みハンドラ(ソフトウェア割り込みハンドラ25)を起動するソフトウェア割り込みスケジューラ(ソフトウェア割り込みスケジューラ100)を備え、前記ソフトウェア割り込みスケジューラは、前記ハードウェア割り込みハンドラまたはタスクの切り替えを行うタスクスケジューラから起動された場合に、前記優先度に基づいて、前記第1インタフェースキューまたは前記第2インタフェースキューの何れに対するソフトウェア割り込みハンドラを起動するかを決定することを要旨とする。
本発明の第1の特徴において、前記ソフトウェア割り込みスケジューラは、前記優先度と、前記第1インタフェースキューへの前記低優先度パケットの格納状況及び前記第2インタフェースキューへの前記高優先度パケットの格納状況に基づいて、前記第1インタフェースキューまたは前記第2インタフェースキューの何れに対するソフトウェア割り込みハンドラを起動するかを決定し、前記第2インタフェースキューは、前記ソフトウェア割り込みスケジューラによる前記第2インタフェースキューに対するソフトウェア割り込みに基づいて、前記高優先度パケットを前記送信キューに出力し、前記第1インタフェースキューは、前記ソフトウェア割り込みスケジューラによって前記第1インタフェースキューに対するソフトウェア割り込みに基づいて、前記低優先度パケットを前記送信キューに出力することが好ましい。
本発明の第1の特徴において、前記ソフトウェア割り込みスケジューラは、前記アプリケーションタスクに基づいて生成された前記低優先度パケット及び前記高優先度パケットの優先度を記憶し、記憶された前記優先度に基づいて、起動すべきソフトウェア割り込みハンドラを決定することが好ましい。
本発明の第1の特徴において、前記送信キューの容量は、前記低優先度パケットまたは前記高優先度パケットが前記インタフェースキューから前記送信キューに格納されるまでの間に、前記ハードウェアが通信路上に送出可能なデータサイズまで削減されていることが好ましい。
本発明の第2の特徴は、ネットワークインタフェース毎に用意されたインタフェースキューと、デバイスが有する送信キューとを有し、アプリケーションタスクに基づいて生成された低優先度パケット及びアプリケーションタスクに基づいて生成され、前記低優先度パケットよりも送信すべき優先度が高い高優先度パケットの送信順序を制御するパケット送信制御方法であって、前記インタフェースキューは、前記低優先度パケットを格納する第1インタフェースキューと、前記高優先度パケットを格納する第2インタフェースキューとを少なくとも含み、前記送信キューが、前記第1インタフェースキューから出力された前記低優先度パケット、及び前記第2インタフェースキューから出力された前記高優先度パケットを格納するステップと、ハードウェアからのハードウェア割り込みを処理するハードウェア割り込みハンドラまたはタスクの切り替えを行うタスクスケジューラからの呼び出しに基づいて、前記インタフェースキューに対するソフトウェア割り込みハンドラを起動するステップとを有し、前記ソフトウェア割り込みハンドラを起動するステップでは、前記ハードウェア割り込みハンドラまたはタスクスケジューラから起動された場合に、前記優先度に基づいて、前記第1インタフェースキューまたは前記第2インタフェースキューの何れに対するソフトウェア割り込みハンドラハンドラを起動するかを決定することを要旨とする。
本発明の特徴によれば、移動通信端末など、通信プロトコルに関する大部分の処理をソフトウェアによって実現する場合において、高優先度パケットの遅延やスループットの悪化を効果的に抑制し得るパケット送信制御装置及びパケット送信制御方法を提供することができる。
本発明の実施形態に係るパケット送信制御装置1の機能ブロック構成図である。 本発明の実施形態に係るパケット送信制御装置1によるパケットの送信順序の制御動作フローを示す図である。 本発明の実施形態に係る送信キュー30に空き容量がある場合におけるアプリケーションタスク10H, 10M, 10Lの動作概念を示す図である。 本発明の実施形態に係る送信キュー30に空き容量がない場合におけるソフトウェア割り込みスケジューラ100の動作概念を示す図である。 ソフトウェアによってパケットの優先制御を実現する上で課題となる“パケットの優先度と実行単位の不一致”によるパケットの優先度逆転の説明図である。 ソフトウェアによってパケットの優先制御を実現する上で課題となる“タスクと割り込みハンドラの2つの実行単位”によるパケットの優先度逆転の説明図である。 本実施形態に係るパケット送信制御装置1のように、割り込みを使用したパケットの優先制御による有効性の根拠について説明する図である。
次に、本発明に係るパケット送信制御装置及びパケット送信制御方法の実施形態について、図面を参照しながら説明する。なお、以下の図面の記載において、同一または類似の部分には、同一または類似の符号を付している。ただし、図面は模式的なものであり、各寸法の比率などは現実のものとは異なることに留意すべきである。
したがって、具体的な寸法などは以下の説明を参酌して判断すべきである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれ得る。
(1)パケット送信制御装置の機能ブロック構成
図1は、本実施形態に係るパケット送信制御装置1の機能ブロック構成図である。図1に示すように、パケット送信制御装置1は、インタフェースキュー20、ソフトウェア割り込みハンドラ25、送信キュー30、ハードウェア割り込みハンドラ35、通信コントローラ40、ソフトウェア割り込みスケジューラ100及びタスクスケジューラ150を備える。パケット送信制御装置1は、例えば、携帯電話機などの移動通信端末に実装される。パケット送信制御装置1は、パケットの優先制御を実現する。
パケット送信制御装置1は、アプリケーションタスク10H, 10M, 10Lに基づいて生成されたパケット(具体的には、パケットPH, PM, PL)の送信順序を制御する。本実施形態では、説明の簡略化のため当該パケットを送信すべき優先度を3段階(高・中・低)としている。
アプリケーションタスク10Hは、移動通信端末のソフトウェアにおいて、アプリケーション毎の処理が行われるユーザ空間とオペレーティングシステムによって共通の処理が行われるカーネル空間上で処理が実行され、高い優先度を有する。例えば、ウェブページの閲覧などユーザの操作によってフォアグラウンドで実行されているタスクが該当する。アプリケーションタスク10M及びアプリケーションタスク10Lも移動通信端末に実装されたユーザ空間とカーネル空間で動作するタスクであるが、アプリケーションタスク10Mの優先度は、アプリケーションタスク10Hよりも低い。また、アプリケーションタスク10Lの優先度は、アプリケーションタスク10Mよりも低い。アプリケーションタスク10L(またはアプリケーションタスク10M)は、例えば、ソフトウェアの更新やメールの着信問い合わせなどユーザがアプリケーションを操作しているバックグラウンドで通信を行うタスクである。
パケットPHは、アプリケーションタスク10Hに基づいて生成されたパケット(高優先度パケット)であり、パケットPL, PMよりも送信すべき優先度が高い。パケットPMはアプリケーションタスク10Mに基づいて生成されたパケットであり、パケットPLはアプリケーションタスク10Lに基づいて生成されたパケット(低優先度パケット)である。
インタフェースキュー20は、移動通信端末が備えるネットワークインタフェース(例えば、3G方式やLTE(Long Term Evolution)方式、無線LAN)毎に用意される。インタフェースキュー20は、アプリケーションタスク10H, 10M, 10Lと対応するように、インタフェースキュー20H, 20M, 20Lによって構成される。
すなわち、インタフェースキュー20Hはアプリケーションタスク10Hによって生成されたパケットPHを格納する。同様に、インタフェースキュー20Mはアプリケーションタスク10Mによって生成されたパケットPMを格納し、インタフェースキュー20Lはアプリケーションタスク10Lによって生成されたパケットPLを格納する。本実施形態において、インタフェースキュー20Lは、低優先度パケット(パケットPL)を格納する第1インタフェースキューを構成する。また、インタフェースキュー20Hは、高優先度パケット(パケットPH)を格納する第2インタフェースキューを構成する。
インタフェースキュー20H, 20M, 20Lは、他のインタフェースキューから独立しており、インタフェースキュー毎にソフトウェア割り込みハンドラ25が割り当てられる。
送信キュー30は、移動通信端末に搭載されているデバイス、具体的には、通信コントローラ40などのハードウェア(あるいはデバイスドライバなどのソフトウェア)が有するキュー(バッファ)である。送信キュー30は、インタフェースキュー20H, 20M, 20Lから出力されたパケットPH, PM, PLを格納することができる。送信キュー30は、送信キュー30にパケット(パケットPH, PM, PL)を格納できる空き容量が発生した場合、ハードウェア割り込みハンドラ35(Top Half)を起動する。
なお、送信キュー30で送信待ちにある低優先度パケットは高優先度パケットが遅延する要因となることから、送信キュー30の容量は、インタフェースキュー20H, 20M, 20Lから送信キュー30にパケットが格納されるまでの間に、通信コントローラ40が通信路上に送出可能なデータサイズまで削減することが好ましい。移動通信端末では、ソフトウェアが送信キュー30にパケットを格納するための処理速度と比べて、通信速度が大幅に遅いことが一般的であるため、送信キュー30のサイズを1パケット程度まで縮小する。ただし、送信キュー30のサイズを縮小することによって送信キュー30へのパケットの書き込み実行頻度が増大するため、タスクに比べて処理実行時のオーバヘッドの小さいソフトウェア割り込みハンドラ25によって実現することが望ましい。
ソフトウェア割り込みスケジューラ100は、アプリケーションタスク10H, 10M, 10Lの優先度(高・中・低)を考慮したソフトウェア割り込みスケジューリングを実行する。具体的には、ソフトウェア割り込みスケジューラ100は、アプリケーションタスク10H, 10M, 10Lに基づいて生成されたパケットPH, PM, PLの優先度を記憶し、記憶された当該優先度に基づいて、起動すべきソフトウェア割り込みハンドラ25を決定する。より具体的には、ソフトウェア割り込みスケジューラ100は、通信コントローラ40からのハードウェア割り込みを処理するハードウェア割り込みハンドラ35を実行後、及び実行中タスクの優先度が切り替わるタスクスケジューラ150内で呼び出され、インタフェースキュー20H, 20M, 20Lにパケットの蓄積があれば、送信キュー30にパケットを送出するためのソフトウェア割り込みハンドラ25(Bottom Half)を起動する。
より具体的には、ソフトウェア割り込みスケジューラ100は、ハードウェア割り込みハンドラハンドラあるいはタスクスケジューラから起動されると、現在実行中のアプリケーションタスクの優先度と、インタフェースキュー20H, 20M, 20Lへのパケットの格納を行ったタスクの優先度を比較し、インタフェースキュー20H, 20M, 20Lの何れに対するソフトウェア割り込みハンドラ25ハンドラを起動するかを決定する。例えば、ソフトウェア割り込みスケジューラ100は、以下のように実装できる。
Figure 0005303593
このように、インタフェースキュー20H, 20M, 20Lへのパケット格納時に、パケットを格納したタスクの優先度をprio_high, prio_mid, prio_low として管理する。また、送信キュー30に空きが発生し、ハードウェア割り込みハンドラ35からソフトウェア割り込みスケジューラ100が起動されるか、タスクスケジューラ150の中で実行中タスクの切り替えが発生すると、ソフトウェア割り込みスケジューラ100は、実行中のタスク優先度(prio_cur)よりも高優先度のインタフェースキューのパケットの書き込み処理を行うソフトウェア割り込みハンドラ25のみを起動する。
すなわち、ソフトウェア割り込みスケジューラ100は、現在実行中のタスクの優先度と、インタフェースキュー20L(またはインタフェースキュー20M)へのパケットPL(パケットPM)の格納状況、及びインタフェースキュー20HへのパケットPHの格納状況に基づいて、インタフェースキュー20H, 20M, 20Lの何れに対するソフトウェア割り込みハンドラ25を起動するかを決定する。このようなソフトウェア割り込みスケジューラ100による当該優先度を考慮したスケジューリングによって、実行中のタスクより優先度の低いインタフェースキューに対応するソフトウェア割り込みハンドラ25が実行されること(優先度逆転)が防止される。
また、インタフェースキュー20Hは、ソフトウェア割り込みスケジューラ100によるインタフェースキュー20Hに対するソフトウェア割り込みハンドラ25の起動に基づいて、パケットPHを送信キュー30に出力する。同様に、インタフェースキュー20L(インタフェースキュー20M)は、当該ソフトウェア割り込みハンドラ25の起動に基づいて、パケットPL(パケットPM)を送信キュー30に出力する。
本実施形態では、実行中のタスク優先度以上の優先度を持つインタフェースキューのソフトウェア割り込みハンドラ25のみが実行されるために、実行中のタスク優先度よりも低い優先度を持つインタフェースキューのパケットは送出されない。低優先度を持つインタフェースキューのパケットは、実行中のタスクが切り替わるタスクスケジューラ150の中でソフトウェア割り込みハンドラ25が起動され、実行中のタスクが低い優先度を持つタスクに切り替わったときに低い優先度を持つインタフェースキューに対するソフトウェア割り込みハンドラ25が起動されることによって優先度順に送出される。
(2)パケット送信制御装置の動作
次に、上述したパケット送信制御装置1の動作について説明する。図2は、パケット送信制御装置1によるパケットの送信順序の制御動作フローを示す。
図2に示すように、アプリケーションタスク10H, 10M, 10Lからインタフェースキュー20H, 20M, 20Lに、パケットPH, PM, PLがそれぞれ入力される(S10)。各アプリケーションは、各インタフェースキューへのパケット入力タイミングにおいて、送信キュー30に空き容量があるか否かを判定する(S20)。
当該空き容量がある場合は継続して処理を行い、インタフェースキューに格納されたパケットが送信キュー30に書き込まれる(S70)。
図3は、送信キュー30に空き容量がある場合におけるアプリケーションタスク10H, 10M, 10Lの動作を示す。図3に示すように、例えば、パケットPHをインタフェースキュー20Hに格納した高優先度のアプリケーションタスク10HがそのままパケットPHを送信キュー30に書き込まれる。アプリケーションタスク10H, 10M, 10Lはこの順で処理の優先度が割り当てられ、送信キュー30に空き容量がある場合は、インタフェースキュー20H, 20M, 20Lにパケットが入力されたタイミングでそのまま送信キュー30に当該パケットが書き込まれるため、パケットの優先度逆転は発生しない。
一方、当該空き容量がない場合は、アプリケーションタスク10H, 10M, 10Lはインタフェースキュー20H, 20M, 20Lにパケットを入力するのみで送信キュー30への書き込みは行わず、送信キュー30に空き容量ができるまで待機(S30)する。
送信キュー30に空き容量ができた場合、通信コントローラ40がハードウェア割り込みハンドラを発生させる(S40)。発生したハードウェア割り込みをハードウェア割り込みハンドラ35が処理した後、ソフトウェア割り込みスケジューラ100が、ハードウェア割り込みハンドラ35からのソフトウェア割り込みに基づいて、インタフェースキュー20H, 20M, 20Lに対するソフトウェア割り込みハンドラ25を起動する(S60)。次いで、パケットの優先度(高・中・低)に応じてインタフェースキューに格納されたパケットが送信キュー30に書き込まれる(S70)。
図4は、送信キュー30に空き容量がない場合におけるソフトウェア割り込みスケジューラ100の動作概念を示す。図4に示すように、送信キュー30に空き容量がない場合、送信キュー30に空き容量ができるまで待機し、送信キュー30に空き容量ができると、通信コントローラ40からのハードウェア割り込みをハードウェア割り込みハンドラ35が処理し、処理完了後ソフトウェア割り込みスケジューラ100を起動する(図中の(1))。ソフトウェア割り込みスケジューラ100は、インタフェースキュー20Mに対するソフトウェア割り込みハンドラ25を起動(図中の(2))し、インタフェースキュー20Mに格納されていたパケットPMが送信キュー30に書き込まれる。
このように、インタフェースキュー20H, 20M, 20Lから送信キュー30への出力(書き込み)動作は、送信キュー30の空き状況によって異なる。ハードウェア割り込みハンドラ35及びソフトウェア割り込みハンドラ25の実行は、アプリケーションタスクの実行よりも処理の優先度が高く、高優先度のタスクが実行中であっても低優先度のインタフェースキュー(例えば、インタフェースキュー20L)から送信キュー30へのパケットの書き込みが生じ得るため、パケットの優先度逆転が発生する。本実施形態では、上述したソフトウェア割り込みスケジューラ100が、実行中のタスク優先度と、インタフェースキュー20H, 20M, 20Lへの書き込み処理を行ったタスクの優先度を比較した上で、ソフトウェア割り込みハンドラ25(インタフェースキューに対応するソフトウェア割り込みハンドラ)の起動を行うため、このようなパケットの優先度逆転が防止される。
(3)作用・効果
以上説明したように、パケット送信制御装置1によれば、ソフトウェア割り込みスケジューラ100は、通信コントローラ40からのハードウェア割り込みによって起動されたハードウェア割り込みハンドラ35あるいはタスクの切り替えを行うタスクスケジューラ150によって呼び出され、インタフェースキュー20H, 20M, 20Lに対するソフトウェア割り込みハンドラ25の起動を制御し、当該ソフトウェア割り込みハンドラ25によって高優先度パケットが優先してインタフェースキューから送信キュー30に書き込まれる。このため、移動通信端末など、パケットの優先制御をソフトウェアによって実現する場合でも、高優先度パケットの遅延やスループットの悪化を効果的に抑制できる。
より具体的には、パケット送信制御装置1によれば、パケットの優先制御をソフトウェアによって実現する場合に、“パケットの優先度と実行単位の不一致”、及び“タスクと割り込みハンドラの2つの実行単位”が要因となって発生するパケットの優先度逆転問題を解決できる。
図5は、“パケットの優先度と実行単位の不一致”によるパケットの優先度逆転の説明図である。ソフトウェアではタスクや割り込みハンドラの実行単位を逐次処理することで所望の動作を実現するが、「処理の実行単位」と「パケットの優先度」が一致していなければパケットの優先度逆転が発生し得る。図5の例では、インタフェースキューが優先度に区分されておらず、アプリケーションがパケットをインタフェースキューに入力するタイミングによって、低優先度パケットが高優先度パケットよりも先に送信されてしまう場合がある。一方、パケット送信制御装置1では、上述したように、ソフトウェア割り込みスケジューラ100が、実行中のタスク優先度に応じてインタフェースキュー毎のソフトウェア割り込みハンドラ25の起動を制御することによって、このような課題を解決している。
図6は、“タスクと割り込みハンドラの2つの実行単位”によるパケットの優先度逆転の説明図である。ソフトウェアの実行単位には、「タスク」と「割り込みハンドラ」とがあるが、「割り込みハンドラ」は、「タスク」の処理を中断して実行される。このため、図6の例では、ソフトウェア割り込みハンドラによって低優先度パケットが送信キューに書き込まれ、アプリケーションタスクが処理中の高優先度パケットよりも先に送信されてしまう場合がある。一方、パケット送信制御装置1では、上述したように、ソフトウェア割り込みスケジューラ100によるソフトウェア割り込みのスケジューリングによってソフトウェア割り込みハンドラ25の起動を制御して、送信キュー30へのパケットの書き込みを行うことによってこのような課題を解決している。
なお、このようなインタフェースキューから送信キューへの出力(書き込み)時に発生する優先度逆転に対し、インタフェースキューから送信キューに出力する処理をタスクとして実装し、優先度毎に分けたタスクをスケジューリングする方法が考えられる。しかしながら、移動通信端末では送信キューのサイズを1パケット程度まで削減することによって送信キューへの書き込み頻度が増大することから、タスクで実現した場合にはコンテキストスイッチのオーバヘッドによって遅延時間に大きな影響を及ぼす。
図7は、本実施形態に係るパケット送信制御装置1のように、割り込みを使用したパケットの優先制御による有効性の根拠について説明する図である。図7に示すように、割り込みを使用したパケットの優先制御の場合、タスクによるパケットの優先制御と比較して、起動時間が大幅に減少(108.3μsecから7.4μsec)にしていることが分かる。なお、図7に示した処理時間の測定には、CPUとしてFreescale i.MX31Lを搭載するarmadillo 500FXを用いた。
(4)その他の実施形態
上述したように、本発明の実施形態を通じて本発明の内容を開示したが、この開示の一部をなす論述及び図面は、本発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなる。
例えば、本発明の実施形態は、次のように変更することができる。上述した実施形態では、説明の簡略化のため、パケットを送信すべき優先度を3段階として説明したが、当該優先度は、4段階以上でも構わない。あるいは、当該優先度は2段階でも構わない。
上述した実施形態では、パケット送信制御装置1が移動通信端末に実装されるものとして説明したが、本発明の適用範囲は、移動通信端末に限られるものではなく、ソフトウェアアーキテクチャによってパケットの優先制御を実現する他の通信装置にも勿論適用することができる。
このように、本発明は、ここでは記載していない様々な実施の形態などを含むことは勿論である。したがって、本発明の技術的範囲は、上述の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められる。
1…パケット送信制御装置
10H, 10M, 10L…アプリケーションタスク
20, 20H, 20M, 20L…インタフェースキュー
25…ソフトウェア割り込みハンドラ
30…送信キュー
35…ハードウェア割り込みハンドラ
40…通信コントローラ
100…ソフトウェア割り込みスケジューラ
150…タスクスケジューラ
PH, PM, PL…パケット

Claims (5)

  1. ネットワークインタフェース毎に用意されたインタフェースキューと、デバイスが有する送信キューとを有し、アプリケーションタスクに基づいて生成された低優先度パケット及びアプリケーションタスクに基づいて生成され、前記低優先度パケットよりも送信すべき優先度が高い高優先度パケットの送信順序を制御するパケット送信制御装置であって、
    前記インタフェースキューは、
    前記低優先度パケットを格納する第1インタフェースキューと、
    前記高優先度パケットを格納し、前記第1インタフェースキューから独立した第2インタフェースキューと
    を少なくとも含み、
    前記送信キューは、前記第1インタフェースキューから出力された前記低優先度パケット、及び前記第2インタフェースキューから出力された前記高優先度パケットを格納可能であり、
    ハードウェアからのハードウェア割り込みを処理するハードウェア割り込みハンドラから起動されるか、またはタスクの切り替えを行うタスクスケジューラの中で実行中のアプリケーションタスクの切り替えが発生した時点で起動され、実行中の前記アプリケーションタスクの優先度以上の優先度を持つインタフェースキューのパケットの書き込み処理を行うソフトウェア割り込みハンドラのみを起動するソフトウェア割り込みスケジューラを備えるパケット送信制御装置。
  2. 前記ソフトウェア割り込みスケジューラは、前記優先度と、前記第1インタフェースキューへの前記低優先度パケットの格納状況及び前記第2インタフェースキューへの前記高優先度パケットの格納状況に基づいて、前記第1インタフェースキューまたは前記第2インタフェースキューの何れに対するソフトウェア割り込みハンドラを起動するかを決定し、
    前記第2インタフェースキューは、前記ソフトウェア割り込みスケジューラによる前記第2インタフェースキューに対するソフトウェア割り込みに基づいて、前記高優先度パケットを前記送信キューに出力し、
    前記第1インタフェースキューは、前記ソフトウェア割り込みスケジューラによって前記第1インタフェースキューに対するソフトウェア割り込みに基づいて、前記低優先度パケットを前記送信キューに出力する請求項1に記載のパケット送信制御装置。
  3. 前記ソフトウェア割り込みスケジューラは、前記アプリケーションタスクに基づいて生成された前記低優先度パケット及び前記高優先度パケットの優先度を記憶し、記憶された前記優先度に基づいて、起動すべきソフトウェア割り込みハンドラを決定する請求項1に記載のパケット送信制御装置。
  4. 前記送信キューの容量は、前記低優先度パケットまたは前記高優先度パケットが前記インタフェースキューから前記送信キューに格納されるまでの間に、前記ハードウェアが通信路上に送出可能なデータサイズまで削減された請求項1に記載のパケット送信制御装置。
  5. ネットワークインタフェース毎に用意されたインタフェースキューと、デバイスが有する送信キューとを有し、アプリケーションタスクに基づいて生成された低優先度パケット及びアプリケーションタスクに基づいて生成され、前記低優先度パケットよりも送信すべき優先度が高い高優先度パケットの送信順序を制御するパケット送信制御方法であって、
    前記インタフェースキューは、
    前記低優先度パケットを格納する第1インタフェースキューと、
    前記高優先度パケットを格納する第2インタフェースキューと
    を少なくとも含み、
    前記送信キューが、前記第1インタフェースキューから出力された前記低優先度パケット、及び前記第2インタフェースキューから出力された前記高優先度パケットを格納するステップと、
    ハードウェアからのハードウェア割り込みを処理するハードウェア割り込みハンドラから起動されるか、またはタスクの切り替えを行うタスクスケジューラの中で実行中のアプリケーションタスクの切り替えが発生した時点で起動され、実行中の前記アプリケーションタスクの優先度以上の優先度を持つインタフェースキューのパケットの書き込み処理を行うソフトウェア割り込みハンドラのみソフトウェア割り込みスケジューラによって起動するステップと
    を有するパケット送信制御方法。
JP2011058191A 2011-03-16 2011-03-16 パケット送信制御装置及びパケット送信制御方法 Expired - Fee Related JP5303593B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011058191A JP5303593B2 (ja) 2011-03-16 2011-03-16 パケット送信制御装置及びパケット送信制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011058191A JP5303593B2 (ja) 2011-03-16 2011-03-16 パケット送信制御装置及びパケット送信制御方法

Publications (2)

Publication Number Publication Date
JP2012195766A JP2012195766A (ja) 2012-10-11
JP5303593B2 true JP5303593B2 (ja) 2013-10-02

Family

ID=47087277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011058191A Expired - Fee Related JP5303593B2 (ja) 2011-03-16 2011-03-16 パケット送信制御装置及びパケット送信制御方法

Country Status (1)

Country Link
JP (1) JP5303593B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000183961A (ja) * 1998-12-14 2000-06-30 Nec Corp パケット通信優先制御方法
JP4009809B2 (ja) * 2000-03-30 2007-11-21 オムロン株式会社 情報処理装置および方法
JP3834280B2 (ja) * 2002-10-01 2006-10-18 Necインフロンティア株式会社 端末装置、端末装置内の優先処理方法、およびプログラム
JP4446166B2 (ja) * 2004-10-14 2010-04-07 ソニー株式会社 送信装置および方法、記録媒体、プログラム、並びに制御装置
KR100667700B1 (ko) * 2004-12-02 2007-01-12 한국전자통신연구원 휴대 인터넷 시스템의 단말 장치와 단말 장치에서의 상향데이터 전송 방법
US7936772B2 (en) * 2007-07-13 2011-05-03 International Business Machines Corporation Enhancement of end-to-end network QoS
US9207943B2 (en) * 2009-03-17 2015-12-08 Qualcomm Incorporated Real time multithreaded scheduler and scheduling method

Also Published As

Publication number Publication date
JP2012195766A (ja) 2012-10-11

Similar Documents

Publication Publication Date Title
US10412017B2 (en) Transfer device, transfer method, and computer program product
CN110535813B (zh) 内核态协议栈与用户态协议栈并存处理方法和装置
WO2010020159A1 (zh) 多核处理器中断负载均衡方法和装置
US20160253213A1 (en) Method and system for dedicating processors for desired tasks
JP4747307B2 (ja) ネットワーク処理制御装置,プログラムおよび方法
KR101978457B1 (ko) 피어-투-피어(p2p) 디바이스들 간 처리량을 개선시키기 위해 스레드 우선순위의 조절
EP2700202B1 (en) Integrated circuit device and methods for performing cut-through forwarding
JP2011160140A (ja) 通信装置およびその制御方法
WO2015123974A1 (zh) 一种数据分发策略的调整方法、装置及系统
CN102156662A (zh) 一种数据处理方法和设备
JP5109748B2 (ja) 仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード
Dumazet Busy polling: Past, present, future
JP5303593B2 (ja) パケット送信制御装置及びパケット送信制御方法
CN110753008A (zh) 基于dpaa的网络数据处理装置和方法
US9298652B2 (en) Moderated completion signaling
CN101997777B (zh) 中断处理方法、装置和网络设备
JP5625938B2 (ja) 通信装置、通信システム及び通信プログラム
JP2005217491A (ja) 受信処理方法/プログラム/プログラム記録媒体、情報処理装置
CN100493041C (zh) 基于路由交换机的自适应可变时间片包转发调度方法
US20240231940A9 (en) A non-intrusive method for resource and energy efficient user plane implementations
US11971830B2 (en) Efficient queue access for user-space packet processing
JP2007122490A (ja) コンピュータ
JP2012094944A (ja) 通信帯域制御装置
JP2011172135A (ja) パケット送信装置及びパケット送信方法
JP4654106B2 (ja) 一定間隔通信を実行する通信装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130502

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130624

R150 Certificate of patent or registration of utility model

Ref document number: 5303593

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees