JP7044033B2 - アクセス制御方法、アクセス制御装置、およびデータ処理装置 - Google Patents
アクセス制御方法、アクセス制御装置、およびデータ処理装置 Download PDFInfo
- Publication number
- JP7044033B2 JP7044033B2 JP2018208717A JP2018208717A JP7044033B2 JP 7044033 B2 JP7044033 B2 JP 7044033B2 JP 2018208717 A JP2018208717 A JP 2018208717A JP 2018208717 A JP2018208717 A JP 2018208717A JP 7044033 B2 JP7044033 B2 JP 7044033B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- unit
- packet buffer
- processing circuit
- application processing
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/803—Application aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/621—Individual queue per connection or flow, e.g. per VC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
- H04L47/562—Attaching a time tag to queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Description
本発明は、ネットワーク上のデータ処理装置においてパケット通信をベースとしたアプリケーション処理回路を時分割で利用するためのアクセス制御方法、アクセス制御装置、およびデータ処理装置に関するものである。
近年のクラウドコンピューティングでは、AI(Artificial Intelligence)やコンピュータ・ビジョンのような高度なサービスの実用化が進んでいる。このようなサービスは、一般に計算量が多くソフトウェア処理だけでは実現が難しいことから、GPU(Graphics Processing Unit)やFPGA(Field-Programmable Gate Array)といったハードウェアアクセラレータに計算量が多い処理をオフロードすることが検討されている(非特許文献1)。特にFPGAは、処理に最適化したデータパスを構築できるため、低遅延が求められるアプリケーションに適している。
先述のとおり、計算量が多いアプリケーションは、一部の処理をFPGAで実行することで処理遅延を削減することが可能である。一方、FPGAを活用するためには、CPUにおいて受信したパケットから元データ(画像データ等)を再構築した後にFPGAにデータを転送する必要があり、前処理によるオーバヘッドが発生する。このオーバヘッドを解消するには、パケット単位でFPGAにデータを転送し、FPGA内部で元データを再構築することが有効である。非特許文献2が示す技術では、FPGAにパケット送受信機能を設け、FPGAがメインメモリやキャッシュに置かれたパケットバッファに対してパケットの読み込みと書き込みを行うことで、ソフトウェアを変更することなくCPUとFPGAの間の高速な通信を実現している。
画像処理などの上位アプリケーションでは参照データを利用することがある。例えば、画像処理の一つであるフレーム間差分法では、2枚の画像データを比較することで移動物体を検出しており、処理回路は比較対象となる画像データを保持する必要がある。一方、ネットワーク上ではアプリケーション情報は考慮されない。そのため、パケット通信をベースとしたアプリケーション処理回路では、異なるユーザから送られたパケットを連続して受信することがあり、回路に別ユーザに向けた参照データが保持されていると誤った計算が行われる可能性がある。よって、1つのアプリケーション処理回路に対して1ユーザしか割り当てることができず、複数のユーザのリクエストに応えるには多くの回路リソースが必要となる。
Kalin Ovtcharov,et al.,"Accelerating deep convolutional neural networks using specialized hardware",Microsoft Research Whitepaper 2.11,2015
渡邊義和他,"CPU/FPGA密結合アーキテクチャを用いたネットワーク機能仮想化アクセラレーション手法",DAシンポジウム2016論文集,22号,p.116-121,2016
本発明は、上記のような課題を解決するためのものであり、クラウド上のデータ処理装置においてハードウェアアクセラレータに実装したアプリケーション処理回路を時分割で利用するために必要なアクセス制御方法、アクセス制御装置、およびデータ処理装置を提供することを目的とする。
本発明のアクセス制御方法は、外部からパケットを受信する第1のステップと、この第1のステップで受信したパケットのユーザ属性を識別して、ユーザごとに設けられた複数のパケットバッファのうち対応するパケットバッファに前記パケットを格納する第2のステップと、前記複数のパケットバッファの状態を評価し、転送対象となるパケットバッファを決定する第3のステップと、パケットから再構築したデータと保持している参照データとに基づいて処理を行う外部のアプリケーション処理回路において前記参照データの更新が可能で、かつ前記第3のステップで決定したパケットバッファが現在の転送対象のパケットバッファと異なる場合に、前記第3のステップで決定したパケットバッファに対応する参照データに更新する第4のステップと、前記参照データの更新が完了したときに、前記第3のステップで決定したパケットバッファに格納されたパケットを前記アプリケーション処理回路に転送する第5のステップとを含むことを特徴とするものである。
また、本発明のアクセス制御方法の1構成例において、前記第3のステップは、前記複数のパケットバッファおよび前記アプリケーション処理回路に関連したパラメータを収集するステップと、前記パラメータに基づいて評価関数を計算するステップと、前記評価関数が最大のパケットバッファを前記転送対象のパケットバッファとして決定するステップとを含み、前記パラメータは、各パケットバッファの保持パケット数と、各パケットバッファと前記アプリケーション処理回路との通信が終わってからの経過時間である待機時間と、各パケットバッファと前記アプリケーション処理回路との通信が始まってからの経過時間である利用時間と、各パケットバッファに設定された優先度と、前記アプリケーション処理回路における参照データの更新処理で発生するコストである。
また、本発明のアクセス制御方法の1構成例において、前記第4のステップは、前記アプリケーション処理回路の状態を監視するステップと、前記アプリケーション処理回路において前記参照データの更新が可能で、かつ前記第3のステップで決定したパケットバッファが現在の転送対象のパケットバッファと異なる場合に、前記アプリケーション処理回路に保持された参照データを記憶部に退避させるステップと、前記第3のステップで決定したパケットバッファに対応する参照データを前記記憶部から読み出して前記アプリケーション処理回路にダウンロードするステップとを含むことを特徴とするものである。
また、本発明のアクセス制御方法の1構成例において、前記第4のステップは、前記アプリケーション処理回路の状態を監視するステップと、前記アプリケーション処理回路において前記参照データの更新が可能で、かつ前記第3のステップで決定したパケットバッファが現在の転送対象のパケットバッファと異なる場合に、前記アプリケーション処理回路に保持された参照データを記憶部に退避させるステップと、前記第3のステップで決定したパケットバッファに対応する参照データを前記記憶部から読み出して前記アプリケーション処理回路にダウンロードするステップとを含むことを特徴とするものである。
また、本発明のアクセス制御装置は、外部からパケットを受信するパケット受信部と、ユーザごとに設けられた複数のパケットバッファと、前記パケット受信部によって受信されたパケットのユーザ属性を識別して、このパケットを対応するパケットバッファに格納するパケット識別部と、前記複数のパケットバッファの状態を評価し、転送対象となるパケットバッファを決定するスケジューリング部と、パケットから再構築したデータと保持している参照データとに基づいて処理を行う外部のアプリケーション処理回路において前記参照データの更新が可能で、かつ前記スケジューリング部によって決定されたパケットバッファが現在の転送対象のパケットバッファと異なる場合に、前記スケジューリング部によって決定されたパケットバッファに対応する参照データに更新する転送制御部と、前記パケットバッファに格納されたパケットを前記アプリケーション処理回路に転送するパケット転送部と、前記複数のパケットバッファのうちいずれか1つを前記パケット転送部に接続し、前記参照データの更新が完了したときに、前記スケジューリング部によって転送対象として決定されたパケットバッファを前記パケット転送部に繋ぐように、前記パケットバッファと前記パケット転送部との間の接続を切り替えるバッファ選択部とを備え、前記パケット転送部は、前記バッファ選択部によって接続されたパケットバッファに格納されたパケットを前記アプリケーション処理回路に転送することを特徴とするものである。
また、本発明のデータ処理装置は、パケットから再構築したデータと保持している参照データとに基づいて処理を行うアプリケーション処理回路と、ユーザごとの参照データを記憶する記憶部と、前記アプリケーション処理回路ごとに設けられる、請求項4または5記載のアクセス制御装置と、外部から受信したパケットを、転送先のアプリケーション処理回路に対応するアクセス制御装置に送出するパケット転送機能部とを備えることを特徴とするものである。
本発明では、アプリケーション処理回路の前段に配置するアクセス制御装置において外部から受信したパケットをユーザごとに分けてパケットバッファに格納し、アプリケーション処理回路と通信するパケットバッファを計算によって選択するようにした。また、アクセス制御装置はアプリケーション処理回路の状態を確認し、適切なタイミングで参照データの更新を行ってからパケットバッファの切り替えを行うようにした。これにより、本発明では、1つのアプリケーション処理回路を複数のユーザが同時に利用しても、常に正しい計算を行うことが可能になる。
以下、本発明の実施例を図面に基づいて詳細に説明する。図1は本発明の実施例に係るデータ処理装置10の構成を示すブロック図である。データ処理装置10は、入出力部11と、ソフトウェア処理部12と、ハードウェア処理部13とから構成される。
ソフトウェア処理部12は、転送制御部14と、パケット転送機能部15と、アクセス制御部16(アクセス制御装置)とから構成される。ハードウェア処理部13は、アプリケーション処理回路17と、記憶部111とから構成される。また、アプリケーション処理回路17は、パケット受信部18と、パケット送信部19と、情報処理部110とから構成される。
データ処理装置10において、外部とのパケットの送受信は入出力部11を介して行われる。入出力部11は、一般的なネットワークインタフェースカード(NIC)を用いて実現することができる。入出力部11によって受信されたパケットは、パケット転送機能部15に送られる。
パケット転送機能部15は、ルーティングテーブル(不図示)に基づいてパケットの転送先を決定する。パケット転送機能部15を実現する既存技術としてOpen vSwitchやLagopus(登録商標)といった仮想スイッチがある。なお、図1の例では、パケットの転送先が1つの例を示しているが、後述のようにアクセス制御部16とアプリケーション処理回路17とが複数設けられる場合もある。この場合には、パケット転送機能部15は、パケットの転送先のアプリケーション処理回路17に対応するアクセス制御部16にパケットを送出する。
転送制御部14は、パケット転送機能部15のルーティングテーブルの管理を行い、外部から受信したテーブル情報を基にルーティングテーブルを更新する機能を持つ。これにより、必要に応じてパケットの転送先を変更することが可能である。
アクセス制御部16は、パケット転送機能部15から受信したパケットをユーザごとに分類し、ユーザごとにパケットをアプリケーション処理回路17に転送する役割を担う。
アクセス制御部16は、パケット転送機能部15から受信したパケットをユーザごとに分類し、ユーザごとにパケットをアプリケーション処理回路17に転送する役割を担う。
アプリケーション処理回路17を構成する要素の一つであるパケット受信部18は、アクセス制御部16からパケットを受信する。このパケット受信部18は、パケットの順序制御と、受信したパケットから元データ(画像データ等)を再構築する処理を行う。
情報処理部110は、例えば保持している参照データ(例えば過去の画像である参照画像データ)とパケット受信部18によって再構築されたデータ(例えば現在の画像データ)とを比較して、再構築された画像中の移動物体の領域を検出するフレーム間差分処理等を行う。
パケット送信部19は、情報処理部110の処理結果をパケット化し、生成したパケットをパケット転送機能部15に転送する。
パケット送信部19は、情報処理部110の処理結果をパケット化し、生成したパケットをパケット転送機能部15に転送する。
記憶部111は、ユーザごとの参照データを記憶している。この記憶部111は、オンチップRAM(Random Access Memory)やオフチップRAMを用いて実現できる。
アクセス制御部16は、記憶部111に記憶されているユーザごとの参照データのうち、情報処理部110に保持させる参照データを入れ替える制御を行う。
アクセス制御部16は、記憶部111に記憶されているユーザごとの参照データのうち、情報処理部110に保持させる参照データを入れ替える制御を行う。
以上のようなデータ処理装置10のうち、入出力部11とソフトウェア処理部12とは一般的なサーバ(NICとコンピュータ)で実現することができ、ハードウェア処理部13はFPGAボードで実現することができる。
FPGAに実装されたアプリケーション処理回路17は、書き換えることができるため、サービスの需要に応じて回路の数や種類を変更することが可能である。
FPGAに実装されたアプリケーション処理回路17は、書き換えることができるため、サービスの需要に応じて回路の数や種類を変更することが可能である。
図2に、ソフトウェア処理部12内のアクセス制御部16(アクセス制御装置)のブロック図を示す。アクセス制御部16は、パケット受信部20と、パケット識別部21と、複数のパケットバッファ22と、バッファ選択部23と、パケット転送部24と、スケジューリング部25と、転送制御部26から構成される。
パケット受信部20は、パケット転送機能部15から送られたパケットを受信する。パケット識別部21は、パケットのユーザ属性を識別する。ユーザ属性は、例えばTCP(Transmission Control Protocol)ヘッダやUDP(User Datagram Protocol)ヘッダに含まれるポート番号によって識別が可能である。他にも、パケットに保持されたアプリケーション情報によってユーザ属性を識別する方法などが考えられる。
パケットバッファ22は、ユーザごとに設けられる。パケット識別部21は、識別したユーザ属性に応じてパケットを、対応するパケットバッファ22に格納する。
バッファ選択部23は、複数のパケットバッファ22のうち1つを選択し、選択したパケットバッファ22をパケット転送部24に繋ぐ。このとき、選択すべきパケットバッファ22は、スケジューリング部25によって決定される。パケットバッファ22の決定方法については後述する。
バッファ選択部23は、複数のパケットバッファ22のうち1つを選択し、選択したパケットバッファ22をパケット転送部24に繋ぐ。このとき、選択すべきパケットバッファ22は、スケジューリング部25によって決定される。パケットバッファ22の決定方法については後述する。
パケット転送部24は、バッファ選択部23によって接続されたパケットバッファ22に格納されたパケットを、ハードウェア処理部13に転送する。
転送制御部26は、アプリケーション処理回路17における参照データの更新処理の制御を行う。
転送制御部26は、アプリケーション処理回路17における参照データの更新処理の制御を行う。
アクセス制御部16は、ハードウェアで実装することも可能であるが、ソフトウェアで実装することでより柔軟な制御が可能であると考えられる。例えば、アプリケーション処理回路17を使用するユーザ数が増加した場合、この増加に合わせてパケットバッファ22の数を増やす必要がある。ハードウェア実装では、あらかじめ設定されたパケットバッファ22の数を変えることは困難であるが、ソフトウェア実装では、パケットバッファ22の数を簡単に変更することが可能である。また、スケジューリング部25は、評価関数を用いて、転送対象のパケットバッファ22を決定するが、ソフトウェア処理であれば高精度の計算が可能であり、より細かい制御が可能である。
次に、転送対象のパケットバッファ22を決定するスケジューリング部25の動作を、図3を用いて説明する。
スケジューリング部25は、動作を開始すると、始めに自身の初期化(ステップS30)を行った後、パケットバッファ22の情報を収集する(ステップS31)。その後、スケジューリング部25は、収集した情報に基づいて各パケットバッファ22の状態の評価を行い(ステップS32)、評価関数が最大のパケットバッファ22を転送対象のパケットバッファとして決定する(ステップS33)。パケットバッファ22から収集する情報、およびパケットバッファ22の評価方法については後述する。
スケジューリング部25は、動作を開始すると、始めに自身の初期化(ステップS30)を行った後、パケットバッファ22の情報を収集する(ステップS31)。その後、スケジューリング部25は、収集した情報に基づいて各パケットバッファ22の状態の評価を行い(ステップS32)、評価関数が最大のパケットバッファ22を転送対象のパケットバッファとして決定する(ステップS33)。パケットバッファ22から収集する情報、およびパケットバッファ22の評価方法については後述する。
スケジューリング部25は、ステップS33で決定したパケットバッファ22が前回決定したパケットバッファ22と同じ場合(ステップS34においてYes)、バッファ選択部23および転送制御部26との通信は行わず、動作の終了判定に進む(ステップS37)。この場合、現在接続中のパケットバッファ22とパケット転送部24との接続がそのまま維持される。
また、スケジューリング部25は、ステップS33で決定したパケットバッファ22が前回決定したパケットバッファ22と異なる場合(ステップS34においてNo)、ステップS33で決定したパケットバッファ22を転送制御部26に通知し、パケットバッファ22の切り替えが可能か否かを問い合わせる(ステップS35)。スケジューリング部25は、問い合わせに対する転送制御部26からの返答が来るまで待機状態となる。
スケジューリング部25は、転送制御部26からパケットバッファ22の切り替えが可能(参照データの更新が完了)という返答があったときに(ステップS35においてYes)、ステップS33で決定したパケットバッファ22をバッファ選択部23に通知する(ステップS36)。この通知に応じて、バッファ選択部23は、スケジューリング部25から通知されたパケットバッファ22をパケット転送部24に繋ぐように、パケットバッファ22とパケット転送部24との間の接続を切り替える。
そして、スケジューリング部25は、終了判定を行う(ステップS37)。例えばデータ処理装置10の動作が終了する場合にはスケジューリング部25の動作も終了し、終了しない場合にはステップS31に戻る。
スケジューリング部25が収集するパケットバッファ22の情報を図4を用いて説明する。パケットバッファ22の情報は、図4に示す評価テーブル40の形式でスケジューリング部25内に保持される。評価テーブル40には、各パケットバッファ22に割り当てられた固有のバッファIDと、各パケットバッファ22の保持パケット数Niと、各パケットバッファ22とアプリケーション処理回路17との通信が終わってから経過した時間である待機時間Tiと、各パケットバッファ22とアプリケーション処理回路17との通信が始まってから経過した時間である利用時間tiと、各パケットバッファ22に設定された優先度Piとが格納される。
バッファIDはパケットバッファ22を追加もしくは削除した時に更新されるパラメータであり、優先度PiはQoS(Quality of Service)制御を行うためのパラメータである。優先度Piは、予め設定されることを想定しているが、スケジューリング部25が動作している最中に動的に変更することも可能である。保持パケット数Niは、各パケットバッファ22の領域を確認することで取得できるパラメータである。
また、待機時間Tiおよび利用時間tiは、各パケットバッファ22の状態を監視し、経過時間を測定することで取得可能である。なお、バッファ選択部23によってパケット転送部24と接続されるパケットバッファ22は1つだけなので、パケット転送部24と接続中のパケットバッファ22の利用時間tiのみが更新され、パケット転送部24と接続されていないパケットバッファ22の利用時間tiは全て0となる。また、パケット転送部24と接続されていないパケットバッファ22の待機時間Tiが更新され、接続中のパケットバッファ22の待機時間Tiのみが0となる。
図4に示した保持パケット数Ni、待機時間Ti、利用時間tiおよび優先度Piの一部もしくは全部が、パケットバッファ22を評価し、アプリケーション処理回路17と通信するパケットバッファ22を決定するための評価関数fで使用される。ユースケースによって、これら各パラメータの重要度が変わると考えられるため、評価関数fはユースケースごとに設定することが望ましい。一例として一次関数の評価関数fを説明する。
アプリケーション処理回路17において参照データを切り替える際に必要なコストをCとすると、バッファIDがiのパケットバッファ22の評価関数f(i)は、そのパケットバッファ22の保持パケット数Niと待機時間Tiと優先度Piと利用時間tiとコストCとから次の式(1)により求めることができる。
f(i)=α1×Ni+α2×Ti+α3×Pi-α4×ti-C ・・・(1)
f(i)=α1×Ni+α2×Ti+α3×Pi-α4×ti-C ・・・(1)
ここで、α1~α4は重み付けのための係数(重み係数)である。1例として、重み係数α1~α4を全て1、コストCを1としたとき、図4の評価テーブル40に関して式(1)の評価関数f(i)が最大となるのは、バッファIDがi=0のときであり、評価関数f(0)は41(=30+8+4-0-1)である。この場合、スケジューリング部25は、選択すべきパケットバッファ22として、バッファIDがi=0のパケットバッファ22を決定する。
スケジューリング部25が決定したi=0のパケットバッファ22がバッファ選択部23によってパケット転送部24に接続されるため、このパケットバッファ22の保持パケット数N0が時間の経過に伴って減少する共に、このパケットバッファ22の利用時間t0が増加する。一方、その他のパケットバッファ22では、保持パケット数Niは増加する。そのため、評価関数f(i)が最大のパケットバッファ22が途中で変わると考えられ、あるタイミングで別のパケットバッファ22が転送対象のパケットバッファ22として選ばれるようになる。
次に、パケットバッファ22が切り替わるタイミングで情報処理部110の参照データを更新する転送制御部26の動作を、図5を用いて説明する。
転送制御部26は、動作を開始すると、始めに自身の初期化(ステップS50)を行った後、スケジューリング部25から問い合わせが来るまで待機状態となる(ステップS51)。
転送制御部26は、動作を開始すると、始めに自身の初期化(ステップS50)を行った後、スケジューリング部25から問い合わせが来るまで待機状態となる(ステップS51)。
転送制御部26は、スケジューリング部25からパケットバッファ22の切り替えが可能か否かの問い合わせがあった時点で(ステップS51においてYes)、情報処理部110の状態を確認し(ステップS52)、参照データ更新が可能か否かを判定する(ステップS53)。
情報処理部110が参照データを用いた処理を行っている場合には、参照データを更新することはできない。参照データを更新できない場合には、転送制御部26は待機することになる。一方、情報処理部110の参照データを用いた処理が終了した時点で参照データの更新が可能となるので、転送制御部26は、情報処理部110が保持している参照データを記憶部111に退避させる制御を行う(ステップS54)。
その後、転送制御部26は、スケジューリング部25が転送対象として決定したパケットバッファ22(ユーザ)に対応する参照データを記憶部111から読み出して情報処理部110にダウンロードし(ステップS55)、スケジューリング部25に対してパケットバッファ22の切り替えが可能なことを通知する(ステップS56)。
最後に、転送制御部26は、終了判定を行う(ステップS57)。例えばデータ処理装置10の動作が終了する場合には転送制御部26の動作も終了し、終了しない場合にはステップS51に戻る。
以上の動作により、ユーザごとにパケットを管理し、適切なタイミングで参照データの更新を行うことで、異なるユーザに属するパケットをアプリケーション処理回路17に転送しても常に正しい計算が可能となる。
最後に、本実施例のアクセス制御部16を用いた場合のデータ処理装置10の具体例を図6に示す。この図6の例は、異なる処理を行うアプリケーション処理回路17-1~17-3をハードウェア処理部13に複数実装した場合を示している。なお、図6では、入出力部11とソフトウェア処理部12内の転送制御部14の記載を省略している。
アクセス制御部16-1~16-3は、アプリケーション処理回路17-1~17-3毎に設けられる。各アクセス制御部16-1~16-3には、IPアドレスが割り当てられている。図6の例では、アクセス制御部16-1のIPアドレスは「192.168.1.1」、アクセス制御部16-2のIPアドレスは「192.168.1.2」、アクセス制御部16-3のIPアドレスは「192.168.1.3」となっている。
パケット転送機能部15は、入出力部11によって受信されたパケットのヘッダに記載されたIPアドレスを確認することで、どのアクセス制御部16-1~16-3にパケットを転送すればよいか(すなわち、どのアプリケーション処理回路17-1~17-3にパケットを転送すればよいか)を判断することができる。
また、各アプリケーション処理回路17-1~17-3は、FPGAの再構成可能領域51に実装することもでき、その場合アプリケーション処理回路17-1~17-3の単位で動的に書き換えることが可能である。再構成可能領域51は、例えばFPGAのパーシャルリコンフィギュレーション機能を使うことで実現することができる。このような構成とすることで、各種サービスの利用状況に応じてアプリケーション処理回路17-1~17-3の種類や数を柔軟に変更することができる。
本実施例で説明したソフトウェア処理部12は、CPU(Central Processing Unit)、記憶装置及びインターフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このコンピュータの構成例を図7に示す。コンピュータは、CPU100と、記憶装置101と、インタフェース装置(以下、I/Fと略する)102とを備えている。I/F102には、入出力部11(NIC)とハードウェア処理部13などが接続される。このようなコンピュータにおいて、本発明のアクセス制御方法を実現させるためのプログラムは、記憶装置101に格納される。CPU100は、記憶装置101に記憶されたプログラムに従って本実施例で説明したソフトウェア処理部12(アクセス制御装置)の処理を実行する。
本発明は、ネットワーク上のデータ処理装置を利用する技術に適用することができる。
10…データ処理装置、11…入出力部、12…ソフトウェア処理部、13…ハードウェア処理部、14…転送制御部、15…パケット転送機能部、16…アクセス制御部、17…アプリケーション処理回路、18…パケット受信部、19…パケット送信部、110…情報処理部、111…記憶部、20…パケット受信部、21…パケット識別部、22…パケットバッファ、23…バッファ選択部、24…パケット転送部、25…スケジューリング部、26…転送制御部、51…再構成可能領域。
Claims (7)
- 外部からパケットを受信する第1のステップと、
この第1のステップで受信したパケットのユーザ属性を識別して、ユーザごとに設けられた複数のパケットバッファのうち対応するパケットバッファに前記パケットを格納する第2のステップと、
前記複数のパケットバッファの状態を評価し、転送対象となるパケットバッファを決定する第3のステップと、
パケットから再構築したデータと保持している参照データとに基づいて処理を行う外部のアプリケーション処理回路において前記参照データの更新が可能で、かつ前記第3のステップで決定したパケットバッファが現在の転送対象のパケットバッファと異なる場合に、前記第3のステップで決定したパケットバッファに対応する参照データに更新する第4のステップと、
前記参照データの更新が完了したときに、前記第3のステップで決定したパケットバッファに格納されたパケットを前記アプリケーション処理回路に転送する第5のステップとを含むことを特徴とするアクセス制御方法。 - 請求項1記載のアクセス制御方法において、
前記第3のステップは、
前記複数のパケットバッファおよび前記アプリケーション処理回路に関連したパラメータを収集するステップと、
前記パラメータに基づいて評価関数を計算するステップと、
前記評価関数が最大のパケットバッファを前記転送対象のパケットバッファとして決定するステップとを含み、
前記パラメータは、各パケットバッファの保持パケット数と、各パケットバッファと前記アプリケーション処理回路との通信が終わってからの経過時間である待機時間と、各パケットバッファと前記アプリケーション処理回路との通信が始まってからの経過時間である利用時間と、各パケットバッファに設定された優先度と、前記アプリケーション処理回路における参照データの更新処理で発生するコストであることを特徴とするアクセス制御方法。 - 請求項1または2記載のアクセス制御方法において、
前記第4のステップは、
前記アプリケーション処理回路の状態を監視するステップと、
前記アプリケーション処理回路において前記参照データの更新が可能で、かつ前記第3のステップで決定したパケットバッファが現在の転送対象のパケットバッファと異なる場合に、前記アプリケーション処理回路に保持された参照データを記憶部に退避させるステップと、
前記第3のステップで決定したパケットバッファに対応する参照データを前記記憶部から読み出して前記アプリケーション処理回路にダウンロードするステップとを含むことを特徴とするアクセス制御方法。 - 外部からパケットを受信するパケット受信部と、
ユーザごとに設けられた複数のパケットバッファと、
前記パケット受信部によって受信されたパケットのユーザ属性を識別して、このパケットを対応するパケットバッファに格納するパケット識別部と、
前記複数のパケットバッファの状態を評価し、転送対象となるパケットバッファを決定するスケジューリング部と、
パケットから再構築したデータと保持している参照データとに基づいて処理を行う外部のアプリケーション処理回路において前記参照データの更新が可能で、かつ前記スケジューリング部によって決定されたパケットバッファが現在の転送対象のパケットバッファと異なる場合に、前記スケジューリング部によって決定されたパケットバッファに対応する参照データに更新する転送制御部と、
前記パケットバッファに格納されたパケットを前記アプリケーション処理回路に転送するパケット転送部と、
前記複数のパケットバッファのうちいずれか1つを前記パケット転送部に接続し、前記参照データの更新が完了したときに、前記スケジューリング部によって転送対象として決定されたパケットバッファを前記パケット転送部に繋ぐように、前記パケットバッファと前記パケット転送部との間の接続を切り替えるバッファ選択部とを備え、
前記パケット転送部は、前記バッファ選択部によって接続されたパケットバッファに格納されたパケットを前記アプリケーション処理回路に転送することを特徴とするアクセス制御装置。 - 請求項4記載のアクセス制御装置において、
前記スケジューリング部は、前記複数のパケットバッファおよび前記アプリケーション処理回路に関連したパラメータを収集して、このパラメータに基づいて評価関数を計算し、計算した評価関数が最大のパケットバッファを前記転送対象のパケットバッファとして決定し、
前記パラメータは、各パケットバッファの保持パケット数と、各パケットバッファと前記アプリケーション処理回路との通信が終わってからの経過時間である待機時間と、各パケットバッファと前記アプリケーション処理回路との通信が始まってからの経過時間である利用時間と、各パケットバッファに設定された優先度と、前記アプリケーション処理回路における参照データの更新処理で発生するコストであることを特徴とするアクセス制御装置。 - 請求項4または5記載のアクセス制御装置において、
前記転送制御部は、前記アプリケーション処理回路において前記参照データの更新が可能で、かつ前記スケジューリング部によって決定されたパケットバッファが現在の転送対象のパケットバッファと異なる場合に、前記アプリケーション処理回路に保持された参照データを外部の記憶部に退避させ、前記スケジューリング部によって転送対象として決定されたパケットバッファに対応する参照データを前記記憶部から読み出して前記アプリケーション処理回路にダウンロードすることを特徴とするアクセス制御装置。 - パケットから再構築したデータと保持している参照データとに基づいて処理を行うアプリケーション処理回路と、
ユーザごとの参照データを記憶する記憶部と、
前記アプリケーション処理回路ごとに設けられる、請求項4または5記載のアクセス制御装置と、
外部から受信したパケットを、転送先のアプリケーション処理回路に対応するアクセス制御装置に送出するパケット転送機能部とを備えることを特徴とするデータ処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018208717A JP7044033B2 (ja) | 2018-11-06 | 2018-11-06 | アクセス制御方法、アクセス制御装置、およびデータ処理装置 |
PCT/JP2019/041481 WO2020095677A1 (ja) | 2018-11-06 | 2019-10-23 | アクセス制御方法、アクセス制御装置、およびデータ処理装置 |
US17/290,342 US11374874B2 (en) | 2018-11-06 | 2019-10-23 | Access control method, access control device, and data processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018208717A JP7044033B2 (ja) | 2018-11-06 | 2018-11-06 | アクセス制御方法、アクセス制御装置、およびデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020077088A JP2020077088A (ja) | 2020-05-21 |
JP7044033B2 true JP7044033B2 (ja) | 2022-03-30 |
Family
ID=70611994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018208717A Active JP7044033B2 (ja) | 2018-11-06 | 2018-11-06 | アクセス制御方法、アクセス制御装置、およびデータ処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11374874B2 (ja) |
JP (1) | JP7044033B2 (ja) |
WO (1) | WO2020095677A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7044033B2 (ja) * | 2018-11-06 | 2022-03-30 | 日本電信電話株式会社 | アクセス制御方法、アクセス制御装置、およびデータ処理装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013206390A (ja) | 2012-03-29 | 2013-10-07 | Fujitsu Ltd | スイッチ、情報処理装置および通信制御方法 |
CN107623834A (zh) | 2016-07-11 | 2018-01-23 | 富强 | 一种基于fpga的运动目标检测系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4361430B2 (ja) * | 2004-06-29 | 2009-11-11 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 双方向画像通信装置、その処理方法及びクライアント装置並びにプログラム |
JP4409401B2 (ja) * | 2004-10-08 | 2010-02-03 | 株式会社日立製作所 | パケット転送装置及びストレージシステム |
US7944946B2 (en) * | 2008-06-09 | 2011-05-17 | Fortinet, Inc. | Virtual memory protocol segmentation offloading |
CN101436996B (zh) * | 2008-12-19 | 2010-12-15 | 广东工业大学 | 基于短时公平性的分组反馈调度方法 |
US9843617B2 (en) * | 2014-03-26 | 2017-12-12 | Rockwell Automation Technologies, Inc. | Cloud manifest configuration management system |
US9985903B2 (en) * | 2015-12-29 | 2018-05-29 | Amazon Technologies, Inc. | Reliable, out-of-order receipt of packets |
CN106790762B (zh) * | 2017-01-11 | 2022-05-24 | 腾讯科技(深圳)有限公司 | 域名解析方法和装置 |
CN108055494A (zh) * | 2017-12-21 | 2018-05-18 | 北京奇艺世纪科技有限公司 | 一种音频处理方法及装置 |
JP7044033B2 (ja) * | 2018-11-06 | 2022-03-30 | 日本電信電話株式会社 | アクセス制御方法、アクセス制御装置、およびデータ処理装置 |
-
2018
- 2018-11-06 JP JP2018208717A patent/JP7044033B2/ja active Active
-
2019
- 2019-10-23 US US17/290,342 patent/US11374874B2/en active Active
- 2019-10-23 WO PCT/JP2019/041481 patent/WO2020095677A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013206390A (ja) | 2012-03-29 | 2013-10-07 | Fujitsu Ltd | スイッチ、情報処理装置および通信制御方法 |
CN107623834A (zh) | 2016-07-11 | 2018-01-23 | 富强 | 一种基于fpga的运动目标检测系统 |
Non-Patent Citations (1)
Title |
---|
渡邊 義和,CPU/FPGA密結合アーキテクチャを用いたネットワーク機能仮想化アクセラレーション手法,情報処理学会 シンポジウム DAシンポジウム 2016 [online] ,日本,情報処理学会,2016年09月07日,第116頁-第121頁 |
Also Published As
Publication number | Publication date |
---|---|
US20210409344A1 (en) | 2021-12-30 |
US11374874B2 (en) | 2022-06-28 |
JP2020077088A (ja) | 2020-05-21 |
WO2020095677A1 (ja) | 2020-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113973077B (zh) | 用于提高云应用中的网络弹性的可扩展网络流量工程平台 | |
CN109937401A (zh) | 经由业务旁路进行的负载均衡虚拟机的实时迁移 | |
US11483232B1 (en) | Auto load balancing | |
US7315896B2 (en) | Server network controller including packet forwarding and method therefor | |
CN111865781A (zh) | 用于路径优化的方法、设备和计算机程序产品 | |
CN109040243A (zh) | 一种报文处理方法及装置 | |
US20230134135A1 (en) | Real-time detection of completion of sensor wrap completion in gnmi telemetry of a network device | |
JP7044033B2 (ja) | アクセス制御方法、アクセス制御装置、およびデータ処理装置 | |
Chim et al. | Traffic distribution over equal-cost-multi-paths | |
CN109120556B (zh) | 一种云主机访问对象存储服务器的方法及系统 | |
CN112333273B (zh) | 一种访问请求的转发方法及系统 | |
CN107135091A (zh) | 一种应用质量指标映射方法、服务器和客户端 | |
Iqbal et al. | Instant queue occupancy used for automatic traffic scheduling in data center networks | |
EP1768308A1 (en) | Data distribution to nodes of a telecommunication network | |
CN110851275B (zh) | 路由节点的负载转移方法及装置 | |
CN110301116A (zh) | 通过绑定连接传送和接收数据分组的方法和系统 | |
Khan et al. | Novel model to inculcate proactive behaviour in programmable switches for floodlight controlled software defined network | |
KR20210029834A (ko) | 멀티 코어 프로세서에서 연결 및 CAA(clat aware affinity) 기반 스케줄링 설정을 위한 방법 및 장치 | |
Banjar et al. | Daim: a mechanism to distribute control functions within openflow switches | |
Banjar et al. | Comparison of TCP/IP routing versus openflow table and implementation of intelligent computational model to provide autonomous behavior | |
CN105580330B (zh) | 一种数据传输的方法、设备和系统 | |
CN113709761B (zh) | 基于动态位置的内容分发方法、系统、设备及存储介质 | |
JP2019106578A (ja) | 情報処理装置、情報処理システム、情報処理方法、及びプログラム | |
JP6895354B2 (ja) | 通信中継装置 | |
Sathyanarayana et al. | Design, Implementation, and Evaluation of Host-based In-band Network Telemetry for TCP |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210219 |
|
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: 20220215 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220228 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7044033 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |