(57)【要約】方法は、第１のインターバルの間に、第１のデバイス（１１６，１１８，１２０）から第１のメモリアクセス要求を受信するステップを含む。前記第１のメモリアクセス要求は、複数ページメモリ（１０４）の第１のページにアクセスするためのものである。前記方法は、前記第１のインターバルの後の第２のインターバルの間に、前記第１のデバイスから第２のメモリアクセス要求を受信するステップと、前記第２のインターバルの間に、第２のデバイス（１１６，１１８，１２０）から第３のメモリアクセス要求を受信するステップとを更に含む。前記方法は、更に、前記第２のメモリアクセス要求が前記複数ページメモリの前記第１のページにアクセスすると予想されることが、指標によって示される場合に、前記複数ページメモリに提供するために、前記第３のメモリアクセス要求よりも、前記第２のメモリアクセス要求を優先的に選択するステップを含む。
2009518753.tif 000002
【特許請求の範囲】
【請求項１】
第１のインターバルの間に、第１のデバイス（１１６，１１８，１２０）から、複数ページメモリの第１のページにアクセスするための第１のメモリアクセス要求を受信するステップと、
前記第１のインターバルの後の第２のインターバルの間に、前記第１のデバイスから第２のメモリアクセス要求を受信するステップと、
前記第２のインターバルの間に、第２のデバイス（１１６，１１８，１２０）から第３のメモリアクセス要求を受信するステップと、
前記第２のメモリアクセス要求が前記複数ページメモリの前記第１のページにアクセスすると予想されることが、指標によって示される場合に、前記複数ページメモリに提供するために、前記第３のメモリアクセス要求よりも、前記第２のメモリアクセス要求を優先的に選択するステップとを含む方法。
【請求項２】
第３のインターバルに前記複数ページメモリに提供するために、第３のデバイス（１１６，１１８，１２０）からの第４のメモリアクセス要求を選択するステップと、
前記第３のインターバルの直後の１つ以上のインターバルの各インターバルに前記複数ページメモリに提供するために、前記第３のデバイスからの１つ以上のメモリアクセス要求を優先的に選択するステップとを更に含み、優先的に選択されるインターバルの総数は所定のインターバル数未満である、請求項１に記載の方法。
【請求項３】
第３のデバイス（１０８）においてメモリアクセス要求をバッファするステップと、
バッファされているメモリアクセス要求の数が、所定のメモリアクセス要求数以上の場合に、前記複数ページメモリに連続して提供するために、前記バッファされているメモリアクセス要求を優先的に選択するステップを更に含む、請求項１に記載の方法。
【請求項４】
第３のデバイス（１０８）においてメモリアクセス要求をバッファするステップと、
前記バッファされているメモリアクセス要求によってアクセスされるデータ量が、所定のデータ量以上の場合に、前記複数ページメモリに連続して提供するために、前記バッファされているメモリアクセス要求を優先的に選択するステップを更に含む、請求項１に記載の方法。
【請求項５】
前記指標は、前記第２のメモリアクセス要求に関連するアドレスの最上位ビット群の第１のサブセットを含み、前記最上位ビット群の前記第１のサブセットが、前記第１のメモリアクセス要求に関連するアドレスの最上位ビット群の対応するサブセットと等しい場合に、前記第２のメモリアクセス要求が前記第１のページにアクセスすると予想される、請求項１に記載の方法。
【請求項６】
複数ページメモリ（１０４）に接続されたアクセスアービタ（１０６，１０８）を有するシステムであって、前記アクセスアービタは、
第１のインターバルの間に、第１のデバイス（１１６，１１８，１２０）から、複数ページメモリの第１のページにアクセスするための第１のメモリアクセス要求を受信し、
前記第１のインターバルの後の第２のインターバルの間に、前記第１のデバイスから第２のメモリアクセス要求を受信し、
前記第２のインターバルの間に、第２のデバイス（１１６，１１８，１２０）から第３のメモリアクセス要求を受信し、
前記第２のメモリアクセス要求が前記複数ページメモリの前記第１のページにアクセスすると予想されることが、指標によって示される場合に、前記複数ページメモリに提供するために、前記第３のメモリアクセス要求よりも、前記第２のメモリアクセス要求を優先的に選択する、ところのシステム。
【請求項７】
前記アクセスアービタは更に、
第３のインターバルに前記複数ページメモリに提供するために、第３のデバイス（１１６，１１８，１２０）からの第４のメモリアクセス要求を選択し、
前記第３のインターバルの直後の１つ以上のインターバルの各インターバルに前記複数ページメモリに提供するために、前記第３のデバイスからの１つ以上のメモリアクセス要求を優先的に選択し、優先的に選択されるインターバルの総数は所定のインターバル数未満である、請求項６に記載のシステム。
【請求項８】
前記アクセスアービタは更に、
第４のデバイス（１１０，１１２，１１４）にバッファされているメモリアクセス要求によってアクセスされるデータ量が、所定のデータ量以上の場合に、前記複数ページメモリに連続して提供するために、前記バッファされているメモリアクセス要求を優先的に選択する請求項７に記載のシステム。
【請求項９】
前記アクセスアービタは更に、
第３のデバイス（１１６，１１８，１２０）にバッファされているメモリアクセス要求の数が、所定のメモリアクセス要求数以上の場合に、前記複数ページメモリに連続して提供するために、前記バッファされているメモリアクセス要求を優先的に選択する、請求項６に記載のシステム。
【請求項１０】
前記アクセスアービタは更に、
第３のデバイスにバッファされているメモリアクセス要求によってアクセスされるデータ量が、所定のデータ量以上の場合に、前記複数ページメモリに連続して提供するために、前記バッファされているメモリアクセス要求を優先的に選択する、請求項６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、メモリアクセス要求の処理に関する。
【背景技術】
【０００２】
処理システムでは、メモリにデータをストアしたり、あるいはメモリのデータにアクセスしようとしているデバイスに対し、メモリ資源へのアクセスを制御するために、メモリコントローラが用いられていることが多い。従来のシステムでは、特定の固定の優先度に基づいて、メモリコントローラにメモリアクセス要求が提供される。
【０００３】
しかし、固定優先順位方式のみに基づいてメモリアクセス要求を選択すると、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）などのページベースのメモリで、大きな不利益が生じてしまうことが多い。通常、ＤＲＡＭの別のページにアクセスする際には必ず、前のページをクローズし、次のページをオープンするのに必要なプロセスのため、遅延が生じてしまう。固定優先順位方式でよくあるように、メモリのページの切り替えを頻繁に行うと、メモリに「スラッシング」が生じ、その結果、メモリアクセス要求シーケンスに、大きな遅延が累積的に生じてしまうことが多い。この問題は、デュアルデータレート（ＤＤＲ）メモリでは、コマンドサイクルごとのデータレートが高いため、特に顕著となる。
【０００４】
したがって、メモリアクセス要求を処理するための改良された方法が有利となる。
【発明の開示】
【０００５】
本開示の一態様によれば、方法が提供される。前記方法は、第１のインターバルの間に、第１のデバイスから第１のメモリアクセス要求を受信するステップを有する。前記第１のメモリアクセス要求は、複数ページメモリの第１のページにアクセスするためのものである。前記方法は、前記第１のインターバルの後の第２のインターバルの間に、前記第１のデバイスから第２のメモリアクセス要求を受信するステップと、前記第２のインターバルの間に、第２のデバイスから第３のメモリアクセス要求を受信するステップとを更に含む。前記方法は、更に、前記第２のメモリアクセス要求が前記複数ページメモリの前記第１のページにアクセスすると予想されることが、指標によって示される場合に、前記複数ページメモリに提供するために、前記第３のメモリアクセス要求よりも、前記第２のメモリアクセス要求を優先的に選択するステップを含む。本開示の別の態様によれば、システムが提供される。前記システムは、複数ページメモリに接続されたアクセスアービタを有する。前記アクセスアービタは、第１のインターバルの間に、第１のデバイスから、複数ページメモリの第１のページにアクセスするための第１のメモリアクセス要求を受信し、前記第１のインターバルの後の第２のインターバルの間に、前記第１のデバイスから第２のメモリアクセス要求を受信し、前記第２のインターバルの間に、第２のデバイスから第３のメモリアクセス要求を受信する。前記アクセスアービタは、更に、前記第２のメモリアクセス要求が前記複数ページメモリの前記第１のページにアクセスすると予想されることが、指標によって示される場合に、前記複数ページメモリに提供するために、前記第３のメモリアクセス要求よりも、前記第２のメモリアクセス要求を優先的に選択する。
【０００６】
本開示の目的および利点は、添付の図面と併せて読めば、以下の詳細な説明から、当業者にとって明らかであろう。添付の図面では、同じ要素を示すのに同じ参照符号を使用する。
【発明を実施するための最良の形態】
【０００７】
以下の説明は、メモリアクセス要求のアービトレーションに関わる多数の特定の実施形態および詳細を示すことによって、本開示を完全に理解できることを意図している。しかし、本開示がこれらの特定の実施形態や詳細に限定されることはなく、これらは例示に過ぎないことが理解される。当業者が、既知のシステムおよび方法に鑑みて、特定の設計やその他の要求に従って、いかなる数の別の実施形態において、意図した目的および利益のために本開示の使用を評価することも更に理解される。
【０００８】
図１を参照すると、本開示の少なくとも１つの実施形態による、繰り返しページアクセスアービトレーション（repeated-page access arbitration）を利用する例示的な処理システム１００が示される。図示した例では、システム１００は、複数のページを有するページベースのメモリ１０４（ＤＤＲ  ＤＲＡＭなど）に接続された、システムオンチップ（ＳＯＣ）１０２（集積プロセッサなど）を備える。ＳＯＣ１０２は、ノースアービタ１０６、サウスアービタ１０８、および複数のデバイスを備える。複数のデバイスには、ディスプレイコントローラ１１０、汎用処理装置（ＧＰＵ）（中央処理装置と呼ばれることも多い）、セキュリティモジュール１１４、周辺装置相互接続（ＰＣＩ）コントローラ１１６、ビデオプロセッサ１１８、ブリッジ（ＭＣＰ）１２０、メモリコントローラ１２２などが含まれうる。
【０００９】
図示した例では、サウスアービタ１０８は、デバイス１１６，１１８，１２０の１つ以上によって（例えば、それぞれ要求経路１３６，１３８，１４０を介して）提供されるメモリアクセス要求同士をアービトレーションし、各メモリアクセスインターバルに、選択されたメモリアクセス要求をノースアービタ１０６に提供する。これに対し、ノースアービタ１０６は、デバイス１１０，１１２，１１４の１つ以上によって（例えば、それぞれ要求経路１３０，１３２，１３４を介して）提供されるメモリアクセス要求同士のほか、サウスアービタ１０８から提供される選択されたメモリアクセス要求もアービトレーションする。次に、アービタ１０６によって選択されたメモリアクセス要求が、選択されたメモリアクセス要求に関連する任意のデータ（書込データなど）と共に、メモリコントローラ１２２に提供される。次に、メモリコントローラ１２２は、提供されたメモリアクセス要求を処理して、メモリ１０４の識別されたメモリ位置にデータをロードするか、あるいはここからデータを読み出す。
【００１０】
少なくとも１つの実施形態では、アービタ１０６，１０８の一方または両方は、メモリ１０４でのページ切り替えの頻度を減らすために、１つ以上のアービトレーション法を使用してメモリアクセス要求を選択する。例えば、アービタ１０６および１０８によって利用されるアービトレーション方式には、選択されたメモリアクセス要求が、以前のインターバルに選択されたメモリアクセス要求と同じメモリページにアクセスすると予想されるとの指標に基づいて、特定のメモリアクセス要求を選択する方法などがある。一実施形態では、この指標は、以前に選択されたメモリアクセス要求に関連するアドレスの少なくとも一部と、１つ以上の未処理のメモリアクセス要求のアドレスの対応する部分との比較に基づいていてもよい。比較の結果、特定の未処理のメモリアクセス要求が、以前のメモリアクセス要求と同じメモリページにアクセスするとの予想が示された場合、この特定の未処理のメモリアクセス要求が、メモリアクセスインターバルの間に処理するために優先的に選択されうる。メモリアクセス要求の選択の文脈で「優先的」との文言が用いられる場合、影響のあるほかのすべてのパラメータが実質的に等しいことを指す。例えば、あるメモリアクセス要求がほかよりも優先度が高いとき、優先度が決定要因である場合には、他のパラメータの点では優先度の低いメモリアクセス要求の選択が優先的な場合であっても、優先度の高いメモリアクセス要求が選択されうる。
【００１１】
一実施形態では、アービタ１０６，１０８の一方または両方がこの比較を実行する。例を挙げると、アービタ１０６，１０８の一方または両方は、直前に処理されたメモリアクセス要求（例えば、ＡＤＤＲＰ［ＭＳＢｎ：ＭＳＢｎ−ｘ］）の最上位ビット群（ＭＳＢ）のサブセットを、レジスタまたは他のメモリ位置（図示せず）に記憶しており、デバイス１３０，１３２，１３４，１３６，１３８，１４０は、自身のメモリアクセス要求に関連するメモリアドレス（例えばデバイスｉでは、ＡＤＤＲｉ［ＭＳＢｎ：ＭＳＢｎ−ｘ］）の最上位ビット群（ＭＳＢ）の対応するサブセットを、それぞれアドレス入力１５０，１５２，１５４，１５６，１５８，１６０として提供しうる。次に、アービタ１０６，１０８の一方または両方は、記憶されているアドレス値を考慮してアドレス入力を処理し、処理済みのメモリアクセス要求と同じメモリページにアクセスすると予想されるメモリアクセス要求を特定しうる。別の実施形態では、アドレス部分の比較は、デバイスによって実行されてもよく、デバイスが提供したメモリアクセス要求が、以前に処理されたメモリアクセス要求と同じメモリページにアクセスすると予想されるかどうかを示す指標として、各デバイスが信号を提供しうる。
【００１２】
多くの場合、デバイスからの現在のメモリアクセス要求は、同じデバイスからの直前のメモリアクセス要求と同じメモリページにアクセスすると思われる。したがって、一実施形態では、連続するメモリアクセス要求の所定の最大値に達するまで、可能であれば、同じデバイスから連続してメモリアクセス要求が選択されるように、アービタ１０６，１０８の一方または両方は、メモリアクセス要求を優先的に選択する。このため、同じデバイスから連続してメモリアクセス要求を選択することにより、同じデバイスからのメモリアクセス要求を連続的に処理する結果、同じメモリページにアクセスする確率が高くなるため、メモリ１０４でのページ切り替えの頻度を減らすことができる。
【００１３】
同様に、一実施形態では、アービタ１０６，１０８の一方または両方は、特定のデバイスからのメモリアクセス要求の数が所定数以上になるまで、および／または、特定のデバイスからのバッファ済みのメモリアクセス要求に関連するデータ（例えば読出アクセスでは読出データ、または書込アクセスでは書込データ）の量が、所定の閾値以上になるまで、デバイスからのメモリアクセス要求がバッファされるアービトレーション方式を使用してもよい。特定のデバイスのバッファ済みのメモリアクセス要求が、所定の要求数と等しい場合、および／または所定のデータ閾値と等しい場合、アービタは、バッファ済みのメモリアクセス要求の一部またはすべてを、連続するメモリアクセスインターバルの間に処理するために選択しうる。同じデバイスからのメモリアクセス要求は、同じメモリページにアクセスすることが多いため、あるデバイスからの１つ以上のメモリアクセス要求を連続的に処理することにより、ページ切り替えの頻度を減らすことができ、これにより、メモリアクセス要求の処理の遅延を減らすことができる。
【００１４】
一実施形態では、所定の要求数と等しくなるまで、および／または、所定のデータ閾値と等しくなるまで、デバイスからのメモリアクセス要求がアービタ１０６および１０８にバッファされる。例として示すように、アービタ１０８は、ＰＣＩコントローラ１１６からの所定のメモリアクセス要求数をバッファするバッファ１６４を備えうる。バッファ１６４が一杯になると、アービタ１０８は、バッファ済みのメモリアクセス要求の一部または全部を、連続処理のため、バッファ１６４から優先的に選択しうる。代替の実施形態では、デバイスの１つ以上が、メモリアクセス要求をバッファするためのバッファ（ＧＰＵ１１２のバッファ１６２など）を備える。この例では、バッファされているアクセス要求が、バッファ済みのアクセス要求の所定の数および／または所定のデータ閾値と等しくなると、デバイスがアービタ１０６または１０８に通知しうる。これを受けて、対応するアービタは、通知を行ったデバイスから、連続処理のために、バッファ済みのメモリアクセス要求の１つ以上を優先的に選択しうる。
【００１５】
図２を参照すると、本開示の少なくとも１つの実施形態による、メモリページの切り換えを減らすために、メモリアクセス要求同士をアービトレーションするための例示的な方法２００が示されている。ブロック２０２において、アービタ（図１のアービタ１０６，１０８など）で、１つ以上のデバイスのそれぞれから、メモリアクセス要求が受信される。ブロック２０４において、アービタは、受信したメモリアクセス要求（ある場合）に関連する優先度を調べる。例えば、ＧＰＵ１１２（図１）からのメモリアクセス要求は、タイミングまたは性能上の要件のために、ディスプレイコントローラ１１０（図１）からのメモリアクセス要求よりも高い優先度が割り当てられているとする。受信済みのメモリアクセス要求のうち、残りの受信済みのメモリアクセス要求より優先度の高いものが１つしかない場合、ブロック２０６において、この１つの優先度の高いメモリアクセス要求が、現在のメモリアクセスインターバルまたは将来のメモリアクセスインターバルの間に処理するため、メモリコントローラ（図１のメモリコントローラ１２２など）に提供するために選択されうる。
【００１６】
受信済みのメモリアクセス要求のなかで、優先レベルが最も高いメモリアクセス要求が複数存在する場合には、一実施形態では、ブロック２０８において、アービタは、以前のメモリアクセスインターバルに選択されたメモリアクセス要求と同じメモリページにアクセスすると予想されるメモリアクセス要求を選択する。次に、選択されたメモリアクセス要求が、処理のためにメモリコントローラに提供されうる。ステップ２１０において、次のメモリアクセスインターバルについて、アービトレーション方法２００が繰り返されうる。
【００１７】
図３乃至６を参照すると、本開示の少なくとも１つの実施形態による、図２の方法２００のブロック２０８のメモリアクセス要求の優先的選択の例示的な実装が示される。メモリアクセスアービタは、本発明の範囲から逸脱することなく、これらの例示的な実装のいずれか、あるいはこれらの任意の組合せを使用しうる。
【００１８】
図３に示すように、ブロック２０８におけるメモリアクセス要求の優先的選択の一実装では、ブロック３０２において、デバイスからの現在の要求が、以前のメモリアクセスインターバルの間に選択されたメモリアクセス要求と同じメモリページにアクセスすると予想されることが、デバイスからの指標に示されているかどうかが判定されうる。上で説明したように、この指標は、メモリアクセス要求に関連するアドレスのサブセットと、以前に選択されたメモリアクセス要求の対応するアドレスのサブセットとの比較に基づきうる。このような指標がある場合には、ブロック３０４において、指標に関連するデバイスからのメモリアクセス要求が、処理のためメモリコントローラに提供するために選択される。このような指標がない場合には、ブロック３０６において、アービタは、ラウンドロビン選択などの他の方式を使用して、処理するメモリアクセス要求を選択しうる。
【００１９】
表１は、図３に関して説明したメモリアクセスアービトレーションを使用するメモリアクセスインターバルの例示的なシーケンスを示す。表に示す例では、優先度０を有し、連続の指標を有するデバイスＡが、優先度０のデバイスよりも３回、優先度１のデバイスよりも１回、優先的に選択される。
【００２０】
【表１】
2009518753.tif 000003
【００２１】
図４に示すように、ブロック２０８におけるメモリアクセス要求の優先的選択の別の実装では、ブロック４０２において、以前のメモリアクセスインターバルに選択されたメモリアクセス要求に関連する同じデバイスからのメモリアクセス要求が利用可能であるかどうかが判定されうる。このようなメモリアクセス要求が利用可能でない場合には、ブロック４０４において、ラウンドロビン選択などの様々な方式のいずれかを使用して、メモリアクセス要求が選択されうる。利用可能な場合には、直近のメモリインターバルに、そのデバイスからのメモリアクセス要求が連続して選択された回数の総カウントが、所定の最大値（最大２インターバル、または４インターバルなど）と比較される。所定の最大値を超えない場合、ブロック４０８において、そのデバイスからのメモリアクセス要求が、メモリコントローラによる処理のために選択される。所定の最大値に達している場合、ブロック４１０において、デバイスのカウント値がリセットされ（例えば０にセットされ）、ブロック４０４において、他の方式を使用して、他のデバイスからのメモリアクセス要求が選択されうる。例えば、所定の最大値が４であり、直近の３メモリアクセスインターバルに、デバイスからのメモリアクセス要求が選択されているとすると、以前のメモリアクセスインターバルのシーケンスで選択されたデバイスからのメモリアクセス要求の総数が所定の最大値未満であるため、ブロック４０８において、このデバイスからの現在のメモリアクセス要求が選択されうる。しかし、デバイスからのメモリアクセス要求が、最近の４メモリアクセスインターバルに選択され、所定の最大値が４インターバルである場合には、ブロック４１０において、このデバイスに関連するカウントがリセットされ、ブロック４０４において、他のデバイスからのメモリアクセス要求が選択される。
【００２２】
一実施形態では、他のデバイスから優先度の高いメモリアクセス要求を受信すると、同じデバイスからのメモリアクセス要求の連続選択が中断されうる。別の実施形態では、別のデバイスから優先度の高いメモリアクセス要求を受信しても、同じデバイスからのメモリアクセス要求の連続選択が行われる。更に、繰り返し選択の所定の最大値が、他のデバイスからのメモリアクセス要求の優先度に応じて変更されてもよい。
【００２３】
表２は、図４に関して説明したメモリアクセスアービトレーションを使用するメモリアクセスインターバルの例示的なシーケンスを示す。表に示す例では、各デバイスが２回連続で選択されてから、同じ優先度の別のデバイスが選択されうる。この結果得られる要求選択パターンによって、一般に、従来のアービトレーション技術と比べ、ページのオープンおよびページのクローズの回数が低減される。
【００２４】
【表２】
2009518753.tif 000004
【００２５】
図５に示すように、ブロック２０８におけるメモリアクセス要求の優先的選択の別の実装では、ブロック５０２において、任意のデバイスからのバッファ済みのメモリアクセス要求の数が、所定の閾値以上であるかどうかが判定されうる。所定の閾値未満の場合、ブロック５０４において、例えば、ラウンドロビン選択または他の選択法を使用してメモリアクセス要求が選択される。所定の閾値以上である場合、ブロック５０６において、バッファ済みのメモリアクセス要求の一部または全部が、連続するメモリアクセスインターバルの間の処理のため、アービタによってメモリコントローラに提供される。
【００２６】
表３，表４は、それぞれ、メモリアクセスの従来のシーケンスと、図５に関して記載したメモリアクセスアービトレーションを使用するメモリアクセスインターバルの例示的なシーケンスとを示す。表４に示した実施形態では、各デバイスは、２つのメモリアクセス要求を、これらが選択される前にバッファする。この結果得られる表４に示す要求パターンにより、表３に示す従来の技術よりも、ページのオープンおよびページのクローズの回数が低減される可能性があり、このため、処理の遅延が低減される。
【００２７】
（従来技術）
【表３】
2009518753.tif 000005
【００２８】
【表４】
2009518753.tif 000006
【００２９】
同様に、図６に示すように、ブロック２０８におけるメモリアクセス要求の優先的選択の別の実装では、ブロック６０２において、任意のデバイスからのバッファ済みのメモリアクセス要求が表す読出データまたは書込データが、所定のデータ閾値以上であるかどうかが判定されうる。所定の閾値未満の場合、ブロック６０４において、例えば、ラウンドロビン選択または他の選択法を使用してメモリアクセス要求が選択される。所定の閾値以上である場合、ブロック６０６において、バッファ済みのメモリアクセス要求の一部または全部が、連続するメモリアクセスインターバルの間の処理のため、アービタによってメモリコントローラに提供される。
【００３０】
図７を参照すると、本開示の少なくとも１つの実施形態による、本明細書に開示したアービトレーション技術の１つ以上を実装するための例示的なアービタ７００が示される。図に示すように、アービタ７００は、要求セレクタモジュール７０２、指標解析モジュール７０４、マルチプレクサ７０６，７０８、およびレジスタ７１０，７１２，７１４，７１６，７１８，７２０を備えうる。モジュール７０２，７０８は、ソフトウェア、ハードウェア、ファームウェアまたはこれらの組合せとして実装することができる。レジスタ７１０は、以前のメモリアクセスインターバルに選択されたメモリアクセス要求に関連するデバイスを識別する値を記憶する。レジスタ７１２は、同じデバイスからメモリアクセスを連続して選択できる最大回数を表す値を記憶し、レジスタ７１４は、直近のメモリアクセスインターバルに、メモリアクセス要求が連続して選択された回数のカウントを表す値を記憶する。レジスタ７１６は、バッファ済みのメモリアクセス要求に関連する所定のデータ閾値を表す値を記憶し、レジスタ７１８は、メモリアクセスリクエストバッファに関連する所定のメモリアクセス要求数を表す値を記憶する。レジスタ７２０は、以前のメモリアクセスインターバルに選択されたメモリアクセス要求に関連するメモリアドレスを表す値を記憶する。レジスタ７１２，７１４，７１６，７１８の１つ以上の値は、処理デバイス（例えば、図１のＳＯＣ１０２）の動作の特定の特性に合わせて、アービタ７００が使用するメモリアクセス要求のアービトレーション方式をカスタマイズするためにプログラム可能であってもよい。
【００３１】
動作時に、（それぞれデバイスＡ〜Ｄから出された）１つ以上のメモリアクセス要求Ａ〜Ｄがマルチプレクサ７０８で受信される。要求セレクタモジュール７０２は、指標解析モジュール７０４からの入力および／またはレジスタ７１０，７１２，７１４，７１６，７１８，７２０の１つ以上の値に基づいて、メモリアクセス要求Ａ〜Ｄのいずれを、メモリコントローラに提供するために選択するかを決定し、マルチプレクサ７０８に、対応する選択信号７２２を提供して、マルチプレクサ７０８に対して、選択されたメモリアクセス要求を出力する（これをメモリコントローラが受け取る、７２４）ように指示する。
【００３２】
一実施形態では、図４に関して説明したように、要求セレクタモジュール７０２は、レジスタ７１０が示すデバイス（すなわち、以前のメモリアクセスインターバルに選択されたメモリアクセス要求に関連するデバイス）に関連するメモリアクセス要求を優先的に選択し、レジスタ７１４のカウント値が、レジスタ７１２の値が表す最大値以上ではない限り、レジスタ７１４のカウント値をインクリメントする。最大値以上の場合、カウント値がリセットされ、ラウンドロビンなどの他の選択法が使用されうる。
【００３３】
図５，６に関して説明した別の実施形態では、バッファ済みのメモリアクセス要求の総数が、レジスタ７１８の値が表す閾値以上である場合、あるいは、バッファ済みのメモリアクセス要求によってアクセスされる総データ量が、レジスタ７１６に記憶されている値が表す所定のデータ閾値以上である場合、要求セレクタモジュール７０２は、デバイスからのバッファ済みの１つ以上のメモリアクセス要求を優先的に選択する。
【００３４】
更に、図３に関して説明したように、一実施形態では、要求セレクタモジュール７０２は、メモリアクセス要求が、以前のメモリアクセスインターバルに選択されたメモリアクセス要求と同じメモリページにアクセスすると予想されるかどうかを表す指標に基づいて、デバイスからのメモリアクセス要求を優先的に選択する。例えば、マルチプレクサ７０６は、デバイスＡ〜Ｄからそれぞれ指標Ａ〜Ｄを受信するとする。一実施形態では、指標Ａ〜Ｄは、対応するメモリアクセス要求Ａ〜Ｄに関連するメモリアドレスの最上位ビットの特定のビット数を表している。要求セレクタモジュール７０２は、マルチプレクサ７０６に選択信号７２６を提供し、指標解析モジュール７０４に提供する指標Ａ〜Ｄの１つが選択される。指標解析モジュール７０４は、選択された指標（メモリアドレスのサブセットなど）を、レジスタ７２０に記憶されているメモリアドレス値（以前に選択されたメモリアクセス要求に関連するメモリアドレスを表している）と比較して、対応するメモリアクセス要求が、以前に選択されたメモリアクセス要求と同じメモリページにアクセスすると予想されるかどうかを決定する。このように予想される場合、指標解析モジュール７０４は、要求セレクタモジュール７０２に、選択信号７２８を提供し、どのデバイスのどのメモリアクセス要求が、以前に選択されたメモリアクセス要求と同じメモリページにアクセスすると予想されるかを通知する。これに対して、要求セレクタモジュール７０２は、メモリコントローラに出力７２４として提供する、対応するメモリアクセス要求を選択するために、マルチプレクサ７０８に、対応する選択信号７２２を提供する。
【００３５】
本開示の他の実施形態、使用および利点は、ここに開示した開示の詳細と実施を鑑みれば、当業者にとって明らかであろう。本明細書および図面は例に過ぎず、したがって、本開示の範囲は、添付の特許請求の範囲とその均等物によってのみ制限されることが意図されるべきである。
【図面の簡単な説明】
【００３６】
【図１】本開示の少なくとも１つの実施形態による、永続ページメモリアクセス要求のアービトレーション法を使用する例示的な処理システムを示すブロック図。
【図２】本開示の少なくとも１つの実施形態による、永続ページメモリアクセス要求のアービトレーションのための例示的な方法を示すフローチャート。
【図３】本開示の少なくとも１つの実施形態による、複数のラウンドロビン選択法に基づいた、図２の方法の例示的な実装を示すフローチャート。
【図４】本開示の少なくとも１つの実施形態による、以前に選択されたメモリアクセス要求に基づいた、図２の方法の例示的な実装を示すフローチャート。
【図５】本開示の少なくとも１つの実施形態による、バッファ済みのメモリアクセス要求に基づいた、図２の方法の例示的な実装を示すフローチャート。
【図６】本開示の少なくとも１つの実施形態による、バッファ済みのメモリアクセス要求に基づいた、図２の方法の例示的な実装を示すフローチャート。
【図７】本開示の少なくとも１つの実施形態による、例示的なメモリアクセスアービタを示すブロック図。
【図１】
2009518753.tif 000007
【図２】
2009518753.tif 000008
【図３】
2009518753.tif 000009
【図４】
2009518753.tif 000010
【図５】
2009518753.tif 000011
【図６】
2009518753.tif 000012
【図７】
2009518753.tif 000013
【手続補正書】
【提出日】平成19年11月15日(2007.11.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のデバイス（１１６，１１８，１２０）の各デバイスから少なくとも１つのメモリアクセス要求を受信するステップと、
前記複数のデバイス（１１６，１１８，１２０）の第１のデバイスのバッファされているメモリアクセス要求の数が、所定のメモリアクセス要求数以上であると判定される（５０２）と、複数のページメモリ（１０４）に連続して提供するために、前記複数のデバイス（１１６，１１８，１２０）の他のデバイスからのメモリアクセス要求よりも、前記第１のデバイスからの前記バッファされているメモリアクセス要求を優先的に選択するステップ（５０６）とを含む、方法。
【請求項２】
第１のインターバルに前記複数ページメモリ（１０４）に提供するために、第２のデバイス（１１６，１１８，１２０）からの第１のメモリアクセス要求を選択するステップと、
前記第１のインターバルの直後の１つ以上のインターバルの各インターバルに前記複数ページメモリ（１０４）に提供するために、前記第２のデバイスからの１つ以上のメモリアクセス要求を優先的に選択するステップと、を更に有し、優先的に選択されるインターバルの総数は所定のインターバル数未満である、請求項１に記載の方法。
【請求項３】
バッファされているメモリアクセス要求によってアクセスされる総データ量が所定のデータ量以上であると判定されると、前記複数ページメモリ（１０４）に連続して提供するために、前記バッファされているメモリアクセス要求を優先的に選択するステップを更に含む、請求項１に記載の方法。
【請求項４】
第１のインターバルの間に、第２のデバイス（１１６，１１８，１２０）から、前記複数ページメモリ（１０４）の第１のページにアクセスするための第１のメモリアクセス要求を受信するステップと、
前記第１のインターバルの直後の第２のインターバルの間に、前記第２のデバイス（１１６，１１８，１２０）から第２のメモリアクセス要求を受信するステップと、
前記第２のインターバルの間に、第３のデバイス（１１６，１１８，１２０）から第３のメモリアクセス要求を受信するステップと、
前記第２のメモリアクセス要求が前記複数ページメモリ（１０４）の前記第１のページにアクセスすると予想されることが、指標によって示される場合に、前記複数ページメモリに提供するために、前記第３のメモリアクセス要求よりも、前記第２のメモリアクセス要求を優先的に選択するステップとを更に含み、
前記指標は前記第２のデバイスから受信され、前記指標は、前記第２のメモリアクセス要求に関連するアドレスの最上位ビット群のサブセットを含み、前記最上位ビット群の前記サブセットが、前記第１のメモリアクセス要求に関連するアドレスの最上位ビット群の対応するサブセットと等しい場合に、前記第２のメモリアクセス要求が前記第１のページにアクセスすると予想される、請求項１に記載の方法。
【請求項５】
複数ページメモリ（１０４）に接続されたアクセスアービタ（１０６，１０８）を備えるシステムであって、前記アクセスアービタは、
複数のデバイス（１１６，１１８，１２０）の各デバイスから少なくとも１つのメモリアクセス要求を受信し、
前記複数のデバイス（１１６，１１８，１２０）の第１のデバイスのバッファされているメモリアクセス要求の数が、所定のメモリアクセス要求数以上であると判定される（５０２）と、複数のページメモリ（１０４）に連続して提供するために、前記複数のデバイス（１１６，１１８，１２０）の他のデバイスからのメモリアクセス要求よりも、前記第１のデバイスからの前記バッファされているメモリアクセス要求を優先的に選択する（５０６）、ところのシステム（１００）。
【請求項６】
前記アクセスアービタ（１０６，１０８）は更に、
第１のインターバルに前記複数ページメモリに提供するために、第２のデバイス（１１６，１１８，１２０）からの第１のメモリアクセス要求を選択し、
前記第１のインターバルの直後の１つ以上のインターバルの各インターバルに前記複数ページメモリ（１０４）に提供するために、前記第２のデバイスからの１つ以上のメモリアクセス要求を優先的に選択し、優先的に選択されるインターバルの総数は所定のインターバル数未満である、請求項５に記載のシステム。
【請求項７】
前記アクセスアービタ（１０６，１０８）は更に、
バッファされているメモリアクセス要求によってアクセスされるデータ量が所定のデータ量以上の場合に、前記複数ページメモリ（１０４）に連続して提供するために、前記バッファされているメモリアクセス要求を優先的に選択する、請求項６に記載のシステム。
【請求項８】
前記アクセスアービタは更に、
前記第１のデバイスからのバッファされているメモリアクセス要求によってアクセスされる総データ量が所定のデータ量以上であると判定されると、複数のページメモリ（１０４）に連続して提供するために、他のデバイスからのメモリアクセス要求よりも、前記バッファされているメモリアクセス要求を優先的に選択する、請求項５に記載のシステム。
【請求項９】
第１のインターバルの間に、複数のデバイスの各デバイスから、複数ページメモリにアクセスするための少なくとも１つのメモリアクセス要求を受信するステップと、
前記サブセットの第１のデバイスからのバッファされているメモリアクセス要求によってアクセスされる総データ量が所定のデータ量以上であると判定されると、複数のページメモリに連続して提供するために、前記サブセットの他のデバイスからのメモリアクセス要求よりも、前記バッファされているメモリアクセス要求を優先的に選択するステップと、を有する方法。
【国際調査報告】
2009518753.tif 000014
2009518753.tif 000015
2009518753.tif 000016