(57)【要約】【課題】転送遅延が小さいマルチチップシステムおよび該マルチチップシステムを構成する半導体装置を提供する。【解決手段】宛先ＩＤ判定部３は受信データＤＡＴ＿１のヘッダ部に含まれる宛先ＩＤが受信された時点で直ちにデータの宛先を判定し、自分宛てでなければ、送信制御部４は受信データバッファ１による受信データＤＡＴ＿１の受信と同時進行でその受信データＤＡＴ＿１を転送する。【選択図】図２
2009093283.tif 000002
【特許請求の範囲】
【請求項１】
第１，第２，第３の半導体装置がネットワークを形成してなり、第１の半導体装置が送信したデータを第２の半導体装置がその宛先に応じて選択的に取得あるいは第３の半導体装置に転送するマルチチップシステムにおいて、
前記第１の半導体装置は、
データのヘッダ部に宛先情報を配置して該データを送信する送信制御部を備え、
前記第２の半導体装置は、
前記第１の半導体装置から送信されるデータを受信して一時格納するバッファと、
前記バッファに前記宛先情報が格納された時点で該宛先情報を前記バッファより読み出してデータの宛先を判定する宛先判定部と、
前記宛先判定部によりデータの宛先が自分ではないと判定された場合、前記バッファが受信途中である前記データをその時点から順次該バッファより読み出して前記第３の半導体装置に転送する送信制御部と、を備える
ことを特徴とするマルチチップシステム。
【請求項２】
前記第２の半導体装置は、前記宛先判定部によりデータの宛先が自分であると判定された場合、前記バッファよりそのデータを読み出して取得する受信制御部を備えることを特徴とする請求項１に記載のマルチチップシステム。
【請求項３】
ヘッダ部に宛先情報が配置されたデータを受信して一時格納するバッファと、
前記バッファに前記宛先情報が格納された時点で該宛先情報を前記バッファより読み出してデータの宛先を判定する宛先判定部と、
前記宛先判定部によりデータの宛先が自分ではないと判定された場合、前記バッファが受信途中である前記データをその時点から順次該バッファより読み出して他の半導体装置に転送する送信制御部と、を備える
ことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の半導体装置（半導体チップ）がネットワークを形成し相互に通信を行うマルチチップシステムおよび該マルチチップシステムを構成する半導体装置に関する。
【背景技術】
【０００２】
複数の半導体装置（半導体チップ）がネットワークを形成し、それらが相互に通信を行うことによってある特定の機能を実現するように構成されたマルチチップシステムが知られている（例えば、特許文献１参照）。このようなマルチチップシステムにおいて、複数の半導体装置をリング状に接続し、一方向（例えば右回り）にのみデータを転送する方式がある。例えば、マルチチップシステムがチップＡ，チップＢ，チップＣの３つのチップからなるとすると、データはチップＡからチップＢ、チップＢからチップＣ、チップＣからチップＡ、のように順に転送される。ここで、チップＡからチップＣへデータを送信するだけの場合でも、チップＡからチップＣへ直接データを送ることはできず、データはチップＢを経由して転送されることになる。
【特許文献１】特開平６−３３２８５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
図６に、上記のようにチップＡからチップＣへデータを送信する場合の各チップにおけるデータの送受信タイミングを示す。チップＡは、ある所定サイズのパケットデータを送信する。チップＢは、このパケットデータを受信し、パケットデータ全体を受信し終わったら、その宛先等の制御情報を解析してチップＣへの転送を開始する。チップＣは、チップＢからこのようにして転送されるパケットデータを受信する。したがって、図６からも明らかなように、チップＡからチップＣへのデータ送信には少なくとも送信するパケットデータのサイズ分の転送遅延が生じることとなる。この転送遅延は、チップ間のデータ伝送のスループットを落とし、ひいてはマルチチップシステムのパフォーマンスが低下してしまうという問題をもたらす。
【０００４】
なお、チップＡからチップＣへのデータ送信を高速化するため、リング状ネットワークを双方向通信（つまり右回りも左回りも）可能な構成とし、チップＡからチップＣへデータを直接送信する方式も考えられるが、一方向のみの通信の場合と比べて必要な信号線の数と該信号線に接続するためのチップの端子の数が倍増し、構成が複雑になってしまう欠点がある。
【０００５】
本発明は上記の点に鑑みてなされたものであり、その目的は、転送遅延が小さいマルチチップシステムおよび該マルチチップシステムを構成する半導体装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明は上記の課題を解決するためになされたものであり、第１，第２，第３の半導体装置がネットワークを形成してなり、第１の半導体装置が送信したデータを第２の半導体装置がその宛先に応じて選択的に取得あるいは第３の半導体装置に転送するマルチチップシステムにおいて、前記第１の半導体装置は、データのヘッダ部に宛先情報を配置して該データを送信する送信制御部を備え、前記第２の半導体装置は、前記第１の半導体装置から送信されるデータを受信して一時格納するバッファと、前記バッファに前記宛先情報が格納された時点で該宛先情報を前記バッファより読み出してデータの宛先を判定する宛先判定部と、前記宛先判定部によりデータの宛先が自分ではないと判定された場合、前記バッファが受信途中である前記データをその時点から順次該バッファより読み出して前記第３の半導体装置に転送する送信制御部と、を備えることを特徴とする。
【０００７】
また、本発明は、上記のマルチチップシステムにおいて、前記第２の半導体装置は、前記宛先判定部によりデータの宛先が自分であると判定された場合、前記バッファよりそのデータを読み出して取得する受信制御部を備えることを特徴とする。
【０００８】
また、本発明は、半導体装置において、ヘッダ部に宛先情報が配置されたデータを受信して一時格納するバッファと、前記バッファに前記宛先情報が格納された時点で該宛先情報を前記バッファより読み出してデータの宛先を判定する宛先判定部と、前記宛先判定部によりデータの宛先が自分ではないと判定された場合、前記バッファが受信途中である前記データをその時点から順次該バッファより読み出して他の半導体装置に転送する送信制御部と、を備えることを特徴とする
【発明の効果】
【０００９】
本発明によれば、ヘッダ部の宛先情報が受信された時点で宛先判定部が直ちにデータの宛先を判定し、自分宛てでなければ、バッファによるデータの受信と同時進行で送信制御部がそのデータを転送するので、データ転送に伴う転送遅延はせいぜいヘッダ部の宛先情報を受信するのに要する時間程度となる。したがって、従来に比べて、転送遅延を小さくすることができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図１は、本発明の一実施形態によるマルチチップシステムの全体構成を示す図である。このマルチチップシステムは、チップＡ，チップＢ，チップＣの３つのチップ（半導体装置）がリング状に接続されてネットワークを形成してなるものであり、これら３つのチップが相互に通信を行うことによってある特定の機能を実現するように構成されている。各チップ間の通信は、チップＡからチップＢ、チップＢからチップＣ、チップＣからチップＡ、の一方向の向きにのみデータ伝送が行われるようになっている。本実施形態においては、以下、チップＡが最初にデータをチップＢ宛て又はチップＣ宛てに送信し、チップＢがこのデータを受信し、データが自分（チップＢ）宛てでない場合にはチップＢはそのデータをチップＣに転送し、自分宛ての場合にはチップＢはそのデータを取得するものとして、説明を行う。なお、各チップの相互通信により実現されるマルチチップの「特定の機能」の内容は任意であり、本発明は当該機能に何ら限定されるものではない。
【００１１】
図２は、図１のマルチチップシステムを構成する個々の半導体装置の機能構成を概略的に示すブロック図である。チップＡ，チップＢ，チップＣは、全てこのブロック図の構成を共通に有している。図２において、半導体装置は、受信データバッファ１と、受信制御部２と、宛先ＩＤ判定部３と、送信制御部４と、送信データバッファ５と、クロック生成部６と、ＣＰＵ７と、内部メモリ８と、を備えている。
【００１２】
まず、この半導体装置が最初にデータを送信するチップＡとして動作する際の各部の機能を説明する。
ＣＰＵ７は、送信すべきデータＤＡＴ＿２’を生成して内部メモリ８に格納し、このデータＤＡＴ＿２’を内部メモリ８から読み出して送信データバッファ５へ書き込む。クロック生成部６は、半導体装置の各部がその動作の時間的基準とする内部クロックＣＬＫ＿２を生成し、ＣＰＵ７や送信制御部４へ供給している。送信制御部４は、内部クロックＣＬＫ＿２に同期した所定のタイミングで送信データバッファ５からデータＤＡＴ＿２’を読み出し、このデータＤＡＴ＿２’の頭にヘッダ部Ｈを付加して送信データＤＡＴ＿２を生成する。
【００１３】
送信データＤＡＴ＿２のデータ構造を図３（ａ）に示す。送信データＤＡＴ＿２は所定のサイズを有するパケットデータであり、そのヘッダ部Ｈは、制御情報と宛先ＩＤと送信元ＩＤとからなる。制御情報は、送信するデータの種別を表しチップ間の通信を制御する情報である。例えば、データの宛先が単一のチップであるか、宛先がマルチチップシステム内の全チップであるか、マルチチップシステムの初期化を行うか、他に伝送データが存在せず自由にデータを送信できるか、などをこの制御情報により区別する。宛先ＩＤは、データの宛先となるチップを識別するＩＤを指定する情報である。送信元ＩＤは、データの発信元であるチップを識別するＩＤを指定する情報である。ここでは、送信データＤＡＴ＿２のヘッダ部Ｈとして、送信元ＩＤにチップＡのＩＤがセットされ、宛先ＩＤにチップＢまたはチップＣのＩＤがセットされ、制御情報にデータの宛先が単一のチップであることを示す情報がセットされるものとする。なお、送信データバッファ５から読み出されたデータＤＡＴ＿２’は、図３（ａ）のデータ構造においてヘッダ部Ｈの後ろの「データ」の部分に配置される。
【００１４】
送信制御部４は、内部クロックＣＬＫ＿２に同期させて、上記生成した送信データＤＡＴ＿２と、送信クロックＣＬＫ＿２（＝内部クロックＣＬＫ＿２）と、ハイレベルにセットした送信イネーブル信号ＥＮＢＬ＿２と、をチップＢへ送信する。なお、これらの各信号（送信データＤＡＴ＿２，送信クロックＣＬＫ＿２，送信イネーブル信号ＥＮＢＬ＿２）の伝送にはそれぞれ別々の信号ラインが用いられる。
【００１５】
このようにして、半導体装置（チップＡ）から宛先ＩＤをヘッダ部に含む送信データが他の半導体装置（チップＢ）へ送信される。
【００１６】
次に、半導体装置が受信データの宛先に応じてデータを転送または取得するチップＢとして動作する際の各部の機能を説明する。
【００１７】
受信データバッファ１には、受信データＤＡＴ＿１と、受信イネーブル信号ＥＮＢＬ１と、受信クロックＣＬＫ＿１が入力されている。この受信データＤＡＴ＿１は上記チップＡから送信された送信データＤＡＴ＿２であり、受信イネーブル信号ＥＮＢＬ＿１は上記チップＡから送信されたハイレベルの送信イネーブル信号ＥＮＢＬ＿２であり、受信クロックＣＬＫ＿１は上記チップＡから送信された送信クロックＣＬＫ＿２である。受信データバッファ１は、ハイレベルの受信イネーブル信号ＥＮＢＬ＿１を受け、受信クロックＣＬＫ＿１に同期して受信データＤＡＴ＿１をそのヘッダ部Ｈから順次取り込んで格納していく。
【００１８】
受信制御部２は、受信データバッファ１に格納されていく受信データＤＡＴ＿１を受信データバッファ１へのデータの格納と同時進行で順次読み出し、読み出したデータのうちヘッダ部Ｈに含まれる宛先ＩＤを宛先ＩＤ判定部３へ渡す。ここで、受信データバッファ１へのデータの格納と、受信制御部２によるデータの読み出しとが同時進行で行われるため、宛先ＩＤは、受信データバッファ１へ格納されるのと同時に、言い換えれば受信データＤＡＴ＿１が最後まで受信されて受信データバッファ１への格納が完了する前に、宛先ＩＤ判定部３へ渡されることになる。
【００１９】
宛先ＩＤ判定部３は、宛先ＩＤを識別して受信データＤＡＴ＿１の宛先である半導体装置を判定する。その結果、宛先が自分（チップＢ）ではない場合、宛先ＩＤ判定部３は送信制御部４に対して受信データＤＡＴ＿１の転送を指示し、宛先が自分である場合、宛先ＩＤ判定部３は受信制御部２に対して受信データＤＡＴ＿１の取得を指示する。ここで、上記宛先の判定は宛先ＩＤが渡されると直ちに行われ、送信制御部４への転送指示もその後直ちに行われるものとする。したがって、送信制御部４へ転送の指示が行われた時点では、受信データバッファ１へは受信データＤＡＴ＿１がまだ途中までしか格納されていない状況となっている。
【００２０】
送信制御部４は、宛先ＩＤ判定部３から受信データの転送指示を受けると、受信データバッファ１に格納されていく受信データＤＡＴ＿１を受信データバッファ１へのデータの格納と同時進行で順次読み出し、内部クロックＣＬＫ＿２に同期させて、この読み出したデータを転送データＤＡＴ＿１としてチップＣへ転送する。なお、転送データＤＡＴ＿１のデータ構造は図３（ａ）に示したものと同じである。また、転送データＤＡＴ＿１の転送にあたって、送信制御部４は上述したチップＡの場合と同様に、送信クロックＣＬＫ＿２と送信イネーブル信号ＥＮＢＬ＿２もチップＣへ送信する。
【００２１】
ここで、上記のとおり、送信制御部４が転送指示を受けた時点では受信データＤＡＴ＿１は受信データバッファ１へまだ途中までしか格納されていないが、送信制御部４は、その時点から直ちに、受信データバッファ１に格納済み部分の受信データＤＡＴ＿１から読み出しを行い、転送を開始する。それと同時に受信データバッファ１へは継続して受信データＤＡＴ＿１の格納が行われていき、送信制御部４はそれらも順次読み出して転送を進めていく。したがって、受信データＤＡＴ＿１が最後まで全部受信される前にその転送が開始されるので、チップＢがデータの転送を行う際の転送遅延を小さくすることが可能である。
【００２２】
次に、半導体装置のチップＢとしての動作を図４に示すフローチャートに沿って説明する。
はじめに、受信データバッファ１が受信データＤＡＴ＿１の格納を開始する（ステップＳ１）。それと同時に、受信制御部２は、受信データバッファ１へ格納された部分から受信データＤＡＴ＿１を読み出していき、ヘッダ部Ｈの宛先ＩＤが読み出されるとその宛先ＩＤを宛先ＩＤ判定部３へ渡す。宛先ＩＤ判定部３は、宛先ＩＤにより受信データＤＡＴ＿１の宛先を判定し（ステップＳ２）、宛先が自分ではない場合、送信制御部４へ受信データＤＡＴ＿１の転送を指示する（ステップＳ３）。この転送指示を受けて、送信制御部４は受信データＤＡＴ＿１の転送を開始する（ステップＳ４）。この時、受信データバッファ１へは受信データＤＡＴ＿１の残りの部分の格納が継続して行われており、データの最後部の格納が完了するまで、受信データＤＡＴ＿１の格納と転送が同時に進行していく（ステップＳ５）。こうして、チップＢにより、チップＡからチップＣへのデータの転送が実行される。
【００２３】
ステップＳ２において宛先が自分である場合、宛先ＩＤ判定部３は受信制御部２へ受信データＤＡＴ＿１の取得を指示する。受信制御部２は、この指示を受けて、受信データバッファ１から読み出した受信データＤＡＴ＿１のヘッダ部Ｈを除いたデータ部分ＤＡＴ＿１’を内部メモリ８へ書き込んでいく（ステップＳ６，Ｓ７）。なお、この時、受信データＤＡＴ＿１が宛先であるチップＢに届いたことにより伝送データが存在しなくなり各チップが自由にデータを送信できる状態となるため、受信制御部２は、送信制御部４に対してそのことを示す制御情報を送信するよう指示する。送信制御部４は、制御情報に他に伝送データが存在せず自由にデータを送信できることを示す情報をセットし、この制御情報だけからなる図３（ｂ）に示すデータを他のチップへ送信する。
【００２４】
次に、本実施形態のマルチチップシステムにおいてチップＡからチップＣへデータを送信する場合の各チップにおけるデータの送受信タイミングを図５に示す。
ここまで説明してきたとおり、チップＡは宛先ＩＤをヘッダ部Ｈに含んだデータをチップＢに送信し、チップＢは、この宛先ＩＤを受信してデータの宛先をチップＣと判定すると、直ちにチップＣへのデータの転送を開始する。チップＣはチップＢからこのようにして転送されるパケットデータを受信するので、図５からも明らかなように、チップＡからチップＣへのデータ送信には、せいぜい宛先ＩＤの受信に要する時間程度の転送遅延しか発生しない。この転送遅延の大きさは、図６に示した従来におけるものよりも、格段に小さいものである。したがって、本実施形態のマルチチップシステムによれば、チップ間のデータ伝送のスループットを向上させることが可能である。
【００２５】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、上記実施形態においてはマルチチップシステムが３つの半導体装置からなるものとしたが、半導体装置の数は任意であって、本発明はこれを限定するものでないことは言うまでもない。
また、チップＡが最初に送信するデータのデータ構造は、図３（ｃ）に示すようにヘッダ部Ｈとデータ部とを別の信号ラインで送信するような方式でもよい。この場合も、データ部の受信が完了する前に宛先ＩＤを判定することができるので、上述した実施形態と同様の効果を得ることができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施形態によるマルチチップシステムの全体構成を示す図である。
【図２】図１のマルチチップシステムを構成する個々の半導体装置の機能構成を概略的に示すブロック図である。
【図３】送信されるデータのデータ構造を示す図である。
【図４】半導体装置が受信データの宛先に応じてデータを転送または取得する動作を示すフローチャートである。
【図５】本発明のマルチチップシステムにおいてチップＡからチップＣへデータを送信する場合の各チップにおけるデータの送受信タイミングを示す図である。
【図６】従来のマルチチップシステムにおいてチップＡからチップＣへデータを送信する場合の各チップにおけるデータの送受信タイミングを示す図である。
【符号の説明】
【００２７】
１…受信データバッファ  ２…受信制御部  ３…宛先ＩＤ判定部  ４…送信制御部  ５…送信データバッファ  ６…クロック生成部  ７…ＣＰＵ  ８…内部メモリ
【図１】
2009093283.tif 000003
【図２】
2009093283.tif 000004
【図３】
2009093283.tif 000005
【図４】
2009093283.tif 000006
【図５】
2009093283.tif 000007
【図６】
2009093283.tif 000008