(57)【要約】【課題】  再構成可能な回路領域で処理するデータと、回路領域を制御するメッセージとを少ないハードウェアリソースで伝送可能にする。【解決手段】  伝送経路９により複数を直列に接続可能なプロセッシングユニット１０において、伝送経路９により接続された他のプロセッシングユニットとの間で、再構成可能な回路領域であるマトリクス１１に処理されるデータ３３を伝達する回路と、特定のプロセッシングユニットに対するメッセージ５１をワームホールルーティングにより伝達する回路とを含むプロセッシングユニット１０を提供する。【選択図】        図２
2005157653.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッシングユニットを用いるデータ処理方法であって、
前記複数のプロセッシングユニットの少なくとも一部のプロセッシングユニットを直列に接続する第１の伝送経路を介して、この第１の伝送経路により接続されたプロセッシングユニットによりシリアルに処理されるデータを伝達する第１の工程と、
前記第１の伝送経路を介して、前記複数のプロセッシングユニットの特定のプロセッシングユニットに対するメッセージをワームホールルーティングにより伝達する第２の工程とを有するデータ処理方法。
【請求項２】
請求項１において、前記プロセッシングユニットは、前記データに対する特定の処理に適した構成を含む第１の回路領域と、前記メッセージに基づく汎用処理に適した構成を含む第２の回路領域とを備えている、データ処理方法。
【請求項３】
請求項１において、前記プロセッシングユニットは、前記データに対する処理に適した回路を再構成可能な回路領域を含む第１の回路領域と、前記メッセージに基づき前記再構成可能な回路領域を再構成する機能を含む第２の回路領域とを備えている、データ処理方法。
【請求項４】
請求項１において、前記プロセッシングユニットは、前記データの処理に適した構成の第１の回路領域を備えており、
さらに、前記第１の回路領域を診断する第３の工程を有し、前記第２の工程では、マスタとなるプロセッシングユニットに対し、前記第３の工程の診断結果を伝達する、データ処理方法。
【請求項５】
請求項４において、前記第３の工程では、前記第１の回路領域の処理状況および健全性を含む状態を診断する、データ処理方法。
【請求項６】
請求項４において、前記マスタが、前記診断結果により前記第１の伝送経路を再構成する第４の工程を有するデータ処理方法。
【請求項７】
請求項６において、前記第１の回路領域は、再構成可能な回路領域を備え、さらに、前記プロセッシングユニットは、前記メッセージにより前記再構成可能な回路領域を再構成する機能を含む第２の回路領域を備えており、
前記第２の工程では、前記マスタが、前記第１の伝送経路により接続されたプロセッシングユニットの前記再構成可能な回路領域を再構成する前記メッセージを伝達する、データ処理方法。
【請求項８】
請求項１において、前記第２の工程では、前記メッセージを暗号化して伝達する、データ処理方法。
【請求項９】
請求項１において、前記第１の工程は、前記データを一時的に蓄積する第１のバッファがフルであることを前記第１の伝送経路により接続された上流のプロセッシングユニットに伝達する第１のバックプレッシャー信号を出力する工程を備えており、
前記第２の工程は、前記メッセージを前記データとは独立して一時的に蓄積する第２のバッファがフルであることを、前記第１のバックプレッシャー信号とは独立して、前記上流のプロセッシングユニットに伝達する第２のバックプレッシャー信号を出力する工程を備えている、データ処理方法。
【請求項１０】
請求項１において、前記特定のプロセッシングユニットは、前記第１の伝送経路により接続されている、データ処理方法。
【請求項１１】
請求項１において、前記第２の工程では、前記第１の伝送経路のバンド幅の一部を用いて前記メッセージを伝達する、データ処理方法。
【請求項１２】
請求項１１において、前記第１の伝送経路のうち、前記メッセージを伝達するためのバンド幅の一部はリング状に接続されている、データ処理方法。
【請求項１３】
複数のプロセッシングユニットと、
前記複数のプロセッシングユニットの少なくとも一部のプロセッシングユニットを直列に接続する第１の伝送経路を形成可能な接続網とを有し、
前記プロセッシングユニットは、前記第１の伝送経路により接続された他のプロセッシングユニットとの間で、前記第１の伝送経路により接続されたプロセッシングユニットによりシリアルに処理されるデータを伝達する第１の伝達手段と、
前記第１の伝送経路を介して、前記複数のプロセッシングユニットの特定のプロセッシングユニットに対するメッセージをワームホールルーティングにより伝達する第２の伝達手段とを有するデータ処理装置。
【請求項１４】
請求項１３において、前記プロセッシングユニットは、前記データに対する特定の処理に適した構成を含む第１の回路領域と、前記メッセージに基づく汎用処理に適した構成を含む第２の回路領域とを備えている、データ処理装置。
【請求項１５】
請求項１３において、前記プロセッシングユニットは、前記データに対する処理に適した回路を再構成可能な回路領域を含む第１の回路領域と、前記メッセージに基づき前記再構成可能な回路領域を再構成する機能を含む第２の回路領域とを備えている、データ処理装置。
【請求項１６】
請求項１３において、前記プロセッシングユニットは、前記データの処理に適した構成の第１の回路領域と、
前記第１の回路領域を診断し、前記メッセージとして診断結果を伝達する診断手段とを備えている、データ処理装置。
【請求項１７】
請求項１６において、前記診断手段は、前記第１の回路領域の処理状況および健全性を含む状態を診断する、データ処理装置。
【請求項１８】
請求項１４において、前記プロセッシングユニットは、前記メッセージをパケット化するパケット生成手段を備えており、このパケット生成手段は、前記第２の回路領域を構成するコンポーネントからメモリマップドＩ／Ｏによりアクセスされる、データ処理装置。
【請求項１９】
請求項１３において、前記第２の伝達手段は、前記メッセージを暗号化して伝達する、データ処理装置。
【請求項２０】
請求項１３において、前記第１の伝達手段は、前記データを一時的に蓄積する第１のバッファと、この第１のバッファがフルであることを前記第１の伝送経路により接続された上流のプロセッシングユニットに伝達する第１のバックプレッシャー信号を出力する機能とを備えており、
前記第２の伝達手段は、前記メッセージを前記データとは独立して一時的に蓄積する第２のバッファと、前記第１のバックプレッシャー信号とは独立して前記第２のバッファがフルであることを前記上流のプロセッシングユニットに伝達する第２のバックプレッシャー信号を出力する機能とを備えている、データ処理装置。
【請求項２１】
請求項１３において、前記第２の伝達手段は、前記第１の伝送経路のバンド幅の一部を用いてメッセージを伝達する、データ処理装置。
【請求項２２】
他の複数のプロセッシングユニットと第１の伝送経路により直列に接続可能なインターフェイスと、
前記第１の伝送経路により接続された他のプロセッシングユニットとの間で、シリアルに処理されるデータを伝達する第１の伝達手段と、
前記第１の伝送経路を介して、前記特定のプロセッシングユニットに対するメッセージをワームホールルーティングにより伝達する第２の伝達手段とを有するプロセッシングユニット。
【請求項２３】
請求項２２において、前記データに対する特定の処理に適した構成を含む第１の回路領域と、
前記メッセージに基づく汎用処理に適した構成を含む第２の回路領域とを有するプロセッシングユニット。
【請求項２４】
請求項２２において、前記データに対する処理に適した回路を再構成可能な回路領域を含む第１の回路領域と、前記メッセージに基づき前記再構成可能な回路領域を再構成する機能を含む第２の回路領域とを備えている、プロセッシングユニット。
【請求項２５】
請求項２４において、前記第１の回路領域を診断する手段を有し、
前記第２の回路領域は、前記メッセージとして診断結果を伝達する機能を含んでいる、プロセッシングユニット。
【請求項２６】
請求項２２において、前記メッセージをパケット化するパケット生成手段を有し、このパケット生成手段は、前記第２の回路領域を構成するコンポーネントからメモリマップドＩ／Ｏによりアクセスされる、プロセッシングユニット。
【請求項２７】
請求項２２において、前記第２の伝達手段は、前記メッセージを暗号化して伝達する、プロセッシングユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッシングユニット間のデータ転送に関するものである。
【背景技術】
【０００２】
特開平８−８７４８０号公報には、並列計算機におけるプロセッシングエレメント間通信において、ワームホールルーティングを使用した技術が開示されている。ワームホールルーティング方式では、メッセージが、フリットと呼ばれる最小伝送単位に分割され、送信プロセッシングエレメントと受信プロセッシングエレメント間の中継ルートを伝送される。先頭のフリットには受信プロセッシングエレメントの位置を示すルーティング情報が含まれ、各中継ルート上のプロセッシングエレメントでは、そのルーティング情報から、そのメッセージをどの方向に送るかを判断する。後続のフリットは、先頭のフリットと同一のルートを数珠繋ぎで伝送される。特開平８−８７４８０号公報には、ワームホールルーティング方式におけるデッドロックを回避するための幾つかの技術が開示されている。
【特許文献１】特開平８−８７４８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
近年、回路の構成を変更あるいは再構成できる半導体集積回路が登場している。ＦＰＧＡ（Field Programmable Gate Array）はプログラミングできるＬＳＩとして既に多く使用されている。さらに、動的に再構成可能（ダイナミック・リコンフィグラブル）なプロセッサも登場し始めており、たとえば、国際公開ＷＯ０２／０９５９４６号を挙げることができる。この国際公開ＷＯ０２／０９５９４６号には、２次元に複数のエレメントが配置されたマトリクスと称される領域を有し、マトリクス内に縦横に配置された配線群の接続を切り替えることにより複数のエレメントによりフレキシブルにデータフロー（データパス）を再構成できるようにしている。動的に再構成可能な構成は、これに限定されるものではなく、エレメントをツリー状に接続したり、隣り合うエレメント同士を接続し、エレメントを通信経路として用いる構成などもある。
【０００４】
動的に再構成可能なプロセッサは、汎用的な構成でありながらアプリケーションに特化した回路を構築できる点でデータ処理装置の開発期間およびコストを大幅に低減できる。それと共に、動的に再構成することにより、複数の機能を１つのプロセッサに時分割して実装することが可能であり、コンパクトで低消費電力なデータ処理装置を実現できるなど、多くのメリットを備えている。このため、様々な目的で使用されると期待されている。
【０００５】
動的に再構成可能なプロセッサに対して時分割で様々な機能を実装するといっても、プロセッサはある程度の回路規模を備えている必要がある。動的に再構成するには少なくとも１サイクルを要するので、再構成を頻繁に繰り返せば、処理速度は低下する。また、１つの纏まりのある機能を実現するために構成された回路を分割して実装する場合は、分割された回路間のインターフェイスを何らかの方法で確保する必要があり、纏まりのある機能は１つのプロセッサに実装できるに越したことはない。しかしながら、１つのプロセッサが回路資源を無限に持つことは不可能であるし、纏まりのある機能のうち、最大の回路資源が必要される機能に合わせて、１つのプロセッサを設計・開発することも経済的ではない。
【０００６】
したがって、ある程度の回路資源を備えた、動的に再構成可能なプロセッシングユニットを用意し、そのようなプロセッシングユニットを複数接続可能とすることにより大規模な動的に再構成可能な回路領域を形成することは重要である。また、動的に再構成可能なプロセッシングユニットを動的あるいは静的に接続する構成は、１つの動的再構成可能なプロセッシングユニットのサイズをコンパクトにできることを意味する。したがって、複数の動的再構成可能なプロセッサを備えたデータ処理装置を提供することにより、エレメントレベルでの再構成機能に加えて、プロセッシングユニットレベルでの再構成可能なデータ処理装置を提供できる。プロセッシングユニットレベルで再構成可能なデータ処理装置であると、プロセッシングユニット単位での回路の交代が可能となる。
【０００７】
プロセッシングユニットは、再構成可能な回路資源と、その回路資源を所望の形態に再構成して、再構成された回路により処理を実行する制御ユニット、たとえばＣＰＵを備えている。したがって、第１のプロセッシングユニットにおいて第１の機能を実現するためのコンフィグレーション情報を、第２のプロセッシングユニットに提供すれば、第２のプロセッシングユニットにより第１の機能を実現することは簡単である。このため、第１のプロセッシングユニットに異常が見つかったり、第１のプロセッシングユニットが他の処理でビジーのときに、第２のプロセッシングユニットで第１の機能を実現し、他のプロセッシングユニットと接続することにより、極めて処理効率が高く、さらに、信頼性も高いデータ処理装置を提供できる。
【０００８】
複数のプロセッシングユニットを接続するデータ処理装置において、解決しなければならない課題の１つは、プロセッシングユニット間の通信に要するハードウェアの増加と、通信時間の増加という問題である。再構成可能な回路資源を備えたプロセッシングユニット間の通信は、再構成された回路資源により処理されるデータと、回路資源を再構成するためのコンフィグレーション情報を含む制御ユニットに対するメッセージ（コマンド）とを取り扱う必要がある。データは、接続された複数のプロセッシングユニットをシリアルあるいはパラレルに伝送されながら加工されるものであり、メッセージは特定のプロセッシングユニットに発せられるものである。したがって、これらの伝送経路は同じにならず、少なくとも２種類の伝送経路が必要になる。また、特定のプロセッサに対しメッセージを発送するハードウェアとしてバス方式が一般的であり、アドレスだけで解決できるのでプロセッサとしての構成は簡易なる。しかしながら、バスの制御および管理のためのハードウェアと、それに費やされる時間（サイクル）は無視できるようなものではなく、メッセージを転送するためのオーバヘッドを減らさなくては、複数のプロセッシングユニットを含めた動的な再構成は実現できない。
【課題を解決するための手段】
【０００９】
そこで、本発明においては、複数のプロセッシングユニットを用いて処理を行うデータ処理方法であって、複数のプロセッシングユニットの少なくとも一部のプロセッシングユニットを直列に接続する第１の伝送経路を介して、この第１の伝送経路により接続されたプロセッシングユニットによりシリアルに処理されるデータを伝達する第１の工程と、第１の伝送経路を介して、複数のプロセッシングユニットの特定のプロセッシングユニットに対するメッセージをワームホールルーティングにより伝達する第２の工程とを有するデータ処理方法を提供する。また、本発明においては、複数のプロセッシングユニットと、複数のプロセッシングユニットの少なくとも一部のプロセッシングユニットを直列に接続する第１の伝送経路を形成可能な接続網とを有するデータ処理装置を提供する。このデータ処理装置において、プロセッシングユニットは、第１の伝送経路により接続された他のプロセッシングユニットとの間で、第１の伝送経路により接続されたプロセッシングユニットによりシリアルに処理されるデータを伝達する第１の伝達手段と、第１の伝送経路を介して、複数のプロセッシングユニットの特定のプロセッシングユニットに対するメッセージをワームホールルーティングにより伝達する第２の伝達手段とを有する。したがって、本発明のプロセッシングユニットは、他の複数のプロセッシングユニットと第１の伝送経路により直列に接続可能なインターフェイスと、第１の伝送経路により接続された他のプロセッシングユニットとの間で、シリアルに処理されるデータを伝達する第１の伝達手段と、第１の伝送経路を介して、特定のプロセッシングユニットに対するメッセージをワームホールルーティングにより伝達する第２の伝達手段とを有する。
【００１０】
ワームホールルーティング方式では、メッセージが、フリットと呼ばれる最小伝送単位に分割され、送信元のプロセッシングユニットから受信先のプロセッシングユニットに対して数珠繋ぎに転送される。そして、隣接するプロセッシングユニット間においては、ＦＩＦＯなどにより構成されるフリットバッファを介してフリット単位で転送される。隣接するプロセッシングユニット間において、フリットバッファに伝達する処理は、プロセッシングユニットによりシリアルに処理されるデータを伝達する処理と共通する。したがって、第１の伝送経路により直列に接続されたプロセッシングユニットを辿ってメッセージをワームホールルーティング方式により伝送することができる。このため、本発明のデータ処理方法およびデータ処理装置においては、直列に接続されたプロセッシングユニットによりシリアルに処理されるデータと、特定のプロセッシングユニットに対するメッセージの両方を第１の伝送経路を介して伝達できる。
【００１１】
そして、ワームホールルーティング方式では、メッセージは送信先などを定義した最初のフリットをヘッダとするパケットに格納される。そして、隣接するプロセッシングユニット間においてフリットを転送するフリットバッファの管理だけでパケットを伝送できるので、パケット全体をバッファリングする必要はなく、メッセージの伝送に関わるハードウェアは極めて簡易であり、また、パケット全体をバッファリングしたり、バスを調停すしたりするために要するオーバヘッドもない。ワームホールルーティング方式では、特定のプロセッシングユニットに最初のフリットが到達する時間が遅延となるが、バス方式で、調停したり、送信側および受信側においてパケット全体をバッファリングするために要する時間に比べると通常は遥かに小さい。さらに、バス方式では、１つのメッセージを伝送するためにバスが占有されてしまうのに対し、ワームホールルーティング方式では、少なくとも伝送経路単位でメッセージを伝送することができ、異なるプロセッシングユニット間で同時にメッセージを交換することが可能である。さらに、第１の伝送経路の途中に特定のプロセッシングユニットが存在するケースなどにおいては、第１の伝送経路が異なるメッセージを交換するためにシェアされることもある。そして、第１の伝送経路をシェアするために特別な制御やハードウェアは要求されない。
【００１２】
また、ワームホールルーティング方式では、メッセージはフリットに分割され、フリットバッファが空いたタイミングで伝達される。このため、複数のメッセージを重複した経路を介して伝送はできないが、データ用のバッファとメッセージ用のバッファとは異なるので、データの伝送とメッセージの伝送とのために第１の伝送経路を時分割で使用できる。したがって、メッセージとデータとで第１の伝送経路を共有することによる遅延は発生しにくい。このため、第１の伝達手段は、データを一時的に蓄積する第１のバッファと、この第１のバッファがフルであることを第１の伝送経路により接続された上流のプロセッシングユニットに伝達する第１のバックプレッシャー信号を出力する機能を備え、第２の伝達手段は、メッセージをデータとは独立して一時的に蓄積する第２のバッファと、第１のバックプレッシャー信号とは独立して第２のバッファがフルであることを上流のプロセッシングユニットに伝達する第２のバックプレッシャー信号を出力する機能とを備えていることが望ましい。第１のバックプレッシャー信号と、第２のバックプレッシャー信号とを独立して隣接する上流のプロセッシングユニットに出力する工程を設けることにより、データの伝送が渋滞していてもメッセージの伝送には影響を与えず、逆に、メッセージの伝送が渋滞していてもデータの伝送には影響を与えない伝送経路を形成できる。
【００１３】
さらに、プロセッシングユニット間においてメッセージを交換する必要が発生する確率は、同一または関連する機能の処理を行っているプロセッシングユニット間である。したがって、データを伝達するための第１の伝送経路は、メッセージを効率良く伝達するための経路となる。汎用的には、本発明は、第１の伝送経路内に存在する特定のプロセッシングユニットに対してだけメッセージを伝達するデータ処理装置に限定されない。プロセッシングユニットが、メッセージを伝送ためのルーティングを新たに形成する能力を備えていれば、第１の伝送経路外に存在するプロセッシングユニットに対しても本発明によりメッセージを伝達できる。メッセージを受信する特定のプロセッシングユニットが第１の伝送経路内に存在する場合に限定するのであれば、本発明においては、プロセッシングユニットは、メッセージを伝達するためのルーティング能力は不要であり、さらに構成は簡略化される。したがって、本発明は、第１の伝送経路のバンド幅がデータ伝送用とメッセージ伝送用にハードウェア的にセパレートされている場合も含まれる。
【００１４】
また、メッセージは、フリットに分割されて伝送されるので、第１の伝送経路の全バンド幅をメッセージの伝達のために占有する必要はない。メッセージを伝達するために使用されるバンド幅を限定することにより、第１の伝送経路によるデータ伝送のリアルタイム性を保障することも可能となる。さらに、第１の伝送経路の内、メッセージを伝送するために共有される伝送経路をリング状にすることにより、メッセージは第１の伝送経路を一方向に伝達するだけで第１の伝送経路内の全てのプロセッシングユニットの間でメッセージを交換できる。したがって、プロセッシングユニットは、メッセージを送信する方向を判断する能力あるいは機能も不要となる。
【００１５】
本発明のデータ処理方法およびデータ処理装置においては、第１の伝送経路によりデータとメッセージを伝送できる。このため、データに対する特定の処理に適した構成を含む第１の回路領域と、メッセージに基づく汎用処理に適した構成を含む第２の回路領域とを備えたプロセッシングユニットを有するデータ処理装置に適したデータ処理方法である。第１の回路領域が、データに対する処理に適した回路を再構成可能な回路領域を含み、第２の回路領域は再構成可能な回路領域を再構成する機能を備えているプロセッシングユニットが採用されている場合は、メッセージにより再構成可能な回路の構成を任意に制御できる。
【００１６】
第１の回路領域を診断する第３の工程を設けることにより、第２の工程では、マスタとなるプロセッシングユニットに対し、第３の工程の診断結果を伝達することができる。この第３の工程では、たとえば、第１の回路領域の処理状況および健全性を含む状態を診断する。これにより、第１の回路領域が再構成可能な領域を備えている場合は、マスタが、第１の伝送経路により接続されたプロセッシングユニットに対し、再構成可能な回路領域を再構成するメッセージを伝達する。ビジーあるいは健全でないために利用できないプロセッシングユニットをバイパスあるいはスルーするように、該当するプロセッシングユニットの第１の回路領域を構成できる。また、マスタが、その診断結果により第１の伝送経路を再構成する第４の工程を設け、第１の伝送経路そのものを再構成するようにしても良い。
【００１７】
したがって、本発明のデータ処理装置においては、プロセッシングユニットは、第１の回路領域を診断する手段を備えており、第２の回路領域は、メッセージとして診断結果を伝達する機能を含んでいることが望ましい。この診断する手段により、第１の回路領域の処理状況および健全性を含む状態を診断することができる。
【００１８】
プロセッシングユニットがチップとして提供される場合は、プロセッシングユニット間で交換されるメッセージに対して外部からのアクセスが可能になる。したがって、メッセージを暗号化して伝達されることが望ましい。暗号化は、第２の伝達手段で行っても良いし、第２の回路領域に暗号化する機能を含めても良い。暗号化のキーあるいはキーの一部はメッセージのヘッダ、すなわち、先頭のフリットに含めて伝送することができる。
【００１９】
プロセッシングユニットは、メッセージをパケット化するパケット生成手段を備えていることが望ましい。そして、パケット生成手段はメモリマップドデバイスとして、第２の回路領域を構成するコンポーネント、たとえばＣＰＵあるいはＤＭＡＣからメモリマップドＩ／Ｏによりアクセスされるように構成されていることが望ましい。第２の回路領域を構成するコンポーネントは、メモリマップドＩ／Ｏによりメッセージを所望のプロセッシングユニットに伝送できる。
【発明の効果】
【００２０】
本発明においては、複数のプロセッシングユニットを、電気信号、光信号などにより接続する第１の伝送経路を介してデータとメッセージとを伝送できるようにしている。したがって、本発明により、複数のプロセッシングユニットを用いて処理を行うデータ処理装置の構成を簡易にでき、複数のプロセッシングユニットを備え、信頼性が高く、処理する機能の数あるいは規模をフレキシブルに制御できるデータ処理装置であって、コンパクトで経済的なデータ処理装置を提供できる。
【発明を実施するための最良の形態】
【００２１】
図１に、データ処理装置の一例を示してある。このデータ処理装置１は、４つのプロセッシングユニット１０ａ〜１０ｄが伝送経路９により直列に接続されている。伝送経路９は、３２ビット幅の３つのサブ経路９Ａ、９Ｂおよび９Ｃを備えており、サブ経路９Ａがデータとメッセージとを伝送するために共用され、残りのサブ経路９Ｂおよび９Ｃはデータを伝送する専用の経路となっている。サブ経路９Ａは、リング状に接続されており、サブ経路９により接続された４つのプロセッシングユニット１０ａ〜１０ｄに対して一方向にメッセージを伝送するだけで全てのプロセッシングユニット間でメッセージを交換できるようにしている。
【００２２】
プロセッシングユニット（ＰＵ）１０ａ〜１０ｄは同一の構成であり、図２に、その概要を示してある。なお、共通の構成を示す場合は、以下ではプロセッシングユニット（ＰＵ）１０として参照する。ＰＵ１０は、回路を再構成可能な第１の回路領域１１と、この第１の回路領域１１を再構成する機能を有する第２の回路領域１２とを備えている。第２の回路領域１２は、メッセージ、コマンドあるいは命令に基づく汎用処理に適した汎用的な構成であり、ＣＰＵあるいは一般的な制御ユニットとして機能するＲＩＳＣ１３と、ＤＲＡＭ１４と、ＤＭＡコントロールユニット１５と、ＰＣＩバスインターフェイスユニット１６と、周辺モジュールとの汎用入出力インターフェイスユニット１７とを備えている。汎用入出力インターフェイスユニット１７により、シリアルインターフェイスコントローラとなる非同期通信機（ＵＡＲＴ）、タイマーなどの接続が可能となる。これらの第２の回路領域１２に含まれるコンポーネントは、高速バススイッチングユニット（ＢＳＵ）１８に接続されている。ＢＳＵ１８は、スター型の内部バスアーキテクチャを備えており、ＢＳＵ１８に接続された複数のコンポーネント間の複数の組み合わせのデータ転送が同時に処理できるようになっている。
【００２３】
再構成可能な第１の回路領域１１は、複数のエレメントがアレイまたはマトリクス状に２次元に配置されており、マトリクスと称されている。図３に、マトリクス１１の概要を示してある。本例のマトリクス１１は、複数のプロセッシングエレメント２１が縦横に２次元に配置された複数のプロセッシングエレメント２１と、それらの間に格子状に配置された配線２２と、配線２２の接続ポイントで縦横の配線２２の接続を自由に切り替えることができるスイッチングユニット２３とを備えている。プロセッシングエレメント２１は、ルックアップテーブルなどにより自在に機能を設定可能なものであっても良い。本例では、算術論理演算用のエレメント、遅延用のエレメント、メモリ用のエレメント、データを入力または出力するためにアドレスを発生させるエレメント、データの入力または出力用のエレメントなど、ある程度の機能グループに分けて、それぞれの処理に適した内部構成のエレメントを配置することによりマトリクス１１のスペース効率を向上している。また、ある程度の機能グループに分けたエレメントを配置することにより冗長性が減少するのでＡＣ特性および処理速度も向上できるといったメリットがある。
【００２４】
マトリクス１１の内部構成は、ＲＩＳＣ１３から制御バス２９を介して制御される。各々のエレメント２１の内部構成、例えば、ある算術論理演算用のエレメント２１が実行する演算の種類、ある遅延用のエレメントの遅延量などはＲＩＳＣ１３からのコンフィグレーション命令により決定される。また、これらのエレメント２１の接続は、ＲＩＳＣ１３がスイッチングユニット２３を制御することにより決定され、マトリクス１１の内部に、１または複数のデータフロー（データパス）が形成される。マトリクス１１の内部に構成されたデータフローは、ＲＩＳＣ１３からの命令により１サイクルあるいは数サイクルで再構成することが可能である。したがって、マトリクス１１に対してある時点で供給されるデータの処理に適した専用回路を、マトリクス１１の内部にフレキシブルに構成することが可能となり、所望の処理を高速で実行できる。
【００２５】
再構成可能なプロセッサの構成は、本例に限られない。配線を縦横に配置する代わりに、ＰＥを配線としても利用してデータフローを形成するタイプや、同一の構成のＰＥをマトリクス状に敷き詰めたタイプや、ＰＥによりツリーが形成されるようなアレンジを採用したタイプなどが提案されており、そのような再構成可能な構成の回路領域を備えたプロセッシングユニットも本発明に含まれる。
【００２６】
ＰＵ１０は、回路を再構成可能なマトリクス１１は、バッファ２４を介してＢＳＵ１８と接続されており、ＢＳＵ１８を経由してＲＩＳＣ１３、メモリ１５、ＰＣＩバス１６、汎用Ｉ／Ｏ１７からデータを入出力できる。詳しくは、図３に示すようにマトリクス１１のバッファ２４は、１２８ビット×４ポートの入力バッファ２４ｉと、１２８ビット×４ポートの出力バッファ２４ｏとを備えており、入力および出力をそれぞれ独立して制御できるようになっている。
【００２７】
さらに、ＰＵ１０は、マトリクス１１に対して直にデータを入力および出力可能な高速インターフェイス（ＨＳＩＦ）３０を備えている。ＨＳＩＦ３０とマトリクス１１とは３２ビット×４チャンネルの配線で接続されており、入力用および出力用に独立したインターフェイスを用意することで入力および出力を独立して制御できるようにしている。
【００２８】
図２にＨＳＩＦ３０の詳しい構成を示してある。ＨＳＩＦ３０は、マトリクス１１とのインターフェイスのために４つの入力インターフェイスＲＸ０〜ＲＸ３と、４つの出力インターフェイスＴＸ０〜ＴＸ３を備えている。また、ＰＵ１０に対して直にデータを入出力可能な伝送経路９が３系統のサブ経路９Ａ〜９Ｃを備えているので、それらに対応して３つの入力ポートＲＸＰ０〜ＲＸＰ２および３つの出力ポートＴＸＰ０〜ＴＸＰ２を備えている。これらの入力ポートＲＸＰ０〜ＲＸＰ２の上流には入力バッファ３１がそれぞれ設けられ、出力ポートＴＸＰ０〜ＴＸＰ２の下流には出力バッファ３２がそれぞれ設けられている。入力ポートＲＸＰ０およびＲＸＰ１、出力ポートＴＸＰ０およびＴＸＰ１は、入力インターフェイスＲＸ０およびＲＸ１、出力インターフェイスＴＸ０およびＴＸ１にそれぞれ１対１に対応している。一方、入力ポートＲＸＰ２および出力ポートＴＸＰ２は、入力インターフェイスＲＸ２およびＲＸ３、出力インターフェイスＴＸ２およびＴＸ３に対して切り替えて接続できるようになっており、入出力用の伝送経路９のバンド幅を変えたり、伝送経路９の一部を入力および出力に兼用したりすることができる。このため、伝送経路９のバンド幅は入力および出力にフレキシブルに切り替えて利用できる。このような入出力ポートの構成は、ＳＲＯＭ３９に設定される。これらの入出力ポートおよびインターフェイスの設定は、ＲＩＳＣ１３からダイナミックに変更できるようにしても良く、ＳＲＡＭ（不図示）あるいはその他の記憶デバイスなどをチップ（ＰＵ）内に実装して直接接続できるようにすることも可能である。
【００２９】
入力インターフェイスＲＸ０〜ＲＸ３のそれぞれとマトリクス１１の間には、データを出力する３２ビットのデータ３３を供給する配線と、データを供給可能であることを示すレディー信号３４を供給する配線と、マトリクス側がフルあるいはビジーであることを示すデータ用のバックプレッシャー信号（ＤＢＰ）３５を供給する配線とがアレンジされている。ＤＢＰ信号３５は、入力ポートＲＸ０〜ＲＸ２と、入力バッファ３１をそれぞれ介し、配線経路９により接続された上流のＰＵ１０に伝達される。そのため、入力ポートおよびバッファとの間、さらにサブ経路には、データおよびメッセージを含む入出力データ３８を伝送する配線と、ＤＢＰ信号３５を伝送する配線とが用意されている。ＰＵ１０の出力側においては、伝送経路９により接続されたプロセッシングユニットと出力ポートＴＸＰ０〜ＴＸＰ２との間に入出力データ３８と、ＤＢＰ信号３５を伝達する配線が用意されている。さらに、出力バッファ３２、出力ポートＴＸＰ０〜ＴＸＰ２、出力インターフェイスＴＸ０〜ＴＸ３を介してマトリクス１１にデータおよびＤＢＰ信号が伝達される。
【００３０】
ＨＳＩＦ３０の入力ポートＲＸ０と、出力ポートＴＸ０とは、データの入出力だけではなく、メッセージの入出力にも用いられる。このため、ＰＵ１０は、ＢＳＵ１８に接続されたＲＩＳＣインターフェイス５０を備えており、ＨＳＩＦ３０は、ＲＩＳＣインターフェイス５０を介して第２の回路領域１２のコンポーネントと接続されている。
【００３１】
図４に、ＲＩＳＣインターフェイス５０を中心としたさらに詳しい構成を示してある。この図においては、ＨＳＩＦ３０は、入力ポートＲＸＰ０〜ＲＸＰ２と、入力インターフェイスＲＸ０〜ＲＸ３と、出力ポートＴＸＰ０〜ＴＸＰ２と、出力インターフェイスＴＸ０〜ＴＸ３とに分離して示されている。入力ポートＲＸＰ０は、伝送経路９から入力された信号３８のパリティーチェックを行うパリティーエラー検出部６１と、入力された信号３８をマトリクス１１に供給するデータ３３として一時的に格納するデータＦＩＦＯ６３と、入力された信号３８をＲＩＳＣインターフェイス５０に供給するメッセージ５１として一時的に格納するメッセージＦＩＦＯ６４と、入力された信号３８をコントロールビット３７ｂによりデータＦＩＦＯ６３とメッセージＦＩＦＯ６４とに切り替えて格納するコントロールビットデコーダ６２とを備えている。パリティーエラー検出部６１には、伝送される３２ビットの信号３８に加え、伝送する信号３８がレディーであることを示す信号３７ａ、コンテンツの種類を示す信号（コントロールビット）３７ｂ、パリティーを示す信号３７ｃが入力されパリティーチェックが行われる。そして、パリティーエラー検出部６１からは、入出力データ３８に加えて、レディーであることを示す信号３７ａ、コントロールビット３７ｂおよびパリティーエラーが発生したことを示す信号６１ｄが出力される。
【００３２】
コントロールビットデコーダ６２は、コントロールビット３７ｂにより、入力された３２ビットの入力信号３８をデータＦＩＦＯ６３と、メッセージＦＩＦＯ６４とに振り分けて格納する。また、入力信号３８がレディーであることを示す信号６２ａもそれぞれのＦＩＦＯ６３および６４に供給する。
【００３３】
ＦＩＦＯ６３および６４は、それぞれ、入力側のクロック周波数にあわせて入力データ３８を取得し、出力側のクロック周波数に合わせて出力データ３３と、メッセージ５１とを出力する。このため、伝送経路９の上流からのクロック信号Ｃ１と、マトリクス１１からのクロック信号Ｃ２とが入力されている。さらに、データＦＩＦＯ６３からは、ＦＩＦＯ６３がフルであることを示すＤＢＰ信号３５が経路９を辿って上流のプロセッシングエレメント１０に供給される。また、メッセージＦＩＦＯ６４からは、ＦＩＦＯ６４がフルであることを示すＭＢＰ信号５２が、経路９を辿って上流のプロセッシングエレメント１９に供給される。ＦＩＦＯ６３およびＦＩＦＯ６４はそれぞれ独立に動作するので、ＤＢＰ信号３５およびＭＢＰ信号５２はそれぞれ独立して出力される。
【００３４】
データＦＩＦＯ６３からは、マトリクス１１に対してデータ３３と、レディー信号３４が供給され、マトリクス１１からはフルあるいはビジーであることを示すＤＢＰ信号３５がＦＩＦＯ６３に戻される。メッセージＦＩＦＯ６４からは、ＲＩＳＣインターフェイス５０の受信ＦＩＦＯ５５に対して、メッセージ５１とレディー信号５３とが供給され、受信ＦＩＦＯ５５から受信ＦＩＦＯ５５がフルであることを示すＭＢＰ信号５２が戻される。他の入力ポートＲＸＰ１およびＲＸＰ２においては、マトリクス１１に対して供給されるデータ３３のみを取り扱うために、データとメッセージを分離する必要がない。したがって、入力ポートＲＸＰ１およびＲＸＰ２はコントロールビットデコーダとメッセージＦＩＦＯとは備えておらず、他の構成は入力ポートＲＸＰ０と共通する。
【００３５】
ＲＩＳＣインターフェイス５０は、上述した受信バッファ５５と、新たにパケットを生成し、受信し、さらにワームホールルーティングによりパケットを転送するパケットプロセッサ５６と、メッセージの転送に関わる条件および設定値などが格納されるレジスタファイル５７と、出力バッファ５８とを備えている。さらに、パケットプロセッサ５６と第２の回路領域１２の各コンポーネントを接続するためのＤＭＡインターフェイス５９とを備えている。ＤＭＡインターフェイス５９は、ＢＳＵ１８に接続されており、当該ＰＵ１０を宛先とするパケット化されたメッセージを受信すると、ＤＭＡをＢＳＵ１８に要求する。また、ＤＭＡインターフェイス５９は、ＲＩＳＣ１３などからＢＳＵ１８を介してアクセス要求があると、それに対応してメッセージの内容をパケットプロセッサ５６に送る。パケットプロセッサ５６からは、第２の回路領域１２を構成し、パケットプロセッサ５６にメッセージとなるデータを送信する可能性があるコンポーネントに対し、パケットプロセッサ５６がビジーであることを示すバックプレッシャー信号（ＰＢＰ）５６ａが供給される。
【００３６】
パケットプロセッサ５６は、受信バッファ５５からメッセージ５１と、レディー信号５３とを受信し、パケットプロセッサ５６がメッセージを受信できない状態であることを示すＭＢＰ信号５２を戻す。出力バッファ５８がフルであったり、パケットプロセッサ５６が新たにメッセージパケットを生成して発信しているときは、パケットプロセッサ５６は受信バッファ５５からメッセージを受信できない。パケットプロセッサ５６は、出力バッファ５８に対してメッセージ５１と、レディー信号５２を供給し、出力バッファ５８からは出力バッファ５８がフルであることを示すＭＢＰ信号５２が戻される。出力バッファ５８は、ハードウェアモードでメッセージがセットされるＨＷバッファ５８ａと、ソフトウェアモードでメッセージがセットされるＳＷバッファ５８ｂとを備えている。ワームホールルーティングによるスルーパケット以外の送出パケットは、ＢＳＵ１８よりＤＭＡにより出力バッファ５８のＦＩＦＯ５８ａまたは５８ｂに転送される。
【００３７】
パケットプロセッサ５６は、ＢＳＵ１８を介して第２の回路領域１２を構成するコンポーネントからメモリマップドＩ／Ｏによりアクセスできる構成となっている。このため、ＲＩＳＣ１３は、メモリ空間にマッピングされたアドレスを指定してメッセージを書き込むことにより、パケットプロセッサ５６を介して所望のＰＵ１０に対してメッセージ５１を送ることができる。したがって、ＲＩＳＣ自体は、宛先のＰＵ１０までの経路を知らなくても、メモリマップドＩ／Ｏによりメッセージとなるデータを書き込むだけで、所望のＰＵ１０にアクセスできる。また、メッセージパケット５１には、所望のＰＵ１０において書き込むアドレスや読み出すアドレスを指定することができるので、マスターとなるＰＵ１０は、スレーブとなるプロセッシングユニットに対して再構成用のデータを書き込んだり、障害情報を取得したりすることが容易に実行できる。
【００３８】
出力ポートＴＸＰ０の構成は、入力ポートＲＸＰ０を逆転したものであり、基本的な思想は共通する。出力ポートＴＸＰ０は、マトリクス１１からのデータを受信するデータＦＩＦＯ７３と、ＲＩＳＣインターフェイスユニット５０からのメッセージを受信するメッセージＦＩＦＯ７４と、これらのＦＩＦＯ７３または７４からの出力データ３３を切り替えてパリティー発生器７１を介して下流のＰＵ１０に送出するコントロールビット発生器７２とを備えている。コントロールビット発生器７２には、下流のＰＵ１０からデータ転送用のＤＢＰ信号３５と、メッセージ転送用のＭＢＰ信号５２とが独立して供給されている。したがって、コントロールビット発生器７２は、データＦＩＦＯ７３あるいはメッセージＦＩＦＯ７４がレディーで、下流のＰＵ１０がアクセプタブルなコンテンツをその種類を示すコントロールビットと共に下流のＰＵ１０に送信する。
【００３９】
コントロールビット発生器７２には、さらに、データＦＩＦＯ７３からデータ３３とレディー信号３４が供給され、ＦＩＦＯ７３にＤＢＰ信号３５が戻される。ＦＩＦＯ７３には、マトリクス１１からデータ３３とレディー信号３４が供給され、マトリクス１１にＤＢＰ信号３５が戻される。また、コントロールビット発生器７２には、メッセージＦＩＦＯ７４からメッセージ５１とレディー信号５３が供給され、ＦＩＦＯ７３にＭＢＰ信号５２が戻される。ＦＩＦＯ７４には、ＲＩＳＣインターフェイスユニット５０からメッセージ５１とレディー信号５３とが供給され、ＲＩＳＣインターフェイスユニット５０にＭＢＰ信号５２が戻される。ＦＩＦＯ７３および７４は、クロック周波数を変更可能になっており、マトリクス１１からクロック信号Ｃ２が供給され、下流のプロセッシングユニットから異なるクロック信号Ｃ３が供給される。これらのクロック信号の周波数は共通しても良い。
【００４０】
コントロールビット発生器７２からは、データ３３またはメッセージ５１を含む出力データ３８と、レディー信号３７ａと、コンテンツの種類を示す信号（コントロールビット）３７ｂとがパリティー発生器７１に供給される。パリティー発生器７１からは、さらに、パリティー発生信号７１ａにより指定されたパリティーを指示するパリティー信号３８ｃが加えられてサブ伝送経路９Ａに出力される。他の出力ポートＴＸＰ１およびＴＸＰ２においては、マトリクス１１から出力されるデータ３３のみを取り扱うために、データとメッセージを分離する必要がない。したがって、出力ポートＴＸＰ１およびＴＸＰ２はコンテンツ発生器とメッセージＦＩＦＯとは備えておらず、他の構成は出力ポートＴＸＰ０と共通する。
【００４１】
したがって、本例のＰＵ１０においては、入力ポートＲＸＰ０〜ＲＸＰ２および出力ポートＴＸＰ０〜ＴＸＰ２により、伝送経路９により接続された他のプロセッシングユニットとの間で、マトリクス１１により処理されるデータ３３を伝達する第１の伝達回路８１が形成されている。そして、データ３３は、伝送経路９により直列に接続された複数のＰＵ１０のマトリクス１１を辿りながら順次処理され、データ処理装置１から出力される。あるいは、データ処理装置１の中に複数のデータフローが形成されている場合は、他のデータフローに対して供給することも可能となる。
【００４２】
一方、入力ポートＲＸＰ０、ＲＩＳＣインターフェイスユニット５０および出力ポートＴＸＰ０により、メッセージ５１を特定のＰＵ１０に対してワームホールルーティングにより伝達する第２の伝達回路８２が形成されている。当該ＰＵ１０がメッセージ５１の宛先（最終地）となる場合は、ＲＩＳＣインターフェイスユニット５０は、ＤＭＡをＢＳＵ１８に要求してメッセージ５１を第２の回路領域１２のいずれかのコンポーネントに供給する。メッセージ５１の宛先が伝送経路９により接続された下流のＰＵ１０である場合は、ＲＩＳＣインターフェイスユニット５０は、パケットをスルーして、下流のＰＵ１０に供給する。パケットを受信するときも、スルーするときも、メッセージパケット５１は、複数のフリットと称される塊に分けられて伝送経路９を伝送される。本例では、メッセージパケット５１は３２ビットを単位とする可変長であり、３２ビットのフリットに分けられて伝送経路９を伝送される。
【００４３】
したがって、メッセージパケットの全てをバッファリングする必要はなく、メッセージパケット５１を受信およびスルーするために第２の伝送回路８２に設けられたＦＩＦＯ６４、５５、５８、７４は全て３２ビットになっている。さらに、第２の伝送回路８２に含まれる各々のＦＩＦＯの状態はＭＢＰ信号５２により、ＰＵ１０を通って上流に戻され、ＭＢＰ信号５２だけによりメッセージ５１の転送が制御される。このため、メッセージパケット５１を転送するため機構を、少ないハードウェアリソースにより構成できる。さらに、ＭＢＰ信号５２によりパケットの転送を制御し、パケットの入出力に非同期のＦＩＦＯ６４および７４を用いているので、各ＰＵ１０の動作周波数は任意に設定することが可能である。また、動作周波数の異なるプロセッシングユニット間において、ロスなくメッセージ５１を確実に転送できる。動作周波数を調整する機構は、データ３３を転送する第１の伝送回路８１においても共通している。
【００４４】
図５に、メッセージパケット５１のフォーマットを示してある。メッセージパケット５１は、ヘッダー８５とメッセージデータ８６を含んでおり、最小３ワード、最大６５５３８ワードの可変長である。ヘッダー８５のフィールド８５ａはバージョンコードに使用され、フィールド８５ｂは、ヘッダー８５およびそれに続くメッセージデータ８６の暗号化の有無と、必要であればデコード用のキーを示すために使用される。ヘッダー８５の情報が暗号化されている場合は、ＲＩＳＣインターフェイスユニット５０のパケットプロセッサ５６がヘッダー情報をデコードし、パケットの送信先を決定する。メッセージデータ８６は、パケットプロセッサ５６またはＲＩＳＣ１３によりデコードされる。パケットプロセッサ５６によりメッセージパケット５１を新たに生成する場合は、パケットプロセッサ５６がヘッダー情報８５およびメッセージデータ８６を暗号化する。メッセージデータ８６はＲＩＳＣ１３により暗号化されたものをパケットプロセッサ５６に送ることも可能である。
【００４５】
フィールド８５ｃは、リソース排他制御用のセマフォパケットかノーマルパケットであるかを示すために用いられる。フィールド８５ｄは、応答パケットであるか否かを示すために用いられる。フィールド８５ｅは、書き込み用のメッセージか、リード用のメッセージかを示すために用いられる。フィールド８５ｆは、送信先のＰＵ１０の識別情報を示すために用いられる。各々のＰＵ１０がチップ化されている場合にはチップＩＤがセットされる。また、各々のＰＵ１０が同一チップ内に作りこまれている場合は、ＰＵ１０を絶対的あるいは相対的に識別するためのユニット番号がデータフローを形成する際にセットされる。パケットプロセッサ５６は、ヘッダー８５に含まれる送信先の識別情報により、メッセージパケット５１をスルーするか、受信するかを決定する。
【００４６】
フィールド８５ｇは、送信元のＰＵ１０を識別する情報を示すために用いられる。受信したメッセージ５１が応答を求めるものである場合は、パケットプロセッサ５６が送信元のＰＵ１０を送信先としたメッセージパケット５１を生成して発信する。フィールド８５ｈは、可変長のメッセージパケット５１の長さを示すために用いられる。ワームホールルーティングによりメッセージ５１を転送するために、パケットプロセッサ５６は、ヘッダー８５で示された長さのパケットの送受信が終了するまで、第２の伝送回路８２の状態を維持する。これは、メッセージパケット５１を伝送するために伝送経路９を占有するということではなく、伝送経路９をデータ３３と時分割で使用しながら、メッセージパケット５１の全体を受信するか、スルーするかの処理を行う。
【００４７】
フィールド８５ｉは、メッセージデータ８６の送信先のＰＵ１０において、メッセージデータを読み出す、あるいは書き込むアドレスを示すために用いられる。メッセージデータ８６として、マトリクス１１を再構成するためのコンフィグレーション情報を送信する場合は、コンフィグレーション情報を書き込むＤＲＡＭ１４のアドレスを指定することができる。また、本例のＰＵ１０は、マトリクス１１の健全性をチェックする診断ユニット（ＤＵ）９０を備えており、マスタとなるＰＵ１０ａは、ＤＵ９０の診断結果を得るためにＤＵ９０の診断データを読み出すアドレスを指定したメッセージを送信することができる。
【００４８】
フィールド８５ｊは、ヘッダー情報８５に対してのＣＲＣを指定するために用いられる。これにより、メッセージ通信の信頼性を向上できる。この他にもヘッダー情報８５として種々の情報を含めることができる。例えば、伝送経路９により接続された全てのＰＵ１０に対して書き込むためのブロードキャストパケットであることを示したり、パケットプロセッサ５６などをイニシャライズするためのパケットであることを示し、パケットプロセッサ５６が解釈できるようにすることにより、マルチプロセッサ環境における多彩な通信処理を、ＲＩＳＣ１３に負荷をかけることなく実現できる。
【００４９】
パケットプロセッサ５６は、ワームホールルーティング方式でメッセージパケット５１を転送する。パケットプロセッサ５６は、メッセージパケット５１の最初のフリット、すなわち、ヘッダー情報８５の最初の３２ビットのデータ（ヘッダーオフセット０）を取得すると、フィールド８５ｆによりメッセージパケット５１の宛先を判断する。自己のＰＵ１０を宛先としていないメッセージパケットであれば、出力ポートＴＸＰ０などの出力側の条件が整ったタイミングで最初のフリットを出力する。パケットプロセッサ５６は、ヘッダーオフセット０を出力すると、次の３２ビットのフリット（ヘッダーオフセット１）を取得し、出力側が空けば、それを出力する。パケットプロセッサ５６は、フィールド８５ｈにより指定されたデータ長だけ、フリットを送出する処理を繰り返し、メッセージパケット５１を下流のＰＵ１０に送出する。そして、ＰＵ１０においては、出力側の条件が整ったことはバックプレッシャー信号ＭＢＰで上流に戻され、ＭＢＰ信号だけで管理できる。
【００５０】
従来の蓄積交換型のルーティングでは、パケットは出力側が空になるまで送出側のノードに蓄積され、まとめて次のノードに送られる。これに対し、ワームホールルーティング方式では、最初のフリットが前に移動すると、次のフリットが前に移動するというように芋づる式あるいは数珠繋ぎでフリットに分割されたメッセージパケットが次々と送出される。このため、パケットを転送する各ＰＵ１０は、フリットを蓄積できる程度のバッファを持つだけで、大量のメッセージパケットであっても、可変長のメッセージパケットであっても所望のＰＵ１０へ送出できる。
【００５１】
また、ワームホールルーティング方式では、送信元のＰＵ１０から送信先のＰＵ１０までの経路は、その送信先に宛てたメッセージパケット５１を転送するためにメッセージの転送条件が維持されなければならず、他のメッセージパケット５１を同じ経路の同じ区間内を通して送出できない。しかしながら、同じ経路であっても他のＰＵ１０の間では、並行してメッセージパケットを交換することができる。さらに、ワームホールルーティング方式では、最初のフリットが目的のＰＵ１０に到達するまでに要する時間が通信を開始するまでに要するオーバヘッドとなるが、その後のフリットは連続的に到達する。したがって、目的のＰＵ１０までの経路が非常に長い場合を除き、そのオーバヘッドは、パケットを全てバッファリングする処理に比較すれば、ワームホールルーティング方式は、共有バスを介してメッセージを送信するよりは通信時間は短い。さらにパケットのバッファリングを繰り返すような通信方式に比較すると、通信速度の差は広がり、ワームホールルーティング方式は、簡易な構成で、メッセージを安全に、そして高速に送信できる方法である。
【００５２】
また、チャンネルを多重化していない単純なワームホールルーティング方式では、１つの伝送経路を複数のメッセージパケットでインタリーブすることはできない。しかしながら、伝送経路を変えずに、隣接するＰＵ１０に単純に伝送する、宛先が固定されたデータあるいはパケットを時分割で伝送することは問題がない。さらに、送受信側のバッファをメッセージとデータとで独立して設けることにより、メッセージおよびデータを独立した制御で転送することが可能となる。このため、本発明においては、１つの伝送経路を利用して、極めて簡易な構成でメッセージとデータとを所望のプロセッシングユニットに伝送するアーキテクチャを提供している。
【００５３】
したがって、本例で説明した通信方式は、次のような特徴を備えたワームホールルーティングであるということができるかもしれない。まず、通信可能なメッセージは０−６４ｋワードの可変長であり、１ワードを最小単位（フリット）として１クロックサイクルで伝達される。そして、フリット間に泡、すなわち時間的な空白があってもかまわず、その泡に他の情報（データ）を伝送することが可能であり、時分割によるメッセージとデータとの同時送信を可能にしている。したがって、単純なハードウェアでパケット処理を実現できるため、ラインスピードにてパケット処理が可能となる。そして、メッセージとデータとを時分割多重により同時通信できると共に、双方がぶつかったときの優先順位の設定も可能である。例えば、コントロールビット発生器７２により優先制御することができる。
【００５４】
上述したルーティング方式に対し、ハードウェアリソースは増加するが、メッセージのデッドロックを防止する構成を追加することは可能である。たとえば、ＦＩＦＯの組数を増やして仮想チャンネルを設定したり、転送が渋滞しているパケットを退避させるバッファを設けたりすることができる。
【００５５】
図６に、ＰＵ１０において、伝送経路９により接続された上流のＰＵ１０からデータを受信する処理の概要を示してある。ステップ１０１で、入力ポートＲＸＰ０のコントロールビットデコーダ６２は、共に供給されたコントロールビットにより、入力されたデータが、マトリクス１１で処理するデータ３３かメッセージ５１であるかを判定する。データである場合は、ステップ１０２において第１の伝送回路８１のシステムがデータ３３を受信し、ステップ１０３においてデータをマトリクス１１の再構成された専用回路で処理し、ステップ１０４において処理されたデータ３３を下流のＰＵ１０に送る。
【００５６】
ステップ１０１において、入力されたデータがメッセージ５１である場合は、第２の伝送回路８２のシステムがメッセージ５１を受信し、ステップ１０５で、メッセージパケット５１のヘッダー情報８５により、自己のプロセッサ宛のメッセージであるか否かを判断する。自己のプロセッサ宛のメッセージでない場合は、ステップ１０６で、フリットに分割されて伝送されているメッセージパケット５１を次々と下流のプロセッシングユニットに送出する。
【００５７】
自己のプロセッサ宛のメッセージ５１の場合は、ステップ１０７で暗号化されたメッセージ５１をデコードし、ステップ１０８で、書き込み用のメッセージか、読み出し用のメッセージかを判断する。読み出し用のメッセージの場合、例えば、ステップ１０９で自己のプロセッサ１０を診断してマスタに報告するように求められたメッセージであると判断されると、ステップ１１０で、診断ユニットＤＵ９０によりマトリクス１１の処理状況および健全性を診断する。マトリクス１１のハードウェア的な異常は自己診断回路を組み込むことにより把握できる。マトリクス１１に再構成されている回路の構成の異常は、コンフィグレーションデータのエラーを検出することで把握できる。また、マトリクス１１におけるエレメントの使用情報によりマトリクス１１の稼動状況を把握でき、障害情報を蓄積しておくことにより異常の発生頻度も把握できる。ステップ１１１において、ＤＵ９０あるいはＲＩＳＣ１３は、ＤＵ９０が取得した診断結果をメッセージパケット５１に纏めて、先のメッセージの送出元に宛て出力する。その他の読出し用のメッセージであれば、ステップ１１６で指定された処理を行い、その結果をメッセージの送信元に宛てて出力する。
【００５８】
メッセージ５１により伝送される書き込み情報の１つはマトリクス１１を再構成するための情報である。ステップ１１２で、メッセージ５１に含まれている情報がマトリクス１１の少なくとも一部を再構成するためのコンフィグレーションデータであると判断すると、ステップ１１３で、コンフィグレーションデータをＤＲＡＭ１４に書き込む。ステップ１１４で、ＲＩＳＣ１３は、回路を再構成する対象となる各々のエレメント２１、スイッチングユニット２３に対してコンフィグレーションデータを送り、マトリクス１１に形成されている回路を再構成する。例えば、上記のステップにより得られたスレーブとなるＰＵ１０ｂの一部あるいはすべてに障害があり、ＰＵ１０ｃの一部あるいは全部が予備領域となっている場合を想定する。マスターとなるＰＵ１０ａは、ＰＵ１０ｂに対して障害のある回路領域をバイパスするようなコンフィグレーションデータをメッセージ５１により送り、ＰＵ１０ｃに対して、ＰＵ１０ｂの障害のある部分を形成していたコンフィグレーションデータをメッセージ５１により送る。これにより、ＰＵ１０ｂの障害個所をＰＵ１０ｃにより代替することができ、データ処理装置１としては支障なく所望の処理を継続して実行できる。したがって、本例のデータ処理装置１は、リコンフィグラブルプロセッサのマルチチップ環境においてＯＡＭ＆Ｐ（Operation, Administration, Maintenance, and Provisioning）方式を実装していると言うことができる。
【００５９】
メッセージ５１により伝送される内容は、コンフィグレーションデータに限定されるものではない。その場合は、ステップ１１５において、メッセージ５１に含まれているコマンドあるいは命令に従った処理が行われる。さらに、マトリクス１１により処理するデータをメッセージ５１でパケット化して所望のＰＵ１０に伝送することも可能であり、伝送経路９により接続されたＰＵ１０をバイパスして特定のＰＵ１０にデータを転送することも可能である。
【００６０】
図７に、ＰＵ１０において、伝送経路９により接続された下流のＰＵ１０に対してデータを送信する処理の概要を示してある。送信する処理は非常に簡易であり、ステップ１２０において、ＤＢＰ信号３５により下流にデータ３３が送出可能と判断されれば、ステップ１２１でデータ３３を送出する。また、ステップ１２２において、ＭＢＰ信号５２により下流にメッセージ５１が送出可能と判断されれば、ステップ１２３でメッセージ５１を送出する。本例のデータ処理装置１においては、図１に示したように、メッセージ５１を伝送する回路９Ａがリング状に接続されている。したがって、一方向（下流）にメッセージ５１を送出することにより、伝送経路９により接続された全てのＰＵ１０ａ〜１０ｄの間でメッセージ５１を交換することができる。例えば、ＰＵ１０ａをマスターとし、メッセージ５１がスレーブのＰＵ１０ｃに伝達され、その応答メッセージがＰＵ１０ｃからマスターのＰＵ１０ａに戻されるときも、ＰＵ１０ｃは下流に応答メッセージを流すだけで良い。したがって、データ処理装置１のようにＰＵ１０がリング状に接続されている場合は、ワームホールルーティングによりメッセージを送る場合に、メッセージを送出する方向の判断も不要となり、メッセージを転送する機構は極めて簡易なものとなる。また、チップ（ＰＵ）間の接続が一筆書きになるので、チップ間接続を行うためのピン数を節約できる。さらに、本例のＰＵにおいては、チップ間インターフェイスとして非同期ＦＩＦＯ６３、６４、７３および７４を使用しているので、任意の周波数で作動しているチップ間であっても通信が可能である。
【００６１】
図８に、異なるデータ処理装置２の概要を示してある。このデータ処理装置２は、６行３列に配置された１８個のＰＵ２０１〜２５３と、これらのＰＵ２０１〜２５３をフレキシブルに接続可能な接続網３とを備えている。ＰＵ２０１、２１１、２２１、２１２、２２、２３２、２４１、２５２は、配線経路７により直列に接続され、複数のＰＵからなる処理経路Ａが構成されている。また、ＰＵ２０２、２１３、２２３、２３３、２４２、２４３、２５３は、配線経路８により一部が並列となるように接続され、処理経路Ｂが構成されている。ＰＵ２０１〜２５３のそれぞれは、ＰＵ１０と同様に、再構成可能な第１の回路領域（マトリクス）１１と、マトリクス１１を制御する機能を備えた第２の回路領域１２とを備えており、また、マトリクス１１で処理するデータをシリアルに転送可能な第１の伝送機能８１と、ワームホールルーティングによりメッセージを転送可能な第２の伝送機能８２とを備えている。さらに、本例においては、第２の伝送機能８２は、メッセージパケット５１の宛先により、メッセージを送出する方向を設定することができる。
【００６２】
処理経路Ａにおいては、ＰＵ２０１からＰＵ２２１に伝送回路７を用いてメッセージ５１とデータ３３とを時分割で送信することができ、それと並列に、ＰＵ２２２とＰＵ２１２との間でメッセージ５１とデータ３３とを時分割で交換することができる。さらに、処理経路Ａを構成するＰＵ２３２から、処理経路Ａに含まれていないＰＵ２５１にもメッセージを送出することは可能であり、そのために伝送経路７を使うことができる。例えば、処理経路ＡのＰＵ２５２に障害が見つかったとき、マスターとして機能しているＰＵ２０１は、処理経路Ａの周辺のＰＵにメッセージを送出し、ＰＵ２５２の代わりに利用できるＰＵを探すことができる。ＰＵ２５１にメッセージを送出し、ＰＵ２５１から応答メッセージを得たマスターＰＵ２０１は、メッセージパケット５１によりコンフィグレーションデータをＰＵ２４１，２５２および２５１に送り、ＰＵ２５２を処理経路Ａから切り離し、ＰＵ２５１を処理経路Ａに接続して処理を継続できる。
【００６３】
処理経路Ｂのように複数のＰＵ２４２および２４３が並列に接続されるケースもある。このような場合は、メッセージ５１のルーティングの優先度を設定したり、最小限のＰＵおよび配線経路を介してメッセージをルーティングする機能を設けておくことなどにより解決できる。
【００６４】
マトリクス１１により処理するデータ３３を伝送する経路と、メッセージ５１を伝送する経路とを独立して形成することも可能であるが、完全に独立して形成しようとすれば、独立した伝送路と、独立した伝送路を形成するための入出力機構が必要になり、個々のＰＵおよび接続網を形成するハードウェアリソースは大きくなる。共通の伝送路を用いて、データ３３とメッセージ５１とで独立した伝送路を時分割で構成することも可能ではあるかもしれないが、ワームホールルーティングによりメッセージを伝送するためには、伝送路を確保しておく必要があるので、その間、データの交換が停止してしまいデータ処理装置の能力は低下する。これに対し、データ３３とメッセージ５１との伝送路を共通にすれば、あるいは可能な範囲で共通にすることにより、共通の伝送路を利用してデータ３３とメッセージ５１とを時分割で支障なく伝送することができる。また、メッセージを交換するＰＵは、原則として同一の処理経路に属しており、その処理経路を構成する伝送回路を利用してメッセージを伝送することは、メッセージのルーティングに費やされる処理時間および機能を省けることを意味する。したがって、少ないリソースで高速にメッセージを伝送可能なデータ処理装置を本発明により提供できる。
【００６５】
なお、以上では、電気信号を媒体としてデータあるいはメッセージを伝送する半導体処理装置（ＬＳＩ）を例に本発明を説明しているが、光や、その他の伝送媒体を用いたデータ処理装置においても本発明は適用可能である。マルチプロセッシングユニットの環境を構成するＰＵが、チップの単位で提供される場合は、プリント基板などのアッセンブリ用の機材を用いてデータ処理装置を構成することができる。また、複数のＰＵが半導体集積回路技術を用いて１つのチップに作り込まれ、ＬＳＩ化されたデータ処理装置を提供することも可能である。
【図面の簡単な説明】
【００６６】
【図１】データ処理装置の概要を示す図である。
【図２】プロセッシングユニットの概要を示す図である。
【図３】マトリクスの概要を示す図である。
【図４】データおよびメッセージの入出力の概要を示す図である。
【図５】メッセージパケットの概要を示す図である。
【図６】データおよびメッセージを入力する処理の概要を示す図である。
【図７】データおよびメッセージを出力する処理の概要を示す図である。
【図８】異なるデータ処理装置の概要を示す図である。
【符号の説明】
【００６７】
１、２    データ処理装置
１０    プロセッシングユニット（ＰＵ）
１１    マトリクス
８１    第１の伝送回路
８２    第２の伝送回路
【図１】
2005157653.tif 000003
【図２】
2005157653.tif 000004
【図３】
2005157653.tif 000005
【図４】
2005157653.tif 000006
【図５】
2005157653.tif 000007
【図６】
2005157653.tif 000008
【図７】
2005157653.tif 000009
【図８】
2005157653.tif 000010