(57)【特許請求の範囲】
【請求項１】
並列処理の可能な並列処理タスクを実行する上位処理ユニットと、
接続線を介して前記上位処理ユニットに接続する複数の下位処理ユニットとを備え、
前記上位処理ユニットは、前記タスクを分割して前記下位処理ユニットに割り当てると共に、前記分割タスクの実行に必要なデータを夫々前記下位処理ユニットに転送し、
前記下位処理ユニットは、割り当てられた前記分割タスクを実行し、実行が完了するとその実行の完了を前記上位処理ユニットに通知し、
前記上位処理ユニットは、すべての前記下位処理ユニットからその割り当てられた前記分割タスクの完了の通知を受け取ると、前記並列処理タスクの処理を完了し、
前記上位処理ユニット群を同期させるための周波数よりも、前記下位処理ユニット群を同期させるための周波数の方が高く、前記上位処理ユニットと下位処理ユニットとの間のデータ転送にＤＭＡが用いられていることを特徴とする階層構造をもつ並列計算機。
【請求項２】
並列処理の可能な並列処理タスクを実行する上位処理ユニットと、
第１の接続線を介して前記上位処理ユニットに接続する複数の中間処理ユニットと、
前記複数の中間処理ユニットの夫々に、第２の接続線を介して接続する複数の下位処理ユニットとを備え、
前記上位処理ユニットは、前記タスクを複数の第１の分割タスクへ分割して前記中間処理ユニットに割り当てると共に、前記第１の分割タスクの実行に必要なデータをＤＭＡにより夫々前記中間処理ユニットに転送し、
前記中間処理ユニットは、前記上位処理ユニットよりも高い周波数で動作し、前記第１の分割タスクを複数の第２の分割タスクへ分割して前記下位処理ユニットに割り当てると共に、前記第２の分割タスクの実行に必要なデータを夫々前記下位処理ユニットにＤＭＡにより転送し、
前記下位処理ユニットは、割り当てられた前記第２の分割タスクを、前記中間処理ユニットよりも高い周波数で実行し、実行が完了するとその実行の完了を前記中間処理ユニットに通知し、
前記中間処理ユニットは、割り当てられた前記第１の分割タスクがすべて完了するとその実行の完了を前記上位処理ユニットに通知し、
前記上位処理ユニットは、すべての前記中間処理ユニットからその割り当てられた前記第１の分割タスクの完了の通知を受け取ると、前記並列処理タスクの処理を完了することを特徴とする階層構造をもつ並列計算機。
【請求項３】
前記接続線に接続されたユニット群は、前記上位処理ユニットより物理的に狭い領域に局在し、それぞれのユニットを接続する信号線は小さい配線容量を持っていることを特徴とする請求項１記載の階層構造をもつ並列計算機。
【請求項４】
前記上位処理ユニット及び前記下位処理ユニットは、夫々プロセッサ及び前記プロセッサに接続されたメモリを備えていることを特徴とする請求項３に記載の階層構造をもつ並列計算機。
【請求項５】
前記上位処理ユニットは、前記下位処理ユニットから通知された前記分割タスクの実行完了を、ｓｔａｔｕｓ入力信号線を介して受け取ることを特徴とする請求項３に記載の階層構造をもつ並列計算機。
【請求項６】
前記下位処理ユニットは、夫々プロセッサ及び前記プロセッサに接続されたメモリ及びＤＭＡコントローラを備えていることを特徴とする請求項３に記載の階層構造をもつ並列計算機。
【請求項７】
前記プロセッサと前記ＤＭＡコントローラは、コプロセッサ接続されていることを特徴とする請求項６に記載の階層構造をもつ並列計算機。
【請求項８】
前記上位処理ユニットは、前記分割タスクの実行に必要なデータを圧縮して、夫々前記下位処理ユニットに転送することを特徴とする請求項３に記載の階層構造をもつ並列計算機。
【請求項９】
前記中間処理ユニットは、ＤＭＡ転送処理ユニットであることを特徴とする請求項２に記載の階層構造をもつ並列計算機。
【請求項１０】
前記上位処理ユニット、前記下位処理ユニットのそれぞれは、独立した半導体チップ上に形成され、前記半導体チップは、全体として１つのマルチチップモジュールとして実装されていることを特徴とする請求項１記載の階層構造をもつ並列計算機。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、階層構造をもつ共有バス型並列計算機に関し、特に、膨大な計算量が求められる画像処理や、コンピュータ・エンタテインメントや、科学技術計算の実行に適した共有バス型並列計算機に関するものである。
【０００２】
【従来の技術】
従来の共有バス型並列計算機は、複数の半導体を用いて、基板上の一つのバスに複数のプロセッサを配置していた。そこでは、バスのトラフィックを軽減するためにバスを階層化した場合には、各階層にキャッシュメモリを置いてさらにトラフィックを減らすという方法を用いている。
【０００３】
一般に、マルチプロセシング・コンピュータ・システムはコンピューティング・タスクを実行する２つ又はそれ以上のプロセッサを含んでいる。そこでは、特定のコンピューティング・タスクが１つのプロセッサ上で実行されている間に、他のプロセッサが無関係のコンピューティング・タスクを実行する。また、特定のコンピューティング・タスクの複数の構成要素をマルチプロセッサに分配して全体としてコンピューティング・タスクの実行時間を短縮する。一般にプロセッサは１つ以上のオペランドについて演算し、結果を生成するように構成された装置であり、演算はプロセッサによって実行される命令に応答して行われる。
【０００４】
市販のマルチプロセシング・コンピュータ・システムにおける一般的構造は、対称型マルチ・プロセッサ（ＳＭＰ）構造である。典型的には、ＳＭＰコンピュータ・システムはキャッシュ階層を介して共用バスに結合された複数のプロセッサを有する。更にこのバスにはシステム内のプロセッサ間で共用されるメモリが結合される。メモリ内の特定のメモリ位置に対するアクセスは、他のメモリ位置に対するアクセスと同様の時間で行われる。メモリ内の各位置は均一にアクセスされるため、この構造は均一メモリ構造（ＵＭＡ）と呼ばれる。
【０００５】
プロセッサはしばしば内部キャッシュと共に構成される。ＳＭＰコンピュータ・システムでは、一般に１つ以上のキャッシュがプロセッサと共用バスとの間にキャッシュ階層型に構成される。特定のメイン・メモリ・アドレスに存在するデータの複数のコピーがこれらキャッシュにストアされる。どの時点においても特定のアドレスが正確に１つのデータ値をストアしているという共用メモリ・モデルを維持するために、共用バスのコンピュータ・システムはキャッシュ・コヒーレンシーを採用している。
【０００６】
一般に、特定のメモリ・アドレスにストアされているデータに対する演算の効果がキャッシュ階層内のデータの各コピーに反映されていれば、演算はコヒーレントである。例えば、特定のメモリ・アドレスにストアされているデータが更新されたとき、その更新は、前のデータのコピーをストアしているキャッシュに供給される。あるいは、前のデータのコピーはキャッシュ内で無効化され、その特定のメモリ・アドレスに対する次のアクセスでは更新されたコピーがメイン・メモリから転送されるようにする。共用バス・システムでは、スヌープ・バス・プロトコルが一般に用いられる。共用バス上で実行される各コヒーレント・トランザクションは、キャッシュ内のデータと対照して検査（スヌープ）される。影響を受けたデータのコピーが見つかると、そのデータをストアしているキャッシュ・ラインの状態はそのコヒーレント・トランザクションに応答して更新される。
【０００７】
【発明が解決しようとする課題】
しかし、共用バス構造は、マルチプロセシング・コンピュータ・システムにおいてその有効性を制約するいくつかの欠点を有する。即ち、バスには、利用することができるピーク帯域幅（バス上で転送される１秒当たりのバイト数）が存在するが、バスに対して追加のプロセッサが接続されると、そのプロセッサにデータ及び命令を供給するのに要する帯域幅はこのピーク帯域幅を超えてしまう。必要とされるプロセッサの帯域幅が利用可能なバス帯域幅を超えると、いくつかのプロセッサは帯域幅が利用可能になるのを待たされることになり、コンピュータ・システムの性能は低下される。一般に、一つのバス上に接続可能なプロセッサ数は３２個くらいが限度である。
【０００８】
更に、多くのプロセッサを共用バスに追加すると、バスの容量負荷が増大し、バスの物理的長さも増大する。容量負荷が増大し、バスの長さが増大すると、バス上の信号伝搬遅延が増大する。伝搬遅延の増大によってトランザクションの実行時間は長くなる。従って、多くのプロセッサを追加するとバスのピーク帯域幅は減少する。
【０００９】
これらの問題はますます増大する動作周波数及びプロセッサの性能向上によって更に増大される。高周波化及びより進歩したプロセッサのマイクロ・アーキテクチャによって、同一のプロセッサ数に対しても、前のプロセッサ世代よりも高い帯域幅が要求されることになる。従って、マルチプロセシング・コンピュータ・システムに対して以前十分な帯域幅を提供していたバスは、高性能のプロセッサを用いた同様のコンピュータ・システムに対しては不十分となる。
【００１０】
また、共有バス型以外のマルチプロセッサシステムでは、プログラミングモデルやデバッグが難しくなるという問題点がある。
【００１１】
必要なのは、マイクロプロセッサ及び周辺回路が高性能化しても、また、接続するプロセッサの必要数が増加しても、破綻をきたさない、これまでにない新しいマルチプロセッサ・システムのアーキテクチャーである。
【００１２】
本発明の目的は、最先端の技術による高速プロセッサを、所望の個数並列に動作させることが可能な共有バス型並列計算機を提供することである。
【００１３】
【課題を解決するための手段】
前記課題を解決するために、本発明の階層構造をもつ並列計算機は、並列処理の可能な並列処理タスクを実行する上位処理ユニットと、接続線を介して前記上位処理ユニットに接続する複数の下位処理ユニットとを備え、前記上位処理ユニットは、前記タスクを分割して前記下位処理ユニットに割り当てると共に、前記分割タスクの実行に必要なデータを夫々前記下位処理ユニットに転送し、前記下位処理ユニットは、割り当てられた前記分割タスクを実行し、実行が完了するとその実行の完了を前記上位処理ユニットに通知し、前記上位処理ユニットは、すべての前記下位処理ユニットからその割り当てられた前記分割タスクの完了の通知を受け取ると、前記並列処理タスクの処理を完了することを特徴とするものである。
【００１４】
また、本発明の階層構造をもつ並列計算機は、並列処理の可能な並列処理タスクを実行する上位処理ユニットと、第１の接続線を介して前記上位処理ユニットに接続する複数の中間処理ユニットと、前記複数の中間処理ユニットの夫々に、第２の接続線を介して接続する複数の下位処理ユニットとを備え、前記上位処理ユニットは、前記タスクを複数の第１の分割タスクへ分割して前記中間処理ユニットに割り当てると共に、前記第１の分割タスクの実行に必要なデータを夫々前記中間処理ユニットに転送し、前記中間処理ユニットは、前記第１の分割タスクを複数の第２の分割タスクへ分割して前記下位処理ユニットに割り当てると共に、前記第２の分割タスクの実行に必要なデータを夫々前記下位処理ユニットに転送し、前記下位処理ユニットは、割り当てられた前記第２の分割タスクを実行し、実行が完了するとその実行の完了を前記中間処理ユニットに通知し、前記中間処理ユニットは、割り当てられた前記第１の分割タスクがすべて完了するとその実行の完了を前記上位処理ユニットに通知し、前記上位処理ユニットは、すべての前記中間処理ユニットからその割り当てられた前記第１の分割タスクの完了の通知を受け取ると、前記並列処理タスクの処理を完了することを特徴とするものである。
【００１５】
また、本発明は、前記接続線に接続されたユニット群が、前記上位処理ユニットより物理的に狭い領域に局在し、それぞれのユニットを接続する信号線は小さい配線容量を持っており、前記上位処理ユニット群を同期させるための周波数よりも、前記下位処理ユニット群を同期させるための周波数の方が高いことを特徴とするものである。
【００１６】
また、本発明は、前記上位処理ユニット及び前記下位処理ユニットが、夫々プロセッサ及び前記プロセッサに接続されたメモリを備えていることを特徴とするものである。
【００１７】
また、本発明は、前記上位処理ユニットが、前記下位処理ユニットから通知された前記分割タスクの実行完了を、ｓｔａｔｕｓ入力信号線を介して受け取ることを特徴とするものである。
【００１８】
また、本発明は、前記下位処理ユニットが、夫々プロセッサ及び前記プロセッサに接続されたメモリ及びＤＭＡコントローラを備えていることを特徴とするものである。
【００１９】
また、本発明は、前記プロセッサと前記ＤＭＡコントローラが、コプロセッサ接続されていることを特徴とするものである。
【００２０】
また、本発明は、前記上位処理ユニットが、前記分割タスクの実行に必要なデータを圧縮して、夫々前記下位処理ユニットに転送することを特徴とするものである。
【００２１】
また、本発明は、前記下位処理ユニットが、ＤＭＡ転送処理ユニットであることを特徴とするものである。
【００２２】
また、本発明は、前記上位処理ユニット、前記下位処理ユニットのそれぞれが、
独立した半導体チップ上に形成され、前記半導体チップが、全体として１つのマルチチップモジュールとして実装されていることを特徴とするものである。
【００２３】
典型的な実施例では、階層型共有バスマルチプロセッサシステムの中間階層の処理ユニットは、通常のプロセッサと同等のプログラマブル能力を持つプロセッサと、命令メモリと、データメモリを備えている。そこでは、下位プロセッサからのｓｔａｔｕｓ信号を受け、大容量の転送データ用メモリを持つＤＭＡコントローラによって、転送データの圧縮・展開、プログラマブルな負荷分散、下位のプロセッサの稼働状況に応じた負荷分散が行われる。
【００２４】
【発明の実施の形態】
図１は、本発明の第１の実施形態による階層バス型マルチプロセッサシステムの全体像を示すブロックダイアグラムである。この階層バス型マルチプロセッサシステムは、１ＧバイトのＧＨＱ用メインメモリ１１１と、ＧＨＱプロセッサ１１３と、後述するように夫々複数のプロセッサを備えた４つのＳＱＵＡＤ処理ユニット１２０とからなっている。このＳＱＵＡＤ処理ユニット１２０は、マルチチップモジュールに実装されている。これらＧＨＱプロセッサ１１３と４つのＳＱＵＡＤ処理ユニット１２０及びＧＨＱ用メインメモリ１１１は、第１レベルバスで接続されている。
【００２５】
以上の５つの要素は、すなわち、ＧＨＱ用メインメモリ１１１を形成するメモリモジュールと、ＧＨＱプロセッサ１１３及び４つのマルチチップモジュールは、前記第１レベルバスが形成されているプリント配線板１０１上で相互に接続される。
【００２６】
一方、４つのＳＱＵＡＤ処理ユニット１２０は、マルチチップモジュールとして実装される。マルチチップモジュール（ＭＣＭ）は、通常の単一チップパッケージのサブシステム内に組み込まれる複数のパッケージされていない集積回路からなる。ある型のマルチチップモジュールは、基板と、薄膜相互接続構造体と、この薄膜相互接続構造体上に取り付けられ且つエポキシパッシベーション材料にて包囲された複数の集積回路とを含んでいる。
【００２７】
ＭＣＭは、ユーザに対して、従来のメッキスルーホールおよびサーフェイスマウント技法によるプリント配線板よりも、より高い周波数性能を実現する、すなわち、基板上にマルチチップを密集させてパッケージングすることにより、配線容量と共に伝播距離が減少させられ、このため、一般的に、性能の向上が可能となる。
【００２８】
図２に本実施例で用いられるマルチチップモジュール（ＭＣＭ）を示す。ＭＣＭは、多数の層１０２Ａ〜１０２Ｅから構成される共通基板上に取り付けられたＩＣチップ１０１a〜１０１ｆ間で信号を結合するために高ワイヤ密度を必要とする。なお、所与の設計により必要とされる特定の製造技術及び配線密度に適応させるよう任意の数の層を用いることが可能である。
【００２９】
ここでは、ＩＣチップ１０１ｃ及びＩＣチップ１０１ｄは１チップのＤＭＡメモリモジュール及びＳＱＵＡＤプロセッサであり、ＩＣチップ１０１ａ、ＩＣチップ１０１ｂ、ＩＣチップ１０１ｅ、ＩＣチップ１０１ｆは、夫々ＦＬＩＧＨＴ処理ユニット１３０のチップである。多数の層１０２Ａ〜１０２Ｅに、共有バスが形成されている。
【００３０】
図１に示す実施例では、特開平１０−５６０３６に記載されているような従来のマルチレベルセラミック基板技術が用いられるが、それと同等の任意の技術を用いることも可能である。図１の場合、層１０２Ａ〜１０２Ｊは、それぞれ、パターン化メタライゼーション層が形成された絶縁セラミック材料から構成される。層１０２Ａ〜１０２Ｄは、それぞれ、一部が除去されて、多層キャビティを形成しており、各層１０２Ｂ〜１０２Ｅにおけるパターン化メタライゼーション層の一部が該キャビティの周辺で露出している。層１０２Ｅの露出部分は、チップ取付面を形成しており、導電性エポキシ、ハンダ、または同様のチップ取付技術によってＩＣチップ１０１a〜１０１ｆが取り付けられるメタライゼーション接地面によってほぼ被覆されている。
【００３１】
層１０２Ｂ〜１０２Ｄが、それぞれ、ＩＣチップ１０１a〜１０１ｆからＭＣＭ入出力（Ｉ／Ｏ）ピンまたは端子（図示せず）にデジタルデータ信号を伝送する信号配線を有している。層１０２Ａは、下方に位置する層に対する化学的、機械的、及び電気的な保護を行うと共にパッケージキャップのための取付面として働く正面である。利用可能なＭＣＭ技術を用いて、層１０２Ｂ〜１０２Ｄにプリント配線、Ｉ／Ｏピン及び端子を形成し、これにより、ＭＣＭ１００を外部回路要素と結合させることが可能となる。ワイヤボンドは、各ＩＣチップ１０１a〜１０１ｆのエッジの１つに形成されたボンドパッドを、層１０２Ｂ〜１０２Ｄの選択された導体またはボンドパッドに結合させる。
【００３２】
このような構成をとることにより、第２レベルバスのバンド幅を、上位のプリント配線板に比較して格段に広くすることが可能となる。同様に、ＦＬＩＧＨＴ処理ユニット１３０内部には、複数のＦＩＧＨＴＥＲ処理ユニット１４０が実装されているが、そこではＭＣＭ構造よりも更に高速化に有利な単一シリコン基板上の接続となっているために、更に広いバンド幅が達成される。このように、本発明では、下の階層程、処理ユニットの実装の局在化がすすみ、動作周波数がより高周波となるという特徴がある。
【００３３】
システム全体の統括を行なっているのが最上位のＧＨＱ処理ユニット１１０であり、ここでは１チップのＧＨＱプロセッサ１１３及びＧＨＱ用メインメモリ１１１を含んでいる。この図では階層は４段、すなわち、ＧＨＱ処理ユニット１１０，ＳＱＵＡＤ処理ユニット１２０、ＦＬＩＧＨＴ処理ユニット１３０，ＦＩＧＨＴＥＲ処理ユニット１４０となっている。そして、ＧＨＱ処理ユニット１１０の直下には、ＦＬＩＧＨＴ処理ユニット１３０及びＦＩＧＨＴＥＲ処理ユニット１４０を実装する４つのＳＱＵＡＤ処理ユニット１２０が接続されている。このＧＨＱ処理ユニット１１０と、ＳＱＵＡＤ処理ユニット１２０及びＧＨＱ用メインメモリ１１１は、３２ビット幅の第１レベルバスで接続されており、全体のバンド幅は２５６Ｍｂｙｔｅ／ｓｅｃ（周波数６６ＭＨｚ）となっている。
【００３４】
各ＳＱＵＡＤ処理ユニット１２０で、ユニット内部の処理全体の統括を行なっているのがＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ１２３であり、ＳＱＵＡＤ用命令メモリ１２５及びＳＱＵＡＤ用データメモリ１２７と共に、ＳＱＵＡＤ用ＤＭＡメモリ１２１が接続している。このＳＱＵＡＤ処理ユニット１２０も１チップに集積されている。また、ＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ１２３の直下には、１６個のＦＩＧＨＴＥＲ処理ユニット１４０を統括する４個のＦＬＩＧＨＴ処理ユニット１３０が接続されている。このＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ１２３は、ＦＬＩＧＨＴ処理ユニット１３０と、６４ビット幅の第２レベルバスで接続されており、全体のバンド幅は８００Ｍｂｙｔｅ／ｓｅｃ（周波数１００ＭＨｚ）となっている。
【００３５】
各ＦＬＩＧＨＴ処理ユニット１３０で、ユニット内部の処理全体の統括を行なっているのがＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ１３３であり、ＦＬＩＧＨＴ用命令メモリ１３５及びＦＬＩＧＨＴ用データメモリ１３７と共に、ＦＬＩＧＨＴ用ＤＭＡメモリ１３１が接続している。このＦＬＩＧＨＴ処理ユニット１３０は、ＳＱＵＡＤ処理ユニット１２０のチップに集積されている。また、ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ１３３の直下には、夫々６４ＫbyteのＦＩＧＨＴＥＲ用メモリ１４１を備えた１６個のＦＩＧＨＴＥＲプロセッサ１４３が接続されている。このＦＬＩＧＨＴ処理ユニット１３０とＦＩＧＨＴＥＲプロセッサ１４３は、１２８ビット幅のバスで接続されており、全体のバンド幅は２１２８Ｍｂｙｔｅ／ｓｅｃ（周波数１３３ＭＨｚ）となっている。また、ＦＩＧＨＴＥＲプロセッサ１４３の動作周波数は、５３３ＭＨｚである。
【００３６】
ＧＨＱ処理ユニット１１０は処理する問題を各ＳＱＵＡＤ処理ユニット１２０に割り当てるためにタスクに分割する。ＧＨＱ処理ユニット１１０はタスクを分割すると、その内容を圧縮してＳＱＵＡＤ処理ユニット１２０に転送する。圧縮アルゴリズムとしては、ランレングス法やハフマン符号法等、データの性質に適したものを利用する。圧縮が効果的でないか不要の場合には、生のタスクデータを転送する。本発明では、タスクを分割し、下位にいくほど転送するタスクデータは減少するので、動作周波数が高くなっても、要求されるバンド幅の増加は抑えられる。
【００３７】
ＳＱＵＡＤ処理ユニット１２０はＧＨＱ処理ユニット１１０からタスク（必要により圧縮されたタスクデータ）を受け取ると、そのＳＱＵＡＤ処理ユニット１２０のｓｔａｔｕｓがｂｕｓｙであることをＧＨＱ処理ユニット１１０に通知する。それから、圧縮されているう場合にはそのデータを展開する。
【００３８】
一方、ＳＱＵＡＤ処理ユニット１２０は与えられたタスクを、各ＦＬＩＧＨＴ処理ユニット１３０に割り当てるためにタスクに分割する。ＳＱＵＡＤ処理ユニット１２０はタスクを分割すると、その内容を圧縮してＦＬＩＧＨＴ処理ユニット１３０に転送する。圧縮が効果的でない場合や不要な場合には、生のタスクデータを転送する。ＦＬＩＧＨＴ処理ユニット１３０はＳＱＵＡＤ処理ユニット１２０からタスク（必要により圧縮されたタスクデータ）を受け取ると、そのＦＬＩＧＨＴ処理ユニット１３０のｓｔａｔｕｓをｂｕｓｙにするようにＳＱＵＡＤ処理ユニット１２０に依頼する。それから、圧縮されている場合にはそのデータを展開する。
【００３９】
ＦＬＩＧＨＴ処理ユニット１３０は、そのタスクをＦＩＧＨＴＥＲ処理ユニット１４０に割り当てるために更に細かく分割し、各ＦＩＧＨＴＥＲ処理ユニット１４０にその分割後のタスクデータを転送する。尚、ここでタスクデータとは、処理の内容と、それに必要なデータを意味する。
【００４０】
すなわち、中間ノードとなるＳＱＵＡＤ処理ユニット１２０及びＦＬＩＧＨＴ処理ユニット１３０の主な役割はスケジューリングとデータ転送であり、実際に問題を解くのは最下層に位置するＦＩＧＨＴＥＲ処理ユニット１４０となる。ＦＩＧＨＴＥＲ処理ユニット１４０がタスクを受け取ると、上位のＦＬＩＧＨＴ処理ユニット１３０へ、そのＦＩＧＨＴＥＲ処理ユニット１４０のｓｔａｔｕｓをｂｕｓｙにするように依頼してから、そのタスクを処理する。与えられたタスクの処理が終了すると、結果をＦＬＩＧＨＴ処理ユニット１３０に報告し、ｓｔａｔｕｓがｉｄｌｅに戻される。
【００４１】
ｉｄｌｅに戻ったＦＩＧＨＴＥＲ処理ユニット１４０を発見すると、ＦＬＩＧＨＴ処理ユニット１３０は、分割されてまだ未処理のタスクを、そのＦＩＧＨＴＥＲ処理ユニット１４０に割り当てる。
【００４２】
１つのＦＬＩＧＨＴ処理ユニット１３０で分割された全てのタスクがＦＩＧＨＴＥＲ処理ユニット１４０によって処理されると、ＦＬＩＧＨＴ処理ユニット１３０はＳＱＵＡＤ処理ユニット１２０に結果を転送し、そのｓｔａｔｕｓがｉｄｌｅに戻される。ＳＱＵＡＤ処理ユニット１２０はＦＬＩＧＨＴ処理ユニット１３０の処理と同様、ｉｄｌｅのＦＬＩＧＨＴ処理ユニット１３０を発見すると未処理タスクをそのＦＬＩＧＨＴ処理ユニット１３０に割り当てる。
【００４３】
同様に、ＳＱＵＡＤ処理ユニット１２０では、その下位に属する全てのＦＬＩＧＨＴ処理ユニット１３０から、処理結果が転送されると、ＧＨＱ処理ユニット１１０に結果を転送し、そのＳＱＵＡＤ処理ユニット１２０のｓｔａｔｕｓがｉｄｌｅに戻される。
【００４４】
やはり、ＧＨＱ処理ユニット１１０はＦＬＩＧＨＴ処理ユニット１３０の処理と同様、ｉｄｌｅのＳＱＵＡＤ処理ユニット１２０を発見すると未処理タスクがあれば、そのタスクをＳＱＵＡＤ処理ユニット１２０に割り当てる。
【００４５】
ＧＨＱ処理ユニット１１０が持っている全てのタスクの処理がＳＱＵＡＤ処理ユニット１２０で完了すると、与えられた問題全体の処理が完了することになる。
【００４６】
以上のように、ＦＩＧＨＴＥＲ処理ユニット１４０と、その上位のＦＬＩＧＨＴ処理ユニット１３０、ＳＱＵＡＤ処理ユニット１２０及び最上位のＧＨＱ処理ユニット１１０とは、処理内容が異なる。ＦＩＧＨＴＥＲ処理ユニット１４０は、実際の処理計算のみを行うので、複雑な判断や込み入ったルーチンを実行する能力は必要が無いが、計算能力は高いことが要求される。従って、ＦＩＧＨＴＥＲプロセッサ１４３は、整数ユニットと浮動小数点ユニットを複数有することが望ましい。ここでは、演算ユニットとして、整数ユニット１つと浮動小数点ユニットを２つ持つものとする。また、高速化を助ける目的で、ハザード処理や割り込み処理に要する回路を省略している。従って、動作周波数が５３３ＭＨｚとすると、１．０６６ＧＦＬＯＰＳの処理が可能となる。
【００４７】
一方、ＳＱＵＡＤ処理ユニット１２０やＦＬＩＧＨＴ処理ユニット１３０は、ブローカーであり、基本的に上位の階層及び下位の階層とのデータの送受信の制御を行う。従って、ＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ１２３やＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ１３３が実装すべき演算ユニットは最も小規模のものでも十分である。ここでは、整数ユニットを１つ持つものとする。
【００４８】
また、ＧＨＱ処理ユニット１１０は、メインのプログラムを実行するものであり、ＧＨＱＣｏｍｍａｎｄｅｒプロセッサとしては汎用性のあるプロセッサが用いられる。従って、一般的な高性能マイクロプロセッサを利用することができる。
【００４９】
従って、以上のような構成は、次のような技術的な思想が実装されている。先ず、ＧＨＱ用メインメモリ１１１を形成するメモリモジュールと、ＧＨＱプロセッサ１１３及び４つのマルチチップモジュールの５つの構成要素は、６６ＭＨｚのクロックで同期が取られる。ここでは、比較的広い領域にわたって、同期を取る必要があり為、同期クロックは比較的低く抑えられている。
【００５０】
次に、ＳＱＵＡＤ処理ユニット１２０は、夫々、ＧＨＱ処理ユニット１１０から６６ＭＨｚの同期クロックを受け、これをＰＬＬ等で１．５倍にして１００ＭＨｚとし、これをユニット内の同期クロックとする。ここでは、４つのＦＬＩＧＨＴ処理ユニット１３０、ＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ１２３、ＳＱＵＡＤ用命令メモリ１２５、ＳＱＵＡＤ用データメモリ１２７及びＳＱＵＡＤ用ＤＭＡメモリ１２１が、この１００ＭＨｚの同期クロックに同期して動作する。ＳＱＵＡＤ処理ユニット１２０の１つの領域は、ＧＨＱ処理ユニット全体の領域の一部のみに局在化しており、信号の伝播距離やスキューもその分小さくなり、高周波数での動作が可能となっている。
【００５１】
次に、ＦＬＩＧＨＴ処理ユニット１３０は、夫々、ＳＱＵＡＤ処理ユニット１２０から１００ＭＨｚの同期クロックを受け、これをＰＬＬ等で１．５倍にして１３３ＭＨｚとし、これをユニット内の同期クロックとする。ここでは、１６個のＦＩＧＨＴＥＲ処理ユニット１４０、ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ１３３、ＦＬＩＧＨＴ用命令メモリ１２５及びＦＬＩＧＨＴ用データメモリ１３７及びＦＬＩＧＨＴ用ＤＭＡメモリ１３１が、この１３３ＭＨｚの同期クロックに同期して動作する。ＦＬＩＧＨＴ処理ユニット１３０の１つの領域は、ＳＱＵＡＤ処理ユニット１２０全体の領域の一部のみに局在化しており、更に高周波数での動作が可能となっている。
【００５２】
更に、ＦＩＧＨＴＥＲ処理ユニット１４０は、夫々、ＦＬＩＧＨＴ処理ユニット１３０から１３３ＭＨｚの同期クロックを受け、これをＰＬＬ等で２倍にして２６６ＭＨｚとし、これをユニット内の同期クロックとする。これをＰＬＬ等で２倍にして５３３ＭＨｚとし、これをＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ１３３の動作クロックとする。ここでは、ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ１３３とＦＩＧＨＴＥＲ用メモリ１４１が、この２６６ＭＨｚの同期クロックに同期して動作する。ＦＩＧＨＴＥＲ処理ユニット１４０は非常に小さな領域に集積されており、信号の伝播距離やスキューも小さく、高周波数で動作が可能となっている。
【００５３】
次に、本発明の特徴部分の１つである、中間階層の構成、すなわちＳＱＵＡＤ処理ユニット１２０及びＦＬＩＧＨＴ処理ユニット１３０の構成を説明する。図５は、この中間階層の１つのユニットの構成を示すブロックダイアグラムである。この中間階層ユニットは、Ｃｏｍｍａｎｄｅｒプロセッサとしての汎用プロセッサに、１０ｃｈのＤＭＡコントローラが接続されている。このＤＭＡコントローラは、汎用プロセッサとコプロセッサ接続をしており、既存のＤＭＡコントローラを利用することもできる。
【００５４】
このＤＭＡコントローラはバスに接続されており、そのバスには、ＤＭＡ転送用の大容量メモリ、上位階層バスへの接続線、下位階層バスへの接続線が接続されている。それぞれの接続線とバスの間にはＦＩＦＯが設けられている。またプロセッサコアには下位プロセッサからのｓｔａｔｕｓ情報を収集する信号線を有する。ＳＱＵＡＤ処理ユニット１２０を例とすれば、下位の４個のＦＬＩＧＨＴ処理ユニット１３０から４つのｓｔａｔｕｓ信号線が来ている。それぞれの信号線は１ｂｉｔ以上であり、対応する下位階層のプロセッサがｂｕｓｙかどうかを示している。
【００５５】
Ｃｏｍｍａｎｄｅｒプロセッサは、データメモリと命令メモリが設けられており、ここにこのＣｏｍｍａｎｄｅｒプロセッサが実行すべきプログラムと必要なデータが格納されている。ここで実行されるプログラムは、上位階層からのデータを必要に応じて展開し、コマンドを解釈し、必要な処理を行った上で、タスクの割り振り及びスケジューリングを行い、処理対象データを下位階層へ転送する。具体的には、自陣の処理ユニットに割り振られた処理データは、ＤＭＡコントローラによって高速にＤＭＡ転送用メモリに転送され、適宜利用可能な下位階層の処理ユニットへＤＭＡ転送される。このアルゴリズムはデータメモリに格納されるプログラムで実装される。言い換えれば、この中間階層ユニットは、全体としてインテリジェントＤＭＡシステムというべきものを構成する。
【００５６】
また、ごく特定の処理に特化したシステム、例えば汎用性を必要としないようなグラフィックシミュレータ等では、ＨＱＣｏｍｍａｎｄｅｒプロセッサ以外のプロセッサは、ＤＭＡコントローラを含み、ハードウエアで実装された非ノイマン型ＤＭＡプロセッサとすることも可能である。
【００５７】
次に、ここで用いられるメモリ構造を説明する。１つの最も容易な実装は、すべての構成プロセッサに対して、ローカルなメモリ空間が付随するというものである。すべてローカルなので、スヌープ・バス・プロトコルやコヒーレント・トランザクションを特に準備する必要は無い。
【００５８】
この場合、ＧＨＱプロセッサ１１３のメモリ空間は、ＧＨＱ用メインメモリ１１１にのみマッピングされる。また、ＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ１２３のメモリ空間は、ＳＱＵＡＤ用命令メモリ１２５及びＳＱＵＡＤ用データメモリ１２７と共に、ＳＱＵＡＤ用ＤＭＡメモリ１２１にマッピングされる。ＧＨＱプロセッサ１１３のメモリ空間とＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ１２３のメモリ空間は、独立である。更に、異なるＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ１２３のメモリ空間同士も独立である。
【００５９】
同様に、ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ１３３のメモリ空間は、ＦＬＩＧＨＴ用命令メモリ１３５及びＦＬＩＧＨＴ用データメモリ１３７と共に、そのＦＬＩＧＨＴ用ＤＭＡメモリ１３１にマッピングされる。ここでも、ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ１３３のメモリ空間は、ＧＨＱプロセッサ１１３のメモリ空間やＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ１２３のメモリ空間とは独立である。更に、異なるＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ１３３のメモリ空間同士も独立である。
【００６０】
同様に、ＦＩＧＨＴＥＲプロセッサ１４３のメモリ空間は、夫々６４ＫbyteのＦＩＧＨＴＥＲ用メモリ１４１にマッピングされる。やはり、ＦＩＧＨＴＥＲプロセッサ１４３のメモリ空間は、ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ１３３、ＧＨＱプロセッサ１１３のメモリ空間、ＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ１２３のメモリ空間とは独立である。更に、異なるＦＩＧＨＴＥＲプロセッサ１４３のメモリ空間同士も独立である。
【００６１】
また、ＧＨＱプロセッサ１１３のメモリ空間を、すべてのプロセッサのメモリ空間に分割して、マッピングしても良い。この場合、形式上、上位の階層と下位の階層間のデータの送受信は、メモリの移動命令ということになる。このメモリの移動命令は、上位の階層と下位の階層間のＤＭＡコマンドとして実装される。
【００６２】
この場合、ＧＨＱ処理ユニット１１０の実メモリと下位の階層の実メモリとの関係の設定方法としては、例えば、ＳＱＵＡＤ処理ユニット１２０の実メモリが、ＧＨＱ処理ユニット１１０の実メモリと同一アドレスを共有する方法がある。しかし、ＧＨＱプロセッサ１１３の実行しているプログラムが、処理ユニットのプログラムの実行内容を完全にコントロールしているので、スヌープ・バス・プロトコルやコヒーレント・トランザクションを特に準備する必要は無い。同様に、ＦＬＩＧＨＴ処理ユニット１３０の実メモリは、ＳＱＵＡＤ処理ユニット１２０の実メモリと同一アドレスを共有され、ＦＩＧＨＴＥＲ処理ユニット１４０の実メモリは、ＦＬＩＧＨＴ処理ユニット１３０の実メモリと同一アドレスを共有される。
【００６３】
図３は、本発明の第２の実施形態による階層バス型マルチプロセッサシステムの全体像を示すブロックダイアグラムである。この階層バス型マルチプロセッサシステムは、１Ｇバイトの１チップのＧＨＱ用メインメモリ２１１と、１チップのＧＨＱプロセッサ２１３と、後述するように夫々複数のプロセッサを備えた４つのＳＱＵＡＤ処理ユニット２２０とからなっている。このＳＱＵＡＤ処理ユニット２２０も１チップに集積されている。これらＧＨＱプロセッサ２１３と４つのＳＱＵＡＤ処理ユニット２２０及びＧＨＱ用メインメモリ２１１は、第１レベルバスで接続されている。
【００６４】
以上の５つの集積回路のチップは、マルチチップモジュールとして実装される。
【００６５】
マルチチップモジュール（ＭＣＭ）は、通常の単一チップパッケージのサブシステム内に組み込まれる複数のパッケージされていない集積回路からなる。ある型のマルチチップモジュールは、基板と、薄膜相互接続構造体と、この薄膜相互接続構造体上に取り付けられ且つエポキシパッシベーション材料にて包囲された複数の集積回路とを含んでいる。
【００６６】
ＭＣＭは、ユーザに対して、従来のメッキスルーホールおよびサーフェイスマウント技法によるプリント配線板よりも、より高い周波数性能を実現する、すなわち、基板上にマルチチップを密集させてパッケージングすることにより、配線容量と共に伝播距離が減少させられ、このため、一般的に、性能が増大させられる。
【００６７】
図４に本実施例で用いられるマルチチップモジュール（ＭＣＭ）を示す。ＭＣＭは、多数の層２０２Ａ〜２０２Ｅから構成される共通基板上に取り付けられたＩＣチップ２０１a〜２０１ｆ間で信号を結合するために高ワイヤ密度を必要とする。なお、所与の設計により必要とされる特定の製造技術及び配線密度に適応させるよう任意の数の層を用いることが可能である。
【００６８】
ここでは、ＩＣチップ２０１ｃ及びＩＣチップ２０１ｄはＧＨＱ用メインメモリ２１１及びＧＨＱプロセッサ２１３であり、ＩＣチップ２０１ａ、ＩＣチップ２０１ｂ、ＩＣチップ２０１ｅ、ＩＣチップ２０１ｆは、夫々ＳＱＵＡＤ処理ユニット２２０のチップである。多数の層２０２Ａ〜２０２Ｅに、１０本のラムバスを含む第１レベルバスの配線が設けられている。
【００６９】
図１に示す実施例では、特開平１０−５６０３６に記載されているような従来のマルチレベルセラミック基板技術が用いられるが、それと同等の任意の技術を用いることも可能である。図１の場合、層２０２Ａ〜２０２Ｊは、それぞれ、パターン化メタライゼーション層が形成された絶縁セラミック材料から構成される。層２０２Ａ〜２０２Ｄは、それぞれ、一部が除去されて、多層キャビティを形成しており、各層２０２Ｂ〜２０２Ｅにおけるパターン化メタライゼーション層の一部が該キャビティの周辺で露出している。層２０２Ｅの露出部分は、チップ取付面を形成しており、導電性エポキシ、ハンダ、または同様のチップ取付技術によってＩＣチップ２０１a〜２０１ｆが取り付けられるメタライゼーション接地面によってほぼ被覆されている。
【００７０】
層２０２Ｂ〜２０２Ｄが、それぞれ、ＩＣチップ２０１a〜２０１ｆからＭＣＭ入出力（Ｉ／Ｏ）ピンまたは端子（図示せず）にデジタルデータ信号を伝送する信号配線を有している。層２０２Ａは、下方に位置する層に対する化学的、機械的、及び電気的な保護を行うと共にパッケージキャップのための取付面として働く正面である。利用可能なＭＣＭ技術を用いて、層２０２Ｂ〜２０２Ｄにプリント配線、Ｉ／Ｏピン及び端子を形成し、これにより、ＭＣＭ１００を外部回路要素と結合させることが可能となる。ワイヤボンドは、各ＩＣチップ２０１a〜２０１ｆのエッジの１つに形成されたボンドパッドを、層２０２Ｂ〜２０２Ｄの選択された導体またはボンドパッドに結合させる。
【００７１】
このような構成をとることにより、第１レベルバスのバンド幅を、通常のプリント配線板に比較して格段に広くすることが可能となる。同様に、ＳＱＵＡＤ処理ユニット２２０内部には、複数のＦＬＩＧＨＴ処理ユニット２３０が実装されているが、そこではＭＣＭ構造よりも更に高速化に有利な単一シリコン基板上の接続となっているために、更に広いバンド幅が達成される。このように、本発明では、下の階層程、処理ユニットの実装の局在化がすすみ、動作周波数がより高周波となるという特徴がある。
【００７２】
システム全体の統括を行なっているのが最上位のＧＨＱ処理ユニット２１０であり、ここでは１チップのＧＨＱプロセッサ２１３及びＧＨＱ用メインメモリ２１１を含んでいる。この図では階層は４段、すなわち、ＧＨＱ処理ユニット２１０，ＳＱＵＡＤ処理ユニット２２０、ＦＬＩＧＨＴ処理ユニット２３０，ＦＩＧＨＴＥＲ処理ユニット２４０となっている。そして、ＧＨＱ処理ユニット２１０の直下には、ＦＬＩＧＨＴ処理ユニット２３０及びＦＩＧＨＴＥＲ処理ユニット２４０を実装する４つのＳＱＵＡＤ処理ユニット２２０が接続されている。このＧＨＱ処理ユニット２１０と、ＳＱＵＡＤ処理ユニット２２０及びＧＨＱ用メインメモリ２１１は、１０本のラムバスで接続されており、全体のバンド幅は１６Ｇｂｙｔｅ／ｓｅｃ（周波数４００ＭＨｚ  ｘ  ２）となっている。ＧＨＱ用メインメモリ２１１を形成するメモリモジュールと、ＧＨＱプロセッサ２１３及び４つのマルチチップモジュールの５つの構成要素は、１８７．５ＭＨｚのクロックで同期が取られている。従って、ＳＱＵＡＤ処理ユニット２２０は、夫々、ＧＨＱ処理ユニット２１０から１８７．５ＭＨｚの同期クロックを入力している。
【００７３】
各ＳＱＵＡＤ処理ユニット２２０で、ユニット内部の処理全体の統括を行なっているのがＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ２２３であり、ＳＱＵＡＤ用命令メモリ２２５及びＳＱＵＡＤ用データメモリ２２７と共に、ＳＱＵＡＤ用ＤＭＡメモリ２２１が接続している。このＳＱＵＡＤ処理ユニット２２０も１チップに集積されている。また、ＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ２２３の直下には、１６個のＦＩＧＨＴＥＲ処理ユニット２４０を統括する４個のＦＬＩＧＨＴ処理ユニット２３０が接続されている。このＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ２２３は、ＦＬＩＧＨＴ処理ユニット２３０と、６１４４ビット幅のバスで接続されており、全体のバンド幅は３８８Ｇｂｙｔｅ／ｓｅｃ（周波数３７５ＭＨｚ）となっている。４つのＦＬＩＧＨＴ処理ユニット２３０、ＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ２２３、ＳＱＵＡＤ用命令メモリ２２５、ＳＱＵＡＤ用データメモリ２２７及びＳＱＵＡＤ用ＤＭＡメモリ２２１が、この３７５ＭＨｚの同期が取られている。従って、ＦＬＩＧＨＴ処理ユニット２３０は、夫々、ＳＱＵＡＤ処理ユニット２２０から３７５ＭＨｚの同期クロックを入力している。
【００７４】
各ＦＬＩＧＨＴ処理ユニット２３０で、ユニット内部の処理全体の統括を行なっているのがＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ２３３であり、ＦＬＩＧＨＴ用命令メモリ２２５及びＦＬＩＧＨＴ用データメモリ２３７と共に、ＦＬＩＧＨＴ用ＤＭＡメモリ２３１が接続している。このＦＬＩＧＨＴ処理ユニット２３０は、ＳＱＵＡＤ処理ユニット２２０のチップに集積されている。また、ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ２３３の直下には、夫々６４ＫbyteのＦＩＧＨＴＥＲ用メモリ２４１とＦＩＧＨＴＥＲプロセッサ２４３からなる１６個のＦＩＧＨＴＥＲ処理ユニット２４０が接続されている。１６個のＦＩＧＨＴＥＲプロセッサ２４３、ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ２３３、ＦＬＩＧＨＴ用命令メモリ２２５及びＦＬＩＧＨＴ用データメモリ２３７、ＦＬＩＧＨＴ用ＤＭＡメモリ２３１は、７５０ＭＨｚのクロックで同期が取られている。従って、ＦＩＧＨＴＥＲ処理ユニット２４０は、夫々、ＦＬＩＧＨＴ処理ユニット２３０から７５０ＭＨｚの同期クロックを入力している。
【００７５】
このＦＬＩＧＨＴ処理ユニット２３０とＦＩＧＨＴＥＲプロセッサ２４３は、１０２４ビット幅のバスで接続されており、全体のバンド幅は９９Ｇｂｙｔｅ／ｓｅｃ（周波数７５０ＭＨｚ）となっている。また、ＦＩＧＨＴＥＲプロセッサ２４３の動作周波数は、１．５ＧＨｚである。
【００７６】
ＧＨＱ処理ユニット２１０は処理する問題を各ＳＱＵＡＤ処理ユニット２２０に割り当てるためにタスクに分割する。ＧＨＱ処理ユニット２１０はタスクを分割すると、その内容を圧縮してＳＱＵＡＤ処理ユニット２２０に転送する。圧縮アルゴリズムとしては、ランレングス法やハフマン符号法等、データの性質に適したものを利用する。圧縮が効果的でないか不要の場合には、生のタスクデータを転送する。本発明では、タスクを分割するので、下位にいくほど転送するタスクデータは減少するので、動作周波数が高くなっても、要求されるバンド幅の増加は抑えられる。
【００７７】
ＳＱＵＡＤ処理ユニット２２０はＧＨＱ処理ユニット２１０からタスク（必要により圧縮されたタスクデータ）を受け取ると、そのＳＱＵＡＤ処理ユニット２２０のｓｔａｔｕｓがｂｕｓｙであることをＧＨＱ処理ユニット２１０に通知する。それから、圧縮されているう場合にはそのデータを展開する。
【００７８】
一方、ＳＱＵＡＤ処理ユニット２２０は与えられたタスクを、各ＦＬＩＧＨＴ処理ユニット２３０に割り当てるためにタスクに分割する。ＳＱＵＡＤ処理ユニット２２０はタスクを分割すると、その内容を圧縮してＦＬＩＧＨＴ処理ユニット２３０に転送する。圧縮が効果的でない場合や不要な場合には、生のタスクデータを転送する。ＦＬＩＧＨＴ処理ユニット２３０はＳＱＵＡＤ処理ユニット２２０からタスク（必要により圧縮されたタスクデータ）を受け取ると、そのＦＬＩＧＨＴ処理ユニット２３０のｓｔａｔｕｓをｂｕｓｙにするようにＳＱＵＡＤ処理ユニット２２０に依頼する。それから、圧縮されている場合にはそのデータを展開する。
【００７９】
ＦＬＩＧＨＴ処理ユニット２３０は、そのタスクをＦＩＧＨＴＥＲ処理ユニット２４０に割り当てるために更に細かく分割し、各ＦＩＧＨＴＥＲ処理ユニット２４０にその分割後のタスクデータを転送する。尚、ここでタスクデータとは、処理の内容と、それに必要なデータを意味する。
【００８０】
すなわち、中間ノードとなるＳＱＵＡＤ処理ユニット２２０及びＦＬＩＧＨＴ処理ユニット２３０の主な役割はスケジューリングとデータ転送であり、実際に問題を解くのは最下層に位置するＦＩＧＨＴＥＲ処理ユニット２４０となる。ＦＩＧＨＴＥＲ処理ユニット２４０がタスクを受け取ると、上位のＦＬＩＧＨＴ処理ユニット２３０へ、そのＦＩＧＨＴＥＲ処理ユニット２４０のｓｔａｔｕｓをｂｕｓｙにするように依頼してから、そのタスクを処理する。与えられたタスクの処理が終了すると、結果をＦＬＩＧＨＴ処理ユニット２３０に報告し、ｓｔａｔｕｓがｉｄｌｅに戻される。
【００８１】
ｉｄｌｅに戻ったＦＩＧＨＴＥＲ処理ユニット２４０を発見すると、ＦＬＩＧＨＴ処理ユニット２３０は、分割されてまだ未処理のタスクを、そのＦＩＧＨＴＥＲ処理ユニット２４０に割り当てる。
【００８２】
１つのＦＬＩＧＨＴ処理ユニット２３０で分割された全てのタスクがＦＩＧＨＴＥＲ処理ユニット２４０によって処理されると、ＦＬＩＧＨＴ処理ユニット２３０はＳＱＵＡＤ処理ユニット２２０に結果を転送し、そのｓｔａｔｕｓがｉｄｌｅに戻される。ＳＱＵＡＤ処理ユニット２２０はＦＬＩＧＨＴ処理ユニット２３０の処理と同様、ｉｄｌｅのＦＬＩＧＨＴ処理ユニット２３０を発見すると未処理タスクをそのＦＬＩＧＨＴ処理ユニット２３０に割り当てる。
【００８３】
同様に、ＳＱＵＡＤ処理ユニット２２０では、その下位に属する全てのＦＬＩＧＨＴ処理ユニット２３０から、処理結果が転送されると、ＧＨＱ処理ユニット２１０に結果を転送し、そのＳＱＵＡＤ処理ユニット２２０のｓｔａｔｕｓがｉｄｌｅに戻される。
【００８４】
やはり、ＧＨＱ処理ユニット２１０はＦＬＩＧＨＴ処理ユニット２３０の処理と同様、ｉｄｌｅのＳＱＵＡＤ処理ユニット２２０を発見すると未処理タスクがあれば、そのタスクをＳＱＵＡＤ処理ユニット２２０に割り当てる。
【００８５】
ＧＨＱ処理ユニット２１０が持っている全てのタスクの処理がＳＱＵＡＤ処理ユニット２２０で完了すると、与えられた問題全体の処理が完了することになる。
【００８６】
以上のように、ＦＩＧＨＴＥＲ処理ユニット２４０と、その上位のＦＬＩＧＨＴ処理ユニット２３０、ＳＱＵＡＤ処理ユニット２２０及び最上位のＧＨＱ処理ユニット２１０とは、処理内容が異なる。ＦＩＧＨＴＥＲ処理ユニット２４０は、実際の処理計算のみを行うので、複雑な判断や込み入ったルーチンを実行する能力は必要が無いが、計算能力は高いことが要求される。従って、ＦＩＧＨＴＥＲプロセッサ２４３は、整数ユニットと浮動小数点ユニットを複数有することが望ましい。ここでは、演算ユニットとして、整数ユニット１つと浮動小数点ユニットを２つ持つものとする。また、高速化を助ける目的で、ハザード処理や割り込み処理に要する回路を省略している。従って、動作周波数が１．５ＧＨｚとし、全体で２４ＧＦＬＯＰＳの処理が可能となる。
【００８７】
一方、ＳＱＵＡＤ処理ユニット２２０やＦＬＩＧＨＴ処理ユニット２３０は、ブローカーであり、基本的に上位の階層及び下位の階層とのデータの送受信の制御を行う。従って、ＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ２２３やＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ２３３が実装すべき演算ユニットは最も小規模のものでも十分である。ここでは、整数ユニットを１つ持つものとする。
【００８８】
また、ＧＨＱ処理ユニット２１０は、メインのプログラムを実行するものであり、ＧＨＱＣｏｍｍａｎｄｅｒプロセッサとしては汎用性のあるプロセッサが用いられる。従って、一般的な高性能マイクロプロセッサを利用することができる。
【００８９】
従って、以上のような構成は、次のような技術的な思想が実装されている。先ず、ＧＨＱ用メインメモリ２１１を形成するメモリモジュールと、ＧＨＱプロセッサ２１３及び４つのマルチチップモジュールの５つの構成要素は、１８７．５ＭＨｚのクロックで同期が取られる。ここでは、比較的広い領域にわたって、同期を取る必要があり為、同期クロックは比較的低く抑えられている。尚、ＧＨＱ用メインメモリ２１１は、４００ＭＨｚのクロックで動くが、これは非同期でデータの転送を行うものであり、同期を取るクロックではない。
【００９０】
次に、ＳＱＵＡＤ処理ユニット２２０は、夫々、ＧＨＱ処理ユニット２１０から１８７．５ＭＨｚの同期クロックを受け、これを２倍にして３７５ＭＨｚとし、これをユニット内の同期クロックとする。ここでは、４つのＦＬＩＧＨＴ処理ユニット２３０、ＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ２２３、ＳＱＵＡＤ用命令メモリ２２５、ＳＱＵＡＤ用データメモリ２２７及びＳＱＵＡＤ用ＤＭＡメモリ２２１が、この３７５ＭＨｚの同期クロックに同期して動作する。ＳＱＵＡＤ処理ユニット２２０の１つの領域は、ＧＨＱ処理ユニット全体の領域の一部のみに局在化しており、信号の伝播距離やスキューもその分小さくなり、高周波数での動作が可能となっている。
【００９１】
次に、ＦＬＩＧＨＴ処理ユニット２３０は、夫々、ＳＱＵＡＤ処理ユニット２２０から３７５ＭＨｚの同期クロックを受け、これを２倍にして７５０ＭＨｚとし、これをユニット内の同期クロックとする。ここでは、１６個のＦＩＧＨＴＥＲ処理ユニット２４０、ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ２３３、ＦＬＩＧＨＴ用命令メモリ２２５及びＦＬＩＧＨＴ用データメモリ２３７及びＦＬＩＧＨＴ用ＤＭＡメモリ２３１が、この７５０ＭＨｚの同期クロックに同期して動作する。ＦＬＩＧＨＴ処理ユニット２３０の１つの領域は、ＳＱＵＡＤ処理ユニット２２０全体の領域の一部のみに局在化しており、更に高周波数での動作が可能となっている。
【００９２】
更に、ＦＩＧＨＴＥＲ処理ユニット２４０は、夫々、ＦＬＩＧＨＴ処理ユニット２３０から７５０ＭＨｚの同期クロックを受け、これを２倍にして１．５ＧＨｚとし、これをユニット内の同期クロックとする。ここでは、ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ２３３とＦＩＧＨＴＥＲ用メモリ２４１が、この１．５ＧＨｚの同期クロックに同期して動作する。ＦＩＧＨＴＥＲ処理ユニット２４０は非常に小さな領域に集積されており、信号の伝播距離やスキューも小さく、高周波数で動作が可能となっている。
【００９３】
ここで、例えばＦＬＩＧＨＴ処理ユニット２３０内部の処理は、７５０ＭＨｚで動作しているが、ＧＨＱ処理ユニット２１０全体としてみれば、７５０ＭＨｚでの同期は無理なので、異なるＦＬＩＧＨＴ処理ユニットの内部処理の間では同期が取れていない。しかし、その上の階層、すなわちＳＱＵＡＤ処理ユニット２２０で、３７５ＭＨｚでの同期が取れていれば、問題が無い。
【００９４】
次に、本発明の特徴部分の１つである、中間階層の構成、すなわちＳＱＵＡＤ処理ユニット２２０及びＦＬＩＧＨＴ処理ユニット２３０の構成を説明する。図５は、この中間階層の１つのユニットの構成を示すブロックダイアグラムである。この中間階層ユニットは、Ｃｏｍｍａｎｄｅｒプロセッサとしての汎用プロセッサに、１０ｃｈのＤＭＡコントローラが接続されている。このＤＭＡコントローラは、汎用プロセッサとコプロセッサ接続をしており、既存のＤＭＡコントローラを利用することもできる。
【００９５】
このＤＭＡコントローラはバスに接続されており、そのバスには、ＤＭＡ転送用の大容量メモリ、上位階層バスへの接続線、下位階層バスへの接続線が接続されている。それぞれの接続線とバスの間にはＦＩＦＯが設けられている。またプロセッサコアには下位プロセッサからのｓｔａｔｕｓ情報を収集する信号線を有する。ＳＱＵＡＤ処理ユニット２２０を例とすれば、下位の４個のＦＬＩＧＨＴ処理ユニット２３０から４つのｓｔａｔｕｓ信号線が来ている。それぞれの信号線は１ｂｉｔ以上であり、対応する下位階層のプロセッサがｂｕｓｙかどうかを示している。
【００９６】
Ｃｏｍｍａｎｄｅｒプロセッサは、データメモリと命令メモリが設けられており、ここにこのＣｏｍｍａｎｄｅｒプロセッサが実行すべきプログラムと必要なデータが格納されている。ここで実行されるプログラムは、上位階層からのデータを必要に応じて展開し、コマンドを解釈し、必要な処理を行った上で、タスクの割り振り及びスケジューリングを行い、処理対象データを下位階層へ転送する。具体的には、自陣の処理ユニットに割り振られた処理データは、ＤＭＡコントローラによって高速にＤＭＡ転送用メモリに転送され、適宜利用可能な下位階層の処理ユニットへＤＭＡ転送される。このアルゴリズムはデータメモリに格納されるプログラムで実装される。言い換えれば、この中間階層ユニットは、全体としてインテリジェントＤＭＡシステムというべきものを構成する。
【００９７】
また、ごく特定の処理に特化したシステム、例えば汎用性を必要としないようなグラフィックシミュレータ等では、ＨＱＣｏｍｍａｎｄｅｒプロセッサ以外のプロセッサは、ＤＭＡコントローラを含み、ハードウエアで実装された非ノイマン型ＤＭＡプロセッサとすることも可能である。
【００９８】
次に、ここで用いられるメモリ構造を説明する。１つの最も容易な実装は、すべての構成プロセッサに対して、ローカルなメモリ空間が付随するというものである。すべてローカルなので、スヌープ・バス・プロトコルやコヒーレント・トランザクションを特に準備する必要は無い。
【００９９】
この場合、ＧＨＱプロセッサ２１３のメモリ空間は、ＧＨＱ用メインメモリ２１１にマッピングされる。また、ＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ２２３のメモリ空間は、ＳＱＵＡＤ用命令メモリ２２５及びＳＱＵＡＤ用データメモリ２２７と共に、ＳＱＵＡＤ用ＤＭＡメモリ２２１にマッピングされる。ＧＨＱプロセッサ２１３のメモリ空間とＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ２２３のメモリ空間は、独立である。更に、異なるＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ２２３のメモリ空間同士も独立である。
【０１００】
同様に、ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ２３３のメモリ空間は、ＦＬＩＧＨＴ用命令メモリ２２５及びＦＬＩＧＨＴ用データメモリ２３７と共に、そのＦＬＩＧＨＴ用ＤＭＡメモリ２３１にマッピングされる。ここでも、ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ２３３のメモリ空間は、ＧＨＱプロセッサ２１３のメモリ空間やＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ２２３のメモリ空間とは独立である。更に、異なるＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ２３３のメモリ空間同士も独立である。
【０１０１】
同様に、ＦＩＧＨＴＥＲプロセッサ２４３のメモリ空間は、夫々６４Ｋbyteのメモリにマッピングされる。やはり、ＦＩＧＨＴＥＲプロセッサ２４３のメモリ空間は、ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ２３３、ＧＨＱプロセッサ２１３のメモリ空間、ＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ２２３のメモリ空間とは独立である。更に、異なるＦＩＧＨＴＥＲプロセッサ２４３のメモリ空間同士も独立である。
【０１０２】
また、ＧＨＱプロセッサ２１３のメモリ空間を、すべてのプロセッサのメモリ空間に分割して、マッピングしても良い。この場合、形式上、上位の階層と下位の階層間のデータの送受信は、メモリの移動命令ということになる。このメモリの移動命令は、上位の階層と下位の階層間のＤＭＡコマンドとして実装される。
【０１０３】
この場合、ＧＨＱ処理ユニット２１０の実メモリと下位の階層の実メモリとの関係の設定方法としては、例えば、ＳＱＵＡＤ処理ユニット２２０の実メモリが、ＧＨＱ処理ユニット２１０の実メモリと同一アドレスを共有する方法がある。しかし、ＧＨＱプロセッサ２１３の実行しているプログラムが、処理ユニットのプログラムの実行内容を完全にコントロールしているので、スヌープ・バス・プロトコルやコヒーレント・トランザクションを特に準備する必要は無い。同様に、ＦＬＩＧＨＴ処理ユニット２３０の実メモリは、ＳＱＵＡＤ処理ユニット２２０の実メモリと同一アドレスを共有され、ＦＩＧＨＴＥＲ処理ユニット２４０の実メモリは、ＦＬＩＧＨＴ処理ユニット２３０の実メモリと同一アドレスを共有される。
【０１０４】
次に、従来の階層バス型マルチプロセッサシステムと、本発明による階層バス型マルチプロセッサシステムとの比較を行う。
【０１０５】
まず、図３の階層バス型マルチプロセッサシステムで、各階層にはキャッシュのみがあるとして、衝突判定アプリケーションにおける、データ転送量を見積もると下記の通りである。
【０１０６】
画像に表示されているオブジェクト同士の衝突判定を行う場合を考える。各オブジェクトは、ｂｏｕｎｄｉｎｇ  ｓｈａｐｅと呼ばれる領域に分割され、個々のｂｏｕｎｄｉｎｇ  ｓｈａｐｅ同士の衝突判定をすべての組み合わせで行う。ｂｏｕｎｄｉｎｇ  ｓｈａｐｅの形状を球状とすれば、１つのｂｏｕｎｄｉｎｇｓｈａｐｅと別のtのｂｏｕｎｄｉｎｇ  ｓｈａｐｅの衝突判定は、以下の計算式で示される。
【０１０７】
(ｘ１- ｘ２)２+(ｙ１- ｙ２)２+(ｚ１- ｚ２)２  <  (ｒ１- ｒ２)２
その計算量は、以下のとおりである。
【０１０８】
１）８要素のロード：ｘ１，ｙ１，ｚ１，ｒ１，ｘ２，ｙ２，ｚ２，ｒ２×4 bytes＝３２bytes
２）６個の加減算
３）４個の乗算
４）１個の比較
従って、全体で８ｌｏａｄ，１１ＦＰの計算量である。
【０１０９】
末端のＦＩＧＨＴＥＲの計算能力で２Ｆｏｐ×１．５ＧＨｚ＝３ＧＦＬＯＰＳのシステムでは、ＦＩＧＨＴＥＲ一つあたり、
３ＧＦＬＯＰＳ／１１ＦＰ＝２７５ＭＨｚ回／ｓｅｃ
の衝突判定能力があり、それには
３ＧＦＬＯＰＳ／１１ＦＰ×３２Ｂｙｔｅ＝８．７５ＧＢｙｔｅ／ｓｅｃ
のデータを消費する。全体１２８プロセッサ×２Ｆｏｐ×１．５ＧＨｚ＝３８４ＧＦＬＯＰＳで考えると
３８４ＧＦＬＯＰＳ／１１ＦＰ＝３４．９Ｇ回／ｓｅｃの衝突判定能力となる。１／６０秒では
３８４ＧＦＬＯＰＳ／１１ＦＰ／６０＝５８０Ｍ回／frame
の衝突判定能力、となり、これは
√（２×５８０Ｍ）＝３４．１３４Ｍｚ
１／６０秒間に３万個を超えるｂｏｕｎｄｉｎｇ  ｓｈａｐａ同士の衝突判定ができる能力を意味する。
【０１１０】
これに必要なバスバンド幅は
ＦＬＩＧＨＴｂｕｓ：８．７５ＧＢｙｔｅ／ｓｅｃ×８＝７０ＧＢｙｔｅ／ｓｅｃ
ＳＱＵＡＤｂｕｓ：７０ＧＢｙｔｅ／ｓｅｃ×４＝２８０ＧＢｙｔｅ／ｓｅｃとなる。
【０１１１】
次に中間ノードプロセッサを使用してデータの展開と、各プロセッサへの均等負荷分散を行った場合の例をあげる。
【０１１２】
図６のようにｓｏｕｒｃｅ側、ｔａｒｇｅｔ両側方をサブグループに分割し、（例えば１０分割）、ｍ×ｍの単位でプロセッサに処理させる。ＤＭＡで空いているプロセッサに投入する。
【０１１３】
どのプロセッサが空いているかをチェックして、負荷分散しながら放り込む。そのためあるプロセッサが衝突を検出して処理時間が長くなっても全体で負荷分散ができる。
【０１１４】
例えば１０万個のｂｏｕｎｄｉｎｇ  ｓｈａｐｅの衝突判定を行わなければならないとする。４個あるＳＱＵＡＤ  Ｃｏｍｍａｎｄｅｒには、それぞれ全衝突判定の１／４に相当する分のデータを持たせる。
【０１１５】
１つの例として、図７に示したように、ＳＱＵＡＤ１は１〜ｎ／２までのｂｏｕｎｄｉｎｇ  ｓｈａｐｅを持ち、ＳＱＵＡＤ２は１〜ｎ／４とｎ／２＋１〜ｎまで、ＳＱＵＡＤ３はｎ／４＋１〜ｎ／２とｎ／２＋１〜ｎまでＳＱＵＡＤ４はｎ／２＋１〜ｎまでのｂｏｕｎｄｉｎｇ  ｓｈａｐｅの情報を持つ。この負荷分散とＤＭＡ転送はＧＨＱ  Ｐｒｏｃｅｓｓｏｒが担当する。
【０１１６】
もちろん、図８に示したように、ＳＱＵＡＤ１は１〜ｎ／２までのｂｏｕｎｄｉｎｇ  ｓｈａｐｅを持ち、ＳＱＵＡＤ２はｎ／２＋１〜３ｎ／４と１〜ｎ／２まで、ＳＱＵＡＤ３は３ｎ／４＋１〜ｎと１〜ｎ／２までＳＱＵＡＤ４はｎ／２＋１〜ｎまでのｂｏｕｎｄｉｎｇ  ｓｈａｐｅの情報を持つようにしても等価である。
【０１１７】
次に各ＳＱＵＡＤは自分の４個のＦＬＩＧＨＴに同様の戦略で処理を分散する。この負荷分散とＤＭＡ転送はＳＱＵＡＤ  Ｃｏｍｍａｎｄｅｒが担当する。例えば、ＳＱＵＡＤ２は、図に示したように、配下のＦＬＩＧＨＴ１乃至ＦＬＩＧＨＴ４に負荷を分散する。この場合も、図に示したような方法でも、分散効率に差異は無い。
【０１１８】
システム全体では、１６個のＦＬＩＧＨＴがあるので、等分に分割されて各ＦＬＩＧＨＴには全体の１／１６の衝突判定計算が割り当てられることになる。またもっとも多いところでもＦＬＩＧＨＴが保持していなければならないデータ量は全体の１／４＋１／８＝３／８程度で済む。
【０１１９】
そして各ＦＬＩＧＨＴ  Ｃｏｍｍａｎｄｅｒは上記のサブグループ方式により、さらに小さい領域に分割する。どの程度分割する必要があるかはデータ量の節で述べる。分割された衝突判定のグループをＦＩＧＨＴＥＲ  Ｐｒｏｃｅｓｓｏｒに投入し、衝突判定を実行させる。各ＦＩＧＨＴＥＲの中ではフラットな衝突判定を行う。
【０１２０】
このデータ転送をある程度最適化した場合から見積もると、ＧＨＱｂｕｓは４個ＳＱＵＡＤに１．６ＭＢｙｔｅのデータ全体を配り、１／６０秒で更新するとすれば、データ転送速度は、
１．６ＭＢｙｔｅ×４ＳＱＵＡＤ÷（１／６０秒）＝３８４ＭＢｙｔｅ／ｓｅｃ
である。ＳＱＵＡＤｂｕｓでは４個のＦＬＩＧＨＴに約５８０ＫＢｙｔｅ（５７８９０４Ｂｙｔｅ）のデータを配るので
５８０ＫＢｙｔｅ×４ＦＬＩＧＨＴ÷（１／６０秒）＝１３９．２ＭＢｙｔｅ／ｓｅｃ
のデータバスバンド幅しか要求されない。一方、ＦＬＩＧＨＴｂｕｓの必要データバスバンド幅は
１１１０個／（１／６０ｓｅｃ）×１６ＫＢ＝１，０６５，２６０ＫＢｙｔｅ／ｓｅｃ＝約１ＧＢｙｔｅ／ｓｅｃ
となり、上記の１４０ＧＢｙｔｅ／ｓｅｃと比べて１／１４０になっている。以上の結果をまとめて、図９に示す。
【０１２１】
以上、本発明を実施例により詳細に説明したが、当業者にとっては、本発明が本願中に説明した実施例に限定されるものではないということは明らかである。本発明の装置は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。従って、本願の記載は、例示説明を目的とするものであり、本発明に対して何ら制限的な意味を有するものではない。
【０１２２】
【発明の効果】
従って、本発明による階層バス型マルチプロセッサシステムでは、階層化によりクロックスキューをおさえることができ、最先端の技術による高速プロセッサを、所望の個数並列に動作させることが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態による階層バス型マルチプロセッサシステムの全体像を示すブロックダイアグラムである。
【図２】本発明の第１の実施形態で用いられるマルチチップモジュール（ＭＣＭ）を示す。
【図３】本発明の第２の実施形態による階層バス型マルチプロセッサシステムの全体像を示すブロックダイアグラムである。
【図４】本発明の第２の実施形態で用いられるマルチチップモジュール（ＭＣＭ）を示す。
【図５】中間階層ユニットの１つの構成を示すブロックダイアグラムである。
【図６】画像に表示されているオブジェクト同士の衝突判定を行う場合を説明する図。
【図７】画像に表示されているオブジェクト同士の衝突判定を行う場合を説明する図。
【図８】画像に表示されているオブジェクト同士の衝突判定を行う場合を説明する図。
【図９】従来の階層バス型マルチプロセッサシステムと、本発明による階層バス型マルチプロセッサシステムとの比較を示す図。
【符号の説明】
１０１a〜１０１ｆ       集積回路チップ
１０２Ａ〜１０２Ｅ      配線層
１１０  ＧＨＱ処理ユニット
１１１  ＧＨＱ用メインメモリ
１１３  ＧＨＱプロセッサ
１２０  ＳＱＵＡＤ用処理ユニット
１２１  ＳＱＵＡＤ用ＤＭＡメモリ
１２３  ＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ
１２５  ＳＱＵＡＤ用命令メモリ
１２７  ＳＱＵＡＤ用データメモリ
１３０  ＦＬＩＧＨＴ処理ユニット
１３１  ＦＬＩＧＨＴ用ＤＭＡメモリ
１３３  ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ
１３７  ＦＬＩＧＨＴ用データメモリ
１４０  ＦＩＧＨＴＥＲ処理ユニット
１４１  ＦＩＧＨＴＥＲ用メモリ
１４３  ＦＩＧＨＴＥＲプロセッサ
２０１a〜２０１ｆ       集積回路チップ
２０２Ａ〜２０２Ｅ      配線層
２１０  ＧＨＱ処理ユニット
２１１  ＧＨＱ用メインメモリ
２１３  ＧＨＱプロセッサ
２２０  ＳＱＵＡＤ用処理ユニット
２２１  ＳＱＵＡＤ用ＤＭＡメモリ
２２３  ＳＱＵＡＤ Ｃｏｍｍａｎｄｅｒプロセッサ
２２５  ＳＱＵＡＤ用命令メモリ
２２７  ＳＱＵＡＤ用データメモリ
２３０  ＦＬＩＧＨＴ処理ユニット
２３１  ＦＬＩＧＨＴ用ＤＭＡメモリ
２３３  ＦＬＩＧＨＴ Ｃｏｍｍａｎｄｅｒプロセッサ
２３７  ＦＬＩＧＨＴ用データメモリ
２４０  ＦＩＧＨＴＥＲ処理ユニット
２４１  ＦＩＧＨＴＥＲ用メモリ
２４３  ＦＩＧＨＴＥＲプロセッサ
【図１】
0003946393.tif 000002
【図２】
0003946393.tif 000003
【図３】
0003946393.tif 000004
【図４】
0003946393.tif 000005
【図５】
0003946393.tif 000006
【図６】
0003946393.tif 000007
【図７】
0003946393.tif 000008
【図８】
0003946393.tif 000009
【図９】
0003946393.tif 000010