"メインプロセッサと、前記メインプロセッサと協働してグラフィックディスプレイ上にグラフィックス画像を生成するグラフィックス処理システムと、メモリとを備えるグラフィックスシステムにおいて、前記システムは前記メモリへのアクセスをシークする複数のリソースを有し、メモリコントローラは、複数のバッファメモリであって、前記メモリへのアクセスをシークする前記複数のリソースのうちの1つに動作可能にそれぞれ接続されて、メモリアクセスの要求を示す情報を格納する前記バッファメモリと、前記第1の複数のバッファメモリに接続され、前記複数のリソースのそれぞれからのメモリアクセス要求に対する要求を格納するマルチリソースバッファメモリと、前記第1の複数のバッファメモリからの前記マルチリソースバッファメモリへの情報の転送を制御する制御回路とを備え、前記制御回路は、前記第1の複数のバッファメモリからの前記マルチリソースバッファメモリへの情報の転送を制御するのに動作可能であり、メインメモリへの書き込み動作からメインメモリからの読み出し動作への切り替え頻度を減少することを特徴とする、メモリコントローラ。前記複数のバッファメモリが、メインメモリへの書き込みキューであることを特徴とする、請求項1に記載のメモリコントローラ。前記複数のリソースバッファメモリが、メインメモリへの書き込みキューであることを特徴とする、請求項1に記載のメモリコントローラ。前記複数のバッファメモリが、メインメモリへの書き込みキューであり、前記複数のリソースバッファメモリが、メインメモリへの書き込みキューであり、前記制御回路は、当該複数のバッファメモリからマルチリソースバッファメモリに書き込み要求が接続される割合を制御するのに動作可能であることを特徴とする、請求項1に記載のメモリコントローラ。前記複数のバッファメモリは、メインメモリへの書き込みキューであり、複数のメインメモリへの読み出しキューをさらに含み、各読み出しキューは、前記メインメモリからの情報の読み出しをシークするリソースに動作可能に接続されていることを特徴とする、請求項1に記載のメモリコントローラ。前記制御回路は、メインメモリへのアクセス要求を許可する調停回路を含むことを特徴とする、請求項1に記載のメモリコントローラ。前記調停回路は、当該要求リソースがメインメモリへのアクセスの調停に参加することを可能とされる頻度を制御するのに動作可能であることを特徴とする、請求項6に記載のメモリコントローラ。前記リソースのうち1つに関連するメモリアクセス制御レジスタをさらに含み、前記調停制御回路は、前記メモリアクセス制御レジスタの内容に応答する調停回路を備え、前記リソースのメモリアクセス調停への参加頻度を決定することを特徴とする、請求項1に記載のメモリコントローラ。制御レジスタを1セットさらに備え、前記制御レジスタは、前記メインプロセッサによりプログラム可能であることを特徴とする、請求項1に記載のメモリコントローラ。前記制御回路は、前記リソース間の調停に動作可能でメモリアクセスの要求を許可し、前記制御レジスタは、前記制御回路によりアクセスされてどのリソースがメモリアクセスを許可されるかを決定する複数のメモリ帯域幅制御レジスタを含むことを特徴とする、請求項9に記載のメモリコントローラ。前記メモリ帯域幅制御レジスタは、それぞれメインメモリアクセスをシークするリソースに関連することを特徴とする、請求項10に記載のメモリコントローラ。前記制御レジスタは、メモリアクセスの要求リソースに関連するレジスタを少なくとも1つ含み、そのリソースのメモリ使用とメモリ帯域幅とのうち少なくとも1つを示す前記要求リソース用のデータを格納することを特徴とする、請求項9に記載のメモリコントローラ。前記制御レジスタは、メモリアクセスの要求リソースに関連するレジスタを少なくとも1つ含み、そのリソースにメモリアクセスを許可することによる浪費メモリサイクルを示す前記要求リソース用のデータを格納することを特徴とする、請求項9に記載のメモリコントローラ。前記複数のバッファメモリと前記マルチリソースバッファメモリとは、書き込み要求キューであり、メインメモリに書き込みを行っているリソースは、フラッシュ信号を生成して、そのリソースの書き込み要求キューのフラッシュを開始させることを特徴とする、請求項1に記載のメモリコントローラ。フラッシュ認識ハンドシェイク信号を生成するフラッシュ認識ハンドシェイク信号生成回路をさらに含み、それによりメインメモリに書き込みされたデータが、関連リソースのバッファではなく実際にはメインメモリに格納されていることを競合リソースに示すことを特徴とする、請求項14に記載のメモリコントローラ。メインプロセッサ、メモリ、および前記メモリへのアクセスを前記メインプロセッサと競合する、少なくとも第1および第2のリソースを含む情報処理システムにおいて、メモリコントローラは、メインプロセッサ読み出し要求キューおよびメインプロセッサ書き込み要求キューを含むメインプロセッサ関係インターフェースと、少なくとも第1のリソース読み出し要求キューと第1のリソース書き込み要求キューとのどちらかを含む、第1のリソース関係インターフェースと、少なくとも第2のリソース読み出し要求キューと第2のリソース書き込み要求キューとのどちらか1つを含む、第2のリソース関係インターフェースと、前記メインメモリへの書き込み要求を受信するマルチリソース書き込みキューと、前記メインメモリへのアクセスを許可するメモリアクセス制御回路とを含み、前記メモリアクセス制御回路は、前記読み出しキューのそれぞれから読み出し要求を受信するために接続されており、前記マルチリソース書き込みキューから書き込み要求を受信することを特徴とする、メモリコントローラ。前記制御回路は、前記メインプロセッサ書き込みキューからの情報の転送を制御するよう動作可能であり、これにより、前記マルチリソース書き込みキューに対する前記第1のリソース書き込みキューおよび第2のリソース書き込みキューは、メインメモリへの書き込み動作からメインメモリからの読み出し動作への切り替え頻度を減少させることを特徴とする、請求項16に記載のメモリコントローラ。前記メモリアクセス制御回路は、メモリアクセスを競合するリソース間で調停を行い、かつ要求リソースが調停参加をイネーブルされる頻度を制御する動作が可能であることを特徴とする、請求項16に記載のメモリコントローラ。前記リソースのうち1つと関連するメモリアクセス制御レジスタをさらに含み、前記メモリアクセス制御回路は、前記メモリアクセス制御レジスタの内容に応答する調停回路を含み、前記リソースがメモリアクセス調停への参加を許可される頻度を決定することを特徴とする、請求項16に記載のメモリコントローラ。制御レジスタを1セット備え、前記制御レジスタは、前記メインプロセッサによりプログラム可能であることを特徴とする、請求項16に記載のメモリコントローラ。前記メモリアクセス制御回路は、前記リソース間の調停に動作可能でメモリアクセスの要求を許可し、前記制御レジスタは、前記メモリアクセス制御回路によりアクセスされてどのリソースがメモリアクセスを許可されるかを決定する複数のメモリ帯域幅制御レジスタを含むことを特徴とする、請求項20に記載のメモリコントローラ。前記メモリ帯域幅制御レジスタは、それぞれメインメモリアクセスをシークするリソースに関連することを特徴とする、請求項21に記載のメモリコントローラ。前記制御レジスタは、メモリアクセス要求リソースに関連する性能関係レジスタを少なくとも1つ含み、そのリソースのメモリ使用とメモリ帯域幅との少なくともどちらか1つを示す前記要求リソース用のデータを格納することを特徴とする、請求項20に記載のメモリコントローラ。前記制御レジスタは、メモリアクセス要求リソースに関連する性能関係レジスタを少なくとも1つ含み、そのリソースにメモリアクセスを許可することによる浪費メモリサイクルを示す前記要求リソース用のデータを格納することを特徴とする、請求項20に記載のメモリコントローラ。メインメモリへの書き込みを行っているリソースは、フラッシュ信号を生成して、そのリソースの書き込み要求キューのフラッシュを開始させることを特徴とする、請求項16に記載のメモリコントローラ。フラッシュ認識ハンドシェイク信号を生成するフラッシュ認識ハンドシェイク信号生成回路をさらに含み、それによりメインメモリに書き込みされたデータが、関連リソースのバッファではなく実際にはメインメモリに格納されていることを競合リソースに示すことを特徴とする、請求項25に記載のメモリコントローラ。メインプロセッサ、メモリ、および前記メモリへのアクセスを前記メインプロセッサと競合する少なくとも第1および第2のリソースを含む情報処理システムにおいて、前記メモリへのアクセスを制御する方法であって、第1のリソース要求キューにおける第1のリソースから、メインメモリへのアクセス要求を格納するステップと、第2のリソース要求キューにおける第2のリソースから、メインメモリへのアクセス要求を格納するステップと、メモリアクセス制御回路へのメモリアクセス要求の送出を遅延して、メモリ読み出し状態とメモリ書き込み状態との間の切り替え頻度を減少させるステップと、前記メモリアクセス制御回路により、メモリアクセス要求を許可するステップを含むことを特徴とする方法。前記遅延ステップは、マルチリソース書き込みキューに要求を格納するステップを含むことを特徴とする、請求項27に記載の方法。メインプロセッサ要求キューに、前記メインプロセッサがメインメモリへのアクセス要求を格納するステップをさらに含むことを特徴とする、請求項27に記載の方法。メモリアクセス要求許可ステップは、競合リソース間での調停ステップを含み、要求リソースがメモリアクセス調停への参加を可能とされる頻度制御ステップをさらに含むことを特徴とする、請求項27に記載の方法。当該頻度制御ステップは、リソース関連のメモリアクセス制御レジスタの内容にアクセスするステップを含み、前記リソースがメモリアクセス調停に参加を許可される頻度を決定することを特徴とする、請求項30に記載の方法。前記メモリコントローラにおける制御レジスタが、少なくとも1セット前記メインプロセッサによってプログラムされることにより、メモリアクセスを制御するステップをさらに含むことを特徴とする、請求項27に記載の方法。前記メモリアクセス許可ステップは、前記リソース間を調停してメモリアクセスの要求を許可するステップを含み、さらに、複数のメモリ帯域幅制御レジスタにアクセスして、前記メモリ帯域幅制御レジスタに一部基づいて、どのリソースがメモリアクセスを許可されるかを決定するステップを含むことを特徴とする、請求項27に記載の方法。前記メモリ帯域幅制御レジスタをそれぞれメインメモリアクセスをシークするリソースと関連させるステップをさらに含むことを特徴とする、請求項33に記載の方法。要求リソースに関係し、そのリソースのメモリ使用とメモリ帯域幅との少なくとも1つを示すデータを格納するステップをさらに含むことを特徴とする、請求項27に記載の方法。要求リソース用であり、そのリソースにメモリアクセスを許可することによる浪費メモリサイクルを示すデータを格納するステップをさらに含むことを特徴とする、請求項27に記載の方法。リソースがメインメモリへのデータ書き込みを行い、バッファフラッシュ信号を生成してそのリソースの書き込み要求キューのフラッシュを開始させるステップをさらに含むことを特徴とする、請求項27に記載の方法。フラッシュ認識ハンドシェイク信号を生成し、メインメモリに書き込みされたデータが、関連リソースのバッファではなく実際にはメインメモリに格納されていることを競合リソースにステップをさらに含むことを特徴とする、請求項37に記載のメモリコントローラ。要求許可ステップは、要求された順番でメモリアクセスへの要求を履行するステップを含むことを特徴とする、請求項27に記載の方法。メインプロセッサ、メモリ、および前記メモリへのアクセスを前記メインプロセッサと競合する少なくとも第1および第2のリソースを含む情報処理システムにおいて、前記メインメモリへのアクセスを制御する方法であって、第1のリソース書き込み要求キューにおける第1のリソースから、メインメモリへのアクセス要求を格納するステップと、前記第1のリソースにより、メインメモリへの書き込みを行うステップと、前記第1のリソースにより書き込みキューフラッシュ信号を生成して、前記第1のリソースの書き込み要求キュー内の情報のメインメモリへのコピーを開始するステップと、前記第1のリソースの書き込み要求キューをフラッシュするステップとを含むことを特徴とする方法。フラッシュ認識ハンドシェイク信号を生成し、それによりメインメモリに書き込みされたデータが、関連リソースのバッファではなく実際にはメインメモリに格納されていることを競合リソースに通知するステップをさらに含むことを特徴とする、請求項40に記載の方法。第2のリソース読み出し要求キューにおける第2のリソースからメインメモリへのアクセス要求を格納するステップと、当該読み出し要求に関連する当該メインメモリアドレスと書き込みキューのうち少なくとも1つに格納された当該アドレスとを比較するステップと、読み出し要求に関連する当該メインメモリアドレスと前記少なくとも1つの書き込みキューに格納されている当該アドレスとのいずれかに合致が見られた場合、書き込みキューのうち少なくとも1つをフラッシュするステップとをさらに含むことを特徴とする、請求項40に記載の方法。第2のリソース書き込み要求キューにおける第2のリソースからのメインメモリへの書き込み要求を格納するステップと、メモリ読み出し状態とメモリ書き込み状態との間の切り替え頻度を減少させるために、メモリアクセス制御回路へのメモリアクセス要求の送出を遅延するステップと、前記メモリアクセス制御回路により、メモリアクセス要求を許可するステップとをさらに含むことを特徴とする、請求項40に記載の方法。前記遅延ステップは、マルチリソース書き込みキューに要求を格納するステップを含むことを特徴とする、請求項43に記載の方法。メインプロセッサ要求キューに、前記メインプロセッサがメインメモリへのアクセス要求を格納するステップをさらに含むことを特徴とする、請求項40に記載の方法。競合リソース間でメモリアクセス要求を調停し、要求リソースがメモリアクセス調停への参加を可能にされる頻度を制御するステップをさらに含むことを特徴とする、請求項40に記載の方法。当該頻度制御ステップは、前記リソースがメモリアクセス調停に参加を許可される頻度を決定するために、リソース関連のメモリアクセス制御レジスタの内容にアクセスするステップを含むことを特徴とする、請求項46に記載の方法。前記メモリコントローラにおける制御レジスタが、少なくとも1セット前記メインプロセッサによってプログラムされることによりメモリアクセスを制御するステップをさらに含むことを特徴とする、請求項40に記載の方法。複数のメモリ帯域幅メモリ制御レジスタにアクセスすることにより前記リソース間のメモリアクセス要求を調停し、前記メモリ帯域幅制御レジスタに一部基づいて、どのリソースがメモリアクセスを許可されるかを決定するステップをさらに含むことを特徴とする、請求項40に記載の方法。前記メモリ帯域幅制御レジスタを、それぞれメインメモリアクセスをシークするリソースと関連させるステップをさらに含むことを特徴とする、請求項49に記載の方法。少なくとも1つを示すデータを格納するステップをさらに含むことを特徴とする、請求項40に記載の方法。要求リソース用であり、そのリソースにメモリアクセスを許可することによる浪費メモリサイクルを示すデータを格納するステップをさらに含むことを特徴とする、請求項40に記載の方法。要求された順番でメモリアクセスへの要求を履行するステップをさらに含むことを特徴とする、請求項40に記載の方法。迫力のある3Dアニメーションおよびシミュレーションを、手ごろな価格のコンピュータグラフィックスシステムを用いて作り出すには、競合リソース間におけるメインメモリへのアクセスを効率的に制御することが重要である。このようなアクセス制御システムには、どれもかなりの制約が加えられる。例えば、CPUで実行される主要なアプリケーションプログラムは、CPUもメインメモリへのアクセスをシークする数多くのリソースのうちのひとつであることから、命令の高速処理を可能にするために、一定のメモリ読み出し待ち時間でメモリアクセスが許可されなければならない。したがって、CPUは、メインメモリへのアクセスに対して高い優先順位を付与される必要がある。迫力のあるグラフィックスを生成するためには、メモリアクセスをシークするグラフィックス関連リソースも同様に、グラフィックス処理を高速に行うためにメインメモリへの高速アクセスが保証されなければならない。本発明は、ここで例示的に開示される、メインメモリへのアクセスをシークする数多くの競合リソース間の調停など、様々なメモリ制御関連機能を果たすメモリコントローラによって具体化される。この固有なメモリコントローラによって行われるタスクは、メモリアクセスを要求しているリソースのメモリ待ち時間および帯域幅の必要条件の対処、ターンアラウンドを減少させるためのバッファ書き込み、メインメモリのリフレッシュ、プログラム可能なレジスタを使用してのメインメモリの保護、およびその他数多くの機能が含まれる。メインメモリから/への読み出し/書き込みをシークするリソースのメモリアクセスを制御する際、メモリコントローラは、メモリ読み出しとメモリ書き込みとの間の切り替えを最小にして、この切り替えにより引き起こされる遊休サイクルによるメモリ帯域幅の浪費を回避し、それによりメモリアクセス時間を向上させる。この例示メモリコントローラは、読み出し/書き込みの切り替えを減少するため、様々な競合リソースからの書き込み要求をキューに入れるグローバル書き込みキューを使用する固有な書き込み式バッファ技法を組み込むことにより、そのような切り替えを最小にする。これにより、メモリ書き込みを競合する複数のリソースは1つのリソースにまとめられ、そこから書き込み要求が送出される。ここに示す実施形態例に従って、メモリコントローラは、リソースのメモリ待ち時間と帯域幅必要条件とを考慮に入れて、メインメモリへのアクセスを有利に最適化する。ここに示すメモリコントローラは、同一アドレス位置が書き込み動作により更新されるより先にメインメモリのアドレス位置からデータを読み出すことにより引き起こされるメモリからの古いデータへのアクセスを回避することにより、メモリコヒーレンシー問題を固有に解決する。コヒーレンシー問題は、読み出しおよび書き込み機能を共に有する単一リソースと、異なるリソースとの両方によって対処される。実施形態例では、このようなコヒーレンシー問題をリソース関連バッファを効率的にフラッシュすることで対処している。例えば、メインメモリへの書き込みを行っているリソースは、フラッシュ信号をメモリコントローラに送出し、そのリソースの書き込み式バッファがフラッシュの必要があることを知らせる。実施例に従って、メモリコントローラはフラッシュ認識ハンドシェイク信号を生成して、競合リソースに対してメインメモリに書き込みされたデータは、関連リソースバッファではなく、実際はメインメモリに格納されていることを伝える。図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はさらに、その他のアプリケーションに入力を与える例えば、メニューの選択、ポインタ/カーソルの制御。コントローラ52aおよび52bは、さまざまな形をとることができる。本例においては、図示されるコントローラ52はそれぞれ、ジョイスティック、プッシュボタン、および/または方向スイッチなどの操縦部60aまたは60bを備える。コントローラ52は、電磁無線、赤外線など波を介して、ケーブル、またはワイヤレスでメインユニット54に接続されてもよい。ゲームなどのアプリケーションをプレイする場合、ユーザはビデオゲームなど、自身がプレイしたいアプリケーションを記憶している記憶媒体62を適宜選択し、その記憶媒体をメインユニット54のスロット64に挿入する。記憶媒体62は、例えば、特別にコード化および/または暗号化された光および/または磁気ディスクであってもよい。ユーザは、電源スイッチ66を操作してメインユニット54をオンにし、記憶媒体62に記憶されているソフトウェアに基づいて、ビデオゲームなどのアプリケーションの実行を開始させる。ユーザは、コントローラ52aおよび52bを操作して、メインユニット54に入力を与えてもよい。例えば、操縦部60aや60bを操作すや60bを動かすと、アニメ化されたキャラクタがそれぞれ異なる方向に移動したり、3次元世界におけるユーザの視点が変化し得る。記憶媒体62内部に格納されているソフトウェアにより、コントローラ52aおよび52b上の各操縦部60aおよび60bが果たす機能、およびその時間はそれぞれ異なる。システム全体の電子部品例図2は、システム50の構成要素例を示すブロック図である。主な構成要素としては、メインプロセッサCPU110メインメモリ112、およびグラフィックス音声プロセッサ114が含まれる。本例において、メインプロセッサ110例えば、機能拡張型IBMPOWERPC750は、グラフィックス音声プロセッサ114を介して、手持ちコントローラ52および/またはその他の入力装置から入力を受け取る。メインプロセッサ110は、ユーザ入力に対話的に応答し、光ディスクドライブなどの大容量記憶アクセス装置106を介して、外部記憶媒体62によって提供されるビデオゲーム、またはその他のプログラムを実行する。例えば、ビデオゲームプレイの状況において、メインプロセッサ110は、様々な対話式制御機能に加え、衝突検出や動画処理を行うことができる。本例では、メインプロセッサ110は、3Dグラフィックスコマンドと音声コマンドとを生成し、それらをグラフィックス音声プロセッサ114に送出する。グラフィックス音声プロセッサ114は、これらコマンドを処理し、表示器59上に動的な視覚画像を生成し、さらにステレオスピーカ61Rおよび61L、またはその他の適切な音声出力装置から、高品質な立体音響を出力する。例示のシステム50は、グラフィックス音声プロセッサ114から画像信号を受信し、その画像信号を、コンピュータのモニタや家庭用カラーテレビセット56などの標準的な表示装置に表示するのに適したアナログおよび/またはデジタル映像信号に変換するビデオ符号化器120を含む。システム50は、さらに、デジタル化された音声信号を圧縮/伸張し、さらに必要に応じて、デジタル音声信号フォーマットとアナログ音声信号フォーマット間の変換を行う音声コーディックコンプレッサ/デコンプレッサ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は、例えば、単一ASIC特定用途向け集積回路である。本例においては、グラフィックス音声プロセッサ114は、プロセッサインターフェース150メモリインターフェース/コントローラ1523Dグラフィックスプロセッサ154音声デジタル信号プロセッサDSP156音声メモリインターフェース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を備え、メモリ待ち時間を最小にする。さらに、グラフィックス音声プロセッサ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は、1つまたはそれ以上のグラフィックス先入れ先出しFIFOバッファ210にグラッフィクスコマンドを格納して、メインメモリ110内に割り当てる。コマンドプロセッサ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オンチップテクスチャメモリTMEN502を備えていてもかまわないは、テクスチャに関する様々な処理、例えばメインメモリ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および図7は、メモリコントローラ152図3および図4およびそれに接続されて、メインメモリ112へのアクセスを競合する様々なリソースを示すブロック図である。メインメモリ112は、例えば、Mosys社製であって、内部リフレッシュ動作を自動的に行う、1TSRAMなどのSRAMを備える。メモリインターフェースコントローラ152は、メインプロセッサ110、グラフィックス音声プロセッサ114、およびメインメモリ112の間で、データ供給およびインターフェース制御を可能にする。図4において、メモリコントローラ152およびグラフィックスメモリ要求調停130は、それぞれ個別の構成要素として示されているが、以下に説明する実施例においては、グラフィックスメモリ要求調停130は、メモリコントローラ152に含まれる。図6および図7に示すように、メモリコントローラ152は、メインメモリ12へのアクセスをシークする様々な競合リソースに接続される。これら競合リソースには、プロセッサインターフェースPI150メインプロセッサ110に接続される、音声DSPDSP156、入力/出力インターフェースIO802、ビデオインターフェースVI164、キャッシュ/コマンドプロセッサCP200、テクスチャユニットTC500、およびピクセルエンジンPE700が含まれる。本実施形態例において、これらリソースのうち、プロセッサインターフェース150、音声DSP156、およびIOインターフェース802は、メインメモリ112からの情報読み出しおよび情報書き込みの両方に動作可能である。IOインターフェース802は、自身の調停に動作可能であり、モデム、DVDインターフェースなどの様々な入力/出力装置にインターフェースされ、そのメモリ帯域幅の要求基準も比較的低い。本実施形態例において、ビデオインターフェース164、キャッシュ/コマンドプロセッサ200、およびテクスチャユニット500は、メインメモリ112からの情報読み出しだけに動作可能であり、ピクセルエンジン700は、メインメモリ112への情報書き込みだけに動作可能である。メモリコントローラ152は、様々なメモリコントローラタスクを行い、タスクには、1例えば、図6および図7に示す7つのポートの間の、メインメモリ112に対するアクセスの調停、2メモリアクセスを要求しているリソースのメモリ待ち時間、および必要帯域幅を考慮に入れた上での、メモリアクセスの認可、3アクセスターンアランドを減少させるためのバッファ書き込み、4必要に応じてメインメモリ112のリフレッシュ、および5プログラム可能なレジスタを使用しての、メインメモリ112の保護、などが含まれる。図6および図7に示す実施形態例においては、メモリアクセスをシークする7つのポートが図示されている。当業者には自明であるが、どの実施例においても、ポートの数は7以下であっても、以上であってもよい。さらに、図7などさらにその他の実施例における説明も含むに示すバス/信号ライン幅は、例示目的のためだけに過ぎず、本発明の範囲を制限するものではない。メモリコントローラ152は、特定ポートの間で調停を行い、メインメモリ112に要求を送出する。本実施形態例において、メモリコントローラ152、およびその入力および出力のすべては200MHzで動作する。128ビットの200MHzデータパスは、4チャネルメモリアクセスコントロールMACブロックを経由して最高400MHzでクロック制御され、400MHzの外部1TSRAMメモリとの通信を許可する。MACは、各32ビットパスからデータを受信して、適切なクロック速度でデータを同期読み出しする。図7に示すアドレスおよび制御信号は、IOピンに直接接続される。メインメモリ112との通信に使用される特定の信号方式は、本発明には含まれない。本実施形態例におけるメモリコントローラリソース調停の方法発明の名称が共有リソースアクセス方法および装置である、同時係属出願番号60/226、886、代理人名簿番号723-754でさらに説明されてこの出願は、ここに引用例として組み込まれているに従って、アプリケーションプログラマが、例えば3.2ギガバイトのメインメモリ112の帯域幅の割り当てを制御できるようにするため、帯域幅制御は、上記リソースのそれぞれに固有に関連して行われる。例えば、プログラム可能な帯域幅制御レジスタは、それぞれコマンドプロセッサ200、および、テクスチャユニット500に対応づけられる。これらは、メインメモリの帯域幅を、テクスチャユニット500よりコマンドプロセッサ200に対してより多く割り当てるために利用される。この方法によれば、見識のあるユーザであれば、上記の競合インターフェースドライバを個々のアプリケーションのニーズに合わせて調整し、総合的な性能を向上させることも可能である。従って、上記の競合インターフェースそれぞれに対して、レジスタを利用してそのメモリ帯域幅の割り当てを制御し、nクロックサイクルごとにメモリ調停の要求が確実に認可されるようにする。これにより、あるインターフェースが一度に大量のリクエストを生成し、他のインターフェースも同様にリクエストを生成している場合、各インターフェースに対して例えばフィルタを使用して、メインメモリへのアクセス要求をスローダウンさせることができる。または、メインメモリ112が遊休状態にあり、さらにどのユニットもメモリアクセスを主張していない場合、そのようなアクセス要求が認可される。他のインターフェースからの要求が同時に存在する場合、使用するフィルタによって、ある特定のインターフェースに対して要求が認可されるスピードが規定される。メモリコントローラ152は、メインメモリ112への要求に関連する様々なグラフィックスデータを制御し、例えば、3Dグラフィックスプロセッサ154具体的には、コマンドプロセッサ200、テクスチャユニット500、およびピクセルエンジン700、プロセッサインターフェース150を介するメインプロセッサ110、音声DSP156、ディスプレイコントローラ164、および様々なI/Oユニット大容量記憶アクセス装置106のための周辺コントローラ162、などがある。図8に、メインメモリへのアクセスを競合するこれら要求部に関わるいくつかの典型的な動作を示す。図8中の矢印は、以下の動作を示す。1.新たな画像、ゲームセクタまたはレベル、またはその他アプリケーションシーケンスのための大容量記憶アクセス装置62例えばDVDからメインメモリ112へのテクスチャ画像のロード2.新たに画像、ゲームセクタまたはレベル、またはその他アプリケーションシーケンスのための、大容量記憶アクセル装置62からメインメモリへの形状頂点配列のロード3.メインプロセッサ110、またはグラフィックスプロセッサ154によるテクスチャマップの動的レンダリング4.メインプロセッサ110による、頂点配列の動的生成、または変更5.グラフィックスプロセッサ154による消費のために、メインプロセッサ110による光のアニメ化およびマトリックスの変換6.グラフィックスプロセッサ154による消費のために、メインプロセッサ110による表示リストの作成7.メインプロセッサ110による、グラフィックスコマンドストリームの生成8.3Dグラフィックスプロセッサ154によるグラフィックスコマンドストリームの読み出し9.3Dグラフィックスプロセッサ154による表示リストの読み出し10.レンダリングのための、3Dグラフィックスプロセッサ154による頂点アクセス11.レンダリングのための、3Dグラフィックスプロセッサ154によるテクスチャアクセスこの実施例において、グラフィックスプロセッサ114は、以下のタイプのデータに対して、整列要求などのデータメモリ必要条件をいくつか有する。例えば、テクスチャおよびテクスチャ参照用テーブル画像、表示リスト、グラフィックスFIFO、および外部フレームバッファなどに対してである。これらのデータオブジェクトに対して整列が要求されるのは、グラフィックスプロセッサ114が非常に高速であり、かつメインメモリ112からのデータが32バイトのまとまりで転送されるためである。データ整列により、単純かつ高速なハードウエアが可能になる。頂点、マトリックス、および光配列などその他のデータオブジェクトについては、本実施形態例における追加的なハードウェアサポートによって、コアース整列4バイト整列が不要になる。このようなデータオブジェクトが多数存在するため、個々のオブジェクトのメモリ消費は、場合によっては低くなり、よって、整列要求の緩和によりメモリの消費が抑えられる。この実施例において、複数のプロセッサとハードウェアブロックにより、メインメモリが更新され得る。さらに、CPU110、およびグラフィックスプロセッサ114は、様々なデータキャッシュを含む。ハードウェアはメインメモリ内でのデータ、およびその関連キャッシュのコヒーレンシーを保持しないため、様々なコヒーレンシーに関わる問題を引き起こす原因となる。例えば、グラフィックスプロセッサ114用のデータをCPUが変更または生成する場合、CPUが自身の書き込み用バッファを介してキャッシュされたメモリにデータ書き込みを行う場合、およびグラフィックスプロセッサ114向けの新たなデータをDVDからメインメモリにロードする場合などが考えられる。コヒレンシーに関わる問題は、これら後者2つの場合において、データの格納に使用されていたメインメモリがその他のグラフィックスデータに使用された場合に起こり得る。DVDがデータをロードする場合、DVDAPIは、CPUデータキャッシュ内に存在するメインメモリのロードされた部分を自動的に無効にする。この安全策により、プログラマはCPUのデータキャッシュコーヒレンシーを気にすることなく、DVDにロードされたデータを変更することができる。このDVDAIPの特質は、デフォルトでアクティブにされ、プログラマによってイナクティブにされる。DVDによってロードされたグラフィカルデータは、グラフィックスプロセッサ114によるレンダリングのために、既にフォーマットされているテクスチャと頂点とを含んでいてもよい。そのため、頂点キャッシュとテクスチャキャッシュ領域を無効にする必要が生じる。CPU110は、メインメモリへの書き込み手段を2つ備える。書き込み用ギャザリングバッファと、CPUキャッシュ階層とである。書き込み用ギャザリングバッファは、通常、キャッシュに影響を及ぼさずにグラフィクスコマンドをメモリにブラストするのに使用される。その結果、書き込み用ギャザリングバッファを介して送出された情報は、キャッシュコヒーレントではない。書き込み用ギャザリングバッファを用いて、CPUキャッシュ内に存在し得るメモリエリアへの書き込みを回避する場合には、注意が必要である。以下に示すキャッシュフラッシング指示を利用して、CPUキャッシュからデータエリアを強制してもよい。CPUが自身のキャッシュを通してグラフィックスデータを生成または変更する場合、以下のメモリタイプは、古いデータを格納することになりかねない。メインメモリグラフィックスプロセッサ114の頂点キャッシュ、テクスチャキャッシュ領域グラフィックスプロセッサ114に正しいデータを送出するためには、本実施形態例に従って、グラフィックスプロセッサ114の頂点、またはテクスチャキャッシュを無効にすると共に、CPUデータキャッシュをフラッシュする必要がある。典型的に、CPUは、グラフィックスプロセッサ114より1フレーム先んじてデータをアニメ化する。そこで、データのコヒーレンシー保持に効率的な方法としては、CPUによって変更されたグラフィックスデータすべてをメインメモリ内で順にグループ分けして、ブロックデータのキャッシュフラッシュを効率化する各グラフィックスフレームの先頭部分で、全てのテクスチャキャッシュ同様、頂点キャッシュを無効にする、などがある。これらの動作は、メインメモリ112に対する読み出し、書き込みに関係する動作の一部の例示に過ぎない。特に、メモリコントローラ152は、メインメモリの読み出し、書き込み動作に関わるポートの間で調停を行う。図9は、メモリコントローラ152をより詳細に示すブロック図である。図9に示すように、メモリコントローラ152は、図6および図7に示す競合リソースのそれぞれに対応する、それぞれ独立したローカルなインターフェースを含む。コントローラpiインターフェース150Iは、プロセッサインターフェース150とインターフェースされ、コントローラDSPインターフェース156Iは音声DSP156とインターフェースされ、コントローラioインターフェース802Iは入出力インターフェース802とインターフェースされ、コントローラビデオインターフェース164Iはビデオインターフェース164とインターフェースされ、コントローラcpインターフェース200Iはコマンドプロセッサ200とインターフェースされ、コントローラtcインターフェース500Iはテクスチャユニット500とインターフェースされ、さらに、インターフェースpe700Iはピクセルエンジン700とインターフェースされる。メモリコントローラ152は、以下に図17および図18を参照してさらに詳しく説明する、外部メモリコントロール829を介してメインメモリと接続される。図17および図18に示す外部メモリコントロールは、図17および図18に示すように、書き込み読み出し状態間で双方向メモリバスを切り替える、読み出し/書き込み制御信号を生成する。例えばテクスチャ座標インターフェース500Iに注目すると、このインターフェースは、図6および図7に示す読み出し専用テクスチャユニット500に接続される。TCインターフェース500Iメインメモリから読み出されたリソースに接続される各ローカルインターフェースは、読み出し要求と、その関連リソースであるテクスチャユニット500から受信に示すRQ2を含む。メモリコントローラインターフェースpe、dsp、io、およびpiも同様に、図10に示すような、書き込み要求をキューに入れるためのローカル書き込みキューをWQ0-4をそれぞれ含む。図9に戻り、調停コントロール825は、調停技法を実現するための制御論理を含む。調停技法に関しては、以下およびここに引用例として組み込まれている発明の名称が共有リソースアクセス方法および装置である上述の同時係属出願代理人名簿番号723-754でさらに詳しく説明する。調停コントロール825は、例えばテクスチャインターフェース500Iが読み出し要求を受信すると、それに対して注意を喚起される。同様に、インターフェース200I、700I、150I、156I、164I、802I、および829は、メモリアクセス要求競合の調停目的に、調停コントロール825に動作可能に接続される。以下にさらに詳しく説明するが、例えばメモリTCインターフェース500I、およびDSPインターフェース156Iから読み出し要求を受信すると競合リソースは500Iと156Iだけと仮定した場合、調停コントロール825は、最初のメモリサイクルをテクスチャユニットTCに付与し、次のメモリサイクルをDSP156に授与する。これにより、読み出し要求はラウンドロビン方式で認可され得る。調停コントローラ825は、上述の同時係属特許出願で説明され、さらには以下で述べるように、ペンディング要求のすべてを認識した上で認可を行う。図11に示す読み出しデータパスからもわかるように、テクスチャユニットTCの帯域幅要求は高いメインメモリデータパスと同じ幅を有する128ビットGFXデータパス参照。このため、テクスチャユニットは、メモリ帯域幅を無駄にすることなくその要求が認可され得る。図11に示すように、DSPの帯域幅は64ビットであり、メモリサイクルを無駄にしないような方法で、調停コントロール825によって優先度が授与される。調停コントロール825は、例えば、以下に述べる調停技法を実現する状態により順位付けを行う状態装置である。上記同時係属特許出願で詳しく述べているように、調停コントロール825は、帯域幅ダイアルレジスタによって部分制御されるため、例えばテクスチャユニット500からメモリアクセス要求があった場合、その要求は効果的に抑制される。このため、テクスチャデータを大量に含むビデオゲームにおいては、システムの帯域幅は調整されて、その特定ゲームのメモリアクセスのニーズに対して最適化される。より具体的には、上述したように、各読み出しマスタメインメモリ112へのアクセスをシークするリソースは、メインメモリ112からの読み出しに備えて読み出しアドレスをキューに入れるために、読み出しキューRQ1からRQ6のうち対応するものに関連づけられる。メインメモリ112へのアクセスをシークする書き込みマスタは、メインメモリ112への書き込みに備えて書き込みアドレスをキューに入れるために、書き込みキューWQ1からWQ4のうち対応するものに関連づけられる。調停コントロール825は、所定の調停プロセスを利用して、メインメモリへのアクセスを読み出しキューRQ1からRQ6に割り当て、さらに、書き込みキューWQ1からWQ4のうち、どの書き込み要求がグローバル書き込み用バッファWQ0に提供されるかを制御する。少なくとも要求のいくつかがこの調停プロセスに供給される率は、プログラム可能な帯域幅ダイアルレジスタの設定に従って制御可能である。ある特別な動作目的でダイアルレジスタを適切に設定することにより、見識のあるユーザは、要求の流れをこの調停プロセスに合わせることにより、システムの動作性能を向上させることが可能である。グローバル書き込み用バッファWQ0に書き込み要求を集めることにより、読み出しから書き込み、および書き込みから読み出しへの切り替えが減少され、メインメモリタイプが動作によって変更される際に生じるデッドメモリサイクルが最小化できる。書き込み要求はグローバル書き込み用バッファWQ0に供給され、一方読み出し要求は調停プロセスに従って処理される。グローバル書き込み用バッファWQ0があるレベルまで満たされた場合、あるいはメインプロセッサの読み出し要求がグローバル書き込み用バッファのエントリにマッチした場合、メインメモリのデータパスは、読み出しから書き込み状態に切り替えられることが多い。このスイッチオーバーにより、グローバル書き込み用バッファWQ0は、メインメモリ112のある特定アドレスにデータを書き込むためにフラッシュされる。既に述べたように、ダイアルレジスタは対応マスタのためにメモリ帯域幅を制御する。例えば、コマンドプロセッサのダイアルレジスタの内容がメモリサイクルごとに加算される累算器が1.00より少ない場合、この調停方式では、待ち状態のコマンドプロセッサ要求があったとしても、累算器の内容が1.00以上になるように十分なサイクルが経過するまで、または他のマスタからの待ち状態の要求があるまで、別のマスタにメモリアクセスを認可する。メモリコントローラ152は、ダイアルレジスタの設定により、メインメモリ112が遊休状態にならないようにするのが好ましい。ダイアルレジスタは、該当マスタのダイアルレジスタに対応する累算器が1.00に等しくなるまで、そのマスタからの要求をマスキングすることにより、この調停方式に作用する。このように、帯域幅ダイアルレジスタは、主要メモリのホグにより、メモリの使用に影響を及ぼす。読み出しダイアルは、マスタの調停方式における参加頻度と、メモリへのアクセス頻度を制御する。書き込みダイアルはフロー制御目的であり、書き込みをグローバル書き込み用バッファWQ0にスロットリングすることにより、書き込み装置をスローダウンさせることができる。ここで、帯域幅ダイアルの設定により、許可されない未処理読み出し要求がある場合、調停によりメモリを遊休状態にしないことが好ましい。この場合、スロットリングされる要求部の間で、ラウンドロビン方式が用いられる。このシステム例においては、読み出しはすべて単一キャッシュライン32バイトである。そのため、キャッシュラインの読み出しには200MHzで2サイクル要し、新規読み出しは10ナノ秒ごとに行われる。その他要求部の間でのラウンドロビン調停において、メインプロセッサ110からの読み出しが最優先される。メモリ所有権は、読み出し要求部の間で10ナノ秒毎に変わってリフレッシュされるが、書き込みキューは常に全体にわたって書き込みされる。書き込みキューは、あるレベルまで、またはあるレベルを超えて満たされたとき、またはメインプロセッサからの読み出し要求が書き込み用バッファのエントリにマッチしたときに、要求を開始する。図9に示すように、帯域幅ダイアルレジスタ、およびその他以下に特定されるレジスタは、メモリコントローラのプログラム可能なメモリレジスタ823として具現化される。以下で詳しく特定されるこれらレジスタは、メインCPU110によりプログラム可能であり、様々なメモリコントローラ機能を制御する。メモリコントローラ152に含まれるレジスタは、メモリアクセスパフォーマンス関連のレジスタである。例えば、パフォーマンスカウンタレジスタは、特定の競合リソースから受け取った要求の数を特定する。パフォーマンスカウンタは、浪費されたメモリサイクルの状況を把握するのに用いられ、パフォーマンスカウンタレジスタの解析に基づいて、メモリ帯域幅がどの程度有効に割り当てられているかを決定する。パフォーマンスカウンタは、読み出し/書き込み動作間の切り替えで必然的にロスされたサイクルと、遊休タイムとを区別するのに使用されてもよい。上述したように、サイクルは、読み出しから書き込みへの切り替えで浪費される。例えば、2遊休サイクルはこのような切り替えが原因である。パフォーマンスカウンタは、読み出し/書き込み切り替え、およびリフレッシュ動作に必ず使用されるメモリサイクルを、パフォーマンス統計量から減算することにより、アプリケーションプログラムがメモリ帯域幅をどの程度有効に活用しているかを決定するのに使用されてもよい。このパフォーマンスをモニタすれば、アプリケーションプログラマは、メモリのより有効活用が可能なプログラムを有利に設計することができる。図10に戻り、上述の通り、読み出しキューRQ1からRQ6のそれぞれは、図9に示す関連インターフェース内に存在する。これにより、読み出しRQ1は、図10に示す信号線の接続先からもわかるように、CPインターフェース200I内に存在する。同様に、書き込みキュ-WQ1本実施形態例においては8つの要求をキューに入れるはPEインターフェース700Iだけに存在し、ここではローカル書き込みキューバッファと称する。同様に、WQ2からWQ4はDSPIOおよびPIインターフェースにそれぞれ存在し、ローカル書き込みキューバッファである。図10に示すWQ0は、複数リソース、またはグローバル書き込み用バッファであって、図9に示す構成要素wrbuf827に存在する。図9に示す書き込み用バッファ827への入力は、図10に示すWQ0への入力に対応する。仮に、書き込み用バッファ827が複数の書き込み要求を一度に受信した場合、本発明の実施形態例に従って、メモリ書き込みバッファ827は、これら書き込み要求の間で調停を行う。さらに、書き込み用バッファ827で実現される、グローバル書き込み用バッファに関連してダイアルレジスタを利用してもよい。これにより、ダイアルレジスタの使用を通して、PEまたはPIからの書き込み要求は、アプリケーションプログラマによって下位優先要求であると見なされ得る。グローバル書き込み用バッファ827は、書き込み要求を調停するために、調停コントロール825に動作可能に接続される。図9の各読み出しキューからの読み出し要求は、調停コントロール825に直接接続されて、受信読み出し要求の間で調停される。リクエストバスメインメモリ112から/への読み出し/書き込みは、関連アドレスで行われるかどうかを特定するは、メインメモリ112へのアクセスをシークする各リソースに対応する。メモリコントローラ152は、受信メモリアクセス要求をキューに入れて、その要求結果を、要求を出しているリソースに送出する。書き込み要求の場合、フロー制御は、WQ1からWQ4などのローカル書き込み用バッファを部分的に使用することで達成され、ローカル書き込み用バッファがフルもしくはほとんどフルの場合、メインメモリ112への書き込み要求の関連リソースに信号を送信して、そのリソースにデータの送信停止を伝える。メモリコントローラ152は、読み出し/書き込み切り替えを最小にするよう有意に設計される。これは、読み出し/書き込み状態に合わせてバスを配置する必要から、切り替えによりメモリサイクルがロスされるためである。メモリコントローラ152は、wrbuf827内にあるグローバル書き込み用バッファWQ0に必要書き込みを集めることにより、このような読み出し/書き込み切り替えを最小にする。書き込み要求はバッファされる一方、読み出し要求は、それぞれ異なるリソースの調停コントロール825によって処理される。書き込み用バッファWQ0がフルに近い状態の場合、ラウンドロビン方式で読み出し要求を調停する。その後、複数のリソースからの例えばWQ1-WQ4でフルになった、グローバル書き込み用バッファWQ0からの複数の書き込みは、実質的に同時に処理される。グローバル書き込み用バッファWQ0が、例えば75-80フルの状態にあるとき、メモリコントローラ115は書き込み状態に切り替えてメインメモリ112に対して書き込み用バッファWQ0のフラッシングを開始して、特定アドレス位置への書き込みを行う。メモリコントローラ152は、3段階の書き込み調停を行う。第1段階の調停では、メモリからの情報読み出しをシークするリソースを、書き込み用バッファ制御論理方式で調停する。別段階の書き込み調停は、書き込み用バッファがフルでない場合に行われる。第3段階の調停は、コヒーレントな処理が必要な場合に行われ、書き込み用バッファはコヒーレンシー問題を解決するためにフラッシュされる。読み出し要求処理に対して、本実施形態例においては、例えば上記各リソースのダイアルレジスタの内容に鑑みて、リソース要求調停処理に基づいて、リソースに対してラウンドロビン方式で読み出しが行われる。下記テーブルリストは、図10に示す読み出し/書き込みキューそれぞれのサイズ例を示すものである。図11は、メモリアクセスコントローラ804,806,808を経由する、メインメモリ112から特定リソースまでの読み出しデータパスを示す。読み出し要求部6つであるが、装置につながる読み出しデータパスは、128ビットGFXパス、64ビットシステムパス、および64ビットCPUパスの3本のみである。本実施例では、データは同時にすべてのデータパス上を転送されないので、各装置に固有なデータパスは使用しない。また、データ受信に4サイクル要する64ビット装置が用いられているので、本インプリメンテーション例では、単一128ビットデータパスは使用されない。CPUアクセスの待ち時間を減少するために、CPUポートには自身のパスが付与されており、そのため2本の64ビットパス、および1本の128ビットパスが使用されている。これらパスは、以下のように接続されている。GFXパス、128ビット200MHzは、CP200およびTC500に接続。バスの帯域幅BWはメモリBWに等しい。CPUパス、64ビット200MHzは、piだけに接続。このパスの帯域幅はメモリ112の帯域幅の1/2。システムバス、64ビット200MHzは、IO、DSP、およびVIに接続。これら装置はすべて低BWであり、未処理のトランザクションは1つしか送出できない。バスBWはメモリBWの1/2。これらバスの本数およびBWは、メモリ調停に直接的に影響する。例えば、GFXパスはメモリからデータを連続的に要求することができ、一方CPUは1キャッシュラインサイクル100MHzおきにしかデータを要求できない。システムバスに関しても同様である。メインメモリ112から読み出されたデータは、要求リソースに順に送り戻される。従って、第1の要求の後に、第2、その他複数の未処理要求が続く場合、これら要求すべてに対して調停を行ってから、要求がなされた順に処理される。よって、順位が1の要求リソースによる要求データがまずルーティングされて、その後順位が2の要求リソースによる要求データが続く。読み出しは、CPUによって順に処理されるものとする。この設計により、ハードウェア、またはソフトウェアによる再順位付け処理が不要になる。メモリコントローラは、スタティックRAMSRAMタイプのメモリを用いてメインメモリ112を十分に利用するために、アクセス要求に効率的に応答できるよう有利に設計される。上述したように、本実施形態例では、1TSTRAMを使用しているので、高密度DRAMのコンテキストにおいて、ほぼ静的なRAMタイプのアクセスが可能である。ほぼSRAMのようなアクセスの使用により、例えば、メインメモリ112へのデータ書き込みは順に行うのが望ましい。というのは、SRAMのある位置への書き込みは、そのデータがSRAMのどこに格納されるかに関わらず、他の位置への書き込みと同じだけの時間がかかるためである。逆に、DRAMを使用する場合、メモリへの書き込みは、スピード設定を最大限に活用するために、メモリリフレッシュスケジュールに従って行われる必要がある。SRAMを使用することで、効率的に要求を順に処理し、さらにはデータのコヒーレンシーも保持することができる。コヒーレンシーの保持好ましい実施形態例においてはプロセッサのコヒーレンシー。他のリソースは、読み出し/書き込みコヒーレンシーの確保にフラッシュを行いがちなためについて、あるリソースが関連書き込み用バッファに書き込みを行い、その後メインメモリ112にデータを書き込む場合、およびそのほぼ直後にメインメモリ112からそのデータの読み出しを行おうとしている場合、シークされる更新後のデータではなく、メインメモリ112からの古いデータを読み込む可能性があるため、コヒーレンシー問題が生じる。メモリコントローラ152は、各読み出し要求に対して、読み出しされるアドレスをチェックして、そのようなアドレスは書き込みバッファには存在しないこと確認することで、コヒーレンシー問題に対処する。アドレスが書き込み用バッファに存在する場合、書き込み用バッファはフラッシュされる必要がある。すなわち、読み出し動作に先立ち、メインメモリにコピーされる。例えば、コマンドプロセッサCP200のようなリソースは、単方向性リソースであるので、メインメモリ112からの読み出し動作のみを行い、メインメモリ112への書き込み動作は行わない。実施例において、ピクセルエンジンPEはメインメモリ112への書き込みだけを行う。コヒーレンシー問題は、特にCPU110によって処理される必要がある。というのは、CPU110は、メインメモリ112から/への読み出し/書き込みを行うためである。そのため、CPUの読み出しに関して、読み出されるアドレスは、書き込み用バッファのアドレスと比較され、上述したように、アドレスが書き込み用バッファに存在する場合、書き込み用バッファはフラッシュされて、その後読み出し動作が行われる。例えば、あるリソースによる書き込みが、書き込み用バッファ内に存在するアドレス位置0、1、および2に対して行われ、位置0が書き込み用バッファ内にあることをうけて、位置0からの読み出しが行われようとしている場合、システムは、位置0からの読み出しが行われる前に書き込み用バッファの内容をフラッシュする。従って、装置内のコヒーレンシーエラーを防ぐには、リソースが読み出しと書き込みとの両方の機能を有する場合にだけ、そのようなエラーは起こり得る。しかしながら、メモリコントローラ152が、それぞれ異なるリソース間のコヒーレンシーエラーを防ぐことも望ましい。そのため、ピクセルエンジン700がメインメモリ112への情報コピーのコマンドを受け取った場合、ピクセルエンジン700の関連ローカル書き込み用バッファは、コピーされるデータと、メインメモリ112への書き込みが行われるアドレス位置とを含む。例えば、テクスチャユニット500のようなビデオインターフェース164は、ピクセルエンジン700がデータを書き込んでいるのと同じアドレスからデータの読み出しをシークするような場合、例示メモリコントローラ152はこれらの動作を同期させる。よって、本発明の実施形態例に従って、メインメモリ112への書き込みを行っている装置/リソースは、メモリコントローラ152にフラッシュ信号を送出し、メモリコントローラ152に個々のリソースの書き込み用バッファを空にするよう指示する。メモリコントローラ152は、この動作が終了したことを示す信号を生成し、例えば、表示装置164にそのメモリ位置からデータを読み出すことを可能にさせるよう、CPU110に通知する。メモリコントローラ152からの、メインメモリ112に書き込まれたデータが実際に格納されているのはメインメモリ112であって、バッファではないという通知によって、どの競合リソースもこのデータにアクセスするチャンスがあることがわかる。この実施形態例に従って、装置間のコヒーレンシーは、メモリに書き込みを行う装置がメモリコントローラ152からフラッシュ認識ハンドシェイク信号を受信することによって保証される。本発明の実施形態例に従って、書き込みに遅れが生じるため、様々なタイプのコヒーレンシープロトコルが行われる。そのいくつかは上述した。以下にコヒーレンシープロトコルを慨述する。同一ユニットからの、書き込みと読み出しとの間のコヒーレンシーCPUへの/からの書き込みと読み出し間のコヒーレンシーCPUによる書き込みと、CPFIFOにおけるCPによる読み出しとの間のコヒーレンシー2つの異なるユニットへの/からの書き込み/読み出し間のコヒーレンシー同一ユニットからのRWコヒーレンシー実施例において、DSP、IO、およびPIは書き込み、および読み出しを行うことができる。この実施例では、DSPまたはIOにはハードウェアのRWコヒーレンシーはない。自身がメインメモリ112に書き込んだデータを、装置が読み戻す必要がある場合、その装置は明示的に書き込み用バッファをフラッシュする必要がある。そうするためには、フラッシュ書き込み用バッファコマンドを送出し、認識信号を待機する。一方、PI読み出し要求は、書き込み用バッファアドレスと照合される。合致すれば、書き込み用バッファはフラッシュされる。その後、読み出しが続行される。書き込み用バッファは、ユニットとグローバル書き込み用バッファとのために、個々に書き込み用バッファを備える。CPUからのRWコヒーレンシーCPU110の書き込み/読み出しコヒーレンシーに対処するには、ロジック、および書き込み用バッファフラッシュメカニズムのバイパスを利用する。CPUからの読み出し要求に対しては、読み出しアドレスがメインメモリ112に即時送出されるので、1サイクル経過するまでRWコヒーレンシーをチェックするのに十分な時間がない。合致が見られた場合、読み出し要求は既に送出されているので、メモリからの読み出しデータは中途終了され、書き込み用バッファはフラッシュされ、その書き込み用バッファのフラッシュ終了時に書き込みデータおよび読み出しデータがバイパスおよび併合されてCPU110に戻る。読み出し後、同一アドレスに書き込みが行われる場合、これら2つの要求は読み出しキューと書き出しキューとに別々に送り出されるため、メモリコントローラ152はこれら2つの要求の順番を識別することができない。そのため、本来見込まれた順番ではなく、読み出しデータは、最終的に新規書き込みデータになってしまう。読み出しデータが戻ってくる前に書き込みを送出しないよう、CPU110の構造を設定する必要がある。その他のユニット間のRWコヒーレンシーこの実施例では、メモリへの書き込みを行えるのは、DSP、IO、PE、およびPIの4つのユニットである。装置がメモリに書き込みを行うときはいつでも、別の装置にデータの読み出しを信号で伝える前に、自身の書き込み用バッファを明示的にフラッシュする必要がある。そのため、これら4インターフェースのそれぞれは2ワイヤフラッシュ/認識プロトコルを備える。DSP、IO、またはPEは、CPU110に割り込みをかける前に、DMA書き込みの最後にフラッシュを送出する。これにより、読み出しのすぐ後にCPU110が所望のデータにアクセルすることができる。CPU110は、メインメモリ112内にバッファを設定するとき、および別の装置にDMAの読み出し開始させたいとき、明示的フラッシュを行う必要がある。DMAを起動する前に、CPU110は同期指示を出す必要がある。この指示は、同期バスサイクルをもたらし、これによりメモリコントローラ152が書き込み用バッファをフラッシュする。フラッシュの終了後、同期指示は完了して、CPUはDMA読みだし動作を開始することができる。CPFIFOのための、CPU/CP間のRWコヒーレンシーメモリコントローラは、外部メモリに関連するコマンド関連バッファCPFIFOのために、CPU書き込みとCP読みだしとの間のRWコヒーレンシーにも対処する。PIは、その書き込み要求がCPFIFO用であるかどうかを示し、CPFIFO用の書き込みデータが実際にメインメモリにコミットされると、メモリコントローラはその書き込み要求をCPに送出する。図9に戻り、メモリコントローラ152は、メモリレジスタ823を1組備え、それを介して、メモリコントローラは様々なメモリ制御、および調停機能を果たすようにプログラム可能に制御され得る。本発明の実施例において、レジスタは、すべてプロセッサインターフェース150を介して書き込みされる。この例示メモリコントローラレジスタの表が以下に設定されているが、下記レジスタは以下のようなカテゴリにグループ分けされてもよい。メモリ保護/割り込みイネーブルレジスタ4組のレジスタは、読み出しイネーブル、および/または書き込みイネーブルビットを、以下のレジスタ例の表に示すMEM_MARR_CONTROLレジスタに設定することにより、メモリ読み出し、書き込み、または読み出し/書き込み保護に使用することができる。例えば、読み出しアドレスがMEM_MARR0_STARTと、MEM_MARR0_ENDの範囲にあって、MARR0読み出しが不可能にされている場合、MARR0割り込みビットがMEM_INT_STATレジスタに設定され、MEM_INT_ADDRLおよびMEM_INT_ADDRHは、割り込みを引き起こした読み出しアドレスを有することになる。さらに、MARR0割り込みイネーブルビットがMEM_INT_ENBLレジスタに設定された場合、CPUが割り込みされる。ここで、メモリコントローラ152は、割り込みを引き起こすメインメモリ112への読み出し/書き込みトランザクションを終了させることはない。要求アドレスが現在のメモリ構成レンジ外にあって、64メガバイトのアドレススペース内にある場合、アドレス割り込みが生成される。要求アドレスが64メガバイトを超える場合、PIはアドレス割り込みを生成してメモリコントローラには要求を送出しない。帯域幅ダイアルレジスタこの実施例では、CP、TC、PE、CPU読み出し、およびCPU書き込みマスタ用のダイアルレジスタを使用する。これらダイアルレジスタは、関連マスタが使用するメモリ帯域幅を減少させる。例えば、関連累算器に加算されるCPダイアルレジスタの内容が1より少ない場合、待ち状態のCP要求があったとしても、CPダイアルレジスタの累算器が1に等しく加算されるまで、またはどのマスタからも待ち状態要求がなくなるまで、この調停技法例では別のマスタにメモリアクセスを認可する。つまり、メモリコントローラ152は、ダイアルレジスタの設定によって、メモリ112を遊休状態には決してさせない。これらダイアルレジスタは、ダイアルレジスタおよび累算器の内容が1に等しくない場合、マスタからの要求をマスキングすることによって、この調停技法に直接的に影響を及ぼす。より詳しい内容に関しては、以下に説明する技法、さらに、ここに引用例として組み込まれている、発明の名称が共有リソースアクセス方法および装置である、上述の同時係属出願代理人名簿番号723-754を参照されたい。パフォーマンスカウンタレジスタそれぞれ独立して読み出しおよび書き込み要求カウンタを有するCPU以外のマスタは、要求カウンタを有する。これらカウンタは主に、メモリ使用に関する統計量、およびそれぞれ異なるマスタの帯域幅の収集に使用される。さらに2つの追加カウンタがあり、読み出し/書き込みバスターンアラウンドオーバーヘッドにより遊休サイクル数をカウントするためのMEM_FI_REQCOUNTと、リフレッシュサイクル数をカウントするためのMEM_RF_REQCOUNTとがある。これらカウンタはすべて最大値に達するとクランプされる。ターンアラウンドレジスタへのデータデータパスターンアラウンドのための遊休サイクル数を設定するレジスタには3種類ある。1つは異なるメモリバンクからRDへのRD、1つはWR切り替えのためのRD、そして1つはRD切り替えのためのWRである。メモリリフレッシュおよびしきい値レジスタクロック数がリフレッシュカウンタにおけるリフレッシュカウントに達した場合、リフレッシュ要求が生成される。メモリが遊休状態にある場合、メモリにはリフレッシュサイクルが与えられる。しかしながら、メモリが遊休状態にない場合、リフレッシュ要求の合計がメモリリフレッシュしきい値レジスタの設定しきい値に達した場合のみ、与えられる。メモリコントローラ152のレジスタセット例の説明のために、以下の表にメモリコントローラ152レジスタの例を示す。図9のメモリコントローラブロック図に戻り、上述したように、メモリコントローラ152は、上記競合リソース間でのメモリアクセス要求を調停するために動作する調停コントロール825を備える。調停コントロールの詳細に関しては、ここに引用例として組み込まれている、発明の名称が共有リソースアクセス方法および装置である同時係属出願番号60/226、886を参照されたい。読み出しは、すべて単一キャッシュライン32バイトである。キャッシュラインの読み出しには200Mhzで2サイクル要する。そのため、新規読み出しは10ナノ秒ごとに行われる。CPUの読み出しは、その他の要求部の間でラウンドロビン方式で最優先される。メモリの所有権は、読み出し要求部の間で10ナノ秒毎に変わってリフレッシュされるが、書き込みキューは常に全体にわたって書き込みされる。書き込みキューは、あるレベルを超えたとき、またはCPUの読み出し要求が書き込み用バッファのエントリにマッチしたときに、要求を開始する。本実施形態例においては、要求の頻度に関して以下の制限が課せられる。CPUの読み出しは2つ連続して行えない。システムの読み出しは2つ連続して行えない。10ナノ秒のリフレッシュサイクル中、2行リフレッシュされる。5ナノ秒ごとに1行。BWダイアル上述したように、BWダイアルは、上記BWレジスタを介して提供され、メモリの主な使用部によるメモリの使用に影響を及ぼす。以下の装置は、ダイアルを有する。CPU読みだしCP読み出しTC読みだしCPU書き込みPE書き込み読み出しダイアルは、ユニットの調停への参加とメモリアクセスの頻度を制御する。書き込みダイアルはフロー制御用であり、メイン書き込み用バッファに書き込みをスロットリングすることにより書き込み装置をスローダウンさせることができる。この調停技法により、BWダイアルにより許可されていない未処理の読み出し要求がある場合は、メモリ112はアイドル状態にはなれない。この場合、スロットされている要求部の間ではラウンドロビン方式が適用される。読み出しキューの調停CPU読み出しは、以下の場合を除いて最優先される。CPUが先のアクセスに対するマスタである場合CPU読み出しダイアルノブが1.00に等しくなく、そのダイアルノブが1.00に等しい他のマスタによる要求がある場合書き込み用バッファが完全にフルな状態で、書き込みサイクルの最中である場合先のCPU読み出しアドレスが、書き込み用バッファをフラッシュさせるPIローカル書き込み用バッファ、またはグローバル書き込み用バッファにおける有効なCPU書き込みアドレスに合致する場合CPまたはTC読み出しが、その他のシステムマスタDSP、IO、およびVIと同じレベルの優先度を有し、従って、以下の条件以外でシステムマスタをラウンドロビン方式でメモリ調停する。DSP、IO、またはVIが、その時点で再調停できなかった先のアクセスに対するマスタである、CPまたはTCの読み出しダイアルノブは1.00に等しくなく、そのダイアルノブが1.00に等しい他のマスタによる要求がある場合、その優先順位は最低になる。DSPまたはIOまたはVIの読み出しは、その他GFXマスタCPおよびTCと同程度の優先順位を有し、従って、以下の条件以外でGFXマスタをラウンドロビン方式でメモリ調停する。DSPまたはIOまたはVIが、その時点で再調停できなかった先のアクセスに対するマスタである場合書き込み用バッファは、以下の状態以外でCPU、GFX、またはシステムマスタより低い優先度を有する。書きこみ用バッファが完全にフルな状態で、ラウンドロビン方式で調停を行う場合CPU読み出しアドレスは、書き込み用バッファ内の書き込みアドレスと合致する場合、最優先される。優先順位が高いその他のマスタのダイアルノブが1.00より低い場合以下の条件以外で、リフレッシュは最低の優先順位を有する。リフレッシュ要求の合計がしきい値に達すると、その優先順位はCPU読み出しのすぐ下のレベルまであがる。優先順位が高いその他のマスタのダイアルノブが1.00より低い場合書き込みキューの調停CPU、PE、DSP、およびIOは、書き込みキューの4つのマスタである。CPUによる書き込みは最優先され、その他3つのマスタは以下の状態以外の場合にラウンドロビン方式で調停される。CPUの書き込みダイアルノブが1.00に等しくなく、そのダイアルノブが1.00に等しい書き込みマスタが他にある場合これらすべてが読み出しマスタと共にメモリ帯域幅を調停する書き込みキューを構成する。メモリコントローラ152と共に図6に示すインターフェースのそれぞれについてさらに詳しく説明する。図12は、メモリコントローラ152とプロセッサインターフェースPI150との間でやりとりされる通信信号のセットの例を示すブロック図である。図12に示すインターフェースにより、CPU110によるメインメモリ112からの/への読み出し/書き込みが可能になる。このインターフェースは、複数の未処理読み出し要求をサポートする。本実施例において、新規読み出し要求はサイクル毎に送出され、新規書き込み要求は4クロック毎に送出され得るバス上のキャッシュラインを転送するには4サイクル。メモリコントローラ152は、mem_pi_reqfullをアサートしてフロー制御を行う。書きこみデータは認識されない。読み出しデータは、キャッシュが最初のoctバイト転送されることにより認識される。要求アドレスが32Bに整列していない場合、まずクリティカルダブルワードがリターンされる。読み出しデータはすべて順に処理される。書き込みデータは、メモリ効率を向上させるためにバッファされて遅延される。書き込み用バッファがフラッシュされたことを信号で伝えるために、mem_pi_flush_ackがサイクル毎に送出される。インターフェース制御信号は、ワイヤが長いことによるタイミングにかかる問題を回避するため、すべて登録されなければならない。例えば、メモリコントローラ152はまずpi_mem_req信号を登録し、さらに、生成されたmem_pi_ack信号もメモリコントローラ152側とモジュール150側の両方に登録されなければならない。しかしながら、メモリ帯域幅とCPUの性能により、pi_mem_addrは登録されず、メインメモリに即時送出される。これにより、待ち時間が1サイクル短縮される。本実施例において、メモリコントローラ152とプロセッサインターフェース150間でやりとりされる信号を、以下の表に示す。次に音声DSP156/メモリコントローラインターフェース152に注目し、以下の表では、これら2つの構成要素の間でやりとりされる信号の例を、信号に関する記述と共に示す。実施例において、DSP/メモリコントローラ152インターフェースについて、許可される未処理の転送はせいぜい1つである。すなわち、先の転送が完了するまでは次の転送は行われないmem_dspAck信号で。書き込みデータをバッファするのに、メモリコントローラ152側には少なくとも2段階の書き込み用バッファが存在する。つまり、インターフェースはモジュール156からの書き込みデータがバッファ可能であり、バッファがフルの場合には、ack信号の送出を遅延することができる。ワイヤが長いことによるタイミングにかかる問題を回避するために、インターフェース制御信号はすべて登録されなければならない。例えば、メモリコントローラ152はまずdsp_memReq信号を登録し、さらに生成されたmem_dspAck信号も、メモリコントローラ側とモジュール156側とで登録されなければならない。よって、dsp_memReqとmem_dspAckとの間、およびmem_dspAckとその次のdsp_memReqとの間には、1クロックの最低遅延しか生じない。次に入出力インターフェース802/メモリコントローラインターフェース152に注目し、やりとりされる信号の例を以下の表に示す。I/Oインターフェース802/メモリコントローラ152信号について、本実施形態例において許可される未処理の転送はせいぜい1つである。すなわち、先の転送が完了するまで、次の転送は行われないmem_ioAck信号で。書き込みデータをバッファするのに、メモリコントローラ側には少なくとも2段階の書き込み用バッファが存在する。つまり、インターフェースはモジュール802からの書き込みデータがバッファ可能であり、バッファがフルの場合には、認識信号の送出を遅延することができる。図13は、メモリコントローラ152とビデオインターフェース164との間でやりとりされる通信信号のセットの例を示すブロック図である。インターフェース信号は下記表に示す。このインターフェースにより、ビデオインターフェースおよびメインメモリからの読み出しを可能にする。読み出しはすべてキャッシュラインサイズ32バイトであり、64ビットバス上を転送される。このメモリコントローラ152/ビデオインターフェース164は、単一未処理読み出し要求をサポートする。新規読み出し要求は、先の要求に対する認識が受け取られてから送出され得る。インターフェース制御信号はすべて、ワイヤが長いことによるタイミングにかかる問題を回避するために登録されなければならない。例えば、メモリコントローラ152はまずvi_mem_req信号を登録し、生成されたmem_vi_ack信号も、メモリコントローラ側とモジュール164側の両方で登録されなければならない。読み出し、書き込みバス上のデータのバイトの順位は以下の通りである。図14は、メモリコントローラ152とキャッシュ/コマンドプロセッサ200との間でやりとりされる通信信号のセットの例を示すブロック図である。これら構成要素の間でやりとりされる信号の例を下の表に示す。図15は、メモリコントローラ152とテクスチャユニット500との間でやりとりされる通信信号のセットの例を示すブロック図である。これら構成要素の間でやりとりされる信号の例を下の表に示す。図16は、メモリコントローラ152とピクセルエンジンPE700との間でやりとりされる通信信号のセットの例を示すブロック図である。メインメモリには、表示のためにフィルタされたフレームバッファ画像が転送されていた。フレームバッファフォーマットは、テクスチャフォーマットに変換され、メインメモリ112に書き込みされることもある。これら構成要素の間でやりとりされる信号の例を下の表に示す。メモリコントローラ152は、アドレスおよび制御信号を直接外部メモリに送出する。図示されている制御信号は、読み出し状態から書き込み状態に切り替えを行うための制御信号である。これら構成要素の間でやりとりされる信号の例を下の表に示す。これら信号には、読み出し状態から書き込み状態への双方向メモリバスの切り替えに必要な読み出し/書き込み信号が含まれる。その他互換性のあるインプリメンテーション例上記システム装置50は、上述したホームビデオゲームコンソール構成以外でも実現され得る。例えば、システム50をエミュレート、そうでなければ互換性がある違った構成を有するプラットフォーム上で、システム50向けに記述されたグラフィックスアプリケーションやソフトウェアを実行することができる。システム50のハードウェアおよびソフトウェアリソースの一部、またはすべてをエミュレート、シミュレート、および/または提供できるプラットフォームであれば、ソフトウェアを首尾良く実行することができる。例えば、エミュレータは、システム50のハードウェアおよび/またはソフトウェア構成プラットフォームとは異なるハードウェアおよび/またはソフトウェア構成プラットフォームを提供し得る。このエミュレータシステムは、アプリケーションソフトウェアが記述されたシステムのハードウェア、および/またはソフトウェア構成要素の一部、またはすべてをエミュレートまたはシミュレートするソフトウェアおよび/またはハードウェア構成要素を含むこともある。例えば、このエミュレータシステムは、システム50のハードウェアおよび/またはファーウェアをシミュレートするソフトウェアエミュレータプログラムを実行するパーソナルコンピュータのような汎用デジタルコンピュータを備えることもある。汎用デジタルコンピュータ例えば、IBMやマッキントッシュのパーソナルコンピュータ、およびその互換機によっては、DirectXやその他3DグラフィクスコマンドAPIに準拠する3Dグラフィックスパイプラインを提供する、3Dグラフィックスカードを装備している。あるいは、サウンドコマンドの標準セットに基づく高品質な立体音響を可能にする、立体音響サウンドカードも装備していることがある。このような、エミュレータソフトウェアを実行するマルチメディアハードウェア対応パーソナルコンピュータは、システム50のグラフィックスおよびサウンド性能を近似させるのに十分な性能を有し得る。エミュレータソフトウェアは、パーソナルコンピュータのプラットフォーム上のハードウェアリソースを制御して、ゲームプログラマがゲームソフトウェアを記述したホームビデオゲームコンソールプラットフォームの処理、3Dグラフィックス、サウンド、周辺、およびその他機能をシミュレートする。図17に、ホストプラットフォーム1201、エミュレータ構成要素1303、および記憶媒体62に記憶されたゲームソフトウェアの実行可能な2値画像を用いた、包括的なエミュレーション処理の例を示す。ホスト1201は、例えば、パーソナルコンピュータ、ビデオゲームコンソール、またはその他十分な演算能力を有するプラットフォームのような、汎用または特殊目的用デジタル演算装置である。エミュレータ1303は、ホストプラットフォーム1201上で実行され、記憶媒体62からのコマンド、データ、および情報をホスト1201により処理可能な形式にリアルタイムに変換するソフトウェアおよび/またはハードウェアである。例えば、エミュレータ1303は、システム50による実行を意図するソース2値画像プログラム命令を記憶媒体62から取り出し、これらプログラム命令をホスト1201が実行または処理可能な対象形式に変換する。例えば、ソフトウェアが、IBMPowerPCなどの特定のプロセッサを用いて、プラットフォーム上で実行されるよう記述されたものであり、ホスト1201がそれとは異なる例えばインテルのプロセッサを使用したパーソナルコンピュータである場合、エミュレータ1303は記憶媒体1305から2値画像のプログラム命令を1つまたはそのシーケンスを取り出して、これらプログラム命令を1つまたはそれ以上の同等なインテルの2値画像プログラム命令に変換する。エミュレータ1303は、グラフィックス音声プロセッサ114による処理向けのグラフィックスコマンドと音声コマンドも取り出しおよび/または生成し、これらコマンドをホスト1201上で使用可能なハードウェアおよび/またはソフトウェアグラフィックスおよび音声処理リソースにより処理され得るフォーマットに変換する。一例として、エミュレータ1303は、これらのコマンドを、ホスト1201の特定グラフィックスおよび/または音声ハードウェアで処理され得るコマンドに変換してもよい例えば、標準DirectX、OpenGL、および/または音声APIを用いて。上記ビデオゲームシステムの特長の一部またはすべてを提供するために使用されるエミュレータ1303は、グラフィックユーザインターフェースGUIを備えていてもよく、これによりエミュレータを用いて実行されるゲームの様々なオプションやスクリーンモデルの選択が簡易化または自動化される。例えば、このようなエミュレータ1303は、本来のソフトウェア用ホストプラットフォームと比べてさらに機能が拡張されていてもよい。図18に、エミュレータ1303と共に使用するのに適したエミュレーションホストシステム1201を示す。システム1201は、処理ユニット1203およびシステムメモリ1205を含む。システムバス1207は、システムメモリ1205を始めとする様々なシステム構成要素を処理ユニット1203に接続する。システムバス1207は、メモリバスまたはメモリコントローラを含むバス構造のいくつかのタイプのうちの1つであり、様々なバスアーキテクチャのうちの1つを利用した周辺バスおよびローカルバスである。システムメモリ1207は、読み出し専用メモリROM1252、およびランダムアクセスメモリRAM1254を含む。起動中など、パーソナルコンピュータシステム1201の内部要素の間での情報の転送に役立つ基本ルーチンを含む基本入出力システムBIOS1256は、ROM1252に格納される。システム1201は、さらに様々なドライブと、それに関連するコンピュータ読み出し可能な媒体を含む。ハードディスクドライブ1209は典型的に固定の磁気ハードディスク1211から/への読み出し/書き込みを行う。追加できればオプションで磁気ディスクドライブ1213は、着脱可能なフロッピー登録商標またはその他の磁気ディスク1215から/への読み出し/書き込みを行う。光ディスクドライブ1217は、CDROMやその他の光学媒体などの着脱可能な光ディスクドライブ1219から読み出しを行い、構成によっては、書きこみも行う。それぞれハードディスクドライブインターフェース1221と光ドライブインターフェース1225とによってシステムバス1207に接続される。そのドライブとそれに関連するコンピュータ読み出し可能な媒体とは、コンピュータ読み出し可能命令、データ構造、プログラムモジュール、ゲームプログラム、およびその他パーソナルコンピュータシステム1201向けのデータを不揮発的に記憶する。他の構成において、データを格納し、コンピュータによってアクセスされ得るコンピュータ読み出し可能な媒体磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイBernoulliカセット、ランダムアクセスメモリRAMs、読み出し専用メモリROMsなども使用され得る。エミュレータ1303を含む数多くのプログラムモジュールは、ハードディスク1211、着脱式磁気ディスク1215、光ディスク1219、および/またはシステムメモリ1205のROM1252および/またはRAM1254上に記憶される。このようなプログラムモジュールは、グラフィックス音声APIs、ひとつまたはそれ以上のアプリケーションプログラム、その他プログラムモジュール、プログラムデータ、およびゲームデータを提供するオペレーティングシステムを含んでいてもよい。ユーザは、キーボード1227、ポインティング装置1229、マイク、ジョイスティック、ゲームコントローラ、衛星放送用アンテナ、スキャナなどの入力装置を通してパーソナルコンピュータシステム1201にコマンドや情報を入力する。例えばこれらの入力装置は、システムバス1207に接続されるシリアルポートインターフェース1231を介して処理ユニット1203に接続され得るが、もちろん他のインターフェース、例えばパラレルポート、ゲームポートファイアワイヤバス、またはユニバーサルシリアルバスUSBによっても接続され得る。モニタ1233などの表示装置も、ビデオアダプタ1235などのインターフェースを介してシステムバス1207に接続される。システム1201はモデム1154やその他のネットワークインターフェース手段も含み、インターネットなどのネットワーク1152を介して通信を確立する。内部、外部を問わず、モデム1154はシリアルポートインターフェース1231を介してシステムバス123に接続される。ネットワークインターフェース1156も備えられていてもよく、これによりシステム1201がローカルエリアネットワーク1152を介して、リモート演算装置1150別システム1201などと通信可能になるこの通信は、広域ネットワーク1152、またはダイアルアップやその他の通信手段などの通信パスでもかまわない。システム1201は、典型的に、プリンタやその他標準型の周辺装置など、その他周辺出力装置を含む。例えば、標準3Dグラフィックスアプリケーションプログラマインターフェースに基づいて送出された3Dグラフィックスパイプラインチップを含んでいてもよい。ステレオスピーカ1237のセットは、バス1207からのサウンドコマンドに基づいて高品質な立体音響を生成するためのハードウェアおよび組み込みソフトウェアサポートを提供する、従来のサウンドカードのようなサウンド生成インターフェースを介してシステムバス1207に接続される。これらハードウェア機能により、システム1201が、記憶媒体62に格納されているソフトウェアをプレイするための、十分なグラフィックスおよびサウンドスピード性能を提供する。以上、本発明を、最も実用的で好ましい実施形態であると現時点で判断される内容に関して説明してきたが、本発明は、開示された実施形態にのみ制限されるべきものではなく、反対に記載したクレームの範囲内において、様々に変更、および同等な内容が適用されるものとする。"