(57)【特許請求の範囲】
【請求項１】
それぞれがデータ発信元，データ宛先および転送されるべきデータ量を特定する複数個のデータ転送要求を受信し優先順位付けし発送することができる要求待ち行列コントローラと、
該要求待ち行列コントローラに接続され、発送されたデータ転送要求を受信するデータ転送ハブと、
データ転送ハブに接続された、各ポートに対して同じとなるように構成されている内部インタフェースと、動作時に前記ポートに接続される外部メモリ／装置用に構成された外部インタフェースとを有する複数個のポートであって、前記内部インタフェースと前記外部インタフェースとがそれらの間でデータ転送を行うように接続された、複数個のポートと、
を具備し、
前記データ転送ハブが、前記データ発信元に対応する発信元ポートから、現に実行しているデータ転送要求下で転送されるべきデータ量に対応する多量のデータ宛先に対応する宛先ポートへのデータ転送を制御することができる、
データ転送コントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、幾つかの例外はあるが、ＭＩＮＤマルチプロセッサとしばしば称され、「多重命令ストリーム・多重データストリームプロセッサ」として分類されているアーキテクチャのクラスに一般に入る汎用マルチプロセッサに関する。この分類は、さらに以下の２つの副分類に分けられる。
（１）図１に示されている統合共有メモリ・アーキテクチャ
（２）図２に示されている分散メモリ・アーキテクチャ。
【０００２】
【従来の技術】
図１において、共有主メモリ機能ブロック１００は、図示の４個のプロセッサ１０１,１０２,１０３,１０４のうちのいずれか１個によってアクセスされる。外部メモリ・インタフェース・ブロック１０５は、その内部にＤＲＡＭコントローラ，ＳＲＡＭコントローラ，ＳＤＲＡＭコントローラ，外部ディスクメモリ・インタフェース，外部ＲＯＭインタフェース，ＲＡＭバスまたは同期リンクＤＲＡＭインタフェースおよびすべての他の外部メモリ装置がある数個の可能なサブブロックを含む。
【０００３】
ＸＤＭＡ（外部直接メモリアクセス）インタフェース１０６は、完全に自律的な外部装置に対するインタフェースである。外部Ｉ／Ｏ機能ブロックはすべての他の外部インタフェースを含む。高速シリアルＩ／Ｏポートコントローラ，並列Ｉ／Ｏインタフェース，ＰＣＩバスコントローラおよびＤＭＡ（直接メモリ・アクセス・インタフェース）コントローラは、それらの例である。
【０００４】
図２において、分散メモリ・マルチプロセッサ機では、主メモリは、図示のようにプロセッサ・ノード２０１，２０２，２０３，２０４，２０５，２０６，２０７の間に分散されており、すべての外部メモリ・インタフェースは、相互接続ネットワーク２１０を介してなされる。ＸＤＭＡ外部直接メモリアクセスは、ＸＤＭＡ制御およびＩ／Ｏインタフェース機能を含むＸＤＭＡポート２０８において集中化されている。ＤＭＡ（直接メモリアクセス）は、各プロセッサＩ／Ｏノードにおいて分散化されるか、図示されているようにＤＭＡ機能ブロック２０９において集中化され得る。
【０００５】
１個のプロセッサ・ノードから別のノードへのおよびいずれかのプロセッサ・ノードから外部装置およびメモリへの図２におけるデータの交換は非常に複雑であり、競合するデータ転送要求によって引き起こされる衝突が頻繁である。
【０００６】
おそらく２個から４個のプロセッサを有するシステムは、統合共有メモリ型か分散メモリ型かである。しかし、必要なプロセッサ数が増大するに従って、分散メモリ・アーキテクチャの利点が顕著になってくる。これは、統合共有メモリ１００が多数プロセッサの帯域幅要求をサポートしきれないという理由による。
【０００７】
分散メモリ・マルチプロセッサに要求される相互接続ネットワークの複雑さは、共有メモリシステムの帯域幅制限を克服する犠牲要素の１つである。別の犠牲要素は、アドレス指定の複雑さや、付加的干渉性およびプロトコル要件である。分散メモリシステムの不利益は、単一の共有メモリ・プロセッサ・アーキテクチャよりも大きな待ち時間が必要となる各プロセッサおよびプロセッサの任意の対の間でのデータ通信という実に厄介なタスクをこの複雑な相互接続ネットワークが持つことにある。
【０００８】
単一のプロセッサを有する従来のデジタル信号プロセッサ（ＤＳＰ）は、代表的には、直接メモリアクセス、すなわち、ＣＰＵ動作を要求しないメモリアクセス法を含む。また、従来、このアクセスは、Ｉ／Ｏ装置およびコントローラ機能を含む「ＤＭＡ」機能ブロックによって行われている。この機能的な特徴は、ＣＰＵ，内部メモリ，外部メモリおよびそのチップの別の部分との外部装置のインタフェースを可能にさせる。
【０００９】
ＤＭＡは、通常、外部装置インタフェースに対して使用される用語であるが、外部ＤＲＡＭメモリは、さらに厳しい処理能力要求を持つ簡単な別の外部装置として考えられ、簡単なＩ／Ｏ装置の代表的な周波数よりも幾分高い周波数で動作する。ＤＭＡインタフェースは、ＣＰＵをそれ自身のこれらの外部装置へのサービスから解放する通信リンクであり、直接ＣＰＵ外部装置インタフェースで消費されるであろう多くのＣＰＵサイクルの損失を防止する。
【００１０】
デジタル信号処理（ＤＳＰ）は、マイクロコントローラやマイクロプロセッサによって実行される汎用（ＧＰ）処理とは大きく異なっている。１つの重要な違いは、実時間データ処理に対する典型的な厳しい要件である。例えば、モデムアプリケーションにおいては、すべてのサンプルが処理されることが絶対に必要である。単一のデータポイントを喪失しても、ＤＳＰアプリケーションを失敗させる。処理データサンプルは汎用処理に共通なタスキングやブロック処理のモデルを引き受けるが、ＤＳＰシステム内の実際のデータ移動はそのシステムの厳格な実時間要求に忠実でなければならない。
【００１１】
その結果、ＤＳＰシステムは、集積化されかつ効率的なＤＭＡ（直接メモリアクセス）エンジンに大きく依存している。ＤＭＡコントローラは、周辺機器やＤＳＰ自体からの転送要求を実時間で処理する責務を負っている。システムの実時間要求に適合させるために、ＤＭＡによるすべてのデータ移動は中央プロセッサユニット（ＣＰＵ）の介入なしに発生させられるようにする必要がある。すなわち、タスクが動作するデータストリームほどそのタスクのスケジュールがきっちりと制御されないソフトウエア・タスキング・モデルでＣＰＵは動作するので、ＤＭＡエンジンは、そのシステムにおけるすべての実時間データストリーム要求を満たす重責を負わねばならない。
【００１２】
これらの要求を満たすために取られる方法が幾つかある。以下のものは、ＤＭＡエンジンの従来の構成と、本発明すなわちハブおよびポートを持つ転送コントローラ（ＴＣＨＰ）・アーキテクチャによって与えられる独自のＩ／Ｏ解決法へのそれらの展開の簡単な要旨である。
【００１３】
【発明が解決しようとする課題】
従来のＤＭＡエンジンは、ＤＳＰシステム内で幾つかのまたは恐らくすべてのアドレスの読出しおよび書込みを実行できる簡単なアドレス発生器の組からなる。そのアドレス発生論理は、普通、１組のＤＳＰメモリマップ化レジスタからの再ロード能力を持つ簡単なカウンタ機構として構成される。ＤＭＡコントローラの代表的な用途は、そのＤＳＰが実行開始アドレスおよび転送するデータ量を表わしているカウントをカウンタにロードすることである。ＤＳＰは、その転送の発信元アドレスおよび宛先アドレスの両方を供給する必要がある。一旦この情報がカウンタにロードされると、ＤＳＰはメモリマップ化レジスタ書込みによってＤＭＡを開始することができる。その後、ＤＭＡエンジンは、読出しおよび書込みアクセスを実行し始め、さらなるＤＳＰ介入なしに要求データを動かす。ＤＳＰは、自由に他のタスクを実行し始める。
【００１４】
ＤＭＡが発信元および宛先ロケーションへの読出しおよび書込みを実行すると、各カウンタにおいて、アドレスはインクリメントされるが、カウントはデクリメントされる。一旦カウントがゼロに達すると、転送が完了するとともにＤＭＡが終了する。ほとんどのＤＭＡは、この「終了した」状態を状態ビットすなわち割り込みによってＣＰＵに信号として戻す機構を含む。完了状態を判定するのにＤＳＰについてのポーリング・ループを要求しないので、一般に、割り込み方法が好ましい。
【００１５】
最も簡単なＤＭＡは、基礎的な一次元線形転送を与える。さらに進歩したＤＭＡエンジンは、多次元，索引付きアドレス指定およびリバース並びに所定のアドレス指定モードを与える。
【００１６】
ＤＳＰコアは一層高い性能に達しており、高い処理能力を利用可能なアプリケーションが開けてきた。しかし、これとともに、一層の高速性が求められ、ＤＭＡエンジンを一層複雑なものとしている。例えば、前の世代のＤＳＰが単一オーディオチャンネルに対して充分な処理能力を有していたとすると、単一のＤＭＡエンジンで充分であろう。しかし、これより１０倍の性能を持つ新しいＤＳＰアーキテクチャが導入されると、オーディオの多チャンネルが処理され得る。しかし、ＤＳＰ処理だけでは、付加チャンネル容量を与えるには充分ではない。多チャンネルに必要なデータ移動機能を与えるために、ＤＭＡの性能もまた向上させられる必要がある。
【００１７】
より一層の高性能を与えるという問題に正面から取り組もうとするＤＭＡに共通となってきている幾つかの特徴がある。第１は、より多くのＤＭＡチャンネルの取り込みである。単一のＤＭＡチャンネルは、基本的に、単一のＤＭＡを処理するために必要なすべてのハードウエアからなり、また、一般に、それが基本的な読出しおよび書込み動作を実行することができるようにするために発信元および宛先アドレス・レジスタ／カウンタとバイト・カウント・レジスタ／カウンタと関連の制御論理とを少なくとも含むことになる。
【００１８】
そのＤＭＡが支持するアドレス指定モードに依存して、付加的論理も必要である。多チャンネルＤＭＡでは、増大したチャンネル能力を与えるために、単一チャンネル用の論理が一般に多数回繰り返されるだけである。チャンネルの多重化事実に加えて、多チャンネルＤＭＡは、すべてのチャンネルによる時分割アクセスをそれらのチャンネルがアドレス指定できるメモリ／周辺機器に与えるために、幾つかの調停論理も含む必要がある。
【００１９】
従来のＤＭＡは、２個から１６個のチャンネルをどこかに含んでいる。付加チャンネルの利点は、各チャンネルが特定の種類の転送用のパラメータを含み得ることにある。ＤＳＰは、各チャンネルを前もってセットアップし、単一のチャンネルのみが存在する場合になされなければならないやり方を、新たな転送が行われようとする度毎にＤＭＡレジスタに再ロードする必要がない。
【００２０】
従来のＤＭＡエンジンに対する第２の利点は、ＤＭＡを自律的に開始するための周辺機器の能力である。この機能は、一般に、ＤＳＰ割り込みに類似の方法で与えられる。ＤＳＰは、さらに、ＤＭＡパラメータを最初にセットアップする責務を負っている。しかし、チャンネルは、ＤＳＰにそれを開始することを要求するのではなく、周辺機器の要求で読出しおよび書込みを実行する。これは、特に、処理するための多数のデータストリームがあるシステムでは、利点であり、また、１つのストリームから次のストリームに切替えるＤＳＰタスクを常に持つことは効率的ではないであろう。これはまた、データストリームが非常に異なる種類や速度にあるときに、重要な利点である。各ＤＭＡチャンネルは独立してプログラムされるので、各転送型用のパラメータが調節され得る。
【００２１】
非常に高度な従来のＤＭＡコントローラが含む、ここで留意されるべき最後の最適化は、ダイナミック再ローディングのオプションである。このプロセスは、ＣＰＵ介入を必要とすることなく１組のレジスタからそれ自身のパラメータをＤＭＡチャンネルが再ロードできるようにする。幾つかのシステムでは、再ロードはメモリから直接発生させることができ、拡張された記憶容量による非常に高能力のＤＭＡ機構を創造できる。再ロード値はＤＳＰによってセットアップされるので、多くの複雑なＤＭＡは互いに効果的にリンクされる。すなわち、１つのＤＭＡパラメータ組の完了は、最初のものとは全く異なる種類である他の組の再ロードを強制的に行なわせる。
【００２２】
パラメータのインテリジェント・セットアップによって、ＤＭＡは、ＤＭＡハードウエアによって直接サポートされない多くの複雑な機能を実行できる。ダイナミック再ロードは、その要求をＤＳＰから取り除いてＤＭＡチャンネルのそれぞれに再ロードするので、ＤＭＡを介して多くのデータストリームが取り扱われるシステムにおいても非常に重要である。
【００２３】
ＤＭＡはＤＳＰシステムにおける強力な道具であるが、それらは制限も持つ。従来のＤＭＡエンジンの基本的な制限は、付加チャンネル容量を加えることが付加的なハードウエア（一般的には、全チャンネルの複製）を要求することである。多チャンネル間でのレジスタの分配のような幾つかの最適化は、この領域で為される。しかし、一般的に、次の規則が適用できる。すなわち、Ｎ個のチャンネルは単一チャンネルのＮ倍のコストがかかる。
【００２４】
この基本原理が転送コントローラ（ＴＣ）の初期開発を導いた。ＴＣは、ＤＳＰシステム（例えば、キャッシュコントローラ）のＤＭＡおよび他のデータ移動エンジンの機能を単一モジュール中に統合整理する独特の機構である。
【００２５】
そのような機能の統合整理は利点も有するが不利な点も持つ。統合整理の最も重要な利点は、同じ種類のアドレス発生ハードウエアの多くの事例が実装される必要がなくなるので、それが一般にハードウエアを節約するということである。
【００２６】
より高いレベルでは、アドレス発生を統合整理することは、本質的にメモリマップの観点から変更するための設計を一層簡単化するので、有益である。例えば、周辺機器がシステムに加えられたりそれから除去されたりする場合には、統合モジュールが、変更される設計の唯一の部分であろう。分散アドレスシステム（例えば、多チャンネルＤＭＡ）では、ＤＳＰメモリコントローラと同様に、ＤＭＡチャンネルのすべての例が変更されるであろう。
【００２７】
統合整理モデルの基本的に不利な点は、より高いクロック速度に対するその本質的な隘路および難題にある。さらに、単一モジュールはそれが取って代わる個々の部品のいずれよりも大きいので、一般に、統合整理されたアドレスモデルへの移動と関連する付加された複雑さがある。
【００２８】
ＴＭＳ３２０Ｃ８０／ＴＭＳ３２０Ｃ８２  転送コントローラ
最初の転送コントローラ（ＴＣ）モジュールは、テキサスインスツルメンツからＴＭＳ３２０Ｃ８０  ＤＳＰに対して開発された。このＴＣは、１９９６年９月２４日付けの「トランスペアレンシーを持つ転送コントローラ」と題する米国特許第５，５６０，０３０号の主題になっている。このＴＣは、キャッシュと４個のＤＳＰおよび単一のＲＩＳＣ（縮小命令セット・コンピュータ）プロセッサからの長距離転送（この機能は「直接外部アクセス」として参照される。）とをサービスするために必要なアドレス発生論理と一緒に、従来のコントローラのＤＭＡ機能を統合整理した。
【００２９】
ＴＭＳ３２０Ｃ８０  ＴＣアーキテクチャは、多チャンネル用の多重セットではなく一組のアドレス発生およびパラメータレジスタのみが要求されるという点で、ＤＭＡとは基本的に異なっている。しかし、一組のレジスタはすべてのＤＭＡ要求者によって利用され得る。ＤＭＡ要求は、装置の周辺における符号化入力セットを介してＴＣに知らされる。さらに、ＤＳＰのそれぞれは、ＤＭＡ要求をＴＣに提供することができる。「外部開始パケット転送」である外部符号化入力は、ＸＰＴとして参照される。一方、ＤＳＰ開始転送は、「パケット転送（ＰＴ）」として参照される。縮小命令セット・コンピュータ（ＲＩＳＣ）プロセッサも、ＰＴ要求をＴＣに送ることができるであろう。
【００３０】
ＰＴ（または、ＸＰＴ）要求がＴＣに与えられると、所定のスキームに応じて優先順位が付けられる。ＸＰＴは最も頻繁に即時サービスを要求するので、ＸＰＴには最高順位が与えられる。にもかかわらず、ＴＣに含まれるＰＴサービスは、内部メモリの所定のロケーションを読み出して、転送用のパラメータをアクセスする点を決定する。このロケーションは、「リンク付きリスト開始アドレス」と称される。転送パラメータは、従来のＤＭＡにおいてのように、バイト・カウントとともに、基本発信元アドレスおよび基本宛先アドレスを含む。
【００３１】
しかし、ＴＭＳ３２０Ｃ８０ ＴＣは、それがさらに多くの転送モードに対するサポートを含むようになったという点で、非常に改良された。これらのモードは、全部で１３０を越え、３次元まで含んでいる。オプションは、ルックアップ・テーブル転送，オフセット案内転送，索引付き形態のウォーキング・スルー・メモリおよび逆モードアドレス指定などの特徴を含んでいる。
【００３２】
発信元と宛先との間で交換するパラメータのようなさらなる利点は、一組のパラメータをデータ捕獲用に使用可能とし、その後、最初に取り込まれたロケーションに戻させる。この特徴は、ＤＳＰ処理ルーチンにおいて非常に有効であることが分かった。ＴＭＳ３２０Ｃ８０ ＴＣ ＰＴは、ＰＴのソフトウエア・リンク付きリストがシステムで利用可能なメモリに至るまで発生され得るように、無限のリンク付けをサポートした。
【００３３】
ＴＭＳ３２０Ｃ８０ ＴＣは、さらに、装置用の主メモリ・インタフェースを与えた。ＳＤＲＡＭ，ＤＲＡＭ，ＶＲＡＭ，ＳＲＡＭおよびＲＯＭ装置と接続できる単一６４ビット・データパス外部インタフェースが設けられた。ダイナミックメモリ用のプログラム可能リフレッシュ制御もＴＣによって与えられた。外部インタフェースは、ダイナミックページおよびバス・サイジングと単一サイクル・スループットとを与えた。６０ＭＨｚで、４８０ＭＢ／ｓのバースト転送速度まで達成された。実際のアプリケーションでは、４２０ＭＢ／ｓよりも小さい持続可能速度が可能であった。
【００３４】
ＴＭＳ３２０Ｃ８０ ＴＣの内側には、多重ＤＳＰノードメモリへのアクセスが、チップメモリ上のすべてに対して６４ビット・データパスを含む大きなクロスバーを介して与えられた。クロスバー・アクセスは、サイクル毎にＤＳＰ，ＲＩＳＣプロセッサおよびＴＣ間で総当たり方式で調停された。結局、内部メモリポートは２．９ＧＢ／ｓの帯域幅までサポートすることができた。
【００３５】
ＴＭＳ３２０Ｃ８０ ＴＣは一組のＰＴ処理レジスタのみを含むので、すべてのＰＴはそれらを使用しなければならなかった。一旦ＰＴが開始すると、そのＰＴが完了するまで次の要求は阻止された。この「順次阻止」発生を取り扱うため、ＴＣは中断（サスペンション）として知られた機構を構成した。そこでは、アクティブＰＴは、より高い優先順位のもののために停止させられ、高い優先順位転送が完了すると自動的に再始動した。ＴＣはメモリマップ化セットの「リンク・リスト・ポインタ」によってすべてのＰＴ要求を管理したので、中断を実行するためその参照されたアドレスに戻るＴＣレジスタのパラメータをコピーすることによってＴＣが転送を中断することは簡単であった。システム内のすべての転送に対して一組のレジスタを再使用するこの能力は、ＴＣと伝統的なＤＭＡとの間の単一の最も重要な差異であった。
【００３６】
ＴＭＳ３２０Ｃ８０ ＴＣは、非常に柔軟性があるにも関わらず、多くの欠点を持っている。アーキテクチャに関する主要な問題点は、それが非常に複雑であるということである。ＴＭＳ３２０Ｃ８０ ＴＣの歴史上、外部メモリ・インタフェースは５回の主な装置変更のうちの４回において変更された。ＴＭＳ３２０Ｃ８０ ＴＣもまた外部メモリ・インタフェースを設けていたので、次から次ぎに大きく変更された。このことは、各変更に関して新たな未知のタイミング・ウィンドウを開き、多くの装置欠陥をもたらした。内部クロスバーもまた高速化に対する重要な制限であった。
【００３７】
ＴＭＳ３２０Ｃ８０ ＴＣに関する最後の重要な問題は、転送中断のサポートにあった。この機構は、進行中の転送を停止させ、それらのパラメータをメモリに書き戻させ、新たな転送が自動的に始動した。優れたプログラミングおよび使用モデルではあるが、コピーバックおよびパラメータ再読出しのプロセスは問題が多くあった。多くのタイミング・ウィンドウは、転送が締め出される必要がある間存在した。すなわち、実時間データ・ストリーミング・システムにおける仮想不可能性があった。
【００３８】
【課題を解決するための手段】
本発明のハブおよびポートを持つ転送コントローラＴＣＨＰは、プロセッサシステムおよびその周辺機器にわたっての通信タスクを集中機能状態にあるものとみなす相互接続ネットワークである。ＴＣＨＰ内で、共通中央パイプラインによって一緒に結合された１個のハブおよび多数のポートのシステムは、ＤＳＰプロセッサノード，外部装置および外部メモリ間のすべてのデータ通信用の媒体である。これは、ＤＳＰノードが各他のＤＳＰノードのメモリに直接アクセスを行わないように、２個以上のＤＳＰノード間での通信を含む。
【００３９】
図３は、ＴＣＨＰの基本原理特徴を示す。ＴＣＨＰは、基本的に、転送要求パケットの形態でデータを受信し優先順位付けし発送する要求待ち行列コントローラ３００をそのフロントエンド部に有するデータ転送コントローラである。要求待ち行列コントローラ３００は、ハブユニット３１０内で、データ転送要求パケットを受信し、それらを優先順位付けするとともに優先順位レベルをそれぞれが表わすＮ個のチャンネルの１つにそれらを割当てることによって最初にそれらを処理するチャンネル・レジスタ３２０に接続している。これらのチャンネル・レジスタは、実際には発信元（読出し）および宛先（書込み）動作用のアドレス計算ユニットである発信元３３０および宛先３４０パイプラインとインタフェースする。
【００４０】
これらのパイプラインからの出力は、主プロセッサ・クロック周波数でまたはより低い外部装置クロック周波数でクロックされるＭ個のポート（参照符号３５０〜３５５として図３に示された６個）に通信される。ポート３５３の宛先書込みアドレスを持つ１個のポート（例えば、ポート３５０）からの読出しデータは、データ・ルータ装置３６０を介してハブ宛先制御パイプラインに戻される。
【００４１】
ＴＣＨＰは、全メモリマップの様々なロケーション間の通信ハブとしてみなされる。多重ＤＳＰプロセッサノードを有する幾つかのシステムでは、そのようなノードはそれぞれ、局所的に割り当てられたメモリマップに対してのみ直接アクセスを行う。本発明のシステムでは、ＤＳＰローカル空間の外側へのいかなるアクセスも、ＴＣＨＰ有向データ転送によって排他的に実行される。
【００４２】
ＴＣＨＰによってサポートされる種々の形態のデータ転送は、次のようなものである。
１．直接メモリアクセス（ＤＭＡ）：
ＤＳＰプロセッサノードから実行されるプログラム命令によって明示的に開始されるデータ転送
２．外部直接メモリアクセス（ＸＤＭＡ）：
自律的外部装置によって明示的に開始されるデータ転送
３．長距離転送：
ＤＳＰローカルメモリ空間の外側でのロード／記憶動作
４．データキャッシュ（ＤＣ）転送：
ＤＳＰプロセッサノードからのデータキャッシュ欠落補充／書戻し要求
５．プログラムキャッシュ（ＰＣ）転送：
ＤＳＰプロセッサノードからのプログラムキャッシュ欠落補充要求。
【００４３】
要約すると、本発明のＴＣＨＰは、多くの周辺機器および／またはメモリポートが取り付けられるバックプレーンとして働く極めて並列的なかつ極めてパイプライン化されたメモリ・トランザクション・プロセッサである。ＴＣＨＰは、多重同時アクセスのサポート，低ターンアラウンドのサイクル毎の調停および主プロセッサクロックと非同期のすべてのポートの分離クロッキングを含む現存のＤＭＡおよびＸＤＭＡコントローラ以上の多くの特徴を与える。
【００４４】
【発明の実施の形態】
ＴＣＨＰおよびそれと密接に関連する機能ユニットは、５つの主エンティティに分けられる（図４を参照）。
【００４５】
１．転送要求供給機構４０１から転送要求パケットを取り込む要求バスマスター４００。これらの転送要求はプロセッサ要素または他の装置から発せられる。これらの転送要求パケットは、ＴＣＨＰ内にある待ち行列管理器４２０に入力される。転送要求は、特定数のデータ要素を１つの広域アドレスから他の広域アドレスに移動させるためのＴＣＨＰに対する命令（好適な実施例では、命令ワードは、４倍ワード長または２倍長ワード長、すなわち、ほぼ１２８ビット長である。）である。
【００４６】
２．図４の点線内に示されたＴＣＨＰは、待ち行列管理器４２０とデュアルポートＲＡＭ４２５待ち行列記憶装置とチャンネルレジスタ４３９を持つハブエンジン４３５と発信元／宛先パイプラインおよびルーティングユニット４４９とを含む。点線は、外部ポートインタフェースユニットに向けられており、ＴＣＨＰプロパーがこれらのポート内で終端することを示している。ハブエンジン４３５は、転送サービスを実行し、装置が取り扱うことができるより一層小さな転送に分ける。
【００４７】
３．特別なＴＣＨＰポートとしてみなされる内部メモリポート（ＩＭＰ）ノードマスター４５０は、内部メモリを代表するポートをプロセッサノードに接続するデータ転送バス（ＤＴＢ）４５５にインタフェースする。プロセッサノードインタフェースは、ここでは、すべての分散内部データメモリおよび内部プログラムメモリコントローラを含み、プロセッサシステム上のすべての他の制御レジスタにインタフェースする。
【００４８】
４．データ転送バス（ＤＴＢ）４５５（すなわち、別の関連するＴＣＨＰユニット）は、内部メモリを代表するポートをチップコアのＤＳＰプロセッサノードおよび他のユニットにおけるメモリインタフェースに接続する。
【００４９】
５．ハブエンジンと外部メモリまたは周辺ポートとの間のバッファとして働く外部ポートインタフェース４４０〜４４７。
【００５０】
本発明のＴＣＨＰは、一般に、多重ＤＳＰプロセッサノードが使用されるかどうかの複雑なシステムに適用可能である。待ち行列を作成する能力と、多重発信元からのデータ転送能力と、外部メモリを含む優先順位の効率的な制御で多重外部インタフェースとインタフェースしながらそれらをサービスする能力とは、本発明の転送コントローラ概念が可能にさせる付加的利点である。一般的な意味において、本発明の転送コントローラは、多重「転送要求者」を、これらがＤＳＰプロセッサノード，中央処理プロセッサユニット（ＣＰＵ）またはデータ転送を要求する他の一般機能ブロックであるかどうか処理する。
【００５１】
本発明のＴＣＨＰは、古いＴＭＳ３２０Ｃ８０  ＴＣの考え方に取って代わる幾つかの新たな考えを導く。
【００５２】
１．第１に、それは画一的にパイプライン化される。前のＴＣ設計では、パイプラインは、その装置によってサポートされた外部メモリに密に結合されていた。好適な実施例では、ＴＣは複数の多重外部ポートを含み、それらのすべては、ＴＣに影響を与えることなく周辺機器およびメモリが自由に交換されるように、ＴＣハブと同一視される。
【００５３】
２．第２に、ＴＣＨＰは転送の同時実行の概念を持つ。すなわち、Ｎ個までの転送がその装置の多重ポート上に並列に生ずる。ここで、Ｎは、ＴＣＨＰコアのチャンネル数である。ＴＣＨＰコアの各チャンネルは、転送用のワードカウントおよび他のパラメータに加えて現時点の発信元および宛先アドレスを探知する機能的に丁度１組のレジスタである。
【００５４】
３．第３に、ＴＣＨＰは、専用待ち行列ＲＡＭにおいて転送を待ち行列化するための機構を含む。既知のＴＣ技術の初期の装置（例えば、ＴＭＳ３２０Ｃ８０）では、ルールは、同時に起こるプロセッサ毎に未解決な１つの転送であった。待ち行列ＲＡＭによって、ＤＳＰをストールする前に、プロセッサは膨大な数の転送要求を発することができる。
【００５５】
４．新たなＴＣＨＰが与える第４の主要な要素は、書込み駆動処理に対するサポートである。ほとんどのＤＭＡおよびＴＭＳ３２０Ｃ８０形式のＴＣ設計は、読出し駆動処理に依っている。
読出し駆動処理では、メモリ移動においては、書込みは読出しデータが戻るまで明らかに発生され得ないので、読出しアクセスがその動作を規制する。同様に、書込みが実行されようとする宛先が発信元と比べて非常に遅い場合（いわゆる周辺機器）には、発信元は書込みによって支えられる。特に、発信元がすべてのプロセッサおよび周辺機器が依存する主メモリである場合には、これは非常に非効率的である。より速いメモリポートの使用を最大化するために、ＴＣＨＰは、書込み駆動処理と呼ばれるものを設ける。
【００５６】
基本的なＴＣＨＰアーキテクチャは、発信元および宛先（ＳＲＣおよびＤＳＴ）として参照される２つのパイプラインを含む。各パイプラインは、それが６つの論理機能を実行する論理を含むという点で、機能的に同一である。これらを以下の表に示す。
【００５７】
【表１】
0004359377.tif 000002
【００５８】
上記の６つの段階は、各パイプラインによって実行される必要のあるＬＯＧＩＣＡＬ動作を表わす。ＬＯＧＩＣＡＬ状態は、いかなるサイクル数においてもＰＨＹＳＩＣＡＬパイプライン段にマップ化される。ＴＣ概念を利用した１つの初期の装置は、各ＬＯＧＩＣＡＬ状態に対して１個の、６個のＰＨＹＳＩＣＡＬ段を含んでいた。他の装置は、その装置用の低クロック周波数要求によって許容される丁度３個のＰＨＹＳＩＣＡＬ段を含んでいた。他のＰＨＹＳＩＣＡＬ段数も、ＴＣに対してアーキテクチャ変更を行うことなく、同様に許容される。この特徴は、ＴＣハブを広範囲の周波数まで取扱い可能にさせる。
【００５９】
発信元（ＳＲＣ）パイプラインは、読出しおよび前書込み命令を発する責務を負う。読出し命令は簡単であり、前書込み命令は、上述したように書込み予約ステーションで空間を予約するために使用される。
【００６０】
宛先（ＤＳＴ）パイプラインは、書込み命令のみを発する責務を負うが、ルーティングユニットとして参照されるモジュールともインタフェースする。機能的に、ルーティングユニットは完全な直交クロスバーであり、すべてのポートを互いに接続する。しかし、普通のクロスバーとは違い、ルーティングユニットはＴＣＨＰパイプラインの一部であり、したがって、ＴＭＳ３２０Ｃ８０や他のクロスバー・アーキテクチャにあったような速度制限はない。
【００６１】
２つのパイプラインは互いに独立に動作できる。したがって、単一の読出しおよび書込み命令がサイクル毎に発生される。命令は、「バースト」として参照されるものでポートに発せられる。バーストサイズは、そのポートがインタフェースするメモリまたは周辺機器の種類によって決定される。「欠陥バーストサイズ」またはＴＣがアクセスを最適化しようとするものは、各ポートインタフェースでのタイ・オフ（tie-off）によって決定される。これを行うことによっては、ＴＣＨＰは、どのような種類のメモリまたは周辺機器が各ポートに取り付けられているかを知ることから隔離される。命令は、同時に「バースト」すなわちワードに対して発せられ（一般に、バーストは8個の３２ビットワード長に対して１つである。）、完了までに多重周辺機器サイクルを要するので、多重アクセスは同時にポートに向けられ得る。各ポートインタフェースは、入力読出しデータを捕獲するためのバッファ動作と、バーストパケットが形成される間のバッファ出力書込みデータとを含む。
【００６２】
これらのバッファは、ＥＰＩＵまたは外部ポートインタフェースユニットとして参照されるものに物理的に存在する。パイプラインの外ではあるが、ＥＰＩＵはＴＣＨＰの物理的一部である。次に、ＴＣ ＨＵＢに対するＥＰＩＵインタフェースは、すべてのポートに対して同じである。プラグ−ｎ−プレイ（Plug-n-Play）交換可能モデルに対してモジュールが開発されるように、そのＥＰＩＵは、次に、周辺機器およびメモリに対して一定のインタフェースを与える。ＥＰＩＵバッファの１つの他の機能は、同期化である。バッファは物理的にＦＩＦＯであるので、ＥＰＩＵの周辺機器側はＴＣハブと完全に非同期で動作する。事実、ＴＣＨＰの各ポートは、互いに、また、ＴＣ ＨＵＢに対しても、非同期で動作する。この特徴により、ＴＣＨＰをいずれかの特定のメモリまたは周辺機器インタフェースに結び付けずに、また、特定のクロック周波数に結び付けることなく、非常に広範囲に動作させることができる。
【００６３】
転送要求供給機構ＴＲＦＭとして参照される機能装置を介して、ＴＣＨＰに対する要求が行われる。この機能装置は、ＴＣＨＰ概念次第によって、非常に動作範囲が広い。転送の転送要求パラメータはＴＣＨＰに渡される。それらのパラメータは、発信元，宛先およびその転送を実行するために使用されるべきいかなる特定のアドレス指定モードを含む。ＴＣＨＰの要求は、典型的には、１個以上のＤＳＰプロセッサとＸＤＭＡコントローラとを含み、外部周辺装置も多分含む。
【００６４】
本発明のＴＣＨＰは、本発明における特許請求の範囲の基礎を形成する以下の特質を有する。
【００６５】
１．ＴＣＨＰは、マクロ転送要求を細かく砕き、それらを最も効率的な大きさおよび構成の多数のマクロ転送要求に分解するエンジンである。ＴＣＨＰのコアは、それを通してデータが転送されるべき物理的なインタフェース（すなわち、ポート）とは独立しているＴＣハブである。
２．ポートへのインタフェースは、標準であり、パラメータ化されており、より一層大きな柔軟性を与える。
３．ポート周波数とハブ周波数とは独立である。
４．ＴＣＨＰ相互接続ネットワークは、マルチプロセッサシステム性能を制限しない充分な帯域幅を持つ。マルチプロセッサシステム全体性能はＩ／Ｏポートの帯域幅によってのみ制限される。
５．多重要求は同時に処理され、その結果、利用可能な帯域幅ができるだけ効果的に利用される。
【００６６】
６．ＤＭＡ制御は、中央リソースであり、各プロセッサノードでは複写されない。
７．優先順位およびスケジューリングは、すべてのポートをサービスするために設定され、ポートまたはチャンネルがすべての他のポートでデータフロー進行をストールできないという原理によって決定される。各チャンネルは独自かつ一定の優先順位を持つ。
８．全サイクルがＴＣＨＰと任意のポートとの間での通信に割り当てられ、複雑さの度合いと通常関連する厳しい信号遅延性能ペナルティと出会うことなく広い動作範囲（スケーラビリティ）を許容する。
９．各優先順位レベルでの転送要求は、それらがそのポートに対して待ち行列化されている順序で開始し終了する。
１０．転送は、阻止されず、決して中断されない。あるチャンネルを通る転送は、他の転送がそのチャンネルを通る前に完了する（すなわち、エラーを引き起こす）。
【００６７】
１１．ＴＣＨＰアーキテクチャは、多数の転送要求が待ち行列管理器ＲＡＭに発せられることを可能にする。この数は、チャンネルレジスタの所定数によって制限されない。
１２．現在の転送要求の数は、待ち行列管理器ＲＡＭの大きさによってのみ制限される。
１３．ＴＣＨＰアーキテクチャのパイプライン特性は、他のデータフローに基づくデータ転送アーキテクチャでは可能ではない拡張性（スケーラビリティ）を与える。
１４．転送は非阻止である。この特性は、単にポートＡからポートＢへの転送がポートＡからポートＣへの別の転送から生ずる混雑によって阻止されないという事実から得られる。
【００６８】
（始めに説明されたように）ＴＣＨＰは図４に示されている。この図面は、ＴＣＨＰの主要な機能ブロックを示し、多重データ転送バスノード４５５およびそれらの転送要求バスへの分離アクセスについては特に強調していない。図４はまた、待ち行列管理器をハブエンジンから分離しているが、密接に相互作用するこれらの２個のユニットは、後述の命名法において「ＴＣＨＰハブ」として参照される１個のユニットに共通に組み込まれる。
【００６９】
図５は、より高いレベルから、４個の主機能ブロックの相互接続を示している。その最初の２個は、ＴＣＨＰハブ５２０と（図５において構成された全ポートインタフェース５３０，５３１，５３２，５３３，５６０を含む）ポート５２１とである。ＴＣＨＰハブ５２０とポート５２１とはＴＣＨＰの欠くことのできない一部である。他の２個のユニット（すなわち、転送要求供給機構５４５とデータ転送バスＤＴＢ５５５）は、密接に関連している機能ユニットであるが、ＴＣＨＰ自体の一部ではない。図５は、多重データ転送バスＤＴＢノードの起り得る接続および多重転送要求ノードの起り得る接続を強調している。
【００７０】
アドレス発生
アドレスおよびワードカウントは各アドレスユニットの必要な出力であり、実行されるべき転送の大きさが与えられると、これらの出力が選択チャンネルを更新する。以下の２つの主要な形式の転送オプションを設定する必要があるため、ＴＣＨＰ内のアドレス発生の複雑さが増す。
１．通常の線形転送
２．２次元（２−Ｄ）転送。
【００７１】
通常の線形転送は、簡単な単一ワードまたは１次元（１−Ｄ）ワード転送である。これらは、一般的なアドレス発生器として図６に示されたようなストレートフォワード形態で進むアドレス発生を持つ。
【００７２】
発信元アドレス／ワードカウント計算ユニットは、発信元ベースアドレスレジスタ６００と発信元転送サイズ（間隔）アドレスレジスタ６０１と発信元ワードカウントベースレジスタ６０２とを含む。発信元アドレス加算器６０３は、発信元ベースアドレスレジスタ６００を発信元転送サイズ（間隔）アドレスレジスタ６０１に加算し、合計を発信元ベースアドレスレジスタ６００に記憶することによって、次の発信元アドレスを計算する。
【００７３】
発信元ワードカウント減算器は、発信元転送サイズアドレスレジスタ６０１を発信元ワードカウントベースレジスタ６０２から減算し、差をワードカウントベースレジスタ６０２に記憶することによって、残りのワードカウントを計算する。
【００７４】
宛先アドレス／ワードカウント発生器は、同じ基本ハードウエアを含み、同様に動作する。
【００７５】
宛先アドレス／ワードカウント計算ユニットは、宛先ベースアドレスレジスタ６００と宛先転送サイズ（間隔）アドレスレジスタ６０１と宛先ワードカウントベースレジスタ６０２とを含む。宛先アドレス加算器６０３は、宛先ベースアドレスレジスタ６００を宛先転送サイズ（間隔）アドレスレジスタ６０１に加算し、合計を宛先ベースアドレスレジスタ６００に記憶することによって、次の宛先アドレスを計算する。
【００７６】
宛先ワードカウント減算器は、転送サイズレジスタ６０１をワードカウントベースレジスタ６０２から減算し、差を宛先ワードカウントベースレジスタ６０２に記憶することによって、残りのワードカウントを計算する。
【００７７】
２次元（２−Ｄ）転送は、多数の同じ大きさのラインと各ラインの長さとライン数と「ワードカウント」，「ラインカウント」および「ラインピッチ」パラメータによって定義される第１のワードオフセット値との転送である。２次元（２−Ｄ）転送は、以下の置換を行う。
１．オン−チップ１−Ｄからオフ−チップ２−Ｄへのメモリ転送
２．オフ−チップ２−Ｄからオン−チップ１−Ｄへのメモリ転送
３．オフ−チップ２−Ｄからオフ−チップ２−Ｄへのメモリ転送。
【００７８】
チャンネルがピッチ調節サイクルを行う２−Ｄ転送では、サイズ入力はその代わりに「ラインピッチ」６１１になり、ワードカウントは「ラインカウント」６１２になる。ラインカウント・デクリメントは、最左端入力６１４として−１を持つ加算器６０４を使用する。寸法測定ユニットも、２−Ｄ転送に含まれる付加的なパラメータおよび動作に対応するための付加的なハードウエアを有する。
【００７９】
ＴＣＨＰコアサブブロック
ＴＣＨＰは、２個の主部分（すなわち、図７に示された待ち行列管理器サブブロックと図８に示されたＴＣＨＰハブ・サブブロック）に分けられる。これらのサブブロックは、さらに、次のものに分けられる。
ＴＣＨＰコアサブブロック
待ち行列管理器サブブロック（図７）
１．待ち行列管理器要求バスマスター
２．待ち行列管理器制御装置
３．待ち行列管理器書込み／読出しポインタ
４．要求者ディスエーブル付き待ち行列管理器デュアルポートＲＡＭ待ち行列記憶装置
ＴＣＨＰハブサブブロック（図８）
５．チャンネルレジスタ
６．発信元ＳＲＣアドレス・パイプライン
７．宛先ＤＳＴアドレス・パイプライン
８．ルーティングユニット。
【００８０】
ＴＣＨＰハブサブブロックは、転送のサービス行為の大半を実行する。ＴＣＨＰは内部プロセッサ・コア・クロック周波数で動作するので、その帯域幅は外部メモリに対するものよりもかなり大きなものである。内部メモリと外部メモリとの間の単一転送は、ＴＣＨＰ帯域幅の全潜在能力のほんの一部のみである。
【００８１】
ＴＣＨＰは、チャンネル間を優先順位付けし、それらを同時に処理する。その結果、メモリの帯域幅の合計が全ＴＣＨＰ帯域幅として利用可能になる。また、ＴＲバス（したがって、転送要求者）をストールさせないために、ＴＣＨＰは、各チャンネルの多重要求を待ち行列化し、待ち行列に入れた後できるだけ早く要求のサービスを開始する。所定の要求がＴＣＨＰハブエンジンによって処理されている間、続く次の要求が待ち行列に入れられる。
【００８２】
図７において、待ち行列管理器要求バスマスターおよび制御ユニット７０１は、転送要求の待ち行列化を行い、それらがＴＣＨＰハブエンジンによってサービスされるまでそれらを優先順位付けする。デュアルポートＲＡＭ記憶待ち行列７０２は、ＴＣＨＰハブエンジンにおいて現にサービスされている要求の現在の転送パラメータを保持する。
【００８３】
図８において、チャンネル要求レジスタ８００は、待ち行列管理器デュアルポートＲＡＭから個々の要求を受信する。発信元アドレス・パイプライン８０４は、転送に対する発信元ポート読出し要求のサービスを実行する。同様に、宛先アドレス・パイプライン８０５は、転送に対する宛先ポート書込み要求（関連する読出しデータ付き）のサービスを実行する。
【００８４】
発信元パイプラインＳＲＣおよび宛先パイプラインＤＳＴはそれぞれ、以下の段階で転送要求のサービス行為を実行する多段階（好適な実施例においては、６段階）から構成される。
【００８５】
【表２】
0004359377.tif 000003
【００８６】
図８のルーティングユニット８０６は、個々のポートからの読出し応答データを取り込み、書込みデータ上の配列が実行されるようにこの情報をＤＳＴパイプラインに与える。
【００８７】
内部メモリポートマスターインタフェース
図４に示されたデータ転送バス（ＤＴＢ）に対する内部メモリポート（ＩＭＰ）マスターインタフェースは、内部メモリを代表するポートをプロセッサノードと様々なＤＴＢノードでデータ転送バスをアクセスする他の装置とに接続する。ここで、プロセッサノードインタフェースは、すべての分散内部データメモリおよび内部プログラムメモリコントローラを含み、プロセッサシステム上のすべての他の制御レジスタにインタフェースする。これらは次のものを含む。
１）任意のデータメモリコントローラのローカルメモリまたはチップ上の任意のプロセッサノードのプログラムメモリコントローラ
２）任意のデータメモリコントローラの制御レジスタまたはチップ上の任意のプロセッサノードのプログラムメモリコントローラ
３）ＸＤＭＡパラメータメモリ
４）ＸＤＭＡ制御レジスタ
５）待ち行列管理器制御レジスタ
６）待ち行列管理器データメモリ。
【００８８】
データメモリコントローラ（ＤＭＣ）およびプログラムメモリコントローラ（ＰＭＣ）は、データアクセスに対する要求とＤＳＰからの命令取込みとをサービスする。それらは、ＤＳＰクラスタの一部であり、各ＤＳＰと関連する１個のＤＭＣおよび１個のＰＭＣがある。
【００８９】
ＸＤＭＡコントローラは、オン・チップまたはオフ・チップ事象によってトリガされてＴＲバス上に転送要求を発生する。事象が提起されると、その事象と関連付けられた転送要求がＴＲバス上に置かれる。
【００９０】
待ち行列管理器は、転送要求供給機構からすべての転送要求を受信し記憶する。転送要求の優先順位は、その優先順位の要求を処理するチャンネルに対してそれを待ち行列化するために使用される。チャンネルが自由になると、ＴＣＨＰハブエンジンは、待ち行列管理器から別の待ち行列入力を要求する。待ち行列管理器は、そのチャンネルに対して適切な優先順位レベルの転送要求を送ることによって応答する。
【００９１】
再び、図４を参照すると、図４の外部ポートインタフェースユニットＥＰＩＵ４４０〜４４７およびローカルメモリポート４５２とは異なる内部メモリポートＩＭＰノードマスター４５０は、書込み要求の記憶を要求としない。これは、ＩＭＰが主プロセッサクロック周波数で動作し、より一層遅く動作している外部装置とインタフェースする必要性がないためである。中断の発生を防止するため、遅いポート上でのみ、書込み要求記憶がＥＰＩＵでは必要である。
【００９２】
外部ポートインタフェースユニット（ＥＰＩＵ）
外部ポートインタフェースユニットは、実際、ＴＣＨＰハブエンジンと外部装置またはメモリとの間をインタフェースする。これは、ＴＣＨＰハブエンジンが外部装置の使用とは独立にさせることを可能にさせる。ＥＰＩＵのバックエンドのみが各周辺機器と変える。図９は、ＥＰＩＵ構造の高レベルブロック図である。
【００９３】
ＥＰＩＵの一般フロントエンド９０１は、周辺機器に一致する転送サイズでＴＣハブからの読出しおよび書込み命令を受け入れる。応答するためにＴＣハブを待っているときでさえ周辺機器がビジー状態を維持できるように、ＥＰＩＵは幾つかの小さな待ち行列を含んで多重要求（読出しまたは書込み）を保持する。ＥＰＩＵのバックエンド９０３は、周辺機器（内部ブロックまたはＩ／Ｏピンであるかどうか）のＩ／Ｏとインタフェースする。そのとき、バックエンドは、周辺機器周波数で動作する必要があり、したがって、フロントエンドとバックエンドとの間の通信は同期器９０２によって同期が取られる必要がある。
【００９４】
カスタマイズされた特徴を持つバックエンド外部ポート型は、可能性として以下の型で予見される。
【００９５】
バックエンド外部ポート型：
１）ＲＡＭバスＤＲＡＭコントローラ
２）ＰＣＩバスコントローラ
３）１３９４ファイヤワイヤ・コントローラ
４）高速シリアルポートコントローラ
５）ＳＬＲＡＭ（同期リンクＤＲＡＭコントローラ）
６）ＳＤＲＡＭコントローラ
７）ＳＲＡＭコントローラ
８）他のシステムバス。
【００９６】
ＴＣＨＰハブは、転送要求をサービスしてデータワードをポート間で移動させる。各外部ポートは、Ｉ／ＯバスまたはＩ／Ｏ装置に接続する。ＴＣハブは、３つの待ち行列および「予約ステーション」を介して外部ポートと通信する。幾つかのポートは、３つの待ち行列すべてを実行しないが、その代わりに、予約ステーションを除外する。待ち行列は、
１）ＴＣハブからの読出し命令を保持する命令待ち行列（ＣＱ）
２）ＴＣハブからの書込み命令を保持する書込み待ち行列（ＣＱ）
３）命令への応答（例えば、読出しデータ）を保持する応答待ち行列
４）遅い宛先装置を持つポートで使用される書込み予約ステーション
である。
【００９７】
遅い宛先装置に対して、ＴＣＨＰハブは書込み駆動処理を使用する。転送が遅い宛先ポートを有する場合、ＴＣＨＰハブは、宛先ポートが読出し命令を保持するための書込み予約を持つときに読出し命令を発信元ポートに送るだけである。宛先書込み予約ステーションが満杯のときには、ＴＣＨＰハブはもはやそれ以上の命令を発信元ポートに送らない。
【００９８】
ＴＣＨＰハブがポートの多くの組合せに対して決められた設計となるように、ポートは構成情報（ポートパラメータ）をＴＣＨＰハブに与えなければならない。これは、短い設計サイクルタイムで新しい製品を市場に持ち込む際に非常に有効な「再使用可能な」特徴を設計に生じさせる。
【００９９】
ポートがＴＣＨＰハブに与える構成情報の幾つかは、
１）本当にポートが「存在している」という情報
２）各待ち行列用および予約ステーション用の待ち行列深度
３）バーストサイズ
４）宛先として使用されるときの書込み駆動（対読出し駆動）
５）ＴＣハブからの命令を保持する命令待ち行列（ＣＱ）
である。
【０１００】
これは、本発明のＴＣＨＰの要素の説明を完了する。この転送コントローラ・アーキテクチャは、非常に広範囲の単一プロセッサおよびマルチプロセッサ装置の実施を極めて明確にする基本的概念である。完全な柔軟性が確立されて、必要な広範囲のデータ転送が成し遂げられる機構を明確に定義できるプロトコルを持つすべての内部および外部インタフェースユニットの型および数の選択を新製品設計者がカスタマイズすることを可能にさせる。
【０１０１】
以上の説明に関してさらに以下の項を開示する。
（１） それぞれがデータ発信元，データ宛先および転送されるべきデータ量を特定する複数個のデータ転送要求を受信し優先順位付けし発送することができる要求待ち行列コントローラと、
該要求待ち行列コントローラに接続され、発送されたデータ転送要求を受信するデータ転送ハブと、
データ転送ハブに接続された、各ポートに対して同じとなるように構成されている内部インタフェースと、動作時に前記ポートに接続される外部メモリ／装置用に構成された外部インタフェースとを有する複数個のポートであって、前記内部インタフェースと前記外部インタフェースとがそれらの間でデータ転送を行うように接続された、複数個のポートと、
を具備し、
前記データ転送ハブが、前記データ発信元に対応する発信元ポートから、現に実行しているデータ転送要求下で転送されるべきデータ量に対応する多量のデータ宛先に対応する宛先ポートへのデータ転送を制御することができる、
データ転送コントローラ。
【０１０２】
（２）前記データ転送ハブと前記複数個のポートのそれぞれの前記内部インタフェースとが、第１の共通周波数でクロックされ、
前記複数個のポートのそれぞれの前記外部インタフェースが、前記ポートに接続されることが期待される外部メモリ／装置に対応する周波数でクロックされる、
第１項記載のデータ転送コントローラ。
（３）前記データ転送ハブが、発信元アドレス計算ユニット，宛先アドレス計算ユニットおよびデータ先入れ先出しバッファを有する少なくとも１個のデータチャンネルを含み、
前記データ転送ハブが、
前記発信元アドレス計算ユニットによって計算された発信元アドレスの前記発信元ポートへの供給によるデータの読出し、および、前記発信元ポートから読み出されたデータの前記データ先入れ先出しバッファの入力への供給と、
前記宛先アドレス計算ユニットによって計算された宛先アドレスの前記宛先ポートへの供給によるデータの書込み、および、前記データ先入れ先出しバッファの出力から前記宛先ポートへの書き込まれるべきデータの供給と、
を制御する、
第１項記載のデータ転送コントローラ。
【０１０３】
（４）前記データ転送要求が、発信元ベースアドレス，発信元インターバルおよび発信元ワードカウントを特定することによってデータ発信元を特定し、
前記発信元アドレス計算ユニットが、
前記発信元ベースアドレスで初期ロードされた発信元ベースアドレスレジスタと、
前記発信元インターバルで初期ロードされた発信元インターバルアドレスレジスタと、
前記発信元ワードカウントで初期ロードされた発信元ワードカウントレジスタと、
前記発信元ベースアドレスレジスタおよび前記発信元インターバルアドレスレジスタに接続された発信元アドレス加算器であって、前記発信元ベースアドレスレジスタに記憶されたデータを前記発信元インターバルアドレスレジスタに記憶されたデータに加算することによって次の発信元アドレスを計算し、該次の発信元アドレスを前記発信元ベースアドレスレジスタに記憶する、発信元アドレス加算器と、
前記発信元ワードカウントレジスタに接続された、各計算された次の発信元アドレスに対して前記発信元ワードカウントレジスタに記憶された前記ワードカウントをデクリメントする発信元ワードカウント減分器であって、前記データ転送ハブが、前記発信元ワードカウントレジスタに記憶された前記発信元ワードカウントがゼロまでデクリメントされたときに、データ転送要求に応答してデータ転送を終了する、発信元ワードカウント減分器とを具備する、
第３項記載のデータ転送コントローラ。
【０１０４】
（５）前記データ転送要求が、宛先ベースアドレス，宛先インターバルおよび宛先ワードカウントを特定することによってデータ宛先を特定し、
前記宛先アドレス計算ユニットが、
前記宛先ベースアドレスで初期ロードされた宛先ベースアドレスレジスタと、
前記宛先インターバルで初期ロードされた宛先インターバルアドレスレジスタと、
前記宛先ワードカウントで初期ロードされた宛先ワードカウントレジスタと、
前記宛先ベースアドレスレジスタおよび前記宛先インターバルアドレスレジスタに接続された宛先アドレス加算器であって、前記宛先ベースアドレスレジスタに記憶されたデータを前記宛先インターバルアドレスレジスタに記憶されたデータに加算することによって次の宛先アドレスを計算し、該次の宛先アドレスを前記宛先ベースアドレスレジスタに記憶する、宛先アドレス加算器と、
前記宛先ワードカウントレジスタに接続された、各計算された次の宛先アドレスに対して前記宛先ワードカウントレジスタに記憶された前記ワードカウントをデクリメントする宛先ワードカウント減分器であって、前記データ転送ハブが、前記宛先ワードカウントレジスタに記憶された前記宛先ワードカウントがゼロまでデクリメントされたときに、データ転送要求に応答してデータ転送を終了する、宛先ワードカウント減分器とを具備する、
第３項記載のデータ転送コントローラ。
【０１０５】
（６）前記データ転送ハブが、各チャンネルが発信元アドレス計算ユニット，宛先アドレス計算ユニットおよびデータ先入れ先出しバッファを有する複数個のデータチャンネルを含み、
前記データ転送ハブが、
前記発信元アドレス計算ユニットによって計算された発信元アドレスの前記発信元ポートへの供給によるデータの読出し、および、前記発信元ポートから読み出されたデータの前記データ先入れ先出しバッファの入力への供給と、
前記宛先アドレス計算ユニットによって計算された宛先アドレスの前記宛先ポートへの供給によるデータの書込み、および、前記データチャンネルが開かれ、前記データ転送要求において特定された前記データ量が転送完了するまでの前記データ先入れ先出しバッファの出力から前記宛先ポートへの書込みデータの供給と、
を制御し、
前記データ転送要求がそれぞれ、優先順位の階層構造内の優先順位を有し、
前記要求待ち行列コントローラが、前記優先順位の階層構造内で、かつ、最初の受信データ要求から最後の受信データ転送要求までの各優先順位レベル内の、最高優先順位から最低優先順位までの優先順位の順序で、前記データ転送ハブの開かれたデータチャンネルにデータ転送要求を発送する、
第１項記載のデータ転送コントローラ。
【０１０６】
（７）前記データ転送ハブが、前記データ転送要求が完了するかデータチャンネルに一旦割当てられたフォールトを発生するまでデータ転送要求を制御する、第６項記載のデータ転送コントローラ。
（８）前記要求待ち行列コントローラが、発送前の受信時にデータ転送要求を記憶する要求待ち行列メモリを含み、該要求待ち行列メモリが、前記データ転送ハブのデータチャンネル数よりも多くのデータ転送要求を記憶するためのデータ容量を有する、第６項記載のデータ転送コントローラ。
【０１０７】
（９）それぞれがデータ転送要求を発生することができる複数個のデータプロセッサと、
該複数個のデータプロセッサに接続された、それぞれがデータ発信元，データ宛先および転送されるべきデータ量を特定する複数個のデータ転送要求を受信し優先順位付けし発送する要求待ち行列コントローラと、
該要求待ち行列コントローラに接続された、発送されたデータ転送要求を受信するデータ転送ハブと、
各ポートに対して同じとなるように構成されている前記データ転送ハブに接続された内部インタフェースと、動作時に前記ポートに接続される外部メモリ／装置用に構成された外部インタフェースとを有する複数個のポートであって、前記内部インタフェースと前記外部インタフェースとが、それらの間でデータ転送するために接続されている、複数個のポートと、
を具備し、
前記データ転送ハブが、前記データ発信元に対応する発信元ポートから、現に実行しているデータ転送要求下で転送されるデータ量に対応する多量のデータ宛先に対応する宛先ポートへのデータ転送を制御することができる、
データ処理システム。
【０１０８】
（１０）前記各データプロセッサと前記データ転送ハブと前記複数個のポートのそれぞれの前記内部インタフェースとが、第１の共通周波数でクロックされ、
前記複数個のポートのそれぞれの前記外部インタフェースが、前記ポートに接続されることが期待される外部メモリ／装置に対応する周波数でクロックされる、
第９項記載のデータ処理システム。
（１１）前記複数個のポートの所定の１個に接続されたシステムメモリをさらに具備し、
前記データプロセッサのそれぞれが、該データプロセッサを制御するプログラム命令を一時的に記憶するプログラムキャッシュを含み、前記データプロセッサが、前記プログラムキャッシュへの読出しアクセス・ミス時に前記システムメモリからプログラムキャッシュ補充用のデータ転送を発生する、
第９項記載のデータ処理システム。
（１２）前記複数個のポートの所定の１個に接続されたシステムメモリをさらに具備し、
前記データプロセッサのそれぞれが、該データプロセッサによって採用されたデータを一時的に記憶するデータキャッシュを含み、前記データプロセッサが、前記データキャッシュへの読出しアクセス・ミス時に前記システムメモリからデータキャッシュ補充用のデータ転送を発生する、
第９項記載のデータ処理システム。
（１３）前記複数個のポートの所定の１個に接続されたシステムメモリをさらに具備し、
前記データプロセッサのそれぞれが、プログラム命令を一時的に記憶するデータキャッシュを含み、前記データプロセッサが、前記データキャッシュへの書込みアクセス・ミス時に前記システムメモリへのデータ書戻し用のデータ転送を発生する、
第９項記載のデータ処理システム。
【０１０９】
（１４）本発明のハブおよびポートを持つ転送コントローラ（ＴＣＨＰ）は、既知の従来のデータ転送コントローラ機能ブロックを交換し、チップ全体にわたっての通信タスクを集中させる。ＴＣＨＰ内で、単一のハブ４３５は、ＤＳＰクラスタ４５５，外部装置および外部メモリ間のすべてのデータ通信の媒体である中央パイプラインによって多数のポート４４０，４４７，４５０，４５２に結合されている。これは、各クラスタ４５５がそれぞれ別のクラスタのメモリにアクセスしないように、ＤＳＰクラスタ間の通信を含む。転送コントローラは、メモリマップ全体の様々なロケーション間の通信ハブとしてみなすことができる。ＤＳＰクラスタを有するシステムでは、そのような１個のクラスタ４５５が、その局所的に割り当てられたメモリマップにのみ直接アクセスする。転送要求待ち行列管理装置４２０は、データ転送要求を受信し優先順位付けし待ち行列を作成する。各データポートは、ハブ４３５に接続された同じ構造の内部インタフェースと、ポートに接続された目標外部メモリ／装置用に構成された外部インタフェースとを含む。すべてのポートの内部インタフェースは共通の内部周波数でクロックされるが、外部インタフェースは、ポートに接続された外部メモリ／装置の周波数でクロックされる。ＴＣＨＰは、多くの周辺機器および／またはメモリポートが取り付けられるバックプレーンとして働く極めて並列化され極めてパイプライン化されたメモリトランザクションプロセッサである。
【図面の簡単な説明】
【図１】中央共有メモリ・マルチプロセッサ機（従来技術）を示す図である。
【図２】分散メモリ・マルチプロセッサ機（従来技術）を示す図である。
【図３】本発明のＴＣＨＰの基本原理特徴を示す機能ブロック図である。
【図４】ハブおよびポートを持つ転送コントローラ・アーキテクチャを示す図であって、本発明（ＴＣＨＰ）の詳細な機能ブロックをそれと密接に関連する機能ユニットとともに示している図である。
【図５】本発明のハブおよびポートを持つ転送コントローラ・アーキテクチャＴＣＨＰ機能ブロックを示す図であって、転送コントローラＴＣＨＰの必須要素およびその関連の機能ユニットをより一層高いレベルから見ている図である。本発明の要素は、待ち行列管理器およびＴＣＨＰハブである。関連ユニットは、転送要求供給機構，データ転送バスおよび外部ポート・インタフェースユニットである。
【図６】発信元／宛先パイプラインユニット内の発信元／宛先アドレス，ワード・カウントおよびライン・カウントを計算するために使用される本発明のＴＣＨＰの一般アドレスユニットのブロック図である。
【図７】本発明の待ち行列管理器機能ブロックを示す図である。そこでは、転送要求が受信され、優先順位付けされ、待ち行列化される。
【図８】チャンネル要求レジスタとポートパラメータレジスタとチャンネルパラメータレジスタと発信元および宛先パイプラインとルーティングユニットとを備えたハブエンジンと待ち行列管理器とを含む本発明のＴＣＨＰを示す図である。
【図９】ＴＣＨＰハブエンジンとメモリまたは周辺ポートとの間のバッファとして作用する本発明のＴＣＨＰ外部ポートインタフェースユニット（ＥＰＩＵ）ブロックを示す図である。
【符号の説明】
４２０  転送要求待ち行列管理装置
４３５  ハブ
４４０，４４７，４５０，４５２  ポート
４５５  ＤＳＰクラスタ
【図１】
0004359377.tif 000004
【図２】
0004359377.tif 000005
【図３】
0004359377.tif 000006
【図４】
0004359377.tif 000007
【図５】
0004359377.tif 000008
【図６】
0004359377.tif 000009
【図７】
0004359377.tif 000010
【図８】
0004359377.tif 000011
【図９】
0004359377.tif 000012