(57)【要約】メモリアクセス要求の遅延アービトレーションのための方法であって、メモリコントローラ（１０２）に第１のメモリアクセス要求をディスパッチするステップと、前記第１のメモリアクセスオペレーションが示すメモリアクセス要求の完了を予測すると、前記メモリコントローラ（１０２）に第２のメモリアクセス要求をディスパッチするステップと、を有する。他の方法では、第１の時点において、バスインタフェースユニット（１０６）で第１のメモリアクセス要求を受け取るステップと、前記第１の時点の後の第２の時点において、メモリコントローラ（１０２）に第２のメモリアクセス要求をディスパッチするステップと、前記第２の時点の後の第３の時点において、前記バスインタフェースユニット（１０６）で第３のメモリアクセス要求を受け取るステップと、前記第３の時点の後の第４の時点において、前記メモリコントローラ（１０２）に前記第３のメモリアクセス要求をディスパッチするステップと、前記第４の時点の後の第５の時点において、前記メモリコントローラ（１０２）に前記第１のメモリアクセス要求をディスパッチするステップと、を有する。
2009508215.tif 000002
【特許請求の範囲】
【請求項１】
メモリコントローラ（１０２）に第１のメモリアクセス要求をディスパッチするステップと、
前記第１のメモリアクセスオペレーションが示すメモリアクセス要求の完了を予測したことに応答して、前記メモリコントローラ（１０２）に第２のメモリアクセス要求をディスパッチするステップと、を有する方法。
【請求項２】
前記メモリアクセスオペレーションの前記完了の予測は、メモリ（１０４）と前記メモリコントローラ（１０２）の間の信号伝達によって表される請求項１に記載の方法。
【請求項３】
前記第１のメモリアクセス要求は、
リードアクセス要求であって、前記信号伝達には、要求されたデータが前記メモリ（１０４）から前記メモリコントローラ（１０２）へ転送可能であることを示す信号が含まれている、
ライトアクセス要求であって、前記信号伝達には、書込データが前記メモリ（１０４）に提供されていることを示す信号が含まれている、のいずれか一方である請求項２に記載の方法。
【請求項４】
前記メモリアクセスオペレーションの前記完了の予測は、前記メモリアクセスオペレーションが実際に完了する前の所定の期間によって表される請求項２に記載の方法。
【請求項５】
前記メモリコントローラ（１０２）で前記第２のメモリアクセス要求を取得することは、前記メモリコントローラ（１０２）に提供可能な複数のメモリアクセス要求から、前記第２のメモリアクセス要求を選択することを有する請求項１に記載の方法。
【請求項６】
前記第２のメモリアクセス要求をディスパッチするステップは、前記完了が予測されたことに応答して、前記メモリコントローラ（１０２）からバスインタフェースユニット（１０６）に信号（１３４）を提供するステップを有し、前記バスインタフェースユニット（１０６）は、前記信号（１３４）を受け取ったことに応答して、複数のメモリアクセス要求から前記第２のメモリアクセス要求を選択する請求項１に記載の方法。
【請求項７】
メモリ（１０４）に結合され、メモリアクセス要求を処理するためのメモリコントローラ（１０２）と、
前記メモリコントローラ（１０２）に結合されたバスインタフェースユニット（１０６）と、を有し、前記バスインタフェースユニット（１０６）は、
１つ以上のメモリアクセス要求を記憶するためのバッファ（１３２）と、
メモリアクセス要求を受け取るために前記バッファに結合された第１の入力、および前記メモリコントローラ（１０２）から信号（１３４）を受け取る第２の入力を有するアービタ（１３０）と、を有し、前記アービタ（１３０）は、前記信号（１３４）に応答して、前記メモリコントローラ（１０２）にディスパッチするために第２のメモリアクセス要求を選択し、
前記メモリコントローラ（１０２）は、前記メモリコントローラ（１０２）に既にディスパッチされている第１のメモリアクセス要求が示すメモリアクセスオペレーションの完了が予測されたことに応答して、前記信号（１３４）を提供するシステム（１００）。
【請求項８】
前記第１のメモリアクセス要求は、リードアクセス要求であって、前記信号（１３４）は、要求されたデータが前記メモリ（１０４）から前記メモリコントローラ（１０２）へ転送可能であることが示されたことに応答して提供される、
ライトアクセス要求であって、前記信号（１３４）は、書込データが前記メモリ（１０４）に提供されていることが示されたことに応答して提供される、のいずれか一方である請求項７に記載のシステム。
【請求項９】
前記メモリアクセスオペレーションの前記完了の予測は、前記メモリアクセスオペレーションが実際に完了する前の所定の期間によって表される請求項７に記載のシステム。
【請求項１０】
前記アービタ（１３０）は、前記１つ以上のメモリアクセス要求に関連する優先度に基づいて、前記第２のメモリアクセス要求を選択する請求項７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、メモリアクセス要求の処理に関する。
【背景技術】
【０００２】
処理システムでは、メモリにデータを記録したり、あるいはメモリのデータにアクセスしようとしているデバイスに対し、メモリ資源へのアクセスを制御するために、メモリコントローラが用いられていることが多い。従来のシステムでは、メモリコントローラがメモリアクセス要求を受け取り可能となった直後に、メモリコントローラにメモリアクセス要求が提供される。通常、メモリコントローラは、このメモリアクセス要求をバッファして、バッファしたメモリアクセス要求を、割り当てられた所定の優先度に基づいて処理する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来の方法では、メモリコントローラは、次のメモリアクセス要求をバッファまたは処理できるようになった直後に、メモリコントローラにメモリアクセス要求をディスパッチする。このため、メモリコントローラが、次のメモリアクセス要求を受け取れるようになった後に、優先度の高い特定のメモリアクセス要求が選択可能となると、この優先度の高いメモリアクセス要求が、最も効率的な方法で処理されるとは限らなくなる。例を挙げると、メモリコントローラにおける次の要求を受け取るという能力に起因して、優先度の低いメモリアクセス要求がディスパッチされた直後に優先度の高いメモリアクセス要求を受け取った場合には、メモリコントローラが、次のメモリアクセス要求を再び受け取れるようになるまで、優先度の高いメモリアクセス要求の処理が遅れることがある。
【０００４】
したがって、メモリアクセス要求を処理するための改良された方法が有利となる。
【課題を解決するための手段】
【０００５】
以下の説明は、メモリアクセス要求のアービトレーションに関する多数の特定の実施形態および詳細を提供することによって、本開示を完全に理解できることを目的とする。しかし、本開示がこれらの特定の実施形態や詳細に制限されることはなく、これらは例示に過ぎないことが理解される。当業者が、既知のシステムおよび方法に鑑みて、特定の設計やその他の要求に従って、意図した目的のために本開示の使用を評価して、いかなる数の別の実施形態において利益を得ることも更に理解される。
【０００６】
本開示の一態様によれば、メモリアクセス要求の遅延アービトレーションのための方法は、メモリコントローラに第１のメモリアクセス要求をディスパッチするステップと、前記第１のメモリアクセスオペレーションが示すメモリアクセス要求の完了を予測したことに応答して、前記メモリコントローラに第２のメモリアクセス要求をディスパッチするステップと、を有する。
【０００７】
本開示の別の態様によれば、第１の時点において、バスインタフェースユニットで第１のメモリアクセス要求を受け取るステップと、前記第１の時点の後の第２の時点において、メモリコントローラに第２のメモリアクセス要求をディスパッチするステップと、前記第２の時点の後の第３の時点において、前記バスインタフェースユニットで第３のメモリアクセス要求を受け取るステップと、前記第３の時点の後の第４の時点において、前記メモリコントローラに前記第３のメモリアクセス要求をディスパッチするステップと、前記第４の時点の後の第５の時点において、前記メモリコントローラに前記第１のメモリアクセス要求をディスパッチするステップと、を有する方法が提供される。
【０００８】
本開示の追加の態様によれば、メモリに結合され、メモリアクセス要求を処理するためのメモリコントローラと、前記メモリコントローラに結合されたバスインタフェースユニットと、を有するシステムが提供される。一実施形態では、前記バスインタフェースユニットは、１つ以上のメモリアクセス要求を記憶するためのバッファと、メモリアクセス要求を受け取るために前記バッファに結合された第１の入力、および前記メモリコントローラから信号を受け取る第２の入力を有するアービタと、を有し、前記アービタは、前記信号に応答して、前記メモリコントローラにディスパッチするために第２のメモリアクセス要求を選択する。前記メモリコントローラは、前記メモリコントローラに既にディスパッチされている第１のメモリアクセス要求が示すメモリアクセスオペレーションの完了が予測されると、前記信号を提供する。
【０００９】
本開示の目的および利点は、添付の図面と併せて読めば、以下の詳細な説明から、当業者にとって明らかであろう。添付の図面では、同じ要素を示すのに同じ参照符号を使用する。
【発明を実施するための最良の形態】
【００１０】
ここで図１を参照すると、本開示の少なくとも１つの実施形態によって、メモリアクセス要求の遅延ディスパッチを利用する例示的な処理システム１００が示されている。図に示した例では、システム１００は、メモリコントローラ１０２、メモリ１０４（ＤＲＡＭやＳＲＡＭなど）、バスインタフェースユニット１０６、およびＢＩＵ１０６に接続された、例えば中央処理装置（ＣＰＵ）１０８、グラフィックエンジン１１０、１つ以上のダイレクトメモリアクセス（ＤＭＡ）マスタ１１２などの１つ以上の部品を備える。ＤＭＡマスタ１１２は、１つ以上のデバイス１１４，１１６に接続されうる。一実施形態では、メモリコントローラ１０２は、キューのエントリを１つ以上（例えば、キューのエントリ１２２，１２４）含むメモリアクセス要求キュー１２０、セレクタ１２６、およびスケジュールマネージャ１２８を備える。一実施形態では、ＢＩＵ１０６は、アービタ１３０と、ＢＩＵ１０６に接続されたデバイス（ＣＰＵ１０８、グラフィックエンジン１１０、およびＤＭＡマスタ１１２など）からのメモリアクセス要求をバッファするためのメモリアクセス要求キュー１３２とを備える。一実施形態では、アービタ１３０は、スケジュールマネージャ１２８またはメモリコントローラ１０２のその他の部品によって提供されるｄｉｓｐａｔｃｈ＿ｒｅｑ信号１３４に応答する。
【００１１】
動作時に、ＢＩＵ１０６は、ＢＩＵ１０６に接続されたデバイスの１つ以上からメモリアクセス要求を受け取り、このメモリアクセス要求をキュー１３２にバッファする。アービタ１３０は、メモリアクセス要求に割り当てられた優先度、あるいはＢＩＵ１０６でメモリアクセス要求を受け取った順などのさまざまな特徴に基づいて、キュー１３２から、処理するメモリアクセス要求を選択し、これをメモリコントローラ１０２にディスパッチする。キュー１２０にバッファされたメモリアクセス要求は、順に処理されることもあれば、優先度や、スケジューリングマネージャ１２８によって決定されたスケジュールなどのメモリアクセス要求の特定の特徴に基づいて、（セレクタ１２６を使用して）アウトオブオーダーで処理されうる。スケジュールマネージャ１２８は、選択されたメモリアクセス要求を受けると、この選択されたメモリアクセス要求を処理して、選択されたメモリアクセス要求が示すメモリアクセスオペレーションを実行する。メモリアクセスオペレーションには、例えば、メモリ１０４にデータを書き込むライトオペレーションや、メモリ１０４からデータを読み出すリードオペレーションなどがある。
【００１２】
スケジュールマネージャ１２８が、選択されたメモリアクセス要求の処理を開始すると、メモリコントローラ１０２は、処理されようとしている、選択されたメモリアクセス要求がなくなって空になったキューのエントリ１２２，１２４の１つから、あるいはセレクタ１２６を介して直接ＢＩＵ１０６から、別のメモリアクセス要求を受け取れるようになる。しかし、一実施形態では、スケジュールマネージャ１２８は、メモリコントローラ１０２が、ＢＩＵ１０６から次のメモリアクセス要求を受け取ることができるようになった直後に、ディスパッチする次のメモリアクセス要求をアービタ１３０に選択させるのではなく、メモリ１０４を使用して現在処理されているメモリアクセスオペレーションの完了に近づくまで（すなわち、メモリアクセスオペレーションの完了が予測されるまで）、次のメモリアクセス要求をアービタ１３０に通知するのを遅らせる。
スケジュールマネージャ１２８は、現在のメモリアクセスオペレーションの完了が近いと判定すると、ｄｉｓｐａｔｃｈ＿ｒｅｑ信号１３４をアサートして、メモリコントローラ１０２に次のメモリアクセス要求をディスパッチするように、アービタ１３０に通知する。アービタ１３０は、信号１３４に応応答して、優先度やタイムスタンプ等の１つ以上の特徴に基づいてキュー１３２からメモリアクセス要求を選択して、一時的にバッファしてから処理するために、選択されたメモリアクセス要求をメモリコントローラ１０２にディスパッチする。このため、図１の処理システム１００は、従来のシステムが実施しているように、メモリコントローラ１０２にメモリアクセス要求の空きができると直ちに、メモリアクセス要求をディスパッチするようにアービタ１３０に指示する代わりに、遅延させたアービトレーション法を実装している。これにより、メモリコントローラにディスパッチされる次のメモリアクセス要求が、メモリアクセス要求を選択すべきほぼ直前の時点まで選択されない。この結果、メモリコントローラ１０２が、メモリアクセス要求を受け取り可能となった最初の時点の後に、ＢＩＵ１０６が受け取る優先度の高いメモリアクセス要求が、アービタ１３０によって選択されて、メモリコントローラ１０２にディスパッチされるようになり、システム１００の効率が向上する。
【００１３】
スケジュールマネージャ１２８は、さまざまな方法を使用して、メモリアクセス要求をディスパッチするようにアービタ１３０に通知するために、メモリアクセスオペレーションの完了が予測されることを判定することができる。一実施形態では、メモリアクセスオペレーションの完了の予測は、メモリ１０４とメモリコントローラ１０２間の信号伝達によって行うことができる。例えば、リードアクセスオペレーション中に、メモリ１０４は、次のクロックサイクル中にデータがラッチされるように、メモリコントローラ１０２とメモリ１０４間を接続しているバス線において、要求されたデータが利用可能であることを示す信号を、メモリコントローラ１０２に提供しうる。したがって、この例では、メモリコントローラ１０２は、メモリ１０４からこの信号を受けるとｄｉｓｐａｔｃｈ＿ｒｅｑ信号１３４をアサートして、次のメモリアクセス要求のディスパッチを開始するようにアービタ１３０に通知しうる。別例では、メモリアクセスオペレーションにはライトアクセスオペレーションが含まれており、信号伝達には、メモリコントローラへのメモリに対する、メモリコントローラ１０２とメモリ１０４間を接続しているバスに書込データが出力中であることを示す信号が含まれる。メモリ１０４は、これに応答して、次のサイクル中にこのデータをラッチしうる。この例では、スケジュールマネージャ１２８が、メモリ１０４に、あるいはメモリ１０４からメモリコントローラ１０２に提供される、書込データが利用可能であるという信号がアサートされると、信号１３４をアサートすることができる。
別の実施形態では、メモリコントローラ１０２によって処理されたメモリアクセスオペレーションの一部またはその全てが、所定の期間行われ得る。例えば、メモリコントローラ１０２は、特定のタイプのリードアクセスオペレーションが、決まったクロックサイクルを要することを認識していてもよい。したがって、このようなリードアクセスオペレーションの完了の予測は、メモリアクセスオペレーションの実際の完了が予測される前の所定の期間で表すことができる。例えば、メモリアクセスオペレーションが８クロックサイクルを要することがわかっている場合、このメモリアクセスオペレーションの完了の予測は、例えば、７番目のクロックサイクルで発生し、この時点で、スケジュールマネージャ１２８は、ｄｉｓｐａｔｃｈ＿ｒｅｑ信号１３４をアサートして、メモリコントローラ１０２に次のメモリアクセス要求をディスパッチするように、アービタ１３０に通知しうる。
【００１４】
図２を参照すると、本開示の少なくとも１つの実施形態による、遅延させたメモリアクセス要求をメモリコントローラにディスパッチするための例示的な方法２００が示されている。この方法２００はブロック２０２から開始し、メモリコントローラ１０２が、ＢＩＵ１０６から受け取った選択されたメモリアクセス要求が示す、メモリ１０４へのメモリアクセスオペレーションを開始する。ブロック２０４において、スケジュールマネージャ１２８はこのメモリアクセスオペレーションをモニタして、スケジュールマネージャ１２８が、現在のメモリアクセスオペレーションの予測された完了時点が識別されたことに応答して、ブロック２０６において、スケジュールマネージャ１２８は、ｄｉｓｐａｔｃｈ＿ｒｅｑ信号１３４をアサートするか、あるいは別の方法によって、ＢＩＵ１０６から次のメモリアクセス要求のディスパッチを開始するように、アービタ１３０に通知する。ブロック２０８において、アービタ１３０は、アサートされたｄｉｓｐａｔｃｈ＿ｒｅｑ信号１３４を受け取る。これに応答して、ブロック２１０において、アービタ１３０は、メモリコントローラ１０２にディスパッチするために、キュー１３２からメモリアクセス要求を選択する。上記のように、アービタ１３０は、例えば、ＢＩＵ１０６でメモリアクセス要求を受け取った優先度順などさまざまな特徴に基づいて次のメモリアクセス要求を選択しうる。ブロック２１２において、アービタ１３０は、選択したメモリアクセス要求をメモリコントローラ１０２にディスパッチする。ブロック２１４において、ディスパッチされたメモリアクセス要求が、メモリコントローラ１０２で受信され、このメモリアクセス要求キュー１２０にバッファされるか、あるいは、即時に処理するために、セレクタ１２６を使用してスケジュールマネージャ１２８に直接提供される。このセレクタは、スケジュールマネージャ１２８またはメモリコントローラ１０２の他の部品によって制御されうる。
【００１５】
図３，４を参照すると、本開示の少なくとも１つの実施形態による、図１のシステムでの図２の方法の例示的な実装が示されている。図３は、ＢＩＵ１０６でのメモリアクセス要求の受信を示すシーケンス３０２、メモリコントローラにメモリアクセス要求をディスパッチする従来の方法を示すシーケンス３０４、および本開示の少なくとも１つの実施形態によるメモリコントローラ１０２にメモリ要求をディスパッチする方法を示すシーケンス３０６を有するタイミングチャート３００である。また、図３は、アービタ１３０によって保持される、メモリコントローラ１０２にディスパッチするメモリアクセス要求を選択する際にアービタ１３０によって使用されうる例示的な特徴図３１０も示している。図４は、従来のディスパッチシーケンス３０４と、遅延ディスパッチシーケンス３０６の両方について、タイミングチャート３００のさまざまな時点における、メモリコントローラ１０２のキュー１２０の状態の例を示している。説明を簡単にするために、メモリコントローラ１０２によって、その後に処理されるために、キュー１２０の２つのキューエントリ１２２，１２４からメモリアクセス要求が取得されると仮定する。
【００１６】
シーケンス３０２は、ＢＩＵ１０６でのメモリアクセス要求Ｒ１〜Ｒ４の受信を示している。図に示すように、メモリアクセス要求Ｒ１とＲ２は、時点Ａの前に受信され、メモリアクセス要求Ｒ３とＲ４は時点Ａと時点Ｂの間に受信される。図示はされていないが、ＢＩＵ１０６でメモリアクセス要求Ｒ１が受信される前に、要求Ｒ０とＲ６が受信されていると仮定する。図３１０が示すように、メモリアクセス要求Ｒ６とＲ０の優先度は１であり、メモリアクセス要求Ｒ１の優先度は２であり、メモリアクセス要求Ｒ２の優先度は３であり、メモリアクセス要求Ｒ３の優先度は０であり、メモリアクセス要求Ｒ４の優先度は１である。この場合、優先度０は最も優先度が高く、優先度３は最も優先度が低い。タイミングチャート３００では、時点Ａ，Ｂ，Ｃは、メモリコントローラ１０２において、メモリコントローラ１０２が、メモリアクセス要求が示すメモリアクセスオペレーションの処理を開始する時点であり、このため、第１のメモリコントローラ１０２がＢＩＵ１０６から別のメモリアクセス要求を受け取れるようになる時点である。時点Ａ’，Ｂ’，Ｃ’は、スケジュールマネージャ１２８が、処理中のメモリアクセスオペレーションの予測される完了時点を同定する時点をそれぞれ示している。
【００１７】
上記したように、従来のメモリディスパッチ法は、メモリコントローラが別のメモリアクセス要求を受け取れるようになった直後に、メモリコントローラにメモリアクセス要求がディスパッチされるように実装されている。この従来の方法を示すシーケンス３０４が示すように、時点Ａの直後に、この時点でＢＩＵにバッファされている最も優先度が高いメモリアクセス要求（この例ではメモリアクセス要求Ｒ１）が、処理のためメモリコントローラにディスパッチされる。同様に、時点Ｂで、従来の方法のメモリコントローラで再び空きが生じると、従来のディスパッチシーケンス３０４は、時点Ｂでバッファされている最も優先度が高いメモリアクセス要求（この場合はメモリアクセス要求Ｒ３）がディスパッチのために選択されることを示している。しかし、上記のように、ディスパッチシーケンス３０４が示すこの従来の方法は、多くの場合、メモリアクセス要求のスケジューリングの効率がさほど高くない。例えば、メモリアクセス要求Ｒ３は、ＣＰＵ１０８（図１）からの優先度の高いメモリアクセス要求であるが、メモリアクセス要求Ｒ１とＲ２は、例えば、ＤＭＡマスタ１１２に接続されるデバイスからの優先度の低いメモリアクセス要求であるとする。従来のディスパッチシーケンス３０４では、（メモリアクセス要求Ｒ３はメモリアクセス要求Ｒ１よりも優先度が高いにもかかわらず）、メモリ要求Ｒ３がディスパッチおよび処理される前に、メモリアクセス要求Ｒ１がディスパッチされて、メモリコントローラ１０２で処理される。これは、メモリコントローラが、バスインタフェースユニットからメモリアクセス要求を受け取れるように最初になった時点Ａの後のある時点で、メモリアクセス要求Ｒ３が受信されて、受け取りが後になったために、ディスパッチのために選択できなかったからである。
【００１８】
これに対して、図２の方法２００の例示的な実装を示すディスパッチシーケンス３０６は、メモリコントローラ１０２でメモリアクセス要求のアービトレーションと選択を可能なほぼ最後の時点まで（メモリコントローラ１０２によって実行されているメモリアクセスオペレーションの完了の予測によって示すことができる）遅らせることによって、メモリアクセス要求のより有効なアービトレーションを実現することができる。例を挙げると、スケジュールマネージャ１２８は、時点Ａ’において、現在処理中のメモリアクセスオペレーションの完了が近いと判定する。これに応答して、スケジュールマネージャ１２８は、ｄｉｓｐａｔｃｈ＿ｒｅｑ信号１３４をアサートし、これをアービタ１３０が受け取る。信号１３４がアサートされると、アービタ１３０は、キュー１３０内のその時点で利用可能なメモリアクセス要求（すなわち、メモリアクセス要求Ｒ６とＲ０）から選択する。この場合、メモリアクセス要求Ｒ０はメモリアクセス要求Ｒ６よりも優先度が高いため、アービタ１３０によって、メモリコントローラ１０２にディスパッチするために選択される。シーケンス３０６は、時点Ａまで進み、この時点で、メモリコントローラ１０２は、現在のメモリアクセスオペレーションを完了するが、従来の方法と異なり、メモリコントローラ１０２が、別のメモリアクセス要求を受け取れるようになっても、スケジュールマネージャ１２８が、次のメモリアクセス要求を通知しない。その代わり、スケジュールマネージャ１２８は、時点Ｂ’で、次のメモリアクセスオペレーションの完了が予測されるまで待機し、その時点で、信号１３４をアサートする。時点Ｂ’で信号１３４がアサートされると、アービタは、メモリコントローラ１０２にディスパッチする次のメモリアクセス要求を選択する。シーケンス３０２に示すように、メモリコントローラ１０２が、次のメモリアクセス要求を受け取れるように最初になった時点Ａと、メモリコントローラ１０２で現在のメモリアクセスオペレーションの完了が近い時点Ｂとの間に遅れがあるため、ＢＩＵ１０６が優先度の高いメモリアクセス要求Ｒ３を受け取ることが可能となる。したがって、時点Ｂ’で信号１３４がアサートされると、アービタ１３０は、キュー１３２でメモリアクセス要求Ｒ３を利用可能であり、これが、キュー１３２で優先度が最も高い要求であるため、アービタ１３０は、時点Ｂ’の後に、メモリコントローラ１０２にディスパッチするためにメモリアクセス要求Ｒ３を選択する。同様に、時点Ｃでメモリコントローラ１０２によって実行されているメモリアクセスオペレーションの完了が近くなると、スケジュールマネージャ１２８は信号１３４をアサートし、これに対して、アービタ１３０はメモリコントローラ１０２にディスパッチするためにメモリアクセス要求Ｒ１を選択する。
【００１９】
図４が示すように、メモリアクセス要求の遅延させた選択とディスパッチの結果、一般に、メモリコントローラ１０２でのメモリアクセス要求のスケジューリングの効率が向上する。例を挙げると、従来のディスパッチシーケンス３０４の時点Ｂにおいて、メモリコントローラは、処理するメモリアクセス要求をキューから選択する。メモリアクセスキューの状態４０２が示すように、従来の方法を利用しているメモリコントローラは、時点Ｂで、キューにメモリアクセス要求Ｒ１とＲ０を有しており、通常は、メモリアクセス要求Ｒ０のほうが優先度が高いため、処理のために選択される。その後、従来の方法を利用しているメモリコントローラのメモリアクセス要求キューにはメモリアクセス要求Ｒ１とＲ３が含まれており、通常は、メモリアクセス要求Ｒ３が優先度が最も高いため選択される。これに対して、メモリアクセスキューの状態４０４が示すように、ここに開示したメモリアクセス要求の遅延ディスパッチ法を利用しているメモリコントローラ１０２は、時点Ｂで、キュー１２０にメモリアクセス要求Ｒ３を有しており、通常は、メモリアクセス要求Ｒ３が処理のために選択され、時点Ｃで、キュー１２０にはメモリアクセス要求Ｒ１とＲ０が含まれており、通常は、メモリアクセス要求Ｒ０が処理のために選択される。したがって、図３，４に示すように、ここに開示したメモリアクセス要求の遅延ディスパッチ法の結果、優先度の最も高いメモリアクセス要求Ｒ３が、従来のディスパッチ法を利用した処理システムよりも先に処理されるようになる。このため、ここに開示したメモリアクセス要求の遅延ディスパッチ法によって、メモリアクセス要求の順序付けが、従来の方法と比較して効率的となり、これにより、メモリコントローラがメモリアクセス要求を受け取れるようになった直後に、メモリアクセス要求がディスパッチされるようになる。
【００２０】
本開示の他の実施形態、使用および利点は、ここに開示した開示の詳細と実施を鑑みて、当業者にとって明らかとなるであろう。明細書ならびに図面は例に過ぎず、したがって、本開示の範囲は、添付の特許請求の範囲とその均等物によってのみ制限されることが意図されるべきである。
【図面の簡単な説明】
【００２１】
【図１】本開示の少なくとも１つの実施形態によるメモリアクセス要求の遅延ディスパッチ法を使用する例示的な処理システムを示すブロック図である。
【図２】本開示の少なくとも１つの実施形態によるメモリアクセス要求の遅延ディスパッチのための例示的な方法を示すフローチャートである。
【図３】本開示の少なくとも１つの実施形態による図２の方法の例示的な実装を示すタイミングチャートおよび優先度チャートである。
【図４】本開示の少なくとも１つの実施形態による図３のタイミングチャートに対応するメモリコントローラキューの状態の例を示す図である。
【図１】
2009508215.tif 000003
【図２】
2009508215.tif 000004
【図３】
2009508215.tif 000005
【図４】
2009508215.tif 000006
【国際調査報告】
2009508215.tif 000007
2009508215.tif 000008