JP5142419B2 - 共有リソースへのアクセス方法及び装置 - Google Patents

共有リソースへのアクセス方法及び装置 Download PDF

Info

Publication number
JP5142419B2
JP5142419B2 JP2012098920A JP2012098920A JP5142419B2 JP 5142419 B2 JP5142419 B2 JP 5142419B2 JP 2012098920 A JP2012098920 A JP 2012098920A JP 2012098920 A JP2012098920 A JP 2012098920A JP 5142419 B2 JP5142419 B2 JP 5142419B2
Authority
JP
Japan
Prior art keywords
programmable
graphics
memory
controller
processor
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
JP2012098920A
Other languages
English (en)
Other versions
JP2012164344A (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.)
Nintendo Co Ltd
Original Assignee
Nintendo Co 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 Nintendo Co Ltd filed Critical Nintendo Co Ltd
Publication of JP2012164344A publication Critical patent/JP2012164344A/ja
Application granted granted Critical
Publication of JP5142419B2 publication Critical patent/JP5142419B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Image Input (AREA)

Description

本発明は、共有リソースへのアクセス方法及び装置に関し、より特定的には、家庭用ビデオゲームプラットフォーム用の対話式グラフィックス等の対話式グラフィックスシステムの共有リソースへのアクセス方法及び装置に関する。
恐竜、宇宙人、アニメ化されたおもちゃといった空想的な生物が、非常にリアルに映像化された映画を見かけることが多くなっている。このような動画は、コンピュータグラフィックスにより可能となっている。この技術を用いることにより、コンピュータグラフィックスアーチストは、各物体の形状及び時間の経過に伴って生じる外見上の変化を特定することができる。そして、コンピュータが物体をモデリングして、ホームテレビやコンピュータ等の画面上に表示する。表示画像の各部分は、そのシーンにおける物体相互の距離及び向き、各物体に対する照明方向、各物体の表面の質感、その他様々な要素に基づき着色・形成され、この着色・形成を適切に行うために必要な数多くの処理は、コンピュータが引き受ける。
コンピュータグラフィックスの生成処理が複雑なため、ほんの数年前まで、コンピュータで生成した3次元グラフィックスの活用は、高価格で専門化されたフライトシュミレータ、ハイエンドグラフィックスワークステーション及びスーパーコンピュータに限られていた。人々は、これらコンピュータシステムによって作り出された画像を、映画や制作費の高いテレビコマーシャルで目にすることがあっても、実際にグラフィックスを作成しているコンピュータと接触することはできなかったのである。しかし、ニンテンドウ64(登録商標)や各種3Dグラフィックスカード等、比較的安価なパーソナルコンピュータ用グラフィックスプラットフォームの登場により、状況は変わった。今や、自宅やオフィスでも、手ごろな価格のコンピュータグラフィックスシステムを用いて、迫力のある3Dアニメーション及びシミュレーションを、対話的に作り出すことが可能になっている。
コンピュータグラフィックスシステムにおいて、リソースは、数多くのそれぞれ異なる構成要素によって「共有」されることが多い。例えば、グラフィックスプロセッサやメインプロセッサの動作は、システムメモリへの多数のアクセス要求に終始しがちである。各要求へのメモリアクセスの適切な割り当てを確実にするために、アービトレータ回路を使用することが知られている。調停には、構成要素のうちの1つに高い優先度が付与される技法や、構成要素のすべてにメモリアクセスのチャンスが与えられるラウンドロビン方式等の、それぞれ異なるいくつかの技法が適用可能である。本明細書では、メモリコントローラ等の、調停プロセスに関係する共有リソースへのアクセス要求の頻度制御が構成可能であるコントローラに関して説明する。
本発明の1つの局面は、共有リソースへのアクセスを制御するコントローラを備えていることにある。このコントローラは、例えばステートマシンとして実現され、共有リソースへの複数のアクセス要求を調停するためのアービトレータと、アービトレータによる要求の調停頻度を制御するプログラム可能帯域幅制御回路とを含む。
共有リソースは、コンピュータ読み出し可能媒体であってもよく、要求は、コンピュータ読み出し可能媒体への/からの読み出し及び書き込みの要求を含んでいてもよい。帯域幅制御回路は、プログラム可能レジスタと、関連アキュムレータとで構成されていてもよい。プログラム可能レジスタの内容は、それぞれ対応するアキュムレータに繰り返し加算され、その対応するアキュムレータの値が所定の値に達すると(例えば、ある特定のビットが設定/クリアされると)調停される。レジスタは、アプリケーションプログラミングインタフェースを用いてプログラム可能である。
本発明の別の局面は、共有リソースへのアクセス制御方法であって、共有リソースへの複数のアクセス要求を調停し、それら要求の調停頻度をプログラム可能に制御する。
対話式コンピュータグラフィックスシステム例の全体図である。 図1に示すコンピュータグラフィックスシステム例を示すブロック図である。 図2に示すグラフィックス&オーディオプロセッサ例を示すブロック図である。 図3に示す3Dグラフィックスプロセッサ例を示すブロック図である。 図4のグラフィックス&オーディオプロセッサのロジカルフロー例を示す図である。 メモリコントローラ152とその他のシステム構成要素との関係を示す全体図である。 メインメモリ112へのアクセスの競合に関与する動作のいくつかを示す図である。 メモリコントローラ152のインタフェースを詳細に示す図である。 メモリコントローラ152の帯域幅制御回路620−1〜620−5を示す図である。 メモリコントローラ152のためのアドレスパス及び読み出しデータパスをそれぞれ示す図である。 メモリコントローラ152のためのアドレスパス及び読み出しデータパスをそれぞれ示す図である。 帯域幅制御回路620−1〜620−5の詳細を示すブロック図である。 別の互換的な実施例を示す図である。 別の互換的な実施例を示す図である。
図1に、対話式3Dコンピュータグラフィックスシステム50の一例を示す。システム50は、興味をそそるステレオサウンドを伴う対話式3Dビデオゲームをプレイするのに使用され得る。さらに、その他様々なアプリケーションにも使用され得る。
本例において、システム50は、デジタル表現又は3次元世界のモデルを、対話的にリアルタイムで処理する機能を有する。システム50は、その世界をどこでも任意の視点から部分的又は全体的に表示することができる。例えば、システム50は、手持ちコントローラ52a及び52b、又はその他の入力装置からのリアルタイム入力に応答して、対話的に視点を変えることができる。これにより、ゲームプレイヤは、世界の内部又は外部にいる誰かの目を通してその世界を見ることができる。システム50は、リアルタイム対話式3D表示を必要としないアプリケーションに使用可能であるが(例えば、2D表示生成及び/又は非対話式表示)、その高品質な3D画像の超高速表示機能により、非常にリアルで迫力のあるゲームプレイの制作、又はその他グラフィカルな対話に使用することができる。
システム50を用いてビデオゲーム等のアプリケーションをプレイするには、ユーザは、まずケーブル58を用いて、メインユニット54を自身のカラーテレビセット56又はその他の表示装置に接続する。メインユニット54は、ビデオ信号とオーディオ信号とを生成して、カラーテレビセット56を制御する。ビデオ信号は、テレビスクリーン59上に表示される画像を制御するものであり、オーディオ信号は、テレビステレオスピーカ61L、61Rを通して、サウンドとして再生される。
さらに、ユーザは、メインユニット54を電源に接続する。この電源は、従来のACアダプタ(図示せず)であって、標準型の家庭用電気コンセントに差込まれ、家庭用電流をメインユニット54への電力供給に適した低いDC電圧信号に変換する。電池は他の実施形態で使用可能である。
ユーザは、手持ちコントローラ52a及び52bでメインユニット54を制御してもよい。例えば、操縦部60を用いて、テレビ56に表示されるキャラクタが3次元世界で動く方向を特定してもよい(上下、左右、近づける・遠ざける)。操縦部60は、さらにその他のアプリケーションに入力を与える(例えば、メニューの選択、ポインタ/カーソルの制御等)。コントローラ52は、様々な形をとることができる。本例においては、図示されるコントローラ52は、それぞれジョイスティック、プッシュボタン及び/又は方向スイッチ等の操縦部60を備える。コントローラ52は、電磁(無線、赤外線等)波を介して、ケーブル又はワイヤレスでメインユニット54に接続されてもよい。
ゲーム等のアプリケーションをプレイする場合、ユーザは、ビデオゲーム等の自身がプレイしたいアプリケーションを記憶している記憶媒体62を適宜選択し、その記憶媒体をメインユニット54のスロット64に挿入する。記憶媒体62は、例えば、特別にコード化及び/又は暗号化された光及び/又は磁気ディスクであってもよい。ユーザは、電源スイッチ66を操作してメインユニット54をオンにし、記憶媒体62に記憶されているソフトウェアに基づいて、ビデオゲーム等のアプリケーションの実行を開始させる。ユーザは、コントローラ52を操作して、メインユニット54に入力を与えてもよい。例えば、操縦部60を操作すると、ゲーム等のアプリケーションがスタートし得る。他の操縦部60を動かすと、アニメ化されたキャラクタがそれぞれ異なる方向に移動したり、3次元世界におけるユーザの視点が変化し得る。記憶媒体62内部に格納されている特定のソフトウェアにより、コントローラ52上の各操縦部60は、異なる時間に異なる機能を実行することができる。
(システム全体の電子部品例)
図2は、システム50の構成要素例を示すブロック図である。主な構成要素としては、
・メインプロセッサ(CPU)110
・メインメモリ112、及び
・グラフィックス&オーディオプロセッサ114
が含まれる。
本例において、メインプロセッサ110(例えば、機能拡張型IBM Power PC 750)は、グラフィックス&オーディオプロセッサ114を介して、手持ちコントローラ52(及び/又はその他の入力装置)から入力を受け取る。メインプロセッサ110は、ユーザ入力に対話的に応答し、例えば、光ディスクドライブ等の大容量記憶アクセス装置106を介して外部記憶媒体62によって提供されるビデオゲーム又はその他のプログラムを実行する。例えば、ビデオゲームプレイの状況において、メインプロセッサ110は、様々な対話式制御機能に加え、衝突検出や動画処理を行うことができる。
本例では、メインプロセッサ110は、3Dグラフィックスコマンドとオーディオコマンドとを生成し、それらをグラフィックス&オーディオプロセッサ114に送出する。グラフィックス&オーディオプロセッサ114は、これらコマンドを処理し、ディスプレイ59上に動的な視覚画像を生成し、さらにステレオスピーカ61R及び61L、又はその他の適切なサウンド発生装置から、高品質なステレオサウンドを出力する。
例示のシステム50は、グラフィックス&オーディオプロセッサ114から画像信号を受信し、その画像信号を、コンピュータのモニタや家庭用カラーテレビセット56等の標準的な表示装置に表示するのに適したアナログ及び/又はデジタルビデオ信号に変換するビデオエンコーダ120を含む。システム150は、デジタル化されたオーディオ信号を圧縮/伸張し、さらに必要に応じてデジタルオーディオ信号フォーマットとアナログオーディオ信号フォーマットとの間の変換を行うオーディオコーデック(コンプレッサ/デコンプレッサ)122をさらに含む。オーディオコーデック122は、バッファ124を介してオーディオ入力を受け取り、それらを処理(プロセッサが生成したその他のオーディオ信号や、大容量記憶アクセス装置106のオーディオ出力ストリームを介して受信するオーディオ信号をミックス)するためにグラフィックス&オーディオプロセッサ114に提供することもできる。本例におけるグラフィックス&オーディオプロセッサ114は、オーディオ関連情報をオーディオタスクに使用可能なオーディオメモリ126に格納することができる。グラフィックス&オーディオプロセッサ114は、処理結果のオーディオ出力信号を、伸張してアナログ信号に変換(例えば、バッファアンプ128L及び128Rを介して)するために、オーディオコーデック122に出力し、その結果、スピーカ61L及び61Rによって再生され得る。
グラフィックス&オーディオプロセッサ114は、システム50中に存在する様々な付加装置と通信する機能を備えている。例えば、パラレルデジタルバス130は、大容量記憶アクセス装置106及び/又はその他の構成要素との通信に使用され得る。シリアル周辺バス132は、例えば、
・プログラム可能な読み出し専用メモリ及び/又はリアルタイムクロック134
・モデム136又はその他のネットワーキングインタフェース(プログラム命令及び/又はデータが、そこからダウンロード又はそこにアップロードされ得る、インターネットやその他のデジタルネットワーク等のテレコミュニケーションネットワーク138に、システム50を接続し得るもの)
・フラッシュメモリ140
等の各種周辺装置と通信するのに使用されてもよい。なお、さらなる外部シリアルバス142は、追加拡張メモリ144(例えば、メモリカード)等の装置との通信に使用されてもよい。コネクタは、様々な装置をバス130、132、142に接続するために使用されてもよい。
(グラフィックス&オーディオプロセッサの例)
図3は、グラフィックス&オーディオプロセッサ114の一例を示すブロック図である。グラフィックス&オーディオプロセッサ114は、例えば、1チップASIC(特定用途向け集積回路)である。本例においては、グラフィックス&オーディオプロセッサ114は、
・プロセッサインタフェース150
・メモリインタフェース/コントローラ152
・3Dグラフィックスプロセッサ154
・オーディオデジタル信号プロセッサ(DSP)156
・オーディオメモリインタフェース158
・オーディオインタフェース&ミキサ160
・周辺コントローラ162、及び
・ディスプレイコントローラ164
を備える。
3Dグラフィックスプロセッサ154は、グラフィックス処理タスクを行う。オーディオデジタル信号プロセッサ156は、オーディオ処理タスクを行う。ディスプレイコントローラ164は、メインメモリ112の画像情報にアクセスし、それをディスプレイ装置56に表示するためビデオエンコーダ120に供給する。オーディオインタフェース&ミキサ160は、オーディオコーデック122と接続されて、異なるソースからのオーディオ(例えば、大容量記憶アクセス装置106からのオーディオストリーム、オーディオDSP156からの出力及びオーディオコーデック122を介して受信した外部オーディオ入力)をミックスすることができる。プロセッサインタフェース150は、メインプロセッサ110とグラフィックス&オーディオプロセッサ114との間で、データの供給とインタフェース制御とを行う。
以下に詳細を後述するが、メモリインタフェース152は、グラフィックス&オーディオプロセッサ114とメモリ112との間で、データの供給とインタフェース制御とを行う。本例では、メインプロセッサ110は、グラフィックス&オーディオプロセッサ114の一部であるプロセッサインタフェース150及びメモリインタフェース152を介して、メインメモリ112にアクセスする。周辺コントローラ162は、グラフィックス&オーディオプロセッサ114と前述した様々な周辺装置との間で、データの供給とインタフェース制御とを行う。オーディオメモリインタフェース158は、オーディオメモリ126とのインタフェースとなる。
(グラフィックスパイプラインの例)
図4に、図3に例示の3Dグラフィックスプロセッサ154をより詳細に示した、グラフィックスプロセッシングシステムを示す。3Dグラフィックスプロセッサ154は、他の構成要素に加え、コマンドプロセッサ200と3Dグラフィックスパイプライン180とを備える。メインプロセッサ110は、コマンドプロセッサ200にデータのストリーム(例えば、グラフィックスコマンドストリームや表示リスト)を通信する。メインプロセッサ110は、2レベルキャッシュ115を備え、メモリ待ち時間を最小にする。さらに、メインプロセッサ110は、グラフィックス&オーディオプロセッサ114向けのアンキャッシュデータストリーム用の書き込み用ギャザリングバッファ111を備える。この書き込み用ギャザリングバッファ111は、キャッシュラインを部分的に集めてフルキャッシュラインにし、バスを最大限に使用するために、1回につき1キャッシュラインでデータをグラフィックス&オーディオプロセッサ114に送出する。
コマンドプロセッサ200は、メインプロセッサ110から表示コマンドを受信し、それらを解析する。なお、この処理を行うのに必要な追加データがあれば、メモリコントローラ152を介して共有されたメモリ112から取得する。コマンドプロセッサ200は、2D及び/又は3D処理及びレンダリングを行うために、頂点コマンドのストリームをグラフィックスパイプライン180に提供する。グラフィックスパイプライン180は、これらのコマンドに基づいて画像を生成する。結果作り出された画像情報は、メインメモリ112に転送され、パイプライン180のフレームバッファ出力をディスプレイ56に表示するディスプレイコントローラ/ビデオインタフェースユニット164によりアクセスされる。
図5は、グラフィックスプロセッサ154を用いて行われる例示的な処理を説明する論理フロー図である。メインプロセッサ110は、グラフィックスコマンドストリーム210、表示リスト212及び頂点配列214をメインメモリ112に格納し、コマンドプロセッサ200にプロセッサ/バスインタフェース150を介してポインタを送り出してもよい。メインプロセッサ110は、メインメモリ112内に割り当てられた1つ又はそれ以上のグラフィックス先入れ先出し(FIFO)バッファ210に、グラッフィクスコマンドを格納する。コマンドプロセッサ200は、
・同期/フロー制御及びロードバランシングのために、グラフィックスコマンドを受信してバッファリングする、オンチップFIFOメモリバッファ216を介するメインメモリ112からのコマンドストリーム
・オンチップコールFIFOメモリバッファ218を介するメインメモリ112からの表示リスト212、及び
・頂点キャッシュ220を介するメインメモリ112内のコマンドストリーム及び/又は頂点配列214からの頂点属性、
を取り込む。
コマンドプロセッサ200は、コマンド処理動作200aを行い、属性のタイプを浮動小数点形式に変換して、その結果である完全な頂点ポリゴンデータを、レンダリングとラスタライゼーションのためにグラフィックスパイプライン180に送出する。プログラム可能なメモリ調停回路130(図4参照)は、グラフィックスパイプライン180と、コマンドプロセッサ200と、ディスプレイコントローラ/ビデオインタフェースユニット164との間で、共有されたメインメモリ112へのアクセスを調停する。
図4は、
・変換ユニット300
・セットアップ/ラスタライザ400
・テクスチャユニット500
・テクスチャ環境ユニット600、及び
・ピクセルエンジン700、
を備えるグラフィックスパイプライン180を示す。
変換ユニット300は、様々な2D及び3D変換やその他動作300a(図5参照)を実行する。変換ユニット300は、1つ又はそれ以上のマトリクスメモリ300bを備え、変換処理300aで使用するマトリクスを格納する。変換ユニット300は、受け取った図形を頂点毎にオブジェクト空間からスクリーン空間に変換したり、受け取ったテクスチャ座標を変換して投影するテクスチャの座標を求めたり(300c)する。変換ユニット300は、さらにポリゴンのクリッピング/カリング300dを行う。照明処理300eも同様に変換ユニット300によって行われ、頂点毎に照明計算を行って、例えば最高8段階の明暗を得る。変換ユニット300は、さらにテクスチャ座標を作成(300c)し、ポリゴンのクリッピング/カリング処理(300d)同様、エンボスタイプのバンプマッピング効果を得る。
セットアップ/ラスタライザ400は、変換ユニット300から頂点データを受信し、エッジのラスタライズ、テクスチャ座標のラスタライズ及び色のラスタライズを行う1つ又はそれ以上のラスタライズユニット(400b)に、三角形セットアップ情報を送出するセットアップユニットを含んでいる。
テクスチャユニット500(オンチップテクスチャメモリ(TMEM)502を備えていてもかまわない)は、テクスチャに関する様々な処理、例えば
・メインメモリ112からのテクスチャ504の取得、
・例えば、マルチテクスチャ処理、キャッシュ後テクスチャの伸張、テクスチャフィルタリング、エンボス、投影テクスチャを使用しての陰影付け及び照明処理、アルファ透明度や深度のBLITを含むテクスチャ処理(500a)、
・バンプマッピング、疑似テクスチャ、及びテクスチャタイリング効果(500b)用にテクスチャ座標のずれを計算するバンプマップ処理、及び
・間接的テクスチャ処理(500c)、
を行う。
テクスチャユニット500は、テクスチャ環境処理(600a)のために、フィルタ処理されたテクスチャの値を、テクスチャ環境ユニット600に出力する。テクスチャ環境ユニット600は、ポリゴンとテクスチャの色/アルファ/深度とをブレンドし、テクスチャフォグ処理(600b)を行って、フォグ効果に基づく逆レンジを得ることができる。テクスチャ環境ユニット600は、例えば色/アルファ変調、エンボス、細部テクスチャリング、テクスチャスワッピング、クランピング、及び深度ブレンディングに基づいて、興味深い様々な環境関連機能を実行するための段階を複数備え得る。
ピクセルエンジン700は、深度(Z)比較(700a)及びピクセルブレンディング(700b)を行う。本例において、ピクセルエンジン700は、データを埋め込み型(オンチップ)フレームバッファメモリ702に格納する。グラフィックスパイプライン180は、1つ又はそれ以上の埋め込み型DRAMメモリ702を備え、フレームバッファ及び/又はテクスチャの情報をローカルに格納してもよい。Z比較700a’は、その時点におけるレンダリングモードによっては、グラフィックスパイプライン180の初期段階において行われてもよい(アルファブレンディングが必要でなければ、Z比較は初期の段階で実行されてもよい)。ピクセルエンジン700は、オンチップフレームバッファ702をメインメモリ112に定期的に書き込むコピー動作700cを行い、ディスプレイ/ビデオインタフェースユニット164のアクセスに備える。さらに、このコピー動作700cは、動的なテクスチャ合成効果を得るために、埋め込み型フレームバッファ702の内容をメインメモリ112内のテクスチャにコピーする際にも利用され得る。アンチエリアシング及びその他のフィルタリングは、コピーアウト動作中に行われる。グラフィックスパイプライン180のフレームバッファ出力(最終的にメインメモリ112内に蓄えられる)は、ディスプレイ/ビデオインタフェースユニット164によってフレーム毎に読み出される。ディスプレイコントローラ/ビデオインタフェース164は、デジタルRGBピクセル値を出力して、ディスプレイ56に表示させる。
(メモリコントローラ例)
図6は、メモリコントローラ152の他のシステム構成要素との関係を示す全体図である。図3及び図4において、メモリコントローラ152とグラフィックスメモリ要求調停130とが、それぞれ個別の構成要素であるように描かれているが、以下の本実施形態例においては、メモリコントローラ152がこの構成要素の両方を含む。
メモリコントローラ152は、メインメモリ112へのアクセス要求を制御する。メインメモリ112は、例えば、Mosys社製であって、内部リフレッシュ動作を自動的に行う1TSRAM等のSRAMを備える。メインメモリ112へのアクセス要求には、
・3Dグラフィックスプロセッサ154(具体的には、コマンドプロセッサ200、テクスチャユニット500及びピクセルエンジン700)、
・プロセッサインタフェース150を介するメインプロセッサ110、
・オーディオDSP156、
・ディスプレイコントローラ164、及び
・様々なI/Oユニット(例えば、大容量記憶アクセス装置106)のための周辺コントローラ162、
等がある。
これら「要求部」は、メインメモリ112へのアクセスを競合する。図7にこの競合に関わるいくつかの典型的な動作を示す。図7中の番号付き矢印は、以下の動作を示す。
1.新たなゲームセクタ又はレベルのための大容量記憶デバイス62(例えばDVD)からメインメモリ112へのテクスチャ画像のロード
2.新たなゲームセクタ又はレベルのための大容量記憶デバイス62からメインメモリ112への形状頂点表示リストのロード
3.メインプロセッサ110によるテクスチャマップの動的レンダリング
4.メインプロセッサ110による頂点の動的生成又は変更
5.メインプロセッサ110による光及びマトリクスのアニメーティング
6.メインプロセッサ110による表示リストの作成
7.メインプロセッサ110によるグラフィックスコマンドストリームの生成
8.3Dグラフィックスプロセッサ154によるグラフィックスコマンドストリームの読み出し
9.3Dグラフィックスプロセッサ154による表示リストの読み出し
10.3Dグラフィックスプロセッサ154によるレンダリングのための頂点アクセス
11.3Dグラフィックスプロセッサ154によるレンダリングのためのテクスチャアクセス
これら動作は例示であって、メインメモリ112の読み出し及び書き込みに関する多くの動作のうちのいくつかに過ぎない。その他にも、メモリコントローラ152は、メインメモリの読み出し及び書き込み動作に関与するポートに対して調停を行う。より具体的には、図8を参照して、メモリコントローラ152は、
・テクスチャユニット500用の読み出しポート602
・コマンドプロセッサ200用の読み出しポート604
・ピクセルエンジン700用の書き込みポート606
・プロセッサインタフェース150用の読み出し/書き込みポート608
・オーディオDSP156用の読み出し/書き込みポート610
・表示コントローラ/ビデオインタフェース164用の読み出しポート612、及び
・周辺コントローラ162用の読み出し/書き込みポート614
の間で調停を行う。
もちろん、これらポートは例示目的であって、ある実施例においては、ポートの数はこれ以上であっても、これ以下であってもよい。さらに、図8等に示すバス/信号ライン幅は、例示目的だけに過ぎず、本発明の範囲を制限するものではない。メモリコントローラ152は、これらポートの間で調停を行い、メインメモリ112へのアクセスを割り当てる。本例において、メモリコントローラ152及びその入力及び出力のすべては、例えば200MHzで動作する。アドレス及び制御信号は、メモリコントローラ152のI/Oピンに直接接続され、一方、128ビット200MHzデータバスは、メモリアクセスコントロールMAC0〜MAC3を介して、例えば400MHzでクロック制御される。各MACは、メモリコントローラデータバス上の32ビットをメインメモリバス上の通信のために16ビットに変換する。以下の説明では、メインメモリ112に送出される要求を出す装置の動作を「マスタ」と称する。
あるマスタのいくつかは、メモリ「ホグ」である(例えば、メインプロセッサ読み出しマスタ、コマンドプロセッサ読み出しマスタ、テクスチャユニット読み出しマスタ、メインプロセッサ書き込みマスタ及びピクセルエンジン書き込みマスタ)。図9に概略的に示すように、メモリコントローラ152は、帯域幅制御回路620−1〜620−5を備え、以下に詳細に説明するが、これらメモリホグによるメインメモリの使用に影響を及ぼす。帯域幅制御回路620−1〜620−5を「ダイアル」であると見なし、対応マスタによる要求がメモリアービトレータ622によりマスクされるように設定されてもよい。メモリアービトレータ622は、例えば3.2ギガバイトの帯域幅でメインメモリ112へのアクセスを割り当てるように、要求を調停する。帯域幅制御回路620−1、620−2及び620−3は、対応読み出しマスタからの読み出し要求がメモリアービトレータ622の調停プロセスに参加して、メインメモリ112に読み出し要求を与える割合を制御する。例えば、コマンドプロセッサ読み出しマスタ及びテクスチャユニット読み出しマスタに関連する帯域幅制御回路は、コマンドプロセッサ読み出し要求がメモリアービトレータ622に供給される割合を、テクスチャユニット読み出し要求がメモリアービトレータ622に供給される割合に関連付けて構成するのに使用される。帯域幅制御回路620−4と620−5とは、対応書き込みマスタからの書き込み要求がメモリアービトレータ622の調停プロセスに参加して、書き込み要求をグローバル書き込み用バッファのキューに与える割合を制御する。例えば、メインプロセッサ書き込みマスタ及びピクセルエンジン書き込みマスタに関連する帯域幅制御回路は、メインプロセッサ書き込み要求がグローバル書き込み用バッファキューに配置される割合を、ピクセルエンジン書き込み要求がグローバル書き込み用バッファキューに配置される割合に関連付けて構成するのに使用されてもよい。そのため、帯域幅制御回路は、例えばグローバル書き込み用バッファにエントリをスロットリングする(エントリの割合を減少させる)ことにより、書き込みマスタの書き込み要求をスローダウンさせることができる。グローバル書き込み用バッファは、通常、自身のキューがフルになった場合、又はある一定レベルを超えた場合、又はメインプロセッサの読み出し要求がグローバル書き込み用バッファへのエントリと一致した場合に、メインメモリ112への書き込み要求を開始する。
調停方式は、典型的には、予め意図されたシステム全体の動作に合わせて設定され、かつ、バランスが取られる。これにより、ある調停方式では、メインプロセッサ読み出し要求が最優先される。しかしながら、アプリケーションによっては、メインプロセッサの読み出しには低めの優先度を付与して、グラフィックス処理により多くの帯域幅を与えることが好ましい場合もある。この場合、メインプロセッサ用帯域幅制御回路は、メインプロセッサ読み出しがサイクル毎に調停されないように構成されることも可能である。これにより、システムの性能がアプリケーションに合わせてうまく調整される。
図10及び図11のそれぞれに、メモリコントローラ152用のアドレスパス及び読み出しデータパスを示す。メインメモリ112へのアクセスをシークする読み出しマスタは、読み出しキューRQ1〜RQ6のうちそれぞれ対応するものと関連付けられて、メインメモリ112から読み出すための読み出し要求(アドレス)のキューを形成する。メインメモリ112へのアクセスをシークする書き込みマスタは、書き込みキューWQ1〜WQ4のうちそれぞれ対応するものと関連付けられて、メインメモリ112に書き込むための書き込みアドレス及び対応データのキューを形成する。メモリアービトレータ622は、所定の調停プロセスで、読み出しキューRQ1〜RQ6にメインメモリへのアクセスを割り当て、かつ、書き込みキューWQ1〜WQ4のうちのどの書き込み要求がグローバル書き込み用バッファWQ0に与えられるかを制御する。少なくとも要求のうちのいくつかがこの調停プロセスに供給される割合は、上記帯域幅制御回路の設定に従って制御可能である。ある特定の動作に対して帯域幅制御回路を適切に設定することにより、見識のあるユーザであれば、調停プロセスへの要求の流れを調整して、その動作におけるシステムの性能を向上させることが可能である。
グローバル書き込み用バッファWQ0向けの調停方式がある。というのは、4つの要求部がメインメモリ112に対して書き込み要求を行う場合があるためである。グローバル書き込み用バッファ向けの調停方式では、これら4つの要求部の間で調停を行う。各書き込みマスタは、ローカルキュー(すなわち、WQ1〜WQ4のうちの1つ)を有し、ある特定の書き込みマスタ用のローカルキューが空でない場合はいつでも、グローバル書き込み用バッファへのその他エントリを調停する。メインプロセッサ110の書き込みは常に最優先され、そのため帯域幅制御回路は、この優先度に対して「ダイアルダウン」される。ピクセルエンジン700は、オーディオDSP156及び周辺(I/O)コントローラ162と同様の書き込み優先度を有する。しかしながら、ピクセルエンジン700は、128ビットバスを使用し、メインメモリ112に対してコピーが行われると、ピクセルエンジン700は、サイクル毎に書き込み要求を行う場合がある。そのため、帯域幅制御回路は、この書き込み要求部に対して「ダイアルダウン」を付与して、その書き込み要求をサイクル毎に調停されないようにする。
グローバル書き込み用バッファWQ0に書き込み要求を集めることにより、読み出しから書き込み及び書き込みから読み出しへの切り替えが減少され、メインメモリバスが変更される際に生じるデッドメモリサイクルが最小化できる。書き込み要求はグローバル書き込み用バッファWQ0に供給され、一方、読み出し要求は調停方式に従って処理される。グローバル書き込み用バッファWQ0があるレベルまで満たされた場合、あるいはメインプロセッサの読み出し要求がグローバル書き込み用バッファのエントリにマッチした場合、メインメモリバスは、読み出しから書き込み状態に切り替えられることが多い。このスイッチオーバーにより、グローバル書き込み用バッファWQ0は、メインメモリ112のある特定アドレスにデータを書き込むためにフラッシュされる。
図12に、帯域幅制御回路620−1〜620−5の実現例を示す。もちろん、帯域幅制御回路はその他の方法でも実現可能であり、本発明はこれに限定されるものではない。本実施形態例において、各帯域幅制御回路は、プログラム可能ハードウェアレジスタ710及びハードウェアアキュムレータ720を含む。プログラム可能レジスタは、9ビットレジスタ(ビット8〜ビット0)であって、プログラム用のデータは、1.8フォーマット(すなわちx.xxxxxxxx)である。アキュムレータ720は、ある所定の数に初期化され(例えば0.00000000)、サイクル毎に、プログラム可能レジスタ710にプログラムされた数は、自動的にアキュムレータ720に加算される。アキュムレータ720のビット8(最上位ビット)が設定されると、対応する要求はそのサイクルで調停され、メインメモリから読み出されるか又はグローバル書き込み用バッファキューに配置される。これを、入力要求とアービトレータ622との間の信号パスの閉鎖部によって、図12において表現する。プログラム可能レジスタ710が0x1.00に設定された場合、対応する要求はサイクル毎に調停される。例えば、あるマスタからの要求を1サイクルおきに調停するようにするには、対応するプログラム可能レジスタを0x80に設定する。この場合のプログラム可能レジスタのデフォルト値は0x1.00であり、レジスタはアプリケーションプログラミングインタフェース(API)を介してプログラム可能である。
プログラム可能レジスタの例を以下に示す。
Figure 0005142419
ある要求部からのメモリアクセス要求は先入れ/先出しされ、対応プログラム可能レジスタにより決定されるNサイクル毎に、その先入れ/先出しされた要求のうちの1つが調停される。これにより、帯域幅制御回路が要求フィルタとして機能し、例えばこれら要求部が一度に大量の要求を生成し、他の要求部も同様に要求を生成している場合、特定の要求部によるメインメモリ112へのアクセス要求をスローダウンさせることができる。従って、特定の要求部がメインメモリ112へのデータ書き込み要求を大量に生成しているような場合、その帯域幅制御回路が、これら要求が調停される割合を制御するようプログラミングされる。どの要求部もアクセスを主張していない場合、ある要求部からの要求が直ちに処理される。
帯域幅制御回路は、対応マスタのためにメモリ帯域幅を制御する。例えば、コマンドプロセッサのプログラム可能レジスタの内容がメモリサイクル毎に加算される、アキュムレータのビット8(すなわち最上位ビット)が1でない場合、待ち状態のコマンドプロセッサ要求があったとしても、アキュムレータのビット8が1に等しくなるように十分なサイクルが経過するまで、又は他のマスタからの待ち状態の要求がなくなるまで、その要求は調停されない。メモリコントローラ152は、帯域幅制御回路の設定により、メインメモリ112がアイドル状態にならないようにするのが好ましい。帯域幅制御回路620−1〜620−5は、マスタに対応するアキュムレータのビット8(すなわち最上位)が1に等しくなるまで、そのマスタからの要求をマスキングすることにより、この調停方式に作用する。
このように、帯域幅制御回路620−1〜620−5は、マスタからの要求を調停する頻度をプログラム可能に制御することにより、主要メモリの「ホグ」によるメモリの使用に影響を及ぼす。ある書き込みマスタ用の帯域幅制御回路は、例えば、そのマスタからの書き込み要求をグローバル書き込み用バッファWQ0にスロットリングすることにより、その書き込みマスタからメインメモリ112への書き込みをスローダウンさせることができる。ここで、帯域幅制御回路のプログラム可能レジスタ設定により、許可されない未処理読み出し要求がある場合、調停によりメインメモリ112をアイドル状態にしないことが好ましい。この場合、スロットリングされる要求部の間で、ラウンドロビン方式が用いられる。例えば、2つの要求部がラウンドロビン方式に関与すると仮定すると、調停コントロール622は、最初の要求部に1番目のメモリサイクルを与え、2つ目の要求部に2番目のメモリサイクルを与え、最初の要求部に3番目のメモリサイクルを与える。
このシステム例においては、読み出しはすべて単一キャッシュライン(32バイト)である。そのため、キャッシュラインの読み出しには200MHzで2サイクル要し、新規読み出しは10ナノ秒毎に行われる。その他要求部の間でのラウンドロビン調停において、メインプロセッサ110からの読み出し要求が最優先される。メモリ所有権は、読み出し要求部の間で10ナノ秒毎に変わってリフレッシュされるが、書き込みキューは、常に全体にわたって書き込みされる。書き込みキューは、あるレベルまで、又はあるレベルを超えて満たされたとき、あるいはメインプロセッサ読み出し要求が書き込み用バッファのエントリにマッチしたときに、要求を開始する。これらには、要求の頻度に関して以下の制限が課せられる。
・メインプロセッサの読み出しは、2つ連続して行えない。
・システムの読み出しは、2つ連続して行えない。
・10ナノ秒のリフレッシュサイクル中、2行リフレッシュされる。5ナノ秒毎に1行。
ここに記載する帯域幅制御回路は、ある特定の調停プロセスとの使用に限定されない。読み出しキュー調停方式例と書き込みキュー調停方式例とを以下に説明するが、これらは例示であって制限ではない。これら例示調停方式のさらなる詳細は、共に名称が「機能向上型メモリコントローラを用いたグラフィックス処理システム」である、上記仮出願番号60/226,894、及び対応出願番号09/726,220に記載されている。
(読み出しキューの調停例)
メインプロセッサ110は、以下の場合を除いて最優先される。
・メインプロセッサ110が先のアクセスに対するマスタである場合
・メインプロセッサ読み出しマスタ用のアキュムレータのビット8(MSB)が1に等しくなく、アキュムレータのビット8(MSB)が1に等しい他のマスタによる他の要求がある場合
・書き込み用バッファが完全なフル状態で、書き込みサイクルの最中である場合
・先のメインプロセッサアドレスが、書き込み用バッファをフラッシュさせるプロセッサインタフェースローカル書き込み用バッファ、又はグローバル書き込み用バッファにおける有効なメインプロセッサ書き込みアドレスに合致する場合
コマンドプロセッサ200又はテクスチャユニット500が、その他のシステムマスタ(すなわち、オーディオDSP156、周辺(I/O)コントローラ162、ビデオコントローラ164)と同じ優先度を有し、従って、以下の条件以外でシステムマスタをラウンドロビン方式でメモリ調停する。
・オーディオDSP156、周辺(I/O)コントローラ162又はビデオコントローラ164が、先のアクセスに対するマスタである場合
・コマンドプロセッサ読み出し又はテクスチャユニット読み出しのアキュムレータのビット8(MSB)が1に等しくなく、その対応アキュムレータのビット8が1に等しい他のマスタによる他の要求がある場合。
オーディオDSP156(又は周辺(I/O)コントローラ162、又はビデオコントローラ164)の読み出しは、その他グラフィックスマスタ(コマンドプロセッサ200及びテクスチャユニット500)と同じ優先度を有し、従って、以下の条件以外でグラフィックスマスタをラウンドロビン方式でメモリ調停する。
・オーディオDSP156(又は周辺(I/O)コントローラ162、又はビデオコントローラ164)が、先のアクセスに対するマスタである場合
グローバル書き込み用バッファWQ0は、以下の状態以外でメインプロセッサ110、グラフィックス又はシステムマスタより低い優先度を有する。
・グローバル書き込み用バッファWQ0が完全なフル状態で、ラウンドロビン方式で調停を行う場合
・メインプロセッサ読み出しアドレスは、グローバル書き込み用バッファWQ0内の書き込みアドレスと合致する場合、最優先される。
・優先度が高いその他のマスタのアキュムレータのビット8が1に等しくない場合
以下の条件以外で、リフレッシュは最低の優先度を有する。
・リフレッシュ要求の合計がしきい値に達すると、その優先度はメインプロセッサ読み出しのすぐ下のレベルまであがる。
・優先度が高いその他のマスタのアキュムレータのビット8が1に等しくない場合
(書き込みキューの調停例)
メインプロセッサ110、ピクセルエンジン700、オーディオDSP156及び周辺(I/O)コントローラ162は、書き込みキューの4つのマスタである。メインプロセッサによる書き込みは最優先され、その他3つのマスタは以下の状態以外の場合にラウンドロビン方式で調停される。
・メインプロセッサ書き込みのアキュムレータのビット8(MSB)が1に等しくなく、そのアキュムレータのビット8(MSB)が1に等しい書き込みマスタが他にある場合
上記説明は、メモリ装置へのアクセスについてであるが、本発明はこれに限定されるものではなく、ここに説明するコンセプトは、バス(例えば、PCIバス)、プロセッサ(例えば、非埋め込み型プロセッサ)等の共有リソースへのアクセスを複数の要求部が要求するような状況下でも、十分に適用可能である。
(その他互換性のあるインプリメンテーション例)
上記システム装置50は、上述したホームビデオゲームコンソール構成以外でも実現され得る。例えば、システム50をエミュレート、そうでなければ互換性がある違った構成を有するプラットフォーム上で、システム50向けに記述されたグラフィックスアプリケーションや他のソフトウェアを実行することができる。システム50のハードウェア及びソフトウェアリソースの一部又はすべてを、エミュレート、シミュレート及び/又は提供できるプラットフォームであれば、ソフトウェアを首尾良く実行することができる。
例えば、エミュレータは、システム50のハードウェア及び/又はソフトウェア構成(プラットフォーム)とは異なるハードウェア及び/又はソフトウェア構成(プラットフォーム)を提供し得る。このエミュレータシステムは、アプリケーションソフトウェアが記述されたシステムのハードウェア及び/又はソフトウェア構成要素の一部又はすべてを、エミュレート又はシミュレートするソフトウェア及び/又はハードウェア構成要素を含むこともある。例えば、このエミュレータシステムは、システム50のハードウェア及び/又はファームウェアをシミュレートするソフトウェアエミュレータプログラムを実行するパーソナルコンピュータのような汎用デジタルコンピュータを備えることもある。上記オーディオシステムのDSP処理は、パーソナルコンピュータ上でエミュレート可能である。
汎用デジタルコンピュータ(例えば、IBMやマッキントッシュのパーソナルコンピュータ、及びその互換機)によっては、DirectXやその他の標準3DグラフィックスコマンドAPIに準拠する3Dグラフィックスパイプラインを提供する、3Dグラフィックスカードを装備している。あるいは、サウンドコマンドの標準セットに基づく高品質な立体的サウンドを可能にする、立体的サウンドカードも装備していることがある。このような、エミュレータソフトウェアを実行するマルチメディアハードウェア対応パーソナルコンピュータは、システム50のグラフィックス及びサウンド性能を近似させるのに十分な性能を有し得る。エミュレータソフトウェアは、パーソナルコンピュータのプラットフォーム上のハードウェアリソースを制御して、ゲームプログラマがゲームソフトウェアを記述したホームビデオゲームコンソールプラットフォームの処理、3Dグラフィックス、サウンド、周辺、及びその他機能をシミュレートする。
図13に、ホストプラットフォーム1201、エミュレータ構成1303及び記憶媒体62に用意されたゲームソフトウェアの実行可能な2値画像を用いた、包括的なエミュレーション処理の例を示す。ホスト1201は、例えば、パーソナルコンピュータ、ビデオゲームコンソール又はその他十分な演算能力を有するプラットフォームのような、汎用又は特殊目的用デジタル演算装置である。エミュレータ1303は、ホストプラットフォーム1201上で実行され、記憶媒体62からのコマンド、データ及び情報をホスト1201により処理可能な形式にリアルタイムに変換するソフトウェア及び/又はハードウェアである。例えば、エミュレータ1303は、システム50による実行を意図する「ソース」2値画像プログラム命令を記憶媒体62から取り出し、これらプログラム命令をホスト1201が実行又は処理可能な対象形式に変換する。
例えば、ソフトウェアが、IBM Power PC等の特定のプロセッサを用いて、プラットフォーム上で実行されるよう記述されたものであり、ホスト1201がそれとは異なる(例えば、インテルの)プロセッサを使用したパーソナルコンピュータである場合、エミュレータ1303は、記憶媒体62から2値画像のプログラム命令を1つ又はそのシーケンスを取り出して、これらプログラム命令を1つ又はそれ以上の同等なインテルの2値画像プログラム命令に変換する。エミュレータ1303は、グラフィックス&オーディオプロセッサ114による処理向けのグラフィックスコマンドとオーディオコマンドも取り出し及び/又は生成し、これらコマンドを、ホスト1201上で使用可能なハードウェア及び/又はソフトウェアグラフィックス及びオーディオ処理リソースにより処理され得るフォーマットに変換する。一例として、エミュレータ1303は、これらのコマンドを、ホスト1201の特定グラフィックス及び/又はオーディオハードウェアで処理され得るコマンドに変換してもよい(例えば、標準DirectX、OpenGL及び/又はサウンドAPIを用いて)。
上記ビデオゲームシステムの特長の一部又はすべてを提供するために使用されるエミュレータ1303は、グラフィックスユーザインタフェース(GUI)を備えていてもよく、これによりエミュレータを用いて実行されるゲームの様々なオプションやスクリーンモードの選択が簡易化又は自動化される。例えば、このようなエミュレータ1303は、本来のソフトウェア用ホストプラットフォームと比べてさらに機能が拡張されていてもよい。
図14に、エミュレータ1303と共に使用するのに適したエミュレーションホストシステム1201を示す。システム1201は、処理ユニット1203及びシステムメモリ1205を含む。システムバス1207は、システムメモリ1205を始めとする様々なシステム構成要素を処理ユニット1203に接続する。システムバス1207は、メモリバス又はメモリコントローラを含むバス構造のいくつかのタイプのうちの1つであり、様々なバスアーキテクチャのうちの1つを利用した周辺バス及びローカルバスである。システムメモリ1207は、読み出し専用メモリ(ROM)1252、及びランダムアクセスメモリ(RAM)1254を含む。起動中等、パーソナルコンピュータシステム1201の内部要素の間での情報転送に役立つ基本ルーチンを含む基本入出力システム(BIOS)1256は、ROM1252に格納される。システム1201は、さらに様々なドライブと、それに関連するコンピュータ読み出し可能媒体を含む。ハードディスクドライブ1209は、(典型的に固定の)磁気ハードディスク1211からの読み出し/への書き込みを行う。追加(できればオプションで)磁気ディスクドライブ1213は、着脱可能な「フロッピー(登録商標)」又はその他の磁気ディスク1215からの読み出し/への書き込みを行う。光ディスクドライブ1217は、CD−ROMやその他の光学媒体等の着脱可能な光ディスク1219から読み出しを行い、構成によっては書き込みも行う。ハードディスクドライブ1209及び光ディスクドライブ1217は、それぞれハードディスクドライブインタフェース1221と光ドライブインタフェース1225とによって、システムバス1207に接続される。そのドライブとそれに関連するコンピュータ読み出し可能媒体とは、コンピュータ読み出し可能命令、データ構造、プログラムモジュール、ゲームプログラム及びその他パーソナルコンピュータシステム1201向けのデータを、不揮発的に記憶する。他の構成において、データを格納し、コンピュータによってアクセスされ得るコンピュータ読み出し可能媒体(例えば、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)等)も使用され得る。
エミュレータ1303を含む数多くのプログラムモジュールは、ハードディスク1211、着脱式磁気ディスク1215、光ディスク1219、及び/又はシステムメモリ1205のROM1252及び/又はRAM1254上に記憶される。このようなプログラムモジュールは、グラフィックス&サウンドAPI、1つ又はそれ以上のアプリケーションプログラム、その他プログラムモジュール、プログラムデータ及びゲームデータを提供するオペレーティングシステムを含んでいてもよい。ユーザは、キーボード1227、ポインティング装置1229、マイク、ジョイスティック、ゲームコントローラ、衛星放送用アンテナ、スキャナ等の入力装置を通して、パーソナルコンピュータシステム1201にコマンドや情報を入力する。例えば、これらの入力装置は、システムバス1207に接続されるシリアルポートインタフェース1231を介して処理ユニット1203に接続され得るが、もちろん他のインタフェース、例えばパラレルポート、ゲームポートファイアワイヤバス又はユニバーサルシリアルバス(USB)によっても接続され得る。モニタ1233等の表示装置も、ビデオアダプタ1235等のインタフェースを介してシステムバス1207に接続される。
システム1201は、モデム1154やその他のネットワークインタフェース手段も含み、インターネット等のネットワーク1152を介して通信を確立する。内部、外部を問わず、モデム1154は、シリアルポートインタフェース1231を介してシステムバス123に接続される。ネットワークインタフェース1156も備えられていてもよく、これによりシステム1201がローカルエリアネットワーク1158を介して、リモート演算装置1150(別システム1201等)と通信可能になる(この通信は、広域ネットワーク1152、又はダイアルアップやその他の通信手段等の通信パスでもかまわない)。システム1201は、典型的には、プリンタやその他の標準的な周辺装置等、その他周辺出力装置を含む。
例えば、ビデオアダプタ1235は、マイクロソフトのDirect7.0、又はその他のバージョン等の標準3Dグラフィックスアプリケーションプログラマインタフェースに基づいて送出される3Dグラフィックスコマンドに応答して、高速3Dグラフィックスレンダリングを行う3Dグラフィックスパイプラインチップを含んでいてもよい。ステレオスピーカ1237のセットは、バス1207からのサウンドコマンドに基づいて、高品質な立体的サウンドを生成するためのハードウェア及び組み込みソフトウェアサポートを提供する、従来の「サウンドカード」のようなサウンド生成インタフェースを介して、システムバス1207に接続される。これらハードウェア機能により、システム1201が、記憶媒体62に格納されているソフトウェアをプレイするための、十分なグラフィックス及びサウンドスピード性能を提供する。
以上、本発明を、最も実用的で好ましい実施形態であると現時点で判断される内容に関して説明してきたが、本発明は、開示された実施形態にのみ制限されるべきものではなく、反対に記載した請求項の範囲内において、様々に変更、及び同等な内容が適用されるものとする。

Claims (7)

  1. 共有リソースへのアクセスを制御するコントローラであって、
    前記共有リソースへの複数のアクセス要求を調停するアービトレータ、及び
    前記アービトレータによる要求の調停頻度を制御するプログラム可能帯域幅制御回路を備え、
    前記帯域幅制御回路は、
    プログラム可能レジスタ、及び
    アキュムレータを有し、
    前記プログラム可能レジスタの内容は、それぞれ対応するアキュムレータに繰り返し加算され、当該プログラム可能レジスタに対応する要求は、当該アキュムレータの値が所定の値に達するまで調停されない、コントローラ。
  2. 前記プログラム可能レジスタの内容は、クロック信号に従って、それぞれ対応するアキュムレータに繰り返し加算される、請求項1に記載のコントローラ。
  3. 前記プログラム可能レジスタは、アプリケーションプログラミングインタフェースを用いてプログラム可能である、請求項1または2に記載のコントローラ。
  4. 前記プログラム可能レジスタは、プログラム可能なハードウェアレジスタである、請求項1ないし3のいずれか一項に記載のコントローラ。
  5. 前記帯域幅制御回路は、複数種類のアクセス要求に対応した複数の前記プログラム可能レジスタを有し、
    前記複数の前記プログラム可能レジスタのそれぞれは、個別にプログラム可能である、請求項1ないし4のいずれか一項に記載のコントローラ。
  6. 3Dグラフィックスシステムであって、
    表示用の3D視覚画像を生成するためのグラフィックスコマンドを処理するグラフィックス処理回路、
    前記グラフィックス処理回路にアクセス可能なメモリ、
    前記グラフィックス処理回路からの、複数のメモリアクセス要求を調停するためのアービトレータ、及び
    前記アービトレータによる要求の調停頻度を制御するプログラム可能帯域幅制御回路を備え、
    前記帯域幅制御回路は、
    プログラム可能レジスタ、及び
    アキュムレータを有し、
    前記プログラム可能レジスタの内容は、それぞれ対応するアキュムレータに繰り返し加算され、当該プログラム可能レジスタに対応する要求は、当該アキュムレータの値が所定の値に達するまで調停されない、3Dグラフィックスシステム。
  7. ビデオゲームシステムであって、
    メインプロセッサ、
    表示用の3D視覚画像を生成するためのグラフィックスコマンドを処理するグラフィックス処理回路、
    3D視覚画像を伴うオーディオコンテンツを生成するためのオーディオコマンドを処理するオーディオ処理回路、
    前記グラフィックス処理回路及び前記オーディオ処理回路にアクセス可能であるメモリ、
    少なくとも前記メインプロセッサと前記グラフィックス処理回路とからの複数のメモリアクセス要求を調停するアービトレータ、及び
    前記アービトレータによる要求の調停頻度を制御するプログラム可能帯域幅制御回路を備え、
    前記帯域幅制御回路は、
    プログラム可能レジスタ、及び
    アキュムレータを有し、
    前記プログラム可能レジスタの内容は、それぞれ対応するアキュムレータに繰り返し加算され、当該プログラム可能レジスタに対応する要求は、当該アキュムレータの値が所定の値に達するまで調停されない、ビデオゲームシステム。
JP2012098920A 2000-08-23 2012-04-24 共有リソースへのアクセス方法及び装置 Expired - Lifetime JP5142419B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22688600P 2000-08-23 2000-08-23
US60/226886 2000-08-23

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001163361A Division JP5020443B2 (ja) 2000-08-23 2001-05-30 共有リソースへのアクセス方法及び装置

Publications (2)

Publication Number Publication Date
JP2012164344A JP2012164344A (ja) 2012-08-30
JP5142419B2 true JP5142419B2 (ja) 2013-02-13

Family

ID=22850827

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2001163361A Expired - Lifetime JP5020443B2 (ja) 2000-08-23 2001-05-30 共有リソースへのアクセス方法及び装置
JP2012098920A Expired - Lifetime JP5142419B2 (ja) 2000-08-23 2012-04-24 共有リソースへのアクセス方法及び装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2001163361A Expired - Lifetime JP5020443B2 (ja) 2000-08-23 2001-05-30 共有リソースへのアクセス方法及び装置

Country Status (1)

Country Link
JP (2) JP5020443B2 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6043764A (ja) * 1983-08-19 1985-03-08 Nec Corp 情報処理システム
JPH05120239A (ja) * 1991-10-30 1993-05-18 Seiko Epson Corp 並列処理回路
JPH0660017A (ja) * 1992-08-06 1994-03-04 Nec Eng Ltd 競合回路
JPH07200386A (ja) * 1993-12-28 1995-08-04 Toshiba Corp 共有メモリのアクセス制御装置および画像形成装置
JPH07295877A (ja) * 1994-04-20 1995-11-10 Fuji Xerox Co Ltd 調停装置
US6006303A (en) * 1997-08-28 1999-12-21 Oki Electric Industry Co., Inc. Priority encoding and decoding for memory architecture
JPH11167557A (ja) * 1997-12-02 1999-06-22 Hitachi Ltd 共有メモリアクセス順序保証方法及びマルチプロセッサシステム
JP2000194683A (ja) * 1998-12-28 2000-07-14 Nec Kofu Ltd 共有メモリの調停回路およびその調停方法

Also Published As

Publication number Publication date
JP2012164344A (ja) 2012-08-30
JP5020443B2 (ja) 2012-09-05
JP2002163144A (ja) 2002-06-07

Similar Documents

Publication Publication Date Title
JP5149985B2 (ja) 機能拡張型メモリコントローラを備えるグラフィックス処理システム
JP4808858B2 (ja) グラフィクスパイプラインおよびそれの同期化方法
JP4698893B2 (ja) 改良されたフォグ効果を提供するための方法、グラフィックスシステム、およびプログラム
JP4757406B2 (ja) グラフィクスシステム
JP4890638B2 (ja) グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置
JP4846120B2 (ja) スケルトンアニメーションのステッチングハードウェアを有するグラフィクス装置
US6636214B1 (en) Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
JP4691273B2 (ja) グラフィクス処理システムおよびエンボス型バンプマッピングを行う方法
JP5025849B2 (ja) オーディオ信号をプリフェッチするための方法および装置
JP2002074387A (ja) Zテクスチャリングを用いるイメージ生成方法
JP2002063590A (ja) グラフィクスシステム用再循環シェードツリーブレンダ
AU785318B2 (en) Method and apparatus for pre-caching data in audio memory
JP4570766B2 (ja) 音声信号をミキシングするための方法および装置
JP5142419B2 (ja) 共有リソースへのアクセス方法及び装置
JP4658397B2 (ja) オーディオメモリ内のデータを予めキャッシュする方法及び装置
JP4740476B2 (ja) グラフィックスシステム内におけるn個のアルファ演算の論理結合を提供する方法および装置
JP4740490B2 (ja) グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング
JP4698894B2 (ja) グラフィックスシステムにおけるテクスチャタイリングのための方法、装置およびプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121029

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: 20121116

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121119

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

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5142419

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term