(57)【特許請求の範囲】
【請求項１】
集積プロセッサ（ＩＰ）ブロック、ルーター、メモリ通信コントローラおよびネットワーク・インターフェイス・コントローラを含むネットワークオンチップ（ＮＯＣ）であって、
各々の前記ＩＰブロックが、前記メモリ通信コントローラおよび前記ネットワーク・イターフェイス・コントローラを介して、前記ルーターに結合され、
各々の前記メモリ通信コントローラが、前記ＩＰブロック間および前記ＩＰブロックとオンチップ・メモリ間の通信を制御し、
各々の前記ネットワーク・インターフェイス・コントローラが、前記ルーターを介してＩＰブロック間通信を制御し、
各々の前記ルーターが、通信タイプによって各々特徴付けられる２個もしくはそれ以上の仮想通信チャネルを含み、
前記メモリ通信コントローラは、前記ＩＰブロックから受け取ったメモリ通信命令をコマンド・フォーマットに変換して前記ネットワーク・インターフェイス・コントローラに送り、前記ネットワーク・インターフェイス・コントローラが、前記メモリ通信命令のコマンド・フォーマットをネットワーク・パケット・フォーマットへ変換して前記ルーターに送ることにより、前記ＩＰブロック間および前記ＩＰブロックとオンチップ・メモリ間のメモリ・アドレス・ベースの通信を可能にする、ネットワークオンチップ（ＮＯＣ）。
【請求項２】
前記メモリ通信コントローラが、
前記メモリ通信命令を他のメモリ通信実行エンジンとは別個にかつ並行して前記コマンド・フォーマットへの変換を含む処理を実行することができる、複数のメモリ通信実行エンジンを含む、請求項１に記載のＮＯＣ。
【請求項３】
前記メモリ通信命令が、変換ルックアサイド・バッファ制御命令、キャッシュ制御命令、バリア命令、メモリ・ロード命令、及び、メモリ・ストア命令を含む、請求項２に記載のＮＯＣ。
【請求項４】
前記オンチップ・メモリが、
ＲＡＭ、
前記メモリ通信コントローラを介して前記ＩＰブロックに直接に接続されたメモリ、
前記ＩＰブロックとしてイネーブルされるオンチップ・メモリ、及び、
オンチップ・キャッシュを含む、請求項１に記載のＮＯＣ。
【請求項５】
各々の前記ＩＰブロックが、
前記ＮＯＣ内のデータ処理のため構築ブロックとして使用される同期もしくは非同期の論理設計の再使用可能なユニットを含む、請求項１に記載のＮＯＣ。
【請求項６】
各々の前記ネットワーク・インターフェイス・コントローラが、
ネットワーク・パケットをタイプによって特徴付ける仮想チャネルをネットワーク上に実現する、請求項１に記載のＮＯＣ。
【請求項７】
各々の前記ＩＰブロックが、
前記ＩＰブロックのメモリ通信コントローラをバイパスし、かつ、
ＩＰブロック間の、ネットワーク・アドレス通信をＩＰブロックのネットワーク・インターフェイス・コントローラを介して直接に前記ネットワークに送る、請求項１に記載のＮＯＣ。
【請求項８】
ネットワークオンチップ（ＮＯＣ）で以ってデータを処理する方法であって、
前記ＮＯＣは、
集積プロセッサ（ＩＰ）ブロック、ルーター、メモリ通信コントローラおよびネットワーク・インターフェイス・コントローラを含み、
各々の前記ＩＰブロックが、前記メモリ通信コントローラおよび前記ネットワーク・インターフェイス・コントローラを介して前記ルーターに結合されており、
各々の前記ルーターが、通信タイプによって各々特徴付けられる２個もしくはそれ以上の仮想通信チャネルを含み、
前記方法は、
各々の前記メモリ通信コントローラによって、前記ＩＰブロック間および前記ＩＰブロックとオンチップ・メモリ間の通信を制御するステップと、
各々の前記ネットワーク・インターフェイス・コントローラによって、前記ルーターを介してＩＰブロック間通信を制御するステップと、を含み、
前記メモリ通信コントローラは、前記ＩＰブロックから受け取ったメモリ通信命令をコマンド・フォーマットに変換して前記ネットワーク・インターフェイス・コントローラに送り、前記ネットワーク・インターフェイス・コントローラが、前記メモリ通信命令のコマンド・フォーマットをネットワーク・パケット・フォーマットへ変換して前記ルーターに送ることにより、前記ＩＰブロック間および前記ＩＰブロックとオンチップ・メモリ間のメモリ・アドレス・ベースの通信を可能にする、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理に関し、特にネットワークオンチップ（ＮＯＣ）によりデータ処理を行う装置および方法に関する。
【背景技術】
【０００２】
２つの広範に使用されるデータ処理のパラダイムがある。複数命令、複数データという「ＭＩＭＤ」と、単一命令、複数データという「ＳＩＭＤ」とである。ＭＩＭＤ処理では、コンピュータ・プログラムが、多かれ少なかれ独立に動作し、かつ大量の共有メモリに高速でランダムなアクセスをする必要が夫々ある、１個もしくはそれ以上の実行コードのスレッド（one or more threads of execution ）として典型的には特徴付けられる。ＭＩＭＤは、特定のクラスのプログラムのためにそれに適合するよう最適化され、たとえばワード・プロセッサ、スプレッドシート、データベース・マネジャ、ブラウザなど多くの形式のテレコミュニケーションを含むデータ処理パラダイムである。
【０００３】
ＳＩＭＤは、多くのプロセッサ上で並行して同時に稼動する単一のプログラムによって特徴付けられ、またそのプログラムの各インスタンスが同じ態様でだがデータの別個のアイテム上で動作するように特徴づけられる。ＳＩＭＤは特定のクラスのアプリケーションのためにそれに適合するように最適化され、たとえば多くの形式のディジタル信号処理、ベクトル処理などを含むデータ処理パラダイムである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
他のクラスのアプリケーションもあるが、それは多くの現実の世界のシミュレーション・プログラムを含み、そのプログラムに対しては、たとえば純粋なＳＩＭＤのもしくは純粋なＭＩＭＤのデータ・プロセシングのいづれも最適化されていない。そのクラスのアプリケーションは並列処理の利益を得られるアプリケーションを含み、また共有メモリへの高速のランダムなアクセスを必要とする。そのクラスのプログラムに対し、純粋なＭＩＮＤシステムは高度の並列性（ parallelism ）を提供せず、また純粋なＳＩＭＤシステムはメイン・メモリ・ストア（主メモリ格納装置）への高速のランダムなアクセスを提供しない。
【課題を解決するための手段】
【０００５】
ネットワークオンチップ（ＮＯＣ）は、集積プロセッサ（ＩＰ）ブロック、ルーター、メモリ通信コントローラおよびネットワーク・インターフェイス・コントローラを含む。各ＩＰブロックはルーターにメモリ通信コントローラおよびネットワーク・インターフェイス・コントローラを介して結合される。但し、各メモリ通信コントローラはＩＰブロックおよびメモリ間の通信を制御し、各ネットワーク・インターフェイス・コントローラはルーターを介してＩＰブロック間通信を制御する。
【発明を実施するための最良の形態】
【０００６】
本発明の前述のおよび他の目的、特徴および効果は本発明の実施例についての以下のもっと具体的な説明から明らかになろう。その図面では一般に同様の参照番号は本発明の実施例の同様な部分を示す。
【０００７】
本発明によるＮＯＣを備えたデータ処理のための実施例の装置および方法を図１から始まる添付図面に沿って説明する。図１は、本発明の実施例によるＮＯＣを備えたデータ処理において有用な実施例のコンピュータ１５２を含む自動化されたコンピューティング・マシンのブロック図を開示する。図１のコンピュータ１５２は少なくとも１個のコンピュータ・プロセッサすなわちプロセッサ１５６と、プロセッサ１５６およびコンピュータ１５２の他のコンポーネントに高速のメモリ・バス１６６およびバス・アダプタ１５８を介して接続されるランダム・アクセス・メモリすなわちＲＡＭ１６８を含む。
【０００８】
ＲＡＭ１６８にストア（格納）されるのは、アプリケーション・プログラム１８４であり、ワード・プロセシング、スプレッドシート、データベース操作、ビデオ・ゲーム、株式市場のシミュレーション、原子量子プロセスのシミュレーションあるいは他のユーザーレベルのアプリケーションなど、特定のデータ処理タスクを実行するユーザーレベルのコンピュータ・プログラム命令のモジュールである。ＲＡＭ１６８にはオペレーティング・システム１５４もストアされる。オペレーティング・システムは本発明の実施例によるＮＯＣとともに有用なデータ処理を行うが、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（商標）、Ｍｉｃｒｏｓｏｆｔ  ＸＰ（商標）、ＡＩＸ（商標）、ＩＢＭのｉ５／ＯＳ（商標）ほか当業者の想到するような他のものを含む。図１の実施例におけるオペレーティング・システム１５４およびアプリケーション・プログラム１８４はＲＡＭ１６８の中に示されているが、そのようなソフトウエアの多くのコンポーネントはディスク・ドライブないしデータ・ストレージ１７０などのような不揮発性メモリにもストアされる。
【０００９】
実施例のコンピュータ１５２は本発明の実施例による２個のＮＯＣ、すなわちＮＯＣビデオ・アダプタ２０９およびＮＯＣコプロセッサ１５７を含む。ＮＯＣビデオ・アダプタ２０９は、ディスプレイ・スクリーンもしくはコンピュータ・モニタなどのディスプレイ装置１８０へのグラフィック出力のために特別に設計されたＩ／Ｏアダプタの一例である。ＮＯＣビデオ・アダプタ２０９は、高速のビデオ・バス１６４、バス・アダプタ１５８、およびフロント・サイド・バス１６２（これも高速のバスである）を介してプロセッサ１５６に接続される。
【００１０】
実施例のＮＯＣコプロセッサ１５７は、バス・アダプタ１５８、および高速バスであるフロント・サイド・バス（１６２および１６３）を介してプロセッサ１５６に接続される。図１のＮＯＣコプロセッサ１５７は主たるプロセッサ１５６の命令ないし要請で特定のデータ処理タスクを加速するように最適化される。
【００１１】
図１の実施例のＮＯＣビデオ・アダプタ２０９およびＮＯＣコプロセッサ１５７は夫々本発明の実施例によるＮＯＣ（図２の１０２）を含む。ＮＯＣ１０２は、図２に関連して後述するように、ＩＰ（集積プロセッサ）ブロック１０４、ルーター１１０、メモリ通信コントローラ１０６およびネットワーク・インターフェイス・コントローラ１０８を含み、各ＩＰブロック１０４はメモリ通信コントローラ１０６およびネットワーク・インターフェイス・コントローラ１０８を介してルーター１１０につながれ、各メモリ通信コントローラ１０６はＩＰブロック１０４とメモリとの間の通信を制御し、各ネットワーク・インターフェイス・コントローラ１０８はルーター１１０を介してＩＰブロック間通信を制御する。ＮＯＣビデオ・アダプタ２０９およびＮＯＣコプロセッサ１５７は、並列処理を用いるプログラムのために最適化され、また共有メモリへの高速のランダム・アクセスを必要とする。ＮＯＣの構造および動作の詳細は図２ないし図４で行う。
【００１２】
図１のコンピュータ１５２は拡張バス１６０およびバス・アダプタ１５８を介してプロセッサ１５６に結合されたディスク・ドライブ・アダプタ１７２とコンピュータ１５２の他のコンポーネントとを含む。本発明の実施例によるＮＯＣとともにデータ処理をするためにコンピュータで有用なディスク・ドライブ・アダプタは集積ドライブ・エレクトロニクス（ＩＤＥ）アダプタ、ＳＣＳＩ（小型コンピュータシステム・インターフェイス）アダプタ、当業者の想到するような他のものを含む。不揮発性のコンピュータ・メモリは、また光ディスク・ドライブ、電子的に消去可能なプログラム可能読出し専用メモリ（いわゆるＥＥＰＲＯＭもしくはフラッシュ・メモリ）、ＲＡＭドライブ、当業者の想到するような他のものを実装してもよい。
【００１３】
図１の実施例のコンピュータ１５２は１個もしくはそれ以上の入出力（Ｉ／Ｏ）アダプタ１７８を含む。Ｉ／Ｏアダプタ１７８は、コンピュータ・ディスプレイ・スクリーンなどのディスプレイ装置への出力を制御するため、たとえばソフトウエア・ドライバおよびコンピュータ・ハードウエアを介してのユーザー起源の入出力と、キーボードおよびマウスなどユーザー入力装置１８１からのユーザーの入力とを使用する。
【００１４】
図１の実施例のコンピュータ１５２は、他のコンピュータ１８２とデータ通信するため、ならびにデータ通信用のネットワーク１０１と通信するための通信アダプタ１６７を含む。このようなデータ通信は、逐次にＲＳ−２３２接続を介し、ＵＳＢ（ユニバーサル・シリアル・バス）のような外部バスを介し、またＩＰデータ通信ネットワークなどのデータ通信ネットワークおよび当業者が想到するような他の方法で逐次に行われてもよい。通信アダプタはハードウエア・レベルのデータ通信を用い、これによって一つのコンピュータが他のコンピュータに直接またはデータ通信ネットワークを介してデータを送る。本発明の実施例によるＮＯＣを備えたデータ処理のために有用な通信アダプタの例は、有線のダイアルアップ通信用のモデム、有線のデータ通信ネットワークの通信用のＥｔｈｅｒｎｅｔ（ＩＥＥＥ８０２．３）アダプタ、および無線のデータ通信ネットワークの通信用の８０２．１１アダプタを含む。
【００１５】
更に説明をすると、図２は本発明の実施例によるネットワークオンチップ（ＮＯＣ）１０２の機能的なブロック図を開示する。図１の実施例のＮＯＣはチップ１００すなわち集積回路上に実装される。図２のネットワークオンチップ（ＮＯＣ）１０２は集積（インテグレーテッド）プロセッサ（ＩＰ）ブロック１０４，ルーター１１０，メモリ通信コントローラ１０６およびネットワーク・インターフェイス・コントローラ１０８を含む。各ＩＰブロック１０４はメモリ通信コントローラ１０６およびネットワーク・インターフェイス・コントローラ１０８を介してルーター１１０につながれる。各メモリ通信コントローラ１０６はＩＰブロック１０４とメモリとの間の通信を制御し、また各ネットワーク・インターフェイス・コントローラ１０８はルーター１１０を介してＩＰブロック間通信を制御する。
【００１６】
図２のＮＯＣ１０２では、各ＩＰブロック１０４がそのＮＯＣ１０２内でのデータ処理のため構築ブロックとして使用される同期もしくは非同期の論理設計の再使用可能なユニットを表す。「ＩＰブロック」という用語は、ときに「知的財産ブロック」として拡張され、或る会社が所有する設計すなわち或る会社の知的財産としてのＩＰブロック１０４、あるいは半導体回路の他のユーザーもしくは設計者にライセンスされるべき設計のＩＰブロック１０４を効果的に指定する。しかし本発明の範囲では、ＩＰブロック１０４が何らかの特定の所有権の対象である必要はなく、従ってその用語は常に「集積プロセッサ・ブロック」として本明細書では拡張される。ここで特定されるＩＰブロック１０４は、論理、セル、もしくはチップ・レイアウト設計の再使用可能なユニットであり、知的所有権の対象であってもなくてもよい。ＩＰブロック１０４はＡＳＩＣチップ設計もしくはＦＰＧＡ論理設計として形成されることができる論理コアである。
【００１７】
ＩＰブロック１０４を類推で記述する一つの方法は、ＩＰブロック１０４がＮＯＣ設計のためにコンピュータ・プログラミングにとってライブラリが何であるか、あるいは。個別の集積回路コンポーネントがプリント回路基盤の設計用であるかということである。本発明の実施例によるＮＯＣ１０２では、ＩＰブロック１０４が、汎用のゲートのネットリスト（generic gate netlists）として、完全な特定目的のもしくは汎用目的のマイクロプロセッサとして、あるいは当業者が想到するような他の方法で実施されてもよい。ネットリストは、高レベルのプログラム・アプリケーションのためのアセンブリ・コード・リスティングに似た、ＩＰブロック１０４の論理機能のブール代数表記（ゲート、標準セル）である。ＮＯＣ１０２はまたＶｅｒｉｌｏｇもしくはＶＨＤＬのようなハードウエア記述言語に記述される、たとえば同期可能な形式で実装されてもよい。ネットリストおよび同期可能な実装に加えて、ＮＯＣはまた低レベルの物理的な記述で配布され得る。ＳＥＲＤＥＳ、ＰＬＬ、ＤＡＣ、ＡＤＣなどのアナログのＩＰブロック・エレメントは、ＧＤＳＩＩのようなトランジスタ・レイアウト・フォーマットで配布されてもよい。ＩＰブロック１０４のディジタル・エレメントは、レイアウト・フォーマットでもときには提供される。
【００１８】
図２の実施例における各ＩＰブロック１０４はメモリ通信コントローラ１０６を介してルーター１１０につながれる。各メモリ通信コントローラ１０６はＩＰブロックおよびメモリ間のデータ通信を提供するようつながれる同期もしくは非同期の論理回路の集合である。ＩＰブロック１０４およびメモリ間のそのような通信の例は、メモリ・ロード命令およびメモリ・ストア命令を含む。メモリ通信コントローラ１０６を、図３に関連して詳細に説明する。
【００１９】
図２の実施例において各ＩＰブロック１０４はまたネットワーク・インターフェイス・コントローラ１０８を介してルーター１１０につながれる。各ネットワーク・インターフェイス・コントローラ１０８はＩＰブロック１０４相互間のルーター１１０を介しての通信を制御する。ＩＰブロック１０４相互間の通信の例は、並列のアプリケーションにおいてまたパイプライン化されたアプリケーションにおいてＩＰブロック１０４相互間でデータを処理するために、データおよび命令を担持するメッセージを含む。ネットワーク・インターフェイス・コントローラ１０８を、図３に関連して以下で詳細に説明する。
【００２０】
図２の実施例における各ＩＰブロック１０４はルーター１１０につながれる。ルーター１１０およびルーター１１０相互間のリンク１２０がＮＯＣ１０２のネットワーク動作を行う。リンク１２０は、全てのルーター１１０を接続する物理的な並列のワイヤのバス上で実施されるパケット構造である。すなわち各リンク１２０は全てのヘッダー情報およびペイロード・データを含むデータ・スイッチング・パケット全体を同時に収容するに足るだけの幅のワイヤ・バス上で実施される。もしパケット構造がたとえば８バイトのヘッダーおよび５６バイトのペイロード・データを含む６４バイトを含むなら、各リンクを定めるワイヤ・バスは６４バイト幅で５１２本のワイヤである。更に、各リンク１２０は双方向であり、したがってもしリンクのパケット構造が６４バイトなら、ワイヤ・バスはネットワーク中の各ルーターとその各々の隣のものとの間に１０２４本のワイヤを含む。メッセージは１よりも多くのパケットを含むが、各パケットはワイヤ・バスの幅上に正確に適合する。もしルーターとワイヤ・バスの各セクションとの間の接続をポートと呼ぶなら、各ルーターは５個のポート、すなわちネットワーク上のデータ伝送の４つの方向の各々に１個、そしてメモリ通信コントローラ１０６およびネットワーク・インターフェイス・コントローラ１０８を介して特定のＩＰブロック１０４にルーター１１０をつなぐための第５のポートを含む。
【００２１】
図２の実施例における各メモリ通信コントローラ１０６はＩＰブロック１０４およびメモリ間の通信を制御する。メモリは、オフチップのメインＲＡＭ（オフチップ・メモリ）１１２、メモリ通信コントローラ１０６を介してＩＰブロック１０４に直接接続されたメモリ１１５、ＩＰブロック１０４としてイネーブルされるオンチップ・メモリ、およびオンチップ・キャッシュを含むことができる。図２のＮＯＣ１０２では、オンチップ・メモリ１１４、１１５のいずれかが、たとえばオンチップ・キャッシュ・メモリとして実装されてもよい。これらの全ての形式のメモリは同じアドレス空間、物理的アドレスもしくは仮想アドレスに配設されることができる。これはＩＰブロック１０４に直接に取付けられたメモリの場合でもそうである。メモリにアドレスされるメッセージは従ってＩＰブロックに対して完全に両方向であり得る。何故ならばそのようなメモリはネットワーク上のどこかにあるいずれかのＩＰブロックから直接アドレスされることができる。ＩＰブロック１０４上のメモリ１１４はそのＩＰブロック１０４からもしくはそのＮＯＣにおける他のいずれかのＩＰブロック１０４からアドレスされることができる。或るメモリ通信コントローラ１０６に直接取付けられるメモリ１１５はそのメモリ通信コントローラ１０６によりそのネットワークにつながれるそのＩＰブロック１０４によってアドレスされることができ、そしてまたそのＮＯＣ中のどこかにある他のいずれかのＩＰブロック１０４からアドレスされることもできる。
【００２２】
実施例のＮＯＣ１０２は、本発明の実施例による（複数の）ＮＯＣのための２個の選択可能なメモリ・アーキテクチャを示している２個のメモリ管理ユニット（ＭＭＵ）１０７、１０９を含む。ＭＭＵ１０７は或るＩＰブロック１０４とともに実装されそのＩＰブロック１０４内のプロセッサが仮想メモリにおいて動作するのを許容しながら、一方でそのＮＯＣ１０２の残りのアーキテクチャ全体が物理的なメモリ・アドレス空間で動作するのを許容する。ＭＭＵ１０９はオフチップに実装され、データ通信用のポート１１６を介してそのＮＯＣ１０２に接続される。そのポート１１６はそのＮＯＣ１０２とそのＭＭＵ１０７との間で信号を導通させるのに必要なピンおよび他の相互接続手段、ならびにそのＮＯＣ１０２のパケット・フォーマットからのメッセージ・パケットを、外部のＭＭＵ１０９により必要とされるバス・フォーマットに変換するのに足る機能を含む。そのＭＭＵ１０９の外部に位置するということは、そのＮＯＣ１０２の全てのＩＰブロック１０４における全てのプロセッサが仮想のメモリ・アドレス空間で動作することができ、そのオフチップのＭＭＵ１０９により処理されるオフチップのメモリ１１２の物理アドレスへ全て変換できることを意味する。
【００２３】
ＭＭＵ１０７、１０９を使用することにより示される２個のメモリ・アーキテクチャに加えて、データ通信用のポート１１８は本発明の実施例によるＮＯＣ１０２で有用な第３のメモリ・アーキテクチャを示す。ポート１１８はＮＯＣ１０２のＩＰブロック１０４とオフチップのメモリ１１２との間の直接接続を提供する。この処理経路にＭＭＵがないので、このアーキテクチャはそのＮＯＣ１０２の全てのＩＰブロック１０４による物理的なアドレス空間を利用する。そのアドレス空間を双方向的に共有する際、そのＮＯＣ１０２の全てのＩＰブロック１０４は、ロードおよびストアされたものを含み、ポート１１８により直接接続されたＩＰブロックを介して差向けられるメモリ・アドレスされたメッセージによりそのメモリ空間でメモリをアクセスすることができる。このポート１１８はそのＮＯＣ１０２とオフチップのメモリ１１２との間の信号を導通させるのに必要なピンおよび相互接続を含むとともに、そのＮＯＣ１０２のパケット・フォーマットからのメッセージ・パケットを、オフチップのメモリ１１２により必要とされるバス・フォーマットに変換するのに足る機能を含む。
【００２４】
図２の実施例では、ＩＰブロック１０４の一つがホスト・インターフェイス・プロセッサ１０５と名づけられる。ホスト・インターフェイス・プロセッサ１０５はＮＯＣ１０２とホスト・コンピュータ１５２との間のインターフェイスを提供する。そのホスト・コンピュータ１５２にもＮＯＣを設けてそのＮＯＣ上の他のＩＰブロックにデータ処理サービスを提供してもよい。そのデータ処理サービスはそのＮＯＣのＩＰブロック相互間でホスト・コンピュータ１５２からのデータ処理リクエストを受取り、ディスパッチすることも含む。ＮＯＣ１０２は、図１に関連して前述したとおり、大型のホスト・コンピュータ１５２上にＮＯＣビデオ・アダプタ２０９もしくはＮＯＣコプロセッサ１５７を導入してもよい。図２の実施例では、ホスト・インターフェイス・プロセッサ１０５がデータ通信用のポート２１５を介して大型のホスト・コンピュータ１５２に接続される。ポート２１５はＮＯＣ１０２とホスト・コンピュータ１５２との間の信号を導通させるのに必要なピンおよび他の相互接続手段を含むとともに、ＮＯＣ１０２からのメッセージ・パケットを、ホスト・コンピュータ１５２により必要とされるバス・フォーマットに変換するのに足る機能を含む。実施例のコンピュータ１５２におけるＮＯＣコプロセッサ１５７の実施例では、そのようなポートはＮＯＣコプロセッサ１５７のリンク構造と、ＮＯＣコプロセッサ１５７およびバス・アダプタ１５８間のフロント・サイド・バス１６３のために必要なプロトコルとの間で、データ通信フォーマット変換を提供する。
【００２５】
更に説明すると、図３は本発明の実施例による別のＮＯＣの機能的なブロック図を開示する。図３の実施例のＮＯＣは図２の実施例のＮＯＣと、図３の実施例のＮＯＣがチップ（図２の１００）上に実装され、かつ図３のＮＯＣ１０２がＩＰブロック１０４、ルーター１１０、メモリ通信コントローラ１０６およびネットワーク・インターフェイス・コントローラ１０８を含む点で似ている。各ＩＰブロック１０４はメモリ通信コントローラ１０６およびネットワーク・インターフェイス・コントローラ１０８を介してルーター１１０につながれる。各メモリ通信コントローラ１０６はＩＰブロック１０４とメモリとの間の通信を制御し、また各ネットワーク・インターフェイス・コントローラ１０８はルーター１１０を介してＩＰブロック間通信を制御する。図３の実施例では、メモリ通信コントローラ１０６およびネットワーク・インターフェイス・コントローラ１０８を介してルーター１１０につながれるＩＰブロック１０４の１セット１２２が、それらの構造および動作の詳細な説明を助けるように拡張される。図３の実施例におけるＩＰブロック１０４，メモリ通信コントローラ１０６、ネットワーク・インターフェイス・コントローラ１０８およびルーター１１０は全てその拡張されたセット１２２と同じ態様で構成される。
【００２６】
図３の実施例では、各ＩＰブロック１０４がコンピュータ・プロセッサ１２６およびＩ／Ｏ機能１２４を含む。この例では、コンピュータ・メモリが、各ＩＰブロック１０４中のランダム・アクセス・メモリ（ＲＡＭ）１２８のセグメントによって代表される。図２の実施例に関連して前述したようなこのメモリは、各ＩＰブロック１０４上のコンテンツがそのＮＯＣ中の任意のＩＰブロックからアドレスされアクセスされる物理的なアドレス空間のセグメントを占めることができる。各ＩＰブロック１０４上のプロセッサ１２６、Ｉ／Ｏ機能１２４およびメモリ１２８はそのＩＰブロックを汎用のプログラマブル・マイクロコンピュータとして効果的に実装できる。しかし前述のとおり、本発明の範囲には、ＮＯＣ内でのデータ処理のためのブロックを構築する際使用される同期もしくは非同期の再使用可能なユニットの機能をＩＰブロックが果たすことも含む。従って、汎用のプログラマブル・マイクロコンピュータとしてＩＰブロックを実装するというのは、説明目的で有用な共通の実施例ではあるが、本発明を限定しない。
【００２７】
図３のＮＯＣ１０２では、各メモリ通信コントローラ１０６が複数個のメモリ通信実行エンジン１４０を含む。各メモリ通信実行エンジン１４０はＩＰブロック１０４からのメモリ通信命令を実行し、そのネットワークとＩＰブロック１０４との間の双方向のメモリ通信命令の流れ１４２，１４４，１４５を実現する。このメモリ通信コントローラ１０６により実行されるメモリ通信命令は、ＩＰブロック１０４から特定のメモリ通信コントローラ１０６を介してルーター１１０につながれたＩＰブロック１０４からだけでなくＮＯＣ１０２内のどこかのいずれかのＩＰブロック１０４から引き起こされるかもしれない。すなわち、そのＮＯＣ中の任意のＩＰブロックがメモリ通信命令を発生し、そのＮＯＣのルーターを介してメモリ通信命令を、それを実行するため他のＩＰブロックに関連付けられている他のメモリ通信コントローラに伝送することができる。そのようなメモリ通信命令は、たとえば変換ルックアサイド・バッファ制御命令、キャッシュ制御命令、バリア命令およびメモリ・ロード命令、メモリ・ストア命令を含むことができる。
【００２８】
各メモリ通信実行エンジン１４０は或る完全なメモリ通信メモリ命令を他のメモリ通信実行エンジンと並行してかつ別個に実行する。メモリ通信実行エンジン１４０は、メモリ通信命令の同時進行のスループットのために最適化されたスケーラブル・メモリ・トランザクション・プロセッサを実装する。メモリ通信コントローラ１０６は、複数個のメモリ通信実行エンジン１４０をサポートするが、その全ては複数個のメモリ通信命令の同時実行のため同時に稼動する。新しいメモリ通信命令がメモリ通信コントローラ１０６によってメモリ通信実行エンジン１４０に割当てられ、そのメモリ通信実行エンジン１４０は複数個の応答イベントを同時に受取ることができる。この実施例では、全てのメモリ通信実行エンジン１４０は同一である。従ってメモリ通信コントローラ１０６によって同時に処理され得るメモリ通信命令の数のスケーリングは、メモリ通信実行エンジン１４０の数をスケーリングすることによって実装される。
【００２９】
図３のＮＯＣ１０２において、各ネットワーク・インターフェイス・コントローラ１０８は、ルーター１１０を介してのＩＰブロック１０４相互間の伝送のために命令フォーマットからの通信命令をネットワーク・パケット・フォーマットへ変換する。その通信命令はＩＰブロック１０４によってもしくはメモリ通信コントローラ１０６によってコマンド・フォーマットに変換され、コマンド・フォーマットでネットワーク・インターフェイス・コントローラ１０８に与えられる。このコマンド・フォーマットは、ＩＰブロック１０４およびメモリ通信コントローラ１０６のアーキテクチャの登録ファイルに合わせるようなネイティブ・フォーマットである。このネットワーク・パケット・フォーマットは、そのネットワークのルーター１１０を介して伝送するために必要なフォーマットである。１個もしくはそれ以上のネットワーク・パケットから各メッセージが成立つ。コマンド・フォーマットからネットワーク・インターフェイス・コントローラ１０８におけるパケット・フォーマットに変換されるそのような通信命令の例は、ＩＰブロック１０４およびメモリ間のメモリ・ロード命令およびメモリ・ストア命令を含む。そのような通信命令は、並列アプリケーションおよびパイプライン化アプリケーションにおけるＩＰブロック相互間のデータを処理するためのデータおよび命令を担持するＩＰブロック相互間でメッセージを送る通信命令を含んでもよい。
【００３０】
図３のＮＯＣ１０２では、各ＩＰブロック１０４がメモリ・アドレス・ベースの通信をＩＰブロックのメモリ通信コントローラ１０６を介してメモリとそしてまたそのネットワーク・インターフェイス・コントローラ１０８を介してネットワークともやり取りする。メモリ・アドレス・ベースの通信は、ＩＰブロックのメモリ通信コントローラ１０６のメモリ通信実行エンジン１４０によって実行される、ロード命令もしくはストア命令などのメモリ・アクセス命令である。そのようなメモリ・アドレス・ベースの通信は、典型的にはＩＰブロック１０４において引起され、コマンド・フォーマットで記述され、そしてメモリ通信コントローラ１０６に実行のために引き渡される。
【００３１】
多くのメモリ・アドレス・ベースの通信は、メッセージ・トラフィックでもって実行される。何故ならアクセスされるべき任意のメモリが、オンチップの、またはそのＮＯＣにおけるいずれかのメモリ通信コントローラ１０６に直接取付けられ得るオフチップの、あるいはそのＮＯＣのいずれかのＩＰブロックを介して究極的にアクセスされ得る、物理的なメモリ・アドレス空間のどこかの箇所に置かれることができるからである。その際、どのＩＰブロックが特定のメモリ・アドレス・ベースの通信を引起こすかは関係ない。メッセージ・トラフィックでもって実行される全てのメモリ・アドレス・ベースの通信は、メモリ通信コントローラ１０６からその関連付けられているネットワーク・インターフェイス・コントローラ１０８にパスされ、そこでコマンド・フォーマットからパケット・フォーマットに変換（命令変換論理１３６）し、ネットワークを介してメッセージで伝送する。パケット・フォーマットに変換する際、ネットワーク・インターフェイス・コントローラ１０８はまたメモリ・アドレス・ベースの通信によりアクセスされる１個もしくは複数個のメモリ・アドレスに依存してそのパケットのためのネットワーク・アドレスを識別する。メモリ・アドレス・ベースのメッセージはメモリ・アドレスでアドレスされる。各メモリ・アドレスは、ネットワーク・インターフェイス・コントローラ１０８によって、メモリ通信コントローラ１０６の、ネットワーク・アドレスの、典型的には、或る程度の範囲の物理的メモリ・アドレスの範囲に亘るネットワークの箇所にマップされる。メモリ通信コントローラ１０６のネットワークの位置は、自ずとそのメモリ通信コントローラ１０６の関連付けられているルーター１１０、ネットワーク・インターフェイス・コントローラ１０８およびＩＰブロック１０４のネットワークの位置でもある。各ネットワーク・インターフェイス・コントローラ１０８内の命令変換論理１３６はＭＯＣのルーター１１０を介してメモリ・アドレス・ベースの通信を伝送するために、メモリ・アドレスをネットワーク・アドレスに変換することができる。
【００３２】
ネットワークのルーター１１０からのメッセージ・トラフィックを受取ると、各ネットワーク・インターフェイス・コントローラ１０８はメモリ命令の各パケットを検査する。メモリ命令を含む各パケットはその受取っているネットワーク・インターフェイス・コントローラ１０８と関連付けられているメモリ通信コントローラ１０６に渡され、これがそのパケットの残りのペイロードを更なる処理のためのＩＰブロック１０４に送る前にそのメモリ命令を実行する。このようにして、そのＩＰブロック１０４が特定のメモリ・コンテンツに依存するメッセージからの命令を実行する前に、メモリ・コンテンツがＩＰブロック１０４によるデータ処理をサポートするために常に準備される。
【００３３】
図２のＮＯＣ１０２では、各ＩＰブロック１０４がそのメモリ通信コントローラ１０６をバイパスするように、そしてそのＩＰブロック１０４のネットワーク・インターフェイス・コントローラ１０８を介してネットワークに直接、ＩＰブロック間のネットワーク・アドレスの通信１４６を送る。ネットワーク・アドレスの通信１４６は、ネットワーク・アドレスによって他のＩＰブロックに差向けられるメッセージである。このようなメッセージは、パイプライン化されたアプリケーション中の作業データ、ＳＩＭＤアプリケーションにおけるＩＰブロック間での単一のプログラム処理のための複数のデータなど、当業者の想到するようなものを伝送する。そのようなメッセージは、メモリ・アドレス・ベースの通信とは以下のような点で区別される。それらは、そのＮＯＣのルーターを介してメッセージが差向けられる先のネットワーク・アドレスを知る発生元のＩＰブロック１０４によって、そのスタートからアドレスされるネットワークである点で区別される。そのようなネットワーク・アドレスの通信は、ＩＰブロック１０４によってそこを通り抜けるようにパスされ、Ｉ／Ｏ機能１２４から直接にＩＰブロック１０４のネットワーク・インターフェイス・コントローラ１０８に、コマンド・フォーマットで送られ、それからＩＰブロックのネットワーク・インターフェイス・コントローラ１０８によりパケット・フォーマットに変換され、他のＩＰブロックのルーターを介して伝送される。そのようなネットワーク・アドレスの通信１４６は双方向であり、何か特定のアプリケーションでのそれらの使用に依存してそのＮＯＣの各ＩＰブロックにもしくはそこから進み得る。しかし各ネットワーク・インターフェイス・コントローラ１０８は、関連付けられているルーター１１０とのそのような通信を（メモリ通信命令１４２で）送受し、そして各ネットワーク・インターフェイス・コントローラ１０８は、関連付けられているＩＰブロック１０４とのそのような通信を（ネットワーク・アドレス通信１４６で）直接に送受する。この直接に送受する際は、関連付けられているメモリ通信コントローラ１０６をバイパスする。
【００３４】
図３の実施例における各ネットワーク・インターフェイス・コントローラ１０８はまたそのネットワーク上に仮想チャネルを実装し、ネットワーク・パケットをタイプによって特徴付ける。各ネットワーク・インターフェイス・コントローラ１０８は、各通信命令をタイプによって分類する仮想チャネル実装論理１３８を含み、そのネットワーク・パケット・フォーマットのフィールドにその命令のタイプを記録する。その記録後、パケット形式の命令はＮＯＣ上で伝送するためルーター１１０に渡される。通信命令のタイプの例は、ＩＰブロック間ネットワーク・アドレス・ベースのメッセージ、リクエスト・メッセージ、リクエスト・メッセージへの応答、キャッシュに差向けられる無効メッセージ、メモリ・ロード・メッセージ、メモリ・ストア・メッセージ、メモリ・ロード・メッセージへの応答などを含む。
【００３５】
図３の実施例の各ルーター１１０は、ルーティング論理１３０、仮想チャネル制御論理１３２および仮想チャネル・バッファ１３４を含む。ルーティング論理１３０は、ルーター１１０、リンク１２０、およびルーター１１０相互間のバス・ワイヤにより形成されるネットワーク中のデータ通信のためのデータ通信プロトコル・スタックを実装する同期もしくは非同期の論理のネットワークとして実装される。ルーティング論理１３０は、当業者ならルーティング・テーブルとオフチップのネットワークで関連付けることのできる機能を含む。少なくとも幾つかの実施例におけるルーティング・テーブルはＮＯＣで使用するにはあまりにも遅く扱いにくいと考えられている。同期および非同期の論理のネットワークとして実装されるルーティング論理１３０は、単一のクロック・サイクルと同程度の速さのルーティング決定を行うように構成されることができる。この実施例のルーティング論理は、ルーター１１０で受取る各パケットを進めるためのポートを選択することによりパケットをルート付けする。各パケットはルート先のネットワーク・アドレスを含む。この実施例における各ルーター１１０は、５個のポート１２１、１２３を含み、そのうち４個のポート１２１はバス・ワイヤ１２０−Ａ、１２０−Ｂ、１２０−Ｃ、１２０−Ｄを介して他のルーターに結合され、第５のポート１２３は各ルーター１１０をネットワーク・インターフェイス・コントローラ１０８およびメモリ通信コントローラ１０６を介してその関連付けられているＩＰブロック１０４に結合している。
【００３６】
前述のメモリ・アドレス・ベースの通信を説明する際、各メモリ・アドレスは、ネットワーク・インターフェイス・コントローラ１０８によりネットワーク・アドレス、すなわちメモリ通信コントローラ１０６のネットワーク位置にマップされると説明した。メモリ通信コントローラ１０６のネットワーク位置は、メモリ通信コントローラ１０６の、関連付けられたルーター１１０、ネットワーク・インターフェイス・コントローラ１０８およびＩＰブロック１０４のネットワーク位置である。ＩＰブロック間もしくはネットワーク・アドレス・ベースの通信において、アプリケーション・レベルのデータ処理にとってはルーター１０４、リンク１２０、ＮＯＣのバス・ワイヤにより形成されるネットワーク内のＩＰブロック１０４の位置としてネットワーク・アドレスを見るのも一般的である。図２は、そのようなネットワークの一組織が行列からなるメッシュであり、そこでは各ネットワーク・アドレスが、たとえばそのメッシュの関連付けられたルーター１１０、ＩＰブロック１０４、メモリ通信コントローラ１０６およびネットワーク・インターフェイス・コントローラ１０８のセット毎の特有の識別子として、またはそのメッシュにおけるそのような各セットのｘおよびｙ座標として実装されることができる。
【００３７】
図３のＮＯＣ１０２では、各ルーター１１０が２個もしくはそれ以上の仮想通信チャネルを実装する。そこでは各仮想通信チャネルが通信のタイプによって特徴付けられる。通信命令のタイプ、従って仮想チャネル・タイプは前述したものを含む。すなわちＩＰブロック間ネットワーク・アドレス・ベース・メッセージ、リクエスト・メッセージ、リクエスト・メッセージに対する応答、キャッシュに差し向けられる無効化メッセージや、メモリ・ロード・メッセージ、メモリ・ストア・メッセージや、メモリ・ロード・メッセージへの応答などを含む。仮想チャネルをサポートするに際し、図３の実施例における各ルーターは、仮想チャネル制御論理１３２および仮想チャネル・バッファ１３４をも含む。仮想チャネル制御論理１３２はその割当てられた通信タイプごとに受取ったパケットを調べ、そのＮＯＣ上の隣接するルーターにポートを介して、伝送用の通信タイプのため、出入りする仮想チャネル・バッファ中に各々のパケットを置く。
【００３８】
仮想チャネル・バッファ１３４は各々、有限のストレージ空間を有する。短期間に多くのパケットを受取ると、仮想チャネル・バッファが一杯になることがある。そうなるとバッファにはそれ以上のパケットを置くことができない。他のプロトコルでは、バッファが一杯の仮想チャネルに到来するパケットは落とされることになろう。しかしこの実施例の各仮想チャネル・バッファ１３４ は、仮想チャネルにおける伝送を中断すなわち特定の通信タイプのパケットの伝送を中断するために仮想チャネル制御論理１３２を介して周囲のルーターにアドバイスするようバス・ワイヤの制御信号で以ってイネーブル（能動化）される。一つの仮想チャネルがそのように中断されると、他の全てのチャネルが影響を受けなくなり、その全能力で動作し続けることができる。この制御信号は各ルーターの関連付けられたネットワーク・インターフェイス・コントローラ１０８に各ルーターを介してはるばると戻される。各ネットワーク・インターフェイス・コントローラ１０８は、このような信号を受取ると、その関連付けられたメモリ通信コントローラ１０６からまたはその関連付けられたＩＰブロック１０４から、その中断された仮想チャネルのための通信命令を受取るのを拒否するように構成される。このようにして、仮想チャネルの中断がその仮想チャネルを実装する全てのハードウエアに影響を及ぼし、その起源となっているＩＰブロック１０４までずっと戻される。
【００３９】
仮想チャネルでパケットの転送を中断する一つの効果は図３のアーキテクチャでパケットが決して落ちないことである。インターネット・プロトコルのようなある種の信頼性のないプロトコルでパケットが落ちかねない状況にルーターが遭遇すると、図３の実施例におけるルーター１１０は仮想チャネル・バッファ１３４および仮想チャネル制御論理１３２により仮想チャネル中のパケットの全ての転送を中断する。それはバッファ空間が再び利用できるようになりパケットを落とす必要がなくなるまで中断する。このように、図３のＮＯＣ１０２は、ハードウエアの非常に薄い層とともに非常に信頼性の高いネットワーク通信プロトコルを実装する。
【００４０】
更に説明すると、図４は、本発明の実施例によるＮＯＣを備えた例示のデータ処理方法のフローチャートを開示する。図４の方法は、図３のＩＰブロック１０４、ルーター１１０、メモリ通信コントローラ１０６およびネットワーク・インターフェイス・コントローラ１０８とともに図３のチップ１００上に図３のＮＯＣ１０２が実装されているような、この明細書で前述したＮＯＣ或いはその等価物で実行される。図３の各ＩＰブロック１０４はルーター１１０にメモリ通信コントローラ１０６およびネットワーク・インターフェイス・コントローラ１０８を介してつながっている。図４の方法では、各ＩＰブロックが、ＮＯＣ内のデータ処理のための組立てブロックとして使用される同期もしくは非同期の論理設計の再使用可能なユニットとして実装されることができる。
【００４１】
図４の方法は、ＩＰブロックおよびメモリの間のメモリ通信コントローラ１０６（図３）によって制御するステップ４０２を含む。図４の方法では、メモリ通信コントローラ１０６（図３）が複数個のメモリ通信実行エンジン１４０（図３）を含む。また図４の方法では、ＩＰブロック１０４およびメモリの間の通信を制御するステップ４０２は、各メモリ通信実行エンジン１４０によって他のメモリ通信実行エンジンとは別個にかつ並行して一つの完全なメモリ通信命令を実行するステップ４０４と、そのネットワークおよびＩＰブロック１０４の間のメモリ通信命令の双方向の流れを実行するステップ４０６とによって行われる。図４の方法では、メモリ通信命令が、変換ルックアサイド・バッファの制御命令、キャッシュ制御命令、バリア命令、メモリ・ロード命令およびメモリ・ストア命令を含むことができる。図４の方法では、メモリが、オフチップ・メインＲＡＭ、ＩＰブロックにメモリ通信コントローラ１０６を介して直接結合されたメモリＩＰブロック、ＩＰブロックのオンチップ・メモリおよびオンチップ・キャッシュを含む。
【００４２】
図４の方法は、また図３のネットワーク・インターフェイス・コントローラ１０８によって、ルーターを介してのＩＰブロック間通信を制御するステップ４０８を含む。図４の方法において、ＩＰブロック間通信を制御するステップ４０８はまた、各ネットワーク・インターフェイス・コントローラ１０８によって、コマンド・フォーマットからの通信命令をネットワーク・パケット・フォーマットに変換するステップ４１０と、各ネットワーク・インターフェイス・コントローラ１０８によって、そのネットワーク上に、ネットワーク・パケットをタイプにより特徴付つつ、仮想チャネルを導入するステップ４１２とを含む。
【００４３】
図４の方法はまた、各々通信タイプによって特徴付けられる２個もしくはそれ以上の仮想通信チャネルを介し各ルーター１１０（図３）によってメッセージを伝送するステップ４１４を含む。通信命令タイプ、従って仮想チャネル・タイプは、たとえばＩＰブロック間ネットワーク・アドレス・ベース・メッセージ、リクエスト・メッセージ、リクエスト・メッセージへの応答、キャッシュに差し向けられる無効化メッセージや、メモリ・ロード・メッセージ、メモリ・ストア・メッセージや、メモリ・ロード・メッセージへの応答などを含む。仮想チャネルをサポートする際、各ルーター１１０はまた仮想チャネル制御論理１３２（図３）および仮想チャネル・バッファ１３４（図３）を含む。この仮想チャネル制御論理１３２は、その割当てられた通信タイプごとに受取ったパケットを調べ、そのＮＯＣ上の隣接するルーターにポートを介して、伝送用の通信タイプのため、出入りする仮想チャネル・バッファ中に各々のパケットを置く。
【００４４】
本発明の実施例はＮＯＣを備えたデータ処理のための完全な機能のコンピュータ・システムとして記述されている。しかし本発明が任意の適当なデータ処理システムとともに使用される信号担持媒体上に配設されたコンピュータ・プログラム製品で 具体化されてもよいことを当業者は理解できよう。このような信号担持媒体はマシン読取り可能な情報のための伝送媒体もしくは記録可能媒体、磁気媒体、光媒体もしくは他の適当な媒体であってもよい。記録可能媒体の例は、ハード・ドライブにおける磁気ディスクもしくはディスケット（フロッピー・ディスク）、光ドライブのためのコンパクト・ディスク、磁気テープ、その他当業者の想到するものなどを含む。伝送媒体の例は、音声通信のための電話網（ネットワーク）およびＥｔｈｅｒｎｅｔ（登録商標）などのディジタル・データ通信ネットワーク、インターネット・プロトコルおよびＷＷＷ（ワールド・ワイド・ウエッブ）と通信するネットワーク、ならびにスペックのＩＥＥＥ８０２．１１ファミリに従って導入されるネットワークなどの無線伝送媒体を含む。当業者は直ぐに理解できると思うが、適当なプログラミング手段を有するコンピュータ・システムが、プログラム製品で具体化されるのと本発明の方法の諸ステップを実行することができるであろう。当業者は直ぐに理解できると思うが、この明細書に記述されているいくつかの実施例はソフトウエアがインストールされコンピュータ・ハードウエア上で実行されるものを指向しているものの、ファームウエアもしくはハードウエアとして導入される代替実施例も本発明の範囲内である。
【００４５】
本発明を好適な実施例に従って説明してきたが、本発明の種々の実施例において修正や変更をその真の精神から逸れずに行えることが前述の説明から理解できよう。本発明の記述は説明目的のためだけであり、限定する意味で解釈されてはならない。本発明の範囲は特許請求の範囲によってのみ限定される。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施例によるＮＯＣを有し、データ処理において有用である例示のコンピュータを含む自動化されたコンピューティング・マシンのブロック図である。
【図２】本発明の実施例による実施例のＮＯＣの機能的なブロック図である。
【図３】本発明の実施例による別の実施例のＮＯＣの機能的なブロック図である。
【図４】本発明の実施例によるＮＯＣを備えたデータ処理のための実施例の方法を示すフローチャートである。
【符号の説明】
【００４７】
１００  チップ
１０１  ネットワーク
１０２  ネットワークオンチップ（ＮＯＣ）
１０４  集積プロセッサ（ＩＰ）ブロック
１０５  ホスト・インターフェイス・プロセッサ
１０６  メモリ通信コントローラ
１０７、  １０９  メモリ管理ユニット（ＭＭＵ）
１０８  ネットワーク・インターフェイス・コントローラ
１１０  ルーター
１１２  オフチップ・メインＲＡＭ
１１４、１１５  オンチップ・メモリ
１１６  ポート
１２０  リンク
１２０−Ａ、１２０−Ｂ、１２０−Ｃ、１２０−Ｄ  バス・ワイヤ
１２１、１２３  ポート
１２２  （ＩＰブロックの）セット
１２４  Ｉ／Ｏ機能
１２６  プロセッサ
１２８  メモリ
１３０  ルーティング論理
１３２  仮想チャネル制御論理
１３４  仮想チャネル・バッファ
１３６  命令変換論理
１３８  仮想チャネル実装論理
１４０  メモリ通信実行エンジン
１４２、１４４、１４５  メモリ通信命令の流れ
１４６  ネットワーク・アドレス通信
１５２  コンピュータ
１５４  オペレーティング・システム
１５６  コンピュータ・プロセッサ（ＣＰＵ）
１５７  ＮＯＣコプロセッサ
１５８  バス・アダプタ
１６０  拡張バス
１６２、１６３  フロント・サイド・バス
１６４  ビデオ・バス
１６６  メモリ・バス
１６７  通信アダプタ
１６８  ランダム・アクセス・メモリ（ＲＡＭ）
１７０  データ・ストレージ
１７２  ディスク・ドライブ・アダプタ
１７８  Ｉ／Ｏアダプタ
１８０  ディスプレイ装置
１８１  ユーザー入力装置
１８２  他のコンピュータ
１８４  アプリケーション・プログラム
２０９  ＮＯＣビデオ・アダプタ
２１５  ポート
【図１】
0005285375.tif 000002
【図２】
0005285375.tif 000003
【図３】
0005285375.tif 000004
【図４】
0005285375.tif 000005