JP6240809B2 - 弱く順序付けられたドメイン内のデバイスへの強く順序付けられた書込みトランザクションのブリッジング、ならびに関連する装置、方法、およびコンピュータ可読媒体 - Google Patents

弱く順序付けられたドメイン内のデバイスへの強く順序付けられた書込みトランザクションのブリッジング、ならびに関連する装置、方法、およびコンピュータ可読媒体 Download PDF

Info

Publication number
JP6240809B2
JP6240809B2 JP2017511747A JP2017511747A JP6240809B2 JP 6240809 B2 JP6240809 B2 JP 6240809B2 JP 2017511747 A JP2017511747 A JP 2017511747A JP 2017511747 A JP2017511747 A JP 2017511747A JP 6240809 B2 JP6240809 B2 JP 6240809B2
Authority
JP
Japan
Prior art keywords
write
transaction
strongly ordered
write transactions
consumer
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.)
Active
Application number
JP2017511747A
Other languages
English (en)
Other versions
JP2017528827A (ja
Inventor
ランドール・ジョン・パスカレッラ
ジャヤ・プラカシュ・スブラマニアム・ガナサン
トゥオン・クアン・トロン
グルシャンカール・ラジャマーニ
ジョゼフ・ジェラルド・マクドナルド
トーマス・フィリップ・スパイアー
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2017528827A publication Critical patent/JP2017528827A/ja
Application granted granted Critical
Publication of JP6240809B2 publication Critical patent/JP6240809B2/ja
Active 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4013Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
    • 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
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • 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
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • 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
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Between Computers (AREA)

Description

優先権の主張
本出願は、参照によりその全体が本明細書に組み込まれている、2014年9月12日に出願した、「BRIDGING STRONGLY ORDERED WRITE TRANSACTIONS TO DEVICES IN WEAKLY ORDERED DOMAINS, AND RELATED APPARATUSES, METHODS, AND COMPUTER-READABLE MEDIA」と題する、米国特許出願第14/484,624号の優先権を主張するものである。
本開示の技術は、全体的に、プロセッサベースのコンピュータシステム内のバス相互接続を介してポステッド書込みトランザクション(posted write transactions)をパイプライン化することに関する。
周辺コンポーネント相互接続(PCI)ベースの相互接続を含むものなどの最新のプロセッサベースのコンピュータシステムは、しばしば、一連の書込みトランザクションを発行および/または受信し得る1つまたは複数の周辺デバイスを含む。そのようなデバイスは、一般に、「強く順序付けられた(strongly ordered)」ドメインまたは「弱く順序付けられた(weakly ordered)」ドメインに属するものとして特徴付けられ得る。強く順序付けられたドメイン内のデバイスは、順序付け関係がすべての書込みトランザクション間で維持されることを条件とする仕様の下で動作する。順序付け関係は、消費者(consumer)デバイスで書込みトランザクションが完了する順序が、書込みトランザクションが生産者(producer)デバイスによって送られた順序と同じであることを規定する。対照的には、弱く順序付けられたドメインにおける一連の書込みトランザクションは、(2つのトランザクション間のアドレス重複のような特別の状況がなければ)いかなる固有の順序も持たない。したがって、弱く順序付けられたドメインでは、シリーズ内の書込みトランザクションが消費者デバイスに到達する順序は、書込みトランザクションが送られた順序と必ずしも同じではない。
強く順序付けられたドメイン内の生産者デバイス(すなわち、「強く順序付けられたデバイス」)が弱く順序付けられたドメイン(すなわち、「弱く順序付けられたドメイン」)内の消費者デバイスに一連の書込みトランザクションを送るとき、一連の書込みトランザクションが消費の準備ができていることが消費者デバイスに通知される前に、すべての書込みトランザクションが消費者デバイスによって見られることが重要である。しかしながら、書込みトランザクションの到着の順序は、弱く順序付けられたドメインでは保証されないので、書込みトランザクションは、それらの元の順序から外れて消費者デバイスによって見られる可能性があり、それは、いくつかの状況では問題となる可能性がある。たとえば、消費者デバイスは、シリーズ内のすべての書込みトランザクションが完了する前に、書込みトランザクションが消費の準備ができているという通知を受信する可能性がある。これは、不完全なまたは破損したデータによりシステムの不安定性をもたらす可能性がある。したがって、書込みトランザクションが弱く順序付けられたドメインにわたるときに書込みトランザクションに関するシリアル化された順序付け関係を提供するための機構が必要である。
当技術分野で知られる1つの手法は、一度に1つずつ書込みトランザクションを発行し、次の書込みトランザクションを送る前に前の書込みトランザクションの完了を待つことによってこの要件に対処する。しかしながら、この手法は、許容できないほど長いデータ転送時間をもたらす可能性があり、それは、システム性能に悪影響を及ぼす可能性がある。別の公知の手法は、書込みトランザクションの再試行を検出することによって書込みトランザクションのパイプライン化を提供するように構成され、すべての後続の書込みトランザクションを再試行するようにさらに構成された集中型システムアービタを提供する。いくつかの手法の下で、集中型システムアービタは、それ自体、受信デバイスに代わって書込みトランザクションを順番に再発行する責任を負う可能性がある。集中型システムアービタは、書込みトランザクション間のシリアル化された順序付け関係を保証し得るが、同期して通信する必要があることがある複数の分散型アービタを必要とするより大きいコンピュータシステムでは、拡大がうまくできない可能性がある。
詳細な説明で開示される態様は、強く順序付けられた書込みトランザクションを、弱く順序付けられたドメイン内のデバイスにブリッジすることを含む。関連する装置、方法、およびコンピュータ可読媒体も開示される。この点に関して、ホストブリッジデバイスを含む装置が提供される。ホストブリッジデバイスは、1つまたは複数の強く順序付けられた生産者デバイスから複数の強く順序付けられた書込みトランザクションを受信するように構成される。ホストブリッジデバイスは、弱く順序付けられたドメイン内の1つまたは複数の消費者デバイスに複数の強く順序付けられた書込みトランザクションを発行するようにさらに構成される。ホストブリッジデバイスはまた、1つまたは複数の消費者デバイスのうちの第1の消費者デバイスによって受け入れられない複数の強く順序付けられた書込みトランザクションのうちの第1の書込みトランザクションを検出するように構成される。ホストブリッジデバイスは、加えて、第1の書込みトランザクションに続いて発行され、1つまたは複数の消費者デバイスのそれぞれの消費者デバイスによって受け入れられた1つまたは複数の書込みトランザクションの各々について、それぞれの消費者デバイスに取消しメッセージを送るように構成される。ホストブリッジデバイスは、第1の書込みトランザクションと、第1の書込みトランザクションに続いて発行された1つまたは複数の書込みトランザクションとをリプレイ(replay)するようにさらに構成される。
別の態様では、ホストブリッジデバイスを備える装置が提供される。ホストブリッジデバイスは、1つまたは複数の強く順序付けられた生産者デバイスから複数の強く順序付けられた書込みトランザクションを受信するための手段を備える。ホストブリッジデバイスは、弱く順序付けられたドメイン内の1つまたは複数の消費者デバイスに複数の強く順序付けられた書込みトランザクションを発行するための手段をさらに備える。ホストブリッジデバイスはまた、1つまたは複数の消費者デバイスのうちの第1の消費者デバイスによって受け入れられない複数の強く順序付けられた書込みトランザクションのうちの第1の書込みトランザクションを検出するための手段を備える。ホストブリッジデバイスは、加えて、第1の書込みトランザクションに続いて発行され、1つまたは複数の消費者デバイスのそれぞれの消費者デバイスによって受け入れられた1つまたは複数の書込みトランザクションの各々について、それぞれの消費者デバイスに取消しメッセージを送る手段を備える。ホストブリッジデバイスは、第1の書込みトランザクションと、第1の書込みトランザクションに続いて発行された1つまたは複数の書込みトランザクションとをリプレイするための手段をさらに備える。
別の態様では、強く順序付けられた書込みトランザクションを弱く順序付けられたドメインにブリッジするための方法が提供される。方法は、ホストブリッジデバイスによって、1つまたは複数の強く順序付けられた生産者デバイスから複数の強く順序付けられた書込みトランザクションを受信するステップを備える。方法は、弱く順序付けられたドメイン内の1つまたは複数の消費者デバイスに複数の強く順序付けられた書込みトランザクションを発行するステップをさらに備える。方法はまた、1つまたは複数の消費者デバイスのうちの第1の消費者デバイスによって受け入れられない複数の強く順序付けられた書込みトランザクションのうちの第1の書込みトランザクションを検出するステップを備える。方法は、加えて、第1の書込みトランザクションに続いて発行され、1つまたは複数の消費者デバイスのそれぞれの消費者デバイスによって受け入れられた1つまたは複数の書込みトランザクションの各々について、それぞれの消費者デバイスに取消しメッセージを送るステップを備える。方法は、第1の書込みトランザクションと、第1の書込みトランザクションに続いて発行された1つまたは複数の書込みトランザクションとをリプレイするステップをさらに備える。
別の態様では、プロセッサに1つまたは複数の強く順序付けられた生産者デバイスから複数の強く順序付けられた書込みトランザクションを受信させるコンピュータ実行可能命令を記憶した非一時的コンピュータ可読媒体が提供される。コンピュータ実行可能命令はさらに、プロセッサに、弱く順序付けられたドメイン内の1つまたは複数の消費者デバイスに複数の強く順序付けられた書込みトランザクションを発行させる。コンピュータ実行可能命令はまた、プロセッサに、1つまたは複数の消費者デバイスのうちの第1の消費者デバイスによって受け入れられない複数の強く順序付けられた書込みトランザクションのうちの第1の書込みトランザクションを検出させる。コンピュータ実行可能命令は、加えて、プロセッサに、第1の書込みトランザクションに続いて発行され、1つまたは複数の消費者デバイスのそれぞれの消費者デバイスによって受け入れられた1つまたは複数の書込みトランザクションの各々について、それぞれの消費者デバイスに取消しメッセージを送らせる。コンピュータ実行可能命令はさらに、プロセッサに、第1の書込みトランザクションと、第1の書込みトランザクションに続いて発行された1つまたは複数の書込みトランザクションとをリプレイさせる。
強く順序付けられた書込みトランザクションを弱く順序付けられたドメイン内の消費者デバイスにブリッジするように構成されたホストブリッジデバイスを含む例示的なプロセッサベースのコンピュータシステムのブロック図である。 強く順序付けられた書込みトランザクションを消費者デバイスに発行し、受け入れられない書込みトランザクションを検出し、書込みトランザクションおよびその後の書込みトランザクションを取消し、リプレイする図1のホストブリッジデバイスを示すブロック図である。 強く順序付けられた書込みトランザクションを消費者デバイスに発行し、受け入れられない書込みトランザクションを検出し、書込みトランザクションおよびその後の書込みトランザクションを取消し、リプレイする図1のホストブリッジデバイスを示すブロック図である。 強く順序付けられた書込みトランザクションを消費者デバイスに発行し、受け入れられない書込みトランザクションを検出し、書込みトランザクションおよびその後の書込みトランザクションを取消し、リプレイする図1のホストブリッジデバイスを示すブロック図である。 図1のホストブリッジデバイスの状態遷移を示す例示的な状態機械の図である。 強く順序付けられた書込みトランザクションを弱く順序付けられたドメイン内の消費者デバイスにブリッジするための例示的なプロセスを示すフローチャートである。 強く順序付けられた書込みトランザクションを弱く順序付けられたドメイン内の消費者デバイスにブリッジするための例示的なプロセスを示すフローチャートである。 図1のホストブリッジデバイスを含み得る例示的なプロセッサベースのシステムのブロック図である。
ここで図面を参照し、本開示のいくつかの例示的な対応を説明する。「例示的(exemplary)」という用語は、本明細書では、「例、事例、または例示としての役割を果たす」ことを意味するために使用される。本明細書で「例示的」と記載された任意の態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるべきであるとは限らない。
詳細な説明で開示される態様は、強く順序付けられた書込みトランザクションを弱く順序付けられたドメイン内のデバイスにブリッジすることを含む。関連するデバイス、方法、およびコンピュータ可読媒体も開示される。この点に関して、ホストブリッジデバイスは、1つまたは複数の強く順序付けられた生産者デバイスから複数の強く順序付けられた書込みトランザクションを受信するように構成される。ホストブリッジデバイスは、弱く順序付けられたドメイン内の1つまたは複数の消費者デバイスに複数の強く順序付けられた書込みトランザクションを発行するようにさらに構成される。ホストブリッジデバイスはまた、1つまたは複数の消費者デバイスのうちの第1の消費者デバイスによって受け入れられない複数の強く順序付けられた書込みトランザクションのうちの第1の書込みトランザクションを検出するように構成される。ホストブリッジデバイスは、加えて、第1の書込みトランザクションに続いて発行され、1つまたは複数の消費者デバイスのそれぞれの消費者デバイスによって受け入れられた1つまたは複数の書込みトランザクションの各々について、それぞれの消費者デバイスに取消しメッセージを送るように構成される。ホストブリッジデバイスは、第1の書込みトランザクションと、第1の書込みトランザクションに続いて発行された1つまたは複数の書込みトランザクションとをリプレイするようにさらに構成される。
この点に関して、図1は、強く順序付けられた書込みトランザクションを弱く順序付けられたドメイン内の消費者デバイスにブリッジするように構成されたホストブリッジデバイス12を提供する例示的なプロセッサベースのコンピュータシステム10を示す。プロセッサベースのコンピュータシステム10は、他の要素の中でも、公知のデジタル論理素子、半導体回路、処理コア、および/またはメモリ構造、またはそれらの組合せのうちのいずれか1つを包含し得る。本明細書において説明する態様は、要素の任意の特定の構成には限定されず、開示される技法は、半導体ダイまたはパッケージ上の種々の構造またはレイアウトに容易に拡張することができる。
本明細書で使用される場合、いくつかの態様における単一の「書込みトランザクション」は、複数の段階を含み得ることが理解されるべきである。非限定的な例として、書込みトランザクションは、ホストブリッジデバイス12が書込みトランザクションのアドレスを消費者デバイスに送るアドレス段階を含み得る。アドレス段階には次いで、プロセッサによる処理および/またはメモリデバイスによる記憶のためにホストブリッジデバイス12によってデータが送られるデータ段階が続き得る。
図1中のプロセッサベースのコンピュータシステム10は、1つまたは複数の生産者デバイス14(0)〜14(X)(ここで、X≧0)を含む。1つまたは複数の生産者デバイス14(0)〜14(X)は、書込みトランザクションが生成された同じ順序で書込みトランザクションが宛先に到達することを期待して、一連の1つまたは強く順序付けられた書込みトランザクション(図示せず)を生成するよう構成される。したがって、1つまたは複数の生産者デバイス14(0)〜14(X)は、強く順序付けられたドメイン16に属するものと考えられ得る。いくつかの態様では、1つまたは複数の生産者デバイス14(0)〜14(X)は、周辺コンポーネント相互接続(PCI)仕様に準拠する周辺デバイスまたは相互接続などの強く順序付けられた周辺デバイスを備え得る。
プロセッサベースのコンピュータシステム10はまた、1つまたは複数の消費者デバイス18(0)〜18(Y)(ここで、Y≧0)を含む。1つまたは複数の消費者デバイス18(0)〜18(Y)の各々は、書込みトランザクションが生成された順序に無関係であり得る順序で一連の書込みトランザクションを受信するように構成される。したがって、1つまたは複数の消費者デバイス18(0)〜18(Y)は、弱く順序付けられたドメイン20内に存在すると考えられ得る。いくつかの態様は、1つまたは複数の消費者デバイス18(0)〜18(Y)が各書込みトランザクションのためのデータを消費するためのプロセッサおよび/または各書込みトランザクションのためのデータを含むメモリデバイスを含み得ると規定し得る。
書込みトランザクションは、1つまたは複数の生産者デバイス14(0)〜14(X)から、双方向矢印22および24によって図1中に表されるバス相互接続を介して、1つまたは複数の消費者デバイス18(0)〜18(Y)に通信され得る。強く順序付けられたドメイン16内の生産者デバイス14のうちの1つが弱く順序付けられたドメイン20内の消費者デバイス18のうちの1つに一連の強く順序付けられた書込みトランザクションを通信するとき、すべての書込みトランザクションは、一連の書込みトランザクションが消費のための準備ができていることを消費者デバイス18が通知される前に受信されなければならない。しかしながら、書込みトランザクションの到着の順序は、弱く順序付けられたドメイン20において保証されないので、消費者デバイス18は、書込みトランザクションをそれらの元の順序から外れて受信する可能性があり、それは、不完全なまたは破損したデータによりシステムの不安定性を引き起こす可能性がある。
したがって、弱く順序付けられたドメイン20内の消費者デバイス18への強く順序付けられた書込みトランザクションのブリッジングを提供するために、ホストブリッジデバイス12が提供される。ホストブリッジデバイス12は、書込みトランザクションが消費者デバイス18によって受け入れられない状態を検出し、書込みトランザクションおよびすべてのその後に送られた書込みトランザクションを取り消し、リプレイするための機構を提供する。図1に見られるように、ホストブリッジデバイス12のいくつかの態様は、生産者デバイス14から受信され、消費者デバイス18に発行されるべき書込みトランザクションを記憶するためのトランザクションバッファ26を含み得る。トランザクションバッファ26は、発行されているが、消費者デバイス18によってまだ受け入れられていない書込みトランザクションを保持し得る。ホストブリッジデバイス12は、したがって、許容され得ないシステム性能のペナルティを受けることなく、書込みトランザクションが弱く順序付けられたドメイン20内の消費者デバイス18に正しい順序で発行されることを保証し得る。
図1中のホストブリッジデバイス12によって提供されるブリッジング機構の動作を説明するために、図2A〜図2Cが提供される。図2Aは、弱く順序付けられたドメイン20内の消費者デバイス18に強く順序付けられた書込みトランザクションを発行する図1のホストブリッジデバイス12を示すブロック図である。図2Bは、受け入れられない書込みトランザクションを検出するホストブリッジデバイス12を示し、図2Cは、書込みトランザクションおよび後続の書込みトランザクションを取り消し、リプレイするホストブリッジデバイス12を示す。明瞭にするために、図1の要素は、図2A〜図2Cを説明する際に参照される。
図2Aでは、ホストブリッジデバイス12は、強く順序付けられたドメイン16内の生産者デバイス14から双方向矢印22によって表されるバス相互接続を介して強く順序付けられた書込みトランザクション28(0)〜28(4)を受信している。この例では、強く順序付けられた書込みトランザクション28は、以下の順序、28(0)、28(1)、28(2)、28(3)、および28(4)において発行されたと仮定する。したがって、生産者デバイス14が動作する仕様は、強く順序付けられた書込みトランザクション28がその順序で消費者デバイス18によって見られることになることを規定する。
ホストブリッジデバイス12は、強く順序付けられた書込みトランザクション28をトランザクションバッファ26に記憶する。ホストブリッジデバイス12は、次いで、各々の強く順序付けられた書込みトランザクション28を、弱く順序付けられたドメイン20内の適切な消費者デバイス18に発行する。図2Aに見られるように、ホストブリッジデバイス12は、強く順序付けられた書込みトランザクション28(0)を消費者デバイス18(0)に発行し、強く順序付けられた書込みトランザクション28(1)を消費者デバイス18(Y)に発行する。ホストブリッジデバイス12はさらに、強く順序付けられた書込みトランザクション28(2)を消費者デバイス18(1)に発行し、強く順序付けられた書込みトランザクション28(3)を消費者デバイス18(Y)に発行し、強く順序付けられた書込みトランザクション28(4)を消費者デバイス18(0)に発行する。
(非限定的な例として、通信経路長などの)様々な要因のために、強く順序付けられた書込みトランザクション28は、強く順序付けられた書込みトランザクション28が発行された順序に対応しない順序でそれぞれの消費者デバイス18によって見られ得る。ホストブリッジデバイス12は、したがって、それぞれ、強く順序付けられた書込みトランザクション28を発行した結果を示す消費者デバイス18(0)〜18(Y)からの信号を受信するように構成される。図2Aの例では、受諾応答30および32は、それぞれの消費者デバイス18(0)および18(Y)によるそれぞれの強く順序付けられた書込みトランザクション28(0)および28(1)のアドレス段階および/またはデータ段階の受諾を示す。対照的に、消費者デバイス18(1)によって送られる再試行応答34は、強く順序付けられた書込みトランザクション28(2)が消費者デバイス18(1)によって受け入れられなかったことを示す。強く順序付けられた書込みトランザクション28(2)は、受け入れられず、後続の強く順序付けられた書込みトランザクション28(3)および28(4)は、受け入れられたので、強く順序付けられた書込みトランザクション28は、それらが発行された順序で受信されなかったことがわかる。
ここで図2Bを参照すると、強く順序付けられた書込みトランザクション28のシリアル化を維持するために、ホストブリッジデバイス12は、強く順序付けられた書込みトランザクション28(2)の後に発行された強く順序付けられた書込みトランザクション28(3)および28(4)を「元に戻す(undo)」必要がある。そうするために、ホストブリッジデバイス12は、消費者デバイス18(0)に「トランザクション28(4)を取り消す(CXL TXN)」ために取消しメッセージ36を発行する。取消しメッセージ36は、以前に受け入れられた強く順序付けられた書込みトランザクション28(4)が消費者デバイス18(0)によって削除または無視されるべきであることを消費者デバイス18(0)に示す。いくつかの態様では、取消しメッセージ36は、長さゼロのデータを期待する消費者デバイス18(0)への要求を備え得る。いくつかの態様は、取消しメッセージ36が、強く順序付けられた書込みトランザクション28(4)のデータ段階中に書込みトランザクションデータを伴う所望の書込みストローブ(図示せず)を備え得ることを規定し得る。消費者デバイス18(0)は、書込みストローブが無効であることを検出すると、強く順序付けられた書込みトランザクション28(4)を破棄または無視する。
同様に、ホストブリッジデバイス12は、消費者デバイス18(Y)に「トランザクション28(3)を取り消す(CXL TXN)」ために取消しメッセージ38を発行する。取消しメッセージ38は、以前に受け入れられた強く順序付けられた書込みトランザクション28(3)が消費者デバイス18(Y)によって削除または無視されるべきであることを消費者デバイス18(Y)に示す。
引き続き図2Bを参照すると、ホストブリッジデバイス12は、図2Aの強く順序付けられた書込みトランザクション28(0)および28(1)が両方ともそれぞれの消費者デバイス18(0)および18(Y)によって受け入れられたことを決定する。ホストブリッジデバイス12はまた、図2Aの強く順序付けられた書込みトランザクション28(0)および28(1)のいずれもが依存性の対象とならない(以前に発行されたが、受け入れられていない書込みトランザクションに依存しない)ことを決定する。したがって、図2Bでは、ホストブリッジデバイス12は、トランザクションバッファ26内に以前に記憶された強く順序付けられた書込みトランザクション28(0)および28(1)を除去している。いくつかの態様では、これは、追加の強く順序付けられた書込みトランザクション28が生産者デバイス14から受信されることを可能にするためにトランザクションバッファ26内の空間を開放し得る。
ここで図2Cに戻ると、ホストブリッジデバイス12は、強く順序付けられた書込みトランザクション28(2)とその後の強く順序付けられた書込みトランザクション28(3)および28(4)とをリプレイする。ホストブリッジデバイス12のいくつかの態様は、強く順序付けられた書込みトランザクション28(2)を消費者デバイス18(1)に再発行し、強く順序付けられた書込みトランザクション28(3)を消費者デバイス18(Y)に再発行し、強く順序付けられた書込みトランザクション28(4)を消費者デバイス18(0)に再発行することによって、強く順序付けられた書込みトランザクション28(2)〜28(4)をリプレイすることを規定し得る。このようにして、弱く順序付けられたドメイン20における強く順序付けられた書込みトランザクション28のシリアル化は、維持され得る。
いくつかの態様では、図1のホストブリッジデバイス12の動作ロジックは、各保留中の強く順序付けられた書込みトランザクション28の状態を追跡するための状態機械を含み得る。この点に関して、図3は、図2A〜図2Cの強く順序付けられた書込みトランザクション28のうちの1つに対応し、ホストブリッジデバイス12内の状態遷移を示す例示的な状態機械40を示す。ホストブリッジデバイス12は、強く順序付けられた書込みトランザクション28のうちの1つの現在の状態を各々が表す複数の状態機械40を維持し得ることが理解されるべきである。ホストブリッジデバイス12の態様は、図3に示すものよりも多い状態、少ない状態、または異なる状態を有する他の状態機械を利用し得ることがさらに理解されるべきである。図3の状態機械40を説明する際、図1および図2A〜図2Cの要素が、明瞭にするために参照される。
図3中の状態機械40は、成功(SUCCESS)状態42、再試行(RETRY)状態44、リセット(RESET)状態46、およびゼロ長書込み(ZLW: ZERO-LENGTH WRITE)状態48の4つの状態を含む。ホストブリッジデバイス12が、強く順序付けられた書込みトランザクション28のうちの1つに対して状態機械40を割り振るとき、状態機械40は、デフォルトで成功状態42において開始する。状態機械40は、以下の方法のうちの1つにおいて成功状態42から遷移する。
状態機械40に対応する強く順序付けられた書込みトランザクション28がそれぞれの消費者デバイス18によって受け入れられない場合、状態機械40は、矢印50によって示されるようにリセット状態46に遷移する。
状態機械40に対応する強く順序付けられた書込みトランザクション28が、任意の以前の強く順序付けられた書込みトランザクション28がそのそれぞれの消費者デバイス18によって受け入れられない前に、それぞれの消費者デバイス18によって受け入れられる場合、状態機械40は、矢印52によって示されるようにZLW状態48に遷移する。
以前の強く順序付けられた書込みトランザクション28が、状態機械40に対応する強く順序付けられた書込みトランザクション28が応答を受信する前にそのそれぞれの消費者デバイス18によって受け入れられない場合、状態機械40は、矢印54によって示されるように再試行状態44に遷移する。
そうでなければ、状態機械40は、矢印56によって示されるように成功状態42に留まる。
再試行状態44は、状態機械40に対応する強く順序付けられた書込みトランザクション28が取り消され、リプレイされなければならないことを示す。状態機械40は、以下の方法のうちの1つにおいて再試行状態44から遷移し得る。
状態機械40に対応する強く順序付けられた書込みトランザクション28がそれぞれの消費者デバイス18によって受け入れられない場合、状態機械40は、矢印58によって示されるようにリセット状態46に遷移する。
状態機械40に対応する強く順序付けられた書込みトランザクション28がそれぞれの消費者デバイス18によって受け入れられる場合、状態機械40は、矢印60によって示されるようにZLW状態48に遷移する。
そうでなければ、状態機械40は、矢印62によって示されるように再試行状態44に留まる。
ZLW状態48は、状態機械40に対応する強く順序付けられた書込みトランザクション28が(たとえば、書込みトランザクションのアドレス段階において)成功応答を受信したが、取り消されなければならないことを示す。したがって、状態機械40に対応する強く順序付けられた書込みトランザクション28は、(たとえば、書込みトランザクションのデータ段階において)ゼロバイトデータを生成し、やり直さなければならない。状態機械40は、以下の方法のうちの1つにおいてZLW状態48から遷移し得る。
状態機械40に対応する強く順序付けられた書込みトランザクション28がゼロバイトデータ(図示せず)の生成を完了したとき、状態機械40は、矢印64によって示されるようにリセット状態46に遷移する。
そうでなければ、状態機械40は、矢印65によって示されるようにZLW状態48に留まる。
リセット状態46は、状態機械40に対応する強く順序付けられた書込みトランザクション28をリプレイさせる。状態機械40は、矢印66によって示されるように、次のプロセッサクロックサイクルにおいて成功状態42に遷移することによって、リセット状態46から遷移し得る。
強く順序付けられた書込みトランザクションを弱く順序付けられたドメイン内の消費者デバイスにブリッジするための例示的なプロセッサを示すために、図4Aおよび図4Bが提供される。図4Aは、強く順序付けられた書込みトランザクション28を受信し、強く順序付けられた書込みトランザクション28を弱く順序付けられたドメイン20に発行し、必要ならば、強く順序付けられた書込みトランザクション28を取り消すための図1のホストブリッジデバイス12の動作を示す。図4Bは、強く順序付けられた書込みトランザクション28をリプレイし、オプションでホストブリッジデバイス12のトランザクションバッファ26をクリアするための動作を示す。
図4Aでは、動作は、ホストブリッジデバイス12が1つまたは複数の強く順序付けられた生産者デバイス14から複数の強く順序付けられた書込みトランザクション28を受信して開始する(ブロック68)。上述したように、生産者デバイス14は、PCI仕様に準拠する周辺デバイスまたは相互接続などの、強く順序付けられたメモリデバイスまたは周辺デバイスを備え得る。いくつかの態様では、ホストブリッジデバイス12は複数の強く順序付けられた書込みトランザクション28を、トランザクションバッファ26内にオプションで記憶し得る(ブロック70)。ホストブリッジデバイス12は、次いで、強く順序付けられた書込みトランザクション28を弱く順序付けられたドメイン20内の1つまたは複数の消費者デバイス18に発行する(ブロック72)。消費者デバイス18は、非限定的な例として、弱く順序付けられたメモリデバイスを備え得る。
ホストブリッジデバイス12は、次に、1つまたは複数の消費者デバイス18のうちの第1の消費者デバイス18(1)によって受け入れられない複数の強く順序付けられた書込みトランザクション28のうちの第1の書込みトランザクション28(2)を検出する(ブロック74)。いくつかの態様は、第1の消費者デバイス18(1)によって受け入れられない第1の書込みトランザクション28(2)を検出することが、ホストブリッジデバイス12が第1の消費者デバイス18(1)から再試行応答34を受信すること(ブロック76)を含み得ることを規定し得る。第1の書込みトランザクション28(2)に続いて発行され、1つまたは複数の消費者デバイス18のうちのそれぞれの消費者デバイス18(Y)、18(0)によって受け入れられた1つまたは複数の書込みトランザクション28(3)、28(4)の各々について、ホストブリッジデバイス12は、取消しメッセージ38、36をそれぞれの消費者デバイス18(Y)、18(0)に送る(ブロック78)。いくつかの態様では、取消しメッセージ38、36は、それぞれの消費者デバイス18(Y)、18(0)へのゼロ長データを期待する要求を備え得る(ブロック80)。動作は次いで、図4Bのブロック82で継続する。
図4Bでは、ホストブリッジデバイス12は次いで、第1の書込みトランザクション28(2)と、第1の書込みトランザクション28(2)に続いて発行された1つまたは複数の書込みトランザクション28(3)、28(4)とをリプレイする(ブロック82)。このようにして、強く順序付けられた書込みトランザクション28のシリアル化は、弱く順序付けられたドメイン20内で維持され得る。いくつかの態様は、ホストブリッジデバイス12が、1つまたは複数の消費者デバイス18のうちの第2の消費者デバイス18(0)によって受け入れられ、依存性の対象とならない、トランザクションバッファ26内に記憶された複数の強く順序付けられた書込みトランザクション28のうちの第2の書込みトランザクション28(0)を検出する(ブロック84)。ホストブリッジデバイス12は次いで、トランザクションバッファ26から第2の書込みトランザクション28(0)を除去し得る(ブロック86)。
本明細書で開示される態様に従って強く順序付けられた書込みトランザクションを弱く順序付けられたドメイン内のデバイスにブリッジすることは、任意のプロセッサベースのデバイスにおいて提供され得、または任意のプロセッサベースのデバイスに組み込まれ得る。例は、限定はしないが、セットトップボックス、娯楽ユニット、ナビゲーションデバイス、通信デバイス、固定位置データユニット、モバイル位置データユニット、モバイル電話、セルラー電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤを含む。
この点に関して、図5は、図1に示すホストブリッジデバイス(HBD)12を用い得るプロセッサベースのシステム88の一例を示す。この例では、プロセッサベースのシステム88は、1つまたは複数のプロセッサ92を各々が含む1つまたは複数の中央処理装置(CPU)90を含む。CPU90は、一時的に記憶されたデータへの迅速なアクセスのためにプロセッサ92に結合されたキャッシュメモリ94を有し得る。CPU90は、システムバス96に結合され、プロセッサベースのシステム88内に含まれるマスタデバイスおよびスレーブデバイスと連結し得る。よく知られているように、CPU90は、システムバス96を介してアドレス情報、制御情報、およびデータ情報を交換することによってこれらの他のデバイスと通信する。たとえば、CPU90は、メモリコントローラ100と1つまたは複数のメモリユニット102(0)〜102(N)とを含み得るメモリシステム98にバストランザクション要求を通信し得る。
他のマスタデバイスおよびスレーブデバイスは、システムバス96に接続され得る。図5に示すように、これらのデバイスは、例として、1つまたは複数の入力デバイス104と、1つまたは複数の出力デバイス106と、1つまたは複数のネットワークインターフェースデバイス108と、1つまたは複数のディスプレイコントローラ110とを含み得る。入力デバイス104は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む任意のタイプの入力デバイスを含み得る。出力デバイス106は、限定はしないが、オーディオ、ビデオ、他の視覚的インジケータなどを含む任意のタイプの出力デバイスを含み得る。ネットワークインターフェースデバイス108は、ネットワーク112との間でデータの交換を可能にするように構成された任意のデバイスであり得る。ネットワーク112は、限定はしないが、ワイヤードまたはワイヤレスネットワーク、施設または公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む任意のタイプのネットワークであり得る。ネットワークインターフェースデバイス108は、所望の任意のタイプの通信プロトコルをサポートするように構成され得る。
CPU90はまた、1つまたは複数のディスプレイ114に送られる情報を制御するために、システムバス96を介してディスプレイコントローラ110にアクセスするように構成され得る。ディスプレイコントローラ110は、表示されるべき情報をディスプレイ114に適したフォーマットに処理する1つまたは複数のビデオプロセッサ116を介して、情報を表示されるようにディスプレイ114に送る。ディスプレイ114は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む任意のタイプのディスプレイを含み得る。
本明細書で開示されるいくつかの態様は、図1の強く順序付けられたドメイン16が、図5の入力デバイス104、出力デバイス106、ネットワークインターフェースデバイス108、およびディスプレイコントローラ110のうちの1つまたは複数を備えることを規定し得る。図1の弱く順序付けられたドメイン20は、図5のシステム96、メモリシステム98、およびCPU90を備え得る。したがって、ホストブリッジデバイス12は、強く順序付けられたドメイン16のデバイスから弱く順序付けられたドメイン20内のデバイスへの書込みトランザクションのブリッジングを提供するように動作し得る。非限定的な例として、入力デバイス104からメモリシステム98への書込みトランザクション(図示せず)は、ホストブリッジデバイス12によってブリッジされ得る。このようにして、ホストブリッジデバイス12は、強く順序付けられたドメイン16内の入力デバイス104からの書込みトランザクションが弱く順序付けられたドメイン20内のメモリシステム98によって正しい順序で処理されることを保証し得る。
当業者は、本明細書で開示される態様に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムが、電子ハードウェア、メモリもしくは別のコンピュータ可読媒体内に記憶され、プロセッサもしくは他の処理デバイスによって実行される命令、または両方の組合せとして実装され得ることをさらに理解するであろう。本明細書で説明されるマスタデバイスおよびスレーブデバイスは、例として、任意の回路、ハードウェアコンポーネント、集積回路(IC)、またはICEBERGチップ内で用いられ得る。本明細書において開示されるメモリは、任意のタイプおよびサイズのメモリとすることができ、所望の任意のタイプの情報を記憶するように構成することができる。この互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップは、それらの機能の点から一般的に上記で説明されている。そのような機能がどのように実現されるかは、特定の適用例、設計上の選択、および/またはシステム全体に課された設計制約によって決まる。当業者は、説明された機能を特定の適用例ごとに様々な方法で実現することができるが、そのような実装形態の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
本明細書で開示される態様に関連して説明された様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタロジック、ディスクリートハードウェアコンポーネント、または、本明細書で説明される機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。プロセッサは、マイクロプロセッサであり得るが、代替では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装することができる。
本明細書で開示される態様は、ハードウェアにおいて、およびハードウェア内に記憶された命令において具体化され得、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読出し専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または、当該技術分野で周知の任意の他の形態のコンピュータ可読媒体内に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替では、記憶媒体は、プロセッサと一体化され得る。プロセッサおよび記憶媒体は、ASIC内に存在する場合がある。ASICは、リモート局内に存在する場合がある。代替形態では、プロセッサおよび記憶媒体は、個別構成要素として、リモート局、基地局、またはサーバ内に存在する場合がある。
本明細書中の例示的な態様のいずれかで説明される動作ステップは、例および議論を提供するために説明されることにも留意されたい。説明される動作は、図示された順番以外の多数の異なる順番で実行され得る。さらに、単一の動作ステップにおいて説明される動作は、実際にはいくつかの異なるステップにおいて実行される場合がある。さらに、例示的な態様において論じられる1つまたは複数の動作ステップが組み合わせられる場合がある。フローチャート図に示された動作ステップは、当業者には容易に明らかであるように、多数の異なる変更を受け得ることが理解されるべきである。当業者は、情報および信号が様々な異なる技術および技法のいずれかを使用して表され得ることも理解するであろう。たとえば、上記の説明全体を通して参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表される場合がある。
本開示の上記の説明は、当業者が本開示を作成または仕様することを可能にするために提供される。本開示に対する様々な修正は、当業者に容易に明らかになり、本明細書で定義する一般原理は、本開示の趣旨または範囲を逸脱することなく、他の変形形態に適用される場合がある。したがって、本開示は、本明細書に記載の例および設計に限定されることを意図するものではなく、本明細書で開示される原理および新規の特徴と一致する最も広い範囲が与えられるべきである。
10 プロセッサベースのコンピュータシステム
12 ホストブリッジデバイス
14(0)〜14(X) 生産者デバイス
16 強く順序付けられたドメイン
18(0)〜18(Y) 消費者デバイス
20 弱く順序付けられたドメイン
22 双方向矢印
24 双方向矢印
26 トランザクションバッファ
28(0)〜28(4) 強く順序付けられた書込みトランザクション
30 受諾応答
32 受諾応答
34 再試行応答
36 取消しメッセージ
38 取消しメッセージ
40 状態機械
42 成功状態
44 再試行状態
46 リセット状態
48 ゼロ長書込み(ZLW)状態
50 矢印
52 矢印
54 矢印
56 矢印
58 矢印
60 矢印
62 矢印
64 矢印
65 矢印
66 矢印
88 プロセッサベースのシステム
90 中央処理装置(CPU)
92 プロセッサ
94 キャッシュメモリ
96 システムバス
98 メモリシステム
100 メモリコントローラ
102(0)〜102(N) メモリユニット
104 入力デバイス
106 出力デバイス
108 ネットワークインターフェースデバイス
110 ディスプレイコントローラ
112 ネットワーク
114 ディスプレイ
116 ビデオプロセッサ

Claims (20)

  1. ホストブリッジデバイスを含む装置であって、前記ホストブリッジデバイスが、
    1つまたは複数の強く順序付けられた生産者デバイスから複数の強く順序付けられた書込みトランザクションを受信し、
    弱く順序付けられたドメイン内の1つまたは複数の消費者デバイスに前記複数の強く順序付けられた書込みトランザクションを発行し、
    前記1つまたは複数の消費者デバイスのうちの第1の消費者デバイスによって受け入れられない前記複数の強く順序付けられた書込みトランザクションのうちの第1の書込みトランザクションを検出し、
    前記第1の書込みトランザクションに続いて発行され、前記1つまたは複数の消費者デバイスのそれぞれの消費者デバイスによって受け入れられた1つまたは複数の書込みトランザクションの各々について、前記それぞれの消費者デバイスに取消しメッセージを送り、
    前記第1の書込みトランザクションと、前記第1の書込みトランザクションに続いて発行された前記1つまたは複数の書込みトランザクションとをリプレイするように構成された、装置。
  2. 前記複数の強く順序付けられた書込みトランザクションを記憶するように構成されたトランザクションバッファを備え、
    前記ホストブリッジデバイスが、前記1つまたは複数の消費者デバイスに前記複数の強く順序付けられた書込みトランザクションを発行する前に、前記トランザクションバッファ内に前記複数の強く順序付けられた書込みトランザクションを記憶するように構成された、請求項1に記載の装置。
  3. 前記1つまたは複数の消費者デバイスのうちの第2の消費者デバイスによって受け入れられ、依存性の対象とならない、前記トランザクションバッファ内に記憶された前記複数の強く順序付けられた書込みトランザクションのうちの第2の書込みトランザクションを検出し、
    前記トランザクションバッファから前記第2の書込みトランザクションを除去するようにさらに構成された、請求項2に記載の装置。
  4. 前記第1の消費者デバイスから再試行応答を受信することによって、前記第1の消費者デバイスによって受け入れられない前記第1の書込みトランザクションを検出するように構成された、請求項1に記載の装置。
  5. 前記それぞれの消費者デバイスにゼロ長データを期待する要求を送ることによって、前記それぞれの消費者デバイスに前記取消しメッセージを送るように構成された、請求項1に記載の装置。
  6. 1つまたは複数の周辺コンポーネント相互接続(PCI)生産者デバイスから前記複数の強く順序付けられた書込みトランザクションを受信するように構成された、請求項1に記載の装置。
  7. 集積回路(IC)に組み込まれた請求項1に記載の装置。
  8. セットトップボックス、娯楽ユニット、ナビゲーションデバイス、通信デバイス、固定位置データユニット、モバイル位置データユニット、モバイル電話、セルラー電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤから構成されたグループから選択されたデバイスに組み込まれた請求項1に記載の装置。
  9. ホストブリッジデバイスを備える装置であって、前記ホストブリッジデバイスが、
    1つまたは複数の強く順序付けられた生産者デバイスから複数の強く順序付けられた書込みトランザクションを受信するための手段と、
    弱く順序付けられたドメイン内の1つまたは複数の消費者デバイスに前記複数の強く順序付けられた書込みトランザクションを発行するための手段と、
    前記1つまたは複数の消費者デバイスのうちの第1の消費者デバイスによって受け入れられない前記複数の強く順序付けられた書込みトランザクションのうちの第1の書込みトランザクションを検出するための手段と、
    前記第1の書込みトランザクションに続いて発行され、前記1つまたは複数の消費者デバイスのそれぞれの消費者デバイスによって受け入れられた1つまたは複数の書込みトランザクションの各々について、前記それぞれの消費者デバイスに取消しメッセージを送るための手段と、
    前記第1の書込みトランザクションと、前記第1の書込みトランザクションに続いて発行された前記1つまたは複数の書込みトランザクションとをリプレイするための手段と
    を備える、装置。
  10. 強く順序付けられた書込みトランザクションを弱く順序付けられたドメインにブリッジするための方法であって、
    ホストブリッジデバイスによって、1つまたは複数の強く順序付けられた生産者デバイスから複数の強く順序付けられた書込みトランザクションを受信するステップと、
    弱く順序付けられたドメイン内の1つまたは複数の消費者デバイスに前記複数の強く順序付けられた書込みトランザクションを発行するステップと、
    前記1つまたは複数の消費者デバイスのうちの第1の消費者デバイスによって受け入れられない前記複数の強く順序付けられた書込みトランザクションのうちの第1の書込みトランザクションを検出するステップと、
    前記第1の書込みトランザクションに続いて発行され、前記1つまたは複数の消費者デバイスのそれぞれの消費者デバイスによって受け入れられた1つまたは複数の書込みトランザクションの各々について、前記それぞれの消費者デバイスに取消しメッセージを送るステップと、
    前記第1の書込みトランザクションと、前記第1の書込みトランザクションに続いて発行された前記1つまたは複数の書込みトランザクションとをリプレイするステップと
    を備える方法。
  11. 前記1つまたは複数の消費者デバイスに前記複数の強く順序付けられた書込みトランザクションを発行する前に、トランザクションバッファ内に前記複数の強く順序付けられた書込みトランザクションを記憶するステップをさらに備える、請求項10に記載の方法。
  12. 前記1つまたは複数の消費者デバイスのうちの第2の消費者デバイスによって受け入れられ、依存性の対象とならない、前記トランザクションバッファ内に記憶された前記複数の強く順序付けられた書込みトランザクションのうちの第2の書込みトランザクションを検出するステップと、
    前記トランザクションバッファから前記第2の書込みトランザクションを除去するステップと
    をさらに備える、請求項11に記載の方法。
  13. 前記第1の消費者デバイスによって受け入れられない前記第1の書込みトランザクションを検出するステップが、前記第1の消費者デバイスから再試行応答を受信するステップを備える、請求項10に記載の方法。
  14. 前記それぞれの消費者デバイスに前記取消しメッセージを送るステップが、前記それぞれの消費者デバイスにゼロ長データを期待する要求を送るステップを備える、請求項10に記載の方法。
  15. 前記1つまたは複数の強く順序付けられた生産者デバイスから前記複数の強く順序付けられた書込みトランザクションを受信するステップが、1つまたは複数の周辺コンポーネント相互接続(PCI)生産者デバイスから前記複数の強く順序付けられた書込みトランザクションを受信するステップを備える、請求項10に記載の方法。
  16. プロセッサに、
    1つまたは複数の強く順序付けられた生産者デバイスから複数の強く順序付けられた書込みトランザクションを受信させ、
    弱く順序付けられたドメイン内の1つまたは複数の消費者デバイスに前記複数の強く順序付けられた書込みトランザクションを発行させ、
    前記1つまたは複数の消費者デバイスのうちの第1の消費者デバイスによって受け入れられない前記複数の強く順序付けられた書込みトランザクションのうちの第1の書込みトランザクションを検出させ、
    前記第1の書込みトランザクションに続いて発行され、前記1つまたは複数の消費者デバイスのそれぞれの消費者デバイスによって受け入れられた1つまたは複数の書込みトランザクションの各々について、前記それぞれの消費者デバイスに取消しメッセージを送らせ、
    第1の書込みトランザクションと、前記第1の書込みトランザクションに続いて発行された前記1つまたは複数の書込みトランザクションとをリプレイさせるコンピュータ実行可能命令を記憶した非一時的コンピュータ可読記憶媒体。
  17. 前記プロセッサに、さらに、前記1つまたは複数の消費者デバイスに前記複数の強く順序付けられた書込みトランザクションを発行する前に、トランザクションバッファ内に前記複数の強く順序付けられた書込みトランザクションを記憶させる前記コンピュータ実行可能命令を記憶した請求項16に記載の非一時的コンピュータ可読記憶媒体。
  18. 前記プロセッサに、さらに、
    前記1つまたは複数の消費者デバイスのうちの第2の消費者デバイスによって受け入れられ、依存性の対象とならない、前記トランザクションバッファ内に記憶された前記複数の強く順序付けられた書込みトランザクションのうちの第2の書込みトランザクションを検出させ、
    前記トランザクションバッファから前記第2の書込みトランザクションを除去させる前記コンピュータ実行可能命令を記憶した請求項17に記載の非一時的コンピュータ可読記憶媒体。
  19. 前記プロセッサに、さらに、前記第1の消費者デバイスから再試行応答を受信することによって、前記第1の消費者デバイスによって受け入れられない前記第1の書込みトランザクションを検出させる前記コンピュータ実行可能命令を記憶した請求項16に記載の非一時的コンピュータ可読記憶媒体。
  20. 前記プロセッサに、さらに、前記それぞれの消費者デバイスにゼロ長データを期待する要求を送ることによって、前記それぞれの消費者デバイスに前記取消しメッセージを送らせる前記コンピュータ実行可能命令を記憶した請求項16に記載の非一時的コンピュータ可読記憶媒体。
JP2017511747A 2014-09-12 2015-08-31 弱く順序付けられたドメイン内のデバイスへの強く順序付けられた書込みトランザクションのブリッジング、ならびに関連する装置、方法、およびコンピュータ可読媒体 Active JP6240809B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/484,624 2014-09-12
US14/484,624 US9594713B2 (en) 2014-09-12 2014-09-12 Bridging strongly ordered write transactions to devices in weakly ordered domains, and related apparatuses, methods, and computer-readable media
PCT/US2015/047727 WO2016040034A1 (en) 2014-09-12 2015-08-31 Bridging strongly ordered write transactions to devices in weakly ordered domains, and related apparatuses, methods, and computer-readable media

Publications (2)

Publication Number Publication Date
JP2017528827A JP2017528827A (ja) 2017-09-28
JP6240809B2 true JP6240809B2 (ja) 2017-11-29

Family

ID=54106004

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017511747A Active JP6240809B2 (ja) 2014-09-12 2015-08-31 弱く順序付けられたドメイン内のデバイスへの強く順序付けられた書込みトランザクションのブリッジング、ならびに関連する装置、方法、およびコンピュータ可読媒体

Country Status (6)

Country Link
US (1) US9594713B2 (ja)
EP (1) EP3191971B1 (ja)
JP (1) JP6240809B2 (ja)
KR (1) KR101753906B1 (ja)
CN (1) CN106796561B (ja)
WO (1) WO2016040034A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10528253B2 (en) * 2014-11-05 2020-01-07 International Business Machines Corporation Increased bandwidth of ordered stores in a non-uniform memory subsystem
CN106445849B (zh) * 2016-10-21 2019-05-28 郑州云海信息技术有限公司 一种多控制器中处理有序命令的方法
US10725955B2 (en) * 2017-12-08 2020-07-28 Arm Limited Power control of inter-domain transaction bridge
CN116940934A (zh) * 2021-03-31 2023-10-24 华为技术有限公司 读写操作执行方法和SoC芯片

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751986A (en) * 1994-03-01 1998-05-12 Intel Corporation Computer system with self-consistent ordering mechanism
US5835741A (en) * 1996-12-31 1998-11-10 Compaq Computer Corporation Bus-to-bus bridge in computer system, with fast burst memory range
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
US6175889B1 (en) 1998-10-21 2001-01-16 Compaq Computer Corporation Apparatus, method and system for a computer CPU and memory to high speed peripheral interconnect bridge having a plurality of physical buses with a single logical bus number
US6405276B1 (en) * 1998-12-10 2002-06-11 International Business Machines Corporation Selectively flushing buffered transactions in a bus bridge
JP2001216259A (ja) * 2000-02-04 2001-08-10 Hitachi Ltd マルチプロセッサシステム及びそのトランザックション制御方法
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
US6631374B1 (en) 2000-09-29 2003-10-07 Oracle Corp. System and method for providing fine-grained temporal database access
US6754737B2 (en) 2001-12-24 2004-06-22 Hewlett-Packard Development Company, L.P. Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect
US7162546B2 (en) * 2001-12-27 2007-01-09 Intel Corporation Reordering unrelated transactions from an ordered interface
US7353301B2 (en) 2004-10-29 2008-04-01 Intel Corporation Methodology and apparatus for implementing write combining
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
US7457905B2 (en) * 2005-08-29 2008-11-25 Lsi Corporation Method for request transaction ordering in OCP bus to AXI bus bridge design
US8019944B1 (en) * 2005-09-28 2011-09-13 Oracle America, Inc. Checking for a memory ordering violation after a speculative cache write
US7721023B2 (en) * 2005-11-15 2010-05-18 International Business Machines Corporation I/O address translation method for specifying a relaxed ordering for I/O accesses
JP4779010B2 (ja) * 2006-02-27 2011-09-21 富士通株式会社 バッファリング装置およびバッファリング方法
US7917676B2 (en) * 2006-03-10 2011-03-29 Qualcomm, Incorporated Efficient execution of memory barrier bus commands with order constrained memory accesses
US7610458B2 (en) 2006-04-25 2009-10-27 International Business Machines Corporation Data processing system, processor and method of data processing that support memory access according to diverse memory models
US8645632B2 (en) * 2009-02-04 2014-02-04 Oracle America, Inc. Speculative writestream transaction
US8949500B2 (en) * 2011-08-08 2015-02-03 Lsi Corporation Non-blocking processor bus bridge for network processors or the like
CN102004709B (zh) * 2009-08-31 2013-09-25 国际商业机器公司 处理器局部总线到高级可扩展接口之间的总线桥及映射方法
US8285908B2 (en) * 2010-01-24 2012-10-09 Freescale Semiconductor, Inc. Bus bridge and method for interfacing out-of-order bus and multiple ordered buses
JP5625737B2 (ja) 2010-10-22 2014-11-19 富士通株式会社 転送装置、転送方法および転送プログラム
US8782356B2 (en) 2011-12-09 2014-07-15 Qualcomm Incorporated Auto-ordering of strongly ordered, device, and exclusive transactions across multiple memory regions
US9229896B2 (en) * 2012-12-21 2016-01-05 Apple Inc. Systems and methods for maintaining an order of read and write transactions in a computing system
US9495318B2 (en) 2013-11-25 2016-11-15 Apple Inc. Synchronizing transactions for a single master over multiple busses

Also Published As

Publication number Publication date
CN106796561B (zh) 2018-08-28
EP3191971B1 (en) 2020-01-01
KR101753906B1 (ko) 2017-07-04
US20160077991A1 (en) 2016-03-17
CN106796561A (zh) 2017-05-31
KR20170046682A (ko) 2017-05-02
WO2016040034A1 (en) 2016-03-17
JP2017528827A (ja) 2017-09-28
EP3191971A1 (en) 2017-07-19
US9594713B2 (en) 2017-03-14

Similar Documents

Publication Publication Date Title
US9053058B2 (en) QoS inband upgrade
JP6173603B2 (ja) フラッシュメモリにおけるコマンド完了の確認
JP6240809B2 (ja) 弱く順序付けられたドメイン内のデバイスへの強く順序付けられた書込みトランザクションのブリッジング、ならびに関連する装置、方法、およびコンピュータ可読媒体
US9520865B2 (en) Delay circuits and related systems and methods
TW591410B (en) Method and apparatus for detecting time domains on a communication channel
TW201633166A (zh) 用於動態列舉匯流排之預定靜態列舉
JP2016515262A (ja) 命令処理回路における冗長同期バリアの削除と、関連プロセッサシステム、方法、およびコンピュータ可読媒体
US9842067B2 (en) Processor communications
US20150323958A1 (en) Clock skew management systems, methods, and related components
US9142268B2 (en) Dual-voltage domain memory buffers, and related systems and methods
EP3420462A2 (en) Bus bridge for translating requests between a module bus and an axi bus
US9658645B2 (en) Control circuits for generating output enable signals, and related systems and methods
JP6317339B2 (ja) レジスタ関連優先度に基づく実行パイプラインへの命令の発行、ならびに関係する命令処理回路、プロセッサシステム、方法、およびコンピュータ可読媒体
US9760515B2 (en) Shared control of a phase locked loop (PLL) for a multi-port physical layer (PHY)
TW202234828A (zh) 以減少的電力消耗支援增加的資料傳輸介面頻率的資料管線電路及相關方法
EP3739463B1 (en) Circuit for asynchronous data transfer
US20120065955A1 (en) Modeling Output Delay of a Clocked Storage Element(s)
US11327922B2 (en) Bus ownership for a system power management interface (SPMI) bus
JP6393013B1 (ja) リトライバスコヒーレンシプロトコルおよびインオーダーレスポンス非リトライバスコヒーレンシプロトコルを使用するプロセッサベースシステムにおけるデッドロックの回避
JP2006164119A (ja) データ処理装置
JP2008046874A (ja) データ転送装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170417

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170417

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170809

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: 20171006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171106

R150 Certificate of patent or registration of utility model

Ref document number: 6240809

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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