JP4083987B2 - 多重レベル接続識別を備えた通信システム - Google Patents
多重レベル接続識別を備えた通信システム Download PDFInfo
- Publication number
- JP4083987B2 JP4083987B2 JP2000582902A JP2000582902A JP4083987B2 JP 4083987 B2 JP4083987 B2 JP 4083987B2 JP 2000582902 A JP2000582902 A JP 2000582902A JP 2000582902 A JP2000582902 A JP 2000582902A JP 4083987 B2 JP4083987 B2 JP 4083987B2
- Authority
- JP
- Japan
- Prior art keywords
- function block
- initiator
- interface module
- transfer
- target
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/403—Bus networks with centralised control, e.g. polling
-
- 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/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Mobile Radio Communication Systems (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
Description
(発明の分野)
本発明は、コンピューティング・サブシステムを結合するための通信システムに関する。
【0002】
(発明の背景)
電子コンピュータおよび通信システムは、ますます数多くの機能を含むようになり、複雑さが増している。同時に、電子コンピュータおよび通信システムでは、物理的なサイズおよび1機能当たりのコストが減少している。4層の超サブミクロン補型金属酸化膜半導体(CMOS)技術などの半導体技術における急速な進歩により、真の「システム・オン・チップ」設計が可能になった。これらの複雑な設計には、たとえば1つまたは複数のプロセッサ・コア、デジタル信号処理(DSP)コア、いくつかの通信インターフェース、および特定用途向け論理でのグラフィックス・サポートを組み込むことができる。システムによっては、これらの非常に複雑なチップのうち1つまたは複数が、相互におよび他のシステム構成要素と通信しなければならない。単一の複雑なチップ上にあるサブシステム間で、ならびにシステム・ボード上にあるチップ間で、効率良く通信しなければならないことから、このようなシステムの統合、検証、およびテストを行う上で重要な問題が新しく発生してくる。サブシステム間およびチップ間の通信に有効でフレキシブルな方法の利点は、システム構成要素に最小限の再設計を施すだけで、他のシステムでも再使用できることである。
【0003】
現在の電子システムの統合、検証、およびテストにおける課題の1つは、多くの分野に適用されている現在の電子システムが、通信システムとインターフェースするどのようなエンティティであってもよい複数のファンクション・ブロック間で、メモリなどのリソースを共用しなければならないという、機能、コスト、およびフォーム・ファクタに関する要件を有するという事実に起因している。このようなシステムでは、典型的には、ファンクション・ブロックが異なる性能特性および要件を有し、通信システムおよび共用リソースが総合的な要件を同時に満たすものでなければならない。典型的なファンクション・ブロックの主要な要件は、ファンクション・ブロック間で何桁も異なる可能性のある帯域幅および待ち時間制約である。それほど大きく異なる制約を同時に満たすためには、通信システムが高度な予測精度を用意しなければならない。
【0004】
現在の複雑なコンピュータ・システム用に通信システムを設計するための従来の方法には、様々な長所および短所がある。このような方法に不可欠な態様は、様々なサブシステムが相互に提示する通信インターフェースである。1つの方法は、サブシステムとそれを使用して通信しなければならない各ピア間に、カスタマイズされた2地点間インターフェースを決めることである。このカスタマイズされた方法によって、単純なプロトコル、保証された性能、および関連のないサブシステムへの依存からの分離が行われる。ただし、カスタマイズされたインターフェースは、その性質上フレキシブルでない。異なるインターフェースを備えた新しいサブシステムを追加するには、設計のやり直しが必要である。
【0005】
第2の方法は、標準化されたインターフェースを使用してシステムを形成することである。多くの標準化されたインターフェースは、事前に確立されたコンピュータ・バス・プロトコルに基づいている。コンピュータ・バスを使用することで、バスが十分な性能を備えている限り、多くの異なるファンクション・ブロックをシステムの要求に応じて相互に接続できるため、システム設計をフレキシブルにすることができる。様々なサブシステム間で、バスへのアクセスを割り振る必要もある。コンピュータ・バスの場合、リソース割振りは典型的にはアービトレーションと呼ばれる。
【0006】
コンピュータ・バスの欠点の1つは、バスに接続された各サブシステムまたは構成要素が、バスのプロトコルを使用するのを制約されるということである。場合によっては、これによってサブシステムの性能が制限される。たとえば、サブシステムは複数のトランザクション・ストリームを同時に処理することができるが、バス・プロトコルは同時動作を完全にサポートすることができない。サブシステムが複数のトランザクション・ストリームを処理し、各トランザクション・ストリームが順序付け制約を有する場合、サブシステムは、ストリーム間を区別し、ストリーム内の順序を保存するために、送受信したデータのそれぞれの増分を、ある種のデータ・ストリームのある種の部分で識別する必要がある。これには、データの伝送元であるサブシステムを識別することが含まれる。従来から、このような識別は、特定のサブシステムまたは構成要素によって生成される構成不能のハードウェア識別子に限定されている。
【0007】
現在のバス・システムは、1トランザクションからのデータを、同じストリーム内にある他のトランザクションからのデータでインターリーブできる「スプリット・トランザクション」をサポートすることによって、1トランザクション・ストリーム内の順序を保存するための限定機能を用意している。このようなバスでは、データは1ストリームのデータに属するものとしてタグが付けられ、その結果、たとえ順序外れで着信しても識別することができる。これには、受信側のサブシステムが着信アドレスを復号して、識別情報を抽出する必要がある。
【0008】
現在のバス・システムは、単一のダイナミック・ランダム・アクセス・メモリ(DRAM)へのアクセスをDRAMのいくつかのクライアント向けに処理するメモリ制御装置などの、単一の相互接続を介してトランザクションの複数のストリームを処理できるサブシステムに関して、動作の真の同時処理をサポートしていない。DRAM制御装置は、アクセス要求のソース、アクセス要求の優先順位、順序付け要件などに関係する情報を必要とする場合がある。現在の通信システムは、既存のプロトコルに適合するための余分な負荷をサブシステムにかけることなく、このような情報をデータと共に伝送するようには対応されていない。
【0009】
多くのサブシステムが従来のシステムでその機能をすべて使用して動作するためには、既存の通信システムを介して通信を提供するように、追加の知識をサブシステムに組み入れて設計しなければならない。これにより、サブシステムが後に新しいサブシステムまたは構成要素と通信する必要が生じた場合に、サブシステムはさらに高価になり、フレキシブルでなくなる。したがって既存の通信方法は、現在の大規模で複雑な電子システムの要件には合致しない。そこで、大規模で複雑な電子システムのサブシステムが、その性能特性および要件が異なっても効率よく相互に動作できるようにするための、通信システムおよび機構が望ましい。
【0010】
(発明の概要)
本発明の一実施形態には、電子サブシステム間にフレキシブルな通信機能を与えるための、共用通信バスが含まれる。一実施形態には、追加の知識をサブシステムに組み込んで設計することなく、特定のサブシステムの要求に応じて、異なる詳細なレベルのデータ伝送を識別できるプロトコルが含まれる。
【0011】
本発明の一実施形態には、少なくとも1つのイニシエータ・ファンクション・ブロックおよび1つのターゲット・ファンクション・ブロックを含む、いくつかのファンクション・ブロックが含まれる。イニシエータ・ファンクション・ブロックの中には、ターゲット・ファンクション・ブロックとしても機能できるものがある。一実施形態では、イニシエータ・ファンクション・ブロックがイニシエータ・インターフェース・モジュールに結合され、ターゲット・ファンクション・ブロックが、ターゲット・インターフェース・モジュールに結合される。イニシエータ・ファンクション・ブロックおよびターゲット・ファンクション・ブロックはそれぞれのインターフェース・モジュールと通信する。インターフェース・モジュールは相互に通信する。イニシエータ・ファンクション・ブロックは接続を確立することによってターゲット・ファンクション・ブロックと通信する。接続とは、イニシエータ・ファンクション・ブロックとターゲット・ファンクション・ブロックとの間でデータを渡すことができる論理状態である。
【0012】
一実施態様には、複数の信号を搬送するように構成されたバスも含まれ、信号には、イニシエータ・ファンクション・ブロックとターゲット・ファンクション・ブロックとの間のデータ転送がその一部である特定の接続を示す、接続識別子信号が含まれる。接続識別子には、どのファンクション・ブロックが伝送元であるか、転送要求の優先順位、および転送順序付け情報などの、接続に関する情報が含まれる。一実施態様には、接続識別子によって提供される情報サブセットを提供する、スレッド識別子も含まれる。一実施態様では、スレッド識別子は、インターフェース・モジュールと接続されたファンクション・ブロックとの間の転送を識別するローカル範囲の識別子であって、一部の実施態様では、インターフェース・モジュールがファンクション・ブロックを共用通信バスに接続する。
【0013】
接続識別子は、インターフェース・モジュール間またはファンクション・ブロック間で、そのインターフェース・モジュールを介して情報を転送するグローバル範囲の識別子である。ファンクション・ブロックの中には、接続識別子が提供するすべての情報を必要とするものもあるが、その他のファンクション・ブロックは、スレッド識別子が提供する情報のサブセットだけしか必要としないことがある。
【0014】
(詳細な説明)
本発明は、複雑な電子システムの複数のファンクション・ブロックまたはサブシステムが、共用通信バスなどの共用通信リソースを介して相互に通信できるようにするための、通信のシステムおよび方法である。一実施形態では、通信プロトコルによって、単一の半導体デバイス上にある複数のファンクション・ブロックが相互に通信できるようにする。他の実施形態では、通信プロトコルを使用して、異なる半導体デバイス上にある複数のファンクション・ブロックが、バスなどの共用オフチップ通信リソースを介して相互に通信できるようにする。
【0015】
一実施形態では、本発明は、別々のコマンド・ワイア、アドレス・ワイア、およびデータ・ワイアを備えたパイプライン式の通信バスである。代替の実施形態には、多重化されたアドレス信号、データ信号、および制御信号を備えた、パイプライン式の通信バスが含まれる。前者の実施形態では、余分なワイアを犠牲にすることで、後者の実施形態よりも高い性能および単純な制御が得られる。前者の実施形態は、ワイアが比較的安価で性能要件が通常高いオンチップ通信に、より適している。後者の実施形態は、アドレス転送とデータ転送で同じワイアを共用するため、ワイア当たりの転送効率がより高い。後者の実施形態は、パッケージ・ピンおよびボード・トレースによって信号当たりのコストが高くなり、必要な総合通信性能が通常低いので、半導体デバイス間のチップ間通信により適している。
【0016】
図1は、複雑な電子システム100を示す構成図である。共用通信バス112が、サブシステム102、104、106、108、および110を接続する。サブシステムは、典型的には、共用バスにインターフェースするためのインターフェース・モジュールを含むファンクション・ブロックである。サブシステムはそれ自体が、1つまたは複数のファンクション・ブロックを含むことが可能であり、一体化されたかまたは物理的に別々のインターフェース・モジュールを含んでも含まなくてもよい。一実施形態では、通信バス112によって接続されたサブシステムは、別々の集積回路チップである。サブシステム104は特定用途向け集積回路(ASIC)であり、これは周知のように、特定の機能を実行するように設計された集積回路である。サブシステム106はダイナミック・ランダム・アクセス・メモリ(DRAM)である。サブシステム108は、消去可能プログラム可能読取り専用メモリ(EPROM)である。サブシステム110は、書替え可能ゲート・アレイ(FPGA)である。サブシステム102は、システム100で動作するように特別に設計された、フル・カスタム集積回路である。他の実施形態には、図示されたものと同じタイプまたは図示されていないその他のタイプの、追加のサブシステムを含めることができる。他の実施形態には、サブシステム100に図示されているサブシステムよりも少ないサブシステムを含めることもできる。集積回路102は、サブシステム102A、102B、102C、102D、および102Eを含む。ASIC 104は、ファンクション・ブロック104A、104B、および104Cを含む。FPGA 110は、ファンクション・ブロック110Aおよび110Bを含む。ファンクション・ブロックは、特定機能を実行する特定の論理ブロックであってよい。ファンクション・ブロックは、集積回路上のメモリ構成要素であってもよい。
【0017】
システム100は、1つまたは複数の集積回路またはチップからなるシステムの一例である。ファンクション・ブロックが、たとえばファンクション・ブロック102Eなどの集積回路上にある論理ブロックであってよく、あるいはファンクション・ブロックが、単一の論理機能を実施するフル・カスタム集積回路102などの集積回路であってもよい。
【0018】
共用通信バス112は、システム100のサブシステム間の共用通信バスを構成している。共用通信バス114は、サブシステム間または単一の集積回路上にあるファンクション・ブロック間の共用通信バスである。図示されたファンクション・ブロックの中には、それを介して共用通信バス112または共用通信バス114との間で信号の送受信を行うインターフェース・モジュールに接続されるものもある。相互接続115は、インターフェース・モジュールとファンクション・ブロックとを接続するための、ローカルな2地点間相互接続である。
【0019】
インターフェース・モジュール120〜127は、図に示すように様々なファンクション・ブロックに接続される。この実施形態では、インターフェース・モジュール120、122、123、および124が、それらの接続されたファンクション・ブロック(それぞれA、B、C、E、および102)とは物理的に分離している。インターフェース・モジュール121および125〜128は、本来それぞれのファンクション・ブロックまたはサブシステムの一部である。102Dなどのファンクション・ブロックの中には、専用のインターフェース・モジュールを必要としないものもある。サブシステム、ファンクション・ブロック、およびインターフェース・モジュールの配置構成はフレキシブルであり、システム設計者によって決められる。
【0020】
一実施形態では、ファンクション・ブロックには4つの基本タイプがある。4つの基本タイプのブロックとは、イニシエータ、ターゲット、ブリッジ、およびスヌーピングである。典型的なターゲットはメモリ・デバイスであり、典型的なイニシエータは中央処理装置(CPU)である。ファンクション・ブロックはすべて、共用通信バス112または共用通信バス114および一実施形態のプロトコルを介して相互に通信する。イニシエータおよびターゲットのファンクション・ブロックは、インターフェース・モジュールを介して共用通信バスと通信することができる。イニシエータ・ファンクション・ブロックは、イニシエータ・インターフェース・モジュールを介して共用通信バスと通信し、ターゲット・ファンクション・ブロックは、ターゲット・インターフェース・モジュールを介して共用通信バスと通信することができる。
【0021】
イニシエータ・インターフェース・モジュールは、それが関連付けられたファンクション・ブロック以外のファンクション・ブロックとの間で、読取りおよび書込み要求の発行および受取りを行う。一実施形態では、イニシエータ・インターフェース・モジュールは典型的には、CPU、デジタル信号処理(DSP)コア、またはダイレクト・メモリ・アクセス(DMA)エンジンに接続される。
【0022】
図2は、イニシエータ・インターフェース・モジュール800の一実施形態を示す構成図である。イニシエータ・インターフェース・モジュール800には、クロック・ジェネレータ802、データ・フロー・ブロック806、アービトレータ・ブロック804、アドレス/コマンド復号ブロック808、構成レジスタ810、およびシンクロナイザ812が含まれる。イニシエータ・インターフェース・モジュール800は、共用通信バス814およびイニシエータ・ファンクション・ブロック816に接続される。一実施形態では、共用通信バス814は、図1でバス112が実行していたようにサブシステムを接続する共用通信バスである。
【0023】
クロック・ジェネレータ802は、イニシエータ・ファンクション・ブロック816が共用通信バス814に対して同期的であるが異なる周波数で動作するときに、クロック分割を実行するのに使用される。イニシエータ・ファンクション・ブロック816が通信バス814に対して非同期的に動作する場合、クロック・ジェネレータ802は使用されず、シンクロナイザ812が使用される。アービトレータ・ブロック804は、共用通信バス814にアクセスするためのアービトレーションを実行する。一実施形態では、アービトレータ・モジュール804が、第1レベルのアービトレーションの事前に割り振られた帯域幅アスペクトを管理する論理回路と、第2レベルのアービトレーションを管理する論理回路とを含む、多重レベル・アービトレーション・スキームが使用される。データ・フロー・ブロック806には、共用通信バス814とイニシエータ・ファンクション・ブロック816との間のトランザクション管理に関連付けられた制御論理に加えて、共用通信バス814とイニシエータ・ファンクション・ブロック816との間のデータ・フロー先入れ先出し(FIFO)バッファが含まれる。FIFOバッファは、アドレス・ビットとデータ・ビットの両方を、共用通信バス814とイニシエータ・ファンクション・ブロック816との間で段階的に転送する。一実施形態では、共用通信バス814がメモリ・マップ済みプロトコルを実施する。基礎となるコンピュータ・バス・プロトコルに特有の詳細は本発明にとって重要ではないが、これは、基礎となるコンピュータ・バス・プロトコルがいくつかの動作の同時処理をサポートしていることを条件とする。本発明で使用するバス・プロトコルの好ましい実施形態は、再試行トランザクションまたは分割トランザクションをサポートするものであり、これは、これらのプロトコルが、他の関連のないトランザクションに属している転送を実行させるために、多重サイクル・トランザクションを中断することによって、動作の同時処理を送達するためのメカニズムを提供するためである。イニシエータが以前にイニシエータによって要求されたデータを返すために長い待ち時間ターゲットを待つ間に、独立したトランザクションがバスを使用できるため、これらのプロトコルはより高い転送効率を可能にすることができる。
【0024】
アドレス/コマンド復号ブロック808は、イニシエータ・ファンクション・ブロック816に関連付けられたレジスタに対して書込みが実行されるかどうかを判定するために、共用通信バス814上でアドレスを復号する。アドレス/コマンド復号ブロック808は、着信コマンドも復号する。構成レジスタ810は、帯域幅割振りおよびクライアント・アドレス・ベースを含むモジュール800の状態を判定するビットを格納する。1つのレジスタ810が、イニシエータ・ファンクション・ブロック816を固有に識別するビット・セットである識別番号(ID)を格納する。
【0025】
図3は、ターゲット・インターフェース・モジュール900の一実施形態を示す構成図である。ターゲット・インターフェース・モジュール900は、共用通信バス914およびターゲット・ファンクション・ブロック918に接続される。ターゲット・インターフェース・モジュール900は、クロック・ジェネレータ902、データ・フロー・ブロック906、アドレス/コマンド復号ブロック908、シンクロナイザ912、および状態制御ブロック内の状態レジスタ916を含む。イニシエータ・モジュール800のブロックと同様に命名されたターゲット・インターフェース・モジュール900のブロックは、イニシエータ・ブロック800に関して説明した方法とほぼ同じ方法で機能する。状態レジスタおよび状態制御ブロック916は、たとえばクライアント・アドレス・ベースおよびターゲット・ファンクション・ブロック918の識別子を格納するレジスタを含む。
【0026】
一実施形態では、イニシエータ・ファンクション・ブロック816などのイニシエータ・ファンクション・ブロックが、他のファンクション・ブロックまたはサブシステムからの信号に応答する機能、ならびに他のファンクション・ブロックまたはサブシステムに信号を送ることによってアクションを開始する機能を有するので、ターゲット・ファンクション・ブロックとしても動作可能である。
【0027】
図4は、一実施形態に従ったコンピュータ・システム1000の一部を示す構成図である。図4は、多重レベル接続識別を図示するのに役立つ。システム1000にはイニシエータ・ファンクション・ブロック1002が含まれ、これが相互接続1010によってイニシエータ・インターフェース・モジュール1004に接続される。イニシエータ・インターフェース・モジュール1004は、共用通信バス1012によってターゲット・インターフェース・モジュール1006に接続される。ターゲット・インターフェース・モジュール1006は相互接続1010によってターゲット・ファンクション・ブロック1008に接続される。典型的に共用通信バス1012は、図1の共用通信バス112または図1の共用通信バス114に類似している。相互接続1010は、ファンクション・ブロックとインターフェース・モジュールとを接続する共用ではない2地点間相互接続であるので、典型的には図1の相互接続115に類似している。典型的に相互接続1010は、そのローカルな性質から共用通信バス1012よりも物理的に短い。以下でより詳細に説明するように、システム1000は、特定ファンクション・ブロックの要件に応じて2つの異なるレベルの接続識別を使用する。「グローバル」接続識別情報は共用通信バス1012で送信され、「ローカル」接続情報またはスレッド識別情報は、相互接続1010で送信される。
【0028】
図5は、共用通信バス1012の一実施形態を示す構成図である。この図で共用通信バス1012は、インターフェース・モジュールまたはファンクション・ブロックであってもよいエンティティA、B、C、D、およびEに接続されている。共用通信バス1012は、ワイア・セットからなる。データ・ワイア230は、共用通信バス1012上にあるファンクション・ブロック間に、直接かつ効率の高いデータ・トラフィック移送を提供する。一実施形態では、共用通信バス1012が、別々のアドレス・ワイア、データ・ワイア、および接続識別ワイアを使用する、フレーム化、時分割多重化、完全パイプライン式の、固定待ち時間通信プロトコルである、バス・プロトコルをサポートする。このバス・プロトコルは、高度な動作の同時処理を可能にするために転送の細粒度インターリーブをサポートし、待ち時間が長いかまたは変化するターゲット・デバイスからのトランザクション読取りを効率良く実施するために、再試行トランザクションを使用する。共用通信バス1012にアクセスするのに使用されるアービトレーション方法についての詳細は、本発明を理解する上では必要でない。イニシエータ・ファンクション・ブロックがコマンドおよびアドレスを駆動してからターゲット・ファンクション・ブロックが応答を駆動するまでの遅延が、共用通信バス1012の待ち時間として知られている。バス・プロトコルは、バスにアクセスするための、多くのイニシエータ・ファンクション・ブロックおよびターゲット・ファンクション・ブロック間でのアービトレーションをサポートする。図示された実施形態では、共用通信バス1012にアクセスするためのアービトレーションが、図4のモジュール1004などのイニシエータ・インターフェース・モジュールによって実行される。他の実施形態では、アービトレーションは、ファンクション・ブロックによって直接実行されるか、またはインターフェース・モジュールとファンクション・ブロックとの組み合わせによって実行される。一実施形態では、バス認可は1パイプライン式バス・サイクルの間持続する。プロトコルは、単一のファンクション・ブロックが連続するバス・サイクルの間、バス所有者になることを禁止しないが、そのファンクション・ブロックが権利を得るために連続するサイクルでのアービトレーションを首尾良く勝ち取ることを要求する。
【0029】
共用通信バス1012には、別々のアドレス・ワイア、データ・ワイア、および制御ワイアが含まれる。他の実施形態では、単数または複数のワイアを共用する多重化されたアドレス信号、データ信号、および制御信号を含むこともできる。このような実施形態では、ワイアがアドレス転送とデータ転送で共用されるため、1ワイア当たりの転送効率が高くなる。共用通信バス1012の多重化されていない実施形態は、ワイアが相対的に安価であり、通常は単一の集積回路チップに関する性能要件が高いことにより、単一の集積回路チップ上にあるファンクション・ブロック間での通信に、より適している場合がある。
【0030】
クロック線220は、他のすべての共用通信バス1012信号が同期化される時間基準信号を提供する、グローバル信号ワイアである。リセット線222は、接続された各ファンクション・ブロックを強制的に、システム構成が開始できるデフォルト状態にするグローバル信号ワイアである。コマンド線224は、イニシエータ・バス所有者によって駆動されるマルチビット信号を搬送する。様々な実施形態で、マルチビット・コマンド信号は様々なタイプの情報を搬送することができる。たとえばコマンド信号は、転送タイプ、接続持続期間に関する情報、ならびに接続中に予測されるイニシエータおよびターゲットの挙動を示すことができる。一実施形態では、コマンド信号に、接続の初めおよび終わりを示す1つまたは複数のビットが含まれる。一実施形態では、たとえば1つのビットが接続状況を示すことができる。ビットがゼロの場合、現在の転送は接続の最終転送である。ゼロの接続状況ビットを受け取った後、次に論理ビットである接続状況ビットを受け取った場合、その転送は新しくオープンした接続の最初の転送であることを示す。その後に続けて1つずつ接続状況ビットを受け取れば、接続が依然としてオープンになっていることを示す。
【0031】
この実施形態でサポートされている転送タイプには、読取り転送および書込み転送が含まれるが、これらに限定されるものではない。アドレス線228は、現在の転送中に読み取られるかまたは書き込まれるオブジェクトのアドレスを指定するために、イニシエータ・バス所有者によって駆動されるマルチビット信号を搬送する。応答線232は、現在の転送の状況を示すために、ターゲットによって駆動されるマルチビット信号を搬送する。サポートされる応答には次のような応答が含まれるが、これらに限定されるものではない。NULL応答は、おそらくアドレスがどんなターゲットも選択しないため、現在の転送が打ち切られることを示す。データ有効受入れ(DVA)応答は、読取りの場合、要求されたデータをターゲットがデータ線230で返していることを示す。書込みの場合、DVA応答は、ターゲットがデータ線230から提供されたデータを受け入れていることを示す。BUSY応答は、選択されたターゲットにリソース衝突があり、現在の要求を処理できないことを示す。この場合、イニシエータは転送を後にもう一度再試行しなければならない。RETRY応答は、選択されたターゲットが要求された読取りデータを適時に送達できないことを示すが、後にそのように実行することを約束する。この場合、イニシエータは後に転送を再試行しなければならない。
【0032】
接続識別子(CONNID)線226は、現在の転送がどの接続の一部であるかを示すために、イニシエータ・バス所有者によって駆動されたマルチビット信号を搬送する。接続とはイニシエータによって確立された、データがイニシエータと関連付けられたターゲットとの間を通過する論理状態である。典型的にはCONNIDが転送を開始し、転送が処理されなければならない順序に関する情報を順序付けする、ファンクション・ブロックのアイデンティティを含む情報を伝送する。一実施形態では、CONNIDによって搬送される情報には、他の転送に関する転送の優先順位に関する情報が含まれる。一実施形態では、CONNIDは8ビット・コードである。イニシエータ・インターフェース・モジュールは、接続の最初のアドレス転送と共に固有のCONNIDを送信する。この接続に関連付けられたその後の転送(たとえばデータ転送)がCONNID値を提供し、その結果、送信者および受信者(ならびに共用通信バス1012上の転送を監視する任意のデバイス)は、接続に関連付けられた転送を明白に識別することができる。CONNIDを使用する一利点は、異なるトランザクションに属する転送を、複数のデバイス間でサイクルごとに自由裁量によってインターリーブできることである。一実施形態では、共用通信バス1012が、正しいシステム動作を保証するためにトランザクションを介した厳しい制御を必要とする、完全なパイプライン式プロトコルを実施する。CONNIDを使用しないと、特定の接続に関連付けられた転送が識別されないため、特定トランザクション内での順序付け制約に違反する可能性がある。
【0033】
第1のコマンドがBUSY応答によって拒絶されたとしても、その後のコマンドがすでに発信されてしまっていることがあるため、コマンドが完了するまで完全制御できるメカニズムを提供することが不可欠である。現在このような制御がなければ、あいまいなシステム挙動が生じる可能性がある。たとえば、単一のイニシエータ・インターフェース・モジュールが一連の従属する読取りおよび書込みコマンドを発行すると、そのコマンドの1つに対するBUSY応答により、その後のコマンドが誤ったデータを返す可能性がある。このような問題に対する解決策の1つが、従属コマンドのオーバーラップを避けることである。ただしこの解決策は、正しい結果を保証するために、あらゆる従属コマンドの待ち時間を増加させてしまう。本発明は、部分的にCONNID信号を使用し、従属コマンドのオーバーラップを可能にするものである。したがって、CONNIDを使用することにより、システムの性能および効率が改善される。本発明のCONNIDの他の利点は、共用ファンクション・ブロックが、接続間で異なる可能性のあるサービス保証の質に基づいて要求に応答できるようにするため、通信システムの予測精度が高まることである。たとえば、コンピュータ・ディスプレイを動作させるように要求するデータの場合、遅延が発生するとディスプレイにちらつきを引き起こすので、予測不可能な遅延は許されない。したがって、CONNIDを使用してディスプレイ制御装置からのデータ要求に優先順位をつけることにより、ディスプレイ制御装置から共通リソースへの要求が他の要求より前に処理される。本発明は、システム性能を再調整するために、CONNIDをフレキシブルに再構成することも可能である。
【0034】
図6は、共用通信バス1012上の2つの書込み転送からなる、パイプライン式書込みトランザクションを示すタイミング図である。図5を参照することもできる。図6に示されるように、単一のパイプライン式バス転送には、アービトレーション・サイクル(図示せず)、それに続くコマンド/アドレス/CONNID(CMD 324/ADDR 328/CONNID 326)サイクル(要求またはREQサイクルと呼ばれる)、および最後のDATA 330/RESP 342サイクル(応答またはRESPサイクルと呼ばれる)が含まれる。一実施形態では、システム性能を最適化するために、REQサイクルとRESPサイクルとの間のサイクル数が、動作頻度およびモジュール待ち時間に基づいて、システム実施時間に選択される。一実施形態では、REQ−RESP呼出し時間が2サイクルであって、図6のDATA 330信号より上に符号付けされている。したがって、完全な転送時間には、4つの共用通信バス1012サイクル、アービトレーション、要求、遅延、および応答が含まれる。
【0035】
図6には2つの転送が示されている。サイクル1では、イニシエータEがREQフィールド340を駆動して、アドレスADDRE0にWRITE転送を要求する。このプロセスが転送要求発行と呼ばれる。一実施形態では、ADDRE0の外部アドレス部分を復号することによって書込みデータを受け取るために、単一のターゲットが選択される。サイクル3(その後のREQ−RESP待ち時間)では、イニシエータEがDATAワイア上の書込みデータDATAE0を駆動し、それと同時に、選択されたターゲットAがDVAコードを伴うRESPワイア342を駆動して、Aが書込みデータを受け入れることを示す。サイクル3の終わりには、ターゲットAが書込みデータを獲得しており、イニシエータEは、ターゲットAが書込みデータを受け入れることができたことを検出するため、転送は首尾良く完了したということである。
【0036】
その間(すなわち依然としてサイクル3である)、イニシエータEはパイプライン式WRITE転送(アドレスADDRE1)をターゲットAに発行する。この転送に対する書込みデータおよびターゲット応答は、双方ともサイクル5で発生し、ここで転送は首尾良く完了する。多くのシステムおよびサブシステムの正しい動作は、関連する転送の正しい順序付けに依拠する。したがって、正しいシステム動作には、サイクル3のWRITEがサイクル1のWRITE転送の後に完了することが必要な場合がある。図6では、CONNIDフィールドが、強制的に正しい順序付けをさせるのに使用できる転送の原点に関する非常に重要な情報を搬送する。順序付け制約の好ましい実施形態は、たとえパイプライン式の転送中であっても、正しい順序付けを保証するために、イニシエータおよびターゲットが協働することである。これは、転送のパイプライン化によって転送セット(おそらく単一のトランザクション)の総待ち時間が減少し、その結果(待ち時間が減少し使用可能帯域幅が増加することによって)システム性能が向上するので重要である。
【0037】
一実施形態のアルゴリズムによれば、
1.イニシエータは、
a)CONNIDと一致する転送要求セットの中で、転送Yが最も古く、未発行で未リタイアの転送である場合、または
b)CONNIDと一致しており、古い未リタイアのすべての転送が、現在転送Yと同じターゲットに発行されている場合、転送Yを発行することができる。この規定の下で発行された場合、転送Yは、古い未リタイアの転送とパイプライン化されているとみなされる。
2.イニシエータが転送をリタイアさせることのないような方法で転送Xに応答するターゲットは、Xとパイプライン化されている転送Xと同じCONNIDを使用して、その後のすべての転送に対してBUSY応答しなければならない。
【0038】
CONNIDと一致しており、新しい転送Xの後に発行される古い転送Yは、たとえXが完了する前にYが発行されても、Xとパイプライン化されているとはみなされないことに留意されたい。この状況が図7に図示されている。ターゲットAが、サイクル1からのWRITE ADDRE0に関連付けられたDATAE0の受入れを一時的に妨げるリソース衝突を有する場合、その後AはBUSY応答する。前述のアルゴリズムのステップ2では、REQ−RESP待ち時間が渡されるまではイニシエータがリソースの衝突について知ることができないことから、Aは、同じCONNID(この場合はCONNID 1)からの任意の他のパイプライン式転送も(BUSYを使用して)拒絶する必要がある。したがって、ターゲットAは、同じCONNIDを有し、イニシエータが第1の書込み転送へのBUSY応答を解釈する前に発行されたものであり、したがってパイプライン式転送であるので、サイクル3で発行されるWRITE ADDRE1にBUSY応答しなければならない。さらに、WRITE ADDRE0転送の第2の試行(サイクル4で発行される)は、たとえサイクル3のWRITE ADDRE1転送とオーバーラップしていても、パイプライン式転送ではないので、完了することができる。
【0039】
ターゲットAは、CMD値またはADDR値によってではなく、いつ発生したかおよびどのCONNIDを提示しているかによって、サイクル4の書込みが任意の以前の転送とパイプラインされていないと判定することに留意されたい。アルゴリズムのステップ1は、イニシエータが、所与の接続内で最も古い未発行で未リタイアの転送のみを発行することを保証する。したがって、いったん第1のWRITE ADDRE0がサイクル3でBUSY応答を受け取ると、その後は発行されないため、発行資格のある唯一のCONNID=1転送となる。したがって、初めのサイクル1転送がBUSY応答を受け取り、REQ−RESP待ち時間が2サイクルであることを考えると、正しく動作しているイニシエータがサイクル4でパイプライン式転送を発行するのは不可能である。
【0040】
イニシエータの一実施形態は、所与のCONNID内で、所望の転送からなる時間順に順序付けされた待ち行列を維持する。各転送は待ち行列に入るときに、未発行および未リタイアとしてマークされる。待ち行列内で直前のエントリが未リタイアであり同じターゲットを対象としている場合は、パイプライン済みとしてもマークされるが、そうでない場合は、新しい転送が未パイプラインとしてマークされる。転送が発行されるたびに、発行済みとしてマークされる。転送が完了すると(すなわちRESPサイクルが終了すると)、転送は未発行とマークされる。転送が首尾良く完了するとリタイア済みとしてマークされ、待ち行列から削除することができる。転送が首尾良く完了しないと、典型的には再試行されることになり、したがって再発行のためにアービトレーションに戻ることができる。転送が首尾良く完了せず、再試行もされない場合は、その後、次の転送が存在すれば、それが発行済みとしてマークされなくなるまでは、リタイア済みとしてマークしてはならない。この制約によって、イニシエータ論理が順序外れで発行するのを防ぐ。最も古い未リタイアの転送が発行されると、これは発行済みとしてマークされる。そのため、2番目に古い未リタイアの転送は、パイプライン済みとしてマークされていれば、最も古い転送が完了するまで(すなわち未発行であるとマークされるまで)発行をアービトレーションすることができる。
【0041】
ターゲット実施の一実施形態では、深さがREQ−RESP待ち時間と一致する、時間順に順序付けされた待ち行列を維持する。待ち行列はバス・クロックとは別に動作するため、待ち行列内で最も古いエントリは各バス・サイクルでリタイアし、同時に、新しいエントリが各バス・サイクルの待ち行列に加えられる。現在のREQ位相からのCONNIDが新しい待ち行列エントリにコピーされる。さらに、現在のREQ位相に(外部アドレスを介して)ターゲットを選択する有効な転送が含まれる場合は、新しい待ち行列エントリ内の「第1」フィールドおよび「ビジー」フィールドを設定することができるが、そうでない場合は第1ビットおよびビジー・ビットは消去される。第1ビットは、現在の転送が(リソースの衝突によって)BUSY応答を受け取り、待ち行列内にある前の転送が同じCONNIDを持っておらず、その第1ビット・セットを有する場合に、設定されることになる。第1ビットは、現在の転送が、強制的に順序付けするためにBUSY応答される必要のない、潜在的にパイプライン式の転送の第1セットであることを示唆するものである。ビジー・ビットは、ターゲットにリソース衝突があるか、または待ち行列内にある前の転送のうち1つが同じCONNIDを有し、第1ビット・セットを有する場合に、設定される。この論理は、REQ−RESPのパイプライン待ち時間を強制することで、イニシエータが最初にマークされた転送へのBUSY応答に反応できるまでは、ターゲットがパイプライン式転送を受け入れないことを保証するものである。
【0042】
通信システム内のイニシエータおよびターゲットにアルゴリズムを適用することで、トランザクションの順序付けを維持しながら、転送をパイプライン化する機能(これによって、接続当たりの帯域幅が増加し、総トランザクション待ち時間が減少する)を提供する。したがってこのアルゴリズムは、接続当たりの高性能を容易にするものである。パイプライン式バスの基本的なインターリーブ構造によって、複数の論理トランザクションが互いにオーバーラップすることが可能であり、その結果システム性能の改善が可能となり、接続当たりのピーク帯域幅を超えるシステム帯域幅を持続させることができる。たとえば、図8は、イニシエータEがあらゆる他のバス・サイクルでターゲットAにデータを転送する必要があり、イニシエータDがあらゆる他のバス・サイクルでターゲットBにデータを要求する、システム構成を実証する図である。通信システムは微細なインターリーブ(バス・サイクル当たり)をサポートするので、トランザクションはファンクション・ブロックの本来のデータ速度で発行する個々の転送からなり、これによって、ファンクション・ブロックにおけるバッファリング要件が少なくなり、システム・コストが削減される。この例の総システム帯域幅は、任意のファンクション・ブロックのピーク帯域幅の2倍であるため、高いシステム性能が実現する。
【0043】
本発明は、効率および予測精度の領域で、システム・レベルの改善を加えるものである。第1に、接続識別子は、ターゲットが、どの要求で順序どおりの動作を保持することを拒絶しなければならないかを選択できるようにする。システムは、同じCONNIDを有する転送間で順序付けを保証するだけでよく、そのためにターゲットはパイプライン式転送だけを(BUSYを使用して)拒絶すればよい。これは、ターゲットがたとえ特定のCONNIDを拒絶していても、他のCONNID値が示された転送を受け入れることができるという意味である。この状況は図9に示されており、イニシエータDからのインターリーブされた読取り転送を、図7のパイプライン式の書込み転送に追加するものである。図9に示した4つの転送はすべてターゲットAを選択し、そのAは、サイクル1で発行するWRITE ADDRE0が首尾良く完了するのを妨げるリソース衝突を有する。第1の書込みを拒絶すると、Aがサイクル4までCONNID 1から任意の他の転送を受け入れることを妨げるが、Aが十分なリソースを有する場合、サイクル2の関連のないREAD ADDRD0を受け入れることができる。したがって、(ターゲットAが接続を区別できない場合のような)無駄になるバス・サイクルの数が減少するため、全体的なシステム効率が上昇する。
【0044】
第2に、一実施形態では、接続識別子がターゲットにどの要求を拒絶するかを選択させることができる。ターゲットは、CONNID値に対する転送優先順位などの手段を関連付けることができるので、CONNID値とターゲットの内部状態との組み合わせに基づいて、どの要求に対して作用するかを決定する。たとえば、ターゲットは優先順位の異なる転送要求を格納するために、別々の待ち行列を有する場合がある。図9を参照すると、ターゲットは、優先順位の低い要求(奇数のCONNIDで示される)用の待ち行列と、優先順位の高い要求(偶数のCONNIDで示される)用の待ち行列とを有する場合がある。したがって、サイクル1のCONNID 1 WRITE ADDRE0要求は、優先順位の低い待ち行列が一杯であると拒絶されるが、CONNID 2 READ ADDRD0転送は、使用可能な優先順位の高い待ち行列リソースに基づいて、首尾良く完了することができる。このような転送優先順位の違いは、高度に統合された電子システムでは非常に一般的であり、品質の高いサービスを優先順位の高い転送要求に送達するターゲットの機能によって、システム全体の予測精度が大幅に向上する。
【0045】
図9で示唆しているように、前述のアルゴリズムによって、ターゲットは、複数のCONNID値からの同時の転送要求を積極的に満たすことができる。したがって、同じターゲットとの間で複数の論理トランザクションを交信することができるが、ただし、別々のCONNID値を有することを条件とする。したがって、本発明は、1つのターゲット・ファンクション・ブロックについて複数の接続をサポートする。
【0046】
さらに、イニシエータは、通信システムに複数のトランザクションを同時に提示する機能を必要とする場合がある。このような機能は、2つのターゲット間でデータを転送する、ダイレクト・メモリ・アクセス(DMA)デバイスなどのイニシエータにとって非常に有用である。このような応用例では、DMAイニシエータは、第1のCONNIDを使用して、読取りトランザクションをデータの発信元である第1のターゲットに提示し、さらに第2のCONNIDを使用して、書込みトランザクションをデータの宛先である第2のターゲットに提示する。転送レベルで、読取り転送および書込み転送をインターリーブすることができる。これによって、DMAイニシエータ内のデータ記憶域容量が減少し、システム・コストが削減される。このような配置構成が図10に示されている。ここでイニシエータEは、ターゲットAからのパイプライン式読取り転送と、ターゲットBへのパイプライン式書込み転送とをインターリーブする。したがって、本発明は、1つのイニシエータ・ファンクション・ブロックについて複数の接続をサポートする。
【0047】
アルゴリズムに関して上記で述べたように、本発明の実施をサポートするのに必要な制御構造は単純であり、効率の良い微細な転送のインターリーブを提供しない従来のプロトコルに関連付けられたデータ・バッファリング領域よりも、少ない領域しか必要としない。したがって本発明は、通信システムの領域および複雑さを最小限にすると同時に、高い性能およびフレキシビリティを発揮するものである。
【0048】
最終的に、転送優先順位などの有用な情報を提供しながらも、実施コストを最小にするために、典型的には特定のイニシエータ・トランザクションに関連付けられたCONNID値を選択しなければならない。システム設計時に特有のCONNID値を選択することが有用であり、その結果、その値は固有であることが保証可能であって、比較および他の動作を簡単にするために順序付けることができる。さらに、システムの性能および予測精度のアスペクトを変更できるように、通信動作中にCONNID値を変更できることがしばしば有用である。本発明の好ましい実施形態は、CONNID値をファンクション・ブロックのROMまたはRAMリソース内に格納することによって、フレキシブルなシステム構成を可能にし、その結果、システム構築時またはシステム実行時のどちらでも容易に再構成することができる。
【0049】
図11は、図4に示されたような2地点間相互接続である相互接続1010を示す図である。相互接続1010には、図5を参照しながら説明したプロトコルと比較される追加の信号が含まれる。以下で説明するように、追加信号の中には、相互接続1010のような2地点間相互接続を介して送られる信号として特に有用なものがある。相互接続1010のプロトコルは、専用(非共用)の相互接続を介したマスター・エンティティ1102とスレーブ・エンティティ1104との間の2地点間転送を制御する。図4を参照すると、マスタ・エンティティはたとえばイニシエータ・ファンクション・ブロック1002またはターゲット・インターフェース・モジュール1006であってよい。スレーブ・エンティティは、たとえばイニシエータ・インターフェース・モジュール1004またはターゲット・ファンクション・ブロック1008であってよい。
【0050】
図11に示された信号には、信号名が符号付けされる。さらに、信号名の中には、後に、丸括弧または角括弧で囲まれた記号が続くものもある。記号とは、次のものである。
(I)この信号はオプションであり、独立して構成可能である。
(A)この信号は、同じ記号を有する信号とともに構成されなければならない。
(AI)この信号は、(A)インターフェース・モジュールが存在する場合は、独立して構成可能である。
[#]最大信号幅である。
【0051】
クロック信号は、接続されたファンクション・ブロックのクロックである。コマンド(Cmd)信号は、バス上の転送タイプを示す。コマンドは、データとは無関係に発行することができる。アドレス(Addr)信号は、典型的にはイニシエータ・ファンクション・ブロックがアクセスしようとする特定のリソースを示すものである。要求受入れ(ReqAccept)はハンドシェイク信号であり、これによってスレーブ1104は、マスター1102が1つの転送からCmd、Addr、およびDataOutをリリースし、それらを他の転送用に再使用できるようにする。スレーブ1104がビジーであり要求された転送に参加できない場合、マスター1102はCmd、Addr、およびDataOutの提示を継続しなければならない。DataOutは、典型的には書込み転送において、マスターからスレーブに送信されたデータである。DataInは、典型的には読取りデータを搬送する。
【0052】
応答(Resp)およびDataInは、スレーブ1104からマスター1102に送信された信号である。Respは、スレーブ1104によって受け取られた転送要求が処理されたことを示す。応答受入れ(RespAccept)は、マスターがスレーブのRespおよびDataInのリリースを可能にするものであるかどうかを示すのに使用される、ハンドシェイク信号である。
【0053】
一実施形態では、信号Clock、Cmd、Addr、DataOut、ReqAccept、Resp、DataIn、およびRespAcceptが、インターフェース・モジュール信号の基本セットを形成する。ファンクション・ブロックの中には、この基本セットが通信目的に適しているものもある。
【0054】
他の実施形態では、バス1012の残りの信号の一部またはすべてが使用される場合がある。一実施形態では、Widthは、転送の幅を示す3ビット信号であり、可変幅の転送を含む接続で有用である。Burstはマルチビット信号であり、接続内で個々のコマンドを関連付けることができる。Burstは、今後の転送数、および予測される任意のアドレス・パターンなど、将来の転送の性質を示すものである。Burstには標準のエンド・マーカーがある。Burstフィールドの一部のビットは、ユーザ定義フィールド用に予約されるため、通信は、接続内にある特有のプロトコルの一部詳細について知らなくてもかまわない。
【0055】
割込みおよびエラー信号は、ほとんどのコンピュータ・システムで重要な部分である。イニシエータまたはターゲットのファンクション・ブロックによって生成される割込みおよびエラー信号が図示されているが、その機能性の詳細は特定ファンクション・ブロックの性質によって異なり、本発明を理解する上で重要ではない。
【0056】
一実施形態では、要求スレッド識別子(ReqThreadID)は4ビット信号であり、スレーブ1104用に意図された現在のトランザクションに関連付けられたスレッド番号を提供する。特定のスレッドIDで実行されるすべてのコマンドは、相互に関しては順序どおりに実行しなければならないが、他のスレッドからのコマンドに関しては順序外れで実行することができる。応答スレッド識別子(RespThreadID)は、現在の応答に関連付けられたスレッド番号を提供する。スレッド内の応答は他のスレッドに関して順序外れで返される場合があるので、RespThreadIDは、どのスレッドのコマンドに応答するのかを識別する必要がある。一実施形態では、ReqThreadIDおよびRespThreadIDはオプションの信号であるが、使用する場合は両方とも使用しなければならない。
【0057】
要求スレッド・ビジー(ReqThreadBusy)は、スレーブがマスターに対して、ある種のスレッドに関連付けられたいずれかの新しい要求が実行できないことを示せるようにするものである。一実施形態では、ReqThreadBusy信号は、スレッド当たり1つの信号を有するベクトルであり、アサートされた信号は、関連付けられたスレッドがビジーであることを示す。
【0058】
応答スレッド・ビジー(RespThreadBusy)は、マスターがスレーブに対して、ある種のスレッドに関連付けられたいずれかの(たとえば読取りに関する)応答が実行できないことを示せるようにするものである。RespThreadBusy信号は、スレッド当たり1つの信号を有するベクトルであり、アサートされた信号は、関連付けられたスレッドがビジーであることを示す。
【0059】
要求接続識別子(ReqConnID)は、ターゲット用に意図された現在のトランザクションに関連付けられたCONNIDを提供する。CONNIDは、それによってシステム・エンティティが特定のトランザクションをシステム・エンティティに関連付けることができるメカニズムを提供する。CONNIDの使用法の1つは、様々なイニシエータ間で要求の優先順位を確立することである。他の使用法は、アクションまたはデータ転送を、トランザクション要求で提示されたアドレスではなく、イニシエータ・アイデンティティに関連付けることである。
【0060】
図11の実施形態は、CONNIDに終端間接続識別を提供し、さらにThread IDに2地点間識別またはよりローカルな識別を提供する。Thread IDは、インターフェース・モジュールとその接続されたファンクション・ブロックとの間の転送を単純に識別するローカル範囲の識別子である。対照的に、CONNIDは、2つのインターフェース・モジュール(および必要であればそれらの接続されたファンクション・ブロック)間の転送を識別するグローバル範囲の識別子である。
【0061】
Thread IDは、接続されたインターフェース・モジュールおよびファンクション・ブロック内のテーブルに直接インデックス付けできるように十分小さいものでなければならない。対照的に、通常システム内には、インターフェース・モジュールが同時に受け入れるように調整されている数よりも多くのCONNIDがある。ThreadIDの代わりにCONNIDを使用するには、返されたCONNIDを特定の要求またはバッファ・エントリと関連付けるために、インターフェース・モジュール内に費用のかかる突き合わせ論理が必要である。
【0062】
ネットワーキングの類似性を使用すると、Thread IDはレベル2(データ・リンク層)の概念であり、これに対してCONNIDは、よりレベル3(移送/セッション層)の概念に似ている。ファンクション・ブロックの中には、レベル2でのみ動作するものもあるため、ファンクション・ブロックまたはそのインターフェース・モジュールに、レベル3のリソースを処理する費用を負担させることは望ましくない。あるいは、ファンクション・ブロックの中にはレベル3の接続機能を必要とするものもあるため、この場合は、CONNIDをファンクション・ブロックに渡すことが実用的である。
【0063】
図4を参照すると、CONNIDは、共用通信バス1012上をインターフェース・モジュール1004と1006との間で転送される場合、固有である必要がある。CONNIDは、相互接続1010などのローカル相互接続を介して送ることができる。ただし多くの場合、ファンクション・ブロックとそのインターフェース・モジュールとの間でThread IDのみを使用する方がかなり効率的である。たとえば、イニシエータ・ファンクション・ブロック1002は、CONNIDによって提供されるすべての情報は必要としない場合がある。また、システムによっては、同じCONNIDを備えた同一のイニシエータ・ファンクション・ブロック1002が複数存在するため、イニシエータ・インターフェース・モジュール1004内の論理が、「ローカル」CONNIDを固有の「グローバル」CONNIDに変換しない限り、転送を受け取る特定のターゲット・ファンクション・ブロック1008には、実際にはそれがどの接続の一部であるかがわからないことになる。インターフェース・モジュール内でのこのような変換機能の設計および実施は、複雑で費用のかかるものである。このような場合、CONNIDは、共用通信バス1012を介してインターフェース・モジュール間で送られる可能性があり、Thread IDはファンクション・ブロックとインターフェース・モジュールとの間で送られる。
【0064】
イニシエータ・ファンクション・ブロックの場合、Thread IDとCONNIDとの間に、1対1の静的対応が存在する場合がある。たとえば、Thread IDが「1」の場合、特定のインターフェース・モジュールに単一のCONNIDがマッピングされ、同一のファンクション・ブロックが複数あるという問題は解決される。
【0065】
ターゲット・ファンクション・ブロックの場合、Thread IDとCONNIDとの間に、1対1の動的対応が存在する。ターゲット・ファンクション・ブロックが2つの同時スレッドをサポートしている場合、ターゲット・インターフェース・モジュールはオープン接続のCONNIDを獲得し、それを必要に応じてスレッドに関連付ける。たとえば、ターゲット・インターフェース・モジュールはCONNID「7」を受け取った後、CONNID 7をスレッド「0」にマッピングする。その後、接続7が閉じるまで、CONNID 7を伴うすべての転送がスレッド0に関連付けられる。
【0066】
Thread IDの使用法の一例である図12を参照し、システム内に一連の同じダイレクト・メモリ・アクセス(DMA)エンジンがあると考えてみる。図12では、要素1202は同一のDMAエンジンであり、それぞれがイニシエータ・インターフェース・モジュール1204に接続される。イニシエータ・インターフェース・モジュール1204は共用通信バス1212に接続される。ターゲット・インターフェース・モジュール1206も共用通信バス1212に接続され、バス1212からのデータをターゲット・ファンクション・ブロックであるDRAM制御装置1208に伝送する。ターゲット・インターフェース・モジュール1206は相互接続1214によってDRAM制御装置1208に接続される。DRAM制御装置1208が、DRAM 1213へのアクセスを制御する。
【0067】
DMAエンジンは、ターゲット・ファンクション・ブロックとしても機能するイニシエータ・ファンクション・ブロックの一例である。DMAエンジンはソフトウェアによってプログラムされると、ターゲットとして作用する。その後、DMAエンジンはイニシエータとなる。DMAエンジンは読取り動作および書込み動作の両方を実行するため、2つの接続を単一のDMAエンジンに関連付けることができる。DMAエンジン内で何らかのバッファリングが使用可能であれば、読取り動作および書込み動作が減結合され、その結果、どちらのタイプの動作も同時に実行することができる。待ち時間の長い記憶デバイスから読取りが発生する可能性があり、書込み動作がデータを書き込む前に、読取りデータをDMAエンジン上のバッファに入れる必要がある。一実施形態では、それぞれのDMAエンジン1202がThread IDを使用して読み取りストリームを識別し、別のThread IDを使用して書込みストリームを識別する。DMAエンジンは、他のどのファンクション・ブロックがトランザクションに参加しているかなどの、その他の情報を必要としない。したがってCONNIDを、DMAエンジン1202から、接続されたインターフェース・モジュール1204に送る必要がない。Thread IDのCONNIDへのマッピングが、インターフェース・モジュール1204内で発生する。
【0068】
一実施形態では、各イニシエータ・インターフェース・モジュール1204が、接続されたDMAエンジン1202から、固有のCONNIDを2つのThread IDそれぞれにマッピングする。それぞれのDMAエンジン1202は、たとえば図11のThread IDなどの単一ビットを使用して、2つのスレッドを区別する。共用通信バスを介したそれぞれの転送について、固有のCONNIDがターゲット・インターフェース・モジュール1206に送られる。CONNIDは、たとえばグラフィック・データに関する要求には高い優先順位を割り当てることなどの、優先順位情報を含むことができる。優先順位の高いグラフィック・データは、DRAM制御装置1208によって即時に処理されるが、優先順位の低い要求は待機が必要な可能性がある。
【0069】
インターフェース・モジュールおよび通信プロトコルはインテリジェンスを組み込んで設計されるため、DRAM制御装置1208およびDMAエンジン1202などのファンクション・ブロックには、あまりインテリジェンスが要求されない。これには、システムが展開していくときに、ファンクション・ブロックをより移植可能または再使用可能にする利点がある。たとえば、単にそれぞれの接続されたインターフェース・モジュールを変更するだけで、優先度の高いアプリケーションに使用されるDMAエンジンと、優先度の低いアプリケーションに使用されるDMAエンジンを交換することができる。
【0070】
一実施形態では、ターゲット・インターフェース・モジュールおよびイニシエータ・インターフェース・モジュールがトランジスタ・レベルでプログラムされるので、CONNID割当てを含む精密な機能がパワーアップ時に固定される。他の実施形態では、インターフェース・モジュールの設計がRAMに入っているため、インターフェース・モジュールは再プログラム可能なリソースである。この場合、インターフェース・モジュールは、ソフトウェアによるCONNIDの再割当てを含み、再プログラムされる。
【0071】
以上、本発明を特有の実施形態に関して述べた。たとえば、本発明の実施形態を、特定の信号を有するプロトコルを含む特定構成のシステムとして示してきた。当技術分野の通常の技術者であれば、特許請求の範囲で述べたように、本発明の精神および範囲を逸脱することなく、様々なシステム構成および様々な信号が使用できることを理解されよう。
【図面の簡単な説明】
【図1】 本発明による複雑な電子システムの一実施形態を示す構成図である。
【図2】 システム・モジュールの一実施形態を示す図である。
【図3】 システム・モジュールの一実施形態を示す図である。
【図4】 通信バスの一実施形態を示す図である。
【図5】 パイプライン式の書込み転送を示すタイミング図である。
【図6】 第1のパイプライン式書込み転送の拒絶と、第2の書込み転送の成功を示すタイミング図である。
【図7】 パイプライン式の読取りおよび書込み転送のインターリーブを示すタイミング図である。
【図8】 単一ターゲットへのインターリーブされた接続を示すタイミング図である。
【図9】 単一イニシエータからのインターリーブされた接続を示すタイミング図である。
【図10】 コンピュータ・システムの一部の一実施形態を示す構成図である。
【図11】 通信バスの一実施形態を示す図である。
【図12】 コンピュータ・システムの一部の一実施形態を示す構成図である。
Claims (8)
- 少なくとも2つのファンクション・ブロックであって、第1のファンクション・ブロックが接続を確立することによって第2のファンクション・ブロックと通信し、その接続は、第1のファンクション・ブロックと第2のファンクション・ブロックとの間でデータを渡すことができる論理状態である、少なくとも2つのファンクション・ブロックと、
インターフェース・モジュール間で複数の信号を搬送するように構成されている通信媒体と、
データ転送がその一部であるトランザクション・ストリームを示すスレッド識別子を有する転送要求を送信するように構成されているイニシエータ・ファンクション・ブロックと、
通信媒体に結合されており、またイニシエータ・ファンクション・ブロック転送要求を受信するために結合されているイニシエータ・インターフェース・モジュールであって、前記イニシエータ・インターフェース・モジュールは受信したスレッド識別子を接続識別子にマッピングし、前記接続識別子は通信媒体を介してイニシエータ・インターフェース・モジュールから転送要求と共に送信されるよう構成されており、接続識別子は、転送優先順位と、転送順序と、転送が発せられたファンクション・ブロックとを含む情報を符号化するマルチビット値を含み、接続識別子は、イニシエータ・ファンクション・ブロックに関連付けられた複数の接続識別子の1つであるイニシエータ・インターフェース・モジュールと、
通信媒体に結合されており、かつターゲット・ファンクション・ブロックに結合されているターゲット・インターフェース・モジュールと
を含むことを特徴とする通信システム。 - 少なくとも1つのバスをさらに含み、各バスがインターフェース・モジュールをその関連付けられたファンクション・ブロックに結合し、バスが複数の信号回線を含み、スレッド識別子が複数の信号回線の少なくとも1つを介して通信されることを特徴とする請求項1に記載の通信システム。
- スレッド識別子が、ターゲット・インターフェース・モジュールからターゲット・ファンクション・ブロックに、またイニシエータ・インターフェース・モジュールからイニシエータ・ファンクション・ブロックに送信されることを特徴とする請求項1に記載の通信システム。
- 通信システムにおいて:
少なくとも2つのファンクション・ブロックであって、第1のファンクション・ブロックが接続を確立することによって第2のファンクション・ブロックと通信し、その接続が第1のファンクション・ブロックと第2のファンクション・ブロックとの間でデータを渡すことができる論理状態である、少なくとも2つのファンクション・ブロックと、
インターフェース・モジュール間で複数の信号を搬送するように構成されている通信媒体と、
転送要求を送信するように構成されているイニシエータ・ファンクション・ブロックと、
イニシエータ・ファンクション・ブロックと通信媒体に結合されたイニシエータ・インターフェース・モジュールと、
転送要求に応答するターゲット・ファンクション・ブロックと、
ターゲット・ファンクション・ブロックと通信媒体に結合されたターゲット・インターフェース・モジュールと、
イニシエータ・インターフェース・モジュールからターゲット・インターフェース・モジュールに転送要求と共に送信されるように構成された接続識別子であって、転送優先順位と、転送順序と、転送が発せられたファンクション・ブロックとを含む情報を符号化するマルチビット値を含み、イニシエータ・ファンクション・ブロックに関連付けられた複数の接続識別子の1つであり、イニシエータ・インターフェース・モジュールによってスレッド識別子にマッピングされた接続識別子と
を含むことを特徴とする通信システム。 - 接続識別子は、同時接続をサポートするターゲット・ファンクション・ブロックに関連付けられた複数の接続識別子の1つであり、ターゲット・ファンクション・ブロックは、オープン接続の接続識別子を取得し、接続識別子をスレッド識別子にマッピングすることを特徴とする請求項4に記載の通信システム。
- スレッド識別子は、ターゲット・インターフェース・モジュールからターゲット・ファンクション・ブロックに、またイニシエータ・インターフェース・モジュールからイニシエータ・ファンクション・ブロックに送信されるように構成されており、接続識別子は、ターゲット・インターフェース・モジュールからターゲット・ファンクション・ブロックに、さらにイニシエータ・インターフェース・モジュールからイニシエータ・ファンクション・ブロックに送信されるように構成されていることを特徴とする請求項4に記載の通信システム。
- 通信媒体を介して通信されるように構成され、データ転送がその一部であるトランザクション・ストリームを示すスレッド識別子をさらに含み、
接続識別子がイニシエータ・インターフェース・モジュールによってスレッド識別子からマッピングされることを特徴とする請求項4に記載の通信システム。 - 少なくとも2つのファンクション・ブロックであって、第1のファンクション・ブロックが接続を確立することによって第2のファンクション・ブロックと通信し、その接続は、第1のファンクション・ブロックと第2のファンクション・ブロックとの間でデータを渡すことができる論理状態である、少なくとも2つのファンクション・ブロックと、
インターフェース・モジュールに結合されており、モジュール間で第1の複数の信号を搬送するように構成されている通信媒体と、
それぞれがインターフェース・モジュールをその関連付けられたファンクション・ブロックに結合し、複数の信号回線を含む少なくとも1つのバスであって、複数の信号回線は、データ転送がその一部であるトランザクション・ストリームを示すスレッド識別子(ID)と、ターゲット・ファンクション・ブロック用に意図された現在のトランザクションに関連付けられたスレッド番号を示す要求スレッドID信号と、ターゲット・ファンクション・ブロックからの転送がその一部であるスレッドを示す応答スレッドID信号と、ターゲット・ファンクション・ブロックがある種のスレッドに関連付けられた新しい要求を受信できないことをイニシエータ・ファンクション・ブロックに示す要求スレッド・ビジー信号と、イニシエータ・ファンクション・ブロックが、ある種のスレッドに関連付けられたターゲット・ファンクション・ブロックからのどんな新しい応答も受信できないことを示す応答スレッド・ビジー信号とを含む少なくとも1つのバスと
を含むことを特徴とする通信システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/191,291 | 1998-11-13 | ||
US09/191,291 US6182183B1 (en) | 1998-11-13 | 1998-11-13 | Communications system and method with multilevel connection identification |
PCT/US1999/026901 WO2000029961A1 (en) | 1998-11-13 | 1999-11-12 | Communications system and method with multilevel connection identification |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002530744A JP2002530744A (ja) | 2002-09-17 |
JP2002530744A5 JP2002530744A5 (ja) | 2005-12-15 |
JP4083987B2 true JP4083987B2 (ja) | 2008-04-30 |
Family
ID=22704891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000582902A Expired - Lifetime JP4083987B2 (ja) | 1998-11-13 | 1999-11-12 | 多重レベル接続識別を備えた通信システム |
Country Status (7)
Country | Link |
---|---|
US (5) | US6182183B1 (ja) |
EP (2) | EP2306328B1 (ja) |
JP (1) | JP4083987B2 (ja) |
AT (1) | ATE551654T1 (ja) |
AU (1) | AU2148900A (ja) |
TW (1) | TW480855B (ja) |
WO (1) | WO2000029961A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647441B2 (en) | 1998-11-13 | 2010-01-12 | Sonics, Inc. | Communications system and method with multilevel connection identification |
Families Citing this family (115)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6338103B1 (en) * | 1999-03-24 | 2002-01-08 | International Business Machines Corporation | System for high-speed data transfer using a sequence of overlapped global pointer signals for generating corresponding sequence of non-overlapped local pointer signals |
US6725441B1 (en) * | 2000-03-22 | 2004-04-20 | Xilinx, Inc. | Method and apparatus for defining and modifying connections between logic cores implemented on programmable logic devices |
US7162615B1 (en) | 2000-06-12 | 2007-01-09 | Mips Technologies, Inc. | Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch |
US7325221B1 (en) | 2000-08-08 | 2008-01-29 | Sonics, Incorporated | Logic system with configurable interface |
DE10055163B4 (de) * | 2000-11-08 | 2013-01-03 | Bayerische Motoren Werke Aktiengesellschaft | Datenbus, insbesondere in Kraftfahrzeugen |
US6634016B1 (en) * | 2000-12-01 | 2003-10-14 | Advanced Micro Devices, Inc. | Arrangement for partitioning logic into multiple field programmable gate arrays |
US7165094B2 (en) * | 2001-03-09 | 2007-01-16 | Sonics, Inc. | Communications system and method with non-blocking shared interface |
US6785753B2 (en) * | 2001-06-01 | 2004-08-31 | Sonics, Inc. | Method and apparatus for response modes in pipelined environment |
US20030004699A1 (en) * | 2001-06-04 | 2003-01-02 | Choi Charles Y. | Method and apparatus for evaluating an integrated circuit model |
US7487505B2 (en) * | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
US7225281B2 (en) * | 2001-08-27 | 2007-05-29 | Intel Corporation | Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms |
US6868476B2 (en) * | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
US7216204B2 (en) * | 2001-08-27 | 2007-05-08 | Intel Corporation | Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment |
US6857035B1 (en) * | 2001-09-13 | 2005-02-15 | Altera Corporation | Methods and apparatus for bus mastering and arbitration |
US7610451B2 (en) * | 2002-01-25 | 2009-10-27 | Intel Corporation | Data transfer mechanism using unidirectional pull bus and push bus |
JP3759054B2 (ja) * | 2002-03-01 | 2006-03-22 | Necエレクトロニクス株式会社 | バスシステム |
US7356633B2 (en) * | 2002-05-03 | 2008-04-08 | Sonics, Inc. | Composing on-chip interconnects with configurable interfaces |
US7254603B2 (en) * | 2002-05-03 | 2007-08-07 | Sonics, Inc. | On-chip inter-network performance optimization using configurable performance parameters |
US7194566B2 (en) * | 2002-05-03 | 2007-03-20 | Sonics, Inc. | Communication system and method with configurable posting points |
US7302691B2 (en) * | 2002-05-10 | 2007-11-27 | Sonics, Incorporated | Scalable low bandwidth multicast handling in mixed core systems |
US6880133B2 (en) * | 2002-05-15 | 2005-04-12 | Sonics, Inc. | Method and apparatus for optimizing distributed multiplexed bus interconnects |
US7337275B2 (en) * | 2002-08-13 | 2008-02-26 | Intel Corporation | Free list and ring data structure management |
US6976106B2 (en) * | 2002-11-01 | 2005-12-13 | Sonics, Inc. | Method and apparatus for speculative response arbitration to improve system latency |
US7243264B2 (en) * | 2002-11-01 | 2007-07-10 | Sonics, Inc. | Method and apparatus for error handling in networks |
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 |
US7603441B2 (en) * | 2002-12-27 | 2009-10-13 | Sonics, Inc. | Method and apparatus for automatic configuration of multiple on-chip interconnects |
US20040210696A1 (en) * | 2003-04-18 | 2004-10-21 | Meyer Michael J. | Method and apparatus for round robin resource arbitration |
US7149829B2 (en) * | 2003-04-18 | 2006-12-12 | Sonics, Inc. | Various methods and apparatuses for arbitration among blocks of functionality |
EP1623330A2 (en) * | 2003-05-07 | 2006-02-08 | Koninklijke Philips Electronics N.V. | Processing system and method for transmitting data |
CN100390771C (zh) * | 2003-05-07 | 2008-05-28 | 皇家飞利浦电子股份有限公司 | 用于发送数据的处理系统和方法 |
WO2004100005A1 (en) * | 2003-05-08 | 2004-11-18 | Koninklijke Philips Electronics N.V. | Processing system and method for communicating data |
US7194658B2 (en) * | 2003-07-24 | 2007-03-20 | Sonics, Inc. | Various methods and apparatuses for interfacing of a protocol monitor to protocol checkers and functional checkers |
US8949548B2 (en) * | 2003-09-12 | 2015-02-03 | Broadcom Corporation | System and method of sharing memory by arbitrating through an internal data bus |
US7296105B2 (en) * | 2003-10-03 | 2007-11-13 | Sonics, Inc. | Method and apparatus for configuring an interconnect to implement arbitration |
US9087036B1 (en) | 2004-08-12 | 2015-07-21 | Sonics, Inc. | Methods and apparatuses for time annotated transaction level modeling |
US8504992B2 (en) * | 2003-10-31 | 2013-08-06 | Sonics, Inc. | Method and apparatus for establishing a quality of service model |
US7213099B2 (en) * | 2003-12-30 | 2007-05-01 | Intel Corporation | Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches |
US7770179B1 (en) | 2004-01-30 | 2010-08-03 | Xilinx, Inc. | Method and apparatus for multithreading on a programmable logic device |
US7552042B1 (en) | 2004-01-30 | 2009-06-23 | Xilinx, Inc. | Method for message processing on a programmable logic device |
US7185309B1 (en) | 2004-01-30 | 2007-02-27 | Xilinx, Inc. | Method and apparatus for application-specific programmable memory architecture and interconnection network on a chip |
US7228520B1 (en) | 2004-01-30 | 2007-06-05 | Xilinx, Inc. | Method and apparatus for a programmable interface of a soft platform on a programmable logic device |
US7823162B1 (en) | 2004-01-30 | 2010-10-26 | Xilinx, Inc. | Thread circuits and a broadcast channel in programmable logic |
US7353484B1 (en) * | 2004-02-09 | 2008-04-01 | Altera Corporation | Methods and apparatus for variable latency support |
US7543088B2 (en) * | 2004-03-11 | 2009-06-02 | Sonics, Inc. | Various methods and apparatuses for width and burst conversion |
US7475168B2 (en) * | 2004-03-11 | 2009-01-06 | Sonics, Inc. | Various methods and apparatus for width and burst conversion |
US7136987B2 (en) * | 2004-03-30 | 2006-11-14 | Intel Corporation | Memory configuration apparatus, systems, and methods |
FR2870373B1 (fr) * | 2004-05-13 | 2006-07-28 | St Microelectronics Sa | Gestion du gel d'un module fonctionnel dans un systeme sur une puce |
US7254658B2 (en) * | 2004-06-08 | 2007-08-07 | Arm Limited | Write transaction interleaving |
WO2006042108A1 (en) * | 2004-10-11 | 2006-04-20 | Texas Instruments Incorporated | Multi-threaded direct memory access |
EP1645968B1 (en) | 2004-10-11 | 2008-03-19 | Texas Instruments Incorporated | Multi-threaded DMA |
EP1645967B1 (en) * | 2004-10-11 | 2008-02-27 | Texas Instruments Incorporated | Multi-channel DMA with shared FIFO buffer |
WO2006042261A1 (en) * | 2004-10-11 | 2006-04-20 | Texas Instruments Incorporated | Multi-channel direct memory access with shared first-in-first-out memory |
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 |
US8032676B2 (en) * | 2004-11-02 | 2011-10-04 | Sonics, Inc. | Methods and apparatuses to manage bandwidth mismatches between a sending device and a receiving device |
US7155554B2 (en) * | 2004-11-02 | 2006-12-26 | Sonics, Inc. | Methods and apparatuses for generating a single request for block transactions over a communication fabric |
US7277975B2 (en) * | 2004-11-02 | 2007-10-02 | Sonics, Inc. | Methods and apparatuses for decoupling a request from one or more solicited responses |
WO2006048826A1 (en) * | 2004-11-08 | 2006-05-11 | Koninklijke Philips Electronics N.V. | Integrated circuit and method for data transfer in a network on chip environment |
US7644201B2 (en) * | 2004-11-17 | 2010-01-05 | International Business Machines Corporation | Method and system for performance enhancement via transaction verification using a counter value in a polled data storage environment |
US20060225015A1 (en) * | 2005-03-31 | 2006-10-05 | Kamil Synek | Various methods and apparatuses for flexible hierarchy grouping |
JP2006344017A (ja) * | 2005-06-09 | 2006-12-21 | Hitachi Ltd | センサネットワークシステム及びセンサネットワークのデータ処理方法 |
US7694249B2 (en) * | 2005-10-07 | 2010-04-06 | Sonics, Inc. | Various methods and apparatuses for estimating characteristics of an electronic system's design |
JP4701152B2 (ja) * | 2006-10-20 | 2011-06-15 | 富士通株式会社 | データ中継装置、データ中継方法およびデータ中継プログラム |
US8020124B2 (en) * | 2006-11-20 | 2011-09-13 | Sonics, Inc. | Various methods and apparatuses for cycle accurate C-models of components |
US8868397B2 (en) * | 2006-11-20 | 2014-10-21 | Sonics, Inc. | Transaction co-validation across abstraction layers |
US20080120082A1 (en) * | 2006-11-20 | 2008-05-22 | Herve Jacques Alexanian | Transaction Co-Validation Across Abstraction Layers |
US7814243B2 (en) * | 2007-06-01 | 2010-10-12 | Sonics, Inc. | Shared storage for multi-threaded ordered queues in an interconnect |
US8296430B2 (en) | 2007-06-18 | 2012-10-23 | International Business Machines Corporation | Administering an epoch initiated for remote memory access |
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 |
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 |
EP2026500B1 (en) * | 2007-08-13 | 2010-01-06 | Accenture Global Services GmbH | Message sequence management of enterprise based correlated events |
US8713569B2 (en) * | 2007-09-26 | 2014-04-29 | Intel Corporation | Dynamic association and disassociation of threads to device functions based on requestor identification |
US9065839B2 (en) * | 2007-10-02 | 2015-06-23 | International Business Machines Corporation | Minimally buffered data transfers between nodes in a data communications network |
US20090113308A1 (en) * | 2007-10-26 | 2009-04-30 | Gheorghe Almasi | Administering Communications Schedules for Data Communications Among Compute Nodes in a Data Communications Network of a Parallel Computer |
US8229723B2 (en) * | 2007-12-07 | 2012-07-24 | Sonics, Inc. | Performance software instrumentation and analysis for electronic design automation |
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 |
US8001510B1 (en) * | 2008-09-05 | 2011-08-16 | Xilinx, Inc. | Automated method of architecture mapping selection from constrained high level language description via element characterization |
JP5445073B2 (ja) * | 2009-11-27 | 2014-03-19 | セイコーエプソン株式会社 | 複数の記憶装置を備えるシステム及びそのためのデータ転送方法 |
US20110213949A1 (en) * | 2010-03-01 | 2011-09-01 | Sonics, Inc. | Methods and apparatus for optimizing concurrency in multiple core systems |
US8365186B2 (en) | 2010-04-14 | 2013-01-29 | International Business Machines Corporation | Runtime optimization of an application executing on a parallel computer |
US8504730B2 (en) * | 2010-07-30 | 2013-08-06 | International Business Machines Corporation | Administering connection identifiers for collective operations in a parallel computer |
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 |
JP5644443B2 (ja) * | 2010-12-03 | 2014-12-24 | 富士通株式会社 | 通信装置及び二重化方法 |
US8565120B2 (en) | 2011-01-05 | 2013-10-22 | International Business Machines Corporation | Locality mapping in a distributed processing system |
US9317637B2 (en) | 2011-01-14 | 2016-04-19 | International Business Machines Corporation | Distributed hardware device simulation |
US8689228B2 (en) | 2011-07-19 | 2014-04-01 | International Business Machines Corporation | Identifying data communications algorithms of all other tasks in a single collective operation in a distributed processing system |
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 |
US8514889B2 (en) | 2011-08-26 | 2013-08-20 | Sonics, Inc. | Use of common data format to facilitate link width conversion in a router with flexible link widths |
US9021156B2 (en) | 2011-08-31 | 2015-04-28 | Prashanth Nimmala | Integrating intellectual property (IP) blocks into a processor |
US8930602B2 (en) | 2011-08-31 | 2015-01-06 | Intel Corporation | Providing adaptive bandwidth allocation for a fixed priority arbiter |
US9250948B2 (en) | 2011-09-13 | 2016-02-02 | International Business Machines Corporation | Establishing a group of endpoints in a parallel computer |
US8868941B2 (en) | 2011-09-19 | 2014-10-21 | Sonics, Inc. | Apparatus and methods for an interconnect power manager |
US8713240B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Providing multiple decode options for a system-on-chip (SoC) fabric |
US8711875B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Aggregating completion messages in a sideband interface |
US8775700B2 (en) | 2011-09-29 | 2014-07-08 | Intel Corporation | Issuing requests to a fabric |
US8874976B2 (en) | 2011-09-29 | 2014-10-28 | Intel Corporation | Providing error handling support to legacy devices |
US8929373B2 (en) | 2011-09-29 | 2015-01-06 | Intel Corporation | Sending packets with expanded headers |
US8713234B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Supporting multiple channels of a single interface |
US8805926B2 (en) | 2011-09-29 | 2014-08-12 | Intel Corporation | Common idle state, active state and credit management for an interface |
US9053251B2 (en) | 2011-11-29 | 2015-06-09 | Intel Corporation | Providing a sideband message interface for system on a chip (SoC) |
US9348775B2 (en) | 2012-03-16 | 2016-05-24 | Analog Devices, Inc. | Out-of-order execution of bus transactions |
US9910454B2 (en) | 2012-06-07 | 2018-03-06 | Sonics, Inc. | Synchronizer with a timing closure enhancement |
US9225665B2 (en) * | 2012-09-25 | 2015-12-29 | Qualcomm Technologies, Inc. | Network on a chip socket protocol |
US10152112B2 (en) | 2015-06-10 | 2018-12-11 | Sonics, Inc. | Power manager with a power switch arbitrator |
US10911261B2 (en) | 2016-12-19 | 2021-02-02 | Intel Corporation | Method, apparatus and system for hierarchical network on chip routing |
US10846126B2 (en) | 2016-12-28 | 2020-11-24 | Intel Corporation | Method, apparatus and system for handling non-posted memory write transactions in a fabric |
DE102017217908A1 (de) * | 2017-10-09 | 2019-04-11 | Robert Bosch Gmbh | Recheneinheit und Betriebsverfahren hierfür |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4564899A (en) * | 1982-09-28 | 1986-01-14 | Elxsi | I/O Channel bus |
US4706190A (en) * | 1983-09-22 | 1987-11-10 | Digital Equipment Corporation | Retry mechanism for releasing control of a communications path in digital computer system |
JPS6132162A (ja) | 1984-07-24 | 1986-02-14 | Fuji Photo Film Co Ltd | 情報転送の競合防止回路 |
US5101479A (en) * | 1989-07-21 | 1992-03-31 | Clearpoint Research Corporation | Bus device for generating and responding to slave response codes |
JP2992621B2 (ja) | 1990-11-30 | 1999-12-20 | 富士通株式会社 | ロック転送方式 |
US5274783A (en) | 1991-06-28 | 1993-12-28 | Digital Equipment Corporation | SCSI interface employing bus extender and auxiliary bus |
JPH05313923A (ja) | 1992-05-07 | 1993-11-26 | Ricoh Co Ltd | 共有資源の排他制御装置 |
JP3167228B2 (ja) * | 1993-09-20 | 2001-05-21 | 富士通株式会社 | Vccテーブルのアクセス方法及びバーチャルチャネル変換装置 |
US5548767A (en) * | 1993-10-06 | 1996-08-20 | Intel Corporation | Method and apparatus for streamlined handshaking between state machines |
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 |
JP3515263B2 (ja) * | 1995-05-18 | 2004-04-05 | 株式会社東芝 | ルータ装置、データ通信ネットワークシステム、ノード装置、データ転送方法及びネットワーク接続方法 |
SE506955C2 (sv) * | 1995-07-06 | 1998-03-09 | Ericsson Telefon Ab L M | ATM-flödesstyrning |
US5748914A (en) * | 1995-10-19 | 1998-05-05 | Rambus, Inc. | Protocol for communication with dynamic memory |
US5822553A (en) * | 1996-03-13 | 1998-10-13 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller architecture |
US5878045A (en) * | 1996-04-26 | 1999-03-02 | Motorola, Inc. | Method and apparatus for converting data streams in a cell based communications system |
US6167486A (en) * | 1996-11-18 | 2000-12-26 | Nec Electronics, Inc. | Parallel access virtual channel memory system with cacheable channels |
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 |
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 |
US6147890A (en) | 1997-12-30 | 2000-11-14 | Kawasaki Steel Corporation | FPGA with embedded content-addressable memory |
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 |
WO1999063438A1 (en) * | 1998-06-05 | 1999-12-09 | Mylex Corporation | Apparatus, system and method for n-way raid controller |
US6182183B1 (en) * | 1998-11-13 | 2001-01-30 | Sonics, Inc. | Communications system and method with multilevel connection identification |
JP4205247B2 (ja) | 1999-03-30 | 2009-01-07 | 株式会社日立製作所 | プラズマディスプレイ装置 |
US6493776B1 (en) | 1999-08-12 | 2002-12-10 | Mips Technologies, Inc. | Scalable on-chip system bus |
US7325221B1 (en) * | 2000-08-08 | 2008-01-29 | Sonics, Incorporated | Logic system with configurable interface |
US7165094B2 (en) * | 2001-03-09 | 2007-01-16 | Sonics, Inc. | Communications system and method with non-blocking shared interface |
US20030004699A1 (en) * | 2001-06-04 | 2003-01-02 | Choi Charles Y. | Method and apparatus for evaluating an integrated circuit model |
-
1998
- 1998-11-13 US US09/191,291 patent/US6182183B1/en not_active Expired - Lifetime
-
1999
- 1999-11-12 WO PCT/US1999/026901 patent/WO2000029961A1/en active Application Filing
- 1999-11-12 EP EP10185642.5A patent/EP2306328B1/en not_active Expired - Lifetime
- 1999-11-12 AT AT99965799T patent/ATE551654T1/de active
- 1999-11-12 EP EP99965799A patent/EP1131729B1/en not_active Expired - Lifetime
- 1999-11-12 JP JP2000582902A patent/JP4083987B2/ja not_active Expired - Lifetime
- 1999-11-12 AU AU21489/00A patent/AU2148900A/en not_active Abandoned
- 1999-11-15 TW TW088119862A patent/TW480855B/zh not_active IP Right Cessation
-
2000
- 2000-11-21 US US09/721,044 patent/US6725313B1/en not_active Expired - Lifetime
-
2004
- 2004-02-25 US US10/787,942 patent/US7120712B2/en not_active Expired - Lifetime
-
2006
- 2006-10-10 US US11/546,131 patent/US20070094429A1/en not_active Abandoned
-
2007
- 2007-07-26 US US11/881,526 patent/US7647441B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647441B2 (en) | 1998-11-13 | 2010-01-12 | Sonics, Inc. | Communications system and method with multilevel connection identification |
Also Published As
Publication number | Publication date |
---|---|
ATE551654T1 (de) | 2012-04-15 |
US20080183926A1 (en) | 2008-07-31 |
US20040177186A1 (en) | 2004-09-09 |
TW480855B (en) | 2002-03-21 |
US6182183B1 (en) | 2001-01-30 |
AU2148900A (en) | 2000-06-05 |
EP1131729A1 (en) | 2001-09-12 |
US6725313B1 (en) | 2004-04-20 |
US7647441B2 (en) | 2010-01-12 |
WO2000029961A1 (en) | 2000-05-25 |
EP1131729A4 (en) | 2005-02-09 |
EP2306328A2 (en) | 2011-04-06 |
JP2002530744A (ja) | 2002-09-17 |
US20070094429A1 (en) | 2007-04-26 |
WO2000029961A9 (en) | 2000-09-28 |
US7120712B2 (en) | 2006-10-10 |
EP2306328B1 (en) | 2013-06-05 |
EP1131729B1 (en) | 2012-03-28 |
EP2306328A3 (en) | 2012-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4083987B2 (ja) | 多重レベル接続識別を備えた通信システム | |
JP5036120B2 (ja) | 非ブロック化共有インターフェイスを持つ通信システム及び方法 | |
US6119196A (en) | System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates | |
EP0993680B1 (en) | Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory | |
JP4638216B2 (ja) | オンチップバス | |
US7493426B2 (en) | Data communication method and apparatus utilizing programmable channels for allocation of buffer space and transaction control | |
JP2008521131A (ja) | マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能で、大規模な相互接続スキーム | |
US7356669B2 (en) | Processing system and method for transmitting data | |
JP4567373B2 (ja) | データ転送装置及び通信データ処理システム | |
JP2000076199A (ja) | デバッグ端子を有するマルチプロセッサ装置 | |
JP3947223B2 (ja) | 送信パケットを重ねることによりインタフェース上の待ち時間を短縮するための方法および装置 | |
JPH1115779A (ja) | バス制御システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040525 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040525 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070515 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070815 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070824 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070918 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070926 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071015 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071022 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071024 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080214 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4083987 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110222 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120222 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130222 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130222 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140222 Year of fee payment: 6 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |