[go: up one dir, main page]

JP4235987B2 - ビデオフレームレンダリングエンジン - Google Patents

ビデオフレームレンダリングエンジン Download PDF

Info

Publication number
JP4235987B2
JP4235987B2 JP52299998A JP52299998A JP4235987B2 JP 4235987 B2 JP4235987 B2 JP 4235987B2 JP 52299998 A JP52299998 A JP 52299998A JP 52299998 A JP52299998 A JP 52299998A JP 4235987 B2 JP4235987 B2 JP 4235987B2
Authority
JP
Japan
Prior art keywords
mac unit
coupled
circuit
local memory
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP52299998A
Other languages
English (en)
Other versions
JP2001506781A (ja
Inventor
アール ダブリュー ザ サード ジェニングス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MagnaChip Semiconductor Ltd
Original Assignee
MagnaChip Semiconductor Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MagnaChip Semiconductor Ltd filed Critical MagnaChip Semiconductor Ltd
Publication of JP2001506781A publication Critical patent/JP2001506781A/ja
Application granted granted Critical
Publication of JP4235987B2 publication Critical patent/JP4235987B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7817Specially adapted for signal processing, e.g. Harvard architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)
  • Multi Processors (AREA)
  • Processing Or Creating Images (AREA)

Description

関連出願の説明
本特許出願は、1996年12月19日出願の米国仮特許出願番号第60/033,476号及び1997年6月20日出願の同60/050,396号に依り優先権を主張する。これらの仮特許出願の内容はそのままここに参考資料として挙げ、あらゆる目的に供するものとする。
発明の背景
本発明は回路に関する。特定すれば、本発明はビデオフレーム生成タスク、及びディジタル信号処理(DSP)タスクに適した高性能集積回路に関する。
グラフィック産業における中心的課題はフレームを生成することである。各フレームは画素の四角形配列であり、しばしば100万以上の画素を含んでいる。動画、特に3次元動画では、通常、一つの画素を生成するのに数百万回ないし数十億回の計算を必要とする。同様に、(医療画像作成のような)グラフィックアプリケーションでは、一つ又はそれ以上のフレームの生成を必要とし、更に、しばしば連続した動画である必要がある。
この必要性を、1995年に映画「Toy Story」を作ったピクサーの成果を例に考えてみよう。この映画には110,000個のフレームがある。ピクサーは87個のデュアルプロセッサ100MHzSparc20’sと30個のカッドプロセッサ100MHzSparc20’sを使った。これは合計で294個のCPUとなる。CPU当たり平均96メガバイトのRAMがあり、各処理ノードはローカルの3−5ギガバイトのローカルディスクドライブを有していた。ディスクファームとそのサーバーは本特許とは直接関係しないが、極めて大きかった。1つの平均的フレームが1ないし3時間のSparcCPUプロセッサ時間を要し、映画全体を計算するのに46日を要した。参考資料(1)参照。
「Toy Story」は写真のように写実的ではなかったが、一つのブレークスルーであった。それは、完全に3次元コンピューター動画技術で製作された最初の全長長編映画であった。このようなフィルムに写真的写実性を備えさせるには、少なくとも10倍も計算を複雑化させねばならない。30時間での写真的に写実的なフレーム計算を想定しよう。
フレーム生成には多くの異なったプログラムが使用されている。参考資料(19)−(23)参照。これらのプログラムは複雑であり、且つ高性能である必要がある。これらはC、C++、FORTRANのような高レベルの手順、オブジェクト指向コンピュータープログラミング言語で作られている。これらのプログラムの唯一最も性能的にクリティカルな部分は、ベースにあるレンダリングエンジンハードウェアを目指してアッセンブリ/マシン言語で直接書かれていることであろうが、つまり、アッセンブリ/マシン言語でのプログラミングは手の出せないように高額な出費を要し、難しいからクリティカルなのである。これらのプログラムでは浮動小数点方式の計算が一般的であるが、それはその広いダイナミックレンジと、プログラミングの容易性の故である。
性能改善に対する必要性は大きい。最良のビデオ編集には毎秒1フレームが必要とされる。リアルタイム仮想現実には毎秒30フレームまで作る必要がある。これら2つの工業的アプリケーションを満足させるには、ビデオ編集に対しては108,000x(=30時間/フレームx3600秒/時間)、そして仮想現実に対しては3,240,000x(=30*ビデオ編集)のスピードアップをして性能改善する必要がある。
高性能ディジタル信号処理にも同様な必要性がある。代表的要件には画像処理が含まれるが、これはしばしば、人体及び機器を含む物の内部の画像を構築するために、時間を通して2次元又は3次元のセンサーアレイから集められてくる。
これらの多次元信号処理アプリケーションは、超音波又は磁気画像センサーバンクから画像を構築する。これはフレーム生成と同様な性能要件を有している。これらのアプリケーションは、3次元又は4次元環境の再構築/シミュレーションにおける解像特性という目標を持っている。(注:ここで言う4次元とは、時間を通して観察/シミュレーションされた3次元の領域を意味する。)解像特性は、入力センサー解像能、所与の時間内に計算できるFFT分析の深さ、丸め誤差の制御、データフレームの処理を通してのこれら丸め誤差の累算の関数である。
最小時間で精巧な解像特性を実現するには、生成された画素又は出力データ点当たり数百万、しばしば数十億回の計算処理が必要となる。ダイナミックレンジ制御とフレキシブルな誤差丸め制御を提供するために浮動小数点計算方式を利用するのは極普通である。ソフトウェアが絶え間なく進化することと、多くの異なるアプリケーションの利用のために、アルゴリズム面でのフレキシビリティは優先事項である。これら異なるアプリケーションはしばしば非常に異なるソフトウェアを必要とする。
アプリケーションソフトウェア開発要件は極めて首尾一貫している。特に、大抵のアプリケーションは、概ねコンピュータープログラミング手順言語、C、C++、FORTRANで書かれた(参考資料(11)−(18)参照)数多くのソフトウェアを必要とし、マシンレベルプログラミングの使用は、プログラムの最も性能的にクリティカルな部分に制限される。
目標アルゴリズムは以下の共通の特徴を表示するが、それは即ち、処理要素当たりしばしば100MB領域までになる大量のメモリーを必要とすること、出力値(画素、データポイント等)当たり非常に多数の算術計算を必要とすること、全てでなければ大抵の入力値(画素、データポイント等)に基づいて非常に多数の計算を必要とすること、必要な通信オーバヘッドは計算容量に比較して比較的小さいことである。
高解像能グラフィクスをサポートするものはこの30年間に開発されてきた。参考資料(40)に見られるような1960年代1970年代の初歩的な努力の結果は、特化した最小のハードウェアでのグラフィクスコンピューターシステムを作り出した。その当時には、VLSI(超大規模集積)集積回路(IC)に対する考えは殆ど或いは全く無かった。
半導体装置によるグラフィクス産業のサポートは以下の事柄に焦点が当てられている。
A.努力の相当部分を使ったスクリーン表示装置のサポートによる、入出力装置のサポート。この結果として、スクリーンを制御するための専用の集積回路の開発が行われた。参考資料(2)参照。
B.高速マイクロプロセッサ及びディジタル信号プロセッサの開発。
C.高速且つ高密度メモリー装置、特にDRAM、VRAM等の開発。
D.リアルタイム画像処理及びフレーム生成アプリケーション向け特定目的要素部品の開発。
これらの努力は以下のような基本的限界を持っている。
A.ディスプレイ装置コントローラーは、各フレームが固定された実行構造マシンにより特定時間内に生成されるというように制限されている。このように、フレームアルゴリズムが必然的に制限される。
B.高速マイクロプロセッサ及びDSPは偉大な固有のアルゴリズムのフレキシビリティを保有し、それ故、「Toy Story」を作ったSUNネットワークのような高性能専用フレームレンダリング構成で使用される。参考資料(1)参照。インテルのペンティアムプロセッサが出現した結果、RISC(縮小命令セットコンピューター)社会の全てのトリックが統合されることになった。参考資料(30)の「付録D:RISCへの代替:インテル80x86」及び参考資料(31)の「付録:スーパースカラー386」はこれについての良い参考資料を提供している。参考資料(30)の「付録C:RISCアーキテクチャのサーベイ」は優れた概括を提供している。
しかし、商業ベースのマイクロプロセッサ及びDSPシステムはその大きなオーバヘッド回路により厳しく制限されている。現代のスーパースカラーコンピューターにおいては、このオーバーヘッド回路は実際演算ユニットよりも大きいかもしれない。アーキテクチャ性能/コストのトレードオフに関する議論については、参考資料(30)(31)参照。
C.高性能メモリーは必要ではあるが、メモリーは単に記憶するものでありデータを生成するものではないので、高速フレーム生成がこれだけで保証されるわけではない。
D.しばしばDRAMである高性能メモリーと集積回路上で堅く連結されたデータ処理要素を統合する特定目的コンポーネントが幾つか提案されている。しかし、これらの成果には全て制限が付いている。(32)で論議されている回路は非常に限られた精度の固定小数点演算エンジンを使用している。(32)で論議されている回路は、浮動小数点の実行及び、単一プロッセッサのローカルメモリーよりも大きなプログラムの取り扱いの際には性能上の制約を受ける。
提案されている特定目的コンポーネントは、アルゴリズムの幾つかのカテゴリーを実行するのに最適化されている。これらのコンポーネントには以下のものが含まれる。
D1.画像圧縮解凍プロセッサ。これらの回路は重要ではあるが非常に専用化されており、多様なアルゴリズムに対して一般目的解を提供するものではない。例えば、このようなエンジンは、C、C++、FORTRANのような高レベル手順言語で効率的にプログラミングするのは非常に難しくなる傾向にある。これらをアッセンブリ言語でプログラムする要件には当然、そのようなユニットは、ソフトウェア開発に大きな経費を掛けることなく、多次元画像作成並びにグラフィックフレーム生成のための一般的目的の必要性に取り組まないであろうということが含まれている。参考資料(24)(25)参照。
D2.フラクタル、Zバッファ、ゴウラウド・シェーディング等のようなグラフィクスアルゴリズムに最適化されたプロセッサ。これらの回路は、グラフィクスフレーム生成及び画像処理の両方が要求する幅広いアプローチ断面への最適化を許容しない。参考資料(26)−(29)参照。
D3.ウェイブレット及び他のフィルター、ファーストパス基数4,8又は16FFT等のような信号処理プリプロセッサ・アクセレレータ。1次元及び2次元離散コサイン変換エンジン。これらの回路は様々の大規模フレーム生成タスクを効率的に実行するためにプログラミングするのは難しい。
D4.マルチプロセッサ画像プロセッサ。これらのプロセッサは一般目的プログラミングに適さない混合MIMD及びSIMDシステムを含んでいる。参考資料(21)及び(41)−(43)参照。
これらのプロセッサも、クロマティックのMPACT ICのようなVLIW(非常に長い命令ワード)SIMD ICを含んでいる。このようなICは同様に、効率的コンパイラのサポートを必要とする、商業ベースのアプリケーションで使われる大量の3次元動画ソフトウェアのをプログラムするに必要な計算上のフレキシビリティを提供できない。参考資料(34)(39)参照。
D5.マルチメディア信号プロセッサ。これらのプロセッサも、浮動小数点のサポートの欠如、大型外部メモリーへの広範な外部データメモリーインタフェースアクセス帯域幅の欠如、不十分な命令処理フレキシビリティ及びデータ処理汎用性、累算結果に関する非常に均一なデータアクセスメカニズム無しに演算用プログラミングをするには非効率且つ困難なベクトルプロセッサへの依存のような様々な制限を有している。参考資料(35)−(38)参照。
必要なのは、ビデオフレームレンダリング及びDSPタスク用の計算に関する上記制限を排除する計算エンジンである。
発明の概要
ディジタル信号及び画像処理と同様にビデオ処理及び動画に使用するためのフレームの全て又は一部を生成するのに必要な、メモリー、ロジック、演算及び制御回路を含む回路が提供されている。1つ又はそれ以上のそのような回路が、集積回路上に設けられている。医療画像作成、仮想現実、ビデオゲーム及びシミュレーション環境下でのリアルタイムシーン生成のような、動画、特に3次元及び他の高性能アプリケーションのためのフレーム生成において非常に優れた性能を提供するため、ビデオ又は画像フレーム生成システムが一つ又はそれ以上の前記集積回路、並びに随意的に追加のメモリー回路で構築されている。この回路は、高度に最適化された計算能力を備えたシングルチップのJAVAエンジンとして作動すると同様に、MPEG4で提案された高速オブジェクト指向グラフィクス関係ストリームを処理するのに用いられる。
<ここに請求項を反映した言語を挿入>
【図面の簡単な説明】
図1は本発明の実施例による基本回路のブロック線図である。
図2は本発明の実施例による図1のアレイプロセッサのブロック線図である。
図3は本発明のもう一つの実施例による図1のアレイプロセッサのブロック線図である。
図4は図1の埋め込み型マイクロプロセッサのブロック線図である。
図5は独立した外部メモリーインタフェースを備えた図1の基本回路2例を有する集積回路のブロック線図である。
図6は一つの外部メモリーインタフェースを共有する図1の基本回路2例を有する集積回路のブロック線図である。
図7は独立した外部メモリーインタフェースを備えた図1の基本回路4例を有する集積回路のブロック線図である。
図8は一つの外部メモリーインタフェースを共有する図1の基本回路4例を有する集積回路のブロック線図である。
図9は二つの外部メモリーインタフェースを共有する図1の基本回路4例を有する集積回路のブロック線図である。
図10は二つの共有された外部メモリーインタフェースと完全に相互接続されたメッセージポートを備えた図1の基本回路4例を有する集積回路のブロック線図である。
図11は四つの共有されたメモリーインタフェースを備えた図1の基本回路16例を有する集積回路のブロック線図である。
図12は二つの共有されたメモリーインタフェースを備えた図1の基本回路16例を有する集積回路のブロック線図である。
図13は図1の基本回路例をその対応するメモリーモジュールに接続するプリント回路ボードのブロック線図である。
図14は図1の基本回路例をその対応するメモリーモジュールに接続するもう一つのプリント回路ボードのブロック線図である。
定義
ワイヤ
ワイヤは回路の複数のノード間の状態を共有するための機構である。状態は、電圧、電流、位相、スペクトル分解、光子振幅等これに制限されるわけではないがこれらを含む、ある物理的条件に基づく有限のアルファベットである。記号はアルファベットの個々の要素である。関連する物理的条件の計測値範囲は通常記号をエンコードする。最も普通に用いられるアルファベットはセット{0,1}即ち、2進記号セットである。上記スキーム全てを用いる2進システムが存在する。他の共通に使用されるアルファベットには、3記号アルファベット、例えば{0,1,2}、多重2進アルファベット、例えば{00,01,10,11}等がある。他のアルファベットも使用されている。ワイヤは、例えば(集積回路や回路板内の)金属の帯、光ファイバー、マイクロウェーブチャネル(時にはマイクロチャネルとも呼ばれる)として実体のあるものとされる。
ワイヤ束
ワイヤ束は1つ又はそれ以上のワイヤの集まりである。
バス
バスはバスプロトコルを保持しているワイヤ束である。バスプロトコルはワイヤ束で接続された回路間の通信を定義する。バスは通常コンポーネントワイヤ束から構成され、そこでは1つ又はそれ以上のコンポーネントワイヤ束が、1つ又はそれ以上の他のコンポーネントワイヤ束上で、どの接続されたコンポーネントが受信しており、どれが送信しているかを決めることになる。
浮動小数点
浮動小数点表記は数字エンティティを表す状態の集合を含んでいる。集合は、表示された数の符号、仮数、指数を定義する副集合を含んでいる。このような表記は、本文書の参考資料で議論されているものに限定するわけではないがこれを含む、IEEE標準浮動小数点及び特定目的浮動小数点表記を、これに限定するわけではないが、非排他的に含んでいる。浮動小数点表記は非排他的に拡張部を含んでおり、これにより、各々上記のように数の符号、仮数、指数を含む2つの副集合が存在する。数字表現は、数が存在する間隔の表現である。浮動小数点表記は、付加的に非2進システムを含んでおり、そこでは仮数及び指数は2以外の数の累乗を表す。
プログラム可能有限状態マシン
プログラム可能有限状態マシンは、状態レジスタと、可能性としては、その中に状態条件、量等のある1つ又はそれ以上の追加のレジスタと、状態レジスタ、追加のレジスタ、外部入力がこれによって状態レジスタ及び可能性のある追加のレジスタに対する次の値を生成する機構とを含むマシンである。
SIMD
単一命令多重データパスアーキテクチャは、同一命令実行サイクルの間に2つ以上のデータパス上で同一命令を実行する。この基本的コンセプトに対する代表的拡張は、各データパスに関わる「状態フラグビット」の組込である。これらのフラグは、特定のデータパスが、グローバルに共用された命令の幾つか又は全てを実行可能となるように又は実行不可能となるようにする。
SIMDアーキテクチャは、複数のデータストリームを同じように処理する必要がある状況に最も適している。これらのデータストリームの本来備わっている同期性は、通信制御問題を度々単純化することにより利点を作り出す。SIMDアーキテクチャは、データパス間でデータ処理が同じでなくなる際にはいつでも非効率となる。
SIMDアーキテクチャは、データパスに共有される命令処理機構はただ1つしかないので、命令処理オーバヘッドコストは比較的少量しか必要としない。この命令処理機構は命令取り出し機構を有する。データパス集合は通常ただ1つの命令メモリーを必要とする。
MIMD
多重命令多重データパスアーキテクチャは、別個の命令を異なるデータパスユニット上で実行する。このアプローチの基本的利点はフレキシビリティである。如何なるデータ処理ユニットでもそれ自身の命令を、他のデータ処理ユニットとは独立して実行できる。しかし、このフレキシビリティには追加のコストが掛かっている。特に、各データ処理ユニットはそれ自身の命令取り出し、デコーディング、順序づけ機構を保有しなければならない。命令取り出し機構はしばしば、データプロセッサに対しローカルの、少なくとも一つの小さなメモリーを保有する。このローカルメモリーはしばしばキャッシュである。
(非常に)長い命令のワードプロセッサ(各々VLIW及びLIW)
(非常に)長い命令のワードプロセッサはアーキテクチャの1つのクラスであり、これによって、条件コード上の分岐のような通常の演算ができるプログラムカウンターと、データパスユニットを個別に制御する多重命令フィールドとを含む単一命令処理機構が存在する。これらのアーキテクチャ内では、データパスユニットはしばしば構造と機能において互いに同じではない。
アレイプロセッサ
アレイプロセッサは、1つ又はそれ以上の集合内に配列された複数のデータパスユニットを有するLIW又はVLIW命令処理アーキテクチャとして定義される。本発明の実施例では、後に説明するように、データパス集合は、送信ユニットを有する共通オペランドバスを経由して受け取る共通オペランドを受け取りそしてそれに則って作動し、各データパスはメモリーから1つ又はそれ以上の追加のオペランドを受け取り、各データパス集合は、プログラム制御される内部要素の演算を制御する命令フィールドを保有する命令メモリーを含んでおり、各データパスユニットは、1つ又はそれ以上の乗算/累算器(MAC)を含んでおり、各MACは多数の累算レジスタを保有している。
乗算−累算器
乗算−累算器は2つのオペランドの乗算と少なくとも1つの他のオペランドの加算(そして減算の可能性もある)を同時に実行する演算回路である。
高速フーリエ変換(FFT)
高速フーリエ変換は、信号のスペクトルを生成するための高度に最適化されたアルゴリズムである。様々な含まれるトピックスの徹底的議論のため、参考資料(11)(12)(15)の関連する章を参照されたい。
ベクトルプロセッサ
ベクトルプロセッサはベクトル上で専門に作動するように設計されたアーキテクチャである。通常、ベクトルプロセッサには深くパイプラインが設けられている。ベクトル処理には文献が多数捧げられている。参考資料(46)−(53)参照。参考資料(30)の「ベクトルプロセッサ」はこの課題についての概括を提供している。
特定の実施例についての説明
本発明は、メモリー、ロジック、計算及び専用の回路をカプセル化したコスト効率の良い基本回路と、アルゴリズム、特にビデオフレームレンダリングに用いられる幅広いクラスのアルゴリズムをサポートするに適した制御とを提供する。基本回路を複写すれば、計算容量を増やして、非常に高い性能要件をサポートする能力を増やすことができる。
しばしば多次元である高性能信号処理と高性能フレームレンダリンググラフィクスとの間の差異は僅かである。本文書の中では、議論は、グラフィクスの観点からフレームレンダリングに焦点を当てており、本発明を適用する際の差異を正確に述べる必要があるときには注釈を加えている。
図1は本発明の実施例による基本回路1のブロック線図である。基本回路1では、外部ローカルメモリーインタフェース2用の1つ又はそれ以上のコントローラーが基本回路1と関連する(後の図に示す)ローカル外部メモリーへのアクセスを提供する。このようなローカル外部メモリーは100メガバイトかそれ以上のオーダー(Toy Story、参考資料(1)参照)、例えば1ギガバイトまでのものであるのが望ましい。マスタメモリーインタフェース及びコントローラー(MMIC)6は「大メモリー幅広インタフェース回路」6とも呼ばれるが、外部ローカルメモリ」インタフェース2と様々な他の構成要素との間の、命令を始めとしたデータの流れを制御する。MMIC6は又、内部ローカルメモリー4へのアクセスも制御する。基本回路1は又、グローバル外部バスインタフェース(GEBI)7、埋め込みマイクロプロセッササブシステム8、DSP(アレイプロセッサ)9、近接回路通信ポート10、特定目的回路11(例えば、専用のフレームジェネレーター回路、コンテントアドレサブルメモリーCAM、ビットコードパーサ等)、及び図1に示すように回路を相互接続するワイヤ束3、5、12、13、14、15、16、17も含んでいる。
GEBI7は外部環境とのインタフェースを提供する。この外部バスは、既知のペリフェラルコンポーネントインタコネクト(PCI)、アクセレレイテッドグラフィクスポート(AGP)、ユニバーサルシリアルバス(USB)、IEEE1394(以前はファイアウェア)、ファイバーチャネルのような標準的コンピューターバスでもよいし、外部コントローラーホストと多様な本発明の例との間の通信をサポートするように設計された特定目的のバスであってもよい。
埋め込みマイクロプロセッササブシステム8は基本回路1の作動を制御し、DSP(アレイプロセッサ)9又は特定目的回路11を目標とせずに計算を実行する。マイクロプロセッササブシステム8は以下にもっと詳しく議論する。
DSP(アレイプロセッサ)9は浮動小数点演算を実行する。本発明のある実施例では、DSP(アレイプロセッサ)9は、参考資料として挙げた1997年6月20日出願の米国特許出願番号第60/050,396号に示し論議されているものである。DSP(アレイプロセッサ)9は、以下にもっと詳しく議論する。
近接回路通信ポート10は、基本回路1とシステム内の基本回路1の他の例との間の通信を提供する。基本回路が1例だけしか使用されていないシステムアプリケーションでは、このポート10は必要ない。特定の実施例では前の文に対する例外があり、そこではこれらのポート10の幾つかが、基本回路1の例ではないが、にもかかわらず基本回路1の例により或いはそれを通して高度な並行処理から利益を得る他の構成要素(図示せず)との通信を提供する。
基本回路1を多数例有するアプリケーションでは、しばしば、基本回路1の例相互間で、高速並行通信を必要とする。通信ポート10を設けることにより、基本回路1はGEBI7内にできる可能性のあるボトルネックを低減する。特定の実施例では、通信ポート10は正確に2つの例の間に専用の通信を提供し、それ故、各ポートで使用されるプロトコルは、例えば外部バスインタフェース7で使用されるバスプロトコルより遙かに単純にすることができる。
一般的に、例相互間の通信には標準的方法が使用されている。例えば、技術的に広く資料提供されている、メッセージ転送プロトコルに基づく様々な通信スキームを使用することができる。同様に、幾つかの「セマフォ」システム又はハンドシェーキングシステムの何れかを使用して、隣接していない例上で並行順次処理(CSP)演算を同期させ制御する能力を提供することができる。
特定目的回路11は種々の実施例中に存在し、そうしなければ極度に複雑或いは時間の掛かる、アプリケーションにとって本質的な演算に対し性能強化を提供する。そのような回路の例には、これに限定されるわけではないが、Zバッファオペレーション、三角埋め、「BitBlts」、面張り等を加速させるためのフレームジェネレーターと、フラクタル圧縮のためのパターンマッチングを加速するため或いは圧縮されたトークンを例えばハッシュテーブル内への標準処理ポインティングへ変換するためのコンテントアドレサブルメモリー(CAM)と、MEGA(ムービングピクチャエキスパートグループ)のような高度に圧縮された通信及び、サンマイクロシステムズ社の商標であるが、Javaのような言語のための、コマンド及びデータヘッダーをデコードするためのビットコードパーサとが含まれる。
内部メモリーバンク4はランダムアクセスメモリー(RAM)アレイの一つ又はそれ以上のバンクを含んでいる。これらのメモリーは、本発明の実施例では経済的なダイナミックランダムアクセスメモリー(DRAM)であるが、他の形式のメモリーを使うこともできる。好適な実施例では、幅広い構成に編成された合計1ないし32メガバイト(MB)のメモリーが設けられている。1024ビット(1Kビット)までの幅が考慮されている。64ビット以上の幅は「幅広」と考えられている。これらのメモリーについての好適な構成は、これに限るわけではないが、以下のようなものを含んでいる。
32K x 64、 128、 256、 512、 1Kビット
64K x 64、 128、 256、 512、 1Kビット
128K x 64、 128、 256、 512、 1Kビット
256K x 64、 128、 256、 512、 1Kビット 等。
72のような2の累乗以外のデータ長へのアクセスを提供する構成は利点を有し得ることに留意されたい。そのような構成は、MMIC6に統合されている追加の標準ロジックにより実行される、エラー検出訂正スキームをサポートする。
MMIC6(マスタメモリーインタフェース及びコントローラー)は数多くの機能をサポートするディジタルロジック回路である。内部メモリーバンク4がDRAMであるか或いはDRAMがやるようにリフレッシュを必要とする場合、MMIC6は自動的に内部RAMバンク4をリフレッシュする。MMIC6は、GEBI7、埋め込みマイクロプロセッサ8、DSP(アレイプロセッサ)9、そして可能性があるものとしては近接回路通信ポート10の例、及び特定目的回路11等による、読み取り及び書き込みのための内部RAMバンク4へのアクセスを許可、制御する。MMIC6は又、GEBI7、埋め込みマイクロプロセッサ8、DSP(アレイプロセッサ)9、そして可能性があるものとしては近接回路通信ポート10の例及び特定目的回路11等による、外部ローカルメモリーインタフェース2へのアクセスを許可、制御する。
本発明の好適実施例では、MMIC6は、外部ローカルメモリー内のデータ及び/又は命令のためにモジュール7、8、9、10、11から要求を受け取ることによりデータ及び命令のフローを制御するための有限状態マシン(FSM)を含んでいる。MMIC6はFSMでエンコードされる判断アルゴリズムに基づきこれらを満足させる。データ/命令フロー制御のためのFSMはよく知られている。
本発明の好適実施例では、埋め込みマイクロプロセッサ8、DSP(アレイプロセッサ)9、特定目的回路11の各々に対し、別個の命令及びデータのストリームが維持される。これらの命令及びデータのストリームは通常、プログラム初期化及びオペレーションの間にGEBI7から外部メモリーにロードされた後、外部ローカルメモリー上に存在する。これらの命令及びデータのストリームは通常、既知のコンパイラ技法に従って1つ又はそれ以上のコンパイラにより製作され、既知の方法に従って、調整のためある量のハンドシェイキングを組み込む。
MMIC6に加えて、埋め込みマイクロプロセッサ8及びGEBI7は、技術的に知られている方法でデータ/命令フローを制御するための指示を提供する。例えばマイクロプロセッサ8は、例えばGEBI7上でのエラー制御、初期化、バスエラー処理の捕捉のため、FSMの制御を先制的に占有できる。
外部ローカルメモリーインタフェース、即ちELMI2用のコントローラー2は、1つ又はそれ以上の種類の外部ICメモリーにアクセスするため、外部タイミング及びインタフェース規定のためのサポートを提供する。例えば、ELMI2は、RAMに対し読み取り及び書き込みアクセスを提供し、不揮発性メモリーへは読み取りアクセスを提供する。外部メモリーの幾つか又は全てがDRAM関係(参考資料(54)の第6、7章参照)である場合、ELMI2は自動メモリーリフレッシュをサポートする。最も良い場合、ELMI2はリフレッシュの間にアクセス要求の待ち行列を提供する。ELMI2は又随意的に、書き込み、消去、或いは可能性があるとすればゆっくりした演算の間に、アクセス要求の待ち行列を提供する。
少なくとも外部メモリーの幾つかがプログラム可能で非揮発性(参考資料(54)の第10、11、12章参照)である場合、ELMI2は特定のワードの書き込みと、適切な、ワードのブロックの消去とを提供する。随意的に、ELMI2は、あるアプリケーションでの利点を提供するため、非揮発性メモリーオペレーションに対する消去保留のような、技術的に知られた追加の機能を提供する。
図1に特定的に示されてはいないが、基本回路1は代替実施例においては、アナログ・ディジタル変換器(A/D)、ディジタル・アナログ変換器(D/A)、電圧制御発信器(VCO)等及びそれらの対応するワイヤ束のような、1つ又はそれ以上のアナログインタフェース構成要素を含んでいる。
代替実施例における追加の2次サポート回路は、これに限るわけではないが、内部クロック乗算器、位相ロックループ(PLL)、クロック配布ネットワーク、一体型自己試験(BIST)回路、境界走査パス等を含んでいるが、これらは関係技術で知られているものである。
基本回路1は、フレームレンダリング及び同様なタスク用の高性能計算エンジンを提供するために多くのやり方で最適化される設計を有している。埋め込みマイクロプロセッサ8,DSP(アレイプロセッサ)9、特定目的回路11は、その個々の命令及びデータを並行して、且つデータ又は命令の欠如に対する停動を最小にして処理するための回路資源を十分に備えている。この効率性は、今までそしてこれからも述べるように、例えば、全体設計から、そして個々のモジュールの設計から生じている。例えばワイヤ束13は、グローバル外部バス7とメインバスインタフェース上の基本フロー処理とは独立した埋め込みマイクロプロセッサ8との間の、例えば制御のような処理のための専用のパスを提供することにより、メインバスインタフェース(MMIC6及びワイヤ束12、14、15、16、17)上の帯域幅オーバヘッドを低減する。このやり方で、メインバスインタフェースの帯域幅が維持される。
ある好適実施例では、基本回路1は集積回路(IC)として実現される。重要なのは、基本回路1は、その設計により、比較的小さなIC表面積を使って実現できることである。又、アーキテクチャは単純且つフレキシブルなので、コンパイラが効率よくその計算ユニットに、特にマイクロプロセッサとアレイプロセッサに的を絞ることができる。
図2は、本発明の実施例による、図1のアレイプロセッサ9のブロック線図である。以下の議論から明らかになるように、アレイプロセッサ9は、引用参考資料で議論されているように、先行技術のベクトル処理技法を使って効率的に並行処理することのできない計算を実行することができる。
この計算には、例えば、幾つかの比較的短いベクトルを必要とする計算が含まれる。例えば、a,b、c、d、zを全て複素浮動小数点数として、X=(az+b)/(cz+d)のような複素数関数を計算する場合である。よく知られているように、これらの計算並びに同様の計算はフレームレンダリングでは一般的である。関数を計算する際には、a0,b0、c0、d0、z0、X0が実数要素として、そしてこれに対応してa1,b1、c1、d1、z1、X1が虚数要素として定義される。浮動小数点除法回路に入る前に、計算は2つの乗算累算パスで進められる。最初のパスで以下の計算が行われる。
A0=a0*z0−a1*z1+b0
A1=a0*z1+a1*z0+b1
B0=c0*z0−c1*z1+d0
B1=c0*z1+c1*z0+d1
2番目のパスでは、共有オペランドが発生するので、B0とB1の結果が乗算累算器(後に論議する)にフィードバックされる。
C0=A0*B0−A1*B1
C1=A1*B0+A0*B1
D=B0*B0+B1*B1
最後に、除算が実行される。
X0=C0/D
X1=C1/D
図2の実施例によれば、アレイプロセッサインタフェース回路(APIC)965は、MMIC6からの命令とデータの要求及び受信、MMIC6へのデータの送信を制御する。この実施例中のアレイプロセッサ9は多重データパス処理ユニット900の単一の集合970を有している。データパス処理ユニット900は、簡素化してデータパス900とも呼ばれる。集合970は演算処理ユニット(APU)を形成する。
APU970内では、内部浮動小数点表記が使用される。この内部表記は外部で使用される浮動小数点表記と同じでも同じでなくともよい。一般的に、APU970は、例えば標準IEEE浮動小数点表記のような、少なくとも標準的外部表記を期待して適用されている。ある好適実施例では、使用されている浮動小数点表記は、例えば標準IEEE浮動小数点表記の例外ケースを含んでいない簡素化した表記である。簡素化した表記を使用すれば、例外ケースの複雑性を避けることにより、例えば回路サイズに関して、内部効率を高めることができる。例外ケースはフレームレンダリングとDSPアプリケーションには通常大きく関係することはないので、簡素化された表記の使用は現実的である。
APU970は、乗算器入力回路として働く共有オペランド回路(SOC)910を含んでいる。随意的に、SOC910は、RAMがオペランドキャッシュ又は先入れ先出し(FIFO)待ち行列として使えるか否かを判断するアドレスコントローラーを有するRAM回路を含んでいる。SOC910内の第1のサブ回路(図示せず)は、入力を受け取り、ワイヤ束902の状態を捕捉するための多数の入力レジスタを含んでいる。SOC910は、第1サブ回路内のレジスタと連結された第2のサブ回路(図示せず)を含んでいる。第2サブ回路は整数演算ロジックユニット(ALU)(図示せず)を含んでいる。第2サブ回路は、レジスタからのワイヤ束902の状態の選択されたフィールド上で、固定小数点加算/減算を(ALU内で)実行する。第2サブ回路は又、加算/減算演算の、或いは入力レジスタの選択されたフィールドの固定小数点の結果を、既知の変換アルゴリズムに従って内部浮動小数点表記に変換する。それ故、第2サブ回路は浮動小数点変換ユニット(図示せず)を含むと言われる。
APU970は又、2つ又はそれ以上の乗算/累算器(MAC)をデータパス処理ユニット900として含んでいる。MACは関係技術分野ではよく知られている。各MAC900は、SOC910から共有オペランドを受け取るためのワイヤ束906に連結されている。各MAC900は又、対応するローカルデータ記憶装置920に連結されている。一般的に、MAC900と同じくらい多くのローカルデータメモリー回路920がある。
演算の間、各MAC900は3つの数X、Y、Zをある数字フォーマットで受け取るが、ここに、Xはワイヤ束906を通して受け取られた共有オペランドであり、YとZはローカルデータ記憶装置920からワイヤ束909を通して受け取られる。
各MAC900は2つ又はそれ以上の、好ましくは少なくとも4個のレジスタを保有する。各MAC900は、乗算及び加算/減算を各句ロックサイクル内に実行することができ、それにより(恐らくは)現在の又は先のクロックサイクル内で受け取られたX、Y、Zの値からXY+Z又はXY−Zを生成する。各MAC900は生成された結果をそのレジスタの1つに条件付きで記憶する。
APU900は、共有出力及びフィードバックインタフェース(SOFI)940を更に含んでいる。SOFI940は、ワイヤ束(907)の内部数字フォーマットを、外部的に必要な、必要とされる浮動小数点(例えばIEEE浮動小数点)表記又は固定小数点表記に変換するための標準的技法を用いて適合される浮動小数点変換ユニット(図示せず)を含んでいる。勿論、内部浮動小数点表示が外部の表示と同じ実施例では、特定の変換を行う必要はない。SOFI940はそのような変換の結果の伝送を、APIC965へのワイドバス901上で制御する。特定の実施例では、SOFI940は又、伝送の前に必要に応じてその結果を一時的に記憶する。
データメモリー920はメモリー回路(920)のための対応するアドレスジェネレーター(例えばモジュール950内に、以下で議論する)を有するか、又はもう一つのMACのレジスタの状態が他の2つのオペランドを提供する。
本発明によるアレイプロセッサ9は、例えばベクトルプロセッサを使っては効率的に実行できない各形式の計算を実行できるようにする。例えば、幾つかの離散ウェイブレット変換フィルター(DWTF)の計算では、しばしば、幾つかのベクトルのサブコンポーネントを横切って、幾つかの異なるスカラーを共有する必要がある。ベクトルプロセッサはこのタスクを実行するのに通常、共有すべきスカラーの数と同じだけ多くのサイクルを必要とする。これらのDWTFでは、全ての偶数の入力は全てのフィルター出力に影響を及ぼし、奇数の入力はフィルター出力の半分だけに影響を及ぼす。この方式で4つの入力を処理すれば、奇数のエントリーは、ベクトルプロセッサアプローチを使っての並行処理はできないという限界が出てくる。しかしアレイプロセッサ9の場合は、例えば、2つ(又はそれ以上)の奇数エントリースカラーエレメントをベクトルの異なるコンポーネントに送ることができるので、これらの問題は最小化される。基数2のFFTは、1つのベクトルの異なるコンポーネントに対する和と差の両方を提供する。本発明は、ベクトルの各コンポーネントに対し並行してこれらを提供することにより、ベクトルプロセッサが必要とするように一対のエレメント当たり2サイクルではなく、1サイクルで結果を導き出す。
図3は、本発明のもう一つの実施例による、図1のアレイプロセッサ9のブロック線図である。図3に示すように、アレイプロセッサ9はAPU970を2つ有している。この構成は、浮動小数点計算が、例えば埋め込みマイクロプロセッサ等他のモジュールによって実行されるべき他の計算との関係で、浮動小数点計算が特に沢山あると期待されるアプリケーションに対し追加の並行処理能力を提供する。更なる実施例では、基本回路1内のAPU970の数を2以上に増やすことができる。
図3によるアレイプロセッサ9は、(図1に関し)基本回路1が合理化され、図3によるアレイプロセッサ9に加えて、GEBI7、ELMI2、埋め込みマイクロプロセッササブシステム8、必要に応じて近接回路通信ポート10を含み、しかし、追加の特定目的回路11及びメモリーバンク4を含まず、それ故、MMIC6のメモリーコントローラーを省略するマスターインタフェース及びコントローラー6を含まない実施例に用いられている。
図4は、図1の埋め込みマイクロプロセッササブシステム8のブロック線図である。埋め込みマイクロプロセッサは関係技術分野ではよく知られている。図4に示すように、埋め込みマイクロプロセッササブシステム8はマイクロプロセッサ800を含んでいる。マイクロプロセッサ800は、Java又はMPEG−4、プログラム可能有限状態マシン(PFSM)、又はRISCエンジンのようなバイトコードマシンとして、好ましくは、ARM7TDMI(参考資料(56)参照)、又はMIPS16(参考資料(55)参照)のような32ビットのデータパスを備えた16ビットの命令セットRISCとして実現できる。
埋め込みマイクロプロセッササブシステム8は又、随意のローカルキャッシュ810、好ましくは、2−4ウェイインタリーブされた、少なくとも64頁の、少なくとも1Kワードの合計メモリーを含んでいる。通常、キャッシュメモリー810は、例えば32ビットワードとして編集される。キャッシュメモリー810は、1つは命令用、もう一つはデータ用の2つのコンポーネントキャッシュを含んでいてもよい。
埋め込みマイクロプロセッササブシステム8は又、関係技術分野では知られているように、RAM820又はROM830のような追加の随意のローカル記憶装置を含んでいる。ROM830は、マイクロプロセッササブシステム8及び/又は基本回路1のための、例えば初期化情報を含んでいてもよい。
ある好適実施例では、マイクロプロセッサ800は2バージョンの命令セットを提供するが、そのうち一つのバージョンは長さ16ビットで、コンパイラ技法で生成されるコードにより使用される最も普通の命令を含んでおり、もう一つのバージョンは長さ32ビットである。このようなマイクロプロセッサは、関係技術分野では知られている。このようなマイクロプロセッサの利点は、生成されるプログラムコードの大部分は16ビットフォーマット内にあるであろうということである。各マイクロプロセッサ800では、32ビット又はそれ以上の各命令取り出しが、更なる命令メモリーアクセスに頼ることなく、次の1ないし3命令を提供できる。
基本回路1及びアレイプロセッサ9は、ここで論議したように、数多くの注目に値する利点を有する回路のアーキテクチャ又はクラスを明らかにする。
その利点の一つは、特定の計算集約的アルゴリズムをある環境下で実行する場合、回路1は、マイクロプロセッサ又は従来型のDSPを使った同等サイズのプリント回路基板上でそのようなアルゴリズムを実行する場合と比較して、非常に高レベルの効率を有しているということである。
一般的に、基本回路1は、同じ結果を出す入手可能な他の機構と比べて、回路サイズに関する要件は低い。それ故、基本回路1は同じ結果を出す他の機構より安い。アレイプロセッサ9の回路サイズに関する要件が低い要因の一つは、それが直接には除算を行わないことであり、このことは、大多数の対象としているフレームレンダリング及びDSPアルゴリズムでは、実際非常に一般的なことではない。単精度アルゴリズムのみをサポートするためにMACが構成されているアレイプロセッサ9の実施例では、大きいクラスのフレームレンダリング及びDSPアプリケーションに対しては通常十分であるので、アレイプロセッサ9の回路サイズ要件は実質的に更に低減される。
アレイプロセッサ9のアーキテクチャは、(例えばSOC910での)浮動小数点変換そしてその後に(MAC900での)乗算及び累算が後に続く、固定小数点の加算/減算の「フロントエンド」を提供する。この「フロントエンド」は、対称、非対称FIR及び低基数FFTと結びついて基本的な演算を行うことができる。これらの演算は、しばしば、通常8ないし16ビットの固定小数点精度を生成するサンプリング回路から固定小数点バージョンでデータを受け取る実際のDSPアプリケーションにおいて極めて有用である。
アレイプロセッサ9のもう一つの利点は、丸め誤差を累算する一般的事象に関係する。DSPアルゴリズムが演算結果の精度維持するということは非常に重要である。効率化のため、従来のDSPプロセッサの多くは固定小数点演算を実行するアルゴリズムを使用している。そのような固定小数点演算は、精度を維持するため丸め誤差の管理に多大な注意を払わなければならない。これに対し、アレイプロセッサ9は浮動小数点演算を効率的に実行できる。浮動小数点計算はずっと良いダイナミックレンジを提供するという利点を持っている一方で、同じ精度の結果を得るようにプログラムするのが極めて容易である。
特定の、アレイプロセッサ9の実施態様例の能力を検証してみるのは興味あることである。この実施態様例では、アレイプロセッサ9は(図3によれば)そのAPIC965で、MMIC6から少なくとも128ビットを受け取る。各APU970のSOC910は少なくとも64ビット(好ましくな128ビット)を同時に受け取ることができる。SOC910は受け取ったデータを固定8ビット又は16ビットの整数フィールドにデコンポーズすることができる。SOC910はこれらのフィールドを4つまでの集合中で同時に加減算できる。この実施態様例の構成は計算の中でも、基数4のFFTを計算するのに極端に高い性能を達成できる。
この実施態様例では、アレイプロセッササブシステム9は、200メガヘルツ(MHz)の内部クロック速度を有している。以下の演算を各クロックサイクル毎に実行することができる。それは即ち、4つの単精度浮動小数点乗算及び4つの単精度浮動小数点加算と、整数/固定小数点加/減算、整数/固定小数点から浮動小数点式への変換と、浮動小数点から固定小数点式への変換とである。この実施態様例では、ローカルデータ記憶装置920は、対応するMAC900のためにY、Zオペランドを取り出している間にMMIC6を通したアクセスから受け取ったデータからの同時ローディングをサポートするため、2ウェイにインタリーブされている。
この実施態様例では、通信スキームは、標準的技法を使って、GEBI7、MMIC6、埋め込みマイクロプロセッササブシステム8、ELMI2、アレイプロセッサ9のAPIC965の実現の中に具体化されており、アレイプロセッサ9が、将来に想像されているフレームレンダリング及びDSPアプリケーションの形式に対して、75%の時間のオーダーで完全に活動的であり続けられるようにしている。この性能想定は、基本回路1とその内部アレイプロセッサ9に対するデータのローカリティに基づき妥当である。
この実施態様例の結果としての性能は、上記想定によれば、多くのDSP及び特定フレームレンダリングアルゴリズムに対し1−3ギガフロップ(毎秒10億浮動小数点演算)であろう。
基本回路1は、176ピンTQRF(薄型方形フラットパック)のような標準ICパッケージで実現され、各ICはプリント回路基板スペースの約1平方インチを占めるものと仮定しよう。そうすれば、本発明のある実施例はこれらのICを32個まで保持できるPCIバスカードとして実現でき、これによって僅かのコストで、シリコングラフィクスワークステーション(参考資料(1)Toy Story参照)の約16倍の性能が実現できる。
本発明は特に、Java(参考資料(64)−(65)参照)、及びMPEG−4(参考資料(57)−(63)参照)のような対話型オーディオービデオ言語を含むアプリケーションでの使用に適している。MPEG−4標準作業は、多様なアルゴリズムをカスタマーが目指すハードウェア上で実行できる環境を開発している。Javaはその定義において基本的にマシンに依存せず、非常に複雑で計算的に費用の掛かるアルゴリズムを作り出し引き起こす意味的能力を保有している。本発明はネットワーク機器の高性能サポートを提供する。
幾つかの実施例の補助説明
本発明の幾つかの実施例を、様式化されたアウトライン形式で、集積回路として補足的に説明するが、この集積回路は、
1つの大メモリー幅広インタフェース回路であって、この大メモリーは集積回路内に配置されていてもいなくてもよく、この大メモリー幅広インタフェース回路はaaワイヤ束D0から成るバスB0によって大メモリーと接続されており、
大メモリー広インタフェース回路内の両方向トランシーバーは前記接続バスB0のワイヤ束D0を接続して、大メモリー幅広インタフェース回路と大メモリーとの間のデータの転送を提供する、
そのような1つの大メモリー幅広インタフェース回路と、
1つ又はそれ以上のデータ処理回路であって、
プログラム可能有限状態マシン(PFSM)又はマイクロプロセッサの何れかと、
大メモリー幅広インタフェースに対するデータプロセッサインタフェース回路であって、このデータプロセッサインタフェース回路はバスB1によって大メモリー幅広インタフェース回路と接続されており、両回路は、
前記接続バスB1のワイヤ束コンポーネントD1に接続された両方向トランシーバーと、
前記ローカルメモリー回路内で前記接続バスB1の前記接続コンポーネントワイヤ束D1の主張及び/又は感知された状態を記憶する能力を提供し、状態がもはや主張されずそれ故前記接続バスB1の前記接続コンポーネントワイヤ束D1上で感知されないかもしれない後に状態情報を保持できるようにするローカルメモリー回路とから成り、且つ、
前記バスB1のワイヤ束D1の信号状態が、時間通りに前向き又は後ろ向きに翻訳されたD0の信号状態の幾つか又は全てを含んでいる、即ち、ある機構によってデータが前記バスB0のワイヤ束D0へ又はそこから転送できる、
そのようなデータプロセッサインタフェース回路と、
を含む1つ又はそれ以上のデータ処理回路と、
1つ又はそれ以上のアレイプロセッサであって、その各々は大メモリー幅広インタフェース回路へのアレイプロセッサインタフェース回路と、共有オペランド入力回路と、多数の乗算/累算器と、共有乗算器出力回路と、命令デコーダー回路とを含んでおり、且つ、
アレイプロセッサインタフェース回路の大メモリー幅広インタフェース回路への接続はバスB2から成り、且つインタフェース回路と大メモリー幅広インタフェース回路は、
前記接続バスB2の接続ワイヤ束コンポーネントD2に接続された両方向トランシーバーと、
前記ローカルメモリー回路内で前記接続バスB2の前記接続コンポーネントワイヤ束D2の主張及び/又は感知された状態を記憶する能力を提供し、状態がもはや前記接続バスB2の前記接続コンポーネントワイヤ束上で主張されずそれ故感知されないかもしれない後に状態情報を保持できるようにするローカルメモリー回路とを含み、且つ、
前記バスB2のワイヤ束D2の信号状態が、時間通りに前向き又は後ろ向きに翻訳されたD0の信号状態の幾つか又は全てを含んでいる、即ち、ある機構によってデータが前記バスB0のワイヤ束D0へ又はそこから転送できるようになっており、
共有オペランド入力回路はバスB3によってアレイプロセッサインタフェース回路に接続され、しかも、共有オペランド入力回路は、共有乗算器出力回路と、各乗算/累算器に関係するローカルデータメモリー回路にバスB4で接続されており、且つ、
前記共有オペランド入力回路はワイヤ束の状態情報の幾つか又は全てを受け取るようになっており、
各乗算−累算器は乗算及び加算機構に加えて2つの独立してアドレス可能なランダムアクセスメモリーからなっており、且つ、
前記乗算及び加算機構は一つの乗算器入力を共有し、読み取り専用メモリーであってもなくてもよい2つの独立してアドレス可能なランダムアクセスメモリーから2つの他の入力を供給されており、
各ランダムアクセスメモリーのアクセス及び制御ワイヤ束は制御ワイヤ束(CWB)のコンポーネントであり、
前記乗算及び加算機構は、乗算−累算器と乗算器出力回路とを共有するワイヤ束MOへの1つの出力ドライバを保有しており、
各出力ドライバーは制御ワイヤ束CWBのワイヤ束コンポーネントにより制御されており、
前記乗算器出力回路はMOワイヤ束インタフェースと、乗算器出力メモリー回路と、乗算器出力インタフェースとから成り、且つ、
前記MOワイヤ束インタフェースはMOワイヤ束に接続された入力回路から成り、
前記乗算器出力回路はMOワイヤ束インタフェース回路の入力回路と、メモリー回路内に記憶されるべきデータを供給できるような方法で接続されており、
前記メモリー出力回路は乗算出力インタフェースと接続され、これによりメモリー回路の状態が、メモリー出力インタフェースからコンポーネントワイヤ束又は全体バスB3の何れかに出力できる、
そのような1つ又はそれ以上のアレイプロセッサと、
を含む集積回路である。
ある実施例では、バスB0は更にコンポーネントワイヤ束D0A及びD0Cを含んでおり、且つ
大メモリー幅広インタフェース回路内の出力ドライバは、前記接続バスB0のワイヤ束D0Aを接続して、大メモリーデータにアクセスするのに必要なアドレス信号を供給し、
大メモリー幅広インタフェース回路内の出力ドライバは、前記接続バスB0のワイヤ束D0Cを接続して、大メモリーデータにアクセスするのに必要な制御信号を供給する。
ある代替実施例では、バスB0は更にコンポーネントワイヤ束D0Fを含んでおり、且つ、
大メモリー幅広インタフェース回路内の入力ドライバは、前記接続バスB0のワイヤ束D0Fを接続して、大メモリーデータアクセスの状態を通信するのに使うフィードバック信号を供給する。
ある実施例では、外部回路への通信インタフェースの内少なくとも一つが、請求されている回路がバスマスターとして作動するバスへの通信インタフェースを提供する。
ある実施例では、外部回路への通信インタフェースの内少なくとも一つが、請求されている回路がバススレーブとして作動するバスへの通信インタフェースを提供する。
図5−12は、ビデオフレーム生成タスク及び他の概ね並行する計算に対して近線形昇速を提供するための本方法の使用を示す。統合化のレベルが進むに従って、共有外部メモリーインタフェース内への外部メモリーインタフェース通信パスを集めて一団とすることが重大な利点となってくる。各外部メモリーインタフェースは、各ICに多くのピンを追加することにより生産コストに重大な経済的負担を加える。これはダイのサイズばかりでなく、熱散逸及び電力消費にもますます影響を与える。外部メモリーとのインタフェースをこの方法で共有すれば、製造コストに関して通信帯域幅を経済的に最適化できる。
図5は独立した外部メモリーインタフェースを備えた図1の基本回路2例を有する集積回路のブロック線図である。
図6は一つの外部メモリーインタフェースを共有する図1の基本回路2例を有する集積回路のブロック線図である。
図7は独立した外部メモリーインタフェースを備えた図1の基本回路4例を有する集積回路のブロック線図である。
図8は一つの外部メモリーインタフェースを共有する図1の基本回路4例を有する集積回路のブロック線図である。
図9は二つの外部メモリーインタフェースを共有する図1の基本回路4例を有する集積回路のブロック線図である。
図10は二つの共有された外部メモリーインタフェースと完全に相互接続されたメッセージポートを備えた図1の基本回路4例を有する集積回路のブロック線図である。
図11は四つの共有されたメモリーインタフェースを備えた図1の基本回路16例を有する集積回路のブロック線図である。
図12は二つの共有されたメモリーインタフェースを備えた図1の基本回路16例を有する集積回路のブロック線図である。
図13は図1の基本回路例をその対応するメモリーモジュールに接続するプリント回路ボードのブロック線図である。
図14は図1の基本回路例をその対応するメモリーモジュールに接続するもう一つのプリント回路ボードのブロック線図である。
参考資料
1.ユーボイス、ジェフ「太陽ハリウッドを行く:117SPARCステーションレンダー「Toy Story」最初の長編コンピューター動画フィルム」、SunWorld Online、1995年11月、www電子マガジンhttp://www.sun.com/sunworldonline/swol-11-1995/swol-11-pixar.html参照。
2.ファック、ヘンリー、米国特許第4,590,465号「ロジック補強した画素メモリーセルを使ったグラフィクスディスプレイシステム」1982年2月18日出願、1986年5月20日認可
3.アンドリュー、デビッドH他、米国特許第4,646,075号「データ処理パイプラインのためのシステムと方法」1983年11月3日出願、1987年2月24日認可
4.リトルフィールド、リチャード、米国特許第4,949,280号「パラレルプロセッサベース・ラスターグラフィックスシステムアーキテクチャ」1988年5月10日出願、1990年8月14日認可
5.ヘドリー、デイビッド他、米国特許第4,953,107号「ビデオ信号処理」1989年8月28日出願、1990年8月28日認可。
6.ウェストバーグ、トーマス他、米国特許第5,101,365号「Zバッファメモリーを使用したウィンドウを拡張するための装置」1990年11月7日出願、1992年3月31日認可
7.カウリー、ロビン、米国特許第5,103,217号「電子画像処理」1988年11月29日出願、1992年4月7日認可
8.ライアン、ボブ他、米国特許第5,182,797号「階層データ構造をディスプレイ表示するためのマルチプロセッサグラフィクスディスプレイシステム」1992年5月27日出願、1993年1月26日認可
9.ソカイトシオ他米国特許第5,594,844号「オブジェクトベースパラメータを使って数値分割されたボクセルを通しての光線追跡を使った3次元ビュー」1994年1月25日出願、1997年1月14日認可
10.ユーリン、キース、米国特許第5,630,043号「3次元画像表示のための動画テクスチャマップ装置及び方法」1995年5月11日出願、1997年5月13日認可
11.オッペンハイム、アラン&シェファ、ロナルド「ディジタル信号処理」▲C▼1975年、プレンティスホール、イングルッドクリフ、ニュージャージー
12.オッペンハイム、アラン&シェファ、ロナルド「離散時間信号処理」▲C▼1989年、プレンティスホール、ISBN 0−13−21629−X
13.バーンスリー、ミチェル&ハード、ライマン「フラクタル画像圧縮」▲C▼1993年、AKピーター社、ウェズリー、マサチューセッツ、02181、ISBN 1−56881−000−8
14.ドーベチー、イングリッド「ウェイブレットについての10の講義」▲C▼1992年、工業応用数学界、ISBN 0−89871−274−2
15.カイザー、ジェラルド「ウェイブレットへのフレンドリーな案内」▲C▼1994年、バークハウザ、ボストン、ISBN 0−8176−3711−7
16.フィッシャー、ユバル(編集)「フラクタル画像圧縮」▲C▼1995年、スプリンガー−フェルラーク、ニューヨーク、ISBN 0−387−94211−4
17.マグレガ、D.R.他「高速フラクタル圧縮」ドブ博士のジャーナル、1996年1月、34頁他
18.リム、ジェー「2次元信号及び画像の処理」▲C▼1990年、プレンティスホール、ISBN 0−13−935322−4
19.グラスナー、アンドリュー「ディジタル画像合成の原理」1、2巻、▲C▼1995年、モーガンカウフマン出版社、ISBN 1−55860−276−3
20.フォーリー、ジェームズ他「コンピューターグラフィクス:原理と実際−第2版」▲C▼1996年、1990年、アディソン−ウーズレイ出版社、ISBN 0−201−84840−6
21.ワット、アラン「3次元コンピューターグラフィクス」第2版、▲C▼1993年、アディソン−ウーズレイ出版社、ISBN 0−201−63186−5
22.ワット、アラン&ワット、マーク「進化したアニメーション及びレンダリング技法」▲C▼1992年、ACMプレス、ISBN 0−201−54412−1
23.プルシンキヴィッツ、プルツェミズロー&リンドナイヤー、アリスティッド他「プラントのアルゴリズム的美」▲C▼1990年、スプリンガ−フェルラーク、ニューヨーク社、ISBN 0−387−97297−8
24.イワタエイジ他「リアルタイムMPEG2ビデオコーディング/デコーディングのための2.2GOPSビデオDSP、2−RISC MIMD、6−PE SIMD」▲C▼1997年IEEE国際固体素子回路会議、1997年IEEE、ISBN 0−7803−3721−2、258−259頁
25.シルバーブルック、キア、米国特許第5,590,252号「ビデオプロセッサシステム及びオーディオプロセッサシステム」1993年4月28日出願、1996年12月31日認可
26.ユーリン、キース、米国特許第5,630,043号「3次元画像表示のための動画テクスチャマップ装置及び方法」1995年5月11日出願、1997年5月13日認可
27.サカイトシオ他米国特許第5,594,844号「オブジェクトベースパラメータを使って数値分割されたボクセルを通しての光線追跡を使った3次元ビュー」1994年1月25日出願、1997年1月14日認可
28.グリーン、エドワード他、米国特許第5,579,455号「階層的Z−バッファ可視性を使ったディスプレイ上への3次元シーンのレンダリング」1993年7月30日出願、1996年11月26日認可
29.ポールトン、ジョン他、米国特許第5,481,669号「強化メモリー装置を利用した画像生成のためのアーキテクチャ及び装置」1995年2月6日出願、1996年1月2日認可
30.パターソン、デイビッド&ヘネシー、ジョン「コンピューターアーキテクチャ:量的アプローチ(第2版)」▲C▼1990年、1996年、モーガンカウフマン出版社、ISBN 1−55860−329−8
31.ジョンソン、マイク「スーパースカラ・マイクロプロセッサ設計」▲C▼1991年、PTRプレンティス−ホール社、イングルッドクリフ、ニュージャージー、ISBN 0−13−875634−1
32.ムラカミカズアキ他「256MbDRAM及びカッドプロセッサを備えたパラレル処理RAMチップ」1997IEEE国際固体素子回路会議、228−229頁、ISBN 0−7803−3721−2
33.アイモトヨシハル他「16MbDRAMと128プロセッサを統合する7.68GPI3.84GB/s 1Wパラレル画像処理RAM」1996IEEE国際固体素子回路会議、372−373頁、ISBN 0−7803−3136−2
34.ヤオ、ヨン「クロマティックのMpact2ブースト3D:Mpact/3000が大量出荷される最初のメディアプロセッサになる」マイクロプロセッサリポート第10巻No.15、1頁及び6−10頁、1996年11月18日発行、▲C▼1996年、マイクロデザインリソース
35.シミズ、トヌ他「16MbDRAMを備えたマルチメディア32bRISCマイクロプロセッサ」1996IEEE国際固体素子回路会議、216−217頁、ISBN 0−7803−3136−2
36.グラスコフスキー、ピーター「富士通はDVDでメディアプロセッサを目指す:MMAは長命令ワードコア、統合周辺機器を結合」マイクロプロセッサリポート第10巻No.15、1996年11月18日発行、▲C▼1996年、マイクロデザインリソース
37.「三星、マルチメディア信号プロセッサを発表」ジョンペディアソシエーツPCグラフィックスレポート、1996年8月20日発行、▲C▼1996年、ジョンペディアソシエーツ、ティブロン、カリフォルニア94920、1153−1156頁
38.ヤオ、ヨン「三星、メディアプロセッサを出荷:MPAはマイクロソフトの新3Dソフトウェアアーキテクチャ用に設計されている」マイクロプロセッサリポート第10巻、No.11、1頁及び6−9頁、1996年8月26日発行、▲C▼1996年、マイクロデザインリソース
39.「クロマティック、Mpactを初公開」ジョンペディアソシエーツPCグラフィックスレポート、1996年8月27日発行、▲C▼1996年、ジョンペディアソシエーツ、ティブロン、カリフォルニア94920、1182−1183頁
40.ロムニー、ゴードン他、米国特許第3,621,214号「電子的に生成された透視図」1968年11月13日出願、1971年11月16日認可
41.ゴーブ、ロバート、米国特許第5,410,649号「画像表現コンピューターシステム及びネットワーク」1992年6月29日出願、1995年4月25日認可
42.ゴーブ、ロバート他、米国特許第5,522,083号「1つのプロセッサが残りのプロセッサで使うために命令を取り出す、SIMDモードで作動する再構成可能マルチプロセッサ」1994年6月22日出願、1996年5月28日認可
43.「TMX320C6201ディジタル信号プロセッサ:プロダクトプレビュー」SPRS051.pdf、1997年1月、▲C▼1997年、テキサスインスツルメント、テキサスインスツルメントウェブサイトhttp://www.ti.comから入手可能
44.ワインレブ、ダニエル&ムーン、デイビッド「フレイバー:LISPマシンにおけるメッセージパッション」AIメモ602、1980年11月、M.I.T.人工知能研究所
45.デーリィ、ウィリアム他「メッセージ駆動プロセッサアーキテクチャ、バージョン11」AIメモ1069、1988年8月、M.I.T.人工知能研究所
46.クレイ、セイモア、米国特許第4,128,880号、1976年6月30日出願、1978年12月5日認可
47.ベアード、ダグラス他、米国特許第5,544,337号「ベクトルレジスタで制御するためのレジスタを有するベクトルプロセッサ」1995年6月7日出願、1996年8月6日認可
48.ヨシナガトール、シンジョウナオキ、米国特許第5,598,574号「ベクトル処理装置」1996年3月18日出願、1997年1月28日認可
49.クレイ、セイモア、米国特許第3,833,889号「マルチモードデータ処理システム」1973年3月8日出願、1974年9月3日認可
50.ポーター、ジョン他、米国特許第4,589,067号「ダイナミックに構成可能なマルチファンクションパイプラインALUを備えた全浮動小数点ベクトルプロセッサ」1983年5月27日出願、1986年5月13日認可
51.エリス、ジェームズ他、米国特許第5,418,973号「ベクトル演算及びスカラー演算の双方を調整するキャッシュコントローラーを備えたディジタルコンピューターシステム」1992年6月22日出願、1995年5月23日認可
52.オモダコイチロー他、米国特許第4,651,274号「ベクトルデータプロセッサ」1984年3月28日出願、1987年3月17日認可
53.ギャラップ、ミシェル他、米国特許第5,600,846号「データ処理システム並びにその方法」1995年2月17日出願、1997年2月4日認可
54.プリンス、ベティ「半導体メモリー:設計、製造、適用ハンドブック、第2版」▲C▼1983年、1991年、ジョンウィリィ&サン社、ISBN 0−471−94295−2
55.「製品説明:MIPS16アプリケーション特定エクステンション」v1.1、1997年7月24日のシリコングラフィクス社ウェブサイト
http://www.sgi.com/MIPS/mips16pdfで見ることができる
56.「ThumTMv.2.0紹介」1995年3月出版、▲C▼アドバンスドRISCマシン社(ARM)1995年
57.「ボリューム1エディトーリアル」画像通信ジャーナル:MPEG−4についての特集、1997年7月17日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper0.htmからダウンロード
58.ケネン、ロブ、ペレイラ、F.、チャリグリョーネ、L.「MPEG4:コンテクストとオブジェクティブ」画像通信ジャーナル:MPEG−4についての特集、1997年7月17日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper1.htmからダウンロード
59.コンティン、L、他「MPEG−4オーディオコーデックプロポーザルでのテスト」画像通信ジャーナル:MPEG−4についての特集、1997年7月17日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper3.htmからダウンロード
60.オスターマン、ジョーン「MPEG−4におけるビデオツール及びアルゴリズムの評価に使用されるメソドロジー」画像通信ジャーナル:MPEG−4についての特集、1997年7月17日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper4.htmからダウンロード
61.エブラーミ、トーラジュ「MPEG−4ビデオ検証モデル:内容表現に基づくビデオエンコーディング/デコーディングアルゴリズム」画像通信ジャーナル:MPEG−4についての特集、1997年7月17日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper5.htmからダウンロード
62.アバロ、O.他「MPEG−4システムと記述言語:可聴可視情報表現における進んだ方法」画像通信ジャーナル:MPEG−4についての特集、1997年7月17日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper6.htmからダウンロード
63.デンジ、P.他「MPEG−4:混合メディアのためのオーディオ/ビデオ&合成グラフィクス/オーディオ」画像通信ジャーナル:MPEG−4についての特集、1997年7月17日の週をhttp://drogo/cselt.stet.it/ufv/leonardo/icjfiles/mepg-4 si/paper7.htmからダウンロード
64.ゴスリング、ジェイムズ、ジョイ、ビル&スチール、ガイ「JavaTM言語仕様」▲C▼1996年サンマイクロシステムズ社、アディソン−ウーズレイにより出版、ISBN 0−201−63451−1
65.アーノルド、ケン&ゴスリング、ジェイムズ「JavaTMプログラミング言語」▲C▼1996年サンマイクロシステムズ社、アディソン−ウーズレイにより出版、ISBN 0−201−63455−4
66.インテル「アクセレレイティッドグラフィクスポートインタフェース仕様」改訂版1.0、インテル社、1996年7月31日
67.「ユニバーサルシリアルバス仕様」改訂版1.0、コンパック、ディジタルイクイップメント、IBMPC、インテル、マイクロソフト、NEC、ノーザンテレコムの各社による、1996年1月15日
68.ソラーリ、エドワード&ウィルス、ジョージ「PCIハードウェア及びソフトウェア、第3版」▲C▼1994年、1995年、1996年、アナブックにより出版、サンディエゴ、カリフォルニア、ISBN 0−92392−32−9、第5刷、1996年1月
69.シャンリー、トム、アンダーソン、ドム「PCIシステムアーキテクチャ、第3版」▲C▼1995年マインドシェア社、ISBN 0−201−40993−3,第1刷、1995年2月
70.パパイチャリス、パノス&ソ、ジョン「TMS32020による高速フーリエ変換アルゴリズムの実現」、「TMS32020によるディジタル信号処理アプリケーション」の84−85頁、▲C▼1986年テキサスインスツルメント社

Claims (11)

  1. メモリを使用する集積回路であって
    前記メモリに連結されていて、前記メモリへのアクセスを制御するように構成されているインタフェース回路と、
    前記インタフェース回路にそこからの情報を受け取るため連結されていて、前記インタフェース回路を制御するように構成されている埋め込みプロセッサと、
    内部バスを介して前記埋め込みプロセッサに連結され、前記インタフェース回路からけたデータに基づいて算術計算を実行するためのアレイプロセッサと、を備え、
    該アレイプロセッサが、
    複数の乗算/累算器回路と、
    複数の乗算/累算器回路の少なくとも2つに、共有されたオペランドを同時に供給するために前記複数の乗算/累算器回路に連結されている共有オペランド回路と、
    前記複数の乗算/累算器の前記少なくとも2つから出力を受けるように連結され、前記少なくとも2つの乗算/累算器回路によってさらなる処理を行うために前記出力を提供するための共有出力及びフィードバックインタフェースとを備え、
    前記それぞれの共有オペランド回路が、
    複数のオペランド上で固定点加算あるいは減算を行うことによって固定点結果を決定する前端ユニットと、
    前記固定点結果を第1の浮動点結果に変換する浮動点変換ユニットとを備えたことを特徴とする集積回路。
  2. 第1の埋め込み回路と、
    第1の埋め込み回路に連結された第1のアレイプロセッサと、
    前記第1の埋め込み回路と前記第1のアレイプロセッサに連結された第1のメモリインタフェース回路と、
    前記第1の埋め込み回路に連結された第1の通信ポートと、
    前記第1の通信ポートと通信するように構成された第2の通信ポートと、
    前記第2の通信ポートに連結された第2の埋め込みプロセッサと、
    第2の埋め込みプロセッサに連結された第2のアレイプロセッサと、
    前記第2の埋め込みプロセッサと前記第2のアレイプロセッサに連結された第2のメモリインタフェースとを備え、
    前記第1のアレイプロセッサが少なくとも2つの算術処理ユニット備え、
    少なくとも2つの算術処理ユニットのそれぞれが、
    第1のローカルメモリに連結された第1のMACユニットと、
    第2のローカルメモリに連結された第2のMACユニットと、
    第3のローカルメモリに連結された第3のMACユニットと、
    前記第1のMACユニット、前記第2のMACユニット、及び前記第3のMACユニットに対して、共有のオペランドを提供するように連結された共有オペランドユニットと、
    前記第1のMACユニットから第1の出力を、前記第2のMACユニットから2の出力を、及び前記第3のMACユニットから第3の出力を受けるように結合され、さらに、前記第1のローカルメモリに前記第1の出力を、前記第2のローカルメモリ前記第2出力を、前記第3のローカルメモリ前記第3の出力を提供するように結合されている共有出力及びフィードバックインタフェースと
    を備えたことを特徴とする集積回路。
  3. 前記少なくとも2つの処理ユニットが3つの算術処理ユニットであることを特徴とする請求項2に記載の集積回路。
  4. 前記少なくとも2つの算術処理ユニットがさらに第4のローカルメモリに連結された第4のMACユニットであることを特徴とする請求項2に記載の集積回路。
  5. 外部メモリからデータを受けるように構成されたインタフェース回路と、
    前記第1のインタフェース回路を制御するように構成された第1の埋め込みプロセッサと、
    前記インタフェース回路からデータを受け、算術計算を行うように構成された第1のアレイプロセッサと、
    前記第1の埋め込みプロセッサ及び前記第1のアレイプロセッサに連結され、第2のアレイプロセッサ及び第2の埋め込みプロセッサと通信するための第1の通信ポートと、を備え、
    前記アレイプロセッサが、
    第1のローカルメモリからデータを受けるように構成された第1のMACユニットと、
    第2のローカルメモリからデータを受けるように構成された第2のMACユニットと、
    第3のローカルメモリからデータを受けるように構成された第3のMACユニットと、
    前記第1のMACユニット、前記第2のMACユニット、及び前記第3のMACユニットからデータを受けるように構成され、さらに、前記第1のローカルメモリ、前記第2のローカルメモリ、前記第3のローカルメモリにデータを提供するように構成された第1の共有出力及びフィードバック回路と、
    第4のローカルメモリからデータを受けるように構成された第4のMACユニットと、
    第5のローカルメモリからデータを受けるように構成された第5のMACユニットと
    前記第4のMACユニット及び前記第5のMACユニットからデータを受けように構成され、さらに、前記第4のローカルメモリ及び前記第5のローカルメモリにデータを提供するように構成された第2の共有出力及びフィードバック回路と
    共有オペランドを前記第1のMACユニット、第2のMACユニット、及び、第3のMACユニットに提供するように構成された第1の共有オペランド回路と、
    を備えたことを特徴とする集積回路。
  6. 前記アレイプロセッサがさらに共有オペランドを前記第4のMACユニット及び第5のMACユニットに同時に提供するように構成された第2の共有オペランド回路を備えていることを特徴とする請求項に記載の集積回路。
  7. フレームレンダリング集積回路であって、
    外部メモリに連結されたインタフェース回路と、
    インタフェース回路に連結され、前記集積回路を制御するように構成された埋め込みプロセッサと、
    前記インタフェース回路に連結され、算術計算を行うアレイプロセッサとを備え、
    前記アレイプロセッサが、
    第1の複数のオペランドを有する第1のローカルメモリに連結された第1の乗算/累算器(MAC)ユニットと、
    第2の複数のオペランドを有する第2のローカルメモリに連結された第2のMACユニットと、
    第3の複数のオペランドを有する第2のローカルメモリに連結された第3のMACユニットと、
    第4の複数のオペランドを有する第2のローカルメモリに連結された第4のMACユニットと、
    第5の複数のオペランドを有する第2のローカルメモリに連結された第5のMACユニットと、
    第6の複数のオペランドを有する第2のローカルメモリに連結された第6のMACユニットと、
    第1のMACユニット、第2のMACユニット、及び第3のMACユニットに連結された第1の共有オペランドユニットと、
    第4のMACユニット、第5のMACユニット、及び第6のMACユニットに連結された第2の共有オペランドユニットと
    前記第1のMACユニット、第2のMACユニット、及び、第3のMACユニットに連結され、さらに第1のローカルメモリ、第2のローカルメモリ、及び、第3のローカルメモリに連結された第1の共有出力及びフィードバックインタフェースと、
    を備えたことを特徴とする集積回路。
  8. 前記共有オペランドが、前記第1のMACユニットに対して前記第1の複数のオペランドと協働して第1の結果を計算するために、前記第2のMACユニットに対して前記第2の複数のオペランドと協働して第2の結果を計算するために、前記第3のMACユニットに対して前記第3の複数のオペランドと協働して第3の結果を計算するために、共有オペランドを提供することを特徴とする請求項に記載の集積回路。
  9. 前記第1の結果、前記第2の結果、及び前記第3の結果が互いに独立に計算されることを特徴とする請求項に記載の集積回路。
  10. 前記第1の共有出力及びフィードバックインタフェースが前記第1のMACユニットから前記第1の結果を、前記第2のMACユニットから前記第2の結果を、前記第3のMACユニットから前記第3の結果を受け、前記第1の結果を前記第1のローカルメモリに、前記第2の結果を前記第2のローカルメモリ前記第3の結果を前記第3のローカルメモリに提供することを特徴とする請求項に記載の集積回路。
  11. 前記アレイプロセッサがさらに、
    前記第4のMACユニット、前記第5のMACユニット、及び前記第6のMACユニットに連結されるとともに、さらに前記第4のローカルメモリ、前記第5のローカルメモリ及び前記第6のローカルメモリに連結された第2の共有出力及びフィードバックインタフェースを備えたことを特徴とする請求項に記載の集積回路。
JP52299998A 1996-12-19 1997-12-18 ビデオフレームレンダリングエンジン Expired - Lifetime JP4235987B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US3347696P 1996-12-19 1996-12-19
US60/033,476 1996-12-19
US5039697P 1997-06-20 1997-06-20
US60/050,396 1997-06-20
PCT/US1997/023849 WO1998028695A1 (en) 1996-12-19 1997-12-18 Video frame rendering engine

Publications (2)

Publication Number Publication Date
JP2001506781A JP2001506781A (ja) 2001-05-22
JP4235987B2 true JP4235987B2 (ja) 2009-03-11

Family

ID=26709753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52299998A Expired - Lifetime JP4235987B2 (ja) 1996-12-19 1997-12-18 ビデオフレームレンダリングエンジン

Country Status (6)

Country Link
US (1) US6854003B2 (ja)
JP (1) JP4235987B2 (ja)
KR (1) KR100366689B1 (ja)
DE (2) DE19782200B4 (ja)
GB (1) GB2335127B (ja)
WO (1) WO1998028695A1 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6646639B1 (en) 1998-07-22 2003-11-11 Nvidia Corporation Modified method and apparatus for improved occlusion culling in graphics systems
US6480205B1 (en) 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
DE69813912T2 (de) 1998-10-26 2004-05-06 Stmicroelectronics Asia Pacific Pte Ltd. Digitaler audiokodierer mit verschiedenen genauigkeiten
US6859872B1 (en) 1999-05-12 2005-02-22 Analog Devices, Inc. Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation
US6820189B1 (en) 1999-05-12 2004-11-16 Analog Devices, Inc. Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation
US7107302B1 (en) 1999-05-12 2006-09-12 Analog Devices, Inc. Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units
US7111155B1 (en) 1999-05-12 2006-09-19 Analog Devices, Inc. Digital signal processor computation core with input operand selection from operand bus for dual operations
US6765575B1 (en) 1999-12-06 2004-07-20 Nvidia Corporation Clip-less rasterization using line equation-based traversal
US6573900B1 (en) 1999-12-06 2003-06-03 Nvidia Corporation Method, apparatus and article of manufacture for a sequencer in a transform/lighting module capable of processing multiple independent execution threads
US6650325B1 (en) 1999-12-06 2003-11-18 Nvidia Corporation Method, apparatus and article of manufacture for boustrophedonic rasterization
US6452595B1 (en) 1999-12-06 2002-09-17 Nvidia Corporation Integrated graphics processing unit with antialiasing
US6353439B1 (en) 1999-12-06 2002-03-05 Nvidia Corporation System, method and computer program product for a blending operation in a transform module of a computer graphics pipeline
US6504542B1 (en) 1999-12-06 2003-01-07 Nvidia Corporation Method, apparatus and article of manufacture for area rasterization using sense points
US6417851B1 (en) 1999-12-06 2002-07-09 Nvidia Corporation Method and apparatus for lighting module in a graphics processor
US6198488B1 (en) 1999-12-06 2001-03-06 Nvidia Transform, lighting and rasterization system embodied on a single semiconductor platform
US6844880B1 (en) 1999-12-06 2005-01-18 Nvidia Corporation System, method and computer program product for an improved programmable vertex processing model with instruction set
US6515671B1 (en) 1999-12-06 2003-02-04 Nvidia Corporation Method, apparatus and article of manufacture for a vertex attribute buffer in a graphics processor
US7209140B1 (en) 1999-12-06 2007-04-24 Nvidia Corporation System, method and article of manufacture for a programmable vertex processing model with instruction set
US6870540B1 (en) 1999-12-06 2005-03-22 Nvidia Corporation System, method and computer program product for a programmable pixel processing model with instruction set
US6806886B1 (en) 2000-05-31 2004-10-19 Nvidia Corporation System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline
US6593923B1 (en) 2000-05-31 2003-07-15 Nvidia Corporation System, method and article of manufacture for shadow mapping
US20020008704A1 (en) * 2000-07-21 2002-01-24 Sheasby Michael C. Interactive behavioral authoring of deterministic animation
US8930844B2 (en) * 2000-08-22 2015-01-06 Bruce Carlin Network repository of digitalized 3D object models, and networked generation of photorealistic images based upon these models
US6597356B1 (en) 2000-08-31 2003-07-22 Nvidia Corporation Integrated tessellator in a graphics processing unit
US7162716B2 (en) 2001-06-08 2007-01-09 Nvidia Corporation Software emulator for optimizing application-programmable vertex processing
US7456838B1 (en) 2001-06-08 2008-11-25 Nvidia Corporation System and method for converting a vertex program to a binary format capable of being executed by a hardware graphics pipeline
US7006101B1 (en) 2001-06-08 2006-02-28 Nvidia Corporation Graphics API with branching capabilities
US6697064B1 (en) 2001-06-08 2004-02-24 Nvidia Corporation System, method and computer program product for matrix tracking during vertex processing in a graphics pipeline
WO2002101497A2 (en) 2001-06-08 2002-12-19 Nvidia Corporation System, method and computer program product for programmable fragment processing in a graphics pipeline
JP4945053B2 (ja) 2003-03-18 2012-06-06 ルネサスエレクトロニクス株式会社 半導体装置、バスインターフェース装置、およびコンピュータシステム
US7353362B2 (en) 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
US7412588B2 (en) 2003-07-25 2008-08-12 International Business Machines Corporation Network processor system on chip with bridge coupling protocol converting multiprocessor macro core local bus to peripheral interfaces coupled system bus
KR100648293B1 (ko) 2005-08-09 2006-11-23 삼성전자주식회사 그래픽 시스템 및 그것의 그래픽 처리 방법
KR100835173B1 (ko) * 2006-09-20 2008-06-05 한국전자통신연구원 곱셈 누적 연산을 위한 디지털 신호처리 장치 및 방법
ATE480060T1 (de) * 2007-04-20 2010-09-15 Nethawk Oyj Verfahren, vorrichtung, testgerät und programm zum testen von multimediakommunikationsgeräten und -software
US8515052B2 (en) * 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US7724165B2 (en) * 2008-07-17 2010-05-25 Faraday Technology Corp. Audio codec and built-in self test method for the same
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
JP5974233B2 (ja) * 2008-11-12 2016-08-24 リージェンメド(ケイマン)エルティーディー. 単離した腎細胞およびその使用
KR101511273B1 (ko) 2008-12-29 2015-04-10 삼성전자주식회사 멀티 코어 프로세서를 이용한 3차원 그래픽 렌더링 방법 및시스템
JP5380392B2 (ja) * 2010-08-04 2014-01-08 ルネサスエレクトロニクス株式会社 半導体装置、バスインターフェース装置、およびコンピュータシステム
JP5324676B2 (ja) * 2012-02-17 2013-10-23 ルネサスエレクトロニクス株式会社 プロセッサ、バスインターフェース装置、およびコンピュータシステム
US9411726B2 (en) * 2014-09-30 2016-08-09 Samsung Electronics Co., Ltd. Low power computation architecture

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3621214A (en) 1968-11-13 1971-11-16 Gordon W Romney Electronically generated perspective images
US3833889A (en) 1973-03-08 1974-09-03 Control Data Corp Multi-mode data processing system
US4128880A (en) 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
JPS5725069A (en) 1980-07-21 1982-02-09 Hitachi Ltd Vector data processing equipment
US4590465A (en) 1982-02-18 1986-05-20 Henry Fuchs Graphics display system using logic-enhanced pixel memory cells
EP0086904B1 (de) 1982-02-18 1985-11-21 Deutsche ITT Industries GmbH Digitale Parallel-Rechenschaltung für positive und negative Binärzahlen
US4589067A (en) 1983-05-27 1986-05-13 Analogic Corporation Full floating point vector processor with dynamically configurable multifunction pipelined ALU
US4888682A (en) * 1983-09-09 1989-12-19 International Business Machines Corp. Parallel vector processor using multiple dedicated processors and vector registers divided into smaller registers
US4646075A (en) 1983-11-03 1987-02-24 Robert Bosch Corporation System and method for a data processing pipeline
US4594651A (en) * 1984-01-18 1986-06-10 General Electric Company Concurrent processor for control
US4799144A (en) 1984-10-12 1989-01-17 Alcatel Usa, Corp. Multi-function communication board for expanding the versatility of a computer
JP2564805B2 (ja) * 1985-08-08 1996-12-18 日本電気株式会社 情報処理装置
GB2181929B (en) 1985-10-21 1989-09-20 Sony Corp Methods of and apparatus for video signal processing
GB8719395D0 (en) * 1987-08-17 1988-04-27 Gen Electric Co Plc Radar systems
GB8728836D0 (en) 1987-12-10 1988-01-27 Quantel Ltd Electronic image processing
US5187796A (en) * 1988-03-29 1993-02-16 Computer Motion, Inc. Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units
US4949280A (en) 1988-05-10 1990-08-14 Battelle Memorial Institute Parallel processor-based raster graphics system architecture
US5293586A (en) 1988-09-30 1994-03-08 Hitachi, Ltd. Data processing system for development of outline fonts
US5101365A (en) 1988-10-31 1992-03-31 Sun Microsystems, Inc. Apparatus for extending windows using Z buffer memory
US5184318A (en) 1989-09-05 1993-02-02 Cyrix Corporation Rectangular array signed digit multiplier
US5182797A (en) 1989-10-23 1993-01-26 International Business Machines Corporation Multi-processor graphics display system for displaying hierarchical data structures
US5410649A (en) 1989-11-17 1995-04-25 Texas Instruments Incorporated Imaging computer system and network
US5522083A (en) 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
US5544337A (en) 1989-12-29 1996-08-06 Cray Research, Inc. Vector processor having registers for control by vector resisters
EP0843254A3 (en) * 1990-01-18 1999-08-18 National Semiconductor Corporation Integrated digital signal processor/general purpose CPU with shared internal memory
EP0568356B1 (en) 1992-04-29 1999-04-14 Canon Kabushiki Kaisha Video processor system
US5418973A (en) 1992-06-22 1995-05-23 Digital Equipment Corporation Digital computer system with cache controller coordinating both vector and scalar operations
US5388206A (en) 1992-11-13 1995-02-07 The University Of North Carolina Architecture and apparatus for image generation
JP3304444B2 (ja) 1992-11-30 2002-07-22 富士通株式会社 ベクトル処理装置
JPH06223198A (ja) 1993-01-26 1994-08-12 Hitachi Ltd 光線追跡による画像生成装置及び方法
US5717947A (en) 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5579455A (en) 1993-07-30 1996-11-26 Apple Computer, Inc. Rendering of 3D scenes on a display using hierarchical z-buffer visibility
US5630043A (en) 1995-05-11 1997-05-13 Cirrus Logic, Inc. Animated texture map apparatus and method for 3-D image displays
US5557759A (en) * 1995-06-07 1996-09-17 International Business Machines Corporation Video processor with non-stalling interrupt service
US5790880A (en) * 1996-01-04 1998-08-04 Advanced Micro Devices Microprocessor configured to dynamically connect processing elements according to data dependencies
US5745125A (en) * 1996-07-02 1998-04-28 Sun Microsystems, Inc. Floating point processor for a three-dimensional graphics accelerator which includes floating point, lighting and set-up cores for improved performance
US5747125A (en) * 1996-07-18 1998-05-05 Viskase Corporation Fibrous composite cellulosic film and method

Also Published As

Publication number Publication date
US6854003B2 (en) 2005-02-08
GB2335127B (en) 2002-02-13
DE19782200B4 (de) 2011-06-16
DE19782200T1 (de) 1999-11-18
WO1998028695A1 (en) 1998-07-02
JP2001506781A (ja) 2001-05-22
KR100366689B1 (ko) 2003-01-06
GB2335127A (en) 1999-09-08
KR20000062253A (ko) 2000-10-25
GB9914054D0 (en) 1999-08-18
US20020002574A1 (en) 2002-01-03

Similar Documents

Publication Publication Date Title
JP4235987B2 (ja) ビデオフレームレンダリングエンジン
Azarkhish et al. Neurostream: Scalable and energy efficient deep learning with smart memory cubes
US5822606A (en) DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
CN114118354A (zh) 高效的softmax计算
US12242846B2 (en) Supporting 8-bit floating point format operands in a computing architecture
US6037947A (en) Graphics accelerator with shift count generation for handling potential fixed-point numeric overflows
WO2015142538A1 (en) Hardware-based atomic operations for supporting inter-task communication
US20240427847A1 (en) Scalable sparse matrix multiply acceleration using systolic arrays with feedback inputs
US10916252B2 (en) Accelerated data transfer for latency reduction and real-time processing
CN101751356B (zh) 用于改进直接存储器存取传送效率的方法、系统和装置
Wang et al. A scalable FPGA engine for parallel acceleration of singular value decomposition
Li Design of an FPGA-based computing platform for real-time three-dimensional medical imaging
Undy et al. A low-cost graphics and multimedia workstation chip set
JP2023512195A (ja) 並列ロードストアを有する共有スクラッチパッドメモリ
Nickolls et al. Graphics and computing GPUs
Bensaali et al. An FPGA implementation of 3D affine transformations
TW484110B (en) Video frame rendering engine
Geraci et al. A transpose-free in-place SIMD optimized FFT
US20250111609A1 (en) Apparatus and method for converting compressed geometry to acceleration data structures
Dowling et al. HARP: An open architecture for parallel matrix and signal processing
US20240111353A1 (en) Constructing hierarchical clock gating architectures via rewriting
Li et al. Design of dual port RAM for parallel volume rendering system
Chevtchenko et al. Neuroprocessor NeuroMatrix NM6403 architectural overview
Pekkilä et al. Stencil Computations on AMD and Nvidia Graphics Processors: Performance and Tuning Strategies
Kirchhart Solidfmm: A highly optimised library of operations on the solid harmonics for use in fast multipole methods

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070515

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070810

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080415

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080609

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20080702

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080715

A72 Notification of change in name of applicant

Free format text: JAPANESE INTERMEDIATE CODE: A721

Effective date: 20080807

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080815

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080912

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080912

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081125

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081209

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111226

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121226

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121226

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131226

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term