(57)【要約】  本開示は、弱く順序付けられた処理システムにおいて、強く順序付けられたメモリアクセス要求を強制するための、弱く順序付けられた処理システムおよび方法に向けられている。処理システムは、複数のメモリデバイスと、複数のプロセッサとを含む。プロセッサのそれぞれは、１以上のメモリデバイスに対するメモリアクセス要求を発生させるように構成され、メモリアクセス要求のそれぞれは、強く順序付けられた要求を示すようにアサートされ得る属性を持っている。処理システムは、プロセッサをメモリデバイスに対してインターフェイスするように構成されたバス相互接続をさらに含み、バス相互接続は、属性に基づいてメモリアクセス要求における順序付け制約を強制するようにさらに構成されている。【選択図】      図３
2008535068.tif 000002
【特許請求の範囲】
【請求項１】
弱く順序付けられた処理システムにおいて、
複数のメモリデバイスと、
プロセッサのそれぞれが１以上のメモリデバイスに対するメモリアクセス要求を発生させるように構成され、前記メモリアクセス要求のそれぞれは、強く順序付けられた要求を示すようにアサートされ得る属性を持っている、複数のプロセッサと、
前記プロセッサを前記メモリデバイスに対してインターフェイスするように構成され、前記属性に基づいて前記メモリアクセス要求における順序付け制約を強制するようにさらに構成されている、バス相互接続と
を具備する弱く順序付けられた処理システム。
【請求項２】
発信プロセッサにアクセス可能な他のメモリデバイスのそれぞれに対してメモリバリアを送ることによって、前記発信プロセッサからターゲットメモリデバイスへの強く順序付けられたメモリアクセス要求に対して、順序付け制約を強制するように前記バス相互接続がさらに構成されている、請求項１記載の弱く順序付けられた処理システム。
【請求項３】
メモリバリアを受信している前記メモリデバイスのそれぞれからメモリバリア肯定応答が受信されるまで、次のメモリアクセス要求の送信を遅延させることにより、前記強く順序付けられたメモリアクセス要求に対して、順序付け制約を強制するように前記バス相互接続がさらに構成されている、請求項２記載の弱く順序付けられた処理システム。
【請求項４】
前記強く順序付けられたメモリアクセス要求をそのメモリ属性とともに前記ターゲットメモリデバイスに対して送ることによって、発信プロセッサからターゲットメモリデバイスへの強く順序付けられたメモリアクセス要求に対して、順序付け制約を強制するように前記バス相互接続がさらに構成されている、請求項１記載の弱く順序付けられた処理システム。
【請求項５】
前記ターゲットメモリデバイスからメモリアクセス肯定応答が受信されるまで、次のメモリアクセス要求の送信を遅延させることにより、前記強く順序付けられたメモリアクセス要求に対して、順序付け制約を強制するように前記バス相互接続がさらに構成されている、請求項４記載の弱く順序付けられた処理システム。
【請求項６】
前記発信プロセッサにアクセス可能な他のメモリデバイスのそれぞれに対してメモリバリアを送ることによって、前記強く順序付けられたメモリアクセス要求に対して、順序付け制約を強制するように前記バス相互接続がさらに構成されている、請求項４記載の弱く順序付けられた処理システム。
【請求項７】
前記メモリバリアを受信しているメモリデバイスのそれぞれからメモリバリア肯定応答が受信されるまで、次のメモリアクセス要求の送信を遅延させることにより、前記強く順序付けられたメモリアクセス要求に対して、順序付け制約を強制するように前記バス相互接続がさらに構成されている、請求項６記載の弱く順序付けられた処理システム。
【請求項８】
前記ターゲットメモリデバイスからメモリアクセス肯定応答が受信されるまで、次のメモリアクセス要求の送信を遅延させることにより、前記強く順序付けられたメモリアクセス要求に対して、順序付け制約を強制するように前記バス相互接続がさらに構成されている、請求項６記載の弱く順序付けられた処理システム。
【請求項９】
弱く順序付けられた処理システムにおいて、
複数のメモリデバイスと、
プロセッサのそれぞれが１以上のメモリデバイスに対するメモリアクセス要求を発生させるように構成され、前記メモリアクセス要求のそれぞれは、強く順序付けられた要求を示すようにアサートされ得る属性を持っている、複数のプロセッサと、
前記プロセッサを前記メモリデバイスに対してインターフェイスするための手段と、前記属性に基づいて前記メモリアクセス要求における順序付け制約を強制するための手段とを持っている、バス相互接続と
を具備する弱く順序付けられた処理システム。
【請求項１０】
バス相互接続において、
プロセッサのそれぞれが１以上のメモリデバイスに対するメモリアクセス要求を発生させるように構成され、前記メモリアクセス要求のそれぞれは、強く順序付けられた要求を示すようにアサートされ得る属性を持っている、弱く順序付けられた処理システム中で、複数のプロセッサを複数のメモリデバイスに対してインターフェイスするように構成されたバススイッチと、
前記属性に基づいて前記メモリアクセス要求における順序付け制約を強制するように構成された制御装置と
を具備するバス相互接続。
【請求項１１】
発信プロセッサにアクセス可能な他のメモリデバイスのそれぞれに対してメモリバリアを送ることによって、前記発信プロセッサからターゲットメモリデバイスへの強く順序付けられたメモリアクセス要求に対して、順序付け制約を強制するように前記制御装置がさらに構成されている、請求項１０記載のバス相互接続。
【請求項１２】
メモリバリアを受信している前記メモリデバイスのそれぞれからメモリバリア肯定応答が受信されるまで、次のメモリアクセス要求の送信を遅延させることにより、前記強く順序付けられたメモリアクセス要求に対して、順序付け制約を強制するように前記制御装置がさらに構成されている、請求項１１記載のバス相互接続。
【請求項１３】
前記強く順序付けられたメモリアクセス要求をそのメモリ属性とともに前記ターゲットメモリデバイスに対して送ることによって、発信プロセッサからターゲットメモリデバイスへの強く順序付けられたメモリアクセス要求に対して、順序付け制約を強制するように前記制御装置がさらに構成されている、請求項１０記載のバス相互接続。
【請求項１４】
前記ターゲットメモリデバイスからメモリアクセス肯定応答が受信されるまで、次のメモリアクセス要求の送信を遅延させることにより、前記強く順序付けられたメモリアクセス要求に対して、順序付け制約を強制するように前記制御装置がさらに構成されている、請求項１３記載のバス相互接続。
【請求項１５】
弱く順序付けられた処理システム中で、強く順序付けられたメモリアクセス要求を強制する方法において、
複数のプロセッサから、複数のメモリデバイスに対するメモリアクセス要求を受信し、前記メモリアクセス要求の１つは、強く順序付けられたメモリアクセス要求を示しているメモリ属性を持っていることと、
前記属性に応答して他のメモリアクセス要求に関連して、前記強く順序付けられたメモリアクセス要求における順序付け制約を強制することと
を含む方法。
【請求項１６】
前記強く順序付けられた要求は、ターゲットメモリデバイスに対するアクセスを要求している発信プロセッサからのものであり、前記発信プロセッサに対してアクセス可能な他のメモリデバイスのそれぞれに対してメモリバリアを送ることにより、前記順序付け制約を強制する、請求項１５記載の方法。
【請求項１７】
メモリバリアを受信している前記メモリデバイスのそれぞれからメモリバリア肯定応答が受信されるまで、次のメモリアクセス要求の送信を遅延させることにより、前記順序付け制約が強制される、請求項１６記載の方法。
【請求項１８】
前記強く順序付けられた要求は、ターゲットメモリデバイスに対するアクセスを要求している発信プロセッサからのものであり、前記強く順序付けられたメモリアクセス要求をそのメモリ属性とともに前記ターゲットメモリデバイスに対して送ることによって、前記順序付け制約を強制する、請求項１５記載の方法。
【請求項１９】
前記ターゲットメモリデバイスからメモリアクセス肯定応答が受信されるまで、次のメモリアクセス要求の送信を遅延させることにより、前記順序付け制約を強制する、請求項１８記載の方法。
【請求項２０】
前記発信プロセッサに対してアクセス可能な他のメモリデバイスのそれぞれに対してメモリバリアを送ることにより、前記順序付け制約を強制する、請求項１９記載の方法。
【発明の詳細な説明】
【関連出願】
【０００１】
本特許出願は２００５年３月２３日に出願され、その譲受人に対して譲渡され、ここに参照により明示的に組み込まれている、“有効な強く順序付けられたトランザクションのための方法と装置”と題する仮出願第６０/６６４，７４９号に対して優先権を主張する。
【発明の分野】
【０００２】
本開示は一般的に処理システムに関連し、さらに詳細には、弱く順序付けられた処理システムにおいて強く順序付けられた要求を強制するための方法および装置に関連する。
【発明の背景】
【０００３】
コンピュータおよび他の現代の処理システムは、きわめて複雑なタスクを、キーパッドの数ストロークのみで実行可能にすることにより、エレクトロニクス業界を改革してきた。これらのきわめて複雑なタスクは、バスを使用して素早く有効な方法でお互いに通信する多数のデバイスを必要とすることが多い。バスは、処理システム中のデバイスの間の共有通信リンクを提供する。
【０００４】
処理システムにおいてバスに接続されるデバイスのタイプは、特定の応用に依拠して異なっていてもよい。一般的に、バス上の送出デバイスはプロセッサであってもよく、バス上の受信デバイスはメモリデバイスまたはメモリマッピングされたデバイスであってもよい。これらのシステムでは、メモリ動作が順不同で実行されることを許容することによって、プロセッサが性能の利点を達成することが多い。例えば、新しいページが開かれる前に、メモリ中の同じページに対するすべての動作を実行できるようにするために、メモリ動作のシーケンスを再順序付けしてもよい。メモリ動作を再順序付けすることを許容された処理システムは、一般的に“弱く順序付けられた”処理システムとして呼ばれる。
【０００５】
特定の例では、メモリ動作の再順序付けは、プログラムのふるまいに予想不可能に影響を及ぼすかもしれない。例えば、アプリケーションは、あるメモリロケーションからプロセッサが読み出す前に、そのメモリにデータを書き込むようにプロセッサに要求するかもしれない。弱く順序付けられた処理システムにおいては、このことが発生するという補償はない。この結果は受け入れできないかもしれない。
【０００６】
弱く順序付けられた処理システムにおいて、順序付けられたメモリ動作を実行するために、さまざまな技術が採用されてきた。１つの技術は、特定のメモリ動作より前のすべてのメモリ動作が実行されるまで、単純にその特定のメモリ動作を遅らせることである。先の例では、プロセッサがメモリロケーションに書き込む後まで、プロセッサは読み出し命令を発行することを遅らせてもよい。他の技術は、順序付けられたメモリ動作が要求されるときに、メモリバリアと呼ばれるバスコマンドを使用することである。“メモリバリア”を使用して、メモリバリアの前にプロセッサによって発行されたすべてのメモリアクセス要求が、メモリバリアの後にプロセッサによって発行されたすべてのメモリアクセス要求より前に確実に実行されるようにしてもよい。さらに、先の例では、読み出し要求を発行する前に、プロセッサによってメモリに対してメモリバリアを送ることができる。このことは、プロセッサが同じメモリロケーションから読み出す前に、プロセッサがそのメモリに確実に書き込むようにするだろう。
【０００７】
両方の技術が有効であるが、システム性能の観点からは非効率的である。メモリバリアは、複数のメモリデバイスを備える処理システムにおいて、特に非効率であるかもしれない。これらの処理システムにおいては、メモリ動作の順序付け制約を強制するために、プロセッサがアクセスすることができるすべてのメモリデバイスに対して、プロセッサによってメモリバリアを発行する必要があるだろう。したがって、弱く順序付けられた処理システムにおいて、順序付けられたメモリ動作を実行するための、より効率的な方法に対する継続的な要求がある。
【発明の概要】
【０００８】
弱く順序付けられた処理システムの１つの観点を開示する。処理システムは、複数のメモリデバイスと、複数のプロセッサとを含む。プロセッサのそれぞれは、１以上のメモリデバイスに対するメモリアクセス要求を発生させるように構成され、メモリアクセス要求のそれぞれは、強く順序付けられた要求を示すようにアサートされ得る属性を持っている。処理システムは、プロセッサをメモリデバイスに対してインターフェイスするように構成されたバス相互接続をさらに含み、バス相互接続は、属性に基づいてメモリアクセス要求における順序付け制約を強制するようにさらに構成されている。
【０００９】
弱く順序付けられた処理システムの他の観点を開示する。処理システムは、複数のメモリデバイスと、複数のプロセッサとを含む。プロセッサのそれぞれが１以上のメモリデバイスに対するメモリアクセス要求を発生させるように構成され、メモリアクセス要求のそれぞれは、強く順序付けられた要求を示すようにアサートされ得る属性を持っている。処理システムは、プロセッサをメモリデバイスに対してインターフェイスする手段と、属性に基づいてメモリアクセス要求における順序付け制約を強制するための手段とを持っているバス相互接続をさらに含む。
【００１０】
バス相互接続の１つの観点を開示する。バス相互接続は、弱く順序付けられた処理システム中で、複数のプロセッサを複数のメモリデバイスに対してインターフェイスするように構成されたバススイッチを含む。プロセッサのそれぞれが１以上のメモリデバイスに対するメモリアクセス要求を発生させるように構成され、メモリアクセス要求のそれぞれは、強く順序付けられた要求を示すようにアサートされ得る属性を持っている。バス相互接続は、属性に基づいてメモリアクセス要求における順序付け制約を強制するように構成された制御装置をさらに含む。
【００１１】
弱く順序付けられた処理システム中で、強く順序付けられたメモリアクセス要求を強制する方法を開示する。方法は、複数のプロセッサから、複数のメモリデバイスに対するメモリアクセス要求を受信することを含み、メモリアクセス要求の１つは、強く順序付けられたメモリアクセス要求を示しているメモリ属性を持っている。方法は、属性に応答して他のメモリアクセス要求に関連して、強く順序付けられたメモリアクセス要求における順序付け制約を強制することをさらに含む。
【００１２】
本発明の他の実施形態は、以下の詳細な説明から当業者にとって容易に明らかになり、以下の詳細な説明では実例としてのみ、本発明のさまざまな実施形態を示し、説明したことが理解される。本発明の精神と範囲を逸脱することなく、本発明およびそのいくつかの詳細は、他の実施形態に適用し得ることが理解されるべきである。したがって、添付の図面および詳細な説明は例示的なものであって、制限的なものではないとして考えるべきである。
【００１３】
本発明のさまざまな観点を添付の図面において、制限としてではなく、例として図示する。
【実施形態の詳細な説明】
【００１４】
添付の図面と関連して以下で述べる詳細な説明は、本発明のさまざまな実施形態を説明することを意図しており、本発明が実現されてもよい唯一の実施形態を表すことを意図していない。詳細な説明は、本発明の完全な理解をもたらす目的のために特定の詳細を含んでいる。しかしながら、本発明はこれらの特定の詳細なしで実現されてもよいことが当業者に明らかになるだろう。いくつかの例では、本発明の概念をあいまいにすることを避けるために、周知の構造および構成部品をブロック図の形態で示した。
【００１５】
図１は、弱く順序付けられた処理システムの例を図示する概念的ブロック図である。処理システム１００は、コンピュータ、コンピュータ上に存在する物、または、情報を処理、取得、記憶することができる他の任意のシステムであってもよい。処理システム１００は、スタンドアローンシステムであってもよく、あるいは、代わりに、ワイヤレスもしくはワイヤード電話機、パーソナルデジタルアシスタント（ＰＤＡ）、デスクトップコンピュータ、ラップトップコンピュータ、ゲームコンソール、ページャー、モデム、カメラ、自動車装置、産業装置、ビデオ装置、オーディオ装置、または、処理能力を要求している他の任意の適切なデバイスのような、デバイスに組み込まれていてもよい。処理システム１００は、集積回路、集積回路の一部、または、複数の集積回路にわたって分散されたものとして実現してもよい。代わりに、処理システム１００は、ディスクリート部品で、または、ディスクリート回路と集積回路の何らかの組合せで実現してもよい。当業者は各特定の応用に対して、処理システム１００をどのように最適に実現すべきかを理解するだろう。
【００１６】
バス１０６を通して複数のメモリデバイス１０４ａ−１０４ｃと通信している複数のプロセッサ１０２ａ−１０２ｃで、処理システム１００を示した。特定の応用に対して要求される、プロセッサおよびメモリデバイスの実際の数は、要求される計算能力と全体の設計制約とによって異なっていてもよい。バス相互接続１０８を使用して、ポイント−対−ポイントスイッチング接続を使用しているプロセッサ１０２ａ−１０２ｃとメモリデバイス１０４ａ−１０４ｃとの間のバストランザクションを管理してもよい。バス相互接続１０８の少なくとも１つの実施形態では、いくつかのバストランザクションが同時に発生することを許容するために、複数の直接リンクが提供されてもよい。代わりに、バス相互接続１０８は、共有バス構成をサポートするように構成されていてもよい。
【００１７】
各プロセッサ１０２ａ−１０２ｃは、例として、汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）または他のプログラム可能ロジック、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェア構成部品、あるいは、他の任意の処理エンティティまたは構成を含んでいるバスマスタリングデバイスの任意のタイプのものとして実現してもよい。１以上のプロセッサ１０２ａ−１０２ｃは、オペレーティングシステムまたは他のソフトウェアの制御のもとで、命令を実行するように構成されていてもよい。１以上のメモリデバイス１０４ａ−１０４ｃに、命令が存在していてもよい。また、メモリデバイス１０４ａ−１０４ｃに、データを記憶させてもよく、データは特定の命令を実行するためにプロセッサ１０２ａ−１０２ｃにより取得されてもよい。これらの命令の実行から結果として得られる新しいデータは、メモリデバイス１０４ａ−１０４ｃに書き戻されてもよい。各メモリデバイス１０４ａ−１０４ｃは、（示していない）メモリ制御装置と、（示していない）記憶媒体とを含んでいてもよい。記憶媒体は、ＲＡＭメモリ、ＤＲＡＭメモリ、ＳＤＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＰＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、ＣＤ−ＲＯＭ、ＤＶＤ、レジスタ、ハードディスクドライブ、リムーバブルディスク、または、他の任意の適切な記憶媒体を含んでいてもよい。
【００１８】
各プロセッサ１０２ａ−１０２ｃは、バス相互接続１０８と通信するバス１０６上の専用チャネル１０６ａ−１０６ｃとともに提供されてもよい。同様に、バス相互接続１０８は、バス上の専用チャネル１０６ｄ−１０６ｆを使用して、各メモリデバイス１０４ａ−１０４ｃと通信してもよい。例として、第１のプロセッサ１０２ａは、バス１０６上のプロセッサ１０２ａの専用チャネル１０６ａを通して、メモリアクセス要求を送ることによって、ターゲットメモリデバイス１０４ｂにアクセスすることができる。バス相互接続１０８は、メモリアクセス要求のアドレスからターゲットメモリデバイス１０４ｂを決定し、バス１０６上の適切なチャネル１０６ｅを通して、ターゲットメモリデバイス１０４ｂにその要求を転送する。“メモリアクセス要求”は、書き込み要求、読み出し要求、または他の任意のバス関連の要求であってもよい。発信プロセッサ１０２ａ−１０２ｃは、バス１０６上にペイロードとともに適切なアドレスを配置することと、書き込みイネーブル信号をアサートすることとによって、ターゲットメモリデバイス１０４ａ−１０４ｃに対して書き込み要求を発行してもよい。発信プロセッサ１０２ａ−１０２ｃは、バス１０６上に適切なアドレスを配置することと、読み出しイネーブル信号をアサートすることとによって、ターゲットメモリデバイス１０４ａ−１０４ｃに対して読み出し要求を発行してもよい。読み出し要求に応答して、ターゲットメモリデバイス１０４ａ−１０４ｃは、発信プロセッサ１０２ａ−１０２ｃにペイロードを送り返すだろう。
【００１９】
処理システム１００の少なくとも１つの実施形態において、プロセッサ１０２ａ−１０２ｃは、各メモリアクセス要求とともに“メモリ属性”を送信してもよい。“メモリ属性”は、メモリアクセス要求の特性を記述する何らかのパラメータであってもよい。メモリ属性は、アドレスチャネルを通してアドレスとともに送信してもよい。代わりに、メモリ属性は側波帯シグナリング、または、何らかの他の手法を使用して送信してもよい。メモリ属性を使用して、メモリアクセス要求が強く順序付けられているかどうかを示してもよい。“強く順序付けされた”要求は、順不同で実行することができないメモリアクセス要求を指す。
【００２０】
バス相互接続１０８を使用して、プロセッサ１０２ａ−１０２ｃからの各メモリアクセス要求に対するメモリ属性を監視してもよい。メモリ属性が、強く順序付けられたメモリアクセス要求を示す場合、バス相互接続１０８は、その要求の順序付け制約を強制してもよい。例として、第１のプロセッサ１０２ａからの、ターゲットメモリデバイス１０４ａに対するメモリアクセス要求は、メモリ属性を含んでいてもよい。バス相互接続１０８を使用して、要求が強く順序付けられているかどうかを、メモリ属性から決定してもよい。要求が強く順序付けられていることをバス相互接続１０８が決定する場合、バス相互接続１０８は、ターゲットメモリデバイス１０４ａ以外の、第１のプロセッサ１０２ａがアクセスすることができるすべてのメモリデバイス１０４ｂと１０４ｃにメモリバリアを送る。メモリアクセス要求に関係付けられたメモリ属性のために、ターゲットメモリデバイス１０４ａがメモリアクセス要求を強く順序付けられた要求として暗黙的に取り扱うことになるため、バス相互接続１０８は、メモリバリアなしでメモリアクセス要求をターゲットメモリ１０４ａに送る。
【００２１】
図２は、弱く順序付けられた処理システムにおけるバス相互接続の例を図示する機能的ブロック図である。バス相互接続が実際に実現される方法は、特定の応用および全体的なシステムに課せられた設計の制約に依存するだろう。当業者は、さまざまな設計の相互互換性と、各特定の応用に対して、ここで説明した機能をどのように実現するのが最適であるかとを理解するだろう。
【００２２】
図２を参照すると、バスレジスタ２０２を使用して、バス１０６からの情報を受信し、記憶してもよい。バスレジスタ２０２は、先入れ先出し（ＦＩＦＯ）メモリ、または、他の記憶デバイスのような、任意のタイプの記憶デバイスであってもよい。バスレジスタ２０２により受信され、記憶される情報は、任意のバス関連の情報であってもよいが、各メモリアクセス要求に対するアドレスとメモリ属性とを一般的に含み、書き込み要求のケースでは、ペイロードを含むだろう。また、各メモリアクセス要求に対するアドレスが、デコーダ２０４に対して提供される。デコーダ２０４を使用して、バスレジスタ２０２中の各メモリアクセス要求に対するターゲットメモリデバイスを決定してもよい。この決定を使用して、バススイッチ２０６を制御する信号２０５を発生させてもよい。バススイッチ２０６を使用して、そのターゲットメモリデバイスに対するバス１０６の適切なチャネルに対して、バスレジスタ２０２中の各メモリアクセス要求をデマルチプレックスしてもよい。制御装置２０８を使用して、バスレジスタ２０２からリリースされるメモリアクセス要求のタイミングを制御してもよい。
【００２３】
図３は、弱く順序付けられた処理システムのためのバス相互接続における制御装置の例を図示する機能的ブロック図である。制御装置２０８は、デコーダ２０４から受信した信号２０９に基づいて、メモリ動作の順序付け制約を強制する役割を主として果す。信号２０９は、各メモリアクセス要求に対するメモリ属性に関連している情報を含み、この情報は第１のレジスタ３０２中に記憶されてもよい。信号２０９は、発信プロセッサがアクセスすることができる、ターゲットメモリデバイス以外の各メモリデバイスを識別する情報も含む。各プロセッサによってアクセスすることができる特定のメモリデバイスは、設計段階の間に予め構成することができ、したがって、デコーダ中に配線し、または、プログラムすることができる。第２のレジスタ３０４を使用して、何らかのイベントにおいて、このデータを記憶してもよい。第１および第２のレジスタ３０２、３０４は、図３に示したように別のレジスタであってもよく、または、代わりに、単一のレジスタであってもよい。制御装置２０８のいくつかの実施形態では、他のバス相互接続機能と共有されたレジスタ中にデコーダ２０４からの情報を記憶させてもよい。各レジスタは、ＦＩＦＯまたは他の何らかの適切な記憶媒体であってもよい。
【００２４】
制御装置２０８は、バスレジスタ２０２からリリースされるメモリアクセス要求のタイミングを制御することにより、メモリ動作の順序付け制約を強制する。強く順序付けられたメモリアクセス要求がバスレジスタ２０２からリリースされる準備ができたことを示すメモリ属性に関連して、プロセスを最初に説明する。このケースでは、メモリ属性は、イネーブル信号として、第１のレジスタ３０２によってメモリバリア発生器３０６に対して提供される。同時に、第２のレジスタ３０４中に記憶されたデータが、メモリバリア発生器３０６の入力に対して提供される。上で示したように、第２のレジスタ３０４中に記憶されたデータは、発信プロセッサがアクセスすることができる、ターゲットメモリデバイス以外の各メモリデバイスを識別する情報も含む。メモリバリア発生器３０６がメモリ属性によりイネーブルされるとき、この情報を使用して、データにより識別される各メモリデバイスに対してメモリバリアを発生させる。強く順序付けられた要求を開始した発信プロセッサを識別する属性を備えるバスコマンドを発行することによって、適切なメモリデバイスに対して各メモリバリアを提供してもよい。代わりに、側波帯シグナリングを使用して、または、他の適切な手段により、適切なメモリデバイスに対してメモリバリアを提供してもよい。
【００２５】
制御装置２０８中のロジック３０８を使用して、メモリバリア肯定応答に対するメモリデバイスからのフィードバックを監視してもよい。“メモリバリア肯定応答”はメモリデバイスからの信号であり、この信号は、強く順序付けられた要求を発行する発信プロセッサから、そのメモリデバイスによってメモリバリアに先行して受信されたすべてのメモリアクセス要求が、発信プロセッサからの何らかの次のメモリアクセス要求の完了の前に計算されるだろう、ということを示す。第２のレジスタ３０４からのデータは、メモリバリア肯定応答に対してどのメモリデバイスを監視する必要があるかを決定するために、ロジック３０８によって使用される。すべてのメモリバリア肯定応答が受信されたことをロジック３０８が決定するとき、ロジック３０８は対応しているメモリアクセス要求をバスレジスタ２０２からリリースするために使用されるトリガを第１の接続２１１を通して発生させる。より詳細には、第１のレジスタ３０２からのメモリ属性が、マルチプレクサ３１０の選択入力に提供される。メモリアクセス要求が強く順序付けられていることをメモリ属性が示すとき、マルチプレクサ３１０を使用して、ロジック３０８により発生されたトリガをバスレジスタ２０２に結合する。マルチプレクサ３１０からのトリガ出力は、バススイッチ２０６のタイミングを同期させるために、第２の接続２１０を通してデコーダに結合される（図２参照）。
【００２６】
いったんメモリアクセス要求がバスレジスタからリリースされると、これはバススイッチ２０６を通してターゲットメモリデバイスへとルーティングされる（図２参照）。強く順序付けられた要求を示しているメモリ属性が、選択入力に適用されているときに、ターゲットメモリデバイスからメモリアクセス肯定応答が受信されるまで、制御装置２０８中の第２のマルチプレクサ３１２を使用して、第１および第２のレジスタ３０２、３０４からのデータのリリースを遅延させてもよい。上で説明したように、メモリアクセス要求中に含まれるメモリ属性は、ターゲットメモリデバイスの順序付け制約を強制する。すなわち、ターゲットメモリデバイスは、強く順序付けられたメモリアクセス要求を実行する前に、発信プロセッサによって発行されたすべての未解決のメモリアクセス要求を実行する。強く順序付けられた要求の実行に続いて、ターゲットメモリデバイスによって、メモリアクセス肯定応答を発生させる。メモリアクセス肯定応答は、制御装置２０８中のマルチプレクサ３１２にフィードバックされて、マルチプレクサ３１２において、バスレジスタ２０２中の次のメモリアクセス要求に対応している新しいデータを第１および第２のレジスタ３０２、３０４からリリースさせるためのトリガを発生させてもよい。バスレジスタ２０２中の対応しているメモリアクセス要求が強く順序付けられていることを示すメモリ属性を新しいデータが含んでいる場合、次に同じプロセスを繰り返す。そうでなければ、バスレジスタ２０２からメモリアクセス要求を、即座にリリースすることができる。
【００２７】
要求が弱く順序付けられていることを、第１のレジスタ３０２中の対応しているメモリ属性が示すとき、制御装置２０８は、バスレジスタ２０２からメモリアクセス要求を即座にリリースさせるように構成されている。このケースでは、メモリ属性を使用して、メモリバリア発生器３０６をディセーブルしてもよい。加えて、第１の接続２１１を通してメモリアクセス要求をリリースさせるために、メモリ属性は内部的に発生させたトリガをバスレジスタ２０２に対して結合する状態にマルチプレクサ３１０を強いる。メモリアクセス要求はバスレジスタ２０２からリリースされ、バススイッチ２０６を通してターゲットメモリデバイスに結合される（図２参照）。次のメモリアクセス要求に対応しているデータが、制御装置２０８中の第２のマルチプレクサ３１２からの内部的に発生させたトリガ出力により、次に、第１および第２のレジスタ３０２、３０４からリリースされる。
【００２８】
図４は、弱く順序付けられた処理システムのためのバス相互接続における制御装置の他の例を図示する機能的ブロック図である。この例では、メモリバリアが適切なメモリデバイスに提供されるのと同時に、制御装置２０８によって強く順序付けられたメモリアクセス要求がバスレジスタ２０２からリリースされる。より詳細には、バスレジスタ２０２中のメモリアクセス要求に対するメモリ属性が、第１のレジスタ３０２によってメモリバリア発生器３０６に対して提供される。対応しているメモリアクセス要求が強く順序付けられていることをメモリ属性が示す場合、メモリバリア発生器３０６はイネーブルされる。メモリバリア発生器３０６がイネーブルされているとき、第２のレジスタ３０４中のデータを使用して、発信プロセッサがアクセスすることができる、ターゲットメモリデバイス以外の各メモリデバイスに対してメモリバリアを発生させる。
【００２９】
メモリバリア発生器３０６がイネーブルされているときに、強く順序付けられた要求がターゲットメモリデバイスにより実行されるまで、制御装置２０８中のロジック３１４を使用して、バスレジスタ２０２から次のメモリアクセス要求がリリースされるのを防いでもよい。トリガがメモリ属性によってゲートオフされる前に、内部的に発生させたトリガが強く順序付けられたメモリ要求をバスレジスタ２０２からリリースさせることを遅延３１６を使用して許容してもよい。このようにして、発信プロセッサによりアクセス可能な他のメモリデバイスに対するメモリバリアと同時に、ターゲットメモリデバイスに対するメモリアクセス要求を提供することができる。
【００３０】
ロジック３１８を使用して、ターゲットメモリデバイスからのメモリアクセス肯定応答に対するフィードバックと、発信プロセッサによってアクセス可能な他のメモリデバイスからのメモリバリア肯定応答に対するフィードバックとを監視してもよい。第２のレジスタ３０４からのデータをロジック３１８によって使用して、メモリバリア肯定応答に対して、どのメモリデバイスを監視する必要があるかを決定する。さまざまな肯定応答が受信されたことをロジック３０８が決定するとき、ロジック３１８はバスレジスタ２０２中の次のメモリアクセス要求に対応している新しいデータを第１および第２のレジスタ３０２、３０４からリリースするために使用されるトリガを発生させる。トリガはマルチプレクサ３２０を通して結合され、マルチプレクサ３２０は第１のレジスタ２０２からのメモリ属性によって適切な状態へと強いられる。バスレジスタ２０２中の対応しているメモリアクセスが強く順序付けられていることを示すメモリ属性を新しいデータが含んでいる場合、同じプロセスが繰り返される。そうでなければ、ロジック３１４を通して内部的に発生されたトリガにより、メモリアクセス要求をバスレジスタ２０２から即座にリリースすることができる。内部的に発生させたトリガはマルチプレクサ３２０を通して結合されて、バスレジスタ２０２中の次のメモリアクセス要求に対するデータを第１および第２のレジスタ３０２、３０４からリリースさせてもよい。
【００３１】
これまでの説明は、ここで説明したさまざまな実施形態を当業者が作成または利用可能にするために提供した。これらの実施形態に対するさまざまな変更は、当業者にとって容易に明らかになり、ここで規定された包括的原則は、他の実施形態に適用し得ることが理解されるだろう。したがって、特許請求の範囲は、ここに示した実施形態に制限されることを意図しているものではなく、ここに開示した特許請求の範囲の文言と矛盾しない最も広い範囲にしたがうことを意図している。要素への単数での参照は、明示的に単数であると述べられていない限り、“１および１のみ”を意味することを意図しているのではなく、むしろ“１以上の”を意味することを意図している。当業者によって知られ、もしくは後に知られることとなる、本開示を通して説明したさまざまな実施形態のすべての構造的および機能的な均等物は、ここで参照により明示的に組み込まれ、本特許請求の範囲に含まれることとを意図している。さらに、特許請求の範囲により含まれることになる装置や方法が、本発明により解決されるべきそれぞれのおよびすべての問題を取り扱う必要はない。さらに、この開示中のどの要素、コンポーネント、方法ステップも、その要素、コンポーネント、方法ステップが特許請求の範囲中に明示的に列挙されているか否かにかかわらず、公共に捧げられることを意図していない。ここに述べられたどの請求項の要素も、要素が“ミーンズフォー”という句を用いて明示的に列挙されない限り、もしくは方法の請求項の場合は要素が“アクト”の代わりに“ステップ”として明示的に列挙されない限り、３５Ｕ．Ｓ．Ｃ．１１２条第６パラグラフの条文のもとで解釈されるべきではない。
【図面の簡単な説明】
【００３２】
【図１】図１は、弱く順序付けられた処理システムの例を図示する概念的ブロック図である。
【図２】図２は、弱く順序付けられた処理システムにおけるバス相互接続の例を図示する機能的ブロック図である。
【図３】図３は、弱く順序付けられた処理システムのためのバス相互接続における制御装置の例を図示する機能的ブロック図である。
【図４】図４は、弱く順序付けられた処理システムのためのバス相互接続における制御装置の他の例を図示する機能的ブロック図である。
【図１】
2008535068.tif 000003
【図２】
2008535068.tif 000004
【図３】
2008535068.tif 000005
【図４】
2008535068.tif 000006
【国際調査報告】
2008535068.tif 000007
2008535068.tif 000008
2008535068.tif 000009