(57)【特許請求の範囲】
【請求項１】
コンピュータ・システムであって、メモリと；このメモリに結合しておりモード選択信号を受信するアービトレーション・ユニットを有するメモリ・コントローラと；上記アービトレーション・ユニットに結合した第１の装置と；上記アービトレーション・ユニットに結合した第２の装置とから構成され、
前記アービトレーション・ユニットはモード選択信号が第１の状態にある間は第１のアービトレーション・モードに従って動作し、またモード選択信号が第２の状態にある間は第２のアービトレーションに従って動作するものであり、
前記第１の装置が、前記アービトレーション・ユニットが第１のアービトレーション・モードに従って動作する間、前記メモリにアクセスするために、前記第２の装置よりも高い優先度分類を割り当てられ、前記第１の装置および前記第２の装置が、前記アービトレーション・ユニットが第２のアービトレーション・モードに従って動作する間、前記メモリにアクセスするために、等しい優先度分類を割り当てられ、更に前記アービトレーション・ユニットが、前記第２のアービトレーション・モードに従って動作するときはいつでも、前記第１の装置が前記メモリの制御を有する間、所定の時間間隔について前記第２の装置からの前記メモリのアクセスを保留することを特徴とするコンピュータ・システム。
【請求項２】
統合されたメモリ・アーキテクチャ（ＵＭＡ）コンピュータ・システムのメモリにアクセスする方法であって、
アービトレーション後に第１のエージェントへの前記メモリのアクセスを許可するステップと、
第２のエージェントから前記メモリへのアクセス要求を受けるステップと、
第１のエージェントより低い要求度を有する第３のエージェントからの前記メモリへのアクセス要求を受けるステップと、
前記第２のエージェントが、前記第１のエージェントと等しい優先要求度を有するかどうかを決定するステップと、
有していれば、前記第１のエージェントが前記メモリへのアクセスを許可されてから、所定の時間間隔が経過しているかどうか決定するステップと、
有していないならば、前記第２のエージェントから前記メモリのアクセスを保留するステップと、
前記第３のエージェント内のバッファが比較的満ちているかどうかを決定するステップと、
満ちているならば、前記第３のエージェントへの前記メモリのアクセスを許可するステップとを含むことを特徴とする統合されたメモリ・アーキテクチャ（ＵＭＡ）コンピュータ・システムのメモリにアクセスする方法。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、メモリ・システムに関し、より詳細には、本発明は、統合されたメモリ・アーキテクチャ（Unified Memory Architecture:ＵＭＡ）におけるアービトレーション・ポリシー（arbitration policy）に関する。
【０００２】
（発明の背景）
通常のコンピュータ・システムは、要求元エージェントからメモリ・システムへのアクセスを制御する、少なくとも２つのメモリ・サブシステムを用いるように実装されている。２つのサブシステムは、通常はメイン・メモリ・サブシステムと、グラフィックス・ローカル・メモリ・サブシステムである。メイン・メモリ・サブシステムは、システム・メモリ・コントローラを含み、一方グラフィックス・ローカル・メモリ・サブシステムは、グラフィックス・メモリ・コントローラを含む。許容できる呼び出し時間内にシステム・メモリにアクセスするために全ての要求のトラフィック要件をサポートするために、通常は、２つのメモリ・サブシステムが必要である。したがって、２つのメモリ・アーキテクチャは、通常のコンピュータ・システムに有利な性能を提供する。それにもかかわらず、第２のメモリ・サブシステムを設ける追加のコストが、通常のコンピュータ・システムの製造コストを増加させる。
【０００３】
統合されたメモリ・アーキテクチャを含むコンピュータ・システムは、メイン・メモリ・サブシステムと、グラフィックス・ローカル・メモリ・サブシステムとの機能性を結合する。ＵＭＡを備えるコンピュータ・システムは、第２のメモリ・コントローラ（すなわち、グラフィックス・メモリ・コントローラ）が存在しないために、明らかに安価に製造される。しかしながら、システム・メモリへアクセスするためのグラフィック要求が追加されることによって、共通のシステム・メモリ・コントローラがオーバーロードになる。したがって、通常のＵＭＡコンピュータ・システムは、システム・メモリ・コントローラでのトラフィック要求のオーバロードのため、性能の著しい低下を受ける。したがって、システム・メモリに対する要求のバランスをとり、ＵＭＡコンピュータ・システムにおける利用可能な帯域幅を最大化するためのアービトレーション・ポリシーが必要となる。
【０００４】
（発明の概要）
一つの実施態様によれば、メモリと、メモリに結合されたメモリ・コントローラとを含むコンピュータ・システムが開示される。メモリ・コントローラは、第１のアービトレーション・モードまたは第２のアービトレーション・モードに従って動作するようにプログラムされたアービトレーション・ユニットを含む。
【０００５】
本発明は、以下に与えられる詳細な説明、および本発明の様々な実施形態の添付の図面から、より完全に理解されるであろう。しかしながら、図面は、特定の実施形態に本発明を限定するものではなく、単に説明および理解のためのものである。
【０００６】
（発明の詳細な説明）
図１は、コンピュータ・システム１００の一実施形態のブロック図である。コンピュータ・システム１００は、プロセッサ・バス１１０に結合された中央処理装置（プロセッサ）１０５を含む。一実施形態において、プロセッサ１０５は、Ｃａｌｉｆｏｒｎｉａ、Ｓａｎｔａ  ＣｌａｒａのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能な、Ｐｅｎｔｉｕｍ（登録商標）ＩＩプロセッサ・ファミリ、およびｍｏｂｉｌｅ  Ｐｅｎｔｉｕｍ（登録商標）を含むプロセッサ、およびＰｅｎｔｉｕｍ（登録商標）ＩＩプロセッサのＰｅｎｔｉｕｍ（登録商標）ファミリにおけるプロセッサである。代わりに、他のプロセッサを使用することが可能である。プロセッサ１０５は、第１レベル（Ｌ１）キャッシュ・メモリ（図１に示されていない）を含むことが可能である。
【０００７】
一実施形態では、プロセッサ１０５は、また、専用のキャッシュ・バス１０２を介して、第２レベル（Ｌ２）キャッシュ・メモリであるキャッシュ・メモリ１０７に結合される。Ｌ１およびＬ２キャッシュ・メモリを単一の装置内に統合することができる。代わりに、キャッシュ・メモリ１０７を共有されるバスによってプロセッサ１０５に結合してもよい。
【０００８】
チップ・セット１２０がプロセッサ・バス１１０に結合されている。一実施形態では、チップ・セット１２０は、統合されたメモリ・アーキテクチャ（ＵＭＡ）に従って動作する。メイン・メモリ１１３は、チップ・セット１２０を介してプロセッサ・バス１１０に結合される。メイン・メモリ１１３およびキャッシュ・メモリ１０７は、プロセッサ１０５によって実行される命令のシーケンスを記憶する。一実施形態では、メイン・メモリ１１３は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）を含む。しかしながら、メイン・メモリ１１３を他のメモリのタイプを用いて実装することができる。プロセッサ１０５によって実行される命令のシーケンスは、メイン・メモリ１１３、キャッシュ・メモリ１０７、または他の記憶装置から取り出される。マルチ・プロセッサおよび／またはマルチ・メイン・メモリ装置のような、追加の装置をプロセッサ・バス１１０に結合してもよい。コンピュータ・システム１００は、単一のプロセッサとして説明されるが、多数のプロセッサをプロセッサ・バス１１０に結合してもよい。
【０００９】
ビデオ装置１２５がチップ・セット１２０に結合されている。一実施形態では、ビデオ装置は、カソード・レイ・チューブ（ＣＲＴ）または液晶表示装置（ＬＣＤ）などのビデオ・モニタや必要な給電回路を含む。
【００１０】
プロセッサ・バス１１０は、チップ・セット１２０によってシステム・バス１３０に結合される。一実施形態では、システム・バス１３０は、Ｃａｌｉｆｏｒｎｉａ、Ｓａｎｔａ  ＣｌａｒａのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎによって開発された、周辺構成部品相互接続（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ、ＰＣＩ）標準バスである。しかしながら、他のバス標準を使用することも可能である。音響装置１２７などの多数の装置をシステム・バス１３０に結合してもよい。
【００１１】
バス・ブリッジ１４０は二次バス１５０にシステム・バス１３０を結合する。一実施形態では、二次バス１５０は、Ｎｅｗ  Ｙｏｒｋ、ＡｒｍｏｎｋのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓによって開発された、工業標準アーキテクチャ（Industry Standard Architecture：ＩＳＡ）バスである。しかしながら、例えば、Ｃｏｍｐａｑ  Ｃｏｍｐｕｔｅｒなどによって開発された、拡張された工業標準アーキテクチャ（Extended Industry Standard Architecture:ＥＩＳＡ）などの他のバス標準も使用することができる。ハード・ディスク１５３およびディスク・ドライブ１５４などの多数の装置を二次バス１５０に結合することができる。カーソル制御装置（図１に示されていない）などの他の装置を二次バス１５０に結合してもよい。
【００１２】
図２は、チップ・セット１２０の一実施形態のブロック図である。チップ・セット１２０は、プロセッサ・バス１１０に結合されたホスト・インタフェース２１０を含み、プロセッサ１０５から要求を受けてメイン・メモリ１１３にアクセスする。ライト・バッファ２１２がホスト・インタフェース２１０に結合され、ホスト・インタフェース２１０からの要求をバッファして書き込みトランザクションをメイン・メモリ１１３に行わせる。リード・バッファ２１４がホスト・インタフェース２１０に結合され、ホスト・インタフェース２１０からの要求をバッファして読み取りトランザクションをメイン・メモリ１１３に行わせる。
【００１３】
チップ・セット１２０はグラフィックス・コントローラ２２０をも含む。グラフィックス・コントローラ２２０はビデオ・データ要求を操作してメイン・メモリ１１３にアクセスする。リフレッシュ・ユニット２３０がチップ・セット１２０内に含まれている。リフレッシュ・ユニット２３０は、データの完全性を維持するために、メイン・メモリ１１３内の電気的セルを再充電するメモリ・リフレッシュをトリガする。さらに、チップ・セット１２０は、システム・バス１３０に結合されたシステム・バス・インタフェース２４０を含む。システム・バス・インタフェース２４０は、システム・バス１３０に配置される入力／出力（Ｉ／Ｏ）装置（例えば、音響装置１２７）からの要求を受けてメイン・メモリ１１３にアクセスする。
【００１４】
さらに、チップ・セット１２０はメモリ・コントローラ２５０を含む。メモリ・コントローラ２５０は、ライト・バッファ２１２、リード・バッファ２１４、グラフィックス・コントローラ２２０、リフレッシュ・ユニット２３０、およびシステム・バス・インタフェース２４０に結合されている。メモリ・コントローラ２５０は、プロセッサ１０５、およびビデオ装置１２５などのチップ・セット１２０に結合された１つまたは複数の周辺装置から受けたコマンドに基づいて、メモリ・トランザクションのためにメイン・メモリ１１３にアクセスする。メモリ・コントローラ２５０は、メイン・メモリ１１３からデータを読み取り、およびメイン・メモリ１１３にデータを書き込むことができる。
【００１５】
メモリ・コントローラ２５０はアービトレーション・ユニット２５５を含む。アービトレーション・ユニット２５５は、ライト・バッファ２１２、リード・バッファ２１４、リフレッシュ・ユニット２３０などの様々なエージェントによるメイン・メモリ１１３へのアクセスを調整する。図３は、アービトレーション・ユニット２５５の一実施形態のブロック図である。アービトレーション・ユニット２５５は、タイム・スライス・モードにおける動作のためのスライス・タイマ、条件付きのグレース許可モード(conditional grace grant mode)における動作のためのグレース・タイマ３２０およびページ比較ユニット３３０、ウォータマーク・モード（watermark mode）における動作のためのウォータマーク・ユニット３４０、およびアービタ３５０を含む。アービタ３５０は、エージェントからのアクセス要求を受け、アクセス要求の相対優先度を決定し、相対優先度に応じて、一度に１つのエージェントにアクセスを許可する。
【００１６】
上記に暗示したように、アービトレーション・ユニット２５５およびアービタ３５０は、動作の様々なモードに従って実行することができる。一実施形態では、アービタ３５０は、以下に基づきメイン・メモリ１１３へのアクセスを調整することができる。
１．優先度指定モード、または
２．タイム・スライス・モード
さらに、優先度指定モードまたはタイム・スライス・モードで動作しているときに、アービタ３５０は、以下に従って動作することもできる。
３．条件付きのグレース許可モード、および
４．ウォータマーク・モード
【００１７】
さらに、動作の上述のアービトレーション・モードは、システム１００のユーザが、所望の性能に応じてモードを選択できるようにプログラムされてもよい。アービトレーション・ユニット２５５は、動作すべきモードを示すＭＯＤＥ信号を受ける。モード構成は、二次バス１５０に結合された、基本的な入力出力システム（Basic Input Output System:ＢＩＯＳ）のメモリ（図示せず）に記憶されていてもよく、ＰＣＩ構成書き込みなどの構成機構を介して、システム１００が開始またはリセットするときに、チップ・セット１２０へ伝送される。
【００１８】
Ｉ．アービトレーション・モード
Ａ．優先度指定モード
優先度指定モードで動作している間、メイン・メモリ１１３へのアクセス要求は、以下のようなカテゴリーに分けられる。数字１が最も高い優先度を有する。
１．高い優先度
２．ホストおよびシステムＩ／Ｏ
３．通常の優先度のグラフィックス
４．オポテュニスティクス（opportunistics）
【００１９】
高い優先度のカテゴリーは、リアル・タイム要求を満たすために、所定の呼び出し時間以内に、メイン・メモリ１１３によってサービスされなければならない要求を含む。例えば、グラフィック・コントローラ２２０に結合されるビデオ装置１２５は、メイン・メモリ１１３によるサービスが実質的に遅延すると、フリッカーするであろう。また高い優先度のカテゴリーは、システム停止を防止するために、サービスされなければならない要求を含む。例えば、リフレッシュ・ユニット２３０から受けるメモリ・リフレッシュ・サイクルが実行されることなく過度に遅延されると、データ破壊がメイン・メモリ１１３で発生する。
【００２０】
ホストおよびシステムＩ／Ｏカテゴリーは、プロセッサ１０５から受ける要求（例えば、リード・バッファ２１４からの読み取りトランザクション）を含み、システム・バス・インタフェース２４０を介して受けたシステム・バス１３０上のシステムＩ／Ｏ装置から要求する。システム・バス１３０上の装置からの要求は、アイソクロナスおよび非同期として分類される。アイソクロナス要求（例えば、ビデオ・カメラ、ネットワーク・トラフィックなどからの要求）は、呼び出し時間に敏感であり、許容できる時間内にメイン・メモリ１１３によってサービスされなければならない。非同期要求（例えば、ハード・ディスク１５３、ディスク・ドライブ１５４などからの要求）は、そのような時間制限を有さない。
【００２１】
図８は、バス・インタフェース２４０の一実施形態のブロック図である。システム・バス・インタフェースは、システム・バス１３０に結合された、アイソクロナス待ち行列８１０と非同期待ち行列８１５とを含む。アイソクロナス待ち行列８１０は、メイン・メモリ１１３のゲイン・アクセスへのアイソクロナス要求を格納し、一方非同期待ち行列８１５は、非同期要求を格納する。また、システム・バス・インタフェース２４０は、アイソクロナス待ち行列８１０および非同期待ち行列８１５に結合されたプレ・アービタ８２０を含む。プレ・アービタ８２０は、メイン・メモリ１１３へのアクセスのための調停が許可される、システムＩ／Ｏ要求（アイソクロナスまたは非同期）を選択する。アイソクロナス要求は、重大な呼び出し時間の故により高い優先度を与えられる。
【００２２】
通常の優先度のグラフィックス・カテゴリーは、メイン・メモリ１１３へのアクセスのための、グラフィックス・コントローラ２２０からのリアル・タイムではないグラフィックス要求を含む。オポテュニスティクス・カテゴリーは、システム１００の性能を低下させることなく、ある実質的な時間だけ遅れることができる、緩い呼び出し要件を有する要求を含む。例えば、ライト・バッファ２１２からの提示された書き込みトランザクション、およびメイン・メモリ・リフレッシュは、それぞれのバッファ内で待ち行列に入れられ、後で実行されるために遅らされる。
【００２３】
図４ａは、優先度指定モードで動作しているアービタ３５０の状態図である。状態図の多くの移行アークは、不明瞭さを避けるために意図的に省略されていることに留意されたい。アービタ３５０は以下の状態を含む。すなわち、高い優先度（ＨＰ）４１０、ホストおよびシステムＩ／Ｏ（ＨＩＯ）４２０、通常の優先度のグラフィックス（ＮＰＧ）４３０、およびオポテュニスティクス（ＯＰＰ）４４０である。アービタ３５０が作動状態にあり、メイン・メモリ１１３にアクセスするための１つまたは複数の要求を受けると、要求と現在の状態との間の優先度に応じて決定がなされる。例えば、アービタ３５０が、ＨＩＯ４２０で動作し、メイン・メモリ１１３の通常のアクセスを行うために、グラフィックス・コントローラ２２０からの通常の優先度のグラフィックス要求を受けると、アービタ３５０はＨＩＯ４２０のままである。より高い優先度エージェントがその後にアクセスを要求しないなら、メイン・メモリ１１３がＨＩＯ４２０のサービスを完了した後、アービタ３５０はＮＰＧ４３０に移行する。しかしながら、高い優先度要求が受けられると、アービタ３５０は、直ちにＨＩＯ４２０からＨＰ４１０へ移行する。
【００２４】
上述したように、高い優先度要求は、そのリアル・タイム要件のせいに最も高く、オポテュニスティクス要求は、見る性能の影響がわずかで遅れてもいいので最も低い。ホストおよびシステムＩ／Ｏ要求は、プロセッサ１０５がデータの呼び出し時間に敏感であるので、通常の優先度グラフィックス要求よりも高い優先度を指定される。例えば、サービスするプロセッサ１０５における遅延は、著しい性能低下を引き起こす可能性がある。
【００２５】
さらに、典型的にプロセッサ１０５は、適正な方法でメイン・メモリ１１３にアクセスする。例えば、典型的にプロセッサ１０５は、データ要求のバーストと非作動の期間との間を循環する。ほとんどのプロセッサ要求（９５パーセントまたはそれより高い）は、キャッシュ・メモリ１０７でサービスされる。しかし、データをフェッチするために、プロセッサ１０５がメイン・メモリ１１３にアクセスする必要がたまにある。メイン・メモリ１１３におけるプロセッサ・データ要求間の非作動の期間は、通常の優先度のグラフィックス要求のための十分な帯域幅を可能にする。
【００２６】
しかしながら、重いグラフィックス・アプリケーション、または小さいキャッシュ・メモリ１０７サイズの使用などの例では、ホストおよびシステムＩ／Ｏ要求は、通常の優先度のグラフィックス要求のスターベーション（starvation）に陥る可能性がある。そのような場合、ホストおよびシステムＩ／Ｏ要求と、通常の優先度のグラフィックス要求との間に、等しい優先度順位を与える必要があるであろう。さらに、ホストおよびシステムＩ／Ｏ要求による通常の優先度のグラフィックス要求の連続する中断は、メイン・メモリ１１３の動作の効率を低減する結果になる。例えば、通常の優先度要求が中断されるごとにメイン・メモリ１１３のアクセスされたページが閉じられなければならない、なぜなら、ホストおよびシステムＩ／Ｏ要求は同じページにはめったにアクセスしないためである。引き続いて、ホストおよびシステムＩ／Ｏ要求をサービスするために、メモリの新しいページが開かれなければならない。ホストおよびシステムＩ／Ｏ要求が、メイン・メモリ１１３へのアクセスを完了し、通常の優先度のグラフィックス要求が、再びアクセスを許可された後、ホストおよびシステムＩ／Ｏ要求によってアクセスされるページは閉じられ、通常の優先度のグラフィックス要求ページが再び開かれなければならない。タイム・スライス・モードは、ホストおよびシステムＩ／Ｏ要求と、通常の優先度のグラフィックス要求との間に等しい優先度順位を与えることによって、これらの事柄を軽減する。
【００２７】
Ｂ．タイム・スライス・モード
タイム・スライス・モードの動作を示すＭＯＤＥ信号によって構成された情報を受けると、アービタ３５０は、タイム・スライス・アービトレーション技術に従って動作する。タイム・スライス技術を用いて、メイン・メモリ１１３へのアクセス要求は、最も高い優先度を有する数字１（１）を伴って以下のようなカテゴリーに分けられる。
１．高い優先度
２．ホストおよびシステムＩ／Ｏおよび通常の優先度のグラフィックス要求、および
３．オポテュニスティクス
【００２８】
タイム・スライス技術は、通常の優先度のグラフィックス要求スターベーションが、優先度指定スキームとして確実に発生しないようにする。メイン・メモリ１１３のホストおよびシステムＩ／Ｏアクセスは、図３に示されるスライス・タイマ３１５によって調整される。スライス・タイマ３１５は、ホストおよびシステムＩ／Ｏ要求がメイン・メモリ１１３によってサービスされる期間を制限する。スライス・タイマ３１５の終了後、高い優先度の要求がないなら、通常の優先度のグラフィックス要求は、メイン・メモリ１１３へのアクセスを許可される。一旦通常の優先度の要求がアクセスを許可されると、スライス・タイマ３１５の終了するまで、ホストおよびシステムＩ／Ｏ要求は、メイン・メモリ１１３へのアクセスを許可されない。一実施形態によれば、スライス・タイマ３１５の期間は、システム１００のユーザがプログラムする。
【００２９】
図４ｂは、タイム・スライス・モードで動作しているアービタ３５０の状態図である。アービタ３５０は、ほとんどの状況において、同じ優先度モードで動作する。例えば、アービタ３５０が、作動状態であり（例えば、ＯＰＰ４４０）、より高い優先度のエージェントからのメイン・メモリ１１３へのアクセス要求を受けるなら、アービタ３５０は、より低い優先度状態からより高い優先度順位（例えば、ＨＰ４１０）へシフトし、より高い優先度要求にメイン・メモリ１１３の制御を許可する。しかしながら、アービタ３５０が、作動状態であり（例えば、ＮＰＧ４３０）、等しい優先度を有するエージェント（例えば、ホストおよびシステムＩ／Ｏグループ）から要求を受けると、スライス・タイマ３１５が終了するまで、アービタ３５０は、ＮＰＧ要求をサービスする現在の状態のままである。スライス・タイマ３１５が終了した後、より高い優先度エージェントからの要求がないなら、アービタ３５０は、等しい優先度を有する状態にシフトする。
【００３０】
図５は、アービタ３５０がタイム・スライス・モードで動作している間の、アービタ３５０の動作のフロー図である。アービタ３５０が、ＮＰＧ状態かＨＩＯ状態であるとき、異なるエージェントからのメイン・メモリ１１３へのアクセス要求は、プロセス・ブロック５１０で受けられる。プロセス・ブロック５２０で、要求が、アービタ３５０の現在の状態より高い優先度を有するエージェントからのものであるかどうかが決定される。要求が、より高い優先度のエージェントからのものであるなら、アービタ３５０は、プロセス・ブロック５３０で、現在の状態からより高い優先度状態へと移行する。したがって、より高い優先度状態が、メイン・メモリ１１３のアクセスを許可される。その後、制御は、他の要求が受けられるプロセス・ブロック５１０へ戻る。
【００３１】
要求が、より高い優先度のエージェントからのものでないと決定されると、プロセス・ブロック５４０で、受けられた要求が等しい優先度順位を有するエージェントからのものであるかどうかが決定される。要求が等しい優先度を有するエージェントからのものではないなら、要求は、より低い優先度のエージェントからのものであり、プロセス・ブロック５５０で少なくともより高い優先度要求が受けられるまで、アービタ３５０は、現在のエージェントにサービスを続けるために現在の状態のままである。もし、受けられた要求が、等しい優先度を有するエージェントからのものであるなら、プロセス・ブロック５６０で、スライス・タイマ３１５が終了したかどうかが決定される。
【００３２】
スライス・タイマ３１５が終了していないと決定されたなら、アービタ３５０は、現在の制御エージェントにサービスする現在の状態のままである。しかしながら、スライス・タイマ３１５が終了すると、プロセス・ブロック５７０で、アービタ３５０は、等しい優先度を有する状態にシフトする。プロセス・ブロック５８０で、スライス・タイマ３１５は、新しく許可されたエージェントに新しいカウントを提供するためにリセットされる。その後、制御は、異なるエージェントの要求が受けられるプロセス・ブロック５１０に戻る。当業者は、プロセス・ブロック５２０〜５６０が、様々な異なるシーケンスで処理されることができることを、理解するであろう。例えば、プロセス・ブロック５４０で開示されたプロセスは、プロセス・ブロック５２０のプロセスの前に実行されてもよい。代わりに、プロセス・ブロック５２０〜５６０は、並列に実行されることができる。
【００３３】
一実施形態によれば、アービタ３５０が、サービスが終了する前に、ＨＩＯ４２０またはＮＰＧ４３０からより高い優先度のエージェントにシフトするなら、アービタ３５０は、スライス・タイマ３１５が終了していないなら、より高い優先度のエージェントにサービスした後にその前の状態に戻る。その場合、スライス・タイマはその状態に再び入るときにリセットされる。しかしながら、他の実施形態では、等しい状態の１つに再び入るときに、スライス・タイマ３１５は、より高い優先度のエージェントへシフトするときに生じた時間からカウントを続ける。
【００３４】
タイム・スライス技術の追加の利点は、ホストおよびシステムＩ／Ｏ要求をサービスするために、通常の優先度のグラフィックス要求を中断しないことによって、メモリ・アドレス空間の所定の範囲に当然に位置するトランザクションのグルーピングが可能にあることである。例えば、バック・ツー・バック・トランザクション（back to back transaction）が、メイン・メモリ１１３の同じページにアクセスする（すなわち、ページ・ヒット）ときはいつでもアクセス時間が低減され、最小化されることができる。一方、バック・ツー・バック・トランザクションが、メイン・メモリ１１３の異なるページにアクセスする（すなわち、ページ・ミス）するときはいつでも、各トランザクションは、データ・アクセスがなされる前に、異なるページのプレチャージの追加時間を必要とするので、アクセス時間は最大化される。したがって、ホストおよびシステムＩ／Ｏグループからの要求、ならびに通常の優先度のグラフィックス・グループからの要求が、メイン・メモリ１１３の同じページに位置する傾向であるので、タイム・スライス技術は、ページ・ヒットの可能性を増加する。
【００３５】
Ｃ．条件付きのグレース許可
条件付きのグレース許可技術は、メイン・メモリ１１３のページ・ヒットの可能性を最大化する概念に拡張する。このアービトレーション・スキームにおいて、メイン・メモリ１１３を現在制御しているエージェントによる要求と、より高い優先度のエージェントからの要求との両方を受けたときに、アービタ３５０は現在の状態のままである。それにもかかわらず、制御するエージェントに戻るメイン・メモリ１１３のアクセス許可は、ページ・ヒットである以下の要求次第である。図３に示されるページ比較ユニット３３０は、後の要求がページ・ヒットであるかどうかの決定を行う。制御するエージェントによる後の要求がページ・ヒットである限り、エージェントは、メイン・メモリ１１３の制御を維持する。しかしながら、一旦、ページ比較ユニット３３０が、制御するエージェントによる後の要求が結果としてページ・ミスであることを決定すると、アービタ３５０は、より高い優先度状態へシフトする。
【００３６】
さらに、エージェントが、メイン・メモリ１１３の制御を維持できる時間は、グレース・タイマ３２０によって制限される。グレース・タイマ３２０は、グレース条件の下で、エージェントがメイン・メモリ１１３の制御を最初に回復したときに活動化される。しかしながら、グレース・タイマ３２０の終了時に、ページ比較ユニット３３０が、後の要求がページ・ヒットを決定するかどうかに関わらず、エージェントはメイン・メモリ１１３の制御を放棄しなければならない。グレース・タイマ３２０は、メイン・メモリ１１３へアクセス要求する他のエージェントのために、過度の待ち時間が課されることを防止する。ユーザは、グレース・タイマ３２０を最適な値を選択するようにプログラムすることができる。最適な値は、他の要求するエージェントに重大な呼び出し時間を課す時間制限である。さらに、条件許可技術は、タイム・スライス・モード、または優先度指定モードで動作できる。
【００３７】
図６は、本発明の一実施形態による、アービタ３５０の動作のフロー図である。プロセス・ブロック６１０で、高い優先度要求、ならびにメイン・メモリ１１３を現在制御しているエージェントからの要求が受けられる。プロセス・ブロック６２０で、ページ比較ユニット３３０は、制御エージェントからの以下の要求がページ・ヒットであるかどうかを決定する。ページ比較ユニット３３０が後の要求がページ・ミスであることを決定すると、より高い優先度要求がメイン・メモリ１１３へのアクセスを許可される。しかしながら、ページ比較ユニット３３０が、後の要求がページ・ヒットであることを決定すると、プロセス・ブロック６４０で、グレース・タイマ３２０が終了したどうかが決定される。
【００３８】
グレース・タイマ３２０が終了すると、制御は、メイン・メモリ１１３へのアクセスが、より高い優先度状態が許可されるプロセス・ブロック６３０に戻る。グレース・タイマ３２０が終了していないと、プロセス・ブロック６５０で、制御エージェントはメイン・メモリ１１３の制御を続ける。その後、制御は、他の要求が受けられるプロセス・ブロック６１０に戻る。多くのページ・ヒット・アクセスをともにグループにすることによって、不必要なメイン・メモリ１１３のプレチャージ・タイム（ｐｒｅｃｈａｒｇｅ  ｔｉｍｅ）が削除される。したがって、利用可能なメイン・メモリ１１３の帯域幅が最大化される。
【００３９】
Ｄ．ウォータマーク・レベル
ウォータマーク技術は、オポテュニスティクス要求に対する緩い呼び出し時間要件の利点がある。例えば、ライト・バッファ２１２からの提示された書き込み要求、およびリフレッシュ・ユニット２３０からのメイン・メモリ１１３のリフレッシュ要求は、保持バッファで待ち行列に入れられ、アービタ３５０がアイドル状態になるまで、実行が遅らされる。しかしながら、メイン・メモリ１１３での重い作動負荷の時間の間、メイン・メモリ１１３のアクセスを得るためのオポテュニスティクス・エージェントのためのオポテュニティは低減される。メイン・メモリ１１３からのサービスがほとんどないなら、各エージェント内の保持待ち行列は、最大の能力に達し、有害な性能の影響を生じる可能性がある。
【００４０】
ウォータマーク技術は、タイム・スライス・モード、または優先度指定モードで動作し、オポテュニスティクス・エージェントの保持待ち行列のレベル（すなわちウォータマーク）に敏感であるアービタ３５０に要求する。保持待ち行列がほぼ空であるなら、ウォータマーク・レベルは低く、オポテュニスティクス・グループは、上述のように低い優先度を受ける。しかしながら、保持待ち行列がほぼ満たされるなら、ウォータマーク・レベルは高く、オポテュニスティクス・グループは、高い優先度を受ける。例えば、リフレッシュ・ユニット２３０内のライト・バッファ２１２または保持待ち行列が、ほぼ満たされるなら、上述の優先度順位を用いて、オポテュニスティクス・グループの順位は、最も高い優先度に上げられる。さらに、オポテュニスティクス・グループの優先度を、保持待ち行列が満たされるにつれて次第に増加させることができる。例えば、待ち行列が半分まで満たされるなら、優先度は、２番目の順位、または３番目の順位へ増加されることができる。
【００４１】
図７は、本発明の一実施形態によれば、アービタ３５０の動作のフロー図である。プロセス・ブロック７１０で、メイン・メモリ１１３にアクセスするために、オポテュニスティクス・エージェントによって要求がなされる。プロセス・ブロック７２０で、アービタ３５０は、ウォータマーク・レベルを検査し、オポテュニスティクス・グループが、現在の状態または他の受けた要求より高い優先度を有するかどうかを決定する。ウォータマーク・レベルが比較的低いと決定されると、プロセス・ブロック７３０で、アービタ３５０は現在の状態のままであり、より高い優先度を有する他の要求するエージェントへシフトする。ウォータマーク・レベルが比較的高いと決定されると、プロセス・ブロック７４０で、アービタ３５０はオポテュニスティクス状態へシフトし、メイン・メモリ１１３へのアクセスは、要求するオポテュニスティクス・エージェントに許可される。
【００４２】
本発明は、統合されたメモリ・アーキテクチャに関して説明されたが、当業者は、本発明が他のメモリ・システム構成を用いて実施できることを理解するであろう。さらに、本発明で説明されたアービトレーション技術は、ネットワーク、プリンタなどの他の電子システムで実施されることができる。
【００４３】
したがって、ＵＭＡコンピュータ・システムの利用可能な帯域幅を増加するためのアービトレーション・ポリシーが説明された。
【図面の簡単な説明】
【図１】  コンピュータ・システムの一実施形態のブロック図である。
【図２】  チップ・セットの一実施形態のブロック図である。
【図３】  アービトレーション・ユニットの一実施形態のブロック図である。
【図４ａ】  アービタの一実施形態の状態図である。
【図４ｂ】  アービタの一実施形態の状態図である。
【図５】  アービタの動作の一実施形態のフロー図である。
【図６】  アービタの動作の一実施形態のフロー図である。
【図７】  アービタの動作の一実施形態のフロー図である。
【図８】  システム・バス・インタフェースの一実施形態のブロック図を示す。
【図１】
0004774152.tif 000002
【図２】
0004774152.tif 000003
【図３】
0004774152.tif 000004
【図４ａ】
0004774152.tif 000005
【図４ｂ】
0004774152.tif 000006
【図５】
0004774152.tif 000007
【図６】
0004774152.tif 000008
【図７】
0004774152.tif 000009
【図８】
0004774152.tif 000010