(57)【要約】  本発明の半導体集積回路は、複数のコアと、複数のコア毎に接続されたアダプタおよびアダプタ間を通信可能に接続する複数のルータを含む相互結合網１０００とを有し、アダプタは、コアから受け取る要求信号の配送条件を示す配送情報を保持し、コアから受信する要求信号の配送を配送情報にしたがって制御する。
2008149784.tif 000002
【特許請求の範囲】
【請求項１】
複数のコアと、
前記複数のコア毎に接続されたアダプタおよび該アダプタ間を通信可能に接続する複数のルータを含む相互結合網とを有し、
前記アダプタは、前記コアから受け取る要求信号の配送条件を示す配送情報を保持し、前記コアから受信する前記要求信号の配送を前記配送情報にしたがって制御する、半導体集積回路。
【請求項２】
複数のコアと、
前記複数のコア毎に接続されたアダプタおよび該アダプタ間を通信可能に接続する複数のルータを含む相互結合網とを有し、
前記ルータは、前記コアからの要求信号をパケットに変換した後の該パケットの配送条件を示す配送情報を保持し、前記コアから送出される前記要求信号の変換後のパケットの配送を前記配送情報にしたがって制御する、半導体集積回路。
【請求項３】
前記アダプタは、
該アダプタに接続された第１のコア宛に第２のコアから前記ルータを介して受け取る要求信号の該第１のコアへの配送のための条件を示す前記配送情報および該要求信号の処理を一時停止するか否かの情報を示すフィルタデータが格納された記憶手段と、
前記第２のコアから前記要求信号を受け取ると、前記フィルタデータを参照して該要求信号の配送を制御し、前記第１のコアとは異なる第３のコアから前記要求信号の処理の一時停止の指示を受け取ると、該要求信号の処理を停止し、前記第３のコアから前記フィルタデータを更新するための新たなデータと前記要求信号の処理の一時停止を解除する旨の指示を受け取ると、前記フィルタデータを新たなデータに更新し、前記要求信号の処理を再開する受信フィルタ手段と、
を有する請求の範囲第１項記載の半導体集積回路。
【請求項４】
前記配送情報は、前記要求信号の送信元として許可されているコアに対応して、前記第１のコアへのアクセス可能な領域の情報と、アクセス可能な要求信号の種類の情報とを含み、
前記受信フィルタ手段は、前記第２のコアから受信する前記要求信号が前記配送情報の条件を満たす場合、該要求信号を前記第１のコアに配送し、前記配送情報の条件を満たさない場合、前記要求信号に応答できない旨を通知するための応答信号を前記第２のコアに送信する、請求の範囲第３項記載の半導体集積回路。
【請求項５】
前記アダプタは、
該アダプタに接続された第１のコアから受け取る要求信号の第２のコアへの配送のための条件を示す前記配送情報および該要求信号の処理を一時停止するか否かの情報を示すフィルタデータが格納された記憶手段と、
前記第１のコアから前記要求信号を受け取ると、前記フィルタデータを参照して該要求信号の配送を制御し、前記第１のコアとは異なる第３のコアから前記要求信号の処理の一時停止の指示を受け取ると、該要求信号の処理を停止し、前記第３のコアから前記フィルタデータを更新するための新たなデータと前記要求信号の処理の一時停止を解除する旨の指示を受け取ると、前記フィルタデータを新たなデータに更新し、前記要求信号の処理を再開する送信フィルタ手段と、
を有する請求の範囲第１項記載の半導体集積回路。
【請求項６】
前記配送情報は、前記要求信号の送信先として許可されているコアに対応して、該コアへのアクセス可能な領域の情報と、アクセス可能な要求信号の種類の情報とを含み、
前記送信フィルタ手段は、前記第１のコアから受信する前記要求信号が前記配送情報の条件を満たす場合、該要求信号を前記第２のコアに配送し、前記配送情報の条件を満たさない場合、前記要求信号に応答できない旨を通知するための応答信号を前記第１のコアに送信する、請求の範囲第５項記載の半導体集積回路。
【請求項７】
前記アダプタは、
該アダプタに接続された第１のコアから受け取る要求信号をパケットに変換したものを第２のコアへ配送するための条件を示す前記配送情報および該パケットの処理を一時停止するか否かの情報を示すフィルタデータが格納された記憶手段と、
前記第１のコアから前記要求信号を受け取ると、前記要求信号をパケットに変換し、前記フィルタデータを参照して該パケットの配送を制御し、前記第１のコアとは異なる第３のコアから前記要求信号の処理の一時停止の指示を受け取ると、該パケットの処理を停止し、前記第３のコアから前記フィルタデータを更新するための新たなデータと前記要求信号の処理の一時停止を解除する旨の指示を受け取ると、前記フィルタデータを新たなデータに更新し、前記パケットの処理を再開するパケット送信フィルタ手段と、
を有する請求の範囲第１項記載の半導体集積回路。
【請求項８】
前記配送情報は、パケットの宛先として許可されているルータを示す情報と、送信が許可されているパケットの種類の情報とを含み、
前記パケット送信フィルタ手段は、前記第１のコアから受け取る要求信号の変換後のパケットが前記配送情報の条件を満たす場合、該パケットを前記第２のコアを宛先として前記相互結合網に送出し、前記配送情報の条件を満たさない場合、前記要求信号に応答できない旨を通知するための応答信号を前記第１のコアに送信する、請求の範囲第７項記載の半導体集積回路。
【請求項９】
前記ルータは、
前記複数のコアのうちいずれかによる要求信号の変換後のパケットを配送するための条件を示す前記配送情報および前記要求信号の処理を一時停止するか否かの情報を示すフィルタデータが格納された記憶手段と、
他のルータから前記要求信号の変換後のパケットを受け取ると、前記フィルタデータにしたがって該パケットの配送を制御し、前記複数のコアのうち所定のコアから前記要求信号の処理の一時停止の指示を受け取ると、該パケットの処理を停止し、前記所定のコアから前記フィルタデータを更新するための新たなデータと前記要求信号の処理の一時停止を解除する旨の指示を受け取ると、前記フィルタデータを新たなデータに更新し、前記パケットの処理を再開するルーティング手段と、
を有する請求の範囲第２項記載の半導体集積回路。
【請求項１０】
前記配送情報は、前記要求信号の変換後のパケットの宛先として許可されているルータに対応して、該パケットの送信元のルータを示す情報と、送信が許可されているパケットの種類または要求信号の種類の情報とを含み、
前記ルーティング手段は、他のルータから受け取る要求信号の変換後のパケットが前記配送情報の条件を満たす場合、該パケットを前記要求信号の宛先として許可されているルータに送信し、前記配送情報の条件を満たさない場合、前記要求信号に応答できない旨を通知するための応答信号を生成し、該応答信号をパケットに変換して前記要求信号の送信元を宛先にして送信する、請求の範囲第９項記載の半導体集積回路。
【請求項１１】
前記第１のコアが、所定の信頼度の処理を実行するコアを含む第１のグループに属し、
前記第３のコアが前記第１のグループよりも信頼度の高い処理を実行するコアからなる第２のグループに属し、
前記第３のコアは、前記フィルタデータを更新するための前記新たなデータを生成し、前記要求信号の処理の一時停止の指示を複数の前記アダプタに送出し、その後、前記新たなデータおよび前記要求信号の処理の一時停止を解除する旨の指示を複数の前記アダプタに送出する、請求の範囲第３項から第８項のいずれか１項記載の半導体集積回路。
【請求項１２】
前記複数のコアは、所定の信頼度の処理を実行するコアを含む第１のグループと、該第１のグループよりも信頼度の高い処理を実行するコアからなる第２のグループと、前記第１および第２のグループのいずれにも属さないコアからなる第３のグループに分類され、
前記所定のコアが前記第２のグループに属し、
前記所定のコアは、前記フィルタデータを更新するための前記新たなデータを生成し、前記要求信号の処理の一時停止の指示を前記複数のルータに送出し、その後、前記新たなデータおよび前記要求信号の処理の一時停止を解除する旨の指示を前記複数のルータに送出する、請求の範囲第９項または第１０項記載の半導体集積回路。
【請求項１３】
前記フィルタデータは、
前記第１のグループに属するコアから前記第２のグループに属するコア宛の前記要求信号を制限する旨の情報を含んでいる請求の範囲第１１項または第１２項記載の半導体集積回路。
【請求項１４】
複数のコアと前記複数のコア毎に接続されたアダプタおよび該アダプタ間を通信可能に接続する複数のルータを含む相互結合網とを有する半導体集積回路の前記アダプタによるフィルタ制御方法であって、
前記コアから受け取る要求信号の配送条件を示す配送情報を格納し、
前記コアから前記要求信号を受信すると、該要求信号を前記配送情報にしたがって配送制御する、フィルタ制御方法。
【請求項１５】
複数のコアと前記複数のコア毎に接続されたアダプタおよび該アダプタ間を通信可能に接続する複数のルータを含む相互結合網とを有する半導体集積回路の前記ルータによるフィルタ制御方法であって、
前記コアからの要求信号をパケットに変換した後の該パケットの配送条件を示す配送情報を格納し、
前記コアから送出された前記要求信号の変換後のパケットを受信すると、該パケットを前記配送情報にしたがって配送制御する、フィルタ制御方法。
【請求項１６】
前記配送情報は、前記アダプタに接続された第１のコア宛に第２のコアから前記ルータを介して受け取る要求信号の該第１のコアへの配送のための条件を示す情報であり、
前記配送情報および前記要求信号の処理を一時停止するか否かの情報を示すフィルタデータを格納し、
前記配送制御は、
前記第２のコアから前記要求信号を受け取ると、前記フィルタデータを参照して該要求信号の配送を制御し、
前記第１のコアとは異なる第３のコアから前記要求信号の処理の一時停止の指示を受け取ると、該要求信号の処理を停止し、
前記第３のコアから前記フィルタデータを更新するための新たなデータと前記要求信号の処理の一時停止を解除する旨の指示を受け取ると、前記フィルタデータを新たなデータに更新し、前記要求信号の処理を再開するものである、請求の範囲第１４項記載のフィルタ制御方法。
【請求項１７】
前記配送情報は、前記アダプタに接続された第１のコアから受け取る要求信号の第２のコアへの配送のための条件を示す情報であり、
前記配送情報および前記要求信号の処理を一時停止するか否かの情報を示すフィルタデータを格納し、
前記配送制御は、
前記第１のコアから前記要求信号を受け取ると、前記フィルタデータを参照して該要求信号の配送を制御し、
前記第１のコアとは異なる第３のコアから前記要求信号の処理の一時停止の指示を受け取ると、該要求信号の処理を停止し、
前記第３のコアから前記フィルタデータを更新するための新たなデータと前記要求信号の処理の一時停止を解除する旨の指示を受け取ると、前記フィルタデータを新たなデータに更新し、前記要求信号の処理を再開するものである、請求の範囲第１４項記載のフィルタ制御方法。
【請求項１８】
前記配送情報は、前記アダプタに接続された第１のコアから受け取る要求信号をパケットに変換したものを第２のコアへ配送するための条件を示す情報であり、
前記配送情報および前記パケットの処理を一時停止するか否かの情報を示すフィルタデータを格納し、
前記配送制御は、
前記第１のコアから前記要求信号を受け取ると、前記要求信号をパケットに変換し、前記フィルタデータを参照して該パケットの配送を制御し、
前記第１のコアとは異なる第３のコアから前記要求信号の処理の一時停止の指示を受け取ると、該パケットの処理を停止し、
前記第３のコアから前記フィルタデータを更新するための新たなデータと前記要求信号の処理の一時停止を解除する旨の指示を受け取ると、前記フィルタデータを新たなデータに更新し、前記パケットの処理を再開するものである、請求の範囲第１４項記載のフィルタ制御方法。
【請求項１９】
前記配送情報は、前記複数のコアのうちいずれかによる要求信号の変換後のパケットを配送するための条件を示す情報であり、
前記配送情報および前記要求信号の処理を一時停止するか否かの情報を示すフィルタデータを格納し、
前記配送制御は、
他のルータから前記要求信号の変換後のパケットを受け取ると、前記フィルタデータにしたがって該パケットの配送を制御し、
前記複数のコアのうち所定のコアから前記要求信号の処理の一時停止の指示を受け取ると、該パケットの処理を停止し、
前記所定のコアから前記フィルタデータを更新するための新たなデータと前記要求信号の処理の一時停止を解除する旨の指示を受け取ると、前記フィルタデータを新たなデータに更新し、前記パケットの処理を再開するものである、請求の範囲第１５項記載のフィルタ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを有する半導体集積回路、及びフィルタ制御方法に関する。
【背景技術】
【０００２】
携帯電話機（mobile  phone）等の情報通信端末装置において、通常、該端末装置の基本機能を実現するための基本処理のプログラムは、オペレーティングシステムとともに予めインストールされている。基本処理とは、例えば、呼処理機能、インターネットアクセス用のブラウザ機能、電子メール機能、及び画面制御機能等の機能による処理である。一方、基本処理とは別の追加処理を実行するためのプログラムについては、ユーザの操作等によりネットワーク及び記録媒体等を介して外部から該端末装置にダウンロードされ、端末装置にインストールが行われる。しかしながら、追加処理のプログラムを端末装置にダウンロードする際にコンピュータウィルスが一緒に入り込んでしまうと、端末装置が追加処理のプログラムを実行したとき、オペレーティングシステムや基本処理等がコンピュータウィルスによる攻撃に曝される可能性がある。【０００３】
情報通信端末装置の構成を説明する。図１Ａは関連する情報通信端末装置の一構成例を示すブロック図である。【０００４】
図１Ａには、よく知られた典型的な装置構成がブロック図にて模式的に例示されている。この情報通信端末装置には、追加処理のためのプログラムがダウンロードされている。以下では、追加処理が、ネイティブコード（提供者側でコンパイル、またはアセンブル処理されたバイナリコード）で提供されるアプリケーションプログラムやデバイスドライバ（デバイスへのアクセス要求、デバイスからの割り込み処理を行うソフトウェアであり、「Ｉ／Ｏドライバ」ともいう）である場合について説明する。【０００５】
図１Ａに示す情報通信端末装置は、複数のＣＰＵ（Central  Processing  Unit）を備えたマルチＣＰＵ構成の情報処理装置である。情報通信端末装置は、半導体集積回路と、メモリ３１と、入出力装置（Ｉ／Ｏ）５１とを有する。半導体集積回路は、複数のＣＰＵ１００１０Ａ及び１００１０Ｂと、基本処理のプログラム及びＯＳ１００２１Ａを含むグループと、追加処理のプログラム及びＯＳ１００２１Ｂを含むグループと、アクセス制御手段１００３０とを有する。【０００６】
１又は複数のＣＰＵ１００１０Ａはメモリ３１及びＩ／Ｏ５１のそれぞれと接続されている。１又は複数のＣＰＵ１００１０Ｂはアクセス制御手段１００３０と介してメモリ３１及びＩ／Ｏ５１と接続される。【０００７】
図１Ａに示す情報通信端末装置では、実行されるプログラムまたは処理の信頼度に応じて、複数のＣＰＵが複数のグループに分けられている。以下では、このグループをドメインと称する。ここでは、複数のＣＰＵが、基本処理のプログラム及びＯＳ１００２１Ａを含むドメイン１００２０Ａと、追加処理のプログラム及びＯＳ１００２１Ｂを含むドメイン１００２０Ｂに分けられている。また、ドメイン１００２０Ａの方がドメイン１００２０Ｂよりもセキュリティが高く設定されている。高セキュリティ・ドメインとはハードウェア的に別構成の低セキュリティ・ドメイン側のＣＰＵで追加処理のプログラムを実行することで、高セキュリティ・ドメインの安全性を確保している。【０００８】
信頼度の高い処理とは、コンピュータウィルスの含まれている可能性が低いデータについて処理を行うことをいう。コンピュータウィルスの含まれている可能性の低いデータとは、予めコンピュータ本体に内蔵される基本処理のためのデータの他、ネットワークを介してダウンロードされるデータであれば、認証により安全性を保持しているデータも含まれる。【０００９】
上述したように、各ドメインに対して１又は複数のＣＰＵが対応している。ドメイン１００２０Ｂの低セキュリティの処理を実行するＣＰＵ１００１０Ｂは、ドメイン１００２０Ａの高セキュリティの処理を実行するメモリ３１及びＩ／Ｏ５１に対してアクセスする際、ＣＰＵ１００１０Ｂからのアクセス要求をアクセス制御手段１００３０に送信する。アクセス制御手段１００３０は、ＣＰＵ１００１０Ｂよりアクセス要求を受信すると、アクセスの許可／非許可を判定する。そして、アクセス制御手段１００３０によって許可されたアクセスのみが行われる。このようにして、ハードウェア制御を基にした、信頼度が非常に高いセキュリティシステムの構築が可能となる。【００１０】
これに類する技術を用いた情報処理装置が国際公開番号ＷＯ２００６/０２２１６１の公報（以下では、特許文献１と称する）に開示されている。特許文献１には、図１Ａに示したアクセス制御手段と同様な構成が開示されている。【００１１】
次に、ルータ間の設定情報を制御する方法の一例を説明する。【００１２】
図１Ｂはルータ間の設定情報を制御する装置の一構成例を示すブロック図である。図１Ｂに示すように、ルータ１０１００Ａとこれに隣接するルータ１０１００Ｂとが接続された構成である。【００１３】
図１Ｂに示す構成において、ルータ１０１００Ａは、ルータ１０１００Ｂの設定を一時停止に制御する際、ルータ１０１００Ｂに一時停止情報を送信する。一時停止情報を受信したルータ１０１００Ｂは、自装置の設定情報の変化をロックするように制御する。これにより、ルータ１０１００Ａはネットワーク全体に影響を及ぼすことなく、隣接するルータの設定情報の制御を行うことが可能となる。【００１４】
これに類する技術を用いた方法が特開２００３−１８１９９号公報（以下では、特許文献２と称する）に開示されている。特許文献２には、図１Ｂで説明した方法と同様な、隣接するルータの経路情報の制御方法が開示されている。
【発明の開示】
【００１５】
しかし、図１Ａに示した方式は、以下の問題点を有している。
【００１６】
図１Ａに示すアクセス制御手段は、接続される全てのＣＰＵ１００１０Ｂからのアクセスが遂次入力されるバス結合型で複数のＣＰＵと接続されることを前提としている。そのため、ＣＰＵからのアクセス要求がどこを経由して入力されるか、ＣＰＵからのアクセス要求の発生段階では確定されていない相互結合網（ネットワークルータ）型の方式には対応できない。
【００１７】
また、仮にＣＰＵからのアクセス要求が伝達される全ての経路にアクセス制御手段を配置できたとしても、複数のアクセス制御手段に対する設定を更新する際に一貫性を保ちながら全て更新することは困難であり、セキュリティホールが発生するおそれがある。特許文献１の発明には、図１Ａに示す構成の場合と同じ問題が発生するおそれがあった。
【００１８】
また、図１Ｂに示した方式は、以下の問題点を有している。
【００１９】
図１Ｂに示した方式は、隣接するルータのみを考慮した方法であるため、関係するネットワーク全体の設定制御にそのまま適用することはできない。この方法でネットワーク全体を制御しようとしても、設定情報を更新する際、信号の伝達経路が長くなるほど設定情報の通知の遅れに相当するタイムラグが無視できないほど大きくなる。そのため、ネットワークの規模が大きくなるほど、一貫性のある更新設定制御は困難である。特許文献２の発明には、図１Ｂに示す構成の場合と同じ問題が発生するおそれがあった。
【００２０】
本発明の目的は、プロセッサおよびメモリ等のコアが複数設けられ、複数のコア間でやり取りされる信号の配送制御を分散し、かつ統一性を保って行うことを可能にした半導体集積回路及びフィルタ制御方法を提供することである。
【００２１】
本発明の半導体集積回路は、複数のコアと、複数のコア毎に接続されたアダプタおよびアダプタ間を通信可能に接続する複数のルータを含む相互結合網とを有し、アダプタは、コアから受け取る要求信号の配送条件を示す配送情報を保持し、コアから受信する要求信号の配送を配送情報にしたがって制御するものである。
【図面の簡単な説明】
【００２２】
【図１Ａ】図１Ａは関連する情報通信端末装置の一構成例を示すブロック図である。
【図１Ｂ】図１Ｂはルータ間の設定情報を制御する装置の一構成例を示すブロック図である。
【図２】図２は第１の実施形態の半導体集積回路の全体構成を示す図である。
【図３】図３は第１の実施形態の半導体集積回路内の個別回路の総称を説明するための図である。
【図４】図４は第１の実施形態の相互結合網の全体構成を示す図である。
【図５】図５は図４に示したルータノード及びアダプタの動作の一例を説明するための図である。
【図６】図６は相互結合網内で配送されるパケットの一構成例を示す図である。
【図７】図７は相互結合網内のルータノードの一構成例を示すブロック図である。
【図８】図８は図７に示したルータノードの動作の一例を説明するための図である。
【図９】図９は図７に示したルータノードの動作の一例を説明するための図である。
【図１０】図１０は図７に示したルータノードの動作の一例を説明するための図である。
【図１１】図１１はルーティング経路手段の一構成例を示すブロック図である。
【図１２】図１２は図１１に示したルーティング制御手段の動作の一例を説明するための図である。
【図１３】図１３は図１１に示したルーティング制御手段の動作の一例を説明するための図である。
【図１４】図１４はアダプタを含む相互結合網の一部を示すブロック図である。
【図１５】図１５は図１４に示したアダプタの動作の一例を説明するための図である。
【図１６】図１６は図１４に示したアダプタの動作の一例を説明するための図である。
【図１７】図１７はアダプタの一構成例を示すブロック図である。
【図１８】図１８はアダプタフィルタ制御手段の一構成例を示すブロック図である。
【図１９】図１９は受信フィルタデータの一構成例を説明するための図である。
【図２０】図２０は図１８に示したアダプタフィルタ制御手段の動作の一例を説明するための図である。
【図２１】図２１は図１８に示したアダプタフィルタ制御手段の動作の一例を説明するための図である。
【図２２】図２２は図１８に示したアダプタフィルタ制御手段の動作の一例を説明するための図である。
【図２３】図２３は図１８に示したアダプタフィルタ制御手段の動作の一例を説明するための図である。
【図２４】図２４は図１８に示したアダプタフィルタ制御手段の動作の一例を説明するための図である。
【図２５】図２５は図１７に示したアダプタの内部動作の一例を説明するための図である。
【図２６】図２６は図１７に示したアダプタの内部動作の一例を説明するための図である。
【図２７】図２７は図１７に示したアダプタの内部動作の一例を説明するための図である。
【図２８】図２８は図１７に示したアダプタの内部動作の一例を説明するための図である。
【図２９】図２９は図１７に示したアダプタの内部動作の一例を説明するための図である。
【図３０】図３０は図１７に示したアダプタの内部動作の一例を説明するための図である。
【図３１】図３１は図１７に示したアダプタの内部動作の一例を説明するための図である。
【図３２】図３２は図１７に示したアダプタ３０００の内部動作の一例を説明するための図である。
【図３３】図３３は相互結合網に接続された複数コアを有する半導体集積回路の一構成例を示すブロック図である。
【図３４】図３４は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図３５】図３５は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図３６】図３６は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図３７】図３７は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図３８】図３８は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図３９】図３９は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図４０】図４０は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図４１】図４１は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図４２】図４２は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図４３】図４３は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図４４】図４４は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図４５】図４５は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図４６】図４６は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図４７】図４７は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図４８】図４８は図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図４９】図４９は相互結合網の一構成例を示す図である。
【図５０】図５０は相互結合網の別の構成例を示す図である。
【図５１】図５１は相互結合網の別の構成例を示す図である。
【図５２】図５２は相互結合網の別の構成例を示す図である。
【図５３】図５３は相互結合網の別の構成例を示す図である。
【図５４】図５４は第２の実施形態におけるアダプタフィルタ制御手段の構成例を示す図である。
【図５５】図５５は送信フィルタデータの一構成例を示す図である。
【図５６】図５６は図５４に示したアダプタフィルタ制御手段の動作の一例を説明するための図である。
【図５７】図５７は図５４のアダプタフィルタ制御手段の動作の一例を説明するための図である。
【図５８】図５８は図５４に示したアダプタフィルタ制御手段の動作の一例を説明するための図である。
【図５９】図５９は図５４に示したアダプタフィルタ制御手段の動作の一例を説明するための図である。
【図６０】図６０は図５４に示したアダプタフィルタ制御手段を有するアダプタの内部動作の一例を説明するための図である。
【図６１】図６１は図５４に示したアダプタフィルタ制御手段を有するアダプタの内部動作の一例を説明するための図である。
【図６２】図６２は図５４に示したアダプタフィルタ制御手段を有するアダプタの内部動作の一例を説明するための図である。
【図６３】図６３は図５４に示したアダプタフィルタ制御手段を有するアダプタの内部動作の一例を説明するための図である。
【図６４】図６４は図５４に示したアダプタフィルタ制御手段を有するアダプタの内部動作の一例を説明するための図である。
【図６５】図６５は第２の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図６６】図６６は第２の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図６７】図６７は第２の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図６８】図６８は第２の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図６９】図６９は第２の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図７０】図７０は第２の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図７１】図７１は第３の実施形態におけるアダプタの構成例を示す図である。
【図７２】図７２はパケット送信フィルタデータの一構成例を示す図である。
【図７３】図７３は図７１に示したアダプタの内部動作の一例を説明するための図である。
【図７４】図７４は図７１に示したアダプタの内部動作の一例を説明するための図である。
【図７５】図７５は図７１に示したアダプタの内部動作の一例を説明するための図である。
【図７６】図７６は図７１に示したアダプタの内部動作の一例を説明するための図である。
【図７７】図７７は第３の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図７８】図７８は第３の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図７９】図７９は第３の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図８０】図８０は第３の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図８１】図８１は第３の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図８２】図８２は第３の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図８３】図８３は第４の実施形態のルータノードの構成例を示す図である。
【図８４】図８４は第４の実施形態のフィルタ付ルーティング制御手段の一構成例を示す図である。
【図８５】図８５はルータフィルタデータの一構成例を説明するための図である。
【図８６】図８６は図８４に示したフィルタ付ルーティング制御手段の動作の一例を説明するための図である。
【図８７】図８７は図８４に示したフィルタ付ルーティング制御手段の動作の一例を説明するための図である。
【図８８】図８８は図８４に示したフィルタ付ルーティング制御手段の動作の一例を説明するための図である。
【図８９】図８９は図８４に示したフィルタ付ルーティング制御手段の動作の一例を説明するための図である。
【図９０】図９０は第４の実施形態におけるルータノードの動作の一例を説明するための図である。
【図９１】図９１は第４の実施形態におけるルータノードの動作の一例を説明するための図である。
【図９２】図９２は第４の実施形態におけるルータノードの動作の一例を説明するための図である。
【図９３】図９３は第４の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図９４】図９４は第４の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図９５】図９５は第４の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図９６】図９６は第４の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図９７】図９７は第４の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図９８】図９８は第４の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図９９】図９９は第４の実施形態における、図３３に示した半導体集積回路の動作の一例を説明するための図である。
【図１００】図１００は第５の実施形態におけるルータノードの構成例を示す図である。
【図１０１】図１０１は第５の実施形態におけるルータノードの別の構成例を示す図である。
【符号の説明】
【００２３】
９９、９９Ｐ００〜９９Ｐ３３    コア
１００    半導体集積回路
１０００    相互結合網
２０００、２０００Ｐ００〜２０００Ｐ３３    ルータノード
２１０１    フィルタ付ルーティング制御手段
２１４１    ルータフィルタデータ
３０００、３０００Ｐ００〜３０００Ｐ３３    アダプタ
３１１０    パケット送信フィルタ手段
３１１１    パケット送信フィルタデータ
３３００    アダプタフィルタ制御手段
３３１０    送信フィルタ手段
３３１１    送信フィルタデータ
３３２０    受信フィルタ手段
３３２１    受信フィルタデータ
【発明を実施するための最良の形態】
【００２４】
本実施形態の半導体集積回路は、ＣＰＵ、演算回路及び各種制御回路等の複数のコアと、複数のコアを相互に接続する相互結合網とを有し、相互結合網がフィルタ制御の機能を備え、予め決められた配送情報にしたがってフィルタ制御を行うことを特徴とする。以下に、本発明の半導体集積回路の実施形態を説明する。【００２５】
（第１の実施形態）
図２は本実施形態の半導体集積回路１００の全体構成を示す図である。図２に示すように、半導体集積回路１００は、ＣＰＵ１０Ｐ１〜１０Ｐｎと、アクセラレータ等の演算回路２０Ｐ１〜２０Ｐｎと、外部メモリ３１と接続されるメモリ制御回路３０と、外部Ｉ／Ｏ４１と接続されるＩ／Ｏ制御回路４０と、チップ内メモリ５１と、チップ内メモリ５１と接続されるチップ内メモリ制御回路５０と、相互結合網１０００とを有する。ただし、ｎは２以上の自然数である。【００２６】
相互結合網１０００は、以下に説明する構成により、ＣＰＵ１０Ｐ１〜１０Ｐｎ、演算回路２０Ｐ１〜２０Ｐｎ、メモリ制御回路３０、Ｉ／Ｏ制御回路４０、及びチップ内メモリ制御回路５０を相互接続し、かつ、一貫性を保持しながらＣＰＵ分離のフィルタ制御を行うことが可能である。【００２７】
本実施形態においては、ＣＰＵ１０Ｐ１〜１０Ｐｎ、演算回路２０Ｐ１〜２０Ｐｎ、メモリ制御回路３０、メモリ３１、Ｉ／Ｏ制御回路４０、Ｉ／Ｏ４１、チップ内メモリ制御回路５０、チップ内メモリ５１、電源・クロック制御回路６０、相互結合網１０００は１つのチップに搭載されているが、それぞれが別パッケージに搭載されていてもよい。また、それらがＳｏＣ（System  on  a  Chip）内部の回路構成であってもよく、それぞれが別チップによるＳｉＰ（System  in  Package）や３次元ＬＳＩに搭載されていてもよい。さらに、それらのチップや回路の組み合わせで、本実施形態の半導体集積回路１００が構成されてもよい。【００２８】
ＣＰＵ１０Ｐ１〜１０Ｐｎは、信号処理プロセッサ、または、ＶＬＩＷ(Very  Long  Instruction  Word)プロセッサ、構成可能プロセッサ（コンフィギュラブルプロセッサ）等の、プログラム動作が可能な演算装置である。【００２９】
演算回路２０Ｐ１〜２０Ｐｎは、アクセラレータや動的再構成可能（ダイナミック・リコンフィギュラブル）回路など主にデータ処理を得意とする演算装置である。【００３０】
電源・クロック制御回路６０は、個別回路に供給する電源及びクロックを制御する。その他の機能として、割込み及び温度を制御する共通制御機構が設けられていてもよい。【００３１】
図３は本実施形態の半導体集積回路内の個別回路の総称を説明するための図である。図３に示すように、ＣＰＵ１０Ｐ１〜１０Ｐｎを代表するＣＰＵ１０、演算回路２０Ｐ１〜２０Ｐｎを代表する演算回路２０、メモリ制御回路３０、Ｉ／Ｏ制御回路４０、チップ内メモリ制御回路５０、及び電源・クロック制御回路６０を含む回路の種類に対して、以下では、コア９９という総称を用いる。すなわち、コアとラベルされた回路は特定の回路の種類に依存しないことを意味する。【００３２】
図４は本実施形態の相互結合網１０００の全体構成を示す図である。図４を参照すると、複数のコア９９を接続する相互結合網１０００は、チップや回路で形成されたルータであるルータノード２０００と、コア９９及びルータノード２０００間の接続インタフェースとなるアダプタ３０００とを有する。アダプタ３０００も、チップまたは回路で形成されている。ルータノード２０００及びアダプタ３０００のそれぞれが複数設けられている。【００３３】
コア９９は、他のコアに対して、データの読み出しおよび書き込みなどを要求する旨の信号である要求信号を送信する。他のコアがメモリであれば、読み出し（リードアクセス）または書き込み（ライトアクセス）のいずれかを要求するアクセス要求信号が送出される。相互結合網１０００内のルータノード間のデータ伝送は、伝送対象のデータを所定の容量の大きさに分割した単位であるパケットの形式で行われる。パケットの構成についての詳細は後述する。なお、以下では、一方のコアから他方のコアへの要求メモリに対するアクセス要求信号を単に「アクセス要求」とする。また、アクセス要求信号に対して応答する信号については、単に「アクセス応答」として説明する。【００３４】
アダプタ３０００は、コア９９から受信するアクセス要求をパケットに変換し、ルータノード２０００から受信するパケットをコア９９へのアクセス要求に変換する。ルータノード２０００は、設定された経路情報に従って、受信するパケットを隣接するルータノードへ配送する。【００３５】
ここで、アダプタ３０００は、ルータノード２０００またはコア９９から独立した手段として存在しているが、アクセス・パケット変換機能を果たす回路であれば、ルータノード２０００内またはコア９９内に埋め込まれていてもよい。【００３６】
図５は、図４のルータノード２０００及びアダプタ３０００の動作の一例を説明するための図である。図５において、矢印は信号の伝達方向を示し、矢印脇のＳと数字からなる符合は、ステップ番号を表している。このことは、動作を説明するための他の図においても同様である。【００３７】
図５を参照して、送信コア９９Ａから、送信アダプタ３０００Ａ、送信ルータノード２０００Ａ、受信ルータノード２０００Ｂ及び受信アダプタ３０００Ｂを経由して、受信コア９９Ｂにデータを配送する方法について説明する。【００３８】
ステップ１（Ｓ１）：送信コア９９Ａは、アクセス要求を送信アダプタ３０００Ａに送信する。ステップ２（Ｓ２）：送信アダプタ３０００Ａは、送信コア９９Ａから受信したアクセス要求を相互結合網上の配送形式に対応したパケットに変換する。変換後、そのパケットを送信ルータノード２０００Ａに渡す。【００３９】
ステップ３（Ｓ３）：送信ルータノード２０００Ａは、送信アダプタ３０００Ａからパケットを受け取ると、受け取ったパケットの宛先情報に従ってパケットを別のルータノードに配送する。受信コア９９Ｂ側の受信ルータノード２０００Ｂと送信ルータノード２０００Ａが隣接してこれらのノードが接続されていない限り、このパケットは中間ルータノード群２０００Ｃ内の様々なノードを経由して受信ルータノード２０００Ｂに届けられる。【００４０】
ステップ４（Ｓ４）：受信ルータノード２０００Ｂは、中間ルータノード群２０００Ｃ内のノードからパケットを受け取ると、パケットの宛先情報を読み取り、読み取った宛先情報が受信コア９９Ｂを示すものであると、自身に接続されたコアが処理すべきパケットであると判断する。そして、そのパケットを受信アダプタ３０００Ｂに渡す。【００４１】
ステップ５（Ｓ５）：受信アダプタ３０００Ｂは、受信ルータノード２０００Ｂから渡されたパケットの解析と展開を行うことで、パケットを受信コア９９Ｂへのアクセス要求に変換し、受信コア９９へアクセス要求を渡す。【００４２】
ここで、パケットの構成を説明する。【００４３】
図６は相互結合網１０００内で配送されるパケットの一構成例を示す図である。図６を参照すると、パケットは、パケットの送信元および宛先の情報など、ルータノードにとっての制御情報となる「ヘッダ」と、送信対象のデータ本体である「ボディ」と、パケットの正当性を保証する「テイラ」との３つのパートからなる。それぞれのパートは、ルータノード間の配送の際に、フリットと呼ばれる、さらに細かい単位に分割される。【００４４】
例えば、ヘッダは、宛先ノード、パケットサイズ、送信元ノード、及びパケットの種類からなるフリットに分割される。また、ボディは、送信先のコアがメモリである場合、当該メモリコアへのアドレス、リード・ライトといったアクセス要求の種類、ライト時のデータからなるフリットに分割される。さらに、テイラは、パケット全体のＣＲＣ（Cyclic  Redundancy  Check）コードからなるフリットに分割される。【００４５】
なお、このパケットやフリットの構成は、あくまで一例であり、相互結合網を構築するルータノードの仕様に従うものであればよい。【００４６】
次に、ルータノード２０００の構成を説明する。図７は相互結合網１０００内のルータノード２０００の一構成例を示すブロック図である。【００４７】
図７を参照すると、ルータノード２０００は、接続される他の装置とパケットを送受信するための複数のチャネルと、チャネル間を接続するスイッチ回路２０３０と、受信パケットに応じて、そのスイッチ回路２０３０への接続切替情報を通知するルーティング制御手段２１００とを有する。【００４８】
それぞれのチャネルは、接続リンクのフロー制御等を行うリンク制御回路２０１０と、パケットを保持するバッファ２０２０とからなる構成である。隣接するルータノードからの入力用に複数のチャネルが割り当てられ、隣接するルータノードへの出力用に複数のチャネルが割り当てられ、アダプタとの接続用に１チャンネル割り当てられている。ここで、アダプタとの接続チャネルを１チャネルとしているが、複数チャネルであってもよい。この場合、スイッチ回路への接続チャネル数を拡張することで実現可能である。【００４９】
リンク制御回路２０１０は、エンド・トゥ・エンドではなく、リンク・トゥ・リンク（隣接するルータノード間）のデータ信号のやり取りを管理する。これにより、例えば、ハンドシェーク信号を用いたデータを配送し、あるいは、送信先バッファが満杯の場合には、送信を停止する。【００５０】
スイッチ回路２０３０は、ルーティング制御手段２１００からの通知情報に基づいて、指定された入力チャネルと指定された出力チャネルとを接続する。例えば、クロスバー接続や、オメガ網に代表される多段結合網、あるいは、ネットワークによって接続される結合網を採用してもよい。【００５１】
ルーティング制御手段２１００は、隣接するルータノード及びアダプタの入力チャネルのパケットのヘッダに含まれる宛先の情報を参照し、パケットの宛先に応じてどの入力チャネルをどの出力チャネルに接続すればよいかを、スイッチ回路２０３０に通知する。このとき、チャネルでのスタベーションを防ぐ機能やデッドロックを防ぐ機能などがルーティング制御手段２１００に設けられていてもよい。【００５２】
次に、ルータノード２０００が、隣接するルータノードから入力チャネルを介してパケットを受信し、受信したパケットを隣接する別のルータノードへ送信する場合の動作を説明する。図８は図７に示したルータノード２０００の動作の一例を説明するための図である。【００５３】
ステップ１（Ｓ１）：リンク制御回路２０１０Ａは、隣接するルータノードからパケットを受信する。ステップ２（Ｓ２）：リンク制御回路２０１０Ａは、上記パケットをバッファ２０２０Ａに保存する。ステップ３（Ｓ３）：バッファ２０２０Ａは、スイッチ回路２０３０の入力と接続し、バッファ内のパケットをスイッチ回路２０３０に対して送信可能にする。【００５４】
ステップ４（Ｓ４）：ルーティング制御手段２１００は、バッファ内にあるパケットを受け取ると、パケットのヘッダ情報を元にして入力バッファ２０２０Ａの接続先となる出力バッファ２０２０Ｂを決定する。ステップ５（Ｓ５）：ルーティング制御手段２１００は、ステップ４で決定した情報をスイッチ回路２０３０に通知する。【００５５】
ステップ６（Ｓ６）：スイッチ回路２０３０は入力バッファ２０２０Ａと出力バッファ２０２０Ｂとを接続する。【００５６】
ステップ７（Ｓ７）：リンク制御回路２０１０Ｂは、出力バッファ２０２０Ｂ内のパケットを読み出し、続いて、隣接するルータノードへのパケットの配送準備を開始する。ステップ８（Ｓ８）：リンク制御回路２０１０Ｂは、隣接するルータノードへパケットを送信する。【００５７】
次に、ルータノード２０００がアダプタから入力チャネルを介してパケットを受信し、受信したパケットを隣接するルータノードへ送信する場合の動作を説明する。図９は図７に示したルータノード２０００の動作の一例を説明するための図である。【００５８】
ステップ１（Ｓ１）：リンク制御回路２０１０Ｃはアダプタからパケットを受信する。ステップ２（Ｓ２）：リンク制御回路２０１０Ｃは、上記パケットをバッファ２０２０Ｃに保存する。ステップ３（Ｓ３）：バッファ２０２０Ｃは、スイッチ回路２０３０の入力と接続し、バッファ内のパケットをスイッチ回路２０３０に対して送信可能にする。【００５９】
ステップ４（Ｓ４）：ルーティング制御手段２１００は、バッファ内にあるパケットのヘッダ情報を元にして入力バッファ２０２０Ｃの接続先となる出力バッファ２０２０Ｄを決定する。ステップ５（Ｓ５）：ルーティング制御手段２１００は、ステップ４で決定した情報をスイッチ回路２０３０に通知する。【００６０】
ステップ６（Ｓ６）：スイッチ回路２０３０は入力バッファ２０２０Ｃと出力バッファ２０２０Ｄとを接続する。【００６１】
ステップ７（Ｓ７）：リンク制御回路２０１０Ｄは、出力バッファ２０２０Ｄ内のパケットを読み出し、続いて、隣接ルータノードへのパケットの配送準備を開始する。ステップ８（Ｓ８）：リンク制御回路２０１０Ｄは、隣接するルータノードへパケットを送信する。【００６２】
次に、ルータノード２０００が、隣接ルータノードから入力チャネルを介してパケットを受信し、受信したパケットをアダプタへ送信する場合の動作を説明する。図１０は図７に示したルータノード２０００の動作の一例を説明するための図である。【００６３】
ステップ１（Ｓ１）：リンク制御回路２０１０Ａは、隣接するルータノードからパケットを受信する。ステップ２（Ｓ２）：リンク制御回路２０１０Ａは、上記パケットをバッファ２０２０Ａに保存する。ステップ３（Ｓ３）：バッファ２０２０Ａは、スイッチ回路２０３０の入力と接続し、バッファ内のパケットをスイッチ回路２０３０に対して送信可能にする。【００６４】
ステップ４（Ｓ４）：ルーティング制御手段２１００は、バッファ内にあるパケットのヘッダ情報を元に判断し、アダプタへの送信が必要であることを認識すると、入力バッファ２０２０Ａの接続先となる出力バッファ２０２０Ｅを決定する。ステップ５（Ｓ５）：ルーティング制御手段２１００は、ステップ４で決定した情報をスイッチ回路２０３０に通知する。【００６５】
ステップ６（Ｓ６）：スイッチ回路２０３０は入力バッファ２０２０Ａと出力バッファ２０２０Ｅとを接続する。【００６６】
ステップ７（Ｓ７）：リンク制御回路２０１０Ｅは、出力バッファ２０２０Ｅ内のパケットを読み出し、続いて、アダプタへのパケットの配送準備を開始する。ステップ８（Ｓ８）：リンク制御回路２０１０Ｅは、アダプタへパケットを送信する。【００６７】
次に、ルータノード２０００内のルーティング経路手段２１００の構成を説明する。図１１はルーティング経路手段２１００の一構成例を示すブロック図である。【００６８】
図１１を参照すると、ルーティング経路手段２１００は、入力チャネルからの情報を解析するヘッダ解析手段２１１０と、ヘッダ解析手段２１１０からの情報によって出力チャネルを定める経路決定手段２１２０と、経路決定手段で定められた出力チャネル間の競合を防止して、その情報をスイッチ回路２０３０に通知する調停手段２１３０とを有する構成である。【００６９】
ヘッダ解析手段２１１０は、入力チャネル内に存在するパケットの全てのヘッダ情報を参照して各々のパケットの宛先情報を経路決定手段２１２０に通知する。【００７０】
経路決定手段２１２０は、ヘッダ解析手段２１１０からパケットの宛先情報を受け取ると、宛先情報を基にしてそれぞれのパケットがどの出力チャネルに送信されるべきかを調停手段２１３０に通知する。出力チャネルの決定の際には、決定論的なアルゴリズムやアダプティブなアルゴリズムといった、現在知られている様々なルーティングアルゴリズムを利用することが可能である。【００７１】
調停手段２１３０は、各入力チャネルの接続先を示す出力チャネル情報を経路決定手段２１２０から受け取り、受け取った出力チャネル情報に重複があると、公平性などを考慮して、出力チャネルの競合を防ぐ。競合する入力チャネルが２つある場合に競合を防ぐ方法の具体例として、次の２つが考えられる。１つ目は、２つのうちいずれか一方の入力チャネルを先に出力チャネルに接続し、その後に、他方の入力チャネルを出力チャネルに接続する方法である。２つ目は、最短経路ではないものの、異なる出力チャネルに同じタイミングで２つの入力チャネルをそれぞれ接続する方法である。競合を防ぐ方法は、この２つの例に限られない。【００７２】
なお、パケット・フリットの配送方式としては、ウォームホールルーティング、バーチャルカットスルールーティング、ストアアンドフォワードルーティング方式等の既存手法を用いてもよい。【００７３】
次に、ルーティング制御手段２１００が、ある単一の入力チャネルにてパケットを受信した場合の動作を説明する。図１２は図１１に示したルーティング制御手段２１００の動作の一例を説明するための図である。【００７４】
ステップ１（Ｓ１）：ヘッダ解析手段２１１０は、ある入力チャネルからパケットのヘッダ情報を受信する。ステップ２（Ｓ２）：ヘッダ解析手段２１１０は、ヘッダ情報からその入力チャネルのパケットを送信すべき宛先のルータノードを特定し、宛先のルータノードを示す情報である宛先ルータノード情報を経路決定手段２１２０に通知する。【００７５】
ステップ３（Ｓ３）：経路決定手段２１２０は、受け取った宛先ルータノード情報に基づいて出力先に適した出力チャネルを特定し、特定した出力チャネルを示す出力チャネル情報を調停手段２１３０に通知する。ステップ４（Ｓ４）：調停手段２１３０は、出力チャネル情報を受け取ると、出力チャネルに接続される入力チャネルに競合がないことを認識し、そして、該当する入力チャネルの接続先となるルータノードを示す出力ノード情報を、スイッチ回路２０３０に渡す。【００７６】
次に、ルーティング制御手段２１００が、複数の入力チャネルを介してパケットを複数受信した場合の動作を説明する。ここでは、２つの入力チャネルを介してそれぞれパケットを受信した場合とする。図１３は図１１に示したルーティング制御手段２１００の動作の一例を説明するための図である。【００７７】
ステップ１（Ｓ１）：ヘッダ解析手段２１１０は、複数の入力チャネルからの複数のパケットのヘッダ情報を受信する。ステップ２（Ｓ２）：ヘッダ解析手段２１１０は、受信した複数のヘッダ情報から、各々の入力チャネルのパケットを送信すべき宛先ルータノード情報を経路決定手段２１２０に通知する。【００７８】
ステップ３（Ｓ３）：経路決定手段２１２０は、受け取った宛先ルータノード情報に基づいて、各々の入力チャネル上のパケットの出力先に適した出力チャネルの情報を含む出力チャネル情報を調停手段２１３０に通知する。【００７９】
ステップ４（Ｓ４）：調停手段２１３０は、受け取った出力チャネル情報により、出力チャネルに接続する入力チャネルに競合があることを認識する。続いて、競合する２つの入力チャネルのうちいずれを先にするか調停を行って、片方の入力チャネルを先に出力チャネルに接続することを決定する。そして、先に接続する入力チャネルの情報を示す第１の接続情報をスイッチ回路２０３０に渡す。ステップ５（Ｓ５）：調停手段２１３０は、競合していたもう片方の入力チャネルを出力チャネルに接続する情報を示す第２の接続情報をスイッチ回路２０３０に渡す。【００８０】
次に、アダプタ３０００について説明する。図１４はアダプタ３０００を含む相互結合網１０００の一部を示すブロック図である。【００８１】
図１４を参照すると、アダプタ３０００は、コアがアダプタへ信号を送信するための配線である送信信号線３０１０及びコアがアダプタから信号を受信するための配線である受信信号線３０２０を介してコア９９と接続される。また、アダプタ３０００は、ルータノードがアダプタから信号を受信するための配線である受信信号線３０１１及びルータノードがアダプタへ信号を送信するための配線である送信信号線３０２１を介してルータノード２０００と接続される。【００８２】
送信信号線３０１０で伝送される信号にはコアからのアクセス要求が含まれ、受信信号線３０２０にはアクセス要求に対する応答であるアクセス応答が含まれる。一方、受信信号線３０１１及び送信信号線３０２１では、パケットがやり取りされる。【００８３】
次に、アダプタ３０００がコアからアクセス要求を受け取った場合の動作を説明する。図１５は図１４に示したアダプタ３０００の動作の一例を説明するための図である。【００８４】
ステップ１（Ｓ１）：アダプタ３０００は、アクセス要求をコア９９から受け付ける。ステップ２（Ｓ２）：アダプタ３０００は、そのアクセス要求をパケットに変換してルータノード２０００に送信する。【００８５】
次に、アダプタ３０００がコアからのアクセス要求に対して応答する場合の動作を説明する。図１６は図１４に示したアダプタ３０００の動作の一例を説明するための図である。【００８６】
ステップ１（Ｓ１）：アダプタ３０００はルータノード２０００からパケットを受信する。ステップ２（Ｓ２）：アダプタ３０００は、そのパケットがアクセス要求に対するコア９９への応答であることを認識すると、パケットをコアへのアクセス応答に変換してコア９９に送信する。【００８７】
次に、アダプタ３０００の構成を説明する。図１７はアダプタ３０００の一構成例を示すブロック図である。【００８８】
図１７を参照すると、アダプタ３０００は、ルータノードへパケットを送信するパケット送信手段３１００と、ルータノードからのパケットを受信するパケット受信手段３２００と、コアから受け取るアクセス要求を制御するアダプタフィルタ制御手段３３００とを有する。【００８９】
パケット送信手段３１００は、アクセスフィルタ制御手段３３００を介してコアからのアクセス要求またはアクセス応答を受け取ると、ルータノード間でやり取りされるパケットに変換して外部に送信する。【００９０】
パケット受信手段３２００は、ルータノードから受け取るパケットをコアへのアクセス要求またはアクセス応答に変換してアダプタフィルタ制御手段３３００に渡す。ここで、パケット受信手段３２００において、複数のパケットを保持しておくバッファを内部に設けていてもよい。【００９１】
アダプタフィルタ制御手段３３００は、一方のコアから他方のコアへのアクセス要求に対して、当該アクセス要求の処理を行うか否かを判断する。当該アクセス要求を処理しない場合、送信元コアの場合を含むコア９９またはパケット受信手段３２００にその旨を通知し、当該アクセス要求を処理する場合、コア９９にアクセス要求を渡す。アクセス要求を受け付けるか否かの判断基準の情報は、コアを介して設定されてもよく、予め設定されていてもよい。【００９２】
本実施形態では、アクセス要求を受け付けるか否かの通常の判断だけではなく、当該アクセス要求の処理を一時停止するか否かの判断を行う機能をアダプタフィルタ制御手段３３００に設けている。これにより、アダプタフィルタ制御手段３３００は、アクセス要求の処理を行うか否かの判断について、セキュリティポリシーに対応した設定情報を予め格納している。そして、その設定情報に変更があるときには、アクセス要求の処理を一時停止し、設定情報を更新した後に、アクセス要求の処理を再開するようにしている。これにより、相互結合網全体にわたって一貫性のある更新設定処理が可能となる。【００９３】
次に、アダプタフィルタ制御手段３３００の構成を説明する。図１８はアダプタフィルタ制御手段３３００の一構成例を示すブロック図である。【００９４】
図１８を参照すると、アダプタフィルタ制御手段３３００は、自身に接続されたコアへの外部からのアクセス要求の処理を行うか否かの判断とその処理を一時停止するか否かの判断を行う受信フィルタ手段３３２０と、その判断のために利用する情報である受信フィルタデータ３３２１とを有する。受信フィルタデータ３３２１は図に示さない記憶手段に格納されている。【００９５】
受信フィルタ手段３３２０は、アクセス要求の処理を行うか否かの判断とアクセス要求の処理を一時停止するか否かの判断を行う。その結果、アクセス要求を処理しない場合、またはアクセス要求の処理を一時停止する場合には、パケット受信手段３２００にその旨を通知する。【００９６】
次に、受信フィルタデータ３３２１について説明する。図１９は受信フィルタデータ３３２１の一構成例を説明するための図である。ここでは、コアがメモリの場合で、受信フィルタデータ３３２１はそのメモリへのアクセス要求を送信元にどの範囲まで許可するかの情報を示す。図１９（ａ）はメモリマップを示し、図１９（ｂ）はそのメモリについての受信フィルタデータの一例を示す。【００９７】
図１９（ａ）のメモリマップに示すように、メモリ内は高セキュリティと低セキュリティの領域に分けられている。高セキュリティとなる高信頼領域はアドレスが0x  00000000〜0x  10000000の範囲であり、低セキュリティとなる低信頼領域はアドレスが0x  10000000〜0x  20000000の範囲である。ここに示すメモリ領域の区分けは一例である。【００９８】
図１９（ｂ）に示す受信フィルタデータ３３２１では、メモリへのアクセス要求の送信元になるルータノードの項目が表の一番左に設けられ、縦方向にルータノードの数だけ欄が設けられている。そして、それぞれのルータノードに対応して、ルータノードの識別子と、アクセス要求の受け付け可能なメモリ領域と、アクセス要求の種類を示す項目である「許可ビット」と、アクセス要求の処理を一時停止するか否かを示す「一時停止ビット」とを組とするエントリが設けられている。送信元、メモリ領域、およびアクセス要求の種類の情報は、処理されるための条件である配送情報に相当する。【００９９】
図１９（ｂ）を参照して、アクセス要求の送信元がルータノード＃０の場合で具体的に説明する。ルータノード＃０を送信元とするアクセス要求が許可されるメモリ領域は全体である。そして、許可ビットに「Ｒ」と「Ｗ」があることから、メモリ内の全ての領域に対して読み出しと書き込みの両方が許可されている。一時停止ビットが「Ｎｏ」であることから、ルータノード＃０からアクセス要求があったときに、その処理を一時停止する必要はない。【０１００】
続いて、アクセス要求の送信元がルータノード＃３の場合を説明する。ルータノード＃３を送信元とするアクセス要求の種類について、低信頼領域では読み出しと書き込みの両方が許可されているが、高信頼領域では読み出しのみが許可されている。これは、低信頼領域における許可ビットが「Ｒ」と「Ｗ」の両方であるのに対して、高信頼領域における許可ビットが「Ｒ」のみだからである。ただし、高信頼領域における一時停止ビットが「Ｙｅｓ」であることから、高信頼領域に対する読み出しのアクセス要求があったときには、その処理は一時停止の状態となる。【０１０１】
本発明では、受信フィルタデータ３３２１内の情報を更新する際にアクセス要求の処理を一時停止させることで、受信フィルタデータ３３２１内の情報の更新前後のアクセス要求の処理を明確に区別することができる。【０１０２】
なお、受信フィルタデータ３３２１の情報の更新は、高信頼領域内のコアで実行されるアプリケーションソフトで生成される新たなデータ、または、予め設定変更情報が記述されたファイルから読み出されるデータ等に書き換わることで行われる。受信フィルタデータ３３２１の更新方法の具体例については、後述する。この更新は、半導体集積回路とこれに付随するメモリの高信頼領域が不足したり、反対に高信頼領域が過剰になったりしたときなど、半導体集積回路全体の条件や状況に応じて、高信頼領域の範囲の変更が必要なときに行われる。【０１０３】
また、受信フィルタデータ３３２１は、図１９（ｂ）に示すような表形式の場合に限られない。受信フィルタ手段３３２０が読み出し可能で、読み出した情報にしたがってアクセス制御することができれば、その他の形式でもよい。さらに、図１９（ｂ）に示す表では、ルータノードに対応して、アクセス可能なメモリの領域、アクセス要求の種類などを設定しているが、ルータノードの代わりにコアであってもよい。【０１０４】
ここで、コアから見た受信フィルタデータの書き換えは、メモリマップ上では受信フィルタデータの領域を書き換えることになるが、受信フィルタデータ自身の専用の領域ではなく、高信頼領域やその他の信頼度の高いデータ（セキュリティにより保護されたデータ）の保存領域に組み込まれていてもよい。また、受信フィルタデータのみを対象とするメモリマップを別に設けてもよい。【０１０５】
次に、コアからのアクセス要求があったときのアダプタフィルタ制御手段３３００の動作を説明する。図２０は図１８に示したアダプタフィルタ制御手段３３００の動作の一例を説明するための図である。【０１０６】
ステップ１（Ｓ１）：アダプタフィルタ制御手段３３００は、コアからアクセス要求を受け取ると、当該アクセス要求をパケット送信手段３１００に渡す。【０１０７】
次に、アダプタフィルタ制御手段３３００がアクセス要求を受け付け、そのアクセスを許可する場合の動作を説明する。図２１は図１８に示したアダプタフィルタ制御手段３３００の動作の一例を説明するための図である。【０１０８】
ステップ１（Ｓ１）：受信フィルタ手段３３２０は、パケット受信手段３２００からアクセス要求を受け付ける。ステップ２（Ｓ２）：受信フィルタ手段３３２０は、受信フィルタデータ３３２１を読み出し、読み出した情報に基づいて当該アクセス要求を処理可能かどうか判断する。その結果、アクセス要求の処理の一時停止も必要なく、処理可能であることを認識する。ステップ３（Ｓ３）：受信フィルタ手段３３２０は、当該アクセス要求をコア９９へ渡す。【０１０９】
次に、アダプタフィルタ制御手段３３００がアクセス要求を受け付け、そのアクセス要求を拒否する場合の動作を説明する。図２２は図１８に示したアダプタフィルタ制御手段３３００の動作の一例を説明するための図である。【０１１０】
ステップ１（Ｓ１）：受信フィルタ手段３３２０は、パケット受信手段３２００からアクセス要求を受け付ける。ステップ２（Ｓ２）：受信フィルタ手段３３２０は、受信フィルタデータ３３２１を読み出し、読み出した情報に基づいて当該アクセス要求を処理可能かどうか判断する。その結果、アクセス要求を処理できないことを認識する。ステップ３（Ｓ３）：受信フィルタ手段３３２０は、当該アクセス要求を処理できない旨をパケット受信手段３２００に通知する。【０１１１】
次に、アダプタフィルタ制御手段３３００がアクセス要求を受け付け、アクセス要求の処理を一時停止する場合の動作を説明する。図２３は図１８に示したアダプタフィルタ制御手段３３００の動作の一例を説明するための図である。【０１１２】
ステップ１（Ｓ１）：受信フィルタ手段３３２０は、パケット受信手段３２００からアクセス要求を受け付ける。ステップ２（Ｓ２）：受信フィルタ手段３３２０は、受信フィルタデータ３３２１を読み出し、読み出した情報に基づいてアクセス要求を処理可能かどうか判断する。その結果、アクセス要求の処理を一時停止する必要があることを認識する。【０１１３】
ステップ３（Ｓ３）：受信フィルタ手段３３２０は、アクセス要求の処理を一時停止する必要がある旨をパケット受信手段３２００に通知する。【０１１４】
次に、アダプタフィルタ制御手段３３００が受信フィルタデータ３３２１を更新する場合の動作を説明する。図２４は図１８に示したアダプタフィルタ制御手段３３００の動作の一例を説明するための図である。受信フィルタデータ３３２１を更新するための新たなデータは、ルータノード２０００から入力される。新たなデータの入力方法の具体例については、後述する。【０１１５】
ステップ１（Ｓ１）：受信フィルタ手段３３２０は、受信フィルタデータ３３２１に新たなデータを書き込むためのアクセス要求をパケット受信手段３２００から受け付ける。ステップ２（Ｓ２）：受信フィルタ手段３３２０は、受信フィルタデータ３３２１を読み出し、読み出した情報に基づいてアクセス要求を処理可能かどうか判断する。受け付けたアクセス要求が受信フィルタデータの更新目的であることを認識すると、アクセス要求の処理の一時停止を行わず、当該アクセス要求を処理する。ステップ３（Ｓ３）：受信フィルタ制御手段３３２０が新たなデータを受信フィルタデータ３３２１に書き込む。このようにして、受信フィルタデータ３３２１が更新される。【０１１６】
次に、コアからアクセス要求があった場合のアダプタ３０００の内部の動作を説明する。図２５は図１７に示したアダプタ３０００の内部動作の一例を説明するための図である。【０１１７】
ステップ１（Ｓ１）：アダプタフィルタ制御手段３３００はコア９９から受け取るアクセス要求をそのままパケット送信手段３１００に渡す。ステップ２（Ｓ２）：パケット送信手段３１００は、当該アクセス要求をパケットに変換してルータノード２０００に送信する。【０１１８】
次に、ルータノードからパケットを受信し、受信したパケットによるアクセス要求を許可する場合のアダプタ３０００の内部の動作を説明する。図２６は図１７に示したアダプタ３０００の内部動作の一例を説明するための図である。【０１１９】
ステップ１（Ｓ１）：パケット受信手段３２００は、ルータノード２０００からのパケットを受信する。ステップ２（Ｓ２）：パケット受信手段３２００は、当該パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段３３００に渡す。ステップ３（Ｓ３）：アダプタフィルタ制御手段３３００は、当該アクセス要求を処理可能かどうか、アクセス要求の処理を一時停止する必要があるかどうかを判定し、処理可能で、かつ処理を一時停止する必要がないと判断すると、そのアクセス要求をコア９９に渡す。【０１２０】
次に、ルータノードからパケットを受信し、受信したパケットによるアクセス要求を拒否する場合のアダプタ３０００の内部の動作を説明する。図２７は図１７に示したアダプタ３０００の内部動作の一例を説明するための図である。【０１２１】
ステップ１（Ｓ１）：パケット受信手段３２００は、ルータノード２０００からのパケットを受信する。ステップ２（Ｓ２）：パケット受信手段３２００は、当該パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段３３００に渡す。ステップ３（Ｓ３）：アダプタフィルタ制御手段３３００は、当該アクセス要求を処理可能かどうか、アクセス要求の処理を一時停止する必要があるかどうかを判定し、このアクセス要求を拒否する必要があると判断すると、アクセス要求を拒否した旨の通知をパケット受信手段３２００に渡す。【０１２２】
ステップ４（Ｓ４）：パケット受信手段３２００は、当該アクセス要求が拒否された旨の通知を受け取ると、アクセス要求に対して拒否された旨を通知するためのパケットである応答パケットを生成し、応答パケットをパケット送信手段３１００に渡す。ステップ５（Ｓ５）：パケット送信手段３１００は、パケット受信手段３２００から応答パケットを受け取ると、コアからのアクセス要求よりも優先して応答パケットをルータノード２０００に渡す。なお、ここで、デッドロックしないことが保証されるのであれば、コアからのアクセス要求よりも応答パケットを優先しなくてもよい。【０１２３】
次に、ルータノードからパケットを受信し、受信したパケットによるアクセス要求の処理を一時停止する場合のアダプタ３０００の内部の動作を説明する。図２８は図１７に示したアダプタ３０００の内部動作の一例を説明するための図である。【０１２４】
ステップ１（Ｓ１）：パケット受信手段３２００は、ルータノード２０００からのパケットを受信する。ステップ２（Ｓ２）：パケット受信手段３２００は、当該パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段３３００に渡す。【０１２５】
ステップ３（Ｓ３）：アダプタフィルタ制御手段３３００は、当該アクセス要求を処理可能かどうか、アクセス要求の処理を一時停止する必要があるかどうかを判定し、このアクセス要求の処理を一時停止する必要があると判断すると、アクセス要求の処理を一時停止する旨の通知をパケット受信手段３２００に渡す。【０１２６】
ステップ４（Ｓ４）：パケット受信手段３２００は、当該アクセス要求の処理を一時停止する旨の通知を受け取ると、アクセス要求のパケットを保存する。そして、所定の周期毎にそのアクセス要求のパケットをアダプタフィルタ制御手段３３００に再送する（ステップ３へ）。ここでは、保存したパケットが所定の周期毎にアダプタフィルタ制御手段３３００に再送される間に、そのパケットによるアクセス要求がアダプタフィルタ制御手段３３００に処理されるように受信フィルタデータ３３２１が更新されることを仮定している。【０１２７】
次に、ルータノードからパケットを受信し、受信したパケットによるアクセス要求の処理を一時停止する場合のアダプタ３０００の内部の別の動作を説明する。図２９は図１７に示したアダプタ３０００の内部動作の一例を説明するための図である。【０１２８】
ステップ１（Ｓ１）：パケット受信手段３２００は、ルータノード２０００からのパケットを受信する。ステップ２（Ｓ２）：パケット受信手段３２００は、当該パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段３３００に渡す。【０１２９】
ステップ３（Ｓ３）：アダプタフィルタ制御手段３３００は、当該アクセス要求を処理可能かどうか、アクセス要求の処理を一時停止する必要があるかどうかを判定し、このアクセス要求の処理を一時停止する必要があると判断すると、アクセス要求の処理を一時停止した旨の通知をパケット受信手段３２００に渡す。【０１３０】
ステップ４（Ｓ４）：パケット受信手段３２００は、当該アクセス要求の処理を一時停止する旨の通知を受け取ると、そのアクセス要求の情報を含む、自分宛のパケットである再送パケットを生成してパケット送信手段３１００に渡す。ここでは、再送パケットが相互結合網内のルータノード間を伝送して再び自分のところに送られてくる間に、そのパケットによるアクセス要求がアダプタフィルタ制御手段３３００に処理されるように受信フィルタデータ３３２１が更新されることを仮定している。【０１３１】
ステップ５（Ｓ５）：パケット送信手段３１００は、パケット受信手段３２００から渡された再送パケットを、コアからのアクセス要求よりも優先してルータノード２０００に渡す。なお、ここで、デッドロックしないことが保証されるのであれば、コアからのアクセス要求よりも再送パケットを優先しなくてもよい。【０１３２】
図２８及び図２９はいずれもアダプタ３０００がアクセス要求の処理を一時停止する動作についてのものであるが、パケットを一時保存するメモリが充分にある場合には図２８で説明した方法を実行し、メモリが充分にない場合には図２９で説明した方法を実行すればよい。【０１３３】
次に、ルータノードからパケットを受信し、受信したパケットのデータにより受信フィルタデータ３３２１を更新する場合のアダプタ３０００の内部の動作を説明する。図３０は図１７に示したアダプタ３０００の内部動作の一例を説明するための図である。【０１３４】
ステップ１（Ｓ１）：パケット受信手段３２００は、受信フィルタデータの新たなデータを含むパケットである更新用パケットをルータノード２０００から受信する。【０１３５】
ステップ２（Ｓ２）：パケット受信手段３２００は、受信した更新用パケットを受信フィルタデータ３３２１に対する書き込みのアクセス要求に変換してアダプタフィルタ制御手段３３００に渡す。アダプタフィルタ制御手段３３００は、当該アクセス要求を処理可能であると判断し、当該アクセス要求に伴って受信したデータを受信フィルタデータ３３２１に書き込む。これにより、受信フィルタデータ３３２１が更新される。なお、この更新が処理されない場合は、アクセス要求を処理しないというエラーが起こったときの通常のエラー処理と同様であるため、ここでは詳細な説明を省略する。【０１３６】
次に、ルータノードから受信したパケットによるアクセス要求の処理を一時停止してそのパケットを一旦保存した後、受信フィルタデータ３３２１の更新により、処理の一時停止の対象だったアクセス要求を処理可能とする場合のアダプタ３０００の内部の動作を説明する。これは、図２８と図３０のそれぞれで説明した動作の組み合わせとなる。図３１は図１７に示したアダプタ３０００の内部動作の一例を説明するための図である。【０１３７】
ステップ１（Ｓ１）：パケット受信手段３２００は、ルータノード２０００からのパケットを受信する。ステップ２（Ｓ２）：パケット受信手段３２００は、当該パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段３３００に渡す。【０１３８】
ステップ３（Ｓ３）：アダプタフィルタ制御手段３３００は、当該アクセス要求を処理可能かどうか、アクセス要求の処理を一時停止する必要があるかどうかを判定する。そして、このアクセス要求の処理を一時停止する必要があると判断すると、アクセス要求の処理を一時停止する旨の通知をパケット受信手段３２００に渡す。ここで、パケット受信手段３２００は、当該アクセス要求の処理を一時停止する旨の通知を受け取ると、パケットを保存する。【０１３９】
ステップ４（Ｓ４）：パケット受信手段３２００は、受信フィルタデータの更新のためのデータを含む更新用パケットをルータノード２０００から受信する。【０１４０】
ステップ５（Ｓ５）：パケット受信手段３２００は、受信した更新用パケットを受信フィルタデータ３３２１に対する書き込みのアクセス要求に変換してアダプタフィルタ制御手段３３００に渡す。アダプタフィルタ制御手段３３００は、当該アクセス要求を処理可能であると判断し、当該アクセス要求に伴って受信したデータを受信フィルタデータ３３２１に書き込む。これにより、受信フィルタデータ３３２１が更新される。このとき、ステップ３での受信フィルタデータ３３２１でのエントリにおいて、アクセス要求の処理の一時停止が解除される。そのため、アダプタフィルタ制御手段３３００は、パケット受信手段３２００に保存されたパケットによるアクセス要求の処理が可能となる。【０１４１】
ステップ６（Ｓ６）：パケット受信手段３２００は、保存していたパケットを再度アダプタフィルタ制御手段３３００に渡す。ステップ７（Ｓ７）：アダプタフィルタ制御手段３３００は、パケット受信手段３２００から受け取るパケットによるアクセス要求が、ステップ３のときとは異なり処理可能であるため、そのアクセス要求をコア９９へと渡す。【０１４２】
次に、ルータノードから受信したパケットによるアクセス要求の処理を一時停止し、そのパケットを自分宛にして一旦外部に送出した後、受信フィルタデータ３３２１の更新により、処理の一時停止の対象だったアクセス要求を処理可能とする場合のアダプタ３０００の内部の動作を説明する。これは、図２９と図３０のそれぞれで説明した動作の組み合わせとなる。図３２は図１７に示したアダプタ３０００の内部動作の一例を説明するための図である。【０１４３】
ステップ１（Ｓ１）：パケット受信手段３２００は、ルータノード２０００からのパケットを受信する。ステップ２（Ｓ２）：パケット受信手段３２００は、当該パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段３３００に渡す。【０１４４】
ステップ３（Ｓ３）：アダプタフィルタ制御手段３３００は、当該アクセス要求を処理可能かどうか、アクセス要求の処理を一時停止する必要があるかどうかを判定する。そして、このアクセス要求の処理を一時停止する必要があると判断すると、アクセス要求の処理を一時停止する旨の通知をパケット受信手段３２００に渡す。【０１４５】
ステップ４（Ｓ４）：パケット受信手段３２００は、当該アクセス要求の処理を一時停止する旨の通知を受け取ると、そのアクセス要求の情報を含む、自分宛の再送パケットを生成してパケット送信手段３１００に渡す。【０１４６】
ステップ５（Ｓ５）：パケット送信手段３１００は、パケット受信手段３２００から渡された再送パケットを、コアからのアクセス要求よりも優先してルータノード２０００に渡す。なお、ここで、デッドロックしないことが保証されるのであれば、コアからのアクセス要求よりも再送パケットを優先しなくてもよい。【０１４７】
ステップ６（Ｓ６）：パケット受信手段３２００は、受信フィルタデータの更新のためのデータを含む更新用パケットをルータノード２０００から受信する。【０１４８】
ステップ７（Ｓ７）：パケット受信手段３２００は、受信した更新用パケットを受信フィルタデータ３３２１に対する書き込みのアクセス要求に変換してアダプタフィルタ制御手段３３００に渡す。アダプタフィルタ制御手段３３００は、当該アクセス要求を処理可能であると判断し、当該アクセス要求に伴って受信したデータを受信フィルタデータ３３２１に書き込む。これにより、受信フィルタデータ３３２１が更新される。このとき、ステップ３での受信フィルタデータ３３２１でのエントリにおいて、アクセス要求の処理の一時停止が解除される。そのため、アダプタフィルタ制御手段３３００は、一旦外部に送出された再送パケットによるアクセス要求の処理が可能となる。【０１４９】
ステップ８（Ｓ８）：パケット受信手段３２００は、ルータノード２０００から再送パケットを受信する。ステップ９（Ｓ９）：パケット受信手段３２００は、当該再送パケットを接続先のコアに対するアクセス要求に変換してアダプタフィルタ制御手段３３００に渡す。ステップ１０（Ｓ１０）：アダプタフィルタ制御手段３３００は、当該アクセス要求を処理可能か否か判定し、ステップ３とは異なり処理可能であると判断すると、そのアクセス要求をコア９９に渡す。【０１５０】
ここまでは、コア、アダプタ及びルータノードからなる組に注目して各構成を詳しく説明したが、次に、その組が複数接続された場合について説明する。【０１５１】
図３３は相互結合網に接続された複数コアを有する半導体集積回路の一構成例を示すブロック図である。【０１５２】
図３３を参照すると、半導体集積回路は、１６個のコア９９Ｐ００〜９９Ｐ３３と、コア間を接続する相互結合網とを有する。相互結合網には、１６個のルータノード２０００Ｐ００〜２０００Ｐ３３と、１６個のアダプタ３０００Ｐ００〜３０００Ｐ３３とが設けられている。ここで、ｉ及びｊのそれぞれを０から３の任意の整数とすると、コア９９Ｐｉｊはアダプタ３０００Ｐｉｊと接続され、アダプタ３０００Ｐｉｊはルータノード２０００Ｐｉｊと接続されている。【０１５３】
ルータノード２０００Ｐｉｊは入出力用に４チャネル備えている。ルータノード２０００Ｐ００〜２０００Ｐ３３のチャネル同士を接続することで、図３３に示すように、全体としてメッシュ構造の相互結合網が形成されている。【０１５４】
なお、相互結合網の最外周に位置するルータノード同士の接続は２チャネルまたは３チャネルとなる。また、ここでは結合網がメッシュ構造であるが、結合網の構成はメッシュに限らず、メッシュ以外の一般的な相互結合網であってもよい。【０１５５】
また、図３３に示す相互結合網では、各ルータノードにアダプタ及びコアが１つずつ接続されているが、図４に示したように、相互結合網内のルータノードの一部がパケットの配送だけを行うものであってもよい。【０１５６】
さらに、本実施形態では、４つのコア９９Ｐ００、９９Ｐ０１、９９Ｐ１０、９９Ｐ１１は信頼度の高いコア群に属するものとして定められ、４つのコア９９Ｐ２０、９９Ｐ３０、９９Ｐ２１、９９Ｐ３１は信頼度の低いコア群に属するものとして定められている。この信頼度は、システム側で定めてもよいし、特許文献１に記載されているようにダウンロードするネイティブコードの証明書の信頼度で定めてもよい。それ以外の８つのコア９９Ｐ０２、９９Ｐ０３、９９Ｐ１２、９９Ｐ１３、９９Ｐ２２、９９Ｐ２３、９９Ｐ３２、９９Ｐ３３については信頼度が規定されていない。【０１５７】
上記コア間のアクセス要求の許可についてのルールを説明する。信頼度の高いコアである高信頼度なコアから信頼度の低いコアである低信頼度なコアへのアクセス要求は許可されている。反対に、低信頼度なコアから高信頼度なコアへのアクセス要求は許可されていない。また、高信頼度なコアから信頼度が規定されていないコアへのアクセス要求は許可されている。一方、低信頼度のコアから信頼度が規定されていないコアへのアクセス要求は、許可されている場合と許可されていない場合があり、予め定められている。そして、これらの設定情報の初期の状態が、予め受信フィルタデータ３３２１に記述されている。【０１５８】
次に、コア９９Ｐ１１からコア９９Ｐ３２にアクセス要求を行う場合の動作を説明する。この場合、高信頼度はコアから信頼度が規定されていないコアへのアクセス要求が行われるので、このアクセス要求は許可される。図３４は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０１５９】
ステップ１（Ｓ１）：コア９９Ｐ１１がアダプタ３０００Ｐ１１にアクセス要求を渡すと、アダプタ３０００Ｐ１１は、アクセス要求をパケットに変換し、コア９９Ｐ３２を宛先としたパケットをルータノード２０００Ｐ１１へ送信する。ルータノード２０００Ｐ１１は、アダプタ３０００Ｐ１１から受け取ったパケットを隣接するルータノード２０００Ｐ１２に送出する。ルータノード２０００Ｐ１１から送出されたパケットは、ルータノード２０００Ｐ１２、２０００Ｐ１３、２０００Ｐ２３及び２０００Ｐ２２を含む中間ルータノード群を介してルータノード２０００Ｐ３２に到着する。そして、ルータノード２０００Ｐ３２は、受け取ったパケットをアダプタ３０００Ｐ３２に渡し、アダプタ３０００Ｐ３２は当該パケットをコア対応のアクセス要求に変換してコア９９Ｐ３２に渡す。【０１６０】
次に、コア９９Ｐ１１からコア９９Ｐ２２にアクセス要求を行う場合の動作を説明する。この場合、高信頼度なコアから信頼度が規定されていないコアへのアクセス要求が行われるので、このアクセス要求は許可される。図３５は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０１６１】
ステップ１（Ｓ１）：コア９９Ｐ１１がアダプタ３０００Ｐ１１にアクセス要求を渡すと、アダプタ３０００Ｐ１１は、アクセス要求をパケットに変換し、コア９９Ｐ２２を宛先としたパケットをルータノード２０００Ｐ１１へ送信する。ルータノード２０００Ｐ１１は、アダプタ３０００Ｐ１１から受け取ったパケットを隣接するルータノード２０００Ｐ１２に送出する。ルータノード２０００Ｐ１１から送出されたパケットは、中継となるルータノード２０００Ｐ１２を介してルータノード２０００Ｐ２２に到着する。そして、ルータノード２０００Ｐ２２は、受け取ったパケットをアダプタ３０００Ｐ２２に渡し、アダプタ３０００Ｐ２２は当該パケットをコア対応のアクセス要求に変換してコア９９Ｐ２２に渡す。【０１６２】
次に、コア９９Ｐ３０からコア９９Ｐ２２にアクセス要求を行う場合の動作を説明する。この場合、低信頼度なコアから信頼度が規定されていないコアへのアクセス要求が行われるが、このアクセス要求は許可されているものとする。図３６は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０１６３】
ステップ１（Ｓ１）：コア９９Ｐ３０がアダプタ３０００Ｐ３０にアクセス要求を渡すと、アダプタ３０００Ｐ３０は、アクセス要求をパケットに変換し、コア９９Ｐ２２を宛先としたパケットをルータノード２０００Ｐ３０へ送信する。ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０から受け取ったパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３０から送出されたパケットは、ルータノード２０００Ｐ３１、２０００Ｐ３２を含む中間ルータノード群を介してルータノード２０００Ｐ２２に到着する。そして、ルータノード２０００Ｐ２２は、受け取ったパケットをアダプタ３０００Ｐ２２に渡し、アダプタ３０００Ｐ２２は当該パケットをコア対応のアクセス要求に変換してコア９９Ｐ２２に渡す。【０１６４】
次に、コア９９Ｐ３０からコア９９Ｐ３２にアクセス要求を行う場合の動作を説明する。この場合、低信頼度なコアから信頼度が規定されていないコアへのアクセス要求が行われるが、このアクセス要求は許可されていないものとする。図３７は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０１６５】
ステップ１（Ｓ１）：コア９９Ｐ３０がアダプタ３０００Ｐ３０にアクセス要求を渡すと、アダプタ３０００Ｐ３０は、アクセス要求をパケットに変換し、コア９９Ｐ３２を宛先としたパケットをルータノード２０００Ｐ３０へ送信する。ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０から受け取ったパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３０から送出されたパケットは、中継となるルータノード２０００Ｐ３１を介してルータノード２０００Ｐ３２に到着する。そして、ルータノード２０００Ｐ３２は、受け取ったパケットをアダプタ３０００Ｐ３２に渡し、アダプタ３０００Ｐ３２は当該パケットをコア対応のアクセス要求に変換する。【０１６６】
しかしながら、当該アクセス要求が許可されていないことから、アダプタ３０００Ｐ３２は、アクセス要求が許可されずにエラーを起こしたことをコア９９Ｐ３０に対して通知するためのパケットであるエラーパケットを生成する。続いて、エラーパケットをルータノード２０００Ｐ３２に送信する。ルータノード２０００Ｐ３２は受け取ったエラーパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３２から送出されたエラーパケットは、中継となるルータノード２０００Ｐ３１を介してルータノード２０００Ｐ３０に到着する。その後、ルータノード２０００Ｐ３０はアダプタ３０００Ｐ３０にエラーパケットを渡し、アダプタ３０００Ｐ３０は当該エラーパケットをコアに対してアクセス要求がエラーを起こしたことを通知するための情報であるアクセスエラー応答に変換してコア９９Ｐ３０に渡す。なお、エラーパケットがアクセス要求のパケットが配送された経路を逆方向に配送される場合で説明したが、この経路とは異なる経路で配送されてもよい。【０１６７】
次に、高信頼度なコア９９Ｐ００が、低信頼度なコア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求を禁止するが、コア９９Ｐ３２へのアクセス要求を許可するため、アダプタ３０００Ｐ２２及び３０００Ｐ３２におけるアクセス要求の処理を一時停止にする場合の動作を説明する。コア９９Ｐ２２とコア９９Ｐ３２は信頼度が規定されていないコアである。図３８は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０１６８】
ステップ１（Ｓ１）：コア９９Ｐ００が、アダプタ３０００Ｐ２２におけるアクセス要求の処理を一時停止する旨を受信フィルタデータ３３２１に書き込むことを指示するための一時停止要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、アクセス要求の処理を一時停止する旨を受信フィルタデータ３３２１に書き込むことを指示するための一時停止パケットをアダプタ３０００Ｐ２２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ２１を介してルータノード２０００Ｐ２２に到着する。【０１６９】
そして、ルータノード２０００Ｐ２２は、複数のルータノードを介して受け取った一時停止パケットをアダプタ３０００Ｐ２２に渡す。アダプタ３０００Ｐ２２は、当該一時停止パケットがアクセス要求の処理の一時停止を指示するものであることを認識すると、受信フィルタデータ３３２１においてアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Ｙｅｓ」にし、アクセス要求の処理を一時停止状態に変更する。【０１７０】
ステップ２（Ｓ２）：コア９９Ｐ００が、アダプタ３０００Ｐ３２におけるアクセス要求の処理を一時停止する旨を受信フィルタデータ３３２１に書き込むことを指示するための一時停止要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、一時停止パケットをアダプタ３０００Ｐ３２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ３０、２０００Ｐ３１を介してルータノード２０００Ｐ３２に到着する。【０１７１】
そして、ルータノード２０００Ｐ３２は、複数のルータノードを介して受け取った一時停止パケットをアダプタ３０００Ｐ３２に渡す。アダプタ３０００Ｐ３２は、当該一時停止パケットがアクセス要求の処理の一時停止を指示するものであることを認識すると、受信フィルタデータ３３２１においてアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Ｙｅｓ」にし、アクセス要求の処理を一時停止状態に変更する。【０１７２】
次に、高信頼度なコア９９Ｐ００が、低信頼度なコア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求を禁止するが、コア９９Ｐ３２へのアクセス要求を許可するため、アクセス要求の処理の一時停止状態にあるアダプタ３０００Ｐ２２及び３０００Ｐ３２の受信フィルタデータを更新する場合の動作を説明する。図３９は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０１７３】
ステップ１（Ｓ１）：コア９９Ｐ００が、アダプタ３０００Ｐ２２におけるコア９９Ｐ３０からのアクセス要求の処理を禁止する旨の受信フィルタデータに更新するための受信フィルタデータ更新要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ３０からのアクセス要求の処理を禁止する旨の情報を含む更新用パケットをアダプタ３０００Ｐ２２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新用パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ２１を介してルータノード２０００Ｐ２２に到着する。【０１７４】
そして、ルータノード２０００Ｐ２２は、複数のルータノードを介して受け取った更新用パケットをアダプタ３０００Ｐ２２に渡す。アダプタ３０００Ｐ２２は、当該更新用パケットがコア９９Ｐ３０からのアクセス要求の処理を禁止するものであることを認識すると、受信フィルタデータ３３２１において、一時停止ビットを「Ｙｅｓ」に保ったまま、コア９９Ｐ３０にアダプタ３０００Ｐ３０を介して接続されるルータノード２０００Ｐ３０についての許可ビットに「Ｒ」と「Ｗ」のいずれも記入しないビットに設定し、コア９９Ｐ３０からのアクセス要求の処理を禁止した状態へと変更する。【０１７５】
ステップ２（Ｓ２）：コア９９Ｐ００が、アダプタ３０００Ｐ３２におけるコア９９Ｐ３０からのアクセス要求の処理を許可する旨の受信フィルタデータに更新するための受信フィルタデータ更新要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ３０からのアクセス要求の処理を許可する旨の情報を含む更新用パケットをアダプタ３０００Ｐ３２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新用パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ３０、２０００Ｐ３１を介してルータノード２０００Ｐ３２に到着する。【０１７６】
そして、ルータノード２０００Ｐ３２は、複数のルータノードを介して受け取った更新用パケットをアダプタ３０００Ｐ３２に渡す。アダプタ３０００Ｐ３２は、当該更新用パケットがコア９９Ｐ３０からのアクセス要求の処理を許可するものであることを認識すると、受信フィルタデータ３３２１において、一時停止ビットを「Ｙｅｓ」に保ったまま、コア９９Ｐ３０にアダプタ３０００Ｐ３０を介して接続されるルータノード２０００Ｐ３０についての許可ビットに「Ｒ」と「Ｗ」を設定し、コア９９Ｐ３０からのアクセス要求の処理を許可した状態へと変更する。【０１７７】
次に、高信頼度なコア９９Ｐ００が、低信頼度なコア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求を禁止するが、コア９９Ｐ３２へのアクセス要求を許可するための受信フィルタデータ更新後に、アダプタ３０００Ｐ２２及び３０００Ｐ３２に対してアクセス要求の一時停止状態を解除する場合の動作を説明する。図４０は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０１７８】
ステップ１（Ｓ１）：コア９９Ｐ００が、アダプタ３０００Ｐ２２におけるアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ３３２１に書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、アクセス要求の処理の一時停止を解除する旨を受信フィルタデータ３３２１に書き込むことを指示するための一時停止解除パケットをアダプタ３０００Ｐ２２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ２１を介してルータノード２０００Ｐ２２に到着する。【０１７９】
そして、ルータノード２０００Ｐ２２は、複数のルータノードを介して受け取った一時停止解除パケットをアダプタ３０００Ｐ２２に渡す。アダプタ３０００Ｐ２２は、当該一時停止解除パケットがアクセス要求の処理の一時停止の解除を指示するものであることを認識すると、受信フィルタデータ３３２１においてアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Ｎｏ」にし、アクセス要求の処理の一時停止状態を解除する。この場合、アダプタ３０００Ｐ２２は、コア９９Ｐ００からのアクセス要求の処理を禁止した状態を維持する。【０１８０】
ステップ２（Ｓ２）：コア９９Ｐ００が、アダプタ３０００Ｐ３２におけるアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ３３２１に書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、一時停止解除パケットをアダプタ３０００Ｐ３２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ３０、２０００Ｐ３１を介してルータノード２０００Ｐ３２に到着する。【０１８１】
そして、ルータノード２０００Ｐ３２は、複数のルータノードを介して受け取った一時停止解除パケットをアダプタ３０００Ｐ３２に渡す。アダプタ３０００Ｐ３２は、当該一時停止解除パケットがアクセス要求の処理の一時停止の解除を指示するものであることを認識すると、受信フィルタデータ３３２１においてアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Ｎｏ」にし、アクセス要求の処理の一時停止状態を解除する。この場合、アダプタ３０００Ｐ３２は、コア９９Ｐ００からのアクセス要求の処理を許可した状態を維持する。【０１８２】
次に、図３８、図３９及び図４０で説明したように受信フィルタデータの設定変更が行われた後に、コア９９Ｐ１１がコア９９Ｐ３２にアクセス要求をする場合の動作を説明する。上述したように受信フィルタデータの設定変更が行われたが、コア９９Ｐ１１は高信頼度なコアであるため、信頼度の規定されていないコア９９Ｐ３２へのコア９９Ｐ１１からのアクセス要求は許可されている。図４１は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０１８３】
ステップ１（Ｓ１）：コア９９Ｐ１１がアダプタ３０００Ｐ１１にアクセス要求を渡すと、アダプタ３０００Ｐ１１は、アクセス要求をパケットに変換し、コア９９Ｐ３２を宛先としたパケットをルータノード２０００Ｐ１１へ送信する。ルータノード２０００Ｐ１１は、アダプタ３０００Ｐ１１から受け取ったパケットを隣接するルータノード２０００Ｐ１２に送出する。ルータノード２０００Ｐ１１から送出されたパケットは、ルータノード２０００Ｐ１２、２０００Ｐ１３、２０００Ｐ２３及び２０００Ｐ２２を含む中間ルータノード群を介してルータノード２０００Ｐ３２に到着する。そして、ルータノード２０００Ｐ３２は、受け取ったパケットをアダプタ３０００Ｐ３２に渡し、アダプタ３０００Ｐ３２は当該パケットをコア対応のアクセス要求に変換してコア９９Ｐ３２に渡す。【０１８４】
次に、図３８、図３９及び図４０で説明したように受信フィルタデータの設定変更が行われた後に、コア９９Ｐ１１がコア９９Ｐ２２にアクセス要求をする場合の動作を説明する。上述したように受信フィルタデータの設定変更が行われたが、コア９９Ｐ１１は高信頼度なコアであるため、信頼度の規定されていないコア９９Ｐ２２へのコア９９Ｐ１１からのアクセス要求は許可されている。図４２は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０１８５】
ステップ１（Ｓ１）：コア９９Ｐ１１がアダプタ３０００Ｐ１１にアクセス要求を渡すと、アダプタ３０００Ｐ１１は、アクセス要求をパケットに変換し、コア９９Ｐ２２を宛先としたパケットをルータノード２０００Ｐ１１へ送信する。ルータノード２０００Ｐ１１は、アダプタ３０００Ｐ１１から受け取ったパケットを隣接するルータノード２０００Ｐ１２に送出する。ルータノード２０００Ｐ１１から送出されたパケットは、中継となるルータノード２０００Ｐ１２を介してルータノード２０００Ｐ２２に到着する。そして、ルータノード２０００Ｐ２２は、受け取ったパケットをアダプタ３０００Ｐ２２に渡し、アダプタ３０００Ｐ２２は当該パケットをコア対応のアクセス要求に変換してコア９９Ｐ２２に渡す。【０１８６】
次に、図３８、図３９及び図４０で説明したように受信フィルタデータの設定変更が行われた後に、コア９９Ｐ３０がコア９９Ｐ２２にアクセス要求をする場合の動作を説明する。上述したように受信フィルタデータの設定変更が行われたため、図３６で説明した場合とは異なり、低信頼度のコア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求は許可されていない。図４３は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０１８７】
ステップ１（Ｓ１）：コア９９Ｐ３０がアダプタ３０００Ｐ３０にアクセス要求を渡すと、アダプタ３０００Ｐ３０は、アクセス要求をパケットに変換し、コア９９Ｐ２２を宛先としたパケットをルータノード２０００Ｐ３０へ送信する。ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０から受け取ったパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３０から送出されたパケットは、ルータノード２０００Ｐ３１、２０００Ｐ３２を含む中間ルータノード群を介してルータノード２０００Ｐ２２に到着する。そして、ルータノード２０００Ｐ２２は、受け取ったパケットをアダプタ３０００Ｐ２２に渡し、アダプタ３０００Ｐ２２は当該パケットをコア対応のアクセス要求に変換する。【０１８８】
しかしながら、当該アクセス要求が許可されていないことから、アダプタ３０００Ｐ２２は、アクセス要求が許可されずにエラーを起こしたことをコア９９Ｐ３０に対して通知するためのパケットであるエラーパケットを生成する。続いて、エラーパケットをルータノード２０００Ｐ２２に送信する。ルータノード２０００Ｐ２２は受け取ったエラーパケットを隣接するルータノード２０００Ｐ３２に送出する。ルータノード２０００Ｐ２２から送出されたエラーパケットは、ルータノード２０００Ｐ３２、２０００Ｐ３１を含む中間ルータノード群を介してルータノード２０００Ｐ３０に到着する。その後、ルータノード２０００Ｐ３０はアダプタ３０００Ｐ３０にエラーパケットを渡し、アダプタ３０００Ｐ３０は当該エラーパケットをコアに対してアクセス要求がエラーを起こしたことを通知するための情報であるアクセスエラー応答に変換してコア９９Ｐ３０に渡す。なお、エラーパケットがアクセス要求のパケットが配送された経路を逆方向に配送される場合で説明したが、この経路とは異なる経路で配送されてもよい。【０１８９】
次に、図３８、図３９及び図４０で説明したように受信フィルタデータの設定変更が行われた後に、コア９９Ｐ３０がコア９９Ｐ３２にアクセス要求をする場合の動作を説明する。上述したように受信フィルタデータの設定変更が行われたため、図３７で説明した場合とは異なり、コア９９Ｐ３０が低信頼度のコアであっても、コア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求が許可されている。図４４は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０１９０】
ステップ１（Ｓ１）：コア９９Ｐ３０がアダプタ３０００Ｐ３０にアクセス要求を渡すと、アダプタ３０００Ｐ３０は、アクセス要求をパケットに変換し、コア９９Ｐ３２を宛先としたパケットをルータノード２０００Ｐ３０へ送信する。ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０から受け取ったパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３０から送出されたパケットは、中継となるルータノード２０００Ｐ３１を介してルータノード２０００Ｐ３２に到着する。そして、ルータノード２０００Ｐ３２は、受け取ったパケットをアダプタ３０００Ｐ３２に渡し、アダプタ３０００Ｐ３２は当該パケットをコア対応のアクセス要求に変換してコア９９Ｐ３２に渡す。【０１９１】
次に、１つのアダプタにおける受信フィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、受信フィルタデータを更新することで、所定のコアからのアクセス要求をそのアダプタに処理させる場合の動作を説明する。ここでは、低信頼度なコア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求の処理が一時停止の状態にあり、その後、高信頼度なコア９９Ｐ００がコア９９Ｐ３０からのアクセス要求をコア９９Ｐ２２で処理可能に設定し、続いて、アクセス要求の処理の一時停止を解除するものである。図４５は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０１９２】
ステップ１（Ｓ１）：コア９９Ｐ３０がアダプタ３０００Ｐ３０にアクセス要求を渡すと、アダプタ３０００Ｐ３０は、アクセス要求をパケットに変換し、コア９９Ｐ２２を宛先としたパケットをルータノード２０００Ｐ３０へ送信する。ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０から受け取ったパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３０から送出されたパケットは、ルータノード２０００Ｐ３１、２０００Ｐ３２を含む中間ルータノード群を介してルータノード２０００Ｐ２２に到着する。そして、ルータノード２０００Ｐ２２は、受け取ったパケットをアダプタ３０００Ｐ２２に渡し、アダプタ３０００Ｐ２２は当該パケットをコア対応のアクセス要求に変換する。続いて、アダプタ３０００Ｐ２２は、受信フィルタデータ３３２１を参照し、アクセス要求を処理するか否かを示す一時停止ビットが「Ｙｅｓ」であることを認識すると、そのパケットを保存する。【０１９３】
ステップ２（Ｓ２）：コア９９Ｐ００が、アダプタ３０００Ｐ２２におけるコア９９Ｐ３０からのアクセス要求の処理を許可する旨の受信フィルタデータに更新するための受信フィルタデータ更新要求と、アダプタ３０００Ｐ２２におけるアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ３３２１に書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡す。アダプタ３０００Ｐ００は、コア９９Ｐ００から受信フィルタデータ更新要求と一時停止解除要求を受け取ると、コア９９Ｐ３０からのアクセス要求の処理を許可する旨の情報とアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ３３２１に書き込むことを指示するための更新・一時停止解除パケットをアダプタ３０００Ｐ２２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新・一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ２１を介してルータノード２０００Ｐ２２に到着する。【０１９４】
そして、ルータノード２０００Ｐ２２は、複数のルータノードを介して受け取った更新・一時停止解除パケットをアダプタ３０００Ｐ２２に渡す。アダプタ３０００Ｐ２２は、当該更新・一時停止解除パケットがアダプタ３０００Ｐ２２におけるコア９９Ｐ３０からのアクセス要求の処理を許可する旨と、アクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、受信フィルタデータ３３２１において、コア９９Ｐ３０にアダプタ３０００Ｐ３０を介して接続されるルータノード２０００Ｐ３０についての許可ビットに「Ｒ」と「Ｗ」を設定し、コア９９Ｐ３０からのアクセス要求の処理を許可した状態へと変更する。また、受信フィルタデータ３３２１において一時停止ビットを「Ｎｏ」にし、アクセス要求の処理の一時停止状態を解除する。【０１９５】
ステップ３（Ｓ３）：アダプタ３０００Ｐ２２は、受信フィルタデータ３３２１を参照し、コア９９Ｐ３０からのアクセス要求の処理が許可されていることと、アクセス要求の処理の一時停止が解除されていることを認識すると、ステップ１で保存したパケットをコア対応のアクセス要求に変換してコア９９Ｐ２２に渡す。【０１９６】
次に、１つのアダプタにおける受信フィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、受信フィルタデータを更新することで、所定のコアからのアクセス要求の処理をそのアダプタに許可させない場合の動作を説明する。ここでは、低信頼度なコア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求の処理が一時停止の状態にあり、その後、高信頼度なコア９９Ｐ００がコア９９Ｐ３０からのアクセス要求をコア９９Ｐ２２で処理禁止に設定し、続いて、アクセス要求の処理の一時停止を解除するものである。図４６は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０１９７】
ステップ１（Ｓ１）：コア９９Ｐ３０がアダプタ３０００Ｐ３０にアクセス要求を渡すと、アダプタ３０００Ｐ３０は、アクセス要求をパケットに変換し、コア９９Ｐ２２を宛先としたパケットをルータノード２０００Ｐ３０へ送信する。ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０から受け取ったパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３０から送出されたパケットは、ルータノード２０００Ｐ３１、２０００Ｐ３２を含む中間ルータノード群を介してルータノード２０００Ｐ２２に到着する。そして、ルータノード２０００Ｐ２２は、受け取ったパケットをアダプタ３０００Ｐ２２に渡し、アダプタ３０００Ｐ２２は当該パケットをコア対応のアクセス要求に変換する。続いて、アダプタ３０００Ｐ２２は、受信フィルタデータ３３２１を参照し、アクセス要求を処理するか否かを示す一時停止ビットが「Ｙｅｓ」であることを認識すると、そのパケットを保存する。【０１９８】
ステップ２（Ｓ２）：コア９９Ｐ００が、アダプタ３０００Ｐ２２におけるコア９９Ｐ３０からのアクセス要求の処理を禁止する旨の受信フィルタデータに更新するための受信フィルタデータ更新要求と、アダプタ３０００Ｐ２２におけるアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ３３２１に書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡す。アダプタ３０００Ｐ００は、コア９９Ｐ００から受信フィルタデータ更新要求と一時停止解除要求を受け取ると、コア９９Ｐ３０からのアクセス要求の処理を禁止する旨の情報とアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ３３２１に書き込むことを指示するための更新・一時停止解除パケットをアダプタ３０００Ｐ２２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新・一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ２１を介してルータノード２０００Ｐ２２に到着する。【０１９９】
そして、ルータノード２０００Ｐ２２は、複数のルータノードを介して受け取った更新・一時停止解除パケットをアダプタ３０００Ｐ２２に渡す。アダプタ３０００Ｐ２２は、当該更新・一時停止解除パケットがアダプタ３０００Ｐ２２におけるコア９９Ｐ３０からのアクセス要求の処理を禁止する旨と、アクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、受信フィルタデータ３３２１において、コア９９Ｐ３０にアダプタ３０００Ｐ３０を介して接続されるルータノード２０００Ｐ３０についての許可ビットに「Ｒ」と「Ｗ」のいずれも記入しないビットに設定し、コア９９Ｐ３０からのアクセス要求の処理を禁止した状態へと変更する。また、受信フィルタデータ３３２１において一時停止ビットを「Ｎｏ」にし、アクセス要求の処理の一時停止状態を解除する。【０２００】
ステップ３（Ｓ３）：アダプタ３０００Ｐ２２は、受信フィルタデータ３３２１を参照し、アクセス要求の処理の一時停止が解除されていることを認識するが、コア９９Ｐ３０からのアクセス要求の処理が禁止されていることを認識すると、アダプタ３０００Ｐ２２は、アクセス要求が許可されずにエラーを起こしたことをコア９９Ｐ３０に対して通知するためのパケットであるエラーパケットを生成する。続いて、エラーパケットをルータノード２０００Ｐ２２に送信する。ルータノード２０００Ｐ２２は受け取ったエラーパケットを隣接するルータノード２０００Ｐ３２に送出する。ルータノード２０００Ｐ２２から送出されたエラーパケットは、ルータノード２０００Ｐ３２、２０００Ｐ３１を含む中間ルータノード群を介してルータノード２０００Ｐ３０に到着する。【０２０１】
その後、ルータノード２０００Ｐ３０はアダプタ３０００Ｐ３０にエラーパケットを渡し、アダプタ３０００Ｐ３０は当該エラーパケットをコアに対してアクセス要求がエラーを起こしたことを通知するための情報であるアクセスエラー応答に変換してコア９９Ｐ３０に渡す。なお、エラーパケットがアクセス要求のパケットが配送された経路を逆方向に配送される場合で説明したが、この経路とは異なる経路で配送されてもよい。【０２０２】
次に、１つのアダプタにおける受信フィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、受信フィルタデータを更新することで、所定のコアからのアクセス要求をそのアダプタに処理させる場合について、図４５の場合とは別の動作を説明する。ここでは、アダプタは、処理の一時停止の対象になったパケットを保存せずに、自装置宛に外部にパケットを送出するものである。図４７は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０２０３】
ステップ１（Ｓ１）：コア９９Ｐ３０がアダプタ３０００Ｐ３０にアクセス要求を渡すと、アダプタ３０００Ｐ３０は、アクセス要求をパケットに変換し、コア９９Ｐ２２を宛先としたパケットをルータノード２０００Ｐ３０へ送信する。ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０から受け取ったパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３０から送出されたパケットは、ルータノード２０００Ｐ３１、２０００Ｐ３２を含む中間ルータノード群を介してルータノード２０００Ｐ２２に到着する。そして、ルータノード２０００Ｐ２２は、受け取ったパケットをアダプタ３０００Ｐ２２に渡し、アダプタ３０００Ｐ２２は当該パケットをコア対応のアクセス要求に変換する。続いて、アダプタ３０００Ｐ２２は、受信フィルタデータ３３２１を参照し、アクセス要求を処理するか否かを示す一時停止ビットが「Ｙｅｓ」であることを認識すると、そのアクセス要求の情報を含む、自分宛のパケットである再送パケットを生成して相互結合網内に送出する。【０２０４】
ステップ２（Ｓ２）：コア９９Ｐ００が、アダプタ３０００Ｐ２２におけるコア９９Ｐ３０からのアクセス要求の処理を許可する旨の受信フィルタデータに更新するための受信フィルタデータ更新要求と、アダプタ３０００Ｐ２２におけるアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ３３２１に書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡す。アダプタ３０００Ｐ００は、コア９９Ｐ００から受信フィルタデータ更新要求と一時停止解除要求を受け取ると、コア９９Ｐ３０からのアクセス要求の処理を許可する旨の情報とアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ３３２１に書き込むことを指示するための更新・一時停止解除パケットをアダプタ３０００Ｐ２２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新・一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ２１を介してルータノード２０００Ｐ２２に到着する。【０２０５】
そして、ルータノード２０００Ｐ２２は、複数のルータノードを介して受け取った更新・一時停止解除パケットをアダプタ３０００Ｐ２２に渡す。アダプタ３０００Ｐ２２は、当該更新・一時停止解除パケットがアダプタ３０００Ｐ２２におけるコア９９Ｐ３０からのアクセス要求の処理を許可する旨と、アクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、受信フィルタデータ３３２１において、コア９９Ｐ３０にアダプタ３０００Ｐ３０を介して接続されるルータノード２０００Ｐ３０についての許可ビットに「Ｒ」と「Ｗ」を設定し、コア９９Ｐ３０からのアクセス要求の処理を許可した状態へと変更する。また、受信フィルタデータ３３２１において一時停止ビットを「Ｎｏ」にし、アクセス要求の処理の一時停止状態を解除する。【０２０６】
ステップ３（Ｓ３）：アダプタ３０００Ｐ２２は、ステップ１で生成した再送パケットを、ルータノード２０００Ｐ１２、２０００Ｐ１３、２０００Ｐ２３を含む中間ルータノード群を介してルータノード２０００Ｐ２２へと送信する。そして、ルータノード２０００Ｐ２２は、受信した再送パケットをアダプタ３０００Ｐ２２に渡す。【０２０７】
ステップ４（Ｓ４）：アダプタ３０００Ｐ２２は、再送パケットを受信すると、受信フィルタデータ３３２１を参照し、コア９９Ｐ３０からのアクセス要求の処理が許可されていることと、アクセス要求の処理の一時停止が解除されていることを認識すると、再送パケットをコア対応のアクセス要求に変換してコア９９Ｐ２２に渡す。【０２０８】
次に、１つのアダプタにおける受信フィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、受信フィルタデータを更新することで、所定のコアからのアクセス要求の処理をそのアダプタに許可させない場合について、図４６の場合とは別の動作を説明する。ここでは、アダプタは、処理の一時停止の対象になったパケットを保存せずに、自装置宛に外部にパケットを送出するものである。図４８は図３３に示した半導体集積回路の動作の一例を説明するための図である。【０２０９】
ステップ１（Ｓ１）：コア９９Ｐ３０がアダプタ３０００Ｐ３０にアクセス要求を渡すと、アダプタ３０００Ｐ３０は、アクセス要求をパケットに変換し、コア９９Ｐ２２を宛先としたパケットをルータノード２０００Ｐ３０へ送信する。ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０から受け取ったパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３０から送出されたパケットは、ルータノード２０００Ｐ３１、２０００Ｐ３２を含む中間ルータノード群を介してルータノード２０００Ｐ２２に到着する。そして、ルータノード２０００Ｐ２２は、受け取ったパケットをアダプタ３０００Ｐ２２に渡し、アダプタ３０００Ｐ２２は当該パケットをコア対応のアクセス要求に変換する。続いて、アダプタ３０００Ｐ２２は、受信フィルタデータ３３２１を参照し、アクセス要求を処理するか否かを示す一時停止ビットが「Ｙｅｓ」であることを認識すると、そのアクセス要求の情報を含む、自分宛のパケットである再送パケットを生成して相互結合網内に送出する。【０２１０】
ステップ２（Ｓ２）：コア９９Ｐ００が、アダプタ３０００Ｐ２２におけるコア９９Ｐ３０からのアクセス要求の処理を禁止する旨の受信フィルタデータに更新するための受信フィルタデータ更新要求と、アダプタ３０００Ｐ２２におけるアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ３３２１に書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡す。アダプタ３０００Ｐ００は、コア９９Ｐ００から受信フィルタデータ更新要求と一時停止解除要求を受け取ると、コア９９Ｐ３０からのアクセス要求の処理を禁止する旨の情報とアクセス要求の処理の一時停止を解除する旨を受信フィルタデータ３３２１に書き込むことを指示するための更新・一時停止解除パケットをアダプタ３０００Ｐ２２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新・一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ２１を介してルータノード２０００Ｐ２２に到着する。【０２１１】
そして、ルータノード２０００Ｐ２２は、複数のルータノードを介して受け取った更新・一時停止解除パケットをアダプタ３０００Ｐ２２に渡す。アダプタ３０００Ｐ２２は、当該更新・一時停止解除パケットがアダプタ３０００Ｐ２２におけるコア９９Ｐ３０からのアクセス要求の処理を禁止する旨と、アクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、受信フィルタデータ３３２１において、コア９９Ｐ３０にアダプタ３０００Ｐ３０を介して接続されるルータノード２０００Ｐ３０についての許可ビットに「Ｒ」と「Ｗ」のいずれも記入しないビットに設定し、コア９９Ｐ３０からのアクセス要求の処理を禁止した状態へと変更する。また、受信フィルタデータ３３２１において一時停止ビットを「Ｎｏ」にし、アクセス要求の処理の一時停止状態を解除する。【０２１２】
ステップ３（Ｓ３）：アダプタ３０００Ｐ２２は、ステップ１で生成した再送パケットを、ルータノード２０００Ｐ１２、２０００Ｐ１３、２０００Ｐ２３を含む中間ルータノード群を介してルータノード２０００Ｐ２２へと送信する。そして、ルータノード２０００Ｐ２２は、受信した再送パケットをアダプタ３０００Ｐ２２に渡す。【０２１３】
ステップ４（Ｓ４）：アダプタ３０００Ｐ２２は、再送パケットを受信すると、受信フィルタデータ３３２１を参照し、アクセス要求の処理の一時停止が解除されていることを認識するが、コア９９Ｐ３０からのアクセス要求の処理が禁止されていることを認識する。そして、アダプタ３０００Ｐ２２は、アクセス要求が許可されずにエラーを起こしたことをコア９９Ｐ３０に対して通知するためのパケットであるエラーパケットを生成する。続いて、エラーパケットをルータノード２０００Ｐ２２に送信する。ルータノード２０００Ｐ２２は受け取ったエラーパケットを隣接するルータノード２０００Ｐ３２に送出する。ルータノード２０００Ｐ２２から送出されたエラーパケットは、ルータノード２０００Ｐ３２、２０００Ｐ３１を含む中間ルータノード群を介してルータノード２０００Ｐ３０に到着する。【０２１４】
その後、ルータノード２０００Ｐ３０はアダプタ３０００Ｐ３０にエラーパケットを渡し、アダプタ３０００Ｐ３０は当該エラーパケットをコアに対してアクセス要求がエラーを起こしたことを通知するための情報であるアクセスエラー応答に変換してコア９９Ｐ３０に渡す。なお、エラーパケットがアクセス要求のパケットが配送された経路を逆方向に配送される場合で説明したが、この経路とは異なる経路で配送されてもよい。【０２１５】
本実施形態では、コアからのアクセス要求に対して、相互結合網内の複数のアダプタのそれぞれは、配送情報にしたがってアクセス要求の配送制御を行う。アダプタのそれぞれが保持する配送情報の内容に統一性をもたせることで、一貫性のあるフィルタ制御が可能となる。【０２１６】
また、配送情報を更新する際には、相互結合網内の複数のアダプタに対して、アクセス要求の処理の一時停止の指示と、受信フィルタデータの更新およびアクセス要求の処理の一時停止の解除の指示が所定のコアから一斉になされる。各アダプタでのアクセス要求の処理を一時停止させることにより、相互結合網全体に渡って、一貫性のあるフィルタ設定更新が可能となる。【０２１７】
本発明によれば、バス結合によって複数ＣＰＵを接続する半導体集積回路だけでなく、相互結合網によって複数ＣＰＵが接続される半導体集積回路においても、ダウンロードプログラムのように新たに追加されるプログラムがコンピュータウィルスを伴っている危険があっても、高信頼度と低信頼度にグループ分けされたＣＰＵのうち、フィルタデータを更新して低信頼度なＣＰＵに実行させることが可能となる。新たに追加されたプログラムが認証を受けたものであれが、高信頼度なＣＰＵに実行させるようにフィルタデータを更新すればよい。このように、新たなプログラムやデータが追加されても、そのプログラムやデータの信頼度に合わせて高信頼度なＣＰＵと低信頼度なＣＰＵのいずれのグループに実行させるかを設定してＣＰＵ分離制御を行うことで、セキュリティを向上させることができる。【０２１８】
さらに、相互結合網上で、セキュリティポリシーに応じて、ＣＰＵ分離制御の設定を動的に変更できる。その結果、より柔軟なシステム構成を実現できる。【０２１９】
なお、相互結合網の構成は他にも考えられ、以下に、構成例を説明する。【０２２０】
図４９は相互結合網の一構成例を示す図である。図４９に示す相互結合網は、図３３に示した半導体集積回路の場合と同様な構成である。ここでは、１６個のルータノード２０１０がメッシュ構造に接続されている。【０２２１】
図５０は相互結合網の別の構成例を示す図である。図５０を参照すると、１６個のルータノード２０１０がトーラス構造に接続されている。図５１は相互結合網の別の構成例を示す図である。図５１を参照すると、１５個のルータノード２０１０がツリー構造に接続されている。【０２２２】
図４９、図５０及び図５１に示したように、様々なトポロジーを持つ相互結合網を用いてもよい。【０２２３】
図５２は相互結合網の別の構成例を示す図である。図５２を参照すると、１６個のルータノード２０１０が図４９の場合と同様にメッシュ構造を形成するように配置されているものの、一部のルータノード間のリンクは接続されていない。このように、不規則なトポロジーを持つ相互結合網を用いてもよい。【０２２４】
図５３は相互結合網の別の構成例を示す図である。図５３を参照すると、１６個のルータノード２０１０について、４個のルータノードをリング接続したものを１グループにして４個のグループに分け、さらに、これらの４個のグループをリング接続で束ねるという構成をとっている。このような、階層的なトポロジーを持つ相互結合網を用いてもよい。【０２２５】
複数のルータノードに対する結合方式は、上述の例に限らず、バス結合方式またはスイッチ結合方式などの方式を上述の結合方式に組み合わせてもよい。【０２２６】
（第２の実施形態）
第１の実施形態では、アクセス要求の制御をアダプタの受信側で行っていたが、本実施形態では、アダプタの送信側が行うものである。以下では、アダプタフィルタ制御手段以外の構成については、第１の実施形態と同様であるため、その詳細な説明を省略する。【０２２７】
図１７に示したアダプタ３０００のアダプタフィルタ制御手段３３００の本実施形態の構成について説明する。図５４はアダプタフィルタ制御手段３３００の本実施形態における構成例を示す図である。【０２２８】
図５４を参照すると、アダプタフィルタ制御手段３３００は、自身に接続されたコアへの外部からのアクセス要求を処理するか否かの判断とその処理を一時停止するか否かの判断を行う受信フィルタ手段３３２０と、その判断のために利用する情報である受信フィルタデータ３３２１と、自身に接続されたコアから受け取るアクセス要求を外部に送信するか否かの判断とアクセス要求に対する処理を一時停止するか否かの判断を行う送信フィルタ手段３３１０と、その判断のために利用する情報である送信フィルタデータ３３１１とを備える。受信フィルタデータ３３２１及び送信フィルタデータ３３１１は図に示さない記憶手段に格納されている。【０２２９】
送信フィルタ手段３３１０は、自身に接続されたコア９９からのアクセス要求を外部に送信するか否かの判断とアクセス要求に対する処理を一時停止するか否かの判断を行い、アクセス要求を送信しない場合には、コア９９にその旨を通知し、アクセス要求を送信する場合には、アクセス要求をパケット送信手段３１００に渡す。【０２３０】
次に、送信フィルタデータ３３１１について説明する。図５５は送信フィルタデータ３３２１の一構成例を示す図である。ここでは、アダプタ３０００に接続されたコアがＣＰＵであり、アダプタ３０００に接続されたルータノードが図１９（ｂ）の表に示したルータノード＃２の場合の例を示す。【０２３１】
図５５の送信フィルタデータ３３１１は、図１９（ｂ）に示した受信フィルタデータを格納したアダプタに接続されたメモリに対して、上記ＣＰＵからのアクセス要求がどの範囲で、どの種類の要求に関して許可されているかを示している。図５５を参照すると、区分けされたメモリ領域と、許可されているアクセス要求の種類を示す項目である「許可ビット」と、アクセス要求の処理を一時停止するか否かを示す「一時停止ビット」とを組とするエントリが設けられている。以下に、表が示す内容を具体的に説明する。【０２３２】
アドレス範囲0x  00000000〜0x  10000000の高信頼領域に対しては、許可ビットが「Ｒ」であることから、読み出しのアクセス要求が許可されている。一時停止ビットが「Ｎｏ」であることから、上記ＣＰＵからの高信頼領域に対するアクセス要求があったときにその処理を一時停止する必要はない。アドレス範囲0x  10000000〜0x  20000000の低信頼領域に対しては、許可ビットが「Ｒ」と「Ｗ」であることから、読み出しと書き込みの両方のアクセス要求が許可されている。一時停止ビットが「Ｎｏ」であることから、高信頼領域と同様に、上記ＣＰＵからの低信頼領域に対するアクセス要求の処理を一時停止する必要はない。【０２３３】
ここでは、送信フィルタデータを格納したアダプタに接続されたコア自身からは直接そのアダプタの送信フィルタデータを更新できないものとしている。送信フィルタデータ３３１１の情報の更新は、高信頼領域内のコアで実行されるアプリケーションソフトで生成される新たなデータ、または、予め設定変更情報が記述されたファイルから読み出されるデータ等に書き換わることで行われる。送信フィルタデータ３３１１の更新方法の具体例については、後述する。この更新は、受信フィルタデータの更新の場合と同様に、半導体集積回路全体の条件や状況に応じて、高信頼領域の範囲の変更が必要なときに行われる。【０２３４】
一方、半導体集積回路として予め所定の条件が設定され、その条件に一致する場合に限り、送信フィルタデータを格納したアダプタに接続されたコア自身から直接そのアダプタの送信フィルタデータの一部または全部を更新可能にしてもよい。この場合、高信頼度なコアから送信フィルタデータを更新するための新たなデータの受信を待つ必要がない。【０２３５】
なお、１つのメモリへのアクセス要求をする場合について説明したが、アクセス要求先のメモリが複数ある場合には、複数のメモリのそれぞれについて図５５に示した表を全て含むものが送信フィルタデータ３３１１としてアダプタ３０００に予め登録される。予め登録されている場合に限らず、アクセス要求先のメモリが変更または新規に追加される際に、変更内容に対応して送信フィルタデータが更新されてもよい。アクセス要求の送信先、メモリ領域、およびアクセス要求の種類の情報は、処理されるための条件である配送情報に相当する。【０２３６】
また、図１９に示した受信フィルタデータの代わりに図５５に示す送信フィルタデータ３３１１を各アダプタ３０００に格納してもよい。この場合、アクセス要求の送信側でアクセス制御が行われるため、各アダプタ３０００の受信フィルタ手段３３２０は外部から受け取るアクセス要求に対してその要求に応答するか否かの判断を行う必要がない。よって、アクセス要求を受け取る側のアダプタの処理の負荷が軽減する。【０２３７】
また、送信フィルタデータ３３１１は、図５５に示すような表形式の場合に限られない。送信フィルタ手段３３１０が読み出し可能で、読み出した情報にしたがってアクセス制御することができれば、その他の形式でもよい。【０２３８】
次に、アダプタフィルタ制御手段３３００がアクセス要求を受け付け、そのアクセス要求の送信を許可する場合の動作を説明する。図５６は図５４に示したアダプタフィルタ制御手段３３００の動作の一例を説明するための図である。【０２３９】
ステップ１（Ｓ１）：送信フィルタ手段３３１０は、自身が属するアダプタ３０００に接続されたコア９９からアクセス要求を受け付ける。ステップ２（Ｓ２）：送信フィルタ手段３３１０は、送信フィルタデータ３３１１を読み出し、読み出した情報に基づいて当該アクセス要求を外部に送信可能かどうかを判断する。その結果、アクセス要求に対する処理の一時停止も必要なく、送信可能であることを認識する。ステップ３（Ｓ３）：送信フィルタ手段３３１０は、当該アクセス要求をパケット送信手段３１００へ渡す。【０２４０】
次に、アダプタフィルタ制御手段３３００がアクセス要求を受け付け、そのアクセス要求の送信を拒否する場合の動作を説明する。図５７は図５４のアダプタフィルタ制御手段３３００の動作の一例を説明するための図である。【０２４１】
ステップ１（Ｓ１）：送信フィルタ手段３３１０は、自身が属するアダプタ３０００に接続されたコア９９からアクセス要求を受け付ける。ステップ２（Ｓ２）：送信フィルタ手段３３１０は、送信フィルタデータ３３１１を読み出し、読み出した情報に基づいて当該アクセス要求を送信可能かどうか判断する。その結果、アクセス要求の送信が禁止されていることを認識する。ステップ３（Ｓ３）：送信フィルタ手段３３１０は、当該アクセス要求を送信できない旨を通知するためにアクセスエラー応答をコア９９へ渡す。【０２４２】
次に、アダプタフィルタ制御手段３３００がアクセス要求を受け付け、アクセス要求に対する処理を一時停止する場合の動作を説明する。図５８は図５４に示したアダプタフィルタ制御手段３３００の動作の一例を説明するための図である。【０２４３】
ステップ１（Ｓ１）：送信フィルタ手段３３１０は、自身が属するアダプタ３０００に接続されたコア９９からアクセス要求を受け付ける。ステップ２（Ｓ２）：送信フィルタ手段３３１０は、送信フィルタデータ３３１１を読み出し、読み出した情報に基づいてアクセス要求に対して処理可能かどうか判断する。その結果、アクセス要求に対する処理を一時停止する必要があることを認識する。送信フィルタ手段３３１０は、一時停止状態が解除されるまで、当該アクセス要求を保持する。【０２４４】
次に、アダプタフィルタ制御手段３３００が送信フィルタデータ３３１１を更新する場合の動作を説明する。図５９は図５４に示したアダプタフィルタ制御手段３３００の動作の一例を説明するための図である。送信フィルタデータ３３１１を更新するための新たなデータは、ルータノード２０００から入力される。新たなデータの入力方法の具体例については、後述する。【０２４５】
ステップ１（Ｓ１）：受信フィルタ手段３３２０は、送信フィルタデータ３３１１に新たなデータを書き込むためのアクセス要求をパケット受信手段３２００から受け付ける。ステップ２（Ｓ２）：受信フィルタ手段３３２０は、受信フィルタデータ３３２１を読み出し、読み出した情報に基づいてアクセス要求に対して処理を行ってよいと判断する。ステップ３（Ｓ３）：受信フィルタ手段３３２０は、アクセス要求が送信フィルタデータの更新目的であることを認識すると、処理の一時停止を行わず、当該アクセス要求から新たなデータを読み出す。読み出した新たなデータを送信フィルタデータ３３１１に書き込む。このようにして、送信フィルタデータ３３１１が更新される。【０２４６】
ここでは、送信フィルタデータ３３１１の更新の際、外部から受信する更新用のデータのアクセス制御を受信フィルタ手段３３２０が行っているが、受信フィルタ制御３３２０に限らず、送信フィルタ手段３３１０など受信フィルタ制御３３２０と同等なアクセス制御が可能な他の回路が行ってもよい。【０２４７】
次に、アダプタ３０００に接続されたコア９９からアクセス要求があり、そのアクセス要求の送信を許可する場合のアダプタ３０００の内部の動作を説明する。図６０は図５４に示したアダプタフィルタ制御手段３３００を有するアダプタ３０００の内部動作の一例を説明するための図である。【０２４８】
ステップ１（Ｓ１）：アダプタフィルタ制御手段３３００はコア９９からのアクセス要求を受け付ける。ステップ２（Ｓ２）：アダプタフィルタ制御手段３３００は、受け付けたアクセス要求を送信してよいか否か、処理を一時停止すべきか否かを、送信フィルタデータ３３１１を参照して判定する。そのアクセス要求の送信が許可されていると判断すると、そのアクセス要求をパケット送信手段３１００に渡す。ステップ３（Ｓ３）：パケット送信手段３１００は、当該アクセス要求をパケットに変換してルータノード２０００に送信する。【０２４９】
次に、アダプタ３０００に接続されたコア９９からアクセス要求があり、そのアクセス要求の送信を許可しない場合のアダプタ３０００の内部の動作を説明する。図６１は図５４に示したアダプタフィルタ制御手段３３００を有するアダプタ３０００の内部動作の一例を説明するための図である。【０２５０】
ステップ１（Ｓ１）：アダプタフィルタ制御手段３３００はコア９９からのアクセス要求を受け付ける。ステップ２（Ｓ２）：アダプタフィルタ制御手段３３００は、受け付けたアクセス要求を送信してよいか否か、処理を一時停止すべきか否かを、送信フィルタデータ３３１１を参照して判定する。そのアクセス要求の送信が許可されていないと判断すると、当該アクセス要求を送信できない旨を通知するためにアクセスエラー応答をコア９９に渡す。【０２５１】
次に、アダプタ３０００に接続されたコア９９からアクセス要求があり、そのアクセス要求の処理を一時停止する場合のアダプタ３０００の内部の動作を説明する。図６２は図５４に示したアダプタフィルタ制御手段３３００を有するアダプタ３０００の内部動作の一例を説明するための図である。【０２５２】
ステップ１（Ｓ１）：アダプタフィルタ制御手段３３００は、コア９９からのアクセス要求を受け付ける。アダプタフィルタ制御手段３３００は、受け付けたアクセス要求を送信してよいか否か、処理を一時停止すべきか否かを、送信フィルタデータ３３１１を参照して判定する。アクセス要求の処理を一時停止する必要があると判断すると、そのアクセス要求を保持する。【０２５３】
次に、アダプタ３０００に接続されたルータノード２０００からパケットを受信し、受信したパケットのデータにより送信フィルタデータ３３１１を更新する場合のアダプタ３０００の内部の動作を説明する。図６３は図５４に示したアダプタフィルタ制御手段３３００を有するアダプタ３０００の内部動作の一例を説明するための図である。【０２５４】
ステップ１（Ｓ１）：パケット受信手段３２００は、送信フィルタデータの新たなデータを含むパケットである更新用パケットをルータノード２０００から受信する。【０２５５】
ステップ２（Ｓ２）：パケット受信手段３２００は、受信した更新用パケットを送信フィルタデータ３３１１に対する書き込みのアクセス要求に変換してアダプタフィルタ制御手段３３００に渡す。アダプタフィルタ制御手段３３００は、当該アクセス要求を処理可能であると判断し、当該アクセス要求に伴って受信したデータを送信フィルタデータ３３１１に書き込む。これにより、送信フィルタデータ３３１１が更新される。なお、この更新が受け付けられない場合は、アクセス要求を受け付けないというエラーが起こったときの通常のエラー処理と同様であるため、ここでは詳細な説明を省略する。【０２５６】
次に、アダプタ３０００に接続されたルータノード２０００から受信したパケットによるアクセス要求の処理を一時停止してそのアクセス要求を一旦保持した後、送信フィルタデータ３３１１の更新により、処理の一時停止の対象だったアクセス要求を送信可能とする場合のアダプタ３０００の内部の動作を説明する。図６４は図５４に示したアダプタフィルタ制御手段３３００を有するアダプタ３０００の内部動作の一例を説明するための図である。【０２５７】
ステップ１（Ｓ１）：アダプタフィルタ制御手段３３００は、コア９９からのアクセス要求を受け付ける。アダプタフィルタ制御手段３３００は、受け付けたアクセス要求を送信してよいか否か、処理を一時停止すべきか否かを、送信フィルタデータ３３１１を参照して判定する。アクセス要求の処理を一時停止する必要があると判断すると、そのアクセス要求を保持する。【０２５８】
ステップ２（Ｓ２）：パケット受信手段３２００は、送信フィルタデータの新たなデータを含むパケットである更新用パケットをルータノード２０００から受信する。【０２５９】
ステップ３（Ｓ３）：パケット受信手段３２００は、受信した更新用パケットを送信フィルタデータ３３１１に対する書き込みのアクセス要求に変換してアダプタフィルタ制御手段３３００に渡す。アダプタフィルタ制御手段３３００は、当該アクセス要求を処理可能であると判断し、当該アクセス要求に伴って受信したデータを送信フィルタデータ３３１１に書き込む。これにより、送信フィルタデータ３３１１が更新され、保持したアクセス要求の処理に対する一時停止の状態が解除される。【０２６０】
ステップ４（Ｓ４）：アダプタフィルタ制御手段３３００は、送信フィルタデータ３３１１の更新により、保持していたアクセス要求の送信が許可されたと判断し、そのアクセス要求をパケット送信手段３１００に渡す。ステップ５（Ｓ５）：パケット送信手段３１００は、当該アクセス要求をパケットに変換してルータノード２０００に送信する。【０２６１】
ここまで、図５４に示すアダプタフィルタ制御３３００を有するアダプタ３０００の構成を詳しく説明したが、次に、そのアダプタと、コアと、ルータノードとが組になったものが複数接続された構成について説明する。【０２６２】
上記アダプタ、コア及びルータノードからなる組が複数接続された場合の構成は図３３で説明したものと同様である。そのため、ここでは、図３３に示す構成についての詳細な説明を省略する。【０２６３】
次に、図３３に示した構成において、コア９９Ｐ３０からコア９９Ｐ２２にアクセス要求を行う場合の動作を説明する。この場合、低信頼度なコアから信頼度が規定されていないコアへのアクセス要求が行われるが、このアクセス要求は許可されているものとする。図６５は図３３に示した半導体集積回路の動作の一例を説明するための図である。図６５に示すアダプタは図５４に示したアダプタフィルタ制御手段３３００を有している。【０２６４】
ステップ１（Ｓ１）：コア９９Ｐ３０がアダプタ３０００Ｐ３０にアクセス要求を渡す。アダプタ３０００Ｐ３０は、コア９９Ｐ３０からアクセス要求を受け取ると、送信フィルタデータ３３１１を参照し、コア９９Ｐ２２へのアクセス要求の送信が許可されていることを認識する。続いて、アクセス要求をパケットに変換し、コア９９Ｐ２２を宛先としたパケットをルータノード２０００Ｐ３０へ送信する。【０２６５】
ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０から受け取ったパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３０から送出されたパケットは、ルータノード２０００Ｐ３１、２０００Ｐ３２を含む中間ルータノード群を介してルータノード２０００Ｐ２２に到着する。そして、ルータノード２０００Ｐ２２は、受け取ったパケットをアダプタ３０００Ｐ２２に渡し、アダプタ３０００Ｐ２２は当該パケットをコア対応のアクセス要求に変換してコア９９Ｐ２２に渡す。【０２６６】
次に、高信頼度なコア９９Ｐ００が、低信頼度なコア９９Ｐ２０、９９Ｐ３０、９９Ｐ２１及び９９Ｐ３１のそれぞれからコア９９Ｐ２２へのアクセス要求を禁止するため、アダプタ３０００Ｐ２０、３０００Ｐ２１、３０００Ｐ３０及び３０００Ｐ３１における送信フィルタデータ内のコア９９Ｐ２２へのアクセス要求の処理を一時停止にする場合の動作を説明する。コア９９Ｐ２２は信頼度が規定されていないコアである。図６６は図３３に示した半導体集積回路の動作の一例を説明するための図である。図６６に示すアダプタは図５４に示したアダプタフィルタ制御手段３３００を有している。【０２６７】
ステップ１（Ｓ１）：コア９９Ｐ００が、コア９９Ｐ２２へのアクセス要求の処理を一時停止する旨を送信フィルタデータ３３１１に書き込むことを指示するための一時停止要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのアクセス要求の処理を一時停止する旨を送信フィルタデータ３３１１に書き込むことを指示するための一時停止パケットをアダプタ３０００Ｐ２０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、中継となるルータノード２０００Ｐ１０を介してルータノード２０００Ｐ２０に到着する。【０２６８】
そして、ルータノード２０００Ｐ２０は、受け取った一時停止パケットをアダプタ３０００Ｐ２０に渡す。アダプタ３０００Ｐ２０は、当該一時停止パケットがコア９９Ｐ２２へのアクセス要求の処理の一時停止を指示するものであることを認識すると、送信フィルタデータ３３１１において、コア９９Ｐ２２へのアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Ｙｅｓ」にし、アクセス要求の処理を一時停止状態に変更する。【０２６９】
ステップ２（Ｓ２）：コア９９Ｐ００が、コア９９Ｐ２２へのアクセス要求の処理を一時停止する旨を送信フィルタデータ３３１１に書き込むことを指示するための一時停止要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのアクセス要求の処理を一時停止する旨を送信フィルタデータ３３１１に書き込むことを指示するための一時停止パケットをアダプタ３０００Ｐ３０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、中継となるルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ３０に到着する。【０２７０】
そして、ルータノード２０００Ｐ３０は、受け取った一時停止パケットをアダプタ３０００Ｐ３０に渡す。アダプタ３０００Ｐ３０は、当該一時停止パケットがコア９９Ｐ２２へのアクセス要求の処理の一時停止を指示するものであることを認識すると、送信フィルタデータ３３１１において、コア９９Ｐ２２へのアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Ｙｅｓ」にし、アクセス要求の処理を一時停止状態に変更する。【０２７１】
ステップ３（Ｓ３）：コア９９Ｐ００が、コア９９Ｐ２２へのアクセス要求の処理を一時停止する旨を送信フィルタデータ３３１１に書き込むことを指示するための一時停止要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのアクセス要求の処理を一時停止する旨を送信フィルタデータ３３１１に書き込むことを指示するための一時停止パケットをアダプタ３０００Ｐ２１を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、中継となるルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ２１に到着する。【０２７２】
そして、ルータノード２０００Ｐ２１は、受け取った一時停止パケットをアダプタ３０００Ｐ２１に渡す。アダプタ３０００Ｐ２１は、当該一時停止パケットがコア９９Ｐ２２へのアクセス要求の処理の一時停止を指示するものであることを認識すると、送信フィルタデータ３３１１において、コア９９Ｐ２２へのアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Ｙｅｓ」にし、アクセス要求の処理を一時停止状態に変更する。【０２７３】
ステップ４（Ｓ４）：コア９９Ｐ００が、コア９９Ｐ２２へのアクセス要求の処理を一時停止する旨を送信フィルタデータ３３１１に書き込むことを指示するための一時停止要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのアクセス要求の処理を一時停止する旨を送信フィルタデータ３３１１に書き込むことを指示するための一時停止パケットをアダプタ３０００Ｐ３１を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、中継となるルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ３０を介してルータノード２０００Ｐ３１に到着する。【０２７４】
そして、ルータノード２０００Ｐ３１は、受け取った一時停止パケットをアダプタ３０００Ｐ３１に渡す。アダプタ３０００Ｐ３１は、当該一時停止パケットがコア９９Ｐ２２へのアクセス要求の処理の一時停止を指示するものであることを認識すると、送信フィルタデータ３３１１において、コア９９Ｐ２２へのアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Ｙｅｓ」にし、アクセス要求の処理を一時停止状態に変更する。【０２７５】
次に、高信頼度なコア９９Ｐ００が、低信頼度なコア９９Ｐ２０、９９Ｐ３０、９９Ｐ２１及び９９Ｐ３１のそれぞれからコア９９Ｐ２２へのアクセス要求を禁止するため、アダプタ３０００Ｐ２０、３０００Ｐ２１、３０００Ｐ３０及び３０００Ｐ３１における送信フィルタデータ内のコア９９Ｐ２２へのアクセス要求の許可または禁止を示す項目を更新する場合の動作を説明する。図６７は図３３に示した半導体集積回路の動作の一例を説明するための図である。図６７に示すアダプタは図５４に示したアダプタフィルタ制御手段３３００を有している。【０２７６】
ステップ１（Ｓ１）：コア９９Ｐ００が、アダプタ３０００Ｐ２０からコア９９Ｐ２２へのアクセス要求の送信を禁止する内容に送信フィルタデータを更新するための送信フィルタデータ更新要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのアクセス要求の送信を禁止する旨の情報を含む更新用パケットをアダプタ３０００Ｐ２０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新用パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０を介してルータノード２０００Ｐ２０に到着する。【０２７７】
そして、ルータノード２０００Ｐ２０は、受け取った更新用パケットをアダプタ３０００Ｐ２０に渡す。アダプタ３０００Ｐ２０は、当該更新用パケットがコア９９Ｐ２２へのアクセス要求の送信を禁止するものであることを認識すると、送信フィルタデータ３３１１において、一時停止ビットを「Ｙｅｓ」に保ったまま、コア９９Ｐ２２についてのアクセス要求の種類を示す許可ビットを「Ｒ」と「Ｗ」のいずれも記入しないビットに設定し、コア９９Ｐ２２へのアクセス要求の送信を禁止した状態へと変更する。【０２７８】
ステップ２（Ｓ２）：コア９９Ｐ００が、アダプタ３０００Ｐ３０からコア９９Ｐ２２へのアクセス要求の送信を禁止する内容に送信フィルタデータを更新するための送信フィルタデータ更新要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのアクセス要求の送信を禁止する旨の情報を含む更新用パケットをアダプタ３０００Ｐ３０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新用パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ３０に到着する。【０２７９】
そして、ルータノード２０００Ｐ３０は、受け取った更新用パケットをアダプタ３０００Ｐ３０に渡す。アダプタ３０００Ｐ３０は、当該更新用パケットがコア９９Ｐ２２へのアクセス要求の送信を禁止するものであることを認識すると、送信フィルタデータ３３１１において、一時停止ビットを「Ｙｅｓ」に保ったまま、コア９９Ｐ２２についての許可ビットを「Ｒ」と「Ｗ」のいずれも記入しないビットに設定し、コア９９Ｐ２２へのアクセス要求の送信を禁止した状態へと変更する。【０２８０】
ステップ３（Ｓ３）：コア９９Ｐ００が、アダプタ３０００Ｐ２１からコア９９Ｐ２２へのアクセス要求の送信を禁止する内容に送信フィルタデータを更新するための送信フィルタデータ更新要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのアクセス要求の送信を禁止する旨の情報を含む更新用パケットをアダプタ３０００Ｐ２１を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新用パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ２１に到着する。【０２８１】
そして、ルータノード２０００Ｐ２１は、受け取った更新用パケットをアダプタ３０００Ｐ２１に渡す。アダプタ３０００Ｐ２１は、当該更新用パケットがコア９９Ｐ２２へのアクセス要求の送信を禁止するものであることを認識すると、送信フィルタデータ３３１１において、一時停止ビットを「Ｙｅｓ」に保ったまま、コア９９Ｐ２２についての許可ビットを「Ｒ」と「Ｗ」のいずれも記入しないビットに設定し、コア９９Ｐ２２へのアクセス要求の送信を禁止した状態へと変更する。【０２８２】
ステップ４（Ｓ４）：コア９９Ｐ００が、アダプタ３０００Ｐ３１からコア９９Ｐ２２へのアクセス要求の送信を禁止する内容に送信フィルタデータを更新するための送信フィルタデータ更新要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのアクセス要求の送信を禁止する旨の情報を含む更新用パケットをアダプタ３０００Ｐ３１を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新用パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ３０を介してルータノード２０００Ｐ３１に到着する。【０２８３】
そして、ルータノード２０００Ｐ３１は、受け取った更新用パケットをアダプタ３０００Ｐ３１に渡す。アダプタ３０００Ｐ３１は、当該更新用パケットがコア９９Ｐ２２へのアクセス要求の送信を禁止するものであることを認識すると、送信フィルタデータ３３１１において、一時停止ビットを「Ｙｅｓ」に保ったまま、コア９９Ｐ２２についての許可ビットを「Ｒ」と「Ｗ」のいずれも記入しないビットに設定し、コア９９Ｐ２２へのアクセス要求の送信を禁止した状態へと変更する。【０２８４】
次に、高信頼度なコア９９Ｐ００が、低信頼度なコア９９Ｐ２０、９９Ｐ３０、９９Ｐ２１及び９９Ｐ３１のそれぞれからコア９９Ｐ２２へのアクセス要求を禁止する設定を図６６で説明したように行った後、アダプタ３０００Ｐ２０、３０００Ｐ２１、３０００Ｐ３０及び３０００Ｐ３１における送信フィルタデータ内のコア９９Ｐ２２へのアクセス要求の処理の一時停止を解除する場合の動作を説明する。図６８は図３３に示した半導体集積回路の動作の一例を説明するための図である。図６８に示すアダプタは図５４に示したアダプタフィルタ制御手段３３００を有している。【０２８５】
ステップ１（Ｓ１）：コア９９Ｐ００が、アダプタ３０００Ｐ２０からコア９９Ｐ２２へのアクセス要求の処理の一時停止を解除することを送信フィルタデータ３３１１に書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのアクセス要求の処理の一時停止を解除する旨を送信フィルタデータ３３１１に書き込むことを指示するための一時停止解除パケットをアダプタ３０００Ｐ２０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０を介してルータノード２０００Ｐ２０に到着する。【０２８６】
そして、ルータノード２０００Ｐ２０は、受け取った一時停止解除パケットをアダプタ３０００Ｐ２０に渡す。アダプタ３０００Ｐ２０は、当該一時停止解除パケットがコア９９Ｐ２２へのアクセス要求の処理の一時停止の解除を指示するものであることを認識すると、送信フィルタデータ３３１１においてコア９９Ｐ２２へのアクセス要求の処理を一時停止するか否かを示す一時停止ビットを「Ｎｏ」にし、アクセス要求の処理の一時停止状態を解除する。【０２８７】
ステップ２（Ｓ２）：コア９９Ｐ００が、アダプタ３０００Ｐ３０からコア９９Ｐ２２へのアクセス要求の処理の一時停止を解除することを送信フィルタデータ３３１１に書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのアクセス要求の処理の一時停止を解除する旨を送信フィルタデータ３３１１に書き込むことを指示するための一時停止解除パケットをアダプタ３０００Ｐ３０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ３０に到着する。【０２８８】
そして、ルータノード２０００Ｐ３０は、受け取った一時停止解除パケットをアダプタ３０００Ｐ３０に渡す。アダプタ３０００Ｐ３０は、当該一時停止解除パケットがコア９９Ｐ２２へのアクセス要求の処理の一時停止の解除を指示するものであることを認識すると、送信フィルタデータ３３１１においてコア９９Ｐ２２の一時停止ビットを「Ｎｏ」にし、アクセス要求の処理の一時停止状態を解除する。【０２８９】
ステップ３（Ｓ３）：コア９９Ｐ００が、アダプタ３０００Ｐ２１からコア９９Ｐ２２へのアクセス要求の送信の一時停止を解除することを送信フィルタデータ３３１１に書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのアクセス要求の送信の一時停止を解除する旨を送信フィルタデータ３３１１に書き込むことを指示するための一時停止解除パケットをアダプタ３０００Ｐ２１を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ２１に到着する。【０２９０】
そして、ルータノード２０００Ｐ２１は、受け取った一時停止解除パケットをアダプタ３０００Ｐ２１に渡す。アダプタ３０００Ｐ２１は、当該一時停止解除パケットがコア９９Ｐ２２へのアクセス要求の処理の一時停止の解除を指示するものであることを認識すると、送信フィルタデータ３３１１においてコア９９Ｐ２２の一時停止ビットを「Ｎｏ」にし、アクセス要求の処理の一時停止状態を解除する。【０２９１】
ステップ４（Ｓ４）：コア９９Ｐ００が、アダプタ３０００Ｐ３１からコア９９Ｐ２２へのアクセス要求の処理の一時停止を解除することを送信フィルタデータ３３１１に書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのアクセス要求の処理の一時停止を解除する旨を送信フィルタデータ３３１１に書き込むことを指示するための一時停止解除パケットをアダプタ３０００Ｐ３１を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ３０を介してルータノード２０００Ｐ３１に到着する。【０２９２】
そして、ルータノード２０００Ｐ３１は、受け取った一時停止解除パケットをアダプタ３０００Ｐ３１に渡す。アダプタ３０００Ｐ３１は、当該一時停止解除パケットがコア９９Ｐ２２へのアクセス要求の処理の一時停止の解除を指示するものであることを認識すると、送信フィルタデータ３３１１においてコア９９Ｐ２２の一時停止ビットを「Ｎｏ」にし、アクセス要求の処理の一時停止状態を解除する。【０２９３】
上述のようにして、低信頼度な４つのコアのそれぞれのアダプタでは、コア９９Ｐ２２へのアクセス要求の処理の一時停止状態が解除されるが、送信フィルタデータ３３１１においてコア９９Ｐ２２に対する読み出し及び書き込みが「禁止」に設定されているため、各アダプタは、コア９９Ｐ２２へのアクセス要求の送信を禁止した状態を維持する。【０２９４】
次に、図６６、図６７及び図６８で説明したように送信フィルタデータの設定変更が行われた後に、低信頼度なコア９９Ｐ３０がコア９９Ｐ２２にアクセス要求をする場合の動作を説明する。上述したように送信フィルタデータの設定変更が行われ、低信頼度なコア９９Ｐ３０から信頼度の規定されていないコア９９Ｐ２２へのアクセス要求は禁止されている。図６９は図３３に示した半導体集積回路の動作の一例を説明するための図である。図６９に示すアダプタは図５４に示したアダプタフィルタ制御手段３３００を有している。【０２９５】
ステップ１（Ｓ１）：コア９９Ｐ３０は、コア９９Ｐ２２に対するアクセス要求をアダプタ３０００Ｐ３０に渡す。ステップ２（Ｓ２）：アダプタ３０００Ｐ３０は、コア９９Ｐ３０よりアクセス要求を受け取ると、送信フィルタデータ３３１１を参照し、コア９９Ｐ２２へのアクセス要求が禁止されていることを認識すると、アクセスエラー応答をコア９９Ｐ３０に返す。【０２９６】
次に、１つのアダプタにおける送信フィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、送信フィルタデータを更新することで、所定のコアへのアクセス要求の送信をそのアダプタに許可させない場合の動作を説明する。ここでは、低信頼度なコア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求の処理が一時停止の状態にあり、その後、高信頼度なコア９９Ｐ００がコア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求の送信を禁止に設定し、続いて、アクセス要求の処理の一時停止を解除するものである。図７０は図３３に示した半導体集積回路の動作の一例を説明するための図である。図６９に示すアダプタは図５４に示したアダプタフィルタ制御手段３３００を有している。【０２９７】
ステップ１（Ｓ１）：コア９９Ｐ３０は、コア９９Ｐ２２に対するアクセス要求をアダプタ３０００Ｐ３０に渡す。アダプタ３０００Ｐ３０は、コア９９Ｐ３０からアクセス要求を受け取ると、送信フィルタデータ３３１１を参照して当該アクセス要求の処理が一時停止状態になっていることを認識し、当該アクセス要求を保持する。【０２９８】
ステップ２（Ｓ２）：コア９９Ｐ００が、アダプタ３０００Ｐ３０からコア９９Ｐ２２へのアクセス要求の送信を禁止する内容に送信フィルタデータを更新するための送信フィルタデータ更新要求と、アダプタ３０００Ｐ３０からコア９９Ｐ２２へのアクセス要求の処理の一時停止を解除する旨を送信フィルタデータ３３１１に書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡す。アダプタ３０００Ｐ００は、コア９９Ｐ００から送信フィルタデータ更新要求と一時停止解除要求を受け取ると、コア９９Ｐ２２へのアクセス要求の送信を禁止する旨の情報とコア９９Ｐ２２へのアクセス要求の処理の一時停止を解除する旨を送信フィルタデータ３３１１に書き込むことを指示するための更新・一時停止解除パケットをアダプタ３０００Ｐ３０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新・一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ３０に到着する。【０２９９】
そして、ルータノード２０００Ｐ３０は、受け取った更新・一時停止解除パケットをアダプタ３０００Ｐ３０に渡す。アダプタ３０００Ｐ３０は、当該更新・一時停止解除パケットがコア９９Ｐ２２へのアクセス要求の送信を禁止する旨と、コア９９Ｐ２２へのアクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、送信フィルタデータ３３１１において、コア９９Ｐ２２についての許可ビットに「Ｒ」と「Ｗ」のいずれも記入しないビットに設定し、コア９９Ｐ２２へのアクセス要求の送信を禁止した状態へと変更する。また、送信フィルタデータ３３１１において、コア９９Ｐ２２へのアクセス要求の処理の一時停止ビットを「Ｎｏ」にし、コア９９Ｐ２２へのアクセス要求の処理の一時停止状態を解除する。【０３００】
ステップ３（Ｓ３）：アダプタ３０００Ｐ３０は、保持したアクセス要求をコア９９Ｐ２２に再送する前に、送信フィルタデータ３３１１を参照する。送信フィルタデータ３３１１ではコア９９Ｐ２２へのアクセス要求の送信が禁止されていることから、アクセス要求によるパケットを送信できずにエラーを起こしたことを通知するための情報であるアクセスエラー応答をコア９９Ｐ３０に渡す。【０３０１】
本実施形態では、コアからのアクセス要求に対して、相互結合網内の複数のアダプタのそれぞれは、配送情報にしたがってアクセス要求の配送制御を行う。アダプタのそれぞれが保持する配送情報の内容に統一性をもたせることで、一貫性のあるフィルタ制御が可能となる。【０３０２】
また、配送情報を更新する際には、相互結合網内の複数のアダプタに対して、アクセス要求の処理の一時停止の指示と、送信フィルタデータの更新およびアクセス要求の処理の一時停止の解除の指示が所定のコアから一斉になされる。【０３０３】
本実施形態では、アダプタの受信側だけでなく、送信側においても、複数のコアに対するアクセス制御を行うことができ、第１の実施形態と同様な効果が得られる。また、本実施形態では、受信側と送信側の両方でフィルタ制御を行うものであるが、受信側のフィルタ制御を設けなくてもよい。【０３０４】
（第３の実施形態）
第２の実施形態では、アクセス要求の制御をアダプタの送信側のうち送信フィルタ手段が行っていたが、本実施形態は、送信側のパケット送信フィルタ手段が行うものである。以下では、アダプタ以外の構成については、第１の実施形態と同様であるため、その詳細な説明を省略する。【０３０５】
図１７に示したアダプタ３０００の本実施形態の構成について説明する。図７１はアダプタ３０００の本実施形態における構成例を示す図である。【０３０６】
図７１を参照すると、アダプタ３０００は、図１７に示したのと同様に、受信フィルタ手段３３２０及び受信フィルタデータ３３２１を含むアダプタ制御手段３３００と、ルータノードへパケットを送信するパケット送信手段３１００と、ルータノードからのパケットを受信するパケット受信手段３２００とを有する。【０３０７】
さらに、図７１に示すアダプタ３０００は、自身に接続されるコアからのアクセス要求に対応するパケットを外部に送信するか否かの判断及びパケットの処理を一時停止するか否かの判断を行うパケット送信フィルタ手段３１１０と、その判断のために利用する情報であるパケット送信フィルタデータ３１１１とを有する。パケット送信フィルタデータ３１１１は図に示さない記憶手段に格納されている。【０３０８】
パケット送信フィルタ手段３３１０は、パケット送信フィルタデータ３１１１を参照し、自身に接続されるコアからのアクセス要求に対応するパケットを所定の宛先に送信するか否かを判断し、また、所定の宛先のパケットの処理を一時停止するか否かを判断する。パケット送信フィルタデータ３１１１において、所定の宛先のパケットの送信が許可されている場合、パケットをその宛先に送信し、パケットの送信が禁止されている場合、パケット送信手段３１００にパケットを送信しない旨を通知する。また、パケット送信フィルタデータ３１１１において、所定の宛先のパケットの処理が一時停止に設定されている場合、パケットを送信せずに保持し、パケットの処理の一時停止が解除されている場合、その宛先へのパケットの送信が許可されているか否かを調べ、上述のように処理を行う。【０３０９】
次に、パケット送信フィルタデータ３１１１について説明する。図７２はパケット送信フィルタデータ３１１１の一構成例を示す図である。【０３１０】
図７２のパケット送信フィルタデータ３１１１は、アダプタに接続されたコアからのアクセス要求がアダプタ内でパケットに変換され、そのパケットの宛先となるルータノードに対して、送信が許可されているパケットの種類と、アダプタにおいてパケットの処理を一時停止するか否かの情報を示す。【０３１１】
図７２を参照すると、パケットの宛先となるルータノードの識別子と、許可されているパケットの種類を示す項目である「許可ビット」と、パケットの処理を一時停止するか否かを示す項目である「一時停止ビット」とを組とするエントリが設けられている。パケットの宛先、およびパケットの種類の情報は、処理されるための条件である配送情報に相当する。以下に、表が示す内容を具体的に説明する。【０３１２】
宛先がルータノード＃０に対しては、許可ビットが「Ａ」と「Ｂ」であることから、送信するパケットの種類としてＡとＢが許可されている。一時停止ビットが「Ｎｏ」であることから、パケット送信フィルタ手段３３１０は、ルータノード＃０を宛先とするパケットをパケット送信手段３１００から受け取ったときに、パケットの処理を一時停止する必要はない。ルータノード＃１に対しては、送信するパケットの種類としてＡのみが許可され、ルータノード＃２に対しては、送信するパケットの種類としてＣとＤが許可されている。そして、パケット送信フィルタ手段３３１０は、ルータノード＃１、＃２のいずれを宛先とするパケットをパケット送信手段３１００から受け取ったときでも、ルータノード＃０の場合と同様に、パケットの処理を一時停止する必要はない。【０３１３】
一方、宛先がルータノード＃３に対しては、許可ビットが「Ｅ」であることから、送信するパケットの種類としてＥが許可されている。また、一時停止ビットが「Ｙｅｓ」であることから、パケット送信フィルタ手段３３１０は、ルータノード＃３を宛先とするパケットをパケット送信手段３１００から受け取ると、種類によらずパケットの処理を一時停止する必要がある。【０３１４】
ここでは、パケット送信フィルタデータを格納したアダプタに接続されたコア自身からは直接そのパケット送信フィルタデータを更新できないものとしている。パケット送信フィルタデータ３１１１の情報の更新は、高信頼領域内のコアで実行されるアプリケーションソフトで生成される新たなデータ、または、予め設定変更情報が記述されたファイルから読み出されるデータ等に書き換わることで行われる。パケット送信フィルタデータ３１１１の更新方法の具体例については、後述する。この更新は、受信フィルタデータの更新の場合と同様に、半導体集積回路全体の条件や状況に応じて、高信頼領域の範囲の変更が必要なときに行われる。【０３１５】
一方、半導体集積回路として予め所定の条件が設定され、その条件に一致する場合に限り、パケット送信フィルタデータを格納したアダプタに接続されたコア自身から直接そのアダプタのパケット送信フィルタデータの一部または全部を更新可能にしてもよい。この場合、高信頼度なコアからパケット送信フィルタデータを更新するための新たなデータの受信を待つ必要がない。【０３１６】
なお、パケット送信フィルタデータ３１１１は、図７２に示すような表形式の場合に限られない。パケット送信フィルタ手段３１１０が読み出し可能で、読み出した情報にしたがってアクセス制御することができれば、その他の形式でもよい。【０３１７】
また、図７２に示す表では、ルータノードに対応して、送信可能なパケットの種類や、パケットの処理を一時停止すべきか否かの情報を設定しているが、ルータノードの代わりにコアであってもよい。【０３１８】
次に、アダプタ３０００に接続されたコア９９からアクセス要求を受け取り、そのアクセス要求の宛先ノードへの送信が許可されている場合のアダプタ３０００の内部の動作を説明する。図７３は図７１に示したアダプタ３０００の内部動作の一例を説明するための図である。【０３１９】
ステップ１（Ｓ１）：パケット送信手段３１００は、コア９９からアクセス要求を受け取る。ステップ２（Ｓ２）：パケット送信手段３１００は、当該アクセス要求をパケットに変換してパケット送信フィルタ手段３１１０に渡す。【０３２０】
ステップ３（Ｓ３）：パケット送信フィルタ手段３１１０は、パケット送信手段３１００からパケットを受け取ると、パケット送信フィルタデータ３１１１を参照し、当該パケットの宛先ノードへの送信が許可されていると認識する。ステップ４（Ｓ４）：パケット送信フィルタ手段３１１０は、そのパケットを受け取ると、パケットの宛先に指定されたルータノード２０００宛にパケットを送信する。【０３２１】
次に、アダプタ３０００に接続されたコア９９からアクセス要求を受け取り、そのアクセス要求の宛先ノードへの送信が拒否されている場合のアダプタ３０００の内部の動作を説明する。図７４は図７１に示したアダプタ３０００の内部動作の一例を説明するための図である。【０３２２】
ステップ１（Ｓ１）：パケット送信手段３１００は、コア９９からアクセス要求を受け取る。ステップ２（Ｓ２）：パケット送信手段３１００は、当該アクセス要求をパケットに変換してパケット送信フィルタ手段３１１０に渡す。【０３２３】
ステップ３（Ｓ３）：パケット送信フィルタ手段３１１０は、パケット送信手段３１００からパケットを受け取ると、パケット送信フィルタデータ３１１１を参照し、当該パケットの宛先ノードへの送信が禁止されていると認識する。ステップ４（Ｓ４）：パケット送信フィルタ手段３１１０は、そのパケットを処理できなかった旨を通知するためのエラーパケットを生成してパケット送信手段３１００に渡す。【０３２４】
ステップ５（Ｓ５）：パケット送信手段３１００は、そのエラーパケットをアクセスエラー応答に変換してコア９９に渡す。【０３２５】
次に、アダプタ３０００に接続されたコア９９からアクセス要求を受け取り、そのアクセス要求の宛先ノードへの処理が一時停止状態になっている場合のアダプタ３０００の内部の動作を説明する。図７５は図７１に示したアダプタ３０００の内部動作の一例を説明するための図である。【０３２６】
ステップ１（Ｓ１）：パケット送信手段３１００は、コア９９からアクセス要求を受け取る。ステップ２（Ｓ２）：パケット送信手段３１００は、当該アクセス要求をパケットに変換してパケット送信フィルタ手段３１１０に渡す。【０３２７】
ステップ３（Ｓ３）：パケット送信フィルタ手段３１１０は、パケット送信手段３１００からパケットを受け取ると、パケット送信フィルタデータ３１１１を参照し、当該パケットの宛先ノードへの処理が一時停止状態になっていると認識する。パケット送信フィルタ手段３１１０がその旨をパケット送信手段３１００に通知すると、パケット送信手段３１００は、そのパケットを保持する。【０３２８】
次に、アダプタ３０００に接続されたルータノード２０００からパケットを受信し、受信したパケットのデータによりパケット送信フィルタデータ３１１１を更新する場合のアダプタ３０００の内部の動作を説明する。図７６は図７１に示したアダプタ３０００の内部動作の一例を説明するための図である。【０３２９】
ステップ１（Ｓ１）：パケット受信手段３２００は、パケット送信フィルタデータの新たなデータを含むパケットである更新用パケットをルータノード２０００から受け取る。ステップ２（Ｓ２）：パケット受信手段３２００は、受け取った更新用パケットを、パケット送信フィルタデータ３１１１に対して新たなデータの書き込みを要求するアクセス要求に変換し、そのアクセス要求を受信フィルタ手段３３２０に渡す。【０３３０】
ステップ３（Ｓ３）：受信フィルタ手段３３２１は、パケット受信手段３２００からアクセス要求を受け取ると、受信フィルタデータ３３２０を参照し、当該アクセス要求の処理が可能かどうか判断する。その結果、処理に対する一時停止の必要がなく、当該アクセス要求の処理が可能であることを認識する。そして、受信フィルタ手段３３２１は、アクセス要求からパケット送信フィルタデータの新たなデータを読み出してパケット受信手段３２００に送信する。【０３３１】
ステップ４（Ｓ４）：パケット受信手段３２００は、受信フィルタ手段３３２１からパケット送信フィルタデータの新たなデータを受け取ると、その新たなデータをパケット送信フィルタデータ３１１１に書き込む。このようにして、パケット送信フィルタデータ３１１１が更新される。【０３３２】
なお、図７１に示す構成例では、パケット送信フィルタデータ３１１１の更新の際のアクセス制御を受信フィルタ手段３３２１が行っているが、受信フィルタ手段３３２１に限らず、これと同様なアクセス制御を行うことが可能な他の回路が行ってもよい。【０３３３】
ここまで、図７１に示すアダプタ３０００の構成を詳しく説明したが、次に、そのアダプタと、コアと、ルータノードとが組になったものが複数接続された構成について説明する。【０３３４】
上記アダプタ、コア及びルータノードからなる組が複数接続された場合の構成は図３３で説明したものと同様である。そのため、ここでは、図３３に示す構成についての詳細な説明を省略する。【０３３５】
次に、図３３に示した構成において、コア９９Ｐ３０からコア９９Ｐ２２にアクセス要求を行う場合の動作を説明する。この場合、低信頼度なコアから信頼度が規定されていないコアへのアクセス要求が行われるが、このアクセス要求は許可されているものとする。図７７は図３３に示した半導体集積回路の動作の一例を説明するための図である。図７７に示すアダプタは図７１に示したアダプタ３０００に相当する。【０３３６】
ステップ１（Ｓ１）：コア９９Ｐ３０がコア９９Ｐ２２へのアクセス要求をアダプタ３０００Ｐ３０に渡す。アダプタ３０００Ｐ３０は、コア９９Ｐ３０からアクセス要求を受け取ると、アクセス要求をパケットに変換する。続いて、パケット送信フィルタデータ３１１１を参照し、コア９９Ｐ２２に接続されたルータノード２０００Ｐ２２へのパケットの送信が許可されていることを認識すると、コア９９Ｐ２２を宛先としたパケットをルータノード２０００Ｐ３０へ送信する。【０３３７】
ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０から受け取ったパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３０から送出されたパケットは、ルータノード２０００Ｐ３１、２０００Ｐ３２を含む中間ルータノード群を介してルータノード２０００Ｐ２２に到着する。そして、ルータノード２０００Ｐ２２は、受け取ったパケットをアダプタ３０００Ｐ２２に渡し、アダプタ３０００Ｐ２２は当該パケットをコア対応のアクセス要求に変換してコア９９Ｐ２２に渡す。【０３３８】
次に、高信頼度なコア９９Ｐ００が、低信頼度なコア９９Ｐ２０、９９Ｐ３０、９９Ｐ２１及び９９Ｐ３１のそれぞれからコア９９Ｐ２２へのアクセス要求を禁止するため、アダプタ３０００Ｐ２０、３０００Ｐ２１、３０００Ｐ３０及び３０００Ｐ３１におけるパケット送信フィルタデータ内のルータノード２０００Ｐ２２へのパケットの処理を一時停止にする場合の動作を説明する。コア９９Ｐ２２は信頼度が規定されていないコアである。図７８は図３３に示した半導体集積回路の動作の一例を説明するための図である。図７８に示すアダプタは図７１に示したアダプタ３０００に相当する。【０３３９】
ステップ１（Ｓ１）：コア９９Ｐ００が、コア９９Ｐ２０からコア９９Ｐ２２へのアクセス要求の処理を一時停止する旨をアダプタ３０００Ｐ２０に指示するための一時停止要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、ルータノード２０００Ｐ２２へのパケットの処理を一時停止する旨をパケット送信フィルタデータ３１１１に書き込むことを指示するための一時停止パケットをアダプタ３０００Ｐ２０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、中継となるルータノード２０００Ｐ１０を介してルータノード２０００Ｐ２０に到着する。【０３４０】
そして、ルータノード２０００Ｐ２０は、受け取った一時停止パケットをアダプタ３０００Ｐ２０に渡す。アダプタ３０００Ｐ２０は、当該一時停止パケットがルータノード２０００Ｐ２２へのパケットの処理の一時停止を指示するものであることを認識すると、パケット送信フィルタデータ３１１１において、ルータノード２０００Ｐ２２へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Ｙｅｓ」にし、パケットの処理を一時停止状態に変更する。【０３４１】
ステップ２（Ｓ２）：コア９９Ｐ００が、コア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求の処理を一時停止する旨をアダプタ３０００Ｐ３０に指示するための一時停止要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、ルータノード２０００Ｐ２２へのパケットの処理を一時停止する旨をパケット送信フィルタデータ３１１１に書き込むことを指示するための一時停止パケットをアダプタ３０００Ｐ３０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、中継となるルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ３０に到着する。【０３４２】
そして、ルータノード２０００Ｐ３０は、受け取った一時停止パケットをアダプタ３０００Ｐ３０に渡す。アダプタ３０００Ｐ３０は、当該一時停止パケットがルータノード２０００Ｐ２２へのパケットの処理の一時停止を指示するものであることを認識すると、パケット送信フィルタデータ３１１１において、ルータノード２０００Ｐ２２へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Ｙｅｓ」にし、パケットの処理を一時停止状態に変更する。【０３４３】
ステップ３（Ｓ３）：コア９９Ｐ００が、コア９９Ｐ２１からコア９９Ｐ２２へのアクセス要求の処理を一時停止する旨をアダプタ３０００Ｐ２１に指示するための一時停止要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、ルータノード２０００Ｐ２２へのパケットの処理を一時停止する旨をパケット送信フィルタデータ３１１１に書き込むことを指示するための一時停止パケットをアダプタ３０００Ｐ２１を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、中継となるルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ２１に到着する。【０３４４】
そして、ルータノード２０００Ｐ２１は、受け取った一時停止パケットをアダプタ３０００Ｐ２１に渡す。アダプタ３０００Ｐ２１は、当該一時停止パケットがルータノード２０００Ｐ２２へのパケットの処理の一時停止を指示するものであることを認識すると、パケット送信フィルタデータ３１１１において、ルータノード２０００Ｐ２２へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Ｙｅｓ」にし、パケットの処理を一時停止状態に変更する。【０３４５】
ステップ４（Ｓ４）：コア９９Ｐ００が、コア９９Ｐ３１からコア９９Ｐ２２へのアクセス要求の処理を一時停止する旨をアダプタ３０００Ｐ３１に指示するための一時停止要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、ルータノード２０００Ｐ２２へのパケットの処理を一時停止する旨をパケット送信フィルタデータ３１１１に書き込むことを指示するための一時停止パケットをアダプタ３０００Ｐ３１を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、中継となるルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ３０を介してルータノード２０００Ｐ３１に到着する。【０３４６】
そして、ルータノード２０００Ｐ３１は、受け取った一時停止パケットをアダプタ３０００Ｐ３１に渡す。アダプタ３０００Ｐ３１は、当該一時停止パケットがルータノード２０００Ｐ２２へのパケットの処理の一時停止を指示するものであることを認識すると、パケット送信フィルタデータ３１１１において、ルータノード２０００Ｐ２２へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Ｙｅｓ」にし、パケットの処理を一時停止状態に変更する。【０３４７】
次に、高信頼度なコア９９Ｐ００が、低信頼度なコア９９Ｐ２０、９９Ｐ３０、９９Ｐ２１及び９９Ｐ３１のそれぞれからコア９９Ｐ２２へのアクセス要求を禁止するため、アダプタ３０００Ｐ２０、３０００Ｐ２１、３０００Ｐ３０及び３０００Ｐ３１におけるパケット送信フィルタデータ内のコア９９Ｐ２２へのパケットの送信についての許可または禁止を示す項目を更新する場合の動作を説明する。図７９は図３３に示した半導体集積回路の動作の一例を説明するための図である。図７９に示すアダプタは図７１に示したアダプタ３０００に相当する。【０３４８】
ステップ１（Ｓ１）：コア９９Ｐ００が、コア９９Ｐ２０からコア９９Ｐ２２へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、ルータノード２０００Ｐ２２へのパケットの送信を禁止する旨の情報を含む更新用パケットをアダプタ３０００Ｐ２０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新用パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０を介してルータノード２０００Ｐ２０に到着する。【０３４９】
そして、ルータノード２０００Ｐ２０は、受け取った更新用パケットをアダプタ３０００Ｐ２０に渡す。アダプタ３０００Ｐ２０は、当該更新用パケットがルータノード２０００Ｐ２２へのパケットの送信を禁止するものであることを認識すると、パケット送信フィルタデータ３１１１において、一時停止ビットを「Ｙｅｓ」に保ったまま、ルータノード２０００Ｐ２２についてのパケットの種類を示す許可ビットの欄を何も記入しない空スペースに設定し、ルータノード２０００Ｐ２２へのパケットの送信を禁止した状態へと変更する。【０３５０】
ステップ２（Ｓ２）：コア９９Ｐ００が、コア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、ルータノード２０００Ｐ２２へのパケットの送信を禁止する旨の情報を含む更新用パケットをアダプタ３０００Ｐ３０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新用パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ３０に到着する。【０３５１】
そして、ルータノード２０００Ｐ３０は、受け取った更新用パケットをアダプタ３０００Ｐ３０に渡す。アダプタ３０００Ｐ３０は、当該更新用パケットがルータノード２０００Ｐ２２へのパケットの送信を禁止するものであることを認識すると、パケット送信フィルタデータ３１１１において、一時停止ビットを「Ｙｅｓ」に保ったまま、ルータノード２０００Ｐ２２についてのパケットの種類を示す許可ビットの欄を何も記入しない空スペースに設定し、ルータノード２０００Ｐ２２へのパケットの送信を禁止した状態へと変更する。【０３５２】
ステップ３（Ｓ３）：コア９９Ｐ００が、コア９９Ｐ２１からコア９９Ｐ２２へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、ルータノード２０００Ｐ２２へのパケットの送信を禁止する旨の情報を含む更新用パケットをアダプタ３０００Ｐ２１を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新用パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ２１に到着する。【０３５３】
そして、ルータノード２０００Ｐ２１は、受け取った更新用パケットをアダプタ３０００Ｐ２１に渡す。アダプタ３０００Ｐ２１は、当該更新用パケットがルータノード２０００Ｐ２２へのパケットの送信を禁止するものであることを認識すると、パケット送信フィルタデータ３１１１において、一時停止ビットを「Ｙｅｓ」に保ったまま、ルータノード２０００Ｐ２２についてのパケットの種類を示す許可ビットの欄を何も記入しない空スペースに設定し、ルータノード２０００Ｐ２２へのパケットの送信を禁止した状態へと変更する。【０３５４】
ステップ４（Ｓ４）：コア９９Ｐ００が、コア９９Ｐ３１からコア９９Ｐ２２へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、ルータノード２０００Ｐ２２へのパケットの送信を禁止する旨の情報を含む更新用パケットをアダプタ３０００Ｐ３１を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新用パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ３０を介してルータノード２０００Ｐ３１に到着する。【０３５５】
そして、ルータノード２０００Ｐ３１は、受け取った更新用パケットをアダプタ３０００Ｐ３１に渡す。アダプタ３０００Ｐ３１は、当該更新用パケットがルータノード２０００Ｐ２２へのパケットの送信を禁止するものであることを認識すると、パケット送信フィルタデータ３１１１において、一時停止ビットを「Ｙｅｓ」に保ったまま、ルータノード２０００Ｐ２２についてのパケットの種類を示す許可ビットの欄を何も記入しない空スペースに設定し、ルータノード２０００Ｐ２２へのパケットの送信を禁止した状態へと変更する。【０３５６】
次に、高信頼度なコア９９Ｐ００が、低信頼度なコア９９Ｐ２０、９９Ｐ３０、９９Ｐ２１及び９９Ｐ３１のそれぞれからコア９９Ｐ２２へのアクセス要求を禁止する設定を図７９で説明したように行った後、アダプタ３０００Ｐ２０、３０００Ｐ２１、３０００Ｐ３０及び３０００Ｐ３１におけるパケット送信フィルタデータ内のルータノード２０００Ｐ２２へのパケットの処理の一時停止を解除する場合の動作を説明する。図８０は図３３に示した半導体集積回路の動作の一例を説明するための図である。図８０に示すアダプタは図７１に示したアダプタ３０００に相当する。【０３５７】
ステップ１（Ｓ１）：コア９９Ｐ００が、コア９９Ｐ２０からコア９９Ｐ２２へのアクセス要求の処理の一時停止を解除する旨をアダプタ３０００Ｐ２０に指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、ルータノード２０００Ｐ２２へのパケットの処理の一時停止を解除する旨をパケット送信フィルタデータ３１１１に書き込むことを指示するための一時停止解除パケットをアダプタ３０００Ｐ２０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０を介してルータノード２０００Ｐ２０に到着する。【０３５８】
そして、ルータノード２０００Ｐ２０は、受け取った一時停止解除パケットをアダプタ３０００Ｐ２０に渡す。アダプタ３０００Ｐ２０は、当該一時停止解除パケットがルータノード２０００Ｐ２２へのパケットの処理の一時停止の解除を指示するものであることを認識すると、パケット送信フィルタデータ３１１１においてルータノード２０００Ｐ２２へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Ｎｏ」にし、ルータノード２０００Ｐ２２へのパケットの処理の一時停止状態を解除する。【０３５９】
ステップ２（Ｓ２）：コア９９Ｐ００が、コア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求の処理の一時停止を解除する旨をアダプタ３０００Ｐ３０に指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、ルータノード２０００Ｐ２２へのパケットの処理の一時停止を解除する旨をパケット送信フィルタデータ３１１１に書き込むことを指示するための一時停止解除パケットをアダプタ３０００Ｐ３０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ３０に到着する。【０３６０】
そして、ルータノード２０００Ｐ３０は、受け取った一時停止解除パケットをアダプタ３０００Ｐ３０に渡す。アダプタ３０００Ｐ３０は、当該一時停止解除パケットがルータノード２０００Ｐ２２へのパケットの処理の一時停止の解除を指示するものであることを認識すると、パケット送信フィルタデータ３１１１においてルータノード２０００Ｐ２２の一時停止ビットの欄を「Ｎｏ」にし、ルータノード２０００Ｐ２２へのパケットの処理の一時停止状態を解除する。【０３６１】
ステップ３（Ｓ３）：コア９９Ｐ００が、コア９９Ｐ２１からコア９９Ｐ２２へのアクセス要求の処理の一時停止を解除する旨をアダプタ３０００Ｐ２１に指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、ルータノード２０００Ｐ２２へのパケットの処理の一時停止を解除する旨をパケット送信フィルタデータ３１１１に書き込むことを指示するための一時停止解除パケットをアダプタ３０００Ｐ２１を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ２１に到着する。【０３６２】
そして、ルータノード２０００Ｐ２１は、受け取った一時停止解除パケットをアダプタ３０００Ｐ２１に渡す。アダプタ３０００Ｐ２１は、当該一時停止解除パケットがルータノード２０００Ｐ２２へのパケットの処理の一時停止の解除を指示するものであることを認識すると、パケット送信フィルタデータ３１１１においてルータノード２０００Ｐ２２の一時停止ビットの欄を「Ｎｏ」にし、ルータノード２０００Ｐ２２へのパケットの処理の一時停止状態を解除する。【０３６３】
ステップ４（Ｓ４）：コア９９Ｐ００が、コア９９Ｐ３１からコア９９Ｐ２２へのアクセス要求の処理の一時停止を解除する旨をアダプタ３０００Ｐ３１に指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、ルータノード２０００Ｐ２２へのパケットの処理の一時停止を解除する旨をパケット送信フィルタデータ３１１１に書き込むことを指示するための一時停止解除パケットをアダプタ３０００Ｐ３１を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ３０を介してルータノード２０００Ｐ３１に到着する。【０３６４】
そして、ルータノード２０００Ｐ３１は、受け取った一時停止解除パケットをアダプタ３０００Ｐ３１に渡す。アダプタ３０００Ｐ３１は、当該一時停止解除パケットがルータノード２０００Ｐ２２へのパケットの処理の一時停止の解除を指示するものであることを認識すると、パケット送信フィルタデータ３１１１においてルータノード２０００Ｐ２２の一時停止ビットの欄を「Ｎｏ」にし、ルータノード２０００Ｐ２２へのパケットの処理の一時停止状態を解除する。【０３６５】
次に、図７８、図７９及び図８０で説明したようにパケット送信フィルタデータの設定変更が行われた後に、低信頼度なコア９９Ｐ３０がコア９９Ｐ２２にアクセス要求をする場合の動作を説明する。上述したようにパケット送信フィルタデータの設定変更が行われ、低信頼度なコア９９Ｐ３０から信頼度の規定されていないコア９９Ｐ２２へのアクセス要求は禁止されている。図８１は図３３に示した半導体集積回路の動作の一例を説明するための図である。図８１に示すアダプタは図７１に示したアダプタ３０００に相当する。【０３６６】
ステップ１（Ｓ１）：コア９９Ｐ３０は、コア９９Ｐ２２に対するアクセス要求をアダプタ３０００Ｐ３０に渡す。ステップ２（Ｓ２）：アダプタ３０００Ｐ３０は、コア９９Ｐ３０よりアクセス要求を受け取ると、アクセス要求をパケットに変換する。そして、パケット送信フィルタデータ３１１１を参照し、ルータノード２０００Ｐ２２へのパケットの送信が禁止されていることを認識すると、アクセスエラー応答をコア９９Ｐ３０に返す。【０３６７】
次に、１つのアダプタにおける送信フィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、パケット送信フィルタデータを更新することで、所定のコアへのアクセス要求の送信をそのアダプタに許可させない場合の動作を説明する。ここでは、低信頼度なコア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求の処理が一時停止の状態にあり、その後、高信頼度なコア９９Ｐ００がコア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求の送信を禁止に設定し、続いて、アクセス要求の処理の一時停止を解除するものである。図８２は図３３に示した半導体集積回路の動作の一例を説明するための図である。図８２に示すアダプタは図７１に示したアダプタ３０００に相当する。【０３６８】
ステップ１（Ｓ１）：コア９９Ｐ３０は、コア９９Ｐ２２に対するアクセス要求をアダプタ３０００Ｐ３０に渡す。アダプタ３０００Ｐ３０は、コア９９Ｐ３０からアクセス要求を受け取ると、アクセス要求をパケットに変換する。続いて、パケット送信フィルタデータ３１１１を参照し、当該パケットの処理が一時停止状態になっていることを認識すると、パケットを保持する。【０３６９】
ステップ２（Ｓ２）：コア９９Ｐ００が、コア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求と、アダプタ３０００Ｐ３０からルータノード２０００Ｐ２２へのパケットの処理の一時停止を解除する旨をパケット送信フィルタデータ３１１１に書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡す。アダプタ３０００Ｐ００は、コア９９Ｐ００からフィルタデータ更新要求と一時停止解除要求を受け取ると、ルータノード２０００Ｐ２２へのパケットの送信を禁止する旨の情報とルータノード２０００Ｐ２２へのパケットの処理の一時停止を解除する旨をパケット送信フィルタデータ３１１１に書き込むことを指示するための更新・一時停止解除パケットをアダプタ３０００Ｐ３０を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新・一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０を介してルータノード２０００Ｐ３０に到着する。【０３７０】
そして、ルータノード２０００Ｐ３０は、受け取った更新・一時停止解除パケットをアダプタ３０００Ｐ３０に渡す。アダプタ３０００Ｐ３０は、当該更新・一時停止解除パケットがルータノード２０００Ｐ２２へのパケットの送信を禁止する旨と、ルータノード２０００Ｐ２２へのパケットの処理の一時停止の解除とを指示するものであることを認識する。続いて、パケット送信フィルタデータ３１１１において、ルータノード２０００Ｐ２２についての許可ビットの欄を何も記入しない空スペースに設定し、ルータノード２０００Ｐ２２へのパケットの送信を禁止した状態へと変更する。また、パケット送信フィルタデータ３１１１において、ルータノード２０００Ｐ２２へのパケットの処理の一時停止ビットを「Ｎｏ」にし、ルータノード２０００Ｐ２２へのパケットの処理の一時停止状態を解除する。【０３７１】
ステップ３（Ｓ３）：アダプタ３０００Ｐ３０は、保持したパケットをルータノード２０００Ｐ２２宛に再送する前に、パケット送信フィルタデータ３１１１を参照する。パケット送信フィルタデータ３１１１ではルータノード２０００Ｐ２２へのパケットの送信が禁止されていることから、アクセス要求によるパケットを送信できずにエラーを起こしたことを通知するための情報であるアクセスエラー応答をコア９９Ｐ３０に渡す。【０３７２】
本実施形態では、コアからのアクセス要求に対して、相互結合網内の複数のアダプタのそれぞれは、配送情報にしたがってパケットの配送制御を行う。アダプタのそれぞれが保持する配送情報の内容に統一性をもたせることで、一貫性のあるフィルタ制御が可能となる。【０３７３】
また、配送情報を更新する際には、相互結合網内の複数のアダプタに対して、パケットの処理の一時停止の指示と、パケット送信フィルタデータの更新およびパケットの処理の一時停止の解除の指示が所定のコアから一斉になされる。【０３７４】
本実施形態では、コアからアクセス要求を外部に送出する際、パケットに変換した後、パケットを配送するか否かの判定を行うことで、第１の実施形態と同様な効果が得られる。この場合、第１の実施形態や第２の実施形態で説明したアダプタフィルタ制御手段３３００でフィルタ制御を行わなくてもよい。【０３７５】
（第４の実施形態）
第１の実施形態から第３の実施形態では、アクセス要求の制御をアダプタが行っていたが、本実施形態は、ルータノードが行うものである。以下では、ルータノード以外の構成については、第１の実施形態と同様であるため、その詳細な説明を省略する。【０３７６】
本実施形態のルータノードの構成を説明する。図８３は本実施形態のルータノード２０００の構成例を示す図である。図７に示したルータノードと同様な構成についてはその詳細な説明を省略する。【０３７７】
図８３を参照すると、この構成例では、図７に示したルータノード２０００のルーティング制御手段２１００がフィルタ付ルーティング制御手段２１０１に置換されていることが特徴である。【０３７８】
フィルタ付ルーティング制御手段２１０１は、隣接するルータノード及びアダプタのそれぞれと接続される入力チャネルのパケットのヘッダに含まれる宛先の情報を参照し、パケットの宛先に応じてどの入力チャネルをどの出力チャネルに接続すればよいかを、スイッチ回路２０３０に通知する。また、パケットの送信元のルータノード及び宛先のルータノードの情報とともにどの範囲でパケットの処理が許可されているかを示すルータフィルタデータ２１４１を参照して、配送対象のパケットをルーティングするかどうかを決定する。ルータフィルタデータ２１４１において、パケットの処理を一時停止すべきか否かの情報を参照して、配送対象のパケットを自ルータノードへ再送したり、あるいは、再度ルーティング制御を行ったりする。また、パケットを処理できなかったときに、その旨を送信元に通知するためのエラーパケットを生成する。【０３７９】
応答パケット再送手段２０５０は、配送対象のパケットの処理ができなかったときに、エラーパケットを送信元に送る。また、処理の一時停止対象になったパケットをフィルタ付ルーティング制御手段２１０１から再送パケットとして受け取ると、再送パケットを相互結合網に送出させる。【０３８０】
よって、フィルタ付ルーティング制御手段２１０１は、ルーティング制御手段２１００のアクセス制御機構が設けられているだけでなく、一時停止情報を参照してパケットの配送を制御することが組み込まれている点に特徴がある。【０３８１】
次に、フィルタ付ルーティング制御手段２１０１の構成を説明する。図８４はフィルタ付ルーティング制御手段の一構成例を示す図である。【０３８２】
図８４を参照すると、フィルタ付ルーティング制御手段２１０１は、図１１に示したヘッダ解析手段２１１０、経路決定手段２１２０及び調停手段２１３０の他に、パケットの送信元ルータノード及び宛先ルータノード並びにそのパケットのアクセス要求の種類などからパケットのルーティングを制限するルータフィルタ制御手段２１４０を有する。【０３８３】
ルータフィルタ制御手段２１４０には、パケットをルーティングする際に参照するためのルータフィルタデータ２１４１が格納されている。ルータフィルタデータ２１４１の構成については後述する。【０３８４】
ルータフィルタ制御手段２１４０は、ヘッダ解析手段２１１０からパケットの宛先を示す宛先情報及びパケットの送信元を示す送信元情報を受け取る。また、自ノードにアダプタを介して接続されるコアを宛先としているパケットには、入力チャネルに存在するパケットからそのアクセス要求の情報を受け付ける。そして、ルータフィルタデータ２１４１を参照し、該パケットを自ノードのコア宛にアダプタに渡してよいか否かを判定する。そのパケットの自ノードへの送信が許可されていない場合には、パケットを送信できない旨を通知するためのエラーパケットを生成し、上記パケットの送信元宛にエラーパケットを送信する。また、ルータフィルタデータ２１４１を参照し、パケットの処理が一時停止であるか否かを調べ、一時停止になっていれば、上記パケットの処理を行わずに、隣接するルータノードに送出する。これにより、送出されたパケットは相互結合網内のルータノードによって配送され、再び戻ってくる。【０３８５】
次に、ルータフィルタデータ２１４１について説明する。図８５はルータフィルタデータ２１４１の一構成例を説明するための図である。ここでは、ルータフィルタデータ２１４１を格納するルータノードにアダプタを介して接続されたコアがメモリの場合である。【０３８６】
図８５に示すルータフィルタデータ２１４１は、上記メモリに対して外部からのアクセス要求がどの範囲で、どの種類の要求に関して許可されているかということと、どの送信元のルータノードからどの宛先のルータノードに対してどのような種類のパケットを配送するかを示している。【０３８７】
図８５を参照すると、パケットの宛先のルータノードの識別子と、送信元のルータノードと、パケットの種類を示す項目である「許可ビット」と、パケットの処理を一時停止するか否かを示す項目である「一時停止ビット」とを組とするエントリが設けられている。ただし、パケットの宛先が自ルータノードの場合には、自ルータノードにアダプタを介して接続されたメモリへのアクセス要求に関して、送信元のルータノードに対応して、どの記憶領域で、どの種類の要求を許可するかが記述されている。パケットの宛先、送信元、メモリ領域、およびパケットの種類の情報は、処理されるための条件である配送情報に相当する。以下に、表が示す内容を具体的に説明する。【０３８８】
パケットの宛先がルータノード＃４であり、送信元がルータノード＃０の場合には、許可ビットが「Ｃ」と「Ｄ」であることから、配送するパケットの種類としてはＣとＤが許可されている。一時停止ビットが「Ｎｏ」であることから、ルータフィルタ制御手段２１４０は、ルータノード＃４からルータノード＃０宛へのパケットを受け取ったときに、パケットの処理を一時停止する必要はない。【０３８９】
パケットの宛先がルータノード＃５であり、送信元がルータノード＃１の場合には、許可ビットが「Ａ」であることから、配送するパケットの種類としてはＡが許可されている。一時停止ビットが「Ｎｏ」であることから、ルータフィルタ制御手段２１４０は、ルータノード＃５からルータノード＃１宛へのパケットを受け取ったときに、パケットの処理を一時停止する必要はない。【０３９０】
一方、パケットの宛先が自ルータノードであり、送信元がルータノード＃０の場合には、上記メモリのアドレス範囲0x  00000000〜0x  20000000の領域に対して、許可ビットが「Ｒ」であることから、読み出しのアクセス要求が許可されている。一時停止ビットが「Ｎｏ」であることから、ルータフィルタ制御手段２１４０は、ルータノード＃０からのアクセス要求によるパケットを受け取ったときに、パケットの処理を一時停止する必要はない。【０３９１】
パケットの宛先が自ルータノードであり、送信元がルータノード＃１の場合には、上記メモリのアドレス範囲0x  00000000〜0x  10000000の高信頼領域に対しては、許可ビットが「Ｒ」であることから、読み出しのアクセス要求が許可されている。一時停止ビットが「Ｙｅｓ」であることから、ルータフィルタ制御手段２１４０は、ルータノード＃１から上記高信頼領域に対するアクセス要求によるパケットを受け取ったときに、パケットの処理を一時停止する必要がある。アドレス範囲0x  10000000〜0x  20000000の低信頼領域に対しては、許可ビットが「Ｒ」と「Ｗ」であることから、読み出しと書き込みの両方のアクセス要求が許可されている。一時停止ビットが「Ｎｏ」であることから、ルータフィルタ制御手段２１４０は、ルータノード＃１から上記低信頼領域に対するアクセス要求によるパケットを受け取ったときに、パケットの処理を一時停止する必要がない。【０３９２】
ここでは、ルータフィルタデータを格納したルータノードにアダプタを介して接続されたコア自身からは直接そのルータフィルタデータを更新できないものとしている。ルータフィルタデータ２１４１の情報の更新は、高信頼領域内のコアで実行されるアプリケーションソフトで生成される新たなデータ、または、予め設定変更情報が記述されたファイルから読み出されるデータ等に書き換わることで行われる。ルータフィルタデータ２１４１の更新方法の具体例については、後述する。この更新は、受信フィルタデータの更新の場合と同様に、半導体集積回路全体の条件や状況に応じて、高信頼領域の範囲の変更が必要なときに行われる。【０３９３】
一方、半導体集積回路として予め所定の条件が設定され、その条件に一致する場合に限り、ルータフィルタデータを格納したルータノードにアダプタを介して接続されたコア自身から直接そのアダプタのパケット送信フィルタデータの一部または全部を更新可能にしてもよい。この場合、高信頼度なコアからパケット送信フィルタデータを更新するための新たなデータの受信を待つ必要がない。【０３９４】
なお、ルータフィルタデータ２１４１は、図８５に示すような表形式の場合に限られない。ルータフィルタ制御手段２１４０が読み出し可能で、読み出した情報にしたがってアクセス制御することができれば、その他の形式でもよい。【０３９５】
また、図８５に示す表では、ルータノードに対応して、送信可能なパケットの種類や、パケットの処理を一時停止すべきか否かの情報を設定しているが、送信元や宛先がルータノードの代わりにコアであってもよい。【０３９６】
次に、ルータノードが入力チャネルを介してパケットを他のルータノードから受信した際、そのパケットの配送が許可されている場合のフィルタ付ルーティング制御手段２１０１の動作を説明する。図８６は図８４に示したフィルタ付ルーティング制御手段２１０１の動作の一例を説明するための図である。【０３９７】
ステップ１（Ｓ１）：ヘッダ解析手段２１１０は、入力チャネルを介してパケットのヘッダ情報を受け取る。ステップ２（Ｓ２）：ヘッダ解析手段２１１０は、受け取ったヘッダ情報から、そのパケットの宛先のルータノード及び送信元のルータノードの情報を読み出して経路決定手段２１２０及びルータフィルタ制御手段２１４０に通知する。【０３９８】
ステップ３（Ｓ３）：ルータフィルタ制御手段２１４０は、宛先のルータノード及び送信元のルータノードの情報を受け取ると、ルータフィルタデータ２１４１を参照し、そのパケットのルーティングが許可されているものか否かを調べる。ここでは、そのルーティングが許可されていることを認識する。なお、宛先が自ルータノードの場合、入力チャネルのパケットをアクセス要求に変換して、該アクセス要求の情報を取得する。ステップ４（Ｓ４）：ルータフィルタ制御手段２１４０は、ルーティングを許可する旨を経路決定手段２１２０へと通知する。【０３９９】
ステップ５（Ｓ５）：経路決定手段２１２０は、ルータフィルタ制御手段２１４０からルーティングを許可する旨の通知を受け取ると、パケットの宛先のルータノードの情報に基づいてパケットの送出先に適した出力チャネルを決定し、その出力チャネルを特定するための出力チャネル情報を調停手段２１３０に通知する。【０４００】
ステップ６（Ｓ６）：調停手段２１３０は、出力チャネル情報が示す出力チャネルに競合がないことを確認し、上記パケットが入力された入力チャネルを指定の出力チャネルに接続する旨の出力ノード情報をスイッチ回路２０３０に渡す。【０４０１】
次に、ルータノードが入力チャネルを介してパケットを他のルータノードから受信した際、そのパケットの配送が許可されていない場合のフィルタ付ルーティング制御手段２１０１の動作を説明する。図８７は図８４に示したフィルタ付ルーティング制御手段２１０１の動作の一例を説明するための図である。【０４０２】
ステップ１（Ｓ１）：ヘッダ解析手段２１１０は、入力チャネルを介してパケットのヘッダ情報を受け取る。ステップ２（Ｓ２）：ヘッダ解析手段２１１０は、受け取ったヘッダ情報から、そのパケットの宛先のルータノード及び送信元のルータノードの情報を読み出して経路決定手段２１２０及びルータフィルタ制御手段２１４０に通知する。【０４０３】
ステップ３（Ｓ３）：ルータフィルタ制御手段２１４０は、宛先のルータノード及び送信元のルータノードの情報を受け取ると、ルータフィルタデータ２１４１を参照し、そのパケットのルーティングが許可されているものか否かを調べる。ここでは、そのルーティングが許可されていないことを認識する。ステップ４（Ｓ４）：ルータフィルタ制御手段２１４０は、ルーティングを拒否する旨を経路決定手段２１２０へと通知する。【０４０４】
ステップ５（Ｓ５）：ルータフィルタ制御手段２１４０は、パケットを処理できなかった旨を通知するためのエラーパケットを生成し、エラーパケットを応答パケット再送手段２０５０に渡す。【０４０５】
次に、ルータノードが入力チャネルを介してパケットを他のルータノードから受信した際、そのパケットの処理を一時停止する場合のフィルタ付ルーティング制御手段２１０１の動作を説明する。図８８は図８４に示したフィルタ付ルーティング制御手段２１０１の動作の一例を説明するための図である。【０４０６】
ステップ１（Ｓ１）：ヘッダ解析手段２１１０は、入力チャネルを介してパケットのヘッダ情報を受け取る。ステップ２（Ｓ２）：ヘッダ解析手段２１１０は、受け取ったヘッダ情報から、そのパケットの宛先のルータノード及び送信元のルータノードの情報を読み出して経路決定手段２１２０及びルータフィルタ制御手段２１４０に通知する。【０４０７】
ステップ３（Ｓ３）：ルータフィルタ制御手段２１４０は、宛先のルータノード及び送信元のルータノードの情報を受け取ると、ルータフィルタデータ２１４１を参照し、そのパケットのルーティングが許可されているものか否かを調べる。ここでは、そのパケットの処理を一時停止すべきものと認識し、パケットの処理を一時停止する。【０４０８】
ステップ４（Ｓ４）：ルータフィルタ制御手段２１４０は、対象のパケットを自ルータノードに再度送られてくるようにするために、そのパケットを再送パケットとして応答パケット再送手段２０５０に渡す。【０４０９】
次に、ルータノードが入力チャネルを介してパケットを他のルータノードから受信した際、そのパケットがフィルタルータデータを更新するためのデータである場合のフィルタ付ルーティング制御手段２１０１の動作を説明する。図８９は図８４に示したフィルタ付ルーティング制御手段２１０１の動作の一例を説明するための図である。【０４１０】
ステップ１（Ｓ１）：ヘッダ解析手段２１１０は、入力チャネルを介してパケット送信フィルタデータの新たなデータを含むパケットである更新用パケットのヘッダ情報を受け取る。ステップ２（Ｓ２）：ヘッダ解析手段２１１０は、受け取ったヘッダ情報から、そのパケットの宛先のルータノード及び送信元のルータノードの情報を読み出して経路決定手段２１２０及びルータフィルタ制御手段２１４０に通知する。【０４１１】
ステップ３（Ｓ３）：ルータフィルタ制御手段２１４０は、宛先のルータノード及び送信元のルータノードの情報を受け取ると、ルータフィルタデータ２１４１を参照し、そのパケットのルーティングが許可されているものか否かを調べる。ここでは、宛先が自ルータノードであることから、入力チャネルの更新用パケットをアクセス要求に変換して、アクセス要求がルータフィルタデータ２１４１の更新であることを認識する。そして、該アクセス要求に含まれるデータを読み出し、ルータフィルタデータ２１４１を更新する。【０４１２】
次に、ルータフィルタデータ２１４１を更新する場合のルータノード２０００の動作を説明する。図９０は本実施形態のルータノード２０００の動作の一例を説明するための図である。【０４１３】
ステップ１（Ｓ１）：リンク制御回路２０１０Ａは、隣接するルータノードから更新用パケットを受信する。ステップ２（Ｓ２）：リンク制御回路２０１０Ａは、上記更新用パケットをバッファ２０２０Ａに保存する。ステップ３（Ｓ３）：バッファ２０２０Ａは、格納した更新用パケットをスイッチ回路２０３０へ入力可能にするために、スイッチ回路２０３０と接続する。【０４１４】
ステップ４（Ｓ４）：フィルタ付ルーティング制御手段２１０１は、バッファ２０２０Ａ内にある更新用パケットのヘッダ情報を読み出すと、そのパケットがルータフィルタデータの更新目的であることを認識する。そして、スイッチ回路２０３０を介さず、バッファ２０２０Ａから更新用パケットを直接受け取り、自身のルータフィルタデータ２１４１を更新する。【０４１５】
次に、パケットの処理を一時停止する場合のルータノード２０００の動作を説明する。図９１は本実施形態のルータノード２０００の動作の一例を説明するための図である。【０４１６】
ステップ１（Ｓ１）：リンク制御回路２０１０Ａは、隣接するルータノードからパケットを受信する。ステップ２（Ｓ２）：リンク制御回路２０１０Ａは、上記パケットをバッファ２０２０Ａに保存する。ステップ３（Ｓ３）：バッファ２０２０Ａは、格納したパケットをスイッチ回路２０３０へ入力可能にするために、スイッチ回路２０３０と接続する。【０４１７】
ステップ４（Ｓ４）：フィルタ付ルーティング制御手段２１０１は、バッファ２０２０Ａ内にあるパケットのヘッダ情報を読み出し、続いて、ルータフィルタデータ２１４１を参照すると、当該パケットのルーティングを一時停止すべきと判断する。ステップ５（Ｓ５）：フィルタ付ルーティング制御手段２１０１は、上記パケットを自ルータノード宛の再送パケットとして応答パケット再送手段２０５０に渡す。【０４１８】
ステップ６（Ｓ６）：応答パケット再送手段２０５０は、フィルタ付ルーティング制御手段２１０１から再送パケットを受け取ると、再送パケットをバッファ２０２０Ｇに保存する。【０４１９】
ステップ７（Ｓ７）：バッファ２０２０Ｇは、格納した再送パケットをスイッチ回路２０３０へ入力可能にするために、スイッチ回路２０３０と接続する。フィルタ付ルーティング制御手段２１０１は、バッファ２０２０Ｇに格納された再送パケットのヘッダ情報を読み出し、自ルータノードを宛先とするパケットであることを認識する。しかし、このパケットの処理が一時停止になっていることから、再送パケットを相互結合網に送出するために、入力バッファ２０２０Ｇと接続する出力バッファをいずれか１つ決定する。ここでは、出力バッファ２０２０Ｄに決定する。ステップ８（Ｓ８）：フィルタ付ルーティング制御手段２１０１は、ステップ７で決定した出力バッファを示す出力バッファ情報をスイッチ回路２０３０に通知する。【０４２０】
ステップ９（Ｓ９）：スイッチ回路２０３０は、フィルタ付ルーティング制御手段２１０１から出力バッファ情報を受け取ると、入力バッファ２０２０Ｇと出力バッファ２０２０Ｄとを接続する。ステップ１０（Ｓ１０）：リンク制御回路２０１０Ｄは、出力バッファ２０２０Ｄ内の再送パケットを読み出し、隣接するルータノードへの再送パケットの配送準備を開始する。ステップ１１（Ｓ１１）：リンク制御回路２０１０Ｄは、隣接するルータノードへ再送パケットを送信する。【０４２１】
次に、コアからのアクセス要求がパケットに変換され、そのパケットをアダプタを介して受け取り、パケットのルーティングを拒否する場合のルータノード２０００の動作を説明する。図９２は本実施形態のルータノード２０００の動作の一例を説明するための図である。【０４２２】
ステップ１（Ｓ１）：リンク制御回路２０１０Ｃは、アダプタからパケットを受信する。ステップ２（Ｓ２）：リンク制御回路２０１０Ｃは、上記パケットをバッファ２０２０Ｃに保存する。ステップ３（Ｓ３）：バッファ２０２０Ｃは、格納したパケットをスイッチ回路２０３０へ入力可能にするために、スイッチ回路２０３０と接続する。【０４２３】
ステップ４（Ｓ４）：フィルタ付ルーティング制御手段２１０１は、バッファ２０２０Ｃ内にあるパケットのヘッダ情報を読み出し、続いて、ルータフィルタデータ２１４１を参照すると、当該パケットのルーティングを拒否すべきと判断する。ステップ５（Ｓ５）：フィルタ付ルーティング制御手段２１０１は、上記パケットを処理できなかった旨を通知するためのエラーパケットを生成して応答パケット再送手段２０５０に渡す。【０４２４】
ステップ６（Ｓ６）：応答パケット再送手段２０５０は、フィルタ付ルーティング制御手段２１０１からエラーパケットを受け取ると、エラーパケットをバッファ２０２０Ｇに保存する。【０４２５】
ステップ７（Ｓ７）：バッファ２０２０Ｇは、格納したエラーパケットをスイッチ回路２０３０へ入力可能にするために、スイッチ回路２０３０と接続する。フィルタ付ルーティング制御手段２１０１は、バッファ２０２０Ｇに格納されたエラーパケットのヘッダ情報を読み出し、自ルータノードにアダプタを介して接続されるコアを宛先とするパケットであることを認識する。エラーパケットをアダプタに送出するために、入力バッファ２０２０Ｇと接続する出力バッファとして出力バッファ２０２０Ｅに決定する。ステップ８（Ｓ８）：フィルタ付ルーティング制御手段２１０１は、ステップ７で決定した出力バッファを示す出力バッファ情報をスイッチ回路２０３０に通知する。【０４２６】
ステップ９（Ｓ９）：スイッチ回路２０３０は、フィルタ付ルーティング制御手段２１０１から出力バッファ情報を受け取ると、入力バッファ２０２０Ｇと出力バッファ２０２０Ｅとを接続する。ステップ１０（Ｓ１０）：リンク制御回路２０１０Ｅは、出力バッファ２０２０Ｅ内のエラーパケットを読み出し、アダプタへのエラーパケットの配送準備を開始する。ステップ１１（Ｓ１１）：リンク制御回路２０１０Ｅは、アダプタへエラーパケットを送信する。【０４２７】
ここまで、図８３に示すルータノード２０００の構成を詳しく説明したが、次に、そのルータノードと、コアと、アダプタとが組になったものが複数接続された構成について説明する。【０４２８】
上記ルータノード、コア及びアダプタからなる組が複数接続された場合の構成は図３３で説明したものと同様である。そのため、ここでは、図３３に示す構成についての詳細な説明を省略する。【０４２９】
次に、図３３に示した構成において、コア９９Ｐ３０からコア９９Ｐ２２にアクセス要求を行う場合の動作を説明する。この場合、低信頼度なコアから信頼度が規定されていないコアへのアクセス要求が行われるが、このアクセス要求は許可されているものとする。図９３は図３３に示した半導体集積回路の動作の一例を説明するための図である。図９３に示すルータノードは図８３に示したルータノード２０００に相当する。【０４３０】
ステップ１（Ｓ１）：コア９９Ｐ３０がコア９９Ｐ２２へのアクセス要求をアダプタ３０００Ｐ３０に渡す。アダプタ３０００Ｐ３０は、コア９９Ｐ３０からアクセス要求を受け取ると、アクセス要求をパケットに変換する。続いて、コア９９Ｐ２２を宛先としたパケットをルータノード２０００Ｐ３０へ送信する。【０４３１】
ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０から受け取ったパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３０から送出されたパケットは、ルータノード２０００Ｐ３１、２０００Ｐ３２を含む中間ルータノード群を介してルータノード２０００Ｐ２２に到着する。【０４３２】
そして、ルータノード２０００Ｐ２２は、ルータノード２０００Ｐ３２からパケットを受け取ると、ルータフィルタデータを参照し、受け取ったパケットによるコア９９Ｐ２２へのアクセス要求が許可されていることを認識すると、そのパケットをアダプタ３０００Ｐ２２に渡す。アダプタ３０００Ｐ２２は、受け取ったパケットをコア対応のアクセス要求に変換してコア９９Ｐ２２に渡す。【０４３３】
次に、高信頼度なコア９９Ｐ００が、低信頼度なコア９９Ｐ３０からコア９９Ｐ２２及び９９Ｐ３２へのアクセス要求を禁止するため、ルータノード２０００Ｐ２２及び２０００Ｐ３２におけるコア９９Ｐ３０からのパケットの処理を一時停止にする場合の動作を説明する。コア９９Ｐ２２、９９Ｐ３２は信頼度が規定されていないコアである。図９４は図３３に示した半導体集積回路の動作の一例を説明するための図である。図９４に示すルータノードは図８３に示したルータノード２０００に相当する。【０４３４】
ステップ１（Ｓ１）：コア９９Ｐ００が、コア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求の処理を一時停止する旨をルータノード２０００Ｐ２２に指示するための一時停止要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのパケットの処理を一時停止する旨をルータフィルタデータに書き込むことを指示するための一時停止パケットをルータノード２０００Ｐ２２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、中継となるルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ２１を介してルータノード２０００Ｐ２２に到着する。【０４３５】
そして、ルータノード２０００Ｐ２２は、ルータノード２０００Ｐ２１を介して一時停止パケットを受け取る。そして、一時停止パケットがコア９９Ｐ２２へのパケットの処理の一時停止を指示するものであることを認識すると、ルータフィルタデータにおいて、コア９９Ｐ２２へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Ｙｅｓ」にし、パケットの処理を一時停止状態に変更する。【０４３６】
ステップ２（Ｓ２）：コア９９Ｐ００が、コア９９Ｐ３０からコア９９Ｐ３２へのアクセス要求の処理を一時停止する旨をルータノード２０００Ｐ３２に指示するための一時停止要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ３２へのパケットの処理を一時停止する旨をルータフィルタデータに書き込むことを指示するための一時停止パケットをルータノード２０００Ｐ３２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、中継となるルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ３０、２０００Ｐ３１を介してルータノード２０００Ｐ３２に到着する。【０４３７】
そして、ルータノード２０００Ｐ３２は、ルータノード２０００Ｐ３１を介して一時停止パケットを受け取る。そして、一時停止パケットがコア９９Ｐ３２へのパケットの処理の一時停止を指示するものであることを認識すると、ルータフィルタデータにおいて、コア９９Ｐ３２へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Ｙｅｓ」にし、パケットの処理を一時停止状態に変更する。【０４３８】
次に、高信頼度なコア９９Ｐ００が、低信頼度なコア９９Ｐ３０からコア９９Ｐ２２及び９９Ｐ３２へのアクセス要求を禁止するため、パケットの処理を一時停止させた後、ルータノード２０００Ｐ２２及び２０００Ｐ３２におけるルータフィルタデータを更新する場合の動作を説明する。図９５は図３３に示した半導体集積回路の動作の一例を説明するための図である。図９５に示すルータノードは図８３に示したルータノード２０００に相当する。【０４３９】
ステップ１（Ｓ１）：コア９９Ｐ００が、コア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのパケットの処理を禁止する旨の情報を含む更新用パケットをルータノード２０００Ｐ２２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新用パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ２１を介してルータノード２０００Ｐ２２に到着する。【０４４０】
そして、ルータノード２０００Ｐ２２は、ルータノード２０００Ｐ２１を介して更新用パケットを受け取る。そして、更新用パケットがコア９９Ｐ２２へのパケットの処理を禁止するものであることを認識すると、ルータフィルタデータにおいて、一時停止ビットを「Ｙｅｓ」に保ったまま、コア９９Ｐ２２に対するアクセス要求の種類を示す許可ビットの欄を何も記入しない空スペースに設定し、コア９９Ｐ２２へのアクセス要求を禁止した状態へと変更する。【０４４１】
ステップ２（Ｓ２）：コア９９Ｐ００が、コア９９Ｐ３０からコア９９Ｐ３２へのアクセス要求を禁止する内容にフィルタデータを更新するためのフィルタデータ更新要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ３２へのパケットの処理を禁止する旨の情報を含む更新用パケットをルータノード２０００Ｐ３２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新用パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ３０、２０００Ｐ３１を介してルータノード２０００Ｐ３２に到着する。【０４４２】
そして、ルータノード２０００Ｐ３２は、ルータノード２０００Ｐ３１を介して更新用パケットを受け取る。そして、更新用パケットがコア９９Ｐ３２へのパケットの処理を禁止するものであることを認識すると、ルータフィルタデータにおいて、一時停止ビットを「Ｙｅｓ」に保ったまま、コア９９Ｐ３２に対するアクセス要求の種類を示す許可ビットの欄を何も記入しない空スペースに設定し、コア９９Ｐ３２へのアクセス要求を禁止した状態へと変更する。【０４４３】
次に、高信頼度なコア９９Ｐ００が、低信頼度なコア９９Ｐ３０からコア９９Ｐ２２及び９９Ｐ３２へのアクセス要求を禁止する設定を図９５で説明したように行った後、ルータノード２０００Ｐ２２及び２０００Ｐ３２におけるパケットの処理の一時停止を解除する場合の動作を説明する。図９６は図３３に示した半導体集積回路の動作の一例を説明するための図である。図９６に示すルータノードは図８３に示したルータノード２０００に相当する。【０４４４】
ステップ１（Ｓ１）：コア９９Ｐ００が、コア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求の処理の一時停止を解除する旨をルータノード２０００Ｐ２２に指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ２２へのパケットの処理の一時停止を解除する旨をルータフィルタデータに書き込むことを指示するための一時停止解除パケットをルータノード２０００Ｐ２２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ２１を介してルータノード２０００Ｐ２２に到着する。【０４４５】
そして、ルータノード２０００Ｐ２２は、ルータノード２０００Ｐ２１を介して一時停止解除パケットを受け取る。そして、一時停止解除パケットがコア９９Ｐ２２へのパケットの処理の一時停止を解除するものであることを認識すると、ルータフィルタデータにおいてコア９９Ｐ２２へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Ｎｏ」にし、コア９９Ｐ２２へのパケットの処理の一時停止状態を解除する。【０４４６】
ステップ２（Ｓ２）：コア９９Ｐ００が、コア９９Ｐ３０からコア９９Ｐ３２へのアクセス要求の処理の一時停止を解除する旨をルータノード２０００Ｐ３２に指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡すと、アダプタ３０００Ｐ００は、コア９９Ｐ３２へのパケットの処理の一時停止を解除する旨をルータフィルタデータに書き込むことを指示するための一時停止解除パケットをルータノード２０００Ｐ３２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ３０、２０００Ｐ３１を介してルータノード２０００Ｐ３２に到着する。【０４４７】
そして、ルータノード２０００Ｐ３２は、ルータノード２０００Ｐ３１を介して一時停止解除パケットを受け取る。そして、一時停止解除パケットがコア９９Ｐ３２へのパケットの処理の一時停止を解除するものであることを認識すると、ルータフィルタデータにおいてコア９９Ｐ３２へのパケットの処理を一時停止するか否かを示す一時停止ビットを「Ｎｏ」にし、コア９９Ｐ３２へのパケットの処理の一時停止状態を解除する。【０４４８】
次に、図９４、図９５及び図９６で説明したようにルータフィルタデータの設定変更が行われた後に、低信頼度なコア９９Ｐ３０がコア９９Ｐ２２にアクセス要求をする場合の動作を説明する。上述したようにルータフィルタデータの設定変更が行われ、低信頼度なコア９９Ｐ３０から信頼度の規定されていないコア９９Ｐ２２へのアクセス要求は禁止されている。図９７は図３３に示した半導体集積回路の動作の一例を説明するための図である。図９７に示すルータノードは図８３に示したルータノード２０００に相当する。【０４４９】
ステップ１（Ｓ１）：コア９９Ｐ３０は、コア９９Ｐ２２に対するアクセス要求をアダプタ３０００Ｐ３０に渡す。アダプタ３０００Ｐ３０は、コア９９Ｐ３０よりアクセス要求を受け取ると、アクセス要求をパケットに変換する。そして、コア９９Ｐ２２を宛先としてパケットをルータノード２０００Ｐ３０へ送信する。ルータノード２０００Ｐ３０から送出されたパケットは、ルータノード２０００Ｐ３１及び２０００Ｐ３２を含む中間ルータノード群を介して、ルータノード２０００Ｐ２２に到着する。【０４５０】
そして、ルータノード２０００Ｐ２２は、ルータノード２０００Ｐ３２からパケットを受け取ると、ルータフィルタデータを参照する。続いて、当該パケットによるアクセス要求が許可されていないことを認識すると、コア９９Ｐ３０に対してアクセスエラーを通知するためのエラーパケットをコア９９Ｐ３０宛で送出する。【０４５１】
エラーパケットは、ルータノード２０００Ｐ２２から送出されると、ルータノード２０００Ｐ３２及び２０００Ｐ３１を含む中間ルータノード群を介してルータノード２０００Ｐ３０に到着する。その後、ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０にエラーパケットを渡す。アダプタ３０００Ｐ３０は、ルータノード２０００Ｐ３０からエラーパケットを受け取ると、エラーパケットをコアへのエラー応答に変換してコア９９Ｐ３０に渡す。なお、エラーパケットがアクセス要求のパケットが配送された経路を逆方向に配送される場合で説明したが、この経路とは異なる経路で配送されてもよい。【０４５２】
次に、１つのルータノードにおけるルータフィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、ルータフィルタデータを更新することで、所定のコアからのアクセス要求をそのルータノードに処理させる場合の動作を説明する。ここでは、低信頼度なコア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求の処理が一時停止の状態にあり、その後、高信頼度なコア９９Ｐ００がコア９９Ｐ３０からのアクセス要求の処理をルータノード２０００Ｐ２２で処理可能に設定し、続いて、アクセス要求の処理の一時停止を解除するものである。図９８は図３３に示した半導体集積回路の動作の一例を説明するための図である。図９８に示すルータノードは図８３に示したルータノード２０００に相当する。【０４５３】
ステップ１（Ｓ１）：コア９９Ｐ３０がアダプタ３０００Ｐ３０にアクセス要求を渡すと、アダプタ３０００Ｐ３０は、アクセス要求をパケットに変換し、コア９９Ｐ２２を宛先としたパケットをルータノード２０００Ｐ３０へ送信する。ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０から受け取ったパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３０から送出されたパケットは、ルータノード２０００Ｐ３１、２０００Ｐ３２を含む中間ルータノード群を介してルータノード２０００Ｐ２２に到着する。【０４５４】
そして、ルータノード２０００Ｐ２２は、ルータノード２０００Ｐ３２からパケットを受け取ると、ルータフィルタデータを参照する。続いて、当該パケットによるアクセス要求の処理が一時停止になっていることを認識すると、そのパケットを自ルータノード宛の再送パケットとして相互結合網に送出する。【０４５５】
ステップ２（Ｓ２）：コア９９Ｐ００が、ルータノード２０００Ｐ２２におけるコア９９Ｐ３０からのアクセス要求の処理を許可する旨のルータフィルタデータに更新するためのルータフィルタデータ更新要求と、アダプタ３０００Ｐ２２におけるアクセス要求の処理の一時停止を解除する旨をルータフィルタデータに書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡す。アダプタ３０００Ｐ００は、コア９９Ｐ００からルータフィルタデータ更新要求と一時停止解除要求を受け取ると、コア９９Ｐ３０からのアクセス要求の処理を許可する旨の情報とアクセス要求の処理の一時停止を解除する旨をルータフィルタデータに書き込むことを指示するための更新・一時停止解除パケットをルータノード２０００Ｐ２２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新・一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ２１を介してルータノード２０００Ｐ２２に到着する。【０４５６】
そして、ルータノード２０００Ｐ２２は、複数のルータノードを介して更新・一時停止解除パケットを受け取ると、当該更新・一時停止解除パケットがコア９９Ｐ２２におけるコア９９Ｐ３０からのアクセス要求の処理を許可する旨と、アクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、ルータフィルタデータにおいて、コア９９Ｐ３０からのアクセス要求の処理を許可した状態に変更し、一時停止ビットを「Ｎｏ」にし、アクセス要求の処理の一時停止状態を解除する。【０４５７】
ステップ３（Ｓ３）：ルータノード２０００Ｐ２２は、ステップ１で送出した再送パケットを、ルータノード２０００Ｐ１２、２０００Ｐ１３、２０００Ｐ２３を含む中間ルータノード群を介して受信する。そして、ルータノード２０００Ｐ２２は、ルータフィルタデータを参照して、受信した再送パケットの処理が許可されており、かつ、パケットの処理の一時停止が解除されていることを認識すると、再送パケットをアダプタ３０００Ｐ２２に渡す。【０４５８】
ステップ４（Ｓ４）：アダプタ３０００Ｐ２２は、再送パケットをルータノード２０００Ｐ２２から受信すると、再送パケットをアクセス要求に変換し、そのアクセス要求をコア９９Ｐ２２に渡す。【０４５９】
次に、１つのルータノードにおけるルータフィルタデータを更新するためにアクセス要求の処理を一時停止させ、その後、ルータフィルタデータを更新することで、所定のコアからのアクセス要求の処理をそのルータノードに許可させない場合の動作を説明する。ここでは、低信頼度なコア９９Ｐ３０からコア９９Ｐ２２へのアクセス要求の処理が一時停止の状態にあり、その後、高信頼度なコア９９Ｐ００がコア９９Ｐ３０からのアクセス要求の処理をルータノード２０００Ｐ２２で禁止状態に設定し、続いて、アクセス要求の処理の一時停止を解除するものである。図９９は図３３に示した半導体集積回路の動作の一例を説明するための図である。図９９に示すルータノードは図８３に示したルータノード２０００に相当する。【０４６０】
ステップ１（Ｓ１）：コア９９Ｐ３０がアダプタ３０００Ｐ３０にアクセス要求を渡すと、アダプタ３０００Ｐ３０は、アクセス要求をパケットに変換し、コア９９Ｐ２２を宛先としたパケットをルータノード２０００Ｐ３０へ送信する。ルータノード２０００Ｐ３０は、アダプタ３０００Ｐ３０から受け取ったパケットを隣接するルータノード２０００Ｐ３１に送出する。ルータノード２０００Ｐ３０から送出されたパケットは、ルータノード２０００Ｐ３１、２０００Ｐ３２を含む中間ルータノード群を介してルータノード２０００Ｐ２２に到着する。【０４６１】
そして、ルータノード２０００Ｐ２２は、ルータノード２０００Ｐ３２からパケットを受け取ると、ルータフィルタデータを参照する。続いて、当該パケットによるアクセス要求の処理が一時停止になっていることを認識すると、そのパケットを自ルータノード宛の再送パケットとして相互結合網に送出する。【０４６２】
ステップ２（Ｓ２）：コア９９Ｐ００が、ルータノード２０００Ｐ２２におけるコア９９Ｐ３０からのアクセス要求の処理を禁止する旨のルータフィルタデータに更新するためのルータフィルタデータ更新要求と、ルータノード２０００Ｐ２２におけるアクセス要求の処理の一時停止を解除する旨をルータフィルタデータに書き込むことを指示するための一時停止解除要求をアダプタ３０００Ｐ００に渡す。アダプタ３０００Ｐ００は、コア９９Ｐ００からルータフィルタデータ更新要求と一時停止解除要求を受け取ると、コア９９Ｐ３０からのアクセス要求の処理を禁止する旨の情報とアクセス要求の処理の一時停止を解除する旨をルータフィルタデータに書き込むことを指示するための更新・一時停止解除パケットをルータノード２０００Ｐ２２を宛先にしてルータノード２０００Ｐ００へ送信する。ルータノード２０００Ｐ００は受け取った更新・一時停止解除パケットを隣接するルータノード２０００Ｐ１０に送出する。ルータノード２０００Ｐ００から送出されたパケットは、ルータノード２０００Ｐ１０、２０００Ｐ２０、２０００Ｐ２１を介してルータノード２０００Ｐ２２に到着する。【０４６３】
そして、ルータノード２０００Ｐ２２は、複数のルータノードを介して更新・一時停止解除パケットを受け取ると、当該更新・一時停止解除パケットがコア９９Ｐ２２におけるコア９９Ｐ３０からのアクセス要求の処理を禁止する旨と、アクセス要求の処理の一時停止の解除とを指示するものであることを認識する。続いて、ルータフィルタデータにおいて、コア９９Ｐ３０からのアクセス要求の処理を禁止した状態に変更し、一時停止ビットを「Ｎｏ」にし、アクセス要求の処理の一時停止状態を解除する。【０４６４】
ステップ３（Ｓ３）：ルータノード２０００Ｐ２２は、ステップ１で送出した再送パケットを、ルータノード２０００Ｐ１２、２０００Ｐ１３、２０００Ｐ２３を含む中間ルータノード群を介して受信する。【０４６５】
ステップ４（Ｓ４）：ルータノード２０００Ｐ２２は、再送パケットを受信すると、ルータフィルタデータを参照する。そして、パケットの処理の一時停止が解除されているが、受信した再送パケットの処理が禁止されていることを認識すると、アクセス要求が許可されずにエラーを起こしたことをコア９９Ｐ３０に対して通知するためのパケットであるエラーパケットを生成する。続いて、ルータノード２０００Ｐ２２はエラーパケットを隣接するルータノード２０００Ｐ３２に送出する。ルータノード２０００Ｐ２２から送出されたエラーパケットは、ルータノード２０００Ｐ３２、２０００Ｐ３１を含む中間ルータノード群を介してルータノード２０００Ｐ３０に到着する。【０４６６】
その後、ルータノード２０００Ｐ３０は、中間ルータノード群を介してエラーパケットを受け取ると、アダプタ３０００Ｐ３０にエラーパケットを渡す。アダプタ３０００Ｐ３０は当該エラーパケットをコアに対してアクセス要求がエラーを起こしたことを通知するための情報であるアクセスエラー応答に変換してコア９９Ｐ３０に渡す。なお、エラーパケットがアクセス要求のパケットが配送された経路を逆方向に配送される場合で説明したが、この経路とは異なる経路で配送されてもよい。【０４６７】
本実施形態では、コアからのアクセス要求に対して、相互結合網内の複数のルータのそれぞれは、配送情報にしたがってパケットの配送制御を行う。ルータのそれぞれが保持する配送情報の内容に統一性をもたせることで、一貫性のあるフィルタ制御が可能となる。【０４６８】
また、配送情報を更新する際には、相互結合網内の複数のルータに対して、パケットの処理の一時停止の指示と、ルータフィルタデータの更新およびパケットの処理の一時停止の解除の指示が所定のコアから一斉になされる。【０４６９】
本実施形態では、第１の実施形態から第３の実施形態で説明したアダプタだけでなく、ルータノードにおいても、複数のコアに対するアクセス制御を行うことができ、第１の実施形態と同様な効果が得られる。また、本実施形態では、アダプタ３０００によるフィルタ制御を行わなくてもよい。【０４７０】
（第５の実施形態）
本実施形態は、ルータノードが第１の実施形態から第４の実施形態のいずれとも異なる場合の構成である。以下では、ルータノード以外の構成については、第１の実施形態と同様であるため、その詳細な説明を省略する。【０４７１】
本実施形態のルータノードの構成を説明する。図１００は本実施形態のルータノード２５００の構成例を示す図である。図１００に示すルータノード２５００は、図７に示したルータノードと比較すると、仮想チャネルに対応していることに特徴がある。【０４７２】
図１００を参照すると、ルータノード２５００は、隣接するルータノードからの入力用に複数のチャネルと、隣接するルータノードへの出力用に複数のチャネルと、アダプタとの接続用に１チャネルを備えている。各チャネルには、接続リンクのフロー制御等を行う仮想リンク制御回路２５１０と、パケットを保持する仮想チャネルバッファ２５２０とが設けられている。入力用の複数のチャネルのチャネル毎に３つの仮想チャネルが設けられている。チャネル毎に設けられた３つの仮想チャネルに対して、仮想チャネル選択機構２５４０によりいずれか１つが選択される。【０４７３】
また、ルータノード２５００は、仮想チャネル間を接続する仮想チャネルスイッチ回路２５３０と、受信するパケットに応じて仮想チャネルの接続または切替の情報を仮想チャネルスイッチ回路２５３０に通知する仮想チャネルルーティング制御手段２６００とを有する。【０４７４】
なお、本実施形態では、アダプタとの接続チャネルを１チャネルとしているが、複数チャネルの場合においても、スイッチ回路への接続チャネル数を拡張することで実現可能である。【０４７５】
図１００に示すルータノード２５００の動作については、パケットの配送を仮想回線を介して行うことを除いて、第１の実施形態から第４の実施形態のそれぞれのルータノードと同様であるため、ここでは、その詳細な説明を省略する。【０４７６】
次に、本実施形態のルータノードの別の構成例を説明する。【０４７７】
図１０１は本実施形態のルータノードの別の構成例を示す図である。図１０１に示すルータノード２５００は、図８３に示したルータノードと比較すると、仮想チャネルに対応していることに特徴がある。【０４７８】
図１０１を参照すると、ルータノード２５００は、図８３に示したルータノード２０００のフィルタ付ルーティング制御手段２１０１が仮想チャネルフィルタ付ルーティング制御手段２６０１に置き換わり、ルータノード２０００の応答パケット再送手段２０５０が仮想応答パケット再送手段２６５０へと、いずれも仮想チャネルに対応している。【０４７９】
図１０１に示すルータノード２５００の動作については、パケットの配送を仮想回線を介して行うことを除いて、第１の実施形態から第４の実施形態のそれぞれのルータノードと同様であるため、ここでは、その詳細な説明を省略する。【０４８０】
上述したように、本実施形態によれば、仮想チャネルを用いたルータノードにおいて、本発明のフィルタ制御を実現することが可能である。【０４８１】
なお、第１の実施形態から第５の実施形態の各実施形態では、複数のコアを有する半導体集積回路内の相互結合網の設定を更新可能なフィルタ制御装置及びフィルタ制御方法を例に説明したが、本実施形態は、かかるフィルタ制御装置及び方法に限定されるものではなく、任意のフィルタ制御装置及びフィルタ制御方法に適用可能である。【０４８２】
本発明の効果の一例として、複数のコアを接続する相互結合網が、信号の配送条件となる配送情報にしたがって、コアからの要求信号の配送を制御しているため、配送情報を更新することで、セキュリティポリシーに応じて、相互結合網全体にわたって一貫性のある更新設定処理を行うことができる。【０４８３】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０４８４】
この出願は、２００７年６月８日に出願された日本出願の特願２００７−１５２７９６の内容が全て取り込まれており、この日本出願を基礎として優先権を主張するものである。
【図１Ａ】
2008149784.tif 000003
【図１Ｂ】
2008149784.tif 000004
【図２】
2008149784.tif 000005
【図３】
2008149784.tif 000006
【図４】
2008149784.tif 000007
【図５】
2008149784.tif 000008
【図６】
2008149784.tif 000009
【図７】
2008149784.tif 000010
【図８】
2008149784.tif 000011
【図９】
2008149784.tif 000012
【図１０】
2008149784.tif 000013
【図１１】
2008149784.tif 000014
【図１２】
2008149784.tif 000015
【図１３】
2008149784.tif 000016
【図１４】
2008149784.tif 000017
【図１５】
2008149784.tif 000018
【図１６】
2008149784.tif 000019
【図１７】
2008149784.tif 000020
【図１８】
2008149784.tif 000021
【図１９】
2008149784.tif 000022
【図２０】
2008149784.tif 000023
【図２１】
2008149784.tif 000024
【図２２】
2008149784.tif 000025
【図２３】
2008149784.tif 000026
【図２４】
2008149784.tif 000027
【図２５】
2008149784.tif 000028
【図２６】
2008149784.tif 000029
【図２７】
2008149784.tif 000030
【図２８】
2008149784.tif 000031
【図２９】
2008149784.tif 000032
【図３０】
2008149784.tif 000033
【図３１】
2008149784.tif 000034
【図３２】
2008149784.tif 000035
【図３３】
2008149784.tif 000036
【図３４】
2008149784.tif 000037
【図３５】
2008149784.tif 000038
【図３６】
2008149784.tif 000039
【図３７】
2008149784.tif 000040
【図３８】
2008149784.tif 000041
【図３９】
2008149784.tif 000042
【図４０】
2008149784.tif 000043
【図４１】
2008149784.tif 000044
【図４２】
2008149784.tif 000045
【図４３】
2008149784.tif 000046
【図４４】
2008149784.tif 000047
【図４５】
2008149784.tif 000048
【図４６】
2008149784.tif 000049
【図４７】
2008149784.tif 000050
【図４８】
2008149784.tif 000051
【図４９】
2008149784.tif 000052
【図５０】
2008149784.tif 000053
【図５１】
2008149784.tif 000054
【図５２】
2008149784.tif 000055
【図５３】
2008149784.tif 000056
【図５４】
2008149784.tif 000057
【図５５】
2008149784.tif 000058
【図５６】
2008149784.tif 000059
【図５７】
2008149784.tif 000060
【図５８】
2008149784.tif 000061
【図５９】
2008149784.tif 000062
【図６０】
2008149784.tif 000063
【図６１】
2008149784.tif 000064
【図６２】
2008149784.tif 000065
【図６３】
2008149784.tif 000066
【図６４】
2008149784.tif 000067
【図６５】
2008149784.tif 000068
【図６６】
2008149784.tif 000069
【図６７】
2008149784.tif 000070
【図６８】
2008149784.tif 000071
【図６９】
2008149784.tif 000072
【図７０】
2008149784.tif 000073
【図７１】
2008149784.tif 000074
【図７２】
2008149784.tif 000075
【図７３】
2008149784.tif 000076
【図７４】
2008149784.tif 000077
【図７５】
2008149784.tif 000078
【図７６】
2008149784.tif 000079
【図７７】
2008149784.tif 000080
【図７８】
2008149784.tif 000081
【図７９】
2008149784.tif 000082
【図８０】
2008149784.tif 000083
【図８１】
2008149784.tif 000084
【図８２】
2008149784.tif 000085
【図８３】
2008149784.tif 000086
【図８４】
2008149784.tif 000087
【図８５】
2008149784.tif 000088
【図８６】
2008149784.tif 000089
【図８７】
2008149784.tif 000090
【図８８】
2008149784.tif 000091
【図８９】
2008149784.tif 000092
【図９０】
2008149784.tif 000093
【図９１】
2008149784.tif 000094
【図９２】
2008149784.tif 000095
【図９３】
2008149784.tif 000096
【図９４】
2008149784.tif 000097
【図９５】
2008149784.tif 000098
【図９６】
2008149784.tif 000099
【図９７】
2008149784.tif 000100
【図９８】
2008149784.tif 000101
【図９９】
2008149784.tif 000102
【図１００】
2008149784.tif 000103
【図１０１】
2008149784.tif 000104
【国際調査報告】
2008149784.tif 000105
2008149784.tif 000106
2008149784.tif 000107