(57)【特許請求の範囲】
【請求項１】
データを送信する送信装置と、前記送信装置からデータを受信する受信装置とを有する情報処理システムにおいて、
前記送信装置は、
データを生成するソフトウェアを実行するデータ処理部と、
第１の鍵情報と前記ソフトウェアが生成したデータとを保持する第１の保持部と、
前記データ処理部の動作を管理するとともに第２の鍵情報を生成する管理部と、
前記管理部が生成した第２の鍵情報を保持し、前記ソフトウェアによる書き込みが禁止された第２の保持部と、
前記第１の保持部が保持するデータおよび第１の鍵情報と、前記第２の保持部が保持する第２の鍵情報とを含むパケットを生成するパケット生成部と、
前記パケット生成部が生成したパケットを送信するパケット送信部を有し、
前記受信装置は、
前記送信装置からのパケットを受信するパケット受信部と、
第１の鍵情報と第２の鍵情報とを保持する第３の保持部と、
前記パケット受信部が受信したパケットに含まれる第１の鍵情報と、前記第３の保持部に保持された第１の鍵情報とを比較する第１の比較部と、
前記パケット受信部が受信したパケットに含まれる第２の鍵情報と、前記第３の保持部に保持された第２の鍵情報とを比較する第２の比較部と、
前記第１の比較部による比較結果が一致を示し、かつ、前記第２の比較部による比較結果が一致を示す場合、前記パケット受信部が受信したパケットに含まれるデータを記憶部に書き込む書き込み制御部を有することを特徴とする情報処理システム。
【請求項２】
前記管理部は、前記データ処理部の動作を管理する管理プログラムにより実現されることを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記管理部は、前記データ処理部の動作を管理する管理プログラムを実行する仮想マシンを制御する制御プログラムにより実現されることを特徴とする請求項１記載の情報処理システム。
【請求項４】
前記管理部は、前記データ処理部の状態を管理する管理装置が実行する状態管理プログラムにより実現されることを特徴とする請求項１記載の情報処理システム。
【請求項５】
前記第３の保持部は、前記第２の比較部による第２の鍵情報の比較を有効にするかを設定する有効フラグを有し、
前記第２の比較部は、前記第３の保持部に保持された有効フラグが無効を示す場合、比較結果に拘わらず、比較結果の一致を示す情報を前記書き込み制御部に出力することを特徴とする請求項１ないし請求項４のいずれか１項記載の情報処理システム。
【請求項６】
前記送信装置が、複数の前記ソフトウェアを実行する複数の前記データ処理部を有する場合、
前記第１の保持部および前記第２の保持部は、複数の前記データ処理部毎に設けられ、
前記第３の保持部は、複数の前記ソフトウェア毎に設けられることを特徴とする請求項１ないし請求項５のいずれか１項記載の情報処理システム。
【請求項７】
受信装置とともに情報処理システムに搭載され、前記受信装置にデータを送信する送信装置において、
データを生成するソフトウェアを実行するデータ処理部と、
第１の鍵情報と前記ソフトウェアが生成したデータとを保持する第１の保持部と、
前記データ処理部の動作を管理するとともに第２の鍵情報を生成する管理部と、
前記管理部が生成した第２の鍵情報を保持し、前記ソフトウェアによる書き込みが禁止された第２の保持部と、
前記第１の保持部が保持するデータおよび第１の鍵情報と、前記第２の保持部が保持する第２の鍵情報とを含むパケットを生成するパケット生成部と、
前記パケット生成部が生成したパケットを送信するパケット送信部を有することを特徴とする送信装置。
【請求項８】
データを送信する送信装置と、前記送信装置からデータを受信する受信装置とを有する情報処理システムの制御方法において、
前記送信装置が有するデータ処理部が、データを生成し、生成したデータを、第１の鍵情報を保持する第１の保持部に格納するソフトウェアを実行し、
前記送信装置が有する管理部が、前記データ処理部の動作を管理するとともに第２の鍵情報を生成し、生成した第２の鍵情報を前記ソフトウェアによる書き込みが禁止された第２の保持部に格納し、
前記送信装置が有するパケット生成部が、第１の保持部が保持するデータおよび第１の鍵情報と、前記第２の保持部が保持する第２の鍵情報とを含むパケットを生成し、
前記送信装置が有するパケット送信部が、前記パケット生成部が生成したパケットを送信し、
前記受信装置が有するパケット受信部が、前記送信装置からのパケットを受信し、
前記受信装置が有する第１の比較部が、前記パケット受信部が受信したパケットに含まれる第１の鍵情報と、第３の保持部に保持された第１の鍵情報とを比較し、
前記受信装置が有する第２の比較部が、前記パケット受信部が受信したパケットに含まれる第２の鍵情報と、前記第３の保持部に保持された第２の鍵情報とを比較し、
前記受信装置が有する書き込み制御部が、前記第１の比較部による比較結果が一致を示し、かつ、前記第２の比較部による比較結果が一致を示す場合、前記パケット受信部が受信したパケットに含まれるデータを記憶部に書き込むことを特徴とする情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、送信装置および情報処理システムの制御方法に関する。
【背景技術】
【０００２】
データを互いに送受信する複数のノードを含む情報処理システムにおいて、受信データを格納するキューにおける受信データの格納位置を示すライトポインタとリードポインタとを記憶する複数のポインタセットを受信ノードに設ける手法が提案されている。この種の情報処理システムでは、データを送信する送信ノードが実行するプログラムは、送信データと、受信ノードが使用するポインタセットを示す情報とを送信用のレジスタに格納する。送信ノードは、送信用のレジスタに格納された送信データとポインタセットを示す情報とを含むパケットを生成し、生成したパケットを受信ノードに送信する。受信ノードは、受信したパケットに含まれる情報により示されるポインタセットを選択し、選択したポインタセットのライトポインタが示す領域に、受信したデータを格納する（例えば、特許文献１参照）。
【０００３】
また、パケットを送信する送信側端末装置とパケットを受信する受信側端末装置とを含む情報処理システムにおいて、受信側端末装置が、受信したパケットに含まれるスロット識別値により識別されるスロットに保持された情報を用いてパケットを処理する手法が知られている。受信側端末装置は、受信したパケットに含まれる保護キーと、スロット識別値により識別されたスロットに保持された保護キーとが一致する場合、受信したパケットが正常であると判断し、パケットを受け付けて処理を実行する（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２１４１６８号公報
【特許文献２】特開平６−３０９２５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した情報処理システムでは、例えば、他の送信側端末装置が保護キーと誤ったスロット識別値とを含むパケットを受信側端末装置に送信した場合にも、受信側端末装置は、保護キーさえ一致すれば、パケットを受け付けてしまう。この場合、受信側端末装置は、誤って受信したパケットの処理により、誤動作するおそれがある。
【０００６】
また、送信側端末装置が実行する複数のプログラムの各々が、スロット識別値と保護キーとを用いて、受信側端末装置側が実行する複数のプログラムの各々にパケットを送信する場合がある。この場合、送信側端末装置が実行するプログラムが、他のプログラムで使用するスロット識別値と保護キーとを含むパケットを送信した場合、他のプログラムに対応する受信側端末装置のプログラムは、誤ったパケットを受信してしまう。
【０００７】
１つの側面では、本件開示の情報処理システム、送信装置および情報処理システムの制御方法は、送信装置が送信した誤ったパケットが、受信装置により処理されることを抑止することによりシステムが誤動作することを防止することを目的とする。
【課題を解決するための手段】
【０００８】
一つの観点によれば、データを送信する送信装置と、送信装置からデータを受信する受信装置とを有する情報処理システムにおいて、送信装置は、データを生成するソフトウェアを実行するデータ処理部、第１の鍵情報とソフトウェアが生成したデータとを保持する第１の保持部と、データ処理部の動作を管理するとともに第２の鍵情報を生成する管理部と、管理部が生成した第２の鍵情報を保持し、ソフトウェアによる書き込みが禁止された第２の保持部と、第１の保持部が保持するデータおよび第１の鍵情報と、第２の保持部が保持する第２の鍵情報とを含むパケットを生成するパケット生成部と、パケット生成部が生成したパケットを送信するパケット送信部を有し、受信装置は、送信装置からのパケットを受信するパケット受信部と、第１の鍵情報と第２の鍵情報とを保持する第３の保持部と、パケット受信部が受信したパケットに含まれる第１の鍵情報と、第３の保持部に保持された第１の鍵情報とを比較する第１の比較部と、パケット受信部が受信したパケットに含まれる第２の鍵情報と、第３の保持部に保持された第２の鍵情報とを比較する第２の比較部と、第１の比較部による比較結果が一致を示し、かつ、第２の比較部による比較結果が一致を示す場合、パケット受信部が受信したパケットに含まれるデータを記憶部に書き込む書き込み制御部を有する。
【０００９】
別の観点によれば、受信装置とともに情報処理システムに搭載され、受信装置にデータを送信する送信装置は、データを生成するソフトウェアを実行するデータ処理部、第１の鍵情報とソフトウェアが生成したデータとを保持する第１の保持部と、データ処理部の動作を管理するとともに第２の鍵情報を生成する管理部と、管理部が生成した第２の鍵情報を保持し、ソフトウェアによる書き込みが禁止された第２の保持部と、第１の保持部が保持するデータおよび第１の鍵情報と、第２の保持部が保持する第２の鍵情報とを含むパケットを生成するパケット生成部と、パケット生成部が生成したパケットを送信するパケット送信部を有する。
【００１０】
さらなる別の観点によれば、データを送信する送信装置と、送信装置からデータを受信する受信装置とを有する情報処理システムの制御方法は、送信装置が有するデータ処理部が、データを生成し、生成したデータを、第１の鍵情報を保持する第１の保持部に格納するソフトウェアを実行し、送信装置が有する管理部が、データ処理部の動作を管理するとともに第２の鍵情報を生成し、生成した第２の鍵情報をソフトウェアによる書き込みが禁止された第２の保持部に格納し、送信装置が有するパケット生成部が、第１の保持部が保持するデータおよび第１の鍵情報と、第２の保持部が保持する第２の鍵情報とを含むパケットを生成し、送信装置が有するパケット送信部が、パケット生成部が生成したパケットを送信し、受信装置が有するパケット受信部が、送信装置からのパケットを受信し、受信装置が有する第１の比較部が、パケット受信部が受信したパケットに含まれる第１の鍵情報と、第３の保持部に保持された第１の鍵情報とを比較し、受信装置が有する第２の比較部が、パケット受信部が受信したパケットに含まれる第２の鍵情報と、第３の保持部に保持された第２の鍵情報とを比較し、受信装置が有する書き込み制御部が、第１の比較部による比較結果が一致を示し、かつ、第２の比較部による比較結果が一致を示す場合、パケット受信部が受信したパケットに含まれるデータを記憶部に書き込む。
【発明の効果】
【００１１】
本件開示の情報処理システム、送信装置および情報処理システムの制御方法は、送信装置が送信した誤ったパケットが、受信装置により処理されることを抑止することによりシステムが誤動作することを防止することができる。
【図面の簡単な説明】
【００１２】
【図１】情報処理システム、送信装置および情報処理システムの制御方法の一実施形態を示す図である。
【図２】図１に示す情報処理システムの動作の一例を示す図である。
【図３】情報処理システム、送信装置および情報処理システムの制御方法の別の実施形態を示す図である。
【図４】図３に示すＣＰＵの一例を示す図である。
【図５】図４に示すレジスタ部２０と、パケット制御部においてパケットを送信する場合に動作する要素との一例を示す図である。
【図６】図５に示すパケット生成部が生成するパケットの一例を示す図である。
【図７】図３に示す情報処理システムの状態の一例を示す図である。
【図８】図７に示すレジスタ部の各エントリに設けられるレジスタのアクセス権限の一例を示す図である。
【図９】図４に示すレジスタ部６０と、パケット制御部においてパケットを受信する場合に動作する要素との一例を示す図である。
【図１０】図９に示すパケット判定部の一例を示す図である。
【図１１】図３に示す情報処理システムの動作の一例を示す図である。
【図１２】図３に示す情報処理システムの動作の別の例を示す図である。
【図１３】他の情報処理システムの動作の一例を示す図である。
【図１４】図４に示すパケット制御部が実行するパケットを送信する処理の一例を示す図である。
【図１５】図４に示すパケット制御部が実行するパケットを受信する処理の一例を示す図である。
【図１６】図１５に示す処理の続きを示す図である。
【図１７】図４に示すコアが実行するアプリケーションプログラムによりパケットを送信する場合の処理の一例を示す図である。
【図１８】図４に示すコアが実行するアプリケーションプログラムによりパケットを受信する場合の処理の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を用いて実施形態を説明する。
【００１４】
図１は、情報処理システム、送信装置および情報処理システムの制御方法の一実施形態を示す。図１に示す情報処理システムＳＹＳ１は、データを送信する送信装置１００と、送信装置１００からデータを受信する受信装置２００とを有する。送信装置１００は、データ処理部１１０、管理部１２０、保持部１３０、１４０、パケット生成部１５０およびパケット送信部１６０を有する。受信装置２００は、パケット受信部２１０、保持部２２０、比較部２３０、２４０、書き込み制御部２５０および記憶部２６０を有する。保持部１３０は、第１の保持部の一例であり、保持部１４０は、第２の保持部の一例であり、保持部２２０は、第３の保持部の一例である。
【００１５】
データ処理部１１０は、アプリケーションプログラムＡＰＲＧを実行することでデータＤＡＴＡを生成し、生成したデータＤＡＴＡを、鍵情報ＫＥＹ１を保持する保持部１３０に格納する。アプリケーションプログラムＡＰＲＧは、データ処理部１１０が実行するソフトウェアの一例である。データ処理部１１０は、送信装置１００に搭載されるＣＰＵ（Central Processing Unit）等のプロセッサまたはプロセッサが有するプロセッサコア等である。
【００１６】
管理部１２０は、データ処理部１１０の動作を管理するとともに鍵情報ＫＥＹ２を生成し、生成した鍵情報ＫＥＹ２を保持部１４０に格納する。管理部１２０は、データ処理部１１０の動作を管理するＯＳ（Operating System）等の管理プログラム、または、ＯＳを実行する仮想マシンを制御するハイパーバイザ等の制御プログラムにより実現される。あるいは、管理部１２０は、データ処理部１１０の状態を管理するサービスプロセッサ等の管理装置が実行する状態管理プログラムにより実現される。なお、管理部１２０は、送信装置１００の外部に設けられてもよい。
【００１７】
例えば、保持部１３０、１４０の記憶領域は、Ｉ／Ｏ空間に割り当てられる。保持部１３０は、アプリケーションプログラムＡＰＲＧによりアクセスが可能であり、保持部１４０は、アプリケーションプログラムＡＰＲＧによる書き込みが禁止されている。すなわち、保持部１３０と保持部１４０とは、アクセス権限が互いに異なる。このため、アプリケーションプログラムＡＰＲＧの誤動作等により誤った鍵情報ＫＥＹ２が保持部１４０に格納されることを抑止することができる。換言すれば、保持部１４０に保持された鍵情報ＫＥＹ２は、アプリケーションプログラムＡＰＲＧによって誤って書き替えられることはない。鍵情報ＫＥＹ１は、第１の鍵情報の一例であり、鍵情報ＫＥＹ２は、第２の鍵情報の一例である。
【００１８】
パケット生成部１５０は、保持部１３０に保持されたデータＤＡＴＡおよび鍵情報ＫＥＹ１と、保持部１４０に保持された鍵情報ＫＥＹ２とを含むパケットを生成する。すなわち、パケット生成部１５０は、アクセス権限が互いに異なる複数の保持部１３０、１４０に保持された鍵情報ＫＥＹ１、ＫＥＹ２を含むパケットを生成する。パケット送信部１６０は、パケット生成部１５０が生成したパケットを受信装置２００に送信する。
【００１９】
パケット受信部２１０は、送信装置１００からのパケットを受信する。また、パケット受信部２１０は、送信装置１００がデータＤＡＴＡを送信する前に生成する鍵情報ＫＥＹ１、ＫＥＹ２を予め受信し、受信した鍵情報ＫＥＹ１、ＫＥＹ２を保持部２２０に格納する。すなわち、保持部２２０は、送信装置１００が生成する鍵情報ＫＥＹ１、ＫＥＹ２を、データＤＡＴＡが送信装置１００から転送される前に予め保持する。
【００２０】
比較部２３０は、パケット受信部２１０が受信したパケットに含まれる鍵情報ＫＥＹ１と、保持部２２０に保持された鍵情報ＫＥＹ１とを比較し、比較結果を書き込み制御部２５０に出力する。比較部２４０は、パケット受信部２１０が受信したパケットに含まれる鍵情報ＫＥＹ２と、保持部２２０に保持された鍵情報ＫＥＹ２とを比較し、比較結果を書き込み制御部２５０に出力する。比較部２３０は、第１の比較部の一例であり、比較部２４０は、第２の比較部の一例である。
【００２１】
書き込み制御部２５０は、比較部２３０による比較結果が一致を示し、かつ、比較部２４０による比較結果が一致を示す場合、パケット受信部２１０が受信したパケットが正常であると判定し、パケットに含まれるデータを記憶部２６０に書き込む。一方、書き込み制御部２５０は、比較部２３０による比較結果と比較部２４０による比較結果との少なくともいずれかが不一致を示す場合、パケット受信部２１０が受信したパケットが正常でないと判定する。この場合、書き込み制御部２５０は、パケットに含まれるデータを記憶部２６０に書き込むことなく破棄する。例えば、記憶部２６０は、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）、ＨＤＤ（Hard Disk Drive）またはＳＳＤ（Solid State Drive）等の記憶装置に割り当てられる。記憶部２６０は、受信装置２００の外部に設けられてもよい。
【００２２】
以上のように、受信装置２００は、アクセス権限が異なる複数の保持部１３０、１４０に保持された鍵情報ＫＥＹ１、ＫＥＹ２を用いて、受信したパケットが正常であるか否かを判定する。このため、１つの鍵情報、またはアクセス権限が互いに同じ複数の保持部に保持された複数の鍵情報を用いて、受信したパケットが正常であるか否かを判定する場合に比べて、判定の信頼性を向上することができる。この結果、受信装置２００が、正常でないパケットに含まれる誤ったデータを用いてデータ処理等を実行することを抑止することができ、情報処理システムＳＹＳ１の信頼性を向上することができる。
【００２３】
図２は、図１に示す情報処理システムＳＹＳ１の動作の一例を示す。すなわち、図２は、情報処理システムの制御方法の一例を示す。
【００２４】
管理部１２０は、データＤＡＴＡの受信装置２００への送信が開始される前に、鍵情報ＫＥＹ２を保持部１４０に格納するとともに受信装置２００に転送する（図２（ａ））。すなわち、アプリケーションプログラムＡＰＲＧより上位のＯＳ等のプログラムによる鍵情報ＫＥＹ２の保持部１４０への格納は、データＤＡＴＡの転送前に予め実行される。このため、データＤＡＴＡの受信装置２００への転送時に、保持部１４０にアクセスするためのプロセスの切り替えは発生せず、プロセスの切り替え時にプロセスの状態を保存するコンテキストスイッチは発生しない。したがって、コンテキストスイッチ等により、アプリケーションプログラムＡＰＲＧの実行効率が低下することを抑止することができる。
【００２５】
アプリケーションプログラムＡＰＲＧは、データＤＡＴＡの受信装置２００への送信を開始する前に、鍵情報ＫＥＹ１を受信装置２００に転送する（図２（ｂ））。受信装置２００は、送信装置１００から転送された鍵情報ＫＥＹ１、ＫＥＹ２を保持部２２０に格納する（図２（ｃ））。
【００２６】
アプリケーションプログラムＡＰＲＧは、データＤＡＴＡを受信装置２００に送信する場合、データＤＡＴＡおよび鍵情報ＡＫＥＹ１を保持部１３０に格納する（図２（ｄ））。この後、図２に破線の矢印で示すように、アプリケーションプログラムＡＰＲＧは、パケット生成部１５０にパケットの生成を指示する（図２（ｅ））。
【００２７】
パケット生成部１５０は、アプリケーションプログラムＡＰＲＧからの指示に基づいて、保持部１３０からデータＤＡＴＡおよび鍵情報ＡＫＥＹ１を読み出し、保持部１４０から鍵情報ＫＥＹ２を読み出す（図２（ｆ））。そして、パケット生成部１５０は、データＤＡＴＡと鍵情報ＫＥＹ１、ＫＥＹ２とを含むパケットを生成し、生成したパケットを受信装置２００に送信する（図２（ｇ））。
【００２８】
受信装置２００のパケット受信部２１０は、受信したパケットに含まれる鍵情報ＫＥＹ１を比較部２３０に出力し、受信したパケットに含まれる鍵情報ＫＥＹ２を比較部２４０に出力する（図２（ｈ））。
【００２９】
比較部２３０は、パケット受信部２１０からの鍵情報ＫＥＹ１と、保持部２２０に保持された鍵情報ＫＥＹ１とを比較し、比較結果を書き込み制御部２５０に出力する（図２（ｉ））。比較部２４０は、パケット受信部２１０からの鍵情報ＫＥＹ２と、保持部２２０に保持された鍵情報ＫＥＹ２とを比較し、比較結果を書き込み制御部２５０に出力する（図２（ｊ））。
【００３０】
図２に示す例では、比較部２３０による比較結果が一致を示し、かつ、比較部２４０による比較結果が一致を示すため、書き込み制御部２５０は、パケット受信部２１０が受信したパケットが正常であると判定する。そして、書き込み制御部２５０は、パケットに含まれるデータＤＡＴＡを記憶部２６０に書き込む（図２（ｋ））。
【００３１】
以上、図１および図２に示す実施形態では、アプリケーションプログラムＡＰＲＧより上位のＯＳ等のプログラムは、アプリケーションプログラムＡＰＲＧによるアクセスが許可されていない保持部１４０に鍵情報ＫＥＹ２を格納する。これにより、アプリケーションプログラムＡＰＲＧの誤動作等により誤った鍵情報ＫＥＹ２が保持部１４０に格納されることを抑止することができる。また、アクセス権限が異なる複数の保持部１３０、１４０に保持された鍵情報ＫＥＹ１、ＫＥＹ２を用いて、受信したパケットが正常であるか否かを判定することで、判定の信頼性を向上することができる。
【００３２】
したがって、送信装置１００が送信した誤ったパケットが、受信装置２００により処理されることを抑止することができ、受信装置２００が、誤ったパケットに含まれるデータを用いてデータ処理等を実行することを抑止することができる。この結果、情報処理システムＳＹＳ１の信頼性を向上することができる。
【００３３】
アプリケーションプログラムＡＰＲＧより上位のＯＳ等のプログラムによる鍵情報ＫＥＹ２の保持部１４０への格納は、データＤＡＴＡの転送前に予め実行される。このため、データＤＡＴＡの受信装置２００への転送時にコンテキストスイッチ等は発生せず、コンテキストスイッチ等により、アプリケーションプログラムＡＰＲＧの実行効率が低下することを抑止することができる。
【００３４】
図３は、情報処理システム、送信装置および情報処理システムの制御方法の別の実施形態を示す。図３に示す情報処理システムＳＹＳ２は、クロスバースイッチＧＸＢにより相互に接続された複数のノードＮＤ（ＮＤ０、ＮＤ１、ＮＤ２、ＮＤ３）を有する。各ノードＮＤは、サーバ等の情報処理装置により構築される。なお、情報処理システムＳＹＳ２に搭載されるノードＮＤの数は、４個に限定されない。ノードＮＤ０−ＮＤ３は、互いに同一または同様の構成であるため、以下ではノードＮＤ０の構成が説明される。
【００３５】
ノードＮＤ０は、複数のＣＰＵ（ＣＰＵ０、ＣＰＵ１）、複数の記憶装置ＭＥＭ（ＭＥＭ０、ＭＥＭ１）、クロスバースイッチＬＸＢ、スイッチＳＷ、ＨＤＤおよびネットワークインタフェースＮＷＩＦを有する。各ＣＰＵは、メモリバスＭＢＵＳ（ＭＢＵＳ０、ＭＢＵＳ１）を介して互いに異なる記憶装置ＭＥＭに接続される。例えば、記憶装置ＭＥＭは、複数のＳＤＲＡＭ）が搭載されたＤＩＭＭ（Dual Inline Memory Module）である。なお、各ノードＮＤは、ＨＤＤの代わりにＳＳＤを有してもよく、ＨＤＤとＳＳＤの両方を有してもよい。
【００３６】
各ノードＮＤにおいて、ＣＰＵは、他のＣＰＵに接続された記憶装置ＭＥＭにアクセス可能である。さらに、各ノードＮＤのＣＰＵは、クロスバースイッチＬＸＢ、ＧＸＢを介して、他のノードＮＤのＣＰＵに接続された記憶装置ＭＥＭにアクセス可能である。すなわち、情報処理システムＳＹＳ２は、ｃｃ−ＮＵＭＡ（cache-coherent NonUniform Memory Access）アーキテクチャを採用したマルチプロセッサシステムとして機能する。
【００３７】
クロスバースイッチＬＸＢは、各ＣＰＵをクロスバースイッチＧＸＢに接続する。なお、各ノードＮＤ内のＣＰＵは、クロスバースイッチＬＸＢを介することなく、データ等の情報を直接送受信可能である。スイッチＳＷは、例えば、ＰＣＩｅ（Peripheral Component Interconnect express）スイッチ等であり、各ＣＰＵをＨＤＤまたはネットワークインタフェースＮＷＩＦに接続する。ネットワークインタフェースＮＷＩＦは、ＬＡＮ（Local Area Network）等のネットワークに接続される。
【００３８】
クロスバースイッチＧＸＢは、各ノードＮＤから受信するデータを含むパケットを、パケットに含まれる宛先情報により示されるノードＮＤに出力する。クロスバースイッチＧＸＢは、各ノードＮＤのハードウェア等の資源を管理するサービスプロセッサＳＰを有する。
【００３９】
例えば、サービスプロセッサＳＰは、状態管理プログラムを実行することで、ＣＰＵに供給される電源電圧、クロック周波数を制御し、ノードＮＤ内のＣＰＵ等が収納される筐体内の温度に応じて、筐体に取り付けられたファン（図示せず）の回転数を制御する。サービスプロセッサＳＰは、ＣＰＵおよび図４に示すＣＰＵコア１０の状態を管理する管理装置の一例である。なお、サービスプロセッサＳＰは、各ノードＮＤに搭載されてもよい。
【００４０】
図４は、図３に示すＣＰＵの一例を示す。図４は、ＣＰＵコア１０間で転送されるパケットの処理に関連する要素を示し、ＣＰＵと図３に示すスイッチＳＷとの接続に関連する要素およびＣＰＵ間の接続に関連する要素等の記載は省略される。なお、パケットを送信するＣＰＵは、送信装置として機能し、パケットを受信するＣＰＵは、受信装置として機能する。
【００４１】
ＣＰＵは、システムバスＳＢＵＳを介して互いに接続されたＣＰＵコア１０（１０ａ、１０ｂ、１０ｃ、１０ｄ）、レジスタ部２０、パケット制御部３０、レジスタ部６０、メモリ制御部７０、およびメモリ制御部７０に接続されたキャッシュメモリ８０を有する。なお、ＣＰＵコア１０は、メモリ制御部７０を介してシステムバスＳＢＵＳに接続されてもよい。ＣＰＵに搭載されるＣＰＵコア１０の数は、４個に限定されない。以下の説明では、ＣＰＵコア１０は、コア１０とも称される。
【００４２】
各コア１０は、メモリバスＭＢＵＳを介して接続される記憶装置ＭＥＭ（図３）に格納されたアプリケーションプログラムを実行する。アプリケーションプログラムは、コア１０が実行するソフトウェアの一例である。そして、各コア１０は、アプリケーションプログラムの処理に使用するデータ等の情報を、他のコア１０に送信し、または、データ等の情報を他のコア１０から受信する。すなわち、複数のコア１０が実行するアプリケーションプログラム間でデータ等の情報が転送される。なお、データ等の情報を互いに転送するコア１０は、１つのノードＮＤに含まれてもよく、互いに異なるノードＮＤに含まれてもよい。記憶装置ＭＥＭに格納されたアプリケーションプログラム（命令コード）は、コア１０にフェッチされたことに基づいてキャッシュメモリ８０に保持される。コア１０は、アプリケーションプログラムを実行するデータ処理部の一例である。
【００４３】
レジスタ部２０は、各コア１０から他のコア１０に送信するデータと、データの送信処理に使用する情報と、送信したデータに対する他のコア１０から応答に含まれる情報とを保持する複数のエントリＥＮＴＳを有する。エントリＥＮＴＳは、コア１０に対応してそれぞれ設けられる。レジスタ部２０は、ＣＰＵ内の各コア１０と、パケット制御部３０によりアクセスされる。エントリＥＮＴＳの例は、図５に示される。
【００４４】
パケット制御部３０は、パケット送信制御部４０およびパケット受信制御部５０を有する。パケット送信制御部４０は、データを送信する場合、レジスタ部２０のエントリＥＮＴＳに保持されたデータを含む情報を用いてパケットを生成し、生成したパケットを、クロスバースイッチＬＸＢを介してパケットの送信先のコア１０に向けて送信する。また、パケット送信制御部４０は、対応するパケット受信制御部５０がデータを受信した場合、応答パケットを生成し、生成した応答パケットを、クロスバースイッチＬＸＢを介してデータの送信元のコア１０に送信する。
【００４５】
パケット受信制御部５０は、クロスバースイッチＬＸＢを介してパケットを受信し、受信したパケットに含まれるデータを記憶装置ＭＥＭ（図３）に割り当てられたメッセージキューＭＱＵＥ（図９）に格納する。この際、パケット受信制御部５０は、パケットに含まれる情報に基づいて、レジスタ部６０のエントリＥＮＴＲのいずれかを参照し、データを格納するメッセージキューＭＱＵＥを決定する。また、パケット受信制御部５０は、パケット送信制御部４０が送信したパケットに対応する応答パケットを受信した場合、以下の動作を実行する。すなわち、パケット受信制御部５０は、応答パケットを送信したコア１０に割り当てられたメッセージキューＭＱＵＥの状態を示す情報を応答パケットから抽出する。そして、パケット受信制御部５０は、抽出した情報を、レジスタ部２０のエントリＥＮＴＳのうち、元のパケットの送信の生成に使用されたエントリＥＮＴＳに格納する。
【００４６】
なお、パケットを送信するコア１０とパケットを受信するコア１０とが１つのノードＮＤに含まれる場合、パケットは、クロスバースイッチＬＸＢを介することなく、コア１０間で直接転送される。パケット送信制御部４０およびパケット受信制御部５０の例は、図５および図９に示される。
【００４７】
レジスタ部６０は、パケットの受信処理時にパケット受信制御部５０によりアクセスされる情報を保持する複数のエントリＥＮＴＲを有する。エントリＥＮＴＲは、データを受信するアプリケーションプログラム毎に割り当てられる。エントリＥＮＴＲの例は、図９に示される。
【００４８】
メモリ制御部７０は、システムバスＳＢＵＳを介してコア１０から受信するメモリアクセス要求に基づいて動作する。ここで、メモリアクセス要求を発行するコア１０が、他のＣＰＵに含まれる場合、メモリアクセス要求は、パケット受信制御部５０を介して他のＣＰＵのコア１０からメモリ制御部７０に転送される。メモリ制御部７０は、メモリアクセス要求の対象データがキャッシュメモリ８０に保持されている場合（キャッシュヒット）、キャッシュメモリ８０にアクセスする。メモリ制御部７０は、メモリアクセス要求の対象データがキャッシュメモリ８０に保持されていない場合（キャッシュミス）、メモリバスＭＢＵＳに接続された記憶装置ＭＥＭにアクセスし、あるいは、他のＣＰＵにメモリアクセス要求を転送する。
【００４９】
メモリアクセス要求が転送された他のＣＰＵは、メモリバスＭＢＵＳに接続された記憶装置ＭＥＭにアクセスし、アクセス結果を応答として発行する。なお、メモリ制御部７０は、キャッシュメモリ８０からデータを追い出す追い出し処理等を実行することで、記憶装置ＭＥＭが保持するデータとキャッシュメモリ８０が保持するデータとの一貫性（キャッシュコヒーレンシ）を維持する制御を実行する。例えば、キャッシュメモリ８０は、２次キャッシュであり、アプリケーションプログラムが実行する命令と、アプリケーションプログラムが処理するデータとを保持する。
【００５０】
図５は、図４に示すレジスタ部２０と、パケット制御部３０においてパケットを送信する場合に動作する要素との一例を示す。図５に示す要素は、パケットを送信する送信装置として機能する。図４に示すパケット送信制御部４０は、パケット生成部４２およびパケット送信部４４を有し、図４に示すパケット受信制御部５０は、パケット受信部５２および応答格納部５４を有する。
【００５１】
レジスタ部２０の各エントリＥＮＴＳは、レジスタＭＳＧ−ＤＴ、ＭＳＧＱ−ＩＤ(Identification)、ＳＥＮＤ−ＭＳＧ、ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳ、ＳＴを有する。レジスタ部２０は、記憶装置ＭＥＭが割り当てられるアドレス空間とは別の領域（例えば、Ｉ／Ｏ空間等）に設けられる。コア１０が実行するアプリケーションプログラム（プロセス）は、レジスタＭＳＧ−ＤＴ、ＭＳＧＱ−ＩＤに保持させる情報を生成し、生成した情報をレジスタＭＳＧ−ＤＴ、ＭＳＧＱ−ＩＤに格納する。
【００５２】
レジスタＰＫ−ＳＰには、サービスプロセッサＳＰが実行する管理プログラムが生成する鍵情報が格納される。レジスタＰＫ−ＨＶには、ノードＮＤ内で起動される仮想マシンを制御する制御プログラムであるハイパーバイザＨＶが生成する鍵情報が格納される。レジスタＰＫ−ＯＳには、コア１０または仮想マシンが実行するＯＳが生成する鍵情報が格納される。アプリケーションプログラム（プロセス）は、ＯＳの管理下で動作し、ＯＳは、ハイパーバイザＨＶの管理下で動作する。レジスタＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳのアクセス権限については、図８で説明する。以下の説明では、レジスタＰＫ−ＳＰに格納される鍵情報は、鍵情報ＰＫ−ＳＰと称され、レジスタＰＫ−ＨＶに格納される鍵情報は、鍵情報ＰＫ−ＨＶと称され、レジスタＰＫ−ＯＳに格納される鍵情報は、鍵情報ＰＫ−ＯＳと称される。鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳは、第２の鍵情報の一例である。レジスタ部２０は、第１の保持部および第２の保持部の一例である。
【００５３】
例えば、アプリケーションプログラム（プロセス）を実行する複数のコア１０がそれぞれ使用するエントリＥＮＴＳには、互いに異なる鍵情報ＰＫ−ＳＰ、互いに異なる鍵情報ＰＫ−ＨＶおよび互いに異なる鍵情報ＰＫ−ＯＳが格納される。複数のコア１０がアプリケーションプログラム（プロセス）をそれぞれ実行する場合、エントリＥＮＴＳに保持された鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを書き替えることなく、プロセスを切り替えることができる。すなわち、互いに異なるコア１０がそれぞれ実行するプロセスの切り替え時にコンテキストスイッチは発生しない。一方、１つのコア１０が複数のアプリケーションプログラム（プロセス）を実行する場合、複数のプロセスは共通のエントリＥＮＴＳを使用するため、プロセスの切り替え時にコンテキストスイッチが発生する。
【００５４】
なお、各エントリＥＮＴＳは、レジスタＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳの少なくとも１つを有してもよい。例えば、各エントリＥＮＴＳは、レジスタＰＫ−ＯＳのみを有してもよく、レジスタＰＫ−ＨＶのみを有してもよく、レジスタＰＫ−ＳＰのみを有してもよい。あるいは、各エントリＥＮＴＳは、２つのレジスタＰＫ−ＯＳ、ＰＫ−ＨＶを有してもよく、２つのレジスタＰＫ−ＯＳ、ＰＫ−ＳＰを有してもよく、２つのレジスタＰＫ−ＨＦ、ＰＫ−ＳＰを有してもよい。例えば、仮想マシンが起動されない情報処理システムでは、各エントリＥＮＴＳは、２つのレジスタＰＫ−ＯＳ、ＰＫ−ＨＶを有する。
【００５５】
レジスタＭＳＧ−ＤＴ、ＭＳＧＱ−ＩＤ、ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳが保持する情報は、パケット生成部４２により読み出される。また、アプリケーションプログラムは、パケット生成部４２にパケットを生成させる場合、レジスタＳＥＮＤ−ＭＳＧをセットする。レジスタＳＴが保持する情報は、応答格納部５４により書き込まれ、アプリケーションプログラムにより読み出される。
【００５６】
レジスタＭＳＧ−ＤＴには、パケットの送信元のアプリケーションプログラムからパケットの送信先のアプリケーションプログラムに転送されるデータ（送信データ）が格納される。以下の説明では、レジスタＭＳＧ−ＤＴに格納されるデータは、メッセージデータＭＳＧ−ＤＴとも称される。特に限定されないが、メッセージデータＭＳＧ−ＤＴは、３２バイトまたは６４バイトである。
【００５７】
レジスタＭＳＧＱ−ＩＤには、メッセージデータＭＳＧ−ＤＴを送信先のプロセスに送信するための管理情報が格納される。以下の説明では、レジスタＭＳＧＱ−ＩＤに格納されるデータは、管理情報ＭＳＧＱ−ＩＤとも称される。レジスタＭＳＧＱ−ＩＤに格納される管理情報ＭＳＧＱ−ＩＤの例は、図６に示される。
【００５８】
レジスタＳＥＮＤ−ＭＳＧには、パケットをパケット生成部４２に生成させてパケット送信部４４から送信する場合、送信要求情報が格納される。例えば、レジスタＳＥＮＤ−ＭＳＧは１ビットであり、送信要求情報は論理１である。アプリケーションプログラムがレジスタＳＥＮＤ−ＭＳＧに論理１を書き込んだ場合、レジスタ部２０は、送信要求を示す１ショットパルス信号をパケット生成部４２に出力する。以下の説明では、レジスタＳＥＮＤ−ＭＳＧに格納される論理１およびパケット生成部４２に出力される１ショットパルス信号は、送信要求ＳＥＮＤ−ＭＳＧとも称される。
【００５９】
レジスタＳＴには、送信先のプロセスに送信したパケットに対応する応答に含まれる状態情報が格納される。以下の説明では、レジスタＳＴに格納される状態情報は、状態情報ＳＴとも称される。状態情報ＳＴの例は、図９で説明される。
【００６０】
パケット生成部４２は、レジスタＳＥＮＤ−ＭＳＧを介してプロセスから送信要求ＳＥＮＤ−ＭＳＧを受信したことに基づいて、パケットを生成し、生成したパケットをパケット送信部４４に出力する。すなわち、パケット生成部４２は、送信元ＣＰＵ−ＩＤおよびエントリＩＤと、エントリＥＮＴＳに保持された管理情報ＭＳＧＱ−ＩＤ、メッセージデータＭＳＧ−ＤＴおよび鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳとを用いて、パケットを生成する。送信元ＣＰＵ−ＩＤは、パケット生成部４２を含むＣＰＵを識別する番号を示す。エントリＩＤは、パケットに付加されるシーケンス番号等であり、パケットと応答パケットとの対応を取るために使用される。パケット生成部４２が生成するパケットの例は、図６に示される。
【００６１】
なお、パケット生成部４２は、送信要求ＳＥＮＤ−ＭＳＧを出力したエントリＥＮＴＳに保持されたメッセージデータＭＳＧ−ＤＴ、管理情報ＭＳＧＱ−ＩＤおよび鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを調停により選択する図示しない調停部を有する。
【００６２】
パケット送信部４４は、パケット生成部４２から受信したパケットを、クロスバースイッチＬＸＢを介して送信先のコア１０に向けて送信する。
【００６３】
パケット受信部５２は、パケットの送信先のコア１０からの状態情報ＳＴを含むパケット（応答パケット）を、クロスバースイッチＬＸＢを介して受信し、受信したパケットに含まれる状態情報ＳＴを応答格納部５４に出力する。応答格納部５４は、パケット受信部５２から受信した状態情報ＳＴを、応答パケットに対応する元のパケットを生成した情報を保持するエントリＥＮＴＳのレジスタＳＴに格納する。
【００６４】
アプリケーションプログラムは、メッセージデータＭＳＧ−ＤＴを送信する場合、対応するエントリＥＮＴＳを使用して、パケットを送信する処理を実行する。パケットの送信後、アプリケーションプログラムは、状態情報ＳＴがレジスタＳＴに書き込まれたことに基づいて、レジスタＳＴから状態情報ＳＴを読み出す。
【００６５】
図６は、図５に示すパケット生成部４２が生成するパケットの一例を示す。パケットは、送信先ＣＰＵ−ＩＤ、送信元ＣＰＵ−ＩＤ、エントリＩＤ、管理情報ＭＳＧＱ−ＩＤ、鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳおよびメッセージデータＭＳＧ−ＤＴを含む。パケットにおいて、送信先ＣＰＵ−ＩＤ、送信元ＣＰＵ−ＩＤ、エントリＩＤ、管理情報ＭＳＧＱ−ＩＤおよび鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳは、ヘッダ部であり、メッセージデータＭＳＧ−ＤＴは、データ部である。送信先ＣＰＵ−ＩＤは、管理情報ＭＳＧＱ−ＩＤに含まれるＣＰＵ情報ＣＰＵ−ＩＤが使用される。
【００６６】
管理情報ＭＳＧＱ−ＩＤは、ＣＰＵ情報ＣＰＵ−ＩＤ、レジスタセット情報ＲＥＧ−ＩＤ、鍵情報ＡＫＥＹ、メッセージサイズＭ−ＳＩＺＥを含む。ＣＰＵ情報ＣＰＵ−ＩＤは、パケットの送信先のＣＰＵを識別する番号を含む。レジスタセット情報ＲＥＧ−ＩＤは、パケットを受信するＣＰＵが使用するレジスタ部６０のエントリＥＮＴＲ（図９）を識別する番号である。鍵情報ＡＫＥＹは、パケットを送信するコア１０とパケットを受信するコア１０とが互いの識別に使用する第１の鍵情報の一例であり、パケットが正常か否かを判定するために使用される。レジスタセット情報ＲＥＧ−ＩＤおよび鍵情報ＡＫＥＹは、パケットを受信するプロセスからパケットを送信するプロセスに予め通知される。
【００６７】
パケットの送受信を鍵情報ＡＫＥＹだけでなく、アプリケーションプログラムにより書き替えられない鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳにより管理することで、予め決められたアプリケーションプログラム間でのパケットの送受信を保証することができる。換言すれば、アプリケーションプログラムが誤動作した場合にも、誤ったアプリケーションプログラム間でパケットが送受信されることを抑止することができるため、情報処理システムＳＹＳ２の信頼性を向上することができる。なお、鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳは、管理情報ＭＳＧＱ−ＩＤ内に鍵情報ＡＫＥＹとともに格納されてもよい。
【００６８】
メッセージサイズＭ−ＳＩＺＥは、メッセージデータＭＳＧ−ＤＴのサイズ（３２バイトまたは６４バイト）を示す。なお、メッセージデータＭＳＧ−ＤＴのサイズが１種類しかない場合、管理情報ＭＳＧＱ−ＩＤは、メッセージサイズＭ−ＳＩＺＥを含まない。なお、図６に示すパケットは、送信先ＣＰＵ−ＩＤから順にクロスバースイッチＬＸＢに送出される。
【００６９】
図７は、図３に示す情報処理システムＳＹＳ２の状態の一例を示す。図７に示す例では、ハイパーバイザＨＶがノードＮＤ０内に起動され、ハイパーバイザＨＶは、３個の仮想マシンを起動して、仮想マシンにＯＳ（ＯＳ０、ＯＳ１、ＯＳ２）を実行させる。ＯＳ２は、ＣＰＵ０により実行される。そして、３個のプロセスＰＲＯＣ（ＰＲＯＣ０、ＰＲＯＣ１、ＰＲＯＣ２；すなわち、アプリケーションプログラム）がＯＳ２上で動作する。図７に示す破線枠は、ソフトウェアの動作状態を示す。ＯＳは、コア１０の動作を管理する管理プログラムの一例であり、ハイパーバイザＨＶは、仮想マシンを制御する制御プログラムの一例である。
【００７０】
例えば、プロセスＰＲＯＣ２がデータの送信を開始する前に、サービスプロセッサＳＰにより実行される状態管理プログラムは、プロセスＰＲＯＣ２で使用するエントリＥＮＴＳに鍵情報ＰＫ−ＳＰを格納する。同様に、ハイパーバイザＨＶは、プロセスＰＲＯＣ２で使用するエントリＥＮＴＳに鍵情報ＰＫ−ＨＶを格納し、ＯＳ２は、プロセスＰＲＯＣ２で使用するエントリＥＮＴＳに鍵情報ＰＫ−ＯＳを格納する。そして、ＯＳ２上で動作するプロセスＰＲＯＣ２は、使用するエントリＥＮＴＳに鍵情報ＡＫＥＹを格納する。
【００７１】
このように、レジスタＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳに鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを格納する管理部は、状態管理プログラムと、ハイパーバイザＨＶと、ＯＳとによりそれぞれ実現される。すなわち、状態管理プログラム、ハイパーバイザＨＶおよびＯＳは、コア１０の動作を管理するととともに、鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを生成する管理部の一例である。なお、図５で説明したように、各エントリＥＮＴＳは、レジスタＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳの少なくとも１つを有してもよい。
【００７２】
図８は、図７に示すレジスタ部２０の各エントリＥＮＴＳに設けられるレジスタＡＫＥＹ、ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰのアクセス権限の一例を示す。レジスタＡＫＥＹは、プロセスＰＲＯＣ、ＯＳ、ハイパーバイザＨＶおよびサービスプロセッサＳＰによりアクセス可能であり、レジスタＰＫ−ＯＳは、ＯＳ、ハイパーバイザＨＶおよびサービスプロセッサＳＰによりアクセス可能である。レジスタＰＫ−ＨＶは、ハイパーバイザＨＶおよびサービスプロセッサＳＰによりアクセス可能であり、レジスタＰＫ−ＳＰは、サービスプロセッサＳＰのみによりアクセス可能である。すなわち、レジスタＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰは、プロセスＰＲＯＣによるアクセスが禁止されている。
【００７３】
図９は、図４に示すレジスタ部６０と、パケット制御部３０においてパケットを受信する場合に動作する要素との一例を示す。図９に示す要素は、パケットを受信する受信装置として機能する。図４に示すパケット制御部３０のパケット受信制御部５０は、図５に示すパケット受信部５２および応答格納部５４に加えて、パケット判定部５６および書き込み制御部５８を有する。図４に示すパケット送信制御部４０は、図５に示すパケット生成部４２およびパケット送信部４４に加えて、応答パケット生成部４６を有する。
【００７４】
レジスタ部６０の各エントリＥＮＴＲは、ベースアドレスＢＡＤＲＳ、鍵情報ＡＫＥＹ、ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰ、ライトポインタＷＰおよびリードポインタＲＰをそれぞれ格納する複数のレジスタを有する。レジスタ部６０は、記憶装置ＭＥＭが割り当てられるアドレス空間とは別の領域（例えば、Ｉ／Ｏ空間）に設けられる。エントリＥＮＴＲは、第３の保持部の一例である。
【００７５】
また、各エントリＥＮＴＳは、鍵情報ＰＫ−ＯＳを有効にするかを示す許可情報ＯＳＥＮと、鍵情報ＰＫ−ＨＶを有効にするかを示す許可情報ＨＶＥＮと、鍵情報ＰＫ−ＳＰを有効にするかを示す許可情報ＳＰＥＮとを格納する領域を有する。例えば、許可情報ＯＳＥＮ、ＨＶＥＮ、ＳＰＥＮの各々は、１ビットであり、論理０の場合に無効を示し、論理１の場合に有効を示す。許可情報ＯＳＥＮ、ＨＶＥＮ、ＳＰＥＮは、パケット判定部５６による鍵情報ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰの比較を有効にするか否かを設定する有効フラグの一例である。パケット判定部５６は、受信したパケットの管理情報ＭＳＧＱ−ＩＤに含まれるレジスタセット情報ＲＥＧ−ＩＤにより識別されるエントリＥＮＴＲを選択して使用する。
【００７６】
鍵情報ＡＫＥＹは、パケットを送受信するアプリケーションプログラム間で予め取り決められ、アプリケーションプログラムがメッセージデータＭＳＧ−ＤＴの送信を開始する前に、受信側のプロセスから送信側のプロセスに鍵情報ＡＫＥＹが通知される。例えば、鍵情報ＰＫ−ＯＳは、メッセージデータＭＳＧ−ＤＴの送信側のＯＳがプロセス毎に取り決めた固有の値である。鍵情報ＰＫ−ＨＶは、メッセージデータＭＳＧ−ＤＴの送信側のハイパーバイザＨＶがプロセス毎に取り決めた固有の値である。鍵情報ＰＫ−ＳＰは、メッセージデータＭＳＧ−ＤＴの送信側のサービスプロセッサＳＰがプロセス毎に取り決めた固有の値である。
【００７７】
なお、許可情報ＳＰＥＮ、ＨＶＥＮ、ＯＳＥＮにより、鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳの全てが有効にされる場合、鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳは、以下に示すように設定されてもよい。すなわち、鍵情報ＰＫ−ＳＰは、プロセスが実行されるノードＮＤの番号に設定され、鍵情報ＰＫ−ＨＶは、プロセスが実行されるＯＳの番号に設定され、鍵情報ＰＫ−ＯＳは、プロセス番号に設定されてもよい。
【００７８】
ライトポインタＷＰは、記憶装置ＭＥＭに割り当てられたメッセージキューＭＱＵＥにおいて、受信したパケットに含まれるメッセージデータＭＳＧ−ＤＴを格納する先頭アドレス（相対値）を示す。リードポインタＲＰは、メッセージキューＭＱＵＥに格納されたメッセージデータＭＳＧ−ＤＴのうち、読み出されていないメッセージデータＭＳＧ−ＤＴを保持する記憶領域の先頭アドレス（相対値）を示す。
【００７９】
記憶装置ＭＥＭには、レジスタ部６０のエントリＥＮＴＲにそれぞれ対応する複数のメッセージキューＭＱＵＥが割り当てられる。メッセージキューＭＱＵＥは、記憶部の一例である。各メッセージキューＭＱＵＥは、リングバッファとして機能し、ライトポインタＷＰとリードポインタＲＰとに挟まれた記憶領域に、有効なメッセージデータＭＳＧ−ＤＴが保持される。
【００８０】
ベースアドレスＢＡＤＲＳは、例えば、レジスタ部６０の各エントリＥＮＴＲに対応して記憶装置ＭＥＭに割り当てられるメッセージキューＭＱＵＥの先頭アドレス（物理アドレス）を示す。そして、ベースアドレスＢＡＤＲＳにライトポインタＷＰの値を加えることで、メッセージデータＭＳＧ−ＤＴを格納する先頭アドレスが算出される。また、ベースアドレスＢＡＤＲＳにリードポインタＲＰの値を加えることで、メッセージデータＭＳＧ−ＤＴを読み出す先頭アドレスが算出される。
【００８１】
なお、ベースアドレスＢＡＤＲＳは、各メッセージキューＭＱＵＥの先頭アドレスにおいて所定数の上位ビットで示されてもよい。この場合、ベースアドレスＢＡＤＲＳのビット値とライトポインタＷＰのビット値とを組み合わせることで、メッセージデータＭＳＧ−ＤＴを格納する先頭アドレスが算出される。また、ベースアドレスＢＡＤＲＳのビット値とリードポインタＲＰのビット値とを組み合わせることで、メッセージデータＭＳＧ−ＤＴを読み出す先頭アドレスが算出される。
【００８２】
パケット判定部５６は、パケット受信部５２がパケットを受信した場合、パケットに含まれるレジスタセット情報ＲＥＧ−ＩＤで示されるエントリＥＮＴＲに格納された情報を読み出し、パケットが有効か否かを判定する。すなわち、パケット判定部５６は、パケットに含まれる鍵情報ＡＫＥＹと、エントリＥＮＴＲから読み出した鍵情報ＡＫＥＹを比較する。パケット判定部５６は、エントリＥＮＴＲから読み出した許可情報ＳＰＥＮが有効を示す場合、パケットに含まれる鍵情報ＰＫ−ＳＰと、エントリＥＮＴＲから読み出した鍵情報ＰＫ−ＳＰとを比較する。パケット判定部５６は、エントリＥＮＴＲから読み出した許可情報ＨＶＥＮが有効を示す場合、パケットに含まれる鍵情報ＰＫ−ＨＶと、エントリＥＮＴＲから読み出した鍵情報ＰＫ−ＨＶとを比較する。パケット判定部５６は、エントリＥＮＴＲから読み出した許可情報ＯＳＥＮが有効を示す場合、パケットに含まれる鍵情報ＰＫ−ＯＳと、エントリＥＮＴＲから読み出した鍵情報ＰＫ−ＯＳとを比較する。そして、パケット判定部５６は、比較結果の全てが一致を示す場合、受信したパケットが有効（正常）であると判定し、比較結果の少なくともいずれかが不一致を示す場合、受信したパケットが無効であると判定する。
【００８３】
パケット判定部５６は、受信したパケットが有効である場合、パケットに含まれるレジスタセット情報ＲＥＧ−ＩＤにより示されるエントリＥＮＴＲからベースアドレスＢＡＤＲＳとライトポインタＷＰとを読み出す。そして、パケット判定部５６は、パケットに含まれるメッセージデータＭＳＧ−ＤＴと、エントリＥＮＴＲから読み出したベースアドレスＢＡＤＲＳおよびライトポインタＷＰを、書き込み制御部５８に出力する。また、パケット判定部５６は、受信したパケットが正常であることを応答パケット生成部４６に通知し、パケットに含まれるメッセージサイズＭ−ＳＩＺＥに基づいて、ライトポインタＷＰを更新する。
【００８４】
なお、パケット判定部５６は、受信したパケットが無効である場合、パケットに含まれるメッセージデータＭＳＧ−ＤＴを破棄し、受信したパケットが無効であることを示す情報を応答パケット生成部４６に通知する。この場合、ライトポインタＷＰは、更新されない。
【００８５】
書き込み制御部５８は、パケット判定部５６からベースアドレスＢＡＤＲＳとライトポインタＷＰとを受信した場合、ベースアドレスＢＡＤＲＳとライトポインタＷＰにより示されるメッセージキューＭＱＵＥの記憶領域のアドレスを算出する。そして、書き込み制御部５８は、算出したアドレスにより示される記憶領域に、パケット判定部５６から受信したメッセージデータＭＳＧ−ＤＴを書き込む。メッセージキューＭＱＵＥに書き込まれたメッセージデータＭＳＧ−ＤＴは、受信したメッセージデータＭＳＧ−ＤＴを処理するアプリケーションプログラムにより読み出される。
【００８６】
書き込み制御部５８は、メッセージキューＭＱＵＥにメッセージデータＭＳＧ−ＤＴを書き込んだ後、メッセージキューＭＱＵＥの状態を示す情報を応答パケット生成部４６に通知する。例えば、次に受信するメッセージデータＭＳＧ−ＤＴを格納する余裕がメッセージキューＭＱＵＥにある場合、書き込み制御部５８は、メッセージデータＭＳＧ−ＤＴのさらなる受信が可能なことを示す情報を応答パケット生成部４６に通知する。また、メッセージキューＭＱＵＥが満杯になった場合、書き込み制御部５８は、メッセージキューＭＱＵＥが満杯であることを示す情報を応答パケット生成部４６に通知する。さらに、メッセージキューＭＱＵＥが動作を停止しており、メッセージデータＭＳＧ−ＤＴがメッセージキューＭＱＵＥに書き込めない場合、書き込み制御部５８は、メッセージキューＭＱＵＥの非動作を示す情報を応答パケット生成部４６に通知する。
【００８７】
応答パケット生成部４６は、パケット判定部５６から受信した情報と、書き込み制御部５８から受信した情報とに基づいて応答パケットを生成し、生成した応答パケットをパケット送信部４４に出力する。応答パケットは、送信先ＣＰＵ−ＩＤ、送信元ＣＰＵ−ＩＤ、エントリＩＤおよびメッセージキューＭＱＵＥの状態を示す状態情報ＳＴを含む。応答パケットは、送信先ＣＰＵ−ＩＤから順にクロスバースイッチＬＸＢに送出される。
【００８８】
送信先ＣＰＵ−ＩＤは、応答パケットに対応する元のパケットに含まれる送信元ＣＰＵ−ＩＤであり、送信元ＣＰＵ−ＩＤは、応答パケットに対応する元のパケットに含まれる送信先ＣＰＵ−ＩＤである。エントリＩＤは、応答パケットに対応する元のパケットに含まれるエントリＩＤである。
【００８９】
状態情報ＳＴは、例えば２ビットであり、ビット値に応じて、”ＩＮＶＡＬＩＤ”、”ＩＮＡＣＴＩＶＥ”、”ＦＵＬＬ”、”ＣＯＭＰＬＥＴＥ”のいずれかを示す。”ＩＮＶＡＬＩＤ”は、鍵情報ＡＫＥＹの不一致が発生したことを示す（エラー応答）。”ＩＮＡＣＴＩＶＥ”は、メッセージキューＭＱＵＥが動作を停止しており、メッセージデータＭＳＧ−ＤＴが書き込めないことを示す（エラー応答）。”ＦＵＬＬ”は、メッセージキューＭＱＵＥが満杯であることを示す（エラー応答）。”ＣＯＭＰＬＥＴＥ”は、メッセージキューＭＱＵＥにメッセージデータＭＳＧ−ＤＴが正常に格納され、メッセージデータＭＳＧ−ＤＴのさらなる受信が可能なことを示す（正常応答）。
【００９０】
パケット送信部４４は、応答パケット生成部４６から受信した応答パケットを、パケットの送信元のＣＰＵに向けて送信する。
【００９１】
図１０は、図９に示すパケット判定部５６の一例を示す。パケット判定部５６は、セレクタＳＥＬ、鍵情報取り出し部ＫＥＹＯＵＴ、鍵チェッカＡＫＥＹＣＨＫ、ＯＳＣＨＫ、ＨＶＣＨＫ、ＳＰＣＨＫおよびアンド回路ＡＮＤを有する。鍵チェッカＡＫＥＹＣＨＫは、第１の比較部の一例であり、鍵チェッカＯＳＣＨＫ、ＨＶＣＨＫ、ＳＰＣＨＫは、第２の比較部の一例である。
【００９２】
セレクタＳＥＬは、受信したパケットに含まれるレジスタセット情報ＲＥＧ−ＩＤで示されるエントリＥＮＴＲを選択し、選択したエントリＥＮＴＲに保持された情報を出力する。鍵情報取り出し部ＫＥＹＯＵＴは、受信したパケットから鍵情報ＡＫＥＹ、ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰを取り出す。
【００９３】
鍵チェッカＡＫＥＹＣＨＫは、エントリＥＮＴＲから読み出した鍵情報ＡＫＥＹと、鍵情報取り出し部ＫＥＹＯＵＴがパケットから取り出した鍵情報ＡＫＥＹとを比較する。鍵チェッカＡＫＥＹＣＨＫは、エントリＥＮＴＲからの鍵情報ＡＫＥＹと鍵情報取り出し部ＫＥＹＯＵＴからの鍵情報ＡＫＥＹとが一致する場合、一致を示す論理１を出力する。鍵チェッカＡＫＥＹＣＨＫは、エントリＥＮＴＲからの鍵情報ＡＫＥＹと鍵情報取り出し部ＫＥＹＯＵＴからの鍵情報ＡＫＥＹとが一致しない場合、不一致を示す論理０を出力する。
【００９４】
鍵チェッカＯＳＣＨＫは、エントリＥＮＴＲから読み出した許可情報ＯＳＥＮが有効状態（論理１）を示す場合、エントリＥＮＴＲから読み出した鍵情報ＰＫ−ＯＳと鍵情報取り出し部ＫＥＹＯＵＴがパケットから取り出した鍵情報ＰＫ−ＯＳとを比較する。鍵チェッカＯＳＣＨＫは、エントリＥＮＴＲからの鍵情報ＰＫ−ＯＳと鍵情報取り出し部ＫＥＹＯＵＴからの鍵情報ＰＫ−ＯＳとが一致する場合、一致を示す論理１を出力する。鍵チェッカＯＳＣＨＫは、エントリＥＮＴＲからの鍵情報ＰＫ−ＯＳと鍵情報取り出し部ＫＥＹＯＵＴからの鍵情報ＰＫ−ＯＳとが一致しない場合、不一致を示す論理０を出力する。鍵チェッカＯＳＣＨＫは、エントリＥＮＴＲからの許可情報ＯＳＥＮが無効状態（論理０）を示す場合、エントリＥＮＴＲからの鍵情報ＰＫ−ＯＳと鍵情報取り出し部ＫＥＹＯＵＴからの鍵情報ＰＫ−ＯＳとの比較結果に拘わらず、一致を示す論理１を出力する。
【００９５】
鍵チェッカＨＶＣＨＫは、エントリＥＮＴＲから読み出した許可情報ＨＶＥＮが有効状態（論理１）を示す場合、鍵情報取り出し部ＫＥＹＯＵＴがパケットから取り出した鍵情報ＰＫ−ＨＶと、エントリＥＮＴＲから読み出した鍵情報ＰＫ−ＨＶとを比較する。鍵チェッカＨＶＣＨＫは、エントリＥＮＴＲからの鍵情報ＰＫ−ＨＶと鍵情報取り出し部ＫＥＹＯＵＴからの鍵情報ＰＫ−ＨＶとが一致する場合、一致を示す論理１を出力する。鍵チェッカＨＶＣＨＫは、エントリＥＮＴＲからの鍵情報ＰＫ−ＨＶと鍵情報取り出し部ＫＥＹＯＵＴからの鍵情報ＰＫ−ＨＶとが一致しない場合、不一致を示す論理０を出力する。鍵チェッカＨＶＣＨＫは、エントリＥＮＴＲからの許可情報ＨＶＥＮが無効状態（論理０）を示す場合、エントリＥＮＴＲからの鍵情報ＰＫ−ＨＶと鍵情報取り出し部ＫＥＹＯＵＴからの鍵情報ＰＫ−ＨＶとの比較結果に拘わらず、一致を示す論理１を出力する。
【００９６】
鍵チェッカＳＰＣＨＫは、エントリＥＮＴＲから読み出した許可情報ＳＰＥＮが有効状態（論理１）を示す場合、鍵情報取り出し部ＫＥＹＯＵＴがパケットから取り出した鍵情報ＰＫ−ＳＰと、エントリＥＮＴＲから読み出した鍵情報ＰＫ−ＳＰとを比較する。鍵チェッカＳＰＣＨＫは、エントリＥＮＴＲからの鍵情報ＰＫ−ＳＰと鍵情報取り出し部ＫＥＹＯＵＴからの鍵情報ＰＫ−ＳＰとが一致する場合、一致を示す論理１を出力する。鍵チェッカＳＰＣＨＫは、エントリＥＮＴＲからの鍵情報ＰＫ−ＳＰと鍵情報取り出し部ＫＥＹＯＵＴからの鍵情報ＰＫ−ＳＰとが一致しない場合、不一致を示す論理０を出力する。鍵チェッカＳＰＣＨＫは、エントリＥＮＴＲからの許可情報ＳＰＥＮが無効状態（論理０）を示す場合、エントリＥＮＴＲからの鍵情報ＰＫ−ＳＰと鍵情報取り出し部ＫＥＹＯＵＴからの鍵情報ＰＫ−ＳＰとの比較結果に拘わらず、一致を示す論理１を出力する。
【００９７】
このように、パケット判定部５６は、許可情報ＯＳＥＮ、ＨＶＥＮ、ＳＰＥＮの論理に応じて、各鍵チェッカＯＳＣＨＫ、ＨＶＣＨＫ、ＳＰＣＨＫによる比較動作を有効または無効に設定する。これにより、情報処理システムＳＹＳ２に要求される信頼度に対応して、比較する鍵情報ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰの数を変更することができる。例えば、許可情報ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰの論理”ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰ”は、情報処理システムＳＹＳ２に要求される信頼度が高くなるに従い、”０００”、”１００”、”１１０”、”１１１”に順次変更される。
【００９８】
なお、パケット判定部５６が判定に使用する鍵情報ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰは、パケットの受信装置が設定する許可情報ＯＳＥＮ、ＨＶＥＮ、ＳＰＥＮの論理に応じて決定される。換言すれば、パケットの送信装置が、図５に示すエントリＥＮＴＳに保持された鍵情報ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰを書き替えることなく、パケット判定部５６が判定に使用する鍵情報ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰを変更することができる。
【００９９】
アンド回路ＡＮＤは、鍵チェッカＡＫＥＹＣＨＫ、ＯＳＣＨＫ、ＨＶＣＨＫ、ＳＰＣＨＫの全てから論理１を受けた場合、パケットが有効であることを示す判定結果ＲＳＬＴ（論理１）を出力する。一方、アンド回路ＡＮＤは、鍵チェッカＡＫＥＹＣＨＫ、ＯＳＣＨＫ、ＨＶＣＨＫ、ＳＰＣＨＫの少なくともいずれかから論理０を受けた場合、パケットが無効であることを示す判定結果ＲＳＬＴ（論理０）を出力する。
【０１００】
図１１は、図３に示す情報処理システムＳＹＳ２の動作の一例を示す。図１１は、パケットの送信装置からパケットの受信装置にメッセージデータＭＳＧ−ＤＴが転送される例を示す。換言すれば、送信装置に対応するコア１０のいずれかがアプリケーションプログラム１を実行し、受信装置に対応するコア１０のいずれかがアプリケーションプログラム２を実行する。そして、アプリケーションプログラム１とアプリケーションプログラム２との間でメッセージデータＭＳＧ−ＤＴが転送される。
【０１０１】
送信装置は、エントリＥＮＴＳのいずれかを使用し、受信装置は、送信装置から送信されるパケットに含まれるレジスタセット情報ＲＥＧ−ＩＤにより示されるエントリＥＮＴＲのいずれかを使用する。例えば、エントリＥＮＴＳは、送信装置に対応するコア１０毎に割り当てられる。換言すれば、レジスタＭＳＧ−ＤＴ、ＭＳＧＱ−ＩＤ、ＳＥＮＤ−ＭＳＧ、ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳ、ＳＴは、送信装置において、アプリケーションプログラムを実行するコア１０毎に設けられる。エントリＥＮＴＲは、受信装置に対応するコア１０が実行するアプリケーションプログラム毎に割り当てられる。
【０１０２】
送信装置は、受信装置との間でメッセージデータＭＳＧ−ＤＴが送受信される前に、使用する鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを決定する。すなわち、図７に示すサービスプロセッサＳＰが実行する状態管理プログラムは、アプリケーションプログラム１で使用する鍵情報ＰＫ−ＳＰを決定し、決定した鍵情報ＰＫ−ＳＰをエントリＥＮＴＳのレジスタＰＫ−ＳＰに格納する。図７に示すハイパーバイザＨＶは、アプリケーションプログラム１で使用する鍵情報ＰＫ−ＨＶを決定し、決定した鍵情報ＰＫ−ＨＶをエントリＥＮＴＳのレジスタＰＫ−ＨＶに格納する。アプリケーションプログラム１を管理するＯＳは、アプリケーションプログラム１で使用する鍵情報ＰＫ−ＯＳを決定し、決定した鍵情報ＰＫ−ＯＳをエントリＥＮＴＳのレジスタＰＫ−ＯＳに格納する（図１１（ａ））。なお、鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳの各々は、送信装置に対応するコア１０が実行するアプリケーションプログラム毎に異なる。
【０１０３】
そして、送信装置のパケット制御部３０は、アプリケーションプログラム１で使用するエントリＥＮＴＳに格納された鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを受信装置に通知する（図１１（ｂ））。例えば、鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳは、アプリケーションプログラム毎に受信装置に通知される。鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを通知された受信装置のパケット制御部３０は、アプリケーションプログラム２で使用するエントリＥＮＴＲに鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを格納する（図１１（ｃ））。
【０１０４】
なお、図１１に示す例では、受信装置のパケット制御部３０は、鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳとともに、有効状態を示す許可情報ＳＰＥＮ、ＨＶＥＮ、ＯＳＥＮをエントリＥＮＴＲに格納する。このため、受信装置は、送信装置からパケットを受信した場合、鍵情報ＡＫＥＹとともに、有効を示す許可情報ＳＰＥＮ、ＨＶＥＮ、ＯＳＥＮに対応する鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを用いて、パケットの有効性をチェックすることができる。
【０１０５】
アプリケーションプログラム２は、使用するエントリＥＮＴＲのライトポインタＷＰの値とリードポインタＲＰの値とを所定の頻度で読み出す。そして、アプリケーションプログラム２は、ライトポインタＷＰの値とリードポインタＲＰの値とに差がない場合、メッセージデータＭＳＧ−ＤＴを受信していないと判定する（図１１（ｄ））。
【０１０６】
アプリケーションプログラム１は、メッセージデータＭＳＧ−ＤＴ１をアプリケーションプログラム２に転送する場合、メッセージデータＭＳＧ−ＤＴ２とともに管理情報ＭＳＧＱ−ＩＤをエントリＥＮＴＳに格納する（図１１（ｅ））。例えば、管理情報ＭＳＧＱ−ＩＤの鍵情報ＡＫＥＹに設定される値ＣＤ１は、受信装置から送信装置に予め通知される。アプリケーションプログラム１は、エントリＥＮＴＳに情報を格納した後、論理１の送信要求ＳＥＮＤ−ＭＳＧをエントリＥＮＴＳに格納する（図１１（ｆ））。
【０１０７】
送信装置のパケット制御部３０は、送信要求ＳＥＮＤ−ＭＳＧの論理１に基づいて、アプリケーションプログラム１がエントリＥＮＴＳに格納したメッセージデータＭＳＧ−ＤＴ１と管理情報ＭＳＧＱ−ＩＤとをエントリＥＮＴＳから読み出す（図１１（ｇ））。また、パケット制御部３０は、エントリＥＮＴＳに格納された鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを読み出す。そして、パケット制御部３０は、エントリＥＮＴＳから読み出したメッセージデータＭＳＧ−ＤＴ１、管理情報ＭＳＧＱ−ＩＤおよび鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを含むパケットを生成し、受信装置に向けて送信する（図１１（ｈ））。
【０１０８】
受信装置のパケット制御部３０は、パケットを受信し、受信したパケットに含まれる管理情報ＭＳＧＱ−ＩＤのレジスタセット情報ＲＥＧ−ＩＤにより示されるエントリＥＮＴＲに格納された鍵情報ＡＫＥＹを読み出す。パケット制御部３０は、受信したパケットに含まれる鍵情報ＡＫＥＹをエントリＥＮＴＲから読み出した鍵情報ＡＫＥＹと比較する。
【０１０９】
また、パケット制御部３０は、受信したパケットに含まれる鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳをエントリＥＮＴＲから読み出した鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳとそれぞれ比較する。ここで、鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを読み出すエントリＥＮＴＲは、受信したパケットに含まれるレジスタセット情報ＲＥＧ−ＩＤにより示されるエントリＥＮＴＲである。
【０１１０】
図１１に示す例では、鍵情報ＡＫＥＹが一致し、鍵情報ＰＫ−ＳＰが一致し、鍵情報ＰＫ−ＨＶが一致し、鍵情報ＰＫ−ＯＳが一致するため、パケット制御部３０は、受信したパケットが有効であると判定する（図１１（ｉ））。そして、パケット制御部３０は、受信したパケットに含まれるメッセージデータＭＳＧ−ＤＴ１を、エントリＥＮＴＲのライトポインタＷＰが示すメッセージキューＭＱＵＥの記憶領域に格納する（図１１（ｊ））。ここで、パケット制御部３０は、受信したパケットに含まれるメッセージサイズＭ−ＳＩＺＥに基づいて、メッセージデータＭＳＧ−ＤＴのサイズを検出する。
【０１１１】
受信装置のパケット制御部３０は、メッセージサイズＭ−ＳＩＺＥに合わせてライトポインタＷＰを更新する。そして、パケット制御部３０は、メッセージデータＭＳＧ−ＤＴを正常に受信したことを示す状態情報ＳＴを含む応答パケットを生成し、生成した応答パケットを送信装置に向けて送信する（図１１（ｋ））。
【０１１２】
送信装置のパケット制御部３０は、応答パケットを受信し、応答パケットに含まれる状態情報ＳＴを、送信したパケットの生成に使用したエントリＥＮＴＳのレジスタＳＴに格納する（図１１（ｌ））。パケット制御部３０は、応答パケットの受信をアプリケーションプログラム１に通知する。応答パケットの受信は、Ｉ／Ｏ空間等に割り当てられる受信フラグをセットすることでアプリケーションプログラム１に通知されてもよく、割り込みによりアプリケーションプログラム１に通知されてもよい。
【０１１３】
アプリケーションプログラム１は、応答パケットの受信の通知に基づいて、エントリＥＮＴＳに格納された状態情報ＳＴを読み出し、メッセージデータＭＳＧ−ＤＴ１が正常に受信装置に転送されたことを検出する（図１１（ｍ））。そして、アプリケーションプログラム１は、状態情報ＳＴを読み出したエントリＥＮＴＳを開放する。
【０１１４】
一方、受信装置に対応するコア１０が実行するアプリケーションプログラム２は、エントリＥＮＴＲのライトポインタＷＰの値とリードポインタＲＰの値とを読み出す。アプリケーションプログラム２は、ライトポインタＷＰの値とリードポインタＲＰの値とに差があるため、新たなメッセージデータＭＳＧ−ＤＴを受信したと判定する（図１１（ｎ））。
【０１１５】
アプリケーションプログラム２は、記憶装置ＭＥＭに対して読み出しアクセス要求を発行し、受信したメッセージデータＭＳＧ−ＤＴ１をメッセージキューＭＱＵＥから読み出す（図１１（ｏ））。アプリケーションプログラム２は、メッセージデータＭＳＧ−ＤＴを読み出した後、読み出したメッセージデータＭＳＧ−ＤＴ１のサイズに合わせてエントリＥＮＴＲのリードポインタＲＰを更新する。なお、リードポインタＲＰの更新は、アプリケーションプログラム２からの読み出し完了通知に基づいて受信装置のパケット制御部３０により実行されてもよい。アプリケーションプログラム２は、メッセージキューＭＱＵＥから読み出したメッセージデータＭＳＧ−ＤＴ１を用いてデータ処理等を実行する。
【０１１６】
図１２は、図３に示す情報処理システムＳＹＳ２の動作の別の一例を示す。図１１と同一または同様の動作については、詳細な説明は省略する。アプリケーションプログラム１がエントリＥＮＴＳに格納された状態情報ＳＴを読み出し、メッセージデータＭＳＧ−ＤＴが正常に受信装置に転送されたことを検出するまでの動作（図１２（ａ）から図１２（ｍ））は、図１１と同一または同様である。
【０１１７】
すなわち、受信装置のパケット制御部３０は、鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳとともに、有効状態を示す許可情報ＳＰＥＮ、ＨＶＥＮ、ＯＳＥＮをエントリＥＮＴＳに格納する。このため、受信装置は、送信装置からパケットを受信した場合、鍵情報ＡＫＥＹとともに鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを用いて、パケットの有効性をチェックする。
【０１１８】
図１２に示す例では、まず、送信装置に対応するコア１０が実行するアプリケーションプログラム１が受信装置に対応するコア１０が実行するアプリケーションプログラム２に向けてメッセージデータＭＳＧ−ＤＴ１を送信する。次に、送信装置に対応するコア１０が実行するアプリケーションプログラム３が誤った管理情報ＭＳＧＱ−ＩＤを用いてメッセージデータＭＳＧ−ＤＴ２を送信する。例えば、アプリケーションプログラム３は、アプリケーションプログラム１が使用する管理情報ＭＳＧＱ−ＩＤを用いて、メッセージデータＭＳＧ−ＤＴ２を受信装置に送信する。
【０１１９】
アプリケーションプログラム３は、メッセージデータＭＳＧ−ＤＴ２を受信装置に転送する処理を実行する。しかしながら、アプリケーションプログラム３は、メッセージデータＭＳＧ−ＤＴ２とともに誤った管理情報ＭＳＧＱ−ＩＤをエントリＥＮＴＳに格納する（図１２（ｐ））。例えば、管理情報ＭＳＧＱ−ＩＤのレジスタセット情報ＲＥＧ−ＩＤは、アプリケーションプログラム２で使用するエントリＥＮＴＲを示し、管理情報ＭＳＧＱ−ＩＤの鍵情報ＡＫＥＹは、アプリケーションプログラム１、２間で取り決めた値ＣＤ１と同じである。例えば、誤った管理情報ＭＳＧＱ−ＩＤは、アプリケーションプログラム３のバグに起因してエントリＥＮＴＳに格納される。
【０１２０】
アプリケーションプログラム３は、エントリＥＮＴＳに情報を格納した後、論理１の送信要求ＳＥＮＤ−ＭＳＧをエントリＥＮＴＳに格納する（図１２（ｑ））。送信装置のパケット制御部３０は、送信要求ＳＥＮＤ−ＭＳＧの論理１に基づいて、アプリケーションプログラム３がエントリＥＮＴＳに格納したメッセージデータＭＳＧ−ＤＴ２と管理情報ＭＳＧＱ−ＩＤとをエントリＥＮＴＳから読み出す（図１２（ｒ））。また、パケット制御部３０は、エントリＥＮＴＳに格納された鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを読み出す。エントリＥＮＴＳに格納された鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳは、アプリケーションプログラム２が使用するエントリＥＮＴＳに格納された鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳとはそれぞれ異なる。
【０１２１】
そして、パケット制御部３０は、エントリＥＮＴＳから読み出したメッセージデータＭＳＧ−ＤＴ１、管理情報ＭＳＧＱ−ＩＤおよび鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを含むパケットを生成し、受信装置に向けて送信する（図１２（ｓ））。
【０１２２】
受信装置のパケット制御部３０は、パケットを受信し、受信したパケットに含まれる誤ったレジスタセット情報ＲＥＧ−ＩＤにより示されるエントリＥＮＴＲに格納された鍵情報ＡＫＥＹを読み出す。パケット制御部３０は、受信したパケットに含まれる鍵情報ＡＫＥＹをエントリＥＮＴＲから読み出した鍵情報ＡＫＥＹと比較し、一致を検出する。
【０１２３】
また、パケット制御部３０は、受信したパケットに含まれる鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳをエントリＥＮＴＲから読み出した鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳと比較する。ここで、鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを読み出すエントリＥＮＴＲは、受信したパケットに含まれるレジスタセット情報ＲＥＧ−ＩＤにより示されるアプリケーションプログラム２で使用するエントリＥＮＴＲである。このため、エントリＥＮＴＲから読み出した鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳは、アプリケーションプログラム３に対応しておらず、誤った鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳである。
【０１２４】
図１２に示す例では、鍵情報ＡＫＥＹは一致するが、鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳは、いずれも不一致であるため、パケット制御部３０は、受信したパケットが無効であると判定する（図１２（ｔ））。このため、パケット制御部３０は、受信したパケットに含まれるメッセージデータＭＳＧ−ＤＴ２をメッセージキューＭＱＵＥに格納することなく破棄する。そして、パケット制御部３０は、メッセージデータＭＳＧ−ＤＴを正常に受信しなかったことを示す状態情報ＳＴを含む応答パケット（エラー応答）を生成し、生成した応答パケットを送信装置に向けて送信する（図１２（ｕ））。
【０１２５】
送信装置のパケット制御部３０は、応答パケットを受信し、応答パケットに含まれる状態情報ＳＴを、送信したパケットの生成に使用したエントリＥＮＴＳのレジスタＳＴに格納する（図１２（ｖ））。パケット制御部３０は、応答パケットの受信をアプリケーションプログラム３に通知する。
【０１２６】
アプリケーションプログラム３は、応答パケットの受信の通知に基づいて、エントリＥＮＴＳに格納された状態情報ＳＴを読み出し、メッセージデータＭＳＧ−ＤＴが正常に受信装置に転送されなかったことを検出する（図１２（ｗ））。そして、アプリケーションプログラム３は、状態情報ＳＴを読み出したエントリＥＮＴＳを開放し、エラー処理等を実行する。
【０１２７】
一方、受信装置に対応するコア１０が実行するアプリケーションプログラム２は、図１１と同様に、エントリＥＮＴＲのライトポインタＷＰの値とリードポインタＲＰの値とを読み出す。アプリケーションプログラム２は、ライトポインタＷＰの値とリードポインタＲＰの値とに差があるため、新たなメッセージデータＭＳＧ−ＤＴを受信したと判定する（図１２（ｎ））。
【０１２８】
アプリケーションプログラム２は、記憶装置ＭＥＭに対して読み出しアクセス要求を発行し、受信したメッセージデータＭＳＧ−ＤＴ１をメッセージキューＭＱＵＥから読み出す（図１２（ｏ））。アプリケーションプログラム２は、メッセージデータＭＳＧ−ＤＴを読み出した後、読み出したメッセージデータＭＳＧ−ＤＴ１のサイズに合わせてエントリＥＮＴＲのリードポインタＲＰを更新する。そして、アプリケーションプログラム２は、メッセージキューＭＱＵＥから読み出したメッセージデータＭＳＧ−ＤＴ１を用いてデータ処理等を実行する。
【０１２９】
図１３は、他の情報処理システムの動作の一例を示す。図１３に示す動作を実現する情報処理システムの構成は、図３に示す情報処理システムＳＹＳ２と同様であり、情報処理システムに搭載されるＣＰＵの構成は、図４に示すＣＰＵと同様である。但し、レジスタ部２０のエントリＥＮＴＳは、図５に示すレジスタＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを持たない。すなわち、受信装置のパケット制御部３０は、受信したパケットに含まれる鍵情報ＡＫＥＹのみに基づいて、パケットが有効か否かを判定する。アプリケーションプログラム１がエントリＥＮＴＳに格納された状態情報ＳＴを読み出すまでの動作は、送信装置から受信装置に転送されるパケットが鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを含まないことを除き、図１２と同様である。
【０１３０】
図１３においても、図１２と同様に、まず、送信装置に対応するコア１０が実行するアプリケーションプログラム１がメッセージデータＭＳＧ−ＤＴ１を送信する。次に、送信装置に対応するコア１０が実行するアプリケーションプログラム３が誤った管理情報ＭＳＧＱ−ＩＤを用いてメッセージデータＭＳＧ−ＤＴ２を送信する。
【０１３１】
例えば、アプリケーションプログラム３は、アプリケーションプログラム１が使用する管理情報ＭＳＧＱ−ＩＤを用いて、メッセージデータＭＳＧ−ＤＴ２を受信装置に転送する。管理情報ＭＳＧＱ−ＩＤのレジスタセット情報ＲＥＧ−ＩＤは、アプリケーションプログラム１で使用するエントリＥＮＴＲを示し、管理情報ＭＳＧＱ−ＩＤの鍵情報ＡＫＥＹは、アプリケーションプログラム１で使用する値ＣＤ１と同じである。送信装置のパケット制御部３０は、送信要求ＳＥＮＤ−ＭＳＧの論理１に基づいて、メッセージデータＭＳＧ−ＤＴ２と管理情報ＭＳＧＱ−ＩＤとを含むパケットを受信装置に向けて送信する（図１３（ａ））。
【０１３２】
受信装置のパケット制御部３０は、パケットを受信し、受信したパケットに含まれる誤ったレジスタセット情報ＲＥＧ−ＩＤにより示されるエントリＥＮＴＲに格納された鍵情報ＡＫＥＹを読み出す。パケット制御部３０は、受信したパケットに含まれる鍵情報ＡＫＥＹをエントリＥＮＴＲから読み出した鍵情報ＡＫＥＹと比較し、鍵情報ＡＫＥＹが一致するため、受信したパケットが有効であると判定する（図１３（ｂ））。
【０１３３】
そして、パケット制御部３０は、受信したパケットに含まれるメッセージデータＭＳＧ−ＤＴ２を、アプリケーションプログラム２で使用するエントリＥＮＴＲのライトポインタＷＰが示すメッセージキューＭＱＵＥの記憶領域に格納する（図１３（ｃ））。受信装置のパケット制御部３０は、メッセージサイズＭ−ＳＩＺＥに合わせてライトポインタＷＰを更新する。そして、パケット制御部３０は、メッセージデータＭＳＧ−ＤＴを正常に受信したことを示す状態情報ＳＴを含む応答パケットを生成し、生成した応答パケットを送信装置に向けて送信する（図１３（ｄ））。
【０１３４】
送信装置のパケット制御部３０は、応答パケットを受信し、応答パケットに含まれる状態情報ＳＴを、アプリケーションプログラム３で使用するエントリＥＮＴＳのレジスタＳＴに格納する（図１３（ｅ））。パケット制御部３０は、応答パケットの受信をアプリケーションプログラム３に通知する。アプリケーションプログラム３は、応答パケットの受信の通知に基づいて、エントリＥＮＴＳに格納された状態情報ＳＴを読み出し、メッセージデータＭＳＧ−ＤＴ２が正常に受信装置に転送されたことを検出する（図１３（ｆ））。
【０１３５】
一方、受信装置に対応するコア１０が実行するアプリケーションプログラム２は、エントリＥＮＴＲのライトポインタＷＰの値とリードポインタＲＰの値とを読み出す。アプリケーションプログラム２は、ライトポインタＷＰの値とリードポインタＲＰの値とに差があるため、新たなメッセージデータＭＳＧ−ＤＴを受信したと判定する（図１３（ｇ））。
【０１３６】
アプリケーションプログラム２は、記憶装置ＭＥＭに対して読み出しアクセス要求を発行し、受信したメッセージデータＭＳＧ−ＤＴ１、ＭＳＧ−ＤＴ２をメッセージキューＭＱＵＥから読み出す（図１３（ｈ））。但し、メッセージデータＭＳＧ−ＤＴ２は、アプリケーションプログラム２が処理するデータではない。
【０１３７】
アプリケーションプログラム２は、メッセージデータＭＳＧ−ＤＴ１、ＭＳＧ−ＤＴ２を読み出した後、読み出したメッセージデータＭＳＧ−ＤＴ１、ＭＳＧ−ＤＴ２のサイズに合わせてエントリＥＮＴＲのリードポインタＲＰを更新する。この後、アプリケーションプログラム２は、メッセージキューＭＱＵＥから読み出したメッセージデータＭＳＧ−ＤＴ１、ＭＳＧ−ＤＴ２を用いてデータ処理等を実行する。しかしながら、メッセージデータＭＳＧ−ＤＴ２は、アプリケーションプログラム２で処理するデータでないため、アプリケーションプログラム２は、誤ったデータ処理を実行する。これにより、アプリケーションプログラム２は誤動作するおそれがある。
【０１３８】
図１４は、図４に示すパケット制御部３０が実行するパケットを送信する処理の一例を示す。図１４に示す処理は、所定の頻度で繰り返し実行される。
【０１３９】
まず、ステップＳ１０において、図５に示すパケット生成部４２は、レジスタ部２０のエントリＥＮＴＳのいずれかのレジスタＳＥＮＤ−ＭＳＧが論理１にセットされたか否かを判定する。レジスタＳＥＮＤ−ＭＳＧが論理１にセットされた場合、処理はステップＳ１２に移行され、レジスタＳＥＮＤ−ＭＳＧが論理１にセットされていない場合、処理はステップＳ１６に移行される。
【０１４０】
ステップＳ１２において、パケット生成部４２は、レジスタＳＥＮＤ−ＭＳＧが論理１にセットされたエントリＥＮＴＳに格納されたメッセージデータＭＳＧ−ＤＴを用いてパケットを生成し、処理をステップＳ１４に移行する。ステップＳ１４において、図５に示すパケット送信部４４は、パケット生成部４２が生成したパケットを受信装置に向けて送信する。
【０１４１】
次に、ステップＳ１６において、図５に示すパケット受信部５２は、応答パケットを受信したか否かを判定する。応答パケットを受信した場合、処理はステップＳ１８に移行され、応答パケットを受信しない場合、処理は終了する。ステップＳ１８において、図５に示す応答格納部５４は、応答パケットに含まれる状態情報ＳＴを、エントリＥＮＴＳのレジスタＳＴに格納し、処理を終了する。
【０１４２】
図１５は、図４に示すパケット制御部３０が実行するパケットを受信する処理の一例を示す。図１５に示す処理は、所定の頻度で繰り返し実行される。
【０１４３】
まず、ステップＳ２０において、図９に示すパケット受信部５２は、パケットを受信したか否かを判定する。パケットを受信した場合、処理はステップＳ２２に移行され、パケットを受信しない場合、処理は終了する。
【０１４４】
ステップＳ２２において、図９に示すパケット判定部５６は、受信したパケットに含まれる鍵情報ＡＫＥＹが、パケットに含まれるレジスタセット情報ＲＥＧ−ＩＤにより示されるエントリＥＮＴＲに格納された鍵情報ＡＫＥＹと一致するか否かを判定する。鍵情報ＡＫＥＹが一致する場合、処理はステップＳ２４に移行され、鍵情報ＡＫＥＹが一致しない場合、処理は図１６に示すステップＳ４４に移行される。
【０１４５】
ステップＳ２４において、パケット判定部５６は、パケットに含まれるレジスタセット情報ＲＥＧ−ＩＤにより示されるエントリＥＮＴＲに格納された許可情報ＳＰＥＮが有効か否かを判定する。許可情報ＳＰＥＮが有効（論理１）の場合、処理はステップＳ２６に移行され、許可情報ＳＰＥＮが無効（論理０）の場合、処理はステップＳ２８に移行される。
【０１４６】
ステップＳ２６において、パケット判定部５６は、受信したパケットに含まれる鍵情報ＰＫ−ＳＰが、パケットに含まれるレジスタセット情報ＲＥＧ−ＩＤにより示されるエントリＥＮＴＲに格納された鍵情報ＰＫ−ＳＰと一致するか否かを判定する。鍵情報ＰＫ−ＳＰが一致する場合、処理はステップＳ２８に移行され、鍵情報ＰＫ−ＳＰが一致しない場合、処理は図１６に示すステップＳ４４に移行される。
【０１４７】
ステップＳ２８において、パケット判定部５６は、パケットに含まれるレジスタセット情報ＲＥＧ−ＩＤにより示されるエントリＥＮＴＲに格納された許可情報ＨＶＥＮが有効か否かを判定する。許可情報ＨＶＥＮが有効（論理１）の場合、処理はステップＳ３０に移行され、許可情報ＨＶＥＮが無効（論理０）の場合、処理は図１６に示すステップＳ３２に移行される。
【０１４８】
ステップＳ３０において、パケット判定部５６は、受信したパケットに含まれる鍵情報ＰＫ−ＨＶが、パケットに含まれるレジスタセット情報ＲＥＧ−ＩＤにより示されるエントリＥＮＴＲに格納された鍵情報ＰＫ−ＨＶと一致するか否かを判定する。鍵情報ＰＫ−ＨＶが一致する場合、処理は図１６に示すステップＳ３２に移行され、鍵情報ＰＫ−ＨＶが一致しない場合、処理は図１６に示すステップＳ４４に移行される。
【０１４９】
図１６に示すステップＳ３２において、パケット判定部５６は、パケットに含まれるレジスタセット情報ＲＥＧ−ＩＤにより示されるエントリＥＮＴＲに格納された許可情報ＯＳＥＮが有効か否かを判定する。許可情報ＯＳＥＮが有効（論理１）の場合、処理はステップＳ３４に移行され、許可情報ＯＳＥＮが無効（論理０）の場合、処理はステップＳ３６に移行される。
【０１５０】
ステップＳ３４において、パケット判定部５６は、受信したパケットに含まれる鍵情報ＰＫ−ＯＳが、パケットに含まれるレジスタセット情報ＲＥＧ−ＩＤにより示されるエントリＥＮＴＲに格納された鍵情報ＰＫ−ＯＳと一致するか否かを判定する。鍵情報ＰＫ−ＯＳが一致する場合、処理はステップＳ３６に移行され、鍵情報ＰＫ−ＯＳが一致しない場合、処理はステップＳ４４に移行される。
【０１５１】
ステップＳ３６において、パケット判定部５６は、メッセージキューＭＱＵＥが正常か否かを判定する。例えば、メッセージキューＭＱＵＥが動作を停止している場合、またはメッセージキューＭＱＵＥが満杯である場合、メッセージキューＭＱＵＥが正常でないと判定される。メッセージキューＭＱＵＥが正常な場合、処理はステップＳ３８に移行され、メッセージキューＭＱＵＥが正常でない場合、処理はステップＳ４４に移行される。
【０１５２】
ステップＳ３８において、図９に示す書き込み制御部５８は、受信したメッセージデータＭＳＧ−ＤＴをメッセージキューＭＱＵＥに格納する。次に、ステップＳ４０において、パケット判定部５６は、ライトポインタＷＰを更新し、処理をステップＳ４２に移行する。
【０１５３】
ステップＳ４２において、図９に示す応答パケット生成部４６は、受信したパケットを正常に処理したことを示す正常応答パケットを生成し、処理をステップＳ４６に移行する。正常応答パケットに含まれる状態情報ＳＴは、図９に示す”ＣＯＭＰＬＥＴＥ”を示す。
【０１５４】
ステップＳ４４において、応答パケット生成部４６は、メッセージデータＭＳＧ−ＤＴを正常に受信しなかったことを示すエラー応答パケットを生成し、処理をステップＳ４６に移行する。エラー応答パケットに含まれる状態情報ＳＴは、図９に示す”ＩＮＶＡＬＩＤ”、”ＩＮＡＣＴＩＶＥ”、”ＦＵＬＬ”のいずれかを示す。
【０１５５】
次に、ステップＳ４６において、図９に示すパケット送信部４４は、応答パケット生成部４６が生成した応答パケットを、パケットの送信装置に向けて送信し、処理を終了する。
【０１５６】
図１７は、図４に示すコア１０が実行するアプリケーションプログラムによりパケットを送信する場合の処理の一例を示す。例えば、アプリケーションプログラムは、図１１および図１２に示すアプリケーションプログラム１である。図１７に示す処理は、所定の頻度で繰り返し実行される。
【０１５７】
まず、ステップＳ５０において、アプリケーションプログラムは、メッセージデータＭＳＧ−ＤＴを送信する場合、メッセージデータＭＳＧ−ＤＴをレジスタ部２０のエントリＥＮＴＳのいずれかに格納する。次に、ステップＳ５２において、アプリケーションプログラムは、管理情報ＭＳＧＱ−ＩＤをエントリＥＮＴＳに格納する。次に、ステップＳ５４において、アプリケーションプログラムは、論理１の送信要求ＳＥＮＤ−ＭＳＧをエントリＥＮＴＳに格納し、パケット制御部３０にパケットを送信させ、処理をステップＳ５６に移行する。
【０１５８】
ステップＳ５６において、アプリケーションプログラムは、状態情報ＳＴがエントリＥＮＴＳに格納されたか否かを判定する。すなわち、アプリケーションプログラムは、送信したパケットに対応する応答パケットを受信したか否かを判定する。状態情報ＳＴがエントリＥＮＴＳに格納された場合、処理はステップＳ５８に移行され、状態情報ＳＴがエントリＥＮＴＳに格納されない場合、処理は終了する。ステップＳ５８において、アプリケーションプログラムは、エントリＥＮＴＳに格納された状態情報ＳＴを読み出して、メッセージデータＭＳＧ−ＤＴが正常に転送されたか否かを確認し、処理を終了する。
【０１５９】
図１８は、図４に示すコア１０が実行するアプリケーションプログラムによりパケットを受信する場合の処理の一例を示す。例えば、アプリケーションプログラムは、図１１および図１２に示すアプリケーションプログラム２である。図１８に示す処理は、所定の頻度で繰り返し実行される。
【０１６０】
まず、ステップＳ６０において、アプリケーションプログラムは、使用するメッセージキューＭＱＵＥに対応するレジスタ部６０のエントリＥＮＴＲからライトポインタＷＰの値とリードポインタＲＰの値とを読み出す。ライトポインタＷＰの値とリードポインタＲＰの値とを読み出すエントリＥＮＴＲは、受信したパケットに含まれるレジスタセット情報ＲＥＧ−ＩＤにより示される。
【０１６１】
次に、ステップＳ６２において、アプリケーションプログラムは、ライトポインタＷＰの値とリードポインタＲＰの値の差に基づいて、メッセージキューＭＱＵＥにメッセージデータＭＳＧ−ＤＴが格納されたか否かを判定する。メッセージキューＭＱＵＥにメッセージデータＭＳＧ−ＤＴが格納されたと判定された場合、処理はステップＳ６４に移行され、メッセージキューＭＱＵＥにメッセージデータＭＳＧ−ＤＴが格納されていないと判定された場合、処理は終了する。
【０１６２】
ステップＳ６４において、アプリケーションプログラムは、メッセージキューＭＱＵＥからメッセージデータＭＳＧ−ＤＴを読み出す。次に、ステップＳ６６において、アプリケーションプログラムは、リードポインタＲＰを更新し、処理を終了する。
【０１６３】
以上、図３から図１８に示す実施形態においても、図１に示す実施形態と同様の効果を得ることができる。すなわち、アプリケーションプログラムによるアクセスが許可されていないレジスタＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳに鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳを格納する。これにより、アプリケーションプログラムの誤動作等により誤った鍵情ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳがレジスタに格納されることを抑止することができる。また、アクセス権限が異なるレジスタＭＳＧＱ−ＩＤ（ＡＫＥＹ）とレジスタＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳとに保持された鍵情報を用いて、受信したパケットが正常であるか否かを判定することで、判定の信頼性を向上することができる。
【０１６４】
したがって、送信装置が送信した誤ったパケットが、受信装置に対応するコア１０が実行するアプリケーションプログラムにより処理されることを抑止することができる。この結果、受信装置に対応するコア１０が実行するアプリケーションプログラムが、誤ったパケットに含まれるデータを用いてデータ処理等を実行することを抑止することができ、情報処理システムＳＹＳ２の信頼性を向上することができる。
【０１６５】
アプリケーションプログラムより上位のＯＳ等のプログラムによる鍵情報ＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳのレジスタＰＫ−ＳＰ、ＰＫ−ＨＶ、ＰＫ−ＯＳへの格納は、送信データの転送前に予め実行される。このため、送信データの受信装置への転送時にコンテキストスイッチ等は発生せず、コンテキストスイッチ等により、アプリケーションプログラムの実行効率が低下することを抑止することができる。
【０１６６】
さらに、図３から図１８に示す実施形態では、パケット判定部５６が判定に使用する鍵情報ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰは、パケットの受信装置が設定する許可情報ＯＳＥＮ、ＨＶＥＮ、ＳＰＥＮの論理に応じて決定される。このため、パケットの送信装置のエントリＥＮＴＳに保持された鍵情報ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰを書き替えることなく、パケット判定部５６が判定に使用する鍵情報ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰを変更することができる。この結果、パケットの送信装置でコンテキストスイッチ等を発生させることなく、パケット判定部５６が判定に使用する鍵情報ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰを変更することができる。すなわち、プロセスの実行効率が低下することなく、パケット判定部５６が判定に使用する鍵情報ＰＫ−ＯＳ、ＰＫ−ＨＶ、ＰＫ−ＳＰを変更することができる。
【０１６７】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１６８】
１０…ＣＰＵコア；２０…レジスタ部；３０…パケット制御部；４０…パケット送信制御部；４２…パケット生成部；４４…パケット送信部；４６…応答パケット生成部；５０…パケット受信制御部；５２…パケット受信部；５４…応答格納部；５６…パケット判定部；５８…書き込み制御部；６０…レジスタ部；７０…メモリ制御部；８０…キャッシュメモリ；１００…送信装置；１１０…データ処理部；１２０…管理部；１３０、１４０…保持部；１５０…パケット生成部；１６０…パケット送信部；２００…受信装置；２１０…パケット受信部；２２０…保持部；２３０、２４０…比較部；２５０…書き込み制御部；２６０…記憶部；ＡＫＥＹ…鍵情報；ＡＫＥＹＣＨＫ…鍵チェッカ；ＡＰＲＧ…アプリケーションプログラム；ＢＡＤＲＳ…ベースアドレス；ＣＰＵ−ＩＤ…ＣＰＵ情報；ＤＡＴＡ…データ；ＥＮＴＲ、ＥＮＴＳ…エントリ；ＧＸＢ…クロスバースイッチ；ＨＶ…ハイパーバイザ；ＨＶＣＨＫ…鍵チェッカ；ＨＶＥＮ…許可情報；ＫＥＹ１、ＫＥＹ２…鍵情報；ＫＥＹＯＵＴ…鍵情報取り出し部；ＬＸＢ…クロスバースイッチ；ＭＢＵＳ…メモリバス；ＭＥＭ…記憶装置；ＭＱＵＥ…メッセージキュー；ＭＳＧ−ＤＴ…メッセージデータ；ＭＳＧＱ−ＩＤ…管理情報；Ｍ−ＳＩＺＥ…メッセージサイズ；ＮＤ…ノード；ＮＷＩＦ…ネットワークインタフェース；ＯＳＣＨＫ…鍵チェッカ；ＯＳＥＮ…許可情報；ＰＫ−ＨＶ、ＰＫ−ＯＳ、ＰＫ−ＳＰ…鍵情報；ＲＥＧ−ＩＤ…レジスタセット情報；ＲＰ…リードポインタ；ＳＥＬ…セレクタ；ＳＥＮＤ−ＭＳＧ…送信要求；ＳＰ…サービスプロセッサ；ＳＰＣＨＫ…鍵チェッカ；ＳＰＥＮ…許可情報；ＳＴ…状態情報；ＳＷ…スイッチ；ＳＹＳ１、ＳＹＳ２…情報処理システム；ＷＰ…ライトポインタ
【図１】
0006668908.tif 000002
【図２】
0006668908.tif 000003
【図３】
0006668908.tif 000004
【図４】
0006668908.tif 000005
【図５】
0006668908.tif 000006
【図６】
0006668908.tif 000007
【図７】
0006668908.tif 000008
【図８】
0006668908.tif 000009
【図９】
0006668908.tif 000010
【図１０】
0006668908.tif 000011
【図１１】
0006668908.tif 000012
【図１２】
0006668908.tif 000013
【図１３】
0006668908.tif 000014
【図１４】
0006668908.tif 000015
【図１５】
0006668908.tif 000016
【図１６】
0006668908.tif 000017
【図１７】
0006668908.tif 000018
【図１８】
0006668908.tif 000019