JP4235987B2 - ビデオフレームレンダリングエンジン - Google Patents
ビデオフレームレンダリングエンジン Download PDFInfo
- 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
Links
- 238000009877 rendering Methods 0.000 title claims description 17
- 230000015654 memory Effects 0.000 claims description 146
- 238000012545 processing Methods 0.000 claims description 56
- 238000004891 communication Methods 0.000 claims description 37
- 238000007667 floating Methods 0.000 claims description 36
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 28
- 238000004422 calculation algorithm Methods 0.000 description 24
- 239000013598 vector Substances 0.000 description 23
- 230000007246 mechanism Effects 0.000 description 16
- 239000012925 reference material Substances 0.000 description 16
- 238000000034 method Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 9
- 238000007792 addition Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000010561 standard procedure Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 229910002056 binary alloy Inorganic materials 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000219122 Cucurbita Species 0.000 description 1
- 235000009852 Cucurbita pepo Nutrition 0.000 description 1
- 206010011878 Deafness Diseases 0.000 description 1
- 241000196324 Embryophyta Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- NCEXYHBECQHGNR-UHFFFAOYSA-N chembl421 Chemical compound C1=C(O)C(C(=O)O)=CC(N=NC=2C=CC(=CC=2)S(=O)(=O)NC=2N=CC=CC=2)=C1 NCEXYHBECQHGNR-UHFFFAOYSA-N 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 231100000895 deafness Toxicity 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000000796 flavoring agent Substances 0.000 description 1
- 235000019634 flavors Nutrition 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 208000016354 hearing loss disease Diseases 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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/7817—Specially adapted for signal processing, e.g. Harvard architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations 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)
- メモリを使用する集積回路であって、
前記メモリに連結されていて、前記メモリへのアクセスを制御するように構成されているインタフェース回路と、
前記インタフェース回路にそこからの情報を受け取るために連結されていて、前記インタフェース回路を制御するように構成されている埋め込みプロセッサと、
内部バスを介して前記埋め込みプロセッサに連結され、前記インタフェース回路から受けたデータに基づいて算術計算を実行するためのアレイプロセッサと、を備え、
該アレイプロセッサが、
複数の乗算/累算器回路と、
該複数の乗算/累算器回路の少なくとも2つに、共有されたオペランドを同時に供給するために前記複数の乗算/累算器回路に連結されている共有オペランド回路と、
前記複数の乗算/累算器の前記少なくとも2つから出力を受けるように連結され、前記少なくとも2つの乗算/累算器回路によってさらなる処理を行うために前記出力を提供するための共有出力及びフィードバックインタフェースと、を備え、
前記それぞれの共有オペランド回路が、
複数のオペランド上で固定点加算あるいは減算を行うことによって固定点結果を決定する前端ユニットと、
前記固定点結果を第1の浮動点結果に変換する浮動点変換ユニットと、を備えたことを特徴とする集積回路。 - 第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の出力を提供するように結合されている共有出力及びフィードバックインタフェースと、
を備えたことを特徴とする集積回路。 - 前記少なくとも2つの処理ユニットが3つの算術処理ユニットであることを特徴とする請求項2に記載の集積回路。
- 前記少なくとも2つの算術処理ユニットがさらに第4のローカルメモリに連結された第4のMACユニットであることを特徴とする請求項2に記載の集積回路。
- 外部メモリからデータを受けるように構成されたインタフェース回路と、
前記第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の共有オペランド回路と、
を備えたことを特徴とする集積回路。 - 前記アレイプロセッサがさらに共有オペランドを前記第4のMACユニット及び第5のMACユニットに同時に提供するように構成された第2の共有オペランド回路を備えていることを特徴とする請求項5に記載の集積回路。
- フレームレンダリング集積回路であって、
外部メモリに連結されたインタフェース回路と、
該インタフェース回路に連結され、前記集積回路を制御するように構成された埋め込みプロセッサと、
前記インタフェース回路に連結され、算術計算を行うアレイプロセッサと、を備え、
前記アレイプロセッサが、
第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の共有出力及びフィードバックインタフェースと、
を備えたことを特徴とする集積回路。 - 前記共有オペランドが、前記第1のMACユニットに対して前記第1の複数のオペランドと協働して第1の結果を計算するために、前記第2のMACユニットに対して前記第2の複数のオペランドと協働して第2の結果を計算するために、前記第3のMACユニットに対して前記第3の複数のオペランドと協働して第3の結果を計算するために、共有オペランドを提供することを特徴とする請求項7に記載の集積回路。
- 前記第1の結果、前記第2の結果、及び、前記第3の結果が互いに独立に計算されることを特徴とする請求項8に記載の集積回路。
- 前記第1の共有出力及びフィードバックインタフェースが前記第1のMACユニットから前記第1の結果を、前記第2のMACユニットから前記第2の結果を、前記第3のMACユニットから前記第3の結果を受け、前記第1の結果を前記第1のローカルメモリに、前記第2の結果を前記第2のローカルメモリに、前記第3の結果を前記第3のローカルメモリに提供することを特徴とする請求項9に記載の集積回路。
- 前記アレイプロセッサがさらに、
前記第4のMACユニット、前記第5のMACユニット、及び、前記第6のMACユニットに連結されるとともに、さらに前記第4のローカルメモリ、前記第5のローカルメモリ及び前記第6のローカルメモリに連結された第2の共有出力及びフィードバックインタフェースを備えたことを特徴とする請求項7に記載の集積回路。
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)
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)
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 |
-
1997
- 1997-12-18 KR KR10-1999-7005593A patent/KR100366689B1/ko not_active IP Right Cessation
- 1997-12-18 US US08/993,442 patent/US6854003B2/en not_active Expired - Lifetime
- 1997-12-18 DE DE19782200A patent/DE19782200B4/de not_active Expired - Lifetime
- 1997-12-18 DE DE19782200T patent/DE19782200T1/de active Pending
- 1997-12-18 JP JP52299998A patent/JP4235987B2/ja not_active Expired - Lifetime
- 1997-12-18 GB GB9914054A patent/GB2335127B/en not_active Expired - Fee Related
- 1997-12-18 WO PCT/US1997/023849 patent/WO1998028695A1/en not_active Application Discontinuation
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 |