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

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

Info

Publication number
JP3026756B2
JP3026756B2 JP8124908A JP12490896A JP3026756B2 JP 3026756 B2 JP3026756 B2 JP 3026756B2 JP 8124908 A JP8124908 A JP 8124908A JP 12490896 A JP12490896 A JP 12490896A JP 3026756 B2 JP3026756 B2 JP 3026756B2
Authority
JP
Japan
Prior art keywords
index
integrated circuit
circuit device
data
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP8124908A
Other languages
English (en)
Other versions
JPH0954832A (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 JPH0954832A publication Critical patent/JPH0954832A/ja
Application granted granted Critical
Publication of JP3026756B2 publication Critical patent/JP3026756B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • 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
    • G06F9/342Extension of operand address space
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】通常、デジタル・データ処理
システムは、使用中にそのシステムのユーザに対する表
示を作成するために用いられるビデオ信号を発生する。
このようなシステムの例としては、パーソナル・コンピ
ュータ及び、セット・トップ・ボックス(set top box)
やビデオ・ゲーム機等々と接続されるテレビ受像器等の
汎用機器システムがある。
【0002】
【従来の技術】このようなシステムに対するデータ処理
要求が増大するにつれて、ビデオ会議、ビデオ信号スト
リームの圧縮/解凍、及び提示された画像の3次元レン
ダリング等が頻繁に行われるようになってきたため、従
来から認識されていたこのようなシステムにおけるデジ
タル・データ処理の限界に近づいてきたり又は限界を超
えたりするようになった。この結果、上記のようなアプ
リケーションにおいて成功させようとする試みは性能的
な低下を生じることとなった。すなわち、(わずか一つ
の例をとってみても)高品質の3次元レンダリングを実
行しようとすれば、その表示を発生するシステムの応答
性が遅くなってしまうことになる。
【0003】
【発明が解決しようとする課題】以上により、本発明の
第1の目的は、汎用的システムの性能を改善することで
ある。本発明の第2の目的は、複数のプロセッサを単一
のVLSI素子(デバイス)上に設けることにより、ビ
デオ信号ストリームを発生するべく協同的に動作させか
つこの素子のメモリ要素に対して特徴的なアドレス指定
モードを用いることである。
【0004】
【課題を解決するための手段】上記の第1の目的を実現
するにあたって、表示信号ストリームを処理するデータ
処理システムにおいて、ベクトル処理及び特殊なアドレ
ス指定モードによる高機能を有するビデオ・プロセッサ
を設けるために超大規模集積回路(VLSI)の設計及び
その製品が利用される。上記の第2の目的を実現するに
あたって、上記素子が複数のプロセッサを具備し、各プ
ロセッサが関連する命令キャッシュ及びデータ・キャッ
シュを有しかつこれらのプロセッサが同じ基板上に形成
されたワイド・データ・バス(wide databus)により互い
に結合される。さらに上記素子は、メモリ要素内に保持
されたデータに対するアクセス及びアクセス・モードを
制御するためのレジスタを具備する。
【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】 最上位ビットがセットされているとき、これがホスト・
メモリ空間のオペレーションであることを示す。ホスト
・インタフェースは、ホスト・プロセッサ側のマスタ・
サイクルを発生することによりこのアドレスへ応答す
る。残りの上位7ビットは、必要なホスト・メモリ空間
の実際のアドレス・ビットとして用いられる。
【0067】 このモードは、このメモリ・オペレーションがストリー
ム型であることを示すために用いられる。マスタID
は、メモリ・トランザクションを受け入れるプロセッサ
又はキャッシュである送信先を指定するために用いられ
る。
【0068】 このモードは、メモリ・オペレーションが同報通信であ
ることを示すために用いられる。各プロセッサのローカ
ル・データ・キャッシュは、メモリ/データ・オペレー
ションをキャッシュしようとする。同報通信は、多数の
キャッシュ・ユニットが同じデータを捕捉すると共に後
のアクセスのためにそれをキャッシュすることを可能と
する。
【0069】 このモードは、キャッシュ・ユニットに対し現在のメモ
リ・アドレスに関してルックアヘッドを実行するべきで
あることを示すために用いられる。キャッシュ・ユニッ
トはDRAMから次のメモリ・ラインをフェッチしよう
とする。DRAMインタフェースもまた、DRAMから
そのローカル・キャッシュへ次のラインをフェッチする
ことによりN+1/N+2パイプラインをセットアップ
する。
【0070】 このモードは、現在のオペレーションが入出力アドレス
であることを示すために用いられる。このアドレスは、
上記のローカル・ビットに従うローカル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】 このビットは、バイトがキャッシュ・ユニットから読取
られたとき、キャッシュ制御装置に対して自動的に有効
ビットをクリアさせる。これによりラインが使い尽くさ
れたときそのラインを無効化する。ラインが満杯(全て
のバイトが汚染状態)であるとき、そのラインは自動的
に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)集積回路デバイスであって、基板
と、前記基板上に形成され、かつ各々が命令キャッシ
ュ、データ・キャッシュ、バス・インタフェース・ユニ
ット、及び演算論理ユニットとを含む複数の同一のプロ
セッサと、前記基板上に形成され、かつ前記複数のプロ
セッサの対応する1つと操作により関連付けられる複数
のインデクス・レジスタと、前記基板上に形成され、か
つ前記インデクス・レジスタの機能を制御するデータを
受信しかつ保持するべく前記インデクス・レジスタの対
応する1つと操作により関連付けられる複数のインデク
ス制御レジスタと、前記基板上に形成され、かつ前記複
数のプロセッサ間でデータ・ビット・ストリームを転送
するべく該複数のプロセッサを相互接続するライン・バ
スと、前記基板上に形成され、かつ入力信号ストリーム
を受信するべく前記ライン・バスへ接続されるビデオ入
力インタフェース・ユニットと、前記基板上に形成さ
れ、かつ前記複数のプロセッサによる処理で決定された
出力ビデオ信号ストリームを前記集積回路デバイスから
配信するべく前記ライン・バスへ接続されるビデオ出力
インタフェース・ユニットと、前記基板上に形成され、
かつ前記複数のプロセッサの機能を制御するために有効
な制御信号をホスト・プロセッサと交換するべく前記ラ
イン・バスへ接続されるホスト・インタフェース・ユニ
ットと、前記基板上に形成され、かつ前記ライン・バス
上を転送されるデータ・ビット・ストリームとは別に前
記ホスト・インタフェース・ユニットと前記複数のプロ
セッサとが制御信号を交換するべく該ホスト・インタフ
ェース・ユニットと該複数のプロセッサとを相互接続す
る制御バスと、前記基板上に形成され、かつ前記複数の
プロセッサにより処理された及び処理されるべきデータ
・ビット・ストリームをメモリ素子と交換するべく前記
ライン・バスへ接続されるメモリ・インタフェース・ユ
ニットとを有する集積回路デバイス。 (2)前記複数のプロセッサの各々がロード/記憶ユニ
ットを具備しており、前記インデクス制御レジスタの各
々が、その関連するロード/記憶ユニットによるメモリ
・アクセス毎にその関連する前記インデクス・レジスタ
が変更されるか否かを示すデータ・ビットを受信しかつ
保持する上記(1)に記載の集積回路デバイス。 (3)前記複数のプロセッサの各々がロード/記憶ユニ
ットを具備しており、前記インデクス制御レジスタの各
々が、その関連するロード/記憶ユニットによるメモリ
へのアクセスの際にその関連する前記インデクス・レジ
スタが増分されるべきか又は減分されるべきかを示すデ
ータ・ビットを受信しかつ保持する上記(1)に記載の
集積回路デバイス。 (4)前記複数のプロセッサの各々がロード/記憶ユニ
ットを具備しており、前記インデクス制御レジスタの各
々が、その関連するロード/記憶ユニットによるメモリ
へのアクセスの前にその関連する前記インデクス・レジ
スタが変更されるべきか又は該メモリへのアクセスの後
に変更されるべきかを示すデータ・ビットを受信しかつ
保持する上記(1)に記載の集積回路デバイス。 (5)前記複数のプロセッサの各々がロード/記憶ユニ
ットを具備しており、前記インデクス制御レジスタの各
々が、その関連する前記インデクス・レジスタがスタッ
ク・ポインタをエミュレートするべきか否かを示すデー
タ・ビットを受信しかつ保持する上記(1)に記載の集
積回路デバイス。 (6)前記基板上に形成される複数のインデクス・カウ
ント・レジスタを有しかつ該インデクス・カウント・レ
ジスタの各々が前記インデクス・レジスタの対応する1
つに操作により関連付けられ、さらに前記複数のプロセ
ッサの各々がロード/記憶ユニットを具備しており、前
記インデクス制御レジスタの各々が、その関連するイン
デクス・レジスタのアクセスに応答してその関連するイ
ンデクス・カウント・レジスタが自動的に減分されるべ
きか否かを示すデータ・ビットを受信しかつ保持する上
記(1)に記載の集積回路デバイス。 (7)前記インデクス制御レジスタの各々が、その関連
するインデクス・レジスタが循環バッファとして機能す
るべきか否かを示す複数のデータ・ビットを受信しかつ
保持する上記(1)に記載の集積回路デバイス。 (8)前記複数のプロセッサの各々がロード/記憶ユニ
ットを具備しており、前記インデクス制御レジスタの各
々が、前記ロード/記憶ユニットのデータ変換作用を示
す複数のデータ・ビットを受信しかつ保持する上記
(1)に記載の集積回路デバイス。 (9)前記インデクス制御レジスタの各々が、その関連
する前記インデクス・レジスタのアドレス・モードを示
す複数のデータ・ビットを受信しかつ保持する上記
(1)に記載の集積回路デバイス。 (10)前記インデクス制御レジスタの各々が、前記ロ
ード/記憶ユニットによるメモリへのアクセスの際にそ
の関連する前記インデクス・レジスタが増分されるべき
か又は減分されるべきかを示すデータ・ビットを受信し
かつ保持する上記(2)に記載の集積回路デバイス。 (11)前記インデクス制御レジスタの各々が、その関
連するロード/記憶ユニットによるメモリへのアクセス
の前にその関連する前記インデクス・レジスタが変更さ
れるべきか又は該メモリへのアクセスの後に変更される
べきかを示すデータ・ビットを受信しかつ保持する上記
(2)に記載の集積回路デバイス。 (12)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタがスタック・ポインタ
をエミュレートするべきか否かを示すデータ・ビットを
受信しかつ保持する上記(2)に記載の集積回路デバイ
ス。 (13)前記基板上に形成される複数のインデクス・カ
ウント・レジスタを有しかつ該インデクス・カウント・
レジスタの各々が前記インデクス・レジスタの対応する
1つに操作により関連付けられ、前記インデクス制御レ
ジスタの各々が、その関連するインデクス・レジスタの
アクセスに応答してその関連するインデクス・カウント
・レジスタが自動的に減分されるべきか否かを示すデー
タ・ビットを受信しかつ保持する上記(2)に記載の集
積回路デバイス。 (14)前記インデクス制御レジスタの各々が、その関
連するインデクス・レジスタが循環バッファとして機能
するべきか否かを示す複数のデータ・ビットを受信しか
つ保持する上記(2)に記載の集積回路デバイス。 (15)前記インデクス制御レジスタの各々が、前記ロ
ード/記憶ユニットのデータ変換作用を示す複数のデー
タ・ビットを受信しかつ保持する上記(2)に記載の集
積回路デバイス。 (16)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタのアドレス・モードを
示す複数のデータ・ビットを受信しかつ保持する上記
(2)に記載の集積回路デバイス。 (17)前記インデクス制御レジスタの各々が、その関
連するロード/記憶ユニットによるメモリへのアクセス
の前にその関連する前記インデクス・レジスタが変更さ
れるべきか又は該メモリへのアクセスの後に変更される
べきかを示すデータ・ビットを受信しかつ保持する上記
(10)に記載の集積回路デバイス。 (18)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタがスタック・ポインタ
をエミュレートするべきか否かを示すデータ・ビットを
受信しかつ保持する上記(10)に記載の集積回路デバ
イス。 (19)前記基板上に形成される複数のインデクス・カ
ウント・レジスタを有しかつ該インデクス・カウント・
レジスタの各々が前記インデクス・レジスタの対応する
1つに操作により関連付けられ、前記インデクス制御レ
ジスタの各々が、その関連するインデクス・レジスタの
アクセスに応答してその関連するインデクス・カウント
・レジスタが自動的に減分されるべきか否かを示すデー
タ・ビットを受信しかつ保持する上記(10)に記載の
集積回路デバイス。 (20)前記インデクス制御レジスタの各々が、その関
連するインデクス・レジスタが循環バッファとして機能
するべきか否かを示す複数のデータ・ビットを受信しか
つ保持する上記(10)に記載の集積回路デバイス。 (21)前記インデクス制御レジスタの各々が、前記ロ
ード/記憶ユニットのデータ変換作用を示す複数のデー
タ・ビットを受信しかつ保持する上記(10)に記載の
集積回路デバイス。 (22)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタのアドレス・モードを
示す複数のデータ・ビットを受信しかつ保持する上記
(10)に記載の集積回路デバイス。 (23)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタがスタック・ポインタ
をエミュレートするべきか否かを示すデータ・ビットを
受信しかつ保持する上記(17)に記載の集積回路デバ
イス。 (24)前記基板上に形成される複数のインデクス・カ
ウント・レジスタを有しかつ該インデクス・カウント・
レジスタの各々が前記インデクス・レジスタの対応する
1つに操作により関連付けられ、前記インデクス制御レ
ジスタの各々が、その関連するインデクス・レジスタの
アクセスに応答してその関連するインデクス・カウント
・レジスタが自動的に減分されるべきか否かを示すデー
タ・ビットを受信しかつ保持する上記(17)に記載の
集積回路デバイス。 (25)前記インデクス制御レジスタの各々が、その関
連するインデクス・レジスタが循環バッファとして機能
するべきか否かを示す複数のデータ・ビットを受信しか
つ保持する上記(17)に記載の集積回路デバイス。 (26)前記インデクス制御レジスタの各々が、前記ロ
ード/記憶ユニットのデータ変換作用を示す複数のデー
タ・ビットを受信しかつ保持する上記(17)に記載の
集積回路デバイス。 (27)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタのアドレス・モードを
示す複数のデータ・ビットを受信しかつ保持する上記
(17)に記載の集積回路デバイス。 (28)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタのアドレス・モードを
示す複数のデータ・ビットを受信しかつ保持する上記
(17)に記載の集積回路デバイス。 (29)前記基板上に形成される複数のインデクス・カ
ウント・レジスタを有しかつ該インデクス・カウント・
レジスタの各々が前記インデクス・レジスタの対応する
1つに操作により関連付けられ、前記インデクス制御レ
ジスタの各々が、その関連するインデクス・レジスタの
アクセスに応答してその関連するインデクス・カウント
・レジスタが自動的に減分されるべきか否かを示すデー
タ・ビットを受信しかつ保持する上記(23)に記載の
集積回路デバイス。 (30)前記インデクス制御レジスタの各々が、その関
連するインデクス・レジスタが循環バッファとして機能
するべきか否かを示す複数のデータ・ビットを受信しか
つ保持する上記(23)に記載の集積回路デバイス。 (31)前記インデクス制御レジスタの各々が、前記ロ
ード/記憶ユニットのデータ変換作用を示す複数のデー
タ・ビットを受信しかつ保持する上記(23)に記載の
集積回路デバイス。 (32)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタのアドレス・モードを
示す複数のデータ・ビットを受信しかつ保持する上記
(23)に記載の集積回路デバイス。 (33)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタのアドレス・モードを
示す複数のデータ・ビットを受信しかつ保持する上記
(23)に記載の集積回路デバイス。 (34)前記インデクス制御レジスタの各々が、その関
連するインデクス・レジスタが循環バッファとして機能
するべきか否かを示す複数のデータ・ビットを受信しか
つ保持する上記(29)に記載の集積回路デバイス。 (35)前記インデクス制御レジスタの各々が、前記ロ
ード/記憶ユニットのデータ変換作用を示す複数のデー
タ・ビットを受信しかつ保持する上記(29)に記載の
集積回路デバイス。 (36)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタのアドレス・モードを
示す複数のデータ・ビットを受信しかつ保持する上記
(29)に記載の集積回路デバイス。 (37)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタのアドレス・モードを
示す複数のデータ・ビットを受信しかつ保持する上記
(29)に記載の集積回路デバイス。 (38)前記インデクス制御レジスタの各々が、前記ロ
ード/記憶ユニットのデータ変換作用を示す複数のデー
タ・ビットを受信しかつ保持する上記(34)に記載の
集積回路デバイス。 (39)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタのアドレス・モードを
示す複数のデータ・ビットを受信しかつ保持する上記
(34)に記載の集積回路デバイス。 (40)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタのアドレス・モードを
示す複数のデータ・ビットを受信しかつ保持する上記
(34)に記載の集積回路デバイス。 (41)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタのアドレス・モードを
示す複数のデータ・ビットを受信しかつ保持する上記
(38)に記載の集積回路デバイス。 (42)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタのアドレス・モードを
示す複数のデータ・ビットを受信しかつ保持する上記
(38)に記載の集積回路デバイス。 (43)前記インデクス制御レジスタの各々が、その関
連する前記インデクス・レジスタのアドレス・モードを
示す複数のデータ・ビットを受信しかつ保持する上記
(42)に記載の集積回路デバイス。 (44)デジタル・データを処理しかつビデオ表示信号
を発生するシステムであって、中央演算処理ユニット
と、デジタル・データを受信し記憶しかつ配信するシス
テム・ランダム・アクセス・メモリと、デジタル・デー
タ信号を転送するべく前記中央演算処理ユニットと前記
システム・ランダム・アクセス・メモリとを相互接続す
るバスと、前記バスへ操作により接続されることにより
前記中央演算処理ユニット及び前記システム・ランダム
・アクセス・メモリへ接続され、該中央演算処理ユニッ
トの制御の下に前記ビデオ表示信号を処理するビデオ・
プロセッサ集積回路デバイスとを有し、該ビデオ・プロ
セッサ集積回路デバイスが、基板と、前記基板上に形成
され、かつ各々が命令キャッシュ、データ・キャッシ
ュ、バス・インタフェース・ユニット、及び演算論理ユ
ニットとを含む複数の同一のプロセッサと、前記基板上
に形成され、かつ前記複数のプロセッサの対応する1つ
と操作により関連付けられる複数のインデクス・レジス
タと、前記基板上に形成され、かつ前記インデクス・レ
ジスタの機能を制御するデータを受信しかつ保持するべ
く前記インデクス・レジスタの対応する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)参考文献 特開 平7−93266(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06T 1/20 G06T 11/00

Claims (44)

    (57)【特許請求の範囲】
  1. 【請求項1】集積回路デバイスであって、 基板と、 前記基板上に形成され、かつ各々が命令キャッシュ、デ
    ータ・キャッシュ、バス・インタフェース・ユニット、
    及び演算論理ユニットとを含む複数の同一のプロセッサ
    と、 前記基板上に形成され、かつ前記複数のプロセッサの対
    応する1つと操作により関連付けられる複数のインデク
    ス・レジスタと、 前記基板上に形成され、かつ前記インデクス・レジスタ
    の機能を制御するデータを受信しかつ保持するべく前記
    インデクス・レジスタの対応する1つと操作により関連
    付けられる複数のインデクス制御レジスタと、 前記基板上に形成され、かつ前記複数のプロセッサ間で
    データ・ビット・ストリームを転送するべく該複数のプ
    ロセッサを相互接続するライン・バスと、 前記基板上に形成され、かつ入力信号ストリームを受信
    するべく前記ライン・バスへ接続されるビデオ入力イン
    タフェース・ユニットと、 前記基板上に形成され、かつ前記複数のプロセッサによ
    る処理で決定された出力ビデオ信号ストリームを前記集
    積回路デバイスから配信するべく前記ライン・バスへ接
    続されるビデオ出力インタフェース・ユニットと、 前記基板上に形成され、かつ前記複数のプロセッサの機
    能を制御するために有効な制御信号をホスト・プロセッ
    サと交換するべく前記ライン・バスへ接続されるホスト
    ・インタフェース・ユニットと、 前記基板上に形成され、かつ前記ライン・バス上を転送
    されるデータ・ビット・ストリームとは別に前記ホスト
    ・インタフェース・ユニットと前記複数のプロセッサと
    が制御信号を交換するべく該ホスト・インタフェース・
    ユニットと該複数のプロセッサとを相互接続する制御バ
    スと、 前記基板上に形成され、かつ前記複数のプロセッサによ
    り処理された及び処理されるべきデータ・ビット・スト
    リームをメモリ素子と交換するべく前記ライン・バスへ
    接続されるメモリ・インタフェース・ユニットとを有す
    る集積回路デバイス。
  2. 【請求項2】前記複数のプロセッサの各々がロード/記
    憶ユニットを具備しており、前記インデクス制御レジス
    タの各々が、その関連するロード/記憶ユニットによる
    メモリ・アクセス毎にその関連する前記インデクス・レ
    ジスタが変更されるか否かを示すデータ・ビットを受信
    しかつ保持する請求項1に記載の集積回路デバイス。
  3. 【請求項3】前記複数のプロセッサの各々がロード/記
    憶ユニットを具備しており、前記インデクス制御レジス
    タの各々が、その関連するロード/記憶ユニットによる
    メモリへのアクセスの際にその関連する前記インデクス
    ・レジスタが増分されるべきか又は減分されるべきかを
    示すデータ・ビットを受信しかつ保持する請求項1に記
    載の集積回路デバイス。
  4. 【請求項4】前記複数のプロセッサの各々がロード/記
    憶ユニットを具備しており、前記インデクス制御レジス
    タの各々が、その関連するロード/記憶ユニットによる
    メモリへのアクセスの前にその関連する前記インデクス
    ・レジスタが変更されるべきか又は該メモリへのアクセ
    スの後に変更されるべきかを示すデータ・ビットを受信
    しかつ保持する請求項1に記載の集積回路デバイス。
  5. 【請求項5】前記複数のプロセッサの各々がロード/記
    憶ユニットを具備しており、前記インデクス制御レジス
    タの各々が、その関連する前記インデクス・レジスタが
    スタック・ポインタをエミュレートするべきか否かを示
    すデータ・ビットを受信しかつ保持する請求項1に記載
    の集積回路デバイス。
  6. 【請求項6】前記基板上に形成される複数のインデクス
    ・カウント・レジスタを有しかつ該インデクス・カウン
    ト・レジスタの各々が前記インデクス・レジスタの対応
    する1つに操作により関連付けられ、さらに前記複数の
    プロセッサの各々がロード/記憶ユニットを具備してお
    り、前記インデクス制御レジスタの各々が、その関連す
    るインデクス・レジスタのアクセスに応答してその関連
    するインデクス・カウント・レジスタが自動的に減分さ
    れるべきか否かを示すデータ・ビットを受信しかつ保持
    する請求項1に記載の集積回路デバイス。
  7. 【請求項7】前記インデクス制御レジスタの各々が、そ
    の関連するインデクス・レジスタが循環バッファとして
    機能するべきか否かを示す複数のデータ・ビットを受信
    しかつ保持する請求項1に記載の集積回路デバイス。
  8. 【請求項8】前記複数のプロセッサの各々がロード/記
    憶ユニットを具備しており、前記インデクス制御レジス
    タの各々が、前記ロード/記憶ユニットのデータ変換作
    用を示す複数のデータ・ビットを受信しかつ保持する請
    求項1に記載の集積回路デバイス。
  9. 【請求項9】前記インデクス制御レジスタの各々が、そ
    の関連する前記インデクス・レジスタのアドレス・モー
    ドを示す複数のデータ・ビットを受信しかつ保持する請
    求項1に記載の集積回路デバイス。
  10. 【請求項10】前記インデクス制御レジスタの各々が、
    前記ロード/記憶ユニットによるメモリへのアクセスの
    際にその関連する前記インデクス・レジスタが増分され
    るべきか又は減分されるべきかを示すデータ・ビットを
    受信しかつ保持する請求項2に記載の集積回路デバイ
    ス。
  11. 【請求項11】前記インデクス制御レジスタの各々が、
    その関連するロード/記憶ユニットによるメモリへのア
    クセスの前にその関連する前記インデクス・レジスタが
    変更されるべきか又は該メモリへのアクセスの後に変更
    されるべきかを示すデータ・ビットを受信しかつ保持す
    る請求項2に記載の集積回路デバイス。
  12. 【請求項12】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタがスタック・ポ
    インタをエミュレートするべきか否かを示すデータ・ビ
    ットを受信しかつ保持する請求項2に記載の集積回路デ
    バイス。
  13. 【請求項13】前記基板上に形成される複数のインデク
    ス・カウント・レジスタを有しかつ該インデクス・カウ
    ント・レジスタの各々が前記インデクス・レジスタの対
    応する1つに操作により関連付けられ、前記インデクス
    制御レジスタの各々が、その関連するインデクス・レジ
    スタのアクセスに応答してその関連するインデクス・カ
    ウント・レジスタが自動的に減分されるべきか否かを示
    すデータ・ビットを受信しかつ保持する請求項2に記載
    の集積回路デバイス。
  14. 【請求項14】前記インデクス制御レジスタの各々が、
    その関連するインデクス・レジスタが循環バッファとし
    て機能するべきか否かを示す複数のデータ・ビットを受
    信しかつ保持する請求項2に記載の集積回路デバイス。
  15. 【請求項15】前記インデクス制御レジスタの各々が、
    前記ロード/記憶ユニットのデータ変換作用を示す複数
    のデータ・ビットを受信しかつ保持する請求項2に記載
    の集積回路デバイス。
  16. 【請求項16】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタのアドレス・モ
    ードを示す複数のデータ・ビットを受信しかつ保持する
    請求項2に記載の集積回路デバイス。
  17. 【請求項17】前記インデクス制御レジスタの各々が、
    その関連するロード/記憶ユニットによるメモリへのア
    クセスの前にその関連する前記インデクス・レジスタが
    変更されるべきか又は該メモリへのアクセスの後に変更
    されるべきかを示すデータ・ビットを受信しかつ保持す
    る請求項10に記載の集積回路デバイス。
  18. 【請求項18】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタがスタック・ポ
    インタをエミュレートするべきか否かを示すデータ・ビ
    ットを受信しかつ保持する請求項10に記載の集積回路
    デバイス。
  19. 【請求項19】前記基板上に形成される複数のインデク
    ス・カウント・レジスタを有しかつ該インデクス・カウ
    ント・レジスタの各々が前記インデクス・レジスタの対
    応する1つに操作により関連付けられ、前記インデクス
    制御レジスタの各々が、その関連するインデクス・レジ
    スタのアクセスに応答してその関連するインデクス・カ
    ウント・レジスタが自動的に減分されるべきか否かを示
    すデータ・ビットを受信しかつ保持する請求項10に記
    載の集積回路デバイス。
  20. 【請求項20】前記インデクス制御レジスタの各々が、
    その関連するインデクス・レジスタが循環バッファとし
    て機能するべきか否かを示す複数のデータ・ビットを受
    信しかつ保持する請求項10に記載の集積回路デバイ
    ス。
  21. 【請求項21】前記インデクス制御レジスタの各々が、
    前記ロード/記憶ユニットのデータ変換作用を示す複数
    のデータ・ビットを受信しかつ保持する請求項10に記
    載の集積回路デバイス。
  22. 【請求項22】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタのアドレス・モ
    ードを示す複数のデータ・ビットを受信しかつ保持する
    請求項10に記載の集積回路デバイス。
  23. 【請求項23】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタがスタック・ポ
    インタをエミュレートするべきか否かを示すデータ・ビ
    ットを受信しかつ保持する請求項17に記載の集積回路
    デバイス。
  24. 【請求項24】前記基板上に形成される複数のインデク
    ス・カウント・レジスタを有しかつ該インデクス・カウ
    ント・レジスタの各々が前記インデクス・レジスタの対
    応する1つに操作により関連付けられ、前記インデクス
    制御レジスタの各々が、その関連するインデクス・レジ
    スタのアクセスに応答してその関連するインデクス・カ
    ウント・レジスタが自動的に減分されるべきか否かを示
    すデータ・ビットを受信しかつ保持する請求項17に記
    載の集積回路デバイス。
  25. 【請求項25】前記インデクス制御レジスタの各々が、
    その関連するインデクス・レジスタが循環バッファとし
    て機能するべきか否かを示す複数のデータ・ビットを受
    信しかつ保持する請求項17に記載の集積回路デバイ
    ス。
  26. 【請求項26】前記インデクス制御レジスタの各々が、
    前記ロード/記憶ユニットのデータ変換作用を示す複数
    のデータ・ビットを受信しかつ保持する請求項17に記
    載の集積回路デバイス。
  27. 【請求項27】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタのアドレス・モ
    ードを示す複数のデータ・ビットを受信しかつ保持する
    請求項17に記載の集積回路デバイス。
  28. 【請求項28】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタのアドレス・モ
    ードを示す複数のデータ・ビットを受信しかつ保持する
    請求項17に記載の集積回路デバイス。
  29. 【請求項29】前記基板上に形成される複数のインデク
    ス・カウント・レジスタを有しかつ該インデクス・カウ
    ント・レジスタの各々が前記インデクス・レジスタの対
    応する1つに操作により関連付けられ、前記インデクス
    制御レジスタの各々が、その関連するインデクス・レジ
    スタのアクセスに応答してその関連するインデクス・カ
    ウント・レジスタが自動的に減分されるべきか否かを示
    すデータ・ビットを受信しかつ保持する請求項23に記
    載の集積回路デバイス。
  30. 【請求項30】前記インデクス制御レジスタの各々が、
    その関連するインデクス・レジスタが循環バッファとし
    て機能するべきか否かを示す複数のデータ・ビットを受
    信しかつ保持する請求項23に記載の集積回路デバイ
    ス。
  31. 【請求項31】前記インデクス制御レジスタの各々が、
    前記ロード/記憶ユニットのデータ変換作用を示す複数
    のデータ・ビットを受信しかつ保持する請求項23に記
    載の集積回路デバイス。
  32. 【請求項32】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタのアドレス・モ
    ードを示す複数のデータ・ビットを受信しかつ保持する
    請求項23に記載の集積回路デバイス。
  33. 【請求項33】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタのアドレス・モ
    ードを示す複数のデータ・ビットを受信しかつ保持する
    請求項23に記載の集積回路デバイス。
  34. 【請求項34】前記インデクス制御レジスタの各々が、
    その関連するインデクス・レジスタが循環バッファとし
    て機能するべきか否かを示す複数のデータ・ビットを受
    信しかつ保持する請求項29に記載の集積回路デバイ
    ス。
  35. 【請求項35】前記インデクス制御レジスタの各々が、
    前記ロード/記憶ユニットのデータ変換作用を示す複数
    のデータ・ビットを受信しかつ保持する請求項29に記
    載の集積回路デバイス。
  36. 【請求項36】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタのアドレス・モ
    ードを示す複数のデータ・ビットを受信しかつ保持する
    請求項29に記載の集積回路デバイス。
  37. 【請求項37】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタのアドレス・モ
    ードを示す複数のデータ・ビットを受信しかつ保持する
    請求項29に記載の集積回路デバイス。
  38. 【請求項38】前記インデクス制御レジスタの各々が、
    前記ロード/記憶ユニットのデータ変換作用を示す複数
    のデータ・ビットを受信しかつ保持する請求項34に記
    載の集積回路デバイス。
  39. 【請求項39】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタのアドレス・モ
    ードを示す複数のデータ・ビットを受信しかつ保持する
    請求項34に記載の集積回路デバイス。
  40. 【請求項40】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタのアドレス・モ
    ードを示す複数のデータ・ビットを受信しかつ保持する
    請求項34に記載の集積回路デバイス。
  41. 【請求項41】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタのアドレス・モ
    ードを示す複数のデータ・ビットを受信しかつ保持する
    請求項38に記載の集積回路デバイス。
  42. 【請求項42】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタのアドレス・モ
    ードを示す複数のデータ・ビットを受信しかつ保持する
    請求項38に記載の集積回路デバイス。
  43. 【請求項43】前記インデクス制御レジスタの各々が、
    その関連する前記インデクス・レジスタのアドレス・モ
    ードを示す複数のデータ・ビットを受信しかつ保持する
    請求項42に記載の集積回路デバイス。
  44. 【請求項44】デジタル・データを処理しかつビデオ表
    示信号を発生するシステムであって、 中央演算処理ユニットと、 デジタル・データを受信し記憶しかつ配信するシステム
    ・ランダム・アクセス・メモリと、 デジタル・データ信号を転送するべく前記中央演算処理
    ユニットと前記システム・ランダム・アクセス・メモリ
    とを相互接続するバスと、 前記バスへ操作により接続されることにより前記中央演
    算処理ユニット及び前記システム・ランダム・アクセス
    ・メモリへ接続され、該中央演算処理ユニットの制御の
    下に前記ビデオ表示信号を処理するビデオ・プロセッサ
    集積回路デバイスとを有し、該ビデオ・プロセッサ集積
    回路デバイスが、 基板と、 前記基板上に形成され、かつ各々が命令キャッシュ、デ
    ータ・キャッシュ、バス・インタフェース・ユニット、
    及び演算論理ユニットとを含む複数の同一のプロセッサ
    と、 前記基板上に形成され、かつ前記複数のプロセッサの対
    応する1つと操作により関連付けられる複数のインデク
    ス・レジスタと、 前記基板上に形成され、かつ前記インデクス・レジスタ
    の機能を制御するデータを受信しかつ保持するべく前記
    インデクス・レジスタの対応する1つと操作により関連
    付けられる複数のインデクス制御レジスタと、 前記基板上に形成され、かつ前記複数のプロセッサ間で
    データ・ビット・ストリームを転送するべく該複数のプ
    ロセッサを相互接続するライン・バスと、 前記基板上に形成され、かつ入力信号ストリームを受信
    するべく前記ライン・バスへ接続されるビデオ入力イン
    タフェース・ユニットと、 前記基板上に形成され、かつ前記複数のプロセッサによ
    る処理で決定された出力ビデオ信号ストリームを前記集
    積回路デバイスから配信するべく前記ライン・バスへ接
    続されるビデオ出力インタフェース・ユニットと、 前記基板上に形成され、かつ前記複数のプロセッサの機
    能を制御するために有効な制御信号をホスト・プロセッ
    サと交換するべく前記ライン・バスへ接続されるホスト
    ・インタフェース・ユニットと、 前記基板上に形成され、かつ前記ライン・バス上を転送
    されるデータ・ビット・ストリームとは別に前記ホスト
    ・インタフェース・ユニットと前記複数のプロセッサと
    が制御信号を交換するべく該ホスト・インタフェース・
    ユニットと該複数のプロセッサとを相互接続する制御バ
    スと、 前記基板上に形成され、かつ前記複数のプロセッサによ
    り処理された及び処理されるべきデータ・ビット・スト
    リームをメモリ素子と交換するべく前記ライン・バスへ
    接続されるメモリ・インタフェース・ユニットとを有す
    るシステム。
JP8124908A 1995-06-07 1996-05-20 デジタル・データ及びビデオ信号の処理デバイス及びシステム Expired - Lifetime JP3026756B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US47220895A 1995-06-07 1995-06-07
US472208 1995-06-07

Publications (2)

Publication Number Publication Date
JPH0954832A JPH0954832A (ja) 1997-02-25
JP3026756B2 true JP3026756B2 (ja) 2000-03-27

Family

ID=23874584

Family Applications (1)

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

Country Status (5)

Country Link
US (1) US5875463A (ja)
EP (1) EP0747872B1 (ja)
JP (1) JP3026756B2 (ja)
KR (1) KR100246067B1 (ja)
DE (1) DE69601599T2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118462A (en) * 1997-07-01 2000-09-12 Memtrax Llc Computer system controller having internal memory and external memory control
GB2332344A (en) 1997-12-09 1999-06-16 Sony Uk Ltd Set top box integrated circuit
US6347363B1 (en) * 1998-02-17 2002-02-12 International Business Machines Corporation Merged vertical cache controller mechanism with combined cache controller and snoop queries for in-line caches
FR2777370B1 (fr) * 1998-04-09 2000-06-23 Sgs Thomson Microelectronics Architecture de dsp optimisee pour les acces memoire
TW360798B (en) * 1998-05-15 1999-06-11 Chung Shan Inst Of Science Monolithic radar signal processing chip
US20030142107A1 (en) * 1999-07-16 2003-07-31 Intel Corporation Pixel engine
US6873658B2 (en) * 1999-12-20 2005-03-29 Texas Instruments Incorporated Digital still camera system and method
US7227589B1 (en) * 1999-12-22 2007-06-05 Intel Corporation Method and apparatus for video decoding on a multiprocessor system
US6847365B1 (en) * 2000-01-03 2005-01-25 Genesis Microchip Inc. Systems and methods for efficient processing of multimedia data
US6715089B2 (en) * 2001-01-22 2004-03-30 Ati International Srl Reducing power consumption by estimating engine load and reducing engine clock speed
US6901422B1 (en) * 2001-03-21 2005-05-31 Apple Computer, Inc. Matrix multiplication in a vector processing system
US7143264B2 (en) * 2002-10-10 2006-11-28 Intel Corporation Apparatus and method for performing data access in accordance with memory access patterns
US7034776B1 (en) 2003-04-08 2006-04-25 Microsoft Corporation Video division detection methods and systems
US7098868B2 (en) * 2003-04-08 2006-08-29 Microsoft Corporation Display source divider
US7737985B2 (en) * 2006-11-09 2010-06-15 Qualcomm Incorporated Pixel cache for 3D graphics circuitry
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8639858B2 (en) 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US8621112B2 (en) 2010-06-23 2013-12-31 International Business Machines Corporation Discovery by operating system of information relating to adapter functions accessible to the operating system
US8566480B2 (en) 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8549182B2 (en) 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8650337B2 (en) * 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8650335B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
KR101104447B1 (ko) * 2011-01-31 2012-01-12 고려대학교 산학협력단 자궁외임신 치료 카테터, 카테터 가이드 및 이들을 구비하는 자궁외임신 치료 카테터 유니트
GB2552153B (en) * 2016-07-08 2019-07-24 Advanced Risc Mach Ltd An apparatus and method for performing a rearrangement operation

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4606066A (en) * 1982-09-09 1986-08-12 Hitachi, Ltd. Programmable image 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
US5058065A (en) * 1990-02-26 1991-10-15 Eastman Kodak Company Memory based line-delay architecture
US5390304A (en) * 1990-09-28 1995-02-14 Texas Instruments, Incorporated Method and apparatus for processing block instructions in a data processor
US5479166A (en) * 1993-11-30 1995-12-26 Texas Instruments Incorporated Huffman decoding method, circuit and system employing conditional subtraction for conversion of negative numbers
US5394519A (en) * 1994-01-03 1995-02-28 International Business Machines Corp. Data processing apparatus for high resolution display in multiple virtual dos applications

Also Published As

Publication number Publication date
DE69601599D1 (de) 1999-04-08
DE69601599T2 (de) 1999-10-14
JPH0954832A (ja) 1997-02-25
KR100246067B1 (ko) 2000-03-15
EP0747872B1 (en) 1999-03-03
EP0747872A1 (en) 1996-12-11
KR970002590A (ko) 1997-01-28
US5875463A (en) 1999-02-23

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) デジタル・データ及びビデオ信号の処理デバイス及びシステム
JP3084229B2 (ja) デジタル・データ及びビデオ信号の処理デバイス及びシステム
US5560030A (en) Transfer processor with transparency
US6185629B1 (en) Data transfer controller employing differing memory interface protocols dependent upon external input at predetermined time
US5487146A (en) Plural memory access address generation employing guide table entries forming linked list
US5524265A (en) Architecture of transfer processor
US6560674B1 (en) Data cache system
JP3096431B2 (ja) コンピュータシステム、グラフィックスプロセッサ、インストラクションプリフェッチユニットおよびオペコードインストラクションをプリフェッチする方法
US7272670B2 (en) Integrated multimedia system
US6434649B1 (en) Data streamer
US6076139A (en) Multimedia computer architecture with multi-channel concurrent memory access
US5359715A (en) Architectures for computer systems having multiple processors, multiple system buses and multiple I/O buses interfaced via multiple ported interfaces
EP0875855B1 (en) Graphics processing system
JP4426099B2 (ja) 共有メモリを有するマルチプロセッサ装置
US5784076A (en) Video processor implementing various data translations using control registers
US20020116595A1 (en) Digital signal processor integrated circuit
US5724599A (en) Message passing and blast interrupt from processor
EP0671718B1 (en) Data processor for guided transfer line drawing
US5651127A (en) Guided transfers with variable stepping
US5493646A (en) Pixel block transfer with transparency
US5269005A (en) Method and apparatus for transferring data within a computer system
EP0671719B1 (en) Transfer processor with transparency