[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP4891405B2 - バリア操作の条件付き伝搬のための方法および装置 - Google Patents

バリア操作の条件付き伝搬のための方法および装置 Download PDF

Info

Publication number
JP4891405B2
JP4891405B2 JP2009526922A JP2009526922A JP4891405B2 JP 4891405 B2 JP4891405 B2 JP 4891405B2 JP 2009526922 A JP2009526922 A JP 2009526922A JP 2009526922 A JP2009526922 A JP 2009526922A JP 4891405 B2 JP4891405 B2 JP 4891405B2
Authority
JP
Japan
Prior art keywords
data transfer
bus
bus transaction
register
slave device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009526922A
Other languages
English (en)
Other versions
JP2010501962A (ja
Inventor
サリバン、ジム
ウォルフォード、バリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2010501962A publication Critical patent/JP2010501962A/ja
Application granted granted Critical
Publication of JP4891405B2 publication Critical patent/JP4891405B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)
  • Small-Scale Networks (AREA)
  • Crystals, And After-Treatments Of Crystals (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)

Description

本発明は、一般にコンピュータ分野に関係し、特にメモリバリアバス操作を条件付きで伝搬するための方法および装置に関係する。
コンピュータおよびその他の電子システムおよびデバイスは、様々なアプリケーションにおいて計算タスクを実行する。これらのシステムおよびデバイスは、プロセッサ、数学的コプロセッサ、ビデオおよびグラフィックエンジン、DMAコントローラ、GPS受信機、圧縮または暗号化専用回路等のような様々な独立した機能固有型の回路またはモジュールをしばしば一体化することによって単なる計算の域を超えた機能性をますます統合しているところである。そのようなデバイスとメモリの間およびデバイス相互の間の高帯域データ転送は、所望のレベルのパフォーマンスを達成する上で決定的に重要である。データ通信バスは、処理システムにおけるデバイスまたはモジュール間の共有通信リンクを提供する周知の構造である。
共有バスについての一般的な論理的二分法は、「マスター」および「スレーブ」デバイスを含んでいる。マスターデバイスは、バストランザクションを開始し、バスへのアクセスのために、およびあるシステムにおいてはバス帯域幅の共有のために、マスターデバイス相互の間の仲裁を一般に行う。スレーブデバイスは、書き込みバストランザクションに応答してマスターデバイスからデータを受信し、読み出しバストランザクションに応答してマスターデバイスにデータを供給することにより、マスターデバイスによって開始されるデータ転送バストランザクションに応答する。ほとんどのスレーブデバイスは、共有バス上で対応するバストランザクションが生起する順にデータ転送操作を実行する。
多くの場合、例えばメモリアクセスのようなデータ転送操作がアウト・オブ・オーダーで実行されること(順序無視の実行)を可能にすることによって、システムのパフォーマンスを最適化することができる。例えば、新しいページが開かれる前にメモリ内の同じページに対するすべての操作が実行されることを可能にするようにメモリ操作のシーケンスの順序を並び替えることができる。メモリ操作の並び替えが許される処理システムを、一般に「弱く順序づけされた」処理システムという。
反対に、メモリ操作が対応するバストランザクションと同じ順に実行されるように見えることを要求する処理システムを「強く順序づけされた」処理システムという。あたかもメモリ操作が順序正しく実行されたかのようにメモリ状態がいつでもプロセッサに見えるかぎり、スレーブデバイスは、強く順序づけされたシステムにおいても、実際にはバストランザクションの順序を無視してメモリ操作を実行してもよいことに注意せよ。この特徴は、「広域的可観測性」(global observability)として知られている。つねに受け取った順序にデータ転送操作を実行する単純なスレーブデバイスは、本質的に広域的に可観測である。データ転送操作をアウト・オブ・オーダーで実行できる他のスレーブデバイスは、データ転送操作のアドレスを「スヌープ」し、バストランザクションの順序で同じアドレスに対してデータ転送操作を実行する。このタイプのスレーブデバイスも、広域的に可観測である。バストランザクションの順序を無視してデータ転送操作を実行するスレーブデバイスは、広域的に可観測であるとはいえない。
たとえ弱く順序づけされた処理システムにおいてであっても、確実に正しい操作を行うようにデータ転送操作が強行されなくてはならない場合もある。例えば、あるアプリケーションは、メモリからデータを読み出す前にそのメモリ位置にデータを書き込むことをプロセッサに要求するかもしれない。この操作を並び替えたのでは、読み出し操作において正しくない結果が返される事態に帰着するだろう。
弱く順序づけされた処理システムにおいてデータ転送操作を順序正しく実行するために、様々な従来技術が用いられてきた。1つの技術は、特定のデータ転送バストランザクションをその前のデータ転送操作がすべて実行されるまで単純に遅らせることである。上記の例では、プロセッサは、書き込み操作データがメモリ位置に書き込まれたことを確認する表示をプロセッサが受信するまで、読み出し要求の発令を遅らせることができる。しかし、データ転送操作順序を強行するためにプログラム実行を止めることは、明らかにパフォーマンスに負の影響をもたらすことになる。
弱く順序づけされた処理システムにおいてデータ転送操作を順序正しく実行するための他の技術は、バスプロトコルの一部として、実行同期バストランザクションを定義することである。これは「メモリバリア」としても知られている。メモリバリアは、当該メモリバリアを発する前にマスターデバイスによって発されたすべてのデータ転送バストランザクションが、当該メモリバリアを発した後にマスターデバイスによって発されたどのデータ転送バストランザクションより前に実行される、または実行されたかのように見えることを保証するバストランザクションである。メモリバリアはすべて、マスターデバイスとスレーブデバイスの間のデータ転送をなんら必要としないバストランザクションである。メモリバリア操作は、マスターデバイスによって明示的に開始されることができる。代替的または追加的に、メモリバリア操作は、マスターデバイスによって開始された強く順序づけされたデータ転送操作に応答してバスコントローラによって生成されてもよい。上記の例において、読み出しバストランザクションを発する前に、プロセッサがメモリバリアトランザクションを発することがある。この場合、メモリバリアは、読み出し操作が実行される前に、書き込み操作(メモリバリア以前に発されたその他のあらゆるデータ転送操作はもちろんのこと)が実行されることを保証するだろう。メモリバリアは、本件出願の譲受人に譲渡され、参照によって全体として本件明細書に取り込まれている2005年10月19日づけの「弱く順序づけされた処理システムにおける強く順序づけされた要求の実行」というタイトルの同時係属中の米国特許出願11/253,307号において説明されている。
メモリバリアは、複数のスレーブデバイスを備えた処理システムにおいては非能率的であるかもしれない。そのようなシステムでは、順序制約を強行するために、強く順序づけされたデータ転送バストランザクション、またはメモリバリア操作を発するマスターデバイスによってアクセスされる可能性のあるすべてのスレーブデバイスにメモリバリアトランザクションが伝搬されなければならない。強く順序づけされたデータ転送バストランザクション、またはメモリバリア操作後のバストランザクションが発される前に、各々のスレーブデバイスからメモリバリア肯定応答(acknowledgment)が受信されなければならない。したがって、メモリバリアによって生じる遅延は、最も回答の遅いスレーブデバイスによって決まる。これは、パフォーマンスに悪い影響を及ぼす可能性がある。特に、比較的遅いスレーブデバイスがメモリバリアに関係なくバストランザクションの順にデータ転送操作を実行する場合、そうである。
本願の譲渡人に譲渡され、参照によって全体として本件明細書に取り込まれている、2005年10月20日づけの「弱く順序づけされた処理システムにおいて強く順序づけされた要求を実行するときのメモリバリアの最小化」というタイトルの同時係属中の米国特許出願11/254,939号は、メモリバリアを動的に最小化するシステムおよび方法を開示している。各スレーブデバイスに関連づけられる状態レジスタは、そのスレーブデバイスがデータ転送バストランザクションを受信する各マスターデバイスからの実行待ち(未実行)のデータ転送操作を現在持っているかどうかをマスターデバイスごとに示す。もし特定のスレーブデバイスが特定のマスターデバイスからのデータ転送操作であって実行待ちのものを持っていないことを示すのであれば、当該スレーブデバイスに当該マスターデバイスからメモリバリアを伝搬する必要はない。このようにして、メモリバリアは、バストランザクション順序を強行する必要があるところにのみ伝搬されることになる。すなわち、メモリバリアは、強く順序づけされたデータ転送バストランザクション、またはメモリバリア操作を要求するマスターデバイスからの実行待ちの(メモリバリア以前に発された)データ転送操作を持っているスレーブデバイスのみに向けられる。
ほとんどの従来型システムは、広域的可観測性を本質的に提供するスレーブデバイスを少なくともいくつか含んでいる。そのようなスレーブデバイスについては、スレーブデバイスにメモリバリアトランザクションを向けるべきかどうかを決定するために、スレーブデバイスが特定のマスターデバイスからの実行待ちのデータ転送操作を持っているかどうかを動的に監視する必要はない。
本件明細書において開示される1つまたは複数の実施形態にしたがって、広域的可観測性を保証するスレーブデバイスは、メモリバリア・プロトコルからオプトアウトすることができる。様々な実施形態において、オプトアウト決定は、信号をアサートする各スレーブデバイスによって動的になされてもよく、スレーブデバイスの広域的可観測性を確認するためにスレーブデバイス中の状態レジスタをポーリングすることによってPOST(Power-On Self Test)中にシステムワイドに設定されてもよく、ソフトウェアによって設定されてもよく、またはシステム設計者によってハードウェアに組み込まれてもよく、いずれにせよ、その結果、アウト・オブ・オーダーのデータ転送操作を実行するスレーブデバイスのみがメモリバリア・プロトコルに参加することになる。このオプトアウト決定は、メモリバリア操作を必要とするスレーブデバイスのみにメモリバリア操作を伝搬することによってシステムのパフォーマンスを改善し、電力消費を低減し、もって広域的可観測なスレーブデバイスからのメモリバリア肯定応答に関連する遅延を取り除くことができる。
1つの実施形態は、弱く順序づけされた処理システムに関係する。本システムは、複数のスレーブデバイスおよび2つ以上のマスターデバイスを含み、各々は、1つまたは複数のスレーブデバイスにデータ転送バストランザクションを向けるように構成されている。本システムは、さらにバス相互接続(bus interconnect)を含んでおり、このバス相互接続は、マスターデバイスとスレーブデバイスの間のデータ転送バストランザクションを実行するように構成され、さらにバス相互接続は、マスターデバイスからの強く順序づけされたデータ転送バストランザクション要求に応答して、1つまたは複数の広域的可観測なスレーブデバイスに実行同期バストランザクションを向けるように構成されている。
他の実施形態は、弱く順序づけされた処理システムにおいて、データ転送バストランザクションを1つまたは複数のマスターデバイスから2つ以上のスレーブデバイスに向けるように動作するバス相互接続に関係する。このバス相互接続は、データ転送バストランザクション要求の待ち行列を作るように動作するバスレジスタと、バスレジスタからのデータ転送バストランザクションの発令を制御するように動作し、かつマスターデバイスからの強く順序づけされたデータ転送バストランザクション要求に応答して、広域的に可観測でない1つまたは複数のスレーブデバイスに実行同期バストランザクションを発するようにさらに動作するコントローラとを含んでいる。
さらに他の実施形態は、1つまたは複数のマスターデバイスおよび2つ以上のスレーブデバイスを含む弱く順序づけされた処理システムにおいて、強く順序づけされたデータ転送バストランザクションを実行する方法に関係する。どのスレーブデバイスが広域的に可観測であるかを示す表示(indication)が維持される。マスターデバイスからの強く順序づけされたデータ転送バストランザクション要求に応答して、広域的に可観測でない1つまたは複数のスレーブデバイスに対し実行同期バストランザクションが発される。
図1は、弱く順序づけされた処理システムの機能ブロック図である。 図2は、弱く順序づけされた処理システムにおけるバス相互接続の機能ブロック図である。 図3は、弱く順序づけされた処理システムのためのバス相互接続におけるコントローラの1つの実施形態の機能ブロック図である。 図4は、弱く順序づけされた処理システムのためのバス相互接続におけるコントローラの他の実施形態の機能ブロック図である。
発明の詳細な説明
添付されている図面とともに以下に記される発明の詳細な説明は、本発明の様々な実施形態の説明として意図されたものであって、発明が実行されうるただ1つの実施形態を表わすことを意図したものではない。特に説明の目的上、2つ以上のメモリコントローラに対してメモリアクセス要求を発する1つまたは複数のプロセッサと、1つのバス相互接続とを具備する処理システムについて、実施形態が説明される。しかしながら、本発明は、共有バスシステムにおけるスレーブデバイスにデータ転送バストランザクションを発する任意のマスターデバイスに適用可能であって、プロセッサおよびメモリコントローラに制限されるものではない。
図1は、弱く順序づけされた処理システムの機能ブロック図である。処理システム100は、携帯用電子デバイス、ソフトウェア組み込みシステム、分散システム等を含むコンピュータまたは他の計算システムの中に配置されてもよい。処理システム100は、集積回路、ディスクリート素子またはそれらの任意の組み合わせとして実装されてもよい。処理システム100のうち本件開示の実施形態の説明に必要な部分のみが図1に描かれている。当業者は、各々の特定のアプリケーションのために本処理システム100をどう実装するのがベストであるかよくわかるであろう。
図1に描かれているような処理システム100は、共有バス106上のメモリデバイス104a-104cと通信するプロセッサ102a-102cを含んでいる。任意の特定のアプリケーションに必要なプロセッサおよびメモリデバイスの実際の数は、必要とされる計算電力および全体的設計制約に依存して変化してもかまわない。ポイント・ツー・ポイントの交換接続を使用するプロセッサ102a-102cとメモリデバイス104a-104cの間のバストランザクションを管理するためにバス相互接続108が使用されてもよい。バス相互接続108の少なくとも1つの実施形態において、2つ以上のバストランザクションが同時に生起することを可能にするために、複数の直接リンクが提供されてもよい。
1つまたは複数のプロセッサ102a-102cは、オペレーティングシステムまたは他のソフトウェアの管理の下で命令を実行するように構成されてもよい。その命令は、メモリデバイス104a-104cの1つまたは複数の中に存在してもよい。メモリデバイス104a-104cの中には、データも記憶されてもよく、ある命令を実行するためにそのデータがプロセッサ102a-102cによって検索されてもよい。これらの命令の実行によって生じる新しいデータは、メモリデバイス104a-104cに書き戻されることができる。メモリデバイス104a-104cの各々は、本件技術分野において知られているように、メモリコントローラ(図示されていない)および記憶媒体(図示されていない)を含んでもよい。
プロセッサ102a-102cの各々は、バス相互接続108との通信のためにバス106上に専用チャンネル106a-106cを備えてもよい。同様に、バス相互接続108は、メモリデバイス104a-104cの各々との通信のためにバス上の専用チャンネル106d-106fを使用してもよい。一例として、第1のプロセッサ102aは、バス106上のその専用チャンネル106a上でデータ転送バストランザクション要求を送信することによって、ターゲットメモリデバイス104bにアクセスすることができる。バス相互接続108は、データ転送バストランザクション要求のアドレスからターゲットメモリデバイス104bを決定し、およびバス106上の適切なチャネル106e上でターゲットメモリデバイス104bにデータ転送バストランザクションを発する。データ転送バストランザクションは、書き込みトランザクション、読み出しトランザクションまたはデータ転送と関係する他の任意のバストランザクションであってもよい。開始プロセッサ102a-102cは、ペイロードを備えた適切なアドレスをバス106の上に置き、書き込みイネーブル信号をアサートすることによって、ターゲットメモリデバイス104a-104cに書き込みトランザクションを発することができる。開始プロセッサ102a-102cは、適切なアドレスをバス106の上に置き、読み出しイネーブル信号をアサートすることによって、ターゲットメモリデバイス104a-104cに読み出しトランザクションを発することができる。読み出し要求に応答して、ターゲットメモリデバイス104a-104cは、開始プロセッサ102a-102cにペイロードを送り戻すであろう。開始プロセッサ102a-102cはまた、メモリバリアトランザクションのような、データ転送バストランザクションでないバストランザクションを発することもできる。
処理システム100の少なくとも1つの実施形態において、プロセッサ102a-102cは、各メモリアクセス要求とともに属性を送信することができる。属性は、データ転送バストランザクションの性質を説明する任意のパラメータであってもよい。属性は、アドレスチャネル上でアドレスとともに送信されてもよい。代替的に、属性は、側波帯シグナリングまたは他のなんらかの方法を使用して送信されてもよい。
属性は、データ転送バストランザクション要求が強く順序づけされているか否かを示すために使用されてもよい。「強く順序づけされた」要求とは、アウト・オブ・オーダーで実行することができないデータ転送バストランザクション要求をいう。
バス相互接続108は、プロセッサ102a-102cからの各データ転送バストランザクション要求の属性を監視することができる。属性が強く順序づけされたデータ転送バストランザクションの要求を示す場合、バス相互接続108は、当該強く順序づけされたデータ転送バストランザクションが向けられるスレーブデバイスを除き、マスターデバイスからのバストランザクションを受信しかつデータ転送バストランザクションのアウト・オブ・オーダー実行が可能なあらゆるスレーブデバイスへの当該トランザクションに順序制約を守らせることができる。一例として、第1のプロセッサ102aからターゲットメモリデバイス104aへのデータ転送バストランザクション要求が属性を含むとする。バス相互接続108は、トランザクションが強く順序づけされているかを属性から決定することができる。バス相互接続108は、トランザクションが強く順序づけされていると決定した場合、第1のプロセッサ102aがアクセス可能でかつアウト・オブ・オーダーでデータ転送バストランザクションが実行可能なあらゆるメモリデバイス104bおよび104c(ただし、ターゲットメモリデバイス104aを除く)にメモリバリアを送信する。バス相互接続108は、当該強く順序づけされたデータ転送バストランザクションをメモリバリアのないターゲットメモリデバイス104aにも送信する。なぜなら、ターゲットメモリデバイス104aは、データ転送バストランザクションに関連する属性のために、当該トランザクションを強く順序づけされた要求として黙示的に取り扱うからである。代替的に、プロセッサ102aは、強く順序づけされたデータ転送バストランザクションを発する前に、メモリバリアバストランザクションを発してもよい。
図2は、弱く順序づけされた処理システムにおけるバス相互接続108の一例を示す機能ブロック図である。バス相互接続が実際に実装される方法は、設計上の考慮に依存する。当業者は、様々な設計の交換可能性、および各特定のアプリケーションのために本件明細書において説明される機能性を実装する最良の方法を認識するであろう。
図2を参照し、バスレジスタ202は、バス106からの情報の受信および記憶のために使用されてもよい。バスレジスタ202は、FIFO(First-In-First-Out)メモリのような任意のタイプの記憶デバイス、または他の適切な記憶デバイスであってもよい。バスレジスタ202によって受信および記憶される情報は、任意のバス関連情報であってもよいが、より詳細には、当該情報は、各データ転送バストランザクション要求についてのアドレスおよび属性、ならびに書き込み操作の場合ペイロードを含んでもよい。バスレジスタ202はまた、マスターデバイスによって発されるメモリバリア操作のような非データ転送バストランザクションの場合、属性を記憶することができる。各データ転送バストランザクション要求についてのアドレスは、復号器204にも提供される。復号器204は、バスレジスタ202中の各データ転送バストランザクション要求についてターゲットメモリデバイスを決定するために使用されることができる。この決定は、バススイッチ206を制御するために使用される。バススイッチ206は、バスレジスタ202からターゲットメモリデバイスのためのバス106の適切なチャネルへの各データ転送バストランザクションを多重化解除するために使用される。コントローラ208は、バスレジスタ202からリリースされるデータ転送バストランザクションのタイミングを制御するために使用されることができる。
図3は、弱く順序づけされた処理システムのためのバス相互接続108におけるコントローラ208の1つの実施形態の機能ブロック図である。コントローラ208は、復号器204から受信する情報に基づいて、メモリ操作に順序制約を守らせる。前記情報は、各バストランザクションについての属性を含んでもよい。それは、第1の入力レジスタ302に記憶されてもよい。前記情報はまた、開始プロセッサがアクセスすることができる、ターゲットメモリデバイス以外の、各メモリデバイスを識別するデータを含んでもよい。各プロセッサによってアクセス可能な特定のメモリデバイスは、設計段階において事前に構成され、したがって、復号器204にプログラムされるかまたはハードウェア的に組み込まれることができる。いずれの場合であれ、この情報を記憶するために、第2の入力レジスタ304を使用することができる。第1および第2の入力レジスタ302、304は、図3に示されるような別々のレジスタでもよく、または代替的に単一のレジスタであってもよい。コントローラ208のいくつかの実施形態において、復号器204からの情報は、他のバス相互接続機能と共有されるレジスタに記憶されることができる。各レジスタは、FIFOまたは他の適切な記憶媒体であってもよい。
コントローラ208は、バスレジスタ202からリリースされたデータ転送バストランザクションのタイミングを制御することによって、データ転送操作に順序制約を守らせる。本プロセスは、強く順序づけされたメモリデータ転送バストランザクションがバスレジスタ202からリリースされる準備ができていることを示す属性に関連してまず説明される。この場合、その属性は、第1の入力レジスタ302からメモリバリア生成器306にイネーブル信号として提供される。同時に、第2の入力レジスタ304に記憶されているデータがメモリバリア生成器306の入力に提供される。上に示されたように、第2の入力レジスタ304に記憶されているデータは、開始プロセッサがアクセスすることができる、ターゲットメモリデバイス以外の、各メモリデバイスを識別するデータを含んでいる。メモリバリア生成器306が属性によってイネーブルにされるとき、この情報は前記データによって識別される各メモリデバイスのメモリバリアを生成するために使用される。各メモリバリアは、強く順序づけされた要求を開始した開始プロセッサを識別する属性を備えた、識別されたメモリデバイスに向けられるメモリバリアトランザクションを発することによって、適切なメモリデバイスに提供されてもよい。代替的に、メモリバリアは、側波帯シグナリングまたは他の適切な手段を使用して適切なメモリデバイスに提供されてもよい。メモリバリア生成器306はまた、上記の方法と類似の方法で、バスレジスタ202にも記憶されている、マスターデバイスからのメモリバリアバストランザクション要求に応答して、メモリバリアバストランザクションを生成することができる。
1つまたは複数の実施形態にしたがって、メモリバリア生成器306は、不必要なメモリバリアを抑えるために使用されることができる。例えば、もしメモリデバイスが本質的に広域的に可観測であれば、開始プロセッサによってアクセス可能なメモリデバイスのためのメモリバリアは、余分なものであって、抑えられてもよい。広域的に可観測なスレーブデバイスは、多くの方法で識別されることができる。
コントローラ208の1つの実施形態においては、論理的な広域的可観測性レジスタ307は、システム内のすべてのスレーブデバイスについての1ビットを含んでいる。広域的可観測性レジスタビットの状態は、関連するスレーブデバイスが広域的に可観測であるか、したがってメモリバリアトランザクションから免除されてもよいかを示す。広域的可観測性レジスタ307は、メモリバリア生成器306への入力である。広域的可観測性レジスタ307は、それぞれのスレーブデバイス内の配位状態レジスタ(CSR)を読むことによってバストランザクションの広域的可観測性に関する動作および能力を確認するための、スレーブデバイスに対するポーリングに続くPOSTの間にシステムソフトウェアによって設定される物理レジスタを備えてもよい。
ASICまたはSOC(System On Chip)環境上特に有利なものである可能性のある1つの実施形態において、論理的な広域的可観測性レジスタ307の1つまたは複数のビットは、対応するスレーブデバイスの既知の広域的可観測性を示す所定の状態に設計者によってハードウェア的に設定されてもよい。このことは、POSTソフトウェアの複雑性および実行時間を低減する可能性がある。
他の実施形態では、論理的な広域的可観測性レジスタ307の1つまたは複数のビットは、スレーブデバイスからの動的バイナリ信号を含んでもよい。これは、スレーブデバイスが広域的可観測性の期間を示すことを可能にする。例えば、スレーブデバイスは、データ転送操作をバッファにおいて待ち行列化し、バストランザクションの順序を無視して操作を実行することができる。実行待ちのデータ転送操作がバッファ内にあるとき、もしあるプロセッサが強く順序づけされたデータ転送バストランザクション、またはメモリバリア操作を発すれば、スレーブデバイスは、広域的可観測性の欠如を示し、それゆえメモリバリアバストランザクションがスレーブデバイスに向けられることを要求するであろう。しかしながら、もしバッファが空であれば、スレーブデバイスは、少なくとも次に生じるデータ転送バストランザクションについては広域的可観測性を保証することができる(すなわち、スレーブデバイスは、そのスレーブデバイスに対して以前に発されたすべてのデータ転送操作が実行されたことを保証する)。この場合、スレーブデバイスは、メモリバリアトランザクションを受信する必要がないことを二値信号によって示してよく、またバッファが空である間のみこの表示を維持してもよい。
任意の与えられた実装において、論理的な広域的可観測性レジスタ307は、特定のアプリケーションによって必要とされるまたは望まれるところにしたがって、システムソフトウェア、ハードウェア組み込みビット、またはスレーブデバイスからの動的信号によって設定される1つまたは複数の物理レジスタの任意のミックスを含んでもよい。
図1ないし3を参照し、メモリバリアを抑えるために広域的可観測性レジスタビットが使用されることができる方法を示すための一例が次に提供される。この例において、処理システムは、第1のプロセッサ102aが第1、第2、第3のメモリデバイス104a、104b、104cにアクセスすることができるように構成されることができる。強く順序づけされたデータ転送バストランザクションが第1のプロセッサ102aによって第1のメモリデバイス104aに対して発されるとき(または代替的に第1のプロセッサ102aによって発されたメモリバリア操作がバスレジスタ202の出力にあるとき)、第1の入力レジスタ302からの対応する属性は、メモリバリア生成器306をイネーブルにする。第2の入力レジスタ304からメモリバリア生成器306に提供されるデータは、第1のプロセッサ104aがアクセスすることができる、ターゲットメモリデバイス以外の、メモリデバイスを識別する。この場合、データは、第2および第3のメモリデバイス104b、104cを識別する。メモリバリア生成器306は、第2および第3のメモリデバイス104b、104cのうちのいずれかが広域的に可観測であるかを決定するために、メモリデバイス104b、104cに対応する論理的な広域的可観測性レジスタ中のビット307b、307cをチェックする。この例において、ビット307bは、広域的可観測性を示し、ビット307cは示さない。したがって、メモリバリアバストランザクションは、第3のメモリデバイス104cに対して出され、第2のメモリデバイス104bに対するメモリバリアは抑制される。
図3に戻り、コントローラ208のロジック308は、メモリバリア肯定応答を求めてメモリデバイスからのフィードバックを監視するために使用されることができる。「メモリバリア肯定応答」は、強く順序づけされたデータ転送バストランザクションを必要とするまたはメモリバリア操作を発するプロセッサからのあらゆるデータ転送操作(メモリバリアに先行したもの)が実行されたことを示すメモリデバイスからの信号である。第2の入力レジスタ304からのデータおよび論理的な広域的可観測性レジスタ307のビットは、どのメモリデバイスがメモリバリア肯定応答のために監視されなくてはならないかを決定するためにロジック308によって使用される。すべての必要なメモリバリア肯定応答が受信されたとロジック308が決定すると、ロジック308は、バスレジスタ202からの対応するデータ転送バストランザクション(またはメモリバリア操作がマスターデバイスによって直接発された場合は次の実行待ちのデータ転送バストランザクション)をリリースするために使用されるトリガを生成する。より詳細には、第1の入力レジスタ302からの属性は、マルチプレクサ310のセレクト入力に提供される。マルチプレクサ310は、データ転送バストランザクションが強く順序づけされていることを属性が示すとき、ロジック308によって生成されたトリガをバスレジスタ202に連結するために使用される。バススイッチ206のタイミングを同期化するために、マルチプレクサ310からのリリース信号アウトプットは、復号器にも連結される(図2を参照)。
データ転送バストランザクションがバスレジスタからいったんリリースされると、それはバススイッチ206を通ってターゲットメモリデバイスに中継される(図2を参照)。コントローラ208内の第2のマルチプレクサ312は、強く順序づけされたデータ転送バストランザクションまたはマスターデバイス発のメモリバリア操作がそのセレクト入力に適用されることを属性が示しているとき、ターゲットメモリデバイスからのデータ転送肯定応答が受け取られるまで、第1および第2のレジスタ302、304からのデータのリリースを遅延させるために使用されることができる。上で論じられたように、バストランザクションに含まれる属性は、ターゲットメモリデバイスに順序制約を守らせる。すなわち、ターゲットメモリデバイスは、強く順序づけされたデータ転送操作を実行する前に、開始プロセッサによって発された未決のデータ転送操作をすべて実行する。データ転送肯定応答は、強く順序づけされたデータ転送操作の実行に続いてターゲットメモリデバイスによって生成される。データ転送肯定応答は、コントローラ208のマルチプレクサ312にフィードバックされる。ここで、それは、バスレジスタ202の中の次のデータ転送バストランザクションに対応する第1および第2のレジスタ302、304から新しいデータをリリースするトリガを生成するのに用いられる。前記新しいデータが、バスレジスタ202中の対応するデータ転送バストランザクションが強く順序づけされていることを示す属性を含んでいる、またはマスターデバイス発のメモリバリア操作を備えている場合、同じプロセスが繰り返される。そうでなければ、データ転送バストランザクションは、バスレジスタ202から直ちにリリースされることができる。
要求が強く順序づけされたものではなく、またマスターデバイス発のメモリバリア操作でもないことを第1の入力レジスタ302の中の対応する属性が示すとき、バスレジスタ202から直ちにデータ転送バストランザクションをリリースするように、コントローラ208は構成される。その場合、属性は、メモリバリア生成器306を不能にする。さらに、属性は、データ転送バストランザクションをリリースするために内部生成トリガをバスレジスタ202に連結する状態にマルチプレクサ310を強制する。データ転送バストランザクションは、バスレジスタ202からリリースされ、バススイッチ206を通ってターゲットメモリデバイスに連結される(図2を参照)。その後、次のデータ転送バストランザクションに対応するデータがコントローラ208の中の第2のマルチプレクサ312からの内部生成トリガ出力によって第1および第2のレジスタ302、304からリリースされる。
図4は、弱く順序づけされた処理システムのためのバス相互接続のコントローラの他の実施形態を示す機能ブロック図である。この実施形態において、強く順序づけされたデータ転送バストランザクションは、メモリバリアが適切なメモリデバイスに提供されるのと同時にコントローラ208によってバスレジスタ202からリリースされる。より詳細には、第1の入力レジスタ302は、メモリバリア生成器306へのデータ転送バストランザクションのための属性を提供するために使用される。もし対応するデータ転送バストランザクションが強く順序づけされていることを属性が示せば、メモリバリア生成器306はイネーブルにされる。メモリバリア生成器306がイネーブルにされると、第2の入力レジスタ304からのデータは、ターゲットメモリデバイス以外の、開始プロセッサによってアクセス可能な各メモリデバイスを識別するために使用される。識別された各メモリデバイスについて、メモリバリア生成器306は、論理的な広域的可観測性レジスタ307の対応するビットをチェックする。その後、自分が広域的に可観測であることを(その時に)示さない、ターゲットメモリデバイス以外の、メモリデバイスの各々のために、メモリバリアが生成される。
メモリバリア生成器306がイネーブルにされると、コントローラ208中のロジック314は、強く順序づけされたデータ転送バストランザクションがターゲットメモリデバイスによって実行されるまで、後続のデータ転送バストランザクションがバスレジスタ202からリリースされるのを阻止するために使用されることができる。遅延316は、内部生成トリガが、属性によってゲートオフされる前に、強く順序づけされたデータ転送バストランザクションをバスレジスタ202からリリースすることを可能にするために使用されることができる。このようにして、データ転送バストランザクションは、開始プロセッサによってアクセス可能な残りの非広域的可観測メモリデバイスのためのメモリバリアと同時に、ターゲットメモリデバイスに提供されることができる。
ロジック318は、ターゲットメモリデバイスからのデータ転送肯定応答およびメモリバリア肯定応答のためにメモリデバイスからのフィードバックを監視するために使用されることができる。第2の入力レジスタ304からのデータおよび論理的な広域的可観測性レジスタ307のビットは、どのメモリデバイスがメモリバリア肯定応答のために監視される必要があるかを決定するためにロジック318によって使用される。様々なデータ転送および/またはメモリバリア肯定応答が受け取られたことをロジック318が決定すると、それは、バスレジスタ202における次のデータ転送バストランザクションに対応する第1および第2の入力レジスタ302、304から新しいデータをリリースするためにトリガを生成する。トリガは、第1の入力レジスタ302からの属性によって適切な状態に強制されるマルチプレクサ320を通って連結される。もし新しいデータがバスレジスタ202中の対応するデータ転送バストランザクションが強く順序づけされていることを示す属性を含んでいたら、同じプロセスが繰り返される。そうでなければ、データ転送バストランザクションは、ロジック314を介して内部生成トリガでバスレジスタ202から直ちにリリースされることができる。内部生成トリガはまた、バスレジスタ202中の次のデータ転送バストランザクションのために第1および第2の入力レジスタ302、304からデータをリリースするために、マルチプレクサ320を通って連結されることもできる。
本発明は本件明細書においては共有バスシステムのバス相互接続108内のコントローラ208に関して説明されてきたけれど、当業者は、本件発明はそのような実装に限られるものではないということを容易に認識するだろう。特に、各スレーブデバイスのための広域的可観測性インジケータは、各マスターデバイスによって伝搬されてもよく、またはアクセス可能であってもよい。各マスターデバイスは、メモリバリアバストランザクションが必要かどうか、もし必要であれば、どのスレーブデバイスに向けられるべきであるかを決定することができる。 [0044] 本発明は本件明細書においては特定の特徴、態様およびそれらの実施形態に関して説明されてきたけれど、多数の変形、修正および他の実施形態が本発明の広い範囲の中で可能であることは明白であろう。また、したがって、すべての変形、修正および実施形態は、本発明の範囲の中にあるものとしてみなされるべきである。本件実施形態は、したがって、すべての態様において例示的なものであって制限的なものではないものとして解釈されるべきであって、添付されている請求項の意味および均等の範囲に入るすべての変形は、そこに包含されることを意図するものである。

Claims (31)

  1. 弱く順序づけされた処理システムであって、
    複数のスレーブデバイスと
    1つまたは複数のスレーブデバイスにデータ転送バストランザクションを向けるように構成された少なくとも1つのマスターデバイスと、
    マスターデバイスとスレーブデバイスの間のデータ転送バストランザクションを実行するように構成されたバス相互接続であって、マスターデバイスからの実行同期バストランザクション要求に応答して、広域的に可観測でない1つまたは複数のスレーブデバイスに実行同期バストランザクションを向けるようにさらに構成されたバス相互接続と
    を具備するシステム。
  2. 前記バス相互接続は、複数のビットを具備する論理的な広域的可観測性レジスタを含み、その各ビットは、1つのスレーブデバイスに対応しおよび前記スレーブデバイスが広域的可観測性を維持しているかどうかを示す、請求項1に記載のシステム。
  3. 前記広域的可観測性レジスタは、システムの初期化の際にシステムソフトウェアによって設定さる1つまたは複数の物理レジスタを具備する、請求項2に記載のシステム。
  4. 前記システムソフトウェアは、スレーブデバイスの広域的可観測性を確認するためにスレーブデバイスの状態レジスタに対してポーリングを行う、請求項3に記載のシステム。
  5. 1つまたは複数のビットを含む前記論理的な広域的可観測性レジスタは、ハードウェアに組み込まれている、請求項2に記載のシステム。
  6. 1つまたは複数のビットを含む前記論理的な広域的可観測性レジスタは、スレーブデバイスからの動的バイナリ信号を具備する、請求項2に記載のシステム。
  7. データ転送操作を実行する前に前記データ転送操作をスレーブデバイスがバッファし、および前記スレーブデバイスは、そのバッファが空であるとき、前記論理的な広域的可観測性レジスタへの動的バイナリ信号によって前記スレーブデバイスが広域的に可観測であることを示す、請求項6に記載のシステム。
  8. 前記マスターデバイスからのデータ転送バストランザクションは、前記データ転送バストランザクションが強く順序づけされているかどうかを示す属性を含む、請求項1に記載のシステム。
  9. 前記実行同期バストランザクションを受信するスレーブデバイスの各々は、少なくとも、強く順序づけされたデータ転送バストランザクションを発する前記マスターデバイスからの、以前に受信されたデータ転送操作をすべて実行する、請求項1に記載のシステム。
  10. 強く順序づけされたデータ転送バストランザクションが向けられる前記スレーブデバイスは、前記強く順序づけされたデータ転送バストランザクションを実行する前に、少なくとも、前記強く順序づけされたデータ転送バストランザクションを発する前記マスターデバイスからの、以前に受信されたデータ転送操作をすべて実行したかのようにマスターデバイスに見える、請求項1に 記載のシステム。
  11. 前記バス相互接続は、強く順序づけされたデータ転送バストランザクション要求を発する前記マスターデバイスがデータ転送バストランザクションを向ける可能性のある、広域的に可観測でないスレーブデバイスにのみ前記実行同期バストランザクションを向ける、請求項1に記載のシステム。
  12. 前記バス相互接続は、強く順序づけされたデータ転送バストランザクション要求に応答して、広域的に可観測でない1つまたは複数のスレーブデバイスに実行同期バストランザクションを向けるようにさらに構成されている、請求項1に記載のシステム。
  13. 弱く順序づけされた処理システムにおいて1つまたは複数のマスターデバイスから2つ以上のスレーブデバイスにデータ転送バストランザクションを向けるように動作するバス相互接続であって、
    データ転送バストランザクション要求の待ち行列を作るように動作するバスレジスタと、
    前記バスレジスタからのデータ転送バストランザクションの発令を制御するように動作するコントローラであって、マスターデバイスからの実行同期バストランザクション要求に応答して、広域的に可観測でない1つまたは複数のスレーブデバイスに実行同期バストランザクションを発するようにさらに動作するコントローラと
    を具備するバス相互接続。
  14. 前記コントローラは、どのスレーブデバイスが広域的に可観測であるかを示す論理的な広域的可観測性レジスタを含む、請求項13に記載のバス相互接続。
  15. 前記論理的な広域的可観測性レジスタは、システムソフトウェアによって設定される物理レジスタを具備する、請求項14に記載のバス相互接続。
  16. 前記システムソフトウェアは、前記広域的可観測性レジスタを設定する前に、スレーブデバイスの広域的可観測性を確認するためにスレーブデバイスの状態レジスタに対してポーリングを行う、請求項15に記載のバス相互接続。
  17. 1つまたは複数のビットを含む前記論理的な広域的可観測性レジスタは、システム設計者によってハードウェアに組み込まれている、請求項14に記載のバス相互接続。
  18. 1つまたは複数のビットを含む前記論理的な広域的可観測性レジスタは、スレーブデバイスからの動的バイナリ信号を具備する、請求項14に記載のバス相互接続。
  19. スレーブデバイスは、データ転送操作を実行する前に前記データ転送操作をバッファするように動作し、前記スレーブデバイスは、前記バッファが空であるとき動的バイナリ信号によって広域的可観測性を示す、請求項18に記載のバス相互接続。
  20. 前記コントローラに論理的に接続される復号器であって、どのスレーブデバイスに実行待ちのデー転送バストランザクションが向けられるかを確認するよう動作し、強く順序づけされたデータ転送バストランザクションを検出するようにさらに動作する復号器をさらに具備する、請求項13に記載の相互接続。
  21. 前記バスレジスタからのデータ転送バストランザクションを受信するバススイッチであって、前記復号器の制御のもとでスレーブデバイスに前記データ転送バストランザクションを向けるように動作するバススイッチをさらに具備する、請求項20に記載のバス相互接続。
  22. 前記コントローラは、強く順序づけされたデータ転送バストランザクション要求に応答して、広域的に可観測でない1つまたは複数のスレーブデバイスに実行同期バストランザクションを発するようにさらに動作する、請求項13に記載のバス相互接続。
  23. 1つまたは複数のマスターデバイスおよび2つ以上のスレーブデバイスを含む弱く順序づけされた処理システムにおいて強く順序づけされたデータ転送バストランザクションを実行する方法であって、
    前記スレーブデバイスのうちのどれが広域的に可観測であるかの表示を維持手段によって維持することと、
    マスターデバイスからの実行同期バストランザクション要求に応答して、広域的に可観測でない1つまたは複数のスレーブデバイスに実行同期バストランザクションを発令手段によって発することと
    を具備する方法。
  24. マスターデバイスから受信された各データ転送バストランザクション要求の属性を復号することによって、強く順序づけされたデータ転送バストランザクションを検出することをさらに具備する、請求項23に記載の方法。
  25. 前記実行同期バストランザクションは、強く順序づけされたデータ転送バストランザクション要求を発する前記マスターデバイスがデータ転送バストランザクションを向ける可能性がある、広域的に可観測でないスレーブデバイスにのみ発される、請求項23に記載の方法。
  26. 前記スレーブデバイスのうちのどれが広域的に可観測であるかの表示を維持することは、論理的な広域的可観測性状態レジスタであって、それの1ビットが各スレーブデバイスに対応する状態レジスタを維持することを具備する、請求項23に記載の方法。
  27. 各スレーブデバイスの広域的可観測性を確認するために初期化の間にスレーブデバイスの状態レジスタに対するポーリングを行うことと、
    システムソフトウェアによって物理レジスタを設定することと
    をさらに具備する、請求項26に記載の方法。
  28. 前記スレーブデバイスのうちのどれが広域的に可観測であるかの表示を維持することは、前記スレーブデバイスの広域的可観測性を示す1つまたは複数のスレーブデバイスからの動的バイナリ信号を受信することを具備する、請求項26に記載の方法。
  29. 実行同期バストランザクションを受信するスレーブデバイスの各々について、少なくとも、前記強く順序づけされたデータ転送バストランザクション要求を発する前記マスターデバイスからの、実行待ちのデータ転送操作をすべて実行することをさらに具備する、請求項23に記載の方法。
  30. 前記強く順序づけされたデータ転送バストランザクションを受信する前記スレーブデバイスについて、前記強く順序づけされたデータ転送バストランザクションを実行する前に、少なくとも、前記強く順序づけされたデータ転送バストランザクション要求を発する前記マスターデバイスからの、実行待ちのデータ転送操作をすべて実行することをさらに具備する、請求項23に記載の方法
  31. 強く順序づけされたデータ転送バストランザクション要求を受信すること
    をさらに具備する、請求項23に記載の方法。
JP2009526922A 2006-08-31 2007-08-31 バリア操作の条件付き伝搬のための方法および装置 Expired - Fee Related JP4891405B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/468,894 US7783817B2 (en) 2006-08-31 2006-08-31 Method and apparatus for conditional broadcast of barrier operations
US11/468,894 2006-08-31
PCT/US2007/077336 WO2008028101A1 (en) 2006-08-31 2007-08-31 Method and apparatus for conditional broadcast of barrier operations

Publications (2)

Publication Number Publication Date
JP2010501962A JP2010501962A (ja) 2010-01-21
JP4891405B2 true JP4891405B2 (ja) 2012-03-07

Family

ID=38943823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009526922A Expired - Fee Related JP4891405B2 (ja) 2006-08-31 2007-08-31 バリア操作の条件付き伝搬のための方法および装置

Country Status (9)

Country Link
US (1) US7783817B2 (ja)
EP (1) EP2062147B1 (ja)
JP (1) JP4891405B2 (ja)
KR (1) KR101056153B1 (ja)
CN (1) CN101506783B (ja)
AT (1) ATE507530T1 (ja)
DE (1) DE602007014226D1 (ja)
TW (1) TW200819989A (ja)
WO (1) WO2008028101A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237098B2 (en) * 2003-09-08 2007-06-26 Ip-First, Llc Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
US9026744B2 (en) * 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing
US7500045B2 (en) * 2005-03-23 2009-03-03 Qualcomm Incorporated Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system
US7917676B2 (en) 2006-03-10 2011-03-29 Qualcomm, Incorporated Efficient execution of memory barrier bus commands with order constrained memory accesses
US8352682B2 (en) * 2009-05-26 2013-01-08 Qualcomm Incorporated Methods and apparatus for issuing memory barrier commands in a weakly ordered storage system
GB2474446A (en) * 2009-10-13 2011-04-20 Advanced Risc Mach Ltd Barrier requests to maintain transaction order in an interconnect with multiple paths
US8285937B2 (en) * 2010-02-24 2012-10-09 Apple Inc. Fused store exclusive/memory barrier operation
US8577986B2 (en) 2010-04-02 2013-11-05 Microsoft Corporation Mapping RDMA semantics to high speed storage
US9350806B2 (en) 2012-09-07 2016-05-24 International Business Machines Corporation Zero copy data transfers without modifying host side protocol stack parameters
US9304954B2 (en) * 2012-10-24 2016-04-05 Texas Instruments Incorporated Multi processor bridge with mixed Endian mode support
CN114896182B (zh) * 2022-05-11 2023-10-20 地平线(上海)人工智能技术有限公司 存储装置、方法、电子设备和存储介质

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04190435A (ja) 1990-11-26 1992-07-08 Hitachi Ltd マルチプロセッサシステムのメモリアクセス順序保証方式
US5778438A (en) 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5893165A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO
US6047334A (en) * 1997-06-17 2000-04-04 Intel Corporation System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence
US6088771A (en) * 1997-10-24 2000-07-11 Digital Equipment Corporation Mechanism for reducing latency of memory barrier operations on a multiprocessor system
US6370632B1 (en) * 1997-11-18 2002-04-09 Intrinsity, Inc. Method and apparatus that enforces a regional memory model in hierarchical memory systems
US6038646A (en) * 1998-01-23 2000-03-14 Sun Microsystems, Inc. Method and apparatus for enforcing ordered execution of reads and writes across a memory interface
US6247102B1 (en) * 1998-03-25 2001-06-12 Compaq Computer Corporation Computer system employing memory controller and bridge interface permitting concurrent operation
US6073210A (en) * 1998-03-31 2000-06-06 Intel Corporation Synchronization of weakly ordered write combining operations using a fencing mechanism
US6816934B2 (en) * 2000-12-22 2004-11-09 Hewlett-Packard Development Company, L.P. Computer system with registered peripheral component interconnect device for processing extended commands and attributes according to a registered peripheral component interconnect protocol
US6167492A (en) * 1998-12-23 2000-12-26 Advanced Micro Devices, Inc. Circuit and method for maintaining order of memory access requests initiated by devices coupled to a multiprocessor system
US6275913B1 (en) * 1999-10-15 2001-08-14 Micron Technology, Inc. Method for preserving memory request ordering across multiple memory controllers
US6708269B1 (en) * 1999-12-30 2004-03-16 Intel Corporation Method and apparatus for multi-mode fencing in a microprocessor system
US6963967B1 (en) * 2000-06-06 2005-11-08 International Business Machines Corporation System and method for enabling weak consistent storage advantage to a firmly consistent storage architecture
US6609192B1 (en) * 2000-06-06 2003-08-19 International Business Machines Corporation System and method for asynchronously overlapping storage barrier operations with old and new storage operations
JP3999943B2 (ja) * 2001-03-13 2007-10-31 株式会社東芝 マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法
US7398376B2 (en) * 2001-03-23 2008-07-08 International Business Machines Corporation Instructions for ordering execution in pipelined processes
US6996812B2 (en) * 2001-06-18 2006-02-07 International Business Machines Corporation Software implementation of synchronous memory barriers
US7231486B2 (en) * 2001-08-24 2007-06-12 Intel Corporation General input/output architecture, protocol and related methods to support legacy interrupts
US20030131175A1 (en) * 2001-12-24 2003-07-10 Heynemann Tom A. Method and apparatus for ensuring multi-threaded transaction ordering in a strongly ordered computer interconnect
US6976115B2 (en) * 2002-03-28 2005-12-13 Intel Corporation Peer-to-peer bus segment bridging
US7490218B2 (en) * 2004-01-22 2009-02-10 University Of Washington Building a wavecache
WO2005121948A1 (en) * 2004-06-02 2005-12-22 Sun Microsystems, Inc. Method and apparatus for enforcing membar instruction semantics in an execute-ahead processor
US7644409B2 (en) * 2004-06-04 2010-01-05 Sun Microsystems, Inc. Techniques for accessing a shared resource using an improved synchronization mechanism
US7725618B2 (en) * 2004-07-29 2010-05-25 International Business Machines Corporation Memory barriers primitives in an asymmetric heterogeneous multiprocessor environment
US7454570B2 (en) * 2004-12-07 2008-11-18 International Business Machines Corporation Efficient memory update process for on-the-fly instruction translation for well behaved applications executing on a weakly-ordered processor
US7500045B2 (en) * 2005-03-23 2009-03-03 Qualcomm Incorporated Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system
US9026744B2 (en) * 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing
US7917676B2 (en) * 2006-03-10 2011-03-29 Qualcomm, Incorporated Efficient execution of memory barrier bus commands with order constrained memory accesses
JP2009269935A (ja) 2008-04-30 2009-11-19 Sumitomo Metal Mining Co Ltd 金色系金属光沢を有する銀膜

Also Published As

Publication number Publication date
KR20090051238A (ko) 2009-05-21
US20080059683A1 (en) 2008-03-06
TW200819989A (en) 2008-05-01
DE602007014226D1 (de) 2011-06-09
JP2010501962A (ja) 2010-01-21
KR101056153B1 (ko) 2011-08-11
US7783817B2 (en) 2010-08-24
CN101506783A (zh) 2009-08-12
ATE507530T1 (de) 2011-05-15
CN101506783B (zh) 2011-04-20
EP2062147B1 (en) 2011-04-27
EP2062147A1 (en) 2009-05-27
WO2008028101A1 (en) 2008-03-06

Similar Documents

Publication Publication Date Title
JP4891405B2 (ja) バリア操作の条件付き伝搬のための方法および装置
US6026464A (en) Memory control system and method utilizing distributed memory controllers for multibank memory
US5524235A (en) System for arbitrating access to memory with dynamic priority assignment
US6295586B1 (en) Queue based memory controller
US6606676B1 (en) Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US4698753A (en) Multiprocessor interface device
JP2821552B2 (ja) 2経路データ転送装置
US5535341A (en) Apparatus and method for determining the status of data buffers in a bridge between two buses during a flush operation
US6405271B1 (en) Data flow control mechanism for a bus supporting two-and three-agent transactions
US5854906A (en) Method and apparatus for fast-forwarding slave request in a packet-switched computer system
US6675251B1 (en) Bridge device for connecting multiple devices to one slot
US8990456B2 (en) Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response
US5519872A (en) Fast address latch with automatic address incrementing
US6606677B1 (en) High speed interrupt controller
JP2002222163A (ja) グローバルdmaアクセス用の結合サブシステムメモリバスを有するマルチコアdspデバイス
JP2023505261A (ja) メモリと分散計算アレイとの間のデータ転送
US5930502A (en) Method for sharing a random-access memory between two asynchronous processors and electronic circuit for the implementation of this method
JP3600536B2 (ja) 書き込みデータの破壊を制限する方法及びシステムとpciバス・システム
US9858222B2 (en) Register access control among multiple devices
US6985982B2 (en) Active ports in a transfer controller with hub and ports
US6647450B1 (en) Multiprocessor computer systems with command FIFO buffer at each target device
US5809534A (en) Performing a write cycle to memory in a multi-processor system
US7774513B2 (en) DMA circuit and computer system
US6009482A (en) Method and apparatus for enabling cache streaming
KR20230170995A (ko) 스케일러블 인터럽트들

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110415

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111115

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111215

R150 Certificate of patent or registration of utility model

Ref document number: 4891405

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees