(57)【要約】  データを保持する記憶装置（５，６）と、受信したデータに含まれる調整情報に基づいて、データに対してパディングを付加したパディング付きデータを作成するデータ作成部（２０７）と、データ作成部（２０７）によって作成されたパディング付きデータを記憶装置（５，６）に格納する格納処理部（２０４）とを備えることにより、アラインされていないデータを受信する場合においてもレイテンシを小さくできる。
2014038070.tif 000002
【特許請求の範囲】
【請求項１】
並列計算機システムに含まれる複数の情報処理装置のいずれかにおいて、
データを保持する記憶装置と、
受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成するデータ作成部と、
前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備えることを特徴とする情報処理装置。
【請求項２】
前記調整情報が調整サイズ情報をそなえ、前記データ作成部が、前記データに対して前記調整サイズ情報に合わせたパディングを付加することにより、前記パディング付きデータを作成することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記調整情報が調整の要否を示す要否情報をそなえ、前記要否情報が調整が必要であることを示す場合に、前記データ作成部が、前記パディング付きデータを作成することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
並列計算機システムに含まれる複数の情報処理装置のいずれかにおいて、
データを保持する記憶装置と、
受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断する判断部と、
前記判断部が前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成するデータ作成部と、
前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備えることを特徴とする情報処理装置。
【請求項５】
前記調整サイズ情報を格納する調整サイズ情報格納部を備え、
前記判断部が、前記調整サイズ情報格納部から前記調整サイズ情報を取得することを特徴とする請求項４記載の情報処理装置。
【請求項６】
データを保持する主記憶装置と、
前記主記憶装置に保持されたデータの一部を保持するキャッシュメモリ部と、前記主記憶装置又は前記キャッシュメモリ部に保持されたデータを用いて演算を行なう演算処理部とを有する演算処理装置と、
他の情報処理装置から受信したデータが、前記演算処理装置が待ち合わせているデータであるか否かを判定する判定部とをそなえ、
前記受信したデータが前記演算処理装置が待ち合わせているデータであると、前記判定部が判定した場合に、前記データ作成部が前記パディング付きデータを作成し、前記格納処理部が、前記パディング付きデータを前記キャッシュメモリ部に格納することを特徴とする請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
複数の情報処理装置を有する並列計算機システムにおいて、
調整情報を備えるデータを送信する第１の情報処理装置と、
データを保持する記憶装置と、受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成するデータ作成部と、前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備える第２の情報処理装置と、
を備えることを特徴とする並列計算機システム。
【請求項８】
前記調整情報が調整サイズ情報をそなえ、前記データ作成部が、前記データに対して前記調整サイズ情報に合わせたパディングを付加することにより、前記パディング付きデータを作成することを特徴とする請求項７記載の並列計算機システム。
【請求項９】
前記調整情報が調整の要否を示す要否情報をそなえ、前記要否情報が調整が必要であることを示す場合に、前記データ作成部が、前記パディング付きデータを作成することを特徴とする請求項７又は８記載の並列計算機システム。
【請求項１０】
複数の情報処理装置を有する並列計算機システムにおいて、
前記情報処理装置は、
データを保持する記憶装置と、
受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断する判断部と、
前記判断部が前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成するデータ作成部と、
前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備えることを特徴とする並列計算機システム。
【請求項１１】
前記情報処理装置は、
前記調整サイズ情報を格納する調整サイズ情報格納部を備え、
前記判断部が、前記調整サイズ情報格納部から前記調整サイズ情報を取得することを特徴とする請求項１０記載の並列計算機システム。
【請求項１２】
前記情報処理装置は、
データを保持する主記憶装置と、
前記主記憶装置に保持されたデータの一部を保持するキャッシュメモリ部と、前記主記憶装置又は前記キャッシュメモリ部に保持されたデータを用いて演算を行なう演算処理部とを有する演算処理装置と、
他の情報処理装置から受信したデータが、前記演算処理装置が待ち合わせているデータであるか否かを判定する判定部とをそなえ、
前記受信したデータが前記演算処理装置が待ち合わせているデータであると、前記判定部が判定した場合に、前記データ作成部）が前記パディング付きデータを作成し、前記格納処理部が、前記パディング付きデータを前記キャッシュメモリ部に格納することを特徴とする請求項７〜１１のいずれか１項に記載の並列計算機システム。
【請求項１３】
複数の情報処理装置を備える並列計算機システムを構成する情報処理装置の制御方法において、
調整情報を備えるデータを送信し、
受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成し、
作成された前記パディング付きデータを記憶装置に格納することを特徴とする情報処理装置の制御方法。
【請求項１４】
前記調整情報が調整サイズ情報をそなえ、
前記データに対して前記調整サイズ情報に合わせたパディングを付加することにより、前記パディング付きデータを作成することを特徴とする請求項１３記載の情報処理装置の制御方法。
【請求項１５】
前記調整情報が調整の要否を示す要否情報をそなえ、前記要否情報が調整が必要であることを示す場合に、前記パディング付きデータを作成することを特徴とする請求項１３又は１４記載の情報処理装置の制御方法。
【請求項１６】
複数の情報処理装置を備える並列計算機システムを構成する情報処理装置の制御方法において、
受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断し、
前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成し、
作成された前記パディング付きデータを記憶装置に格納することを特徴とする情報処理装置の制御方法。
【請求項１７】
前記調整サイズ情報を格納する調整サイズ情報格納部から前記調整サイズ情報を取得することを特徴とする請求項１６記載の情報処理装置の制御方法。
【請求項１８】
他の情報処理装置から受信したデータが、データを保持する主記憶装置に保持されたデータの一部を保持するキャッシュメモリ部と、前記主記憶装置又は前記キャッシュメモリ部に保持されたデータを用いて演算を行なう演算処理部とを有する演算処理装置が待ち合わせているデータであるか否かを判定し、
前記受信したデータが前記演算処理装置が待ち合わせているデータであると判定した場合に、前記パディング付きデータを作成し、当該パディング付きデータを前記キャッシュメモリ部に格納することを特徴とする請求項１３〜１７のいずれか１項に記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置，並列計算機システム及び情報処理装置の制御方法に関する。
【背景技術】
【０００２】
従来、複数の情報処理装置（ノード）が相互にデータの送受信を行ない、演算処理を実行する並列計算機システムが知られている。このような並列計算機システムの一例として、メモリ空間を共有しない複数の情報処理装置を、相互結合網を介して相互に接続した並列計算機システムが知られている。
このような並列計算機システムが有する情報処理装置は、演算に利用するデータを記憶する主記憶装置であるメインメモリと、演算を行なう演算処理装置と、他の情報処理装置との間で演算に利用するデータの送受信を行なうネットワークインタフェース（通信装置）とを有する。このような情報処理装置が有するネットワークインタフェースは、相互結合網を介して、他の情報処理装置と演算に関わるデータの送受信を行ない、受信したデータをメインメモリに格納する。ここで、書きこんだメインメモリのアドレスに対応するプロセッサのキャッシュラインが有効となっていれば、キャッシュメモリとメインメモリとの整合性を保つため、キャッシュラインを無効化するなどの処理が必要となる。
【特許文献１】特開平４−２８９９３５号公報
【特許文献２】特開平９−１２８３２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、このような従来の並列計算機システムにおいては、ノード間のデータ通信において、データを受信してメインメモリに書き込む際に、データが一定サイズでアラインされていない場合がある。そして、このようにデータがアラインされていない場合に、メインメモリに書き込むレイテンシが長くなるケースがある。以下にレイテンシが長くなる事例を示す。【０００４】
（１）メインメモリにデータとError Check and Correct（ＥＣＣ）とを格納する場合であって、受信データ長がＥＣＣ生成単位サイズでアラインされていない場合に、メインメモリから不足分のデータを読み出して、ＥＣＣを再計算する必要がある。メインメモリから一度データを読み出す必要があるので、書き込みのレイテンシが長くなる。
（２）受信ノードのプロセッサが持つキャッシュが、ライトバック（Write Back）方式における受信データを書き込むアドレスをキャッシュしている。そのキャッシュラインが、主記憶に更新データを書き戻していない、いわゆるダーティ（Dirty）な状態であり、受信データがキャッシュラインサイズでアラインされていない場合である。このような場合には、キャッシュライン中で書き込み対象でない領域をメインメモリに書き戻す必要がある。受信データがキャッシュラインサイズでアラインされている場合は、メインメモリに書き戻す必要はない。従って、受信データがキャッシュラインサイズでアラインされていない場合には、キャッシュラインサイズでアラインされている場合と比べてレイテンシは長くなる。【０００５】
本発明は、このような課題に鑑み創案されたもので、アラインされていないデータを受信する場合においてもレイテンシを小さくできるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【０００６】
このため、この情報処理装置は、並列計算機システムに含まれる複数の情報処理装置のいずれかにおいて、データを保持する記憶装置と、受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成するデータ作成部と、前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備える。【０００７】
また、この情報処理装置は、並列計算機システムに含まれる複数の情報処理装置のいずれかにおいて、データを保持する記憶装置と、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断する判断部と、前記判断部が前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成するデータ作成部と、前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備える。【０００８】
さらに、この並列計算機システムは、複数の情報処理装置を有する並列計算機システムにおいて、調整情報を備えるデータを送信する第１の情報処理装置と、データを保持する記憶装置と、受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成するデータ作成部と、前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備える第２の情報処理装置とを備える。【０００９】
また、この並列計算機システムは、複数の情報処理装置を有する並列計算機システムにおいて、前記情報処理装置は、データを保持する記憶装置と、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断する判断部と、前記判断部が前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成するデータ作成部と、前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備える。【００１０】
また、この情報処理装置の制御方法は、複数の情報処理装置を備える並列計算機システムを構成する情報処理装置の制御方法において、調整情報を備えるデータを送信し、受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成し、作成された前記パディング付きデータを記憶装置に格納する。【００１１】
さらに、この情報処理装置の制御方法は、複数の情報処理装置を備える並列計算機システムを構成する情報処理装置の制御方法において、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断し、前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成し、作成された前記パディング付きデータを記憶装置に格納する。
【発明の効果】
【００１２】
一実施形態によれば、アラインされていないデータを受信する場合においてもレイテンシを小さくできる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態の一例として並列計算機システムを説明するための図である。
【図２】メモリアドレスの一例を説明するための図である。
【図３】第１実施形態の一例としての並列計算機システムに関わるキャッシュメモリの一例を説明するための図である。
【図４】第１実施形態の一例としての並列計算機システムに関わる通信装置の機能構成を示す図である。
【図５】第１実施形態の一例としての並列計算機システムにおける送信パケットのフォーマットを模式的に例示する図である。
【図６】第１実施形態の一例としての並列計算機システムにおける情報処理装置のパディング付加部の処理を説明するためのフローチャートである。
【図７】第１実施形態の一例としての並列計算機システムにおける情報処理装置の通信装置のデータ受信時の処理を説明するためのフローチャートである。
【図８】第２実施形態の一例としての並列計算機システムにおける送信パケットのフォーマットを模式的に例示する図である。
【図９】第２実施形態の一例としての並列計算機システムに関わる通信装置の機能構成を示す図である。
【図１０】第２実施形態の一例としての並列計算機システムにおける情報処理装置のパディング付加部の処理を説明するフローチャートである。
【図１１】第３実施形態の実施例１としての並列計算機システムに関わる通信装置の一例を説明するための図である。
【図１２】第３実施形態の実施例１に関わる制御部が生成するパケットの一例を説明するための図である。
【図１３】第３実施形態の実施例１に関わる通信装置が実行する処理の流れを説明するためのフローチャートである。
【図１４】第３実施形態の実施例２に関わる並列計算機システムの一例を説明するための図である。
【図１５】第３実施形態の実施例２に関わる通信装置を説明するための図である。
【図１６】第３実施形態の実施例３に関わる並列計算機システムの一例を説明するための図である。
【図１７】第３実施形態の実施例４に関わる並列計算機システムを説明するための図である。
【図１８】第３実施形態の実施例４に関わる通信装置の一例を説明するための図である。
【図１９】書き込み先アドレステーブルの一例を説明するための図である。
【図２０】第３実施形態の実施例４に関わる通信装置が実行する処理の流れを説明するためのフローチャートである。
【図２１】第３実施形態の実施例５に関わる並列計算機システムの一例を説明するための図である。
【図２２】実施例５に関わる通信装置の一例を説明するための図である。
【図２３】第３実施形態の実施例６に関わる並列計算機システムを説明するための図である。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本情報処理装置，並列計算機システム及び情報処理装置の制御方法に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（実施形態及び各実施例を組み合わせる等）して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。【００１５】
（Ａ）第１実施形態
以下の第１実施形態では、図１を用いて、並列計算機システムの一例を説明する。図１は、第１実施形態の一例として並列計算機システムを説明するための図である。
図１に示すように、並列計算機システム１は、複数の情報処理装置２、２ａ、各情報処理装置２、２ａを接続するバス８を有する。なお、図１に示す例では、情報処理装置２および２ａが記載されているが、並列計算機システム１は、さらに多数の情報処理装置を有してもよい。並列計算機システム１は、任意の数の情報処理装置を有してよい。また、以下の説明においては、情報処理装置２ａは、情報処理装置２と同様の処理を実行するものとして、説明を省略する。又、以下、情報処理装置２，２ａをノードという場合がある。【００１６】
情報処理装置２は、プロセッサ３、メモリ６、通信装置（ネットワークインタフェース）１０を有する。プロセッサ３、メモリ６、通信装置１０は、それぞれ情報処理装置２が有するバスによって接続される。プロセッサ３は、演算処理を実行する演算処理装置である。具体的には、プロセッサ３は、演算を行なうプロセッサコア４を有する。また、プロセッサコア４は、キャッシュメモリ５を有する。【００１７】
以下、メモリ６、キャッシュメモリ５に格納されるデータについての説明を行ない、その後、プロセッサコア４および通信装置１０が実行する処理について説明する。
メモリ６は、情報処理装置２が有するメインメモリ（主記憶装置）であり、プロセッサコア４が演算に用いるデータを保持する。
以下、図２、図３を用いて、メモリ６の一例について説明する。図２は、メモリアドレスの一例を説明するための図である。例えば、メモリ６の格納領域を示すメモリアドレスは、プロセッサ３が４０ビットのメモリアドレス空間を有する場合には、例えば４０ビット長のメモリアドレスとなる。このような場合には、メモリアドレスを、例えば、図２中（Ａ）に示す範囲の上位「３４−Ｎ」ビットをタグとして、続く図２中（Ｂ）に示す範囲の「Ｎ」ビットをインデックスとして、図２中（Ｃ）に示す範囲の下位「６」ビットをオフセットとして分割することができる。ここで、インデックスのサイズは、任意のビット数を設定することができるものとし、以下の説明においては「Ｎ」ビットがインデックスとして設定されたものとする。【００１８】
キャッシュメモリ５は、プロセッサコアが演算に利用するデータを記憶する記憶装置であり、メモリ６よりも高速でデータの出し入れを行なう事ができる。以下、キャッシュメモリ５の一例について説明する。図３は、第１実施形態の一例としての並列計算機システムに関わるキャッシュメモリの一例を説明するための図である。例えば、キャッシュメモリ５は、ラインサイズが６４バイトである２Ｎ個のキャッシュラインを有し、全体の記憶容量が２Ｎ＋６バイトであるキャッシュメモリである。【００１９】
ここで、各キャッシュラインには、キャッシュライン番号「０」〜「２Ｎ−１」が付与されている。また、各キャッシュラインには、図３中（Ａ）で示す２ビットの状態データ、図３中（Ｂ）で示す「３４−Ｎ」ビットのタグデータ、および図３中（Ｃ）で示す６４バイトのデータが格納される。ここで、状態データのうち、一方のビットは、対応するキャッシュラインに格納されたデータが有効であるか否かを示すＶａｌｉｄビットである。例えば、Ｖａｌｉｄビットに「１」が格納されていた場合には、対応するキャッシュラインに格納されたデータが有効であることを示し、Ｖａｌｉｄビットに「０」が格納されていた場合には、対応するキャッシュラインに格納されたデータが無効であることを示す。【００２０】
また、状態データのうち、もう一方のビットは、対応するキャッシュラインに格納されたデータとメモリ６に格納されたデータとの同一性を保持するための情報であるＤｉｒｔｙビットである。例えば、Ｄｉｒｔｙビットに「１」が格納されている場合には、対応するキャッシュラインに格納されたデータがプロセッサコア４によって更新されているため、データをメモリ６に書き戻す必要があることを示す。Ｄｉｒｔｙビットに「０」が格納されている場合には、対応するキャッシュラインに格納されたデータがプロセッサコア４によって更新されておらず、当該キャッシュラインに格納されたデータとメモリ６に格納されたデータと同一である旨を表す。例えば、Ｖａｌｉｄビットが「１」でＤｉｒｔｙビットが「１」であるキャッシュラインに格納されたデータは、有効なデータであり、かつ、プロセッサコア４による書換え等のためにキャッシュ元であるメモリ６に格納されたデータと同一ではない。【００２１】
また、キャッシュメモリ５はダイレクトマップ方式が採用されており、メモリ６のデータがキャッシュされる場合には、キャッシュ元データが格納されていたメモリアドレスのインデックスに応じたキャッシュラインに格納する。例えば、キャッシュメモリ５は、キャッシュ元のデータが格納されていたメモリアドレスのインデックスが「ｉ」である場合には、キャッシュライン番号が「ｉ」のキャッシュラインに格納する。ただし、キャッシュメモリ５には、複数のキャッシュウェイを有するセットアソシエイティブ方式が採用されてもよい。【００２２】
図１に戻って、プロセッサコア４は、データを用いて演算を行なう演算処理部である。具体的には、プロセッサコア４は、メモリ６またはキャッシュメモリ５に格納されたデータを用いて、演算処理を実行する。また、プロセッサコア４は、メモリ６に格納されていたデータを取得し、取得したデータをキャッシュメモリ５に格納する。すなわち、プロセッサコア４は、メモリ６に格納されていたデータをキャッシュメモリ５に保持する。そして、プロセッサコア４は、キャッシュメモリ５に格納したデータを用いて、演算処理を実行する。【００２３】
また、プロセッサコア４は、情報処理装置２ａ等の他の情報処理装置による演算の結果を用いて演算処理を実行する場合には、他の演算処理装置から送信されたデータを通信装置１０が受信するまで待機する。つまり、プロセッサコア４は、他の情報処理装置による演算結果のデータを待ち合わせるポーリング処理を実行する。そして、プロセッサコア４は、ポーリング処理の対象となるデータを通信装置１０が受信した場合には、受信を感知し、受信したデータを用いた演算処理を実行する。【００２４】
次に、プロセッサコア４が実行する処理の一例を説明する。例えば、プロセッサコア４は、通信装置１０からデータをメモリ６に格納するデータとして受信した場合には、以下の処理を実行する。すなわち、プロセッサコア４は、データを格納するメモリアドレスのインデックスと対応するキャッシュラインの状態データであるＶａｌｉｄビットとＤｉｒｔｙビットとを参照する。そして、プロセッサコア４は、参照したＶａｌｉｄビットが「１」であり、かつ、Ｄｉｒｔｙビットが「１」であれば、以下の処理を実行する。【００２５】
すなわち、プロセッサコア４は、キャッシュメモリ５に格納されているキャッシュされたデータを用いて、メモリ６に格納されていたキャッシュ元のデータを最新のデータに更新する。そして、プロセッサコア４は、参照したＶａｌｉｄビットを「１」から「０」に更新し、その後、通信装置１０から受信したデータを、データと共に受信したメモリ６のメモリアドレスに格納する。【００２６】
また、プロセッサコア４は、参照したＶａｌｉｄビットが「０」である場合、または、Ｖａｌｉｄビットが「１」でＤｉｒｔｙビットが「０」である場合には、Ｖａｌｉｄビットを「０」に更新し、受信したデータをメモリ６に格納する。
図１に戻って、通信装置１０は、バス８を介して、情報処理装置２ａを初めとする他の情報処理装置からパケット化されたデータを受信する。ここで、パケット化されたデータには、データと、データを格納するメモリ６のメモリアドレスとが格納されている。通信装置１０は、受信したデータをメモリ６に格納する。【００２７】
また、通信装置１０は、プロセッサ３（プロセッサコア４）からデータと送信先の他の情報処理装置２ａを示す情報とを受信した場合には、受信したデータをパケット化し、バス８を介して、送信先の他の情報処理装置２ａへパケットを送信する。また、通信装置１０は、プロセッサコア４から他の情報処理装置２ａが有するプロセッサが待ち合わせているデータである旨を合わせて受信した場合には、受信したデータをパケット化するとともに、ポーリング処理の対象である旨を示す制御情報をパケットに付加する。そして、通信装置１０は、制御情報を付加したパケットを送信先の他の情報処理装置２ａへ送信する。【００２８】
以下、図４を用いて、通信装置１０の一例を説明する。図４は第１実施形態の一例としての並列計算機システムに関わる通信装置の機能構成を示す図である。図４に示す例では、通信装置１０は、Direct Memory Access（ＤＭＡ）コントローラ２０４，制御部２０５，パケット送信部２０６，パディング付加部２０７及びパケット受信部２０８を備える。
ＤＭＡコントローラ（格納処理部）２０４は、バスマスターであり、後述する制御部２０５からＤＭＡを行なうデータのアドレスとデータ長とを通知されると、メモリ６に対して、制御部２０５が通知したアドレスとデータ長を指定してＤＭＡ要求を行なう。すると、メモリ６は、指定されたアドレスに格納されているデータを、指定されたデータ長だけＤＭＡコントローラ２０４にＤＭＡ転送する。ＤＭＡコントローラ２０４は、メモリ６からＤＭＡ転送されるデータをパケット送信部２０６に送信する。【００２９】
また、ＤＭＡコントローラ２０４は、ＤＭＡ書き込みデータを、メモリ６のＤＭＡ書き込み先頭アドレスからＤＭＡ書き込み長にかかる領域に対して書き込む。そして、ＤＭＡコントローラ２０４は、後述するパディング付加部２０７が作成するパディング付きデータをＤＭＡ書き込みデータとしてプロセッサ３にメモリ６に書き込ませる。
制御部２０５は、プロセッサ３からパケット送信指示を受けると、ＤＭＡコントローラ２０４やパケット送信部２０６，パケット受信部２０８等を制御して、パケットの送信処理を行なう。パケットの送信処理を行なう場合には、制御部２０５は、ＤＭＡコントローラ２０４に、１つのパケットに含むデータのデータ長を指定することにより、メモリ６から送信するデータを読み込む。情報処理装置２から送信するパケットの長さ（サイズ）は一定（固定）であってもよく、又、可変であってもよい。【００３０】
制御部２０５は、送信するデータ（ペイロード）を受け取ると、このデータにヘッダを付加したパケット（送信パケット）を作成し、この作成したパケットをパケット送信部２０６に送り、バス８に送信させる。すなわち、制御部２０５は、送信するパケットを生成するパケット生成部として機能する。
制御部２０５は、送信するデータをパケット化し、送信先の他の情報処理装置２ａやデータを格納する送信先の他の情報処理装置２ａが有するメモリのメモリアドレス等をパケットに格納する。そして、制御部２０５は、生成したパケットをパケット送信部２０６へ送信する。【００３１】
送信するパケットは、例えば、送信先の他の情報処理装置２ａを示すアドレスが格納されたヘッダ部と、データを格納するデータ部とを有する。
図５は第１実施形態の一例としての並列計算機システムにおける送信パケットのフォーマットを模式的に例示する図である。
送信パケットは、例えば、図５に示すように、パケットタイプ，ルーティングヘッダ，ローカルノードアドレス，リモートノードアドレス，オフセット，パディングフラグ，アラインサイズ及びペイロードをそれぞれ格納するフィールドを備える。パケットタイプは、当該パケットの種類を示す情報であり、例えば、Ｐｕｔリクエスト（Ｐｕｔ通信）に使用するパケットやＧｅｔリクエスト（Ｇｅｔ通信）に使用するパケットであることを示す。【００３２】
ここで、Ｐｕｔ通信とは、ローカルノードが自身とリモートノードのメモリ６の領域を指定して、ローカルノードのメモリ６のデータを、リモートノードのメモリ６の領域に書き込む通信を示す。
また、Ｇｅｔ通信とは、ローカルノードが自身とリモートノードのメモリ６の領域を指定して、リモートノードのメモリ６のデータを、ローカルノードのメモリ６の領域に書き込む通信を示す。【００３３】
ローカルノードアドレスは、当該パケットの送信元ノードのアドレス（ノードアドレス）を示す情報であり、リモートノードアドレスは、当該パケットの送信先ノードのアドレスを示す情報である。これらのノードアドレスは、例えば、各次元の座標値で表される。
ルーティングヘッダは、当該パケットの経路を指定する情報であり、例えば、バス８上における当該パケットの送信元ノード（ローカルノード）の位置を原点とした時のリモートノードの位置を表す座標値である。このルーティングヘッダは、例えば、各次元の座標値で表される。【００３４】
ペイロードは、送信元ノードが送信先ノードに対して送信するメッセージ（データソース）を必要に応じて分割したデータである。オフセットは、ペイロードを格納するメモリ６のアドレスを指定する情報である。
パディングフラグ（要否情報）は、そのパケットに対するアラインの必要の有無を表す情報である。例えば、キャッシュラインサイズ等の所定のサイズにアラインされていないデータには、このパディングフラグに有効である旨（例えば、「１」）が設定される。すなわち、このパディングフラグに「１（有効）」が設定されている場合には、後述するパディング付加部２０７がアラインサイズに合わせてパディングを付加する。【００３５】
一方、キャッシュラインサイズ等にアラインされているデータには、このパディングフラグに無効である旨（例えば、「０」）が設定される。すなわち、このパディングフラグに「０（無効）」が設定されている場合には、パディング付加部２０７はパディングの付加を行なわない。
ここで、パディングとは、データを特定の長さに合わせるために、短いデータの前や後に無意味なデータ（例えば、「０」）を追加して長さを合わせる処理である。本実施形態においては、後述するパディング付加部２０７が、データに足りない桁数だけ「０」を追加して長さを合わせる、いわゆる「ゼロパディング（zero padding）」を行なう。【００３６】
アラインサイズ（調整サイズ情報）は、パディングによりそのパケットをアラインさせるサイズであり、パディング付加部２０７は、このアラインサイズに合わせて当該パケットのペイロードにパディングを付加する。このアラインサイズは、例えば、ＥＣＣ生成単位もしくはキャッシュメモリ５のキャッシュラインサイズである。
これらのパディングフラグ及びアラインサイズは、例えば、情報処理装置２上で動作する図示しないアプリケーションが入力（設定）してもよく、又、オペレータが入力してもよい。パディングフラグ及びアラインサイズは、パディング情報（調整情報）として制御部２０５によって送信パケットに付加される。【００３７】
パケット受信部２０８は、他の情報処理装置２等からバス８を介して送信されたパケットを受信し、そのペイロードをプロセッサ３に受け渡す等の受信処理を行なう。
また、パケット受信部２０８は、パケットのペイロードに格納されているデータとパディング情報（パディングフラグ及びアラインサイズ）とをパディング付加部２０７に送る。【００３８】
パケット送信部２０６は、当該情報処理装置２が送信元ノードである状態では、制御部２０５によって作成されたパケットを宛先の情報処理装置２に送信する。
パケット送信部２０６は、制御部２０５及びＤＭＡコントローラ２０４からパケットヘッダとデータとを受け取ると、パケットを生成し、バス８に送出する。
また、パケット送信部２０６は、当該情報処理装置２が送信先ノードである状態では、受信したパケットの送信元の情報処理装置２に対して、応答パケットを作成して送信する。【００３９】
パディング付加部（データ作成部，判断部）２０７は、パケット受信部２０８によって受信されたデータに対してパディングを付加することによりパディング付きデータを作成する。パディング付加部２０７は、パケット受信部２０８から受け取ったパディング情報においてパディングフラグとして「１（有効）」が設定されている場合に、データがアラインサイズにアラインするように、パディングを付けることによりパディング付きデータを作成する。【００４０】
パディング付加部２０７は、ペイロードの先頭に対して付加するパディングの長さp_fを以下の式（１）により算出する。
P_f＝ペイロード書き込み先頭アドレス−（ｎ×アライメントサイズ）  ・・・（１）
ただし、
ｎ＝floor（ペイロード書き込み先頭アドレス／アライメントサイズ）  ・・・（２）
である。ここでfloorは床関数であり、ｎは、「ペイロード書き込み先頭アドレス／アライメントサイズ」の小数部分を切り下げた整数値である。【００４１】
また、パディング付加部２０７は、ペイロードの末尾に対して付加するパディングの長さp_eを以下の式（３）により算出する。
p_e＝（ｍ×アライメントサイズ）−（p_f＋ペイロードの長さ）  ・・・（３）
ただし、
ｍ＝ceil（（ペイロードの長さ＋p_f）／アライメントサイズ）  ・・・（４）
である。ここでceilは天井関数であり、ｍは、「（ペイロードの長さ＋p_f）／アライメントサイズ」の小数部分を切り上げた整数値である。【００４２】
また、パディング付加部２０７は、「ｎ×アライメントサイズ」をＤＭＡ書き込み先頭アドレスに設定し、又、「ｍ×アライメントサイズ」をＤＭＡ書き込み長に設定する。
パディング付加部２０７は、作成したパディング付きデータをＤＭＡコントローラ２０４に送る。ＤＭＡコントローラ２０４は、パディングが付加されたデータをメモリ６に書き込む。【００４３】
また、パディング情報においてパディングフラグとして「０（無効）」が設定されている場合には、パディング付加部２０７は、パケット受信部２０８が受信したデータを、ＤＭＡコントローラ２０４に送る。
第１実施形態の一例としての並列計算機システム１における情報処理装置２のパディング付加部２０７の処理を、図６に示すフローチャート（ステップＡ１０〜Ａ４０）に従って説明する。【００４４】
ステップＡ１０において、パディング付加部２０７は、上記式（１）〜（４）を算出してｎ，p_f，ｍ及びp_eの各値を算出する。
次に、ステップＡ２０において、ＤＭＡ書き込み先頭アドレスを「ｎ×アライメントサイズ」に設定し、又、ＤＭＡ書き込み長を「ｍ×アライメントサイズ」にする。
そして、ステップＡ３０において、パディング付加部２０７は、ペイロードの先頭に対して、p_fの長さのパディングを付加するとともに、ペイロードの末尾に対してp_eの長さのパディングを付加したパディング付きデータを作成する。このパディング付きデータが、ＤＭＡコントローラ２０４によりメモリ６に書き込まれるＤＭＡ書き込みデータとなる。【００４５】
ステップＡ４０において、パディング付加部２０７は、ステップＡ２０において設定したＤＭＡ書き込み先頭アドレス，ＤＭＡ書き込み長及びＤＭＡ書き込みデータ（パディング付きデータ）をＤＭＡコントローラ２０４に送って、処理を終了する。パディング付加部２０７により、ペイロードはアラインされているので、ペイロードのアドレスや長さが、そのままＤＭＡのアドレス及び長さになる。【００４６】
なお、ＤＭＡコントローラ２０４は、ＤＭＡ書き込みデータ（パディング付きデータ）を、メモリ６のＤＭＡ書き込み先頭アドレスからＤＭＡ書き込み長にかかる領域に対して書き込む。
上述の如く構成された、第１実施形態の一例としての並列計算機システム１における情報処理装置２の通信装置１０のデータ受信時の処理を、図７に示すフローチャート（ステップＢ１〜Ｂ４）に従って説明する。【００４７】
通信装置１０のパケット受信部２０８がデータを受信し、パケットのペイロードに格納されているデータとパディング情報（パディングフラグ及びアラインサイズ）とをパディング付加部２０７に送る。
ステップＢ１において、パディング付加部２０７は、パディング情報を参照してパディングフラグが有効になっているか否かを判断する。パディングフラグに「１」が設定されている場合、すなわち、パディングフラグが有効である場合には（ステップＢ１のＹＥＳルート参照）、ステップＢ２においてパディング付加部２０７がペイロードにパディングを付加する。すなわち、パディング付加部２０７は、図６に示したフローチャートに従って処理を行なう。【００４８】
その後、ステップＢ３において、ＤＭＡコントローラ２０４が、ＤＭＡ書き込みデータ（パディング付きデータ）を、メモリ６のＤＭＡ書き込み先頭アドレスからＤＭＡ書き込み長にかかる領域に対して書き込み、処理を終了する。
一方、ステップＢ１における判断の結果、パディングフラグに「０」が設定されている場合、すなわち、パディングフラグが無効である場合には（ステップＢ１のＮＯルート参照）、ステップＢ３に移行する。【００４９】
このように、第１実施形態の一例としての並列計算機システム１の情報処理装置２においては、パディング付加部２０７が、受信したデータに付加されているパディング情報を参照して、パディングフラグが有効である場合にペイロードにパディングを付加してパディング付きデータを作成する。ＤＭＡコントローラ２０４が、このパディング付きデータをメモリ６に書き込む。これにより、受信したデータがアラインされていない場合であっても、パディング付加部２０７がこのデータをアラインすることにより、メモリ６へ書き込みを行なう際のレイテンシを短くすることができる。【００５０】
送信元においては、送信するデータにパディング情報（パディングフラグ及びパディングサイズ）を付加することで、送信先の情報処理装置２におけるデータ受信時のパディング実施／不実施を制御することができ、利便性が高い。
また、パディング付加部２０７において、前述した式（１）〜（４）を用いて、ペイロードの先頭に対して行なうパディングの長さp_fや、ペイロードの末尾に対して行なうパディングの長さp_eを算出し、パディング付きデータを作成する。【００５１】
さらに、パディング付加部２０７は、作成したパディング付きデータをＤＭＡコントローラ２０４に送る。ＤＭＡコントローラ２０４は、パディングが付加されたデータをメモリ６に書き込む。このように、パディング付きデータを容易に作成することができる。すなわち、データのアラインを容易に実現することができる。
また、パディング付加部２０７は、式（２），（４）により算出した値ｎ，ｍに基づき、ＤＭＡ書き込み先頭アドレスを「ｎ×アライメントサイズ」と設定し、又、ＤＭＡ書き込み長を「ｍ×アライメントサイズ」と設定する。そして、ＤＭＡコントローラ２０４が、パディング付きデータを、メモリ６のＤＭＡ書き込み先頭アドレスからＤＭＡ書き込み長にかかる領域に対して書き込むことで、小さいレイテンシでデータをメモリ６に書き込むことができる。【００５２】
（Ｂ）第２実施形態
上述した第１実施形態においては、送信元の情報処理装置２ａがパディングフラグとアラインサイズとを有するパディング情報を備えたパケットを送信する。そして、送信先の情報処理装置２において、パディング付加部２０７がパディング情報に基づいてパディング付きデータの作成を行なっているが、これに限定されるものではない。本第２実施形態の一例としての並列計算機システムにおいては、送信パケットにパディングフラグ及びアラインサイズを備えない。【００５３】
図８は第２実施形態の一例としての並列計算機システム１における送信パケットのフォーマットを模式的に例示する図、図９はその並列計算機システムに関わる通信装置の機能構成を示す図である。なお、図中、既述のフィールドと同じフィールドは同様の部分を示しているので、その説明は省略する。
図８に示すように、送信パケットは、パケットタイプ，ルーティングヘッダ，ローカルノードアドレス，リモートノードアドレス，オフセット及びペイロードをそれぞれ格納するフィールドを備える。【００５４】
図９に示すように、第２実施形態の並列計算機システム１における情報処理装置２は、通信装置１０が、第１実施形態の通信装置１０に加えてキャッシュラインサイズ保持部（調整サイズ情報格納部）２０９を備えるものであり、その他の部分は第１実施形態の情報処理装置２と同様に構成されている。
キャッシュラインサイズ保持部（調整サイズ情報格納部）２０９は、プロセッサ３のキャッシュメモリ５のキャッシュラインサイズ（調整情報，調整サイズ情報）を保持する記憶装置（メモリ）である。このキャッシュラインサイズ保持部２０９は、プロセッサ３から通知されるキャッシュラインサイズを格納する。なお、プロセッサ３は、例えば、当該情報処理装置２の起動時等の所定のタイミングで、キャッシュラインサイズをキャッシュラインサイズ保持部２０９に通知することが望ましい。【００５５】
また、パディング付加部２０７は、パケット受信部２０８が受信したパケットに基づき、ペイロードがアラインされているか否かの判断を行なう。具体的には、パディング付加部２０７は、受信したパケットのペイロード書き込み先頭アドレスがアライメントサイズの倍数であり、且つ、ペイロードの長さがアライメントサイズの倍数である場合に、このデータがアラインされていると判断する。【００５６】
そして、パディング付加部２０７は、ペイロードがアラインされていないと判断した場合に、パケット受信部２０８によって受信されたデータに対してパディングを付加することによりパディング付きデータを作成する。
本第２実施形態においては、パディング付加部２０７は、アライメントサイズとして、このキャッシュラインサイズ保持部２０９からキャッシュラインサイズを読み出し、前述した式（１）〜（４）の算出に用いる。【００５７】
上述の如く構成された、第２実施形態の一例としての並列計算機システム１における情報処理装置２のパディング付加部２０７の処理を、図１０に示すフローチャート（ステップＡ１，Ａ１０〜Ａ５０）に従って説明する。なお、図中、既述の符号と同一の符号を付したステップは同様の処理を示しているので、その説明は省略する。
先ず、ステップＡ１において、パディング付加部２０７は、パケット受信部２０８が受信したパケットに基づき、ペイロードがアラインされているか否かの判断を行なう。【００５８】
パディング付加部２０７は、ペイロードがアラインされていないと判断した場合には（ステップＡ１のＮＯルート参照）、パケット受信部２０８によって受信されたデータに対してパディングを付加することによりパディング付きデータを作成する。すなわち、ステップＡ１０〜Ａ４０の処理を行なう。
一方、パディング付加部２０７は、ペイロードがアラインされていると判断した場合には（ステップＡ１のＹＥＳルート参照）、ステップＡ５０において、ペイロードの書き込み先頭アドレスをＤＭＡ書き込み先頭アドレスをとし、又、ペイロードの長さをＤＭＡ書き込み長をとする。更に、ペイロードをＤＭＡ書き込みデータとする。【００５９】
その後、ステップＡ４０において、パディング付加部２０７は、ステップＡ２０において設定したＤＭＡ書き込み先頭アドレス，ＤＭＡ書き込み長及びＤＭＡ書き込みデータをＤＭＡコントローラ２０４に送って、処理を終了する。なお、ＤＭＡコントローラ２０４は、ＤＭＡ書き込みデータを、メモリ６のＤＭＡ書き込み先頭アドレスからＤＭＡ書き込み長にかかる領域に対して書き込む。【００６０】
このように、第２実施形態の一例としての並列計算機システム１の情報処理装置２においては、通信装置１０において、パディング付加部２０７は、パケット受信部２０８が受信したパケットに基づき、ペイロードがアラインされているか否かの判断を行なう。そして、ペイロードがアラインされていないと判断した場合に、パディング付加部２０７は、ペイロードにパディングを付加してパディング付きデータを作成する。これにより、第１実施形態と同様に、受信したデータがアラインされていない場合であっても、メモリ６への書き込みを行なう際のレイテンシを短くすることができる。【００６１】
また、第１実施形態と比べて、送信元において、送信するデータにパディング情報（パディングフラグ及びパディングサイズ）を付加する必要がなく、送信側の情報処理装置２を変更する必要がない。これにより、既存のシステムに対して容易に導入することができ、利便性が高く、又、経済的である。
また、パディング付加部２０７において、前述した式（１）〜（４）を用いて、ペイロードの先頭に対して行なうパディングの長さp_fや、ペイロードの末尾に対して行なうパディングの長さp_eを算出し、パディング付きデータを作成する。【００６２】
さらに、パディング付加部２０７は、作成したパディング付きデータをＤＭＡコントローラ２０４に送る。ＤＭＡコントローラ２０４は、パディングが付加されたデータをメモリ６に書き込む。このように、パディング付きデータを容易に作成することができる。
また、パディング付加部２０７は、式（２），（４）により算出した値ｎ，ｍに基づき、ＤＭＡ書き込み先頭アドレスを「ｎ×アライメントサイズ」と設定し、又、ＤＭＡ書き込み長を「ｍ×アライメントサイズ」と設定する。そして、ＤＭＡコントローラ２０４が、パディング付きデータを、メモリ６のＤＭＡ書き込み先頭アドレスからＤＭＡ書き込み長にかかる領域に対して書き込むことで、小さいレイテンシでデータをメモリ６に書き込むことができる。【００６３】
（Ｃ）第３実施形態
（Ｃ−１）実施例１
第３実施形態の実施例１としての並列計算機システム１においては、前述した第１実施形態の並列計算機システム１としての機能に加えて、プロセッサコア４は、キャッシュメモリ５に格納するデータとして通信装置１０からデータを受信した場合には、受信したデータをキャッシュメモリ５とメモリ６とに格納する機能を備える。【００６４】
そして、これらのキャッシュメモリ５やメモリ６にデータを格納する際に、データがアラインされていない場合には、パディング付加部２０７がペイロードにパディングを付加して作成したパディング付きデータを格納する。
本第３実施形態の実施例１の並列計算機システム１においても、プロセッサコア４は、情報処理装置２ａ等の他の情報処理装置による演算の結果を用いて演算処理を実行する場合には、他の演算処理装置から送信されたデータを通信装置１０が受信するまで待機する。つまり、プロセッサコア４は、他の情報処理装置による演算結果のデータを待ち合わせるポーリング処理を実行する。【００６５】
そして、本第３実施形態の実施例１の並列計算機システム１においては、プロセッサコア４は、ポーリング処理の対象となるデータを通信装置１０が受信した場合には、受信したデータを取得し、取得したデータをキャッシュメモリ５とメモリ６とに格納する。
ここで、プロセッサコア４が受信したデータをキャッシュメモリ５およびメモリ６に格納する処理の例について説明する。例えば、プロセッサコア４は、後述する通信装置１０からデータをメモリ６に格納するデータとして受信した場合には、メモリ６に受信したデータを格納する。【００６６】
また、プロセッサコア４は、通信装置１０からデータをキャッシュメモリ５に書き込むデータとして受信した場合には、以下の処理を実行する。すなわちプロセッサコア４は、受信したデータをメモリ６に格納するとともに、受信したデータをキャッシュメモリ５に格納する。つまり、プロセッサコア４は、キャッシュメモリ５に格納するデータとして通信装置１０からデータを受信した場合には、受信したデータをキャッシュメモリ５とメモリ６とに格納する。【００６７】
ここで、プロセッサコア４は、受信したデータをキャッシュメモリ５に格納する場合には、キャッシュメモリ５に格納されているデータとメモリ６に格納されているデータとの同一性を保持するための情報を参照する。そして、プロセッサコア４は、参照した同一性を保持するための情報に基づいて、キャッシュメモリ５に格納されていたデータをメモリ６に吐き出し、その後、受信したデータをキャッシュメモリ５に格納する。その後、プロセッサコア４は、キャッシュメモリ５に格納したデータ、すなわちポーリング処理の対象となるデータを用いて、演算処理を実行する。【００６８】
また、プロセッサコア４は、演算の結果、算出したデータを他の情報処理装置へ送信する場合には、送信先の情報処理装置を示す情報と、算出したデータとを通信装置１０へ送信する。この際、プロセッサコア４は、算出したデータが他の情報処理装置が有するプロセッサコアが待ち合わせているデータであるか否かを判定する。そして、プロセッサコア４は、算出したデータが他の情報処理装置が有するプロセッサコアが待ち合わせているデータであると判定した場合には、プロセッサコアが待ち合わせているデータである旨とを通信装置１０へ送信する。【００６９】
次に、プロセッサコア４が通信装置１０からデータをキャッシュメモリ５に格納するデータとして受信した場合について説明する。このような場合には、プロセッサコア４は、受信したデータを格納するキャッシュラインのＶａｌｉｄビットとＤｉｒｔｙビットとタグデータとを参照する。つまり、プロセッサコア４は、受信したデータを格納するメモリアドレスのインデックスに対応するキャッシュラインのＶａｌｉｄビットとＤｉｒｔｙビットとを参照する。そして、プロセッサコア４は、参照したＶａｌｉｄビットが「０」または参照したタグデータが受信したメモリアドレスのタグデータと一致しない場合には、受信したデータをメモリ６に格納する。【００７０】
また、プロセッサコア４は、参照したＶａｌｉｄビットが「１」、かつ、参照したタグデータが受信したデータを格納するメモリアドレスのタグと一致する場合には、以下の処理を実行する。すなわち、プロセッサコア４は、通信装置１０から受信したデータを状態データとタグデータとを参照したキャッシュラインに格納する。
通信装置１０は、バス８を介して、情報処理装置２ａを初めとする他の情報処理装置からパケット化されたデータを受信する。ここで、パケット化されたデータには、データと、データを格納するメモリ６のメモリアドレスとが格納されている。通信装置１０は、他の情報処理装置２ａからデータを受信した場合には、受信したデータが、プロセッサコア４が待ち合わせているデータであるか否かを判定する。【００７１】
そして、通信装置１０は、受信したデータが、プロセッサコア４が待ち合わせているデータであると判定した場合には、データをキャッシュメモリ６に格納するデータとしてプロセッサコア４に送信する。つまり、通信装置１０は、データをキャッシュメモリ６に格納するデータとしてプロセッサコア４に送信することで、受信したデータをキャッシュメモリ５とメモリ６に格納する。【００７２】
一方、通信装置１０は、受信したデータが、プロセッサコア４が待ち合わせているデータではないと判定した場合には、データをメモリ６に格納するデータとしてプロセッサコア４に送信する。つまり、通信装置１０は、データをメモリ６に格納するデータとしてプロセッサコア４に送信することで、受信したデータをメモリ６に格納する。
また、通信装置１０は、プロセッサコア４からデータと送信先の他の情報処理装置２ａを示す情報とを受信した場合には、受信したデータをパケット化し、バス８を介して、送信先の他の情報処理装置２ａへパケットを送信する。また、通信装置１０は、プロセッサコア４から他の情報処理装置２ａが有するプロセッサが待ち合わせているデータである旨を合わせて受信した場合には、受信したデータをパケット化するとともに、ポーリング処理の対象である旨を示す制御情報をパケットに付加する。そして、通信装置１０は、制御情報を付加したパケットを送信先の他の情報処理装置２ａへ送信する。【００７３】
本第３実施形態の実施例１においても、通信装置１０において、判定部１４を介して受け取ったパディング情報においてパディングフラグとして「１（有効）」が設定されている場合に、パディング付加部２０７が、データがアラインサイズにアラインするようにパディングを付けることによりパディング付きデータを作成する。通信装置１０はこのパディング付きデータを各プロセッサコア４に対して、キャッシュメモリ５もしくはメモリ６に保持するデータとして送信する。【００７４】
また、パディング情報においてパディングフラグとして「０（無効）」が設定されている場合には、パディング付加部２０７は、パケット受信部２０８が受信したデータを各プロセッサコア４に対して、キャッシュメモリ５もしくはメモリ６に保持するデータとして送信する。
すなわち、通信装置１０ａは、プロセッサコア４に対してアラインされたデータを送信する。【００７５】
以下、図１１を用いて、通信装置１０の一例を説明する。図１１は、第３実施形態の実施例１としての並列計算機システムに関わる通信装置の一例を説明するための図である。図１０に示す例では、通信装置１０は、第１実施形態の通信装置１０に、更に判定部１４を有する。
制御部２０５（パケット生成部）は、図１１中（Ａ）に示すように、他の情報処理装置２ａのプロセッサコアが待ち合わせているデータを送信する場合には以下の処理を実行する。すなわち、制御部２０５は、送信するデータをパケット化し、送信先の他の情報処理装置２ａやデータを格納する送信先の他の情報処理装置２ａが有するメモリのメモリアドレス等をパケットに格納する。また、制御部２０５は、他の情報処理装置２ａのプロセッサコアが有するキャッシュメモリに書き込む旨の制御情報をパケットに付加する。そして、制御部２０５は、生成したパケットをパケット送信部２０６へ送信する。【００７６】
ここで、図１２は、第３実施形態の実施例１に関わる制御部２０５が生成するパケットの一例を説明するための図である。図１２中（Ａ）に示すように、従来のパケットは、送信先の他の情報処理装置２ａを示すアドレスが格納されたヘッダ部と、データを格納するデータ部とを有する。一方、制御部２０５は、図１２中（Ｂ）に示すパケットを生成する。具体的には、制御部２０５は、図１２中（Ｃ）に示すように、パケットのヘッダとデータとの間に制御情報を格納する１ビットのフラグ領域を追加する。【００７７】
そして、制御部２０５は、送信するデータが送信先の他の情報処理装置２ａのプロセッサコアが待ち合わせるデータである場合には、制御情報としてフラグ領域に「１」を格納する。また、制御部２０５は、送信するデータが送信先の情報処理装置のプロセッサコアが待ち合わせるデータではない場合には、制御情報としてフラグ領域に「０」を格納する。なお、上記した制御情報が格納されたパケットは、情報処理装置２だけではなく、情報処理装置２ａを始めとする他の情報処理装置も同様のパケットを生成するものとする。【００７８】
図１１に戻って、パケット送信部２０６は、制御部２０５が生成したパケットを受信した場合には、図１１中（Ｂ）に示すように、バス８を介して、受信したパケットを送信先の他の情報処理装置２ａへ送信する。
パケット受信部２０８は、図１１中（Ｃ）に示すように、バス８を介してパケットを受信した場合には、受信したパケットを判定部１４に転送する。判定部１４は、受信したパケットのフラグ領域に「１」が格納されているか否かを判定する。【００７９】
そして、判定部１４は、パケットのフラグ領域に「１」が格納されている場合には、パケットに格納されていたデータがキャッシュメモリ５に格納するデータであると判定する。また、判定部１４は、パケットのフラグ領域に「０」が格納されている場合には、パケットに格納されていたデータをメモリ６に格納するデータであると判定する。その後、判定部１４は、判定した内容とパケットに格納されていたデータとをパディング付加部２０７に送信する。【００８０】
パディング付加部２０７は、パケット受信部２０８によって受信されたデータに対してパディングを付加することによりパディング付きデータを作成する。パディング付加部２０７は、判定部１４を介して受け取ったパディング情報においてパディングフラグとして「１（有効）」が設定されている場合に、データがアラインサイズにアラインするように、パディングを付けることによりパディング付きデータを作成する。そして。パディング付加部２０７は、この作成したパディング付きデータをＤＭＡ書き込みデータとしてＤＭＡコントローラ２０４に送る。【００８１】
また、パディング情報においてパディングフラグとして「１（有効）」が設定されていない場合には、パディング付加部２０７は、パケット受信部２０８が受信したデータを、ＤＭＡ書き込みデータとしてＤＭＡコントローラ２０４に送る。
ＤＭＡコントローラ２０４（格納部）は、パケットに格納されていたデータがキャッシュメモリ５に格納するデータであると判定部１４が判定した場合には、以下の処理を実行する。すなわち、ＤＭＡコントローラ２０４は、図１１中（Ｄ）に示すようにパディング付加部２０７から送られたＤＭＡデータを、キャッシュメモリ５とメモリ６とに格納するデータとしてプロセッサコア４に送信する。【００８２】
また、ＤＭＡコントローラ２０４は、パケットに格納されていたデータをメモリ６に格納するデータであると判定部１４が判定した場合には、パディング付加部２０７から送られたＤＭＡデータをメモリ６に格納するデータとしてプロセッサコア４に送信する。
具体的には、ＤＭＡコントローラ２０４は、パケットのフラグ領域に「１」が格納されていた場合には、パディング付加部２０７から受信したデータとデータをキャッシュメモリ５に格納する旨の通知とをプロセッサコア４に送信する。また、ＤＭＡコントローラ２０４は、パケットのフラグ領域に「０」が格納されていた場合には、パディング付加部２０７から受信したデータをプロセッサコア４に送信する。つまり、ＤＭＡコントローラ２０４は、メモリ６に格納するデータとしてパディング付加部２０７から受信したデータをプロセッサコア４に送信する。【００８３】
そして、前述の如く、パケット受信部２０８が受信したデータがアラインされていないものであった場合には、パディング付加部２０７が、このデータのペイロードに対してパディングを付加したパディング付きデータを作成する。通信装置１０はこのパディング付きデータをプロセッサコア４に送信する。
また、パケット受信部２０８が受信したデータがアラインされているものであった場合には、パディング付加部２０７は、パケット受信部２０８が受信したデータを、プロセッサコア４に送信する。【００８４】
すなわち、通信装置１０は、プロセッサコア４に対してアラインされたデータ（アライン済みデータ）を送信する。
上述したように、通信装置１０は、他の情報処理装置２ａが有するプロセッサコアが待ち合わせているデータ、つまりポーリング対象となるデータを送信する場合には、以下の処理を実行する。すなわち、通信装置１０は、送信するパケットのフラグ領域に制御情報として「１」を格納し、送信先の他の情報処理装置２ａへ送信する。また、情報処理装置２ａを初めとする他の情報処理装置が有する通信装置も、プロセッサコア４が待ち合わせているデータを送信する場合には、フラグ領域に「１」を格納したパケットを送信する。【００８５】
また、通信装置１０は、送信するデータ（パケット）のアラインサイズの領域にアラインサイズを格納する。更に、通信装置１０は、送信するデータがアラインサイズにアラインされていない場合には、パディングフラグの領域に「１」を格納して送信する。又、通信装置１０は、送信するデータがアラインサイズにアラインされている場合には、パディングフラグの領域に「０」を格納して送信する。【００８６】
そして、通信装置１０は、受信したパケットのフラグ領域に「１」が格納されている場合には、受信したパケットに格納されたデータをキャッシュメモリ５に書き込むべきデータとしてパディング付加部２０７に送信する。
パディング付加部２０７は、パディングフラグに「１」が格納されている場合には、受信したパケットに対して、アラインサイズに合わせたパディングを付加して、ＤＭＡコントローラ２０４に送信する。【００８７】
ＤＭＡコントローラ２０４は、パディング付加部２０７から受信したパケットをキャッシュメモリ５に書き込むべきデータとしてプロセッサコア４に送信する。
プロセッサコア４は、メモリ６に格納されているデータのうち受信したデータを書き込むべきメモリアドレスに格納されたデータをキャッシュメモリ５にキャッシュしている場合には、通信装置１０から受信したデータをキャッシュメモリ５にキャッシュする。このため、プロセッサコア４は、待ち合わせていたデータをメモリ６ではなく、キャッシュメモリ５から読み出すことができるので、効率的に演算処理を実行することができる。【００８８】
また、この際、プロセッサコア４が受け取るＤＭＡ書き込みデータは、アラインされたデータ（アライン済みデータ）であるので、キャッシュメモリ５に格納する際のレイテンシを小さくすることができる。
一方、通信装置１０は、受信したパケットのフラグ領域に「０」が格納されている場合には、受信したパケットに格納されたデータをメモリ６に書き込むべきデータとしてパディング付加部２０７に送信する。【００８９】
パディング付加部２０７は、パディングフラグに「１」が格納されている場合には、受信したパケットに対して、アラインサイズに合わせたパディングを付加して、ＤＭＡコントローラ２０４に送信する。
ＤＭＡコントローラ２０４は、パディング付加部２０７から受信したパケットをメモリ６に書き込むべきデータとしてプロセッサコア４に送信する。【００９０】
このような場合には、プロセッサコア４は、データをメモリ６に書き込む。つまり、情報処理装置２は、プロセッサコア４が待ち合わせているデータを他の情報処理装置２ａから受信した場合にのみプロセッサコア４が有するキャッシュメモリ５に格納し、それ以外のデータについてはメモリ６に格納する。このため、演算に使用するか不明なデータによってキャッシュメモリ５に格納された演算に使用するデータが吐き出されることが防がれる結果、並列計算機システム１は、計算処理速度の低下を防ぐことができる。【００９１】
また、この際、プロセッサコア４が受け取るＤＭＡ書き込みデータは、アラインされたデータ（アライン済みデータ）であるので、キャッシュメモリ５に格納する際のレイテンシを小さくすることができる。
例えば、プロセッサ３、プロセッサコア４、制御部２０５、パケット送信部２０６、パケット受信部２０８、判定部１４、パディング付加部２０７及びＤＭＡコントローラ２０４は、ＬＳＩなどの集積回路により実現される。
［通信装置１０の処理の流れ］
次に、図１３を用いて、通信装置１０が実行する処理の流れについて説明する。図１３は、第３実施形態の実施例１に関わる通信装置が実行する処理の流れを説明するためのフローチャートである。図１３に示す例では、通信装置１０は、バス８を介して情報処理装置２を送信先とするパケットを受信したことをトリガとして処理を開始する。【００９２】
まず、通信装置１０は、受信したパケットのフラグ領域に「１」が格納されているか否かを判定する（ステップＳ１０１）。そして、通信装置１０は、受信したパケットのフラグ領域に「１」が格納されている場合には（ステップＳ１０１のＹＥＳルート参照）、受信したパケットに格納されていたデータをキャッシュメモリ５に格納するデータとしてプロセッサコア４へ送信する（ステップＳ１０２）。又、この際、パディング付加部２０７は、パディングフラグに「１」が格納されている場合には、受信したパケットに対して、アラインサイズに合わせたパディングを付加して、ＤＭＡ書き込みデータを作成する。パディング付加部２０７は、作成したＤＭＡ書き込みデータをＤＭＡコントローラ２０４に送信し、ＤＭＡコントローラ２０４は、ＤＭＡ書き込みデータをキャッシュメモリ５に格納するデータとしてプロセッサコア４へ送信する。なお、パディングフラグに「０」が格納されている場合には、パディング付加部２０７は、受信したパケットに対して、アラインサイズに合わせたパディングを付加することなく、受信したパケットに格納されていたデータをＤＭＡ書き込みデータとしてＤＭＡコントローラ２０４に送信する。ＤＭＡコントローラ２０４は、ＤＭＡ書き込みデータをキャッシュメモリ５に格納するデータとしてプロセッサコア４へ送信する。【００９３】
一方、通信装置１０は、受信したパケットのフラグ領域に「０」が格納されている場合には（ステップＳ１０１のＮＯルート参照）、受信したパケットに格納されていたデータをメモリ６に格納するデータとしてプロセッサコア４へ送信する（ステップＳ１０３）。その後、通信装置１０は、処理を終了する。又、この際、パディング付加部２０７は、パディングフラグに「１」が格納されている場合には、受信したパケットに対して、アラインサイズに合わせたパディングを付加して、ＤＭＡ書き込みデータを作成する。パディング付加部２０７は、作成したＤＭＡ書き込みデータをＤＭＡコントローラ２０４に送信し、ＤＭＡコントローラ２０４は、ＤＭＡ書き込みデータをメモリ６に格納するデータとしてプロセッサコア４へ送信する。なお、パディングフラグに「０」が格納されている場合には、パディング付加部２０７は、受信したパケットに対して、アラインサイズに合わせたパディングを付加することなく、受信したパケットに格納されていたデータをＤＭＡ書き込みデータとしてＤＭＡコントローラ２０４に送信する。ＤＭＡコントローラ２０４は、ＤＭＡ書き込みデータをメモリ６に格納するデータとしてプロセッサコア４へ送信する。
［第３実施形態の実施例１の効果］
上述したように、情報処理装置２は、他の情報処理装置２ａからデータを受信した場合には、受信したデータをプロセッサコア４が待ち合わせているか否かを判定する。そして、情報処理装置２は、受信したデータをプロセッサコア４が待ち合わせていると判定した場合には、受信したデータをキャッシュメモリ５に格納する。また、情報処理装置２は、受信したデータをプロセッサコア４が待ち合わせていないと判定した場合には、受信したデータをキャッシュメモリ５ではなくメモリ６に格納する。【００９４】
このため、情報処理装置２は、プロセッサコア４が演算に利用しないデータを受信した際に、キャッシュメモリ５に格納されたデータの吐き出しを防止する。この結果、並列計算機システム１は、各情報処理装置２、２ａが有するプロセッサコアがキャッシュメモリに格納されたデータを用いて効率的な処理を実行することができるので、計算処理速度の低下を防止することができる。【００９５】
また、各情報処理装置２、２ａは、他の情報処理装置が有するプロセッサコアが待ち合わせているデータを送信する場合には、送信するパケットにプロセッサコアが待ち合わせている旨を示す制御情報を格納する。そして、各情報処理装置２、２ａは、受信したパケットに制御情報が格納されていた場合には、受信したパケットのデータをキャッシュメモリ５に格納する。また、各情報処理装置２、２ａは、受信したパケットに制御情報が格納されていない場合には、受信したパケットのデータをメモリ６に格納する。このため、各情報処理装置２、２ａは、受信したデータをキャッシュメモリに格納すべきか否かを容易に判定することができる。【００９６】
そして、パディング付加部２０７が、受信したデータに付加されているパディング情報を参照して、パディングフラグが有効である場合にペイロードにパディングを付加してパディング付きデータを作成する。ＤＭＡコントローラ２０４が、このパディング付きデータをキャッシュメモリ５やメモリ６に書き込む。これにより、受信したデータがアラインされていない場合であっても、キャッシュメモリ５やメモリ６への書き込みを行なう際のレイテンシを小さくすることができる。【００９７】
（Ｃ−２）実施例２
第３実施形態の実施例２では、複数のプロセッサコアを有するプロセッサが設置された情報処理装置を複数有する並列計算機システムについて説明する。図１４は、第３実施形態の実施例２に関わる並列計算機システムの一例を説明するための図である。図１４に示す例では、並列計算機システム１ａは、複数の情報処理装置２ｂ、２ｃを有する。なお、情報処理装置２ｃは、情報処理装置２ｂと同様の処理を実行するものとして、説明を省略する。【００９８】
また、情報処理装置２ｂが有する各部のうち、情報処理装置２が有する各部と同様の機能を発揮するものについては、同じ符号を付し、以下の説明を省略する。
情報処理装置２ｂは、プロセッサ３ａを有する。また、プロセッサ３ａは、複数のプロセッサコア４ａ〜４ｃを有する。なお、プロセッサ３ａ内のプロセッサコアは、任意の数が適用可能である。各プロセッサコア４ａ〜４ｃは、それぞれキャッシュメモリ５ａ〜５ｃを有する。なお、以下の説明においては、プロセッサコア４ｂ、４ｃはプロセッサコア４ａと同様の機能を発揮するものとし、説明を省略する。また、キャッシュメモリ５ｂ、５ｃは、キャッシュメモリ５ａと同様の機能を発揮するものとして、説明を省略する。【００９９】
キャッシュメモリ５ａは、第３実施形態の実施例１に関わるキャッシュメモリ５と同様に、状態データ、タグデータおよびデータを格納する複数のキャッシュラインを有する。ここで、キャッシュメモリ５は、タグ情報と同じキャッシュラインに格納されたデータと他のキャッシュメモリ５ｂ、５ｃに格納されたデータとメモリ６に格納されたデータとの関係を示す同一性情報が格納される。【０１００】
例えば、キャッシュメモリ５は、状態データとしてＭＥＳＩプロトコル（イリノイ・プロトコル）に基づくキャッシュラインの状態を示す情報を格納する。詳細には、状態データに「Ｍ：Ｍｏｄｉｆｙ」が格納されている場合には、同じキャッシュラインに格納されたデータを排他的にキャッシュしており、かつ、キャッシュしたデータがプロセッサコア４ａによって最新の状態に更新されていることを示す。【０１０１】
また、状態データに「Ｅ：Ｅｘｃｌｕｓｉｖｅ」が格納されている場合には、同じキャッシュラインに格納されたデータを排他的にキャッシュしており、かつ、キャッシュしたデータがプロセッサコア４ａによって更新されていない状態を示す。また、状態データに「Ｓ：Ｓｈａｒｅｄ」が格納されている場合には、他のキャッシュメモリ５ｂ、５ｃが同一の共有データをキャッシュしていることを示す。また、状態データに「Ｉ：Ｉｎｖａｌｉｄ」が格納されている場合には、同一キャッシュラインのデータが無効であることを示す。【０１０２】
プロセッサコア４ａは、各プロセッサコア４ａ〜４ｃが待ち合わせていないデータを通信装置１０ａが受信した場合には、受信したデータをメモリ６に格納する。また、プロセッサコア４ａは、通信装置１０ａが受信したデータが、自身が待ち合わせているデータであって、メモリ６のうち受信したデータを格納するメモリアドレスに格納されていたデータをキャッシュメモリ５ａに保持している場合には、以下の処理を実行する。【０１０３】
すなわち、プロセッサコア４ａは、キャッシュメモリ５ａに保持したデータを他のプロセッサコア４ｂ、４ｃがキャッシュしているか否かを判定し、保持していると判定した場合には、受信したデータをメモリ６に格納する。また、プロセッサコア４ａは、キャッシュメモリ５ａに保持したデータを他のプロセッサコア４ｂ、４ｃがキャッシュしていないと判定した場合には、受信したデータをキャッシュメモリ５ａのみに格納する。【０１０４】
また、通信装置１０ａが受信したデータがアラインされていないものであった場合には、パディング付加部２０７がペイロードにパディングを付加してパディング付きデータとし、このパディング付きデータが、キャッシュメモリ５ａ，５ｂ，５ｃやメモリ６に格納される。又、通信装置１０ａが受信したデータがアラインされたものであった場合には、このアラインされた状態でキャッシュメモリ５ａ，５ｂ，５ｃやメモリ６に格納される。すなわち、キャッシュメモリ５ａ，５ｂ，５ｃ及びメモリ６には、アラインされたデータが格納される。【０１０５】
次に、プロセッサコア４ａが実行する処理の一例を説明する。例えば、プロセッサコア４ａは、通信装置１０ａからデータをメモリ６に格納するデータとして受信した場合には、以下の処理を実行する。すなわち、プロセッサコア４ａは、キャッシュメモリ５ａのうち、受信したデータを格納するメモリ６のメモリアドレスのインデックスに対応するキャッシュラインの状態データを参照する。【０１０６】
そして、プロセッサコア４ａは、参照した状態データに「Ｍ」が格納されている場合には、参照した状態データと同じキャシュラインに格納されているデータをメモリ６へ書き出す。次に、プロセッサコア４ａは、参照した状態データを「Ｍ」から「Ｉ」に更新する。その後、プロセッサコア４ａは、受信したデータをメモリ６に格納する。また、プロセッサコア４ａは、参照した状態データが「Ｍ」以外である場合には、参照した状態データを「Ｉ」に更新し、受信したデータをメモリ６に格納する。そして、メモリ６に書き込まれるデータは、アラインされたデータである。【０１０７】
一方、プロセッサコア４ａは、通信装置１０ａからデータをキャッシュメモリに格納するデータとして受信した場合には、以下の処理を実行する。すなわち、プロセッサコア４ａは、キャッシュメモリ５ａのうち、受信したデータを格納するメモリ６のメモリアドレスのインデックスに対応するキャッシュラインの状態データとタグデータとを参照する。
そして、プロセッサコア４ａは、参照した状態データに「Ｉ」が格納されていた場合、又は、受信したデータを格納するメモリアドレスのタグと参照したタグデータとが一致しない場合には、受信したデータをメモリ６に格納する。このメモリ６に書き込まれるデータもアラインされたデータである。【０１０８】
また、プロセッサコア４ａは、参照した状態データに「Ｓ」が格納され、かつ、受信したデータを格納するメモリアドレスのタグと参照したタグデータとが一致した場合には、受信したデータをメモリ６に格納し、参照した状態データを「Ｓ」から「Ｉ」に更新する。
また、プロセッサコア４ａは、参照した状態データが「Ｍ」または「Ｅ」で、かつ、受信したデータを格納するメモリアドレスのタグと参照したタグデータとが一致した場合には、以下の処理を実行する。すなわち、プロセッサコア４ａは、受信したデータをキャッシュメモリ５ａに格納し、参照した状態データを「Ｍ」に更新する。又、キャッシュメモリ５に書き込まれるデータもアラインされたデータである。【０１０９】
つまり、各プロセッサコア４ａ〜４ｃは、キャッシュメモリに格納するデータとして通信装置１０ａからデータを受信した場合には、受信したデータを格納するメモリアドレスのインデックスに対応するキャッシュラインの状態データとタグデータとを参照する。そして、各プロセッサコア４ａ〜４ｃは、参照した状態データとタグデータとから、受信したデータが、自身のポーリング処理の対象となるデータであって、受信したデータを格納するメモリアドレスに格納されていたデータを自身のキャッシュメモリが保持しているか否かを判別する。つまり、各プロセッサコア４ａ〜４ｃは、自身のキャッシュメモリに対してポーリング処理を行っているか否かを判別する。【０１１０】
通信装置１０ａは、情報処理装置２ｃを初めとする他の情報処理装置からパケットを受信した場合には、受信したパケットのフラグ領域に「１」が格納されているか否かを判定する。そして、通信装置１０ａは、受信したパケットのフラグ領域に「１」が格納されていた場合には、以下の処理を実行する。すなわち、通信装置１０ａは、受信したデータを各プロセッサコア４ａ〜４ｃに対して、キャッシュメモリに保持するデータとして受信したデータを送信する。又、この際、通信装置１０ａにおいて、判定部１４を介して受け取ったパディング情報においてパディングフラグとして「１（有効）」が設定されている場合に、パディング付加部２０７が、データがアラインサイズにアラインするようにパディングを付けることによりパディング付きデータを作成する。通信装置１０ａはこのパディング付きデータを各プロセッサコア４ａ〜４ｃに対して、キャッシュメモリ５ａ〜５ｃに保持するデータとして送信する。【０１１１】
また、パディング情報においてパディングフラグとして「０（無効）」が設定されている場合には、パディング付加部２０７は、パケット受信部２０８が受信したデータを各プロセッサコア４ａ〜４ｃに対して、キャッシュメモリ５ａ〜５ｃに保持するデータとして送信する。
一方、通信装置１０ａは、受信したパケットのフラグ領域に「０」が格納されている場合には、受信したデータをメモリ６に格納するデータとして、各プロセッサコア４ａ〜４ｃに送信する。又、この際、通信装置１０ａにおいて、判定部１４を介して受け取ったパディング情報においてパディングフラグとして「１（有効）」が設定されている場合に、パディング付加部２０７が、データがアラインサイズにアラインするようにパディングを付けることによりパディング付きデータを作成する。通信装置１０ａはこのパディング付きデータを各プロセッサコア４ａ〜４ｃに対して、メモリ６に保持するデータとして送信する。【０１１２】
また、パディング情報においてパディングフラグとして「０（無効）」が設定されている場合には、パディング付加部２０７は、パケット受信部２０８が受信したデータを各プロセッサコア４ａ〜４ｃに対して、メモリ６に保持するデータとして送信する。
次に、図１５を用いて、通信装置１０ａが有する各部について説明する。図１５は、第３実施形態の実施例２に関わる通信装置を説明するための図である。図１５に示す例では、通信装置１０ａは、制御部２０５（パケット生成部）、パケット送信部２０６、パケット受信部２０８、判定部１４、パディング付加部２０７及びＤＭＡコントローラ２０４ａ（格納部）を有する。【０１１３】
パディング付加部２０７は、判定部１４を介して受け取ったパディング情報においてパディングフラグとして「１」が設定されている場合に、データがアラインサイズにアラインするようにパディングを付けることによりパディング付きデータを作成する。パディング付加部２０７は、この作成したパディング付きデータをＤＭＡコントローラ２０４に送信する。【０１１４】
また、パディング情報においてパディングフラグとして「０」が設定されている場合には、パディング付加部２０７は、パケット受信部２０８が受信したデータをＤＭＡコントローラ２０４に送信する。
ＤＭＡコントローラ２０４ａは、判定部１４がパケットのフラグ領域に「１」が格納されていると判定した場合には、図１５中（Ａ）に示すように、キャッシュメモリ５ａ〜５ｃにキャッシュするデータとして受信したデータを各プロセッサコア４ａ〜４ｃへ送信する。つまり、ＤＭＡコントローラ２０４ａは、判定部１４がパケットのフラグ領域に「１」が格納されていると判定した場合には、受信したデータを格納するメモリ６のメモリアドレスに格納されていたデータを保持しているキャッシュメモリに受信したデータを格納する。【０１１５】
また、ＤＭＡコントローラ２０４ａは、判定部１４がパケットのフラグ領域に「０」が格納されていると判定した場合には、図１５中（Ａ）に示すように、メモリ６に格納するデータとして受信したデータを各プロセッサコア４ａ〜４ｃへ送信する。つまり、ＤＭＡコントローラ２０４ａは、判定部１４がパケットのフラグ領域に「０」が格納されていると判定した場合には、受信したデータをメモリ６に格納する。
［第３実施形態の実施例２の効果］
上述したように、情報処理装置２ｂは、複数のプロセッサコア４ａ〜４ｃを有するプロセッサ３ａを有する。また、各プロセッサコア４ａ〜４ｃは、それぞれキャッシュメモリ５ａ〜５ｃを有する。そして、情報処理装置２ｂは、情報処理装置２ｃを初めとする他の情報処理装置からパケットを受信した場合には、受信したパケットのフラグ領域に制御情報として「１」が格納されているか否かを判定する。そして、情報処理装置２ｂは、制御情報として「１」が格納されている場合には、受信したパケットのデータを格納するメモリ６のメモリアドレスに格納されていたデータをキャッシュしているキャッシュメモリに受信したパケットのデータを格納する。また、情報処理装置２ｂは、制御情報として「０」が格納されている場合には、受信したパケットのデータをメモリ６に格納する。【０１１６】
このため、情報処理装置２ｂは、各プロセッサコア４ａ〜４ｃによるポーリング処理の対象とするデータを受信した場合には、受信したデータをキャッシュメモリ５ａ〜５ｃに直接格納することができる。このため、情報処理装置２ｂは、プロセッサ３ａが複数のプロセッサコア４ａ〜４ｃを有するマルチコアプロセッサである場合にも、プロセッサ３ａが実行する演算処理を効率的に行わせることができる。【０１１７】
また、情報処理装置２ｂは、各プロセッサコア４ａ〜４ｃによるポーリング処理の対象ではないデータを受信した場合には、受信したデータをメモリ６に格納する。このため、情報処理装置２ｂは、各プロセッサコア４ａ〜４ｃが演算処理に利用するデータが受信したデータによってキャッシュメモリ５ａ〜５ｃから吐き出されることを防ぐことができる。このため、並列計算機システム１ａは、計算処理速度を低下させることなく、プロセッサ３ａに効率的な演算処理を実行させることができる。【０１１８】
また、各キャッシュメモリ５ａ〜５ｃは、自身に保持したデータと他のキャッシュメモリ５ａ〜５ｃに保持されたデータとメモリ６に格納されたデータとの関係を示す同一性情報が格納される。そして、各プロセッサコア４ａ〜４ｃは、キャッシュメモリに格納するデータとしてデータを受信した場合には、自身のキャッシュメモリ５ａ〜５ｃにキャッシュしたデータと、受信したデータを格納するメモリアドレスのデータとの同一性情報をそれぞれ保持する。【０１１９】
この際、各プロセッサコア４ａ〜４ｃは、自身のキャッシュメモリ５ａ〜５ｃに格納された同一性情報に基づいて、キャッシュしたデータとメモリ６に格納されているデータとの同一性を保持する。その後、各プロセッサコア４ａ〜４ｃは、通信装置１０から受信したデータをキャッシュメモリ５ａ〜５ｃに格納する。このため、並列計算機システム１ａは、各プロセッサコア４ａ〜４ｃが独自のキャッシュメモリ５ａ〜５ｃを有する場合にも、データのコヒーレンシを保持し、適切な演算処理を各情報処理装置２ｂ、２ｃに実行させることができる。【０１２０】
そして、パディング付加部２０７が、受信したデータに付加されているパディング情報を参照して、パディングフラグが有効である場合にペイロードにパディングを付加してパディング付きデータを作成する。ＤＭＡコントローラ２０４が、このパディング付きデータをキャッシュメモリ５ａ〜５ｃやメモリ６に書き込ませる。これにより、受信したデータがアラインされていない場合であっても、キャッシュメモリ５ａ〜５ｃやメモリ６への書き込みを行なう際のレイテンシを短くすることができる。【０１２１】
（Ｃ−３）実施例３
第３実施形態の実施例３では、それぞれ独自のＬ１キャッシュメモリを有する複数のプロセッサコアと各プロセッサコアが共用する１つのＬ２キャッシュメモリを有するプロセッサが設置された情報処理装置を複数有する並列計算機システムについて説明する。図１６は、第３実施形態の実施例３に関わる並列計算機システムの一例を説明するための図である。図１６に示す例では、並列計算機システム１ｂは、複数の情報処理装置２ｅ、２ｆを有する。なお、情報処理装置２ｆは、情報処理装置２ｅと同様の処理を実行するものとして、説明を省略する。【０１２２】
また、並列計算機システム１ｂが有する各部のうち、並列計算機システム１ａが有する各部と同様の機能を発揮するものについては、同じ符号を付し、以下の説明を省略する。
情報処理装置２ｅは、プロセッサ３ｂを有する。また、プロセッサ３ｂは、複数のプロセッサコア４ｄ〜４ｆと各プロセッサコア４ｄ〜４ｆが共用するレベル２キャッシュメモリ７を有する。また、各プロセッサコア４ｄ〜４ｆは、それぞれレベル１キャッシュメモリ５ｄ〜５ｆを有する。なお、各プロセッサコア４ｅ、４ｆは、プロセッサコア４ｄと同様の機能を発揮するものとし、説明を省略する。【０１２３】
本第３実施形態の実施例３においても、通信装置１０ａにおいて、判定部１４を介して受け取ったパディング情報においてパディングフラグとして「１（有効）」が設定されている場合に、パディング付加部２０７が、データがアラインサイズにアラインするようにパディングを付けることによりパディング付きデータを作成する。通信装置１０ａはこのパディング付きデータを各プロセッサコア４ｄ〜４ｆに対して、レベル１キャッシュメモリ５ｄ〜５ｆもしくはメモリ６に保持するデータとして送信する。【０１２４】
また、パディング情報においてパディングフラグとして「０（無効）」が設定されている場合には、パディング付加部２０７は、パケット受信部２０８が受信したデータを各プロセッサコア４ｄ〜４ｆに対して、レベル１キャッシュメモリ５ｄ〜５ｆもしくはメモリ６に保持するデータとして送信する。
すなわち、通信装置１０ａは、プロセッサコア４ｄ〜４ｆに対してアラインされたデータを送信する。【０１２５】
各レベル１キャッシュメモリ５ｄ〜５ｆは、ラインサイズ６４バイトのキャッシュラインを複数有する。各レベル１キャッシュメモリ５ｄ〜５ｆは、「２Ｎ１」個のキャッシュラインを有し、各キャッシュラインに「２」ビットの状態データ、「３４−Ｎ１」ビットのタグデータ、６４バイトのデータを格納する「２Ｎ１＋６」バイトのキャッシュメモリである。ここで、「Ｎ１」とは、各レベル１キャッシュメモリ５ｄ〜５ｆが、自身の各キャッシュラインと対応付けるインデックスのサイズである。【０１２６】
なお、各レベル１キャッシュメモリ５ｄ〜５ｆの各キャッシュラインに格納される各情報は、キャッシュメモリ５ａ〜５ｃが有する各キャッシュラインに格納される各情報と同様の情報であるものとする。また、各レベル１キャッシュメモリ５ｄ〜６ｆの各キャッシュラインに格納される状態データは、以下の同一性を示す同一性情報である。すなわち状態データは、同一キャッシュラインに格納されたデータと、他のレベル１キャッシュメモリ５ｄ〜５ｆに格納されたデータと、レベル２キャッシュメモリ７に格納されたデータとの同一性を示す。【０１２７】
レベル２キャッシュメモリ７は、各レベル１キャッシュメモリ５ｄ〜５ｆと同様に、それぞれ６４ビットのデータを格納する「２Ｎ２」個のキャッシュラインを有する。また、レベル２キャッシュメモリ７は、各キャッシュラインに「２」ビットの状態データ、「３４−Ｎ２」ビットのタグデータ、６４バイトのデータを格納する「２Ｎ２＋６」バイトのキャッシュメモリである。ここで、「Ｎ２」は、レベル２キャッシュメモリ７が自身の各キャッシュラインと対応付けるインデックスのサイズである。また、レベル２キャッシュメモリ７の各キャッシュラインに格納される状態データは、同一キャッシュラインに格納されたデータと、メモリ６に格納されたデータとの同一性を示す。従って、レベル２キャッシュメモリ７に格納されるデータもアラインされているデータである。【０１２８】
なお、各レベル１キャッシュメモリ５ｄ〜５ｆ、および、レベル２キャッシュメモリ７は、ダイレクトマップ方式のキャッシュメモリである。例えば、各レベル１キャッシュメモリ５ｄ〜５ｆ、および、レベル２キャッシュメモリ７は、メモリ６のメモリアドレス「ｉ」に格納されたデータを保持する場合には、キャッシュライン番号が「ｉ」のキャッシュラインにデータを保持するものとする。【０１２９】
プロセッサコア４ｄは、各プロセッサコア４ｄ〜４ｆが待ち合わせていないデータを通信装置１０ａが受信した場合には、受信したデータをメモリ６に格納する。また、プロセッサコア４ｄは、自身が待ち合わせているデータを通信装置１０ａが受信した場合には、以下の処理を実行する。すなわち、プロセッサコア４ｄは、メモリ６のうち、受信したデータを格納するメモリアドレスが示す格納領域に格納されていたデータを１次キャッシュメモリとしてのレベル１キャッシュメモリ５ｄにキャッシュしているか判定する。【０１３０】
そして、プロセッサコア４ｄは、メモリアドレスが示すメモリ６の格納領域に格納されていたデータをレベル１キャッシュメモリ５ｄに保持していると判定した場合には、受信したデータをレベル１キャッシュメモリ５ｄにキャッシュする。なお、キャッシュメモリ５に書き込まれるデータはアラインされたデータであり、レイテンシを小さくすることができる。【０１３１】
また、プロセッサコア４ｄは、メモリアドレスが示すメモリ６の格納領域に格納されていたデータをレベル１キャッシュメモリ５ｄに保持していないと判定した場合には、受信したデータをメモリ６に格納する。なお、メモリ６に書き込まれるデータもアラインされたデータであり、これによってもレイテンシを小さくすることができる。
次に、プロセッサコア４ｄが実行する処理の一例を説明する。例えば、プロセッサコア４ｄは、通信装置１０ａからデータをメモリ６に格納するデータとして受信した場合には、以下の処理を実行する。すなわち、プロセッサコア４ｄは、レベル１キャッシュメモリ５ｄのうち、受信したデータが格納されるメモリアドレスのインデックスと対応するキャッシュラインに格納された状態データを参照する。そして、プロセッサコア４ｄは、参照した状態データが「Ｍ」である場合には、参照した状態データと同一キャッシュラインのデータをメモリ６に書き出し、参照した状態データを「Ｉ」に更新する。そして、プロセッサコア４ｄは、受信したデータをメモリ６に格納する。そして、メモリ６に書き込まれるデータはアラインされたデータである。【０１３２】
一方、プロセッサコア４ｄは、通信装置１０ａからデータをキャッシュメモリ５ｄ〜５ｆに格納するデータとして受信した場合には、以下の処理を実行する。すなわち、プロセッサコア４ｄは、受信したデータを格納するメモリアドレスのインデックスと対応するキャッシュラインのうち、状態データとタグデータとを参照する。そして、プロセッサコア４ｄは、参照した状態データに「Ｉ」が格納されている場合、または、参照したタグデータが受信したデータを格納するメモリアドレスのタグと異なる場合には、受信したデータをメモリ６に格納する。このメモリ６に書き込まれるデータもアラインされたデータである。【０１３３】
また、プロセッサコア４ｄは、参照した状態データに「Ｓ」が格納され、かつ、参照したタグデータが受信したデータを格納するメモリアドレスのタグと一致する場合には、受信したデータをメモリ６に格納するとともに、参照した状態データを「Ｉ」に更新する。また、プロセッサコア４ｄは、参照した状態データに「Ｍ」又は「Ｅ」が格納され、かつ、参照したタグデータが受信したデータを格納するメモリアドレスのタグと一致する場合には、以下の処理を実行する。すなわち、プロセッサコア４ｄは、受信したデータを自身が有するキャッシュメモリ、すなわちレベル１キャッシュメモリ５ｄに格納し、参照した状態データを「Ｍ」に更新する。この際、プロセッサコア４ｄは、受信したデータをメモリ６には格納しない。そして、キャッシュメモリ５ｄに書き込まれるデータは、アラインされたデータである。【０１３４】
なお、プロセッサコア４ｄは、受信したデータをメモリ６に格納する場合には、書き込みに先立って、キャッシュメモリ５ａ〜５ｃとメインメモリ６間のデータの整合性であるデータのコヒーレンシを保持する処理を実行する。すなわち、プロセッサコア４ｄは、レベル２キャッシュメモリ７のうち、受信したデータを格納するメモリアドレスのインデックスに対応するキャッシュラインの状態データとタグデータとを参照する。そして、プロセッサコア４ｄは、参照した状態データが「Ｍ」であり、タグデータが受信したデータを格納するメモリアドレスのタグと一致する場合には、参照した状態データと同じキャッシュラインに格納されているデータをメモリ６に格納する。その後、プロセッサコア４ｄは、参照した状態データを「Ｉ」に更新し、さらに、受信したデータをメモリ６に格納する。そして、これらのメモリ６に書き込まれるデータもアラインされたデータである。【０１３５】
つまり、プロセッサコア４ｄは、プロセッサコア４ｄ〜４ｆのいずれかがポーリング処理の対象とする情報を通信装置１０ａが受信した場合には、受信したデータをレベル１キャッシュメモリ５ｄに格納するデータとして受信する。このような場合には、プロセッサコア４ｄは、受信したデータを格納するメモリ６の格納領域に格納されていたデータをレベル１キャッシュメモリ５ｄに排他的にキャッシュしているか否かを判定する。そして、プロセッサコア４ｄは、受信したデータを格納するメモリ６の格納領域に格納されていたデータをレベル１キャッシュメモリ５ｄに排他的にキャッシュしている場合には、受信したデータをレベル１キャッシュメモリ５ｄにキャッシュする。又、このキャッシュメモリ５ｄに書き込まれるデータもアラインされたデータである。【０１３６】
通常、プロセッサコア４ｄは、ポーリング処理の対象となるデータが格納されるメモリアドレスのデータがキャッシュされている。このため、情報処理装置２ｅは、通信装置１０ａによってプロセッサコア４ｄが待ち合わせているデータを受信した場合には、受信したデータをメモリ６ではなく、レベル１キャッシュメモリ５ｄに格納する。この結果、並列計算機システム１ｂは、各情報処理装置２ｅ、２ｆに、効率的に処理を実行させることができる。
［第３実施形態の実施例３の効果］
上述したように、情報処理装置２ｅは、複数のプロセッサコア４ｄ〜４ｆを有するプロセッサ３ｂを有する。また、各プロセッサコア４ｄ〜４ｆは、それぞれレベル１キャッシュメモリ５ｄ〜５ｆを有する。そして、情報処理装置２ｅは、情報処理装置２ｆを初めとする他の情報処理装置からパケットを受信した場合には、受信したパケットのフラグ領域に制御情報として「１」が格納されているか否かを判定する。【０１３７】
そして、情報処理装置２ｅは、制御情報として「１」が格納されている場合には、受信したデータを格納するメモリアドレスのデータをキャッシュしているレベル１キャッシュメモリ５ｄ〜５ｆに受信したデータを格納する。また、情報処理装置２ｅは、制御情報として「０」が格納されている場合には、受信したパケットのデータをメモリ６に格納する。【０１３８】
このため、情報処理装置２ｅは、各プロセッサコア４ｄ〜４ｆによるポーリング処理の対象とするデータを受信した場合には、受信したデータをレベル１キャッシュメモリ５ｄ〜５ｆに直接格納することができる。このため、情報処理装置２ｅは、プロセッサ３ｂが実行する演算処理を効率的に行わせることができる。
また、情報処理装置２ｅは、各プロセッサコア４ｄ〜４ｆによるポーリング処理の対象ではないデータを受信した場合には、受信したデータをメモリ６に格納する。このため、情報処理装置２ｅは、各プロセッサコア４ｄ〜４ｆが演算処理に利用するデータが受信したデータによってレベル１キャッシュメモリ５ｄ〜５ｆから吐き出されることを防ぐことができる。このため、並列計算機システム１ｂは、計算処理速度を低下させることなく、効率的な演算処理を実行することができる。【０１３９】
また、各レベル１キャッシュメモリ５ｄ〜５ｆは、自身にキャッシュされたデータと他のレベル１キャッシュメモリ５ｄ〜５ｆに格納されたデータとレベル２キャッシュメモリ７に格納されたデータとの関係を示す状態データである第１同一性情報が格納される。また、レベル２キャッシュメモリ７には、自身にキャッシュされたデータとメモリ６にキャッシュされたデータとの関係を示す状態データである第２同一性情報が格納される。そして、各プロセッサコア４ｄ〜４ｆは、第１同一性情報および第２同一性情報に基づいて、レベル１キャッシュメモリ５ｄ〜５ｆに格納されたデータとレベル２キャシュメモリ７に格納されたデータとメモリ６に格納されたデータとの同一性を保持する。【０１４０】
このため、並列計算機システム１ｂは、各プロセッサコア４ｄ〜４ｆが独自のレベル１キャッシュメモリ５ｄ〜５ｆを有し、レベル２キャッシュメモリ７を共用する場合にも、データの同一性を適切に保持し、適切な演算処理を実行させることができる。
そして、パディング付加部２０７が、受信したデータに付加されているパディング情報を参照して、パディングフラグが有効である場合にペイロードにパディングを付加してパディング付きデータを作成する。ＤＭＡコントローラ２０４が、このパディング付きデータをレベル１キャッシュメモリ５ｄ〜５ｆやメモリ６に書き込ませる。これにより、受信したデータがアラインされていない場合であっても、レベル１キャッシュメモリ５ｄ〜５ｆやメモリ６への書き込みを行なう際のレイテンシを短くすることができる。【０１４１】
（Ｃ−４）実施例４
以下の第３実施形態の実施例４では、図１７を用いて、並列計算機システムの一例を説明する。図１７は、第３実施形態の実施例４に関わる並列計算機システムを説明するための図である。図１７に示すように、並列計算機システム１ｃは、複数の情報処理装置２ｆ、２ｇを有する。なお、図１７では省略したが、並列計算機システム１ｃは、さらに多数の情報処理装置を有するものとする。また、情報処理装置２ｇは、情報処理装置２ｆと同様の処理を実行するものとして、以下の説明を省略する。また、前述した第１〜３実施形態及び第３実施形態の実施例１〜４に関わる各部と同様の処理を実行するものについては、同一の符号を付すものとし、以下の説明を省略する。【０１４２】
情報処理装置２ｆは、プロセッサ３ｃ、メモリ６、通信装置１０ｂを有する。プロセッサ３ｃは、プロセッサコア４ｇを有する。プロセッサコア４ｇは、キャッシュメモリ５を有する。また、通信装置１０ｂは、書き込み先アドレステーブル１６を有する。
プロセッサコア４ｇは、第３実施形態の実施例１に関わるプロセッサコア４と同様の処理を実行する。つまり、プロセッサコア４ｇは、通信装置１０ｂからデータをメモリ６に格納するデータとして受信した場合には、プロセッサコア４と同様の処理を実行し、受信したデータをメモリ６に吐き出す。また、プロセッサコア４ｇは、通信装置１０ｂからデータをキャッシュメモリ５に格納するデータとして受信した場合には、プロセッサコア４と同様の処理を実行し、受信したデータをキャッシュメモリ５に格納する。このため、プロセッサコア４ｇがデータをキャッシュメモリ５またはメモリ６に格納する処理の説明については、省略する。【０１４３】
さらに、プロセッサコア４ｇは、受信データを待ち合わせるポーリング処理を実行する場合には、直前に、通信装置１０ｂの書き込み先アドレステーブル１６に、ポーリング処理の対象となるデータを格納するメモリ６のメモリアドレスを登録する。具体的には、プロセッサコア４ｇは、ポーリング処理の対象となるデータを格納するメモリ６のメモリアドレスを通信装置１０ｂに送信し、後述する通信装置１０ｂの更新部１７に、送信したメモリアドレスを書き込み先アドレステーブル１６に格納させる。【０１４４】
また、プロセッサコア４ｇは、ポーリング処理の対象とするデータを通信装置１０ｃから受信し、受信したデータをキャッシュメモリ５に格納した場合には、ポーリング処理の対象とするデータをキャッシュメモリ５に格納した旨を通信装置１０ｃへ通知する。例えば、プロセッサコア４ｇは、ポーリング処理の対象とするデータをキャッシュメモリ５に格納した旨とともに、キャッシュメモリ５に格納したデータを格納するメモリ６のメモリアドレスとを通信装置１０ｂに送信する。【０１４５】
通信装置１０ｂは、キャッシュメモリ５へのデータの書き込みを制御する制御アドレスを保持する書き込み先アドレステーブル１６を有する。そして、通信装置１０ｂは、情報処理装置２ｇを初めとする他の情報処理装置から受信したデータの書き込み先アドレスが、書き込み先アドレステーブル１６に保持された制御アドレスと一致する場合には、以下の処理を実行する。すなわち、通信装置１０ｂは、受信したデータをキャッシュメモリ５に格納するデータとしてプロセッサコア４ｇに送信する。【０１４６】
また、通信装置１０ｂは、受信したデータの書き込み先アドレスが、書き込み先アドレステーブル１６に保持された制御アドレスと一致しない場合には、受信したデータをメモリ６に格納するデータとしてプロセッサコア４ｇに送信する。
また、通信装置１０ｂは、プロセッサコア４ｇからポーリング処理の対象とするデータをキャッシュメモリ５に格納した旨の通知を受けた場合には、以下の処理を実行する。すなわち、通信装置１０ｂは、書き込み先アドレステーブル１６からキャッシュメモリ５に格納したデータを格納するメモリ６のメモリアドレスを削除する。【０１４７】
例えば、通信装置１０ｂは、プロセッサコア４ｇからポーリング処理の対象とするデータをキャッシュメモリ５に格納した旨とともに、キャッシュメモリ５に格納したデータを格納するメモリ６のメモリアドレスとを受信する。このような場合には、通信装置１０ｂは、受信したメモリアドレスを書き込み先アドレステーブル１６から検索し、検索したメモリアドレスを書き込み先アドレステーブル１６から削除する。【０１４８】
また、本第３実施形態の実施例４においても、通信装置１０ｂにおいて、判定部１４を介して受け取ったパディング情報においてパディングフラグとして「１（有効）」が設定されている場合に、パディング付加部２０７が、データがアラインサイズにアラインするようにパディングを付けることによりパディング付きデータを作成する。通信装置１０ｂはこのパディング付きデータをプロセッサコア４ｇに対して、キャッシュメモリ５もしくはメモリ６に保持するデータとして送信する。【０１４９】
また、パディング情報においてパディングフラグとして「０（無効）」が設定されている場合には、パディング付加部２０７は、パケット受信部２０８が受信したデータを各プロセッサコア４ｇに対して、キャッシュメモリ５もしくはメモリ６に保持するデータとして送信する。
すなわち、通信装置１０ｂは、プロセッサコア４ｇに対してアラインされたデータを送信する。【０１５０】
以下、通信装置１０ｂについて、図１８、および、図１９を用いて説明する。まず、図１８を用いて、通信装置１０ｂが有する各部について説明する。図１８は、第３実施形態の実施例４に関わる通信装置の一例を説明するための図である。図１８に示すように、通信装置１０ｂは、制御部２０５（パケット生成部）、パケット送信部２０６、パケット受信部２０８、判定部１４ａ、ＤＭＡコントローラ２０４（格納部）、書き込み先アドレステーブル１６、更新部１７及びパディング付加部２０７を有する。【０１５１】
書き込み先アドレステーブル１６は、プロセッサコア４ｇのポーリング処理の対象とするデータが格納されるメモリアドレスを保持する。ここで、図１９は、書き込み先アドレステーブルの一例を説明するための図である。図１９に示す例では、書き込み先アドレステーブル１６は、メモリアドレスを格納するライン番号が「０」〜「Ｎ−１」のＮ個のラインメモリを有する。【０１５２】
各ラインメモリは、図１９中（Ａ）に示す１ビットの領域に有効ビットが格納され、図１９中（Ｂ）に示す６４ビットの範囲にメモリアドレスが格納される。ここで有効ビットとは、ラインメモリに格納されたメモリアドレスが有効なデータであるか否かを示すビットである。例えば、有効ビットに「０」が格納されている場合には、このラインメモリに格納されたメモリアドレスのデータは無効であることを示す。また、有効ビットに「１」が格納されている場合には、このラインメモリに格納されたメモリアドレスのデータは、有効であることを示す。なお、書き込み先アドレステーブル１６とは、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、フラッシュメモリ （flash memory）などの半導体メモリ素子である。【０１５３】
判定部１４ａは、パケット受信部２０８からパケットを受信した場合には、受信したパケットに格納されていたデータを格納するメモリ６のメモリアドレスを取得する。また、判定部１４ａは、取得したメモリアドレスと同一のメモリアドレスが書き込み先アドレステーブル１６に格納されているか否かを判定する。
すなわち、判定部１４ａは、書き込み先アドレステーブル１６が有する各ラインメモリのうち、有効ビットに「１」が格納されているラインメモリに格納されたメモリアドレスと取得したメモリアドレスとを比較する。そして、判定部１４ａは、有効ビットに「１」が格納されているラインメモリに格納されたメモリアドレスと取得したメモリアドレスとが一致した場合には、受信したパケットに格納されていたデータをキャッシュメモリ５に格納するデータであると判定する。一方、判定部１４ａは、有効ビットに「１」が格納されているラインメモリに格納されたメモリアドレスと取得したメモリアドレスとが一致しないと判定した場合には、受信したパケットに格納されていたデータをメモリ６に格納するデータであると判定する。【０１５４】
更新部１７は、図１８中（Ａ）に示すように、プロセッサコア４ｇからポーリング処理の対象とするデータを格納するメモリ６のメモリアドレスを受信した場合には、受信したメモリアドレスを書き込み先アドレステーブル１６に追加する。また、更新部１７は、プロセッサコア４ｇからポーリング処理の対象とするデータを取得した旨の通知を受けた場合には、ポーリング処理の対象とするデータを格納するメモリ６のメモリアドレスを書き込み先アドレステーブル１６から削除する。【０１５５】
例えば、更新部１７は、プロセッサコア４ｇからポーリング処理の対象とするデータを格納するメモリ６のメモリアドレスを受信した場合には、書き込み先アドレステーブル１６が有する各ラインメモリのうち、有効ビットが「０」であるラインメモリを選択する。そして、更新部１７は、選択したラインメモリにプロセッサコア４ｇから受信したメモリアドレスを格納するとともに、選択したラインメモリの有効ビットを「１」に更新する。【０１５６】
また、更新部１７は、プロセッサコア４ｇからポーリング処理の対象とするデータをキャッシュメモリ５に格納した旨とともに、キャッシュメモリ５に格納したデータを格納するメモリ６のメモリアドレスとを受信した場合には、以下の処理を実行する。すなわち、更新部１７は、書き込み先アドレステーブル１６が有する各ラインメモリのうち、有効ビットが「１」であるラインメモリであって、プロセッサコア４ｇから受信したアドレスが格納されているラインメモリを検索する。そして、更新部１７は、検索したラインメモリの有効ビットを「０」に更新する。なお、更新部１７とは、電子回路である。ここで、電子回路の例として、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ （Field Programmable Gate Array）などの集積回路、またはＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などを適用する。
［通信装置１０ｂの処理の流れ］
次に、図２０を用いて、通信装置１０ｂが実行する処理の流れについて説明する。図２０は、第３実施形態の実施例４に関わる通信装置が実行する処理の流れを説明するためのフローチャートである。図２０に示す例では、通信装置１０ｂは、バス８を介して情報処理装置２ｆを送信先とするパケットを受信したことをトリガとして処理を開始する。【０１５７】
まず、通信装置１０ｂは、受信したパケットに格納されたデータの書き込み先アドレスと書き込み先アドレステーブル１６に格納されているメモリアドレスとが一致するか否かを判別する（ステップＳ２０１）。つまり、通信装置１０ｂは、受信したデータを格納するメモリ６のメモリアドレスが書き込み先アドレステーブル１６に登録されているか否かを判別する。【０１５８】
そして、通信装置１０ｂは、受信したパケットに格納されたデータの書き込み先アドレスと書き込み先アドレステーブル１６に格納されているメモリアドレスとが一致する場合には（ステップＳ２０１のＹＥＳルート参照）、以下の処理を実行する。すなわち、通信装置１０ｂは、受信したパケットのデータをキャッシュメモリ５に格納するデータとしてプロセッサコア４ｇへ送信する（ステップＳ２０２）。又、この際、パディング付加部２０７は、パディングフラグに「１」が格納されている場合には、受信したパケットに対して、アラインサイズに合わせたパディングを付加して、ＤＭＡ書き込みデータを作成する。パディング付加部２０７は、作成したＤＭＡ書き込みデータをＤＭＡコントローラ２０４に送信し、ＤＭＡコントローラ２０４は、ＤＭＡ書き込みデータをキャッシュメモリ５に格納するデータとしてプロセッサコア４へ送信する。なお、パディングフラグに「０」が格納されている場合には、パディング付加部２０７は、受信したパケットに対して、アラインサイズに合わせたパディングを付加することなく、受信したパケットに格納されていたデータをＤＭＡ書き込みデータとしてＤＭＡコントローラ２０４に送信する。ＤＭＡコントローラ２０４は、ＤＭＡ書き込みデータをキャッシュメモリ５に格納するデータとしてプロセッサコア４へ送信する。【０１５９】
一方、通信装置１０ｂは、受信したパケットに格納されたデータの書き込み先アドレスと書き込み先アドレステーブル１６に格納されているメモリアドレスとが一致しない場合には（ステップＳ２０１のＮＯルート参照）、以下の処理を実行する。すなわち、通信装置１０ｂは、受信したパケットのデータをメモリ６に格納するデータとしてプロセッサコア４ｇへ送信する（ステップＳ２０３）。その後、通信装置１０ｂは、処理を終了する。又、この際、パディング付加部２０７は、パディングフラグに「１」が格納されている場合には、受信したパケットに対して、アラインサイズに合わせたパディングを付加して、ＤＭＡ書き込みデータを作成する。パディング付加部２０７は、作成したＤＭＡ書き込みデータをＤＭＡコントローラ２０４に送信し、ＤＭＡコントローラ２０４は、ＤＭＡ書き込みデータをメモリ６に格納するデータとしてプロセッサコア４へ送信する。なお、パディングフラグに「０」が格納されている場合には、パディング付加部２０７は、受信したパケットに対して、アラインサイズに合わせたパディングを付加することなく、受信したパケットに格納されていたデータをＤＭＡ書き込みデータとしてＤＭＡコントローラ２０４に送信する。ＤＭＡコントローラ２０４は、ＤＭＡ書き込みデータをメモリ６に格納するデータとしてプロセッサコア４へ送信する。
［第３実施形態の実施例４の効果］
上述したように、情報処理装置２ｆは、プロセッサコア４ｇがポーリング処理の対象とするデータを格納するメモリアドレスを保持する書き込み先アドレステーブル１６を有する。また、情報処理装置２ｆは、プロセッサコア４ｇがポーリング処理を実行する場合には、ポーリング処理の対象となるデータが格納されるメモリアドレスを書き込み先アドレステーブル１６に格納する。【０１６０】
そして、情報処理装置２ｆは、情報処理装置２ｇを初めとする他の情報処理装置からデータを受信した場合には、受信したデータを格納するメモリアドレスが書き込み先アドレステーブル１６に格納されているか否かを判定する。また、情報処理装置２ｆは、受信したデータを格納するメモリアドレスが書き込み先アドレステーブル１６に格納されていると判定した場合には、受信したデータをキャッシュメモリ５に格納する。また、情報処理装置２ｆは、受信したデータを格納するメモリアドレスが書き込み先アドレステーブル１６に格納されていないと判定した場合には、受信したデータをメモリ６に格納する。【０１６１】
このため、情報処理装置２ｆは、プロセッサコア４ｇが演算に利用しないデータを受信した際に、キャッシュメモリ５に格納されたデータの吐き出しを防止する。この結果、並列計算機システム１ｃは、各情報処理装置２ｆ、２ｇが有するプロセッサコアがキャッシュメモリに格納されたデータを用いて効率的な処理を実行することができるので、計算処理速度の低下を防止することができる。【０１６２】
そして、パディング付加部２０７が、受信したデータに付加されているパディング情報を参照して、パディングフラグが有効である場合にペイロードにパディングを付加してパディング付きデータを作成する。ＤＭＡコントローラ２０４が、このパディング付きデータをキャッシュメモリ５やメモリ６に書き込ませる。これにより、受信したデータがアラインされていない場合であっても、キャッシュメモリ５やメモリ６への書き込みを行なう際のレイテンシを短くすることができる。【０１６３】
（Ｃ−５）実施例５
第３実施形態の実施例５では、複数のプロセッサコアを有するプロセッサが設置された情報処理装置を複数有する並列計算機システム１ｄについて説明する。図２１は、第３実施形態の実施例５に関わる並列計算機システムの一例を説明するための図である。図２１に示す例では、並列計算機システム１ｄは、情報処理装置２ｈ、２ｉをはじめとする複数の情報処理装置を有する。なお、情報処理装置２ｉを初めとする各情報処理装置は、情報処理装置２ｈと同様の処理を実行するものとして、説明を省略する。また、情報処理装置２ｈが有する各部のうち、情報処理装置２ｂが有する各部と同様の処理を実行するものについては、同一の符号を付し、説明を省略する。【０１６４】
情報処理装置２ｈは、複数のプロセッサコア４ｈ〜４ｊを有するプロセッサ３ｄ、メモリ６、通信装置１０ｃを有する。各プロセッサコア４ｈ〜４ｊは、キャッシュメモリ５ａ〜５ｃを有する。また、通信装置１０ｃは、書き込み先アドレステーブル１６ａを有する。
プロセッサコア４ｈは、第３実施形態の実施例２に関わるプロセッサコア４ａと同様に、通信装置１０ｃからメモリ６に格納するデータを受信した場合には、受信したデータをメモリ６に格納する。また、プロセッサコア４ｈは、通信装置１０ｃからキャッシュメモリ５ａに格納するデータを受信した場合には、受信したデータをキャッシュメモリ５ａに格納する。【０１６５】
また、プロセッサコア４ｈは、受信したデータをキャッシュメモリ５ａ、又は、メモリ６に格納する場合には、以下の処理を実行する。つまり、プロセッサコア４ｈは、プロセッサコア４ａと同様に、キャッシュメモリ５ａに格納された同一性情報に基づいて、キャッシュメモリ５ａに格納されたデータとメモリ６に格納されたデータとのコヒーレンシを保持する。【０１６６】
具体的には、プロセッサコア４ｈは、キャッシュメモリ５ａが有する各キャッシュラインに格納された状態データに応じて、キャッシュメモリ５ａとメモリ６とに格納されたデータの同一性を保持する。その後、プロセッサコア４ｈは、受信したデータをキャッシュメモリ５ａ又はメモリ６に格納する。なお、プロセッサコア４ｈがキャッシュメモリ５ａとメモリ６とに格納されたデータの同一性を保持する詳細な処理については、プロセッサコア４ａが実行する処理と同様の処理を行うものとして、説明を省略する。【０１６７】
さらに、プロセッサコア４ｈは、実施例４に関わるプロセッサコア４ｇと同様に、ポーリング処理を実行する場合には、直前に、通信装置１０ｃの書き込み先アドレステーブル１６にポーリング処理の対象となるデータの書き込み先アドレスを登録する。この際、プロセッサコア４ｈは、書き込み先アドレスとともに、自身のキャッシュメモリ５ａを示す書込先キャッシュメモリ識別情報をメモリアドレスと対応付けて登録する。【０１６８】
通信装置１０ｃは、受信したデータを格納するメモリアドレスと、各キャッシュメモリ５ａ〜５ｃを識別する書込先キャッシュメモリ識別情報とを対応付けて保持する書き込み先アドレステーブル１６ａを有する。そして通信装置１０ｃは、実施例４に関わる通信装置１０ｂと同様に、情報処理装置２ｉを初めとする他の情報処理装置からパケットを受信した場合には、以下の処理を実行する。すなわち、通信装置１０ｃは、受信したパケットを格納するメモリアドレスと同一のメモリアドレスが書き込み先アドレステーブル１６ａに格納されているか否かを判別する。【０１６９】
そして、通信装置１０ｃは、受信したパケットを格納するメモリアドレスと同一のメモリアドレスが書き込み先アドレステーブル１６ａに格納されている場合には、以下の処理を実行する。すなわち、通信装置１０ｃは、受信したパケットを格納するメモリアドレスと同一のメモリアドレスに対応付けられた書込先キャッシュメモリ識別情報が示すキャッシュメモリを有するプロセッサコアを判定する。そして、通信装置１０ｃは、判定したプロセッサコアに対して、受信したデータをキャッシュメモリに格納するデータとして送信する。【０１７０】
一方、通信装置１０ｃは、受信したパケットを格納するメモリアドレスと同一のメモリアドレスが書き込み先アドレステーブル１６ａに格納されていない場合には、受信したデータをメモリ６に格納するデータとして、各プロセッサコア４ｈ〜４ｊに送信する。
次に、図２２を用いて、通信装置１０ｃが有する各部について説明する。図２２は、実施例５に関わる通信装置の一例を説明するための図である。なお、通信装置１０ｃが有する各部のうち、実施例１〜４に示す各部と同様の処理を実行するものについては、同一の符号を付し、説明を省略する。【０１７１】
図２２に示す例では、通信装置１０ｃは、ＤＭＡコントローラ２０４ｂ（格納部）、判定部１４ｂ、書き込み先アドレステーブル１６ａ、更新部１７ａ、制御部２０５、パケット送信部２０６及びパディング付加部２０７を有する。
本第３実施形態の実施例５においても、通信装置１０ｃにおいて、判定部１４を介して受け取ったパディング情報においてパディングフラグとして「１（有効）」が設定されている場合に、パディング付加部２０７が、データがアラインサイズにアラインするようにパディングを付けることによりパディング付きデータを作成する。通信装置１０ｃはこのパディング付きデータを各プロセッサコア４ｈ〜４ｊに対して、キャッシュメモリ５ａ〜５ｃもしくはメモリ６に保持するデータとして送信する。【０１７２】
また、パディング情報においてパディングフラグとして「０（無効）」が設定されている場合には、パディング付加部２０７は、パケット受信部２０８が受信したデータを各プロセッサコア４ｄ〜４ｆに対して、キャッシュメモリ５ａ〜５ｃもしくはメモリ６に保持するデータとして送信する。
すなわち、通信装置１０ａは、プロセッサコア４ｄ〜４ｆに対してアラインされたデータを送信する。【０１７３】
書き込み先アドレステーブル１６ａは、第３実施形態の実施例４に関わる書き込み先アドレステーブル１６と同様に、ポーリング処理の対象となるデータを格納するメモリアドレスを保持する。さらに、書き込み先アドレステーブル１６ａは、保持するメモリアドレスに、ポーリング処理を行うプロセッサコアが有するキャッシュメモリを識別する書込先キャッシュメモリ識別情報を対応付けて保持する。【０１７４】
例えば、書き込み先アドレステーブル１６ａは、書き込み先アドレステーブル１６が有する各ラインメモリに書込先キャッシュメモリ識別情報を格納する格納領域をさらに追加した複数のラインメモリを有する。そして、書き込み先アドレステーブル１６ａは、対応付けるメモリアドレスと書込先キャッシュメモリ識別情報とを同一ラインメモリに格納する。【０１７５】
判定部１４ｂは、パケット受信部２０８が受信したパケットに格納されていたデータを格納するメモリ６のメモリアドレスを取得する。そして、判定部１４ｂは、取得したメモリアドレスと同一のメモリアドレスが書き込み先アドレステーブル１６ａに格納されているか否かを判定する。
そして、判定部１４ｂは、取得したメモリアドレスと同一のメモリアドレスが書き込み先アドレステーブル１６ａに格納されている場合には、以下の処理を実行する。すなわち、判定部１４ｂは、書き込み先アドレステーブル１６ａに格納されていたメモリアドレスと対応付けて記憶された書込先キャッシュメモリ識別情報を取得する。そして、判定部１４ｂは、受信したパケットに格納されていたデータを、取得した書込先キャッシュメモリ識別情報が示すキャッシュメモリに格納するデータであると判定する。【０１７６】
一方、判定部１４ｂは、取得したメモリアドレスと同一のメモリアドレスが書き込み先アドレステーブル１６ａに格納されていない場合には、受信したパケットに格納されていたデータをメモリ６に格納するデータであると判定する。
ＤＭＡコントローラ２０４ｂは、受信したデータをキャッシュメモリに格納するデータであると判定部１４ｂが判定した場合には、以下の処理を実行する。すなわち、ＤＭＡコントローラ２０４ｂは、判定部１４ｂが取得した書込先キャッシュメモリ識別情報が示すキャッシュメモリを有するプロセッサコアに、キャッシュメモリに格納するデータとして、受信したデータを送信する。例えば、ＤＭＡコントローラ２０４ｂは、判定部１４ｂが受信したデータをキャッシュメモリ５ａに格納するデータであると判定した場合には、受信したデータをプロセッサコア４ｈに送信する。【０１７７】
一方、ＤＭＡコントローラ２０４ｂは、判定部１４ｂが受信したパケットに格納されていたデータをメモリ６に格納するデータであると判定した場合には、受信したデータをメモリ６に格納するデータとして、プロセッサコア４ｈ〜４ｊに送信する。
更新部１７ａは、図２２中（Ａ）に示すように、各プロセッサコア４ｈ〜４ｊからポーリング処理の対象となるデータを格納するメモリアドレスを受信する。これと同時に、更新部１７ａは、各プロセッサコア４ｈ〜４ｊが有する各キャッシュメモリ５ａ〜５ｃを示す書込先キャッシュメモリ識別情報を受信する。このような場合には、更新部１７ａは、受信したデータと書込先キャッシュメモリ識別情報とを書き込み先アドレステーブル１６ａが有する１つのメモリラインに格納する。また、更新部１７ａは、更新部１７と同様、各プロセッサコア４ｈ〜４ｊからポーリング処理の対象となるデータをキャッシュメモリに格納した旨とともに、メモリアドレスを受信した場合には、以下の処理を実行する。すなわち、更新部１７ａは、受信したメモリアドレスが格納されているラインメモリを書き込み先アドレステーブル１６ａから検索し、検索したラインメモリの有効ビットを「０」に更新する。【０１７８】
例えば、このような各部を有する情報処理装置２ｈは、プロセッサコア４ｈがポーリング処理を実行する場合には、以下の処理を実行する。すなわち、情報処理装置２ｈは、ポーリング処理の対象となるデータを格納するメモリアドレスとキャッシュメモリ５ａを示す書込先キャッシュメモリ識別情報とを対応付けて書き込み先アドレステーブル１６ａに格納する。そして、情報処理装置２ｈは、情報処理装置２ｉを初めとする他の情報処理装置からパケットを受信した場合には、受信したパケットに格納されていたデータを格納するメモリアドレスが書き込み先アドレステーブル１６ａに格納されているか否かを判別する。【０１７９】
この際、受信したパケットに格納されていたデータがプロセッサコア４ｈがポーリング処理の対象となるデータである場合には、格納するメモリアドレスが書き込み先アドレステーブル１６ａに格納されている。このため、情報処理装置２ｈは、受信したデータを格納するメモリアドレスと対応付けて記憶されたキャッシュメモリ５ａを示す書込先キャッシュメモリ識別情報から、ポーリング処理を行っているプロセッサコアがプロセッサコア４ｈであると判定する。そして、情報処理装置２ｈは、受信したデータをプロセッサコア４ｈに送信し、キャッシュメモリ５ａに格納する。なお、キャッシュメモリ５ａに書き込まれるデータはアラインされたデータである。
［実施例５の効果］
上述したように、情報処理装置２ｈは、ポーリング処理の対象となるデータを格納するメモリアドレスとキャッシュメモリを示す書込先キャッシュメモリ識別情報と対応付けて書き込み先アドレステーブル１６ａに格納する。そして、情報処理装置２は、受信したパケットのデータを格納するメモリアドレスが書き込み先アドレステーブル１６ａかに格納されているか否かを判別し、格納されている場合には以下の処理を実行する。すなわち、情報処理装置２ｈは、対応付けて格納されていた書込先キャッシュメモリ識別情報が示すキャッシュメモリに受信したデータを格納する。【０１８０】
このため、情報処理装置２ｈは、各プロセッサコア４ｈ〜４ｊによるポーリング処理の対象とするデータ受信した場合には、受信したデータをキャッシュメモリ５ａ〜５ｃに直接格納することができる。このため、並列計算機システム１ｄは、各情報処理装置２ｈ、２ｉが有するプロセッサが複数のプロセッサコアを有するマルチコアプロセッサである場合にも、演算処理を効率的に行わせることができる。【０１８１】
また、情報処理装置２ｈは、他の実施例に関わる情報処理装置２〜２ｇと同様に、プロセッサコア４ｈ〜４ｊが演算に利用しないデータを受信した際に、キャッシュメモリ５ａ〜５ｃに格納されたデータの吐き出しを防止する。この結果、並列計算機システム１ｄは、計算処理速度の低下を防止することができる。
また、情報処理装置２ｈは、情報処理装置２ｆと同様に、キャッシュメモリ５ａに格納された同一性情報に基づいて、キャッシュメモリ５ａに格納されたデータとメモリ６に格納されたデータとの同一性を保持する。このため、並列計算機システム１ｄは、各情報処理装置２ｈ、２ｉに適切な処理を実行させることができる。【０１８２】
そして、パディング付加部２０７が、受信したデータに付加されているパディング情報を参照して、パディングフラグが有効である場合にペイロードにパディングを付加してパディング付きデータを作成する。ＤＭＡコントローラ２０４が、このパディング付きデータをキャッシュメモリ５ａ〜５ｃやメモリ６に書き込む。これにより、受信したデータがアラインされていない場合であっても、キャッシュメモリ５ａ〜５ｃやメモリ６への書き込みを行なう際のレイテンシを小さくすることができる。【０１８３】
（Ｃ−６）実施例６
第３実施形態の実施例６では、それぞれ独自のＬ１キャッシュメモリを有する複数のプロセッサコアと各プロセッサコアが共用する１つのＬ２キャッシュメモリを有するプロセッサが設置された情報処理装置を複数有する並列計算機システムについて説明する。図２３は、第３実施形態の実施例６に関わる並列計算機システムを説明するための図である。【０１８４】
図２３に示すように、並列計算機システム１ｅは、情報処理装置２ｊ、２ｋを初めとする複数の情報処理装置を有する。なお、情報処理装置２ｋを初めとする各情報処理装置は情報処理装置２ｊと同様の処理を実行するものとして、説明を省略する。
また、並列計算機システム１ｅが有する各部のうち、並列計算機システム１ｂと同様の処理を実行するものについては、同一の符号を付し、以下の説明を省略する。【０１８５】
情報処理装置２ｊは、複数のプロセッサコア４ｋ〜４ｍを有するプロセッサ３ｅと、各プロセッサコア４ｋ〜４ｍが共用するレベル２キャッシュメモリ７を有する。また、各プロセッサコア４ｋ〜４ｍは、それぞれ、レベル１キャッシュメモリ５ｄ〜５ｆを有する。なお、プロセッサコア４ｌ、４ｍは、プロセッサコア４ｋと同様の処理を実行するものとして、以下の説明を省略する。【０１８６】
プロセッサコア４ｋは、実施例５に関わるプロセッサコア４ｈと同様に、通信装置１０ｄが受信したデータをレベル１キャッシュメモリ５ｄに格納するデータとして受信した場合には、受信したデータをレベル１キャッシュメモリ５ｄに格納する。また、プロセッサコア４ｋは、通信装置１０ｄが受信したデータをメモリ６に格納するデータとして受信した場合には、受信したデータをメモリ６に格納する。【０１８７】
また、プロセッサコア４ｋは、データをレベル１キャッシュメモリ５ｄまたはレベル２キャッシュメモリ７に格納する場合には、実施例３に関わるプロセッサコア４ｄと同様の処理を実行する。すなわち、プロセッサコア４ｋは、第１同一性情報と、第２同一性情報とに基づいて、レベル１キャッシュメモリ５ｄ、レベル２キャッシュメモリ７、メモリ６に格納されたデータの同一性を保持する。【０１８８】
また、プロセッサコア４ｋは、ポーリング処理を実行する場合には、ポーリング処理の対象となるデータを格納するメモリアドレスとレベル１キャッシュメモリ５ｄを示す書込先キャッシュメモリ識別情報とを通信装置１０ｄに送信する。つまり、プロセッサコア４ｋは、ポーリング処理の対象となるデータを格納するメモリアドレスとレベル１キャッシュメモリ５ｄを示す書込先キャッシュメモリ識別情報とを対応付けて書き込み先アドレステーブル１６ｂに格納する。【０１８９】
また、プロセッサコア４ｋは、ポーリング処理の対象となるデータをレベル１キャッシュメモリ５ｄに格納した場合には、データをレベル１キャッシュメモリ５ｄに格納した旨とデータを格納するメモリアドレスとを通信装置１０ｄに送信する。つまり、プロセッサコア４ｋは、ポーリング処理の対象となるデータを格納するメモリアドレス等を書き込み先アドレステーブル１６ｂから削除する。【０１９０】
通信装置１０ｄは、書き込み先アドレステーブル１６ｂを有する。書き込みアドレステーブル１６ｂには、書き込み先アドレステーブル１６ａと同様に、以下の情報が対応付けて格納されている。すなわち、書き込み先アドレステーブル１６ｂには、ポーリング処理の対象となるデータを格納するメモリアドレスと各レベル１キャッシュメモリ５ｄ〜５ｆを識別する書込先キャッシュメモリ識別情報とが対応付けられて格納されている。【０１９１】
そして、通信装置１０ｄは、通信装置１０ｃと同様に、情報処理装置２ｋを初めとする他の情報処理装置からパケットを受信した場合には、以下の処理を実行する。すなわち、通信装置１０ｄは、受信したパケットを格納するメモリアドレスと同一のメモリアドレスが書き込み先アドレステーブル１６ｂに格納されているか否かを判別する。
そして、通信装置１０ｄは、受信したパケットを格納するメモリアドレスと同一のメモリアドレスが書き込み先アドレステーブル１６ｂに格納されている場合には、以下の処理を実行する。すなわち、通信装置１０ｄは、受信したパケットを格納するメモリアドレスと同一のメモリアドレスに対応付けられた書込先キャッシュメモリ識別情報が示すレベル１キャッシュメモリを有するプロセッサコアを判定する。そして、通信装置１０ｄは、判定したプロセッサコアに対して、受信したデータをキャッシュメモリに格納するデータとして送信する。【０１９２】
一方、通信装置１０ｄは、受信したパケットを格納するメモリアドレスと同一のメモリアドレスが書き込み先アドレステーブル１６ｂに格納されていない場合には、受信したデータをメモリ６に格納するデータとして、各プロセッサコア４ｋ〜４ｆに送信する。
例えば、このような各部を有する情報処理装置２ｊは、プロセッサコア４ｋがポーリング処理を実行する場合には、以下の処理を実行する。すなわち、情報処理装置２ｊは、ポーリング処理の対象となるデータを格納するメモリアドレスとレベル１キャッシュメモリ５ｄを示す書込先キャッシュメモリ識別情報とを対応付けて書き込み先アドレステーブル１６ｂに格納する。そして、情報処理装置２ｊは、情報処理装置２ｋを初めとする他の情報処理装置からパケットを受信した場合には、受信したパケットに格納されていたデータを格納するメモリアドレスが書き込み先アドレステーブル１６ｂに格納されているか否かを判別する。【０１９３】
この際、受信したパケットに格納されていたデータがプロセッサコア４ｋがポーリング処理の対象となるデータである場合には、格納するメモリアドレスが書き込み先アドレステーブル１６ｂに格納されている。このため、情報処理装置２ｊは、受信したデータを格納するメモリアドレスと対応付けて記憶されたレベル１キャッシュメモリ５ｄを示す書込先キャッシュメモリ識別情報から、ポーリング処理を行っているプロセッサコアがプロセッサコア４ｋであると判定する。そして、情報処理装置２ｊは、受信したデータをプロセッサコア４ｋに送信し、レベル１キャッシュメモリ５ｄに格納する。【０１９４】
また、情報処理装置２ｊは、各レベル１キャッシュメモリ５ｄ〜５ｆおよびレベル２キャッシュメモリ７に格納された第１同一性情報および第２同一性情報を用いて、以下の処理を実行する。つまり、情報処理装置２ｊは、各レベル１キャッシュメモリ５ｄ〜５ｆ、レベル２キャッシュメモリ７、メモリ６に格納されているデータの同一性を保持し、その後、受信したデータを各レベル１キャッシュメモリ５ｄ〜５ｆ、または、メモリ６に格納する。【０１９５】
また、本第３実施形態の実施例６においても、通信装置１０ｄにおいて、判定部１４を介して受け取ったパディング情報においてパディングフラグとして「１（有効）」が設定されている場合に、パディング付加部２０７が、データがアラインサイズにアラインするようにパディングを付けることによりパディング付きデータを作成する。通信装置１０ｄはこのパディング付きデータをプロセッサコア４ｋ〜４ｍに対して、レベル１キャッシュメモリ５ｄ〜５ｆもしくはメモリ６に保持するデータとして送信する。【０１９６】
また、パディング情報においてパディングフラグとして「０（無効）」が設定されている場合には、パディング付加部２０７は、パケット受信部２０８が受信したデータを各プロセッサコア４ｋ〜４ｍに対して、レベル１キャッシュメモリ５ｄ〜５ｆもしくはメモリ６に保持するデータとして送信する。
すなわち、通信装置１０ｄは、プロセッサコア４ｋ〜４ｍに対してアラインされたデータを送信する。
［実施例６の効果］
上述したように、情報処理装置２ｊは、ポーリング処理の対象となるデータを格納するメモリアドレスと、ポーリング処理を実行するプロセッサコアが有するレベル１キャッシュメモリを示す書込先キャッシュメモリ識別情報とを対応付けて記憶する。そして、情報処理装置２ｊは、受信したデータを格納するメモリアドレスが記憶したメモリアドレスと一致する場合には、対応付けて記憶した書込先キャッシュメモリ識別情報が示すレベル１キャッシュメモリに受信したデータを格納する。このため、並列計算機システム１ｅは、各プロセッサコア４ｋ〜４ｍに効率的に演算処理を実行することができる。【０１９７】
また、情報処理装置２ｊは、ポーリング処理の対象ではないデータを受信した場合には、受信したデータをメモリ６に格納する。このため、並列計算機システム１ｅは、計算処理速度を低下させることなく、効率的な演算処理を実行することができる。
また、情報処理装置２ｊは、各レベル１キャッシュメモリ５ｄ〜５ｆに格納された第１同一性情報およびレベル２キャッシュメモリ７に格納された第２同一性情報を用いて、以下の処理を実行する。すなわち、情報処理装置２ｊは、各レベル１キャッシュメモリ５ｄ〜５ｆ、レベル２キャッシュメモリ７、メモリ６に格納されたデータの同一性を適切に保持する。この結果、並列計算機システム１ｅは、適切な演算処理装置を実行することができる。【０１９８】
そして、パディング付加部２０７が、受信したデータに付加されているパディング情報を参照して、パディングフラグが有効である場合にペイロードにパディングを付加してパディング付きデータを作成する。ＤＭＡコントローラ２０４が、このパディング付きデータをレベル１キャッシュメモリ５ｄ〜５ｆやメモリ６に書き込ませる。これにより、受信したデータがアラインされていない場合であっても、キャッシュメモリ５やメモリ６への書き込みを行なう際のレイテンシを短くすることができる。【０１９９】
（Ｃ−７）実施例７
これまで第３実施形態の各実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では第３実施形態の実施例７として本発明に含まれる他の実施例を説明する。
（１）並列計算機システムが有する情報処理装置について
上述した説明における各並列計算機システム１、１ｃは、キャッシュメモリ５を有するプロセッサコア４、４ｇを有していた。しかし、実施例はこれに限定されるものではなく、例えば、各並列計算機システム１、１ｃは、レベル１キャッシュメモリを有するプロセッサコアとレベル２キャッシュメモリを有するプロセッサを有しても良い。そして、並列計算機システム１、１ｃが有するプロセッサコアは、レベル１キャッシュメモリおよびレベル２キャッシュメモリに格納された第１同一性情報と第２同一性情報とを用いて、データのコヒーレンシを保持することとしてもよい。【０２００】
すなわち、情報処理装置は、受信したデータがポーリング処理の対象となるデータであるか否か判定し、ポーリング処理の対象となるデータであると判定した場合には、受信したデータをキャッシュメモリに格納する。また、情報処理装置は、受信したデータがポーリング処理の対象となるデータではないと判定した場合には、受信したデータをメモリに格納する。つまり、情報処理装置は、このような処理を実行する情報処理装置であれば、任意の構成を有することができる。【０２０１】
そして、これらのレベル１キャッシュメモリやレベル２キャッシュメモリに対して格納するデータについても、受信したデータがアラインされていない場合に、パディング付加部２０７がペイロードにパディングを付加することによりパディング付きデータとして作成し、格納する。
（２）並列計算機システムについて
上述した各並列計算機システム１〜１ｅは、それぞれ同様の機能を発揮する複数の情報処理装置を有していた。しかし、実施例はこれに限定されるものではなく、各実施例における任意の情報処理装置をそなえた並列計算機システムであってもよい。つまり、情報処理装置は、受信したパケットに制御情報として「１」が格納されているか否かに基づいて、受信したパケットのデータがポーリング処理の対象となるデータであるか否かを判定するとともに、書き込み先アドレステーブルにメモリアドレスが格納されているか否かを判定する。そして、情報処理装置は、いずれかの条件を満たした場合には、ポーリング処理の対象となるデータであると判定してもよい。
【符号の説明】
【０２０２】
１〜１ｅ  並列計算機システム
２〜２ｋ  情報処理装置
３〜３ｅ  プロセッサ
４〜４ｍ  プロセッサコア
５〜５ｃ  キャッシュメモリ
５ｄ〜５ｆ  レベル１キャッシュメモリ
６  メモリ
７  レベル２キャッシュメモリ
８    バス
１０〜１０ｄ  通信装置
１４〜１４ｂ  判定部
１５〜１５ｂ  格納部
１６、１６ａ  書き込み先アドレステーブル
１７、１７ａ  更新部
２０４    ＤＭＡコントローラ（格納部）
２０５    制御部（パケット生成部）
２０６  パケット送信部
２０７  パディング付加部
２０８  パケット受信部
２０９  キャッシュラインサイズ保持部（調整サイズ情報格納部）
【図１】
2014038070.tif 000003
【図２】
2014038070.tif 000004
【図３】
2014038070.tif 000005
【図４】
2014038070.tif 000006
【図５】
2014038070.tif 000007
【図６】
2014038070.tif 000008
【図７】
2014038070.tif 000009
【図８】
2014038070.tif 000010
【図９】
2014038070.tif 000011
【図１０】
2014038070.tif 000012
【図１１】
2014038070.tif 000013
【図１２】
2014038070.tif 000014
【図１３】
2014038070.tif 000015
【図１４】
2014038070.tif 000016
【図１５】
2014038070.tif 000017
【図１６】
2014038070.tif 000018
【図１７】
2014038070.tif 000019
【図１８】
2014038070.tif 000020
【図１９】
2014038070.tif 000021
【図２０】
2014038070.tif 000022
【図２１】
2014038070.tif 000023
【図２２】
2014038070.tif 000024
【図２３】
2014038070.tif 000025
【手続補正書】
【提出日】平成27年4月20日(2015.4.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
並列計算機システムに含まれる複数の情報処理装置のいずれかにおいて、
データを保持する記憶装置と、
受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成するデータ作成部と、
前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備えることを特徴とする情報処理装置。
【請求項２】
前記調整情報が調整サイズ情報をそなえ、前記データ作成部が、前記データに対して前記調整サイズ情報に合わせたパディングを付加することにより、前記パディング付きデータを作成することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記調整情報が調整の要否を示す要否情報をそなえ、前記要否情報が調整が必要であることを示す場合に、前記データ作成部が、前記パディング付きデータを作成することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
並列計算機システムに含まれる複数の情報処理装置のいずれかにおいて、
データを保持する記憶装置と、
受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断する判断部と、
前記判断部が前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成するデータ作成部と、
前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備えることを特徴とする情報処理装置。
【請求項５】
前記調整サイズ情報を格納する調整サイズ情報格納部を備え、
前記判断部が、前記調整サイズ情報格納部から前記調整サイズ情報を取得することを特徴とする請求項４記載の情報処理装置。
【請求項６】
データを保持する主記憶装置と、
前記主記憶装置に保持されたデータの一部を保持するキャッシュメモリ部と、前記主記憶装置又は前記キャッシュメモリ部に保持されたデータを用いて演算を行なう演算処理部とを有する演算処理装置と、
他の情報処理装置から受信したデータが、前記演算処理装置が待ち合わせているデータであるか否かを判定する判定部とをそなえ、
前記受信したデータが前記演算処理装置が待ち合わせているデータであると、前記判定部が判定した場合に、前記データ作成部が前記パディング付きデータを作成し、前記格納処理部が、前記パディング付きデータを前記キャッシュメモリ部に格納することを特徴とする請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
複数の情報処理装置を有する並列計算機システムにおいて、
調整情報を備えるデータを送信する第１の情報処理装置と、
データを保持する記憶装置と、受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成するデータ作成部と、前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備える第２の情報処理装置と、
を備えることを特徴とする並列計算機システム。
【請求項８】
前記調整情報が調整サイズ情報をそなえ、前記データ作成部が、前記データに対して前記調整サイズ情報に合わせたパディングを付加することにより、前記パディング付きデータを作成することを特徴とする請求項７記載の並列計算機システム。
【請求項９】
前記調整情報が調整の要否を示す要否情報をそなえ、前記要否情報が調整が必要であることを示す場合に、前記データ作成部が、前記パディング付きデータを作成することを特徴とする請求項７又は８記載の並列計算機システム。
【請求項１０】
複数の情報処理装置を有する並列計算機システムにおいて、
前記情報処理装置は、
データを保持する記憶装置と、
受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断する判断部と、
前記判断部が前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成するデータ作成部と、
前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備えることを特徴とする並列計算機システム。
【請求項１１】
前記情報処理装置は、
前記調整サイズ情報を格納する調整サイズ情報格納部を備え、
前記判断部が、前記調整サイズ情報格納部から前記調整サイズ情報を取得することを特徴とする請求項１０記載の並列計算機システム。
【請求項１２】
前記情報処理装置は、
データを保持する主記憶装置と、
前記主記憶装置に保持されたデータの一部を保持するキャッシュメモリ部と、前記主記憶装置又は前記キャッシュメモリ部に保持されたデータを用いて演算を行なう演算処理部とを有する演算処理装置と、
他の情報処理装置から受信したデータが、前記演算処理装置が待ち合わせているデータであるか否かを判定する判定部とをそなえ、
前記受信したデータが前記演算処理装置が待ち合わせているデータであると、前記判定部が判定した場合に、前記データ作成部が前記パディング付きデータを作成し、前記格納処理部が、前記パディング付きデータを前記キャッシュメモリ部に格納することを特徴とする請求項７〜１１のいずれか１項に記載の並列計算機システム。
【請求項１３】
複数の情報処理装置を備える並列計算機システムを構成する情報処理装置の制御方法において、
調整情報を備えるデータを送信し、
受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成し、
作成された前記パディング付きデータを記憶装置に格納することを特徴とする情報処理装置の制御方法。
【請求項１４】
前記調整情報が調整サイズ情報をそなえ、
前記データに対して前記調整サイズ情報に合わせたパディングを付加することにより、前記パディング付きデータを作成することを特徴とする請求項１３記載の情報処理装置の制御方法。
【請求項１５】
前記調整情報が調整の要否を示す要否情報をそなえ、前記要否情報が調整が必要であることを示す場合に、前記パディング付きデータを作成することを特徴とする請求項１３又は１４記載の情報処理装置の制御方法。
【請求項１６】
複数の情報処理装置を備える並列計算機システムを構成する情報処理装置の制御方法において、
受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断し、
前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成し、
作成された前記パディング付きデータを記憶装置に格納することを特徴とする情報処理装置の制御方法。
【請求項１７】
前記調整サイズ情報を格納する調整サイズ情報格納部から前記調整サイズ情報を取得することを特徴とする請求項１６記載の情報処理装置の制御方法。
【請求項１８】
他の情報処理装置から受信したデータが、データを保持する主記憶装置に保持されたデータの一部を保持するキャッシュメモリ部と、前記主記憶装置又は前記キャッシュメモリ部に保持されたデータを用いて演算を行なう演算処理部とを有する演算処理装置が待ち合わせているデータであるか否かを判定し、
前記受信したデータが前記演算処理装置が待ち合わせているデータであると判定した場合に、前記パディング付きデータを作成し、当該パディング付きデータを前記キャッシュメモリ部に格納することを特徴とする請求項１３〜１７のいずれか１項に記載の情報処理装置の制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
そして、通信装置１０は、受信したデータが、プロセッサコア４が待ち合わせているデータであると判定した場合には、データをキャッシュメモリ５に格納するデータとしてプロセッサコア４に送信する。つまり、通信装置１０は、データをキャッシュメモリ５に格納するデータとしてプロセッサコア４に送信することで、受信したデータをキャッシュメモリ５とメモリ６に格納する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１２６
【補正方法】変更
【補正の内容】
【０１２６】
なお、各レベル１キャッシュメモリ５ｄ〜５ｆの各キャッシュラインに格納される各情報は、キャッシュメモリ５ａ〜５ｃが有する各キャッシュラインに格納される各情報と同様の情報であるものとする。また、各レベル１キャッシュメモリ５ｄ〜５ｆの各キャッシュラインに格納される状態データは、以下の同一性を示す同一性情報である。すなわち状態データは、同一キャッシュラインに格納されたデータと、他のレベル１キャッシュメモリ５ｄ〜５ｆに格納されたデータと、レベル２キャッシュメモリ７に格納されたデータとの同一性を示す。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１７２
【補正方法】変更
【補正の内容】
【０１７２】
また、パディング情報においてパディングフラグとして「０（無効）」が設定されている場合には、パディング付加部２０７は、パケット受信部２０８が受信したデータを各プロセッサコア４ｄ〜４ｆに対して、キャッシュメモリ５ａ〜５ｃもしくはメモリ６に保持するデータとして送信する。
すなわち、通信装置１０ｃは、プロセッサコア４ｄ〜４ｆに対してアラインされたデータを送信する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１９２
【補正方法】変更
【補正の内容】
【０１９２】
一方、通信装置１０ｄは、受信したパケットを格納するメモリアドレスと同一のメモリアドレスが書き込み先アドレステーブル１６ｂに格納されていない場合には、受信したデータをメモリ６に格納するデータとして、各プロセッサコア４ｋ〜４ｍに送信する。
例えば、このような各部を有する情報処理装置２ｊは、プロセッサコア４ｋがポーリング処理を実行する場合には、以下の処理を実行する。すなわち、情報処理装置２ｊは、ポーリング処理の対象となるデータを格納するメモリアドレスとレベル１キャッシュメモリ５ｄを示す書込先キャッシュメモリ識別情報とを対応付けて書き込み先アドレステーブル１６ｂに格納する。そして、情報処理装置２ｊは、情報処理装置２ｋを初めとする他の情報処理装置からパケットを受信した場合には、受信したパケットに格納されていたデータを格納するメモリアドレスが書き込み先アドレステーブル１６ｂに格納されているか否かを判別する。
【手続補正書】
【提出日】平成28年3月22日(2016.3.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
並列計算機システムに含まれる複数の情報処理装置のいずれかにおいて、
データを保持する記憶装置と、
受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成するデータ作成部と、
前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備え、
前記調整情報が調整の要否を示す要否情報をそなえ、前記要否情報が調整が必要であることを示す場合に、前記データ作成部が、前記パディング付きデータを作成することを特徴とする情報処理装置。
【請求項２】
前記調整情報が調整サイズ情報をそなえ、前記データ作成部が、前記データに対して前記調整サイズ情報に合わせたパディングを付加することにより、前記パディング付きデータを作成することを特徴とする請求項１記載の情報処理装置。
【請求項３】
並列計算機システムに含まれる複数の情報処理装置のいずれかにおいて、
データを保持する記憶装置と、
受信したデータのデータサイズ情報及び書き込み先アドレス情報と調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断する判断部と、
前記判断部が前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成するデータ作成部と、
前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備えることを特徴とする情報処理装置。
【請求項４】
前記調整サイズ情報を格納する調整サイズ情報格納部を備え、
前記判断部が、前記調整サイズ情報格納部から前記調整サイズ情報を取得することを特徴とする請求項３記載の情報処理装置。
【請求項５】
データを保持する主記憶装置と、
前記主記憶装置に保持されたデータの一部を保持するキャッシュメモリ部と、前記主記憶装置又は前記キャッシュメモリ部に保持されたデータを用いて演算を行なう演算処理部とを有する演算処理装置と、
他の情報処理装置から受信したデータが、前記演算処理装置が待ち合わせているデータであるか否かを判定する判定部とをそなえ、
前記受信したデータが前記演算処理装置が待ち合わせているデータであると、前記判定部が判定した場合に、前記データ作成部が前記パディング付きデータを作成し、前記格納処理部が、前記パディング付きデータを前記キャッシュメモリ部に格納することを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
複数の情報処理装置を有する並列計算機システムにおいて、
調整情報を備えるデータを送信する第１の情報処理装置と、
データを保持する記憶装置と、受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成するデータ作成部と、前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備える第２の情報処理装置とを備え、
前記調整情報が調整の要否を示す要否情報をそなえ、前記要否情報が調整が必要であることを示す場合に、前記データ作成部が、前記パディング付きデータを作成することを特徴とする並列計算機システム。
【請求項７】
前記調整情報が調整サイズ情報をそなえ、前記データ作成部が、前記データに対して前記調整サイズ情報に合わせたパディングを付加することにより、前記パディング付きデータを作成することを特徴とする請求項６記載の並列計算機システム。
【請求項８】
複数の情報処理装置を有する並列計算機システムにおいて、
前記情報処理装置は、
データを保持する記憶装置と、
受信したデータのデータサイズ情報及び書き込み先アドレス情報と調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断する判断部と、
前記判断部が前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成するデータ作成部と、
前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備えることを特徴とする並列計算機システム。
【請求項９】
前記情報処理装置は、
前記調整サイズ情報を格納する調整サイズ情報格納部を備え、
前記判断部が、前記調整サイズ情報格納部から前記調整サイズ情報を取得することを特徴とする請求項８記載の並列計算機システム。
【請求項１０】
前記情報処理装置は、
データを保持する主記憶装置と、
前記主記憶装置に保持されたデータの一部を保持するキャッシュメモリ部と、前記主記憶装置又は前記キャッシュメモリ部に保持されたデータを用いて演算を行なう演算処理部とを有する演算処理装置と、
他の情報処理装置から受信したデータが、前記演算処理装置が待ち合わせているデータ
であるか否かを判定する判定部とをそなえ、
前記受信したデータが前記演算処理装置が待ち合わせているデータであると、前記判定部が判定した場合に、前記データ作成部が前記パディング付きデータを作成し、前記格納処理部が、前記パディング付きデータを前記キャッシュメモリ部に格納することを特徴とする請求項６〜９のいずれか１項に記載の並列計算機システム。
【請求項１１】
複数の情報処理装置を備える並列計算機システムを構成する情報処理装置の制御方法において、
調整情報を備えるデータを送信し、
受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成し、
作成された前記パディング付きデータを記憶装置に格納し、
前記調整情報が調整の要否を示す要否情報をそなえ、前記要否情報が調整が必要であることを示す場合に、前記パディング付きデータを作成することを特徴とする情報処理装置の制御方法。
【請求項１２】
前記調整情報が調整サイズ情報をそなえ、
前記データに対して前記調整サイズ情報に合わせたパディングを付加することにより、前記パディング付きデータを作成することを特徴とする請求項１１記載の情報処理装置の制御方法。
【請求項１３】
複数の情報処理装置を備える並列計算機システムを構成する情報処理装置の制御方法において、
受信したデータのデータサイズ情報及び書き込み先アドレス情報と調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断し、
前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成し、
作成された前記パディング付きデータを記憶装置に格納することを特徴とする情報処理装置の制御方法。
【請求項１４】
前記調整サイズ情報を格納する調整サイズ情報格納部から前記調整サイズ情報を取得することを特徴とする請求項１３記載の情報処理装置の制御方法。
【請求項１５】
他の情報処理装置から受信したデータが、データを保持する主記憶装置に保持されたデータの一部を保持するキャッシュメモリ部と、前記主記憶装置又は前記キャッシュメモリ部に保持されたデータを用いて演算を行なう演算処理部とを有する演算処理装置が待ち合わせているデータであるか否かを判定し、
前記受信したデータが前記演算処理装置が待ち合わせているデータであると判定した場合に、前記パディング付きデータを作成し、当該パディング付きデータを前記キャッシュメモリ部に格納することを特徴とする請求項１１〜１４のいずれか１項に記載の情報処理装置の制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
このため、この情報処理装置は、並列計算機システムに含まれる複数の情報処理装置のいずれかにおいて、データを保持する記憶装置と、受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成するデータ作成部と、前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備え、前記調整情報が調整の要否を示す要否情報をそなえ、前記要否情報が調整が必要であることを示す場合に、前記データ作成部が、前記パディング付きデータを作成する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
また、この情報処理装置は、並列計算機システムに含まれる複数の情報処理装置のいずれかにおいて、データを保持する記憶装置と、受信したデータのデータサイズ情報及び書き込み先アドレス情報と調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断する判断部と、前記判断部が前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成するデータ作成部と、前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備える。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
さらに、この並列計算機システムは、複数の情報処理装置を有する並列計算機システムにおいて、調整情報を備えるデータを送信する第１の情報処理装置と、データを保持する記憶装置と、受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成するデータ作成部と、前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備える第２の情報処理装置とを備え、前記調整情報が調整の要否を示す要否情報をそなえ、前記要否情報が調整が必要であることを示す場合に、前記データ作成部が、前記パディング付きデータを作成する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
また、この並列計算機システムは、複数の情報処理装置を有する並列計算機システムにおいて、前記情報処理装置は、データを保持する記憶装置と、受信したデータのデータサイズ情報及び書き込み先アドレス情報と調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断する判断部と、前記判断部が前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成するデータ作成部と、前記データ作成部によって作成された前記パディング付きデータを前記記憶装置に格納する格納処理部とを備える。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
また、この情報処理装置の制御方法は、複数の情報処理装置を備える並列計算機システムを構成する情報処理装置の制御方法において、調整情報を備えるデータを送信し、受信したデータに含まれる調整情報に基づいて、前記データに対してパディングを付加したパディング付きデータを作成し、作成された前記パディング付きデータを記憶装置に格納し、前記調整情報が調整の要否を示す要否情報をそなえ、前記要否情報が調整が必要であることを示す場合に、前記パディング付きデータを作成する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
さらに、この情報処理装置の制御方法は、複数の情報処理装置を備える並列計算機システムを構成する情報処理装置の制御方法において、受信したデータのデータサイズ情報及び書き込み先アドレス情報と調整サイズ情報とに基づき、当該受信したデータに対する調整の要否を判断し、前記調整が必要であると判断した場合に、受信したデータのデータサイズ情報及び書き込み先アドレス情報と前記調整サイズ情報とに基づき、前記データに対して前記調整サイズ情報に合わせたパディングを付加したパディング付きデータを作成し、作成された前記パディング付きデータを記憶装置に格納する。
【国際調査報告】
2014038070.tif 000026
2014038070.tif 000027
2014038070.tif 000028
2014038070.tif 000029