(57)【要約】【課題】ＮｏＣ（Network On Chip）の方式で接続されたＩＰ（Intellectual Property）コア間で行うデータ転送のフロー制御において、伝送されるパケットの数を減らす。【解決手段】ＩＰコア３０ａ〜３０ｃは、データ受信に先立ち、メモリであるＩＰコア３０ｄに向けて、自身のデータ受信用のデータバッファ空き容量情報を記述したフロー制御用パケットを送信する。ＩＤが１３であるルータ１０は、自装置内に、ＩＰコア３０ａ及びＩＰコア３０ｂから送信されたパケットが存在し、これらのパケットのパケットタイプが共にフロー制御用パケットであり、さらに宛先が同一である場合、これらのパケットを論理和によりマージして宛先へ向けて送信する。【選択図】図２
2013183260.tif 000002
【特許請求の範囲】
【請求項１】
複数のＩＰ（Intellectual Property）コアと、
前記複数のＩＰコアのうち一の前記ＩＰコアと接続され、当該ＩＰコアどうしにおいて授受されるパケットをＮｏＣ（Network On Chip）の方式で中継する複数の中継回路であって、当該中継回路どうしが接続されるとともに、一のＩＰコアが有するデータバッファの空き容量情報を他のＩＰコアに通知するために当該一のＩＰコアから当該他のＩＰコアに宛てて送信されるフロー制御用パケットを複数受信した場合に、当該複数のフロー制御用パケットの宛先が同じＩＰコアであるときには、当該複数のフロー制御用パケットを、各々の当該フロー制御用パケットに含まれる前記空き容量情報を含む一つのフロー制御用パケットに置き換え、当該一つのフロー制御用パケットを前記宛先となるＩＰコアに宛てて送信する複数の中継回路と
を備えることを特徴とする集積回路。
【請求項２】
前記中継回路は、
宛先が同じＩＰコアである前記複数のフロー制御用パケットを、
各々の当該フロー制御用パケットにおいて前記データバッファの空き容量情報が記述されたビット列に含まれるビットごとに論理和を施して得られたビット列を含む一つのフロー制御用パケットに置き換え、
当該一つのフロー制御用パケットを前記宛先となるＩＰコアに宛てて送信する
ことを特徴とする請求項１に記載の集積回路。
【請求項３】
前記中継回路は、
受信したパケットを予め決められた期間だけ記憶する記憶手段を備え、
前記記憶手段に記憶されている前記複数のフロー制御用パケットの宛先が同じＩＰコアであるときには、当該複数のフロー制御用パケットを前記一つのフロー制御用パケットに置き換える
ことを特徴とする請求項１又は２に記載の集積回路。
【請求項４】
前記中継回路は、
前記フロー制御用パケットを複数受信した場合に、当該複数のフロー制御用パケットの宛先が同じＩＰコアであるときには、当該複数のフロー制御用パケットを置き換えたものである前記一つのフロー制御用パケットを記憶する記憶手段を備え、
前記記憶手段に記憶されている前記複数のフロー制御用パケットの宛先が同じＩＰコアであるときには、当該複数のフロー制御用パケットを前記一つのフロー制御用パケットに置き換える
ことを特徴とする請求項１又は２に記載の集積回路。
【請求項５】
請求項１〜４のいずれか１項に記載の集積回路を備える電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路及び電子機器に関する。
【背景技術】
【０００２】
通信制御に関して、ネットワーク上のパケットのサイズを減らす技術が知られている。特許文献１には、送信したパケットのヘッダ情報と、次に送信されるパケットのヘッダ情報とに共通するデータが存在する場合、次に送信されるパケットのヘッダ情報のうち共通するデータについては、ヘッダ情報に代えてキャッシュのエントリ番号を記述して送信することで、パケットのサイズを圧縮することが記載されている。また、特許文献２には、複数のパケットを一つの巨大なパケットに連結し、各パケットにおけるヘッダ情報の領域の差分を符号化することで、パケットサイズを圧縮することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１７３６５９号公報
【特許文献２】特開２０１０−２００３２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的とするところは、ＮｏＣ（Network On Chip）の方式で接続されたＩＰ（Intellectual Property）コア間で行うデータ転送のフロー制御において、伝送されるパケットの数を減らすことにある。
【課題を解決するための手段】
【０００５】
請求項１に記載の集積回路は、複数のＩＰ（Intellectual Property）コアと、前記複数のＩＰコアのうち一の前記ＩＰコアと接続され、当該ＩＰコアどうしにおいて授受されるパケットをＮｏＣ（Network On Chip）の方式で中継する複数の中継回路であって、当該中継回路どうしが接続されるとともに、一のＩＰコアが有するデータバッファの空き容量情報を他のＩＰコアに通知するために当該一のＩＰコアから当該他のＩＰコアに宛てて送信されるフロー制御用パケットを複数受信した場合に、当該複数のフロー制御用パケットの宛先が同じＩＰコアであるときには、当該複数のフロー制御用パケットを、各々の当該フロー制御用パケットに含まれる前記空き容量情報を含む一つのフロー制御用パケットに置き換え、当該一つのフロー制御用パケットを前記宛先となるＩＰコアに宛てて送信する複数の中継回路とを備えることを特徴とする。
【０００６】
請求項２に記載の集積回路は、前記中継回路は、宛先が同じＩＰコアである前記複数のフロー制御用パケットを、各々の当該フロー制御用パケットにおいて前記データバッファの空き容量情報が記述されたビット列に含まれるビットごとに論理和を施して得られたビット列を含む一つのフロー制御用パケットに置き換え、当該一つのフロー制御用パケットを前記宛先となるＩＰコアに宛てて送信することを特徴とする。
ことを特徴とする。
【０００７】
請求項３に記載の集積回路は、前記中継回路は、受信したパケットを予め決められた期間だけ記憶する記憶手段を備え、前記記憶手段に記憶されている前記複数のフロー制御用パケットの宛先が同じＩＰコアであるときには、当該複数のフロー制御用パケットを前記一つのフロー制御用パケットに置き換えることを特徴とする。
【０００８】
請求項４に記載の集積回路は、前記中継回路は、前記フロー制御用パケットを複数受信した場合に、当該複数のフロー制御用パケットの宛先が同じＩＰコアであるときには、当該複数のフロー制御用パケットを置き換えたものである前記一つのフロー制御用パケットを記憶する記憶手段を備え、前記記憶手段に記憶されている前記複数のフロー制御用パケットの宛先が同じＩＰコアであるときには、当該複数のフロー制御用パケットを前記一つのフロー制御用パケットに置き換えることを特徴とする。
【０００９】
請求項５に記載の電子機器は、請求項１〜４いずれか１項に記載の集積回路を備えることを特徴とする。
【発明の効果】
【００１０】
請求項１記載の発明によれば、パケットタイプがフロー制御用パケットであり宛先が同一であるパケットをマージする構成を有しない場合と比較して、伝送されるパケットの数を減らすことができる。
請求項２記載の発明によれば、専用の計算回路を要することなく、複数のパケットを一つのパケットに置き換えることができる。
請求項３記載の発明によれば、受信したパケットを予め決められた期間だけ記憶手段に記憶させる構成を有しない場合と比較して、複数のパケットを一つのパケットに置き換える確率を高めることができる。
請求項４記載の発明によれば、置き換えられたパケットを記憶手段が記憶し、当該記憶手段に記憶されている複数のパケットを一つのパケットに置き換える構成を有しない場合と比較して、複数のパケットを一つのパケットに置き換える確率を高めることができる。
請求項５記載の発明によれば、請求項１〜４のいずれか１項に記載の集積回路を備える構成を有さない場合と比較して、伝送されるパケットの数を減らすことができる。
【図面の簡単な説明】
【００１１】
【図１】クレジットベースのフロー制御を説明する模式図
【図２】集積回路のハードウェア構成を表す図
【図３】ルータの入出力を説明する模式図
【図４】ルータのハードウェア構成を表す図
【図５】フロー制御用パケットの一例を表す図
【図６】フロー制御用パケットマージ部による処理フローを表す図
【図７】実施形態に係る集積回路を用いた画像形成装置のハードウェア構成を表すブロック図
【図８】変形例１に係るルータのハードウェア構成を表す図
【図９】変形例２に係るルータのハードウェア構成を表す図
【発明を実施するための形態】
【００１２】
＜実施形態＞
＜構成＞
ＳｏＣ（System On Chip）の技術を利用したＬＳＩ（Large Scale Integration）は、システムあるいはサブシステムを実現するために様々な回路モジュールで構成されている。これらの回路モジュールのうち、ＣＰＵ（Central Processing Unit）や画像処理回路、メモリなどのＬＳＩを構成する機能ブロックは、ＩＰコアと呼ばれる。ＩＰコアは、ＣＰＵ、メディア処理、通信処理といった機能レベルの高いものから、タイマや割り込みコントローラやメモリといった汎用的なものまで多岐に渡る。また、一般的なネットワーク技術をＳｏＣに応用してＩＰコア間を接続するＮｏＣという技術が存在する。Ｎｏｃの技術を利用して接続されたＩＰコア間でデータのやり取りを行う場合、ネットワークにおける帯域を効率的に使用するためのクレジットベースのフロー制御を利用する方法が知られている。本実施形態に係る集積回路について説明を行うにあたり、まず、前提技術となるクレジットベースのフロー制御について説明する。
【００１３】
図１は、クレジットベースのフロー制御を説明する模式図である。クレジットベースのフロー制御では、データの送信側であるＩＰコア３０ｂが、データの受信側であるＩＰコア３０ａが有するデータバッファの空き容量を記憶しておくデータバッファ空き容量保持部３１を備える。ＩＰコア３０ｂは、送信すべきデータがある場合、データバッファ空き容量保持部３１が示すサイズ以下のデータをＩＰコア３０ａに送信し、データバッファ空き容量保持部３１の値から送信したデータサイズを減算した値でデータバッファ空き容量保持部３１の値を更新する。その後、ＩＰコア３０ａで受信したデータが消費され、自身のデータバッファ３２の空き容量が増加した場合に空き容量の増加量をフロー制御用のパケットに記述し、データの送信元であるＩＰコア３０ｂに対して特定のタイミングで通知する。これを受けて、ＩＰコア３０ｂは、データバッファ空き容量保持部３１の値に通知されたデータバッファ空き容量増加量の値を加算した値でデータバッファ空き容量保持部３１の値を更新する。このように、クレジットベースのフロー制御では、データ受信側が受け取りきれるサイズのデータしか送信されないため、ネットワーク上にデータ受信側が受け取り不可能なサイズのデータが送信されることがなく、ネットワークにおける帯域が効率的に使用される。
【００１４】
クレジットベースのフロー制御では、データの内容そのものが記述されたデータ転送用パケットとは別に、上述のフロー制御用パケットがＮｏＣ上に流れるため、ネットワークにおける帯域をさらに効率的に使用するためには、フロー制御用パケットの量を出来るだけ少なく抑えられた方がよい。これに対して、本実施形態では、フロー制御用パケットの量を出来るだけ少なく抑える仕組みを提供する。以下に、順を追ってその仕組みを説明する。
【００１５】
図２は、集積回路１００のハードウェア構成を表す図である。集積回路１００は、メッシュ状に配置された複数のルータ１０と、各ルータ１０につき１つずつ接続されたＩＰコア３０と、ルータ１０間及びルータ１０とＩＰコア３０との間を接続する導線２０とから構成される。なお、説明の便宜上、ＩＰコア３０については、ＩＰコア３０ａ〜ＩＰコア３０ｄの４つしか図示していないが、実際には、各ルータ１０に１つずつＩＰコア３０が接続されている。また、ＩＰコア３０ａ〜ＩＰコア３０ｄのそれぞれを区別しない場合は、単にＩＰコア３０という。ルータ１０は、ＩＰコア３０の間で授受されるパケットをＮｏＣの方式で中継する中継回路であり、自装置に記憶したルーティングテーブルを参照して、入力されたパケットを宛先へ向けて中継する。導線２０は、金属線であり、この導線２０上をパケットがデータとして伝送される。ルータ１０の各々にはＩＤが一意に割り当てられている。図２の例では、４×４＝１６台のルータ１０が存在するため、それぞれ「０」から「１５」までのＩＤが割り当てられている。ＩＰコア３０は、特定の機能を実現する集積回路である。図２の例では、ＩＰコア３０ａが画像処理用であり、ＩＰコア３０ｂが音声処理用であり、ＩＰコア３０ｃが通信処理用であり、ＩＰコア３０ｄがメモリであるとする。
【００１６】
図３は、ルータ１０の入出力を説明する模式図である。ルータ１０が集積回路１００に配置された状態を鉛直方向から見た場合に、ルータ１０は、上下左右に位置する他のルータ１０と通信を行う。ここで、右側に位置するルータ１０とのポートをＸ（＋）ポートとし、左側に位置するルータ１０とのポートをＸ（−）ポートとし、上側に位置するルータ１０とのポートをＹ（−）ポートとし、下側に位置するルータ１０とのポートをＹ（＋）ポートとする。これらのＸ（＋）、Ｘ（−）、Ｙ（＋）、Ｙ（−）という呼称については、それぞれの方向についても用いるものとする。図２においても、これらについては同様である。また、各ルータ１０は、自装置と接続されたＩＰコア３０とパケットの入出力を行うＩＰコアポートを備えている。
【００１７】
図４は、ルータ１０のハードウェア構成を表す図である。ルータ１０は、フロー制御用パケットマージ部１１と、パケットバッファ１２と、次ルート計算部１３と、クロスバースイッチ１４とで構成される。フロー制御用パケットマージ部１１は、各ポートから入力されるパケットのうち、フロー制御用パケットを予め決められた規則に従ってマージする集積回路である。この規則については、詳細を後述する。フロー制御用パケットマージ部１１は、入力されたパケットをパケットバッファ１２に格納する。パケットバッファ１２は、パケットを蓄積するためのバッファメモリである。パケットバッファ１２は、蓄積したパケットを順次、次ルート計算部１３に出力する。次ルート計算部１３は、集積回路１００における通信経路に関するルーティングテーブルを保持しており、入力されたパケットが、そのヘッダ情報に記述された宛先に最適な経路で到達するように計算を行い、次にパケットの送り先となるルータ１０又はＩＰコア３０を特定する。ここで、次ルート計算部１３は、パケットの宛先に自装置のルータ１０が記述されている場合、このパケットの次の送り先を、自装置に接続されたＩＰコア３０と特定する。次ルート計算部１３は、次の送り先を特定したパケットをクロスバースイッチ１４に出力する。クロスバースイッチ１４は、通信経路を動的に選択するための集積回路であり、入力されたパケットを次ルート計算部１３で特定された次の送り先に応じたポートから出力する。例えば、或るパケットの次の送り先が自装置のＸ（＋）方向に位置するルータ１０と特定された場合、クロスバースイッチ１４は、このパケットをＸ（＋）ポートから宛先へ向けて送信する。
【００１８】
図５は、フロー制御用パケット５０の一例を表す図である。フロー制御用パケット５０は、パケットタイプを表すＴｙｐｅと、パケット送信の宛先を表すｄｓｔＩＤと、各ＩＰコア３０ごとのデータバッファの空き容量の増加量をコードで表したＤａｔａとで構成される。Ｔｙｐｅは、例えば４ｂｉｔで表され、ここでは、フロー制御用パケットであることを表す「１１１１」が記述されている。ｄｓｔＩＤは、パケット送信の宛先となるルータ１０のＩＤを表す。ｄｓｔＩＤは、本実施形態においてルータ１０の数が１６台であるため、これを２進数で表現して４ｂｉｔで表される。図５では、理解を容易にするために、便宜上、ｄｓｔＩＤを１０進数で表現している。Ｄａｔａは、各ＩＰコア３０ごとに２ｂｉｔずつ順番に割り当てられ、全部で２×１６＝３２ｂｉｔで表される。各ＩＰコア３０に割り当てられた２ｂｉｔには、各ＩＰコア３０のデータバッファの空き容量の増加量が２進数のコード体系に基づいて記述される。このコード体系は、各ＩＰコア３０が記憶しており、例えば、「００」であれば「＋０ｂｙｔｅ（このとき空き容量は不変）」、「０１」であれば「＋３２ｂｙｔｅ」、「１０」であれば「＋１２８ｂｙｔｅ」、「１１」であれば「＋２５６ｂｙｔｅ」といった対応付けが記述されている。また、このコード体系の内容は、各ＩＰコア３０によって異なっている。メモリであるＩＰコア３０ｄは、全てのＩＰコア３０の上記コード体系を記憶している。
【００１９】
次に、図２と図５を用いて、フロー制御用パケットのマージ処理を説明する。ルータ１０は、自装置内に、Ｔｙｐｅがフロー制御用パケットであり、ｄｓｔＩＤが同一であるフロー制御用パケットが存在する場合、これらをマージする。例えば、図２において、ＩＰコア３０ａ、３０ｂ及び３０ｃが、メモリであるＩＰコア３０ｄからデータを読み出す場合、ＩＰコア３０ａ、３０ｂ及び３０ｃは、それぞれデータ受信に先立って、ＩＰコア３０ｄと接続されたルータ１０（ｉｄ＝１５）に対してフロー制御用パケットを送信する。
【００２０】
図５に示すフロー制御用パケット５０ａは、ルータ１０（ｉｄ＝１２）に接続されたＩＰコア３０ａが送信したものである。この場合、２５ｂｉｔ目及び２６ｂｉｔ目に、データバッファの空き容量の増加量のコードが記述されている。フロー制御用パケット５０ａは、ルータ１０（ｉｄ＝１５）に向けて送信される経路において、ルータ１０（ｉｄ＝１３）及びルータ１０（ｉｄ＝１４）を中継される。図５に示すフロー制御用パケット５０ｂは、ルータ１０（ｉｄ＝１３）に接続されたＩＰコア３０ｂが送信したものである。この場合、２７ｂｉｔ目及び２８ｂｉｔ目に、データバッファの空き容量の増加量のコードが記述されている。ここで、ルータ１０（ｉｄ＝１３）は、自装置内にフロー制御用パケット５０ａとフロー制御用パケット５０ｂとが同時に存在する場合、両者のＴｙｐｅがともにフロー制御用パケットであることを示し、ｄｓｔＩＤが同一であるため、これらをマージする。図５に示すフロー制御用パケット５０ａｂは、ＩＰコア３０ａ及びＩＰコア３０ｂから送信されたフロー制御用パケットがマージされたものである。フロー制御用パケット５０ａｂでは、Ｄａｔａについて、フロー制御用パケット５０ａの内容とフロー制御用パケット５０ｂの内容がマージされたものとなっている。具体的には、フロー制御用パケット５０ａｂは、フロー制御用パケット５０ａとフロー制御用パケット５０ｂとのビットごとの論理和である。マージ結果であるフロー制御用パケット５０ａｂは、宛先であるルータ１０（ｉｄ＝１５）に向けて送信され、その経路においてルータ１０（ｉｄ＝１４）を中継される。
【００２１】
図５に示すフロー制御用パケット５０ｃは、ルータ１０（ｉｄ＝１４）に接続されたＩＰコア３０ｃが送信したものである。この場合、２９ｂｉｔ目及び３０ｂｉｔ目に、データバッファの空き容量の増加量のコードが記述されている。ここで、ルータ１０（ｉｄ＝１４）は、自装置内にフロー制御用パケット５０ａｂとフロー制御用パケット５０ｃとが同時に存在する場合、両者のＴｙｐｅがともにフロー制御用パケットであることを示し、ｄｓｔＩＤが同一であるため、これらをマージする。図５に示すフロー制御用パケット５０ａｂｃは、ＩＰコア３０ａ、ＩＰコア３０ｂ及びＩＰコア３０ｃから送信されたフロー制御用パケットがマージされたものである。このように、マージ対象のフロー制御用パケットは、各々のフロー制御用パケットの送信元である各ＩＰコア３０におけるデータバッファの空き容量の増加量をそれぞれ含む、一つのフロー制御用パケットに置き換えられる。
【００２２】
＜動作＞
次に、フロー制御用パケットのマージ処理における動作について詳細に説明する。
図６は、フロー制御用パケットマージ部１１による処理フローを表す図である。まず、フロー制御用パケットマージ部１１は、各ポートから入力されてきたパケットの内容を確認する（ステップＳ１）。フロー制御用パケットマージ部１１は、パケットを蓄積するためのバッファをその前段に備えないが、導線２０内に存在するパケットを、ポートを通じて読み取ることができる。このとき、フロー制御用パケットマージ部１１は、パケットのヘッダ情報の内容を確認する。そして、フロー制御用パケットマージ部１１は、パケットのヘッダ情報におけるパケットタイプがフロー制御用パケットではないパケットを、パケットバッファ１２に格納する（ステップＳ２）。
【００２３】
次に、フロー制御用パケットマージ部１１は、フロー制御用パケットが１つしか存在しない場合（ステップＳ３；ＮＯ）、このフロー制御用パケットをパケットバッファ１２に格納する（ステップＳ５）。一方、フロー制御用パケットが２つ以上存在する場合、フロー制御用パケットマージ部１１は、これらのうちヘッダ情報に記述された宛先が同一のフロー制御用パケットが存在するかを判定する（ステップＳ４）。ここで、宛先が同一のフロー制御用パケットが存在しない場合（ステップＳ４；ＮＯ）、フロー制御用パケットマージ部１１は、これらのフロー制御用パケットをパケットバッファ１２に格納する（ステップＳ５）。一方、宛先が同一のフロー制御用パケットが一組でも存在する場合（ステップＳ４；ＹＥＳ）、フロー制御用パケットマージ部１１は、まず、これらのフロー制御用パケットのうち宛先が同一でないものをパケットバッファ１２に格納する（ステップＳ６）。この時点で、パケットタイプがフロー制御用パケットであり、宛先が同一であるフロー制御用パケットのみがフロー制御用パケットマージ部１１に残ることになる。フロー制御用パケットマージ部１１は、これらのフロー制御用パケットをマージした新たなフロー制御用パケットを生成する（ステップＳ７）。そして、フロー制御用パケットマージ部１１は、生成したマージ後のフロー制御用パケットを、パケットバッファ１２に格納する（ステップＳ８）。このとき、フロー制御用パケットマージ部１１は、マージ前のフロー制御用パケットについては既に不要なため、破棄する。
【００２４】
このように、本実施形態によれば、クレジットベースのフロー制御において用いられるフロー制御用パケットについて、パケットタイプがフロー制御用パケットであることを示し、宛先が同一であるフロー制御用パケットをマージすることで、ＮｏＣ上のフロー制御用パケットの量を少なく抑えることができる。このとき、各ルータ１０どうしを接続する導線２０においてのみでなく、ルータ１０の内部においても、フロー制御用パケットの量を少なくすることができる。ＮｏＣではない一般的なルータにおいては、通信で用いられる帯域幅よりも、ルータ内部の帯域幅が広いことが多いため、結合されてサイズの小さくなったパケットをルータ内で元に戻すなど、余裕を持った処理が比較的可能であった。ＮｏＣにおいては、その設計上、導線２０の帯域幅とルータ１０内部の帯域幅とにそれほど違いがないことが多いため、ルータ１０内に存在するフロー制御用パケットの量が少なくなることの効果は大きい。また、本実施形態によれば、キャッシュメモリや差分符号化回路又は復号回路を用いる場合と比較して、小規模回路でネットワーク帯域の使用効率の向上を実現可能であるため、ＮｏＣに有用である。このように、本実施形態によれば、ＮｏＣで接続されたＩＰコア間で行うデータ転送のフロー制御において、伝送されるパケットの数を減らすことが可能となる。
【００２５】
＜電子機器＞
次に、上述した実施形態に係る集積回路１００を適用した電子機器の例について説明する。図７は、上述した実施形態に係る集積回路１００を用いた画像形成装置２００のハードウェア構成を示すブロック図である。画像形成装置２００は、制御部２１０、画像形成部２２０、記憶部２３０、通信部２４０及びＵＩ（User Interface）部２５０を有するコンピュータとして構成されている。各部はバスによって電気的に接続されている。制御部２１０は、ＣＰＵ、ＲＯＭ(Read Only Memory)及びＲＡＭ(Random Access Memory)を有する。ＣＰＵは、ＲＯＭ又は記憶部２３０に記憶されている制御プログラムを実行することにより制御部２１０と接続されている各部を制御する。
【００２６】
画像形成部２２０は、帯電、露光、現像、転写、定着といった電子写真方式の各工程を経て画像データが表す画像を形成する手段である。記憶部２３０は、例えばハードディスクのような記憶装置であって、例えば制御プログラムを記憶する。通信部２４０は、制御部１００の制御の下で、ユーザが操作するパーソナルコンピュータなどのクライアント端末と通信を行って画像データなどを取得する。ＵＩ部２５０は、例えばタッチスクリーンとキーとを有する。ＵＩ部２５０は、ユーザの操作内容に応じた信号を制御部２１０へ供給する。制御部２１０は、この信号に基づいて操作内容を判断し、例えば画像形成処理を実行したり、画像をタッチスクリーンに表示させたりする。画像形成装置２００において、集積回路１００は、制御部２１０、画像形成部２２０、通信部２４０及びＵＩ部２５０の各部において用いることが可能である。
【００２７】
なお、このほかにも、上述した実施形態に係る集積回路１００が適用可能な電子機器としては、携帯電話機、カーナビ、テレビ、エアコン、計算機、パソコン、無線端末、電子ペーパーなどが挙げられる。
【００２８】
＜変形例＞
上述した実施形態は、以下のように変形可能である。なお、以下の変形は適宜組み合わせて実施してもよい。
【００２９】
（変形例１）
フロー制御用パケットをマージする際には、マージを行うルータ１０内に、パケットタイプがフロー制御用パケットであることを示し、宛先が同一であるフロー制御用パケットが２つ以上存在している必要がある。変形例１では、このとき、よりマージが行われやすくなるように、ルータ１０内に上述のフロー制御用パケットが同時に存在するタイミングを調整する。
【００３０】
図８は、変形例１に係るルータ１０ａのハードウェア構成を表す図である。ルータ１０ａは、フロー制御用パケットマージ部１１と、パケットバッファ１２ａ及び１２ｂと、次ルート計算部１３と、クロスバースイッチ１４とで構成される。各部については、上述したとおりである。変形例１に係るルータ１０ａでは、フロー制御用パケットマージ部１１の前段にパケットバッファ１２ａが存在する点が、実施形態と異なる。パケットバッファ１２ａは、各ポートから入力されてくるパケットを格納する。変形例１では、集積回路１００が、タイマとして機能するＩＰコア３０（ＩＰコア３０ｘとする）を備えており、これを用いる。ＩＰコア３０ｘは、各ルータ１０ａ間の通信にかかる時間およびルータ１０ａとＩＰコア３０との通信にかかる時間の平均値（通信処理時間という）を記憶している。パケットがパケットバッファ１２ａに格納されると、ＩＰコア３０ｘは、時間の計測を開始する。そして、計測開始から通信処理時間に相当する時間が経過すると、ＩＰコア３０ｘは、タイムアウトの旨をルータ１０ａに通知する。この通知を受けて、ルータ１０ａは、パケットバッファ１２ａに格納されているパケットをフロー制御用パケットマージ部１１に出力する。つまり、パケットがパケットバッファ１２ａに格納されると、通信処理時間に相当する予め決められた期間だけ、このパケットがパケットバッファ１２ａ内に記憶されることになり、この期間、フロー制御用パケットマージ部１１は、パケットバッファ１２ａに格納されたパケットを読み取ることができる。そしてフロー制御用パケットマージ部１１は、パケットバッファ１２ａに記憶されている複数のフロー制御用パケットの宛先が同じＩＰコア３０であるときには、これら複数のフロー制御用パケットをマージすることで、一つのフロー制御用パケットに置き換える。
【００３１】
変形例１によれば、ルータ１０ａにおいて、フロー制御用パケットマージ部１１の前段にパケットバッファ１２ａを設け、タイマとして機能するＩＰコア３０ｘが計測する予め決められた期間の間、パケットがパケットバッファ１２ａに蓄積されるとともに、フロー制御用パケットマージ部１１がパケットバッファ１２ａの内容を読み取って処理することができる。これにより、このルータ１０ａ内で、入力されるパケットのうちマージ対象となるパケットがマージのタイミングで同時に存在する確率が高くなる。このようにすれば、各ルータ１０ａにおいて待ち時間が発生する分、宛先にパケットが到達するのは遅くなるが、より効率的にＮｏＣ上のフロー制御用パケットのマージが行えるため、ＮｏＣ上のフロー制御用パケットの量を少なく抑えることができる。
【００３２】
（変形例２）
フロー制御用パケットマージ部１１を複数備えるようにしてもよい。
図９は、変形例２に係るルータ１０ｂのハードウェア構成を表す図である。変形例２のルータ１０ｂでは、次ルート計算部１３とクロスバースイッチ１４との間にフロー制御用パケットマージ部１１ｂを追加している点が実施形態と異なる。つまり、パケットバッファ１２の前後それぞれにフロー制御用パケットマージ部１１ａ及び１１ｂが配置されている。変形例２では、フロー制御用パケットマージ部１１ａが、フロー制御用パケットを複数受信した場合に、これらの複数のフロー制御用パケットの宛先が同じＩＰコア３０であるときには、これら複数のフロー制御用パケットをマージして一つのフロー制御用パケットに置き換える。パケットバッファ１２は、マージされたフロー制御用パケットを記憶する。また、このとき、パケットバッファ１２は、宛先が異なるＩＰコア３０であるためマージされなかったフロー制御用パケットも記憶する。そしてパケットバッファ１２の後段に接続されたフロー制御用パケットマージ部１１ｂは、パケットバッファ１２に記憶されている複数のフロー制御用パケットの宛先が同じＩＰコア３０であるときには、これらの複数のフロー制御用パケットをマージして一つのフロー制御用パケットに置き換える。このように、変形例２によれば、一のルータ１０内でマージ対象のフロー制御用パケットがマージされる機会が２度あるため、マージが行われる確率が高くなる。
【符号の説明】
【００３３】
１０，１０ａ，１０ｂ…ルータ、１１，１１ａ，１１ｂ…フロー制御用パケットマージ部、１２，１２ａ，１２ｂ…パケットバッファ、１３…次ルート計算部、１４…クロスバースイッチ、２０…導線、３０ａ，３０ｂ，３０ｃ，３０ｄ…ＩＰコア、５０ａ，５０ｂ，５０ｃ，５０ａｂ，５０ａｂｃ…フロー制御用パケット、１００…集積回路
【図１】
2013183260.tif 000003
【図２】
2013183260.tif 000004
【図３】
2013183260.tif 000005
【図４】
2013183260.tif 000006
【図５】
2013183260.tif 000007
【図６】
2013183260.tif 000008
【図７】
2013183260.tif 000009
【図８】
2013183260.tif 000010
【図９】
2013183260.tif 000011