JP7047906B2 - 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラム - Google Patents

入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラム Download PDF

Info

Publication number
JP7047906B2
JP7047906B2 JP2020519862A JP2020519862A JP7047906B2 JP 7047906 B2 JP7047906 B2 JP 7047906B2 JP 2020519862 A JP2020519862 A JP 2020519862A JP 2020519862 A JP2020519862 A JP 2020519862A JP 7047906 B2 JP7047906 B2 JP 7047906B2
Authority
JP
Japan
Prior art keywords
input
information processing
processing resource
output device
output
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
Application number
JP2020519862A
Other languages
English (en)
Other versions
JPWO2019221131A1 (ja
Inventor
順 鈴木
佑樹 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2019221131A1 publication Critical patent/JPWO2019221131A1/ja
Application granted granted Critical
Publication of JP7047906B2 publication Critical patent/JP7047906B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)

Description

本願発明は、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源のいずれかに割り当てることを制御する技術に関する。
近年におけるコンピュータテクノロジの急速な進歩によって実現した、複数のコアを搭載したプロセッサ(マルチコアプロセッサ)や、ハードウェアの仮想化技術等が、様々なシステムにおいて浸透してきている。そして、このようなマルチコアプロセッサやハードウェアの仮想化技術等を用いた、高性能で使いやすいシステムを実現する技術への期待がますます高まってきている。
このような技術に関連する技術として、特許文献1には、マルチコアプロセッサによって実行された場合に、起動処理時の場合にのみキャッシュのミスヒット(フォルス・シェアリング等)が頻発するようなプログラムにおいて、起動後の処理のパフォーマンスを維持しつつ、起動時のパフォーマンスも向上させることを目的としたプログラム処理装置が開示されている。この装置は、特定処理において生成されるスレッドを管理し、起動処理中に生成されるスレッドの動作コアを特定のコアに固定し、起動処理完了後に生成する特定処理のスレッドの動作コアに対する設定を行わないようにする。また、この装置は、起動処理が完了したタイミングに、それ以前に生成していた特定処理用のスレッドの動作コアに対する設定を元に戻すようにする。
また、特許文献2には、ネットワークを介して接続された遠隔デバイスをゲストOS(Operating System)が直接制御するパススルー技術の適用範囲を拡げるようにしたデータ処理装置が開示されている。この装置は、ネットワークを介して接続されたリモート装置に設けられたデバイスとの間でI/O(Input / Output)処理を行うゲストOSに対して仮想ハードウェア環境を提供するホストOSを備える。そして、ホストOSは、ゲストOSが発行したI/O命令をトラップするとともに、トラップしたI/O命令をカプセル化して、リモート装置に向けてネットワークパケットとして送出する。
特開2016-167151号公報 国際公開第2015/145983号
近年、上述したハードウェアの仮想化技術の一つとして、ハードウェアによる通信制御機能をソフトウェアにより実現する様々な技術が開発されてきている。その一例として、PCI(Peripheral Component Interconnect) Express(登録商標)をEthernet(イーサネット:登録商標)上に仮想化する技術であるExpEther(エクスプレスイーサ:登録商標)を、ソフトウェアによって実現する技術がある。
ここで、上述したマルチコアプロセッサ(即ち、情報処理資源要素であるコアを複数備えるプロセッサ)がExpEtherをソフトウェアによって実現する場合について考える。但し、本願では、処理が割り当てられる単位を、情報処理資源要素と称することとする。
図4は、ExpEtherをソフトウェアによって実現する一般的なシステムが、入出力デバイス(例えばストレージ装置)に対するアクセス要求を正常に処理した場合のシーケンス図である。但し、このシステムは、CPU(Central Processing Unit)コアを2つ有することとし、ユーザアプリケーションは、いずれかのCPUコアに割り当てられることとする。
また、ExpEtherをソフトウェアによって実現するシステムでは、ユーザアプリケーションと、当該ユーザアプリケーションによって発行された入出力デバイスに対するアクセス要求による入出力データ送受信処理とは、通常、互いに異なるCPUコアに割り当てられる。このような制御が行われる理由は、1つのCPUコアが、ユーザアプリケーションや入出力データ送受信処理等を含む多くの処理を実行する場合、当該CPUコアに関する情報処理資源を共有する処理の数が多くなることによって、デッドロックが発生する可能性が高くなることなどである。
図4に示す通り、CPUコア0は、入出力デバイスに対するアクセスを行なうユーザアプリケーションを実行するとともに、OSのカーネルに組み込まれたアクセスインターセプト処理を実行している。そして、CPUコア1は、入出力データ送受信処理を実行している。
ユーザアプリケーションが入出力デバイスに対するアクセス要求を発行した場合(ステップS201)、アクセスインターセプト処理は、そのアクセス要求を検出する(ステップS202)。アクセスインターセプト処理は、そのアクセス要求の実行を入出力データ送受信処理に依頼する(ステップS203)。入出力データ送受信処理は、そのアクセス要求のカプセル化を実行し、カプセル化したアクセス要求を入出力デバイスに送信する(ステップS204)。
入出力デバイスは、アクセス要求を受信し(ステップS205)、その応答を入出力データ送受信処理に送信する(ステップS206)。入出力データ送受信処理は、応答を受信し(ステップS207)、応答のデカプセル化を実行し(ステップS208)、デカプセル化した応答をユーザアプリケーションに送信する(ステップS209)。そしてユーザアプリケーションが応答を受信する(ステップS210)ことによって、当該アクセス要求の処理は完了する。
図5は、ExpEtherをソフトウェアによって実現する一般的なシステムが、入出力デバイスに対するアクセス要求を処理する過程において、ストールが発生した場合のシーケンス図である。
このシステムは、図4に示す場合と同様に、ステップS201乃至S205の処理を実行する。そして図5に示す場合では、CPUコア1にユーザアプリケーションが新たに割り当てられる(ステップS301)ことによって、CPUコア1によって実行されていた入出力データ送受信処理が停止(消滅)する(ステップS302)。尚、入出力データ送受信処理が停止(消滅)するのは、上述した通り、1つのCPUコアに対して、ユーザアプリケーションと入出力データ送受信処理との両方が割り当てられないからである。
この場合、入出力デバイスは、応答の送信先が消滅したことによって、応答を送信できず(ステップS303)、当該アクセス要求の処理はストールする。したがって、ハードウェアによる通信制御機能をソフトウェアにより実現する例えばExpEtherなどを実装したシステムにおいて、図5に例示するようなストールの発生を回避することが課題である。特許文献1及び2は、この問題について言及していない。本願発明の主たる目的は、この問題を解決する入出力処理割り当て制御装置等を提供することである。
本願発明の一態様に係る入出力処理割り当て制御装置は、情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て手段を備える。
上記目的を達成する他の見地において、本願発明の一態様に係る入出力処理割り当て制御方法は、第一の情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、第二の情報処理装置によって、前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する。
また、上記目的を達成する更なる見地において、本願発明の一態様に係る入出力処理割り当て制御プログラムは、情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て機能をコンピュータに実現させるためのプログラムである。
更に、本願発明は、係る入出力処理割り当て制御プログラム(コンピュータプログラム)が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
本願発明は、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源要素のいずれかに割り当てるシステムにおいて、そのデータの送受信が不正に停止することを回避することを可能とする。
本願発明の第1の実施形態に係る入出力処理割り当て制御システム1の構成を示すブロック図である。 本願発明の第1の実施形態に係る情報処理装置10の動作を示すフローチャートである。 本願発明の第2の実施形態に係る入出力処理割り当て制御装置30の構成を示すブロック図である。 ExpEtherをソフトウェアによって実現する一般的なシステムが、入出力デバイスに対するアクセス要求を正常に処理した場合のシーケンス図である。 ExpEtherをソフトウェアによって実現する一般的なシステムが、入出力デバイスに対するアクセス要求を処理する過程において、ストールが発生した場合のシーケンス図である。
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
<第1の実施形態>
図1は、本願発明の第1の実施の形態に係る入出力処理割り当て制御システム1の構成を示すブロック図である。入出力処理割り当て制御システム1は、大別して、情報処理装置(入出力処理割り当て制御装置)10、及び、入出力デバイス20を含んでいる。
情報処理装置10は、例えばソフトウェアによるExpEtherを実装するサーバ装置であり、入出力デバイス20と通信可能に接続されている。入出力デバイス20は、ExpEtherに準拠したインタフェース仕様を備える、例えばストレージ装置である。
情報処理装置10は、CPU11、主記憶12、I/Oコントローラ13、I/Oカード14、入出力装置15、及び、CD(Compact Disc)/DVD(Digital Versatile Disc)ドライブ16を備えている。
CPU11は、主記憶12及びI/Oコントローラ13の間でデータ(情報)を入出力する。CPU11は、また、I/Oコントローラ13を介して、I/Oカード14、入出力装置15、及び、CD/DVDドライブ16との間でデータを入出力することが可能である。
I/Oカード14は、入出力デバイス20とExpEtherにより接続され、入出力デバイス20との間でデータの入出力を制御する。入出力装置15は、例えば、キーボード、マウス、ディスプレイ等の、ユーザインタフェース機能を備えた装置である。CD/DVDドライブ16は、記録媒体160からのデータの読み出しや記録媒体160へのデータの書き込みを行なう装置の一例である。
情報処理装置10は、CPU11が備える4つのCPUコア111乃至114(情報処理資源要素)に対して、ユーザアプリケーション1110、及び、入出力データ送受信処理1140などを割り当てる機能を有する。但し、入出力データ送受信処理1140は、後述する通り、当該ユーザアプリケーションにより発行された入出力デバイス20に対するアクセス要求に関するExpEtherの実行に必要な処理である。尚、CPU11が備えるCPUコアの数は、4つに限定されない。本願では、以降、本実施形態に係る情報処理装置10が有する入出力処理割り当て制御装置としての機能について、その詳細を説明する。
CPU11が備えるCPUコア111乃至114の少なくともいずれかは、割り当て処理101、検出処理102、及び、CPUコア間通信処理103を実行する。但し、割り当て処理101、検出処理102、及び、CPUコア間通信処理103を実行するためのプログラムは、情報処理装置10が備えるメモリ(例えば主記憶12等)に格納されていることとする。尚、本願では以降、情報処理装置10が、割り当て処理101、検出処理102、及び、CPUコア間通信処理103等の処理を実行することによって行なう動作に関して、割り当て処理101、検出処理102、及び、CPUコア間通信処理103等を、その動作を行なう主体として記載する場合がある。
CPUコア111(第一の情報処理資源要素)は、割り当て処理101によって割り当てられたユーザアプリケーション1110を実行している。但しユーザアプリケーション1110は、入出力デバイス20に記憶されているデータに対するアクセスを行なうアプリケーションである。
CPUコア111はまた、OSのカーネル1111を実行している。カーネル1111は、デバイスドライバ1112と、アクセスインターセプト処理1113とを含んでいる。デバイスドライバ1112は、CPUコア111から入出力デバイス20に対するExpEtherによるアクセスを制御する。
アクセスインターセプト処理1113は、ユーザアプリケーション1110によって発行された、入出力デバイス20に対するアクセス要求を検出する。アクセスインターセプト処理1113は、検出したアクセス要求を、CPUコア間通信処理103を介して、CPUコア114へ入力する。但し、CPUコア間通信処理103は、CPUコア間において行われる通信(データの送受信等)を制御する。
CPUコア114(第二の情報処理資源要素)は、割り当て処理101によって割り当てられた入出力データ送受信処理1140を実行している。CPUコア114はまた、OSのカーネル1141を実行している。カーネル1141は、デバイスドライバ1142を含んでいる。デバイスドライバ1142は、I/Oカード14を用いたExpEtherによるアクセスを制御する。
入出力データ送受信処理1140は、情報処理装置10から入出力デバイス20に送信されるパケットデータを、ExpEtherのインタフェース仕様にしたがってカプセル化する処理を含む。入出力データ送受信処理1140は、また、情報処理装置10が入出力デバイス20から受信した、ExpEtherのインタフェース仕様にしたがってカプセル化されたパケットデータを、デカプセル化(カプセル化を解除)する処理を含む。
本実施形態に係る割り当て処理101は、入出力データ送受信処理1140の割り当て先をCPUコア114に固定している。即ち、本実施形態に係る情報処理装置10は、CPUコア114を、ソフトウェアによってExpEtherを実行するための専用のCPUコアとして使用する。したがって、割り当て処理101は、入出力デバイス20に記憶されているデータに対するアクセスを行なう新たなユーザアプリケーションを、CPUコア114を除いた、CPUコア111乃至113の少なくともいずれかに割り当てる。
即ち、例えばユーザによる入出力装置15に対する入力操作によって、情報処理装置10が入出力デバイス20に記憶されているデータに対するアクセスを行なう新たなユーザアプリケーションの実行を開始する場合、割り当て処理101は、その新たなユーザアプリケーションの割り当て先からCPUコア114を除外する。
割り当て処理101は、また、新たなユーザアプリケーションを割り当てたCPUコアが実行するカーネルにアクセスインターセプト処理が組み込まれていない場合、当該カーネルにアクセスインターセプト処理を組み込む。
検出処理102は、CPUコア111による、入出力デバイス20に対するアクセス要求に対する入出力デバイス20からの応答の受信が完了したことを検出する。検出処理102は、例えば、入出力デバイス20に対するアクセスが開始されてから、入出力デバイス20に対するアクセスデータ量に基づく時間が経過したことをもって、入出力デバイスからの応答の受信が完了したことを検出することができる。検出処理102は、あるいは、入出力デバイスからの応答における最後のデータを表す情報を検出することによって、入出力デバイスからの応答の受信が完了したことを検出してもよい。
割り当て処理101は、検出処理102によって、入出力デバイス20からの応答の受信が完了したことが検出されたのち、CPUコア114に対する入出力データ送受信処理1140の割り当てを解放してもよい。
次に、図2のフローチャートを参照して、本実施形態に係る情報処理装置(入出力処理割り当て制御装置)10の動作(処理)について詳細に説明する。
割り当て処理101は、ユーザアプリケーション1110をCPUコア111に割り当てるとともに、アクセスインターセプト処理1113を、カーネル1111に組み込む(ステップS101)。割り当て処理101は、入出力データ送受信処理1140をCPUコア114に割り当てる(ステップS102)。
アクセスインターセプト処理1113は、ユーザアプリケーション1110による入出力デバイス20に対するアクセス要求を検出し、当該アクセス要求を、CPUコア間通信処理103を介して、CPUコア114に入力する(ステップS103)。入出力データ送受信処理1140は、入出力デバイス20に対して、そのアクセス要求を実行する(ステップS104)。
CPU11は、入出力デバイス20に対するアクセスを含む、新たなユーザアプリケーションの実行指示を、入出力装置15から受け付ける(ステップS105)。割り当て処理101は、新たなユーザアプリケーションを、CPUコア114を除く、CPUコア111乃至113のいずれかに割り当てるとともに、必要に応じて、アクセスインターセプト処理を、割り当て先のCPUコアが実行するカーネルに組み込む(ステップS106)。
割り当て先のCPUコアによって実行されるアクセスインターセプト処理は、新たなユーザアプリケーションによる入出力デバイス20へのアクセス要求を検出し、当該アクセス要求を、CPUコア114に入力する(ステップS107)。入出力データ送受信処理1140は、入出力デバイス20に対して、そのアクセス要求を実行し(ステップS108)、処理は、ステップS105へ戻る。
本実施形態に係る情報処理装置(入出力処理割り当て制御装置)10は、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源要素のいずれかに割り当てるシステムにおいて、そのデータの送受信が不正に停止することを回避することができる。その理由は、情報処理装置10は、入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、入出力データ送受信処理を実行する情報処理資源要素を除外するからである。
以下に、本実施形態に係る情報処理装置10によって実現される効果について、詳細に説明する。
例えばExpEtherをソフトウェアによって実現するシステムでは、デッドロックの発生を回避することなどの理由により、ユーザアプリケーションと、当該ユーザアプリケーションによって発行された入出力デバイスに対するアクセス要求による入出力データ送受信処理とは、通常、互いに異なる情報処理資源要素に割り当てられる。このようなシステムにおいて、例えば、図5に示す通り、入出力データ送受信処理を実行する情報処理資源要素に対して、ユーザアプリケーションが新たに割り当てられた場合、当該情報処理資源要素によって実行されていた入出力データ送受信処理が停止(消滅)することによって、当該アクセス要求の処理がストールするという問題がある。
このような問題に対して、本実施形態に係る情報処理装置(入出力処理割り当て制御装置)10は、割り当て処理101を実行することによって、例えば図1及び図2を参照して上述した通り動作する。即ち、本実施形態では、情報処理装置10に含まれる複数のCPUコア111乃至114(情報処理資源要素)のうちのCPUコア111(第一の情報処理資源要素)による入出力デバイス20に対するアクセス要求に応じて、CPUコア114(第二の情報処理資源要素)が、入出力デバイス20との間における入出力データ送受信処理1140を実行する。そして、割り当て処理101は、CPUコア114に対して、入出力データ送受信処理1140を割り当てるとともに、CPUコア111乃至114のうち、入出力デバイス20に対するアクセス要求を含む処理の新たな割り当て先から、CPU114を除外する。
即ち、本実施形態に係る情報処理装置(入出力処理割り当て制御装置)10は、入出力データ送受信処理1140を実行するCPUコア114に対して、ユーザアプリケーションを新たに割り当てないようにするので、入出力データ送受信処理が停止(消滅)することによって、入出力デバイス20に対するアクセス要求の処理が停止するという問題を回避することができる。
また、本実施形態に係る情報処理装置10は、入出力データ送受信処理を実行するCPUコアを、CPUコア114に固定する。即ち、情報処理装置10は、CPUコア114を、入出力データ送受信処理を実行するための専用のCPUコアとして確保するので、入出力デバイス20に対するアクセス要求の処理が停止するという問題を、簡易な論理により回避することができる。尚、情報処理装置10は、入出力データ送受信処理を実行するCPUコアを、何れかのCPUコアに固定しなくてもよく、各CPUコアの情報処理状況に応じて、適切なCPUコアに入出力データ送受信処理を割り当てるようにしてもよい。
また、本実施形態に係る情報処理装置10は、入出力デバイス20に対するアクセス要求に対する、入出力デバイス20からの応答の受信が完了したことを検出する検出処理102をさらに実行する。この場合、割り当て処理101は、検出処理102によって、入出力デバイス20からの応答の受信が完了したことが検出されたのち、CPUコア114に対する入出力データ送受信処理1140の割り当てを一旦解放する。
例えば、上述したように、CPUコア114を、入出力データ送受信処理を実行するための専用のCPUコアとした場合、CPUコア114は、ユーザアプリケーションを実行するCPUコアとしては使用できなくなるので、情報処理資源の使用効率が低下する問題が生じる。この問題に対して、本実施形態に係る情報処理装置10は、上述した通り、入出力デバイス20からの応答の受信が完了することによって、入出力データ送受信処理1140を停止しても問題が無い状態になったときに、CPUコア114に対する入出力データ送受信処理1140の割り当てを一旦解放することができるので、情報処理資源の使用効率が低下する問題を回避することができる。
尚、情報処理装置10は、検出処理102を実行しない、簡易な構成を備えてもよい。
また、上述した本実施形態に係る情報処理装置10は、ユーザアプリケーションや入出力データ送受信処理等を割り当てる単位(情報処理資源要素)をCPUコアとしているが、情報処理資源要素はCPUコアに限定されない。情報処理資源要素は、例えば、CPUを複数備える情報処理装置におけるCPU、あるいは仮想マシンにおける処理の割り当て単位などでもよい。
また、情報処理装置10が制御対象とする通信制御インタフェースは、PCI ExpressをEthernet上に仮想化したExpEtherに限定されない。情報処理装置10は、第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、第一の情報処理資源要素とは異なる第二の情報処理資源要素が、入出力デバイスとの間における入出力データ送受信処理を実行するような、ExpEther以外の通信制御インタフェースを制御対象としてもよい。
また、本実施形態に係る割り当て処理101、検出処理102、及び、CPUコア間通信処理103が実現する機能は、CPU11がこれらの処理に関するプログラムを実行する構成以外の構成によっても実現可能である。情報処理装置10は、例えば、割り当て処理101、検出処理102、及び、CPUコア間通信処理103と同等の機能を実現するハードウェアである割り当て部、検出部、及び、CPUコア間通信部を備えてもよい。
また、本実施形態に係る割り当て処理101、検出処理102、及び、CPUコア間通信処理103を実現する、コンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、CD-ROM等の各種記録媒体160を介して情報処理装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体160によって構成されると捉えることができる。
<第2の実施形態>
図3は、本願発明の第2の実施形態に係る入出力処理割り当て制御装置30の構成を示すブロック図である。
本実施形態に係る入出力処理割り当て制御装置30は、割り当て部31を備えている。
本実施形態では、情報処理装置40に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素41による入出力デバイス50に対するアクセス要求に応じて、第一の情報処理資源要素41とは異なる第二の情報処理資源要素42が、入出力デバイス50との間における入出力データ送受信処理420を実行する。
割り当て部31は、第二の情報処理資源要素42に対して、入出力データ送受信処理420を割り当てるとともに、複数の情報処理資源要素のうち、入出力デバイス50に対するアクセス要求を含む処理の新たな割り当て先から、第二の情報処理資源要素42を除外する。
本実施形態に係る入出力処理割り当て制御装置30は、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源要素のいずれかに割り当てるシステムにおいて、そのデータの送受信が不正に停止することを回避することができる。その理由は、入出力処理割り当て制御装置30は、入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、入出力データ送受信処理を実行する情報処理資源要素を除外するからである。
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2018年5月18日に出願された日本出願特願2018-095886を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1 入出力処理割り当て制御システム
10 情報処理装置
101 割り当て処理
102 検出処理
103 CPUコア間通信処理
11 CPU
111乃至114 CPUコア
1110 ユーザアプリケーション
1111 カーネル
1112 デバイスドライバ
1113 アクセスインターセプト処理
1140 入出力データ送受信処理
1141 カーネル
1142 デバイスドライバ
12 主記憶
13 I/Oコントローラ
14 I/Oカード
15 入出力装置
16 CD/DVDドライブ
160 記録媒体
20 入出力デバイス
30 入出力処理割り当て制御装置
31 割り当て部
40 情報処理装置
41 第一の情報処理資源要素
42 第二の情報処理資源要素
420 入出力データ送受信処理
50 入出力デバイス

Claims (9)

  1. 情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、
    前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て手段と、
    前記第一の情報処理資源要素による、前記入出力デバイスに対するアクセス要求に対する、前記入出力デバイスからの応答の受信が完了したことを検出する検出手段と、
    を備え、
    前記割り当て手段は、前記検出手段によって、前記入出力デバイスからの応答の受信が完了したことが検出されたのち、前記第二の情報処理資源要素に対する前記入出力データ送受信処理の割り当てを解放する、
    入出力処理割り当て制御装置。
  2. 前記割り当て手段は、前記第二の情報処理資源要素を、前記複数の情報処理資源要素のうちの特定の情報処理資源要素に固定する、
    請求項1に記載の入出力処理割り当て制御装置。
  3. 前記検出手段は、前記入出力デバイスに対するアクセスが開始されてから、前記入出力デバイスに対するアクセスデータ量に基づく時間が経過したことをもって、前記入出力デバイスからの応答の受信が完了したことを検出する、
    請求項1または請求項2に記載の入出力処理割り当て制御装置。
  4. 前記複数の情報処理資源要素は、CPU(Central Processing Unit)に含まれるコア、あるいはCPU、あるいは仮想マシンにおける処理の割り当て単位である、
    請求項1乃至請求項のいずれか一項に記載の入出力処理割り当て制御装置。
  5. 前記入出力デバイスは、インタフェース仕様として、PCI(Peripheral Component Interconnect)エクスプレス及びイーサネットを用いる、
    請求項1乃至請求項のいずれか一項に記載の入出力処理割り当て制御装置。
  6. 請求項1乃至請求項のいずれか一項に記載の入出力処理割り当て制御装置と、
    前記第一及び第二の情報処理資源要素と、
    前記入出力デバイスと、
    を含む、入出力処理割り当て制御システム。
  7. 前記第一の情報処理資源要素は、前記入出力デバイスに対するアクセス要求を検出したのち、前記アクセス要求が指示する前記入出力データ送受信処理の実行を前記第二の情報処理資源要素に依頼し、
    前記第二の情報処理資源要素は、前記入出力デバイスとの間で送受信するデータに対するカプセル化処理及びデカプセル化処理を含む、前記入出力データ送受信処理を実行することによって、前記入出力デバイスから受信したデータを、前記第一の情報処理資源要素に入力する、
    請求項に記載の入出力処理割り当て制御システム。
  8. 第一の情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、
    第二の情報処理装置によって、
    前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外し、
    前記第一の情報処理資源要素による、前記入出力デバイスに対するアクセス要求に対する、前記入出力デバイスからの応答の受信が完了したことを検出する、
    方法であって、
    前記入出力デバイスからの応答の受信が完了したことが検出されたのち、前記第二の情報処理資源要素に対する前記入出力データ送受信処理の割り当てを解放する、
    入出力処理割り当て制御方法。
  9. 情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、
    前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て機能と、
    前記第一の情報処理資源要素による、前記入出力デバイスに対するアクセス要求に対する、前記入出力デバイスからの応答の受信が完了したことを検出する検出機能と、
    をコンピュータに実現させるためのプログラムであって、
    前記割り当て機能は、前記検出機能によって、前記入出力デバイスからの応答の受信が完了したことが検出されたのち、前記第二の情報処理資源要素に対する前記入出力データ送受信処理の割り当てを解放する、
    入出力処理割り当て制御プログラム。
JP2020519862A 2018-05-18 2019-05-14 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラム Active JP7047906B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018095886 2018-05-18
JP2018095886 2018-05-18
PCT/JP2019/019153 WO2019221131A1 (ja) 2018-05-18 2019-05-14 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラムが格納された記録媒体

Publications (2)

Publication Number Publication Date
JPWO2019221131A1 JPWO2019221131A1 (ja) 2021-05-13
JP7047906B2 true JP7047906B2 (ja) 2022-04-05

Family

ID=68539678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020519862A Active JP7047906B2 (ja) 2018-05-18 2019-05-14 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラム

Country Status (3)

Country Link
US (1) US11321251B2 (ja)
JP (1) JP7047906B2 (ja)
WO (1) WO2019221131A1 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4452064B2 (ja) * 2003-11-18 2010-04-21 株式会社日立製作所 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム
EP2378685A4 (en) * 2009-01-08 2013-09-18 Sharp Kk TRANSMITTER, TRANSMISSION PROCEDURE, COMMUNICATION SYSTEM AND COMMUNICATION PROCESS
US20140188451A1 (en) * 2011-08-01 2014-07-03 Nec Corporation Distributed processing management server, distributed system and distributed processing management method
US10324883B2 (en) 2014-03-28 2019-06-18 Nec Corporation Computer system, data-processing apparatus, bus-data transferring method, and computer-readable recording medium for transferring data flowing through system bus
CN106464269B (zh) * 2014-05-21 2019-12-06 索尼公司 数据处理装置和数据处理方法
JP6428649B2 (ja) * 2014-05-21 2018-11-28 ソニー株式会社 データ処理装置、及び、データ処理方法
MX357178B (es) * 2014-05-21 2018-06-28 Sony Corp Dispositivo de procesamiento de datos y metodo de procesamiento de datos.
JP6518087B2 (ja) 2015-03-09 2019-05-22 キヤノン株式会社 プログラム処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
磯部 泰徳,佐藤 未来子,並木 美太郎,ホモジニアスマルチコアCPUにおける異種OS間の連携機構の試作,情報処理学会研究報告,日本,社団法人情報処理学会,2009年06月15日,pp.1-8,ISSN 1884-0930

Also Published As

Publication number Publication date
WO2019221131A1 (ja) 2019-11-21
JPWO2019221131A1 (ja) 2021-05-13
US20210216481A1 (en) 2021-07-15
US11321251B2 (en) 2022-05-03

Similar Documents

Publication Publication Date Title
JP5180373B2 (ja) 仮想化環境における割り込みメッセージ終了のレイジー処理
US10120736B2 (en) Executing a kernel device driver as a user space process
US9135080B2 (en) Dynamically assigning a portion of physical computing resource to logical partitions based on characteristics of executing logical partitions
JP5737050B2 (ja) 情報処理装置、割込み制御方法および割込み制御プログラム
JP5689526B2 (ja) マルチキュー・ネットワーク・アダプタの動的再構成によるリソース・アフィニティ
JP7280508B2 (ja) 情報処理装置、情報処理方法および仮想マシン接続管理プログラム
US9354952B2 (en) Application-driven shared device queue polling
US9183061B2 (en) Preserving, from resource management adjustment, portions of an overcommitted resource managed by a hypervisor
US20150370582A1 (en) At least one user space resident interface between at least one user space resident virtual appliance and at least one virtual data plane
US9495172B2 (en) Method of controlling computer system and computer system
GB2525003A (en) Data Processing Systems
KR102387922B1 (ko) 솔리드 스테이트 드라이브의 비동기 이벤트 요청 명령 처리 방법 및 시스템
WO2019028682A1 (zh) 一种多系统共享内存的管理方法及装置
US20170046187A1 (en) Guest driven surprise removal for pci devices
CN115988218A (zh) 一种虚拟化视频编解码系统、电子设备和存储介质
US11169837B2 (en) Fast thread execution transition
JP7047906B2 (ja) 入出力処理割り当て制御装置、入出力処理割り当て制御システム、入出力処理割り当て制御方法、及び、入出力処理割り当て制御プログラム
US11036645B2 (en) Secure userspace networking for guests
KR20160061726A (ko) 인터럽트 핸들링 방법
KR20130104958A (ko) 다중 운영체제들을 실행하는 장치 및 방법
JP6653786B2 (ja) I/o制御方法およびi/o制御システム
US10152341B2 (en) Hyper-threading based host-guest communication
KR20230086548A (ko) 이종의 멀티 cpu 간에 물리 자원을 공유하기 위한 제어권을 관리하는 시스템온칩 및 그 동작 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201022

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210924

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20211021

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220307

R151 Written notification of patent or utility model registration

Ref document number: 7047906

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151