JP2009129447A - デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造) - Google Patents

デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造) Download PDF

Info

Publication number
JP2009129447A
JP2009129447A JP2008285000A JP2008285000A JP2009129447A JP 2009129447 A JP2009129447 A JP 2009129447A JP 2008285000 A JP2008285000 A JP 2008285000A JP 2008285000 A JP2008285000 A JP 2008285000A JP 2009129447 A JP2009129447 A JP 2009129447A
Authority
JP
Japan
Prior art keywords
network
partition
partitions
block
router
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.)
Granted
Application number
JP2008285000A
Other languages
English (en)
Other versions
JP5294806B2 (ja
Inventor
D Hoover Russell
ラッセル・ディー・フーバー
E Schardt Paul
ポール・イー・スチャード
Eric O Mejdrich
エリック・オー・メドリッチ
Robert A Shearer
ロバート・エー・シーラー
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
Priority claimed from US11/945,396 external-priority patent/US8526422B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009129447A publication Critical patent/JP2009129447A/ja
Application granted granted Critical
Publication of JP5294806B2 publication Critical patent/JP5294806B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Abstract

【課題】機械可読媒体において具体化されるデザイン構造を提供する。
【解決手段】このデザイン構造の実施態様はネットワーク・オン・チップ(‘NOC’)を含み、該NOCは、統合プロセッサ(‘IP’)ブロックと、ルータと、メモリ通信コントローラと、ネットワーク・インターフェース・コントローラとを含み、各IPブロックはメモリ通信コントローラとネットワーク・インターフェース・コントローラとを通してルータに適合させられ、各メモリ通信コントローラはIPブロックとメモリとの間の通信を制御し、各ネットワーク・インターフェース・コントローラはルータを通してIPブロック間通信を制御し、該ネットワークはパーティションに組織され、各パーティションは少なくとも1つのIPブロックを含み、各パーティションに1つの独自の物理メモリ・アドレス空間への排他的アクセスが割り当てられ、1つ以上のアプリケーションが該パーティションのうちの1つ以上のパーティション上で実行する。
【選択図】図5

Description

本発明は、デザイン構造に関し、特にネットワーク・オン・チップ(‘NOC’)でのデータ処理のためのデザイン構造に関する。
本出願は、2007年11月27日に出願された米国特許出願第11/945,396号、および、その一部継続出願である2008年4月14日に出願された米国特許出願第12/102,038号について、これらの出願を基礎にして優先権を主張する。
広く使われているデータ処理のパラダイムが2つある、すなわち、多重命令多重データ(‘MIMD’)と単一命令多重データ(‘SIMD’)とである。MIMD処理では、コンピュータ・プログラムは、通例、大量の共有されるメモリへの高速ランダム・アクセスを各々必要とする、幾分独立して動作する1つ以上の実行のスレッドとして特徴付けられる。MIMDは、例えば、ワードプロセッサ、スプレッドシート、データベース・マネージャ、例えばブラウザのような多くの形の電気通信などを含む、それに合う特定のクラスのプログラムのために最適化されたデータ処理パラダイムである。
SIMDは、多数のプロセッサ上で並行して同時に動作する単一のプログラムにより特徴付けられ、そのプログラムの各インスタンスは同じ仕方で、ただし別々のデータ・アイテムに対して、作用する。SIMDは、例えば、多くの形のデジタル信号処理、ベクトル処理などを含む、それに合う特定のクラスのアプリケーションのために最適化されているデータ処理パラダイムである。
しかし、純粋なSIMDデータ処理も純粋なMIMDデータ処理もそれのために最適化されていない、例えば多くの実世界シミュレーション・プログラムを含む、別のクラスのアプリケーションがある。そのクラスのアプリケーションは、並行処理から利益を得ると共に、また共有されるメモリへの高速ランダム・アクセスを必要とするアプリケーションを含む。そのクラスのプログラムのためには、純粋なMIMDシステムは高度の並行性を提供せず、純粋なSIMDシステムは主要な記憶装置への高速ランダム・アクセスを提供しない。
デザイン構造が提供される。このデザイン構造の実施態様はネットワーク・オン・チップ(‘NOC’)を含み、該NOCは、統合プロセッサ(‘IP’)ブロックと、ルータと、メモリ通信コントローラと、ネットワーク・インターフェース・コントローラとを含み、各IPブロックはメモリ通信コントローラとネットワーク・インターフェース・コントローラとを通してルータに適合させられ、各メモリ通信コントローラはIPブロックとメモリとの間の通信を制御し、各ネットワーク・インターフェース・コントローラはルータを通してIPブロック間通信を制御し、該ネットワークはパーティションに組織され、各パーティションは少なくとも1つのIPブロックを含み、各パーティションに独自の物理メモリ・アドレス空間への排他的アクセスが割り当てられ、1つ以上のアプリケーションが該パーティションのうちの1つ以上のパーティション上で実行する。
本発明の上記のおよびその他の目的、特徴および利点は、添付図面に示されている本発明の代表的実施態様についての以下のより具体的な記述から明らかとなろう。添付図面では、同じ参照番号は一般に本発明の代表的実施態様の同じ部分を表す。
添付図面を始めに図1から参照して、本発明に従うNOCでのデータ処理のための代表的な装置および方法を説明する。図1は、本発明の実施態様に従うNOCでのデータ処理に有益な代表的コンピュータ(152)を含む自動計算機のブロック図を示す。図1のコンピュータ(152)は少なくとも1つのコンピュータ・プロセッサ(156)または‘CPU’とランダム・アクセス・メモリ(168)(‘RAM’)とを含み、このRAMは、高速メモリ・バス(166)とバス・アダプタ(158)とを通してプロセッサ(156)とコンピュータ(152)の他のコンポーネントとに接続されている。
RAM(168)には例えばワード・プロセッシング、スプレッドシート、データベース操作、ビデオ・ゲーム、株式市場シミュレーション、原子量子過程シミュレーションなどの特定のデータ処理タスクを実行するためのユーザ・レベルのコンピュータ・プログラム命令のモジュールであるアプリケーション・プログラム(184)、または他のユーザ・レベル・アプリケーションが格納されている。RAM(168)にはオペレーティング・システム(154)も格納されている。本発明の実施態様に従うNOCでのデータ処理に役立つオペレーティング・システムは、UNIX(The Open Group の商標)、Linux(Linus Torvalds の商標)、Microsoft XP(Microsoft Corporation の商標)、AIX(IBMCorporation の商標)、IBMのi5/OS(IBM Corporation の商標)、および当業者が想到する他のものを含む。図1の例におけるオペレーティング・システム(154)およびアプリケーション(184)はRAM(168)の中に示されているけれども、その様なソフトウェアの多くのコンポーネントは、通例、例えばディスク・ドライブ(170)などの不揮発性メモリにも格納される。
例としてのコンピュータ(152)は本発明の実施態様に従う2つの例としてのNOC、すなわちビデオ・アダプタ(209)とコプロセッサ(157)と、を含む。ビデオ・アダプタ(209)は、表示スクリーンまたはコンピュータ・モニタのような表示装置(180)へのグラフィック出力のために特別に設計されたI/Oアダプタの例である。ビデオ・アダプタ(209)は、高速ビデオ・バス(164)と、バス・アダプタ(158)と、高速バスであるフロント・サイド・バス(162)とを通してプロセッサ(156)に接続されている。
例としてのNOCコプロセッサ(157)は、バス・アダプタ(158)と、高速バスであるフロント・サイド・バス(162,163)とを通してプロセッサ(156)に接続されている。図1のNOCコプロセッサは、主なプロセッサ(156)の命令を受けて特定のデータ処理タスクを高速化するように最適化されている。
図1の例としてのNOCビデオ・アダプタ(209)とNOCコプロセッサ(157)とは本発明の実施態様に従うNOCをそれぞれ含んでおり、該NOCは、統合プロセッサ(‘IP’)ブロックと、ルータと、メモリ通信コントローラと、ネットワーク・インターフェース・コントローラとを含み、各IPブロックはメモリ通信コントローラとネットワーク・インターフェース・コントローラとを通してルータに適合させられ、各メモリ通信コントローラはIPブロックとメモリとの間の通信を制御し、各ネットワーク・インターフェース・コントローラはルータを通してIPブロック間通信を制御する。NOCビデオ・アダプタとNOCコプロセッサとは、並行処理を用いるプログラムのために最適化されており、共有されるメモリへの高速ランダム・アクセスをやはり必要とする。該NOC構造と動作の詳細を以下で図2−図4を参照して論じる。
図1のコンピュータ(152)は、拡張バス(160)とバス・アダプタ(158)とを通してプロセッサ(156)とコンピュータ(152)の他のコンポーネントとに結合されたディスク・ドライブ・アダプタ(172)を含む。ディスク・ドライブ・アダプタ(172)は、ディスク・ドライブ(170)の形の不揮発性データ記憶装置をコンピュータ(152)に接続する。本発明の実施態様に従うNOCでのデータ処理のためにコンピュータにおいて役に立つディスク・ドライブ・アダプタは、インテグレーテッド・ドライブ・エレクトロニクス(‘IDE’)アダプタ、スモール・コンピュータ・システム・インターフェース(‘SCSI’)アダプタ、および当業者が想到する他のものを含む。光ディスク・ドライブ、電気的に消去可能なプログラマブルな読み出し専用メモリ(いわゆる‘EEPROM’または‘フラッシュ’メモリ)、RAMドライブ、および当業者が想到する他のものなどの不揮発性コンピュータ・メモリも実装され得る。
図1の例としてのコンピュータ(152)は1つ以上の入出力(‘I/O’)アダプタ(178)を含む。I/Oアダプタは、例えば、コンピュータ表示スクリーンのような表示装置への出力と、またキーボードおよびマウスのようなユーザ入力装置(181)からのユーザ入力とを制御するためのソフトウェア・ドライバとコンピュータ・ハードウェアとを通して、ユーザ指向入出力を実現する。
図1の代表的なコンピュータ(152)は、他のコンピュータ(182)とのデータ通信のための、またデータ通信ネットワーク(101)とのデータ通信のための、通信アダプタ(167)を含む。その様なデータ通信は、RS−232接続を通して、ユニバーサル・シリアル・バス(‘USB’)のような外部バスを通して、IPデータ通信ネットワークのようなデータ通信ネットワークを通して、また当業者が想到する他の方法で、シリアルに実行され得る。通信アダプタは、1つのコンピュータがそれを通してデータ通信メッセージを他のコンピュータに直接にあるいはデータ通信ネットワークを通して送信するハードウェア・レベルのデータ通信を実現する。本発明の実施態様に従うNOCでのデータ処理に役立つ通信アダプタの例は、有線ダイヤルアップ通信のためのモデム、有線データ通信ネットワーク通信のためのイーサネット(IEEE802.3)アダプタ、および無線データ通信ネットワーク通信のための802.11アダプタを含む。
更なる説明のために、図2は、本発明の実施態様に従う例としてのNOC(102)の機能ブロック図を示す。図1の例におけるNOCは‘チップ’(100)において、すなわち集積回路において実現される。図2のNOC(102)は、統合プロセッサ(‘IP’)ブロック(104)と、ルータ(110)と、メモリ通信コントローラ(106)と、ネットワーク・インターフェース・コントローラ(108)とを含む。各IPブロック(104)は、メモリ通信コントローラ(106)とネットワーク・インターフェース・コントローラ(108)とを通してルータ(110)に適合させられている。各メモリ通信コントローラはIPブロックとメモリとの間の通信を制御し、各ネットワーク・インターフェース・コントローラ(108)はルータ(110)を通してIPブロック間の通信を制御する。
図2のNOC(102)において、各IPブロックは、該NOC内でのデータ処理のための構成要素として用いられた同期または非同期の論理設計の再使用可能な単位を表す。‘IPブロック’という用語は、時には、‘知的財産権(intellectual property)ブロック’と展開され、実際上、IPブロックを、半導体回路の他のユーザまたは設計者にライセンスされるべき一当事者により所有されるデザインとして、すなわち一当事者の知的財産権として、指定する。しかし、本発明の範囲内では、IPブロックが特定の所有権に従属する必要は無くて、この用語はこの明細書において常に‘統合プロセッサ(integrated processor)ブロックと展開される。ここで明示されるIPブロックは、知的財産権の対象であってもなくてもよい論理、セル、またはチップ・レイアウト・デザインの再使用可能な単位である。IPブロックは、ASICチップ・デザインまたはFPGA論理デザインとして形成され得る論理コアである。
IPブロックを類推により説明する1つの仕方は、IPブロックはNOCデザインにとってはコンピュータ・プログラミングにとってのライブラリあるいは印刷回路基板デザインにとっての個別集積回路コンポーネントと同様であると言うことである。本発明の実施態様に従うNOCでは、IPブロックは、一般的ゲート・ネットリストとして、完全な特殊目的のまたは汎用のマイクロプロセッサとして、あるいは当業者が想到し得る他の仕方で、実装され得る。ネットリストは、高レベル・プログラム・アプリケーションのためのアセンブリ・コード・リスティングに類似する、IPブロックの論理機能のブール代数表示(ゲート、スタンダード・セル)である。NOCは、例えば、ベリログ(Verilog)またはVHDLのようなハードウェア記述言語で記述される合成可能な形でも実装され得る。ネットリストおよび合成可能なインプリメンテーションに加えて、NOCは低レベルの物理的記述でも配布され得る。SERDES、PLL、DAC、ADCなどのようなアナログIPブロック・エレメントは、GDSIIのようなトランジスタ・レイアウト・フォーマットで配布され得る。IPブロックのデジタル・エレメントも、時にはレイアウト・フォーマットで提供される。
図2の例において各IPブロック(104)は、メモリ通信コントローラ(106)を通してルータ(110)に適合させられる。各メモリ通信コントローラは、IPブロックとメモリとの間のデータ通信を提供する同期論理回路と非同期論理回路の集合である。IPブロックとメモリとの間のその様な通信の例は、メモリ・ロード命令とメモリ・ストア命令とを含む。メモリ通信コントローラ(106)について、以下で図3を参照してより詳しく説明する。
図2の例において各IPブロック(104)は、また、ネットワーク・インターフェース・コントローラ(108)を通してルータ(110)に適合させられている。各ネットワーク・インターフェース・コントローラ(108)は、IPブロック(104)間でのルータ(110)を通しての通信を制御する。IPブロック間での通信の例は、並列のアプリケーションにおいて、またパイプライン型アプリケーションにおいて、IPブロック間のデータを処理するためにデータおよび命令を伝えるメッセージを含む。ネットワーク・インターフェース・コントローラ(108)について、以下で図3を参照してより詳しく説明する。
図2の例において各IPブロック(104)はルータ(110)に適合させられている。ルータ(110)とルータ間のリンク(120)とはNOCのネットワーク動作を実現する。リンク(120)は、全てのルータを接続する物理的な並列ワイヤ・バスで実現されるパケット構造である。すなわち、各リンクは、全てのヘッダ情報とペイロード・データとを含むデータ交換パケット全体を同時に収容するために充分に広いバスで実現される。例えばパケット構造が8バイトの1つのヘッダと56バイトのペイロード・データとを含んで64バイトを含むならば、各リンクに対するワイヤ・バスは64バイト関連で、512本のワイヤである。さらに、各リンクは双方向的であるので、リンク・パケット構造が64バイトを含むならば、ワイヤ・バスは、実際には、各ルータと、ネットワーク内の隣接ルータの各々との間に1024本のワイヤを含む。1つのメッセージは2つ以上のパケットを含み得るけれども、各パケットはワイヤ・バスの幅に正確にはまる。ルータとワイヤ・バスの各セクションとの間の接続部がポートと称されるのであれば、各ルータは5個のポートを、すなわちネットワークでのデータ伝送の4方向の各々のために1つずつのポートと、メモリ通信コントローラおよびネットワーク・インターフェース・コントローラを通して該ルータを特定のIPブロックに適合させるための第5のポートと、を含む。
図2の例において各メモリ通信コントローラ(106)は、IPブロックとメモリとの間の通信を制御する。メモリは、オフ・チップ・メモリ(メインRAM)(112)と、メモリ通信コントローラ(106)を通してIPブロックに直接接続されたメモリ(115)と、IPブロックとして動作可能にされるオン・チップ・メモリ(114)と、オン・チップ・キャッシュとを含むことができる。図2のNOCでは、例えばオン・チップ・メモリ(114,115)のいずれも、オン・チップ・キャッシュ・メモリとして実現され得る。これらの形のメモリは全て同じアドレス空間、物理アドレスあるいは仮想アドレス、に配置されることができ、IPブロックに直接取り付けられるメモリについてもそうである。従って、メモリ・アドレス指定されたメッセージはIPブロックに関して完全に双方向的であることができる。なぜならば、その様なメモリはネットワーク上の何処のどのIPブロックからも直接アドレス指定され得るからである。IPブロック上のメモリ(114)は、そのIPブロックから、あるいは該NOC内の他の任意のIPブロックから、アドレス指定され得る。メモリ通信コントローラに直接取り付けられているメモリ(115)は、そのメモリ通信コントローラによってネットワークに適合させられているIPブロックによりアドレス指定されることができ、また該NOC内の何処の他のどのIPブロックからもアドレス指定され得る。
該NOC例は2つのメモリ管理ユニット(‘MMU’)(107,109)を含んでおり、本発明の実施態様に従うNOCのための2つの代替メモリ・アーキテクチャを示す。MMU(107)はIPブロックと共に実現されており、このIPブロック内のプロセッサが仮想メモリにおいて動作することを可能にし、同時にNOCの残りのアーキテクチャ全体が物理メモリ・アドレス空間において動作することを可能にする。MMU(109)はオフ・チップで実現され、データ通信ポート(116)を通してNOCに接続されている。ポート(116)は、NOCとMMUとの間で信号を伝導するために必要とされるピンおよびその他の相互接続部と、メッセージ・パケットをNOCパケット・フォーマットから外部MMU(109)により要求されるバス・フォーマットに変換するための充分なインテリジェンスとを含む。MMUが外部に配置されているということは、NOCの全てのIPブロック内の全プロセッサが仮想メモリ・アドレス空間において動作でき、オフ・チップ・メモリの物理アドレスへの全ての変換がオフ・チップMMU(109)によって処理されることを意味する。
MMU(107,109)の使用により示される2つのメモリ・アーキテクチャに加えて、データ通信ポート(118)は、本発明の実施態様に従うNOCにおいて有益な第3のメモリ・アーキテクチャを示す。ポート(118)は、NOC(102)のIPブロック(104)とオフ・チップ・メモリ(112)との間の直接接続を提供する。処理経路にMMUが無いので、このアーキテクチャは、NOCの全てのIPブロックによる物理アドレス空間の利用を提供する。そのアドレス空間を双方向的に共有して、NOCの全IPブロックは、ポート(118)に直接接続されているIPブロックを通して向けられたロードおよびストアを含むメモリ・アドレス指定されたメッセージにより該アドレス空間内のメモリにアクセスすることができる。ポート(118)は、NOCとオフ・チップ・メモリ(112)との間で信号を伝導するために必要とされるピンおよびその他の相互接続部と、メッセージ・パケットをNOCパケット・フォーマットからオフ・チップ・メモリ(112)により要求されるバス・フォーマットに変換するための充分なインテリジェンスとを含む。
図2の例では、IPブロックのうちの1つはホスト・インターフェース・プロセッサ(105)と称されている。ホスト・インターフェース・プロセッサ(105)は、NOCと、NOCをそれにインストールできるホスト・コンピュータ(152)との間のインターフェースを提供し、また、例えば、ホスト・コンピュータからのNOCデータ処理リクエストのIPブロック間での受信およびディスパッチを含むデータ処理サービスをNOC上の他のIPブロックに提供する。NOCは、例えば、図1に関して上で記述されたように、より大きなコンピュータ(152)上のビデオ・グラフィックス・アダプタ(209)またはコプロセッサ(157)を実現することができる。図2の例においては、ホスト・インターフェース・プロセッサ(105)は、データ通信ポート(115)を通して、より大きなホスト・コンピュータに接続されている。ポート(115)は、NOCとホスト・コンピュータとの間で信号を伝導するために必要とされるピンおよびその他の相互接続部と、メッセージ・パケットをNOC・フォーマットからホスト・コンピュータ(152)により要求されるバス・フォーマットに変換するための充分なインテリジェンスとを含む。図1のコンピュータのNOCコプロセッサの例では、その様なポートは、NOCコプロセッサ(157)のリンク構造と、NOCコプロセッサ(157)およびバス・アダプタ(158)の間のフロント・サイド・バス(163)のために必要とされるプロトコルとの間のデータ通信フォーマット変換を提供する。
更なる説明のために、図3は、本発明の実施態様に従う更なる例としてのNOCの機能ブロック図を示す。図3のNOC例はチップ(図2の100)上に実装され、図3のNOC(102)は統合プロセッサ(‘IP’)ブロック(104)と、ルータ(110)と、メモリ通信コントローラ(106)と、ネットワーク・インターフェース・コントローラ(108)とを含む、という点において図3のNOC例は図2のNOC例に似ている。各IPブロック(104)は、メモリ通信コントローラ(106)とネットワーク・インターフェース・コントローラ(108)とを通してルータ(110)に適合させられている。各メモリ通信コントローラはIPブロックとメモリとの間の通信を制御し、各ネットワーク・インターフェース・コントローラ(108)はルータ(110)を通してIPブロック間通信を制御する。図3の例では、1セット(122)の、メモリ通信コントローラ(106)とネットワーク・インターフェース・コントローラ(108)とを通してルータ(110)に適合させられているIPブロック(104)が、その構造および動作のより詳しい説明を助けるために展開されている。図3の例において全てのIPブロックと、メモリ通信コントローラと、ネットワーク・インターフェース・コントローラと、ルータとは、展開されているセット(122)と同様に構成されている。
図3の例において、各IPブロック(104)は、コンピュータ・プロセッサ(126)とI/O機能(124)とを含む。この例では、コンピュータ・メモリは、各IPブロック(104)内のランダム・アクセス・メモリ(‘RAM’)(128)のセグメントにより表されている。図2の例に関して上で記述されたメモリは、各IPブロックにおけるその内容が該NOC内の任意のIPブロックからアドレス指定可能でかつアクセス可能である物理的アドレス空間のセグメントを占めることができる。各IPブロックのプロセッサ(126)と、I/O機能(124)と、ランダム・アクセス・メモリ(128)とは、実際上IPブロックを概してプログラマブルなマイクロコンピュータとして実現する。しかし、上で説明されたように、本発明の範囲内で、IPブロックは、一般的に、NOC内でのデータ処理のための構成要素として用いられた同期または非同期の論理の再使用可能な単位を表す。従って、IPブロックを概してプログラマブルなマイクロコンピュータとして実現することは、説明の目的上有益な普通の実施態様ではあるけれども、本発明の限定事項ではない。
図3のNOC(102)において、各メモリ通信コントローラ(106)は複数のメモリ通信実行エンジン(140)を含む。各メモリ通信実行エンジン(140)は、ネットワークとIPブロック(104)との間の双方向メモリ通信命令フロー(142,144,145)を含むIPブロック(104)からのメモリ通信命令を実行するように動作可能にされる。メモリ通信コントローラにより実行されるメモリ通信命令は、特定のメモリ通信コントローラを通してルータに適合させられているIPブロックからだけではなくて、NOC(102)内の何処のどのIPブロック(104)からも生じ得る。すなわち、NOC内のどのIPブロックも、メモリ通信命令を生成し、そのメモリ通信命令を実行させるためにそのメモリ通信命令を、該NOCのルータを通して、他のIPブロックに関連付けられている他のメモリ通信コントローラに送信することができる。その様なメモリ通信命令は、例えば、変換索引バッファ制御命令、キャッシュ制御命令、バリヤー命令、メモリ・ロード命令、メモリ・ストア命令を含み得る。
各メモリ通信実行エンジン(140)は、完全なメモリ通信命令を別々に、他のメモリ通信実行エンジンと並行して、実行するように動作可能にされる。メモリ通信実行エンジンは、メモリ通信命令の並行スループットのために最適化されたスケーラブルなメモリ・トランザクション・プロセッサを実現する。メモリ通信コントローラ(106)は、その全てが複数のメモリ通信命令の同時実行のために同時に動作する複数のメモリ通信実行エンジン(140)をサポートする。新しい通信命令はメモリ通信コントローラ(106)によりメモリ通信実行エンジン(140)に割り当てられ、メモリ通信実行エンジン(140)は複数のレスポンス・イベントを同時に受け入れることができる。この例では、メモリ通信実行エンジン(140)の全ては同一である。従って、1つのメモリ通信コントローラ(106)によって同時に処理され得るメモリ通信命令の数をスケーリングすることは、メモリ通信実行エンジン(140)の数をスケーリングすることによって実行される。
図3のNOC(102)では、各ネットワーク・インターフェース・コントローラ(108)は、通信命令をルータ(110)を通してのIPブロック(104)間での伝送のためにコマンド・フォーマットからネットワーク・パケット・フォーマットに変換するように動作可能にされる。通信命令は、IPブロック(104)またはメモリ通信コントローラ(106)によってコマンド・フォーマットに定式化され、コマンド・フォーマットでネットワーク・インターフェース・コントローラ(108)に提供される。コマンド・フォーマットは、IPブロック(104)とメモリ通信コントローラ(106)とのアーキテクチャ・レジスタ・ファイルに従うネイティブのフォーマットである。ネットワーク・パケット・フォーマットは、ネットワークのルータ(110)を通しての伝送のために必要とされるフォーマットである。各々のその様なメッセージは1つ以上のネットワーク・パケットから構成される。ネットワーク・インターフェース・コントローラでコマンド・フォーマットからパケット・フォーマットに変換されるその様な通信命令の例は、IPブロックとメモリとの間のメモリ・ロード命令とメモリ・ストア命令とを含む。その様な通信命令は、データを伝えるIPブロック間のメッセージを送る通信命令と、並列アプリケーションとパイプライン型アプリケーションにおいてIPブロック間のデータを処理するための命令とをも含み得る。
図3のNOC(102)において、各IPブロックは、メモリへの、またメモリからの、メモリ・アドレス・ベースの通信メッセージを、そのIPブロックのメモリ通信コントローラを通して、またその後にそのネットワーク・インターフェース・コントローラを通してネットワークに送るように動作可能にされる。メモリ・アドレス・ベースの通信メッセージは、IPブロックのメモリ通信コントローラのメモリ通信実行エンジンにより実行されるロード命令またはストア命令のようなメモリ・アクセス命令である。このようなメモリ・アドレス・ベースの通信メッセージは、通例、IPブロックから生じ、コマンド・フォーマットに定式化され、実行されるべくメモリ通信コントローラに渡される。
アクセスされるべき任意のメモリはNOC内の任意のメモリ通信コントローラに直接取り付けられたオン・チップまたはオフ・チップの物理メモリ・アドレス空間の中の何処にでも置かれることができ、あるいは、結局、どのIPブロックが任意の特定のメモリ・アドレス・ベースの通信メッセージを発したかということに関わらずにNOCの任意のIPブロックを通してアクセスされ得るので、多くのメモリ・アドレス・ベースの通信メッセージはメッセージ・トラフィックで実行される。メッセージ・トラフィックで実行される全てのメモリ・アドレス・ベースの通信メッセージは、コマンド・フォーマットからパケット・フォーマットに変換(136)されてネットワークを通してメッセージで伝送されるべくメモリ通信コントローラから関連するネットワーク・インターフェース・コントローラに送られる。パケット・フォーマットに変換するとき、ネットワーク・インターフェース・コントローラは、また、メモリ・アドレス・ベースの通信メッセージによりアクセスされるべき1つまたは複数のメモリ・アドレスに依存してそのパケットのためのネットワーク・アドレスを特定する。メモリ・アドレス・ベースのメッセージは、メモリ・アドレスでアドレス指定される。各メモリ・アドレスは、ネットワーク・インターフェース・コントローラによって、通例或る範囲の物理メモリ・アドレスに対して責任を有するメモリ通信コントローラのネットワーク位置であるネットワーク・アドレスにマッピングされる。メモリ通信コントローラ(106)のネットワーク位置は、当然、そのメモリ通信コントローラの関連するルータ(110)と、ネットワーク・インターフェース・コントローラ(108)と、IPブロック(104)とのネットワーク位置でもある。各ネットワーク・インターフェース・コントローラの中の命令変換ロジック(136)は、メモリ・アドレス・ベースの通信メッセージをNOCのルータを通して伝送する目的のためにメモリ・アドレスをネットワーク・アドレスに変換することができる。
ネットワークのルータ(110)からメッセージ・トラフィックを受け取ると、各ネットワーク・インターフェース・コントローラ(108)は、各パケットをメモリ命令を目的として検査する。メモリ命令を含む各パケットは、受信したネットワーク・インターフェース・コントローラと関連付けられているメモリ通信コントローラ(106)に渡され、これは、そのメモリ命令を、該パケットの残りのペイロードを更なる処理のためにIPブロックに送る前に、実行する。この様にして、IPブロックによるデータ処理をサポートするために、特定のメモリ内容に依存するメッセージからの命令の実行を該IPブロックが開始する前に、メモリ内容が常に作成される。
図3のNOC(102)において、各IPブロック(104)は、そのメモリ通信コントローラ(106)を迂回して該IPブロックのネットワーク・インターフェース・コントローラ(108)を通してIPブロック間のネットワーク・アドレス指定された通信メッセージ(146)をネットワークに直接送るように動作可能にされる。ネットワーク・アドレス指定された通信メッセージは、ネットワーク・アドレスにより他のIPブロックに向けられるメッセージである。その様なメッセージは、パイプライン型アプリケーションにおいては作業データを伝送し、SIMDアプリケーションにおいてはIPブロック間での単一プログラム処理のために複数のデータを伝送し、また当業者が想到するように伝送をする。このようなメッセージは、該メッセージがNOCのルータを通して向けられるべきネットワーク・アドレスを知っている発信IPブロックによって始めからネットワーク・アドレス指定されているという点において、メモリ・アドレス・ベースの通信メッセージとは異なる。このようなネットワーク・アドレス指定された通信メッセージは、該IPブロックによってそのI/O機能(124)を通して該IPブロックのネットワーク・インターフェース・コントローラにコマンド・フォーマットで直接送られ、その後に該ネットワーク・インターフェース・コントローラによってパケット・フォーマットに変換され、該NOCのルータを通して他のIPブロックに送られる。このようなネットワーク・アドレス指定された通信メッセージ(146)は双方向的であって、任意の具体的なアプリケーションにおけるその使用方法に依存して該NOCの各IPブロックへ、またその各IPから、進む可能性を有する。しかし、各ネットワーク・インターフェース・コントローラは、その様な通信メッセージを、関連するルータに送り(142)、またその関連するルータから受け取る(142)ように動作可能にされ、また各ネットワーク・インターフェース・コントローラは、その様な通信メッセージを関連するメモリ通信コントローラ(106)を迂回して関連するIPブロックに直接送り(146)、また該IPブロックから直接受け取る(146)ように動作可能にされる。
図3の例において各ネットワーク・インターフェース・コントローラ(108)は、また、ネットワーク・パケットをタイプにより特徴付ける仮想チャネルをネットワーク上に実現するようにも動作可能にされる。各ネットワーク・インターフェース・コントローラ(108)は仮想チャネル・インプリメンテーション・ロジック(138)を含んでおり、このロジックは、各通信命令をタイプにより分類して、該命令をNOC上での伝送のためにパケット形でルータ(110)に渡す前に命令のタイプをネットワーク・パケット・フォーマットの1つのフィールドに記録する。通信命令タイプの例は、IPブロック間ネットワーク・アドレス・ベース・メッセージ、リクエスト・メッセージ、対リクエスト応答メッセージ、キャッシュに向けられた無効化メッセージ、メモリ・ロード・メッセージ、メモリ・ストア・メッセージ、対メモリ・ロード応答メッセージ、などを含む。
図3の例において各ルータ(110)はルーティング・ロジック(130)と、仮想チャネル制御ロジック(132)と、仮想チャネル・バッファ(134)とを含む。ルーティング・ロジックは、通例、ルータ(110)と、リンク(120)と、ルータ間のバス・ワイヤとにより形成されるネットワークにおけるデータ通信のためのデータ通信プロトコル・スタックを実現する同期および非同期ロジックのネットワークとして実現される。ルーティング・ロジック(130)は、当業者がオフ・チップのネットワークにおいてルーティング・テーブルと関連付けるかもしれない機能を含んでいるが、ルーティング・テーブルは少なくとも或る実施態様においてはNOCで用いるには余りに低速で扱いにくいと考えられる。同期および非同期ロジックのネットワークとして実現されるルーティング・ロジックは、単一のクロック・サイクルと同じ速さでルーティング決定を行うように構成され得る。この例におけるルーティング・ロジックは、ルータにおいて受信された各パケットを転送するためのポートを選択することによってパケットをルーティングする。各パケットは、そのパケットがそこへルーティングされるべきネットワーク・アドレスを含む。この例において各ルータは5つのポート、すなわちバス・ワイヤ(120−A,120−B,120−C,120−D)を通して他のルータに接続されている4つのポート(121)と、ネットワーク・インターフェース・コントローラ(108)とメモリ通信コントローラ(106)とを通して各ルータをその関連IPブロック(104)に接続する第5のポート(123)と、を含む。
上でメモリ・アドレス・ベースの通信について記述したとき、各メモリ・アドレスはネットワーク・インターフェース・コントローラによってメモリ通信コントローラのネットワーク位置であるネットワーク・アドレスにマッピングされると記述された。メモリ通信コントローラ(106)のネットワーク位置は、当然、そのメモリ通信コントローラと関連付けられたルータ(110)と、ネットワーク・インターフェース・コントローラ(108)と、IPブロック(104)とのネットワーク位置でもある。従って、IPブロック間の、あるいはネットワーク・アドレス・ベースの通信では、アプリケーション・レベルのデータ処理がネットワーク・アドレスを、NOCのルータと、リンクと、バス・ワイヤとにより形成されるネットワークの中のIPブロックの位置と見なすというのも普通のことである。図2は、その様なネットワークの一組織が行と列のメッシュであることを示しており、そのメッシュにおいては、各ネットワーク・アドレスは、例えば、そのメッシュの関連付けられたルータ、IPブロック、メモリ通信コントローラ、およびネットワーク・インターフェース・コントローラの各セットのための一意の識別子として、または該メッシュにおける各々のその様なセットのx,y座標として、実現され得る。
図3のNOC(102)では、各ルータ(110)は2つ以上の仮想通信チャネルを実現し、その各仮想通信チャネルは通信タイプによって特徴付けられる。通信命令タイプ、従って仮想チャネル・タイプは、上記のもの、すなわちIPブロック間ネットワーク・アドレス・ベース・メッセージ、リクエスト・メッセージ、対リクエスト応答メッセージ、キャッシュに向けられた無効化メッセージ、メモリ・ロード・メッセージ、メモリ・ストア・メッセージ、対メモリ・ロード応答メッセージを含む。仮想チャネルのサポートに、図3の例の各ルータ(110)は仮想チャネル制御ロジック(132)と仮想チャネル・バッファ(134)も含む。仮想チャネル制御ロジック(132)は、各々の受信したパケットに割り当てられている通信タイプを調べ、各パケットを、ポートを通してNOC上の隣接ルータに伝送するべく、その通信タイプのための発信仮想チャネル・バッファに置く。
各仮想チャネル・バッファ(134)は有限の記憶空間を有する。短時間のうちに多数のパケットが受信されたときには、仮想チャネル・バッファが満ちて、それ以上のパケットを該バッファ内に入れられなくなる可能性がある。他のプロトコルでは、そのバッファが満ちている仮想チャネルで到着したパケットは落とされる。しかし、この例の各仮想チャネル・バッファ(134)は、仮想チャネルでの送信を中断するように、すなわち、特定の通信タイプのパケットの送信を中断するように仮想チャネル制御ロジックを通して周囲のルータに通告するようにバス・ワイヤの制御信号で動作可能にされる。1つの仮想チャネルがその様に中断されたとき、他の全ての仮想チャネルは影響を受けず、全能力で動作し続けることができる。該制御信号は逆に各ルータを通して各ルータの関連するネットワーク・インターフェース・コントローラ(108)に伝えられる。各ネットワーク・インターフェース・コントローラは、その様な信号を受信すると、その関連するメモリ通信コントローラからあるいはその関連するIPブロック(104)から、中断された仮想チャネルのための通信命令を受け取ることを拒否するように構成されている。この様に、1つの仮想チャネルの中断は、逆に発信IPブロックに至るまで、その仮想チャネルを実現する全てのハードウェアに影響を及ぼす。
仮想チャネルにおけるパケット伝送を中断することの1つの効果は、図3のアーキテクチャにおいてパケットが決して落とされないことである。例えばインターネット・プロトコルのような信頼できないプロトコルにおいてパケットが落とされるかもしれないという事態にルータが遭遇したとき、図3の例のルータは、自分の仮想チャネル・バッファ(134)と自分の仮想チャネル制御ロジック(132)とによって、バッファ空間が再び利用できるようになるまで仮想チャネルにおけるパケットの全伝送を中断し、パケットを落とす必要を無くする。従って、図3のNOCは、ハードウェアの極めて薄い層で非常に信頼性の高いネットワーク通信プロトコルを実現する。
更なる説明のために、図4は本発明の実施態様に従うNOCでのデータ処理のための代表的方法を説明するフローチャートを示す。図4の方法は、本明細書において上で記載されたものと同様のNOCにおいて、すなわちIPブロック(図3の104)と、ルータ(図3の110)と、メモリ通信コントローラ(図3の106)と、ネットワーク・インターフェース・コントローラ(図3の108)とを伴ってチップ(図3の100)上に実現されるNOC(図3の102)において、実行される。各IPブロック(図3の104)は、メモリ通信コントローラ(図3の106)とネットワーク・インターフェース・コントローラ(図3の108)とを通してルータ(図3の110)に適合させられる。図4の方法において、各IPブロックは、NOC内でのデータ処理のための構成要素として用いられた同期または非同期の論理設計の再使用可能な単位として実現され得る。
図4の方法は、IPブロックとメモリとの間の通信をメモリ通信コントローラ(図3の106)によって制御するステップ(402)を含む。図4の方法において、メモリ通信コントローラは複数のメモリ通信実行エンジン(図3の140)を含む。また、図4の方法においては、IPブロックとメモリとの間の通信を制御するステップ(402)は、各メモリ通信実行エンジンによって完全なメモリ通信命令を別々に、他のメモリ通信実行エンジンと並行して実行するステップ(404)と、ネットワークおよびIPブロックの間のメモリ通信命令の双方向フローを実行するステップ(406)とによって実行される。図4の方法において、メモリ通信命令は、変換索引バッファ制御命令、キャッシュ制御命令、バリヤー命令、メモリ・ロード命令、メモリ・ストア命令を含み得る。図4の方法において、メモリは、オフ・チップのメインRAMと、メモリ通信コントローラを通してIPブロックに直接接続されたメモリと、IPブロックとして動作可能にされるオン・チップ・メモリと、オン・チップ・キャッシュとを含むことができる。
図4の方法は、ルータを通してのIPブロック間通信をネットワーク・インターフェース・コントローラ(図3の108)によって制御するステップ(408)をも含む。図4の方法において、IPブロック間通信を制御するステップ(408)は、各ネットワーク・インターフェース・コントローラによって通信命令をコマンド・フォーマットからネットワーク・パケット・フォーマットに変換するステップ(410)と、各ネットワーク・インターフェース・コントローラによって、ネットワーク・パケットをタイプによって特徴付けることを含む、ネットワーク上に仮想チャネルを実現するステップ(412)とをも含む。
図4の方法は2つ以上の仮想通信チャネルを通して各ルータ(図3の110)によってメッセージを伝送するステップ(414)も含み、その各仮想通信チャネルは通信タイプにより特徴付けられる。通信命令タイプは、従って仮想チャネル・タイプは、例えば、IPブロック間ネットワーク・アドレス・ベース・メッセージ、リクエスト・メッセージ、対リクエスト応答メッセージ、キャッシュに向けられた無効化メッセージ、メモリ・ロード・メッセージ、メモリ・ストア・メッセージ、対メモリ・ロード応答メッセージ、などを含む。仮想チャネルのサポートに、各ルータは仮想チャネル制御ロジック(図3の132)と仮想チャネル・バッファ(図3の134)も含む。仮想チャネル制御ロジックは、各々の受信したパケットに割り当てられている通信タイプを調べ、各パケットを、ポートを通してNOC上の隣接ルータに伝送するべく、その通信タイプのための発信仮想チャネル・バッファに置く。
説明を容易にするために、図2の例としてのNOCは、メモリ通信コントローラとネットワーク・インターフェース・コントローラとを通してルータに適合させられた16セットのIPブロックを伴って示されている。同様に、図3の例としてのNOCは、メモリ通信コントローラとネットワーク・インターフェース・コントローラとを通してルータに適合させられた4セットのIPブロックを伴って示されている。しかし、本発明の実施態様に従って実装される実際的なNOCがメモリ通信コントローラとネットワーク・インターフェース・コントローラとを通してルータに適合させられた数百セットあるいは数千セットのIPブロックをしばしば包含するであろうことを読者は認めるであろう。このようなNOCは、同時に多数のアプリケーション・プログラムの動作をサポートし、従ってNOC上のリソースの分割から利益を得るであろう。
更なる説明のために、図5は、本発明の実施態様に従う更なるNOC例の機能ブロック図を示す。図5のNOC例がチップ(100)上で実現され、図5のNOC(102)がIPブロック(104)と、ルータ(110)と、メモリ通信コントローラ(106)と、ネットワーク・インターフェース・コントローラ(108)とを含む点において、図5のNOC例は図2のNOC例と同様である。各IPブロック(104)は、メモリ通信コントローラ(106)とネットワーク・インターフェース・コントローラ(108)とを通してルータ(110)に適合させられている。各メモリ通信コントローラはIPブロックとメモリとの間の通信を制御し、各ネットワーク・インターフェース・コントローラ(108)はルータ(110)を通してのIPブロック間通信を制御する。
図5の例において、NOC(102)は複数のパーティション(502,504)に組織されている。各パーティション(502,504)は少なくとも1つのIPブロック(104)を含み、各パーティションに独自の物理メモリ・アドレス空間への排他的アクセスが割り当てられる。例えば、パーティション(502)に、またパーティション(502)内の全てのIPブロック(104)に、ポート(119)を通してアクセスされるホスト・コンピュータ(152)内のオフ・チップ・メモリ(112)に配置された独自の物理メモリ・アドレス空間への排他的アクセスが割り当てられる。同様に、パーティション(502)内の全てのIPブロックを含むパーティション(504)には、オン・チップ・メモリ(114,115)に配置された独自の物理メモリ・アドレス空間への排他的アクセスが割り当てられる。
以下でより詳しく説明されるように、本発明の範囲内で、任意選択により、パーティションの境界でネットワーク通信トラフィックを制限することによって分割を行うことが可能である。パーティションの境界でネットワーク通信トラフィックを制限することによってパーティションを画定することは、本発明の一般的限定事項ではなくて、1つの随意選択肢である。本発明の範囲内で、パーティションを画定するためには、独自の物理メモリ・アドレス空間への排他的アクセスがパーティションに、すなわちそのパーティションの中のルータおよびIPブロックに、割り当てられるだけで全く充分である。図5のNOCでは、パーティション(502)は、ホスト・コンピュータ(152)上のオフ・チップ・メモリ(112)で具体化された独自の物理メモリ・アドレス空間への排他的アクセスの割り当てだけによって形成されたパーティションの例であり、パーティション(502)内のIPブロック(104)はポート(119)を通してオフ・チップ・メモリ(112)にアクセスする。ポート(119)は、NOC(102)とオフ・チップ・メモリ(112)との間で信号を伝導するために必要とされるピンおよびその他の相互接続部と、メッセージ・パケットをNOCパケット・フォーマットからオフ・チップ・メモリ(112)により要求されるバス・フォーマットに変換するための充分なインテリジェンスとを含む。
図5のNOCでは、1つ以上のアプリケーションがパーティションのうちの1つ以上の上で実行している。アプリケーション(512)は、パーティション(504)内のIPブロック104上で実行する。アプリケーション(514)は、パーティション(502)内のIPブロック(104)上で実行する。この文脈においてアプリケーションとは、アプリケーション・プログラム、例えばビデオ・ゲーム、株式市場シミュレーション、原子量子過程シミュレーションなどのために使用されるタスクのような特定のデータ処理タスクを実行するためのユーザ・レベル・コンピュータ・プログラム命令のモジュール、あるいはその他のユーザ・レベル・アプリケーションである。
図5のNOCにおいては、ネットワークは、ネットワーク内で互いに隣接しあっているルータのパーティションを含むパーティションに組織されることができ、該パーティションの境界に沿うルータは、該パーティションの外側で生じた該パーティション内のネットワーク位置へアドレス指定されているメッセージを遮断する。図5のNOCでは、パーティション(504)は、ネットワーク内で互いに隣接しあっているルータ(110)のパーティションの例を表すことができる。パーティション(504)の境界に沿っているルータは、該パーティションの外側で生じた、該パーティション内のネットワーク位置へアドレス指定されているメッセージを遮断するように構成され得る。パーティション(504)の境界に沿っている各ルータは、該ルータで受信された通信パケットの発アドレスと宛先アドレスとを調べて、該パーティションの外側で生じた、該パーティション内のネットワーク位置へアドレス指定されているパケットを落とす。この様に構成されたルータは、パーティションの境界でネットワーク通信トラフィックを制限することによってNOCのリソースの分割を行う。
図5のNOCでは、ネットワークは、ネットワーク内で互いに隣接しあっているルータのパーティションを含むパーティションに組織されることができ、該パーティションの境界に沿うルータは、該パーティション内で生じた該パーティションの外側のネットワーク位置へアドレス指定されているメッセージが該パーティションから出ることを妨げる。図5のNOCでは、パーティション(504)は、ネットワーク内で互いに隣接しあっているルータのパーティションの例を表すことができる。該パーティションの境界に沿っているルータは、該パーティション内で生じた該パーティションの外側のネットワーク位置へアドレス指定されているメッセージが該パーティションから出ることを妨げるように構成され得る。この例では、パーティション(504)の境界に沿っている各ルータは、該ルータで受信された通信パケットの発アドレスと宛先アドレスとを調べて、該パーティション内で生じた該パーティションの外側のネットワーク位置へアドレス指定されているパケットを落とす。これは、パーティションの境界でネットワーク通信トラフィックを制限することによってNOCのリソースを分割するように構成されたルータで分割を行う実施態様の第2クラスである。
互いに隣接しあっているルータのパーティションの代わりとして、本発明の実施態様に従うネットワーク・オン・チップは、該ネットワーク内で全て互いに隣接しあっているわけではないルータを含むパーティションに組織され得る。図5のNOCでは、IPブロックと、ルータと、メモリ通信コントローラとネットワーク・インターフェース・コントローラとのセット(506)は、IPブロックと、ルータと、メモリ通信コントローラとネットワーク・インターフェース・コントローラとのセット(508)と共に、そのような、ネットワーク内で全てのルータが互いに隣接しあっているわけではないパーティションを形成する。セット(508)のルータは全て該ネットワークのアーキテクチャの中で互いに隣接しあっているけれども、セット(506)のルータはセット(508)のルータのいずれとも隣接していない。
セット(506,508)により表されているパーティションの各ルータは、該パーティションの外側のネットワーク・アドレスへアドレス指定されている該ルータのIPブロックからのパケットを落とすように構成され、また、該ルータのIPブロックへアドレス指定されている該パーティションの外側のネットワーク・アドレスからのパケットを落とすように構成されている。この例において、パーティション(506,508)の各ルータは、該ルータで受信された通信パケットの発アドレスと宛先アドレスとを調べて、該パーティションの外側のネットワーク・アドレスへアドレス指定されている該ルータのIPブロックからのパケットを落とし、また、該ルータのIPブロックへアドレス指定されている該パーティションの外側のネットワーク・アドレスからのパケットを落とす。この様にして、該パーティションの中の通信を表すパケットは該パーティションに制限され、該パーティションの外側のルータの間のトラフィックは該パーティションの中のルータを通してトランスペアレントに送られる。例えば、パーティション(502)内のルータからパーティション(504)内のルータへ伝送されるパケットはセット(506,508)のいずれか一方の中のルータを横切らなくてはならず、そしてセット(506,508)により実現されるパーティションに関してトランスペアレントにそうする。なぜならば、その様なパケットは該パーティションの外側のネットワーク・アドレスへアドレス指定されている該パーティション(506,508)の中のIPブロックのルータからのパケットではなく、またその様なパケットは該パーティション内のルータのIPブロックへアドレス指定されている該パーティション(506,508)の外側のネットワーク・アドレスからのパケットではないからである。
図5のNOCでは、パーティションに組織されたネットワークは、パーティション(502)においてインスタンス化されたホスト・インターフェース・プロセッサ(105)を含む。パーティション(502)上のホスト・インターフェース・プロセッサ(105)は、該パーティション上で実行するアプリケーションと該パーティションの外側の他のコンピュータ・リソースとの間の通信のために、ここではポート(119)により表されるインターフェースを露出させる。ホスト・インターフェース・プロセッサ(105)の例では、該パーティションの外側の、ホスト・インターフェース・プロセッサ(105)によりインターフェースされるコンピュータ・リソースはオフ・チップ・メモリ(112)であるが、これはホスト・インターフェース・プロセッサの使用の説明例であって、本発明の限定事項ではない。パーティション(504)も、その上でインスタンス化されたホスト・インターフェース・プロセッサ(107)を有し、パーティション(504)のホスト・インターフェース・プロセッサ(107)は、該パーティション上で動作するアプリケーション(512)と、例えばパーティション(502)のホスト・インターフェース・プロセッサ(105)または該NOC上の他のパーティションのIPブロック上で動作するアプリケーション(510,514)などの該パーティション(504)の外側のオン・チップの他のコンピュータ・リソースとの間のインターフェース(図示されていない)を露出させる。
上記のように、本発明の実施態様に従うNOCのパーティションは、独自の物理メモリ・アドレス空間への排他的アクセスの割り当てによって形成され得る。しかし、独自の物理メモリ・アドレス空間への排他的アクセスをパーティションに割り当てることは、そのパーティションが物理メモリ・アドレス空間のセグメントを他のパーティションと共有することを妨げない。すなわち、本発明に従うNOCが物理メモリ・アドレス空間のセグメントを共有する少なくとも2つのパーティションを含み得るように、メモリが複数のパーティション間で共有され得るように、アドレス空間へのアクセスの割り当ては非排他的アクセスの割り当ても含むことができる。図5のNOCでは、例えば、パーティション(504)は、独自の物理メモリであるオン・チップ・メモリ(114,115)への排他的アクセスを割り当てられるとともに、オン・チップ・メモリ(117)内の物理メモリ・アドレス空間のセグメントをパーティション(506,508)と共有することができる。同様に、パーティション(506,508)は、独自の物理オン・チップ・メモリ(129)への排他的アクセスを割り当てられるとともに、オン・チップ・メモリ(117)内の物理メモリ・アドレス空間のセグメントをパーティション(504)と共有することができる。例えば00000000からFFFFFFFFまでの4GB空間として16進アドレスで表されたNOC(102)のための物理メモリ・アドレス空間全体に関して、パーティション(506,508)は00000000からCFFFFFFFまでのアドレス空間への排他的アクセスを割り当てられることができ、パーティション(504)はE0000000からFFFFFFFFまでのアドレス空間への排他的アクセスを割り当てられることができ、また両方のパーティションがD0000000からDFFFFFFFまでのアドレス空間への非排他的アクセスを割り当てられることができるので、これら2つのパーティションはD0000000からDFFFFFFFまでの物理メモリ・アドレス空間のセグメントを共有する。メモリのこのような共有は、例えば、これら2つのパーティションで別々にインスタンス化され同じ物理メモリをアドレス指定するメモリ変数で該パーティション間の通信を容易にし、それへのアクセスは例えばセマフォで調整される。
図5のNOCにおいて、パーティションのうちの1つ以上において実行する1つ以上のアプリケーション(510,512,514)は、該アプリケーションのうちの少なくとも1つが複数のステージにパイプライン化されて実行され得る。パイプラインとは、一連のデータ処理タスクを順に実行するために互いに協力し合うコンピュータ・プログラム命令のモジュールのセットのことである。1つのパイプラインの各ステージは、ステージIDにより特定されるコンピュータ・プログラム命令の柔軟に設定可能なモジュールから構成され、各ステージは、同じパーティション内のIPブロックで実行の1つのスレッドにおいて実行する。作業負荷に依存して必要に応じてステージの追加インスタンスをインスタンス化することによってパイプラインがスケーリングされ得るように、各ステージが該ステージの複数のインスタンスをサポートすることができるという意味において、ステージは‘柔軟に設定可能’である。
更なる説明のために、図6は、例としてのパイプライン(600)の動作を説明するデータ流れ図を示す。図6の例としてのパイプライン(600)は、実行の3つのステージ(602,604,606)を含む。ステージ1は、ホスト・コンピュータ(152)上で動作するアプリケーション(184)からホスト・インターフェース・プロセッサ(105)を通して作業命令とワーク・ピース・データ(620)とを受け取る。ステージ1は、その指定されているデータ処理タスクを該ワーク・ピースに対して実行してその結果(622,624,626)をステージ2に送り、ステージ2はその指定されているデータ処理タスクをステージ1からの結果に対して実行してその結果(628,630,632)をステージ3に送り、ステージ3は、その指定されているデータ処理タスクをステージ2からの結果に対して実行して、その結果(634,636)を、最終的にホスト・インターフェース・プロセッサ(105)を通してホスト・コンピュータ(152)上の発信したアプリケーション(184)に戻すために出力データ構造(638)に格納する。出力データ構造(638)が何時でも戻せるようになる前に大量の戻りデータを計算する必要があるかもしれないので、発信したアプリケーション・プログラムへの戻しは‘最終的’と言われる。この例においてパイプライン(600)は、3つのステージ(602−606)における僅か6つのインスタンス(622−632)とともに表されている。しかし、本発明の実施態様に従う多くのパイプラインは、多数のステージと、ステージの多数のインスタンスとを含むことができる。例えば原子過程モデリング・アプリケーションでは、出力データ構造(638)は、パイプラインの種々のステージにおいて数千の計算を各々必要とする、莫大な数の亜原子粒子の正確な量子状態を含む原子過程の特定のナノ秒における状態を表すことができる。あるいはさらに別の例として、ビデオ処理アプリケーションでは、出力データ構造(638)は、パイプラインの種々のステージにおいて多数の計算を各々必要とする数千のピクセルの現在の表示状態から構成されるビデオ・フレームを表すことができる。
パイプライン(600)の各ステージ(602−606)の各インスタンス(622−632)は、NOC(図5の102)のパーティション(502)において独自のIPブロック(図5の104)で実行されるコンピュータ・プログラム命令のアプリケーション・レベル・モジュールとして実現される。パイプライン(600)は、この例では、ステージ1の1つのインスタンス(608)と、ステージ2の3つのインスタンス(610,612,614)と、ステージ3の2つのインスタンス(616,618)とを有して実現されている。ステージ1は、スタートアップ時に、ホスト・インターフェース・プロセッサ(105)によりステージ2のインスタンスの個数とステージ2の各インスタンスのネットワーク位置とで設定される。ステージ1(602,608)は、その結果としての作業負荷(622,624,626)を、例えば、ステージ2のインスタンス(610−614)に等しく分配することによって、分配することができる。ステージ2の各インスタンス(610−614)は、スタートアップ時に、ステージ2のインスタンスがその結果としての作業負荷を送ることを許可されているステージ3の各インスタンスのネットワーク位置で設定される。この例では、インスタンス(610,612)は両方ともその結果としての作業負荷(628,630)をステージ3のインスタンス(616)に送るように設定され、ステージ2の1つのインスタンス(614)だけが作業負荷(632)をステージ3のインスタンス(618)に送る。もしインスタンス(616)がインスタンス(618)の作業負荷の2倍を処理しようとするボトルネックになったならば、必要ならばラン・タイム中に実時間でステージ3の追加インスタンスをインスタンス化することができる。
更なる説明のために、図7は、本発明の実施態様に従うNOCでのデータ処理の代表的方法を説明するフローチャートを示す。図7の方法は、この明細書において上で記述されたものと類似するNOC、すなわち、チップ(図5の100)上にIPブロック(図5の104)と、ルータ(図5の110)と、メモリ通信コントローラ(図5の106)と、ネットワーク・インターフェース・コントローラ(図5の108)とを伴って実現されるNOC(図5の102)、において実行される。各IPブロック(図5の104)は、メモリ通信コントローラ(図5の106)とネットワーク・インターフェース・コントローラ(図5の108)とを通してルータ(図5の110)に適合させられる。図7の方法においては、各IPブロックは、NOC内でのデータ処理のための構成要素として用いられた同期または非同期の論理設計の再使用可能な単位として実装される。
図7の方法はネットワークをパーティションに組織するステップ(702)を含み、各パーティションは少なくとも1つのIPブロックを含み、各パーティションは独自の物理メモリ・アドレス空間への排他的アクセスを割り当てられる。さらに図7の方法では、2つ以上のパーティションが物理メモリ・アドレス空間のセグメントを共有することもできる。
図7の方法においては、ネットワークをパーティションに組織するステップ(702)は、パーティションの境界に沿うルータがパーティションの外側で生じたパーティション内のネットワーク位置へアドレス指定されているメッセージを遮断するようになっている、ネットワーク内で互いに隣接しあっているルータのパーティションを設定することによって、実行され得る。図7の方法においては、ネットワークをパーティションに組織するステップ(702)は、パーティションの境界に沿うルータが、パーティション内で生じたパーティションの外側のネットワーク位置へアドレス指定されているメッセージがパーティションから出ることを妨げるようになっている、ネットワーク内で互いに隣接しあっているルータのパーティションを設定することによっても、実行され得る。
図7の方法では、ネットワークをパーティションに組織するステップ(702)は、各ルータがパーティションの外側のネットワーク・アドレスへアドレス指定されている該ルータのIPブロックからのパケットを落とすように構成されるとともに各ルータが該ルータのIPブロックへアドレス指定されているパーティションの外側のネットワーク・アドレスからのパケットを落とすようにも構成されている、ネットワーク内で全てが互いに隣接しあっているわけではないルータのパーティションを設定することによっても、実行され得る。図7の方法においては、ネットワークをパーティションに組織するステップ(702)は、パーティション上でホスト・インターフェース・プロセッサをインスタンス化することを含むこともでき、該パーティション上の該ホスト・インターフェース・プロセッサは、該パーティション上で実行するアプリケーションと該パーティションの外側の他のコンピュータ・リソースとの間の通信のために、インターフェースを露出させる。
図7の方法は、ホスト・インターフェース・プロセッサによって、少なくとも1つのパーティション内のIPブロック上の実行の1つ以上のスレッドをプログラム・ロードのためのベクトル・アドレスで設定するステップ(703)を含む。本発明においては、1つのIPブロック上で実行され得る実行のスレッドの数に関して制限は無い。IPブロックが受動的非同期ロジックのネットワークとして実現される限り、IPブロックは実行のゼロ個のスレッドを実行すると言われても良い。代わりに、IPブロックは、コンピュータ・ハードウェアにおいて複数の実行のスレッドをパイプライン化する汎用マイクロプロセッサで実現されても良い。ベクトルは、その内容がメモリ・アドレスであるメモリ位置である。ベクトル・アドレスは、ベクトルのメモリ・アドレスである。ベクトルに格納されているメモリ・アドレスは、パワー・オン時にIPブロックにロード(いわゆる初期プログラム・ロードすなわち‘IPL’)されるべきコンピュータ・プログラムを含むメモリのセグメントのアドレスである。
各IPブロックは、例えば、実行の各スレッドのための構成レジスタで構成され得る。各々のその様な構成レジスタは、物理メモリ・アドレス空間内の記憶位置として実現され得る。その様な例においてホスト・インターフェース・プロセッサはベクトル・アドレスのレコードを含む不揮発性メモリで構成されることができ、物理アドレス空間内のアドレスと関連付けられた各ベクトル・アドレスはIPブロック上の実行のスレッドのための構成レジスタに対応する。その様な例では、ホスト・インターフェース・プロセッサによって、少なくとも1つのパーティション内のIPブロック上の1つ以上の実行のスレッドをプログラム・ロードのためのベクトル・アドレスで設定するステップ(703)は、電力がNOCに加えられるときにメモリ・ロード命令で関連するベクトル・アドレスを各々の実行のスレッドのための構成レジスタに書き込むことによって、実行され得る。IPブロック上の実行のスレッドをプログラム・ロードのためのベクトル・アドレスでその様に設定するステップ(703)は、NOCがパワー・オンされるごとに該NOCの完全な再構成を容易にする。ブート間に、構成レジスタと関連付けられているベクトル・アドレスを含むメモリは、各ベクトル・アドレスに格納されている新しいメモリ・アドレスで再構成され得るので、NOC上のどのIPブロック上のどのスレッドも、NOCがパワー・オンされるたびに、そのベクトル・アドレスに格納されているアドレスから異なるプログラムをロードすることができ、本発明の実施態様に従って実装されるNOCのアーキテクチャに無比の柔軟性と力を与える。
図7の方法は、1つ以上のパーティションにおいて1つ以上のアプリケーションを実行するステップ(704)も含む。図7の方法においては、パーティションのうちの1つ以上において1つ以上のアプリケーションを実行するステップ(704)は、該アプリケーションのうちの少なくとも1つを、それぞれステージIDにより特定されるコンピュータ・プログラム命令の柔軟に設定可能なモジュールであるステージにパイプライン化するステップと、各ステージを同じパーティション内のIPブロックにおいて実行のスレッドで実行するステップとを含むことができる。
更なる説明のために、図8は、例えば半導体デザイン、製造およびテストのうちの少なくとも1つに使われる代表的なデザイン・フロー900のブロック図を示す。デザイン・フロー900は、設計されるICのタイプに応じて変化し得る。例えば、特定用途向けIC(ASIC)を作るためのデザイン・フロー900は、標準コンポーネントを設計するためのデザイン・フロー900とは異なり得る。デザイン構造920は、好ましくはデザイン・プロセス910への入力であって、IPプロバイダ、コア開発者あるいは他のデザイン会社から出てくることができ、あるいは該デザイン・フローのオペレータにより作成されて良く、あるいは他の出所から出て来ることができる。デザイン構造920は、結線図またはHDLすなわちハードウェア記述言語(例えば、Verilog、VHDL、Cなど)の形の、図1−図7に示されている本発明の実施態様を含む。デザイン構造920は、1つ以上の機械可読媒体に含まれ得る。例えば、デザイン構造920は、図1−図7に示されている本発明の実施態様のテキスト・ファイルまたはグラフィック表現であり得る。デザイン・プロセス910は、好ましくは、図1−図7に示されている本発明の実施態様を合成(あるいは変換)してネットリスト980とし、ネットリスト980は、例えば、集積回路設計における他の素子および回路への接続を記述して機械可読媒体のうちの少なくとも1つに記録されるワイヤ、トランジスタ、論理ゲート、制御回路、I/O、モデルなどのリストである。例えば、該媒体は、CD、コンパクト・フラッシュ、他のフラッシュ・メモリ、インターネットを介して送信されるべきデータのパケット、または他の適切なネットワーキング手段であり得る。該合成は、ネットリスト980が回路のための設計仕様とパラメータとに依存して1回以上再合成される反復プロセスであり得る。
デザイン・プロセス910は、例えば、所与の製造技術(例えば32nm、45nm、90nmなどの、種々の技術ノード)のための、モデル、レイアウト、および記号表示を含む、よく使われるエレメント、回路、およびデバイスのセットを収容することのできるライブラリ・エレメント930からの入力、設計仕様940からの入力、特性データ950からの入力、検証データ960からの入力、設計ルール970からの入力、試験データ・ファイル985(これはテスト・パターンおよび他の試験情報を含むことができる)からの入力などの、種々の入力を用いるステップを含むことができる。デザイン・プロセス910は、さらに、例えば、タイミング解析、検証、設計ルール検査、プレース・オペレーションおよびルート・オペレーションなどの標準的回路設計プロセスを含むことができる。集積回路設計の当業者は、本発明の範囲から逸脱せずにデザイン・プロセス910に用いられ得る電子設計自動化ツールおよびアプリケーションの範囲を認識することができる。本発明のデザイン構造は、特定のデザイン・フローには限定されない。
デザイン・プロセス910は、好ましくは、図1−図7に示されている本発明の実施態様を、任意の付加的な集積回路デザインまたはデータ(該当する場合)とともに、第2のデザイン構造990に変換する。デザイン構造990は、集積回路のレイアウト・データの交換のために使われるデータ・フォーマットと、シンボリック・データ・フォーマットとの少なくとも一方で、記憶媒体に存在する(例えば、GDSII(GDS2)、GL1、OASIS、マップ・ファイル、あるいはその様なデザイン構造を格納するための他の任意の適切なフォーマットで格納された情報)。デザイン構造990は、例えば、シンボリック・データ、マップ・ファイル、テスト・データ・ファイル、デザイン・コンテンツ・ファイル、製造データ、レイアウト・パラメータ、ワイヤ、メタルのレベル、バイア、形状、製造ラインを通してのルーティングのためのデータ、およびその他の、図1−図7に示されている本発明の実施態様を製造するために半導体製造業者により必要とされるデータなどの情報を含むことができる。その後、デザイン構造990はステージ995に進むことができ、ここで、例えば、デザイン構造990は、テープ・アウトに進み、製造に向けてリリースされ、マスク会社へリリースされ、他のデザイン会社へ送られ、顧客に送り戻されるなどする。
本発明の代表的実施態様は、主として,NOCでのデータ処理のための完全に機能的なコンピュータ・システムという文脈で記述されている。しかし、当業者は、本発明が、任意の適切なデータ処理システムで使用される(コンピュータ可読媒体に配置され得る)コンピュータ・プログラムにおいても具体化され得ることを認めるであろう。その様なコンピュータ可読媒体は、伝送媒体、あるいは、磁気媒体、光学式媒体、または他の適切な媒体を含む機械可読情報のための記録可能媒体であり得る。記録可能媒体の例は、ハードディスクまたはディスケットの中の磁気ディスク、光学式ドライブ用のコンパクト・ディスク、磁気テープ、およびその他の、当業者が想到するものを含む。伝送媒体の例は、音声通信のための電話網と、例えばイーサネット(商標)、およびインターネット・プロトコルおよびワールド・ワイド・ウェブで通信をするネットワークなどのデジタル・データ通信ネットワークと、例えばIEEE802.11ファミリーの仕様に従って実装されたネットワークなどの無線伝送媒体とを含む。当業者は、適切なプログラミング手段を持っている任意のコンピュータ・システムがプログラムで具体化された本発明の方法のステップを実行できることを直ぐに認めるであろう。この明細書に記載されている代表的実施態様の幾つかはコンピュータ・ハードウェアにインストールされてその上で実行するソフトウェアに向けられているけれども、ファームウェアまたはハードウェアとして実現される代わりの実施態様が充分に本発明の範囲内にあることを当業者は直ぐに認めるであろう。
叙上から、その真意から逸脱せずに本発明の種々の実施態様において改変および変更をなし得ることが理解されるであろう。この明細書の記述は例証を目的としているに過ぎず、限定的意味に解されるべきではない。本発明の範囲は請求項の言葉だけにより限定される。
本発明の実施態様に従うNOCでのデータ処理に有益な代表的コンピュータを含む自動計算機のブロック図を示す。 本発明の実施態様に従うNOCの例の機能ブロック図を示す。 本発明の実施態様に従うNOCの別の例の機能ブロック図を示す。 本発明の実施態様に従うNOCでのデータ処理のための代表的方法を説明するフローチャートを示す。 本発明の実施態様に従うNOCの別の例の機能ブロック図を示す。 パイプラインの例の動作を説明するデータ流れ図を示す。 本発明の実施態様に従うNOCでのデータ処理のための代表的方法を説明するフローチャートを示す。 半導体デザイン、製造およびテストのうちの少なくとも1つに使われるデザイン・プロセスの流れ図を示す。
符号の説明
100 チップ
102 ネットワーク・オン・チップ(‘NOC’)
104 IPブロック
105,107 ホスト・インターフェース・プロセッサ
106 メモリ通信コントローラ
108 ネットワーク・インターフェース・コントローラ
110 ルータ
112 オフ・チップ・メモリ
114,115,117 オン・チップ・メモリ
119 ポート
120 リンク
129 OCM(オン・チップ・メモリ)
152 ホスト・コンピュータ
502,504 パーティション
506,508 IPブロックと、ルータと、メモリ通信コントローラとネットワーク・インターフェース・コントローラとのセット
510,512 アプリケーション

Claims (25)

  1. ネットワーク・オン・チップ(‘NOC’)を含み、
    前記NOCは、統合プロセッサ(‘IP’)ブロックと、ルータと、メモリ通信コントローラと、ネットワーク・インターフェース・コントローラとを含み、各IPブロックはメモリ通信コントローラとネットワーク・インターフェース・コントローラとを通してルータに適合させられ、各メモリ通信コントローラはIPブロックとメモリとの間の通信を制御し、各ネットワーク・インターフェース・コントローラはルータを通してIPブロック間通信を制御し、
    前記ネットワークはパーティションに組織され、各パーティションは少なくとも1つのIPブロックを含み、各パーティションに独自の物理メモリ・アドレス空間への排他的アクセスが割り当てられ、
    1つ以上のアプリケーションが前記パーティションのうちの1つ以上の上で実行する、
    デザイン構造。
  2. パーティションに組織された前記ネットワークは、前記ネットワーク内で互いに隣接しあっているルータのパーティションをさらに含み、前記パーティションの境界に沿うルータは前記パーティションの外側で生じた前記パーティション内のネットワーク位置へアドレス指定されているメッセージを遮断する、請求項1に記載のデザイン構造。
  3. パーティションに組織された前記ネットワークは、前記ネットワーク内で互いに隣接しあっているルータのパーティションをさらに含み、前記パーティションの境界に沿うルータは、前記パーティション内で生じた前記パーティションの外側のネットワーク位置へアドレス指定されているメッセージが前記パーティションから出ることを妨げるようになっている、請求項1に記載のデザイン構造。
  4. パーティションに組織された前記ネットワークは、前記ネットワーク内で全てが互いに隣接しあっているわけではないルータのパーティションをさらに含み、各ルータは前記パーティションの外側のネットワーク・アドレスへアドレス指定されている前記ルータのIPブロックからのパケットを落とすように構成されるとともに前記ルータのIPブロックへアドレス指定されている前記パーティションの外側のネットワーク・アドレスからのパケットを落とすようにも構成されている、請求項1に記載のデザイン構造。
  5. パーティションに組織された前記ネットワークはパーティション上にインスタンス化されたホスト・インターフェース・プロセッサをさらに含み、前記パーティション上の前記ホスト・インターフェース・プロセッサは、前記パーティション上で実行する前記アプリケーションと前記パーティションの外側の他のコンピュータ・リソースとの間の通信のためにインターフェースを露出させる、請求項1に記載のデザイン構造。
  6. 前記パーティションのうちの1つ以上の上で実行する前記1つ以上のアプリケーションに関して、
    前記アプリケーションのうちの少なくとも1つはステージにパイプライン化され、各ステージは、ステージIDにより特定されるコンピュータ・プログラム命令の柔軟に設定可能なモジュールを含み、
    各ステージは、同じパーティション内のIPブロックで実行のスレッドにおいて実行する、
    請求項1に記載のデザイン構造。
  7. 少なくとも2つのパーティションが物理メモリ・アドレス空間のセグメントを共有する、請求項1に記載のデザイン構造。
  8. ネットワーク・オン・チップ(‘NOC’)でのデータ処理の方法であって、前記NOCは、統合プロセッサ(‘IP’)ブロックと、ルータと、メモリ通信コントローラと、ネットワーク・インターフェース・コントローラとを含み、各IPブロックはメモリ通信コントローラとネットワーク・インターフェース・コントローラとを通してルータに適合させられ、各メモリ通信コントローラはIPブロックとメモリとの間の通信を制御し、各ネットワーク・インターフェース・コントローラはルータを通してIPブロック間通信を制御し、前記方法は、
    前記ネットワークを、少なくとも1つのIPブロックを各々含むとともに独自の物理メモリ・アドレス空間への排他的アクセスを各々割り当てられるパーティションに組織するステップと、
    前記パーティションのうちの1つ以上において1つ以上のアプリケーションを実行するステップと、
    を含む、方法。
  9. 前記ネットワークをパーティションに組織する前記ステップは、前記ネットワーク内で互いに隣接しあうルータのパーティションを構成するステップをさらに含み、前記パーティションの境界に沿うルータは、前記パーティションの外側で生じた前記パーティション内のネットワーク位置へアドレス指定されているメッセージを遮断する、請求項8に記載の方法。
  10. 前記ネットワークをパーティションに組織する前記ステップは、前記ネットワーク内で互いに隣接しあうルータのパーティションを構成するステップをさらに含み、前記パーティションの境界に沿うルータは、前記パーティション内で生じた前記パーティションの外側のネットワーク位置へアドレス指定されているメッセージが前記パーティションから出ることを妨げる、請求項8に記載の方法。
  11. 前記ネットワークをパーティションに組織する前記ステップは、前記ネットワーク内で全てが互いに隣接しあっているわけではないルータのパーティションを構成するステップをさらに含み、各ルータは前記パーティションの外側のネットワーク・アドレスへアドレス指定されている前記ルータのIPブロックからのパケットを落とすように構成されるとともに前記ルータのIPブロックへアドレス指定されている前記パーティションの外側のネットワーク・アドレスからのパケットを落とすようにも構成されている、請求項8に記載の方法。
  12. 前記ネットワークをパーティションに組織する前記ステップは、ホスト・インターフェース・プロセッサをパーティション上にインスタンス化するステップをさらに含み、前記パーティション上の前記ホスト・インターフェース・プロセッサは、前記パーティション上で実行する前記アプリケーションと前記パーティションの外側の他のコンピュータ・リソースとの間の通信のためにインターフェースを露出させる、請求項8に記載の方法。
  13. 前記ホスト・インターフェース・プロセッサによって、前記パーティション内の前記IPブロック上の1つ以上の実行のスレッドをプログラム・ロードのためのベクトル・アドレスで設定するステップをさらに含む、請求項12に記載の方法。
  14. 前記パーティションのうちの1つ以上において1つ以上のアプリケーションを実行する前記ステップは、
    前記アプリケーションのうちの少なくとも1つを、ステージIDにより特定されるコンピュータ・プログラム命令の柔軟に設定可能なモジュールをそれぞれ含むステージにパイプライン化するステップと、
    各ステージを同じパーティション内のIPブロックで実行のスレッドにおいて実行するステップと、
    をさらに含む、請求項8に記載の方法。
  15. 少なくとも2つのパーティションが物理メモリ・アドレス空間のセグメントを共有する、請求項8に記載の方法。
  16. 統合プロセッサ(‘IP’)ブロックと、ルータと、メモリ通信コントローラと、ネットワーク・インターフェース・コントローラとを含むネットワーク・オン・チップ(‘NOC’)であって、各IPブロックはメモリ通信コントローラとネットワーク・インターフェース・コントローラとを通してルータに適合させられ、各メモリ通信コントローラはIPブロックとメモリとの間の通信を制御し、各ネットワーク・インターフェース・コントローラはルータを通してIPブロック間通信を制御し、
    前記ネットワークは、少なくとも1つのIPブロックを各々含むとともに独自の物理メモリ・アドレス空間への排他的アクセスを各々割り当てられるパーティションに組織され、
    前記パーティションのうちの1つ以上において1つ以上のアプリケーションが実行する、
    NOC。
  17. パーティションに組織された前記ネットワークは、前記ネットワーク内で互いに隣接しあうルータのパーティションをさらに含み、前記パーティションの境界に沿うルータは、前記パーティションの外側で生じた前記パーティション内のネットワーク位置へアドレス指定されているメッセージを遮断する、請求項16に記載のNOC。
  18. パーティションに組織された前記ネットワークは、前記ネットワーク内で互いに隣接しあうルータのパーティションをさらに含み、前記パーティションの境界に沿うルータは、前記パーティション内で生じた前記パーティションの外側のネットワーク位置へアドレス指定されているメッセージが前記パーティションから出ることを妨げる、請求項17に記載のNOC。
  19. パーティションに組織された前記ネットワークは、前記ネットワーク内で全てが互いに隣接しあっているわけではないルータのパーティションをさらに含み、各ルータは前記パーティションの外側のネットワーク・アドレスへアドレス指定されている前記ルータのIPブロックからのパケットを落とすように構成されるとともに前記ルータのIPブロックへアドレス指定されている前記パーティションの外側のネットワーク・アドレスからのパケットを落とすようにも構成されている、請求項17に記載のNOC。
  20. パーティションに組織された前記ネットワークは、パーティション上にインスタンス化されたホスト・インターフェース・プロセッサをさらに含み、前記パーティション上の前記ホスト・インターフェース・プロセッサは、前記パーティション上で実行する前記アプリケーションと前記パーティションの外側の他のコンピュータ・リソースとの間の通信のためにインターフェースを露出させる、請求項17に記載のNOC。
  21. 前記パーティションのうちの1つ以上の上で実行する前記1つ以上のアプリケーションに関して、
    前記アプリケーションのうちの少なくとも1つはステージにパイプライン化され、各ステージは、ステージIDにより特定されるコンピュータ・プログラム命令の柔軟に設定可能なモジュールを含み、
    各ステージは、同じパーティション内のIPブロックで実行のスレッドにおいて実行する、
    請求項17に記載のNOC。
  22. 少なくとも2つのパーティションが物理メモリ・アドレス空間のセグメントを共有する、請求項17に記載のNOC。
  23. ネットワーク・オン・チップ(‘NOC’)でのデータ処理のためのコンピュータ・プログラムであって、前記NOCは、統合プロセッサ(‘IP’)ブロックと、ルータと、メモリ通信コントローラと、ネットワーク・インターフェース・コントローラとを含み、各IPブロックはメモリ通信コントローラとネットワーク・インターフェース・コントローラとを通してルータに適合させられ、各メモリ通信コントローラはIPブロックとメモリとの間の通信を制御し、各ネットワーク・インターフェース・コントローラはルータを通してIPブロック間通信を制御し、前記コンピュータ・プログラムは、
    前記ネットワークを、少なくとも1つのIPブロックを各々含むとともにそれ自身の物理メモリ・アドレス空間を各々有するパーティションに組織するステップと、
    前記パーティションのうちの1つ以上において1つ以上のアプリケーションを実行するステップと、
    を実行することのできるコンピュータ・プログラム命令を含む、コンピュータ・プログラム。
  24. 前記ネットワークをパーティションに組織する前記ステップは、前記ネットワーク内で互いに隣接しあうルータのパーティションを構成するステップをさらに含み、前記パーティションの境界に沿うルータは、前記パーティションの外側で生じた前記パーティション内のネットワーク位置へアドレス指定されているメッセージを遮断する、請求項23に記載のコンピュータ・プログラム。
  25. 前記ネットワークをパーティションに組織する前記ステップは、前記ネットワーク内で互いに隣接しあうルータのパーティションを構成するステップをさらに含み、前記パーティションの境界に沿うルータは、前記パーティション内で生じた前記パーティションの外側のネットワーク位置へアドレス指定されているメッセージが前記パーティションから出ることを妨げる、請求項23に記載のコンピュータ・プログラム。
JP2008285000A 2007-11-27 2008-11-06 デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造) Expired - Fee Related JP5294806B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/945396 2007-11-27
US11/945,396 US8526422B2 (en) 2007-11-27 2007-11-27 Network on chip with partitions
US12/102038 2008-04-14
US12/102,038 US7873701B2 (en) 2007-11-27 2008-04-14 Network on chip with partitions

Publications (2)

Publication Number Publication Date
JP2009129447A true JP2009129447A (ja) 2009-06-11
JP5294806B2 JP5294806B2 (ja) 2013-09-18

Family

ID=40670681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008285000A Expired - Fee Related JP5294806B2 (ja) 2007-11-27 2008-11-06 デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)

Country Status (2)

Country Link
US (1) US7873701B2 (ja)
JP (1) JP5294806B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011070913A1 (ja) * 2009-12-07 2011-06-16 日本電気株式会社 オンチップ並列処理システム及び通信方法
JP2014186509A (ja) * 2013-03-22 2014-10-02 Research Organization Of Information & Systems 半導体チップ、半導体チップ接続システム
JP2020517030A (ja) * 2017-04-17 2020-06-11 セレブラス システムズ インク. ディープラーニング加速化のためのデータ構造記述子
JP2021082317A (ja) * 2017-02-23 2021-05-27 セレブラス システムズ インク. 加速化ディープラーニング
JP2021108157A (ja) * 2017-04-17 2021-07-29 セレブラス システムズ インク. 加速化ディープラーニングのタスクアクティベーション
US11321087B2 (en) 2018-08-29 2022-05-03 Cerebras Systems Inc. ISA enhancements for accelerated deep learning
US11328208B2 (en) 2018-08-29 2022-05-10 Cerebras Systems Inc. Processor element redundancy for accelerated deep learning
US11328207B2 (en) 2018-08-28 2022-05-10 Cerebras Systems Inc. Scaled compute fabric for accelerated deep learning
US11488004B2 (en) 2017-04-17 2022-11-01 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
JP7393847B2 (ja) 2019-10-25 2023-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーション パイプラインにおけるタスクの並列度の動的な変更

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090109996A1 (en) * 2007-10-29 2009-04-30 Hoover Russell D Network on Chip
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
US8526422B2 (en) * 2007-11-27 2013-09-03 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
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
US8438578B2 (en) 2008-06-09 2013-05-07 International Business Machines Corporation Network on chip with an I/O accelerator
US9470759B2 (en) * 2011-10-28 2016-10-18 Teradyne, Inc. Test instrument having a configurable interface
US9759772B2 (en) 2011-10-28 2017-09-12 Teradyne, Inc. Programmable test instrument
US10776233B2 (en) 2011-10-28 2020-09-15 Teradyne, Inc. Programmable test instrument
JP6337437B2 (ja) 2013-09-30 2018-06-06 富士通株式会社 情報処理装置、情報処理システム、及びプログラム
US9158882B2 (en) * 2013-12-19 2015-10-13 Netspeed Systems Automatic pipelining of NoC channels to meet timing and/or performance
US9699079B2 (en) 2013-12-30 2017-07-04 Netspeed Systems Streaming bridge design with host interfaces and network on chip (NoC) layers
US9520180B1 (en) 2014-03-11 2016-12-13 Hypres, Inc. System and method for cryogenic hybrid technology computing and memory
US9742630B2 (en) * 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US9660942B2 (en) 2015-02-03 2017-05-23 Netspeed Systems Automatic buffer sizing for optimal network-on-chip design
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
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
US10084725B2 (en) 2017-01-11 2018-09-25 Netspeed Systems, Inc. Extracting features from a NoC for machine learning construction
US10469337B2 (en) 2017-02-01 2019-11-05 Netspeed Systems, Inc. Cost management against requirements for the generation of a NoC
US10298485B2 (en) 2017-02-06 2019-05-21 Netspeed Systems, Inc. Systems and methods for NoC construction
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
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
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
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)

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185380A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
JPH09231187A (ja) * 1996-02-22 1997-09-05 Hitachi Ltd 並列計算機のデータ転送方法
US5761516A (en) * 1996-05-03 1998-06-02 Lsi Logic Corporation Single chip multiprocessor architecture with internal task switching synchronization bus
JPH10232788A (ja) * 1996-12-17 1998-09-02 Fujitsu Ltd 信号処理装置及びソフトウェア
JPH10240707A (ja) * 1997-02-27 1998-09-11 Hitachi Ltd 主記憶共有型マルチプロセッサ
JP2000235558A (ja) * 1999-02-16 2000-08-29 Hitachi Ltd 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法
US20020046324A1 (en) * 2000-06-10 2002-04-18 Barroso Luiz Andre Scalable architecture based on single-chip multiprocessing
JP2005018620A (ja) * 2003-06-27 2005-01-20 Toshiba Corp 情報処理システムおよびメモリ管理方法
JP2005513610A (ja) * 2001-12-14 2005-05-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数のプロセッサを有するデータ処理システムおよび複数のプロセッサを有するデータ処理システムにおける通信手段
JP2005513611A (ja) * 2001-12-14 2005-05-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システム
US20050144434A1 (en) * 2003-12-31 2005-06-30 Taylor Billy K. Partitionable multiprocessor system
JP2005521124A (ja) * 2001-12-14 2005-07-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システム
JP2006515690A (ja) * 2001-12-14 2006-06-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数のプロセッサを有するデータ処理システムと、複数のプロセッサを有するデータ処理システムのためのタスクスケジューラと、タスクスケジューリングの対応する方法
WO2007010461A2 (en) * 2005-07-19 2007-01-25 Koninklijke Philips Electronics N.V. Electronic device and method of communication resource allocation
US20090125574A1 (en) * 2007-11-12 2009-05-14 Mejdrich Eric O Software Pipelining On a Network On Chip
JP2009110512A (ja) * 2007-10-29 2009-05-21 Internatl Business Mach Corp <Ibm> ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法
JP2009116872A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356633B2 (en) * 2002-05-03 2008-04-08 Sonics, Inc. Composing on-chip interconnects with configurable interfaces
US7254603B2 (en) * 2002-05-03 2007-08-07 Sonics, Inc. On-chip inter-network performance optimization using configurable performance parameters
US7603441B2 (en) * 2002-12-27 2009-10-13 Sonics, Inc. Method and apparatus for automatic configuration of multiple on-chip interconnects

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185380A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
JPH09231187A (ja) * 1996-02-22 1997-09-05 Hitachi Ltd 並列計算機のデータ転送方法
US5761516A (en) * 1996-05-03 1998-06-02 Lsi Logic Corporation Single chip multiprocessor architecture with internal task switching synchronization bus
JPH10232788A (ja) * 1996-12-17 1998-09-02 Fujitsu Ltd 信号処理装置及びソフトウェア
JPH10240707A (ja) * 1997-02-27 1998-09-11 Hitachi Ltd 主記憶共有型マルチプロセッサ
JP2000235558A (ja) * 1999-02-16 2000-08-29 Hitachi Ltd 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法
US20020046324A1 (en) * 2000-06-10 2002-04-18 Barroso Luiz Andre Scalable architecture based on single-chip multiprocessing
JP2005513610A (ja) * 2001-12-14 2005-05-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数のプロセッサを有するデータ処理システムおよび複数のプロセッサを有するデータ処理システムにおける通信手段
JP2005513611A (ja) * 2001-12-14 2005-05-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システム
JP2005521124A (ja) * 2001-12-14 2005-07-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システム
JP2006515690A (ja) * 2001-12-14 2006-06-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数のプロセッサを有するデータ処理システムと、複数のプロセッサを有するデータ処理システムのためのタスクスケジューラと、タスクスケジューリングの対応する方法
JP2005018620A (ja) * 2003-06-27 2005-01-20 Toshiba Corp 情報処理システムおよびメモリ管理方法
US20050144434A1 (en) * 2003-12-31 2005-06-30 Taylor Billy K. Partitionable multiprocessor system
WO2007010461A2 (en) * 2005-07-19 2007-01-25 Koninklijke Philips Electronics N.V. Electronic device and method of communication resource allocation
JP2009110512A (ja) * 2007-10-29 2009-05-21 Internatl Business Mach Corp <Ibm> ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法
JP2009116872A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
US20090125574A1 (en) * 2007-11-12 2009-05-14 Mejdrich Eric O Software Pipelining On a Network On Chip

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5673554B2 (ja) * 2009-12-07 2015-02-18 日本電気株式会社 オンチップ並列処理システム及び通信方法
WO2011070913A1 (ja) * 2009-12-07 2011-06-16 日本電気株式会社 オンチップ並列処理システム及び通信方法
JP2014186509A (ja) * 2013-03-22 2014-10-02 Research Organization Of Information & Systems 半導体チップ、半導体チップ接続システム
JP2021082317A (ja) * 2017-02-23 2021-05-27 セレブラス システムズ インク. 加速化ディープラーニング
US11934945B2 (en) 2017-02-23 2024-03-19 Cerebras Systems Inc. Accelerated deep learning
US11232348B2 (en) 2017-04-17 2022-01-25 Cerebras Systems Inc. Data structure descriptors for deep learning acceleration
US11475282B2 (en) 2017-04-17 2022-10-18 Cerebras Systems Inc. Microthreading for accelerated deep learning
JP2021108157A (ja) * 2017-04-17 2021-07-29 セレブラス システムズ インク. 加速化ディープラーニングのタスクアクティベーション
JP2021108131A (ja) * 2017-04-17 2021-07-29 セレブラス システムズ インク. 加速化ディープラーニングのデータフロー・トリガー・タスク
US11157806B2 (en) 2017-04-17 2021-10-26 Cerebras Systems Inc. Task activating for accelerated deep learning
JP2020205067A (ja) * 2017-04-17 2020-12-24 セレブラス システムズ インク. 加速化ディープラーニングのニューロンスメアリング
US11232347B2 (en) 2017-04-17 2022-01-25 Cerebras Systems Inc. Fabric vectors for deep learning acceleration
JP2020517030A (ja) * 2017-04-17 2020-06-11 セレブラス システムズ インク. ディープラーニング加速化のためのデータ構造記述子
JP7260879B2 (ja) 2017-04-17 2023-04-19 セレブラス システムズ インク. ディープラーニング加速化のためのデータ構造記述子
JP7233656B2 (ja) 2017-04-17 2023-03-07 セレブラス システムズ インク. 加速化ディープラーニングのタスクアクティベーション
US11062200B2 (en) 2017-04-17 2021-07-13 Cerebras Systems Inc. Task synchronization for accelerated deep learning
US11488004B2 (en) 2017-04-17 2022-11-01 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
US11328207B2 (en) 2018-08-28 2022-05-10 Cerebras Systems Inc. Scaled compute fabric for accelerated deep learning
US11328208B2 (en) 2018-08-29 2022-05-10 Cerebras Systems Inc. Processor element redundancy for accelerated deep learning
US11321087B2 (en) 2018-08-29 2022-05-03 Cerebras Systems Inc. ISA enhancements for accelerated deep learning
JP7393847B2 (ja) 2019-10-25 2023-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーション パイプラインにおけるタスクの並列度の動的な変更

Also Published As

Publication number Publication date
US20090138567A1 (en) 2009-05-28
US7873701B2 (en) 2011-01-18
JP5294806B2 (ja) 2013-09-18

Similar Documents

Publication Publication Date Title
JP5294806B2 (ja) デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)
US8526422B2 (en) Network on chip with partitions
US8726295B2 (en) Network on chip with an I/O accelerator
JP5285375B2 (ja) ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法
US8490110B2 (en) Network on chip with a low latency, high bandwidth application messaging interconnect
US8020168B2 (en) Dynamic virtual software pipelining on a network on chip
US8040799B2 (en) Network on chip with minimum guaranteed bandwidth for virtual communications channels
US7991978B2 (en) Network on chip with low latency, high bandwidth application messaging interconnects that abstract hardware inter-thread data communications into an architected state of a processor
JP5363064B2 (ja) ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
US8898396B2 (en) Software pipelining on a network on chip
US20090282211A1 (en) Network On Chip With Partitions
US9864712B2 (en) Shared receive queue allocation for network on a chip communication
US8494833B2 (en) Emulating a computer run time environment
US8010750B2 (en) Network on chip that maintains cache coherency with invalidate commands
US7917703B2 (en) Network on chip that maintains cache coherency with invalidate commands
US7861065B2 (en) Preferential dispatching of computer program instructions
US9075623B2 (en) External auxiliary execution unit interface for format conversion of instruction from issue unit to off-chip auxiliary execution unit
US7958340B2 (en) Monitoring software pipeline performance on a network on chip
US20090125703A1 (en) Context Switching on a Network On Chip
US20140229713A1 (en) Extensible execution unit interface architecture

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130611

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees