JP7740368B2 - サーバ内データ転送装置、サーバ内データ転送方法およびプログラム - Google Patents
サーバ内データ転送装置、サーバ内データ転送方法およびプログラムInfo
- Publication number
- JP7740368B2 JP7740368B2 JP2023565685A JP2023565685A JP7740368B2 JP 7740368 B2 JP7740368 B2 JP 7740368B2 JP 2023565685 A JP2023565685 A JP 2023565685A JP 2023565685 A JP2023565685 A JP 2023565685A JP 7740368 B2 JP7740368 B2 JP 7740368B2
- Authority
- JP
- Japan
- Prior art keywords
- polling
- information
- traffic characteristic
- characteristic information
- data transfer
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
図15は、Linux kernel 2.5/2.6より実装されているNew API(NAPI)によるRx側パケット処理の概略図である(非特許文献1参照)。
図15に示すように、New API(NAPI)は、OS70(例えば、Host OS)を備えるサーバ上で、ユーザが使用可能なuser space60に配置されたデータ処理APL1を実行し、OS70に接続されたHW10のNIC11とデータ処理APL1との間でパケット転送を行う。
Kernel71は、OS70(例えば、Host OS)の基幹部分の機能であり、ハードウェアの監視やプログラムの実行状態をプロセス単位で管理する。ここでは、kernel71は、データ処理APL1からの要求に応えるとともに、HW10からの要求をデータ処理APL1に伝える。Kernel71は、データ処理APL1からの要求に対して、システムコール(「非特権モードで動作しているユーザプログラム」が「特権モードで動作しているカーネル」に処理を依頼)を介することで処理する。
Kernel71は、Socket75を介して、データ処理APL1へパケットを伝達する。Kernel71は、Socket75を介してデータ処理APL1からパケットを受信する。
上記、Linux kernel 2.5/2.6より実装されているNew API(NAPI)は、パケットが到着するとハードウェア割込(hardIRQ)の後、ソフトウェア割込(softIRQ)により、パケット処理を行う。図15に示すように、割込モデルによるパケット転送は、割込処理(図15の符号a参照)によりパケットの転送を行うため、割込処理の待ち合わせが発生し、パケット転送の遅延が大きくなる。
[New API(NAPI)によるRx側パケット処理構成]
図16は、図15の破線で囲んだ箇所におけるNew API(NAPI)によるRx側パケット処理の概要を説明する図である。
<Device driver>
図16に示すように、Device driverには、ネットワークインターフェースカードであるNIC11(物理NIC)、NIC11の処理要求の発生によって呼び出され要求された処理(ハードウェア割込)を実行するハンドラであるhardIRQ81、およびソフトウェア割込の処理機能部であるnetif_rx82が配置される。
Networking layerには、netif_rx82の処理要求の発生によって呼び出され要求された処理(ソフトウェア割込)を実行するハンドラであるsoftIRQ83、ソフトウェア割込(softIRQ)の実体を行う制御機能部であるdo_softirq84が配置される。また、ソフトウェア割込(softIRQ)を受けて実行するパケット処理機能部であるnet_rx_action85、NIC11からのハードウェア割込がどのデバイスのものであるかを示すネットデバイス(net_device)の情報を登録するpoll_list86、sk_buff構造体(Kernel71が、パケットがどうなっているかを知覚できるようにするための構造体)を作成するnetif_receive_skb87、Ring Buffer72が配置される。
Protocol layerには、パケット処理機能部であるip_rcv88、arp_rcv89等が配置される。
図16の矢印(符号)b~mは、Rx側パケット処理の流れを示している。
NIC11のhardware機能部11a(以下、NIC11という)が、対向装置からフレーム内にパケット(またはフレーム)を受信すると、DMA(Direct Memory Access)転送によりCPUを使用せずに、Ring Buffer72へ到着したパケットをコピーする(図16の符号b参照)。このRing Buffer72は、サーバの中にあるメモリ空間で、Kernel71(図15参照)が管理している。
ここまでで、図16の<Device driver>におけるハードウェア割込の処理は停止する。
その後、net_rx_action85は、netif_receive_skb87に通達をする(図16の符号k参照)。
図18に示すように、KBPでは、kernel threadはbusy pollを行うために、CPUコアを専有する。図17に示す間欠的なパケット受信であっても、KBPでは、パケット到着有無に関わらず常にCPUを使用するため、消費電力が大きくなる課題がある。
[DPDKシステム構成]
図19は、アクセラレータ120を備えるHW110の制御を行うDPDKシステムの構成を示す図である。
DPDKシステムは、HW110、OS140、user space(ユーザ空間)160上に配置されたデータ高速転送ミドルウェアであるDPDK150、データ処理APL1を有する。
データ処理APL1は、APLの実行に先立って行われるパケット処理である。
HW110は、データ処理APL1との間でデータ送受信の通信を行う。以下の説明において、図19に示すように、データ処理APL1が、HW110からのパケットを受け取るデータの流れをRx側受信と称し、データ処理APL1が、HW110にパケットを送信するデータの流れをTx側送信と称する。
アクセラレータ120は、CPUからの入力をもとに、特定の演算を高速に行う計算ユニットハードウェアである。アクセラレータ120は、具体的には、GPU(Graphics Processing Unit)やFPGA(Field Programmable Gate Array)等のPLD(Programmable Logic Device)である。図19では、アクセラレータ120は、複数のCore(Coreプロセッサ)121、データを先入れ先出しのリスト構造で保持するRxキュー(queue:待ち行列)122およびTxキュー123を備える。
NFV(Network Functions Virtualization)やSDN(Software Defined Network)を構成するデータセンタなど、大規模なサーバクラスタにおいて、上記のようなアクセラレータ120を適用するケースが想定される。
なお、NIC130は、例えばアクセラレータ付きのNICであるSmartNICであってもよい。SmartNICは、処理能力が落ちる原因となるIPパケット処理など、負荷のかかる処理をオフロードしてCPUの負荷を軽減することができるNICである。
割込モデルは、HWからイベント(ハードウェア割込)を受けたkernelがパケット加工を行うためのソフトウェア割込処理によってパケット転送を行う。このため、割込モデルは、割込(ソフトウェア割込)処理によりパケット転送を行うので、他の割込との競合や、割込先CPUがより優先度の高いプロセスに使用されていると待ち合わせが発生し、パケット転送の遅延が大きくなるといった課題がある。この場合、割込処理が混雑すると、更に待ち合わせ遅延は大きくなる。
一般的なkernelは、パケット転送処理はハードウェア割込処理の後、ソフトウェア割込処理にて伝達される。
パケット転送処理のソフトウェア割込が発生した際に、下記条件(1)~(3)においては、上記のソフトウェア割込処理を即時に実行することができない。このため、ksoftirqd(CPU毎のカーネルスレッドであり、ソフトウェア割込の負荷が高くなったときに実行される)等のスケジューラにより調停され、割込処理がスケジューリングされることにより、msオーダの待ち合わせが発生する。
(1)他のハードウェア割込処理と競合した場合
(2)他のソフトウェア割込処理と競合した場合
(3)優先度の高い他プロセスやkernel thread(migration thread等)、割込先CPUが使用されている場合
上記条件では、前記ソフトウェア割込処理を即時に実行することができない。
パケット処理のためのソフトウェア割込と、他の処理のためのソフトウェア割込(disk I/O、swapなど)が競合すると、ソフトウェア割込用のスケジューラ(ksoftirqd)がソフトウェア割込の実行頻度を調停する。
ソフトウェア割込の競合発生について説明する。Ksoftirqdは、ソフトウェア割込処理をスケジューリングする。ksoftirqdに処理が移譲されると、config_hzの頻度(ms程度)でソフトウェア割込が実行される。この待ち時間に起因して、msオーダのパケット転送遅延が発生する。
New API(NAPI)によるパケット処理についても同様に、図16の破線囲みnに示すように、割込処理(softIRQ)の競合に起因し、msオーダのNW遅延が発生する。
DPDKでは、kernel threadはpolling(CPUでキューをbusy poll)を行うために、CPUコアを専有するので、図17に示す間欠的なパケット受信であっても、DPDKでは、パケット到着有無に関わらず、CPUを常に100%使用するため、消費電力が大きくなる課題がある。
KBPについても、上記DPDKと同様の課題がある。
上述したように、KBPは、kernel内でpollingモデルによりパケット到着を常時監視することで、softIRQを抑止し、低遅延なパケット処理を実現することができる。
しかし、パケット到着を常時監視するkernel threadがCPUコアを専有し、常にCPUタイムを使用するため、消費電力が高くなる課題がある。図17および図18を参照して、ワークロードとCPU使用率の関係について説明する。
図18に示すように、KBPでは、kernel threadはbusy pollを行うために、CPUコアを専有する。図17に示す間欠的なパケット受信であっても、KBPでは、パケット到着有無に関わらず常にCPUを使用するため、消費電力が大きくなる課題がある。
(実施形態)
[全体構成]
図1は、本発明の実施形態に係るサーバ内データ転送システムの概略構成図である。図19と同一構成部分には、同一符号を付している。
図1に示すように、サーバ内データ転送システム1000は、HW110と、メモリ180と、Pollingモデルによるパケット転送を行うデータ高速転送ミドルウェア300(データ転送部)と、データ高速転送ミドルウェア300のPollingスレッドに対して、Sleep制御を行うSleep制御ミドルウェアであるサーバ内データ転送装置200と、user spaceで実行されるプログラムであるApplications2(上位アプリケーション)と、を有する。
HW110は、Applications2との間でデータ送受信の通信を行う。Applications2が、HW110からのパケットを受け取るデータの流れをRx側受信と称し、Applications2が、HW110にパケットを送信するデータの流れをTx側送信と称する。
サーバ内データ転送装置200は、トラフィック特性情報収集部210と、Polling判定部220と、Polling指示部230と、を備える。
トラフィック特性情報収集部210は、トラフィック特性情報(チャンネル割り当て情報(後記)と、Sleep制御スケジュールに用いることができる統計情報(過去に到着したパケット情報等)とがある)を収集し、Polling判定部220へ伝達する。
また、トラフィック特性情報収集部210は、データ高速転送ミドルウェア300と連携し、時系列によるパケット到着頻度の特徴などの、Sleep制御スケジュールに用いることができる情報を、データ高速転送ミドルウェア300から収集し、Polling判定部220へトラフィック特性情報(図1の符号o参照)として伝達する。
Polling判定部220は、トラフィック特性情報収集部210から受け取ったトラフィック特性情報をもとに、データ高速転送ミドルウェア300のPollingThread310をパケットの到着確率が所定閾値以上のタイミングで起床させ、それ以外はSleepさせるPollingスケジュール情報を生成し、Polling指示部230へ時刻同期情報と共に伝達する(図1の符号p参照)。
所定閾値は、ユースケースに応じて、本システムの運用者が決定し、例えばテーブル値として記憶部(図示省略)に記憶する。Polling判定部220は、パケットの到着確率と記憶部に記憶したテーブル値とを比較し、パケットの到着確率が所定閾値以上の場合、PollingThread310を起床させるPollingスケジュール情報を生成する。すなわち、
(1)
ユースケースAにおいては、「99%以上のパケットの到着確率でパケットが到着するタイミングで起床させる」という基準でスケジュール情報を生成する
ユースケースBにおいては、「80%以上のパケットの到着確率でパケットが到着するタイミングで起床させる」という基準でスケジュール情報を生成する
ユースケースCにおいては、「50%以上のパケットの到着確率でパケットが到着するタイミングで起床させる」という基準でスケジュール情報を生成する
等である。
運用者は、確率0から1(0%から100%)の範囲であらかじめ閾値を決定できる。確率の閾値は、0または1もありうるとし、事実上、確率を適用しない(すべて適用する)こともある。例えば、特定UE等については、確率を適用しない除外規定があるなどである。
運用者は、動的にこの閾値(上記の例では、閾値99%、閾値80%、閾値50%)を変更することができる。
Polling指示部230は、Polling判定部220から時刻同期情報とPollingスケジュール情報を受け取り、時刻同期情報およびPollingスケジュール情報をもとに、Pollingに必要な時刻と時間を示すPollingスケジュールをPollingThread310に配信してPollingThread310をトリガし、当該PollingThread310をPollingスケジュールで指示した時間だけPollingさせる。
具体的には、Polling指示部230は、データ高速転送ミドルウェア300のPollingスレッド(PollingThread)310へPollingスケジューリング(図1の符号q参照)を指示する。後記するように、Polling指示部230が、PollingThread310に指示するPollingスケジューリングは、Polling指示部230が、PollingThread310を実際に起床させるトリガである。
データ高速転送ミドルウェア300は、Pollingモデルによるパケット転送を行うデータ転送部である。データ高速転送ミドルウェア300は、プログラムの実行単位であるPollingThread310を複数有する。PollingThread310は、Polling指示部230からのPollingスケジューリングによってSleepから起床し、Pollingモデルによるパケット転送を行う。PollingThread310は、Polling指示部230からのPollingスケジューリングを受け、パケットの到着確率が所定値以上のタイミングで起床し、それ以外はSleepする(図1の符号r参照)。
サーバ内データ転送装置200は、データ高速転送ミドルウェア300内のPollingスレッドをパケットの到着確率が所定値以上のタイミングで起床させ、それ以外はSleepさせる。このような制御を実現するため、データ到着パターンの特性をカテゴライズしておく(図2参照)。
例えば、RAN(Radio Access Network)ユースケースでは、トラフィックを、特性に応じてカテゴライズし、そのそれぞれのカテゴリに対してPollingの必要有無を定めることができる。
Sleep制御スケジュールに用いることができるトラフィック特性情報(図1の符号o参照)を収集できるユースケースとしてRANがある。RANの無線信号は、チャンネル毎にデータ到着パターンに特徴がある。それらの特徴毎に適するSleep制御スケジュールを定めることが可能である。
データ到着パターン例には、1.いつデータが到着するか予測不可の場合、2.データ到着タイミングを予測可能な場合とそうでない場合、3.データ到着タイミングを予測可能な場合がある。
また、UEが帰属している場合は更に、UEのこれまでのパケット送信特性等の情報に応じた制御も可能である。例えば、UEは帰属しているが、該当UEはデータ送信確率が1%(1%は、一例であり限定されない。)に満たないため、PollingではなくSleepを行う。
いつデータが到着するか予測可能な場合のチャンネル例(「SRS」)は、上記2.のUEの帰属とは、無関係である。SRSは、時刻同期のために基地局が発する同期信号や基地局が情報を得るために送信する信号であり、UEの使用状況やUEの帰属とは、無関係に、特定の時間・周波数領域を使って信号を送信する。いつデータが到着するか予測可能であるため、データが到着する直前にPollingを開始する。
図3は、トラフィック特性情報の一例である、トラフィック特性情報収集部210から得た時間・周波数領域へのチャンネル割り当て情報を示す図である。
図3に示すチャンネル割り当て情報は、基準:hh時mm分ss秒xxxxから各時間領域1-80[usec]、81-160[usec]、161-240[usec]、321-400[usec]、401-480[usec]ごとに、周波数領域K-L[Hz]、L-M[Hz]、M-N[Hz]、N-O[Hz]、O-P[Hz]で割り当てられたチャンネルで示される。
また、81-160[usec]、161-240[usec]、321-400[usec]とM-N[Hz]、N-O[Hz]、O-P[Hz]で割り当てられたチャンネルは、PUSCHである。このPUSCHは、データ到着タイミングを予測可能な場合とそうでない場合のチャンネルである。
また、1-80[usec]、81-160[usec]、161-240[usec]、321-400[usec]、401-480[usec]の全時間帯に亘ってL-M[Hz]で割り当てられたチャンネルは、PRACHである。このPRACHは、いつデータが到着するか予測不可の場合のチャンネルである。
なお、図3において空欄は、チャンネル割り当て情報がない状態である。
また、周波数領域M-N[Hz]、N-O[Hz]、O-P[Hz]M-N[Hz]では、1-80[usec]ではチャンネル割り当て情報がなく、81-160[usec]、161-240[usec]、321-400[usec]ではチャンネルPUSCHが割り当てられ、161-240[usec]、321-400[usec]ではSRSが割り当てられる。
[全体動作]
図4は、サーバ内データ転送システムの動作を説明する図である。図1と同一構成部分には、同一符号を付している。
図4に示すApplications2は、例えばL1/L2Application(物理層/データリンク層を対象とするデータ処理アプリケーション)である。
データ高速転送ミドルウェア300は、時系列によるパケット到着頻度の情報を保持する共有メモリ320を有する。共有メモリ320は、各UEが割り当てられているリソースブロックに実際にパケットが到着した回数を格納する。共有メモリ320は、パケットの到着統計をSleep制御スケジュールに用いることができる統計情報としてトラフィック特性情報収集部210に伝達する。
データ高速転送ミドルウェア300は、各UEが割り当てられているリソースブロックに実際にパケットが到着した回数を収集し、共有メモリ320に格納する。データ高速転送ミドルウェア300は、共有メモリ320に格納された情報をトラフィック特性情報収集部210に伝達する(図4の符号t参照)。
<トラフィック特性情報収集処理1>
図6は、トラフィック特性情報収集部210のトラフィック特性情報収集処理1を示すフローチャートである。図6は、トラフィック特性情報収集部210が、L1/L2Application(上位アプリケーション)から時間・周波数領域へのチャンネル割り当て情報を取得する(図4の符号s参照)場合の処理フローである。
ステップS11でトラフィック特性情報収集部210(図4参照)は、L1/L2Applicationからトラフィック特性情報としてチャンネル割り当て情報を定期的に(もしくは、チャンネル割り当てパターンが変更されるタイミングで)収集を行う。
図7は、トラフィック特性情報収集部210のトラフィック特性情報収集処理2を示すフローチャートである。図7は、トラフィック特性情報収集部210が、データ高速転送ミドルウェア300からパケットの到着統計を取得する(図4の符号t参照)場合の処理フローである。
ステップS21でトラフィック特性情報収集部210(図4参照)は、データ高速転送ミドルウェア300(図4参照)が収集し、共有メモリ320(図4参照)に書き込んだ各UEのパケット到着頻度の情報を定期的に収集する。
1.これまで全ての到着割合
2.直前の共有メモリ320(図4参照)からデータ収集時の到着割合
の2種類を保持する。
トラフィック特性情報収集部210は、このパケット到着頻度情報を用いて、後記図9の「直前に割り当てられたリソースを使い通信を行ったUEであること」「リソースが割り当てられるのが初回のUEであること」を判断することができる。なお、初回のUEであることは、UEに割り振られているIDをもとに、すべてのパケット到着割合と直前のパケット到着割合を取得し、直前のパケット到着がなければ初回のUEであると判断する(例えば、UEのIDがそもそも記録されていない場合は初回の通信であると判断する)。
データ到着タイミング情報の補正について説明する。
図1に示す対向装置170と時刻同期がとれていないことや、対向装置170内で一定のデータ処理時間が発生すること等が原因で、トラフィック特性情報収集部210(図1および図4参照)がPolling判定部220に渡すタイミング情報と実際のデータ到着タイミング情報の間に、定常的あるいはデータサイズ等に応じた規則的差分が生じる場合がある。この場合、データ高速転送ミドルウェア300(図1および図4参照)が実際のパケット到着時刻をトラフィック特性情報収集部210に送付し、トラフィック特性情報収集部210がその差分を補正することによって対応してもよい。
以上、トラフィック特性情報収集部210の動作について説明した。
RANユースケースにおいて、トラフィック特性情報収集部210から、図3に示す時間・周波数領域へのチャンネル割り当て情報が得られた場合、Polling判定部220は以下のようにSleep制御スケジュールを決定し、決定したSleep制御スケジュールをもとにPollingスケジュール情報を生成する。
図8は、Polling判定部220におけるSleep制御スケジュール決定処理を示すフローチャートである。本フローは、図2に示すデータ到着パターン特性のカテゴライズを用いてSleep制御スケジュールを決定する。
統計情報例には、1.該当ユーザの通信のバースト性、2.該当ユーザがライトユーザか否か、3.該当ユーザにリソースが割り当てられるのは初回か否か、4.該当ユーザに対する下りリンクの通信情報がある。以下、順に説明する。
データの特徴例は、「該当UEは直前に割り当てられたリソースを使い、通信を行っている」である。このデータ特徴から推察できることは、「前回通信を行っていたUEであれば、今回のリソースでもデータを送信してくる確率が高い」ことである。Polling判定部220によるSleep制御対応策は、今回のリソースでもデータを送信してくる確率が高いUEであると判断してPollingによってパケットを待機する。
データの特徴例は、「該当UEは割り当てられたリソースをこれまで1%しか使っていない」である。このデータ特徴から推察できることは、「今回のリソースでもデータを送信してくる確率が低い」ことである。Polling判定部220によるSleep制御対応策は、このリソースではデータを送信してくる確率が低いUEであると判断してSleepによってパケットを待機する。
データの特徴例は、「該当UEによる通信はこれまでなく、新規に割り当て要求を行ってきてその最初の通信である」である。このデータ特徴から推察できることは、「初回であり、データを送信してくる確率が高い」ことである。初回の場合は、上記1.の前回通信を行っていたUEの場合と同様にデータを送信してくる確率が高いUEであると判断して、Polling判定部220によるSleep制御対応策は、Pollingによってパケットを待機する。
データの特徴例は、「下りリンクにて、該当UEに対する何らかの要求メッセージが送られている」である。このデータ特徴から推察できることは、「その要求に応答するべく、直ちにデータを送信してくる確率が高い」ことである。基地局からUEに対してメッセージを送った場合、該当UEは基地局に応答する確率が高いと判断して、Polling判定部220によるSleep制御対応策は、Pollingによってパケットを待機する。
図10は、Polling判定部220のPollingスケジュール情報配信処理を示すフローチャートである。
ステップS41でPolling判定部220は、トラフィック特性情報収集部からチャンネル割り当て情報が配信されることを契機に本プログラムを起動する。
すなわち、ステップS44では、「SRS」の次に優先度の高い「PUSCH」が割り当てられているか判定し、スロットのいずれかの周波数ブロックに「UEの帰属有無によって、パケット到着特性が変わる」チャンネル(「PUSCH」)が含まれていない場合(S44:No)、ステップS45でPolling判定部220は、該当時間はsleepすることを決定し、次の時間的スロットを走査してステップS48に進む。
ステップS51でPolling判定部220は、配信されたチャンネル割り当て情報を走査している際、該当タイムスロットのいずれかの周波数ブロックに「UEの帰属有無によってパケット到着特性が変わるチャンネル」が含まれている場合に本ロジックはトリガ(再設定)される。
上記ステップS52で該当チャンネルのいずれかにUEが帰属している場合(S52:Yes)、ステップS53でPolling判定部220は、トラフィック特性情報収集部210からチャンネル割り当て情報と同時に配信された「UEのID:パケット到着特性」の情報群のキーに今回帰属しているUEが存在するかを確認する。
以上、Polling判定部220の動作について説明した。
図12は、Polling指示部230の動作を示すフローチャートである。
ステップS71でPolling指示部230(図1および図4参照)は、Polling判定部220(図1および図4参照)から、時刻同期(例えば図3のように80[usec]ごとに)された「Polling必要有無の情報」(図10のステップS49参照)を受け取る。
図13は、データ高速転送ミドルウェア300の動作を示すフローチャートである。
ステップS81でデータ高速転送ミドルウェア300(図1および図4参照)は、Polling指示部230にトリガされることにより、Polling Thread310は指示された時間だけPollingを行う。
上記実施形態に係るサーバ内データ転送装置200は、例えば図14に示すような構成のコンピュータ900によって実現される。
図14は、サーバ内データ転送装置200の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。
コンピュータ900は、CPU901、ROM902、RAM903、HDD904、通信インターフェイス(I/F:Interface)906、入出力インターフェイス(I/F)905、およびメディアインターフェイス(I/F)907を有する。
以上説明したように、本実施形態に係るサーバ内データ転送装置は、Pollingモデルによるパケット転送を行うデータ転送部(データ高速転送ミドルウェア300)のPollingスレッド(Polling Thread310)に対して、Sleep制御を行うサーバ内データ転送装置200であって、パケット転送におけるトラフィック特性情報を収集するトラフィック特性情報収集部210と、トラフィック特性情報収集部210から受け取ったトラフィック特性情報をもとに、Pollingスレッドをパケットの到着確率が所定閾値以上のタイミングで起床させ、それ以外はSleepさせるPollingスケジュール情報を生成するPolling判定部220と、Polling判定部220から時刻同期情報とPollingスケジュール情報を受け取り、時刻同期情報およびPollingスケジュール情報をもとに、Pollingが必要な時刻と時間を示すPollingスケジュールをPollingスレッドに配信して当該PollingスレッドをPollingスケジュールで指示した時間だけPollingさせるPolling指示部230と、を備える。
サーバ内データ転送システム1000(図1参照)は、パケット到着頻度などの時間領域における特徴が定まったトラフィックであれば適用可能であるため、RANにおける上りリンクのトラフィックのみならず、下りリンクのトラフィック等にも適用が可能である。
また、サーバ内データ転送システム1000は、ネットワーク対向だけでなく、アクセラレータ対向に対しても適用が可能である。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
110 HW
180 メモリ
200 サーバ内データ転送装置
210 トラフィック特性情報収集部
220 Polling判定部
230 Polling指示部
300 データ高速転送ミドルウェア(データ転送部)
310 Polling Thread(Pollingスレッド)
320 共有メモリ
1000 サーバ内データ転送システム
PRACH(第1チャンネル)
PUSCH(第2チャンネル)
SRS(第3チャンネル)
Claims (5)
- Pollingモデルによるパケット転送を行うデータ転送部のPollingスレッドに対して、Sleep制御を行うサーバ内データ転送装置であって、
前記パケット転送におけるトラフィック特性情報を収集するトラフィック特性情報収集部と、
前記トラフィック特性情報収集部から受け取った前記トラフィック特性情報をもとに、前記Pollingスレッドをパケットの到着確率が所定閾値以上のタイミングで起床させ、それ以外はSleepさせるPollingスケジュール情報を生成するPolling判定部と、
前記Polling判定部から時刻同期情報と前記Pollingスケジュール情報を受け取り、前記時刻同期情報および前記Pollingスケジュール情報をもとに、Pollingに必要な時刻と時間を示すPollingスケジュールを前記Pollingスレッドに配信して当該Pollingスレッドを前記Pollingスケジュールで指示した時間だけPollingさせるPolling指示部と、を備え、
前記トラフィック特性情報収集部は、上位アプリケーションから時間および周波数領域のチャンネル割り当て情報を収集し、前記トラフィック特性情報として前記Polling判定部へ伝達する
ことを特徴とするサーバ内データ転送装置。 - Pollingモデルによるパケット転送を行うデータ転送部のPollingスレッドに対して、Sleep制御を行うサーバ内データ転送装置であって、
前記パケット転送におけるトラフィック特性情報を収集するトラフィック特性情報収集部と、
前記トラフィック特性情報収集部から受け取った前記トラフィック特性情報をもとに、前記Pollingスレッドをパケットの到着確率が所定閾値以上のタイミングで起床させ、それ以外はSleepさせるPollingスケジュール情報を生成するPolling判定部と、
前記Polling判定部から時刻同期情報と前記Pollingスケジュール情報を受け取り、前記時刻同期情報および前記Pollingスケジュール情報をもとに、Pollingに必要な時刻と時間を示すPollingスケジュールを前記Pollingスレッドに配信して当該Pollingスレッドを前記Pollingスケジュールで指示した時間だけPollingさせるPolling指示部と、を備え、
前記データ転送部は、時系列によるパケット到着頻度の情報を保持する共有メモリを有し、
前記トラフィック特性情報収集部は、前記共有メモリを介してパケット到着頻度の情報を収集し、前記トラフィック特性情報として前記Polling判定部へ伝達する
ことを特徴とするサーバ内データ転送装置。 - Pollingモデルによるパケット転送を行うデータ転送部のPollingスレッドに対して、Sleep制御を行うサーバ内データ転送装置であって、
前記パケット転送におけるトラフィック特性情報を収集するトラフィック特性情報収集部と、
前記トラフィック特性情報収集部から受け取った前記トラフィック特性情報をもとに、前記Pollingスレッドをパケットの到着確率が所定閾値以上のタイミングで起床させ、それ以外はSleepさせるPollingスケジュール情報を生成するPolling判定部と、
前記Polling判定部から時刻同期情報と前記Pollingスケジュール情報を受け取り、前記時刻同期情報および前記Pollingスケジュール情報をもとに、Pollingに必要な時刻と時間を示すPollingスケジュールを前記Pollingスレッドに配信して当該Pollingスレッドを前記Pollingスケジュールで指示した時間だけPollingさせるPolling指示部と、を備え、
前記トラフィック特性情報は、パケット到着パターンが時間領域と周波数領域とで割り当てられたチャンネルを有し、
前記チャンネルは、
パケット到着が予測不可の場合の第1チャンネルと、
予測可能な場合と予測不可の場合の両方の可能性があるときの第2チャンネルと、
パケット到着が予測可能な場合の第3チャンネルと、を有し、
前記Polling判定部は、
前記第1チャンネルの場合、前記PollingスレッドがSleep状態で待機し、パケットが到着した場合にはハードウェア割り込み割込により起床させる前記Pollingスケジュール情報を生成し、
前記第2チャンネルの場合、前記PollingスレッドがSleepを行う前記Pollingスケジュール情報を生成し、
前記第3チャンネルの場合、前記Pollingスレッドがパケットの到着する直前にPollingを開始する前記Pollingスケジュール情報を生成する
ことを特徴とするサーバ内データ転送装置。 - Pollingモデルによるパケット転送を行うデータ転送部のPollingスレッドに対して、Sleep制御を行うサーバ内データ転送装置のサーバ内データ転送方法であって、
前記パケット転送におけるトラフィック特性情報を収集するトラフィック特性情報収集ステップと、
前記トラフィック特性情報収集ステップで受け取った前記トラフィック特性情報をもとに、前記Pollingスレッドをパケットの到着確率が所定閾値以上のタイミングで起床させ、それ以外はSleepさせるPollingスケジュール情報を生成するPolling判定ステップと、
前記Polling判定ステップから時刻同期情報と前記Pollingスケジュール情報を受け取り、前記時刻同期情報および前記Pollingスケジュール情報をもとに、Pollingに必要な時刻と時間を示すPollingスケジュールを前記Pollingスレッドに配信して当該Pollingスレッドを前記Pollingスケジュールで指示した時間だけPollingさせるPolling指示ステップと、を実行し、
前記トラフィック特性情報収集ステップにおいて、上位アプリケーションから時間および周波数領域のチャンネル割り当て情報を収集し、前記トラフィック特性情報として前記Polling判定ステップへ伝達する
ことを特徴とするサーバ内データ転送方法。 - Pollingモデルによるパケット転送を行うデータ転送部のPollingスレッドに対して、Sleep制御を行うサーバ内データ転送装置としてのコンピュータに、
前記パケット転送におけるトラフィック特性情報を収集するトラフィック特性情報収集手順、
前記トラフィック特性情報収集手順から受け取った前記トラフィック特性情報をもとに、前記Pollingスレッドをパケットの到着確率が所定閾値以上のタイミングで起床させ、それ以外はSleepさせるPollingスケジュール情報を生成するPolling判定手順、
前記Polling判定手順から時刻同期情報と前記Pollingスケジュール情報を受け取り、前記時刻同期情報および前記Pollingスケジュール情報をもとに、Pollingに必要な時刻と時間を示すPollingスケジュールを前記Pollingスレッドに配信して当該Pollingスレッドを前記Pollingスケジュールで指示した時間だけPollingさせるPolling指示手順、
を実行させ、
前記トラフィック特性情報収集手順において、上位アプリケーションから時間および周波数領域のチャンネル割り当て情報を収集し、前記トラフィック特性情報として前記Polling判定手順へ伝達する
ことを実行させるためのプログラム。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2021/044736 WO2023105578A1 (ja) | 2021-12-06 | 2021-12-06 | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2023105578A1 JPWO2023105578A1 (ja) | 2023-06-15 |
| JP7740368B2 true JP7740368B2 (ja) | 2025-09-17 |
Family
ID=86729780
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2023565685A Active JP7740368B2 (ja) | 2021-12-06 | 2021-12-06 | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP7740368B2 (ja) |
| WO (1) | WO2023105578A1 (ja) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002300173A (ja) | 2001-03-30 | 2002-10-11 | Seiko Epson Corp | 無線通信ネットワークにおける通信制御方法 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04172032A (ja) * | 1990-11-06 | 1992-06-19 | Nec Corp | ポーリング制御方式 |
-
2021
- 2021-12-06 JP JP2023565685A patent/JP7740368B2/ja active Active
- 2021-12-06 WO PCT/JP2021/044736 patent/WO2023105578A1/ja not_active Ceased
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002300173A (ja) | 2001-03-30 | 2002-10-11 | Seiko Epson Corp | 無線通信ネットワークにおける通信制御方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2023105578A1 (ja) | 2023-06-15 |
| JPWO2023105578A1 (ja) | 2023-06-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109697122B (zh) | 任务处理方法、设备及计算机存储介质 | |
| JP7310924B2 (ja) | サーバ内遅延制御装置、サーバ、サーバ内遅延制御方法およびプログラム | |
| JP2025100826A (ja) | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム | |
| CN102662889A (zh) | 中断处理方法、中断控制器及处理器 | |
| JP2024180507A (ja) | サーバおよびプログラム | |
| JP7740368B2 (ja) | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム | |
| JP7816498B2 (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
| WO2019074821A1 (en) | MOBILE RESOURCE PLANNER | |
| JP7754299B2 (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
| JP7662062B2 (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
| WO2022172366A1 (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
| JP7574902B2 (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
| CN113810167B (zh) | 一种分布式系统的时序控制与同步方法 | |
| JP7852718B2 (ja) | サーバ内データ転送装置、データ転送システム、サーバ内データ転送方法およびプログラム | |
| JP7709645B2 (ja) | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム | |
| JP2026074185A (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
| CN118660017B (zh) | 接收队列调度方法、设备、介质及计算机程序产品 | |
| WO2019120274A1 (zh) | 用于socfpga的数据循环缓冲方法及装置、存储介质、终端 | |
| WO2024122065A1 (ja) | 省電機能制御装置、計算システム、省電機能制御方法およびプログラム | |
| CN121262546A (zh) | 数据交互方法、平台、设备、介质及程序产品 | |
| CN120583035A (zh) | 网络流量控制方法及装置、网络处理器、计算机程序产品 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240516 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250513 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250711 |
|
| 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: 20250805 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250818 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7740368 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |