(57)【要約】      （修正有）【課題】送信装置と受信装置間に複数の通信線を使用してパケットと送信するシステムにおいて、複数のパケットを送信された順で受信することができるようにするシステムを提供する。【解決手段】通信システム１において送信装置２ａがパケット毎に、複数の通信線２０−１、２０−２から通信線を交互に切り替えるトグル切り替えにより、一の通信線を選択してパケットを送信する。受信装置２ｂが、複数の通信線から、通信線を交互に切り替えるトグル切り替えにより一の通信線を選択して送信装置から送信されたパケットを受信する。【選択図】図１
2020014102.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信線を介して接続された送信部と受信部とを備え、
前記送信部が、
パケット毎に、前記複数の通信線から一の通信線を規定された順序で選択してパケットを送信し、
前記受信部が、
前記複数の通信線から前記一の通信線を選択して前記パケットを受信する
ことを特徴とする、送受信装置。
【請求項２】
前記送信部および前記受信部のそれぞれが、前記送信部から前記受信部への通信開始時に前記複数の通信線の中から同一の通信線を前記一の通信線として選択し、
前記受信部が、
パケット毎に、前記送信部と同じ前記規定された順序で前記複数の通信線から前記一の通信線を選択して前記パケットを受信する
ことを特徴とする、請求項１記載の送受信装置。
【請求項３】
前記送信部から前記受信部へ２つの前記通信線を用いてパケットの送信が行なわれ、
前記送信部および前記受信部のそれぞれが、前記２つの通信線を交互に切り替えるトグル切り替えにより前記一の通信線を選択する
ことを特徴とする、請求項１または２記載の送受信装置。
【請求項４】
前記パケットが可変長である
ことを特徴とする、請求項１〜３のいずれか１項に記載の送受信装置。
【請求項５】
複数の通信線を介して接続された送信装置と受信装置とを備え、前記送信装置から前記受信装置へ複数のパケットを送信する送受信システムにおいて、
前記送信装置が、
パケット毎に、前記複数の通信線から一の通信線を規定された順序で選択してパケットを送信し、
前記受信装置が、
前記複数の通信線から前記一の通信線を選択して前記パケットを受信する
ことを特徴とする、送受信システム。
【請求項６】
複数の通信線を介して接続された受信装置へ複数のパケットを送信する送信装置であって、
パケット毎に、前記複数の通信線から一の通信線を規定された順序で選択してパケットを送信する
ことを特徴とする、送信装置。
【請求項７】
複数の通信線を介して接続された送信装置から複数のパケットを受信する受信装置において、
前記送信装置が、
パケット毎に、前記複数の通信線から前記送信装置と同じ規定された順序で一の通信線を選択してパケットを受信する
ことを特徴とする、受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送受信装置，送受信システム，送信装置および受信装置に関する。
【背景技術】
【０００２】
図８は従来の通信システムの構成を示す図である。
この図８に示す通信システムは、チップ５０１ａ〜５０１ｃ間を通信可能に接続する。
【０００３】
チップ５０１ａ〜５０１ｃは、例えば、情報処理装置に備えられるＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等の演算処理装置である。
【０００４】
チップ５０１ａは、複数のコア５１０と、クロスバ（ＸＢ）５１１および複数（図８に示す例では４つ）のポート（Ｐｏｒｔ）５１２ａ−１〜５１２ａ−４を備える。
【０００５】
コア５１０は演算処理を行なう演算コアである。複数のコア５１０およびポート５１２ａ−１〜５１２ａ−４は、それぞれクロスバ５１１に接続されている。
【０００６】
なお、以下、チップ５０１ａに備えられたポートを示す符号としては、複数のポートのうち１つを特定する必要があるときには符号５１２ａ−１〜５１２ａ−４を用いるが、任意のポートを指すときには符号５１２を用いる。
【０００７】
クロスバ５１１は接続切り替えスイッチであって、各コア５１０と複数のポート５１２ａ−１〜５１２ａ−４との接続を切り替える。
【０００８】
すなわち、チップ５０１ａにおいて、各コア５１０は、クロスバ５１１を介して複数のポート５１２に接続され、クロスバ５１１が接続の切り替えを行なうことで、各コア５１０は任意のポート５１２に接続可能に構成されている。
【０００９】
チップ５０１ｂは、１つのコア５１０と、クロスバ５１１および複数（図８においては２つを図示）のポート５１２ｂ−１，５１２ｂ−２を備える。チップ５０１ｃはチップ５０１ａと同様に、１つのコア５１０と、クロスバ５１１および複数（図８においては２つを図示）のポート５１２ｃ−１，５１２ｃ−２を備える。
【００１０】
以下、チップを示す符号としては、複数のチップのうち１つを特定する必要があるときには符号５０１ａ，５０１ｂ，５０１ｃを用いるが、任意のチップを指すときには符号５０１を用いる。
【００１１】
チップ５０１ａのポート５１２ａ−２はリンク５２０−１を介してチップ５０１ｂのポート５１２ｂ−２と接続されている。また、チップ５０１ａのポート５１２ａ−４はリンク５２０−２を介してチップ５０１ｃのポート５１２ｃ−２と接続されている。すなわち、チップ５０１間は１つのポート５１２で接続されている。
【００１２】
このような構成において、例えば、チップ５０１ａにおいてコア５１０からポート５１２ａ−２に投入された複数のパケットは、受信側のチップ５０１ｂにおいてポート５１２ｂ−２から投入順に取り出される。
【００１３】
そして、送信側チップ５０１から受信側チップ５０１に転送される複数のパケットは、同一リンク５２０−１または５２０−２上において追い抜かれて順序が変わることはない。
【００１４】
また、例えば、一のチップ５０１（例えば、チップ５０１ａ）において、一のポート５１２（例えばポート５１２ａ−４）が送信側となり、クロスバ５１１を介して他のポート５１２（例えば、ポート５１２ａ−２）に接続することで、パケットの中継を実現することもできる。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開平１１−６８７５８号公報
【特許文献２】特開２００１−１６８８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
このような従来の通信システム５００において、チップ５０１間のスループットが不足する場合に、チップ５０１間における複数のリンクを並列に用いてデータ転送することが考えられる。
【００１７】
図９は従来の通信システムにおいて、複数のリンクを介してチップ間のデータ通信を行なう場合の構成を示す図である。
【００１８】
なお、図中、既述の符号と同一の符号は同様の部分を示しているので、その説明は省略する。
【００１９】
この図９においては、チップ５０１ａのポート５１２ａ−１とチップ５０１ｂのポート５１２ｂ−１とをリンク５２１−１を介して接続するとともに、チップ５０１ａのポート５１２ａ−２とチップ５０１ｂのポート５１２ｂ−２とをリンク５２１−２を介して接続している。これにより、チップ５０１ａとチップ５０１ｂとが２つのリンク５２１−１，５２１−２で並列に接続され、図８に示す構成に比べてスループットを２倍にすることができる。
【００２０】
同様に、チップ５０１ａのポート５１２ａ−３とチップ５０１ｃのポート５１２ｃ−１とをリンク５２１−３を介して接続するとともに、チップ５０１ａのポート５１２ａ−４とチップ５０１ｃのポート５１２ｃ−２とをリンク５２１−４を介して接続している。これにより、チップ５０１ａとチップ５０１ｃとが２つのリンク５２１−３，５２１−４によって並列に接続され、図８に示す構成に比べてスループットを２倍にすることができる。
【００２１】
図９に示すように、複数のチップ５０１間を複数のリンク５２１を介して接続する場合においても、受信側チップ５０１において、送信側チップ５０１のコア５１０からの送出順にパケットを受信させたいという要求がある。
【００２２】
しかしながら、チップ５０１の各ポート５１２（リンク５２１）はそれぞれ使用状況が異なるので、複数のポート５１２からパケットの送信をそれぞれ行なうと複数リンク５２１間でパケットの追い抜きが発生する場合がある。このように複数リンク５２１間においてパケットの追い抜きが発生すると、受信側チップ５０１において、受信したパケットを正しく処理することができない。
１つの側面では、本発明は、複数のパケットを送信された順で受信することができようにすることを目的とする。
【課題を解決するための手段】
【００２３】
このため、この送受信装置は、複数の通信線を介して接続された送信部と受信部とを備える。
【００２４】
前記送信部は、パケット毎に、前記複数の通信線から一の通信線を規定された順序で選択してパケットを送信する。
【００２５】
前記受信部は、前記複数の通信線から前記一の通信線を選択して前記パケットを受信する。
【発明の効果】
【００２６】
一実施形態によれば、複数のパケットを送信された順で受信することができる。
【図面の簡単な説明】
【００２７】
【図１】実施形態の一例としての通信システムの概要を説明するための図である。
【図２】実施形態の一例としての通信システムにおけるパケットが送信される様子を説明するための図である。
【図３】実施形態の一例としての通信システムの送信トグル部の構成を例示する図である。
【図４】実施形態の一例としての通信システムの受信トグル部の構成を例示する図である。
【図５】実施形態の一例としての通信システムにおけるデータ送受信にかかる処理を説明するためのフローチャートである。
【図６】実施形態の一例としての通信システムにおける送信トグル部の処理を説明するためのフローチャートである。
【図７】実施形態の一例としての通信システムにおける受信トグル部の処理を説明するためのフローチャートである。
【図８】従来の通信システムの構成を示す図である。
【図９】従来の通信システムにおいて、複数のリンクを介してチップ間のデータ通信を行なう場合の構成を示す図である。
【発明を実施するための形態】
【００２８】
以下、図面を参照して本送受信装置，送受信システム，送信装置および受信装置にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（実施形態および各変形例を組み合わせる等）して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
（Ａ）概要
まず、実施形態の一例としての通信システム（送受信システム）１の概要を図１を用いて説明する。
【００２９】
図１に例示する通信システム１は、複数（図１に示す例では３つ）のチップ２ａ〜２ｃ間を通信可能に接続する。
【００３０】
チップ２ａ〜２ｃは、例えば、ＣＰＵやＧＰＵ等の演算処理装置である。以下、チップ２ａ〜２ｃが、それぞれＣＰＵである例ついて示す。
【００３１】
すなわち、図１に例示する通信システム１は、情報処理装置（送受信装置）に備えられ、この情報処理装置に搭載されるチップ２ａ〜２ｃを相互に接続する。
【００３２】
チップ２ａは、複数（図１に示す例では２つを図示）のコア１０と、クロスバ（ＸＢ）１１，送信トグル部１３，受信トグル部１４および複数（図１に示す例では４つを図示）のポート（Ｐｏｒｔ）１２ａ−１〜１２ａ−４を備える。
【００３３】
なお、以下、ポートを示す符号としては、複数のポートのうち１つを特定する必要があるときには符号１２ａ−１〜１２ａ−４，１２ｂ−１〜１２ｂ−２，１２ｃ−１〜１２ｃ−２を用いるが、任意のポートを指すときには符号１２を用いる。
【００３４】
コア１０は演算処理を行なう演算コアである。複数のコア１０，送信トグル部１３および受信トグル部１４は、それぞれクロスバ１１に接続されている。また、送信トグル部１３にはポート１２ａ−１，１２ａ−２が接続されており、これにより、ポート１２ａ−１，１２ａ−２は送信トグル部１３を介してクロスバ１１に接続されている。受信トグル部１４にはポート１２ａ−３，１２ａ−４が接続されており、これにより、ポート１２ａ−３，１２ａ−４は受信トグル部１４を介してクロスバ１１に接続されている。
【００３５】
クロスバ１１は接続切り替えスイッチであって、各コア１０と送信トグル部１３および受信トグル部１４との接続を切り替える。
【００３６】
チップ２ａにおいて、各コア１０は、クロスバ１１と送信トグル部１３または受信トグル部１４を介して複数のポート１２に接続され、クロスバ１１が接続の切り替えを行なうことで、各コア１０は任意のポート１２に接続可能に構成されている。
【００３７】
チップ２ｂは、１つのコア１０と、クロスバ１１および複数（図１においては２つを図示）のポート１２ｂ−１，１２ｂ−２を備える。チップ２ｃはチップ２ｂと同様に、１つのコア１０と、クロスバ１１および複数（図１においては２つを図示）のポート１２ｃ−１，１２ｃ−２を備える。
【００３８】
なお、図中、既述の符号と同一の符号は同様の部分を示しているので、その説明は省略する。
【００３９】
以下、チップを示す符号としては、複数のチップのうち１つを特定する必要があるときには符号２ａ，２ｂ，２ｃを用いるが、任意のチップを指すときには符号２を用いる。
【００４０】
また、チップ２ａをチップ＃１と表す場合がある。同様に、チップ２ｂをチップ＃２と表し、チップ２ｃをチップ＃３と表す場合がある。
【００４１】
チップ２ａのポート１２ａ−１はリンク２０−１を介してチップ２ｂのポート１２ｂ−１と接続されている。また、チップ２ａのポート１２ａ−２はリンク２０−２を介してチップ２ｂのポート１２ｂ−２と接続されている。これらのリンク２０−１，２０−２はペアを構成し、チップ２ａからチップ２ｂへのデータ送信に用いられる。ペアを構成するこれらのリンク２０−１，２０−２をペアリンク２０という場合がある。
【００４２】
また、チップ２ａのポート１２ａ−３はリンク２０−３を介してチップ２ｃのポート１２ｃ−１と接続されている。また、チップ２ａのポート１２ａ−４はリンク２０−４を介してチップ２ｃのポート１２ｃ−２と接続されている。これらのリンク２０−３，２０−４は、ペアリンク２０を構成し、チップ２ｃからチップ２ａへのデータ送信に用いられる。
【００４３】
以下、リンクを示す符号としては、複数のリンクのうち１つを特定する必要があるときには符号２０−１〜２０−４を用いるが、任意のリンクを指すときには符号２０を用いる。
【００４４】
本通信システム１においては、チップ２間のデータの送信は２つのリンク２０（ポート１２）を用いて行なわれ、これにより、チップ２間のデータ送信を１つのリンク２０で接続する場合に比べて２倍のスループットを実現することができる。
【００４５】
チップ２ａにおいて、ポート１２ａ−１，１２ａ−２はそれぞれチップ２ｂへのデータ送信に用いられる。これらのポート１２ａ−１，１２ａ−２を送信ポート１２ａ−１，１２ａ−２という場合がある。また、送信ポート１２ａ−１をポート＃０と表す場合があり、送信ポート１２ａ−２をポート＃１と表す場合がある。符号＃に後続する数字はポート１２を特定するポート番号である。すなわち、ポート＃０のポート番号は“０”であり、ポート＃１のポート番号は“１”である。
【００４６】
また、チップ２ａにおいて、ポート１２ａ−３，１２ａ−４はそれぞれチップ２ｃからのデータ受信に用いられる。これらのポート１２ａ−３，１２ａ−４を受信ポート１２ａ−３，１２ａ−４という場合がある。また、受信ポート１２ａ−３をポート＃３と表す場合があり、受信ポート１２ａ−４をポート＃４と表す場合がある。
【００４７】
同様に、チップ２ｂにおいて、ポート１２ｂ−１，１２ｂ−２はそれぞれチップ２ａからのデータ受信に用いられる。これらのポート１２ｂ−１，１２ｂ−２を受信ポート１２ｂ−１，１２ｂ−２、もしくは単に受信ポート１２という場合がある。また、チップ２ｂにおいて、受信ポート１２ｂ−１をポート＃０と表す場合があり、受信ポート１２ｂ−２をポート＃１と表す場合がある。
【００４８】
また、チップ２ｃにおいて、ポート１２ｃ−１，１２ｃ−２はそれぞれチップ２ａへのデータ送信に用いられる。これらのポート１２ｃ−１，１２ｃ−２を送信ポート１２ｃ−１，１２ｃ−２、もしくは単に送信ポート１２という場合がある。そして、送信ポート１２ｃ−１をポート＃３と表す場合があり、送信ポート１２ｃ−２をポート＃４と表す場合がある。
【００４９】
本通信システム１においては、チップ２間をリンク２０により接続するに際して、同一のリンクには同一のポート番号を有するポート１２を接続するものとする。例えば、図１に示す例において、リンク２０−１の一端には、チップ２ａにおけるポート番号“０”を有する送信ポート１２ａ−１が接続され、その他端には、チップ２ｂにおけるポート番号“０”を有する受信ポート１２ｂ−１が接続される。
【００５０】
チップ２間のデータ送受信はパケット単位で行なわれる。すなわち、送受信の対象となるデータは複数のパケット（パケット群）により構成される。また、各パケットのサイズは可変長（非固定長）である。なお、パケットサイズは固定長であってもよい。
【００５１】
リンク２０におけるパケットの送信に際して、同一リンク２０内において、後続するパケットは先行するパケットを追い越すことはない。
【００５２】
また、一のポート１２から受信トグル部１４を介して受信したパケットを、クロスバ１１および送信トグル部１３を介して、そのまま他のポート１２から出力してもよい。
【００５３】
図１中において、太い矢印は高スループットの状態を示しており、細い矢印は低スループットの状態を示している。例えば、クロスバ１１に対するコア１０，送信トグル部１３および受信トグル部１４との接続のスループットは、ポート１２間（リンク２０）におけるスループットに比べて高い。
【００５４】
また、本通信システム１においては、クロスバ１１と送信ポート１２との間に送信トグル部１３を備え、クロスバ１１と受信ポート１２との間に受信トグル部１４を備える。
【００５５】
図１においては、便宜上、チップ２ａがチップ２ｂにデータを送信し、チップ２ｃがチップ２ａにデータを送信する例を示している。すなわち、便宜上、チップ２ａに送信ポート１２，送信トグル部１３，受信ポート１２および受信トグル部１４を、チップ２ｂに受信ポート１２および受信トグル部１４を、チップ２ｃに送信ポート１２および送信トグル部１３を、それぞれ図示している。
【００５６】
しかしながら、これに限定されるものではなく、例えば、チップ２ｂに送信ポート１２および送信トグル部１３を備えてもよく、チップ２ｃに受信ポート１２および受信トグル部１４を備えてもよい。
【００５７】
そして、例えば、チップ２ａはチップ２ｃや図示しない他のチップ２にデータ送信を行なってもよい。また、チップ２ｂはチップ２ａにデータ送信を行なってもよく、また、チップ２ｃや図示しない他のチップ２との間でデータ通信を行なってもよい。同様に、チップ２ｃはチップ２ａからデータ受信を行なってもよく、また、チップ２ｂや図示しない他のチップ２との間でデータ通信を行なってもよい。
【００５８】
図１に示す例において、例えば、チップ２ａが送信装置および送信部に相当し、チップ２ｂが受信装置および受信部に相当する。
【００５９】
送信トグル部１３は、他のチップ２にデータ（パケット群）を送信するに際して、データの送信に用いる複数の送信ポート１２をパケット単位で所定の順序で切り替える。
【００６０】
本実施形態においては、送信トグル部１３は、２つの送信ポート１２をパケットを送信する毎に（パケット単位で）交互に切り替えるトグル切り替えを行なう。
【００６１】
送信トグル部１３は、送信するパケットの末尾で送信ポート１２の切り替えを行なうことで、パケット毎に送信ポート１２の切り替えを行なう。
【００６２】
例えば、チップ２ａにおいて、送信トグル部１３は、チップ２ｂにデータを送信する場合には、送信ポート１２ａ−１と送信ポート１２ａ−２とを一つのパケットを送信する毎に交互に切り替えながらデータ（パケット群）の送信を行なう。
【００６３】
これにより、パケットの送信に用いられる送信ポート１２（リンク２０）が、一つのパケットが送信される毎に（パケット単位で）交互に切り替えられる。すなわち、送信トグル部１３は、リンク２０−１とリンク２０−２とをパケット単位で交互に切り替えながらデータを送信する。
【００６４】
また、データの送受信を行なうに際して、予め、データ送信側（送信元）のチップ２の送信トグル部１３とデータ受信側（送信先）のチップ２の受信トグル部１４とのそれぞれにおいて、データの送受信の開始前に、ペアリンク２０を構成する複数（２つ）のリンク２０のうち、同一のリンク２０に接続されたポート１２が選択されるように開始ポート１２の設定が行なわれる。
【００６５】
例えば、送信トグル部１３と受信トグル部１４とのそれぞれにおいて、最初に使用するポート（優先送信ポート，優先受信ポート）１２を予め規定しておき、送信トグル部１３および受信トグル部１４がこの規定に従って最初に使用するポート１２を選択してもよい。
【００６６】
具体的には、送信トグル部１３と受信トグル部１４とのそれぞれにおいて、同じポート番号（例えば、ポート番号“０”）を有するポート１２を、それぞれ開始ポート１２として設定する。
【００６７】
ペアリンク２０を構成する２つのリンク２０のうち、パケットの送受信を最初に行なうリンク２０を開始リンク２０という場合がある。そして、この開始リンク２０に接続されている送信ポート１２および受信ポート１２がそれぞれパケットの送受信に最小に用いられる開始ポート１２となる。
【００６８】
また、図示しないコントローラや他の情報処理装置等が、優先送信ポート１２を特定する情報（例えば、ポート番号）を送信トグル部１３に、また、優先受信ポート１２を特定する情報（例えば、ポート番号）を受信トグル部１４に、それぞれ指示してもよい。そして、送信トグル部１３および受信トグル部１４がこの指示に従ってそれぞれ最初に使用するポート１２を選択してもよい。
【００６９】
送信トグル部１３は、パケットの送信に利用する送信ポート１２（リンク２０）を、規定された順序で（シーケンシャルに）、パケット単位で切り替える第１切替部として機能する。
【００７０】
受信トグル部１４は、他のチップ２からデータ（パケット群）を受信するに際して、データの受信に用いる複数の受信ポート１２をパケット単位で所定の順序で切り替える。
【００７１】
本実施形態では、受信トグル部１４は、２つの受信ポート１２をパケットを受信する毎に（パケット単位で）交互に切り替えるトグル切り替えを行なう。
【００７２】
受信トグル部１４は、パケットの末尾で受信ポート１２の切り替えを行なうことで、パケット毎に受信ポート１２の切り替えを行なう。
【００７３】
例えば、チップ２ｂにおいて、受信トグル部１４は、チップ２ａからデータを受信する場合には、受信ポート１２ｂ−１と受信ポート１２ｂ−２とを一つのパケットを受信する毎に交互に切り替えながらデータ（パケット群）の受信を行なう。
【００７４】
これにより、パケットの受信に用いられる受信ポート１２（リンク２０）が、一つのパケットを受信する毎に（パケット単位で）交互に切り替えられる。すなわち、受信トグル部１４は、リンク２０−１とリンク２０−２とをパケット単位で交互に切り替えながらデータを受信する。
【００７５】
また、上述の如く、データの送受信を行なうに際して、データ送信側のチップ２の送信トグル部１３とデータ受信側のチップ２の受信トグル部１４とは、データの送受信の開始前に、同一のリンク２０に接続されたポート１２が選択されるように開始ポート１２の設定が行なわれる。
【００７６】
例えば、受信トグル部１４において、最初に使用する受信ポート（優先受信ポート）１２を予め規定しておき、受信トグル部１４がこの規定に従って最初に使用する受信ポート１２を選択してもよい。また、図示しないコントローラや他の情報処理装置等が、最初に使用する受信ポート１２を受信トグル部１４に指示し、受信トグル部１４がこの指示に従って最初に使用する受信ポート１２を選択してもよい。
【００７７】
そして、送信トグル部１３と受信トグル部１４とは、ペアリンク２０を構成する複数（本実施形態では２つ）のリンク２０のリンクから、パケット通信に用いるリンク２０を同じ順序で（本実施形態では交互に）切り替える。
【００７８】
本実施形態においては、送信トグル部１３および受信トグル部１４は、それぞれ指定された開始ポート番号から開始して、一つのパケットを送受信する毎に使用するポート１２を交互に切り替える。これをトグル方式と称する。
【００７９】
受信トグル部１４は、パケットの受信に利用する受信ポート１２（リンク２０）を、データ送信側のチップ２の送信トグル部１３と同じ予め規定された順序で（シーケンシャルに）、パケット単位で切り替える第２切替部として機能する。
【００８０】
図２は実施形態の一例としての通信システム１におけるパケットが送信される様子を説明するための図である。
【００８１】
この図２においては、送信側チップ２のコア１０（以下、送信側コア１０という）が、受信側チップのコア１０（以下、受信側コア１０という）に対して４つのパケットＰ１〜Ｐ４を送信する。各パケットＰ１〜Ｐ４の長さ（パケット長）は一定ではない。
【００８２】
図２中において、パケットＰ１〜Ｐ４の各高さ方向（上下方向）のサイズはスループット性能を示す。すなわち、パケットの高さ方向のサイズが大きい状態は高スループットの状態を示し、高さ方向のサイズが小さい状態は低スループットの状態を示す。また、図２中において、パケットＰ１〜Ｐ４の各横方向（左右方向）のサイズは転送時間を示す。すなわち、パケットの横方向のサイズが大きい状態は転送にかかる時間が長い状態を示し、横方向のサイズが小さい状態は転送にかかる時間が短い状態を示す。
【００８３】
高スループット状態においてはパケットの転送にかかる時間が短く、低スループット状態においてはパケットの転送にかかる時間が長い。
【００８４】
送信側コア１０はパケットＰ１〜Ｐ４を生成し、これらのパケットＰ１〜Ｐ４をＰ１，Ｐ２，Ｐ３，Ｐ４の順（シリアル順）でクロスバ１１に出力する（符号Ｓ１参照）。ＣＰＵ内のバスは幅が広く高スループットである。
【００８５】
送信側コア１０から出力されたパケットＰ１〜Ｐ４は、クロスバ１１を介して送信トグル部１３に受け渡される。
【００８６】
送信トグル部１３は、送信側コア１０から送信されるパケットを高スループットで受信し、リンク２０に合わせた低スループットで送信ポート１２に出力する。送信トグル部１３は、パケットの末尾を検知すると送信ポート１２の切り替えを行なう。送信側チップ２のポート１２を送信側ポート１２という場合があり、受信側チップ２のポート１２を受信側ポート１２という場合がある。
【００８７】
送信トグル部１３は、送信側コア１０から入力されるパケットを、予め設定された開始ポート１２（図２に示す例ではポート＃０）から順番に、ポート＃０とポート＃１とに交互に振り分ける。すなわち、送信トグル部１３は、予め設定された開始ポート１２から開始して、パケット毎にパケットの送信に用いる送信ポート１２を切り替える。
【００８８】
図２に示す例では、パケットＰ１，Ｐ３がポート＃０に振り分けられ、パケットＰ２，Ｐ４がポート＃１に振り分けられている（符号Ｓ２参照）。
【００８９】
次に、データ（各パケット）がリンク２０上を送信される。ポート＃０が接続されたリンク２０をリンク＃０と表し、ポート＃１が接続されたリンク２０をリンク＃１と表す場合がある。
【００９０】
図２に示す例においては、リンク＃０上をパケットＰ１，Ｐ３が送信され、リンク＃１上をパケットＰ２，Ｐ４が送信されている。
【００９１】
リンク２０はＣＰＵ（チップ２）内に比べると低スループットであり、高スループットなチップ２のバス内の転送に比べて時間をかけて送信される（符号Ｓ３参照）。
【００９２】
このリンク２０内において、例えば、パケットの長さ等の関係によっては受信側ポート１２におけるパケット受信のタイミングが送信順と異なる場合がある。
【００９３】
図２に示す例においては、リンク＃１を転送されるパケットＰ４が、リンク＃０を転送されるパケットＰ３を追い抜いて、先に受信側ポート１２に到達している。すなわち、異なるリンク２０間でパケットの追い抜きが発生している。
【００９４】
リンク＃０，＃１の終端である受信側ポート１２（ポート＃０，＃１）においては、パケットＰ１，Ｐ２，Ｐ４，Ｐ３の順で到達しており、この到達順は、送信側コア１０におけるパケットの送信順と異なる。
【００９５】
次に、受信トグル部１４において受信側ポート１２からデータを受信する。受信トグル部１４は、パケットの切れ目（末尾）でポート＃０，＃１を切り替えるトグル方式でデータを受信し、２つのポート１２で受信されたパケットはシリアル化されて取り出される。この際、受信トグル部１４は、送信トグル部１３がパケットを２つのリンク＃０，＃１に振り分けるために送信ポート＃０，＃１を切り替えたと同じ順序で受信ポート＃０，＃１を交互に切り替えながらパケットの受信を行なう（符号Ｓ４参照）。
【００９６】
これにより、受信トグル部１４は、送信側コア１０から送信されたパケットの送信順序と同じ順序で、２つの受信ポート＃０，＃１からパケットを受信する。すなわち、受信トグル部１４は、パケットＰ１，Ｐ２，Ｐ３，Ｐ４の順でパケットを受信する。受信トグル部１４においては、２つのリンク２０間においてパケットの追い抜きが生じた場合であっても、送信側コア１０から送信されたパケットの送信順序と同じ順序で、２つの受信ポート＃０，＃１からパケットを受信することができる。
【００９７】
受信トグル部１４ではでリンク２０のスループットでデータを受信し、ＣＰＵのスループットに合わせて受信側コア１０にデータを送信する。受信側コア１０においては、送信側コア１０が送信したパケットの送信順序と同じ順序でパケットを受信し、処理することができる。
【００９８】
（Ｂ）送信トグル部の構成
図３は実施形態の一例としての通信システム１の送信トグル部１３の構成を例示する図である。この図３においては、チップ２ａに備えられた送信トグル部１３の構成を例示する。
【００９９】
送信トグル部１３は、図３に示すように、送信トグル制御部１３２，ヘッダ解析部１３３，セレクタ１３４および複数（図３に示す例では２つ）の送信バッファユニット１３０−１，１３０−２を備える。
【０１００】
送信バッファユニット１３０−１は送信ポート１２ａ−１に対して備えられ、送信バッファユニット１３０−２は送信ポート１２ａ−２に対して備えられる。
【０１０１】
これらの送信バッファユニット１３０−１と送信バッファユニット１３０−２とは同様の構成を有する。図３においては、便宜上、送信バッファユニット１３０−１の構成のみを図示し、送信バッファユニット１３０−２の構成の図示を省略している。
【０１０２】
以下、送信バッファユニットを示す符号としては、複数の送信バッファユニットのうち１つを特定する必要があるときには符号１３０−１，１３０−２を用いるが、任意の送信バッファユニットを指すときには符号１３０を用いる。
【０１０３】
送信バッファユニット１３０は、複数（図３に示す例では２つ）の送信ポート１２のそれぞれに対応して備えられる。
【０１０４】
送信バッファユニット１３０は、それぞれ、ＦＷＥ１３５，ＦＷＰ１３６，ヘッダＦＩＦＯバッファ１３７，ＦＲＰ１３８，ＷＰ１３９，ＲＰ１４０，ペイロードバッファ１４１，バッファフル通知部１４２，インバータ１４３およびスピード調整部１４４を備える。
【０１０５】
なお、ＷＥはWrite Enableの略語である。ＦＩＦＯはFirst In, First Outの略語である。ＷＰはWrite Pointerの略語である。ＲＰはRead Pointerの略語である。ＦＷＰはFIFO Write Enableの略語である。ＦＲＰはFIFO Read Pointerの略語である。
【０１０６】
クロスバ１１から送信トグル部１３には、ValidとDataとの２つの信号がセットで入力される。
【０１０７】
Validは、例えば2bitの信号であり、“01”には「Start Of Packet （ＳＯＰ）」の意味を、“10”には「転送中」の意味を、“11”には「End Of Packet （ＥＯＰ）」 の意味を、それぞれ持たせる。
【０１０８】
Validは送信トグル制御部１３２および送信バッファユニット１３０に入力される。Dataは、ヘッダ解析部１３３，送信バッファユニット１３０およびペイロードバッファ１４１に入力される。
【０１０９】
送信トグル制御部１３２は、Validが“01”であればパケットの先頭（ＳＯＰ）と判別し、“11”であればパケットの末尾（ＥＯＰ）と判別する。
【０１１０】
送信トグル制御部１３２は、ＥＯＰを検出する毎に、Dataを書き込む対象の送信バッファユニット１３０（送信ポート１２）を交互に切り替える、いわゆるトグル切り替えを行なう。以下、Dataを書き込む対象の送信バッファユニット１３０を書き込み対象の送信バッファユニット１３０という場合がある。
【０１１１】
送信トグル制御部１３２は、Validを解釈して、接続するポート１２（バッファユニット１３０）のトグル切り替えを行なう。
【０１１２】
以下、送信トグル制御部１３２によりパケット送信に使用されることが選択された送信バッファユニット１３０を、被選択送信バッファユニット１３０という場合がある。
【０１１３】
送信トグル制御部１３２は、切り替え対象のポート１２に対応するＦＷＥ１３５、すなわち、被選択送信バッファユニット１３０のＦＷＥ１３５をアサートする。これにより、被選択送信バッファユニット１３０に備えられたペイロードバッファ１４１およびヘッダＦＩＦＯバッファ１３７へのデータの書き込みが行なわれる。被選択送信バッファユニット１３０を書き込み対象の送信バッファユニット１３０と表してもよい。
【０１１４】
ＦＷＰ１３６は、ヘッダＦＩＦＯバッファ１３７におけるライト位置（ＷＰ）を管理するポインタであり、ＦＷＥ１３５がアサートされるとＦＷＰ１３６が１だけインクリメントする。ＦＷＥ１３５はＳＯＰを検出するとアサートされる。
【０１１５】
ＦＲＰ１３８は、ヘッダＦＩＦＯバッファ１３７におけるリード位置（ＲＰ）を管理するポインタであり、送信ポート１２から応答される信号がfullでない場合にＲＰをインクリメントする。一回インクリメントしたら、パケットを送信し終わるまでインクリメントを控える。なお、パケットが送信し終えたかは、パケット長を示すLEN（LENGTH）の値で判断することができる。ヘッダＦＩＦＯバッファ１３７からの読み出しは接続先の送信ポート１２に空きがあれば（fullでなければ）実行される。
【０１１６】
Dataは、コア１０により作成され、受信側チップ２（本例ではチップ２ｂ）に送信されるデータであり、ヘッダ情報とペイロードとを備える。ヘッダ情報はヘッダＦＩＦＯバッファ１３７に格納され、ペイロードはペイロードバッファ１４１に格納される。
【０１１７】
ヘッダ解析部１３３は、Dataのヘッダ情報に基づき、LENを抽出する。ヘッダ解析部１３３によって抽出されたLENはパケットの情報（ヘッダ情報）としてヘッダＦＩＦＯバッファ１３７に格納される。
【０１１８】
ヘッダＦＩＦＯバッファ１３７は、パケットのヘッダ情報をＦＩＦＯに保持する。ヘッダＦＩＦＯバッファ１３７は、例えば、３２段（エントリ）の格納領域を備える。ヘッダＦＩＦＯバッファ１３７は、パケットのヘッダ情報を保持するため、１つのパケットに対し１エントリを消費する。
【０１１９】
ヘッダＦＩＦＯバッファ１３７は、例えば、送信ポート１２からfullが通知されていない状態において、送信ポート１２に対してValidを入力する。
【０１２０】
ＦＲＰ１３８が示すポインタ値に従ってヘッダＦＩＦＯバッファ１３７から読み出したLENの値は、ペイロードバッファ１４１からのデータの読み出しに用いられる。
【０１２１】
また、送信トグル制御部１３２は、後述する受信側チップ２の受信トグル部１４と、データ送信を行なうに際して最初に使用するポート１２を一致させる機能を有する。
【０１２２】
ＷＰ１３９は、ペイロードバッファ１４１におけるライト位置（ＷＰ）を管理するポインタであり、ＦＷＥ１３５がアサートされるとインクリメントされる。ＦＷＥ１３５は１つのパケット全体を受信するまでの間アサートされる。
【０１２３】
ＲＰ１４０は、ペイロードバッファ１４１におけるリード位置（ＲＰ）を管理するポインタであり、送信ポート１２から応答される信号がfullでない場合にパケット長（LEN）分インクリメントする。
【０１２４】
ペイロードバッファ１４１は、Dataのペイロードを格納する。ペイロードバッファ１４１はデータ32B毎に１エントリを消費する。例えば、ペイロードバッファ１４１は、4KB（32B×128）のサイズを有する。
【０１２５】
ペイロードバッファ１４１は、例えば、送信ポート１２からfullが通知されていない状態において、送信ポート１２に対してdataのペイロードを入力する。
【０１２６】
ヘッダＦＩＦＯバッファ１３７およびペイロードバッファ１４１は、それぞれバッファfull状態になりそうな場合にはfull（full通知）をアサートし、バッファフル通知部１４２を介してクロスバ１１に通知することで、クロスバ１１からのデータ送信を抑止する。バッファフル通知部１４２からのfull通知はセレクタ１３４に入力される。
【０１２７】
セレクタ１３４は、クロスバ１１に対してバッファフル（full）を通知するバッファユニット１３０を選択する。セレクタ１３４は、クロスバ１１でのアービトレーション（調停）対象となるポート１２のfullを通知する。
【０１２８】
セレクタ１３４は、クロスバ１１で前パケット分のアービトレーションが終わるとトグルを行なう。前パケットのアービトレーションの終了はＳＯＰで判断することができる。送信トグル制御部１３２からのＳＯＰ検出通知がセレクタ１３４に入力される。セレクタ１３４は、ＳＯＰでクロスバ１１にfullを見せるポート１２を切り替える（トグルする）。
【０１２９】
インバータ１４３は、送信ポート１２からのfull通知を反転させＦＲＰ１３８およびＲＰ１４０に入力する。
【０１３０】
スピード調整部１４４は、ペイロードバッファ１４１からの出力（32B）を送信ポート１２のデータ転送幅（16B）に合わせて減速させる。
【０１３１】
（Ｃ）受信トグル部の構成
図４は実施形態の一例としての通信システム１の受信トグル部１４の構成を例示する図である。この図４においては、チップ２ｂに備えられた送信トグル部１３の構成を例示する。
【０１３２】
受信トグル部１４は、図４に示すように、受信トグル制御部（req）１６３，ヘッダ解析部１３３，セレクタ１６１，１６２および複数（図４に示す例では２つ）の受信バッファユニット１５０−１，１５０−２を備える。
【０１３３】
受信バッファユニット１５０−１は、受信ポート１２ｂ−１に対して備えられ、受信バッファユニット１５０−２は受信ポート１２ｂ−２に対して備えられる。
【０１３４】
これらの受信バッファユニット１５０−１と受信バッファユニット１５０−２とは同様の構成を有する。図４においては、便宜上、受信バッファユニット１５０−１の構成を図示し、受信バッファユニット１５０−２の構成の図示を省略している。
【０１３５】
以下、受信バッファユニットを示す符号としては、複数の受信バッファユニットのうち１つを特定する必要があるときには符号１５０−１，１５０−２を用いるが、任意の受信バッファユニットを指すときには符号１５０を用いる。
【０１３６】
受信バッファユニット１５０は、複数（図４に示す例では２つ）の受信ポート１２のそれぞれに対応して備えられる。
【０１３７】
受信バッファユニット１５０は、それぞれ、調停部（arb）１５１，ヘッダ解析部１５２，ＦＷＥ１５３，ＦＷＰ１５４，ＷＰ１５７，ヘッダＦＩＦＯバッファ１５５，ＦＲＰ１５６，ＲＰ１５８，ペイロードバッファ１５９およびバッファフル通知部１６０を備える。
【０１３８】
受信ポート１２（１２ｂ−１）は、対応する受信バッファユニット１５０にValid，Data，reqの各信号を入力する。
【０１３９】
受信ポート１２（１２ｂ−１）は受信トグル部１４にreqを送信する。受信トグル部１４内のバッファ（ヘッダＦＩＦＯバッファ１５５，ペイロードバッファ１５９）に空きがあれば、調停部１５１はgrtを受信ポート１２に返す。また、調停部１５１は、ＦＷＥ１５３をアサートする。これにより、当該受信バッファユニット１５０に備えられたペイロードバッファ１５９およびヘッダＦＩＦＯバッファ１５５へのデータの書き込み（受信）が行なわれる。
【０１４０】
grtを得た受信ポート１２は、ValidおよびDataを受信トグル部１４に送出する。受信バッファユニット１５０においてはValidを解釈して、有効データであればバッファ（ヘッダＦＩＦＯバッファ１５５，ペイロードバッファ１５９）へ書き込む。
【０１４１】
受信トグル部１４において、バッファは、送信トグル部１３と同様にヘッダＦＩＦＯバッファ１５５とペイロードバッファ１５９とを備える。
【０１４２】
ＦＷＰ１５４は、ヘッダＦＩＦＯバッファ１５５におけるライト位置（ＷＰ）を管理するポインタであり、ＦＷＥ１５３がアサートされるとＦＷＰ１５４が１だけインクリメントする。ＦＷＰ１５４はパケット単位でインクリメントされる。
【０１４３】
ＦＲＰ１５６は、ヘッダＦＩＦＯバッファ１５５におけるリード位置（ＲＰ）を管理するポインタであり、後述する受信トグル制御部１６３からgrtを受信するとインクリメントする。
【０１４４】
ヘッダＦＩＦＯバッファ１５５は、パケット単位で（１パケット毎に）インクリメントを行なう。
【０１４５】
ヘッダＦＩＦＯバッファ１５５は、パケットのヘッダ情報をＦＩＦＯに保持する。このパケットの情報には、パケット長（LEN）が含まれる。ヘッダＦＩＦＯバッファ１５５は、例えば、３２段（エントリ）の格納領域を備える。ヘッダＦＩＦＯバッファ１５５は、パケットのヘッダ情報を保持するため、各パケットに対し１エントリを消費する。
【０１４６】
ＦＲＰ１５６が示すポインタ値に従ってヘッダＦＩＦＯバッファ１５５から読み出したLENの値は、ペイロードバッファ１５９からのデータの読み出しに用いられる。
【０１４７】
ＷＰ１５７は、ペイロードバッファ１５９におけるライト位置（ＷＰ）を管理するポインタであり、ＦＷＥ１５３がアサートされるとインクリメントされる。ＦＷＥ１５３は１つのパケット全体を受信するまでの間アサートされる。
【０１４８】
ＲＰ１５８は、ペイロードバッファ１５９におけるリード位置（ＲＰ）を管理するポインタであり、受信トグル制御部１６３からgrtを受信するとインクリメントを開始する。
【０１４９】
ペイロードバッファ１５９は、Dataのペイロードを格納する。ペイロードバッファ１５９はデータ32B毎に１エントリを消費する。例えば、ペイロードバッファ１５９は、4KB（32B×128）のサイズを有する。
【０１５０】
ＷＰ１５７は32Bのデータ受信ごとにインクリメントする。なお、inputが16Bなので、ＷＰ１５７は２つの受信が行なわれる毎にインクリメントされる。ＲＰ１５８は、受信トグル制御部１６３からreqを受信すると１パケットを読み出すまでインクリメントが続けられる。
【０１５１】
ここで、送信トグル部１３と同じくValidでパケットの最後を認識する方式では、全てのデータを受信してからでないとデータを下流側（クロスバ１１等）に送出できない。そのため、受信トグル部１４においては、パケットの先頭に含まれるヘッダからパケットのサイズを読み出し、パケットを半分以上受信したかを判定する。受信バッファユニット１５０は、パケットを半分以上受信した後に送出処理を開始する。送信先のバスがリンク２０の倍幅であるので、半分以上受信してからでないと途中でデータがなくなり、パケットに穴が開くためである。
【０１５２】
ヘッダＦＩＦＯバッファ１５５およびペイロードバッファ１５９は、それぞれバッファfull状態になりそうな場合にはfull信号をアサートし、バッファフル通知部１６０を介して調停部１５１に通知することで、受信ポート１２からのデータの送信を抑止する。従って、バッファフル通知部１６０からのfull通知は調停部１５１に入力される。
【０１５３】
ヘッダＦＩＦＯバッファ１５５から読み出されたヘッダ情報（例えば、LEN）は、セレクタ１６１を介して受信トグル制御部１６３に入力される。
【０１５４】
また、ペイロードバッファ１５９から読み出されたデータは、セレクタ１６２を介してクロスバ１１に入力される。
【０１５５】
セレクタ１６１は、受信バッファユニット１５０−１から出力されるヘッダ情報（LEN）と、受信バッファユニット１５０−２から出力されるヘッダ情報とを選択的に切り替えて受信トグル制御部１６３に入力する。このセレクタ１６１の切り替えは受信トグル制御部１６３からの制御に従って行なわれる。
【０１５６】
セレクタ１６２は、受信バッファユニット１５０−１から出力されるデータと、受信バッファユニット１５０−２から出力されるデータとを選択的に切り替えてクロスバ１１に入力する。このセレクタ１６１の切り替えは受信トグル制御部１６３からの制御に従って行なわれる。
【０１５７】
受信トグル制御部１６３は、クロスバ１１へ送信するためのアービトレーションに参加させる受信ポート１２をトグル切り替えする制御を行なう。受信トグル制御部１６３は、パケットの切れ目（末尾）で、受信バッファユニット１５０−１（受信ポート１２ｂ−１）と受信バッファユニット１５０−２（受信ポート１２ｂ−２）とのトグル切り替えを行なう。
【０１５８】
このトグル切り替えは、例えば、セレクタ１６１，１６２に対して、切り替え制御信号を入力することで行なう。
【０１５９】
受信トグル制御部１６３は、クロスバ１１に対してreq（アービタへの参加通知）を送信し、クロスバ１１からgrtを応答されると、lockをクロスバ１１に送信して排他を確保した上で、Validをクロスバ１１に送出する。
【０１６０】
受信トグル制御部１６３は、例えば、受信バッファユニット１５０のヘッダＦＩＦＯバッファ１５５からセレクタ１６１を介して取得したパケット長（LEN）に基づき、パケットの切れ目（パケットの末尾）を把握する。なお、パケットの切れ目の判断は、これに限定されるものではなく、適宜変更して実施することができる。例えば、受信トグル制御部１６３は、受信ポート１２が受信したdataの立ち下がりを検知することで、パケットの切れ目（パケットの末尾）を認識してもよい。
【０１６１】
受信トグル制御部１６３は、送信側チップ２の送信トグル制御部１３２との間で、データの送受信を最初に行なうポート（開始ポート）１２を合わせる（一致させる）。
【０１６２】
（Ｄ）動作
上述の如く構成された実施形態の一例としての通信システム１におけるデータ送受信にかかる処理を、図５に示すフローチャート（ステップＡ１〜Ａ６）に従って説明する。
【０１６３】
ステップＡ１において、送信側チップ２と受信側チップ２とにおいて、開始ポート番号を同じに設定する。すなわち、送信トグル部１３の送信トグル制御部１３２と、受信トグル部１４の受信トグル制御部１６３とが、それぞれ同じポート番号を有するポート１２を開始ポート１２として設定する。
【０１６４】
ステップＡ２において、送信側チップ２と受信側チップ２とにおいて、それぞれ開始ポート番号を指定する。
【０１６５】
ステップＡ３において、送信側チップ２の送信トグル部１３は、指定された同一の開始ポート番号を有する開始ポート１２を用いてデータの送受信を開始する。すなわち、送信トグル部１３において、コア１０からのデータ受信および受信したデータの送信を、設定に従った開始ポート１２（例えば、ポート＃０）から開始する。また、受信トグル部１４において、設定に従った開始ポート１２（例えば、ポート＃０）からデータ受信を開始する。
【０１６６】
また、送信トグル部１３は、トグル方式でパケット毎にポート１２を交互に切り替えながら、送信先チップ２に対してデータを送信する。
【０１６７】
ステップＡ４において、受信側チップ２の受信トグル制御部１６３は、指定した開始ポート番号からパケットの受信を開始し、トグル方式により、パケット毎に使用するポート１２を交互に切り替えながら受信する。
【０１６８】
ステップＡ５において、受信側チップ２の受信トグル制御部１６３は、指定した開始ポート番号を有する受信ポート１２からパケットの受信を開始し、トグル方式により、パケット毎に使用するポート１２から受信データを取り出してバッファ上等に順番に並べる（シリアル化する）。
【０１６９】
ステップＡ６において、受信側チップ２の受信バッファユニット１５０は、シリアル化により送信側チップ２における送信順と同じ順序となったパケットを受信側チップ２のコア１０に送信し、その後、処理を終了する。
【０１７０】
次に、実施形態の一例としての通信システム１における送信トグル部１３の処理を、図６に示すフローチャート（ステップＢ１〜Ｂ５）に従って説明する。
【０１７１】
ステップＢ１において、送信トグル部１３は、受信側チップ２と開始ポート番号を同じに設定し、ステップＢ２において、送信トグル部１３は、開始ポート番号を指定する。
【０１７２】
ステップＢ３において、送信トグル部１３は、指定したポート１２へのデータを格納する。
【０１７３】
ステップＢ４において、送信トグル部１３は、パケットの終端であるかを確認する。確認の結果、パケットの終端でない場合には（ステップＢ４のＮＯルート参照）、ステップＢ３に戻る。
【０１７４】
一方、パケットの終端である場合には（ステップＢ４のＹＥＳ参照）、ステップＢ５において、送信トグル部１３の送信トグル制御部１３２は、トグル方式で異なるポート１２を指定する。その後、処理がステップＢ３に戻る。
【０１７５】
次に、実施形態の一例としての通信システム１における受信トグル部１４の処理を、図７に示すフローチャート（ステップＣ１〜Ｃ５）に従って説明する。
【０１７６】
ステップＣ１において、受信トグル部１４は、送信側チップ２と開始ポート番号を同じに設定し、ステップＣ２において、受信トグル部１４は、開始ポート番号を指定する。
【０１７７】
ステップＣ３において、受信トグル部１４は、指定したポート１２からのデータをコア１０へ出力する。
【０１７８】
ステップＣ４において、受信トグル部１４は、パケットの終端であるかを確認する。確認の結果、パケットの終端でない場合には（ステップＣ４のＮＯルート参照）、ステップＣ３に戻る。
【０１７９】
一方、パケットの終端である場合には（ステップＣ４のＹＥＳ参照）、ステップＣ５において、受信トグル部１４の受信トグル制御部１６３は、トグル方式で異なるポート１２を指定する。その後、処理がステップＣ３に戻る。
【０１８０】
（Ｅ）効果
このように、実施形態の一例としての通信システム１においては、送信側チップ２から受信側チップ２２に対して、複数のリンク２０を介して複数のパケットを並行して送信することができるので、通信のスループットを向上させることができる。
【０１８１】
また、送信側チップ２の送信トグル部１３と受信側チップ２の受信トグル部１４とで開始ポート１２を一致させた後、送信トグル部１３が、パケット毎にポート１２をトグル方式で交互に切り替えながら複数のリンク２０を介して受信側チップ２にデータを送信する。
【０１８２】
また、受信側チップ２において、受信トグル部１４が、パケット毎に受信ポート１２をトグル方式で交互に切り替えながら複数のリンク２０を介して受信する。
【０１８３】
これらにより、複数のリンク２０間においてパケットの追い抜きが発生した場合であっても、受信側チップ２において、送信側チップ２からの送信順序と同じ順所でパケットを受信することができる。
【０１８４】
すなわち、受信側チップ２において、送信側チップ２における投入順に受信側でデータ（パケット群）を取得することができる。これにより、送信側チップ２は大きな変更無しに、複数ポート１２をまとめて一つのポート１２のように見なして使うことができ、利便性が高い。
【０１８５】
また、既存の通信システムのパケットのデータ構造を変更することなく、本通信システム１を導入することができ、導入コストを低減することができる。
【０１８６】
（Ｆ）その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１８７】
例えば、上述した実施形態においては、送信側チップ２から受信側チップ２に対して、２つのリンク２０を用いて並行して（２重化して）データを送信することでチップ２間のスループットを向上させる例を示したが、これに限定されるものではない。すなわち、２つ以上のリンク２０を用いて並行してデータを送信してもよい。
【０１８８】
このように３つ以上のリンク２０を用いる場合には、送信側チップ２および受信側チップ２２においてリンク２０と接続される３つ以上のポート１２を備え、送信トグル制御部１３２は、これらのポート１２（リンク２０）を、一のパケットが送信される毎に所定の順序でシーケンシャルに切り替えることが望ましい。
【０１８９】
これにより、チップ２間を２重化した２つのリンク２０によってパケットを振り分けながら送信することに比べて、チップ２間のスループットを向上させることができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【０１９０】
（Ｇ）付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１９１】
（付記１）
複数の通信線を介して接続された送信装置と受信装置とを備え、前記送信装置から前記受信装置へ複数のパケットを送信する送受信システムにおいて、
前記送信装置が、
パケット毎に、前記複数の通信線から一の通信線を規定された順序で選択してパケットを送信し、
前記受信装置が、
前記複数の通信線から前記一の通信線を選択して前記パケットを受信する
ことを特徴とする、送受信システム。
【０１９２】
（付記２）
前記送信装置および前記受信装置のそれぞれが、前記送信装置から前記受信装置への通信開始時に前記複数の通信線の中から同一の通信線を前記一の通信線として選択し、
前記受信装置が、
パケット毎に、前記送信装置と同じ前記規定された順序で前記複数の通信線から前記一の通信線を選択して前記パケットを受信する
ことを特徴とする、付記１記載の送受信システム。
【０１９３】
（付記３）
前記送信装置から前記受信装置へ２つの前記通信線を用いてパケットの送信が行なわれ、
前記送信装置および前記受信装置のそれぞれが、前記２つの通信線を交互に切り替えるトグル切り替えにより前記一の通信線を選択する
ことを特徴とする、付記１または２記載の送受信システム。
【０１９４】
（付記４）
前記パケットが可変長である
ことを特徴とする、付記１〜３のいずれか１項に記載の送受信システム。
【０１９５】
（付記５）
複数の通信線を介して接続された送信部と受信部とを備え、
前記送信部が、
パケット毎に、前記複数の通信線から一の通信線を規定された順序で選択してパケットを送信し、
前記受信部が、
前記複数の通信線から前記一の通信線を選択して前記パケットを受信する
ことを特徴とする、送受信装置。
【０１９６】
（付記６）
前記送信部および前記受信部のそれぞれが、前記送信部から前記受信部への通信開始時に前記複数の通信線の中から同一の通信線を前記一の通信線として選択し、
前記受信部が、
パケット毎に、前記送信部と同じ前記規定された順序で前記複数の通信線から前記一の通信線を選択して前記パケットを受信する
ことを特徴とする、付記５記載の送受信装置。
【０１９７】
（付記７）
前記送信部から前記受信部へ２つの前記通信線を用いてパケットの送信が行なわれ、
前記送信部および前記受信部のそれぞれが、前記２つの通信線を交互に切り替えるトグル切り替えにより前記一の通信線を選択する
ことを特徴とする、付記５または６記載の送受信装置。
【０１９８】
（付記８）
前記パケットが可変長である
ことを特徴とする、付記５〜７のいずれか１項に記載の送受信装置。
【０１９９】
（付記９）
複数の通信線を介して接続された受信装置へ複数のパケットを送信する送信装置であって、
パケット毎に、前記複数の通信線から一の通信線を規定された順序で選択してパケットを送信する
ことを特徴とする、送信装置。
【０２００】
（付記１０）
前記送信装置から前記受信装置への通信開始時に前記複数の通信線の中から前記受信装置と同一の通信線を前記一の通信線として選択する
ことを特徴とする、付記９記載の送信装置。
【０２０１】
（付記１１）
前記送信装置から前記受信装置へ２つの前記通信線を用いてパケットの送信が行なわれ、
前記２つの通信線を交互に切り替えるトグル切り替えにより前記一の通信線を選択する
ことを特徴とする、付記９または１０記載の送信装置。
【０２０２】
（付記１２）
前記パケットが可変長である
ことを特徴とする、付記９〜１１のいずれか１項に記載の送信装置。
【０２０３】
（付記１３）
複数の通信線を介して接続された送信装置から複数のパケットを受信する受信装置において、
前記送信装置が、
パケット毎に、前記複数の通信線から前記送信装置と同じ規定された順序で一の通信線を選択してパケットを受信する
ことを特徴とする、受信装置。
【０２０４】
（付記１４）
前記送信装置から前記受信装置への通信開始時に前記複数の通信線の中から前記送信装置と同一の通信線を前記一の通信線として選択する
ことを特徴とする、付記１３記載の受信装置。
【０２０５】
（付記１５）
前記送信装置から前記受信装置へ２つの前記通信線を用いてパケットの送信が行なわれ、
前記２つの通信線を交互に切り替えるトグル切り替えにより前記一の通信線を選択する
ことを特徴とする、付記１３または１４記載の受信装置。
【０２０６】
（付記１６）
前記パケットが可変長である
ことを特徴とする、付記１３〜１５のいずれか１項に記載の受信装置。
【符号の説明】
【０２０７】
１    通信システム
２ａ，２ｂ，２ｃ，２    チップ
１０    コア
１１    クロスバ
１２ａ−１〜１２ａ−４，１２ｂ−１，１２ｂ−２，１２ｃ−１，１２ｃ−２，１２    ポート
１３    送信トグル部
１３０−１，１３０−２，１３０    送信バッファユニット
１３２    送信トグル制御部
１３３    ヘッダ解析部
１３４    セレクタ
１３５    ＦＷＥ
１３６    ＦＷＰ
１３７    ヘッダＦＩＦＯバッファ
１３８    ＦＲＰ
１３９    ＷＰ
１４０    ＲＰ
１４１    ペイロードバッファ
１４２    バッファフル通知部
１４３    インバータ
１４４    スピード調整部
１４    受信トグル部
１５０−１，１５０−２、１５０    受信バッファユニット
１５１    調停部
１５２    ヘッダ解析部
１５３    ＦＷＥ
１５４    ＦＷＰ
１５７    ＷＰ
１５５    ヘッダＦＩＦＯバッファ
１５６    ＦＲＰ
１５８    ＲＰ
１５９    ペイロードバッファ
１６０    バッファフル通知部
１６１，１６２    セレクタ
１６３    受信トグル制御部
２０−１〜２０−４，２０    リンク
【図１】
2020014102.tif 000003
【図２】
2020014102.tif 000004
【図３】
2020014102.tif 000005
【図４】
2020014102.tif 000006
【図５】
2020014102.tif 000007
【図６】
2020014102.tif 000008
【図７】
2020014102.tif 000009
【図８】
2020014102.tif 000010
【図９】
2020014102.tif 000011