Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3524497B2 - 3次元グラフィックプロセッサ - Google Patents
[go: Go Back, main page]

JP3524497B2 - 3次元グラフィックプロセッサ - Google Patents

3次元グラフィックプロセッサ

Info

Publication number
JP3524497B2
JP3524497B2 JP2000576412A JP2000576412A JP3524497B2 JP 3524497 B2 JP3524497 B2 JP 3524497B2 JP 2000576412 A JP2000576412 A JP 2000576412A JP 2000576412 A JP2000576412 A JP 2000576412A JP 3524497 B2 JP3524497 B2 JP 3524497B2
Authority
JP
Japan
Prior art keywords
data
memory
buffer
bus
request
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
JP2000576412A
Other languages
English (en)
Other versions
JP2002527835A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2002527835A publication Critical patent/JP2002527835A/ja
Application granted granted Critical
Publication of JP3524497B2 publication Critical patent/JP3524497B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

【発明の詳細な説明】
【0001】(技術分野) 本発明は、種々のモジュールを備えたデータ処理システ
ムに関し、より詳しくは、3次元(3D)画像を処理す
るグラフィックモジュールに関する。
【0002】(背景技術) 近年、コンピュータハードウェアのコストが低下してい
るため、高品位3Dグラフィックスおよびアニメーショ
ンに対する要望が着実に増大している。3Dグラフィッ
クスアーキテクチャを実施する上での2つの重要な設計
的拘束はメモリの帯域幅およびシステムの待ち時間(la
tency)であり、第3ファクタはメモリコストである。
【0003】3Dグラフィックスシステムを実行する帯
域幅条件は、システムの複雑さに基いて定まる。一般
に、3Dグラフィックスシステムは、補間法、テクスチ
ャマッピングおよびテクスチャフィルタリングによるジ
オメトリ変換(geometry transformation)、ライティ
ング変換(lighting transformation)、シェーディン
グ(陰影付け)またはラスタライジング等のパイプライ
ン形アーキテクチャの多重モジュールを有している。
【0004】ジオメトリ変換は、3次元空間内の3次元
物体のモデルを2次元スクリーン空間内面に変換する方
法である。この方法は、三角形等の複数の多角形により
3次元モデルを形成する段階と、これらの多角形を2次
元空間内に変換する段階とを有している。
【0005】ライティング変換のジオメトリすなわちラ
イティングは、3次元モデルから2次元スクリーン空間
への光反射強度を表す方法である。3次元モデルは、複
数の光源および色からの光を受ける。色反射およびライ
ティングを数学的に表現する必要がある。反射強度は、
数ある中で、光源の距離、入射光の角度、光源の輝度お
よび色効果等のパラメータに基いて定まる。一般に、こ
の変換は、各三角形の3つのノードにおいてのみ達成さ
れ、各三角形内の画素において達成されるものではな
い。ひとたび、三角形および3つのノードでの三角形の
ライティングが2次元スクリーン空間(スペース)内に
定められたならば、三角形内の画素は、3つのノードが
境界条件として機能する補間法により定められる。この
補間技術によるこのシェーディングは、Guraughシェー
ディングとも呼ばれる。
【0006】テクスチャマッピング法は、3次元モデル
のテクスチャを表す機構を提供する。かくして、水平座
標(u)および垂直座標(v)と呼ばれる2つのテクスチ
ャ座標により、2次元空間内にテクスチャ空間が形成さ
れる。テクスチャ空間内の各画素はテクセル(texel)
と呼ばれる。各テクセルに関する情報は外部メモリに記
憶され、フェッチテクセルコマンドに応答して、対応三
角形のノードにマッピングされる。次に、テクセルカラ
ーが上記シェーディングとブレンドされて、各三角形の
ノードの最終カラーを発生する。各三角形内に画素の陰
を見出すのに、補間法によるシェーディングが再び用い
られる。
【0007】上記のように、3Dグラフィックス処理を
用いる慣用のマイクロプロセッサベースシステムは、帯
域幅制限を受けるものである。例えば、X-86のようなマ
イクロプロセッサは、PCIバスを介して3Dグラフィッ
クスチップに接続される。外部メモリは、3Dモデルに
関する情報を記憶する。マイクロプロセッサは、ジオメ
トリおよびライティングの計算を遂行し、かつこの結果
(この結果は、各三角形のノードに関する情報である)
を、PCIバスを介して3Dグラフィックスチップに転送
する。
【0008】3Dグラフィックスチップは、三角形の各
辺の傾斜を測定する傾斜計算機を有している。補間回路
(interpolator)測定した傾斜に基いて、三角形内の各
画素のシェーディングカラーを計算する。テクスチャリ
ングユニットは、測定した傾斜およびテクスチャマップ
に記憶された情報に基いて、三角形内の各画素のテクス
チャを測定する。
【0009】上記テクスチャマップを記憶するには、別
のフレームバッファメモリが使用される。テクスチャマ
ップは、画像に使用される構成要素のテクスチャに対応
する。また、フレームバッファメモリは、Zバッファと
呼ばれる別のバッファスペースを有している。Zバッフ
ァは、三角形の隠れた部分をディスプレイしないとき
に、この隠れた部分を除去するのに使用される。かくし
て、複数の物体がオーバーラップするとき、該物体のど
の縁部およびどの平面を見えるようにするかを決定し、
可視平面のみをディスプレイするには、見えない平面を
除去する必要がある。見えない平面を除去するには、慣
用的に、本願に援用するJ.D. FoleyおよびA. Vandam著
「対話形コンピュータグラフィックスの基礎(Fundamen
tals of Interactive Computer Graphics)」(Addisso
n Wesley、1982年)に開示されているような種々の
アルゴリズムが使用される。
【0010】Zバッファは、Z値、すなわちスクリーン上
にディスプレイする必要がある各画素の深さ値を記憶す
る。次に、三角形内のx、y座標値をもつ各点のZ値が計
算され、得られた計算結果はx、y座標値に対応するZ値
と比較される。或る点のZ値が記憶されたZ値より大きい
ときは、この点は隠れるものと考えられる。
【0011】かくして、上記マイクロプロセッサベース
システムは、マイクロプロセッサと3Dグラフィックス
チップとの間のグラフィックス処理機能を分割する。マ
イクロプロセッサは、ジオメトリおよびライティング段
階を遂行し、三角形データをPCIバスを介してグラフィ
ックスチップに供給する。一般的なグラフィックス処理
演算は、1M三角形/秒の処理を必要とする。各三角形
は、約50〜60バイトの情報を収容する。この情報
は、3つのノードの各々について、各ノードのx、y、z
座標、カラー値R、G、B、3つのノードの各々について
のテクスチャ値u、wを含んでいる。かくして、各座標お
よびテクスチャ値が4バイトの情報で表されるときに
は、各三角形の3つのノードが96(32×3)バイト
の情報により定められる。これは、マイクロプロセッサ
から3Dグラフィックスチップへの96Mバイト/秒の
データ転送に関する。かくして、PCIバスは、過酷なボ
トルネッキングを受ける。
【0012】3Dグラフィックス処理の実行における他
の帯域幅制限は、フレームバッファから3Dグラフィッ
クスチップへのデータ転送である。通常、一般的なモデ
ルのスペースは、各領域においてオーバーラップする2
〜4個の物体を含むことができる。かくして、シェーデ
ィングおよびテクスチャリングは、Zバッファリングに
関連して2〜4回行われる。一秒間のディスプレイ当た
り60フレームの場合には、フレームバッファと3Dグ
ラフィックスチップとの間のデータ転送速度は、Zバッ
ファリングを行わない場合に、約720Mバイト/秒
(96バイト/画素×1024画素/ライン×768ラ
イン×(シェーディング)×60フレーム/秒)であ
る。Zバッファリングを行う場合には、読取りおよび書
込み演算はZバッファリングに含まれるため、この転送
速度は、2倍(1440Mバイト/秒)の高速になる。
テクセルフェッチングはまた、360Mバイト/秒のデ
ータ転送速度を必要とする。このようなデータ転送速度
は、現在のメモリ技術では得られない。かくして、現在
の3Dグラフィックス構成はかなり低い解像度を使用し
ており、これではリアリスチックな画像は得られない。
【0013】かくして、マイクロプロセッサから3Dグ
ラフィックスチップへのデータ転送に関連する帯域幅遅
延(bandwidth delays)および外部メモリからマイクロ
プロセッサのローカルメモリへのデータ転送に関連する
帯域幅遅延を低減させる必要がある。
【0014】(発明の開示) 本発明の一実施形態によれば、3次元グラフィックス処
理を行う集積回路のマルチメディアプロセッサは、スク
リーン上にディスプレイされる3次元物体を形成する複
数の三角形に対応する三角形セットアップ情報を発生す
るように構成されたマイクロプロセッサ回路を有してい
る。スクリーンは所定数の画素をもつ複数のビンにより
形成される。データキャッシュは、セットアップ情報を
記憶するように構成された前記マイクロプロセッサに接
続されている。3次元三角形ラスタライザは、データキ
ャッシュに接続されておりかつ三角形へのビン割当てを
行ってスクリーン上の三角形と交差するすべてのビンを
識別するように構成されている。
【0015】本発明の他の実施形態によれば、データキ
ャッシュは、ビンの各々に関する情報を記憶するタイル
インデックスバッファを有している。3次元三角形ラス
タライザは、タイルデータ情報をローカルメモリユニッ
トに供給するビニングユニットを有している。3次元三
角形ラスタライザはまた、ビニングユニットにより形成
されるスパンラインと交差する各三角形に沿う交差画素
の座標を形成するスクリーン座標補間回路を有してい
る。ビニングユニットは、ビンの各三角形の識別に対応
するタイルデータ情報を供給する。ビニングユニット
は、各々の三角形を、該三角形の各々の中間頂点と交差
する水平線に沿う上方の小三角形と下方の小三角形とに
分割する。次に、ビニングユニットは、下記条件を用い
て、下方の三角形の各々が位置しているビンを識別す
る。
【0016】X=[min 2 (Cross XAC, Cross XAC + dxdy
AC), max 2 (Cross XAB, Cross XAB + dxdy AB)] ここで、Cross XACは、三角形ABCの辺ACと次のス
パンとの間の交点のx座標、Cross XABは、辺ABと次
のスパンとの間の交点のx座標、を用いて、上方の三角
形の各々が位置しているビンを識別する。
【0017】また、ビニングユニットは、下記条件、す
なわち、 X=[min 2 (Cross XAC, Cross XAC + dxdy AC), max 3
(Cross XAB, Bx, Cross XBC)] ここで、Cross XACは、三角形ABCの辺ACと次のス
パンとの間の交点のx座標、Cross XBCは、辺BCと次
のスパンとの間の交点のx座標メモリユニットは、タイ
ルインデックス情報を記憶するように構成されたデータ
キャッシュに接続されている。また、データストリーマ
は、メモリユニットおよびデータを転送するように構成
されたデータキャッシュに接続されている。
【0018】(発明を実施するための最良の形態) 本発明の一実施形態によれば、マルチメディアプロセッ
サ100がFIG.1に示されているが、本発明の範囲
は該マルチメディアプロセッサ100に限定されるもの
ではない。マルチメディアプロセッサ100は、並行演
算を取り扱う、すべてプログラム可能な単一チップであ
る。これらの演算として、グラフィックス機能、オーデ
ィオ機能、ビデオ機能、通信機能、ネットワーク機能お
よび他のマルチメディア機能の高速化がある。プロセッ
サ100のすべての主構成要素は1つのチップセット上
に配置されるため、より詳細に後述するように、このシ
ステムのスループットは、慣用システムのスループット
に比べて著しく優れている。
【0019】マルチメディアプロセッサ100は、ホス
ト型環境およびホストレス型環境の両方に使用できる超
長命令語(very-long instruction word: VLIW)を有し
ている。この状況では、ホスト型環境とは、マルチメデ
ィアプロセッサ100がINTEL(登録商標)X-86のよう
な別のマイクロプロセッサに接続される環境をいい、ホ
ストレス環境とは、マルチメディアプロセッサ100が
単独モジュールとして機能する環境をいう。VLIWプロセ
ッサは、2つのクラスタすなわちCPU102、104を
備えた中央処理装置として示されている。これらの処理
装置102、104は、それぞれ、マルチメディアプロ
セッサ100が、本発明の一実施形態に従って単独チッ
プセットとして演算することを可能にする。
【0020】VLIWプロセッサの演算は、本願に援用する
John R. Ellis著「ブルドッグ:VLIWアーキテクチ
ャ用コンパイラ(Bulldog: a Compiler for VLIW Archi
tectures)」(The MIT Press、1986年)に記載さ
れており、非常に良く知られている。基本的には、VLIW
プロセッサは、プログラムの命令レベル並列性(instru
ction-level parallelism: ILP)を活用するのに適した
アーキテクチャを使用する。この構成は、1つ以上の基
本(原始)命令を一度に実行することを可能にする。こ
れらのプロセッサは、幾つかの原始命令を含んでいる超
長命令語を命令キャッシュから取り出して、命令を並列
的に実行する多機能ユニットを有している。このため、
原始命令から独立して一緒にグループ化された、並列的
に実行されるコードを発生する特殊コンパイラが使用さ
れる。スーパースケーラプロセッサとは異なり、VLIWプ
ロセッサは比較的簡単な制御論理を有する。なぜなら
ば、VLIWプロセッサは演算のいかなる動的スケジューリ
ングおよびリオーダリングも行わないからである。VLIW
プロセッサはRISCへの後継(successor)と見られてい
る。なぜならば、VLIWコンパイラは、以前のプロセッサ
のハードウェア構造内に埋め込まれた複雑さを引き継ぐ
からである。
【0021】VLIWアーキテクチャの命令セットは、簡単
な命令から構成される傾向がある。コンパイラは、多機
能ユニットがビジー(busy)に維持されるように、多く
の原始演算を単一の「命令語」に組み立てなくてはなら
ない。このためには、可用演算スロット(available op
eration slots)を満たすべく、コードシーケンスに充
分な命令レベル並列性(ILP)を必要とする。このよう
な並列性は、数ある中で、基本ブロックを推論的に横切
ってコードをスケジューリングし、ソフトウェアパイプ
ライニングし、かつ実行される演算数を減少させること
により、コンパイラにより暴露される。
【0022】VLIWプロセッサ102の出力ポートは、デ
ータキャッシュ108に接続されている。同様に、VLIW
プロセッサ104の出力ポートは命令キャッシュ110
に接続されている。本発明の一実施形態によると、デー
タキャッシュ108および命令キャッシュ110の出力
ポートは、次に、データ転送スイッチ112の入力ポー
トに接続されている。また、マルチメディアプロセッサ
100には、より詳細に後述する3次元グラフィック処
理を取り扱う固定機能ユニット(fixed function uni
t)106が配置されている。固定機能ユニット106
の出力ポートは、FIG.1に示すように、データ転送
スイッチ112の入力ポートに接続されている。固定機
能ユニット106はまた、データキャッシュ108の入
力ポートにも接続されている。データキャッシュと関連
する固定機能ユニットの構成および演算は、FIG.2
0〜FIG.26を参照してより詳細に説明する。本発
明によるデータキャッシュ108の構成および演算は、
FIG.17およびFIG.19を参照して以下に詳述
する。
【0023】FIG.1Aに示すように、マルチメディ
アプロセッサ100のすべての構成要素はデータ転送ス
イッチに接続されている。このため、メモリコントロー
ラ124の種々のポートがデータ転送スイッチ112に
接続されている。メモリコントローラ124は、SDRAM
128のような外部メモリの演算を制御する。データ転
送スイッチ112はまた、データストリーマ122に接
続されている。より詳細に後述するように、データスト
リーマ122は、マルチメディアプロセッサ100内で
バッファ型データ移動(buffered data movements)を
行う。データストリーマ122は更に、帯域幅条件を変
化させるメモリデバイスすなわち入力/出力(I/O)デ
バイス間のデータ転送をサポートする。本発明の一実施
形態によれば、データストリーマ122により取り扱わ
れるメモリデバイスは、アドレスできるシステム内の任
意の物理的メモリ、例えば外部SDRAM128、データキ
ャッシュ108、および固定機能ユニット106内に配
置されるメモリ空間を有する。
【0024】また、データストリーマ122は、FI
G.1Cを参照してより詳細に後述するように、マルチ
メディアプロセッサ100がPCIバスを介してホストプ
ロセッサに接続される状況におけるホストメモリへのメ
モリ転送を取り扱う。このため、マルチメディアプロセ
ッサ100はまた、データ転送スイッチ112に接続さ
れるポートを備えたPCI/AGPインタフェース130を有
している。PCI/AGPインタフェース130は、マルチメ
ディアプロセッサ100が、本願に援用するそれぞれ、
PCI Architecture specification Rev. 2.1(PCI Speci
al Interest Group発行)およびAGP Architecture Spec
ification Rev. 1.0として知られている標準プロトコル
を用いた対応PCIバスおよびAGPバスと通信することを可
能にする。
【0025】マルチメディアプロセッサ100は、イン
タフェースユニット130を介してPCIバスまたはAGP
(Accelerated Graphics Port: 加速型グラフィックス
ポート)バスに接続されると、マスタデバイスまたはス
レーブデバイスとして機能できる。2つのバスは互いに
独立してマルチメディアプロセッサ100に接続できる
ため、マルチメディアプロセッサ100は、一方のチャ
ネルでバスマスタデバイスとして演算し、かつ他方のチ
ャネルでスレーブデバイスとして演算できる。このた
め、マルチメディアプロセッサ100は、該プロセッサ
が、ホストシステムの観点からスレーブデバイスとして
演算するときは、多機能PCI/AGPデバイスとして考える
ことができる。
【0026】データストリーマ122はまた、DMA(dir
ect memory access: 直接メモリアクセス)コントロー
ラ138を介して入力/出力(I/O)バス132に接続
されている。I/Oバス132には、複数のI/Oデバイスコ
ントローラ134が接続されている。本発明の一実施形
態によれば、I/Oデバイスコントローラ134の出力ポ
ートは、多ポートマルチプレクサ(versa port multipl
exer)136の入力ポートに接続されている。
【0027】プログラム可能な入力/出力コントローラ
(programmable input/output controller: PI/OC)1
26の幾つかのポートがデータ転送スイッチ112に接
続されており、他のポートがI/Oバス132に接続され
ている。
【0028】本発明の一実施形態によれば、I/Oデバイ
スコントローラ134は、協働してインタフェースユニ
ット202を形成し、該インタフェースユニット202
は、マルチメディアプロセッサ100と外界とのインタ
フェースを形成するように構成されている。FIG.1
Bに関連してより詳細に説明するように、マルチメディ
アプロセッサ100は、任意の時点で動作させられるI/
Oデバイスの数に基づいて、種々の形態に構成できる。
【0029】FIG.1Aに示すように、データ転送ス
イッチ112は、プロセッサメモリバス(processor me
mory bus: PMB)114を有し、該プロセッサメモリバ
ス114は、固定機能ユニット106、データキャッシ
ュ108、命令キャッシュ110およびデータストリー
マ122からアドレス情報およびデータ情報を受けるよ
うに構成されている。
【0030】データ転送スイッチ112はまた、内部メ
モリバス(internal memory bus: IMB)120を有し、
該内部メモリバス120は、メモリコントローラ12
4、データストリーマ122、プログラム可能な入力/
出力(I/O)コントローラ126およびPCI/AGPコントロ
ーラ130からのアドレス情報およびデータ情報を受け
るように構成されている。
【0031】データ転送スイッチ112はまた、リクエ
ストバス118を有し、該リクエストバス118は、デ
ータ転送スイッチに接続されたマルチメディアプロセッ
サ100のすべての構成要素からのリクエスト信号を受
けるように構成されている。
【0032】データ転送スイッチ112はまた、切換可
能なトランシーバ116を有し、該トランシーバ116
は、プロセッサメモリバス(PMB)114と内部メモリ
バス(IMB)120との間でデータ接続を行うように構
成されている。更に、データ転送スイッチ112は、そ
れぞれ3つのバスアービタユニット140、142、1
44を有している。かくして、詳細に後述するシステム
ニーズに基づいて、リクエストバスおよびデータバスに
ついての別のバス仲裁(bus arbitration)が取り扱わ
れる。また、FIG.1Aに示すように、マルチメディ
アプロセッサ100の異なる構成要素が、別のグループ
としてプロセッサメモリバス114または内部メモリバ
ス120に接続されるけれども、データストリーマ12
2は両メモリバスに直接接続される。本発明の一実施形
態によれば、プロセッサメモリバス114および内部メ
モリバス120はいずれも、それぞれ1600MBのピー
ク帯域幅に対し200MHZで作動する64ビットまたは
8バイトの幅である。
【0033】本発明の一実施形態によれば、参照番号1
40、142、144で示すような各バスアービタは、
同時に送られる多数のリクエストのスケジューリングを
達成するため、4レベルの先入れ先出し(first-in-fir
st-out: FIFO)バッファを有している。一般に、割当て
られた優先レベルに基づいて、各リクエストがサービス
される。
【0034】データ転送スイッチ112に接続されるす
べての構成要素は、データ転送スイッチエージェントと
呼ばれる。また、演算の達成をリクエストする構成要素
は、この状況では、イニシエータまたはバスマスタと呼
ばれる。同様に、リクエストに応答する構成要素は、こ
の状況では、レスポンダまたはバススレーブと呼ばれ
る。特定機能についてのまたは特定時点でのイニシエー
タは、他の機能についてのまたは他の時点でのスレーブ
となることに留意されたい。また、より詳細に説明する
と、マルチメディアプロセッサ100内のすべてのデー
タは、1つまたはそれぞれ両データバス114、120
を用いて伝送される。
【0035】内部メモリバス(IMB)およびプロセッサ
メモリバス(PMB)の作動を支配するプロトコルを、以
下により詳細に説明する。本発明の一実施形態によれ
ば、リクエストバス114、118、120は、それぞ
れ、受け手アドレス(destination address)を表示す
るリクエストアドレスに適合する信号ラインを有してい
る。リクエストフェーズの間、リクエストを行う構成要
素はバスマスタであり、受け手アドレスに位置する構成
要素はバススレーブである。リクエストバスはまた、リ
クエストバイト読取り可能信号と、リクエストのイニシ
エータを識別するリクエストイニシエータ識別信号とを
有している。
【0036】データ転送フェーズの間、リクエストフェ
ーズの受け手アドレスはバスマスタとなり、かつリクエ
ストフェーズの間に開始する構成要素はバススレーブと
なる。バスはまた、データ転送フェーズの間にバススレ
ーブによりユニークに発生されるトランザクション識別
ID信号に適合するラインを有している。
【0037】バスの付加ラインは、データ転送サイズを
あてがうので、オリジネータおよび受け手側端点がトラ
ックを2つのユニット間の転送のサイズに維持できる。
また、バスは、処理されるコマンドの形式に適合する信
号ラインを有する。
【0038】マルチプレクサに関連するインタフェース
ユニット202の演算を、FIG.1Bに関連して以下
により詳細に説明する。
【0039】インタフェースユニットおよびマルチプレ
クサ マルチメディアプロセッサ100は、最小のホストへの
負荷および高いメディア品質により、スタンドアロンユ
ニットとしてまたはパソコン上で、並行マルチメディア
機能およびI/O機能を遂行することを可能にする。マル
チプレクサ136は、マルチメディアプロセッサ100
がブート(boot)されるとソフトウェア構成できるI/O
ピンセットを与える。これは、I/O機能をフレキシブル
にし、かつソフトウェアをアップグレードする。I/Oピ
ンセットの定義は、起動されているI/Oデバイスコント
ローラ134に基づいて定められる。
【0040】かくして、本発明の一実施形態によれば、
マルチメディアプロセッサ100で構成されたI/Oイン
タフェースユニットは、例えば、ソフトウェアアップグ
レードをロードし、かつリブートすることにより変更で
きる。同様に、新しい規格および特徴を利用できるよう
になると、ソフトウェアアップグレードが、ハードウェ
アアップグレードにとって代わることができる。
【0041】I/Oインタフェースユニットは、NTSC/PAL
エンコーダおよびデコーダデバイスコントローラ224
を有し、該コントローラ224はI/Oバス132および
マルチプレクサ136に接続されている。ISDN GCIコン
トローラ220もI/Oバス132およびマルチプレクサ
136に接続されている。同様に、T1ユニット210も
I/Oバス132およびマルチプレクサ136に接続され
ている。レガシーオーディオ信号インタフェースユニッ
ト218は、I/Oバス132およびマルチプレクサ13
6に接続され、かつレガシーと呼ばれるオーディオプロ
トコルに従ってオーディオ信号インタフェースを形成す
るように構成されている。オーディオコーデック(audi
o codec: AC)ユニット214は、オーディオコーデッ
クインタフェース信号を発生するように構成されてい
る。オーディオコーデックユニット214は、I/Oバス
132およびマルチプレクサ136に接続されている。
ユニバーサル直列バス(universal serial bus: USB)
ユニット222も、I/Oバスおよびマルチプレクサ13
6に接続されている。USBユニット222は、マルチメ
ディアプロセッサ100が、例えばキーボードデバイ
ス、ジョイスティックおよびマウスデバイスからの制御
信号を受けるためのUSBバスと通信することを可能にす
る。同様に、IEC958インタフェース208もI/Oバス1
32およびマルチプレクサ136に接続されている。
【0042】I2S(Inter-IC Sound)インタフェース2
12は、ホームシアタ用のD/Aコンバータ(図示せず)
を駆動するように構成されている。I2Sインタフェース
は、一般に、データとクロック信号とを結合して直列デ
ータ流を作る必要があるCDプレーヤに使用されている。
このインタフェースとして、別々のマスタクロック、ワ
ードクロック、ビットクロック、データおよびオプショ
ナル強調フラグがある。
【0043】I2Cバスインタフェースユニット216
は、マルチメディアプロセッサ100と外部オンボード
デバイスとの間の通信を行うように構成されている。II
C規格の演算は、本願に援用するPhillips Semiconducto
rs社の刊行物「I2Cバスおよびその使用法(The I2C-bus
and How to Use it)(含:仕様書)」(1995年4
月)に開示されており、良く知られている。
【0044】バスインタフェースユニット216は、デ
ィスプレイデータチャネルインタフェース(DDC)規格
として知られている通信プロトコルに従って演算する。
DDC規格は、コンピュータディスプレイとホストシステ
ムとの間の通信チャネルを形成する。このチャネルは、
形状情報の搬送、ディスプレイの最適使用およびディス
プレイ制御情報の搬送に使用できる。また、このチャネ
ルは、ディスプレイを介してホストに接続されるアクセ
スバス周辺機器用のデータチャネルとしても使用でき
る。ディスプレイデータチャネル規格は、ディスプレイ
データチャネル仕様のためのVESA(Video Electronics
Standard Association)に従ってデータを供給すべく構
成されたハードウェア構成を必要とする。
【0045】上記各I/Oデバイスコントローラの機能
を、以下に更に詳細に説明する。
【0046】RAMDACまたはSVGA DACインタフェース20
4は、外部RAMDACへの直接接続を行う。このインタフェ
ース204はまた、CRTコントローラおよびクロックシ
ンセサイザを有している。RAMDACは、I2C直列バスを介
してプログラムされる。
【0047】NTSCデコーダ/エンコーダコントローラデ
バイス224は、CCIR601/656規格に従ってNTSCビデオ
信号に直接インタフェースし、統合された単独構成を形
成する。これにより、マルチメディアプロセッサ100
が、直接、高品位NTSCまたはPALビデオ信号を発生でき
るようになる。このインタフェースは、CCIR601規格に
より特定された解像度をサポートできる。プロセッサ1
02での進歩したビデオフィルタリングにより、プログ
レッシブ/インターレースおよびインターレース/プロ
グレッシブ出力を変換するときに、フリッカのない出力
が得られる。NTSCエンコーダは、I2C直列バスを介して
制御される。
【0048】同様に、NTSCデコーダコントローラは、1
3.5MHZ画素速度で16YUVまで発生できるCCIR601/65
6フォーマット化NTSCビデオ信号への直接接続を行う。
【0049】ISDN(Integrated Services Digital Netw
orks standard: 統合サービスデジタルネットワーク規
格)インタフェース220は、外部ISDN UまたはS/Tイ
ンタフェースデバイスを介してISDN BRI(basic rate i
nterface: 基本速度インタフェース)をサポートする5
ピンインタフェースを有している。ISDN規格は、汎用デ
ジタル電話網仕様を形成し、かつ1980年代の半ばか
ら存在している。このモジュールの機能性は直列通信コ
ントローラと同じ原理に基づいており、ISDN Uインタフ
ェースデバイスに接続するのにIDL2およびSCPインタフ
ェースを用いている。
【0050】T1インタフェース210は、T1直列または
並列インタフェースを介して、第三者のT1 CSU(channe
l service unit: チャネルサービスユニット)またはデ
ータサービスユニット(DSU)への直接接続を行ってい
る。CSU/DSUおよび直列/並列出力は、専用抵抗器を介
して構成できるソフトウェアである。別のユニットが、
信号およびデータ制御を取り扱う。一般に、チャネルサ
ービスユニット(CSU)はT1ネットワークから受けた波
形を再生し、ユーザにDSC-1インタフェースでのきれい
な信号を提供する。CSUはまた、送られたデータを再生
する。遠隔試験機能として、ネットワーク側から試験す
るループバックがある。また、データサービスユニット
(DSU)は、例えば特殊コーティングを用いてゼロを抑
制することにより顧客のデータがDSC-1インタフェース
のフォーマット条件に合致させる。DSUはまた、試験用
のローカルおよび遠隔ループバックを備えた端末を構成
する。
【0051】本発明の一実施形態による単一のマルチメ
ディアプロセッサは、V.34モデムデータトラフィックの
24チャネルまでを取り扱うように構成されており、V.
PCNL機能とV.34機能とを混合する。この特徴は、マルチ
メディアプロセッサ100を用いてモデム集信機を構成
することを可能にする。
【0052】レガシーオーディオユニット218は、レ
ガシーオーディオPro8ビットステレオ規格に従って構
成される。レガシーオーディオユニット218は、レジ
スタ通信演算(リセット、コマンド/ステータス、読取
りデータ/ステータス)、デジタル化された音声演算
(DMAおよびDirectモード)、およびプロフェッショナ
ルミキササポート(CT1 345、モジュールミキサ)を行
う。このユニット218の機能として、 8ビットモノラル/ステレオDMAスレーブモードプレー
/録音 Directモード用8ビットホストI/Oインタフェース リセット、コマンド/データ、コマンドステータス、読
取りデータおよび読取りステータスレジスタサポート プロフェッショナルミキササポート FMシンセサイザ(OPLII、IIIまたはIVアドレスデコーデ
ィング) MPU401 Generalサポート ジョイスティックインタフェースサポート ネイティブDOSモード用ソフトウェア形態サポート Windows DOS ボックスの資源用PnP(plug and play: プ
ラグおよびプレー)サポート がある。
【0053】PCI信号デコーダユニットは、マルチプレ
クサ136ポートを介してPCIレガシーオーディオ信号
の直接出力を行う。
【0054】AC Linkインタフェース214は、2方向
固定速度直列PCMデジタル流である5ピンデジタル直列
インタフェースである。AC Linkインタフェース214
は、多入力/出力オーディオ流並びにTDMフォーマット
を用いる制御レジスタアクセスを取り扱うことができ
る。インタフェースは、各オーディオフレームを、12
個の出ていくデータ流および12個の入ってくるデータ
流(各データ流は、20ビットサンプル解像度をもつ)
に分割する。インタフェース214として、固定48KS K
S/S DACおよびADCミキシング、およびアナログ処理があ
る。
【0055】トランスポートチャネルインタフェース
(TCI)206は、トランスポート層フォーマットの復
調チャネルデータを受け入れる。トランスポートチャネ
ルインタフェース(TCI)206は、衛星またはケーブ
ルからのパケットデータを同期化し、次に、バイトアラ
インドデータ(byte-aligned data)をアンパック(unp
ack)しかつDMAコントローラを介してマルチメディアプ
ロセッサ100メモリ内に入れる。基本的に、トランス
ポートチャネルインタフェースは、トランスポート層フ
ォーマットの復調チャネルデータを受け入れる。トラン
スポート層フォーマットは、4つのバイトヘッダおよび
184バイトペイロードを備えた188バイトパケット
からなる。インタフェースは、あらゆるトランスポート
ヘッダの第1バイトである同期バイトを検出できる。バ
イト同期が検出されたならば、インタフェースは、バイ
トアラインドデータを、データストリーマ122および
データ転送スイッチ112(FIG.1A)を介して、
マルチメディアプロセッサ100のメモリバッファ内に
導く。トランスポートチャネルインタフェースはまた、
MPEG-2システムのトランスポートパケットを、バイト並
列またはバイト直列フォーマットに受け入れる。
【0056】マルチメディアプロセッサ100は、ビデ
オチャネルおよびオーディオチャネルにクロック補正お
よび同期化を行う。
【0057】ユニバーサル直列バス(USB)インタフェ
ース222は、低速デバイスと通信する標準インタフェ
ースである。このインタフェースは、標準仕様に一致す
る。Philips PDIUSBIIのような外部モジュールに接続す
ることを期待するのは4ピンインタフェース(2つのパ
ワーピンおよび2つのデータピン)である。
【0058】マルチメディアプロセッサ100はUSBハ
ブとしては作用しないが、12Mbpsおよび1.5Mbpsデ
バイスと通信できる。ソフトウェアは、いずれの速度で
も実行できるように構成できる。12Mbpsの速度で実行
するように構成すると、マルチメディアプロセッサは、
個々のデータパケットを1.5Mbpsデバイスに送ること
ができる。本発明の一実施形態によれば、マルチメディ
アプロセッサ100は、USBを介して256個までのデ
バイスと通信する。
【0059】USBは、タイムスロット型バスである。タ
イムスロットは1ミリ秒である。各タイムスロットに
は、等時性、非同期制御またはデータである多トランザ
クションを含めることができる。データトランザクショ
ンは非同期である。データはビットスタッフィングを有
するNRZIである。これは、すべての6ビット可変長デー
タパケットが少なくとも1回CRC保護されると、クロッ
ク調節のトランジションを保証する。バルクデータトラ
ンザクションは、より長いデータ流を、1パケット当た
り1023バイトまでのパケットに分割し、1タイムス
ロット当たり1つのパケットを送り出す。
【0060】IEC958インタフェースユニット208は、
Sony Philips Digital Interface (SPDIF); Audio Eng
ineering Society/European Broadcast Union (ES/EBU)
インタフェース;TOSLINKインタフェース等の幾つかの
オーディオ規格をサポートするように構成されている。
TOSLINKインタフェースは、外部IRデバイスを必要とす
る。IEC958プロトコルコンベンションは、サウンドサン
プルの各マルチビットフィールドが、最初に最下位ビッ
ト(リトル−エンディアン: little-endian)で、内ま
たは外にシフトすることを要求する。
【0061】インタフェースユニット202はまた、ホ
ームシアタ用の高品位(95dB SNR以上)オーディオデ
ジタル/アナログ(D/A)コンバータを駆動するように
構成されたI2Sコントローラユニット212を有してい
る。タイミングは、18ビットモードまたは16ビット
モードにソフトウェア構成できる。
【0062】I2Cユニット216は、主としてマルチメ
ディアプロセッサ100と外部オンボードデバイスとの
間の通信を行うI2C規格を用いている。I2Cユニット21
6は2ライン直列インタフェースからなり、マルチメデ
ィアプロセッサ100が、I2Cバスにあるマスタおよび
スレーブデバイスとして機能できるようにする物理的層
(signaling)を形成する。この結果、マルチメディア
プロセッサ100は、ステータスを遅延させかつ外部デ
バイスへの情報を制御するための付加ハードウェアは不
要である。
【0063】DDCインタフェースは、ディスプレイデー
タチャネル(Display Data Channel:DDC)仕様バージョ
ン1、2aのVESA規格に完全に従う。DDC仕様のコンプ
ライアンスは、標準VGAコネクタの2ピンを介してのDDC
制御および標準VGAコネクタの2ピンを通るI2C接続を介
してのDDC制御により与えられる。
【0064】上記各I/Oユニットは、I/Oバス132上の
所定アドレスに位置するPIOレジスタに一致する制御レ
ジスタ(図示せず)を有する点で優れていることに留意
されたい。この結果、各ユニットはI/Oバス132を介
して適当な制御信号を受けることにより直接制御され
る。
【0065】かくして、本発明の一実施形態によれば、
マルチメディアプロセッサ100は、所望セットのI/O
デバイスがマルチプレクサ136を介して外界にアクセ
スするようにI/Oユニット202のI/O形態を再プログラ
ミングすることにより、種々のシステムを用いることが
できる。マルチプレクサ136のピン形態は、I/Oユニ
ット202の形態に基づいて変化する。マルチメディア
プロセッサ100を用いるシステムが使用される幾つか
の例示用途として、3次元(3D)ジオメトリPC、マル
チメディアPC、セットトップボックス/3Dテレビジョ
ン、またはWebTV、および通信モデルシステムがある。
【0066】演算中に、プロセッサ102は、I/Oバス
132を介して適正信号をI/Oユニット202に供給し
て、所望のI/Oユニットをマルチプレクサ136を介し
て外界に接続すべくプログラムできる。例えば、本発明
の一実施形態によれば、TCIユニット206は、TV信号
を受信すべく、マルチプレクサ136を介して外部チュ
ーナシステム(図示せず)に接続するためにアクティブ
にされる。マルチメディアプロセッサ100は、受信し
た信号を操作して、これをモニタのようなディスプレイ
ユニット上にディスプレイする。本発明の他の実施形態
によれば、NTSCユニット224は、NTSCコンプライアン
トTV信号を受信すべく、マルチプレクサ136を介して
外部チューナシステム(図示せず)に接続するためにア
クティブにされる。
【0067】本発明の原理に従って、他の用途に使用で
きることは理解されよう。図示の目的から、FIG.1
CおよびFIG.1Dは、後述のように、本発明の2つ
の実施形態に従って構成される2つの典型的なシステム
のブロック図を示すものである。
【0068】かくして、FIG.1Cには、マルチメデ
ィアプロセッサ100を用いたマルチメディアシステム
が示されており、該マルチメディアシステムは、本発明
の一実施形態に従って、X86(登録商標)のようなホス
トプロセッサ230を用いて演算する。マルチメディア
プロセッサ100は、加速型グラフィックスバス(acce
lerated graphics bus: AGP)を介してホストプロセッ
サに接続される。プロセッサ230は、PCIバス260
およびサウスブリッジユニット232を介してISAバス
に接続される。参照番号218(FIG.1B)で示す
ようなオーディオI/Oコントローラは、ISA SB/Comm マ
ッパ232およびマルチプレクサ136を介して、ISA
バス258との間で信号をやりとりするように構成され
ている。また、I2C/DDCドライバユニット216は、マ
ルチプレクサ136を介して対応標準コンプライアント
信号を受けるように構成されている。ドライバユニット
216は、CRT解像度、スクリーンサイズおよびアスペ
クト比を制御する信号を供給することを意図したデータ
チャネル信号を受ける。マルチメディアプロセッサ10
0のISDN/GCIドライバユニット221は、ISDN Uまたは
S/Tインタフェースユニット236との間で信号をやり
とりするように構成されている。
【0069】マルチメディアプロセッサ100は、アナ
ログRGB信号を、ディスプレイリフレッシュユニット2
26を介してCRTモニタ(図示せず)に供給する。マル
チメディアプロセッサ100はまた、CCIR/NTSCドライ
バユニット224およびNTSCエンコーダユニット238
を介して、NTSCまたはPALコンプライアントビデオ信号
を供給するようにも構成されている。局部発振ユニット
244は、54MHZの信号をマルチメディアプロセッサ
100に供給して、NTSC信号を処理する。
【0070】復調器ユニット246は、マルチメディア
プロセッサ100のトランスポートチャネルインタフェ
ースドライバユニット206に接続される。復調器ユニ
ット246は、直交振幅変調または直交位相シフトキー
イング変調またはF.E.C.に基づいて、信号を復調するよ
うに構成されている。
【0071】マルチメディアプロセッサ100には第2
PCIバス252も接続されており、該第2PCIバス252
は、ビデオデコーダ248により発生された信号を受
け、Brooktree(登録商標)により与えられる、Bt484規
格に従ったNTSC/PAL信号を供給する。また、バス252
は、1394ユニット250を介して高速直列データイ
ンタフェースを可能にする1394 link/phy規格によ
る信号を受ける。バス252はまた、他のマルチメディ
アプロセッサ100に接続できる。
【0072】最後に、マルチメディアプロセッサ100
は、AC'97規格によるコーデック254を介してアナロ
グオーディオ信号を受けるように構成されている。局部
発振器256は、AC'97コーデックを作動させるための
発振信号を発生する。
【0073】FIG.1Dは、本発明の他の実施形態に
よるマルチメディアプロセッサ100を用いるマルチメ
ディアTVまたはWEB TVのようなスタンドアロンシステム
を示す。スタンドアロン形態では、マルチメディアプロ
セッサ100は、キーボード、マウスおよびジョイステ
ィック等のユーザインタフェースデバイスを介しての制
御を可能にするユニバーサル直列バス(USB)ドライバ
ユニット222をアクティブにする。スタンドアロン形
態では、VLIWプロセッサが、後述のように、マルチメデ
ィアプロセッサ100の他のモジュールに関連するすべ
てのグラフィックタスクを遂行することに留意された
い。しかしながら、ホストプロセッサ230により演算
する構成では、幾つかのグラフィックタスクがホストプ
ロセッサにより遂行される。
【0074】データ転送スイッチ FIG.2は、本発明の一実施形態によるデータ転送ス
イッチの作動を示すフローチャートであるが、本発明の
範囲はこれに限定されるものではない。
【0075】FIG.2は、データキャッシュ108内
のデータをメモリコントローラ124を介してSDRAM1
28内の一位置に書き込むトランザクションのような、
マルチメディアプロセッサ100内の1つの機能ユニッ
トから他の機能ユニットへの書込みトランザクションに
おけるイニシエーションフェーズの一例を説明するバス
プロトコルのフローチャートを示すが、本発明はこれに
限定されるものではない。かくして、この例では、リク
エストバスマスタはデータキャッシュ108であり、リ
クエストバススレーブはメモリコントローラ124であ
る。ステップ402では、リクエストバスマスタは、レ
スポンダIDおよび明記できる優先レベルと一緒に、書込
みリクエストをリクエストバスアービタ140に送る。
ステップ404では、リクエストバスアービタは、リク
エストバススレーブ(この場合には、メモリコントロー
ラ124)が書込みリクエストを受け入れる準備ができ
ているか否かを決定する。準備ができている場合には、
リクエストバスアービタ140は、トランザクションID
と一緒に、認可信号(grant signal)をデータキャッシ
ュ108に送り、次に、書込みリクエストをメモリコン
トローラ124に送る。
【0076】ステップ406では、リクエストバスマス
タが、アドレス、コマンド、サイズおよびそれ自体の識
別子ID信号を、リクエストバス118に供給する。この
間、前のリクエスト信号に応答するリクエストバススレ
ーブは、更新されたレディ信号をリクエストバスアービ
タ140に送り、該アービタが付加リクエストを受け入
れることができるか否かを表示する。また、リクエスト
バススレーブは、トランザクション識別子IDをリクエス
トバスに置く。このトランザクション識別子は、このト
ランザクションへの入口がスレーブの書込みキュー内に
あることを表示するのに使用される。リクエストバスマ
スタは、該マスタが、バススレーブからのこのリクエス
トに対応するデータを受けるときにこのトランザクショ
ンIDをサンプリングする。
【0077】上記書込みトランザクションでは、リクエ
ストバスマスタ例えばデータキャッシュ108もデータ
バスマスタになる。かくして、ステップ408では、デ
ータキャッシュ108は、レシーバ識別子、適用可能な
優先レベルおよびトランザクションサイズと一緒に書込
みリクエストをデータバスアービタ(この場合には、プ
ロセッサメモリバス114)に送る。ステップ410で
は、データバスアービタ114は、認可信号をデータバ
スマスタに送り、次に、リクエスト信号をデータバスス
レーブ(図示の例では、メモリコントローラ124)に
送る。
【0078】ステップ412では、データバスマスタ
が、4連続サイクルまで、データおよびバイト許可信号
をデータバスに供給する。応答時に、データバススレー
ブは、データをサンプリングする。データバスマスタ
も、ステップ404でリクエストバススレーブから元々
受けたトランザクションIDを供給する。最後に、データ
バスアービタは、データバススレーブにより使用される
トランザクションのサイズを与える。
【0079】FIG.3Aは、データ転送スイッチ11
2を用いる読取りトランザクションを示すフローチャー
トである。この例では、データキャッシュ108はSDRA
M128で読取り演算を行うと考えられる。かくして、
ステップ420では、リクエストバスマスタ(この例で
はデータキャッシュ108)は、レスポンダ識別子ID信
号および明記できる優先レベルと一緒に読取りリクエス
トをリクエストバスアービタ140に送る。ステップ4
22では、リクエストバスアービタは、リクエストバス
スレーブがトランザクションに利用できるか否かを決定
する。利用できる場合には、リクエストバスアービタ1
40はトランザクションIDと一緒にリクエストバスマス
タに信号を送り、かつ読取りリクエストをリクエストバ
ススレーブ(この例では、メモリコントローラ124)
に送る。ステップ424では、リクエストバスマスタ
(データキャッシュ108)は、アドレス、サイズ、バ
イト読取りイネーブル(byte read enable)およびそれ
自体の識別信号IDをリクエストバスに供給する。その間
に、リクエストバススレーブはリクエストバスアービタ
140のレディ信号を更新して、より多くのアクセスを
受け入れる準備ができているか否かを表示する。リクエ
ストバスマスタはまた、トランザクションID信号をリク
エストバスに供給する。このトランザクションIDは、対
応するリクエストがバスマスタの読取りキューに記憶さ
れることを表示する。
【0080】FIG.3Bは、読取りトランザクション
の応答フェーズを示す。ステップ426では、バススレ
ーブ(メモリコントローラ124)は、データバスマス
タとなる。データバスマスタが読取りデータの準備が整
うと、データバスマスタは、リクエスト、明記できる優
先レベル信号、およびトランザクションサイズを適当な
データバスアービタ(この例では、内部メモリバスアー
ビタ142)に送る。ステップ428では、内部メモリ
バスアービタ142が認可信号をデータバスマスタに送
り、かつリクエストをデータバススレーブ(データキャ
ッシュ108)に送る。ステップ430では、データバ
スマスタ(メモリコントローラ124)が、データの4
つの連続サイクルを内部データバス120に供給する。
データバスマスタはまた、リクエストフェーズ中に受け
たトランザクション識別信号(トランザクションID)を
供給する。最後に、内部バスアービタは、内部バススレ
ーブ(データキャッシュ108)がサンプリングするよ
うにトランザクションサイズを制御する。
【0081】要約すれば、本発明の一例により、イニシ
エータ構成要素が、リクエストバスアービタを介して転
送をリクエストする。各イニシエータは、4、8、1
6、24、32バイト転送をリクエストする。しかしな
がら、トランザクションは、通信サイズの境界上に整合
されなくてはならない。各イニシエータは、すべてのサ
イクルにリクエストを作る。また、書込みイニシエータ
は、送りフェーズ中にレスポンダからトランザクション
IDをサンプリングしなければならず、かつ次に、応答フ
ェーズ中にトランザクションIDを送り出さなくてはなら
ない。
【0082】また、読取り演算中に、レスポンダは、リ
クエストされたデータをいつ送るかを決定するように構
成される。読取りレスポンダは送りフェーズ中にイニシ
エータからトランザクションID信号をサンプリングし、
次に、応答フェーズ中に該トランザクションID信号を送
り出す。書込み演算中に、レスポンダは、書込みリクエ
ストを受けた後に書込みデータを受け入れる。
【0083】表1は、本発明の一実施形態による、リク
エストバス118の例示信号の定義を示す。表2は、本
発明の一実施形態によるデータバス114、120の例
示信号定義を示す。
【0084】
【表1】
【0085】
【表2】
【0086】表3〜表9は、データ転送スイッチ112
を介してデータを転送するときに用いられるコマンド呼
出しを示す。
【0087】
【表3】
【0088】
【表4】
【0089】
【表5】
【0090】
【表6】
【0091】
【表7】
【0092】
【表8】
【0093】
【表9】
【0094】FIG.4AおよびFIG.4Bは、本発
明の一実施形態によるそれぞれ、リクエストバス接続お
よび内部メモリバス接続中の信号の流れを示す。例え
ば、FIG.4Aにおいて、リクエストバスイニシエー
タは、表3に従って、情報をリクエストバスアービタに
送る。このようなリクエスト情報として、リクエストバ
ス読取り/書込みリクエスト、リクエストバスレスポン
ダ識別信号ID、およびリクエストの優先レベルがある。
リクエストバスアービタは、読取り/書込みリクエスト
信号を、識別されたレスポンダまたはリクエストバスス
レーブ(表6)に送り、これに応答して、レスポンダ
は、レディ表示信号をリクエストバスアービタに送り戻
す(表4)。レディ表示信号を受けると、リクエストバ
スアービタは、バス認可信号をイニシエータに送る(表
5)。認可信号がひとたびイニシエータにより認識され
ると、トランザクション情報は、表1に従って、リクエ
ストバスを介してレスポンダに伝送される。このため、
リクエストバストランザクションIDは、処理すべき特定
トランザクションに割当てられる。
【0095】FIG.4Bは、内部メモリバス120を
用いたデータバス接続を示している。かくして、リクエ
ストバス仲裁フェーズ中にひとたびトランザクション情
報および識別がセットアップされると、イニシエータお
よびレスポンダは、実データを転送する。イニシエータ
は、リクエスト、サイズ、イニシエータ識別信号ID、表
7に定められた信号による優先レベルを含むトランザク
ション情報を、内部メモリバスアービタ142に伝送す
る。内部メモリバスアービタ142は、表8によるサイ
ズ情報に加えて、リクエスト情報をレスポンダに送る。
その後、アービタは、認可信号をイニシエータに送り、
これに応答して、イニシエータと表2によるレスポンダ
との間に実際のデータ転送が行われる。
【0096】FIG.5Aは、リクエストバス読取り演
算のタイミング図を示す。FIG.5Bは、直ちに認可
が与えられない読取りリクエストについてのタイミング
図を示す。FIG.5Cは、リクエストバス書込み演算
のタイミング図である。書込み演算の場合には、リクエ
ストバストランザクション識別信号IDは、レスポンダに
より与えられる。最後に、FIG.5Dは、データバス
のデータ転送演算のタイミング図を示す。読取りトラン
ザクションは、データバスマスタは読取りレスポンダで
あり、データバススレーブは読取りイニシエータであ
る。
【0097】データ転送スイッチ112は、イニシエー
タによりなされるバックトゥバックリクエストに適合す
るように構成されている。タイミング図に示すように、
リクエストの送出と認可の受領との間の待ち時間は2サ
イクルである。A0(またはD0)サイクルでは、アービタ
140はマスタからのリクエストを検出する。しかしな
がら、A1(またはD1)サイクルでは、バスマスタは、好
ましくは、認可を受けるまで主張される、そのリクエス
ト信号並びにアービタへの他の専用信号を維持する。そ
れはそれとして、アービタ140は、これらの信号か
ら、マスタが第2リクエストを作ることを望んでいるか
否かを告げる。
【0098】バックトゥバックリクエストに適合するよ
うに、第2リクエストが係属(pending)していること
をマスタがアービタに送信できるように、バスマスタか
らアービタ140への第2セットの専用信号が与えられ
る。マスタが、その第1リクエストが認可されるのを待
つ間に他のリクエストを遂行したい場合には、マスタ
は、その第2セットの信号を主張する。アービタ140
が、現サイクルでのマスタへのバックトゥバックを認可
する場合には、次のサイクルについての仲裁を遂行する
ときに、マスタからの第2セットの信号を見なければな
らない。マスタがその第1リクエストの認可を受けると
き、マスタは、第2セットのリクエスト信号を搬送する
ラインのすべての情報を、第1セットリクエスト信号を
搬送するラインに転送する。これは、アービタが第2リ
クエストを直ちに認可できない場合に必要になる。
【0099】RQBからのレディ信号も、同じ理由で複製
される。RQBアービタ140がリクエストをスレーブに
送るとき、更新されたレディ信号を最も早く見ることが
できるのは2サイクル後である。A0サイクルでは、その
レディ信号に基づいて、リクエストをスレーブに送るこ
とを決定する。しかしながら、A1サイクルでは、スレー
ブは、未だリクエストを見ていないため、そのレディ信
号を更新していない。従って、アービタ140は、この
レディ信号からは、スレーブが他のリクエストを受け入
れることができるか否かを告げることができない。
【0100】スレーブが第2リクエストを受け入れるか
否かをアービタが告げることができるように、RQBスレ
ーブからRQBアービタへの第2セットのレディ信号が与
えられる。一般に、第1セットのレディ信号は、少なく
とも2つのリクエストを受け入れることができるか否か
を表示する。アービタ140がリクエストを現サイクル
でスレーブに送る場合には、アービタは、次のサイクル
の仲裁を行うときにスレーブからの第2セットのレディ
信号を見なければならない。
【0101】読取りおよび書込みのためのレディ信号が
あることに留意されたい。RQBスレーブは異なるキュー
構造(単一キュー、別の読取りキューおよび書込みキュ
ー等)にすることができる。RQBアービタ140は、書
込み後に第1または第2読取りレディ信号を見るか否
か、および読取り後に第1または第2書込みレディ信号
を見るか否かを決定すべく、スレーブのキュー形態を知
る。
【0102】FIG.6Aは、バックトゥバック読取り
リクエストを作るリクエストバスマスタのタイミング図
である。FIG.6Bは、第2リクエストについての認
可が直ちになされないときに、バックトゥバックリクエ
ストを作るプロセッサメモリバスマスタのタイミング図
である。最後に、FIG.6Cは、書込みリクエストが
続く読取りリクエストを受け、リクエストバススレーブ
が単一化された読取りおよび書込みキューを有するもの
と仮定するリクエストバススレーブのタイミング図であ
る。
【0103】データストリーマ データストリーマ122の演算を、ここに、更に詳細に
説明する。データストリーマは、マルチメディアプロセ
ッサ100内での所定のバッファ型データ移動に用いら
れる。特定のシステム構成に従うこれらのデータ移動
は、変調する帯域幅条件をもつメモリデバイスまたは入
力/出力(I/O)デバイス間で行なうことができる。か
くして、マルチメディアプロセッサ100による物理的
メモリは、データストリーマ122を用いることにより
データを伝送しかつ受けることができる。これらのメモ
リユニットは、外部SDRAMメモリ128と、データキャ
ッシュ108と、固定機能ユニット106と、入力/出
力(I/O)バッファ32に接続された入力/出力デバイ
スと、1次または2次PCIバスコントローラによりアク
セスされる任意のホストメモリとを有している。本発明
の一実施形態によれば、データストリーマ122は、ソ
フトウェア制御下でのデータ転送作用を引き受けるが、
本発明はこれに限定されるものではない。このため、コ
マンドは、マルチメディアプロセッサ100のために定
められたアドレス空間内の2つの構成要素間のデータ転
送演算を開始する。
【0104】FIG.7は、本発明の一実施形態による
データストリーマ122のブロック図を示すが、本発明
はこれに限定されるものではない。データストリーマ1
22は、データ転送スイッチ(DTS)インタフェース7
18を介してデータ転送スイッチ112に接続される。
データストリーマ122内の転送エンジン702は、デ
ータストリーマ122のデータ転送演算を制御するのに
使用される。詳細に後述するように、転送エンジン70
2は、マルチメディアプロセッサ100の異なる構成要
素間の同時データ転送を取り扱うパイプライン制御論理
を実施する。
【0105】転送エンジンは、ここでデータ転送演算を
記述する記述子と呼ぶユーザプログラムを実行すること
に応答できる。より詳細に後述するように、メモリ転送
演算に関する情報を含むデータフィールドとして、例え
ばデータアドレス、ピッチ、幅、カウントおよび制御情
報がある。
【0106】各記述子は、チャネルと呼ばれる、データ
ストリーマ122のハードウェアの一部により実行され
る。チャネルは、チャネル状態メモリ(channel state
memory)704と呼ばれる所定のメモリ位置の幾つかの
状態ビットにより定められる。チャネル状態メモリ70
4は、本発明の一実施形態に従って64チャネルをサポ
ートする。FIG.7に示すように、チャネル状態メモ
リ704は転送エンジン702に接続されている。任意
の所与の時点で、これらの64チャネルの多くがアクテ
ィブでかつサービスを要求する。各アクティブチャネル
は記述子により作動する。データストリーマ122は、
データ転送演算のために1つまたは2つのチャネルを割
当てる。これらのチャネルは、データがその元のアドレ
スからマルチメディアプロセッサ100内の受け手アド
レスに転送されるまで、同じデータ転送演算に割当てら
れる。より詳細に後述するように、データストリーマ1
22は、入力/出力のための1つのチャネルをメモリ転
送に割当て、かつメモリのための2つのチャネルをメモ
リ転送に割当てる。
【0107】転送エンジン702は、データ転送スイッ
チ112に送ることを意図したデータ転送スイッチリク
エスト信号を供給するためのデータ転送スイッチインタ
フェース718に接続される。データ転送スイッチイン
タフェース718は、転送エンジン702により発生さ
れたデータおよび記述子に対する、出ていく読取りリク
エストを取り扱うように構成されている。データ転送ス
イッチはまた、データ転送スイッチ112から、内部先
入れ先出しバス716の適当なレジスタに入ってくるデ
ータを取り扱う。データ転送スイッチインタフェース7
18はまた、データストリーマ122により与えられ
る、出ていくデータをも取り扱う。
【0108】データストリーマ122はまたバッファメ
モリ714を有し、該バッファメモリは、本発明の一実
施形態によれば、マルチメディアプロセッサ100内で
物理的に実行される4KB SRAMメモリであるが、本発明
の範囲はこれに限定されるものではない。バッファメモ
リ714は、本発明の一実施形態によれば、デュアルポ
ート型ダブルメモリバンク714a、714bを有して
いる。64チャネルを取り扱うデータストリーマの場合
には、バッファメモリ714は、64個の小さいバッフ
ァ空間に分割できる。
【0109】バッファメモリ714のデータアレーは、
1ライン当たり8バイトとして物理的に組織され、マス
キング技術を用いることにより一度に8バイトアクセス
される。しかしながら、演算中に4KBのメモリが小さい
バッファに分割され、各バッファはデータ転送演算に関
連して使用される。従って、データ転送演算は、1つま
たは2つのチャネルおよび1つのバッファにより定めら
れるデータストリーマ122内のデータ経路を使用す
る。メモリ対メモリ転送の場合には2つのチャネルが使
用されるのに対し、I/O対メモリ転送(I/O-to-memory t
ransfer)の場合には、1つのチャネルが使用される。
より小さい各バッファのサイズは、データ転送特性によ
り特定されるように変えることができる。
【0110】本発明の一実施形態によれば、データ移動
演算は、所定のチャンクサイズに基づいて行われる。
「k」の送り手チャンクサイズ(source chunk size)
は、受け手チャネル(destination channel)がバッフ
ァメモリ714の外に「k」バイトだけ移動されたとき
に、送り手チャネルがデータに対するリクエストをトリ
ガすべきことを意味する。同様に、「k」の受け手チャ
ンクサイズは、送り手チャネルがバッファ内に「k」バ
イトのデータを転送したときに、受け手チャネルがバッ
ファ714の外へのデータ移動をスタートすべきことを
意味する。チャンクサイズは複数の32バイトである
が、本発明の範囲はこれに限定されるものではない。
【0111】バッファメモリ714には、8バイトのラ
イン当たり8ビットを保持する有効ビットメモリ(vali
d-bit memory)が同伴する。有効ビットの値を使用し
て、特定バイトが有効であるか否かを表示する。有効ビ
ットのセンスは、対応する割当てバッファが満たされる
度毎にフリップされる。これにより、チャンクが転送さ
れる度毎にバッファメモリを再初期化する必要性がなく
なる。しかしながら、有効ビットにおける対応ビット
は、バッファがデータ転送経路に割当てられるときは必
ず、ゼロに初期化される。
【0112】バッファメモリ714は、データストリー
マバッファコントローラ706に接続されかつ該コント
ローラにより制御される。バッファコントローラ706
は転送エンジンおよびDMAコントローラ138にも接続
され、かつこれらの転送エンジンおよびDMAコントロー
ラから受けた読取りおよび書込みリクエストを取り扱う
ように構成されている。バッファコントローラ706は
バッファ状態メモリ708に記憶されたデータを使用し
てそのタスクを達成する。バッファコントローラ706
は、バッファにもたらされるバイト数および取り出され
るバイト数のカウントを維持する。データストリーマバ
ッファコントローラ706はまた、パイプライン論理を
実行して64個のバッファを取り扱い、かつバッファメ
モリ714への書込みおよび読取りを管理する。
【0113】バッファ状態メモリ708は、データ経路
に使用される各バッファに関する状態情報を維持するの
に使用される。前述のように、バッファ情報メモリは、
64個の個々のバッファFIFOをサポートする。
【0114】DMAコントローラ138はI/Oバッファ32
に接続されている。本発明の一実施形態によれば、DMA
コントローラ138は、DMAリクエストを行いたいI/Oデ
バイス間で仲裁(arbitrate)するように作用する。DMA
コントローラはまた、データストリーマバッファコント
ローラに入るDMAリクエストおよびI/Oデバイスに出るデ
ータのバッファリングを行う。 DMAコントローラ138
に関する仲裁は、DMAコントローラ138およびI/Oバス
132に接続されたラウンドロビン優先アービタ710
により取り扱われる。アービタ710は、物理的入力/
出力コントローラPIOC126とDMAコントローラとの間
にI/Oデータバスを使用することを仲裁する。
【0115】本発明の一実施形態によれば、データスト
リーマ122は、データキャッシュ108をアクセス可
能なメモリ構成要素として処理し、かつデータキャッシ
ュ108への直接読取りおよび書込みができる。より詳
細に後述するように、データストリーマ122は、チャ
ネル記述子がデータキャッシュ演算を特定するときはい
つでも、データキャッシュ内にコヒーレンシーを維持す
るように構成されている。マルチメディアプロセッサ1
00の他の構成要素によるデータキャッシュへの書込み
および読取りを開始する能力は、CPU102、104に
よりそれぞれ使用されるデータが予め知られているデー
タアプリケーションに適している。かくして、キャッシ
ュヒット率は大幅に改善される。なぜならば、このアプ
リケーションは、CPU102または104がデータを使
用する前に必要なデータを満たすことができるからであ
る。
【0116】前述のように、本発明の一実施形態による
データストリーマ122は、幾つかのアプリケーション
プログラミングインタフェースすなわちAPI、ライブラ
リコールを用いることにより、ユーザ特定されたソフト
ウェアプログラムに基づいて演算する。このため、プロ
グラム可能な入力/出力コントローラPIOC126は、マ
ルチメディアプロセッサ100およびデータストリーマ
122の他の構成要素間のインタフェースとして機能す
る。従って、最低レベルでデータストリーマ122と通
信すべく使用されるコマンドは、データストリーマ空間
のPIO読取りおよび書込みに変換する。かくして、この
ようなPIO読取りおよび書込み演算を発生できるあらゆ
る構成要素は、データストリーマ122と通信できる。
本発明の一実施形態によれば、これらのブロックとし
て、固定機能ユニット106と、中央処理装置102、
104と、例えばPCIバスを介してマルチメディアプロ
セッサ100に接続されたホスト中央処理装置とがあ
る。
【0117】本発明の一実施形態によれば、データスト
リーマ122は、PIO(physical memory: 物理的メモ
リ)の512Kバイトのアドレス空間を占有する。各デ
ータストリーマのチャネル状態メモリは、4Kバイトペ
ージの64バイトより少ないバイトを占有する。各デー
タストリーマのチャネル状態メモリは、保護のための別
の4Kバイトページ内にあるが、本発明の範囲はこれに
限定されるものではない。
【0118】表10は、種々のデバイスに使用されるア
ドレス範囲を示す。例えば、位置18のビットは、転送
エンジン702とデータストリーマ122の他の内部構
成要素との間の選択に使用される。他の構成要素とし
て、バッファメモリに使用されるデータRAMと、データR
AMを伴う有効RAMビットと、データストリーマバッファ
コントローラと、DMAコントローラとがある。
【0119】
【表10】
【0120】ビット18が0の値を有するとき、PIOア
ドレスは転送エンジン702に属する。表11は、転送
エンジン702の内部演算についてのビット17:0の
解釈法を示す。
【0121】
【表11】
【0122】ビット18が1の値をもつとき、PIOアド
レスは、表12に示すように、バッファ状態メモリに関
する、データストリーマバッファコントローラ706に
属する。
【0123】
【表12】
【0124】本発明の一実施形態によるデータストリー
マ122の各構成要素の内部構造について、以下に詳細
に説明する。
【0125】転送エンジン FIG.8は、本発明の一実施形態による転送エンジン
702のブロック図であるが、本発明の範囲はこれに限
定されるものではない。転送エンジン702の主構成要
素は、フェッチ段744に接続された演算スケジューラ
742を有し、フェッチ段744は更に発生および更新
段746に接続され、該発生および更新段746は更に
ライトバック段748に接続されている。構成要素74
2〜748は、協働して転送エンジンの実行パイプライ
ンを形成している。ラウンドロビン優先スケジューラ7
40を使用して、適当なチャネルおよびこれらの対応チ
ャネル状態メモリを選択する。
【0126】より詳細に後述するように、実施される準
備が整ったチャネル(レディチャネル)に関する情報
は、本発明の一実施形態に従って2つのチャネル状態メ
モリバンク704(a)、704(b)に物理的に分割
されたチャネル状態メモリ704に記憶される。優先ス
ケジューラ740は、4つの優先レベルをもつレディチ
ャネルのラウンドロビンスケジューリングを遂行する。
このため、最高の優先レベルをもつレディチャネルが、
ラウンドロビン構成に採用される。最高優先レベルをも
つチャネルが存在しない場合にのみ、より低いレベルを
もつチャネルが考えられる。
【0127】優先スケジューラ740は、2サイクル毎
に1回チャネルを採用し、かつこれを他のスケジューリ
ングレベルで演算スケジューラに供給する。
【0128】演算スケジューラ742は、任意の時点で
4つの演算を受けかつ一度に1回の各演算を実行するよ
うに構成されている。これらの4つの演算として、プロ
グラム可能な入力/出力PIO、プログラム可能な入力/
出力コントローラPIOC126、データ転送スイッチイン
タフェース718から入ってくる記述子プログラム、デ
ータストリーマバッファコントローラ706により満た
されるチャンクリクエストインタフェースキューからの
チャネルに対するチャンクリクエスト、および優先スケ
ジューラ740からのレディチャネルがある。
【0129】FIG.13およびFIG.14に関連し
て以下に詳述するように、送り手記述子プログラムはバ
ッファメモリ714へのデータ転送演算の特定事項(sp
ecifics)を定め、受け手記述子プログラムはバッファ
メモリ714から受け手位置へのデータ転送演算の特定
事項を定める。また、バッファは、チャネル状態メモリ
704に記憶された対応する送り手チャネルに対するチ
ャンクリクエストを発行して、バッファが受けることが
できるバイト数を表示する。演算スケジューラが最高か
ら最低までタスクを採用する優先順序は、PIO演算、入
ってくる記述子、チャンクリクエストおよびレディチャ
ネルである。
【0130】演算スケジューラにより選択される演算に
関する情報は、フェッチ段744に転送される。フェッ
チ段は、選択された演算を行う必要があるチャネル状態
メモリ704からのビットを検索するのに使用される。
例えば、演算スケジューラがレディチャネルを採用する
場合には、チャネルのチャンクカウントビットおよびバ
ーストサイズは、データ転送演算のために発生されなく
てはならないリクエストの数を決定すべく読取られなく
てはならない。
【0131】発生および更新段746は、フェッチ段7
44から派生されるデータ転送演算のために発生されな
くてはならないリクエストの数に等しい回数だけ実行さ
れる。例えば、受け手チャネルの転送バーストサイズが
4である場合には、発生および更新段746は4サイク
ルだけ実行され、1サイクル当たり1つのリクエストを
発生する。他の例として、演算がチャネル状態メモリ7
04へのPIO書込み演算である場合には、発生および更
新段が1回実行される。より詳細に後述するように、発
生および更新段746により発生される読取り/書込み
リクエストが、データ転送スイッチインタフェース71
8のリクエストキューRQQ764に付加される。
【0132】チャネル状態メモリ704は、転送エンジ
ン702により実行される殆どの演算後に更新する必要
がある。例えば、チャネルが、発生および更新段746
でのリクエスト発生を完了すると、チャンク数が減少さ
れ、かつチャネル状態メモリ704にライトバックされ
る。ライトバック段(write back stage)748はま
た、リセット信号をチャネル状態メモリ704に送り、
インターバースト遅延カウンタを、表13に示すチャネ
ル状態メモリ構造を参照して以下に説明する最小インタ
ーバースト遅延値で初期化する。
【0133】チャネル状態メモリ データストリーマ122の64チャネルの各々に関する
情報は、チャネル状態メモリ704に記憶される。デー
タ移動演算の前および演算中に、データストリーマ12
2は、そのデータ移動タスクを達成するためのチャネル
状態メモリ704のデータを使用する。表13〜表19
は、チャネル状態メモリを形成するフィールドを示す。
また、これらの表は、種々のフィールドのビット位置、
およびチャネルが本発明の一実施形態に従ってデータ転
送に割当てられるときにフィールドを初期化すべき値を
示す。
【0134】チャネル状態メモリ704は、本発明の一
実施形態に従って、2つの位置704(a)、704
(b)に分割される。チャネル状態メモリ704(a)
は、0x00、0x08、0x10および0x18と呼
ばれる4つの64ビット値を有している。チャネル状態
メモリ704(b)は、位置0x00、0x08および
0x10での3つの64ビット値を有している。
【0135】
【表13】
【0136】
【表14】
【0137】
【表15】
【0138】
【表16】
【0139】
【表17】
【0140】
【表18】
【0141】
【表19】
【0142】チャネルにより達成されるデータの帯域幅
は、数ある中で、次の4つのパラメータ、すなわち内部
チャネル優先、最小インターバースト遅延、転送バース
トサイズ、およびデータ転送スイッチ優先に基づいてい
る。経路が割当てられると、これらの4つのパラメータ
はシステムにより考察される。チャネル特徴はまた、シ
ステムが初期化する3つのパラメータを有している。こ
れらは、ベースアドレス、より詳細に後述するキャッシ
ュウェイ置換マスク、および記述子フェッチモードビッ
トである。
【0143】チャネル優先:データストリーマ122の
ハードウェアは、4つの内部チャネル優先レベル(0が
最高、3が最低)をサポートする。前述のように、ハー
ドウェアは、優先順序によりラウンドロビン態様でチャ
ネルをスケジュールする。メモリ−メモリ転送に関連す
るチャネルについては、同じ優先を両チャネルに割当て
て、等ペースで移動する両側にデータ転送を維持するこ
とが好ましい。好ましくは、高帯域幅I/Oデバイスでフ
ックアップされるチャネルが低レベル優先でセットアッ
プされ、低帯域幅I/Oデバイスでフックアップされるチ
ャネルが高レベル優先を用いる。このようなチャネルは
スケジューリングプールを単に結合するものであるが、
そのときに、チャネルは殆ど瞬時にスケジュールおよび
サービスされるため、より高い帯域幅およびより高い優
先チャネルによる許容できないサイクル数に注意する必
要はない。
【0144】最小インターバースト遅延:このパラメー
タは、任意のチャネルがサービスされた後、スケジュー
リングプールを再結合できる前に通らなくてはならない
最小のサイクル数に関するものである。これは、8サイ
クルの倍数である。このパラメータは、或る期間大きい
サービス時間(次のパラグラフで説明する)を有する高
優先チャネル(単一または複数)を有効にブロックする
のに使用され、低優先チャネルをスケジュールすること
ができる。
【0145】転送バーストサイズ:ひとたびチャネルが
スケジュールされたならば、転送バーストサイズパラメ
ータは、チャネルが再びスケジュールされなくなる前
に、データ転送スイッチ上に発生できる実リクエストの
数を表示する。送り手チャネルについては、これは、バ
ッファにもたらされるべきデータに対して発生するリク
エスト数を表示する。このパラメータの値が大きいほ
ど、特定チャネルのサービス時間が長くなる。各リクエ
ストは、最大32バイトを請求しかつ一度に32バイト
のデータを送ることができる。チャネルは、これがその
バーストサイズカウントを使い切るまでスケジュールさ
れた発生リクエストを持続しかつ記述子の休止ビットに
遭遇し、これ以上の記述子をメモリからフェッチする必
要はない。
【0146】DTS優先:リクエストバスアービタまたは
データ転送スイッチのメモリデータバスアービタに対す
る各リクエストには、リクエスタ(requestor)による
優先が伴う。両アービタは4つの優先レベルをサポート
し、チャネルによる転送に使用される優先は、チャネル
状態に予めプログラムされる。SDRAMページがヒットす
るためには、メモリコントローラキュー内で隣接する同
じチャネルから多数のリクエストを取得することが重要
であると考えられるときには、より高い優先が使用され
る(0が最高優先、3が最低優先)。
【0147】ベースアドレス、ウェイマスク、および記
述子フェッチモード:メモリ−メモリ移動については、
(正解をもつ)データ経路構造の入力は任意である。入
力されない場合には、システムは、種々のパラメータに
対して幾つかのデフォルト値をとる。これらのデフォル
ト値が下記の表に示されている。
【0148】メモリ−I/OまたはI/O−メモリの経路をリ
クエストするとき、システムはデータ経路構造を形成す
る。このことは、どの転送がI/O転送であり、従ってチ
ャネル割当てを必要としないのかをシステムに表示する
ブール(booleans)の設定を可能にする。メモリ転送へ
のI/Oについては、バッファサイズおよびチャンクサイ
ズ等のパラメータは、メモリ−メモリ転送についてのも
のよりも一層適切なものである。なぜならば、転送パラ
メータをI/Oデバイス帯域幅条件に一致させることが重
要だからである。
【0149】本発明の一実施形態によれば、データ経路
は、データ転送演算に対するリクエストに応答してリク
エストされる。ソフトウェア制御に基いたシステムで
は、カーネルは、セットされたパラメータの実値を埋め
るデータ経路構造およびアプリケーションがidを開始す
るのに使用するチャネルのidを返却する。経路がI/Oデ
バイスを含む場合には、バッファidも返却される。この
バッファidは、アプリケーションにより当該I/Oデバイ
スについてのデバイスドライバ呼出しへ通知される。デ
バイスドライバは、この値を使用してI/Oデバイスを準
備させ、当該データストリーマバッファへのデータ転送
をスタートさせる。ユーザアプリケーションが、得られ
たDS経路資源の形式(パラメータ)によっては満足され
ない場合には、経路を閉じて、後で再びトライすること
ができる。
【0150】記述子プログラム データ転送は、チャネル状態メモリフィールドにフォー
マット1記述子およびフォーマット2記述子のように特
定されている2形式の記述子に基づいている。本発明の
一実施形態によれば、フォーマット1記述子は、多くの
3Dグラフィックアプリケーションおよびビデオ画像ア
プリケーションの性質に基づいて定められる。
【0151】一般に、FIG.12に示すように、画素
情報は、ディスプレイすることを意図した画素と同じ構
成で散乱された位置に記憶される。ときには、「n」個
のデータピースすなわち画素が、メモリ空間の「スター
ト送り手データ位置=x」でスタートするn個の位置か
ら、「スタート受け手データ位置=y」で始まる1つの
隣接位置内に一緒に収集されるデータ収集演算を続行す
ることが望まれる。収集されたデータの各ピースは10
バイト幅であり、かつ次のデータから22バイト(ピッ
チ)で分離される。FIG.12に示すような転送をで
きるようにするには、2つの別々の記述子、すなわち、
1つは送り手からバッファメモリ714(FIG.7)
への転送を取り扱う送り手チャネル用記述子、他はバッ
ファメモリから受け手への転送を取り扱う受け手チャネ
ル用記述子をセットアップする必要がある。
【0152】FIG.13は、本発明の一実施形態によ
るフォーマット1記述子用データ構造220を示す。記
述子220のサイズは2つの8バイト語からなる16バ
イトである。下記表は、記述子の異なるフィールド、お
よびデータ転送演算中に各フィールドが如何に用いられ
るかを記述する。
【0153】1.次の記述子:最初の32ビットは、他
の記述子のアドレスを保持する。これにより、幾つかの
記述子を複雑な転送パターンまたは単一の記述子を用い
ては記述されない転送パターンに一体に連鎖させること
ができる。
【0154】2.記述子制御フィールド:このフィール
ドの16ビットが次のように解釈される。
【0155】 [15:14]−未使用 [13]−ホストcpuに割り込み(この記述子の完了時) [12]−マルチメディアプロセッサ100のcpuに割り込み(この記述子の 完了時) [11:9]−ソフトウェア使用のためのリザーブ [8]−ノーモア記述子(これがこの連鎖の最後の記述子であるときにセット される) [7:4]−データフェッチモード(この記述子によりフェッチされるか、送 られるすべてのデータ) [7]:キャッシュモード0=>コヒーレント、1=>非コヒーレ ント [6]:1=>ウェイマスク使用、0=>ウェイマスク非使用 [5]:1=>データキャッシュ内の割当て、0=>データキャッ シュ内の非割当て [4]:1=>PIO空間内のデータ、0=>not [3]−1にセットした場合には、プリフェッチ禁止 [2]−1へのセットの記述子の端部での停止 [1:0]−記述子フォーマット形式 00:フォーマット1 01:フォーマット2 10:制御記述子 内または外に転送されるデータの存在をデータキャッシ
ュがチェックしたか否かを、コヒーレンシービットが表
示することに留意されたい。本発明の1つの好ましい実
施形態によれば、このビットは、データがCPU102ま
たは104によりキャッシュ内にもたらされていないこ
とをシステムが決定していなければターンオフされない
ことが望まれる。このビットをターンオフすると、キャ
ッシュ108のバイパスによりパフォーマンスが向上す
る。なぜならば、ビットのターンオフにより、キャッシ
ュへのロードが低減し、かつ読取りまたは書込みの待ち
時間が短縮されるからである(キャッシュ内の非割当て
を選択する場合には、データキャッシュキューの充満に
基づいて2〜18サイクル)。
【0156】ウェイマスクは、データキャッシュ108
が多数のウェイを有する環境で使用される。例えば、本
発明の一実施形態によれば、データキャッシュ108は
4つのウェイを有し、各ウェイは4kバイトを有してい
る。本発明の範疇内では、データキャッシュの各ウェイ
は、特定のデータ形式を記憶すべく構成された別のメモ
リ空間として定められる。「ウェイマスク使用」のビッ
トは、ウェイマスクを、データキャッシュへの現在の記
述子により開始されるすべてのトランザクションに使用
すべきであるか否かを単に表示する。
【0157】「割当て」、「非割当て」ビットは、コヒ
ーレントビットがセットされる場合にのみ適合する。基
本的に、非割当ては、ユーザが、データキャッシュがも
はや存在しない場合に、コヒーレンシーの理由からデー
タキャッシュのチェックを望むときで、データがデータ
キャッシュに終了することを望まないときには有効であ
る。割当ては、cpuが計算を開始する前に、ユーザがメ
モリからの或るデータをデータキャッシュに予めロード
することを望むときにセットされなくてはならない。
【0158】表20は、データフェッチモードに関する
記述子制御領域のビット7:4のコヒーレントと割当て
ビットの種々の値に対してとるべきアクションを示す。
【0159】
【表20】
【0160】記述子の説明に戻ると、PIOビットは、デ
ータをPIO(Programmed I/O: プログラムされたI/O)ア
ドレス空間から(または該空間へと)転送するときに必
要とされる。例えば、データストリーマ122は、デー
タストリーマバッファメモリ(PIOアドレス空間内にあ
るバッファメモリ)を読取るのに使用される。
【0161】ユーザレベルからのデータストリーマ12
2と同期させるための停止ビット(halt bit)が使用さ
れる。セットされると、データストリーマ122は、こ
れがこの記述子により表示されたすべてのデータの転送
を行ったときにチャネルを停止させる。データストリー
マはまた、「ノーモア記述子(no more descriptor
s)」ビットがセットされると停止する。
【0162】データストリーマが記述子をフェッチし、
かつその実行を開始すると、データストリーマは、次の
記述子のプリフェッチを直ちに開始する。ユーザは、
「プリフェッチ禁止(prefetch inhibit)」ビットをセ
ッティングすることによりこのプリフェッチ処理を禁止
する。これは、停止ビットもセットされるときにのみ有
効である。すなわち、まったく停止しない場合には、プ
リフェッチの禁止を試みることは無意味である。
【0163】下記リストに示すように、データフェッチ
モードビットのすべての組合せが有効な訳ではない。例
えば、「割当て(allocate)」および「ウェイマスク使
用(use way mask)」は、データキャッシュがターゲッ
トであるときに意味を有するに過ぎない。なぜならば、
データキャッシュは、PIO=1および(他のビット)=
1が使用されないPIOアクセスの任意の組合せを受け入
れないからである。
【0164】 コヒーレント ウェイマスク使用 割当て PIO空間 0 0 0 1 有効PIO 1 − − 1 無効 − 1 − 1 無効 − − 1 1 無効 0 0 0 0 有効−非コヒーレント 0 1 − − 無効 0 − 1 − 無効 1 0 0 0有効−コヒーレント非割当て 1 0 1 0有効−コヒーレント割当て 1 1 0 0無効 1 1 1 0有効−コヒーレント割当て、マスクト゛ 3.カウント:これは、この記述子を用いて転送される
データピース数を示す。
【0165】4.幅:これは、所与の位置からピックア
ップされるバイト数である。
【0166】5.ピッチ:これは、次のバイトに転送さ
れる最終バイトとの間のオフセット距離である。受け手
は連続しており、従ってピッチは0である。ピッチは、
収集されたデータ位置がメモリを通って後方移動できる
ようにする符号付きの値である。
【0167】6.データ位置アドレス:これは、この記
述子のための第1バイトが配置されるアドレスである。
例1において、送り手側では、これは「x」であり、受
け転送では「y」である。チャネル1により使用される
すべてのデータ位置アドレスは、最初にベースアドレス
に付加される。このベースアドレス値は、チャネルの状
態メモリに保持される。チャネルが、ds open patc
h()コールにより初期化されるとき、ベースアドレス
値はゼロにセットされる。この値は、制御記述子(後
述)を用いてユーザが変えることができる。
【0168】下記表21は、SDRAM128からデータキ
ャッシュ108内へのデータ転送すなわち、キャッシュ
プリロード演算について、送り手および受け手転送用記
述子をどのように構成するかを示す。
【0169】送り手での制御語は、コヒーレントデータ
演算を表示するが、割当ては行わない。ノーモア記述子
が存在しないので停止ビットはセットされず、このデー
タが転送されると、チャネルは自動的に停止する。「ノ
ーモア記述子」ビットはセットされなくてはならない。
【0170】
【表21】
【0171】表22の受け手記述子のための制御語は、
キャッシュミス時にキャッシュに割当てるコヒーレント
基準(coherent reference)を作ることにより、データ
キャッシュがターゲットであることを示す。送り手の場
合には停止ビットはセットされない。なぜならば、この
転送がなされると次の記述子フィールドがゼロになっ
て、チャネルが自動的に停止するからである。また、
「ノーモア記述子」ビットが、送り手の場合についてセ
ットされる。
【0172】
【表22】
【0173】フォーマット2記述子 FIG.14は、本発明の一実施形態によるフォーマッ
ト2記述子に対応するデータ構造240を示す。フォー
マット2記述子によるデータ移動演算は、多くの点で、
フォーマット1記述子と同様である。しかしながら、フ
ォーマット1記述子構造とは異なる1つの点は、ユニー
クなデータ位置アドレスが、転送すべきことを意図した
各データブロックに供給されることである。また、フォ
ーマット2記述子によるデータ構造はピッチフィールド
を用いていない。フォーマット2記述子は、幅が同一
(但し、或る均一ピッチで分離されてはいない)である
幾つかのデータピースの転送を望むときにデータ転送演
算に用いられる。
【0174】従って、フォーマット2記述子の第1フィ
ールドは、次の記述子アドレスを含んでいる。カウント
フィールドは、転送すべきことを意図したデータピース
の番号を含んでいる。FIG.13に関連して述べたよ
うに、制御フィールド仕様はフォーマット1記述子の仕
様と同じである。幅フィールドは、転送すべきことを意
図したデータピースの幅を特定する。本発明の一実施形
態によれば、フォーマット2記述子は、コヒーレントア
クセスについては16バイト境界に、非コヒーレントア
クセスについては8バイト境界に整合される。フォーマ
ット2記述子の長さは、16バイトから、16より大き
い4バイトの倍数まで変化する。
【0175】データ転送スイッチインタフェース FIG.9は、本発明の一実施形態によるデータ転送ス
イッチ(data transfer switch: DTS)のブロック図で
あるが、本発明の範囲はこれに限定されるものではな
い。データ転送スイッチインタフェースは、データ転送
スイッチ112(FIG.1A)を介してデータを転送
するマルチメディアプロセッサ100のすべての構成要
素に用いられている。
【0176】DTSインタフェース718は、データ転送
スイッチ112のリクエストバス118に接続されたバ
スリクエスタ760を有している。バスリクエスタ76
0は、リクエスト信号をリクエストバスキュー(reques
t bus queue: RQQ)764に供給すべく構成されたリク
エストイッシャ762を有している。リクエストバスキ
ュー764は、ファーストカムファーストサーブドベー
スでデータおよび記述子リクエストを保持する先入れ先
出し(FIFO)バッファである。
【0177】リクエストバスキュー764の他の入力ポ
ートは、転送エンジン702により発生された読取り/
書込みリクエストを、発生および更新段746を介して
受けるように構成されている。読取りリクエストは、デ
ータおよびチャネル記述子に対するリクエストを有して
いる。書込みリクエストは、送り出されるデータに対す
るリクエストを有している。
【0178】イッシャ762は、リクエスト信号を、デ
ータ転送スイッチのリクエストバスアービタ140に送
るように構成されている。認識すると、バスアービタ7
60は、先入れ先出しリクエストキュー764の先頭に
入れられたリクエストを送る。データ転送スイッチのリ
クエストバスアービタ140により認識されないリクエ
ストは、数サイクル後に、リクエストキュー764から
除去され、かつその最後尾に再び入れられる。かくし
て、データ転送演算は、特定バススレーブまたはレスポ
ンダが準備されないときの不合理的遅延を回避する。前
述のように、異なるレスポンダに対するリクエストは異
なるチャネルに対応する。かくして、キューからリクエ
ストを除去するメカニズムは、本発明の一実施形態によ
り、1つのチャネルが他のすべてのチャネルを前進させ
ないように保持すべく設計されている。
【0179】データ転送スイッチインタフェースはま
た、プロセッサメモリバス(PMB)レシーブFIFOバッフ
ァ776と、PMBリオーダテーブル778と、内部メモ
リバス(internal memory bus: IMB)レシーブFIFO77
4と、IMBリオーダテーブル780とを有するレシーブ
エンジン772を有している。PMBレシーブFIFOバッフ
ァ776の出力ポートは、データスイッチバッファコン
トローラ(data switchbuffer controller: DSBC)70
6および転送エンジン702の演算スケジューラ742
に接続されている。同様に、IMBレシーブFIFO774の
出力ポートは、データスイッチバッファコントローラ7
06および転送エンジン702の演算スケジューラ74
2に接続される。イッシャ762の出力ポートは、プロ
セッサメモリバス(PMB)の入力ポートおよび内部メモ
リバス(IMP)リオーダテーブル780の入力ポートに
接続される。PMBリオーダテーブル778の他の入力ポ
ートは、データバス114からデータを受けるように構
成されている。同様に、IMBリオーダテーブル780の
他の入力ポートは、データバス120からデータを受け
るように構成されている。
【0180】プロセッサメモリバス(PMB)リオーダテ
ーブル778または内部メモリバス(IMB)リオーダテ
ーブル780は、それぞれ、依然として突出している読
取りリクエストに対応するインデックスを記憶する。こ
れらのインデックスとして、読取りリクエストに対して
発生されるトランザクション識別信号(ID)と、各読取
りリクエストに割当てられる対応バッファ識別信号(I
D)と、データを受けたときに、データを処理するのに
必要な対応バッファアドレスおよび他の情報とがある。
【0181】先入れ先出しバッファ776、774は、
戻されたデータが、バッファデータが戻される状況での
データストリーマバッファコントローラ706、または
記述子がメモリ位置から検索される状況での転送エンジ
ン702により受け入れられるまで、前記戻されたデー
タを保持するように構成されている。
【0182】イッシャ762は、テーブル778、78
0が充満されるまで停止する。これにより、転送エンジ
ン702のパイプが停止される。本発明の一実施形態に
よれば、各テーブル778、780は、1バス当たり8
個の突出リクエストをサポートする。戻りデータのバッ
ファアドレスを記憶するテーブルを使用することによ
り、故障データ(out-of-order data)の戻りを取り扱
うことができる。データストリーマバッファコントロー
ラに関連してより詳細に説明するように、バッファメモ
リ714に記憶される各バイトとして、バッファコント
ローラの対応論理に関連して故障データの戻りが正しく
取り扱われることを確実にする有効ビット表示信号があ
る。
【0183】データ転送スイッチインタフェース718
はまた、プロセッサメモリバス(PMB)伝送エンジン7
66を備えた伝送エンジン(transmit engines)782
と、内部メモリバス(IMB)伝送エンジン770とを有
し、これらの両エンジンは、先入れ先出し(FIFO)バッ
ファである。バッファ768は、それぞれ伝送エンジン
766、770からリクエスト信号を受けて、データバ
スリクエストをそれぞれデータバスアービタ140、1
42に送るように構成されている。各伝送エンジンはま
た、データストリーマバッファコントローラ706から
データを受けて、対応データバスに伝送するようにも構
成される。
【0184】演算中、リクエスト−リクエストバス11
8が読取りデータに使用されるときは、イッシャ762
は、これがリクエストバスアービタ140からの信号を
受けると、アドレスをリクエストバス118に供給す
る。イッシャ762はまた、それぞれリオーダテーブル
778、780に登録し、突出したリクエスト(outsta
nding requests)のトラックを維持する。リクエストが
書込みデータに使用される場合には、イッシャは、アド
レスをリクエストバス118に出力し、かつリクエスト
を、データストリーマバッファコントローラ706によ
り使用するための内部FIFOバッファ716(FIG.
7)をキューする。バッファコントローラ706は、こ
のキューを試験し、かつデータストリーマバッファコン
トローラ706に関連してより詳細に後述するように、
書込みデータに対するリクエストを行う。
【0185】FIG.10は、本発明の一実施形態によ
るデータストリーマバッファコントローラ706のブロ
ック図であるが、本発明の範囲はこれに限定されるもの
ではない。データストリーマバッファコントローラ70
6は、バッファメモリ714を管理し、かつ転送エンジ
ン702により発生された読取り/書込みリクエストお
よびFIG.1のDMAコントローラ138およびPIOコン
トローラ126により発生されたリクエストを取り扱
う。
【0186】データストリーマバッファコントローラ7
06は、バッファ関連機能を処理する2つのパイプを有
している。データストリーマバッファコントローラ70
6の第1処理パイプは、プロセッサメモリバス(PMB)
パイプと呼ばれ、第2パイプは内部メモリバス(IMB)
パイプと呼ばれる。各パイプの演算は、PMBパイプがプ
ロセッサメモリバス114に追い出される転送エンジン
のデータリクエストを取り扱いかつIMBパイプが内部メ
モリバス120に追い出される転送エンジンのデータリ
クエストを取り扱う点を除いて、同じである。
【0187】FIG.10に示すように、各パイプは3
つの別々のデータ入力を受けるように構成されている。
このため、データストリーマバッファコントローラ70
6はプロセッサメモリバスPMBパイプ演算スケジューラ
802を有し、該スケジューラ802は、次の3つの入
力信号を受けるように構成されている。すなわち、3つ
の信号とは、(1)プログラム可能な入力/出力(PI
O)コントローラ126からのすべてのリクエスト信
号、(2)プロセッサメモリバス(PMB)およびデータ
転送スイッチ718(FIG.9)のレシーブFIFOバッ
ファ776から受けるデータ信号(これらのデータ信号
は、ひとたび適当なチャンクサイズが特定チャネルのバ
ッファメモリ714内に充満されると検索されるように
バッファメモリ714に書込まれることが意図されてい
る)、および(3)特定チャネルのバッファメモリ71
4から適当なデータを検索するための転送エンジン読取
り信号である。検索されたデータは、次に、FIG.1
およびFIG.9に示すように、データストリーマ12
2のデータ転送スイッチインタフェース718を介して
受け手に送られる。
【0188】演算スケジューラ802は、実行順序を、
上記入ってくる演算リクエストに割当てる。本発明の一
実施形態によれば、プログラム可能な入力/出力(PI
O)演算が最高優先で与えられ、次に、バッファメモリ
714からデータを検索するためのバッファ読取り演算
が続き、最低優先が、バッファメモリ714にデータを
書込むためのバッファ書込み演算に与えられる。かくし
て、読取り演算は、FIG.9に関連して説明した適当
なFIFOバッファの書込み演算をバイパスする。データが
受け手メモリをターゲットとするか、受け手メモリから
到達した場合には、データは、バッファメモリ714か
ら送られる前、またはバッファメモリ714に書込まれ
る前に整合される必要があることに留意されたい。
【0189】演算スケジューラ802の出力ポートは、
フェッチ段804の入力ポートに接続される。フェッチ
段804の他の入力ポートは、バッファ状態メモリ70
8の出力ポートに接続される。
【0190】演算スケジューラ802がひとたび次の演
算を決定すると、フェッチ段804は、バッファ状態メ
モリ708からの適当なバッファメモリ情報を検索し
て、バッファメモリ714の一部である対応チャネルバ
ッファへの書込みまたは読取りを行なう。
【0191】フェッチ段804の出力ポートはメモリパ
イプ段806に接続され、該メモリパイプ段806は、
バッファメモリ714への書込みおよび読取りリクエス
トを処理するように構成されている。メモリパイプ段8
06はバッファ状態メモリ708に接続され、データ転
送演算中に1つまたは2つのチャネルに割当てられる対
応バッファに関するバッファ状態メモリレジスタを更新
する。メモリパイプ段806もバッファメモリ714に
接続されて、データをバッファメモリに書込みかつバッ
ファメモリからデータを受け入れる。メモリパイプ段8
06の出力ポートはプロセッサメモリバス(PMB)伝送
エンジン766に接続されて、バッファメモリ714か
ら検索されたデータをデータ転送スイッチ718に送
り、データ転送スイッチ112を介して受け手アドレス
へと更に伝送する。メモリパイプ段806の他の出力ポ
ートはプログラム可能な入力/出力(PIO)コントロー
ラ126に接続され、バッファメモリから検索されたデ
ータを、マルチメディアプロセッサ100に接続された
受け手入力/出力デバイスへと送る。
【0192】データストリーマバッファコントローラ7
06はまた、内部メモリバス(IMB)パイプ演算スケジ
ューラ808を有し、該スケジューラ808は次の3つ
の入力信号を受けるように構成されている。すなわち、
これらの入力信号とは、(1)DMAコントローラ712
からのすべてのリクエスト信号、(2)内部メモリバス
(IMB)およびデータ転送スイッチ718(FIG.
9)のレシーブFIFOバッファ774から受けるデータ信
号(これらのデータ信号は、ひとたび適当なチャンクサ
イズが特定チャネルのバッファメモリ714内に充満さ
れると検索されるようにバッファメモリ714に書込ま
れることが意図されている)、および(3)特定チャネ
ルのバッファメモリ714から適当なデータを検索する
ための転送エンジン読取り信号である。検索されたデー
タは、次に、FIG.1およびFIG.9に示すよう
に、データストリーマ122のデータ転送スイッチイン
タフェース718を介して受け手に送られる。
【0193】演算スケジューラ808は、実行順序を、
上記入ってくる演算リクエストに割当てる。本発明の一
実施形態によれば、DMAが最高優先で与えられ、次に、
バッファメモリ714からデータを検索するためのバッ
ファ読取り演算が続き、最低優先が、バッファメモリ7
14にデータを書込むためのバッファ書込み演算に与え
られる。かくして、読取り演算は、FIG.9に関連し
て説明した適当なFIFOバッファの書込み演算をバイパス
する。データが受け手メモリをターゲットとするか、受
け手メモリから到達した場合には、データは、バッファ
メモリ714から送られる前、またはバッファメモリ7
14に書込まれる前に整合される必要があることに留意
されたい。
【0194】演算スケジューラ808の出力ポートは、
フェッチ段810の入力ポートに接続される。フェッチ
段810の他の入力ポートは、バッファ状態メモリ70
8の出力ポートに接続される。演算スケジューラ802
がひとたび次の演算を決定すると、フェッチ段804
は、バッファ状態メモリ708からの適当なバッファメ
モリ情報を検索して、バッファメモリ714の一部であ
る対応チャネルバッファへの書込みまたは読取りを行な
う。
【0195】フェッチ段810の出力ポートはメモリパ
イプ段812に接続され、該メモリパイプ段812は、
バッファメモリ714への書込みおよび読取りリクエス
トを処理するように構成されている。メモリパイプ段8
12はバッファ状態メモリ708の入力ポートに接続さ
れ、データ転送演算中に1つまたは2つのチャネルに割
当てられる対応バッファに関するバッファ状態メモリレ
ジスタを更新する。メモリパイプ段812はバッファメ
モリ714に接続されて、データをバッファメモリに書
込みかつバッファメモリからデータを受ける。メモリパ
イプ段812の出力ポートは内部メモリバス(IMB)伝
送エンジン770に接続されて、バッファメモリ714
から検索されたデータをデータ転送スイッチ718に送
り、データ転送スイッチ112を介して受け手アドレス
へと更に伝送する。メモリパイプ段812の他の出力ポ
ートはDMAコントローラ712に接続され、バッファメ
モリ714から検索されたデータを、マルチメディアプ
ロセッサ100に接続された受け手入力/出力デバイス
へと送る。
【0196】バッファメモリ714はデュアルポート型
であるので、上記各パイプは、接続することなく両バッ
ファメモリバンク714a、714bにアクセスでき
る。前述のように、本発明の一実施形態によれば、バッ
ファメモリ714は4KB SRAMメモリである。データア
レーは、1ライン当たり8バイトとして組織化されかつ
一度に8バイトアクセスされる。複数の小さいバッファ
部分がバッファメモリ714内に分割されており、ここ
で、各バッファ部分は、データ転送演算中に特定チャネ
ルに割当てられる。
【0197】バッファメモリ714には、バッファメモ
リ内に8バイトのライン当たり8ビットを保持する有効
ビットメモリが付随する。有効ビットの値は、特定バイ
トが有効であるか否かを表示するのに使用される。有効
ビットは、対応する割当てバッファが充満されるたびご
とにフリップされる。これにより、割当てられたバッフ
ァ部分を、これがデータ転送演算中に使用されるたびご
とに再初期化する必要をなくすことができる。しかしな
がら、バッファが経路に割当てられるたびごとに、有効
ビットアレーの対応ビットはゼロに初期化されなくては
ならない。
【0198】バッファ状態メモリ 前述のように、バッファ状態メモリ708は、これがサ
ポートする64個の各バッファの状態を保持する。各バ
ッファ状態は、バッファ状態メモリ1(BSM1)およびバ
ッファ状態メモリ2(BSM2)と呼ばれる2つの64ビッ
トサブフィールドに分割される128個のビットフィー
ルドを有している。テーブル23、24は、バッファ状
態メモリのビットおよびフィールドを記述する。
【0199】
【表23】
【0200】
【表24】
【0201】DMA CONTROLLER FIG.11は本発明の一実施形態によるDMAコントロ
ーラ138を示すが、本発明の範囲はこれに限定される
ものではない。前述のように、DMAコントローラ138
は、入力/出力バス132およびデータストリーマバッ
ファコントローラ706に接続されている。
【0202】優先アービタ202は、I/Oバス132
に接続された1つ以上のI/Oデバイスから直接メモリ
アクセスDMAを受けるように構成されている。
【0203】入ってくるDMAリクエストバッファ204
は、I/Oバスに接続されかつリクエストが認識されたI/O
デバイスから関連リクエストを受けるように構成されて
いる。各I/Oデバイスは、所望のバッファメモリ、バイ
トの数およびバッファへの入力またはバッファからの出
力のような転送形式のバッファ表示を有するリクエスト
データを特定化する。各リクエストは、入ってくるDMA
リクエスト204のバッファに記憶されて、DMAリクエ
ストキューを形成する。DMAリクエストバッファ204
の出力ポートは、FIG.10に関連して説明したよう
に、データストリーマバッファコントローラ706に接
続される。
【0204】入ってくるDMAデータバッファ206はま
た、I/Oバス132に接続され、かつリクエストが認識
されておりかつリクエストデータが入ってくるDMAリク
エストバッファ204に供給されているI/Oデバイスに
より送られるべきことを意図したデータを受けるように
構成されている。DMAデータバッファ206の出力ポー
トは、FIG.10に関連して説明したように、データ
ストリーマバッファコントローラ706に接続されてい
る。
【0205】出ていくDMAデータバッファ208は、ま
た、I/Oバス132にも接続されておりかつI/Oデバイス
に送るべきことを意図したデータを伝送するように構成
されている。出ていくDMAデータバッファ208は、F
IG.10に関連して説明したように、データストリー
マバッファコントローラ706からデータを受けるよう
に構成されている。
【0206】かくして、演算中に、DMAコントローラ1
38は2つの重要な機能を遂行する。第1に、DMAコン
トローラ138は、DMAリクエストを行うことを意図し
たI/Oデバイス間の仲裁を行う。第2に、DMAコントロー
ラ138は、データストリーマバッファコントローラに
送られるDMAリクエストおよびデータ、およびI/Oバス1
32を介してI/Oデバイスに送られるデータに対するバ
ッファリングを行う。DMAリクエストを行うI/Oデバイス
は、第1に、優先アービタ202がI/Oバスにアクセス
してその意図したデータを転送することをリクエストす
る。アービタ202は、異なるI/Oデバイス間の仲裁を
行うことをI/Oデバイスによって特定されるDMA優先値を
用いる。DMAコントローラ138は、I/Oデバイスから送
られるデータについてI/Oデバイスからくるデータに高
度の優先を割当てる。デバイスの優先に従って、矛盾す
るリクエストが仲裁される。
【0207】好ましくは、DMAコントローラ138に対
するデバイスリクエストは、完全なパイプライン型の、
1サイクル当たりの速度でサービスされる。アービタ2
02は、4つの優先レベルをもつラウンドロビン優先ス
ケジューラ構成を用いている。リクエストするI/Oデバ
イスがアービタ202からの認可信号を受けると、I/O
デバイスは、そのリクエストデータをDMAリクエストバ
ッファリング204に供給する。リクエストが出力リク
エストである場合には、リクエストは、データストリー
マバッファコントローラ706に直接供給される。リク
エストデータに収容されるバッファ識別に関連するバッ
ファが、データ転送に適合するほど充分に大きくない場
合には、データストリーマバッファコントローラは、DM
Aコントローラ138に知らせ、該コントローラ138
は、非肯定応答NACK表示(not acknowledge NACK indic
ation)をI/Oデバイスに戻す信号を送る。
【0208】I/Oデバイスからのリクエストがデータ入
力である場合には、DMAコントローラは、I/Oデータバス
の1サイクルを得るときに、I/Oデバイスに信号を送っ
てそのデータをI/Oバス132に供給する。データスト
リーマバッファコントローラは、該コントローラがバッ
ファのオーバーフローまたはアンダーフローを検知する
と割込み信号を発生する。割込み信号は、次に、マルチ
メディアプロセッサ100の演算を制御するプロセッサ
に伝送される。
【0209】DMAコントローラ138は、各リクエスト
のバッファ識別を用いて、リクエストされたバイトをバ
ッファに(またはバッファから)移動させるデータスト
リーマバッファコントローラ706を介して、経路の正
しいバッファにアクセスする。
【0210】データストリーマチャネル機能の例示演算
を、データストリーマ122についての異なるステップ
のフローチャートを示すFIG.15A〜FIG.15
Cを参照して以下に詳細に説明する。
【0211】データ転送演算に対するリクエストに応答
して、チャネルの状態は、例えばステップ302でのds
open patchと呼ばれるコマンドにより最初に初期化さ
れる。ステップ304では、データ経路をセットアップ
するための利用可能な資源がチェックされ、バッファメ
モリおよび1つまたは2つのチャネルがデータ転送演算
に対するリクエストに応答して割当てられる。
【0212】ステップ306では、適当な値が、表23
および表24に関連して説明した値に従って、新しいデ
ータ経路のバッファ状態メモリ708に書き込まれる。
ステップ308では、有効ビットが、バッファに使用さ
れる割当てデータRAMの部分に対応する位置でバッファ
メモリ714にリセットされる。ステップ310では、
各割当てチャネルについては、表13〜表19に従っ
て、対応チャネル状態メモリ位置が、チャネル状態メモ
リ704で初期化される。
【0213】データ経路がステップ302〜310に従
ってひとたび定められたならば、初期化されたチャネル
がステップ312においてアクティブにされる。本発明
の一実施形態によれば、チャネルのアクディブ化は、ds
kickコマンドと呼ばれるソフトウェアコールである。
内部的には、このコールは、FIG.10〜FIG.1
2に関連して説明したようなPIOマップに特定化されたP
IOアドレスへの非キャッシュ書込みであるチャネルds k
ick演算に変換する。チャネル状態メモリに記憶された
値は、記述子220(FIG.13)または記述子24
0(FIG.14)のような記述子のアドレスであり、
チャネルは実行を開始する。
【0214】ステップ314では、転送エンジン702
は、PIOコントローラ126からチャネルアクティブ化
信号を受け、かつこの信号に応答して、記述子アドレス
をチャネル状態メモリ704の対応位置に書き込む。ス
テップ316では、転送エンジン702は、チャネルア
クティブ化信号が送り手(バッファへの入力)チャネル
に対するものであるか否かを決定する。そうであれば、
ステップ318において、バッファサイズ値が、表15
に示したような剰余チャンクカウント(remaining chun
k count: RCCNT)で書き込まれる。送り手チャネルに対
する剰余チャンクカウントの値は、このデータ転送のた
めに割当てられたバッファメモリの空き空間の数、従っ
てチャネルがバッファ内に安全にフェッチできるバイト
数を表示する。受け手チャネルに対する剰余チャンクの
値は、バッファの有効バイト数、従ってチャネルが安全
に転送できるバイト数を表示する。
【0215】最後に、ステップ320で、転送エンジン
702は、表15に示したようなチャネル状態メモリの
対応位置にアクティブフラグをターンオンする。割当て
送り手チャネルのチャネル状態メモリ704の対応イン
ターバースト遅延フィールドもゼロにセットされる。
【0216】ステップ324では、チャネルが演算スケ
ジューラ742(FIG.8)に供給される。各チャネ
ルは、転送エンジン702(FIG.8)の演算スケジ
ューラ742によるスケジューリングであると考えら
れ、チャネルがゼロインターバースト遅延カウントを有
するとき、そのアクティブフラグがターンオンされかつ
その対応剰余チャンクカウント(RCCNT)が非ゼロ数と
なる。
【0217】チャネルのターンがスケジューラ742に
到達すると、転送エンジン702が、ステップ326で
記述子フェッチ演算をスタートさせる。記述子がデータ
転送スイッチインタフェース718(FIG.9)を介
して到達すると、レシーブエンジン772は、到達した
記述子を転送エンジン702にルーチングする。ステッ
プ328では、記述子の値が、チャネル状態メモリ70
4の割当てられたチャネル位置に書込まれる。ステップ
330では、送り手チャネルが、転送データをバッファ
メモリ714の割当てバッファにスタートさせる準備が
なされる。
【0218】送り手チャネルがスケジューリングされる
と、次の記述子のプリフェッチが開始され、ステップ3
32では、FIG.9のデータ転送スイッチインタフェ
ース718のバッファキューRQQ764をリクエストす
べく付加されるデータに対する読取りリクエストメッセ
ージを発生する。本発明の一実施形態によれば、次の記
述子のプリフェッチが、FIG.13およびFIG.1
4に関連して説明したような制御語記述子に停止ビット
およびプリフェッチビットの両方をセッティングするこ
とにより、ユーザにより禁じられることに留意された
い。また、プリフェッチは、「最終記述子」ビットが現
在の記述子の制御語にセットされるときには遂行されな
い。
【0219】リクエストキュー764に付加される読取
りリクエストの数は、幾つかのパラメータに基づいて定
まる。例えば、このような1つのパラメータとして、現
在作動しているチャネルについてチャネル状態メモリに
書込まれるバーストサイズがある。バーストサイズは、
1つのリクエストコマンドにより開始されるデータ転送
サイズを表示する。好ましくは、チャネルの単位スケジ
ュール当たりに発生されるリクエスト数がバーストサイ
ズを超えることはない。他のパラメータは剰余チャンク
カウントである。例えば、3、ffのバーストサイズでは
バッファサイズは64バイトであり、従って2つのリク
エストが発生される。なぜならば、本発明の一実施形態
によれば、各データ転送スイッチリクエストが32バイ
トを超えないからである。他のパラメータは、記述子の
幅、ピッチおよびカウントフィールドである。例えば、
幅が、4のカウント(この場合には3のバーストサイズ
および64の剰余チャンクカウントRCCNTとなる)につ
いて32バイトのピッチで分離される8バイトである場
合には、チャネルは、8バイトの長さの3つの読取りリ
クエストを発生する。次に、以後のカウントに対する記
述子の必要性を満たす最終リクエストを発生すべくチャ
ネルの他のスケジュールがとられる。
【0220】チャネル334でひとたびチャネルがその
読取りリクエストを完了すると、剰余チャンクカウント
の値は適当に減分(decremented)される。インターバ
ースト遅延カウントフィールドは、特定化できる最小イ
ンターバースト遅延値にセットされる。このフィールド
は、ステップ338で、8サイクルずつ減分される。こ
のフィールドの値がステップ340でゼロにされると、
チャネルは、その作動を継続すべく再びスケジューリン
グされる。
【0221】ステップ342では、チャネルが再びスケ
ジューリングされる。例えば前述のように、チャネル
は、最初の8バイトを満たす1つのリクエストを発生す
る。ステップ344での記述子の完了時に、アクティブ
フラグがターンオフされ、チャネルは、表15のアクテ
ィブフラグフィールドが、例えばds continueコール
と呼ばれるデータ経路連続演算コマンド(data path co
ntinue operation command )により再びセットされる
まで、優先スケジューラ740により再び考察されるこ
とはない。ステップ346で停止ビットがセットされな
い場合には、チャネルは、プリフェッチされた記述子が
到達したか否かをチェックする。記述子が既に到達して
いれば、記述子は、ステップ350で、プリフェッチさ
れた記述子を現在位置にコピーし、ステップ352で次
の記述子のプリフェッチをスタートさせる。
【0222】転送エンジン702は、バーストサイズを
超え、剰余チャンクカウントRCCNTが尽き、停止ビット
に遭遇し、次の記述子が未だ到達していないか、最終記
述子が到達するまで、このチャネルの読取りリクエスト
を発生し続ける。
【0223】FIG.15Aを参照し、ステップ316
で現在考察されているチャネルが受け手チャネルである
ときには、ステップ380が実行される。このステップ
380では、チャネルは送り手チャネルのように直ちに
スケジューリングされない。なぜならば、剰余チャンク
カウントフィールドの値はゼロだからである。受け手チ
ャネルは、ステップ382で、送り手側が充分な数のデ
ータをその割当てバッファに転送するまで待機する。前
述のように、データを割当てバッファに供給するデータ
源は、他のチャネルまたは入力/出力(I/O)デバイス
で構成できる。データストリーマバッファコントローラ
706(FIG.10)は、入ってくるデータのトラッ
クを維持することに留意されたい。入ってくるデータの
バイト数が表23に記載された出力チャンクカウントを
超えるときは、チャンクカウントを、受け手チャネルの
転送エンジン702(FIG.8)に送る。転送エンジ
ン702は、この値を、チャネル状態メモリ704の適
当なチャネル位置の受け手チャネルのRCCNTに付加す
る。ステップ384では、このことが起こると、受け手
チャネルがスケジューリングされる準備がなされる。そ
の後、ステップ386では、転送エンジン702が、書
込みリクエストを、データ転送スイッチインタフェース
718を介してデータ転送スイッチ112に発生する。
【0224】書込みリクエストが発生される態様は、本
発明の一実施形態に従って読取りリクエストが発生され
る態様に関連して前述したのと同じ原理に基づいてい
る。かくして、考察されるべきパラメータとして、バー
ストサイズと、剰余チャンクカウント値と、ピッチ、幅
およびカウント等の記述子フィールドとがある。
【0225】ひとたび書込みリクエストアドレスがリク
エストバスに供給されたならば、データ転送スイッチイ
ンタフェース718は、ステップ388で、リクエスト
をデータストリーマバッファコントローラDSBC706に
進める。これに応答して、データストリーマバッファコ
ントローラ706(FIG.10)は、バッファメモリ
714から必要数のバイトを取り出し、検索したデータ
と整合させ、かつこれらのバイトを、FIG.8〜FI
G.10に関連して前述したように、FIG.9の伝送
エンジン782に戻す。
【0226】データキャッシュ 本発明の一実施形態によるデータキャッシュ108の構
造および演算を以下により詳細に説明するが、本発明の
範囲はこれに限定されるものではない。
【0227】FIG.17は、メモリバス114′に接
続されたデータキャッシュ108のブロック図を示す。
メモリバス114′は、ここでの説明の目的で示された
ものであることに留意されたい。従って、本発明の一実
施形態によれば、データキャッシュ108は、データ転
送スイッチ112に接続でき、従って、トランシーバ1
16を介してプロセッサメモリバス114および内部メ
モリバス120に接続できる。
【0228】データキャッシュ108は、メモリ位置
(そのコンテンツがデータキャッシュに記憶される)の
アドレスのタグビットを記憶するタグメモリディレクト
リ536を有している。データキャッシュメモリ538
は、主外部メモリに記憶されたデータのコピーを記憶す
べく、タグメモリ536に接続される。タグメモリディ
レクトリ536およびデータキャッシュメモリ538の
両者は、それぞれ、アービタ532、534を介してア
クセスできる。タグメモリ536およびデータキャッシ
ュメモリ538の各入力ポートは、より詳細に後述する
ように、「書込みデータ」を受けるように構成されてい
る。また、タグメモリ536およびデータキャッシュメ
モリ538の各入力ポートは、より詳細に後述するよう
に、「読取りデータ」を受けるように構成されている。
【0229】補充コントローラユニット(データキャッ
シュコントローラ)540は、一定セットのキャッシュ
ポリシーのすべてを遂行するのに使用される。キャッシ
ュポリシーは、キャッシュ108の演算を実行すべく選
択されたルールである。これらのポリシーの幾つかは良
く知られており、かつ本願に援用するJ. Handy著「デー
タキャッシュメモリブック(Data Cashe Memory Boo
k)」(Academic Press,Inc.1993年)に開示されて
いる。一般に、これらのポリシーとして、ダイレクトマ
ップドキャッシングvs. Nウェイキャッシング(direct-
mapped vs. N-Waycaching)、ライトスルーvs.ライトバ
ック構成(write-through vs. write-back arrangemen
t)、ラインサイズ割当ておよびスヌーピングがある。
【0230】前述のように、キャッシュの「ウェイ(wa
y)」または「バンク(bank)」は、キャッシュの結合
性(associativity)に関する。例えば、Nウェイまたは
Nバンクキャッシュは、主メモリ位置からのデータを任
意のNキャッシュ位置に記憶することができる。多ウェ
イ構成では、各ウェイまたはバンクは、それ自体のタグ
メモリディレクトリおよびデータメモリ(図示せず)を
有している。ウェイまたはバンクの数が増大すると、各
バンクのデータメモリに記憶される各メモリに対応する
タグメモリディレクトリのビット数も増大することに留
意されたい。また、ダイレクトマップドキャッシュはワ
ンウェイキャッシュである。なぜならば、任意の主メモ
リ位置は、マッチングセットビットを有する単一キャッ
シュ位置にマッピングされるに過ぎないからである。
【0231】スヌープの特徴は、コヒーレンシーを維持
すべく、バス114′のトラフィックをモニタリングす
る処理に関する。本発明の一実施形態によれば、スヌー
プユニット544は、補充コントローラ540および外
部アクセスコントローラ542の両方に接続される。メ
モリバストランザクションがデータキャッシュ108に
複製されたアドレスに生じるとき、スヌープユニット5
44はスヌープヒットを検出し、かつシステムにより使
用される書込みストラテジー(ライトバックまたはライ
トスルー)およびコヒーレンシープロトコルの両方に従
って適当な作動を行う。本発明の一実施形態によれば、
データキャッシュ108は、データストリーマ122に
より遂行されるデータ転送演算にスヌープ機能を遂行す
る。
【0232】補充コントローラ540の説明に戻ると、
補充コントローラの出力ポートは、それぞれ、アービタ
532、536を介して、タグメモリ536およびデー
タメモリ538に接続されている。補充コントローラ5
40の他の出力ポートは、タグメモリ532の書込み入
力ポートに接続される。補充コントローラ540の他の
出力ポートは、キャッシュデータメモリ538の書込み
入力ポートに接続される。
【0233】補充コントローラ540の他の出力ポート
として、バスリクエスト信号を供給するメモリバス11
4′に接続されるバスリクエストポートと、データキャ
ッシュ108がキャッシュラインのコンテンツを対応す
る外部メモリ位置に書込むことを意図するときに、ライ
トバックデータを供給するための、メモリバス114′
に接続されるライトバックデータポートと、キャッシュ
ライン(そのコンテンツは外部メモリ位置のために意図
したものである)のデータアドレスを供給するための、
メモリバス114′に接続される充填データアドレスポ
ートとがある。
【0234】補充コントローラ540の入力ポートは、
データメモリ516の読取り出力からデータ信号を受け
るように構成されている。補充コントローラ540の第
2入力ポートは、タグメモリディレクトリ532からタ
グデータを受けるように構成されている。補充コントロ
ーラ540の他の入力ポートは、中央処理装置102の
インストラクションユニットからのロード/記憶アドレ
ス信号を受けるように構成されている。
【0235】本発明の一実施形態によれば、データキャ
ッシュ108も外部アクセスコントローラ542を有し
ている。外部アクセスコントローラ542は、データキ
ャッシュ108が、メディアプロセッサシステム100
の他のモジュールへのスレーブモジュールとして機能す
ることを可能にする。かくして、システム100の任意
のモジュールは、中央処理装置102により遂行される
のと同じアクセス原理に基づいて、データキャッシュ1
08にアクセスするバスマスタとして機能する。
【0236】外部アクセスコントローラ542の出力ポ
ートは、それぞれアービタ532、534を介してタグ
メモリ536およびキャッシュデータメモリ538に接
続され、かつタグメモリ536の書込み入力ポートに接
続されている。外部アクセスコントローラ542の他の
出力ポートは、キャッシュデータメモリ538の書込み
入力ポートに接続される。最後に、外部アクセスコント
ローラ542の出力ポートは、マスタによりリクエスト
されるデータを供給するためのメモリバス114′に接
続される。
【0237】外部アクセスコントローラ542の入力ポ
ートは、キャッシュデータメモリ538からのデータを
受けるように構成されている。外部アクセスコントロー
ラ542の他の入力ポートとして、他のバスマスタから
のアクセスリクエストを受けるための、メモリバス11
4′に接続されるアクセスリクエストポートと、バスマ
スタリクエストに関するデータのアドレスを受けるため
の、メモリバス114′に接続されるリクエストデータ
アドレスポートと、データキャッシュ108に記憶され
ることを意図したバスマスタにより与えられるデータを
受けるための、メモリバス114′に接続される記憶デ
ータポートとがある。
【0238】メモリバス114′はまた、メモリコント
ローラ124を介してDRAM128に接続される。更に、
メモリバス114′は、ダイレクトメモリアクセサリコ
ントローラ138に接続される。中央処理装置102の
出力ポートは、それぞれ、アービタ532、534を介
してタグメモリ536およびキャッシュデータメモリ5
38に接続され、ロードおよび記憶演算に対応するアド
レスを与える。中央処理装置102は、キャッシュデー
タメモリ538の書込み入力ポートに接続されて、記憶
演算に対応するデータを与える。最後に、中央処理装置
102の入力ポートは、キャッシュデータメモリ538
の読取り出力ポートに接続され、ロード演算に対応する
データを受ける。
【0239】次に、補充コントローラ540の演算を、
FIG.18に関連して説明する。ステップ560で
は、補充コントローラがその演算を開始する。ステップ
562では、補充コントローラ540は、タグ値と、中
央処理装置102から受けたロードまたは記憶アドレス
の上方部分とを比較することにより、キャッシュユニッ
ト108に対するリクエストがヒットかミスかを決定す
る。
【0240】ステップ564では、リクエストに対して
キャッシュミスが生じた場合には、補充コントローラ4
0がステップ568に移行して、DRAM128のような外
部メモリの対応メモリ位置のコンテンツと置換する必要
があるキャッシュラインを決定する。ステップ570で
は、補充コントローラは、キャッシュ108がライトバ
ックポリシーを用いるか否かを決定する。ライトバック
ポリシーを用いる場合には、補充コントローラ540
は、記憶リクエスト信号をメモリコントローラ124に
発行することにより、DRAM128に置換されるキャッシ
ュラインを与える。ステップ572では、補充コントロ
ーラ540は、ミスがあったキャッシュラインへの読取
りリクエスト信号を、補充データアドレスポートを介し
て、メモリコントローラ124に発行する。ステップ5
74では、補充コントローラ540が、補充データを受
けかつ該データをキャッシュデータメモリ538に書込
み、かつタグメモリ536を修正する。
【0241】補充コントローラ540は、ステップ57
6に移行し、ロードリクエストに応答して、リクエスト
データを中央処理装置102に供給する。別の構成とし
て、補充コントローラ540は、中央処理装置102か
らの記憶リクエストに応答して、データをキャッシュデ
ータメモリ538に書き込む。ステップ578では、補
充コントローラ540は、中央処理装置102により与
えられた記憶演算に応答して、DRAM128のような外部
メモリにデータを書き込む。
【0242】ステップ564で、中央処理装置102お
よび補充コントローラ540からのロードまたは記憶リ
クエストに対してヒットする場合、ステップ566に移
行して、読取り演算または書込み演算を行なうキャッシ
ュデータメモリ538からのキャッシュラインを形成す
る。
【0243】次に、本発明の一実施形態による補充コン
トローラ540に関連する外部アクセスコントローラ5
80の演算について、FIG.19を参照して説明す
る。
【0244】ステップ580では、外部アクセスコント
ローラが、バスマスタアクセスリクエストに応答して、
その演算を開始する。本発明の一実施形態によれば、バ
スマスタは、FIG.1Aに関連して前述した任意のモ
ジュールで構成でき、アクセスリクエストは、データス
トリーマ122およびデータ転送スイッチ112の演算
に関連して説明したように発行できる。ステップ582
では、外部アクセスコントローラ542は、任意のバス
マスタによる読取りまたは書込みリクエストを待機す
る。
【0245】ひとたび外部アクセスコントローラ542
がリクエストを受けると、該コントローラ542はリク
エストを受けてステップ584に移行し、バスマスタが
読みまたは書込み演算をリクエストしたか否かを決定す
る。リクエストが読取り演算である場合には、外部アク
セスコントローラ542はステップ586に移行して、
ヒットまたはミスが生じているか否かを決定する。読取
りリクエストに応答してキャッシュヒットが生じている
場合には、外部アクセスコントローラはステップ604
に移行して、リクエストされたデータをバスマスタに供
給する。
【0246】しかしながら、読取りリクエストに応答し
てキャッシュミスが生じる場合には、外部アクセスコン
トローラがステップ588に移行し、かつ補充コントロ
ーラ540がリクエストされたデータを得て、ステップ
590でデータキャッシュを満たすように、補充コント
ローラ540をトリガする。データの補充後、外部アク
セスコントローラ542は、ステップ604で、リクエ
ストされたデータをバスマスタに供給する。
【0247】ステップ584で、外部アクセスコントロ
ーラが、バスマスタがデータをデータキャッシュ108
に書込むことをリクエストしたと判断した場合には、ス
テップ592に移行して、キャッシュヒットまたはキャ
ッシュミスいが生じたか否かを決定する。キャッシュヒ
ットに対して、外部アクセスコントローラ542は、ス
テップ596に移行し、バスマスタがリクエストされた
データをデータキャッシュメモリ538に書込むことを
可能にする。
【0248】しかしながら、ステップ592において、
キャッシュミスが生じた場合には、外部アクセスコント
ローラはステップ594に移行し、キャッシュデータメ
モリのどのキャッシュラインを、DRAM128のような外
部メモリのコンテンツと置換する必要があるかを決定す
る。外部アクセスコントローラは、次にステップ598
に移行する。データキャッシュ108がライトバックポ
リシーを実行する場合には、外部アクセスコントローラ
は、ステップ598で、データキャッシュメモリ538
から置換されるべきキャッシュラインを与えかつ記憶リ
クエストを、メモリバス114′を介してメモリコント
ローラ124に発行する。
【0249】その後、外部アクセスコントローラ542
は、ステップ602に移行し、リクエストされたデータ
をキャッシュデータメモリに書込み、従って、タグメモ
リ536を修正する。
【0250】前述のように、外部アクセスコントローラ
542は、中央処理装置が必要とするデータに先だっ
て、予測できる多くのアプリケーションについて、キャ
ッシュ正解率を顕著に増大させることができる。一例と
して、多くの3Dグラフィックアプリケーションの場合
には、テクスチャマッピングに関する情報が、DRAM12
8等の外部メモリに記憶される。中央処理装置102が
どの情報を使用する必要があるかを予測できるため、中
央処理装置102により実際に使用される前にこの情報
をデータキャッシュ108に転送するのが有効である。
この場合には、中央処理装置102がテクスチャマッピ
ング情報を必要とするときがきたとき、対応データは既
にキャッシュデータに存在し、その結果キャッシュヒッ
トが生じる。
【0251】3次元(3D)グラフィックス処理 FIG.1Aに示すように、データキャッシュメモリ1
08に関連する固定機能ユニット106、中央処理装置
102、104および外部メモリ128は、本発明の一
実施形態に従って実質的に短縮された帯域幅遅延をもつ
3次元グラフィックスを遂行するが、本発明の範囲はこ
れに限定されるものではない。
【0252】FIG.20は、3Dグラフィックス処理
に応答するマルチメディアプロセッサ100の主要構成
要素に関するブロック図を示す。かくして、本発明の一
実施形態によれば、固定機能ユニット106は、該固定
機能ユニットの他の構成要素に対する制御コマンドを与
える、プログラム可能な入力/出力コントローラ618
を有している。固定機能ユニットの他の構成要素はVGA
グラフィックスコントローラ603を有し、該コントロ
ーラ603は、プログラム可能な入力/出力コントロー
ラPIOC618に接続され、かつVGAフォーマットのグラ
フィックスを処理するように構成されている。2次元
(2D)論理ユニット605は、プログラム可能な入力
/出力コントローラに接続されかつ2次元グラフィック
スを処理するように構成されている。
【0253】固定機能ユニット106はまた、より詳し
く後述するようなビンベース型表現アルゴリズム(bin-
based rendering algorithm)を用いる3次元ユニット
611を有している。基本的に、本発明の一実施形態に
よれば、3Dユニットは、チャンク、タイルまたはビン
と呼ばれるデータの単位を操作する。各タイルは、全ス
クリーンのうちの小さい部分である。かくして、本発明
の一実施形態による3Dユニットは、好ましくは、マル
チメディアプロセッサ100内の対応バッファメモリ空
間内に3D物体を引き出すビニング処理(binning proc
ess)を用いる。かくして、表現アルゴリズムについて
の外部メモリの使用で遭遇するボトルネック問題は実質
的に回避される。なぜならば、マルチメディアプロセッ
サチップ内でのデータ転送は、実質的に高い帯域幅で達
成されるからである。
【0254】3Dユニット611は3Dタイルラスタラ
イザ607であり、該ラスタライザ607もプログラム
可能な入力/出力コントローラ618に接続されており
かつグラフィックス処理タスクを遂行するように構成さ
れている。3Dタイルラスタライザ(3DTR)607の2
つの主なタスクとして、FIG.21およびFIG.2
2に関連してより詳細に説明するように、その演算モー
ドに基いた、ビニングおよびラスタライゼーションがあ
る。
【0255】3Dユニット611はまた、3Dテクスチ
ャコントローラ(3DTC)609を有し、該コントローラ
609もプログラム可能な入力/出力コントローラ61
8に接続され、かつコントローラにより制御される。F
IG.23に関連してより詳細に説明するように、3D
テクスチャコントローラは、3Dユニット611で使用
すべきことを意図したテクセルのアドレスを引き出す。
かくして、引き出されたアドレスに基づいて、3Dテク
スチャコントローラ609は、データストリーマ122
により使用されるチャンク記述子を発生し、データスト
リーマ122の演算に関連して前述したように、SDRAM
128等のローカルメモリから適当なテクセルを得る。
【0256】3Dユニット611はまた3Dテクスチャ
フィルタユニット(3DTF)610を有し、該ユニット6
10は、プログラム可能な入力/出力コントローラ61
8に接続され、かつ該コントローラにより制御される。
FIG.24およびFIG.25に関連してより詳細に
後述するように、フィルタユニット610は、シェーデ
ィングカラーブレンディングおよびアキュムレーション
ブレンディングに関連して、バイリニア(1パス)およ
びトリリニア(2パス)補間のようなテクスチャフィル
タリング演算を遂行する。
【0257】固定機能ユニット106はビデオスケーラ
ユニット612を有し、該ユニット612は、プログラ
ム可能な入力/出力コントローラ618に接続されかつ
該コントローラにより制御される。ビデオスケーラユニ
ット612は、幾つかの水平および垂直タップを用いて
ビデオデータのアップスケーリングおよびダウンスケー
リングを与えるように構成されている。ビデオスケーラ
612は、ディスプレイスクリーン上に3D物体をディ
スプレイするディスプレイリフレッシュユニット226
(FIG.1B)に出力画素を供給する。本発明の一実
施形態に従ってより詳細に説明するように、テクスチャ
フィルタの幾つかの機能は、ビデオスケーラの機能と同
じ原理に基づいている。いずれにせよ、ビデオスケーラ
612は、本発明の一実施形態に従って、テクスチャフ
ィルタ610と幾つかの機能を共有する。
【0258】固定機能ユニット106は、該機能ユニッ
ト106の種々の構成要素がデータ転送スイッチ112
およびデータストリーマ122と相互作用することを可
能にするデータ転送スイッチインタフェース614を有
する。データ転送インタフェース614は、FIG.9
に示したデータ転送スイッチインタフェース718に関
連して前述したのと同じ原理に基づいて演算する。デー
タキャッシュインタフェース616は、固定機能ユニッ
ト106がデータキャッシュユニット108にアクセス
することを可能にする。
【0259】FIG.20は、本発明の一実施形態によ
る3Dグラフィックス処理演算に関連するデータキャッ
シュ108の種々の構成要素を示す。しかしながら、明
瞭化の目的で、FIG.16〜FIG.19に関連して
説明したようなデータキャッシュ108の他の特徴およ
び構成要素は、FIG.20には示されていない。ま
た、データキャッシュ108の構成要素はデータキャッ
シュ内に配置されているところが示されているが、本発
明の他の実施形態に従って、1つ以上の他の構成要素を
別のキャッシュユニットとして配置できることを理解す
べきである。
【0260】データキャッシュ108は、三角形セット
アップバッファ620を有し、該バッファ620は、三
角形の各辺の傾斜のような三角形パラメータを得るため
の計算結果を記憶すべく構成されている。データキャッ
シュ10はまたラスタライザセットアップバッファ62
2を有し、該バッファ622は、スクリーン座標、テク
スチャ座標、シェーディングカラー、深さおよびこれら
の部分的に異なるパラメータ等の各三角形の付加パラメ
ータを記憶するように構成されている。データキャッシ
ュ108は、タイルのすべての深さ値を記憶するタイル
Zバッファ628とも呼ばれる深さタイルバッファを有
する。
【0261】データキャッシュ108はまた、FIG.
17〜FIG.19に関連して前述したように、補充コ
ントローラ540および外部アクセスコントローラ54
2を有している。また、中央処理装置102、104
は、FIG.1Aに関連して説明したように、データキ
ャッシュ108に接続されている。FIG.20に示さ
れた付加構成要素として、FIG.1〜FIG.15に
関連して開示しかつ説明したような、データ転送スイッ
チ112と、データストリーマ122と、メモリコント
ローラ124と、SDRAMとがある。I/Oバス13は、モニ
タ(図示せず)のような画像ディスプレイデバイスに信
号を供給するディスプレイリフレッシュユニット226
に信号を供給するように構成されている。本発明の一実
施形態によれば、ビデオスケーラ612は、ディスプレ
イユニット226に直接接続されている。
【0262】以下に詳述するように、スクリーン上のす
べての三角形のジオメトリ変換およびライティング変換
は、本発明の一実施形態により、VLIW中央処理装置10
2により遂行される。3Dユニット611は、各タイル
と交差するすべてのビンまたはタイルおよびすべての三
角形を識別することに応答できる。より詳しくは、3D
三角形ラスタライザ607は、各タイルのすべての三角
形を識別する。その後、各ビンまたはタイルについて、
VLIW中央処理装置102は、三角形セットアップ試験を
行って、各三角形の辺の傾斜等の各三角形のパラメータ
を計算する。3D三角形ラスタライザ607はまた、各
ビンまたはタイルと交差するすべての三角形をラスタラ
イズする。3Dテクスチャコントローラ607は、ビン
またはタイルのすべての画素のテクスチャアドレスを計
算する。
【0263】ひとたびテクセルのアドレスが得られたな
らば、データストリーマ122は、SDRAM128から対
応するテクセル情報を得る。3Dテクセルフィルタ61
0は、フェッチされた画素のバイリニア補間およびトリ
リニア補間を遂行する。その後、データストリーマ12
2は、各タイルまたはビンの処理された画像データをフ
レームバッファに書込む。かくして、フレームバッファ
は、画像のすべての画素についての強さ/カラー値を含
むDRAM128にアレーを形成する。グラフィックスディ
スプレイデバイスは、このアレーにアクセスして、各画
素がディスプレイされる強さ/カラーを決定する。
【0264】FIG.21は、本発明の一実施形態によ
る3D三角形ラスタライザ607を示すブロック図であ
る。明瞭化のため、FIG.21は、3D三角形ラスタ
ライザ607がビニングモードで演算するときに生じる
信号の流れを示すものである。
【0265】データキャッシュ108は、ビニング演算
に必要な情報を与えるべく、3D三角形ラスタライザ6
07に接続される。ビニング演算中に用いられるデータ
キャッシュ108の2つのバッファは、セットアップバ
ッファ622およびタイルインデックスバッファ630
である。
【0266】3D三角形ラスタライザ607は、データ
キャッシュ108からの三角形セットアップ情報を受け
るように構成されたフォーマットコンバータユニット6
32を有している。フォーマットコンバータユニット5
32は、データキャッシュ108から受けたパラメータ
を、浮動点番号から固定点番号に変換する。スクリーン
座標補間回路(screen coordinates interpolator)6
34はフォーマットコンバータ632に接続され、3D
三角形ラスタライザ607により処理される画素のx、y
座標を形成する。ビニングユニット644は、補間回路
634からx、y座標を受けかつFIG.26に関連して
より詳細に説明するようなビニング演算を遂行する。ビ
ニングユニットもインデックスバッファ630に接続さ
れている。ビニングユニット644により計算される情
報は、データストリーマ122を介して、メモリ128
内のタイルデータバッファ646に供給される。
【0267】演算中、3D三角形ラスタライザ607
は、データキャッシュ108からの入力として扱われる
三角形の各ノードすなわち頂点のスクリーン座標を読取
る。その後、三角形ラスタライザは、各ビンまたはタイ
ルと交差するすべての三角形を識別しかつSDRAM128
の出力としてタイルインデックスおよびタイルデータと
呼ばれるデータ構造を構成する。
【0268】前述のように、ラスタライゼーションフェ
ーズが開始する前に、スクリーン全体のすべての三角形
がジオメトリおよびライティングについて処理される。
次に、セットアップおよびラスタライゼーションが、各
ビンまたはタイルについて反復実行される。ビニング
は、出力を分離して同サイズの正方形にイメージアップ
することを含む。本発明の一実施形態によれば、各ビン
またはタイルのサイズは、16×16画素により形成さ
れる正方形領域である。各正方形はラスタライズされ、
次に最終フレームバッファに移動される。ビンが正しく
ラスタライズされるようにするには、当該ビンと交差す
るすべての三角形に関する情報を得るのが好ましい。こ
の目的のため、スクリーン内のすべての三角形について
のセットアップおよびラスタライゼーションが、ビニン
グ処理の前に最初に得られる。
【0269】ビニングは、三角形の辺に沿う各画素を求
め、かつ三角形の画素が属するすべてのビンを識別する
処理を含む。かくして、この処理は、三角形の頂点を表
す画素を識別し、次に三角形の左右の辺に沿って移動さ
せて、画素が属する対応ビンが得られるように、水平走
査線と交差する他の画素を識別することにより開始す
る。ひとたびビンが識別されたならば、処理される三角
形に対応する識別番号すなわち三角形IDが、識別された
ビンと関連付けられる。
【0270】インデックスバッファ630は、処理され
るスクリーン上のビンの数に一致する2次元アレーであ
るのが好ましい。この数は、所与のスクリーン解像度に
対して静的である。かくして、タイルインデックスバッ
ファ630は、タイルデータバッファ646の第1三角
形IDについてのインデックスを含んでいる。タイルバッ
ファは、本発明の一実施形態によるローカルメモリの2
65Kサイズの静的アレーである。データバッファ64
6は、三角形インデックスおよび次の三角形へのポイン
タを含んでいる。かくして、連鎖を続けることにより、
本発明の一実施形態に従って、所与のビンについてのす
べての三角形を見出すことができる。
【0271】FIG.26は、本発明の一実施形態によ
る、例えば参照番号861で示す例示三角形についての
ビニング処理の演算を示すものであるが、本発明の範囲
はこれに限定されるものではない。三角形861は中間
ノードすなわち頂点Bを通って引かれる水平線により2
つの小三角形に分割される。FIG.26に示すよう
に、三角形861は、三角形窓を形成する水平および垂
直の両方向の幾つかの画素に跨っている。ビニングユニ
ット644は、線毎にこれらの画素に跨る。かくして、
ステップ862では、ビニングユニット644が、三角
形の上頂点を含む線を処理する。このスパン(跨り)の
間、最左方の画素のx座標はAxすなわちCross XACであ
り、最右方の画素のx座標はAxすなわちCross XABであ
る。Cross XACは、辺ACと次のスパンとの間の交差点のx
座標であり、Cross XABは、辺ABと次のスパンとの間の
交差点のx座標である。これらの画素が属するビンを抽
出するため、ビニングユニット644は、下記条件を用
いている。
【0272】X=[min 2 (Ax, Cross XAC), max 2 (Ax,
Cross XAB)] ここで、Xは各走査線に対する三角形のx座標の範囲であ
る。
【0273】ステップ864では、ビニングユニット6
44は、下記条件を用いている。
【0274】X=[min 2 (Cross XAC, Cross XAC + dxd
y AC), max 2(Cross XAB, Cross XAB + dxdy AB)] 次のスパンの辺ACと辺ABとの間の各交差点のx座標は、
下記条件から導かれる。
【0275】Cross XAC=Cross XAC + dxdy AC Cross XAB=Cross XAB + dxdy AB ここで、dxdy ACは三角形861の辺ACの傾斜であり、d
xdy ABは三角形861の辺ABの傾斜である。ステップ8
64は、スパンが中頂点Bを含むまで反復する。その
後、ビニングユニット644は、ステップ866に移行
する。
【0276】ステップ866では、最右方の画素のx座
標は3つのパラメータの最大値であり、次のようにな
る。
【0277】X=[min 2 (Cross XAC, Cross XAC + dxd
y AC), max 3(Cross XAB, Bx, Cross XBC)] ここで、Cross XBCは、BCと次のスパンとの間の交差点
のx座標である。その後、ビニングユニット644は、
スパンが下頂点Cを含むようになるまで、Cross XACおよ
びCross XBCにdxdy ACおよびdxdy BCを加え続けること
によりステップ868を、例えば次のように遂行する。
【0278】X=[min 2 (Cross XAC, Cross XAC + dxd
y AC), Max2 (Cross XBC, Bx, Cross XBC +dxdy BC)]
および、 Cross XAC=Cross XAC + dxdy AC Cross XBC=Cross XBC + dxdy BC 最後にステップ870では、ビニングユニット644
は、最終画素が属するビンを、例えば次のように識別す
る。
【0279】X=[min 2 (Cross XAC, Cx), max 2 (Cro
ss XBC, Cx)] 上記ステップ862〜870の間に、ビニングユニット
644は、各三角形の辺の画素が属するすべてのビンの
IDを記憶する。スクリーンに表示されるすべての三角形
のビニング処理の結果として、インデックスバッファ6
30およびタイルデータバッファ646が満たされる。
これにより、3Dユニット611は、各ビンまたはタイ
ルが後述のようにして処理されるときにビンと交差する
三角形を検索することが可能になる。
【0280】FIG.22は、ラスタライゼーションモ
ードにある3D三角形ラスタライザ(3DTR)607を示
す。ラスタライゼーションモード中に用いられるデータ
構造が、ビニングモード中にタイルインデックスバッフ
ァ630が用いられるデータキャッシュ108のメモリ
を再使用できることに留意されたい。かくして、ラスタ
ライゼーションの前に、インデックスバッファ630の
コンテンツがローカルメモリDRAM128に書込まれる。
【0281】3D三角形ラスタライザ607はテクスチ
ャ座標補間回路636を有し、該補間回路636は、フ
ォーマットコンバータ632に接続されかつ補間法を用
いることにより三角形内の画素のテクスチャ座標データ
を得るように構成されている。フォーマットコンバータ
632にはカラー補間回路618が接続され、かつ補間
法を用いることにより三角形内に画素のカラー座標を得
るように構成されている。
【0282】また、フォーマットコンバータ632には
深さ補間回路640が接続されており、該補間回路64
0は、三角形内の画素の深さを得るように構成されてい
る。本発明の一実施形態によれば、ビンが表現されると
き、ビン内の三角形がオーバーラップ層内に入る傾向に
あることに留意することが重要である。層は、他の層か
ら或る深さにある分離可能な表面である。3D三角形ラ
スタライザ607は、連続層内の完全な三角形をラスタ
ライズすることを防止するため、層を前後に処理する。
可視画素のみをラスタライズすることにより、かなりの
計算および処理が節約される。かくして、ラスタライザ
607は、層をビン毎に分類する。ビン内の三角形の平
均個数は約10であるので、分類処理には長時間を要し
ない。本発明の一実施形態によれば、この分類は、いか
なる三角形セットアップすなわちラスタライゼーション
よりも前に行われる。
【0283】ビン内の三角形は、単純に各三角形の平均
深さすなわちZ値では分類されないのが好ましいことに
留意されたい。大きい三角形では、深さ補間回路640
が三角形の中間のZ値を得る。深さ補間回路642にはZ
有効レジスタ642が接続されており、後述のようにし
て、データキャッシュ108の深さタイルバッファ62
8に記憶される有効深さ値を追跡する。
【0284】FIG.22に示すように、ラスタライゼ
ーションモード中にデータキャッシュ108に用いられ
るバッファは、断片インデックス650、ラスタライザ
セットアップバッファ622、テクスチャ座標タイル
(タイルT)、カラータイル(タイルC)、および深さタ
イル(タイルZ)である。断片インデックス650は断
片発生器648に接続され、該断片発生器648は、ア
ンチエイリアシングまたはαブレンディングに使用され
る断片を供給する。
【0285】断片発生器648は、断片リンクバッファ
652、断片バッファ654のテクスチャ座標、断片バ
ッファ656のカラーおよび断片バッファ658の深さ
を有するメモリ128の4つのバッファ空間に接続され
ている。メモリのこれらのバッファの演算は、データキ
ャッシュ108の対応バッファに関連して述べたのと同
じ原理に基づいている。ラスタライザセットアップバッ
ファ622は、ラスタライゼーション処理を完遂するの
に必要な三角形パラメータを得るべく、フォーマットコ
ンバータ632に接続される。また、テクスチャ座標タ
イル624は、テクスチャ座標補間回路636に接続さ
れる。同様に、カラータイル626はカラー補間回路6
38に接続され、深さタイル628は深さ補間回路64
0に接続される。深さタイル628は、各三角形の有効
深さ値を、処理されるビン内に保持する。
【0286】かくして、演算中に、3D三角形ラスタラ
イザ607は、データキャッシュラスタライザセットア
ップバッファ622から、スクリーン座標、テクスチャ
座標、シェーディングカラー、深さおよびこれらの部分
的な差異、dR/dX、dR/dY等を含む各三角形の頂点に対応
する三角形セットアップデータを読取る。例えばこれら
の差異について、Rはシェーディングカラーの赤色成
分、dR/dXはx方向に沿って1画素移動させるRの差異を
意味する。これらのセットアップパラメータを使用し
て、3D三角形ラスタライザ607は、補間法により所
与の三角形の内側をラスタライズする。Zバッファリン
グを用いることにより、可視三角形またはこれらの一部
の結果のみがテクスチャ座標タイル624およびカラー
タイル626に記憶される。かくして、各画素のZ値が
タイル628に記憶される。Z値は、ユーザの目から離
れた画素の深さを表示する。かくして、Z値は、画素が
他の物体から隠されているか否かを表示する。
【0287】この結果、テクスチャ座標タイル624
は、タイルについてのテクスチャマップアドレスおよび
サイズ、およびテクスチャ座標等のテクスチャ関連情報
を記憶する。テクスチャ座標は、固定点数としてテクス
チャ座標補間回路636により補間され、かつ同じ固定
点フォーマットのテクスチャ座標タイル624に記憶さ
れる。同様に、カラータイル626は、可視画素につい
てのRGBAシェーディングカラーを記憶するデータ構造を
定める。かくして、ラスタライゼーション後に与えられ
るテクスチャおよびカラー情報は、本発明の一実施形態
による可視画素に関するものである。
【0288】FIG.23は、本発明の一実施形態に従
ってアドレスされるテクセルを発生させるのに使用され
る3Dテクスチャコントローラ609を示すブロック図
である。3Dテクスチャコントローラは、メモリアドレ
ス計算機664に接続されるフォーマットコンバータ6
32を有している。メモリアドレス計算機の出力はテク
スチャキャッシュタグチェックユニット666の入力ポ
ートに接続され、該ユニット666は、アドレスマップ
発生器668およびデータストリーマ記述子発生器67
0に接続されている。3Dテクスチャコントローラ(3D
TC)609は、データキャッシュ108に接続されてい
る。
【0289】データキャッシュ108は、3Dテクスチ
ャコントローラ609により遂行されるテクスチャアド
レス発生中に、アドレスマップバッファ660と、テク
スチャ座標タイル624と、カラータイル662とを用
いる。かくして、アドレス発生器668は、アドレスマ
ップを、データキャッシュ108のアドレスマップバッ
ファ660に供給する。また、テクスチャ座標タイル6
24は、ラスタライゼーション処理中に発生されるテク
スチャ座標をメモリアドレス計算機664に供給する。
カラータイル662もまた、カラーデータをメモリアド
レス計算機664に供給する。
【0290】データキャッシュ108により供給される
情報に応答して、3Dテクスチャコントローラ609
は、必要なテクセルのメモリアドレスを計算する。次
に、3Dテクスチャコントローラ609はキャッシュタ
グ666をルックアップして、テクセルが、テクスチャ
キャッシュ667と呼ばれるデータキャッシュ108の
所定部分にあるか否かをチェックする。キャッシュがヒ
ットすると、3Dテクスチャコントローラ609は、キ
ャッシュアドレスを、アドレスマップ660と呼ばれる
データキャッシュ108の他のデータ構造に記憶する。
さもなくば、3Dテクスチャコントローラは、ミスした
キャッシュラインアドレスを、データストリーマ記述子
として記憶し、これによりデータストリーマ122はラ
インをメモリ128からテクスチャキャッシュ667へ
と移動させることができる。キャッシュミス状態中に、
アドレスマップ660も書込まれる。
【0291】テクセルフィルタリング中の後の段階で、
アドレスマップ660に記憶されるデータが使用され
る。かくして、テクセルアドレスのマッピングを画素に
表示するのに、アドレスマップバッファ660が使用さ
れる。アドレスマップバッファ660に記憶されるアレ
ーは、ビン内の画素についての静的アレーであり、かつ
どの4×4テクセルブロックが所与の画素に適用できる
かを表示するための、画素のバッファにおける位置への
ポインタを含んでいる。必要とされるフィルタの形式も
アドレスマップバッファ660に記憶される。
【0292】FIG.24は、本発明の一実施形態によ
る3Dテクスチャフィルタ610を示す。3Dテクスチ
ャフィルタ610は、アドレスマップバッファ660か
らテクセル情報を受けるように構成されたテクセルフェ
ッチユニット942を有している。テクセルフェッチユ
ニット942が受けた情報はテクスチャキャッシュ66
7に供給されて、該テクスチャキャッシュ667のどの
テクセルを次に濾過(フィルタリング)する必要がある
かを表示する。
【0293】3Dテクスチャフィルタ610はまた、テ
クスチャキャッシュ667からテクセルを受けるように
構成されたパレタイズユニット944を有している。テ
クスチャキャッシュの値がテクセルカラーのインデック
スを表示するとき、パレタイズユニット944は、テク
セルカラーに、データキャッシュに設けられたテーブル
からのインデックスを付す。パレタイズユニット944
の出力ポートは、水平補間回路946に接続され、該水
平補間回路946は垂直補間回路948に接続されてい
る。水平および垂直の両補間回路946、948は、ア
ドレスマップバッファ660からの係数パラメータを受
けるように構成されている。垂直補間回路948の出力
ポートはトリリニア補間回路950に接続され、該補間
回路950は、補間回路の第1パスのカラータイル62
2からの係数パラメータを受け、かつ補間回路の第2パ
スのカラーバッファ930からの係数パラメータを受け
る。
【0294】本発明の一実施形態によれば、2種類の係
数があることに留意すべきである。1つの係数はバイリ
ニア補間回路に使用され、かつ4つの近隣テクセルカラ
ーの重みをどのように補間するかを示す。他の係数は、
トリリニア補間回路に使用され、かつ2つのバイリニア
カラーの重みをどのように補間するかを示す。
【0295】補間回路950の出力ポート950は、シ
ェーディングカラーブレンドユニット952に接続され
る。シェーディングカラーブレンドユニット952はま
た、カラータイル622からカラー値を受けるように構
成されている。シェーディングカラーブレンドユニット
952の出力ポートは、カラータイル622および累算
ブレンドユニット954に接続される。累算ブレンドユ
ニット954の出力ポートは、本発明の一実施形態に従
ってデータキャッシュ108に存在する累算バッファ9
34の入力ポートに接続される。
【0296】演算中、3Dテクスチャフィルタ610
は、バイリニアテクスチャフィルタリングを行う。アド
レスマップバッファ660に記憶されたメモリアドレス
を用いることにより、入力テクセルがテクスチャキャッ
シュ667から読取られる。バイリニアフィルタリング
の結果が、カラータイル622のシェーディングカラー
とブレンドされ、かつ最終テクスチャードカラーとして
カラータイル622に戻される。累算が特定されると、
最終カラーが、累算バッファ934での累算されたカラ
ーにブレンドされる。
【0297】トリリニアフィルタリングを遂行するには
2つのパスが必要である。第1パスでは、3Dテクスチ
ャフィルタが、カラーバッファ930に記憶されたバイ
リニアフィルタリング結果を出力する。第2パスでは、
3Dテクスチャフィルタは、カラーバッファ930に記
憶されたカラーを他のバイリニアフィルタリングカラー
とブレンドすることにより最終トリリニア結果を発生す
る。
【0298】パレタイズユニット944のコンテンツ
は、セットパレットモードで3Dテクスチャフィルタ6
10をアクティブにすることにより、データキャッシュ
108からロードされる。
【0299】バイリニアおよびトリリニアフィルタリン
グは、幾つかの近隣テクセルの重み付け合計を得る処理
を使用する。本発明の一実施形態によれば、近隣テクセ
ルの水平補間回路が後続する垂直補間回路を用いること
によりテクセルデータが得られる。例えば、垂直テクセ
ルの数は3とし、水平テクセルの数は5にすることがで
きる。フィルタリングは特定化できる係数を用いて行わ
れる。かくして、フィルタリング処理は15テクセルの
重み付け合計として定められ、濾過されたテクセルの最
終出力Tは次のように定められる。
【0300】Tx=k11 Txy + k12 Txy + 1 + k13 Txy +2 Tx + 1=k21 Tx + 1y + k22 Tx + 1y + 1=k23 Tx + 1y
+ 2 Tx + 2=k31 Tx + 2y + k32 Tx + 2y + 1+ k33 Tx + 2y
+ 2 Tx + 3=k41 Tx + 3y + k42 Tx + 3y + 1+ k43 Tx + 3y
+ 2 Tx + 4=k51 Tx + 4y + k52 Tx + 4y + 1+ k53 Tx + 4y
+ 2 Toutput=ka Tx + kb Tx + 1 + kc Tx +2 + kd Tx + 3
+ kc Tx + 4 ここで、Tは、フェッチされたテクセルに対応するテク
セル情報である。補間点が前のグリッドと同じグリッド
内にあり、本発明の一実施形態により垂直補間を行う必
要はない。垂直補間の結果は前の計算結果と同じになる
ため、これは当然のことである。これに対し、テクセル
は前のグリッドと同じグリッド内にあるが、水平補間の
再計算は必要になる。なぜならば、グリッド上のスケー
ルされたテクセルの相対位置が異なっており、従って係
数セットが異なっているからである。
【0301】かくして、前述のように、テクセルフィル
タリングのコア演算は、乗算および加算である。本発明
の一実施形態によれば、これらの機能は、FIG.25
AおよびFIG.25Bに示したビデオスケーラ612
の乗算機能および加算機能と共有できる。
【0302】FIG.25Aは、本発明の一実施形態に
よるビデオスケーラ612のブロック図を示す。ビデオ
スケーラ612はバスインタフェース820を有し、該
バスインタフェース820は、プロセッサメモリバス1
14に接続され、かつここからリクエストを送り、かつ
画素情報を受けるように構成されている。固定機能メモ
リ828は、バスインタフェースユニット820に接続
されており、かつデータストリーマ122を用いること
によりメモリ128からYcbCr画素データを受けるよう
に構成されている。固定機能メモリ828は、メモリ1
28とビデオスケーラ612との間のトラフィックを低
減させるため、画素の所定部分(該部分は、補間に必要
とされる部分よりも大きいことが好ましい)を記憶す
る。
【0303】送り手画像バッファ822は、固定機能メ
モリ828に接続され、かつ補間演算を行うのに充分な
画素データを受けるように構成されている。画素アドレ
スコントローラ826は、補間演算のために固定機能メ
モリ828から検索される画素データのアドレスを発生
する。垂直送り手データシフトレジスタ824は送り手
画像バッファ822に接続され、かつ補間処理の間に用
いられる乗算および加算のために画素データをシフトす
るように構成されている。ビデオスケーラ612が3D
テクスチャフィルタ610についてのフィルタリング演
算を行うときに、垂直送り手データシフトレジスタ82
4は、乗算および加算を行うための適当なテクセルデー
タを記憶しかつシフトするように構成されている。
【0304】水平送り手データシフトレジスタ830
は、乗算および加算回路834により得られた、垂直に
補間された中間画素を記憶するように構成されている。
水平データシフトレジスタ830は、乗算および加算を
行うのに再びに使用できる。
【0305】係数記憶ユニット844は、補間演算を行
うための予め特定した係数を記憶するように構成されて
いる。かくして、ビデオスケーラ612が3Dテクスチ
ャフィルタ610のためのフィルタリング演算を行うと
きに、係数記憶ユニット844はテクセルのためのフィ
ルタリング係数を記憶し、ビデオスケーラ612がスケ
ーリング演算を行うときに、係数記憶ユニット844は
画素のための補間係数を記憶する。
【0306】座標加算器846はセレクタ840に接続
されており、乗算および加算のための適当な係数の検索
を制御する。座標加算器846が、スタート画素すなわ
ちテクセルの座標に対応するx、yベースアドレスに接続
されている。Δユニット850は、所望スケールの画素
の座標の垂直方向および水平方向についての差異を与え
るように構成されている。
【0307】本発明の一実施形態により、FIG.25
Bに示すように、乗算および加算回路834は、乗算お
よび加算を行うように構成されているが、本発明の範囲
はこれに限定されるものではない。かくして、乗算およ
び加算ユニット834は、複数の画素および係数レジス
タ852、854を有し、これらのレジスタは、乗算器
856により乗算され、加算器860を介して1つの番
号を発生する。
【0308】出力画素先入れ先出し(FIFO)バッファ8
42は、ビデオスケーラ制御レジスタの対応制御ビット
の値に基づいて、ディスプレイリフレッシュユニット2
26またはデータキャッシュ108への出力のために得
られた画素を記憶するように構成されている。
【0309】本発明の一実施形態によれば、演算中に、
ビデオスケーラ612は、データストリーマ122を用
いてメモリ128からYCbCr画素データを読取りかつ、
該画素データを固定機能メモリ828に入れる。その
後、Y、Cb、Cr画素データは、画素アドレスコントロー
ラ826を用いて固定機能メモリ828から読取られ
る。検索されたデータは、Y、Cb、Crデータに対応する
送り手画像バッファ822の3つの送り手画像バッファ
空間内に書込まれる。垂直送り手データシフトレジスタ
が空き空間を有するときは、送り手画像バッファ822
がそのデータのコピーを垂直送り手データシフトレジス
タに供給する。垂直補間法の場合には、垂直に補間され
た中間画素が水平送り手データシフトレジスタ830内
に記憶される。
【0310】垂直および水平補間法のシーケンスは、ス
ケーリングファクタに基づいている。本発明の一実施形
態によれば、ビデオスケーラ612に3つの乗算および
加算ユニット834があり、このため、3つの垂直補間
および水平補間を同時に遂行できる。
【0311】FIG.27は、FIG.20〜FIG.
26に関連して説明した3Dグラフィックス処理に含ま
れるステップを要約するフローチャートである。かくし
て、ステップ880では、VLIWプロセッサ102が、フ
レーム内のすべての三角形について、スクリーン座標、
カラーおよびビニングパラメータを計算することによ
り、ジオメトリデータを計算する。ステップ882で
は、ビニング表示信号を3D三角形ラスタライザ607
に供給することにより、ビニングのために固定機能ユニ
ットがアクティブにされる。ビニングの結果として、す
べてのビンのタイルインデックスおよびタイルデータが
ステップ884で計算される。
【0312】ステップ886では、フレーム内のすべて
のビンについて、セットアップおよび三角形内の可視画
素の補間が開始する。かくして、ステップ888で、VL
IW102が三角形セットアップデータを計算する。ステ
ップ890では、3D三角形ラスタライザは、ステップ
892で補間モードで3D三角形ラスタライザ607を
アクティブにすることにより、三角形内の各画素につい
て、x、y、z、RGBA [s、tおよびw]を含む、表現のため
のパラメータを計算する。パラメータs、tおよびwは、
均質テクスチャ座標であり、遠近法補正として知られた
パラメータとして用いられる。均質テクスチャ座標は、
どのテクセルが画素に対応するかを表示する。
【0313】ビン内のすべての画素について、VLIW10
2は、3D三角形ラスタライザ607により得られた
s、t、w計算に応答して、各該装置についてのテクスチ
ャ座標を計算する。ステップ896では、3Dテクスチ
ャコントローラ609がテクスチャアドレスを計算す
る。ステップ898では、データストリーマ122が、
計算されたテクスチャアドレスに応答してメモリ128
からテクセルをフェッチする。データストリーマ122
がビンに対応するテクセルをフェッチしている間に、VL
IWプロセッサ102は、次のビンに対応するテクスチャ
座標u、vを計算する。これは、本発明の一実施形態によ
り、データキャッシュ108の構造が、固定機能ユニッ
トによるキャッシュへのアクセスを可能にすることから
可能になる。
【0314】ステップ900では、ビデオスケーラ61
2が3Dテクスチャフィルタ610に関連してアクティ
ブにされ、フェッチされたフィルタの一部でテクセルフ
ィルタリングを遂行する。
【0315】本発明の一実施形態では、ステップ902
〜ステップ912で、ステップ894〜ステップ900
に関連して説明したのと同じ原理に基づいて、断片のす
べての画素についてのアンチエイリアシングおよびαブ
レンディングを遂行する。ステップ914で、固定機能
ユニットにより得られたデータが、データをSDRAM12
8のローカルメモリ空間のようなローカルメモリ空間に
データを転送するデータストリーマ122を用いること
により、フレームバッファに記憶される。
【0316】かくして、本発明は、マルチメディアプロ
セッサにデータキャッシュを用い、かつ各ビンに関する
対応データをデータキャッシュに記憶することによりビ
ニング処理を行うことができる。また、本発明の一態様
によれば、テクセルのフェッチングの前に、三角形の可
視画素が最初に識別され、かくして対応するテクセルの
みがローカルメモリから検索される。
【0317】以上、本発明の或る特徴のみを示しかつ説
明したが、当業者には多くの変更、置換または均等物が
明らかであろう。従って、特許請求の範囲の記載は、こ
のような変更等をカバーするものであることを理解され
たい。 [図面の簡単な説明]
【FIG.1A】本発明の一実施形態によるマルチメデ
ィアプロセッサシステムを示すブロック図である。
【FIG.1B】FIG.1Aに示したマルチメディア
プロセッサシステムの入力/出力(I/O)ユニットを示
すブロック図である。
【FIG.1C】本発明の一実施形態による、ホストコ
ンピュータと関連するマルチメディアプロセッサを用い
たマルチメディアシステムを示すブロック図である。
【FIG.1D】本発明の一実施形態によるマルチメデ
ィアプロセッサを用いた単独マルチメディアシステムを
示すブロック図である。
【FIG.2】本発明の一実施形態によるデータ転送ス
イッチに関連するデータ転送作動を示すフローチャート
である。
【FIG.3A】本発明の一実施形態によるデータ転送
スイッチを用いた読取りトランザクションを示すフロー
チャートである。
【FIG.3B】本発明の一実施形態によるデータ転送
スイッチを用いた読取りトランザクションを示すフロー
チャートである。
【FIG.4A】本発明の一実施形態によるリクエスト
バス接続中の信号の流れを示す図面である。
【FIG.4B】本発明の一実施形態による内部メモリ
バス接続中の信号の流れを示す図面である。
【FIG.5A】本発明の一実施形態によるリクエスト
バス読取り演算を示すタイミング図である。
【FIG.5B】本発明の一実施形態による、認可が直
ちには与えられない読取りリクエストを示すタイミング
図である。
【FIG.5C】本発明の一実施形態によるリクエスト
バス書込み演算を示すタイミング図である。
【FIG.5D】本発明の一実施形態による、データバ
ス転送演算を示すタイミング図である。
【FIG.6A】バックトゥバック読取りリクエストを
作るリクエストバスマスタを示すタイミング図である。
【FIG.6B】第2リクエストに対して認可が直ちに
は行われないときに、バックトゥバックリクエストを作
るプロセッサメモリバスマスタを示すタイミング図であ
る。
【FIG.6C】書込みリクエストが後続する読取りリ
クエストを受けるリクエストバススレーブを示すタイミ
ング図である。
【FIG.7】本発明の一実施形態によるデータストリ
ーマを示すブロック図である。
【FIG.8】本発明の一実施形態によるデータストリ
ーマに用いられる転送エンジンを示すブロック図であ
る。
【FIG.9】本発明の一実施形態によるデータ転送ス
イッチを示すブロック図である。
【FIG.10】本発明の一実施形態によるデータスト
リーマバッファコントローラを示すブロック図である。
【FIG.11】本発明の一実施形態によるダイレクト
メモリアクセスコントローラを示すブロック図である。
【FIG.12】本発明の一実施形態に従って使用され
る例示メモリアドレス空間を示す図面である。
【FIG.13】本発明の一実施形態によるチャネル記
述子のデータ構造を示す図面である。
【FIG.14】本発明の他の実施形態によるチャネル
記述子のデータ構造を示す図面である。
【FIG.15A】本発明の一実施形態に従ってデータ
経路をセットするフローチャートである。
【FIG.15B】本発明の一実施形態に従ってデータ
経路をセットするフローチャートである。
【FIG.15C】本発明の一実施形態に従ってデータ
経路をセットするフローチャートである。
【FIG.16】従来技術によるキャッシュメモリシス
テムを示すブロック図である。
【FIG.17】本発明の一実施形態によるキャッシュ
メモリシステムを示すブロック図である。
【FIG.18】従来技術のキャッシュメモリシステム
の演算を示すフローチャートである。
【FIG.19】本発明の一実施形態によるキャッシュ
メモリシステムの演算を示すフローチャートである。
【FIG.20】本発明の一実施形態によるマルチメデ
ィアプロセッサのデータキャッシュに関連する固定機能
ユニットを示すブロック図である。
【FIG.21】本発明によるビニングモードにある3
Dテクスチャコントローラを示すブロック図である。
【FIG.22】本発明による補間モードにある3Dテ
クスチャコントローラを示すブロック図である。
【FIG.23】本発明の一実施形態による3Dテクス
チャコントローラを示すブロック図である。
【FIG.24】本発明の一実施形態による3Dテクス
チャフィルタを示すブロック図である。
【FIG.25A】本発明の一実施形態によるビデオス
ケーラを示すブロック図である。
【FIG.25B】本発明の一実施形態によるビデオス
ケーラを示すブロック図である。
【FIG.26】本発明の一実施形態によるビニング処
理を受ける三角形のプロットを示す図面である。
【FIG.27】本発明の一実施形態に従って3Dグラ
フィックスを実行する処理を示すフローチャートであ
る。
フロントページの続き (72)発明者 石黒 正雄 東京都青梅市新町4−25−4 日立第二 新町寮323 (72)発明者 小島 啓二 神奈川県相模原市南橋本1−20−11− 405 (72)発明者 ニセンゾン、セミョン アメリカ合衆国、カリフォルニア 94306、ポロ アルト、ブライソン ア ベニュー 595 (56)参考文献 特開 平9−179999(JP,A) 特開 平8−249491(JP,A) 特開 平9−167242(JP,A) 特開 平6−95839(JP,A) 特開 平7−200868(JP,A) 米国特許5598517(US,A) 欧州特許出願公開817128(EP,A 2) (58)調査した分野(Int.Cl.7,DB名) G06T 11/40 G06T 15/00 G06T 17/40

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】 3次元グラフィックス処理を行う集積回
    路のマルチメディアプロセッサにおいて、 所定数の画素をもつ複数の画素群により形成されるスク
    リーン上に表示される3次元物体を形成する複数の三角
    形に対応する三角形セットアップ情報を発生するように
    構成されたマイクロプロセッサ回路と、 前記セットアップ情報を記憶するように構成された前記
    マイクロプロセッサに接続されたデータキャッシュと、 該データキャッシュに接続され、前記画素群ごとに、各
    画素群と交差する複数の前記三角形についてグラフィッ
    クラスタライゼーションを行って各三角形内の各画素に
    ついての画素情報をデータキャッシュに供給するように
    構成された3次元三角形ラスタライザと、を有し、 前記3次元三角形ラスタライザは、さらに、 前記データキャッシュに接続され、前記三角形の各々に
    対応する三角形セットアップ情報を受けるように構成さ
    れたテクスチャ座標補間回路と、 前記データキャッシュに接続され、前記三角形の各々に
    対応する三角形セットアップ情報を受けるように構成さ
    れたシェーディングカラー補間回路と、 前記データキャッシュに接続され、前記三角形の各々に
    対応する三角形セットアップ情報を受けるように構成さ
    れた深さ補間回路と、を有するマルチメディアプロセッ
    サ。
  2. 【請求項2】前記3次元物体を形成する複数の三角形の
    それぞれについて、各三角形が属するすべての前記画素
    群を識別する処理を行う処理ユニットを、さらに備え、 前記データキャッシュは、さらに、各画素群の識別情報
    と、それぞれの画素群と交差する複数の三角形の識別情
    報とを関連付けて記憶するように構成されている請求項
    1記載のマルチメディアプロセッサ。
  3. 【請求項3】 前記テクスチャ座標補間回路は、前記三
    角形内の各画素のテクスチャ座標をデータキャッシュに
    供給することを特徴とする請求項1記載のマルチメディ
    アプロセッサ。
  4. 【請求項4】 前記テクスチャ座標補間回路は、前記ス
    クリーン上で見ることができる各画素のテクスチャ座標
    をデータキャッシュに供給する請求項1記載のマルチメ
    ディアプロセッサ。
  5. 【請求項5】 前記データキャッシュに接続され、前記
    スクリーン上で見ることができる前記画素のメモリ位置
    を生成するように構成されている3次元テクスチャコン
    トローラをさらに有する請求項3記載のマルチメディア
    プロセッサ。
  6. 【請求項6】 前記シェーディングカラー補間回路は、
    前記三角形内の各画素のシェーディングカラー座標を前
    記データキャッシュに供給する請求項1記載のマルチメ
    ディアプロセッサ。
  7. 【請求項7】 前記シェーディングカラー補間回路は、
    前記スクリーン上で見ることができる各画素のシェーデ
    ィングカラー座標をデータキャッシュに供給することを
    特徴とする請求項1記載のマルチメディアプロセッサ。
  8. 【請求項8】 前記データキャッシュに接続され、前記
    スクリーン上で見ることができる前記画素のメモリ位置
    を生成するように構成されている3次元テクスチャコン
    トローラをさらに有する請求項7記載のマルチメディア
    プロセッサ。
  9. 【請求項9】 3次元グラフィックス処理を行う集積回
    路のマルチメディアプロセッサにおいて、 所定数の画素をもつ複数の画素群により形成されるスク
    リーン上に表示される3次元物体を形成する複数の三角
    形に対応する三角形セットアップ情報を発生するように
    構成されたマイクロプロセッサ回路と、 前記セットアップ情報を記憶するように構成された前記
    マイクロプロセッサに接続されたデータキャッシュと、 該データキャッシュに接続され、前記画素群ごとに、各
    画素群と交差する複数の前記三角形についてグラフィッ
    クラスタライゼーションを行って各三角形内の各画素に
    ついての画素情報をデータキャッシュに供給するように
    構成された3次元三角形ラスタライザと、を有し、 前記データキャッシュに接続され、前記三角形ラスタラ
    イザにより供給される前記画素情報に応答して受け入れ
    られるテクセルのフィルタリングを行うように構成され
    た3次元テクスチャフィルタと、 該テクスチャフィルタに接続され、スケーリングされた
    画像を供給するスケーリング演算を行うように構成され
    たビデオスケーラと、を有するマルチメディアプロセッ
    サ。
  10. 【請求項10】 前記ビデオスケーラは、複数の隣接垂
    直画素および水平画素に対応する情報に、各画素に関連
    して予め定められた計数を乗じるように構成された乗算
    および加算ユニットを有している請求項9記載のマルチ
    メディアプロセッサ。
  11. 【請求項11】 前記テクスチャフィルタは、前記デー
    タキャッシュに接続され、複数の垂直テクセルおよび水
    平テクセルを補間するように構成された水平およびリニ
    ア補間回路を有している請求項10記載のマルチメディ
    アプロセッサ。
  12. 【請求項12】 前記リニア補間回路は、前記ビデオス
    ケーラの前記乗算および加算ユニットからの補間結果を
    受け入れる請求項11記載のマルチメディアプロセッ
    サ。
JP2000576412A 1998-10-14 1999-10-14 3次元グラフィックプロセッサ Expired - Lifetime JP3524497B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/173,289 1998-10-14
US09/173,289 US6608625B1 (en) 1998-10-14 1998-10-14 Three dimensional graphic processor
PCT/JP1999/005660 WO2000022575A1 (en) 1998-10-14 1999-10-14 A three-dimensional graphic processor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2002351620A Division JP3786913B2 (ja) 1998-10-14 2002-12-03 3次元グラフィックプロセッサ

Publications (2)

Publication Number Publication Date
JP2002527835A JP2002527835A (ja) 2002-08-27
JP3524497B2 true JP3524497B2 (ja) 2004-05-10

Family

ID=22631345

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2000576412A Expired - Lifetime JP3524497B2 (ja) 1998-10-14 1999-10-14 3次元グラフィックプロセッサ
JP2002351620A Expired - Lifetime JP3786913B2 (ja) 1998-10-14 2002-12-03 3次元グラフィックプロセッサ
JP2006038125A Pending JP2006185460A (ja) 1998-10-14 2006-02-15 3次元グラフィックプロセッサ

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2002351620A Expired - Lifetime JP3786913B2 (ja) 1998-10-14 2002-12-03 3次元グラフィックプロセッサ
JP2006038125A Pending JP2006185460A (ja) 1998-10-14 2006-02-15 3次元グラフィックプロセッサ

Country Status (4)

Country Link
US (2) US6608625B1 (ja)
JP (3) JP3524497B2 (ja)
TW (1) TW449730B (ja)
WO (1) WO2000022575A1 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480205B1 (en) 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
US6347344B1 (en) * 1998-10-14 2002-02-12 Hitachi, Ltd. Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor
US6608625B1 (en) * 1998-10-14 2003-08-19 Hitachi, Ltd. Three dimensional graphic processor
US7209140B1 (en) 1999-12-06 2007-04-24 Nvidia Corporation System, method and article of manufacture for a programmable vertex processing model with instruction set
EP1243141B1 (en) * 1999-12-14 2011-10-19 Scientific-Atlanta, LLC System and method for adaptive decoding of a video signal with coordinated resource allocation
US6819321B1 (en) * 2000-03-31 2004-11-16 Intel Corporation Method and apparatus for processing 2D operations in a tiled graphics architecture
US6597356B1 (en) * 2000-08-31 2003-07-22 Nvidia Corporation Integrated tessellator in a graphics processing unit
US7089390B2 (en) * 2001-02-16 2006-08-08 Broadcom Corporation Apparatus and method to reduce memory footprints in processor architectures
US6996838B2 (en) * 2001-06-12 2006-02-07 Scientific Atlanta, Inc. System and method for media processing with adaptive resource access priority assignment
US7072996B2 (en) * 2001-06-13 2006-07-04 Corrent Corporation System and method of transferring data between a processing engine and a plurality of bus types using an arbiter
US7280474B2 (en) * 2001-11-01 2007-10-09 International Business Machines Corporation Weighted fair queue having adjustable scaling factor
US7310345B2 (en) 2001-11-01 2007-12-18 International Business Machines Corporation Empty indicators for weighted fair queues
US7046676B2 (en) * 2001-11-01 2006-05-16 International Business Machines Corporation QoS scheduler and method for implementing quality of service with cached status array
US6982986B2 (en) * 2001-11-01 2006-01-03 International Business Machines Corporation QoS scheduler and method for implementing quality of service anticipating the end of a chain of flows
US7187684B2 (en) * 2001-11-01 2007-03-06 International Business Machines Corporation Weighted fair queue having extended effective range
US7103051B2 (en) * 2001-11-01 2006-09-05 International Business Machines Corporation QoS scheduler and method for implementing quality of service with aging time stamps
US7317683B2 (en) * 2001-11-01 2008-01-08 International Business Machines Corporation Weighted fair queue serving plural output ports
US7274857B2 (en) 2001-12-31 2007-09-25 Scientific-Atlanta, Inc. Trick modes for compressed video streams
US6862028B2 (en) * 2002-02-14 2005-03-01 Intel Corporation Bin pointer and state caching apparatus and method
US6906720B2 (en) * 2002-03-12 2005-06-14 Sun Microsystems, Inc. Multipurpose memory system for use in a graphics system
US7680043B2 (en) * 2002-03-20 2010-03-16 International Business Machines Corporation Network processor having fast flow queue disable process
US7257124B2 (en) * 2002-03-20 2007-08-14 International Business Machines Corporation Method and apparatus for improving the fairness of new attaches to a weighted fair queue in a quality of service (QoS) scheduler
US6975318B2 (en) * 2002-06-25 2005-12-13 Intel Corporation Polygon binning process for tile-based rendering
JP2004126646A (ja) * 2002-09-30 2004-04-22 Canon Inc バス制御方法
US6989837B2 (en) * 2002-12-16 2006-01-24 S3 Graphics Co., Ltd. System and method for processing memory with YCbCr 4:2:0 planar video data format
JP4283809B2 (ja) * 2003-08-07 2009-06-24 株式会社ルネサステクノロジ 画像処理用半導体プロセッサ
US7966642B2 (en) * 2003-09-15 2011-06-21 Nair Ajith N Resource-adaptive management of video storage
US7274361B2 (en) * 2003-09-26 2007-09-25 Mstar Semiconductor, Inc. Display control device with multipurpose output driver
US8643659B1 (en) * 2003-12-31 2014-02-04 3Dlabs Inc., Ltd. Shader with global and instruction caches
JP4521399B2 (ja) 2004-03-10 2010-08-11 株式会社東芝 描画装置、描画方法、及び描画プログラム
KR100859395B1 (ko) * 2004-05-31 2008-09-22 가부시키가이샤 소니 컴퓨터 엔터테인먼트 정보 처리 장치 및 정보 처리 방법
JP4451717B2 (ja) * 2004-05-31 2010-04-14 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
US8600217B2 (en) * 2004-07-14 2013-12-03 Arturo A. Rodriguez System and method for improving quality of displayed picture during trick modes
US7466316B1 (en) * 2004-12-14 2008-12-16 Nvidia Corporation Apparatus, system, and method for distributing work to integrated heterogeneous processors
US7898545B1 (en) 2004-12-14 2011-03-01 Nvidia Corporation Apparatus, system, and method for integrated heterogeneous processors
US7580040B2 (en) * 2005-11-10 2009-08-25 Via Technologies, Inc. Interruptible GPU and method for processing multiple contexts and runlists
US7583268B2 (en) * 2005-11-10 2009-09-01 Via Technologies, Inc. Graphics pipeline precise interrupt method and apparatus
US7545381B2 (en) * 2005-11-10 2009-06-09 Via Technologies, Inc. Interruptible GPU and method for context saving and restoring
JP4799171B2 (ja) * 2005-12-26 2011-10-26 株式会社東芝 描画装置及びデータ転送方法
JP2007172456A (ja) * 2005-12-26 2007-07-05 Toshiba Corp 描画装置
US8331392B2 (en) * 2006-05-17 2012-12-11 Telefonaktiebolaget Lm Ericsson (Publ) Method and device for allocation of transmission rate in a radio telecommunication network
JP2008090673A (ja) * 2006-10-03 2008-04-17 Mitsubishi Electric Corp キャッシュメモリ制御装置
US7737985B2 (en) * 2006-11-09 2010-06-15 Qualcomm Incorporated Pixel cache for 3D graphics circuitry
US20090033791A1 (en) * 2007-07-31 2009-02-05 Scientific-Atlanta, Inc. Video processing systems and methods
US9336752B1 (en) 2007-12-21 2016-05-10 Oracle America, Inc. Microprocessor including a display interface in the microprocessor
US8890876B1 (en) 2007-12-21 2014-11-18 Oracle America, Inc. Microprocessor including a display interface in the microprocessor
US8300696B2 (en) * 2008-07-25 2012-10-30 Cisco Technology, Inc. Transcoding for systems operating under plural video coding specifications
KR101683556B1 (ko) 2010-01-06 2016-12-08 삼성전자주식회사 타일 기반의 렌더링 장치 및 렌더링 방법
US8339409B2 (en) * 2011-02-16 2012-12-25 Arm Limited Tile-based graphics system and method of operation of such a system
CN102208112B (zh) * 2011-05-25 2015-08-05 威盛电子股份有限公司 景深消隐方法、三维图形处理方法及其装置
TWI597686B (zh) * 2011-11-21 2017-09-01 財團法人國家實驗研究院 協同gpu作為求解偏微分方程式之高效能運算與三維互動影像輸出之方法、裝置及電腦可讀取紀錄媒體、電腦程式產品
US8868843B2 (en) * 2011-11-30 2014-10-21 Advanced Micro Devices, Inc. Hardware filter for tracking block presence in large caches
JP5845910B2 (ja) * 2012-01-13 2016-01-20 富士通株式会社 画像描画装置、画像描画プログラム、及び、画像描画方法
TWI498849B (zh) * 2012-11-05 2015-09-01 Nvidia Corp 圖形驅動程式層級解耦顯像以及顯示的方法
US9336561B2 (en) * 2012-12-19 2016-05-10 Intel Corporation Color buffer caching
US9998750B2 (en) 2013-03-15 2018-06-12 Cisco Technology, Inc. Systems and methods for guided conversion of video from a first to a second compression format
US9558129B2 (en) * 2014-06-10 2017-01-31 Xilinx, Inc. Circuits for and methods of enabling the access to data
US11586580B2 (en) * 2021-07-08 2023-02-21 Avago Technologies International Sales Pte. Limited Parallel processor optimized for machine learning
US20260079240A1 (en) * 2024-09-17 2026-03-19 Nxp B.V. Bin-based sampling of radar detections

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598517A (en) 1995-01-10 1997-01-28 Evans & Sutherland Computer Corp. Computer graphics pixel rendering system with multi-level scanning

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5010515A (en) 1987-07-28 1991-04-23 Raster Technologies, Inc. Parallel graphics processor with workload distributing and dependency mechanisms and method for distributing workload
US4876651A (en) * 1988-05-11 1989-10-24 Honeywell Inc. Digital map system
US4951232A (en) 1988-09-12 1990-08-21 Silicon Graphics, Inc. Method for updating pipelined, single port Z-buffer by segments on a scan line
EP0360903B1 (en) 1988-09-29 1994-01-26 Kabushiki Kaisha Toshiba Depth information buffer control apparatus
JPH07122868B2 (ja) 1988-11-29 1995-12-25 日本電気株式会社 情報処理装置
JP2712131B2 (ja) 1989-01-23 1998-02-10 株式会社日立製作所 通信制御装置
CA2026527A1 (en) 1989-10-11 1991-04-12 Douglas A. Fischer Parallel polygon/pixel rendering engine
JPH0758510B2 (ja) 1989-10-31 1995-06-21 株式会社東芝 三次元図形処理装置
JP2910303B2 (ja) 1990-06-04 1999-06-23 株式会社日立製作所 情報処理装置
US5461266A (en) 1990-11-27 1995-10-24 Hitachi, Ltd. Power consumption control system
US5276836A (en) 1991-01-10 1994-01-04 Hitachi, Ltd. Data processing device with common memory connecting mechanism
JP3059520B2 (ja) 1991-05-24 2000-07-04 キヤノン株式会社 データ処理装置及びファクシミリ装置
US5493644A (en) 1991-07-11 1996-02-20 Hewlett-Packard Company Polygon span interpolator with main memory Z buffer
DE4227733A1 (de) * 1991-08-30 1993-03-04 Allen Bradley Co Konfigurierbarer cachespeicher und datenverarbeitungssystem mit einem derartigen speicher
EP0549924A1 (en) 1992-01-03 1993-07-07 International Business Machines Corporation Asynchronous co-processor data mover method and means
JPH0695839A (ja) * 1992-05-20 1994-04-08 Nippon Telegr & Teleph Corp <Ntt> ビットマップ描画処理方式
US5655131A (en) 1992-12-18 1997-08-05 Xerox Corporation SIMD architecture for connection to host processor's bus
US5557733A (en) * 1993-04-02 1996-09-17 Vlsi Technology, Inc. Caching FIFO and method therefor
US5442747A (en) * 1993-09-27 1995-08-15 Auravision Corporation Flexible multiport multiformat burst buffer
GB9324638D0 (en) * 1993-12-01 1994-01-19 Philips Electronics Uk Ltd Image processing
KR960003651B1 (ko) 1993-12-24 1996-03-21 재단법인 한국전자통신연구소 고속 로컬버스용 통합 멀티미디어 보드회로
US5655151A (en) 1994-01-28 1997-08-05 Apple Computer, Inc. DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer
JPH07225852A (ja) 1994-02-15 1995-08-22 Fujitsu Ltd 動画生成方法および装置
EP0681279B1 (en) * 1994-05-03 2001-07-18 Sun Microsystems, Inc. Frame buffer random access memory and system
TW304254B (ja) * 1994-07-08 1997-05-01 Hitachi Ltd
US5675808A (en) 1994-11-02 1997-10-07 Advanced Micro Devices, Inc. Power control of circuit modules within an integrated circuit
US5561820A (en) 1994-11-30 1996-10-01 International Business Machines Corporation Bridge for interfacing buses in computer system with a direct memory access controller having dynamically configurable direct memory access channels
US5646651A (en) 1994-12-14 1997-07-08 Spannaus; John Block mode, multiple access multi-media/graphics memory
JPH08249491A (ja) * 1995-02-14 1996-09-27 Internatl Business Mach Corp <Ibm> 奥行き情報を含むテクスチャ・イメージを用いる3dグラフィック装置
US5682513A (en) 1995-03-31 1997-10-28 International Business Machines Corporation Cache queue entry linking for DASD record updates
EP0740272A2 (en) * 1995-04-28 1996-10-30 Sun Microsystems, Inc. Method and apparatus for fast rendering of three-dimensional objects
US5870097A (en) * 1995-08-04 1999-02-09 Microsoft Corporation Method and system for improving shadowing in a graphics rendering system
US5867166A (en) * 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
JPH09167242A (ja) * 1995-12-19 1997-06-24 Fuji Xerox Co Ltd 描画処理装置および方法
JP2882465B2 (ja) * 1995-12-25 1999-04-12 日本電気株式会社 画像生成方法およびその装置
US5896882A (en) 1996-06-27 1999-04-27 Northrop Grumman Corporation Pressure control valve
US5999183A (en) * 1997-07-10 1999-12-07 Silicon Engineering, Inc. Apparatus for creating a scalable graphics system with efficient memory and bandwidth usage
US6016151A (en) * 1997-09-12 2000-01-18 Neomagic Corp. 3D triangle rendering by texture hardware and color software using simultaneous triangle-walking and interpolation for parallel operation
US5995121A (en) * 1997-10-16 1999-11-30 Hewlett-Packard Company Multiple graphics pipeline integration with a windowing system through the use of a high speed interconnect to the frame buffer
US6608625B1 (en) * 1998-10-14 2003-08-19 Hitachi, Ltd. Three dimensional graphic processor
US6347344B1 (en) * 1998-10-14 2002-02-12 Hitachi, Ltd. Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598517A (en) 1995-01-10 1997-01-28 Evans & Sutherland Computer Corp. Computer graphics pixel rendering system with multi-level scanning

Also Published As

Publication number Publication date
US20030218608A1 (en) 2003-11-27
JP2003208631A (ja) 2003-07-25
JP3786913B2 (ja) 2006-06-21
JP2002527835A (ja) 2002-08-27
JP2006185460A (ja) 2006-07-13
US6608625B1 (en) 2003-08-19
TW449730B (en) 2001-08-11
WO2000022575A1 (en) 2000-04-20

Similar Documents

Publication Publication Date Title
JP3524497B2 (ja) 3次元グラフィックプロセッサ
JP4451853B2 (ja) 統合マルチメディアシステム
JP4451870B2 (ja) データ転送スイッチ
JP3848536B2 (ja) データキャッシュシステム
US8098255B2 (en) Graphics processing system with enhanced memory controller
CN1938730B (zh) 基于寄存器的对纹理请求的排队
US6806883B2 (en) System and method for handling display device requests for display data from a frame buffer
US20090189909A1 (en) Graphics Processor having Unified Cache System
US20030169626A1 (en) System and method for controlling a number of outstanding data transactions within an integrated circuit
US20090066714A1 (en) Systems and Methods for Managing Texture Data in a Computer
US7339590B1 (en) Vertex processing unit supporting vertex texture mapping
WO2000000887A1 (en) Method and apparatus for transporting information to a graphic accelerator card

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040212

R150 Certificate of patent or registration of utility model

Ref document number: 3524497

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080220

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090220

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090220

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100220

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100220

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110220

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 9

EXPY Cancellation because of completion of term