本発明の半導体集積回路について実施形態を説明する。第1の実施形態から第5の実施形態は、第6の実施形態から第8の実施形態の基礎となる技術である。
(第1の実施形態)
図2は本実施形態の半導体集積回路100の全体構成を示す図である。図2に示すように、半導体集積回路100は、CPU10P1〜10Pnと、アクセラレータ等の演算回路20P1〜20Pnと、外部メモリ31と接続されるメモリ制御回路30と、外部I/O41と接続されるI/O制御回路40と、チップ内メモリ51と、チップ内メモリ51と接続されるチップ内メモリ制御回路50と、相互結合網1000とを有する。ただし、nは2以上の自然数である。
相互結合網1000は、以下に説明する構成により、CPU10P1〜10Pn、演算回路20P1〜20Pn、メモリ制御回路30、I/O制御回路40、及びチップ内メモリ制御回路50を相互接続し、かつ、一貫性を保持しながらCPU分離のフィルタ制御を行うことが可能である。
本実施形態においては、CPU10P1〜10Pn、演算回路20P1〜20Pn、メモリ制御回路30、メモリ31、I/O制御回路40、I/O41、チップ内メモリ制御回路50、チップ内メモリ51、電源・クロック制御回路60、相互結合網1000は1つのチップに搭載されているが、それぞれが別パッケージに搭載されていてもよい。また、それらがSoC(System on a Chip)内部の回路構成であってもよく、それぞれが別チップによるSiP(System in Package)や3次元LSIに搭載されていてもよい。さらに、それらのチップや回路の組み合わせで、本実施形態の半導体集積回路100が構成されてもよい。
CPU10P1〜10Pnは、信号処理プロセッサ、または、VLIW(Very Long Instruction Word)プロセッサ、構成可能プロセッサ(コンフィギュラブルプロセッサ)等の、プログラム動作が可能な演算装置である。
演算回路20P1〜20Pnは、アクセラレータや動的再構成可能(ダイナミック・リコンフィギュラブル)回路など主にデータ処理を得意とする演算装置である。
電源・クロック制御回路60は、個別回路に供給する電源及びクロックを制御する。その他の機能として、割込み及び温度を制御する共通制御機構が設けられていてもよい。
図3は本実施形態の半導体集積回路内の個別回路の総称を説明するための図である。図3に示すように、CPU10P1〜10Pnを代表するCPU10、演算回路20P1〜20Pnを代表する演算回路20、メモリ制御回路30、I/O制御回路40、チップ内メモリ制御回路50、及び電源・クロック制御回路60を含む回路の種類に対して、以下では、コア99という総称を用いる。すなわち、コアとラベルされた回路は特定の回路の種類に依存しないことを意味する。
図4は本実施形態の相互結合網1000の全体構成を示す図である。図4を参照すると、複数のコア99を接続する相互結合網1000は、チップや回路で形成されたルータであるルータノード2000と、コア99及びルータノード2000間の接続インタフェースとなるアダプタ3000とを有する。アダプタ3000も、チップまたは回路で形成されている。ルータノード2000及びアダプタ3000のそれぞれが複数設けられている。
コア99は、他のコアに対して、データの読み出しおよび書き込みなどを要求する旨の信号である要求信号を送信する。他のコアがメモリであれば、読み出し(リードアクセス)または書き込み(ライトアクセス)のいずれかを要求するアクセス要求信号が送出される。相互結合網1000内のルータノード間のデータ伝送は、伝送対象のデータを所定の容量の大きさに分割した単位であるパケットの形式で行われる。パケットの構成についての詳細は後述する。なお、以下では、一方のコアから他方のコアへの要求メモリに対するアクセス要求信号を単に「アクセス要求」とする。また、アクセス要求信号に対して応答する信号については、単に「アクセス応答」として説明する。
アダプタ3000は、コア99から受信するアクセス要求をパケットに変換し、ルータノード2000から受信するパケットをコア99へのアクセス要求に変換する。ルータノード2000は、設定された経路情報に従って、受信するパケットを隣接するルータノードへ配送する。
ここで、アダプタ3000は、ルータノード2000またはコア99から独立した手段として存在しているが、アクセス・パケット変換機能を果たす回路であれば、ルータノード2000内またはコア99内に埋め込まれていてもよい。
図5は、図4のルータノード2000及びアダプタ3000の動作の一例を説明するための図である。図5において、矢印は信号の伝達方向を示し、矢印脇のSと数字からなる符合は、ステップ番号を表している。このことは、動作を説明するための他の図においても同様である。
図5を参照して、送信コア99Aから、送信アダプタ3000A、送信ルータノード2000A、受信ルータノード2000B及び受信アダプタ3000Bを経由して、受信コア99Bにデータを配送する方法について説明する。
ステップ1(S1):送信コア99Aは、アクセス要求を送信アダプタ3000Aに送信する。ステップ2(S2):送信アダプタ3000Aは、送信コア99Aから受信したアクセス要求を相互結合網上の配送形式に対応したパケットに変換する。変換後、そのパケットを送信ルータノード2000Aに渡す。
ステップ3(S3):送信ルータノード2000Aは、送信アダプタ3000Aからパケットを受け取ると、受け取ったパケットの宛先情報に従ってパケットを別のルータノードに配送する。受信コア99B側の受信ルータノード2000Bと送信ルータノード2000Aが隣接してこれらのノードが接続されていない限り、このパケットは中間ルータノード群2000C内の様々なノードを経由して受信ルータノード2000Bに届けられる。
ステップ4(S4):受信ルータノード2000Bは、中間ルータノード群2000C内のノードからパケットを受け取ると、パケットの宛先情報を読み取り、読み取った宛先情報が受信コア99Bを示すものであると、自身に接続されたコアが処理すべきパケットであると判断する。そして、そのパケットを受信アダプタ3000Bに渡す。
ステップ5(S5):受信アダプタ3000Bは、受信ルータノード2000Bから渡されたパケットの解析と展開を行うことで、パケットを受信コア99Bへのアクセス要求に変換し、受信コア99へアクセス要求を渡す。
ここで、パケットの構成を説明する。
図6は相互結合網1000内で配送されるパケットの一構成例を示す図である。図6を参照すると、パケットは、パケットの送信元および宛先の情報など、ルータノードにとっての制御情報となる「ヘッダ」と、送信対象のデータ本体である「ボディ」と、パケットの正当性を保証する「テイラ」との3つのパートからなる。それぞれのパートは、ルータノード間の配送の際に、フリットと呼ばれる、さらに細かい単位に分割される。
例えば、ヘッダは、宛先ノード、パケットサイズ、送信元ノード、及びパケットの種類からなるフリットに分割される。また、ボディは、送信先のコアがメモリである場合、当該メモリコアへのアドレス、リード・ライトといったアクセス要求の種類、ライト時のデータからなるフリットに分割される。さらに、テイラは、パケット全体のCRC(Cyclic Redundancy Check)コードからなるフリットに分割される。
なお、このパケットやフリットの構成は、あくまで一例であり、相互結合網を構築するルータノードの仕様に従うものであればよい。
次に、ルータノード2000の構成を説明する。図7は相互結合網1000内のルータノード2000の一構成例を示すブロック図である。
図7を参照すると、ルータノード2000は、接続される他の装置とパケットを送受信するための複数のチャネルと、チャネル間を接続するスイッチ回路2030と、受信パケットに応じて、そのスイッチ回路2030への接続切替情報を通知するルーティング制御手段2100とを有する。
それぞれのチャネルは、接続リンクのフロー制御等を行うリンク制御回路2010と、パケットを保持するバッファ2020とからなる構成である。隣接するルータノードからの入力用に複数のチャネルが割り当てられ、隣接するルータノードへの出力用に複数のチャネルが割り当てられ、アダプタとの接続用に1チャンネル割り当てられている。ここで、アダプタとの接続チャネルを1チャネルとしているが、複数チャネルであってもよい。この場合、スイッチ回路への接続チャネル数を拡張することで実現可能である。
リンク制御回路2010は、エンド・トゥ・エンドではなく、リンク・トゥ・リンク(隣接するルータノード間)のデータ信号のやり取りを管理する。これにより、例えば、ハンドシェーク信号を用いたデータを配送し、あるいは、送信先バッファが満杯の場合には、送信を停止する。
スイッチ回路2030は、ルーティング制御手段2100からの通知情報に基づいて、指定された入力チャネルと指定された出力チャネルとを接続する。例えば、クロスバー接続や、オメガ網に代表される多段結合網、あるいは、ネットワークによって接続される結合網を採用してもよい。
ルーティング制御手段2100は、隣接するルータノード及びアダプタの入力チャネルのパケットのヘッダに含まれる宛先の情報を参照し、パケットの宛先に応じてどの入力チャネルをどの出力チャネルに接続すればよいかを、スイッチ回路2030に通知する。このとき、チャネルでのスタベーションを防ぐ機能やデッドロックを防ぐ機能などがルーティング制御手段2100に設けられていてもよい。
次に、ルータノード2000が、隣接するルータノードから入力チャネルを介してパケットを受信し、受信したパケットを隣接する別のルータノードへ送信する場合の動作を説明する。図8は図7に示したルータノード2000の動作の一例を説明するための図である。
ステップ1(S1):リンク制御回路2010Aは、隣接するルータノードからパケットを受信する。ステップ2(S2):リンク制御回路2010Aは、上記パケットをバッファ2020Aに保存する。ステップ3(S3):バッファ2020Aは、スイッチ回路2030の入力と接続し、バッファ内のパケットをスイッチ回路2030に対して送信可能にする。
ステップ4(S4):ルーティング制御手段2100は、バッファ内にあるパケットを受け取ると、パケットのヘッダ情報を元にして入力バッファ2020Aの接続先となる出力バッファ2020Bを決定する。ステップ5(S5):ルーティング制御手段2100は、ステップ4で決定した情報をスイッチ回路2030に通知する。
ステップ6(S6):スイッチ回路2030は入力バッファ2020Aと出力バッファ2020Bとを接続する。
ステップ7(S7):リンク制御回路2010Bは、出力バッファ2020B内のパケットを読み出し、続いて、隣接するルータノードへのパケットの配送準備を開始する。ステップ8(S8):リンク制御回路2010Bは、隣接するルータノードへパケットを送信する。
次に、ルータノード2000がアダプタから入力チャネルを介してパケットを受信し、受信したパケットを隣接するルータノードへ送信する場合の動作を説明する。図9は図7に示したルータノード2000の動作の一例を説明するための図である。
ステップ1(S1):リンク制御回路2010Cはアダプタからパケットを受信する。ステップ2(S2):リンク制御回路2010Cは、上記パケットをバッファ2020Cに保存する。ステップ3(S3):バッファ2020Cは、スイッチ回路2030の入力と接続し、バッファ内のパケットをスイッチ回路2030に対して送信可能にする。
ステップ4(S4):ルーティング制御手段2100は、バッファ内にあるパケットのヘッダ情報を元にして入力バッファ2020Cの接続先となる出力バッファ2020Dを決定する。ステップ5(S5):ルーティング制御手段2100は、ステップ4で決定した情報をスイッチ回路2030に通知する。
ステップ6(S6):スイッチ回路2030は入力バッファ2020Cと出力バッファ2020Dとを接続する。
ステップ7(S7):リンク制御回路2010Dは、出力バッファ2020D内のパケットを読み出し、続いて、隣接ルータノードへのパケットの配送準備を開始する。ステップ8(S8):リンク制御回路2010Dは、隣接するルータノードへパケットを送信する。
次に、ルータノード2000が、隣接ルータノードから入力チャネルを介してパケットを受信し、受信したパケットをアダプタへ送信する場合の動作を説明する。図10は図7に示したルータノード2000の動作の一例を説明するための図である。
ステップ1(S1):リンク制御回路2010Aは、隣接するルータノードからパケットを受信する。ステップ2(S2):リンク制御回路2010Aは、上記パケットをバッファ2020Aに保存する。ステップ3(S3):バッファ2020Aは、スイッチ回路2030の入力と接続し、バッファ内のパケットをスイッチ回路2030に対して送信可能にする。
ステップ4(S4):ルーティング制御手段2100は、バッファ内にあるパケットのヘッダ情報を元に判断し、アダプタへの送信が必要であることを認識すると、入力バッファ2020Aの接続先となる出力バッファ2020Eを決定する。ステップ5(S5):ルーティング制御手段2100は、ステップ4で決定した情報をスイッチ回路2030に通知する。
ステップ6(S6):スイッチ回路2030は入力バッファ2020Aと出力バッファ2020Eとを接続する。
ステップ7(S7):リンク制御回路2010Eは、出力バッファ2020E内のパケットを読み出し、続いて、アダプタへのパケットの配送準備を開始する。ステップ8(S8):リンク制御回路2010Eは、アダプタへパケットを送信する。
次に、ルータノード2000内のルーティング経路手段2100の構成を説明する。図11はルーティング経路手段2100の一構成例を示すブロック図である。
図11を参照すると、ルーティング経路手段2100は、入力チャネルからの情報を解析するヘッダ解析手段2110と、ヘッダ解析手段2110からの情報によって出力チャネルを定める経路決定手段2120と、経路決定手段で定められた出力チャネル間の競合を防止して、その情報をスイッチ回路2030に通知する調停手段2130とを有する構成である。
ヘッダ解析手段2110は、入力チャネル内に存在するパケットの全てのヘッダ情報を参照して各々のパケットの宛先情報を経路決定手段2120に通知する。
経路決定手段2120は、ヘッダ解析手段2110からパケットの宛先情報を受け取ると、宛先情報を基にしてそれぞれのパケットがどの出力チャネルに送信されるべきかを調停手段2130に通知する。出力チャネルの決定の際には、決定論的なアルゴリズムやアダプティブなアルゴリズムといった、現在知られている様々なルーティングアルゴリズムを利用することが可能である。
調停手段2130は、各入力チャネルの接続先を示す出力チャネル情報を経路決定手段2120から受け取り、受け取った出力チャネル情報に重複があると、公平性などを考慮して、出力チャネルの競合を防ぐ。競合する入力チャネルが2つある場合に競合を防ぐ方法の具体例として、次の2つが考えられる。1つ目は、2つのうちいずれか一方の入力チャネルを先に出力チャネルに接続し、その後に、他方の入力チャネルを出力チャネルに接続する方法である。2つ目は、最短経路ではないものの、異なる出力チャネルに同じタイミングで2つの入力チャネルをそれぞれ接続する方法である。競合を防ぐ方法は、この2つの例に限られない。
なお、パケット・フリットの配送方式としては、ウォームホールルーティング、バーチャルカットスルールーティング、ストアアンドフォワードルーティング方式等の既存手法を用いてもよい。
次に、ルーティング制御手段2100が、ある単一の入力チャネルにてパケットを受信した場合の動作を説明する。図12は図11に示したルーティング制御手段2100の動作の一例を説明するための図である。
ステップ1(S1):ヘッダ解析手段2110は、ある入力チャネルからパケットのヘッダ情報を受信する。ステップ2(S2):ヘッダ解析手段2110は、ヘッダ情報からその入力チャネルのパケットを送信すべき宛先のルータノードを特定し、宛先のルータノードを示す情報である宛先ルータノード情報を経路決定手段2120に通知する。
ステップ3(S3):経路決定手段2120は、受け取った宛先ルータノード情報に基づいて出力先に適した出力チャネルを特定し、特定した出力チャネルを示す出力チャネル情報を調停手段2130に通知する。ステップ4(S4):調停手段2130は、出力チャネル情報を受け取ると、出力チャネルに接続される入力チャネルに競合がないことを認識し、そして、該当する入力チャネルの接続先となるルータノードを示す出力ノード情報を、スイッチ回路2030に渡す。
次に、ルーティング制御手段2100が、複数の入力チャネルを介してパケットを複数受信した場合の動作を説明する。ここでは、2つの入力チャネルを介してそれぞれパケットを受信した場合とする。図13は図11に示したルーティング制御手段2100の動作の一例を説明するための図である。
ステップ1(S1):ヘッダ解析手段2110は、複数の入力チャネルからの複数のパケットのヘッダ情報を受信する。ステップ2(S2):ヘッダ解析手段2110は、受信した複数のヘッダ情報から、各々の入力チャネルのパケットを送信すべき宛先ルータノード情報を経路決定手段2120に通知する。
ステップ3(S3):経路決定手段2120は、受け取った宛先ルータノード情報に基づいて、各々の入力チャネル上のパケットの出力先に適した出力チャネルの情報を含む出力チャネル情報を調停手段2130に通知する。
ステップ4(S4):調停手段2130は、受け取った出力チャネル情報により、出力チャネルに接続する入力チャネルに競合があることを認識する。続いて、競合する2つの入力チャネルのうちいずれを先にするか調停を行って、片方の入力チャネルを先に出力チャネルに接続することを決定する。そして、先に接続する入力チャネルの情報を示す第1の接続情報をスイッチ回路2030に渡す。ステップ5(S5):調停手段2130は、競合していたもう片方の入力チャネルを出力チャネルに接続する情報を示す第2の接続情報をスイッチ回路2030に渡す。
次に、アダプタ3000について説明する。図14はアダプタ3000を含む相互結合網1000の一部を示すブロック図である。
図14を参照すると、アダプタ3000は、コアがアダプタへ信号を送信するための配線である送信信号線3010及びコアがアダプタから信号を受信するための配線である受信信号線3020を介してコア99と接続される。また、アダプタ3000は、ルータノードがアダプタから信号を受信するための配線である受信信号線3011及びルータノードがアダプタへ信号を送信するための配線である送信信号線3021を介してルータノード2000と接続される。
送信信号線3010で伝送される信号にはコアからのアクセス要求が含まれ、受信信号線3020にはアクセス要求に対する応答であるアクセス応答が含まれる。一方、受信信号線3011及び送信信号線3021では、パケットがやり取りされる。
次に、アダプタ3000がコアからアクセス要求を受け取った場合の動作を説明する。図15は図14に示したアダプタ3000の動作の一例を説明するための図である。
ステップ1(S1):アダプタ3000は、アクセス要求をコア99から受け付ける。ステップ2(S2):アダプタ3000は、そのアクセス要求をパケットに変換してルータノード2000に送信する。
次に、アダプタ3000がコアからのアクセス要求に対して応答する場合の動作を説明する。図16は図14に示したアダプタ3000の動作の一例を説明するための図である。
ステップ1(S1):アダプタ3000はルータノード2000からパケットを受信する。ステップ2(S2):アダプタ3000は、そのパケットがアクセス要求に対するコア99への応答であることを認識すると、パケットをコアへのアクセス応答に変換してコア99に送信する。
次に、アダプタ3000の構成を説明する。図17はアダプタ3000の一構成例を示すブロック図である。
図17を参照すると、アダプタ3000は、ルータノードへパケットを送信するパケット送信手段3100と、ルータノードからのパケットを受信するパケット受信手段3200と、コアから受け取るアクセス要求を制御するアダプタフィルタ制御手段3300とを有する。
パケット送信手段3100は、アクセスフィルタ制御手段3300を介してコアからのアクセス要求またはアクセス応答を受け取ると、ルータノード間でやり取りされるパケットに変換して外部に送信する。
パケット受信手段3200は、ルータノードから受け取るパケットをコアへのアクセス要求またはアクセス応答に変換してアダプタフィルタ制御手段3300に渡す。ここで、パケット受信手段3200において、複数のパケットを保持しておくバッファを内部に設けていてもよい。
アダプタフィルタ制御手段3300は、一方のコアから他方のコアへのアクセス要求に対して、当該アクセス要求の処理を行うか否かを判断する。当該アクセス要求を処理しない場合、送信元コアの場合を含むコア99またはパケット受信手段3200にその旨を通知し、当該アクセス要求を処理する場合、コア99にアクセス要求を渡す。アクセス要求を受け付けるか否かの判断基準の情報は、コアを介して設定されてもよく、予め設定されていてもよい。
本実施形態では、アクセス要求を受け付けるか否かの通常の判断だけではなく、当該アクセス要求の処理を一時停止するか否かの判断を行う機能をアダプタフィルタ制御手段3300に設けている。これにより、アダプタフィルタ制御手段3300は、アクセス要求の処理を行うか否かの判断について、セキュリティポリシーに対応した設定情報を予め格納している。そして、その設定情報に変更があるときには、アクセス要求の処理を一時停止し、設定情報を更新した後に、アクセス要求の処理を再開するようにしている。これにより、相互結合網全体にわたって一貫性のある更新設定処理が可能となる。
次に、アダプタフィルタ制御手段3300の構成を説明する。図18はアダプタフィルタ制御手段3300の一構成例を示すブロック図である。
図18を参照すると、アダプタフィルタ制御手段3300は、自身に接続されたコアへの外部からのアクセス要求の処理を行うか否かの判断とその処理を一時停止するか否かの判断を行う受信フィルタ手段3320と、その判断のために利用する情報である受信フィルタデータ3321とを有する。受信フィルタデータ3321は図に示さない記憶手段に格納されている。
受信フィルタ手段3320は、アクセス要求の処理を行うか否かの判断とアクセス要求の処理を一時停止するか否かの判断を行う。その結果、アクセス要求を処理しない場合、またはアクセス要求の処理を一時停止する場合には、パケット受信手段3200にその旨を通知する。
次に、受信フィルタデータ3321について説明する。図19は受信フィルタデータ3321の一構成例を説明するための図である。ここでは、コアがメモリの場合で、受信フィルタデータ3321はそのメモリへのアクセス要求を送信元にどの範囲まで許可するかの情報を示す。図19(a)はメモリマップを示し、図19(b)はそのメモリについての受信フィルタデータの一例を示す。
図19(a)のメモリマップに示すように、メモリ内は高セキュリティと低セキュリティの領域に分けられている。高セキュリティとなる高信頼領域はアドレスが0x 00000000〜0x 10000000の範囲であり、低セキュリティとなる低信頼領域はアドレスが0x 10000000〜0x 20000000の範囲である。ここに示すメモリ領域の区分けは一例である。
図19(b)に示す受信フィルタデータ3321では、メモリへのアクセス要求の送信元になるルータノードの項目が表の一番左に設けられ、縦方向にルータノードの数だけ欄が設けられている。そして、それぞれのルータノードに対応して、ルータノードの識別子と、アクセス要求の受け付け可能なメモリ領域と、アクセス要求の種類を示す項目である「許可ビット」と、アクセス要求の処理を一時停止するか否かを示す「一時停止ビット」とを組とするエントリが設けられている。送信元、メモリ領域、およびアクセス要求の種類の情報は、処理されるための条件である配送情報に相当する。
図19(b)を参照して、アクセス要求の送信元がルータノード#0の場合で具体的に説明する。ルータノード#0を送信元とするアクセス要求が許可されるメモリ領域は全体である。そして、許可ビットに「R」と「W」があることから、メモリ内の全ての領域に対して読み出しと書き込みの両方が許可されている。一時停止ビットが「No」であることから、ルータノード#0からアクセス要求があったときに、その処理を一時停止する必要はない。
続いて、アクセス要求の送信元がルータノード#3の場合を説明する。ルータノード#3を送信元とするアクセス要求の種類について、低信頼領域では読み出しと書き込みの両方が許可されているが、高信頼領域では読み出しのみが許可されている。これは、低信頼領域における許可ビットが「R」と「W」の両方であるのに対して、高信頼領域における許可ビットが「R」のみだからである。ただし、高信頼領域における一時停止ビットが「Yes」であることから、高信頼領域に対する読み出しのアクセス要求があったときには、その処理は一時停止の状態となる。
本発明では、受信フィルタデータ3321内の情報を更新する際にアクセス要求の処理を一時停止させることで、受信フィルタデータ3321内の情報の更新前後のアクセス要求の処理を明確に区別することができる。
なお、受信フィルタデータ3321の情報の更新は、高信頼領域内のコアで実行されるアプリケーションソフトで生成される新たなデータ、または、予め設定変更情報が記述されたファイルから読み出されるデータ等に書き換わることで行われる。受信フィルタデータ3321の更新方法の具体例については、後述する。この更新は、半導体集積回路とこれに付随するメモリの高信頼領域が不足したり、反対に高信頼領域が過剰になったりしたときなど、半導体集積回路全体の条件や状況に応じて、高信頼領域の範囲の変更が必要なときに行われる。
また、受信フィルタデータ3321は、図19(b)に示すような表形式の場合に限られない。受信フィルタ手段3320が読み出し可能で、読み出した情報にしたがってアクセス制御することができれば、その他の形式でもよい。さらに、図19(b)に示す表では、ルータノードに対応して、アクセス可能なメモリの領域、アクセス要求の種類などを設定しているが、ルータノードの代わりにコアであってもよい。
ここで、コアから見た受信フィルタデータの書き換えは、メモリマップ上では受信フィルタデータの領域を書き換えることになるが、受信フィルタデータ自身の専用の領域ではなく、高信頼領域やその他の信頼度の高いデータ(セキュリティにより保護されたデータ)の保存領域に組み込まれていてもよい。また、受信フィルタデータのみを対象とするメモリマップを別に設けてもよい。
次に、コアからのアクセス要求があったときのアダプタフィルタ制御手段3300の動作を説明する。図20は図18に示したアダプタフィルタ制御手段3300の動作の一例を説明するための図である。
ステップ1(S1):アダプタフィルタ制御手段3300は、コアからアクセス要求を受け取ると、当該アクセス要求をパケット送信手段3100に渡す。
次に、アダプタフィルタ制御手段3300がアクセス要求を受け付け、そのアクセスを許可する場合の動作を説明する。図21は図18に示したアダプタフィルタ制御手段3300の動作の一例を説明するための図である。
ステップ1(S1):受信フィルタ手段3320は、パケット受信手段3200からアクセス要求を受け付ける。ステップ2(S2):受信フィルタ手段3320は、受信フィルタデータ3321を読み出し、読み出した情報に基づいて当該アクセス要求を処理可能かどうか判断する。その結果、アクセス要求の処理の一時停止も必要なく、処理可能であることを認識する。ステップ3(S3):受信フィルタ手段3320は、当該アクセス要求をコア99へ渡す。
次に、アダプタフィルタ制御手段3300がアクセス要求を受け付け、そのアクセス要求を拒否する場合の動作を説明する。図22は図18に示したアダプタフィルタ制御手段3300の動作の一例を説明するための図である。
ステップ1(S1):受信フィルタ手段3320は、パケット受信手段3200からアクセス要求を受け付ける。ステップ2(S2):受信フィルタ手段3320は、受信フィルタデータ3321を読み出し、読み出した情報に基づいて当該アクセス要求を処理可能かどうか判断する。その結果、アクセス要求を処理できないことを認識する。ステップ3(S3):受信フィルタ手段3320は、当該アクセス要求を処理できない旨をパケット受信手段3200に通知する。
次に、アダプタフィルタ制御手段3300がアクセス要求を受け付け、アクセス要求の処理を一時停止する場合の動作を説明する。図23は図18に示したアダプタフィルタ制御手段3300の動作の一例を説明するための図である。
ステップ1(S1):受信フィルタ手段3320は、パケット受信手段3200からアクセス要求を受け付ける。ステップ2(S2):受信フィルタ手段3320は、受信フィルタデータ3321を読み出し、読み出した情報に基づいてアクセス要求を処理可能かどうか判断する。その結果、アクセス要求の処理を一時停止する必要があることを認識する。
ステップ3(S3):受信フィルタ手段3320は、アクセス要求の処理を一時停止する必要がある旨をパケット受信手段3200に通知する。
次に、アダプタフィルタ制御手段3300が受信フィルタデータ3321を更新する場合の動作を説明する。図24は図18に示したアダプタフィルタ制御手段3300の動作の一例を説明するための図である。受信フィルタデータ3321を更新するための新たなデータは、ルータノード2000から入力される。新たなデータの入力方法の具体例については、後述する。
ステップ1(S1):受信フィルタ手段3320は、受信フィルタデータ3321に新たなデータを書き込むためのアクセス要求をパケット受信手段3200から受け付ける。ステップ2(S2):受信フィルタ手段3320は、受信フィルタデータ3321を読み出し、読み出した情報に基づいてアクセス要求を処理可能かどうか判断する。受け付けたアクセス要求が受信フィルタデータの更新目的であることを認識すると、アクセス要求の処理の一時停止を行わず、当該アクセス要求を処理する。ステップ3(S3):受信フィルタ制御手段3320が新たなデータを受信フィルタデータ3321に書き込む。このようにして、受信フィルタデータ3321が更新される。
次に、コアからアクセス要求があった場合のアダプタ3000の内部の動作を説明する。図25は図17に示したアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):アダプタフィルタ制御手段3300はコア99から受け取るアクセス要求をそのままパケット送信手段3100に渡す。ステップ2(S2):パケット送信手段3100は、当該アクセス要求をパケットに変換してルータノード2000に送信する。
次に、ルータノードからパケットを受信し、受信したパケットによるアクセス要求を許可する場合のアダプタ3000の内部の動作を説明する。図26は図17に示したアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):パケット受信手段3200は、ルータノード2000からのパケットを受信する。ステップ2(S2):パケット受信手段3200は、当該パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段3300に渡す。ステップ3(S3):アダプタフィルタ制御手段3300は、当該アクセス要求を処理可能かどうか、アクセス要求の処理を一時停止する必要があるかどうかを判定し、処理可能で、かつ処理を一時停止する必要がないと判断すると、そのアクセス要求をコア99に渡す。
次に、ルータノードからパケットを受信し、受信したパケットによるアクセス要求を拒否する場合のアダプタ3000の内部の動作を説明する。図27は図17に示したアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):パケット受信手段3200は、ルータノード2000からのパケットを受信する。ステップ2(S2):パケット受信手段3200は、当該パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段3300に渡す。ステップ3(S3):アダプタフィルタ制御手段3300は、当該アクセス要求を処理可能かどうか、アクセス要求の処理を一時停止する必要があるかどうかを判定し、このアクセス要求を拒否する必要があると判断すると、アクセス要求を拒否した旨の通知をパケット受信手段3200に渡す。
ステップ4(S4):パケット受信手段3200は、当該アクセス要求が拒否された旨の通知を受け取ると、アクセス要求に対して拒否された旨を通知するためのパケットである応答パケットを生成し、応答パケットをパケット送信手段3100に渡す。ステップ5(S5):パケット送信手段3100は、パケット受信手段3200から応答パケットを受け取ると、コアからのアクセス要求よりも優先して応答パケットをルータノード2000に渡す。なお、ここで、デッドロックしないことが保証されるのであれば、コアからのアクセス要求よりも応答パケットを優先しなくてもよい。
次に、ルータノードからパケットを受信し、受信したパケットによるアクセス要求の処理を一時停止する場合のアダプタ3000の内部の動作を説明する。図28は図17に示したアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):パケット受信手段3200は、ルータノード2000からのパケットを受信する。ステップ2(S2):パケット受信手段3200は、当該パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段3300に渡す。
ステップ3(S3):アダプタフィルタ制御手段3300は、当該アクセス要求を処理可能かどうか、アクセス要求の処理を一時停止する必要があるかどうかを判定し、このアクセス要求の処理を一時停止する必要があると判断すると、アクセス要求の処理を一時停止する旨の通知をパケット受信手段3200に渡す。
ステップ4(S4):パケット受信手段3200は、当該アクセス要求の処理を一時停止する旨の通知を受け取ると、アクセス要求のパケットを保存する。そして、所定の周期毎にそのアクセス要求のパケットをアダプタフィルタ制御手段3300に再送する(ステップ3へ)。ここでは、保存したパケットが所定の周期毎にアダプタフィルタ制御手段3300に再送される間に、そのパケットによるアクセス要求がアダプタフィルタ制御手段3300に処理されるように受信フィルタデータ3321が更新されることを仮定している。
次に、ルータノードからパケットを受信し、受信したパケットによるアクセス要求の処理を一時停止する場合のアダプタ3000の内部の別の動作を説明する。図29は図17に示したアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):パケット受信手段3200は、ルータノード2000からのパケットを受信する。ステップ2(S2):パケット受信手段3200は、当該パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段3300に渡す。
ステップ3(S3):アダプタフィルタ制御手段3300は、当該アクセス要求を処理可能かどうか、アクセス要求の処理を一時停止する必要があるかどうかを判定し、このアクセス要求の処理を一時停止する必要があると判断すると、アクセス要求の処理を一時停止した旨の通知をパケット受信手段3200に渡す。
ステップ4(S4):パケット受信手段3200は、当該アクセス要求の処理を一時停止する旨の通知を受け取ると、そのアクセス要求の情報を含む、自分宛のパケットである再送パケットを生成してパケット送信手段3100に渡す。ここでは、再送パケットが相互結合網内のルータノード間を伝送して再び自分のところに送られてくる間に、そのパケットによるアクセス要求がアダプタフィルタ制御手段3300に処理されるように受信フィルタデータ3321が更新されることを仮定している。
ステップ5(S5):パケット送信手段3100は、パケット受信手段3200から渡された再送パケットを、コアからのアクセス要求よりも優先してルータノード2000に渡す。なお、ここで、デッドロックしないことが保証されるのであれば、コアからのアクセス要求よりも再送パケットを優先しなくてもよい。
図28及び図29はいずれもアダプタ3000がアクセス要求の処理を一時停止する動作についてのものであるが、パケットを一時保存するメモリが充分にある場合には図28で説明した方法を実行し、メモリが充分にない場合には図29で説明した方法を実行すればよい。
次に、ルータノードからパケットを受信し、受信したパケットのデータにより受信フィルタデータ3321を更新する場合のアダプタ3000の内部の動作を説明する。図30は図17に示したアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):パケット受信手段3200は、受信フィルタデータの新たなデータを含むパケットである更新用パケットをルータノード2000から受信する。
ステップ2(S2):パケット受信手段3200は、受信した更新用パケットを受信フィルタデータ3321に対する書き込みのアクセス要求に変換してアダプタフィルタ制御手段3300に渡す。アダプタフィルタ制御手段3300は、当該アクセス要求を処理可能であると判断し、当該アクセス要求に伴って受信したデータを受信フィルタデータ3321に書き込む。これにより、受信フィルタデータ3321が更新される。なお、この更新が処理されない場合は、アクセス要求を処理しないというエラーが起こったときの通常のエラー処理と同様であるため、ここでは詳細な説明を省略する。
次に、ルータノードから受信したパケットによるアクセス要求の処理を一時停止してそのパケットを一旦保存した後、受信フィルタデータ3321の更新により、処理の一時停止の対象だったアクセス要求を処理可能とする場合のアダプタ3000の内部の動作を説明する。これは、図28と図30のそれぞれで説明した動作の組み合わせとなる。図31は図17に示したアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):パケット受信手段3200は、ルータノード2000からのパケットを受信する。ステップ2(S2):パケット受信手段3200は、当該パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段3300に渡す。
ステップ3(S3):アダプタフィルタ制御手段3300は、当該アクセス要求を処理可能かどうか、アクセス要求の処理を一時停止する必要があるかどうかを判定する。そして、このアクセス要求の処理を一時停止する必要があると判断すると、アクセス要求の処理を一時停止する旨の通知をパケット受信手段3200に渡す。ここで、パケット受信手段3200は、当該アクセス要求の処理を一時停止する旨の通知を受け取ると、パケットを保存する。
ステップ4(S4):パケット受信手段3200は、受信フィルタデータの更新のためのデータを含む更新用パケットをルータノード2000から受信する。
ステップ5(S5):パケット受信手段3200は、受信した更新用パケットを受信フィルタデータ3321に対する書き込みのアクセス要求に変換してアダプタフィルタ制御手段3300に渡す。アダプタフィルタ制御手段3300は、当該アクセス要求を処理可能であると判断し、当該アクセス要求に伴って受信したデータを受信フィルタデータ3321に書き込む。これにより、受信フィルタデータ3321が更新される。このとき、ステップ3での受信フィルタデータ3321でのエントリにおいて、アクセス要求の処理の一時停止が解除される。そのため、アダプタフィルタ制御手段3300は、パケット受信手段3200に保存されたパケットによるアクセス要求の処理が可能となる。
ステップ6(S6):パケット受信手段3200は、保存していたパケットを再度アダプタフィルタ制御手段3300に渡す。ステップ7(S7):アダプタフィルタ制御手段3300は、パケット受信手段3200から受け取るパケットによるアクセス要求が、ステップ3のときとは異なり処理可能であるため、そのアクセス要求をコア99へと渡す。
次に、ルータノードから受信したパケットによるアクセス要求の処理を一時停止し、そのパケットを自分宛にして一旦外部に送出した後、受信フィルタデータ3321の更新により、処理の一時停止の対象だったアクセス要求を処理可能とする場合のアダプタ3000の内部の動作を説明する。これは、図29と図30のそれぞれで説明した動作の組み合わせとなる。図32は図17に示したアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):パケット受信手段3200は、ルータノード2000からのパケットを受信する。ステップ2(S2):パケット受信手段3200は、当該パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段3300に渡す。
ステップ3(S3):アダプタフィルタ制御手段3300は、当該アクセス要求を処理可能かどうか、アクセス要求の処理を一時停止する必要があるかどうかを判定する。そして、このアクセス要求の処理を一時停止する必要があると判断すると、アクセス要求の処理を一時停止する旨の通知をパケット受信手段3200に渡す。
ステップ4(S4):パケット受信手段3200は、当該アクセス要求の処理を一時停止する旨の通知を受け取ると、そのアクセス要求の情報を含む、自分宛の再送パケットを生成してパケット送信手段3100に渡す。
ステップ5(S5):パケット送信手段3100は、パケット受信手段3200から渡された再送パケットを、コアからのアクセス要求よりも優先してルータノード2000に渡す。なお、ここで、デッドロックしないことが保証されるのであれば、コアからのアクセス要求よりも再送パケットを優先しなくてもよい。
ステップ6(S6):パケット受信手段3200は、受信フィルタデータの更新のためのデータを含む更新用パケットをルータノード2000から受信する。
ステップ7(S7):パケット受信手段3200は、受信した更新用パケットを受信フィルタデータ3321に対する書き込みのアクセス要求に変換してアダプタフィルタ制御手段3300に渡す。アダプタフィルタ制御手段3300は、当該アクセス要求を処理可能であると判断し、当該アクセス要求に伴って受信したデータを受信フィルタデータ3321に書き込む。これにより、受信フィルタデータ3321が更新される。このとき、ステップ3での受信フィルタデータ3321でのエントリにおいて、アクセス要求の処理の一時停止が解除される。そのため、アダプタフィルタ制御手段3300は、一旦外部に送出された再送パケットによるアクセス要求の処理が可能となる。
ステップ8(S8):パケット受信手段3200は、ルータノード2000から再送パケットを受信する。ステップ9(S9):パケット受信手段3200は、当該再送パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段3300に渡す。ステップ10(S10):アダプタフィルタ制御手段3300は、当該アクセス要求を処理可能か否か判定し、ステップ3とは異なり処理可能であると判断すると、そのアクセス要求をコア99に渡す。
ここまでは、コア、アダプタ及びルータノードからなる組に注目して各構成を詳しく説明したが、次に、その組が複数接続された場合について説明する。
図33は相互結合網に接続された複数コアを有する半導体集積回路の一構成例を示すブロック図である。
図33を参照すると、半導体集積回路は、16個のコア99P00〜99P33と、コア間を接続する相互結合網とを有する。相互結合網には、16個のルータノード2000P00〜2000P33と、16個のアダプタ3000P00〜3000P33とが設けられている。ここで、i及びjのそれぞれを0から3の任意の整数とすると、コア99Pijはアダプタ3000Pijと接続され、アダプタ3000Pijはルータノード2000Pijと接続されている。
ルータノード2000Pijは入出力用に4チャネル備えている。ルータノード2000P00〜2000P33のチャネル同士を接続することで、図33に示すように、全体としてメッシュ構造の相互結合網が形成されている。
なお、相互結合網の最外周に位置するルータノード同士の接続は2チャネルまたは3チャネルとなる。また、ここでは結合網がメッシュ構造であるが、結合網の構成はメッシュに限らず、メッシュ以外の一般的な相互結合網であってもよい。
また、図33に示す相互結合網では、各ルータノードにアダプタ及びコアが1つずつ接続されているが、図4に示したように、相互結合網内のルータノードの一部がパケットの配送だけを行うものであってもよい。
さらに、本実施形態では、4つのコア99P00、99P01、99P10、99P11は信頼度の高いコア群に属するものとして定められ、4つのコア99P20、99P30、99P21、99P31は信頼度の低いコア群に属するものとして定められている。この信頼度は、システム側で定めてもよいし、特許文献1に記載されているようにダウンロードするネイティブコードの証明書の信頼度で定めてもよい。それ以外の8つのコア99P02、99P03、99P12、99P13、99P22、99P23、99P32、99P33については信頼度が規定されていない。
上記コア間のアクセス要求の許可についてのルールを説明する。信頼度の高いコアである高信頼度なコアから信頼度の低いコアである低信頼度なコアへのアクセス要求は許可されている。反対に、低信頼度なコアから高信頼度なコアへのアクセス要求は許可されていない。また、高信頼度なコアから信頼度が規定されていないコアへのアクセス要求は許可されている。一方、低信頼度のコアから信頼度が規定されていないコアへのアクセス要求は、許可されている場合と許可されていない場合があり、予め定められている。そして、これらの設定情報の初期の状態が、予め受信フィルタデータ3321に記述されている。
次に、コア99P11からコア99P32にアクセス要求を行う場合の動作を説明する。この場合、高信頼度はコアから信頼度が規定されていないコアへのアクセス要求が行われるので、このアクセス要求は許可される。図34は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P11がアダプタ3000P11にアクセス要求を渡すと、アダプタ3000P11は、アクセス要求をパケットに変換し、コア99P32を宛先としたパケットをルータノード2000P11へ送信する。ルータノード2000P11は、アダプタ3000P11から受け取ったパケットを隣接するルータノード2000P12に送出する。ルータノード2000P11から送出されたパケットは、ルータノード2000P12、2000P13、2000P23及び2000P22を含む中間ルータノード群を介してルータノード2000P32に到着する。そして、ルータノード2000P32は、受け取ったパケットをアダプタ3000P32に渡し、アダプタ3000P32は当該パケットをコア対応のアクセス要求に変換してコア99P32に渡す。
次に、コア99P11からコア99P22にアクセス要求を行う場合の動作を説明する。この場合、高信頼度なコアから信頼度が規定されていないコアへのアクセス要求が行われるので、このアクセス要求は許可される。図35は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P11がアダプタ3000P11にアクセス要求を渡すと、アダプタ3000P11は、アクセス要求をパケットに変換し、コア99P22を宛先としたパケットをルータノード2000P11へ送信する。ルータノード2000P11は、アダプタ3000P11から受け取ったパケットを隣接するルータノード2000P12に送出する。ルータノード2000P11から送出されたパケットは、中継となるルータノード2000P12を介してルータノード2000P22に到着する。そして、ルータノード2000P22は、受け取ったパケットをアダプタ3000P22に渡し、アダプタ3000P22は当該パケットをコア対応のアクセス要求に変換してコア99P22に渡す。
次に、コア99P30からコア99P22にアクセス要求を行う場合の動作を説明する。この場合、低信頼度なコアから信頼度が規定されていないコアへのアクセス要求が行われるが、このアクセス要求は許可されているものとする。図36は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P30がアダプタ3000P30にアクセス要求を渡すと、アダプタ3000P30は、アクセス要求をパケットに変換し、コア99P22を宛先としたパケットをルータノード2000P30へ送信する。ルータノード2000P30は、アダプタ3000P30から受け取ったパケットを隣接するルータノード2000P31に送出する。ルータノード2000P30から送出されたパケットは、ルータノード2000P31、2000P32を含む中間ルータノード群を介してルータノード2000P22に到着する。そして、ルータノード2000P22は、受け取ったパケットをアダプタ3000P22に渡し、アダプタ3000P22は当該パケットをコア対応のアクセス要求に変換してコア99P22に渡す。
次に、コア99P30からコア99P32にアクセス要求を行う場合の動作を説明する。この場合、低信頼度なコアから信頼度が規定されていないコアへのアクセス要求が行われるが、このアクセス要求は許可されていないものとする。図37は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P30がアダプタ3000P30にアクセス要求を渡すと、アダプタ3000P30は、アクセス要求をパケットに変換し、コア99P32を宛先としたパケットをルータノード2000P30へ送信する。ルータノード2000P30は、アダプタ3000P30から受け取ったパケットを隣接するルータノード2000P31に送出する。ルータノード2000P30から送出されたパケットは、中継となるルータノード2000P31を介してルータノード2000P32に到着する。そして、ルータノード2000P32は、受け取ったパケットをアダプタ3000P32に渡し、アダプタ3000P32は当該パケットをコア対応のアクセス要求に変換する。
しかしながら、当該アクセス要求が許可されていないことから、アダプタ3000P32は、アクセス要求が許可されずにエラーを起こしたことをコア99P30に対して通知するためのパケットであるエラーパケットを生成する。続いて、エラーパケットをルータノード2000P32に送信する。ルータノード2000P32は受け取ったエラーパケットを隣接するルータノード2000P31に送出する。ルータノード2000P32から送出されたエラーパケットは、中継となるルータノード2000P31を介してルータノード2000P30に到着する。その後、ルータノード2000P30はアダプタ3000P30にエラーパケットを渡し、アダプタ3000P30は当該エラーパケットをコアに対してアクセス要求がエラーを起こしたことを通知するための情報であるアクセスエラー応答に変換してコア99P30に渡す。なお、エラーパケットがアクセス要求のパケットが配送された経路を逆方向に配送される場合で説明したが、この経路とは異なる経路で配送されてもよい。
次に、高信頼度なコア99P00が、低信頼度なコア99P30からコア99P22へのアクセス要求を禁止するが、コア99P32へのアクセス要求を許可するため、アダプタ3000P22及び3000P32におけるアクセス要求の処理を一時停止にする場合の動作を説明する。コア99P22とコア99P32は信頼度が規定されていないコアである。図38は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P00が、アダプタ3000P22におけるアクセス要求の処理を一時停止する旨を受信フィルタデータ3321に書き込むことを指示するための一時停止要求をアダプタ3000P00に渡すと、アダプタ3000P00は、アクセス要求の処理を一時停止する旨を受信フィルタデータ3321に書き込むことを指示するための一時停止パケットをアダプタ3000P22を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P21を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、複数のルータノードを介して受け取った一時停止パケットをアダプタ3000P22に渡す。アダプタ3000P22は、当該一時停止パケットがアクセス要求の処理の一時停止を指示するものであることを認識すると、受信フィルタデータ3321においてアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Yes」にし、アクセス要求の処理を一時停止状態に変更する。
ステップ2(S2):コア99P00が、アダプタ3000P32におけるアクセス要求の処理を一時停止する旨を受信フィルタデータ3321に書き込むことを指示するための一時停止要求をアダプタ3000P00に渡すと、アダプタ3000P00は、一時停止パケットをアダプタ3000P32を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P30、2000P31を介してルータノード2000P32に到着する。
そして、ルータノード2000P32は、複数のルータノードを介して受け取った一時停止パケットをアダプタ3000P32に渡す。アダプタ3000P32は、当該一時停止パケットがアクセス要求の処理の一時停止を指示するものであることを認識すると、受信フィルタデータ3321においてアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Yes」にし、アクセス要求の処理を一時停止状態に変更する。
次に、高信頼度なコア99P00が、低信頼度なコア99P30からコア99P22へのアクセス要求を禁止するが、コア99P32へのアクセス要求を許可するため、アクセス要求の処理の一時停止状態にあるアダプタ3000P22及び3000P32の受信フィルタデータを更新する場合の動作を説明する。図39は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P00が、アダプタ3000P22におけるコア99P30からのアクセス要求の処理を禁止する旨の受信フィルタデータに更新するための受信フィルタデータ更新要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P30からのアクセス要求の処理を禁止する旨の情報を含む更新用パケットをアダプタ3000P22を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新用パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P21を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、複数のルータノードを介して受け取った更新用パケットをアダプタ3000P22に渡す。アダプタ3000P22は、当該更新用パケットがコア99P30からのアクセス要求の処理を禁止するものであることを認識すると、受信フィルタデータ3321において、一時停止ビットを「Yes」に保ったまま、コア99P30にアダプタ3000P30を介して接続されるルータノード2000P30についての許可ビットに「R」と「W」のいずれも記入しないビットに設定し、コア99P30からのアクセス要求の処理を禁止した状態へと変更する。
ステップ2(S2):コア99P00が、アダプタ3000P32におけるコア99P30からのアクセス要求の処理を許可する旨の受信フィルタデータに更新するための受信フィルタデータ更新要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P30からのアクセス要求の処理を許可する旨の情報を含む更新用パケットをアダプタ3000P32を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新用パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P30、2000P31を介してルータノード2000P32に到着する。
そして、ルータノード2000P32は、複数のルータノードを介して受け取った更新用パケットをアダプタ3000P32に渡す。アダプタ3000P32は、当該更新用パケットがコア99P30からのアクセス要求の処理を許可するものであることを認識すると、受信フィルタデータ3321において、一時停止ビットを「Yes」に保ったまま、コア99P30にアダプタ3000P30を介して接続されるルータノード2000P30についての許可ビットに「R」と「W」を設定し、コア99P30からのアクセス要求の処理を許可した状態へと変更する。
次に、高信頼度なコア99P00が、低信頼度なコア99P30からコア99P22へのアクセス要求を禁止するが、コア99P32へのアクセス要求を許可するための受信フィルタデータ更新後に、アダプタ3000P22及び3000P32に対してアクセス要求の一時停止状態を解除する場合の動作を説明する。図40は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P00が、アダプタ3000P22におけるアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ3321に書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡すと、アダプタ3000P00は、アクセス要求の処理の一時停止を解除する旨を受信フィルタデータ3321に書き込むことを指示するための一時停止解除パケットをアダプタ3000P22を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P21を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、複数のルータノードを介して受け取った一時停止解除パケットをアダプタ3000P22に渡す。アダプタ3000P22は、当該一時停止解除パケットがアクセス要求の処理の一時停止の解除を指示するものであることを認識すると、受信フィルタデータ3321においてアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「No」にし、アクセス要求の処理の一時停止状態を解除する。この場合、アダプタ3000P22は、コア99P00からのアクセス要求の処理を禁止した状態を維持する。
ステップ2(S2):コア99P00が、アダプタ3000P32におけるアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ3321に書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡すと、アダプタ3000P00は、一時停止解除パケットをアダプタ3000P32を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P30、2000P31を介してルータノード2000P32に到着する。
そして、ルータノード2000P32は、複数のルータノードを介して受け取った一時停止解除パケットをアダプタ3000P32に渡す。アダプタ3000P32は、当該一時停止解除パケットがアクセス要求の処理の一時停止の解除を指示するものであることを認識すると、受信フィルタデータ3321においてアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「No」にし、アクセス要求の処理の一時停止状態を解除する。この場合、アダプタ3000P32は、コア99P00からのアクセス要求の処理を許可した状態を維持する。
次に、図38、図39及び図40で説明したように受信フィルタデータの設定変更が行われた後に、コア99P11がコア99P32にアクセス要求をする場合の動作を説明する。上述したように受信フィルタデータの設定変更が行われたが、コア99P11は高信頼度なコアであるため、信頼度の規定されていないコア99P32へのコア99P11からのアクセス要求は許可されている。図41は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P11がアダプタ3000P11にアクセス要求を渡すと、アダプタ3000P11は、アクセス要求をパケットに変換し、コア99P32を宛先としたパケットをルータノード2000P11へ送信する。ルータノード2000P11は、アダプタ3000P11から受け取ったパケットを隣接するルータノード2000P12に送出する。ルータノード2000P11から送出されたパケットは、ルータノード2000P12、2000P13、2000P23及び2000P22を含む中間ルータノード群を介してルータノード2000P32に到着する。そして、ルータノード2000P32は、受け取ったパケットをアダプタ3000P32に渡し、アダプタ3000P32は当該パケットをコア対応のアクセス要求に変換してコア99P32に渡す。
次に、図38、図39及び図40で説明したように受信フィルタデータの設定変更が行われた後に、コア99P11がコア99P22にアクセス要求をする場合の動作を説明する。上述したように受信フィルタデータの設定変更が行われたが、コア99P11は高信頼度なコアであるため、信頼度の規定されていないコア99P22へのコア99P11からのアクセス要求は許可されている。図42は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P11がアダプタ3000P11にアクセス要求を渡すと、アダプタ3000P11は、アクセス要求をパケットに変換し、コア99P22を宛先としたパケットをルータノード2000P11へ送信する。ルータノード2000P11は、アダプタ3000P11から受け取ったパケットを隣接するルータノード2000P12に送出する。ルータノード2000P11から送出されたパケットは、中継となるルータノード2000P12を介してルータノード2000P22に到着する。そして、ルータノード2000P22は、受け取ったパケットをアダプタ3000P22に渡し、アダプタ3000P22は当該パケットをコア対応のアクセス要求に変換してコア99P22に渡す。
次に、図38、図39及び図40で説明したように受信フィルタデータの設定変更が行われた後に、コア99P30がコア99P22にアクセス要求をする場合の動作を説明する。上述したように受信フィルタデータの設定変更が行われたため、図36で説明した場合とは異なり、低信頼度のコア99P30からコア99P22へのアクセス要求は許可されていない。図43は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P30がアダプタ3000P30にアクセス要求を渡すと、アダプタ3000P30は、アクセス要求をパケットに変換し、コア99P22を宛先としたパケットをルータノード2000P30へ送信する。ルータノード2000P30は、アダプタ3000P30から受け取ったパケットを隣接するルータノード2000P31に送出する。ルータノード2000P30から送出されたパケットは、ルータノード2000P31、2000P32を含む中間ルータノード群を介してルータノード2000P22に到着する。そして、ルータノード2000P22は、受け取ったパケットをアダプタ3000P22に渡し、アダプタ3000P22は当該パケットをコア対応のアクセス要求に変換する。
しかしながら、当該アクセス要求が許可されていないことから、アダプタ3000P22は、アクセス要求が許可されずにエラーを起こしたことをコア99P30に対して通知するためのパケットであるエラーパケットを生成する。続いて、エラーパケットをルータノード2000P22に送信する。ルータノード2000P22は受け取ったエラーパケットを隣接するルータノード2000P32に送出する。ルータノード2000P22から送出されたエラーパケットは、ルータノード2000P32、2000P31を含む中間ルータノード群を介してルータノード2000P30に到着する。その後、ルータノード2000P30はアダプタ3000P30にエラーパケットを渡し、アダプタ3000P30は当該エラーパケットをコアに対してアクセス要求がエラーを起こしたことを通知するための情報であるアクセスエラー応答に変換してコア99P30に渡す。なお、エラーパケットがアクセス要求のパケットが配送された経路を逆方向に配送される場合で説明したが、この経路とは異なる経路で配送されてもよい。
次に、図38、図39及び図40で説明したように受信フィルタデータの設定変更が行われた後に、コア99P30がコア99P32にアクセス要求をする場合の動作を説明する。上述したように受信フィルタデータの設定変更が行われたため、図37で説明した場合とは異なり、コア99P30が低信頼度のコアであっても、コア99P30からコア99P22へのアクセス要求が許可されている。図44は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P30がアダプタ3000P30にアクセス要求を渡すと、アダプタ3000P30は、アクセス要求をパケットに変換し、コア99P32を宛先としたパケットをルータノード2000P30へ送信する。ルータノード2000P30は、アダプタ3000P30から受け取ったパケットを隣接するルータノード2000P31に送出する。ルータノード2000P30から送出されたパケットは、中継となるルータノード2000P31を介してルータノード2000P32に到着する。そして、ルータノード2000P32は、受け取ったパケットをアダプタ3000P32に渡し、アダプタ3000P32は当該パケットをコア対応のアクセス要求に変換してコア99P32に渡す。
次に、1つのアダプタにおける受信フィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、受信フィルタデータを更新することで、所定のコアからのアクセス要求をそのアダプタに処理させる場合の動作を説明する。ここでは、低信頼度なコア99P30からコア99P22へのアクセス要求の処理が一時停止の状態にあり、その後、高信頼度なコア99P00がコア99P30からのアクセス要求をコア99P22で処理可能に設定し、続いて、アクセス要求の処理の一時停止を解除するものである。図45は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P30がアダプタ3000P30にアクセス要求を渡すと、アダプタ3000P30は、アクセス要求をパケットに変換し、コア99P22を宛先としたパケットをルータノード2000P30へ送信する。ルータノード2000P30は、アダプタ3000P30から受け取ったパケットを隣接するルータノード2000P31に送出する。ルータノード2000P30から送出されたパケットは、ルータノード2000P31、2000P32を含む中間ルータノード群を介してルータノード2000P22に到着する。そして、ルータノード2000P22は、受け取ったパケットをアダプタ3000P22に渡し、アダプタ3000P22は当該パケットをコア対応のアクセス要求に変換する。続いて、アダプタ3000P22は、受信フィルタデータ3321を参照し、アクセス要求を処理するか否かを示す一時停止ビットが「Yes」であることを認識すると、そのパケットを保存する。
ステップ2(S2):コア99P00が、アダプタ3000P22におけるコア99P30からのアクセス要求の処理を許可する旨の受信フィルタデータに更新するための受信フィルタデータ更新要求と、アダプタ3000P22におけるアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ3321に書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡す。アダプタ3000P00は、コア99P00から受信フィルタデータ更新要求と一時停止解除要求を受け取ると、コア99P30からのアクセス要求の処理を許可する旨の情報とアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ3321に書き込むことを指示するための更新・一時停止解除パケットをアダプタ3000P22を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新・一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P21を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、複数のルータノードを介して受け取った更新・一時停止解除パケットをアダプタ3000P22に渡す。アダプタ3000P22は、当該更新・一時停止解除パケットがアダプタ3000P22におけるコア99P30からのアクセス要求の処理を許可する旨と、アクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、受信フィルタデータ3321において、コア99P30にアダプタ3000P30を介して接続されるルータノード2000P30についての許可ビットに「R」と「W」を設定し、コア99P30からのアクセス要求の処理を許可した状態へと変更する。また、受信フィルタデータ3321において一時停止ビットを「No」にし、アクセス要求の処理の一時停止状態を解除する。
ステップ3(S3):アダプタ3000P22は、受信フィルタデータ3321を参照し、コア99P30からのアクセス要求の処理が許可されていることと、アクセス要求の処理の一時停止が解除されていることを認識すると、ステップ1で保存したパケットをコア対応のアクセス要求に変換してコア99P22に渡す。
次に、1つのアダプタにおける受信フィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、受信フィルタデータを更新することで、所定のコアからのアクセス要求の処理をそのアダプタに許可させない場合の動作を説明する。ここでは、低信頼度なコア99P30からコア99P22へのアクセス要求の処理が一時停止の状態にあり、その後、高信頼度なコア99P00がコア99P30からのアクセス要求をコア99P22で処理禁止に設定し、続いて、アクセス要求の処理の一時停止を解除するものである。図46は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P30がアダプタ3000P30にアクセス要求を渡すと、アダプタ3000P30は、アクセス要求をパケットに変換し、コア99P22を宛先としたパケットをルータノード2000P30へ送信する。ルータノード2000P30は、アダプタ3000P30から受け取ったパケットを隣接するルータノード2000P31に送出する。ルータノード2000P30から送出されたパケットは、ルータノード2000P31、2000P32を含む中間ルータノード群を介してルータノード2000P22に到着する。そして、ルータノード2000P22は、受け取ったパケットをアダプタ3000P22に渡し、アダプタ3000P22は当該パケットをコア対応のアクセス要求に変換する。続いて、アダプタ3000P22は、受信フィルタデータ3321を参照し、アクセス要求を処理するか否かを示す一時停止ビットが「Yes」であることを認識すると、そのパケットを保存する。
ステップ2(S2):コア99P00が、アダプタ3000P22におけるコア99P30からのアクセス要求の処理を禁止する旨の受信フィルタデータに更新するための受信フィルタデータ更新要求と、アダプタ3000P22におけるアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ3321に書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡す。アダプタ3000P00は、コア99P00から受信フィルタデータ更新要求と一時停止解除要求を受け取ると、コア99P30からのアクセス要求の処理を禁止する旨の情報とアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ3321に書き込むことを指示するための更新・一時停止解除パケットをアダプタ3000P22を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新・一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P21を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、複数のルータノードを介して受け取った更新・一時停止解除パケットをアダプタ3000P22に渡す。アダプタ3000P22は、当該更新・一時停止解除パケットがアダプタ3000P22におけるコア99P30からのアクセス要求の処理を禁止する旨と、アクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、受信フィルタデータ3321において、コア99P30にアダプタ3000P30を介して接続されるルータノード2000P30についての許可ビットに「R」と「W」のいずれも記入しないビットに設定し、コア99P30からのアクセス要求の処理を禁止した状態へと変更する。また、受信フィルタデータ3321において一時停止ビットを「No」にし、アクセス要求の処理の一時停止状態を解除する。
ステップ3(S3):アダプタ3000P22は、受信フィルタデータ3321を参照し、アクセス要求の処理の一時停止が解除されていることを認識するが、コア99P30からのアクセス要求の処理が禁止されていることを認識すると、アダプタ3000P22は、アクセス要求が許可されずにエラーを起こしたことをコア99P30に対して通知するためのパケットであるエラーパケットを生成する。続いて、エラーパケットをルータノード2000P22に送信する。ルータノード2000P22は受け取ったエラーパケットを隣接するルータノード2000P32に送出する。ルータノード2000P22から送出されたエラーパケットは、ルータノード2000P32、2000P31を含む中間ルータノード群を介してルータノード2000P30に到着する。
その後、ルータノード2000P30はアダプタ3000P30にエラーパケットを渡し、アダプタ3000P30は当該エラーパケットをコアに対してアクセス要求がエラーを起こしたことを通知するための情報であるアクセスエラー応答に変換してコア99P30に渡す。なお、エラーパケットがアクセス要求のパケットが配送された経路を逆方向に配送される場合で説明したが、この経路とは異なる経路で配送されてもよい。
次に、1つのアダプタにおける受信フィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、受信フィルタデータを更新することで、所定のコアからのアクセス要求をそのアダプタに処理させる場合について、図45の場合とは別の動作を説明する。ここでは、アダプタは、処理の一時停止の対象になったパケットを保存せずに、自装置宛に外部にパケットを送出するものである。図47は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P30がアダプタ3000P30にアクセス要求を渡すと、アダプタ3000P30は、アクセス要求をパケットに変換し、コア99P22を宛先としたパケットをルータノード2000P30へ送信する。ルータノード2000P30は、アダプタ3000P30から受け取ったパケットを隣接するルータノード2000P31に送出する。ルータノード2000P30から送出されたパケットは、ルータノード2000P31、2000P32を含む中間ルータノード群を介してルータノード2000P22に到着する。そして、ルータノード2000P22は、受け取ったパケットをアダプタ3000P22に渡し、アダプタ3000P22は当該パケットをコア対応のアクセス要求に変換する。続いて、アダプタ3000P22は、受信フィルタデータ3321を参照し、アクセス要求を処理するか否かを示す一時停止ビットが「Yes」であることを認識すると、そのアクセス要求の情報を含む、自分宛のパケットである再送パケットを生成して相互結合網内に送出する。
ステップ2(S2):コア99P00が、アダプタ3000P22におけるコア99P30からのアクセス要求の処理を許可する旨の受信フィルタデータに更新するための受信フィルタデータ更新要求と、アダプタ3000P22におけるアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ3321に書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡す。アダプタ3000P00は、コア99P00から受信フィルタデータ更新要求と一時停止解除要求を受け取ると、コア99P30からのアクセス要求の処理を許可する旨の情報とアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ3321に書き込むことを指示するための更新・一時停止解除パケットをアダプタ3000P22を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新・一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P21を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、複数のルータノードを介して受け取った更新・一時停止解除パケットをアダプタ3000P22に渡す。アダプタ3000P22は、当該更新・一時停止解除パケットがアダプタ3000P22におけるコア99P30からのアクセス要求の処理を許可する旨と、アクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、受信フィルタデータ3321において、コア99P30にアダプタ3000P30を介して接続されるルータノード2000P30についての許可ビットに「R」と「W」を設定し、コア99P30からのアクセス要求の処理を許可した状態へと変更する。また、受信フィルタデータ3321において一時停止ビットを「No」にし、アクセス要求の処理の一時停止状態を解除する。
ステップ3(S3):アダプタ3000P22は、ステップ1で生成した再送パケットを、ルータノード2000P12、2000P13、2000P23を含む中間ルータノード群を介してルータノード2000P22へと送信する。そして、ルータノード2000P22は、受信した再送パケットをアダプタ3000P22に渡す。
ステップ4(S4):アダプタ3000P22は、再送パケットを受信すると、受信フィルタデータ3321を参照し、コア99P30からのアクセス要求の処理が許可されていることと、アクセス要求の処理の一時停止が解除されていることを認識すると、再送パケットをコア対応のアクセス要求に変換してコア99P22に渡す。
次に、1つのアダプタにおける受信フィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、受信フィルタデータを更新することで、所定のコアからのアクセス要求の処理をそのアダプタに許可させない場合について、図46の場合とは別の動作を説明する。ここでは、アダプタは、処理の一時停止の対象になったパケットを保存せずに、自装置宛に外部にパケットを送出するものである。図48は図33に示した半導体集積回路の動作の一例を説明するための図である。
ステップ1(S1):コア99P30がアダプタ3000P30にアクセス要求を渡すと、アダプタ3000P30は、アクセス要求をパケットに変換し、コア99P22を宛先としたパケットをルータノード2000P30へ送信する。ルータノード2000P30は、アダプタ3000P30から受け取ったパケットを隣接するルータノード2000P31に送出する。ルータノード2000P30から送出されたパケットは、ルータノード2000P31、2000P32を含む中間ルータノード群を介してルータノード2000P22に到着する。そして、ルータノード2000P22は、受け取ったパケットをアダプタ3000P22に渡し、アダプタ3000P22は当該パケットをコア対応のアクセス要求に変換する。続いて、アダプタ3000P22は、受信フィルタデータ3321を参照し、アクセス要求を処理するか否かを示す一時停止ビットが「Yes」であることを認識すると、そのアクセス要求の情報を含む、自分宛のパケットである再送パケットを生成して相互結合網内に送出する。
ステップ2(S2):コア99P00が、アダプタ3000P22におけるコア99P30からのアクセス要求の処理を禁止する旨の受信フィルタデータに更新するための受信フィルタデータ更新要求と、アダプタ3000P22におけるアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ3321に書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡す。アダプタ3000P00は、コア99P00から受信フィルタデータ更新要求と一時停止解除要求を受け取ると、コア99P30からのアクセス要求の処理を禁止する旨の情報とアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ3321に書き込むことを指示するための更新・一時停止解除パケットをアダプタ3000P22を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新・一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P21を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、複数のルータノードを介して受け取った更新・一時停止解除パケットをアダプタ3000P22に渡す。アダプタ3000P22は、当該更新・一時停止解除パケットがアダプタ3000P22におけるコア99P30からのアクセス要求の処理を禁止する旨と、アクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、受信フィルタデータ3321において、コア99P30にアダプタ3000P30を介して接続されるルータノード2000P30についての許可ビットに「R」と「W」のいずれも記入しないビットに設定し、コア99P30からのアクセス要求の処理を禁止した状態へと変更する。また、受信フィルタデータ3321において一時停止ビットを「No」にし、アクセス要求の処理の一時停止状態を解除する。
ステップ3(S3):アダプタ3000P22は、ステップ1で生成した再送パケットを、ルータノード2000P12、2000P13、2000P23を含む中間ルータノード群を介してルータノード2000P22へと送信する。そして、ルータノード2000P22は、受信した再送パケットをアダプタ3000P22に渡す。
ステップ4(S4):アダプタ3000P22は、再送パケットを受信すると、受信フィルタデータ3321を参照し、アクセス要求の処理の一時停止が解除されていることを認識するが、コア99P30からのアクセス要求の処理が禁止されていることを認識する。そして、アダプタ3000P22は、アクセス要求が許可されずにエラーを起こしたことをコア99P30に対して通知するためのパケットであるエラーパケットを生成する。続いて、エラーパケットをルータノード2000P22に送信する。ルータノード2000P22は受け取ったエラーパケットを隣接するルータノード2000P32に送出する。ルータノード2000P22から送出されたエラーパケットは、ルータノード2000P32、2000P31を含む中間ルータノード群を介してルータノード2000P30に到着する。
その後、ルータノード2000P30はアダプタ3000P30にエラーパケットを渡し、アダプタ3000P30は当該エラーパケットをコアに対してアクセス要求がエラーを起こしたことを通知するための情報であるアクセスエラー応答に変換してコア99P30に渡す。なお、エラーパケットがアクセス要求のパケットが配送された経路を逆方向に配送される場合で説明したが、この経路とは異なる経路で配送されてもよい。
本実施形態では、コアからのアクセス要求に対して、相互結合網内の複数のアダプタのそれぞれは、配送情報にしたがってアクセス要求の配送制御を行う。アダプタのそれぞれが保持する配送情報の内容に統一性をもたせることで、一貫性のあるフィルタ制御が可能となる。
また、配送情報を更新する際には、相互結合網内の複数のアダプタに対して、アクセス要求の処理の一時停止の指示と、受信フィルタデータの更新およびアクセス要求の処理の一時停止の解除の指示が所定のコアから一斉になされる。各アダプタでのアクセス要求の処理を一時停止させることにより、相互結合網全体に渡って、一貫性のあるフィルタ設定更新が可能となる。
本発明によれば、バス結合によって複数CPUを接続する半導体集積回路だけでなく、相互結合網によって複数CPUが接続される半導体集積回路においても、ダウンロードプログラムのように新たに追加されるプログラムがコンピュータウィルスを伴っている危険があっても、高信頼度と低信頼度にグループ分けされたCPUのうち、フィルタデータを更新して低信頼度なCPUに実行させることが可能となる。新たに追加されたプログラムが認証を受けたものであれが、高信頼度なCPUに実行させるようにフィルタデータを更新すればよい。このように、新たなプログラムやデータが追加されても、そのプログラムやデータの信頼度に合わせて高信頼度なCPUと低信頼度なCPUのいずれのグループに実行させるかを設定してCPU分離制御を行うことで、セキュリティを向上させることができる。
さらに、相互結合網上で、セキュリティポリシーに応じて、CPU分離制御の設定を動的に変更できる。その結果、より柔軟なシステム構成を実現できる。
なお、相互結合網の構成は他にも考えられ、以下に、構成例を説明する。
図49は相互結合網の一構成例を示す図である。図49に示す相互結合網は、図33に示した半導体集積回路の場合と同様な構成である。ここでは、16個のルータノード2010がメッシュ構造に接続されている。
図50は相互結合網の別の構成例を示す図である。図50を参照すると、16個のルータノード2010がトーラス構造に接続されている。図51は相互結合網の別の構成例を示す図である。図51を参照すると、15個のルータノード2010がツリー構造に接続されている。
図49、図50及び図51に示したように、様々なトポロジーを持つ相互結合網を用いてもよい。
図52は相互結合網の別の構成例を示す図である。図52を参照すると、16個のルータノード2010が図49の場合と同様にメッシュ構造を形成するように配置されているものの、一部のルータノード間のリンクは接続されていない。このように、不規則なトポロジーを持つ相互結合網を用いてもよい。
図53は相互結合網の別の構成例を示す図である。図53を参照すると、16個のルータノード2010について、4個のルータノードをリング接続したものを1グループにして4個のグループに分け、さらに、これらの4個のグループをリング接続で束ねるという構成をとっている。このような、階層的なトポロジーを持つ相互結合網を用いてもよい。
複数のルータノードに対する結合方式は、上述の例に限らず、バス結合方式またはスイッチ結合方式などの方式を上述の結合方式に組み合わせてもよい。
(第2の実施形態)
第1の実施形態では、アクセス要求の制御をアダプタの受信側で行っていたが、本実施形態では、アダプタの送信側が行うものである。以下では、アダプタフィルタ制御手段以外の構成については、第1の実施形態と同様であるため、その詳細な説明を省略する。
図17に示したアダプタ3000のアダプタフィルタ制御手段3300の本実施形態の構成について説明する。図54はアダプタフィルタ制御手段3300の本実施形態における構成例を示す図である。
図54を参照すると、アダプタフィルタ制御手段3300は、自身に接続されたコアへの外部からのアクセス要求を処理するか否かの判断とその処理を一時停止するか否かの判断を行う受信フィルタ手段3320と、その判断のために利用する情報である受信フィルタデータ3321と、自身に接続されたコアから受け取るアクセス要求を外部に送信するか否かの判断とアクセス要求に対する処理を一時停止するか否かの判断を行う送信フィルタ手段3310と、その判断のために利用する情報である送信フィルタデータ3311とを備える。受信フィルタデータ3321及び送信フィルタデータ3311は図に示さない記憶手段に格納されている。
送信フィルタ手段3310は、自身に接続されたコア99からのアクセス要求を外部に送信するか否かの判断とアクセス要求に対する処理を一時停止するか否かの判断を行い、アクセス要求を送信しない場合には、コア99にその旨を通知し、アクセス要求を送信する場合には、アクセス要求をパケット送信手段3100に渡す。
次に、送信フィルタデータ3311について説明する。図55は送信フィルタデータ3321の一構成例を示す図である。ここでは、アダプタ3000に接続されたコアがCPUであり、アダプタ3000に接続されたルータノードが図19(b)の表に示したルータノード#2の場合の例を示す。
図55の送信フィルタデータ3311は、図19(b)に示した受信フィルタデータを格納したアダプタに接続されたメモリに対して、上記CPUからのアクセス要求がどの範囲で、どの種類の要求に関して許可されているかを示している。図55を参照すると、区分けされたメモリ領域と、許可されているアクセス要求の種類を示す項目である「許可ビット」と、アクセス要求の処理を一時停止するか否かを示す「一時停止ビット」とを組とするエントリが設けられている。以下に、表が示す内容を具体的に説明する。
アドレス範囲0x 00000000〜0x 10000000の高信頼領域に対しては、許可ビットが「R」であることから、読み出しのアクセス要求が許可されている。一時停止ビットが「No」であることから、上記CPUからの高信頼領域に対するアクセス要求があったときにその処理を一時停止する必要はない。アドレス範囲0x 10000000〜0x 20000000の低信頼領域に対しては、許可ビットが「R」と「W」であることから、読み出しと書き込みの両方のアクセス要求が許可されている。一時停止ビットが「No」であることから、高信頼領域と同様に、上記CPUからの低信頼領域に対するアクセス要求の処理を一時停止する必要はない。
ここでは、送信フィルタデータを格納したアダプタに接続されたコア自身からは直接そのアダプタの送信フィルタデータを更新できないものとしている。送信フィルタデータ3311の情報の更新は、高信頼領域内のコアで実行されるアプリケーションソフトで生成される新たなデータ、または、予め設定変更情報が記述されたファイルから読み出されるデータ等に書き換わることで行われる。送信フィルタデータ3311の更新方法の具体例については、後述する。この更新は、受信フィルタデータの更新の場合と同様に、半導体集積回路全体の条件や状況に応じて、高信頼領域の範囲の変更が必要なときに行われる。
一方、半導体集積回路として予め所定の条件が設定され、その条件に一致する場合に限り、送信フィルタデータを格納したアダプタに接続されたコア自身から直接そのアダプタの送信フィルタデータの一部または全部を更新可能にしてもよい。この場合、高信頼度なコアから送信フィルタデータを更新するための新たなデータの受信を待つ必要がない。
なお、1つのメモリへのアクセス要求をする場合について説明したが、アクセス要求先のメモリが複数ある場合には、複数のメモリのそれぞれについて図55に示した表を全て含むものが送信フィルタデータ3311としてアダプタ3000に予め登録される。予め登録されている場合に限らず、アクセス要求先のメモリが変更または新規に追加される際に、変更内容に対応して送信フィルタデータが更新されてもよい。アクセス要求の送信先、メモリ領域、およびアクセス要求の種類の情報は、処理されるための条件である配送情報に相当する。
また、図19に示した受信フィルタデータの代わりに図55に示す送信フィルタデータ3311を各アダプタ3000に格納してもよい。この場合、アクセス要求の送信側でアクセス制御が行われるため、各アダプタ3000の受信フィルタ手段3320は外部から受け取るアクセス要求に対してその要求に応答するか否かの判断を行う必要がない。よって、アクセス要求を受け取る側のアダプタの処理の負荷が軽減する。
また、送信フィルタデータ3311は、図55に示すような表形式の場合に限られない。送信フィルタ手段3310が読み出し可能で、読み出した情報にしたがってアクセス制御することができれば、その他の形式でもよい。
次に、アダプタフィルタ制御手段3300がアクセス要求を受け付け、そのアクセス要求の送信を許可する場合の動作を説明する。図56は図54に示したアダプタフィルタ制御手段3300の動作の一例を説明するための図である。
ステップ1(S1):送信フィルタ手段3310は、自身が属するアダプタ3000に接続されたコア99からアクセス要求を受け付ける。ステップ2(S2):送信フィルタ手段3310は、送信フィルタデータ3311を読み出し、読み出した情報に基づいて当該アクセス要求を外部に送信可能かどうかを判断する。その結果、アクセス要求に対する処理の一時停止も必要なく、送信可能であることを認識する。ステップ3(S3):送信フィルタ手段3310は、当該アクセス要求をパケット送信手段3100へ渡す。
次に、アダプタフィルタ制御手段3300がアクセス要求を受け付け、そのアクセス要求の送信を拒否する場合の動作を説明する。図57は図54のアダプタフィルタ制御手段3300の動作の一例を説明するための図である。
ステップ1(S1):送信フィルタ手段3310は、自身が属するアダプタ3000に接続されたコア99からアクセス要求を受け付ける。ステップ2(S2):送信フィルタ手段3310は、送信フィルタデータ3311を読み出し、読み出した情報に基づいて当該アクセス要求を送信可能かどうか判断する。その結果、アクセス要求の送信が禁止されていることを認識する。ステップ3(S3):送信フィルタ手段3310は、当該アクセス要求を送信できない旨を通知するためにアクセスエラー応答をコア99へ渡す。
次に、アダプタフィルタ制御手段3300がアクセス要求を受け付け、アクセス要求に対する処理を一時停止する場合の動作を説明する。図58は図54に示したアダプタフィルタ制御手段3300の動作の一例を説明するための図である。
ステップ1(S1):送信フィルタ手段3310は、自身が属するアダプタ3000に接続されたコア99からアクセス要求を受け付ける。ステップ2(S2):送信フィルタ手段3310は、送信フィルタデータ3311を読み出し、読み出した情報に基づいてアクセス要求に対して処理可能かどうか判断する。その結果、アクセス要求に対する処理を一時停止する必要があることを認識する。送信フィルタ手段3310は、一時停止状態が解除されるまで、当該アクセス要求を保持する。
次に、アダプタフィルタ制御手段3300が送信フィルタデータ3311を更新する場合の動作を説明する。図59は図54に示したアダプタフィルタ制御手段3300の動作の一例を説明するための図である。送信フィルタデータ3311を更新するための新たなデータは、ルータノード2000から入力される。新たなデータの入力方法の具体例については、後述する。
ステップ1(S1):受信フィルタ手段3320は、送信フィルタデータ3311に新たなデータを書き込むためのアクセス要求をパケット受信手段3200から受け付ける。ステップ2(S2):受信フィルタ手段3320は、受信フィルタデータ3321を読み出し、読み出した情報に基づいてアクセス要求に対して処理を行ってよいと判断する。ステップ3(S3):受信フィルタ手段3320は、アクセス要求が送信フィルタデータの更新目的であることを認識すると、処理の一時停止を行わず、当該アクセス要求から新たなデータを読み出す。読み出した新たなデータを送信フィルタデータ3311に書き込む。このようにして、送信フィルタデータ3311が更新される。
ここでは、送信フィルタデータ3311の更新の際、外部から受信する更新用のデータのアクセス制御を受信フィルタ手段3320が行っているが、受信フィルタ制御3320に限らず、送信フィルタ手段3310など受信フィルタ制御3320と同等なアクセス制御が可能な他の回路が行ってもよい。
次に、アダプタ3000に接続されたコア99からアクセス要求があり、そのアクセス要求の送信を許可する場合のアダプタ3000の内部の動作を説明する。図60は図54に示したアダプタフィルタ制御手段3300を有するアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):アダプタフィルタ制御手段3300はコア99からのアクセス要求を受け付ける。ステップ2(S2):アダプタフィルタ制御手段3300は、受け付けたアクセス要求を送信してよいか否か、処理を一時停止すべきか否かを、送信フィルタデータ3311を参照して判定する。そのアクセス要求の送信が許可されていると判断すると、そのアクセス要求をパケット送信手段3100に渡す。ステップ3(S3):パケット送信手段3100は、当該アクセス要求をパケットに変換してルータノード2000に送信する。
次に、アダプタ3000に接続されたコア99からアクセス要求があり、そのアクセス要求の送信を許可しない場合のアダプタ3000の内部の動作を説明する。図61は図54に示したアダプタフィルタ制御手段3300を有するアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):アダプタフィルタ制御手段3300はコア99からのアクセス要求を受け付ける。ステップ2(S2):アダプタフィルタ制御手段3300は、受け付けたアクセス要求を送信してよいか否か、処理を一時停止すべきか否かを、送信フィルタデータ3311を参照して判定する。そのアクセス要求の送信が許可されていないと判断すると、当該アクセス要求を送信できない旨を通知するためにアクセスエラー応答をコア99に渡す。
次に、アダプタ3000に接続されたコア99からアクセス要求があり、そのアクセス要求の処理を一時停止する場合のアダプタ3000の内部の動作を説明する。図62は図54に示したアダプタフィルタ制御手段3300を有するアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):アダプタフィルタ制御手段3300は、コア99からのアクセス要求を受け付ける。アダプタフィルタ制御手段3300は、受け付けたアクセス要求を送信してよいか否か、処理を一時停止すべきか否かを、送信フィルタデータ3311を参照して判定する。アクセス要求の処理を一時停止する必要があると判断すると、そのアクセス要求を保持する。
次に、アダプタ3000に接続されたルータノード2000からパケットを受信し、受信したパケットのデータにより送信フィルタデータ3311を更新する場合のアダプタ3000の内部の動作を説明する。図63は図54に示したアダプタフィルタ制御手段3300を有するアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):パケット受信手段3200は、送信フィルタデータの新たなデータを含むパケットである更新用パケットをルータノード2000から受信する。
ステップ2(S2):パケット受信手段3200は、受信した更新用パケットを送信フィルタデータ3311に対する書き込みのアクセス要求に変換してアダプタフィルタ制御手段3300に渡す。アダプタフィルタ制御手段3300は、当該アクセス要求を処理可能であると判断し、当該アクセス要求に伴って受信したデータを送信フィルタデータ3311に書き込む。これにより、送信フィルタデータ3311が更新される。なお、この更新が受け付けられない場合は、アクセス要求を受け付けないというエラーが起こったときの通常のエラー処理と同様であるため、ここでは詳細な説明を省略する。
次に、アダプタ3000に接続されたルータノード2000から受信したパケットによるアクセス要求の処理を一時停止してそのアクセス要求を一旦保持した後、送信フィルタデータ3311の更新により、処理の一時停止の対象だったアクセス要求を送信可能とする場合のアダプタ3000の内部の動作を説明する。図64は図54に示したアダプタフィルタ制御手段3300を有するアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):アダプタフィルタ制御手段3300は、コア99からのアクセス要求を受け付ける。アダプタフィルタ制御手段3300は、受け付けたアクセス要求を送信してよいか否か、処理を一時停止すべきか否かを、送信フィルタデータ3311を参照して判定する。アクセス要求の処理を一時停止する必要があると判断すると、そのアクセス要求を保持する。
ステップ2(S2):パケット受信手段3200は、送信フィルタデータの新たなデータを含むパケットである更新用パケットをルータノード2000から受信する。
ステップ3(S3):パケット受信手段3200は、受信した更新用パケットを送信フィルタデータ3311に対する書き込みのアクセス要求に変換してアダプタフィルタ制御手段3300に渡す。アダプタフィルタ制御手段3300は、当該アクセス要求を処理可能であると判断し、当該アクセス要求に伴って受信したデータを送信フィルタデータ3311に書き込む。これにより、送信フィルタデータ3311が更新され、保持したアクセス要求の処理に対する一時停止の状態が解除される。
ステップ4(S4):アダプタフィルタ制御手段3300は、送信フィルタデータ3311の更新により、保持していたアクセス要求の送信が許可されたと判断し、そのアクセス要求をパケット送信手段3100に渡す。ステップ5(S5):パケット送信手段3100は、当該アクセス要求をパケットに変換してルータノード2000に送信する。
ここまで、図54に示すアダプタフィルタ制御3300を有するアダプタ3000の構成を詳しく説明したが、次に、そのアダプタと、コアと、ルータノードとが組になったものが複数接続された構成について説明する。
上記アダプタ、コア及びルータノードからなる組が複数接続された場合の構成は図33で説明したものと同様である。そのため、ここでは、図33に示す構成についての詳細な説明を省略する。
次に、図33に示した構成において、コア99P30からコア99P22にアクセス要求を行う場合の動作を説明する。この場合、低信頼度なコアから信頼度が規定されていないコアへのアクセス要求が行われるが、このアクセス要求は許可されているものとする。図65は図33に示した半導体集積回路の動作の一例を説明するための図である。図65に示すアダプタは図54に示したアダプタフィルタ制御手段3300を有している。
ステップ1(S1):コア99P30がアダプタ3000P30にアクセス要求を渡す。アダプタ3000P30は、コア99P30からアクセス要求を受け取ると、送信フィルタデータ3311を参照し、コア99P22へのアクセス要求の送信が許可されていることを認識する。続いて、アクセス要求をパケットに変換し、コア99P22を宛先としたパケットをルータノード2000P30へ送信する。
ルータノード2000P30は、アダプタ3000P30から受け取ったパケットを隣接するルータノード2000P31に送出する。ルータノード2000P30から送出されたパケットは、ルータノード2000P31、2000P32を含む中間ルータノード群を介してルータノード2000P22に到着する。そして、ルータノード2000P22は、受け取ったパケットをアダプタ3000P22に渡し、アダプタ3000P22は当該パケットをコア対応のアクセス要求に変換してコア99P22に渡す。
次に、高信頼度なコア99P00が、低信頼度なコア99P20、99P30、99P21及び99P31のそれぞれからコア99P22へのアクセス要求を禁止するため、アダプタ3000P20、3000P21、3000P30及び3000P31における送信フィルタデータ内のコア99P22へのアクセス要求の処理を一時停止にする場合の動作を説明する。コア99P22は信頼度が規定されていないコアである。図66は図33に示した半導体集積回路の動作の一例を説明するための図である。図66に示すアダプタは図54に示したアダプタフィルタ制御手段3300を有している。
ステップ1(S1):コア99P00が、コア99P22へのアクセス要求の処理を一時停止する旨を送信フィルタデータ3311に書き込むことを指示するための一時停止要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのアクセス要求の処理を一時停止する旨を送信フィルタデータ3311に書き込むことを指示するための一時停止パケットをアダプタ3000P20を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、中継となるルータノード2000P10を介してルータノード2000P20に到着する。
そして、ルータノード2000P20は、受け取った一時停止パケットをアダプタ3000P20に渡す。アダプタ3000P20は、当該一時停止パケットがコア99P22へのアクセス要求の処理の一時停止を指示するものであることを認識すると、送信フィルタデータ3311において、コア99P22へのアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Yes」にし、アクセス要求の処理を一時停止状態に変更する。
ステップ2(S2):コア99P00が、コア99P22へのアクセス要求の処理を一時停止する旨を送信フィルタデータ3311に書き込むことを指示するための一時停止要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのアクセス要求の処理を一時停止する旨を送信フィルタデータ3311に書き込むことを指示するための一時停止パケットをアダプタ3000P30を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、中継となるルータノード2000P10、2000P20を介してルータノード2000P30に到着する。
そして、ルータノード2000P30は、受け取った一時停止パケットをアダプタ3000P30に渡す。アダプタ3000P30は、当該一時停止パケットがコア99P22へのアクセス要求の処理の一時停止を指示するものであることを認識すると、送信フィルタデータ3311において、コア99P22へのアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Yes」にし、アクセス要求の処理を一時停止状態に変更する。
ステップ3(S3):コア99P00が、コア99P22へのアクセス要求の処理を一時停止する旨を送信フィルタデータ3311に書き込むことを指示するための一時停止要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのアクセス要求の処理を一時停止する旨を送信フィルタデータ3311に書き込むことを指示するための一時停止パケットをアダプタ3000P21を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、中継となるルータノード2000P10、2000P20を介してルータノード2000P21に到着する。
そして、ルータノード2000P21は、受け取った一時停止パケットをアダプタ3000P21に渡す。アダプタ3000P21は、当該一時停止パケットがコア99P22へのアクセス要求の処理の一時停止を指示するものであることを認識すると、送信フィルタデータ3311において、コア99P22へのアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Yes」にし、アクセス要求の処理を一時停止状態に変更する。
ステップ4(S4):コア99P00が、コア99P22へのアクセス要求の処理を一時停止する旨を送信フィルタデータ3311に書き込むことを指示するための一時停止要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのアクセス要求の処理を一時停止する旨を送信フィルタデータ3311に書き込むことを指示するための一時停止パケットをアダプタ3000P31を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、中継となるルータノード2000P10、2000P20、2000P30を介してルータノード2000P31に到着する。
そして、ルータノード2000P31は、受け取った一時停止パケットをアダプタ3000P31に渡す。アダプタ3000P31は、当該一時停止パケットがコア99P22へのアクセス要求の処理の一時停止を指示するものであることを認識すると、送信フィルタデータ3311において、コア99P22へのアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Yes」にし、アクセス要求の処理を一時停止状態に変更する。
次に、高信頼度なコア99P00が、低信頼度なコア99P20、99P30、99P21及び99P31のそれぞれからコア99P22へのアクセス要求を禁止するため、アダプタ3000P20、3000P21、3000P30及び3000P31における送信フィルタデータ内のコア99P22へのアクセス要求の許可または禁止を示す項目を更新する場合の動作を説明する。図67は図33に示した半導体集積回路の動作の一例を説明するための図である。図67に示すアダプタは図54に示したアダプタフィルタ制御手段3300を有している。
ステップ1(S1):コア99P00が、アダプタ3000P20からコア99P22へのアクセス要求の送信を禁止する内容に送信フィルタデータを更新するための送信フィルタデータ更新要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのアクセス要求の送信を禁止する旨の情報を含む更新用パケットをアダプタ3000P20を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新用パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10を介してルータノード2000P20に到着する。
そして、ルータノード2000P20は、受け取った更新用パケットをアダプタ3000P20に渡す。アダプタ3000P20は、当該更新用パケットがコア99P22へのアクセス要求の送信を禁止するものであることを認識すると、送信フィルタデータ3311において、一時停止ビットを「Yes」に保ったまま、コア99P22についてのアクセス要求の種類を示す許可ビットを「R」と「W」のいずれも記入しないビットに設定し、コア99P22へのアクセス要求の送信を禁止した状態へと変更する。
ステップ2(S2):コア99P00が、アダプタ3000P30からコア99P22へのアクセス要求の送信を禁止する内容に送信フィルタデータを更新するための送信フィルタデータ更新要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのアクセス要求の送信を禁止する旨の情報を含む更新用パケットをアダプタ3000P30を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新用パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20を介してルータノード2000P30に到着する。
そして、ルータノード2000P30は、受け取った更新用パケットをアダプタ3000P30に渡す。アダプタ3000P30は、当該更新用パケットがコア99P22へのアクセス要求の送信を禁止するものであることを認識すると、送信フィルタデータ3311において、一時停止ビットを「Yes」に保ったまま、コア99P22についての許可ビットを「R」と「W」のいずれも記入しないビットに設定し、コア99P22へのアクセス要求の送信を禁止した状態へと変更する。
ステップ3(S3):コア99P00が、アダプタ3000P21からコア99P22へのアクセス要求の送信を禁止する内容に送信フィルタデータを更新するための送信フィルタデータ更新要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのアクセス要求の送信を禁止する旨の情報を含む更新用パケットをアダプタ3000P21を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新用パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20を介してルータノード2000P21に到着する。
そして、ルータノード2000P21は、受け取った更新用パケットをアダプタ3000P21に渡す。アダプタ3000P21は、当該更新用パケットがコア99P22へのアクセス要求の送信を禁止するものであることを認識すると、送信フィルタデータ3311において、一時停止ビットを「Yes」に保ったまま、コア99P22についての許可ビットを「R」と「W」のいずれも記入しないビットに設定し、コア99P22へのアクセス要求の送信を禁止した状態へと変更する。
ステップ4(S4):コア99P00が、アダプタ3000P31からコア99P22へのアクセス要求の送信を禁止する内容に送信フィルタデータを更新するための送信フィルタデータ更新要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのアクセス要求の送信を禁止する旨の情報を含む更新用パケットをアダプタ3000P31を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新用パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P30を介してルータノード2000P31に到着する。
そして、ルータノード2000P31は、受け取った更新用パケットをアダプタ3000P31に渡す。アダプタ3000P31は、当該更新用パケットがコア99P22へのアクセス要求の送信を禁止するものであることを認識すると、送信フィルタデータ3311において、一時停止ビットを「Yes」に保ったまま、コア99P22についての許可ビットを「R」と「W」のいずれも記入しないビットに設定し、コア99P22へのアクセス要求の送信を禁止した状態へと変更する。
次に、高信頼度なコア99P00が、低信頼度なコア99P20、99P30、99P21及び99P31のそれぞれからコア99P22へのアクセス要求を禁止する設定を図66で説明したように行った後、アダプタ3000P20、3000P21、3000P30及び3000P31における送信フィルタデータ内のコア99P22へのアクセス要求の処理の一時停止を解除する場合の動作を説明する。図68は図33に示した半導体集積回路の動作の一例を説明するための図である。図68に示すアダプタは図54に示したアダプタフィルタ制御手段3300を有している。
ステップ1(S1):コア99P00が、アダプタ3000P20からコア99P22へのアクセス要求の処理の一時停止を解除することを送信フィルタデータ3311に書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのアクセス要求の処理の一時停止を解除する旨を送信フィルタデータ3311に書き込むことを指示するための一時停止解除パケットをアダプタ3000P20を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10を介してルータノード2000P20に到着する。
そして、ルータノード2000P20は、受け取った一時停止解除パケットをアダプタ3000P20に渡す。アダプタ3000P20は、当該一時停止解除パケットがコア99P22へのアクセス要求の処理の一時停止の解除を指示するものであることを認識すると、送信フィルタデータ3311においてコア99P22へのアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「No」にし、アクセス要求の処理の一時停止状態を解除する。
ステップ2(S2):コア99P00が、アダプタ3000P30からコア99P22へのアクセス要求の処理の一時停止を解除することを送信フィルタデータ3311に書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのアクセス要求の処理の一時停止を解除する旨を送信フィルタデータ3311に書き込むことを指示するための一時停止解除パケットをアダプタ3000P30を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20を介してルータノード2000P30に到着する。
そして、ルータノード2000P30は、受け取った一時停止解除パケットをアダプタ3000P30に渡す。アダプタ3000P30は、当該一時停止解除パケットがコア99P22へのアクセス要求の処理の一時停止の解除を指示するものであることを認識すると、送信フィルタデータ3311においてコア99P22の一時停止ビットを「No」にし、アクセス要求の処理の一時停止状態を解除する。
ステップ3(S3):コア99P00が、アダプタ3000P21からコア99P22へのアクセス要求の送信の一時停止を解除することを送信フィルタデータ3311に書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのアクセス要求の送信の一時停止を解除する旨を送信フィルタデータ3311に書き込むことを指示するための一時停止解除パケットをアダプタ3000P21を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20を介してルータノード2000P21に到着する。
そして、ルータノード2000P21は、受け取った一時停止解除パケットをアダプタ3000P21に渡す。アダプタ3000P21は、当該一時停止解除パケットがコア99P22へのアクセス要求の処理の一時停止の解除を指示するものであることを認識すると、送信フィルタデータ3311においてコア99P22の一時停止ビットを「No」にし、アクセス要求の処理の一時停止状態を解除する。
ステップ4(S4):コア99P00が、アダプタ3000P31からコア99P22へのアクセス要求の処理の一時停止を解除することを送信フィルタデータ3311に書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのアクセス要求の処理の一時停止を解除する旨を送信フィルタデータ3311に書き込むことを指示するための一時停止解除パケットをアダプタ3000P31を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P30を介してルータノード2000P31に到着する。
そして、ルータノード2000P31は、受け取った一時停止解除パケットをアダプタ3000P31に渡す。アダプタ3000P31は、当該一時停止解除パケットがコア99P22へのアクセス要求の処理の一時停止の解除を指示するものであることを認識すると、送信フィルタデータ3311においてコア99P22の一時停止ビットを「No」にし、アクセス要求の処理の一時停止状態を解除する。
上述のようにして、低信頼度な4つのコアのそれぞれのアダプタでは、コア99P22へのアクセス要求の処理の一時停止状態が解除されるが、送信フィルタデータ3311においてコア99P22に対する読み出し及び書き込みが「禁止」に設定されているため、各アダプタは、コア99P22へのアクセス要求の送信を禁止した状態を維持する。
次に、図66、図67及び図68で説明したように送信フィルタデータの設定変更が行われた後に、低信頼度なコア99P30がコア99P22にアクセス要求をする場合の動作を説明する。上述したように送信フィルタデータの設定変更が行われ、低信頼度なコア99P30から信頼度の規定されていないコア99P22へのアクセス要求は禁止されている。図69は図33に示した半導体集積回路の動作の一例を説明するための図である。図69に示すアダプタは図54に示したアダプタフィルタ制御手段3300を有している。
ステップ1(S1):コア99P30は、コア99P22に対するアクセス要求をアダプタ3000P30に渡す。ステップ2(S2):アダプタ3000P30は、コア99P30よりアクセス要求を受け取ると、送信フィルタデータ3311を参照し、コア99P22へのアクセス要求が禁止されていることを認識すると、アクセスエラー応答をコア99P30に返す。
次に、1つのアダプタにおける送信フィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、送信フィルタデータを更新することで、所定のコアへのアクセス要求の送信をそのアダプタに許可させない場合の動作を説明する。ここでは、低信頼度なコア99P30からコア99P22へのアクセス要求の処理が一時停止の状態にあり、その後、高信頼度なコア99P00がコア99P30からコア99P22へのアクセス要求の送信を禁止に設定し、続いて、アクセス要求の処理の一時停止を解除するものである。図70は図33に示した半導体集積回路の動作の一例を説明するための図である。図69に示すアダプタは図54に示したアダプタフィルタ制御手段3300を有している。
ステップ1(S1):コア99P30は、コア99P22に対するアクセス要求をアダプタ3000P30に渡す。アダプタ3000P30は、コア99P30からアクセス要求を受け取ると、送信フィルタデータ3311を参照して当該アクセス要求の処理が一時停止状態になっていることを認識し、当該アクセス要求を保持する。
ステップ2(S2):コア99P00が、アダプタ3000P30からコア99P22へのアクセス要求の送信を禁止する内容に送信フィルタデータを更新するための送信フィルタデータ更新要求と、アダプタ3000P30からコア99P22へのアクセス要求の処理の一時停止を解除する旨を送信フィルタデータ3311に書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡す。アダプタ3000P00は、コア99P00から送信フィルタデータ更新要求と一時停止解除要求を受け取ると、コア99P22へのアクセス要求の送信を禁止する旨の情報とコア99P22へのアクセス要求の処理の一時停止を解除する旨を送信フィルタデータ3311に書き込むことを指示するための更新・一時停止解除パケットをアダプタ3000P30を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新・一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20を介してルータノード2000P30に到着する。
そして、ルータノード2000P30は、受け取った更新・一時停止解除パケットをアダプタ3000P30に渡す。アダプタ3000P30は、当該更新・一時停止解除パケットがコア99P22へのアクセス要求の送信を禁止する旨と、コア99P22へのアクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、送信フィルタデータ3311において、コア99P22についての許可ビットに「R」と「W」のいずれも記入しないビットに設定し、コア99P22へのアクセス要求の送信を禁止した状態へと変更する。また、送信フィルタデータ3311において、コア99P22へのアクセス要求の処理の一時停止ビットを「No」にし、コア99P22へのアクセス要求の処理の一時停止状態を解除する。
ステップ3(S3):アダプタ3000P30は、保持したアクセス要求をコア99P22に再送する前に、送信フィルタデータ3311を参照する。送信フィルタデータ3311ではコア99P22へのアクセス要求の送信が禁止されていることから、アクセス要求によるパケットを送信できずにエラーを起こしたことを通知するための情報であるアクセスエラー応答をコア99P30に渡す。
本実施形態では、コアからのアクセス要求に対して、相互結合網内の複数のアダプタのそれぞれは、配送情報にしたがってアクセス要求の配送制御を行う。アダプタのそれぞれが保持する配送情報の内容に統一性をもたせることで、一貫性のあるフィルタ制御が可能となる。
また、配送情報を更新する際には、相互結合網内の複数のアダプタに対して、アクセス要求の処理の一時停止の指示と、送信フィルタデータの更新およびアクセス要求の処理の一時停止の解除の指示が所定のコアから一斉になされる。
本実施形態では、アダプタの受信側だけでなく、送信側においても、複数のコアに対するアクセス制御を行うことができ、第1の実施形態と同様な効果が得られる。また、本実施形態では、受信側と送信側の両方でフィルタ制御を行うものであるが、受信側のフィルタ制御を設けなくてもよい。
(第3の実施形態)
第2の実施形態では、アクセス要求の制御をアダプタの送信側のうち送信フィルタ手段が行っていたが、本実施形態は、送信側のパケット送信フィルタ手段が行うものである。以下では、アダプタ以外の構成については、第1の実施形態と同様であるため、その詳細な説明を省略する。
図17に示したアダプタ3000の本実施形態の構成について説明する。図71はアダプタ3000の本実施形態における構成例を示す図である。
図71を参照すると、アダプタ3000は、図17に示したのと同様に、受信フィルタ手段3320及び受信フィルタデータ3321を含むアダプタ制御手段3300と、ルータノードへパケットを送信するパケット送信手段3100と、ルータノードからのパケットを受信するパケット受信手段3200とを有する。
さらに、図71に示すアダプタ3000は、自身に接続されるコアからのアクセス要求に対応するパケットを外部に送信するか否かの判断及びパケットの処理を一時停止するか否かの判断を行うパケット送信フィルタ手段3110と、その判断のために利用する情報であるパケット送信フィルタデータ3111とを有する。パケット送信フィルタデータ3111は図に示さない記憶手段に格納されている。
パケット送信フィルタ手段3310は、パケット送信フィルタデータ3111を参照し、自身に接続されるコアからのアクセス要求に対応するパケットを所定の宛先に送信するか否かを判断し、また、所定の宛先のパケットの処理を一時停止するか否かを判断する。パケット送信フィルタデータ3111において、所定の宛先のパケットの送信が許可されている場合、パケットをその宛先に送信し、パケットの送信が禁止されている場合、パケット送信手段3100にパケットを送信しない旨を通知する。また、パケット送信フィルタデータ3111において、所定の宛先のパケットの処理が一時停止に設定されている場合、パケットを送信せずに保持し、パケットの処理の一時停止が解除されている場合、その宛先へのパケットの送信が許可されているか否かを調べ、上述のように処理を行う。
次に、パケット送信フィルタデータ3111について説明する。図72はパケット送信フィルタデータ3111の一構成例を示す図である。
図72のパケット送信フィルタデータ3111は、アダプタに接続されたコアからのアクセス要求がアダプタ内でパケットに変換され、そのパケットの宛先となるルータノードに対して、送信が許可されているパケットの種類と、アダプタにおいてパケットの処理を一時停止するか否かの情報を示す。
図72を参照すると、パケットの宛先となるルータノードの識別子と、許可されているパケットの種類を示す項目である「許可ビット」と、パケットの処理を一時停止するか否かを示す項目である「一時停止ビット」とを組とするエントリが設けられている。パケットの宛先、およびパケットの種類の情報は、処理されるための条件である配送情報に相当する。以下に、表が示す内容を具体的に説明する。
宛先がルータノード#0に対しては、許可ビットが「A」と「B」であることから、送信するパケットの種類としてAとBが許可されている。一時停止ビットが「No」であることから、パケット送信フィルタ手段3310は、ルータノード#0を宛先とするパケットをパケット送信手段3100から受け取ったときに、パケットの処理を一時停止する必要はない。ルータノード#1に対しては、送信するパケットの種類としてAのみが許可され、ルータノード#2に対しては、送信するパケットの種類としてCとDが許可されている。そして、パケット送信フィルタ手段3310は、ルータノード#1、#2のいずれを宛先とするパケットをパケット送信手段3100から受け取ったときでも、ルータノード#0の場合と同様に、パケットの処理を一時停止する必要はない。
一方、宛先がルータノード#3に対しては、許可ビットが「E」であることから、送信するパケットの種類としてEが許可されている。また、一時停止ビットが「Yes」であることから、パケット送信フィルタ手段3310は、ルータノード#3を宛先とするパケットをパケット送信手段3100から受け取ると、種類によらずパケットの処理を一時停止する必要がある。
ここでは、パケット送信フィルタデータを格納したアダプタに接続されたコア自身からは直接そのパケット送信フィルタデータを更新できないものとしている。パケット送信フィルタデータ3111の情報の更新は、高信頼領域内のコアで実行されるアプリケーションソフトで生成される新たなデータ、または、予め設定変更情報が記述されたファイルから読み出されるデータ等に書き換わることで行われる。パケット送信フィルタデータ3111の更新方法の具体例については、後述する。この更新は、受信フィルタデータの更新の場合と同様に、半導体集積回路全体の条件や状況に応じて、高信頼領域の範囲の変更が必要なときに行われる。
一方、半導体集積回路として予め所定の条件が設定され、その条件に一致する場合に限り、パケット送信フィルタデータを格納したアダプタに接続されたコア自身から直接そのアダプタのパケット送信フィルタデータの一部または全部を更新可能にしてもよい。この場合、高信頼度なコアからパケット送信フィルタデータを更新するための新たなデータの受信を待つ必要がない。
なお、パケット送信フィルタデータ3111は、図72に示すような表形式の場合に限られない。パケット送信フィルタ手段3110が読み出し可能で、読み出した情報にしたがってアクセス制御することができれば、その他の形式でもよい。
また、図72に示す表では、ルータノードに対応して、送信可能なパケットの種類や、パケットの処理を一時停止すべきか否かの情報を設定しているが、ルータノードの代わりにコアであってもよい。
次に、アダプタ3000に接続されたコア99からアクセス要求を受け取り、そのアクセス要求の宛先ノードへの送信が許可されている場合のアダプタ3000の内部の動作を説明する。図73は図71に示したアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):パケット送信手段3100は、コア99からアクセス要求を受け取る。ステップ2(S2):パケット送信手段3100は、当該アクセス要求をパケットに変換してパケット送信フィルタ手段3110に渡す。
ステップ3(S3):パケット送信フィルタ手段3110は、パケット送信手段3100からパケットを受け取ると、パケット送信フィルタデータ3111を参照し、当該パケットの宛先ノードへの送信が許可されていると認識する。ステップ4(S4):パケット送信フィルタ手段3110は、そのパケットを受け取ると、パケットの宛先に指定されたルータノード2000宛にパケットを送信する。
次に、アダプタ3000に接続されたコア99からアクセス要求を受け取り、そのアクセス要求の宛先ノードへの送信が拒否されている場合のアダプタ3000の内部の動作を説明する。図74は図71に示したアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):パケット送信手段3100は、コア99からアクセス要求を受け取る。ステップ2(S2):パケット送信手段3100は、当該アクセス要求をパケットに変換してパケット送信フィルタ手段3110に渡す。
ステップ3(S3):パケット送信フィルタ手段3110は、パケット送信手段3100からパケットを受け取ると、パケット送信フィルタデータ3111を参照し、当該パケットの宛先ノードへの送信が禁止されていると認識する。ステップ4(S4):パケット送信フィルタ手段3110は、そのパケットを処理できなかった旨を通知するためのエラーパケットを生成してパケット送信手段3100に渡す。
ステップ5(S5):パケット送信手段3100は、そのエラーパケットをアクセスエラー応答に変換してコア99に渡す。
次に、アダプタ3000に接続されたコア99からアクセス要求を受け取り、そのアクセス要求の宛先ノードへの処理が一時停止状態になっている場合のアダプタ3000の内部の動作を説明する。図75は図71に示したアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):パケット送信手段3100は、コア99からアクセス要求を受け取る。ステップ2(S2):パケット送信手段3100は、当該アクセス要求をパケットに変換してパケット送信フィルタ手段3110に渡す。
ステップ3(S3):パケット送信フィルタ手段3110は、パケット送信手段3100からパケットを受け取ると、パケット送信フィルタデータ3111を参照し、当該パケットの宛先ノードへの処理が一時停止状態になっていると認識する。パケット送信フィルタ手段3110がその旨をパケット送信手段3100に通知すると、パケット送信手段3100は、そのパケットを保持する。
次に、アダプタ3000に接続されたルータノード2000からパケットを受信し、受信したパケットのデータによりパケット送信フィルタデータ3111を更新する場合のアダプタ3000の内部の動作を説明する。図76は図71に示したアダプタ3000の内部動作の一例を説明するための図である。
ステップ1(S1):パケット受信手段3200は、パケット送信フィルタデータの新たなデータを含むパケットである更新用パケットをルータノード2000から受け取る。ステップ2(S2):パケット受信手段3200は、受け取った更新用パケットを、パケット送信フィルタデータ3111に対して新たなデータの書き込みを要求するアクセス要求に変換し、そのアクセス要求を受信フィルタ手段3320に渡す。
ステップ3(S3):受信フィルタ手段3321は、パケット受信手段3200からアクセス要求を受け取ると、受信フィルタデータ3320を参照し、当該アクセス要求の処理が可能かどうか判断する。その結果、処理に対する一時停止の必要がなく、当該アクセス要求の処理が可能であることを認識する。そして、受信フィルタ手段3321は、アクセス要求からパケット送信フィルタデータの新たなデータを読み出してパケット受信手段3200に送信する。
ステップ4(S4):パケット受信手段3200は、受信フィルタ手段3321からパケット送信フィルタデータの新たなデータを受け取ると、その新たなデータをパケット送信フィルタデータ3111に書き込む。このようにして、パケット送信フィルタデータ3111が更新される。
なお、図71に示す構成例では、パケット送信フィルタデータ3111の更新の際のアクセス制御を受信フィルタ手段3321が行っているが、受信フィルタ手段3321に限らず、これと同様なアクセス制御を行うことが可能な他の回路が行ってもよい。
ここまで、図71に示すアダプタ3000の構成を詳しく説明したが、次に、そのアダプタと、コアと、ルータノードとが組になったものが複数接続された構成について説明する。
上記アダプタ、コア及びルータノードからなる組が複数接続された場合の構成は図33で説明したものと同様である。そのため、ここでは、図33に示す構成についての詳細な説明を省略する。
次に、図33に示した構成において、コア99P30からコア99P22にアクセス要求を行う場合の動作を説明する。この場合、低信頼度なコアから信頼度が規定されていないコアへのアクセス要求が行われるが、このアクセス要求は許可されているものとする。図77は図33に示した半導体集積回路の動作の一例を説明するための図である。図77に示すアダプタは図71に示したアダプタ3000に相当する。
ステップ1(S1):コア99P30がコア99P22へのアクセス要求をアダプタ3000P30に渡す。アダプタ3000P30は、コア99P30からアクセス要求を受け取ると、アクセス要求をパケットに変換する。続いて、パケット送信フィルタデータ3111を参照し、コア99P22に接続されたルータノード2000P22へのパケットの送信が許可されていることを認識すると、コア99P22を宛先としたパケットをルータノード2000P30へ送信する。
ルータノード2000P30は、アダプタ3000P30から受け取ったパケットを隣接するルータノード2000P31に送出する。ルータノード2000P30から送出されたパケットは、ルータノード2000P31、2000P32を含む中間ルータノード群を介してルータノード2000P22に到着する。そして、ルータノード2000P22は、受け取ったパケットをアダプタ3000P22に渡し、アダプタ3000P22は当該パケットをコア対応のアクセス要求に変換してコア99P22に渡す。
次に、高信頼度なコア99P00が、低信頼度なコア99P20、99P30、99P21及び99P31のそれぞれからコア99P22へのアクセス要求を禁止するため、アダプタ3000P20、3000P21、3000P30及び3000P31におけるパケット送信フィルタデータ内のルータノード2000P22へのパケットの処理を一時停止にする場合の動作を説明する。コア99P22は信頼度が規定されていないコアである。図78は図33に示した半導体集積回路の動作の一例を説明するための図である。図78に示すアダプタは図71に示したアダプタ3000に相当する。
ステップ1(S1):コア99P00が、コア99P20からコア99P22へのアクセス要求の処理を一時停止する旨をアダプタ3000P20に指示するための一時停止要求をアダプタ3000P00に渡すと、アダプタ3000P00は、ルータノード2000P22へのパケットの処理を一時停止する旨をパケット送信フィルタデータ3111に書き込むことを指示するための一時停止パケットをアダプタ3000P20を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、中継となるルータノード2000P10を介してルータノード2000P20に到着する。
そして、ルータノード2000P20は、受け取った一時停止パケットをアダプタ3000P20に渡す。アダプタ3000P20は、当該一時停止パケットがルータノード2000P22へのパケットの処理の一時停止を指示するものであることを認識すると、パケット送信フィルタデータ3111において、ルータノード2000P22へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Yes」にし、パケットの処理を一時停止状態に変更する。
ステップ2(S2):コア99P00が、コア99P30からコア99P22へのアクセス要求の処理を一時停止する旨をアダプタ3000P30に指示するための一時停止要求をアダプタ3000P00に渡すと、アダプタ3000P00は、ルータノード2000P22へのパケットの処理を一時停止する旨をパケット送信フィルタデータ3111に書き込むことを指示するための一時停止パケットをアダプタ3000P30を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、中継となるルータノード2000P10、2000P20を介してルータノード2000P30に到着する。
そして、ルータノード2000P30は、受け取った一時停止パケットをアダプタ3000P30に渡す。アダプタ3000P30は、当該一時停止パケットがルータノード2000P22へのパケットの処理の一時停止を指示するものであることを認識すると、パケット送信フィルタデータ3111において、ルータノード2000P22へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Yes」にし、パケットの処理を一時停止状態に変更する。
ステップ3(S3):コア99P00が、コア99P21からコア99P22へのアクセス要求の処理を一時停止する旨をアダプタ3000P21に指示するための一時停止要求をアダプタ3000P00に渡すと、アダプタ3000P00は、ルータノード2000P22へのパケットの処理を一時停止する旨をパケット送信フィルタデータ3111に書き込むことを指示するための一時停止パケットをアダプタ3000P21を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、中継となるルータノード2000P10、2000P20を介してルータノード2000P21に到着する。
そして、ルータノード2000P21は、受け取った一時停止パケットをアダプタ3000P21に渡す。アダプタ3000P21は、当該一時停止パケットがルータノード2000P22へのパケットの処理の一時停止を指示するものであることを認識すると、パケット送信フィルタデータ3111において、ルータノード2000P22へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Yes」にし、パケットの処理を一時停止状態に変更する。
ステップ4(S4):コア99P00が、コア99P31からコア99P22へのアクセス要求の処理を一時停止する旨をアダプタ3000P31に指示するための一時停止要求をアダプタ3000P00に渡すと、アダプタ3000P00は、ルータノード2000P22へのパケットの処理を一時停止する旨をパケット送信フィルタデータ3111に書き込むことを指示するための一時停止パケットをアダプタ3000P31を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、中継となるルータノード2000P10、2000P20、2000P30を介してルータノード2000P31に到着する。
そして、ルータノード2000P31は、受け取った一時停止パケットをアダプタ3000P31に渡す。アダプタ3000P31は、当該一時停止パケットがルータノード2000P22へのパケットの処理の一時停止を指示するものであることを認識すると、パケット送信フィルタデータ3111において、ルータノード2000P22へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Yes」にし、パケットの処理を一時停止状態に変更する。
次に、高信頼度なコア99P00が、低信頼度なコア99P20、99P30、99P21及び99P31のそれぞれからコア99P22へのアクセス要求を禁止するため、アダプタ3000P20、3000P21、3000P30及び3000P31におけるパケット送信フィルタデータ内のコア99P22へのパケットの送信についての許可または禁止を示す項目を更新する場合の動作を説明する。図79は図33に示した半導体集積回路の動作の一例を説明するための図である。図79に示すアダプタは図71に示したアダプタ3000に相当する。
ステップ1(S1):コア99P00が、コア99P20からコア99P22へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求をアダプタ3000P00に渡すと、アダプタ3000P00は、ルータノード2000P22へのパケットの送信を禁止する旨の情報を含む更新用パケットをアダプタ3000P20を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新用パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10を介してルータノード2000P20に到着する。
そして、ルータノード2000P20は、受け取った更新用パケットをアダプタ3000P20に渡す。アダプタ3000P20は、当該更新用パケットがルータノード2000P22へのパケットの送信を禁止するものであることを認識すると、パケット送信フィルタデータ3111において、一時停止ビットを「Yes」に保ったまま、ルータノード2000P22についてのパケットの種類を示す許可ビットの欄を何も記入しない空スペースに設定し、ルータノード2000P22へのパケットの送信を禁止した状態へと変更する。
ステップ2(S2):コア99P00が、コア99P30からコア99P22へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求をアダプタ3000P00に渡すと、アダプタ3000P00は、ルータノード2000P22へのパケットの送信を禁止する旨の情報を含む更新用パケットをアダプタ3000P30を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新用パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20を介してルータノード2000P30に到着する。
そして、ルータノード2000P30は、受け取った更新用パケットをアダプタ3000P30に渡す。アダプタ3000P30は、当該更新用パケットがルータノード2000P22へのパケットの送信を禁止するものであることを認識すると、パケット送信フィルタデータ3111において、一時停止ビットを「Yes」に保ったまま、ルータノード2000P22についてのパケットの種類を示す許可ビットの欄を何も記入しない空スペースに設定し、ルータノード2000P22へのパケットの送信を禁止した状態へと変更する。
ステップ3(S3):コア99P00が、コア99P21からコア99P22へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求をアダプタ3000P00に渡すと、アダプタ3000P00は、ルータノード2000P22へのパケットの送信を禁止する旨の情報を含む更新用パケットをアダプタ3000P21を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新用パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20を介してルータノード2000P21に到着する。
そして、ルータノード2000P21は、受け取った更新用パケットをアダプタ3000P21に渡す。アダプタ3000P21は、当該更新用パケットがルータノード2000P22へのパケットの送信を禁止するものであることを認識すると、パケット送信フィルタデータ3111において、一時停止ビットを「Yes」に保ったまま、ルータノード2000P22についてのパケットの種類を示す許可ビットの欄を何も記入しない空スペースに設定し、ルータノード2000P22へのパケットの送信を禁止した状態へと変更する。
ステップ4(S4):コア99P00が、コア99P31からコア99P22へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求をアダプタ3000P00に渡すと、アダプタ3000P00は、ルータノード2000P22へのパケットの送信を禁止する旨の情報を含む更新用パケットをアダプタ3000P31を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新用パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P30を介してルータノード2000P31に到着する。
そして、ルータノード2000P31は、受け取った更新用パケットをアダプタ3000P31に渡す。アダプタ3000P31は、当該更新用パケットがルータノード2000P22へのパケットの送信を禁止するものであることを認識すると、パケット送信フィルタデータ3111において、一時停止ビットを「Yes」に保ったまま、ルータノード2000P22についてのパケットの種類を示す許可ビットの欄を何も記入しない空スペースに設定し、ルータノード2000P22へのパケットの送信を禁止した状態へと変更する。
次に、高信頼度なコア99P00が、低信頼度なコア99P20、99P30、99P21及び99P31のそれぞれからコア99P22へのアクセス要求を禁止する設定を図79で説明したように行った後、アダプタ3000P20、3000P21、3000P30及び3000P31におけるパケット送信フィルタデータ内のルータノード2000P22へのパケットの処理の一時停止を解除する場合の動作を説明する。図80は図33に示した半導体集積回路の動作の一例を説明するための図である。図80に示すアダプタは図71に示したアダプタ3000に相当する。
ステップ1(S1):コア99P00が、コア99P20からコア99P22へのアクセス要求の処理の一時停止を解除する旨をアダプタ3000P20に指示するための一時停止解除要求をアダプタ3000P00に渡すと、アダプタ3000P00は、ルータノード2000P22へのパケットの処理の一時停止を解除する旨をパケット送信フィルタデータ3111に書き込むことを指示するための一時停止解除パケットをアダプタ3000P20を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10を介してルータノード2000P20に到着する。
そして、ルータノード2000P20は、受け取った一時停止解除パケットをアダプタ3000P20に渡す。アダプタ3000P20は、当該一時停止解除パケットがルータノード2000P22へのパケットの処理の一時停止の解除を指示するものであることを認識すると、パケット送信フィルタデータ3111においてルータノード2000P22へのパケットの処理を一時停止するか否かを示す一時停止ビットを「No」にし、ルータノード2000P22へのパケットの処理の一時停止状態を解除する。
ステップ2(S2):コア99P00が、コア99P30からコア99P22へのアクセス要求の処理の一時停止を解除する旨をアダプタ3000P30に指示するための一時停止解除要求をアダプタ3000P00に渡すと、アダプタ3000P00は、ルータノード2000P22へのパケットの処理の一時停止を解除する旨をパケット送信フィルタデータ3111に書き込むことを指示するための一時停止解除パケットをアダプタ3000P30を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20を介してルータノード2000P30に到着する。
そして、ルータノード2000P30は、受け取った一時停止解除パケットをアダプタ3000P30に渡す。アダプタ3000P30は、当該一時停止解除パケットがルータノード2000P22へのパケットの処理の一時停止の解除を指示するものであることを認識すると、パケット送信フィルタデータ3111においてルータノード2000P22の一時停止ビットの欄を「No」にし、ルータノード2000P22へのパケットの処理の一時停止状態を解除する。
ステップ3(S3):コア99P00が、コア99P21からコア99P22へのアクセス要求の処理の一時停止を解除する旨をアダプタ3000P21に指示するための一時停止解除要求をアダプタ3000P00に渡すと、アダプタ3000P00は、ルータノード2000P22へのパケットの処理の一時停止を解除する旨をパケット送信フィルタデータ3111に書き込むことを指示するための一時停止解除パケットをアダプタ3000P21を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20を介してルータノード2000P21に到着する。
そして、ルータノード2000P21は、受け取った一時停止解除パケットをアダプタ3000P21に渡す。アダプタ3000P21は、当該一時停止解除パケットがルータノード2000P22へのパケットの処理の一時停止の解除を指示するものであることを認識すると、パケット送信フィルタデータ3111においてルータノード2000P22の一時停止ビットの欄を「No」にし、ルータノード2000P22へのパケットの処理の一時停止状態を解除する。
ステップ4(S4):コア99P00が、コア99P31からコア99P22へのアクセス要求の処理の一時停止を解除する旨をアダプタ3000P31に指示するための一時停止解除要求をアダプタ3000P00に渡すと、アダプタ3000P00は、ルータノード2000P22へのパケットの処理の一時停止を解除する旨をパケット送信フィルタデータ3111に書き込むことを指示するための一時停止解除パケットをアダプタ3000P31を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P30を介してルータノード2000P31に到着する。
そして、ルータノード2000P31は、受け取った一時停止解除パケットをアダプタ3000P31に渡す。アダプタ3000P31は、当該一時停止解除パケットがルータノード2000P22へのパケットの処理の一時停止の解除を指示するものであることを認識すると、パケット送信フィルタデータ3111においてルータノード2000P22の一時停止ビットの欄を「No」にし、ルータノード2000P22へのパケットの処理の一時停止状態を解除する。
次に、図78、図79及び図80で説明したようにパケット送信フィルタデータの設定変更が行われた後に、低信頼度なコア99P30がコア99P22にアクセス要求をする場合の動作を説明する。上述したようにパケット送信フィルタデータの設定変更が行われ、低信頼度なコア99P30から信頼度の規定されていないコア99P22へのアクセス要求は禁止されている。図81は図33に示した半導体集積回路の動作の一例を説明するための図である。図81に示すアダプタは図71に示したアダプタ3000に相当する。
ステップ1(S1):コア99P30は、コア99P22に対するアクセス要求をアダプタ3000P30に渡す。ステップ2(S2):アダプタ3000P30は、コア99P30よりアクセス要求を受け取ると、アクセス要求をパケットに変換する。そして、パケット送信フィルタデータ3111を参照し、ルータノード2000P22へのパケットの送信が禁止されていることを認識すると、アクセスエラー応答をコア99P30に返す。
次に、1つのアダプタにおける送信フィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、パケット送信フィルタデータを更新することで、所定のコアへのアクセス要求の送信をそのアダプタに許可させない場合の動作を説明する。ここでは、低信頼度なコア99P30からコア99P22へのアクセス要求の処理が一時停止の状態にあり、その後、高信頼度なコア99P00がコア99P30からコア99P22へのアクセス要求の送信を禁止に設定し、続いて、アクセス要求の処理の一時停止を解除するものである。図82は図33に示した半導体集積回路の動作の一例を説明するための図である。図82に示すアダプタは図71に示したアダプタ3000に相当する。
ステップ1(S1):コア99P30は、コア99P22に対するアクセス要求をアダプタ3000P30に渡す。アダプタ3000P30は、コア99P30からアクセス要求を受け取ると、アクセス要求をパケットに変換する。続いて、パケット送信フィルタデータ3111を参照し、当該パケットの処理が一時停止状態になっていることを認識すると、パケットを保持する。
ステップ2(S2):コア99P00が、コア99P30からコア99P22へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求と、アダプタ3000P30からルータノード2000P22へのパケットの処理の一時停止を解除する旨をパケット送信フィルタデータ3111に書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡す。アダプタ3000P00は、コア99P00からフィルタデータ更新要求と一時停止解除要求を受け取ると、ルータノード2000P22へのパケットの送信を禁止する旨の情報とルータノード2000P22へのパケットの処理の一時停止を解除する旨をパケット送信フィルタデータ3111に書き込むことを指示するための更新・一時停止解除パケットをアダプタ3000P30を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新・一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20を介してルータノード2000P30に到着する。
そして、ルータノード2000P30は、受け取った更新・一時停止解除パケットをアダプタ3000P30に渡す。アダプタ3000P30は、当該更新・一時停止解除パケットがルータノード2000P22へのパケットの送信を禁止する旨と、ルータノード2000P22へのパケットの処理の一時停止の解除とを指示するものであることを認識する。続いて、パケット送信フィルタデータ3111において、ルータノード2000P22についての許可ビットの欄を何も記入しない空スペースに設定し、ルータノード2000P22へのパケットの送信を禁止した状態へと変更する。また、パケット送信フィルタデータ3111において、ルータノード2000P22へのパケットの処理の一時停止ビットを「No」にし、ルータノード2000P22へのパケットの処理の一時停止状態を解除する。
ステップ3(S3):アダプタ3000P30は、保持したパケットをルータノード2000P22宛に再送する前に、パケット送信フィルタデータ3111を参照する。パケット送信フィルタデータ3111ではルータノード2000P22へのパケットの送信が禁止されていることから、アクセス要求によるパケットを送信できずにエラーを起こしたことを通知するための情報であるアクセスエラー応答をコア99P30に渡す。
本実施形態では、コアからのアクセス要求に対して、相互結合網内の複数のアダプタのそれぞれは、配送情報にしたがってパケットの配送制御を行う。アダプタのそれぞれが保持する配送情報の内容に統一性をもたせることで、一貫性のあるフィルタ制御が可能となる。
また、配送情報を更新する際には、相互結合網内の複数のアダプタに対して、パケットの処理の一時停止の指示と、パケット送信フィルタデータの更新およびパケットの処理の一時停止の解除の指示が所定のコアから一斉になされる。
本実施形態では、コアからアクセス要求を外部に送出する際、パケットに変換した後、パケットを配送するか否かの判定を行うことで、第1の実施形態と同様な効果が得られる。この場合、第1の実施形態や第2の実施形態で説明したアダプタフィルタ制御手段3300でフィルタ制御を行わなくてもよい。
(第4の実施形態)
第1の実施形態から第3の実施形態では、アクセス要求の制御をアダプタが行っていたが、本実施形態は、ルータノードが行うものである。以下では、ルータノード以外の構成については、第1の実施形態と同様であるため、その詳細な説明を省略する。
本実施形態のルータノードの構成を説明する。図83は本実施形態のルータノード2000の構成例を示す図である。図7に示したルータノードと同様な構成についてはその詳細な説明を省略する。
図83を参照すると、この構成例では、図7に示したルータノード2000のルーティング制御手段2100がフィルタ付ルーティング制御手段2101に置換されていることが特徴である。
フィルタ付ルーティング制御手段2101は、隣接するルータノード及びアダプタのそれぞれと接続される入力チャネルのパケットのヘッダに含まれる宛先の情報を参照し、パケットの宛先に応じてどの入力チャネルをどの出力チャネルに接続すればよいかを、スイッチ回路2030に通知する。また、パケットの送信元のルータノード及び宛先のルータノードの情報とともにどの範囲でパケットの処理が許可されているかを示すルータフィルタデータ2141を参照して、配送対象のパケットをルーティングするかどうかを決定する。ルータフィルタデータ2141において、パケットの処理を一時停止すべきか否かの情報を参照して、配送対象のパケットを自ルータノードへ再送したり、あるいは、再度ルーティング制御を行ったりする。また、パケットを処理できなかったときに、その旨を送信元に通知するためのエラーパケットを生成する。
応答パケット再送手段2050は、配送対象のパケットの処理ができなかったときに、エラーパケットを送信元に送る。また、処理の一時停止対象になったパケットをフィルタ付ルーティング制御手段2101から再送パケットとして受け取ると、再送パケットを相互結合網に送出させる。
よって、フィルタ付ルーティング制御手段2101は、ルーティング制御手段2100のアクセス制御機構が設けられているだけでなく、一時停止情報を参照してパケットの配送を制御することが組み込まれている点に特徴がある。
次に、フィルタ付ルーティング制御手段2101の構成を説明する。図84はフィルタ付ルーティング制御手段の一構成例を示す図である。
図84を参照すると、フィルタ付ルーティング制御手段2101は、図11に示したヘッダ解析手段2110、経路決定手段2120及び調停手段2130の他に、パケットの送信元ルータノード及び宛先ルータノード並びにそのパケットのアクセス要求の種類などからパケットのルーティングを制限するルータフィルタ制御手段2140を有する。
ルータフィルタ制御手段2140には、パケットをルーティングする際に参照するためのルータフィルタデータ2141が格納されている。ルータフィルタデータ2141の構成については後述する。
ルータフィルタ制御手段2140は、ヘッダ解析手段2110からパケットの宛先を示す宛先情報及びパケットの送信元を示す送信元情報を受け取る。また、自ノードにアダプタを介して接続されるコアを宛先としているパケットには、入力チャネルに存在するパケットからそのアクセス要求の情報を受け付ける。そして、ルータフィルタデータ2141を参照し、該パケットを自ノードのコア宛にアダプタに渡してよいか否かを判定する。そのパケットの自ノードへの送信が許可されていない場合には、パケットを送信できない旨を通知するためのエラーパケットを生成し、上記パケットの送信元宛にエラーパケットを送信する。また、ルータフィルタデータ2141を参照し、パケットの処理が一時停止であるか否かを調べ、一時停止になっていれば、上記パケットの処理を行わずに、隣接するルータノードに送出する。これにより、送出されたパケットは相互結合網内のルータノードによって配送され、再び戻ってくる。
次に、ルータフィルタデータ2141について説明する。図85はルータフィルタデータ2141の一構成例を説明するための図である。ここでは、ルータフィルタデータ2141を格納するルータノードにアダプタを介して接続されたコアがメモリの場合である。
図85に示すルータフィルタデータ2141は、上記メモリに対して外部からのアクセス要求がどの範囲で、どの種類の要求に関して許可されているかということと、どの送信元のルータノードからどの宛先のルータノードに対してどのような種類のパケットを配送するかを示している。
図85を参照すると、パケットの宛先のルータノードの識別子と、送信元のルータノードと、パケットの種類を示す項目である「許可ビット」と、パケットの処理を一時停止するか否かを示す項目である「一時停止ビット」とを組とするエントリが設けられている。ただし、パケットの宛先が自ルータノードの場合には、自ルータノードにアダプタを介して接続されたメモリへのアクセス要求に関して、送信元のルータノードに対応して、どの記憶領域で、どの種類の要求を許可するかが記述されている。パケットの宛先、送信元、メモリ領域、およびパケットの種類の情報は、処理されるための条件である配送情報に相当する。以下に、表が示す内容を具体的に説明する。
パケットの宛先がルータノード#4であり、送信元がルータノード#0の場合には、許可ビットが「C」と「D」であることから、配送するパケットの種類としてはCとDが許可されている。一時停止ビットが「No」であることから、ルータフィルタ制御手段2140は、ルータノード#4からルータノード#0宛へのパケットを受け取ったときに、パケットの処理を一時停止する必要はない。
パケットの宛先がルータノード#5であり、送信元がルータノード#1の場合には、許可ビットが「A」であることから、配送するパケットの種類としてはAが許可されている。一時停止ビットが「No」であることから、ルータフィルタ制御手段2140は、ルータノード#5からルータノード#1宛へのパケットを受け取ったときに、パケットの処理を一時停止する必要はない。
一方、パケットの宛先が自ルータノードであり、送信元がルータノード#0の場合には、上記メモリのアドレス範囲0x 00000000〜0x 20000000の領域に対して、許可ビットが「R」であることから、読み出しのアクセス要求が許可されている。一時停止ビットが「No」であることから、ルータフィルタ制御手段2140は、ルータノード#0からのアクセス要求によるパケットを受け取ったときに、パケットの処理を一時停止する必要はない。
パケットの宛先が自ルータノードであり、送信元がルータノード#1の場合には、上記メモリのアドレス範囲0x 00000000〜0x 10000000の高信頼領域に対しては、許可ビットが「R」であることから、読み出しのアクセス要求が許可されている。一時停止ビットが「Yes」であることから、ルータフィルタ制御手段2140は、ルータノード#1から上記高信頼領域に対するアクセス要求によるパケットを受け取ったときに、パケットの処理を一時停止する必要がある。アドレス範囲0x 10000000〜0x 20000000の低信頼領域に対しては、許可ビットが「R」と「W」であることから、読み出しと書き込みの両方のアクセス要求が許可されている。一時停止ビットが「No」であることから、ルータフィルタ制御手段2140は、ルータノード#1から上記低信頼領域に対するアクセス要求によるパケットを受け取ったときに、パケットの処理を一時停止する必要がない。
ここでは、ルータフィルタデータを格納したルータノードにアダプタを介して接続されたコア自身からは直接そのルータフィルタデータを更新できないものとしている。ルータフィルタデータ2141の情報の更新は、高信頼領域内のコアで実行されるアプリケーションソフトで生成される新たなデータ、または、予め設定変更情報が記述されたファイルから読み出されるデータ等に書き換わることで行われる。ルータフィルタデータ2141の更新方法の具体例については、後述する。この更新は、受信フィルタデータの更新の場合と同様に、半導体集積回路全体の条件や状況に応じて、高信頼領域の範囲の変更が必要なときに行われる。
一方、半導体集積回路として予め所定の条件が設定され、その条件に一致する場合に限り、ルータフィルタデータを格納したルータノードにアダプタを介して接続されたコア自身から直接そのアダプタのパケット送信フィルタデータの一部または全部を更新可能にしてもよい。この場合、高信頼度なコアからパケット送信フィルタデータを更新するための新たなデータの受信を待つ必要がない。
なお、ルータフィルタデータ2141は、図85に示すような表形式の場合に限られない。ルータフィルタ制御手段2140が読み出し可能で、読み出した情報にしたがってアクセス制御することができれば、その他の形式でもよい。
また、図85に示す表では、ルータノードに対応して、送信可能なパケットの種類や、パケットの処理を一時停止すべきか否かの情報を設定しているが、送信元や宛先がルータノードの代わりにコアであってもよい。
次に、ルータノードが入力チャネルを介してパケットを他のルータノードから受信した際、そのパケットの配送が許可されている場合のフィルタ付ルーティング制御手段2101の動作を説明する。図86は図84に示したフィルタ付ルーティング制御手段2101の動作の一例を説明するための図である。
ステップ1(S1):ヘッダ解析手段2110は、入力チャネルを介してパケットのヘッダ情報を受け取る。ステップ2(S2):ヘッダ解析手段2110は、受け取ったヘッダ情報から、そのパケットの宛先のルータノード及び送信元のルータノードの情報を読み出して経路決定手段2120及びルータフィルタ制御手段2140に通知する。
ステップ3(S3):ルータフィルタ制御手段2140は、宛先のルータノード及び送信元のルータノードの情報を受け取ると、ルータフィルタデータ2141を参照し、そのパケットのルーティングが許可されているものか否かを調べる。ここでは、そのルーティングが許可されていることを認識する。なお、宛先が自ルータノードの場合、入力チャネルのパケットをアクセス要求に変換して、該アクセス要求の情報を取得する。ステップ4(S4):ルータフィルタ制御手段2140は、ルーティングを許可する旨を経路決定手段2120へと通知する。
ステップ5(S5):経路決定手段2120は、ルータフィルタ制御手段2140からルーティングを許可する旨の通知を受け取ると、パケットの宛先のルータノードの情報に基づいてパケットの送出先に適した出力チャネルを決定し、その出力チャネルを特定するための出力チャネル情報を調停手段2130に通知する。
ステップ6(S6):調停手段2130は、出力チャネル情報が示す出力チャネルに競合がないことを確認し、上記パケットが入力された入力チャネルを指定の出力チャネルに接続する旨の出力ノード情報をスイッチ回路2030に渡す。
次に、ルータノードが入力チャネルを介してパケットを他のルータノードから受信した際、そのパケットの配送が許可されていない場合のフィルタ付ルーティング制御手段2101の動作を説明する。図87は図84に示したフィルタ付ルーティング制御手段2101の動作の一例を説明するための図である。
ステップ1(S1):ヘッダ解析手段2110は、入力チャネルを介してパケットのヘッダ情報を受け取る。ステップ2(S2):ヘッダ解析手段2110は、受け取ったヘッダ情報から、そのパケットの宛先のルータノード及び送信元のルータノードの情報を読み出して経路決定手段2120及びルータフィルタ制御手段2140に通知する。
ステップ3(S3):ルータフィルタ制御手段2140は、宛先のルータノード及び送信元のルータノードの情報を受け取ると、ルータフィルタデータ2141を参照し、そのパケットのルーティングが許可されているものか否かを調べる。ここでは、そのルーティングが許可されていないことを認識する。ステップ4(S4):ルータフィルタ制御手段2140は、ルーティングを拒否する旨を経路決定手段2120へと通知する。
ステップ5(S5):ルータフィルタ制御手段2140は、パケットを処理できなかった旨を通知するためのエラーパケットを生成し、エラーパケットを応答パケット再送手段2050に渡す。
次に、ルータノードが入力チャネルを介してパケットを他のルータノードから受信した際、そのパケットの処理を一時停止する場合のフィルタ付ルーティング制御手段2101の動作を説明する。図88は図84に示したフィルタ付ルーティング制御手段2101の動作の一例を説明するための図である。
ステップ1(S1):ヘッダ解析手段2110は、入力チャネルを介してパケットのヘッダ情報を受け取る。ステップ2(S2):ヘッダ解析手段2110は、受け取ったヘッダ情報から、そのパケットの宛先のルータノード及び送信元のルータノードの情報を読み出して経路決定手段2120及びルータフィルタ制御手段2140に通知する。
ステップ3(S3):ルータフィルタ制御手段2140は、宛先のルータノード及び送信元のルータノードの情報を受け取ると、ルータフィルタデータ2141を参照し、そのパケットのルーティングが許可されているものか否かを調べる。ここでは、そのパケットの処理を一時停止すべきものと認識し、パケットの処理を一時停止する。
ステップ4(S4):ルータフィルタ制御手段2140は、対象のパケットを自ルータノードに再度送られてくるようにするために、そのパケットを再送パケットとして応答パケット再送手段2050に渡す。
次に、ルータノードが入力チャネルを介してパケットを他のルータノードから受信した際、そのパケットがフィルタルータデータを更新するためのデータである場合のフィルタ付ルーティング制御手段2101の動作を説明する。図89は図84に示したフィルタ付ルーティング制御手段2101の動作の一例を説明するための図である。
ステップ1(S1):ヘッダ解析手段2110は、入力チャネルを介してパケット送信フィルタデータの新たなデータを含むパケットである更新用パケットのヘッダ情報を受け取る。ステップ2(S2):ヘッダ解析手段2110は、受け取ったヘッダ情報から、そのパケットの宛先のルータノード及び送信元のルータノードの情報を読み出して経路決定手段2120及びルータフィルタ制御手段2140に通知する。
ステップ3(S3):ルータフィルタ制御手段2140は、宛先のルータノード及び送信元のルータノードの情報を受け取ると、ルータフィルタデータ2141を参照し、そのパケットのルーティングが許可されているものか否かを調べる。ここでは、宛先が自ルータノードであることから、入力チャネルの更新用パケットをアクセス要求に変換して、アクセス要求がルータフィルタデータ2141の更新であることを認識する。そして、該アクセス要求に含まれるデータを読み出し、ルータフィルタデータ2141を更新する。
次に、ルータフィルタデータ2141を更新する場合のルータノード2000の動作を説明する。図90は本実施形態のルータノード2000の動作の一例を説明するための図である。
ステップ1(S1):リンク制御回路2010Aは、隣接するルータノードから更新用パケットを受信する。ステップ2(S2):リンク制御回路2010Aは、上記更新用パケットをバッファ2020Aに保存する。ステップ3(S3):バッファ2020Aは、格納した更新用パケットをスイッチ回路2030へ入力可能にするために、スイッチ回路2030と接続する。
ステップ4(S4):フィルタ付ルーティング制御手段2101は、バッファ2020A内にある更新用パケットのヘッダ情報を読み出すと、そのパケットがルータフィルタデータの更新目的であることを認識する。そして、スイッチ回路2030を介さず、バッファ2020Aから更新用パケットを直接受け取り、自身のルータフィルタデータ2141を更新する。
次に、パケットの処理を一時停止する場合のルータノード2000の動作を説明する。図91は本実施形態のルータノード2000の動作の一例を説明するための図である。
ステップ1(S1):リンク制御回路2010Aは、隣接するルータノードからパケットを受信する。ステップ2(S2):リンク制御回路2010Aは、上記パケットをバッファ2020Aに保存する。ステップ3(S3):バッファ2020Aは、格納したパケットをスイッチ回路2030へ入力可能にするために、スイッチ回路2030と接続する。
ステップ4(S4):フィルタ付ルーティング制御手段2101は、バッファ2020A内にあるパケットのヘッダ情報を読み出し、続いて、ルータフィルタデータ2141を参照すると、当該パケットのルーティングを一時停止すべきと判断する。ステップ5(S5):フィルタ付ルーティング制御手段2101は、上記パケットを自ルータノード宛の再送パケットとして応答パケット再送手段2050に渡す。
ステップ6(S6):応答パケット再送手段2050は、フィルタ付ルーティング制御手段2101から再送パケットを受け取ると、再送パケットをバッファ2020Gに保存する。
ステップ7(S7):バッファ2020Gは、格納した再送パケットをスイッチ回路2030へ入力可能にするために、スイッチ回路2030と接続する。フィルタ付ルーティング制御手段2101は、バッファ2020Gに格納された再送パケットのヘッダ情報を読み出し、自ルータノードを宛先とするパケットであることを認識する。しかし、このパケットの処理が一時停止になっていることから、再送パケットを相互結合網に送出するために、入力バッファ2020Gと接続する出力バッファをいずれか1つ決定する。ここでは、出力バッファ2020Dに決定する。ステップ8(S8):フィルタ付ルーティング制御手段2101は、ステップ7で決定した出力バッファを示す出力バッファ情報をスイッチ回路2030に通知する。
ステップ9(S9):スイッチ回路2030は、フィルタ付ルーティング制御手段2101から出力バッファ情報を受け取ると、入力バッファ2020Gと出力バッファ2020Dとを接続する。ステップ10(S10):リンク制御回路2010Dは、出力バッファ2020D内の再送パケットを読み出し、隣接するルータノードへの再送パケットの配送準備を開始する。ステップ11(S11):リンク制御回路2010Dは、隣接するルータノードへ再送パケットを送信する。
次に、コアからのアクセス要求がパケットに変換され、そのパケットをアダプタを介して受け取り、パケットのルーティングを拒否する場合のルータノード2000の動作を説明する。図92は本実施形態のルータノード2000の動作の一例を説明するための図である。
ステップ1(S1):リンク制御回路2010Cは、アダプタからパケットを受信する。ステップ2(S2):リンク制御回路2010Cは、上記パケットをバッファ2020Cに保存する。ステップ3(S3):バッファ2020Cは、格納したパケットをスイッチ回路2030へ入力可能にするために、スイッチ回路2030と接続する。
ステップ4(S4):フィルタ付ルーティング制御手段2101は、バッファ2020C内にあるパケットのヘッダ情報を読み出し、続いて、ルータフィルタデータ2141を参照すると、当該パケットのルーティングを拒否すべきと判断する。ステップ5(S5):フィルタ付ルーティング制御手段2101は、上記パケットを処理できなかった旨を通知するためのエラーパケットを生成して応答パケット再送手段2050に渡す。
ステップ6(S6):応答パケット再送手段2050は、フィルタ付ルーティング制御手段2101からエラーパケットを受け取ると、エラーパケットをバッファ2020Gに保存する。
ステップ7(S7):バッファ2020Gは、格納したエラーパケットをスイッチ回路2030へ入力可能にするために、スイッチ回路2030と接続する。フィルタ付ルーティング制御手段2101は、バッファ2020Gに格納されたエラーパケットのヘッダ情報を読み出し、自ルータノードにアダプタを介して接続されるコアを宛先とするパケットであることを認識する。エラーパケットをアダプタに送出するために、入力バッファ2020Gと接続する出力バッファとして出力バッファ2020Eに決定する。ステップ8(S8):フィルタ付ルーティング制御手段2101は、ステップ7で決定した出力バッファを示す出力バッファ情報をスイッチ回路2030に通知する。
ステップ9(S9):スイッチ回路2030は、フィルタ付ルーティング制御手段2101から出力バッファ情報を受け取ると、入力バッファ2020Gと出力バッファ2020Eとを接続する。ステップ10(S10):リンク制御回路2010Eは、出力バッファ2020E内のエラーパケットを読み出し、アダプタへのエラーパケットの配送準備を開始する。ステップ11(S11):リンク制御回路2010Eは、アダプタへエラーパケットを送信する。
ここまで、図83に示すルータノード2000の構成を詳しく説明したが、次に、そのルータノードと、コアと、アダプタとが組になったものが複数接続された構成について説明する。
上記ルータノード、コア及びアダプタからなる組が複数接続された場合の構成は図33で説明したものと同様である。そのため、ここでは、図33に示す構成についての詳細な説明を省略する。
次に、図33に示した構成において、コア99P30からコア99P22にアクセス要求を行う場合の動作を説明する。この場合、低信頼度なコアから信頼度が規定されていないコアへのアクセス要求が行われるが、このアクセス要求は許可されているものとする。図93は図33に示した半導体集積回路の動作の一例を説明するための図である。図93に示すルータノードは図83に示したルータノード2000に相当する。
ステップ1(S1):コア99P30がコア99P22へのアクセス要求をアダプタ3000P30に渡す。アダプタ3000P30は、コア99P30からアクセス要求を受け取ると、アクセス要求をパケットに変換する。続いて、コア99P22を宛先としたパケットをルータノード2000P30へ送信する。
ルータノード2000P30は、アダプタ3000P30から受け取ったパケットを隣接するルータノード2000P31に送出する。ルータノード2000P30から送出されたパケットは、ルータノード2000P31、2000P32を含む中間ルータノード群を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、ルータノード2000P32からパケットを受け取ると、ルータフィルタデータを参照し、受け取ったパケットによるコア99P22へのアクセス要求が許可されていることを認識すると、そのパケットをアダプタ3000P22に渡す。アダプタ3000P22は、受け取ったパケットをコア対応のアクセス要求に変換してコア99P22に渡す。
次に、高信頼度なコア99P00が、低信頼度なコア99P30からコア99P22及び99P32へのアクセス要求を禁止するため、ルータノード2000P22及び2000P32におけるコア99P30からのパケットの処理を一時停止にする場合の動作を説明する。コア99P22、99P32は信頼度が規定されていないコアである。図94は図33に示した半導体集積回路の動作の一例を説明するための図である。図94に示すルータノードは図83に示したルータノード2000に相当する。
ステップ1(S1):コア99P00が、コア99P30からコア99P22へのアクセス要求の処理を一時停止する旨をルータノード2000P22に指示するための一時停止要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのパケットの処理を一時停止する旨をルータフィルタデータに書き込むことを指示するための一時停止パケットをルータノード2000P22を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、中継となるルータノード2000P10、2000P20、2000P21を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、ルータノード2000P21を介して一時停止パケットを受け取る。そして、一時停止パケットがコア99P22へのパケットの処理の一時停止を指示するものであることを認識すると、ルータフィルタデータにおいて、コア99P22へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Yes」にし、パケットの処理を一時停止状態に変更する。
ステップ2(S2):コア99P00が、コア99P30からコア99P32へのアクセス要求の処理を一時停止する旨をルータノード2000P32に指示するための一時停止要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P32へのパケットの処理を一時停止する旨をルータフィルタデータに書き込むことを指示するための一時停止パケットをルータノード2000P32を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、中継となるルータノード2000P10、2000P20、2000P30、2000P31を介してルータノード2000P32に到着する。
そして、ルータノード2000P32は、ルータノード2000P31を介して一時停止パケットを受け取る。そして、一時停止パケットがコア99P32へのパケットの処理の一時停止を指示するものであることを認識すると、ルータフィルタデータにおいて、コア99P32へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Yes」にし、パケットの処理を一時停止状態に変更する。
次に、高信頼度なコア99P00が、低信頼度なコア99P30からコア99P22及び99P32へのアクセス要求を禁止するため、パケットの処理を一時停止させた後、ルータノード2000P22及び2000P32におけるルータフィルタデータを更新する場合の動作を説明する。図95は図33に示した半導体集積回路の動作の一例を説明するための図である。図95に示すルータノードは図83に示したルータノード2000に相当する。
ステップ1(S1):コア99P00が、コア99P30からコア99P22へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのパケットの処理を禁止する旨の情報を含む更新用パケットをルータノード2000P22を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新用パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P21を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、ルータノード2000P21を介して更新用パケットを受け取る。そして、更新用パケットがコア99P22へのパケットの処理を禁止するものであることを認識すると、ルータフィルタデータにおいて、一時停止ビットを「Yes」に保ったまま、コア99P22に対するアクセス要求の種類を示す許可ビットの欄を何も記入しない空スペースに設定し、コア99P22へのアクセス要求を禁止した状態へと変更する。
ステップ2(S2):コア99P00が、コア99P30からコア99P32へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P32へのパケットの処理を禁止する旨の情報を含む更新用パケットをルータノード2000P32を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新用パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P30、2000P31を介してルータノード2000P32に到着する。
そして、ルータノード2000P32は、ルータノード2000P31を介して更新用パケットを受け取る。そして、更新用パケットがコア99P32へのパケットの処理を禁止するものであることを認識すると、ルータフィルタデータにおいて、一時停止ビットを「Yes」に保ったまま、コア99P32に対するアクセス要求の種類を示す許可ビットの欄を何も記入しない空スペースに設定し、コア99P32へのアクセス要求を禁止した状態へと変更する。
次に、高信頼度なコア99P00が、低信頼度なコア99P30からコア99P22及び99P32へのアクセス要求を禁止する設定を図95で説明したように行った後、ルータノード2000P22及び2000P32におけるパケットの処理の一時停止を解除する場合の動作を説明する。図96は図33に示した半導体集積回路の動作の一例を説明するための図である。図96に示すルータノードは図83に示したルータノード2000に相当する。
ステップ1(S1):コア99P00が、コア99P30からコア99P22へのアクセス要求の処理の一時停止を解除する旨をルータノード2000P22に指示するための一時停止解除要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P22へのパケットの処理の一時停止を解除する旨をルータフィルタデータに書き込むことを指示するための一時停止解除パケットをルータノード2000P22を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P21を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、ルータノード2000P21を介して一時停止解除パケットを受け取る。そして、一時停止解除パケットがコア99P22へのパケットの処理の一時停止を解除するものであることを認識すると、ルータフィルタデータにおいてコア99P22へのパケットの処理を一時停止するか否かを示す一時停止ビットを「No」にし、コア99P22へのパケットの処理の一時停止状態を解除する。
ステップ2(S2):コア99P00が、コア99P30からコア99P32へのアクセス要求の処理の一時停止を解除する旨をルータノード2000P32に指示するための一時停止解除要求をアダプタ3000P00に渡すと、アダプタ3000P00は、コア99P32へのパケットの処理の一時停止を解除する旨をルータフィルタデータに書き込むことを指示するための一時停止解除パケットをルータノード2000P32を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P30、2000P31を介してルータノード2000P32に到着する。
そして、ルータノード2000P32は、ルータノード2000P31を介して一時停止解除パケットを受け取る。そして、一時停止解除パケットがコア99P32へのパケットの処理の一時停止を解除するものであることを認識すると、ルータフィルタデータにおいてコア99P32へのパケットの処理を一時停止するか否かを示す一時停止ビットを「No」にし、コア99P32へのパケットの処理の一時停止状態を解除する。
次に、図94、図95及び図96で説明したようにルータフィルタデータの設定変更が行われた後に、低信頼度なコア99P30がコア99P22にアクセス要求をする場合の動作を説明する。上述したようにルータフィルタデータの設定変更が行われ、低信頼度なコア99P30から信頼度の規定されていないコア99P22へのアクセス要求は禁止されている。図97は図33に示した半導体集積回路の動作の一例を説明するための図である。図97に示すルータノードは図83に示したルータノード2000に相当する。
ステップ1(S1):コア99P30は、コア99P22に対するアクセス要求をアダプタ3000P30に渡す。アダプタ3000P30は、コア99P30よりアクセス要求を受け取ると、アクセス要求をパケットに変換する。そして、コア99P22を宛先としてパケットをルータノード2000P30へ送信する。ルータノード2000P30から送出されたパケットは、ルータノード2000P31及び2000P32を含む中間ルータノード群を介して、ルータノード2000P22に到着する。
そして、ルータノード2000P22は、ルータノード2000P32からパケットを受け取ると、ルータフィルタデータを参照する。続いて、当該パケットによるアクセス要求が許可されていないことを認識すると、コア99P30に対してアクセスエラーを通知するためのエラーパケットをコア99P30宛で送出する。
エラーパケットは、ルータノード2000P22から送出されると、ルータノード2000P32及び2000P31を含む中間ルータノード群を介してルータノード2000P30に到着する。その後、ルータノード2000P30は、アダプタ3000P30にエラーパケットを渡す。アダプタ3000P30は、ルータノード2000P30からエラーパケットを受け取ると、エラーパケットをコアへのエラー応答に変換してコア99P30に渡す。なお、エラーパケットがアクセス要求のパケットが配送された経路を逆方向に配送される場合で説明したが、この経路とは異なる経路で配送されてもよい。
次に、1つのルータノードにおけるルータフィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、ルータフィルタデータを更新することで、所定のコアからのアクセス要求をそのルータノードに処理させる場合の動作を説明する。ここでは、低信頼度なコア99P30からコア99P22へのアクセス要求の処理が一時停止の状態にあり、その後、高信頼度なコア99P00がコア99P30からのアクセス要求の処理をルータノード2000P22で処理可能に設定し、続いて、アクセス要求の処理の一時停止を解除するものである。図98は図33に示した半導体集積回路の動作の一例を説明するための図である。図98に示すルータノードは図83に示したルータノード2000に相当する。
ステップ1(S1):コア99P30がアダプタ3000P30にアクセス要求を渡すと、アダプタ3000P30は、アクセス要求をパケットに変換し、コア99P22を宛先としたパケットをルータノード2000P30へ送信する。ルータノード2000P30は、アダプタ3000P30から受け取ったパケットを隣接するルータノード2000P31に送出する。ルータノード2000P30から送出されたパケットは、ルータノード2000P31、2000P32を含む中間ルータノード群を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、ルータノード2000P32からパケットを受け取ると、ルータフィルタデータを参照する。続いて、当該パケットによるアクセス要求の処理が一時停止になっていることを認識すると、そのパケットを自ルータノード宛の再送パケットとして相互結合網に送出する。
ステップ2(S2):コア99P00が、ルータノード2000P22におけるコア99P30からのアクセス要求の処理を許可する旨のルータフィルタデータに更新するためのルータフィルタデータ更新要求と、アダプタ3000P22におけるアクセス要求の処理の一時停止を解除する旨をルータフィルタデータに書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡す。アダプタ3000P00は、コア99P00からルータフィルタデータ更新要求と一時停止解除要求を受け取ると、コア99P30からのアクセス要求の処理を許可する旨の情報とアクセス要求の処理の一時停止を解除する旨をルータフィルタデータに書き込むことを指示するための更新・一時停止解除パケットをルータノード2000P22を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新・一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P21を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、複数のルータノードを介して更新・一時停止解除パケットを受け取ると、当該更新・一時停止解除パケットがコア99P22におけるコア99P30からのアクセス要求の処理を許可する旨と、アクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、ルータフィルタデータにおいて、コア99P30からのアクセス要求の処理を許可した状態に変更し、一時停止ビットを「No」にし、アクセス要求の処理の一時停止状態を解除する。
ステップ3(S3):ルータノード2000P22は、ステップ1で送出した再送パケットを、ルータノード2000P12、2000P13、2000P23を含む中間ルータノード群を介して受信する。そして、ルータノード2000P22は、ルータフィルタデータを参照して、受信した再送パケットの処理が許可されており、かつ、パケットの処理の一時停止が解除されていることを認識すると、再送パケットをアダプタ3000P22に渡す。
ステップ4(S4):アダプタ3000P22は、再送パケットをルータノード2000P22から受信すると、再送パケットをアクセス要求に変換し、そのアクセス要求をコア99P22に渡す。
次に、1つのルータノードにおけるルータフィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、ルータフィルタデータを更新することで、所定のコアからのアクセス要求の処理をそのルータノードに許可させない場合の動作を説明する。ここでは、低信頼度なコア99P30からコア99P22へのアクセス要求の処理が一時停止の状態にあり、その後、高信頼度なコア99P00がコア99P30からのアクセス要求の処理をルータノード2000P22で禁止状態に設定し、続いて、アクセス要求の処理の一時停止を解除するものである。図99は図33に示した半導体集積回路の動作の一例を説明するための図である。図99に示すルータノードは図83に示したルータノード2000に相当する。
ステップ1(S1):コア99P30がアダプタ3000P30にアクセス要求を渡すと、アダプタ3000P30は、アクセス要求をパケットに変換し、コア99P22を宛先としたパケットをルータノード2000P30へ送信する。ルータノード2000P30は、アダプタ3000P30から受け取ったパケットを隣接するルータノード2000P31に送出する。ルータノード2000P30から送出されたパケットは、ルータノード2000P31、2000P32を含む中間ルータノード群を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、ルータノード2000P32からパケットを受け取ると、ルータフィルタデータを参照する。続いて、当該パケットによるアクセス要求の処理が一時停止になっていることを認識すると、そのパケットを自ルータノード宛の再送パケットとして相互結合網に送出する。
ステップ2(S2):コア99P00が、ルータノード2000P22におけるコア99P30からのアクセス要求の処理を禁止する旨のルータフィルタデータに更新するためのルータフィルタデータ更新要求と、ルータノード2000P22におけるアクセス要求の処理の一時停止を解除する旨をルータフィルタデータに書き込むことを指示するための一時停止解除要求をアダプタ3000P00に渡す。アダプタ3000P00は、コア99P00からルータフィルタデータ更新要求と一時停止解除要求を受け取ると、コア99P30からのアクセス要求の処理を禁止する旨の情報とアクセス要求の処理の一時停止を解除する旨をルータフィルタデータに書き込むことを指示するための更新・一時停止解除パケットをルータノード2000P22を宛先にしてルータノード2000P00へ送信する。ルータノード2000P00は受け取った更新・一時停止解除パケットを隣接するルータノード2000P10に送出する。ルータノード2000P00から送出されたパケットは、ルータノード2000P10、2000P20、2000P21を介してルータノード2000P22に到着する。
そして、ルータノード2000P22は、複数のルータノードを介して更新・一時停止解除パケットを受け取ると、当該更新・一時停止解除パケットがコア99P22におけるコア99P30からのアクセス要求の処理を禁止する旨と、アクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、ルータフィルタデータにおいて、コア99P30からのアクセス要求の処理を禁止した状態に変更し、一時停止ビットを「No」にし、アクセス要求の処理の一時停止状態を解除する。
ステップ3(S3):ルータノード2000P22は、ステップ1で送出した再送パケットを、ルータノード2000P12、2000P13、2000P23を含む中間ルータノード群を介して受信する。
ステップ4(S4):ルータノード2000P22は、再送パケットを受信すると、ルータフィルタデータを参照する。そして、パケットの処理の一時停止が解除されているが、受信した再送パケットの処理が禁止されていることを認識すると、アクセス要求が許可されずにエラーを起こしたことをコア99P30に対して通知するためのパケットであるエラーパケットを生成する。続いて、ルータノード2000P22はエラーパケットを隣接するルータノード2000P32に送出する。ルータノード2000P22から送出されたエラーパケットは、ルータノード2000P32、2000P31を含む中間ルータノード群を介してルータノード2000P30に到着する。
その後、ルータノード2000P30は、中間ルータノード群を介してエラーパケットを受け取ると、アダプタ3000P30にエラーパケットを渡す。アダプタ3000P30は当該エラーパケットをコアに対してアクセス要求がエラーを起こしたことを通知するための情報であるアクセスエラー応答に変換してコア99P30に渡す。なお、エラーパケットがアクセス要求のパケットが配送された経路を逆方向に配送される場合で説明したが、この経路とは異なる経路で配送されてもよい。
本実施形態では、コアからのアクセス要求に対して、相互結合網内の複数のルータのそれぞれは、配送情報にしたがってパケットの配送制御を行う。ルータのそれぞれが保持する配送情報の内容に統一性をもたせることで、一貫性のあるフィルタ制御が可能となる。
また、配送情報を更新する際には、相互結合網内の複数のルータに対して、パケットの処理の一時停止の指示と、ルータフィルタデータの更新およびパケットの処理の一時停止の解除の指示が所定のコアから一斉になされる。
本実施形態では、第1の実施形態から第3の実施形態で説明したアダプタだけでなく、ルータノードにおいても、複数のコアに対するアクセス制御を行うことができ、第1の実施形態と同様な効果が得られる。また、本実施形態では、アダプタ3000によるフィルタ制御を行わなくてもよい。
(第5の実施形態)
本実施形態は、ルータノードが第1の実施形態から第4の実施形態のいずれとも異なる場合の構成である。以下では、ルータノード以外の構成については、第1の実施形態と同様であるため、その詳細な説明を省略する。
本実施形態のルータノードの構成を説明する。図100は本実施形態のルータノード2500の構成例を示す図である。図100に示すルータノード2500は、図7に示したルータノードと比較すると、仮想チャネルに対応していることに特徴がある。
図100を参照すると、ルータノード2500は、隣接するルータノードからの入力用に複数のチャネルと、隣接するルータノードへの出力用に複数のチャネルと、アダプタとの接続用に1チャネルを備えている。各チャネルには、接続リンクのフロー制御等を行う仮想リンク制御回路2510と、パケットを保持する仮想チャネルバッファ2520とが設けられている。入力用の複数のチャネルのチャネル毎に3つの仮想チャネルが設けられている。チャネル毎に設けられた3つの仮想チャネルに対して、仮想チャネル選択機構2540によりいずれか1つが選択される。
また、ルータノード2500は、仮想チャネル間を接続する仮想チャネルスイッチ回路2530と、受信するパケットに応じて仮想チャネルの接続または切替の情報を仮想チャネルスイッチ回路2530に通知する仮想チャネルルーティング制御手段2600とを有する。
なお、本実施形態では、アダプタとの接続チャネルを1チャネルとしているが、複数チャネルの場合においても、スイッチ回路への接続チャネル数を拡張することで実現可能である。
図100に示すルータノード2500の動作については、パケットの配送を仮想回線を介して行うことを除いて、第1の実施形態から第4の実施形態のそれぞれのルータノードと同様であるため、ここでは、その詳細な説明を省略する。
次に、本実施形態のルータノードの別の構成例を説明する。
図101は本実施形態のルータノードの別の構成例を示す図である。図101に示すルータノード2500は、図83に示したルータノードと比較すると、仮想チャネルに対応していることに特徴がある。
図101を参照すると、ルータノード2500は、図83に示したルータノード2000のフィルタ付ルーティング制御手段2101が仮想チャネルフィルタ付ルーティング制御手段2601に置き換わり、ルータノード2000の応答パケット再送手段2050が仮想応答パケット再送手段2650へと、いずれも仮想チャネルに対応している。
図101に示すルータノード2500の動作については、パケットの配送を仮想回線を介して行うことを除いて、第1の実施形態から第4の実施形態のそれぞれのルータノードと同様であるため、ここでは、その詳細な説明を省略する。
上述したように、本実施形態によれば、仮想チャネルを用いたルータノードにおいて、本発明のフィルタ制御を実現することが可能である。
(第6の実施形態)
本実施形態は、第1の実施形態から第5の実施形態のそれぞれのフィルタ制御方法について、アクセス要求信号の送信元のコアの数が多くなった場合のエントリ数を抑制するものである。
本実施形態の半導体集積回路を説明する。図102は本実施形態の半導体集積回路の一構成例を示す図である。
本実施形態の半導体集積回路は、複数の送信アダプタを含む送信アダプタ群と、複数の受信アダプタを含む受信アダプタ群と、送信アダプタおよび受信アダプタ間でやり取りされる信号を中継するルータノード結合網1100とを有する。ルータノード結合網1100は、複数のルータノードが信号線で接続された構成である。ルータノード結合網1100の構成例は、図49から図53で説明したものと同様である。
図102に示す例では、送信アダプタおよび受信アダプタがそれぞれ2つの場合を示す。送信アダプタ群には、送信アダプタ3000S1および送信アダプタ3000S2が設けられている。受信アダプタ群には、受信アダプタ3000R1および受信アダプタ3000R2が設けられている。
なお、図に示さないが、それぞれのアダプタにはコアが接続されている。本実施形態では、アダプタ間で送受信される信号のフィルタ制御方法について詳細に説明し、コアの構成および動作の詳細な説明を省略する。また、アダプタおよびルータの構成および動作についても、本実施形態で新たに説明する部分以外は、第1の実施形態から第5の実施形態のそれぞれに説明した内容と同様であるため、それらの詳細な説明を省略する。
次に、図102に示すアダプタがフィルタ制御に用いるフィルタデータについて説明する。ここでは、図に示さないメモリが受信アダプタ3000R1,3000R2のそれぞれに接続されているものとする。なお、以下では、フィルタデータの説明の際、図19、図55、図72及び図85に示したデータ構造の説明と重複する部分については省略する。
図103は図102に示した半導体集積回路においてフィルタ制御に用いられるフィルタデータの一例を示す図である。図103は、受信アダプタ3000R1がフィルタ制御の際に参照する受信フィルタデータ3321R1と、受信アダプタ3000R2がフィルタ制御の際に参照する受信フィルタデータ3321R2とを示す。
図103に示すように、受信フィルタデータ3321R1、3321R2には、アクセス要求の送信元を示す「送信元アダプタ番号」と、メモリのアクセス可能な領域を示す「アドレス範囲」と、アクセスを許可するか否かを示す「許可」とを組とするエントリが設けられている。図103には、アドレス範囲を省略して単に「範囲」と記述している。また、アクセスを許可しない場合には「許可」の欄に×印が記述されている。なお、アクセスを許可する場合にはエントリを設ける必要がない。また、送信元アダプタ番号には送信アダプタの符号を用い、図103ではその符号の下2桁を表記している。
受信フィルタデータ3321R1には、送信アダプタ3000S1についてのエントリと、送信アダプタ3000S2についてのエントリとが設けられている。送信アダプタ3000S1のエントリには、範囲の欄に「0x 000- 0x 100」が記述され、許可の欄に「×」が記述されている。これは、送信アダプタ3000S1からのアドレス範囲0x 000- 0x 100へのアクセスを禁止することを意味する。送信アダプタ3000S2のエントリには、範囲の欄に「任意」が記述され、許可の欄に「×」が記述されている。これは、送信アダプタ3000S2からの全てのアドレス範囲でアクセスを禁止することを意味する。
受信フィルタデータ3321R2には、送信アダプタ3000S1についてのエントリと、送信アダプタ3000S2についてのエントリとが設けられている。送信アダプタ3000S1のエントリには、範囲の欄に「任意」が記述され、許可の欄に「×」が記述されている。これは、送信アダプタ3000S1からの全てのアドレス範囲でアクセスを禁止することを意味する。送信アダプタ3000S2のエントリには、範囲の欄に「0x 100- 0x 200」が記述され、許可の欄に「×」が記述されている。これは、送信アダプタ3000S2からのアドレス範囲0x 100- 0x 200へのアクセスを禁止することを意味する。
図103に示す例のように、フィルタ制御を受信アダプタ側でのみ行うようにすると、受信フィルタデータに制御のための情報が設定される。図103に示す場合では、各受信フィルタデータのエントリ数は2つとなる。
なお、フィルタデータに設定されるアクセス制限がコアの信頼度に応じて決められていることは第1の実施形態から第5の実施形態で説明したのと同様である。
次に、図102に示すアダプタがフィルタ制御に用いるフィルタデータについて別の例を説明する。
図104は図102に示した半導体集積回路においてフィルタ制御に用いられるフィルタデータの別の例を示す図である。図104では、フィルタ制御のための情報が受信側と送信側のそれぞれのフィルタデータに振り分けて設定されている。
図104は、送信アダプタ3000S1に格納されたパケット送信フィルタデータ3111S1と、送信アダプタ3000S2に格納されたパケット送信フィルタデータ3111S2と、受信アダプタ3000R1に格納された受信フィルタデータ3321R1と、受信アダプタ3000R2に格納された受信フィルタデータ3321R2を示す。
パケット送信フィルタデータ3111S1、3111S2には、アクセス要求の送信先を示す「宛先アダプタ番号」と、アクセスを許可するか否かを示す「許可」とを組とするエントリが設けられている。パケット送信フィルタデータ3111S1の受信アダプタ3000R2のエントリには、許可の欄に「×」が記述されている。これは、送信アダプタ3000S1から受信アダプタ3000R2へのアクセスが禁止されていることを意味する。パケット送信フィルタデータ3111S2の受信アダプタ3000R1のエントリには、許可の欄に「×」が記述されている。これは、送信アダプタ3000S2から受信アダプタ3000R1へのアクセスが禁止されていることを意味する。
受信フィルタデータ3321R1の送信アダプタ3000S1のエントリには、範囲の欄に「0x 000- 0x 100」が記述され、許可の欄に「×」が記述されている。これは、送信アダプタ3000S1からのアドレス範囲0x 000- 0x 100へのアクセスを禁止することを意味する。受信フィルタデータ3321R2の送信アダプタ3000S2のエントリには、範囲の欄に「0x 100- 0x 200」が記述され、許可の欄に「×」が記述されている。これは、送信アダプタ3000S2からのアドレス範囲0x 100- 0x 200へのアクセスを禁止することを意味する。
図104は、図103とは異なり、パケット送信フィルタデータ3111S1には、受信アダプタ3000R2へのアクセスを禁止する旨のエントリが記述され、パケット送信フィルタデータ3111S2には、受信アダプタ3000R1へのアクセスを禁止する旨のエントリが記述されている。これにより、受信フィルタデータ3321R1には、送信アダプタ3000S1からのアドレス範囲0x 000- 0x 100へのアクセスを禁止する旨のエントリのみが記述され、受信フィルタデータ3321R2には、送信アダプタ3000S2からのアドレス範囲0x 100- 0x 200へのアクセスを禁止する旨のエントリのみが記述されることになる。図104のフィルタデータが示す制御情報を図103のフィルタデータと比較すると、内容は同じになっている。
次に、図104のフィルタデータを用いた場合のフィルタ制御の手順を説明する。ここでは、送信アダプタ3000S1が受信アダプタ3000R1に接続されたメモリ(不図示)のアドレス範囲0x 100- 0x 200にアクセスするためのパケットを送信する場合とする。
送信アダプタ3000S1は、パケットのヘッダで宛先を調べると、パケット送信フィルタデータ3111S1を参照し、受信アダプタ3000R1宛にパケットを配送してよいことを確認すると、ルータノード結合網1100を介してパケットを受信アダプタ3000R1宛に送出する。送信アダプタ3000S1でパケットに対して第1段階のフィルタ制御が行われる。
受信アダプタ3000R1は、パケットを受信すると、受信フィルタデータ3321R1を参照し、アドレス範囲0x 100- 0x 200へのアクセスが許可されていることを確認すると、受信アダプタ3000R1に接続されたメモリにパケットを送出する。受信アダプタ3000R1でパケットに対して第2段階のフィルタ制御が行われる。
送信側のフィルタデータで第1段階のフィルタ制御情報が設定され、受信側のフィルタデータで第2段階のフィルタ制御情報が設定されている。図104では、階層的にフィルタ制御情報が設定されている。
各アダプタが回路で形成されていると、チップのハード構成は最も負荷の大きいものに合わせて他の回路も設計されるのが一般的である。図103では、受信アダプタ側の受信フィルタデータのエントリ数が2つなので、少なくとも2つのエントリを登録可能なフィルタデータを格納するためのメモリを全てのアダプタに備えることになる。しかし、実際には、2つのエントリを登録するためのメモリ領域を必ずしも全てのアダプタに設ける必要はない。この場合、2つのエントリが登録されないアダプタでは、空いたメモリ領域が使われずに無駄になる。
これに対して、図104に示すように、受信アダプタの受信フィルタデータのエントリ数は1つで済む。送信アダプタのパケット送信フィルタデータも同様である。図104に示す場合、各アダプタでは、1つのエントリを登録するためのメモリ領域を備えていればよく、図103に示す場合に比べて、各アダプタの単体ハードウェア規模が小さくてすむ。その結果、各アダプタの単体のハードウェア規模が低減するだけでなく、半導体集積回路全体のハードウェア規模も低減する。
また、図104に示す場合、受信アダプタにのみ2段階のフィルタ制御の負荷がかかる場合に比べて、送信アダプタと受信アダプタに負荷が分散されるため、フィルタデータ参照の高速化が図られ、フィルタデータ参照の時間を短縮できる。
(第7の実施形態)
本実施形態は、アダプタとこれに接続されるコアとがグループ分けされている場合に第6の実施形態のフィルタ制御方法を適用するものである。
図105は本実施形態の半導体集積回路内で配送されるパケットの構成例を示す図である。図105に示すように、本実施形態におけるパケットは、図6に示したパケットのヘッダを構成するフリットに、パケットの宛先のアダプタを含むグループである宛先グループの識別子とパケットの送信元のアダプタを含むグループである送信元グループの識別子の情報が付加されている。
宛先グループ及び受信元グループのそれぞれは、各アダプタに接続されたコアの信頼度によってグループ分けされている。各グループの識別子は、そのグループ内のコアがどのくらい信頼度が高いかを示すセキュリティIDの役割も果たす。この識別子は、コアの信頼度を表すことに限定されず、コアが属するグループを他のグループと区別できる情報であればよい。パケットのヘッダに宛先グループ及び送信元グループの識別子の情報を含んでいても、第1の実施形態から第6の実施形態で説明した半導体集積回路の動作を実行することが可能である。
本実施形態の半導体集積回路を説明する。図106は本実施形態の半導体集積回路の一構成例を示す図である。
本実施形態の半導体集積回路は、複数の送信アダプタを含む送信アダプタ群と、複数の受信アダプタを含む受信アダプタ群と、送信アダプタおよび受信アダプタ間でやり取りされる信号を中継するルータノード結合網1100とを有する。本実施形態では、送信アダプタ群は複数のグループに分割され、受信アダプタ群も複数のグループに分割されている。ルータノード結合網1100は、複数のルータノードが信号線で接続された構成である。ルータノード結合網1100の構成例は、図49から図53で説明したものと同様である。
図106に示す例では、送信アダプタおよび受信アダプタがそれぞれ6つの場合を示す。そして、6つの送信アダプタが2つずつにグループ化され、2つの送信アダプタを含む送信アダプタグループが3つ設けられている。また、6つの受信アダプタが2つずつにグループ化され、2つの受信アダプタを含む受信アダプタグループが3つ設けられている。
送信アダプタグループ3001SG1は送信アダプタ3000S1、3000S2を含む構成である。送信アダプタ3001SG2は送信アダプタ3000S3、3000S4を含む構成である。送信アダプタ3001SG3は送信アダプタ3000S5、3000S6を含む構成である。
受信アダプタグループ3001RG1は受信アダプタ3000R1、3000R2を含む構成である。受信アダプタ3001RG2は受信アダプタ3000R3、3000R4を含む構成である。受信アダプタ3001RG3は受信アダプタ3000R5、3000R6を含む構成である。
なお、図に示さないが、それぞれのアダプタにはコアが接続されている。本実施形態では、アダプタ間で送受信される信号のフィルタ制御方法について詳細に説明し、コアの構成および動作の詳細な説明を省略する。また、アダプタおよびルータの構成および動作についても、本実施形態で新たに説明する部分以外は、第1の実施形態から第5の実施形態のそれぞれに説明した内容と同様であるため、それらの詳細な説明を省略する。
次に、図106に示すアダプタがフィルタ制御に用いるフィルタデータについて説明する。ここでは、図に示さないメモリが各受信アダプタに接続されているものとする。また、第6の実施形態で説明したデータ構造の説明と重複する部分については省略する。
図107は図106に示した半導体集積回路においてフィルタ制御に用いられるフィルタデータの一例を示す図である。図107は、受信アダプタ3000R1、3000R2がフィルタ制御の際に参照する受信フィルタデータ3321R12と、受信アダプタ3000R3、3000R4が参照する受信フィルタデータ3321R34と、受信アダプタ3000R5、3000R6が参照する受信フィルタデータ3321R56を示す。同じグループに属する受信アダプタは、参照する受信フィルタデータの内容が同じである。
受信フィルタデータ3321R12には、送信アダプタ3000S1〜3000S6のそれぞれについてのエントリが設けられている。送信アダプタ3000S1、3000S2のエントリには、それぞれのアダプタからアドレス範囲0x 000- 0x 100へのアクセスを禁止することが記述されている。送信アダプタ3000S3のエントリには、送信アダプタ3000S3からのアドレス範囲0x 000- 0x 100及び0x 500- 0x 600へのアクセスを禁止することが記述されている。送信アダプタ3000S5、3000S6のエントリには、それぞれのアダプタからの全てのアドレス範囲へのアクセスを禁止することが記述されている。
受信フィルタデータ3321R34には、送信アダプタ3000S1〜3000S6のそれぞれについてのエントリが設けられている。送信アダプタ3000S1のエントリには、送信アダプタ3000S1からのアドレス範囲0x 000- 0x 100及び0x 500- 0x 600へのアクセスを禁止することが記述されている。送信アダプタ3000S2のエントリには、送信アダプタ3000S2からのアドレス範囲0x 000- 0x 100及び0x 700- 0x 800へのアクセスを禁止することが記述されている。送信アダプタ3000S3、3000S4のエントリには、それぞれのアダプタからアドレス範囲0x 000- 0x 100へのアクセスを禁止することが記述されている。送信アダプタ3000S5、3000S6のエントリには、それぞれのアダプタからの全てのアドレス範囲へのアクセスを禁止することが記述されている。
受信フィルタデータ3321R56には、送信アダプタ3000S1〜3000S6のそれぞれについてのエントリが設けられている。送信アダプタ3000S1〜3000S4のエントリには、それぞれのアダプタからの全てのアドレス範囲へのアクセスを禁止することが記述されている。送信アダプタ3000S5のエントリには、送信アダプタ3000S5からのアドレス範囲0x 300- 0x 400及び0x 500- 0x 600へのアクセスを禁止することが記述されている。送信アダプタ3000S6のエントリには、送信アダプタ3000S6からのアドレス範囲0x 300- 0x 400及び0x 500- 0x 700へのアクセスを禁止することが記述されている。
図107に示す例のように、フィルタ制御を受信アダプタ側でのみ行うようにすると、受信フィルタデータに制御のための情報が設定される。図107に示す場合では、各受信フィルタデータのエントリ数は6つとなる。
次に、図106に示すアダプタがフィルタ制御に用いるフィルタデータについて別の例を説明する。
図108は図106に示した半導体集積回路においてフィルタ制御に用いられるフィルタデータの別の例を示す図である。図108では、フィルタ制御のための情報が受信側と送信側のそれぞれのフィルタデータに振り分けて設定されている。
図108は、パケット送信フィルタデータとして、送信アダプタ3000S1、3000S2に格納されたパケット送信フィルタデータ3111S12と、送信アダプタ3000S3、3000S4に格納されたパケット送信フィルタデータ3111S34と、送信アダプタ3000S5、3000S6に格納されたパケット送信フィルタデータ3111S56を示す。同じグループに属する送信アダプタは、参照するパケット送信フィルタデータの内容が同じである。
また、図108は、受信フィルタデータとして、受信アダプタ3000R1、3000R2に格納された受信フィルタデータ3321R12と、受信アダプタ3000R3、3000R4に格納された受信フィルタデータ3321R34と、受信アダプタ3000R5、3000R6に格納された受信フィルタデータ3321R56を示す。同じグループに属する受信アダプタは、参照する受信フィルタデータの内容が同じである。
図108は、図107とは異なり、パケット送信フィルタデータには、受信アダプタへのアクセスを禁止する旨のエントリが記述されている。パケット送信フィルタデータ3111S12、3111S34には、受信アダプタ3000R5、3000R6へのアクセスを禁止する旨のエントリが記述されている。パケット送信フィルタデータ3111S56には、受信アダプタ3000R1〜3000R4のそれぞれへのアクセスを禁止する旨のエントリが記述されている。
これにより、受信フィルタデータ3321R12には、送信アダプタ3000S1、3000S2からのアドレス範囲0x 000- 0x 100へのアクセスを禁止する旨のエントリと、送信アダプタ3000S3からのアドレス範囲0x 000- 0x 100及び0x 500- 0x 600へのアクセスを禁止する旨のエントリと、送信アダプタ3000S4からのアドレス範囲0x 000- 0x 100及び0x 700- 0x 800へのアクセスを禁止する旨のエントリとが記述されることになる。
また、受信フィルタデータ3321R34には、送信アダプタ3000S1からのアドレス範囲0x 000- 0x 100及び0x 500- 0x 600へのアクセスを禁止する旨のエントリと、送信アダプタ3000S2からのアドレス範囲0x 000- 0x 100及び0x 700- 0x 800へのアクセスを禁止する旨のエントリと、送信アダプタ3000S3、3000S4からのアドレス範囲0x 000- 0x 100へのアクセスを禁止する旨のエントリとが記述されることになる。
さらに、受信フィルタデータ3321R56には、送信アダプタ3000S5からのアドレス範囲0x 300- 0x 400及び0x 500- 0x 600へのアクセスを禁止する旨のエントリと、送信アダプタ3000S6からのアドレス範囲0x 300- 0x 400及び0x 500- 0x 700へのアクセスを禁止する旨のエントリとが記述されることになる。
図108のフィルタデータが示す制御情報を図107のフィルタデータと比較すると、内容は同じになっている。
次に、図108のフィルタデータを用いた場合のフィルタ制御の手順を説明する。ここでは、送信アダプタ3000S1が受信アダプタ3000R1に接続されたメモリ(不図示)のアドレス範囲0x 100- 0x 200にアクセスするためのパケットを送信する場合とする。
送信アダプタ3000S1は、パケットのヘッダで宛先を調べると、パケット送信フィルタデータ3111S12を参照し、受信アダプタ3000R1宛にパケットを配送してよいことを確認すると、ルータノード結合網1100を介してパケットを受信アダプタ3000R1宛に送出する。送信アダプタ3000S1でパケットに対して第1段階のフィルタ制御が行われる。
受信アダプタ3000R1は、パケットを受信すると、受信フィルタデータ3321R12を参照し、アドレス範囲0x 100- 0x 200へのアクセスが許可されていることを確認すると、受信アダプタ3000R1に接続されたメモリにパケットを送出する。受信アダプタ3000R1でパケットに対して第2段階のフィルタ制御が行われる。
送信側のフィルタデータで第1段階のフィルタ制御情報が設定され、受信側のフィルタデータで第2段階のフィルタ制御情報が設定されている。図108では、階層的にフィルタ制御情報が設定されている。
図108に示したように、階層的にフィルタ制御情報を設定すると、各フィルタデータの最大設定エントリ数は、6つから4つに低減される。そのため、図107に示す場合に比べて、各アダプタの単体ハードウェア規模が小さくてすみ、各アダプタの単体のハードウェア規模が低減するだけでなく、半導体集積回路全体のハードウェア規模も低減する。
また、図108に示す場合、受信アダプタにのみ2段階のフィルタ制御の負荷がかかる場合に比べて、送信アダプタと受信アダプタに負荷が分散されるため、フィルタデータ参照の高速化が図られ、フィルタデータ参照の時間を短縮できる。
次に、図106に示すアダプタがフィルタ制御に用いるフィルタデータについて、さらに別の例を説明する。
図109は図106に示した半導体集積回路においてフィルタ制御に用いられるフィルタデータの別の例を示す図である。図109では、フィルタ制御のための情報が受信側と送信側のそれぞれのフィルタデータに振り分けられているだけでなく、宛先または送信元の一部がグループの識別子で設定されている。
図109は、パケット送信フィルタデータとして、送信アダプタ3000S1、3000S2に格納されたパケット送信フィルタデータ3111S12と、送信アダプタ3000S3、3000S4に格納されたパケット送信フィルタデータ3111S34と、送信アダプタ3000S5、3000S6に格納されたパケット送信フィルタデータ3111S56を示す。同じグループに属する送信アダプタは、参照するパケット送信フィルタデータの内容が同じである。
また、図109は、受信フィルタデータとして、受信アダプタ3000R1、3000R2に格納された受信フィルタデータ3321R12と、受信アダプタ3000R3、3000R4に格納された受信フィルタデータ3321R34と、受信アダプタ3000R5、3000R6に格納された受信フィルタデータ3321R56を示す。同じグループに属する受信アダプタは、参照する受信フィルタデータの内容が同じである。
図109は、図108とは異なり、図105で示した宛先グループ及び送信元グループの識別子がフィルタ制御の設定に用いられている。
パケット送信フィルタデータ3111S12、3111S34には、受信アダプタグループ3001RG3への全てのアクセスを禁止する旨のエントリが記述されている。パケット送信フィルタデータ3111S56には、受信アダプタグループ3001RG1、3001RG2への全てのアクセスを禁止する旨のエントリが記述されている。
これにより、受信フィルタデータ3321R12には、送信アダプタグループ3001SG1、3001SG2からのアドレス範囲0x 000- 0x 100へのアクセスを禁止する旨のエントリと、送信アダプタ3000S3からのアドレス範囲0x 500- 0x 600へのアクセスを禁止する旨のエントリと、送信アダプタ3000S4からのアドレス範囲0x 700- 0x 800へのアクセスを禁止する旨のエントリとが記述されることになる。
また、受信フィルタデータ3321R34には、送信アダプタグループ3001SG1、3001SG2からのアドレス範囲0x 000- 0x 100へのアクセスを禁止する旨のエントリと、送信アダプタ3000S1からのアドレス範囲0x 500- 0x 600へのアクセスを禁止する旨のエントリと、送信アダプタ3000S2からのアドレス範囲0x 700- 0x 800へのアクセスを禁止する旨のエントリとが記述されることになる。
さらに、受信フィルタデータ3321R56には、送信アダプタグループ3001SG3からのアドレス範囲0x 300- 0x 400及び0x 500- 0x 600へのアクセスを禁止する旨のエントリと、送信アダプタ3000S6からのアドレス範囲0x 600- 0x 700へのアクセスを禁止する旨のエントリとが記述されることになる。
図109のフィルタデータが示す制御情報を図107及び図108のフィルタデータと比較すると、内容は同じになっている。
次に、図109のフィルタデータを用いた場合のフィルタ制御の手順を説明する。ここでは、送信アダプタ3000S1が受信アダプタ3000R1に接続されたメモリ(不図示)のアドレス範囲0x 100- 0x 200にアクセスするためのパケットを送信する場合とする。
送信アダプタ3000S1は、パケットのヘッダで宛先を調べると、パケット送信フィルタデータ3111S12を参照し、受信アダプタグループ3001RG1に属する受信アダプタ3000R1宛にパケットを配送してよいことを確認すると、ルータノード結合網1100を介してパケットを受信アダプタ3000R1宛に送出する。送信アダプタ3000S1でパケットに対して第1段階のフィルタ制御が行われる。
受信アダプタ3000R1は、パケットを受信すると、受信フィルタデータ3321R12を参照し、アドレス範囲0x 100- 0x 200へのアクセスが許可されていることを確認すると、受信アダプタ3000R1に接続されたメモリにパケットを送出する。受信アダプタ3000R1でパケットに対して第2段階のフィルタ制御が行われる。
送信側のフィルタデータで第1段階のフィルタ制御情報が設定され、受信側のフィルタデータで第2段階のフィルタ制御情報が設定されている。図109のフィルタデータも、階層的にフィルタ制御情報が設定されている。
図109に示したように、階層的にフィルタ制御情報を設定した結果、フィルタ制御のための全てのエントリ数は、図107に示す場合の36個(=6(受信アダプタ数)*6(各受信フィルタデータのエントリ数))から28個(送信側で8つと受信側の10との合計)に低減される。これにより、半導体集積回路全体のハードウェア規模の低減をさらに図ることができる。
(第8の実施形態)
本実施形態は、第7の実施形態で説明したフィルタ制御に、さらに、ルータノード結合網内のルータにもフィルタ制御を行うようにしたものである。
本実施形態の半導体集積回路を説明する。図110は本実施形態の半導体集積回路の一構成例を示す図である。
本実施形態の半導体集積回路は、第7の実施形態と同様に、複数の送信アダプタを含む送信アダプタ群と、複数の受信アダプタを含む受信アダプタ群と、送信アダプタおよび受信アダプタ間でやり取りされる信号を中継するルータノード結合網とを有する。
送信アダプタ群および受信アダプタ群のそれぞれは、第7の実施形態と同様に、アダプタがグループ分けされている。送信アダプタグループおよび受信アダプタグループについては、第7の実施形態と同様であるため、ここでは、その詳細な説明を省略する。また、それぞれのアダプタにコア(不図示)が接続されている点についても、第7の実施形態と同様であり、その詳細な説明を省略する。また、アダプタおよびルータの構成および動作についても、本実施形態で新たに説明する部分以外は、第1の実施形態から第5の実施形態のそれぞれに説明した内容と同様であるため、それらの詳細な説明を省略する。
本実施形態のルータノード結合網は、受信アダプタグループ3001RG1、3001RG2と接続されるルータノード結合網1100Aと、受信アダプタグループ3001RG3と接続されるルータノード結合網1100Bと、3つの送信アダプタグループと接続されるルータノード結合網1100Cと、ルータノード結合網1100A及びルータノード結合網1100Cの間を中継するルータノード2000Lと、ルータノード結合網1100B及びルータノード結合網1100Cの間を中継するルータノード2000Rとを有する。
ルータノード結合網1100Cは、送信アダプタから受信アダプタグループ3001RG1と3001RG2を宛先とするパケットを受け取ると、そのパケットをルータノード2000Lに渡す。また、送信アダプタから受信アダプタグループ3001RG3を宛先とするパケットを受け取ると、そのパケットをルータノード2000Rに渡す。
ルータノード結合網1100Aは、ルータノード2000Lから受け取るパケットを受信アダプタグループ3001RG1または受信アダプタグループ3001RG2に渡す。また、ルータノード結合網1100Bは、ルータノード2000Rから受け取るパケットを受信アダプタグループ3001RG3に渡す。
次に、図110に示す半導体集積回路において、フィルタ制御に用いるフィルタデータの構成を説明する。ここでは、図に示さないメモリが各受信アダプタに接続されているものとする。また、第6の実施形態および第7の実施形態で説明したデータ構造の説明と重複する部分については省略する。
図111は図110に示した半導体集積回路においてフィルタ制御に用いられるフィルタデータの例を示す図である。図111では、フィルタ制御のための情報が、受信側アダプタ、送信側アダプタ、及びルータノードのそれぞれのフィルタデータに振り分けて設定されている。本実施形態では、第7の実施形態で説明した図109と異なり、ルータノードにもフィルタ制御情報が設定されている。
図111は、パケット送信フィルタデータとして、送信アダプタ3000S1、3000S2に格納されたパケット送信フィルタデータ3111S12と、送信アダプタ3000S3、3000S4に格納されたパケット送信フィルタデータ3111S34と、送信アダプタ3000S5、3000S6に格納されたパケット送信フィルタデータ3111S56を示す。同じグループに属する送信アダプタは、参照するパケット送信フィルタデータの内容が同じである。
また、図111は、受信フィルタデータとして、受信アダプタ3000R1、3000R2に格納された受信フィルタデータ3321R12と、受信アダプタ3000R3、3000R4に格納された受信フィルタデータ3321R34と、受信アダプタ3000R5、3000R6に格納された受信フィルタデータ3321R56を示す。同じグループに属する受信アダプタは、参照する受信フィルタデータの内容が同じである。
また、図111は、ルータノード2000L用のルータフィルタデータ2141Lと、ルータノード2000R用のルータフィルタデータ2141Rを示す。
次に、各フィルタデータの内容について説明する。パケット送信フィルタデータは図109で説明したのと同様であるため、ここでは、詳細な説明を省略する。
ルータフィルタデータには、パケットの宛先のアダプタを示す宛先アダプタ番号と、パケットの送信元のアダプタを示す送信元アダプタ番号と、アドレス範囲と、そのアドレス範囲についてアクセスを許可するか否かの情報とを組とするエントリが設けられている。アダプタ番号がグループの識別子で記述されている場合は、そのグループに属するアダプタのいずれかであることを示す。以下に、具体的に説明する。
ルータフィルタデータ2141Lには、宛先アダプタ番号の欄に受信アダプタグループ3001RG1、3001RG2の2つの識別子が記述されている。そして、2つの受信アダプタグループのそれぞれについて、送信元を送信アダプタグループ3001SG1、3001SG2とするパケットに対して、アドレス範囲0x 000- 0x 100へのアクセスを禁止する旨のエントリが記述されている。
ルータフィルタデータ2141Rには、宛先を受信アダプタグループ3001RG3とし、送信元を送信アダプタグループ3001SG3とするパケットに対して、アドレス範囲0x 300- 0x 400及び0x 500- 0x 600へのアクセスを禁止する旨のエントリが記述されている。
これにより、受信フィルタデータ3321R12には、送信アダプタ3000S3からのアドレス範囲0x 500- 0x 600へのアクセスを禁止する旨のエントリと、送信アダプタ3000S4からのアドレス範囲0x 700- 0x 800へのアクセスを禁止する旨のエントリとが記述されることになる。また、受信フィルタデータ3321R34には、送信アダプタ3000S1からのアドレス範囲0x 500- 0x 600へのアクセスを禁止する旨のエントリと、送信アダプタ3000S2からのアドレス範囲0x 700- 0x 800へのアクセスを禁止する旨のエントリとが記述されることになる。
さらに、受信フィルタデータ3321R56には、送信アダプタ3000S6からのアドレス範囲0x 600- 0x 700へのアクセスを禁止する旨のエントリが記述されることになる。図111のフィルタデータが示す制御情報を図109のフィルタデータと比較すると、内容は同じになっている。
次に、図111のフィルタデータを用いた場合のフィルタ制御の手順を説明する。ここでは、送信アダプタ3000S1が受信アダプタ3000R1に接続されたメモリ(不図示)のアドレス範囲0x 100- 0x 200にアクセスするためのパケットを送信する場合とする。
送信アダプタ3000S1は、パケットのヘッダで宛先を調べると、パケット送信フィルタデータ3111S12を参照し、受信アダプタ3000R1宛にパケットを配送してよいことを確認すると、ルータノード結合網1100Cを介してパケットを受信アダプタ3000R1宛に送出する。送信アダプタ3000S1でパケットに対して第1段階のフィルタ制御が行われる。
ルータノード結合網1100Cは、送信アダプタ3000S1からパケットを受け取り、宛先が受信アダプタ3000R1であることを認識すると、パケットをルータノード2000Lに渡す。ルータノード2000Lは、パケットを受信すると、その宛先を調べ、ルータフィルタデータ2141Lを参照し、受信アダプタ3000R1宛にパケットを配送してよいことを確認すると、ルータノード結合網1100Aを介して受信アダプタ3000R1宛にパケットを送出する。ルータノード2000Lでパケットに対して第2段階のフィルタ制御が行われる。
受信アダプタ3000R1は、ルータノード結合網1100Aを介してパケットを受信すると、受信フィルタデータ3321R12を参照し、アドレス範囲0x 100- 0x 200へのアクセスが許可されていることを確認すると、受信アダプタ3000R1に接続されたメモリにパケットを送出する。受信アダプタ3000R1でパケットに対して第3段階のフィルタ制御が行われる。
送信側のフィルタデータで第1段階のフィルタ制御情報が設定され、パケットを中継するルータのフィルタデータで第2段階のフィルタ制御情報が設定され、受信側のフィルタデータで第3段階のフィルタ制御情報が設定されている。図111に示す場合では、3段階で階層的にフィルタ制御情報が設定されている。
図111に示したように、階層的にフィルタ制御情報を設定した結果、フィルタ制御のための全てのエントリ数は、図109に示す場合の28個から24個(受信側と送信側でそれぞれ9つとルータの6つとの合計)に低減される。これにより、半導体集積回路全体のハードウェア規模の低減をさらに図ることができる。
次に、図110に示した半導体集積回路において、フィルタ制御に用いるフィルタデータの別の例を説明する。
図112は図110に示した半導体集積回路においてフィルタ制御に用いられるフィルタデータの別の例を示す図である。
図112は、パケット送信フィルタデータとして、送信アダプタ3000S1、3000S2に格納されたパケット送信フィルタデータ3111S12と、送信アダプタ3000S3、3000S4に格納されたパケット送信フィルタデータ3111S34と、送信アダプタ3000S5、3000S6に格納されたパケット送信フィルタデータ3111S56を示す。同じグループに属する送信アダプタは、参照するパケット送信フィルタデータの内容が同じである。
また、図112は、受信フィルタデータとして、受信アダプタ3000R1、3000R2に格納された受信フィルタデータ3321R12と、受信アダプタ3000R3、3000R4に格納された受信フィルタデータ3321R34と、受信アダプタ3000R5、3000R6に格納された受信フィルタデータ3321R56を示す。同じグループに属する受信アダプタは、参照する受信フィルタデータの内容が同じである。また、図112は、ルータノード2000L用のルータフィルタデータ2141Lと、ルータノード2000R用のルータフィルタデータ2141Rを示す。
次に、各フィルタデータの内容について説明する。パケット送信フィルタデータは図109で説明したのと同様であるため、ここでは、詳細な説明を省略する。
ルータフィルタデータ2141Rには、送信元を送信アダプタグループ3001SG3とするパケットに対して、アドレス範囲0x 300- 0x 400及び0x 500- 0x 600へのアクセスを禁止する旨のエントリが記述されている。図111と比べると、図112に示すルータフィルタデータ2141Rには、宛先アダプタ番号の欄が設けられていない。この欄が必要ないのは、ルータノード2000Rに格納された経路情報により、パケットの宛先が受信アダプタグループ3001RG3に制限されるからである。ルータノード2000Rでは、この経路情報とフィルタデータとを合わせて、フィルタ制御が行われる。図112に示すように、フィルタデータ内の宛先アダプタ番号の項目を省略することが可能となる。経路情報は、ルータノード毎に格納される情報であり、他のノードから受信するパケットを他のいずれのノードに送出すればよいかが記述されている。
ルータフィルタデータ2141Lには、送信元を送信アダプタグループ3001SG1、3001SG2とするパケットに対して、アドレス範囲0x 000- 0x 100へのアクセスを禁止する旨のエントリが記述されている。図111と比べて、図112に示すルータフィルタデータ2141Lに宛先アダプタ番号の欄が設けられていないのは、ルータフィルタデータ2141Rと同じ理由である。ルータノード2000Lの経路情報では、パケットの宛先が受信アダプタグループ3001RG1、3001RG2に制限されている。
これにより、受信フィルタデータ3321R12には、送信アダプタ3000S3からのアドレス範囲0x 500- 0x 600へのアクセスを禁止する旨のエントリと、送信アダプタ3000S4からのアドレス範囲0x 700- 0x 800へのアクセスを禁止する旨のエントリとが記述されることになる。また、受信フィルタデータ3321R34には、送信アダプタ3000S1からのアドレス範囲0x 500- 0x 600へのアクセスを禁止する旨のエントリと、送信アダプタ3000S2からのアドレス範囲0x 700- 0x 800へのアクセスを禁止する旨のエントリとが記述されることになる。
さらに、受信フィルタデータ3321R56には、送信アダプタ3000S6からのアドレス範囲0x 600- 0x 700へのアクセスを禁止する旨のエントリが記述されることになる。図112のフィルタデータが示す制御情報を図111のフィルタデータと比較すると、内容は同じになっている。
次に、図112のフィルタデータを用いた場合のフィルタ制御の手順を説明する。ここでは、送信アダプタ3000S1が受信アダプタ3000R1に接続されたメモリ(不図示)のアドレス範囲0x 100- 0x 200にアクセスするためのパケットを送信する場合とする。
送信アダプタ3000S1は、パケットのヘッダで宛先を調べると、パケット送信フィルタデータ3111S12を参照し、受信アダプタ3000R1宛にパケットを配送してよいことを確認すると、ルータノード結合網1100Cを介してパケットを受信アダプタ3000R1宛に送出する。送信アダプタ3000S1でパケットに対して第1段階のフィルタ制御が行われる。
ルータノード結合網1100Cは、送信アダプタ3000S1からパケットを受け取り、宛先が受信アダプタ3000R1であることを認識すると、パケットをルータノード2000Lに渡す。ルータノード2000Lは、パケットを受信すると、その宛先を調べ、経路情報およびルータフィルタデータ2141Lを参照し、受信アダプタ3000R1宛にパケットを配送してよいことを確認すると、ルータノード結合網1100Aを介して受信アダプタ3000R1宛にパケットを送出する。ルータノード2000Lでパケットに対して第2段階のフィルタ制御が行われる。
受信アダプタ3000R1は、ルータノード結合網1100Aを介してパケットを受信すると、受信フィルタデータ3321R12を参照し、アドレス範囲0x 100- 0x 200へのアクセスが許可されていることを確認すると、受信アダプタ3000R1に接続されたメモリにパケットを送出する。受信アダプタ3000R1でパケットに対して第3段階のフィルタ制御が行われる。
送信側のフィルタデータで第1段階のフィルタ制御情報が設定され、パケットを中継するルータのフィルタデータで第2段階のフィルタ制御情報が設定され、受信側のフィルタデータで第3段階のフィルタ制御情報が設定されている。図112に示す場合でも、3段階で階層的にフィルタ制御情報が設定されている。
図112に示したように、階層的にフィルタ制御情報を設定した結果、フィルタ制御のための全てのエントリ数は、図111に示す場合の24個から22個(受信側と送信側でそれぞれ9つとルータの4つとの合計)に低減される。これにより、半導体集積回路全体のハードウェア規模の低減をさらに図ることができる。
なお、第8の実施形態においても、第6の実施形態のようにフィルタデータにアダプタグループの識別子を用いずに、アダプタ単体を指定してもよい。
また、第7の実施形態および第8の実施形態では、送信側および受信側のそれぞれにおいて複数のアダプタがグループ化されている場合で説明したが、いずれか一方だけであってもよい。
第6の実施形態から第8の実施形態のそれぞれにおけるフィルタ制御情報の階層的設定に、第1の実施形態から第5の実施形態のそれぞれで説明したフィルタデータの更新方法を適用することで、一貫性のある、同期的な設定を行うことが可能となる。この場合、第1の実施形態から第5の実施形態のいずれかと同様に、フィルタデータが「許可ビット」および「一時停止ビット」の少なくともいずれかの情報を含んでいてもよい。
本発明によれば、コア間の信号の受け渡しを行う相互結合網が設けられ、送信側と受信側のそれぞれに備えたフィルタ制御のための配送情報が少なくとも送信側と受信側で階層的に設定されている。配送情報を階層的に設定することで、送信側と受信側に配送情報が分散化される。そのため、配送情報に記述されたエントリの数が分散化され、エントリの集中回避とエントリ数の抑制を図れる。フィルタ制御の際に配送情報の参照時間を短縮化でき、フィルタ制御の処理が高速化される。
複数のCPUがグループに分類され、基本処理および追加処理のプログラムの実行などの処理をその信頼度に応じてグループ毎に実行させる際には、信頼度の同等なグループ間の信号のやり取りのための配送情報に記述されたエントリの数が少ないほど、アダプタやルータによる配送情報の参照時間が短くなり、各プログラムの実行処理が高速化される。
配送情報を一部のアダプタやルータに集中させた場合、いずれのアダプタやルータに配送情報が集中するかわからないので、設計上、最大記憶容量となる配送情報に合わせて全てのアダプタおよびルータにメモリを備えなければならなかった。本発明では、配送情報のエントリ数を分散化しているため、一部のアダプタやルータに配送情報が集中することを防げる。そのため、配送情報を平均化した場合に必要な記憶容量のメモリを全てのアダプタおよびルータに備えればよく、ハードウェア規模が大きくなるのを抑制できる。
なお、第6の実施形態から第8の実施形態では、特定のデータ構造に基づき、そのデータの範囲を階層的に設定することにより、エントリの分散化に伴うエントリ数の均一化と、エントリ数の削減とを実現したものであるが、本発明は、実施形態で用いた特定のデータ構造に限定されず、他のデータ構造であっても、エントリの分散化と信頼度に基づいたグループ化をなし得る、階層的な構成をとることで、同様の効果を得られる。
また、第6の実施形態から第8の実施形態では、複数のコアを有する半導体集積回路内の相互結合網の階層型フィルタ制御装置および方法を例に説明したが、本発明は、かかる階層型フィルタ制御装置および方法に限定されるものではなく、任意の階層型フィルタ制御装置および方法に適用可能である。
また、第6の実施形態から第8の実施形態では、送信側のフィルタ制御情報の設定をパケット送信フィルタデータで行った場合で説明したが、送信フィルタデータであってもよい。
また、第1の実施形態から第8の実施形態の各実施形態では、複数のコアを有する半導体集積回路内の相互結合網の設定を更新可能なフィルタ制御装置及びフィルタ制御方法を例に説明したが、本実施形態は、かかるフィルタ制御装置及び方法に限定されるものではなく、任意のフィルタ制御装置及びフィルタ制御方法に適用可能である。
本発明の効果の一例として、フィルタ制御のための配送情報を階層的に設定することで、信号の送信側と受信側に配送情報が分散化されるため、配送情報に記述されたエントリの数が分散化され、エントリの集中回避とエントリ数の抑制を図れる。また、フィルタ制御の際に配送情報の参照時間を短縮化でき、フィルタ制御の処理が高速化される。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2007年6月8日に出願された日本出願の特願2007−152795の内容が全て取り込まれており、この日本出願を基礎として優先権を主張するものである。