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