JP5036120B2 - 非ブロック化共有インターフェイスを持つ通信システム及び方法 - Google Patents

非ブロック化共有インターフェイスを持つ通信システム及び方法 Download PDF

Info

Publication number
JP5036120B2
JP5036120B2 JP2002571999A JP2002571999A JP5036120B2 JP 5036120 B2 JP5036120 B2 JP 5036120B2 JP 2002571999 A JP2002571999 A JP 2002571999A JP 2002571999 A JP2002571999 A JP 2002571999A JP 5036120 B2 JP5036120 B2 JP 5036120B2
Authority
JP
Japan
Prior art keywords
initiator
functional block
target
data
transfer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2002571999A
Other languages
English (en)
Other versions
JP2004530197A (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 JP2004530197A publication Critical patent/JP2004530197A/ja
Application granted granted Critical
Publication of JP5036120B2 publication Critical patent/JP5036120B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、コンピューテイング・サブシステムを接続する通信システムに関する。
電子計算及び通信システムはより多数の特徴を包含し、複雑性を増加し続けている。同時に、電子計算及び通信システムの物理的な大きさ及び機能当たりのコストは減少している。4層深サブミクロン相補的金属酸化物半導体(CMOS)技術などの半導体技術の急速な進歩が、真の「チップ上のシステム」デザインを可能にしている。これらの複雑なデザインは、例えば、1つ又は複数のプロセッサコア、デジタル信号処理(DSP)コア、いくつかの通信インターフェイス、及びグラフイック支援をアプリケーション特別ロジックの中に組み込む。いくつかのシステムにおいて、これらの極端に複雑なチップの1つ又はいくつかは互いにそして他のシステムと通信しなければならない。効率的な通信が単一の複雑なチップ上のサブシステム間及びシステムボード上のチップ間及びシステムボート上のチップ間で行われる必要があるため、このようなシステムの集積化、検証、そして試験に重大な新しい挑戦が生ずる。サブシステムとチップの間の通信の効率的で柔軟な方法を有する1つの利点は、システム部品を他のシステムに最小の再設計で再使用できることである。
現代の電子システムの集積化、検証、そして試験における1つの挑戦は、多くのアプリケーション分野における現代の電子システムが機能ブロック間でメモリなどの資源を共有することを必要とする機能性、コスト及びフォームファクターの要件を有する事実から生ずる。ここで、機能ブロックは通信システムとインターフェイスするどんなエンティテイであることができる。このようなシステムでは、機能ブロックは典型的に異なる性能特性と要件を有し、そして共有資源が全部の要件を同時に満足しなければならない。典型的な機能ブロックの重要な要件は、機能ブロック間で大きさが数オーダーにわたって変化できる待ち時間及び帯域幅制約である。広く変化する制約を同時に満足するために、通信システムは高度の予報可能性を与えなければならない。
現代の複雑なコンピュータ・システムについての通信システム設計の従来の手法は、さまざまな長所と短所を有している。このような手法の本質的な観点はさまざまなサブシステムが互いに提供する通信インターフェイスである。1つの手法は、サブシステムとそれが通信しなければならない各ピアとの間にカスタマイズされたポイント・ツー・ポイント・インターフェイスを定義することである。このカスタマイズされた手法は、プロトコルの簡潔さ、保証された性能、及び関係の無いサブシステムへの依存性からの隔離を提供する。しかし、カスタマイズされたインターフェイスはその性質上、柔軟性に欠ける。異なるインターフェイスを持つ新しいサブシステムの追加はデザインの再設計を必要とする。
第2の手法は、標準化されたインターフェイスを使用してシステムを定義することである。多くの標準化されたインターフェイスは以前に確立されたコンピュータバスプロトコルに基づいている。コンピュータバスの使用は、バスが十分な性能を有する限り、システムが必要とする多くの異なる機能ブロックを一緒に接続することができるため、システム設計に柔軟性を与える。また、さまざまなサブシステムの間でバスへのアクセスを割り当てる必要がある。コンピュータバスの場合、資源の割り当ては典型的に、アービトレイション(仲裁)と呼ばれている。
コンピュータバスの1つの不利な点は、バスに接続された各サブシステム又は部品はバスプロトコルを使用する制約を受ける。いくつかの場合、これがサブシステムの性能を制限する。例えば、サブシステムは同時に複数のトランザクションストリームを取り扱う能力を持つことができるが、バスプロトコルは同時的操作を十分に支援することができない。各トランザクションストリームが順番制約を持つ複数のトランザクションストリームを取り扱うサブシステムの場合、ストリーム間を認識しそしてストリーム内の順番を保存するために、サブシステムは受信又は送信されたデータの各増加をあるデータストリームのある部分と識別する必要がある。これはデータ送信源であるサブシステムを識別することを含む。通常は、このような識別は特別のサブシステム又は部品により生成される構成可能でないハードウェア識別子に限定されている。
現在のバスシステムは、1つのトランザクションからのデータが同じストリームの別のトランザクションからのデータにより間挿(インターリーブ)される「分割トランザクション」を支援することにより、1つのトランザクションストリーム内の順番を保存するための制限された能力を提供する。このようなバスでは、データは順番から外れて到着しても識別できるように1つのデータストリームに所属しているタグが付けられる。これは受信するサブシステムが識別情報を抽出するために到着アドレスを復号することを必要とする。
現在のバスシステムは、いくつかのDRAMクライアントに対して1つのダイナミックランダムアクセスメモリ(DRAM)へのアクセスを取り扱うメモリコントローラなど、1つの相互接続を介して複数のトランザクションストリームを処理できるサブシステムの真の同時的操作を支援していない。DRAMコントローラは、アクセス要求源、アクセス要求優先度、順番要求等に関する情報を必要とするであろう。現在の通信システムは、既存のプロトコルに適応させるためにサブシステムに追加の負荷を課すことなくして、このような情報をデータと共に送信することをしない。
多くのサブシステムがそれらの能力の全てを使用して従来のシステムで動作するためには、既存の通信システム上の通信を提供するために追加の知識がサブシステムに設計されなければならない。これはサブシステムが後で新しいサブシステム又は部品と通信することが要求される場合、サブシステムをより高価にして柔軟性を失わせる。このように、既存の通信手法は、今日の大きくて複雑な電子システムの要求を満足していない。従って、大きくて複雑な電子システムのサブシステムがそれらの変化する性能特性及び要件に関係なく効率的に相互動作することを可能にする通信システム及びメカニズムが必要とされる。
(発明の開示)
本発明の1つの実施の形態は、電子サブシステム間の柔軟な通信能力を与えるための共有通信バスを含む。1つの実施の形態は、サブシステムに追加の知識を設計することなく、特定のサブシステムにより必要とされる詳細さの異なるレベルでデータ送信の識別を可能にするプロトコルを含む。
本発明の1つの実施の形態は、少なくとも1つのイニシエーター機能ブロック及び1つのターゲット機能ブロックを含むいくつかの機能ブロックを含む。いくつかのイニシエーター機能ブロックはターゲット機能ブロックとしても機能できる。1つの実施の形態では、イニシエーター機能ブロックはイニシエーター・インターフェイス・モジュールに接続され、ターゲット機能ブロックはターゲット・インターフェイス・モジュールに接続されている。イニシエーター機能ブロックとターゲット機能ブロックはそれらのそれぞれのインターフェイス・モジュールと通信し、そしてインターフェイス・モジュールは互いに通信する。イニシエーター機能ブロックはターゲット機能ブロックと接続を確立することにより通信をする。ここで、接続とはデータをイニシエーター機能ブロックとターゲット機能ブロックとの間で送ることが可能な論理状態である。
また、1つの実施の形態は、複数の信号を運搬するために構成されたバスを含み、ここで、信号はイニシエーター機能ブロックとターゲット機能ブロックとの間のデータ転送が一部である特定の接続を示す接続識別子信号を含む。接続識別子は、どの機能ブロックが送信源であるか、送信要求の優先度、及び送信順番情報などの接続に関する情報を含む。また、1つの実施の形態は、スレッド識別子を含み、接続識別子により与えられる情報の小組を提供する。1つの実施の形態では、スレッド識別子はインターフェイス・モジュールと接続された機能ブロックとの間の転送を識別するローカル範囲の識別子であり、いくつかの実施の形態では、インターフェイス・モジュールが機能ブロックを共有通信バスに接続する。
接続識別子は情報をインターフェイス・モジュール間又はそれらのインターフェイス・モジュールを介して機能ブロック間に転送するグローバル範囲の識別子である。いくつかの機能ブロックは接続識別子により提供される全ての情報を必要とするが、他の機能ブロックはスレッド識別子により提供される情報の小組のみを必要とする。
(詳細な説明)
本発明は、複雑な電子システムの複数の機能ブロック又はサブシステムが共有通信バスなどの共有通信資源を介して互いに通信することを可能にした通信システム及び方法である。1つの実施の形態では、通信プロトコルが1つの半導体装置上の複数の機能ブロックが互いに通信することを可能にする。別の実施の形態では、その通信プロトコルが異なる半導体装置上の複数の機能ブロックがバスなどの共有オフチップ通信資源を介して互いに通信することを可能にするために使用できる。
1つの実施の形態では、本発明は別の命令、アドレス、及びデータ線を持つパイプライン化された通信バスである。代替的な実施の形態は、多重化されたアドレス、データ、及び制御信号を持つパイプライン化された通信バスを含む。前者の実施の形態は、割増の線を必要とするが後者の実施の形態より高い性能と単純な制御を提供する。前者の実施の形態は、線が相対的に高価ではなく、性能要求が通常はより高いオンチップ通信についてよりふさわしい。後者の実施の形態は、アドレスとデータ転送の間で同じ線を共有するため、線当たりの転送についてより高い効率を与える。後者の実施の形態は、パッケージピン及びボードトレースが信号当たりのコストを増加するため、そして総通信要求性能が普通低い、半導体装置間のチップ・ツー・チップ通信によりふさわしい。
図1は、複雑な電子システム100のブロック図である。共有通信バス112がサブシステム102、104、106、108及び110を接続する。サブシステムは典型的に、共有バスへインターフェイスするためのインターフェイス・モジュールを含んだ機能ブロックである。サブシステムは、それ自身が1つ又は複数の機能ブロックを含んでもよく、そして集積化された又は物理的に別のインターフェイス・モジュールを含むか又は含まなくてもよい。1つの実施の形態では、通信バス112により接続されたサブシステムは別の集積回路チップである。サブシステム104は、特定の機能を実行するために設計された集積回路として知られているアプリケーション特別集積回路(ASIC)である。サブシステム106は、ダイナミックランダムアクセスメモリ(DRAM)である。サブシステム108は、消去可能、プログラム可能、読み出し専用メモリ(EPROM)である。サブシステム110は、フィールドプラグラム可能ゲートアレイ(FPGA)である。サブシステム102は、システム100において動作するように特別に設計された完全なカスタム集積回路である。他の実施の形態は、図示したような同じタイプの又は図示しない他のタイプの追加のサブシステムを含むことができる。他の実施の形態はシステム100に示されるサブシステムよりは少ないサブシステムを含んでも良い。集積回路102は、サブシステム102A、102B、102C、102D及び102Eを含む。ASIC104は、機能ブロック104A、104B及び104Cを含む。FPGA110は、機能ブロック110A及び110Bを含む。機能ブロックは特定の機能を実行する論理の定ブロックであってよい。また、機能ブロックは集積回路上のメモリ部品であってもよい。
システム100は、1つ又は複数の集積回路又はチップからなってもよいシステムの一例である。機能ブロックは例えば機能ブロック102Eのような集積回路上の論理ブロック、又は、機能ブロックは単一の論理機能を実行する完全なカスタム集積回路102などのような集積回路であってよい。
共有通信バス112は、システム100のサブシステム間に共有通信バスを提供する。共有通信バス114は、単一の集積回路上のサブシステム又は機能ブロック間に共有通信バスを提供する。図示された機能ブロックのいくつかは、インターフェイス・モジュールに接続されて、それを介して共有通信バス112又は共有通信バス114から及びへ信号を受信し及び送信する。相互接続115は、インターフェイス・モジュールを機能ブロックに接続するためのローカル・ポイント・ツー・ポイント相互接続である。
図示するように、インターフェイス・モジュール120−127はさまざまな機能ブロックに接続される。この実施の形態では、インターフェイス・モジュール120、122、123及び124はそれらが接続された機能ブロック(それぞれ、A、B、C、E及び102)からは物理的に分離されている。インターフェイス・モジュール121、及び125−128は本質的にそれらのそれぞれの機能ブロック又はサブシステムの部分である。102Dなどのいくつかの機能ブロックは、専用のインターフェイス・モジュールを必要としない。サブシステム、機能ブロック、及びインターフェイス・モジュールの配置は柔軟で、システム設計者により決定される。
1つの実施の形態では、4つの基本的なタイプの機能ブロックが存在する。4つの基本的なタイプは、イニシエーター、ターゲット、ブリッジ、及びスヌーピング・ブロックである。典型的なターゲットはメモリ装置であり、典型的なイニシエーターは中央処理ユニット(CPU)である。機能ブロックの全ては共有通信112又は共有通信バス114及び1つの実施の形態のプロトコルを介して互いに通信する。イニシエーター及びターゲット機能ブロックはインターフェイス・モジュールを介して共有通信バスと通信できる。イニシエーター機能ブロックは、イニシエーター・インターフェイス・モジュールを介して共有通信バスと通信でき、そしてターゲット機能ブロックはターゲット・インターフェイス・モジュールを介して共有通信バスと通信できる。
イニシエーター・インターフェイス・モジュールはそれが付随するもの以外の機能ブロックから及びへ読み出し及び書き込み要求を受信し及び送信する。1つの実施の形態では、イニシエーター・インターフェイス・モジュールは典型的に、CPU、デジタル信号処理(DSP)コア、又は直接メモリアクセス(DMA)エンジンに接続される。
図2は、本発明の実施の形態のイニシエーター・インターフェイス・モジュール800のブロック図である。イニシエーター・インターフェイス・モジュール800は、クロック発生器802、データフロー・ブロック806、アービトレーター・ブロック804、アドレス/命令復号ブロック808、構成レジスタ810、及びシンクロナイザー812を含む。イニシエーター・インターフェイス・モジュール800は、共有通信バス814とイニシエーター機能ブロック816に接続される。1つの実施の形態では、共有通信バス814は図1にバス112のようにサブシステムを接続する共有通信バスである。
クロック発生器802は、イニシエーター機能ブロック816が異なる周波数で共有通信バス814に対して同期して動作する時、クロック分割を実行するために使用される。イニシエーター機能ブロック816が共有通信バス814に対して非同期して動作する時、クロック発生器802は使用されず、シンクロナイザー812が使用される。アービトレーター・ブロック804は共有通信バス814へのアクセスのアービトレイション(仲裁)を実行する。1つの実施の形態では、複数レベルのアービトレイション構成が使用され、アービトレーター・モジュール804は第1レベル・アービトレイションの前割当て帯域幅アスペクトを管理する論理回路と第2レベル・アービトレイションを管理する論理を含む。データフロー・ブロック806は、共有通信バス814とイニシエーター機能ブロック816の間のトランザクションの管理と関連する制御論理に加えて、共有通信バス814とイニシエーター機能ブロック816の間にデータフロー・ファーストイン・ファーストアウト(FIFO)バッフアを含む。FIFOバッフアは、共有通信バス814とイニシエーター機能ブロック816との間で転送されるアドレス及びデータ・ビットの両方をステージする。1つの実施の形態では、共通通信バス814はメモリマップド・プロトコルを実現する。基礎にあるコンピュータバスプロトコルがある操作の同時性を支援するならば、基礎にあるコンピュータバスプロトコルの特定の詳細は本発明には重要ではない。本発明に使用されるバスプロトコルの好適な実施の形態は、繰り返しトランザクション又は分割トランザクションを支援するものである。何故ならば、これらのプロトコルは他の関係無いトランザクションに属する転送を可能にするために複数サイクルトランザクションを中断することにより操作の同時性を伝える機構を提供する。これらのプロトコルは、イニシエーターにより前に要求されたデータを長い待ち時間のターゲットが戻すのをイニシエーターが待つ間、独立のトランザクションがバスを使用できるから、高い転送効率を可能にする。
アドレス/命令復号ブロック808は、イニシエーター機能ブロック816に付随したレジスタへの書き込みが実行されるべきかを決定するために共有通信バス814上のアドレスを復号する。アドレス/命令復号ブロック808はまた、入力する命令を復号する。構成レジスタ810は、帯域幅割当て及びクライアント・アドレス・ベースを含む、モジュール800の状態を決定するビットを格納する。1つのレジスタ810は、イニシエーター機能ブロック816を独特に識別するビット組であるアイデンティフイケーション(ID)を格納する。
図3は、ターゲット・インターフェイス・モジュール900の実施の形態のブロック図である。ターゲット・インターフェイス・モジュール900は共有通信バス914及びターゲット機能ブロック918に接続されている。ターゲット・インターフェイス・モジュール900は、クロック発生器902と、データフロー・ブロック906と、アドレス/命令復号ブロック908と、シンクロナイザー912と、状態制御ブロック916内の状態レジスタとを含む。イニシエーター・インターフェイス・モジュール800のブロックと同様な名前のターゲット・インターフェイス・モジュール900のブロックは、イニシエーター・ブロック800に関して説明したのと実質的に同じ方法で機能する。状態レジスタ及び状態制御ブロック916は、例えば、ターゲット機能ブロック918に対する識別子とクライアント・アドレス・ベースを格納するレジスタを含む。
1つの実施の形態では、イニシエーター機能ブロック816などのイニシエーター機能ブロックはまたターゲット機能ブロックとして動作し、他の機能ブロック又はサブシステムへ信号を送信することにより動作を開始すると共に他の機能ブロック又はサブシステムからの信号に応答する能力を有する。
図4は、1つの実施の形態によるコンピュータ・システム100の一部のブロック図である。図4は、複数レベル接続アイデンティフイケーションを説明するために有用である。システム100は、イニシエーター・インターフェイス・モジュール1004に相互接続1010により接続されたイニシエーター機能ブロック1002を含む。イニシエーター・インターフェイス・モジュール1004は、共有通信バス1012によりターゲット・インターフェイス・モジュール1006に接続されている。ターゲット・インターフェイス・モジュール1006は、相互接続1010によりターゲット機能モジュール1008に接続されている。典型的に、共有通信バス1012は図1の共有通信バス112又は図1の共有通信バス114と類似している。相互接続1010は典型的に、共有された相互接続ではなく、ポイント・ツー・ポイントである機能ブロックをインターフェイス・モジュールに接続する図1の相互接続115に類似する。相互接続1010は典型的に、そのローカル的性質のため、共有通信バス1012よりも物理的に短い。以下により詳細に説明するが、システム100は特定の機能ブロックの要件に依存して2つの異なるレベルの接続識別を使用する。「グローバル」接続識別情報は共有通信バス1012上に送信されるが、「ローカル」接続識別又はスレッド識別情報は相互接続1010内に送信される。
図5は、共有通信バス1012の1つの実施の形態のブロック図である。共有通信バス1012が、インターフェイス・モジュール又は機能ブロックであってよいエンティテイA、B、C、D及びEに接続されていることが示されている。共有通信バス1012は、一組の線からなっている。データ線230は、共有通信バス101上の機能ブロック間に直接的な高効率のデータトラフイックの転送を提供する。1つの実施の形態では、共有通信バス1012は、別個のアドレス、データ、及び接続識別線を使用してフレーム化され、時間分割多重化され、完全にパイプライン化されて、固定待ち時間の通信プロトコルであるバスプロトコルを支援する。バスプロトコルは高い動作の同時性を可能にするため細かい粒のインターリーブ(間挿)を支援し、そして長い又は可変の待ち時間のターゲット装置からの読出しを効率的に実行するための再試行トランザクションを用いる。本発明を理解するためには、共有通信バス1012をアクセスするために用いられるアービトレイション方法の詳細は必要でない。イニシエーター機能ブロックが命令とアドレスをドライブした時から機能ブロックが応答をドライブするまでの遅延時間は、共有通信バス1012の待ち時間として知られている。バスプロトコルは、バスをアクセスするために多くのイニシエーター機能ブロックとターゲット機能ブロックの間のアービトレイションを支援する。図示された実施の形態では、共有バス1012へのアクセスのアービトレイションは図4のモジュール1004などのイニシエーター・インターフェイス・モジュールにより実行される。他の実施の形態では、アービトレイションは機能ブロックにより直接実行されるか、又は、インターフェイス・モジュールと機能ブロックの組合わせにより実行される。1つの実施の形態では、バス許可は1つのパイプライン化されたバスサイクルの間、続く。プロトコルは、単一の機能ブロックが連続したバスサイクルについてバス所有者になることを禁止しないが、その機能ブロックがその権利を得るために連続したバスサイクルにおいてアービトレイションに成功的に勝利することを必要とする。
共有通信バス1012は、別個のアドレス、データ及び制御線を含む。他の実施の形態では、1つ又は複数の線を共有する多重化されたアドレス、データ及び制御信号を含んでよい。このような実施の形態は、線がアドレス及びデータ転送で共有されるため線当たりの高い転送効率を与えるだろう。共有通信バス1012の非多重化の実施の形態は、単一の集積回路チップ上では線が相対的に安価であり性能要求が普通はより高いため、単一集積回路チップ上の機能ブロック間の通信に対してよりふさわしい。
クロック線220は、全ての他の共有通信バス1012信号が同期される時間基準信号を与えるグローバル信号線である。リセット線222は、接続された各機能ブロックをシステム構成が開始されるデフォルト状態にするためのグローバル信号線である。命令線224は、イニシエーターバス所有者により駆動される複数ビット信号を運搬する。さまざまな実施の形態では、複数ビット命令信号はさまざまなタイプの情報を伝達できる。例えば、命令信号は転送タイプ、接続持続期間に関する情報、及び接続の際の期待されるイニシエーターとターゲットの行動を示すことができる。1つの実施の形態では、命令信号は接続の開始と終了を示す1つ又は複数のビットを含む。1つの実施の形態で、例えば、1ビットが接続の開始を示す。もし、ビットがゼロならば、現在の転送はその接続で最後の転送である。ゼロの接続状態ビットを受信後、論理1の接続状態の次の受信は、転送が新たに開かれた接続で最初のものであることを示す。引き続いて受信される1の接続状態ビットは接続がまだオープンしていることを示す。
この実施の形態で支援される転送のタイプは、限定的ではなく、読出し及び書込み転送を含む。アドレス線228は、現在の転送中に読み出される又は書き込まれるべきオブジェクトのアドレスを特定するためにイニシエーターバス所有者により駆動される複数ビット信号を伝搬する。応答線232は、現在の転送の状態を示すためにターゲットにより駆動される複数ビット信号を伝搬する。応答により支援されるものは限定的ではなく次の応答を含む。NULL応答は、現在の転送は多分、アドレスがいずれのターゲットを選択しないために中止されるべきことを示す。データ有効及び受領(DVA)応答は、読出しの場合、ターゲットがデータ線230上に要求されたデータを返していることを示す。書き込みの場合、DVA応答はターゲットがデータ線230から与えられたデータを受領したことを示す。BUSY応答は選択されたターゲットが資源の衝突を有し、現在の要求にサービスできないことを示す。この場合、イニシエーターは後で再び転送を試みるべきである。RETRY応答は、選ばれたターゲットが間に合うように要求された読出しデータを配達することができないが、後でそうすることを約束することを示す。この場合、イニシエーターは後で転送を再度試みなければならない。
接続識別子(CONNID)線226は、現在の転送が接続のどの部分であるかを示すためにイニシエーターバス所有者により駆動される複数ビット信号を伝搬する。接続はイニシエーターにより設定された論理状態であり、データがイニシエーターと関連するターゲットの間に転送される。CONNIDは、典型的に、転送を開始した機能ブロックの識別を含む情報と転送が処理されるべき順番に関する順番情報とを送信する。1つの実施の形態では、CONNIDにより伝達される情報は他の転送に対するその転送の優先度に関する情報を含む。1つの実施の形態では、CONNIDは、8ビットコードである。イニシエーター・インターフェイス・モジユールは接続の初期アドレス転送と共に独特なCONNIDを送信する。この接続に関連した後の転送(例えば、データ転送)でもまた、CONNID値を提供して、送信者及び受信者が(及び共有通信バス1012上の転送を監視しているどんな装置も)共にその接続に関連した転送を明確に識別することができる。CONNIDの使用の1つの利点は、サイクル当たりのベースで複数の装置間の異なるトランザクションに属する転送を任意にインターリーブ(間挿)できることである。1つの実施の形態では、共有通信バス1012は適正なシステム動作を保証するためにトランザクションの順番について厳格な制御を必要とする完全にパイプライン化されたプロトコルを実現する。CONNIDを使用しないと、特定の接続に関連する転送が識別できないから特定のトランザクション内の順番制約は違反されるであろう。
後の命令が既に飛行中にある時に最初の命令がBUSY応答により拒絶されるかもしれないため、どちらの命令が完了したかについて十分な制御を可能にする機構を提供することが必須である。もし、このような制御が提供されないと、不明確なシステムの行動を生ずる。例えば、もし、1つのイニシエーター・インターフェイス・モジュールが依存した読出し及び書込み命令の一続きを送信すると、命令の1つに対するビジー応答は後の命令が誤ったデータを戻す結果を発生する。このような問題に対する1つの解決は依存した命令の重なり合いを避けることである。しかし、この解決は正しい結果を確保するために依存した各命令の待ち時間を増加する。本発明は、部分的に依存した命令の重なり合いを可能にするためにCONNID信号を使用する。従って、CONNIDの使用はシステムの性能と効率性を改良する。本発明のCONNIDの別の利点は、共有機能ブロックが接続の間で変化するサービス保証の品質に基づいて要求に応答することを可能にするため、通信システムの予測可能性を増加する。例えば、コンピュータ表示装置を動作するために要求されるデータは、遅延が表示装置にフリッカーを発生するために予期できない遅延を許容することができない。従って、表示装置コントローラから共通資源への要求が他の要求の前にサービスされるようにするため、CONNIDは表示装置コントローラからのデータ要求を優先付けるために使用できる。本発明はまた、システム性能を再調整するためにCONNIDの柔軟な再構成を可能にする。
図6は、共通通信バス1012上で2つの書込み転送からなるパイプライン化された書込みトランザクションのタイミング図である。図5もまた参照して説明する。図6に示すように、単一のパイプライン化された転送は、アービトレイション・サイクル(図示しない)を含み、その後に、命令/アドレス/CONNID(CMD324/ADDR328/CONNID326)サイクル(要求又はREQサイクルと呼ばれる)が続き、DATA330/RESP342サイクル(応答又はRESPサイクルと呼ばれる)により完了する。1つの実施の形態では、REQサイクルとRESPサイクルとの間のサイクル数は、システム性能を最適化するために動作周波数とモジュール待ち時間に基づいたシステム実行時間で選ばれる。1つの実施の形態では、REQ−RESP待ち時間は2サイクルで、図6でデータ330信号線上にラベルされている。従って、完全な転送時間は、4つの共有通信バス1012サイクル、アービトレイション、要求、遅延及び応答を含む。
図6には、2つの転送が示されている。サイクル1では、イニシエーターEがアドレスADDRE0へ書込み転送を要求するためにREQフィールド340を駆動する。このプロセスは、転送要求送信と呼ばれる。1つの実施の形態では、ADDRE0の外部アドレス部分を復号することにより書込みデータを受信するための単一のターゲットが選択される。サイクル3で(REQ−RESP待ち時間の後)、イニシエーターEがDATA線上に書込みデータDATA0をドライブし、同時に、選択されたターゲットAがDVAコードによりRESP線342をドライブして、Aが書込みデータを受領したことを示す。サイクル3の終わりまでに、ターゲットAが書込みデータを獲得し、イニシエーターEはターゲットAが書込みデータを受領することができたことを検出し、そして、転送が成功的に完了する。
その間(すなわち、サイクル3において)、イニシエーターEがターゲットAへパイプライン化された書込み転送を送信する(アドレスADDRE1)。この転送に対する書込みデータ及びターゲット応答の両方がサイクル5で発生し、ここで、転送が成功的に完了する。多くのシステムとサブシステムの適正な動作は、関連する転送の適正な順番に依存する。従って、適正なシステム動作は、サイクル1書込み転送の後にサイクル3書込みが完了することを必要とするであろう。図6のCONNIDフィールドが適正な順番を実現するために使用できる転送の源に関する重要な情報を伝達する。順番の制限の好ましい実施の形態は、イニシエーターとターゲットが共同してパイプライン化された転送中でも適正な順番を確保することである。これは、パイプライン転送が一組の転送(おそらくは、単一トランザクション)の全待ち時間を減少するため、システム性能を改良するので(待ち時間の減少と使用可能帯域幅の増加により)、重要である。
1つの実施の形態のアルゴリズムによると、
1.次の条件でイニシエーターは転送Yを送信してよい。:
a)もし、転送Yが一致するCONNIDを有する転送要求の組の中で最も古くて、送信されていない、退却されていない転送であるならば、又は、
b)もし、一致するCONNIDを有するより古くて退却されていない転送の全てが、転送Yと同じターゲットへ現在送信されているならば。もし、この規定下で送信されると、転送Yはより古い退却されていない転送と共にパイプライン化されているとみなされる。
2.転送Xに応答するターゲットはイニシエーターがその転送を退却しないように、転送Xと同じCONNIDを持つXと共にパイプライン化されたより後の全ての転送に対してはBUSYで応答しなければならない。
CONNIDが一致した新しい転送Xの後に送信されたより古いYは、たとえ、YがXの完了前に送信されても、Xと共にパイプライン化されているとはみなされないことに注意する。図7にこの状態が示されている。もし、ターゲットAが一時的にサイクル1から書込みADDRE0に関連したDATA0の受領をできなくする資源衝突を有する場合、AはBUSYを応答する。前述のアルゴリズムのステップ2は、Aが同じCONNID(この場合は、CONND1)からのいずれの他のパイプライン化された転送もまた拒絶(BUSYを使用して)することを要求する。これは、イニシエーターがREQ−RESP待ち時間の経過後まで、資源衝突について知ることは多分できないからである。従って、ターゲットAは、同じCONNIDを持つイニシエーターが最初の書込み転送に対するBUSY応答を解釈できる前に送信され従ってパイプライン化された転送であるサイクル3中に送信された書込みADDRE1をBUSYとしなければならない。さらに、書込みADDRE0転送の第2の試みは(サイクル4で送信される)、たとえサイクル3の書込みADDRE1の転送と重なり合ってもパイプライン化された転送ではないため、完了することができる。
ターゲットAは、サイクル4の書込みがいずれの前の転送とはパイプライン化されていないことをそれの発生時とそれが示すCONNIDの理由から決定し、CMD又はADDR値のいずれかの理由からはでないことに注意する。アルゴリズムのステップ1は、イニシエーターが与えられた接続内で最も古くて送信されず退却されていない転送のみを送信することを保証する。従って、最初の書込みADDRE0がサイクル3でBUSY応答を受け取ると、もはや送信されず、CONNID=1転送のみが送信について可能となる。従って、もし、最初のサイクル1の転送がBUSY応答を受信してREQ−RESP待ち時間が2サイクルである場合、適正に動作するイニシエーターがサイクル4でパイプライン化された転送を行うのは不可能である。
1つの実施の形態のイニシエーターは、あるCONNID内の所望の転送からなる時間順序待ち行列を維持する。各転送は、待ち行列内に入力する時に送信されず且つ退却されていないものとして印が付けられる。さらに、もし、待ち行列内で直前の古いエントリイが退却されていなく且つ同じターゲットをアドレスする場合、パイプライン化された印が付けられる。それ以外は、新しい転送は非パイプライン化の印が付けられる。転送が送信される度に、それは送信された印が付けられる。転送が完了する時(すなわち、RESPサイクルが終了する時)、転送は送信されていないと印が付けられる。もし、転送が成功的に完了したならば、それは退却されたと印が付けられて待ち行列から削除できる。もし、転送が成功的に完了しなければ、典型的に、それは再度試行され、再送信のためのアービトレイションに戻ることができる。もし、転送が成功的に完了せず且つ再度試行されない場合には、もし存在する次の転送が送信されたと印が付けられないまでは、それは退却されたと印を付けるべきでない。この制限は、イニシエーター論理が順番から外れた送信をすることを防ぐ。最も古い退却されていない転送が送信されると、それは送信済みと印が付けられる。これは、第2番目に古い退却されていない転送がより古い転送が完了する(従って、送信されていないと印が付けられる)まで、もしパイプライン化として印が付けられているならば、送信のためのアービトレイションを受けることを可能にする。
1つの実施の形態によるターゲットの実現は、REQ−RESP待ち時間と深さが一致した時間順序待ち行列を維持する。待ち行列はバスクロックから外れて動作し、待ち行列内の最も古いエントリイは各バスサイクルで退却され、同時に、新しいエントリイが各バスサイクルで待ち行列に加えられる。現在のREQ位相からのCONNIDは新しい待ち行列エントリイにコピーされる。これに加えて、もし、現在のREQ位相がターゲット(外部アドレスを介して)を選択する有効な転送を含む場合、新しい待ち行列内の「第1」及び「ビジー」フィールドをセットできる。それ以外は、第1及びビジービットはクリアされる。第1ビットは、もし、現在の転送がBUSY応答(資源衝突による)を受信し且つ待ち行列内の前の転送が同じCONNIDを持たず且つその第1ビットをセットしていなければ、セットされる。第1ビットは、現在の転送が、順番を保つためにBUSYされることが必要な潜在的にパイプライン化された転送の一組の最初であることを示す。ビジービットはもしターゲットが資源衝突又は待ち行列内の前の転送の1つが同じCONNIDを持ち且つ第1ビットをセットしているかのいずれかの場合にセットされる。このロジックは、イニシエーターが第1の印が付けられた転送に対するBUSY応答に反応できるまでターゲットがパイプライン化された転送を受領しないことを確保するREQ−RESPパイプライン待ち時間を実行する。
このアルゴリズムを通信システムのイニシエーター及びターゲットに適用すると、トランザクションの順番を維持してパイプライン転送(接続あたりの帯域幅を増加し、そして、全トランザクション待ち時間を減少する)を可能にできる。従って、このアルゴリズムは接続あたりの高い性能を促進する。パイプライン化されたバスの基本的にインターリーブ(間挿)される構成は、複数の論理トランザクションが互いに重なり合うことができ、接続あたりのピーク帯域幅を超える持続したシステム帯域幅を可能にするため、高いシステム性能を可能にする。例えば、図8は、イニシエーターEが1つおきのバスサイクルでターゲットAにデータを転送する必要があり、一方、イニシエーターDが1つおきのバスサイクルでターゲットBからデータを要求する構成を示す。通信システムが細かいインターリーブ(バスサイクルあたり)を支援するため、トランザクションは機能ブロックの自然なデータ速度で送信される個別の転送から構成される。これは機能ブロック内でのバッフアリング要求を減少し、そしてシステムコストを減少する。この例では全システム帯域幅はいずれの機能ブロックのピーク帯域幅の2倍であり、従って、高システム性能が実現される。
本発明は、効率性と予測可能性の分野で追加のシステムレベル改善を加える。最初に、接続識別子は順番通りの操作を保持するためにどの要求を拒絶しなければならないかをターゲットに選択可能にする。システムは、ターゲットがパイプライン化された転送のみを拒絶(BUSYを使用して)しなければならないので、同じCONNIDを持つ転送内の順番のみを保証する必要がある。これはターゲットは特定のCONNIDを拒絶しても他のCONNID値を持つ転送を受領することができることを意味する。図9にこの状態が示されている。図9は図7のパイプライン化された書込み転送にイニシエーターDからのインターリーブ(間挿)された読出し転送を追加したものである。図9内の4つの転送の全てはターゲットAを選択し、Aはサイクル1に送信される書込みADDRE0の成功的な完了を妨げる資源衝突を有する。最初の書込みの拒絶はAがサイクルrまでCONND1からの他のいずれの転送を受領することを妨げるが、Aはもし十分な資源があればサイクル2の無関係な読出しADDRD0要求を受領できる。従って、より少ないバスサイクルが浪費されるため(ターゲットAが接続間の区別ができない場合と比べて)、全体のシステム効率が増加する。
第2に、1つの実施形態で、接続識別子はターゲットがどの要求を拒絶するかを選択可能にする。ターゲットは転送優先度などの意味をCONNID値に関連付けることができ、従って、CONNID値とターゲットの内部状態との組合わせに基づいてどの要求に動作すべきかを決定できる。例えば、ターゲットは異なる優先度の転送要求を格納するための別個の待ち行列を有することができる。図9を参照すると、ターゲットは低い優先度の要求(奇数CONNIDを持つ)のための待ち行列と高い優先度の要求(偶数CONNIDを持つ)のための待ち行列を有しても良い。従って、サイクル1のCONNID1の書込みADDRE0要求はもし低優先度待ち行列が一杯であれば拒絶されるであろう。一方、CONNID2読出しADDRE0転送は利用可能な高優先度待ち行列資源に基づいて成功的に完了できるだろう。このような転送優先度の違いは高集積電子システムではごく普通であり、ターゲットがより高い優先度の転送要求に対してより高い品質のサービスを配達できる能力はシステムの全体の予測可能性を顕著に増す。図9が示すように、上述したアルゴリズムはターゲットが同時に複数のCONNID値からの転送要求を能動的に満足することを可能にする。従って、もし、別のCONNID値を持つならば、同じターゲットへ及び/又はからの複数の論理的トランザクションがインフライトで存在できる。このように、本発明はターゲット機能ブロックあたり複数の接続を支援する。
さらに、イニシエーターは通信システムに対して複数のトランザクションを同時に提供する能力を必要としてもよい。このような能力は、2つのターゲット間にデータを転送する直接メモリアクセス(DMA)などのイニシエーターについて大変有用である。このような応用では、DMAイニシエーターはデータ源の第1ターゲットへ第1CONNIDを使用して読出しトランザクションを送り、さらにデータ宛先の第2ターゲットへ第2CONNIDを使用して書込みトランザクションを送るだろう。転送レベルでは、読出し及び書込み転送はインターリーブできる。これはDMAイニシエーター内のデータ格納の量を減少し、よってシステムコストを減少する。図10にこのような構成が示されている。イニシエーターEがターゲットAからのパイプライン化された読出し転送をターゲットBへのパイプライン化された書込み転送とインターリーブする。このようにして、本発明はイニシエーター機能ブロックあたり複数の接続を支援する。
アルゴリズムに関して上述したように、本発明の実現を支援するために必要な制御構造は、単純で且つ転送の効率的で細かいインターリーブを提供しない伝統的なプロトコルに関連したデータバッフア領域よりもかなり少ない領域を必要とする。従って、本発明は高い性能と柔軟性を与えると同時に通信システムの領域と複雑性を最小にする。
最後に、特定のイニシエーター・トランザクションに関連したCONNID値は典型的に転送優先度などの有用な情報を提供すると共に実現コストを最小にするために選ばれる。値が独特であることを保証しそして比較と他の操作を単純にするために順番付けられるように、システム設計時に特定のCONNID値を選択することが役に立つ。さらに、システムの性能と予測可能性の観点を変更するために通信システムの操作中にCONNID値を変更できることがしばしば有用である。本発明の好適な実現では、システム構築時又はシステム運転時のいずれかにおいて容易に再構成できるように、機能ブロックのROM又はRAM資源内にCONNID値を格納することにより、柔軟なシステム構成を可能にする。
図11は、図4に示すようなポイント・ツー・ポイント相互接続である相互接続1010を示す。相互接続1010は、図5を参照して説明したプロトコルと比較して追加の信号を含む。以下に説明するように、いくつかの追加の信号は、相互接続1010のようなポイント・ツー・ポイント相互接続上に送られる信号として特に有用である。相互接続1010のプロトコルは、専用(非共有)の相互接続を介してマスターエンティテイ1102とスレーブエンティテイ1104の間のポイント・ツー・ポイント転送を制御する。図5を参照すると、例えば、マスターエンティテイはイニシエーター機能ブロック1002又はターゲット・インターフェイス・モジュール1006であってよい。例えば、スレーブエンティテイはイニシエーター・インターフェイス・モジュール1004又はターゲット機能ブロック1008であってよい。
図11に示される信号は、信号名でラベルされている。さらに、いくつかの信号名は丸括弧又は角括弧内の記号が後に続く。記号は以下の通りである。
(I)信号はオプショナルであり、独立に構成可能である。
(A)信号は同様な記号を持つ信号と一緒に構成されなければならない。
(AI)信号はもし(A)インターフェイス・モジュールが存在するならば、独立に構成可能である。
[#]最大信号幅
Clock信号は接続された機能ブロックのクロックである。命令(Cmd)信号はバス上の転送タイプを指示する。命令はデータとは独立に送信できる。アドレス(Addr)信号は典型的にイニシエーター機能ブロックがアクセスを望む特定の資源の指示である。要求受領(ReqAccept)はハンドシェイク信号で、これによりスレーブ1104はマスター1102が1つの転送からCmd、Addr、及びDataOutを放出することを可能にし、そしてそれらを別の転送について再使用することを可能にする。もし、スレーブ1104がビジーで、要求された転送に参加できなければ、マスター1102はCmd、Addr、及びDataOutを送り続けなければならない。DataInは、典型的に書込み転送において、マスターからスレーブへ送られるデータである。DataInは典型的に読出しデータを運ぶ。
応答(Resp)とDataInは、スレーブ1104からマスター1102へ送られる信号である。Respはスレーブ1104により受信された転送要求がサービスされたことを指示する。応答受領(RespAccept)は、マスターがスレーブにRespとDataInを放出することを可能にするかどうかを指示するために使用されるハンドシェイク信号である。
1つの実施の形態で、信号Clock、Cmd、Addr、DataOut、ReqAccept、Resp、DataIn、及びRespAcceptは、インターフェイス・モジュール信号の基本組を構成する。いくつかの機能ブロックについては、この基本組で通信目的に十分であろう。
他の実施の形態では、バス1012の残りの信号のいくつか又は全部が使用される。1つの実施の形態では、Widthは転送の幅を指示する3ビット信号であり、可変幅の転送を含む接続に有用である。Burstは個別の命令を接続と関連付けることを可能にする複数ビット信号である。Burstは、どれだけの数があるかそして期待されるアドレスパターンなど、将来の転送の性質の指示を提供する。Burstは、標準の終了マーカーを持つ。Burstフィールドのいくつかのビットは、接続内のある特定のプロトコル詳細を接続が無視するために、ユーザ定義フィールドのために保存される。
割り込み及びエラー信号は大部分のコンピュータ・システムの重要な部分である。イニシエーター又はターゲット機能ブロックにより生成された割り込み及びエラー信号が示される。しかし、それらの機能的な説明は特定の機能ブロックの性質に依存し、本発明の理解には重要でない。
要求スレッド識別子(ReqThreadID)は、1つの実施の形態で、スレーブ1104に対して意図された現在のトランザクションと関連したスレッド番号を提供する4ビット信号である。特定のスレッドIDと共に実行される全ての命令は互いに順番に実行されなければならないが、他のスレッドからの命令に関しては順番を外れて実行できる。応答スレッド識別子(RespThreadID)は、現在の応答と関連したスレッド番号を提供する。スレッド内の応答は他のスレッドに関しては順番を保たず戻るので、RespThreadIDはどのスレッドの命令が応答されているかを識別する必要がある。1つの実施の形態では、ReqThreadID及びRespThreadIDはオプショナルな信号である。しかし、もし、1つが使用されると、両方を使用しなければならない。
要求接続識別子(ReqConnID)は、ターゲットについて意図された現在のトランザクションに関連したCONNIDを提供する。CONNIDは、それによりシステムエンティテイが特定のトランザクションをそのシステムエンティテイに関連付ける機構を提供する。CONNIDの1つの使用は、さまざまなイニシエーターの中で要求優先度を設定することである。別の使用は、動作又はデータ転送をトランザクション要求と共に提供されたアドレスではなくイニシエーター識別に関連付けることである。
要求スレッドビジー(ReqThreadBusy)は、スレーブがマスターにそれがあるスレッドに関する新しいいずれの要求も受けることができないことを指示することを可能にする。1つの実施の形態では、ReqThreadBusy信号は、スレッドあたり1つの信号を持つベクトルであり、主張された信号は関連スレッドがビジーであることを指示する。
応答スレッドビジー(RespThreadBusy)は、マスターがスレーブにそれがあるスレッドに関していずれの応答(例えば、読出しについて)を取ることができないことを指示する。1つの実施の形態では、RespThreadBusy信号は、スレッドあたり1つの信号を持つベクトルであり、主張された信号は関連スレッドがビジーであることを指示する。
上述のReqThreadBusy及びRespThreadBusy信号は、スレッドあたりのフロー制御機構の一例である。他のスレッドあたりのフロー制御機構が存在する。代わりに、クレジットに基づいた機構が使用できる。クレジットに基づいた機構では、スレーブはマスターにそれがどれだけの又はおおよそどれだけの転送を受領できるかを知らせる。1つの実施の形態では、この情報はスレーブによりそれが受領できる各転送について1つのサイクルに対してクレジット信号を立ち上げることにより通信される。従って、スレーブが受領できる「クレジット」又は転送の数は、その信号が活性化されているサイクル数により通信される。
図13に、1つの実施の形態のクレジットに基づいたスレッド当たりのフロー制御機構のタイミング・チャートが示される。マスター装置からの命令は、CMD線1310上のアクティブ高信号により反映される。クレジット線1320は、どれだけの命令を受領できるかを指示するスレーブ装置により送信されたアクティブ高信号により反映される。従って、図示するように、2つのクロックパルス1330により指示される2つのクレジットが最初に利用可能である。1つのクレジットが、命令1335の送信により使用される。そして、新クレジット1340が送信される。2つの命令1345が送信され、クレジットは利用できなくなる。クレジット線がさらなるクレジットを送信するまでは、その後の命令は送信されない。従って、クレジット線1320上に新しいクレジット1350が出現した後、マスター装置は命令1355を送信できる。
代わりに、クレジット数のカウントを各サイクル又は所定数のサイクルで送信できる。この実施の形態では、複数の信号線がカウントを通信するために必要と考えられる。
スレッドあたりのフロー制御を利用すると複数のスレーブとマスター装置の間で共有されるインターフェイスがブロックされるのを防ぐことができる。いくつかのスレッドが相互接続を共有する時、個々のスレッドは互いに独立に留まることが一般に望ましい。独立動作を維持するために、相互接続へのインターフェイスはブロックできないようにすべきである。例えば、マスターがスレーブにより受領できない転送を送信する場合、スレーブはReqAcceptを主張せず、マスターが転送をインターフェイス上で保持するようにさせる。これは他のいずれのスレッドもインターフェイスに転送を提供することを防止する。すなわち、相互接続が全てのスレッドに対して実効的にブロックされる。個別のスレッド当たりのフロー制御を有することにより、マスターはもしスレーブがThreadBusy信号を使用してそのスレッドに関する転送を受領できないことを指示した場合、特定スレッドに関して転送を送信すべきでないことを知ることができる。
いくつかの実施の形態では、スレーブによるフロー制御動作を必要とする転送の後にThreadBusyが何時出されたか、及び/又はマスターがThreadBusy主張の後に新しい転送を何時送信できないかに関して特定する必要があるだろう。例えば、スレーブがその資源が枯渇した又は枯渇しつつある(従って、ThreadBusy主張の必要性)と決定するために数クロックサイクルを要するであろう。別の例では、マスターがThreadBusy主張信号に反応するのに数クロックサイクルを要するであろう。これらのクロックサイクル中、マスターは追加の命令を送信し続けるだろう(例えば、データ転送)。インターフェイスがブロックしないことを確保する1つの方法は、マスター及びスレーブの両方に対して転送に関するThreadBusy信号のタイミングを指定し、スレーブによりThreadBusy信号が主張された後にマスターによる命令の新しい転送を吸収するためにスレーブに十分なバッファリングを提供することである。
スレッドあたりのフロー制御の手段は相互接続にわたるエンド・ツー・エンド性能保証を決定することを可能にする。エンド・ツー・エンド・データチャンネルは、相互接続のスレッドを使用してリンクされ、そしてスレッドあたりのフロー制御は特定のイニシエーターとターゲットの間のエンド・ツー・エンド・フロー制御を可能にする。図14、15a、15b、16、17、18、19、20及び21を参照してエンド・ツー・エンド性能保証の1つの実施の形態が説明される。
図14は例示的なシステムを示している。システムは1つ又は複数の機能ブロック1405、1410、1415、1420、1425、1430及び一組のインターフェイス1445、1450、1455、1460、1465、1470、1475、1480を使用して全てが一緒に接続された1つ又は複数の通信サブシステム1435、1440からなる。機能ブロック1405、1410、1415、1420、1425、1430は、システムにより行われる実際の作業を実行する(計算など)。この明細書では、機能ブロック間の通信に焦点を置く。機能ブロックがデータフローを開始するか又はそのターゲットかに依存して、機能ブロックはイニシエーター1405、1410、1420とターゲット1415、1425、1430に分類される。
ここで、説明のため、データフローは2つの機能ブロック間で時間にわたり通信される事象、データ項目、又は一組の命令である。イニシエーターからターゲットへのいずれの要求もある動作を実行するための要求である。例えば、読出しと書込み要求はそれぞれターゲットにデータの検索と格納をさせる。チャンネルは特定のデータフローのサービスに専用な部品中の物理的資源の組の一部である。例えば、ターゲットは異なる入力データフローをサービスするために異なるデータチャンネルを持つことができる。通信サブシステムは、各データフローについて専用データチャンネルを使用して、その1つの入力ポートから出力ポートへデータ項目を送信する。各ポートはインターフェイスを介して別の通信サブシステム又は機能ブロックから導かれる又はへ導く。インターフェイスはまた各データフローについて専用チャンネルを有する。
従って、例えば、データフローのエンド・ツー・エンド進行は次の通りである。データフローがイニシエーターで発生する。それはインターフェイスのチャンネルを介して第1通信サブシステムの入力ポートへ移動する。一旦、第1通信サブシステムの内部で、それからチャンネルを介して出力ポートへ移動する。そして、それはターゲットに最終的に到着するまで、他のサブ通信システムへ別のインターフェイスを横断する。それはターゲット内の専用チャンネルによりサービスされて、もし、応答が必要なければ完了する。もし、応答が必要ならば、データフローは通信サブシステムを介してその方向を逆に進み、発生源のイニシエーターに到着したときに完了する。
1つの実施の形態では、異なる部品を一緒に結び付けたインターフェイスは、送信される各要求と応答にそれが属するチャンネルの識別のタグを付ける能力及びチャンネルあたりのベースでフロー制御を送信する能力を持つ。インターフェイスのこれらの特徴は、個々の部品により与えられるサービス保証の品質がインターフェイスを介して接続された別の部品に伝達されることを可能にする独立データチャンネルを達成するために望ましい。従って、例えば、図4を参照すると、サービス保証の品質がイニシエーター機能ブロック1002からターゲット機能ブロック1008への信号伝搬時間を含む。
図15aは、サービス保証の機能ブロック品質の例を示す。この場合、3つのチャンネルについてサービス保証の異なる品質を持つメモリシステムが示されている。与えられたサービス保証の品質は、8バイト読出し又は書込み要求をサービスする間の最小の帯域幅と最大の待ち時間である。この例では、各チャンネルは秒あたり10M8バイト要求に耐えることができる。チャンネル1は、より低い待ち時間のために最適化されていて、100nsの最大サービス待ち時間を保証する。一方、チャンネル2及び3は200nsの最大サービス待ち時間だけを保証する。特定の機能ブロックにより与えられる性能保証がここに示されるよりもずっと複雑で、要求サイズ、内部到着間隔等の多数の異なるファクターに依存していることが普通である。ここに使用されるメトリックスは例を単純にするために選ばれている。最大の待ち時間と最小の帯域幅は性能パラメータの2つの普通のタイプであるが、最大未処理要求、サービス待ち時間の最大変化などの他のパラメータを使用したサービス保証の品質も等しく可能である。さらに、もし、特定の部品がサービス保証の異なる品質を容易に達成するためには複雑すぎる場合、より小さいより管理可能な部分に分割することにより、この方法をその部品に繰返し適用できる。
図15bは、サービス保証の通信システム品質の例を示す。この特定の通信システムは、イニシエーターX210及びY215に接続する2つのポートとターゲットZ220に接続する1つのポートを有する。そして、ポートX210は2つの異なる入口チャンネルを支援し、ポートYは1つの入口チャンネルを支援し、そしてポートZは3つの出口チャンネルを支援する。これは通信サブシステム内に3つのデータチャンネル(A、B、C)を生ずる。現在の例では、ここでの説明を簡単にするためそして時々、あるデータフローは保証を有しないため、チャンネルAにはサービス保証の品質が与えられていない。チャンネルBは各4サイクルに4バイトの最小帯域幅と各方向に3サイクルの最大待ち時間でサービスされる。チャンネルCは各2サイクルに4バイトの最小帯域幅と各方向に5サイクルの最大待ち時間でサービスされる。
さまざまな技術が部品の保証を決定するために使用できる。通信サブシステムなどの特定の部品についてのサービス保証の品質を決定するために使用できる1つの技術が、米国特許第5,948,089号に記載されていて、ここに参照のために組み込む。
1つの実施の形態では、得られる保証は全ての可能なシステム状態下で有効であろう。すなわち、設計によりシステムがその性能要求を満足するための能力を与えられる。さらに、1つの実施の形態では、各データフローを互いに独立にすることで解析が大変に単純化され、複雑システム解析問題をより単純なデータフロー解析問題に分解する。
図14に示すように、インターフェイス1445、1450、1455、1460、1465、1470、1475、1480は部品(機能ブロックと通信サブシステムの両方)を一緒に接続するために使用される。エンド・ツー・エンド性能保証を可能にするために、これらインターフェイスは各チャンネルに個別のフロー制御を持つ複数の個別データフローの伝搬を可能にしなければならない。図16にインターフェイスの一例が示されている。ここで、イニシエーター1605はターゲット1610へ潜在的に書込みデータ1625と共に要求1620を送信する。ターゲット1610は応答1630によりおそらく読出しデータ1635と共に返答する。このインターフェイスを横断して複数の独立データフローを可能にするために、チャンネル識別子1615が各要求と共にイニシエーター1605からターゲット1610へ送信され、チャンネル識別子1635が各応答と共にターゲットからイニシーター1605へ送信され、そしてデータフローあたりのフロー制御信号1640がターゲットからイニシエーターに送られる。このようなイニシエーターの一例が11/12/99に出願されたPCT/US99/26901に記載されている。
図17に、1つの実施の形態の異なるデータフローについてエンド・ツー・エンド・システム性能保証を計算するための方法を示す。システム1710内の各イニシエーターのデータフローについて、システムのチャンネルを通るデータフローのマッピングが最初に決定される1715。図18に、例示的なマッピング方法がさらに示されていて、下に詳細に説明する。
次に図17を参照すると、このデータフローに含まれる部品のデータチャンネルのサービス保証の品質のパラメータはステップ1720で均一に整列される。全ての保証はステップ1730で全体的な総計を容易にするため均一であることが好ましい。異なる部品は異なる人々及び/又は会社により開発されるため、全てのサブシステム上のサービス保証の全ての品質が同じ単位で表されることはまれである。単位は変換が必要で、時間スケールは翻訳が必要で、又はサービス保証の所望の品質は与えられたこれらから導出しなければならない可能性が高いであろう。例えば、1つの部品がMバイト/秒で帯域幅保証を特定するが、別のは転送サイズに関係なく転送/秒の数で特定するだろう。次に、総計プロセスを達成するために、この整列方法は個別の部品が与えるべき保証のタイプについての要件を置くだろう。
データフロー全体に沿って単位が整列されると、全体システムを通してそのデータフローに対するサービス保証の総計品質がステップ1730で計算される。使用される総計メカニズムはサービス保証の品質を表すために使用されるパラメータのタイプに依存する。例えば、各部品の最大待ち時間は全体的な最大待ち時間を与えるために一緒に加えられる。これに対して、全体の経路に沿って最小の部品帯域幅が最小の帯域幅サービス保証を決定する。図18は、図17に示された全体的な機構の一部であるデータフロー・マッピング・プロセスの1つの実施の形態に焦点を合わせたものである。例えば、ステップ1710のいくつかのインターフェイス及び1つ又は複数の通信サブシステムを介して、イニシエーターからターゲットまでの経路中の各部品について、イニシエーター・チャンネル・ステップ1715を運ぶために利用可能なチャンネルが選択される。ある部品について利用可能なチャンネルの組から特定のデータフローを選択するのは複雑な作業である。作業を達成しそして全体システム性能の最適化する多くの可能な方法が存在する。例えば、イニシエーターのデータフローの性能要求と最も近くに一致したチャンネルを選ぶことができる。また、イニシエーターからターゲットへ複数経路の中でデータフローを分割することが可能である。本例では、有効なマッピングが選択されたと単に仮定する。
ある部品内でチャンネルが使用されると、ステップ1820で、別のイニシエーター・データフローのために選択されないように、使用済みの印が付けられる。このアルゴリズムは、全体のデータフローがイニシエーターからターゲットへマップされるまで続けられる。ある部品はこの特定のシステムに必要とされるよりも多くのチャンネルを持つかもしれないことに注意する。これは問題とはならず、余りのチャンネルは単にその部品内で使用されない。逆に、もし、部品がシステムを支援するのに十分なチャンネルを持たないと、その部品はシステムにふさわしくなく、異なる部品が選択される。
さらに、チャンネルを共有する複数のデータフローを可能にしてもよい。この場合、特定のデータフローについての性能保証は他のデータフローの特性に依存し、もし他のデータフローのイニシエーターがそれらのデータフローの特性(最大送信帯域幅など)について保証を与える場合のみ、よく決められる。
チャンネルへのデータフローのマッピングは、システム中で固定された静的マッピングである必要がない。システムは異なる通信パターンを採用するために再構成ができてよい。例えば、通信サブシステムは、サービス要求のデータフロー品質の変化に対応するために1つのデータチャンネルから別へ帯域幅資源を再割当てができる。
1つの実施の形態では、システムは改訂されたマッピングでロードされ、従って、システムは再構成される。これはシステムが動作中に、例えば、実時間態様で実行できる。
別の実施の形態では、システムの再構成はシステム自身により達成できて、さらなる柔軟性と適応性を与える。いくつかの実施の形態では、これもまた実時間態様で実行できてシステムの機能性を高める。
1つの実施の形態では、システムは少なくとも1つのデータフローのマッピングを使用して動作する。1つの実施の形態では、選ばれたデータチャンネルの保証の総計がアプリケーションの要求を満足する。しかし、1つの実施の形態では、システムが最初は所望の保証を満足しない総計を生成する第1マッピングを使用して動作すると考える。しかし、システムはここに説明されるステップを実行してアプリケーション要求を満足する総計保証を生ずるデータフローの第2マッピングを決定するだろう。そして、システムはアプリケーション要求を満足するデータフローの第2マッピングに従い再構成される。
システムはまた、異なるアプリケーション要求を満足する異なるマッピングに適用するために再構成できる。マッピングは決められた基準に基づいて選択される。このようにして、システムは所望の要求を満足する複数のマッピングを与えることができる。使用される特定のマッピングは所望の要求と関係する又は関係しない他の基準に従い選択できる。
いくつかの実施の形態では、システムの部品は異なる内部実現構造の他の部品と置換えることができる。新部品のサービス保証の品質が置換された部品のそれらと同じである限り、システム全体のエンド・ツー・エンド保証には変化がない。従って、このような交換はシステムの他の部品に透明のままであることができる。
図19は、図15aと図15bに示される例示的機能ブロックと通信サブシステムについての単位翻訳がどのように進行するかを示す例である。所望の単位は最小帯域幅保証に対してMバイト/秒と仮定する。本実施の形態では、メモリシステムと通信サブシステムの両方について、サービス保証の品質は特定のイニシエーターが送信した要求の大きさに依存する。図19では、4、8及び16バイトの要求サイズに対する2つの部品の帯域幅保証が整列されている。元のメモリシステム帯域幅保証は秒あたり8バイト要求として述べられている。本実施の形態で、より小さい要求が使用される時、サービス速度が増加しないと保守的に仮定する。より小さい要求に対して帯域幅がより低いからである。
通信サブシステムでは、帯域幅保証が4バイト要求に対して与えられた。そして、8又は16バイト要求はそれぞれ2つ又は4つの4バイト要求に分割できると仮定する。しかし、選ばれた単位はサイクルであるので、帯域幅保証を整列するために通信サブシステムの動作周波数も知る必要がある。100MHz周波数が通信サブシステムについて選択されたと仮定する。すなわち、サイクル時間が、10nsである。得られる最小帯域幅保証は、4バイト又は上記の全ての要求サイズに対して100Mバイト/秒である。
図20には、単純なシステムを使用したサービス総計機構の品質の応用の一例が示されている。イニシエーターA2005は、12010及び22015として示される2つのデータフローの源である。第2イニシエーターBは1つのデータフロー2025の源である。通信サブシステム2030はそれぞれポートX2035及びY2040でイニシエーター・データフローを受信して、これらフローの全てをポートZ2050を介してターゲットC2045に送信する。
図21の最初の表は、このシステムを通る各イニシエーター・データフローのマッピングの1つの実施の形態である。例えば、イニシエーターAデータフローは、インターフェイス1のチャンネルA2060を介して通信サブシステムポートX2035へ送信される。それはチャンネルBを介して通信サブシステム2030を横断してポートZ2065を介して出る。そして、インターフェイス3チャンネルA2070を介してターゲットCへ送信される。ターゲットC2045で、チャンネル12075がこのデータフローを処理するために選ばれる。
図21の第2の表は、3つの異なるイニシエーター・データフローに対する単位整列後のサービス保証の品質の一例を示す。この例では、イニシエーターAフロー1は4バイト要求を使用していて、イニシエーターAフロー2は16バイト要求を使用していて、そしてイニシエーターBフロー1は8バイト要求を使用していると仮定する。単位変換と整列が上述したプロセスを使用して達成される。
図21の最後の表は、3つのイニシエーター・データフローに対するサービス保証の例示的システム・エンド・ツー・エンド品質を示す。各データフローに対するシステム内の最小帯域幅を計算するために、各部品を通る各マップされたデータフローの最小帯域幅が見つけられる。最大の待ち時間がイニシエーターからターゲットまでのデータフローに沿った各部品の待ち時間を加えることにより見つけられる。
要求接続識別子(ReqConnID)は、スレーブ又はターゲットに意図された現在のトランザクションと関連したCONNIDを与える。CONNIDは、システムエンティテイが特定のトランザクションをそのシステムエンティテイに関連付ける機構を提供する。CONNIDの1つの使用は、さまざまなイニシエーターの中で要求優先度を設定することである。別の使用は、動作又はデータ転送をトランザクション要求と共に提供されたアドレスではなくイニシエーター識別子と関連付けることである。
図11の実施の形態は、スレッドIDを持つポイント・ツー・ポイント、又はよりローカルな識別と同様にCONNIDを持つエンド・ツー・エンド接続識別子を提供する。スレッドIDは、インターフェイス・モジュールとそれの接続された機能ブロックとの間の転送を単に識別するローカルな範囲の識別子である。対照的に、CONNIDは、2つのインターフェイス・モジュール(及び、要求されるならば、それらの接続された機能ブロック)の間の転送を識別するグローバルな範囲の識別子である。
スレッドIDは、接続された識別子モジュールと機能ブロック内で直接的にテーブルを索引するために十分に小さい。対照的に、どんな1つのインターフェイス・モジュールが同時的に受領することができるよりも多いCONNIDがシステム内に普通、存在する。スレッドIDの代わりにCONNIDを使用すると、戻されたCONNIDを特定の要求又はバッフア・エントリイと関連付けるために高価な一致論理をインターフェイス・モジュール内に必要とする。
ネットワーク・アナロジーを使用すると、スレッドIDはレベル2(データリンク層)コンセプトであり、一方、CONNIDはレベル3(転送/セッション層)コンセプトにより似ている。いくつかの機能ブロックはレベル2のみで動作し、その機能ブロック又はそのインターフェイス・モジュールにレベル3の資源を処理するための費用を課することは望ましくない。代わりに、いくつかの機能ブロックがレベル3の接続特徴を必要とする。この場合、その機能ブロックにCONNIDを送ることが実用的である。
図4を参照すると、CONNIDは、共有通信バス1012上のインターフェイス・モジュール1004と1006の間に転送される時、独特であるべきである。CONNIDは、相互接続1010などのローカルな相互接続上を送信される。しかし、多くの場合、機能ブロックとそのインターフェイス・モジュールの間はスレッドIDのみを使用することがずっと効率的である。例えば、イニシエーター機能ブロック1002はCONNIDにより提供される全ての情報を必要としないだろう。また、いくつかのシステムでは、同じCONNIDを持つ複数の同一のイニシエーター機能ブロック1002が存在し、イニシエーター・インターフェイス・モジュール1004内のロジックが「ローカル」CONNIDを独特な「グローバル」CONNIDに翻訳しなければ、転送を受信する特定のターゲット機能ブロック1008は実際にどの接続の部分であるかを知らない。インターフェイス・モジュール内でこのような翻訳機能を設計し実現することは複雑で高価である。このような場合、スレッドIDが機能ブロックとインターフェイス・モジュールとの間を送信される間にCONNIDが共有通信バス1012を介してインターフェイス・モジュール間に送信される。
イニシエーター機能ブロックの場合、スレッドIDとCONNIDの間に一対一の静的な一致が存在するであろう。例えば、もし、スレッドIDが“1”の場合、単一のCONNIDが特定のインターフェイス・モジュールに対してマップされて、複数の同一の機能ブロックの問題を解決する。
ターゲット機能ブロックの場合、スレッドIDとCONNIDの間に一対一の動的な一致が存在するであろう。もし、ターゲット機能ブロックが2つの同時的スレッドを支援する場合、ターゲット・インターフェイス・モジュールはオープン接続のCONNIDを獲得し、そしてそれを必要なスレッドと関連付ける。例えば、ターゲット・インターフェイス・モジュールは“7”のCONNIDを受信し、そしてCONNID7をスレッド“0”にマップする。その後、CONNID7を持つ全ての転送は接続7がクローズされるまでスレッド0と関連付けられる。
図12を参照すると、スレッドIDを使用した一例が、システム内の同一な直接メモリアクセス(DMA)エンジンの一続きである。要素1202が同一のDMAエンジンであり、各々がイニシエーター・インターフェイス・モジュール1204に接続されている。イニシエーター・インターフェイス・モジュール1204は、共有通信バス1212に接続されている。また、ターゲット・インターフェイス・モジュール1206は、共有通信バス1212に接続されており、ターゲット機能ブロックであるDRAMコントローラ1208へバス1212からデータを送信する。ターゲット・インターフェイス・モジュール1206は、相互接続1214によりDRAMコントローラ1208に接続されている。DRAMコントローラ1208はDRAM1213へのアクセスを制御する。
DMAエンジンは、ターゲット機能ブロックとしても機能するイニシエーター機能ブロックの一例である。DMAエンジンがソフトウェアによりプログラムされる時、それはターゲットとして動作する。その後、DMAエンジンはイニシエーターである。DMAエンジンは、読出し及び書込み操作の両方を実行するため、2つの接続が単一のDMAエンジンと関連付けられる。もし、あるバッフアリングがDMAエンジン内で利用可能ならば、読出し及び書込み操作は両方のタイプの操作が同時的に実行できるように切り離してもよい。読出しは、書込み操作がデータを書き込む前にDMAエンジン上で読出しデータがバッフアされることが必要な待ち時間の長い記憶装置から発生することがある。1つの実施の形態では、各DMAエンジン1202は、読出しストリームを識別するのに1つのスレッドIDを使用し、書込みストリームを識別するのに異なるスレッドIDを使用する。DMAエンジンは、トランザクション中にどんな他の機能ブロックが参加しているかなどのより多い情報を必要としない。従って、CONNIDは、DMAエンジン1202から接続されたインターフェイス・モジュール1204へ送られる必要がない。CONNIDへのスレッドIDのマッピングがインターフェイス・モジュール1204で生ずる。
1つの実施の形態では、各イニシエーター・インターフェイス・モジュール1204が独特なCONNIDを接続されたDMAエンジン1202からの2つのスレッドIDの各々にマップする。各DMAエンジン1202は、2つのスレッドの間を識別するために単一ビット、例えば、図11のスレッドID、を使用する。共有通信バスを介する各転送について、独特なCONNIDがターゲット・インターフェイス・モジュール1206に送信される。CONNIDは、例えば、グラフイックス・データについて高い優先度要求を割当てる、優先度情報を含んでも良い。高い優先度のグラフイックス・データ要求はDRAMコントローラ1208により直ちにサービスされるが、より低い優先度の要求は待つことが必要であろう。
インテリジェンスがインターフェイス・モジュール及び通信プロトコル内に設計されて、DMAコントローラ1208及びDMAエンジン1202などの機能ブロックにより少ないインテリジェンスが必要とされる。これは、システムが進化するにつれて機能ブロックをよりポータブルにそして再利用可能にする利点を有する。例えば、より高優先度アプリケーションに使用されるDMAエンジンとより低優先度アプリケーションに使用されるDMAエンジンとを、単にそれぞれが接続されたインターフェイス・モジュールを変更することにより交換できる。
1つの実施の形態では、ターゲット及びイニシエーター・インターフェイス・モジュールは、それらのCONNID割当てを含むそれらの正確な機能がパワーアップで固定されるようにトランジスタ・レベルでプログラムされる。別の実施の形態では、インターフェイス・モジュールは再プログラム可能な資源であるようにインターフェイス・モジュールの設計はRAMの中にある。この場合、インターフェイス・モジュールはソフトウェアによりCONNID再割当てを含み、再プログラムされる。
本発明が、特定の実施の形態について説明された。例えば、本発明の実施の形態が特定の信号を有するプロトコルを含んだ特定の構成のシステムとして示された。当業者は特許請求の範囲に記載された発明の範囲と精神に逸脱することなく異なる信号と異なるシステム構成が使用できることを認識できる。
本発明の1つの実施の形態による複雑な電子システムのブロック図。 本発明の実施の形態のシステムモジュールのブロック図。 本発明の実施の形態のシステムモジュールのブロック図。 本発明の実施の形態の通信バスのブロック図。 パイプライン化された書き込み転送を示すタイミング図。 拒絶された第1のパイプライン化された書き込み転送と成功した第2の書き込み転送を示すタイミング図。 パイプライン化された読み出し及び書き込み転送の間挿(インターリーブ)を示すタイミング図。 1つのターゲットへの間挿(インターリーブ)された接続を示すタイミング図。 1つのイニシエーターからの間挿(インターリーブ)された接続を示すタイミング図。 本発明の1つの実施の形態によるコンピュータ・システムの一部のブロック図。 本発明の実施の形態の通信バスのブロック図。 本発明の1つの実施の形態によるコンピュータ・システムの一部のブロック図。 本発明の実施の形態のスレッド当たりクレジットに基づいたフロー制御機構を示すタイミング図。 3つのイニシエーター機能ブロックと、3つのターゲット機能ブロックと、一組のインターフェイスを使用する一緒に結び付けられた2つの通信サブシステムとからなる例示的システムを示すブロック図。 サービス保証の機能ブロックの品質と、サービス保証の通信サブシステムの品質との例を示す図。 サービス保証の機能ブロックの品質と、サービス保証の通信サブシステムの品質との例を示す図。 チャンネル識別及びチャンネル当たりフロー制御信号の両方を有する例示的インターフェイスを示すブロック図。 サービス保証構成機構の品質を示すフローチャート。 データフロー・マッピングを実行する方法の実施例を示すフローチャート。 サービス保証の品質の単位整列の例を示す図。 マップされたデータフローを持つサンプル・システムのブロック図。 サービス保証のエンド・ツー・エンド品質を得るために図20のシステムにどのように構成方法が適用されるかの例を説明する図。

Claims (10)

  1. 1つの集積回路チップ上の少なくとも2つの機能ブロック、又は、異なる集積回路チップ上の少なくとも2つの機能ブロックが、チップ上又はチップ間の共有通信バスを介して互いに通信する通信装置であって、前記少なくとも2つの機能ブロックは複数スレッディングシステム内で動作し、
    コネクションを確立することによってイニシエーター機能ブロックがターゲット機能ブロックと通信し、
    前記共有通信バスは別個のアドレス、データ及び制御線を含み、前記機能ブロックの各々に接続され複数の信号を搬送するよう構成され、
    前記複数の信号は前記イニシエーター機能ブロックと前記ターゲット機能ブロックとの間の前記共有通信バス上を送信されるトランザクションストリームにデータストリームを関連付ける第1の固有の識別子と、前記ターゲット機能ブロックが前記第1の固有の識別子と一致する固有の識別子を有するトランザクションストリームからの1又は複数の転送データを受領可能であるとの事前通知を与えるために、前記ターゲット機能ブロックによって送信されるクレジット信号と、を含み、
    もし、前記ターゲット機能ブロックがこれ以上の転送データを受領することができないということを前記クレジット信号が示した場合には、前記イニシエーター機能ブロックは、前記固有の識別子に関連付けられた転送データの送信を差し控え、かつ、
    前記共有通信バスは前記クレジット信号の利用を介して非ブロッキングとなっており、ここにおいて、前記クレジット信号は如何ほどの転送データが送信されることを事前認可されているか示すものであり、
    固有の識別子によって関連付けられたトランザクションストリームに対する前記イニシエーター機能ブロックから前記ターゲット機能ブロックへのデータフローを経路中のチャンネルにマッピングして、固有の識別子ごとの前記トランザクションストリームに対するデータ送信サービスの性能保証を可能にすることを特徴とする通信装置。
  2. 前記1又は複数の転送データを示す前記クレジット信号は、ターゲット機能ブロックが利用可能なクレジット数を通知するために送信されることを特徴とする請求項に記載の装置。
  3. 前記クレジット数は、アクティブなデータ転送の各々に対して減少され、そしてさらなるデータ転送のためにメモリ制御資源が自由になる時に増加される請求項に記載の装置。
  4. 前記クレジット信号は、クレジット数を指示するビット符号化信号を含む請求項に記載の装置。
  5. 1つの集積回路チップ上の少なくとも2つの機能ブロック、又は、異なる集積回路チップ上の少なくとも2つの機能ブロックが、チップ上又はチップ間の共有通信バスを介して互いに通信する通信装置であって、前記少なくとも2つの機能ブロックは複数スレッディングシステム内で動作し、
    複数のトランザクションストリームがイニシエーター機能ブロックとターゲット機能ブロックとの間で同時に処理可能であり、
    コネクションを確立することによって前記イニシエーター機能ブロックは前記ターゲット機能ブロックと通信し、
    前記共有通信バスは別個のアドレス、データ及び制御線を含み、前記機能ブロックの各々に接続され複数の信号を搬送するよう構成され、
    前記複数の信号は、前記イニシエーター機能ブロックと前記ターゲット機能ブロックとの間のトランザクションストリームに転送データを関連付けるよう構成された少なくとも1つの第1の固有の識別子を含み、
    もし、前記ターゲット機能ブロックが前記イニシエーター機能ブロックからの前記転送データを受領できない場合には、前記ターゲット機能ブロックが前記イニシエーター機能ブロックによって発行された前記第1の固有の識別子とともに送信される前記トランザクションストリームのデータ転送に対してビジー信号を送信し、
    バッファが前記ターゲット機能ブロックに接続され、前記バッファのサイズは、前記ビジー信号が送信された後であって、前記第1の固有の識別子に関連付けられた転送データを送信した前記イニシエーター機能ブロックが前記送信されたビジー信号に反応可能になるまでに到来する、前記第1の固有の識別子に関連けられたいずれの転送データを記憶するのにも十分であり、
    前記共有通信バスを介して、データフローマッピングアルゴリズムを実施して前記第1のトランザクションストリームのデータフローを経路中のコンポーネントのチャンネルにマップし、前記イニシエーター機能ブロックと前記ターゲット機能ブロックとの間のデータ転送サービスの性能保証を行うことを特徴とする通信装置。
  6. 前記ターゲット機能ブロックは、前記イニシエーター機能ブロックからの第1の転送データを受領することができないと判断した後、所定数のクロックサイクルのビジー信号を送信する請求項に記載の装置
  7. 前記ターゲット機能ブロックは、前記ビジー信号の送信後に所定数を超えない転送データを受信することをさらに含む請求項に記載の装置。
  8. 前記ターゲット機能ブロックは、複数のイニシエーター機能ブロックとターゲット機能ブロックとの間の少なくとも1つのトランザクションストリームに対するデータ転送サービスの性能保証を決定するよう制御されることをさらに含む請求項に記載の装置。
  9. 前記固有の識別子はコネクションIDであることを特徴とする請求項に記載の装置。
  10. 前記固有の識別子はスレッドIDであることを特徴とする請求項に記載の装置。
JP2002571999A 2001-03-09 2002-02-19 非ブロック化共有インターフェイスを持つ通信システム及び方法 Expired - Lifetime JP5036120B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/802,405 2001-03-09
US09/802,405 US7165094B2 (en) 2001-03-09 2001-03-09 Communications system and method with non-blocking shared interface
PCT/US2002/005015 WO2002073407A1 (en) 2001-03-09 2002-02-19 Communications system and method with non-blocking shared interface

Publications (2)

Publication Number Publication Date
JP2004530197A JP2004530197A (ja) 2004-09-30
JP5036120B2 true JP5036120B2 (ja) 2012-09-26

Family

ID=25183610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002571999A Expired - Lifetime JP5036120B2 (ja) 2001-03-09 2002-02-19 非ブロック化共有インターフェイスを持つ通信システム及び方法

Country Status (4)

Country Link
US (1) US7165094B2 (ja)
EP (1) EP1370939A4 (ja)
JP (1) JP5036120B2 (ja)
WO (1) WO2002073407A1 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182183B1 (en) * 1998-11-13 2001-01-30 Sonics, Inc. Communications system and method with multilevel connection identification
JP4529063B2 (ja) * 2001-03-30 2010-08-25 ルネサスエレクトロニクス株式会社 システムシミュレータ、シミュレーション方法及びシミュレーションプログラム
US6804738B2 (en) * 2001-10-12 2004-10-12 Sonics, Inc. Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US7194561B2 (en) * 2001-10-12 2007-03-20 Sonics, Inc. Method and apparatus for scheduling requests to a resource using a configurable threshold
US8543681B2 (en) * 2001-10-15 2013-09-24 Volli Polymer Gmbh Llc Network topology discovery systems and methods
US8868715B2 (en) * 2001-10-15 2014-10-21 Volli Polymer Gmbh Llc Report generation and visualization systems and methods and their use in testing frameworks for determining suitability of a network for target applications
US7911952B1 (en) * 2002-07-12 2011-03-22 Mips Technologies, Inc. Interface with credit-based flow control and sustained bus signals
US7266786B2 (en) 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
WO2004100005A1 (en) * 2003-05-08 2004-11-18 Koninklijke Philips Electronics N.V. Processing system and method for communicating data
US7570594B2 (en) * 2003-10-01 2009-08-04 Santera Systems, Llc Methods, systems, and computer program products for multi-path shortest-path-first computations and distance-based interface selection for VoIP traffic
US7296105B2 (en) * 2003-10-03 2007-11-13 Sonics, Inc. Method and apparatus for configuring an interconnect to implement arbitration
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US7665069B2 (en) * 2003-10-31 2010-02-16 Sonics, Inc. Method and apparatus for establishing a quality of service model
US7770179B1 (en) * 2004-01-30 2010-08-03 Xilinx, Inc. Method and apparatus for multithreading on a programmable logic device
US7823162B1 (en) 2004-01-30 2010-10-26 Xilinx, Inc. Thread circuits and a broadcast channel in programmable logic
US7552042B1 (en) 2004-01-30 2009-06-23 Xilinx, Inc. Method for message processing on a programmable logic device
US7475168B2 (en) * 2004-03-11 2009-01-06 Sonics, Inc. Various methods and apparatus for width and burst conversion
FR2870373B1 (fr) * 2004-05-13 2006-07-28 St Microelectronics Sa Gestion du gel d'un module fonctionnel dans un systeme sur une puce
DE102004031715B4 (de) * 2004-06-30 2013-05-29 Globalfoundries Inc. Kombinierte On-Chip-Befehls- und Antwortdatenschnittstelle
US7739436B2 (en) * 2004-11-01 2010-06-15 Sonics, Inc. Method and apparatus for round robin resource arbitration with a fast request to grant response
EP2077504B1 (en) * 2006-10-24 2013-03-13 Fujitsu Limited Data packet transmitting/receiving system, data packet transmitting/receiving method and data packet transmitting/receiving program
US8868397B2 (en) 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
JP4873557B2 (ja) * 2007-01-12 2012-02-08 ルネサスエレクトロニクス株式会社 データ処理装置及び半導体集積回路
US7814243B2 (en) * 2007-06-01 2010-10-12 Sonics, Inc. Shared storage for multi-threaded ordered queues in an interconnect
US8108648B2 (en) * 2007-06-25 2012-01-31 Sonics, Inc. Various methods and apparatus for address tiling
US8438320B2 (en) * 2007-06-25 2013-05-07 Sonics, Inc. Various methods and apparatus for address tiling and channel interleaving throughout the integrated system
US9495290B2 (en) * 2007-06-25 2016-11-15 Sonics, Inc. Various methods and apparatus to support outstanding requests to multiple targets while maintaining transaction ordering
US8229723B2 (en) * 2007-12-07 2012-07-24 Sonics, Inc. Performance software instrumentation and analysis for electronic design automation
KR101400597B1 (ko) * 2008-02-18 2014-05-27 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 통신 결합 방법 및 시스템
TWI337517B (en) * 2008-03-04 2011-02-11 Inventec Corp Trace carrier
US8073820B2 (en) 2008-04-07 2011-12-06 Sonics, Inc. Method and system for a database to monitor and analyze performance of an electronic design
TWI411264B (zh) * 2008-05-02 2013-10-01 Realtek Semiconductor Corp 非阻塞式網路系統及其封包仲裁方法
TWI362860B (en) * 2008-06-27 2012-04-21 Realtek Semiconductor Corp Network system with quality of service management and associated management method
US8032329B2 (en) * 2008-09-04 2011-10-04 Sonics, Inc. Method and system to monitor, debug, and analyze performance of an electronic design
US8554967B2 (en) * 2009-06-16 2013-10-08 Freescale Semiconductor, Inc. Flow control mechanisms for avoidance of retries and/or deadlocks in an interconnect
US20110213949A1 (en) * 2010-03-01 2011-09-01 Sonics, Inc. Methods and apparatus for optimizing concurrency in multiple core systems
US8972995B2 (en) 2010-08-06 2015-03-03 Sonics, Inc. Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads
US8601288B2 (en) 2010-08-31 2013-12-03 Sonics, Inc. Intelligent power controller
US8438306B2 (en) 2010-11-02 2013-05-07 Sonics, Inc. Apparatus and methods for on layer concurrency in an integrated circuit
US9405700B2 (en) 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
US8711867B2 (en) 2011-08-26 2014-04-29 Sonics, Inc. Credit flow control scheme in a router with flexible link widths utilizing minimal storage
US8798038B2 (en) 2011-08-26 2014-08-05 Sonics, Inc. Efficient header generation in packetized protocols for flexible system on chip architectures
US8868941B2 (en) 2011-09-19 2014-10-21 Sonics, Inc. Apparatus and methods for an interconnect power manager
US9910454B2 (en) 2012-06-07 2018-03-06 Sonics, Inc. Synchronizer with a timing closure enhancement
US9424079B2 (en) * 2013-06-27 2016-08-23 Microsoft Technology Licensing, Llc Iteration support in a heterogeneous dataflow engine
US9430304B2 (en) * 2014-10-24 2016-08-30 Advanced Micro Devices, Inc. Method and system for block scheduling control in a processor by remapping
US11321268B2 (en) * 2014-10-31 2022-05-03 Texas Instruments Incorporated Multicore bus architecture with wire reduction and physical congestion minimization via shared transaction channels
US9904645B2 (en) * 2014-10-31 2018-02-27 Texas Instruments Incorporated Multicore bus architecture with non-blocking high performance transaction credit system
US10152112B2 (en) 2015-06-10 2018-12-11 Sonics, Inc. Power manager with a power switch arbitrator
US10268614B2 (en) 2016-04-19 2019-04-23 Nokia Of America Corporation Method and apparatus for a segmented on-chip digital interface block

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61283952A (ja) * 1985-06-10 1986-12-13 Mitsubishi Electric Corp デ−タ転送装置
JPS6450140A (en) * 1987-08-20 1989-02-27 Fujitsu Ltd Buffer storage request retransmission control system
US5274783A (en) 1991-06-28 1993-12-28 Digital Equipment Corporation SCSI interface employing bus extender and auxiliary bus
US5634081A (en) * 1994-03-01 1997-05-27 Adaptec, Inc. System for starting and completing a data transfer for a subsequently received autotransfer command after receiving a first SCSI data transfer command that is not autotransfer
US6052773A (en) 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5794062A (en) 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
SE506955C2 (sv) 1995-07-06 1998-03-09 Ericsson Telefon Ab L M ATM-flödesstyrning
US5872769A (en) * 1995-07-19 1999-02-16 Fujitsu Network Communications, Inc. Linked list structures for multiple levels of control in an ATM switch
US5748914A (en) 1995-10-19 1998-05-05 Rambus, Inc. Protocol for communication with dynamic memory
US6023565A (en) 1996-03-29 2000-02-08 Xilinx, Inc. Method for configuring circuits over a data communications link
US5878045A (en) 1996-04-26 1999-03-02 Motorola, Inc. Method and apparatus for converting data streams in a cell based communications system
JP2943710B2 (ja) * 1996-08-02 1999-08-30 日本電気株式会社 バッファのビジー制御方式
JPH10171750A (ja) 1996-12-09 1998-06-26 Fujitsu Ltd メモリ間データ転送システム
US6002692A (en) * 1996-12-30 1999-12-14 Hyundai Electronics America Line interface unit for adapting broad bandwidth network to lower bandwidth network fabric
US5956497A (en) * 1997-02-26 1999-09-21 Advanced Micro Devices, Inc. Methodology for designing an integrated circuit using a reduced cell library for preliminary synthesis
US6115823A (en) 1997-06-17 2000-09-05 Amphus, Inc. System and method for task performance based dynamic distributed power management in a computer system and design method therefor
JPH1173258A (ja) 1997-08-28 1999-03-16 Toshiba Corp 低消費電力バス構造及びその制御方法、低消費電力バス構造の合成システム及びその合成方法、携帯情報機器
US6078736A (en) 1997-08-28 2000-06-20 Xilinx, Inc. Method of designing FPGAs for dynamically reconfigurable computing
US5948089A (en) * 1997-09-05 1999-09-07 Sonics, Inc. Fully-pipelined fixed-latency communications system with a real time dynamic bandwidth allocation
US5999963A (en) * 1997-11-07 1999-12-07 Lucent Technologies, Inc. Move-to-rear list scheduling
DE69822591T2 (de) * 1997-11-19 2005-03-24 Imec Vzw System und Verfahren zur Kontextumschaltung über vorbestimmte Unterbrechungspunkte
US6147890A (en) 1997-12-30 2000-11-14 Kawasaki Steel Corporation FPGA with embedded content-addressable memory
US6012116A (en) * 1997-12-31 2000-01-04 Sun Microsystems, Inc. Apparatus and method for controlling data, address, and enable buses within a microprocessor
US6145062A (en) * 1998-01-26 2000-11-07 Intel Corporation Selective conflict write flush
US6005412A (en) 1998-04-08 1999-12-21 S3 Incorporated AGP/DDR interfaces for full swing and reduced swing (SSTL) signals on an integrated circuit chip
US6182183B1 (en) * 1998-11-13 2001-01-30 Sonics, Inc. Communications system and method with multilevel connection identification
US6477562B2 (en) * 1998-12-16 2002-11-05 Clearwater Networks, Inc. Prioritized instruction scheduling for multi-streaming processors
US6298472B1 (en) 1999-05-07 2001-10-02 Chameleon Systems, Inc. Behavioral silicon construct architecture and mapping
US6493776B1 (en) * 1999-08-12 2002-12-10 Mips Technologies, Inc. Scalable on-chip system bus
US6487709B1 (en) 2000-02-09 2002-11-26 Xilinx, Inc. Run-time routing for programmable logic devices
US6330225B1 (en) * 2000-05-26 2001-12-11 Sonics, Inc. Communication system and method for different quality of service guarantees for different data flows
US6510546B1 (en) 2000-07-13 2003-01-21 Xilinx, Inc. Method and apparatus for pre-routing dynamic run-time reconfigurable logic cores
US6578117B2 (en) 2001-10-12 2003-06-10 Sonics, Inc. Method and apparatus for scheduling requests using ordered stages of scheduling criteria

Also Published As

Publication number Publication date
US7165094B2 (en) 2007-01-16
US20020129173A1 (en) 2002-09-12
EP1370939A1 (en) 2003-12-17
WO2002073407A1 (en) 2002-09-19
JP2004530197A (ja) 2004-09-30
EP1370939A4 (en) 2008-01-23

Similar Documents

Publication Publication Date Title
JP5036120B2 (ja) 非ブロック化共有インターフェイスを持つ通信システム及び方法
US6182183B1 (en) Communications system and method with multilevel connection identification
US6119196A (en) System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
JP4638216B2 (ja) オンチップバス
EP0993680B1 (en) Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
CN117235000A (zh) 用于高带宽存储器的可缩放芯片上网络
JP2000259557A (ja) 多数の機能モジュールを接続するためのポート管理コントローラ
JPH0981508A (ja) 通信方法及び装置
US20080244225A1 (en) Integrated Circuit and Method For Transaction Retraction
JP4104939B2 (ja) マルチプロセッサシステム
US11841819B2 (en) Peripheral component interconnect express interface device and method of operating the same
KR20060009292A (ko) 분할 프로토콜 전송 방법 및 프로세싱 시스템
JP4567373B2 (ja) データ転送装置及び通信データ処理システム
JPH1115779A (ja) バス制御システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080317

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080617

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080624

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080717

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090601

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090901

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100816

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100823

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100917

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110902

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110907

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120425

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120501

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120522

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120703

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

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5036120

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term