(57)【要約】  複数の処理モジュール（Ｍ、Ｓ）、及び処理モジュール（Ｍ、Ｓ）を結合するように構成されたネットワーク（Ｎ）を有する集積回路が提供される。当該集積回路は、アトミック処理を第１のトランザクションに符号化し、且つ該第１のトランザクションを少なくとも１つの第２処理モジュール（Ｓ）に発信する第１処理モジュール（Ｍ）を有する。さらに、発信された第１のトランザクションを少なくとも１つの第２のトランザクションに復号化するトランザクション復号化手段（ＴＤＭ）が設けられる。
2007535057.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理モジュール、及び該モジュールを結合するように構成されたネットワークを有する集積回路であって、
アトミック処理を第１のトランザクションに符号化し、且つ該第１のトランザクションを少なくとも１つの第２処理モジュールに発信する第１処理モジュール、及び
発信された前記第１のトランザクションを少なくとも１つの第２のトランザクションに復号化するトランザクション復号化手段、
を有する集積回路。
【請求項２】
前記第１処理モジュールが、前記アトミック処理の実行を管理するために前記トランザクション復号化手段によって必要とされる全情報を前記第１のトランザクションに含めるように適応されている、ところの請求項１に記載の集積回路。
【請求項３】
前記第１のトランザクションが前記第１処理モジュールから前記ネットワーク上で前記トランザクション復号化手段まで送られる、ところの請求項２に記載の集積回路。
【請求項４】
前記トランザクション復号化手段が、前記第２処理モジュールへの要求を入れる要求バッファ、該第２処理モジュールからの応答を入れる応答バッファ、及び入ってくる要求を点検し、且つ該第２処理モジュールに信号を発信するメッセージ処理器を有する、ところの請求項１に記載の集積回路。
【請求項５】
前記第１のトランザクションが、コマンド並びに必要によりコマンドフラグ及びアドレスを具備するヘッダと、０、１又は２つ以上の値を具備するペイロードとを有し、且つ
前記コマンドの実行が前記メッセージ処理器によって開始される、
ところの請求項４に記載の集積回路。
【請求項６】
複数の処理モジュール、及び該モジュールを結合するように構成されたネットワークを有する集積回路においてトランザクションを発信する方法であって：
第１の処理モジュールによって、アトミック処理を第１のトランザクションに符号化し、且つ該第１のトランザクションを少なくとも１つの第２処理モジュールに発信する段階、及び
トランザクション復号化手段によって、発信された前記第１のトランザクションを少なくとも１つの第２のトランザクションに復号化する段階、
を有する方法。
【請求項７】
複数の処理モジュール、及び該モジュールを結合するように構成されたネットワークを有するデータ処理システムであって、
アトミック処理を第１のトランザクションに符号化し、且つ該第１のトランザクションを少なくとも１つの第２処理モジュールに発信する第１処理モジュール、及び
発信された前記第１のトランザクションを少なくとも１つの第２のトランザクションに復号化するトランザクション復号化手段、
を有するデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理モジュール及び処理モジュール間の接続を提供するように構成されたネットワークを有する集積回路、そのような集積回路におけるトランザクション発信方法、並びにデータ処理システムに関する。
【背景技術】
【０００２】
システム・オン・シリコンは、新機能の追加と既存機能の向上とに対する増し続ける要求を受け、複雑さを増し続けている。このことは、集積回路上に集積される部品密度を一層高めることによって可能にされている。同時に、回路が動作するクロック速度も高速化する傾向にある。より高いクロック速度は、部品の高密度化と相まって、同一クロック範囲内で同期して動作可能な領域を狭めてきた。このため、モジュール手法の必要性が生じている。このような手法に従って、処理システムは複数の比較的独立で複雑なモジュールを有する。伝統的な処理システムでは、通常、システムモジュールはバスを介して互いに通信する。しかしながら、モジュール数が増加するにつれ、この通信手法は以下の理由によりもはや実用的ではなくなっている。すなわち、一方では、多数のモジュールによってバスに過大な負荷が形成され、他方では、バスは１つの装置のみがバスにデータを送ることを可能にするだけであるので、バスが通信のボトルネックを形成している。通信ネットワークはこれらの欠点を解決する有効な手法である。
【０００３】
ネットワーク・オン・チップ（ＮｏＣ）は、高度に複雑化したチップにおける相互接続問題の解決策として、最近かなりの注目を集めている。その理由は２つの要素から成る。第１に、ＮｏＣは新しいディープサブミクロン技術における電気的問題を解決する助けとなる。なぜなら、ＮｏＣは全体的な配線を構築かつ管理するからである。同時に、ＮｏＣは配線を共有して配線数を削減し、その利用率を高める。ＮｏＣはまた、エネルギー効率が良く、信頼性が高いものとなり得るとともに、バスに比べて拡張性がある。第２に、ＮｏＣは演算処理を通信から分離するが、このことは莫大な数のトランジスタチップの設計を管理することにおいて不可欠なことである。ＮｏＣがこの分離を実現することができるのは、ＮｏＣは伝統的にプロトコルスタックを用いて設計されるが、プロトコルスタックは通信サービスの使用をサービスの遂行から分離する洗練されたインターフェースを提供するものであるためである。
【０００４】
しかしながら、システム・オン・チップ（ＳｏＣ）を設計する際にオンチップ通信用のネットワークを用いる場合、多数の新たな課題が考慮されなければならない。これは、通信モジュールが直接的に接続される既存のオンチップ相互接続（例えば、バス、スイッチ、又はポイントツーポイント配線）と対照的に、ＮｏＣではネットワークノードを介して遠隔で通信するためである。その結果、相互接続の調停（アービトレーション）は集中型から分散型に変わり、順序がバラバラなトランザクション、より長い待ち時間（レイテンシ）、及びエンドツーエンドのフロー制御のような問題がインテレクチュアル・プロパティ・ブロック（intellectual  property  block；ＩＰ）又はネットワークの何れかによって処理されなければならない。
【０００５】
これらの問題のほとんどは、ローカル及びワイド・エリア・ネットワーク（コンピュータ・ネットワーク）の分野で、また、並列マシン相互接続ネットワークとして、既に研究主題とされてきた。何れもオンチップ・ネットワークと密接に関連しており、それらの分野での結果の多くがチップにも適用可能である。しかしながら、ＮｏＣの前提はオフチップ・ネットワークとは異なっており、故に、ネットワーク設計の選択肢のほとんどが再評価されなければならない。オンチップ・ネットワークは、設計上の異なる選択につながる異なる特性（例えば、より厳しいリンクの同期化）及び制約（例えば、より高いメモリコスト）を有し、それらは最終的にネットワーク・サービスに影響を及ぼす。
【０００６】
ＮｏＣはオフチップ・ネットワークとは主にそれらの制約及び同期化の点で異なる。一般に、資源制約はオンチップの方がオフチップよりも厳しい。記憶装置（すなわち、メモリ）及び演算処理資源が比較的高価である一方で、ポイントツーポイント・リンク数はオンチップの方がオフチップより多い。例えばＲＡＭ等の汎用オンチップ・メモリは大面積を占有するので、記憶装置は高価である。メモリを比較的小型のネットワーク要素に分散させることは、メモリの間接領域が支配的になるので、さらに好ましくない。
【０００７】
オンチップ・ネットワークでは、演算処理は確かにオフチップ・ネットワークと比較して高コストになる。オフチップ・ネットワークのインターフェースは通常、ホストプロセッサを通信処理から開放するために、ネットワーク・レイヤー又はより上位のレイヤーまでのプロトコルスタックを実行する専用プロセッサを有する。専用プロセッサをネットワーク・インターフェースに含めることはチップ上では実用的ではない。なぜなら、ネットワーク・インターフェースの大きさはネットワークに接続されるＩＰと同等以上となるからである。さらに、プロトコルスタックをＩＰ自体で実行することもまた、実用的でない場合がある。なぜなら、これらのＩＰは１つの専用機能のみを有し、ネットワーク・プロトコルスタックを実行するだけの性能がないことが多いからである。
【０００８】
コンピュータ・ネットワーク技術は、一般に、バッファサイクルを導入可能な不規則な（場合により動的な）構造を有する。デッドロックもまた、例えば、接続形態（トポロジ）又は経路選択の何れかに制約を導入することによって回避可能である。ＮｏＣのためにFat-treeトポロジが既に検討されており、バッファ・オーバーフローの場合にネットワーク内でパケットを跳ね返すことによってデッドロックが回避される。システム設計のタイルベース手法はメッシュ又はトーラス・ネットワーク・トポロジを使用し、例えば、ターンモデル（turn-model）の経路選択アルゴリズムを用いてデッドロックは回避可能にされる。デッドロックは主としてバッファ内のサイクルによって引き起こされる。デッドロックを回避するため、経路選択は無サイクルでなければならない。なぜなら、より低コストで信頼できる通信を実現できるからである。デッドロックの第２の要因はトランザクションのアトミック・チェーン（atomic  chain）である。モジュールがロックされたときに、トランザクションを保存する待ち行列がアトミック・トランザクション・チェーンの外部のトランザクションで満たされ、ロックされたモジュールに到達すべきチェーンに含まれるトランザクションのアクセスを遮断してしまい得ることが理由である。アトミック・トランザクション・チェーンが実行されなければならない場合、ネットワークノードはアトミック・チェーン内のトランザクションをフィルタリング可能であるべきである。
【０００９】
ネットワークをオンチップ相互接続として導入することは、例えばバス又はスイッチ等の直接相互接続と比較して、通信を根本的に変えるものである。なぜなら、通信モジュールが直接的に接続されずに、１つ以上のネットワークノードによって分離されているという、ネットワークのマルチホップ性のためである。このことは、モジュールが直接接続される一般的な既存の相互接続（例えば、バス）と対照的である。この変化から予期されることは、アービトレーション（これは集中型から分散型に変えられなければならない）及び通信特性（例えば、順序付け又はフロー制御）に属する。
【００１０】
最新のオンチップ通信プロトコル（例えば、デバイス・トランザクション・レベルＤＴＬ、オープン・コア・プロトコルＯＣＰ及びＡＸＩプロトコル）は、トランザクションが要求と応答とから成る、分割され且つパイプライン化された基盤上で動作し、マスターから発信された要求がスレーブによって受け取られた後に、バスは他による使用のために解放される。分割されパイプライン化された通信プロトコルは特にマルチホップ相互接続（例えば、ネットワーク・オン・チップ、又はブリッジを有するバス）で使用され、相互接続の効率的な使用を可能にする。
【００１１】
マルチホップ相互接続に伴う困難の１つは、アトミック処理（例えば、検査・設定、スワップ比較など）を如何にして実行するかである。トランザクションのアトミック・チェーンは単一のマスターによって開始され、単一のスレーブで独占的に実行される一連のトランザクションである。すなわち、一旦、チェーン内の最初のトランザクションがスレーブへのアクセスを要求すると、他のマスターはそのスレーブへのアクセスを拒否される。アトミック処理は、典型的に、相互排除やセマフォ（semaphore）等の高度な処理を実行する多重処理システムにて用いられ、故に、マスターモジュール間の同期機構（例えば、セマフォ）を実行するために広く用いられている。
【００１２】
アトミック処理（単純化のため、ここでは検査・設定（test-and-set）処理のみが述べられるが、その他のアトミック処理も同様に処理され得る）を実行する手法には現在２つ、すなわち、ａ）排他制御（ロック）、又はｂ）フラグがある。アトミック処理は、そのアトミック処理を要求しているマスターによる排他的使用のために相互接続をロックすることにより実行可能である。ロックを用いると、すなわち、アトミック処理が完了するまでマスターが資源をロックすると、トランザクションは常に成功するが、これでは開始されるのに時間が掛かる場合があり、他に影響を及ぼすことになる。換言すれば、相互接続、スレーブ、又はアドレス空間の部分がマスターによってロックされるが、そのことが意味するのは、ロックされている間、その他の如何なるマスターもそのロックされた物にアクセスできないということである。このようにアトミシティ（atomicity）は容易に実現されるが、特にマルチホップ相互接続においては、性能面での不利益を伴う。一旦マスターがバスへのアクセスを許可されると、チェーン内の全トランザクションを素早く実行することが可能であり、チェーン内の後続トランザクションには調停遅延は不要であるので、資源がロックされる時間は短くなる。従って、ロックされたスレーブや相互接続は短時間で再び解放されることが可能である。
【００１３】
さらに、アトミック処理は、フラグ設定によりロックされたスレーブへのアクセス許可を制限することによって実行される場合もある。すなわち、使用中であるとしてマスターが資源に合図を送り、アトミック・トランザクションが完了するまでフラグがそのまま設定されているときはアトミック・トランザクションが成功し、そうでなければ失敗する。この場合、アトミック・トランザクションはより速く実行されて他に影響を及ぼさないが、失敗する可能性もある。ここで、排他的アクセスの場合に関しては、アトミック処理は対を為す２つのトランザクションであるReadLinked及びWriteConditionalに制限される。ReadLinkedの後に、スレーブ又はアドレス範囲（スレーブ領域とも呼ばれる）にフラグ（最初はリセット）が設定される。その後、WriteConditionalが試みられるが、フラグがそのまま設定されているときにはWriteConditionalは成功する。フラグにより印を付けられたスレーブ又はスレーブ範囲上でその他の書き込みが実行されるとき、フラグはリセットされる。相互接続はロックされず、依然として他のモジュールによって使用可能であるが、スレーブのロック時間が長くなるという代償を伴う。
【００１４】
第２は、何がロック／フラグされているかである。これは相互接続全体、スレーブ（又はスレーブ群）、又はメモリ領域（１つのスレーブ内、若しくは幾つかのスレーブにまたがる）である場合がある。
【００１５】
通常、これらのアトミック処理は、他のトランザクションからの妨害なく連続して実行されなければならない２つのトランザクションから構成される。例えば、検査・設定処理においては、最初に読み出しトランザクションが実行され、読み出し値がゼロ（又はその他の所定値）と比較される。そして、成功した上で書き込みトランザクションによって別の値が書き戻される。アトミック処理を実現するためには、読み出し・書き込みトランザクション間の同一位置では如何なる書き込みトランザクションも許可されるべきではない。
【００１６】
これらの場合、マスター（例えば、ＣＰＵ）は２つ以上のトランザクションをそのようなアトミック処理（すなわち、LockedRead及びWrite、並びにReadLinked及びWriteConditional）のための相互接続上で実行しなければならない。マルチホップ相互接続についてはトランザクションのレイテンシが比較的長く、アトミック処理は不必要に長い待機時間をもたらす。
【００１７】
マルチホップ相互接続における長いレイテンシによって生じるその他の問題は、上記２つの実行手法に特有なものである。ロックすることに関しては、マルチホップ相互接続は分散型のアービトレーションを有し、ロックすることは過大な時間が掛かり、且つアービター間での過大量の通信を含むことになるため、マルチホップ相互接続の全体をロックすることは不可能である。故に、ＡＸＩ及びＯＣＰプロトコルにおいては、相互接続ではなくスレーブ又はスレーブ領域がロックされる。しかしながら、この場合であっても、ロックされたスレーブ又はスレーブ領域はロックしている１つ以外の全マスターからのアクセスを禁止する。故に、その他のマスターからそのスレーブへのトラフィックが相互接続内に蓄積し、ネットワークの混雑状態を引き起こすことになる。これは、ロックされたスレーブ又はスレーブ領域宛てでないトラフィックまで影響を受けることになるため望ましくない。
【００１８】
排他的アクセスに関しては、レイテンシの増大、及び同一のスレーブ又はスレーブ領域にアクセスしようとするマスター数の増大とともに、WriteConditionalが成功する可能性が低下する。
【００１９】
その他のトラフィックへの影響を双方の仕組みで抑制する一解法は、スレーブ領域の大きさを可能な限り小さくすることである。そうした場合、アトミック処理に影響される（ロッキングの場合）、あるいはアトミック処理に影響する（排他的アクセスの場合）入力トラフィックが減少する。しかしながら、多数のロック／フラグを有することの実施コスト、又はそれらを実行するための動的プログラム可能なプログラム表を実現する複雑さが過大になってしまう。
【発明の開示】
【発明が解決しようとする課題】
【００２０】
本発明は、トランザクションのアトミック・チェーンを処理する能力が向上された集積回路を提供することを目的とする。
【課題を解決するための手段】
【００２１】
上記課題に鑑みて提供される、複数の処理モジュール、及び該モジュールを結合するように構成されたネットワークを有する集積回路は、アトミック処理を第１のトランザクションに符号化し、且つ該第１のトランザクションを少なくとも１つの第２処理モジュールに発信する第１処理モジュールを有する。さらに、発信された前記第１のトランザクションを少なくとも１つの第２のトランザクションに復号化するトランザクション復号化手段が設けられる。
【００２２】
このような集積回路においては相互接続への負荷が軽減される。すなわち、相互接続上のメッセージがより少なくなる。従って、アトミック処理に対応するコストが削減されることになる。
【００２３】
本発明の一態様に従って、前記処理モジュールは、前記アトミック処理の実行を管理するために前記トランザクション復号化手段によって必要とされる全情報を前記第１のトランザクションに含めている。従って、必要な全情報がトランザクション復号化手段に送られ、トランザクション復号化手段は第１処理モジュールの相互作用なく、それ自身上で更なる処理段階を実行することができる。
【００２４】
本発明の更なる一態様に従って、前記第１のトランザクションは前記第１処理モジュールから前記ネットワーク上で前記トランザクション復号化手段まで送られる。故に、実行時間が短くなり、それにより、マスター及び接続のロック時間を短くすることが実現される。なぜなら、アトミック・トランザクションは第２処理モジュール側、すなわち、スレーブ側で実行され、第１処理モジュール、すなわち、マスター側では実行されないからである。
【００２５】
本発明の好適な一態様に従って、前記トランザクション復号化手段は、前記第２処理モジュールへの要求を入れる要求バッファ、該第２処理モジュールからの応答を入れる応答バッファ、及び入ってくる要求を点検し、且つ該第２処理モジュールに信号を発信するメッセージ処理器を有する。
【００２６】
本発明の更なる一態様に従って、前記第１のトランザクションは、コマンド並びに必要によりコマンドフラグ及びアドレスを具備するヘッダと、０、１又は２つ以上の値を含むペイロードとを有し、且つ前記コマンドの実行は前記メッセージ処理器によって開始される。単純なＰ及びＶの場合、値が存在しない。拡張されたＰ及びＶ処理は１つの値を有し、TestAndSetは２つの値を有する。
【００２７】
また、本発明に係る、複数の処理モジュール、及び該モジュールを結合するように構成されたネットワークを有する集積回路においてトランザクションを発信する方法では、第１の処理モジュールが、アトミック処理を第１のトランザクションに符号化し、且つ該第１のトランザクションを少なくとも１つの第２処理モジュールに発信する。発信された前記第１のトランザクションは、トランザクション復号化手段によって、少なくとも１つの第２のトランザクションに復号化される。
【００２８】
また、本発明に係る、複数の処理モジュール、及び該モジュールを結合するように構成されたネットワークを有するデータ処理システムは、アトミック処理を第１のトランザクションに符号化し、且つ該第１のトランザクションを少なくとも１つの第２処理モジュールに発信する第１処理モジュールを有する。さらに、発信された前記第１のトランザクションを少なくとも１つの第２のトランザクションに復号化するトランザクション復号化手段が設けられる。
【００２９】
本発明は、アトミック処理を単一のトランザクションに完全に符号化すること、及びその実行をスレーブ、すなわち、受信側に移すことによって、資源がロックされる時間、又は排他的アクセスで資源がフラグで停止される時間を最小限に低減するという考えに基づく。
【発明を実施するための最良の形態】
【００３０】
以下の実施形態はシステム・オン・チップ、すなわち、同一チップ上の複数モジュールが或る種の相互接続を介して互いに通信するものに関する。相互接続は単一チップ又は複数チップに広がるネットワーク・オン・チップＮｏＣとして具体化される。ネットワーク・オン・チップはネットワーク内に配線、バス、時分割多重化、スイッチ、及び／又はルータを有し得る。ネットワークの伝送レイヤーにおいて、モジュール間の通信が接続上で実行される。接続は、第１のモジュールと少なくとも１つの第２のモジュールとの間の、各々が１組の接続特性を有する１組のチャネルと見なされる。第１のモジュールと単一の第２のモジュールとの間の接続では、接続は２つのチャネル、すなわち、第１のモジュールから第２のモジュールへのチャネルである要求チャネルと、第２のモジュールから第１のモジュールへのチャネルである応答チャネルとを有する。要求チャネルは第１のモジュールから第２のモジュールへのデータ及びメッセージのために確保され、一方、応答チャネルは第２のモジュールから第１のモジュールへのデータ及びメッセージのために確保される。しかしながら、接続が１つの第１のモジュールとN個の第２のモジュールとを含む場合には、2N個のチャネルが設けられ得る。接続特性には、順序付け（順々のデータ伝送）、フロー制御（遠隔バッファが接続のために確保されるとともに、生成されたデータのために空間が利用可能であることが保証されるときに限ってデータ生成器がデータを送ることが可能にされる）、処理能力（処理能力の下限が保証される）、レイテンシ（レイテンシの上限が保証される）、損失性（lossiness）（データの劣化）、伝送限界、トランザクションの完全性、データの正確性、優先度、又はデータ配送が含まれ得る。
【００３１】
図１は本発明に従ったシステム・オン・チップを示している。このシステムは、マスターモジュールＭ、２つのスレーブモジュールＳ１、Ｓ２を有する。各モジュールは、それぞれ、ネットワーク・インターフェースＮＩを介してネットワークＮに接続されている。ネットワーク・インターフェースＮＩはマスター及びスレーブモジュールＭ、Ｓ１、Ｓ２とネットワークＮとの間のインターフェースとして用いられる。ネットワーク・インターフェースＮＩは、モジュールがネットワーク又は他のモジュールとの通信を処理する必要なくその専用動作を実行可能なように、それぞれのモジュールとネットワークＮとの通信を管理するために設けられる。ネットワーク・インターフェースＮＩは、例えば読み出しrd、及び書き込みwr等の、要求をネットワーク上で相互に送信することが可能である。
【００３２】
上述のようなモジュールは、ネットワーク・インターフェースＮＩでネットワークと相互作用する所謂ＩＰブロック（演算処理素子、メモリ、又は内部に相互接続モジュールを含むサブシステム）とし得る。
【００３３】
特に、トランザクション復号化手段（ＴＤＭ）がスレーブＳ１、Ｓ２の１つに付随する少なくとも１つのネットワーク・インターフェースＮＩに配置される。アトミック処理は通信プロトコルに含まれる特別なトランザクションとして実行される。目的は、資源がロックされる時間、又は排他的アクセスとともにフラグで停止される時間を最小限に抑えることである。これを実現するため、アトミック処理はマスター側で単一のトランザクションに完全に符号化され、その実行はスレーブ側に移される。
【００３４】
図２Ａ及び２Ｂはその実行を例示している。図２Ａはロックすることによる伝統的なアトミック処理を示しており、図２Ｂは第１の実施形態に従ったアトミック処理を示している。
【００３５】
故に、図２Ａはネットワーク・オン・チップ環境内の第１及び第２のマスターＭ１、Ｍ２とスレーブＳとの間の通信スキームを簡単に表している。第１のマスターＭ１は‘読み出し、ロック’処理、すなわち、スレーブＳ内の値の読み出し、及びスレーブＳのロックを要求し、スレーブＳは応答‘読み出し、ロック’を返し、場合により読み出し値を返す。そして、第２のマスターＭ２からの要求‘書き込み２’が阻止される、すなわち、その実行が遅らせられるように、スレーブＳはマスターＭにロック（Ｌ１）される。マスターＭ１は、スレーブＳから応答‘読み出し、ロック’を受信した後、値をスレーブＳに書き込むために要求‘書き込み１’をスレーブに発信する。マスターＭ１からのこの第２の要求はスレーブＳにより受信され、応答‘書き込み１’がマスターＭ１に転送され、そして、処理が終了するとスレーブＳのロックが解除される。従って、スレーブＳはＬ１からＬ２までロックされ、要求‘書き込み２’はＬ２、すなわち、スレーブＳの解放まで阻止される。スレーブＳは、今度は、第２のマスターＭ２からの要求‘書き込み２’に進むことができる。
【００３６】
図２Ｂは第１実施形態に従ったネットワーク・オン・チップ環境内の第１及び第２のマスターＭ１、Ｍ２とスレーブＳとの間の通信スキームを簡単に表している。マスターＭ１は‘検査・設定’処理を要求している。スレーブ側でその要求を処理するための全情報が、マスターＭ１によって単一のアトミック処理に含められている。単一のアトミック処理‘検査・設定’はスレーブに付随するトランザクション復号化手段ＴＤＭによって受信される。トランザクション復号化手段ＴＤＭによってトランザクションの実行命令が出される。スレーブは、要求された処理を実行し、トランザクションの実行が完了すると応答‘検査・設定’を発信する。スレーブは、Ｌ１０にて第１の要求を受信するとマスターＭ１にロックされ、そのトランザクションの実行を完了し、Ｌ２０にて応答‘検査・設定’を発信したとき解放される。従って、第２のマスターＭ２からの要求‘書き込み’はスレーブがＬ２０にて解放されるまで阻止される。
【００３７】
換言すれば、スレーブは、図２Ａに示されるような実行よりも遙かに短い、スレーブでのアトミック処理の実行中だけ遮断される。さらに、マスター自体でアトミック処理を実行する必要がないので、マスターはより簡易なものとなる。マスター（これはアトミック処理の部分を実行する必要がない）への負荷はより小さくなる。しかしながら、再利用可能な相互接続、特にネットワーク・インターフェースが代わりに複雑となる。
【００３８】
図２Ａと図２Ｂとに示されるような通信スキームを比較すると、図２Ａに従った伝統的な実現におけるロック時間（Ｌ１からＬ２）の方が長いことが見て取れる。なぜなら、マスターＭ１がアトミック処理、すなわち、要求‘読み出し、ロック’及び要求‘書き込み１’の実行に関与しているからである。故に、ネットワークのレイテンシの２倍とマスターＭ１がアトミック処理の自身の部分を実行する時間とを足し合わせた時間中、スレーブＳはロックされる。この時間の全てにおいて、（例えば、マスターＭ２からの）スレーブＳ宛てのトラフィックは阻止される。
【００３９】
図３Ａ及び３Ｂは、好適な実施形態である第２の実施形態に従ったアトミック処理の実行スキームを示している。図３Ａはロックすることによる伝統的なアトミック処理を示しており、図２Ｂは第２の実施形態に従ったアトミック処理を示している。
【００４０】
図３Ａには、特に、図１に示されるようなマスターＭとスレーブＳとの間の通信がマスターＭの中間ネットワーク・インターフェースＭＮＩ及びスレーブＳの中間ネットワーク・インターフェースＳＮＩとともに示されている。具体的に、２つの実行例、すなわち、第１の実行処理例ex1としてのLockedRead及び第２の実行処理例ex2としてのReadLinkedについて基本原理を説明する。
【００４１】
マスターMは第１のトランザクションt1を発信する。このトランザクションt1は実行処理ex1であるLockedRead、又は実行処理ex2であるReadLinkedとすることができる。トランザクションt1はマスターMのネットワーク・インターフェースＭＮＩへ、ネットワークＮを介してスレーブのネットワーク・インターフェースＳＮＩへ、そして最終的にスレーブＳへと転送される。スレーブＳはトランザクションt1を実行し、場合により、ネットワーク・インターフェースＳＮＩ及びマスターに付随するネットワーク・インターフェースＭＮＩを介してマスターにデータを返す。その間、スレーブＳは実行処理LockedRead又はReadLinkedのために遮断され、それぞれ、実行処理Write又はWriteConditionalのためにフラグで停止される。マスターMはスレーブの応答を受信すると、第２のトランザクションt2を実行する。トランザクションt2は上述の実行処理ex1及びex2の何れの場合も比較（comparison）である。その後、マスターMは第３のトランザクションt3をスレーブに発信する。トランザクションt3は実行処理ex1の場合にはWriteコマンド、実行処理ex2の場合にはWriteConditionalコマンドである。スレーブＳはこのコマンドを受信し対応する応答を返す。その後、スレーブＳは解放される。
【００４２】
図３Ｂは第２実施形態に従ったネットワーク・オン・チップ環境内のマスターＭとスレーブＳとの間の通信スキームを簡単に表している。基礎を成すネットワーク・オン・チップ環境の基本構造は図３Ａに記載された環境に対応しているが、ネットワーク・オン・チップ環境にトランザクション復号化手段ＴＤＭがさらに含まれている。マスターＭはTestAndSetのようなアトミック・トランザクションtaを発信し、アトミック・トランザクションtaはマスターMのネットワーク・インターフェースＭＮＩを介してトランザクション復号化手段ＴＤＭに転送される。
【００４３】
図３Ａに従って述べられたように、TestAndSetコマンドから成るアトミック・トランザクションtaの実行又は復号化に関し、２つの異なる実行処理例、すなわち、第１の実行処理例ex1としてのLockedRead及びWrite、並びに第２の実行処理例ex2としてのReadLinked及びWriteConditionalについて説明する。
【００４４】
マスターMがアトミック・トランザクションtaを発信する。アトミック・トランザクションtaの復号化と、図３Aに従って上述されたようにマスターMによって実行されていた第１、第２及び第３のトランザクションt1、t2、t3の処理とは、ここでは、トランザクション復号化手段ＴＤＭによって実行される。故に、トランザクション復号化手段ＴＤＭはアトミック・トランザクションtaをトランザクションt1、すなわち、第１又は第２の実行処理例ex1又はex2に復号化する。従って、スレーブＳがスレーブに付随するネットワーク・インターフェースＳＮＩを介してトランザクション復号化手段ＴＤＭから第１のトランザクションt1、すなわち、ex1又はex2を受信するとすぐに、第１のトランザクションt1が実行され、スレーブは、場合によりデータを含む応答をトランザクション復号化手段ＴＤＭに発信する。トランザクション復号化手段ＴＤＭは、第２のトランザクションt2に従って比較を行う。すなわち、第１又は第２の実行処理例ex1又はex2に従って何れの場合も比較を行う。その後、トランザクション復号化手段ＴＤＭはex1としてWrite、又はex2としてWriteConditionalトランザクションをスレーブＳに発信する。スレーブＳは第３のトランザクションを実行し、そして、LockedRead及びWrite、すなわち、第１の実行処理例ex1の場合と、フラグがそのまま設定されていてReadLinked及びWriteConditional、すなわち、第２の実行処理例ex2が成功した場合とには、スレーブのロックを解除する。対応する応答がマスターMに発信される。
【００４５】
図３Bに示されるように、ネットワーク上を転送されなければならないトランザクションはより少なくなる。さらに、発信されなければならないアトミック・トランザクションは単に１つであり、その上、このアトミック・トランザクションはトランザクション復号化手段ＴＤＭで複数のより単純なトランザクションに費やされるので、マスターMの処理負荷は軽減される。第２実施形態に従ったマスターＭは、幾つかの処理段階がマスターＭではなくトランザクション復号化手段ＴＤＭで実行されるので、アトミック・トランザクションに気付かなければならない。例えば、第１及び第２のトランザクションt1及びt3間の比較t2はトランザクション復号化手段ＴＤＭによって実行される。
【００４６】
あるいは、スレーブもまたアトミック・トランザクションに気付いてもよい。しかし、この場合、トランザクション復号化手段ＴＤＭはスレーブＳの一部であってもよい。これにより、トランザクション復号化手段ＴＤＭがネットワークから移されてスレーブ内に配置されるので、ネットワークが簡略化される結果になる。さらに、それにより、より少ないトランザクションがスレーブに付随するネットワーク・インターフェースＳＮＩとスレーブ自体との間を通ることになる。特に、これはアトミック・トランザクションだけであってもよい。
【００４７】
アトミック・トランザクションの例として検査・設定、及び比較・交換（swap）が挙げられる。何れの場合も、２つのデータ値、比較される値（CMPVAL）及び書き込まれる値（WRVAL）がトランザクションの要求によって伝えられなければならない。何れの例でも、CMPVALはトランザクションのアドレスにある値と比較される。それらが同一の場合、WRVALが書き込まれる。スレーブからの応答は検査・設定のための位置にある新たな値、及び比較・交換のための以前の値である。なお、単純な比較の代わりに何れかのブール関数（例えば、後述されるセマフォ拡張機能で使用される“以下”）とすることも可能である。
【００４８】
より高度で、トランザクションの観点から一層単純なのは、セマフォ・トランザクションである。これは、如何なるパラメータも用いずにＰ及びＶを呼び出すものである。Ｐはトランザクションで指定されたアドレスへのアクセスがあるまで待ち、そしてトランザクションのアドレスによって指定された位置の値を減少させようと試みる。値が正である場合、その値を減少させ、成功が返される。値がゼロ又は負である場合、その値は変えられずに失敗が返される。Ｖは常に成功し、指定されたアドレスの位置を増加させる。
【００４９】
Ｐ及びＶトランザクションの拡張が可能であり、その場合、増加／減少されるべき値（VAL）がＰ／Ｖトランザクションのデータパラメータとして指定される。トランザクションのアドレスでの値がVAL以上である場合、Ｐはトランザクションのアドレスの位置をVALだけ減少させ、成功を返す。そうでない場合、その位置を変えずに残し、失敗を返す。Ｖはアドレスされた位置をVALだけ増加させることに常に成功する。
【００５０】
本発明は処理をトランザクションとして符号化することに関し、この符号化はスレーブ側の相互接続において実装且つ実行される。
【００５１】
検査・設定トランザクションは特に、大きなレイテンシの相互接続（例えば、ブリッジを備えるバス、ネットワーク・オン・チップ）を有するＩＣ設計で問題となる。このような相互接続は本質的にチップを複雑化するものである。
【００５２】
上述された検査・設定トランザクションの利点として、相互接続をロックする必要がないことが挙げられる。相互接続に課される負荷はより小さい（すなわち、メッセージはより少ない）ものである。マスターでの検査・設定処理の実行時間はより短い。ＣＰＵ／マスターは、検査・設定処理（読み出し、比較、書き込み）の３つの命令の代わりに単に１つの命令を実行することを必要とする。さらに、アトミック処理を支援するコストが低減される。しかしながら、現行のＣＰＵはそのような命令を未だ提供していないという問題がある。
【００５３】
図４は、第１実施形態に従ったメッセージ構造を示している。ここでは、要求メッセージはヘッダhd及びペイロードplから構成されている。ヘッダhdはコマンドcmd（例えば、読み出し、書き込み、検査・設定）、フラグ（例えば、ペイロードのサイズ、ビットマスク、バッファ化）、及びアドレスから成る。ペイロードplはエンプティ（例えば、読み出しコマンドに対して）であってもよいし、１つの値v1（例えば、書き込みコマンド）又は２つの値V1、V2（例えば、検査・設定コマンド）を含んでもよい。
【００５４】
図５は受信側、すなわち、スレーブＳとそれに付随するネットワーク・インターフェースＮＩとを示している。スレーブのネットワーク・インターフェースと、特にトランザクション復号化手段ＴＤＭとが検査・設定処理を実行する。図には、ネットワーク・インターフェース内の検査・設定処理の実行に関与する部分のみ、すなわち、トランザクション復号化手段ＴＤＭが示されている。
【００５５】
スレーブのネットワーク・インターフェース内のトランザクション復号化手段ＴＤＭは、２つのメッセージ待ち行列、すなわち、要求バッファREQB及び応答バッファRESB、メッセージ処理器MP、比較器CMP、比較器バッファCMPB及び選択器SELを含んでいる。トランザクション復号化手段ＴＤＭは要求バッファREQBに接続された要求入力、応答バッファRESBの出力に接続された応答出力、スレーブに書き込まれるデータwr_dataのための出力、スレーブから出力されるデータrd_dataのための入力、スレーブ内のアドレスadressのための制御出力、読み出し／書き込みwr/rdを選択するための選択出力、書き込み有効wr_validの出力、読み出し承認rd_acceptの出力、書き込み承認wr_acceptの入力、及び読み出し有効rd_validの入力を有している。メッセージ処理器MPは以下の入力を有している。すなわち、要求バッファREQBの出力、書き込み承認入力wr_accept、読み出し有効入力rd_valid、及び比較器CMPの結果出力resを有している。メッセージ処理器は以下の出力を有している。すなわち、アドレス出力、書き込み／読み出し選択出力wr/rd、書き込み有効出力wr_valid、読み出し承認出力rd_accept、選択器への選択信号SEL、書き込み可能信号wr_en、読み出し可能信号rd_en、比較器への読み出し可能信号cren、及び比較器への書き込み可能信号cwenを有している。
【００５６】
要求バッファすなわち待ち行列REQBは、ネットワークを介してマスターから受信し、スレーブに配送されるべき要求（例えば、読み出し、書き込み、フラグを具備する検査・設定コマンド、アドレス及び場合によりデータ）を収容可能である。応答バッファすなわち待ち行列RESBは、コマンド（例えば、データ読み出し、受信確認）への応答としてスレーブによって作成されたマスターへのメッセージを収容可能である。
【００５７】
さらに、メッセージ処理器MPは、要求バッファREQBに入力されようとする各メッセージヘッダhdを点検し、ヘッダhd内のコマンドcmd及びフラグに応じて信号をスレーブに向けて送り出す。仮に書き込みコマンドの場合、メッセージ処理器MPはwr/rd信号を書き込みに設定し、wr_validを設定することによりwr_data出力にデータを供給する。読み出しコマンドに関しては、メッセージ処理器MPはwr/rd信号を読み出しに設定するとともに、読み出しデータrd_dataを通過させるように選択器SELを設定する。rd_data入力に読み出しデータが存在するとき（すなわち、rd_validが高（high）のとき）、rd_enが設定され（すなわち、受け取りの準備がされ）、応答待ち行列がデータを受理すると（単純化のため、信号は図示せず）、rd_acceptが生成される。選択器SELは要求バッファREQB出力又はrd_data出力を、メッセージ処理器MPの選択信号SELに応じて応答バッファRESB又は比較器バッファCMPBへと転送する。
【００５８】
検査・設定コマンドに関しては、メッセージ処理器MPは先ず、読み出しコマンドをスレーブに発信し、受信データを比較器バッファすなわち待ち行列CMPBに保存する。そして、メッセージ処理器MPは要求バッファREQB及び比較器バッファCMPBの双方を作動させ、比較器CMPを介してサイズがNワードのデータを作成する。ワードの何れのペアも同一ワードを有する場合、比較検査は成功に終わり、要求バッファすなわち待ち行列REQB（これもまた、サイズはＮワードである）内の次の値がスレーブＳに書き込まれる。この場合、書き込まれた値は応答待ち行列RESBを介してマスターMにもそのまま返される。検査が失敗した場合、要求待ち行列内の第２の値が廃棄され（すなわち、スレーブに書き込まれない）、応答待ち行列RESBを介してマスターに戻される同一アドレスに第２の読み出しが発信される。
【００５９】
図６は、図５に示される受信側の代替構成を示す概略図である。図６の構成の動作は図５の構成の動作と実質的に対応している。図６の構成は図５の構成に対応しているが、図５のメッセージ処理器MPが２つの部分、すなわち、メッセージ処理器MP、及びメッセージ処理器MPとスレーブＳとの間のプロトコルシェルPSに分離されている。ここで、トランザクション復号化手段ＴＤＭに対応するそれらの部分、すなわち、メッセージ処理器MP、比較器CMP、比較器待ち行列CMPB及び選択器selを破線で取り囲んでいる。要求待ち行列REQB及び応答待ち行列RESPBはネットワークＮの部分とし得る。
【００６０】
プロトコルシェルPSはメッセージ処理器MPのメッセージを、スレーブＳが通信可能なプロトコル、例えばバスプロトコルに翻訳する働きをする。特に、トランザクション要求t_req、トランザクション要求有効性t_req_valid、及びトランザクション要求承認t_req_acceptのメッセージ又は信号、並びにトランザクション応答t_resp、トランザクション応答有効性t_resp_valid、及びトランザクション応答承認t_resp_acceptの信号は、図５に従って述べられたようなスレーブＳのそれぞれの出力信号と入力信号とに翻訳される。
【００６１】
あるいは、トランザクション復号化手段ＴＤＭ及びプロトコルシェルPSは、スレーブＳに付随するネットワーク・インターフェースＮＩに実装されてもよいし、ネットワークＮの部分として実装されてもよい。
【００６２】
上述のネットワーク・オン・チップは単一チップ上、又は複数チップ環境内の何れにも実装し得るものである。
【００６３】
上述の実施形態は本発明を例示するものであり、本発明を限定するものではない。また、当業者によって、添付の請求項の範囲を逸脱することなく、多数の代替実施形態が設計され得るものである。請求項において、用語“有する”は列挙された要素若しくはステップ以外の要素若しくはステップの存在を排除するものではない。要素の前に置かれた用語“或る”はその要素が複数存在することを排除するものではない。幾つかの手段を列挙するデバイスの請求項において、これらの手段の幾つかは１つ且つ同一のハードウェア品目によって具体化され得るものである。ある特定の手段が相互に異なる従属項に挙げられているという単なる事実は、これらの手段の組み合わせが効果的に用いられ得ないことを指し示すものではない。
【図面の簡単な説明】
【００６４】
【図１】第１実施形態に従ったシステム・オン・チップを示す概略図である。
【図２】Ａは、第１実施形態に従った、アトミック処理を実行する仕組みを示す図である。Ｂは、第１実施形態に従った、アトミック処理を実行する仕組みを示す図である。
【図３】Ａは、第２実施形態に従った、アトミック処理を実行する仕組みを示す図である。Ｂ、第２実施形態に従った、アトミック処理を実行する仕組みを示す図である。
【図４】好適な実施形態に従ったメッセージ構造を示す図である。
【図５】宛先モジュール及びそれに付随するネットワーク・インターフェースの受信側を示す概略図である。
【図６】宛先モジュール及びそれに付随するネットワーク・インターフェースの受信側の変形例を示す概略図である。
【図１】
2007535057.tif 000003
【図２】
2007535057.tif 000004
【図３】
2007535057.tif 000005
【図４】
2007535057.tif 000006
【図５】
2007535057.tif 000007
【図６】
2007535057.tif 000008
【国際調査報告】
2007535057.tif 000009
2007535057.tif 000010