JPH0954833A - デジタル・データ及びビデオ信号の処理デバイス及びシステム - Google Patents
デジタル・データ及びビデオ信号の処理デバイス及びシステムInfo
- Publication number
- JPH0954833A JPH0954833A JP8125000A JP12500096A JPH0954833A JP H0954833 A JPH0954833 A JP H0954833A JP 8125000 A JP8125000 A JP 8125000A JP 12500096 A JP12500096 A JP 12500096A JP H0954833 A JPH0954833 A JP H0954833A
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- processors
- bus
- register
- data
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 42
- 239000013598 vector Substances 0.000 claims abstract description 69
- 239000000758 substrate Substances 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 description 15
- 239000000872 buffer Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 238000000034 method Methods 0.000 description 13
- 238000012546 transfer Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 8
- 238000009877 rendering Methods 0.000 description 7
- 238000012790 confirmation Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 240000007320 Pinus strobus Species 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 4
- 230000006837 decompression Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 229910052710 silicon Inorganic materials 0.000 description 4
- 239000010703 silicon Substances 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 1
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- 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/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7864—Architectures of general purpose stored program computers comprising a single central processing unit with memory on more than one IC chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/327—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
処理システムにおいてべくベクトル処理及び非同期割込
みサービスによる高性能なビデオ・プロセッサを実現す
るVLSI素子を提供する。 【解決手段】 単一のVLSI素子上に複数のプロセッ
サを有するビデオ・プロセッサであり、ビデオ信号スト
リームを協同的に発生する。さらに少なくとも1つ好適
には少なくとも2つの割込みレジスタ有し、命令データ
・ストリームの実行及び割込みのオペレーションを制御
する。
Description
システムは、使用中にそのシステムのユーザに対する表
示を作成するために用いられるビデオ信号を発生する。
このようなシステムの例としては、パーソナル・コンピ
ュータ及び、セット・トップ・ボックス(set top box)
やビデオ・ゲーム機等々と接続されるテレビ受像器等の
汎用機器システムがある。
要求が増大するにつれて、ビデオ会議、ビデオ信号スト
リームの圧縮/解凍、及び提示された画像の3次元レン
ダリング等が頻繁に行われるようになってきたため、従
来から認識されていたこのようなシステムにおけるデジ
タル・データ処理の限界に近づいてきたり又は限界を超
えたりするようになった。この結果、上記のようなアプ
リケーションにおいて成功させようとする試みは性能的
な低下を生じることとなった。すなわち、(わずか一つ
の例をとってみても)高品質の3次元レンダリングを実
行しようとすれば、その表示を発生するシステムの応答
性が遅くなってしまうことになる。
第1の目的は、汎用的システムの性能を改善することで
ある。本発明の第2の目的は、複数のプロセッサを単一
のVLSI素子(デバイス)上に設けることにより、ビ
デオ信号ストリームを発生するべく協同的に動作させか
つ命令データ・ストリームの処理を用いることである。
するにあたって、表示信号ストリームを処理するデータ
処理システムにおいて、ベクトル処理及び特殊なアドレ
ス指定モードによる高機能を有するビデオ・プロセッサ
を設けるために超大規模集積回路(VLSI)の設計及び
その製品が利用される。上記の第2の目的を実現するに
あたって、命令データ・ストリームの実行及び割込みの
オペレーションを制御するべく上記素子が少なくとも1
つの、そして好適には少なくとも2つの割込みレジスタ
を有する。
説明する。本発明の説明は好適例について示されるが、
当業者であれば以下の説明の要旨に基づき本発明の好適
な結果を尚得られるような適宜の修整が可能であろう。
従って、以下の説明は、当業者に対して開示を与えるも
のとして広く理解されるべきであり、本発明を限定する
ものではない。
・アーキテクチャ及びその単一チップ素子における具体
例に関するものである。しかしながら、先ずそのプロセ
ッサ素子の有用性を見出せる特定のシステムについて触
れることが適切であろう。図1は、所与のパーソナル・
コンピュータ・システムに近いシステムの概略図であ
る。このシステムは、ビデオ・プロセッサ・メモリ11
へ接続されるパラレル・ビデオ・プロセッサ10(PV
P、後に詳述する)を有し、ビデオ出力信号(RGB出
力として示す)を与える。このシステムはまた主プロセ
ッサ複合体12を有し、これはx86アーキテクチャベ
ースの複合体、又はPowerPCプロセッサ・チップ及びサ
ポート・チップ等のRISC(Reduced Instruction Set
Computing)プロセッサであってもよい。システム・メ
モリ14は、主プロセッサ複合体12と関連して動作す
る。PVP10及び主プロセッサ複合体12並びに他の
周辺装置15は、PCIバス16(パーソナル・コンピ
ュータ業界で普及しつつあるバス仕様)を介して接続さ
れる。
表示装置としてのテレビ受像器と共に用いられるセット
・トップ・ボックス等、特殊な需用者が使用するべくさ
らに専用化されたシステムがある。図2はこのようなシ
ステムを示しており、図1と同様に本発明によるビデオ
・プロセッサ10及び関連するメモリ11が示されてい
る。図2のシステムにおいては、PVP10が、804
86型プロセッサ18、ハードディスク・ドライブ20
及び/又はフロッピー・ディスク・ドライブ21をサポ
ート可能な入出力ハンドラ19、並びにシステム読取専
用メモリ(ROM)22、遠隔制御装置25に応答する
入出力/CD(Compact Diskette)制御装置24、並びに
CDドライブ26と接続されている。Xバス28等の適
宜のバスによりこのシステムの各要素を結合することが
できる。
0については後述するが、これは、ビデオ及び画像のリ
アルタイム処理に対して高まりつつある要望に対処する
べく設計されたビデオ処理アーキテクチャである。科学
や娯楽の分野におけるビデオ会議、MPEG解凍、及び
3次元(3D)レンダリングは、リアルタイムで実行する
ために多大な演算能力を必要とするビデオ処理の例であ
る。幸いなことにグラフィカル・アルゴリズムは、通
常、パラレル処理システムに対して分割することができ
る。PVPは、そのビデオ処理に対する手法の点で特徴
的である。MPEGや3Dの支援等に対して専用の論理
を開発するのではなく、PVPは、異なるアルゴリズム
に対してプログラム可能でありかつ再使用可能であっ
て、単一の超大規模集積回路(VLSI)素子上にパラ
レル・ビデオ処理システムを統合させている。複数のプ
ロセッサの各々(図3の30a、30b、30c及び3
0d)は、Harvardアーキテクチャ素子の形態によるマ
イクロコード・エンジンであって命令キャッシュ(31
a、31b、31c及び31d)及びデータ・キャッシ
ュ(32a、32b、32c及び32d)を備えている。
ここでは同一構造の要素を参照する際には共通の数字部
分が用いられ、その後ろの添字は複数の要素の特定の1
つを参照するために用いられている。説明の中で数字部
分のみを用いて参照する場合、その説明は、複数の同様
の要素のいずれにも当てはまるものとする。各プロセッ
サは、基本的に関連するキャッシュにより実行し続ける
ことができ、ミスの場合にのみ停止する。ここでは4個
のマイクロコード・エンジンが示されこれらについて説
明されるが、設けられる数としては任意の数が可能であ
り、PVP10に対して望まれる性能により決定され
る。ここで用いられた4個は、エンジンの好適な数であ
り、通常、エンジンの数は4個以上であると考える。
あるという事実により、プロセッサとメモリとの間の広
帯域幅の通信が可能となった。単一バス34は、本明細
書では「ライン・バス」と称するが、相互接続機構とし
て選択されたものである。このバスは非常に広く、すな
わち、各バス・サイクル中にキャッシュ31と32との
間又はキャッシュ31、32とメモリ・インタフェース
39との間のキャッシュ・ライン全体を転送することが
できる。全てのプロセッサ30は統合されたメモリ・ア
ドレス空間を有する。任意のプロセッサ30が、任意の
プロセッサ30が、画面メモリ上又はそれ以外の任意の
部分へアクセスしまたキャッシュすることができる。
は、シリコン製造の際に多くの変形が可能である。例え
ば低性能チップでは、2つのプロセッサ、ホスト・イン
タフェース、及び32ビットDRAMのインタフェース
のみを設ける。このようなチップは、MPEG−1解凍
並びに2D及び3Dレンダリングの機能をもつ。高性能
チップでは、6個のプロセッサ、ホスト・インタフェー
ス、2重RAMBUSのインタフェース、及びYUV入
力ポートを設ける。このチップは、MPEG−2解凍、
電子会議、及び例外的3Dレンダリング機能をもつ。処
理エンジン、命令セット、及び内部バスの標準化によっ
て、特定の製品用にカスタム化可能なチップのファミリ
を製造することができる。
ァミリも可能であるが、各アプリケーションのためのカ
スタム・チップを製造することが目的ではない。本発明
のアーキテクチャの利点は、集約的演算を要する広範な
タスクの実働化を実現するプログラム可能なプロセッサ
を提供することである。すなわち、動画を解凍する際に
離散逆余弦変換を実行するべく専用化されたプロセッサ
を、3Dオブジェクトを変換しかつレンダリングする一
方でビデオ・ゲームを実行するように再プログラミング
することができる。
ことが可能なスケーラブル・マルチプロセッサ複合体を
設けることによりこれらの目的を達成する。このアーキ
テクチャは、高度のキャッシュ管理を備えた広いライン
・バスを特徴とし、同じシリコン型すなわち基板上に1
〜10個のプロセッサ・エンジンを設けることが可能で
ある。4個のプロセッサをもつ設計態様は、生のMPE
G−1及びMPEG−2ビデオ信号ストリーム並びに生
のビデオ・ストリームをデコードするために必要な処理
能力を有する。さらに、PVPは、非常に傑出した2D
及び3Dグラフィックを実現するべく再プログラミング
することが可能である。
DSPとして設計されてはいない。その代わりにPVP
プロセッサは、ビデオ及びグラフィック形式のアルゴリ
ズムを処理するように設計されてきた。このためPVP
は、ビデオ/グラフィック・アプリケーション用に適応
された限定されたALU(演算論理ユニット)命令セット
により4個の基本ベクトルを処理するようにセットアッ
プされる。
PEG複合体に同じメモリを共有させることによりメモ
リ11を効率的に使用する。これにより、同じ2メガバ
イトのメモリを、MPEGデコード又は高性能グラフィ
クスのために使用することができる。もちろん、同じメ
モリが同時に双方の機能を実行するように使用すること
はできない。
必要としないことでシリコンの大きさを最小限とする。
ALUは、短縮命令セットであることを特徴とする16
ビット幅であって乗算ユニットもまた16ビットである
(専用のMACレジスタへは32ビット)。これによ
り、必要なシリコンの大きさを低減する。さらに、命令
キャッシュ31及びデータ・キャッシュ32の大きさは
最小限に維持されている。
となくチップ上の各サブシステムに対して制御/状態イ
ンタフェースを提供することである。制御バスは16ビ
ット幅であり、基本的に装置のコンフィギュレーション
及び状態の検査のために用いられる。ホスト・プロセッ
サ12、18が1つのPVPプロセッサ30の状態をポ
ーリングしなければならない状況において、このポーリ
ングは制御バスを通して行うことができる。さらにホス
ト・プロセッサは、そのプロセッサの制御ポートへ書込
むことにより個々にプロセッサをリセットしたり再スタ
ートさせたりできる。
O空間は、制御バスへマッピングされるべきである。各
サブシステムは、制御バスからアクセス可能な独自のレ
ジスタ・セットを有している。例えば、各プロセッサ
は、リセットのための制御ポート及びベクトル・アドレ
ス・レジスタを有する。ビデオ出力サブシステムは、垂
直用及び水平用のタイミング・レジスタを有する。16
ビット・バス上のプロトコルは、VGA互換チップを容
易に作製するために(そして任意のインタフェースを作
成する代わりに)PCAT IO空間のプロトコルに適
合している。
ードにおいて有用である。制御ポートは、プロセッサの
実行を停止させ、レジスタ内容を検査し、そして任意に
コードによる単一ステップを実行するために用いられ
る。制御バスを介してこれらの種類のオペレーションを
実行することは、ライン・バスを他のプロセッサのため
に空けることになり、これらの他のプロセッサは時間的
に重要なコードを実行し続けることができる。
ース38である。これは、ホスト・バスからのIOを処
理するべく設計されている。別の例では、特別なIOア
ドレス空間がライン・バスへ追加される。この場合ホス
トは、ライン・バスからの帯域幅を取得せずに制御バス
を用いることができ、又はライン・バス上のマスタは、
ホスト・バスに対する調停をせずにかつホスト・バスか
らの帯域幅を使用せずに制御バスへアクセスすることが
できる。
ので、各制御バス・スレーブに必要なハードウェアを最
小限とするために非常に単純なプロトコル(ISA(Ind
ustry Standard Architecture)バス又はATバスとして
知られるものと完全には同一でないが同様のプロトコ
ル)が用いられる。固定パルス幅の読取りストローブ及
び書込みストローブが、データ転送のために用いられ
る。 ・A1−15:転送先/転送元のIO(ワード)アドレ
ス ・D0−15:データ・バス ・BLE:下位のデータ・バイトの選択 ・BHE:上位のデータ・バイトの選択 ・RD#:読取りストローブ ・WR#:書込みストローブ
がインタフェースする共通のポイントである。これは、
非常に広いデータ・パス(128ビット)を有し、1つ
のトランザクションでキャッシュ・ライン全体を転送す
ることができる。この広いデータ・パスによって、非常
に高速のキャッシュ間転送が可能となり、キャッシュの
ライン・バス・ポート上の調整論理が不要となる。アド
レス相及びデータ相が、ライン・バス上でパイプライン
化される。すなわち、現在のトランザクションのアドレ
ス相は、前のトランザクションのデータ相と同時に発生
する。アドレス相又はデータ相のいずれについても待ち
状態がない。待ち状態なしでデータが得られない場合、
スレーブは、サイクルを再試行しなければならないこと
をマスタへ示すために非確認(NACK)信号を出さな
ければならない。このことは、再試行の合間に他のトラ
ンザクションのためにバスを空けることになる。
ョンの待ち時間を費やしても全帯域幅を最大限とするよ
うに設計されている。例えば、分割トランザクション読
取りは、スレーブが読取りアドレスをラッチしてキュー
確認(QACK)信号を戻すことができるようにサポー
トされる。バスは、他のマスタのトランザクションのた
めに働くように空いている。スレーブがデータを得たな
らば、ライン・バスに対する調停をし、マスタとなり、
そして保留中のマスタへデータを戻すことによりトラン
ザクションを完了しなければならない。これらの分割ト
ランザクション・サイクルは、待ち状態が挿入された場
合よりも長く(待ち時間が長くなるため)マスタを保留
状態とすることになるが、ライン・バスの必要とされる
帯域幅を最小限とする。
ために、幾つかのパイプライン態様が組込まれた。例え
ば、ソフトウェア・パイプラインでは、コードによって
データ項目をそのキャッシュへロードすることを要求す
る。この「タッチ(touch)」命令は、命令パイプを停止
させない。その代わりに、(キャッシュ・ミスが生じた
場合)読取りがバス上で開始されると共にプロセッサ3
0は自由に命令を実行し続ける。プロセッサ30は、デ
ータがキャッシュされる前にそのデータをレジスタへロ
ードしようとする場合にのみ停止することになる。ハー
ドウェア前方読取りは、インデクス制御レジスタにより
次の順のラインが必要になることを示すために実行され
る。(前方読取り修飾子が出されたとき)キャッシュへ
のアクセスの際、次の順のキャッシュ・ラインが使用可
能か否かについて検査される。使用可能でなければ、プ
ロセッサがアクセスを試みることによりミスを発生して
しまう前にそのキャッシュ・ラインが要求されることに
なる。命令キャッシュからの命令フェッチは、常に、極
めてシーケンシャルな特性をもつコード実行により有効
とされる「前方読取り」として扱われるべきである。
ータ整合性)のプロトコルについては、本明細書中で別
途概要を説明する。データ・キャッシュ32は、各々、
バイトあたりの汚染ビットを備える書戻し機能及びキャ
ッシュ間の汚染ラインを転送するためのプロトコルをサ
ポートしている。これによってプロセッサ30は、DR
AMへのキャッシュ・ラインの書戻しを必要とすること
なく、同じキャッシュ・ライン内の異なるバイト(すな
わち画素)を修正することができる。汚染ラインは、後
続のキャッシュ・ミスにより押出されるまでキャッシュ
されたままとなる。ストリーム・アドレス指定又は同報
通信アドレス指定を用いることにより、キャッシュRA
Mを仮想的FIFO(先入れ先出し)を実行したり同報通
信データを捕捉したりするために利用することができ
る。これらの双方の技術は、ライン・バスのトラフィッ
クを実質的に低減することができる。
次の論理群において説明する。 <制御>制御信号は次の通りである。 ・BUSCLK:バスクロックは、全てのバス・トラン
ザクションのタイミング基準となる主クロックである。
他の全てのサブシステムは、その内部論理を実行するた
めに(適宜)このクロックからの分配クロックを使用す
る。例えば、ホスト・インタフェースは、ホスト・バス
からのトランザクションをバス・クロックに同期させな
ければならない。全ての信号の変化は、このクロックの
立上がりエッジにより行われる。 ・RESET#:リセット信号は、ソフトウェアにより
出されるか又はホスト・インタフェースからのハードウ
ェア・リセットから駆動される。この信号に応答して、
全てのサブシステムはデフォールト状態へリセットされ
る。
のいずれがバスの使用を獲得するかを決定するために用
いられる。バスの使用が許可されると、マスタは次のク
ロック期間中にアドレス相信号を駆動する。そのマスタ
に対するデータ相信号は、即座にそのアドレス相信号に
追随する。
セスを要求するとき、そのマスタによりバス要求信号が
出される。マスタ機能を有する各サブシステムについて
固有のバス要求信号がある。この要求信号は、その後の
クロック期間におけるマスタを決定し導出する調停論理
のための立ち上がりクロック・エッジよりも十分以前に
出されなければならない。この要求信号は、マスタのト
ランザクションのアドレス相の間に解放されなければな
らない。
マスタが次のトランザクションのためにバスを制御する
かを選択する調停論理により同期的に出される。マスタ
機能を有する各サブシステムについて固有のバス要求信
号がある。この許可信号は、各トランザクションのアド
レス相の間に次のマスタを反映するために変化する。調
停論理は、バスにとってマスタがない状態を避けるため
に、何らかの公平性アルゴリズムを実行しなければなら
ない。
ションにおいてバスに対する排他的アクセスを獲得する
ためにロック信号を用いることができる。多重トランザ
クションとは、例えば、アトミック(atmic)な読取り−
修正−書込みサイクル等である。ロック信号は、そのト
ランザクションのアドレス相の間にマスタにより出され
なければならない。ロック信号は、最後のトランザクシ
ョンのアドレス相まで、そのREQn#信号及びLOC
K#信号の双方を保持し続けなければならない。マスタ
がスレーブから持続的にNACKを受信している場合、
そのマスタは、スレーブに対する排他的アクセスを獲得
しそのサイクルを完了させるためにLOCK#信号を使
用しなければならない。
号は全て、マスタにより駆動される。全てのデータ・キ
ャッシュは、ラインが与えられるべきか又は無効とされ
るべきかを判断するためにアドレス相信号をデコードし
なければならない。DRAM及びホスト・インタフェー
スにまた、アドレスがこれらの特定の領域内にあるか否
かを判断するためにこのアドレス相信号をデコードす
る。
は、有効なアドレス相信号の間にマスタにより駆動され
る。この信号は、後続する信号を有効状態に駆動されて
いるものとして修飾するために用いられる。 ・WR:書込み信号は、読取りサイクルと書込みサイク
ルとを区別する。具体的には、マスタ又はスレーブのい
ずれがデータ相の間にデータ・バスを駆動することにな
るかを決定する。 ・ADR4〜23:これらのアドレス・ラインは、トラ
ンザクションにおける送信先アドレスを指定する。ここ
で、ADR0〜3がないことを注記する。なぜなら、バ
スはライン全体(16バイト)を同時に転送するからで
ある。また、16メガバイトの物理的なアドレス指定限
界があることを注記する。
される。 ・MID0〜3:マスタIDビット(15個までの可能
なマスタ・サブシステム、「0」は未使用)は、ストリ
ーム・トランザクション中に送信先マスタを指定するた
めにマスタにより駆動される。マスタは、他の全てのト
ランザクション中には自身のIDを駆動する。読取りト
ランザクションが分割される場合、スレーブはこのID
をラッチし、読取り回答(reply)の間にラッチされたI
Dを用いて保留中のマスタへ送らなければならない。 ・LAH:ルックアヘッド・アドレス修飾子は、このア
ドレスからシーケンシャル・アドレス指定が予想される
ことをキャッシュ・サブシステムに対して示すために用
いられる。従って、キャッシュ・サブシステムは、必要
であれば次のラインを獲得しなければならない。
タがMID0〜3ビットにより指定されたようにアドレ
ス指定されるべきであることを示すために用いられる。
ストリーム・トランザクションは、トランザクションの
データ(及びアドレス)が特定のマスタを目的とする場
合、仮想FIFO及び読取り回答のために用いられる。
読取り回答の間、保留中のマスタは常にデータを受け取
ることができ、NACKは受信されない。仮想FIFO
サポートについては、FIFOが満杯(書込み)又は空
(読取り)である場合にNACKが受信されることがあ
る。
このサイクルに参加するべきであることを示すために用
いられる。書込み同報通信の間、全てのマスタがバスか
らのデータをラッチしようとする。これは、そのデータ
が多くのプロセッサにより使用される可能性のある場合
には有用である。これにより、各プロセッサが個々にデ
ータを取り出す必要がないため、ライン・バス帯域幅を
節約することができる。読取り同報通信(同報呼出)
は、開始マスタに加えて全てのキャッシュがデータをラ
ッチしようとすること以外は、メモリ読取りと同じであ
る。
常のメモリ読取りと獲得読取りとを区別するために用い
られる。獲得信号は、書込みミスの結果であり、ライン
に対する排他的アクセスを獲得するために働く。さらに
獲得/回答信号は、読取り回答をストリーム書込みから
区別する。 ・IO:IO信号は、通常のメモリ読取り及び書込みと
入出力命令とを区別するために用いられる。ホスト・イ
ンタフェースは、ライン・バスからIOアドレス空間へ
応答する唯一のサブシステムである。 ・HOST:ホスト信号は、そのメモリ・サイクルがホ
スト・バスを目的とすることを示すために用いられる。
PVPがマスタとならなければならず、ホスト・バス上
のメモリ・サイクルを実行する。現在、メモリ空間のみ
がサポートされる(IO空間はサポートされてない)。
イン(又は部分的ライン)のデータ・ビットを含む。D
AT0〜7はそのラインのバイト0に対応し、データ1
20〜127はそのラインのバイト15に対応する。デ
ータは、リトルエンディアン順(逆バイト順)に配列さ
れている。 ・BE0〜15#:バイト・イネーブル信号は、いずれ
のバイト(DAT信号)が有効データを含むかを示すた
めにアクティブに駆動される。実際には、無効バイトに
ついては、対応するDAT信号を3値論理としなければ
ならない。
#ビットがライン内のいずれかのバイトが有効であるこ
とを表すのか又はライン内のいずれかのバイトが汚染さ
れていることを表すのかを示す。 ・DACK#:データ確認信号は、後続のデータ相の間
に(書込みにおける)データ転送を受け入れることがで
きるか又は(読取りにおける)データを供給できるいず
れかの(そして全ての)スレーブにより出される。
レーブにより出され、書込みデータが書込みのためのキ
ュー状態となったか又は読取り要求がキュー状態となっ
たかを示す。読取りについては、この信号は、バス・サ
イクルが分割されたことを示す。すなわち、要求された
データを戻すためにスレーブは、バスについて調停しな
ければならない。QACK#は、DACK#よりも優先
度が低い。つまり、同じ読取りデータ相の間にDACK
#がデータ・キャッシュにより戻されかつQACK#が
DRAMインタフェースにより戻される場合、DRAM
インタフェースはそのDRAM読取りを中断しなければ
ならない。
ーブがビジー状態であって要求されたデータを戻せない
(若しくはラッチできない)又はその要求さえラッチで
きないときにその送信先スレーブにより戻される。NA
CK#信号に応答して、マスタは、バスについて再調整
しかつ速やかにバス・トランザクションを再試行しなけ
ればならない。
バスのマスタすなわちアドレス相信号を駆動する装置と
して選択する機構である。事実上、ライン・バスへ接続
された各装置は、たとえDRAMインタフェースであっ
てもマスタ機能を有することになる。DRAMインタフ
ェースは、分割トランザクション・サイクルにおいてデ
ータを戻すためにマスタとなる必要がある。ライン・パ
スのアドレス相及びデータ相はパイプライン化されるの
で、マスタは実際には単一クロック・サイクルについて
バスを所有するのみである。新たなマスタは、各クロッ
ク・サイクルにおいてライン・バスを駆動することがで
きる。従って、調停は単一クロック・サイクルで発生す
る必要があると同時に、ライン・バスを常時ビジー状態
に維持できなければならない。
は、バス・サイクルと同時に発生する。言い替えるなら
ば、1つのマスタがバス上で転送を実行する一方で、そ
のバスに関して競合する全てのマスタが要求を出してお
りかつ調停論理が働いている。従って、次の使用可能な
バス・サイクルに関して次のマスタを選択することがで
きる。図4は、多数のマスタが同時にバスを要求する例
を示す。調停論理は、クロック・サイクル毎に新たなマ
スタを選択することができるので、バスがアイドル状態
となることがない。
許可を出すためにクロックを用いない。要求は、1つの
クロック・エッジの後極めて速やかに出されなければな
らない。それによって許可論理が次のクロック・エッジ
より前に決定する。n番目のクロックnにおいて許可を
受信した後、受信した装置はn+1番目のサイクルをそ
のトランザクションのアドレス相として所有し、n+2
番目のサイクルをそのデータ相として所有する。この1
つのクロック待ちは、データが戻される前にアドレス情
報が負荷の大きいバスを通りキャッシュ・ヒット論理を
介することによる伝搬遅延を許容するために必要とみら
れている。調停論理は、バスにとってマスタがない状態
を避けるために公平性アルゴリズム(例えば、順番優
先)を実行する。LOCK#信号は、バスに対するアク
セスを延長するためにバス・サイクルのアドレス相の間
に出すことができる。これは、アトミック・バス・サイ
クルを実行するために、又は送信先装置からのNACK
が繰り返されることによる空白状態を避けるために用い
ることができる。
ランザクションの概要を示したものである。
ュ・ラインを獲得する必要がある場合には必ず発生する
(通常、これはキャッシュ・ミスの結果である)。読取
りサイクルのタイミングの例が、図5に示されている。
するときサイクルAが発生する。読取り要求はDRAM
インタフェースによりラッチされるが、データはまだD
RAMから読取られていない。従って、トランザクショ
ンは、キュー確認信号により終了する。DRAMインタ
フェースは、要求されたラインをDRAMから読取って
いるビジー状態である。サイクルBにおいては、第2の
マスタ(M2)がラインを要求する。この場合、DRA
Mインタフェースは、マスタがそのサイクルを繰返さな
ければならないことを示す確認否定(NACK)信号を
返す。しかしながら、同時にスヌープ・キャッシュは、
要求されたラインの有効な複写をもつことを検知してそ
れをデータ確認(DACK)信号と共に与えている。そ
の後、マスタM2はそのデータの複写を受信することが
でき、再試行する必要はない。サイクルCでは、第3の
マスタ(M3)もまた、ラインの読取りに対する確認否
定信号を受信する。このマスタは、バスに関する再調停
をしそのサイクルを再試行しなければならない。サイク
ルDではDRAMインタフェースが、マスタM1が要求
したデータを獲得している。DRAMインタフェースは
バスに関する調停をし、読取り回答トランザクションを
用いてそのデータを送る。サイクルEでは、マスタM3
がサイクルを再試行し、DRAMインタフェースがその
要求をキューしている。
みがそのラインの一部(例えば、1個の汚染バイト)を
もつことが可能である。この場合、第2のミスが発生す
ることがあり、マスタM2は再びそのラインを要求しな
ければならなくなる。DRAMからラインを受信する
と、そのラインは既にキャッシュされている汚染データ
と併合される。
めにキャッシュ・ラインへの排他的アクセスを必要とす
るときに発生する(これは、キャッシュ書込みミスの結
果である)。獲得サイクルは、DRAMインタフェース
が参加しないことを除いて読取りサイクルと非常に似て
いる。これは、開始キャッシュが、DACK信号を下げ
ることによりDRAMサイクルを終了させるからであ
る。従って、獲得サイクルが有効データのない結果とな
る可能性がある(可能性が極めて高い)。獲得サイクル
の間、開始キャッシュは、いずれの有効データも汚染デ
ータとしてラッチする。従って、ラインの全て又は一部
を後で書戻す必要がある。
のプロトコルは、グラフィック・アプリケーションにお
いては非常に有用である。例えば、2つのプロセッサが
複数のポリゴン及びこれらのポリゴンの間の境界をレン
ダリングしていると仮定すると、1つのキャッシュ・ラ
イン内にある可能性が極めて高い。画素は各プロセッサ
により書かれるので、ライン(及びその部分的汚染内
容)が必要に応じてキャッシュ間を行き来して渡され
る。キャッシュの1つがラインをそのキャッシュから出
さなければならないときにのみ、データがDRAMへ書
き込まれる。従って、DRAMインタフェースは、プロ
セッサが実行した多くの個々の画素書込みの結果として
1つのライン書込みを調べるのみである。
書込むことを必要とするときには必ず発生する(通常こ
れは、キャッシュの汚染ライン書戻しの結果である)。
書込みサイクルのタイミングの例は、図6に示されてい
る。
むときサイクルAが発生する。書込みはDRAMインタ
フェースへ通知される。トランザクションは、キュー確
認信号により終了する。DRAMインタフェースは、要
求されたラインをDRAMへ書込んでいるビジー状態で
ある。サイクルBでは、第2のマスタ(M2)がライン
を書込む。DRAMインタフェースはまたこの書込みを
通知されるので再びキュー確認信号を返す。しかしなが
ら、同時にスヌープ・キャッシュは汚染データを受入れ
る空きラインをもつことを検知しており、データを受信
してデータ確認信号を返す。DRAMインタフェースは
データ確認信号を検知して、DRAMに対する保留中の
書込みサイクルを終了することができる。サイクルCで
は、第3のマスタ(M3)がDRAMインタフェースに
対して書込みをキューすることができる。サイクルDで
は、第4のマスタ(M4)がDRAMインタフェースに
対してラインを書込もうとするが、確認否定信号を受信
する。サイクルEでは、マスタM4がサイクルを再試行
し、DRAMインタフェースがその要求をキューしてい
る。
置(interleave)可能であることは重要である。待ち状態
を挿入する代わりにNACK信号を用いることは、別の
バンクへアクセスしようとする他のマスタに対してバス
を空けることになる。
RAMへ書込もうとする点でメモリ書込みサイクルと類
似している。他の全てのキャッシュは、データ転送を監
視し、NACK信号ではなくQACK信号が発生すると
同時にデータをラッチする。同報呼出サイクルは、マス
タがDRAMからデータを読取ろうとする点でメモり読
取りサイクルと類似している。読取りサイクルと全く同
様に、キャッシュによりデータが与えられてDRAMサ
イクルを終了することができる。相違点は、全てのキャ
ッシュが同時にそのデータをラッチすることである。要
求された同報呼出データがキャッシュ内で汚染されてい
るならば、汚染ラインのホルダが同報呼出のNACK信
号を出し、書戻しを開始する。同報通信データはキャッ
シュ内の無効ラインを満たし、有効ラインを上書きする
ことになる。キャッシュ・セット全体が汚染されている
場合にのみそのキャッシュは同報通信データを受け入れ
ない。
に全てのプロセッサにより参照される必要のあるデータ
構造に対するライン・バス全体のトラフィックを低減す
る傾向がある。それでも尚DRAMの帯域幅は、共有デ
ータ構造が変更されるときDRAMが常に更新される場
合と同様に広帯域とすることができる。プログラマは、
極めて慎重にデータ構造を同報通信空間へ配置しなけれ
ばならない。同報通信空間が大きすぎるとキャッシュを
占有しすぎることが多々あり、そのために標準的メモリ
参照におけるキャッシュ・ミスが頻繁となる。
するための機構である。仮想FIFOは、FIFOとし
て使用可能なキャッシュの一区画であり、これにより2
つの非同期プロセスの間におけるデータの自動的バッフ
ァ操作が可能となる。
ッシュの各々において最大幅Xでセットアップされてい
る。FIFOは、キャッシュ32内に存在する循環バッ
ファと考えることができる。FIFOにおける入出のた
めに正確なシーケンシャル・アドレスを発生すること
は、入力装置及び出力装置が担う。例えば、FIFOが
アドレス100Hで始まり16バイトの幅がある場合、入力
及び出力のためのアドレス順序は、100H、101H、102
H、...、10FH、100H、101H、...となる。例として、ホ
スト・インタフェースがプロセッサ2のキャッシュにあ
るFIFOへデータを送信しているとする。FIFOが
満杯である(循環バッファの全ての位置が占められてい
る)ならば、そのキャッシュはホスト・インタフェース
へNACK信号を返す。その後ホスト・インタフェース
は、データが受け入れられるまで継続的に再試行する。
同様に、プロセッサはFIFOから読取る。もしFIF
Oが空であれば、プロセッサはデータが書込まれるまで
停止することになる。2つのプロセッサがほぼ同じ速度
で実行していると仮定すると、データは、これらの間を
非常に僅かなポーリング遅延で移行することができる。
もう一方の側も示している。プロセッサ2は、プロセッ
サ1のキャッシュにあるFIFOから読取ることができ
る。このFIFOにデータがないときに読取りが発生し
たならば、NACK信号が返され、プロセッサ2は再試
行が完了するまで停止することになる。同様に、プロセ
ッサ1が満杯のFIFOへ書込みしようしたならば、プ
ロセッサ1は停止することになる。
のメモリ・アドレス空間からなる。PVP内の各プロセ
ッサは、いずれのメモリ場所へもアクセスする。PVP
内の高度のキャッシュ・アーキテクチャは、システム内
の種々のプロセッサに対するデータ・コヒーレンシィを
維持する。
へのアクセスに関して構築されている。上位8ビットで
与えられる特殊なアドレス指定モードを除いてPVPモ
デル内にI/O空間は作られない。しかしながらホスト
・インタフェースは、ホスト入出力サイクルを利用して
PVPの制御バスへアクセスすることにより、制御機能
を実行する。PVP内の各プロセッサは、16メガバイ
トのアドレス空間内の任意の場所又はホスト・メモリ空
間の物理メモリの31ビットまでの任意のアドレスへア
クセスすることができる。PVPは、ホスト・マスタと
なることができ、メモリ・サイクル又は入出力サイクル
を開始することができる。
モリ場所に対して再配置(relocate)可能である。PVP
に関するメモリ・マップは、ユーザ・コンフィギュレー
ションに依存する。各プロセッサ・コード及びデータ領
域は、16メガバイトのアドレス領域のいずれへも配置
可能である。ほとんどの一般モデルは、アドレス0から
始まる各プロセッサ用の4個のアドレス空間からなるラ
スタ・バッファを有する。各プロセッサはアドレス再配
置レジスタ(ARR)を有し、任意の所与の場所における
コードを再配置するために用いることができる。ここ
で、マルチプル・プロセッサは、固有のローカル・デー
タ領域をもつ共通コード領域を利用することができるこ
とを注記する。
を含むアドレス空間レジスタを有し、これは全てのコー
ド・フェッチのためのオフセットとして用いられる。こ
のアドレスが、システムにおける全てのコード・フェッ
チ及び全ての実効アドレス発生において加算される。こ
れにより、各プロセッサに対するコード・ウィンドウを
極めて容易に移動することができる。全てのデータ・フ
ェッチは、絶対的であって再配置レジスタをもたない。
必要なデータ・アドレスを計算することはプログラマが
担う。
しかつデータ・オペレーションに必要な実効アドレスを
形成するためにそれを用いることができる。
ニット内の幾つかの場所から、命令フェッチのための実
効アドレスを発生することができる。次のような場所で
ある。 1.そのプロセッサの命令ポインタ(IP)。イネーブル
とされたルックアヘッド・オプションにより常にセット
されている。 2.そのプロセッサの分岐/リンク・レジスタ(BA
L)。これは、ジャンプ命令が実行されたときのリター
ン・アドレスを含む。リターン命令(BALからIPへ
移動)により用いられる。 3.割込みベクトル・アドレス。種々の例外ルーチンに
より用いられるアドレス・ポインタ。 4.命令自体に配置された即時アドレス。(即時アドレ
スへジャンプ) 5.IPレジスタへ加算される命令内の符号付きオフセ
ットにより発生されたオフセット・アドレス 6.インデクス・レジスタに配置されたアドレス。(I
DXからIPへ移動)
制御ビットを含み、これは物理アドレス空間の下位24
ビットと連結して用いられる。プロセッサのキャッシ
ュ、DRAMインタフェース、及びホスト・インタフェ
ースは全て、種々の特別な機能のためにこれらのビット
を解釈する。通常のメモリ・アドレス空間は、全て
「0」の修飾子をもつ。これらのビットは、即時ロード
命令(24ビット)によりインデクス・レジスタにロー
ドされたときデフォールトで「0」になる。便宜上、各
インデクス・レジスタの制御レジスタは上位8ビットを
含み、これは全てのインデクス・レジスタ・メモリ・オ
ペレーションにより用いられる。これにより、ユーザは
インデクス・レジスタを特別な挙動のためにセットアッ
プすることができる。
メモリ空間のオペレーションであることを示す。ホスト
・インタフェースは、ホスト・プロセッサ側のマスタ・
サイクルを発生することによりこのアドレスへ応答す
る。残りの上位7ビットは、必要なホスト・メモリ空間
の実際のアドレス・ビットとして用いられる。
ム型であることを示すために用いられる。マスタID
は、メモリ・トランザクションを受け入れるプロセッサ
又はキャッシュである送信先を指定するために用いられ
る。
ることを示すために用いられる。各プロセッサのローカ
ル・データ・キャッシュは、メモリ/データ・オペレー
ションをキャッシュしようとする。同報通信は、多数の
キャッシュ・ユニットが同じデータを捕捉すると共に後
のアクセスのためにそれをキャッシュすることを可能と
する。
リ・アドレスに関してルックアヘッドを実行するべきで
あることを示すために用いられる。キャッシュ・ユニッ
トはDRAMから次のメモリ・ラインをフェッチしよう
とする。DRAMインタフェースもまた、DRAMから
そのローカル・キャッシュへ次のラインをフェッチする
ことによりN+1/N+2パイプラインをセットアップ
する。
であることを示すために用いられる。このアドレスは、
上記のローカル・ビットに従うローカルI/Oアドレス
であっても外部ホストI/Oサイクルであってもよい。
ホスト・インタフェース・ユニットは、外部I/O要求
を捕捉し、I/O空間を指定する下位24ビット用いて
ホストI/O空間に対するマスタI/Oサイクルを発生
する。
PVPの各プロセッサへ接続されたデータ・ポートによ
り応答される。プロセッサは、そのデータ・ポートへ接
続されたI/O装置を有していてもいなくてもよい。ビ
デオ入力FIFOは、PVPのデータ・ポートの1つへ
接続されたI/O装置の例である。プロセッサは、ロー
カルI/Oを介してFIFOから生のビデオ・データを
読取り、そのデータを処理する。
られたとき、キャッシュ制御装置に対して自動的に有効
ビットをクリアさせる。これによりラインが使い尽くさ
れたときそのラインを無効化する。ラインが満杯(全て
のバイトが汚染状態)であるとき、そのラインは自動的
にDRAMユニットへ書込まれてそのラインは無効化さ
れる。
uper scalar)・アーキテクチャにより構成され、ALU
オペレーション及びロード/ストアオペレーションの双
方が1つのクロック内で同時に実行可能である。全ての
オペレーションは実行するために1つのクロックを要す
る。しかしながら、ビデオ処理のための独自の設計によ
り、PVPプロセッサは、幾つかのオペレーションを1
つのサイクルで実行することができ、MPEGやライブ
・ビデオ等のデータのデジタル・ストリームを処理する
ために設計されている。命令は、短い形式と長い形式の
2つの形式を有する(ロード/記憶オペレーションと称
する)。短いオペレーション形式は、ALUオペレーシ
ョンを同時に発生させることができる。長いオペレーシ
ョン形式は全命令ワードを採り、ALUオペレーション
は実行されない。短い形式は最も一般的であり、ALU
とロード/記憶ユニットとが同時に動作することができ
る。長い形式はロード/記憶ユニットにより排他的に使
用され、次の命令ワード(1クロック)までALUを停
止させる。
用いて命令キャッシュからフェッチされる。命令ポイン
タは常に倍ワード(32ビット)エントリ(下位2ビット
=0)を指示する。各キャッシュ・ラインは4個の命令
からなり、(分岐や割込みが発生しない場合)プロセッ
サにより4クロックで使い尽くされる。プロセッサ複合
体を停止(命令に関して待つこと)させないために、命
令キャッシュ制御装置は巧妙なプリフェッチ及び分岐目
標アルゴリズムを組込んでいる。
単純なデコーダ及びデマルチプレクサを利用してALU
オペレーション及びロード/記憶ユニット・オペレーシ
ョンを制御する。各クロック・エッジにおいて、ALU
及びロード/記憶ユニットの結果が適宜のレジスタへラ
ッチされ、新たな命令がデコード・バッファへラッチさ
れると共に命令ポインタが自動的に増分される。デコー
ド・バッファが、常に現在の命令を保持している一方、
命令ポインタは既に(クロック・エッジにおいて)増分
されて次の命令を指示している。これにより、現在の命
令がジャンプ命令であって命令ポインタを変更するとし
ても次の命令がデコード・バッファへラッチされる。す
なわち、ジャンプ命令後の次の命令は常に実行される。
しかしながら、命令キャッシュは早めに次の命令アドレ
スを取得するので要求されたデータを与える時間があ
る。命令キャッシュで用いられるプリフェッチ・アルゴ
リズムにより、大きな命令ルックアヘッドは必要ない。
U40aは、常にロック・ステップ形態で実行する。こ
のことは、命令再配列の負担をプログラマへ負わせる
が、チップの複雑さを格段に低減させる。
エンジンの実行可能なコードを記憶するために用いられ
る。プログラム記憶が、固定アドレスのデータRAMで
はなくキャッシュとして構成されることにより、コード
に人工的制限が全くなくなる。もちろんキャッシュの大
きさは一定(1キロバイト)であるが、キャッシュは、
最新実行(the most recently ececuted)コードを保持す
るべく動的に適応する。命令キャッシュは単一ポートを
要するのみであり、従って、キャッシュ・ラインを無効
化するためにバスを監視(snoop)する必要がない(けれ
ども、要求しているマスタへラインを与えることはでき
る)。従って、ホスト・プロセッサは、実行可能なコー
ドを変更するときには必ずキャッシュを無効化すること
を担う。その後キャッシュは、DRAMからそのキャッ
シュ・ラインを再ロードしなければならない。
た2ウェイ・セット・アソシアティブ・キャッシュとし
て構成される。各命令キャッシュ・ラインは16個のデ
ータ・バイトを保持し、これらのバイトはアドレス・タ
グと共にそのラインを構成する。16メガバイトの物理
的キャッシュ性能を備えたこの1キロバイトの2ウェイ
・セット・アソシアティブの構成においては、タグが1
5アドレス・ビットであることが必要である。有効ビッ
トは、ラインが有効であるか否かを示すために用いられ
る。ホストは、制御バスを用いて制御ビットに書込むこ
とにより個々の命令キャッシュをフラッシュすることが
できる。これには、全ての有効ビットを同時にクリアす
る効果がある。別の例として、メモリの所与の領域、例
えば物理メモリの上位1キロバイトを実行不能空間とし
て保有しておくこともできる。従って有効ビットを用い
る替わりに、全てのラインが常に有効と見なされること
になる。キャッシュをフラッシュすることは、全てのタ
グ・ビットを「1」にセットする(保有されたアドレス
空間を指定する)ことである。
U)ビットは、各セットについてミスが発生したときい
ずれのラインを捨てるかを示すフラグとして用いられ
る。LRUビットの最も単純なアルゴリズムは、次の通
りである。 ・現在アクセスされたラインが「A」ラインであれば、
LRU=0にセット ・現在アクセスされたラインが「B」ラインであれば、
LRU=1にセット ・ミスが発生しかつLRU=1のとき、ライン「A」を
置換 ・ミスが発生しかつLRU=0のとき、ライン「B」を
置換
僅かに異なるように解釈するものがある。このアルゴリ
ズムの場合、キャッシュが分岐目標を長く保持してしま
うという影響がある。このアルゴリズムは次の通りであ
る。 ・ミスが発生しかつLRU=1のとき、ライン「A」を
置換及びLRU=1にセット ・ミスが発生しかつLRU=0のとき、ライン「B」を
置換及びLRU=0にセット
ーケンシャルな特性をもつために常にルックアヘッド・
モードにある。言い替えるならば、命令ラインがキャッ
シュからフェッチされるときは、必ず次の順のアドレス
が使用可能(そのタグが要求されたタグと一致する)か
否かを調べるために比較される。使用可能でなければ、
ルックアヘッド・ミスが発生し、コード・フェッチが開
始される。先取りキャッシュを行うために、キャッシュ
のアドレス・デコーダは、常に現在のセットと共に次の
セットを選択する。これは、アドレス・デコーダの各出
力に対する単純なOR(論理和)ゲートにより実現するこ
とができる。現在のアドレス・ヒット及び先読みヒット
の検査のために双方のセットが同時にフェッチされる。
対応するインデクス制御レジスタ(ICR)に含まれる変
換フィールドにより制御される。ICRは、N個の変換
方法のうち1つを指定する。異なる変換方法は、異なる
データ・サイズを有しかつそれぞれのアクセスするレジ
スタにおける所与の制限を示唆する。全ての変換は双方
向性であり、ロード・オペレーション又は記憶オペレー
ションにおいて用いることができる。次に示す変換がサ
ポートされている。
ドは、データを変更することなくそのユニットを介して
渡す。オペレーションの幅は、ロード/記憶ユニットの
オペレーションコードにより示唆される。
値をとり、そしてこれを5ビットのRGB値に切り離し
て各5ビット値をベクトル・レジスタのエレメントに記
憶する。RGB16のMSBは、ベクトル・レジスタの
最上位エレメントに記憶される。
2ビットのYUB4:2:2データをとり、この4:2:2データ
から2個のベクトル対を作成する。各ベクトルは、Cr
値及びCb値と共に強度値を含む「画素」を表す。最上
位エレメントは、変換に影響されない。この変換は常に
32にビット・データ及び倍レジスタ対に対して作用す
る。Cr/Cb値は、ロード時に複写され、第2のCr
/Cb値は、記憶オペレーションの際に無視される。
モードは、RGB24にプラスαを加えた形式の32ビ
ット値をとり、対応するバイトをベクトル・レジスタの
エレメントへロードする。第4のバイトは、αすなわち
他の情報として用いられる。バイトは符号拡張されな
い。
常ベクトル・ロードにおいてバイトを交換する。この変
換は64ビットのロード値に対して実行され、さらにロ
ード/記憶のオペレーションコードが必要に応じてデー
タを単エレメント又は倍エレメントに縮小することがで
きる。
イトの代わりに16ビット・ワードが交換されるだけで
あり、バイト・スワップと同じである。この変換は64
ビットのロード値に対して実行され、さらにロード/記
憶のオペレーションコードが必要に応じてデータを倍エ
レメントに縮小することができる。エレメント0がエレ
メント3になる等である。
ードされた16ビット値のMSBとLSBとを交換す
る。この変換は64ビットのロード値に対して実行さ
れ、さらにロード/記憶のオペレーションコードが必要
に応じてデータを単エレメント又は倍エレメントに縮小
することができる。
ワード(16ビット)を倍ワード(32ビット)でベク
トル・レジスタ又はレジスタ対へロードする。ワードは
符号拡張されない。
なる形態でパックされたバイトからなる。ベクトル・レ
ジスタのエレメントに対して1つ置きの符号拡張された
バイトでロードされ、他のベクトル・レジスタに対して
他のバイトが同じ形態でロードされる。このモードは、
色度データ等のパックされたデータ値に関して有用であ
る。
ユニットの重要な特徴である。主要な汎用的ベクトル・
レジスタ(VR0〜VR7)のいずれも、オペレーション
の送信元及び送信先の双方の単一エレメントとしてアク
セスされ得る。送信先についてのオペレーションは、単
純なエレメント・イネーブル制御にすぎず、そのベクト
ルの選択されたエレメントを変更させるのみである。他
の全てのエレメントは変更されないままである。送信元
についてのオペレーションは、ベクトルの指定されたサ
ブエレメントが、そのベクトルの残りのエレメントに対
して複製される。このことは、ベクトルALUユニット
へ入力されるベクトルが全て同じ値となる効果を生じ
る。
タ属性に基づいて3個のレジスタ・バンクの論理グルー
プへ分割される。レジスタの3個のグループは、汎用的
ベクトル・レジスタ、積累算(Multiply-Accumulate:M
AC)ベクトル・レジスタ、及びインデクス/システム
・レジスタである。全てのレジスタは、6ビットの絶対
レジスタ番号によりアクセス可能である。レジスタ番号
0〜7はベクトル・レジスタのために、レジスタ番号8
〜15はMACレジスタのために、レジスタ番号16〜
31はインデクス/システム・レジスタのために、そし
てレジスタ番号32〜63はシステム/制御レジスタの
ために確保される。
符号45)は、8個の個別にアドレス指定可能なベクト
ル・レジスタから構成され、各々が4個のエレメントを
含む。各エレメントは、個々にアドレス指定可能な16
ビット・レジスタからなる。ベクトル・レジスタにアク
セスするとき、ベクトル・レジスタを単一の16ビット
・エレメントとして、又は4個のエレメント・ベクトル
(16ビット・エレメントをもつ)として、又は2個の
エレメント・ベクトル(32ビット・エレメントをも
つ)として見ることが可能である。更に、所与のロード
/記憶オペレーションにおいては一対のベクトル・レジ
スタにアクセス可能である。
レジスタ番号により表され、アドレス0〜7(000〜
111)により構成される。ベクトルのサブエレメント
へアクセスするためには、2ビットのサブエレメント番
号(00〜11)が用いられる。32ビットのオペレー
ションについては、サブエレメント番号が0又は2(0
0又は10)に限定される。レジスタ番号を次に示す。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 6ビット・レジスタ番号 レジスタ名 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 000000 VR0(レジスタ対オペレーションにも使用) 000001 VR1 000010 VR2(レジスタ対オペレーションにも使用) 000011 VR3 000100 VR4(レジスタ対オペレーションにも使用) 000101 VR5 000110 VR6(レジスタ対オペレーションにも使用) 000111 VR7 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ニット及びサブエレメント・ユニットの2つの特徴を有
する。複製ユニットは、ベクトル・レジスタの特定の単
一エレメントをそのベクトルの残りのエレメントに対し
て複製することを担う。これは、データ・バスに対して
全てのエレメントが同じ値を含むベクトルを与える。複
製ユニットは、任意のベクトルの任意のエレメントを複
製することができ、16ビット・エレメントも32ビッ
ト・エレメントもサポートする。
してベクトルの特定のエレメントにデータを記憶するこ
とのみを許可する。他のエレメントは影響を受けない。
選択されたサブエレメントは、ALU又はロード/記憶
オペレーションにより変更された内容を有する。サブエ
レメント・ユニットは、16ビット・エレメントも32
ビット・エレメントもサポートする。
つ条件コード・レジスタ(CCR)を有する。4エレメ
ントの条件コード・レジスタは、演算命令、論理命令、
及び条件命令に関してALUにより用いられる。CCR
の各エレメントは、そのエレメントに対応するALUに
よりセットされたり用いられたりする。32ビット・オ
ペレーションにおいては、CCR(0)及びCCR
(2)が用いられる。CCRは、通常の桁上げ、0、
負、及び桁あふれの4個のフラグを含む。さらに、CC
Rは、MACの対応するエレメントからの桁上げフラグ
及びユーザによりセット又はクリア可能な3個のユーザ
・フラグを含む。
づくALU及びこれに対応する「条件」命令である。ほ
とんど全てのALUオペレーションは条件モードを有
し、このモードでは、ALUオペレーションの結果が各
エレメントに対応する条件コードに基づいて送信先ベク
トルへ書戻されるのみである。PVPの条件オペレーシ
ョンによって、PVPは非常に効率的にベクトルを処理
することができる。
スタ(BAL及びBALI)は、全てのジャンプ命令及
び外部割込みからのリターン・アドレスを保持するため
に用いられる。全てのジャンプ(条件及び非条件)は、
IPをBALレジスタへ保存させる。このレジスタが、
IPアドレスをメモリに保存する際の目標場所となるこ
とにより、多重のサブルーチン・レベルを設けることが
できる。PVPのこの特徴により、必要に応じていずれ
のジャンプ命令もサブルーチン・コールとなることがで
きる。割込みは現在のIPをBALIレジスタへ保存さ
せ、そしてその割込みハンドラがBALIからのリター
ン・アドレスを保存しかつPCRの割込みをイネーブル
とするまで、自動的に割込みをディスエーブルとする。
においては、多様な非同期割込みソースがサポートされ
ている。これによりプロセッサは、サービスを提供しな
ければならない割込み駆動される入出力(I/O)装置と
は無関係にそのメインライン・コードを実行することが
できる。これらの装置の1つがアテンションを要求する
とき、その装置は割込み要求信号をアクティブとする。
この割込み要求信号に応答してプロセッサは、メインラ
イン・コードについての所与の重要な情報(通常、プロ
グラム・カウンタ及びフラグ)を保存した後、割込みサ
ービス・ルーチンへとベクトル処理しなければならな
い。サービス・ルーチンのアドレスをメモリのテーブル
からフェッチしなければならないことはしばしばある。
通常、マイクロプロセッサは、命令やデータをキャッシ
ュする。割込みベクトル又は割込みサービス・ルーチン
の最初の数個のオペレーション・コードがキャッシュ内
に存在する可能性は極めて低い。通常、割込みが発生す
るとき、キャッシュはメインライン・コードとデータ構
造により満たされている。
・ルーチンの実行を開始する時点までの遅延は、割込み
遅延として知られている。このオーバヘッドの大部分
は、キャッシュ・ミスや書戻しによるプロセッサの停止
に起因する。このような状況としては例えば以下のよう
なものである。プロセッサ・カウンタ又はフラグの「プ
ッシュ(push)」が汚染データをRAMへ書戻させること
により、要求されたキャッシュ・ラインが空くまでプッ
シュを停止させる。割込みベクトルがRAMに記憶さ
れ、キャッシュには記憶されないことからキャッシュ・
ミスを生じる。サービス・ルーチンの最初のオペレーシ
ョン・コードが命令キャッシュ内に存在しないことから
キャッシュ・ミスを生じる。
し、このような待ち時間が除かれないことによる好まし
くない影響を解消する。
レジスタの使用の後に続く。プログラム・カウンタのプ
ッシュに対して、キャッシュ・サブシステムは、このレ
ジスタと協同して常に次に使用可能なキャッシュ場所を
空けるように動作する。すなわち、スタック・ポインタ
として使用されるインデクス・レジスタが各アクセスに
対して書込みルックアヘッドを実行することにより、キ
ャッシュ・サブシステムが次に続くラインを検査し、も
しそのラインが汚染されていれば書戻しを発生する。ス
タックが減少する代わりに増大すると、スタックがその
ラインの場所を用いることが必要なときそのラインが使
用可能である可能性が高くなり、スタック上へのデータ
のプッシュが書戻しのために停止することはまれにな
る。
駆動されるI/O装置についての待ち時間は、サービス
・ルーチンへベクトル処理する効率に比べてわずかであ
ることが多い。この理由は、PVPが割込みベクトル要
求レジスタを組込んでおり、このレジスタが割込み発生
の際に適切なベクトル・アドレスを受信しかつ保持する
からである。メインライン・プログラム・コードを実行
し続けることができる一方で、キャッシュ・サブシステ
ムが割込みベクトルについてのヒット状態又はミス状態
を判断してミスの場合にはそのコードをフェッチする。
割込みサービス・ルーチン・コードがキャッシュ内に存
在した後でのみベクトルが発生し、それに対してメイン
ライン・プログラム・カウンタがBALIに記憶されI
VRRがプログラム・カウンタへロードされる。これに
より割込みが保留中であっても有用な作業を実行するこ
とができる。
必要性の有無に関してスタックのトップを継続的に検査
する。これによりプッシュの際に停止する可能性を格段
に低減することができる。コードの実行が続けられる一
方で、割込みサービス・ルーチンのオペレーション・コ
ードがキャッシュへロードされることにより、キャッシ
ュ・ミスによる停止に起因する非効率さを排除すること
ができる。命令キャッシュが、コード・フェッチ、割込
み要求、及びライン・バス・スヌープの間で時間分割さ
れることにより、極めて低コストの単一ポート・キャッ
シュが実現される。ソフトウェアがTOUCH BALI命令を実
行することにより、割込みサービス・ルーチンを出る際
のキャッシュ・ミスによる停止の可能性を低減すること
ができる。同様に、通常のサブルーチンから戻る場合
も、TOUCH BAL命令を実行することによりパイプライン
化することができる。
高性能である。各インデクス・レジスタは対応するイン
デクス制御レジスタ(ICR0〜ICR7)を有し、こ
れは、インデクス・レジスタが実行可能な種々の機能を
制御するために用いられる。図10は、ICRレジスタ
の制御ビットを示す図である。
ニットを介したメモリに対するアクセス毎のワード・サ
イズにより自動的に増分又は減分される。ICR内のイ
ネーブル/ディスエーブル・ビットは、この機能を制御
するために用いられる。この増分/減分ビットは、イン
デクス・ポインタの方向を制御するために用いられる。
後置/前置ビットは、自動増分/減分が発生する時点
(オペレーションの前か後か)を制御するために用いら
れる。スタック制御ビットは、インデクス・レジスタが
スタックのように動作するべくセットアップする。読取
りオペレーションのときは、インデクス・レジスタが予
め増分された後、メモリから値が読取られる。書込みオ
ペレーションのときは、データがメモリに書込まれたか
ら、インデクス・レジスタが後で減分される。インデク
ス・カウント・イネーブル/ディスエーブル・ビット
は、関連するカウント・レジスタが同様に減分されるか
否かを制御するために用いられる。カウント・レジスタ
は、常に1だけ減分されることを注記する。
ンデクス・レジスタを循環バッファとしてセットアップ
するために用いられる。値「0」は、この機能をディス
エーブルさせる。他の7個の状態は、循環バッファのサ
イズ(n)を2の(n+2)乗として表す。サイズは、4
バイトから520バイトまでの範囲となる。これらのビ
ットは、インデクス・レジスタが増分又は減分されると
き、マスクとして用いられる。バッファは、その大きさ
により整列されなければならない。
デクス・レジスタの変換機能を指定するために用いられ
る。値「0」は、この機能をディスエーブルさせる。他
の状態は、ロード/記憶ユニットにより用いられる変換
方法を指定する。
サポートされる特別なアドレス・モードを制御するため
に用いられる。
メモリから様々なデータ幅をロードできるスカラ/ベク
トル・ロード/記憶ユニットで構成される。メモリに対
して入出する最小の幅は、16ビットすなわち2バイト
である。データ幅は、16ビット、32ビット、64ビ
ット、又は128ビットの幅である。これにより、ロー
ド/記憶ユニットは、個々のエレメントと同様に完全な
ベクトル及び倍ベクトルもメモリへ記憶することができ
る。データは、任意のバイト境界で区切ることができ
る。バイト整列ユニットは、整列発生を処理する。
変換ユニットを有し、これにより全てのメモリ・アクセ
スが実行される。変換ユニットは、インデクス制御レジ
スタにより制御される。デフォールド・モードにおいて
は、変換ユニットはデータを通過させるだけである。他
のモードにおいて変換ユニットは、RGB16又はYU
V4:2:2等の異なるデータ形式から又は異なるデータ形
式へ変換することができる。バイト整列ユニットも含ま
れており、全ての幅についてのロード/記憶オペレーシ
ョンを任意のバイト境界において発生することができ
る。従って、64ビット及び128ビットのロード/記
憶オペレーションが、通常のアドレス境界上で発生する
必要はない。
び長形式と称される2つの形式へ分割される。短形式の
ロード/記憶オペレーションはALUオペレーションと
同時に発生し、そして長形式のロード/記憶オペレーシ
ョンはそれ自身で実行されALUオペレーションを1ク
ロックだけ停止させる。
は、8個のインデクス・レジスタの1つを介して間接的
にメモリを参照する。メモリからの全ての短形式ロード
/記憶オペレーションの送信元/送信先は、主ベクトル
・レジスタ・ファイル又はMACレジスタ・ファイルで
ある。インデクス値は、長形式でのみメモリから直接的
にロードすることができる。インデクスは、即値を介し
て又はベクトル・レジスタの1つからの移動を介してロ
ードされなければならない。
は、出力ビデオ装置上の画像を「描く」ことを担う。こ
の装置は多くの場合CRTである。このことは、出力ス
トリームの形式が、RGB又はYUVエンコード・デー
タのデータ・ストリームを伴う垂直同期信号及び水平同
期信号であることを意味する。
スタでありさえすればよい。ラスタライザは、出力スト
リームを生成するためにDRAMの適宜の部分を読取る
ことになる。このことからラスタライザは、マイクロコ
ード・エンジンの1つと類似のデータ・キャッシュ46
を備える。このキャッシュのサイズは非常に小さくても
よい。なぜならこのキャッシュの目的は、キャッシュ・
コヒーレンシィ・プロトコルを維持しかつ効率的なライ
ン転送モードを用いてデータを読取ることだけだからで
ある。転送を管理する「エンジン」48はハードコード
・エンジンであって、YUVやRGBの出力バッファの
ための様々なリフレッシュ周波数用のデータを読取り変
換することができる。このエンジンは、ストリーム・デ
ータがデジタル・アナログ変換器(DAC)へ渡されチッ
プから出力される前に、ストリーム・データをFIFO
に書込む。FIFOは、特別な出力処理が必要な場合に
は、汎用エンジン(図3の30d)によっても充填され
る。ビデオ・データは、出力・ドット・クロックに同期
してFIFOから引き出される。FIFOは、ライン・
バスの競合のために出力エンジンによりかなり散発的に
充填される。ラスタライザは、FIFOが空になりそう
な場合には、バスをロックしてそのFIFOを充填する
ことができる。通常、FIFOはほとんど満杯状態で動
作するべきであり、それによって通常のバス要求をラス
タ出力に用いることができる。
P上にマッピングする方法を示す図である。4個のエン
ジンの各々が、解凍部分に割振られる。エンジン1は、
シリアル入力のFIFOに物理的に接続される。従って
論理的に、エンジン1は、可変長でコーディングを実行
し、他の3個のマスタ制御装置として働く。エンジン1
は64個のエレメント・アレイを組込み、データはこれ
らを通って逆走査プロセスへと渡される。このデータの
通過は、共有メモリ・バッファを介して実行される。し
かしながらキャッシュ・アーキテクチャがあるために、
データは実際にはDRAMへ書込まれない場合があるこ
とを注記する。データは、汚染状態で留まり必要に応じ
てキャッシュからキャッシュへ移動する。2つのエンジ
ン(符号2及び3)は、8×8行列の逆走査、逆量子
化、及び逆離散余弦変換のために専用化されている。こ
れらの2つのエンジンは、毎秒10万個以上の非ゼロ8
×8行列を処理することができなければならない。最後
のエンジンは、動き(motion)補償を実行する。最後のエ
ンジンは逆離散余弦変換の出力を受信し、それを参照ブ
ロックへ追加して現在ブロックを形成する。ビデオ出力
サブシステムは、前のフレームのYCrCbバッファを
表示する一方で現在のフレームが形成されるように構成
されなければならない。
の事項を開示する。
と、前記基板上に形成され、かつ各々が命令キャッシ
ュ、データ・キャッシュ、バス・インタフェース・ユニ
ット、及び演算論理ユニットとを含む複数の同一のプロ
セッサと、前記基板上に形成され、かつ前記複数のプロ
セッサの少なくとも1つに操作により関連付けられ、入
出力割込みの発生に対するシステム応答を示すデータを
受信しかつ保持すると共に前記集積回路デバイスの処理
効率を向上させるべく該少なくとも1つの関連するプロ
セッサと協同的に動作する割り込みレジスタと、前記基
板上に形成され、かつ前記複数のプロセッサ間でデータ
・ビット・ストリームを転送するべく該複数のプロセッ
サを相互接続するライン・バスと、前記基板上に形成さ
れ、かつ入力信号ストリームを受信するべく前記ライン
・バスへ接続されるビデオ入力インタフェース・ユニッ
トと、前記基板上に形成され、かつ前記複数のプロセッ
サによる処理で決定された出力ビデオ信号ストリームを
前記集積回路デバイスから配信するべく前記ライン・バ
スへ接続されるビデオ出力インタフェース・ユニット
と、前記基板上に形成され、かつ前記複数のプロセッサ
の機能を制御するために有効な制御信号をホスト・プロ
セッサと交換するべく前記ライン・バスへ接続されるホ
スト・インタフェース・ユニットと、前記基板上に形成
され、かつ前記ライン・バス上を転送されるデータ・ビ
ット・ストリームとは別に前記ホスト・インタフェース
・ユニットと前記複数のプロセッサとが制御信号を交換
するべく該ホスト・インタフェース・ユニットと該複数
のプロセッサとを相互接続する制御バスと、前記基板上
に形成され、かつ前記複数のプロセッサにより処理され
た及び処理されるべきデータ・ビット・ストリームをメ
モリ素子と交換するべく前記ライン・バスへ接続される
メモリ・インタフェース・ユニットとを有する集積回路
デバイス。 (2)前記複数のプロセッサの各々がメインライン・プ
ログラム・コードの実行の進行を記録するメインライン
・プログラム・カウンタを具備しており、前記割込みレ
ジスタが、割込みの発生に対して該メインライン・プロ
グラム・カウンタをプッシュする分岐/リンク・レジス
タである上記(1)に記載の集積回路デバイス。 (3)前記複数のプロセッサの各々がメインライン・プ
ログラム・コードの実行の進行を記録するメインライン
・プログラム・カウンタを具備しており、前記割込みレ
ジスタが、割込みの発生に対して割込みルーチンのベク
トル・アドレスを受信しかつ保持する割込みベクトル要
求レジスタである上記(1)に記載の集積回路デバイ
ス。 (4)前記集積回路デバイスが前記分岐/リンク・レジ
スタに加えて第2の割込みレジスタを有し、該第2の割
込みレジスタが、割込みの発生に対して割込みルーチン
のベクトル・アドレスを受信しかつ保持する割込みベク
トル要求レジスタである上記(2)に記載の集積回路デ
バイス。 (5)デジタル・データを処理しかつビデオ表示信号を
発生するシステムであって、中央演算処理ユニットと、
デジタル・データを受信し記憶しかつ配信するシステム
・ランダム・アクセス・メモリと、デジタル・データ信
号を転送するべく前記中央演算処理ユニットと前記シス
テム・ランダム・アクセス・メモリとを相互接続するバ
スと、前記バスへ操作により接続されることにより前記
中央演算処理ユニット及び前記システム・ランダム・ア
クセス・メモリへ接続され、該中央演算処理ユニットの
制御の下に前記ビデオ表示信号を処理するビデオ・プロ
セッサ集積回路デバイスとを有し、該ビデオ・プロセッ
サ集積回路デバイスが、基板と、前記基板上に形成さ
れ、かつ各々が命令キャッシュ、データ・キャッシュ、
バス・インタフェース・ユニット、及び演算論理ユニッ
トとを含む複数の同一のプロセッサと、前記基板上に形
成され、かつ前記複数のプロセッサの少なくとも1つに
操作により関連付けられ、入出力割込みの発生に対する
システム応答を示すデータを受信しかつ保持すると共に
前記集積回路デバイスの処理効率を向上させるべく該少
なくとも1つの関連するプロセッサと協同的に動作する
割り込みレジスタと、前記基板上に形成され、かつ前記
複数のプロセッサ間でデータ・ビット・ストリームを転
送するべく該複数のプロセッサを相互接続するライン・
バスと、前記基板上に形成され、かつ入力信号ストリー
ムを受信するべく前記ライン・バスへ接続されるビデオ
入力インタフェース・ユニットと、前記基板上に形成さ
れ、かつ前記複数のプロセッサによる処理で決定された
出力ビデオ信号ストリームを前記集積回路デバイスから
配信するべく前記ライン・バスへ接続されるビデオ出力
インタフェース・ユニットと、前記基板上に形成され、
かつ前記複数のプロセッサの機能を制御するために有効
な制御信号をホスト・プロセッサと交換するべく前記ラ
イン・バスへ接続されるホスト・インタフェース・ユニ
ットと、前記基板上に形成され、かつ前記ライン・バス
上を転送されるデータ・ビット・ストリームとは別に前
記ホスト・インタフェース・ユニットと前記複数のプロ
セッサとが制御信号を交換するべく該ホスト・インタフ
ェース・ユニットと該複数のプロセッサとを相互接続す
る制御バスと、前記基板上に形成され、かつ前記複数の
プロセッサにより処理された及び処理されるべきデータ
・ビット・ストリームをメモリ素子と交換するべく前記
ライン・バスへ接続されるメモリ・インタフェース・ユ
ニットとを有するシステム。 (6)前記複数のプロセッサの各々がメインライン・プ
ログラム・コードの実行の進行を記録するメインライン
・プログラム・カウンタを具備しており、前記割込みレ
ジスタが、割込みの発生に対して該メインライン・プロ
グラム・カウンタをプッシュする分岐/リンク・レジス
タである上記(5)に記載の集積回路デバイス。 (7)前記複数のプロセッサの各々がメインライン・プ
ログラム・コードの実行の進行を記録するメインライン
・プログラム・カウンタを具備しており、前記割込みレ
ジスタが、割込みの発生に対して割込みルーチンのベク
トル・アドレスを受信しかつ保持する割込みベクトル要
求レジスタである上記(5)に記載の集積回路デバイ
ス。 (8)前記集積回路デバイスが前記分岐/リンク・レジ
スタに加えて第2の割込みレジスタを有し、該第2の割
込みレジスタが、割込みの発生に対して割込みルーチン
のベクトル・アドレスを受信しかつ保持する割込みベク
トル要求レジスタである上記(5)に記載の集積回路デ
バイス。
ステムを示す図である。
ステムを示す図である。
与のオペレーションの信号タイミング図である。
与のオペレーションの信号タイミング図である。
与のオペレーションの信号タイミング図である。
デオ・プロセッサの所与の構成要素の概略図である。
ョンにおける命令フローの概略図である。
ョンにおける命令フローの概略図である。
・フローのビット割当てを示す概略図である。
ビデオ・プロセッサ内のデータ・フローの概略図であ
る。
ョンの1つに対する図3のビデオ・プロセッサの適応を
示す概略図である。
Claims (8)
- 【請求項1】集積回路デバイスであって、 基板と、 前記基板上に形成され、かつ各々が命令キャッシュ、デ
ータ・キャッシュ、バス・インタフェース・ユニット、
及び演算論理ユニットとを含む複数の同一のプロセッサ
と、 前記基板上に形成され、かつ前記複数のプロセッサの少
なくとも1つに操作により関連付けられ、入出力割込み
の発生に対するシステム応答を示すデータを受信しかつ
保持すると共に前記集積回路デバイスの処理効率を向上
させるべく該少なくとも1つの関連するプロセッサと協
同的に動作する割り込みレジスタと、 前記基板上に形成され、かつ前記複数のプロセッサ間で
データ・ビット・ストリームを転送するべく該複数のプ
ロセッサを相互接続するライン・バスと、 前記基板上に形成され、かつ入力信号ストリームを受信
するべく前記ライン・バスへ接続されるビデオ入力イン
タフェース・ユニットと、 前記基板上に形成され、かつ前記複数のプロセッサによ
る処理で決定された出力ビデオ信号ストリームを前記集
積回路デバイスから配信するべく前記ライン・バスへ接
続されるビデオ出力インタフェース・ユニットと、 前記基板上に形成され、かつ前記複数のプロセッサの機
能を制御するために有効な制御信号をホスト・プロセッ
サと交換するべく前記ライン・バスへ接続されるホスト
・インタフェース・ユニットと、 前記基板上に形成され、かつ前記ライン・バス上を転送
されるデータ・ビット・ストリームとは別に前記ホスト
・インタフェース・ユニットと前記複数のプロセッサと
が制御信号を交換するべく該ホスト・インタフェース・
ユニットと該複数のプロセッサとを相互接続する制御バ
スと、 前記基板上に形成され、かつ前記複数のプロセッサによ
り処理された及び処理されるべきデータ・ビット・スト
リームをメモリ素子と交換するべく前記ライン・バスへ
接続されるメモリ・インタフェース・ユニットとを有す
る集積回路デバイス。 - 【請求項2】前記複数のプロセッサの各々がメインライ
ン・プログラム・コードの実行の進行を記録するメイン
ライン・プログラム・カウンタを具備しており、前記割
込みレジスタが、割込みの発生に対して該メインライン
・プログラム・カウンタをプッシュする分岐/リンク・
レジスタである請求項1に記載の集積回路デバイス。 - 【請求項3】前記複数のプロセッサの各々がメインライ
ン・プログラム・コードの実行の進行を記録するメイン
ライン・プログラム・カウンタを具備しており、前記割
込みレジスタが、割込みの発生に対して割込みルーチン
のベクトル・アドレスを受信しかつ保持する割込みベク
トル要求レジスタである請求項1に記載の集積回路デバ
イス。 - 【請求項4】前記集積回路デバイスが前記分岐/リンク
・レジスタに加えて第2の割込みレジスタを有し、該第
2の割込みレジスタが、割込みの発生に対して割込みル
ーチンのベクトル・アドレスを受信しかつ保持する割込
みベクトル要求レジスタである請求項2に記載の集積回
路デバイス。 - 【請求項5】デジタル・データを処理しかつビデオ表示
信号を発生するシステムであって、 中央演算処理ユニットと、 デジタル・データを受信し記憶しかつ配信するシステム
・ランダム・アクセス・メモリと、 デジタル・データ信号を転送するべく前記中央演算処理
ユニットと前記システム・ランダム・アクセス・メモリ
とを相互接続するバスと、 前記バスへ操作により接続されることにより前記中央演
算処理ユニット及び前記システム・ランダム・アクセス
・メモリへ接続され、該中央演算処理ユニットの制御の
下に前記ビデオ表示信号を処理するビデオ・プロセッサ
集積回路デバイスとを有し、該ビデオ・プロセッサ集積
回路デバイスが、 基板と、 前記基板上に形成され、かつ各々が命令キャッシュ、デ
ータ・キャッシュ、バス・インタフェース・ユニット、
及び演算論理ユニットとを含む複数の同一のプロセッサ
と、 前記基板上に形成され、かつ前記複数のプロセッサの少
なくとも1つに操作により関連付けられ、入出力割込み
の発生に対するシステム応答を示すデータを受信しかつ
保持すると共に前記集積回路デバイスの処理効率を向上
させるべく該少なくとも1つの関連するプロセッサと協
同的に動作する割り込みレジスタと、 前記基板上に形成され、かつ前記複数のプロセッサ間で
データ・ビット・ストリームを転送するべく該複数のプ
ロセッサを相互接続するライン・バスと、 前記基板上に形成され、かつ入力信号ストリームを受信
するべく前記ライン・バスへ接続されるビデオ入力イン
タフェース・ユニットと、 前記基板上に形成され、かつ前記複数のプロセッサによ
る処理で決定された出力ビデオ信号ストリームを前記集
積回路デバイスから配信するべく前記ライン・バスへ接
続されるビデオ出力インタフェース・ユニットと、 前記基板上に形成され、かつ前記複数のプロセッサの機
能を制御するために有効な制御信号をホスト・プロセッ
サと交換するべく前記ライン・バスへ接続されるホスト
・インタフェース・ユニットと、 前記基板上に形成され、かつ前記ライン・バス上を転送
されるデータ・ビット・ストリームとは別に前記ホスト
・インタフェース・ユニットと前記複数のプロセッサと
が制御信号を交換するべく該ホスト・インタフェース・
ユニットと該複数のプロセッサとを相互接続する制御バ
スと、 前記基板上に形成され、かつ前記複数のプロセッサによ
り処理された及び処理されるべきデータ・ビット・スト
リームをメモリ素子と交換するべく前記ライン・バスへ
接続されるメモリ・インタフェース・ユニットとを有す
るシステム。 - 【請求項6】前記複数のプロセッサの各々がメインライ
ン・プログラム・コードの実行の進行を記録するメイン
ライン・プログラム・カウンタを具備しており、前記割
込みレジスタが、割込みの発生に対して該メインライン
・プログラム・カウンタをプッシュする分岐/リンク・
レジスタである請求項5に記載の集積回路デバイス。 - 【請求項7】前記複数のプロセッサの各々がメインライ
ン・プログラム・コードの実行の進行を記録するメイン
ライン・プログラム・カウンタを具備しており、前記割
込みレジスタが、割込みの発生に対して割込みルーチン
のベクトル・アドレスを受信しかつ保持する割込みベク
トル要求レジスタである請求項5に記載の集積回路デバ
イス。 - 【請求項8】前記集積回路デバイスが前記分岐/リンク
・レジスタに加えて第2の割込みレジスタを有し、該第
2の割込みレジスタが、割込みの発生に対して割込みル
ーチンのベクトル・アドレスを受信しかつ保持する割込
みベクトル要求レジスタである請求項5に記載の集積回
路デバイス。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US475667 | 1983-03-15 | ||
US08/475,667 US5557759A (en) | 1995-06-07 | 1995-06-07 | Video processor with non-stalling interrupt service |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0954833A true JPH0954833A (ja) | 1997-02-25 |
JP3084229B2 JP3084229B2 (ja) | 2000-09-04 |
Family
ID=23888587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08125000A Expired - Fee Related JP3084229B2 (ja) | 1995-06-07 | 1996-05-20 | デジタル・データ及びビデオ信号の処理デバイス及びシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US5557759A (ja) |
EP (1) | EP0747873B1 (ja) |
JP (1) | JP3084229B2 (ja) |
KR (1) | KR100218619B1 (ja) |
DE (1) | DE69601750T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002518717A (ja) * | 1998-06-11 | 2002-06-25 | インテル・コーポレーション | コンピュータ・システムに対する入力データの提供におけるビデオ映像の使用方法 |
JP2006040054A (ja) * | 2004-07-28 | 2006-02-09 | Mitsubishi Electric Corp | 画像処理装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5948094A (en) * | 1995-09-29 | 1999-09-07 | Intel Corporation | Method and apparatus for executing multiple transactions within a single arbitration cycle |
US5801719A (en) * | 1995-11-27 | 1998-09-01 | Sun Microsystems, Inc. | Microprocessor with graphics capability for masking, aligning and expanding pixel bands |
US6378023B1 (en) | 1996-02-14 | 2002-04-23 | Advanced Micro Devices, Inc. | Interrupt descriptor cache for a microprocessor |
US6128711A (en) * | 1996-11-12 | 2000-10-03 | Compaq Computer Corporation | Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes |
JP4235987B2 (ja) * | 1996-12-19 | 2009-03-11 | マグナチップセミコンダクター有限会社 | ビデオフレームレンダリングエンジン |
GB2341068B (en) * | 1998-07-31 | 2002-11-06 | Sony Uk Ltd | Caching in digital video processing apparatus |
EP1145218B1 (en) | 1998-11-09 | 2004-05-19 | Broadcom Corporation | Display system for blending graphics and video data |
US6662297B1 (en) * | 1999-12-30 | 2003-12-09 | Intel Corporation | Allocation of processor bandwidth by inserting interrupt servicing instructions to intervene main program in instruction queue mechanism |
US7174401B2 (en) * | 2002-02-28 | 2007-02-06 | Lsi Logic Corporation | Look ahead split release for a data bus |
US7765388B2 (en) * | 2003-09-17 | 2010-07-27 | Broadcom Corporation | Interrupt verification support mechanism |
US7664173B2 (en) * | 2004-06-07 | 2010-02-16 | Nahava Inc. | Method and apparatus for cached adaptive transforms for compressing data streams, computing similarity, and recognizing patterns |
US20060026329A1 (en) * | 2004-07-30 | 2006-02-02 | Yu James K | System and method for an arbiter rewind |
CN101539771B (zh) * | 2008-03-21 | 2012-09-19 | 鸿富锦精密工业(深圳)有限公司 | 主设备对从设备的自动定址系统 |
US9971516B2 (en) | 2016-10-17 | 2018-05-15 | International Business Machines Corporation | Load stall interrupt |
US10614007B2 (en) | 2018-04-20 | 2020-04-07 | Qualcomm Incorporated | Providing interrupt service routine (ISR) prefetching in multicore processor-based systems |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4450525A (en) * | 1981-12-07 | 1984-05-22 | Ibm Corporation | Control unit for a functional processor |
DE68928980T2 (de) * | 1989-11-17 | 1999-08-19 | Texas Instruments Inc. | Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern |
US5239654A (en) * | 1989-11-17 | 1993-08-24 | Texas Instruments Incorporated | Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode |
-
1995
- 1995-06-07 US US08/475,667 patent/US5557759A/en not_active Expired - Lifetime
-
1996
- 1996-05-13 DE DE69601750T patent/DE69601750T2/de not_active Expired - Lifetime
- 1996-05-13 EP EP96303353A patent/EP0747873B1/en not_active Expired - Lifetime
- 1996-05-20 JP JP08125000A patent/JP3084229B2/ja not_active Expired - Fee Related
- 1996-05-23 KR KR1019960017793A patent/KR100218619B1/ko not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002518717A (ja) * | 1998-06-11 | 2002-06-25 | インテル・コーポレーション | コンピュータ・システムに対する入力データの提供におけるビデオ映像の使用方法 |
JP2006040054A (ja) * | 2004-07-28 | 2006-02-09 | Mitsubishi Electric Corp | 画像処理装置 |
JP4498848B2 (ja) * | 2004-07-28 | 2010-07-07 | 三菱電機株式会社 | 画像処理装置 |
Also Published As
Publication number | Publication date |
---|---|
KR100218619B1 (ko) | 1999-09-01 |
KR970002694A (ko) | 1997-01-28 |
DE69601750D1 (de) | 1999-04-22 |
JP3084229B2 (ja) | 2000-09-04 |
EP0747873B1 (en) | 1999-03-17 |
DE69601750T2 (de) | 1999-10-07 |
EP0747873A1 (en) | 1996-12-11 |
US5557759A (en) | 1996-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3026756B2 (ja) | デジタル・データ及びビデオ信号の処理デバイス及びシステム | |
US5860086A (en) | Video processor with serialization FIFO | |
US5638531A (en) | Multiprocessor integrated circuit with video refresh logic employing instruction/data caching and associated timing synchronization | |
JP3518788B2 (ja) | デジタル・データ及びビデオ信号の処理デバイス及びシステム | |
US5560030A (en) | Transfer processor with transparency | |
US5487146A (en) | Plural memory access address generation employing guide table entries forming linked list | |
US6185629B1 (en) | Data transfer controller employing differing memory interface protocols dependent upon external input at predetermined time | |
JP3084229B2 (ja) | デジタル・データ及びビデオ信号の処理デバイス及びシステム | |
US5524265A (en) | Architecture of transfer processor | |
US5860158A (en) | Cache control unit with a cache request transaction-oriented protocol | |
EP0875855B1 (en) | Graphics processing system | |
JP4426099B2 (ja) | 共有メモリを有するマルチプロセッサ装置 | |
US6434649B1 (en) | Data streamer | |
US5784076A (en) | Video processor implementing various data translations using control registers | |
US20030196040A1 (en) | Data cache system | |
JP4346612B2 (ja) | 情報処理方法および装置 | |
US20040221071A1 (en) | Integrated multimedia system | |
EP1846829B1 (en) | Method and apparatus for address translation from an external device to a memory of a processor | |
US5724599A (en) | Message passing and blast interrupt from processor | |
EP0671718B1 (en) | Data processor for guided transfer line drawing | |
JPH05210641A (ja) | 多重プロセッサコンピューターシステムのアーキテクチャ | |
US5651127A (en) | Guided transfers with variable stepping | |
US5493646A (en) | Pixel block transfer with transparency | |
JP2002541586A (ja) | 並列データ処理装置 | |
JPH10187533A (ja) | キャッシュシステム、プロセッサ及びプロセッサを動作させる方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080630 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080630 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090630 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100630 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110630 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110630 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120630 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120630 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130630 Year of fee payment: 13 |
|
LAPS | Cancellation because of no payment of annual fees |