説明

データ処理装置及びデータ処理方法

【課題】大量のCPUを使用して大規模な計算を行うデータ処理装置を構成する場合、パケット通信をベースとした手法が使用されていた。この方法では、転送の粒度やオーバーヘッドが大きく、また転送の粒度を小さくし、かつオーバーヘッドを減らそうとすると、CPUやOSへの修正が必要になりコストがかかる。
【解決手段】イニシエータIPモジュールと、リクエスト転送回路と、レスポンス転送回路と、自クラスタ番号レジスタ等を含むクラスタを2つ以上具備し、イニシエータIPモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、別クラスタへの転送に要する情報を付与し、その情報を元に転送先が自クラスタか別クラスタかを判定してデータを転送するようにデータ処理装置を構成する。自クラスタから別クラスタへのアクセスを行う場合、別クラスタへのアクセスを行う前に、転送先のクラスタ番号およびアドレスを設定してからアクセスを行うようにする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置及びデータ処理方法に係り、例えば複数クラスタからなるデータ処理装置に適用して有効な技術に関する。
【背景技術】
【0002】
従来、大量のCPU(中央演算処理装置)を使用して大規模な計算をする方法として、PCクラスタのようなシステムが利用されている。これは、1つのPCに1から8個程度のCPUを搭載したLSI上でOSを動かし,Ethernet(登録商標)のような通信網で接続し、パケット通信を行いながら相互連携することで大規模な計算を行う。特許文献1には、プロセスに一意に対応する仮想空間が構成され、各クラスタが命令実行回路及び送受信回路を備え、他のクラスタで実行される命令に関して指定された仮想空間にネットワークを介してデータを転送するプロセッサ間通信方法が開示されている。
【0003】
これに対し、近年の半導体集積技術の進化や、三次元実装技術の進化により、単一LSIもしくは単一の積層LSI上に搭載可能なCPUの数は飛躍的に増加すると考えられる。このような多数のCPUを搭載したLSIでは,PCクラスタと同様に各CPU同士の連携を行うための方法が必要である。
【0004】
その1つの方法として,PCクラスタと同じくEthernetのようなパケット通信の機構をLSI内で実装する方法が類推できる。パケット通信では、チップ内でのCPUの接続形態によらず任意の経路を通じてパケットを転送することができる。
【0005】
また、別なる方法として、物理的アドレス空間をたとえば32bitから64bitへ拡張するなどし、すべてのCPUおよびメモリなどの記憶素子や周辺回路といったリソースにアドレスを割り付ける方法が考えられる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平04−291660号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、パケット通信の機構をLSI内で実装する方法は、ハードウェア面、ソフトウェア面両方にペナルティがある。ハードウェア面では、パケットのヘッダ付加による転送効率劣化、レイテンシ増大による応答性能低下が大きいと考えられる。またソフトウェア面では、パケットの解析処理が必要であるため、小さな転送サイズではオーバーヘッドが大きく、システムとしての性能が劣化してしまう。そのため、ある処理を実現しようとした場合、できる限りクラスタ間の転送を大きな粒度で行う必要があるが、処理データに相互依存がある場合(データ並列性が低い場合)大規模なPCクラスタであっても処理性能を伸ばすことは難しい。
【0008】
また、物理的アドレス空間を拡張しリソースにアドレスを割り付ける方法では、パケット通信と異なり、アドレスにより転送経路が一意に決まるため、通信のオーバーヘッドが小さくできるはずだが、CPUなどのハードウェアだけでなく、OSなどの大規模な修正が必要となり、大きなコストがかかってしまう。また、通信経路はアドレスにより一意に決まるため、アドレスマップを複数持つことによる転送先の変更は可能であるが、通信経路を変更することはできない。
【0009】
このように、高い通信の自由度と既存資産の流用を選ぶ方法では、転送の粒度に対する制約やパケット解析などのソフトウェアのオーバーヘッドが大きく、また転送の粒度を小さく、かつオーバーヘッドを減らそうとすると、CPUやOSへの修正が必要になり大きなコストがかかる上、通信の自由度も低下してしまう。
【0010】
よって、本発明の主たる課題は、単一LSIもしくは単一の三次元実装技術により構成された積層LSI上に多数のCPUもしくはIPなどの論理回路を実装したデータ処理装置において、CPUもしくはIPと,OSの大幅な修正をなしに、かつ最小限のオーバーヘッドでデータ処理装置すべてのリソースを共有し連携するためのデータ転送機構を実現するシステム及び方法を提供することにある。
【0011】
また、本発明の他の課題は、データ処理装置を構成するハードウェアに対して、再設計、再製造を行うことなく、データ転送経路を変更可能なデータ転送機構を実現するシステム及び方法を提供することにある。
【課題を解決するための手段】
【0012】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記のとおりである。本発明のデータ処理装置は、互いに異なるアドレス空間を有する複数のクラスタと、前記各クラスタを接続するネットワークとを備えたデータ処理装置であって、前記複数のクラスタの各々をユニークに識別するための情報としてクラスタID番号を保持し、前記複数のクラスタの中の1つのクラスタから、他のクラスタの前記アドレス空間に含まれるリソースにアクセスする際に、該リソースのアドレスに前記他のクラスタのID番号を付加することにより転送先をシステム内でユニークに指定することを特徴とする。
【発明の効果】
【0013】
本発明によれば、CPUなどに代表されるイニシエータIPモジュールと、OSの大幅な修正なしに、かつ最小限のオーバーヘッドで、複数のクラスタで構成されるデータ処理装置内の全てのリソースの間でデータ転送が可能なデータ処理装置を提供することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施例になるデータ処理装置を半導体集積回路で実装したシステム構成例を示すブロック図である。
【図2】図1のシステムが持つアドレスマップの一例である。
【図3】本発明にかかる半導体集積回路で実現される単位クラスタの一例である転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)を含むシステムLSIにおける1クラスタのリクエストおよびレスポンス転送機構の一例を示すブロック図である。
【図4】図3に示されるシステムLSIに含まれる転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)の構成例ブロック図である。
【図5】図3に示されるシステムLSIに含まれる転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)に含まれる転送先クラスタ番号および転送先クラスタアドレス指定レジスタ(TCNACR)の構成例図である。
【図6】図3に示されるシステムLSIに含まれる転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)の動作例を示すタイミングチャート図である。
【図7】図3に示されるシステムLSIに含まれるリクエスト転送回路(REQTU)の構成例ブロック図である。
【図8】図3に示されるシステムLSIに含まれるレスポンス転送回路(RESTU)の構成例ブロック図である。
【図9】図4に示される転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)を利用する際のプログラム処理概要を示すフローチャートである。
【図10】図4に示される転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)を割り込みの発生するシステムで利用する際のプログラム処理概要を示すフローチャートである。
【図11】本発明の他の実施例になるデータ処理装置を半導体集積回路で実装したシステム構成例を示すブロック図である。
【図12】図11の実施例になる半導体集積回路の、転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)と、経路指定レジスタ(Path Reg)を含むシステムLSIにおける1クラスタの経路可変リクエストおよびレスポンス転送機構の一例を示すブロック図である。
【図13】12に示されるシステムLSIに含まれる経路指定レジスタ(Path Reg)の設定例図である。
【図14】図12に示されるシステムLSIに含まれる経路可変リクエスト転送回路(VREQTU)の構成例ブロック図である。
【図15】図12に示されるシステムLSIに含まれる経路可変レスポンス転送回路(VRESTU)の構成例ブロック図である。
【発明を実施するための形態】
【0015】
本発明では、単一LSIもしくは三次元実装技術により構成された積層LSI上に多数のCPUもしくはIPなどの論理回路を実装したデータ処理装置において、データ処理装置すべてのリソースを共有し連携するためのデータ転送を実現するシステム及び方法を提供する。
【0016】
本発明のデータ処理装置では、システムを構成する要素は、複数ある単位クラスタを、ユニークに識別するためのクラスタID番号を保持するレジスタを有する。また、リソースは、単位クラスタ上では一意にリソースが決まるがシステム全体では重複した物理アドレスを持つ重複リソースと、データ処理装置全体としては物理アドレスが重複しない非重複リソースとを持つ。各クラスタ同士でデータのやり取りをする場合、重複リソースへのアクセス時には、アドレス以外にクラスタID番号を付与することで、トランザクションの行き先をシステム内でユニークに指定する。
【0017】
本発明のより具体的な構成例を挙げると、イニシエータIPモジュールと、ターゲットIPモジュールと、転送先クラスタ番号および転送先クラスタアドレス付加回路と、リクエスト転送回路と、レスポンス転送回路と、イニシエータブリッジ回路と、ターゲットブリッジ回路と、自クラスタ番号レジスタを含むクラスタを2つ以上具備し、イニシエータIPモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、転送先クラスタ番号および転送先クラスタアドレス付加回路により別クラスタへの転送に要する情報を付与し、その情報を元に転送先が自クラスタか別クラスタかを判定してデータを転送するようにデータ処理装置を構成し、自クラスタから別クラスタへのアクセスを行うイニシエータIPモジュールは、別クラスタへのアクセスを行う前に、転送先クラスタ番号および転送先クラスタアドレス付加回路を設定してから別クラスタへのアクセスを行うようなプログラムを使用して別クラスタへのアクセス行うようにするシステムを構築する。
【0018】
また、本発明の他のより具体的な構成例を挙げると、前記クラスタを、イニシエータIPモジュールと、ターゲットIPモジュールと、転送先クラスタ番号および転送先クラスタアドレス付加回路と、経路指定レジスタと、経路可変リクエスト転送回路と、経路可変レスポンス転送回路と、イニシエータブリッジ回路と、ターゲットブリッジ回路と、自クラスタ番号レジスタを含むクラスタを4つ以上具備するように変更し、イニシエータIPモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、転送先クラスタ番号および転送先クラスタアドレス付加回路により別クラスタへの転送に要する情報を付与し、その情報を元に転送先が自クラスタか別クラスタかを判定し、経路指定レジスタの設定に従ってデータを転送するようにデータ処理装置を構成し、自クラスタから別クラスタへのアクセスを行うイニシエータIPモジュールは、別クラスタへのアクセスを行う前に、転送先クラスタ番号および転送先クラスタアドレス付加回路を設定してから別クラスタへのアクセスを行うようなプログラムを使用して別クラスタへのアクセス行うようにするシステムを構築する。
【0019】
本発明によれば、CPUなどに代表されるイニシエータIPモジュールと、OSの修正なしに、かつ最小限のオーバーヘッドで、複数のクラスタで構成されるデータ処理装置内の全ての重複リソースの間でデータ転送が可能なデータ処理装置を提供することができる。
【0020】
また、本発明の他の特徴によれば、データ転送の際に、電源遮断や製造不良、クラスタ構成の変更などによりデータ転送が行えないクラスタを迂回したデータ転送が可能なデータ処理装置を提供することができる。
【0021】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
【実施例1】
【0022】
図1は、本発明の一実施例になるデータ処理装置の物理的なシステム構成例を示した概念図である。本実施例のデータ処理装置0001は、好ましくは、単一の半導体集積回路(LSI)もしくは単一の積層LSI内に、多数のCPUやIP(Intellectual Property Core)などの論理回路を実装して構成される。もちろん、OSを共通とする複数の半導体集積回路(LSI)もしくは複数の積層LSIに実装されるデータ処理装置にも適用できることは言うまでも無い。
【0023】
図1において、0001は、システムの最小構成単位である単位クラスタの組み合わせで構成される。図1の例では、データ処理装置が、単位クラスタA(0010)、単位クラスタB(0011)、単位クラスタC(0012)、単位クラスタD(0013)からなる。構成する単位クラスタの数は2つ以上であればよく、図1では4つの単位クラスタからなる構成例である。各単位クラスタは、任意のクラスタとバスで接続したネットワークを持つ。
【0024】
ここで、単位クラスタは、任意の数のCPUと任意の数のIP及びDMA(Direct Memory Access)等がバスで接続されたクラスタであり、既存の、例えば32bitの、OSが動作可能な物理アドレス空間(単位アドレスマップ)を有している。図1の例では、単位クラスタA(0010)はCPU0、CPU1、CPU2、DMA0からなるイニシエータモジュール、及びSRAM0、DRAM、3DRAM(3次元DRAM)0、IP0からなるターゲットモジュールで構成されている。単位クラスタB(0011)は、CPU3、CPU4、DMA1、IP1なるイニシエータモジュール、及びSRAM1、3DRAM1からなるターゲットモジュールで構成され、単位クラスタCは、CPU5、DMA2からなるイニシエータモジュール、及びSRAM2、3DRAM2IP2なるターゲットモジュールで構成され、単位クラスタDは、CPU6、CPU7、DMA3からなるイニシエータモジュール、及びSRAM3、3DRAM3なるターゲットモジュールで構成されている。本実施例では、DRAMは単位クラスタAにのみ存在し、データ処理を行うプログラムはこのDRAMに保持される。従って、他の単位クラスタでは、単位クラスタAのDRAMに保持されたプログラムを呼び出して、CPUで実行することにより、所定のデータ処理を行う。
【0025】
また、これら単位クラスタを接続するネットワークは、ここでは、リング型ネットワークを例とし、単位クラスタA(0010)と単位クラスタB(0011)、単位クラスタB(0011)と単位クラスタD(0013)、単位クラスタD(0013)と単位クラスタC(0012)、単位クラスタC(0012)と単位クラスタA(0010)が、それぞれバス0020、0021、0022、0023を介して接続されている。
【0026】
本発明では、以下に述べるように、ある単位クラスタに存在する特定のリソースを、別の単位クラスタから参照可能とする。このような、単位クラスタ内のみならず単位クラスタ間をまたいだアクセスを、通常のメモリ割付アクセスにより実現する。これにより、ある単位クラスタから、別の単位クラスタのリソースが、あたかも当該単位クラスタに属するIPであるかのように扱えるようにする。
【0027】
図2は、図1で示したシステム構成例における各単位クラスタの持つ単位アドレスマップを示している。すなわち、図1に示した物理的な構成要素であるクラスタに対応する、OSなどにより用いられる物理アドレス空間の例を示している。図2の(a)は単位クラスタAのアドレスマップを示す単位アドレスマップA、(b)は単位クラスタBのアドレスマップを示す単位アドレスマップB、(c)は単位クラスタCのアドレスマップを示す単位アドレスマップC、及び(d)は単位クラスタDのアドレスマップを示す単位アドレスマップDである。図2の(b)〜(d)のDRAMは物理的には単位クラスタAにのみ存在するDRAMである。
【0028】
各単位アドレスマップに割り当てられたターゲットモジュールには、白で示した重複リソース、グレーで示した非重複リソース、黒で示した未使用アドレスが存在する。重複リソースとは、単位アドレスマップごとにマッピングされているターゲットモジュールが異なるアドレスエリアであり、非重複リソースとは、各単位アドレスマップで同一のターゲットモジュールがマッピングされているアドレスエリアであり、未使用アドレスは重複リソースの中で特にターゲットモジュールがマッピングされていないアドレスエリアを指す。換言すると、重複リソースは、単位クラスタ上では一意にリソースが決まる(単位クラスタ内では非重複リソースとなる)が、データ処理装置全体としては同じアドレスを持ち別の単位クラスタに属するリソースが複数存在する。非重複リソースは、データ処理装置全体としては重複しないユニークなアドレスを持つ。
【0029】
例えば、図2の(a)に示した単位アドレスマップAによれば、単位クラスタAに含まれるターゲットモジュールSRAM0は重複リソースである。ここで、単位クラスタAで実行されているプログラムから、単位アドレスマップBに含まれる重複リソースであるSRAM1に対するアクセスを行いたいとする。プログラムが動作しているアドレスマップは、単位アドレスマップAであるので、単純にSRAM1へアクセスするためのアドレス(x0000_0000)を発行しても、SRAM0へのアクセスとなってしまう。本発明では、単位クラスタA〜D間でデータのやり取りをする、すなわち重複リソースへのアクセス時には、アドレス以外に、クラスタ番号を付与することで、コマンドやデータなどからなる転送処理(トランザクション)の行き先(ターゲット)をシステム内でユニークに指定する。
【0030】
このように、本発明のデータ処理装置は、複数の単位クラスタをユニークに識別するための情報を保持するレジスタ、及び重複リソース及び非重複リソースを含む物理アドレス空間(以下、特に区別しないときは単に、アドレス空間)を備えている。なお、図1、図2における各リソースの配置は一例を示すものであり、用途に応じて種々変更できることは言うまでも無い。
【0031】
このような単位クラスタ、単位アドレスマップをまたいだアクセスを、パケット通信ではなく、通常のメモリ割り付けアクセスにより実現するハードウェアとソフトウェアの実現方式を、図3以降で説明する。
【0032】
図3は、第1の実施例になるデータ処理装置における単位クラスタの具体的な構成例を示す図である。すなわち、図3は、転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)を含むシステムLSIにおける、1クラスタのリクエストおよびレスポンス転送機構の一例を示すブロック図である。0101はシステムの最小構成単位である単位クラスタであり、0102で示す転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)と、0103で示すリクエスト転送回路(REQTU)と、0201で示すレスポンス転送回路(RESTU)と、0104で示すイニシエータブリッジ回路0(BIn0)と、0105で示すターゲットブリッジ回路0(BTn0)と、自身のクラスタ番号を保持する0106で示す自クラスタ番号レジスタ(MyClusterID Reg)と、0192で示すイニシエータIPモジュールX(IP X)と、0193で示すターゲットIPモジュールY(IP Y)から構成される。イニシエータブリッジ回路0(BIn0)は、0190で示す別クラスタJからリクエストを受け取りREQTUに転送、もしくはレスポンスをRESTUから受け取り、別クラスタJに返す。ターゲットブリッジ回路0(BTn0)は、REQTUからリクエストを受け取り0191で示す別クラスタKに転送、もしくは別クラスタKからレスポンスを受け取りRESTUに返す。
【0033】
なお、単位クラスタを構成する各回路、レジスタは簡単のために、それぞれ省略して記載しているが、TCNAU(0)〜TCNAU(n)やIP X(0)〜IP X(n)、IP Y(0)〜IP Y(m)のように複数存在しても良く、数の変更に対して制限はない。また、このクラスタを2つ以上BIn0やBTn0を用いて接続することで、データ処理装置を構成する。また、リクエストは、ストアデータ(data)およびリクエストコマンド(cmd)、アドレス(addr)、リクエスト発行イニシエータ識別番号(src)、転送先クラスタ番号(cluster#)を含み、レスポンスは、ロードデータ(r_data)および、レスポンスコマンド(r_cmd)、レスポンス送信先イニシエータ識別番号(r_src)からなるが、これ以外の制御信号が存在してもよい。
【0034】
図4は、図3に示されるシステムLSIに含まれるIP Xと、REQTUおよびRESTUの間に挿入されるTCNAU0102の構成例である。TCNAUは、0301で示すTCNAU制御回路(TCNAU CTRL)と、0302で示すフックアドレス値1(HookADDR1)と、0303で示すフックアドレス値2(HookADDR2)と、0304で示す比較器(CMP)と、0305で示す転送先クラスタ番号保持回路1(ClusterID1)と、0306で示す転送先クラスタ番号保持回路2(ClusterID2)と、0307で示す転送先クラスタ番号選択回路(IDMUX)と、0308で示す転送先クラスタアドレス保持回路1(ClusterADDR1)と、0309で示す転送先クラスタアドレス保持回路2(ClusterADDR2)と、0310で示す転送先クラスタアドレス選択回路(ADDRMUX)から構成される。
【0035】
なお、本構成例ではフックアドレス値と、比較器、転送先クラスタ番号保持回路、転送先クラスタアドレス保持回路が2組ずつとしているが、数の変更に対して制限はない。また同様に、転送先クラスタ番号選択回路(IDMUX)および転送先クラスタアドレス選択回路(ADDRMUX)の入力数は、フックアドレス値と、比較器、転送先クラスタ番号保持回路、転送先クラスタアドレス保持回路の組数に従って変更して構成する。
【0036】
続いて、TCNAU0102の機能について説明する。TCNAUはIP X0192から発行されたリクエストに対してクラスタ番号の付加とアドレスを変更する機能を有するが、本機能が有効になるアドレス範囲を事前に決定しておく。本構成例では、HookADDR1(0302)およびHookADDR2(0303)がアドレス範囲を保持する。通常HookADDRはクラスタの持つアドレス範囲よりも限定されたアドレス範囲を持ち、例えば32bitのアドレス空間を持つクラスタにおいて、アドレス0xFC00_0000から0xFC00_FFFFのようなアドレス範囲を指定する場合は、HookADDRに0xFC00を指定することとなる。このHookADDRの値はあらかじめ固定しておく、もしくは起動時に外部ピンなどで決定する、もしくはクラスタのアドレスマップ設定と同期して切り替えることを想定する。
【0037】
次に、本構成例での実際の動作について例示する。HookADDR1が0xFC00なる16bitの値を持つとき、IP Xからのリクエストに含まれるアドレス(addr)の上位16bitがCMP0304により比較され、一致した場合CMPは1を出力する。CMPが1を出力した場合、IDMUX0307はClusterID1をcluster#として出力する。また同様に、CMP0304が1を出力した場合、ADDRMUX0310はClusterADDR1を出力する。このとき、ClusterID1にはIP Xが転送を行いたいクラスタの番号が、ClusterADDR1には転送先クラスタ内でのアドレスの上位16bitが格納されている。よって、TCNAUはcluster#としてClusterID1を持ち、addrとして上位アドレス16bitがClusterADDR1の値、下位16bitがIP Xから発行されたアドレスとなる、48bitのリクエストを生成し、REQTUに転送を行う。
【0038】
逆に、CMPが0を出力した場合は、IDMUXは自クラスタ番号レジスタ(MyClusterID Reg)に保持された自クラスタ番号であるMyClusterIDをcluster#として出力する。また同様に、CMPが0を出力した場合、ADDRMUXはIP Xの送信したaddrの上位16bitを出力する。よって、IP Xの送信したリクエストは、クラスタ番号にMyClusterIDを持ち、上位16bit及び下位16bitがIP Xから発行されたアドレスとなる、48bitのリクエストとしてREQTUに転送される。
【0039】
また、ClusterID1、ClusterID2や、ClusterADDR1やClusterADDR2への書き込みは、TCNAU CTRLが、IP Xからのリクエストを観測し、アドレスが合致した場合に書き込みや読み出しなどの動作を行い、REQTUにはcmdなどの転送を行わない。特に読み出しが行われた場合は、TCNAU CTRLがr_cmd、r_src、r_dataの送信を行う。またTCNAU CTRLは、RESTUからのレスポンス送信をIP Xへ中継する機能を有する。
【0040】
なお、本構成例ではIP Xからの各信号がREQTUに直接、もしくはRESTUからの各信号がIP Xに直接接続されているが、フリップフロップなどを用いてシステムのクロックサイクルを分割してもよい。また、クラスタ内にIP Xのようなイニシエータモジュールが複数存在する場合は、TCNAUについてもイニシエータごとに挿入するが、その際各TCNAUのHookADDRが同一であっても良い。
【0041】
図5に、上記のClusterIDおよび、ClusterADDRを格納する転送先クラスタ番号および転送先クラスタアドレス指定レジスタ(TCNACR)(0401)の構成例を示す。TCNACRには、転送先クラスタ番号指定フィールド(ClusterID Field)(0402)と、転送先クラスタアドレス指定フィールド(ClusterADDR Field)(0403)を含む。また、TCNACRを構成するClusterID Fieldの実体は、ClusterID1(0305)、ClusterADDR Fieldの実体は、ClusterADDR1(0308)として分割して保存されることを想定し、図4の構成例ではTCNACRは2本存在することを意味する。
【0042】
図6は、図3に示される単位クラスタ0101に含まれる転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)0102の動作例を示すタイミングチャート図である。すなわち、図6は、図3に示すTCNAU0102のIP X側にあるX点と、REQTU側にあるT点で見られるタイムチャートである。Clockは、システムのクロックサイクルを示している。
【0043】
IP Xから、クラスタN(cluster#=N)へリードアクセスを行う際、IP Xは、まずClock1において、ClusterID1およびClusterADDR1から構成されるTCNACR1に対して設定を書き込み、続いてClock2でIP Xから発行されたリードリクエストは、TCNAUによりcluster#の付加および上位アドレスの切り替えが行われ、REQTUへ転送される。すなわち、リードアクセスとして、TCNAUでcluster#としてClusterIDN、addrとして上位アドレス16bitがClusterADDRNの値が第1のレジスタにより設定され、下位16bitのIP Xから発行されたアドレスと共にREQTUへ転送される。換言すると、最初のサイクルでレジスタにクラスタ番号を設定し、次のサイクルでクラスタNへアクセスアドレスを出力しリードを行う、2サイクルアクセスとなる。
【0044】
同様に、IP Xから、クラスタM(cluster#=M)へライトアクセスを行う際、IP Xは、まずClock3において、ClusterID2およびClusterADDR2から構成されるTCNACR2に対して設定を書き込み、続いてClock4でIP Xから発行されたライトリクエストは、TCNAUによりcluster#の付加および上位アドレスの切り替えが行われ、REQTUへ転送される。すなわち、ライトアクセスとして、TCNAUでcluster#としてClusterIDM、addrとして上位アドレス16bitがClusterADDRMの値が第2のレジスタにより設定され、下位16bitのIP Xから発行されたアドレスと共にREQTUへ転送される。
【0045】
なお、Clock5およびClock6のように、HookADDRに一致しないアクセスは、cluster#として自クラスタ番号が付加されるのみで、アドレスの切り替えは行わない。
【0046】
また、一旦TCNACR1を設定した後は、同一クラスタへ、同一のアドレス切り替えで転送を行う際には、Clock5〜Clock7に示すように、Clock3で第2のレジスタへ行った設定を再度行うことなくアクセスすることができる。換言すると、既に設定された同一クラスタへ転送を行う際は、レジスタの設定、書き換えが不要なため、1サイクルアクセスとなる。レジスタの数を増やすことにより、このような1サイクルアクセスを増やすことができる。
【0047】
図7に、図3の単位クラスタ0101に含まれるリクエスト転送回路(REQTU)0103の構成例を示す。REQTUは、0601で示すリクエストデコード回路(REQDEC)と、0602で示すリクエストセレクト回路(REQMUX)からなる。REQTUは、BIn0とIP Xに接続されたTCNAUから転送されるリクエストを受信すると、まずREQDECによりMyClusterIDとcluster#を比較し、両者が一致しない場合はBTn0にcmdを出力すると同時にREQMUXをBTn0側に切り替えてリクエストを転送する。一方、REQDECによる比較結果により両者が一致した場合、REQDECはaddrをデコードし、自クラスタ内においてaddrに該当するIP Yのようなターゲットモジュールが存在する場合は、IP Yのようなターゲットモジュールにcmdを出力すると同時にREQMUXをIP Yのようなターゲットモジュール側に切り替えてリクエストを転送し、該当するターゲットモジュールが存在しない場合、すなわち別クラスタKに接続されていて、全クラスタで共有しているようなターゲットモジュールのaddrであった場合は、BTn0にcmdを出力すると同時にREQMUXをBTn0側に切り替えてリクエストを転送する。なお、本構成例では、単純化のためTCNAUおよびIP Yの数は1個ずつとしているが、制限はない。
【0048】
図8に、図3の単位クラスタ0101に含まれるレスポンス転送回路(RESTU)0201の構成例を示す。RESTUは、0701に示すレスポンスデコード回路(RESDEC)と、0702で示すレスポンスセレクト回路(RESMUX)からなる。RESTUは、BTn0とIP Yから転送されるレスポンスを受信すると、RESDECによりr_srcをデコードし、TCNAUに接続されているIP Xと一致していれば、IP Xの接続されているTCNAUにcmdを出力すると同時に、RESMUXをTCNAU側に切り替えてレスポンスを転送し、そうでなければBIn0にcmdを出力すると同時にRESMUXをBIn0側に切り替えてレスポンスを転送する。なお、本構成例では、単純化のためにTCNAUおよびIP Yの数は1個ずつとしているが、制限はない。
【0049】
以上のようなブロックで構成されたデータ処理装置において、ソフトウェアを用いて実行される任意の単位クラスタにおけるデータ処理の手順を、図9のフローチャートを用いて説明する。図9は図4に示される転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)0102を利用する際のプログラム処理の概要を示すフローチャートである。
【0050】
まず、あるプログラムが特定のモジュールへアクセスを行う場合、そのモジュールが当該クラスタ内のアクセスか、クラスタ間をまたいだアクセス、換言するとHookADDRで指定された領域すなわちTCNAUによるaddrの変更を行うアドレス領域へアクセスするか、を確認する(S801)。HookADDRで指定された領域へアクセスしない場合、換言すると当該クラスタ内のアクセスの場合はそのまま当該クラスタ内でアクセスを実行(S803)する。HookADDRで指定された領域へアクセスする場合、換言するとクラスタ間をまたいだアクセスの場合は、TCNACRの設定を行ってから(S802)、指定されたクラスタ内でアクセスを実行する(S803)。次に、アクセス終了の判定を行い(S804)、アクセスが終了した場合はプログラムの終了となる。終了しなかった場合は、再度HookADDRで指定された領域へアクセスするかを判定し(S805)、HookADDRで指定された領域へアクセスする場合、既にTCNACRの設定が終了している場合はそのままアクセスをし、未設定の場合は、TCNACRを再設定してからアクセスを実行する(S806)。
【0051】
本実施例では、他のクラスタへのアクセスであった場合、転送先クラスタ番号および転送先クラスタアドレス付加回路により別クラスタへの転送に要する情報を付与する。本実施例では、設定用のレジスタを用いた擬似アドレス拡張を行ったアドレス空間を採用しているため、OSからは、自身が動作する特定の単位クラスタ以外のアドレス空間は、IPの一部として見えることになる。これにより、ある単位クラスタから、別の単位クラスタのリソースが、あたかも当該単位クラスタに属するIPであるかのように扱える。ある単位クラスタに属するCPUは、メモリを介さずに、他の単位クラスタの重複リソースを参照することができる。
【0052】
図9で説明したような基本的なアクセス方法を、割り込みによるコンテクストスイッチが発生するシステムで適用する場合のソフトウェアからの使用方法を、図10のフローチャートを用いて説明する。図9で説明したようなアクセス方法を含むプログラムをCPUで実行している際(S901)、割り込み受け付けの有無をチェックし(S902)、割り込みを受け付けなかった場合は、プログラムが終了するまでプログラムを実行する(S903)。割り込みを受け付けた場合、従来から行われている割り込みにより中断されたプログラムの再開に必要な情報をスタックへ格納する(S905)。この後、割り込み処理プログラムがHookADDRで指定された領域へアクセスするか判定し(S906)、アクセスする場合は、TCNACRもスタックへ格納し(S907)、割り込みプログラムを開始する(S908)。アクセスしない場合は、そのまま割り込みプログラムを開始する。このように、プログラム実行中に、割り込みを受け付けるたびに、スタックへ中断されたプログラムの再開に必要な情報を格納する。割り込みを受け付けずにプログラムが終了した場合、スタックに情報があるかをチェックし(S904)、スタックに再開情報が残っている場合は、スタックから被割り込みプログラムの再開に必要な情報を取り出し(S909)、中断されたプログラムを再開する(S910)。以下、割り込みによる中断プログラムが無くなるまで、すなわちスタックに情報が無くなるまで処理を繰り返し、終了する。
【0053】
本発明のアドレス空間は、単位クラスタ毎に形成された物理アドレス空間であり、クラスタ間をまたいだアクセスを通常のメモリ割付アクセスにより実現するので、通信のオーバーヘッドの増大を最小限に抑えることができる。また、自クラスタから別クラスタへのアクセスを行う際の転送先クラスタ番号および転送先クラスタアドレス付加などは、ドライバソフトウェアを使用して行うようにシステムを構築するので、CPUもしくはIPと,OSの大幅な修正は必要ない。
【0054】
なお、本実施例では、データ処理装置の複数のアドレス空間を、複数の単位クラスタのメモリで構成しているが、本発明の適用可能なアドレス空間の構成はこれに限定されるものではなく、例えば、1つのOSが管理する物理アドレス空間として構成された複数のコンピュータからなるシステムあるいはマルチコアシステムなど、他の手段を用いても良い。
【0055】
本実施例によれば、以上のようなデータ処理装置と、プログラムにより、CPU(中央演算処理装置)などに代表されるイニシエータIPモジュール及びOSの大規模な修正なしに、かつ最小限のオーバーベッドで、複数のクラスタで構成されるデータ処理装置内の全てのリソースの間で、データ転送が可能なデータ処理装置を提供することができる。
【0056】
また、プログラムにより、リソースにアクセスする順序関係は保障されており、リソースに対して安全なアクセスを実現できる。
【実施例2】
【0057】
図11は、本発明にかかる半導体集積装置で実現されるデータ処理装置の他の実施例のシステム構成例を示す図である。データ処理装置0101は、システムの最小構成単位である単位クラスタの組み合わせで構成される。図11の例では、単位クラスタA(0110)、単位クラスタB(0111)、単位クラスタC(0112)、単位クラスタD(0113)からなる。構成する単位クラスタの数は4つ以上であればよく、図11では4つの単位クラスタからなる構成例である。各単位クラスタは、任意のクラスタと接続したネットワークを持つ。すなわち、このデータ処理装置のネットワークは、4つの単位クラスタ間で直接アクセスできるように相互にバスを介して接続されている。
【0058】
ここで図11では、単位クラスタA(0010)はCPU0、CPU1、CPU2、DMA0なるイニシエータモジュール、SRAM0、DRAM、3DRAM0、IP0なるターゲットモジュールで構成され、単位クラスタB(0011)は、CPU3、CPU4、DMA1、IP1なるイニシエータモジュール、SRAM1、3DRAM1なるターゲットモジュールで構成され、単位クラスタCは、CPU5、DMA2なるイニシエータモジュール、SRAM2、3DRAM2IP2なるターゲットモジュールで構成され、単位クラスタDは、CPU6、CPU7、DMA3なるイニシエータモジュール、SRAM3、3DRAM3なるターゲットモジュールで構成される例を示している。
【0059】
また、これら単位クラスタを接続するネットワークは、単位クラスタA(0110)と単位クラスタB(0111)、単位クラスタB(0111)と単位クラスタD(0113)、単位クラスタD(0013)と単位クラスタC(0012)、単位クラスタC(0012)と単位クラスタA(0010)、単位クラスタA(0110)と単位クラスタD(0113)、単位クラスタB(0111)と単位クラスタC(0112)がそれぞれ、バス0020、0021、0022、0023、0024、0025を介して接続されている襷がけのネットワークを例とする。
【0060】
本実施例2が、実施例1と最も異なる部分は、単位クラスタAと単位クラスタD間の重複リソースへのアクセス経路に、実施例1でも存在した単位クラスタB経由のアクセス経路だけではなく、直接単位クラスタA−D間でアクセスできるネットワーク(バス0024)が増え、また、直接単位クラスタB−D間でアクセスできるネットワーク(バス0025)が増え、かつ、それらの経路が選択可能となっている点である。このようなネットワークは、単位クラスタが4つ以上ある情報処理装置において有効であることは言うまでも無い。
【0061】
図12は、図11のデータ処理装置0101に含まれる単位クラスタの例である。1001は最小構成単位であるクラスタであり、0102で示す転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)と、1003で示す経路可変リクエスト転送回路(VREQTU)と、1101で示す経路可変レスポンス転送回路(VRESTU)と、1002で示すVREQTUおよびVRESTUにおける経路を指定することができる経路指定レジスタ(Path Reg)と、1004で示すイニシエータブリッジ回路1(BIn1)と、1005で示すターゲットブリッジ回路1(BTn1)と、1006で示すイニシエータブリッジ回路2(BIn2)と、1007で示すターゲットブリッジ回路2(BTn2)と、自身のクラスタ番号を保持する0106で示す自クラスタ番号レジスタ(MyClusterID Reg)と、0192で示すイニシエータIPモジュールX(IP X)と、0193で示すターゲットIPモジュールY(IP Y)から構成される。
【0062】
イニシエータブリッジ回路1(BIn1)1004は、1090で示す別クラスタPからリクエストを受け取りVREQTUに転送、もしくはレスポンスをVRESTUから受け取り、別クラスタPに返す。ターゲットブリッジ回路1(BTn1)1005は、VREQTUからリクエストを受け取り1091で示す別クラスタQに転送、もしくは別クラスタQからレスポンスを受け取りVRESTUに返す。イニシエータブリッジ回路2(BIn2)1006は、1092で示す別クラスタRからリクエストを受け取りVREQTUに転送、もしくはレスポンスをVRESTUから受け取り、別クラスタRに返す。ターゲットブリッジ回路2(BTn2)1007は、VREQTUからリクエストを受け取り1093で示す別クラスタSに転送、もしくは別クラスタSからレスポンスを受け取りVRESTUに返す。なお、単位クラスタを構成する各回路、レジスタは簡単のために、それぞれ省略して記載しているが、TCNAU(0)〜TCNAU(n)やIP X(0)〜IP X(n)、IP Y(0)〜IP Y(m)のように複数存在しても良く、数の変更に対して制限はない。また、このクラスタを4つ以上、イニシエータブリッジ回路やターゲットブリッジ回路を用いて接続することで、データ処理装置を構成する。
【0063】
本実施例2が、実施例1と最も異なっている部分を実現するために、Path Reg1002の追加と、Path Regの設定により転送経路を変更可能なVREQTU1003および、VRESTU1101を設けている。以下、両実施例の違いについて説明する。4つ以上のクラスタを接続するデータ処理装置においては、接続形態によっては、あるイニシエータモジュールから、ターゲットモジュールへリクエストを転送する経路が1つではない。同様に、あるターゲットモジュールから、イニシエータモジュールへレスポンスを転送する経路が1つではない。例えば、IP Xが別クラスタのモジュールへリクエストを送信する場合、別クラスタQ経由でも別クラスタS経由でもリクエスト転送が可能な場合を想定している。このような場合において、Path Reg1002の設定によりVREQTU1003およびVRESTU1101の転送経路を指定可能とすることで、ソフトウェアからの制御を可能としている。
【0064】
図13に、本実施例におけるPath Reg1002の設定および定義の例を示す。リクエスト転送経路(Request)については、HookADDR1、DRAM、SRAMなど、別クラスタ経由のアクセスを行う際、自クラスタからどのターゲットブリッジ回路(BTu1もしくはBTu2)に転送を行うか、Path Reg ValueのA, B,―,―,Z毎に、定義する。また、レスポンス転送経路(Response)については、Path Reg ValueのA, B,―,―,Zに関して、r_srcの値0,1,―,ごとに自クラスタからどのイニシエータブリッジ回路(BIn1もしくはBIn2)に転送を行うか、定義する。なお、自クラスタが終点となるようなリクエスト、レスポンスについては定義が不要である。このような定義の組をA, B,―,―,Zのようにして複数用意しておき、Path Regに値を設定することで、リクエスト、レスポンスの転送先を変更可能とする。
【0065】
なお、Path Regの設定変更は、変更前後でリクエストおよびレスポンスが正しく転送されなければならない。よって、各イニシエータが自由に設定変更せず、変更の際は全イニシエータのリクエストに対して、ターゲットからのレスポンスが送信され終わっていることを確認してから行わなければならない。具体的な方法は規定しないが、例えばデータ処理装置内の1つのCPU(中央演算処理装置)以外は、スリープ状態に遷移しておき、Path Regの設定変更が終わった後、割り込みによって処理を再開する、などの方法が考えられる。
【0066】
なお、実施例2で示されるデータ処理装置には、実施例1で示すようなクラスタが構成要素として入っていてもよい。
【0067】
図14に、図12に示されるクラスタに含まれる経路可変リクエスト転送回路(VREQTU)の構成例を示す。VREQTUは、1301で示す可変リクエストデコード回路(VREQDEC)と、1302で示す可変リクエストセレクト回路(VREQMUX)からなる。VREQTUは、BIn1およびBIn2とIP Xに接続されたTCNAUから転送されるリクエストを受信すると、まずVREQDECによりMyClusterIDとcluster#を比較し、両者が一致しない場合はPath Regの内容(path_sel)に従って、BTn1もしくはBTn2のどちらかにcmdを出力すると同時にVREQMUXをBTn1側もしくはBTn2側のどちらかに切り替えてリクエストを転送する。
【0068】
一方、VREQDECによる比較結果により両者が一致した場合、VREQDECはaddrをデコードし、自クラスタ内においてaddrに該当するIP Yのようなターゲットモジュールが存在する場合は、IP Yのようなターゲットモジュールにcmdを出力すると同時にREQMUXをIP Yのようなターゲットモジュール側に切り替えてリクエストを転送し、該当するターゲットモジュールが存在しない場合、すなわち自クラスタ以外に接続されていて、全クラスタで共有しているようなターゲットモジュールのaddrであった場合は、Path Regの内容(path_sel)に従って、BTn1もしくはBTn2のどちらかにcmdを出力すると同時にVREQMUXをBTn1側もしくはBTn2側のどちらかに切り替えてリクエストを転送する。なお、本構成例では、単純化のためBIn1、BIn2、TCNAUおよびIP Yの数は1個ずつとしているが、制限はない。
【0069】
図15に、図12に示されるクラスタに含まれるVRESTUの構成例を示す。VRESTUは、1401に示す可変レスポンスデコード回路(VRESDEC)と、1402で示す可変レスポンスセレクト回路(VRESMUX)からなる。VRESTUは、BTn1、BTn2とIP Yから転送されるレスポンスを受信すると、VRESDECによりr_srcをデコードし、TCNAUに接続されているIP Xと一致していれば、IP Xの接続されているTCNAUにcmdを出力すると同時に、VRESMUXをTCNAU側に切り替えてレスポンスを転送し、そうでなければPath Regの内容(path_sel)に従って、BIn1もしくはBIn2のどちらかにcmdを出力すると同時にVRESMUXをBIn1側もしくはBIn2側のどちらかに切り替えてレスポンスを転送する。なお、本構成例では、単純化のためBIn1、BIn2、TCNAUおよびIP Yの数は1個ずつとしているが、制限はない。
【0070】
なお、転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)0102の動作は、図6で説明したタイミングチャートと同様である。
【0071】
以上のようなブロックで構成されたデータ処理装置を用いれば、Path Regの設定後は、図9および図10のフローチャートで説明したプログラムを使用することで、CPU(中央演算処理装置)などに代表されるイニシエータIPモジュールと、OSの大幅な修正なしに、複数のクラスタで構成されるデータ処理装置内の全てのリソースの間でデータ転送が可能になるだけでなく、データ転送の際に、電源遮断や製造不良、クラスタ構成の変更などによりデータ転送が行えないクラスタを迂回したデータ転送が可能なデータ処理装置を提供することができる。
【0072】
なお、単位クラスタが4つ以上ある情報処理装置におけるネットワークの構成は、全ての単位クラスタ間で直接アクセスできるものに限られることは無く、少なくとも4つの単位クラスタ間において直接アクセスできれは良い。用途に応じて、特定の単位クラスタ間で相互にバスを介して接続されるようにすれば良い。
【符号の説明】
【0073】
0001 4つの単位クラスタにより構成したリング型ネットワークシステムの例
0010 単位クラスタA
0011 単位クラスタB
0012 単位クラスタC
0013 単位クラスタD
0020 バス
0021 バス
0022 バス
0023 バス
0020 バス 0101 転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)を搭載したクラスタ
0102 転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)
0103 リクエスト転送回路(REQTU)
0104 イニシエータブリッジ回路0(BIn0)
0105 ターゲットブリッジ回路0(BTn0)
0106 自クラスタ番号レジスタ(MyClusterID Reg)
0190 別クラスタJ(リクエスト送信元)
0191 別クラスタK(リクエスト送信先)
0192 イニシエータIPモジュールX(IP X)
0193 ターゲットIPモジュールY(IP Y)
0201 レスポンス転送回路(RESTU)
0301 TCNAU制御回路(TCNAU CTRL)
0302 フックアドレス値1(HookADDR1)
0303 フックアドレス値2(HookADDR2)
0304 比較器(CMP)
0305 転送先クラスタ番号保持回路1(ClusterID1)
0306 転送先クラスタ番号保持回路2(ClusterID2)
0307 転送先クラスタ番号選択回路(IDMUX)
0308 転送先クラスタアドレス保持回路1(ClusterADDR1)
0309 転送先クラスタアドレス保持回路2(ClusterADDR2)
0310 転送先クラスタアドレス選択回路(ADDRMUX)
0401 転送先クラスタ番号および転送先クラスタアドレス指定レジスタ(TCNACR)
0402 転送先クラスタ番号指定フィールド(ClusterID Field)
0403 転送先クラスタアドレス指定フィールド(ClusterADDR Field)
0601 リクエストデコード回路(REQDEC)
0602 リクエストセレクト回路(REQMUX)
0701 レスポンスデコード回路(RESDEC)
0702 レスポンスセレクト回路(RESMUX)
0101 4つの単位クラスタにより構成したシステムの例
0110 単位クラスタA
0111 単位クラスタB
0112 単位クラスタC
0113 単位クラスタD
1001 転送先クラスタ番号および転送先クラスタアドレス付加回路(TCNAU)と経路指定レジスタ(Path Reg)を搭載したクラスタ
1002 経路指定レジスタ(Path Reg)
1003 経路可変リクエスト転送回路(VREQTU)
1004 イニシエータブリッジ回路1(BIn1)
1005 ターゲットブリッジ回路1(BTn1)
1006 イニシエータブリッジ回路2(BIn2)
1007 ターゲットブリッジ回路2(BTn2)
1090 別クラスタP(リクエスト送信元)
1091 別クラスタQ(リクエスト送信先)
1092 別クラスタR(リクエスト送信元)
1093 別クラスタS(リクエスト送信先)
1101 経路可変レスポンス転送回路(VRESTU)
1301 可変リクエストデコード回路(VREQDEC)
1302 可変リクエストセレクト回路(VREQMUX)
1401 可変レスポンスデコード回路(VRESDEC)
1402 可変レスポンスセレクト回路(VRESMUX)。

【特許請求の範囲】
【請求項1】
互いに異なるアドレス空間を有する複数のクラスタと、前記各クラスタを接続するネットワークとを備えたデータ処理装置であって、
前記複数のクラスタの各々をユニークに識別するための情報としてクラスタID番号を保持し、
前記複数のクラスタの中の1つのクラスタから、他のクラスタの前記アドレス空間に含まれるリソースにアクセスする場合に、該リソースのアドレスに前記他のクラスタのID番号を付加することにより転送先をシステム内でユニークに指定することを特徴とするデータ処理装置。
【請求項2】
請求項1において、
前記リソースとして、システム全体として一つのユニークなアドレスが割当てられる非重複リソースと、単位クラスタ上では一つのユニークなアドレスが割当てられるが、システム全体としては該アドレスが他のクラスタに含まれるリソースにも割当てられる重複リソースとを持ち、
前記各クラスタ同士でデータのやり取りをする場合、前記重複リソースへのアクセス時には、該重複リソースのアドレス以外に該重複リソースが属する前記クラスタのID番号を付与することによりトランザクションの行き先をシステム内でユニークに指定する
ことを特徴とするデータ処理装置。
【請求項3】
請求項2において、
前記重複リソースは、単位アドレスマップごとにマッピングされているターゲットモジュールが異なるアドレスエリアであり、
前記非重複リソースは、各単位アドレスマップで同一のターゲットモジュールがマッピングされているアドレスエリアである
ことを特徴とするデータ処理装置。
【請求項4】
請求項1において、
前記各クラスタは、任意の数のCPUと、任意の数のIPとがバスで接続されて構成されており、32bitのOSが動作可能な論理アドレス空間を有している
ことを特徴とするデータ処理装置。
【請求項5】
請求項4において、
単一の半導体集積回路もしくは単一の積層LSIに、前記複数のクラスタの前記CPUや前記IPなどの論理回路が実装されている
ことを特徴とするデータ処理装置。
【請求項6】
請求項5において、
前記各クラスタは、
自クラスタから転送先のクラスタへのアクセスリクエストに対して転送先クラスタのID番号および転送先クラスタ内のアドレスを付加する、転送先クラスタ番号および転送先クラスタアドレス付加回路を備えている
ことを特徴とするデータ処理装置。
【請求項7】
請求項1において、
前記各クラスタを接続するネットワークは、リング型ネットワークであり、前記各クラスタがバスを介してリング状に接続されている
ことを特徴とするデータ処理装置。
【請求項8】
請求項1において、
4つ以上の前記クラスタを備え、
前記各クラスタを接続するネットワークは、4つの前記クラスタ間で直接アクセスできるように相互にバスを介して接続されている
ことを特徴とするデータ処理装置。
【請求項9】
請求項1において、
前記各クラスタは、
前記クラスタID番号を設定するレジスタを備え、
前記リクエストを前記レジスタに設定してから、前記アクセスを実行する
ことを特徴とするデータ処理装置。
【請求項10】
請求項9において、
前記各クラスタは、システムクロックの1つのサイクルで前記リクエストを前記レジスタに設定し、次のサイクルで前記バスアクセスを実行する
ことを特徴とするデータ処理装置。
【請求項11】
請求項10において、
前記各クラスタは、転送先のクラスタが既に前記レジスタに設定されている場合、システムクロックの1つのサイクルで前記バスアクセスを実行する
ことを特徴とするデータ処理装置。
【請求項12】
請求項1において、
前記各クラスタは、
CPUやDMAからなるイニシエータIPモジュールと、
SRAM、DRAM、IP等からなるターゲットIPモジュールと、
転送先クラスタ番号および転送先クラスタアドレス付加回路と、
リクエスト転送回路と、
レスポンス転送回路と、
イニシエータブリッジ回路と、
ターゲットブリッジ回路と、
自クラスタ番号レジスタとを具備し、
前記転送先クラスタ番号および転送先クラスタアドレス付加回路は、前記イニシエータIPモジュールの送信するリクエストに対して、要求された別のクラスタへの転送に要する情報を付与する機能を有し、
前記リクエスト転送回路は、前記転送先クラスタ番号および転送先クラスタアドレス付加回路により付与された別のクラスタへの転送に要する情報により転送先を判定し、自クラスタ宛でない場合は転送先を変更する機能を有する
ことを特徴とするデータ処理装置。
【請求項13】
請求項12において、
前記転送先クラスタ番号および転送先クラスタアドレス付加回路は、
前記イニシエータIPモジュールからの事前の設定を行うためのアクセスを行った直後に、該イニシエータIPモジュールから別クラスタへの転送を行う機能を備えている
ことを特徴とするデータ処理装置。
【請求項14】
請求項12において、
前記クラスタを4つ以上具備し、
前記各クラスタは、前記データを転送する経路を指定する経路指定レジスタを備え、
前記リクエスト転送回路は、前記経路指定レジスタの設定に従って前記データを転送する
ことを特徴とするデータ処理装置。
【請求項15】
請求項12において、
前記クラスタを4つ以上具備し、
前記各クラスタは、前記データを転送する経路を指定する経路指定レジスタを備え、
前記レスポンス転送回路は、前記経路指定レジスタの設定に従ってデータを転送することを特徴とするデータ処理装置。
【請求項16】
互いに異なるアドレス空間を有する複数のクラスタと、前記各クラスタをバスを介して接続するネットワークとを備えたデータ処理装置であって、
前記複数のクラスタは、単一の半導体集積回路もしくは単一の積層LSIに、CPUやIPなどの論理回路が実装されて構成されており、
前記各クラスタは、リソースとして、システム全体として一つのユニークなアドレスが割当てられる非重複リソースと、単位クラスタ上では一つのユニークなアドレスが割当てられるが、システム全体としては該アドレスが他のクラスタに含まれるリソースにも割当てられる重複リソースとを持ち、
前記各クラスタ同士でデータのやり取りをする場合、前記重複リソースへのアクセス時には、該重複リソースのアドレス以外に該重複リソースが属する前記クラスタのID番号を付与することにより転送先をシステム内でユニークに指定する
ことを特徴とするデータ処理装置。
【請求項17】
請求項16において、
前記各クラスタは、
イニシエータIPモジュールと、
ターゲットIPモジュールと、
前記イニシエータIPモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、別クラスタへの転送に要する情報を付与するための、転送先クラスタ番号および転送先クラスタアドレス付加回路と、
該転送に要する情報を元に転送先が自クラスタか別クラスタかを判定してデータを転送するリクエスト転送回路と、
レスポンス転送回路と、
前記リクエスト転送回路若しくは前記レスポンス転送回路からのリクエスト又はレスポンスに応答するイニシエータブリッジ回路及びターゲットブリッジ回路と、
前記自クラスタのID番号を保持する自クラスタ番号レジスタとを含み、
前記イニシエータIPモジュールが、自クラスタから別クラスタへのアクセスを行う際に、前記転送先クラスタ番号および転送先クラスタアドレス付加回路を設定してから別クラスタへのアクセスを行う
ことを特徴とするデータ処理装置。
【請求項18】
請求項16において、
前記クラスタを4つ以上具備し、
前記各クラスタは、
イニシエータIPモジュールと、
ターゲットIPモジュールと、
前記イニシエータIPモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、別クラスタへの転送に要する情報を付与するための、転送先クラスタ番号および転送先クラスタアドレス付加回路と、
経路指定レジスタと、
経路可変リクエスト転送回路と、
該情報を元に転送先が自クラスタか別クラスタかを判定してデータを転送するリクエスト転送回路と、
前記リクエスト転送回路若しくは前記レスポンス転送回路からのリクエスト又はレスポンスに応答する、イニシエータブリッジ回路及びターゲットブリッジ回路と、
前記自クラスタのID番号を保持する自クラスタ番号レジスタとを含み、
前記イニシエータIPモジュールからのリクエストに対して、特定のアドレスへのアクセスであった場合、前記転送先クラスタ番号および転送先クラスタアドレス付加回路により別クラスタへの転送に要する情報を付与し、その情報を元に転送先が自クラスタか別クラスタかを判定し、前記経路指定レジスタの設定に従って前記データを転送し、
前記イニシエータIPモジュールは、別クラスタへのアクセスを行う前に、前記転送先クラスタ番号および転送先クラスタアドレス付加回路を設定してから別クラスタへのアクセスを行う
ことを特徴とするデータ処理装置。
【請求項19】
互いに異なるアドレス空間を有する複数のクラスタと、前記各クラスタを接続するネットワークとを備えたデータ処理装置によるデータ処理方法であって、
前記データ処理装置は、前記複数のクラスタの各々をユニークに識別するための情報としてクラスタID番号を保持しており、
前記複数のクラスタの中の1つのクラスタから、他のクラスタの前記アドレス空間に含まれるリソースにアクセスする際に、該リソースのアドレスに前記他のクラスタのID番号を付加することにより転送先をシステム内でユニークに指定することを特徴とするデータ処理方法。
【請求項20】
請求項19において、
前記データ処理装置は、前記リソースとして、前記データ処理装置全体として一つのユニークなアドレスが割当てられる非重複リソースと、単位クラスタ上では一つのユニークなアドレスが割当てられるが、前記データ処理装置全体としては該アドレスが他のクラスタに含まれるリソースにも割当てられる重複リソースとを持ち、
前記各クラスタ同士でデータのやり取りをする場合、前記重複リソースへのアクセス時には、該重複リソースのアドレス以外に該重複リソースが属する前記クラスタのID番号を付与することによりトランザクションの行き先をシステム内でユニークに指定する
ことを特徴とするデータ処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate