(57)【要約】  入出力処理割り当て制御装置３０は、情報処理装置４０に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素４１による入出力デバイス５０に対するアクセス要求に応じて、第二の情報処理資源要素４２が、入出力デバイス５０との間における入出力データ送受信処理４２０を実行する場合に、第二の情報処理資源要素４２に対して、入出力データ送受信処理４２０を割り当てるとともに、複数の情報処理資源要素のうち、入出力デバイス５０に対するアクセス要求を含む処理の新たな割り当て先から、第二の情報処理資源要素４２を除外する割り当て部３１を備えることによって、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源要素のいずれかに割り当てるシステムにおいて、そのデータの送受信が不正に停止することを回避する。
2019221131.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、
前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て手段
を備える入出力処理割り当て制御装置。
【請求項２】
前記割り当て手段は、前記第二の情報処理資源要素を、前記複数の情報処理資源要素のうちの特定の情報処理資源要素に固定する、
請求項１に記載の入出力処理割り当て制御装置。
【請求項３】
前記第一の情報処理資源要素による、前記入出力デバイスに対するアクセス要求に対する、前記入出力デバイスからの応答の受信が完了したことを検出する検出手段をさらに備え、
前記割り当て手段は、前記検出手段によって、前記入出力デバイスからの応答の受信が完了したことが検出されたのち、前記第二の情報処理資源要素に対する前記入出力データ送受信処理の割り当てを解放する、
請求項１あるいは請求項２に記載の入出力処理割り当て制御装置。
【請求項４】
前記検出手段は、前記入出力デバイスに対するアクセスが開始されてから、前記入出力デバイスに対するアクセスデータ量に基づく時間が経過したことをもって、前記入出力デバイスからの応答の受信が完了したことを検出する、
請求項３に記載の入出力処理割り当て制御装置。
【請求項５】
前記複数の情報処理資源要素は、ＣＰＵ（Central Processing Unit）に含まれるコア、あるいはＣＰＵ、あるいは仮想マシンにおける処理の割り当て単位である、
請求項１乃至請求項４のいずれか一項に記載の入出力処理割り当て制御装置。
【請求項６】
前記入出力デバイスは、インタフェース仕様として、ＰＣＩ（Peripheral Component Interconnect）エクスプレス及びイーサネットを用いる、
請求項１乃至請求項５のいずれか一項に記載の入出力処理割り当て制御装置。
【請求項７】
請求項１乃至請求項５のいずれか一項に記載の入出力処理割り当て制御装置と、
前記第一及び第二の情報処理資源要素と、
前記入出力デバイスと、
を含む、入出力処理割り当て制御システム。
【請求項８】
前記第一の情報処理資源要素は、前記入出力デバイスに対するアクセス要求を検出したのち、前記アクセス要求が指示する前記入出力データ送受信処理の実行を前記第二の情報処理資源要素に依頼し、
前記第二の情報処理資源要素は、前記入出力デバイスとの間で送受信するデータに対するカプセル化処理及びデカプセル化処理を含む、前記入出力データ送受信処理を実行することによって、前記入出力デバイスから受信したデータを、前記第一の情報処理資源要素に入力する、
請求項７に記載の入出力処理割り当て制御システム。
【請求項９】
第一の情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、
第二の情報処理装置によって、
前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する
入出力処理割り当て制御方法。
【請求項１０】
情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、
前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て機能
をコンピュータに実現させるための入出力処理割り当て制御プログラムが格納された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源のいずれかに割り当てることを制御する技術に関する。
【背景技術】
【０００２】
近年におけるコンピュータテクノロジの急速な進歩によって実現した、複数のコアを搭載したプロセッサ（マルチコアプロセッサ）や、ハードウェアの仮想化技術等が、様々なシステムにおいて浸透してきている。そして、このようなマルチコアプロセッサやハードウェアの仮想化技術等を用いた、高性能で使いやすいシステムを実現する技術への期待がますます高まってきている。【０００３】
このような技術に関連する技術として、特許文献１には、マルチコアプロセッサによって実行された場合に、起動処理時の場合にのみキャッシュのミスヒット(フォルス・シェアリング等)が頻発するようなプログラムにおいて、起動後の処理のパフォーマンスを維持しつつ、起動時のパフォーマンスも向上させることを目的としたプログラム処理装置が開示されている。この装置は、特定処理において生成されるスレッドを管理し、起動処理中に生成されるスレッドの動作コアを特定のコアに固定し、起動処理完了後に生成する特定処理のスレッドの動作コアに対する設定を行わないようにする。また、この装置は、起動処理が完了したタイミングに、それ以前に生成していた特定処理用のスレッドの動作コアに対する設定を元に戻すようにする。【０００４】
また、特許文献２には、ネットワークを介して接続された遠隔デバイスをゲストＯＳ（Operating System）が直接制御するパススルー技術の適用範囲を拡げるようにしたデータ処理装置が開示されている。この装置は、ネットワークを介して接続されたリモート装置に設けられたデバイスとの間でＩ／Ｏ（Input / Output）処理を行うゲストＯＳに対して仮想ハードウェア環境を提供するホストＯＳを備える。そして、ホストＯＳは、ゲストＯＳが発行したＩ／Ｏ命令をトラップするとともに、トラップしたＩ／Ｏ命令をカプセル化して、リモート装置に向けてネットワークパケットとして送出する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−１６７１５１号公報
【特許文献２】国際公開第２０１５／１４５９８３号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、上述したハードウェアの仮想化技術の一つとして、ハードウェアによる通信制御機能をソフトウェアにより実現する様々な技術が開発されてきている。その一例として、ＰＣＩ（Peripheral Component Interconnect）  Ｅｘｐｒｅｓｓ（登録商標）をＥｔｈｅｒｎｅｔ（イーサネット：登録商標）上に仮想化する技術であるＥｘｐＥｔｈｅｒ（エクスプレスイーサ：登録商標）を、ソフトウェアによって実現する技術がある。【０００７】
ここで、上述したマルチコアプロセッサ（即ち、情報処理資源要素であるコアを複数備えるプロセッサ）がＥｘｐＥｔｈｅｒをソフトウェアによって実現する場合について考える。但し、本願では、処理が割り当てられる単位を、情報処理資源要素と称することとする。【０００８】
図４は、ＥｘｐＥｔｈｅｒをソフトウェアによって実現する一般的なシステムが、入出力デバイス（例えばストレージ装置）に対するアクセス要求を正常に処理した場合のシーケンス図である。但し、このシステムは、ＣＰＵ（Central Processing Unit）コアを２つ有することとし、ユーザアプリケーションは、いずれかのＣＰＵコアに割り当てられることとする。【０００９】
また、ＥｘｐＥｔｈｅｒをソフトウェアによって実現するシステムでは、ユーザアプリケーションと、当該ユーザアプリケーションによって発行された入出力デバイスに対するアクセス要求による入出力データ送受信処理とは、通常、互いに異なるＣＰＵコアに割り当てられる。このような制御が行われる理由は、１つのＣＰＵコアが、ユーザアプリケーションや入出力データ送受信処理等を含む多くの処理を実行する場合、当該ＣＰＵコアに関する情報処理資源を共有する処理の数が多くなることによって、デッドロックが発生する可能性が高くなることなどである。【００１０】
図４に示す通り、ＣＰＵコア０は、入出力デバイスに対するアクセスを行なうユーザアプリケーションを実行するとともに、ＯＳのカーネルに組み込まれたアクセスインターセプト処理を実行している。そして、ＣＰＵコア１は、入出力データ送受信処理を実行している。【００１１】
ユーザアプリケーションが入出力デバイスに対するアクセス要求を発行した場合（ステップＳ２０１）、アクセスインターセプト処理は、そのアクセス要求を検出する（ステップＳ２０２）。アクセスインターセプト処理は、そのアクセス要求の実行を入出力データ送受信処理に依頼する（ステップＳ２０３）。入出力データ送受信処理は、そのアクセス要求のカプセル化を実行し、カプセル化したアクセス要求を入出力デバイスに送信する（ステップＳ２０４）。【００１２】
入出力デバイスは、アクセス要求を受信し（ステップＳ２０５）、その応答を入出力データ送受信処理に送信する（ステップＳ２０６）。入出力データ送受信処理は、応答を受信し（ステップＳ２０７）、応答のデカプセル化を実行し（ステップＳ２０８）、デカプセル化した応答をユーザアプリケーションに送信する（ステップＳ２０９）。そしてユーザアプリケーションが応答を受信する（ステップＳ２１０）ことによって、当該アクセス要求の処理は完了する。【００１３】
図５は、ＥｘｐＥｔｈｅｒをソフトウェアによって実現する一般的なシステムが、入出力デバイスに対するアクセス要求を処理する過程において、ストールが発生した場合のシーケンス図である。【００１４】
このシステムは、図４に示す場合と同様に、ステップＳ２０１乃至Ｓ２０５の処理を実行する。そして図５に示す場合では、ＣＰＵコア１にユーザアプリケーションが新たに割り当てられる（ステップＳ３０１）ことによって、ＣＰＵコア１によって実行されていた入出力データ送受信処理が停止（消滅）する（ステップＳ３０２）。尚、入出力データ送受信処理が停止（消滅）するのは、上述した通り、１つのＣＰＵコアに対して、ユーザアプリケーションと入出力データ送受信処理との両方が割り当てられないからである。【００１５】
この場合、入出力デバイスは、応答の送信先が消滅したことによって、応答を送信できず（ステップＳ３０３）、当該アクセス要求の処理はストールする。したがって、ハードウェアによる通信制御機能をソフトウェアにより実現する例えばＥｘｐＥｔｈｅｒなどを実装したシステムにおいて、図５に例示するようなストールの発生を回避することが課題である。特許文献１及び２は、この問題について言及していない。本願発明の主たる目的は、この問題を解決する入出力処理割り当て制御装置等を提供することである。
【課題を解決するための手段】
【００１６】
本願発明の一態様に係る入出力処理割り当て制御装置は、情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て手段を備える。【００１７】
上記目的を達成する他の見地において、本願発明の一態様に係る入出力処理割り当て制御方法は、第一の情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、第二の情報処理装置によって、前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する。【００１８】
また、上記目的を達成する更なる見地において、本願発明の一態様に係る入出力処理割り当て制御プログラムは、情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て機能をコンピュータに実現させるためのプログラムである。【００１９】
更に、本願発明は、係る入出力処理割り当て制御プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００２０】
本願発明は、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源要素のいずれかに割り当てるシステムにおいて、そのデータの送受信が不正に停止することを回避することを可能とする。
【図面の簡単な説明】
【００２１】
【図１】本願発明の第１の実施形態に係る入出力処理割り当て制御システム１の構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係る情報処理装置１０の動作を示すフローチャートである。
【図３】本願発明の第２の実施形態に係る入出力処理割り当て制御装置３０の構成を示すブロック図である。
【図４】ＥｘｐＥｔｈｅｒをソフトウェアによって実現する一般的なシステムが、入出力デバイスに対するアクセス要求を正常に処理した場合のシーケンス図である。
【図５】ＥｘｐＥｔｈｅｒをソフトウェアによって実現する一般的なシステムが、入出力デバイスに対するアクセス要求を処理する過程において、ストールが発生した場合のシーケンス図である。
【発明を実施するための形態】
【００２２】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００２３】
＜第１の実施形態＞
図１は、本願発明の第１の実施の形態に係る入出力処理割り当て制御システム１の構成を示すブロック図である。入出力処理割り当て制御システム１は、大別して、情報処理装置（入出力処理割り当て制御装置）１０、及び、入出力デバイス２０を含んでいる。
【００２４】
情報処理装置１０は、例えばソフトウェアによるＥｘｐＥｔｈｅｒを実装するサーバ装置であり、入出力デバイス２０と通信可能に接続されている。入出力デバイス２０は、ＥｘｐＥｔｈｅｒに準拠したインタフェース仕様を備える、例えばストレージ装置である。
【００２５】
情報処理装置１０は、ＣＰＵ１１、主記憶１２、Ｉ／Ｏコントローラ１３、Ｉ／Ｏカード１４、入出力装置１５、及び、ＣＤ（Compact Disc）／ＤＶＤ（Digital Versatile Disc）ドライブ１６を備えている。
【００２６】
ＣＰＵ１１は、主記憶１２及びＩ／Ｏコントローラ１３の間でデータ（情報）を入出力する。ＣＰＵ１１は、また、Ｉ／Ｏコントローラ１３を介して、Ｉ／Ｏカード１４、入出力装置１５、及び、ＣＤ／ＤＶＤドライブ１６との間でデータを入出力することが可能である。
【００２７】
Ｉ／Ｏカード１４は、入出力デバイス２０とＥｘｐＥｔｈｅｒにより接続され、入出力デバイス２０との間でデータの入出力を制御する。入出力装置１５は、例えば、キーボード、マウス、ディスプレイ等の、ユーザインタフェース機能を備えた装置である。ＣＤ／ＤＶＤドライブ１６は、記録媒体１６０からのデータの読み出しや記録媒体１６０へのデータの書き込みを行なう装置の一例である。
【００２８】
情報処理装置１０は、ＣＰＵ１１が備える４つのＣＰＵコア１１１乃至１１４（情報処理資源要素）に対して、ユーザアプリケーション１１１０、及び、入出力データ送受信処理１１４０などを割り当てる機能を有する。但し、入出力データ送受信処理１１４０は、後述する通り、当該ユーザアプリケーションにより発行された入出力デバイス２０に対するアクセス要求に関するＥｘｐＥｔｈｅｒの実行に必要な処理である。尚、ＣＰＵ１１が備えるＣＰＵコアの数は、４つに限定されない。本願では、以降、本実施形態に係る情報処理装置１０が有する入出力処理割り当て制御装置としての機能について、その詳細を説明する。
【００２９】
ＣＰＵ１１が備えるＣＰＵコア１１１乃至１１４の少なくともいずれかは、割り当て処理１０１、検出処理１０２、及び、ＣＰＵコア間通信処理１０３を実行する。但し、割り当て処理１０１、検出処理１０２、及び、ＣＰＵコア間通信処理１０３を実行するためのプログラムは、情報処理装置１０が備えるメモリ（例えば主記憶１２等）に格納されていることとする。尚、本願では以降、情報処理装置１０が、割り当て処理１０１、検出処理１０２、及び、ＣＰＵコア間通信処理１０３等の処理を実行することによって行なう動作に関して、割り当て処理１０１、検出処理１０２、及び、ＣＰＵコア間通信処理１０３等を、その動作を行なう主体として記載する場合がある。
【００３０】
ＣＰＵコア１１１（第一の情報処理資源要素）は、割り当て処理１０１によって割り当てられたユーザアプリケーション１１１０を実行している。但しユーザアプリケーション１１１０は、入出力デバイス２０に記憶されているデータに対するアクセスを行なうアプリケーションである。
【００３１】
ＣＰＵコア１１１はまた、ＯＳのカーネル１１１１を実行している。カーネル１１１１は、デバイスドライバ１１１２と、アクセスインターセプト処理１１１３とを含んでいる。デバイスドライバ１１１２は、ＣＰＵコア１１１から入出力デバイス２０に対するＥｘｐＥｔｈｅｒによるアクセスを制御する。
【００３２】
アクセスインターセプト処理１１１３は、ユーザアプリケーション１１１０によって発行された、入出力デバイス２０に対するアクセス要求を検出する。アクセスインターセプト処理１１１３は、検出したアクセス要求を、ＣＰＵコア間通信処理１０３を介して、ＣＰＵコア１１４へ入力する。但し、ＣＰＵコア間通信処理１０３は、ＣＰＵコア間において行われる通信（データの送受信等）を制御する。
【００３３】
ＣＰＵコア１１４（第二の情報処理資源要素）は、割り当て処理１０１によって割り当てられた入出力データ送受信処理１１４０を実行している。ＣＰＵコア１１４はまた、ＯＳのカーネル１１４１を実行している。カーネル１１４１は、デバイスドライバ１１４２を含んでいる。デバイスドライバ１１４２は、Ｉ／Ｏカード１４を用いたＥｘｐＥｔｈｅｒによるアクセスを制御する。
【００３４】
入出力データ送受信処理１１４０は、情報処理装置１０から入出力デバイス２０に送信されるパケットデータを、ＥｘｐＥｔｈｅｒのインタフェース仕様にしたがってカプセル化する処理を含む。入出力データ送受信処理１１４０は、また、情報処理装置１０が入出力デバイス２０から受信した、ＥｘｐＥｔｈｅｒのインタフェース仕様にしたがってカプセル化されたパケットデータを、デカプセル化（カプセル化を解除）する処理を含む。
【００３５】
本実施形態に係る割り当て処理１０１は、入出力データ送受信処理１１４０の割り当て先をＣＰＵコア１１４に固定している。即ち、本実施形態に係る情報処理装置１０は、ＣＰＵコア１１４を、ソフトウェアによってＥｘｐＥｔｈｅｒを実行するための専用のＣＰＵコアとして使用する。したがって、割り当て処理１０１は、入出力デバイス２０に記憶されているデータに対するアクセスを行なう新たなユーザアプリケーションを、ＣＰＵコア１１４を除いた、ＣＰＵコア１１１乃至１１３の少なくともいずれかに割り当てる。
【００３６】
即ち、例えばユーザによる入出力装置１５に対する入力操作によって、情報処理装置１０が入出力デバイス２０に記憶されているデータに対するアクセスを行なう新たなユーザアプリケーションの実行を開始する場合、割り当て処理１０１は、その新たなユーザアプリケーションの割り当て先からＣＰＵコア１１４を除外する。
【００３７】
割り当て処理１０１は、また、新たなユーザアプリケーションを割り当てたＣＰＵコアが実行するカーネルにアクセスインターセプト処理が組み込まれていない場合、当該カーネルにアクセスインターセプト処理を組み込む。
【００３８】
検出処理１０２は、ＣＰＵコア１１１による、入出力デバイス２０に対するアクセス要求に対する入出力デバイス２０からの応答の受信が完了したことを検出する。検出処理１０２は、例えば、入出力デバイス２０に対するアクセスが開始されてから、入出力デバイス２０に対するアクセスデータ量に基づく時間が経過したことをもって、入出力デバイスからの応答の受信が完了したことを検出することができる。検出処理１０２は、あるいは、入出力デバイスからの応答における最後のデータを表す情報を検出することによって、入出力デバイスからの応答の受信が完了したことを検出してもよい。
【００３９】
割り当て処理１０１は、検出処理１０２によって、入出力デバイス２０からの応答の受信が完了したことが検出されたのち、ＣＰＵコア１１４に対する入出力データ送受信処理１１４０の割り当てを解放してもよい。
【００４０】
次に、図２のフローチャートを参照して、本実施形態に係る情報処理装置（入出力処理割り当て制御装置）１０の動作（処理）について詳細に説明する。
【００４１】
割り当て処理１０１は、ユーザアプリケーション１１１０をＣＰＵコア１１１に割り当てるとともに、アクセスインターセプト処理１１１３を、カーネル１１１１に組み込む（ステップＳ１０１）。割り当て処理１０１は、入出力データ送受信処理１１４０をＣＰＵコア１１４に割り当てる（ステップＳ１０２）。
【００４２】
アクセスインターセプト処理１１１３は、ユーザアプリケーション１１１０による入出力デバイス２０に対するアクセス要求を検出し、当該アクセス要求を、ＣＰＵコア間通信処理１０３を介して、ＣＰＵコア１１４に入力する（ステップＳ１０３）。入出力データ送受信処理１１４０は、入出力デバイス２０に対して、そのアクセス要求を実行する（ステップＳ１０４）。
【００４３】
ＣＰＵ１１は、入出力デバイス２０に対するアクセスを含む、新たなユーザアプリケーションの実行指示を、入出力装置１５から受け付ける（ステップＳ１０５）。割り当て処理１０１は、新たなユーザアプリケーションを、ＣＰＵコア１１４を除く、ＣＰＵコア１１１乃至１１３のいずれかに割り当てるとともに、必要に応じて、アクセスインターセプト処理を、割り当て先のＣＰＵコアが実行するカーネルに組み込む（ステップＳ１０６）。
【００４４】
割り当て先のＣＰＵコアによって実行されるアクセスインターセプト処理は、新たなユーザアプリケーションによる入出力デバイス２０へのアクセス要求を検出し、当該アクセス要求を、ＣＰＵコア１１４に入力する（ステップＳ１０７）。入出力データ送受信処理１１４０は、入出力デバイス２０に対して、そのアクセス要求を実行し（ステップＳ１０８）、処理は、ステップＳ１０５へ戻る。
【００４５】
本実施形態に係る情報処理装置（入出力処理割り当て制御装置）１０は、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源要素のいずれかに割り当てるシステムにおいて、そのデータの送受信が不正に停止することを回避することができる。その理由は、情報処理装置１０は、入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、入出力データ送受信処理を実行する情報処理資源要素を除外するからである。
【００４６】
以下に、本実施形態に係る情報処理装置１０によって実現される効果について、詳細に説明する。
【００４７】
例えばＥｘｐＥｔｈｅｒをソフトウェアによって実現するシステムでは、デッドロックの発生を回避することなどの理由により、ユーザアプリケーションと、当該ユーザアプリケーションによって発行された入出力デバイスに対するアクセス要求による入出力データ送受信処理とは、通常、互いに異なる情報処理資源要素に割り当てられる。このようなシステムにおいて、例えば、図５に示す通り、入出力データ送受信処理を実行する情報処理資源要素に対して、ユーザアプリケーションが新たに割り当てられた場合、当該情報処理資源要素によって実行されていた入出力データ送受信処理が停止（消滅）することによって、当該アクセス要求の処理がストールするという問題がある。
【００４８】
このような問題に対して、本実施形態に係る情報処理装置（入出力処理割り当て制御装置）１０は、割り当て処理１０１を実行することによって、例えば図１及び図２を参照して上述した通り動作する。即ち、本実施形態では、情報処理装置１０に含まれる複数のＣＰＵコア１１１乃至１１４（情報処理資源要素）のうちのＣＰＵコア１１１（第一の情報処理資源要素）による入出力デバイス２０に対するアクセス要求に応じて、ＣＰＵコア１１４（第二の情報処理資源要素）が、入出力デバイス２０との間における入出力データ送受信処理１１４０を実行する。そして、割り当て処理１０１は、ＣＰＵコア１１４に対して、入出力データ送受信処理１１４０を割り当てるとともに、ＣＰＵコア１１１乃至１１４のうち、入出力デバイス２０に対するアクセス要求を含む処理の新たな割り当て先から、ＣＰＵ１１４を除外する。
【００４９】
即ち、本実施形態に係る情報処理装置（入出力処理割り当て制御装置）１０は、入出力データ送受信処理１１４０を実行するＣＰＵコア１１４に対して、ユーザアプリケーションを新たに割り当てないようにするので、入出力データ送受信処理が停止（消滅）することによって、入出力デバイス２０に対するアクセス要求の処理が停止するという問題を回避することができる。
【００５０】
また、本実施形態に係る情報処理装置１０は、入出力データ送受信処理を実行するＣＰＵコアを、ＣＰＵコア１１４に固定する。即ち、情報処理装置１０は、ＣＰＵコア１１４を、入出力データ送受信処理を実行するための専用のＣＰＵコアとして確保するので、入出力デバイス２０に対するアクセス要求の処理が停止するという問題を、簡易な論理により回避することができる。尚、情報処理装置１０は、入出力データ送受信処理を実行するＣＰＵコアを、何れかのＣＰＵコアに固定しなくてもよく、各ＣＰＵコアの情報処理状況に応じて、適切なＣＰＵコアに入出力データ送受信処理を割り当てるようにしてもよい。
【００５１】
また、本実施形態に係る情報処理装置１０は、入出力デバイス２０に対するアクセス要求に対する、入出力デバイス２０からの応答の受信が完了したことを検出する検出処理１０２をさらに実行する。この場合、割り当て処理１０１は、検出処理１０２によって、入出力デバイス２０からの応答の受信が完了したことが検出されたのち、ＣＰＵコア１１４に対する入出力データ送受信処理１１４０の割り当てを一旦解放する。
【００５２】
例えば、上述したように、ＣＰＵコア１１４を、入出力データ送受信処理を実行するための専用のＣＰＵコアとした場合、ＣＰＵコア１１４は、ユーザアプリケーションを実行するＣＰＵコアとしては使用できなくなるので、情報処理資源の使用効率が低下する問題が生じる。この問題に対して、本実施形態に係る情報処理装置１０は、上述した通り、入出力デバイス２０からの応答の受信が完了することによって、入出力データ送受信処理１１４０を停止しても問題が無い状態になったときに、ＣＰＵコア１１４に対する入出力データ送受信処理１１４０の割り当てを一旦解放することができるので、情報処理資源の使用効率が低下する問題を回避することができる。
【００５３】
尚、情報処理装置１０は、検出処理１０２を実行しない、簡易な構成を備えてもよい。
【００５４】
また、上述した本実施形態に係る情報処理装置１０は、ユーザアプリケーションや入出力データ送受信処理等を割り当てる単位（情報処理資源要素）をＣＰＵコアとしているが、情報処理資源要素はＣＰＵコアに限定されない。情報処理資源要素は、例えば、ＣＰＵを複数備える情報処理装置におけるＣＰＵ、あるいは仮想マシンにおける処理の割り当て単位などでもよい。
【００５５】
また、情報処理装置１０が制御対象とする通信制御インタフェースは、ＰＣＩ  ＥｘｐｒｅｓｓをＥｔｈｅｒｎｅｔ上に仮想化したＥｘｐＥｔｈｅｒに限定されない。情報処理装置１０は、第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、第一の情報処理資源要素とは異なる第二の情報処理資源要素が、入出力デバイスとの間における入出力データ送受信処理を実行するような、ＥｘｐＥｔｈｅｒ以外の通信制御インタフェースを制御対象としてもよい。
【００５６】
また、本実施形態に係る割り当て処理１０１、検出処理１０２、及び、ＣＰＵコア間通信処理１０３が実現する機能は、ＣＰＵ１１がこれらの処理に関するプログラムを実行する構成以外の構成によっても実現可能である。情報処理装置１０は、例えば、割り当て処理１０１、検出処理１０２、及び、ＣＰＵコア間通信処理１０３と同等の機能を実現するハードウェアである割り当て部、検出部、及び、ＣＰＵコア間通信部を備えてもよい。
【００５７】
また、本実施形態に係る割り当て処理１０１、検出処理１０２、及び、ＣＰＵコア間通信処理１０３を実現する、コンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体１６０を介して情報処理装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体１６０によって構成されると捉えることができる。
【００５８】
＜第２の実施形態＞
図３は、本願発明の第２の実施形態に係る入出力処理割り当て制御装置３０の構成を示すブロック図である。
【００５９】
本実施形態に係る入出力処理割り当て制御装置３０は、割り当て部３１を備えている。
【００６０】
本実施形態では、情報処理装置４０に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素４１による入出力デバイス５０に対するアクセス要求に応じて、第一の情報処理資源要素４１とは異なる第二の情報処理資源要素４２が、入出力デバイス５０との間における入出力データ送受信処理４２０を実行する。
【００６１】
割り当て部３１は、第二の情報処理資源要素４２に対して、入出力データ送受信処理４２０を割り当てるとともに、複数の情報処理資源要素のうち、入出力デバイス５０に対するアクセス要求を含む処理の新たな割り当て先から、第二の情報処理資源要素４２を除外する。
【００６２】
本実施形態に係る入出力処理割り当て制御装置３０は、入出力デバイスとの間でデータを送受信する入出力データ送受信処理を、複数の情報処理資源要素のいずれかに割り当てるシステムにおいて、そのデータの送受信が不正に停止することを回避することができる。その理由は、入出力処理割り当て制御装置３０は、入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、入出力データ送受信処理を実行する情報処理資源要素を除外するからである。
【００６３】
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【００６４】
この出願は、２０１８年５月１８日に出願された日本出願特願２０１８−０９５８８６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００６５】
１    入出力処理割り当て制御システム
１０    情報処理装置
１０１    割り当て処理
１０２    検出処理
１０３    ＣＰＵコア間通信処理
１１    ＣＰＵ
１１１乃至１１４    ＣＰＵコア
１１１０    ユーザアプリケーション
１１１１    カーネル
１１１２    デバイスドライバ
１１１３    アクセスインターセプト処理
１１４０    入出力データ送受信処理
１１４１    カーネル
１１４２    デバイスドライバ
１２    主記憶
１３    Ｉ／Ｏコントローラ
１４    Ｉ／Ｏカード
１５    入出力装置
１６    ＣＤ／ＤＶＤドライブ
１６０    記録媒体
２０    入出力デバイス
３０    入出力処理割り当て制御装置
３１    割り当て部
４０    情報処理装置
４１    第一の情報処理資源要素
４２    第二の情報処理資源要素
４２０    入出力データ送受信処理
５０    入出力デバイス
【図１】
2019221131.tif 000003
【図２】
2019221131.tif 000004
【図３】
2019221131.tif 000005
【図４】
2019221131.tif 000006
【図５】
2019221131.tif 000007
【手続補正書】
【提出日】令和2年10月22日(2020.10.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、
前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て手段
を備える入出力処理割り当て制御装置。
【請求項２】
前記割り当て手段は、前記第二の情報処理資源要素を、前記複数の情報処理資源要素のうちの特定の情報処理資源要素に固定する、
請求項１に記載の入出力処理割り当て制御装置。
【請求項３】
前記第一の情報処理資源要素による、前記入出力デバイスに対するアクセス要求に対する、前記入出力デバイスからの応答の受信が完了したことを検出する検出手段をさらに備え、
前記割り当て手段は、前記検出手段によって、前記入出力デバイスからの応答の受信が完了したことが検出されたのち、前記第二の情報処理資源要素に対する前記入出力データ送受信処理の割り当てを解放する、
請求項１あるいは請求項２に記載の入出力処理割り当て制御装置。
【請求項４】
前記検出手段は、前記入出力デバイスに対するアクセスが開始されてから、前記入出力デバイスに対するアクセスデータ量に基づく時間が経過したことをもって、前記入出力デバイスからの応答の受信が完了したことを検出する、
請求項３に記載の入出力処理割り当て制御装置。
【請求項５】
前記複数の情報処理資源要素は、ＣＰＵ（Central Processing Unit）に含まれるコア、あるいはＣＰＵ、あるいは仮想マシンにおける処理の割り当て単位である、
請求項１乃至請求項４のいずれか一項に記載の入出力処理割り当て制御装置。
【請求項６】
前記入出力デバイスは、インタフェース仕様として、ＰＣＩ（Peripheral Component Interconnect）エクスプレス及びイーサネットを用いる、
請求項１乃至請求項５のいずれか一項に記載の入出力処理割り当て制御装置。
【請求項７】
請求項１乃至請求項５のいずれか一項に記載の入出力処理割り当て制御装置と、
前記第一及び第二の情報処理資源要素と、
前記入出力デバイスと、
を含む、入出力処理割り当て制御システム。
【請求項８】
前記第一の情報処理資源要素は、前記入出力デバイスに対するアクセス要求を検出したのち、前記アクセス要求が指示する前記入出力データ送受信処理の実行を前記第二の情報処理資源要素に依頼し、
前記第二の情報処理資源要素は、前記入出力デバイスとの間で送受信するデータに対するカプセル化処理及びデカプセル化処理を含む、前記入出力データ送受信処理を実行することによって、前記入出力デバイスから受信したデータを、前記第一の情報処理資源要素に入力する、
請求項７に記載の入出力処理割り当て制御システム。
【請求項９】
第一の情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、
第二の情報処理装置によって、
前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する
入出力処理割り当て制御方法。
【請求項１０】
情報処理装置に含まれる複数の情報処理資源要素のうちの第一の情報処理資源要素による入出力デバイスに対するアクセス要求に応じて、前記第一の情報処理資源要素とは異なる第二の情報処理資源要素が、前記入出力デバイスとの間における入出力データ送受信処理を実行する場合に、
前記第二の情報処理資源要素に対して、前記入出力データ送受信処理を割り当てるとともに、前記複数の情報処理資源要素のうち、前記入出力デバイスに対するアクセス要求を含む処理の新たな割り当て先から、前記第二の情報処理資源要素を除外する割り当て機能
をコンピュータに実現させるための入出力処理割り当て制御プログラム。
【国際調査報告】
2019221131.tif 000008
2019221131.tif 000009