JP2022121525A - 処理装置、処理方法及びプログラム - Google Patents

処理装置、処理方法及びプログラム Download PDF

Info

Publication number
JP2022121525A
JP2022121525A JP2022100328A JP2022100328A JP2022121525A JP 2022121525 A JP2022121525 A JP 2022121525A JP 2022100328 A JP2022100328 A JP 2022100328A JP 2022100328 A JP2022100328 A JP 2022100328A JP 2022121525 A JP2022121525 A JP 2022121525A
Authority
JP
Japan
Prior art keywords
data
access
unit
control information
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.)
Granted
Application number
JP2022100328A
Other languages
English (en)
Other versions
JP7354361B2 (ja
Inventor
隆博 山浦
Takahiro Yamaura
ヤースィン オゲ
Oge Yasin
優太 小林
Yuta Kobayashi
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2022100328A priority Critical patent/JP7354361B2/ja
Publication of JP2022121525A publication Critical patent/JP2022121525A/ja
Application granted granted Critical
Publication of JP7354361B2 publication Critical patent/JP7354361B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】ホストプロセッサで実行されるリアルタイム処理を考慮して、メモリへのデータアクセスを制御する。【解決手段】実施形態の処理装置は、データアクセス部と受付部と制御部とを備える。データアクセス部は、メモリへのデータの書き込み、及び、前記メモリからのデータの読み出しの少なくとも一方を示すデータアクセスを行う。受付部は、前記データアクセスのタイミングを制御するアクセス制御情報を受け付ける。制御部は、前記アクセス制御情報に基づいて、前記データアクセスのタイミングを制御する。【選択図】図2

Description

本発明の実施形態は処理装置、処理方法及びプログラムに関する。
仮想マシン技術を用いて、複数のマシンを1つのホストに集約して動作させる技術が従来から知られている。産業システムなどの分野にも仮想化が浸透してきており、リアルタイム性が必要な処理(リアルタイム処理)を行う仮想マシンと、リアルタイム性が必要ない処理(非リアルタイム処理)を行う仮想マシンと、が同一ホストにて動作することが考えられる。
しかしながら、従来の技術では、ホストプロセッサで実行されるリアルタイム処理を考慮して、メモリへのデータアクセスを制御することが難しかった。
実施形態の処理装置は、ネットワークを介して受信されるデータを、ホストプロセッサに接続されたメモリへ直接転送する処理装置であって、データ入出力部とデータアクセス部と受付部と制御部とを備える。データ入出力部は、前記ネットワークを介して前記データを送受信する。データアクセス部は、メモリへのデータの書き込みのデータアクセスをDMA転送によって行う。受付部は、前記データアクセスのタイミングを制御するアクセス制御情報を、前記ホストプロセッサから受け付ける。制御部は、前記アクセス制御情報に基づいて、前記データアクセスのタイミングを制御する。
第1実施形態の処理装置のハードウェア構成の例を示す図。 第1実施形態の処理装置の機能構成の例を示す図。 第1実施形態の仮想マシンスケジュール情報の例を示す図。 第1実施形態のタスクスケジュール情報の例を示す図。 第1実施形態の送信ディスクリプタリングについて説明するための図。 第1実施形態の受信ディスクリプタリングについて説明するための図。 第1実施形態の受信処理におけるデータの流れを示す図。 第1実施形態のマッピング情報の例を示す図。 第1実施形態の送信処理におけるデータの流れを示す図。 第1実施形態のアクセス制御情報の例を示す図。 第1実施形態のアクセス制御情報の例を示す図。 第1実施形態のアクセス制御情報の例を示す図。 第1実施形態のアクセス制御情報の例を示す図。 第1実施形態のアクセス制御情報の設定処理の例を示すフローチャート。 第1実施形態のフレーム受信処理の例を示すフローチャート。 第1実施形態のフレーム送信処理の例を示すフローチャート。 第2実施形態の処理装置の機能構成の例を示す図。 第2実施形態のデータ読み出し処理におけるデータの流れを示す図。 第2実施形態のデータ書き込み処理におけるデータの流れを示す図。 第2実施形態のアクセス制御情報の例を示す図。 第2実施形態のアクセス制御情報の例を示す図。 第2実施形態のアクセス制御情報の例を示す図。 第2実施形態のデータ読み出し処理の例を示すフローチャート。 第2実施形態のデータ書き込み処理の例を示すフローチャート。
以下に添付図面を参照して、処理装置、処理方法及びプログラムの実施形態を詳細に説明する。
(第1実施形態)
[ハードウェア構成の例]
図1は第1実施形態の処理装置のハードウェア構成の例を示す図である。第1実施形態の通信装置は、メモリ1、ホストプロセッサ2、ストレージ3、ネットワークインタフェースコントローラ4及びストレージコントローラ5を備える。
メモリ1は、ホストプロセッサ2内のメモリコントローラを介してホストプロセッサ2に接続される。メモリ1は、例えばDRAM(Dynamic Random Access Memory)等により実現される。
ホストプロセッサ2は、PCI Express(登録商標)等のバスを用いて、ストレージコントローラ5と接続される。同様に、ホストプロセッサ2は、PCI Express(登録商標)等のバスを用いて、ネットワークインタフェースコントローラ4と接続される。
ホストプロセッサ2は、ストレージ3に格納された実行プログラムのイメージをメモリ1に展開し、メモリ1上の命令及びデータを読みながら処理を実行する。処理は、ホストプロセッサ2に備えられた1つまたは複数のコアにより実行される。また、ホストプロセッサ2は、ハードウェア仮想化支援機能を備えており、仮想化対応命令セット及びIOMMU(Input/Output Memory Management Unit)等により、効率的に仮想マシンを実行することができる。
ストレージ3(ストレージコントローラ5)、及び、ネットワークインタフェースコントローラ4は、ホストプロセッサ2に接続される周辺装置・周辺機器・ペリフェラルである。
ストレージ3は、例えばHDD(Hard Disk Drive)及びSSD(Solid State Drive)等により実現される。ストレージ3は、SATAやSAS、U.2(SFF-8639)などの規格でストレージコントローラ5と接続される。またストレージ3とストレージコントローラ5とは一体となっていてもよい。
ネットワークインタフェースコントローラ4は、ホストプロセッサ2をネットワーク200に接続する。
ネットワーク200は、例えばEthernet(登録商標)である。具体的には、ネットワーク200は、IEEE 802.1で定義された規格に対応したネットワークである。IEEE 802.1で定義された規格は、例えば、AVB(Audio Video Bridging)規格、及び、TSN(Time-Sensitive Networking)規格等である。また、ネットワーク200の種類は任意でよい。ネットワーク200は、例えばオフィスネットワーク、データセンタ内部のネットワーク、車載ネットワーク、工場内ネットワーク、及び、携帯基地局のネットワーク等である。
ネットワークインタフェースコントローラ4及びストレージコントローラ5は、例えばASIC(Application Specific Integrated Circuit)、及び、FPGA(Field-Programmable Gate Array)等により実現される。また、ネットワークインタフェースコントローラ4及びストレージコントローラ5は、ASIC、FPGA及びプロセッサの組み合わせによって実現してもよい。また、ネットワークインタフェースコントローラ4及びストレージコントローラ5は内部に上述のメモリ1とは異なるメモリを内蔵していてもよい。また、ネットワークインタフェースコントローラ4及びストレージコントローラ5は、ホストプロセッサ2とは別のチップとして実装されてもよいし、SoC(System-on-a-Chip)として1つのチップとして実装されてもよい。
[機能構成の例]
図2は第1実施形態の処理装置100の機能構成の例を示す図である。第1実施形態の処理装置100の主要部の機能は、上述のメモリ1、ホストプロセッサ2及びネットワークインタフェースコントローラ4により実現される。第1実施形態では、処理装置100を通信装置として機能させる場合を例にして説明する。
ホストプロセッサ2では、仮想マシンA~Fが動作する。なお、図2では、紙面の都合上、仮想マシンC~Fの記載が省略されている。仮想マシンC~Fの機能構成、及び、仮想マシンC~Fと他の機能ブロックとの入出力等の説明は、図2における仮想マシンA及びBの機能構成、及び、仮想マシンA及びBと他の機能ブロックとの入出力に関する説明と同様である。
ネットワークインタフェースコントローラ4は、ホストプロセッサ2の指示に従って、ネットワーク200を介したフレームの送受信処理を実行する。フレームは、例えばEthernet(登録商標)フレームである。ネットワークインタフェースコントローラ4は、SR-IOV(Single Root I/O Virtualization)に対応している。各仮想マシンA~Fは、PCI Passthroughの機能によって、ネットワークインタフェースコントローラ4に直接アクセスできる。ネットワークインタフェースコントローラ4の通知部405とデータアクセス部406は、仮想マシンA~Fの各仮想マシンから独立してアクセスできるインタフェースを備えてもよい。すなわち、仮想マシン毎にレジスタアクセスインタフェース、DMAインタフェース、割り込み通知インタフェースを備えてもよい。
メモリ1は、仮想マシンスケジュール情報記憶部101、タスクスケジュール情報記憶部102a~102b、及び、データ記憶部103a~103bを備える。
ホストプロセッサ2は、仮想マシン制御部201、仮想マシンA~F、時刻管理部204及びアクセス制御情報生成部205を備える。仮想マシンAは、タスク制御部202a及びタスク実行部203aを備える。同様に、仮想マシンBは、タスク制御部202b及びタスク実行部203bを備える。
ネットワークインタフェースコントローラ4は、時刻管理部401、出力タイミング情報記憶部402、アクセス制御情報受付部403、アクセスタイミング制御部404、通知部405、データアクセス部406、データバッファ部407、出力タイミング制御部408、データ入出力部409、入力データ振り分け部410及びネットワーク情報管理部411を備える。
仮想マシン制御部201は、仮想マシンA~Fを実現するためのコンピュータ資源の管理および制御機能を提供する。仮想マシン制御部201は、例えば仮想マシンモニタ、ハイパーバイザー及び仮想化OS等である。仮想マシン制御部201により、コンピュータ資源を論理的に分割・統合させることができる。例えば、仮想マシン制御部201により、1台のコンピュータを複数台のコンピュータであるかのように、複数の仮想マシンA~Fに論理的に分割できる。これにより、それぞれの仮想マシンA~Fに、OSやアプリケーションを独立して動作させることができる。仮想マシン制御部201は、仮想マシンスケジューリング情報記憶部101に記憶されている仮想マシンスケジューリング情報をもとに仮想マシンA~Fの制御を行う。また、仮想マシン制御部201は、周辺機器などから通知される割り込み通知の管理や制御も行い、後述するタスク制御部202a~202bに割り込み通知を伝達する。
仮想マシンスケジューリング情報記憶部101には、CPUコア毎に与えられる仮想マシンスケジューリング情報が記憶される。
<仮想マシンスケジューリング情報の例>
図3は第1実施形態の仮想マシンスケジュール情報の例を示す図である。図3の例は、ARINC 653で規定されるスケジューリング情報である。図3の例では、各仮想マシンA~Fの実行時間が一定時間(この例では1ms)で切り替えられながら、各仮想マシンA~Fが周期的に動作する。すなわち、各仮想マシンA~Fは、実行時間が与えられている期間に動作することができる。
なお、ここでは、ARINC 653の例を示したが、各CPUに与えられるスケジューリング方式はこれに限られない。例えば、各CPUに与えられるスケジューリング方式は、クレジットベース、EDF(Earliest Deadline First)ベース、及び、RTDS(Real-Time-Deferrable-Server)ベースなどのスケジューリング方式でもよい。これらのスケジューリング方式によるスケジューリング動作は、時刻管理部204によって供給される時刻情報に基づいて行われる。
図2に戻り、時刻管理部204では、ホストプロセッサ2内の時間情報を管理する。時刻情報は例えば、ネットワーク200を介して、NTPやIEEE1588、IEEE802.1ASなどの時刻同期プロトコルによって同期された時刻情報を用いてもよい。また例えば、時刻情報は、GPSなどから得られた時刻情報に同期された時刻情報であってもよい。なお、時刻管理部204の時刻情報は、後述するネットワークインタフェースコントローラ4の時刻管理部401の時刻情報と同期していることが好ましい。
タスク制御部202aは、仮想マシンA全体の管理および制御を行う。タスク制御部202aは、いわゆるOS(Operating System)の機能を提供する。ここで、タスクは、プロセスやスレッド、ジョブであってもよく、OSから制御される処理の単位を示す。タスク制御部202aは、タスクの実行に必要なプロセッサやメモリなどの資源管理および制御を行う。具体的には、タスク制御部202aは、プロセッサの実行時間やメモリの割り当て、実行時間の切り替え、仮想メモリと物理メモリのマッピングなどを行う。また、タスク制御部202aは、仮想マシン制御部201から通知される割り込み通知の管理や制御も行う。タスク制御部202aは、タスクスケジュール情報記憶部101に記憶されているタスクスケジュール情報に基づいて、タスク実行時間の割り当てや制御を行う。
仮想マシンBのタスク制御部202bの説明は、仮想マシンAのタスク制御部202aの説明と同様なので省略する。以下、同様に、仮想マシンA及びBについての同様の説明は、仮想マシンAの場合を例にして説明し、仮想マシンBの場合については説明を省略する。
<タスクスケジュール情報の例>
図4は第1実施形態のタスクスケジュール情報の例を示す図である。図4は、リアルタイム処理を行う仮想マシンA、B及びDのタスクスケジュール情報の例を示す。仮想マシンA、B及びDでは、RTOS(Real-Time OS)が動作し、例えばARINC 653の規定に基づいたスケジューリングが行われるとする。仮想マシンAでは、タスクa~cが動作し、仮想マシンBではタスクa、仮想マシンCではタスクa及びbが動作する。仮想マシンC、E及びFでは別途汎用OSが動作する。汎用OSが動作する場合もタスクスケジューリング情報にはそのタスクの優先度やこれまでのタスクの実行経過時間などスケジューリングに必要な情報が記憶される。
図2に戻り、アクセス制御情報生成部205は、仮想マシンスケジュール情報記憶部101から、仮想マシンスケジュール情報を取得し、タスクスケジュール情報記憶部102a~102bから、タスクスケジュール情報を取得する。アクセス制御情報生成部205は、アクセス制御情報を生成し、当該アクセス制御情報をアクセス制御情報受付部403に通知する。
例えば、アクセス制御情報は、上述の仮想マシンスケジュール情報及びタスクスケジュール情報等のスケジュール情報に基づいてアクセスを制御する情報を含む。具体的には、アクセス制御情報は、例えばホストプロセッサ2でリアルタイム処理が実行される時間から算出されたアクセス禁止期間などの情報を含む。この場合、アクセスタイミング制御部404は、アクセス禁止期間では、例えばメモリ1へのデータアクセス部406からのデータアクセスを禁止する。また例えば、アクセス制御情報は、時刻情報に応じて定められたリアルタイムタスク処理実行期間を含む。この場合、アクセスタイミング制御部404は、リアルタイムタスク処理実行期間では、例えばメモリ1へのデータアクセス部406からのデータアクセスを制限又は禁止する。アクセス制御情報の具体例については後述する。
なお、仮想マシン環境でない場合には、タスクスケジュール情報のみを使ってアクセス制御情報を生成してもよいし、仮想マシンスケジューリング情報しか得られない場合には、仮想マシンスケジューリング情報のみを用いてアクセス制御情報を生成してもよい。
データ記憶部103aは、タスク実行部203aが実行するプログラムやタスク実行部203aが保持するデータの記憶に用いられる。データ記憶部103aは、図示しないが、タスク制御部202aのデータを記憶してもよい。タスク実行部203aはメモリ1上のデータ記憶部103aからプログラムを読み出しながらプログラムを実行していく。また、タスク実行部203aで保持されるデータはデータ記憶部103aに保存される。データ記憶部103aは、ネットワークインタフェースコントローラ4を介して送受信されるフレームを伝達する際に、フレームに関するデータを記憶するために用いられる。例えば、データ記憶部103aには、フレームを受信するための受信ディスクリプタリング、フレームを送信するための送信ディスクリプタリング、及び、フレームのデータが記憶される。データ記憶部103aは、仮想マシンAが使用するネットワークインタフェースを複数収容できるようにしてもよいし、仮想マシンAが使用するネットワークインタフェース毎に設けてもよい。
図5Aは第1実施形態の送信ディスクリプタリングについて説明するための図であるである。送信ディスクリプタは、リングバッファになっており、HeadとTailという2つの変数を用いて管理される。図5Aに示すように、HeadからTail-1のディスクリプタは、HW(ハードウェア)、すなわちネットワークインタフェースコントローラ4が所有しているディスクリプタを示す。また、TailからHead-1のディスクリプタは、SW(ソフトウェア)、すなわちホストプロセッサ2上で動作するソフトウェア(タスク制御部202aまたはタスク実行部203a)が所有しているディスクリプタを示す。HeadとTailの値は後述する通知部405を通じてやり取りされる。
送信ディスクリプタリングの各エントリ(各ディスクリプタ)には、転送元アドレス、長さ及びステータスが含まれる。転送元アドレスは、送信対象のフレームのデータが記憶されているデータ記憶部103aの記憶領域の先頭位置を示す先頭アドレスを示す。長さは、送信対象のフレームの長さを示す。ステータスは、送信処理の状態を示す情報が格納される。
なお、送信ディスクリプタリングは、メモリ1に対するデータアクセスの観点では、メモリ1からのデータの読み出し(送信データの読み出し)を管理するディスクリプタリングである。
図5Bは第1実施形態の受信ディスクリプタリングについて説明するための図である。
受信ディスクリプタリングの各エントリ(各ディスクリプタ)は、転送先アドレス、長さ及びステータスを含む。転送先アドレスは、受信対象のフレームのデータを記憶するデータ記憶部103aの記憶領域の先頭位置を示す先頭アドレスを示す。長さは、受信対象のフレームの長さを示す。ステータスは、受信処理の状態を示す情報が格納される。
上述のステータスには、例えばエラービット及びDONEビット等が含まれる。エラービットは、転送エラーの有無を示す。DONEビットは、ネットワークインタフェースコントローラで処理が終わったことを示す。送信用ディスクリプタのDONEビットが1の場合、送信処理が終わったことを示し、受信用ディスクリプタのDONEビットが1の場合、受信処理が終わったことを示す。ネットワークインタフェースコントローラ4が、各ビット(エラービット及びDONEビット)に1を書き込む。そして、タスク制御部(例えばタスク実行部202a)、または、タスク実行部(例えばタスク実行部203a)が、各ビットを確認した後に、各ビットに0を書き込むことにより、各ビットをクリアする。
なお、受信ディスクリプタリングは、メモリ1に対するデータアクセスの観点では、メモリ1へのデータの書き込み(受信データの書き込み)を管理するディスクリプタリングである。
図2に戻り、データ入出力部409は、MAC(Media Access Controller)やPHYと呼ばれる機能を含む。データ入出力部409は、データリンク層および物理層のプロトコルに従ってフレームの送受信に必要な処理を行う。
ネットワークインタフェースコントローラ4の時刻管理部401は、ネットワークインタフェースコントローラ4内の時刻情報を管理する。時刻情報は、例えばネットワーク200を介して、NTPやIEEE1588、IEEE802.1ASなどの時刻同期プロトコルによって同期された時刻情報を用いてもよい。また、時刻情報は、GPSなどから得られた時刻情報に同期された時刻情報であってもよい。この時刻管理部401から提供される時刻情報は前述したホストプロセッサ2内の時刻管理部204の提供する時刻情報と同期されていることが望ましい。例えば、IEEE1588やIEEE802.1ASで時刻同期を行う場合には、データ入出力部409が、時刻管理部401のカウンタを用いて、送受信フレームへのタイムスタンプを付与し、グランドマスタからの時刻オフセットを算出し、時刻管理部401の時刻情報を補正するようにしてもよい。さらに、ネットワークインタフェースコントローラ4が、データ入出力部409により補正されたクロックを基に、ホストプロセッサ2側の時刻管理部204のクロックを補正してもよい。
入力データ振り分け部410は、受信したフレームを振り分ける機能部である。
図6は第1実施形態の受信処理におけるデータの流れを示す図である。入力データ振り分け部410は、例えば、図6に示すように、受信したフレームの送信先MACアドレスとトラヒッククラスとによる振り分けを行う。この例では、仮想マシンAのMACアドレスはAA-AA-AA-AA-AA-AAであり、仮想マシンBのMACアドレスはBB-BB-BB-BB-BB-BBであり、仮想マシンCのMACアドレスはCC-CC-CC-CC-CC-CCであるとする。なお、図6の例では、仮想マシンD~Fについては、省略されているが、仮想マシンD~Fについても仮想マシンA~Cの場合と同様である。
MACアドレスと仮想マシンA~Cとの対応情報は、ネットワーク情報管理部411に記録されている。なお、1台の仮想マシン(例えば仮想マシンA)に接続されるネットワークインタフェースコントローラ4は1つである必要はなく、複数接続されてもよい。この場合もMACアドレスによって対応付けが行われる。まず、入力データ振り分け部410では受信したフレームの送信先MACアドレスから、その受信フレームが、どの仮想マシンアドレス宛のものかを判別する。次に、入力データ振り分け部410が、受信フレームのVLANタグに含まれる優先度を示すPCP値を取得する。そして、入力データ振り分け部410が、ネットワーク情報管理部411から提供される優先度とトラヒッククラスとのマッピング情報から、受信フレームのトラフィッククラスを得て、受信フレームを分類してデータバッファ部407に記憶する。
図7は、第1実施形態のマッピング情報の例を示す図である。図7の例では、優先度(PCP)の値0~7が、トラヒッククラスの値0~7のいずれかにマッピングされている。このマッピング情報はトラヒッククラステーブルとも呼ばれる。
データバッファ部407は、入力(受信)、及び、出力(送信)それぞれにおいて、仮想マシンA~Fに接続されるネットワークインタフェースコントローラ4、及び、トラフィッククラスの組み合わせ毎にフレームを記憶するためのキュー(FIFO)を備えている。キューの各エントリは、フレームを記憶するため、フレームのデータそのものと、フレームの長さを記憶することができる。
入力(受信)の場合には、前述したように入力データ振り分け部410によって振り分けられた受信フレームは、仮想マシンA~Fに接続されるネットワークインタフェースコントローラ4の送信先MACアドレスとトラヒッククラスなどの組み合わせにより分類されるデータ種別毎に対応するキューに記憶される。
図8は第1実施形態の送信処理におけるデータの流れを示す図である。出力(送信)の場合には、例えばデータ記憶部103aに記憶される段階で、仮想マシンAに接続されるネットワークインタフェースコントローラ4とトラヒッククラスに分かれているので、これをデータ種別毎にキューに記憶する。
また、データバッファ部407は、各キューの先頭フレームの状態を記憶する。具体的には、データバッファ部407は、ディスクリプタの読み出しが完了しているか、フレームの転送が完了しているか、ディスクリプタの書き込みが完了しているかを記憶する。
出力タイミング制御部408は、データ(フレーム)をネットワーク200に出力するタイミングを制御する。出力タイミングの制御は、例えばIEEE 802.1QbvなどのTSN規格に則って行われる。出力タイミング制御部408は、出力タイミング情報記憶部402に記憶されているゲートコントロールリストと、ネットワーク情報管理部411に記録されているマッピング情報と、時刻管理部401から提供される時刻情報とから、各仮想マシンA~Fから受け付けたフレームを送信するタイミングを決定し、データ入出力部409を介してフレームをネットワーク200に送信する。
アクセス制御情報受付部403は、アクセス制御情報生成部205によって生成されたアクセス制御情報を受け付ける。アクセス制御情報の受け渡しの方法は、例えばホストプロセッサ2からレジスタインタフェースなどを用いて設定する方法でもよい。また例えば、アクセス制御情報の受け渡しの方法は、メモリ1にアクセス制御情報記憶部を設けて、ホストプロセッサ2からそのアドレスをネットワークコントローラ4に通知し、ネットワークコントローラ4が、当該アクセス制御情報記憶部からアクセス制御情報を読み出す方法でもよい。
アクセス制御情報はアクセスタイミング制御部404に伝達され、後述するデータアクセスのタイミング制御に利用される。なお、アクセス制御情報におけるデータ種別の情報を入力データ振り分け部410に伝達して、入力データ振り分け部410のデータ分類の動作を切り替えるようにしてもよい。
アクセスタイミング制御部404は、データアクセス部406が、例えばデータ記憶部103aのフレームのデータやディスクリプタにアクセスするタイミングを制御する。アクセスタイミング制御部404は、例えば、アクセス制御情報受付部403にて受け付けられたアクセス制御情報に含まれるアクセス禁止期間にデータ記憶部103aへのアクセスが行われないように制御する。この時、アクセスタイミング制御には、ネットワークインタフェースコントローラ4内の時刻管理部401から提供される時刻情報が用いられる。
具体的には、受信の場合、アクセスタイミング制御部404は、受信ディスクリプタへのデータ読み出しとデータ書き込み、フレームデータの書き込みを禁止する。送信の場合には、アクセスタイミング制御部404は、送信ディスクリプタへのデータ読み出しとデータ書き込み、フレームデータの読み出しを禁止する。アクセスタイミング制御部404は、アクセス許可期間に対象のデータ種別のデータアクセスが完了するかを判定し、データアクセス部406にデータアクセスを指示する。この判定には、例えば、メモリ1とネットワークコントローラのバスの転送時間やホストプロセッサ2のメモリアクセスの頻度を考慮する。余裕をもってこの判定を行うため、アクセス許可期間の終了までの残り時間が一定値を下回る場合にはアクセスタイミング制御部404からデータアクセス部406へのデータアクセスを指示しないようにガードバンドが設けられてもよい。
データアクセス部406は、データ記憶部103a~103bと、データバッファ部407に記憶されているフレームのデータおよびディスクリプタのデータにアクセスし、データをDMAにより転送する。データアクセス部406は、MACアドレスやトラヒッククラスといったデータ種別毎に、アクセスタイミング制御部404から通知されたデータアクセスを行う。
受信の場合、データアクセス部406は、受信ディスクリプタから転送先アドレスを読み出し、データバッファ部407の対応するキューから読み出した受信フレームのデータを転送先アドレスで指定されたデータ記憶部(例えばデータ記憶部103a)の領域へデータを書き込む。そして、データアクセス部406は、データ記憶部(例えばデータ記憶部103a)の受信ディスクリプタに長さとステータスとを書き込む。
送信の場合には、データアクセス部406は、送信ディスクリプタから転送元アドレスと長さとを読み出し、転送元アドレスで指定されたデータ記憶部(例えばデータ記憶部103a)の領域から、当該長さで指定された分のデータを読み出し、データバッファ部407の対応するキューにフレームのデータを書き込む。そして、データアクセス部406は、データ記憶部(例えばデータ記憶部103a)の送信ディスクリプタにステータスを書き込む。
通知部405は、ホストプロセッサ2とネットワークインタフェースコントローラ4との間の通知を行う。具体的には、通知部405は、レジスタインタフェースと割り込み通知とを使って通知を行う。レジスタインタフェースでは、データ記憶部(例えばデータ記憶部103a)の送受信の各ディスクリプタリングを管理する変数HeadとTailを読み書きするインタフェースをホストプロセッサ2に対して提供する。また、フレームの受信完了とフレームの送信完了とは、割り込みによってホストプロセッサ2に通知される。
ネットワーク情報管理部411は、MACアドレスと仮想マシンA~Fの対応情報と、上述のマッピング情報(図7参照)とを、ネットワーク情報として管理する。トラヒッククラスとPCP値のマッピング情報は、Ethernet(登録商標)のポート毎に設定される。ネットワーク情報は、予め仮想マシン制御部201や、仮想マシンA~Fのタスク制御部、仮想マシンA~Fのタスク実行部などから与えられる。
次に、図9A~9D及び図10を用いてアクセス制御情報の設定について説明する。
図9A~9Dは第1実施形態のアクセス制御情報の例を示す図である。アクセス制御情報生成部205では、仮想マシンスケジュール情報とタスクスケジュール情報とからリアルタイムタスク実行期間を算出する。この算出処理は、例えば図9A~9Dに示すように、CPUコア毎に行われ、各仮想マシンA~Fとタスクa~cのスケジュール情報とから、リアルタイムタスク実行期間を算出する。
リアルタイムタスク実行期間の算出の仕方にはいくつか方法がある。
例えば、アクセス制御情報10aのように、一律にリアルタイムタスクの実行時のアクセスを禁止してもよい。アクセス制御情報10aのようにアクセス禁止期間を定めることにより、リアルタイムタスクの処理を邪魔することなくデータアクセスが可能となる。例えば、0~799usの期間では、データアクセス部406によるメモリ1へのアクセスが禁止される。
また例えば、アクセス制御情報10bのように、リアルタイムタスクを実行している仮想マシン以外のアクセスを禁止してもよい。なお、仮想マシンA~Fのフレーム(データ)は、フレームに含まれるMAC(Media Access Control)アドレスにより分類される。アクセス制御情報10bのようにアクセス禁止期間を定めることにより、非リアルタイム処理を実行している仮想マシンの通信を抑制しながらリアルタイム処理を実行している仮想マシンの通信遅延を抑えることができる。例えば、0~399usの期間では、リアルタイム性を要するタスクaを実行する仮想マシンDのデータについては、データアクセス部406によるメモリ1へのアクセスが許可される。また、400~799usの期間についても、リアルタイム性を要するタスクbを実行する仮想マシンDのデータについては、データアクセス部406によるメモリ1へのアクセスが許可される。
また例えば、アクセス制御情報10cのように、さらに指定されたトラヒッククラス(優先度)以外のアクセスを禁止してもよい。アクセス制御情報10cのようにアクセス禁止期間を定めることにより、タスク単位で他のタスクの通信によるリアルタイムタスクへの影響を排除しながら、実行されているリアルタイムタスクの通信の遅延を抑えることができる。例えば、0~399usの期間では、リアルタイム性を要するタスクaの実行に使用される仮想マシンDのトラヒッククラス7のデータについては、データアクセス部406によるメモリ1へのアクセスが許可される。また、400~799usの期間では、リアルタイム性を要するタスクbの実行に使用される仮想マシンDのトラヒッククラス1のデータについては、データアクセス部406によるメモリ1へのアクセスが許可される。
また例えば、アクセス制御情報10dのように、優先度が、実行されているタスクよりも低いタスクの通信を禁止するようにしてもよい。言い換えると、優先度が、実行されているタスクよりも高いタスクの通信を許可するようにしてもよい。なお、トラヒッククラスは、数値が大きいほど、優先度が高くなる。例えば、0~399usの期間では、リアルタイム性を要するタスクaの実行に使用される仮想マシンDのトラヒッククラス7のデータについては、データアクセス部406によるメモリ1へのアクセスが許可される。また、400~799usの期間では、リアルタイム性を要するタスクbの実行に使用される仮想マシンDのトラヒッククラス1のデータと、リアルタイム性を要するタスクaの実行に使用される仮想マシンDのトラヒッククラス7のデータについては、データアクセス部406によるメモリ1へのアクセスが許可される。
また例えば、アクセス制御情報10eのように、リアルタイムタスクが実行される前に通信を完了するように1期間(200us)ずつ、アクセス許可期間を前にずらしてもよい。例えば、アクセス制御情報10eの0~199usのアクセス許可期間は、アクセス制御情報10cの200~399usのアクセス許可期間に対応する。また例えば、アクセス制御情報10eの200~399usのアクセス許可期間は、アクセス制御情報10cの400~599usのアクセス許可期間に対応する。また例えば、アクセス制御情報10eの400~599usのアクセス許可期間は、アクセス制御情報10cの600~799usのアクセス許可期間に対応する。
なお、上述のアクセス禁止期間を、アクセスを完全に禁止するのではなく、スループットが一定以下になるように、アクセス制限期間としてもよい。すなわち、アクセスタイミング制御部404は、アクセス制限期間では、データアクセスを制限してもよい。
図10は第1実施形態のアクセス制御情報の設定処理の例を示すフローチャートである。はじめに、アクセス制御情報生成部205が、CPUコア-0、及び、CPUコア-1について、リアルタイムタスク実行期間を算出する(ステップS1)。図9Aの例では、例えばCPUコア-1の0~399usの期間は、リアルタイム性を要するタスクaが実行されるので、リアルタイムタスク実行期間である。
次に、アクセス制御情報生成部205は、アクセス制御情報(例えばアクセス制御情報10d)を生成する(ステップS2)。次に、アクセス制御情報生成部205は、ステップS2の処理により生成されたアクセス制御情報をアクセス制御情報受付部403に設定する(ステップS3)。
次に、図11を用いてフレーム受信処理の流れを説明する。
<フレーム受信処理の例>
図11は第1実施形態のフレーム受信処理の例を示すフローチャートである。はじめに、データ入出力部409が、ネットワーク200からフレームを受信すると、Ethernet(登録商標)における物理層の受信処理を行う(ステップS11)。次に、データ入出力部409は、Ethernet(登録商標)におけるデータリンク層の受信処理を行う(ステップS12)。
次に、入力データ振り分け部410が、受信フレームに基づくデータの振り分けを行う(ステップS13)。ステップS13では、上述の図6に示すように、送信先MACアドレスやVLANタグのPCP値から求めたトラヒッククラスなどによって、受信フレームが分類される。なお、トラヒッククラスではなく、PCP値を直接用いて分類を行うようにしてもよい。
次に、入力データ振り分け部410は、ステップS13の処理により分類された受信フレームを、データ種別毎にデータバッファ部407に記憶する(ステップS14)。データバッファ部407は、データ種別毎に受信フレームをキューにより記憶できるようになっている。
次に、アクセスタイミング制御部404が、ネットワークインタフェースコントローラ4の時刻管理部401から提供される時刻情報に基づき、データバッファ部407に記録されているデータ種別のキューから、受信フレームを選択する(ステップS15)。具体的には、アクセスタイミング制御部404は、キューのアクセス許可期間に受信フレームが存在するキューから受信フレームを選択する。アクセスタイミング制御部404は、例えば、トラヒッククラスの値の高い受信フレームが格納されているキューから順に、受信フレームが存在するか否かを確認するようにしてもよい。また例えば、アクセスタイミング制御部404は、複数の仮想マシンのアクセスが許可されている場合には、ラウンドロビン方式で順番に、当該仮想マシン宛ての受信フレームが存在するか否かを確認するようにしてもよい。
次に、アクセスタイミング制御部404が、アクセス許可期間内で、受信フレームのデータ転送が完了するかを判定しながら、データアクセス部406が、ディスクリプタの読み出し、フレームの書き込み、ディスクリプタの書き込みをデータ記憶部(例えばデータ記憶部103a)に対して行っていく。アクセスタイミング制御部404は、ディスクリプタを読み書きする場合には、ディスクリプタのデータの長さを考慮して判定を行う。また、アクセスタイミング制御部404は、受信フレームを読み書きする場合には、当該受信フレームの長さやDMA転送のサイズを考慮して判定を行う。これらの関係は事前の測定により予め与えられるものとする。
具体的には、まず、アクセスタイミング制御部404は、選択したキューの状態を確認する(ステップS16)。キューの状態は、ディスクリプタ読み出し待ち、フレーム転送待ち、及び、ディスクリプタ書き込み待ちの3状態をとる。初期状態はディスクリプタ読み出し待ちである。選択したキューの状態がディスクリプタ読み出し待ちであれば、アクセスタイミング制御部404は、読み出す前に、ディスクリプタの読み出しがアクセス許可期間内で完了するか否かを判定する(ステップS17)。
もし、アクセス許可期間内に完了しない場合には(ステップS17,No)、ステップS15の処理に戻る。アクセス許可期間内に完了する場合には(ステップS17,Yes)、アクセスタイミング制御部404は、データアクセス部406に指示して、Headの値で管理される受信ディスクリプタの転送先アドレスを読み出し、データバッファ部407の該キューの状態をフレーム転送待ちに更新する(ステップS18)。なお、転送先アドレスは、予めタスク制御部(例えばタスク制御部202a)またはタスク実行部(例えばタスク実行部203a)により、受信フレームを格納する領域が指定されているものとする。
キューの状態がフレーム転送待ちになると、アクセスタイミング制御部403は、書き込む前に、受信フレームの書き込みがアクセス許可期間内で完了するか否かを判定する(ステップS19)。この判定はフレーム長を用いて行ってもよい。
完了しない場合には(ステップS19,No)、ステップS15の処理に戻る。完了する場合には(ステップS19,Yes)、アクセスタイミング制御部404は、データアクセス部406に指示して、データバッファ部407の該キューから受信フレームのデータを読み出し、データ記憶部(例えばデータ記憶部103a)の転送先アドレスで指定された領域に、受信フレームのデータを書き込み、データバッファ部407の該キューの状態をディスクリプタ書き込み待ちに更新する(ステップS20)。
キューの状態がディスクリプタ書き込み待ちになると、アクセスタイミング制御部404は、書き込む前に、ディスクリプタの書き込みがアクセス許可期間内で完了するか否かを判定する(ステップS21)。
完了しない場合には(ステップS21,No)、ステップS15の処理に戻る。完了する場合には(ステップS21,Yes)、アクセスタイミング制御部404は、データアクセス部406に指示して、受信ディスクリプタに長さとステータスとを書き込み、キューから転送の終わった受信フレームのエントリを削除し、データバッファ部407の該キューの状態をディスクリプタ読み出し待ちに更新する(ステップS22)。ステータスには正常に処理が終了すればDONEビットが1のデータが書き込まれ、Headの値を1増加させる。
なお、データバッファ部407の各キューにおいて、ディスクリプタの転送先アドレスをキャッシュしておく領域を設けてもよい。受信フレームの転送が完了すると、通知部405からの受信完了割り込み通知やポーリングを契機としてタスク実行部(例えばタスク実行部203a)が受信フレームを読み出す(ステップS23)。通知部405からの通知は、仮想マシン制御部201とタスク制御部(例えばタスク制御部202a)とを経由して、タスク実行部(タスク実行部203a)に伝達される。割り込みはディスクリプタリング毎に異なる割り込み番号を使ってもよい。タスク実行部(例えばタスク実行部203a)は割り込みにより通知されたディスクリプタリングのHeadの値が指すディスクリプタのステータスビットを読み出し、DONEビットが1であることを確認して、長さで指定された分のフレームデータを受信する。使用されたディスクリプタはステータスをクリア(全ビットを0に設定)し、Tailを通知するレジスタにTailの値を1加算した値を書き込むことで、ネットワークインタフェースが所有することになる。
上述の図11のフレーム受信処理により、ネットワークインタフェースのデータアクセス部406のアクセスと、タスク実行部(例えばタスク実行部203a)からのプログラムの読み出しやデータの読み書きなどのアクセスとが、衝突することがなくなる。これにより、ホストプロセッサ2で実行されているリアルタイム処理のメモリアクセスと衝突することなく、フレームを受信可能にすることができる。
次に、図12を用いてフレーム送信処理の流れを説明する。
<フレーム送信処理の例>
図12は第1実施形態のフレーム送信処理の例を示すフローチャートである。図12の例では、仮想マシンAの場合を例にして説明する。まず、タスク実行部202aが、データ記憶部103aに送信対象のフレームのデータを書き込み、Tailの値で指される送信ディスクリプタに転送元アドレス及び長さを設定して、タスク制御部202aと仮想マシン制御部201などを介して、Tailの値に1加算した値をTailの値を管理するレジスタに書き込み、通知部405にフレームの送信リクエストを通知する(ステップS31)。なお、これらの設定は、図8に示すように、仮想マシンA~Fに接続されるネットワークインタフェースコントローラ4のトラヒッククラス毎に行われる。
次に、アクセスタイミング制御部404は、アクセスが許可されているデータ種別のディスクリプタから、送信可能なフレームが存在するもの(送信リクエストを受けて未だ処理が終わっていないもの、すなわち、ネットワークインタフェースコントローラ4が所有しているディスクリプタがあるもの)を選択し、そのディスクリプタリングに対応するデータバッファ部407のキューを選択する(ステップS32)。
次に、アクセスタイミング制御部404は、ステップS32の処理により選択されたキューの状態を確認する(ステップS33)。キューの状態は、ディスクリプタ読み出し待ち、フレーム転送待ち、及び、ディスクリプタ書き込み待ちの3状態をとる。初期状態はディスクリプタ読み出し待ちである。
選択されたキューの状態がディスクリプタ読み出し待ちであれば、アクセスタイミング制御部404は、読み出す前に、ディスクリプタの読み出しがアクセス許可期間内で完了するか否かを判定する(ステップS34)。
もし、アクセス許可期間内に完了しない場合には(ステップS34,No)、ステップS32の処理に戻る。アクセス許可期間内に完了する場合には(ステップS34,Yes)、アクセスタイミング制御部404は、データアクセス部406に指示して、送信ディスクリプタの転送元アドレスと長さを読み出し、データバッファ部407の該キューの状態をフレーム転送待ちに更新する(ステップS35)。
キューの状態がフレーム転送待ちになると、アクセスタイミング制御部404は、書き込む前に、送信フレームの書き込みがアクセス許可期間内で完了するか否かを判定する(ステップS36)。この判定はフレーム長やDMA転送サイズを用いて行ってもよい。
完了しない場合には(ステップS36,No)、ステップS32の処理に戻る。完了する場合には(ステップS36,Yes)、アクセスタイミング制御部404は、データバッファ部407のキューに送信フレームを格納するためのエントリを追加し、データアクセス部406に指示して、データ記憶部103aの転送元アドレスで指定された領域から、長さで指定された分の送信フレームデータを読み出し、データバッファ部407に送信フレームデータを書き込み、データバッファ部407の該キューの状態をディスクリプタ書き込み待ちに更新する(ステップS37)。
キューの状態がディスクリプタ書き込み待ちになると、アクセスタイミング制御部404は、書き込む前に、ディスクリプタの書き込みがアクセス許可期間内で完了するか否かを判定する(ステップS38)。
完了しない場合には(ステップS38,No)、ステップS32の処理に戻る。完了する場合には(ステップS38,Yes)、アクセスタイミング制御部404は、データアクセス部406に指示して、送信ディスクリプタのステータスを書き込み、データバッファ部407の該キューの状態をディスクリプタ読み出し待ちに更新する(ステップS39)。正常に転送が行われるとDONEビットを1にして書き込みが行われる。なお、データバッファ部407の各キューにおいて、ディスクリプタの転送元アドレスをキャッシュしておく領域を設けてもよい。送信フレームの転送が完了すると、通知部405を介して送信完了割り込み通知が、仮想マシン制御部201とタスク制御部202aを経由して、タスク実行部203aに伝達される。
データバッファ部407のキューに入ったフレームは、出力タイミング制御部408により、出力タイミング情報をもとにデータ入出力部409を介してネットワーク200にフレームが送信され(ステップS40)、キューから送信の完了したエントリが削除される(ステップS41)。その後、Headの値をHeadの値に1加算した値に更新し、割り込みによりタスク実行部203aに通知を行う。通知を受けたタスク実行部203aは、そのディスクリプタのステータスをクリアし、転送元アドレスと長さで示されるフレームの記憶領域の解放処理を行う。
上述の図12のフレーム送信処理により、ネットワークインタフェースコントローラ4のデータアクセス部406のアクセスと、タスク実行部203aからのプログラムの読み出しやデータの読み書きなどのアクセスと衝突することがなくなる。これによりホストプロセッサ2で実行されているリアルタイム処理のメモリアクセスと衝突することなくフレームの送信を行うことができる。
以上、説明したように、第1実施形態では、データアクセス部406が、メモリへのデータの書き込み、及び、メモリからのデータの読み出しの少なくとも一方を示すデータアクセスを行う。受付部(アクセス制御情報受付部403)が、データアクセスのタイミングを制御するアクセス制御情報を受け付ける。そして、制御部(アクセスタイミング制御部404)が、アクセス制御情報に基づいて、データアクセスのタイミングを制御する。
これにより第1実施形態によれば、ホストプロセッサ2で実行されるリアルタイム処理を考慮して、メモリ1へのデータアクセスを制御することができる。具体的には、ホストプロセッサ2及びネットワークインタフェースコントローラ4のメモリアクセスの衝突を考慮する必要をなくし、リアルタイム性を要する処理の実行を妨げずにフレームの送受信を可能にすることができる。また、リアルタイム性を確保するための最悪遅延の算出をより容易にすることが可能となる。
従来の技術では、リアルタイムタスクの動作を考慮してメモリアクセスを制御することはできなかった。また、フレームを受信する際に、受信したフレームのデータをメモリ1に書き込むタイミングを制御することができなかった。このため、リアルタイム性が必要な処理を行う際に、ホストプロセッサ2のメモリアクセスとフレームの送受信のためのメモリアクセスとが同時に行われ、リアルタイム処理の実行が遅延するという問題があった。
(第1実施形態の変形例)
次に第1実施形態の変形例について説明する。変形例の説明では、第1実施形態の説明と同様の説明については省略する。
第1実施形態では、アクセス制御情報生成部205は、ホストプロセッサ2内に設けたが、例えばネットワークインタフェースコントローラ4内に設けてもよい。この場合、仮想マシンスケジュール情報やタスクスケジュール情報をネットワークインタフェースコントローラ4に設定できるようにしてもよい。この場合には、ホストプロセッサ2にはスケジュール情報を設定するスケジュール情報設定部と、ネットワークインタフェースコントローラ4にはスケジュール情報受付部が設けられる。スケジュール情報は、少なくとも仮想マシンスケジュール情報とタスクスケジュール情報の一方を含む。
また、第1実施形態では、仮想マシンスケジュール情報とタスクスケジューリング情報との両方を用いて。アクセス制御情報を生成する例を示したが、仮想マシンを用いない場合はタスクスケジューリング情報のみを用いてもよいし、仮想マシンスケジューリング情報だけからアクセス制御情報を生成してもよい。
また、第1実施形態では、ネットワークインタフェースコントローラ4がSR-IOVに対応しており、各仮想マシンA~Fからネットワークインタフェースコントローラ4に直接アクセス可能な例を示したが、直接アクセス可能にせずに、仮想マシンA~Fまたは仮想マシン制御部201(ハイパーバイザー)において、各仮想マシンA~Fをつなぐブリッジを作成し、当該ブリッジで集約したフレームを送受信するようにしてもよい。
また、第1実施形態では、フレームのデータを分割せずに一度に転送する例を示したが、フレームのデータを分割して転送してもよい。その時はバッファ管理部407にどこまでのフレームを転送したかを記憶させて、アクセス許可期間で再開させてもよい。
また、第1実施形態では、メモリ1に対して、ホストプロセッサ2及びネットワークインタフェースコントローラ4のみが接続される例を示したが、例えばストレージコントローラ5など他の周辺処理装置が接続されてもよい。この場合には、データアクセスの完了の判定に他処理装置による遅延を考慮してもよい。例えば各処理装置のデータアクセスの最大長と各処理装置の個数とを掛け合わせた値分遅延すると仮定して完了判定を行うようにしてもよい。
また、第1実施形態では、アクセス許可期間からアクセス禁止期間に切り替わる場合にはガードバンドを設けてもよい。これにより、ホストプロセッサ2の時刻管理部204により提供される時刻情報と、ネットワークインタフェースコントローラ4の時刻管理部401により提供される時刻情報にずれがある場合にも、メモリアクセスを衝突させることなく制御することができる。
(第2実施形態)
次に第2実施形態について説明する。第2実施形態の説明では、第1実施形態の説明と同様の説明については省略する。第2実施形態では、処理装置を記録装置として機能させる場合を例にして説明する。
[機能構成の例]
図13は第2実施形態の処理装置100-2の機能構成の例を示す図である。第2実施形態の処理装置100-2の主要部の機能は、上述のメモリ1、ホストプロセッサ2及びストレージコントローラ5により実現される。メモリ1及びホストプロセッサ2の構成は第1実施形態と同様である。
ストレージコントローラ5は、時刻管理部501、アクセス制御情報受付部503、アクセスタイミング制御部504、通知部505、データアクセス部506、データバッファ部507、データ入出力部509、入力データ振り分け部510及びネームスペース管理部511を備える。
ストレージコントローラ5も、ネットワークインタフェースコントローラ4とほぼ同じであるが、出力タイミング情報記憶部402及び出力タイミング制御部408がない部分と、ネットワーク情報管理部411の代わりにネームスペース管理部511があるところが異なる。
なお、ストレージコントローラ5のデータ入出力部509及び入力データ振り分け部510において、入力は、ストレージ3からの読み出しに対応し、出力は、ストレージ3への書き込みに対応する。
ホストプロセッサ2がストレージコントローラ5に対して、データ読み出しおよびデータ書き込みを行うためのディスクリプタの構成は、第1実施形態と同様である(図5A及び5B参照)。
図14は第2実施形態のデータ読み出し処理におけるデータの流れを示す図である。第1実施形態の場合(通信装置として動作させる場合)とは異なり、第2実施形態の場合(記録装置として動作させる場合)では、NVM Expressなどで用いられるネームスペースによって読み出しデータ(第1実施形態では受信データに相当)の振り分けが行われる。
図15は第2実施形態のデータ書き込み処理におけるデータの流れを示す図である。第1実施形態の場合(通信装置として動作させる場合)とは異なり、第2実施形態の場合(記録装置として動作させる場合)では、出力タイミング制御は行われない。データ入出力部509が、書き込みデータ(第1実施形態では送信データに相当)をストレージに書き込む。
図16A~16Dは第2実施形態のアクセス制御情報の例を示す図である。第2実施形態では、ネームスペースを用いて仮想マシンA~F毎のデータの種別を識別する点が、第1実施形態とは異なる。
アクセス制御情報10gは、一律にリアルタイムタスクの実行時のアクセスを禁止する場合の例である。アクセス制御情報10gのようにアクセス禁止期間を定めることにより、リアルタイムタスクの処理を邪魔することなくデータアクセスが可能となる。例えば、0~800usの期間では、データアクセス部406によるメモリ1へのアクセスが禁止される。
アクセス制御情報10hは、リアルタイムタスクを実行している仮想マシン以外のアクセスを禁止する場合の例である。アクセス制御情報10hのようにアクセス禁止期間を定めることにより、非リアルタイム処理を実行している仮想マシンの通信を抑制しながらリアルタイム処理を実行している仮想マシンの通信遅延を抑えることができる。例えば、0~399usの期間では、リアルタイム性を要するタスクaを実行する仮想マシンDのデータについては、データアクセス部406によるメモリ1へのアクセスが許可される。また、400~799usの期間についても、リアルタイム性を要するタスクbを実行する仮想マシンDのデータについては、データアクセス部406によるメモリ1へのアクセスが許可される。
<データ読み出し処理の例>
図17は第2実施形態のデータ読み出し処理の例を示すフローチャートである。図17の例では、仮想マシンAのデータ読み出し処理を例にして説明する。はじめに、タスク実行部202aが、データ記憶部103の読み出しディスクリプタに、読み出し対象のデータの転送先アドレス及び長さを設定して、タスク制御部202aと仮想マシン制御部201などを介して、通知部405に通知する(ステップS51)。
次に、アクセスタイミング制御部504が、ストレージコントローラ5の時刻管理部501から提供される時刻情報に基づき、データバッファ部507に記録されているデータ種別のキューを選択する(ステップS52)。
次に、アクセスタイミング制御部504は、選択したキューの状態を確認する(ステップS53)。キューの状態は、ディスクリプタ読み出し待ち、データ転送待ち、及び、ディスクリプタ書き込み待ちの3状態をとる。初期状態はディスクリプタ読み出し待ちである。選択したキューの状態がディスクリプタ読み出し待ちであれば、アクセスタイミング制御部504は、読み出す前に、ディスクリプタの読み出しがアクセス許可期間内で完了するか否かを判定する(ステップS54)。
もし、アクセス許可期間内に完了しない場合には(ステップS54,No)、ステップS52の処理に戻る。アクセス許可期間内に完了する場合には(ステップS54,Yes)、アクセスタイミング制御部504は、データアクセス部506に指示して、読み出しディスクリプタの転送先アドレスを読み出し、読み出しコマンドをストレージ3に対して発行し、データバッファ部507のキューの状態をデータ転送待ちに更新する(ステップS55)。
次に、入力データ振り分け部510が、ネームスペースに基づき、読み出しデータを、データバッファ部507のキューに振り分け(ステップS56)、当該キューに読み出しデータを記憶する(ステップS57)。
キューの状態がデータ転送待ちになると、アクセスタイミング制御部503は、書き込む前に、読み出しデータの書き込みがアクセス許可期間内で完了するか否かを判定する(ステップS58)。この判定はデータ長やDMA転送のサイズを用いて行ってもよい。
完了しない場合には(ステップS58,No)、ステップS52の処理に戻る。完了する場合には(ステップS58,Yes)、アクセスタイミング制御部504は、データアクセス部506に指示して、データバッファ部507の該キューから読み出しデータを読み出し、データ記憶部103aの転送先アドレスで指定された領域に、読み出しデータを書き込み、データバッファ部507の該キューの状態をディスクリプタ書き込み待ちに更新する(ステップS59)。
キューの状態がディスクリプタ書き込み待ちになると、アクセスタイミング制御部504は、書き込む前に、ディスクリプタの書き込みがアクセス許可期間内で完了するか否かを判定する(ステップS60)。
完了しない場合には(ステップS60,No)、ステップS52の処理に戻る。完了する場合には(ステップS60,Yes)、アクセスタイミング制御部504は、データアクセス部506に指示して、読み出しディスクリプタに長さとステータスとを書き込み、キューから転送の終わった読み出しデータのエントリを削除し、データバッファ部507の該キューの状態をディスクリプタ読み出し待ちに更新する(ステップS61)。
なお、データバッファ部507の各キューにおいて、ディスクリプタの転送先アドレスをキャッシュしておく領域を設けてもよい。読み出しデータの転送が完了すると、通知部505からの読み出し完了割り込み通知やポーリングを契機としてタスク実行部203aが読み出しデータを読み出す(ステップS62)。通知部505からの通知は、仮想マシン制御部201とタスク制御部202aとを経由して、タスク実行部203aに伝達される。
上述の図17のデータ読み出し処理により、ストレージコントローラのデータアクセス部506のアクセスと、タスク実行部203aからのプログラムの読み出しやデータの読み書きなどのアクセスとが、衝突することがなくなる。これにより、ホストプロセッサ2で実行されているリアルタイム処理のメモリアクセスと衝突することなく、データの読み出しを可能にすることができる。
次に、図18を用いてデータ書き込み処理の流れを説明する。
<データ書き込み処理の例>
図18は第2実施形態のデータ書き込み処理の例を示すフローチャートである。図18の例では、仮想マシンAの場合を例にして説明する。まず、タスク実行部202aが、データ記憶部103aに、ストレージ3への書き込み対象のデータを書き込み、書き込みディスクリプタに転送元アドレス及び長さを設定して、タスク制御部202aと仮想マシン制御部201などを介して、通知部505に書き込みデータの書き込みリクエストを通知する(ステップS71)。
次に、アクセスタイミング制御部504は、アクセスが許可されているデータ種別のディスクリプタから、書き込みデータが存在するものを選択し、そのディスクリプタリングに対応するデータバッファ部407のキューを選択する(ステップS72)。
次に、アクセスタイミング制御部504は、ステップS72の処理により選択されたキューの状態を確認する(ステップS73)。キューの状態は、ディスクリプタ読み出し待ち、データ転送待ち、及び、ディスクリプタ書き込み待ちの3状態をとる。初期状態はディスクリプタ読み出し待ちである。
選択されたキューの状態がディスクリプタ読み出し待ちであれば、アクセスタイミング制御部504は、読み出す前に、ディスクリプタの読み出しがアクセス許可期間内で完了するか否かを判定する(ステップS74)。
もし、アクセス許可期間内に完了しない場合には(ステップS74,No)、ステップS72の処理に戻る。アクセス許可期間内に完了する場合には(ステップS74,Yes)、アクセスタイミング制御部504は、データアクセス部506に指示して、書き込みディスクリプタの転送元アドレスと長さを読み出し、データバッファ部507の該キューの状態をデータ転送待ちに更新する(ステップS75)。
キューの状態がデータ転送待ちになると、アクセスタイミング制御部504は、書き込む前に、書き込みデータの書き込みがアクセス許可期間内で完了するか否かを判定する(ステップS76)。この判定はデータ長やDMA転送のサイズを用いて行ってもよい。
完了しない場合には(ステップS76,No)、ステップS72の処理に戻る。完了する場合には(ステップS76,Yes)、アクセスタイミング制御部504は、データバッファ部507のキューに書き込みデータを格納するためのエントリを追加し、データアクセス部506に指示して、データ記憶部103aの転送元アドレスで指定された領域から、長さで指定された分の書き込みデータを読み出し、データバッファ部507に書き込みデータを書き込み、データバッファ部507の該キューの状態をディスクリプタ書き込み待ちに更新する(ステップS77)。
キューの状態がディスクリプタ書き込み待ちになると、アクセスタイミング制御部504は、書き込む前に、ディスクリプタの書き込みがアクセス許可期間内で完了するか否かを判定する(ステップS78)。
完了しない場合には(ステップS78,No)、ステップS72の処理に戻る。完了する場合には(ステップS78,Yes)、アクセスタイミング制御部504は、データアクセス部506に指示して、書き込みディスクリプタのステータスを書き込み、データバッファ部507の該キューの状態をディスクリプタ読み出し待ちに更新し、データ書き込み完了を通知する(ステップS79)。なお、データバッファ部507の各キューにおいて、ディスクリプタの転送元アドレスをキャッシュしておく領域を設けてもよい。書き込みデータの転送が完了すると、通知部505を介して送信完了割り込み通知が、仮想マシン制御部201とタスク制御部202aを経由して、タスク実行部203aに伝達される。
データバッファ部507のキューに入った書き込みデータは、データ入出力部509が、ストレージ3に書き込み、キューから書き込みの完了したエントリが削除される(ステップS80)。
上述の図18のデータ書き込み処理により、ストレージコントローラ5のデータアクセス部506のアクセスと、タスク実行部203aからのプログラムの読み出しやデータの読み書きなどのアクセスと衝突することがなくなる。これによりホストプロセッサ2で実行されているリアルタイム処理のメモリアクセスと衝突することなくデータの書き込みを行うことができる。
以上、説明したように、第2実施形態の処理装置100-2によれば、記録装置として動作させる場合でも、第1実施形態と同様の効果が得られる。具体的には、ストレージコントローラ5からのメモリアクセスを禁止(又は制限)することにより、ホストプロセッサ2とのメモリアクセス衝突を考慮する必要をなくし、リアルタイム処理の実行を可能とすることができる。また、リアルタイム性を確保するための最悪遅延の算出をより容易にすることが可能となる。
なお、上述のネットワークインタフェースコントローラ4及びストレージコントローラ5の機能ブロックは、コンピュータを機能させるためのプログラムにより実現されてもよい。
コンピュータで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、メモリカード、CD-R及びDVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
またコンピュータで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。またコンピュータで実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
またコンピュータで実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
コンピュータで実行されるプログラムは、上述の機能構成(機能ブロック)のうち、プログラムによっても実現可能な機能ブロックを含むモジュール構成となっている。なお上述した各機能ブロックの一部又は全部をソフトウェアにより実現せずに、IC(Integrated Circuit)等のハードウェアにより実現してもよい。
また複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、1つの機能を実現してもよいし、2つ以上の機能を実現してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 メモリ
2 ホストプロセッサ
3 ストレージ
4 ネットワークインタフェースコントローラ
5 ストレージコントローラ
100 処理装置
101 仮想マシンスケジュール情報記憶部
102 タスクスケジュール情報記憶部
103 データ記憶部
200 ネットワーク
201 仮想マシン制御部
202 タスク制御部
203 タスク実行部
204 時刻管理部
205 アクセス制御情報生成部
401 時刻管理部
402 出力タイミング情報記憶部
403 アクセス制御情報受付部
404 アクセスタイミング制御部
405 通知部
406 データアクセス部
407 データバッファ部
408 出力タイミング制御部
409 データ入出力部
410 入力データ振り分け部
411 ネットワーク情報管理部
501 時刻管理部
503 アクセス制御情報受付部
504 アクセスタイミング制御部
505 通知部
506 データアクセス部
507 データバッファ部
509 データ入出力部
510 入力データ振り分け部
511 ネームスペース管理部

Claims (13)

  1. ネットワークを介して受信されるデータを、ホストプロセッサに接続されたメモリへ直接転送する処理装置であって、
    前記ネットワークを介して前記データを送受信するデータ入出力部と、
    前記メモリへの前記データの書き込みのデータアクセスをDMA転送によって行うデータアクセス部と、
    前記データアクセスのタイミングを制御するアクセス制御情報を、前記ホストプロセッサから受け付ける受付部と、
    前記アクセス制御情報に基づいて、前記データアクセスのタイミングを制御する制御部と、
    を備える処理装置。
  2. 前記ネットワークは、TSN(Time-Sensitive Networking)規格に対応したネットワークである、
    請求項1に記載の処理装置。
  3. 前記データアクセス部は、前記メモリへ書き込まれるデータを管理する書き込みディスクリプタ、及び、前記メモリから読み出されるデータを管理する読み出しディスクリプタの少なくとも一方に対するアクセスも行い、
    前記制御部は、前記書き込みディスクリプタ、及び、前記読み出しディスクリプタの少なくとも一方にアクセスするタイミングを更に制御する、
    請求項1に記載の処理装置。
  4. 時刻情報を管理する時刻管理部を更に備え、
    前記アクセス制御情報は、前記時刻情報に応じて定められたスケジュール情報に基づいてアクセスを制御する情報を含み、
    前記制御部は、前記アクセス制御情報に基づいて、前記データアクセスを制限又は禁止する、
    請求項1に記載の処理装置。
  5. 前記アクセス制御情報は、前記時刻情報に応じて定められたリアルタイムタスク処理実行期間を含み、
    前記制御部は、前記リアルタイムタスク処理実行期間では、前記データアクセスを制限又は禁止する、
    請求項4に記載の処理装置。
  6. 前記アクセス制御情報は、前記時刻情報に応じて定められたアクセス制限期間を含み、
    前記制御部は、前記アクセス制限期間では、前記データアクセスを制限する、
    請求項4に記載の処理装置。
  7. 前記アクセス制御情報は、前記時刻情報に応じて定められたアクセス許可期間とアクセス禁止期間との少なくとも一方を含み、
    前記制御部は、前記アクセス禁止期間では、前記データアクセスを禁止する、
    請求項4に記載の処理装置。
  8. 前記アクセス制御情報は、前記アクセス許可期間と前記アクセス禁止期間との少なくとも一方をデータの種別毎に制御する情報を含み、
    前記制御部は、前記データの種別を識別し、前記アクセス制御情報に基づいて、前記データの種別毎に、前記データアクセスのタイミングを制御する、
    請求項7に記載の処理装置。
  9. 前記データの種別は、データに含まれるMAC(Media Access Control)アドレスにより分類される、
    請求項8に記載の処理装置。
  10. 前記データの種別は、データの優先度により更に分類される、
    請求項9に記載の処理装置。
  11. 前記データの種別は、データに含まれるネームスペースにより分類される、
    請求項8に記載の処理装置。
  12. ネットワークを介して受信されるデータを、ホストプロセッサに接続されたメモリへ直接転送する処理装置の処理方法であって、
    前記処理装置が、前記ネットワークを介して前記データを送受信するステップと、
    前記処理装置が、前記メモリへの前記データの書き込みのデータアクセスをDMA転送によって行うステップと、
    前記処理装置が、前記データアクセスのタイミングを制御するアクセス制御情報を、前記ホストプロセッサから受け付けるステップと、
    前記処理装置が、前記アクセス制御情報に基づいて、前記データアクセスのタイミングを制御するステップと、
    を含む処理方法。
  13. ネットワークを介して受信されるデータを、ホストプロセッサに接続されたメモリへ直接転送するコンピュータを、
    前記ネットワークを介して前記データを送受信するデータ入出力部と、
    前記メモリへの前記データの書き込みのデータアクセスをDMA転送によって行うデータアクセス部と、
    前記データアクセスのタイミングを制御するアクセス制御情報を、前記ホストプロセッサから受け付ける受付部と、
    前記アクセス制御情報に基づいて、前記データアクセスのタイミングを制御する制御部、
    として機能させるためのプログラム。
JP2022100328A 2019-03-15 2022-06-22 処理装置、処理方法及びプログラム Active JP7354361B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022100328A JP7354361B2 (ja) 2019-03-15 2022-06-22 処理装置、処理方法及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019047969A JP2020149526A (ja) 2019-03-15 2019-03-15 処理装置、処理方法及びプログラム
JP2022100328A JP7354361B2 (ja) 2019-03-15 2022-06-22 処理装置、処理方法及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2019047969A Division JP2020149526A (ja) 2019-03-15 2019-03-15 処理装置、処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2022121525A true JP2022121525A (ja) 2022-08-19
JP7354361B2 JP7354361B2 (ja) 2023-10-02

Family

ID=67809302

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019047969A Pending JP2020149526A (ja) 2019-03-15 2019-03-15 処理装置、処理方法及びプログラム
JP2022100328A Active JP7354361B2 (ja) 2019-03-15 2022-06-22 処理装置、処理方法及びプログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2019047969A Pending JP2020149526A (ja) 2019-03-15 2019-03-15 処理装置、処理方法及びプログラム

Country Status (3)

Country Link
US (1) US11693681B2 (ja)
EP (1) EP3709163A1 (ja)
JP (2) JP2020149526A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7467325B2 (ja) 2020-12-17 2024-04-15 株式会社東芝 通信制御装置、通信制御方法、情報処理装置、情報処理方法、および、プログラム
JP2024067621A (ja) * 2022-11-07 2024-05-17 株式会社日立製作所 通信装置及び通信装置における受信データ処理方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003114866A (ja) * 2001-10-05 2003-04-18 Matsushita Electric Ind Co Ltd マイクロプロセッサおよびオペレーティングシステム
JP2003308287A (ja) * 2002-04-12 2003-10-31 Seiko Epson Corp 制御装置および制御方法
JP2007249357A (ja) * 2006-03-14 2007-09-27 Toyota Motor Corp 情報処理装置、分散処理システム及びタスク管理方法
JP2013061857A (ja) * 2011-09-14 2013-04-04 Toshiba Corp 情報処理装置およびプログラム
JP2014081738A (ja) * 2012-10-15 2014-05-08 Nagoya Univ バスパーティション構造を備えるコンピュータ
JP2015179328A (ja) * 2014-03-18 2015-10-08 株式会社東芝 データ転送装置、データ受信システムおよびデータ受信方法
US20150331815A1 (en) * 2014-05-19 2015-11-19 Fortinet, Inc. Network interface card rate limiting
JP2016045563A (ja) * 2014-08-20 2016-04-04 株式会社東芝 Nandバックグラウンド処理制御装置
JP2016207195A (ja) * 2015-01-19 2016-12-08 株式会社東芝 メモリ装置及び制御プログラム
JP2018121120A (ja) * 2017-01-23 2018-08-02 国立大学法人名古屋大学 通信装置及び通信コントローラ

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292879B1 (en) * 1995-10-25 2001-09-18 Anthony S. Fong Method and apparatus to specify access control list and cache enabling and cache coherency requirement enabling on individual operands of an instruction of a computer
JP4265610B2 (ja) * 1997-11-21 2009-05-20 オムロン株式会社 プログラム制御装置、プログラム制御方法、およびプログラム記録媒体
US6182197B1 (en) * 1998-07-10 2001-01-30 International Business Machines Corporation Real-time shared disk system for computer clusters
US8151265B2 (en) * 2007-12-19 2012-04-03 International Business Machines Corporation Apparatus for and method for real-time optimization of virtual machine input/output performance
US8245229B2 (en) * 2008-09-30 2012-08-14 Microsoft Corporation Temporal batching of I/O jobs
JP5653431B2 (ja) * 2010-07-02 2015-01-14 パナソニックIpマネジメント株式会社 マルチプロセッサシステム
CN102859502B (zh) * 2011-03-02 2016-03-23 松下电器(美国)知识产权公司 虚拟计算机系统、虚拟计算机控制方法、及半导体集成电路
US8990523B1 (en) * 2013-09-02 2015-03-24 Hitachi, Ltd. Storage apparatus and its data processing method
JP6175389B2 (ja) * 2014-03-13 2017-08-02 株式会社東芝 通信装置、情報処理装置、通信方法および通信プログラム
GB2529204A (en) * 2014-08-13 2016-02-17 Ibm Suspending and resuming virtual machines
US9344265B2 (en) * 2014-10-15 2016-05-17 Anue Systems, Inc. Network packet timing synchronization for virtual machine host systems
KR102381233B1 (ko) 2017-08-28 2022-04-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP7000088B2 (ja) 2017-09-15 2022-01-19 株式会社東芝 通知制御装置、通知制御方法及びプログラム
EP3470980A1 (en) * 2017-10-10 2019-04-17 OpenSynergy GmbH Control unit, method for operating a control unit, method for configuring a virtualization system of a control unit
US10599468B2 (en) * 2017-10-25 2020-03-24 Red Hat, Inc. Housekeeping virtual processor overcommit for real time virtualization
US11388272B2 (en) * 2018-03-30 2022-07-12 Intel Corporation Technologies for network packet processing between cloud and telecommunications networks

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003114866A (ja) * 2001-10-05 2003-04-18 Matsushita Electric Ind Co Ltd マイクロプロセッサおよびオペレーティングシステム
JP2003308287A (ja) * 2002-04-12 2003-10-31 Seiko Epson Corp 制御装置および制御方法
JP2007249357A (ja) * 2006-03-14 2007-09-27 Toyota Motor Corp 情報処理装置、分散処理システム及びタスク管理方法
JP2013061857A (ja) * 2011-09-14 2013-04-04 Toshiba Corp 情報処理装置およびプログラム
JP2014081738A (ja) * 2012-10-15 2014-05-08 Nagoya Univ バスパーティション構造を備えるコンピュータ
JP2015179328A (ja) * 2014-03-18 2015-10-08 株式会社東芝 データ転送装置、データ受信システムおよびデータ受信方法
US20150331815A1 (en) * 2014-05-19 2015-11-19 Fortinet, Inc. Network interface card rate limiting
JP2016045563A (ja) * 2014-08-20 2016-04-04 株式会社東芝 Nandバックグラウンド処理制御装置
JP2016207195A (ja) * 2015-01-19 2016-12-08 株式会社東芝 メモリ装置及び制御プログラム
JP2018121120A (ja) * 2017-01-23 2018-08-02 国立大学法人名古屋大学 通信装置及び通信コントローラ

Also Published As

Publication number Publication date
JP2020149526A (ja) 2020-09-17
JP7354361B2 (ja) 2023-10-02
EP3709163A1 (en) 2020-09-16
US20200293353A1 (en) 2020-09-17
US11693681B2 (en) 2023-07-04

Similar Documents

Publication Publication Date Title
JP7354361B2 (ja) 処理装置、処理方法及びプログラム
US10572290B2 (en) Method and apparatus for allocating a physical resource to a virtual machine
US10412017B2 (en) Transfer device, transfer method, and computer program product
CN105511954B (zh) 一种报文处理方法及装置
JP7000088B2 (ja) 通知制御装置、通知制御方法及びプログラム
US11018986B2 (en) Communication apparatus, communication method, and computer program product
US10884786B2 (en) Switch device, switching method, and computer program product
US20090086737A1 (en) System-on-chip communication manager
CN107846443B (zh) 网络中的分布式处理
US11429447B2 (en) Scheduling regions of a field programmable gate array as virtual devices
US11336725B2 (en) Communication apparatus, communication method, and computer program product
CN115114013A (zh) 高速外围组件互连装置及其操作方法
US11425711B2 (en) Transmission device, communication device, communication system, transmission method, and computer program product
US8199648B2 (en) Flow control in a variable latency system
US11625199B2 (en) Communication apparatus, communication method, and computer program product
Coleman et al. Emerging COTS architecture support for real-time TSN Ethernet
JP7451438B2 (ja) 通信装置、通信システム、通知方法及びプログラム
CN114637594A (zh) 多核处理设备、任务分配方法、装置及存储介质
US20120096245A1 (en) Computing device, parallel computer system, and method of controlling computer device
US20220029914A1 (en) Information processing apparatus, computer-readable recording medium having stored therein information processing program, and method for processing information
WO2021181874A1 (ja) 通信制御機器および通信制御機器の制御方法
JP7419889B2 (ja) 通信制御機器および通信制御機器の制御方法
JP2022032307A (ja) 情報処理装置、情報処理方法及びコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230803

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: 20230822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230920

R151 Written notification of patent or utility model registration

Ref document number: 7354361

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151