(57)【要約】【課題】大量のＣＰＵを使用して大規模な計算を行うデータ処理装置を構成する場合、パケット通信をベースとした手法が使用されていた。この方法では、転送の粒度やオーバーヘッドが大きく、また転送の粒度を小さくし、かつオーバーヘッドを減らそうとすると、ＣＰＵやＯＳへの修正が必要になりコストがかかる。【解決手段】イニシエータＩＰモジュールと、リクエスト転送回路と、レスポンス転送回路と、自クラスタ番号レジスタ等を含むクラスタを２つ以上具備し、イニシエータＩＰモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、別クラスタへの転送に要する情報を付与し、その情報を元に転送先が自クラスタか別クラスタかを判定してデータを転送するようにデータ処理装置を構成する。自クラスタから別クラスタへのアクセスを行う場合、別クラスタへのアクセスを行う前に、転送先のクラスタ番号およびアドレスを設定してからアクセスを行うようにする。【選択図】図１
2012256087.tif 000002
【特許請求の範囲】
【請求項１】
互いに異なるアドレス空間を有する複数のクラスタと、前記各クラスタを接続するネットワークとを備えたデータ処理装置であって、
前記複数のクラスタの各々をユニークに識別するための情報としてクラスタＩＤ番号を保持し、
前記複数のクラスタの中の１つのクラスタから、他のクラスタの前記アドレス空間に含まれるリソースにアクセスする場合に、該リソースのアドレスに前記他のクラスタのＩＤ番号を付加することにより転送先をシステム内でユニークに指定することを特徴とするデータ処理装置。
【請求項２】
請求項１において、
前記リソースとして、システム全体として一つのユニークなアドレスが割当てられる非重複リソースと、単位クラスタ上では一つのユニークなアドレスが割当てられるが、システム全体としては該アドレスが他のクラスタに含まれるリソースにも割当てられる重複リソースとを持ち、
前記各クラスタ同士でデータのやり取りをする場合、前記重複リソースへのアクセス時には、該重複リソースのアドレス以外に該重複リソースが属する前記クラスタのＩＤ番号を付与することによりトランザクションの行き先をシステム内でユニークに指定する
ことを特徴とするデータ処理装置。
【請求項３】
請求項２において、
前記重複リソースは、単位アドレスマップごとにマッピングされているターゲットモジュールが異なるアドレスエリアであり、
前記非重複リソースは、各単位アドレスマップで同一のターゲットモジュールがマッピングされているアドレスエリアである
ことを特徴とするデータ処理装置。
【請求項４】
請求項１において、
前記各クラスタは、任意の数のＣＰＵと、任意の数のＩＰとがバスで接続されて構成されており、３２ｂｉｔのＯＳが動作可能な論理アドレス空間を有している
ことを特徴とするデータ処理装置。
【請求項５】
請求項４において、
単一の半導体集積回路もしくは単一の積層ＬＳＩに、前記複数のクラスタの前記ＣＰＵや前記ＩＰなどの論理回路が実装されている
ことを特徴とするデータ処理装置。
【請求項６】
請求項５において、
前記各クラスタは、
自クラスタから転送先のクラスタへのアクセスリクエストに対して転送先クラスタのＩＤ番号および転送先クラスタ内のアドレスを付加する、転送先クラスタ番号および転送先クラスタアドレス付加回路を備えている
ことを特徴とするデータ処理装置。
【請求項７】
請求項１において、
前記各クラスタを接続するネットワークは、リング型ネットワークであり、前記各クラスタがバスを介してリング状に接続されている
ことを特徴とするデータ処理装置。
【請求項８】
請求項１において、
４つ以上の前記クラスタを備え、
前記各クラスタを接続するネットワークは、４つの前記クラスタ間で直接アクセスできるように相互にバスを介して接続されている
ことを特徴とするデータ処理装置。
【請求項９】
請求項１において、
前記各クラスタは、
前記クラスタＩＤ番号を設定するレジスタを備え、
前記リクエストを前記レジスタに設定してから、前記アクセスを実行する
ことを特徴とするデータ処理装置。
【請求項１０】
請求項９において、
前記各クラスタは、システムクロックの１つのサイクルで前記リクエストを前記レジスタに設定し、次のサイクルで前記バスアクセスを実行する
ことを特徴とするデータ処理装置。
【請求項１１】
請求項１０において、
前記各クラスタは、転送先のクラスタが既に前記レジスタに設定されている場合、システムクロックの１つのサイクルで前記バスアクセスを実行する
ことを特徴とするデータ処理装置。
【請求項１２】
請求項１において、
前記各クラスタは、
ＣＰＵやＤＭＡからなるイニシエータＩＰモジュールと、
ＳＲＡＭ、ＤＲＡＭ、ＩＰ等からなるターゲットＩＰモジュールと、
転送先クラスタ番号および転送先クラスタアドレス付加回路と、
リクエスト転送回路と、
レスポンス転送回路と、
イニシエータブリッジ回路と、
ターゲットブリッジ回路と、
自クラスタ番号レジスタとを具備し、
前記転送先クラスタ番号および転送先クラスタアドレス付加回路は、前記イニシエータＩＰモジュールの送信するリクエストに対して、要求された別のクラスタへの転送に要する情報を付与する機能を有し、
前記リクエスト転送回路は、前記転送先クラスタ番号および転送先クラスタアドレス付加回路により付与された別のクラスタへの転送に要する情報により転送先を判定し、自クラスタ宛でない場合は転送先を変更する機能を有する
ことを特徴とするデータ処理装置。
【請求項１３】
請求項１２において、
前記転送先クラスタ番号および転送先クラスタアドレス付加回路は、
前記イニシエータＩＰモジュールからの事前の設定を行うためのアクセスを行った直後に、該イニシエータＩＰモジュールから別クラスタへの転送を行う機能を備えている
ことを特徴とするデータ処理装置。
【請求項１４】
請求項１２において、
前記クラスタを４つ以上具備し、
前記各クラスタは、前記データを転送する経路を指定する経路指定レジスタを備え、
前記リクエスト転送回路は、前記経路指定レジスタの設定に従って前記データを転送する
ことを特徴とするデータ処理装置。
【請求項１５】
請求項１２において、
前記クラスタを４つ以上具備し、
前記各クラスタは、前記データを転送する経路を指定する経路指定レジスタを備え、
前記レスポンス転送回路は、前記経路指定レジスタの設定に従ってデータを転送することを特徴とするデータ処理装置。
【請求項１６】
互いに異なるアドレス空間を有する複数のクラスタと、前記各クラスタをバスを介して接続するネットワークとを備えたデータ処理装置であって、
前記複数のクラスタは、単一の半導体集積回路もしくは単一の積層ＬＳＩに、ＣＰＵやＩＰなどの論理回路が実装されて構成されており、
前記各クラスタは、リソースとして、システム全体として一つのユニークなアドレスが割当てられる非重複リソースと、単位クラスタ上では一つのユニークなアドレスが割当てられるが、システム全体としては該アドレスが他のクラスタに含まれるリソースにも割当てられる重複リソースとを持ち、
前記各クラスタ同士でデータのやり取りをする場合、前記重複リソースへのアクセス時には、該重複リソースのアドレス以外に該重複リソースが属する前記クラスタのＩＤ番号を付与することにより転送先をシステム内でユニークに指定する
ことを特徴とするデータ処理装置。
【請求項１７】
請求項１６において、
前記各クラスタは、
イニシエータＩＰモジュールと、
ターゲットＩＰモジュールと、
前記イニシエータＩＰモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、別クラスタへの転送に要する情報を付与するための、転送先クラスタ番号および転送先クラスタアドレス付加回路と、
該転送に要する情報を元に転送先が自クラスタか別クラスタかを判定してデータを転送するリクエスト転送回路と、
レスポンス転送回路と、
前記リクエスト転送回路若しくは前記レスポンス転送回路からのリクエスト又はレスポンスに応答するイニシエータブリッジ回路及びターゲットブリッジ回路と、
前記自クラスタのＩＤ番号を保持する自クラスタ番号レジスタとを含み、
前記イニシエータＩＰモジュールが、自クラスタから別クラスタへのアクセスを行う際に、前記転送先クラスタ番号および転送先クラスタアドレス付加回路を設定してから別クラスタへのアクセスを行う
ことを特徴とするデータ処理装置。
【請求項１８】
請求項１６において、
前記クラスタを４つ以上具備し、
前記各クラスタは、
イニシエータＩＰモジュールと、
ターゲットＩＰモジュールと、
前記イニシエータＩＰモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、別クラスタへの転送に要する情報を付与するための、転送先クラスタ番号および転送先クラスタアドレス付加回路と、
経路指定レジスタと、
経路可変リクエスト転送回路と、
該情報を元に転送先が自クラスタか別クラスタかを判定してデータを転送するリクエスト転送回路と、
前記リクエスト転送回路若しくは前記レスポンス転送回路からのリクエスト又はレスポンスに応答する、イニシエータブリッジ回路及びターゲットブリッジ回路と、
前記自クラスタのＩＤ番号を保持する自クラスタ番号レジスタとを含み、
前記イニシエータＩＰモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、前記転送先クラスタ番号および転送先クラスタアドレス付加回路により別クラスタへの転送に要する情報を付与し、その情報を元に転送先が自クラスタか別クラスタかを判定し、前記経路指定レジスタの設定に従って前記データを転送し、
前記イニシエータＩＰモジュールは、別クラスタへのアクセスを行う前に、前記転送先クラスタ番号および転送先クラスタアドレス付加回路を設定してから別クラスタへのアクセスを行う
ことを特徴とするデータ処理装置。
【請求項１９】
互いに異なるアドレス空間を有する複数のクラスタと、前記各クラスタを接続するネットワークとを備えたデータ処理装置によるデータ処理方法であって、
前記データ処理装置は、前記複数のクラスタの各々をユニークに識別するための情報としてクラスタＩＤ番号を保持しており、
前記複数のクラスタの中の１つのクラスタから、他のクラスタの前記アドレス空間に含まれるリソースにアクセスする際に、該リソースのアドレスに前記他のクラスタのＩＤ番号を付加することにより転送先をシステム内でユニークに指定することを特徴とするデータ処理方法。
【請求項２０】
請求項１９において、
前記データ処理装置は、前記リソースとして、前記データ処理装置全体として一つのユニークなアドレスが割当てられる非重複リソースと、単位クラスタ上では一つのユニークなアドレスが割当てられるが、前記データ処理装置全体としては該アドレスが他のクラスタに含まれるリソースにも割当てられる重複リソースとを持ち、
前記各クラスタ同士でデータのやり取りをする場合、前記重複リソースへのアクセス時には、該重複リソースのアドレス以外に該重複リソースが属する前記クラスタのＩＤ番号を付与することによりトランザクションの行き先をシステム内でユニークに指定する
ことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及びデータ処理方法に係り、例えば複数クラスタからなるデータ処理装置に適用して有効な技術に関する。
【背景技術】
【０００２】
従来、大量のＣＰＵ（中央演算処理装置）を使用して大規模な計算をする方法として、ＰＣクラスタのようなシステムが利用されている。これは、１つのＰＣに１から８個程度のＣＰＵを搭載したＬＳＩ上でＯＳを動かし，Ｅｔｈｅｒｎｅｔ（登録商標）のような通信網で接続し、パケット通信を行いながら相互連携することで大規模な計算を行う。特許文献１には、プロセスに一意に対応する仮想空間が構成され、各クラスタが命令実行回路及び送受信回路を備え、他のクラスタで実行される命令に関して指定された仮想空間にネットワークを介してデータを転送するプロセッサ間通信方法が開示されている。
【０００３】
これに対し、近年の半導体集積技術の進化や、三次元実装技術の進化により、単一ＬＳＩもしくは単一の積層ＬＳＩ上に搭載可能なＣＰＵの数は飛躍的に増加すると考えられる。このような多数のＣＰＵを搭載したＬＳＩでは，ＰＣクラスタと同様に各ＣＰＵ同士の連携を行うための方法が必要である。
【０００４】
その１つの方法として，ＰＣクラスタと同じくＥｔｈｅｒｎｅｔのようなパケット通信の機構をＬＳＩ内で実装する方法が類推できる。パケット通信では、チップ内でのＣＰＵの接続形態によらず任意の経路を通じてパケットを転送することができる。
【０００５】
また、別なる方法として、物理的アドレス空間をたとえば３２ｂｉｔから６４ｂｉｔへ拡張するなどし、すべてのＣＰＵおよびメモリなどの記憶素子や周辺回路といったリソースにアドレスを割り付ける方法が考えられる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０４−２９１６６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、パケット通信の機構をＬＳＩ内で実装する方法は、ハードウェア面、ソフトウェア面両方にペナルティがある。ハードウェア面では、パケットのヘッダ付加による転送効率劣化、レイテンシ増大による応答性能低下が大きいと考えられる。またソフトウェア面では、パケットの解析処理が必要であるため、小さな転送サイズではオーバーヘッドが大きく、システムとしての性能が劣化してしまう。そのため、ある処理を実現しようとした場合、できる限りクラスタ間の転送を大きな粒度で行う必要があるが、処理データに相互依存がある場合（データ並列性が低い場合）大規模なＰＣクラスタであっても処理性能を伸ばすことは難しい。
【０００８】
また、物理的アドレス空間を拡張しリソースにアドレスを割り付ける方法では、パケット通信と異なり、アドレスにより転送経路が一意に決まるため、通信のオーバーヘッドが小さくできるはずだが、ＣＰＵなどのハードウェアだけでなく、ＯＳなどの大規模な修正が必要となり、大きなコストがかかってしまう。また、通信経路はアドレスにより一意に決まるため、アドレスマップを複数持つことによる転送先の変更は可能であるが、通信経路を変更することはできない。
【０００９】
このように、高い通信の自由度と既存資産の流用を選ぶ方法では、転送の粒度に対する制約やパケット解析などのソフトウェアのオーバーヘッドが大きく、また転送の粒度を小さく、かつオーバーヘッドを減らそうとすると、ＣＰＵやＯＳへの修正が必要になり大きなコストがかかる上、通信の自由度も低下してしまう。
【００１０】
よって、本発明の主たる課題は、単一ＬＳＩもしくは単一の三次元実装技術により構成された積層ＬＳＩ上に多数のＣＰＵもしくはＩＰなどの論理回路を実装したデータ処理装置において、ＣＰＵもしくはＩＰと，ＯＳの大幅な修正をなしに、かつ最小限のオーバーヘッドでデータ処理装置すべてのリソースを共有し連携するためのデータ転送機構を実現するシステム及び方法を提供することにある。
【００１１】
また、本発明の他の課題は、データ処理装置を構成するハードウェアに対して、再設計、再製造を行うことなく、データ転送経路を変更可能なデータ転送機構を実現するシステム及び方法を提供することにある。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記のとおりである。本発明のデータ処理装置は、互いに異なるアドレス空間を有する複数のクラスタと、前記各クラスタを接続するネットワークとを備えたデータ処理装置であって、前記複数のクラスタの各々をユニークに識別するための情報としてクラスタＩＤ番号を保持し、前記複数のクラスタの中の１つのクラスタから、他のクラスタの前記アドレス空間に含まれるリソースにアクセスする際に、該リソースのアドレスに前記他のクラスタのＩＤ番号を付加することにより転送先をシステム内でユニークに指定することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ＣＰＵなどに代表されるイニシエータＩＰモジュールと、ＯＳの大幅な修正なしに、かつ最小限のオーバーヘッドで、複数のクラスタで構成されるデータ処理装置内の全てのリソースの間でデータ転送が可能なデータ処理装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施例になるデータ処理装置を半導体集積回路で実装したシステム構成例を示すブロック図である。
【図２】図１のシステムが持つアドレスマップの一例である。
【図３】本発明にかかる半導体集積回路で実現される単位クラスタの一例である転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）を含むシステムＬＳＩにおける１クラスタのリクエストおよびレスポンス転送機構の一例を示すブロック図である。
【図４】図３に示されるシステムＬＳＩに含まれる転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）の構成例ブロック図である。
【図５】図３に示されるシステムＬＳＩに含まれる転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）に含まれる転送先クラスタ番号および転送先クラスタアドレス指定レジスタ（ＴＣＮＡＣＲ）の構成例図である。
【図６】図３に示されるシステムＬＳＩに含まれる転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）の動作例を示すタイミングチャート図である。
【図７】図３に示されるシステムＬＳＩに含まれるリクエスト転送回路（ＲＥＱＴＵ）の構成例ブロック図である。
【図８】図３に示されるシステムＬＳＩに含まれるレスポンス転送回路（ＲＥＳＴＵ）の構成例ブロック図である。
【図９】図４に示される転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）を利用する際のプログラム処理概要を示すフローチャートである。
【図１０】図４に示される転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）を割り込みの発生するシステムで利用する際のプログラム処理概要を示すフローチャートである。
【図１１】本発明の他の実施例になるデータ処理装置を半導体集積回路で実装したシステム構成例を示すブロック図である。
【図１２】図１１の実施例になる半導体集積回路の、転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）と、経路指定レジスタ（Ｐａｔｈ  Ｒｅｇ）を含むシステムＬＳＩにおける１クラスタの経路可変リクエストおよびレスポンス転送機構の一例を示すブロック図である。
【図１３】１２に示されるシステムＬＳＩに含まれる経路指定レジスタ（Ｐａｔｈ  Ｒｅｇ）の設定例図である。
【図１４】図１２に示されるシステムＬＳＩに含まれる経路可変リクエスト転送回路（ＶＲＥＱＴＵ）の構成例ブロック図である。
【図１５】図１２に示されるシステムＬＳＩに含まれる経路可変レスポンス転送回路（ＶＲＥＳＴＵ）の構成例ブロック図である。
【発明を実施するための形態】
【００１５】
本発明では、単一ＬＳＩもしくは三次元実装技術により構成された積層ＬＳＩ上に多数のＣＰＵもしくはＩＰなどの論理回路を実装したデータ処理装置において、データ処理装置すべてのリソースを共有し連携するためのデータ転送を実現するシステム及び方法を提供する。
【００１６】
本発明のデータ処理装置では、システムを構成する要素は、複数ある単位クラスタを、ユニークに識別するためのクラスタＩＤ番号を保持するレジスタを有する。また、リソースは、単位クラスタ上では一意にリソースが決まるがシステム全体では重複した物理アドレスを持つ重複リソースと、データ処理装置全体としては物理アドレスが重複しない非重複リソースとを持つ。各クラスタ同士でデータのやり取りをする場合、重複リソースへのアクセス時には、アドレス以外にクラスタＩＤ番号を付与することで、トランザクションの行き先をシステム内でユニークに指定する。
【００１７】
本発明のより具体的な構成例を挙げると、イニシエータＩＰモジュールと、ターゲットＩＰモジュールと、転送先クラスタ番号および転送先クラスタアドレス付加回路と、リクエスト転送回路と、レスポンス転送回路と、イニシエータブリッジ回路と、ターゲットブリッジ回路と、自クラスタ番号レジスタを含むクラスタを２つ以上具備し、イニシエータＩＰモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、転送先クラスタ番号および転送先クラスタアドレス付加回路により別クラスタへの転送に要する情報を付与し、その情報を元に転送先が自クラスタか別クラスタかを判定してデータを転送するようにデータ処理装置を構成し、自クラスタから別クラスタへのアクセスを行うイニシエータＩＰモジュールは、別クラスタへのアクセスを行う前に、転送先クラスタ番号および転送先クラスタアドレス付加回路を設定してから別クラスタへのアクセスを行うようなプログラムを使用して別クラスタへのアクセス行うようにするシステムを構築する。
【００１８】
また、本発明の他のより具体的な構成例を挙げると、前記クラスタを、イニシエータＩＰモジュールと、ターゲットＩＰモジュールと、転送先クラスタ番号および転送先クラスタアドレス付加回路と、経路指定レジスタと、経路可変リクエスト転送回路と、経路可変レスポンス転送回路と、イニシエータブリッジ回路と、ターゲットブリッジ回路と、自クラスタ番号レジスタを含むクラスタを４つ以上具備するように変更し、イニシエータＩＰモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、転送先クラスタ番号および転送先クラスタアドレス付加回路により別クラスタへの転送に要する情報を付与し、その情報を元に転送先が自クラスタか別クラスタかを判定し、経路指定レジスタの設定に従ってデータを転送するようにデータ処理装置を構成し、自クラスタから別クラスタへのアクセスを行うイニシエータＩＰモジュールは、別クラスタへのアクセスを行う前に、転送先クラスタ番号および転送先クラスタアドレス付加回路を設定してから別クラスタへのアクセスを行うようなプログラムを使用して別クラスタへのアクセス行うようにするシステムを構築する。
【００１９】
本発明によれば、ＣＰＵなどに代表されるイニシエータＩＰモジュールと、ＯＳの修正なしに、かつ最小限のオーバーヘッドで、複数のクラスタで構成されるデータ処理装置内の全ての重複リソースの間でデータ転送が可能なデータ処理装置を提供することができる。
【００２０】
また、本発明の他の特徴によれば、データ転送の際に、電源遮断や製造不良、クラスタ構成の変更などによりデータ転送が行えないクラスタを迂回したデータ転送が可能なデータ処理装置を提供することができる。
【００２１】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
【実施例１】
【００２２】
図1は、本発明の一実施例になるデータ処理装置の物理的なシステム構成例を示した概念図である。本実施例のデータ処理装置０００１は、好ましくは、単一の半導体集積回路（ＬＳＩ）もしくは単一の積層ＬＳＩ内に、多数のＣＰＵやＩＰ（Intellectual Property Core）などの論理回路を実装して構成される。もちろん、ＯＳを共通とする複数の半導体集積回路（ＬＳＩ）もしくは複数の積層ＬＳＩに実装されるデータ処理装置にも適用できることは言うまでも無い。
【００２３】
図１において、０００１は、システムの最小構成単位である単位クラスタの組み合わせで構成される。図１の例では、データ処理装置が、単位クラスタＡ（００１０）、単位クラスタＢ（００１１）、単位クラスタＣ（００１２）、単位クラスタＤ（００１３）からなる。構成する単位クラスタの数は２つ以上であればよく、図１では４つの単位クラスタからなる構成例である。各単位クラスタは、任意のクラスタとバスで接続したネットワークを持つ。
【００２４】
ここで、単位クラスタは、任意の数のＣＰＵと任意の数のＩＰ及びＤＭＡ(Direct Memory Access)等がバスで接続されたクラスタであり、既存の、例えば３２bitの、ＯＳが動作可能な物理アドレス空間（単位アドレスマップ）を有している。図１の例では、単位クラスタＡ（００１０）はＣＰＵ０、ＣＰＵ１、ＣＰＵ２、ＤＭＡ０からなるイニシエータモジュール、及びＳＲＡＭ０、ＤＲＡＭ、３ＤＲＡＭ（３次元ＤＲＡＭ）０、ＩＰ０からなるターゲットモジュールで構成されている。単位クラスタＢ（００１１）は、ＣＰＵ３、ＣＰＵ４、ＤＭＡ１、ＩＰ１なるイニシエータモジュール、及びＳＲＡＭ１、３ＤＲＡＭ１からなるターゲットモジュールで構成され、単位クラスタＣは、ＣＰＵ５、ＤＭＡ２からなるイニシエータモジュール、及びＳＲＡＭ２、３ＤＲＡＭ２ＩＰ２なるターゲットモジュールで構成され、単位クラスタＤは、ＣＰＵ６、ＣＰＵ７、ＤＭＡ３からなるイニシエータモジュール、及びＳＲＡＭ３、３ＤＲＡＭ３なるターゲットモジュールで構成されている。本実施例では、ＤＲＡＭは単位クラスタＡにのみ存在し、データ処理を行うプログラムはこのＤＲＡＭに保持される。従って、他の単位クラスタでは、単位クラスタＡのＤＲＡＭに保持されたプログラムを呼び出して、ＣＰＵで実行することにより、所定のデータ処理を行う。
【００２５】
また、これら単位クラスタを接続するネットワークは、ここでは、リング型ネットワークを例とし、単位クラスタＡ（００１０）と単位クラスタＢ（００１１）、単位クラスタＢ（００１１）と単位クラスタＤ（００１３）、単位クラスタＤ（００１３）と単位クラスタＣ（００１２）、単位クラスタＣ（００１２）と単位クラスタＡ（００１０）が、それぞれバス００２０、００２１、００２２、００２３を介して接続されている。
【００２６】
本発明では、以下に述べるように、ある単位クラスタに存在する特定のリソースを、別の単位クラスタから参照可能とする。このような、単位クラスタ内のみならず単位クラスタ間をまたいだアクセスを、通常のメモリ割付アクセスにより実現する。これにより、ある単位クラスタから、別の単位クラスタのリソースが、あたかも当該単位クラスタに属するＩＰであるかのように扱えるようにする。
【００２７】
図２は、図１で示したシステム構成例における各単位クラスタの持つ単位アドレスマップを示している。すなわち、図１に示した物理的な構成要素であるクラスタに対応する、ＯＳなどにより用いられる物理アドレス空間の例を示している。図２の（ａ）は単位クラスタＡのアドレスマップを示す単位アドレスマップＡ、（ｂ）は単位クラスタＢのアドレスマップを示す単位アドレスマップＢ、（ｃ）は単位クラスタＣのアドレスマップを示す単位アドレスマップＣ、及び（ｄ）は単位クラスタＤのアドレスマップを示す単位アドレスマップＤである。図２の（ｂ）〜（ｄ）のＤＲＡＭは物理的には単位クラスタＡにのみ存在するＤＲＡＭである。
【００２８】
各単位アドレスマップに割り当てられたターゲットモジュールには、白で示した重複リソース、グレーで示した非重複リソース、黒で示した未使用アドレスが存在する。重複リソースとは、単位アドレスマップごとにマッピングされているターゲットモジュールが異なるアドレスエリアであり、非重複リソースとは、各単位アドレスマップで同一のターゲットモジュールがマッピングされているアドレスエリアであり、未使用アドレスは重複リソースの中で特にターゲットモジュールがマッピングされていないアドレスエリアを指す。換言すると、重複リソースは、単位クラスタ上では一意にリソースが決まる（単位クラスタ内では非重複リソースとなる）が、データ処理装置全体としては同じアドレスを持ち別の単位クラスタに属するリソースが複数存在する。非重複リソースは、データ処理装置全体としては重複しないユニークなアドレスを持つ。
【００２９】
例えば、図２の（ａ）に示した単位アドレスマップＡによれば、単位クラスタＡに含まれるターゲットモジュールＳＲＡＭ０は重複リソースである。ここで、単位クラスタＡで実行されているプログラムから、単位アドレスマップＢに含まれる重複リソースであるＳＲＡＭ１に対するアクセスを行いたいとする。プログラムが動作しているアドレスマップは、単位アドレスマップＡであるので、単純にＳＲＡＭ１へアクセスするためのアドレス（ｘ００００＿００００）を発行しても、ＳＲＡＭ０へのアクセスとなってしまう。本発明では、単位クラスタＡ〜Ｄ間でデータのやり取りをする、すなわち重複リソースへのアクセス時には、アドレス以外に、クラスタ番号を付与することで、コマンドやデータなどからなる転送処理（トランザクション）の行き先（ターゲット）をシステム内でユニークに指定する。
【００３０】
このように、本発明のデータ処理装置は、複数の単位クラスタをユニークに識別するための情報を保持するレジスタ、及び重複リソース及び非重複リソースを含む物理アドレス空間（以下、特に区別しないときは単に、アドレス空間）を備えている。なお、図１、図２における各リソースの配置は一例を示すものであり、用途に応じて種々変更できることは言うまでも無い。
【００３１】
このような単位クラスタ、単位アドレスマップをまたいだアクセスを、パケット通信ではなく、通常のメモリ割り付けアクセスにより実現するハードウェアとソフトウェアの実現方式を、図３以降で説明する。
【００３２】
図３は、第１の実施例になるデータ処理装置における単位クラスタの具体的な構成例を示す図である。すなわち、図３は、転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）を含むシステムＬＳＩにおける、１クラスタのリクエストおよびレスポンス転送機構の一例を示すブロック図である。０１０１はシステムの最小構成単位である単位クラスタであり、０１０２で示す転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）と、０１０３で示すリクエスト転送回路（ＲＥＱＴＵ）と、０２０１で示すレスポンス転送回路（ＲＥＳＴＵ）と、０１０４で示すイニシエータブリッジ回路０（ＢＩｎ０）と、０１０５で示すターゲットブリッジ回路０（ＢＴｎ０）と、自身のクラスタ番号を保持する０１０６で示す自クラスタ番号レジスタ（ＭｙＣｌｕｓｔｅｒＩＤ  Ｒｅｇ）と、０１９２で示すイニシエータＩＰモジュールＸ（ＩＰ  Ｘ）と、０１９３で示すターゲットＩＰモジュールＹ（ＩＰ  Ｙ）から構成される。イニシエータブリッジ回路０（ＢＩｎ０）は、０１９０で示す別クラスタＪからリクエストを受け取りＲＥＱＴＵに転送、もしくはレスポンスをＲＥＳＴＵから受け取り、別クラスタＪに返す。ターゲットブリッジ回路０（ＢＴｎ０）は、ＲＥＱＴＵからリクエストを受け取り０１９１で示す別クラスタＫに転送、もしくは別クラスタＫからレスポンスを受け取りＲＥＳＴＵに返す。
【００３３】
なお、単位クラスタを構成する各回路、レジスタは簡単のために、それぞれ省略して記載しているが、ＴＣＮＡＵ（０）〜ＴＣＮＡＵ（ｎ）やＩＰ  Ｘ（０）〜ＩＰ  Ｘ（ｎ）、ＩＰ  Ｙ（０）〜ＩＰ  Ｙ（ｍ）のように複数存在しても良く、数の変更に対して制限はない。また、このクラスタを２つ以上ＢＩｎ０やＢＴｎ０を用いて接続することで、データ処理装置を構成する。また、リクエストは、ストアデータ（ｄａｔａ）およびリクエストコマンド（ｃｍｄ）、アドレス（ａｄｄｒ）、リクエスト発行イニシエータ識別番号（ｓｒｃ）、転送先クラスタ番号（ｃｌｕｓｔｅｒ＃）を含み、レスポンスは、ロードデータ（ｒ＿ｄａｔａ）および、レスポンスコマンド（ｒ＿ｃｍｄ）、レスポンス送信先イニシエータ識別番号（ｒ＿ｓｒｃ）からなるが、これ以外の制御信号が存在してもよい。
【００３４】
図４は、図３に示されるシステムＬＳＩに含まれるＩＰ  Ｘと、ＲＥＱＴＵおよびＲＥＳＴＵの間に挿入されるＴＣＮＡＵ０１０２の構成例である。ＴＣＮＡＵは、０３０１で示すＴＣＮＡＵ制御回路（ＴＣＮＡＵ  ＣＴＲＬ）と、０３０２で示すフックアドレス値１（ＨｏｏｋＡＤＤＲ１）と、０３０３で示すフックアドレス値２（ＨｏｏｋＡＤＤＲ２）と、０３０４で示す比較器（ＣＭＰ）と、０３０５で示す転送先クラスタ番号保持回路１（ＣｌｕｓｔｅｒＩＤ１）と、０３０６で示す転送先クラスタ番号保持回路２（ＣｌｕｓｔｅｒＩＤ２）と、０３０７で示す転送先クラスタ番号選択回路（ＩＤＭＵＸ）と、０３０８で示す転送先クラスタアドレス保持回路１（ＣｌｕｓｔｅｒＡＤＤＲ１）と、０３０９で示す転送先クラスタアドレス保持回路２（ＣｌｕｓｔｅｒＡＤＤＲ２）と、０３１０で示す転送先クラスタアドレス選択回路（ＡＤＤＲＭＵＸ）から構成される。
【００３５】
なお、本構成例ではフックアドレス値と、比較器、転送先クラスタ番号保持回路、転送先クラスタアドレス保持回路が２組ずつとしているが、数の変更に対して制限はない。また同様に、転送先クラスタ番号選択回路（ＩＤＭＵＸ）および転送先クラスタアドレス選択回路（ＡＤＤＲＭＵＸ）の入力数は、フックアドレス値と、比較器、転送先クラスタ番号保持回路、転送先クラスタアドレス保持回路の組数に従って変更して構成する。
【００３６】
続いて、ＴＣＮＡＵ０１０２の機能について説明する。ＴＣＮＡＵはＩＰ  Ｘ０１９２から発行されたリクエストに対してクラスタ番号の付加とアドレスを変更する機能を有するが、本機能が有効になるアドレス範囲を事前に決定しておく。本構成例では、ＨｏｏｋＡＤＤＲ１（０３０２）およびＨｏｏｋＡＤＤＲ２（０３０３）がアドレス範囲を保持する。通常ＨｏｏｋＡＤＤＲはクラスタの持つアドレス範囲よりも限定されたアドレス範囲を持ち、例えば３２ｂｉｔのアドレス空間を持つクラスタにおいて、アドレス０ｘＦＣ００＿００００から０ｘＦＣ００＿ＦＦＦＦのようなアドレス範囲を指定する場合は、ＨｏｏｋＡＤＤＲに０ｘＦＣ００を指定することとなる。このＨｏｏｋＡＤＤＲの値はあらかじめ固定しておく、もしくは起動時に外部ピンなどで決定する、もしくはクラスタのアドレスマップ設定と同期して切り替えることを想定する。
【００３７】
次に、本構成例での実際の動作について例示する。ＨｏｏｋＡＤＤＲ１が０ｘＦＣ００なる１６ｂｉｔの値を持つとき、ＩＰ  Ｘからのリクエストに含まれるアドレス（ａｄｄｒ）の上位１６ｂｉｔがＣＭＰ０３０４により比較され、一致した場合ＣＭＰは１を出力する。ＣＭＰが１を出力した場合、ＩＤＭＵＸ０３０７はＣｌｕｓｔｅｒＩＤ１をｃｌｕｓｔｅｒ＃として出力する。また同様に、ＣＭＰ０３０４が１を出力した場合、ＡＤＤＲＭＵＸ０３１０はＣｌｕｓｔｅｒＡＤＤＲ１を出力する。このとき、ＣｌｕｓｔｅｒＩＤ１にはＩＰ  Ｘが転送を行いたいクラスタの番号が、ＣｌｕｓｔｅｒＡＤＤＲ１には転送先クラスタ内でのアドレスの上位１６ｂｉｔが格納されている。よって、ＴＣＮＡＵはｃｌｕｓｔｅｒ＃としてＣｌｕｓｔｅｒＩＤ１を持ち、ａｄｄｒとして上位アドレス１６ｂｉｔがＣｌｕｓｔｅｒＡＤＤＲ１の値、下位１６ｂｉｔがＩＰ  Ｘから発行されたアドレスとなる、４８ｂｉｔのリクエストを生成し、ＲＥＱＴＵに転送を行う。
【００３８】
逆に、ＣＭＰが０を出力した場合は、ＩＤＭＵＸは自クラスタ番号レジスタ（ＭｙＣｌｕｓｔｅｒＩＤ  Ｒｅｇ）に保持された自クラスタ番号であるＭｙＣｌｕｓｔｅｒＩＤをｃｌｕｓｔｅｒ＃として出力する。また同様に、ＣＭＰが０を出力した場合、ＡＤＤＲＭＵＸはＩＰ  Ｘの送信したａｄｄｒの上位１６ｂｉｔを出力する。よって、ＩＰ  Ｘの送信したリクエストは、クラスタ番号にＭｙＣｌｕｓｔｅｒＩＤを持ち、上位１６ｂｉｔ及び下位１６ｂｉｔがＩＰ  Ｘから発行されたアドレスとなる、４８ｂｉｔのリクエストとしてＲＥＱＴＵに転送される。
【００３９】
また、ＣｌｕｓｔｅｒＩＤ１、ＣｌｕｓｔｅｒＩＤ２や、ＣｌｕｓｔｅｒＡＤＤＲ１やＣｌｕｓｔｅｒＡＤＤＲ２への書き込みは、ＴＣＮＡＵ  ＣＴＲＬが、ＩＰ  Ｘからのリクエストを観測し、アドレスが合致した場合に書き込みや読み出しなどの動作を行い、ＲＥＱＴＵにはｃｍｄなどの転送を行わない。特に読み出しが行われた場合は、ＴＣＮＡＵ  ＣＴＲＬがｒ＿ｃｍｄ、ｒ＿ｓｒｃ、ｒ＿ｄａｔａの送信を行う。またＴＣＮＡＵ  ＣＴＲＬは、ＲＥＳＴＵからのレスポンス送信をＩＰ  Ｘへ中継する機能を有する。
【００４０】
なお、本構成例ではＩＰ  Ｘからの各信号がＲＥＱＴＵに直接、もしくはＲＥＳＴＵからの各信号がＩＰ  Ｘに直接接続されているが、フリップフロップなどを用いてシステムのクロックサイクルを分割してもよい。また、クラスタ内にＩＰ  Ｘのようなイニシエータモジュールが複数存在する場合は、ＴＣＮＡＵについてもイニシエータごとに挿入するが、その際各ＴＣＮＡＵのＨｏｏｋＡＤＤＲが同一であっても良い。
【００４１】
図５に、上記のＣｌｕｓｔｅｒＩＤおよび、ＣｌｕｓｔｅｒＡＤＤＲを格納する転送先クラスタ番号および転送先クラスタアドレス指定レジスタ（ＴＣＮＡＣＲ）（０４０１）の構成例を示す。ＴＣＮＡＣＲには、転送先クラスタ番号指定フィールド（ＣｌｕｓｔｅｒＩＤ  Ｆｉｅｌｄ）（０４０２）と、転送先クラスタアドレス指定フィールド（ＣｌｕｓｔｅｒＡＤＤＲ  Ｆｉｅｌｄ）（０４０３）を含む。また、ＴＣＮＡＣＲを構成するＣｌｕｓｔｅｒＩＤ  Ｆｉｅｌｄの実体は、ＣｌｕｓｔｅｒＩＤ１（０３０５）、ＣｌｕｓｔｅｒＡＤＤＲ  Ｆｉｅｌｄの実体は、ＣｌｕｓｔｅｒＡＤＤＲ１（０３０８）として分割して保存されることを想定し、図４の構成例ではＴＣＮＡＣＲは２本存在することを意味する。
【００４２】
図６は、図３に示される単位クラスタ０１０１に含まれる転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）０１０２の動作例を示すタイミングチャート図である。すなわち、図６は、図３に示すＴＣＮＡＵ０１０２のＩＰ  Ｘ側にあるＸ点と、ＲＥＱＴＵ側にあるＴ点で見られるタイムチャートである。Ｃｌｏｃｋは、システムのクロックサイクルを示している。
【００４３】
ＩＰ  Ｘから、クラスタＮ（ｃｌｕｓｔｅｒ＃＝Ｎ）へリードアクセスを行う際、ＩＰ  Ｘは、まずＣｌｏｃｋ１において、ＣｌｕｓｔｅｒＩＤ１およびＣｌｕｓｔｅｒＡＤＤＲ１から構成されるＴＣＮＡＣＲ１に対して設定を書き込み、続いてＣｌｏｃｋ２でＩＰ  Ｘから発行されたリードリクエストは、ＴＣＮＡＵによりｃｌｕｓｔｅｒ＃の付加および上位アドレスの切り替えが行われ、ＲＥＱＴＵへ転送される。すなわち、リードアクセスとして、ＴＣＮＡＵでｃｌｕｓｔｅｒ＃としてＣｌｕｓｔｅｒＩＤＮ、ａｄｄｒとして上位アドレス１６ｂｉｔがＣｌｕｓｔｅｒＡＤＤＲＮの値が第１のレジスタにより設定され、下位１６ｂｉｔのＩＰ  Ｘから発行されたアドレスと共にＲＥＱＴＵへ転送される。換言すると、最初のサイクルでレジスタにクラスタ番号を設定し、次のサイクルでクラスタＮへアクセスアドレスを出力しリードを行う、２サイクルアクセスとなる。
【００４４】
同様に、ＩＰ  Ｘから、クラスタＭ（ｃｌｕｓｔｅｒ＃＝Ｍ）へライトアクセスを行う際、ＩＰ  Ｘは、まずＣｌｏｃｋ３において、ＣｌｕｓｔｅｒＩＤ２およびＣｌｕｓｔｅｒＡＤＤＲ２から構成されるＴＣＮＡＣＲ２に対して設定を書き込み、続いてＣｌｏｃｋ４でＩＰ  Ｘから発行されたライトリクエストは、ＴＣＮＡＵによりｃｌｕｓｔｅｒ＃の付加および上位アドレスの切り替えが行われ、ＲＥＱＴＵへ転送される。すなわち、ライトアクセスとして、ＴＣＮＡＵでｃｌｕｓｔｅｒ＃としてＣｌｕｓｔｅｒＩＤＭ、ａｄｄｒとして上位アドレス１６ｂｉｔがＣｌｕｓｔｅｒＡＤＤＲＭの値が第２のレジスタにより設定され、下位１６ｂｉｔのＩＰ  Ｘから発行されたアドレスと共にＲＥＱＴＵへ転送される。
【００４５】
なお、Ｃｌｏｃｋ５およびＣｌｏｃｋ６のように、ＨｏｏｋＡＤＤＲに一致しないアクセスは、ｃｌｕｓｔｅｒ＃として自クラスタ番号が付加されるのみで、アドレスの切り替えは行わない。
【００４６】
また、一旦ＴＣＮＡＣＲ１を設定した後は、同一クラスタへ、同一のアドレス切り替えで転送を行う際には、Ｃｌｏｃｋ５〜Ｃｌｏｃｋ７に示すように、Ｃｌｏｃｋ３で第２のレジスタへ行った設定を再度行うことなくアクセスすることができる。換言すると、既に設定された同一クラスタへ転送を行う際は、レジスタの設定、書き換えが不要なため、１サイクルアクセスとなる。レジスタの数を増やすことにより、このような１サイクルアクセスを増やすことができる。
【００４７】
図７に、図３の単位クラスタ０１０１に含まれるリクエスト転送回路（ＲＥＱＴＵ）０１０３の構成例を示す。ＲＥＱＴＵは、０６０１で示すリクエストデコード回路（ＲＥＱＤＥＣ）と、０６０２で示すリクエストセレクト回路（ＲＥＱＭＵＸ）からなる。ＲＥＱＴＵは、ＢＩｎ０とＩＰ  Ｘに接続されたＴＣＮＡＵから転送されるリクエストを受信すると、まずＲＥＱＤＥＣによりＭｙＣｌｕｓｔｅｒＩＤとｃｌｕｓｔｅｒ＃を比較し、両者が一致しない場合はＢＴｎ０にｃｍｄを出力すると同時にＲＥＱＭＵＸをＢＴｎ０側に切り替えてリクエストを転送する。一方、ＲＥＱＤＥＣによる比較結果により両者が一致した場合、ＲＥＱＤＥＣはａｄｄｒをデコードし、自クラスタ内においてａｄｄｒに該当するＩＰ  Ｙのようなターゲットモジュールが存在する場合は、ＩＰ  Ｙのようなターゲットモジュールにｃｍｄを出力すると同時にＲＥＱＭＵＸをＩＰ  Ｙのようなターゲットモジュール側に切り替えてリクエストを転送し、該当するターゲットモジュールが存在しない場合、すなわち別クラスタＫに接続されていて、全クラスタで共有しているようなターゲットモジュールのａｄｄｒであった場合は、ＢＴｎ０にｃｍｄを出力すると同時にＲＥＱＭＵＸをＢＴｎ０側に切り替えてリクエストを転送する。なお、本構成例では、単純化のためＴＣＮＡＵおよびＩＰ  Ｙの数は１個ずつとしているが、制限はない。
【００４８】
図８に、図３の単位クラスタ０１０１に含まれるレスポンス転送回路（ＲＥＳＴＵ）０２０１の構成例を示す。ＲＥＳＴＵは、０７０１に示すレスポンスデコード回路（ＲＥＳＤＥＣ）と、０７０２で示すレスポンスセレクト回路（ＲＥＳＭＵＸ）からなる。ＲＥＳＴＵは、ＢＴｎ０とＩＰ  Ｙから転送されるレスポンスを受信すると、ＲＥＳＤＥＣによりｒ＿ｓｒｃをデコードし、ＴＣＮＡＵに接続されているＩＰ  Ｘと一致していれば、ＩＰ  Ｘの接続されているＴＣＮＡＵにｃｍｄを出力すると同時に、ＲＥＳＭＵＸをＴＣＮＡＵ側に切り替えてレスポンスを転送し、そうでなければＢＩｎ０にｃｍｄを出力すると同時にＲＥＳＭＵＸをＢＩｎ０側に切り替えてレスポンスを転送する。なお、本構成例では、単純化のためにＴＣＮＡＵおよびＩＰ  Ｙの数は１個ずつとしているが、制限はない。
【００４９】
以上のようなブロックで構成されたデータ処理装置において、ソフトウェアを用いて実行される任意の単位クラスタにおけるデータ処理の手順を、図９のフローチャートを用いて説明する。図９は図４に示される転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）０１０２を利用する際のプログラム処理の概要を示すフローチャートである。
【００５０】
まず、あるプログラムが特定のモジュールへアクセスを行う場合、そのモジュールが当該クラスタ内のアクセスか、クラスタ間をまたいだアクセス、換言するとＨｏｏｋＡＤＤＲで指定された領域すなわちＴＣＮＡＵによるａｄｄｒの変更を行うアドレス領域へアクセスするか、を確認する（Ｓ８０１）。ＨｏｏｋＡＤＤＲで指定された領域へアクセスしない場合、換言すると当該クラスタ内のアクセスの場合はそのまま当該クラスタ内でアクセスを実行（Ｓ８０３）する。ＨｏｏｋＡＤＤＲで指定された領域へアクセスする場合、換言するとクラスタ間をまたいだアクセスの場合は、ＴＣＮＡＣＲの設定を行ってから（Ｓ８０２）、指定されたクラスタ内でアクセスを実行する（Ｓ８０３）。次に、アクセス終了の判定を行い（Ｓ８０４）、アクセスが終了した場合はプログラムの終了となる。終了しなかった場合は、再度ＨｏｏｋＡＤＤＲで指定された領域へアクセスするかを判定し（Ｓ８０５）、ＨｏｏｋＡＤＤＲで指定された領域へアクセスする場合、既にＴＣＮＡＣＲの設定が終了している場合はそのままアクセスをし、未設定の場合は、ＴＣＮＡＣＲを再設定してからアクセスを実行する（Ｓ８０６）。
【００５１】
本実施例では、他のクラスタへのアクセスであった場合、転送先クラスタ番号および転送先クラスタアドレス付加回路により別クラスタへの転送に要する情報を付与する。本実施例では、設定用のレジスタを用いた擬似アドレス拡張を行ったアドレス空間を採用しているため、ＯＳからは、自身が動作する特定の単位クラスタ以外のアドレス空間は、ＩＰの一部として見えることになる。これにより、ある単位クラスタから、別の単位クラスタのリソースが、あたかも当該単位クラスタに属するＩＰであるかのように扱える。ある単位クラスタに属するＣＰＵは、メモリを介さずに、他の単位クラスタの重複リソースを参照することができる。
【００５２】
図９で説明したような基本的なアクセス方法を、割り込みによるコンテクストスイッチが発生するシステムで適用する場合のソフトウェアからの使用方法を、図１０のフローチャートを用いて説明する。図９で説明したようなアクセス方法を含むプログラムをＣＰＵで実行している際（Ｓ９０１）、割り込み受け付けの有無をチェックし（Ｓ９０２）、割り込みを受け付けなかった場合は、プログラムが終了するまでプログラムを実行する（Ｓ９０３）。割り込みを受け付けた場合、従来から行われている割り込みにより中断されたプログラムの再開に必要な情報をスタックへ格納する（Ｓ９０５）。この後、割り込み処理プログラムがＨｏｏｋＡＤＤＲで指定された領域へアクセスするか判定し（Ｓ９０６）、アクセスする場合は、ＴＣＮＡＣＲもスタックへ格納し（Ｓ９０７）、割り込みプログラムを開始する（Ｓ９０８）。アクセスしない場合は、そのまま割り込みプログラムを開始する。このように、プログラム実行中に、割り込みを受け付けるたびに、スタックへ中断されたプログラムの再開に必要な情報を格納する。割り込みを受け付けずにプログラムが終了した場合、スタックに情報があるかをチェックし（Ｓ９０４）、スタックに再開情報が残っている場合は、スタックから被割り込みプログラムの再開に必要な情報を取り出し（Ｓ９０９）、中断されたプログラムを再開する（Ｓ９１０）。以下、割り込みによる中断プログラムが無くなるまで、すなわちスタックに情報が無くなるまで処理を繰り返し、終了する。
【００５３】
本発明のアドレス空間は、単位クラスタ毎に形成された物理アドレス空間であり、クラスタ間をまたいだアクセスを通常のメモリ割付アクセスにより実現するので、通信のオーバーヘッドの増大を最小限に抑えることができる。また、自クラスタから別クラスタへのアクセスを行う際の転送先クラスタ番号および転送先クラスタアドレス付加などは、ドライバソフトウェアを使用して行うようにシステムを構築するので、ＣＰＵもしくはＩＰと，ＯＳの大幅な修正は必要ない。
【００５４】
なお、本実施例では、データ処理装置の複数のアドレス空間を、複数の単位クラスタのメモリで構成しているが、本発明の適用可能なアドレス空間の構成はこれに限定されるものではなく、例えば、１つのＯＳが管理する物理アドレス空間として構成された複数のコンピュータからなるシステムあるいはマルチコアシステムなど、他の手段を用いても良い。
【００５５】
本実施例によれば、以上のようなデータ処理装置と、プログラムにより、ＣＰＵ（中央演算処理装置）などに代表されるイニシエータＩＰモジュール及びＯＳの大規模な修正なしに、かつ最小限のオーバーベッドで、複数のクラスタで構成されるデータ処理装置内の全てのリソースの間で、データ転送が可能なデータ処理装置を提供することができる。
【００５６】
また、プログラムにより、リソースにアクセスする順序関係は保障されており、リソースに対して安全なアクセスを実現できる。
【実施例２】
【００５７】
図１１は、本発明にかかる半導体集積装置で実現されるデータ処理装置の他の実施例のシステム構成例を示す図である。データ処理装置０１０１は、システムの最小構成単位である単位クラスタの組み合わせで構成される。図１１の例では、単位クラスタＡ（０１１０）、単位クラスタＢ（０１１１）、単位クラスタＣ（０１１２）、単位クラスタＤ（０１１３）からなる。構成する単位クラスタの数は４つ以上であればよく、図１１では４つの単位クラスタからなる構成例である。各単位クラスタは、任意のクラスタと接続したネットワークを持つ。すなわち、このデータ処理装置のネットワークは、４つの単位クラスタ間で直接アクセスできるように相互にバスを介して接続されている。
【００５８】
ここで図１１では、単位クラスタＡ（００１０）はＣＰＵ０、ＣＰＵ１、ＣＰＵ２、ＤＭＡ０なるイニシエータモジュール、ＳＲＡＭ０、ＤＲＡＭ、３ＤＲＡＭ０、ＩＰ０なるターゲットモジュールで構成され、単位クラスタＢ（００１１）は、ＣＰＵ３、ＣＰＵ４、ＤＭＡ１、ＩＰ１なるイニシエータモジュール、ＳＲＡＭ１、３ＤＲＡＭ１なるターゲットモジュールで構成され、単位クラスタＣは、ＣＰＵ５、ＤＭＡ２なるイニシエータモジュール、ＳＲＡＭ２、３ＤＲＡＭ２ＩＰ２なるターゲットモジュールで構成され、単位クラスタＤは、ＣＰＵ６、ＣＰＵ７、ＤＭＡ３なるイニシエータモジュール、ＳＲＡＭ３、３ＤＲＡＭ３なるターゲットモジュールで構成される例を示している。
【００５９】
また、これら単位クラスタを接続するネットワークは、単位クラスタＡ（０１１０）と単位クラスタＢ（０１１１）、単位クラスタＢ（０１１１）と単位クラスタＤ（０１１３）、単位クラスタＤ（００１３）と単位クラスタＣ（００１２）、単位クラスタＣ（００１２）と単位クラスタＡ（００１０）、単位クラスタＡ（０１１０）と単位クラスタＤ（０１１３）、単位クラスタＢ（０１１１）と単位クラスタＣ（０１１２）がそれぞれ、バス００２０、００２１、００２２、００２３、００２４、００２５を介して接続されている襷がけのネットワークを例とする。
【００６０】
本実施例２が、実施例１と最も異なる部分は、単位クラスタＡと単位クラスタＤ間の重複リソースへのアクセス経路に、実施例１でも存在した単位クラスタＢ経由のアクセス経路だけではなく、直接単位クラスタＡ−Ｄ間でアクセスできるネットワーク（バス００２４）が増え、また、直接単位クラスタＢ−Ｄ間でアクセスできるネットワーク（バス００２５）が増え、かつ、それらの経路が選択可能となっている点である。このようなネットワークは、単位クラスタが４つ以上ある情報処理装置において有効であることは言うまでも無い。
【００６１】
図１２は、図１１のデータ処理装置０１０１に含まれる単位クラスタの例である。１００１は最小構成単位であるクラスタであり、０１０２で示す転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）と、１００３で示す経路可変リクエスト転送回路（ＶＲＥＱＴＵ）と、１１０１で示す経路可変レスポンス転送回路（ＶＲＥＳＴＵ）と、１００２で示すＶＲＥＱＴＵおよびＶＲＥＳＴＵにおける経路を指定することができる経路指定レジスタ（Ｐａｔｈ  Ｒｅｇ）と、１００４で示すイニシエータブリッジ回路１（ＢＩｎ１）と、１００５で示すターゲットブリッジ回路１（ＢＴｎ１）と、１００６で示すイニシエータブリッジ回路２（ＢＩｎ２）と、１００７で示すターゲットブリッジ回路２（ＢＴｎ２）と、自身のクラスタ番号を保持する０１０６で示す自クラスタ番号レジスタ（ＭｙＣｌｕｓｔｅｒＩＤ  Ｒｅｇ）と、０１９２で示すイニシエータＩＰモジュールＸ（ＩＰ  Ｘ）と、０１９３で示すターゲットＩＰモジュールＹ（ＩＰ  Ｙ）から構成される。
【００６２】
イニシエータブリッジ回路１（ＢＩｎ１）１００４は、１０９０で示す別クラスタＰからリクエストを受け取りＶＲＥＱＴＵに転送、もしくはレスポンスをＶＲＥＳＴＵから受け取り、別クラスタＰに返す。ターゲットブリッジ回路１（ＢＴｎ１）１００５は、ＶＲＥＱＴＵからリクエストを受け取り１０９１で示す別クラスタＱに転送、もしくは別クラスタＱからレスポンスを受け取りＶＲＥＳＴＵに返す。イニシエータブリッジ回路２（ＢＩｎ２）１００６は、１０９２で示す別クラスタＲからリクエストを受け取りＶＲＥＱＴＵに転送、もしくはレスポンスをＶＲＥＳＴＵから受け取り、別クラスタＲに返す。ターゲットブリッジ回路２（ＢＴｎ２）１００７は、ＶＲＥＱＴＵからリクエストを受け取り１０９３で示す別クラスタＳに転送、もしくは別クラスタＳからレスポンスを受け取りＶＲＥＳＴＵに返す。なお、単位クラスタを構成する各回路、レジスタは簡単のために、それぞれ省略して記載しているが、ＴＣＮＡＵ（０）〜ＴＣＮＡＵ（ｎ）やＩＰ  Ｘ（０）〜ＩＰ  Ｘ（ｎ）、ＩＰ  Ｙ（０）〜ＩＰ  Ｙ（ｍ）のように複数存在しても良く、数の変更に対して制限はない。また、このクラスタを４つ以上、イニシエータブリッジ回路やターゲットブリッジ回路を用いて接続することで、データ処理装置を構成する。
【００６３】
本実施例２が、実施例１と最も異なっている部分を実現するために、Ｐａｔｈ  Ｒｅｇ１００２の追加と、Ｐａｔｈ  Ｒｅｇの設定により転送経路を変更可能なＶＲＥＱＴＵ１００３および、ＶＲＥＳＴＵ１１０１を設けている。以下、両実施例の違いについて説明する。４つ以上のクラスタを接続するデータ処理装置においては、接続形態によっては、あるイニシエータモジュールから、ターゲットモジュールへリクエストを転送する経路が１つではない。同様に、あるターゲットモジュールから、イニシエータモジュールへレスポンスを転送する経路が１つではない。例えば、ＩＰ  Ｘが別クラスタのモジュールへリクエストを送信する場合、別クラスタＱ経由でも別クラスタＳ経由でもリクエスト転送が可能な場合を想定している。このような場合において、Ｐａｔｈ  Ｒｅｇ１００２の設定によりＶＲＥＱＴＵ１００３およびＶＲＥＳＴＵ１１０１の転送経路を指定可能とすることで、ソフトウェアからの制御を可能としている。
【００６４】
図１３に、本実施例におけるＰａｔｈ  Ｒｅｇ１００２の設定および定義の例を示す。リクエスト転送経路（Ｒｅｑｕｅｓｔ）については、ＨｏｏｋＡＤＤＲ１、ＤＲＡＭ、ＳＲＡＭなど、別クラスタ経由のアクセスを行う際、自クラスタからどのターゲットブリッジ回路（ＢＴｕ１もしくはＢＴｕ２）に転送を行うか、Ｐａｔｈ  Ｒｅｇ  ＶａｌｕｅのＡ，  Ｂ，―，―，Ｚ毎に、定義する。また、レスポンス転送経路（Ｒｅｓｐｏｎｓｅ）については、Ｐａｔｈ  Ｒｅｇ  ＶａｌｕｅのＡ，  Ｂ，―，―，Ｚに関して、ｒ＿ｓｒｃの値０，１，―，ごとに自クラスタからどのイニシエータブリッジ回路（ＢＩｎ１もしくはＢＩｎ２）に転送を行うか、定義する。なお、自クラスタが終点となるようなリクエスト、レスポンスについては定義が不要である。このような定義の組をＡ，  Ｂ，―，―，Ｚのようにして複数用意しておき、Ｐａｔｈ  Ｒｅｇに値を設定することで、リクエスト、レスポンスの転送先を変更可能とする。
【００６５】
なお、Ｐａｔｈ  Ｒｅｇの設定変更は、変更前後でリクエストおよびレスポンスが正しく転送されなければならない。よって、各イニシエータが自由に設定変更せず、変更の際は全イニシエータのリクエストに対して、ターゲットからのレスポンスが送信され終わっていることを確認してから行わなければならない。具体的な方法は規定しないが、例えばデータ処理装置内の１つのＣＰＵ（中央演算処理装置）以外は、スリープ状態に遷移しておき、Ｐａｔｈ  Ｒｅｇの設定変更が終わった後、割り込みによって処理を再開する、などの方法が考えられる。
【００６６】
なお、実施例２で示されるデータ処理装置には、実施例１で示すようなクラスタが構成要素として入っていてもよい。
【００６７】
図１４に、図１２に示されるクラスタに含まれる経路可変リクエスト転送回路（ＶＲＥＱＴＵ）の構成例を示す。ＶＲＥＱＴＵは、１３０１で示す可変リクエストデコード回路（ＶＲＥＱＤＥＣ）と、１３０２で示す可変リクエストセレクト回路（ＶＲＥＱＭＵＸ）からなる。ＶＲＥＱＴＵは、ＢＩｎ１およびＢＩｎ２とＩＰ  Ｘに接続されたＴＣＮＡＵから転送されるリクエストを受信すると、まずＶＲＥＱＤＥＣによりＭｙＣｌｕｓｔｅｒＩＤとｃｌｕｓｔｅｒ＃を比較し、両者が一致しない場合はＰａｔｈ  Ｒｅｇの内容（ｐａｔｈ＿ｓｅｌ）に従って、ＢＴｎ１もしくはＢＴｎ２のどちらかにｃｍｄを出力すると同時にＶＲＥＱＭＵＸをＢＴｎ１側もしくはＢＴｎ２側のどちらかに切り替えてリクエストを転送する。
【００６８】
一方、ＶＲＥＱＤＥＣによる比較結果により両者が一致した場合、ＶＲＥＱＤＥＣはａｄｄｒをデコードし、自クラスタ内においてａｄｄｒに該当するＩＰ  Ｙのようなターゲットモジュールが存在する場合は、ＩＰ  Ｙのようなターゲットモジュールにｃｍｄを出力すると同時にＲＥＱＭＵＸをＩＰ  Ｙのようなターゲットモジュール側に切り替えてリクエストを転送し、該当するターゲットモジュールが存在しない場合、すなわち自クラスタ以外に接続されていて、全クラスタで共有しているようなターゲットモジュールのａｄｄｒであった場合は、Ｐａｔｈ  Ｒｅｇの内容（ｐａｔｈ＿ｓｅｌ）に従って、ＢＴｎ１もしくはＢＴｎ２のどちらかにｃｍｄを出力すると同時にＶＲＥＱＭＵＸをＢＴｎ１側もしくはＢＴｎ２側のどちらかに切り替えてリクエストを転送する。なお、本構成例では、単純化のためＢＩｎ１、ＢＩｎ２、ＴＣＮＡＵおよびＩＰ  Ｙの数は１個ずつとしているが、制限はない。
【００６９】
図１５に、図１２に示されるクラスタに含まれるＶＲＥＳＴＵの構成例を示す。ＶＲＥＳＴＵは、１４０１に示す可変レスポンスデコード回路（ＶＲＥＳＤＥＣ）と、１４０２で示す可変レスポンスセレクト回路（ＶＲＥＳＭＵＸ）からなる。ＶＲＥＳＴＵは、ＢＴｎ１、ＢＴｎ２とＩＰ  Ｙから転送されるレスポンスを受信すると、ＶＲＥＳＤＥＣによりｒ＿ｓｒｃをデコードし、ＴＣＮＡＵに接続されているＩＰ  Ｘと一致していれば、ＩＰ  Ｘの接続されているＴＣＮＡＵにｃｍｄを出力すると同時に、ＶＲＥＳＭＵＸをＴＣＮＡＵ側に切り替えてレスポンスを転送し、そうでなければＰａｔｈ  Ｒｅｇの内容（ｐａｔｈ＿ｓｅｌ）に従って、ＢＩｎ１もしくはＢＩｎ２のどちらかにｃｍｄを出力すると同時にＶＲＥＳＭＵＸをＢＩｎ１側もしくはＢＩｎ２側のどちらかに切り替えてレスポンスを転送する。なお、本構成例では、単純化のためＢＩｎ１、ＢＩｎ２、ＴＣＮＡＵおよびＩＰ  Ｙの数は１個ずつとしているが、制限はない。
【００７０】
なお、転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）０１０２の動作は、図６で説明したタイミングチャートと同様である。
【００７１】
以上のようなブロックで構成されたデータ処理装置を用いれば、Ｐａｔｈ  Ｒｅｇの設定後は、図９および図１０のフローチャートで説明したプログラムを使用することで、ＣＰＵ（中央演算処理装置）などに代表されるイニシエータＩＰモジュールと、ＯＳの大幅な修正なしに、複数のクラスタで構成されるデータ処理装置内の全てのリソースの間でデータ転送が可能になるだけでなく、データ転送の際に、電源遮断や製造不良、クラスタ構成の変更などによりデータ転送が行えないクラスタを迂回したデータ転送が可能なデータ処理装置を提供することができる。
【００７２】
なお、単位クラスタが４つ以上ある情報処理装置におけるネットワークの構成は、全ての単位クラスタ間で直接アクセスできるものに限られることは無く、少なくとも４つの単位クラスタ間において直接アクセスできれは良い。用途に応じて、特定の単位クラスタ間で相互にバスを介して接続されるようにすれば良い。
【符号の説明】
【００７３】
０００１  ４つの単位クラスタにより構成したリング型ネットワークシステムの例
００１０  単位クラスタＡ
００１１  単位クラスタＢ
００１２  単位クラスタＣ
００１３  単位クラスタＤ
００２０  バス
００２１  バス
００２２  バス
００２３  バス
００２０  バス  ０１０１  転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）を搭載したクラスタ
０１０２  転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）
０１０３  リクエスト転送回路（ＲＥＱＴＵ）
０１０４  イニシエータブリッジ回路０（ＢＩｎ０）
０１０５  ターゲットブリッジ回路０（ＢＴｎ０）
０１０６  自クラスタ番号レジスタ（ＭｙＣｌｕｓｔｅｒＩＤ  Ｒｅｇ）
０１９０  別クラスタＪ（リクエスト送信元）
０１９１  別クラスタＫ（リクエスト送信先）
０１９２  イニシエータＩＰモジュールＸ（ＩＰ  Ｘ）
０１９３  ターゲットＩＰモジュールＹ（ＩＰ  Ｙ）
０２０１  レスポンス転送回路（ＲＥＳＴＵ）
０３０１  ＴＣＮＡＵ制御回路（ＴＣＮＡＵ  ＣＴＲＬ）
０３０２  フックアドレス値１（ＨｏｏｋＡＤＤＲ１）
０３０３  フックアドレス値２（ＨｏｏｋＡＤＤＲ２）
０３０４  比較器（ＣＭＰ）
０３０５  転送先クラスタ番号保持回路１（ＣｌｕｓｔｅｒＩＤ１）
０３０６  転送先クラスタ番号保持回路２（ＣｌｕｓｔｅｒＩＤ２）
０３０７  転送先クラスタ番号選択回路（ＩＤＭＵＸ）
０３０８  転送先クラスタアドレス保持回路１（ＣｌｕｓｔｅｒＡＤＤＲ１）
０３０９  転送先クラスタアドレス保持回路２（ＣｌｕｓｔｅｒＡＤＤＲ２）
０３１０  転送先クラスタアドレス選択回路（ＡＤＤＲＭＵＸ）
０４０１  転送先クラスタ番号および転送先クラスタアドレス指定レジスタ（ＴＣＮＡＣＲ）
０４０２  転送先クラスタ番号指定フィールド（ＣｌｕｓｔｅｒＩＤ  Ｆｉｅｌｄ）
０４０３  転送先クラスタアドレス指定フィールド（ＣｌｕｓｔｅｒＡＤＤＲ  Ｆｉｅｌｄ）
０６０１  リクエストデコード回路（ＲＥＱＤＥＣ）
０６０２  リクエストセレクト回路（ＲＥＱＭＵＸ）
０７０１  レスポンスデコード回路（ＲＥＳＤＥＣ）
０７０２  レスポンスセレクト回路（ＲＥＳＭＵＸ）
０１０１  ４つの単位クラスタにより構成したシステムの例
０１１０  単位クラスタＡ
０１１１  単位クラスタＢ
０１１２  単位クラスタＣ
０１１３  単位クラスタＤ
１００１  転送先クラスタ番号および転送先クラスタアドレス付加回路（ＴＣＮＡＵ）と経路指定レジスタ（Ｐａｔｈ  Ｒｅｇ）を搭載したクラスタ
１００２  経路指定レジスタ（Ｐａｔｈ  Ｒｅｇ）
１００３  経路可変リクエスト転送回路（ＶＲＥＱＴＵ）
１００４  イニシエータブリッジ回路１（ＢＩｎ１）
１００５  ターゲットブリッジ回路１（ＢＴｎ１）
１００６  イニシエータブリッジ回路２（ＢＩｎ２）
１００７  ターゲットブリッジ回路２（ＢＴｎ２）
１０９０  別クラスタＰ（リクエスト送信元）
１０９１  別クラスタＱ（リクエスト送信先）
１０９２  別クラスタＲ（リクエスト送信元）
１０９３  別クラスタＳ（リクエスト送信先）
１１０１  経路可変レスポンス転送回路（ＶＲＥＳＴＵ）
１３０１  可変リクエストデコード回路（ＶＲＥＱＤＥＣ）
１３０２  可変リクエストセレクト回路（ＶＲＥＱＭＵＸ）
１４０１  可変レスポンスデコード回路（ＶＲＥＳＤＥＣ）
１４０２  可変レスポンスセレクト回路（ＶＲＥＳＭＵＸ）。
【図１】
2012256087.tif 000003
【図２】
2012256087.tif 000004
【図３】
2012256087.tif 000005
【図４】
2012256087.tif 000006
【図５】
2012256087.tif 000007
【図６】
2012256087.tif 000008
【図７】
2012256087.tif 000009
【図８】
2012256087.tif 000010
【図９】
2012256087.tif 000011
【図１０】
2012256087.tif 000012
【図１１】
2012256087.tif 000013
【図１２】
2012256087.tif 000014
【図１３】
2012256087.tif 000015
【図１４】
2012256087.tif 000016
【図１５】
2012256087.tif 000017