(57)【要約】【課題】ホストプロセッサで実行されるリアルタイム処理を考慮して、メモリへのデータアクセスを制御する。【解決手段】実施形態の処理装置は、データアクセス部と受付部と制御部とを備える。データアクセス部は、メモリへのデータの書き込み、及び、前記メモリからのデータの読み出しの少なくとも一方を示すデータアクセスを行う。受付部は、前記データアクセスのタイミングを制御するアクセス制御情報を受け付ける。制御部は、前記アクセス制御情報に基づいて、前記データアクセスのタイミングを制御する。【選択図】図２
2020149526.tif 000002
【特許請求の範囲】
【請求項１】
メモリへのデータの書き込み、及び、前記メモリからのデータの読み出しの少なくとも一方を示すデータアクセスを行うデータアクセス部と、
前記データアクセスのタイミングを制御するアクセス制御情報を受け付ける受付部と、
前記アクセス制御情報に基づいて、前記データアクセスのタイミングを制御する制御部と、
を備える処理装置。
【請求項２】
前記データアクセス部は、前記メモリへ書き込まれるデータを管理する書き込みディスクリプタ、及び、前記メモリから読み出されるデータを管理する読み出しディスクリプタの少なくとも一方に対するアクセスも行い、
前記制御部は、前記書き込みディスクリプタ、及び、前記読み出しディスクリプタの少なくとも一方にアクセスするタイミングを更に制御する、
請求項１に記載の処理装置。
【請求項３】
時刻情報を管理する時刻管理部を更に備え、
前記アクセス制御情報は、前記時刻情報に応じて定められたスケジュール情報に基づいてアクセスを制御する情報を含み、
前記制御部は、前記アクセス制御情報に基づいて、前記データアクセスを制限又は禁止する、
請求項１に記載の処理装置。
【請求項４】
前記アクセス制御情報は、前記時刻情報に応じて定められたリアルタイムタスク処理実行期間を含み、
前記制御部は、前記リアルタイムタスク処理実行期間では、前記データアクセスを制限又は禁止する、
請求項３に記載の処理装置。
【請求項５】
前記アクセス制御情報は、前記時刻情報に応じて定められたアクセス制限期間を含み、
前記制御部は、前記アクセス制限期間では、前記データアクセスを制限する、
請求項３に記載の処理装置。
【請求項６】
前記アクセス制御情報は、前記時刻情報に応じて定められたアクセス許可期間とアクセス禁止期間との少なくとも一方を含み、
前記制御部は、前記アクセス禁止期間では、前記データアクセスを禁止する、
請求項３に記載の処理装置。
【請求項７】
前記アクセス制御情報は、前記アクセス許可期間と前記アクセス禁止期間との少なくとも一方をデータの種別毎に制御する情報を含み、
前記制御部は、前記データの種別を識別し、前記アクセス制御情報に基づいて、前記データの種別毎に、前記データアクセスのタイミングを制御する、
請求項６に記載の処理装置。
【請求項８】
前記データの種別は、データに含まれるＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスにより分類される、
請求項７に記載の処理装置。
【請求項９】
前記データの種別は、データの優先度により更に分類される、
請求項８に記載の処理装置。
【請求項１０】
前記データの種別は、データに含まれるネームスペースにより分類される、
請求項７に記載の処理装置。
【請求項１１】
メモリへのデータの書き込み、及び、前記メモリからのデータの読み出しの少なくとも一方を示すデータアクセスを行うステップと、
前記データアクセスのタイミングを制御するアクセス制御情報を受け付けるステップと、
前記アクセス制御情報に基づいて、前記データアクセスのタイミングを制御するステップと、
を含む処理方法。
【請求項１２】
コンピュータを、
メモリへのデータの書き込み、及び、前記メモリからのデータの読み出しの少なくとも一方を示すデータアクセスを行うデータアクセス部と、
前記データアクセスのタイミングを制御するアクセス制御情報を受け付ける受付部と、
前記アクセス制御情報に基づいて、前記データアクセスのタイミングを制御する制御部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は処理装置、処理方法及びプログラムに関する。
【背景技術】
【０００２】
仮想マシン技術を用いて、複数のマシンを１つのホストに集約して動作させる技術が従来から知られている。産業システムなどの分野にも仮想化が浸透してきており、リアルタイム性が必要な処理（リアルタイム処理）を行う仮想マシンと、リアルタイム性が必要ない処理（非リアルタイム処理）を行う仮想マシンと、が同一ホストにて動作することが考えられる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“Ｉｎｔｅｌ  Ｅｔｈｅｒｎｅｔ  Ｓｅｒｖｅｒ  Ａｄａｐｔｅｒ  Ｉ２１０”  Ｉｎｔｅｌ  Ｃｏｒｐ．
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、ホストプロセッサで実行されるリアルタイム処理を考慮して、メモリへのデータアクセスを制御することが難しかった。
【課題を解決するための手段】
【０００５】
実施形態の処理装置は、データアクセス部と受付部と制御部とを備える。データアクセス部は、メモリへのデータの書き込み、及び、前記メモリからのデータの読み出しの少なくとも一方を示すデータアクセスを行う。受付部は、前記データアクセスのタイミングを制御するアクセス制御情報を受け付ける。制御部は、前記アクセス制御情報に基づいて、前記データアクセスのタイミングを制御する。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態の処理装置のハードウェア構成の例を示す図。
【図２】第１実施形態の処理装置の機能構成の例を示す図。
【図３】第１実施形態の仮想マシンスケジュール情報の例を示す図。
【図４】第１実施形態のタスクスケジュール情報の例を示す図。
【図５Ａ】第１実施形態の送信ディスクリプタリングについて説明するための図。
【図５Ｂ】第１実施形態の受信ディスクリプタリングについて説明するための図。
【図６】第１実施形態の受信処理におけるデータの流れを示す図。
【図７】第１実施形態のマッピング情報の例を示す図。
【図８】第１実施形態の送信処理におけるデータの流れを示す図。
【図９Ａ】第１実施形態のアクセス制御情報の例を示す図。
【図９Ｂ】第１実施形態のアクセス制御情報の例を示す図。
【図９Ｃ】第１実施形態のアクセス制御情報の例を示す図。
【図９Ｄ】第１実施形態のアクセス制御情報の例を示す図。
【図１０】第１実施形態のアクセス制御情報の設定処理の例を示すフローチャート。
【図１１】第１実施形態のフレーム受信処理の例を示すフローチャート。
【図１２】第１実施形態のフレーム送信処理の例を示すフローチャート。
【図１３】第２実施形態の処理装置の機能構成の例を示す図。
【図１４】第２実施形態のデータ読み出し処理におけるデータの流れを示す図。
【図１５】第２実施形態のデータ書き込み処理におけるデータの流れを示す図。
【図１６Ａ】第２実施形態のアクセス制御情報の例を示す図。
【図１６Ｂ】第２実施形態のアクセス制御情報の例を示す図。
【図１６Ｃ】第２実施形態のアクセス制御情報の例を示す図。
【図１７】第２実施形態のデータ読み出し処理の例を示すフローチャート。
【図１８】第２実施形態のデータ書き込み処理の例を示すフローチャート。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、処理装置、処理方法及びプログラムの実施形態を詳細に説明する。
【０００８】
（第１実施形態）
［ハードウェア構成の例］
図１は第１実施形態の処理装置のハードウェア構成の例を示す図である。第１実施形態の通信装置は、メモリ１、ホストプロセッサ２、ストレージ３、ネットワークインタフェースコントローラ４及びストレージコントローラ５を備える。
【０００９】
メモリ１は、ホストプロセッサ２内のメモリコントローラを介してホストプロセッサ２に接続される。メモリ１は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等により実現される。
【００１０】
ホストプロセッサ２は、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）等のバスを用いて、ストレージコントローラ５と接続される。同様に、ホストプロセッサ２は、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）等のバスを用いて、ネットワークインタフェースコントローラ４と接続される。
【００１１】
ホストプロセッサ２は、ストレージ３に格納された実行プログラムのイメージをメモリ１に展開し、メモリ１上の命令及びデータを読みながら処理を実行する。処理は、ホストプロセッサ２に備えられた１つまたは複数のコアにより実行される。また、ホストプロセッサ２は、ハードウェア仮想化支援機能を備えており、仮想化対応命令セット及びＩＯＭＭＵ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）等により、効率的に仮想マシンを実行することができる。
【００１２】
ストレージ３（ストレージコントローラ５）、及び、ネットワークインタフェースコントローラ４は、ホストプロセッサ２に接続される周辺装置・周辺機器・ペリフェラルである。
【００１３】
ストレージ３は、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等により実現される。ストレージ３は、ＳＡＴＡやＳＡＳ、Ｕ．２（ＳＦＦ−８６３９）などの規格でストレージコントローラ５と接続される。またストレージ３とストレージコントローラ５とは一体となっていてもよい。
【００１４】
ネットワークインタフェースコントローラ４は、ホストプロセッサ２をネットワーク２００に接続する。
【００１５】
ネットワーク２００は、例えばＥｔｈｅｒｎｅｔ（登録商標）である。具体的には、ネットワーク２００は、ＩＥＥＥ  ８０２．１で定義された規格に対応したネットワークである。ＩＥＥＥ  ８０２．１で定義された規格は、例えば、ＡＶＢ（Ａｕｄｉｏ  Ｖｉｄｅｏ  Ｂｒｉｄｇｉｎｇ）規格、及び、ＴＳＮ（Ｔｉｍｅ−Ｓｅｎｓｉｔｉｖｅ  Ｎｅｔｗｏｒｋｉｎｇ）規格等である。また、ネットワーク２００の種類は任意でよい。ネットワーク２００は、例えばオフィスネットワーク、データセンタ内部のネットワーク、車載ネットワーク、工場内ネットワーク、及び、携帯基地局のネットワーク等である。
【００１６】
ネットワークインタフェースコントローラ４及びストレージコントローラ５は、例えばＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、及び、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等により実現される。また、ネットワークインタフェースコントローラ４及びストレージコントローラ５は、ＡＳＩＣ、ＦＰＧＡ及びプロセッサの組み合わせによって実現してもよい。また、ネットワークインタフェースコントローラ４及びストレージコントローラ５は内部に上述のメモリ１とは異なるメモリを内蔵していてもよい。また、ネットワークインタフェースコントローラ４及びストレージコントローラ５は、ホストプロセッサ２とは別のチップとして実装されてもよいし、ＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−Ｃｈｉｐ）として１つのチップとして実装されてもよい。
【００１７】
［機能構成の例］
図２は第１実施形態の処理装置１００の機能構成の例を示す図である。第１実施形態の処理装置１００の主要部の機能は、上述のメモリ１、ホストプロセッサ２及びネットワークインタフェースコントローラ４により実現される。第１実施形態では、処理装置１００を通信装置として機能させる場合を例にして説明する。
【００１８】
ホストプロセッサ２では、仮想マシンＡ〜Ｆが動作する。なお、図２では、紙面の都合上、仮想マシンＣ〜Ｆの記載が省略されている。仮想マシンＣ〜Ｆの機能構成、及び、仮想マシンＣ〜Ｆと他の機能ブロックとの入出力等の説明は、図２における仮想マシンＡ及びＢの機能構成、及び、仮想マシンＡ及びＢと他の機能ブロックとの入出力に関する説明と同様である。
【００１９】
ネットワークインタフェースコントローラ４は、ホストプロセッサ２の指示に従って、ネットワーク２００を介したフレームの送受信処理を実行する。フレームは、例えばＥｔｈｅｒｎｅｔ（登録商標）フレームである。ネットワークインタフェースコントローラ４は、ＳＲ−ＩＯＶ（Ｓｉｎｇｌｅ  Ｒｏｏｔ  Ｉ／Ｏ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）に対応している。各仮想マシンＡ〜Ｆは、ＰＣＩ  Ｐａｓｓｔｈｒｏｕｇｈの機能によって、ネットワークインタフェースコントローラ４に直接アクセスできる。ネットワークインタフェースコントローラ４の通知部４０５とデータアクセス部４０６は、仮想マシンＡ〜Ｆの各仮想マシンから独立してアクセスできるインタフェースを備えてもよい。すなわち、仮想マシン毎にレジスタアクセスインタフェース、ＤＭＡインタフェース、割り込み通知インタフェースを備えてもよい。
【００２０】
メモリ１は、仮想マシンスケジュール情報記憶部１０１、タスクスケジュール情報記憶部１０２ａ〜１０２ｂ、及び、データ記憶部１０３ａ〜１０３ｂを備える。
【００２１】
ホストプロセッサ２は、仮想マシン制御部２０１、仮想マシンＡ〜Ｆ、時刻管理部２０４及びアクセス制御情報生成部２０５を備える。仮想マシンＡは、タスク制御部２０２ａ及びタスク実行部２０３ａを備える。同様に、仮想マシンＢは、タスク制御部２０２ｂ及びタスク実行部２０３ｂを備える。
【００２２】
ネットワークインタフェースコントローラ４は、時刻管理部４０１、出力タイミング情報記憶部４０２、アクセス制御情報受付部４０３、アクセスタイミング制御部４０４、通知部４０５、データアクセス部４０６、データバッファ部４０７、出力タイミング制御部４０８、データ入出力部４０９、入力データ振り分け部４１０及びネットワーク情報管理部４１１を備える。
【００２３】
仮想マシン制御部２０１は、仮想マシンＡ〜Ｆを実現するためのコンピュータ資源の管理および制御機能を提供する。仮想マシン制御部２０１は、例えば仮想マシンモニタ、ハイパーバイザー及び仮想化ＯＳ等である。仮想マシン制御部２０１により、コンピュータ資源を論理的に分割・統合させることができる。例えば、仮想マシン制御部２０１により、１台のコンピュータを複数台のコンピュータであるかのように、複数の仮想マシンＡ〜Ｆに論理的に分割できる。これにより、それぞれの仮想マシンＡ〜Ｆに、ＯＳやアプリケーションを独立して動作させることができる。仮想マシン制御部２０１は、仮想マシンスケジューリング情報記憶部１０１に記憶されている仮想マシンスケジューリング情報をもとに仮想マシンＡ〜Ｆの制御を行う。また、仮想マシン制御部２０１は、周辺機器などから通知される割り込み通知の管理や制御も行い、後述するタスク制御部２０２ａ〜２０２ｂに割り込み通知を伝達する。
【００２４】
仮想マシンスケジューリング情報記憶部１０１には、ＣＰＵコア毎に与えられる仮想マシンスケジューリング情報が記憶される。
【００２５】
＜仮想マシンスケジューリング情報の例＞
図３は第１実施形態の仮想マシンスケジュール情報の例を示す図である。図３の例は、ＡＲＩＮＣ  ６５３で規定されるスケジューリング情報である。図３の例では、各仮想マシンＡ〜Ｆの実行時間が一定時間（この例では１ｍｓ）で切り替えられながら、各仮想マシンＡ〜Ｆが周期的に動作する。すなわち、各仮想マシンＡ〜Ｆは、実行時間が与えられている期間に動作することができる。
【００２６】
なお、ここでは、ＡＲＩＮＣ  ６５３の例を示したが、各ＣＰＵに与えられるスケジューリング方式はこれに限られない。例えば、各ＣＰＵに与えられるスケジューリング方式は、クレジットベース、ＥＤＦ（Ｅａｒｌｉｅｓｔ  Ｄｅａｄｌｉｎｅ  Ｆｉｒｓｔ）ベース、及び、ＲＴＤＳ（Ｒｅａｌ−Ｔｉｍｅ−Ｄｅｆｅｒｒａｂｌｅ−Ｓｅｒｖｅｒ）ベースなどのスケジューリング方式でもよい。これらのスケジューリング方式によるスケジューリング動作は、時刻管理部２０４によって供給される時刻情報に基づいて行われる。
【００２７】
図２に戻り、時刻管理部２０４では、ホストプロセッサ２内の時間情報を管理する。時刻情報は例えば、ネットワーク２００を介して、ＮＴＰやＩＥＥＥ１５８８、ＩＥＥＥ８０２．１ＡＳなどの時刻同期プロトコルによって同期された時刻情報を用いてもよい。また例えば、時刻情報は、ＧＰＳなどから得られた時刻情報に同期された時刻情報であってもよい。なお、時刻管理部２０４の時刻情報は、後述するネットワークインタフェースコントローラ４の時刻管理部４０１の時刻情報と同期していることが好ましい。
【００２８】
タスク制御部２０２ａは、仮想マシンＡ全体の管理および制御を行う。タスク制御部２０２ａは、いわゆるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の機能を提供する。ここで、タスクは、プロセスやスレッド、ジョブであってもよく、ＯＳから制御される処理の単位を示す。タスク制御部２０２ａは、タスクの実行に必要なプロセッサやメモリなどの資源管理および制御を行う。具体的には、タスク制御部２０２ａは、プロセッサの実行時間やメモリの割り当て、実行時間の切り替え、仮想メモリと物理メモリのマッピングなどを行う。また、タスク制御部２０２ａは、仮想マシン制御部２０１から通知される割り込み通知の管理や制御も行う。タスク制御部２０２ａは、タスクスケジュール情報記憶部１０１に記憶されているタスクスケジュール情報に基づいて、タスク実行時間の割り当てや制御を行う。
【００２９】
仮想マシンＢのタスク制御部２０２ｂの説明は、仮想マシンＡのタスク制御部２０２ａの説明と同様なので省略する。以下、同様に、仮想マシンＡ及びＢについての同様の説明は、仮想マシンＡの場合を例にして説明し、仮想マシンＢの場合については説明を省略する。
【００３０】
＜タスクスケジュール情報の例＞
図４は第１実施形態のタスクスケジュール情報の例を示す図である。図４は、リアルタイム処理を行う仮想マシンＡ、Ｂ及びＤのタスクスケジュール情報の例を示す。仮想マシンＡ、Ｂ及びＤでは、ＲＴＯＳ（Ｒｅａｌ−Ｔｉｍｅ  ＯＳ）が動作し、例えばＡＲＩＮＣ  ６５３の規定に基づいたスケジューリングが行われるとする。仮想マシンＡでは、タスクａ〜ｃが動作し、仮想マシンＢではタスクａ、仮想マシンＣではタスクａ及びｂが動作する。仮想マシンＣ、Ｅ及びＦでは別途汎用ＯＳが動作する。汎用ＯＳが動作する場合もタスクスケジューリング情報にはそのタスクの優先度やこれまでのタスクの実行経過時間などスケジューリングに必要な情報が記憶される。
【００３１】
図２に戻り、アクセス制御情報生成部２０５は、仮想マシンスケジュール情報記憶部１０１から、仮想マシンスケジュール情報を取得し、タスクスケジュール情報記憶部１０２ａ〜１０２ｂから、タスクスケジュール情報を取得する。アクセス制御情報生成部２０５は、アクセス制御情報を生成し、当該アクセス制御情報をアクセス制御情報受付部４０３に通知する。
【００３２】
例えば、アクセス制御情報は、上述の仮想マシンスケジュール情報及びタスクスケジュール情報等のスケジュール情報に基づいてアクセスを制御する情報を含む。具体的には、アクセス制御情報は、例えばホストプロセッサ２でリアルタイム処理が実行される時間から算出されたアクセス禁止期間などの情報を含む。この場合、アクセスタイミング制御部４０４は、アクセス禁止期間では、例えばメモリ１へのデータアクセス部４０６からのデータアクセスを禁止する。また例えば、アクセス制御情報は、時刻情報に応じて定められたリアルタイムタスク処理実行期間を含む。この場合、アクセスタイミング制御部４０４は、リアルタイムタスク処理実行期間では、例えばメモリ１へのデータアクセス部４０６からのデータアクセスを制限又は禁止する。アクセス制御情報の具体例については後述する。
【００３３】
なお、仮想マシン環境でない場合には、タスクスケジュール情報のみを使ってアクセス制御情報を生成してもよいし、仮想マシンスケジューリング情報しか得られない場合には、仮想マシンスケジューリング情報のみを用いてアクセス制御情報を生成してもよい。
【００３４】
データ記憶部１０３ａは、タスク実行部２０３ａが実行するプログラムやタスク実行部２０３ａが保持するデータの記憶に用いられる。データ記憶部１０３ａは、図示しないが、タスク制御部２０２ａのデータを記憶してもよい。タスク実行部２０３ａはメモリ１上のデータ記憶部１０３ａからプログラムを読み出しながらプログラムを実行していく。また、タスク実行部２０３ａで保持されるデータはデータ記憶部１０３ａに保存される。データ記憶部１０３ａは、ネットワークインタフェースコントローラ４を介して送受信されるフレームを伝達する際に、フレームに関するデータを記憶するために用いられる。例えば、データ記憶部１０３ａには、フレームを受信するための受信ディスクリプタリング、フレームを送信するための送信ディスクリプタリング、及び、フレームのデータが記憶される。データ記憶部１０３ａは、仮想マシンＡが使用するネットワークインタフェースを複数収容できるようにしてもよいし、仮想マシンＡが使用するネットワークインタフェース毎に設けてもよい。
【００３５】
図５Ａは第１実施形態の送信ディスクリプタリングについて説明するための図であるである。送信ディスクリプタは、リングバッファになっており、ＨｅａｄとＴａｉｌという２つの変数を用いて管理される。図５Ａに示すように、ＨｅａｄからＴａｉｌ−１のディスクリプタは、ＨＷ（ハードウェア）、すなわちネットワークインタフェースコントローラ４が所有しているディスクリプタを示す。また、ＴａｉｌからＨｅａｄ−１のディスクリプタは、ＳＷ（ソフトウェア）、すなわちホストプロセッサ２上で動作するソフトウェア（タスク制御部２０２ａまたはタスク実行部２０３ａ）が所有しているディスクリプタを示す。ＨｅａｄとＴａｉｌの値は後述する通知部４０５を通じてやり取りされる。
【００３６】
送信ディスクリプタリングの各エントリ（各ディスクリプタ）には、転送元アドレス、長さ及びステータスが含まれる。転送元アドレスは、送信対象のフレームのデータが記憶されているデータ記憶部１０３ａの記憶領域の先頭位置を示す先頭アドレスを示す。長さは、送信対象のフレームの長さを示す。ステータスは、送信処理の状態を示す情報が格納される。
【００３７】
なお、送信ディスクリプタリングは、メモリ１に対するデータアクセスの観点では、メモリ１からのデータの読み出し（送信データの読み出し）を管理するディスクリプタリングである。
【００３８】
図５Ｂは第１実施形態の受信ディスクリプタリングについて説明するための図である。
受信ディスクリプタリングの各エントリ（各ディスクリプタ）は、転送先アドレス、長さ及びステータスを含む。転送先アドレスは、受信対象のフレームのデータを記憶するデータ記憶部１０３ａの記憶領域の先頭位置を示す先頭アドレスを示す。長さは、受信対象のフレームの長さを示す。ステータスは、受信処理の状態を示す情報が格納される。
【００３９】
上述のステータスには、例えばエラービット及びＤＯＮＥビット等が含まれる。エラービットは、転送エラーの有無を示す。ＤＯＮＥビットは、ネットワークインタフェースコントローラで処理が終わったことを示す。送信用ディスクリプタのＤＯＮＥビットが１の場合、送信処理が終わったことを示し、受信用ディスクリプタのＤＯＮＥビットが１の場合、受信処理が終わったことを示す。ネットワークインタフェースコントローラ４が、各ビット（エラービット及びＤＯＮＥビット）に１を書き込む。そして、タスク制御部（例えばタスク実行部２０２ａ）、または、タスク実行部（例えばタスク実行部２０３ａ）が、各ビットを確認した後に、各ビットに０を書き込むことにより、各ビットをクリアする。
【００４０】
なお、受信ディスクリプタリングは、メモリ１に対するデータアクセスの観点では、メモリ１へのデータの書き込み（受信データの書き込み）を管理するディスクリプタリングである。
【００４１】
図２に戻り、データ入出力部４０９は、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）やＰＨＹと呼ばれる機能を含む。データ入出力部４０９は、データリンク層および物理層のプロトコルに従ってフレームの送受信に必要な処理を行う。
【００４２】
ネットワークインタフェースコントローラ４の時刻管理部４０１は、ネットワークインタフェースコントローラ４内の時刻情報を管理する。時刻情報は、例えばネットワーク２００を介して、ＮＴＰやＩＥＥＥ１５８８、ＩＥＥＥ８０２．１ＡＳなどの時刻同期プロトコルによって同期された時刻情報を用いてもよい。また、時刻情報は、ＧＰＳなどから得られた時刻情報に同期された時刻情報であってもよい。この時刻管理部４０１から提供される時刻情報は前述したホストプロセッサ２内の時刻管理部２０４の提供する時刻情報と同期されていることが望ましい。例えば、ＩＥＥＥ１５８８やＩＥＥＥ８０２．１ＡＳで時刻同期を行う場合には、データ入出力部４０９が、時刻管理部４０１のカウンタを用いて、送受信フレームへのタイムスタンプを付与し、グランドマスタからの時刻オフセットを算出し、時刻管理部４０１の時刻情報を補正するようにしてもよい。さらに、ネットワークインタフェースコントローラ４が、データ入出力部４０９により補正されたクロックを基に、ホストプロセッサ２側の時刻管理部２０４のクロックを補正してもよい。
【００４３】
入力データ振り分け部４１０は、受信したフレームを振り分ける機能部である。
【００４４】
図６は第１実施形態の受信処理におけるデータの流れを示す図である。入力データ振り分け部４１０は、例えば、図６に示すように、受信したフレームの送信先ＭＡＣアドレスとトラヒッククラスとによる振り分けを行う。この例では、仮想マシンＡのＭＡＣアドレスはＡＡ−ＡＡ−ＡＡ−ＡＡ−ＡＡ−ＡＡであり、仮想マシンＢのＭＡＣアドレスはＢＢ−ＢＢ−ＢＢ−ＢＢ−ＢＢ−ＢＢであり、仮想マシンＣのＭＡＣアドレスはＣＣ−ＣＣ−ＣＣ−ＣＣ−ＣＣ−ＣＣであるとする。なお、図６の例では、仮想マシンＤ〜Ｆについては、省略されているが、仮想マシンＤ〜Ｆについても仮想マシンＡ〜Ｃの場合と同様である。
【００４５】
ＭＡＣアドレスと仮想マシンＡ〜Ｃとの対応情報は、ネットワーク情報管理部４１１に記録されている。なお、１台の仮想マシン（例えば仮想マシンＡ）に接続されるネットワークインタフェースコントローラ４は１つである必要はなく、複数接続されてもよい。この場合もＭＡＣアドレスによって対応付けが行われる。まず、入力データ振り分け部４１０では受信したフレームの送信先ＭＡＣアドレスから、その受信フレームが、どの仮想マシンアドレス宛のものかを判別する。次に、入力データ振り分け部４１０が、受信フレームのＶＬＡＮタグに含まれる優先度を示すＰＣＰ値を取得する。そして、入力データ振り分け部４１０が、ネットワーク情報管理部４１１から提供される優先度とトラヒッククラスとのマッピング情報から、受信フレームのトラフィッククラスを得て、受信フレームを分類してデータバッファ部４０７に記憶する。
【００４６】
図７は、第１実施形態のマッピング情報の例を示す図である。図７の例では、優先度（ＰＣＰ）の値０〜７が、トラヒッククラスの値０〜７のいずれかにマッピングされている。このマッピング情報はトラヒッククラステーブルとも呼ばれる。
【００４７】
データバッファ部４０７は、入力（受信）、及び、出力（送信）それぞれにおいて、仮想マシンＡ〜Ｆに接続されるネットワークインタフェースコントローラ４、及び、トラフィッククラスの組み合わせ毎にフレームを記憶するためのキュー（ＦＩＦＯ）を備えている。キューの各エントリは、フレームを記憶するため、フレームのデータそのものと、フレームの長さを記憶することができる。
【００４８】
入力（受信）の場合には、前述したように入力データ振り分け部４１０によって振り分けられた受信フレームは、仮想マシンＡ〜Ｆに接続されるネットワークインタフェースコントローラ４の送信先ＭＡＣアドレスとトラヒッククラスなどの組み合わせにより分類されるデータ種別毎に対応するキューに記憶される。
【００４９】
図８は第１実施形態の送信処理におけるデータの流れを示す図である。出力（送信）の場合には、例えばデータ記憶部１０３ａに記憶される段階で、仮想マシンＡに接続されるネットワークインタフェースコントローラ４とトラヒッククラスに分かれているので、これをデータ種別毎にキューに記憶する。
【００５０】
また、データバッファ部４０７は、各キューの先頭フレームの状態を記憶する。具体的には、データバッファ部４０７は、ディスクリプタの読み出しが完了しているか、フレームの転送が完了しているか、ディスクリプタの書き込みが完了しているかを記憶する。
【００５１】
出力タイミング制御部４０８は、データ（フレーム）をネットワーク２００に出力するタイミングを制御する。出力タイミングの制御は、例えばＩＥＥＥ  ８０２．１ＱｂｖなどのＴＳＮ規格に則って行われる。出力タイミング制御部４０８は、出力タイミング情報記憶部４０２に記憶されているゲートコントロールリストと、ネットワーク情報管理部４１１に記録されているマッピング情報と、時刻管理部４０１から提供される時刻情報とから、各仮想マシンＡ〜Ｆから受け付けたフレームを送信するタイミングを決定し、データ入出力部４０９を介してフレームをネットワーク２００に送信する。
【００５２】
アクセス制御情報受付部４０３は、アクセス制御情報生成部２０５によって生成されたアクセス制御情報を受け付ける。アクセス制御情報の受け渡しの方法は、例えばホストプロセッサ２からレジスタインタフェースなどを用いて設定する方法でもよい。また例えば、アクセス制御情報の受け渡しの方法は、メモリ１にアクセス制御情報記憶部を設けて、ホストプロセッサ２からそのアドレスをネットワークコントローラ４に通知し、ネットワークコントローラ４が、当該アクセス制御情報記憶部からアクセス制御情報を読み出す方法でもよい。
【００５３】
アクセス制御情報はアクセスタイミング制御部４０４に伝達され、後述するデータアクセスのタイミング制御に利用される。なお、アクセス制御情報におけるデータ種別の情報を入力データ振り分け部４１０に伝達して、入力データ振り分け部４１０のデータ分類の動作を切り替えるようにしてもよい。
【００５４】
アクセスタイミング制御部４０４は、データアクセス部４０６が、例えばデータ記憶部１０３ａのフレームのデータやディスクリプタにアクセスするタイミングを制御する。アクセスタイミング制御部４０４は、例えば、アクセス制御情報受付部４０３にて受け付けられたアクセス制御情報に含まれるアクセス禁止期間にデータ記憶部１０３ａへのアクセスが行われないように制御する。この時、アクセスタイミング制御には、ネットワークインタフェースコントローラ４内の時刻管理部４０１から提供される時刻情報が用いられる。
【００５５】
具体的には、受信の場合、アクセスタイミング制御部４０４は、受信ディスクリプタへのデータ読み出しとデータ書き込み、フレームデータの書き込みを禁止する。送信の場合には、アクセスタイミング制御部４０４は、送信ディスクリプタへのデータ読み出しとデータ書き込み、フレームデータの読み出しを禁止する。アクセスタイミング制御部４０４は、アクセス許可期間に対象のデータ種別のデータアクセスが完了するかを判定し、データアクセス部４０６にデータアクセスを指示する。この判定には、例えば、メモリ１とネットワークコントローラのバスの転送時間やホストプロセッサ２のメモリアクセスの頻度を考慮する。余裕をもってこの判定を行うため、アクセス許可期間の終了までの残り時間が一定値を下回る場合にはアクセスタイミング制御部４０４からデータアクセス部４０６へのデータアクセスを指示しないようにガードバンドが設けられてもよい。
【００５６】
データアクセス部４０６は、データ記憶部１０３ａ〜１０３ｂと、データバッファ部４０７に記憶されているフレームのデータおよびディスクリプタのデータにアクセスし、データをＤＭＡにより転送する。データアクセス部４０６は、ＭＡＣアドレスやトラヒッククラスといったデータ種別毎に、アクセスタイミング制御部４０４から通知されたデータアクセスを行う。
【００５７】
受信の場合、データアクセス部４０６は、受信ディスクリプタから転送先アドレスを読み出し、データバッファ部４０７の対応するキューから読み出した受信フレームのデータを転送先アドレスで指定されたデータ記憶部（例えばデータ記憶部１０３ａ）の領域へデータを書き込む。そして、データアクセス部４０６は、データ記憶部（例えばデータ記憶部１０３ａ）の受信ディスクリプタに長さとステータスとを書き込む。
【００５８】
送信の場合には、データアクセス部４０６は、送信ディスクリプタから転送元アドレスと長さとを読み出し、転送元アドレスで指定されたデータ記憶部（例えばデータ記憶部１０３ａ）の領域から、当該長さで指定された分のデータを読み出し、データバッファ部４０７の対応するキューにフレームのデータを書き込む。そして、データアクセス部４０６は、データ記憶部（例えばデータ記憶部１０３ａ）の送信ディスクリプタにステータスを書き込む。
【００５９】
通知部４０５は、ホストプロセッサ２とネットワークインタフェースコントローラ４との間の通知を行う。具体的には、通知部４０５は、レジスタインタフェースと割り込み通知とを使って通知を行う。レジスタインタフェースでは、データ記憶部（例えばデータ記憶部１０３ａ）の送受信の各ディスクリプタリングを管理する変数ＨｅａｄとＴａｉｌを読み書きするインタフェースをホストプロセッサ２に対して提供する。また、フレームの受信完了とフレームの送信完了とは、割り込みによってホストプロセッサ２に通知される。
【００６０】
ネットワーク情報管理部４１１は、ＭＡＣアドレスと仮想マシンＡ〜Ｆの対応情報と、上述のマッピング情報（図７参照）とを、ネットワーク情報として管理する。トラヒッククラスとＰＣＰ値のマッピング情報は、Ｅｔｈｅｒｎｅｔ（登録商標）のポート毎に設定される。ネットワーク情報は、予め仮想マシン制御部２０１や、仮想マシンＡ〜Ｆのタスク制御部、仮想マシンＡ〜Ｆのタスク実行部などから与えられる。
【００６１】
次に、図９Ａ〜９Ｄ及び図１０を用いてアクセス制御情報の設定について説明する。
【００６２】
図９Ａ〜９Ｄは第１実施形態のアクセス制御情報の例を示す図である。アクセス制御情報生成部２０５では、仮想マシンスケジュール情報とタスクスケジュール情報とからリアルタイムタスク実行期間を算出する。この算出処理は、例えば図９Ａ〜９Ｄに示すように、ＣＰＵコア毎に行われ、各仮想マシンＡ〜Ｆとタスクａ〜ｃのスケジュール情報とから、リアルタイムタスク実行期間を算出する。
【００６３】
リアルタイムタスク実行期間の算出の仕方にはいくつか方法がある。
【００６４】
例えば、アクセス制御情報１０ａのように、一律にリアルタイムタスクの実行時のアクセスを禁止してもよい。アクセス制御情報１０ａのようにアクセス禁止期間を定めることにより、リアルタイムタスクの処理を邪魔することなくデータアクセスが可能となる。例えば、０〜７９９ｕｓの期間では、データアクセス部４０６によるメモリ１へのアクセスが禁止される。
【００６５】
また例えば、アクセス制御情報１０ｂのように、リアルタイムタスクを実行している仮想マシン以外のアクセスを禁止してもよい。なお、仮想マシンＡ〜Ｆのフレーム（データ）は、フレームに含まれるＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスにより分類される。アクセス制御情報１０ｂのようにアクセス禁止期間を定めることにより、非リアルタイム処理を実行している仮想マシンの通信を抑制しながらリアルタイム処理を実行している仮想マシンの通信遅延を抑えることができる。例えば、０〜３９９ｕｓの期間では、リアルタイム性を要するタスクａを実行する仮想マシンＤのデータについては、データアクセス部４０６によるメモリ１へのアクセスが許可される。また、４００〜７９９ｕｓの期間についても、リアルタイム性を要するタスクｂを実行する仮想マシンＤのデータについては、データアクセス部４０６によるメモリ１へのアクセスが許可される。
【００６６】
また例えば、アクセス制御情報１０ｃのように、さらに指定されたトラヒッククラス（優先度）以外のアクセスを禁止してもよい。アクセス制御情報１０ｃのようにアクセス禁止期間を定めることにより、タスク単位で他のタスクの通信によるリアルタイムタスクへの影響を排除しながら、実行されているリアルタイムタスクの通信の遅延を抑えることができる。例えば、０〜３９９ｕｓの期間では、リアルタイム性を要するタスクａの実行に使用される仮想マシンＤのトラヒッククラス７のデータについては、データアクセス部４０６によるメモリ１へのアクセスが許可される。また、４００〜７９９ｕｓの期間では、リアルタイム性を要するタスクｂの実行に使用される仮想マシンＤのトラヒッククラス１のデータについては、データアクセス部４０６によるメモリ１へのアクセスが許可される。
【００６７】
また例えば、アクセス制御情報１０ｄのように、優先度が、実行されているタスクよりも低いタスクの通信を禁止するようにしてもよい。言い換えると、優先度が、実行されているタスクよりも高いタスクの通信を許可するようにしてもよい。なお、トラヒッククラスは、数値が大きいほど、優先度が高くなる。例えば、０〜３９９ｕｓの期間では、リアルタイム性を要するタスクａの実行に使用される仮想マシンＤのトラヒッククラス７のデータについては、データアクセス部４０６によるメモリ１へのアクセスが許可される。また、４００〜７９９ｕｓの期間では、リアルタイム性を要するタスクｂの実行に使用される仮想マシンＤのトラヒッククラス１のデータと、リアルタイム性を要するタスクａの実行に使用される仮想マシンＤのトラヒッククラス７のデータについては、データアクセス部４０６によるメモリ１へのアクセスが許可される。
【００６８】
また例えば、アクセス制御情報１０ｅのように、リアルタイムタスクが実行される前に通信を完了するように１期間（２００ｕｓ）ずつ、アクセス許可期間を前にずらしてもよい。例えば、アクセス制御情報１０ｅの０〜１９９ｕｓのアクセス許可期間は、アクセス制御情報１０ｃの２００〜３９９ｕｓのアクセス許可期間に対応する。また例えば、アクセス制御情報１０ｅの２００〜３９９ｕｓのアクセス許可期間は、アクセス制御情報１０ｃの４００〜５９９ｕｓのアクセス許可期間に対応する。また例えば、アクセス制御情報１０ｅの４００〜５９９ｕｓのアクセス許可期間は、アクセス制御情報１０ｃの６００〜７９９ｕｓのアクセス許可期間に対応する。
【００６９】
なお、上述のアクセス禁止期間を、アクセスを完全に禁止するのではなく、スループットが一定以下になるように、アクセス制限期間としてもよい。すなわち、アクセスタイミング制御部４０４は、アクセス制限期間では、データアクセスを制限してもよい。
【００７０】
図１０は第１実施形態のアクセス制御情報の設定処理の例を示すフローチャートである。はじめに、アクセス制御情報生成部２０５が、ＣＰＵコア−０、及び、ＣＰＵコア−１について、リアルタイムタスク実行期間を算出する（ステップＳ１）。図９Ａの例では、例えばＣＰＵコア−１の０〜３９９ｕｓの期間は、リアルタイム性を要するタスクａが実行されるので、リアルタイムタスク実行期間である。
【００７１】
次に、アクセス制御情報生成部２０５は、アクセス制御情報（例えばアクセス制御情報１０ｄ）を生成する（ステップＳ２）。次に、アクセス制御情報生成部２０５は、ステップＳ２の処理により生成されたアクセス制御情報をアクセス制御情報受付部４０３に設定する（ステップＳ３）。
【００７２】
次に、図１１を用いてフレーム受信処理の流れを説明する。
【００７３】
＜フレーム受信処理の例＞
図１１は第１実施形態のフレーム受信処理の例を示すフローチャートである。はじめに、データ入出力部４０９が、ネットワーク２００からフレームを受信すると、Ｅｔｈｅｒｎｅｔ（登録商標）における物理層の受信処理を行う（ステップＳ１１）。次に、データ入出力部４０９は、Ｅｔｈｅｒｎｅｔ（登録商標）におけるデータリンク層の受信処理を行う（ステップＳ１２）。
【００７４】
次に、入力データ振り分け部４１０が、受信フレームに基づくデータの振り分けを行う（ステップＳ１３）。ステップＳ１３では、上述の図６に示すように、送信先ＭＡＣアドレスやＶＬＡＮタグのＰＣＰ値から求めたトラヒッククラスなどによって、受信フレームが分類される。なお、トラヒッククラスではなく、ＰＣＰ値を直接用いて分類を行うようにしてもよい。
【００７５】
次に、入力データ振り分け部４１０は、ステップＳ１３の処理により分類された受信フレームを、データ種別毎にデータバッファ部４０７に記憶する（ステップＳ１４）。データバッファ部４０７は、データ種別毎に受信フレームをキューにより記憶できるようになっている。
【００７６】
次に、アクセスタイミング制御部４０４が、ネットワークインタフェースコントローラ４の時刻管理部４０１から提供される時刻情報に基づき、データバッファ部４０７に記録されているデータ種別のキューから、受信フレームを選択する（ステップＳ１５）。具体的には、アクセスタイミング制御部４０４は、キューのアクセス許可期間に受信フレームが存在するキューから受信フレームを選択する。アクセスタイミング制御部４０４は、例えば、トラヒッククラスの値の高い受信フレームが格納されているキューから順に、受信フレームが存在するか否かを確認するようにしてもよい。また例えば、アクセスタイミング制御部４０４は、複数の仮想マシンのアクセスが許可されている場合には、ラウンドロビン方式で順番に、当該仮想マシン宛ての受信フレームが存在するか否かを確認するようにしてもよい。
【００７７】
次に、アクセスタイミング制御部４０４が、アクセス許可期間内で、受信フレームのデータ転送が完了するかを判定しながら、データアクセス部４０６が、ディスクリプタの読み出し、フレームの書き込み、ディスクリプタの書き込みをデータ記憶部（例えばデータ記憶部１０３ａ）に対して行っていく。アクセスタイミング制御部４０４は、ディスクリプタを読み書きする場合には、ディスクリプタのデータの長さを考慮して判定を行う。また、アクセスタイミング制御部４０４は、受信フレームを読み書きする場合には、当該受信フレームの長さやＤＭＡ転送のサイズを考慮して判定を行う。これらの関係は事前の測定により予め与えられるものとする。
【００７８】
具体的には、まず、アクセスタイミング制御部４０４は、選択したキューの状態を確認する（ステップＳ１６）。キューの状態は、ディスクリプタ読み出し待ち、フレーム転送待ち、及び、ディスクリプタ書き込み待ちの３状態をとる。初期状態はディスクリプタ読み出し待ちである。選択したキューの状態がディスクリプタ読み出し待ちであれば、アクセスタイミング制御部４０４は、読み出す前に、ディスクリプタの読み出しがアクセス許可期間内で完了するか否かを判定する（ステップＳ１７）。
【００７９】
もし、アクセス許可期間内に完了しない場合には（ステップＳ１７，Ｎｏ）、ステップＳ１５の処理に戻る。アクセス許可期間内に完了する場合には（ステップＳ１７，Ｙｅｓ）、アクセスタイミング制御部４０４は、データアクセス部４０６に指示して、Ｈｅａｄの値で管理される受信ディスクリプタの転送先アドレスを読み出し、データバッファ部４０７の該キューの状態をフレーム転送待ちに更新する（ステップＳ１８）。なお、転送先アドレスは、予めタスク制御部（例えばタスク制御部２０２ａ）またはタスク実行部（例えばタスク実行部２０３ａ）により、受信フレームを格納する領域が指定されているものとする。
【００８０】
キューの状態がフレーム転送待ちになると、アクセスタイミング制御部４０３は、書き込む前に、受信フレームの書き込みがアクセス許可期間内で完了するか否かを判定する（ステップＳ１９）。この判定はフレーム長を用いて行ってもよい。
【００８１】
完了しない場合には（ステップＳ１９，Ｎｏ）、ステップＳ１５の処理に戻る。完了する場合には（ステップＳ１９，Ｙｅｓ）、アクセスタイミング制御部４０４は、データアクセス部４０６に指示して、データバッファ部４０７の該キューから受信フレームのデータを読み出し、データ記憶部（例えばデータ記憶部１０３ａ）の転送先アドレスで指定された領域に、受信フレームのデータを書き込み、データバッファ部４０７の該キューの状態をディスクリプタ書き込み待ちに更新する（ステップＳ２０）。
【００８２】
キューの状態がディスクリプタ書き込み待ちになると、アクセスタイミング制御部４０４は、書き込む前に、ディスクリプタの書き込みがアクセス許可期間内で完了するか否かを判定する（ステップＳ２１）。
【００８３】
完了しない場合には（ステップＳ２１，Ｎｏ）、ステップＳ１５の処理に戻る。完了する場合には（ステップＳ２１，Ｙｅｓ）、アクセスタイミング制御部４０４は、データアクセス部４０６に指示して、受信ディスクリプタに長さとステータスとを書き込み、キューから転送の終わった受信フレームのエントリを削除し、データバッファ部４０７の該キューの状態をディスクリプタ読み出し待ちに更新する（ステップＳ２２）。ステータスには正常に処理が終了すればＤＯＮＥビットが１のデータが書き込まれ、Ｈｅａｄの値を１増加させる。
【００８４】
なお、データバッファ部４０７の各キューにおいて、ディスクリプタの転送先アドレスをキャッシュしておく領域を設けてもよい。受信フレームの転送が完了すると、通知部４０５からの受信完了割り込み通知やポーリングを契機としてタスク実行部（例えばタスク実行部２０３ａ）が受信フレームを読み出す（ステップＳ２３）。通知部４０５からの通知は、仮想マシン制御部２０１とタスク制御部（例えばタスク制御部２０２ａ）とを経由して、タスク実行部（タスク実行部２０３ａ）に伝達される。割り込みはディスクリプタリング毎に異なる割り込み番号を使ってもよい。タスク実行部（例えばタスク実行部２０３ａ）は割り込みにより通知されたディスクリプタリングのＨｅａｄの値が指すディスクリプタのステータスビットを読み出し、ＤＯＮＥビットが１であることを確認して、長さで指定された分のフレームデータを受信する。使用されたディスクリプタはステータスをクリア（全ビットを０に設定）し、Ｔａｉｌを通知するレジスタにＴａｉｌの値を１加算した値を書き込むことで、ネットワークインタフェースが所有することになる。
【００８５】
上述の図１１のフレーム受信処理により、ネットワークインタフェースのデータアクセス部４０６のアクセスと、タスク実行部（例えばタスク実行部２０３ａ）からのプログラムの読み出しやデータの読み書きなどのアクセスとが、衝突することがなくなる。これにより、ホストプロセッサ２で実行されているリアルタイム処理のメモリアクセスと衝突することなく、フレームを受信可能にすることができる。
【００８６】
次に、図１２を用いてフレーム送信処理の流れを説明する。
【００８７】
＜フレーム送信処理の例＞
図１２は第１実施形態のフレーム送信処理の例を示すフローチャートである。図１２の例では、仮想マシンＡの場合を例にして説明する。まず、タスク実行部２０２ａが、データ記憶部１０３ａに送信対象のフレームのデータを書き込み、Ｔａｉｌの値で指される送信ディスクリプタに転送元アドレス及び長さを設定して、タスク制御部２０２ａと仮想マシン制御部２０１などを介して、Ｔａｉｌの値に１加算した値をＴａｉｌの値を管理するレジスタに書き込み、通知部４０５にフレームの送信リクエストを通知する（ステップＳ３１）。なお、これらの設定は、図８に示すように、仮想マシンＡ〜Ｆに接続されるネットワークインタフェースコントローラ４のトラヒッククラス毎に行われる。
【００８８】
次に、アクセスタイミング制御部４０４は、アクセスが許可されているデータ種別のディスクリプタから、送信可能なフレームが存在するもの（送信リクエストを受けて未だ処理が終わっていないもの、すなわち、ネットワークインタフェースコントローラ４が所有しているディスクリプタがあるもの）を選択し、そのディスクリプタリングに対応するデータバッファ部４０７のキューを選択する（ステップＳ３２）。
【００８９】
次に、アクセスタイミング制御部４０４は、ステップＳ３２の処理により選択されたキューの状態を確認する（ステップＳ３３）。キューの状態は、ディスクリプタ読み出し待ち、フレーム転送待ち、及び、ディスクリプタ書き込み待ちの３状態をとる。初期状態はディスクリプタ読み出し待ちである。
【００９０】
選択されたキューの状態がディスクリプタ読み出し待ちであれば、アクセスタイミング制御部４０４は、読み出す前に、ディスクリプタの読み出しがアクセス許可期間内で完了するか否かを判定する（ステップＳ３４）。
【００９１】
もし、アクセス許可期間内に完了しない場合には（ステップＳ３４，Ｎｏ）、ステップＳ３２の処理に戻る。アクセス許可期間内に完了する場合には（ステップＳ３４，Ｙｅｓ）、アクセスタイミング制御部４０４は、データアクセス部４０６に指示して、送信ディスクリプタの転送元アドレスと長さを読み出し、データバッファ部４０７の該キューの状態をフレーム転送待ちに更新する（ステップＳ３５）。
【００９２】
キューの状態がフレーム転送待ちになると、アクセスタイミング制御部４０４は、書き込む前に、送信フレームの書き込みがアクセス許可期間内で完了するか否かを判定する（ステップＳ３６）。この判定はフレーム長やＤＭＡ転送サイズを用いて行ってもよい。
【００９３】
完了しない場合には（ステップＳ３６，Ｎｏ）、ステップＳ３２の処理に戻る。完了する場合には（ステップＳ３６，Ｙｅｓ）、アクセスタイミング制御部４０４は、データバッファ部４０７のキューに送信フレームを格納するためのエントリを追加し、データアクセス部４０６に指示して、データ記憶部１０３ａの転送元アドレスで指定された領域から、長さで指定された分の送信フレームデータを読み出し、データバッファ部４０７に送信フレームデータを書き込み、データバッファ部４０７の該キューの状態をディスクリプタ書き込み待ちに更新する（ステップＳ３７）。
【００９４】
キューの状態がディスクリプタ書き込み待ちになると、アクセスタイミング制御部４０４は、書き込む前に、ディスクリプタの書き込みがアクセス許可期間内で完了するか否かを判定する（ステップＳ３８）。
【００９５】
完了しない場合には（ステップＳ３８，Ｎｏ）、ステップＳ３２の処理に戻る。完了する場合には（ステップＳ３８，Ｙｅｓ）、アクセスタイミング制御部４０４は、データアクセス部４０６に指示して、送信ディスクリプタのステータスを書き込み、データバッファ部４０７の該キューの状態をディスクリプタ読み出し待ちに更新する（ステップＳ３９）。正常に転送が行われるとＤＯＮＥビットを１にして書き込みが行われる。なお、データバッファ部４０７の各キューにおいて、ディスクリプタの転送元アドレスをキャッシュしておく領域を設けてもよい。送信フレームの転送が完了すると、通知部４０５を介して送信完了割り込み通知が、仮想マシン制御部２０１とタスク制御部２０２ａを経由して、タスク実行部２０３ａに伝達される。
【００９６】
データバッファ部４０７のキューに入ったフレームは、出力タイミング制御部４０８により、出力タイミング情報をもとにデータ入出力部４０９を介してネットワーク２００にフレームが送信され（ステップＳ４０）、キューから送信の完了したエントリが削除される（ステップＳ４１）。その後、Ｈｅａｄの値をＨｅａｄの値に１加算した値に更新し、割り込みによりタスク実行部２０３ａに通知を行う。通知を受けたタスク実行部２０３ａは、そのディスクリプタのステータスをクリアし、転送元アドレスと長さで示されるフレームの記憶領域の解放処理を行う。
【００９７】
上述の図１２のフレーム送信処理により、ネットワークインタフェースコントローラ４のデータアクセス部４０６のアクセスと、タスク実行部２０３ａからのプログラムの読み出しやデータの読み書きなどのアクセスと衝突することがなくなる。これによりホストプロセッサ２で実行されているリアルタイム処理のメモリアクセスと衝突することなくフレームの送信を行うことができる。
【００９８】
以上、説明したように、第１実施形態では、データアクセス部４０６が、メモリへのデータの書き込み、及び、メモリからのデータの読み出しの少なくとも一方を示すデータアクセスを行う。受付部（アクセス制御情報受付部４０３）が、データアクセスのタイミングを制御するアクセス制御情報を受け付ける。そして、制御部（アクセスタイミング制御部４０４）が、アクセス制御情報に基づいて、データアクセスのタイミングを制御する。
【００９９】
これにより第１実施形態によれば、ホストプロセッサ２で実行されるリアルタイム処理を考慮して、メモリ１へのデータアクセスを制御することができる。具体的には、ホストプロセッサ２及びネットワークインタフェースコントローラ４のメモリアクセスの衝突を考慮する必要をなくし、リアルタイム性を要する処理の実行を妨げずにフレームの送受信を可能にすることができる。また、リアルタイム性を確保するための最悪遅延の算出をより容易にすることが可能となる。
【０１００】
従来の技術では、リアルタイムタスクの動作を考慮してメモリアクセスを制御することはできなかった。また、フレームを受信する際に、受信したフレームのデータをメモリ１に書き込むタイミングを制御することができなかった。このため、リアルタイム性が必要な処理を行う際に、ホストプロセッサ２のメモリアクセスとフレームの送受信のためのメモリアクセスとが同時に行われ、リアルタイム処理の実行が遅延するという問題があった。
【０１０１】
（第１実施形態の変形例）
次に第１実施形態の変形例について説明する。変形例の説明では、第１実施形態の説明と同様の説明については省略する。
【０１０２】
第１実施形態では、アクセス制御情報生成部２０５は、ホストプロセッサ２内に設けたが、例えばネットワークインタフェースコントローラ４内に設けてもよい。この場合、仮想マシンスケジュール情報やタスクスケジュール情報をネットワークインタフェースコントローラ４に設定できるようにしてもよい。この場合には、ホストプロセッサ２にはスケジュール情報を設定するスケジュール情報設定部と、ネットワークインタフェースコントローラ４にはスケジュール情報受付部が設けられる。スケジュール情報は、少なくとも仮想マシンスケジュール情報とタスクスケジュール情報の一方を含む。
【０１０３】
また、第１実施形態では、仮想マシンスケジュール情報とタスクスケジューリング情報との両方を用いて。アクセス制御情報を生成する例を示したが、仮想マシンを用いない場合はタスクスケジューリング情報のみを用いてもよいし、仮想マシンスケジューリング情報だけからアクセス制御情報を生成してもよい。
【０１０４】
また、第１実施形態では、ネットワークインタフェースコントローラ４がＳＲ−ＩＯＶに対応しており、各仮想マシンＡ〜Ｆからネットワークインタフェースコントローラ４に直接アクセス可能な例を示したが、直接アクセス可能にせずに、仮想マシンＡ〜Ｆまたは仮想マシン制御部２０１（ハイパーバイザー）において、各仮想マシンＡ〜Ｆをつなぐブリッジを作成し、当該ブリッジで集約したフレームを送受信するようにしてもよい。
【０１０５】
また、第１実施形態では、フレームのデータを分割せずに一度に転送する例を示したが、フレームのデータを分割して転送してもよい。その時はバッファ管理部４０７にどこまでのフレームを転送したかを記憶させて、アクセス許可期間で再開させてもよい。
【０１０６】
また、第１実施形態では、メモリ１に対して、ホストプロセッサ２及びネットワークインタフェースコントローラ４のみが接続される例を示したが、例えばストレージコントローラ５など他の周辺処理装置が接続されてもよい。この場合には、データアクセスの完了の判定に他処理装置による遅延を考慮してもよい。例えば各処理装置のデータアクセスの最大長と各処理装置の個数とを掛け合わせた値分遅延すると仮定して完了判定を行うようにしてもよい。
【０１０７】
また、第１実施形態では、アクセス許可期間からアクセス禁止期間に切り替わる場合にはガードバンドを設けてもよい。これにより、ホストプロセッサ２の時刻管理部２０４により提供される時刻情報と、ネットワークインタフェースコントローラ４の時刻管理部４０１により提供される時刻情報にずれがある場合にも、メモリアクセスを衝突させることなく制御することができる。
【０１０８】
（第２実施形態）
次に第２実施形態について説明する。第２実施形態の説明では、第１実施形態の説明と同様の説明については省略する。第２実施形態では、処理装置を記録装置として機能させる場合を例にして説明する。
【０１０９】
［機能構成の例］
図１３は第２実施形態の処理装置１００−２の機能構成の例を示す図である。第２実施形態の処理装置１００−２の主要部の機能は、上述のメモリ１、ホストプロセッサ２及びストレージコントローラ５により実現される。メモリ１及びホストプロセッサ２の構成は第１実施形態と同様である。
【０１１０】
ストレージコントローラ５は、時刻管理部５０１、アクセス制御情報受付部５０３、アクセスタイミング制御部５０４、通知部５０５、データアクセス部５０６、データバッファ部５０７、データ入出力部５０９、入力データ振り分け部５１０及びネームスペース管理部５１１を備える。
【０１１１】
ストレージコントローラ５も、ネットワークインタフェースコントローラ４とほぼ同じであるが、出力タイミング情報記憶部４０２及び出力タイミング制御部４０８がない部分と、ネットワーク情報管理部４１１の代わりにネームスペース管理部５１１があるところが異なる。
【０１１２】
なお、ストレージコントローラ５のデータ入出力部５０９及び入力データ振り分け部５１０において、入力は、ストレージ３からの読み出しに対応し、出力は、ストレージ３への書き込みに対応する。
【０１１３】
ホストプロセッサ２がストレージコントローラ５に対して、データ読み出しおよびデータ書き込みを行うためのディスクリプタの構成は、第１実施形態と同様である（図５Ａ及び５Ｂ参照）。
【０１１４】
図１４は第２実施形態のデータ読み出し処理におけるデータの流れを示す図である。第１実施形態の場合（通信装置として動作させる場合）とは異なり、第２実施形態の場合（記録装置として動作させる場合）では、ＮＶＭ  Ｅｘｐｒｅｓｓなどで用いられるネームスペースによって読み出しデータ（第１実施形態では受信データに相当）の振り分けが行われる。
【０１１５】
図１５は第２実施形態のデータ書き込み処理におけるデータの流れを示す図である。第１実施形態の場合（通信装置として動作させる場合）とは異なり、第２実施形態の場合（記録装置として動作させる場合）では、出力タイミング制御は行われない。データ入出力部５０９が、書き込みデータ（第１実施形態では送信データに相当）をストレージに書き込む。
【０１１６】
図１６Ａ〜１６Ｄは第２実施形態のアクセス制御情報の例を示す図である。第２実施形態では、ネームスペースを用いて仮想マシンＡ〜Ｆ毎のデータの種別を識別する点が、第１実施形態とは異なる。
【０１１７】
アクセス制御情報１０ｇは、一律にリアルタイムタスクの実行時のアクセスを禁止する場合の例である。アクセス制御情報１０ｇのようにアクセス禁止期間を定めることにより、リアルタイムタスクの処理を邪魔することなくデータアクセスが可能となる。例えば、０〜８００ｕｓの期間では、データアクセス部４０６によるメモリ１へのアクセスが禁止される。
【０１１８】
アクセス制御情報１０ｈは、リアルタイムタスクを実行している仮想マシン以外のアクセスを禁止する場合の例である。アクセス制御情報１０ｈのようにアクセス禁止期間を定めることにより、非リアルタイム処理を実行している仮想マシンの通信を抑制しながらリアルタイム処理を実行している仮想マシンの通信遅延を抑えることができる。例えば、０〜３９９ｕｓの期間では、リアルタイム性を要するタスクａを実行する仮想マシンＤのデータについては、データアクセス部４０６によるメモリ１へのアクセスが許可される。また、４００〜７９９ｕｓの期間についても、リアルタイム性を要するタスクｂを実行する仮想マシンＤのデータについては、データアクセス部４０６によるメモリ１へのアクセスが許可される。
【０１１９】
＜データ読み出し処理の例＞
図１７は第２実施形態のデータ読み出し処理の例を示すフローチャートである。図１７の例では、仮想マシンＡのデータ読み出し処理を例にして説明する。はじめに、タスク実行部２０２ａが、データ記憶部１０３の読み出しディスクリプタに、読み出し対象のデータの転送先アドレス及び長さを設定して、タスク制御部２０２ａと仮想マシン制御部２０１などを介して、通知部４０５に通知する（ステップＳ５１）。
【０１２０】
次に、アクセスタイミング制御部５０４が、ストレージコントローラ５の時刻管理部５０１から提供される時刻情報に基づき、データバッファ部５０７に記録されているデータ種別のキューを選択する（ステップＳ５２）。
【０１２１】
次に、アクセスタイミング制御部５０４は、選択したキューの状態を確認する（ステップＳ５３）。キューの状態は、ディスクリプタ読み出し待ち、データ転送待ち、及び、ディスクリプタ書き込み待ちの３状態をとる。初期状態はディスクリプタ読み出し待ちである。選択したキューの状態がディスクリプタ読み出し待ちであれば、アクセスタイミング制御部５０４は、読み出す前に、ディスクリプタの読み出しがアクセス許可期間内で完了するか否かを判定する（ステップＳ５４）。
【０１２２】
もし、アクセス許可期間内に完了しない場合には（ステップＳ５４，Ｎｏ）、ステップＳ５２の処理に戻る。アクセス許可期間内に完了する場合には（ステップＳ５４，Ｙｅｓ）、アクセスタイミング制御部５０４は、データアクセス部５０６に指示して、読み出しディスクリプタの転送先アドレスを読み出し、読み出しコマンドをストレージ３に対して発行し、データバッファ部５０７のキューの状態をデータ転送待ちに更新する（ステップＳ５５）。
【０１２３】
次に、入力データ振り分け部５１０が、ネームスペースに基づき、読み出しデータを、データバッファ部５０７のキューに振り分け（ステップＳ５６）、当該キューに読み出しデータを記憶する（ステップＳ５７）。
【０１２４】
キューの状態がデータ転送待ちになると、アクセスタイミング制御部５０３は、書き込む前に、読み出しデータの書き込みがアクセス許可期間内で完了するか否かを判定する（ステップＳ５８）。この判定はデータ長やＤＭＡ転送のサイズを用いて行ってもよい。
【０１２５】
完了しない場合には（ステップＳ５８，Ｎｏ）、ステップＳ５２の処理に戻る。完了する場合には（ステップＳ５８，Ｙｅｓ）、アクセスタイミング制御部５０４は、データアクセス部５０６に指示して、データバッファ部５０７の該キューから読み出しデータを読み出し、データ記憶部１０３ａの転送先アドレスで指定された領域に、読み出しデータを書き込み、データバッファ部５０７の該キューの状態をディスクリプタ書き込み待ちに更新する（ステップＳ５９）。
【０１２６】
キューの状態がディスクリプタ書き込み待ちになると、アクセスタイミング制御部５０４は、書き込む前に、ディスクリプタの書き込みがアクセス許可期間内で完了するか否かを判定する（ステップＳ６０）。
【０１２７】
完了しない場合には（ステップＳ６０，Ｎｏ）、ステップＳ５２の処理に戻る。完了する場合には（ステップＳ６０，Ｙｅｓ）、アクセスタイミング制御部５０４は、データアクセス部５０６に指示して、読み出しディスクリプタに長さとステータスとを書き込み、キューから転送の終わった読み出しデータのエントリを削除し、データバッファ部５０７の該キューの状態をディスクリプタ読み出し待ちに更新する（ステップＳ６１）。
【０１２８】
なお、データバッファ部５０７の各キューにおいて、ディスクリプタの転送先アドレスをキャッシュしておく領域を設けてもよい。読み出しデータの転送が完了すると、通知部５０５からの読み出し完了割り込み通知やポーリングを契機としてタスク実行部２０３ａが読み出しデータを読み出す（ステップＳ６２）。通知部５０５からの通知は、仮想マシン制御部２０１とタスク制御部２０２ａとを経由して、タスク実行部２０３ａに伝達される。
【０１２９】
上述の図１７のデータ読み出し処理により、ストレージコントローラのデータアクセス部５０６のアクセスと、タスク実行部２０３ａからのプログラムの読み出しやデータの読み書きなどのアクセスとが、衝突することがなくなる。これにより、ホストプロセッサ２で実行されているリアルタイム処理のメモリアクセスと衝突することなく、データの読み出しを可能にすることができる。
【０１３０】
次に、図１８を用いてデータ書き込み処理の流れを説明する。
【０１３１】
＜データ書き込み処理の例＞
図１８は第２実施形態のデータ書き込み処理の例を示すフローチャートである。図１８の例では、仮想マシンＡの場合を例にして説明する。まず、タスク実行部２０２ａが、データ記憶部１０３ａに、ストレージ３への書き込み対象のデータを書き込み、書き込みディスクリプタに転送元アドレス及び長さを設定して、タスク制御部２０２ａと仮想マシン制御部２０１などを介して、通知部５０５に書き込みデータの書き込みリクエストを通知する（ステップＳ７１）。
【０１３２】
次に、アクセスタイミング制御部５０４は、アクセスが許可されているデータ種別のディスクリプタから、書き込みデータが存在するものを選択し、そのディスクリプタリングに対応するデータバッファ部４０７のキューを選択する（ステップＳ７２）。
【０１３３】
次に、アクセスタイミング制御部５０４は、ステップＳ７２の処理により選択されたキューの状態を確認する（ステップＳ７３）。キューの状態は、ディスクリプタ読み出し待ち、データ転送待ち、及び、ディスクリプタ書き込み待ちの３状態をとる。初期状態はディスクリプタ読み出し待ちである。
【０１３４】
選択されたキューの状態がディスクリプタ読み出し待ちであれば、アクセスタイミング制御部５０４は、読み出す前に、ディスクリプタの読み出しがアクセス許可期間内で完了するか否かを判定する（ステップＳ７４）。
【０１３５】
もし、アクセス許可期間内に完了しない場合には（ステップＳ７４，Ｎｏ）、ステップＳ７２の処理に戻る。アクセス許可期間内に完了する場合には（ステップＳ７４，Ｙｅｓ）、アクセスタイミング制御部５０４は、データアクセス部５０６に指示して、書き込みディスクリプタの転送元アドレスと長さを読み出し、データバッファ部５０７の該キューの状態をデータ転送待ちに更新する（ステップＳ７５）。
【０１３６】
キューの状態がデータ転送待ちになると、アクセスタイミング制御部５０４は、書き込む前に、書き込みデータの書き込みがアクセス許可期間内で完了するか否かを判定する（ステップＳ７６）。この判定はデータ長やＤＭＡ転送のサイズを用いて行ってもよい。
【０１３７】
完了しない場合には（ステップＳ７６，Ｎｏ）、ステップＳ７２の処理に戻る。完了する場合には（ステップＳ７６，Ｙｅｓ）、アクセスタイミング制御部５０４は、データバッファ部５０７のキューに書き込みデータを格納するためのエントリを追加し、データアクセス部５０６に指示して、データ記憶部１０３ａの転送元アドレスで指定された領域から、長さで指定された分の書き込みデータを読み出し、データバッファ部５０７に書き込みデータを書き込み、データバッファ部５０７の該キューの状態をディスクリプタ書き込み待ちに更新する（ステップＳ７７）。
【０１３８】
キューの状態がディスクリプタ書き込み待ちになると、アクセスタイミング制御部５０４は、書き込む前に、ディスクリプタの書き込みがアクセス許可期間内で完了するか否かを判定する（ステップＳ７８）。
【０１３９】
完了しない場合には（ステップＳ７８，Ｎｏ）、ステップＳ７２の処理に戻る。完了する場合には（ステップＳ７８，Ｙｅｓ）、アクセスタイミング制御部５０４は、データアクセス部５０６に指示して、書き込みディスクリプタのステータスを書き込み、データバッファ部５０７の該キューの状態をディスクリプタ読み出し待ちに更新し、データ書き込み完了を通知する（ステップＳ７９）。なお、データバッファ部５０７の各キューにおいて、ディスクリプタの転送元アドレスをキャッシュしておく領域を設けてもよい。書き込みデータの転送が完了すると、通知部５０５を介して送信完了割り込み通知が、仮想マシン制御部２０１とタスク制御部２０２ａを経由して、タスク実行部２０３ａに伝達される。
【０１４０】
データバッファ部５０７のキューに入った書き込みデータは、データ入出力部５０９が、ストレージ３に書き込み、キューから書き込みの完了したエントリが削除される（ステップＳ８０）。
【０１４１】
上述の図１８のデータ書き込み処理により、ストレージコントローラ５のデータアクセス部５０６のアクセスと、タスク実行部２０３ａからのプログラムの読み出しやデータの読み書きなどのアクセスと衝突することがなくなる。これによりホストプロセッサ２で実行されているリアルタイム処理のメモリアクセスと衝突することなくデータの書き込みを行うことができる。
【０１４２】
以上、説明したように、第２実施形態の処理装置１００−２によれば、記録装置として動作させる場合でも、第１実施形態と同様の効果が得られる。具体的には、ストレージコントローラ５からのメモリアクセスを禁止（又は制限）することにより、ホストプロセッサ２とのメモリアクセス衝突を考慮する必要をなくし、リアルタイム処理の実行を可能とすることができる。また、リアルタイム性を確保するための最悪遅延の算出をより容易にすることが可能となる。
【０１４３】
なお、上述のネットワークインタフェースコントローラ４及びストレージコントローラ５の機能ブロックは、コンピュータを機能させるためのプログラムにより実現されてもよい。
【０１４４】
コンピュータで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、メモリカード、ＣＤ−Ｒ及びＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
【０１４５】
またコンピュータで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。またコンピュータで実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
【０１４６】
またコンピュータで実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１４７】
コンピュータで実行されるプログラムは、上述の機能構成（機能ブロック）のうち、プログラムによっても実現可能な機能ブロックを含むモジュール構成となっている。なお上述した各機能ブロックの一部又は全部をソフトウェアにより実現せずに、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等のハードウェアにより実現してもよい。
【０１４８】
また複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、１つの機能を実現してもよいし、２つ以上の機能を実現してもよい。
【０１４９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１５０】
１  メモリ
２  ホストプロセッサ
３  ストレージ
４  ネットワークインタフェースコントローラ
５  ストレージコントローラ
１００  処理装置
１０１  仮想マシンスケジュール情報記憶部
１０２  タスクスケジュール情報記憶部
１０３  データ記憶部
２００  ネットワーク
２０１  仮想マシン制御部
２０２  タスク制御部
２０３  タスク実行部
２０４  時刻管理部
２０５  アクセス制御情報生成部
４０１  時刻管理部
４０２  出力タイミング情報記憶部
４０３  アクセス制御情報受付部
４０４  アクセスタイミング制御部
４０５  通知部
４０６  データアクセス部
４０７  データバッファ部
４０８  出力タイミング制御部
４０９  データ入出力部
４１０  入力データ振り分け部
４１１  ネットワーク情報管理部
５０１  時刻管理部
５０３  アクセス制御情報受付部
５０４  アクセスタイミング制御部
５０５  通知部
５０６  データアクセス部
５０７  データバッファ部
５０９  データ入出力部
５１０  入力データ振り分け部
５１１  ネームスペース管理部
【図１】
2020149526.tif 000003
【図２】
2020149526.tif 000004
【図３】
2020149526.tif 000005
【図４】
2020149526.tif 000006
【図５Ａ】
2020149526.tif 000007
【図５Ｂ】
2020149526.tif 000008
【図６】
2020149526.tif 000009
【図７】
2020149526.tif 000010
【図８】
2020149526.tif 000011
【図９Ａ】
2020149526.tif 000012
【図９Ｂ】
2020149526.tif 000013
【図９Ｃ】
2020149526.tif 000014
【図９Ｄ】
2020149526.tif 000015
【図１０】
2020149526.tif 000016
【図１１】
2020149526.tif 000017
【図１２】
2020149526.tif 000018
【図１３】
2020149526.tif 000019
【図１４】
2020149526.tif 000020
【図１５】
2020149526.tif 000021
【図１６Ａ】
2020149526.tif 000022
【図１６Ｂ】
2020149526.tif 000023
【図１６Ｃ】
2020149526.tif 000024
【図１７】
2020149526.tif 000025
【図１８】
2020149526.tif 000026