(57)【要約】  複数の処理モジュール（Ｉ、Ｔ）を有する集積回路が提供される。少なくとも１つの第１処理モジュール（Ｉ）が少なくとも１つのトランザクションを少なくとも１つの第２処理モジュール（Ｔ）に発信する。当該集積回路は、前記第２処理モジュール（Ｔ）の状態に従って前記少なくとも１つのトランザクションを撤回する許可を前記少なくとも１つの第１処理モジュール（Ｉ）に示す少なくとも１つの第１トランザクション撤回ユニット（ＴＲＵ１）をさらに有する。
2007534052.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの第１処理モジュールが少なくとも１つのトランザクションを少なくとも１つの第２処理モジュールに発信するところの複数の処理モジュールを有する集積回路であって：
前記第２処理モジュールの状態に従って前記少なくとも１つのトランザクションを撤回する許可を前記少なくとも１つの第１処理モジュールに示す少なくとも１つの第１トランザクション撤回ユニット
を有することを特徴とする集積回路。
【請求項２】
請求項１に記載の集積回路であって、
前記少なくとも１つの第１トランザクション撤回ユニットが前記少なくとも１つの第２処理モジュールに結合されていることを特徴とする集積回路。
【請求項３】
請求項１又は２に記載の集積回路であって、
前記第１処理モジュールに結合され、明示的なトランザクション撤回要求を前記第１トランザクション撤回ユニット又は前記第２処理モジュールに発信する少なくとも１つの第２トランザクション撤回ユニット
をさらに有し、
前記第１トランザクション撤回ユニットが前記トランザクション撤回要求の許可を示すことを特徴とする集積回路。
【請求項４】
請求項３に記載の集積回路であって、
前記第１トランザクション撤回ユニットが、前記トランザクション撤回要求が存在する場合に、前記トランザクション撤回要求の許可を示すことを特徴とする集積回路。
【請求項５】
請求項１又は２に記載の集積回路であって、
前記第１処理モジュールに結合され、明示的なトランザクション撤回要求を前記第１トランザクション撤回ユニット又は前記第２処理モジュールに発信する少なくとも１つの第２トランザクション撤回ユニット
をさらに有し、
前記第１処理モジュールから発信された有効なコマンドが存在し、該有効なコマンドが前記第２処理モジュールによって受理されておらず、且つ前記トランザクション撤回要求が存在する場合に、前記第１トランザクション撤回ユニットが前記トランザクション撤回要求の許可を示すことを特徴とする集積回路。
【請求項６】
請求項１又は２に記載の集積回路であって、
前記第１処理モジュールから発信された有効なコマンドが存在し、且つ該有効なコマンドが前記第２処理モジュールによって未だ受理されていない場合に、前記第１トランザクション撤回ユニットが要求されたトランザクションの撤回の許可を示すことを特徴とする集積回路。
【請求項７】
複数の処理モジュールを有する集積回路におけるトランザクション撤回方法であって：
少なくとも１つの第１処理モジュールによって少なくとも１つのトランザクションを少なくとも１つの第２処理モジュールに発信するステップ、及び
前記第２処理モジュールの状態に従って前記少なくとも１つのトランザクションを撤回する許可を前記少なくとも１つの第１処理モジュールに示すステップ、
を有することを特徴とする方法。
【請求項８】
少なくとも１つの第１処理モジュールが少なくとも１つのトランザクションを少なくとも１つの第２処理モジュールに発信するところの複数の処理モジュール、及び
前記第２処理モジュールの状態に従って前記少なくとも１つのトランザクションを撤回する許可を前記少なくとも１つの第１処理モジュールに示す少なくとも１つの第１トランザクション撤回ユニット、
を有することを特徴とするデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理モジュール及びその複数の処理モジュールを結合する相互接続手段を有する集積回路、そのような集積回路におけるトランザクション撤回方法、並びにデータ処理システムに関する。
【背景技術】
【０００２】
システム・オン・シリコンは、新機能の追加と既存機能の向上とに対する増し続ける要求を受け、複雑さを増し続けている。このことは、集積回路上に集積される部品密度を一層高めることによって可能にされている。同時に、回路が動作するクロック速度も高速化する傾向にある。より高いクロック速度は、部品の高密度化と相まって、同一クロック範囲内で同期して動作可能な領域を狭めてきた。このため、モジュール手法の必要性が生じている。このような手法に従って、処理システムは複数の比較的独立で複雑なモジュールを有する。伝統的な処理システムでは、通常、システムモジュールはバスを介して互いに通信する。しかしながら、モジュール数が増加するにつれ、この通信手法は以下の理由によりもはや実用的ではなくなっている。すなわち、一方では、多数のモジュールによってバスに過大な負荷が形成され、他方では、バスは１つの装置のみがバスにデータを送ることを可能にするだけであるので、バスが通信のボトルネックを形成している。
【０００３】
通信ネットワークはこれらの欠点を解決する有効な手法である。ネットワーク・オン・チップ（ＮｏＣ）は、高度に複雑化したチップにおける相互接続問題の解決策として、最近かなりの注目を集めている。その理由は２つの要素から成る。第１に、ＮｏＣは新しいディープサブミクロン技術における電気的問題を解決する助けとなる。なぜなら、ＮｏＣは全体的な配線を構築かつ管理するからである。同時に、ＮｏＣは配線を共有して配線数を削減し、その利用率を高める。ＮｏＣはまた、エネルギー効率が良く、信頼性が高いものとなり得るとともに、バスに比べて拡張性がある。第２に、ＮｏＣは演算処理を通信から分離するが、このことは莫大な数のトランジスタチップの設計を管理することにおいて不可欠なことである。ＮｏＣがこの分離を実現することができるのは、ＮｏＣは伝統的にプロトコルスタックを用いて設計されるが、プロトコルスタックは通信サービスの使用をサービスの遂行から分離する洗練されたインターフェースを提供するものであるためである。
【０００４】
しかしながら、システム・オン・チップ（ＳｏＣ）を設計する際にオンチップ通信用のネットワークを用いる場合、多数の新たな課題が考慮されなければならない。これは、通信モジュールが直接的に接続される既存のオンチップ相互接続（例えば、バス、スイッチ、又はポイントツーポイント配線）と対照的に、ＮｏＣではネットワークノードを介して遠隔で通信するためである。その結果、相互接続の調停（アービトレーション）は集中型から分散型に変わり、順序がバラバラなトランザクション、より長い待ち時間、及びエンドツーエンドのフロー制御のような問題がインテレクチュアル・プロパティ・ブロック（intellectual  property  block；ＩＰ）又はネットワークの何れかによって処理されなければならない。
【０００５】
これらの問題のほとんどは、ローカル及びワイド・エリア・ネットワーク（コンピュータ・ネットワーク）の分野で、また、並列マシン相互接続ネットワークとして、既に研究主題とされてきた。何れもオンチップ・ネットワークと密接に関連しており、それらの分野での結果の多くがチップにも適用可能である。しかしながら、ＮｏＣの前提はオフチップ・ネットワークとは異なっており、故に、ネットワーク設計の選択肢のほとんどが再評価されなければならない。オンチップ・ネットワークは、設計上の異なる選択につながる異なる特性（例えば、より厳しいリンクの同期化）及び制約（例えば、より高いメモリコスト）を有し、それらは最終的にネットワーク・サービスに影響を及ぼす。
【０００６】
ＮｏＣはオフチップ・ネットワークとは主にそれらの制約及び同期化の点で異なる。一般に、資源制約はオンチップの方がオフチップよりも厳しい。記憶装置（すなわち、メモリ）及び演算処理資源が比較的高価であるのに対して、ポイントツーポイント・リンク数はオンチップの方がオフチップより多い。例えばＲＡＭ等の汎用オンチップ・メモリは大面積を占有するので、記憶装置は高価である。メモリを比較的小型のネットワーク要素に分散させることは、メモリの間接領域が支配的になるので、さらに好ましくない。
【０００７】
オンチップ・ネットワークでは、演算処理は確かにオフチップ・ネットワークと比較して高コストになる。オフチップ・ネットワークのインターフェースは通常、ホストプロセッサを通信処理から開放するために、ネットワーク・レイヤー又はより上位のレイヤーまでのプロトコルスタックを実行する専用プロセッサを有する。専用プロセッサをネットワーク・インターフェースに含めることはチップ上では実用的ではない。なぜなら、ネットワーク・インターフェースの大きさはネットワークに接続されるＩＰと同等以上となるからである。さらに、プロトコルスタックをＩＰ自体で実行することもまた、実用的でない場合がある。なぜなら、これらのＩＰは１つの専用機能のみを有し、ネットワーク・プロトコルスタックを実行するだけの性能がないことが多いからである。
【０００８】
ネットワークをオンチップ相互接続として導入することは、例えばバス又はスイッチ等の直接的な相互接続と比較して、通信を根本的に変えるものである。なぜなら、通信モジュールが直接的に接続されずに、１つ以上のネットワークノードによって分離されているという、ネットワークのマルチホップ性のためである。このことは、モジュールが直接接続される一般的な既存の相互接続（例えば、バス）と対照的である。この変化から予期されることは、アービトレーション（これは集中型から分散型に変えられなければならない）及び通信特性（例えば、順序付け又はフロー制御）に属する。
【０００９】
最新のオンチップ通信プロトコル（例えば、デバイス・トランザクション・レベルＤＴＬ、オープン・コア・プロトコルＯＣＰ及びＡＸＩプロトコル）は、要求と応答から成るトランザクションとともに分割され且つパイプライン化された基盤上で動作し、マスターから発信された要求が対応するスレーブによって受け取られた後に、バスは他による使用のために解放される。分割されパイプライン化された通信プロトコルは特にマルチホップ相互接続（例えば、ネットワーク・オン・チップ、又はブリッジを有するバス）で使用され、相互接続の効率的な使用を可能にする。分割バスの効率は、スレーブでの応答生成が多大な時間を必要とする場合に向上され得る。パイプライン化プロトコル上では、マスターは複数の未処理要求（すなわち、それに対する応答が保留又は予期されている要求）を有することが許される。
【００１０】
上述のプロトコルは、システム又は相互接続レベルではなくデバイスレベルで動作するように設計されている。換言すれば、それらはインテレクチュアル・プロパティ・ブロック（ＩＰ）及びそれらの以前の集積設計の再利用を可能にする実際の相互接続の実装から独立するように設計されている（例えば、アービトレーション信号は目に見えない）。加えて、これらの通信プロトコルはＩＰブロックが“当然に”通信できることを確保するように設計されている（例えば、ワード幅及びバーストサイズはバスではなくデバイスに適合するように設定されている）。
【００１１】
ＤＴＬのようなこれらのプロトコルの一部は、プロトコルの付加的な特徴として、トランザクションを撤回（retraction）する機能を有している。発信されたトランザクションは、スレーブによって未だ受け取られていないときには、スレーブの状態に如何なる変化も生じさせることなく単に撤回されることが可能である。
【００１２】
トランザクションの撤回は、通常、コマンド信号を無効化することによって実行される。しかしながら、トランザクションの撤回によってスレーブが不適切な状態に放置されることを防止するため、スレーブは、プロトコルによって、トランザクションを１サイクルだけ処理するように強制される。これは特に高クロック速度のシステムで困難である。さらに、アドレス信号（すなわち、コマンド、アドレス、及び、例えばバースト長などのその他のコマンドパラメータ）が書き込みデータ信号から独立しているとき、コマンドの撤回が不可能な場合がある。例えば、（ＡＸＩプロトコルで実施されるように）実際の書き込みコマンド自体がスレーブに受け取られる以前にコマンドの書き込みデータが既にスレーブによって（部分的に）受け取られて更に送られているとき、書き込みコマンドは撤回不可能である。なぜなら、既に送られた書き込みデータを捕獲し除去する方法がないからである。従って、ＡＸＩプロトコルはトランザクションの撤回を可能にすることさえできない。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明は、トランザクションに基づく通信環境において、改善されたトランザクションの撤回を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題に鑑み、複数の処理モジュールＩ、Ｔを有する集積回路が提供される。少なくとも１つの第１処理モジュールＩが少なくとも１つのトランザクションを少なくとも１つの第２処理モジュールＴに発信する。当該集積回路は、前記第２処理モジュールＴの状態に従って前記少なくとも１つのトランザクションを撤回する許可を前記少なくとも１つの第１処理モジュールＩに示す少なくとも１つの第１トランザクション撤回ユニットTRU1をさらに有する。
【００１５】
提案された集積回路は、制御された方式でのトランザクションの撤回を可能にし、それにより、宛先が矛盾した状態となる虞が回避されるとともに、宛先への不要な制約が排除される。トランザクションの効率的な撤回を実際に行えることは望ましい特性である。なぜなら、トランザクションがもはや不要となったとき（例えば、送信されるデータが遅すぎて処理され得ないとき、又は読み出しデータが期限切れのためもはや有用でなくなったとき）に相互接続（インターコネクト）への負荷が軽減され得るからである。さらに、もはや不要となったトランザクションに対する相互接続の許可／応答を待つときに処理が遮られる時間が短縮される。
【００１６】
本発明の一態様に従って、当該集積回路は前記少なくとも１つの第２処理モジュールに結合された少なくとも１つの第１トランザクション撤回ユニットを有する。故に、撤回を許可する決定が宛先側で実行され、発信源の側では実行されない。トランザクションの撤回がトランザクション撤回ユニットによって実行され得るので、処理モジュールの配置は変更される必要がない。故に、提案された構成は、単純であって実装が容易であるとともに、既存プロトコルとの下位互換性をもたらす。
【００１７】
本発明の他の一態様に従って、明示的なトランザクション撤回要求を前記第１トランザクション撤回ユニット又は前記第２処理モジュールに発信するために、前記第１処理モジュールに結合された少なくとも１つの第２トランザクション撤回ユニットが設けられる。前記第１トランザクション撤回ユニットは前記トランザクション撤回要求の許可を示す。ここでは、撤回は明示的に要求され、明示的に許可される。
【００１８】
本発明のさらに他の一態様に従って、前記第１トランザクション撤回ユニットTRU1は、前記トランザクション撤回要求が存在する場合に、前記トランザクション撤回要求rtの許可を示す。
【００１９】
本発明の他の一態様に従って、明示的なトランザクション撤回要求rtを前記第１トランザクション撤回ユニットTRU1又は前記第２処理モジュールＴに発信するために、少なくとも１つの第２トランザクション撤回ユニットTRU2が前記第１処理モジュールに結合される。前記第１処理モジュールＩから発信された有効なコマンドCMDが存在し、該有効なコマンドCMDが前記第２処理モジュールＴによって受理されておらず、且つ前記トランザクション撤回要求rtが存在する場合に、前記第１トランザクション撤回ユニットTRU1は前記トランザクション撤回要求rtの許可を示す。
【００２０】
本発明の他の一態様に従って、前記第１処理モジュールから発信された有効なコマンドが存在し、且つ該有効なコマンドが前記第２処理モジュールによって未だ受理されていない場合に、前記第１トランザクション撤回ユニットは要求されたトランザクションの撤回の許可を示す。
【００２１】
また、本発明は、複数の処理モジュールＩ、Ｔを有する集積回路におけるトランザクション撤回方法にも関する。少なくとも１つのトランザクションが少なくとも１つの第１処理モジュールＩによって少なくとも１つの第２処理モジュールＴに発信される。前記少なくとも１つのトランザクションを撤回する許可が前記第２処理モジュールＴの状態に従って前記少なくとも１つの第１処理モジュールＩに示される。
【００２２】
また、本発明は、複数の処理モジュールＩ、Ｔを有するデータ処理システムにも関する。少なくとも１つの第１処理モジュールＩが少なくとも１つのトランザクションを少なくとも１つの第２処理モジュールＴに発信する。当該データ処理システムは、前記第２処理モジュールＴの状態に従って前記少なくとも１つのトランザクションを撤回する許可を前記少なくとも１つの第１処理モジュールＩに示す少なくとも１つの第１トランザクション撤回ユニットTRU1をさらに有する。
【００２３】
従って、トランザクションの撤回は、幾つかの別個の集積回路を備える複数チップ・ネットワーク又はシステムにて実行されてもよい。
【００２４】
本発明は、トランザクションの撤回を承諾若しくは拒絶する特別な信号、又はそれら信号の特別な組み合わせによって、トランザクション撤回のハンドシェイク処理を拡張するという考えに基づく。トランザクションの撤回は、スレーブ状態がこれを許可するときに承諾され、さもなければ拒絶される（例えば、書き込みの撤回は、そのトランザクションからの如何なるデータも更に先には送信されていないときには承諾される）。
【発明を実施するための最良の形態】
【００２５】
以下の実施形態はシステム・オン・チップ、すなわち、同一チップ上の複数モジュール（例えば、システム・イン・パッケージ、マルチ・ダイ・モジュールを含む）又は異なるチップ上の複数モジュールが或る種の相互接続（インターコネクト）を介して互いに通信するものに関する。相互接続はネットワーク・オン・チップＮｏＣとして具体化される。ネットワーク・オン・チップはネットワーク内に配線、バス、時分割多重化、スイッチ、及び／又はルータを有し得る。ネットワークの伝送レイヤーにおいて、モジュール間の通信が接続上で実行される。接続は、第１のモジュールと少なくとも１つの第２のモジュールとの間の、各々が１組の接続特性を有する１組のチャネルと見なされる。第１のモジュールと単一の第２のモジュールとの間の接続では、接続は２つのチャネル、すなわち、第１のモジュールから第２のモジュールへのチャネルである要求チャネルと、第２のモジュールから第１のモジュールへのチャネルである応答チャネルを有する。要求チャネルは第１から第２のモジュールへのデータ及びメッセージのために確保され、一方、応答チャネルは第２から第１のモジュールへのデータ及びメッセージのために確保される。しかしながら、接続が１つの第１のモジュールとN個の第２のモジュールを含む場合には、2N個のチャネルが設けられる。接続特性には、順序付け（順々のデータ伝送）、フロー制御（遠隔バッファが接続のために確保されるとともに、生成されたデータのために空間が利用可能であることが保証されるときに限ってデータ生成器がデータを送ることが可能にされる）、処理能力（処理能力の下限が保証される）、待ち時間（待ち時間の上限が保証される）、損失性（lossiness）（データの劣化）、伝送限界、トランザクションの完全性、データの正確性、優先度、又はデータ配送が含まれ得る。
【００２６】
図１は本発明に従ったネットワーク・オン・チップの基本配置を示している。具体的には、各々が関連付けられたネットワーク・インターフェースＮＩを備えるマスターモジュールＭ及びスレーブモジュールＳが図示されている。各モジュールＭ、Ｓは、それぞれ、その関連ネットワーク・インターフェースＮＩを介してネットワークＮに接続されている。ネットワーク・インターフェースＮＩはマスター及びスレーブモジュールＭ、ＳとネットワークＮとの間のインターフェースとして用いられる。ネットワーク・インターフェースＮＩは、モジュールがネットワーク又は他のモジュールとの通信を処理する必要なくその専用動作を実行可能なように、それぞれのモジュールＭ、ＳとネットワークＮとの間の通信を管理するために設けられる。ネットワークＮは、１つのネットワーク・インターフェースＮＩから他へとネットワークを通るデータの経路を決定する複数のネットワーク・ルータＲを有する。
【００２７】
以下に述べられるようにモジュールは、ネットワーク・インターフェースＮＩでネットワークと相互作用する所謂ＩＰブロック（演算処理素子、メモリ、又は内部に相互接続モジュールを含むサブシステム）とし得る。ネットワーク・インターフェースＮＩは１つ以上のＩＰブロックに接続され得る。同様に、ＩＰは１より多いネットワーク・インターフェースに接続され得る。
【００２８】
図２は、第１実施形態に従った２つのモジュール、すなわち、発信源モジュールＩと宛先モジュールＴとの間の通信の機能的な相互関係を示す概略図である。発信源Ｉ及び宛先Ｔは、トランザクションの撤回（retraction）を制御するトランザクション撤回ユニットTRU2、TRU1を有する。発信源Ｉと宛先Ｔとの間の通信は要求・応答トランザクションに基づき、発信源Ｉは要求を、場合によりデータ又は必要な接続特性とともに、設定することによりトランザクションを開始する。要求は宛先モジュールＴに届けられる。
【００２９】
図１のマスター−スレーブと図２の発信源−宛先との間の関係は、図２に示されるように発信源及び宛先はリンクレベルの構成要素である一方で、図１に示されるようにマスター及びスレーブはエンドツーエンドの構成要素である。従って、マスターはトランザクションを開始し、スレーブはそれを実行する。また一方、発信源Ｉは要求（これはスレーブのネットワーク・インターフェースＮＩにとってと同様に、それを転送することを意味し得る）を作成し、宛先Ｔは（マスターのネットワーク・インターフェースＮＩと同様に）必ずしもそれを実行することなく要求を受け取る。マスターは常に発信源であり、スレーブは常に、トランザクションを実行する宛先であるが、発信源及び宛先は、それぞれ、必ずしもマスター及びスレーブではない。
【００３０】
図２には、本発明の基本原理を説明するために必要な信号又はポートのみが示されている。その他の信号がプロトコルに存在してもよい。発信源Ｉはコマンド出力ポートcmd、及び有効出力ポートvdを有する。すなわち、宛先はコマンド信号cmd及び有効信号vdを受信する。宛先Ｔは２つの出力ポート、すなわち、受理ポートacp及び撤回可能ポートallow_retrを有する。発信源Ｉにより有効ポートvdを上げ、すなわち、有効信号を高（high）に設定し、コマンドポートcmdに有効なコマンドが存在する合図を送ることによって、トランザクション要求が信号送信される。（本発明の原理にとって、どのようなコマンドが発信源Ｉによって実際に発信されたかは重要ではない。）要求は、有効信号vd及び受理信号acpの双方がhighであるとき、宛先Ｔによって受理される。変形例として、宛先が要求を無条件に受理する意欲があることを示すために、受理信号acpは初期設定によりhighに設定されてもよい。
【００３１】
上述のように、発信源Ｉ及び宛先Ｔのトランザクション撤回ユニットTRU2、TRU1は、トランザクションの撤回を制御する働きをする。トランザクションの撤回は、単に有効信号vdを低下させ、それを低（low）に設定することによって実行される。しかしながら、第１実施形態に従って、これは撤回可能信号allow_retrが宛先Ｔによってhighに設定され、宛先Ｔの状態がトランザクションの撤回を許可するかどうか示しているときにのみ可能にされる。信号allow_retrがlowである場合、トランザクションの撤回を実行することが禁止される。換言すれば、宛先Ｔのトランザクション撤回ユニットTRU1が撤回可能信号allow_retrをhigh状態で出力している場合、発信源Ｉのトランザクション撤回ユニットTRU2は有効信号vdを低下させることによって撤回を実行する。宛先Ｔが受理信号acpをhighに設定することによって発信源Ｉから発信されたコマンドを受理するまで、撤回は実行されてもよい。
【００３２】
図３乃至５に、図２の信号のタイミング図が示されている。具体的には、クロックclk、コマンド信号cmd、有効信号vd、受理信号acp及び撤回可能信号allow_retrのタイミングがそれぞれ示されている。第１実施形態は特有の撤回ポート又は信号のない黙示的なトランザクションの撤回に関する。宛先Ｔから発信源Ｉへの信号、すなわち、信号allow_retrはトランザクションが撤回可能であるときを指定している。
【００３３】
図３は通常動作でのタイミング図を示している。すなわち、有効信号vd及び受理信号acpの双方がサイクル５の初めにhighである（図３の矢印参照）ので、発信源ＩからのコマンドCMDがスレーブＳにより受理される。上述されたように、コマンドCMDは信号allow_retrがhighであるときのみ撤回されることができる。図３では、宛先ＴはコマンドＣＭＤを受理するのに２サイクル（サイクル３及び４）を必要とする。故に、宛先Ｔはトランザクションを処理／受理する限り、サイクル３及び４に信号allow_retrを低下させる。トランザクション処理の最終サイクル（サイクル４）に、宛先Ｔは受理信号acpを高くして宛先Ｔによってトランザクションが受理されたことを表示する。
【００３４】
図４はトランザクションの撤回が実行される場合のタイミング図を示している。サイクル３の初めまで、有効信号vd及び撤回可能信号allow_retrの双方がhighであり、受理信号acpがlowである。すなわち、トランザクションの撤回が可能である。
【００３５】
図５はトランザクションの撤回が許されない場合のタイミング図を示している。サイクル３の期間中、有効信号vdはhighであるが撤回可能信号allow_retrはlowである。すなわち、図５に“×”で印されるようにサイクル３ではトランザクションの撤回が不可能である。しかしながら、サイクル０乃至２であれば、有効信号vd及び撤回可能信号allow_retrがhigh、受理信号acpがlowであるので、トランザクションの撤回が可能である。
【００３６】
換言すれば、第１実施形態によれば、有効信号vd及び撤回可能信号allow_retrがhigh、受理信号acpがlowである限り撤回は許可される。
【００３７】
図６は、第２実施形態に従った２つのモジュール、すなわち、発信源モジュールＩと宛先モジュールＴとの間の通信の機能的な相互関係を示す概略図である。発信源Ｉ及び宛先Ｔは、トランザクションの撤回を制御するトランザクション撤回ユニットTRU2、TRU1を有する。２つのモジュールの基本動作は図２に従った第１実施形態でのそれらの動作と一致する。図６には、本発明の基本原理を説明するために必要な信号又はポートのみが示されている。発信源Ｉはコマンド出力ポートcmd、有効出力ポートvd、及び撤回出力ポートrtを有する。すなわち、宛先はコマンド信号cmd、有効信号vd、及び撤回信号rtを受信する。宛先Ｔは２つの出力ポート、すなわち、受理ポートacp及び撤回承諾出力ポートgrant_retrを有する。
【００３８】
コマンドポートcmdに有効なコマンドが存在する合図を送るために、有効信号vdを上げること、すなわち、有効信号を高（high）に設定することによって、発信源Ｉすなわちトランザクション撤回ユニットTRU2によりトランザクション要求が信号送信される。（本発明の原理にとって、どのようなコマンドが発信源Ｉによって実際に発信されたかは重要ではない。）要求は、有効信号vd及び受理信号acpの双方がhighであるとき、宛先Ｔによって受理される。変形例として、宛先が要求を無条件に受理する意欲があることを示すために、受理信号acpは初期設定によりhighに設定されてもよい。
【００３９】
第２実施形態によれば、トランザクションの撤回は、撤回信号rtを上げることによって、発信源すなわちトランザクション撤回ユニットTRU2から要求される。発信源Ｉからのトランザクション撤回要求は、有効信号vdもhighであるとき、すなわち、有効なコマンドで撤回されるコマンドが宛先Tに発信されているときにのみ意味を為す。加えて、（有効信号vdがhigh、受理信号acpがlowという条件下で）撤回信号rtと撤回承諾信号grant_retrとがhighであるときのみ信号トランザクションが撤回され、そうでないときには撤回要求は全く効果を生じさせない。
【００４０】
図７に、図６の信号のタイミング図が示されている。具体的には、クロックclk、コマンド信号cmd、有効信号vd、受理信号acp、撤回信号rt、及び撤回承諾信号grant_retrのタイミングがそれぞれ示されている。第２実施形態は特別な撤回ポート又は信号を備える明示的なトランザクションの撤回に関する。発信源Ｉすなわちトランザクション撤回ユニットTRU2は、コマンドを撤回したいことを明示信号、すなわち撤回信号rt、とともに信号送信する。サイクル１乃至２の期間中は受理信号acpがlow、有効信号vd及び撤回信号rtの双方がhighであるので、トランザクション撤回ユニットTRU1は信号grant_retrに従って撤回を承諾する、あるいは承諾しない。故に、発信源Ｉはサイクル２にのみコマンドを撤回することができる。
【００４１】
図８に、図６の信号のタイミング図が示されている。具体的には、クロックclk、コマンド信号cmd、有効信号vd、受理信号acp、撤回信号rt、及び撤回承諾信号grant_retrのタイミングがそれぞれ示されている。ここでは、承諾されない場合の明示的なトランザクション撤回要求の一例が示されている。発信源Ｉは、図７に示されたのと同様に、コマンドを撤回したいことを明示信号すなわち撤回信号rtとともに信号送信する。宛先Ｔからの信号grant_retrにより承諾される、あるいは承諾されない。しかしながら、受理信号acpがhighであるので、撤回は承諾され得ない。
【００４２】
換言すれば、第２実施形態によれば、有効信号vd及び撤回信号rtがhigh、受理信号acpがlowという条件の下で撤回は許可される。
【００４３】
上述された撤回要求の承諾は撤回信号に基づいてもよいし、組み合わせて撤回を表す制御信号群に基づいてもよい。
【００４４】
上述のトランザクションの撤回は、既存プロトコルへの拡張とされる。２つの実施形態で提案された拡張は元のプロトコルとの完全な互換性を保証するものである。発信源及び宛先の一方がこの拡張を実装していない場合、追加信号は如何なる影響も及ぼさないように“low”に設定されることが可能である。
【００４５】
提案された構成はデバイスレベルの通信プロトコル（例えば、ＤＴＬ、ＡＸＩ、ＯＣＰ）と特に関係がある。その構成は、トランザクションの撤回が制御されて、すなわち、宛先が矛盾した状態となることを回避し、宛先への不要な制約を排除しつつ行われることを可能にする。提案された構成は、単純であって実装が容易であるとともに、既存プロトコルとの下位互換性をもたらすものである。
【００４６】
本発明の原理はネットワーク・オン・チップに関して述べられたが、このようなネットワークに適用可能であるだけでなく、例えばＤＴＬ等のバス・プロトコルにも適用可能である。図示された全ての信号はＤＴＬ仕様の一部である（撤回に関する信号allow_retr、retract、grant_retrを除く）。
【００４７】
ネットワークにおいては、コマンド撤回はマスターとそのネットワーク・インターフェースとの間のリンクにて実行可能である。これは、コマンドを発信したマスターがそのコマンドがもはや必要でないことを決定可能であるからである。
【００４８】
コマンド撤回が実行可能な他の場所は、スレーブのネットワーク・インターフェースとスレーブとの間のリンクにある。その理由は、優先度の高いトランザクションがネットワーク・インターフェースに到達し、且つ発信済みの（優先度の低い）トランザクションが未だ受理されていないとき、発信済みのトランザクションが撤回可能にされ、優先度の高いトランザクションを先に進めることが可能になるからである。
【００４９】
本発明は、トランザクション撤回を承諾又は拒絶する特別な応答を有する拡張されたハンドシェイクに関する。宛先は、発信源がトランザクションを撤回可能か否かを信号（allow_retr）を用いて自身の動作に表すことができる。あるいは、宛先はこれを発信源からの要求信号の上に表す（grant_retr及びretract）。
【００５０】
上記実施形態では、撤回要求は宛先Ｔ及び／又はトランザクション撤回ユニットTRU1に発信されてもよい。図２及び図６に示されるようにトランザクション撤回ユニットTRU1が宛先の一部である場合には、撤回要求は宛先／トランザクション撤回ユニットに発信されることになり、一方、トランザクション撤回ユニットTRU1が宛先Ｔには実装されていないが、例えば近接している場合には、撤回要求はトランザクション撤回ユニットTRU1に発信されてもよい。
【００５１】
従って、複数の処理モジュール（Ｉ、Ｔ）を有する集積回路が提供される。少なくとも１つの第１処理モジュール（Ｉ）が少なくとも１つのトランザクションを少なくとも１つの第２処理モジュール（Ｔ）にリンクレベルの基盤上で発信する。集積回路はさらに、第２処理モジュール（Ｔ）の状態に従って少なくとも１つのトランザクションを撤回する許可を少なくとも１つの第１処理モジュール（Ｉ）に示す少なくとも１つの第１トランザクション撤回ユニット（TRU1）を有する。
【００５２】
明示的なトランザクション撤回要求rtを第１トランザクション撤回ユニットTRU1又は第２処理モジュールＴに発信する第２トランザクション撤回ユニットTRU2が第１処理モジュールに結合される。第１トランザクション撤回ユニットTRU1はトランザクション撤回要求rtの許可を示す。加えて、第１トランザクション撤回ユニットTRU1は、トランザクション撤回要求rtが存在する場合に、トランザクション撤回要求rtの許可を示す。従って、‘初期設定で許可された撤回’が可能である。すなわち、たとえ有効なコマンド及び／又は撤回要求がなくても撤回承諾がhighにされるが、一方又は双方が存在する場合には、撤回信号はlowに変化することになる。
【００５３】
上述の実施形態は本発明を例示するものであり、本発明を限定するものではない。また、当業者によって、添付の請求項の範囲を逸脱することなく、多数の代替実施形態が設計され得るものである。用語“有する”は列挙された要素若しくはステップ以外の要素若しくはステップの存在を排除するものではない。要素の前に置かれた用語“或る”はその要素が複数存在することを排除するものではない。幾つかの手段を列挙するデバイスの請求項において、これらの手段の幾つかは１つ且つ同一のハードウェア品目によって具体化され得るものである。ある特定の手段が相互に異なる従属項に挙げられているという単なる事実は、これらの手段の組み合わせが効果的に用いられ得ないことを示すものではない。
【図面の簡単な説明】
【００５４】
【図１】本発明に従ったネットワーク・オン・チップを示す概略図である。
【図２】第１実施形態に従って発信源と宛先との間で交換された信号を示す概略図である。
【図３】図２の第１実施形態の信号のタイミング図を示す概略図である。
【図４】図２の第１実施形態の信号のタイミング図を示す概略図である。
【図５】図２の第１実施形態の信号のタイミング図を示す概略図である。
【図６】第２実施形態に従って発信源と宛先との間で交換された信号を示す概略図である。
【図７】図６の第２実施形態の信号のタイミング図を示す概略図である。
【図８】図６の第２実施形態の信号のタイミング図を示す概略図である。
【図１】
2007534052.tif 000003
【図２】
2007534052.tif 000004
【図３】
2007534052.tif 000005
【図４】
2007534052.tif 000006
【図５】
2007534052.tif 000007
【図６】
2007534052.tif 000008
【図７】
2007534052.tif 000009
【図８】
2007534052.tif 000010
【国際調査報告】
2007534052.tif 000011
2007534052.tif 000012