JP2011138481A - インターコネクトにおけるデータ・ストア・メインテナンス要求 - Google Patents
インターコネクトにおけるデータ・ストア・メインテナンス要求 Download PDFInfo
- Publication number
- JP2011138481A JP2011138481A JP2010229679A JP2010229679A JP2011138481A JP 2011138481 A JP2011138481 A JP 2011138481A JP 2010229679 A JP2010229679 A JP 2010229679A JP 2010229679 A JP2010229679 A JP 2010229679A JP 2011138481 A JP2011138481 A JP 2011138481A
- Authority
- JP
- Japan
- Prior art keywords
- barrier
- transaction request
- request
- transaction
- domain
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1621—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Transfer Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
- Circuit For Audible Band Transducer (AREA)
- Storage Device Security (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Small-Scale Networks (AREA)
- Logic Circuits (AREA)
- Measuring Volume Flow (AREA)
- Computer And Data Communications (AREA)
Abstract
【課題】長時間に亘って相互作用プロセスの一貫した挙動を確保することを可能にする仕組みを提供する。
【解決手段】インターコネクト回路は複数のパスのうちの少なくとも1つに沿って、データ・ストア・メインテナンス操作を送信し、引き続きバリア・トランザクション要求を送信することによりデータ・ストア・メインテナンス操作の受信に応答するように構成され、トランザクション要求のストリームの中でデータ・ストア・メインテナンス要求の後に続く少なくともいくつかのトランザクション要求がバリア・トランザクション要求によってデータ・ストア・メインテナンス要求の後に保持されるように、いくつかのトランザクション要求の順序付けを維持するように構成され、少なくとも1つの入力から受信されたトランザクション要求を少なくとも1つの出力へルーティングする制御回路と、を備える。
【選択図】図2
【解決手段】インターコネクト回路は複数のパスのうちの少なくとも1つに沿って、データ・ストア・メインテナンス操作を送信し、引き続きバリア・トランザクション要求を送信することによりデータ・ストア・メインテナンス操作の受信に応答するように構成され、トランザクション要求のストリームの中でデータ・ストア・メインテナンス要求の後に続く少なくともいくつかのトランザクション要求がバリア・トランザクション要求によってデータ・ストア・メインテナンス要求の後に保持されるように、いくつかのトランザクション要求の順序付けを維持するように構成され、少なくとも1つの入力から受信されたトランザクション要求を少なくとも1つの出力へルーティングする制御回路と、を備える。
【選択図】図2
Description
本発明は、キャッシュおよびメモリの両方を含むデータ・ストアを有するデータ処理装置の分野に関する。より具体的には、本発明は、マスタのような1台以上のイニシエータ機器がスレイブのような1台以上の受信機器にアクセスする際に経由することがあるデータ経路を提供するこれらのデータ処理装置用のインターコネクト回路に関する。
インターコネクトはデータ処理システムにおいて異なるコンポーネントの間を接続するため使用される。インターコネクトは、1台以上のイニシエータ機器が1台以上の受信機器にアクセスする際に経由することがあるデータ経路を提供する。イニシエータ機器は、単にトランザクション要求を生成する機器であり、従って、プロセッサのようなマスタでもよく、または、別のインターコネクトでもよい。受信機器は、単にトランザクションを受信する機器であり、周辺機器のようなスレイブでもよく、または、同様に別のインターコネクトでもよい。
システムは、複数のプロセッサが互いに、および複数の機器と通信するとともに、そして異なるストレージ設備が高速データアクセスを提供するキャッシュおよびメモリの両方を含むためにより複雑になるので、マルチプロセッサ・システムのためのソフトウェアを書く著作者は、長時間に亘って相互作用プロセスの一貫した挙動を確保するソフトウェアを書くために、アーキテクチャのトポロジおよびレイテンシについての詳細な知識を必要とする。この詳細な知識がある場合でさえ、この一貫性は達成するのに多大な努力およびコストを使う場合に限り実現される。
プログラマが任意のアーキテクチャのための一般的な方法で長時間に亘って相互作用プロセスの一貫した挙動を確保することを可能にする仕組みを提供することが望ましい。
任意のアーキテクチャをもつ複雑なシステムでは、データ・ストア・メインテナンス操作がいつ完了するかを知ることが重要であるが、それにもかかわらず、システムはデータ・ストアの台数または配置について確実にはわからない場合、台数または配置を追跡することが難しいことがあるので、これらの操作と関連付けられた特有の問題がある。
例えば、少なくともいくつかのキャッシュが2台以上のマスタによってアクセス可能である複数のキャッシュを有するシステムでは、キャッシュを維持するいずれかのキャッシュ・メインテナンス操作に対し、キャッシュのアーキテクチャ、特に、台数および配置についての詳細な知識無しでこのメインテナンスが完了するときを判定することは難しい。よって、データ・ストア・メインテナンス操作は、アーキテクチャについてわからないシステムを設計するときに特有の問題をもたらす。
発明の第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個を除いて全部から必要とされることがある。
いくつかの実施形態では、前記応答信号生成器は前記ブロッキング回路の直ぐ上流に位置していることがある。
応答信号生成器およびブロッキング回路は、バリアがこれらのユニットに到着したときに、パスがクリアされ、その結果、上流で止められたトランザクションがさらに送信可能であり、出口パスがブロックされるように、互いに隣接して配置されることが可能である。
いくつかの実施形態では、前記複数のパスは、前記インターコネクト回路の内部で2個のノードの間に通信パスだけを備える少なくとも1つのバイセクションパスを備え、前記2個のノードは前記バイセクションパスへの入口ノードおよび出口ノードを備え、前記応答信号生成器が前記入口ノードに位置し、前記バリア・トランザクション要求の受信に応答して、前記入口パスに沿って前記応答信号を送信し、前記ブロッキング回路が前記出口ノードに位置し、前記バリア・トランザクション要求の受信に応答して、前記バリア・トランザクション要求が送信されたすべての出口パスを前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求までブロックする。
インターコネクトの内部では、種々のイニシエータ機器と受信機器とを接続するバスが存在する。これらのパスのいくつかは、パスの切断がインターコネクトをこのパスに沿って2つに分離するようにインターコネクト回路の内部の2個のノード間の唯一のリンクであるので、バイセクションパスであると考えることができる経路を形成する。ノードは回路の中のいずれかの点である。このような場合、バリア・トランザクション要求がバイセクションパスへの入口ノードに到達したとき、後方のパスをクリアするため応答信号を送信することにより、バリア・トランザクション要求によってブロックされていたパスをブロック解除することが有利である可能性がある。応答信号生成器がバイセクションパスの始点にある場合、トランザクションが正しい順序でバイセクションパスに入るかのように、ブロッキング回路はこのパスの終点に位置していることがあり、トランザクションは同じ順序でバイセクションパスから出なければならない。
バイセクションパスに沿って進むトランザクション要求は、1個の経路だけに沿って進むことが可能であり、よって、トランザクション要求がバリアと相対的にパスに送出された順序を維持しなければならない。従って、トランザクション要求がバリアと相対的に正しい順序で入口ノードに到達するようにシステムがセットアップされた場合、バリア・トランザクション要求がバイセクションパスへ送出されると、先行のパスがブロック解除され、止められていた後続のトランザクション要求が送信されることを許可することが可能である。よって、すべての先行の命令が送信される前に完了するのを待つのではなく、すべての先行の命令は、バリア・トランザクション要求がバイセクションパスの入口ノードに到達したという判定に応答して、インターコネクトの一部分に沿って送信可能である。このようにして、これらのバリア・トランザクション要求のブロッキング特性と関連付けられたレイテンシは削減可能であり、インターコネクト回路の性能は著しく改善される。
いくつかの実施形態では、前記インターコネクト回路は、前記少なくとも1台のイニシエータ機器からトランザクション要求を受信する前記少なくとも1つの入力のうちの少なくとも1つを備える少なくとも1つのドメインを備え、ドメイン境界は前記少なくとも1つの入力から受信されたトランザクション要求の何らかのマージが前記少なくとも1つのドメインの内部で行われるように配置され、前記バリア・トランザクション要求は前記少なくとも1つのドメインに適用されるかどうかを指示するイニシエータを備え、前記制御回路は、前記少なくとも1つのドメインに適用されることを指示する前記インジケータを備える前記バリア・トランザクション要求の検出に応答し、前記バリア・トランザクションが前記ドメインの外側であることを指示する指標を提供するため前記少なくとも1つのドメインの外側にある。
インターコネクトがドメインの内部にある入力から受信されたトランザクション要求の何らかのマージが内部で行われるインターコネクトのエリアであるとして選択されたドメインの中に配置されている場合、バリア・トランザクション要求がドメインの内部にあるか、または、ドメインの外側にあるかに依存して別々に取り扱われることがあることが認識されている。よって、インターコネクトはドメインの中に配置され、少なくともいくつかのバリア・トランザクションが特有のドメインに適用されるものとしてマークされると考えるのが有利であることがわかり、従って、このようなバリア・トランザクション要求が適用されるドメインの外側であると判定されたとき、このことは、この時点で、バリア挙動が変化するものとして指示される可能性がある。バリア・トランザクション要求がドメインに適用されることを指示するインジケータが、いくつかの実施形態では、要求と関連付けられた明示的なインジケータでもよく、他の実施形態では、インジケータは暗黙的でもよく、制御回路は、そのドメインに適用されるバリア・トランザクション要求のロケーションおよびタイプから判定可能であることに注意を要する。
いくつかの実施形態では、前記指標は、前記バリア・トランザクション要求が今度は適用される前記ドメインの外側であることを指示する前記バリア・トランザクション要求に付属されたインジケータを備える。
このインジケータは、バリアのロケーションに依存してバリアに異なる挙動を与えるために使用可能である。例えば、バリアは、バリアがインジケータによって指示されたバリアのドメインの内側だけをブロックするという特性を有することがあり、よってバリアはこのドメインの外側がおそらく相互結合領域の中にある場合であっても、もはやブロッキングしないことがある。
いくつかの実施形態では、前記制御回路は、所定のタイプのバリア・トランザクション要求が、前記バリアが適用されることを前記インジケータが示すドメインの内部にある場合、この所定のタイプのバリア・トランザクション要求に応答せずに、そして、前記所定のタイプのバリア・トランザクション要求が前記ドメインの外側にある場合、前記所定のタイプのバリア・トランザクション要求に応答するように構成されている応答信号生成器を備える。
ドメインの特性、および、バリア・トランザクション要求が特有のドメインの内部にあるかどうかに依存するバリア・トランザクション要求の特性の変動は、キャッシュ・メインテナンス要求の現在の場所についての指標をイニシエータ機器へ提供するために、本発明の実施形態によって使用可能である。いくつかのバリア・トランザクション要求は、ドメインの内部にあるとき、早期応答の対象にできないので、応答がこのようなバリア・トランザクションから受信される場合、バリア・トランザクション要求が適用されるドメインから出ることを確実にすることが可能である。データ・ストア・メインテナンス・トランザクション要求は、バリア・トランザクションの前に止まることが必要であるので、同様にドメインから出ていなければならない。バリア・トランザクションの使用は、データ・ストア・メインテナンス・トランザクション要求のロケーションがその操作から分離され、監視されることを可能にさせる。
これは、何台のキャッシュが存在するかを知らないという、アーキテクチャ的にとらわれないシステムにおいて、キャッシュ・メインテナンス操作を取り扱うときに特に役立つ可能性がある。このような場合、要求されたメインテナンスがそのキャッシュの内部で実行されたことを指示する
キャッシュから受信された応答は、保留中のメインテナンス操作を依然として有している他のキャッシュがシステムの中に存在するかどうかを、イニシエータ機器に指示しない。よって、ドメインから出るときに応答を生成するドメイン・インジケータを有するバリアを用いる、このようなキャッシュ・メインテナンス操作要求の追跡は、イニシエータ機器が指定されたドメインの内部のすべてのキャッシュ・メインテナンス操作が完了したときを知ることを可能にする。ドメイン特性は、ドメインが適切に選択された場合に、イニシエータ機器がさらなるトランザクション要求を安全に送信できることを知ることを可能にするために、十分な情報であるようなドメイン特性である。
キャッシュから受信された応答は、保留中のメインテナンス操作を依然として有している他のキャッシュがシステムの中に存在するかどうかを、イニシエータ機器に指示しない。よって、ドメインから出るときに応答を生成するドメイン・インジケータを有するバリアを用いる、このようなキャッシュ・メインテナンス操作要求の追跡は、イニシエータ機器が指定されたドメインの内部のすべてのキャッシュ・メインテナンス操作が完了したときを知ることを可能にする。ドメイン特性は、ドメインが適切に選択された場合に、イニシエータ機器がさらなるトランザクション要求を安全に送信できることを知ることを可能にするために、十分な情報であるようなドメイン特性である。
いくつかの実施形態では、前記インターコネクト回路は複数のドメインを備え、前記複数のドメインのうちの1つずつは、前記少なくとも1台のイニシエータ機器からトランザクション要求を受信する前記少なくとも1つの入力のうちの少なくとも1つを備え、ドメイン境界は前記ドメインのうちの1つの内部で前記少なくとも1つの入力から受信されたトランザクション要求のマージが、前記ドメインのうちの前記1つの内部で行われるように配置されている。
いくつかの実施形態では、インターコネクト回路は単一のドメインを有することがあるが、他の実施形態では、インターコネクト回路は複数のドメインを有し、ドメインの内部の入力から受信されたトランザクション要求のマージがそのドメインの内部で行われるように複数のドメインがすべて配置されている場合、複数のドメインはすべてバリア・トランザクション挙動がドメインから出るときに変化する特性を有し、この特性はインターコネクトの内部でバリアによってもたらされたレイテンシを削減するため使用可能である。
いくつかの実施形態では、前記複数のドメインのうちの少なくとも1つはより大規模なドメインの一部であり、入力が下位階層のドメインのメンバである場合、入力が同様に高位階層のドメインのメンバであるように、入力毎にドメインの階層が存在し、トランザクションは、トランザクションが前記高位階層の前記ドメインから出るときと同時またはそれ以前に前記下位階層の前記ドメインから出る。
いくつかの実施形態では、ドメインは階層に配置され、この階層は後述されるようにバリア・トランザクションのさらなる制御を行うため使用可能である。高次階層のドメインは、下位階層のドメインより大型であるか、または、同じサイズであり、下位階層のドメインを囲み、よって、トランザクションは、上位階層のドメインから出るときと同時またはそれ以前に下位階層ドメインから出る。
いくつかの実施形態では、前記ドメインは、前記入力のうちの1つだけを収容する非共用可能ドメインおよび前記入力の全部を具備するシステムドメインと、少なくとも1つのさらなるタイプの共用可能ドメインとを備え、非共用可能ドメインの内部の入力が前記入力に対する前記少なくとも1つのタイプの共用可能ドメインの内部に同時に存在し、前記少なくとも1つのタイプの共用可能ドメインの内部の入力が前記入力に対する前記システムドメインの内部に同様に存在するように、入力毎にドメイン階層が存在する。
単なる入力である非共用可能ドメインを有することは役に立つことがあり、よって、非共用可能であるとしてマークされたすべてのバリアは、インターコネクトの内部にあるとき、それらのバリアのドメインの外側にあり、従って、バリアが非共用可能ドメインに適用されるというインジケータはバリアがバリアのドメインの外側であるというインジケータとして使用可能である。他の共用可能ドメインと、すべての入力を備え、それ自体が共用可能ドメインでもあるシステムドメインとが存在する。
いくつかの実施形態では、前記データ処理装置は複数の階層レベルからなる複数のキャッシュを備え、前記バリア・トランザクション要求は、前記複数の階層レベルのうちの少なくとも1つの階層レベルを指示するインジケータを備え、前記複数の階層レベルのうちの前記少なくとも1つの階層レベルのキャッシュは、前記バリア・トランザクション要求の受信に応答して応答信号を生成するように構成されている。
バリア・トランザクション要求がある種の階層レベルのキャッシュだけが要求に対する応答を送信するようにマークされている場合、キャッシュ・メインテナンス操作の進行がバリア・トランザクション要求への応答から判定可能であるさらなる方法が存在する。このようにして、例えば、バリアがレベル2キャッシュだけに適用されるとしてマークされている場合、バリアは、キャッシュ・メインテナンス・トランザクション要求の後でレベル1キャッシュを通過し、バリアに対する応答は送信されず、レベル2キャッシュに到達するときに限り、応答が送信される。
本発明の第2の態様は、インターコネクトを経由してイニシエータ機器からトランザクション要求を受信する受信機器であって、前記インターコネクトから前記トランザクション要求を受信する入力と、キャッシュと、所定のタイプのバリア・トランザクション要求に対する応答信号を生成する応答信号生成器とを備え、前記入力でのキャッシュ・メインテナンス要求と引き続く前記所定のタイプのバリア・トランザクション要求のうちの1つとの受信に応答し、前記バリア・トランザクション要求に対する前記応答を生成するように構成され、データ・コヒーレンシを落とすことなく、前記受信機器がさらなるトランザクション要求を受信し処理するために、前記キャッシュが前記キャッシュに十分なキャッシュ・メインテナンス操作を実行したと判定したとき、前記応答信号を発行するように構成されている、受信機器を提供する。
キャッシュ・メインテナンス・トランザクション要求が完了したときではなく、受信機器がさらなるトランザクション要求を安全に受信できると受信機器が判定したとき、キャッシュ・メインテナンス要求の後に続くある種のタイプのバリア・トランザクション要求に対する応答を送信するためだけに構成されている受信機器は、システムのレイテンシが削減されることを可能にする。
いくつかの実施形態では、前記受信機器は、キャッシュ・メインテナンス要求の後に続くさらなるタイプのバリア・トランザクション要求の受信に応答して、前記受信機器への入力で前記バリア・トランザクション要求を保持し、前記キャッシュがデータ・コヒーレンシを落とすことなくさらなるトランザクション要求を受信し処理するために前記キャッシュのための十分なキャッシュ・メインテナンス操作を実行したことを前記受信機器が判定するまで、さらなるトランザクション要求を受信しない。
いくつかの場合、バリア・トランザクション要求は、少なくともいくつかがバリア・トランザクション要求に関して再順序付けされるべきでないトランザクション要求の間に位置している。このような場合、受信機器は、バリア・トランザクション要求をさらに送信できるか、または、削除できるまで、バリア・トランザクション要求を入力で保持するように構成されることがある。このようにして、バリアは他のトランザクション要求への入口をブロックし、他のトランザクション要求は、バリアが除去された場合に限り進行可能である。
本発明の第3の態様は、データ・ストア・トランザクション要求を含むトランザクション要求を生成し、インターコネクトを経由して受信機器へ発行するイニシエータ機器であって、前記インターコネクトを通過するトランザクション要求のストリームの内部の少なくともいくつかのトランザクション要求の順序付けが、前記バリア・トランザクション要求の後に現れる前記トランザクション要求のうちの少なくともいくつかに関して、前記トランザクション要求のストリームの中で、前記バリア・トランザクション要求の前に現れる前記トランザクション要求のうちの少なくともいくつかの再順序付けを許可しないことにより維持されることを前記インターコネクトに指示するバリア・トランザクション要求を生成するように構成されているバリア・トランザクション要求生成器を備え、前記データ・ストア・メインテナンス・トランザクション要求と引き続く前記バリア・トランザクション要求とを発行するように構成されている、イニシエータ機器を提供する。
イニシエータ機器がデータ・ストア・メインテナンス要求を発行するとき、メインテナンス操作の前にデータ・ストアへのアクセスを要求するか、または、これらの動作後にアクセスを要求する他のトランザクション要求がこのメインテナンス要求に関して再順序付けされないことが重要である。アーキテクチャ的にとらわれない方法でこのことを確実にするため、イニシエータ機器はバリアを生成するバリア生成器を有することがあり、イニシエータ機器は、データ・ストア・メインテナンス操作を追跡するためにバリアを発行する。バリアは、バリアの後の少なくともいくつかのトランザクションがバリアの後方に留まるべきであり、一方、バリアの前方で少なくともいくつかが前方に留まるべきであることをインターコネクトに指示する。
いくつかの実施形態では、前記バリア生成器は、前記データ・ストア・メインテナンス・トランザクション要求に依存して、前記生成されたバリア・トランザクション要求にブロッキング・インジケータまたは非ブロッキング・インジケータを設けるように構成されている。
バリア生成器によって生成されることがあるバリアは、ブロッキングまたは非ブロッキングであることが有利であり、ブロッキング・バリアは、すべてのトランザクションがバリアを追い越すことがあるように、バリアの後方に留まることが必要である少なくともいくつかのトランザクション要求が上流でブロックされていたことを指示するが、非ブロッキング・バリアは、バリアが適用されるトランザクション要求によって追い越されるべきではない。
いくつかの実施形態では、前記イニシエータ機器は、前記ブロッキング・インジケータを用いて前記バリア・トランザクション要求を生成する前記バリア・トランザクション要求生成器に応答して、前記イニシエータ機器が前記ブロッキング・バリア・トランザクション要求に対する応答を受信するまで、前記インターコネクトへの前記バリア・トランザクション要求の後に現れる前記少なくともいくつかのトランザクション要求を発行せずに、前記非ブロッキング・インジケータを用いて前記バリア・トランザクション要求を生成する前記バリア・トランザクション要求生成器に応答して、前記インターコネクトへの前記バリア・トランザクション要求の後に現れる前記少なくともいくつかのトランザクション要求を発行するように構成されている。
いくつかの実施形態では、前記バリア生成器は、前記バリア・トランザクション要求が適用される前記インターコネクトの内部のドメインを表すドメイン・インジケータを前記生成されたバリア・トランザクション要求に設けるように構成されている。
上述されているように、ドメインによるバリア・トランザクション要求の制御は、バリアがインターコネクトの内部に到達したかどうかに関する情報を提供する有用な方法を提供可能である。
本発明の第4の態様は、少なくとも1台のイニシエータ機器からインターコネクト回路を経由して少なくとも1台の受信機器へデータをルーティングする方法であって、少なくとも1つの入力で前記少なくとも1台のイニシエータ機器から、少なくとも1つのトランザクション要求が、データ・ストア・メインテナンス操作が前記データ処理装置の内部でキャッシュに実行されることを要求するデータ・ストア・メインテナンス要求を備えるトランザクション要求を受信し、少なくとも1つの出力の方へ向かう複数のパスのうちの少なくとも1つに沿って前記トランザクション要求を送信し、前記データ・ストア・メインテナンス要求の受信に応答して、前記複数のパスのうちの少なくとも1つのパスに沿って前記データ・ストア・メインテナンス要求および引き続くバリア・トランザクション要求を送信し、前記バリア要求の後で前記データ・ストア・メインテナンス要求の後に続く前記少なくともいくつかのトランザクション要求を保持することにより、前記複数のパスの中の前記少なくとも1つのパスに沿って進むトランザクション要求のストリームの内部で前記バリア・トランザクション要求に関して少なくともいくつかのトランザクション要求の順序付けを維持する、方法を提供する。
本発明の第5の態様は、本発明の第3の態様による少なくとも1台のイニシエータ機器を含む複数のイニシエータと、少なくとも1台の受信機器と、前記イニシエータと前記受信機器との間にデータ経路を提供する本発明の第1の態様によるインターコネクト回路とを備えるデータ処理装置を提供する。
本発明の第6の態様は、データ・ストア・メインテナンス・トランザクション要求を生成し、インターコネクトを経由して受信機器へデータ・ストア・メインテナンス・トランザクション要求を発行する方法であって、前記データ・ストア・メインテナンス・トランザクション要求のうちの1つを生成し、その後、前記インターコネクトを通過するトランザクション要求のストリームの内部で、少なくともいくつかのトランザクション要求の順序付けが前記バリア・トランザクション要求の後に現れる前記トランザクション要求のうちの少なくともいくつかのトランザクション要求に関して、トランザクション要求の前記ストリームの中で前記バリア・トランザクション要求の前に現れる前記トランザクション要求のうちの少なくともいくつかのトランザクション要求の再順序付けを許可しないことによって維持されるべきことを前記インターコネクトに指示するバリア・トランザクション要求を生成し、前記データ・ストア・メインテナンス・トランザクション要求および引き続く前記バリア・トランザクション要求を発行する方法を提供する。
本発明は、単に一例として、添付図面に例示されているような実施形態を参照してさらに説明される。
図1は、バリアを使用してトランザクション要求の送信を制御するように構成されたインターコネクト10を示し、バリアがこのようなインターコネクトで取り扱われる方法を示している。インターコネクト10は、複数のパスを経由して複数のマスタ20、22、24および26を複数のスレイブ30、32、34および36に接続する。これらのパスは、例えば、2本のパスの各々がそれぞれのスプリット点41および42で2つに分けられ、マージ点44および45で合流する40で示されているような相互結合部を有することがある。例えば、50に示されているようなバイセクションパスがさらに存在することがある。インターコネクトの中の2個のノード間には、パスの切断が実際にインターコネクトを2つに分割するような唯一の接続であるパスが存在する。
トランザクションがこれらの異なるパスに沿って進むとき、パスの性質、すなわち、パスが相互結合型であるか、バイセクションであるかはトランザクションの順序付けに影響を与える。例えば、相互結合型パスは、トランザクション・ストリームを複数のトランザクション・ストリームに分割するスプリット点から始まり、スプリット点より前にトランザクション・ストリームの中で別のトランザクションの後に位置していたトランザクションは、既に後に位置していたトランザクションがそれぞれの宛先に到達する前に、その宛先に到達することがある。バイセクションパスに沿って進行するトランザクションは、例えば、60で示されているように再順序付けバッファのような再順序付けを可能にする何らかの機能的ユニットが存在しない限り、それらの順序を保つべきである。再順序付けバッファは、低優先度のトランザクションより前により高優先度のトランザクションがスレイブへ配信されることを可能にするためにトランザクションを再順序付けるため使用される。
予め分離されたパスが再び一体的になる再合流と呼ばれるパスがさらに存在し、これはトランザクション・ストリームの内部で再順序付けをさらに引き起こす可能性がある。インターコネクト10は再合流パスを有していない。
トランザクションが提示された順序とは異なる順序でそれぞれの宛先に到達可能であるという事実は、後続するトランザクションが先行するトランザクションに依存し、よって、先行するトランザクションを先に完了する必要があるという問題をもたらす可能性がある。例えば、トランザクション・ストリームの中で同じアドレスに対してロード命令より前にストア命令が存在する場合、ストアがロードより前に実行されることが重要であり、そうでなければ、ロードは間違った値を読み取ることになる。プログラマが必要とされるトランザクションが必要とされる順序で到達することを確保できるようにするため、インターコネクト10は、バリアに関してインターコネクトの内部でトランザクションの順序付けを維持するためにトランザクション・ストリームの内部でバリア・トランザクションに応答するように構成されている。よって、バリア・トランザクションは互いに追い越すべきでないトランザクションの間に挿入可能であり、これは追い越しが起こらないことを確実にする。
インターコネクトは、バリア・トランザクションへの応答信号が受信されるまで、インターコネクトの中を進むことによりバリア・トランザクションの後に続いてトランザクション・ストリームの中に現れるトランザクションを遅らせることにより、これらのバリア・トランザクションに応答することがある。応答信号は、後続の命令を安全に送信できることを指示する。パスをクリアする応答信号が、先行のトランザクションがすべて完了していることを指示する信号であるかもしれないこと、もしくは、応答信号が、例えば、パスがバイセクションパスである場合に、単にバリア・トランザクションがパスに沿って進んだこと、もしくは、先行のクリアリング応答信号が送信され、そしてブロッキングが再び実行されるノードに到達したことを指示する信号であるかもしれないことに注意を要する。
インターコネクトはまた、以前のトランザクションの後かつ後続のトランザクションの前に様々なパスに沿ってバリア・トランザクションを単に送信し、バリア・トランザクションを越えるトランザクションの再順序付けを許可しないこともあるので、バリアがある種の点に到達するとして検出されるとき、インターコネクトは、すべての先行のトランザクションが既にこの点を通過したことに気付く可能性がある。インターコネクトがストリームの範囲内で単にバリアを送信したか、または、トランザクションを遅らせるかどうか、そしてブロッキング・バリアであるかどうかは、バリアの性質に依存し、ブロッキング・バリアは、前の上流点で後続のトランザクション要求の少なくとも一部をブロックするものである。
バリア・トランザクションの進行は制御回路70によって制御される。これは、同図中、単一のブロックとして概略的に示されているが、実際には、制御回路は、制御対象である回路に隣接してインターコネクトの全域に分布している。よって、各分離点において、例えば、少なくともいくつかの実施形態において、バリア・トランザクションが受信されたときに、バリア・トランザクションが複製され、二重のバリア・トランザクションが分離点からの各出口パスで送出されることを確実にする何らかの制御回路が存在する。複製されたバリアが1つを除いてすべての出口パスで送出される他の実施形態が存在することがあり、このことが後述されている。制御回路はバリア・トランザクションが複製されたことを知り、よって、応答信号が元のバリア・トランザクションの後に続き、かつ、元のバリア・トランザクションの後に留まる必要があるトランザクションの伝送のためのパスをクリアできる前に、複製されたバリア・トランザクションのそれぞれから応答信号を要求することがある。
バリア・トランザクションは、最も簡単な形式では、マスタ、例えばマスタ20によって発行され、マスタ20は、その後インターコネクトからインターコネクトが後続のトランザクションを送信可能であることを指示する応答信号を有するまで、すべての後続のトランザクションをブロックする。代替的に、バリアはインターコネクトへのエントリ時に直ちに制御回路によって発行されることがある。バリア・トランザクション前のトランザクションおよびバリア・トランザクションはインターコネクトへ送信され、制御回路70はこれらのトランザクションのルーティングを制御する。よって、スプリット点42において、バリア・トランザクションは複製され、マージ点44および45へ進む。この時点で、トランザクションは、バイセクションパス50および52に入り、トランザクションはバリア・トランザクションがこれらのパスのうちの1つの始点に到達するときにこれらのパス上のバリアに関してトランザクションの位置を変更できないので、バリア・トランザクションより前のすべてのトランザクションはバリア・トランザクションより先行し、パスに沿ってバリア・トランザクションより先を維持する。よって、早期応答信号は早期応答ユニット80によって送信可能であり、これらの信号の両方の受信に応答して、スプリット点42での制御回路は、その後に、マスタ20によって制御されるバリア・トランザクションより後に続くトランザクションをブロック解除し、インターコネクトへ送信可能であるマスタ20へ早期応答信号を送信する。
早期応答ユニット80を設けることにより、マスタ20は、バリア・トランザクションがスレイブに到達したことを指示するスレイブからの応答を待機していた時間より遙かに短い時間に亘ってブロックされ、このようにして、バリア・トランザクションによって持ち込まれたレイテンシが削減される。
パス50に沿って進むバリア・トランザクションは、インターコネクトから出て、バイセクションパス50以外のパスに沿って進むこと無くスレイブ30に到達するので、バリアがバリアに先行するトランザクションが留まらなければならない早期応答ユニット80を通過したとき、このバリア・トランザクションに応答して再びブロックする必要がない。しかし、パス52に沿って送信されたバリア・トランザクションがさらなる相互結合セクション48に到達し、スプリット点49でのバリア・トランザクションの受信に応答して、このスプリット点と関連付けられた制御回路70は、バリア・トランザクションを複製し、両方の出口パスへ送出し、バリア・トランザクションの後でバリアの後に続いて出現し、制御回路によって制御されるトランザクション要求までエントリ・パスをブロックする。このように、これらの後続のトランザクションは、すべての複製されたバリア・トランザクションへの応答信号が受信されるまで、ブロッキング回路90の内部のバッファの中に保持されることによっていくつかの実施形態において止められる。このようにして、複製されたバリア・トランザクションは、相互結合回路40を通過し、相互結合回路から出て、さらなるバイセクションリンク52および50に加わる。上述されているように、バイセクションパスは、バリアと相対的な順序でトランザクションを保持するので、早期応答は、早期応答ユニット80によってバイセクションパスの始点から送信可能である。ブロッキング回路90は、スプリット点49からのバリア・トランザクションへの応答の受信を待つ。スプリット点49は、バリア・トランザクションを複製し、2個のバリア・トランザクションをパス毎にさらに下方へ送信する。スプリット点49は、スプリット点が送信した2個のバリア・トランザクションの1つずつから応答を受信するまで、ブロッキング回路90に応答を返信しない。この応答に応答して、ブロッキング回路90は、ブロッキング回路のバッファの中に保持された後続のトランザクションが送信されることを可能にする。クリアリング回路は、インターコネクトへの出口より前で最後のバイセクションパス上にあるので、何らかのバリアタイプのためのさらなるブロッキングは不要である。
上述されているように、バイセクションパス52に再順序付けバッファ60が存在し、このバッファは、バリアに応答するように構成され、バリアによって制御されるトランザクションがバリアに関して再順序付けされることを許可しない。
これまでの説明では、バリアは、バリアの後でバリアに続くすべてのトランザクション維持するため存在すると仮定されている。しかし、いくつかの実施形態では、より詳細に後述されるように、バリアは後続のトランザクションの部分集合、おそらく特有のマスタからのトランザクション、または、書き込みトランザクションのような特有の機能をもつトランザクションがバリアを越えることを抑えることだけが必要になることがある。このような場合、制御回路70およびブロッキング回路90は、トランザクションのこの部分集合を遅らせるだけであり、他のトランザクションが進行することを許可する。さらに、スプリット点でバリアによって制御されるトランザクションはパスのうちの1つへ決して進むことがない場合、複製されたバリアはそのパスへ送出される必要がない。
図2は、本実施形態では、インターコネクト10を介して2つのキャッシュ200、210にアクセスする複数のプロセッサP1、P2、P3を有するインターコネクトを示している。上述されているように、異なるキャッシュおよび異なるメモリを含む種々のデータ・ストアにアクセスする多数の機器をもつ複雑なシステムでは、データ・コヒーレンシを維持することは複雑な問題である可能性がある。これは、様々なストアにおけるデータ記憶がコヒーレント状態を保つことを確実にするため、ある一定の時間にキャッシュ・メインテナンス操作を実行する必要性を含む。
詳細アーキテクチャが知られていないシステムのためプログラムが書き込まれている場合、このようなキャッシュ・メインテナンス操作の取り扱いは難しい可能性がある。キャッシュ・メインテナンス操作は発行可能であるが、キャッシュ・メインテナンス操作が完了したときを知ることは難しいことがある。このことは、特に、特有のキャッシュが特有のパスに沿って最後のキャッシュであるかどうかを知ることが難しいようなシステムと同様に、キャッシュの異なる階層レベルを有し、キャッシュがインターコネクトの内部に位置しているシステムにおいてそのように言われる。この問題は、本発明の実施形態では、バリア・トランザクションの使用によって対処される。
よって、キャッシュ・メインテナンス操作が発行されるとき、バリアがキャッシュ・メインテナンス操作に続くように発行される。バリアの通過は追跡可能であるので、キャッシュ・メインテナンス操作がバリアに先行するとき、キャッシュ・メインテナンス操作も同様に追跡可能である。バリアの特性は、キャッシュ・メインテナンス要求に応じて選択可能であるので、後続のトランザクションがキャッシュ・メインテナンス要求を追い越すことを単に妨げるバリアが選択されることがあり、または、ある一定の点で後続のトランザクションをブロックするバリアが使用されることがある。バリア生成器79はマスタP1の内部に示され、バリア生成器は、マスタP1からの要求に応答して、バリア・トランザクション要求を生成し発行する。マスタは、マスタがキャッシュ・コヒーレンシ・メインテナンス要求を生成し発行したとき、バリアを生成するようにバリア生成器に命令し、バリアの特性は実行されるべきメインテナンス操作に応じて選択されることがある。
生成されたバリアは、ブロッキング・バリアでも非ブロッキング・バリアでもよく、生成されたバリアがブロッキング・バリアである場合、マスタP1は、このバリアに対する応答を受信するまで、このバリアが適用されるさらなるトランザクション要求を発行しない。
図2に示された実施形態では、早期応答ユニット71と、その後にブロッキング回路72と、その後に分岐点73とが存在する。インターコネクト内部の制御回路70は、プロセッサP1から受信されたキャッシュ・メインテナンス要求および後に続くバリア・トランザクションを検出し、バリア・トランザクションがブロッキング・バリアである場合、インターコネクトは早期応答ユニット71でバリアに対する応答を発行し、この早期応答は、その後にブロックされたトランザクション要求をさらに送信するマスタP1で受信される。ブロッキング回路72は、その後に、バリア・トランザクション要求の影響を受けるさらなるトランザクション要求をブロックする。バリア・トランザクションがブロッキング・バリアではない場合、バリア・トランザクション要求は、早期応答ユニットおよびブロッキング回路を介して単に送信される。
バリア・トランザクション要求が後に続くキャッシュ・メインテナンス要求は、その後、分岐点73に到着し、制御回路70は、キャッシュ・メインテナンスがキャッシュ200およびキャッシュ210の両方で実行されるべきであると判定するので、キャッシュ・メインテナンス要求および引き続くキャッシュ・メインテナンス要求の両方を複製する。これらの要求は、その後、キャッシュ200および210へ向けてさらに送信される。インターコネクト回路10は、キャッシュ200および210へのそれぞれのインターコネクト出力の前に、ブロッキングユニット77および78に沿って早期応答ユニット75および76を有し、バリアがブロッキング・バリアである場合、バリア・トランザクションが早期応答ユニット75および76に到着し次第、応答が送信され、両方の応答の受信に応答して、ブロッキング回路72は、後続のトランザクションがさらに送信されることを許可する。しかし、これらの後続のトランザクションは、その後に、ブロッキング回路77および78の点に到着したとき、ブロッキング回路77および78によってブロックされる。
それぞれの受信機器の内部にあるキャッシュ200および210は、その後、キャッシュ・メインテナンス要求と、引き続くバリア・トランザクション要求とを受信し、バリアがブロッキング・バリアである場合、各キャッシュと関連付けられた応答回路201は、制御回路203が、キャッシュ・メインテナンス操作がさらなるトランザクション要求が安全に取り扱える時点まで進んだと判定したとき、バリア・トランザクション要求に対する応答を送信する。このようにして、例えば、ラインのうちのいくつかが無効であるとマークされると直ぐにキャッシュがフラッシュされ、キャッシュが取り扱われるべきさらなるトランザクションのためのスペースを有する場合、応答が送信可能である。この時点におけるバリアに対する応答は、例えば、キャッシュがダーティラインで満ちている場合、このデータのすべてを元のメモリへ書き込むことは長時間を要するので、有利である可能性がある。プロセスが開始すると、キャッシュの中には、データを記憶するため利用できるラインが存在するので、さらなるトランザクションが実行可能である。バリア・トランザクション要求が非ブロッキング・バリアである場合、このバリア・トランザクション要求は、キャッシュがさらなるトランザクションを安全に受信するためにキャッシュ・メインテナンス要求を処理し、その時点でバリア・トランザクション要求がキャッシュ・メインテナンス要求によって始動させられた他のデータ・ストア・メインテナンス操作のさらに後で送信されるか、または、バリア・トランザクション要求が除去されるまで、それぞれのキャッシュの入力インターフェイス202に保持される。
バリアがブロッキング・バリアである場合、ブロッキング回路77および78は、応答生成器201からの応答を受信したとき、後続のトランザクションのブロックを停止し、後続のトランザクションはそれぞれのキャッシュへ進むことが可能である。
上述されているように、バリア生成器79は、ブロッキング・バリアを生成したか、または、非ブロッキング・バリアを生成したかを判定するため、キャッシュ・メインテナンス操作のタイプに応答する。このようにして、例えば、要求されたキャッシュ・メインテナンス操作が単に無効ライン操作である場合、この操作の後でトランザクション・ストリームの中に位置するに過ぎない非ブロッキング・バリアが発行可能であり、トランザクションがいずれの方向にもトランザクション・ストリームを通過することを許可しない。上述されているように、バリア・トランザクション要求は、すべてのトランザクションに関して、または、トランザクションの部分集合に関して、すべてのトランザクションの順序付けを維持可能である。上記の場合、無効ラインは特有のアドレスに設定されるので、バリアはこのアドレスを備えることが有利であり、この場合、制御回路70はバリアに関してそのアドレスをもつトランザクションの順序を維持するだけであるが、他のトランザクション要求が必要に応じてバリアに関して再順序付けされることを許可する。
図3は、インターコネクト10が、キャッシュ220および210を備え、3台のプロセッサP1、P2およびP3を2つのメモリMEM1およびMEM2と相互接続するさらなる実施形態を示している。P1からインターコネクト10で受信されたキャッシュ・メインテナンス・トランザクション要求の後に、マスタP1によって生成されたブロッキング・バリア・トランザクションが続き、後続のトランザクションは、応答信号の受信までP1でブロックされることを示している。インターコネクト内部の早期応答信号生成器71は、後続のトランザクションをさらに進めることを許可する応答をマスタP1へ送信する。これらの後続のトランザクションは、その後、応答信号が受信されるまでこれらの後続のトランザクションをブロックするため作用するブロッキング回路72に達する。
インターコネクト内部にはその後に分岐点73が存在し、バリア・トランザクションおよびキャッシュ・メインテナンス・トランザクションが複製され、キャッシュ220および221へさらに送信されることがある。この場合には、分岐点と関連付けられた制御回路70は一方のキャッシュから受信された応答信号を保持し、両方のキャッシュから応答信号を受信したときに限りブロッキング回路72へ応答信号を送信する。
キャッシュ・メインテナンス・トランザクションがキャッシュ220だけで実行されるべき場合、バリア・トランザクションおよびキャッシュ・メインテナンス・トランザクションは複製されず、キャッシュ220だけに送信され、ブロッキングは必要とされない。バリア・トランザクションは単にキャッシュ220への入力に位置し、キャッシュがバリア・トランザクションを受信し、さらに送信する準備が整うまで、他のトランザクションがキャッシュに入ることを抑える。
キャッシュ220は、キャッシュ・メインテナンス要求に応答して、メモリへ送信されるトランザクションを生成し、その後、バリア・トランザクション要求が同様にトランザクションの後で送信される。メモリへのパス上に分岐点230が存在し、分岐点230と関連付けられた制御回路70は、生成されたトランザクションおよび引き続くバリア・トランザクション要求を適切なメモリへ送信する。よって、生成されたトランザクションおよび引き続くバリア・トランザクション要求は、必要とされるメインテナンス操作に依存して、MEM1およびMEM2、または、MEM1だけに送信されることがある。バリア・トランザクションはトランザクションの後に送信され、トランザクションが両方のパス上に送信される場合、バリア・トランザクションは複製され、ブロッキング回路232は後続のトランザクションへのパスをブロックする。しかし、キャッシュ・メインテナンス操作のためアクセスされるべきメモリが一方のメモリだけである場合、単一のバリア・トランザクションがキャッシュ・メインテナンス操作に続いて送信され、ブロッキングは実行される必要がない。
メインテナンス操作が選択されたアドレス範囲に向けられる場合、バリアは、これらのアドレス範囲を指定するアドレス指定されたバリアでもよく、このような場合、他のアドレスへ向けられたトランザクションはこのバリアを越えることが可能であり、バリアがブロッキング中である場合、バリアは指定されたアドレスへのトランザクションだけをブロックする。バリアがメモリに到達したとき、バリアは、キャッシュ・メインテナンス要求に起因するメモリ内部の操作が完了するまで、メモリへの入口をブロックし続ける。この時点で、すべての後続のトランザクションはメモリに入ることが可能である。
ブロッキング・バリアが複製され、両方のメモリへ送信された場合、ブロッキング・バリアがそれぞれのメモリへ入るとき、応答信号が送信され、両方の応答信号が受信されると、ブロッキング回路232における閉塞はクリアされ、ブロックされていたトランザクション要求はさらに送信可能である。
図3では、P1とキャッシュ220との間の接続と、メモリとだけが詳細に示されているが、図面をより明瞭にするため図示されていない他の接続が存在する。
図4は、プロセッサP1がキャッシュ220の中にデータを記憶可能であるが、キャッシュ221にデータを記憶できない本発明の代替的な実施形態を示している。キャッシュ・メインテナンス要求と、引き続くバリア・トランザクション要求との受信に応答して、制御回路70は、プロセッサP1がキャッシュ220だけをアクセス可能であり、キャッシュ221をアクセスできないことを認識するので、キャッシュ・メインテナンス操作および引き続くバリア・トランザクションをキャッシュ220へ送信し、ブロッキング・バリアの場合、早期応答ユニット71はプロセッサP1へ応答を送信する。バリア・トランザクションはキャッシュ220への入口に位置し、キャッシュ内部のキャッシュ・メインテナンス操作が完了するまで、さらなるトランザクションがキャッシュへ入ることをブロックする。この時点で、バリア・トランザクションは、キャッシュ・メインテナンス操作によって始動させられたいずれかのメインテナンス操作の後でさらに送信され、後続のトランザクションはキャッシュ220にアクセス可能である。このようにして、キャッシュへのアクセスは、すべてのキャッシュ・メインテナンス操作が完了するまでブロックされず、キャッシュ自体の内部の操作が完了するまでブロックされるだけである。
図4の上記実施形態では、キャッシュ・メインテナンス操作は、キャッシュに対する一般的なキャッシュ・メインテナンス操作である。いくつかの操作では、キャッシュ・メインテナンス操作は、キャッシュ内部の特有のアドレスまたはアドレスの範囲へ向けられることがある。このような場合、バリア・トランザクションはこの情報を収容し、ブロッキング回路は、これらのアドレスへ向けられたブロックトランザクションだけに作用し、他のトランザクションは送信される。このように、システムのレイテンシはかなり削減される。
図5はキャッシュの階層を含むシステムを示している。本実施形態では、マスタP1およびP2の内部のバリア生成器は、例えば、階層レベル2を示すことがあるキャッシュ階層を示すインジケータと共にバリアを生成することがある。このような場合、このインジケータは、応答がL2キャッシュからだけ送信されるべきであることを示す。これは、システムが、キャッシュ・メインテナンス操作がレベル2共有キャッシュに到達するときを知ることを可能にする。
実質的に、バリアは、バリアが(バリアが適用され、そして)バリアの前にあるトランザクションを追い越すことを許可されていないときに、バリアの前にあるトランザクションが到達したロケーションがわかるようにする。よって、バリアは、ある種のキャッシュ・メインテナンス要求が特有のキャッシュまたはある種の階層レベルのキャッシュに到達したときを判定するため使用可能である。キャッシュに関する応答回路は、バリアに対し応答するためにキャッシュ・メインテナンス操作の中の適当な時点を判定するためさらに使用可能であり、よって、単にキャッシュ・メインテナンス操作が完了したことをシグナリングするのではなく、信号は後続のトランザクションをキャッシュへ安全に送信できるときに生成可能であり、このようにしてレイテンシが削減可能である。
図6は、本発明の実施形態によるバリア・トランザクション要求を使用して、データ・ストア・メインテナンス操作の順序付けを確実にする方法におけるステップを説明するフローチャートを示している。データ・ストア・メインテナンス要求と引き続くバリアとは、インターコネクトで受信される。要求が少なくとも1つのパスに沿って送信され、バリアがその後に続けられる。バリアがブロッキング・バリアである場合、バリアの対象であり、トランザクション要求ストリームの中でバリアの後にあるトランザクション要求は上流のどこかでブロックされ、よって、早期応答ユニットが適合している場合、ブロックされたトランザクションを解放する応答が送信される。早期応答ユニットのロケーションに依存して、ブロッキングユニットは再びブロックすることがあり、この場合、この閉塞は後続の応答ユニットによってブロック解除される。バリアは、トランザクションがいずれの方向にもバリアを通過することを許可しないことにより、バリアが適用されるトランザクションの順序付けを維持する。
図7および8は、インターコネクトを特有の特性を有し、バリアがどのドメインに属しているかに依存して、バリアが別々に取り扱われ、特に、バリアに対して応答され、バリアがそれ以上ブロックしないようにする異なるドメインに分割する方法を概略的に示している。これらの特性は、これらのバリアに関連付けられたレイテンシが削減されることを可能にする。
トランザクションの正しい順序付けがレイテンシを過度に増大させることなく維持されることを確実にするため、マスタとインターコネクトの部分とを異なるドメインに分類し、ドメイン内部のバリアおよびトランザクションを制御する多数の異なる方法が存在する。この点に関して、ある種のルールがドメインに関係するインターコネクトのトポロジに適用される場合、バリアは、バリアのレイテンシを削減するため利用可能であるある種の特性を有している。ドメインを特有の方法で配置することは、システムの許可されたトポロジに制約を生じさせることがあるが、バリアによって生成されるレイテンシをさらに減少させることがあるので、後述されるドメインの種々の可能な実施に有利な点と不利な点とがある。よって、例えば、キャッシュ・メインテナンス・トランザクションがキャッシュ・メインテナンス・トランザクションと関連付けられたドメイン・インジケータを有する場合、キャッシュ・メインテナンス・トランザクションの後に類似したドメイン・インジケータを伴うバリア・トランザクションが続けられる可能性があり、後述されるように、バリアに関するドメイン・インジケータはドメイン境界に関する早期応答を生成可能であり、それによって、前の閉塞がクリアされることを許可することによりバリアと関連付けられたレイテンシを削減する。さらに、この特性が使用される場合、応答信号の受信は、バリア・トランザクション要求がインターコネクトの中のこのロケーションに到達したこと、従って、キャッシュ・メインテナンス要求がこのロケーションにさらに到達したことを指示する。このようにして、キャッシュ・メインテナンス要求のロケーションがキャッシュ・メインテナンス操作とは独立に判定可能である。
バリア・トランザクションはキャッシュ・メインテナンス・トランザクションと同じドメイン・インジケータを有することがあるが、異なるものを有してもよく、または、バリア・トランザクションはドメイン・インジケータを有し、キャッシュ・メインテナンス・トランザクションはこのようなインジケータを有しないことがあることに注意を要する。例えば、キャッシュフラッシュの場合、この操作は何らかのライトバックが実行されるメモリへ進む必要があるが、後続のトランザクションが正確に実行されるため、フラッシュによって始動させられたトランザクションが外側ドメインに到達すると、他のトランザクションが進行することを安全に許可できることがある。このような場合、バリア・トランザクション要求を適切なドメイン・インジケータでマーキングすることは、バリア・トランザクションが外側ドメインに到達したとき、応答が送信されることを許可し、その時点で、イニシエータ機器はトランザクションをさらに送信可能である。
ドメインの配置のすべてにおいて、バリア・トランザクションが特有のドメインに関係しているとしてマークされている場合、バリア・トランザクションがそのドメインの外側にあり、ブロッキング・バリアであるとき、バリア・トランザクションは、再合流領域の中を除いて、常にブロック解除可能である。ある種のタイプのバリアは、そのドメインの内側において、相互結合領域の中をのぞいてブロック解除可能である。ドメインの中で常にブロックするバリアのタイプがキャッシュ・メインテナンス要求の後で使用される場合、このバリアに対する応答は、バリアと、従って、キャッシュ・メインテナンス要求との両方がバリアによって指示されたドメインから出たことを指示する。
第1の「ヌル」実施では、これらのドメインは考慮されていない。すべてのバリアは、システムのすべての部分ですべてのトランザクションに適用されるとして取り扱われる。これは、バリアからのレイテンシが高いので、明らかに性能が低い。しかし、これは、(メンバーシップは効果がないとしても)無制限、任意のドメイン・メンバーシップと、トポロジとを可能にさせるので、常に構築可能である。これは、すべてのドメインにすべてのマスタを含むすべてのドメインと理論的に等価である。
代替的な「ほぼヌル」実施では、各マスタに関係する非共用ドメインが存在し、これらのドメインに関連したバリアはこのドメインの外側で別々に取り扱われる。非共用バリアは、マスタからの入力を越えた共用可能ドメインの外側にあるので、非共用バリアは、インターコネクト全体でそのように取り扱うことが可能であり、従って、インターコネクトのすべての非再合流部分において非ブロッキングである。他の共用可能ドメインでバリア・トランザクションはヌル実施の場合のように取り扱われる。これは、非共用ドメイン境界を発行器またはマスタ入力とすることと論理的に等価であり、すべての他のドメインがすべての他のマスタを収容する。
代替的な「単純」実施は、やや制限されたトポロジと改良された性能とを有する。このアプローチは、許容されることがある制限のレベルに依存して2つの異なる解決策をもたらす。
許容可能ドメイン・メンバーシップに関する3つの制限はこれらのアプローチの両方に共通である。
1. オブザーバの非共用ドメインはそれ自体が離れている。
2. オブザーバのシステム共用ドメインは、直接的または間接的に通信可能である少なくともすべての他のオブザーバを備える。
3. オブザーバの内側の共用ドメインのすべてのメンバはオブザーバの外側の共用ドメインのメンバでもある。
1. オブザーバの非共用ドメインはそれ自体が離れている。
2. オブザーバのシステム共用ドメインは、直接的または間接的に通信可能である少なくともすべての他のオブザーバを備える。
3. オブザーバの内側の共用ドメインのすべてのメンバはオブザーバの外側の共用ドメインのメンバでもある。
これらのうちの最初の2つの制限は〔3〕によって課される制限である。その上、2つの解決策のそれぞれは、特定のトポロジ的制限と、場合によっては、付加的な共用可能ドメイン・メンバーシップ制限とを有する。
2つの実施のうちの最初の実施は、各ロケーションが単一のドメインの中にあり、よって、ドメイン、内側、外側、または、システムのうちの1種類だけにあるインターコネクトの中の各ロケーションに依存する制限を必要とする。これを可能にするため、付加的な共用可能ドメイン・メンバーシップ制限が強制されなければならない。
いずれかのオブザーバのいずれかの共用可能ドメインのすべてのメンバは、その共用可能ドメインの中のすべての他のメンバを同じレベルの共用可能ドメインのメンバとして保有しなければならない。すなわち、オブザーバBがオブザーバAの内側共用可能ドメインのメンバである場合、対応してAはBの内側共用可能ドメインのメンバでなければならない。
満たされるべきトポロジ的制限は以下の通りである。
1. ドメイン境界はドメインのすべてのメンバを含まなければならない。
2. ドメインから外に出るものでドメインにマージするものはなく、すなわち、ドメイン境界は、ドメイン境界の内側にないものの下流にあるものを含むべきではない。
3. すべてのドメイン境界はドメイン・バイセクション・リンクに位置しなければならない。
1. ドメイン境界はドメインのすべてのメンバを含まなければならない。
2. ドメインから外に出るものでドメインにマージするものはなく、すなわち、ドメイン境界は、ドメイン境界の内側にないものの下流にあるものを含むべきではない。
3. すべてのドメイン境界はドメイン・バイセクション・リンクに位置しなければならない。
この場合、ドメイン境界を考慮する単純な方法は、高度を表現するトポロジ的輪郭線として考慮することである(垂直面は許容されるが、オーバーハングは許容されない)。各マスタは同じ高さにあり、各共用可能ドメイン輪郭は同じタイプのすべての他のものと同じ高さにある。垂直壁は異なるタイプの共用可能ドメインが同一であることを許可するため許容されるが、共用可能ドメインの交差を許可するオーバーハングは許容されない。
これらのトポロジ的制限は、ドメインにマージするものがないこと、すなわち、(制限1に違反する)ドメインのメンバも(制限2に違反する)非メンバもドメインにマージしないことを必要とする。メンバの下流のスプリットがドメインから外へ出て、そして、ドメインの外にあるものとさらにマージすることなく、ドメインへ再マージする場合、流出と再流入との間の部分はドメインの中に有効に留まる。
組み合わされたトポロジ的制限およびドメイン・メンバーシップ制限は、共用可能ドメインの内部で、バリアがそのドメインから外に出たオブザーバからのトランザクションと衝突し得ないことと、トランザクションがドメインから出たとき、トランザクションと絶対にマージするドメインのすべてのメンバからのすべてのトランザクション・ストリームとマージしていることとを確実にする。これらの制限は、内側の共用可能ドメインの外側にあるロケーションがすべての内側の共用可能ドメインの外側にあることと、外側の共用可能ドメインの外側がすべての外側の共用可能ドメインの外側であることとをさらに確実にする。
この結果として、バリアがスプリット点でブロックされるべきであるという要件は、共用可能ドメインのメンバはロケーションの下流でマージできないという要件がこのような制約付きのシステムの中でそのドメインから外へ出るバリアによって暗黙的に満たされるので、バリアの共用可能ドメインをそのスプリット点が内部に存在しているドメインタイプと単に比較することにより判定されることがある。
この仕組みは、ドメイン出口点における明示的な検出コンポーネントを必要とするバリアの共用可能ドメインから外へ出るバリアの明示的な表示、または、1つずつの関連したスプリット点での状態の判定のいずれかによって実施可能である。
これらの2つの実施のうちの2番目は、複数のドメインの中のロケーションを可能にする。この実施は、バリア・トランザクションがその共用可能ドメインから出ると、変化させることにより非ブロッキングになるように、共用可能ドメインの境界を通過するときに修正されるバリア・トランザクションの指示された共用可能ドメインに依存する。バリア・トランザクションが内側または外側共用可能ドメインから消えるとき、バリア・トランザクションの指示されたドメインは非共用可能に向かって移動し、非共用可能としてマークされるとき、そのドメインの外側にあることがわかるので、非ブロッキングである可能性がある。
この場合、共用可能ドメイン・メンバーシップに関する付加的な制限はより緩い。
いずれかの2つの共用可能ドメインAおよびBに対し、Aのすべてのメンバは同様にBのメンバでもあることが必要であり、または、Bのすべてのメンバは同様にAのメンバであることが必要であり、または、両方である(この場合、AおよびBは同一である)。換言すると、ドメイン境界は交差しないことがある。
いずれかの2つの共用可能ドメインAおよびBに対し、Aのすべてのメンバは同様にBのメンバでもあることが必要であり、または、Bのすべてのメンバは同様にAのメンバであることが必要であり、または、両方である(この場合、AおよびBは同一である)。換言すると、ドメイン境界は交差しないことがある。
同じトポロジ的制限が必要とされる。
1. ドメイン境界はドメインのすべてのメンバを含まなければならない。
トポロジの最大フレキシビリティを許容するため、以下の通りドメイン境界が描かれるように、トポロジコンポーネント(スプリットおよびマージ)を分解できることだけが必要である。
2. ドメインから外に出るものでドメインにマージするものはなく、すなわち、ドメイン境界は、ドメイン境界の内側にないものの下流にあるものを含むべきではない。
3. ドメイン境界はドメイン・バイセクション・リンクを越えて位置している。
最終的に、付加的なトポロジ的制限がドメイン・メンバーシップに関するより緩い制限によってもたらされる問題を補償するために課される。
4. ロケーションが外側共用可能ドメインから既に外にでているマスタを除く様々なマスタのための様々な個数のドメインに対する境界ロケーションは存在できない。
1. ドメイン境界はドメインのすべてのメンバを含まなければならない。
トポロジの最大フレキシビリティを許容するため、以下の通りドメイン境界が描かれるように、トポロジコンポーネント(スプリットおよびマージ)を分解できることだけが必要である。
2. ドメインから外に出るものでドメインにマージするものはなく、すなわち、ドメイン境界は、ドメイン境界の内側にないものの下流にあるものを含むべきではない。
3. ドメイン境界はドメイン・バイセクション・リンクを越えて位置している。
最終的に、付加的なトポロジ的制限がドメイン・メンバーシップに関するより緩い制限によってもたらされる問題を補償するために課される。
4. ロケーションが外側共用可能ドメインから既に外にでているマスタを除く様々なマスタのための様々な個数のドメインに対する境界ロケーションは存在できない。
制限4は、バリアがドメイン境界を横切るときに修正されるべき場合に、バリアが属しているすべてのドメインの境界を横切ることを確実にする。これは、修正操作がバリアのオリジネータに依存しないことを確実にする。
バリアが修正され、非ブロッキング状態を獲得する場合、バリアは、バイセクションリンク上にある場合には、当然ながら、非ブロック状態でもよいが、いくつかの状況では、バリアは、相互結合型リンク上にあるかどうかとは無関係に非ブロック状態でもよい。ドメイン境界を横切るリンクがドメインに関する限りバイセクションであるドメイン・バイセクション・リンクである場合、すなわち、ドメイン境界を横切るリンクがそれらの固有のドメインからのパスとマージせず、他のドメインから来るパスだけとマージする場合、バリア・トランザクションの修正がそこで行われ、非ブロッキングもまたその点から行われることがある。
制限2は、指示されたドメインをドメイン出口で非共用可能に変更するのに加えて、指示されたドメインがドメイン入口での非共用可能から変更される場合、放棄されることがある。これは、飽和しないドメイン・インジケータ、または、飽和が起こらないように入力されることがあるドメインの個数に関する制限を必要とする。その上、これは結果として指示された範囲の増加に起因して、非メンバからのトランザクションをブロックしているドメインに入力したバリアを生じる。
図7aは、インターコネクト内部でのドメインの上記実施を非常に概略的に示している。同図において、マスタは、インターコネクトの内部に示されているが、実際には、マスタは当然ながらインターコネクトの外部にある。各マスタ20、22、24、26、28は、ストリーム、または、マスタによって生成されたトランザクションだけに関係し、マスタを直接に取り囲む非共用可能ドメイン120、122、124、126、127を有している。従って、複数のマスタまたは同様に単に同じマスタを取り囲むかいくつかの次の階層レベルドメインが存在するので、マスタ20および22は、非共用可能ドメインを有し、周りに内側ドメイン121を有し、一方、マスタ24は内側ドメイン125を有し、マスタ26は非共用可能ドメイン126および内側ドメイン127を有し、マスタ28非共用可能ドメイン128および内側ドメイン129を有している。その結果、この場合にドメイン31および33であるマスタを取り囲む外側ドメインが存在する。その結果、インターコネクト全体であるシステムドメインが存在する。図示されているように、ドメインは互いの内部に完全に位置し、決して遮断しない。ドメインからのすべての出口パスがバイセクションパスであるという制約がさらに存在する。このようにドメインを制約することにより、これらのドメインから出るトランザクションがある種の方法で制約されることを確実にすることが可能であり、ドメインの内部でバリアが正確に機能するならば、トランザクションがバイセクションパスに出るとき、トランザクションは正しい順序のままである。これは特有の方法でこれらのドメインに関するバリア・トランザクションの制御を可能にする。
図7bは、マスタp0およびp1を含むドメインへの出口ノード135を概略的に示している。この出口ノード135は制御回路70によって制御され、このノードでは、バリア・トランザクションおよび制御回路が制御するトランザクションは正しい順序であることがわかっている。ここで、上述されているように、バリア・トランザクションは、必ずしもすべてのトランザクションを制御しないが、特有のマスタによって生成されたトランザクション、または、特有の機能のトランザクションを制御することがある。
共用可能ドメインの場合、バリア・トランザクションは特有のドメインからのトランザクションを制御するものとしてマークされる。よって、トランザクションは、すべてのトランザクションを制御するのでシステム・バリア・トランザクションとしてマークされることがあり、ストリームもしくは非共用可能ドメインから、内側ドメインから、または、外側ドメインからのトランザクションを制御するものとしてマークされることがある。いずれにしても、バリア・トランザクションがドメインから出るとき、バリア・トランザクションは、本実施では、この階層レベルを削減させることが可能であり、その結果、バリア・トランザクションが内側ドメインから出るときに外側ドメイン・バリアである場合、内側ドメインからのトランザクションを制御するバリア・トランザクションまで削減され、そして、バリア・トランザクションが外側ドメインから出るときに、制御の階層レベルをトランザクションがバリア・トランザクションによって遅れさせられる必要がない非共用可能ドメインまで削減される。これが可能であるのは、この時点で、すべてのトランザクションがこのバリアに関して順序付けられ、再合流パスが存在しない場合、インターコネクトが順序付けを必ず正しくするからである。システム・バリアは、常にあらゆる場所であらゆるものに適用されるので、既存のドメインで変化しないことに注意を要する。
再合流パスがドメインの内部に存在するならば、いずれかのブロッキング・バリアは、再合流領域を越えて遮断性でなければならないことに注意を要する。再合流パスをもたらすさらなるインターコネクトがドメインを有するインターコネクトに接続されている場合、バリアを制御するドメイン・システムはもはや機能しない。ドメインおよびドメインの階層に影響を与えるインターコネクトが追加される場合、システムは、バリア・トランザクションの中の共用可能ドメイン・インジケータが、バリア・トランザクションがドメインから出るときに削減されないように制御される。
再合流領域に関して、特有のアドレスに向けられたいくつかのトランザクションは、再合流領域を通る特有のルートに沿って進むために抑制されることがあり、このような場合、再合流領域はそのアドレスに関して再合流しないことに注意を要する。インターコネクトは、トランザクションが特有のルートに沿ってすべてのアドレスに対し特有のアドレスへ進むように制約されることがあり、このような場合、何らかの再合流領域は、再合流領域がシステムに課すかなりの制約のため有利であることがある相互結合領域として取り扱われることがある。
インターコネクトが構成される方法に起因して、非共用可能バリアとしてマークされていないドメイン内部のバリア・トランザクションは、実質的に、別のドメインからのトランザクションに衝突しないときに衝突するいずれかのドメインのトランザクションを制御する。非共用可能バリアとしてマークされたバリア・トランザクションは、バリア・トランザクションの後に続くいずれのトランザクションも遅らせないが、このトランザクションに関して再順序付けされることが許可されるトランザクションは存在しない。このようにして、インターコネクト・ドメインをこのように配置し、そして、ドメインの出口でのインジケータの階層レベルを削減することにより、バリア・トランザクションが衝突するすべてのトランザクションを遅らせるか、遅らせないかを判定する簡単な方法は、制御コンポーネントがインターコネクト内部でどのドメインに属しているかを正確に知る必要無しに使用される。
ドメインのためのさらなる可能な実施は「複雑な」実施である。この実施は、上記のトポロジ的制限またはドメイン・メンバーシップ制限が非常に制限的であると考えられる場合に使用可能である。非共用可能なシステム・ドメイン・メンバーシップに関する要件が維持されるべきであると仮定すると、必要とされる情報は、そのロケーションにおいて非ブロッキングであると見なされるバリア発行者と共用可能ドメインとの組み合わせの明示的に列挙されたリストである。従って、図5aおよび5bに関して記載された実施のようにバリア自体からバリアのブロッキング特性を判定できるようにするのではなく、バリアのブロッキング特性は、ドメイン情報が記憶されているロケーションから判定される。
これは、関連した各ロケーションでの2つのリスト、すなわち、内側共用可能ドメインのためのリストと、外側共用可能ドメインのためのリストとを用いて実行可能である。各リストは、ロケーションがそのドメインの外側である集合またはバリア源を指示している。代替的に、ロケーションが外側であるソースの共用可能ドメインを示す2ビット値をもつソースのリストを記憶することが可能である。
しかし、情報が提示されても、設計再使用を可能にすることは、システムが再使用されるときにドメイン情報を表現するために様々な要件に起因して、著しくより複雑であり、かつ、より困難であることが明かである。
図8は、このようなインターコネクトの実施例を示している。このインターコネクトは、4台のマスタS0、S1、S2またはS3からのトランザクション要求を受信する。S0およびS1は、内側ドメイン200の中にあり、一方、S2またはS3は内側ドメイン301に含まれ、これらはすべてが外側ドメイン302に含まれる。他のドメインを有する図示されていない他のマスタが存在する。
ロケーション310で、1つがS2から来るトランザクションのための内側ドメインと、S0またはS1から来るトランザクションのための外側ドメインとに含まれる。よって、このロケーションはそのようにマーク可能であり、バリアが受信されたとき、バリアがどのドメインに関係するかを判定可能であり、よって、バリアがそのドメインの外側にあるかどかを判定可能である。従って、S0、S1内側ドメインに適用されるバリアはそのドメインの外側にあり、実施形態に依存して、そのようにマーク可能であるか、または、早期応答が送信される。これは明らかに非常に複雑である。
この実施例の代替案は保守的で複雑な実施である。この代替案は、複雑な実施のトポロジ的な自由およびドメイン・メンバーシップの自由が必要とされるが、実施および再使用の問題が回避されなければならない場合に使用される。この場合、ドメイン・ロケーションに固有の挙動を示すべきあらゆるコンポーネントがドメインの特有のレベルにあり、正確な挙動を達成すると考えることが可能である。コンポーネントが実際に内部に位置している最小ドメインにコンポーネントがあると考えられる場合、実際にドメインの外側にあるバリアの挙動が保守的(さらに正確)であり、そして、それらのドメインの内部にあるバリアに対し正確である。この点について、バリア、ドメインまたはトランザクションの特性は変更可能であり、それらの特性がより制限的になるように変更される場合により効果的に取り扱われることを可能にすることに注意を要する。従って、内側としてマークされたバリアは、外側バリアとして取り扱うことが可能であり、外側ドメインに適用されるとしてマークされたトランザクションは内側ドメインに適用されるとしてマーク可能である。
このアプローチを用いて、ドメインを知っていることが必要とされるコンポーネントは、単一ドメインを有するように単にプログラムまたは構成可能である(内側ドメイン・メンバーシップの安全なデフォルトを用いて、これはパワーアップ時に使用可能である)。
よって、本実施では、ドメイン内部のロケーションは、非共用可能ドメインを除く最低階層レベルのドメインであり、そのロケーションがメンバである最も制限的な挙動をもつドメインの特性を有するものとしてマークされる。そのロケーションでのバリア・トランザクションは、その後、このようなドメインの内部にあるものとして取り扱われる。このような配置では、ドメインは、他のドメインの部分的な一部分であることが許可される。この配置では、インターコネクトの中でバリアがある場所を知ることを必要とせずにバリアのブロッキング挙動を調整するために、バリアがドメインから出るときにバリア上のマークを変更するのではなく、インターコネクトの中のロケーションは、バリアが位置している最低階層または最小共用可能なドメインに依存して特有のドメインの中にあるものとしてマークされる。
例えば、図8の実施例では、ロケーション310は、3個の異なるマークを用いてマークされる必要がなく、ロケーションが内部にある最小共用可能なドメイン、すなわち、内側ドメインを用いてマークされるだけである。よって、この場合内側または外側であるとしてマークされるバリアは、このドメインの内部にあると考えられ、S0、S1内側ドメインからのバリアは、そのドメインの内部にないとしても、そのドメインの内部にあると考えられる。よって、早期応答は送信可能ではなく、インターコネクトのレイテンシが増加することはこのアプローチの弱点である。しかし、ドメインのマーキングは、バリアがドメインの内部にあるかどうかの判定と同様に簡単である。
本発明の種々のさらなる態様および特徴は請求項において明確にされている。種々の変形が本発明の範囲から逸脱することなく上述された本明細書中の実施形態になされる可能性がある。
発明の例示的な実施形態が添付図面を参照して本明細書中で詳細に記載されているが、発明はこれらの実施形態そのままに限定されることなく、種々の変更および変形が請求項によって明確にされているような発明の範囲および精神から逸脱することなく当業者によってその点でなされる可能性があることが理解されるべきである。
10 インターコネクト
20、22、24および26 マスタ
30、32、34および36 スレイブ
41および42 スプリット点
44および45 マージ点
40 相互接続部
50および52 バイセクションパス
60 再順序付けバッファ
70 制御回路
80 早期応答ユニット
90 ブロッキング回路
20、22、24および26 マスタ
30、32、34および36 スレイブ
41および42 スプリット点
44および45 マージ点
40 相互接続部
50および52 バイセクションパス
60 再順序付けバッファ
70 制御回路
80 早期応答ユニット
90 ブロッキング回路
Claims (33)
- 少なくとも1台のイニシエータ機器が少なくとも1台の受信機器にアクセスする際に経由することがあるデータ経路を提供するように構成されている、データ処理装置用のインターコネクト回路であって、
前記少なくとも1台のイニシエータ機器からトランザクション要求を受信する少なくとも1つの入力と、
トランザクション要求を前記少なくとも1台の受信機器へ出力する少なくとも1つの出力と、
少なくとも1個の前記トランザクション要求が前記データ処理装置の内部でデータ・ストアにデータ・ストア・メインテナンス操作が実行されることを要求するデータ・ストア・メインテナンス要求を備える前記トランザクション要求を前記少なくとも1つの入力と前記少なくとも1つの出力との間で送信する複数のパスと、
複数のパスのうちの少なくとも1つのパスに沿って、データ・ストア・メインテナンス要求および引き続くバリア・トランザクション要求を送信することにより前記データ・ストア・メインテナンス要求の受信に応答するように構成され、トランザクション要求のストリームの中で前記データ・ストア・メインテナンス要求に先行する少なくともいくつかのトランザクション要求が前記バリア・トランザクション要求によって前記データ・ストア・メインテナンス要求より前方に保持され、トランザクション要求の前記ストリームの中で前記データ・ストア・メインテナンスに後に続く少なくともいくつかのトランザクション要求が前記バリア・トランザクション要求によって前記データ・ストア・メインテナンス要求より後方に保持されるように、前記複数のパスのうちの少なくとも1つのパスに沿って進むトランザクション要求のストリームの内部で前記バリア・トランザクション要求に関して少なくともいくつかのトランザクション要求の順序付けを維持するように構成され、前記少なくとも1つの入力から受信された前記トランザクション要求を前記少なくとも1つの出力へルーティングする制御回路と、
を備える、インターコネクト回路。 - 前記制御回路が前記バリア・トランザクション要求に応答し、前記バリア・トランザクションをクリアする応答信号の受信まで前記複数のパスのうちの少なくとも1つのパスに沿って前記少なくともいくつかのトランザクション要求の伝送を遅らせることにより、前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求の順序付けを維持するように構成されている、請求項1に記載のインターコネクト回路。
- 前記データ・ストア・メインテナンス要求がキャッシュ・メインテナンス要求を備え、前記データ処理装置が少なくとも1つのメモリと前記少なくとも1つのメモリに記憶されたデータ項目のローカルコピーを記憶する1つ以上のキャッシュとを備え、前記キャッシュ・メインテナンス要求および前記バリア・トランザクション要求を前記1つ以上のキャッシュのうちの少なくとも1つのキャッシュへ送信するように構成されている、請求項1に記載のインターコネクト回路。
- 前記制御回路が前記バリア・トランザクション要求に応答し、前記バリア・トランザクションをクリアする応答信号の受信まで前記複数のパスのうちの少なくとも1つのパスに沿って前記少なくともいくつかのトランザクション要求の伝送を遅らせることにより、前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求の順序付けを維持するように構成され、
前記少なくとも1つのキャッシュから前記応答信号を受信するように構成されている、請求項3に記載のインターコネクト回路。 - 前記1つ以上のキャッシュのうち、前記キャッシュへの入力で前記バリア・トランザクション要求を保持し、さらなるトランザクション要求を受信しないように構成された少なくとも1つのキャッシュを備え、前記キャッシュ・メインテナンス要求がさらなるトランザクション要求を安全に受信できる時点まで処理されたことを判定する前記キャッシュと関連付けられた制御回路に応答して、前記少なくとも1つのキャッシュが前記さらなるトランザクション要求を受信するように構成されている、請求項3に記載のインターコネクト回路。
- 前記キャッシュ・メインテナンス要求がさらなるデータ・ストアへ送信されるべきトランザクション要求を始動させる場合、前記時点が前記キャッシュ・メインテナンスの操作から流れ出るすべてのトランザクションがさらに送信された時点を備え、前記制御回路は前記キャッシュ・メインテナンスの操作から流れ出る前記トランザクションのさらに後方で前記バリア・トランザクション要求を送信するように構成されている、請求項5に記載のインターコネクト回路。
- 前記キャッシュ・メインテナンス要求がさらなるトランザクション要求を始動させない場合、前記制御回路は、前記キャッシュ・メインテナンス要求がさらなるトランザクション要求を安全に受信できる前記時点まで処理されたという判定に応答して、前記バリア・トランザクション要求を除去するように構成されている、請求項5に記載のインターコネクト回路。
- 前記キャッシュ・メインテナンス要求が1個以上のアドレスへ向けられ、前記バリア・トランザクション要求が対応する1個以上のアドレスを備え、前記制御回路が前記複数のパスのうちの少なくともいくつかのパスに沿って前記バリア・トランザクション要求および前記キャッシュ・メインテナンス要求をルーティングするように構成されている、請求項3に記載のインターコネクト回路。
- 前記キャッシュ・メインテナンス要求の後に続き、前記バリア・トランザクション要求によって前記キャッシュ・メインテナンス要求の後方に保持された前記少なくともいくつかのトランザクション要求が前記1個以上のアドレスへ向けられたトランザクション要求を備える、請求項8に記載のインターコネクト回路。
- 前記複数のパスのうちの前記少なくともいくつかのパスが前記1個以上のアドレスのためのデータをキャッシュできる前記1個以上のキャッシュのうちのいずれかのキャッシュへのパスである、請求項8に記載のインターコネクト回路。
- 前記制御回路が前記複数のパスのうちの少なくともいくつかのパスに沿って前記バリア・トランザクション要求および前記キャッシュ・メインテナンス要求をルーティングするように構成され、前記複数のパスのうちの前記少なくともいくつかのパスが前記キャッシュ・メインテナンス要求を開始する前記イニシエータがデータをキャッシュ可能であるいずれかのキャッシュへのパスである、請求項1に記載のインターコネクト回路。
- 前記複数のパスのうちの少なくともいくつかのパスがノードから分岐する分岐パスであり、前記制御回路が前記データ・ストア・メインテナンス要求および前記引き続くバリア・トランザクション要求を複製し、前記トランザクション要求がルーティングされる前記分岐パスのうちの少なくともいくつかの分岐パスに沿って送信するように構成されている、請求項1に記載のインターコネクト回路。
- 前記制御回路が、前記複製されたバリア・トランザクション要求の全部に対し応答する応答信号の受信後まで、前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求の伝送を遅らせるように構成されている、請求項12に記載のインターコネクト回路。
- 前記制御回路が前記インターコネクトの内部の直列化の時点に位置している応答信号生成器を備え、その時点を越えると、トランザクション要求は再順序付けが不可能であり、前記応答信号生成器が前記バリア・トランザクション要求への前記応答信号を生成し、前記バリア・トランザクション要求をさらに送信しないように構成されている、請求項1に記載のインターコネクト回路。
- 前記制御回路が、前記バリア・トランザクション要求の受信に応答して、前記バリア・トランザクション要求が受信された入口パスに沿って前記応答信号を発行する応答信号生成器と、前記バリア・トランザクション要求の受信に応答して、前記応答信号の受信まで、前記バリア・トランザクション要求が送信された、前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求へのすべての出口パスをブロックするブロッキング回路とを備える、請求項1に記載のインターコネクト回路。
- 前記応答信号生成器が前記ブロッキング回路の直ぐ上流に位置している、請求項15に記載のインターコネクト回路。
- 前記複数のパスが前記インターコネクト回路の内部で2個のノードの間に通信パスだけを備える少なくとも1つのバイセクションパスを備え、前記2個のノードが前記バイセクションパスへの入口ノードおよび出口ノードを備え、
前記応答信号生成器が前記入口ノードに位置し、前記バリア・トランザクション要求の受信に応答して、前記バリア・トランザクション要求が受信された前記入口パスに沿って前記応答信号を送信し、
前記ブロッキング回路が前記出口ノードに位置し、前記バリア・トランザクション要求の受信に応答して、前記バリア・トランザクション要求が送信されたすべての出口パスを前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求までブロックする、
請求項15に記載のインターコネクト回路。 - 前記少なくとも1台のイニシエータ機器からトランザクション要求を受信する前記少なくとも1つの入力のうちの少なくとも1つを備える少なくとも1つのドメインを備え、ドメイン境界が前記少なくとも1つの入力から受信されたトランザクション要求の何らかのマージが前記少なくとも1つのドメインの内部で行われるように配置され、
前記バリア・トランザクション要求が前記少なくとも1つのドメインに適用されるかどうかを指示するインジケータを備え、
前記制御回路が前記少なくとも1つのドメインに適用されることを指示する前記インジケータを備える前記バリア・トランザクション要求の検出に応答し、前記バリア・トランザクションが前記ドメインの外側であることを指示する指標を提供するため前記少なくとも1つのドメインの外側にある、
請求項1に記載のインターコネクト回路。 - 前記指標が、前記バリア・トランザクション要求が今度は適用される前記ドメインの外側であることを指示する前記バリア・トランザクション要求に適用されたインジケータを備える、請求項18に記載のインターコネクト回路。
- 前記制御回路が、所定のタイプのバリア・トランザクション要求が、前記バリアが適用されることを前記インジケータが示すドメインの内部にある場合、この所定のタイプのバリア・トランザクション要求に応答することなく、前記所定のタイプのバリア・トランザクション要求が前記ドメインの外側にある場合、前記所定のタイプのバリア・トランザクション要求に応答するように構成されている応答信号生成器を備える、請求項18に記載のインターコネクト回路。
- 前記インターコネクト回路が複数のドメインを備え、前記複数のドメインのうちの1つずつが前記少なくとも1台のイニシエータ機器からトランザクション要求を受信する前記少なくとも1つの入力のうちの少なくとも1つの入力を備え、ドメイン境界が前記ドメインのうちの1つのドメインの内部で前記少なくとも1つの入力から受信されたトランザクション要求のマージが前記ドメインのうちの前記1つのドメインの内部で行われるように配置されている、請求項18に記載のインターコネクト回路。
- 前記複数のドメインのうちの少なくとも1つのドメインがより大規模なドメインの一部であり、入力が下位階層のドメインのメンバである場合、入力が同様に高位階層のドメインのメンバであるように、入力毎にドメインの階層が存在し、トランザクションが前記高位階層の前記ドメインから出るときと同時またはそれ以前に前記トランザクションが前記下位階層の前記ドメインから出る、請求項21に記載のインターコネクト回路。
- 前記ドメインが、前記入力のうちの1つの入力だけを収容する非共用可能ドメインおよび前記入力の全部を具備するシステムドメインと、少なくとも1つのさらなるタイプの共用可能ドメインとを備え、非共用可能ドメインの内部の入力が前記入力に対する前記少なくとも1つのタイプの共用可能ドメインの内部に同時に存在し、前記少なくとも1つのタイプの共用可能ドメインの内部の入力が前記入力に対する前記システムドメインの内部に同様に存在するように、入力毎にドメイン階層が存在する、請求項22に記載のインターコネクト回路。
- 前記データ処理装置が複数の階層レベルからなる複数のキャッシュを備え、前記バリア・トランザクション要求が前記複数の階層レベルのうちの少なくとも1つの階層レベルを指示するインジケータを備え、前記複数の階層レベルのうちの前記少なくとも1つの階層レベルのキャッシュが前記バリア・トランザクション要求の受信に応答して応答信号を生成するように構成されている、請求項1に記載のインターコネクト回路。
- インターコネクトを経由してイニシエータ機器からトランザクション要求を受信する受信機器であって、
前記インターコネクトから前記トランザクション要求を受信する入力と、
キャッシュと、
所定のタイプのバリア・トランザクション要求に対する応答信号を生成する応答信号生成器と、
を備え、
前記入力でのキャッシュ・メインテナンス要求と引き続く前記所定のタイプのバリア・トランザクション要求のうちの1つとの受信に応答し、前記バリア・トランザクション要求に対する前記応答を生成するように構成され、データ・コヒーレンシを落とすことなく、前記受信機器がさらなるトランザクション要求を受信し処理するために、前記キャッシュが前記キャッシュに十分なキャッシュ・メインテナンス操作を実行したと判定したとき、前記応答信号を発行するように構成されている、
受信機器。 - キャッシュ・メインテナンス要求の後に続くさらなるタイプのバリア・トランザクション要求の受信に応答して、前記受信機器への入力で前記バリア・トランザクション要求を保持し、さらなるトランザクション要求を受信することがなく、前記キャッシュがデータ・コヒーレンシを落とすことなくさらなるトランザクション要求を受信し処理するために前記キャッシュのための十分なキャッシュ・メインテナンス操作を実行したことを前記受信機器が判定するとすぐに、前記バリア・トランザクション要求がさらに送信され、前記入力がさらなるトランザクション要求を受信する、請求項25に記載の受信機器。
- データ・ストア・トランザクション要求を含むトランザクション要求を生成し、インターコネクトを経由して受信機器へ発行するイニシエータ機器であって、
前記インターコネクトを通過するトランザクション要求のストリームの内部の少なくともいくつかのトランザクション要求の順序付けが、前記バリア・トランザクション要求の後に現れる前記トランザクション要求のうちの少なくともいくつかに関して、前記トランザクション要求のストリームの中で前記バリア・トランザクション要求の前に現れる前記トランザクション要求のうちの少なくともいくつかの再順序付けを許可しないことにより維持されることを前記インターコネクトに指示するバリア・トランザクション要求を生成するように構成されているバリア・トランザクション要求生成器を備え、
前記データ・ストア・メインテナンス・トランザクション要求と引き続く前記バリア・トランザクション要求とを発行するように構成されている、
イニシエータ機器。 - 前記バリアの生成器が、前記データ・ストア・メインテナンス・トランザクション要求に依存して、前記生成されたバリア・トランザクション要求にブロッキング・インジケータまたは非ブロッキング・インジケータを設けるように構成されている、請求項27に記載のイニシエータ機器。
- 前記ブロッキング・インジケータを用いて前記バリア・トランザクション要求を生成する前記バリア・トランザクション要求生成器に応答して、前記イニシエータ機器が前記ブロッキング・バリア・トランザクション要求に対する応答を受信するまで、前記インターコネクトへの前記バリア・トランザクション要求の後に現れる前記少なくともいくつかのトランザクション要求を発行することなく、
前記非ブロッキング・インジケータを用いて前記バリア・トランザクション要求を生成する前記バリア・トランザクション要求生成器に応答して、前記インターコネクトへの前記バリア・トランザクション要求の後に現れる前記少なくともいくつかのトランザクション要求を発行するように構成されている、
請求項28に記載のイニシエータ機器。 - 前記バリアの生成器が、前記バリア・トランザクション要求が適用される前記インターコネクトの内部のドメインを表すドメイン・インジケータを前記生成されたバリア・トランザクション要求に設けるように構成されている、請求項27に記載のイニシエータ機器。
- データ・ストア・メインテナンス・トランザクション要求を含むトランザクション要求を生成し、インターコネクトを経由して受信機器へ発行する少なくとも1台のイニシエータ機器を含む複数のイニシエータを備えるデータ処理装置であって、
前記インターコネクトを通過するトランザクション要求のストリームの内部の少なくともいくつかのトランザクション要求の順序付けが、前記バリア・トランザクション要求の後に現れる前記トランザクション要求のうちの少なくともいくつかに関して、前記トランザクション要求のストリームの中で前記バリア・トランザクション要求の前に現れる前記トランザクション要求のうちの少なくともいくつかの再順序付けを許可しないことにより維持されることを前記インターコネクトに指示するバリア・トランザクション要求を生成するように構成されているバリア・トランザクション要求生成器と、
前記データ・ストア・メインテナンス・トランザクション要求と引き続く前記バリア・トランザクション要求とを発行するように構成されている前記イニシエータ機器と、
少なくとも1台の受信機器、および前記複数のイニシエータと前記受信機器との間にデータ経路を提供する請求項1に記載のインターコネクト回路と、
を備えるデータ処理装置。 - 少なくとも1台のイニシエータ機器からインターコネクト回路を経由して少なくとも1台の受信機器へデータをルーティングする方法であって、
少なくとも1つのトランザクション要求が、データ・ストア・メインテナンス操作がデータ処理装置の内部でデータ・ストアに実行されることを要求するデータ・ストア・メインテナンス要求を備え、前記少なくとも1台のイニシエータ機器からトランザクション要求を少なくとも1つの入力で受信し、
少なくとも1つの出力の方へ向かう複数のパスのうちの少なくとも1つに沿って前記トランザクション要求を送信し、
前記データ・ストア・メインテナンス要求の受信に応答して、
前記複数のパスのうちの少なくとも1つのパスに沿って前記データ・ストア・メインテナンス要求および引き続くバリア・トランザクション要求を送信し、
前記データ・ストア・メインテナンス要求の前方でトランザクション要求の前記ストリームの中の前記データ・ストア・メインテナンス要求に先行する少なくともいくつかのトランザクション要求と、前記データ・ストア・メインテナンス要求の後方でトランザクション要求の前記ストリームの中の前記データ・ストア・メインテナンス要求に後続する少なくともいくつかのトランザクション要求とを保持するために、前記バリア・トランザクション要求を使用することにより前記複数のパスのうちの前記少なくとも1つのパスに沿って進むトランザクション要求のストリームの内部で前記バリア・トランザクション要求に関して少なくともいくつかのトランザクション要求の順序付けを維持する、方法。 - データ・ストア・メインテナンス・トランザクション要求を生成し、インターコネクトを経由して受信機器へデータ・ストア・メインテナンス・トランザクション要求を発行する方法であって、
前記データ・ストア・メインテナンス・トランザクション要求のうちの1つを生成し、その後、前記インターコネクトを通過するトランザクション要求のストリームの内部で少なくともいくつかのトランザクション要求の順序付けが前記バリア・トランザクション要求の後に現れる前記トランザクション要求のうちの少なくともいくつかのトランザクション要求に関してトランザクション要求の前記ストリームの中で前記バリア・トランザクション要求の前に現れる前記トランザクション要求のうちの少なくともいくつかのトランザクション要求の再順序付けを許可しないことによって維持されるべきことを前記インターコネクトに指示するバリア・トランザクション要求を生成し、
前記データ・ストア・メインテナンス・トランザクション要求および引き続く前記バリア・トランザクション要求を発行する、方法。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0917946A GB2474446A (en) | 2009-10-13 | 2009-10-13 | Barrier requests to maintain transaction order in an interconnect with multiple paths |
GB0917946.6 | 2009-10-13 | ||
GB1007342.7 | 2010-04-30 | ||
GB1007363.3 | 2010-04-30 | ||
GB201007342A GB2474532B8 (en) | 2009-10-13 | 2010-04-30 | Barrier transactions in interconnects |
GB1007363A GB2474533A (en) | 2009-10-13 | 2010-04-30 | Barrier requests to maintain transaction order in an interconnect with multiple paths |
GB1016482.0 | 2010-10-01 | ||
GB1016482A GB2474552A (en) | 2009-10-13 | 2010-10-01 | Interconnect that uses barrier requests to maintain the order of requests with respect to data store management requests |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011138481A true JP2011138481A (ja) | 2011-07-14 |
Family
ID=41402983
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012533684A Pending JP2013507708A (ja) | 2009-10-13 | 2010-09-28 | インターコネクト内の低減されたレイテンシのバリアトランザクション要求 |
JP2012533685A Active JP5650749B2 (ja) | 2009-10-13 | 2010-09-28 | インターコネクト内のバリアトランザクション |
JP2012533691A Pending JP2013507710A (ja) | 2009-10-13 | 2010-10-12 | 分散システム内の種々のコンポーネントの活動を同期させること |
JP2010229679A Pending JP2011138481A (ja) | 2009-10-13 | 2010-10-12 | インターコネクトにおけるデータ・ストア・メインテナンス要求 |
JP2014186541A Expired - Fee Related JP5865976B2 (ja) | 2009-10-13 | 2014-09-12 | インターコネクト内の低減されたレイテンシのバリアトランザクション要求 |
JP2015097254A Active JP6141905B2 (ja) | 2009-10-13 | 2015-05-12 | 分散システム内の種々のコンポーネントの活動を同期させること |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012533684A Pending JP2013507708A (ja) | 2009-10-13 | 2010-09-28 | インターコネクト内の低減されたレイテンシのバリアトランザクション要求 |
JP2012533685A Active JP5650749B2 (ja) | 2009-10-13 | 2010-09-28 | インターコネクト内のバリアトランザクション |
JP2012533691A Pending JP2013507710A (ja) | 2009-10-13 | 2010-10-12 | 分散システム内の種々のコンポーネントの活動を同期させること |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014186541A Expired - Fee Related JP5865976B2 (ja) | 2009-10-13 | 2014-09-12 | インターコネクト内の低減されたレイテンシのバリアトランザクション要求 |
JP2015097254A Active JP6141905B2 (ja) | 2009-10-13 | 2015-05-12 | 分散システム内の種々のコンポーネントの活動を同期させること |
Country Status (11)
Country | Link |
---|---|
US (6) | US8732400B2 (ja) |
EP (3) | EP2488952B1 (ja) |
JP (6) | JP2013507708A (ja) |
KR (3) | KR101734045B1 (ja) |
CN (4) | CN102713874A (ja) |
GB (4) | GB2474446A (ja) |
IL (3) | IL218703A0 (ja) |
IN (3) | IN2012DN02792A (ja) |
MY (2) | MY155614A (ja) |
TW (3) | TW201120638A (ja) |
WO (3) | WO2011045556A2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013037693A (ja) * | 2011-08-08 | 2013-02-21 | Arm Ltd | データ処理システムの同期化 |
JP2013037686A (ja) * | 2011-08-03 | 2013-02-21 | Arm Ltd | バリアトランザクションのデバッグ |
JP2017504897A (ja) * | 2014-01-13 | 2017-02-09 | エイアールエム リミテッド | 複数のトランザクションを扱うためのデータ処理システム及びデータ処理方法 |
CN114155709A (zh) * | 2021-11-23 | 2022-03-08 | 北京安融畅信息技术有限公司 | 一种急弯路段识别方法以及安全隐患排查方法 |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2474446A (en) * | 2009-10-13 | 2011-04-20 | Advanced Risc Mach Ltd | Barrier requests to maintain transaction order in an interconnect with multiple paths |
KR101699781B1 (ko) * | 2010-10-19 | 2017-01-26 | 삼성전자주식회사 | 시스템 온 칩 및 그것의 데이터 중재 방법 |
US8589638B2 (en) * | 2011-07-19 | 2013-11-19 | Arm Limited | Terminating barriers in streams of access requests to a data store while maintaining data consistency |
US9473424B2 (en) * | 2011-09-19 | 2016-10-18 | Fujitsu Limited | Address table flushing in distributed switching systems |
US9317460B2 (en) | 2012-06-15 | 2016-04-19 | International Business Machines Corporation | Program event recording within a transactional environment |
US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
US9367323B2 (en) | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
US9442737B2 (en) | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
US20140032854A1 (en) * | 2012-07-30 | 2014-01-30 | Futurewei Technologies, Inc. | Coherence Management Using a Coherent Domain Table |
US9489307B2 (en) * | 2012-10-24 | 2016-11-08 | Texas Instruments Incorporated | Multi domain bridge with auto snoop response |
EP3022655A2 (en) * | 2013-07-18 | 2016-05-25 | Synaptic Laboratories Limited | Computing architecture with peripherals |
US20150317158A1 (en) | 2014-04-03 | 2015-11-05 | Applied Micro Circuits Corporation | Implementation of load acquire/store release instructions using load/store operation with dmb operation |
GB2533972B (en) * | 2015-01-12 | 2021-08-18 | Advanced Risc Mach Ltd | An interconnect and method of operation of an interconnect |
US20160246721A1 (en) * | 2015-02-19 | 2016-08-25 | Qualcomm Incorporated | Role based cache coherence bus traffic control |
US10078589B2 (en) * | 2015-04-30 | 2018-09-18 | Arm Limited | Enforcing data protection in an interconnect |
US9946492B2 (en) | 2015-10-30 | 2018-04-17 | Arm Limited | Controlling persistent writes to non-volatile memory based on persist buffer data and a persist barrier within a sequence of program instructions |
US10067713B2 (en) * | 2015-11-05 | 2018-09-04 | International Business Machines Corporation | Efficient enforcement of barriers with respect to memory move sequences |
US10241945B2 (en) | 2015-11-05 | 2019-03-26 | International Business Machines Corporation | Memory move supporting speculative acquisition of source and destination data granules including copy-type and paste-type instructions |
US10140052B2 (en) * | 2015-11-05 | 2018-11-27 | International Business Machines Corporation | Memory access in a data processing system utilizing copy and paste instructions |
US10346164B2 (en) | 2015-11-05 | 2019-07-09 | International Business Machines Corporation | Memory move instruction sequence targeting an accelerator switchboard |
US10126952B2 (en) * | 2015-11-05 | 2018-11-13 | International Business Machines Corporation | Memory move instruction sequence targeting a memory-mapped device |
US10042580B2 (en) | 2015-11-05 | 2018-08-07 | International Business Machines Corporation | Speculatively performing memory move requests with respect to a barrier |
US9996298B2 (en) | 2015-11-05 | 2018-06-12 | International Business Machines Corporation | Memory move instruction sequence enabling software control |
US10152322B2 (en) | 2015-11-05 | 2018-12-11 | International Business Machines Corporation | Memory move instruction sequence including a stream of copy-type and paste-type instructions |
GB2548387B (en) * | 2016-03-17 | 2020-04-01 | Advanced Risc Mach Ltd | An apparatus and method for filtering transactions |
US10956205B2 (en) * | 2017-01-03 | 2021-03-23 | Arm Limited | Data processing |
JP6944107B2 (ja) * | 2017-07-11 | 2021-10-06 | 富士通株式会社 | 情報処理装置、情報処理システム及びプログラム |
KR102262209B1 (ko) * | 2018-02-09 | 2021-06-09 | 한양대학교 산학협력단 | 더미 입출력 요청을 이용한 배리어 명령 전달 방법 및 그 장치 |
JP7207133B2 (ja) * | 2019-04-23 | 2023-01-18 | 富士通株式会社 | 情報処理装置、同期装置及び情報処理装置の制御方法 |
US11593281B2 (en) * | 2019-05-08 | 2023-02-28 | Hewlett Packard Enterprise Development Lp | Device supporting ordered and unordered transaction classes |
US11055130B2 (en) | 2019-09-15 | 2021-07-06 | Mellanox Technologies, Ltd. | Task completion system |
US11822973B2 (en) | 2019-09-16 | 2023-11-21 | Mellanox Technologies, Ltd. | Operation fencing system |
US11372585B2 (en) | 2020-05-05 | 2022-06-28 | Micron Technology, Inc. | Asynchronous process topology in a memory device |
US11876713B1 (en) * | 2023-03-13 | 2024-01-16 | Intuit Inc. | Client side backoff filter for rate limiting |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008503808A (ja) * | 2004-06-28 | 2008-02-07 | インテル・コーポレーション | 高速メモリモジュール |
WO2008151101A1 (en) * | 2007-06-01 | 2008-12-11 | Qualcomm Incorporated | Device directed memory barriers |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55147744A (en) * | 1979-05-07 | 1980-11-17 | Hitachi Ltd | Memory controlling unit |
US4833468A (en) * | 1987-10-14 | 1989-05-23 | Unisys Corporation | Layered network |
US5224214A (en) * | 1990-04-12 | 1993-06-29 | Digital Equipment Corp. | BuIffet for gathering write requests and resolving read conflicts by matching read and write requests |
US5274782A (en) * | 1990-08-27 | 1993-12-28 | International Business Machines Corporation | Method and apparatus for dynamic detection and routing of non-uniform traffic in parallel buffered multistage interconnection networks |
US5459842A (en) * | 1992-06-26 | 1995-10-17 | International Business Machines Corporation | System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory |
US5608870A (en) * | 1992-11-06 | 1997-03-04 | The President And Fellows Of Harvard College | System for combining a plurality of requests referencing a common target address into a single combined request having a single reference to the target address |
US6233702B1 (en) * | 1992-12-17 | 2001-05-15 | Compaq Computer Corporation | Self-checked, lock step processor pairs |
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 |
JP3636871B2 (ja) * | 1997-09-16 | 2005-04-06 | 株式会社日立製作所 | 並列プロセッサシステム |
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 |
JP3858492B2 (ja) * | 1998-12-28 | 2006-12-13 | 株式会社日立製作所 | マルチプロセッサシステム |
JP3889195B2 (ja) * | 1999-02-03 | 2007-03-07 | 株式会社東芝 | 画像処理装置、画像処理システムおよび画像処理方法 |
US6430646B1 (en) * | 1999-08-18 | 2002-08-06 | Ati International Srl | Method and apparatus for interfacing a processor with a bus |
US6748518B1 (en) * | 2000-06-06 | 2004-06-08 | International Business Machines Corporation | Multi-level multiprocessor speculation mechanism |
US6647453B1 (en) * | 2000-08-31 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | System and method for providing forward progress and avoiding starvation and livelock in a multiprocessor computer system |
US6795878B2 (en) * | 2000-12-11 | 2004-09-21 | International Business Machines Corporation | Verifying cumulative ordering of memory instructions |
US6967926B1 (en) * | 2000-12-31 | 2005-11-22 | Cisco Technology, Inc. | Method and apparatus for using barrier phases to limit packet disorder in a packet switching system |
US7031338B2 (en) * | 2001-08-27 | 2006-04-18 | Hewlett-Packard Development Company, L.P. | System and method for the consolidation of data packets |
US7051145B2 (en) * | 2001-12-10 | 2006-05-23 | Emulex Design & Manufacturing Corporation | Tracking deferred data transfers on a system-interconnect bus |
JP2006518053A (ja) * | 2002-12-24 | 2006-08-03 | サン・マイクロシステムズ・インコーポレイテッド | ハードウェア・スカウト・スレッディングを通してコードを推測で実行することによるプリフェッチの生成 |
TW200502805A (en) * | 2003-05-09 | 2005-01-16 | Incentia Design Systems Corp | Timing based scan chain implementation in an IC design |
US7552317B2 (en) * | 2004-05-04 | 2009-06-23 | Sun Microsystems, Inc. | Methods and systems for grouping instructions using memory barrier instructions |
JP4463097B2 (ja) * | 2004-12-24 | 2010-05-12 | エヌイーシーコンピュータテクノ株式会社 | データ転送システム、データ転送方法およびクロスバlsi |
US7631130B2 (en) * | 2005-02-04 | 2009-12-08 | Mips Technologies, Inc | Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor |
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 |
EP1750202A1 (en) * | 2005-07-11 | 2007-02-07 | Nvidia Corporation | Combining packets for a packetized bus |
US7500039B2 (en) * | 2005-08-19 | 2009-03-03 | International Business Machines Corporation | Method for communicating with a processor event facility |
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 |
US7657680B2 (en) * | 2006-06-21 | 2010-02-02 | Finisar Corporation | Multiple bus interface control using a single controller |
US7908406B2 (en) * | 2006-06-21 | 2011-03-15 | Finisar Corporation | Interface architecture for facilitating communication regardless of protocol |
US7783817B2 (en) * | 2006-08-31 | 2010-08-24 | Qualcomm Incorporated | Method and apparatus for conditional broadcast of barrier operations |
US7603490B2 (en) * | 2007-01-10 | 2009-10-13 | International Business Machines Corporation | Barrier and interrupt mechanism for high latency and out of order DMA device |
US7581201B2 (en) * | 2007-02-28 | 2009-08-25 | International Business Machines Corporation | System and method for sign-off timing closure of a VLSI chip |
US8006047B2 (en) * | 2007-06-27 | 2011-08-23 | Hitachi Global Storage Technologies Netherlands B.V. | Storage device with write barrier sensitive write commands and write barrier insensitive commands |
US8468287B2 (en) | 2007-08-22 | 2013-06-18 | Nec Corporation | Information processor and information processing method |
US8612950B2 (en) * | 2008-06-19 | 2013-12-17 | Intel Corporation | Dynamic optimization for removal of strong atomicity barriers |
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 |
US8589638B2 (en) * | 2011-07-19 | 2013-11-19 | Arm Limited | Terminating barriers in streams of access requests to a data store while maintaining data consistency |
-
2009
- 2009-10-13 GB GB0917946A patent/GB2474446A/en not_active Withdrawn
-
2010
- 2010-04-30 GB GB201007342A patent/GB2474532B8/en active Active
- 2010-04-30 GB GB1007363A patent/GB2474533A/en not_active Withdrawn
- 2010-09-28 IN IN2792DEN2012 patent/IN2012DN02792A/en unknown
- 2010-09-28 JP JP2012533684A patent/JP2013507708A/ja active Pending
- 2010-09-28 EP EP10782345.2A patent/EP2488952B1/en active Active
- 2010-09-28 KR KR1020127009810A patent/KR101734045B1/ko active IP Right Grant
- 2010-09-28 JP JP2012533685A patent/JP5650749B2/ja active Active
- 2010-09-28 WO PCT/GB2010/001822 patent/WO2011045556A2/en active Application Filing
- 2010-09-28 MY MYPI2012001273A patent/MY155614A/en unknown
- 2010-09-28 CN CN2010800469669A patent/CN102713874A/zh active Pending
- 2010-09-28 WO PCT/GB2010/001819 patent/WO2011045555A1/en active Application Filing
- 2010-09-28 CN CN201080046421.8A patent/CN102792290B/zh active Active
- 2010-09-28 IN IN2853DEN2012 patent/IN2012DN02853A/en unknown
- 2010-09-28 EP EP10763398.4A patent/EP2488951B1/en not_active Not-in-force
- 2010-09-28 KR KR1020127010025A patent/KR20120095876A/ko not_active Application Discontinuation
- 2010-10-01 TW TW099133594A patent/TW201120638A/zh unknown
- 2010-10-01 TW TW99133596A patent/TWI474193B/zh active
- 2010-10-01 GB GB1016482A patent/GB2474552A/en not_active Withdrawn
- 2010-10-05 US US12/923,725 patent/US8732400B2/en active Active
- 2010-10-05 US US12/923,723 patent/US8856408B2/en active Active
- 2010-10-05 US US12/923,727 patent/US8607006B2/en active Active
- 2010-10-12 IN IN3050DEN2012 patent/IN2012DN03050A/en unknown
- 2010-10-12 MY MYPI2012001398A patent/MY154614A/en unknown
- 2010-10-12 JP JP2012533691A patent/JP2013507710A/ja active Pending
- 2010-10-12 KR KR1020127011968A patent/KR101734044B1/ko active IP Right Grant
- 2010-10-12 WO PCT/GB2010/051715 patent/WO2011045595A1/en active Application Filing
- 2010-10-12 CN CN201080046965.4A patent/CN102576341B/zh active Active
- 2010-10-12 EP EP10775868.2A patent/EP2488954B1/en active Active
- 2010-10-12 JP JP2010229679A patent/JP2011138481A/ja active Pending
- 2010-10-13 TW TW099134937A patent/TWI533133B/zh active
- 2010-10-13 CN CN2010106093158A patent/CN102063391A/zh active Pending
- 2010-10-13 US US12/923,907 patent/US8601167B2/en not_active Expired - Fee Related
- 2010-10-13 US US12/923,906 patent/US8463966B2/en active Active
-
2012
- 2012-03-18 IL IL218703A patent/IL218703A0/en unknown
- 2012-03-18 IL IL218704A patent/IL218704A/en active IP Right Grant
- 2012-03-27 IL IL218887A patent/IL218887A/en active IP Right Grant
-
2013
- 2013-08-06 US US13/960,128 patent/US9477623B2/en active Active
-
2014
- 2014-09-12 JP JP2014186541A patent/JP5865976B2/ja not_active Expired - Fee Related
-
2015
- 2015-05-12 JP JP2015097254A patent/JP6141905B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008503808A (ja) * | 2004-06-28 | 2008-02-07 | インテル・コーポレーション | 高速メモリモジュール |
WO2008151101A1 (en) * | 2007-06-01 | 2008-12-11 | Qualcomm Incorporated | Device directed memory barriers |
JP2010530571A (ja) * | 2007-06-01 | 2010-09-09 | クゥアルコム・インコーポレイテッド | デバイスへ向けられたメモリ・バリア |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013037686A (ja) * | 2011-08-03 | 2013-02-21 | Arm Ltd | バリアトランザクションのデバッグ |
JP2013037693A (ja) * | 2011-08-08 | 2013-02-21 | Arm Ltd | データ処理システムの同期化 |
JP2017504897A (ja) * | 2014-01-13 | 2017-02-09 | エイアールエム リミテッド | 複数のトランザクションを扱うためのデータ処理システム及びデータ処理方法 |
CN114155709A (zh) * | 2021-11-23 | 2022-03-08 | 北京安融畅信息技术有限公司 | 一种急弯路段识别方法以及安全隐患排查方法 |
CN114155709B (zh) * | 2021-11-23 | 2022-09-23 | 北京安融畅信息技术有限公司 | 一种急弯路段识别方法以及安全隐患排查方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011138481A (ja) | インターコネクトにおけるデータ・ストア・メインテナンス要求 | |
US7069361B2 (en) | System and method of maintaining coherency in a distributed communication system | |
US9053072B2 (en) | End node transactions at threshold-partial fullness of storage space | |
US9288260B2 (en) | Apparatus, system, and methods for facilitating one-way ordering of messages | |
TW201626236A (zh) | 互連及互連的運作的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121029 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131210 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140512 |