(57)【特許請求の範囲】
【請求項１】
メモリを使用する集積回路であって、
前記メモリに連結されていて、前記メモリへのアクセスを制御するように構成されているインタフェース回路と、
前記インタフェース回路にそこからの情報を受け取るために連結されていて、前記インタフェース回路を制御するように構成されている埋め込みプロセッサと、
内部バスを介して前記埋め込みプロセッサに連結され、前記インタフェース回路から受けたデータに基づいて算術計算を実行するためのアレイプロセッサと、を備え、
該アレイプロセッサが、
複数の乗算／累算器回路と、
該複数の乗算／累算器回路の少なくとも２つに、共有されたオペランドを同時に供給するために前記複数の乗算／累算器回路に連結されている共有オペランド回路と、
前記複数の乗算／累算器の前記少なくとも２つから出力を受けるように連結され、前記少なくとも２つの乗算／累算器回路によってさらなる処理を行うために前記出力を提供するための共有出力及びフィードバックインタフェースと、を備え、
前記それぞれの共有オペランド回路が、
複数のオペランド上で固定点加算あるいは減算を行うことによって固定点結果を決定する前端ユニットと、
前記固定点結果を第１の浮動点結果に変換する浮動点変換ユニットと、を備えたことを特徴とする集積回路。
【請求項２】
第１の埋め込み回路と、
該第１の埋め込み回路に連結された第１のアレイプロセッサと、
前記第１の埋め込み回路と前記第１のアレイプロセッサに連結された第１のメモリインタフェース回路と、
前記第１の埋め込み回路に連結された第１の通信ポートと、
前記第１の通信ポートと通信するように構成された第２の通信ポートと、
前記第２の通信ポートに連結された第２の埋め込みプロセッサと、
該第２の埋め込みプロセッサに連結された第２のアレイプロセッサと、
前記第２の埋め込みプロセッサと前記第２のアレイプロセッサに連結された第２のメモリインタフェースと、を備え、
前記第１のアレイプロセッサが少なくとも２つの算術処理ユニットを備え、
少なくとも２つの算術処理ユニットのそれぞれが、
第１のローカルメモリに連結された第１のＭＡＣユニットと、
第２のローカルメモリに連結された第２のＭＡＣユニットと、
第３のローカルメモリに連結された第３のＭＡＣユニットと、
前記第１のＭＡＣユニット、前記第２のＭＡＣユニット、及び、前記第３のＭＡＣユニットに対して、共有のオペランドを提供するように連結された共有オペランドユニットと、
前記第１のＭＡＣユニットから第１の出力を、前記第２のＭＡＣユニットから第２の出力を、及び、前記第３のＭＡＣユニットから第３の出力を受けるように結合され、さらに、前記第１のローカルメモリに前記第１の出力を、前記第２のローカルメモリに前記第２の出力を、前記第３のローカルメモリに前記第３の出力を提供するように結合されている共有出力及びフィードバックインタフェースと、
を備えたことを特徴とする集積回路。
【請求項３】
前記少なくとも２つの処理ユニットが３つの算術処理ユニットであることを特徴とする請求項２に記載の集積回路。
【請求項４】
前記少なくとも２つの算術処理ユニットがさらに第４のローカルメモリに連結された第４のＭＡＣユニットであることを特徴とする請求項２に記載の集積回路。
【請求項５】
外部メモリからデータを受けるように構成されたインタフェース回路と、
前記第１のインタフェース回路を制御するように構成された第１の埋め込みプロセッサと、
前記インタフェース回路からデータを受け、算術計算を行うように構成された第１のアレイプロセッサと、
前記第１の埋め込みプロセッサ及び前記第１のアレイプロセッサに連結され、第２のアレイプロセッサ及び第２の埋め込みプロセッサと通信するための第１の通信ポートと、を備え、
前記アレイプロセッサが、
第１のローカルメモリからデータを受けるように構成された第１のＭＡＣユニットと、
第２のローカルメモリからデータを受けるように構成された第２のＭＡＣユニットと、
第３のローカルメモリからデータを受けるように構成された第３のＭＡＣユニットと、
前記第１のＭＡＣユニット、前記第２のＭＡＣユニット、及び、前記第３のＭＡＣユニットからデータを受けるように構成され、さらに、前記第１のローカルメモリ、前記第２のローカルメモリ、前記第３のローカルメモリにデータを提供するように構成された第１の共有出力及びフィードバック回路と、
第４のローカルメモリからデータを受けるように構成された第４のＭＡＣユニットと、
第５のローカルメモリからデータを受けるように構成された第５のＭＡＣユニットと、
前記第４のＭＡＣユニット及び前記第５のＭＡＣユニットからデータを受けるように構成され、さらに、前記第４のローカルメモリ及び前記第５のローカルメモリにデータを提供するように構成された第２の共有出力及びフィードバック回路と、
共有オペランドを前記第１のＭＡＣユニット、第２のＭＡＣユニット、及び、第３のＭＡＣユニットに提供するように構成された第１の共有オペランド回路と、
を備えたことを特徴とする集積回路。
【請求項６】
前記アレイプロセッサがさらに共有オペランドを前記第４のＭＡＣユニット及び第５のＭＡＣユニットに同時に提供するように構成された第２の共有オペランド回路を備えていることを特徴とする請求項５に記載の集積回路。
【請求項７】
フレームレンダリング集積回路であって、
外部メモリに連結されたインタフェース回路と、
該インタフェース回路に連結され、前記集積回路を制御するように構成された埋め込みプロセッサと、
前記インタフェース回路に連結され、算術計算を行うアレイプロセッサと、を備え、
前記アレイプロセッサが、
第１の複数のオペランドを有する第１のローカルメモリに連結された第１の乗算／累算器（ＭＡＣ）ユニットと、
第２の複数のオペランドを有する第２のローカルメモリに連結された第２のＭＡＣユニットと、
第３の複数のオペランドを有する第２のローカルメモリに連結された第３のＭＡＣユニットと、
第４の複数のオペランドを有する第２のローカルメモリに連結された第４のＭＡＣユニットと、
第５の複数のオペランドを有する第２のローカルメモリに連結された第５のＭＡＣユニットと、
第６の複数のオペランドを有する第２のローカルメモリに連結された第６のＭＡＣユニットと、
第１のＭＡＣユニット、第２のＭＡＣユニット、及び、第３のＭＡＣユニットに連結された第１の共有オペランドユニットと、
第４のＭＡＣユニット、第５のＭＡＣユニット、及び、第６のＭＡＣユニットに連結された第２の共有オペランドユニットと、
前記第１のＭＡＣユニット、第２のＭＡＣユニット、及び、第３のＭＡＣユニットに連結され、さらに第１のローカルメモリ、第２のローカルメモリ、及び、第３のローカルメモリに連結された第１の共有出力及びフィードバックインタフェースと、
を備えたことを特徴とする集積回路。
【請求項８】
前記共有オペランドが、前記第１のＭＡＣユニットに対して前記第１の複数のオペランドと協働して第１の結果を計算するために、前記第２のＭＡＣユニットに対して前記第２の複数のオペランドと協働して第２の結果を計算するために、前記第３のＭＡＣユニットに対して前記第３の複数のオペランドと協働して第３の結果を計算するために、共有オペランドを提供することを特徴とする請求項７に記載の集積回路。
【請求項９】
前記第１の結果、前記第２の結果、及び、前記第３の結果が互いに独立に計算されることを特徴とする請求項８に記載の集積回路。
【請求項１０】
前記第１の共有出力及びフィードバックインタフェースが前記第１のＭＡＣユニットから前記第１の結果を、前記第２のＭＡＣユニットから前記第２の結果を、前記第３のＭＡＣユニットから前記第３の結果を受け、前記第１の結果を前記第１のローカルメモリに、前記第２の結果を前記第２のローカルメモリに、前記第３の結果を前記第３のローカルメモリに提供することを特徴とする請求項９に記載の集積回路。
【請求項１１】
前記アレイプロセッサがさらに、
前記第４のＭＡＣユニット、前記第５のＭＡＣユニット、及び、前記第６のＭＡＣユニットに連結されるとともに、さらに前記第４のローカルメモリ、前記第５のローカルメモリ及び前記第６のローカルメモリに連結された第２の共有出力及びフィードバックインタフェースを備えたことを特徴とする請求項７に記載の集積回路。
【発明の詳細な説明】
関連出願の説明
本特許出願は、１９９６年１２月１９日出願の米国仮特許出願番号第６０／０３３，４７６号及び１９９７年６月２０日出願の同６０／０５０，３９６号に依り優先権を主張する。これらの仮特許出願の内容はそのままここに参考資料として挙げ、あらゆる目的に供するものとする。
発明の背景
本発明は回路に関する。特定すれば、本発明はビデオフレーム生成タスク、及びディジタル信号処理（ＤＳＰ）タスクに適した高性能集積回路に関する。
グラフィック産業における中心的課題はフレームを生成することである。各フレームは画素の四角形配列であり、しばしば１００万以上の画素を含んでいる。動画、特に３次元動画では、通常、一つの画素を生成するのに数百万回ないし数十億回の計算を必要とする。同様に、（医療画像作成のような）グラフィックアプリケーションでは、一つ又はそれ以上のフレームの生成を必要とし、更に、しばしば連続した動画である必要がある。
この必要性を、１９９５年に映画「Ｔｏｙ  Ｓｔｏｒｙ」を作ったピクサーの成果を例に考えてみよう。この映画には１１０，０００個のフレームがある。ピクサーは８７個のデュアルプロセッサ１００ＭＨｚＳｐａｒｃ２０’ｓと３０個のカッドプロセッサ１００ＭＨｚＳｐａｒｃ２０’ｓを使った。これは合計で２９４個のＣＰＵとなる。ＣＰＵ当たり平均９６メガバイトのＲＡＭがあり、各処理ノードはローカルの３−５ギガバイトのローカルディスクドライブを有していた。ディスクファームとそのサーバーは本特許とは直接関係しないが、極めて大きかった。１つの平均的フレームが１ないし３時間のＳｐａｒｃＣＰＵプロセッサ時間を要し、映画全体を計算するのに４６日を要した。参考資料（１）参照。
「Ｔｏｙ  Ｓｔｏｒｙ」は写真のように写実的ではなかったが、一つのブレークスルーであった。それは、完全に３次元コンピューター動画技術で製作された最初の全長長編映画であった。このようなフィルムに写真的写実性を備えさせるには、少なくとも１０倍も計算を複雑化させねばならない。３０時間での写真的に写実的なフレーム計算を想定しよう。
フレーム生成には多くの異なったプログラムが使用されている。参考資料（１９）−（２３）参照。これらのプログラムは複雑であり、且つ高性能である必要がある。これらはＣ、Ｃ＋＋、ＦＯＲＴＲＡＮのような高レベルの手順、オブジェクト指向コンピュータープログラミング言語で作られている。これらのプログラムの唯一最も性能的にクリティカルな部分は、ベースにあるレンダリングエンジンハードウェアを目指してアッセンブリ／マシン言語で直接書かれていることであろうが、つまり、アッセンブリ／マシン言語でのプログラミングは手の出せないように高額な出費を要し、難しいからクリティカルなのである。これらのプログラムでは浮動小数点方式の計算が一般的であるが、それはその広いダイナミックレンジと、プログラミングの容易性の故である。
性能改善に対する必要性は大きい。最良のビデオ編集には毎秒１フレームが必要とされる。リアルタイム仮想現実には毎秒３０フレームまで作る必要がある。これら２つの工業的アプリケーションを満足させるには、ビデオ編集に対しては１０８，０００ｘ（＝３０時間／フレームｘ３６００秒／時間）、そして仮想現実に対しては３，２４０，０００ｘ（＝３０＊ビデオ編集）のスピードアップをして性能改善する必要がある。
高性能ディジタル信号処理にも同様な必要性がある。代表的要件には画像処理が含まれるが、これはしばしば、人体及び機器を含む物の内部の画像を構築するために、時間を通して２次元又は３次元のセンサーアレイから集められてくる。
これらの多次元信号処理アプリケーションは、超音波又は磁気画像センサーバンクから画像を構築する。これはフレーム生成と同様な性能要件を有している。これらのアプリケーションは、３次元又は４次元環境の再構築／シミュレーションにおける解像特性という目標を持っている。（注：ここで言う４次元とは、時間を通して観察／シミュレーションされた３次元の領域を意味する。）解像特性は、入力センサー解像能、所与の時間内に計算できるＦＦＴ分析の深さ、丸め誤差の制御、データフレームの処理を通してのこれら丸め誤差の累算の関数である。
最小時間で精巧な解像特性を実現するには、生成された画素又は出力データ点当たり数百万、しばしば数十億回の計算処理が必要となる。ダイナミックレンジ制御とフレキシブルな誤差丸め制御を提供するために浮動小数点計算方式を利用するのは極普通である。ソフトウェアが絶え間なく進化することと、多くの異なるアプリケーションの利用のために、アルゴリズム面でのフレキシビリティは優先事項である。これら異なるアプリケーションはしばしば非常に異なるソフトウェアを必要とする。
アプリケーションソフトウェア開発要件は極めて首尾一貫している。特に、大抵のアプリケーションは、概ねコンピュータープログラミング手順言語、Ｃ、Ｃ＋＋、ＦＯＲＴＲＡＮで書かれた（参考資料（１１）−（１８）参照）数多くのソフトウェアを必要とし、マシンレベルプログラミングの使用は、プログラムの最も性能的にクリティカルな部分に制限される。
目標アルゴリズムは以下の共通の特徴を表示するが、それは即ち、処理要素当たりしばしば１００ＭＢ領域までになる大量のメモリーを必要とすること、出力値（画素、データポイント等）当たり非常に多数の算術計算を必要とすること、全てでなければ大抵の入力値（画素、データポイント等）に基づいて非常に多数の計算を必要とすること、必要な通信オーバヘッドは計算容量に比較して比較的小さいことである。
高解像能グラフィクスをサポートするものはこの３０年間に開発されてきた。参考資料（４０）に見られるような１９６０年代１９７０年代の初歩的な努力の結果は、特化した最小のハードウェアでのグラフィクスコンピューターシステムを作り出した。その当時には、ＶＬＳＩ（超大規模集積）集積回路（ＩＣ）に対する考えは殆ど或いは全く無かった。
半導体装置によるグラフィクス産業のサポートは以下の事柄に焦点が当てられている。
Ａ．努力の相当部分を使ったスクリーン表示装置のサポートによる、入出力装置のサポート。この結果として、スクリーンを制御するための専用の集積回路の開発が行われた。参考資料（２）参照。
Ｂ．高速マイクロプロセッサ及びディジタル信号プロセッサの開発。
Ｃ．高速且つ高密度メモリー装置、特にＤＲＡＭ、ＶＲＡＭ等の開発。
Ｄ．リアルタイム画像処理及びフレーム生成アプリケーション向け特定目的要素部品の開発。
これらの努力は以下のような基本的限界を持っている。
Ａ．ディスプレイ装置コントローラーは、各フレームが固定された実行構造マシンにより特定時間内に生成されるというように制限されている。このように、フレームアルゴリズムが必然的に制限される。
Ｂ．高速マイクロプロセッサ及びＤＳＰは偉大な固有のアルゴリズムのフレキシビリティを保有し、それ故、「Ｔｏｙ  Ｓｔｏｒｙ」を作ったＳＵＮネットワークのような高性能専用フレームレンダリング構成で使用される。参考資料（１）参照。インテルのペンティアムプロセッサが出現した結果、ＲＩＳＣ（縮小命令セットコンピューター）社会の全てのトリックが統合されることになった。参考資料（３０）の「付録Ｄ：ＲＩＳＣへの代替：インテル８０ｘ８６」及び参考資料（３１）の「付録：スーパースカラー３８６」はこれについての良い参考資料を提供している。参考資料（３０）の「付録Ｃ：ＲＩＳＣアーキテクチャのサーベイ」は優れた概括を提供している。
しかし、商業ベースのマイクロプロセッサ及びＤＳＰシステムはその大きなオーバヘッド回路により厳しく制限されている。現代のスーパースカラーコンピューターにおいては、このオーバーヘッド回路は実際演算ユニットよりも大きいかもしれない。アーキテクチャ性能／コストのトレードオフに関する議論については、参考資料（３０）（３１）参照。
Ｃ．高性能メモリーは必要ではあるが、メモリーは単に記憶するものでありデータを生成するものではないので、高速フレーム生成がこれだけで保証されるわけではない。
Ｄ．しばしばＤＲＡＭである高性能メモリーと集積回路上で堅く連結されたデータ処理要素を統合する特定目的コンポーネントが幾つか提案されている。しかし、これらの成果には全て制限が付いている。（３２）で論議されている回路は非常に限られた精度の固定小数点演算エンジンを使用している。（３２）で論議されている回路は、浮動小数点の実行及び、単一プロッセッサのローカルメモリーよりも大きなプログラムの取り扱いの際には性能上の制約を受ける。
提案されている特定目的コンポーネントは、アルゴリズムの幾つかのカテゴリーを実行するのに最適化されている。これらのコンポーネントには以下のものが含まれる。
Ｄ１．画像圧縮解凍プロセッサ。これらの回路は重要ではあるが非常に専用化されており、多様なアルゴリズムに対して一般目的解を提供するものではない。例えば、このようなエンジンは、Ｃ、Ｃ＋＋、ＦＯＲＴＲＡＮのような高レベル手順言語で効率的にプログラミングするのは非常に難しくなる傾向にある。これらをアッセンブリ言語でプログラムする要件には当然、そのようなユニットは、ソフトウェア開発に大きな経費を掛けることなく、多次元画像作成並びにグラフィックフレーム生成のための一般的目的の必要性に取り組まないであろうということが含まれている。参考資料（２４）（２５）参照。
Ｄ２．フラクタル、Ｚバッファ、ゴウラウド・シェーディング等のようなグラフィクスアルゴリズムに最適化されたプロセッサ。これらの回路は、グラフィクスフレーム生成及び画像処理の両方が要求する幅広いアプローチ断面への最適化を許容しない。参考資料（２６）−（２９）参照。
Ｄ３．ウェイブレット及び他のフィルター、ファーストパス基数４，８又は１６ＦＦＴ等のような信号処理プリプロセッサ・アクセレレータ。１次元及び２次元離散コサイン変換エンジン。これらの回路は様々の大規模フレーム生成タスクを効率的に実行するためにプログラミングするのは難しい。
Ｄ４．マルチプロセッサ画像プロセッサ。これらのプロセッサは一般目的プログラミングに適さない混合ＭＩＭＤ及びＳＩＭＤシステムを含んでいる。参考資料（２１）及び（４１）−（４３）参照。
これらのプロセッサも、クロマティックのＭＰＡＣＴ  ＩＣのようなＶＬＩＷ（非常に長い命令ワード）ＳＩＭＤ  ＩＣを含んでいる。このようなＩＣは同様に、効率的コンパイラのサポートを必要とする、商業ベースのアプリケーションで使われる大量の３次元動画ソフトウェアのをプログラムするに必要な計算上のフレキシビリティを提供できない。参考資料（３４）（３９）参照。
Ｄ５．マルチメディア信号プロセッサ。これらのプロセッサも、浮動小数点のサポートの欠如、大型外部メモリーへの広範な外部データメモリーインタフェースアクセス帯域幅の欠如、不十分な命令処理フレキシビリティ及びデータ処理汎用性、累算結果に関する非常に均一なデータアクセスメカニズム無しに演算用プログラミングをするには非効率且つ困難なベクトルプロセッサへの依存のような様々な制限を有している。参考資料（３５）−（３８）参照。
必要なのは、ビデオフレームレンダリング及びＤＳＰタスク用の計算に関する上記制限を排除する計算エンジンである。
発明の概要
ディジタル信号及び画像処理と同様にビデオ処理及び動画に使用するためのフレームの全て又は一部を生成するのに必要な、メモリー、ロジック、演算及び制御回路を含む回路が提供されている。１つ又はそれ以上のそのような回路が、集積回路上に設けられている。医療画像作成、仮想現実、ビデオゲーム及びシミュレーション環境下でのリアルタイムシーン生成のような、動画、特に３次元及び他の高性能アプリケーションのためのフレーム生成において非常に優れた性能を提供するため、ビデオ又は画像フレーム生成システムが一つ又はそれ以上の前記集積回路、並びに随意的に追加のメモリー回路で構築されている。この回路は、高度に最適化された計算能力を備えたシングルチップのＪＡＶＡエンジンとして作動すると同様に、ＭＰＥＧ４で提案された高速オブジェクト指向グラフィクス関係ストリームを処理するのに用いられる。
＜ここに請求項を反映した言語を挿入＞
【図面の簡単な説明】
図１は本発明の実施例による基本回路のブロック線図である。
図２は本発明の実施例による図１のアレイプロセッサのブロック線図である。
図３は本発明のもう一つの実施例による図１のアレイプロセッサのブロック線図である。
図４は図１の埋め込み型マイクロプロセッサのブロック線図である。
図５は独立した外部メモリーインタフェースを備えた図１の基本回路２例を有する集積回路のブロック線図である。
図６は一つの外部メモリーインタフェースを共有する図１の基本回路２例を有する集積回路のブロック線図である。
図７は独立した外部メモリーインタフェースを備えた図１の基本回路４例を有する集積回路のブロック線図である。
図８は一つの外部メモリーインタフェースを共有する図１の基本回路４例を有する集積回路のブロック線図である。
図９は二つの外部メモリーインタフェースを共有する図１の基本回路４例を有する集積回路のブロック線図である。
図１０は二つの共有された外部メモリーインタフェースと完全に相互接続されたメッセージポートを備えた図１の基本回路４例を有する集積回路のブロック線図である。
図１１は四つの共有されたメモリーインタフェースを備えた図１の基本回路１６例を有する集積回路のブロック線図である。
図１２は二つの共有されたメモリーインタフェースを備えた図１の基本回路１６例を有する集積回路のブロック線図である。
図１３は図１の基本回路例をその対応するメモリーモジュールに接続するプリント回路ボードのブロック線図である。
図１４は図１の基本回路例をその対応するメモリーモジュールに接続するもう一つのプリント回路ボードのブロック線図である。
定義
ワイヤ
ワイヤは回路の複数のノード間の状態を共有するための機構である。状態は、電圧、電流、位相、スペクトル分解、光子振幅等これに制限されるわけではないがこれらを含む、ある物理的条件に基づく有限のアルファベットである。記号はアルファベットの個々の要素である。関連する物理的条件の計測値範囲は通常記号をエンコードする。最も普通に用いられるアルファベットはセット｛０，１｝即ち、２進記号セットである。上記スキーム全てを用いる２進システムが存在する。他の共通に使用されるアルファベットには、３記号アルファベット、例えば｛０，１，２｝、多重２進アルファベット、例えば｛００，０１，１０，１１｝等がある。他のアルファベットも使用されている。ワイヤは、例えば（集積回路や回路板内の）金属の帯、光ファイバー、マイクロウェーブチャネル（時にはマイクロチャネルとも呼ばれる）として実体のあるものとされる。
ワイヤ束
ワイヤ束は１つ又はそれ以上のワイヤの集まりである。
バス
バスはバスプロトコルを保持しているワイヤ束である。バスプロトコルはワイヤ束で接続された回路間の通信を定義する。バスは通常コンポーネントワイヤ束から構成され、そこでは１つ又はそれ以上のコンポーネントワイヤ束が、１つ又はそれ以上の他のコンポーネントワイヤ束上で、どの接続されたコンポーネントが受信しており、どれが送信しているかを決めることになる。
浮動小数点
浮動小数点表記は数字エンティティを表す状態の集合を含んでいる。集合は、表示された数の符号、仮数、指数を定義する副集合を含んでいる。このような表記は、本文書の参考資料で議論されているものに限定するわけではないがこれを含む、ＩＥＥＥ標準浮動小数点及び特定目的浮動小数点表記を、これに限定するわけではないが、非排他的に含んでいる。浮動小数点表記は非排他的に拡張部を含んでおり、これにより、各々上記のように数の符号、仮数、指数を含む２つの副集合が存在する。数字表現は、数が存在する間隔の表現である。浮動小数点表記は、付加的に非２進システムを含んでおり、そこでは仮数及び指数は２以外の数の累乗を表す。
プログラム可能有限状態マシン
プログラム可能有限状態マシンは、状態レジスタと、可能性としては、その中に状態条件、量等のある１つ又はそれ以上の追加のレジスタと、状態レジスタ、追加のレジスタ、外部入力がこれによって状態レジスタ及び可能性のある追加のレジスタに対する次の値を生成する機構とを含むマシンである。
ＳＩＭＤ
単一命令多重データパスアーキテクチャは、同一命令実行サイクルの間に２つ以上のデータパス上で同一命令を実行する。この基本的コンセプトに対する代表的拡張は、各データパスに関わる「状態フラグビット」の組込である。これらのフラグは、特定のデータパスが、グローバルに共用された命令の幾つか又は全てを実行可能となるように又は実行不可能となるようにする。
ＳＩＭＤアーキテクチャは、複数のデータストリームを同じように処理する必要がある状況に最も適している。これらのデータストリームの本来備わっている同期性は、通信制御問題を度々単純化することにより利点を作り出す。ＳＩＭＤアーキテクチャは、データパス間でデータ処理が同じでなくなる際にはいつでも非効率となる。
ＳＩＭＤアーキテクチャは、データパスに共有される命令処理機構はただ１つしかないので、命令処理オーバヘッドコストは比較的少量しか必要としない。この命令処理機構は命令取り出し機構を有する。データパス集合は通常ただ１つの命令メモリーを必要とする。
ＭＩＭＤ
多重命令多重データパスアーキテクチャは、別個の命令を異なるデータパスユニット上で実行する。このアプローチの基本的利点はフレキシビリティである。如何なるデータ処理ユニットでもそれ自身の命令を、他のデータ処理ユニットとは独立して実行できる。しかし、このフレキシビリティには追加のコストが掛かっている。特に、各データ処理ユニットはそれ自身の命令取り出し、デコーディング、順序づけ機構を保有しなければならない。命令取り出し機構はしばしば、データプロセッサに対しローカルの、少なくとも一つの小さなメモリーを保有する。このローカルメモリーはしばしばキャッシュである。
（非常に）長い命令のワードプロセッサ（各々ＶＬＩＷ及びＬＩＷ）
（非常に）長い命令のワードプロセッサはアーキテクチャの１つのクラスであり、これによって、条件コード上の分岐のような通常の演算ができるプログラムカウンターと、データパスユニットを個別に制御する多重命令フィールドとを含む単一命令処理機構が存在する。これらのアーキテクチャ内では、データパスユニットはしばしば構造と機能において互いに同じではない。
アレイプロセッサ
アレイプロセッサは、１つ又はそれ以上の集合内に配列された複数のデータパスユニットを有するＬＩＷ又はＶＬＩＷ命令処理アーキテクチャとして定義される。本発明の実施例では、後に説明するように、データパス集合は、送信ユニットを有する共通オペランドバスを経由して受け取る共通オペランドを受け取りそしてそれに則って作動し、各データパスはメモリーから１つ又はそれ以上の追加のオペランドを受け取り、各データパス集合は、プログラム制御される内部要素の演算を制御する命令フィールドを保有する命令メモリーを含んでおり、各データパスユニットは、１つ又はそれ以上の乗算／累算器（ＭＡＣ）を含んでおり、各ＭＡＣは多数の累算レジスタを保有している。
乗算−累算器
乗算−累算器は２つのオペランドの乗算と少なくとも１つの他のオペランドの加算（そして減算の可能性もある）を同時に実行する演算回路である。
高速フーリエ変換（ＦＦＴ）
高速フーリエ変換は、信号のスペクトルを生成するための高度に最適化されたアルゴリズムである。様々な含まれるトピックスの徹底的議論のため、参考資料（１１）（１２）（１５）の関連する章を参照されたい。
ベクトルプロセッサ
ベクトルプロセッサはベクトル上で専門に作動するように設計されたアーキテクチャである。通常、ベクトルプロセッサには深くパイプラインが設けられている。ベクトル処理には文献が多数捧げられている。参考資料（４６）−（５３）参照。参考資料（３０）の「ベクトルプロセッサ」はこの課題についての概括を提供している。
特定の実施例についての説明
本発明は、メモリー、ロジック、計算及び専用の回路をカプセル化したコスト効率の良い基本回路と、アルゴリズム、特にビデオフレームレンダリングに用いられる幅広いクラスのアルゴリズムをサポートするに適した制御とを提供する。基本回路を複写すれば、計算容量を増やして、非常に高い性能要件をサポートする能力を増やすことができる。
しばしば多次元である高性能信号処理と高性能フレームレンダリンググラフィクスとの間の差異は僅かである。本文書の中では、議論は、グラフィクスの観点からフレームレンダリングに焦点を当てており、本発明を適用する際の差異を正確に述べる必要があるときには注釈を加えている。
図１は本発明の実施例による基本回路１のブロック線図である。基本回路１では、外部ローカルメモリーインタフェース２用の１つ又はそれ以上のコントローラーが基本回路１と関連する（後の図に示す）ローカル外部メモリーへのアクセスを提供する。このようなローカル外部メモリーは１００メガバイトかそれ以上のオーダー（Ｔｏｙ  Ｓｔｏｒｙ、参考資料（１）参照）、例えば１ギガバイトまでのものであるのが望ましい。マスタメモリーインタフェース及びコントローラー（ＭＭＩＣ）６は「大メモリー幅広インタフェース回路」６とも呼ばれるが、外部ローカルメモリ」インタフェース２と様々な他の構成要素との間の、命令を始めとしたデータの流れを制御する。ＭＭＩＣ６は又、内部ローカルメモリー４へのアクセスも制御する。基本回路１は又、グローバル外部バスインタフェース（ＧＥＢＩ）７、埋め込みマイクロプロセッササブシステム８、ＤＳＰ（アレイプロセッサ）９、近接回路通信ポート１０、特定目的回路１１（例えば、専用のフレームジェネレーター回路、コンテントアドレサブルメモリーＣＡＭ、ビットコードパーサ等）、及び図１に示すように回路を相互接続するワイヤ束３、５、１２、１３、１４、１５、１６、１７も含んでいる。
ＧＥＢＩ７は外部環境とのインタフェースを提供する。この外部バスは、既知のペリフェラルコンポーネントインタコネクト（ＰＣＩ）、アクセレレイテッドグラフィクスポート（ＡＧＰ）、ユニバーサルシリアルバス（ＵＳＢ）、ＩＥＥＥ１３９４（以前はファイアウェア）、ファイバーチャネルのような標準的コンピューターバスでもよいし、外部コントローラーホストと多様な本発明の例との間の通信をサポートするように設計された特定目的のバスであってもよい。
埋め込みマイクロプロセッササブシステム８は基本回路１の作動を制御し、ＤＳＰ（アレイプロセッサ）９又は特定目的回路１１を目標とせずに計算を実行する。マイクロプロセッササブシステム８は以下にもっと詳しく議論する。
ＤＳＰ（アレイプロセッサ）９は浮動小数点演算を実行する。本発明のある実施例では、ＤＳＰ（アレイプロセッサ）９は、参考資料として挙げた１９９７年６月２０日出願の米国特許出願番号第６０／０５０，３９６号に示し論議されているものである。ＤＳＰ（アレイプロセッサ）９は、以下にもっと詳しく議論する。
近接回路通信ポート１０は、基本回路１とシステム内の基本回路１の他の例との間の通信を提供する。基本回路が１例だけしか使用されていないシステムアプリケーションでは、このポート１０は必要ない。特定の実施例では前の文に対する例外があり、そこではこれらのポート１０の幾つかが、基本回路１の例ではないが、にもかかわらず基本回路１の例により或いはそれを通して高度な並行処理から利益を得る他の構成要素（図示せず）との通信を提供する。
基本回路１を多数例有するアプリケーションでは、しばしば、基本回路１の例相互間で、高速並行通信を必要とする。通信ポート１０を設けることにより、基本回路１はＧＥＢＩ７内にできる可能性のあるボトルネックを低減する。特定の実施例では、通信ポート１０は正確に２つの例の間に専用の通信を提供し、それ故、各ポートで使用されるプロトコルは、例えば外部バスインタフェース７で使用されるバスプロトコルより遙かに単純にすることができる。
一般的に、例相互間の通信には標準的方法が使用されている。例えば、技術的に広く資料提供されている、メッセージ転送プロトコルに基づく様々な通信スキームを使用することができる。同様に、幾つかの「セマフォ」システム又はハンドシェーキングシステムの何れかを使用して、隣接していない例上で並行順次処理（ＣＳＰ）演算を同期させ制御する能力を提供することができる。
特定目的回路１１は種々の実施例中に存在し、そうしなければ極度に複雑或いは時間の掛かる、アプリケーションにとって本質的な演算に対し性能強化を提供する。そのような回路の例には、これに限定されるわけではないが、Ｚバッファオペレーション、三角埋め、「ＢｉｔＢｌｔｓ」、面張り等を加速させるためのフレームジェネレーターと、フラクタル圧縮のためのパターンマッチングを加速するため或いは圧縮されたトークンを例えばハッシュテーブル内への標準処理ポインティングへ変換するためのコンテントアドレサブルメモリー（ＣＡＭ）と、ＭＥＧＡ（ムービングピクチャエキスパートグループ）のような高度に圧縮された通信及び、サンマイクロシステムズ社の商標であるが、Ｊａｖａのような言語のための、コマンド及びデータヘッダーをデコードするためのビットコードパーサとが含まれる。
内部メモリーバンク４はランダムアクセスメモリー（ＲＡＭ）アレイの一つ又はそれ以上のバンクを含んでいる。これらのメモリーは、本発明の実施例では経済的なダイナミックランダムアクセスメモリー（ＤＲＡＭ）であるが、他の形式のメモリーを使うこともできる。好適な実施例では、幅広い構成に編成された合計１ないし３２メガバイト（ＭＢ）のメモリーが設けられている。１０２４ビット（１Ｋビット）までの幅が考慮されている。６４ビット以上の幅は「幅広」と考えられている。これらのメモリーについての好適な構成は、これに限るわけではないが、以下のようなものを含んでいる。
３２Ｋ  ｘ  ６４、  １２８、  ２５６、  ５１２、  １Ｋビット
６４Ｋ  ｘ  ６４、  １２８、  ２５６、  ５１２、  １Ｋビット
１２８Ｋ  ｘ  ６４、  １２８、  ２５６、  ５１２、  １Ｋビット
２５６Ｋ  ｘ  ６４、  １２８、  ２５６、  ５１２、  １Ｋビット  等。
７２のような２の累乗以外のデータ長へのアクセスを提供する構成は利点を有し得ることに留意されたい。そのような構成は、ＭＭＩＣ６に統合されている追加の標準ロジックにより実行される、エラー検出訂正スキームをサポートする。
ＭＭＩＣ６（マスタメモリーインタフェース及びコントローラー）は数多くの機能をサポートするディジタルロジック回路である。内部メモリーバンク４がＤＲＡＭであるか或いはＤＲＡＭがやるようにリフレッシュを必要とする場合、ＭＭＩＣ６は自動的に内部ＲＡＭバンク４をリフレッシュする。ＭＭＩＣ６は、ＧＥＢＩ７、埋め込みマイクロプロセッサ８、ＤＳＰ（アレイプロセッサ）９、そして可能性があるものとしては近接回路通信ポート１０の例、及び特定目的回路１１等による、読み取り及び書き込みのための内部ＲＡＭバンク４へのアクセスを許可、制御する。ＭＭＩＣ６は又、ＧＥＢＩ７、埋め込みマイクロプロセッサ８、ＤＳＰ（アレイプロセッサ）９、そして可能性があるものとしては近接回路通信ポート１０の例及び特定目的回路１１等による、外部ローカルメモリーインタフェース２へのアクセスを許可、制御する。
本発明の好適実施例では、ＭＭＩＣ６は、外部ローカルメモリー内のデータ及び／又は命令のためにモジュール７、８、９、１０、１１から要求を受け取ることによりデータ及び命令のフローを制御するための有限状態マシン（ＦＳＭ）を含んでいる。ＭＭＩＣ６はＦＳＭでエンコードされる判断アルゴリズムに基づきこれらを満足させる。データ／命令フロー制御のためのＦＳＭはよく知られている。
本発明の好適実施例では、埋め込みマイクロプロセッサ８、ＤＳＰ（アレイプロセッサ）９、特定目的回路１１の各々に対し、別個の命令及びデータのストリームが維持される。これらの命令及びデータのストリームは通常、プログラム初期化及びオペレーションの間にＧＥＢＩ７から外部メモリーにロードされた後、外部ローカルメモリー上に存在する。これらの命令及びデータのストリームは通常、既知のコンパイラ技法に従って１つ又はそれ以上のコンパイラにより製作され、既知の方法に従って、調整のためある量のハンドシェイキングを組み込む。
ＭＭＩＣ６に加えて、埋め込みマイクロプロセッサ８及びＧＥＢＩ７は、技術的に知られている方法でデータ／命令フローを制御するための指示を提供する。例えばマイクロプロセッサ８は、例えばＧＥＢＩ７上でのエラー制御、初期化、バスエラー処理の捕捉のため、ＦＳＭの制御を先制的に占有できる。
外部ローカルメモリーインタフェース、即ちＥＬＭＩ２用のコントローラー２は、１つ又はそれ以上の種類の外部ＩＣメモリーにアクセスするため、外部タイミング及びインタフェース規定のためのサポートを提供する。例えば、ＥＬＭＩ２は、ＲＡＭに対し読み取り及び書き込みアクセスを提供し、不揮発性メモリーへは読み取りアクセスを提供する。外部メモリーの幾つか又は全てがＤＲＡＭ関係（参考資料（５４）の第６、７章参照）である場合、ＥＬＭＩ２は自動メモリーリフレッシュをサポートする。最も良い場合、ＥＬＭＩ２はリフレッシュの間にアクセス要求の待ち行列を提供する。ＥＬＭＩ２は又随意的に、書き込み、消去、或いは可能性があるとすればゆっくりした演算の間に、アクセス要求の待ち行列を提供する。
少なくとも外部メモリーの幾つかがプログラム可能で非揮発性（参考資料（５４）の第１０、１１、１２章参照）である場合、ＥＬＭＩ２は特定のワードの書き込みと、適切な、ワードのブロックの消去とを提供する。随意的に、ＥＬＭＩ２は、あるアプリケーションでの利点を提供するため、非揮発性メモリーオペレーションに対する消去保留のような、技術的に知られた追加の機能を提供する。
図１に特定的に示されてはいないが、基本回路１は代替実施例においては、アナログ・ディジタル変換器（Ａ／Ｄ）、ディジタル・アナログ変換器（Ｄ／Ａ）、電圧制御発信器（ＶＣＯ）等及びそれらの対応するワイヤ束のような、１つ又はそれ以上のアナログインタフェース構成要素を含んでいる。
代替実施例における追加の２次サポート回路は、これに限るわけではないが、内部クロック乗算器、位相ロックループ（ＰＬＬ）、クロック配布ネットワーク、一体型自己試験（ＢＩＳＴ）回路、境界走査パス等を含んでいるが、これらは関係技術で知られているものである。
基本回路１は、フレームレンダリング及び同様なタスク用の高性能計算エンジンを提供するために多くのやり方で最適化される設計を有している。埋め込みマイクロプロセッサ８，ＤＳＰ（アレイプロセッサ）９、特定目的回路１１は、その個々の命令及びデータを並行して、且つデータ又は命令の欠如に対する停動を最小にして処理するための回路資源を十分に備えている。この効率性は、今までそしてこれからも述べるように、例えば、全体設計から、そして個々のモジュールの設計から生じている。例えばワイヤ束１３は、グローバル外部バス７とメインバスインタフェース上の基本フロー処理とは独立した埋め込みマイクロプロセッサ８との間の、例えば制御のような処理のための専用のパスを提供することにより、メインバスインタフェース（ＭＭＩＣ６及びワイヤ束１２、１４、１５、１６、１７）上の帯域幅オーバヘッドを低減する。このやり方で、メインバスインタフェースの帯域幅が維持される。
ある好適実施例では、基本回路１は集積回路（ＩＣ）として実現される。重要なのは、基本回路１は、その設計により、比較的小さなＩＣ表面積を使って実現できることである。又、アーキテクチャは単純且つフレキシブルなので、コンパイラが効率よくその計算ユニットに、特にマイクロプロセッサとアレイプロセッサに的を絞ることができる。
図２は、本発明の実施例による、図１のアレイプロセッサ９のブロック線図である。以下の議論から明らかになるように、アレイプロセッサ９は、引用参考資料で議論されているように、先行技術のベクトル処理技法を使って効率的に並行処理することのできない計算を実行することができる。
この計算には、例えば、幾つかの比較的短いベクトルを必要とする計算が含まれる。例えば、ａ，ｂ、ｃ、ｄ、ｚを全て複素浮動小数点数として、Ｘ＝（ａｚ＋ｂ）／（ｃｚ＋ｄ）のような複素数関数を計算する場合である。よく知られているように、これらの計算並びに同様の計算はフレームレンダリングでは一般的である。関数を計算する際には、ａ０，ｂ０、ｃ０、ｄ０、ｚ０、Ｘ０が実数要素として、そしてこれに対応してａ１，ｂ１、ｃ１、ｄ１、ｚ１、Ｘ１が虚数要素として定義される。浮動小数点除法回路に入る前に、計算は２つの乗算累算パスで進められる。最初のパスで以下の計算が行われる。
Ａ０＝ａ０＊ｚ０−ａ１＊ｚ１＋ｂ０
Ａ１＝ａ０＊ｚ１＋ａ１＊ｚ０＋ｂ１
Ｂ０＝ｃ０＊ｚ０−ｃ１＊ｚ１＋ｄ０
Ｂ１＝ｃ０＊ｚ１＋ｃ１＊ｚ０＋ｄ１
２番目のパスでは、共有オペランドが発生するので、Ｂ０とＢ１の結果が乗算累算器（後に論議する）にフィードバックされる。
Ｃ０＝Ａ０＊Ｂ０−Ａ１＊Ｂ１
Ｃ１＝Ａ１＊Ｂ０＋Ａ０＊Ｂ１
Ｄ＝Ｂ０＊Ｂ０＋Ｂ１＊Ｂ１
最後に、除算が実行される。
Ｘ０＝Ｃ０／Ｄ
Ｘ１＝Ｃ１／Ｄ
図２の実施例によれば、アレイプロセッサインタフェース回路（ＡＰＩＣ）９６５は、ＭＭＩＣ６からの命令とデータの要求及び受信、ＭＭＩＣ６へのデータの送信を制御する。この実施例中のアレイプロセッサ９は多重データパス処理ユニット９００の単一の集合９７０を有している。データパス処理ユニット９００は、簡素化してデータパス９００とも呼ばれる。集合９７０は演算処理ユニット（ＡＰＵ）を形成する。
ＡＰＵ９７０内では、内部浮動小数点表記が使用される。この内部表記は外部で使用される浮動小数点表記と同じでも同じでなくともよい。一般的に、ＡＰＵ９７０は、例えば標準ＩＥＥＥ浮動小数点表記のような、少なくとも標準的外部表記を期待して適用されている。ある好適実施例では、使用されている浮動小数点表記は、例えば標準ＩＥＥＥ浮動小数点表記の例外ケースを含んでいない簡素化した表記である。簡素化した表記を使用すれば、例外ケースの複雑性を避けることにより、例えば回路サイズに関して、内部効率を高めることができる。例外ケースはフレームレンダリングとＤＳＰアプリケーションには通常大きく関係することはないので、簡素化された表記の使用は現実的である。
ＡＰＵ９７０は、乗算器入力回路として働く共有オペランド回路（ＳＯＣ）９１０を含んでいる。随意的に、ＳＯＣ９１０は、ＲＡＭがオペランドキャッシュ又は先入れ先出し（ＦＩＦＯ）待ち行列として使えるか否かを判断するアドレスコントローラーを有するＲＡＭ回路を含んでいる。ＳＯＣ９１０内の第１のサブ回路（図示せず）は、入力を受け取り、ワイヤ束９０２の状態を捕捉するための多数の入力レジスタを含んでいる。ＳＯＣ９１０は、第１サブ回路内のレジスタと連結された第２のサブ回路（図示せず）を含んでいる。第２サブ回路は整数演算ロジックユニット（ＡＬＵ）（図示せず）を含んでいる。第２サブ回路は、レジスタからのワイヤ束９０２の状態の選択されたフィールド上で、固定小数点加算／減算を（ＡＬＵ内で）実行する。第２サブ回路は又、加算／減算演算の、或いは入力レジスタの選択されたフィールドの固定小数点の結果を、既知の変換アルゴリズムに従って内部浮動小数点表記に変換する。それ故、第２サブ回路は浮動小数点変換ユニット（図示せず）を含むと言われる。
ＡＰＵ９７０は又、２つ又はそれ以上の乗算／累算器（ＭＡＣ）をデータパス処理ユニット９００として含んでいる。ＭＡＣは関係技術分野ではよく知られている。各ＭＡＣ９００は、ＳＯＣ９１０から共有オペランドを受け取るためのワイヤ束９０６に連結されている。各ＭＡＣ９００は又、対応するローカルデータ記憶装置９２０に連結されている。一般的に、ＭＡＣ９００と同じくらい多くのローカルデータメモリー回路９２０がある。
演算の間、各ＭＡＣ９００は３つの数Ｘ、Ｙ、Ｚをある数字フォーマットで受け取るが、ここに、Ｘはワイヤ束９０６を通して受け取られた共有オペランドであり、ＹとＺはローカルデータ記憶装置９２０からワイヤ束９０９を通して受け取られる。
各ＭＡＣ９００は２つ又はそれ以上の、好ましくは少なくとも４個のレジスタを保有する。各ＭＡＣ９００は、乗算及び加算／減算を各句ロックサイクル内に実行することができ、それにより（恐らくは）現在の又は先のクロックサイクル内で受け取られたＸ、Ｙ、Ｚの値からＸＹ＋Ｚ又はＸＹ−Ｚを生成する。各ＭＡＣ９００は生成された結果をそのレジスタの１つに条件付きで記憶する。
ＡＰＵ９００は、共有出力及びフィードバックインタフェース（ＳＯＦＩ）９４０を更に含んでいる。ＳＯＦＩ９４０は、ワイヤ束（９０７）の内部数字フォーマットを、外部的に必要な、必要とされる浮動小数点（例えばＩＥＥＥ浮動小数点）表記又は固定小数点表記に変換するための標準的技法を用いて適合される浮動小数点変換ユニット（図示せず）を含んでいる。勿論、内部浮動小数点表示が外部の表示と同じ実施例では、特定の変換を行う必要はない。ＳＯＦＩ９４０はそのような変換の結果の伝送を、ＡＰＩＣ９６５へのワイドバス９０１上で制御する。特定の実施例では、ＳＯＦＩ９４０は又、伝送の前に必要に応じてその結果を一時的に記憶する。
データメモリー９２０はメモリー回路（９２０）のための対応するアドレスジェネレーター（例えばモジュール９５０内に、以下で議論する）を有するか、又はもう一つのＭＡＣのレジスタの状態が他の２つのオペランドを提供する。
本発明によるアレイプロセッサ９は、例えばベクトルプロセッサを使っては効率的に実行できない各形式の計算を実行できるようにする。例えば、幾つかの離散ウェイブレット変換フィルター（ＤＷＴＦ）の計算では、しばしば、幾つかのベクトルのサブコンポーネントを横切って、幾つかの異なるスカラーを共有する必要がある。ベクトルプロセッサはこのタスクを実行するのに通常、共有すべきスカラーの数と同じだけ多くのサイクルを必要とする。これらのＤＷＴＦでは、全ての偶数の入力は全てのフィルター出力に影響を及ぼし、奇数の入力はフィルター出力の半分だけに影響を及ぼす。この方式で４つの入力を処理すれば、奇数のエントリーは、ベクトルプロセッサアプローチを使っての並行処理はできないという限界が出てくる。しかしアレイプロセッサ９の場合は、例えば、２つ（又はそれ以上）の奇数エントリースカラーエレメントをベクトルの異なるコンポーネントに送ることができるので、これらの問題は最小化される。基数２のＦＦＴは、１つのベクトルの異なるコンポーネントに対する和と差の両方を提供する。本発明は、ベクトルの各コンポーネントに対し並行してこれらを提供することにより、ベクトルプロセッサが必要とするように一対のエレメント当たり２サイクルではなく、１サイクルで結果を導き出す。
図３は、本発明のもう一つの実施例による、図１のアレイプロセッサ９のブロック線図である。図３に示すように、アレイプロセッサ９はＡＰＵ９７０を２つ有している。この構成は、浮動小数点計算が、例えば埋め込みマイクロプロセッサ等他のモジュールによって実行されるべき他の計算との関係で、浮動小数点計算が特に沢山あると期待されるアプリケーションに対し追加の並行処理能力を提供する。更なる実施例では、基本回路１内のＡＰＵ９７０の数を２以上に増やすことができる。
図３によるアレイプロセッサ９は、（図１に関し）基本回路１が合理化され、図３によるアレイプロセッサ９に加えて、ＧＥＢＩ７、ＥＬＭＩ２、埋め込みマイクロプロセッササブシステム８、必要に応じて近接回路通信ポート１０を含み、しかし、追加の特定目的回路１１及びメモリーバンク４を含まず、それ故、ＭＭＩＣ６のメモリーコントローラーを省略するマスターインタフェース及びコントローラー６を含まない実施例に用いられている。
図４は、図１の埋め込みマイクロプロセッササブシステム８のブロック線図である。埋め込みマイクロプロセッサは関係技術分野ではよく知られている。図４に示すように、埋め込みマイクロプロセッササブシステム８はマイクロプロセッサ８００を含んでいる。マイクロプロセッサ８００は、Ｊａｖａ又はＭＰＥＧ−４、プログラム可能有限状態マシン（ＰＦＳＭ）、又はＲＩＳＣエンジンのようなバイトコードマシンとして、好ましくは、ＡＲＭ７ＴＤＭＩ（参考資料（５６）参照）、又はＭＩＰＳ１６（参考資料（５５）参照）のような３２ビットのデータパスを備えた１６ビットの命令セットＲＩＳＣとして実現できる。
埋め込みマイクロプロセッササブシステム８は又、随意のローカルキャッシュ８１０、好ましくは、２−４ウェイインタリーブされた、少なくとも６４頁の、少なくとも１Ｋワードの合計メモリーを含んでいる。通常、キャッシュメモリー８１０は、例えば３２ビットワードとして編集される。キャッシュメモリー８１０は、１つは命令用、もう一つはデータ用の２つのコンポーネントキャッシュを含んでいてもよい。
埋め込みマイクロプロセッササブシステム８は又、関係技術分野では知られているように、ＲＡＭ８２０又はＲＯＭ８３０のような追加の随意のローカル記憶装置を含んでいる。ＲＯＭ８３０は、マイクロプロセッササブシステム８及び／又は基本回路１のための、例えば初期化情報を含んでいてもよい。
ある好適実施例では、マイクロプロセッサ８００は２バージョンの命令セットを提供するが、そのうち一つのバージョンは長さ１６ビットで、コンパイラ技法で生成されるコードにより使用される最も普通の命令を含んでおり、もう一つのバージョンは長さ３２ビットである。このようなマイクロプロセッサは、関係技術分野では知られている。このようなマイクロプロセッサの利点は、生成されるプログラムコードの大部分は１６ビットフォーマット内にあるであろうということである。各マイクロプロセッサ８００では、３２ビット又はそれ以上の各命令取り出しが、更なる命令メモリーアクセスに頼ることなく、次の１ないし３命令を提供できる。
基本回路１及びアレイプロセッサ９は、ここで論議したように、数多くの注目に値する利点を有する回路のアーキテクチャ又はクラスを明らかにする。
その利点の一つは、特定の計算集約的アルゴリズムをある環境下で実行する場合、回路１は、マイクロプロセッサ又は従来型のＤＳＰを使った同等サイズのプリント回路基板上でそのようなアルゴリズムを実行する場合と比較して、非常に高レベルの効率を有しているということである。
一般的に、基本回路１は、同じ結果を出す入手可能な他の機構と比べて、回路サイズに関する要件は低い。それ故、基本回路１は同じ結果を出す他の機構より安い。アレイプロセッサ９の回路サイズに関する要件が低い要因の一つは、それが直接には除算を行わないことであり、このことは、大多数の対象としているフレームレンダリング及びＤＳＰアルゴリズムでは、実際非常に一般的なことではない。単精度アルゴリズムのみをサポートするためにＭＡＣが構成されているアレイプロセッサ９の実施例では、大きいクラスのフレームレンダリング及びＤＳＰアプリケーションに対しては通常十分であるので、アレイプロセッサ９の回路サイズ要件は実質的に更に低減される。
アレイプロセッサ９のアーキテクチャは、（例えばＳＯＣ９１０での）浮動小数点変換そしてその後に（ＭＡＣ９００での）乗算及び累算が後に続く、固定小数点の加算／減算の「フロントエンド」を提供する。この「フロントエンド」は、対称、非対称ＦＩＲ及び低基数ＦＦＴと結びついて基本的な演算を行うことができる。これらの演算は、しばしば、通常８ないし１６ビットの固定小数点精度を生成するサンプリング回路から固定小数点バージョンでデータを受け取る実際のＤＳＰアプリケーションにおいて極めて有用である。
アレイプロセッサ９のもう一つの利点は、丸め誤差を累算する一般的事象に関係する。ＤＳＰアルゴリズムが演算結果の精度維持するということは非常に重要である。効率化のため、従来のＤＳＰプロセッサの多くは固定小数点演算を実行するアルゴリズムを使用している。そのような固定小数点演算は、精度を維持するため丸め誤差の管理に多大な注意を払わなければならない。これに対し、アレイプロセッサ９は浮動小数点演算を効率的に実行できる。浮動小数点計算はずっと良いダイナミックレンジを提供するという利点を持っている一方で、同じ精度の結果を得るようにプログラムするのが極めて容易である。
特定の、アレイプロセッサ９の実施態様例の能力を検証してみるのは興味あることである。この実施態様例では、アレイプロセッサ９は（図３によれば）そのＡＰＩＣ９６５で、ＭＭＩＣ６から少なくとも１２８ビットを受け取る。各ＡＰＵ９７０のＳＯＣ９１０は少なくとも６４ビット（好ましくな１２８ビット）を同時に受け取ることができる。ＳＯＣ９１０は受け取ったデータを固定８ビット又は１６ビットの整数フィールドにデコンポーズすることができる。ＳＯＣ９１０はこれらのフィールドを４つまでの集合中で同時に加減算できる。この実施態様例の構成は計算の中でも、基数４のＦＦＴを計算するのに極端に高い性能を達成できる。
この実施態様例では、アレイプロセッササブシステム９は、２００メガヘルツ（ＭＨｚ）の内部クロック速度を有している。以下の演算を各クロックサイクル毎に実行することができる。それは即ち、４つの単精度浮動小数点乗算及び４つの単精度浮動小数点加算と、整数／固定小数点加／減算、整数／固定小数点から浮動小数点式への変換と、浮動小数点から固定小数点式への変換とである。この実施態様例では、ローカルデータ記憶装置９２０は、対応するＭＡＣ９００のためにＹ、Ｚオペランドを取り出している間にＭＭＩＣ６を通したアクセスから受け取ったデータからの同時ローディングをサポートするため、２ウェイにインタリーブされている。
この実施態様例では、通信スキームは、標準的技法を使って、ＧＥＢＩ７、ＭＭＩＣ６、埋め込みマイクロプロセッササブシステム８、ＥＬＭＩ２、アレイプロセッサ９のＡＰＩＣ９６５の実現の中に具体化されており、アレイプロセッサ９が、将来に想像されているフレームレンダリング及びＤＳＰアプリケーションの形式に対して、７５％の時間のオーダーで完全に活動的であり続けられるようにしている。この性能想定は、基本回路１とその内部アレイプロセッサ９に対するデータのローカリティに基づき妥当である。
この実施態様例の結果としての性能は、上記想定によれば、多くのＤＳＰ及び特定フレームレンダリングアルゴリズムに対し１−３ギガフロップ（毎秒１０億浮動小数点演算）であろう。
基本回路１は、１７６ピンＴＱＲＦ（薄型方形フラットパック）のような標準ＩＣパッケージで実現され、各ＩＣはプリント回路基板スペースの約１平方インチを占めるものと仮定しよう。そうすれば、本発明のある実施例はこれらのＩＣを３２個まで保持できるＰＣＩバスカードとして実現でき、これによって僅かのコストで、シリコングラフィクスワークステーション（参考資料（１）Ｔｏｙ  Ｓｔｏｒｙ参照）の約１６倍の性能が実現できる。
本発明は特に、Ｊａｖａ（参考資料（６４）−（６５）参照）、及びＭＰＥＧ−４（参考資料（５７）−（６３）参照）のような対話型オーディオービデオ言語を含むアプリケーションでの使用に適している。ＭＰＥＧ−４標準作業は、多様なアルゴリズムをカスタマーが目指すハードウェア上で実行できる環境を開発している。Ｊａｖａはその定義において基本的にマシンに依存せず、非常に複雑で計算的に費用の掛かるアルゴリズムを作り出し引き起こす意味的能力を保有している。本発明はネットワーク機器の高性能サポートを提供する。
幾つかの実施例の補助説明
本発明の幾つかの実施例を、様式化されたアウトライン形式で、集積回路として補足的に説明するが、この集積回路は、
１つの大メモリー幅広インタフェース回路であって、この大メモリーは集積回路内に配置されていてもいなくてもよく、この大メモリー幅広インタフェース回路はａａワイヤ束Ｄ０から成るバスＢ０によって大メモリーと接続されており、
大メモリー広インタフェース回路内の両方向トランシーバーは前記接続バスＢ０のワイヤ束Ｄ０を接続して、大メモリー幅広インタフェース回路と大メモリーとの間のデータの転送を提供する、
そのような１つの大メモリー幅広インタフェース回路と、
１つ又はそれ以上のデータ処理回路であって、
プログラム可能有限状態マシン（ＰＦＳＭ）又はマイクロプロセッサの何れかと、
大メモリー幅広インタフェースに対するデータプロセッサインタフェース回路であって、このデータプロセッサインタフェース回路はバスＢ１によって大メモリー幅広インタフェース回路と接続されており、両回路は、
前記接続バスＢ１のワイヤ束コンポーネントＤ１に接続された両方向トランシーバーと、
前記ローカルメモリー回路内で前記接続バスＢ１の前記接続コンポーネントワイヤ束Ｄ１の主張及び／又は感知された状態を記憶する能力を提供し、状態がもはや主張されずそれ故前記接続バスＢ１の前記接続コンポーネントワイヤ束Ｄ１上で感知されないかもしれない後に状態情報を保持できるようにするローカルメモリー回路とから成り、且つ、
前記バスＢ１のワイヤ束Ｄ１の信号状態が、時間通りに前向き又は後ろ向きに翻訳されたＤ０の信号状態の幾つか又は全てを含んでいる、即ち、ある機構によってデータが前記バスＢ０のワイヤ束Ｄ０へ又はそこから転送できる、
そのようなデータプロセッサインタフェース回路と、
を含む１つ又はそれ以上のデータ処理回路と、
１つ又はそれ以上のアレイプロセッサであって、その各々は大メモリー幅広インタフェース回路へのアレイプロセッサインタフェース回路と、共有オペランド入力回路と、多数の乗算／累算器と、共有乗算器出力回路と、命令デコーダー回路とを含んでおり、且つ、
アレイプロセッサインタフェース回路の大メモリー幅広インタフェース回路への接続はバスＢ２から成り、且つインタフェース回路と大メモリー幅広インタフェース回路は、
前記接続バスＢ２の接続ワイヤ束コンポーネントＤ２に接続された両方向トランシーバーと、
前記ローカルメモリー回路内で前記接続バスＢ２の前記接続コンポーネントワイヤ束Ｄ２の主張及び／又は感知された状態を記憶する能力を提供し、状態がもはや前記接続バスＢ２の前記接続コンポーネントワイヤ束上で主張されずそれ故感知されないかもしれない後に状態情報を保持できるようにするローカルメモリー回路とを含み、且つ、
前記バスＢ２のワイヤ束Ｄ２の信号状態が、時間通りに前向き又は後ろ向きに翻訳されたＤ０の信号状態の幾つか又は全てを含んでいる、即ち、ある機構によってデータが前記バスＢ０のワイヤ束Ｄ０へ又はそこから転送できるようになっており、
共有オペランド入力回路はバスＢ３によってアレイプロセッサインタフェース回路に接続され、しかも、共有オペランド入力回路は、共有乗算器出力回路と、各乗算／累算器に関係するローカルデータメモリー回路にバスＢ４で接続されており、且つ、
前記共有オペランド入力回路はワイヤ束の状態情報の幾つか又は全てを受け取るようになっており、
各乗算−累算器は乗算及び加算機構に加えて２つの独立してアドレス可能なランダムアクセスメモリーからなっており、且つ、
前記乗算及び加算機構は一つの乗算器入力を共有し、読み取り専用メモリーであってもなくてもよい２つの独立してアドレス可能なランダムアクセスメモリーから２つの他の入力を供給されており、
各ランダムアクセスメモリーのアクセス及び制御ワイヤ束は制御ワイヤ束（ＣＷＢ）のコンポーネントであり、
前記乗算及び加算機構は、乗算−累算器と乗算器出力回路とを共有するワイヤ束ＭＯへの１つの出力ドライバを保有しており、
各出力ドライバーは制御ワイヤ束ＣＷＢのワイヤ束コンポーネントにより制御されており、
前記乗算器出力回路はＭＯワイヤ束インタフェースと、乗算器出力メモリー回路と、乗算器出力インタフェースとから成り、且つ、
前記ＭＯワイヤ束インタフェースはＭＯワイヤ束に接続された入力回路から成り、
前記乗算器出力回路はＭＯワイヤ束インタフェース回路の入力回路と、メモリー回路内に記憶されるべきデータを供給できるような方法で接続されており、
前記メモリー出力回路は乗算出力インタフェースと接続され、これによりメモリー回路の状態が、メモリー出力インタフェースからコンポーネントワイヤ束又は全体バスＢ３の何れかに出力できる、
そのような１つ又はそれ以上のアレイプロセッサと、
を含む集積回路である。
ある実施例では、バスＢ０は更にコンポーネントワイヤ束Ｄ０Ａ及びＤ０Ｃを含んでおり、且つ
大メモリー幅広インタフェース回路内の出力ドライバは、前記接続バスＢ０のワイヤ束Ｄ０Ａを接続して、大メモリーデータにアクセスするのに必要なアドレス信号を供給し、
大メモリー幅広インタフェース回路内の出力ドライバは、前記接続バスＢ０のワイヤ束Ｄ０Ｃを接続して、大メモリーデータにアクセスするのに必要な制御信号を供給する。
ある代替実施例では、バスＢ０は更にコンポーネントワイヤ束Ｄ０Ｆを含んでおり、且つ、
大メモリー幅広インタフェース回路内の入力ドライバは、前記接続バスＢ０のワイヤ束Ｄ０Ｆを接続して、大メモリーデータアクセスの状態を通信するのに使うフィードバック信号を供給する。
ある実施例では、外部回路への通信インタフェースの内少なくとも一つが、請求されている回路がバスマスターとして作動するバスへの通信インタフェースを提供する。
ある実施例では、外部回路への通信インタフェースの内少なくとも一つが、請求されている回路がバススレーブとして作動するバスへの通信インタフェースを提供する。
図５−１２は、ビデオフレーム生成タスク及び他の概ね並行する計算に対して近線形昇速を提供するための本方法の使用を示す。統合化のレベルが進むに従って、共有外部メモリーインタフェース内への外部メモリーインタフェース通信パスを集めて一団とすることが重大な利点となってくる。各外部メモリーインタフェースは、各ＩＣに多くのピンを追加することにより生産コストに重大な経済的負担を加える。これはダイのサイズばかりでなく、熱散逸及び電力消費にもますます影響を与える。外部メモリーとのインタフェースをこの方法で共有すれば、製造コストに関して通信帯域幅を経済的に最適化できる。
図５は独立した外部メモリーインタフェースを備えた図１の基本回路２例を有する集積回路のブロック線図である。
図６は一つの外部メモリーインタフェースを共有する図１の基本回路２例を有する集積回路のブロック線図である。
図７は独立した外部メモリーインタフェースを備えた図１の基本回路４例を有する集積回路のブロック線図である。
図８は一つの外部メモリーインタフェースを共有する図１の基本回路４例を有する集積回路のブロック線図である。
図９は二つの外部メモリーインタフェースを共有する図１の基本回路４例を有する集積回路のブロック線図である。
図１０は二つの共有された外部メモリーインタフェースと完全に相互接続されたメッセージポートを備えた図１の基本回路４例を有する集積回路のブロック線図である。
図１１は四つの共有されたメモリーインタフェースを備えた図１の基本回路１６例を有する集積回路のブロック線図である。
図１２は二つの共有されたメモリーインタフェースを備えた図１の基本回路１６例を有する集積回路のブロック線図である。
図１３は図１の基本回路例をその対応するメモリーモジュールに接続するプリント回路ボードのブロック線図である。
図１４は図１の基本回路例をその対応するメモリーモジュールに接続するもう一つのプリント回路ボードのブロック線図である。
参考資料
１．ユーボイス、ジェフ「太陽ハリウッドを行く：１１７ＳＰＡＲＣステーションレンダー「Ｔｏｙ  Ｓｔｏｒｙ」最初の長編コンピューター動画フィルム」、ＳｕｎＷｏｒｌｄ  Ｏｎｌｉｎｅ、１９９５年１１月、ｗｗｗ電子マガジンhttp://www.sun.com/sunworldonline/swol-11-1995/swol-11-pixar.html参照。
２．ファック、ヘンリー、米国特許第４，５９０，４６５号「ロジック補強した画素メモリーセルを使ったグラフィクスディスプレイシステム」１９８２年２月１８日出願、１９８６年５月２０日認可
３．アンドリュー、デビッドＨ他、米国特許第４，６４６，０７５号「データ処理パイプラインのためのシステムと方法」１９８３年１１月３日出願、１９８７年２月２４日認可
４．リトルフィールド、リチャード、米国特許第４，９４９，２８０号「パラレルプロセッサベース・ラスターグラフィックスシステムアーキテクチャ」１９８８年５月１０日出願、１９９０年８月１４日認可
５．ヘドリー、デイビッド他、米国特許第４，９５３，１０７号「ビデオ信号処理」１９８９年８月２８日出願、１９９０年８月２８日認可。
６．ウェストバーグ、トーマス他、米国特許第５，１０１，３６５号「Ｚバッファメモリーを使用したウィンドウを拡張するための装置」１９９０年１１月７日出願、１９９２年３月３１日認可
７．カウリー、ロビン、米国特許第５，１０３，２１７号「電子画像処理」１９８８年１１月２９日出願、１９９２年４月７日認可
８．ライアン、ボブ他、米国特許第５，１８２，７９７号「階層データ構造をディスプレイ表示するためのマルチプロセッサグラフィクスディスプレイシステム」１９９２年５月２７日出願、１９９３年１月２６日認可
９．ソカイトシオ他米国特許第５，５９４，８４４号「オブジェクトベースパラメータを使って数値分割されたボクセルを通しての光線追跡を使った３次元ビュー」１９９４年１月２５日出願、１９９７年１月１４日認可
１０．ユーリン、キース、米国特許第５，６３０，０４３号「３次元画像表示のための動画テクスチャマップ装置及び方法」１９９５年５月１１日出願、１９９７年５月１３日認可
１１．オッペンハイム、アラン＆シェファ、ロナルド「ディジタル信号処理」▲Ｃ▼１９７５年、プレンティスホール、イングルッドクリフ、ニュージャージー
１２．オッペンハイム、アラン＆シェファ、ロナルド「離散時間信号処理」▲Ｃ▼１９８９年、プレンティスホール、ＩＳＢＮ  ０−１３−２１６２９−Ｘ
１３．バーンスリー、ミチェル＆ハード、ライマン「フラクタル画像圧縮」▲Ｃ▼１９９３年、ＡＫピーター社、ウェズリー、マサチューセッツ、０２１８１、ＩＳＢＮ  １−５６８８１−０００−８
１４．ドーベチー、イングリッド「ウェイブレットについての１０の講義」▲Ｃ▼１９９２年、工業応用数学界、ＩＳＢＮ  ０−８９８７１−２７４−２
１５．カイザー、ジェラルド「ウェイブレットへのフレンドリーな案内」▲Ｃ▼１９９４年、バークハウザ、ボストン、ＩＳＢＮ  ０−８１７６−３７１１−７
１６．フィッシャー、ユバル（編集）「フラクタル画像圧縮」▲Ｃ▼１９９５年、スプリンガー−フェルラーク、ニューヨーク、ＩＳＢＮ  ０−３８７−９４２１１−４
１７．マグレガ、Ｄ．Ｒ．他「高速フラクタル圧縮」ドブ博士のジャーナル、１９９６年１月、３４頁他
１８．リム、ジェー「２次元信号及び画像の処理」▲Ｃ▼１９９０年、プレンティスホール、ＩＳＢＮ  ０−１３−９３５３２２−４
１９．グラスナー、アンドリュー「ディジタル画像合成の原理」１、２巻、▲Ｃ▼１９９５年、モーガンカウフマン出版社、ＩＳＢＮ  １−５５８６０−２７６−３
２０．フォーリー、ジェームズ他「コンピューターグラフィクス：原理と実際−第２版」▲Ｃ▼１９９６年、１９９０年、アディソン−ウーズレイ出版社、ＩＳＢＮ  ０−２０１−８４８４０−６
２１．ワット、アラン「３次元コンピューターグラフィクス」第２版、▲Ｃ▼１９９３年、アディソン−ウーズレイ出版社、ＩＳＢＮ  ０−２０１−６３１８６−５
２２．ワット、アラン＆ワット、マーク「進化したアニメーション及びレンダリング技法」▲Ｃ▼１９９２年、ＡＣＭプレス、ＩＳＢＮ  ０−２０１−５４４１２−１
２３．プルシンキヴィッツ、プルツェミズロー＆リンドナイヤー、アリスティッド他「プラントのアルゴリズム的美」▲Ｃ▼１９９０年、スプリンガ−フェルラーク、ニューヨーク社、ＩＳＢＮ  ０−３８７−９７２９７−８
２４．イワタエイジ他「リアルタイムＭＰＥＧ２ビデオコーディング／デコーディングのための２．２ＧＯＰＳビデオＤＳＰ、２−ＲＩＳＣ  ＭＩＭＤ、６−ＰＥ  ＳＩＭＤ」▲Ｃ▼１９９７年ＩＥＥＥ国際固体素子回路会議、１９９７年ＩＥＥＥ、ＩＳＢＮ  ０−７８０３−３７２１−２、２５８−２５９頁
２５．シルバーブルック、キア、米国特許第５，５９０，２５２号「ビデオプロセッサシステム及びオーディオプロセッサシステム」１９９３年４月２８日出願、１９９６年１２月３１日認可
２６．ユーリン、キース、米国特許第５，６３０，０４３号「３次元画像表示のための動画テクスチャマップ装置及び方法」１９９５年５月１１日出願、１９９７年５月１３日認可
２７．サカイトシオ他米国特許第５，５９４，８４４号「オブジェクトベースパラメータを使って数値分割されたボクセルを通しての光線追跡を使った３次元ビュー」１９９４年１月２５日出願、１９９７年１月１４日認可
２８．グリーン、エドワード他、米国特許第５，５７９，４５５号「階層的Ｚ−バッファ可視性を使ったディスプレイ上への３次元シーンのレンダリング」１９９３年７月３０日出願、１９９６年１１月２６日認可
２９．ポールトン、ジョン他、米国特許第５，４８１，６６９号「強化メモリー装置を利用した画像生成のためのアーキテクチャ及び装置」１９９５年２月６日出願、１９９６年１月２日認可
３０．パターソン、デイビッド＆ヘネシー、ジョン「コンピューターアーキテクチャ：量的アプローチ（第２版）」▲Ｃ▼１９９０年、１９９６年、モーガンカウフマン出版社、ＩＳＢＮ  １−５５８６０−３２９−８
３１．ジョンソン、マイク「スーパースカラ・マイクロプロセッサ設計」▲Ｃ▼１９９１年、ＰＴＲプレンティス−ホール社、イングルッドクリフ、ニュージャージー、ＩＳＢＮ  ０−１３−８７５６３４−１
３２．ムラカミカズアキ他「２５６ＭｂＤＲＡＭ及びカッドプロセッサを備えたパラレル処理ＲＡＭチップ」１９９７ＩＥＥＥ国際固体素子回路会議、２２８−２２９頁、ＩＳＢＮ  ０−７８０３−３７２１−２
３３．アイモトヨシハル他「１６ＭｂＤＲＡＭと１２８プロセッサを統合する７．６８ＧＰＩ３．８４ＧＢ／ｓ  １Ｗパラレル画像処理ＲＡＭ」１９９６ＩＥＥＥ国際固体素子回路会議、３７２−３７３頁、ＩＳＢＮ  ０−７８０３−３１３６−２
３４．ヤオ、ヨン「クロマティックのＭｐａｃｔ２ブースト３Ｄ：Ｍｐａｃｔ／３０００が大量出荷される最初のメディアプロセッサになる」マイクロプロセッサリポート第１０巻Ｎｏ．１５、１頁及び６−１０頁、１９９６年１１月１８日発行、▲Ｃ▼１９９６年、マイクロデザインリソース
３５．シミズ、トヌ他「１６ＭｂＤＲＡＭを備えたマルチメディア３２ｂＲＩＳＣマイクロプロセッサ」１９９６ＩＥＥＥ国際固体素子回路会議、２１６−２１７頁、ＩＳＢＮ  ０−７８０３−３１３６−２
３６．グラスコフスキー、ピーター「富士通はＤＶＤでメディアプロセッサを目指す：ＭＭＡは長命令ワードコア、統合周辺機器を結合」マイクロプロセッサリポート第１０巻Ｎｏ．１５、１９９６年１１月１８日発行、▲Ｃ▼１９９６年、マイクロデザインリソース
３７．「三星、マルチメディア信号プロセッサを発表」ジョンペディアソシエーツＰＣグラフィックスレポート、１９９６年８月２０日発行、▲Ｃ▼１９９６年、ジョンペディアソシエーツ、ティブロン、カリフォルニア９４９２０、１１５３−１１５６頁
３８．ヤオ、ヨン「三星、メディアプロセッサを出荷：ＭＰＡはマイクロソフトの新３Ｄソフトウェアアーキテクチャ用に設計されている」マイクロプロセッサリポート第１０巻、Ｎｏ．１１、１頁及び６−９頁、１９９６年８月２６日発行、▲Ｃ▼１９９６年、マイクロデザインリソース
３９．「クロマティック、Ｍｐａｃｔを初公開」ジョンペディアソシエーツＰＣグラフィックスレポート、１９９６年８月２７日発行、▲Ｃ▼１９９６年、ジョンペディアソシエーツ、ティブロン、カリフォルニア９４９２０、１１８２−１１８３頁
４０．ロムニー、ゴードン他、米国特許第３，６２１，２１４号「電子的に生成された透視図」１９６８年１１月１３日出願、１９７１年１１月１６日認可
４１．ゴーブ、ロバート、米国特許第５，４１０，６４９号「画像表現コンピューターシステム及びネットワーク」１９９２年６月２９日出願、１９９５年４月２５日認可
４２．ゴーブ、ロバート他、米国特許第５，５２２，０８３号「１つのプロセッサが残りのプロセッサで使うために命令を取り出す、ＳＩＭＤモードで作動する再構成可能マルチプロセッサ」１９９４年６月２２日出願、１９９６年５月２８日認可
４３．「ＴＭＸ３２０Ｃ６２０１ディジタル信号プロセッサ：プロダクトプレビュー」ＳＰＲＳ０５１．ｐｄｆ、１９９７年１月、▲Ｃ▼１９９７年、テキサスインスツルメント、テキサスインスツルメントウェブサイトhttp://www.ti.comから入手可能
４４．ワインレブ、ダニエル＆ムーン、デイビッド「フレイバー：ＬＩＳＰマシンにおけるメッセージパッション」ＡＩメモ６０２、１９８０年１１月、Ｍ．Ｉ．Ｔ．人工知能研究所
４５．デーリィ、ウィリアム他「メッセージ駆動プロセッサアーキテクチャ、バージョン１１」ＡＩメモ１０６９、１９８８年８月、Ｍ．Ｉ．Ｔ．人工知能研究所
４６．クレイ、セイモア、米国特許第４，１２８，８８０号、１９７６年６月３０日出願、１９７８年１２月５日認可
４７．ベアード、ダグラス他、米国特許第５，５４４，３３７号「ベクトルレジスタで制御するためのレジスタを有するベクトルプロセッサ」１９９５年６月７日出願、１９９６年８月６日認可
４８．ヨシナガトール、シンジョウナオキ、米国特許第５，５９８，５７４号「ベクトル処理装置」１９９６年３月１８日出願、１９９７年１月２８日認可
４９．クレイ、セイモア、米国特許第３，８３３，８８９号「マルチモードデータ処理システム」１９７３年３月８日出願、１９７４年９月３日認可
５０．ポーター、ジョン他、米国特許第４，５８９，０６７号「ダイナミックに構成可能なマルチファンクションパイプラインＡＬＵを備えた全浮動小数点ベクトルプロセッサ」１９８３年５月２７日出願、１９８６年５月１３日認可
５１．エリス、ジェームズ他、米国特許第５，４１８，９７３号「ベクトル演算及びスカラー演算の双方を調整するキャッシュコントローラーを備えたディジタルコンピューターシステム」１９９２年６月２２日出願、１９９５年５月２３日認可
５２．オモダコイチロー他、米国特許第４，６５１，２７４号「ベクトルデータプロセッサ」１９８４年３月２８日出願、１９８７年３月１７日認可
５３．ギャラップ、ミシェル他、米国特許第５，６００，８４６号「データ処理システム並びにその方法」１９９５年２月１７日出願、１９９７年２月４日認可
５４．プリンス、ベティ「半導体メモリー：設計、製造、適用ハンドブック、第２版」▲Ｃ▼１９８３年、１９９１年、ジョンウィリィ＆サン社、ＩＳＢＮ  ０−４７１−９４２９５−２
５５．「製品説明：ＭＩＰＳ１６アプリケーション特定エクステンション」ｖ１．１、１９９７年７月２４日のシリコングラフィクス社ウェブサイト
http://www.sgi.com/MIPS/mips16pdfで見ることができる
５６．「ＴｈｕｍTMｖ．２．０紹介」１９９５年３月出版、▲Ｃ▼アドバンスドＲＩＳＣマシン社（ＡＲＭ）１９９５年
５７．「ボリューム１エディトーリアル」画像通信ジャーナル：ＭＰＥＧ−４についての特集、１９９７年７月１７日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper0.htmからダウンロード
５８．ケネン、ロブ、ペレイラ、Ｆ．、チャリグリョーネ、Ｌ．「ＭＰＥＧ４：コンテクストとオブジェクティブ」画像通信ジャーナル：ＭＰＥＧ−４についての特集、１９９７年７月１７日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper1.htmからダウンロード
５９．コンティン、Ｌ、他「ＭＰＥＧ−４オーディオコーデックプロポーザルでのテスト」画像通信ジャーナル：ＭＰＥＧ−４についての特集、１９９７年７月１７日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper3.htmからダウンロード
６０．オスターマン、ジョーン「ＭＰＥＧ−４におけるビデオツール及びアルゴリズムの評価に使用されるメソドロジー」画像通信ジャーナル：ＭＰＥＧ−４についての特集、１９９７年７月１７日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper4.htmからダウンロード
６１．エブラーミ、トーラジュ「ＭＰＥＧ−４ビデオ検証モデル：内容表現に基づくビデオエンコーディング／デコーディングアルゴリズム」画像通信ジャーナル：ＭＰＥＧ−４についての特集、１９９７年７月１７日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper5.htmからダウンロード
６２．アバロ、Ｏ．他「ＭＰＥＧ−４システムと記述言語：可聴可視情報表現における進んだ方法」画像通信ジャーナル：ＭＰＥＧ−４についての特集、１９９７年７月１７日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper6.htmからダウンロード
６３．デンジ、Ｐ．他「ＭＰＥＧ−４：混合メディアのためのオーディオ／ビデオ＆合成グラフィクス／オーディオ」画像通信ジャーナル：ＭＰＥＧ−４についての特集、１９９７年７月１７日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper7.htmからダウンロード
６４．ゴスリング、ジェイムズ、ジョイ、ビル＆スチール、ガイ「ＪａｖａTM言語仕様」▲Ｃ▼１９９６年サンマイクロシステムズ社、アディソン−ウーズレイにより出版、ＩＳＢＮ  ０−２０１−６３４５１−１
６５．アーノルド、ケン＆ゴスリング、ジェイムズ「ＪａｖａTMプログラミング言語」▲Ｃ▼１９９６年サンマイクロシステムズ社、アディソン−ウーズレイにより出版、ＩＳＢＮ  ０−２０１−６３４５５−４
６６．インテル「アクセレレイティッドグラフィクスポートインタフェース仕様」改訂版１．０、インテル社、１９９６年７月３１日
６７．「ユニバーサルシリアルバス仕様」改訂版１．０、コンパック、ディジタルイクイップメント、ＩＢＭＰＣ、インテル、マイクロソフト、ＮＥＣ、ノーザンテレコムの各社による、１９９６年１月１５日
６８．ソラーリ、エドワード＆ウィルス、ジョージ「ＰＣＩハードウェア及びソフトウェア、第３版」▲Ｃ▼１９９４年、１９９５年、１９９６年、アナブックにより出版、サンディエゴ、カリフォルニア、ＩＳＢＮ  ０−９２３９２−３２−９、第５刷、１９９６年１月
６９．シャンリー、トム、アンダーソン、ドム「ＰＣＩシステムアーキテクチャ、第３版」▲Ｃ▼１９９５年マインドシェア社、ＩＳＢＮ  ０−２０１−４０９９３−３，第１刷、１９９５年２月
７０．パパイチャリス、パノス＆ソ、ジョン「ＴＭＳ３２０２０による高速フーリエ変換アルゴリズムの実現」、「ＴＭＳ３２０２０によるディジタル信号処理アプリケーション」の８４−８５頁、▲Ｃ▼１９８６年テキサスインスツルメント社
【図１】
0004235987.tif 000002
【図２】
0004235987.tif 000003
【図３】
0004235987.tif 000004
【図４】
0004235987.tif 000005
【図５】
0004235987.tif 000006
【図６】
0004235987.tif 000007
【図７】
0004235987.tif 000008
【図８】
0004235987.tif 000009
【図９】
0004235987.tif 000010
【図１０】
0004235987.tif 000011
【図１１】
0004235987.tif 000012
【図１２】
0004235987.tif 000013
【図１３】
0004235987.tif 000014
【図１４】
0004235987.tif 000015