JP3518788B2 - デジタル・データ及びビデオ信号の処理デバイス及びシステム - Google Patents

デジタル・データ及びビデオ信号の処理デバイス及びシステム

Info

Publication number
JP3518788B2
JP3518788B2 JP12504096A JP12504096A JP3518788B2 JP 3518788 B2 JP3518788 B2 JP 3518788B2 JP 12504096 A JP12504096 A JP 12504096A JP 12504096 A JP12504096 A JP 12504096A JP 3518788 B2 JP3518788 B2 JP 3518788B2
Authority
JP
Japan
Prior art keywords
data
line
cache
bus
processors
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 - Fee Related
Application number
JP12504096A
Other languages
English (en)
Other versions
JPH0950402A (ja
Inventor
ドウェイン・トーマス・クランプ
スティーブン・テイラー・パンコースト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0950402A publication Critical patent/JPH0950402A/ja
Application granted granted Critical
Publication of JP3518788B2 publication Critical patent/JP3518788B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7864Architectures of general purpose stored program computers comprising a single central processing unit with memory on more than one IC chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

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)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】通常、デジタル・データ処理
システムは、使用中にそのシステムのユーザに対する表
示を作成するために用いられるビデオ信号を発生する。
このようなシステムの例としては、パーソナル・コンピ
ュータ及び、セット・トップ・ボックス(set top box)
やビデオ・ゲーム機等々と接続されるテレビ受像器等の
汎用機器システムがある。
【0002】
【従来の技術】このようなシステムに対するデータ処理
要求が増大するにつれて、ビデオ会議、ビデオ信号スト
リームの圧縮/解凍、及び提示された画像の3次元レン
ダリング等が頻繁に行われるようになってきたため、従
来から認識されていたこのようなシステムにおけるデジ
タル・データ処理の限界に近づいてきたり又は限界を超
えたりするようになった。この結果、上記のようなアプ
リケーションにおいて成功させようとする試みは性能的
な低下を生じることとなった。すなわち、(わずか一つ
の例をとってみても)高品質の3次元レンダリングを実
行しようとすれば、その表示を発生するシステムの応答
性が遅くなってしまうことになる。
【0003】
【発明が解決しようとする課題】以上により、本発明の
第1の目的は、汎用的システムの性能を改善することで
ある。本発明の第2の目的は、単一のVLSI素子上
に、ビデオ信号ストリームを発生するべく協同的に動作
する複数のプロセッサを設けることである。
【0004】
【課題を解決するための手段】上記の第1の目的を実現
するにあたって、表示信号ストリームを処理するデータ
処理システムにおいて、ベクトル処理及び特殊なアドレ
ス指定モードによる高機能を有するビデオ・プロセッサ
を設けるために超大規模集積回路(VLSI)の設計及び
その製品が利用される。上記の第2の目的を実現するに
あたって、上記素子が複数のプロセッサを具備し、各プ
ロセッサが関連する命令及びデータ・キャッシュを有し
かつこれらのプロセッサが同じ基板上に形成されたワイ
ド・データ・バス(wide data bus)により互いに結合さ
れる。
【0005】
【発明の実施の形態】以下、本発明を添付の図面と共に
説明する。本発明の説明は好適例について示されるが、
当業者であれば以下の説明の要旨に基づき本発明の好適
な結果を尚得られるような適宜の修整が可能であろう。
従って、以下の説明は、当業者に対して開示を与えるも
のとして広く理解されるべきであり、本発明を限定する
ものではない。
【0006】以下の開示の大部分は、特定のプロセッサ
・アーキテクチャ及びその単一チップ素子における具体
例に関するものである。しかしながら、先ずそのプロセ
ッサ素子の有用性を見出せる特定のシステムについて触
れることが適切であろう。図1は、所与のパーソナル・
コンピュータ・システムに近いシステムの概略図であ
る。このシステムは、ビデオ・プロセッサ・メモリ11
へ接続されるパラレル・ビデオ・プロセッサ10(PV
P、後に詳述する)を有し、ビデオ出力信号(RGB出
力として示す)を与える。このシステムはまた主プロセ
ッサ複合体12を有し、これはx86アーキテクチャベ
ースの複合体、又はPowerPCプロセッサ・チップ及びサ
ポート・チップ等のRISC(Reduced Instruction Set
Computing)プロセッサであってもよい。システム・メ
モリ14は、主プロセッサ複合体12と関連して動作す
る。PVP10及び主プロセッサ複合体12並びに他の
周辺装置15は、PCIバス16(パーソナル・コンピ
ュータ業界で普及しつつあるバス仕様)を介して接続さ
れる。
【0007】PVP10を使用する別の状況としては、
表示装置としてのテレビ受像器と共に用いられるセット
・トップ・ボックス等、特殊な需用者が使用するべくさ
らに専用化されたシステムがある。図2はこのようなシ
ステムを示しており、図1と同様に本発明によるビデオ
・プロセッサ10及び関連するメモリ11が示されてい
る。図2のシステムにおいては、PVP10が、804
86型プロセッサ18、ハードディスク・ドライブ20
及び/又はフロッピー・ディスク・ドライブ21をサポ
ート可能な入出力ハンドラ19、並びにシステム読取専
用メモリ(ROM)22、遠隔制御装置25に応答する
入出力/CD(Compact Diskette)制御装置24、並びに
CDドライブ26と接続されている。Xバス28等の適
宜のバスによりこのシステムの各要素を結合することが
できる。
【0008】パラレル・ビデオ・プロセッサ(PVP)1
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個以上であると考える。
【0009】全てのプロセッサが共通の単一の基板上に
あるという事実により、プロセッサとメモリとの間の広
帯域幅の通信が可能となった。単一バス34は、本明細
書では「ライン・バス」と称するが、相互接続機構とし
て選択されたものである。このバスは非常に広く、すな
わち、各バス・サイクル中にキャッシュ31と32との
間又はキャッシュ31、32とメモリ・インタフェース
39との間のキャッシュ・ライン全体を転送することが
できる。全てのプロセッサ30は統合されたメモリ・ア
ドレス空間を有する。任意のプロセッサ30が、任意の
プロセッサ30が、画面メモリ上又はそれ以外の任意の
部分へアクセスしまたキャッシュすることができる。
【0010】この単一バスによるマルチプロセッサ方式
は、シリコン製造の際に多くの変形が可能である。例え
ば低性能チップでは、2つのプロセッサ、ホスト・イン
タフェース、及び32ビットDRAMのインタフェース
のみを設ける。このようなチップは、MPEG−1解凍
並びに2D及び3Dレンダリングの機能をもつ。高性能
チップでは、6個のプロセッサ、ホスト・インタフェー
ス、2重RAMBUSのインタフェース、及びYUV入
力ポートを設ける。このチップは、MPEG−2解凍、
電子会議、及び例外的3Dレンダリング機能をもつ。処
理エンジン、命令セット、及び内部バスの標準化によっ
て、特定の製品用にカスタム化可能なチップのファミリ
を製造することができる。
【0011】本発明のアーキテクチャを用いる製品のフ
ァミリも可能であるが、各アプリケーションのためのカ
スタム・チップを製造することが目的ではない。本発明
のアーキテクチャの利点は、集約的演算を要する広範な
タスクの実働化を実現するプログラム可能なプロセッサ
を提供することである。すなわち、動画を解凍する際に
離散逆余弦変換を実行するべく専用化されたプロセッサ
を、3Dオブジェクトを変換しかつレンダリングする一
方でビデオ・ゲームを実行するように再プログラミング
することができる。
【0012】PVPは、設計要求を満たす大きさとする
ことが可能なスケーラブル・マルチプロセッサ複合体を
設けることによりこれらの目的を達成する。このアーキ
テクチャは、高度のキャッシュ管理を備えた広いライン
・バスを特徴とし、同じシリコン型すなわち基板上に1
〜10個のプロセッサ・エンジンを設けることが可能で
ある。4個のプロセッサをもつ設計態様は、生のMPE
G−1及びMPEG−2ビデオ信号ストリーム並びに生
のビデオ・ストリームをデコードするために必要な処理
能力を有する。さらに、PVPは、非常に傑出した2D
及び3Dグラフィックを実現するべく再プログラミング
することが可能である。
【0013】PVPプロセッサは、汎用プロセッサ又は
DSPとして設計されてはいない。その代わりにPVP
プロセッサは、ビデオ及びグラフィック形式のアルゴリ
ズムを処理するように設計されてきた。このためPVP
は、ビデオ/グラフィック・アプリケーション用に適応
された限定されたALU(演算論理ユニット)命令セット
により4個の基本ベクトルを処理するようにセットアッ
プされる。
【0014】PVP10は、グラフィクス複合体及びM
PEG複合体に同じメモリを共有させることによりメモ
リ11を効率的に使用する。これにより、同じ2メガバ
イトのメモリを、MPEGデコード又は高性能グラフィ
クスのために使用することができる。もちろん、同じメ
モリが同時に双方の機能を実行するように使用すること
はできない。
【0015】PVPは、本質的に汎用的なプロセッサを
必要としないことでシリコンの大きさを最小限とする。
ALUは、短縮命令セットであることを特徴とする16
ビット幅であって乗算ユニットもまた16ビットである
(専用のMACレジスタへは32ビット)。これによ
り、必要なシリコンの大きさを低減する。さらに、命令
キャッシュ31及びデータ・キャッシュ32の大きさは
最小限に維持されている。
【0016】制御バス 制御バスの目的は、高速のライン・バス34を損なうこ
となくチップ上の各サブシステムに対して制御/状態イ
ンタフェースを提供することである。制御バスは16ビ
ット幅であり、基本的に装置のコンフィギュレーション
及び状態の検査のために用いられる。ホスト・プロセッ
サ12、18が1つのPVPプロセッサ30の状態をポ
ーリングしなければならない状況において、このポーリ
ングは制御バスを通して行うことができる。さらにホス
ト・プロセッサは、そのプロセッサの制御ポートへ書込
むことにより個々にプロセッサをリセットしたり再スタ
ートさせたりできる。
【0017】一般的に、ホスト・インタフェースのI/
O空間は、制御バスへマッピングされるべきである。各
サブシステムは、制御バスからアクセス可能な独自のレ
ジスタ・セットを有している。例えば、各プロセッサ
は、リセットのための制御ポート及びベクトル・アドレ
ス・レジスタを有する。ビデオ出力サブシステムは、垂
直用及び水平用のタイミング・レジスタを有する。16
ビット・バス上のプロトコルは、VGA互換チップを容
易に作製するために(そして任意のインタフェースを作
成する代わりに)PCAT IO空間のプロトコルに適
合している。
【0018】制御バスはさらに、デバッグ(debug)・モ
ードにおいて有用である。制御ポートは、プロセッサの
実行を停止させ、レジスタ内容を検査し、そして任意に
コードによる単一ステップを実行するために用いられ
る。制御バスを介してこれらの種類のオペレーションを
実行することは、ライン・バスを他のプロセッサのため
に空けることになり、これらの他のプロセッサは時間的
に重要なコードを実行し続けることができる。
【0019】制御バスのマスタは、ホスト・インタフェ
ース38である。これは、ホスト・バスからのIOを処
理するべく設計されている。別の例では、特別なIOア
ドレス空間がライン・バスへ追加される。この場合ホス
トは、ライン・バスからの帯域幅を取得せずに制御バス
を用いることができ、又はライン・バス上のマスタは、
ホスト・バスに対する調停をせずにかつホスト・バスか
らの帯域幅を使用せずに制御バスへアクセスすることが
できる。
【0020】制御バスについては、性能は重要ではない
ので、各制御バス・スレーブに必要なハードウェアを最
小限とするために非常に単純なプロトコル(ISA(Ind
ustry Standard Architecture)バス又はATバスとして
知られるものと完全には同一でないが同様のプロトコ
ル)が用いられる。固定パルス幅の読取りストローブ及
び書込みストローブが、データ転送のために用いられ
る。 ・A1−15:転送先/転送元のIO(ワード)アドレ
ス ・D0−15:データ・バス ・BLE:下位のデータ・バイトの選択 ・BHE:上位のデータ・バイトの選択 ・RD#:読取りストローブ ・WR#:書込みストローブ
【0021】ライン・バス ライン・バス34は、PVP10の全てのサブシステム
がインタフェースする共通のポイントである。これは、
非常に広いデータ・パス(128ビット)を有し、1つ
のトランザクションでキャッシュ・ライン全体を転送す
ることができる。この広いデータ・パスによって、非常
に高速のキャッシュ間転送が可能となり、キャッシュの
ライン・バス・ポート上の調整論理が不要となる。アド
レス相及びデータ相が、ライン・バス上でパイプライン
化される。すなわち、現在のトランザクションのアドレ
ス相は、前のトランザクションのデータ相と同時に発生
する。アドレス相又はデータ相のいずれについても待ち
状態がない。待ち状態なしでデータが得られない場合、
スレーブは、サイクルを再試行しなければならないこと
をマスタへ示すために非確認(NACK)信号を出さな
ければならない。このことは、再試行の合間に他のトラ
ンザクションのためにバスを空けることになる。
【0022】ライン・バス34は、時にはトランザクシ
ョンの待ち時間を費やしても全帯域幅を最大限とするよ
うに設計されている。例えば、分割トランザクション読
取りは、スレーブが読取りアドレスをラッチしてキュー
確認(QACK)信号を戻すことができるようにサポー
トされる。バスは、他のマスタのトランザクションのた
めに働くように空いている。スレーブがデータを得たな
らば、ライン・バスに対する調停をし、マスタとなり、
そして保留中のマスタへデータを戻すことによりトラン
ザクションを完了しなければならない。これらの分割ト
ランザクション・サイクルは、待ち状態が挿入された場
合よりも長く(待ち時間が長くなるため)マスタを保留
状態とすることになるが、ライン・バスの必要とされる
帯域幅を最小限とする。
【0023】付加された待ち時間の影響を最小限とする
ために、幾つかのパイプライン態様が組込まれた。例え
ば、ソフトウェア・パイプラインでは、コードによって
データ項目をそのキャッシュへロードすることを要求す
る。この「タッチ(touch)」命令は、命令パイプを停止
させない。その代わりに、(キャッシュ・ミスが生じた
場合)読取りがバス上で開始されると共にプロセッサ3
0は自由に命令を実行し続ける。プロセッサ30は、デ
ータがキャッシュされる前にそのデータをレジスタへロ
ードしようとする場合にのみ停止することになる。ハー
ドウェア前方読取りは、インデクス制御レジスタにより
次の順のラインが必要になることを示すために実行され
る。(前方読取り修飾子が出されたとき)キャッシュへ
のアクセスの際、次の順のキャッシュ・ラインが使用可
能か否かについて検査される。使用可能でなければ、プ
ロセッサがアクセスを試みることによりミスを発生して
しまう前にそのキャッシュ・ラインが要求されることに
なる。命令キャッシュからの命令フェッチは、常に、極
めてシーケンシャルな特性をもつコード実行により有効
とされる「前方読取り」として扱われるべきである。
【0024】大規模なキャッシュ・コヒーレンシィ(デ
ータ整合性)のプロトコルについては、本明細書中で別
途概要を説明する。データ・キャッシュ32は、各々、
バイトあたりの汚染ビットを備える書戻し機能及びキャ
ッシュ間の汚染ラインを転送するためのプロトコルをサ
ポートしている。これによってプロセッサ30は、DR
AMへのキャッシュ・ラインの書戻しを必要とすること
なく、同じキャッシュ・ライン内の異なるバイト(すな
わち画素)を修正することができる。汚染ラインは、後
続のキャッシュ・ミスにより押出されるまでキャッシュ
されたままとなる。ストリーム・アドレス指定又は同報
通信アドレス指定を用いることにより、キャッシュRA
Mを仮想的FIFO(先入れ先出し)を実行したり同報通
信データを捕捉したりするために利用することができ
る。これらの双方の技術は、ライン・バスのトラフィッ
クを実質的に低減することができる。
【0025】ライン・バスを構成する信号については、
次の論理群において説明する。 <制御>制御信号は次の通りである。 ・BUSCLK:バスクロックは、全てのバス・トラン
ザクションのタイミング基準となる主クロックである。
他の全てのサブシステムは、その内部論理を実行するた
めに(適宜)このクロックからの分配クロックを使用す
る。例えば、ホスト・インタフェースは、ホスト・バス
からのトランザクションをバス・クロックに同期させな
ければならない。全ての信号の変化は、このクロックの
立上がりエッジにより行われる。 ・RESET#:リセット信号は、ソフトウェアにより
出されるか又はホスト・インタフェースからのハードウ
ェア・リセットから駆動される。この信号に応答して、
全てのサブシステムはデフォールト状態へリセットされ
る。
【0026】<調停>調停信号は、要求しているマスタ
のいずれがバスの使用を獲得するかを決定するために用
いられる。バスの使用が許可されると、マスタは次のク
ロック期間中にアドレス相信号を駆動する。そのマスタ
に対するデータ相信号は、即座にそのアドレス相信号に
追随する。
【0027】・REQn#:マスタがバスに対するアク
セスを要求するとき、そのマスタによりバス要求信号が
出される。マスタ機能を有する各サブシステムについて
固有のバス要求信号がある。この要求信号は、その後の
クロック期間におけるマスタを決定し導出する調停論理
のための立ち上がりクロック・エッジよりも十分以前に
出されなければならない。この要求信号は、マスタのト
ランザクションのアドレス相の間に解放されなければな
らない。
【0028】・GNTn#:バス許可信号は、いずれの
マスタが次のトランザクションのためにバスを制御する
かを選択する調停論理により同期的に出される。マスタ
機能を有する各サブシステムについて固有のバス要求信
号がある。この許可信号は、各トランザクションのアド
レス相の間に次のマスタを反映するために変化する。調
停論理は、バスにとってマスタがない状態を避けるため
に、何らかの公平性アルゴリズムを実行しなければなら
ない。
【0029】・LOCK#:マスタは、多重トランザク
ションにおいてバスに対する排他的アクセスを獲得する
ためにロック信号を用いることができる。多重トランザ
クションとは、例えば、アトミック(atmic)な読取り−
修正−書込みサイクル等である。ロック信号は、そのト
ランザクションのアドレス相の間にマスタにより出され
なければならない。ロック信号は、最後のトランザクシ
ョンのアドレス相まで、そのREQn#信号及びLOC
K#信号の双方を保持し続けなければならない。マスタ
がスレーブから持続的にNACKを受信している場合、
そのマスタは、スレーブに対する排他的アクセスを獲得
しそのサイクルを完了させるためにLOCK#信号を使
用しなければならない。
【0030】<アドレス相(フェーズ)>アドレス相信
号は全て、マスタにより駆動される。全てのデータ・キ
ャッシュは、ラインが与えられるべきか又は無効とされ
るべきかを判断するためにアドレス相信号をデコードし
なければならない。DRAM及びホスト・インタフェー
スにまた、アドレスがこれらの特定の領域内にあるか否
かを判断するためにこのアドレス相信号をデコードす
る。
【0031】・ADS#:アドレス・ストローブ信号
は、有効なアドレス相信号の間にマスタにより駆動され
る。この信号は、後続する信号を有効状態に駆動されて
いるものとして修飾するために用いられる。 ・WR:書込み信号は、読取りサイクルと書込みサイク
ルとを区別する。具体的には、マスタ又はスレーブのい
ずれがデータ相の間にデータ・バスを駆動することにな
るかを決定する。 ・ADR4〜23:これらのアドレス・ラインは、トラ
ンザクションにおける送信先アドレスを指定する。ここ
で、ADR0〜3がないことを注記する。なぜなら、バ
スはライン全体(16バイト)を同時に転送するからで
ある。また、16メガバイトの物理的なアドレス指定限
界があることを注記する。
【0032】次の信号は、アドレス修飾子の一部と見な
される。 ・MID0〜3:マスタIDビット(15個までの可能
なマスタ・サブシステム、「0」は未使用)は、ストリ
ーム・トランザクション中に送信先マスタを指定するた
めにマスタにより駆動される。マスタは、他の全てのト
ランザクション中には自身のIDを駆動する。読取りト
ランザクションが分割される場合、スレーブはこのID
をラッチし、読取り回答(reply)の間にラッチされたI
Dを用いて保留中のマスタへ送らなければならない。 ・LAH:ルックアヘッド・アドレス修飾子は、このア
ドレスからシーケンシャル・アドレス指定が予想される
ことをキャッシュ・サブシステムに対して示すために用
いられる。従って、キャッシュ・サブシステムは、必要
であれば次のラインを獲得しなければならない。
【0033】・STR:ストリーム信号は、特定のマス
タがMID0〜3ビットにより指定されたようにアドレ
ス指定されるべきであることを示すために用いられる。
ストリーム・トランザクションは、トランザクションの
データ(及びアドレス)が特定のマスタを目的とする場
合、仮想FIFO及び読取り回答のために用いられる。
読取り回答の間、保留中のマスタは常にデータを受け取
ることができ、NACKは受信されない。仮想FIFO
サポートについては、FIFOが満杯(書込み)又は空
(読取り)である場合にNACKが受信されることがあ
る。
【0034】・BC:同報通信信号は、全てのマスタが
このサイクルに参加するべきであることを示すために用
いられる。書込み同報通信の間、全てのマスタがバスか
らのデータをラッチしようとする。これは、そのデータ
が多くのプロセッサにより使用される可能性のある場合
には有用である。これにより、各プロセッサが個々にデ
ータを取り出す必要がないため、ライン・バス帯域幅を
節約することができる。読取り同報通信(同報呼出)
は、開始マスタに加えて全てのキャッシュがデータをラ
ッチしようとすること以外は、メモリ読取りと同じであ
る。
【0035】・ACQ/RPL:獲得/回答信号は、通
常のメモリ読取りと獲得読取りとを区別するために用い
られる。獲得信号は、書込みミスの結果であり、ライン
に対する排他的アクセスを獲得するために働く。さらに
獲得/回答信号は、読取り回答をストリーム書込みから
区別する。 ・IO:IO信号は、通常のメモリ読取り及び書込みと
入出力命令とを区別するために用いられる。ホスト・イ
ンタフェースは、ライン・バスからIOアドレス空間へ
応答する唯一のサブシステムである。 ・HOST:ホスト信号は、そのメモリ・サイクルがホ
スト・バスを目的とすることを示すために用いられる。
PVPがマスタとならなければならず、ホスト・バス上
のメモリ・サイクルを実行する。現在、メモリ空間のみ
がサポートされる(IO空間はサポートされてない)。
【0036】<データ相(フェーズ)> ・DAT0〜127:データ信号は、転送されているラ
イン(又は部分的ライン)のデータ・ビットを含む。D
AT0〜7はそのラインのバイト0に対応し、データ1
20〜127はそのラインのバイト15に対応する。デ
ータは、リトルエンディアン順(逆バイト順)に配列さ
れている。 ・BE0〜15#:バイト・イネーブル信号は、いずれ
のバイト(DAT信号)が有効データを含むかを示すた
めにアクティブに駆動される。実際には、無効バイトに
ついては、対応するDAT信号を3値論理としなければ
ならない。
【0037】・DIRTY:この信号は、BE0〜15
#ビットがライン内のいずれかのバイトが有効であるこ
とを表すのか又はライン内のいずれかのバイトが汚染さ
れていることを表すのかを示す。 ・DACK#:データ確認信号は、後続のデータ相の間
に(書込みにおける)データ転送を受け入れることがで
きるか又は(読取りにおける)データを供給できるいず
れかの(そして全ての)スレーブにより出される。
【0038】・QACK#:キュー確認信号は送信先ス
レーブにより出され、書込みデータが書込みのためのキ
ュー状態となったか又は読取り要求がキュー状態となっ
たかを示す。読取りについては、この信号は、バス・サ
イクルが分割されたことを示す。すなわち、要求された
データを戻すためにスレーブは、バスについて調停しな
ければならない。QACK#は、DACK#よりも優先
度が低い。つまり、同じ読取りデータ相の間にDACK
#がデータ・キャッシュにより戻されかつQACK#が
DRAMインタフェースにより戻される場合、DRAM
インタフェースはそのDRAM読取りを中断しなければ
ならない。
【0039】NACK#:確認否定信号は、送信先スレ
ーブがビジー状態であって要求されたデータを戻せない
(若しくはラッチできない)又はその要求さえラッチで
きないときにその送信先スレーブにより戻される。NA
CK#信号に応答して、マスタは、バスについて再調整
しかつ速やかにバス・トランザクションを再試行しなけ
ればならない。
【0040】調停とは、ただ1つの装置のみをライン・
バスのマスタすなわちアドレス相信号を駆動する装置と
して選択する機構である。事実上、ライン・バスへ接続
された各装置は、たとえDRAMインタフェースであっ
てもマスタ機能を有することになる。DRAMインタフ
ェースは、分割トランザクション・サイクルにおいてデ
ータを戻すためにマスタとなる必要がある。ライン・パ
スのアドレス相及びデータ相はパイプライン化されるの
で、マスタは実際には単一クロック・サイクルについて
バスを所有するのみである。新たなマスタは、各クロッ
ク・サイクルにおいてライン・バスを駆動することがで
きる。従って、調停は単一クロック・サイクルで発生す
る必要があると同時に、ライン・バスを常時ビジー状態
に維持できなければならない。
【0041】ライン・バス34の所有権に関する調停
は、バス・サイクルと同時に発生する。言い替えるなら
ば、1つのマスタがバス上で転送を実行する一方で、そ
のバスに関して競合する全てのマスタが要求を出してお
りかつ調停論理が働いている。従って、次の使用可能な
バス・サイクルに関して次のマスタを選択することがで
きる。図4は、多数のマスタが同時にバスを要求する例
を示す。調停論理は、クロック・サイクル毎に新たなマ
スタを選択することができるので、バスがアイドル状態
となることがない。
【0042】調停論理は、非同期的である。すなわち、
許可を出すためにクロックを用いない。要求は、1つの
クロック・エッジの後極めて速やかに出されなければな
らない。それによって許可論理が次のクロック・エッジ
より前に決定する。n番目のクロックnにおいて許可を
受信した後、受信した装置はn+1番目のサイクルをそ
のトランザクションのアドレス相として所有し、n+2
番目のサイクルをそのデータ相として所有する。この1
つのクロック待ちは、データが戻される前にアドレス情
報が負荷の大きいバスを通りキャッシュ・ヒット論理を
介することによる伝搬遅延を許容するために必要とみら
れている。調停論理は、バスにとってマスタがない状態
を避けるために公平性アルゴリズム(例えば、順番優
先)を実行する。LOCK#信号は、バスに対するアク
セスを延長するためにバス・サイクルのアドレス相の間
に出すことができる。これは、アトミック・バス・サイ
クルを実行するために、又は送信先装置からのNACK
が繰り返されることによる空白状態を避けるために用い
ることができる。
【0043】次の表は、ライン・バス上で発生可能なト
ランザクションの概要を示したものである。
【0044】
【表1】 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− WR,STR, トランザクション・コード・ビット:書込み、ストリーム、同報 BC,ACQ 通信、確認 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− メモリ 0000 ラインをローカル・キャッシュへ読込む。要求している装置の 読取り IDが与えられることにより、読取り回答サイクルを介して分割 トランザクションサイクルを完了することができる。ローカル ・ キャッシュはラインの全て又は一部を与えることができ、この 場 合DRAMがそのサイクルを終了しなければならない。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 獲得 0000 獲得サイクルは、DRAMインタフェースがサイクルに参加しな いことを除いて読取りと同様である。他のキャッシュのみが要 求 しているマスタに対してデータを与えることができる。データ を 与えるいずれのキャッシュもそのキャッシュ・ラインを無効に し なければならない。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− メモリ 1000 ラインの全て又は一部をDRAMへ書戻す。 書込み −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 読取り回答 1101 このサイクルは、分割された読取りサイクルに応答するため にDRAM又はホスト・インタフェースにより開始される 。 読取りの間に同報通信された装置IDが、要求している 装置 へ宛てるために用いられる。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 同報通信 1010 同報通信サイクルは、多数のキャッシュ内のラインを同時に 更新することができる。同報通信データは、ローカル・プ ロ セッサにより何回でもアクセスされかつキャッシュ内に空 間 が必要なときはDRAMへフラッシュアウトされることが 可 能な点で汎用的である。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 同報呼出 0010 同報呼出は、全てのキャッシュが、データがDRAMから読 み 出されたときラッチしようとする点で同報通信と似ている 。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− ストリーム 0100 ストリーム読取りは、キャッシュに設定された仮想「FIF 読取り O」からデータを除去する。有効でないアドレスを読取ると NACKを発生する。有効ラインからの読取りオペレーショ ン は、そのラインから読まれたデータを無効化する。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− ストローム 1100 ストリーム書込みは、キャッシュに設定された仮想「FIF 書込み O」へデータを追加する。既に有効なエントリへの書込みに 対してはNACKを返す。ラインの無効部分への書込みオ ペ レーションは、データを有効状態にセットする。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【0045】メモリ読取りは、サブシステムがキャッシ
ュ・ラインを獲得する必要がある場合には必ず発生する
(通常、これはキャッシュ・ミスの結果である)。読取
りサイクルのタイミングの例が、図5に示されている。
【0046】図5では、マスタ(M1)がラインを要求
するときサイクルAが発生する。読取り要求はDRAM
インタフェースによりラッチされるが、データはまだD
RAMから読取られていない。従って、トランザクショ
ンは、キュー確認信号により終了する。DRAMインタ
フェースは、要求されたラインをDRAMから読取って
いるビジー状態である。サイクルBにおいては、第2の
マスタ(M2)がラインを要求する。この場合、DRA
Mインタフェースは、マスタがそのサイクルを繰返さな
ければならないことを示す確認否定(NACK)信号を
返す。しかしながら、同時にスヌープ・キャッシュは、
要求されたラインの有効な複写をもつことを検知してそ
れをデータ確認(DACK)信号と共に与えている。そ
の後、マスタM2はそのデータの複写を受信することが
でき、再試行する必要はない。サイクルCでは、第3の
マスタ(M3)もまた、ラインの読取りに対する確認否
定信号を受信する。このマスタは、バスに関する再調停
をしそのサイクルを再試行しなければならない。サイク
ルDではDRAMインタフェースが、マスタM1が要求
したデータを獲得している。DRAMインタフェースは
バスに関する調停をし、読取り回答トランザクションを
用いてそのデータを送る。サイクルEでは、マスタM3
がサイクルを再試行し、DRAMインタフェースがその
要求をキューしている。
【0047】サイクルBでは、スヌープ・キャッシュの
みがそのラインの一部(例えば、1個の汚染バイト)を
もつことが可能である。この場合、第2のミスが発生す
ることがあり、マスタM2は再びそのラインを要求しな
ければならなくなる。DRAMからラインを受信する
と、そのラインは既にキャッシュされている汚染データ
と併合される。
【0048】メモリ獲得は、マスタが内容を変更するた
めにキャッシュ・ラインへの排他的アクセスを必要とす
るときに発生する(これは、キャッシュ書込みミスの結
果である)。獲得サイクルは、DRAMインタフェース
が参加しないことを除いて読取りサイクルと非常に似て
いる。これは、開始キャッシュが、DACK信号を下げ
ることによりDRAMサイクルを終了させるからであ
る。従って、獲得サイクルが有効データのない結果とな
る可能性がある(可能性が極めて高い)。獲得サイクル
の間、開始キャッシュは、いずれの有効データも汚染デ
ータとしてラッチする。従って、ラインの全て又は一部
を後で書戻す必要がある。
【0049】キャッシュ間で汚染ラインを渡すためのこ
のプロトコルは、グラフィック・アプリケーションにお
いては非常に有用である。例えば、2つのプロセッサが
複数のポリゴン及びこれらのポリゴンの間の境界をレン
ダリングしていると仮定すると、1つのキャッシュ・ラ
イン内にある可能性が極めて高い。画素は各プロセッサ
により書かれるので、ライン(及びその部分的汚染内
容)が必要に応じてキャッシュ間を行き来して渡され
る。キャッシュの1つがラインをそのキャッシュから出
さなければならないときにのみ、データがDRAMへ書
き込まれる。従って、DRAMインタフェースは、プロ
セッサが実行した多くの個々の画素書込みの結果として
1つのライン書込みを調べるのみである。
【0050】メモリ書込みは、サブシステムがラインを
書込むことを必要とするときには必ず発生する(通常こ
れは、キャッシュの汚染ライン書戻しの結果である)。
書込みサイクルのタイミングの例は、図6に示されてい
る。
【0051】図6では、マスタ(M1)がラインを書込
むときサイクルAが発生する。書込みはDRAMインタ
フェースへ通知される。トランザクションは、キュー確
認信号により終了する。DRAMインタフェースは、要
求されたラインをDRAMへ書込んでいるビジー状態で
ある。サイクルBでは、第2のマスタ(M2)がライン
を書込む。DRAMインタフェースはまたこの書込みを
通知されるので再びキュー確認信号を返す。しかしなが
ら、同時にスヌープ・キャッシュは汚染データを受入れ
る空きラインをもつことを検知しており、データを受信
してデータ確認信号を返す。DRAMインタフェースは
データ確認信号を検知して、DRAMに対する保留中の
書込みサイクルを終了することができる。サイクルCで
は、第3のマスタ(M3)がDRAMインタフェースに
対して書込みをキューすることができる。サイクルDで
は、第4のマスタ(M4)がDRAMインタフェースに
対してラインを書込もうとするが、確認否定信号を受信
する。サイクルEでは、マスタM4がサイクルを再試行
し、DRAMインタフェースがその要求をキューしてい
る。
【0052】ここで、DRAMインタフェースが交互配
置(interleave)可能であることは重要である。待ち状態
を挿入する代わりにNACK信号を用いることは、別の
バンクへアクセスしようとする他のマスタに対してバス
を空けることになる。
【0053】同報通信サイクルは、マスタがデータをD
RAMへ書込もうとする点でメモリ書込みサイクルと類
似している。他の全てのキャッシュは、データ転送を監
視し、NACK信号ではなくQACK信号が発生すると
同時にデータをラッチする。同報呼出サイクルは、マス
タがDRAMからデータを読取ろうとする点でメモり読
取りサイクルと類似している。読取りサイクルと全く同
様に、キャッシュによりデータが与えられてDRAMサ
イクルを終了することができる。相違点は、全てのキャ
ッシュが同時にそのデータをラッチすることである。要
求された同報呼出データがキャッシュ内で汚染されてい
るならば、汚染ラインのホルダが同報呼出のNACK信
号を出し、書戻しを開始する。同報通信データはキャッ
シュ内の無効ラインを満たし、有効ラインを上書きする
ことになる。キャッシュ・セット全体が汚染されている
場合にのみそのキャッシュは同報通信データを受け入れ
ない。
【0054】同報通信/同報呼出のサイクルは、一般的
に全てのプロセッサにより参照される必要のあるデータ
構造に対するライン・バス全体のトラフィックを低減す
る傾向がある。それでも尚DRAMの帯域幅は、共有デ
ータ構造が変更されるときDRAMが常に更新される場
合と同様に広帯域とすることができる。プログラマは、
極めて慎重にデータ構造を同報通信空間へ配置しなけれ
ばならない。同報通信空間が大きすぎるとキャッシュを
占有しすぎることが多々あり、そのために標準的メモリ
参照におけるキャッシュ・ミスが頻繁となる。
【0055】ストリームI/Oは、仮想FIFOを実現
するための機構である。仮想FIFOは、FIFOとし
て使用可能なキャッシュの一区画であり、これにより2
つの非同期プロセスの間におけるデータの自動的バッフ
ァ操作が可能となる。
【0056】図7では、2つのFIFOが、2つのキャ
ッシュの各々において最大幅Xでセットアップされてい
る。FIFOは、キャッシュ32内に存在する循環バッ
ファと考えることができる。FIFOにおける入出のた
めに正確なシーケンシャル・アドレスを発生すること
は、入力装置及び出力装置が担う。例えば、FIFOが
アドレス100Hで始まり16バイトの幅がある場合、入力
及び出力のためのアドレス順序は、100H、101H、102
H、...、10FH、100H、101H、...となる。例として、ホ
スト・インタフェースがプロセッサ2のキャッシュにあ
るFIFOへデータを送信しているとする。FIFOが
満杯である(循環バッファの全ての位置が占められてい
る)ならば、そのキャッシュはホスト・インタフェース
へNACK信号を返す。その後ホスト・インタフェース
は、データが受け入れられるまで継続的に再試行する。
同様に、プロセッサはFIFOから読取る。もしFIF
Oが空であれば、プロセッサはデータが書込まれるまで
停止することになる。2つのプロセッサがほぼ同じ速度
で実行していると仮定すると、データは、これらの間を
非常に僅かなポーリング遅延で移行することができる。
【0057】図7は、FIFOのライン・バスに関する
もう一方の側も示している。プロセッサ2は、プロセッ
サ1のキャッシュにあるFIFOから読取ることができ
る。このFIFOにデータがないときに読取りが発生し
たならば、NACK信号が返され、プロセッサ2は再試
行が完了するまで停止することになる。同様に、プロセ
ッサ1が満杯のFIFOへ書込みしようしたならば、プ
ロセッサ1は停止することになる。
【0058】PVPアーキテクチャは、統合された単一
のメモリ・アドレス空間からなる。PVP内の各プロセ
ッサは、いずれのメモリ場所へもアクセスする。PVP
内の高度のキャッシュ・アーキテクチャは、システム内
の種々のプロセッサに対するデータ・コヒーレンシィを
維持する。
【0059】PVP命令セットは、メモリ及びレジスタ
へのアクセスに関して構築されている。上位8ビットで
与えられる特殊なアドレス指定モードを除いてPVPモ
デル内にI/O空間は作られない。しかしながらホスト
・インタフェースは、ホスト入出力サイクルを利用して
PVPの制御バスへアクセスすることにより、制御機能
を実行する。PVP内の各プロセッサは、16メガバイ
トのアドレス空間内の任意の場所又はホスト・メモリ空
間の物理メモリの31ビットまでの任意のアドレスへア
クセスすることができる。PVPは、ホスト・マスタと
なることができ、メモリ・サイクル又は入出力サイクル
を開始することができる。
【0060】ラスタ・バッファは、プログラム可能なメ
モリ場所に対して再配置(relocate)可能である。PVP
に関するメモリ・マップは、ユーザ・コンフィギュレー
ションに依存する。各プロセッサ・コード及びデータ領
域は、16メガバイトのアドレス領域のいずれへも配置
可能である。ほとんどの一般モデルは、アドレス0から
始まる各プロセッサ用の4個のアドレス空間からなるラ
スタ・バッファを有する。各プロセッサはアドレス再配
置レジスタ(ARR)を有し、任意の所与の場所における
コードを再配置するために用いることができる。ここ
で、マルチプル・プロセッサは、固有のローカル・デー
タ領域をもつ共通コード領域を利用することができるこ
とを注記する。
【0061】PVP内の各プロセッサは、32ビット値
を含むアドレス空間レジスタを有し、これは全てのコー
ド・フェッチのためのオフセットとして用いられる。こ
のアドレスが、システムにおける全てのコード・フェッ
チ及び全ての実効アドレス発生において加算される。こ
れにより、各プロセッサに対するコード・ウィンドウを
極めて容易に移動することができる。全てのデータ・フ
ェッチは、絶対的であって再配置レジスタをもたない。
必要なデータ・アドレスを計算することはプログラマが
担う。
【0062】プログラマは、再配置レジスタへアクセス
しかつデータ・オペレーションに必要な実効アドレスを
形成するためにそれを用いることができる。
【0063】PVP内のプロセッサは、プロセッサ・ユ
ニット内の幾つかの場所から、命令フェッチのための実
効アドレスを発生することができる。次のような場所で
ある。 1.そのプロセッサの命令ポインタ(IP)。イネーブル
とされたルックアヘッド・オプションにより常にセット
されている。 2.そのプロセッサの分岐/リンク・レジスタ(BA
L)。これは、ジャンプ命令が実行されたときのリター
ン・アドレスを含む。リターン命令(BALからIPへ
移動)により用いられる。 3.割込みベクトル・アドレス。種々の例外ルーチンに
より用いられるアドレス・ポインタ。 4.命令自体に配置された即時アドレス。(即時アドレ
スへジャンプ) 5.IPレジスタへ加算される命令内の符号付きオフセ
ットにより発生されたオフセット・アドレス 6.インデクス・レジスタに配置されたアドレス。(I
DXからIPへ移動)
【0064】任意のメモリ・アドレスの上位8ビットは
制御ビットを含み、これは物理アドレス空間の下位24
ビットと連結して用いられる。プロセッサのキャッシ
ュ、DRAMインタフェース、及びホスト・インタフェ
ースは全て、種々の特別な機能のためにこれらのビット
を解釈する。通常のメモリ・アドレス空間は、全て
「0」の修飾子をもつ。これらのビットは、即時ロード
命令(24ビット)によりインデクス・レジスタにロー
ドされたときデフォールトで「0」になる。便宜上、各
インデクス・レジスタの制御レジスタは上位8ビットを
含み、これは全てのインデクス・レジスタ・メモリ・オ
ペレーションにより用いられる。これにより、ユーザは
インデクス・レジスタを特別な挙動のためにセットアッ
プすることができる。
【0065】修飾子ビットは、次のように定義される。
【0066】 ホスト・アドレス空間 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− A31|A30|A29|A28|A27|A26|A25|A24 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 1 | ホスト・アドレス空間(2ギガバイト指定可能)の | 上位アドレス・ビット −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 最上位ビットがセットされているとき、これがホスト・
メモリ空間のオペレーションであることを示す。ホスト
・インタフェースは、ホスト・プロセッサ側のマスタ・
サイクルを発生することによりこのアドレスへ応答す
る。残りの上位7ビットは、必要なホスト・メモリ空間
の実際のアドレス・ビットとして用いられる。
【0067】 ストリーム・アドレス空間 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− A31|A30|A29|A28|A27|A26|A25|A24 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0 | 1 | ストリーム送信先のマスタID −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− このモードは、このメモリ・オペレーションがストリー
ム型であることを示すために用いられる。マスタID
は、メモリ・トランザクションを受け入れるプロセッサ
又はキャッシュである送信先を指定するために用いられ
る。
【0068】 同報通信アドレス空間 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− A31|A30|A29|A28|A27|A26|A25|A24 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− このモードは、メモリ・オペレーションが同報通信であ
ることを示すために用いられる。各プロセッサのローカ
ル・データ・キャッシュは、メモリ/データ・オペレー
ションをキャッシュしようとする。同報通信は、多数の
キャッシュ・ユニットが同じデータを捕捉すると共に後
のアクセスのためにそれをキャッシュすることを可能と
する。
【0069】 ルックアヘッド・アドレス空間 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− A31|A30|A29|A28|A27|A26|A25|A24 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− このモードは、キャッシュ・ユニットに対し現在のメモ
リ・アドレスに関してルックアヘッドを実行するべきで
あることを示すために用いられる。キャッシュ・ユニッ
トはDRAMから次のメモリ・ラインをフェッチしよう
とする。DRAMインタフェースもまた、DRAMから
そのローカル・キャッシュへ次のラインをフェッチする
ことによりN+1/N+2パイプラインをセットアップ
する。
【0070】 入出力(IO)アドレス空間 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− A31|A30|A29|A28|A27|A26|A25|A24 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0 | 0 | 0 | 0 | 1 |ローカル | 0 | 0 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− このモードは、現在のオペレーションが入出力アドレス
であることを示すために用いられる。このアドレスは、
上記のローカル・ビットに従うローカルI/Oアドレス
であっても外部ホストI/Oサイクルであってもよい。
ホスト・インタフェース・ユニットは、外部I/O要求
を捕捉し、I/O空間を指定する下位24ビット用いて
ホストI/O空間に対するマスタI/Oサイクルを発生
する。
【0071】ローカルI/Oサイクルはデコードされ、
PVPの各プロセッサへ接続されたデータ・ポートによ
り応答される。プロセッサは、そのデータ・ポートへ接
続されたI/O装置を有していてもいなくてもよい。ビ
デオ入力FIFOは、PVPのデータ・ポートの1つへ
接続されたI/O装置の例である。プロセッサは、ロー
カルI/Oを介してFIFOから生のビデオ・データを
読取り、そのデータを処理する。
【0072】 自動フラッシュ −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− A31|A30|A29|A28|A27|A26|A25|A24 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− このビットは、バイトがキャッシュ・ユニットから読取
られたとき、キャッシュ制御装置に対して自動的に有効
ビットをクリアさせる。これによりラインが使い尽くさ
れたときそのラインを無効化する。ラインが満杯(全て
のバイトが汚染状態)であるとき、そのラインは自動的
にDRAMユニットへ書込まれてそのラインは無効化さ
れる。
【0073】PVPプロセッサ複合体はスーパスカラ(s
uper scalar)・アーキテクチャにより構成され、ALU
オペレーション及びロード/ストアオペレーションの双
方が1つのクロック内で同時に実行可能である。全ての
オペレーションは実行するために1つのクロックを要す
る。しかしながら、ビデオ処理のための独自の設計によ
り、PVPプロセッサは、幾つかのオペレーションを1
つのサイクルで実行することができ、MPEGやライブ
・ビデオ等のデータのデジタル・ストリームを処理する
ために設計されている。命令は、短い形式と長い形式の
2つの形式を有する(ロード/記憶オペレーションと称
する)。短いオペレーション形式は、ALUオペレーシ
ョンを同時に発生させることができる。長いオペレーシ
ョン形式は全命令ワードを採り、ALUオペレーション
は実行されない。短い形式は最も一般的であり、ALU
とロード/記憶ユニットとが同時に動作することができ
る。長い形式はロード/記憶ユニットにより排他的に使
用され、次の命令ワード(1クロック)までALUを停
止させる。
【0074】命令ストリームは、命令ポインタ(IP)を
用いて命令キャッシュからフェッチされる。命令ポイン
タは常に倍ワード(32ビット)エントリ(下位2ビット
=0)を指示する。各キャッシュ・ラインは4個の命令
からなり、(分岐や割込みが発生しない場合)プロセッ
サにより4クロックで使い尽くされる。プロセッサ複合
体を停止(命令に関して待つこと)させないために、命
令キャッシュ制御装置は巧妙なプリフェッチ及び分岐目
標アルゴリズムを組込んでいる。
【0075】命令デコーダ(図8中、符号42a)は、
単純なデコーダ及びデマルチプレクサを利用してALU
オペレーション及びロード/記憶ユニット・オペレーシ
ョンを制御する。各クロック・エッジにおいて、ALU
及びロード/記憶ユニットの結果が適宜のレジスタへラ
ッチされ、新たな命令がデコード・バッファへラッチさ
れると共に命令ポインタが自動的に増分される。デコー
ド・バッファが、常に現在の命令を保持している一方、
命令ポインタは既に(クロック・エッジにおいて)増分
されて次の命令を指示している。これにより、現在の命
令がジャンプ命令であって命令ポインタを変更するとし
ても次の命令がデコード・バッファへラッチされる。す
なわち、ジャンプ命令後の次の命令は常に実行される。
しかしながら、命令キャッシュは早めに次の命令アドレ
スを取得するので要求されたデータを与える時間があ
る。命令キャッシュで用いられるプリフェッチ・アルゴ
リズムにより、大きな命令ルックアヘッドは必要ない。
【0076】ロード/ストア・ユニット41a及びAL
U40aは、常にロック・ステップ形態で実行する。こ
のことは、命令再配列の負担をプログラマへ負わせる
が、チップの複雑さを格段に低減させる。
【0077】命令キャッシュ31は。マイクロコード・
エンジンの実行可能なコードを記憶するために用いられ
る。プログラム記憶が、固定アドレスのデータRAMで
はなくキャッシュとして構成されることにより、コード
に人工的制限が全くなくなる。もちろんキャッシュの大
きさは一定(1キロバイト)であるが、キャッシュは、
最新実行(the most recently ececuted)コードを保持す
るべく動的に適応する。命令キャッシュは単一ポートを
要するのみであり、従って、キャッシュ・ラインを無効
化するためにバスを監視(snoop)する必要がない(けれ
ども、要求しているマスタへラインを与えることはでき
る)。従って、ホスト・プロセッサは、実行可能なコー
ドを変更するときには必ずキャッシュを無効化すること
を担う。その後キャッシュは、DRAMからそのキャッ
シュ・ラインを再ロードしなければならない。
【0078】キャッシュは、自動ルックアヘッドを備え
た2ウェイ・セット・アソシアティブ・キャッシュとし
て構成される。各命令キャッシュ・ラインは16個のデ
ータ・バイトを保持し、これらのバイトはアドレス・タ
グと共にそのラインを構成する。16メガバイトの物理
的キャッシュ性能を備えたこの1キロバイトの2ウェイ
・セット・アソシアティブの構成においては、タグが1
5アドレス・ビットであることが必要である。有効ビッ
トは、ラインが有効であるか否かを示すために用いられ
る。ホストは、制御バスを用いて制御ビットに書込むこ
とにより個々の命令キャッシュをフラッシュすることが
できる。これには、全ての有効ビットを同時にクリアす
る効果がある。別の例として、メモリの所与の領域、例
えば物理メモリの上位1キロバイトを実行不能空間とし
て保有しておくこともできる。従って有効ビットを用い
る替わりに、全てのラインが常に有効と見なされること
になる。キャッシュをフラッシュすることは、全てのタ
グ・ビットを「1」にセットする(保有されたアドレス
空間を指定する)ことである。
【0079】最新使用(the least recently used:LR
U)ビットは、各セットについてミスが発生したときい
ずれのラインを捨てるかを示すフラグとして用いられ
る。LRUビットの最も単純なアルゴリズムは、次の通
りである。 ・現在アクセスされたラインが「A」ラインであれば、
LRU=0にセット ・現在アクセスされたラインが「B」ラインであれば、
LRU=1にセット ・ミスが発生しかつLRU=1のとき、ライン「A」を
置換 ・ミスが発生しかつLRU=0のとき、ライン「B」を
置換
【0080】別のアルゴリズムとして、LRUビットを
僅かに異なるように解釈するものがある。このアルゴリ
ズムの場合、キャッシュが分岐目標を長く保持してしま
うという影響がある。このアルゴリズムは次の通りであ
る。 ・ミスが発生しかつLRU=1のとき、ライン「A」を
置換及びLRU=1にセット ・ミスが発生しかつLRU=0のとき、ライン「B」を
置換及びLRU=0にセット
【0081】命令キャッシュは、コード実行が極めてシ
ーケンシャルな特性をもつために常にルックアヘッド・
モードにある。言い替えるならば、命令ラインがキャッ
シュからフェッチされるときは、必ず次の順のアドレス
が使用可能(そのタグが要求されたタグと一致する)か
否かを調べるために比較される。使用可能でなければ、
ルックアヘッド・ミスが発生し、コード・フェッチが開
始される。先取りキャッシュを行うために、キャッシュ
のアドレス・デコーダは、常に現在のセットと共に次の
セットを選択する。これは、アドレス・デコーダの各出
力に対する単純なOR(論理和)ゲートにより実現するこ
とができる。現在のアドレス・ヒット及び先読みヒット
の検査のために双方のセットが同時にフェッチされる。
【0082】変換ユニット(Xlate)44a(図9)は、
対応するインデクス制御レジスタ(ICR)に含まれる変
換フィールドにより制御される。ICRは、N個の変換
方法のうち1つを指定する。異なる変換方法は、異なる
データ・サイズを有しかつそれぞれのアクセスするレジ
スタにおける所与の制限を示唆する。全ての変換は双方
向性であり、ロード・オペレーション又は記憶オペレー
ションにおいて用いることができる。次に示す変換がサ
ポートされている。
【0083】1.変換なし(デフォールト):このモー
ドは、データを変更することなくそのユニットを介して
渡す。オペレーションの幅は、ロード/記憶ユニットの
オペレーションコードにより示唆される。
【0084】2.RGB16:このモードは16ビット
値をとり、そしてこれを5ビットのRGB値に切り離し
て各5ビット値をベクトル・レジスタのエレメントに記
憶する。RGB16のMSBは、ベクトル・レジスタの
最上位エレメントに記憶される。
【0085】3.YUV4:2:2 :このモードは、長さ3
2ビットのYUB4:2:2データをとり、この4:2:2データ
から2個のベクトル対を作成する。各ベクトルは、Cr
値及びCb値と共に強度値を含む「画素」を表す。最上
位エレメントは、変換に影響されない。この変換は常に
32にビット・データ及び倍レジスタ対に対して作用す
る。Cr/Cb値は、ロード時に複写され、第2のCr
/Cb値は、記憶オペレーションの際に無視される。
【0086】4.RGB32(バイトからワード):この
モードは、RGB24にプラスαを加えた形式の32ビ
ット値をとり、対応するバイトをベクトル・レジスタの
エレメントへロードする。第4のバイトは、αすなわち
他の情報として用いられる。バイトは符号拡張されな
い。
【0087】5.バイト・スワップ:このモードは、通
常ベクトル・ロードにおいてバイトを交換する。この変
換は64ビットのロード値に対して実行され、さらにロ
ード/記憶のオペレーションコードが必要に応じてデー
タを単エレメント又は倍エレメントに縮小することがで
きる。
【0088】6.ワード・スワップ:このモードは、バ
イトの代わりに16ビット・ワードが交換されるだけで
あり、バイト・スワップと同じである。この変換は64
ビットのロード値に対して実行され、さらにロード/記
憶のオペレーションコードが必要に応じてデータを倍エ
レメントに縮小することができる。エレメント0がエレ
メント3になる等である。
【0089】7.ビット・スワップ:このモードは、ロ
ードされた16ビット値のMSBとLSBとを交換す
る。この変換は64ビットのロード値に対して実行さ
れ、さらにロード/記憶のオペレーションコードが必要
に応じてデータを単エレメント又は倍エレメントに縮小
することができる。
【0090】8.ワードから倍ワード:このモードは、
ワード(16ビット)を倍ワード(32ビット)でベク
トル・レジスタ又はレジスタ対へロードする。ワードは
符号拡張されない。
【0091】9.バイト・パック:各ワードは、交互に
なる形態でパックされたバイトからなる。ベクトル・レ
ジスタのエレメントに対して1つ置きの符号拡張された
バイトでロードされ、他のベクトル・レジスタに対して
他のバイトが同じ形態でロードされる。このモードは、
色度データ等のパックされたデータ値に関して有用であ
る。
【0092】PVPの複製ユニットは、ベクトルALU
ユニットの重要な特徴である。主要な汎用的ベクトル・
レジスタ(VR0〜VR7)のいずれも、オペレーション
の送信元及び送信先の双方の単一エレメントとしてアク
セスされ得る。送信先についてのオペレーションは、単
純なエレメント・イネーブル制御にすぎず、そのベクト
ルの選択されたエレメントを変更させるのみである。他
の全てのエレメントは変更されないままである。送信元
についてのオペレーションは、ベクトルの指定されたサ
ブエレメントが、そのベクトルの残りのエレメントに対
して複製される。このことは、ベクトルALUユニット
へ入力されるベクトルが全て同じ値となる効果を生じ
る。
【0093】レジスタは、アクセス・サイズ及びレジス
タ属性に基づいて3個のレジスタ・バンクの論理グルー
プへ分割される。レジスタの3個のグループは、汎用的
ベクトル・レジスタ、積累算(Multiply-Accumulate:M
AC)ベクトル・レジスタ、及びインデクス/システム
・レジスタである。全てのレジスタは、6ビットの絶対
レジスタ番号によりアクセス可能である。レジスタ番号
0〜7はベクトル・レジスタのために、レジスタ番号8
〜15はMACレジスタのために、レジスタ番号16〜
31はインデクス/システム・レジスタのために、そし
てレジスタ番号32〜63はシステム/制御レジスタの
ために確保される。
【0094】ベクトル・レジスタ・ファイル(図9中、
符号45)は、8個の個別にアドレス指定可能なベクト
ル・レジスタから構成され、各々が4個のエレメントを
含む。各エレメントは、個々にアドレス指定可能な16
ビット・レジスタからなる。ベクトル・レジスタにアク
セスするとき、ベクトル・レジスタを単一の16ビット
・エレメントとして、又は4個のエレメント・ベクトル
(16ビット・エレメントをもつ)として、又は2個の
エレメント・ベクトル(32ビット・エレメントをも
つ)として見ることが可能である。更に、所与のロード
/記憶オペレーションにおいては一対のベクトル・レジ
スタにアクセス可能である。
【0095】ベクトル・レジスタ(VR)は、3ビットの
レジスタ番号により表され、アドレス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 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【0096】ベクトル・レジスタ・ファイルは、複製ユ
ニット及びサブエレメント・ユニットの2つの特徴を有
する。複製ユニットは、ベクトル・レジスタの特定の単
一エレメントをそのベクトルの残りのエレメントに対し
て複製することを担う。これは、データ・バスに対して
全てのエレメントが同じ値を含むベクトルを与える。複
製ユニットは、任意のベクトルの任意のエレメントを複
製することができ、16ビット・エレメントも32ビッ
ト・エレメントもサポートする。
【0097】サブエレメント・ユニットは、ユーザに対
してベクトルの特定のエレメントにデータを記憶するこ
とのみを許可する。他のエレメントは影響を受けない。
選択されたサブエレメントは、ALU又はロード/記憶
オペレーションにより変更された内容を有する。サブエ
レメント・ユニットは、16ビット・エレメントも32
ビット・エレメントもサポートする。
【0098】PVP ALU40は、4エレメントをも
つ条件コード・レジスタ(CCR)を有する。4エレメ
ントの条件コード・レジスタは、演算命令、論理命令、
及び条件命令に関してALUにより用いられる。CCR
の各エレメントは、そのエレメントに対応するALUに
よりセットされたり用いられたりする。32ビット・オ
ペレーションにおいては、CCR(0)及びCCR
(2)が用いられる。CCRは、通常の桁上げ、0、
負、及び桁あふれの4個のフラグを含む。さらに、CC
Rは、MACの対応するエレメントからの桁上げフラグ
及びユーザによりセット又はクリア可能な3個のユーザ
・フラグを含む。
【0099】PVP固有の態様の1つは、ベクトルに基
づくALU及びこれに対応する「条件」命令である。ほ
とんど全てのALUオペレーションは条件モードを有
し、このモードでは、ALUオペレーションの結果が各
エレメントに対応する条件コードに基づいて送信先ベク
トルへ書戻されるのみである。PVPの条件オペレーシ
ョンによって、PVPは非常に効率的にベクトルを処理
することができる。
【0100】PVPプロセッサ内の分岐/リンク・レジ
スタ(BAL及びBALI)は、全てのジャンプ命令及
び外部割込みからのリターン・アドレスを保持するため
に用いられる。全てのジャンプ(条件及び非条件)は、
IPをBALレジスタへ保存させる。このレジスタが、
IPアドレスをメモリに保存する際の目標場所となるこ
とにより、多重のサブルーチン・レベルを設けることが
できる。PVPのこの特徴により、必要に応じていずれ
のジャンプ命令もサブルーチン・コールとなることがで
きる。割込みは現在のIPをBALIレジスタへ保存さ
せ、そしてその割込みハンドラがBALIからのリター
ン・アドレスを保存しかつPCRの割込みをイネーブル
とするまで、自動的に割込みをディスエーブルとする。
【0101】PVPのインデクス・レジスタは、極めて
高性能である。各インデクス・レジスタは対応するイン
デクス制御レジスタ(ICR0〜ICR7)を有し、こ
れは、インデクス・レジスタが実行可能な種々の機能を
制御するために用いられる。図10は、ICRレジスタ
の制御ビットを示す図である。
【0102】インデクス・レジスタは、ロード/記憶ユ
ニットを介したメモリに対するアクセス毎のワード・サ
イズにより自動的に増分又は減分される。ICR内のイ
ネーブル/ディスエーブル・ビットは、この機能を制御
するために用いられる。この増分/減分ビットは、イン
デクス・ポインタの方向を制御するために用いられる。
後置/前置ビットは、自動増分/減分が発生する時点
(オペレーションの前か後か)を制御するために用いら
れる。スタック制御ビットは、インデクス・レジスタが
スタックのように動作するべくセットアップする。読取
りオペレーションのときは、インデクス・レジスタが予
め増分された後、メモリから値が読取られる。書込みオ
ペレーションのときは、データがメモリに書込まれたか
ら、インデクス・レジスタが後で減分される。インデク
ス・カウント・イネーブル/ディスエーブル・ビット
は、関連するカウント・レジスタが同様に減分されるか
否かを制御するために用いられる。カウント・レジスタ
は、常に1だけ減分されることを注記する。
【0103】3ビットの循環バッファ制御ビットは、イ
ンデクス・レジスタを循環バッファとしてセットアップ
するために用いられる。値「0」は、この機能をディス
エーブルさせる。他の7個の状態は、循環バッファのサ
イズ(n)を2の(n+2)乗として表す。サイズは、4
バイトから520バイトまでの範囲となる。これらのビ
ットは、インデクス・レジスタが増分又は減分されると
き、マスクとして用いられる。バッファは、その大きさ
により整列されなければならない。
【0104】4ビットのXlate制御ビットは、このイン
デクス・レジスタの変換機能を指定するために用いられ
る。値「0」は、この機能をディスエーブルさせる。他
の状態は、ロード/記憶ユニットにより用いられる変換
方法を指定する。
【0105】8ビットの上位アドレスは、PVPにより
サポートされる特別なアドレス・モードを制御するため
に用いられる。
【0106】PVP上のロード/記憶ユニット41は、
メモリから様々なデータ幅をロードできるスカラ/ベク
トル・ロード/記憶ユニットで構成される。メモリに対
して入出する最小の幅は、16ビットすなわち2バイト
である。データ幅は、16ビット、32ビット、64ビ
ット、又は128ビットの幅である。これにより、ロー
ド/記憶ユニットは、個々のエレメントと同様に完全な
ベクトル及び倍ベクトルもメモリへ記憶することができ
る。データは、任意のバイト境界で区切ることができ
る。バイト整列ユニットは、整列発生を処理する。
【0107】さらに、ロード/記憶ユニットは関連する
変換ユニットを有し、これにより全てのメモリ・アクセ
スが実行される。変換ユニットは、インデクス制御レジ
スタにより制御される。デフォールド・モードにおいて
は、変換ユニットはデータを通過させるだけである。他
のモードにおいて変換ユニットは、RGB16又はYU
V4:2:2等の異なるデータ形式から又は異なるデータ形
式へ変換することができる。バイト整列ユニットも含ま
れており、全ての幅についてのロード/記憶オペレーシ
ョンを任意のバイト境界において発生することができ
る。従って、64ビット及び128ビットのロード/記
憶オペレーションが、通常のアドレス境界上で発生する
必要はない。
【0108】ロード/記憶オペレーションは、短形式及
び長形式と称される2つの形式へ分割される。短形式の
ロード/記憶オペレーションはALUオペレーションと
同時に発生し、そして長形式のロード/記憶オペレーシ
ョンはそれ自身で実行されALUオペレーションを1ク
ロックだけ停止させる。
【0109】全ての短形式ロード/記憶オペレーション
は、8個のインデクス・レジスタの1つを介して間接的
にメモリを参照する。メモリからの全ての短形式ロード
/記憶オペレーションの送信元/送信先は、主ベクトル
・レジスタ・ファイル又はMACレジスタ・ファイルで
ある。インデクス値は、長形式でのみメモリから直接的
にロードすることができる。インデクスは、即値を介し
て又はベクトル・レジスタの1つからの移動を介してロ
ードされなければならない。
【0110】ビデオ・ラスタライザ36(及び図11)
は、出力ビデオ装置上の画像を「描く」ことを担う。こ
の装置は多くの場合CRTである。このことは、出力ス
トリームの形式が、RGB又はYUVエンコード・デー
タのデータ・ストリームを伴う垂直同期信号及び水平同
期信号であることを意味する。
【0111】ラスタライザは、ライン・バス34上のマ
スタでありさえすればよい。ラスタライザは、出力スト
リームを生成するためにDRAMの適宜の部分を読取る
ことになる。このことからラスタライザは、マイクロコ
ード・エンジンの1つと類似のデータ・キャッシュ46
を備える。このキャッシュのサイズは非常に小さくても
よい。なぜならこのキャッシュの目的は、キャッシュ・
コヒーレンシィ・プロトコルを維持しかつ効率的なライ
ン転送モードを用いてデータを読取ることだけだからで
ある。転送を管理する「エンジン」48はハードコード
・エンジンであって、YUVやRGBの出力バッファの
ための様々なリフレッシュ周波数用のデータを読取り変
換することができる。このエンジンは、ストリーム・デ
ータがデジタル・アナログ変換器(DAC)へ渡されチッ
プから出力される前に、ストリーム・データをFIFO
に書込む。FIFOは、特別な出力処理が必要な場合に
は、汎用エンジン(図3の30d)によっても充填され
る。ビデオ・データは、出力・ドット・クロックに同期
してFIFOから引き出される。FIFOは、ライン・
バスの競合のために出力エンジンによりかなり散発的に
充填される。ラスタライザは、FIFOが空になりそう
な場合には、バスをロックしてそのFIFOを充填する
ことができる。通常、FIFOはほとんど満杯状態で動
作するべきであり、それによって通常のバス要求をラス
タ出力に用いることができる。
【0112】図12は、MPEG2アルゴリズムがPV
P上にマッピングする方法を示す図である。4個のエン
ジンの各々が、解凍部分に割振られる。エンジン1は、
シリアル入力のFIFOに物理的に接続される。従って
論理的に、エンジン1は、可変長でコーディングを実行
し、他の3個のマスタ制御装置として働く。エンジン1
は64個のエレメント・アレイを組込み、データはこれ
らを通って逆走査プロセスへと渡される。このデータの
通過は、共有メモリ・バッファを介して実行される。し
かしながらキャッシュ・アーキテクチャがあるために、
データは実際にはDRAMへ書込まれない場合があるこ
とを注記する。データは、汚染状態で留まり必要に応じ
てキャッシュからキャッシュへ移動する。2つのエンジ
ン(符号2及び3)は、8×8行列の逆走査、逆量子
化、及び逆離散余弦変換のために専用化されている。こ
れらの2つのエンジンは、毎秒10万個以上の非ゼロ8
×8行列を処理することができなければならない。最後
のエンジンは、動き(motion)補償を実行する。最後のエ
ンジンは逆離散余弦変換の出力を受信し、それを参照ブ
ロックへ追加して現在ブロックを形成する。ビデオ出力
サブシステムは、前のフレームのYCrCbバッファを
表示する一方で現在のフレームが形成されるように構成
されなければならない。
【0113】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0114】(1)集積回路デバイスであって、基板
と、前記基板上に形成され、かつ各々が命令キャッシ
ュ、データ・キャッシュ、バス・インタフェース・ユニ
ット、及び演算論理ユニットとを含む複数の同一のプロ
セッサと、前記基板上に形成され、かつ前記複数のプロ
セッサ間でデータ・ビット・ストリームを転送するべく
該複数のプロセッサを相互接続するライン・バスと、前
記基板上に形成され、かつ入力信号ストリームを受信す
るべく前記ライン・バスへ接続されるビデオ入力インタ
フェース・ユニットと、前記基板上に形成され、かつ前
記複数のプロセッサによる処理で決定された出力ビデオ
信号ストリームを前記集積回路デバイスから配信するべ
く前記ライン・バスへ接続されるビデオ出力インタフェ
ース・ユニットと、前記基板上に形成され、かつ前記複
数のプロセッサの機能を制御するために有効な制御信号
をホスト・プロセッサと交換するべく前記ライン・バス
へ接続されるホスト・インタフェース・ユニットと、前
記基板上に形成され、かつ前記ライン・バス上を転送さ
れるデータ・ビット・ストリームとは別に前記ホスト・
インタフェース・ユニットと前記複数のプロセッサとが
制御信号を交換するべく該ホスト・インタフェース・ユ
ニットと該複数のプロセッサとを相互接続する制御バス
と、前記基板上に形成され、かつ前記複数のプロセッサ
により処理された及び処理されるべきデータ・ビット・
ストリームをメモリ素子と交換するべく前記ライン・バ
スへ接続されるメモリ・インタフェース・ユニットとを
有する集積回路デバイス。 (2)前記データ・キャッシュが所定の長さのビット・
ライン容量を具備し、前記ライン・バスが該データ・キ
ャッシュの該所定の長さのビット・ライン容量に等しい
所定のビット幅を具備する上記(1)に記載の集積回路
デバイス。 (3)前記データ・キャッシュの各々に関連するインデ
クス・レジスタと、該インデクス・レジスタの各々に関
連する属性レジスタとを有しており、前記インデクス・
レジスタが、前記データ・キャッシュにおけるデータ・
フローの入出を制御するべく関連する該プロセッサの1
つによりアクセス可能な命令データを受信しかつ保持
し、そして前記属性レジスタが、前記インデクス・レジ
スタに保持されるべき命令データを設定するべく該イン
デクス・レジスタに関連する1つのプロセッサによりア
クセス可能な属性データを受信しかつ保持する上記
(1)に記載の集積回路デバイス。 (4)前記属性レジスタが、次に続くシーケンシャル・
ラインのデータを前記データ・キャッシュへロードされ
るデータ・ラインとして含めるべく該データ・キャッシ
ュへデータ・フローを入れるルック・アヘッド機能を制
御するために属性データを受信しかつ保持する上記
(3)に記載の集積回路デバイス。 (5)前記属性レジスタが、データ・ラインの全てのビ
ットが前記キャッシュからアクセスされたことに応答し
て、該データ・ラインをクリアするべく前記データ・キ
ャッシュからデータ・フローを取出す自動フラッシュ機
能を制御するために属性データを受信しかつ保持する上
記(3)に記載の集積回路デバイス。 (6)前記属性レジスタが、前記複数のプロセッサの各
々の間で直接的にデータ・ストリームを渡すストリーム
入出力機能を制御するために属性データを受信しかつ保
持する上記(3)に記載の集積回路デバイス。 (7)前記属性データが、2つの非同期プロセス間のデ
ータ・フローのバッファ処理を可能とするべく、前記デ
ータ・キャッシュの少なくとも1つにおいて先入れ先出
しレジスタとして機能するキャッシュ・アドレスの範囲
を規定するストリーム入出力機能を制御する上記(6)
に記載の集積回路デバイス。 (8)前記属性データが、前記データ・キャッシュの少
なくとも1つにおいて自動読取り/変更/書込みアドレ
ス空間として機能する単一エレメントのキャッシュ・ア
ドレスを規定するストリーム入出力機能を制御する上記
(7)に記載の集積回路デバイス。 (9)前記データ・キャッシュの各々が複数のデータ・
ラインを維持しかつ各該データ・ラインが所定のバイト
数のデータの長さを具備し、そして各該データ・キャッ
シュが各データ・ラインについて該所定のバイト数のデ
ータの状態を有効状態及び汚染状態の1つとして規定す
る各該データ・ラインの増分部分を維持し、さらに各前
記データ・ラインの前記増分部分を読取る各前記プロセ
ッサが、該読取られるライン全体が前記メモリ・インタ
フェース・ユニットへ押出されるまでは汚染状態のデー
タをキャッシュされたままにしておく上記(1)に記載
の集積回路デバイス。 (10)デジタル・データを処理しかつビデオ表示信号
を発生するシステムであって、中央演算処理ユニット
と、デジタル・データを受信し記憶しかつ配信するシス
テム・ランダム・アクセス・メモリと、デジタル・デー
タ信号を転送するべく前記中央演算処理ユニットと前記
システム・ランダム・アクセス・メモリとを相互接続す
るバスと、前記バスへ操作により接続されることにより
前記中央演算処理ユニット及び前記システム・ランダム
・アクセス・メモリへ接続され、該中央演算処理ユニッ
トの制御の下に前記ビデオ表示信号を処理するビデオ・
プロセッサ集積回路デバイスとを有し、該ビデオ・プロ
セッサ集積回路デバイスが、基板と、前記基板上に形成
され、かつ各々が命令キャッシュ、データ・キャッシ
ュ、バス・インタフェース・ユニット、及び演算論理ユ
ニットとを含む複数の同一のプロセッサと、前記基板上
に形成され、かつ前記複数のプロセッサ間でデータ・ビ
ット・ストリームを転送するべく該複数のプロセッサを
相互接続するライン・バスと、前記基板上に形成され、
かつ入力信号ストリームを受信するべく前記ライン・バ
スへ接続されるビデオ入力インタフェース・ユニット
と、前記基板上に形成され、かつ前記複数のプロセッサ
による処理で決定された出力ビデオ信号ストリームを前
記集積回路デバイスから配信するべく前記ライン・バス
へ接続されるビデオ出力インタフェース・ユニットと、
前記基板上に形成され、かつ前記複数のプロセッサの機
能を制御するために有効な制御信号をホスト・プロセッ
サと交換するべく前記ライン・バスへ接続されるホスト
・インタフェース・ユニットと、前記基板上に形成さ
れ、かつ前記ライン・バス上を転送されるデータ・ビッ
ト・ストリームとは別に前記ホスト・インタフェース・
ユニットと前記複数のプロセッサとが制御信号を交換す
るべく該ホスト・インタフェース・ユニットと該複数の
プロセッサとを相互接続する制御バスと、前記基板上に
形成され、かつ前記複数のプロセッサにより処理された
及び処理されるべきデータ・ビット・ストリームをメモ
リ素子と交換するべく前記ライン・バスへ接続されるメ
モリ・インタフェース・ユニットとを有するシステム。 (11)前記データ・キャッシュが所定の長さのビット
・ライン容量を具備し、前記ライン・バスが該データ・
キャッシュの該所定の長さのビット・ライン容量に等し
い所定のビット幅を具備する上記(10)に記載のシス
テム。 (12)前記データ・キャッシュの各々に関連するイン
デクス・レジスタと、該インデクス・レジスタの各々に
関連する属性レジスタとを有しており、前記インデクス
・レジスタが、該データ・キャッシュにおけるデータ・
フローの入出を制御するべく関連する該プロセッサの1
つによりアクセス可能な命令データを受信しかつ保持
し、そして前記属性レジスタが、前記インデクス・レジ
スタに保持されるべき命令データを設定するべく該イン
デクス・レジスタに関連する1つのプロセッサによりア
クセス可能な属性データを受信しかつ保持する上記(1
0)に記載のシステム。 (13)前記属性レジスタが、次に続くシーケンシャル
・ラインのデータを前記データ・キャッシュへロードさ
れるデータ・ラインとして含めるべく該データ・キャッ
シュへデータ・フローを入れるルック・アヘッド機能を
制御するために属性データを受信しかつ保持する上記
(12)に記載のシステム。 (14)前記属性レジスタが、データ・ラインの全ての
ビットが前記キャッシュからアクセスされたことに応答
して、該データ・ラインをクリアするべく前記データ・
キャッシュからデータ・フローを取出す自動フラッシュ
機能を制御するために属性データを受信しかつ保持する
上記(12)に記載のシステム。 (15)前記属性レジスタが、前記複数のプロセッサの
各々の間で直接的にデータ・ストリームを渡すストリー
ム入出力機能を制御するために属性データを受信しかつ
保持する上記(12)に記載のシステム。 (16)前記属性データが、2つの非同期プロセス間の
データ・フローのバッファ処理を可能とするべく、前記
データ・キャッシュの少なくとも1つにおいて先入れ先
出しレジスタとして機能するキャッシュ・アドレスの範
囲を規定するストリーム入出力機能を制御する上記(1
5)に記載のシステム。 (17)前記属性データが、前記データ・キャッシュの
少なくとも1つにおいて自動読取り/変更/書込みアド
レス空間として機能する単一エレメントのキャッシュ・
アドレスを規定するストリーム入出力機能を制御する上
記(16)に記載のシステム。 (18)前記データ・キャッシュの各々が複数のデータ
・ラインを維持しかつ各該データ・ラインが所定のバイ
ト数のデータの長さを具備し、そして各該データ・キャ
ッシュが各データ・ラインについて該所定のバイト数の
データの状態を有効状態及び汚染状態の1つとして規定
する各該データ・ラインの増分部分を維持し、さらに各
前記データ・ラインの前記増分部分を読取る各前記プロ
セッサが、該読取られるライン全体が前記メモリ・イン
タフェース・ユニットへ押出されるまでは汚染状態のデ
ータをキャッシュされたままにしておく上記(10)に
記載のシステム。 (19)プロセッサ複合体であって、各々が命令キャッ
シュ、データ・キャッシュ、バス・インタフェース・ユ
ニット、及び演算論理ユニットとを含む複数の同一のプ
ロセッサと、前記データ・キャッシュの各々に関連し、
該データ・キャッシュにおけるデータ・フローの入出を
制御するべく関連する前記プロセッサの1つによりアク
セス可能な命令データを受信しかつ保持するインデクス
・レジスタと、前記インデクス・レジスタの各々に関連
し、前記インデクス・レジスタに保持されるべき命令デ
ータを設定するべく該インデクス・レジスタに関連する
前記プロセッサの1つによりアクセス可能な属性データ
を受信しかつ保持し、該属性データが前記複数のプロセ
ッサの各々の間で直接的にデータ・ストリームを渡すと
共に2つの非同期プロセス間のデータ・フローのバッフ
ァ処理を可能とするべく該データ・キャッシュの少なく
とも1つにおいて先入れ先出しレジスタとして機能する
キャッシュ・アドレスの範囲を規定するストリーム入出
力機能を制御する属性レジスタと、前記複数のプロセッ
サ間でデータ・ビット・ストリームを転送するべく該複
数のプロセッサを相互接続するライン・バスと、入力信
号ストリームを受信するべく前記ライン・バスへ接続さ
れるビデオ入力インタフェース・ユニットと、前記複数
のプロセッサによる処理で決定された出力ビデオ信号ス
トリームを前記集積回路デバイスから配信するべく前記
ライン・バスへ接続されるビデオ出力インタフェース・
ユニットと、前記複数のプロセッサの機能を制御するた
めに有効な制御信号をホスト・プロセッサと交換するべ
く前記ライン・バスへ接続されるホスト・インタフェー
ス・ユニットと、前記ライン・バス上を転送されるデー
タ・ビト・ストリームとは別に前記ホスト・インタフェ
ース・ユニットと前記複数のプロセッサとが制御信号を
交換するべく該ホスト・インタフェース・ユニットと該
複数のプロセッサとを相互接続する制御バスと、前記複
数のプロセッサにより処理された及び処理されるべきデ
ータ・ビット・ストリームをメモリ素子と交換するべく
前記ライン・バスへ接続されるメモリ・インタフェース
・ユニットとを有するプロセッサ複合体。
【図面の簡単な説明】
【図1】本発明のビデオ・プロセッサを用いた第1のシ
ステムを示す図である。
【図2】本発明のビデオ・プロセッサを用いた第2のシ
ステムを示す図である。
【図3】本発明のビデオ・プロセッサの概略図である。
【図4】図3のビデオ・プロセッサにより実行される所
与のオペレーションの信号タイミング図である。
【図5】図3のビデオ・プロセッサにより実行される所
与のオペレーションの信号タイミング図である。
【図6】図3のビデオ・プロセッサにより実行される所
与のオペレーションの信号タイミング図である。
【図7】FIFOキャッシュ方式で用いられる図3のビ
デオ・プロセッサの所与の構成要素の概略図である。
【図8】図3のビデオ・プロセッサの所与のオペレーシ
ョンにおける命令フローの概略図である。
【図9】図3のビデオ・プロセッサの所与のオペレーシ
ョンにおける命令フローの概略図である。
【図10】図3のビデオ・プロセッサ内の所与のデータ
・フローのビット割当てを示す概略図である。
【図11】表示するビデオ信号の出力に関連する図3の
ビデオ・プロセッサ内のデータ・フローの概略図であ
る。
【図12】ビデオ信号処理のための具体的アプリケーシ
ョンの1つに対する図3のビデオ・プロセッサの適応を
示す概略図である。
【符号の説明】
10 パラレル・ビデオ・プロセッサ(PVP) 11 PVPビデオRAM 12 主プロセッサ複合体 14 システムDRAM 15 他のPCI装置 16 PCIシステム・バス 30 マイクロコード・エンジン 31 命令キャッシュ 32 データ・キャッシュ 34 ライン・バス 35 ビデオ入力インタフェース・ユニット 36 ビデオ出力インタフェース・ユニット 38 ホスト・インタフェース・ユニット 39 DRAMインタフェース・ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スティーブン・テイラー・パンコースト アメリカ合衆国27615、ノースカロライ ナ州、ラレイ、ベルチェイス・ドライブ 1616 (56)参考文献 特開 平1−232481(JP,A) 特開 平2−112039(JP,A) 特開 平3−263144(JP,A) 特開 昭60−31664(JP,A) 特開 平3−37744(JP,A) 国際公開94/10624(WO,A1) (58)調査した分野(Int.Cl.7,DB名) G06F 17/00 - 17/18 G06F 12/08 - 12/12 G06F 15/16 - 15/177 G06T 1/00 - 1/40 G06T 3/00 - 5/50 G06T 9/00 - 9/40 G09G 5/00 - 5/40 H04N 7/12 H04N 7/30 - 7/32

Claims (15)

    (57)【特許請求の範囲】
  1. 【請求項1】集積回路デバイスであって、 (A)基板と、 (B)前記基板上に形成され、かつ各々が命令キャッシ
    ュ、データ・キャッシュ、バス・インタフェース・ユニ
    ット、及び演算論理ユニットとを含む複数の同一のプロ
    セッサと、 (C)前記データ・キャッシュの各々に関連するインデ
    クス・レジスタと、該インデクス・レジスタの各々に関
    連する属性レジスタであって、 前記インデクス・レジスタが、前記関連するデータ・キ
    ャッシュにおけるデータ・フローの入出を制御するべく
    前記インデクス・レジスタに関連する前記プロセッサの
    1つによりアクセス可能な命令データを受信しかつ保持
    し、そして前記属性レジスタが、前記インデクス・レジ
    スタに保持されるべき前記命令データを設定するべく前
    記インデクス・レジスタに関連する1つのプロセッサに
    よりアクセス可能な属性データを受信しかつ保持する、
    前記インデクス・レジスタおよび前記属性レジスタと、 (D)前記基板上に形成され、かつ前記複数のプロセッ
    サ間でデータ・ビット・ストリームを転送するべく該複
    数のプロセッサを相互接続するライン・バスと、 (E)前記基板上に形成され、かつ入力信号ストリーム
    を受信するべく前記ライン・バスへ接続されるビデオ入
    力インタフェース・ユニットと、 (F)前記基板上に形成され、かつ前記複数のプロセッ
    サによる処理で決定された出力ビデオ信号ストリームを
    前記集積回路デバイスから配信するべく前記ライン・バ
    スへ接続されるビデオ出力インタフェース・ユニット
    と、 (G)前記基板上に形成され、かつ前記複数のプロセッ
    サの機能を制御するために有効な制御信号をホスト・プ
    ロセッサと交換するべく前記ライン・バスへ接続される
    ホスト・インタフェース・ユニットと、 (H)前記基板上に形成され、かつ前記ライン・バス上
    を転送されるデータ・ビット・ストリームとは別に前記
    ホスト・インタフェース・ユニットと前記複数のプロセ
    ッサとが制御信号を交換するべく該ホスト・インタフェ
    ース・ユニットと該複数のプロセッサとを相互接続する
    制御バスと、 (I)前記基板上に形成され、かつ前記複数のプロセッ
    サにより処理された及び処理されるべきデータ・ビット
    ・ストリームをメモリ素子と交換するべく前記ライン・
    バスへ接続されるメモリ・インタフェース・ユニット
    と、 を有し、 前記複数のプロセッサの各々の間で直接的にデータ・ス
    トリームを渡すストリーム入出力機能を制御するための
    属性データが、前記データ・キャッシュの少なくとも1
    つにおいてアトミックな読取り/変更/書込み用として
    機能するキャッシュ・アドレスを規定する、 集積回路デバイス。
  2. 【請求項2】前記データ・キャッシュが所定の長さのビ
    ット・ライン容量を具備し、前記ライン・バスが該デー
    タ・キャッシュの該所定の長さのビット・ライン容量に
    等しい所定のビット幅を具備する請求項1に記載の集積
    回路デバイス。
  3. 【請求項3】前記属性レジスタが、次に続くシーケンシ
    ャル・ラインのデータを前記データ・キャッシュへロー
    ドされるデータ・ラインとして含めるべく該データ・キ
    ャッシュへデータ・フローを入れるルック・アヘッド機
    能を制御するために属性データを受信しかつ保持する請
    求項1に記載の集積回路デバイス。
  4. 【請求項4】前記属性レジスタが、データ・ラインの全
    てのビットが前記キャッシュからアクセスされたことに
    応答して、該データ・ラインをクリアするべく前記デー
    タ・キャッシュからデータ・フローを取出す自動フラッ
    シュ機能を制御するために属性データを受信しかつ保持
    する請求項1に記載の集積回路デバイス。
  5. 【請求項5】前記属性レジスタが、前記属性データを受
    信しかつ保持する請求項1に記載の集積回路デバイス。
  6. 【請求項6】2つのプロセッサ間においてデータの通信
    を可能にするために、ストリーム入出力機能を制御する
    前記属性データが、前記データ・キャッシュの少なくと
    も1つにおいて先入れ先出しレジスタとして機能するキ
    ャッシュ・アドレスの範囲を規定する、請求項5に記載
    の集積回路デバイス。
  7. 【請求項7】前記データ・キャッシュの各々が複数のデ
    ータ・ラインを維持しかつ各該データ・ラインが所定の
    バイト数のデータの長さを具備し、そして各該データ・
    キャッシュが各データ・ラインについて該所定のバイト
    数のデータの状態を有効状態及び汚染状態の1つとして
    規定する各該データ・ラインの増分部分を維持し、さら
    に各前記データ・ラインの前記増分部分を読取る各前記
    プロセッサが、該読取られるライン全体が前記メモリ・
    インタフェース・ユニットへ押出されるまでは汚染状態
    のデータをキャッシュされたままにしておく請求項1に
    記載の集積回路デバイス。
  8. 【請求項8】デジタル・データを処理しかつビデオ表示
    信号を発生するシステムであって、 (A)中央演算処理ユニットと、 (B)デジタル・データを受信し記憶しかつ配信するシ
    ステム・ランダム・アクセス・メモリと、 (C)デジタル・データ信号を転送するべく前記中央演
    算処理ユニットと前記システム・ランダム・アクセス・
    メモリとを相互接続するバスと、 (D)前記バスへ操作により接続されることにより前記
    中央演算処理ユニット及び前記システム・ランダム・ア
    クセス・メモリへ接続され、該中央演算処理ユニットの
    制御の下に前記ビデオ表示信号を処理するビデオ・プロ
    セッサ集積回路デバイスとを有し、該ビデオ・プロセッ
    サ集積回路デバイスが、 (a)基板と、 (b)前記基板上に形成され、かつ各々が命令キャッシ
    ュ、データ・キャッシュ、バス・インタフェース・ユニ
    ット、及び演算論理ユニットとを含む複数の同一のプロ
    セッサと、 (c)前記データ・キャッシュの各々に関連するインデ
    クス・レジスタと、該インデクス・レジスタの各々に関
    連する属性レジスタであって、 前記インデクス・レジスタが、前記関連するデータ・キ
    ャッシュにおけるデータ・フローの入出を制御するべく
    前記インデクス・レジスタに関連する前記プロセッサの
    1つによりアクセス可能な命令データを受信しかつ保持
    し、そして前記属性レジスタが、前記インデクス・レジ
    スタに保持されるべき前記命令データを設定するべく該
    インデクス・レジスタに関連する1つのプロセッサによ
    りアクセス可能な属性データを受信しかつ保持する、前
    記インデクス・レジスタおよび前記属性レジスタと、 (d)前記基板上に形成され、かつ前記複数のプロセッ
    サ間でデータ・ビット・ストリームを転送するべく該複
    数のプロセッサを相互接続するライン・バスと、 (e)前記基板上に形成され、かつ入力信号ストリーム
    を受信するべく前記ライン・バスへ接続されるビデオ入
    力インタフェース・ユニットと、 (f)前記基板上に形成され、かつ前記複数のプロセッ
    サによる処理で決定された出力ビデオ信号ストリームを
    前記集積回路デバイスから配信するべく前記ライン・バ
    スへ接続されるビデオ出力インタフェース・ユニット
    と、 (g)前記基板上に形成され、かつ前記複数のプロセッ
    サの機能を制御するために有効な制御信号をホスト・プ
    ロセッサと交換するべく前記ライン・バスへ接続される
    ホスト・インタフェース・ユニットと、 (h)前記基板上に形成され、かつ前記ライン・バス上
    を転送されるデータ・ビット・ストリームとは別に前記
    ホスト・インタフェース・ユニットと前記複数のプロセ
    ッサとが制御信号を交換するべく該ホスト・インタフェ
    ース・ユニットと該複数のプロセッサとを相互接続する
    制御バスと、 (i)前記基板上に形成され、かつ前記複数のプロセッ
    サにより処理された及び処理されるべきデータ・ビット
    ・ストリームをメモリ素子と交換するべく前記ライン・
    バスへ接続されるメモリ・インタフェース・ユニットと
    を有し、(j)前記複数のプロセッサの各々の間で直接的にデー
    タ・ストリームを渡すストリーム入出力機能を制御する
    ための属性データが、前記データ・キャッシュの少なく
    とも1つにおいてアトミックな読取り/変更/書込み用
    として機能するキャッシュ・アドレスを規定する、 システム。
  9. 【請求項9】前記データ・キャッシュが所定の長さのビ
    ット・ライン容量を具備し、前記ライン・バスが該デー
    タ・キャッシュの該所定の長さのビット・ライン容量に
    等しい所定のビット幅を具備する請求項に記載のシス
    テム。
  10. 【請求項10】前記属性レジスタが、次に続くシーケン
    シャル・ラインのデータを前記データ・キャッシュへロ
    ードされるデータ・ラインとして含めるべく該データ・
    キャッシュへデータ・フローを入れるルック・アヘッド
    機能を制御するために属性データを受信しかつ保持する
    請求項に記載のシステム。
  11. 【請求項11】前記属性レジスタが、データ・ラインの
    全てのビットが前記キャッシュからアクセスされたこと
    に応答して、該データ・ラインをクリアするべく前記デ
    ータ・キャッシュからデータ・フローを取出す自動フラ
    ッシュ機能を制御するために属性データを受信しかつ保
    持する請求項に記載のシステム。
  12. 【請求項12】前記属性レジスタが、前記属性データを
    受信しかつ保持する請求項に記載のシステム。
  13. 【請求項13】2つのプロセッサ間においてデータの通
    信を可能にするために、ストリーム入出力機能を制御す
    る前記属性データが、前記データ・キャッシュの少なく
    とも1つにおいて先入れ先出しレジスタとして機能する
    キャッシュ・アドレスの範囲を規定する、請求項12
    記載のシステム。
  14. 【請求項14】前記データ・キャッシュの各々が複数の
    データ・ラインを維持しかつ各該データ・ラインが所定
    のバイト数のデータの長さを具備し、そして各該データ
    ・キャッシュが各データ・ラインについて該所定のバイ
    ト数のデータの状態を有効状態及び汚染状態の1つとし
    て規定する各該データ・ラインの増分部分を維持し、さ
    らに各前記データ・ラインの前記増分部分を読取る各前
    記プロセッサが、該読取られるライン全体が前記メモリ
    ・インタフェース・ユニットへ押出されるまでは汚染状
    態のデータをキャッシュされたままにしておく請求項
    に記載のシステム。
  15. 【請求項15】プロセッサ複合体であって、 (A)各々が命令キャッシュ、データ・キャッシュ、バ
    ス・インタフェース・ユニット、及び演算論理ユニット
    とを含む複数の同一のプロセッサと、 (B)前記データ・キャッシュの各々に関連し、該デー
    タ・キャッシュにおけるデータ・フローの入出を制御す
    るべく関連する前記プロセッサの1つによりアクセス可
    能な命令データを受信しかつ保持するインデクス・レジ
    スタと、 (C)前記インデクス・レジスタの各々に関連し、前記
    インデクス・レジスタに保持されるべき命令データを設
    定するべく該インデクス・レジスタに関連する前記プロ
    セッサの1つによりアクセス可能な属性データを受信し
    かつ保持する属性レジスタであって、 前記複数のプロセッサの各々の間で直接的にデータ・ス
    トリームを渡すと共に2つの非同期プロセス間のデータ
    ・フローのバッファ処理を可能とするためにストリーム
    入出力機能を制御するための前記属性データが、前記デ
    ータ・キャッシュの少なくとも1つにおいて先入れ先出
    しレジスタとして機能するキャッシュ・アドレスの範囲
    を規定する、前記属性レジスタと、 (D)前記複数のプロセッサ間でデータ・ビット・スト
    リームを転送するべく該複数のプロセッサを相互接続す
    るライン・バスと、 (E)入力信号ストリームを受信するべく前記ライン・
    バスへ接続されるビデオ入力インタフェース・ユニット
    と、 (F)前記複数のプロセッサによる処理で決定された出
    力ビデオ信号ストリームを前記集積回路デバイスから配
    信するべく前記ライン・バスへ接続されるビデオ出力イ
    ンタフェース・ユニットと、 (G)前記複数のプロセッサの機能を制御するために有
    効な制御信号をホスト・プロセッサと交換するべく前記
    ライン・バスへ接続されるホスト・インタフェース・ユ
    ニットと、 (H)前記ライン・バス上を転送されるデータ・ビト・
    ストリームとは別に前記ホスト・インタフェース・ユニ
    ットと前記複数のプロセッサとが制御信号を交換するべ
    く該ホスト・インタフェース・ユニットと該複数のプロ
    セッサとを相互接続する制御バスと、 (I)前記複数のプロセッサにより処理された及び処理
    されるべきデータ・ビット・ストリームをメモリ素子と
    交換するべく前記ライン・バスへ接続されるメモリ・イ
    ンタフェース・ユニットと、 を有し、(J)前記属性データが、前記データ・キャッシュの少
    なくとも1つにおいてアトミックな読取り/変更/書込
    み用として機能するキャッシュ・アドレスを規定する、 プロセッサ複合体。
JP12504096A 1995-06-07 1996-05-20 デジタル・データ及びビデオ信号の処理デバイス及びシステム Expired - Fee Related JP3518788B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/481,966 US5696985A (en) 1995-06-07 1995-06-07 Video processor
US481966 1995-06-07

Publications (2)

Publication Number Publication Date
JPH0950402A JPH0950402A (ja) 1997-02-18
JP3518788B2 true JP3518788B2 (ja) 2004-04-12

Family

ID=23914105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12504096A Expired - Fee Related JP3518788B2 (ja) 1995-06-07 1996-05-20 デジタル・データ及びビデオ信号の処理デバイス及びシステム

Country Status (5)

Country Link
US (1) US5696985A (ja)
EP (1) EP0747834B1 (ja)
JP (1) JP3518788B2 (ja)
KR (1) KR100218620B1 (ja)
DE (1) DE69634525D1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100331437B1 (ko) * 1995-06-30 2002-08-08 삼성전자 주식회사 디.엠.티.시스템에서적응형비트교환방법및장치
JP3372864B2 (ja) * 1998-04-01 2003-02-04 日本電気株式会社 動画像伸長装置及び方法
CN1306697A (zh) * 1998-06-25 2001-08-01 赤道技术公司 可变长度编码与解码的处理电路和处理方法
US6393551B1 (en) * 1999-05-26 2002-05-21 Infineon Technologies North America Corp. Reducing instruction transactions in a microprocessor
US7039906B1 (en) * 2000-09-29 2006-05-02 International Business Machines Corporation Compiler for enabling multiple signed independent data elements per register
US6895520B1 (en) 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
US8401084B2 (en) * 2002-04-01 2013-03-19 Broadcom Corporation System and method for multi-row decoding of video with dependent rows
US7392368B2 (en) * 2002-08-09 2008-06-24 Marvell International Ltd. Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements
AU2003256870A1 (en) 2002-08-09 2004-02-25 Intel Corporation Multimedia coprocessor control mechanism including alignment or broadcast instructions
US6986023B2 (en) * 2002-08-09 2006-01-10 Intel Corporation Conditional execution of coprocessor instruction based on main processor arithmetic flags
CN1757018B (zh) * 2003-03-06 2010-09-08 Nxp股份有限公司 具有预取装置的数据处理系统、数据预取方法
US6862027B2 (en) 2003-06-30 2005-03-01 Microsoft Corp. System and method for parallel execution of data generation tasks
US20060088799A1 (en) * 2004-08-02 2006-04-27 William Dorfman Dental impression trays
US20060267998A1 (en) * 2005-05-24 2006-11-30 Walls Jeffrey J Systems and methods for management of parameters in a multi-node graphics system
US7366842B1 (en) * 2005-12-15 2008-04-29 Nvidia Corporation Creating permanent storage on the fly within existing buffers
WO2008006400A1 (en) * 2006-07-11 2008-01-17 Freescale Semiconductor, Inc. Microprocessor and method for register addressing therein
US8487947B2 (en) * 2006-09-28 2013-07-16 Agere Systems Inc. Video processing architecture having reduced memory requirement
JP6396715B2 (ja) * 2014-08-07 2018-09-26 ルネサスエレクトロニクス株式会社 データ処理装置
US20190303037A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Using sequential read intention to increase data buffer reuse

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR920001287B1 (ko) * 1988-02-12 1992-02-10 니혼 호오소오 고오카이 디지탈 영상신호 처리장치
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
EP0429733B1 (en) * 1989-11-17 1999-04-28 Texas Instruments Incorporated Multiprocessor with crossbar between processors and memories
EP0530310A4 (en) * 1990-05-18 1993-07-21 Star Semiconductor Corporation Programmable signal processor architecture

Also Published As

Publication number Publication date
JPH0950402A (ja) 1997-02-18
DE69634525D1 (de) 2005-05-04
US5696985A (en) 1997-12-09
EP0747834A1 (en) 1996-12-11
KR100218620B1 (ko) 1999-09-01
EP0747834B1 (en) 2005-03-30
KR970002600A (ko) 1997-01-28

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) デジタル・データ及びビデオ信号の処理デバイス及びシステム
US10365930B2 (en) Instructions for managing a parallel cache hierarchy
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
US5524265A (en) Architecture of transfer processor
JP4426099B2 (ja) 共有メモリを有するマルチプロセッサ装置
JP3084229B2 (ja) デジタル・データ及びビデオ信号の処理デバイス及びシステム
US6076139A (en) Multimedia computer architecture with multi-channel concurrent memory access
KR100227278B1 (ko) 캐쉬 제어 유닛
EP0875855B1 (en) Graphics processing system
US5784076A (en) Video processor implementing various data translations using control registers
US20030196040A1 (en) Data cache system
US20040221071A1 (en) Integrated multimedia system
EP0671718B1 (en) Data processor for guided transfer line drawing
US5724599A (en) Message passing and blast interrupt from processor
JPH05210641A (ja) 多重プロセッサコンピューターシステムのアーキテクチャ
US5651127A (en) Guided transfers with variable stepping
US5493646A (en) Pixel block transfer with transparency
JP2002541586A (ja) 並列データ処理装置
JP2006190301A (ja) 情報処理方法および装置
EP0676690B1 (en) Delayed write of store instruction in processor device

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040120

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20040121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040123

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

Free format text: PAYMENT UNTIL: 20080206

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090206

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees