(57)【要約】【課題】  データ伝送速度を維持しつつ、メモリ容量の削減を図ることができ、しかも、汎用性の高い、データ伝送に関わる技術を提供する。【解決手段】  データ伝送装置１は、割り当て部３と、周波数変換部４と、キャッシュ部５と、調停部６とを備える。割り当て部３は、モジュール１０から受信したデータを、予め設定されている複数の仮想チャネルのうちの一つに割り当てる。周波数変換部４は、モジュール１０から受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する。キャッシュ部５は、モジュール１０から受信したデータを、当該データに割り当てられた仮想チャネルに応じた記憶領域９に保持する。調停部６は、キャッシュ部５におけるデータの保持状況に基づいて、キャッシュ部５に保持されているデータを、複数の仮想チャネルに共通のメモリ７に書き込む書き込み順と、メモリ７からデータを読み出す読み出し順を決定する。【選択図】      図１
2016167109.tif 000002
【特許請求の範囲】
【請求項１】
データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータを割り当てる割り当て部と、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する周波数変換部と、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域に保持するキャッシュ部と、
前記キャッシュ部におけるデータの保持状況に基づいて、前記キャッシュ部に保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とを決定する調停部と
を備えているデータ伝送装置。
【請求項２】
前記各仮想チャネル毎に前記メモリの記憶領域を割り当てるメモリ制御部がさらに備えられている請求項１に記載のデータ伝送装置。
【請求項３】
前記メモリ制御部は、前記各仮想チャネルに設定されているデータの伝送レートに基づいて、前記各仮想チャネル毎に前記メモリの記憶領域を割り当てる請求項２に記載のデータ伝送装置。
【請求項４】
前記メモリ制御部は、前記各仮想チャネルに伝送される前記データを発信した発信元モジュールのＱｏＳ（Quolity of Service）情報に基づいて、前記各仮想チャネル毎に前記メモリの記憶領域を割り当てる請求項２に記載のデータ伝送装置。
【請求項５】
前記調停部は、前記メモリに格納されている前記データが、割り当てられている仮想チャネル毎に、書き込まれた順でもって読み出されるように、前記データの読み出し順を決定する請求項１乃至請求項４の何れか一つに記載のデータ伝送装置。
【請求項６】
前記メモリから読み出された前記データにおける前記装置内部の動作周波数を、当該データの転送先に応じた動作周波数に変換する変換部がさらに備えられている請求項１乃至請求項５の何れか一つに記載のデータ伝送装置。
【請求項７】
双方向通信が可能な対を成すモジュールの一方から他方へのデータ伝送に関与する前記割り当て部と前記周波数変換部と前記キャッシュ部と前記調停部を含む装置構成の組と、前記モジュールの他方から一方へのデータ伝送に関与する前記割り当て部と前記周波数変換部と前記キャッシュ部と前記調停部を含む装置構成の組とが設けられ、
前記周波数変換部は、それら二つの組に共通の周波数変換部であり、
前記調停部は、前記二つの組に共通のメモリに書き込まれる前記データの書き込み順と読み出し順を決定する請求項１乃至請求項６の何れか一つに記載のデータ伝送装置。
【請求項８】
データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータをコンピュータが割り当て、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換し、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域にコンピュータが保持し、
前記データの保持状況に基づいて、その保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とをコンピュータが決定するデータ伝送方法。
【請求項９】
データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータを割り当てる処理と、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する処理と、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域に保持する処理と、
前記キャッシュ部におけるデータの保持状況に基づいて、前記キャッシュ部に保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とを決定する処理と
をコンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを伝送する技術に関する。
【背景技術】
【０００２】
メモリ（記憶装置）やＣＰＵ（Central Processing Unit）を含む半導体装置における好ましくない現象の一つとして、ビット反転がある。ビット反転とは、半導体装置の内部に電気的に記憶されている“１”と“０”の情報が反転してしまう現象（具体的には“１”が“０”に、また、“０”が“１”に変化してしまう現象）である。
【０００３】
宇宙環境では地上よりも放射線が強いため、放射線に因るビット反転が半導体装置に起こりやすい。ビット反転は半導体装置の内部のあらゆる所で起こるが、特に、高密度に記憶素子が配置されているメモリデバイスにビット反転が起こりやすく、記憶されているデータが壊れることは大きな問題である。つまり、ビット反転は、“１”や“０”の情報を一時的ではなく変化（反転）させてしまうので、メモリに記録したデータを変化させる、つまり、データを壊してしまうという重大な問題を引き起こす。
【０００４】
一方、宇宙用デバイス（人工衛星や宇宙ロケットなどに搭載され宇宙で使用される装置や部品）には、耐久性や動作に対する信頼性が求められる。このため、宇宙用デバイスには、実績のある技術（換言すれば、最先端ではない技術）が用いられる。これにより、宇宙用デバイスに利用される半導体装置のロジックセル容量およびメモリ容量は商用の半導体よりも小さい。
【０００５】
このようなメモリ容量が小さいことと、前述したようなビット反転に起因した問題とを考慮することにより、宇宙用デバイスにおいて、使用するメモリ容量をできる限り削減したいという要求がある。
【０００６】
ところで、人工衛星を構成している例えば制御装置内において、ミッション毎に要求される伝送レートは大きく異なる。例えば、実用衛星（気象衛星等の実用的に利用される人工衛星）では、撮影画像の高解像度化や複数のスペクトルデータなどの利用が進み、装置内において転送（伝送）するデータ容量が大幅に増加している。一方、人工衛星の制御などを行うコマンドはその伝送頻度については多少増加しているものの、大きく伝送容量が増えているわけではない。このようにミッション毎にデータの伝送容量が異なる状況下において各ミッションにおける互いに異なる伝送レートの要求を満たすために、仮想的な伝送チャネルを利用する技術が有る。つまり、複数の仮想的な伝送チャネル(Virtual Channel)を想定し、これら複数の仮想的な伝送チャネルが一本もしくは数本の物理的な線(Physical Channel)を時分割により共有することにより、伝送レートが異なる各ミッションのデータ伝送を実現する。この手法では、伝送チャネルの数を減少させることなく、物理的な配線数を削減することができる。人工衛星では、動作の信頼性のために冗長設計し、また、大きさが限られていることから、そのような物理的な配線数を減らすことはとても有効である。
【０００７】
なお、特許文献１には、ユーザプログラムの制御に基づくデータ転送を、ＣＰＵコアの処理とは非同期な処理として実現する技術が開示されている。特許文献２には、近接無線通信を行うデバイス間の位置関係の整合性に関わる技術が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−６１２２０号公報
【特許文献２】特開２０１０−１６６４３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
近年の人工衛星では、製造コストおよび検証工数を削減するために、様々なミッションで利用できる汎用的なデバイスが求められている。例えば、図２２には、汎用タイプのデータ伝送装置における構成例が表されている。このデータ伝送装置１０１には、様々な種類のデバイス（例えば、ＣＰＵ、記憶装置、センサ、光学カメラなど）１２０（１２０ａ，１２０ｂ，１２０ｃ）が接続可能である。当該データ伝送装置１０１は、それら接続されたデバイス１２０から出力されたデータを通信接続相手に伝送する装置である。
【００１０】
図２２におけるデータ伝送装置１０１は、複数（図２２の例では４つ）の端子群１０２（１０２ａ，１０２ｂ，１０２ｃ，１０２ｄ）と、制御装置１０３と、通信線接続部１０４とを有している。
【００１１】
各端子群１０２（１０２ａ，１０２ｂ，１０２ｃ，１０２ｄ）は、それぞれ、低速なインターフェース（図示せず）を介してデバイス１２０に接続する接続部であり、複数の端子部１０５を有している。また、通信線接続部１０４は通信線（物理的な線）１１３と接続する接続部である。この通信線接続部１０４は、制御装置１０３に接続されている。
【００１２】
制御装置１０３は、ＣＰＵ（Central Processing Unit）を含む装置である。そのＣＰＵには、レジスタやキャッシュメモリ等の記憶部が内蔵されている。例えば、その内蔵のレジスタ１０７には、データ伝送に関わる制御情報が記憶されている。
【００１３】
また、この例では、制御装置（ＣＰＵ）１０３には、データを伝送する仮想的な伝送チャネル（以下、仮想チャネルと記載する）として、３つの仮想チャネルＶＣ１，ＶＣ２，ＶＣ３が設定されている。制御装置１０３には、それら仮想チャネルＶＣ１，ＶＣ２，ＶＣ３をそれぞれ構成するメモリ１０９ａ，１０９ｂ，１０９ｃが設定されている。これらメモリ１０９ａ〜１０９ｃは、例えば、ＦＩＦＯ（First-In, First-Out）方式でもってデータが読み書きされる。
【００１４】
さらに、制御装置１０３は、各仮想チャネルＶＣ１〜ＶＣ３におけるデータ伝送を制御する機能（換言すれば、メモリ１０９ａ，１０９ｂ，１０９ｃにおけるデータの読み書きを制御する機能）を備えている。つまり、制御装置１０３は、機能部として、割り当て部１１０と、読み出し部１１１と、調停部（アービトレーション部）１１２とを有している。
【００１５】
割り当て部１１０は、レジスタ１０７に格納されている制御情報に基づいて、データ伝送装置１０１に接続されているデバイス１２０に割り当てる仮想チャネルを決定する機能を備えている。また、割り当て部１１０は、例えば、接続されるデバイス１２０に設定されている要求データ伝送レートに基づいて、そのデバイス１２０からデータを受ける端子群（換言すれば、各仮想チャネルに関連付けられる端子群）を決定する機能を備えている。この例では、デバイス１２０ａにおける要求データ伝送レートが、１つの端子群１０２により実現可能なデータ伝送レートよりも速いために、デバイス１２０ａに割り当てられた仮想チャネルＶＣ１には、２つの端子群１０２ａ，１０２ｂが関連付けられている。また、デバイス１２０ｂ，１２０ｃにそれぞれ割り当てられた仮想チャネルＶＣ２，ＶＣ３には、それぞれ、端子群１０２ｃ，１０２ｄが関連付けられている。
【００１６】
調停部１１２は、メモリ１０９ａ〜１０９ｃのデータ格納状況に基づいて、読み出し部１１１の読み出し動作を制御する機能を備えている。読み出し部１１１は、調停部１１２の指示に従って、各メモリ１０９からデータを読み出し、当該読み出したデータを通信線接続部１０４を介して通信線１１３に出力する機能を備えている。
【００１７】
このようなデータ伝送装置１０１では、デバイス１２０から端子群１０２に入力したデータは、割り当て部１１０と、割り当てられた仮想チャネルに応じたメモリ１０９と、読み出し部１１１とを通り、通信線接続部１０４から通信線１１３に出力される。
【００１８】
ところで、通信線１１３から出力されるデータの伝送レートが予め設定されている伝送レートの条件を満たすためには、データ伝送装置１０１を次のように設計しなければならない。例えば、通信線１１３の伝送レートが１Ｇbps（Giga bits per second）であり、データ伝送装置１０１の動作周波数が５０ＭHz（メガヘルツ）であるとする。この場合には、データ伝送装置１０１の内部において伝送されるデータのデータ幅（バス幅（同時に伝送できるデータ量））Ｎは２０bitとなる。また、例えば、４つの端子群１０２ａ〜１０２ｄにおける各データ幅Ｎが１０bitであるとする。この場合に、通信線１１３の伝送レートを１Ｇbpsとする場合には、データ伝送装置１０１にデータを入力するインターフェース部は、２５ＭHz（メガヘルツ）の動作周波数でもって動作しなければならない。
【００１９】
このようにデータ伝送装置１０１を設計した場合に、各仮想チャネルＶＣ１〜ＶＣ３に関連付けられるメモリ１０９ａ〜１０９ｃの容量を無用に大きくしなければならないという問題が生じる。つまり、上記のように設計される場合には、メモリ１０９で必要となるメモリ容量は、次の数式（１）に基づいて算出される。
（メモリ容量（bit））＝（データ伝送装置１０１の内部におけるデータ幅Ｎ）×（仮想チャネルの深さ（メモリ１０９でのレイテンシ））×（端子群の数）・・・・・（１）
図２３は、各仮想チャネルＶＣ１〜ＶＣ３（メモリ１０９ａ〜１０９ｃ）における入力データのビット幅を模式的に表した図である。上記のように設計した場合には、仮想チャネルＶＣ１の最大データスループットは５００Ｍbpsであることから、仮想チャネルＶＣ１に入力可能なビット幅Ｎのうち、使用するのは半分（Ｎ/２）（bit）である。また、仮想チャネルＶＣ２，ＶＣ３に関しては、入力可能なビット幅Ｎのうち、使用するのは４分の１（Ｎ/４）（bit）である。
【００２０】
このように、図２２のデータ伝送装置１０１の構成では、仮想チャネルＶＣ１〜ＶＣ３、換言すれば、メモリ１０９には未使用領域が多くなる。つまり、図２２のデータ伝送装置１０１は、メモリ１０９の容量を無用に大きくしなければならないという問題が有る。
【００２１】
本発明は上記課題を解決するためになされたものである。すなわち、本発明の主な目的は、データ伝送速度を維持しつつ、メモリ容量の削減を図ることができ、しかも、汎用性の高い、データ伝送に関わる技術を提供することにある。
【課題を解決するための手段】
【００２２】
上記目的を達成するために、本発明のデータ伝送装置は、
データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータを割り当てる割り当て部と、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する周波数変換部と、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域に保持するキャッシュ部と、
前記キャッシュ部におけるデータの保持状況に基づいて、前記キャッシュ部に保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とを決定する調停部と
を備えている。
【００２３】
本発明のデータ伝送方法は、
データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータをコンピュータが割り当て、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換し、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域にコンピュータが保持し、
前記データの保持状況に基づいて、その保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とをコンピュータが決定する。
【００２４】
本発明のコンピュータプログラムは、
データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータを割り当てる処理と、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する処理と、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域に保持する処理と、
前記キャッシュ部におけるデータの保持状況に基づいて、前記キャッシュ部に保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とを決定する処理と
をコンピュータに実行させるコンピュータプログラムである。
【００２５】
なお、本発明の主な前記目的は、本発明のデータ伝送装置に対応する本発明のデータ伝送方法によっても達成される。また、本発明の主な前記目的は、本発明のデータ伝送装置およびデータ伝送方法を実現するコンピュータプログラム、および、それを保持するプログラム記憶媒体によっても達成される。
【発明の効果】
【００２６】
本発明によれば、データ伝送速度を維持しつつ、メモリ容量の削減を図ることができ、しかも、汎用性の高い、データ伝送に関わる技術を提供できる。
【図面の簡単な説明】
【００２７】
【図１】本発明に係る第１実施形態のデータ伝送装置の構成を簡略化して表すブロック図である。
【図２】本発明に係る第２実施形態のデータ伝送装置の概略構成を表すブロック図である。
【図３】第２実施形態のデータ伝送装置を構成する受付装置の構成を簡略化して表すブロック図である。
【図４】第２実施形態のデータ伝送装置を構成する転送装置の構成を簡略化して表すブロック図である。
【図５】外部モジュール（発信元モジュール）と受付装置との間で通信される信号の例を説明する図である。
【図６】図５に表されている信号の波形例を表すタイムチャートである。
【図７】受付装置が２つの端子群を利用して外部モジュールに接続する場合における外部モジュール（発信元モジュール）と受付装置との間で通信される信号の例を説明する図である。
【図８】第２実施形態における割り当て部と周波数変換部との間で通信される信号の例を説明する図である。
【図９】周波数変換部を構成する選択回路を説明する図である。
【図１０】図９に表されている選択回路の動作を説明する図である。
【図１１】周波数変換部とキャッシュ部との間で通信される信号の例を説明する図である。
【図１２】各仮想チャネルに対応するキャッシュ部からデータメモリにデータを書き込む動作を説明する図である。
【図１３】第２実施形態におけるキャッシュ部と書き込み部との間で通信される信号の例を説明する図である。
【図１４】第２実施形態におけるデータ伝送装置に搭載されるプロトコルレイヤの一例を表すブロック図である。
【図１５】図１４に表されるプロトコルレイヤでのデータに行われる処理を説明する図である。
【図１６】さらに、図１４に表されるプロトコルレイヤでのデータに行われる処理を説明する図である。
【図１７】さらにまた、図１４に表されるプロトコルレイヤでのデータに行われる処理を説明する図である。
【図１８】受付装置と転送装置との間で通信される信号のやりとりを説明する図である。
【図１９】第２実施形態のデータ伝送装置における変形例を図２０と共に説明する図である。
【図２０】第２実施形態のデータ伝送装置における変形例を図１９と共に説明する図である。
【図２１】本発明に係る第３実施形態の構成を説明する図である。
【図２２】データ伝送装置の一構成例を説明する図である。
【図２３】図２２におけるデータ伝送装置の問題点を説明する図である。
【発明を実施するための形態】
【００２８】
以下に、本発明に係る実施形態を図面に基づいて説明する。
【００２９】
＜第１実施形態＞
図１は、本発明に係る第１実施形態のデータ伝送装置の構成を簡略化して表すブロック図である。この第１実施形態のデータ伝送装置１は、割り当て部３と、周波数変換部４と、キャッシュ部５と、調停部６とを備えている。このデータ伝送装置１には、データを伝送する仮想的な伝送チャネルである複数の仮想チャネルが予め設定されている。このデータ伝送装置１は、モジュール１０から発信されたデータを受信し、当該受信したデータを仮想チャネルを通して伝送し、伝送先であるモジュール１１に向けて出力することが可能な装置である。
【００３０】
割り当て部３は、例えばモジュール１０から受信したデータを、予め設定されている複数の仮想チャネルのうちの一つに割り当てる機能を備えている。
【００３１】
周波数変換部４は、モジュール１０から受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する機能を備えている。
【００３２】
キャッシュ部５は、モジュール１０から受信したデータを、当該データに割り当てられた仮想チャネルに応じた記憶領域９に保持する機能を備えている。
【００３３】
調停部６は、キャッシュ部５におけるデータの保持状況に基づいて、キャッシュ部５に保持されているデータを、複数の仮想チャネルに共通のメモリ７に書き込む書き込み順を決定する機能を備えている。その決定されたデータの書き込み順は、調停部６から、例えば読み書き部８に通知される。読み書き部８は、その通知された順番でもってキャッシュ部５に格納されているデータをメモリ７に書き込む。
【００３４】
また、調停部６は、メモリ７からデータを読み出す読み出し順を決定する機能を備えている。その決定された読み出し順は、調停部６から、例えば読み書き部８に通知される。読み書き部８は、その通知された順番でもってメモリ７からデータを読み出す。そして、この読み出されたデータは、予め定められた処理が行われた後に、モジュール１１に向けて出力される。
【００３５】
この第１実施形態のデータ伝送装置１は、上記のような調停部６を備えていることによって、複数の仮想チャネルに共通のメモリを利用することができる。これにより、仮想チャネル毎にメモリを用意する場合に比べて、第１実施形態のデータ伝送装置１は、メモリ容量を抑制することができる。
【００３６】
また、データ伝送装置１は、周波数変換部４とキャッシュ部５を備えているので、メモリ７にデータを書き込む際のデータ衝突が発生する確率を低減することができる。これにより、データ伝送装置１は、データ衝突に起因したデータの伝送レートの低下を抑制することができる。さらに、データ伝送装置１は、仮想チャネルによりデータを伝送するので、例えば伝送レートの異なる複数種のデータを伝送することが可能であり、汎用性が高い装置である。
【００３７】
＜第２実施形態＞
以下に、本発明に係る第２実施形態を説明する。
【００３８】
図２は、第２実施形態のデータ伝送装置の概略構成を表すブロック図である。この第２実施形態のデータ伝送装置２０は、外部モジュール２５（２５ａ，２５ｂ，２５ｃ）から発信されたデータを外部モジュール２６（２６ａ，２６ｂ，２６ｃ）に伝送（転送）可能な装置である。このデータ伝送装置２０は、内部に仮想チャネルを設定し、当該仮想チャネルを通してデータを伝送する構成を備えている。
【００３９】
すなわち、第２実施形態のデータ伝送装置２０は、受付装置２１と、転送装置２２とを有し、受付装置２１と転送装置２２は通信線２３によって接続されている。
【００４０】
受付装置２１は、各外部モジュール（以下、発信元モジュールと記載する）２５から発信されたデータを受信し、これらデータを時分割多重により通信線２３に出力する構成を備えている。
【００４１】
通信線２３は、データを伝送する物理的な線である。この通信線２３は、例えば、シングルエンド伝送方式でもってデータを伝送する導線であってもよいし、ＬＶＤＳ（Low Voltage Differential Signaling）技術を利用した差動伝送方式でもってデータを伝送する差動伝送線路であってもよい。また、通信線２３は、ＣＭＬ（Current Mode Logic）技術を利用した差動伝送方式でもってデータを伝送する線路であってもよい。さらにまた、通信線２３は、光ファイバであってもよい。
【００４２】
転送装置２２は、通信線２３を通して受信したデータを、当該データの宛先である外部モジュール（以下、転送先モジュールと記載する）２６に向けて出力する構成を備えている。
【００４３】
図３は、受付装置２１の構成を簡略化して表すブロック図である。この第２実施形態では、受付装置２１は、複数の端子群２８（２８ａ，２８ｂ，２８ｃ，２８ｄ）と、制御装置３０と、通信線接続部３１とを備えている。各端子群２８は、発信元モジュール２５と接続する接続部である。各端子群２８は、複数の端子部２９を有し、各端子部２９は、それぞれ、データ（信号）を伝送する導通路３２を介して制御装置３０に接続されている。通信線接続部３１は、通信線２３に接続する端子部である。この通信線接続部３１は、データ（信号）を伝送する導通路３３を介して制御装置３０に接続されている。
【００４４】
制御装置３０は、ＣＰＵ（Central Processing Unit）３０Ａと記憶部３０Ｂを有している。記憶部３０Ｂは、各種データやコンピュータプログラムを記憶する機能を備えている。また、ＣＰＵ３０Ａは、内蔵の記憶部として、制御情報格納部（例えばレジスタ）３４と、キャッシュ部３５と、データメモリ３６とを有している。
【００４５】
制御情報格納部３４は、制御情報が格納される記憶部である。その制御情報とは、データ伝送に関わる制御動作に利用する情報である。例えば、受付装置２１には、端子群２８の数に応じた数の仮想チャネルが設定可能である。これにより、この第２実施形態では、受付装置２１には、４つの仮想チャネルＶＣ１，ＶＣ２，ＶＣ３，ＶＣ４が設定可能である。各端子群２８（換言すれば、接続している発信元モジュール２５）は、それぞれ、ＣＰＵ３０Ａの機能によって、仮想チャネルＶＣ１〜ＶＣ４の一つに関連付けられる。制御情報格納部３４に格納される制御情報には、各仮想チャネルＶＣ１〜ＶＣ４における最大伝送レートの情報やＱｏＳ（Quality of Service）の情報が含まれている。なお、制御情報格納部３４が、書き換え可能なレジスタ等の一次記憶メモリにより構成される場合には、当該制御情報格納部３４に格納される制御情報が書き換え可能になる。このような書き換え可能な制御情報格納部３４を備え、制御情報を適宜に書き換えることによって、制御装置３０は、様々な接続形態に対応可能な可変ルータＬＳＩ（Large Scale Integration）と成すことができる。
【００４６】
キャッシュ部３５は、データを一時的に格納する記憶領域である。このキャッシュ部３５には、設定された各仮想チャネルＶＣ１，ＶＣ２，ＶＣ３，ＶＣ４にそれぞれ関連付けられたキャッシュメモリ３７ａ，３７ｂ，３７ｃ，３７ｄが設定されている。
【００４７】
データメモリ３６は、仮想チャネルＶＣ１〜ＶＣ４が共有する記憶部であり、各仮想チャネルＶＣ１〜ＶＣ４によって伝送されているデータを記憶する。このデータメモリ３６は、例えば、読み出し用ポートが１つと書き込み用ポートが１つである１Ｒ（Read）+１Ｗ（Write）タイプのメモリにより構成される。なお、データメモリ３６は、書き込み用の複数のポートを持つメモリにより構成されてもよい。この場合には、データメモリ３６は、複数の書き込み対象のデータを同時に受け付けることができる。
【００４８】
上記のような記憶部を内蔵しているＣＰＵ３０Ａは、例えば記憶部３０Ｂに格納されているコンピュータプログラムを実行することによって、次のような機能を持つことができる。すなわち、ＣＰＵ３０Ａは、機能部として、割り当て部３８と、周波数変換部４０と、メモリ制御部４２と、書き込み部４３と、読み出し部４４と、調停部（アービトレーション部）４５とを備えている。
【００４９】
割り当て部３８は、データ伝送装置２０に接続されている発信元モジュール２５に、端子群２８と、仮想チャネルＶＣ１〜ＶＣ４の一つとを割り当てる機能を備えている。例えば、割り当て部３８は、発信元モジュール２５が接続されたことを検知した場合に、制御情報格納部３４に格納されている制御情報に基づいて、仮想チャネルＶＣ１〜ＶＣ４の最大伝送レートやＱｏＳ情報を取得する。また、割り当て部３８は、接続された発信元モジュール２５から当該発信元モジュール２５が要求するデータ伝送レートを取得する。そして、割り当て部３８は、取得した情報に基づいて、接続された発信元モジュール２５に、データ伝送レートに応じた端子群２８および仮想チャネルＶＣ１〜ＶＣ４の一つを割り当てる。
【００５０】
例えば、１つの端子群２８におけるデータ伝送レートが２５０Ｍbpsである場合に、接続された発信元モジュール２５が要求するデータ伝送レートが５００Ｍbpsであるとする。この場合には、１つの端子群２８だけでは発信元モジュール２５の要求に応えられないので、割り当て部３８は、その発信元モジュール２５に２つの端子群２８を割り当てる。具体的には、例えば、発信元モジュール２５ａが要求する最大伝送レートをＳとし、１つの端子群２８が実現可能な最大データ伝送レートをＴとする。この場合に、割り当て部３８は、発信元モジュール２５ａに割り当てる端子群２８の個数を求めるべく、天井関数ceil（Ｓ÷Ｔ）を算出する。そして、割り当て部３８は、算出された個数の端子群２８を発信元モジュール２５ａに割り当てる。なお、天井関数ceil（Ｓ÷Ｔ）とは、数式：Ｓ÷Ｔにより求まる数値を一番近い整数に切り上げる関数である。
【００５１】
以下の説明では、割り当て部３８によって、発信元モジュール２５ａには、２つの端子群２８ａ，２８ｂが割り当てられると共に、仮想チャネルＶＣ１が割り当てられているとする。また、発信元モジュール２５ｂには、端子群２８ｃが割り当てられ、かつ、仮想チャネルＶＣ２が割り当てられているとする。さらに、発信元モジュール２５ｃには、端子群２８ｄが割り当てられ、かつ、仮想チャネルＶＣ３が割り当てられているとする。仮想チャネルＶＣ４は使用していないとする。
【００５２】
周波数変換部４０は、各仮想チャネルＶＣ１，ＶＣ２，ＶＣ３，ＶＣ４に関連付けられている変換部４１ａ，４１ｂ，４１ｃ，４１ｄを備えている。各変換部４１ａ〜４１ｄは、端子群２８に入力したデータ（信号）の動作周波数（基準周波数）を、制御装置３０における動作周波数（基準周波数）に変換する機能を備えている。例えば、発信元モジュール２５ａから端子群２８を通って仮想チャネルＶＣ１に入力したデータ信号の動作周波数が２５ＭHz（メガヘルツ）であるとする。この場合に、変換部４１ａは、そのデータ信号の動作周波数を制御装置３０の動作周波数である５０ＭHz（メガヘルツ）に変換する。
【００５３】
メモリ制御部４２は、データメモリ３６において、仮想チャネルＶＣ１〜ＶＣ４に割り当てる記憶領域を決定する機能を備えている。例えば、メモリ制御部４２は、制御情報格納部３４の制御情報に基づいて、各仮想チャネルに関連付けられている発信元モジュール２５ａ〜２５ｃが要求する最大データ伝送レートの比を求める。そして、メモリ制御部４２は、その最大データ伝送レートの比に応じて、各仮想チャネルＶＣ１〜ＶＣ４（ただし、具体例では、仮想チャネルＶＣ４は使用せず）に割り当てるデータメモリ３６の記憶領域を決定する。具体的には、発信元モジュール２５ａ〜２５ｃの最大データ伝送レートＶa〜Ｖcの比が、Ｖa：Ｖb：Ｖc＝２：１：１であるとする。また、発信元モジュール２５ａ〜２５ｃに関連付けられている仮想チャネルＶＣ１〜ＶＣ３に割り当てる記憶領域の容量がＱ1〜Ｑ3であるとする。このような場合に、メモリ制御部４２は、仮想チャネルＶＣ１〜ＶＣ３に割り当てる記憶領域の容量の比が、データ伝送レートの比に応じた、Ｑ1：Ｑ2：Ｑ3＝２：１：１となるように、仮想チャネルＶＣ１〜ＶＣ３にデータメモリ３６の記憶領域を割り当てる。
【００５４】
なお、メモリ制御部４２は、データメモリ３６における記憶領域を各仮想チャネルＶＣ１〜ＶＣ４に等分ずつ割り当ててもよい。ただ、このようにデータ伝送レートの違いを考慮しない場合よりも考慮した方が、データ伝送レートの早い発信元モジュール２５（仮想チャネル）に割り当てられたデータメモリ３６の記憶領域のメモリ不足（メモリあふれ）の状態が多発する事態が防止される。つまり、メモリ不足（メモリあふれ）に起因した処理の一時停止状態が削減される。
【００５５】
メモリ制御部４２は、上記のように各仮想チャネルＶＣ１〜ＶＣ４に割り当てたデータメモリ３６の記憶領域を表す情報を書き込み部４３と読み出し部４４に通知する。
【００５６】
調停部４５は、キャッシュメモリ３７ａ〜３７ｄからデータメモリ３６に書き込むデータの順番を決定する機能を備えている。調停部４５は、その書き込み順を決定する際に、キャッシュメモリ３７ａ〜３７ｄのデータ格納状況と、データメモリ３６のデータ格納状況と、制御情報格納部３４に格納されているＱｏＳの情報とを利用する。また、調停部４５は、データメモリ３６から通信線２３に出力するデータの読み出し順を決定する機能を備えている。なお、ＱｏＳの情報には、優先度、各仮想チャネルＶＣ１〜ＶＣ４の予め設定された最低帯域幅（換言すれば、通信レート）、スケジューリング、ラウンドロビン（順番を決定する手法の情報）というような様々な情報がある。調停部４５は、そのようなＱｏＳの情報のうちの予め指定された情報を利用する。
【００５７】
調停部４５は、具体的には、例えば、データメモリ３６に書き込まれた順番でもって、データメモリ３６からデータが読み出されるように、データメモリ３６におけるデータの書き込みと読み出しの順番を決定する。あるいは、調停部４５は、データメモリ３６における各仮想チャネルＶＣ１〜ＶＣ４に関連付けられている記憶領域の格納率（使用率）に基づいて、データメモリ３６からのデータの読み出し順番を決定してもよい。このように、調停部４５がデータメモリ３６におけるデータの書き込みと読み出しの順番を決定する手法には様々な手法があり、ここでは、適宜な手法を採用してよい。なお、調停部４５は、各仮想チャネルＶＣ１〜ＶＣ４毎に着目した場合に、ＦＩＦＯ方式でもってデータメモリ３６に各仮想チャネルＶＣ１〜ＶＣ４のデータが読み書きされるように、データの書き込み順と読み出し順を決定することが好ましい。
【００５８】
書き込み部４３は、調停部４５からの指示に基づいた順番でもってキャッシュメモリ３７ａ〜３７ｄからデータを受け付け（読み出し）、当該データを、メモリ制御部４２により決定されたデータメモリ３６における記憶領域に書き込む機能を備えている。
【００５９】
読み出し部４４は、調停部４５からの指示に基づいた順番でもってデータメモリ３６からデータを読み出し、当該データを通信線接続部３１を通して通信線２３に出力する機能を備えている。
【００６０】
図４は、転送装置２２の構成を簡略化して表すブロック図である。この第２実施形態では、転送装置２２は、複数の端子群５０（５０ａ，５０ｂ，５０ｃ，５０ｄ）と、制御装置５２と、通信線接続部５３とを備えている。各端子群５０は、転送先モジュール２６と接続する接続部である。各端子群５０は、複数の端子部５１を有している。各端子部５１は、それぞれ、制御装置５２に接続されている。通信線接続部５３は、通信線２３に接続する端子部である。この通信線接続部５３は、制御装置５２に接続されている。
【００６１】
制御装置５２は、ＣＰＵ（Central Processing Unit）５２Ａと記憶部５２Ｂを有している。記憶部５２Ｂは、各種データやコンピュータプログラムを記憶する機能を備えている。また、ＣＰＵ５２Ａは、内蔵の記憶部として、制御情報格納部（例えばレジスタ）５６とデータメモリ５９を有している。
【００６２】
制御情報格納部５６は、制御情報が格納される記憶部である。この制御情報は、受付装置２１の制御情報格納部３４に格納されている制御情報と同様な情報である。ただ、転送装置２２における制御情報は、発信元モジュール２５ではなく、転送先モジュール２６が関与している情報である。
【００６３】
転送装置２２にも、受付装置２１にて設定された仮想チャネルと同様の仮想チャネルＶＣ１〜ＶＣ４が設定される。データメモリ５９は、受付装置２１のデータメモリ３６と同様に、仮想チャネルＶＣ１〜ＶＣ４が共有する記憶部であり、各仮想チャネルＶＣ１〜ＶＣ４によって伝送されているデータを記憶する。このデータメモリ５９も、データメモリ３６と同様に、例えば、読み出し用ポートが１つと書き込み用ポートが１つである１Ｒ（Read）+１Ｗ（Write）タイプのメモリにより構成される。なお、データメモリ５９は、書き込み用の複数のポートを持つメモリにより構成されてもよい。この場合には、データメモリ５９は、複数の書き込み対象のデータを同時に受け付けることができる。
【００６４】
上記のような記憶部を内蔵しているＣＰＵ５２Ａは、例えば記憶部５２Ｂに格納されているコンピュータプログラムを実行することによって、次のような機能を持つことができる。すなわち、ＣＰＵ５２Ａは、機能部として、メモリ制御部５７と、書き込み部５８と、調停部（アービトレーション部）６０と、読み出し部６１と、周波数変換部６３と、割り当て部６４とを備えている。
【００６５】
割り当て部６４は、受付装置２１の割り当て部３８と同様に、データ伝送装置２０に接続されている転送先モジュール２６に、端子群５０と仮想チャネルＶＣ１〜ＶＣ４を割り当てる機能を備えている。例えば、割り当て部６４は、割り当て部３８と同様に、転送先モジュール２６のデータ伝送レートを考慮して、各転送先モジュール２６ａ〜２６ｃに端子群５０および仮想チャネルＶＣ１〜ＶＣ４の一つを割り当てる機能を備えている。具体的には、例えば、転送先モジュール２６ａには、２つの端子群５０ａ，５０ｂが割り当てられると共に、仮想チャネルＶＣ１が割り当てられているとする。また、転送先モジュール２６ｂには、端子群５０ｃが割り当てられ、かつ、仮想チャネルＶＣ２が割り当てられているとする。さらに、転送先モジュール２６ｃには、端子群５０ｄが割り当てられ、かつ、仮想チャネルＶＣ３が割り当てられているとする。仮想チャネルＶＣ４は使用していないとする。
【００６６】
メモリ制御部５７は、受付装置２１のメモリ制御部４２と同様に、データメモリ５９において、仮想チャネルＶＣ１〜ＶＣ４に割り当てる記憶領域を決定する機能を備えている。メモリ制御部５７は、その各仮想チャネルＶＣ１〜ＶＣ４に割り当てたデータメモリ５９の記憶領域を表す情報を書き込み部５８と読み出し部６１に通知する。
【００６７】
書き込み部５８は、例えば、受付装置２１から通信線２３を通して受け取ったデータの転送先である転送先モジュール２６を検知し、割り当て部６４の割り当て情報等に基づき、その検知した転送先モジュール２６に関連付けられている仮想チャネルを検知する。そして、書き込み部５８は、受付装置２１から通信線２３を通して受け取ったデータを、そのデータを伝送する仮想チャネルに関連付けられているデータメモリ５９の記憶領域に書き込む。
【００６８】
調停部６０は、データメモリ５９の格納状況や、制御情報格納部５６に格納されているＱｏＳ等の制御情報などに基づいて、データメモリ５９から読み出すデータの順番を決定する機能を備えている。
【００６９】
読み出し部６１には、各仮想チャネルＶＣ１〜ＶＣ４に関連付けられている読み出し部６６ａ〜６６ｄが設定されている。各読み出し部６６ａ〜６６ｄは、調停部６０からの指示に基づいた順番でもってデータメモリ５９から、関連付けられている仮想チャネルＶＣ１〜ＶＣ４のデータを読み出す。
【００７０】
周波数変換部６３は、各仮想チャネルＶＣ１，ＶＣ２，ＶＣ３，ＶＣ４に関連付けられている変換部６７ａ，６７ｂ，６７ｃ，６７ｄを備えている。各変換部６７ａ〜６７ｄは、関連付けられている仮想チャネルＶＣ１〜ＶＣ４のデータが読み出し部６６ａ〜６６ｄにより読み出されると、その読み出されたデータの動作周波数（基準周波数）を、転送先モジュール２６の動作周波数（基準周波数）に変換する。
【００７１】
この第２実施形態のデータ伝送装置２０は上記のように構成されている。以下に、具体的な数値を用いてデータ伝送装置２０における各構成部分の動作を説明する。
【００７２】
ここでは、受付装置２１と転送装置２２を接続している通信線２３は、高速シリアルリンク通信方式でもってデータ通信を行う通信線であり、そのデータ伝送速度は１Ｇbpsであるとする。また、このデータ伝送装置２０における制御装置３０，５２の動作周波数（基準周波数）は５０ＭHzであるとする。さらに、データ伝送装置２０の内部におけるデータ幅Ｎは２０bitであるとする。さらに、各端子群２８，５０におけるデータ幅Ｎは１０bitであり、端子群２８，５０に入力される信号の動作周波数は２５ＭHzであるとする。
【００７３】
図５は、発信元モジュール２５と、受付装置２１との間で通信される信号の一例を説明する図である。この図５の例で通信される信号は、一般的な同期シリアルインターフェースに基づいた信号である。つまり、発信元モジュール２５と、受付装置２１との間には、クロック信号clkと、データ信号dataと、制御信号enableと、制御信号fullとの４種の信号が通信される。図６は、それら信号の波形例を表している。
【００７４】
クロック信号clkは、図６に表されるようなパルス信号であり、発信元モジュール２５と受付装置２１との間の通信信号の基準となる周波数（動作周波数）を表す。データ信号dataは、伝送（転送）対象のデータを伝搬する信号である。図６の例では、データ信号dataは、差動信号であり、例えば１０bitのデータを伝搬する。制御信号enableは、データ信号dataが有効であることを表す信号である。つまり、図６の例では、制御信号enableのレベルがハイレベル（Ｈレベル）である場合にはデータ信号dataが有効であることを表し、制御信号enableのレベルがローレベル（Ｌレベル）である場合にはデータ信号dataが無効（データ無し）であることを表している。制御信号fullは、受付装置２１が何らかの原因によりデータを受け付けられない状態にあることを受付装置２１から発信元モジュール２５に伝達する信号である。図６の例では、制御信号fullのレベルがハイレベル（Ｈレベル）である状態が、受付装置２１がデータを受け付けられない状態であることを表している。
【００７５】
図６に表される波形例では、クロック信号clkの１サイクル目（制御信号enableがＨレベルであり、かつ、制御信号fullがＬレベルである状況）において、Ａというデータを持つデータ信号dataが受付装置２１に入力している。２サイクル目（制御信号enableがＨレベルであり、かつ、制御信号fullがＬレベルである状況）において、Ｂというデータを持つデータ信号dataが受付装置２１に入力している。３〜５サイクルにおいては、制御信号enableがＬレベルであり、発信元モジュール２５が出力するデータが無い状態である。６サイクル目においては、制御信号fullがＨレベルであり、受付装置２１がデータを受け付けられない状態である。７サイクル目（制御信号enableがＨレベルであり、かつ、制御信号fullがＬレベルである状況）においては、Ｄというデータを持つデータ信号dataが受付装置２１に入力している。
【００７６】
この具体例では、前記の如く、クロック信号clkの周波数（クロック周波数）が２５ＭHzであり、データ信号dataのデータ幅Ｎが１０bitである。この場合には端子群２８における最大データ伝送レートは２５０Ｍbpsである。
【００７７】
これに対し、発信元モジュール２５（ここでは、説明を容易にするために発信元モジュール２５ａとする）の最大データ伝送レートが５００Ｍbpsであるとする。この場合には、１つの端子群２８だけでは発信元モジュール２５ａの最大データ伝送レートに応じることができない。このため、割り当て部３８が、図７に表されているように、発信元モジュール２５ａに２つの端子群２８（２８ａ，２８ｂ）を割り当てる。これにより、データ伝送装置２０は、発信元モジュール２５ａの最大データ伝送レートに応じたデータ伝送レートでもって発信元モジュール２５ａのデータを伝送できる。
【００７８】
ところで、このように１つの発信元モジュール２５に複数の端子群２８ａ，２８ｂが割り当てられ当該端子群２８ａ，２８ｂが同じ発信元モジュール２５に接続する場合には、端子群２８ａ，２８ｂに同じクロック信号clk、制御信号enableが入力する。また、端子群２８ａ，２８ｂから同じ制御信号fullが発信元モジュール２５に出力される。このことを考慮し、例えば、発信元モジュール２５と端子群２８ｂとの間におけるクロック信号clkおよび制御信号enable，fullが省略される構成としてもよい。
【００７９】
なお、ここでは、発信元モジュール２５の最大データ伝送レートに応じるために２つの端子群２８を利用する例を説明している。ただし、要求されるデータ伝送レートによっては、１つの発信元モジュール２５に３つ以上の端子群２８が割り当て部３８によって割り当てられてもよい。
【００８０】
図８は、割り当て部３８に入出力する信号の具体例を説明する図である。図８の例では、割り当て部３８と、各端子群２８ａ〜２８ｄとの間において、前記同様のクロック信号clkと、データ信号dataと、制御信号enableと、制御信号fullとの４種の信号が通信される。また、割り当て部３８と、周波数変換部４０の各変換部４１ａ〜４１ｄとの間においては、クロック信号clkと、制御信号enableと、制御信号fullと、各端子群２８ａ〜２８ｄに入力する４つのデータ信号data（data_ａ〜data_ｄ）とが通信される。
【００８１】
各変換部４１ａ〜４１ｄは、互いに異なる仮想チャネルＶＣ１〜ＶＣ４に関連付けられており、割り当て部３８と各変換部４１ａ〜４１ｄとの間のデータ通信は、仮想チャネルＶＣ１〜ＶＣ４におけるデータ伝送と見なされる。
【００８２】
この割り当て部３８と、各変換部４１ａ〜４１ｄとの間の仮想チャネルＶＣ１〜ＶＣ４におけるデータ伝送を実現するために、割り当て部３８は、次のような制御信号enable_VC1〜enable_VC4を各変換部４１ａ〜４１ｄに出力する。例えば、２つの端子群２８ａ，２８ｂから割り当て部３８に制御信号enableが入力している場合には、変換部４１ａへの制御信号enable_VC1は、端子群２８ａ，２８ｂからの各制御信号enable（１bit）と、２bitの“００”とを含む４bitの制御信号である。なお、２bitの“００”は、データ信号data_c，data_dを使用しないことを通知する情報である。
【００８３】
また、２つの端子群２８ａ，２８ｂの一方のみから割り当て部３８に制御信号enableが入力している場合には、変換部４１ａへの制御信号enable_VC1は、端子群２８ａからの制御信号enable（２bit）と、２bitの“００”とを含む４bitの制御信号である。
【００８４】
さらに、割り当て部３８から変換部４１ｂに出力される制御信号enable_VC2は、端子群２８ｃからの制御信号enable（１bit）と、３bitの“０００”とを含む４bitの制御信号である。なお、３bitの“０００”は、データ信号data_a，data_b，data_dを使用しないことを通知する情報である。
【００８５】
さらにまた、割り当て部３８から変換部４１ｃに出力される制御信号enable_VC3は、端子群２８ｄからの制御信号enable（１bit）と、３bitの“０００”とを含む４bitの制御信号である。なお、３bitの“０００”は、データ信号data_a，data_b，data_cを使用しないことを通知する情報である。さらに、割り当て部３８から変換部４１ｄには、使用されないことを通知する制御信号enable_VC4が出力される。
【００８６】
このような制御信号enable_VC1〜enable_VC4が各変換部４１ａ〜４１ｄに加えられることにより、発信元モジュール２５ａ〜２５ｃから発信されたデータは、割り当て部３８から周波数変換部４０に仮想チャネルＶＣ１〜ＶＣ３でもって伝送される。
【００８７】
図９は、周波数変換部４０の各変換部４１ａ〜４１ｄを構成する回路構成例を説明する図である。各変換部４１ａ〜４１ｄは、前記の如く、端子群２８に入力したデータ（信号）の動作周波数を、制御装置３０における動作周波数に変換する機能を備えている。この機能を実現するために、各変換部４１ａ〜４１ｄは、例えば、図９に表されているような選択回路４６により構成される。この選択回路４６は、Ｐ側とＱ側を交互に択一的に選択し、選択した信号を出力する回路である。この例では、この選択回路４６には、キャッシュ部３５側からクロック信号in_clkが供給される。このクロック信号in_clkは、制御装置３０の動作周波数（例えば５０ＭHz）を持つパルス信号である。選択回路４６は、そのクロック信号in_clkにおけるパルス信号が立ち上がるタイミングでもって、Ｐ側とＱ側を交互に切り換え、切り換えられた側の信号をデータ信号dataとして出力する。図１０は、選択回路４６に入力する入力信号と、選択回路４６から出力する出力信号との一例を表すタイムチャートである。
【００８８】
この例では、制御装置３０のクロック信号in_clkの１サイクル目において、選択回路４６は、Ｐ側を選択し、これにより、データ信号data_a，data_bが結合されたデータ信号（２０bit）をデータ信号dataとして出力する。このデータ信号dataの１サイクル目には、データＡ１,Ｂ１が含まれているとする。また、制御装置３０のクロック信号in_clkの２サイクル目において、選択回路４６は、Ｑ側を選択し、これにより、データ信号data_c，data_dが結合されたデータ信号（２０bit）をデータ信号dataとして出力する。このデータ信号dataの２サイクル目には、データＣ１,Ｄ１が含まれているとする。さらにまた、制御装置３０のクロック信号in_clkの３サイクル目において、選択回路４６は、Ｐ側を選択し、これにより、データ信号data_a，data_bが結合されたデータ信号をデータ信号dataとして出力する。このデータ信号dataの３サイクル目には、データＡ２,Ｂ２が含まれているとする。
【００８９】
このように、選択回路４６は、図１０に表されているような制御装置３０の動作周波数に基づいたデータ信号dataを出力する。なお、周波数変換部４０は、制御信号enableに関しても、同様な回路構成によって動作周波数を変換できる。また、周波数変換部４０の変換部４１ａ〜４１ｄは、選択回路４６に代えて、例えば、ＦＩＦＯ（First In First Out）型あるいは１Ｒ（Read）+１Ｗ（Write）型の非同期型メモリを利用して、信号の周波数を変換する回路により構成されてもよい。このように、変換部４１ａ〜４１ｄの構成は、信号の周波数を変換できる構成であれば、特に限定されない。
【００９０】
図１１は、周波数変換部４０の変換部４１ａと、キャッシュ部３５のキャッシュメモリ３７ａとの間で通信される信号の具体例を説明する図である。例えば、変換部４１ａとキャッシュメモリ３７ａとの間では、データ信号data_VC1と、制御信号enable_VC1，full_VC1と、クロック信号in_clkとが通信される。クロック信号in_clkは、図１２に表されているような、制御装置３０の動作周波数を持つ信号である。制御信号enable_VC1は、変換部４１ａに入力した制御信号enable_VC1が変換部４１ａによって周波変換された後の制御装置３０の動作周波数を持つ信号である。制御信号full_VC1も、制御装置３０の動作周波数を持つ信号である。データ信号data_VC1は、例えば、変換部４１ａを構成する選択回路４６から出力された図１２に表されるようなデータ信号である。
【００９１】
キャッシュメモリ３７ａは、変換部４１ａからデータ信号data_VC1を受け取るが、制御信号enable_VC1に基づいて、データ信号data_VC1におけるデータＣｘ，Ｄｘ（ｘは正の整数）は無効である（仮想チャネルＶＣ１の伝送対象ではない）ことを検知する。これにより、キャッシュメモリ３７は、データ信号data_VC1に含まれているデータのうち、仮想チャネルＶＣ１の伝送対象であるデータＡｘ，Ｂｘ（ｘは正の整数）を格納する。他のキャッシュメモリ３７ｂ，３７ｃに関しても同様であり、キャッシュメモリ３７ｂは、仮想チャネルＶＣ２の伝送対象であるデータＣｘを格納し、キャッシュメモリ３７ｃは、仮想チャネルＶＣ３の伝送対象であるデータＤｘを格納する。
【００９２】
図１３は、各キャッシュメモリ３７ａ〜３７ｄと、書き込み部４３との間で通信される信号の具体例を説明する図である。例えば、キャッシュメモリ３７ａは、書き込み部４３との間において、データ信号data_VC1と、制御信号enable_VC1と、受領信号ack_VC1とが通信される。他のキャッシュメモリ３７ｂ〜３７ｄについても同様の各種信号が通信される。
【００９３】
キャッシュメモリ３７ａは、データの格納容量が例えば記憶限界容量（例えば２０bit）に達したタイミングでもって、格納されているデータを含むデータ信号data_VC1を書き込み要求と共に書き込み部４３に出力する。図１２に表されている例では、キャッシュメモリ３７ａは、１サイクルおき毎に、データＡｘ、Ｂｘを書き込み要求と共に書き込み部４３に出力する。他のキャッシュメモリ３７ｂ〜３７ｄについても同様にデータを書き込み要求と共に書き込み部４３に出力する。図１２の例では、キャッシュメモリ３７ｂは、４サイクル毎に、データＣｘ、Ｃ（ｘ+１）を書き込み要求と共に書き込み部４３に出力する。キャッシュメモリ３７ｃは、４サイクル毎に、データＤｘ、Ｄ（ｘ+１）を書き込み要求と共に書き込み部４３に出力する。
【００９４】
ところで、図１２に表されている例では、キャッシュメモリ３７ｂ，３７ｃが書き込み要求を出力するタイミングが同じであり、当該書き込み要求が衝突する。この場合には、キャッシュメモリ３７ｂ，３７ｃから周波数変換部４０に向けて、出力停止要求（つまり、ハイレベルの制御信号full）が出力される。なお、この出力停止要求は、周波数変換部４０から端子群２８を通り発信元モジュール２５に伝送されてしまう虞がある。この事態は好ましくないので、このような事態を防止する対策を講じることが好ましい。例えば、その対策としては、書き込み要求を出力するタイミングを決定するデータの容量（例えば２０bit）よりも大きな例えば２０bit×１６wordというような容量を持つバッファによりキャッシュメモリ３７を構成することが考えられる。
【００９５】
書き込み部４３は、前述したように調停部４５からの指示に従った順番でもってキャッシュメモリ３７ａ〜３７ｄからの書き込み要求を受け付ける。そして、書き込み部４３は、その書き込み要求に応じて、データを、当該データに関連付けられている仮想チャネルに割り当てられたデータメモリ３６の記憶領域に書き込む。
【００９６】
読み出し部４４は、前述した調停部４５からの指示に従った順番でもってデータを読み出し、通信線２３を通して転送装置２２に出力する。
【００９７】
転送装置２２における制御装置５２の各機能部は、上記した受付装置２１の制御装置３０を流れる信号とは逆向きの信号が流れるように動作する。この各機能部の動作の説明は省略する。
【００９８】
ところで、受付装置２１と転送装置２２が通信線２３を介して通信する場合に、データには次のような処理が実行される。すなわち、図１４は、ＶＣ layerと再送制御(Framing Layer, Retry layer)およびマルチレーン(Multi-lane layer)を採用したプロトコルレイヤを説明する図である。この図１４の例では、各発信元モジュール２５から出力されたデータは、受付装置２１の制御装置３０により実現される仮想チャネルＶＣ１〜ＶＣ４を通り、Framing Layer７０に供給される。
【００９９】
Framing Layer７０は、仮想チャネルＶＣ１〜ＶＣ４から受け取ったデータに、図１５のモデル図に表されるように、開始フラグおよび終了フラグを挿入し、データを適切な長さにフレーム化するレイヤである。この処理は、データを再送する機能を実現するため、および、後処理にて使用するメモリの容量の抑制を図るために実行される。つまり、データの長さが無限大である場合には、再送するためにRetry layer７１で蓄積するデータ量が無限になってしまい、データ伝送を実現できなくなる事態が発生する。このような事態を防止するために、Framing Layer７０によるフレーム化の処理がデータに実行される。
【０１００】
Retry Layer７１は、エラーフリーな伝送路を実現するために、図１６に表されるように、データにエラー検出コード（例えばＣＲＣ（Cyclic Redundancy Check））および識別番号（シーケンス番号）を付加するレイヤである。また、Retry Layer７１は、データの送信先からＮＡＣＫ（Negative ACKnowledgement）信号を受信した場合には、このＮＡＣＫ信号が発信される原因となったデータ以降に出力されたデータを再送する処理を実行する。
【０１０１】
Multi-lane layer７２は、Retry layer７１から供給されたデータを、図１７に表されるように、複数のレーン（Lane）に分配し、各レーンを並列に伝送するレイヤである。また、Multi-lane layer７２は、レーン間のスキューを調整する機能も備えている。つまり、レーン間のスキューは、物理的な要因によって起こる(つまり、配線の長さがレーンごとにバラバラであることに因る)場合と、高速シリアル通信で行われるbyte syncなどの原理的な要因によって起こる場合がある。byte syncは１byte単位でデータを同期化する処理であるが、Lane Layer７３がその処理によりデータを同期化する位置がレーンごとにずれてしまうことがある。Multi-lane layer７２は、そのようなレーン間のスキューを調整する。
【０１０２】
Lane Layer７３は一つ(single-end)もしくは二つ(differential)の通信線を用いて、データを送信するレイヤである。ＣＭＬ（Current Mode Logic）などの高速シリアル通信では、信号のＤＣ成分を減衰する手法として、８Ｂ/１０Ｂ符号を利用する手法や、内部回路とデータ送信先との動作速度の違いを吸収するためにエラスティクバッファなどを利用する手法がある。
【０１０３】
この第２実施形態では、Lane layer７３から出力されたデータは、通信線２３を通って転送装置２２に向けて送信される。転送装置２２では、Lane Layer７４がそのデータを受け、Multi-lane layer７５に出力する。Multi-lane layer７５は、受付装置２１のMulti-lane layer７２とは反対に、受け取った複数のレーンのデータを集約し、一つのデータにする。この集約されたデータは、Retry Layer７６に送信される。Retry Layer７６は、受け取ったデータに付加されているエラー検出コード（ＣＲＣ）をチェックし、ＣＲＣが正しければ、受付装置２１のRetry Layer７１に向けてＡＣＫ（ACKnowledgement）信号を送信する。また、Retry Layer７６は、チェックの結果、ＣＲＣが正しくなければ、受付装置２１のRetry Layer７１に向けてＮＡＣＫ信号を送信する。Retry Layer７１は、前記の如く、ＮＡＣＫ信号を受信すると、データを再送する。
【０１０４】
図１８には、受付装置２１におけるRetry Layer７１（送信側）と、転送装置２２におけるRetry Layer７６（受信側）との間の信号通信が模式的に表されている。この図１８の例では、Seq＝１〜Seq＝３のデータは正常に伝送されており、Retry Layer７６（受信側）は、Retry Layer７１（送信側）にＡＣＫ信号（ACK＝３）を出力している。また、Seq＝４のデータが正常でなったために、Retry Layer７６（受信側）は、Retry Layer７１（送信側）に、Seq＝４のデータが正常でなったことを通知するＮＡＣＫ信号（NACK＝３）を出力している。これにより、Retry Layer７６（受信側）は、Retry Layer７１（送信側）に、Seq＝４およびSeq＝５のデータを再送している。
【０１０５】
このようなRetry Layer７１，７６によって、エラーフリーな伝送路が実現される。
【０１０６】
Framing Layer７７は、Retry Layer７６から受け取ったデータに付加されている開始フラグおよび終了フラグを取り除き、元のデータフレームを構成する。そして、このFraming Layer７８から出力されたデータは、転送装置２２の制御装置５２により実現される仮想チャネルＶＣ１〜ＶＣ４を通り、転送先（伝送先）である転送先モジュール２６に伝送される。
【０１０７】
図１４に表されているプロトコルレイヤは、上記のように構成されている。このプロトコルレイヤを構成するFraming Layer７０、Retry Layer７１、Multi-lane layer７２、Lane Layer７３は、例えば、受付装置２１における読み出し部４４と、通信線接続部３１との間に介設される。なお、読み出し部４４は、Framing Layer７０に含まれる場合がある。
【０１０８】
また、図１４のプロトコルレイヤを構成するFraming Layer７７、Retry Layer７６、Multi-lane layer７５、Lane Layer７４は、例えば、転送装置２２における通信線接続部５３と、書き込み部５８との間に介設される。
【０１０９】
ところで、Multi-Lane Layer７２，７５のように複数の通信線を使用してデータを通信する場合には、パケットの構成によっては、効率良くデータを伝送できない虞がある。例えば、図１９に表される時刻３のように、２つのフレームのデータが同じ時刻に（同じサイクルで）伝送される場合がある。主として問題になるのは、Retry Layer７６（受信側）である。つまり、Retry Layer７６が、時刻３において、フレームＡとフレームＢの両方のＣＲＣをチェックすることによりエラー検出を行うと共に、ＡＣＫ信号あるいはＮＡＣＫ信号を送信しなければならない。この場合に、フレームＡがＮＧであり（正常でなく）、フレームＢがＯＫである（正常である）場合がある。このような場合には、Retry Layer７６は、フレームＡのチェック結果としてＮＡＣＫ信号を送信しなければならない。つまり、各フレームのエラーチェックの結果だけで出力する信号をＡＣＫ信号とするか、ＮＡＣＫ信号とするかが決定されるわけではなく、その前のフレームのエラーチェックの結果をも考慮した信号がRetry Layer７１（送信側）に送信されなければならない。
【０１１０】
このような時間的に前に処理した処理結果をも考慮しなければならない処理は、回路を実現するうえでクリティカルパスになりやすく、特に、ＣＲＣを利用したエラー検出チェックは、その計算が複雑であるためにクリティカルパスになりやすい。この事態は、装置（回路）の動作速度を下げ、これに起因してデータの伝送速度の低下を招く。さらに、例えば、受付装置２１におけるデータメモリ３６からデータを読み出す場合に、複数の仮想チャネルに関連付けられているデータを読み出す必要が生じる。このため、データメモリ３６は、複数のデータを同時に読み出すことが可能なメモリにより構成しなければならなくなる。これはデータメモリ３６の大型化を招く。
【０１１１】
上記のような問題を解決する手法として、例えば次のような手法がある。その手法とは、１サイクルに１つの仮想チャネルのデータのみが受付装置２１から転送装置２２に出力されるように、受付装置２１が出力するデータを調整する機能を持つ手法である。具体的には、例えば、書き込み部４３は、伝送対象のデータを順次データメモリ３６に書き込んでいる適宜なタイミングでもって、図２０に表されるようなダミーのデータ（例えば、無効な制御コマンド）をデータメモリ３６に書き込む。その適宜なタイミングとは、読み出し部４４がデータメモリ３６からデータを順次読み出す際に、１サイクルで読み出されるデータが１つの仮想チャネルのデータのみとなるように、メモリへの書き込み順を調整可能なタイミングである。
【０１１２】
あるいは、書き込み部４３がダミーのデータをデータメモリ３６に書き込むのに代えて、次のような手法が採用されてもよい。例えば、読み出し部４４は、データをデータメモリ３６から読み出す際に、１サイクルで１つの仮想チャネルのデータのみが読み出されるように、図２０に表されるようなダミーのデータを適宜挿入しながら読み出してもよい。
【０１１３】
上記のような手法は、Retry Layer（受信側）７６の処理を簡易化するだけでなく、データメモリ３６の小型化および構造の簡素化を図ることを可能にする。
【０１１４】
この第２実施形態のデータ伝送装置２０は、次のような効果を得ることができる。つまり、データ伝送装置２０は、複数の仮想チャネルＶＣ１〜ＶＣ４が共通のデータメモリ３６，５９を利用する構成を備えている。このため、データ伝送装置２０は、無駄を削減したメモリ使用の形態を実現でき、これにより、メモリ容量の削減を図ることができる。
【０１１５】
また、データ伝送装置２０は、周波数変換機能およびキャッシュ機能を備えることにより、データメモリ３６にデータを書き込む際のデータ衝突を少なくすることができる。これにより、データ伝送装置２０は、データ衝突に起因したデータ転送の速度低下を防止することができる。
【０１１６】
＜第３実施形態＞
以下に、本発明に係る第３実施形態を説明する。なお、この第３実施形態の説明において、第２実施形態のデータ伝送装置を構成する構成部分と同様な構成部分には同一符号を付し、その共通部分の重複説明は省略する。
【０１１７】
図２１は、第３実施形態のデータ伝送装置の構成を簡略化して表すブロック図である。この第３実施形態のデータ伝送装置８０は、双方向通信に適用できる装置構成を備えている。すなわち、第３実施形態のデータ伝送装置８０は、第２実施形態のデータ伝送装置２０を構成する受付装置２１と転送装置２２との組み合わせが二組設けられている。一方の組８１は、外部モジュール２５から外部モジュール２６に信号を伝送する機能を実現し、他方の組８２は、外部モジュール２６から外部モジュール２５に信号を伝送する機能を実現する。
【０１１８】
受付装置２１と、転送装置２２と、それら装置２１，２２を接続する通信線２３との構成は、第２実施形態と同様であり、ここでは、その説明は省略する。
【０１１９】
なお、受付装置２１と転送装置２２の組８１，８２が単に二組設けられていてもよいが、それらの組８１，８２において、共有できる構成に関しては共有する構成としてもよい。例えば、組８１，８２の各受付装置２１を構成する制御情報格納部３４の制御情報は同じであるので、共有する構成としてもよい。同様に、組８１，８２の各転送装置２２を構成する制御情報格納部５６の制御情報は同じであるので、共有する構成としてもよい。さらに、受付装置２１を構成する割り当て部３８は、組８１，８２に共通の機能部であってもよい。さらに、転送装置２２を構成する割り当て部６４は、組８１，８２に共通の機能部であってもよい。このように、組８１，８２を構成する機能部の一部や情報を共通化することにより、構成の簡素化を図ることができる。
【０１２０】
＜その他の実施形態＞
なお、本発明は第１〜第３の実施形態に限定されず、様々な実施の形態を採り得る。例えば、第２と第３の実施形態では、受付装置２１と転送装置２２との間を通信する手段は通信線２３である。これに代えて、受付装置２１と転送装置２２は、例えば、赤外線等を利用した無線通信であってもよい。
【０１２１】
さらに、第２と第３の実施形態では、受付装置２１と転送装置２２の各メモリ制御部４２，５７は、仮想チャネルＶＣ１〜ＶＣ４のデータ伝送レートに基づいてデータメモリ３６，５９の記憶領域を各仮想チャネルＶＣ１〜ＶＣ４に割り当てている例を示している。
あるいは、各メモリ制御部４２，５７は、各仮想チャネルＶＣ１〜ＶＣ４にデータメモリ３６，５９の記憶領域を等分ずつ割り当てている。これらに代えて、例えば、メモリ制御部４２，５７は、制御情報に含まれるＱｏＳの情報を利用して、データメモリ３６，５９の記憶領域を各仮想チャネルＶＣ１〜ＶＣ４に割り当ててもよい。
【符号の説明】
【０１２２】
１，２０  データ伝送装置
３，３８  割り当て部
４，４０  周波数変換部
５，３５  キャッシュ部
６，４５  調停部
７，３６  メモリ
【図１】
2016167109.tif 000003
【図２】
2016167109.tif 000004
【図３】
2016167109.tif 000005
【図４】
2016167109.tif 000006
【図５】
2016167109.tif 000007
【図６】
2016167109.tif 000008
【図７】
2016167109.tif 000009
【図８】
2016167109.tif 000010
【図９】
2016167109.tif 000011
【図１０】
2016167109.tif 000012
【図１１】
2016167109.tif 000013
【図１２】
2016167109.tif 000014
【図１３】
2016167109.tif 000015
【図１４】
2016167109.tif 000016
【図１５】
2016167109.tif 000017
【図１６】
2016167109.tif 000018
【図１７】
2016167109.tif 000019
【図１８】
2016167109.tif 000020
【図１９】
2016167109.tif 000021
【図２０】
2016167109.tif 000022
【図２１】
2016167109.tif 000023
【図２２】
2016167109.tif 000024
【図２３】
2016167109.tif 000025