(57)【特許請求の範囲】
【請求項１】
ビデオゲームシステムであって、
オーディオデジタル信号プロセッサ、
メインメモリ、
メインメモリとは別個に備えられ、オーディオデジタル信号プロセッサによって処理されるオーディオ関連データを記憶するオーディオメモリ、
大容量記憶装置、及び
大容量記憶装置に記憶されるノンオーディオ関連データを読み出し、ノンオーディオ関連データをオーディオメモリに書き込み、その後オーディオメモリからノンオーディオ関連データを読み出し、メインメモリにノンオーディオ関連データを書き込むメモリアクセス回路を備える、ビデオゲームシステム。
【請求項２】
オーディオメモリは、内部及び拡張記憶素子を備えることを特徴とする、請求項１に記載のビデオゲームシステム。
【請求項３】
オーディオメモリは、ＳＤＲＡＭを備えることを特徴とする、請求項１に記載のビデオゲームシステム。
【請求項４】
ノンオーディオ関連データは、グラフィックスデータであることを特徴とする、請求項１に記載のビデオゲームシステム。
【請求項５】
ノンオーディオ関連データは、アニメーションデータであることを特徴とする、請求項１に記載のビデオゲームシステム。
【請求項６】
ノンオーディオ関連データは、圧縮グラフィックスデータであることを特徴とする、請求項１に記載のビデオゲームシステム。
【請求項７】
メモリアクセス回路とオーディオデジタル信号プロセッサとの間で、オーディオメモリへのアクセスを調停するためのオーディオメモリコントローラをさらに備えることを特徴とする、請求項１に記載のビデオゲームシステム。
【請求項８】
オーディオメモリコントローラは、メモリアクセス回路よりも、オーディオデジタル信号プロセッサに対して高いアクセス優先順位を与えることを特徴とする、請求項７に記載のビデオゲームシステム。
【請求項９】
オーディオメモリコントローラは、オーディオメモリリフレッシュサイクルを生成することを特徴とする、請求項７に記載のビデオゲームシステム。
【請求項１０】
オーディオメモリコントローラは、リセット後のオーディオメモリを安定化させためのオーディオメモリ初期タイミングを発生させることを特徴とする、請求項７に記載のビデオゲームシステム。
【請求項１１】
メモリアクセス回路は、
オーディオメモリから読み出される及びオーディオメモリに書き込まれるデータを記憶するバッファを含むことを特徴とする、請求項１に記載のビデオゲームシステム。
【請求項１２】
メモリアクセス回路は、
第１のメモリアドレスを記憶する第１のメモリアドレスレジスタ、
第２のメモリアドレスを記憶する第２のメモリアドレスレジスタ、
ブロック長を記憶するブロック長レジスタ、及び
第１のメモリアドレスレジスタ、第２のメモリアドレスレジスタ、及びブロック長レジスタに記憶されるデータを変更するレジスタ切替回路を備えることを特徴とする、請求項１に記載のビデオゲームシステム。
【請求項１３】
第１のメモリアドレスレジスタは、メインメモリアドレスを記憶し、第２のメモリアドレスレジスタは、オーディオメモリアドレスを記憶することを特徴とする、請求項１２に記載のビデオゲームシステム。
【請求項１４】
メモリアクセス回路は、
割り込みを発生させるための制御ロジックを含むことを特徴とする、請求項１に記載のビデオゲームシステム。
【請求項１５】
大容量記憶装置は、ＤＶＤを備えることを特徴とする、請求項１に記載のビデオゲームシステム。
【請求項１６】
ノンオーディオ関連データは、３２バイト単位で読み出し及び書き込まれることを特徴とする、請求項１に記載のビデオゲームシステム。
【請求項１７】
大容量記憶装置に記憶されるノンオーディオ関連データへのアクセス方法であって、
オーディオメモリをメインメモリとは別個に備え、オーディオメモリ内にオーディオデジタル信号プロセッサによって処理されるオーディオ関連データを記憶し、
大容量記憶装置に記憶されるノンオーディオ関連データを読み出し、ノンオーディオ関連データをオーディオメモリに書き込み、
その後、オーディオメモリからノンオーディオ関連データを読み出し、メインメモリにノンオーディオ関連データを書き込む、アクセス方法。
【請求項１８】
オーディオメモリは、内部及び拡張記憶素子を備えることを特徴とする、請求項１７に記載のアクセス方法。
【請求項１９】
オーディオメモリは、ＳＤＲＡＭを備えることを特徴とする、請求項１７に記載のアクセス方法。
【請求項２０】
ノンオーディオ関連データは、グラフィックスデータであることを特徴とする、請求項１７に記載のアクセス方法。
【請求項２１】
ノンオーディオ関連データは、アニメーションデータであることを特徴とする、請求項１７に記載のアクセス方法。
【請求項２２】
ノンオーディオ関連データは、圧縮グラフィックスデータであることを特徴とする、請求項１７に記載のアクセス方法。
【請求項２３】
大容量記憶装置は、ＤＶＤを備えることを特徴とする、請求項１７に記載のアクセス方法。
【請求項２４】
ノンオーディオ関連データは、３２バイト単位で読み出し及び書き込まれることを特徴とする、請求項１７に記載のアクセス方法。
【請求項２５】
ビデオゲーム装置であって、
オーディオデジタル信号プロセッサ、
メインメモリ、
メインメモリとは別個に備えられ、オーディオデジタル信号プロセッサによって処理されるオーディオ関連データを記憶するオーディオメモリ、
大容量記憶装置、及び
大容量記憶装置に記憶されるノンオーディオ関連データを読み出し、ノンオーディオ関連データをオーディオメモリに書き込み、その後オーディオメモリからノンオーディオ関連データを読み出し、メインメモリにノンオーディオ関連データを書き込むメモリアクセス回路を備える、ビデオゲーム装置。
【請求項２６】
メインメモリを備えるビデオゲームシステムのコンピュータに実行させるためのゲームプログラムであって、
前記コンピュータを、
オーディオデジタル信号処理手段、及び
大容量記憶装置に記憶されるノンオーディオ関連データを読み出し、ノンオーディオ関連データを、メインメモリとは別個に備えられ、オーディオデジタル信号処理手段によって処理されるオーディオ関連データを記憶するオーディオメモリに書き込み、その後オーディオメモリからノンオーディオ関連データを読み出し、メインメモリにノンオーディオ関連データを書き込むメモリアクセス手段として機能させるためのゲームプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オーディオメモリへのアクセス方法及び装置に関し、より特定的には、ビデオゲームシステムのオーディオメモリにおいて、ノンオーディオ関連データをプリキャッシングするための方法及び装置に関する。
【０００２】
【従来の技術】
恐竜、宇宙人、アニメ化されたおもちゃといった空想的な生物が、非常にリアルに映像化された映画を見かけることが多くなっている。このような動画は、コンピュータグラフィックスにより可能となっている。この技術を用いることにより、コンピュータグラフィックスアーチストは、各物体の形状及び時間の経過に伴って生じる外見上の変化を特定することができる。そして、コンピュータが物体をモデリングして、ホームテレビやコンピュータ等の画面上に表示する。表示画像の各部分は、そのシーンにおける物体相互の距離及び向き、各物体に対する照明方向、各物体の表面の質感、その他様々な要素に基づき着色・形成され、この着色・形成を適切に行うために必要な数多くの処理は、コンピュータが引き受ける。
【０００３】
コンピュータグラフィックスの生成処理が複雑なため、ほんの数年前まで、コンピュータで生成した３次元グラフィックスの活用は、高価格で専門化されたフライトシミュレータ、ハイエンドグラフィックスワークステーション及びスーパーコンピュータに限られていた。人々は、これらコンピュータシステムによって作り出された画像を、映画や制作費の高いテレビコマーシャルで目にすることがあっても、実際にグラフィックスを作成しているコンピュータと接触することはできなかったのである。しかし、ニンテンドウ６４（登録商標）や各種３Ｄグラフィックスカード等、比較的安価なパーソナルコンピュータ用グラフィックスプラットフォームの登場により、状況は変わった。今や、自宅やオフィスでも、手ごろな価格のコンピュータグラフィックスシステムを用いて、迫力のある３Ｄアニメーション及びシミュレーションを、対話的に作り出すことが可能になっている。
【０００４】
【発明が解決しようとする課題】
対話式３Ｄコンピュータグラフィックスシステムは、ビデオゲームのプレイに使用されることが多い。しかしながら、「ゲーミング体験」を左右するのは、典型的にはビデオコンテンツだけではない。例えば、ほぼ全てのゲーミング体験では、ビデオコンテンツを伴うオーディオコンテンツの存在が大きい。本明細書では、３次元空間に配置されるサウンドエミッタをイネーブルして、スピーカ１対と共にサイコアコースティックな３Ｄサウンド効果を生成するための有効な手段を提供する、オーディオシステムに関して説明する。このオーディオシステムは、ＤＶＤ等の大容量記憶媒体から読み出される、例えばサウンドサンプル、インスツルメントウェーブテーブル、オーディオトラック等を、記憶するのに使用されるオーディオメモリを含む。サンプル、ウェーブテーブル、トラック等は、オーディオデジタル信号プロセッサにより順次読み出され処理されて、ゲームオーディオコンテンツが生成される。このコンテンツは、順次読み出された場所からメインメモリに転送されて、デコーダに供給され、スピーカに出力される。別個にオーディオメモリを備えることにより、メインシステムメモリへのアクセスを試みる他のリソース（グラフィックスサブシステム等）に対処する必要が無くなり、オーディオ処理回路によるオーディオデータへのアクセスが向上する。
【０００５】
さらに具体的に説明すれば、別個にオーディオメモリを備えることにより、データアクセスが必要なリソースに効率的にデータアクセスを提供する、システム性能のさらなる強化にもつながる。例えば、ＤＶＤは相対的に「待ち時間」が長い、すなわち要求に応答して該当データがリターンするのにかかる時間が比較的長い。そのため、ＤＶＤからのアニメーションデータや圧縮グラフィックスデータ等のデータを、そのデータが必要となる時間以前にプリフェッチしておけば、データを必要としている構成要素に速やかに供給させることができるため、有効である。オーディオメモリは、この「プリフェッチされた」ノンオーディオ関連データのためのキャッシュとして使用され得る。その後、レンダリングパイプライン等でデータが必要になると、データは、ＤＭＡ回路を経由して、データを必要としている構成要素に対して使用可能になったメインメモリに転送される。メインメモリに転送されたデータは、適宜復元される。
【０００６】
【課題を解決するための手段】
従って、本発明の１つの局面は、ビデオゲームシステムは、オーディオデジタル信号プロセッサ、メインメモリ及びメインメモリとは別個に備えられ、オーディオデジタル信号プロセッサにより処理されるオーディオ関連データを記憶するオーディオメモリ、を備えていることにある。メモリアクセス回路は、大容量記憶装置に記憶されるノンオーディオ関連データを読み出し、そのノンオーディオ関連データをオーディオメモリに書き込む。その後、オーディオデジタル信号プロセッサによる処理無しに、ノンオーディオ関連データは、オーディオメモリから読み出され、メインメモリに書き込まれる。
【０００７】
本発明の別の局面は、大容量記憶装置に記憶されるノンオーディオ関連データへのアクセス方法であって、メインメモリとは別個にオーディオメモリを備え、そのオーディオメモリに、オーディオデジタル信号プロセッサにより処理されるオーディオ関連データを記憶することにある。ノンオーディオ関連データは、大容量記憶装置から読み出され、オーディオメモリに書き込まれる。その後、オーディオデジタル信号プロセッサによる処理無しに、ノンオーディオ関連データは、オーディオメモリから読み出され、メインメモリに書き込まれる。
【０００８】
【発明の実施の形態】
図１に、対話式３Ｄコンピュータグラフィックスシステム５０の一例を示す。システム５０は、興味をそそるステレオサウンドを伴う対話式３Ｄビデオゲームをプレイするのに使用され得る。さらに、その他様々なアプリケーションにも使用され得る。
【０００９】
本例において、システム５０は、デジタル表現又は３次元世界のモデルを、対話的にリアルタイムで処理する機能を有する。システム５０は、その世界をどこでも任意の視点から部分的又は全体的に表示することができる。例えば、システム５０は、手持ちコントローラ５２ａ及び５２ｂ、又はその他の入力装置からのリアルタイム入力に応答して、対話的に視点を変えることができる。これにより、ゲームプレイヤは、世界の内部又は外部にいる誰かの目を通してその世界を見ることができる。システム５０は、リアルタイム対話式３Ｄ表示を必要としないアプリケーションに使用可能であるが（例えば、２Ｄ表示生成及び／又は非対話式表示）、その高品質な３Ｄ画像の超高速表示機能により、非常にリアルで迫力のあるゲームプレイの制作、又はその他グラフィカルな対話に使用することができる。
【００１０】
システム５０を用いてビデオゲーム等のアプリケーションをプレイするには、ユーザは、まずケーブル５８を用いて、メインユニット５４を自身のカラーテレビセット５６又はその他の表示装置に接続する。メインユニット５４は、ビデオ信号とオーディオ信号とを生成して、カラーテレビセット５６を制御する。ビデオ信号は、テレビスクリーン５９上に表示される画像を制御するものであり、オーディオ信号は、テレビステレオスピーカ６１Ｌ、６１Ｒを通して、サウンドとして再生される。
【００１１】
さらに、ユーザは、メインユニット５４を電源に接続する。この電源は、従来のＡＣアダプタ（図示せず）であって、標準型の家庭用電気コンセントに差込まれ、家庭用電流をメインユニット５４への電力供給に適した低いＤＣ電圧信号に変換する。電池は他の実施形態で使用可能である。
【００１２】
ユーザは、手持ちコントローラ５２ａ及び５２ｂでメインユニット５４を制御してもよい。例えば、操縦部６０を用いて、テレビ５６に表示されるキャラクタが３次元世界で動く方向を特定してもよい（上下、左右、近づける・遠ざける）。操縦部６０は、さらにその他のアプリケーションに入力を与える（例えば、メニューの選択、ポインタ／カーソルの制御等）。コントローラ５２は、様々な形をとることができる。本例においては、図示されるコントローラ５２は、それぞれジョイスティック、プッシュボタン及び／又は方向スイッチ等の操縦部６０を備える。コントローラ５２は、電磁（無線、赤外線等）波を介して、ケーブル又はワイヤレスでメインユニット５４に接続されてもよい。
【００１３】
ゲーム等のアプリケーションをプレイする場合、ユーザは、ビデオゲーム等の自身がプレイしたいアプリケーションを記憶している記憶媒体６２を適宜選択し、その記憶媒体をメインユニット５４のスロット６４に挿入する。記憶媒体６２は、例えば、特別にコード化及び／又は暗号化された光及び／又は磁気ディスクであってもよい。ユーザは、電源スイッチ６６を操作してメインユニット５４をオンにし、記憶媒体６２に記憶されているソフトウェアに基づいて、ビデオゲーム等のアプリケーションの実行を開始させる。ユーザは、コントローラ５２を操作して、メインユニット５４に入力を与えてもよい。例えば、操縦部６０を操作すると、ゲーム等のアプリケーションがスタートし得る。他の操縦部６０を動かすと、アニメ化されたキャラクタがそれぞれ異なる方向に移動したり、３次元世界におけるユーザの視点が変化し得る。記憶媒体６２内部に格納されている特定のソフトウェアにより、コントローラ５２上の各操縦部６０は、異なる時間に異なる機能を実行することができる。
【００１４】
（システム全体の電子部品例）
図２は、システム５０の構成要素例を示すブロック図である。主な構成要素としては、
・メインプロセッサ（ＣＰＵ）１１０
・メインメモリ１１２、及び
・グラフィックス＆オーディオプロセッサ１１４
が含まれる。
【００１５】
本例において、メインプロセッサ１１０（例えば、機能拡張型ＩＢＭ  Ｐｏｗｅｒ  ＰＣ  ７５０）は、グラフィックス＆オーディオプロセッサ１１４を介して、手持ちコントローラ５２（及び／又はその他の入力装置）から入力を受け取る。メインプロセッサ１１０は、ユーザ入力に対話的に応答し、例えば、光ディスクドライブ等の大容量記憶アクセス装置１０６を介して外部記憶媒体６２によって提供されるビデオゲーム又はその他のプログラムを実行する。例えば、ビデオゲームプレイの状況において、メインプロセッサ１１０は、様々な対話式制御機能に加え、衝突検出や動画処理を行うことができる。
【００１６】
本例では、メインプロセッサ１１０は、３Ｄグラフィックスコマンドとオーディオコマンドとを生成し、それらをグラフィックス＆オーディオプロセッサ１１４に送出する。グラフィックス＆オーディオプロセッサ１１４は、これらコマンドを処理し、ディスプレイ５９上に動的な視覚画像を生成し、さらにステレオスピーカ６１Ｒ及び６１Ｌ、又はその他の適切なサウンド発生装置から、高品質なステレオサウンドを出力する。
【００１７】
例示のシステム５０は、グラフィックス＆オーディオプロセッサ１１４から画像信号を受信し、その画像信号を、コンピュータのモニタや家庭用カラーテレビセット５６等の標準的な表示装置に表示するのに適したアナログ及び／又はデジタルビデオ信号に変換するビデオエンコーダ１２０を含む。システム１５０は、デジタル化されたオーディオ信号を圧縮／伸張し、さらに必要に応じてデジタルオーディオ信号フォーマットとアナログオーディオ信号フォーマットとの間の変換を行うオーディオコーデック（コンプレッサ／デコンプレッサ）１２２をさらに含む。オーディオコーデック１２２は、バッファ１２４を介してオーディオ入力を受け取り、それらを処理（プロセッサが生成したその他のオーディオ信号や、大容量記憶アクセス装置１０６のオーディオ出力ストリームを介して受信するオーディオ信号をミックス）するためにグラフィックス＆オーディオプロセッサ１１４に提供することもできる。本例におけるグラフィックス＆オーディオプロセッサ１１４は、オーディオ関連情報をオーディオタスクに使用可能なオーディオメモリ１２６に格納することができる。グラフィックス＆オーディオプロセッサ１１４は、処理結果のオーディオ出力信号を、伸張してアナログ信号に変換（例えば、バッファアンプ１２８Ｌ及び１２８Ｒを介して）するために、オーディオコーデック１２２に出力し、その結果、スピーカ６１Ｌ及び６１Ｒによって再生され得る。
【００１８】
グラフィックス＆オーディオプロセッサ１１４は、システム５０中に存在する様々な付加装置と通信する機能を備えている。例えば、パラレルデジタルバス１３０は、大容量記憶アクセス装置１０６及び／又はその他の構成要素との通信に使用され得る。シリアル周辺バス１３２は、例えば、
・プログラム可能な読み出し専用メモリ及び／又はリアルタイムクロック１３４
・モデム１３６又はその他のネットワーキングインタフェース（プログラム命令及び／又はデータが、そこからダウンロード又はそこにアップロードされ得る、インターネットやその他のデジタルネットワーク等のテレコミュニケーションネットワーク１３８に、システム５０を接続し得るもの）
・フラッシュメモリ１４０
等の各種周辺装置と通信するのに使用されてもよい。なお、さらなる外部シリアルバス１４２は、追加拡張メモリ１４４（例えば、メモリカード）等の装置との通信に使用されてもよい。コネクタは、様々な装置をバス１３０、１３２、１４２に接続するために使用されてもよい。
【００１９】
（グラフィックス＆オーディオプロセッサの例）
図３は、グラフィックス＆オーディオプロセッサ１１４の一例を示すブロック図である。グラフィックス＆オーディオプロセッサ１１４は、例えば、１チップＡＳＩＣ（特定用途向け集積回路）である。本例においては、グラフィックス＆オーディオプロセッサ１１４は、
・プロセッサインタフェース１５０
・メモリインタフェース／コントローラ１５２
・３Ｄグラフィックスプロセッサ１５４
・オーディオデジタル信号プロセッサ（ＤＳＰ）１５６
・オーディオメモリインタフェース１５８
・オーディオインタフェース＆ミキサ１６０
・周辺コントローラ１６２、及び
・ディスプレイコントローラ１６４
を備える。
【００２０】
３Ｄグラフィックスプロセッサ１５４は、グラフィックス処理タスクを行う。オーディオデジタル信号プロセッサ１５６は、オーディオ処理タスクを行う。ディスプレイコントローラ１６４は、メインメモリ１１２の画像情報にアクセスし、それをディスプレイ装置５６に表示するためビデオエンコーダ１２０に供給する。オーディオインタフェース＆ミキサ１６０は、オーディオコーデック１２２と接続されて、異なるソースからのオーディオ（例えば、大容量記憶アクセス装置１０６からのオーディオストリーム、オーディオＤＳＰ１５６からの出力及びオーディオコーデック１２２を介して受信した外部オーディオ入力）をミックスすることができる。プロセッサインタフェース１５０は、メインプロセッサ１１０とグラフィックス＆オーディオプロセッサ１１４との間で、データの供給とインタフェース制御とを行う。
【００２１】
メモリインタフェース１５２は、グラフィックス＆オーディオプロセッサ１１４とメモリ１１２との間で、データの供給とインタフェース制御とを行う。本例では、メインプロセッサ１１０は、グラフィックス＆オーディオプロセッサ１１４の一部であるプロセッサインタフェース１５０及びメモリインタフェース１５２を介して、メインメモリ１１２にアクセスする。周辺コントローラ１６２は、グラフィックス＆オーディオプロセッサ１１４と前述した様々な周辺装置との間で、データの供給とインタフェース制御とを行う。オーディオメモリインタフェース１５８は、オーディオメモリ１２６とのインタフェースとなる。
【００２２】
（グラフィックスパイプラインの例）
図４に、図３に例示の３Ｄグラフィックスプロセッサ１５４をより詳細に示した、グラフィックスプロセッシングシステムを示す。３Ｄグラフィックスプロセッサ１５４は、他の構成要素に加え、コマンドプロセッサ２００と３Ｄグラフィックスパイプライン１８０とを備える。メインプロセッサ１１０は、コマンドプロセッサ２００にデータのストリーム（例えば、グラフィックスコマンドストリームや表示リスト）を通信する。メインプロセッサ１１０は、２レベルキャッシュ１１５を備え、メモリ待ち時間を最小にする。さらに、メインプロセッサ１１０は、グラフィックス＆オーディオプロセッサ１１４向けのアンキャッシュデータストリーム用の書き込み用ギャザリングバッファ１１１を備える。この書き込み用ギャザリングバッファ１１１は、キャッシュラインを部分的に集めてフルキャッシュラインにし、バスを最大限に使用するために、１回につき１キャッシュラインでデータをグラフィックス＆オーディオプロセッサ１１４に送出する。
【００２３】
コマンドプロセッサ２００は、メインプロセッサ１１０から表示コマンドを受信し、それらを解析する。なお、この処理を行うのに必要な追加データがあれば、メモリコントローラ１５２を介して共有されたメモリ１１２から取得する。コマンドプロセッサ２００は、２Ｄ及び／又は３Ｄ処理及びレンダリングを行うために、頂点コマンドのストリームをグラフィックスパイプライン１８０に提供する。グラフィックスパイプライン１８０は、これらのコマンドに基づいて画像を生成する。結果作り出された画像情報は、メインメモリ１１２に転送され、パイプライン１８０のフレームバッファ出力をディスプレイ５６に表示するディスプレイコントローラ／ビデオインタフェースユニット１６４によりアクセスされる。
【００２４】
図５は、グラフィックスプロセッサ１５４を用いて行われる例示的な処理を説明する論理フロー図である。メインプロセッサ１１０は、グラフィックスコマンドストリーム２１０、表示リスト２１２及び頂点配列２１４をメインメモリ１１２に格納し、コマンドプロセッサ２００にバスインタフェース１５０を介してポインタを送り出してもよい。メインプロセッサ１１０は、メインメモリ１１２内に割り当てられた１つ又はそれ以上のグラフィックス先入れ先出し（ＦＩＦＯ）バッファ２１０に、グラッフィクスコマンドを格納する。コマンドプロセッサ２００は、
・同期／フロー制御及びロードバランシングのために、グラフィックスコマンドを受信してバッファリングする、オンチップＦＩＦＯメモリバッファ２１６を介するメインメモリ１１２からのコマンドストリーム
・オンチップコールＦＩＦＯメモリバッファ２１８を介するメインメモリ１１２からの表示リスト２１２、及び
・頂点キャッシュ２２０を介するメインメモリ１１２内のコマンドストリーム及び／又は頂点配列２１４からの頂点属性、
を取り込む。
【００２５】
コマンドプロセッサ２００は、コマンド処理動作２００ａを行い、属性のタイプを浮動小数点形式に変換して、その結果である完全な頂点ポリゴンデータを、レンダリングとラスタライゼーションのためにグラフィックスパイプライン１８０に送出する。プログラム可能なメモリ調停回路１３０（図４参照）は、グラフィックスパイプライン１８０と、コマンドプロセッサ２００と、ディスプレイコントローラ／ビデオインタフェースユニット１６４との間で、共有されたメインメモリ１１２へのアクセスを調停する。
図４は、
・変換ユニット３００
・セットアップ／ラスタライザ４００
・テクスチャユニット５００
・テクスチャ環境ユニット６００、及び
・ピクセルエンジン７００、
を備えるグラフィックスパイプライン１８０を示す。
【００２６】
変換ユニット３００は、様々な２Ｄ及び３Ｄ変換やその他動作３００ａ（図５参照）を実行する。変換ユニット３００は、１つ又はそれ以上のマトリクスメモリ３００ｂを備え、変換処理３００ａで使用するマトリクスを格納する。変換ユニット３００は、受け取った図形を頂点毎にオブジェクト空間からスクリーン空間に変換したり、受け取ったテクスチャ座標を変換して投影するテクスチャの座標を求めたり（３００ｃ）する。変換ユニット３００は、さらにポリゴンのクリッピング／カリング３００ｄを行う。照明処理３００ｅも同様に変換ユニット３００によって行われ、頂点毎に照明計算を行って、例えば最高８段階の明暗を得る。変換ユニット３００は、さらにテクスチャ座標を作成（３００ｃ）し、ポリゴンのクリッピング／カリング処理（３００ｄ）同様、エンボスタイプのバンプマッピング効果を得る。
【００２７】
セットアップ／ラスタライザ４００は、変換ユニット３００から頂点データを受信し、エッジのラスタライズ、テクスチャ座標のラスタライズ及び色のラスタライズを行う１つ又はそれ以上のラスタライズユニット（４００ｂ）に、三角形セットアップ情報を送出するセットアップユニットを含んでいる。
【００２８】
テクスチャユニット５００（オンチップテクスチャメモリ（ＴＭＥＭ）５０２を備えていてもかまわない）は、テクスチャに関する様々な処理、例えば
・メインメモリ１１２からのテクスチャ５０４の取得、
・例えば、マルチテクスチャ処理、キャッシュ後テクスチャの伸張、テクスチャフィルタリング、エンボス、投影テクスチャを使用しての陰影付け及び照明処理、アルファ透明度や深度のＢＬＩＴを含むテクスチャ処理（５００ａ）、
・バンプマッピング、疑似テクスチャ、及びテクスチャタイリング効果（５００ｂ）用にテクスチャ座標のずれを計算するバンプマップ処理、及び
・間接的テクスチャ処理（５００ｃ）、
を行う。
【００２９】
テクスチャユニット５００は、テクスチャ環境処理（６００ａ）のために、フィルタ処理されたテクスチャの値を、テクスチャ環境ユニット６００に出力する。テクスチャ環境ユニット６００は、ポリゴンとテクスチャの色／アルファ／深度とをブレンドし、テクスチャフォグ処理（６００ｂ）を行って、フォグ効果に基づく逆レンジを得ることができる。テクスチャ環境ユニット６００は、例えば色／アルファ変調、エンボス、細部テクスチャリング、テクスチャスワッピング、クランピング、及び深度ブレンディングに基づいて、興味深い様々な環境関連機能を実行するための段階を複数備え得る。
【００３０】
ピクセルエンジン７００は、深度（Ｚ）比較（７００ａ）及びピクセルブレンディング（７００ｂ）を行う。本例において、ピクセルエンジン７００は、データを埋め込み型（オンチップ）フレームバッファメモリ７０２に格納する。グラフィックスパイプライン１８０は、１つ又はそれ以上の埋め込み型ＤＲＡＭメモリ７０２を備え、フレームバッファ及び／又はテクスチャの情報をローカルに格納してもよい。Ｚ比較７００ａ’は、その時点におけるレンダリングモードによっては、グラフィックスパイプライン１８０の初期段階において行われてもよい（アルファブレンディングが必要でなければ、Ｚ比較は初期の段階で実行されてもよい）。ピクセルエンジン７００は、オンチップフレームバッファ７０２をメインメモリ１１２に定期的に書き込むコピー動作７００ｃを行い、ディスプレイ／ビデオインタフェースユニット１６４のアクセスに備える。さらに、このコピー動作７００ｃは、動的なテクスチャ合成効果を得るために、埋め込み型フレームバッファ７０２の内容をメインメモリ１１２内のテクスチャにコピーする際にも利用され得る。アンチエリアシング及びその他のフィルタリングは、コピーアウト動作中に行われる。グラフィックスパイプライン１８０のフレームバッファ出力（最終的にメインメモリ１１２内に蓄えられる）は、ディスプレイ／ビデオインタフェースユニット１６４によってフレーム毎に読み出される。ディスプレイコントローラ／ビデオインタフェース１６４は、デジタルＲＧＢピクセル値を出力して、ディスプレイ５６に表示させる。
【００３１】
（オーディオシステム例）
オーディオＤＳＰ１５６は、ピッチ変調及び音声のミキシングを行い、データに影響を与える。オーディオＤＳＰ１５６は、オーディオサンプルの記憶に使用され得る大量（例えば１６ＭＢ以上）のオーディオメモリ１２６（補助ＲＡＭ−ＡＲＡＭ）により増補される。オーディオは、デジタル−アナログ変換器を備えるオーディオコーデック１２２を経由して、スピーカ６１及び６１Ｒに送出される。大容量記憶装置６２からのオーディオストリームにより、ゲーム実行時にオーディオを高い忠実度で再生するための方法が効率化される。
【００３２】
図６は、図３に示すオーディオＤＳＰ１５６、オーディオメモリインタフェース１５８及びオーディオインタフェース＆ミキサ１６０を、より詳細に示すブロック図である。サンプルレート変換器８０１は、４８ｋＨｚ又は３２ｋＨｚのいずれかで（例えば、大容量記憶装置６２からの）オーディオストリームをサンプリングし、Ｌ／Ｒボリューム制御部８０３は、サンプリングされたオーディオの左右チャネルのボリュームレベルを制御する。オーディオストリームは、メインメモリ１１２を完全にバイパスするため、メモリとプロセッサの帯域幅が温存される。大容量記憶装置６２内のオーディオデータが、例えばＡＤＰＣＭフォーマットでエンコードされる場合、大容量記憶アクセス装置１０６は、ＡＤＰＣＭデータをＰＣＭサンプル（例えば１６ビット）に自動的にデコードして、サンプルレート変換器８０１に与える。
【００３３】
ＤＭＡチャネル８０５は、メインメモリ１１２内の任意の位置からＦＩＦＯバッファ８０７へのデータ転送をイネーブルする。ミキサ８０９は、サンプルレート変換器８０１の出力とＦＩＦＯバッファ８０７の出力とをミキシングし、その結果はオーディオコーデック１２２に出力される。オーディオコーデック１２２のサンプリングレートは、例えば４８ｋＨｚであり、オーディオコーデック１２２は、ステレオ１６ビットＰＣＭをアナログ信号に変換する標準シグマデルタコーデックであってもよい。
【００３４】
ＤＳＰコア８１１は、１００ＭＨｚ命令クロックを備え、１６ビットのデータワード及びアドレス指定を用いる。ＤＳＰコア８１１は、ＲＡＭ領域（例えば８Ｋバイト）とＲＯＭ領域（例えば８Ｋバイト）とを含むワード（１６ビット）アドレス指定可能命令メモリ８１３、及びＲＡＭ領域（例えば８Ｋバイト）とＲＯＭ領域（例えば４Ｋバイト）とを含むワードアドレス指定可能データメモリ８１５を用いる。ＤＳＰ  ＤＭＡ８１９は、メインメモリ１１２から／へのＤＳＰデータ／命令ＲＡＭ領域への／からのデータ転送、又はＤＳＰデータ／命令ＲＯＭ領域からメインメモリ１１２へのデータ転送のために設けられる。命令メモリ８１３へのアクセス要求部は、ＤＳＰ  ＤＭＡ８１９及びＤＳＰ８１１の２つである。命令ＲＡＭ領域は、ＤＳＰ  ＤＭＡ８１９からは読み出し／書き込みが可能であり、ＤＳＰ８１１からは読み出しのみが可能である。命令ＲＯＭ領域は、ＤＳＰ８１１からは読み出しのみが可能である。データメモリ８１５へのアクセス要求部は、ＤＳＰ  ＤＭＡ８１９、データバス１及びデータバス２の３つである。メイルボックスレジスタ８１７は、メインプロセッサ１１０との通信のために備えられる。メイルボックスレジスタ８１７は、メインプロセッサ１１０からＤＳＰコア８１１への通信のための第１のメイルボックスレジスタと、ＤＳＰコア８１１からメインプロセッサ１１０への通信のための第２のメイルボックスレジスタとを備える。レジスタはそれぞれ、例えば３２ビット幅である。アクセラレータ８２１は、ＤＳＰコア８１１の代わりに、オーディオメモリ１２６からの読み出し及び書き込みに使用することができる。メモリコントローラ８２３は、オーディオメモリ１２６のために設けられ、特に、オーディオメモリ１２６とメインメモリ１１２との間のデータトランザクションに備えて、メインプロセッサ１１０により制御されるＤＳＰコア８１１と専用ＤＭＡチャネル８２５との間におけるオーディオメモリアクセスに対する要求を調停する。一般に、オーディオメモリ１２６とＤＳＰデータメモリ８１５との間のデータトランザクションは、ＤＭＡチャネル８２５上で優先される。デコーダ８２７は、自身に供給されるオーディオサンプルをデコードする。オーディオメモリ１２６は、主としてオーディオ関連データの記憶を用途とし、ＳＤＲＡＭを１６ＭＢ含んでいてもよい（合計４８ＭＢまで拡張可能）。
【００３５】
オーディオデータを記憶するための必要条件を軽減するには、様々な圧縮及び復元方式が利用され得る。ＡＤＰＣＭは、適応差分ＰＣＭを意味する。この方式は、上記オーディオサブシステムにより生成されるサウンドの圧縮／復元に使用され、さらに、大容量記憶装置６２内のサウンドの圧縮／復元にも使用される。様々なＡＤＰＣＭアルゴリズムが存在するが、オーディオサブシステムで生成されるサウンドと、大容量記憶装置６２内のサウンドには、同じアルゴリズムを用いる必要はない。デコーダ８２７は、オーディオサブシステムによって生成されるサウンドデータの実行時ＡＤＰＣＭ復元を行い、大容量記憶アクセス装置１０６は、大容量記憶装置６２からのサウンドデータの実行時ＡＤＰＣＭ復元を行う。８ビットＰＣＭ圧縮／復元方式は、オーディオサブシステムによって生成されるサウンドデータにも使用することができる。このため、デコーダ８２７は、８ビットＰＣＭ圧縮サウンドデータの実行時復元も行う。もちろん、これら圧縮／復元方式は例示目的であり、これらに限定されるものではない。
【００３６】
システムの初期化中、実行時オーディオライブラリがオーディオＤＳＰ１５６にダウンロードされる。このオーディオライブラリは、オーディオＤＳＰ１５６により、メインプロセッサ１１０によって生成されるコマンドリスト内のコマンドに従って、音声を処理してミキシングするのに使用される。コマンドリストは、メインメモリ１１２に格納される。オーディオＤＳＰ１５６は、メインメモリからコマンドを取り出して、自身にダウンロードされた実行時オーディオライブラリに従ってそれらを実行する。図７及び図８に、サウンド再生のデータフロー及び制御フローをそれぞれ示す。図７に示すように、サウンドサンプルは、周辺（Ｉ／Ｏ）コントローラ１６２を介して大容量記憶装置６２からメインメモリ１１２に読み出され、さらにＡＲＡＭ  ＤＭＡ８２５を介してメインメモリ１１２からオーディオメモリ１２６に読み出される。サウンドサンプルは、アクセラレータ８２１を介してＤＳＰコア８１１により読み出され、ＤＳＰコア８１１は、サウンドサンプルを処理／ミキシングする。処理／ミキシングされたサウンドサンプルは、メインメモリ１１２内にバッファされ、オーディオインタフェースＦＩＦＯ８０７に転送されて、オーディオコーデック１２２を介してスピーカ６１Ｌ、６１Ｒに出力される。図８に示すように、ゲームアプリケーションにより、最終的なサウンドの必要性が決まる。ゲームアプリケーションは、オーディオＤＳＰ１５６向けにコマンドリストを生成するオーディオシステム（メインプロセッサ）実行時アプリケーションに対してコールする。コマンドリストの実行時に、オーディオＤＳＰ１５６は、適宜サウンドサンプルを取り出して、必要に応じてそれを処理する。
【００３７】
ミュージック合成でのデータ及び制御フローは、図７に示すサウンドサンプルにおけるデータ及び制御フローと同様である。大容量記憶装置６２からのインスツルメントウェーブテーブルは、メインメモリ１１２を介してオーディオメモリ１２６に記憶される。オーディオシステム（メインプロセッサ）実行時アプリケーションにより生成されたコマンドを取得すると、オーディオＤＳＰ１５６は、必要なインスツルメントサンプルを取り出し、それらを処理及びミキシングして、その結果をメインメモリ１１２に格納する。結果はそこからオーディオインタフェースＦＩＦＯ８０７に転送され、オーディオコーデック１２２を介してスピーカ６１Ｌ、６１Ｒに出力される。オーディオシステム（メインプロセッサ）実行時アプリケーションによって生成されたコマンドは、大容量記憶装置６２からメインメモリ１１２に読み出され、かつ、ゲームのデマンドに従ってオーディオシステム（メインプロセッサ）実行時アプリケーションによって処理及び順番付けられた、ミュージックスコアによって駆動される。
【００３８】
オーディオシステム（メインプロセッサ）実行時アプリケーションは、オーディオトラックの再生及びミキシングを管理して、ソフトウェアストリーミングを提供する。ソフトウェアストリーミングにより、１つ以上のオーディオトラックの同時再生が可能になり、その結果、ある程度の対話が可能になる。例えば、ゲームは、あるトラックから別のトラックにフェードインして、プレイヤのムードに影響を及ぼす。一般に、それぞれ異なるオーディオトラックは、個別のサウンドサンプルとしてオーディオメモリ１２６内にバッファされる。オーディオＤＳＰ１５６は、トラックを取り出して、他の音声に対して行うようにそれらをミキシングする。
【００３９】
オーディオシステムは、サウンドエミッタを三次元空間に配置させる。これは、以下の特徴によって実現される。
・ボリューム及びパニング制御
・ピッチ変調（ドップラー効果）
・初期遅延（左右チャネル間での位相変移）
・ＦＩＲフィルタ（ＨＲＴＦ及び環境効果）
これら特徴により、１対のスピーカと共に、サイコアコースティックな３次元サウンド効果を生成するための有効な手段が提供される。
【００４０】
音声処理パイプラインを、図９に示す。
１．サンプルは、オーディオＤＳＰ１５６によって、オーディオメモリ１２６から読み出される。
２．オーディオメモリ１２６からのＡＤＰＣＭ及び８ビットＰＣＭサンプルは、デコードされて、そのデコードされたサンプルは、第１のサンプルレート変換器に供給される。
３．オーディオメモリ１２６からの１６ビットＰＣＭサンプルは、第１のサンプルレート変換器に直接与えられる。
４．サンプルレート変換器は、入力サンプルのピッチを調整する。
５．ＦＩＲフィルタは、オプションでユーザ指定のフィルタをサンプルに対して行う。
６．ボリュームランプは、ボリュームランプをサンプルに渡って行い、ボリュームエンベロープアーティキュレーションを得る。
７．ミキサは、サンプルを、３２ｋＨｚサンプリングレートで、２４ビット精度でミキシングする。
【００４１】
ステップ１〜７を、音声ごとに繰り返す。音声すべてが処理されて、ミキサバッファに蓄積されると、以下のステップが行われる。
１．ドルビーサラウンド及びメインプロセッサベースの効果（反響、コーラス等）が、ミキシングされた音声に適用される。
２．サンプルは、２４ビットから１６ビット精度に切り捨てられ、データは、オーディオコーデック１２２によって４８ｋＨｚサンプリングレートに変換されて出力される。結果は、メインメモリ１１２に出力される。
【００４２】
図１０は、オーディオメモリコントローラ８２３の詳細なブロック図である。オーディオメモリコントローラ８２３は、以下の機能を実行する。
・リセット後、オーディオメモリ初期タイミングを発生させて、オーディオメモリを安定化させる（オーディオメモリモードの設定を含む）；
・オーディオメモリリフレッシュサイクルを生成する；及び
・ＤＭＡ８２５及びアクセラレータ８２１の読み出し／書き込み要求を受け付け、オーディオメモリ１２６にアクセスタイミングを発生する。
【００４３】
タイミング発生回路９２８は、アクセスタイミングを発生する。例示のシステムでは、オーディオメモリ１２６を構成するのは、メモリ素子２つまでである。１つ目が、内部オーディオメモリ９２６ａであり、その最大サイズは８Ｍバイトである。２つ目が、拡張オーディオメモリ９２６ｂであり、その最大サイズは３２Ｍバイトである。内部オーディオメモリ９２６ａのアドレスは、０から始まり、拡張オーディオメモリ９２６ｂのアドレスは、内部オーディオメモリの終了アドレスにカスケードされる。このため、内部オーディオメモリ９２６ａ及び拡張オーディオメモリ９２６ｂのアドレス空間は連続し、拡張オーディオメモリ９２６ｂの開始アドレスは、内部オーディオメモリ９２６ａのサイズによって左右される。内部オーディオメモリ９２６ａ及び拡張オーディオメモリ９２６ｂのモード設定及びリフレッシュサイクルは、同時にアクティブになる。
【００４４】
リセット後、オーディオメモリコントローラ８２３は、オーディオメモリ１２６（図１０に「ＡＲＡＭ初期化」９３４で示す）を初期化する。初期化中、コントローラ８２３は、オーディオメモリ１２６へのアクセスをマスクする。初期化後、オーディオメモリ１２６は、アクセス自由になる。フラグＡＲＡＭ＿ＮＯＲＭは、初期化が行われたことを示すために設定される。上述したように、初期化には、オーディオメモリモード設定が含まれる。以下の設定は、オーディオメモリモードレジスタに設定されてもよい。
・バースト長（例えば２バイト）、
・アドレス指定モード（例えば連続して）、
・ＣＡＳ待ち時間（２又は３−メインプロセッサ１１０によりプログラムされる）、及び
・書き込みモード（バースト読み出し及びバースト書き込み）
【００４５】
オーディオメモリコントローラ８２３は、内部オーディオメモリ９２６ａ及び拡張オーディオメモリ９２６ｂを、同時に初期化する。メインプロセッサ１１０は、初期化が終了する前にＣＡＳ待ち時間をプログラムする。ＣＡＳ待ち時間がメインプロセッサ１１０によりプログラムされない場合は、リセットデフォルトＣＡＳ＝３を用いてオーディオメモリ１２６にアクセスする。
初期化後、オーディオメモリコントローラ８２３は、内部オーディオメモリ９２６ａ及び拡張オーディオメモリ９２６ｂのサイズを決定する。
チップセレクト信号を除いて、内部オーディオメモリ９２６ａ及び拡張オーディオメモリ９２６ｂは、アドレスバス、データバス及び制御信号を共有する。動作中、調停ユニット９３０は、３つの要求部に対してアクセスタイミングを発生させる。
・ＤＭＡ８２５、
・アクセラレータ８２１、及び
・リフレッシュカウンタ９３２。
これら要求部の間の優先順位は、以下の通りである。
リフレッシュカウンタ９３２＞アクセラレータ８２１＞ＤＭＡ８２５
【００４６】
オートリフレッシュ期間は、プログラム可能であり、オーディオメモリコントローラ８２３は、リフレッシュサイクルを、内部オーディオメモリ９２６ａ及び拡張オーディオメモリ９２６ｂに同時に与える。
ＤＳＰによりプログラムされた以下のビットは、ＤＭＡ８２５により、オーディオメモリ１２６へのアクセスをマスクするのに使用され得る。
【００４７】
ＡＭＤＭ：Ara_M-Dma request Mask
ＤＳＰアドレス：０ｘＦＦＥＦ
【表１】
0004658397.tif 000002
ＡＭＤＭのビット０が設定されると、オーディオメモリ１２６へのアクセスは、アクセラレータ８２１に割り当てられる。ＡＭＤＭのビット０がクリアされると、以下の処理が行われる。
【００４８】
典型的に、ＤＭＡ８２５は、複数の（例えば１６）読み出し／書き込みコマンドを介して、オーディオメモリ１２６にアクセスする。この時、アクセラレータ８２１がオーディオメモリ１２６にアクセスする必要が生じると、オーディオメモリコントローラ８２３は、その両方がオーディオメモリ１２６の同じバンクにアクセスを試みているかどうかを判定する。もしそうであれば、オーディオメモリコントローラ８２３は、ＤＭＡ８２５によるアクセスを終了（プリチャージ）させ、アクセスをアクセラレータ８２１に転送する。アクセラレータ８２１の終了後、オーディオメモリコントローラ８２３は、アクセスをＤＭＡ８２５に転送し戻し、ＤＭＡ８２５は、残りの読み出し／書き込みコマンドを実行（まずアクティブな状態にする）する。
【００４９】
アクセラレータ８２１及びＤＭＡ８２５がそれぞれ異なるバンクにアクセスしている場合、インタリーブバンクアクセス方式を使用して、アクセラレータ８２１とＤＭＡ８２５との間のアクセス転送をより良く実行させる。この方式において、オーディオメモリコントローラ８２３は、ＤＭＡバンクをプリチャージ（終了）せず、待ち状態にさせる。その後、オーディオメモリ１２６へのアクセスは、アクセラレータ８２１に転送される。アクセラレータ８２１によるオーディオメモリ１２６へのアクセスが終了すると、オーディオメモリコントローラ８２３は、ＤＭＡ８２５の残りの読み出し／書き込みコマンドを実行する（最初にアクティブな状態にする必要はない）。
【００５０】
オーディオメモリ１２６のアクセスが５１２バイト境界を横切ると（違う列）、オーディオメモリコントローラ８２３は、現在の列をプリチャージしてアクセスを終了し、次の列をアクティブな状態にしてアクセスを開始する。これにより、データ読み出し／書き込みサイクル数が増加する。上記インタリーブバンク方式は、ＤＭＡアクセスクロス列又はアクセラレータアクセスクロス列には、使用しない方が好ましい。
【００５１】
オーディオメモリＤＭＡ８２５の詳細を、図１１に示す。オーディオメモリＤＭＡ８２５は、３つのレジスタ９００ａ〜９００ｃを備え、それぞれ、メインメモリ開始アドレス、オーディオメモリ開始アドレス及びＤＭＡ転送のブロック長＆方向を定義するのに使用される。メインプロセッサ１１０は、これらレジスタをプログラムする。レジスタは、３２ビット幅であり、ＤＭＡ転送方向は、ブロック長レジスタのハイワードのビット１５によって特定される。各サイドの（すなわち、メインメモリ１１２、オーディオメモリ１２６）の開始アドレスは、３２バイト境界に位置し、ブロック長は、３２バイトの倍数である。ＤＭＡ転送中、これらレジスタは、各メモリコントローラブロックアクセスによって変調される。オーディオメモリＤＭＡに組み込まれるメモリコントローラサイズ（３２バイト）データバッファ９５０は、帯域幅が一定でないメモリをブリッジする。
【００５２】
メインメモリ１１０からオーディオメモリ１２６への動作フローは、以下のステップを含む。
１．ブロック長レジスタ９００ｃのローワードの書き込みは、データ転送の準備ができているＤＭＡ８２５をトリガする。
２．ＤＭＡ８２５は、読み出した要求をメモリコントローラ１５２（図３）に送出し、ＤＭＡデータバッファ９５０に入力される３２バイトのデータを待つ。
３．３２バイトのデータがデータバッファ９５０に入力されると、ＤＭＡ８２５は、調停回路９３０（図１０参照）に書き込み要求を送出して、転送を待つ。
メインメモリアドレスレジスタ９００ａは、アドレスインクリメント回路９６０によって３２だけ増加される。
４．調停回路９３０により、ＤＭＡ８２５のオーディオメモリ１２６へのアクセスが許可されると、書き込みコマンドがオーディオメモリ１２６に送出され、データがバイト単位で移動を開始し、３２バイトの移動が完了するまで（バッファが空になるまで）ＤＭＡデータバッファ９５０からオーディオメモリ１２６に移動する。オーディオメモリアドレスは、オーディオアドレスインクリメント回路９６２によって３２だけ増加され、ブロック長は、ブロック長デクリメント回路９６４によって３２だけ減少される。
５．ステップ２〜４は、ブロック長が０になるまで繰り返される。この時点で、ＤＭＡ８２５は停止して、制御ロジック９５４は、フラグを設定してメインプロセッサ１１０への割り込みを生成する。この割り込みはマスク可能である。
【００５３】
オーディオメモリ１２６からメインメモリ１１０への動作フローは、以下のステップを含む。
１．ブロック長レジスタのローワードの書き込みは、データ転送の準備ができているＤＭＡ８２５をトリガする。
２．ＭＤＡ８２５は、読み出した要求を調停回路９３０（図１０参照）に送出し、３２バイトのデータを待つ。
３．調停回路９３０により、ＤＭＡ８２５のオーディオメモリ１２６へのアクセスが許可されると、読み出しコマンドがオーディオメモリ１２６に送出され、データがバイト単位で移動を開始し、データバッファ内への３２バイトの移動が完了するまで、オーディオメモリ１２６からＤＭＡデータバッファ９５０に移動する。オーディオメモリアドレスレジスタ９００ｂ内のオーディオメモリアドレスは、オーディオアドレスインクリメント回路９６２によって３２だけ増加される。
４．３２バイトのデータがＤＭＡデータバッファ９５０に移動すると、ＤＭＡ８２５は、メモリコントローラ１５２に書き込み要求を送出する。その後、３２バイトのデータは、ＤＭＡデータバッファ９５０からメモリコントローラバスに移動される。その後、メインメモリ１１０のアドレスは、メインメモリアドレスインクリメント回路９６０によって３２だけ増加され、ブロック長は、ブロック長デクリメント回路９６４によって３２だけ減少される。
５．ステップ２〜４は、ブロック長が０になるまで繰り返される。この時点で、ＤＭＡ８２５は停止して、制御ロジック９５４は、フラグを設定してメインプロセッサ１１０への割り込みを生成する。この割り込みはマスク可能である。
【００５４】
調停は、各３２バイトの転送前に行われる。メモリコントローラバスの調停優先順位は、以下の通りである。
ＡＩ  ＤＭＡ８０５＞ＤＳＰ  ＤＭＡ８１９＞ＡＲＡＭ  ＤＭＡ８２５
【００５５】
図１２は、ＤＳＰ  ＤＭＡ８１９の詳細を示すブロック図である。上述したように、ＤＳＰ  ＤＭＡ８１９は、メインメモリ１１２から／へのＤＳＰデータ／命令ＲＡＭ領域への／からのデータ転送、又はＤＳＰデータ／命令ＲＯＭ領域からメインメモリ１１２へのデータ転送に動作する。ＤＳＰ  ＤＭＡ８１９は、３つのレジスタ７９６ａ〜７９６ｃを備え、それぞれ、ブロック長、メインメモリアドレス及びＤＳＰメモリアドレスを定義するのに使用される。２ｘ３２バイトＦＩＦＯ７９２は、データ転送に使用され、６４ビットデータバスにより、ＦＩＦＯ７９２とオーディオメモリ１２６との間のデータ転送が高速化される。メインメモリ開始アドレスは、４バイト境界に位置し、ＤＳＰ開始アドレスは、２ワード（３２ビット）境界に位置する。ブロック長は、４バイトの倍数である。ＤＳＰ  ＤＭＡ８１９の制御レジスタは、ＤＭＡ転送方向を特定する第１のビットと、データメモリ又は命令メモリがＤＭＡ転送に関与しているか否かを特定する第２のビットとを含む。制御レジスタは、制御ロジック７９０を介してＤＳＰ  ＤＭＡの状態を通知するＤＳＰ  ＤＭＡビジービットも含む。ビジービットは、ＤＳＰ  ＤＭＡがイネーブルされると設定され、ブロック長レジスタのブロック長が０に等しくなるとクリアされる。
【００５６】
ＤＳＰ  ＤＭＡ８１９は、ＤＳＰコア８１１によるブロック長レジスタ７９６ａへの書き込みによりイネーブルされる。ＤＳＰ  ＤＭＡ８１９がイネーブルされると、メモリコントローラ１５２がメインメモリへのアクセスを許可するよう要求する。アクセスが許可されると、データ転送が開始される。データ転送が続行するにつれ、アドレス変更回路７９８及び７９９は、メインメモリ１１２のアクセスアドスを増加させ、レジスタ７９６ｂ及び７９６ｃのＤＳＰメモリを増加させる。レジスタ７９６ａ内のブロック長は、ブロックが転送されるにつれて、ブロック長変更回路７９７に従って減少される。転送は、ブロック長レジスタが０になるまで続けられ、ＤＭＡ動作はそこで終了する。データ整合及びＤＳＰメモリ制御は、制御回路７９４によって作用される。
【００５７】
データがメインメモリ１１２からＤＳＰメモリに転送されると、ＦＩＦＯ７９２がフルであった場合、ＤＳＰ  ＤＭＡ８１９は、ＦＩＦＯがフルでなくなるのを待って、再びメインメモリ１１２から補充を行う。ＦＩＦＯ７９２が空でなければ、ＦＩＦＯが空になるまで、ＤＭＡは、ＦＩＦＯのデータをＤＳＰメモリに転送する。データがＤＳＰメモリからメインメモリ１１２に転送されると、ＦＩＦＯ７９２が空であった場合、ＤＳＰ  ＤＭＡ８１９は、ＦＩＦＯが空でない状態になるまで待って、その後ＦＩＦＯのデータをメインメモリ１１２に転送する。ＦＩＦＯがフルでない場合、ＤＭＡは、ＦＩＦＯがフルになるまで、ＤＳＰメモリからＦＩＦＯへの補充を行う。
ＤＳＰ  ＤＭＡ相対レジスタの例を、以下に示す。
【００５８】
ＤＳＭＡＨ：DSp dma Main memory Address High
ＤＳＰアドレス：０ｘＦＦＣＥ
【表２】
0004658397.tif 000003
【００５９】
ＤＳＭＡＬ：DSp dma Main memory Address Low
ＤＳＰアドレス：０ｘＦＦＣＦ
【表３】
0004658397.tif 000004
【００６０】
ＤＳＰＡ：DSp dma dsP memory Address High
ＤＳＰアドレス：０ｘＦＦＣＤ
【表４】
0004658397.tif 000005
【００６１】
ＤＳＢＬ：DSp dma Block Length
ＤＳＰアドレス：０ｘＦＦＣＢ
【表５】
0004658397.tif 000006
【００６２】
ＤＳＣＲ：DSp dma Control Register
ＤＳＰアドレス：０ｘＦＦＣ９
【表６】
0004658397.tif 000007
【００６３】
例示のシステムでは、命令ＲＡＭは、２５６ｘ６４ビット同期一方向デュアルポートＳＲＡＭの４コピーから成り、命令ＲＯＭは、２０４８ｘ１６ビット同期単一ポートＲＯＭの２コピーから成る。命令ＲＡＭ及び命令ＲＯＭは、互いに独立しているため、命令ＲＡＭに対して読み出し／書き込みＤＭＡ動作が行われている間は、ＤＳＰコア８１１は、命令ＲＯＭにアクセスできる。加えて、ＤＳＰＤＭＡ８１９が命令ＲＡＭに書き込みを行っている間は、ＤＳＰコア８１１は、命令ＲＡＭを読み出すことができる。ハードウェアの競合を避けるには、同時に読み出し／書き込みを行う際の書き込み及び読み出しアドレスは、それぞれ異なっていなければならない。
【００６４】
データＲＡＭは、４ページで編成され、各ページは、サイズ１ｋｗｏｒｄである。データＲＯＭは、１ページで構成され、サイズは、２ｋｗｏｒｄである。データＲＡＭの１ページは、２５６ｘ１６ビット同期一方向デュアルポートＳＲＡＭの４コピーから成り、データＲＯＭのページは、２０４８ｘ１６ビット同期単一ポートＲＯＭの２コピーから成る。各ページは、それぞれ独立しており、ページ毎に３つの要求部に接続するためのデータ、アドレスバス及び読み出し／書き込み制御信号を有する。ＤＳＰバス１及び２用のデータ入力／出力ポートは、１６ビット幅であり、ＤＳＰ  ＤＭＡ８１９用のデータ入力／出力ポートは、６４ビットである。この配置では、３つの要求部に対して３ページまで同時にアクティブな状態になることが可能である。
【００６５】
本例示システムでは、ＳＲＡＭページのそれぞれは、読み出し１回、又は書き込み１回、又は読み出し及び書き込みそれぞれ１回でアクセス可能であるが、読み出し２回、又は書き込み２回ではアクセス不可能である。読み出しは、ＤＳＰバス１又は２、又はＤＳＰ  ＤＭＡの読み出しであり、書き込みは、ＤＳＰバス１又は２、又はＤＳＰ  ＤＭＡの書き込みである。ＲＯＭページは、読み出し１回だけでアクセス可能であり、その読み出しは、ＤＳＰバス１又は２の読み出しである。ＤＳＰ  ＤＭＡ８１９は、データＲＯＭの読み出しは行えない。ページがＤＳＰ  ＤＭＡにより読み出されている場合、ＤＳＰコア８１１は、同一ページの書き込みを継続する、又は他のページの読み出し／書き込みを行うことができる。ページがＤＳＰ  ＤＭＡ８１９によって書き込まれている場合は、ＤＳＰコア８１１は、同一ページの読み出しを継続する、又は他のページの読み出し／書き込みを行うことができる。ハードウェアの競合を避けるには、ＤＳＰの読み出し、ＤＭＡ書き込み、又はＤＳＰ書き込み及びＤＭＡ読み出しは、同じアドレス位置で行ってはならない。ＤＳＰコア８１１は、ＤＭＡが読み出し中のページを読み出すことは許可されておらず、ＤＳＰは、ＤＭＡが書き込み中のページに書き込むことは許可されていない。
【００６６】
図１３は、アクセラレータ８２１のブロック図である。上述のように、アクセラレータ８２１は、ＤＳＰコア８１１の代わりに、オーディオメモリ１２６からの読み出し及び書き込みに使用される。アクセラレータ８２１は、自動的にアドレスを増加させる、又は次のアクセス用にラウンドアップアドレスを生成する（循環アドレス指定）、以下のアドレス生成回路９０２を備える。アクセラレータ８２１は、読み出し動作中はプリフェッチバッファとして機能し、書き込み動作中は書き込みバッファとして機能する、３つのデータライン９０４ａ〜９０４ｃを含む。後述するように、データライン９０４ａ〜９０４ｃは、ＤＳＰコア８１１がオーディオメモリ１２６にアクセスする場合、オーディオメモリ１２６のアクセス待ち時間を隠す。ＤＳＰコア８１１への割り込みは、開始アドレスのデータがＤＳＰにより読み出しされると、又は終了アドレスのデータがＤＳＰによりデータラインに書き込まれると、生成される。
【００６７】
３つのパラメータレジスタ（現在のアドレス、開始アドレス、終了アドレス）９０６ａ〜９０６ｃは、オーディオメモリ１２６のメモリ空間における循環バッファを定義するのに使用される。各パラメータレジスタは、２７ビット幅であり、オーディオＤＳＰによって読み出し／書き込み可能である。以下のアドレス生成回路９０２は、次のアドレスを得るために、現在のアドレスに「１」を加算する。現在のアドレスが終了アドレスに等しい場合、次のアドレスが開始アドレスになる。パラメタレジスタ９０６ａ〜９０６ｃは、オーディオメモリ１２６からの読み出し及びへの書き込みに使用される。レジスタ内のアドレスとデータとの関係は、以下の通りである。
【００６８】
ＡＣＣＡＨ：Accelerator aram Current Address High
ＤＳＰアドレス：０ｘＦＦＤ８
【表７】
0004658397.tif 000008
【００６９】
ＡＣＣＡＬ：Accelerator aram Current Address Low
ＤＳＰアドレス：０ｘＦＦＤ９
【表８】
0004658397.tif 000009
【００７０】
ＡＣＥＡＨ：Accelerator aram Ending Address High
ＤＳＰアドレス：０ｘＦＦＤ６
【表９】
0004658397.tif 000010
【００７１】
ＡＣＥＡＬ：Accelerator aram Ending Address Low
ＤＳＰアドレス：０ｘＦＦＤ７
【表１０】
0004658397.tif 000011
【００７２】
ＡＣＳＡＨ：Accelerator aram Starting Address High
ＤＳＰアドレス：０ｘＦＦＤ４
【表１１】
0004658397.tif 000012
【００７３】
ＡＣＳＡＬ：Accelerator aram Starting Address Low
ＤＳＰアドレス：０ｘＦＦＤ５
【表１２】
0004658397.tif 000013
【００７４】
データライン９０４ａ〜９０４ｃは、それぞれ１６ビット幅である。読み出し動作では、データラインは、オーディオメモリ１２６から事前にデータが読み出され、ＤＳＰコア８１１がデータラインを読み出すとそのデータ送出の用意がされる、プリフェッチデータバッファとして機能する。書き込み動作では、データラインは、オーディオメモリ１２６に書き込まれるＤＳＰコア８１１からのデータに対して一時的なバッファとして機能する。データライン９０４ａ〜９０４ｃは、ＦＩＦＯ方式でフォーマットされ、それらの入力／出力ポートは、ＤＳＰコア８１１によって読み出し／書き込み可能である。データライン内のデータのアドレスは、現在のアドレス及び後続の２つのアドレスに対応する。
【００７５】
本明細書では、３次元空間に配置されるサウンドエミッタをイネーブルして、スピーカ１対と共にサイコアコースティックな３Ｄサウンド効果を生成するための有効な手段を提供する、オーディオサブシステムに関して説明する。このオーディオサブシステムは、ＤＶＤ等の大容量記憶装置から読み出される、例えばサウンドサンプル、インスツルメントウェーブテーブル、オーディオトラック等を記憶するのに使用可能なオーディオメモリを含む。サンプル、ウェーブテーブル、トラック等は、オーディオデジタル信号プロセッサにより順次読み出され処理されて、ゲームオーディオコンテンツが生成される。このコンテンツは、順次読み出された場所からメインメモリに転送されてデコーダに供給され、スピーカに出力される。別個にオーディオメモリを備えることにより、メインシステムメモリへのアクセスを試みる他のリソース（グラフィックスサブシステム等）に対処する必要が無くなり、オーディオ処理回路によるオーディオデータへのアクセスが向上する。
【００７６】
上記のようにオーディオメモリ１２６を備えることにより、データアクセスが必要なリソースに効率的にデータアクセスを提供する、システム性能のさらなる強化にもつながる。例えば、ＤＶＤは相対的に「待ち時間」が長い、すなわち要求に応答して該当データがリターンするのにかかる時間が比較的長い。そのため、ＤＶＤからのアニメーションデータや圧縮グラフィックスデータ等のデータを、そのデータが必要となる時間以前にプリフェッチしておけば、データを必要としている構成要素に速やかに供給されることができるため、有効である。オーディオメモリは、この「プリフェッチされた」ノンオーディオ関連データのためのキャッシュとして使用され得る。その後、例えばレンダリングパイプライン等でノンオーディオ関連データが必要になると、データはＤＭＡ回路８２５を経由して、データが必要な構成要素に対して使用可能になったメインメモリ１１２に転送される。メインメモリに転送されたデータは、適宜復元される。
【００７７】
本例示システムでは、オーディオメモリ１２６は、大容量記憶装置６２に対して直接的なインタフェースを有さない。このため、プリキャッシュ用のノンオーディオ関連データは、周辺コントローラ１６２を介して大容量記憶装置６２からメインメモリ１１２に読み出しされ、その後、ＡＲＡＭ  ＤＭＡ８２５を介してオーディオメモリ１２６に書き込まれる。そして、ノンオーディオ関連データは、ＡＲＡＭ  ＤＭＡ８２５を介して読み出され、必要に応じて、例えばレンダリングパイプライン中のメインメモリ１１２に戻される。もちろん、他の実施形態例においては、オーディオメモリ１２６は、大容量記憶装置６２に対して直接的なインタフェースを備えていてもよく、ノンオーディオ関連データは、メインメモリ１１２を通ることなくオーディオメモリ１２６内で「プリキャッシュ」されてもよい。
【００７８】
実行時オーディオライブラリは、オーディオＤＳＰ１５６のリソース使用量をモニタするリソース管理アルゴリズムを含み、それに従って、音声の割り当てを動的に限定してもよい。これにより、オーディオ出力の破壊を引き起こすオーディオＤＳＰ１５６の過負荷を防ぐ。好ましくは、リソース管理アルゴリズムは、メモリアクセス待ち時間が最悪である場合を想定し、スムーズで連続的なオーディオを確保する。例えば、音声それぞれのミキシング及び処理に必要な条件にも左右されるが、６４音声までサポート可能である。
【００７９】
（その他互換性のあるインプリメンテーション例）
上記システム装置５０は、上述したホームビデオゲームコンソール構成以外でも実現され得る。例えば、システム５０をエミュレート、そうでなければ互換性がある違った構成を有するプラットフォーム上で、システム５０向けに記述されたグラフィックスアプリケーションや他のソフトウェアを実行することができる。システム５０のハードウェア及びソフトウェアリソースの一部又はすべてを、エミュレート、シミュレート及び／又は提供できるプラットフォームであれば、ソフトウェアを首尾良く実行することができる。
【００８０】
例えば、エミュレータは、システム５０のハードウェア及び／又はソフトウェア構成（プラットフォーム）とは異なるハードウェア及び／又はソフトウェア構成（プラットフォーム）を提供し得る。このエミュレータシステムは、アプリケーションソフトウェアが記述されたシステムのハードウェア及び／又はソフトウェア構成要素の一部又はすべてを、エミュレート又はシミュレートするソフトウェア及び／又はハードウェア構成要素を含むこともある。例えば、このエミュレータシステムは、システム５０のハードウェア及び／又はファームウェアをシミュレートするソフトウェアエミュレータプログラムを実行するパーソナルコンピュータのような汎用デジタルコンピュータを備えることもある。上記オーディオシステムのＤＳＰ処理は、パーソナルコンピュータ上でエミュレート可能である。
【００８１】
汎用デジタルコンピュータ（例えば、ＩＢＭやマッキントッシュのパーソナルコンピュータ、及びその互換機）によっては、ＤｉｒｅｃｔＸやその他の標準３ＤグラフィックスコマンドＡＰＩに準拠する３Ｄグラフィックスパイプラインを提供する、３Ｄグラフィックスカードを装備している。あるいは、サウンドコマンドの標準セットに基づく高品質な立体的サウンドを可能にする、立体的サウンドカードも装備していることがある。このような、エミュレータソフトウェアを実行するマルチメディアハードウェア対応パーソナルコンピュータは、システム５０のグラフィックス及びサウンド性能を近似させるのに十分な性能を有し得る。エミュレータソフトウェアは、パーソナルコンピュータのプラットフォーム上のハードウェアリソースを制御して、ゲームプログラマがゲームソフトウェアを記述したホームビデオゲームコンソールプラットフォームの処理、３Ｄグラフィックス、サウンド、周辺、及びその他機能をシミュレートする。
【００８２】
図１４に、ホストプラットフォーム１２０１、エミュレータ構成１３０３及び記憶媒体６２に用意されたゲームソフトウェアの実行可能な２値画像を用いた、包括的なエミュレーション処理の例を示す。ホスト１２０１は、例えば、パーソナルコンピュータ、ビデオゲームコンソール又はその他十分な演算能力を有するプラットフォームのような、汎用又は特殊目的用デジタル演算装置である。エミュレータ１３０３は、ホストプラットフォーム１２０１上で実行され、記憶媒体６２からのコマンド、データ及び情報をホスト１２０１により処理可能な形式にリアルタイムに変換するソフトウェア及び／又はハードウェアである。例えば、エミュレータ１３０３は、システム５０による実行を意図する「ソース」２値画像プログラム命令を記憶媒体６２から取り出し、これらプログラム命令をホスト１２０１が実行又は処理可能な対象形式に変換する。
【００８３】
例えば、ソフトウェアが、ＩＢＭ  Ｐｏｗｅｒ  ＰＣ等の特定のプロセッサを用いて、プラットフォーム上で実行されるよう記述されたものであり、ホスト１２０１がそれとは異なる（例えば、インテルの）プロセッサを使用したパーソナルコンピュータである場合、エミュレータ１３０３は、記憶媒体６２から２値画像のプログラム命令を１つ又はそのシーケンスを取り出して、これらプログラム命令を１つ又はそれ以上の同等なインテルの２値画像プログラム命令に変換する。エミュレータ１３０３は、グラフィックス＆オーディオプロセッサ１１４による処理向けのグラフィックスコマンドとオーディオコマンドも取り出し及び／又は生成し、これらコマンドを、ホスト１２０１上で使用可能なハードウェア及び／又はソフトウェアグラフィックス及びオーディオ処理リソースにより処理され得るフォーマットに変換する。一例として、エミュレータ１３０３は、これらのコマンドを、ホスト１２０１の特定グラフィックス及び／又はオーディオハードウェアで処理され得るコマンドに変換してもよい（例えば、標準ＤｉｒｅｃｔＸ、ＯｐｅｎＧＬ及び／又はサウンドＡＰＩを用いて）。
【００８４】
上記ビデオゲームシステムの特長の一部又はすべてを提供するために使用されるエミュレータ１３０３は、グラフィックスユーザインタフェース（ＧＵＩ）を備えていてもよく、これによりエミュレータを用いて実行されるゲームの様々なオプションやスクリーンモードの選択が簡易化又は自動化される。例えば、このようなエミュレータ１３０３は、本来のソフトウェア用ホストプラットフォームと比べてさらに機能が拡張されていてもよい。
【００８５】
図１５に、エミュレータ１３０３と共に使用するのに適したエミュレーションホストシステム１２０１を示す。システム１２０１は、処理ユニット１２０３及びシステムメモリ１２０５を含む。システムバス１２０７は、システムメモリ１２０５を始めとする様々なシステム構成要素を処理ユニット１２０３に接続する。システムバス１２０７は、メモリバス又はメモリコントローラを含むバス構造のいくつかのタイプのうちの１つであり、様々なバスアーキテクチャのうちの１つを利用した周辺バス及びローカルバスである。システムメモリ１２０７は、読み出し専用メモリ（ＲＯＭ）１２５２、及びランダムアクセスメモリ（ＲＡＭ）１２５４を含む。起動中等、パーソナルコンピュータシステム１２０１の内部要素の間での情報転送に役立つ基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１２５６は、ＲＯＭ１２５２に格納される。システム１２０１は、さらに様々なドライブと、それに関連するコンピュータ読み出し可能媒体を含む。ハードディスクドライブ１２０９は、（典型的に固定の）磁気ハードディスク１２１１からの読み出し／への書き込みを行う。追加（できればオプションで）磁気ディスクドライブ１２１３は、着脱可能な「フロッピー」又はその他の磁気ディスク１２１５からの読み出し／への書き込みを行う。光ディスクドライブ１２１７は、ＣＤ−ＲＯＭやその他の光学媒体等の着脱可能な光ディスク１２１９から読み出しを行い、構成によっては書き込みも行う。ハードディスクドライブ１２０９及び光ディスクドライブ１２１７は、それぞれハードディスクドライブインタフェース１２２１と光ドライブインタフェース１２２５とによって、システムバス１２０７に接続される。そのドライブとそれに関連するコンピュータ読み出し可能媒体とは、コンピュータ読み出し可能命令、データ構造、プログラムモジュール、ゲームプログラム及びその他パーソナルコンピュータシステム１２０１向けのデータを、不揮発的に記憶する。他の構成において、データを格納し、コンピュータによってアクセスされ得るコンピュータ読み出し可能媒体（例えば、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）等）も使用され得る。
【００８６】
エミュレータ１３０３を含む数多くのプログラムモジュールは、ハードディスク１２１１、着脱式磁気ディスク１２１５、光ディスク１２１９、及び／又はシステムメモリ１２０５のＲＯＭ１２５２及び／又はＲＡＭ１２５４上に記憶される。このようなプログラムモジュールは、グラフィックス＆サウンドＡＰＩ、１つ又はそれ以上のアプリケーションプログラム、その他プログラムモジュール、プログラムデータ及びゲームデータを提供するオペレーティングシステムを含んでいてもよい。ユーザは、キーボード１２２７、ポインティング装置１２２９、マイク、ジョイスティック、ゲームコントローラ、衛星放送用アンテナ、スキャナ等の入力装置を通して、パーソナルコンピュータシステム１２０１にコマンドや情報を入力する。例えば、これらの入力装置は、システムバス１２０７に接続されるシリアルポートインタフェース１２３１を介して処理ユニット１２０３に接続され得るが、もちろん他のインタフェース、例えばパラレルポート、ゲームポートファイアワイヤバス又はユニバーサルシリアルバス（ＵＳＢ）によっても接続され得る。モニタ１２３３等の表示装置も、ビデオアダプタ１２３５等のインタフェースを介してシステムバス１２０７に接続される。
【００８７】
システム１２０１は、モデム１１５４やその他のネットワークインタフェース手段も含み、インターネット等のネットワーク１１５２を介して通信を確立する。内部、外部を問わず、モデム１１５４は、シリアルポートインタフェース１２３１を介してシステムバス１２３に接続される。ネットワークインタフェース１１５６も備えられていてもよく、これによりシステム１２０１がローカルエリアネットワーク１１５８を介して、リモート演算装置１１５０（別システム１２０１等）と通信可能になる（この通信は、広域ネットワーク１１５２、又はダイアルアップやその他の通信手段等の通信パスでもかまわない）。システム１２０１は、典型的には、プリンタやその他の標準的な周辺装置等、その他周辺出力装置を含む。
【００８８】
例えば、ビデオアダプタ１２３５は、マイクロソフトのＤｉｒｅｃｔ７．０、又はその他のバージョン等の標準３Ｄグラフィックスアプリケーションプログラマインタフェースに基づいて送出される３Ｄグラフィックスコマンドに応答して、高速３Ｄグラフィックスレンダリングを行う３Ｄグラフィックスパイプラインチップを含んでいてもよい。ステレオスピーカ１２３７のセットは、バス１２０７からのサウンドコマンドに基づいて、高品質な立体的サウンドを生成するためのハードウェア及び組み込みソフトウェアサポートを提供する、従来の「サウンドカード」のようなサウンド生成インタフェースを介して、システムバス１２０７に接続される。これらハードウェア機能により、システム１２０１が、記憶媒体６２に格納されているソフトウェアをプレイするための、十分なグラフィックス及びサウンドスピード性能を提供する。
【００８９】
以上、本発明を、最も実用的で好ましい実施形態であると現時点で判断される内容に関して説明してきたが、本発明は、開示された実施形態にのみ制限されるべきものではなく、反対に記載した請求項の範囲内において、様々に変更、及び同等な内容が適用されるものとする。
【図面の簡単な説明】
【図１】対話式コンピュータグラフィックスシステム例の全体図である。
【図２】図１に示すコンピュータグラフィックスシステム例を示すブロック図である。
【図３】図２に示すグラフィックス＆オーディオプロセッサ例を示すブロック図である。
【図４】図３に示す３Ｄグラフィックスプロセッサ例を示すブロック図である。
【図５】図４のグラフィックス＆オーディオプロセッサのロジカルフロー例を示す図である。
【図６】図３に示す、オーディオＤＳＰ１５６、オーディオメモリインタフェース１５８、及びオーディオインタフェース＆ミキサ１６０のより詳細なブロック図である。
【図７】サウンド再生のための、データフロー及び制御フローをそれぞれ示す。
【図８】サウンド再生のための、データフロー及び制御フローをそれぞれ示す。
【図９】オーディオＤＳＰ１５６の処理ステップを示す。
【図１０】図６に示すメモリコントローラ８２３の詳細なブロック図である
【図１１】図６に示すオーディオメモリＤＭＡ８２５の詳細なブロック図である。
【図１２】図６に示すＤＳＰ  ＤＭＡ８１９の詳細なブロック図である。
【図１３】図６に示すアクセラレータ８２１の詳細なブロック図である。
【図１４】別の互換的な実施例を示す図である。
【図１５】別の互換的な実施例を示す図である。
【図１】
0004658397.tif 000014
【図２】
0004658397.tif 000015
【図３】
0004658397.tif 000016
【図４】
0004658397.tif 000017
【図５】
0004658397.tif 000018
【図６】
0004658397.tif 000019
【図７】
0004658397.tif 000020
【図８】
0004658397.tif 000021
【図９】
0004658397.tif 000022
【図１０】
0004658397.tif 000023
【図１１】
0004658397.tif 000024
【図１２】
0004658397.tif 000025
【図１３】
0004658397.tif 000026
【図１４】
0004658397.tif 000027
【図１５】
0004658397.tif 000028