JP5285375B2 - ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法 - Google Patents

ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法 Download PDF

Info

Publication number
JP5285375B2
JP5285375B2 JP2008252459A JP2008252459A JP5285375B2 JP 5285375 B2 JP5285375 B2 JP 5285375B2 JP 2008252459 A JP2008252459 A JP 2008252459A JP 2008252459 A JP2008252459 A JP 2008252459A JP 5285375 B2 JP5285375 B2 JP 5285375B2
Authority
JP
Japan
Prior art keywords
memory
communication
block
noc
network
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 - Fee Related
Application number
JP2008252459A
Other languages
English (en)
Other versions
JP2009110512A (ja
Inventor
ラッセル・ディーン・フーヴァー
エリック・オリヴァー・メイドリッチ
ロバート・アラン・シェアラー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009110512A publication Critical patent/JP2009110512A/ja
Application granted granted Critical
Publication of JP5285375B2 publication Critical patent/JP5285375B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)

Description

本発明はデータ処理に関し、特にネットワークオンチップ(NOC)によりデータ処理を行う装置および方法に関する。
2つの広範に使用されるデータ処理のパラダイムがある。複数命令、複数データという「MIMD」と、単一命令、複数データという「SIMD」とである。MIMD処理では、コンピュータ・プログラムが、多かれ少なかれ独立に動作し、かつ大量の共有メモリに高速でランダムなアクセスをする必要が夫々ある、1個もしくはそれ以上の実行コードのスレッド(one or more threads of execution )として典型的には特徴付けられる。MIMDは、特定のクラスのプログラムのためにそれに適合するよう最適化され、たとえばワード・プロセッサ、スプレッドシート、データベース・マネジャ、ブラウザなど多くの形式のテレコミュニケーションを含むデータ処理パラダイムである。
SIMDは、多くのプロセッサ上で並行して同時に稼動する単一のプログラムによって特徴付けられ、またそのプログラムの各インスタンスが同じ態様でだがデータの別個のアイテム上で動作するように特徴づけられる。SIMDは特定のクラスのアプリケーションのためにそれに適合するように最適化され、たとえば多くの形式のディジタル信号処理、ベクトル処理などを含むデータ処理パラダイムである。
他のクラスのアプリケーションもあるが、それは多くの現実の世界のシミュレーション・プログラムを含み、そのプログラムに対しては、たとえば純粋なSIMDのもしくは純粋なMIMDのデータ・プロセシングのいづれも最適化されていない。そのクラスのアプリケーションは並列処理の利益を得られるアプリケーションを含み、また共有メモリへの高速のランダムなアクセスを必要とする。そのクラスのプログラムに対し、純粋なMINDシステムは高度の並列性( parallelism )を提供せず、また純粋なSIMDシステムはメイン・メモリ・ストア(主メモリ格納装置)への高速のランダムなアクセスを提供しない。
ネットワークオンチップ(NOC)は、集積プロセッサ(IP)ブロック、ルーター、メモリ通信コントローラおよびネットワーク・インターフェイス・コントローラを含む。各IPブロックはルーターにメモリ通信コントローラおよびネットワーク・インターフェイス・コントローラを介して結合される。但し、各メモリ通信コントローラはIPブロックおよびメモリ間の通信を制御し、各ネットワーク・インターフェイス・コントローラはルーターを介してIPブロック間通信を制御する。
本発明の前述のおよび他の目的、特徴および効果は本発明の実施例についての以下のもっと具体的な説明から明らかになろう。その図面では一般に同様の参照番号は本発明の実施例の同様な部分を示す。
本発明によるNOCを備えたデータ処理のための実施例の装置および方法を図1から始まる添付図面に沿って説明する。図1は、本発明の実施例によるNOCを備えたデータ処理において有用な実施例のコンピュータ152を含む自動化されたコンピューティング・マシンのブロック図を開示する。図1のコンピュータ152は少なくとも1個のコンピュータ・プロセッサすなわちプロセッサ156と、プロセッサ156およびコンピュータ152の他のコンポーネントに高速のメモリ・バス166およびバス・アダプタ158を介して接続されるランダム・アクセス・メモリすなわちRAM168を含む。
RAM168にストア(格納)されるのは、アプリケーション・プログラム184であり、ワード・プロセシング、スプレッドシート、データベース操作、ビデオ・ゲーム、株式市場のシミュレーション、原子量子プロセスのシミュレーションあるいは他のユーザーレベルのアプリケーションなど、特定のデータ処理タスクを実行するユーザーレベルのコンピュータ・プログラム命令のモジュールである。RAM168にはオペレーティング・システム154もストアされる。オペレーティング・システムは本発明の実施例によるNOCとともに有用なデータ処理を行うが、UNIX(登録商標)、Linux(商標)、Microsoft XP(商標)、AIX(商標)、IBMのi5/OS(商標)ほか当業者の想到するような他のものを含む。図1の実施例におけるオペレーティング・システム154およびアプリケーション・プログラム184はRAM168の中に示されているが、そのようなソフトウエアの多くのコンポーネントはディスク・ドライブないしデータ・ストレージ170などのような不揮発性メモリにもストアされる。
実施例のコンピュータ152は本発明の実施例による2個のNOC、すなわちNOCビデオ・アダプタ209およびNOCコプロセッサ157を含む。NOCビデオ・アダプタ209は、ディスプレイ・スクリーンもしくはコンピュータ・モニタなどのディスプレイ装置180へのグラフィック出力のために特別に設計されたI/Oアダプタの一例である。NOCビデオ・アダプタ209は、高速のビデオ・バス164、バス・アダプタ158、およびフロント・サイド・バス162(これも高速のバスである)を介してプロセッサ156に接続される。
実施例のNOCコプロセッサ157は、バス・アダプタ158、および高速バスであるフロント・サイド・バス(162および163)を介してプロセッサ156に接続される。図1のNOCコプロセッサ157は主たるプロセッサ156の命令ないし要請で特定のデータ処理タスクを加速するように最適化される。
図1の実施例のNOCビデオ・アダプタ209およびNOCコプロセッサ157は夫々本発明の実施例によるNOC(図2の102)を含む。NOC102は、図2に関連して後述するように、IP(集積プロセッサ)ブロック104、ルーター110、メモリ通信コントローラ106およびネットワーク・インターフェイス・コントローラ108を含み、各IPブロック104はメモリ通信コントローラ106およびネットワーク・インターフェイス・コントローラ108を介してルーター110につながれ、各メモリ通信コントローラ106はIPブロック104とメモリとの間の通信を制御し、各ネットワーク・インターフェイス・コントローラ108はルーター110を介してIPブロック間通信を制御する。NOCビデオ・アダプタ209およびNOCコプロセッサ157は、並列処理を用いるプログラムのために最適化され、また共有メモリへの高速のランダム・アクセスを必要とする。NOCの構造および動作の詳細は図2ないし図4で行う。
図1のコンピュータ152は拡張バス160およびバス・アダプタ158を介してプロセッサ156に結合されたディスク・ドライブ・アダプタ172とコンピュータ152の他のコンポーネントとを含む。本発明の実施例によるNOCとともにデータ処理をするためにコンピュータで有用なディスク・ドライブ・アダプタは集積ドライブ・エレクトロニクス(IDE)アダプタ、SCSI(小型コンピュータシステム・インターフェイス)アダプタ、当業者の想到するような他のものを含む。不揮発性のコンピュータ・メモリは、また光ディスク・ドライブ、電子的に消去可能なプログラム可能読出し専用メモリ(いわゆるEEPROMもしくはフラッシュ・メモリ)、RAMドライブ、当業者の想到するような他のものを実装してもよい。
図1の実施例のコンピュータ152は1個もしくはそれ以上の入出力(I/O)アダプタ178を含む。I/Oアダプタ178は、コンピュータ・ディスプレイ・スクリーンなどのディスプレイ装置への出力を制御するため、たとえばソフトウエア・ドライバおよびコンピュータ・ハードウエアを介してのユーザー起源の入出力と、キーボードおよびマウスなどユーザー入力装置181からのユーザーの入力とを使用する。
図1の実施例のコンピュータ152は、他のコンピュータ182とデータ通信するため、ならびにデータ通信用のネットワーク101と通信するための通信アダプタ167を含む。このようなデータ通信は、逐次にRS−232接続を介し、USB(ユニバーサル・シリアル・バス)のような外部バスを介し、またIPデータ通信ネットワークなどのデータ通信ネットワークおよび当業者が想到するような他の方法で逐次に行われてもよい。通信アダプタはハードウエア・レベルのデータ通信を用い、これによって一つのコンピュータが他のコンピュータに直接またはデータ通信ネットワークを介してデータを送る。本発明の実施例によるNOCを備えたデータ処理のために有用な通信アダプタの例は、有線のダイアルアップ通信用のモデム、有線のデータ通信ネットワークの通信用のEthernet(IEEE802.3)アダプタ、および無線のデータ通信ネットワークの通信用の802.11アダプタを含む。
更に説明をすると、図2は本発明の実施例によるネットワークオンチップ(NOC)102の機能的なブロック図を開示する。図1の実施例のNOCはチップ100すなわち集積回路上に実装される。図2のネットワークオンチップ(NOC)102は集積(インテグレーテッド)プロセッサ(IP)ブロック104,ルーター110,メモリ通信コントローラ106およびネットワーク・インターフェイス・コントローラ108を含む。各IPブロック104はメモリ通信コントローラ106およびネットワーク・インターフェイス・コントローラ108を介してルーター110につながれる。各メモリ通信コントローラ106はIPブロック104とメモリとの間の通信を制御し、また各ネットワーク・インターフェイス・コントローラ108はルーター110を介してIPブロック間通信を制御する。
図2のNOC102では、各IPブロック104がそのNOC102内でのデータ処理のため構築ブロックとして使用される同期もしくは非同期の論理設計の再使用可能なユニットを表す。「IPブロック」という用語は、ときに「知的財産ブロック」として拡張され、或る会社が所有する設計すなわち或る会社の知的財産としてのIPブロック104、あるいは半導体回路の他のユーザーもしくは設計者にライセンスされるべき設計のIPブロック104を効果的に指定する。しかし本発明の範囲では、IPブロック104が何らかの特定の所有権の対象である必要はなく、従ってその用語は常に「集積プロセッサ・ブロック」として本明細書では拡張される。ここで特定されるIPブロック104は、論理、セル、もしくはチップ・レイアウト設計の再使用可能なユニットであり、知的所有権の対象であってもなくてもよい。IPブロック104はASICチップ設計もしくはFPGA論理設計として形成されることができる論理コアである。
IPブロック104を類推で記述する一つの方法は、IPブロック104がNOC設計のためにコンピュータ・プログラミングにとってライブラリが何であるか、あるいは。個別の集積回路コンポーネントがプリント回路基盤の設計用であるかということである。本発明の実施例によるNOC102では、IPブロック104が、汎用のゲートのネットリスト(generic gate netlists)として、完全な特定目的のもしくは汎用目的のマイクロプロセッサとして、あるいは当業者が想到するような他の方法で実施されてもよい。ネットリストは、高レベルのプログラム・アプリケーションのためのアセンブリ・コード・リスティングに似た、IPブロック104の論理機能のブール代数表記(ゲート、標準セル)である。NOC102はまたVerilogもしくはVHDLのようなハードウエア記述言語に記述される、たとえば同期可能な形式で実装されてもよい。ネットリストおよび同期可能な実装に加えて、NOCはまた低レベルの物理的な記述で配布され得る。SERDES、PLL、DAC、ADCなどのアナログのIPブロック・エレメントは、GDSIIのようなトランジスタ・レイアウト・フォーマットで配布されてもよい。IPブロック104のディジタル・エレメントは、レイアウト・フォーマットでもときには提供される。
図2の実施例における各IPブロック104はメモリ通信コントローラ106を介してルーター110につながれる。各メモリ通信コントローラ106はIPブロックおよびメモリ間のデータ通信を提供するようつながれる同期もしくは非同期の論理回路の集合である。IPブロック104およびメモリ間のそのような通信の例は、メモリ・ロード命令およびメモリ・ストア命令を含む。メモリ通信コントローラ106を、図3に関連して詳細に説明する。
図2の実施例において各IPブロック104はまたネットワーク・インターフェイス・コントローラ108を介してルーター110につながれる。各ネットワーク・インターフェイス・コントローラ108はIPブロック104相互間のルーター110を介しての通信を制御する。IPブロック104相互間の通信の例は、並列のアプリケーションにおいてまたパイプライン化されたアプリケーションにおいてIPブロック104相互間でデータを処理するために、データおよび命令を担持するメッセージを含む。ネットワーク・インターフェイス・コントローラ108を、図3に関連して以下で詳細に説明する。
図2の実施例における各IPブロック104はルーター110につながれる。ルーター110およびルーター110相互間のリンク120がNOC102のネットワーク動作を行う。リンク120は、全てのルーター110を接続する物理的な並列のワイヤのバス上で実施されるパケット構造である。すなわち各リンク120は全てのヘッダー情報およびペイロード・データを含むデータ・スイッチング・パケット全体を同時に収容するに足るだけの幅のワイヤ・バス上で実施される。もしパケット構造がたとえば8バイトのヘッダーおよび56バイトのペイロード・データを含む64バイトを含むなら、各リンクを定めるワイヤ・バスは64バイト幅で512本のワイヤである。更に、各リンク120は双方向であり、したがってもしリンクのパケット構造が64バイトなら、ワイヤ・バスはネットワーク中の各ルーターとその各々の隣のものとの間に1024本のワイヤを含む。メッセージは1よりも多くのパケットを含むが、各パケットはワイヤ・バスの幅上に正確に適合する。もしルーターとワイヤ・バスの各セクションとの間の接続をポートと呼ぶなら、各ルーターは5個のポート、すなわちネットワーク上のデータ伝送の4つの方向の各々に1個、そしてメモリ通信コントローラ106およびネットワーク・インターフェイス・コントローラ108を介して特定のIPブロック104にルーター110をつなぐための第5のポートを含む。
図2の実施例における各メモリ通信コントローラ106はIPブロック104およびメモリ間の通信を制御する。メモリは、オフチップのメインRAM(オフチップ・メモリ)112、メモリ通信コントローラ106を介してIPブロック104に直接接続されたメモリ115、IPブロック104としてイネーブルされるオンチップ・メモリ、およびオンチップ・キャッシュを含むことができる。図2のNOC102では、オンチップ・メモリ114、115のいずれかが、たとえばオンチップ・キャッシュ・メモリとして実装されてもよい。これらの全ての形式のメモリは同じアドレス空間、物理的アドレスもしくは仮想アドレスに配設されることができる。これはIPブロック104に直接に取付けられたメモリの場合でもそうである。メモリにアドレスされるメッセージは従ってIPブロックに対して完全に両方向であり得る。何故ならばそのようなメモリはネットワーク上のどこかにあるいずれかのIPブロックから直接アドレスされることができる。IPブロック104上のメモリ114はそのIPブロック104からもしくはそのNOCにおける他のいずれかのIPブロック104からアドレスされることができる。或るメモリ通信コントローラ106に直接取付けられるメモリ115はそのメモリ通信コントローラ106によりそのネットワークにつながれるそのIPブロック104によってアドレスされることができ、そしてまたそのNOC中のどこかにある他のいずれかのIPブロック104からアドレスされることもできる。
実施例のNOC102は、本発明の実施例による(複数の)NOCのための2個の選択可能なメモリ・アーキテクチャを示している2個のメモリ管理ユニット(MMU)107、109を含む。MMU107は或るIPブロック104とともに実装されそのIPブロック104内のプロセッサが仮想メモリにおいて動作するのを許容しながら、一方でそのNOC102の残りのアーキテクチャ全体が物理的なメモリ・アドレス空間で動作するのを許容する。MMU109はオフチップに実装され、データ通信用のポート116を介してそのNOC102に接続される。そのポート116はそのNOC102とそのMMU107との間で信号を導通させるのに必要なピンおよび他の相互接続手段、ならびにそのNOC102のパケット・フォーマットからのメッセージ・パケットを、外部のMMU109により必要とされるバス・フォーマットに変換するのに足る機能を含む。そのMMU109の外部に位置するということは、そのNOC102の全てのIPブロック104における全てのプロセッサが仮想のメモリ・アドレス空間で動作することができ、そのオフチップのMMU109により処理されるオフチップのメモリ112の物理アドレスへ全て変換できることを意味する。
MMU107、109を使用することにより示される2個のメモリ・アーキテクチャに加えて、データ通信用のポート118は本発明の実施例によるNOC102で有用な第3のメモリ・アーキテクチャを示す。ポート118はNOC102のIPブロック104とオフチップのメモリ112との間の直接接続を提供する。この処理経路にMMUがないので、このアーキテクチャはそのNOC102の全てのIPブロック104による物理的なアドレス空間を利用する。そのアドレス空間を双方向的に共有する際、そのNOC102の全てのIPブロック104は、ロードおよびストアされたものを含み、ポート118により直接接続されたIPブロックを介して差向けられるメモリ・アドレスされたメッセージによりそのメモリ空間でメモリをアクセスすることができる。このポート118はそのNOC102とオフチップのメモリ112との間の信号を導通させるのに必要なピンおよび相互接続を含むとともに、そのNOC102のパケット・フォーマットからのメッセージ・パケットを、オフチップのメモリ112により必要とされるバス・フォーマットに変換するのに足る機能を含む。
図2の実施例では、IPブロック104の一つがホスト・インターフェイス・プロセッサ105と名づけられる。ホスト・インターフェイス・プロセッサ105はNOC102とホスト・コンピュータ152との間のインターフェイスを提供する。そのホスト・コンピュータ152にもNOCを設けてそのNOC上の他のIPブロックにデータ処理サービスを提供してもよい。そのデータ処理サービスはそのNOCのIPブロック相互間でホスト・コンピュータ152からのデータ処理リクエストを受取り、ディスパッチすることも含む。NOC102は、図1に関連して前述したとおり、大型のホスト・コンピュータ152上にNOCビデオ・アダプタ209もしくはNOCコプロセッサ157を導入してもよい。図2の実施例では、ホスト・インターフェイス・プロセッサ105がデータ通信用のポート215を介して大型のホスト・コンピュータ152に接続される。ポート215はNOC102とホスト・コンピュータ152との間の信号を導通させるのに必要なピンおよび他の相互接続手段を含むとともに、NOC102からのメッセージ・パケットを、ホスト・コンピュータ152により必要とされるバス・フォーマットに変換するのに足る機能を含む。実施例のコンピュータ152におけるNOCコプロセッサ157の実施例では、そのようなポートはNOCコプロセッサ157のリンク構造と、NOCコプロセッサ157およびバス・アダプタ158間のフロント・サイド・バス163のために必要なプロトコルとの間で、データ通信フォーマット変換を提供する。
更に説明すると、図3は本発明の実施例による別のNOCの機能的なブロック図を開示する。図3の実施例のNOCは図2の実施例のNOCと、図3の実施例のNOCがチップ(図2の100)上に実装され、かつ図3のNOC102がIPブロック104、ルーター110、メモリ通信コントローラ106およびネットワーク・インターフェイス・コントローラ108を含む点で似ている。各IPブロック104はメモリ通信コントローラ106およびネットワーク・インターフェイス・コントローラ108を介してルーター110につながれる。各メモリ通信コントローラ106はIPブロック104とメモリとの間の通信を制御し、また各ネットワーク・インターフェイス・コントローラ108はルーター110を介してIPブロック間通信を制御する。図3の実施例では、メモリ通信コントローラ106およびネットワーク・インターフェイス・コントローラ108を介してルーター110につながれるIPブロック104の1セット122が、それらの構造および動作の詳細な説明を助けるように拡張される。図3の実施例におけるIPブロック104,メモリ通信コントローラ106、ネットワーク・インターフェイス・コントローラ108およびルーター110は全てその拡張されたセット122と同じ態様で構成される。
図3の実施例では、各IPブロック104がコンピュータ・プロセッサ126およびI/O機能124を含む。この例では、コンピュータ・メモリが、各IPブロック104中のランダム・アクセス・メモリ(RAM)128のセグメントによって代表される。図2の実施例に関連して前述したようなこのメモリは、各IPブロック104上のコンテンツがそのNOC中の任意のIPブロックからアドレスされアクセスされる物理的なアドレス空間のセグメントを占めることができる。各IPブロック104上のプロセッサ126、I/O機能124およびメモリ128はそのIPブロックを汎用のプログラマブル・マイクロコンピュータとして効果的に実装できる。しかし前述のとおり、本発明の範囲には、NOC内でのデータ処理のためのブロックを構築する際使用される同期もしくは非同期の再使用可能なユニットの機能をIPブロックが果たすことも含む。従って、汎用のプログラマブル・マイクロコンピュータとしてIPブロックを実装するというのは、説明目的で有用な共通の実施例ではあるが、本発明を限定しない。
図3のNOC102では、各メモリ通信コントローラ106が複数個のメモリ通信実行エンジン140を含む。各メモリ通信実行エンジン140はIPブロック104からのメモリ通信命令を実行し、そのネットワークとIPブロック104との間の双方向のメモリ通信命令の流れ142,144,145を実現する。このメモリ通信コントローラ106により実行されるメモリ通信命令は、IPブロック104から特定のメモリ通信コントローラ106を介してルーター110につながれたIPブロック104からだけでなくNOC102内のどこかのいずれかのIPブロック104から引き起こされるかもしれない。すなわち、そのNOC中の任意のIPブロックがメモリ通信命令を発生し、そのNOCのルーターを介してメモリ通信命令を、それを実行するため他のIPブロックに関連付けられている他のメモリ通信コントローラに伝送することができる。そのようなメモリ通信命令は、たとえば変換ルックアサイド・バッファ制御命令、キャッシュ制御命令、バリア命令およびメモリ・ロード命令、メモリ・ストア命令を含むことができる。
各メモリ通信実行エンジン140は或る完全なメモリ通信メモリ命令を他のメモリ通信実行エンジンと並行してかつ別個に実行する。メモリ通信実行エンジン140は、メモリ通信命令の同時進行のスループットのために最適化されたスケーラブル・メモリ・トランザクション・プロセッサを実装する。メモリ通信コントローラ106は、複数個のメモリ通信実行エンジン140をサポートするが、その全ては複数個のメモリ通信命令の同時実行のため同時に稼動する。新しいメモリ通信命令がメモリ通信コントローラ106によってメモリ通信実行エンジン140に割当てられ、そのメモリ通信実行エンジン140は複数個の応答イベントを同時に受取ることができる。この実施例では、全てのメモリ通信実行エンジン140は同一である。従ってメモリ通信コントローラ106によって同時に処理され得るメモリ通信命令の数のスケーリングは、メモリ通信実行エンジン140の数をスケーリングすることによって実装される。
図3のNOC102において、各ネットワーク・インターフェイス・コントローラ108は、ルーター110を介してのIPブロック104相互間の伝送のために命令フォーマットからの通信命令をネットワーク・パケット・フォーマットへ変換する。その通信命令はIPブロック104によってもしくはメモリ通信コントローラ106によってコマンド・フォーマットに変換され、コマンド・フォーマットでネットワーク・インターフェイス・コントローラ108に与えられる。このコマンド・フォーマットは、IPブロック104およびメモリ通信コントローラ106のアーキテクチャの登録ファイルに合わせるようなネイティブ・フォーマットである。このネットワーク・パケット・フォーマットは、そのネットワークのルーター110を介して伝送するために必要なフォーマットである。1個もしくはそれ以上のネットワーク・パケットから各メッセージが成立つ。コマンド・フォーマットからネットワーク・インターフェイス・コントローラ108におけるパケット・フォーマットに変換されるそのような通信命令の例は、IPブロック104およびメモリ間のメモリ・ロード命令およびメモリ・ストア命令を含む。そのような通信命令は、並列アプリケーションおよびパイプライン化アプリケーションにおけるIPブロック相互間のデータを処理するためのデータおよび命令を担持するIPブロック相互間でメッセージを送る通信命令を含んでもよい。
図3のNOC102では、各IPブロック104がメモリ・アドレス・ベースの通信をIPブロックのメモリ通信コントローラ106を介してメモリとそしてまたそのネットワーク・インターフェイス・コントローラ108を介してネットワークともやり取りする。メモリ・アドレス・ベースの通信は、IPブロックのメモリ通信コントローラ106のメモリ通信実行エンジン140によって実行される、ロード命令もしくはストア命令などのメモリ・アクセス命令である。そのようなメモリ・アドレス・ベースの通信は、典型的にはIPブロック104において引起され、コマンド・フォーマットで記述され、そしてメモリ通信コントローラ106に実行のために引き渡される。
多くのメモリ・アドレス・ベースの通信は、メッセージ・トラフィックでもって実行される。何故ならアクセスされるべき任意のメモリが、オンチップの、またはそのNOCにおけるいずれかのメモリ通信コントローラ106に直接取付けられ得るオフチップの、あるいはそのNOCのいずれかのIPブロックを介して究極的にアクセスされ得る、物理的なメモリ・アドレス空間のどこかの箇所に置かれることができるからである。その際、どのIPブロックが特定のメモリ・アドレス・ベースの通信を引起こすかは関係ない。メッセージ・トラフィックでもって実行される全てのメモリ・アドレス・ベースの通信は、メモリ通信コントローラ106からその関連付けられているネットワーク・インターフェイス・コントローラ108にパスされ、そこでコマンド・フォーマットからパケット・フォーマットに変換(命令変換論理136)し、ネットワークを介してメッセージで伝送する。パケット・フォーマットに変換する際、ネットワーク・インターフェイス・コントローラ108はまたメモリ・アドレス・ベースの通信によりアクセスされる1個もしくは複数個のメモリ・アドレスに依存してそのパケットのためのネットワーク・アドレスを識別する。メモリ・アドレス・ベースのメッセージはメモリ・アドレスでアドレスされる。各メモリ・アドレスは、ネットワーク・インターフェイス・コントローラ108によって、メモリ通信コントローラ106の、ネットワーク・アドレスの、典型的には、或る程度の範囲の物理的メモリ・アドレスの範囲に亘るネットワークの箇所にマップされる。メモリ通信コントローラ106のネットワークの位置は、自ずとそのメモリ通信コントローラ106の関連付けられているルーター110、ネットワーク・インターフェイス・コントローラ108およびIPブロック104のネットワークの位置でもある。各ネットワーク・インターフェイス・コントローラ108内の命令変換論理136はMOCのルーター110を介してメモリ・アドレス・ベースの通信を伝送するために、メモリ・アドレスをネットワーク・アドレスに変換することができる。
ネットワークのルーター110からのメッセージ・トラフィックを受取ると、各ネットワーク・インターフェイス・コントローラ108はメモリ命令の各パケットを検査する。メモリ命令を含む各パケットはその受取っているネットワーク・インターフェイス・コントローラ108と関連付けられているメモリ通信コントローラ106に渡され、これがそのパケットの残りのペイロードを更なる処理のためのIPブロック104に送る前にそのメモリ命令を実行する。このようにして、そのIPブロック104が特定のメモリ・コンテンツに依存するメッセージからの命令を実行する前に、メモリ・コンテンツがIPブロック104によるデータ処理をサポートするために常に準備される。
図2のNOC102では、各IPブロック104がそのメモリ通信コントローラ106をバイパスするように、そしてそのIPブロック104のネットワーク・インターフェイス・コントローラ108を介してネットワークに直接、IPブロック間のネットワーク・アドレスの通信146を送る。ネットワーク・アドレスの通信146は、ネットワーク・アドレスによって他のIPブロックに差向けられるメッセージである。このようなメッセージは、パイプライン化されたアプリケーション中の作業データ、SIMDアプリケーションにおけるIPブロック間での単一のプログラム処理のための複数のデータなど、当業者の想到するようなものを伝送する。そのようなメッセージは、メモリ・アドレス・ベースの通信とは以下のような点で区別される。それらは、そのNOCのルーターを介してメッセージが差向けられる先のネットワーク・アドレスを知る発生元のIPブロック104によって、そのスタートからアドレスされるネットワークである点で区別される。そのようなネットワーク・アドレスの通信は、IPブロック104によってそこを通り抜けるようにパスされ、I/O機能124から直接にIPブロック104のネットワーク・インターフェイス・コントローラ108に、コマンド・フォーマットで送られ、それからIPブロックのネットワーク・インターフェイス・コントローラ108によりパケット・フォーマットに変換され、他のIPブロックのルーターを介して伝送される。そのようなネットワーク・アドレスの通信146は双方向であり、何か特定のアプリケーションでのそれらの使用に依存してそのNOCの各IPブロックにもしくはそこから進み得る。しかし各ネットワーク・インターフェイス・コントローラ108は、関連付けられているルーター110とのそのような通信を(メモリ通信命令142で)送受し、そして各ネットワーク・インターフェイス・コントローラ108は、関連付けられているIPブロック104とのそのような通信を(ネットワーク・アドレス通信146で)直接に送受する。この直接に送受する際は、関連付けられているメモリ通信コントローラ106をバイパスする。
図3の実施例における各ネットワーク・インターフェイス・コントローラ108はまたそのネットワーク上に仮想チャネルを実装し、ネットワーク・パケットをタイプによって特徴付ける。各ネットワーク・インターフェイス・コントローラ108は、各通信命令をタイプによって分類する仮想チャネル実装論理138を含み、そのネットワーク・パケット・フォーマットのフィールドにその命令のタイプを記録する。その記録後、パケット形式の命令はNOC上で伝送するためルーター110に渡される。通信命令のタイプの例は、IPブロック間ネットワーク・アドレス・ベースのメッセージ、リクエスト・メッセージ、リクエスト・メッセージへの応答、キャッシュに差向けられる無効メッセージ、メモリ・ロード・メッセージ、メモリ・ストア・メッセージ、メモリ・ロード・メッセージへの応答などを含む。
図3の実施例の各ルーター110は、ルーティング論理130、仮想チャネル制御論理132および仮想チャネル・バッファ134を含む。ルーティング論理130は、ルーター110、リンク120、およびルーター110相互間のバス・ワイヤにより形成されるネットワーク中のデータ通信のためのデータ通信プロトコル・スタックを実装する同期もしくは非同期の論理のネットワークとして実装される。ルーティング論理130は、当業者ならルーティング・テーブルとオフチップのネットワークで関連付けることのできる機能を含む。少なくとも幾つかの実施例におけるルーティング・テーブルはNOCで使用するにはあまりにも遅く扱いにくいと考えられている。同期および非同期の論理のネットワークとして実装されるルーティング論理130は、単一のクロック・サイクルと同程度の速さのルーティング決定を行うように構成されることができる。この実施例のルーティング論理は、ルーター110で受取る各パケットを進めるためのポートを選択することによりパケットをルート付けする。各パケットはルート先のネットワーク・アドレスを含む。この実施例における各ルーター110は、5個のポート121、123を含み、そのうち4個のポート121はバス・ワイヤ120−A、120−B、120−C、120−Dを介して他のルーターに結合され、第5のポート123は各ルーター110をネットワーク・インターフェイス・コントローラ108およびメモリ通信コントローラ106を介してその関連付けられているIPブロック104に結合している。
前述のメモリ・アドレス・ベースの通信を説明する際、各メモリ・アドレスは、ネットワーク・インターフェイス・コントローラ108によりネットワーク・アドレス、すなわちメモリ通信コントローラ106のネットワーク位置にマップされると説明した。メモリ通信コントローラ106のネットワーク位置は、メモリ通信コントローラ106の、関連付けられたルーター110、ネットワーク・インターフェイス・コントローラ108およびIPブロック104のネットワーク位置である。IPブロック間もしくはネットワーク・アドレス・ベースの通信において、アプリケーション・レベルのデータ処理にとってはルーター104、リンク120、NOCのバス・ワイヤにより形成されるネットワーク内のIPブロック104の位置としてネットワーク・アドレスを見るのも一般的である。図2は、そのようなネットワークの一組織が行列からなるメッシュであり、そこでは各ネットワーク・アドレスが、たとえばそのメッシュの関連付けられたルーター110、IPブロック104、メモリ通信コントローラ106およびネットワーク・インターフェイス・コントローラ108のセット毎の特有の識別子として、またはそのメッシュにおけるそのような各セットのxおよびy座標として実装されることができる。
図3のNOC102では、各ルーター110が2個もしくはそれ以上の仮想通信チャネルを実装する。そこでは各仮想通信チャネルが通信のタイプによって特徴付けられる。通信命令のタイプ、従って仮想チャネル・タイプは前述したものを含む。すなわちIPブロック間ネットワーク・アドレス・ベース・メッセージ、リクエスト・メッセージ、リクエスト・メッセージに対する応答、キャッシュに差し向けられる無効化メッセージや、メモリ・ロード・メッセージ、メモリ・ストア・メッセージや、メモリ・ロード・メッセージへの応答などを含む。仮想チャネルをサポートするに際し、図3の実施例における各ルーターは、仮想チャネル制御論理132および仮想チャネル・バッファ134をも含む。仮想チャネル制御論理132はその割当てられた通信タイプごとに受取ったパケットを調べ、そのNOC上の隣接するルーターにポートを介して、伝送用の通信タイプのため、出入りする仮想チャネル・バッファ中に各々のパケットを置く。
仮想チャネル・バッファ134は各々、有限のストレージ空間を有する。短期間に多くのパケットを受取ると、仮想チャネル・バッファが一杯になることがある。そうなるとバッファにはそれ以上のパケットを置くことができない。他のプロトコルでは、バッファが一杯の仮想チャネルに到来するパケットは落とされることになろう。しかしこの実施例の各仮想チャネル・バッファ134 は、仮想チャネルにおける伝送を中断すなわち特定の通信タイプのパケットの伝送を中断するために仮想チャネル制御論理132を介して周囲のルーターにアドバイスするようバス・ワイヤの制御信号で以ってイネーブル(能動化)される。一つの仮想チャネルがそのように中断されると、他の全てのチャネルが影響を受けなくなり、その全能力で動作し続けることができる。この制御信号は各ルーターの関連付けられたネットワーク・インターフェイス・コントローラ108に各ルーターを介してはるばると戻される。各ネットワーク・インターフェイス・コントローラ108は、このような信号を受取ると、その関連付けられたメモリ通信コントローラ106からまたはその関連付けられたIPブロック104から、その中断された仮想チャネルのための通信命令を受取るのを拒否するように構成される。このようにして、仮想チャネルの中断がその仮想チャネルを実装する全てのハードウエアに影響を及ぼし、その起源となっているIPブロック104までずっと戻される。
仮想チャネルでパケットの転送を中断する一つの効果は図3のアーキテクチャでパケットが決して落ちないことである。インターネット・プロトコルのようなある種の信頼性のないプロトコルでパケットが落ちかねない状況にルーターが遭遇すると、図3の実施例におけるルーター110は仮想チャネル・バッファ134および仮想チャネル制御論理132により仮想チャネル中のパケットの全ての転送を中断する。それはバッファ空間が再び利用できるようになりパケットを落とす必要がなくなるまで中断する。このように、図3のNOC102は、ハードウエアの非常に薄い層とともに非常に信頼性の高いネットワーク通信プロトコルを実装する。
更に説明すると、図4は、本発明の実施例によるNOCを備えた例示のデータ処理方法のフローチャートを開示する。図4の方法は、図3のIPブロック104、ルーター110、メモリ通信コントローラ106およびネットワーク・インターフェイス・コントローラ108とともに図3のチップ100上に図3のNOC102が実装されているような、この明細書で前述したNOC或いはその等価物で実行される。図3の各IPブロック104はルーター110にメモリ通信コントローラ106およびネットワーク・インターフェイス・コントローラ108を介してつながっている。図4の方法では、各IPブロックが、NOC内のデータ処理のための組立てブロックとして使用される同期もしくは非同期の論理設計の再使用可能なユニットとして実装されることができる。
図4の方法は、IPブロックおよびメモリの間のメモリ通信コントローラ106(図3)によって制御するステップ402を含む。図4の方法では、メモリ通信コントローラ106(図3)が複数個のメモリ通信実行エンジン140(図3)を含む。また図4の方法では、IPブロック104およびメモリの間の通信を制御するステップ402は、各メモリ通信実行エンジン140によって他のメモリ通信実行エンジンとは別個にかつ並行して一つの完全なメモリ通信命令を実行するステップ404と、そのネットワークおよびIPブロック104の間のメモリ通信命令の双方向の流れを実行するステップ406とによって行われる。図4の方法では、メモリ通信命令が、変換ルックアサイド・バッファの制御命令、キャッシュ制御命令、バリア命令、メモリ・ロード命令およびメモリ・ストア命令を含むことができる。図4の方法では、メモリが、オフチップ・メインRAM、IPブロックにメモリ通信コントローラ106を介して直接結合されたメモリIPブロック、IPブロックのオンチップ・メモリおよびオンチップ・キャッシュを含む。
図4の方法は、また図3のネットワーク・インターフェイス・コントローラ108によって、ルーターを介してのIPブロック間通信を制御するステップ408を含む。図4の方法において、IPブロック間通信を制御するステップ408はまた、各ネットワーク・インターフェイス・コントローラ108によって、コマンド・フォーマットからの通信命令をネットワーク・パケット・フォーマットに変換するステップ410と、各ネットワーク・インターフェイス・コントローラ108によって、そのネットワーク上に、ネットワーク・パケットをタイプにより特徴付つつ、仮想チャネルを導入するステップ412とを含む。
図4の方法はまた、各々通信タイプによって特徴付けられる2個もしくはそれ以上の仮想通信チャネルを介し各ルーター110(図3)によってメッセージを伝送するステップ414を含む。通信命令タイプ、従って仮想チャネル・タイプは、たとえばIPブロック間ネットワーク・アドレス・ベース・メッセージ、リクエスト・メッセージ、リクエスト・メッセージへの応答、キャッシュに差し向けられる無効化メッセージや、メモリ・ロード・メッセージ、メモリ・ストア・メッセージや、メモリ・ロード・メッセージへの応答などを含む。仮想チャネルをサポートする際、各ルーター110はまた仮想チャネル制御論理132(図3)および仮想チャネル・バッファ134(図3)を含む。この仮想チャネル制御論理132は、その割当てられた通信タイプごとに受取ったパケットを調べ、そのNOC上の隣接するルーターにポートを介して、伝送用の通信タイプのため、出入りする仮想チャネル・バッファ中に各々のパケットを置く。
本発明の実施例はNOCを備えたデータ処理のための完全な機能のコンピュータ・システムとして記述されている。しかし本発明が任意の適当なデータ処理システムとともに使用される信号担持媒体上に配設されたコンピュータ・プログラム製品で 具体化されてもよいことを当業者は理解できよう。このような信号担持媒体はマシン読取り可能な情報のための伝送媒体もしくは記録可能媒体、磁気媒体、光媒体もしくは他の適当な媒体であってもよい。記録可能媒体の例は、ハード・ドライブにおける磁気ディスクもしくはディスケット(フロッピー・ディスク)、光ドライブのためのコンパクト・ディスク、磁気テープ、その他当業者の想到するものなどを含む。伝送媒体の例は、音声通信のための電話網(ネットワーク)およびEthernet(登録商標)などのディジタル・データ通信ネットワーク、インターネット・プロトコルおよびWWW(ワールド・ワイド・ウエッブ)と通信するネットワーク、ならびにスペックのIEEE802.11ファミリに従って導入されるネットワークなどの無線伝送媒体を含む。当業者は直ぐに理解できると思うが、適当なプログラミング手段を有するコンピュータ・システムが、プログラム製品で具体化されるのと本発明の方法の諸ステップを実行することができるであろう。当業者は直ぐに理解できると思うが、この明細書に記述されているいくつかの実施例はソフトウエアがインストールされコンピュータ・ハードウエア上で実行されるものを指向しているものの、ファームウエアもしくはハードウエアとして導入される代替実施例も本発明の範囲内である。
本発明を好適な実施例に従って説明してきたが、本発明の種々の実施例において修正や変更をその真の精神から逸れずに行えることが前述の説明から理解できよう。本発明の記述は説明目的のためだけであり、限定する意味で解釈されてはならない。本発明の範囲は特許請求の範囲によってのみ限定される。
本発明の実施例によるNOCを有し、データ処理において有用である例示のコンピュータを含む自動化されたコンピューティング・マシンのブロック図である。 本発明の実施例による実施例のNOCの機能的なブロック図である。 本発明の実施例による別の実施例のNOCの機能的なブロック図である。 本発明の実施例によるNOCを備えたデータ処理のための実施例の方法を示すフローチャートである。
符号の説明
100 チップ
101 ネットワーク
102 ネットワークオンチップ(NOC)
104 集積プロセッサ(IP)ブロック
105 ホスト・インターフェイス・プロセッサ
106 メモリ通信コントローラ
107、 109 メモリ管理ユニット(MMU)
108 ネットワーク・インターフェイス・コントローラ
110 ルーター
112 オフチップ・メインRAM
114、115 オンチップ・メモリ
116 ポート
120 リンク
120−A、120−B、120−C、120−D バス・ワイヤ
121、123 ポート
122 (IPブロックの)セット
124 I/O機能
126 プロセッサ
128 メモリ
130 ルーティング論理
132 仮想チャネル制御論理
134 仮想チャネル・バッファ
136 命令変換論理
138 仮想チャネル実装論理
140 メモリ通信実行エンジン
142、144、145 メモリ通信命令の流れ
146 ネットワーク・アドレス通信
152 コンピュータ
154 オペレーティング・システム
156 コンピュータ・プロセッサ(CPU)
157 NOCコプロセッサ
158 バス・アダプタ
160 拡張バス
162、163 フロント・サイド・バス
164 ビデオ・バス
166 メモリ・バス
167 通信アダプタ
168 ランダム・アクセス・メモリ(RAM)
170 データ・ストレージ
172 ディスク・ドライブ・アダプタ
178 I/Oアダプタ
180 ディスプレイ装置
181 ユーザー入力装置
182 他のコンピュータ
184 アプリケーション・プログラム
209 NOCビデオ・アダプタ
215 ポート

Claims (8)

  1. 集積プロセッサ(IP)ブロック、ルーター、メモリ通信コントローラおよびネットワーク・インターフェイス・コントローラを含むネットワークオンチップ(NOC)であって、
    各々の前記IPブロックが、前記メモリ通信コントローラおよび前記ネットワーク・イターフェイス・コントローラを介して、前記ルーターに結合され、
    各々の前記メモリ通信コントローラが、前記IPブロックおよび前記IPブロックとオンチップ・メモリ間の通信を制御し、
    各々の前記ネットワーク・インターフェイス・コントローラが、前記ルーターを介してIPブロック間通信を制御し、
    各々の前記ルーターが、通信タイプによって各々特徴付けられる2個もしくはそれ以上の仮想通信チャネルを含
    前記メモリ通信コントローラは、前記IPブロックから受け取ったメモリ通信命令をコマンド・フォーマットに変換して前記ネットワーク・インターフェイス・コントローラに送り、前記ネットワーク・インターフェイス・コントローラが、前記メモリ通信命令のコマンド・フォーマットをネットワーク・パケット・フォーマットへ変換して前記ルーターに送ることにより、前記IPブロック間および前記IPブロックとオンチップ・メモリ間のメモリ・アドレス・ベースの通信を可能にする、ネットワークオンチップ(NOC)。
  2. 前記メモリ通信コントローラが、
    前記メモリ通信命令を他のメモリ通信実行エンジンとは別個にかつ並行して前記コマンド・フォーマットへの変換を含む処理を実行することができる、複数のメモリ通信実行エンジンを含む、請求項1に記載のNOC。
  3. 前記メモリ通信命令が、変換ルックアサイド・バッファ制御命令、キャッシュ制御命令、バリア命令、メモリ・ロード命令、及び、メモリ・ストア命令を含む、請求項2に記載のNOC。
  4. 前記オンチップ・メモリが、
    RAM
    前記メモリ通信コントローラを介して前記IPブロックに直接に接続されたメモリ、
    前記IPブロックとしてイネーブルされるオンチップ・メモリ、及び、
    オンチップ・キャッシュを含む、請求項1に記載のNOC。
  5. 各々の前記IPブロックが、
    前記NOC内のデータ処理のため構築ブロックとして使用される同期もしくは非同期の論理設計の再使用可能なユニットを含む、請求項1に記載のNOC。
  6. 各々の前記ネットワーク・インターフェイス・コントローラが、
    ネットワーク・パケットをタイプによって特徴付ける仮想チャネルをネットワーク上に実現する、請求項1に記載のNOC。
  7. 各々の前記IPブロックが、
    前記IPブロックのメモリ通信コントローラをバイパスし、かつ、
    IPブロック間の、ネットワーク・アドレス通信をIPブロックのネットワーク・インターフェイス・コントローラを介して直接に前記ネットワークに送る、請求項1に記載のNOC。
  8. ネットワークオンチップ(NOC)で以ってデータを処理する方法であって、
    前記NOCは、
    集積プロセッサ(IP)ブロック、ルーター、メモリ通信コントローラおよびネットワーク・インターフェイス・コントローラを含み、
    各々の前記IPブロックが、前記メモリ通信コントローラおよび前記ネットワーク・インターフェイス・コントローラを介して前記ルーターに結合されており、
    各々の前記ルーターが、通信タイプによって各々特徴付けられる2個もしくはそれ以上の仮想通信チャネルを含み、
    前記方法は、
    各々の前記メモリ通信コントローラによって、前記IPブロックおよび前記IPブロックとオンチップ・メモリ間の通信を制御するステップと、
    各々の前記ネットワーク・インターフェイス・コントローラによって、前記ルーターを介してIPブロック間通信を制御するステップと、を含
    前記メモリ通信コントローラは、前記IPブロックから受け取ったメモリ通信命令をコマンド・フォーマットに変換して前記ネットワーク・インターフェイス・コントローラに送り、前記ネットワーク・インターフェイス・コントローラが、前記メモリ通信命令のコマンド・フォーマットをネットワーク・パケット・フォーマットへ変換して前記ルーターに送ることにより、前記IPブロック間および前記IPブロックとオンチップ・メモリ間のメモリ・アドレス・ベースの通信を可能にする、方法。
JP2008252459A 2007-10-29 2008-09-30 ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法 Expired - Fee Related JP5285375B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/926212 2007-10-29
US11/926,212 US20090109996A1 (en) 2007-10-29 2007-10-29 Network on Chip

Publications (2)

Publication Number Publication Date
JP2009110512A JP2009110512A (ja) 2009-05-21
JP5285375B2 true JP5285375B2 (ja) 2013-09-11

Family

ID=40582761

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008252459A Expired - Fee Related JP5285375B2 (ja) 2007-10-29 2008-09-30 ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法

Country Status (4)

Country Link
US (1) US20090109996A1 (ja)
JP (1) JP5285375B2 (ja)
CN (1) CN101425966B (ja)
TW (1) TW200937219A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9045600B2 (en) 2009-05-13 2015-06-02 Keraplast Technologies, Ltd. Biopolymer materials

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090125706A1 (en) * 2007-11-08 2009-05-14 Hoover Russell D Software Pipelining on a Network on Chip
US20090125703A1 (en) * 2007-11-09 2009-05-14 Mejdrich Eric O Context Switching on a Network On Chip
US8261025B2 (en) 2007-11-12 2012-09-04 International Business Machines Corporation Software pipelining on a network on chip
US7873701B2 (en) * 2007-11-27 2011-01-18 International Business Machines Corporation Network on chip with partitions
US20090260013A1 (en) * 2008-04-14 2009-10-15 International Business Machines Corporation Computer Processors With Plural, Pipelined Hardware Threads Of Execution
US8423715B2 (en) 2008-05-01 2013-04-16 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8494833B2 (en) * 2008-05-09 2013-07-23 International Business Machines Corporation Emulating a computer run time environment
US20090282419A1 (en) * 2008-05-09 2009-11-12 International Business Machines Corporation Ordered And Unordered Network-Addressed Message Control With Embedded DMA Commands For A Network On Chip
US20090307408A1 (en) * 2008-06-09 2009-12-10 Rowan Nigel Naylor Peer-to-Peer Embedded System Communication Method and Apparatus
US8438578B2 (en) 2008-06-09 2013-05-07 International Business Machines Corporation Network on chip with an I/O accelerator
TWI417741B (zh) * 2009-09-14 2013-12-01 Univ Nat Taiwan 動態調整通道方向之方法及使用其之晶片網路架構
US8473818B2 (en) * 2009-10-12 2013-06-25 Empire Technology Development Llc Reliable communications in on-chip networks
JPWO2011148925A1 (ja) * 2010-05-24 2013-07-25 日本電気株式会社 半導体装置とネットワークルーティング方法とシステム
US8930618B2 (en) * 2010-08-24 2015-01-06 Futurewei Technologies, Inc. Smart memory
KR101841173B1 (ko) 2010-12-17 2018-03-23 삼성전자주식회사 리오더 버퍼를 이용한 메모리 인터리빙 장치 및 그 메모리 인터리빙 방법
EP2684320B1 (en) * 2011-03-10 2016-10-19 Cisco Technology, Inc. Large interconnect fabrics
JP2013196167A (ja) 2012-03-16 2013-09-30 Toshiba Corp 情報処理装置
CN104169903B (zh) * 2012-03-28 2016-12-07 中兴通讯股份有限公司 一种实现多通道同步并行传输的方法和系统
KR102014118B1 (ko) 2012-10-19 2019-08-26 삼성전자주식회사 Axi 기반 네트워크 백본 시스템의 서브채널방식의 채널 관리 방법 및 장치
CN103383671A (zh) * 2013-02-26 2013-11-06 西安交通大学 一种基于片上网络的dram通讯优化方法
EP3080708B1 (en) * 2013-12-12 2020-02-05 Marvell World Trade Ltd. Method and apparatus for transferring information within and between system-on-chips via intra-chip and inter-chip hopping buses
CN105488011B (zh) * 2014-09-19 2018-06-19 杭州华为数字技术有限公司 片上网络的访存处理方法和片上网络
US9742630B2 (en) * 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US10348563B2 (en) 2015-02-18 2019-07-09 Netspeed Systems, Inc. System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology
JP5943109B1 (ja) 2015-03-10 2016-06-29 日本電気株式会社 半導体チップ、集積回路、及びデータ転送方法
JP5943115B1 (ja) 2015-03-27 2016-06-29 日本電気株式会社 集積回路、半導体装置、カード及びデータ転送方法
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
US20180159786A1 (en) 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
US10469337B2 (en) 2017-02-01 2019-11-05 Netspeed Systems, Inc. Cost management against requirements for the generation of a NoC
US10896476B2 (en) 2018-02-22 2021-01-19 Netspeed Systems, Inc. Repository of integration description of hardware intellectual property for NoC construction and SoC integration
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder
US11023377B2 (en) 2018-02-23 2021-06-01 Netspeed Systems, Inc. Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA)
CN112398877B (zh) * 2021-01-20 2021-04-27 北京燧原智能科技有限公司 控制信号转换电路、知识产权核以及系统级芯片

Family Cites Families (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE904100A (fr) * 1986-01-24 1986-07-24 Itt Ind Belgium Systeme de commutation.
JPH0628036B2 (ja) * 1988-02-01 1994-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーシヨン シミュレーシヨン方法
US4951195A (en) * 1988-02-01 1990-08-21 International Business Machines Corporation Condition code graph analysis for simulating a CPU processor
US5488729A (en) * 1991-05-15 1996-01-30 Ross Technology, Inc. Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution
US5442797A (en) * 1991-12-04 1995-08-15 Casavant; Thomas L. Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging
US6047122A (en) * 1992-05-07 2000-04-04 Tm Patents, L.P. System for method for performing a context switch operation in a massively parallel computer system
JPH0675930A (ja) * 1992-08-27 1994-03-18 Toshiba Corp 並列プロセッサシステム
JPH06223044A (ja) * 1993-01-25 1994-08-12 Fujitsu Ltd 並列計算機のメッセージ通信方法,及び装置
NL9301841A (nl) * 1993-10-25 1995-05-16 Nederland Ptt Inrichting voor het bewerken van datapakketten.
US5784706A (en) * 1993-12-13 1998-07-21 Cray Research, Inc. Virtual to logical to physical address translation for distributed memory massively parallel processing systems
JP3322754B2 (ja) * 1994-05-17 2002-09-09 富士通株式会社 並列計算機
JPH08185380A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
US5761516A (en) * 1996-05-03 1998-06-02 Lsi Logic Corporation Single chip multiprocessor architecture with internal task switching synchronization bus
US6049866A (en) * 1996-09-06 2000-04-11 Silicon Graphics, Inc. Method and system for an efficient user mode cache manipulation using a simulated instruction
US5887166A (en) * 1996-12-16 1999-03-23 International Business Machines Corporation Method and system for constructing a program including a navigation instruction
US5872963A (en) * 1997-02-18 1999-02-16 Silicon Graphics, Inc. Resumption of preempted non-privileged threads with no kernel intervention
US6021470A (en) * 1997-03-17 2000-02-01 Oracle Corporation Method and apparatus for selective data caching implemented with noncacheable and cacheable data for improved cache performance in a computer networking system
US6105119A (en) * 1997-04-04 2000-08-15 Texas Instruments Incorporated Data transfer circuitry, DSP wrapper circuitry and improved processor devices, methods and systems
US6044478A (en) * 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US6085315A (en) * 1997-09-12 2000-07-04 Siemens Aktiengesellschaft Data processing device with loop pipeline
US6085296A (en) * 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
US6898791B1 (en) * 1998-04-21 2005-05-24 California Institute Of Technology Infospheres distributed object system
US6092159A (en) * 1998-05-05 2000-07-18 Lsi Logic Corporation Implementation of configurable on-chip fast memory using the data cache RAM
US6101599A (en) * 1998-06-29 2000-08-08 Cisco Technology, Inc. System for context switching between processing elements in a pipeline of processing elements
TW389866B (en) * 1998-07-01 2000-05-11 Koninkl Philips Electronics Nv Computer graphics animation method and device
GB9818377D0 (en) * 1998-08-21 1998-10-21 Sgs Thomson Microelectronics An integrated circuit with multiple processing cores
US6591347B2 (en) * 1998-10-09 2003-07-08 National Semiconductor Corporation Dynamic replacement technique in a shared cache
US6370622B1 (en) * 1998-11-20 2002-04-09 Massachusetts Institute Of Technology Method and apparatus for curious and column caching
GB2345987B (en) * 1999-01-19 2003-08-06 Advanced Risc Mach Ltd Memory control within data processing systems
US6272598B1 (en) * 1999-03-22 2001-08-07 Hewlett-Packard Company Web cache performance by applying different replacement policies to the web cache
US6519605B1 (en) * 1999-04-27 2003-02-11 International Business Machines Corporation Run-time translation of legacy emulator high level language application programming interface (EHLLAPI) calls to object-based calls
US6434669B1 (en) * 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to dynamically update information-type dependent cache policies
US7010580B1 (en) * 1999-10-08 2006-03-07 Agile Software Corp. Method and apparatus for exchanging data in a platform independent manner
JP2001167066A (ja) * 1999-12-08 2001-06-22 Nec Corp プロセッサ間通信方法及びマルチプロセッサシステム
US6470437B1 (en) * 1999-12-17 2002-10-22 Hewlett-Packard Company Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design
US6697932B1 (en) * 1999-12-30 2004-02-24 Intel Corporation System and method for early resolution of low confidence branches and safe data cache accesses
US6725317B1 (en) * 2000-04-29 2004-04-20 Hewlett-Packard Development Company, L.P. System and method for managing a computer system having a plurality of partitions
US6567895B2 (en) * 2000-05-31 2003-05-20 Texas Instruments Incorporated Loop cache memory and cache controller for pipelined microprocessors
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
US6567084B1 (en) * 2000-07-27 2003-05-20 Ati International Srl Lighting effect computation circuit and method therefore
US6877086B1 (en) * 2000-11-02 2005-04-05 Intel Corporation Method and apparatus for rescheduling multiple micro-operations in a processor using a replay queue and a counter
US6961825B2 (en) * 2001-01-24 2005-11-01 Hewlett-Packard Development Company, L.P. Cache coherency mechanism using arbitration masks
JP4790971B2 (ja) * 2001-01-29 2011-10-12 ジョセフ エイ マッギル 空気流装置用の可調節ダンパー
KR100620835B1 (ko) * 2001-02-24 2006-09-13 인터내셔널 비지네스 머신즈 코포레이션 최적화된 가변 네트워크 스위치
US6891828B2 (en) * 2001-03-12 2005-05-10 Network Excellence For Enterprises Corp. Dual-loop bus-based network switch using distance-value or bit-mask
US6915402B2 (en) * 2001-05-23 2005-07-05 Hewlett-Packard Development Company, L.P. Method and system for creating secure address space using hardware memory router
US7072996B2 (en) * 2001-06-13 2006-07-04 Corrent Corporation System and method of transferring data between a processing engine and a plurality of bus types using an arbiter
US6988149B2 (en) * 2002-02-26 2006-01-17 Lsi Logic Corporation Integrated target masking
US7398374B2 (en) * 2002-02-27 2008-07-08 Hewlett-Packard Development Company, L.P. Multi-cluster processor for processing instructions of one or more instruction threads
US7015909B1 (en) * 2002-03-19 2006-03-21 Aechelon Technology, Inc. Efficient use of user-defined shaders to implement graphics operations
US7609718B2 (en) * 2002-05-15 2009-10-27 Broadcom Corporation Packet data service over hyper transport link(s)
JP4560409B2 (ja) * 2002-10-08 2010-10-13 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データを交換する集積回路および方法
US6901483B2 (en) * 2002-10-24 2005-05-31 International Business Machines Corporation Prioritizing and locking removed and subsequently reloaded cache lines
US7296121B2 (en) * 2002-11-04 2007-11-13 Newisys, Inc. Reducing probe traffic in multiprocessor systems
US7254578B2 (en) * 2002-12-10 2007-08-07 International Business Machines Corporation Concurrency classes for shared file systems
US7873785B2 (en) * 2003-08-19 2011-01-18 Oracle America, Inc. Multi-core multi-thread processor
US20050086435A1 (en) * 2003-09-09 2005-04-21 Seiko Epson Corporation Cache memory controlling apparatus, information processing apparatus and method for control of cache memory
US7418606B2 (en) * 2003-09-18 2008-08-26 Nvidia Corporation High quality and high performance three-dimensional graphics architecture for portable handheld devices
JP4449382B2 (ja) * 2003-09-19 2010-04-14 船井電機株式会社 受信装置およびそれを搭載したテレビジョン装置
US7689738B1 (en) * 2003-10-01 2010-03-30 Advanced Micro Devices, Inc. Peripheral devices and methods for transferring incoming data status entries from a peripheral to a host
US7574482B2 (en) * 2003-10-31 2009-08-11 Agere Systems Inc. Internal memory controller providing configurable access of processor clients to memory instances
US7502912B2 (en) * 2003-12-30 2009-03-10 Intel Corporation Method and apparatus for rescheduling operations in a processor
US7162560B2 (en) * 2003-12-31 2007-01-09 Intel Corporation Partitionable multiprocessor system having programmable interrupt controllers
US8176259B2 (en) * 2004-01-20 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for resolving transactions in a cache coherency protocol
WO2005072307A2 (en) * 2004-01-22 2005-08-11 University Of Washington Wavescalar architecture having a wave order memory
US7533154B1 (en) * 2004-02-04 2009-05-12 Advanced Micro Devices, Inc. Descriptor management systems and methods for transferring data of multiple priorities between a host and a network
KR100555753B1 (ko) * 2004-02-06 2006-03-03 삼성전자주식회사 원칩 시스템에서 라우터들간의 라우팅 경로 설정 장치 및방법
US7478225B1 (en) * 2004-06-30 2009-01-13 Sun Microsystems, Inc. Apparatus and method to support pipelining of differing-latency instructions in a multithreaded processor
US7516306B2 (en) * 2004-10-05 2009-04-07 International Business Machines Corporation Computer program instruction architecture, system and process using partial ordering for adaptive response to memory latencies
US7493474B1 (en) * 2004-11-10 2009-02-17 Altera Corporation Methods and apparatus for transforming, loading, and executing super-set instructions
US7394288B1 (en) * 2004-12-13 2008-07-01 Massachusetts Institute Of Technology Transferring data in a parallel processing environment
EP1875681A1 (en) * 2005-04-13 2008-01-09 Koninklijke Philips Electronics N.V. Electronic device and method for flow control
US7376789B2 (en) * 2005-06-29 2008-05-20 Intel Corporation Wide-port context cache apparatus, systems, and methods
CN101223745A (zh) * 2005-07-19 2008-07-16 皇家飞利浦电子股份有限公司 用于通信资源分配的电子设备和方法
US8990547B2 (en) * 2005-08-23 2015-03-24 Hewlett-Packard Development Company, L.P. Systems and methods for re-ordering instructions
US20070083735A1 (en) * 2005-08-29 2007-04-12 Glew Andrew F Hierarchical processor
US20070074191A1 (en) * 2005-08-30 2007-03-29 Geisinger Nile J Software executables having virtual hardware, operating systems, and networks
US8526415B2 (en) * 2005-09-30 2013-09-03 Robert Bosch Gmbh Method and system for providing acknowledged broadcast and multicast communication
US8429661B1 (en) * 2005-12-14 2013-04-23 Nvidia Corporation Managing multi-threaded FIFO memory by determining whether issued credit count for dedicated class of threads is less than limit
US7568064B2 (en) * 2006-02-21 2009-07-28 M2000 Packet-oriented communication in reconfigurable circuit(s)
WO2007110914A1 (ja) * 2006-03-27 2007-10-04 Fujitsu Limited マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法
US7882307B1 (en) * 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
US8345053B2 (en) * 2006-09-21 2013-01-01 Qualcomm Incorporated Graphics processors with parallel scheduling and execution of threads
US7664108B2 (en) * 2006-10-10 2010-02-16 Abdullah Ali Bahattab Route once and cross-connect many
US7502378B2 (en) * 2006-11-29 2009-03-10 Nec Laboratories America, Inc. Flexible wrapper architecture for tiled networks on a chip
US7992151B2 (en) * 2006-11-30 2011-08-02 Intel Corporation Methods and apparatuses for core allocations
US7521961B1 (en) * 2007-01-23 2009-04-21 Xilinx, Inc. Method and system for partially reconfigurable switch
EP1950932A1 (en) * 2007-01-29 2008-07-30 Stmicroelectronics Sa System for transmitting data within a network between nodes of the network and flow control process for transmitting said data
US7500060B1 (en) * 2007-03-16 2009-03-03 Xilinx, Inc. Hardware stack structure using programmable logic
US7886084B2 (en) * 2007-06-26 2011-02-08 International Business Machines Corporation Optimized collectives using a DMA on a parallel computer
US8478834B2 (en) * 2007-07-12 2013-07-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US8200992B2 (en) * 2007-09-24 2012-06-12 Cognitive Electronics, Inc. Parallel processing computer systems with reduced power consumption and methods for providing the same
US7701252B1 (en) * 2007-11-06 2010-04-20 Altera Corporation Stacked die network-on-chip for FPGA
US20090125706A1 (en) * 2007-11-08 2009-05-14 Hoover Russell D Software Pipelining on a Network on Chip
US20090125703A1 (en) * 2007-11-09 2009-05-14 Mejdrich Eric O Context Switching on a Network On Chip
US8261025B2 (en) * 2007-11-12 2012-09-04 International Business Machines Corporation Software pipelining on a network on chip
US7873701B2 (en) * 2007-11-27 2011-01-18 International Business Machines Corporation Network on chip with partitions
US8526422B2 (en) * 2007-11-27 2013-09-03 International Business Machines Corporation Network on chip with partitions
US7917703B2 (en) * 2007-12-13 2011-03-29 International Business Machines Corporation Network on chip that maintains cache coherency with invalidate commands
US8473667B2 (en) * 2008-01-11 2013-06-25 International Business Machines Corporation Network on chip that maintains cache coherency with invalidation messages
US8010750B2 (en) * 2008-01-17 2011-08-30 International Business Machines Corporation Network on chip that maintains cache coherency with invalidate commands
US7913010B2 (en) * 2008-02-15 2011-03-22 International Business Machines Corporation Network on chip with a low latency, high bandwidth application messaging interconnect
US7958340B2 (en) * 2008-05-09 2011-06-07 International Business Machines Corporation Monitoring software pipeline performance on a network on chip
US8195884B2 (en) * 2008-09-18 2012-06-05 International Business Machines Corporation Network on chip with caching restrictions for pages of computer memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9045600B2 (en) 2009-05-13 2015-06-02 Keraplast Technologies, Ltd. Biopolymer materials

Also Published As

Publication number Publication date
JP2009110512A (ja) 2009-05-21
TW200937219A (en) 2009-09-01
CN101425966A (zh) 2009-05-06
US20090109996A1 (en) 2009-04-30
CN101425966B (zh) 2012-11-14

Similar Documents

Publication Publication Date Title
JP5285375B2 (ja) ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法
US11068318B2 (en) Dynamic thread status retrieval using inter-thread communication
US8040799B2 (en) Network on chip with minimum guaranteed bandwidth for virtual communications channels
JP5363064B2 (ja) ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
US8490110B2 (en) Network on chip with a low latency, high bandwidth application messaging interconnect
JP5294806B2 (ja) デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)
US8010750B2 (en) Network on chip that maintains cache coherency with invalidate commands
US7917703B2 (en) Network on chip that maintains cache coherency with invalidate commands
US8494833B2 (en) Emulating a computer run time environment
US8020168B2 (en) Dynamic virtual software pipelining on a network on chip
US8726295B2 (en) Network on chip with an I/O accelerator
US8473667B2 (en) Network on chip that maintains cache coherency with invalidation messages
US8526422B2 (en) Network on chip with partitions
US8214845B2 (en) Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data
US20090245257A1 (en) Network On Chip
US20090271172A1 (en) Emulating A Computer Run Time Environment
US20090282211A1 (en) Network On Chip With Partitions
US20100269123A1 (en) Performance Event Triggering Through Direct Interthread Communication On a Network On Chip
US20090210592A1 (en) Network On Chip With A Low Latency, High Bandwidth Application Messaging Interconnect
WO2013108100A1 (en) External auxiliary execution unit interface to off-chip auxiliary execution unit
US10228968B2 (en) Network interface device that alerts a monitoring processor if configuration of a virtual NID is changed

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110817

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120321

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120608

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20120608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120724

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130326

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130514

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130531

LAPS Cancellation because of no payment of annual fees