(57)【要約】本発明は、複数の処理モジュール（M、S）と、この複数の処理モジュール（M、S）を結合し、この複数の処理モジュール（M、S）間でのトランザクションに基づいてパケット型通信を可能にする相互接続手段（N）とを有する集積回路に関する。各パケットは、複数の後続のワードを有する。第１のこの複数の処理モジュール（M）は、この相互接続手段（N）で複数のメッセージ（msg1、msg2）を第２のこの複数の処理モジュール（S）に送信することにより、トランザクションを発行する。この複数のメッセージ（msg1、msg2）を複数のパケットにパケット化し、このパケットでの未使用スペースを決定して少なくとも１つの後続のメッセージ（msg1、msg2）からのデータでこの未使用スペースを充填するためにこのパケットを検査する少なくとも１つのパケット検査ユニット（PIU）が提供される。
2008510338.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理モジュールと、
前記複数の処理モジュールを結合し、前記複数の処理モジュール間でのトランザクションに基づいてパケット型通信を可能にする相互接続手段と
を有する集積回路であって、
各パケットは、複数の後続のワードを有し、
第１の前記複数の処理モジュールは、前記相互接続手段で複数のメッセージを第２の前記複数の処理モジュールに送信することにより、トランザクションを発行し、
前記複数のメッセージを複数のパケットにパケット化し、前記パケットでの未使用スペースを決定して少なくとも１つの後続のメッセージからのデータで前記未使用スペースを充填するために前記パケットを検査する少なくとも１つのパケット検査ユニットを有する集積回路。
【請求項２】
請求項１に記載の集積回路であって：
前記第１の前記複数の処理モジュールに関連し、前記第１の前記複数の処理モジュールと前記相互接続手段との間での通信を制御する少なくとも１つのネットワークインタフェースを更に有し、
前記少なくとも１つのパケット検査ユニットのそれぞれは、前記ネットワークインタフェースの１つに配置される集積回路。
【請求項３】
複数の処理モジュールと、
前記複数の処理モジュールを結合し、前記複数の処理モジュール間でのトランザクションに基づいてパケット型通信を可能にする相互接続手段と
を有する集積回路内でのパケット交換制御用の方法であって、
各パケットは、複数の後続のワードを有し、
第１の前記複数の処理モジュールは、前記相互接続手段で複数のメッセージを第２の前記複数の処理モジュールに送信することにより、トランザクションを発行し、
前記複数のメッセージを複数のパケットにパケット化するステップと、
前記パケットでの未使用スペースを決定するために前記パケットを検査するステップと、
前記複数のパケットの前記未使用スペースを、少なくとも１つの後続のメッセージからのデータで充填するステップと
を有する方法。
【請求項４】
請求項１又は２に記載の少なくとも１つの集積回路を有するデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理モジュールと、この複数の処理モジュールを結合する相互接続手段とを有する集積回路に関し、このような集積回路でのパケット交換制御用の方法に関する。
【背景技術】
【０００２】
システム・オン・シリコンは、新しい特徴及び既存の機能の改善を実装する高まるニーズのため、継続的な複雑性の増加を示している。このことは、構成要素が集積回路に結合され得る密度の増加により可能になる。同時に、回路が動作するクロック速度も増加する傾向にある。構成要素の密度の増加と組み合わせて、高いクロック速度は、同じクロック領域内で同時に動作し得る領域を減少させている。このことは、モジュール的手法のニーズを生じている。このような手法によれば、処理システム（すなわち、システム・オン・チップ）は、複数の比較的独立した複雑なモジュールを有する。従来の処理システムでは、通常ではシステムモジュールはバスを介して相互に通信する。しかし、モジュールの数が増加すると、この通信方法は以下の理由でもはや実用的ではない。一方で、大量のモジュールは高すぎるバスの負荷を作る。他方で、バスは、唯一の装置がバスにデータを送信することを許容するため、通信のボトルネックを作る。
【０００３】
通信ネットワークは、これらの欠点を克服する効率的な方法を作る。高複雑性のチップでの相互接続問題への対策として、近年では、ネットワーク・オン・チップ（NoC：network  on  chip）がかなりの注目を受けている。この理由は２つある。第１に、NoCは、グローバル・ワイヤ（global  wire）を構成して管理するため、新しい極度のサブミクロン技術における電気的問題を解決することに役立つ。同時に、NoCはワイヤを共有し、その数を低減してその利用を増加する。NoCはまた、バスに比べてエネルギー効率が良く、信頼性があり、拡張性がある。第２に、NoCはまた、通信から計算を分離する。このことは、無数のトランジスタのチップの設計を管理する際に不可欠である。NoCは、従来ではプロトコルスタックを使用して設計されているため、この分離を実現している。プロトコルスタックは、サービスの実装から通信サービスの使用を分離する明確なインタフェースを提供する。
【０００４】
ほとんどのこれらのトピックは、ローカルエリアネットワーク及び広域ネットワーク（コンピュータネットワーク）の分野で、並列機械相互接続ネットワーク用の相互接続として、既に研究対象になっている。双方ともに非常にオンチップ・ネットワークに関係しており、これらの分野でのいくつかの結果はチップにも適用可能である。しかし、NoCの前提は、オフチップ・ネットワークと異なるため、ほとんどのネットワーク設計選択が再評価されなければならない。オンチップ・ネットワークは異なる特性（例えば、より密接なリンク同期）及び制約（例えば、より高いメモリコスト）を有し、異なる設計選択をもたらす。このことは、最終的にはネットワークサービスに影響を及ぼす。
【０００５】
NoCは、主に制約及び同期においてオフチップ・ネットワークと異なる。オンチップ・ネットワークでは、計算もオフチップ・ネットワークに比べて比較的高コストになる。オフチップ・ネットワークインタフェースは、ネットワークレイヤ又は更に上位までプロトコルスタックを実装し、ホストプロセッサを通信処理から解放するために、通常では専用プロセッサを有する。ネットワークインタフェースに専用プロセッサを含めることは、ネットワークインタフェースのサイズがネットワークに接続されるIP（intellectual  property）ブロックと同程度に又はこれより大きくなるため、チップでは実現可能ではない。更に、しばしばこれらのIPが１つの専用機能のみを有しており、ネットワークプロトコルスタックを動作する機能を有さないため、IP自体でプロトコルスタックを動作することもまた、実現可能ではないことがある。
【０００６】
相互接続での通信は、システム・オン・チップでのデータフロー（すなわち、プロセッサ−プロセッサ通信及びプロセッサ−メモリ通信）に基づく。この通信は、通常ではトランザクション型であり、次のものを起点とし得る。キャッシュ及びメモリトランザクション（共有メモリからのデータ取得（data  fetch））、キャッシュ・コヒーレンス（cache  coherence）動作（共有メモリでの更新データは全てのキャッシュのコピーで更新されてトラヒックの同期を生じなければならない）、パケット分割オーバーヘッド（データフローをパケットに分割することは更なるデータオーバーヘッドを導入する）、又はパケット間での競合（競合の場合におけるパケットの再ルーティング）。
【０００７】
相互接続で送信されるメッセージは、通常ではパケットに分割される。このパケット化は、インターネット、LAN等のようなオフチップ・ネットワークから知られている。しかし、これらのネットワークでは、バッファのサイズが大きく、待ち時間が大きいことがある。これに対して、システム・オン・チップでは、小さい待ち時間及び低コスト（すなわち、小さいバッファサイズ）が必要になる。
【０００８】
パケットは、ヘッダとペイロードとテールとのうち少なくとも１つを有する。典型的には、ヘッダは、宛先アドレスと発信元アドレスと要求動作（READ、WRITE、INVALIDATE等）とを有する。パケットのペイロードは、伝搬されるデータを有する。任意選択で、テールは、誤り検査と訂正コードとを有する。前記のシステム・オン・チップには複数の異なるデータパケット（すなわち、メモリアクセス要求用、キャッシュ・コヒーレンス同期用、データ取得用、データ更新用、並びにIO及び割り込み用）が存在し得る。メモリアクセス要求パケットは、共有メモリからデータを要求する役目を行い、対象のメモリの宛先アドレスと要求メモリ動作とを備えたヘッダを有する。データが伝搬されないため、ペイロードは空である。キャッシュ・コヒーレンス同期パケットは、更新メモリから、このコピーを備えた全てのキャッシュに送信される。このパケットは、キャッシュのデータが更新される場合にペイロードとしてのデータを有してもよく、キャッシュのデータが取り消される場合にはデータを有さなくてもよい。ヘッダは特定の動作形式を有してもよい。データ取得パケットは、メモリからの応答パケットとして機能し、ペイロードとして要求データを有し、ヘッダは対象のアドレスを有する。データ更新パケットは、メモリにデータを書き込む役目を行い、ヘッダに対象のアドレスを有し、ペイロードとして各データを有する。IO及び割り込みパケットは、宛先アドレスを備えたヘッダを有し、データ交換が関与する場合には、ペイロードはデータを有してもよい。従って、ヘッダ及びペイロードの内容はトランザクションに依存する。
【０００９】
図４には、各メッセージが複数のパケットに分離されるように、メッセージがパケットに分割されることが図示されている。ここでは複数のパケットpt1-ptnに分割される第１及び第２のメッセージmsg1、msg2が図示されている。各パケットは、ヘッダhdとペイロードとテールtlとを有してもよい。図５に示すように、複数の完全なメッセージmsgは１つの単一のパケットptに含まれる。
【００１０】
ここでは、複数のメッセージは、ペイロードが十分に大きい場合に、パケットのペイロードに含まれてもよい。更に、メッセージはパケットのペイロードのサイズに揃えられる。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
システム・オン・チップ環境のリソース利用を改善することが、本発明の目的である。
【課題を解決するための手段】
【００１２】
この目的は、請求項１に記載の集積回路と、請求項３に記載のパケット交換制御用の方法とにより実現される。
【００１３】
従って、複数の処理モジュールと、この複数の処理モジュールを結合し、この複数の処理モジュール間でのトランザクションに基づいてパケット型通信を可能にする相互接続手段とを有する集積回路が提供される。各パケットは、複数の後続のワードを有する。第１のこの複数の処理モジュールは、この相互接続手段で複数のメッセージを第２のこの複数の処理モジュールに送信することにより、トランザクションを発行する。この複数のメッセージを複数のパケットにパケット化し、このパケットでの未使用スペースを決定して少なくとも１つの後続のメッセージからのデータでこの未使用スペースを充填するためにこのパケットを検査する少なくとも１つのパケット検査ユニットが提供される。
【００１４】
従って、未使用ワードの量を低減することにより、データパケットのヘッダ及びテールのようなオーバーヘッドが低減されるだけでなく、相互接続の利用が改善され、この待ち時間が減少する。このことは、多数の小さいメッセージでの通信にとって特に重要になる。
【００１５】
本発明の態様によれば、この第１のこの複数の処理モジュールに関連し、この第１のこの複数の処理モジュールとこの相互接続手段との間での通信を制御する少なくとも１つのネットワークインタフェースが提供される。この少なくとも１つのパケット検査ユニットのそれぞれは、このネットワークインタフェースの１つに配置される。パケット検査ユニットをネットワークインタフェースに導入することにより、処理モジュールは相互接続への又は相互接続での実際の通信を処理する必要がなくなり、これにより、処理モジュールは単に専用の処理を実行しさえすればよい。
【００１６】
本発明はまた、複数の処理モジュールと、この複数の処理モジュールを結合し、この複数の処理モジュール間でのトランザクションに基づいてパケット型通信を可能にする相互接続手段とを有する集積回路内でのパケット交換制御用の方法に関する。各パケットは、複数の後続のワードを有する。第１のこの複数の処理モジュールは、この相互接続手段で複数のメッセージを第２のこの複数の処理モジュールに送信することにより、トランザクションを発行する。この複数のメッセージは複数のパケットにパケット化される。このパケットは、未使用スペースを決定するために検査される。この複数のパケットの未使用スペースは、少なくとも１つの後続のメッセージからのデータで充填される。
【００１７】
本発明の更なる態様は従属項に記載されている。
【発明を実施するための最良の形態】
【００１８】
本発明の前記及び他の態様は、以下に説明する実施例から明らかになり、これを参照して説明する。
【００１９】
以下の実施例は、システム・オン・チップに関する。すなわち、単一のチップ又は複数のチップ上の複数のモジュールが何らかの種類の相互接続を介して相互に通信する。相互接続は、ネットワーク・オン・チップNoCとして具現される。ネットワーク・オン・チップは、ネットワーク内にワイヤ、バス、時分割多重方式、スイッチ、及び／又はルータを有してもよい。このネットワークのトランスポートレイヤで、モジュール間での通信が接続上で行われる。接続は、第１のモジュールと少なくとも１つの第２のモジュールとの間で、それぞれ一式の接続特性を有する一式のチャネルと考えられる。第１のモジュールと単一の第２のモジュールとの間の接続では、接続は２つのチャネルを有する。すなわち、第１のモジュールから第２のものへのチャネル（すなわち、要求チャネル）と、第２のものから第１のモジュールへの第２のもの（すなわち、応答チャネル）である。要求チャネルは、第１のものから第２のものへのデータ及びメッセージに確保されており、応答チャネルは、第２のものから第１のモジュールへのデータ及びメッセージに確保されている。しかし、接続が１つの第１のモジュールとNの第２のモジュールとを有する場合、2*Nのチャネルが提供される。
【００２０】
以下に説明するモジュールは、ネットワークインタフェースNIでネットワークと相互作用するいわゆるIP（intellectual  property）ブロック（相互接続モジュールを内部に有してもよい計算素子、メモリ又はサブシステム）でもよい。ネットワークインタフェースNIは、１つ以上のIPブロックに接続され得る。同様に、IPは１つより多くのネットワークインタフェースに接続され得る。
【００２１】
図１は、第１の実施例によるネットワーク・オン・チップの基本ブロック図を示している。特に、関連のネットワークインタフェースNIをそれぞれ備えたマスターモジュールM及びスレーブモジュールSが図示されている。各モジュールM、Sは、それぞれその関連のネットワークインタフェースNIを介してネットワークNに接続されている。ネットワークインタフェースNIは、マスターモジュール及びスレーブモジュールM、SとネットワークNとの間のインタフェースとして使用される。各モジュールM、SとネットワークNとの間での通信を管理するためにネットワークインタフェースNIが提供され、これにより、モジュールはネットワーク又は他のモジュールとの通信を処理する必要なく、専用の動作を実行することができる。ネットワークは、複数の相互接続ルータRを有する。ルータRは、コマンド及びデータを次のルータR又はネットワークインタフェースNIに転送する役目を行う。ルータのアーキテクチャの更なる詳細については、Rijpkema他の“A  Router  Architecture  for  Networks  on  Silicon”Proceedings  of  Process  2001,  2nd  Workshop  on  Embedded  Systems、又はRijpkema他による“Trade  Offs  in  the  Design  of  a  Router  with  Both  Guaranteed  and  Best-Effort  Services  For  Networks  on  Chip”Design,  Automation  and  Test  in  Europe  Conference  and  Exhibition  (DATE’03)  March03-07,  2003  Munich,  Germanyを参照のこと。
【００２２】
ネットワーク・オン・チップでのネットワークの帯域は、通常では全ての種類のトランザクションで及びマスターモジュールMとスレーブモジュールSとの間での通信で一定であるため、ある場合には、パケットのいくつかのワード又はビットが通信又はトランザクションに必要ないことがある。一例は、前記のメモリアクセス要求でもよい。この理由は、このようなパケットのペイロードが空であるからである。未使用ビット又は不要のビットの代替例は、対象又はスレーブがパケットのヘッダに割り当てられたものより小さいアドレスビットを必要とするアドレスレンジを有する場合でもよい。同じことがペイロードのデータにも当てはまることがある。
【００２３】
従って、パケット検査ユニットPIUが、マスターモジュールMに関連するネットワークインタフェースNIに構成される。パケット検査ユニットPIUは、マスターモジュールMから送信されたパケットのパケット交換を制御する役目を行う。
【００２４】
図２は、２つのメッセージのパケット化の基本構造を示している。２つのメッセージmsg1、msg2は、それぞれ３つの部分に分割される。３つの部分のそれぞれは、パケットに関連付けられ、これにより、６つのパケットpt1-pt6が相互接続で２つのメッセージを伝達するために必要になる。各パケットpt1-pt6は、ヘッダhdとテールtlとを有する。しかし、パケット化技術を使用することは、更なるオーバーヘッドを取り入れる。特に、２つの種類のオーバーヘッドが存在する。まず、前述のように、更なるヘッダ及びテールが送信されなければならない。更に、最後のパケットのサイズがフリット（flit）（フロー制御ユニット）の倍数に合致しない場合に、未使用ワードが生じることがある。フリットは、送信されるデータ部分の最小量を構成する。パケットは、複数のフリット（固定又は可動）を有してもよい。これらのオーバーヘッドのため、ネットワークトラヒックの量が増加し、これにより通信チャネルの待ち時間も増加する。従って、第２のメッセージmsg2が遅れて到達する。しかし、このネットワークトラヒックの量の増加はまた、相互接続の他の通信チャネルにも影響を及ぼす。更に、パケット化技術を実行するためにメッセージ境界についての情報が必要になる。このことはまた、何らかのネットワークインタフェースの設計を複雑にする。
【００２５】
図３は、本発明によるメッセージのパケット化の基本構造を示している。図２に関して前述したように、パケット検査ユニットPIUは、ヘッダhdとテールtlとをそれぞれ有する複数のパケットに２つのメッセージmsg1、msg2をそれぞれ分割する。しかし、パケットのペイロードが何らかの未使用ワードを有する場合（ここでは第３のパケットpt3）、ペイロードの未使用スペースがパケット検査ユニットPIUにより決定され、次のメッセージmsg2からのデータに使用される。従って、第３のパケットpt3は、第１及び第２のメッセージmsg1、msg2からのデータを有する。換言すると、第１及び第２のパケットpt1、pt2は第１のメッセージmsg1からのデータのみを有し、第４及び第５のパケットpt4、pt5は第２のメッセージmsg2からのデータのみを有し、第３のパケットpt3は双方のメッセージmsg1、msg2からのデータを有する。換言すると、複数のメッセージの部分が１つのパケットに存在してもよい。
【００２６】
従って、図３の基本構造と図２の基本構造とを比較すると、図２によれば６つのパケットが必要であるが、図３によれば５つのみのパケットが必要である。従って、未使用ワードの量が低減されるだけでなく、オーバーヘッド（すなわち、ヘッダhd及びテールtl）が低減され、これにより、相互接続の利用が改善され、この待ち時間が低減される。このことは、単一のワードに基づくWRITE及びREADのような多数の小さいメッセージが存在し得るため、ネットワーク・オン・チップでは特に有利になり得る。更に、ネットワークインタフェースNIの設計も更に再利用可能になり、簡単になり得る。
【００２７】
前記の実施例では、ネットワーク・オン・チップに関して本発明の原理を説明したが、この原理はまた、バス型相互接続を備えたシステム・オン・チップにも適用され得る。
【００２８】
図５に示す従来技術によれば、複数の完全なメッセージが単一のパケットに含まれるが、本発明によれば、少なくとも１つのメッセージが単に部分的にパケットに含まれ、パケットは複数のメッセージを有する。
【００２９】
図３によれば、２つのメッセージの部分がパケットに含まれるが、本発明の原理はこのような状況に限定されない。特に、１つのパケットは、メッセージの一部又は全体メッセージが後続するNの全体メッセージが後続するメッセージの一部又は全体メッセージを有してもよい。
【００３０】
非整合的にメッセージのパケット化を実行することにより、ネットワーク・オン・チップは低コスト、小さい遅延時間で実装され得る。
【００３１】
前記の実施例は本発明を限定するものではなく、例示するものであり、特許請求の範囲を逸脱することなく、当業者は多数の代替実施例を設計することができる点に留意すべきである。請求項において、括弧の間にある如何なる参照符号も請求項を限定するものとして解釈されるべきではない。“有する”という用語は、請求項に記載のもの以外の要素又はステップの存在を除外するものではない。単数の要素は、このような要素の複数の存在を除外するものではない。複数の手段を列挙する装置の請求項において、複数のこれらの手段は、ハードウェアの同一のアイテムにより具現されてもよい。特定の手段が相互に異なる従属項に記載されているという単なる事実は、これらの手段の組み合わせが有利に使用できないことを示すのではない。
【００３２】
更に、請求項の如何なる参照符号も特許請求の範囲を限定するものとして解釈されるべきではない。
【図面の簡単な説明】
【００３３】
【図１】本発明によるネットワーク・オン・チップの基本ブロック図
【図２】２つのメッセージのパケット化の基本構造
【図３】本発明による２つのメッセージのパケット化の基本構造
【図４】従来技術による２つのメッセージのパケット化の基本構造
【図５】従来技術による２つのメッセージのパケット化の基本構造
【図１】
2008510338.tif 000003
【図２】
2008510338.tif 000004
【図３】
2008510338.tif 000005
【図４】
2008510338.tif 000006
【図５】
2008510338.tif 000007
【国際調査報告】
2008510338.tif 000008
2008510338.tif 000009