JP4259751B2 - リアルタイムで動的に帯域幅を割り当てる完全パイプライン式固定待ち時間通信システム - Google Patents
リアルタイムで動的に帯域幅を割り当てる完全パイプライン式固定待ち時間通信システム Download PDFInfo
- Publication number
- JP4259751B2 JP4259751B2 JP2000511115A JP2000511115A JP4259751B2 JP 4259751 B2 JP4259751 B2 JP 4259751B2 JP 2000511115 A JP2000511115 A JP 2000511115A JP 2000511115 A JP2000511115 A JP 2000511115A JP 4259751 B2 JP4259751 B2 JP 4259751B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- subsystem
- initiator
- cycle
- 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
- 238000004891 communication Methods 0.000 title abstract description 74
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000001360 synchronised effect Effects 0.000 claims abstract description 11
- 239000003999 initiator Substances 0.000 claims description 138
- 230000004044 response Effects 0.000 claims description 30
- 230000003252 repetitive effect Effects 0.000 claims 1
- 230000007246 mechanism Effects 0.000 abstract description 12
- 238000012546 transfer Methods 0.000 description 23
- 238000013461 design Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 15
- 230000008901 benefit Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 241001522296 Erithacus rubecula Species 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/37—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Description
(発明の背景)
(1.発明の分野)
本発明は、コンピューティング・デバイス同士を接続するためのバス・システムに関する。
【0002】
(2.背景技術)
電子コンピューティング/通信システムでは、特性が多様化して複雑さが増す一方で、1つの機能あたりの物理的なサイズとコストが削減され続けているため、システム設計者が受ける制約は次第に多くなっている。市場に並ぶまでの期間が短いことがビジネス上不可欠な要素の1つである一般消費者向け電子機器市場などの大規模でコストの影響を受けやすい市場では、このようなシステムに対する需要量が注目されている。より複雑なシステムを一層短期間かつ低価格で持ち込むことができる唯一の手法は、最新の集積回路技術を有効利用すること、ソフトウェアに機能性を持たせること、サブシステム・コンポーネントを1つのデザインから後継のデザインに移行することである。
【0003】
サブシステム・コンポーネントを後継デザインで再利用することは、極めて一般的になっており、時間の節約以外にも多くの利益が得られている。第1に、新しいシステムデザインの要件と性能を解析する際に、正確な結果を出すことのできる実績のあるサブシステムのモデルを書くことができる。実績のない新しいサブシステムのモデルは、実績のあるサブシステムほどの正確ではなく、また適切にデザインに影響を与えられない。第2に、システム設計者がさらに高いレベルの抽象性に注目しつつ最終的に得られるシステム実装の予測可能性を高めることで、実績のあるサブシステムが全体の設計プロセスを簡略化するビルディング・ブロックとして利用可能になる。第3に、ハードウェアサブシステムの再利用によって、ソフトウェアへの投下資本を保護してこれらのサブシステムを管理し、ハードウェア的なビルディング・ブロックの選択後すぐにシステム・ソフトウェアの実装を行うことができる。最後に、サブシステムの再利用によって、検証および試験に関する投下資本が保護される。所望のシステムが高度に集積化されているため、必要とされるサブシステムは最終的には集積回路内に埋め込まれることになる。埋め込まれたデザインでは、デザインの機能性の確認に多くの手間と労力が必要になり、個々のシステムを試験して正しく構築されていることを証明しようとすると、費用負担を伴う遅滞が生じるかコストをかけてシステムを手直ししなければならない場合がある。したがって、デザインを再利用しても、最大の成果はサブシステムの検証および試験の整合性を維持できること以外にないことが多い。
【0004】
再利用に対する従来の手法には様々な長所と短所がある。このような手法の重要な特徴に、様々なサブシステムが互いに提供しあう通信インタフェースがある。1つの手法として、サブシステムが通信を行わなければならない各ピアーとそのサブシステムとの間に、カスタマイズされたポイントツーポイントインタフェースを定義することがあげられる。このインタフェース・スタイルは、第1のサブシステムから設計対象となるサブシステムにデータが送られ、これによってデータが処理され、データが第2のサブシステムに出力されるアプリケーションで特に普及している。このカスタマイズされた手法では、プロトコルが簡略化され、保証性能が得られ、関係のないサブシステムへの依存性が排除される。しかしながら、カスタマイズされたインタフェースは当然ながら柔軟性のないものとなる。新しいアプリケーションでインタフェースを共用していないサブシステムと既存のサブシステムとをインタフェースしなければならない場合、デザインの手直しが必要になる。同じアプリケーションでこのサブシステムを別のサブシステムと通信させなければならない場合、サブシステムまたはインタフェースのコピーが複数必要になり、システムの非効率化を招くことがある。さらに、アップデートがなされたアルゴリズムをこのサブシステムに実装しようとすると、カスタマイズされた古いインタフェースに新しいアルゴリズムを強引に組み込んで既存のピアー・サブシステムと通信を行えるようにしなければならない。
【0005】
2つ目の手法として、標準化されたインタフェースを利用してシステムを決めることがあげられる。標準化されたインタフェースを様々な形態の共用相互接続とペアにして通信サブシステムを構成したものはよく見られる。標準化されたインタフェースの多くはすでに確立されているコンピュータ・バス・プロトコルに準拠している。この手法の大きな利点の1つが、各エージェントがシステム内の他のすべてのエージェントと通信できるという通信パターンの柔軟さである。コンピュータ・バスを使用すると、バスが十分な性能を維持できる範囲で、異なるエージェントをシステムで必要な数だけいくつでも一緒に接続できるため、請求システム設計を行うことができる。決定的な利点は、ソフトウェアに実装された複雑なアルゴリズムでハードウェアのサブシステムと通信を行う必要のあるシステムに、プロセッサ−メモリ通信の基本であるアドレス/データ転送を自然な形でマッピングできることである。共用相互接続の確立に伴って、様々なイニシエータ装置およびターゲット・サブシステムの間で通信資源を割り当てる必要が生じる。コンピュータ・バスの場合、資源の割当ては一般に調停と呼ばれる。
【0006】
標準化されたバス・インタフェースの主な欠点は、調停が原因で発生する転送遅延(通常、待ち時間と呼ばれる)がどの程度になるか分からないことである。待ち時間が分からないことで、リアルタイム性に関する制約を満たさなければならないサブシステムでは問題が生じる。期限内に到着しなかったデータが原因でシステムの動作がおかしくなる場合があるからである。2つ目の欠点は、コンピュータ・システムの継承が原因で利用可能な転送機会(通常、帯域幅と呼ばれる)が不足することである。過去においてのみならず現在にあっても、バスは一般に自己に接続されたプロセッサのピーク転送速度をサポートするように設計されているため、プロセッサからの要求のない転送機会は他のエージェントが利用できるようにされる。したがって、帯域幅の合計がプロセッサのピーク帯域幅を上回るシステムでは、マルチレベル・バス・スキームを用いるか、バスと専用接続とを混在させてその帯域幅を分割しなければならない。最後の欠点は、アドレス/データ転送へのマッピングが容易ではない通信(例えば、2つのエージェント間でのハンドシェーク信号など)またはイニシエータではないエージェントから開始された通信(例えば、データが利用できることをイニシエータ装置に通知するようターゲット・サブシステムによってドライブされる割込み信号)を効果的にサポートできないことである。
【0007】
要するに、既存の通信手法は、デザインの効果的な再利用のための要件を満たしていない。必要なのは、性能特性が極めて多様であるシステムにおいてサブシステムを最大限に利用できる新しい構造である。コンピュータ・バスを拡張して性能面および通信スタイル面の制約を排除することができれば、それがすなわち高度に集積化された多くのシステムの基盤となり得る。
【0008】
さらに、サブシステムの通信要件にはかなりの違いがある。キーボードや赤外線リモート・コントローラ、LEDディスプレイのような入出力装置などのいくつかのサブシステムは、帯域幅要件が非常に低いため待ち時間の変化に極めて強い。RISC CPUまたはデジタル信号プロセッサなどの他のサブシステムでは、利用可能な帯域幅が高くメモリへの待ち時間が低いが、速度の遅いプログラムの実行を犠牲にして帯域幅に関する制約と可変の待ち時間を許容できることが要求される。T1電話回線リンクまたはSVGAディスプレイなどのさらに他のサブシステムでは、高帯域幅要件に対応できるが、帯域幅と待ち時間における不明確さを許容できない。このようなリアルタイム・サブシステムは、帯域幅および待ち時間が保証されている必要があり、付加的な性能を与えることに何ら利点はない。
【0009】
したがって、かかる通信機構は、性能特性が様々に異なる複数のサブシステムの相互作用を可能にし、標準化されたインタフェースを提供することでサブシステムの再利用性を大幅に高めるものであることが望ましい。しかしながら、これは通信機構の動作周波数を可変にして設計中のシステムの所望の帯域幅をサポートしなければならないという問題に対処するものではない。標準化されたインタフェースが通信インタフェースである場合、通信インタフェースの周波数を変更するためにはサブシステムの動作周波数も変更する必要がある。サブシステムの周波数をシステム要件より増やすと電力が浪費され、アルゴリズム上の問題が発生する可能性があり(サブシステムの中には、定周波数で動作させなければならないものがある)、新しく設定する周波数がそれまで設計されていたサブシステムの動作可能周波数よりも高くなると、デザインを全く再利用できない可能性もある。必要なのは、通信インタフェースの周波数と様々なクライアント・サブシステムの動作周波数とを切り離し、各クライアント・サブシステムが自己の要件に沿って動作できるようにする方法である。
【0010】
(発明の概要)
本発明は、高い度合いでのデザインの再利用、性能分析の単純化、フレキシブルな通信能力、設計時間の短縮を可能にする予測可能性の高い通信能力を提供することによって、極めて複雑なシステムの設計を合理化する。
【0011】
一実施態様において、シングル・チップ・コンピュータ・バス・システムは、少なくとも1つのイニシエータ装置と、少なくとも1つのターゲット・サブシステムとを含む。バス・サイクルは、複数の繰り返しフレームに合わせて分割される。少なくとも1つのイニシエータ装置に、要求を送信するための特定の要求フレームと、要求フレームより所定の数のクロック・サイクルだけ後で送信する特定の応答フレームとが割り当てられている。要求を発行する際、イニシエータ装置は所定のフレームの間に要求を発行する。この要求には、ターゲット・サブシステムを識別するアドレスと、ターゲットがとるべきアクションを示すコマンドとが含まれている。バスに接続された各ターゲット・サブシステムは、発行される要求パケットを監視し、ターゲット・サブシステムのアドレスに対応するアドレスを含むこれらの要求パケットに対して応答する。ターゲットは、パケットに記述されたコマンドを実行し、要求パケットの発行から所定の数のクロック・サイクルだけ後に応答パケットを送信することによって応答を行う。
【0012】
好ましくは、多様な制約を有するサブシステム間の通信を一様化するシステムに上記のものを実装しておく。例えば、一実施態様において、高帯域幅と待ち時間が低いことを必要とするイニシエータにサイクルを事前に割り当てる。残りのイニシエータでは、例えばラウンドロビン形式などで利用可能なフレームを求めて調停がなされる。
【0013】
本発明の目的、特徴および利点は、以下の詳細な説明から明らかになろう。
【0014】
(詳細な説明)
本発明によれば、タイミング制約の異なる様々なサブシステムをサポートする革新的な通信プロトコルおよびバス構造が単一の半導体装置上に得られる。特に、後述するように、本発明のシステムおよび方法によれば、2つ以上のサブシステム間で高帯域幅かつ待ち時間の低い通信路を提供するための効率的な機構が得られると共に、リアルタイム性能を必要とするサブシステムに最小限の保証帯域幅を与える効率的な機構が得られる。さらに、本発明のシステムおよび方法によれば、サブシステムの要件とシステム・レベルの要件とを切り離すための効率的な機構が得られる。これによって、システムの待ち時間と帯域幅の要件が様々に異なる被接続サブシステムを、それらのサブシステムに手を加えることなく再利用することができる。また、本発明のシステムおよび方法によれば、アドレス/データスタイルのメモリ・マッピング通信、専用ポイントツーポイント通信および一対多のブロードキャストスタイルの通信を実現するための効率的な機構が得られる。ここで提案する通信方法は、さらに大きなシステムの一部であり、かつ共用の通信バスを介して互いに通信を行う異なるサブシステム間での通信を管理する。このシステムは、1つ以上の集積回路またはチップからなるものであることができ、サブシステムは多くの論理ブロックを含む集積回路上または単一の論理機能を実装した集積回路上の論理ブロックであることができる。
【0015】
図1は、本発明の教示内容に従って動作するシステムの一実施形態を示している。このシステムは、通信バス35を介して互いに通信を行う、3つのターゲット・サブシステム10、15、20と、2つのイニシエータ・サブシステム25、30とに接続されている。本願明細書では、ターゲット・サブシステム10、15、20を要求の受信と要求に対する応答のみしか行うことのできないサブシステムであると定義する。代表的なターゲット・サブシステムには、メモリサブシステムおよび入出力(I/O)装置がある。イニシエータ・サブシステム25、30は、要求の受信と要求に対する応答の他、要求を発行することもできるサブシステムである。代表的なイニシエータ・サブシステムには、中央処理装置(CPU)コア、デジタル信号プロセッサ(DSP)コア、ダイレクト・メモリ・アクセス(DMA)エンジン、コプロセッサなどがある。一実施形態では、各サブシステム10、15、20、25、30とバス35との間にインタフェース・ユニット40、45、50、55、60が接続されている。これらのインタフェース・モジュール40、45、50、55、60は、バス・プロトコルに従ってパケットを発行および/またはパケットに応答する論理を含む。また、後述するように、効率的なデータ転送を行うためには、インタフェースがサブシステムおよびバス・クロックと同期していることが好ましい。最後に、本発明では、インタフェース・ユニット40、45、50、55、60に機能が分散していることが好ましいため、通信バス上のトランザクションを管理するための専用のコントローラユニットは不要である。さらに、インタフェース・ユニットをサブシステムの論理とマージしたり、あるいはバスに接続された別のブロック(40、45、50、55、60)として実装することも可能である。
【0016】
一実施形態において、図1の通信バス35は、以下の線すなわち、コマンド/アドレス・ライン65、アサート・ライン70、クロック・ライン75、データ/応答ライン80およびフラグ・ライン85から構成される。このシステムにはまた、後述するような第2レベルの調停を実現するためのライン90、95などのトークン・リング・ラインも含まれている。
【0017】
アドレス/コマンド・ライン65は、ターゲット・サブシステムを識別するアドレスの送信に用いられる。好ましくは、アドレス・ラインはさらにターゲット内の資源を識別する。好ましくは、特定のターゲット・サブシステムのアドレスと、サブシステム内の資源との間の特定の割当て関係を変え、ターゲットごとに異なるものとすることができる。さらに、この割当てがプログラム可能なものであると好ましい。
【0018】
アサート・ライン70は、要求を送信するのに自己に事前に割り当てられたパケットを使おうとしていることを示すためにイニシエータ・サブシステムが使用する単一のラインであると好ましい。アサート・ラインがアクティブでなければ、トークンを保持しているイニシエータがそのパケットに対するアクセス権を得る。クロック・ライン75にはクロック信号が供給されている。このクロック信号によって複数のサブシステムがバス上で動作を同期させる。データ/応答ライン80は、データの送信と、要求に対する指定のターゲット応答の転送とに用いられる。フラグ・ライン85は、特殊な通信で利用可能な汎用ラインであるため、このラインによってバス・システムはさらにフレキシブルかつ丈夫なものとなっている。これは、アドレス/データ転送へのマッピングが容易ではない通信をサポートする上で特に有利である。例えば、後述するように、これらの汎用ラインを使用して、2つのサブシステム間でのハンドシェーク信号や、データが利用できることをイニシエータ装置に通知するようターゲット・サブシステムによってドライブされる割込み信号などのイニシエータではないサブシステムから開始された通信をサポートすることができる。
【0019】
図2aおよび図2bは、イニシエータ・インタフェース・モジュールの一実施形態への接続の簡略ブロック図を示している。このモジュールは、要求の発行(論理250など)、クライアントとのインタフェース(クロック/シンクロナイザ245)、構成(構成レジスタ240)の維持、受信したコマンドに従っての構成の更新(論理250など)をはじめとする、本願明細書に記載の機能を実行するのに必要な論理とメモリとを含む。モジュールの動作に関する構成を更新するためのコマンドを受信するために、イニシエータは、ターゲットとしても機能し、そのためアドレス/デコード論理242を含む。説明を簡単にするために、イニシエータについては、埋め込み型のターゲットを有するものとして説明する(その主な機能がイニシエータの機能であるため)が、本願明細書にて説明するように、ターゲットの機能性も維持されている。しかしながら、サブシステムがその時々でターゲットまたはイニシエータとして機能し得ることまで考慮すれば柔軟性は維持される。図2bの表に信号をまとめておく。特に、「サイクル」は信号がアクティブであるバス・クロック(sbclock)の位相を示している。バスはパイプライン化されているため、複数のトランザクションを同時進行させることができる。しかしながら、すべてのトランザクションで待ち時間が等しくなることが好ましいため、各トランザクションは同一のテンプレートに厳密に沿っている。サイクルS0を本願明細書では調停サイクルと呼ぶ。サイクルS1を本願明細書ではコマンド/アドレス・サイクルと呼ぶ。S1から所定の数のサイクル後に生じるSMは、データ/応答サイクルである。サイクルSNはエラー・サイクルである。
【0020】
図2aを参照すると、クロック信号ラインsbclock205がバス・クロックを受信する。クライアントがバスと同期して動作するか何らかの誘導周波数で動作する場合、クロック回路242がインタフェースをクライアントまでドライブするのに必要なクロック分割を行う。トークン・リングにて実現される第2レベルの調停では、信号sbTokenIn(ラウンドロビン・トークン・グラント・イン)およびsbTokenOut(ラウンドロビン・トークン・グラント・アウト)207、209を用いて、それぞれ入力トークンおよび出力トークンを示す。sbAssert211は、事前に割り当てられたパケットの所有者によって、パケット使用の意志を示すためにアサートされる。信号sbCmd213は、図2cに示すようなトランザクションのタイプを識別する信号である。信号sbAddr215はターゲットのアドレスを搬送する。アイドル・コマンドおよびブロードキャスト・コマンド以外のコマンドはいずれもこのアドレス機構を利用している。sbWidth217信号はデータの幅を示し、sbData219はデータを搬送し、sbResp221は図2dに示すような応答情報を搬送する。sbFlagNum223は、後述するように、監視対象となる信号のレシーバについてsbFlag225の特定のフラグを識別する。信号sbFlag225は、実装に応じて様々な方法で利用できる構成可能なフラグ・ラインである。
【0021】
ターゲット・クライアントとの間をインタフェースするインタフェース・モジュールはさらに、ターゲット・クライアントとの間をインタフェースするためのターゲット・サブシステム信号線230を有する。この信号については図2eで説明する。これはトランザクション・タイプを含むが、その一例を図2fに示す。また、イニシエータ・クライアントとの間をインタフェースするインタフェース・モジュールはさらに、図2hに示すようなイニシエータ・クライアント・トランザクション・タイプを含む、図2gに示すようなイニシエータ・サブシステム信号線235を有する。
【0022】
通信は、フレーム動作、時分割多重アクセス、同期動作、パイプライン動作、固定待ち時間動作およびスプリットトランザクションを組み合わせることで達成される。時分割多重アクセス(TDMA)システムでは、バス・サイクルが複数のフレームに分割される。所定のソースと宛先装置との間での装置による転送は、事前に与えられたフレームである。同期システムは、同一のクロックに沿って装置が転送を行う装置の1つである。本実施形態では、パイプライン式のバスは、トランザクションに関連したアドレス・フィールドとコマンド・フィールドとが、データよりも前にクロック・サイクルでバスを介して送信され、最初のトランザクションのデータ/応答と後から発生したトランザクションのアドレス/コマンド部分との重畳が可能な状態で応答が送信されるバスである。完全パイプライン式のバスでは、クロックの各サイクルで新しいトランザクションを開始することができる。したがって、前のトランザクションが完了する前に別のトランザクションを開始することができる。さらに、本発明では、トランザクションの開始とトランザクションの完了との間の待ち時間が固定されているため、性能面で一定の利益が得られることが分かっている。このため、完全パイプライン式の固定待ち時間スプリット・トランザクション・バスでは、コマンドと関連のデータ転送との間の待ち時間は、既知の保証値となる。この特性は、固定待ち時間の完全パイプライン式動作を行うプロセッサまたはデジタル信号処理コアと通信を行うバスでは極めて重要である。
【0023】
TDMAである従来技術の通信システムでは、フレームは一般に、ポイントツーポイントボイス通信などの事前に指定されたポイントツーポイント通信に対して割り当てられる。ポイントツーポイント通信の変化は、一般にポイントツーポイント通信リンクのいずれかの終端での変化が原因で、ゆっくりと起こる。本発明は、転送/動作コマンドを開始する権利のみを割り当てることによって、これらの欠点を解決する。これによって、イニシエータ・サブシステムはリアルタイムで複数のターゲット・サブシステムと容易に通信を行うことができる。イニシエータ・サブシステムは、ターゲット・サブシステムのアドレスを識別するアドレス情報を含む要求を発行する。このため、イニシエータは、使用するコマンドとアドレスとに基づいて、1フレームの間に1つまたはそれ以上のターゲット・サブシステムと通信を行うことができる。
【0024】
本発明の通信システムによれば、サブシステム間に共用相互接続を介して極めて高性能で待ち時間の低い通信路が得られる。必要なシステム帯域幅をサポートするために、通信バスを個々のサブシステムの動作周波数よりも高い動作周波数で動作させなければならないことがある。バス周波数とサブシステム周波数との間に差があることで、各サブシステムが要求する通信のパターン次第では、サブシステムの設計が対応の手間と労力を要するものとなり得る。特に、シングルサブシステムでは、自己に入出力される長いシーケンスのトラフィックの間に自システムよりも高速な通信バスに追いつかなくなることが多く、問題はサブシステムが自己のピーク帯域幅よりも高速にデータを処理しなければならないとは限らない点である。
【0025】
本発明のシステムおよび方法ではさらに、バースト転送の利用を最小限に抑えることを試みている。バーストは連続したバス・サイクルで起こる一連のデータ転送であり、このとき一般に暗示アドレスがインクリメントされる。従来のコンピュータ・バスでは、このようなバースト・トラフィックを、バスの調停とアドレス転送が原因で生じる時間的な非効率を減らすことによって性能を高めるための方法の1つとして重要視している。送信側サブシステムおよび受信側サブシステムよりも高い周波数で動作する通信バスでバースト転送を重要視することによるシステムコストへの影響は、送信元と宛先で高価な格納場所を確保することによる影響である。送信元は、バースト長分のデータがバッファされるまで転送を開始することができず、宛先では転送されてくるデータを格納するためのバッファを用意しなければならない。さらに、最初のデータの送信前に送信元で作成される最後のデータを待つまさにそのプロセスによって、転送全体の待ち時間が増えることになる。
【0026】
したがって、送信元または宛先での自然な動作速度でデータを転送できるようにする方法が、より良い解決法であることは理解できよう。このため、個々の転送の時間インターリーブされたセットが一連の連続したバースト転送にとって代わる。この手法を用いると、格納量が減り、転送の両終端部における効率が増す。また、適宜構成した時間インターリーブ・スキームを用いることで、実時間要求の厳しいことが特徴である要求側のマルチメディアおよび通信トラフィックと従来のコンピューティング・トラフィックとをシームレスに統合することができる。これらの特徴すべてを持たせるには、通信バスの基本的な調停スキームを改善する必要がある。
【0027】
本発明のシステムの一実施形態では、2レベルの調停を使用する。これについて図3aおよび図3bを参照して概説する。図3aを参照すると、帯域幅割当てが実行される。割当ては、システムの初期化時に実行可能である。さらに、本願明細書において説明するように、利用可能なライト・バス・トランザクションを用いてサブシステムの構成レジスタを更新することで、動作中に動的に再割当てを行うことができる。帯域幅割当てを行うために、ステップ302では、パケットを事前に異なるイニシエータ・サブシステムに割り当てる。バス・システムに接続されたイニシエータ・サブシステムおよびイニシエータ・サブシステムでの需要に応じて、様々な数のパケットを異なるイニシエータ・サブシステムに割り当ててもよい。例えば、1つのイニシエータ・サブシステムの帯域幅要件を高くし、このサブシステムに利用可能なパケットを高い比率で割り当てることができる。別のイニシエータ・サブシステムには利用可能なパケットを低い比率で事前に割り当て、さらに別のイニシエータ・サブシステムにはどのパケットも割当てないようにすることができる。さらに、ラウンドロビン調停用に利用できるパケットを常に残しておけるように、いくつかのパケットには何ら事前割当てを行わないようにしてもよい。
【0028】
ステップ304では、トークン・リング・ネットワークを確立し、例えばラウンドロビン調停などの第2レベルの調停を実行する。一般に、トークン・リングに対するメンバは事前に割り当てられたパケット以外のイニシエータ・サブシステムでよいが、事前に割り当てられたパケットであるイニシエータ・サブシステムをトークン・リング・ネットワークのメンバにしてもよい。
【0029】
2レベルの調停がなされると、バス・システムは動作を開始することができる。図3bを参照すると、ステップ306では、送信されてくる特定のパケットを事前に割り当てられたイニシエータがそのパケットを使う予定であるかどうかを判断する。これは例えば本実施形態のアサート・ラインなどの特定のバス・ラインを監視することによって判断できる。アサートされると、パケットを事前に割り当てられたイニシエータはトランザクションを実行するためのアクセス権を持ち(ステップ308)、要求が発行される(ステップ310)。イニシエータがアクセス権を必要としていない場合、このパケットは、トークン・リング・ネットワークを介してなされる第2レベルの調停で利用可能である。好ましくは、図3bに示すように、事前に割り当てられたイニシエータがアクセス権を解放した直後にトークンを持っているイニシエータが要求を発行するように、第2レベルの調停(ステップ312、314)と第1レベルの調停(すなわちステップ306、308)とを同時に行う。しかしながら、調停プロセスを順次行うようにしてもよい。
【0030】
再度図3bを参照すると、ステップ312では、トークンの現在の所有者がパケットを必要としている場合、トークンを取り込んだイニシエータがこのトークンを持ち続け、事前に割り当てられたイニシエータでのアクセス権の解放後にアクセス権を与えられる(ステップ314)。それ以外の場合、次のイニシエータがアクセス権を取得することができるように、トークンはリング内の次のイニシエータ・サブシステムに向けてパスされる。アクセス権を要求しているイニシエータにトークンが到達するまでこのプロセスが続けられる。本実施形態では、トークンの宛先がトークンの最初の保持者であり、トークンがイニシエータ・サブシステムからアクセス権を要求されずにリングを一周することが分かっている場合、最初の所有者がトークンを持ち続け、ステップ314でアクセス権を与えられると、調停を完了できるようにするためのダミー要求を発行する。
【0031】
イニシエータ・サブシステムが発行する要求には、意図されたターゲットのアドレスが含まれている。好ましくは、この要求にはさらに、ターゲットにおける特定の資源のアドレスも含まれる。ターゲット・サブシステムは発行される各要求を監視し、このアドレスがターゲットのアドレスに対応しているかどうかを判断する(ステップ322)。対応している(例えば、一致)場合、ターゲット・サブシステムは、所定の数のクロック・サイクル後にこの要求に応答する(ステップ324)。例えば、要求がライト・オペレーションである場合、ターゲット・サブシステムはデータを受信し、要求の発行から所定の数のクロック・サイクル後に完了応答を発行する。この要求がリード・オペレーションである場合、ターゲット・サブシステムは、要求の発行から所定の数のクロック・サイクル後にリード・データを提供する。一実施形態では、発行されるアドレスとターゲット・アドレスとの間には1:1の対応関係が考慮されている。しかしながら、1つまたはそれ以上の装置にマッチするマスクに関してなされる比較など、様々なレベルの対応関係を考慮してもよい。
【0032】
上述したように、パケットのバス・サイクルがサブシステムに割り当てられると、このサブシステムは、そのバス・サイクルに関連したスロットの間要求を発行する権利を有する。これによって、異なるサブシステムに帯域幅を事前に割り当てることが可能になる。バス・サイクルが異なるサブシステムに前もって割り当てられるため、TDMAおよび予測可能な帯域幅の利点は保証される。この特徴は、リアルタイム帯域幅要件が固定のクライアントをサポートする際には非常に重要である。これら2つの概念すなわち、時分割多重アクセスと固定待ち時間のパイプライン式トランザクションを組み合わせることで、待ち時間と帯域幅の両方を保証する極めて高性能の通信プロトコルに必要なものが得られる。
【0033】
上記にて簡単に説明したように、第1レベルの調停は以下のようにして行われる。一実施形態では、利用可能なすべてのバス・サイクルを複数の繰り返しフレームに区切る。説明の都合上、フレームを複数のパケットに区切り、これを複数のサイクルに対応させる。例えば、256サイクルのフレームを2サイクルのパケット128個に区切る。このように、フレームを2サイクルのパケット128個から構成することができ、このようなデザインではフレームが256回のバス・サイクル各々で繰り返される。第1レベルの調停スキームは、異なるサブシステムへのパケットの割当てを中心としたものである。イニシエータ・サブシステムのみがコマンドを発行できるため、パケットが割り当てられるのはイニシエータ・サブシステムだけになる。
【0034】
本実施形態では、各イニシエータ・サブシステムが同期カウンタを有する。この同期カウンタは、ロックステップにおいて他のすべてのカウンタと共に動作する。このカウンタの出力を利用して、現在のカウンタ値の出力に関連したパケットが特定のインタフェース・モジュールに割り当てられているかどうかを判断する基準となる出力を発するプログラム可能な論理回路をインデックス化する。カウンタを各イニシエータ・インタフェース・モジュールに実装し、これらのカウンタをロックステップにおいて維持することで、システムは、好ましくは2つのイニシエータ・インタフェース・モジュールが同一のパケットに割り当てられない範囲で完全に分散されたTDMAタイム・ホイールを実装する。インタフェース・モジュールにおけるプログラム可能な論理回路は、システムの初期化時に割当てに関する情報を用いて事前にプログラムされ、および/またはシステムの実行時に通信バスを異なるイニシエータ・サブシステムに介して発行されるコマンドによって再プログラムしてもよい。これによって、システム内で帯域幅を動的に再割当することができる。
【0035】
パケットの割当ては、例えばパケットが存在する直前のバス・サイクルなど、パケットが存在する前のバス・サイクル中に行われるのが好ましい。様々な実施例を用いることができるが、プログラム可能な論理回路の最も用途が広い実施例は、小型のランダム・アクセス・メモリ(RAM)の形としてのルックアップ・テーブルである。このようなRAMの深度は、フレーム内のパケットの数に等しい。したがって、単にフレーム・カウンタでRAMにインデックス化するだけでTDMAタイム・ホイールが実装される。好ましくは、テーブルが格納されているRAMはユーザから可視で、標準的なデータ・トランザクションで用いられているものと同一のリード/書込みコマンドを用いたソフトウェアによって、読み取りおよび書き込みのために通信バスを介してアクセス可能なものである。これによって、通常のリード/ライト・トランザクションに匹敵するトランザクション速度でバスを介してシステムの帯域幅割当てを変更し、割当てを変更して必要に応じて帯域幅を不均等に分散させ、特定のアプリケーションをサポートするようにすることができる。
【0036】
特定の状況下では、サブシステムが1つまたはそれ以上の事前に割り当てられたサイクルを使用しない場合がある。これは、いくつかのシステム・トラフィックが予測可能であるが、予測可能なトラフィックですら一律ではないような場合に起こり得る。例えば、ディスプレイに転送されるフレーム・バッファのトラフィックは非常に予測しやすいが、ディスプレイが水平方向および垂直方向の再トレースを行うとトラフィックのフローは中断される。さらに、イニシエータ・サブシステムの中には、性能要件が極めて低いものもあり、このようなサブシステムに帯域幅を事前に割り当てることで未使用のサイクルが多く発生する場合がある。したがって、時分割多重されたアクセス・プロトコルを第2レベルの調停で改善するのが望ましい。
【0037】
第2レベルの調停では、事前割当てがなされないパケットまたは事前割当てはなされたが使用されなかったパケットについては、バス上の他のイニシエータ・サブシステムがトークン・パッシング機構を用いた公平なラウンド・ロビン・スキームでその権利を争う。システム内のいずれかのサブシステムがバスを使用できれば、このような第2レベルの調停が使用されないパケットが残らないようにすることができる。この第2レベルの調停の機構が利用可能なシステム帯域幅に対する全体の利用効率を高くする。それにもかかわらず、上述した通信方法の利点がすべて維持されている。
【0038】
本実施形態では、第2レベルの調停を、トークン・パッシング機構を用いた公平なラウンド・ロビン・スキームとして行う。第2レベルの調停に参加するイニシエータはすべて、トークンを巡回させるようリングに接続されている。一般に、予測不能な待ち時間を許容できるイニシエータが第2レベルの調停に参加する。また、第1レベルの調停に参加するサブシステムを第2レベルの調停に参加させることも考慮されている。初期化時に1つのイニシエータ・サブシステムにトークンを割り当てる。このトークンは、現在のパケットに関連するバス・サイクル中、バス・コマンドを発行する条件付きの権利を示す。この権利は、パケットに事前に割り当てられ、パケットの使用権をアサートしていない所有者または割当てがなされていないパケットに依存するため、条件付きである。上述した第1レベルの調停の後に割当てがなされないパケットが残った場合、第2レベルの調停を用いてこのパケットの調停を行う。このように、TDMAスキームで最初の拒否権を割り当て、事前に割り当てられた所有者が自己のパケットの使用権をアサートしなければならないか、このパケットを最終的にトークンを持つイニシエータが利用できるようにする。
【0039】
各調停サイクル(すなわち、各パケット)では、トークンがこれを前のサイクルで保持していたイニシエータに残る場合や、このトークンを要求している次のイニシエータにリングを巡回して送られる場合があるが、既存のトークン・リングシステムとは異なり、本発明の一実施形態では、トークンをリング内で完全に1周させて供給元であるイニシエータに戻してもよい。トークンの動きは、システム条件とシステムのルールに定められた公平性の制約に左右される。例えば、2つ以上のパケットに対してトークンを使うことは1つのイニシエータにとっては公平ではないが、別のイニシエータ・サブシステムは待つことができることもある。使用する機会を得ないままにトークンを解放することはどのイニシエータ・サブシステムにとっても不公平である。このように、一実施形態では、トークンを要求し、これを受信するイニシエータ・サブシステムが、通信バス上で正確に1パケット分のコマンドを開始する機会が得られるまでこのトークンを保持できるようにトークン・パッシングのルールを打ち立てる。その機会は、パケットが所有者に事前に割り当てられた装置によってなされる使用の判断次第で、到達する調停サイクルでトークンが発生する場合もあれば、多数のサイクルにわたって発生しない場合もある。最後に、トークンを持っているイニシエータでこれを使う機会が得られると、このイニシエータはそのTokenOut信号を論理1にドライブしてリング内でのトークンの巡回を開始する。トークンを要求するイニシエータが他に存在しない場合、このトークンはリングを完全に1周して送信元に戻る。
【0040】
トークンがリングを無限に巡回するのを防止するために、トークンの送信を開始するイニシエータ・サブシステムがリングを一時的に崩すようにすると好ましい。このように、いずれかの調停サイクルでトークンの送信を開始するイニシエータ・サブシステムを、その調停サイクルの終了時までに再度自己のところで終わるようにすることができる。線が不確定な状態になり、不適切なバス動作と電力の散逸量の増大を招くことがないよう、通信バス信号は常にアクティブにドライブされているのが望ましいことに注意されたい。現実問題として、事前に割り当てられたパケット所有者が最初の拒否権をアサートしない場合は常に、トークンを持つことになるイニシエータがバス・コマンドを開始するようにする。このような場合、発行すべき有用なコマンドが存在しないのであれば、トークンを持っているイニシエータに不要なコマンド(無害なリードまたはライト、あるいはNOP/Idleコマンド)を開始させる。
【0041】
調停サイクルの開始時にトークンを所有しているイニシエータがトークンを使用する機会を得られず、発行すべきコマンドがある場合、このイニシエータはトークンを保持し続けることができる。それ以外の場合、イニシエータは信号線をハイにし(例えば、TokenOut)、他のイニシエータ・サブシステムに対して、第2レベルの調停でトークンの権利を争えることを示す。トークンを持っているイニシエータ・サブシステム(すなわち、最後にトークンを使用したイニシエータ・サブシステム)は、このトークンをリング内の次のイニシエータ・サブシステムにパスする。次のイニシエータ・サブシステムは、サイクルを使用できるのであればこのトークンを専有する。それ以外の場合、トークンは割当てがなされるまで巡回される。いずれの場合も、その特定のイニシエータ・サブシステムが次のトークン・リング調停の開始点としてトークンを保持する。トークンを使用するイニシエータ・サブシステムが存在しない場合、このトークンは最初にトークンを持っていたイニシエータに戻る。第1レベルと第2レベルのすべてのパケット調停は同一のサイクルで起こる。この第2レベルの調停では保証帯域幅は得られないが、アクセス権の保証に必要なものが得られる。第2レベルの調停を使用すると、他のイニシエータがバスへのアクセスしようとしている場合、どのイニシエータ・システムも2つ以上のパケットに対してバスを支配することはできない。
【0042】
図4aは、第2レベルの調停の一実施形態の状態を示し、図4bの表はこの状態を簡単に説明したものである。本実施形態では、2つの実装態様によってリングでの伝搬遅延を最小限に抑える。第1に、トークンを生成しているインタフェース・モジュールは、純粋に現在の状態の機能としてそれを行う。さらに、そのインタフェース・モジュールはトークンを決められたとおりにパスすることを決定するか、または純粋には現在の状態の機能として行わない。これら2つの特徴は、トークンをできる限り迅速にリングに送り出し、トークンが中間のインタフェース・モジュールを伝搬するのにどれだけの時間が必要か不確かであることによる遅延を避けることができる。
【0043】
状態への入力は、ReqToken、Tokenin、Assert、Reset_n、Firstであり、出力はTokenOut、Grant Token、next stateである。ReqTokenは、インタフェースがトークンを要求していることを示す。TokenInは、このイニシエータに対してトークンを利用できることを示す。Assertは、事前に割り当てられたイニシエータがそのパケットを使用することを示すのに使われる。reset_nは、システムを強制的にリセット状態にするのに使われる。TokenOutは、トークンをリング内の次のイニシエータにパスするのに使われる。GrantTokenは、要求の発行準備をすべきであることをイニシエータに通知するのに使われる。Next Stateは、イニシエータ・サブシステムの特定のインタフェース・モジュールの次の状態を示す。
【0044】
状態NOTOKENでは、サブシステムのインタフェース・モジュールはトークンを必要とせず、所有もしていない。このため、TokenInでトークンが到着すると、TokenOutによってすみやかにパスされる。トークンを要求しているインタフェース・モジュールを一度サンプリングすると、状態マシンはNOTOKENを離れる。状態WANT TOKENでは、インタフェース・モジュールはトークンを持っておらず、トークンを必要としている。したがってこのモジュールはリングを崩し、TokenInでトークンが届いたらこれを取得できるようにする。トークンが届くと、インタフェース・モジュールは、事前に割り当てられたスロット所有者がアサートを出していなければ(GrantTokenの通知によって)このトークンを使用する。アサートがアクティブである場合、トークンを使用できる機会が得られるまでこのモジュールがトークンを保持するため、状態マシンはHAVETOKENに移行する。
【0045】
状態HAVETOKENでは、モジュールにはトークンがあり、モジュールはトークンを使用できる機会を待っている。どのモジュールにもアサートがなされない状態になると、その時点でスロットが利用可能になり、上記のモジュールが(GrantTokenを通知することによって)これを使用する。この状態が発生するか、あるいはインタフェース・モジュールが(おそらく、事前に割り当てられたスロットによって要求が満足されたことが理由で)ReqTokenのアサートを中止した場合、状態マシンはGENTOKENに移行する。このモジュールにはトークンがあるため、TokenInラインに注意を払う必要はない(例えばゼロでなければならない)。状態GENTOKENでは、モジュールは調停サイクルの最初にトークンをリングで巡回させ始める。このモジュールは、WANTTOKENの(すなわちトークンをアクティブに要求している)モジュールがない場合はリングを崩さなければならない。トークンがリングを1周してこのモジュールに戻ると、このインタフェース・モジュールはGrantTokenを受信し、装置がトークンを要求したかどうかとは無関係にコマンドの開始を要求される。
【0046】
状態マシンがリセット状態にある(Reset_nがローにドライブされている)間、開始状態は、最初のラベルが付されたモジュール以外のすべてのインタフェース・モジュールに対してNOTOKENに設定される。最初の装置はリセット時にトークンを持って動作が開始されるという点でユニークであるため、リングにいつでも正確に1つのトークンが存在するようにされる。さらに、本実施形態では、ReqToken列のDon’t Careエントリ(リセット時以外)によって、正確に1つの装置が常にコマンドを開始するよう保証されていることに注意されたい。事前に割り当てられたスロット所有者がアサート・ラインをハイにした場合は、調停の終了時にトークンを持つことになるインタフェース・モジュールがコマンドを開始しなければならない。
【0047】
上述した割当法を利用して、要件の異なる様々なクライアントをサポートすることができる。特定のクライアントの需要を満たすよう同一のシステムをプログラムすることができるため、事前に割り当てられたクライアントおよびパケットの適切な部分をシステムで必要としていることに応じてプログラムすることができる。
【0048】
バス上に発行される最小限のコマンドの組み合わせは、リード・コマンドと書込みコマンドである。この通信方法を自然に拡張し、バスに接続されたサブシステムを制御するように特別に設計された制御コマンドをはじめとする他のコマンドをサポートすることができる。図5は、本発明の教示内容に従って動作する完全パイプライン式の固定待ち時間バスを介して行われるトランザクションの一例のタイミング図を示している。各トランザクションは、調停部分とコマンド/アドレス部分とデータ/応答部分とから構成される。バスは固定待ち時間バスであるため、2つのトランザクションすなわち要求と応答との間には(クロック・サイクル数の)固定の遅延がある。図5では、調停とコマンド/アドレスとの間の待ち時間は1サイクルであり、コマンド/アドレスとデータとの間の待ち時間は2サイクルが2回であると仮定する。パケット(調停ユニット)は1バス・サイクルである。サイクル1では、イニシエータ・サブシステムI−Dが自己に事前に割り当てられたパケットを使用する権利をアサートするため、サイクルタイムスロット2では、バスを介してI−Dがコマンドおよびアドレスをターゲットに送信する。説明の都合上、このコマンドをコマンド1とする。すべてのターゲット・インタフェース・モジュールには、トランザクションがそれらのクライアント・サブシステムに対して指定されたものであるかどうかを判断するためのアドレス・デコード用論理が含まれている。タイムスロット4では、指定されたターゲット・インタフェース・モジュールが要求コマンドに応答する。リード要求コマンドの場合、リード・データがターゲットからイニシエータに送られる。ライト要求コマンドの場合、ライト対象となるデータがサイクル4でイニシエータからターゲットに送られる。
【0049】
サイクル4においてターゲットからデータ応答ラインを介してターゲットによってドライブされた応答信号は、トランザクションが成功したかどうかを示すものである。一実施形態では、「Valid」、「Busy」、「Retry」「No Response」の4つの応答が可能である。「Valid」応答はトランザクションが成功したことを示す。「Busy」応答はターゲット・モジュールがコマンドに応答可能であったことを示す。「Retry」応答はリード・コマンドについてのみ許容されるものであり、ターゲットがコマンドを満足しようとしていたにもかかわらず、一定のバス待ち時間の間にこれを達成できなかったことを示す。イニシエータはその要求を後で再トライする。「No Response」の場合、コマンドと一緒に供給されたアドレスがどのターゲットとも一致せず、どのターゲットも応答しなかったことを示す。
【0050】
続けて図5を参照すると、クロック・サイクル2で第2の調停サイクルが開始され、サイクル3で別のトランザクションが発行される。この状況では、事前に割り当てられたイニシエータはいずれもバス・サイクルの使用権をアサートしていないため、サイクル2でトークンを持つことになるイニシエータ・サブシステムI−Eがサイクル3でコマンドおよびアドレスを発行する。このコマンドに関連したデータと応答信号は、バス・サイクル待ち時間後にサイクル5で発行、転送される。
【0051】
上述したように、パケットの動的な再割当てに必要なものが得られるよう、インタフェース・モジュールはプログラム可能であると好ましい。一実施形態では、各サブシステムのインタフェース・モジュールが、モジュールおよびバスの構成データを格納するための一組の構成レジスタ(240、図2)を有する。
【0052】
好ましくは、構成レジスタは、対応するサブシステムに事前に割り当てられたパケットを識別するデータを格納する。構成レジスタはシステム・アドレス空間にアドレスを有し、よって利用可能なバス・トランザクションを用いて読み出しおよび書き込みが可能である。構成レジスタは、バッファされた構成レジスタとバッファされない構成レジスタの二組あるのが好ましい。バッファされないレジスタに書き込まれるデータは、レジスタへの書き込み動作がなされるとインタフェース・モジュールおよびシステムの他の部分から可視となる。バッファされたレジスタに書き込まれたデータは、保持レジスタ位置に格納され、そのデータが保持レジスタから構成レジスタに転送された後でのみ可視となる。この転送は、バス上のブロードキャスト・コマンドによって開始される。ブロードキャスト・コマンドは、すべてのインタフェース・モジュールに同時に影響を与えるコマンドである。このため、バッファされたレジスタは一般に、新しいデータをシステムの他の部分から見えるようにできる前にいくつかのインタフェース・モジュールを同時に更新することが望ましい場合に使用される。
【0053】
バッファされたレジスタの使用例は、システム内のアドレス・マップへの割り当てである。各ターゲット・インタフェースまたはモジュールは、ローカルに格納されたマスクと、ターゲットがどのアドレスに応答するかを指定するマッチ・データ値を有する。バス上のアドレスとマッチ・フィールドとを比較し、結果をマスクする。マスクされた結果のすべてのビットが0である場合、この特定のインタフェース・モジュールはアドレス指定されている。マスク/マッチ・データは、構成レジスタに格納され、通常のバス・コマンドによって書き込み可能なものである。システムを正しく動作させるには、ターゲット・アドレスの範囲がシステム内で一意に割り当てられている必要がある。例えばアドレスのスワッピングなどアドレスの変更がなされる場合、影響されるすべてのインタフェース・モジュールで同時に新しい割り当てを行うようにする。このようにしないと、一方のアドレス・マップから他方のアドレス・マップへの遷移時にアドレス空間の重なりができてしまう場合がある。
【0054】
上述したように、本発明は、バッファされた構成レジスタとバッファされない構成レジスタとの使用に限定されるものではない。さらに、構成レジスタ内のデータのうちいくつかまたはすべてがシステムの耐用期間の間変更を必要としない場合、これらのすべてまたはいくつかのデータを読出専用メモリ(ROM)に格納することができる。ROMは一般に必要なダイ空間が少ないため、構成位置への不要な書き込みが発生して不適切なシステム構成になるのを防止できる。一般的なシステムには、バッファされた構成レジスタ、バッファされない構成レジスタ、ROMの組み合わせを有するインタフェース・モジュールが含まれていると好ましい。構成レジスタに含まれる情報は、イニシエータ・サブシステムに事前に割り当てられたパケットに関するデータ、待ち時間、要求アドレス・マッチングの目的でインタフェース・モジュールとターゲットの接続されたアドレス装置との間の通信周波数から構成される。
【0055】
上記の重要な特徴の1つは、レジスタがシステム・アドレス空間の一部であるため、利用可能な通常のリード・コマンドと書込みコマンドとを用いて、システムのリアルタイム動作時に構成データを書き込むことができるという事実である。これによって、システム設計者は通信システムの多くの重要な特徴を簡単なソフトウェアまたは場合によっては事前に計算してROMに格納したコマンドシーケンスによってすら変更することができる。
【0056】
従来技術にまさる本発明の重要かつユニークな特徴の1つは、バス待ち時間がシステムの初期化時またはシステムの実行時にプログラム可能であるという事実である。好ましい実施形態では、待ち時間は通信バスを介してプログラム可能である。完全にパイプライン化された通信バスであるため、このような動作にはブロードキャスト・コマンドが必要になり、パイプライン深度がすべてのインタフェース・モジュールで同時に変更される。低待ち時間の応答がシステムにとって重要である場合(メモリへのアクセスなど)は、インタフェース・モジュールの適当な構成レジスタに新しい待ち時間を書き込むことによって、低待ち時間を通信システムにプログラムすることが可能である。一方、バスを介してなされる重要な通信の大半が長待ち時間のサブシステム(非常に迅速に応答することのできないシステム)間でのものである場合、システム待ち時間を上記より高く設定することができる。通常のバス・トランザクションに匹敵する速度で待ち時間をプログラムできるという事実は、従来技術からの大きな改善である。
【0057】
待ち時間を変更できるだけでなく、適当な構成レジスタを更新する同一の方法を使用して帯域幅割当も変更することが可能である。バスを介しての通常のリード・トランザクションまたはライト・トランザクションに匹敵する速度で、システムの初期化時または実行時のいずれかに、帯域幅割当てをプログラムできるという事実は、従来技術からの大きな改善である。
【0058】
プログラム可能な帯域幅割当とプログラム可能なバス待ち時間とを組み合わせることで、他にはない利点が得られる。特に、イニシエータおよびターゲットの個々の構成ごとに、システム設計者がシステムの性能を最適化することが可能である。さらに、帯域幅割当および待ち時間を動作時に更新可能であるため、条件および構成を変更して最適な状態を維持することができる。さらに、後述するように、ターゲットおよびそのインタフェース・モジュールが通信を行う周波数をイニシエータ装置がプログラムできるようにすることで、柔軟性と構成可能性がもたらされる。これは、イニシエータおよび/またはターゲット・クライアントの様々なサブシステム・タイミング要件に適合する場合に特に望ましい。
【0059】
帯域外の通信を管理する一組のシステム−レベル制御線(図1においてフラグと呼んでいる)を加えることによって、バス機能性をさらに高めることが望ましい。帯域外の信号は、アドレス/データ指向のパイプライン型バス・モデルには沿わない信号である。一例として、装置のステータス信号、割り込み、ハンドシェーク信号があげられる。好ましい実施形態では、これらの線は、以下のようにして基本的なリード動作の性能を高めるのにも使用される。
【0060】
例えば、図5に示すようなシステムの動作では、ターゲット・サブシステムがリード要求コマンドに適時に応答してバス待ち時間要件を満たし得る場合、「Valid」応答が応答バス経由で送信される。ターゲット・サブシステムがバス待ち時間要件に適時に応答できない場合、「Retry」応答が送信される。所望のデータがいつ利用可能であるのかイニシエータで推測し、バス・サイクルの浪費や待ち時間の増大を引き起こすのではなく、ターゲット・インタフェース・モジュールで帯域外信号(本願明細書では、フラグとも呼ぶ)のうちの1つを使用する。ターゲット・インタフェース・モジュールは、ターゲット・インタフェース・モジュールでデータを取得した後、フラグを用いてイニシエータに正確な指示を返す。
【0061】
図6は、帯域外信号線を用いた再トライ機構を示している。クライアントが通信バスの待ち時間を満たすことができない場合、ターゲット・インタフェース・モジュールはイニシエータに応答パケットを発行し、「Retry」を示す。同一のタイムスロットで、フラグ線信号のビット数をFlagNumライン(分かりやすくするために、図1のフラグ・ラインの一部である)で送信する。これは、いつ再トライするかを示す識別されたフラグを監視すべきであることをイニシエータ・サブシステムに対して示す。
【0062】
図6の例では、Read要求コマンドをサイクル1で送信する。バス待ち時間は2サイクルであるため、サイクル3でターゲット・インタフェース・モジュールによってデータを返さなければならない。しかしながら、データはまだ利用できないため、ターゲットは再トライ応答を応答線で返し、フラグ線の数(本例では7)をFlagNumバスで返す。ターゲット・インタフェース・モジュールがそのクライアント(すなわち、接続されている装置)からデータを受信すると、このデータをローカルメモリに格納し、示されたフラグ線をハイにドライブし、イニシエータに対してデータが利用できるようになったことを示す。図6では、サイクル4の後に、ターゲットがフラグ7でデータが利用できることを示している。この時点で、イニシエータ・サブシステムは要求コマンドを再発行することができる。これは、図3ではサイクル6で行われている。ターゲット・インタフェース・モジュールが要求コマンドを満たす(図3ではサイクル8)と、この要求コマンドと関連付けられていたフラグをアサート解除する。
【0063】
通信システムは、異なるターゲット・インタフェース・モジュールに割り当てられる複数のフラグを含むと好ましい。フラグ線をモジュール同士で共用することができ、また特定のモジュールで専有することもできる。好ましい実施形態では、フラグの割当てが構成レジスタに格納されているため、この割当てを通常のバス・トランザクションに匹敵する速度で通信バスを介してプログラム可能である。
【0064】
フラグ線を様々な目的に使用することができる。例えば、フラグ線の異なった使い方として、ハンドシェーク信号および割込み信号の管理があげられる。これらの信号は、インタフェース・モジュールまたはサブシステムで特別なイベントを示す信号である。このような信号の例として、エラー信号またはビジー状態(ストップ送信要求)を示す信号、待機状態(サブシステムがいつでも要求を受けられる状態にある)を示す信号があげられる。これらの信号は本来、帯域外信号であり、フラグ線を用いて転送される。これらの目的のため、割込み信号またはハンドシェーク信号向けの目的で、フラグ線はターゲット・インタフェース・モジュールおよびそのサブシステムクライアントに一意に割り当てられている。好ましい実施形態では、このデータ割当てが構成レジスタに格納されているため、システムで変更が必要になった際に動的に変更することができる。イニシエータ・サブシステムで同一の情報をプログラムし、ハンドシェークまたは割り込みの目的で監視すべきフラグ線がどれであるのかイニシエータが分かるようにする。
【0065】
上述したように、バスとサブシステムとの間のインタフェース・モジュールは、クライアントとの間をインタフェースしながらバス・プロトコルを実装するための論理を有する。さらに、サブシステムのクライアント・クロックをシステムバス・クロックから導出する別の論理(245、図2)がインタフェースに含まれていると好ましい。構成レジスタを介したインタフェース・モジュールによって、システムの特徴および性能要件が極めて異なる様々なシステムでサブシステムを再利用できるレベルのプログラム性が得られる。システムバス・クロックの周波数は、特にシステムの所望の性能を満たすためにバスで必要な全帯域幅であるシステム要件によって定まる。クライアントのクライアント・クロック周波数をシステムバス・クロックから切り離すことが可能であり、これをクライアントで必要な機能性と関連させるようにする。したがって、インタフェース・モジュールによって、システムとサブシステム要件とを切り離すための強力な手段が得られる。
【0066】
従来の固定待ち時間バス・システムでは、利用可能な帯域幅を増やすためにはバスとそのすべてのクライアントの動作周波数を増やす必要がある。クライアントが待ち時間を満たすために短時間で応答する必要があるためである。本発明のシステムを用いると、バス周波数の増加に応じてバス待ち時間(サイクルで測定)を増すことができる。これによって、クライアントがほぼ一貫した周波数で動作しやすくなる。全体の待ち時間(時間)が比較的一定になるためである。デカップリングの形状をインタフェース・モジュールとクライアントとの間の非同期的な接続まで拡張することも考慮されている。
【0067】
周波数デカップリングに対する要件は、主に本手法を用いることで利益のある多種多様なシステムに基づくものである。1つのシステム例として、ワイヤレスのパーソナル通信機があげられる。この通信機では、マイクロコントローラ・コア、組み込み式メモリ、キーパッド入力、液晶ディスプレイ(LCD)出力などの低性能でコンピュータ由来のサブシステムと共に、(ワイヤレス通信を行うために)性能が一定のリアルタイム・サブシステムが必要である。通信用のキーデザインの目標は、信頼できる通信とできるだけ多くの機能とを(マイクロコントローラ上のソフトウェアに実装して)低電力で提供することである。2つ目のシステム例としては、デジタル衛生テレビ放送を受信するためのセットトップ・ボックスがあげられる。セットトップ・ボックスのデザインでは、さらに高いビットレートでのデータ通信とビデオ・データおよびオーディオ・データを解凍するためのさらに高い計算性能とが必要とされ、システム全体での性能を保証してドロップ・フレームを回避しなければならない。3つ目の例は、非同期転送モード(ATM)スイッチである。このスイッチのデザインでは、性能の監視と診断を行うだけの目的で中央処理装置(CPU)が必要になることが多い。通常の動作では、共用相互接続を介した同一のサブシステム間でパケットを切り換える必要がある。多くの回路すなわちスイッチング・アプリケーションの場合と同様に、性能保証はATMスイッチを正しく動作させる上で重要なものである。
【0068】
以下、様々なシステムのデザイン再利用によって得られる機会を示す。ビデオオンデマンド用のワイヤレス・システムと、パーソナル通信機からの双方向ワイヤレス・サブシステム、ATMスイッチからのATMパケット・フレーム・エンジン、セットトップ・ボックスからのビデオ解凍サブシステムとを組み合わせることができる。相互に動作させることが意図されていなかったサブシステム同士を組み合わせ、高速に集積化されコスト効率のよいシステムにすることが可能である。
【0069】
以上、好ましい実施形態について本発明を説明した。当業者には、上記の説明に鑑みて、多数の変更、修正、バリエーションおよび用途が理解できようことは明らかである。
【図面の簡単な説明】
【図1】 本発明の教示内容に従って動作するシングル・チップ通信システムの一実施形態を示す図である。
【図2a】 イニシエータ・インタフェース・モジュールの一実施形態の簡略ブロック図を示す図である。
【図2b】 図2aのインタフェース・モジュールに対して入出力される信号を説明するための図である。
【図2c】 図2aのインタフェース・モジュールに対して入出力される信号を説明するための図である。
【図2d】 図2aのインタフェース・モジュールに対して入出力される信号を説明するための図である。
【図2e】 図2aのインタフェース・モジュールに対して入出力される信号を説明するための図である。
【図2f】 図2aのインタフェース・モジュールに対して入出力される信号を説明するための図である。
【図2g】 図2aのインタフェース・モジュールに対して入出力される信号を説明するための図である。
【図2h】 図2aのインタフェース・モジュールに対して入出力される信号を説明するための図である。
【図3a】 バスへのアクセスについて調停をセットアップするためのプロセスの一実施形態の簡略流れ図である。
【図3b】 要求を発行し、要求に応答するためのプロセスの一実施形態を説明するための図である。
【図4a】 第2レベルの調停での調停状態の一実施形態を示す図である。
【図4b】 第2レベルの調停での調停状態の一実施形態を示す図である。
【図5】 本発明の教示内容によるバス・トランザクションを示すタイミング図である。
【図6】 本発明の教示内容による再トライ・プロセスを示す図である。
Claims (19)
- 複数のバス・サイクルの間に動作する同期バスであって、前記複数のバス・サイクルは複数の繰り返しフレームに分割され、各フレームはさらに複数のパケット・バス・サイクルに分割され、それぞれのパケット・バス・サイクルは少なくとも1つのクロック・サイクルを含む同期バスと、
前記同期バスに結合された少なくとも2つの第1と第2のイニシエータ・サブシステムと、
前記同期バスに結合された少なくとも1つのターゲット・サブシステムと
から構成され、
前記第1のイニシエータ・サブシステムは前記バスを使用するため事前に割り当てられた少なくとも1つのパケットを含むように構成されるとともに、事前に割り当てられたパケット・バス・サイクル内で、コマンドとターゲット・サブシステムのアドレスを有する第1のトランザクション要求をクロック・サイクル実行中に送出するように構成され、
前記第2のイニシエータ・サブシステムは、前記第1のトランザクションが完了する前に、事前に割り当てられた第2のパケット・バス・サイクル内で、第2のトランザクションの要求を第2のクロック・サイクル実行中に前記同期バスを介して送出するように構成され、
前記ターゲット・サブシステムは、前記第1の要求を受け取り、前記アドレスが前記ターゲット・バスシステムに対応しているかどうかを判断するように構成され、前記要求のアドレスが前記ターゲット・サブシステムのアドレスに対応している場合、前記ターゲット・サブシステムは前記第2のクロック・サイクルの後に発生する第3のクロック・サイクルにおいて前記第1の要求に応答することを特徴とするコンピュータ・バス・システム。 - 前記少なくとも2つのイニシエータ・サブシステムのそれぞれは、そのイニシエータ・サブシステムに事前に割り当てられた少なくとも2つ以上のパケット・バス・サイクルを有することを特徴とする請求項1に記載のコンピュータ・バス・システム。
- 前記事前に割り当てられたどのパケット・バス・サイクルも最大1つのイニシエータ・サブシステムに割り当てられていることを特徴とする請求項1に記載のコンピュータ・バス・システム。
- 前記第1のイニシエータ・サブシステムは、前記少なくとも1つの事前に割り当てられたパケット・バス・サイクルの前回のクロック・サイクルが実行されている間に、前記少なくとも1つの事前に割り当てられたパケット・バス・サイクルを使用する意向を信号で送信することを特徴とする請求項1に記載のコンピュータ・バス・システム。
- パケット・バス・サイクルが前記第1のイニシエータ・サブシステムに事前に割り当てられているが、前記第1のイニシエータ・サブシステムによって使用されていない場合、またはパケット・バス・サイクルがいかなる特定のイニシエータ・サブシステムにも事前に割り当てられていない場合に、どのイニシエータ・サブシステムも公平なラウンド・ロビン・スキームに従い、そのパケット・バス・サイクルに対するアクセス権を調停することが許されていることを特徴とする請求項4に記載のコンピュータ・バス・システム。
- 前記第1のイニシエータ・サブシステムは、構成データを格納するように構成されたアドレス可能なメモリを備え、前記構成データは前記パケット・バス・サイクルの事前割当てを制御し、前記バスを介して前記アドレス可能なメモリはアクセスされることを特徴とする請求項1に記載のコンピュータ・バス・システム。
- 前記イニシエータ・サブシステムへの前記パケット・バス・サイクルの事前割当ては、前記バスを介して通常のトランザクションに匹敵する速度で、通常のバス動作と並行してプログラム可能であることを特徴とする請求項1に記載のコンピュータ・バス・システム。
- 前記同期バスは一組のフラグ線を有し、各フラグ線は1つの送信側サブシステムに割り当てられ、前記フラグ線は前記送信側サブシステムと少なくとも1つの受信側サブシステム間の制御情報を送信するのために用いられ、前記制御情報は1つのサブシステムのアドレス空間またはパケット・バス・サイクルの事前割当てには無関係であることを特徴とする請求項1に記載のコンピュータ・バス・システム。
- 前記一組のフラグ線の各フラグ線は1つのフラグ番号に関連づけれられ、前記バスはフラグ番号を搬送する一組のフラグ番号線をさらに有し、そのフラグ番号は前記一組のフラグ線のうち少なくとも1つの関連づけられたフラグ線が情報監視され得ることを示すことを特徴とする請求項8に記載のコンピュータ・バス・システム。
- フラグ番号は、ターゲット・サブシステムが所定の待ち時間を満たすよう適時に要求に応答できない旨をイニシエータ・サブシステムに知らせるために用いられることを特徴とする請求項9に記載のコンピュータ・バス・システム。
- ターゲット・サブシステムが応答できない場合、前記ターゲット・サブシステムは前記フラグ線上に信号をアサートし、
前記第1のイニシエータ・サブシステムは前記要求を再発行することにより前記シグナルに応答し、前記ターゲット・サブシステムは前記再発行された要求に応答し、前記フラグ線上の信号のアサートを解除することを特徴とする請求項10に記載のコンピュータ・バス・システム。 - 前記イニシエータ・サブシステムおよび前記ターゲット・サブシステムはそれぞれ、
前記バスのバス・クロックに対し同期するように構成されたクライアント・クロックを有するクライアントと、
前記クライアントと前記バスの間に接続されたインターフェース・モジュールと
を備え、前記クライアント・クロックは前記バス・クロックから導出され、前記バス・クロックの比率はプログラム可能であることを特徴とする請求項1に記載のコンピュータ・バス・システム。 - 前記イニシエータ・サブシステムおよび前記ターゲット・サブシステムはそれぞれ、
クライアント・クロックを有するクライアントと、
前記クライアントと、前記バス・クロックに前記クライアント・クロックを同期させる同期論理を有する前記バスとの間に接続されたインターフェース・モジュールと
を備え、前記クライアント・クロックのクライアント周波数は前記バスのバス・クロックの周波数の動作と無関係であることを特徴とする請求項1に記載のコンピュータ・バス・システム。 - 前記ターゲット・サブシステムは、前記第1の要求に対し、前記第1のクロック・サイクルの後に所定回数のクロック・サイクルだけ応答することを特徴とする請求項1に記載のコンピュータ・バス・システム。
- 前記所定回数のクロック・サイクルはプログラム可能であることを特徴とする請求項14に記載のコンピュータ・バス・システム。
- 前記所定回数のクロック・サイクルは前記バスを介した通常のトランザクションに匹敵する速度で、通常のバス動作と並行してプログラム可能であることを特徴とする請求項15に記載のコンピュータ・バス・システム。
- サブシステム間でバスを介してデータを送信する方法であって、
第1のイニシエータから前記バス上への第1のクロック・サイクルにおける第1のトランザクションからの要求を送信するステップと、
第2のイニシエータから前記バス上への第2のクロック・サイクルにおける第2のトランザクションからの要求を送信するステップと、
少なくとも1つのターゲットが前記バスから前記第1の要求を受信するステップと、
前記少なくとも1つのターゲットが前記ターゲットアドレスに対応するアドレスを有している場合、前記ターゲットにより第3のクロック・サイクルにおいて第1の要求に応答するステップと、
前記要求に記述されたコマンドを実行し、前記バス上に前記第1の要求に対する応答を送信するステップと
から構成され、
前記第1の要求は少なくとも1つのコマンドとターゲット・アドレスを有し、前記第1のクロック・サイクルは前記第1のイニシエータに事前に割り当てられた第1のパケット・バス・サイクルの一部であり、各パケット・バス・サイクルは少なくとも1つのクロック・サイクルを有し、複数のパケット・バス・サイクルは前記バス上に繰り返しフレームを形成し、
前記第2の要求も少なくとも1つのコマンドとターゲット・アドレスを有し、前記第2のクロック・サイクルは前記第2のイニシエータに事前に割り当てられた第2のパケット・バス・サイクルの一部であり、前記第2のクロック・サイクルは前記第1のクロック・サイクル完了後および前記第1のトランザクションが完了する前に発生し、
前記第3のクロック・サイクルは前記第2のクロック・サイクルの後で発生することを特徴とする方法。 - パケット・バス・サイクルは前記第1のイニシエータに事前に割り当てられるが前記第1のイニシエータに使用されない場合、第2のレベル調停を実行するステップをさらに有し、そのステップにおいて前記パケット・バス・サイクルは別のイニシエータに割り当てられることを特徴とする請求項17に記載の方法。
- 各サブシステムがイニシエータとターゲットのうち少なくとも1つを有する少なくとも2つのサブシステムを結合するコンピュータ・バス・システムにおける、パラメータを変更するための方法であって、この方法は、
各サブシステム内で、第1のアドレス可能なメモリを決めるステップと、
各サブシステム内で、前記サブシステムによって使用される構成データを含んでいる第2のアドレス可能なメモリを決めるステップと、
少なくとも1つのパケット・バス・サイクルをイニシエータに事前に割り当て、アドレス指定された前記バスを介して、第1のパケット・バス・サイクルのクロック・サイクルで前記サブシステムの前記第1のメモリに書き込むためのコマンドを発行するステップと、
全てのサブシステムに前記書き込みコマンドを発行するように前記イニシエータを構成するステップと、
前記書き込みコマンドに応答して、前記第1のメモリの内容に基づいて、新しい構成データをそれぞれのサブシステムの第2メモリに書き込むステップと、
各サブシステムが再構成のために前記新しい構成データを使用するステップと
から構成され、
前記バス上の各パケット・バス・サイクルは少なくとも1つのクロック・サイクルを有し、複数のパケット・バス・サイクルは前記バス上に繰り返しフレームを形成し、
前記新しい構成データは、前記バスを介してトランザクションが発生するためのプログラム可能なバスの待ち時間の長さと、前記イニシエータに事前割り当てられたパケット・バス・サイクルの変更可能な帯域幅の範囲を決定することを特徴とする方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/924,368 US5948089A (en) | 1997-09-05 | 1997-09-05 | Fully-pipelined fixed-latency communications system with a real time dynamic bandwidth allocation |
US08/924,368 | 1997-09-05 | ||
PCT/US1998/015006 WO1999013405A1 (en) | 1997-09-05 | 1998-07-22 | A fully-pipelined fixed-latency communications system with a real-time dynamic bandwidth allocation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001516100A JP2001516100A (ja) | 2001-09-25 |
JP4259751B2 true JP4259751B2 (ja) | 2009-04-30 |
Family
ID=25450136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000511115A Expired - Lifetime JP4259751B2 (ja) | 1997-09-05 | 1998-07-22 | リアルタイムで動的に帯域幅を割り当てる完全パイプライン式固定待ち時間通信システム |
Country Status (9)
Country | Link |
---|---|
US (1) | US5948089A (ja) |
EP (1) | EP1027657B1 (ja) |
JP (1) | JP4259751B2 (ja) |
KR (1) | KR100572372B1 (ja) |
CN (1) | CN1150460C (ja) |
AT (1) | ATE310277T1 (ja) |
AU (1) | AU8576498A (ja) |
DE (1) | DE69832410T2 (ja) |
WO (1) | WO1999013405A1 (ja) |
Families Citing this family (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895510B1 (en) * | 1997-11-24 | 2005-05-17 | International Business Machines Corporation | Mutual internet authentication between a client and server utilizing a dummy IOP request |
US6138187A (en) * | 1998-08-21 | 2000-10-24 | International Business Machines Corporation | Method and system for increasing spatial reuse in a serial storage architecture subsystem |
US6182183B1 (en) | 1998-11-13 | 2001-01-30 | Sonics, Inc. | Communications system and method with multilevel connection identification |
US6487606B1 (en) * | 1998-11-18 | 2002-11-26 | Nortel Networks Limited | System and method for delivering messages through a totem communications system |
TW388817B (en) * | 1998-11-20 | 2000-05-01 | Via Tech Inc | Method reducing latency of writing data in memory |
JP3953243B2 (ja) * | 1998-12-29 | 2007-08-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | システム分析のためにバス・アービトレーション制御を使用する同期方法及び装置 |
US6449671B1 (en) * | 1999-06-09 | 2002-09-10 | Ati International Srl | Method and apparatus for busing data elements |
GB2352144A (en) * | 1999-07-16 | 2001-01-17 | Texas Instruments Ltd | Data transfer between memory nodes |
US6801985B1 (en) * | 1999-09-10 | 2004-10-05 | Texas Instruments Incorporated | Data bus using synchronous fixed latency loop including read address and data busses and write address and data busses |
DE19946716A1 (de) * | 1999-09-29 | 2001-04-12 | Infineon Technologies Ag | Verfahren zum Betrieb eines Prozessorbusses |
US6701397B1 (en) | 2000-03-21 | 2004-03-02 | International Business Machines Corporation | Pre-arbitration request limiter for an integrated multi-master bus system |
DE10022479B4 (de) * | 2000-05-09 | 2004-04-08 | Infineon Technologies Ag | Anordnung zur Übertragung von Signalen zwischen einer Datenverarbeitungseinrichtung und einer Funktionseinheit in einem Hauptspeichersystem eines Computersystems |
US7325221B1 (en) | 2000-08-08 | 2008-01-29 | Sonics, Incorporated | Logic system with configurable interface |
US6785284B1 (en) * | 2000-08-10 | 2004-08-31 | Infineon Technologies North America Corp. | Interleavement for transport of frames and cells |
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 |
EP1430406B1 (de) * | 2001-09-26 | 2005-06-08 | Siemens Aktiengesellschaft | Verfahren zur arbitrierung eines zugriffs auf einen datenbus |
US6804738B2 (en) * | 2001-10-12 | 2004-10-12 | Sonics, Inc. | Method and apparatus for scheduling a resource to meet quality-of-service restrictions |
US7099922B2 (en) * | 2002-01-23 | 2006-08-29 | International Business Machines Corporation | Method and system for simultaneous management of multiple tokens on a communication ring |
US7315551B2 (en) * | 2002-03-15 | 2008-01-01 | Lockheed Martin Corporation | Synchronous low voltage differential I/O buss |
US7194566B2 (en) * | 2002-05-03 | 2007-03-20 | Sonics, Inc. | Communication system and method with configurable posting points |
US7254603B2 (en) * | 2002-05-03 | 2007-08-07 | Sonics, Inc. | On-chip inter-network performance optimization using configurable performance parameters |
US7356633B2 (en) * | 2002-05-03 | 2008-04-08 | Sonics, Inc. | Composing on-chip interconnects with configurable interfaces |
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 |
JP4025593B2 (ja) * | 2002-07-11 | 2007-12-19 | 富士通株式会社 | 放送型通信データ配送装置および放送型通信システム |
US7426182B1 (en) * | 2002-08-28 | 2008-09-16 | Cisco Technology, Inc. | Method of managing signal processing resources |
TW200415476A (en) * | 2002-09-30 | 2004-08-16 | Matsushita Electric Ind Co Ltd | Resource management device |
US7243264B2 (en) * | 2002-11-01 | 2007-07-10 | Sonics, Inc. | Method and apparatus for error handling in networks |
US6976106B2 (en) * | 2002-11-01 | 2005-12-13 | Sonics, Inc. | Method and apparatus for speculative response arbitration to improve system latency |
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 |
US7139854B2 (en) * | 2003-06-10 | 2006-11-21 | Texas Instruments Incorporated | Pipelining access to serialization tokens on a bus |
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 |
US20050066097A1 (en) * | 2003-09-04 | 2005-03-24 | Matsushita Electric Industrial Co., Ltd. | Resource management apparatus |
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 |
US7665069B2 (en) * | 2003-10-31 | 2010-02-16 | Sonics, Inc. | Method and apparatus for establishing a quality of service model |
US8504992B2 (en) * | 2003-10-31 | 2013-08-06 | Sonics, Inc. | Method and apparatus for establishing a quality of service model |
US20050175027A1 (en) * | 2004-02-09 | 2005-08-11 | Phonex Broadband Corporation | System and method for requesting and granting access to a network channel |
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 |
JP4480427B2 (ja) * | 2004-03-12 | 2010-06-16 | パナソニック株式会社 | リソース管理装置 |
US20050210329A1 (en) * | 2004-03-18 | 2005-09-22 | Newisys, Inc. | Facilitating system diagnostic functionality through selective quiescing of system component sensor devices |
US7747771B1 (en) | 2004-06-30 | 2010-06-29 | Oracle America, Inc. | Register access protocol in a multihreaded multi-core processor |
JP2008515073A (ja) * | 2004-09-28 | 2008-05-08 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データ処理システム及びメモリアービトレーションのための方法 |
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 |
JP4907166B2 (ja) * | 2005-01-12 | 2012-03-28 | パナソニック株式会社 | リソース管理装置 |
US7739437B2 (en) | 2005-01-31 | 2010-06-15 | Panasonic Corporation | Access arbiter and arbitrable condition verification device |
JP4419868B2 (ja) * | 2005-02-25 | 2010-02-24 | ソニー株式会社 | 情報処理装置および方法、メモリ制御装置および方法、記録媒体、並びにプログラム |
US20060225015A1 (en) * | 2005-03-31 | 2006-10-05 | Kamil Synek | Various methods and apparatuses for flexible hierarchy grouping |
US20070067531A1 (en) * | 2005-08-22 | 2007-03-22 | Pasi Kolinummi | Multi-master interconnect arbitration with time division priority circulation and programmable bandwidth/latency allocation |
WO2007029053A1 (en) * | 2005-09-09 | 2007-03-15 | Freescale Semiconductor, Inc. | Interconnect and a method for designing an interconnect |
US7694249B2 (en) * | 2005-10-07 | 2010-04-06 | Sonics, Inc. | Various methods and apparatuses for estimating characteristics of an electronic system's design |
JP4974508B2 (ja) * | 2005-10-28 | 2012-07-11 | キヤノン株式会社 | バスマスタ装置、バス調停装置及びバス調停方法 |
US8788569B2 (en) | 2006-03-31 | 2014-07-22 | British Telecommunications Public Limited Company | Server computer system running versions of an application simultaneously |
EP2002336A1 (en) * | 2006-03-31 | 2008-12-17 | British Telecommunications Public Limited Company | Server computer component |
US20080082708A1 (en) * | 2006-09-29 | 2008-04-03 | Kar Leong Wong | Token hold off for chipset communication |
US8020124B2 (en) * | 2006-11-20 | 2011-09-13 | Sonics, Inc. | Various methods and apparatuses for cycle accurate C-models of components |
US20080120082A1 (en) * | 2006-11-20 | 2008-05-22 | Herve Jacques Alexanian | Transaction Co-Validation Across Abstraction Layers |
US8868397B2 (en) | 2006-11-20 | 2014-10-21 | Sonics, Inc. | Transaction co-validation across abstraction layers |
CN101232425B (zh) * | 2007-01-26 | 2010-04-21 | 京信通信系统(中国)有限公司 | 一种总线式分布控制系统主从站对端控制方法 |
GB2447690B (en) | 2007-03-22 | 2011-06-08 | Advanced Risc Mach Ltd | A Data processing apparatus and method for performing multi-cycle arbitration |
US7814243B2 (en) * | 2007-06-01 | 2010-10-12 | Sonics, Inc. | Shared storage for multi-threaded ordered queues in an interconnect |
US8438320B2 (en) * | 2007-06-25 | 2013-05-07 | Sonics, Inc. | Various methods and apparatus for address tiling and channel interleaving throughout the integrated system |
US9292436B2 (en) * | 2007-06-25 | 2016-03-22 | Sonics, Inc. | Various methods and apparatus to support transactions whose data address sequence within that transaction crosses an interleaved channel address boundary |
US8108648B2 (en) * | 2007-06-25 | 2012-01-31 | Sonics, Inc. | Various methods and apparatus for address tiling |
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 |
US8135878B1 (en) * | 2008-04-07 | 2012-03-13 | Tellabs San Jose Inc. | Method and apparatus for improving throughput on a common bus |
US8032329B2 (en) * | 2008-09-04 | 2011-10-04 | Sonics, Inc. | Method and system to monitor, debug, and analyze performance of an electronic design |
US8032678B2 (en) * | 2008-11-05 | 2011-10-04 | Mediatek Inc. | Shared resource arbitration |
JP5460156B2 (ja) * | 2009-07-14 | 2014-04-02 | キヤノン株式会社 | データ処理装置 |
US9342471B2 (en) * | 2010-01-29 | 2016-05-17 | Mosys, Inc. | High utilization multi-partitioned serial memory |
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 |
US8798038B2 (en) | 2011-08-26 | 2014-08-05 | Sonics, Inc. | Efficient header generation in packetized protocols for flexible system on chip architectures |
US8711867B2 (en) | 2011-08-26 | 2014-04-29 | Sonics, Inc. | Credit flow control scheme in a router with flexible link widths utilizing minimal storage |
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 |
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 |
US9378023B2 (en) * | 2012-06-13 | 2016-06-28 | International Business Machines Corporation | Cross-pipe serialization for multi-pipeline processor |
WO2015060820A1 (en) * | 2013-10-22 | 2015-04-30 | Hewlett-Packard Development Company, L.P. | Hybrid circuit-packet switch |
US10152112B2 (en) | 2015-06-10 | 2018-12-11 | Sonics, Inc. | Power manager with a power switch arbitrator |
CN105760607B (zh) * | 2016-02-22 | 2019-05-03 | 烽火通信科技股份有限公司 | 基于令牌桶的模拟总线有效带宽的仿真组件及方法 |
US10268614B2 (en) | 2016-04-19 | 2019-04-23 | Nokia Of America Corporation | Method and apparatus for a segmented on-chip digital interface block |
US10745425B2 (en) | 2016-07-01 | 2020-08-18 | Shenzhen Yhlo Biotech Co., Ltd. | Chemiluminescence enhancer and chemiluminescence immunodetection kit |
US10540186B1 (en) | 2017-04-18 | 2020-01-21 | Amazon Technologies, Inc. | Interception of identifier from client configurable hardware logic |
WO2019123458A1 (en) * | 2017-12-24 | 2019-06-27 | Technion Research & Development Foundation Limited | Message authentication based on a physical location on a bus |
US10496593B1 (en) * | 2018-06-01 | 2019-12-03 | Nxp Usa, Inc. | Inter-processor communication and signaling system and method |
US10496594B1 (en) | 2018-06-01 | 2019-12-03 | Nxp Usa, Inc. | Inter-processor communication method for access latency between system-in-package (SIP) dies |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4199661A (en) * | 1978-05-05 | 1980-04-22 | Control Data Corporation | Method and apparatus for eliminating conflicts on a communication channel |
WO1982003931A1 (en) * | 1981-04-27 | 1982-11-11 | Kris Bryan | Multi-master processor bus |
JPH0740252B2 (ja) * | 1986-03-08 | 1995-05-01 | 株式会社日立製作所 | マルチプロセツサシステム |
JP2728760B2 (ja) * | 1990-02-13 | 1998-03-18 | 株式会社東芝 | データ伝送装置並びに受信データ処理方法 |
FR2663137B1 (fr) * | 1990-06-12 | 1994-07-29 | Sgs Thomson Microelectronics | Dispositif electronique de connexion. |
EP0461408B1 (en) * | 1990-06-14 | 1996-04-17 | Mitsubishi Denki Kabushiki Kaisha | Network address managing method and system |
US5430848A (en) * | 1992-08-14 | 1995-07-04 | Loral Fairchild Corporation | Distributed arbitration with programmable priorities |
US5553245A (en) * | 1994-05-11 | 1996-09-03 | Macronix International Co., Ltd. | Automatic configuration of multiple peripheral interface subsystems in a computer system |
US5701420A (en) * | 1994-07-20 | 1997-12-23 | Intel Corporation | Method for initializing an array of configurable components |
-
1997
- 1997-09-05 US US08/924,368 patent/US5948089A/en not_active Expired - Lifetime
-
1998
- 1998-07-22 DE DE69832410T patent/DE69832410T2/de not_active Expired - Lifetime
- 1998-07-22 JP JP2000511115A patent/JP4259751B2/ja not_active Expired - Lifetime
- 1998-07-22 CN CNB988109328A patent/CN1150460C/zh not_active Expired - Lifetime
- 1998-07-22 AU AU85764/98A patent/AU8576498A/en not_active Abandoned
- 1998-07-22 WO PCT/US1998/015006 patent/WO1999013405A1/en active IP Right Grant
- 1998-07-22 KR KR1020007002388A patent/KR100572372B1/ko not_active IP Right Cessation
- 1998-07-22 EP EP98936927A patent/EP1027657B1/en not_active Expired - Lifetime
- 1998-07-22 AT AT98936927T patent/ATE310277T1/de not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
DE69832410D1 (de) | 2005-12-22 |
WO1999013405A1 (en) | 1999-03-18 |
JP2001516100A (ja) | 2001-09-25 |
AU8576498A (en) | 1999-03-29 |
EP1027657A4 (en) | 2003-04-09 |
CN1150460C (zh) | 2004-05-19 |
CN1301364A (zh) | 2001-06-27 |
EP1027657A1 (en) | 2000-08-16 |
EP1027657B1 (en) | 2005-11-16 |
KR100572372B1 (ko) | 2006-04-19 |
KR20010023734A (ko) | 2001-03-26 |
DE69832410T2 (de) | 2006-08-03 |
ATE310277T1 (de) | 2005-12-15 |
US5948089A (en) | 1999-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4259751B2 (ja) | リアルタイムで動的に帯域幅を割り当てる完全パイプライン式固定待ち時間通信システム | |
JP5036120B2 (ja) | 非ブロック化共有インターフェイスを持つ通信システム及び方法 | |
JP4638216B2 (ja) | オンチップバス | |
US6725313B1 (en) | Communications system and method with multilevel connection identification | |
KR100899951B1 (ko) | 캐시 메모리 버스트 싸이클 동안 버스 중재를 제어하는시스템 및 방법 | |
US5507002A (en) | Peripheral component interconnect special cycle protocol using soft message IDS | |
US8190805B2 (en) | Information processing apparatus and method for reconfiguring the information processing apparatus | |
KR20000053380A (ko) | 다양한 기능 모듈 접속용 포트 매니저 제어기 | |
JP2000181878A (ja) | 共有メモリ型ベクトル処理システムとその制御方法及びベクトル処理の制御プログラムを格納する記憶媒体 | |
JP2008135068A (ja) | スプリットバス及びタイムスロットインターフェースバス調停を用いる共有デバイス並びにメモリ | |
JP3864252B2 (ja) | 相互通信プリプロセッサ | |
US7107365B1 (en) | Early detection and grant, an arbitration scheme for single transfers on AMBA advanced high-performance bus | |
US6618782B1 (en) | Computer interconnection bus link layer | |
CN116028413A (zh) | 一种总线仲裁器、总线仲裁的方法、装置及介质 | |
US6446151B1 (en) | Programmable time slot interface bus arbiter | |
US5668949A (en) | System utilizing multiple address decode resources and decoder receiving address determines address corresponding to resource based on select and ready signals by that particular resource | |
JP2001216279A (ja) | リアルタイム・システム用時分割多重メモリーを用いた、複数のプロセッサーのインターフェース及び、同期化及びアービトレーション方法 | |
KR20010014989A (ko) | 데이터 전송 시스템 | |
US6470410B1 (en) | Target side concentrator mechanism for connecting multiple logical pipes to a single function utilizing a computer interconnection bus | |
EP1271331B1 (en) | Method for enabling a communication between processes and processing system using the same method | |
JPH04349558A (ja) | 選択可能な中央処理ユニット付きワークステーションのアーキテクチャー | |
JP2002189705A (ja) | マルチプロセッサ配列 | |
US5590289A (en) | Method and apparatus for initializing a computer system having central and distributed address decode memory bus resources | |
KR100243868B1 (ko) | 주 전산기에서의 중재로직 방법 | |
JP2002175265A (ja) | 直接メモリ・アクセス・コントローラを有するディジタル信号プロセッサにおける複数の構成素子間での信号群交換装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050704 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080318 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080513 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080812 |
|
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: 20090106 |
|
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: 20090203 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140220 Year of fee payment: 5 |
|
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 |