(57)【要約】コアロジックのメモリ・Ｉ／Ｏコントローラチップに追加されたまたはこれに関連付けられた適応プロセッサインターフェイスポート（ＡＰＩＰ）を用いてハイブリッド計算システム内で緊密結合するためのコンピュータシステムアーキテクチャおよびメモリコントローラ。上記ポートおよび主マイクロプロセッサバスへおよびこれらからのメモリアクセスは、コントローラチップの一部を形成するメモリ制御回路によって調停される。こうすることにより、ハイブリッド計算システムにおけるマイクロプロセッサと適応プロセッサとのメモリ帯域幅および待ち時間が等しくなる。これに加え、ＡＰＩＰはマイクロプロセッサバスとは別個の電気的ポートであるため、すべてのＦＳＢプロトコルに準拠および関与する必要はない。その結果プロトコルのオーバーヘッドが減少し、その結果としてインターフェイスで得られる処理可能な負荷の量が大きくなる。
2006505046.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムであって、
第１のバスを与える少なくとも１つのマイクロプロセッサと、
前記第１のバスに結合されたメモリコントローラとを備え、前記メモリコントローラはメモリバスおよび適応プロセッサポートに結合され、前記コンピュータシステムはさらに、
前記メモリバスに結合されたメモリブロックと、
前記適応プロセッサポートに結合された適応プロセッサとを備える、コンピュータシステム。
【請求項２】
前記コンピュータシステムはさらに、前記第１のバスに結合された複数のマイクロプロセッサを備える、請求項１に記載のコンピュータシステム。
【請求項３】
前記メモリコントローラはさらに、コンピュータシステムクラスタ化ハブに結合された第２のバスを含む、請求項１に記載のコンピュータシステム。
【請求項４】
さらに、他の第２のバスを通じて前記クラスタ化ハブに結合され、さらに他の第１のバスを通じて少なくとも１つの他のマイクロプロセッサに結合された少なくとも１つの追加のメモリコントローラを備える、請求項３に記載のコンピュータシステム。
【請求項５】
さらに、他のメモリバスを通じて前記少なくとも１つの追加のメモリコントローラに結合された他のメモリブロックを備える、請求項４に記載のコンピュータシステム。
【請求項６】
さらに、前記少なくとも１つの追加のメモリコントローラにおける他の適応プロセッサポートに結合された少なくとも１つの追加の適応プロセッサを備える、請求項４に記載のコンピュータシステム。
【請求項７】
前記適応プロセッサポートは代替的にグラフィックスポートとして構成可能である、請求項１に記載のコンピュータシステム。
【請求項８】
前記第１のバスはフロントサイドバスを含む、請求項１に記載のコンピュータシステム。
【請求項９】
前記適応プロセッサは、
前記適応プロセッサポートに結合された制御要素と、
前記制御要素に結合されたユーザアレイと、
前記制御要素および前記ユーザアレイに結合されたメモリ要素とを含む、請求項１に記載のコンピュータシステム。
【請求項１０】
前記ユーザアレイはさらに、前記適応プロセッサ要素を第２の適応プロセッサ要素に結合するためのチェーンポートを含む、請求項９に記載のコンピュータシステム。
【請求項１１】
前記ユーザアレイはフィールド・プログラマブル・ゲートアレイを含む、請求項９に記載のコンピュータシステム。
【請求項１２】
前記メモリコントローラは、
メモリバス調停部と、
前記メモリバス調停部に関連付けられ、前記第１のバスで受取られたメモリアクセス要求を制御するための第１のバスインターフェイスと、
前記メモリバス調停部に関連付けられ、前記メモリブロックへのアクセスを制御するためのメモリバスインターフェイスと、
前記メモリバス調停部に関連付けられ、前記適応プロセッサポートで受取られたメモリアクセス要求を制御するための適応プロセッサポートインターフェイスとを含む、請求項１に記載のコンピュータシステム。
【請求項１３】
さらに、前記メモリバス調停部と前記適応プロセッサポートインターフェイスとを結合する直接メモリアクセスエンジンを備える、請求項１２に記載のコンピュータシステム。
【請求項１４】
前記直接メモリアクセスエンジンは、それぞれ読出および書込についてのデータ線を用いて前記適応プロセッサポートインターフェイスに結合される、請求項１３に記載のコンピュータシステム。
【請求項１５】
さらに、前記直接メモリアクセスエンジンに関連付けられた読出要求バッファを備える、請求項１３に記載のコンピュータシステム。
【請求項１６】
さらに、前記適応プロセッサポートインターフェイスと前記直接メモリアクセスエンジンとを結合するビジー信号線を備える、請求項１３に記載のコンピュータシステム。
【請求項１７】
さらに、前記第１のバスインターフェイスおよび前記適応プロセッサポートインターフェイス間で通信する少なくとも１つの制御レジスタを備える、請求項１２に記載のコンピュータシステム。
【請求項１８】
さらに、前記メモリバス調停部に関連付けられた第２のバスインターフェイスを備える、請求項１２に記載のコンピュータシステム。
【請求項１９】
前記メモリコントローラは集積回路装置を含む、請求項１に記載のコンピュータシステム。
【請求項２０】
前記少なくとも１つのマイクロプロセッサは前記メモリコントローラを含む、請求項１に記載のコンピュータシステム。
【請求項２１】
少なくとも１つのマイクロプロセッサと、
メモリブロックと、
前記マイクロプロセッサおよび前記メモリブロックに結合されて前記少なくとも１つのマイクロプロセッサによる前記メモリブロックへのアクセスを制御するためのメモリコントローラと、
前記メモリコントローラに結合された少なくとも１つの適応プロセッサとを備え、前記メモリコントローラはさらに前記少なくとも１つの適応プロセッサによる前記メモリブロックへのアクセスを制御する、ハイブリッド計算システム。
【請求項２２】
前記メモリコントローラは、
メモリバス調停部と、
前記メモリバス調停部に関連付けられ、前記少なくとも１つのマイクロプロセッサから受取られたメモリアクセス要求を制御するための第１のバスインターフェイスと、
前記メモリバス調停部に関連付けられ、前記メモリブロックへのアクセスを制御するためのメモリバスインターフェイスと、
前記メモリバス調停部に関連付けられ、前記少なくとも１つの適応プロセッサから受取られたメモリアクセス要求を制御するための適応プロセッサポートインターフェイスとを含む、請求項２１に記載のハイブリッド計算システム。
【請求項２３】
さらに、前記メモリバス調停部と前記適応プロセッサポートインターフェイスとを結合する直接メモリアクセスエンジンを備える、請求項２２に記載のハイブリッド計算システム。
【請求項２４】
前記直接メモリアクセスエンジンは、それぞれ読出および書込についてのデータ線を用いて前記適応プロセッサポートインターフェイスに結合される、請求項２３に記載のハイブリッド計算システム。
【請求項２５】
さらに、前記直接メモリアクセスエンジンに関連付けられた読出要求バッファを備える、請求項２３に記載のハイブリッド計算システム。
【請求項２６】
さらに、前記適応プロセッサポートインターフェイスと前記直接メモリアクセスエンジンとを結合するビジー信号線を備える、請求項２３に記載のハイブリッド計算システム。
【請求項２７】
さらに、前記第１のバスインターフェイスおよび前記適応プロセッサポートインターフェイス間で通信する少なくとも１つの制御レジスタを備える、請求項２２に記載のハイブリッド計算システム。
【請求項２８】
さらに、前記メモリバス調停部に関連付けられた第２のバスインターフェイスを備える、請求項２２に記載のハイブリッド計算システム。
【請求項２９】
前記メモリコントローラは集積回路装置を含む、請求項２１に記載のハイブリッド計算システム。
【請求項３０】
前記少なくとも１つのマイクロプロセッサは前記メモリコントローラを含む、請求項２１に記載のハイブリッド計算システム。
【請求項３１】
第１および第２の処理要素と、
メモリブロックと、
第１のバスを介して前記第１の処理要素に結合されかつ第２のバスを介して前記第２の処理要素に結合され、前記第１および第２の処理要素による前記メモリブロックへのアクセスを制御するためのメモリコントローラとを備える、計算システム。
【請求項３２】
前記第１の処理要素はマイクロプロセッサを含む、請求項３１に記載の計算システム。
【請求項３３】
前記第２の処理要素はマイクロプロセッサを含む、請求項３２に記載の計算システム。
【請求項３４】
前記第２の処理要素は適応プロセッサを含む、請求項３２に記載の計算システム。
【請求項３５】
メモリバス調停部と、
前記メモリバス調停部に関連付けられ、前記第１の処理要素から受取られたメモリアクセス要求を制御するための第１のバスインターフェイスと、
前記メモリバス調停部に関連付けられ、前記メモリブロックへのアクセスを制御するためのメモリバスインターフェイスと、
前記メモリバス調停部に関連付けられ、前記第２の処理要素から受取られたメモリアクセス要求を制御するための第２のバスインターフェイスとを備える、請求項３１に記載の計算システム。
【請求項３６】
さらに、前記メモリバス調停部と前記第２のバスインターフェイスとを結合する直接メ
モリアクセスエンジンを備える、請求項３５に記載の計算システム。
【請求項３７】
前記直接メモリアクセスエンジンは、それぞれ読出および書込についてのデータ線を用いて前記第２のバスインターフェイスに結合される、請求項３５に記載の計算システム。
【請求項３８】
さらに、前記直接メモリアクセスエンジンに関連付けられた読出要求バッファを備える、請求項３５に記載の計算システム。
【請求項３９】
さらに、前記第２のバスインターフェイスと前記直接メモリアクセスエンジンとを結合するビジー信号線を備える、請求項３５に記載の計算システム。
【請求項４０】
さらに、前記第１のバスインターフェイスおよび前記第２のバスインターフェイス間で通信する少なくとも１つの制御レジスタを備える、請求項３１に記載の計算システム。
【請求項４１】
さらに、前記メモリバス調停部に関連付けられた第３のバスインターフェイスを備える、請求項３０に記載の計算システム。
【請求項４２】
前記メモリコントローラは集積回路装置を含む、請求項３１に記載の計算システム。
【請求項４３】
前記メモリコントローラは前記第１の処理要素と一体化される、請求項３１に記載の計算システム。
【請求項４４】
第１および第２の処理要素ならびにメモリブロック間に結合され、前記第１および第２の処理要素による前記メモリブロックへのアクセスを制御するメモリバス調停部を備える、計算システム用メモリコントローラ。
【請求項４５】
前記第１の処理要素はマイクロプロセッサを含む、請求項４４に記載のメモリコントローラ。
【請求項４６】
前記第１の処理要素は適応プロセッサを含む、請求項４４に記載のメモリコントローラ。
【請求項４７】
前記第２の処理要素はマイクロプロセッサを含む、請求項４５に記載のメモリコントローラ。
【請求項４８】
前記第２の処理要素は適応プロセッサを含む、請求項４５に記載のメモリコントローラ。
【請求項４９】
前記メモリコントローラは、前記第１および第２の処理要素間で中断がやり取りされることを可能にする、請求項４４に記載のメモリコントローラ。
【請求項５０】
さらに、前記第１の処理要素および前記第２の処理要素の両方によりアクセス可能な少なくとも１つのレジスタを備える、請求項４４に記載のメモリコントローラ。
【請求項５１】
さらに、前記メモリバス調停部を前記第１の処理要素に結合する第１のポートインターフェイスと、前記メモリバス調停部を前記第２の処理要素に結合する第２のポートインターフェイスとを備える、請求項４４に記載のメモリコントローラ。
【請求項５２】
前記第２のポートインターフェイスは代替的にグラフィックスポートインターフェイスとなるよう適合可能である、請求項５１に記載のメモリコントローラ。
【請求項５３】
さらに、前記第２のポートインターフェイスに関連付けられた直接メモリアクセスエンジンを備える、請求項５１に記載のメモリコントローラ。
【請求項５４】
前記第２のポートインターフェイスは、前記直接メモリアクセスエンジンに対してビジー信号をアサートすることができる、請求項５３に記載のメモリコントローラ。
【請求項５５】
前記メモリバス調停部はマイクロプロセッサの一部を形成する、請求項４４に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連特許出願の相互参照
この発明は、２００１年１月５日出願の米国特許出願連続番号第０９／７５５，７４４号「メモリサブシステムにおいて複数のメモリアルゴリズムプロセッサを組込んだ多重プロセッサのコンピュータアーキテクチャ（“Multiprocessor Computer Architecture incorporating a Plurality of Memory Algorithm Processors in the Memory Subsystem”」からの優先権を主張しかつその部分継続出願であり、これは２０００年１月１２日出願の米国特許出願連続番号第０９／４８１，９０２号（現在は米国特許第６，２４７，１１０号）の分割出願であり、これは１９９７年１２月１７日出願の米国特許出願連続番号第０８／９９２，７６３号（現在は米国特許第６，０７６，１５２号）の継続出願である。この発明は、１９９２年１月１５日発行の米国特許第６，３３９，８１９号「ロードされた入力バッファ内のオペランドに各々のプロセッサ要素がアクセスして結果をＦＩＦＯ出力バッファに送る多重プロセッサ（“Multiprocessor with Each Processor Element Accessing Operands in Loaded Input Buffer and Forwarding Results to FIFO Output Buffer”）」の主題に関するものである。上述の特許出願および発行された特許は、この発明の譲受人であるＳＲＣコンピューターズ・インコーポレイテッド（SRC Computers, Inc.）に譲渡されており、その開示は本願明細書中でこの引用によりその全体において明確に援用される。
【０００２】
発明の背景
この発明は、一般的に、種々の処理または計算を相互接続するコンピュータシステムおよび技術の分野に関する。より特定的には、この発明は、適応プロセッサインターフェイスポートを用いてハイブリッド計算システム内で緊密結合するためのハイブリッドコンピュータシステムアーキテクチャおよびメモリコントローラに関する。
【背景技術】
【０００３】
ハイブリッドコンピュータシステムとは、標準的なマイクロプロセッサおよび適応プロセッサの両方を組込んだものである。典型的には、これは共用されるネットワーク上に常駐する大型のサーバタイプの多重プロセッサシステムであり、ユーザインターフェイスコンソールからは直接操作されない。このようなシステムの全体的な性能および柔軟性は、マイクロプロセッサと適応プロセッサとの結合のレベルに正比例する。すなわち、これら２種のプロセッサが対等なものとして扱われて帯域幅および共有メモリに対する待ち時間が等しいときにシステム性能は最大限となる。
【０００４】
現在までに、上記２形態のプロセッサを結合する方法がいくつか受入れられている。その最も基本的なものは、標準的な入出力（Ｉ／Ｏ）ポートを介して適応プロセッサをマイクロプロセッサに接続するというものであった。これは比較的実施が容易ではあるが、得られる結合は極めて緩いものに過ぎず、プロセッサバスの帯域幅および待ち時間に対して帯域幅は小さく待ち時間は長くなる。両種のプロセッサは同じメモリを共有しなければならないため、適応プロセッサでの性能は著しく低下したものとなる。また、上記技術では、現実に生じ得るプロセッサ間の対話の量は制限される。
【０００５】
第２の典型的な相互接続方法は、上述の特許および特許出願で開示されたいくつかの特定の実施例に開示されたように、マイクロプロセッサのメモリ空間内に適応プロセッサを配置するというものである。この接続によればはるかに緊密な結合が得られ、帯域幅およ
び待ち時間は一般的にマイクロプロセッサバスのものと等しくなる。それにもかかわらず、特に小さな転送の場合、この接続に関連するオーバーヘッドは望ましいよりも大きくなる場合がある。これは、パーソナルコンピュータ環境における標準的なメモリサブシステムが「スレーブ的」な性質を有するためである。
【０００６】
第３の公知の方法は、適応プロセッサを直接にマイクロプロセッサのバスまたは一次マイクロプロセッサ相互接続部（たとえばフロントサイドバス（ＦＳＢ））上に配置するというものである。この方法であれば、適応プロセッサの帯域幅および、システムにおける残りの部分に対する待ち時間を、確実にマイクロプロセッサでのそれと等しくできるように見える。しかしながら、現実にはこれは必ずしも当てはまるものではない。インテル（登録商標）（Intel）マイクロプロセッサの場合、適応プロセッサといった異質なデバイスは特別の扱いを受けることがあり、第三者エージェントとして分類される。したがって、場合によっては、キャッシュされたデータの移動またはＩ／Ｏ装置へのデータの移動に関連した機能などバスにおける多くの機能を利用することができない。また、適応プロセッサはそれ自体が１つの回路基板であり、そのマイクロプロセッサへの接続がバスレイアウトの基本的な規則を侵すおそれがあるという場合もあり得る。これに加え、適応プロセッサは、一貫性のあるバス・エージェントでない場合もあるにもかかわらず、キャッシュの一貫性に関係するトランザクションに正しく応答するなどマイクロプロセッサのバスのプロトコルすべてに関与しなければならない場合もある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
発明の概要
しかし、所望の結合を達成すると同時に、マイクロプロセッサバスに常駐していることに関連する問題を解消する方策が存在する。これは、コアロジックのメモリ・Ｉ／Ｏコントローラチップ、すなわち典型的には現在のインテル（登録商標）ベースのプロセッサボード上で「ノースブリッジ」と呼ばれるものに追加されたまたはこれに関連付けられた専用の適応プロセッサインターフェイスポート（ＡＰＩＰ）を採用することによるものである。そして、このポートおよび主マイクロプロセッサバスへおよびこれらからのメモリアクセスは、メモリコントローラ内の回路によって調停される。こうすることで、マイクロプロセッサおよび適応プロセッサ両方のメモリ帯域幅および待ち時間は等しくなる。これに加え、ＡＰＩＰは、マイクロプロセッサバスとは別個の電気的ポートであるため、すべてのＦＳＢプロトコルに準拠および関与する必要はない。その結果プロトコルのオーバーヘッドが減少し、その結果としてインターフェイスで得られる処理可能な負荷の量が大きくなる。
【０００８】
適応プロセッサへのデータの移動を高速化するために、ノースブリッジ内に直接メモリアクセス（ＤＭＡ）エンジンを含めることもまた可能である。これによって、適応プロセッサはＡＰＩＰ経由で単一の「読出」要求を発行して、その結果ＤＭＡエンジンに実際大きなデータブロックを検索させて適応プロセッサへ送信させることが可能となる。このＤＭＡエンジンは「読出」要求および「書込」要求の両方を同時に処理することができるため、適応プロセッサ内でストリーミング動作を可能な限り効率的に生じさせることができる。
【０００９】
構築され得るシステムを極めて大型化できるように、このポートに十分な駆動能力を与えて、これが外部の相互接続部、たとえば大型のクロスバースイッチと接続できるようにしてもよい。こうすることで、多数の適応プロセッサとマイクロプロセッサとは、問題を解決するためにランダムに相互接続されて働くことができる。スイッチにおけるいずれの所与のポートも、いずれの時点においてもビジーとなる可能性があるため、ＡＰＩＰの外部行きの経路に小さなバッファを設け、こうして、当該経路がビジーになったときに進行
中であり得る「読出」メモリアクセスがデータの損失なしに完了できるようにすることが望ましい。当該経路が自由になると直ちにバッファからの抜取りおよび送信を行なって現在のＤＭＡを再開させることができる。経路がビジーであることを示す方策としては、ビジーな受信側のポートからこれが接続される送信機へ「ビジー」信号を送信するというものがある。これに伴ない、ＡＰＩＰは「ビジー」信号を受取ると送信を止め、何らかの理由でデータをこれ以上受取ることができなくなったときに別個の「ビジー」信号を生成する。
【００１０】
適応プロセッサの制御と、適応プロセッサおよびマイクロプロセッサ間の直接通信とを支援するものとして、一連の好ましくは６４ビットのレジスタをメモリコントローラ内に含めるのがよい。そして、これらレジスタは、マイクロプロセッサまたは適応プロセッサのいずれかからアクセス可能にされ得る。
【００１１】
一般的に、大型のシステムにおいては、プロセッサは互いを中断する必要がある。これはハイブリッドシステムを扱う場合にも当てはまる。したがって、ＡＰＩＰには、プロセッサ間の中断をマイクロプロセッサから受入れてシステム内の他のプロセッサに送る能力と、逆の機能を実行してプロセッサ間の中断を受取る能力とを与えてもよい。このポートは物理的外観においてＡＧＰグラフィックスポートと類似し得る。実際、典型的にＡＧＰ（accelerated graphics port）はサーバにおいては、モニタがないことから用いられないため、メモリコントローラにおける同じデバイスピンを使用し、レジスタを用いてポートをＡＧＰまたはＡＰＩＰのいずれかとして構成可能にすることも可能であろう。
【課題を解決するための手段】
【００１２】
本願明細書において特定的に開示されるのは、第１のバスを与える少なくとも１つのマイクロプロセッサと、上記第１のバスに結合され、さらにメモリバスおよび適応プロセッサポートに結合されたメモリコントローラと、上記メモリバスに結合されたメモリブロックと、上記適応プロセッサポートに結合された適応プロセッサとを備えるコンピュータシステムである。
【００１３】
本願明細書においてさらに開示されるのは、少なくとも１つのマイクロプロセッサと、メモリブロックと、上記マイクロプロセッサおよび上記メモリブロックに結合されて上記少なくとも１つのマイクロプロセッサによる上記メモリブロックへのアクセスを制御するためのメモリコントローラと、上記メモリコントローラに結合された少なくとも１つの適応プロセッサとを備え、上記メモリコントローラがさらに上記少なくとも１つの適応プロセッサによる上記メモリブロックへのアクセスを制御する、ハイブリッド計算システムである。
【００１４】
本願明細書においてさらに開示されるのは、第１および第２の処理要素と、メモリブロックと、第１のバスを介して上記第１の処理要素に結合されかつ第２のバスを介して上記第２の処理要素に結合され、上記第１および第２の処理要素による上記メモリブロックへのアクセスを制御するメモリコントローラとを備える、計算システムである。
【００１５】
本願明細書においてさらに開示されるのは、第１および第２の処理要素ならびにメモリブロック間に結合され、上記第１および第２の処理要素による上記メモリブロックへのアクセスを制御するメモリバス調停部を備える、計算システム用メモリコントローラである。
【発明を実施するための最良の形態】
【００１６】
以下の好ましい実施例の説明を添付の図面とともに参照することで、この発明に関する上記およびその他の特徴および目的ならびにこれを達成する態様がより明らかとなり、ま
たこの発明それ自体が最もよく理解されるであろう。
【００１７】
代表的な実施例の説明
まず図１を参照して、典型的な計算システム１００の高レベルの機能ブロック図が示される。計算システム１００は、たとえば、集積回路（ＩＣ）メモリコントローラ（ノースブリッジ）１０２を組込んだパーソナルコンピュータ（ＰＣ）であり得る。市場で入手できるＩＣメモリコントローラ１０２としては、ＶＩＡテクノロジーズ・インコーポレイテッド（VIA Technologies, Inc.）社製のＰ４Ｘ３３３／Ｐ４Ｘ４００デバイス、エイサー・ラブズ・インコーポレイテッド（Acer Labs, Inc.）社製のＭ１６４７デバイス、およびインテル・コーポレイション（Intel Corporation）社製の８２４４３０Ｘデバイスなどがある。ノースブリッジＩＣ１０２はフロントサイドバス（ＦＳＢ）を用いてプロセッサ１０４に結合される。プロセッサ１０４としては、たとえばインテル・コーポレイション社製のPentium（登録商標）シリーズのプロセッサの１つが挙げられる。
【００１８】
ノースブリッジＩＣ１０２は、別個のメモリバスを介してシステムメモリ１０６に結合される。システムメモリ１０６は、たとえば或る数の同期ダイナミック・ランダムアクセス（ＳＤＲＡＭ）メモリモジュールを含み得る。また、システム１００をグラフィックスアクセラレータにインターフェイスするための専用のＡＧＰ（accelerated graphics port）が設けられ、またノースブリッジＩＣ１０２と追加の入出力Ｉ／ＯコントローラＩＣ（サウスブリッジ）１０８とを結合するブリッジ間のバスが設けられる。サウスブリッジＩＣはたとえばスタンダード・マイクロシステムズ・コーポレイション（Standard Microsystems, Corporation）社製のＳＬＣ９０Ｅ６６デバイス、またはＶＩＡテクノロジーズ社製のＶＴ８２３５デバイスであり得る。
【００１９】
サウスブリッジＩＣ１０８は、システム１００をＰＣＩ（peripheral component interconnect）バスに結合し、或る数の専用ＰＣＩスロット１１０とのインターフェイスをとる。また、ＵＳＢ（universal serial bus）、システム管理（system management：ＳＭ）バスおよび汎用（general purpose：ＧＰ）Ｉ／Ｏバスとの相互接続部が設けられ、さらに、システム１００のさまざまな構成要素のうち或る数の構成要素を制御するシステムコントローラ１１４および基本入出力システム（ＢＩＯＳ）ブロック１１２へのＩＳＡ／ＥＩＯ（industry standard architecture/extended I/O）バスへの相互接続部が設けられる。
【００２０】
次に図２を併せて参照して、典型的なＩ／Ｏ接続のハイブリッド計算システム２００の機能ブロック図が示される。ハイブリッド計算システム２００は１つ以上のノースブリッジＩＣ２０２O〜２０２Nを含み、その各々がフロントサイドバスを用いて４つのマイクロプロセッサ２０４00〜２０４03から２０４N0〜２０４N3まで（これらを含む）に結合される。ノースブリッジＩＣ２０２O〜２０２Nは、それぞれメモリブロック２０６O〜２０６Nに結合され、さらに対応するＩ／Ｏブリッジ要素２０８O〜２０８Nに結合される。ネットワークインターフェイスカード（ＮＩＣ）２１２O〜２１２Nは、それぞれＩ／Ｏブリッジ２０８O〜２０８NのＩ／Ｏバスをクラスタバスに結合し、これは共通のクラスタ化ハブ（またはイーサネット（登録商標）スイッチ）２１４に結合される。
【００２１】
図示のように、適応プロセッサ要素２１０O〜２１０Nは、それぞれＩ／Ｏブリッジ２０８O〜２０８Nに結合され関連付けられる。これはハイブリッド計算システム２００において適応プロセッサ２１０を接続する既存の手法の中でも最も基本的なものであり、本質的には標準的なＩ／Ｏポートを介してマイクロプロセッサ２０４への接続により実現される。これは比較的実現が容易ではあるが、その結果として適応プロセッサ２１０およびマイクロプロセッサ２０４間の結合は極めて「緩い」ものとなり、その結果、プロセッサバスの帯域幅および待ち時間に対して帯域幅は小さく待ち時間は長くなる。さらに、両種のプ
ロセッサ２０４，２１０は同じメモリ２０６を共有しなければならないため、適応プロセッサ２１０での性能は著しく低下したものとなる。機能的には、このアーキテクチャでは、現実に生じ得るマイクロプロセッサ２０４および適応プロセッサ２１０間の対話の量は大幅に制限される。
【００２２】
次に図３を併せて参照して、典型的なメモリ接続のハイブリッド計算システム３００の機能ブロック図が示される。このハイブリッド計算システム３００もまた或る数のノースブリッジＩＣ２０２O〜２０２Nを含み、その各々がフロントサイドバスを用いて４つのマイクロプロセッサ２０４00〜２０４O3から２０４N0〜２０４N3まで（これらを含む）に結合される。ノースブリッジＩＣ２０２O〜２０２Nはそれぞれメモリブロック２０６O〜２０６Nに結合され、さらに対応するＩ／Ｏブリッジ要素２０８O〜２０８Nに結合される。ネットワークインターフェイスカード（ＮＩＣ）２１２O〜２１２Nは、それぞれＩ／Ｏブリッジ２０８O〜２０８NのＩ／Ｏバスをクラスタバスに結合し、これは共通のクラスタ化ハブ（またはイーサネット（登録商標）スイッチ）２１４に結合される。
【００２３】
図示のように、適応プロセッサ要素３１０O〜３１０Nは、それぞれメモリブロック２０６O〜２０６Nに結合され関連付けられる。この特定の計算システム３００のアーキテクチャにおいては、適応プロセッサ３１０は、上述の特許のいくつかに開示された態様で実質的にマイクロプロセッサ２０４のメモリ２０６空間内に配置される。図示の計算システム３００のアーキテクチャによれば、マイクロプロセッサ２０４および適応プロセッサ３１０間において、先の図の計算システム２００でのものよりもはるかに緊密な結合が得られ、帯域幅および待ち時間は一般的にマイクロプロセッサバス自体のものと等しくなる。それにもかかわらず、特に小さな転送の場合、この種の相互接続に関連するオーバーヘッドは望ましいよりも大きくなる場合があるが、それはパーソナルコンピュータ環境における標準的なメモリサブシステムが実質的に「スレーブ的」な性質を有するためである。
【００２４】
次に図４を併せて参照して、典型的なフロントサイドバス（ＦＳＢ）接続のハイブリッド計算システム４００の機能ブロック図が示される。このハイブリッド計算システム４００もまた或る数のノースブリッジＩＣ２０２O〜２０２Nを含み、その各々がフロントサイドバスを用いて４つのマイクロプロセッサ２０４00〜２０４O3から２０４N0〜２０４N3まで（これらを含む）に結合される。ノースブリッジＩＣ２０２O〜２０２Nはそれぞれメモリブロック２０６O〜２０６Nに結合され、さらに対応するＩ／Ｏブリッジ要素２０８O〜２０８Nに結合される。ネットワークインターフェイスカード（ＮＩＣ）２１２O〜２１２Nは、それぞれＩ／Ｏブリッジ２０８O〜２０８NのＩ／Ｏバスをクラスタバスに結合し、これは共通のクラスタ化ハブ（またはイーサネット（登録商標）スイッチ）２１４に結合される。
【００２５】
図示のように、適応プロセッサ要素４１０O〜４１０Nは、それぞれ、マイクロプロセッサ２０４O0〜２０４O3から２０４N0〜２０４N3まで（これらを含む）に結合されたフロントサイドバスに結合され関連付けられる。この特定のアーキテクチャにおいては、適応プロセッサ４１０は直接にマイクロプロセッサ２０４のバスまたはフロントサイドバス上に配置される。この相互接続方式であれば、適応プロセッサ４１０の帯域幅および、計算システム４００における残りの部分に対する待ち時間を、確実にマイクロプロセッサ２０４でのそれと等しくできるように見える。しかしながら、現実にはこれは必ずしも当てはまるものではない。インテル（登録商標）マイクロプロセッサの場合、適応プロセッサ４１０といった「異質な」デバイスは特別な扱いを受けることがあり、「第三者エージェント」として分類される。したがって、場合によっては、キャッシュされたデータの移動またはＩ／Ｏ装置へのデータの移動に関連した機能などフロントサイドバスにおける多くの機能を利用することができない。また、適応プロセッサ４１０はそれ自体が１つの回路基板であり、そのマイクロプロセッサへの接続がバスレイアウトの基本的な規則を侵すおそれ
があるという場合もあり得る。これに加え、適応プロセッサ４１０は、それ自体が一貫性のあるバス・エージェントでない場合もあるにもかかわらず、キャッシュの一貫性に関係するトランザクションに正しく応答するなどマイクロプロセッサ２０４のバスのプロトコルすべてに関与しなければならない場合もある。
【００２６】
次に図５を併せて参照して、先の図に対応した、この発明に従う適応プロセッサインターフェイスポート（ＡＰＩＰ）接続のハイブリッド計算システム５００の機能ブロック図が示される。計算システム５００は或る数のメモリ・Ｉ／Ｏコントローラ５０２O〜５０２Nを含み、その各々がフロントサイドバスを用いて４つのマイクロプロセッサ２０４O0〜２０４O3から２０４NO〜２０４N3まで（これらを含む）に結合される。メモリ・Ｉ／Ｏコントローラ５０２O〜５０２Nはそれぞれメモリブロック２０６O〜２０６Nに結合され、さらに対応するＩ／Ｏブリッジ要素２０８O〜２０８Nに結合される。ネットワークインターフェイスカード（ＮＩＣ）２１２O〜２１２Nは、それぞれＩ／Ｏブリッジ２０８O〜２０８NのＩ／Ｏバスをクラスタバスに結合し、これは共通のクラスタ化ハブ（またはイーサネット（登録商標）スイッチ）２１４に結合される。
【００２７】
図示のように、適応プロセッサ要素５１０O〜５１０Nは、適応プロセッサインターフェイスポート（ＡＰＩＰ）を介してそれぞれメモリ・Ｉ／Ｏコントローラ５０２O〜５０２Nに結合され関連付けられるので、計算システム５００の性能が向上し、上述の従来技術にあった問題が解消される。この発明についての他の実現例としては、適応プロセッサ５１０のうち１つ以上に代えて従来のマイクロプロセッサをＡＰＩＰインターフェイスに結合することもできる。
【００２８】
ここに開示した好ましい実施例においては、上記のことは、メモリ・Ｉ／Ｏコントローラ５０２（たとえばノースブリッジチップ）に追加されたまたはこれに関連付けられた専用の適応プロセッサインターフェイスポートを採用することによって実現することができる。そして、このＡＰＩＰポートへおよびここからのメモリアクセス、ならびに主マイクロプロセッサ２０４のバス（たとえばフロントサイドバス）へおよびここからのメモリアクセスは、メモリ・Ｉ／Ｏコントローラ５０２内のメモリ制御回路によって調停される。こうすることで、マイクロプロセッサ２０４および適応プロセッサ５１０両方のメモリ帯域幅および待ち時間は等しくなる。これに加え、ＡＰＩＰは、マイクロプロセッサバスのそれとは別個の電気的ポートであるため、すべてのＦＳＢプロトコルに準拠および関与する必要はない。その結果プロトコルのオーバーヘッドが減少し、そしてその結果としてインターフェイスで得られる処理可能な負荷の量が大きくなる。
【００２９】
次に図６を併せて参照して、先の図のＡＰＩＰインターフェイスを実現するメモリ・Ｉ／Ｏコントローラ５０２の機能ブロック図が示される。このメモリ・Ｉ／Ｏコントローラ５０２はＦＳＢインターフェイス５１２を含む。ＦＳＢインターフェイス５１２はメモリバス調停部５１４により制御され、マイクロプロセッサ２０４O0〜２０４O3から２０４N0〜２０４N3まで（これらを含む）へ／からの、優先度の高い要求に応答する。メモリバス調停部５１４はまた、メモリブロック２０６O〜２０６Nへのアクセスを可能にするためのメモリインターフェイス５１６を制御する。Ｉ／Ｏブリッジ要素２０８O〜２０８Nを通る優先度の低い要求は、メモリバス調停部５１４により制御されてブリッジ間インターフェイス５１８を通じて行なわれる。
【００３０】
図示のように、メモリ・Ｉ／Ｏコントローラ５０２は、従来のＡＧＰバスインターフェイスの代わりに、またはこれに追加して、適応プロセッサ要素５１０O〜５１０Nとのインターフェイスをとりこれと通信するためのＡＰＩＰインターフェイス５２４を含む。また、直接メモリアクセス（ＤＭＡ）エンジン５２０は、「読出」についての読出要求バッファ５２２とともに、たとえば別個の「データ書込」バスおよび「データ読出」バス経由で
、メモリバス調停部５１４およびＡＰＩＰインターフェイス５２４へおよびここからの優先度の高い要求を処理する。ＡＰＩＰインターフェイス５２４は、例示の一実施例において、ＡＰＩＰインターフェイスからＤＭＡエンジン５２０への「ビジー」信号を設けることを含み得る。さらに、ＦＳＢインターフェイス５１２をＡＰＩＰインターフェイス５２４に結合する或る数の制御レジスタ５２６が設けられ得る。
【００３１】
動作においては、ＤＭＡエンジン５２０は、メモリ・Ｉ／Ｏコントローラ５０２を通って適応プロセッサ５１０に至るデータの移動を高速化するように働くことができる。この機能によって、適応プロセッサ５１０は、ＡＰＩＰインターフェイス５２４経由で単一の「読出」要求を発行して、その結果ＤＭＡエンジン５２０に実際大きなデータブロックを検索させて適応プロセッサ５１０へ送信させることが可能となる。このＤＭＡエンジン５２０は「読出」要求および「書込」要求の両方を同時に処理することができるため、適応プロセッサ５１０内でストリーミング動作を可能な限り効率的に生じさせることができる。
【００３２】
構築され得る計算システム５００を極めて大型化できるように、ＡＰＩＰインターフェイス５２４に十分な駆動能力を与えて、これが外部の相互接続部、たとえば大型のクロスバースイッチと接続できるようにしてもよい。こうすることで、多数の適応プロセッサ５１０とマイクロプロセッサ２０４とは、問題を解決するためにランダムに相互接続されて働くことができる。スイッチにおけるいずれの所与のポートも、いずれの時点においてもビジーとなる可能性があるため、ＡＰＩＰインターフェイス５２４の外部行きの経路に小さなバッファ（たとえば読出要求バッファ５２２）を設け、こうして、当該経路が「ビジー」になったときに進行中であり得る「読出」メモリアクセスがデータの損失なしに完了できるようにすることが望ましい。当該経路が自由になると直ちにバッファ５２２からの抜取りおよび送信を行なって現在のＤＭＡ動作を再開することができる。経路がビジーであることを示す方策としては、ビジーな受信側のポートからこれが接続される送信機へ「ビジー」信号を送信するというものがある。これに伴ない、ＡＰＩＰインターフェイス５２４は「ビジー」信号を受取ると送信を止め、何らかの理由でデータをこれ以上受取ることができなくなったときに別個の「ビジー」信号を生成する。
【００３３】
適応プロセッサ５１０の制御と、適応プロセッサ５１０およびマイクロプロセッサ２０４間の直接通信とを支援するものとして、一連のたとえば６４ビットの制御レジスタ５２６をメモリ・Ｉ／Ｏコントローラ５０２の一部として含める場合がある。これらレジスタ５２６は、マイクロプロセッサ２０４または適応プロセッサ５１０のいずれかからアクセス可能であるのが理想的である。一般的に、比較的大型の計算システム５００においては、プロセッサ２０４は互いを中断する必要がある。これはハイブリッド計算システムを扱う場合にも当てはまる。したがって、ＡＰＩＰインターフェイス５２４には、プロセッサ２０４間の中断をマイクロプロセッサ２０４から受入れてシステム内の他のプロセッサ２０４に送る能力と、逆の機能を実行してプロセッサ２０４間の中断を受取る能力とを与えてもよい。
【００３４】
特定の実現例において、ＡＰＩＰインターフェイス５２４は物理的外観においてＡＧＰグラフィックスポートに類似し得る。実際、典型的にＡＧＰ（accelerated graphics port）はサーバにおいては、モニタがないことから用いられないため、典型的なノースブリッジ装置において他では利用可能である同じピンを使用し、レジスタを用いてポートをＡＧＰまたはＡＰＩＰのいずれかとして構成可能にすることも可能である。
【００３５】
次に図７を併せて参照して、適応プロセッサ要素５１０として使用され得る多適応型プロセッサ要素（ＭＡＰTM、ＳＲＣコンピューターズ・インコーポレイテッドの登録商標）の機能ブロック図が示される。適応プロセッサ要素５１０は、上述の発行された特許およ
び係属中の特許出願に開示されたような１つ以上のフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）を含み得るユーザアレイ５３９を含む。図示のように、２つ以上の適応プロセッサ要素５１０を直接に結合するためのチェーンポートを設けることができる。
【００３６】
制御チップ５３２は、適応プロセッサ要素５１０を関連のメモリ・Ｉ／Ｏコントローラ５０２のＡＰＩＰインターフェイス５２４に結合し、対応するユーザアレイ５３０に制御機能を提供する。制御チップ５３２およびユーザアレイ５３０には、オンボードメモリ５３４がたとえば６個のポートを介して結合される。簡潔に説明すると、メモリ・Ｉ／Ｏコントローラ５０２の書込データ線および読出データ線が制御チップ（またはブロック）５３２に結合され、制御チップ５３２は、或る数のアドレス線でオンボードメモリ５３４にアドレスを与えてユーザアレイ５３０からアドレスを受取る。書込データ線で供給されるデータは、制御チップ５３２により、或る数のデータ線でオンボードメモリ５３４に与えられ、オンボードメモリ５３４から読出されるデータは、上記の同じ線でユーザアレイ５３０および制御チップ５３２に与えられ、この後でＡＰＩＰインターフェイス５２４に呈示され得るようになる。上述のように、ユーザアレイ５３０にはチェーンポートを結合して、１つ以上の他の適応プロセッサ５１０と直接に読出データおよび書込データを通信させることができる。
【００３７】
次に図８を併せて参照して、この発明の別の実施例に従う適応プロセッサインターフェイスポート接続のハイブリッド計算システム８００の一部の機能ブロック図が示される。図示のように、計算システム８００においては、メモリ・Ｉ／Ｏコントローラ８０２の機能はマイクロプロセッサ８０４に組込まれている。このようにして、メモリ・Ｉ／Ｏコントローラ８０２のメモリインターフェイス５１６をメモリブロック８０６に結合することができ、ブリッジ間インターフェイス５１８をＩ／Ｏブリッジ８０８に結合することができ、ＡＰＩＰインターフェイス５２４を適応プロセッサ８１０に結合することができる。計算システム８００においては、メモリ・Ｉ／Ｏコントローラ５０２（図６）の機能は維持されているが、一体的なメモリ・Ｉ／Ｏコントローラ８０２を含めることによりメモリ・Ｉ／Ｏコントローラ５０２の機能をマイクロプロセッサ８０４に一体化しているので、別個のチップまたは集積回路装置の必要性がなくなる。
【００３８】
以上、この発明の原理について、特定の計算システムアーキテクチャおよび構成要素との関連において説明したが、以上の説明は単に例としてなされたものであり、この発明の範囲の限定としてなされたものではないことが明らかに理解されるであろう。特に、以上の開示の教示によって当業者には他の変形例が示唆されることが認められる。このような変形例は、それ自体で既に公知である他の特徴であって、本願明細書に既に記載された特徴の代わりにまたはこれに追加して用いられ得るものを含み得る。本願においては、特許請求の範囲を特定の特徴の組合せに対して作成してあるが、ここでの開示の範囲は、明示的または暗示的に開示されたあらゆる新規の特徴もしくはあらゆる新規の特徴の組合せ、または当業者には明らかであろうそのあらゆる一般化もしくは変形をも含み、かつこのようなものがいずれかの請求項において現在請求されている同じ発明に関係するか否か、およびこの発明が直面する同じ技術的問題のうちいずれかまたはすべてを緩和するか否かにはかかわらないことが理解されるべきである。本出願人はこれにより、本願またはここから導き出されるあらゆるさらなる出願についての手続中に、上記のような特徴および／または上記のような特徴の組合せに対して新たな請求項を作成する権利を留保する。
【図面の簡単な説明】
【００３９】
【図１】メモリ・入出力（Ｉ／Ｏ）コントローラ（ノースブリッジ）およびＰＣＩ（peripheral component interconnect）バスＩ／Ｏコントローラ（サウスブリッジ）との関連で実現されたパーソナルコンピュータ（ＰＣ）など典型的な計算システムの高レベルの機能ブロック図である。
【図２】或る数のマイクロプロセッサおよび適応プロセッサを含み、これら適応プロセッサがＩ／Ｏブリッジに結合された典型的なＩ／Ｏ接続のハイブリッド計算システムの機能ブロック図である。
【図３】或る数のマイクロプロセッサおよび適応プロセッサを含み、これら適応プロセッサがシステムメモリに結合された典型的なメモリ接続のハイブリッド計算システムの機能ブロック図である。
【図４】或る数のマイクロプロセッサおよび適応プロセッサを含み、これら適応プロセッサが直接にフロントサイドバス（ＦＳＢ）に結合された典型的なＦＳＢ接続のハイブリッド計算システムの機能ブロック図である。
【図５】先の図に対応して、この発明に従い、或る数のマイクロプロセッサおよび適応プロセッサを含み、これら適応プロセッサが直接にメモリ・Ｉ／Ｏコントローラに結合された適応プロセッサインターフェイスポート（ＡＰＩＰ）接続のハイブリッド計算システムの機能ブロック図である。
【図６】適応プロセッサとともに用いられるＡＰＩＰインターフェイスを実現するメモリ・Ｉ／Ｏコントローラの機能ブロック図である。
【図７】この発明に従うハイブリッド計算システムにおいて適応プロセッサとして使用され得る多適応型プロセッサ（ＭＡＰTM、ＳＲＣコンピューターズ・インコーポレイテッドの登録商標）の機能ブロック図である。
【図８】この発明の別の実施例に従う適応プロセッサインターフェイスポート接続のハイブリッド計算システムであって、メモリ・Ｉ／Ｏコントローラの機能がマイクロプロセッサ自体に組込まれたものの一部の機能ブロック図である。
【図１】
2006505046.tif 000003
【図２】
2006505046.tif 000004
【図３】
2006505046.tif 000005
【図４】
2006505046.tif 000006
【図５】
2006505046.tif 000007
【図６】
2006505046.tif 000008
【図７】
2006505046.tif 000009
【図８】
2006505046.tif 000010
【国際調査報告】
2006505046.tif 000011
2006505046.tif 000012
2006505046.tif 000013