以下に、本発明の実施の形態について図面を参照して説明する。
図2は、本発明の情報処理装置の第1の実施の形態を示す図である。
本形態は図2に示すように、マスタコア10−1〜10−nと、相互結合網100と、スレーブコア20−1〜20−mとから構成されている。さらに相互結合網100は、マスタアダプタ1000−1〜1000−nと、複数のルータノード200と、スレーブアダプタ2000−1〜2000−mとから構成されている。マスタコア10−1〜10−nと、スレーブコア20−1〜20−mとは、マスタアダプタ1000−1〜1000−nと、ルータノード200と、スレーブアダプタ2000−1〜2000−mとを介して接続された構成となっている。
本形態において、比較機能をスレーブコア20−1〜20−m側に設けることで、多数のマスタコア10−1〜10−nがあることに起因するコスト増加の課題と、任意のマスタコア10−1〜10−nで比較を行うことができないという課題の両者を解決する。その際に、マスタコア10−1〜10−n側に比較機能を設ける一般的な技術においては、比較点が1つ存在する。一方、本発明では、任意のマスタコア10−1〜10−nが任意のスレーブコア20−1〜20−m側に参照できることから、比較点が複数に増える。そのため、それを解決すべく、要求を行うマスタコア10−1〜10−nと、要求の受理と比較とを行うスレーブコア20−1〜20−mとが協調して、離れた要素同士の比較機能の同期化を行うことに特徴がある。
以下、実施例に即して説明する。
(実施例)
図2に示した形態において、マスタコア10−1〜10−nは、CPU、信号処理プロセッサ、または、VLIW(Very Long Instruction Word)プロセッサ、構成可能プロセッサ等の、プログラム動作が可能な演算装置である。
また、スレーブコア20−1〜20−mは、メモリやI/Oなどの周辺装置である。
また、マスタコア10−1〜10−n、スレーブコア20−1〜20−m、マスタアダプタ1000−1〜1000−n、スレーブアダプタ2000−1〜2000−m、ルータノード200、相互結合網100は、それぞれ別パッケージ構成をとるものであっても良い。また、これらは、SoC(System-on-Chip)内部の回路構成あるいは別チップによるSiP(System-in-Package)構成、3次元LSI構成、さらにその組み合わせからなる構成をとるものであっても良い。
ルータノード200は、設定された経路情報に従い、受信したネットワークパケットを隣接するルータへ送信する機能を実現する。
マスタアダプタ1000−1〜1000−nは、マスタコア10−1〜10−nからのアクセス要求をネットワークパケットに変換する。あるいは、受信したネットワークパケットをマスタコア10−1〜10−nへのアクセス応答に変換する。また、本実施例においては、比較開始・解除の要求を発する機能を備えている。ここで、マスタアダプタ1000−1〜1000−nは、ルータノード200またはマスタコア10−1〜10−nから独立した手段として存在している。また、マスタアダプタ1000−1〜1000−nは、アクセス・パケット変換機能を果たす回路であれば、ルータノード200内またはマスタコア10−1〜10−n内に埋め込まれていても良い。
スレーブアダプタ2000−1〜2000−mは、受信したネットワークパケットをスレーブコア20−1〜20−mへのアクセス要求に変換する。あるいは、スレーブコア20−1〜20−mからのアクセス応答をネットワークパケットに変換する。また、本実施例においては、比較開始・解除の要求を受理し、指定されたマスタコア10−1〜10−n間のアクセス要求を比較する役割を持つ。ここで、スレーブアダプタ2000−1〜2000−mは、ルータノード200またはスレーブコア20−1〜20−mから独立した手段として存在している。また、スレーブアダプタ2000−1〜2000−mは、アクセス・パケット変換機能を果たす回路であれば、ルータノード200内またはスレーブコア20−1〜20−m内に埋め込まれていても良い。
図3は、図2に示した情報処理装置の動作の一例を説明するための図である。この例では、マスタコア10−1〜10−nからマスタアダプタ1000−1〜1000−n、複数のルータノード200、中間ルータノード群、スレーブアダプタ2000−1〜2000−mを経由して、スレーブコア20−1〜20−mにデータを転送する方法について説明する。
ステップ1にてマスタコア10−1〜10−nが、マスタアダプタ1000−1〜1000−nに、リードアクセスまたはライトアクセスといった、アクセス要求を発行する。このとき、マスタコア10−1〜10−nによってアクセス要求されるマスタアダプタ1000−1〜1000−nは、当該マスタコア10−1〜10−nに接続されているマスタアダプタ1000−1〜1000−nである。
アクセス要求されたマスタアダプタ1000−1〜1000−nは、マスタコア10−1〜10−nのアクセス要求を、相互結合網上の転送に必要なパケット構成に変換する。そして、変換されたパケットがステップ2にてルータノード200に渡される。
ルータノード200は、マスタアダプタ1000−1〜1000−nから渡されたパケットの宛先情報に従って、パケットを別のルータノードに転送する。スレーブコア20−1〜20−mが隣接したルータノード200に接続されていない限り、このパケットはステップ3にて様々な中間ルータノード群を経由して、ルータノード200へと届く。
ルータノード200は、パケットの宛先情報により、自身に接続されたスレーブコア20−1〜20−mが処理すべきパケットと判断する。そして、ステップ4にてその当該パケットをスレーブアダプタ2000−1〜2000−mに渡す。
スレーブアダプタ2000−1〜2000−mは、ルータノード200から渡されたパケットの解析と展開を行うことで、スレーブコア20−1〜20−mへのアクセス要求へと変換し、そして、ステップ5にてスレーブコア20−1〜20−mへのアクセスを発行する。
図4は、図2に示した相互結合網100内で転送されるパケットの一構成例を示す図である。
図4を参照すると、パケットは、ルータノードの制御情報であるヘッダと、コアへのアクセス情報からなるボディと、パケットの正当性を保証するテイラとの3つのパートから構成される。それぞれのパートは、ルータノード間の転送の際に、フリットと呼ばれる、さらに細かい単位へ分割される。
例えば、ヘッダについては、宛先ノードと、パケットサイズと、送信元コアと、パケット種別と、要求の順序関係を保証する逐次番号とから構成されるフリットに分割される。
また、ボディについては、それぞれの要求種別によって色々な構成が考えられるが、ここでは比較開始・比較解除要求について説明する。この要求においては、当該パケットが比較開始要求であるかまたは比較解除要求であるかを示す情報と、どのマスタコアと比較するかという比較コア番号と、どのアドレス範囲を比較するかという比較範囲といった情報とから構成される。
また、テイラについては、パケット全体のCRC(サイクリックリダンダンシコード)からなるフリットに分割される。
なお、このパケットやフリット構成はあくまで一例であるため、相互結合網を構築するルータノードの仕様に従うものであれば良い。
図5は、図2に示したスレーブアダプタ2000−1〜2000−mにおける比較開始の動作の一例を説明するための図である。
図5では、スレーブアダプタ2000−1〜2000−mにおいて受信した、第1のマスタコアであるマスタコアAと第2のマスタコアであるマスタコアBとからの要求に対して、比較開始動作を行う様子を示している。ここで、マスタコアA及びマスタコアBは、マスタコア10−1〜10−nのうち任意のマスタコアである。
マスタコアAは、第1のアクセス要求であるパケット#A1〜A4を送信し、その後、マスタコアBとの間にてパケットの比較を行うための第1の比較開始要求である比較開始パケットを送信する。この要求を受信したスレーブアダプタ2000−1〜2000−mは、マスタコアBからマスタコアAとの比較開始パケットを受信していないことから、マスタコアBからのアクセス要求待ちを行う。
一方、マスタコアBから送信された第2のアクセス要求であるパケット#B1〜B4を受信し、その後、マスタコアBから送信されたマスタコアAとの間にてパケットの比較を行うための第2の比較開始要求である比較開始パケットを受信すると、時刻T0にて同期を行う。これ以降のパケットは、本スレーブアダプタ2000−1〜2000−mにおいて、パケットごとに比較一致検証が行われる。パケットの到着が同時でなくても比較可能である。
したがって、マスタコアAのパケット#A5とマスタコアBのパケット#B5とが、またマスタコアAのパケット#A6とマスタコアBのパケット#B6とがそれぞれ比較される。比較された結果、一致していればアクセスを許可し、またそうでなければ、復旧依頼を返す。
このように、スレーブアダプタ2000−1〜2000−mは、比較開始パケットを活用してスレーブアダプタ2000−1〜2000−m上でマスタコア10−1〜10−n間の要求の同期を取り、任意のマスタコア10−1〜10−n間を高信頼モードに移行させることが可能である。
図6は、図2に示したスレーブアダプタ2000−1〜2000−mにおける比較解除の動作の一例を説明するための図である。
図6では、スレーブアダプタ2000−1〜2000−mにおいて受信した、マスタコアAとマスタコアBとからの要求に対して、比較解除動作を行う様子を示している。ここで、マスタコアA及びマスタコアBは、マスタコア10−1〜10−nのうち任意のマスタコアである。
マスタコアAは、パケット#A1〜A4を送信する。一方、マスタコアBは、パケット#B1〜B4を送信する。スレーブアダプタ2000−1〜2000−mは、対応する順序関係に相当するパケット(パケット#A1とパケット#B1、パケット#A2とパケット#B2、パケット#A3とパケット#B3、パケット#A4とパケット#B4)を比較する。
その後、マスタコアAから送信された第1の比較解除要求であるマスタコアBとの比較解除パケットを受信する。マスタコアAからマスタコアBとの比較解除パケットを受信したスレーブアダプタ2000−1〜2000−mは、マスタコアBからマスタコアAとの比較解除パケットを受信していないことから、マスタコアBからのアクセス要求待ちを行う。その後、マスタコアBから送信された、第2の比較解除要求であるマスタコアAとの比較解除パケットを受信すると、時刻T1にて同期を行う。これ以降のパケットは、本スレーブアダプタ2000−1〜2000−mにおいて、比較一致検証が行われない。
したがって、マスタコアAからのパケット#A5、A6、及びマスタコアBのパケット#B5、B6は独立な参照が行われる。
このように、スレーブアダプタ2000−1〜2000−mは比較解除パケットを活用して、スレーブアダプタ2000−1〜2000−m上でマスタコア10−1〜10−n間の要求の同期を取り、高信頼モード下にある任意のマスタコア10−1〜10−nを、比較の必要ない高性能モードに移行させることが可能である。
以下に、マスタアダプタ1000−1〜1000−nの接続形態、動作及び内部構成について説明する。ここで、マスタアダプタ1000−1の接続形態、動作及び内部構成を例に挙げて説明する。なお、マスタアダプタ1000−2〜1000−nの接続形態、動作及び内部構成については、マスタアダプタ1000−1の接続形態、動作及び内部構成と同様である。
図7は、図2に示したマスタアダプタ1000−1の接続形態の一例を示す図である。
図7を参照すると、マスタアダプタ1000−1は、マスタコア10−1からのマスタコア送信信号1010S及びマスタコア10−1へのマスタコア受信信号1010Rを介して、マスタコア10−1と接続される。また、ルータノード200へのマスタアダプタ送信信号1020S及びルータノード200からのマスタアダプタ受信信号1020Rを介して、ルータノード200と接続される。
ここで、マスタコア送信信号1010Sとマスタコア受信信号1010Rとでは、マスタコア10−1からの、読み書きといったアクセス情報、及びその読み書きに対応する応答情報が伝えられる。一方、マスタアダプタ送信信号1020S及びマスタアダプタ受信信号1020Rでは、パケットがやり取りされる。
図8は、図7に示した形態におけるマスタアダプタ1000−1のパケット送信の動作の一例を説明するための図である。この例では、マスタコア10−1からのアクセス要求の処理について説明する。
マスタアダプタ1000−1は、ステップ11にてマスタコア10−1からのアクセス要求を受理する。
そして、マスタアダプタ1000−1は、受理したアクセス要求をパケットに変換して、ステップ12にてルータノード200に送信する。
図9は、図7に示した形態におけるマスタアダプタ1000−1のパケット受信の動作の一例を説明するための図である。この例では、マスタコア10−1からのアクセス要求に対する応答の処理について説明する。
マスタアダプタ1000−1は、ステップ21にてルータノード200からパケットを受理する。
そして、マスタアダプタ1000−1は、そのパケットがマスタコア10−1への応答処理であることを認識し、その結果、パケットを応答情報に変換して、ステップ22にてマスタコア10−1に送信する。
図10は、図7に示した形態におけるマスタアダプタ1000−1の同期パケット送信の動作の一例を説明するための図である。この例では、マスタコア10−1からの比較開始要求・比較解除要求の処理について説明する。
比較開始要求及び比較解除要求は、該当するスレーブコアに対して制御要求を出すメモリマップの参照によって判断されても良いし、特殊なプロセッサ命令によって判断しても良い。いずれにせよ何らかの通知手段によって判断されるものとする。
また、スレーブコア全体に対して比較開始・比較解除を行うか、それとも、ある特定のアドレス範囲のみに比較開始・比較解除を行うか、といった指定を、あらかじめマスタアダプタ1000−1の制御レジスタに設定しておいても良いし、また表などで保持していても良いし、またマスタコア10−1から指定しても良い。いずれにせよ何らかの通知手段によって指定されているものとする。
マスタアダプタ1000−1は、ステップ31にてマスタコア10−1からの、あるスレーブコア20−1〜20−mに対する比較開始要求または比較解除要求を受理する。
そして、マスタアダプタ1000−1は、そのアクセス要求をパケット(図4参照)に変換して、ステップ32にて同期パケットとしてルータノード200に送信する。ルータノードは該当するスレーブコア20−1〜20−mへパケットを配送する。
図11は、図2に示したマスタアダプタ1000−1の典型的な内部構成を示す図である。
図11を参照すると、マスタアダプタ1000−1は、マスタパケット送信手段1100と、マスタパケット受信手段1200と、比較同期送信手段1300とを有している。
マスタパケット送信手段1100は、マスタコア10−1からのアクセスをパケットに変換してルータノード200へ送信する。
マスタパケット受信手段1200は、ルータノード200からのパケットを受信してマスタコア10−1への応答に変換する。
比較同期送信手段1300は、比較開始・解除の要求パケットを生成する。比較同期送信手段1300は、マスタパケット送信手段1100と、マスタコア送信信号1010Sとに接続される。
図12は、図11に示した構成におけるマスタアダプタ1000−1のパケット送信の内部動作の一例を説明するための図である。この例では、マスタコア10−1からのスレーブコア20−1〜20−mへのアクセス要求処理について説明する。
マスタパケット送信手段1100は、ステップ41にてマスタコア送信信号1010Sを介して、マスタコア10−1からスレーブコア20−1〜20−mへのアクセス要求を受理する。
そして、マスタパケット送信手段1100は、受理したアクセス要求をステップ42にてルータノード200へのパケットへと変換して送信する。
図13は、図11に示した構成におけるマスタアダプタ1000−1のパケット受信の内部動作の一例を説明するための図である。この例では、スレーブコア20−1〜20−mからマスタコア10−1へのアクセス応答処理について説明する。
マスタパケット受信手段1200は、ステップ51にてマスタアダプタ受信信号1020Rを介して、パケットを受理する。
そして、マスタパケット受信手段1200は、受理したパケットをマスタコア10−1への応答へと変換して、ステップ52にてマスタコア受信信号1010Rを介して、マスタコア10−1へと渡す。
図14は、図11に示した構成におけるマスタアダプタ1000−1の同期パケット送信の内部動作の一例を説明するための図である。この例では、マスタコア10−1からの比較開始・解除要求処理について説明する。
比較同期送信手段1300は、ステップ61にてマスタコア送信信号1010Sを介して受理されたアクセス要求が、他のマスタコアとの比較開始ないし比較解除要求アクセスであることを認識する。
そして、比較同期送信手段1300は、認識したアクセス要求に基づき、ステップ62にて比較開始または比較解除のためのパケットをマスタパケット送信手段1100に渡す。
その後、マスタパケット送信手段1100は、比較同期送信手段1300から渡されたパケットをステップ63にてマスタアダプタ送信信号1020Sを介してルータノード200へ送信する。
マスタコア10−1からの比較開始または比較解除要求アクセスは、該当するメモリマップから判断して、どのマスタコア10−2〜10−nとの間の要求かどうかを判断しても良い。また、比較同期送信手段1300が提供するレジスタにあらかじめ設定しておいて、マスタコア10−1から送信制御レジスタへの書込みによって判断しても良い。いずれにせよ、マスタコア10−1からの通知を受理できる方法であればどのようなものであってもかまわない。
また、この通知の際に、複数のスレーブコア20−1〜20−mへのパケットを同時に複製しても良いし、あるいは、マスタコア10−1が逐次的に要求を送っても良い。同時でも逐次でもネットワーク上での時間のずれが生じるのであるが、これはスレーブコア20−1〜20−m側での同期によって排除可能であるので、このようなオプションも可能となっている。
以下に、スレーブアダプタ2000−1〜2000−mの接続形態、動作及び内部構成について説明する。ここで、スレーブアダプタ2000−1の接続形態、動作及び内部構成を例に挙げて説明する。なお、スレーブアダプタ2000−2〜2000−mの接続形態、動作及び内部構成については、スレーブアダプタ2000−1の接続形態、動作及び内部構成と同様である。
図15は、図2に示したスレーブアダプタ2000−1の接続形態の一例を示す図である。
図15を参照すると、スレーブアダプタ2000−1は、スレーブコア20−1からのスレーブコア送信信号2010S及びスレーブコア20−1へのスレーブコア受信信号2010Rを介して、スレーブコア20−1と接続される。また、ルータノード200へのスレーブアダプタ送信信号2020S及びルータノード200からのスレーブアダプタ受信信号2020Rを介して、ルータノード200と接続される。
ここで、スレーブコア送信信号2010Sとスレーブコア受信信号2010Rとでは、スレーブコア20−1からの、読み書きといったアクセス情報、及びその読み書きに対応する応答情報が伝えられる。一方、スレーブアダプタ送信信号2020S及びスレーブアダプタ受信信号2020Rでは、パケットがやり取りされる。
図16は、図15に示した形態におけるスレーブアダプタ2000−1のパケット受信の動作の一例を説明するための図である。この例では、スレーブコア20−1へのアクセス要求の処理について説明する。
スレーブアダプタ2000−1は、ステップ71にてスレーブコア20−1へのアクセス要求のパケットを受理する。
そして、スレーブダプタ2000−1は、受理したパケットがスレーブコア20−1への通常アクセス処理であることを認識し、その結果、パケットをアクセス要求に変換して、ステップ72にてスレーブコア20−1に送信する。
図17は、図15に示した形態におけるスレーブダプタ2000−1のパケット送信の動作の一例を説明するための図である。この例では、スレーブコア20−1からのアクセス応答の処理について説明する。
スレーブアダプタ2000−1は、ステップ81にてスレーブコア20−1からアクセス応答を受理する。
そして、スレーブアダプタ2000−1は、そのアクセス応答をパケットに変換して、ステップ82にてルータノード200に送信する。
ここで、アクセス応答に対する応答先であるマスタコア10−1〜10−nの情報がわかるのは、アクセス要求が一度スレーブアダプタ2000−1を介するからであり、そこに記憶された情報によって応答先が判明する。このような機能は、相互結合網を持つシステムでは非常に基本的な機能であるため、以降では省略する。
図18は、図15に示した形態におけるスレーブアダプタ2000−1の同期パケット受信の動作の一例を説明するための図である。この例では、マスタコア10−1,10−nからのスレーブコア20−1への比較処理の成功例について説明する。
スレーブアダプタ2000−1は、ステップ91にてマスタコア10−1からスレーブコア20−1へのアクセス要求を受理する。当該要求が比較対象のアクセスであることを認識し、比較対象のマスタコア10−nからのアクセス要求を待つ。
その後、スレーブアダプタ2000−1は、ステップ92にてマスタコア10−nからスレーブコア20−1へのアクセス要求を受理する。当該要求がマスタコア10−1との比較対象のアクセスであることを認識し、さらに別の比較対象のマスタコア10−nからのアクセス要求であると判断する。この時、当該アクセス同士を比較する。例えば、読み出し要求であれば、アドレスを、書きこみ要求であれば、アドレス及びデータの比較を行う。また、読み出し要求の場合、読み出し番地だけでなく、読み出した後のデータについて比較を行っても良い。
そして、スレーブアダプタ2000−1は、比較の結果、一致していると判断して、その結果、スレーブコア受信信号2010Rを介して、ステップ93にてスレーブコア20−1へのアクセス要求を渡す。
図19は、図15に示した形態におけるスレーブアダプタ2000−1の同期パケット受信の動作の他の例を説明するための図である。この例では、マスタコア10−1,10−nからのスレーブコア20−1への比較処理の失敗例について説明する。
スレーブアダプタ2000−1は、ステップ101にてマスタコア10−1からスレーブコア20−1へのアクセス要求を受理する。当該要求が比較対象のアクセスであることを認識し、比較対象のマスタコア10−nからのアクセス要求を待つ。
その後、スレーブアダプタ2000−1は、ステップ102にてマスタコア10−nからスレーブコア20−1へのアクセス要求を受理する。当該要求がマスタコア10−1との比較対象のアクセスであることを認識し、さらに別の比較対象のマスタコア10−nからのアクセス要求であると判断する。この時、当該アクセス同士を比較する。例えば、読み出し要求であれば、アドレスを、書きこみ要求であれば、アドレス及びデータの比較を行う。また、読み出し要求の場合、読み出し番地だけでなく、読み出した後のデータについて比較を行っても良い。
そして、スレーブアダプタ2000−1は、比較の結果、異なっていると判断して、その結果、ステップ103にてスレーブアダプタ送信信号2020Sを介して、比較対象のマスタコア10−1,10−nにエラー応答パケットを送信する。
図20は、図2に示したスレーブアダプタ2000−1の典型的な内部構成を示す図である。
図20を参照すると、スレーブアダプタ2000−1は、スレーブパケット送信手段2100と、スレーブパケット受信手段2200と、比較同期受信手段2300とを有している。
スレーブパケット送信手段2100は、スレーブコア20−1からの応答をパケットに変換してルータノード200へ送信する。
スレーブパケット受信手段2200は、ルータノード200からのパケットを受信してスレーブコア20−1へのアクセスに変換する。
比較同期受信手段2300は、比較対象のマスタコア10−1〜10−nからのパケット比較を行う。
また、スレーブパケット受信手段2200は、比較同期受信手段2300との連携によって、比較対象のマスタコア10−1〜10−nからのパケットを比較同期受信手段2300へと渡す機能を持つ。比較開始及び比較解除の成立は同期パケットの通過によって判断することが可能である。あるいは、比較同期受信手段2300から通知を受けても良い。なお、それぞれのパケットはコアからの発行順に比較同期手段2300に渡される。このような発行順序を決めるために、パケットヘッダに含まれる逐次番号などを用いて整列化可能である。
スレーブパケット受信手段2200及び比較同期受信手段2300は、相互結合網によるパケットの到達ズレを考慮して、複数のバッファを内部に備えていてもよい。
比較同期受信手段2300は、比較開始・解除パケットで、スレーブコア20−1へのアクセスの同期をとることである。すなわち、比較開始・解除パケットよりも前の発行順序のパケットはすでに処理を完了してなくてはならず、また、それ以降の発行順序のパケットは比較開始・解除が行われてから処理を開始しなくてはならない。
図21は、図20に示した構成におけるスレーブアダプタ2000−1のパケット送信の内部動作の一例を説明するための図である。この例では、スレーブコア20−1からのアクセス応答の処理について説明する。
スレーブパケット送信手段2100は、ステップ111にてスレーブコア20−1からアクセス応答を受理する。
そして、スレーブパケット送信手段2100は、そのアクセス応答をパケットに変換して、ステップ112にてルータノード200に送信する。
ここで、アクセス応答に対する応答先であるマスタコア10−1〜10−nの情報がわかるのは、アクセス要求が一度スレーブパケット受信手段2200を介するからであり、そこに記憶された情報によって応答先が判明する。このような機能は、相互結合網を持つシステムでは非常に基本的な機能であるため、以降では省略する。
図22は、図20に示した形態におけるスレーブアダプタ2000−1のパケット受信の内部動作の一例を説明するための図である。この例では、スレーブコア20−1へのアクセス要求の処理について説明する。
スレーブパケット受信手段2200は、ステップ121にてスレーブコア20−1へのアクセス要求を受理する。
そして、スレーブパケット受信手段2200は、受理したパケットがスレーブコア20−1への通常アクセス処理であることを認識し、その結果、ステップ122にてパケットをアクセス要求に変換して、スレーブコア20−1に送信する。
図23は、図20に示した形態におけるスレーブアダプタ2000−1の比較開始同期パケット受信の内部動作の一例を説明するための図である。この例では、マスタコア10−1とマスタコア10−nとの比較開始処理について説明する。
スレーブパケット受信手段2200は、ステップ131にて比較対象のマスタコア10−1からスレーブコア20−1への比較開始要求パケットを受理する。
そして、スレーブパケット受信手段2200は、ステップ131にて受理した比較開始要求パケットをステップ132にて比較同期受信手段2300へと渡す。
また、スレーブパケット受信手段2200は、ステップ133にて別の比較対象のマスタコア10−nからスレーブコア20−1へのアクセス要求パケットを受理する。
そして、スレーブパケット受信手段2200は、ステップ133にて受理したアクセス要求パケットをアクセス情報に変換し、ステップ134にてスレーブコア20−1へと渡す。
また、スレーブパケット受信手段2200は、ステップ135にて最初の比較対象のマスタコア10−1からスレーブコア20−1へのアクセス要求パケットを受理する。しかし、もう一方の比較対象のマスタコア10−nから比較開始要求を受理していないので、当該パケットを停止する。
その後、スレーブパケット受信手段2200は、ステップ136にてもう一方の比較対象のマスタコア10−nからスレーブコア20−1への比較開始要求パケットを受理する。
そして、スレーブパケット受信手段2200は、ステップ136にて受理した比較開始要求パケットをステップ137にて比較同期受信手段2300へと渡す。これで、比較同期受信手段2300はマスタコア10−1からのアクセスとマスタコア10−nからのアクセスとの比較を開始する。
スレーブパケット受信手段2200は、先に停止させていたパケットをステップ138にて比較同期受信手段2300へと渡す。
図24は、図20に示した構成におけるスレーブアダプタ2000−1の比較時の内部動作の一例を説明するための図である。この例では、マスタコア10−1とマスタコア10−nとの比較処理が開始されており、比較の結果、成功した場合について説明する。
スレーブパケット受信手段2200は、ステップ141にて比較対象のマスタコア10−1からスレーブコア20−1へのアクセス要求パケットを受理する。
そして、スレーブパケット受信手段2200は、ステップ141にて受理したアクセス要求パケットをステップ142にて比較同期受信手段2300へと渡す。
また、スレーブパケット受信手段2200は、ステップ143にて別の比較対象のマスタコア10−nからスレーブコア20−1へのアクセス要求パケットを受理する。
そして、スレーブパケット受信手段2200は、ステップ143にて受理したアクセス要求パケットをステップ144にて比較同期受信手段2300へと渡す。
比較同期受信手段2300は、それぞれのパケットの情報の比較を行い、一致しているので、ステップ145にてスレーブコア20−1へのアクセスを行う。つまり、一致したパケットをアクセス要求に変換し、スレーブコア20−1へ送信する。
ここで、読出し要求の場合は読出しデータの比較も追加でおこなってよい。また、スレーブコア20−1へのアクセスを1つのアクセスにマージして、読み出したデータを複製して、マスタコア10−1,10−nへ応答してもよい。このように、アクセスの効率化・データの高信頼化に関する従来手法を組み合わせることが可能である。
図25は、図20に示した構成におけるスレーブアダプタ2000−1の比較時の内部動作の他の例を説明するための図である。この例では、マスタコア10−1とマスタコア10−nとの比較処理が開始されており、比較の結果、失敗した場合について説明する。
スレーブパケット受信手段2200は、ステップ151にて比較対象のマスタコア10−1からスレーブコア20−1へのアクセス要求パケットを受理する。
そして、スレーブパケット受信手段2200は、ステップ151にて受理したアクセス要求パケットをステップ152にて比較同期受信手段2300へと渡す。
また、スレーブパケット受信手段2200は、ステップ153にて別の比較対象のマスタコア10−nからスレーブコア20−1へのアクセス要求パケットを受理する。
そして、スレーブパケット受信手段2200は、ステップ153にて受理したアクセス要求パケットをステップ154にて比較同期受信手段2300へと渡す。
比較同期受信手段2300は、それぞれのパケットの情報の比較を行い、不一致だったので、ステップ155にてスレーブパケット送信手段2100を介して、それぞれのマスタコア10−1,10−nへエラー応答パケットを返す。
図26は、図20に示した構成におけるスレーブアダプタ2000−1の比較解除同期パケット受信の内部動作の一例を説明するための図である。この例では、マスタコア10−1とマスタコア10−nとの比較解除処理について説明する。
スレーブパケット受信手段2200は、ステップ161にて比較対象のマスタコア10−1からスレーブコア20−1への比較解除要求パケットを受理する。
そして、スレーブパケット受信手段2200は、ステップ161にて受理した比較解除要求パケットをステップ162にて比較同期受信手段2300へと渡す。
また、スレーブパケット受信手段2200は、ステップ163にて別の比較対象のマスタコア10−nからスレーブコア20−1へのアクセス要求パケットを受理する。
そして、スレーブパケット受信手段2200は、ステップ163にて受理したアクセス要求パケットをアクセス情報に変換し、ステップ164にてスレーブコア20−1へと渡す。
また、スレーブパケット受信手段2200は、ステップ165にて最初の比較対象のマスタコア10−1からスレーブコア20−1へのアクセス要求パケットを受理する。しかし、もう一方の比較対象のマスタコア10−nから比較解除要求を受理していないので、当該パケットを停止する。
その後、スレーブパケット受信手段2200は、ステップ166にてもう一方の比較対象のマスタコア10−nからスレーブコア20−1への比較解除要求パケットを受理する。
そして、スレーブパケット受信手段2200は、ステップ166にて受理した比較解除要求パケットを比較同期受信手段2300へと渡す。これで、比較同期受信手段2300はマスタコア10−1からのアクセスとマスタコア10−nからのアクセスとの比較をステップ167にて解除する。
また、スレーブパケット受信手段2200は、先に停止させていたパケットをアクセス情報に変換して、ステップ168にてスレーブコア20−1へと渡す。
次に、スレーブパケット受信手段2200でパケットを停止させるのではなく、マスタアダプタ1000−1〜1000−n側でパケットを停止させる他の実施例について説明する。
図27は、図20に示した構成におけるスレーブアダプタ2000−1の比較開始同期パケット受信の内部動作の他の例を説明するための図である。この例では、マスタコア10−1とマスタコア10−nとの比較開始処理について説明する。
スレーブパケット受信手段2200は、ステップ171にて比較対象のマスタコア10−1からスレーブコア20−1への比較開始要求パケットを受理する。
そして、スレーブパケット受信手段2200は、ステップ171にて受理した比較開始要求パケットをステップ172にて比較同期受信手段2300へと渡す。
また、スレーブパケット受信手段2200は、ステップ173にて別の比較対象のマスタコア10−nからスレーブコア20−1へのアクセス要求パケットを受理する。
スレーブパケット受信手段2200は、ステップ173にて受理したアクセス要求パケットをアクセス情報に変換し、ステップ174にてスレーブコア20−1へと渡す。
また、スレーブパケット受信手段2200は、ステップ175にてもう一方の比較対象のマスタコア10−nからスレーブコア20−1への比較開始要求パケットを受理する。
スレーブパケット受信手段2200は、ステップ175にて受理した比較開始要求パケットをステップ176にて比較同期受信手段2300へと渡す。これで、比較同期受信手段2300はマスタコア10−1からのアクセスとマスタコア10−nからのアクセスとの比較を開始する。
その後、スレーブパケット受信手段2200は、比較開始の準備ができたことをステップ177にてスレーブパケット送信手段2100を介して、マスタコア10−1,10−nのマスタアダプタ1000−1,1000−nに通知する。
図28は、図11に示した構成におけるマスタアダプタ1000−1における比較動作の一例を説明するための図である。この例では、マスタコア10−1とマスタコア10−nとの比較開始処理について説明する。
比較同期送信手段1300は、ステップ181にて比較開始要求のアクセスをマスタコア10−1より受け取る。
比較開始要求を受け取った比較同期送信手段1300は、対応するスレーブコア20−1への比較開始要求パケットを生成して、ステップ182にてマスタパケット送信手段1100へと渡す。
すると、マスタパケット送信手段1100は、ステップ182にて渡された比較開始要求パケットをステップ183にてルータノード200へ送信する。
また、マスタパケット送信手段1100は、ステップ184にてマスタコア10−1からアクセス要求を受理する。しかしながら、該当するスレーブコア20−1からの比較開始準備通知がこないため、ここで停止させる。
一方、マスタパケット受信手段1200は、ステップ185にてスレーブコア20−1から比較開始準備通知パケットを受理する。
比較開始準備通知パケットを受理したマスタパケット受信手段1200は、受信したパケットが比較開始準備通知パケットであることをステップ186にて比較同期送信手段1300へと通知する。
ステップ186にて通知を受けた比較同期送信手段1300は、どのスレーブコア20−1〜20−mが比較準備になったかを判断し、ステップ187にてその結果をマスタパケット送信手段1100へと通知する。
そして、マスタパケット送信手段1100は、先に停止していたパケットの宛先が比較準備ができたスレーブコア20−1であると判断して、ステップ188にてパケットの送信を行う。
上記の例でなく、比較同期送信手段1300を介さずに、比較開始準備通知パケットをマスタパケット送信手段1100へ直接通知してもよい。いずれにせよ、マスタコア10−1側で比較開始までに発行された連続したアクセスの停止を行い、スレーブコア20−1からの準備通知によって、そのアクセスを発行することができればどのような構成でもかまわない。
図29は、本発明の情報処理装置の第2の実施の形態を示す図である。
図29を参照すると、図2に示したルータノード200全てを、説明のためにルータノード群210としてまとめた構成を示している。したがって、図2に示した第1の実施の形態における構成が変わるものではない。
図30は、図29に示した形態における情報処理装置の比較開始動作の一例を説明するための図である。この例では、マスタコア10−1とマスタコア10−nとの比較開始処理について説明する。
マスタアダプタ1000−1は、マスタコア10−1からの比較開始要求を受けて、ステップ191にて全てのスレーブアダプタ2000−1〜2000−mに対して、マスタコア10−nとの比較開始要求をルータノード群210を介して送信する。
ルータノード群210は、全てのスレーブアダプタ2000−1〜2000−mに対して、マスタコア10−1から受けたマスタコア10−nとの比較開始要求をステップ192にてブロードキャストする。ここで、全てのスレーブアダプタ2000−1〜2000−mは、マスタコア10−nからのマスタコア10−1との比較開始要求待ちになる。
一方、マスタアダプタ1000−nは、マスタコア10−nからの比較開始要求を受けて、全てのスレーブアダプタ2000−1〜2000−mに対して、マスタコア10−1との比較開始要求をステップ193にてルータノード群210を介して送信する。
ルータノード群210は、全てのスレーブアダプタ2000−1〜2000−mに対して、マスタコア10−nから受けたマスタコア10−1との比較開始要求をステップ194にてブロードキャストする。これにより、全てのスレーブアダプタ2000−1〜2000−mにて比較開始の同期が行われる。
その後、マスタアダプタ1000−1は、マスタコア10−1からのスレーブコア20−1へのアクセス要求をステップ195にてルータノード群210を介してスレーブコア20−1へと送信する。
そして、スレーブアダプタ2000−1は、ステップ196にてマスタコア10−1からのアクセス要求を受理し、そして、比較対象のマスタコア10−nからのアクセス要求を待つ。
一方、マスタアダプタ1000−nは、マスタコア10−nからのスレーブコア20−1へのアクセス要求をステップ197にてルータノード群210を介してスレーブコア20−1へと送信する。
そして、スレーブアダプタ2000−1は、ステップ198にてマスタコア10−nからのアクセス要求を受理し、マスタコア10−1とのアクセス要求と比較し、一致していることを確認する。
その後、スレーブアダプタ2000−1は、ステップ199にてスレーブコア20−1へのアクセスを行う。
図31は、図29に示した形態における情報処理装置の比較解除動作の一例を説明するための図である。この例では、マスタコア10−1とマスタコア10−nとの比較解除処理について説明する。
マスタアダプタ1000−1は、マスタコア10−1からの比較解除要求を受けて、ステップ201にて全てのスレーブアダプタ2000−1〜2000−mに対して、マスタコア10−nとの比較解除要求をルータノード群210を介して送信する。
ルータノード群210は、全てのスレーブアダプタ2000−1〜2000−mに対して、マスタコア10−1から受けたマスタコア10−nとの比較解除要求をステップ202にてブロードキャストする。ここで、全てのスレーブアダプタ2000−1〜2000−mは、マスタコア10−nからのマスタコア10−1との比較解除要求待ちになる。
一方、マスタアダプタ1000−nは、マスタコア10−nからの比較解除要求を受けて、ステップ203にて全てのスレーブアダプタ2000−1〜2000−mに対して、マスタコア10−1との比較解除要求をルータノード群210を介して送信する。
ルータノード群210は、全てのスレーブアダプタ2000−1〜2000−mに対して、マスタコア10−nから受けたマスタコア10−1との比較解除要求をステップ204にてブロードキャストする。これにより、全てのスレーブアダプタ2000−1〜2000−mにて比較解除の同期が行われる。よって、これ以降のアクセスは比較対象にならない。
図32は、本発明の情報処理装置の第3の実施の形態を示す図である。
図32を参照すると本形態は、図29に示した第2の実施の形態に対して、新たに比較アダプタ3000−1〜3000−kと、比較コア30−1〜30−kとを備えている。
比較アダプタ3000−1〜3000−kは、比較コア30−1〜30−kとのインタフェースとして設けられる通常のアダプタである。
比較コア30−1〜30−kは、スレーブアダプタ2000−1〜2000−mの有する比較機能を切り出して、スレーブアダプタ2000−1〜2000−mで比較開始・解除の制御をするのではなく、代わりに比較コア30−1〜30−kで行うという特徴がある。
比較コア30−1〜30−k及び比較アダプタ3000−1〜3000−kの接続は、従来のCPUの直接接続とは異なり、相互結合網を介した接続となる。そのため、配線リソースの削減が可能となる。
図32に示した形態では、図29に示した形態からの追加というかたちをとっているため、スレーブアダプタ2000−1〜2000−mには図29に示したものと同じ番号が添えられている。当然ながらスレーブアダプタ2000−1〜2000−mで比較開始・解除制御を行う必要がないのであれば、その比較同期受信回路2300をスレーブアダプタ2000−1〜2000−mから削除しても良い。
以下に、比較アダプタ3000−1〜3000−kの接続形態及び動作について説明する。ここで、比較アダプタ3000−1の接続形態及び動作を例に挙げて説明する。なお、比較アダプタ3000−2〜3000−kの接続形態及び動作については、比較アダプタ3000−1の接続形態及び動作と同様である。
図33は、図32に示した比較アダプタ3000−1の接続形態の一例を示す図である。
図33を参照すると、比較アダプタ3000−1は、比較コア30−1からの比較コア送信信号3010S及び比較コア30−1への比較コア受信信号3010Rを介して、比較コア30−1と接続される。また、ルータノード200への比較アダプタ送信信号3020S及びルータノード200からの比較アダプタ受信信号3020Rを介して、ルータノード200と接続される。
図34は、図33に示した形態における比較アダプタ3000−1の比較開始動作の一例を説明するための図である。この例では、マスタコア10−1とマスタコア10−nとからの比較開始要求の処理について説明する。
比較アダプタ3000−1は、ステップ211にてマスタコア10−1からの比較コア30−1での比較開始要求を受理する。
そして、比較アダプタ3000−1は、ステップ211にて受理した比較開始要求をステップ212にて比較コア30−1へ渡す。比較コア30−1は別のマスタコア10−nからの比較開始要求を待つ。
また、比較アダプタ3000−1は、ステップ213にてマスタコア10−nからの比較コア30−1での比較開始要求を受理する。
そして、比較アダプタ3000−1は、ステップ213にて受理した比較開始要求をステップ214にて比較コア30−1へ渡す。比較コア30−1は当該比較開始要求により、マスタコア10−1とマスタコア10−nとの比較の同期を行う。
比較の同期が行われた以降の、比較対象のマスタコア10−1,10−nのアクセスは全て比較コア30−1へと送信され、そして、比較コア30−1で一致しているかどうかが判断される。もし一致していなければ、マスタコア10−1,10−nへエラー応答を返す。
図35は、図33に示した形態における比較アダプタ3000−1の比較解除動作の一例を説明するための図である。この例では、マスタコア10−1とマスタコア10−nとからの比較解除要求の処理について説明する。
比較アダプタ3000−1は、ステップ221にてマスタコア10−1からの比較コア30−1での比較解除要求を受理する。
そして、比較アダプタ3000−1は、ステップ221にて受理した比較解除要求をステップ222にて比較コア30−1へ渡す。比較コア30−1は別のマスタコア10−nからの比較解除要求を待つ。
また、比較アダプタ3000−1は、ステップ223にてマスタコア10−nからの比較コア30−1での比較解除要求を受理する。
そして、比較アダプタ3000−1は、ステップ223にて受理した比較解除要求をステップ224にて比較コア30−1へ渡す。比較コア30−1は当該比較解除要求により、マスタコア10−1とマスタコア10−nとの比較解除の同期を行う。
比較解除の同期が行われた以降の、比較対象のマスタコア10−1,10−nのアクセスは、比較コア30−1ではなく、全てスレーブコア20−1へと送信される。
図36は、図32に示した形態における情報処理装置の比較開始動作の一例を説明するための図である。この例では、マスタコア10−1とマスタコア10−nとの比較開始処理について説明する。
マスタアダプタ1000−1は、マスタコア10−1からの比較開始要求を受けて、ステップ231にて比較アダプタ3000−1に対して、マスタコア10−nとの比較開始要求をルータノード群210を介して送信する。
ルータノード群210は、比較アダプタ3000−1に対して、マスタアダプタ1000−1から送信されたマスタコア10−nとの比較開始要求をステップ232にて送信する。
比較アダプタ3000−1は、ステップ232にてルータノード群210から送信された比較開始要求をステップ233にて比較コア30−1へと渡す。その結果、比較コア30−1はマスタコア10−nとの同期待ち状態となる。
また、マスタアダプタ1000−nは、マスタコア10−nからの比較開始要求を受けて、ステップ234にて比較アダプタ3000−1に対して、マスタコア10−1との比較開始要求をルータノード群210を介して送信する。
ルータノード群210は、比較アダプタ3000−1に対して、マスタアダプタ1000−nから送信されたマスタコア10−1との比較開始要求をステップ235にて送信する。
比較アダプタ3000−1は、ステップ235にてルータノード群210から送信された比較開始要求をステップ236にて比較コア30−1へと渡す。その結果、比較コア30−1にて、スタコア10−1とマスタコア10−nとの比較開始の同期がとれたことになる。
その後、マスタアダプタ1000−1は、マスタコア10−1からのスレーブコア20−1へのアクセス要求を受けて、ステップ237にて比較アダプタ3000−1に対して、スレーブコア20−1への要求をルータノード群210を介して送信する。
ルータノード群210は、比較アダプタ3000−1に対して、マスタアダプタ1000−1から送信されたスレーブコア20−1へのアクセス要求をステップ238にて送信する。
比較アダプタ3000−1は、ステップ238にてルータノード群210から送信されたアクセス要求をステップ239にて比較コア30−1へと渡す。比較コア30−1はマスタコア10−nからのアクセス要求を待つ。
また、マスタアダプタ1000−nは、マスタコア10−nからのスレーブコア20−1へのアクセス要求を受けて、ステップ240にて比較アダプタ3000−1に対して、スレーブコア20−1への要求をルータノード群210を介して送信する。
ルータノード群210は、比較アダプタ3000−1に対して、マスタアダプタ1000−nから送信されたスレーブコア20−1へのアクセス要求をステップ241にて送信する。
比較アダプタ3000−1は、ステップ241にてルータノード群210から送信されたアクセス要求をステップ242にて比較コア30−1へと渡す。比較コア30−1は比較を行い、当該結果が一致することを確認する。
すると、比較コア30−1は、ステップ243にて当該アクセス要求を比較アダプタ3000−1へ通知する。
比較アダプタ3000−1は、比較コア30−1から通知されたアクセス要求をステップ244にてルータノード群210へと送信する。
ルータノード群210は、比較アダプタ3000−1から送信されたアクセス要求をステップ245にてスレーブアダプタ2000−1へと渡す。この結果、スレーブアダプタ2000−1を介して、スレーブコア20−1へのアクセスが行われる。
ここで、読出し要求の場合は読出しデータの比較も追加でおこなってよい。また、スレーブコア20−1へのアクセスを1つのアクセスにマージして、読み出したデータを複製して、マスタコア10−1,10−nへ応答してもよい。このように、アクセスの効率化・データの高信頼化に関する従来手法を組み合わせることが可能である。
また、比較開始の同期が取れたか否かは、別途同期を行ったパケットによってマスタアダプタ1000−1,1000−nに通知しても良い。
図37は、図32に示した形態における情報処理装置の比較解除動作の一例を説明するための図である。この例では、マスタコア10−1とマスタコア10−nとの比較解除処理について説明する。
マスタアダプタ1000−1は、マスタコア10−1からの比較解除要求を受けて、ステップ251にて比較アダプタ3000−1に対して、マスタコア10−nとの比較解除要求をルータノード群210を介して送信する。
ルータノード群210は、比較アダプタ3000−1に対して、マスタアダプタ1000−1から送信されたマスタコア10−nとの比較解除要求をステップ252にて比較アダプタ3000−1へ送信する。
比較アダプタ3000−1は、ステップ252にてルータノード群210から送信された比較解除要求をステップ253にて比較コア30−1へと渡す。その結果、比較コア30−1はマスタコア10−nとの比較解除同期待ち状態となる。
また、マスタアダプタ1000−nは、マスタコア10−nからの比較解除要求を受けて、ステップ254にて比較アダプタ3000−1に対して、マスタコア10−1との比較解除要求をルータノード群210を介して送信する。
ルータノード群210は、比較アダプタ3000−1に対して、マスタアダプタ1000−nから送信されたマスタコア10−1との比較解除要求をステップ255にて比較アダプタ3000−1へ送信する。
比較アダプタ3000−1は、ステップ255にてルータノード群210から送信された比較解除要求をステップ256にて比較コア30−1へと渡す。その結果、比較コア30−1にてマスタコア10−1とマスタコア10−nとの比較解除の同期がとれたことになる。
その後、マスタアダプタ1000−1は、マスタコア10−1からのスレーブコア20−1へのアクセス要求を受けて、ステップ257にてスレーブアダプタ2000−1に対して、スレーブコア20−1への要求をルータノード群210を介して送信する。
ルータノード群210は、マスタアダプタ1000−1から送信されたスレーブコア20−1へのアクセス要求をステップ258にてスレーブアダプタ2000−1へ送信する。
ここでは、比較解除の同期が取れたか否かは、同期を行ったことを通知する応答パケットによってマスタアダプタ2000−1に別途通知することを想定している。通知できない場合には、比較アダプタ3000−1及び比較コア30−1を介して、スレーブアダプタ2000−1からスレーブコア20−1へアクセスするようにしてもよい。いずれにせよ、後続のパケットが同期点を追い越せないようにする一般的な技術であれば、どのようなものでも適用可能である。
このように、複数のスレーブアダプタ2000−1〜2000−mを制御する技術によって、比較機能だけを抽出したコアでの比較も容易に行うことができる。ここでの実施例では1つの比較コア30−1について説明したが、アクセス集中によるボトルネックを避けるため、複数の比較コア30−1〜30−kであっても同様に対処可能である。
また、比較コア30−1〜30−kと比較アダプタ3000−1〜3000−kとを階層的に制御することで、ネットワークトラフィックを分散化し、かつ、比較アダプタ3000−1〜3000−kでの転送にかかるレイテンシを減らすことも可能である。
なお、上述した実施例では、スレーブアダプタ2000−1〜2000−mが、マスタコア10−1〜10−nのうち2つのマスタコアを互いに比較する場合を例に挙げて説明したが、マスタコア10−1〜10−nのうち2つ以上の複数の任意のマスタコアを互いに比較することも可能である。これは、スレーブアダプタ2000−1〜2000−mに、上述した比較機能を複数備えることにより実現できる。例えば、マスタコア10−1とマスタコア10−2との比較と、マスタコア10−3とマスタコア10−4とマスタコア10−5との比較とを同時に行うことが可能である。このことは、比較コア30−1〜30−k及び比較アダプタ3000−1〜3000−kについても同様である。
また、上述した実施例では、相互結合網で接続された多数のCPUを有する装置に関し、特に、相互結合網を活用した、高速かつ柔軟に、高信頼モードと高性能モードとを切替え可能な情報処理装置及び情報処理方法を例に説明した。本実施例は、かかる装置および方法に限定されるものではなく、任意の装置および方法に適用可能である。例えば、情報処理装置が半導体集積回路であっても良い。
以上、本発明を上記実施例に即して説明したが、本発明は、上記実施例の構成や動作にのみ限定されるものではなく、本発明の範囲内で当業者であればなしうることが可能な各種変形、修正を含むことはもちろんである。
この出願は、2007年8月22日に出願された日本出願特願2007−215896を基礎とする優先権を主張し、その開示の全てをここに取り込む。