(57)【要約】少なくとも１つのマイクロプロセッサを有する計算システムと、少なくとも１つのマイクロプロセッサに結合されるメモリサブシステムとを提供する。メモリコントローラは、メモリサブシステムと少なくとも１つのマイクロプロセッサとの間でメモリトランザクションを管理するよう結合される。少なくとも１つの調停ポートはメモリコントローラに結合され、外部の調停信号を受信するよう構成される。【特許請求の範囲】
【請求項１】
計算システムであって、
少なくとも１つのマイクロプロセッサと、
前記少なくとも１つのマイクロプロセッサに結合されるメモリサブシステムと、
前記メモリサブシステムと前記少なくとも１つのマイクロプロセッサとの間でメモリトランザクションを管理するよう結合されるメモリコントローラと、
前記メモリコントローラに結合され、外部の調停信号を受信するよう構成される少なくとも１つの調停ポートとを含む、計算システム。
【請求項２】
前記調停信号ポートはシステムチップセットのノースブリッジ構成要素において実現される、請求項１に記載の計算システム。
【請求項３】
前記ノースブリッジ構成要素によって実現される複数のインターフェイスポートをさらに含み、前記複数のインターフェイスポートは外部システムからのメモリトランザクションをサポートし、さらに、
前記メモリサブシステムへのアクセスのための前記複数のインターフェイスポートの間で調停を行なうための、前記ノースブリッジ構成要素内における調停メカニズムを含み、前記少なくとも１つの調停ポートは前記調停メカニズムに結合する、請求項２に記載の計算システム。
【請求項４】
前記ノースブリッジ構成要素によって実現される複数のインターフェイスポートをさらに含み、前記複数のインターフェイスポートの各々は外部システムからのメモリトランザクションをサポートし、さらに、
前記メモリサブシステムへのアクセスのための前記複数のインターフェイスポートの間で調停を行なうための前記ノースブリッジ構成要素内における内部調停メカニズムと、
前記調停ポートを介して前記内部調停メカニズムに前記調停信号を供給するよう結合される外部調停メカニズムとをさらに含む、請求項２に記載の計算システム。
【請求項５】
前記調停信号ポートはメモリコントローラにおいて実現される、請求項１に記載の計算システム。
【請求項６】
前記メモリコントローラは前記少なくとも１つのマイクロプロセッサに組込まれ、前記調停信号ポートは前記マイクロプロセッサの前記メモリコントローラにおいて実現される、請求項１に記載の計算システム。
【請求項７】
複数のエージェントが、前記メモリサブシステムとのトランザクションを実行するために前記少なくとも１つの調停ポートにアクセスする、請求項１に記載の計算システム。
【請求項８】
対称型マルチプロセッサ（ＳＭＰ）コンピュータシステムであって、
少なくとも２つのマイクロプロセッサと、
共有システムメモリと、
前記共有システムメモリおよび前記少なくとも２つのマイクロプロセッサに結合されるメモリコントローラと、
前記メモリコントローラに結合され、前記少なくとも２つのマイクロプロセッサの各々によってアクセス可能であるメモリ調停ポートとを含み、前記メモリコントローラは、前記少なくとも２つのマイクロプロセッサの各々を前記共有システムメモリに選択的に結合するために前記メモリ調停ポート上の信号に応答する、対称型マルチプロセッサ（ＳＭＰ）コンピュータシステム。
【請求項９】
前記調停メカニズムは、特定されたメモリ位置が前記少なくとも２つのマイクロプロセッサのうちの第２のマイクロプロセッサによって用いられているときに前記少なくとも２つのマイクロプロセッサのうちの第１のマイクロプロセッサによって特定されたメモリ位置へのアクセスを妨げるためのリソースを含む、請求項８に記載のＳＭＰコンピュータシステム。
【請求項１０】
前記調停メカニズムは、前記少なくとも２つのマイクロプロセッサのサブセットによって排他的なアクセスのための特定されたメモリ位置を確保するためのリソースを含む、請求項８に記載のＳＭＰコンピュータシステム。
【請求項１１】
計算システムであって、
少なくとも１つの適応プロセッサと、
前記少なくとも１つの適応プロセッサに結合されるメモリサブシステムと、
前記メモリサブシステムと前記少なくとも１つの適応プロセッサとの間でメモリトランザクションを管理するよう結合されるメモリコントローラと、
前記メモリコントローラに結合され、外部の調停信号を受信するよう構成される少なくとも１つの調停ポートとを含む、計算システム。
【請求項１２】
前記調停信号ポートは、システムチップセットのノースブリッジ構成要素において実現される、請求項１１に記載の計算システム。
【請求項１３】
前記ノースブリッジ構成要素によって実現される複数のインターフェイスポートをさらに含み、前記複数のインターフェイスポートの各々が外部システムからのメモリトランザクションをサポートし、さらに、
前記メモリサブシステムへのアクセスのための前記複数のインターフェイスポートの間で調停を行なうための、前記ノースブリッジ構成要素内における調停メカニズムを含み、前記少なくとも１つの調停ポートは前記調停メカニズムに結合する、請求項１２に記載の計算システム。
【請求項１４】
前記ノースブリッジ構成要素によって実現される複数のインターフェイスポートをさらに含み、前記複数のインターフェイスポートの各々は外部システムからのメモリトランザクションをサポートし、さらに、
前記メモリサブシステムへのアクセスのための前記複数のインターフェイスポートの間で調停を行なうための、前記ノースブリッジ構成要素内における内部調停メカニズムと、
前記調停ポートを介して前記内部調停メカニズムに前記調停信号を供給するよう結合される外部調停メカニズムとを含む、請求項１２に記載の計算システム。
【請求項１５】
前記調停信号ポートはメモリコントローラにおいて実現される、請求項１１に記載の計算システム。
【請求項１６】
前記メモリコントローラは前記少なくとも１つのマイクロプロセッサに組込まれ、前記調停信号ポートは前記適応プロセッサの前記メモリコントローラにおいて実現される、請求項１１に記載の計算システム。
【請求項１７】
複数のエージェントが前記メモリサブシステムとのトランザクションを実行するために前記少なくとも１つの調停ポートにアクセスする、請求項１１に記載の計算システム。
【請求項１８】
計算システムであって、
少なくとも１つの適応プロセッサと、
少なくとも１つのマイクロプロセッサと、
メモリサブシステムと、
前記少なくとも１つの適応プロセッサ、前記少なくとも１つのマイクロプロセッサおよび前記メモリサブシステムに結合されるメモリバスと、
前記メモリバスへの前記少なくとも１つのマイクロプロセッサのアクセスを管理するためのメモリおよびＩ／Ｏコントローラと、
前記メモリバスへのアクセスを調停するための前記少なくとも１つの適応プロセッサに結合される調停メカニズムと、
外部のエージェントが前記メモリサブシステムの制御のために調停を行なうことを可能にするよう動作可能な前記調停メカニズム内における少なくとも１つのインターフェイスポートとを含み、前記調停メカニズムが前記メモリおよびＩ／Ｏコントローラにおいて外部から実現される、計算システム。
【請求項１９】
コンピュータシステムのためのメモリおよびＩ／Ｏコントローラであって、
メモリアクセス要求を生成する装置に結合するための１つ以上のメモリユーザポートと、
システムメモリに結合するためのメモリバスポートと、
メモリアクセス要求を生成する前記装置によって前記システムメモリへの調停されたアクセスを許可するよう動作可能な調停メカニズムと、
前記調停メカニズムに結合される外部調停ポートとを含み、前記調停メカニズムは、前記外部調停ポートの外部装置コントローラによって前記システムメモリへの調停されたアクセスを許可するために前記外部調停ポート上の信号に応答する、メモリおよびＩ／Ｏコントローラ。
【請求項２０】
前記調停メカニズムはシステムチップセットのノースブリッジ構成要素内で実現される、請求項１９に記載のメモリおよびＩ／Ｏコントローラ。
【請求項２１】
前記調停ポートは要求信号ポートおよび許可信号ポートを含む、請求項２０に記載のメモリおよびＩ／Ｏコントローラ。
【請求項２２】
メモリシステム調停メカニズムを有するコンピュータシステムにおいて用いるためのメモリシステム調停バスであって、前記バスは、
要求信号ポートと、
許可信号ポートとを含む、メモリシステム調停バス。
【請求項２３】
メモリシステム調停メカニズムと、メモリシステムリフレッシュメカニズムとを有するコンピュータシステムにおいて用いるためのメモリシステム調停バスであって、前記バスは、
要求信号ポートと、
許可信号ポートと、
メモリサブシステムのリフレッシュ状態を伝達するリフレッシュ信号ポートとを含み、前記調停メカニズムは、メモリシステムリフレッシュメカニズムとは別個の装置において実現される、メモリシステム調停バス。
【請求項２４】
計算システムであって、
少なくとも１つのマイクロプロセッサと、
メモリサブシステムと、
前記マイクロプロセッサおよび前記メモリサブシステムに結合され、前記メモリサブシステムと前記少なくとも１つのマイクロプロセッサとの間でメモリトランザクションを管理するよう動作可能なメモリコントローラと、
前記メモリコントローラに結合され、外部の調停信号を受信するよう構成される少なく
とも１つの調停ポートと、
前記調停ポートに結合され、１つ以上の適応プロセッサに結合されるポートを有するスイッチとを含み、前記スイッチは前記適応プロセッサのうちの１つを前記調停ポートに選択的に結合するよう動作可能である、計算システム。
【請求項２５】
共有メモリサブシステムへのアクセス要求を生成する複数のサブシステムを有する計算システムを作動させるための方法であって、前記方法は、
前記サブシステムのうちの１つ以上に前記メモリサブシステムへのアクセスを要求させる動作と、
前記１つ以上のサブシステムの間で調停を行なって、１つのサブシステムを選択する動作と、
前記選択されたサブシステムへの許可信号を生成する動作と、
前記選択されたサブシステムと前記メモリサブシステムとの間でメモリトランザクションを実行する動作とを含む、方法。
【請求項２６】
前記サブシステムのうちの１つ以上にアクセスを要求させる前記動作はさらに、システムチップセットの外部ポートに要求信号を伝達する動作を含む、請求項２５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連する出願の相互参照
この発明は、「メモリサブシステムにおいて複数のメモリアルゴリズムプロセッサを組込んだマルチプロセッサコンピュータアーキテクチャ（“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.）に譲渡され、その開示が、全体として、この引用によりこの明細書中に具体的に援用される。
【背景技術】
【０００２】
発明の背景
この発明は、概して、さまざまな処理素子または計算素子を相互接続するためのコンピュータシステムおよび技術の分野に関する。より特定的には、この発明は、外部装置がシステムメモリリソースに協働的にアクセスすることを可能にする調停インターフェイスを有するコンピュータシステムアーキテクチャおよびメモリコントローラに関する。
【０００３】
シングルプロセッサシステムのための従来のコンピュータシステムアーキテクチャは、「システムチップセット」を通じて他の装置と通信するマイクロプロセッサを含む。当該システムチップセットは、マイクロプロセッサがメモリ、大容量記憶装置、表示装置、ネットワークインターフェイス、プリンタなどの外部装置と通信することを可能にするさまざまな入出力およびコントローラ機能を実現する。典型的なシステムチップセットは、しばしば「フロントサイドバス」または「ＦＳＢ」と称されるマイクロプロセッサへのインターフェイスを実現し、これが、メモリなどの高速、低レイテンシ、または帯域幅集約型の構成要素に結合する。チップセットは、しばしば「周辺バス」と称され、より低速で動作する二次インターフェイスを実現し、これが、大容量記憶コントローラ、プリンタ、ネットワークインターフェイスなどのより低速の装置に結合する。
【０００４】
システムチップセットは、しばしば、複数の専用の構成要素として製造される。典型的な構成においては、「ノースブリッジ」構成要素は、マイクロプロセッサインターフェイスと、メモリサブシステムへのインターフェイスとを実現する。「サウスブリッジ」構成要素は周辺インターフェイスを実現する。ノースブリッジ構成要素とサウスブリッジ構成要素とが結合されて、周辺インターフェイスとマイクロプロセッサインターフェイスとをブリッジでつなぐ。マイクロプロセッサとメモリとの間のインターフェイスは、大抵のアプリケーションに対する特に制約付けされたインターフェイスである。大抵のパーソナルコンピュータアーキテクチャにおいては、１つの装置がＦＳＢへの排他的なアクセスを有する（たとえば、単一のマイクロプロセッサがＦＳＢに結合される）と仮定される。この
ため、すべてのメモリトランザクションは、ノースブリッジチップへのポートを介して実現されなければならない。これにより、外部装置のためのシステムメモリアクセス時間が増える。外部装置が適応プロセッサであるハイブリッド計算システムの場合には、このアクセス時間の増加により、ハイブリッドシステムの性能の恩恵が減じられる。
【０００５】
多くの場合、ダイレクトメモリアクセス（ＤＭＡ）コントローラは、周辺バスとメモリサブシステムとの間のメモリトランザクションを管理するために、周辺バス上で、ノースブリッジ装置内で、またはノースブリッジ構成要素上のＤＭＡポートを介して実現される。ＤＭＡコントローラは、かなりのメモリ帯域幅を必要とする外部プロセッサなどの装置とは対照的に、典型的には、サウスブリッジ装置を介して結合される低速の周辺装置でメモリトランザクションをサポートするよう設計される。すなわち、ＤＭＡコントローラは、周辺のメモリ活動をサポートし、そうして、より低速の周辺インターフェイス速度で動作する。ＤＭＡコントローラがマイクロプロセッサをすべてのメモリ動作の操作から解放するが、より低速のインターフェイスにより、マイクロプロセッサにとって利用可能な速度に類似の速度でメモリサブシステムにアクセスする能力が制限される。
【０００６】
従来のコンピュータシステムのノースブリッジは、システムメモリバスへのアクセスのためにプロセッサとグラフィックスポートと周辺装置およびＤＭＡコントローラとの間において内部で調停を行なう。現在、システムチップセットは、調停ロジックに外部アクセスを与えない。したがって、メモリサブシステムへのアクセスを所望する外部装置は、ノースブリッジ構成要素によって実現される調停メカニズムの使用を強いられる。
【０００７】
ＳＭＰ（対称型マルチプロセッシング）とは、共通のオペレーティングシステムおよびメモリを共有する複数のプロセッサを用いてプログラムを実行するシステムを指す。対称型マルチプロセッシングにおいては、プロセッサはメモリおよびＩ／Ｏバスまたはデータ経路を共有する。オペレーティングシステムの単一コピーがすべてのプロセッサを管理する。従来の計算システムアーキテクチャでは複数の装置がメモリバスにアクセスすることができないので、複数のプロセッサがメモリを共有するシステムを実現することは難しい。結果として、従来のアーキテクチャ用に設計される大量生産された構成要素に基づいたＳＭＰシステムは、周辺バス速度で許可されたより低速のアクセスを用いたか、またはメモリサブシステム内で処理構成要素を実現した。より最近の実現例の一例には、同一出願人に譲渡された米国特許第６，２４７，１１０号に記載される多重適応プロセッサ（ＭＡＰTM（登録商標））がある（ＭＡＰは、SRC Computers, Inc.の商標または登録商標である）。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
以上のことを考慮すると、高速でのメモリサブシステムへのアクセスを可能にするために調停メカニズムを呈示する計算システムが必要とされることが明らかである。さらに、メモリサブシステムバスに結合する複数のプロセッサおよび他の構成要素などの複数のエージェントによってメモリサブシステムバスがアクセス可能となるように、外部から供給された調停信号を利用するシステムチップセットアーキテクチャが特に必要とされる。
【課題を解決するための手段】
【０００９】
発明の概要
簡潔に述べると、この発明は、少なくとも１つのマイクロプロセッサを有する計算システムと、少なくとも１つのマイクロプロセッサに結合されるメモリサブシステムとを含む。メモリコントローラは、メモリサブシステムと少なくとも１つのマイクロプロセッサとの間でメモリトランザクションを管理するよう結合される。少なくとも１つの調停ポートがメモリコントローラに結合され、外部の調停信号を受信するよう構成される。
【発明を実施するための最良の形態】
【００１０】
好ましい実施例の詳細な説明
この発明は、さまざまなプロセスからのシステムメモリへの共有アクセスを可能にする対称型マルチプロセッシング（ＳＭＰ）計算システムを含んだマルチプロセッサとハイブリッドコンピュータシステムとを含む。この発明の具体的な実現例においては、実質的に従来のシステムチップセットは、内部の調停ロジックを外部装置にさらすよう変更が加えられる。この態様では、適応プロセッサなどの１つ以上の外部装置は、システムチップセットを介してシステムメモリにアクセスする必要なしに、システムメモリに直接リンクしている。他の実現例においては、調停ロジックはシステムチップセットの外部にある装置において実現され、この場合、システムチップセットは、それが排他的なアクセスを有すると仮定するのではなく、メモリシステムアクセスのために調停を行なうよう変更される。いずれの場合も、システムチップセットへの変更は最小限であり、調停信号バスまたはポートが、システムチップセットへのわずか２〜３つの接続で実現され得る。
【００１１】
図１は、典型的な計算システム１００の高レベルの機能ブロック図を示す。計算システム１００はたとえばパーソナルコンピュータ（「ＰＣ」）アーキテクチャであってもよく、市販されている集積回路（「ＩＣ」）メモリコントローラ（「ノースブリッジ」）１０２、たとえば、ブイ・アイ・エー・テクノロジーズ・インコーポレイテッド（VIA Technologies, Inc.）から入手可能なＰ４Ｘ３３３／Ｐ４Ｘ４００装置、エイサー・ラボラトリーズ・インコーポレイテッド（Acer Labs, Inc.）から入手可能なＭ１６４７装置、およびインテル・コーポレイション（Intel Corporation）から入手可能な８２４４３０Ｘ装置などを組込んでいる。ノースブリッジ１０２は、フロントサイドバス（「ＦＳＢ」）によって、プロセッサ１０４、たとえばIntel Corporationから同様に入手可能なIntel（登録商標）Pentium（登録商標）シリーズのプロセッサまたはXeon（登録商標）シリーズのプロセッサうちの１つに結合される。ノースブリッジ１０２は、メモリバスを介して、たとえば同期ダイナミックランダムアクセス（「ＳＤＲＡＭ」）メモリモジュールの構成を含むシステムメモリ１０６に結合される。他のメモリ構成および装置には、たとえば、ランバス・コーポレイション（Rambus Corporation）によるダブルデータレート（ＤＤＲ）ＳＤＲＡＭ、ＲＤＲＡＭおよびＤＲＤＲＡＭ、ラムトロン・インターナショナル・コーポレイション（Ramtron International Corporation）によって製造されるエンハンスドＳＤＲＡＭ（ＥＳＤＲＡＭ）などがある。以上で留意されるように、従来のノースブリッジ構成要素は、ＦＳＢを介して単一のプロセッサ１０４をサポートするよう構成されており、これにより付加的なプロセッサを追加することが難しくなる。システムチップセットがＦＳＢに結合された複数のプロセッサをサポートする場合でも、代替的な実施例において上述されるように、ＦＳＢアーキテクチャは特定のプロセッサタイプに極めて特有なものである。したがって、適応プロセッサにメモリサブシステム１０６への好適なアクセスを与える態様で適応プロセッサなどの高度なまたは特殊用途の処理装置を結合することは難しいかまたは不可能であった。
【００１２】
いくつかの実現例においては、ブリッジ間のバスがノースブリッジＩＣ１０２を「サウスブリッジ」１０８に結合する一方で、専用の高速グラフィックスポート（「ＡＧＰ」）（図示せず）が、システム１００を外部のグラフィックス処理構成要素にインターフェイスするために設けられる。ノースブリッジ１０２およびサウスブリッジ１０８は合わせてシステムチップセットと称される。というのも、それらが典型的には一緒に作動して所望のシステムＩ／Ｏ機能をもたらすよう設計されているからである。チップセットの構成要素間における機能の割当は実現例の間で変えられてもよく、Ｉ／Ｏ機能のいくつかまたはすべては、マイクロコントローラの場合と同様にマイクロプロセッサ１０４に組込まれてもよい。この発明の目的のために、ノースブリッジ構成要素１０２が典型的にはメモリサブシステムへのアクセスに関連付けられる高速のＩ／Ｏ機能に対処することを留意するこ
とで十分である。
【００１３】
サウスブリッジ１０８は、スタンダード・マイクロシステムズ・コーポレイション（Standard Microsystems, Corporation）から入手可能なＳＬＣ９０Ｅ６６装置、または、VIA Technologiesから入手可能なＶＴ８２３５装置によって実現され得る。サウスブリッジ１０８は、たとえば周辺構成要素相互接続（「ＰＣＩ」）バス、ユニバーサル・シリアル・バス（ＵＳＢ）、ＩＥＥＥ  １３９４ポート、システム管理（「ＳＭ」）バス、汎用（「ＧＰ」）Ｉ／Ｏ、ならびに業界標準アーキテクチャ／拡張Ｉ／Ｏ（「ＩＳＡ／ＥＩＯ」）バスなどにシステム１００を結合するさまざまなＩ／Ｏインターフェイスおよびポートを実現する。サウスブリッジ１０８はまた、特定の応用例の必要に応じて、グラフィックスデバイス、オーディオデバイス、ローカルエリアネットワークデバイス、ディスクドライブ、フラッシュメモリなどへの専用のポートを実現し得る。概して、サウスブリッジ１０８のインターフェイスは、ノースブリッジ１０２と比べて、より低速で狭い帯域幅のＩ／Ｏに対処する。
【００１４】
図１に示されるアーキテクチャとは対照的に、図２〜図７に示されるハイブリッド計算システムは、外部の処理装置がメモリサブシステムへのアクセスを共有することを可能にするさまざまな実現例を示す。ハイブリッドコンピュータシステムは、標準的なマイクロプロセッサおよび適応プロセッサの両方を組込んだシステムである。これらは、典型的には、共有ネットワーク上に存在する大きなマルチプロセッサ・サーバタイプのシステムである。このようなシステムの全体的な性能および柔軟性は、マイクロプロセッサと適応プロセッサとシステムメモリとの間の結合のレベルに正比例している。本質的に異なるプロセッサタイプが同等物として扱われ、共有メモリに対してバランスの取れた（たとえば実質的に等しい）帯域幅およびレイテンシを有する場合、システム性能は通常最大限にされるだろう。概して、図２〜図７に示される実現例は、このようなバランスの取れたアクセスを達成するために、外部のプロセッサがメモリサブシステムへのアクセスを協働的に共有することを可能にする調停ポートおよび調停メカニズムを提供する。
【００１５】
たとえば、図２においては、システム２００は、システム／ネットワークアダプタポート（ＳＮＡＰ）２１２を介してシステムメモリバスに結合される適応プロセッサ２１０を追加することによって、典型的なコンピュータシステム１００上で拡張する。SRC Computers, Inc.によって売り出されている多重適応プロセッサ（ＭＡＰ）などの適応プロセッサは、ハードウェアロジックによって実現される機能を有する能力をユーザに与え、当該機能により、アプリケーションアルゴリズムが、従来のマイクロプロセッサ２０４内のソフトウェアにおいて実現される以上に大きく加速され得る。具体的なＳＮＡＰの実現例および機能についての詳細が、この発明の譲受人であるSRC Computers, Inc.（コロラド州（Colorado）、コロラドスプリングス（Colorado Springs））に譲渡され、「デュアル・インライン・メモリモジュールフォーマットで多重適応プロセッサのチェーンを用いるクラスタ化されたコンピュータのためのスイッチ／ネットワークアダプタポート（“Switch/Network Adapter Port for Clustered Computers Employing a Chain of Multi-Adaptive Processors in a Dual In-Line Memory Module Format”）」と題され、２００１年８月１７日に出願された米国特許出願連続番号第０９／９３２，３３０号に記載され、その開示が、全体としてこの引用によりこの明細書中に具体的に援用される。ＳＮＡＰ２１２は、典型的には、コンピュータシステムのＤＩＭＭスロットに配置され、これによりメモリバスに結合される。ＳＮＡＰ２１２は、メモリサブシステム上で実現され、メモリアドレス空間を占有するが、処理およびＩ／Ｏ機能を実行するよう構成され得る構成可能な装置である。ＳＮＡＰ２１２はメモリシステム２０６に密接に結合されるが、メモリトランザクションを実行する際に、メモリバスに対するその「スレーブ」の結果としていくらかのオーバーヘッドを呈示する。しかしながら、このオーバーヘッドが全体的な性能に及ぼす影響は最小限である。というのも、調停信号ポートをセットアップする際にこうむった
オーバーヘッドが、適応プロセッサ２１０によって処理されるすべてのメモリトランザクションにわたって広がるからである。
【００１６】
ハイブリッドシステム２００においては、当該例でノースブリッジチップとして実現されるメモリおよびＩ／Ｏコントローラ２０２はもはや、マイクロプロセッサ２０４がシステムメモリ２０６を制御することとなる唯一のエージェントになるとは想定し得ない。適応プロセッサ２１０は、メモリトランザクション（すなわち、読出、書込、修正、ロック、アンロックなど）を開始するのにシステムメモリ２０６への共有アクセスを必要とする。この発明のこの実現例に従うと、メモリおよびＩ／Ｏコントローラ２０２内の調停ロジックは、ＳＮＡＰ２１２とメモリおよびＩ／Ｏコントローラ２０２との間で調停信号を伝達するための外部調停ポートを備える。調停信号は、特定の例においては、要求信号がメモリシステムアクセスを求めるエージェントによってアサートされ、許可信号がメモリサブシステムに現在アクセスできるエージェントへの調停ロジックによってアサートされる比較的単純な要求／許可スキームを含む。従来のノースブリッジチップ内の調停ロジックがこのような決定を下すためのロジックを既に含んでいるので、この発明で必要とされる外部の調停信号のためのポート（たとえば、Ｉ／Ｏピン、ドライバ機構およびおそらくはバッファ）を設けるのにかかる労力は比較的簡単なものである。
【００１７】
動作の際に、ハイブリッドシステムのシステムメモリバス上で調停を行なうエージェントになる適応プロセッサのために、マザーボートのレイアウトをいくらか変更することが必要となるだろう。スイッチ・ネットワークアダプタポート（ＳＮＡＰ）は、システムにおけるＤＩＭＭスロットのうちの１つに配置されるだろう。付加的なヘッダがマザーボードに追加されて、システムにおける他のＤＩＭＭモジュールのチップセレクトへの接続を提供する。このヘッダへのＳＮＡＰコネクトはリボンケーブルを介して設けられる。このヘッダは、サイズの点ではたとえば１８〜２０個のピンであるだろう。従来のコンピュータシステム１００においては、このヘッダは使用されず、マザーボート上には存在しない。このスロットから、ＳＮＡＰ２１２がアドレスおよびコマンド情報をシステムにおける他のＤＩＭＭに駆動する。データが、すべてのＤＩＭＭに共通しているデータ線にわたってＳＮＡＰ２１２との間でやり取りされる。ＳＤＲＡＭにおいて用いられる標準的なＳＳＴＬ２インターフェイスはバス上に複数のドライバが存在することを可能にし、こうして、付加的なトライステート能力を必要とすることなく、この発明が実現され得る。結果として、この発明はシステムチップセットおよびマザーボードのわずかな変更を企図するが、従来のＤＩＭＭメモリ構成要素の変更は企図しない。
【００１８】
この発明の特定の実現例においては、ノースブリッジ２０２は、図１のシステム１００などの従来のシステムと互換性があるように設計される。このような互換性により、従来のシステム１００およびハイブリッドシステム２００の両方の要求を満たす単一のＩＣを製造することが可能となり、典型的には、結果としてより効率的な製造につながる。このような実現例においては、要求線が従来のシステム１００のために非活性状態に関連付けられる可能性があり、これにより、メモリおよびＩ／Ｏコントローラがメモリシステムアクセスのために調停を行なう唯一のエージェントとなるだろう。
【００１９】
メモリサブシステム２０６に直接アクセスする能力を有する場合、適応プロセッサ２１０などの付加的なエージェントは、低レイテンシでより高帯域幅のメモリアクセスを認識する。加えて、マイクロプロセッサ２０４は適応プロセッサ２１０へのデータ移動においては必要とされず、こうして、マイクロプロセッサ２０４を解放して他の非メモリ関連のタスクを実行させる。
【００２０】
図３は、この発明が実現されるハイブリッドシステム３００の別の実施例を示す。図３の実施例においては、複数の適応プロセッサ３１０は、ＳＮＡＰ３１２に結合するクロス
バ３１４を用いて設けられる。図示されないが、２つ以上のＳＮＡＰ３１２およびマイクロプロセッサシステムがクロスバスイッチ３１４に接続され得る。適応プロセッサ３１０は図２の記載におけるプロセッサ２１０に実質的に等しく、ＳＮＡＰ装置３１２は図２におけるＳＮＡＰ２１２に実質的に等しい。図３の実現例において、クロスバ３１４は、ＳＮＡＰ３１２のそれぞれから単一の適応プロセッサ３１０が接続されるように、１つの適応プロセッサ３１０をＳＮＡＰ３１２に選択的に結合する。この態様では、ＳＮＡＰ３１２は、図２の実現例に記載されるのと実質的に等しい態様で、メモリバスおよびメモリサブシステム３０６に適応プロセッサ３１０を結合するようプログラムされ得る。クロスバ３１４は、ＳＮＡＰ３１２に結合するべき特定のプロセッサ３１０を選択するために何らかの形の調停／制御を必要とするだろう。特定の例においては、この制御機能はＳＮＡＰ３１２インターフェイスにおいて実現され、適応プロセッサ３１０と通信するために規定された制御機能を活用し、したがって、クロスバ３１４の制御を実現するのに追加の配線またはリソースは必要とされない。これは、たとえば、適応プロセッサ３１０のうちの１つ以上の適応プロセッサ３１０内に構成されたロジックによって、または外部の管理エージェント（図示せず）によって実現され得る。代替的には、クロスバ３１４は適応プロセッサ３１０のラウンドロビン選択を実現して、システムメモリ３０６にアクセスするためのタイムシェアリングのようなアルゴリズムを実現し得る。
【００２１】
図４は、複数のプロセッサ４０４がメモリバスへの外部アクセスと組合せてＦＳＢに結合される点で図２に示されるシステムとは異なるハイブリッドシステムを示す。適応プロセッサ４１０は図２の記載中のプロセッサ２１０に実質的に等しく、ＳＮＡＰ装置４１２は図２のＳＮＡＰ２１２に実質的に等しい。いくつかのシステムチップセットは、ＦＳＢ上の複数のマイクロプロセッサ４０４とインターフェイスし得るメモリおよびＩ／Ｏコントローラ４０２を含む。マイクロプロセッサ４０４によって生成されるメモリトランザクションは、システムメモリ４０６への共有アクセスを可能にするよう適応プロセッサ４１０からのトランザクション要求で調停される。メモリおよびＩ／Ｏコントローラ４０２はすべてのプロセッサ４０４および４１０に対して等しいアクセスを実現し得るか、または、いくつかのプロセッサに対して好ましいアクセスを提供し得る。たとえば、マイクロプロセッサ４０４のすべてが一緒に５０％のアクセスを主張し得る（bet）が、残りの５０％は適応プロセッサ４１０に割当てられる。可変アクセス帯域幅を可能にするには、メモリおよびＩ／Ｏコントローラ４０２内の調停ロジックにいくらか変更を加えることが必要になるかもしれない。たとえば適応プロセッサ４１０がシステムメモリ４０６にアクセスすることのできる周波数を調整するかまたは制御することによって、ＳＮＡＰ４１２内でのプログラミングもプロセッサ４０４によるより要求の厳しいアクセスに対処するよう変更され得ることが企図される。
【００２２】
図５は、複数のプロセッサ５０４がメモリおよびＩ／Ｏコントローラ５０２へのＦＳＢアクセスを共有する一方で、複数の適応プロセッサ５１０がＳＮＡＰ５１２を介してメモリおよびＩ／Ｏコントローラ５０２にアクセスする実現例を示す。ＳＮＡＰ装置５１２は構成可能であるので、並行して動作するよう構成され得る。ＳＮＡＰ間の接続５１２は物理接続であり得るか、またはメモリコマンドによって実現される仮想接続であり得る。各適応プロセッサ５１０はメモリバスにアクセスでき、したがって、システムメモリ５０６へのアクセスを調停する。図５の実現例は、複数の要求エージェントの間で調停する能力を含む、メモリおよびＩ／Ｏコントローラ５０２内の調停メカニズムを活用する。ＳＮＡＰ５１２は、それら自体の間でメモリバスアクセスを調整するメカニズムを含み、かつ、メモリバスアクセスが複数のマイクロプロセッサ５０４によるアクセスの増加に対処するようアサートされる周波数を自己制御するメカニズムを含み得る。
【００２３】
図６および図７は、調停制御ロジックが、メモリおよびＩ／Ｏコントローラ６０２または７０２内の調停ロジックに完全に依拠するのではなくＳＮＡＰ６１２またはＳＮＡＰ７
１２内で実現されている具体的な実施例を示す。場合によっては、メモリおよびＩ／Ｏコントローラ６０２／７０２の製造業者は、調停メカニズムに直接アクセスせずに、メモリバスに外部アクセスを提供し得る。この場合、ＳＮＡＰ６１２および７１２内の調停ロジックはメモリバス上のメモリリフレッシュ信号を監視するだろう。特定の実現例においては、メモリリフレッシュ制御は、従来のコンピュータシステムとの互換性を残すようにノースブリッジ構成要素６０２／７０２において保持される。
【００２４】
図６に示されるＳＭＰコンピュータシステム６００は、図４に示されるシステムに類似しているが、ＳＮＡＰ６１２がメモリおよびＩ／Ｏコントローラ６０２の外にある調停ロジックを実現する点で異なっている。この外部の調停ロジックにより、適応プロセッサ６１０がメモリサブシステム６０６にアクセスすることが可能となる。メモリおよびＩ／Ｏ構成要素６０２は、システムメモリへのアクセスがマイクロプロセッサ６０４またはＩ／Ｏブリッジ６０８のうちの１つから待ち状態であるとき要求信号をアサートする。メモリリフレッシュは、リフレッシュサイクル前にメモリおよびＩ／Ｏ構成要素６０２にＳＮＡＰ６１２へのリフレッシュ信号をアサートさせることによって実現される。リフレッシュ信号の後の次のコマンドサイクルで、メモリおよびＩ／Ｏ構成要素６０６内のメモリリフレッシュメカニズムがメモリバスを制御して、システムメモリ６０６のリフレッシュを実行する。
【００２５】
図７に示されるＳＭＰコンピュータシステム７００は、図５に示されるシステムに類似しているが、ＳＮＡＰ７１２がメモリおよびＩ／Ｏコントローラ７０２の外にある調停ロジックを実現する点で異なっている。図６の実現例と同様に、外部の調停ロジックの使用は、リフレッシュ信号をメモリおよびＩ／Ｏコントローラ７０２から少なくとも１つのＳＮＡＰ７１２に供給することによって実現され、このため、リフレッシュ機能がメモリおよびＩ／Ｏコントローラ７０２によって保持される。従来のコンピュータシステム１００においてメモリおよびＩ／Ｏコントローラ７０２を用いるために、許可線は、メモリおよびＩ／Ｏコントローラ７０２がメモリバスを制御していることを示す信号レベルに関連付けられる。
【００２６】
図８および図９は、この発明に従ったコンピュータシステムを作動させるための具体的なタイミング図を示す。図８および図９においては、水平なアクセスは、クロック信号によって示されるサイクルに分割される増加時間を表わす。垂直なアクセスは、時間の経過に伴った信号事象を示す信号レベル（たとえば、電圧、電流など）を表わす。図８における要求信号および許可信号は、図２〜図５において「ＡＲＢ」と明示された調停バスの状態を示す。図８における要求信号および許可信号は、図６および図７において「ＡＲＢ」と明示された調停バスの状態を示すが、図９におけるリフレッシュ信号線は図６および図７に示されるリフレッシュ線の状態を示す。各タイミング図の上方領域において、クロックサイクルが「ＮＢ  ＣＭＤ」と指定されて、ノースブリッジコマンドがアサートされる（すなわち、コマンドがメモリおよびＩ／Ｏコントローラによってアサートされる）ある期間を示す。「ＳＮＡＰ  ＣＭＤ」と明示されたサイクルにおいては、ＳＮＡＰ装置が調停されたメモリバスを制御し、図９で「ＲＥＦＲＥＳＨ  ＣＭＤ」と明示されたサイクルにおいては、（特定の例におけるノースブリッジ構成要素内の）リフレッシュメカニズムが調停されたメモリバスを制御する。便宜上、図８および図９の説明は、ＳＮＡＰ装置２１２、３１２、４１２、５１２、６１２または７１２のいずれかによって生成される信号としてＳＮＡＰ信号について言及するだろう。同様に、メモリおよびＩ／Ｏコントローラ２０２、３０２、４０２、５０２、６０２および７０２はノースブリッジ構成要素と称されるだろう。
【００２７】
図８においては、ノースブリッジは最初にメモリバスを制御する。ＳＮＡＰ装置は、要求（ＲＥＱＵＥＳＴ）信号をアサートし、これは、許可（ＧＲＡＮＴ）が後に１つ以上の
クロックサイクルで受信されるまで要求状態で保持される。ＧＲＡＮＴは、特定のノースブリッジ構成要素によって実現される調停アルゴリズムに従って、ノースブリッジ構成要素内の調停ロジックによって生成されるだろう。ＧＲＡＮＴ信号をアサートすると、ＳＮＡＰ装置は、ＲＥＱＵＥＳＴ線を下げることによってメモリバスを解放するまでメモリバスを制御する。ＳＮＡＰ装置にメモリバスの制御を放棄させてデッドロック／ライブロック状況を避けるために何らかのメカニズムが提供され得ることが企図される。しかしながら、図８に示される通常動作において、ノースブリッジ構成要素内の調停ロジックがＲＥＱＵＥＳＴ信号のデアサートを認識し、後続のクロックサイクルにおいてＧＲＡＮＴ線を低く配置し、その後、ノースブリッジ構成要素が、後続のＳＮＡＰ要求が処理されるまでメモリバスの制御を維持する。従来の動作については、ＧＲＡＮＴ線は、ノースブリッジ構成要素が連続した制御を維持するように、ノースブリッジ制御を示す信号状態（たとえば、図８ではロー）に永久的に関連付けられる。
【００２８】
図９においては、ノースブリッジは最初にメモリバスを制御する。ＲＥＱＵＥＳＴ／ＧＲＡＮＴプロトコルは図８に示されるプロトコルに大体類似しているが、調停ロジックがＳＮＡＰ装置において実現されるので、ＳＮＡＰ装置はメモリシステムのＲＥＦＲＥＳＨ状態を認識していなければならない。図９に図示のとおり、ノースブリッジ構成要素がリフレッシュ動作を実行しようとしていることを示すＲＥＦＲＥＳＨ信号を検出すると、ＳＮＡＰ装置はＲＥＱＵＥＳＴ信号およびＧＲＡＮＴ信号をデアサートすることによって制御を放棄する。リフレッシュサイクルが終了すると、ＳＮＡＰは再び、ＲＥＱＵＥＳＴをアサートし、かつノースブリッジ構成要素の内部の調停メカニズムよって生成されるであろうＧＲＡＮＴを待つことによって、メモリバスの制御のために調停を行うことができる。従来の動作については、ＧＲＡＮＴ線がノースブリッジ制御を示す信号状態（たとえば、図８ではロー）に永久的に関連付けられ、ＲＥＱＵＥＳＴ／ＲＥＦＲＥＳＨ線が使用されないので、ノースブリッジ構成要素は連続した制御を維持する。
【００２９】
特定の計算システムアーキテクチャおよび構成要素に関連してこの発明の原理を以上に記載したが、前述の記載は例示のためだけになされたものであり、この発明の範囲を限定するものではないことは明瞭に理解されるべきである。特に、前述の開示の教示により、関連技術の当業者には、他の変形例が提案されることがわかる。このような変形例は、それ自体が既に公知であり、かつ、この明細書中に既に記載された特徴の代わりにまたはそれに加えて用いることのできる他の特徴を含み得る。特許請求の範囲は、本願では特定の特徴の組合せに対して作成されているが、この明細書中における開示の範囲もまた、関連技術の当業者には明らかであろういかなる新規な特徴、または明示的もしくは暗示的に開示される特徴のいかなる新規な組合せ、またはこれらのいかなる一般化もしくは変形例も、これらがいずれかの請求項において現在クレームされるのと同じ発明に関連しているか否か、および、この発明が直面するのと同じ技術的な問題のいずれかもしくはすべてを緩和するか否かにかかわらず、包含するものであることを理解されたい。本出願人はこれにより、本願またはこれより発生するさらなる出願すべての審査手続期間中にそのような特徴および／またはそのような特徴の組合せに対し、新しい請求項を作成する権利を留保する。
【００３０】
この発明をある程度特定的に記載および図示してきたが、この発明の開示が例示のみを目的としてなされたものであり、添付の特許請求の範囲に記載されるように、この発明の精神および範囲から逸脱することなく、当業者によって部品の組合せおよび構成の多くの変更がなされ得ることが理解される。
【図面の簡単な説明】
【００３１】
【図１】（「ノースブリッジ」と）周辺バスコントローラ（「サウスブリッジ」と）を含むマイクロプロセッサ、メモリおよびシステムチップセットで実現される典型的な計算システムを示す機能ブロック図である。
【図２】この発明に従ったシステムメモリに結合されるマイクロプロセッサおよび適応プロセッサを含むメモリ接続されたハイブリッド計算システムを示す機能ブロック図である。
【図３】マイクロプロセッサを備えた共有システムメモリに結合された１つ以上の適応プロセッサを有する、この発明に従った代替的な実施例のハイブリッド計算システムを示す機能ブロック図である。
【図４】メモリシステム調停メカニズムおよびポートがシステムチップセットのノースブリッジ構成要素において実現される、この発明に従ったハイブリッド対称型マルチプロセッシング（ＳＭＰ）計算システムを示す機能ブロック図である。
【図５】この発明に従った、調停されたアクセスの共有メモリサブシステムに結合された複数の適応プロセッサを有する代替的な構成のハイブリッドＳＭＰ計算システムを示す機能ブロック図である。
【図６】この発明に従って実現されるスイッチ／ネットワークアダプタポート（ＳＮＡＰ）において実現されるメモリシステムアクセス調停メカニズムを有する代替的な実施例のハイブリッドＳＭＰ計算システムを示す機能ブロック図である。
【図７】この発明に従って実現されるスイッチ／ネットワークアダプタポート（ＳＮＡＰ）において実現されるメモリシステムアクセス調停メカニズムを備えた複数の適応プロセッサを有する別の代替的な実施例のハイブリッドＳＭＰ計算システムを示す機能ブロック図である。
【図８】この発明に従った調停信号バス／ポートの２線式の実現例において有用な第１の実施例の調停シーケンスを示すタイミング図である。
【図９】この発明に従った調停信号バス／ポートの３線式の実現例において有用な第１の実施例の調停シーケンスを示すタイミング図である。
【図１】
2006505054.tif 000002
【図２】
2006505054.tif 000003
【図３】
2006505054.tif 000004
【図４】
2006505054.tif 000005
【図５】
2006505054.tif 000006
【図６】
2006505054.tif 000007
【図７】
2006505054.tif 000008
【図８】
2006505054.tif 000009
【図９】
2006505054.tif 000010
【国際調査報告】
2006505054.tif 000011
2006505054.tif 000012
2006505054.tif 000013