JP2016167109A - データ伝送装置、データ伝送方法およびコンピュータプログラム - Google Patents
データ伝送装置、データ伝送方法およびコンピュータプログラム Download PDFInfo
- Publication number
- JP2016167109A JP2016167109A JP2015045488A JP2015045488A JP2016167109A JP 2016167109 A JP2016167109 A JP 2016167109A JP 2015045488 A JP2015045488 A JP 2015045488A JP 2015045488 A JP2015045488 A JP 2015045488A JP 2016167109 A JP2016167109 A JP 2016167109A
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- memory
- data transmission
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
【課題】 データ伝送速度を維持しつつ、メモリ容量の削減を図ることができ、しかも、汎用性の高い、データ伝送に関わる技術を提供する。【解決手段】 データ伝送装置1は、割り当て部3と、周波数変換部4と、キャッシュ部5と、調停部6とを備える。割り当て部3は、モジュール10から受信したデータを、予め設定されている複数の仮想チャネルのうちの一つに割り当てる。周波数変換部4は、モジュール10から受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する。キャッシュ部5は、モジュール10から受信したデータを、当該データに割り当てられた仮想チャネルに応じた記憶領域9に保持する。調停部6は、キャッシュ部5におけるデータの保持状況に基づいて、キャッシュ部5に保持されているデータを、複数の仮想チャネルに共通のメモリ7に書き込む書き込み順と、メモリ7からデータを読み出す読み出し順を決定する。【選択図】 図1
Description
本発明は、データを伝送する技術に関する。
メモリ(記憶装置)やCPU(Central Processing Unit)を含む半導体装置における好ましくない現象の一つとして、ビット反転がある。ビット反転とは、半導体装置の内部に電気的に記憶されている“1”と“0”の情報が反転してしまう現象(具体的には“1”が“0”に、また、“0”が“1”に変化してしまう現象)である。
宇宙環境では地上よりも放射線が強いため、放射線に因るビット反転が半導体装置に起こりやすい。ビット反転は半導体装置の内部のあらゆる所で起こるが、特に、高密度に記憶素子が配置されているメモリデバイスにビット反転が起こりやすく、記憶されているデータが壊れることは大きな問題である。つまり、ビット反転は、“1”や“0”の情報を一時的ではなく変化(反転)させてしまうので、メモリに記録したデータを変化させる、つまり、データを壊してしまうという重大な問題を引き起こす。
一方、宇宙用デバイス(人工衛星や宇宙ロケットなどに搭載され宇宙で使用される装置や部品)には、耐久性や動作に対する信頼性が求められる。このため、宇宙用デバイスには、実績のある技術(換言すれば、最先端ではない技術)が用いられる。これにより、宇宙用デバイスに利用される半導体装置のロジックセル容量およびメモリ容量は商用の半導体よりも小さい。
このようなメモリ容量が小さいことと、前述したようなビット反転に起因した問題とを考慮することにより、宇宙用デバイスにおいて、使用するメモリ容量をできる限り削減したいという要求がある。
ところで、人工衛星を構成している例えば制御装置内において、ミッション毎に要求される伝送レートは大きく異なる。例えば、実用衛星(気象衛星等の実用的に利用される人工衛星)では、撮影画像の高解像度化や複数のスペクトルデータなどの利用が進み、装置内において転送(伝送)するデータ容量が大幅に増加している。一方、人工衛星の制御などを行うコマンドはその伝送頻度については多少増加しているものの、大きく伝送容量が増えているわけではない。このようにミッション毎にデータの伝送容量が異なる状況下において各ミッションにおける互いに異なる伝送レートの要求を満たすために、仮想的な伝送チャネルを利用する技術が有る。つまり、複数の仮想的な伝送チャネル(Virtual Channel)を想定し、これら複数の仮想的な伝送チャネルが一本もしくは数本の物理的な線(Physical Channel)を時分割により共有することにより、伝送レートが異なる各ミッションのデータ伝送を実現する。この手法では、伝送チャネルの数を減少させることなく、物理的な配線数を削減することができる。人工衛星では、動作の信頼性のために冗長設計し、また、大きさが限られていることから、そのような物理的な配線数を減らすことはとても有効である。
なお、特許文献1には、ユーザプログラムの制御に基づくデータ転送を、CPUコアの処理とは非同期な処理として実現する技術が開示されている。特許文献2には、近接無線通信を行うデバイス間の位置関係の整合性に関わる技術が開示されている。
近年の人工衛星では、製造コストおよび検証工数を削減するために、様々なミッションで利用できる汎用的なデバイスが求められている。例えば、図22には、汎用タイプのデータ伝送装置における構成例が表されている。このデータ伝送装置101には、様々な種類のデバイス(例えば、CPU、記憶装置、センサ、光学カメラなど)120(120a,120b,120c)が接続可能である。当該データ伝送装置101は、それら接続されたデバイス120から出力されたデータを通信接続相手に伝送する装置である。
図22におけるデータ伝送装置101は、複数(図22の例では4つ)の端子群102(102a,102b,102c,102d)と、制御装置103と、通信線接続部104とを有している。
各端子群102(102a,102b,102c,102d)は、それぞれ、低速なインターフェース(図示せず)を介してデバイス120に接続する接続部であり、複数の端子部105を有している。また、通信線接続部104は通信線(物理的な線)113と接続する接続部である。この通信線接続部104は、制御装置103に接続されている。
制御装置103は、CPU(Central Processing Unit)を含む装置である。そのCPUには、レジスタやキャッシュメモリ等の記憶部が内蔵されている。例えば、その内蔵のレジスタ107には、データ伝送に関わる制御情報が記憶されている。
また、この例では、制御装置(CPU)103には、データを伝送する仮想的な伝送チャネル(以下、仮想チャネルと記載する)として、3つの仮想チャネルVC1,VC2,VC3が設定されている。制御装置103には、それら仮想チャネルVC1,VC2,VC3をそれぞれ構成するメモリ109a,109b,109cが設定されている。これらメモリ109a〜109cは、例えば、FIFO(First-In, First-Out)方式でもってデータが読み書きされる。
さらに、制御装置103は、各仮想チャネルVC1〜VC3におけるデータ伝送を制御する機能(換言すれば、メモリ109a,109b,109cにおけるデータの読み書きを制御する機能)を備えている。つまり、制御装置103は、機能部として、割り当て部110と、読み出し部111と、調停部(アービトレーション部)112とを有している。
割り当て部110は、レジスタ107に格納されている制御情報に基づいて、データ伝送装置101に接続されているデバイス120に割り当てる仮想チャネルを決定する機能を備えている。また、割り当て部110は、例えば、接続されるデバイス120に設定されている要求データ伝送レートに基づいて、そのデバイス120からデータを受ける端子群(換言すれば、各仮想チャネルに関連付けられる端子群)を決定する機能を備えている。この例では、デバイス120aにおける要求データ伝送レートが、1つの端子群102により実現可能なデータ伝送レートよりも速いために、デバイス120aに割り当てられた仮想チャネルVC1には、2つの端子群102a,102bが関連付けられている。また、デバイス120b,120cにそれぞれ割り当てられた仮想チャネルVC2,VC3には、それぞれ、端子群102c,102dが関連付けられている。
調停部112は、メモリ109a〜109cのデータ格納状況に基づいて、読み出し部111の読み出し動作を制御する機能を備えている。読み出し部111は、調停部112の指示に従って、各メモリ109からデータを読み出し、当該読み出したデータを通信線接続部104を介して通信線113に出力する機能を備えている。
このようなデータ伝送装置101では、デバイス120から端子群102に入力したデータは、割り当て部110と、割り当てられた仮想チャネルに応じたメモリ109と、読み出し部111とを通り、通信線接続部104から通信線113に出力される。
ところで、通信線113から出力されるデータの伝送レートが予め設定されている伝送レートの条件を満たすためには、データ伝送装置101を次のように設計しなければならない。例えば、通信線113の伝送レートが1Gbps(Giga bits per second)であり、データ伝送装置101の動作周波数が50MHz(メガヘルツ)であるとする。この場合には、データ伝送装置101の内部において伝送されるデータのデータ幅(バス幅(同時に伝送できるデータ量))Nは20bitとなる。また、例えば、4つの端子群102a〜102dにおける各データ幅Nが10bitであるとする。この場合に、通信線113の伝送レートを1Gbpsとする場合には、データ伝送装置101にデータを入力するインターフェース部は、25MHz(メガヘルツ)の動作周波数でもって動作しなければならない。
このようにデータ伝送装置101を設計した場合に、各仮想チャネルVC1〜VC3に関連付けられるメモリ109a〜109cの容量を無用に大きくしなければならないという問題が生じる。つまり、上記のように設計される場合には、メモリ109で必要となるメモリ容量は、次の数式(1)に基づいて算出される。
(メモリ容量(bit))=(データ伝送装置101の内部におけるデータ幅N)×(仮想チャネルの深さ(メモリ109でのレイテンシ))×(端子群の数)・・・・・(1)
図23は、各仮想チャネルVC1〜VC3(メモリ109a〜109c)における入力データのビット幅を模式的に表した図である。上記のように設計した場合には、仮想チャネルVC1の最大データスループットは500Mbpsであることから、仮想チャネルVC1に入力可能なビット幅Nのうち、使用するのは半分(N/2)(bit)である。また、仮想チャネルVC2,VC3に関しては、入力可能なビット幅Nのうち、使用するのは4分の1(N/4)(bit)である。
(メモリ容量(bit))=(データ伝送装置101の内部におけるデータ幅N)×(仮想チャネルの深さ(メモリ109でのレイテンシ))×(端子群の数)・・・・・(1)
図23は、各仮想チャネルVC1〜VC3(メモリ109a〜109c)における入力データのビット幅を模式的に表した図である。上記のように設計した場合には、仮想チャネルVC1の最大データスループットは500Mbpsであることから、仮想チャネルVC1に入力可能なビット幅Nのうち、使用するのは半分(N/2)(bit)である。また、仮想チャネルVC2,VC3に関しては、入力可能なビット幅Nのうち、使用するのは4分の1(N/4)(bit)である。
このように、図22のデータ伝送装置101の構成では、仮想チャネルVC1〜VC3、換言すれば、メモリ109には未使用領域が多くなる。つまり、図22のデータ伝送装置101は、メモリ109の容量を無用に大きくしなければならないという問題が有る。
本発明は上記課題を解決するためになされたものである。すなわち、本発明の主な目的は、データ伝送速度を維持しつつ、メモリ容量の削減を図ることができ、しかも、汎用性の高い、データ伝送に関わる技術を提供することにある。
上記目的を達成するために、本発明のデータ伝送装置は、
データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータを割り当てる割り当て部と、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する周波数変換部と、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域に保持するキャッシュ部と、
前記キャッシュ部におけるデータの保持状況に基づいて、前記キャッシュ部に保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とを決定する調停部と
を備えている。
データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータを割り当てる割り当て部と、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する周波数変換部と、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域に保持するキャッシュ部と、
前記キャッシュ部におけるデータの保持状況に基づいて、前記キャッシュ部に保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とを決定する調停部と
を備えている。
本発明のデータ伝送方法は、
データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータをコンピュータが割り当て、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換し、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域にコンピュータが保持し、
前記データの保持状況に基づいて、その保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とをコンピュータが決定する。
データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータをコンピュータが割り当て、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換し、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域にコンピュータが保持し、
前記データの保持状況に基づいて、その保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とをコンピュータが決定する。
本発明のコンピュータプログラムは、
データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータを割り当てる処理と、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する処理と、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域に保持する処理と、
前記キャッシュ部におけるデータの保持状況に基づいて、前記キャッシュ部に保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とを決定する処理と
をコンピュータに実行させるコンピュータプログラムである。
データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータを割り当てる処理と、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する処理と、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域に保持する処理と、
前記キャッシュ部におけるデータの保持状況に基づいて、前記キャッシュ部に保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とを決定する処理と
をコンピュータに実行させるコンピュータプログラムである。
なお、本発明の主な前記目的は、本発明のデータ伝送装置に対応する本発明のデータ伝送方法によっても達成される。また、本発明の主な前記目的は、本発明のデータ伝送装置およびデータ伝送方法を実現するコンピュータプログラム、および、それを保持するプログラム記憶媒体によっても達成される。
本発明によれば、データ伝送速度を維持しつつ、メモリ容量の削減を図ることができ、しかも、汎用性の高い、データ伝送に関わる技術を提供できる。
以下に、本発明に係る実施形態を図面に基づいて説明する。
<第1実施形態>
図1は、本発明に係る第1実施形態のデータ伝送装置の構成を簡略化して表すブロック図である。この第1実施形態のデータ伝送装置1は、割り当て部3と、周波数変換部4と、キャッシュ部5と、調停部6とを備えている。このデータ伝送装置1には、データを伝送する仮想的な伝送チャネルである複数の仮想チャネルが予め設定されている。このデータ伝送装置1は、モジュール10から発信されたデータを受信し、当該受信したデータを仮想チャネルを通して伝送し、伝送先であるモジュール11に向けて出力することが可能な装置である。
図1は、本発明に係る第1実施形態のデータ伝送装置の構成を簡略化して表すブロック図である。この第1実施形態のデータ伝送装置1は、割り当て部3と、周波数変換部4と、キャッシュ部5と、調停部6とを備えている。このデータ伝送装置1には、データを伝送する仮想的な伝送チャネルである複数の仮想チャネルが予め設定されている。このデータ伝送装置1は、モジュール10から発信されたデータを受信し、当該受信したデータを仮想チャネルを通して伝送し、伝送先であるモジュール11に向けて出力することが可能な装置である。
割り当て部3は、例えばモジュール10から受信したデータを、予め設定されている複数の仮想チャネルのうちの一つに割り当てる機能を備えている。
周波数変換部4は、モジュール10から受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する機能を備えている。
キャッシュ部5は、モジュール10から受信したデータを、当該データに割り当てられた仮想チャネルに応じた記憶領域9に保持する機能を備えている。
調停部6は、キャッシュ部5におけるデータの保持状況に基づいて、キャッシュ部5に保持されているデータを、複数の仮想チャネルに共通のメモリ7に書き込む書き込み順を決定する機能を備えている。その決定されたデータの書き込み順は、調停部6から、例えば読み書き部8に通知される。読み書き部8は、その通知された順番でもってキャッシュ部5に格納されているデータをメモリ7に書き込む。
また、調停部6は、メモリ7からデータを読み出す読み出し順を決定する機能を備えている。その決定された読み出し順は、調停部6から、例えば読み書き部8に通知される。読み書き部8は、その通知された順番でもってメモリ7からデータを読み出す。そして、この読み出されたデータは、予め定められた処理が行われた後に、モジュール11に向けて出力される。
この第1実施形態のデータ伝送装置1は、上記のような調停部6を備えていることによって、複数の仮想チャネルに共通のメモリを利用することができる。これにより、仮想チャネル毎にメモリを用意する場合に比べて、第1実施形態のデータ伝送装置1は、メモリ容量を抑制することができる。
また、データ伝送装置1は、周波数変換部4とキャッシュ部5を備えているので、メモリ7にデータを書き込む際のデータ衝突が発生する確率を低減することができる。これにより、データ伝送装置1は、データ衝突に起因したデータの伝送レートの低下を抑制することができる。さらに、データ伝送装置1は、仮想チャネルによりデータを伝送するので、例えば伝送レートの異なる複数種のデータを伝送することが可能であり、汎用性が高い装置である。
<第2実施形態>
以下に、本発明に係る第2実施形態を説明する。
以下に、本発明に係る第2実施形態を説明する。
図2は、第2実施形態のデータ伝送装置の概略構成を表すブロック図である。この第2実施形態のデータ伝送装置20は、外部モジュール25(25a,25b,25c)から発信されたデータを外部モジュール26(26a,26b,26c)に伝送(転送)可能な装置である。このデータ伝送装置20は、内部に仮想チャネルを設定し、当該仮想チャネルを通してデータを伝送する構成を備えている。
すなわち、第2実施形態のデータ伝送装置20は、受付装置21と、転送装置22とを有し、受付装置21と転送装置22は通信線23によって接続されている。
受付装置21は、各外部モジュール(以下、発信元モジュールと記載する)25から発信されたデータを受信し、これらデータを時分割多重により通信線23に出力する構成を備えている。
通信線23は、データを伝送する物理的な線である。この通信線23は、例えば、シングルエンド伝送方式でもってデータを伝送する導線であってもよいし、LVDS(Low Voltage Differential Signaling)技術を利用した差動伝送方式でもってデータを伝送する差動伝送線路であってもよい。また、通信線23は、CML(Current Mode Logic)技術を利用した差動伝送方式でもってデータを伝送する線路であってもよい。さらにまた、通信線23は、光ファイバであってもよい。
転送装置22は、通信線23を通して受信したデータを、当該データの宛先である外部モジュール(以下、転送先モジュールと記載する)26に向けて出力する構成を備えている。
図3は、受付装置21の構成を簡略化して表すブロック図である。この第2実施形態では、受付装置21は、複数の端子群28(28a,28b,28c,28d)と、制御装置30と、通信線接続部31とを備えている。各端子群28は、発信元モジュール25と接続する接続部である。各端子群28は、複数の端子部29を有し、各端子部29は、それぞれ、データ(信号)を伝送する導通路32を介して制御装置30に接続されている。通信線接続部31は、通信線23に接続する端子部である。この通信線接続部31は、データ(信号)を伝送する導通路33を介して制御装置30に接続されている。
制御装置30は、CPU(Central Processing Unit)30Aと記憶部30Bを有している。記憶部30Bは、各種データやコンピュータプログラムを記憶する機能を備えている。また、CPU30Aは、内蔵の記憶部として、制御情報格納部(例えばレジスタ)34と、キャッシュ部35と、データメモリ36とを有している。
制御情報格納部34は、制御情報が格納される記憶部である。その制御情報とは、データ伝送に関わる制御動作に利用する情報である。例えば、受付装置21には、端子群28の数に応じた数の仮想チャネルが設定可能である。これにより、この第2実施形態では、受付装置21には、4つの仮想チャネルVC1,VC2,VC3,VC4が設定可能である。各端子群28(換言すれば、接続している発信元モジュール25)は、それぞれ、CPU30Aの機能によって、仮想チャネルVC1〜VC4の一つに関連付けられる。制御情報格納部34に格納される制御情報には、各仮想チャネルVC1〜VC4における最大伝送レートの情報やQoS(Quality of Service)の情報が含まれている。なお、制御情報格納部34が、書き換え可能なレジスタ等の一次記憶メモリにより構成される場合には、当該制御情報格納部34に格納される制御情報が書き換え可能になる。このような書き換え可能な制御情報格納部34を備え、制御情報を適宜に書き換えることによって、制御装置30は、様々な接続形態に対応可能な可変ルータLSI(Large Scale Integration)と成すことができる。
キャッシュ部35は、データを一時的に格納する記憶領域である。このキャッシュ部35には、設定された各仮想チャネルVC1,VC2,VC3,VC4にそれぞれ関連付けられたキャッシュメモリ37a,37b,37c,37dが設定されている。
データメモリ36は、仮想チャネルVC1〜VC4が共有する記憶部であり、各仮想チャネルVC1〜VC4によって伝送されているデータを記憶する。このデータメモリ36は、例えば、読み出し用ポートが1つと書き込み用ポートが1つである1R(Read)+1W(Write)タイプのメモリにより構成される。なお、データメモリ36は、書き込み用の複数のポートを持つメモリにより構成されてもよい。この場合には、データメモリ36は、複数の書き込み対象のデータを同時に受け付けることができる。
上記のような記憶部を内蔵しているCPU30Aは、例えば記憶部30Bに格納されているコンピュータプログラムを実行することによって、次のような機能を持つことができる。すなわち、CPU30Aは、機能部として、割り当て部38と、周波数変換部40と、メモリ制御部42と、書き込み部43と、読み出し部44と、調停部(アービトレーション部)45とを備えている。
割り当て部38は、データ伝送装置20に接続されている発信元モジュール25に、端子群28と、仮想チャネルVC1〜VC4の一つとを割り当てる機能を備えている。例えば、割り当て部38は、発信元モジュール25が接続されたことを検知した場合に、制御情報格納部34に格納されている制御情報に基づいて、仮想チャネルVC1〜VC4の最大伝送レートやQoS情報を取得する。また、割り当て部38は、接続された発信元モジュール25から当該発信元モジュール25が要求するデータ伝送レートを取得する。そして、割り当て部38は、取得した情報に基づいて、接続された発信元モジュール25に、データ伝送レートに応じた端子群28および仮想チャネルVC1〜VC4の一つを割り当てる。
例えば、1つの端子群28におけるデータ伝送レートが250Mbpsである場合に、接続された発信元モジュール25が要求するデータ伝送レートが500Mbpsであるとする。この場合には、1つの端子群28だけでは発信元モジュール25の要求に応えられないので、割り当て部38は、その発信元モジュール25に2つの端子群28を割り当てる。具体的には、例えば、発信元モジュール25aが要求する最大伝送レートをSとし、1つの端子群28が実現可能な最大データ伝送レートをTとする。この場合に、割り当て部38は、発信元モジュール25aに割り当てる端子群28の個数を求めるべく、天井関数ceil(S÷T)を算出する。そして、割り当て部38は、算出された個数の端子群28を発信元モジュール25aに割り当てる。なお、天井関数ceil(S÷T)とは、数式:S÷Tにより求まる数値を一番近い整数に切り上げる関数である。
以下の説明では、割り当て部38によって、発信元モジュール25aには、2つの端子群28a,28bが割り当てられると共に、仮想チャネルVC1が割り当てられているとする。また、発信元モジュール25bには、端子群28cが割り当てられ、かつ、仮想チャネルVC2が割り当てられているとする。さらに、発信元モジュール25cには、端子群28dが割り当てられ、かつ、仮想チャネルVC3が割り当てられているとする。仮想チャネルVC4は使用していないとする。
周波数変換部40は、各仮想チャネルVC1,VC2,VC3,VC4に関連付けられている変換部41a,41b,41c,41dを備えている。各変換部41a〜41dは、端子群28に入力したデータ(信号)の動作周波数(基準周波数)を、制御装置30における動作周波数(基準周波数)に変換する機能を備えている。例えば、発信元モジュール25aから端子群28を通って仮想チャネルVC1に入力したデータ信号の動作周波数が25MHz(メガヘルツ)であるとする。この場合に、変換部41aは、そのデータ信号の動作周波数を制御装置30の動作周波数である50MHz(メガヘルツ)に変換する。
メモリ制御部42は、データメモリ36において、仮想チャネルVC1〜VC4に割り当てる記憶領域を決定する機能を備えている。例えば、メモリ制御部42は、制御情報格納部34の制御情報に基づいて、各仮想チャネルに関連付けられている発信元モジュール25a〜25cが要求する最大データ伝送レートの比を求める。そして、メモリ制御部42は、その最大データ伝送レートの比に応じて、各仮想チャネルVC1〜VC4(ただし、具体例では、仮想チャネルVC4は使用せず)に割り当てるデータメモリ36の記憶領域を決定する。具体的には、発信元モジュール25a〜25cの最大データ伝送レートVa〜Vcの比が、Va:Vb:Vc=2:1:1であるとする。また、発信元モジュール25a〜25cに関連付けられている仮想チャネルVC1〜VC3に割り当てる記憶領域の容量がQ1〜Q3であるとする。このような場合に、メモリ制御部42は、仮想チャネルVC1〜VC3に割り当てる記憶領域の容量の比が、データ伝送レートの比に応じた、Q1:Q2:Q3=2:1:1となるように、仮想チャネルVC1〜VC3にデータメモリ36の記憶領域を割り当てる。
なお、メモリ制御部42は、データメモリ36における記憶領域を各仮想チャネルVC1〜VC4に等分ずつ割り当ててもよい。ただ、このようにデータ伝送レートの違いを考慮しない場合よりも考慮した方が、データ伝送レートの早い発信元モジュール25(仮想チャネル)に割り当てられたデータメモリ36の記憶領域のメモリ不足(メモリあふれ)の状態が多発する事態が防止される。つまり、メモリ不足(メモリあふれ)に起因した処理の一時停止状態が削減される。
メモリ制御部42は、上記のように各仮想チャネルVC1〜VC4に割り当てたデータメモリ36の記憶領域を表す情報を書き込み部43と読み出し部44に通知する。
調停部45は、キャッシュメモリ37a〜37dからデータメモリ36に書き込むデータの順番を決定する機能を備えている。調停部45は、その書き込み順を決定する際に、キャッシュメモリ37a〜37dのデータ格納状況と、データメモリ36のデータ格納状況と、制御情報格納部34に格納されているQoSの情報とを利用する。また、調停部45は、データメモリ36から通信線23に出力するデータの読み出し順を決定する機能を備えている。なお、QoSの情報には、優先度、各仮想チャネルVC1〜VC4の予め設定された最低帯域幅(換言すれば、通信レート)、スケジューリング、ラウンドロビン(順番を決定する手法の情報)というような様々な情報がある。調停部45は、そのようなQoSの情報のうちの予め指定された情報を利用する。
調停部45は、具体的には、例えば、データメモリ36に書き込まれた順番でもって、データメモリ36からデータが読み出されるように、データメモリ36におけるデータの書き込みと読み出しの順番を決定する。あるいは、調停部45は、データメモリ36における各仮想チャネルVC1〜VC4に関連付けられている記憶領域の格納率(使用率)に基づいて、データメモリ36からのデータの読み出し順番を決定してもよい。このように、調停部45がデータメモリ36におけるデータの書き込みと読み出しの順番を決定する手法には様々な手法があり、ここでは、適宜な手法を採用してよい。なお、調停部45は、各仮想チャネルVC1〜VC4毎に着目した場合に、FIFO方式でもってデータメモリ36に各仮想チャネルVC1〜VC4のデータが読み書きされるように、データの書き込み順と読み出し順を決定することが好ましい。
書き込み部43は、調停部45からの指示に基づいた順番でもってキャッシュメモリ37a〜37dからデータを受け付け(読み出し)、当該データを、メモリ制御部42により決定されたデータメモリ36における記憶領域に書き込む機能を備えている。
読み出し部44は、調停部45からの指示に基づいた順番でもってデータメモリ36からデータを読み出し、当該データを通信線接続部31を通して通信線23に出力する機能を備えている。
図4は、転送装置22の構成を簡略化して表すブロック図である。この第2実施形態では、転送装置22は、複数の端子群50(50a,50b,50c,50d)と、制御装置52と、通信線接続部53とを備えている。各端子群50は、転送先モジュール26と接続する接続部である。各端子群50は、複数の端子部51を有している。各端子部51は、それぞれ、制御装置52に接続されている。通信線接続部53は、通信線23に接続する端子部である。この通信線接続部53は、制御装置52に接続されている。
制御装置52は、CPU(Central Processing Unit)52Aと記憶部52Bを有している。記憶部52Bは、各種データやコンピュータプログラムを記憶する機能を備えている。また、CPU52Aは、内蔵の記憶部として、制御情報格納部(例えばレジスタ)56とデータメモリ59を有している。
制御情報格納部56は、制御情報が格納される記憶部である。この制御情報は、受付装置21の制御情報格納部34に格納されている制御情報と同様な情報である。ただ、転送装置22における制御情報は、発信元モジュール25ではなく、転送先モジュール26が関与している情報である。
転送装置22にも、受付装置21にて設定された仮想チャネルと同様の仮想チャネルVC1〜VC4が設定される。データメモリ59は、受付装置21のデータメモリ36と同様に、仮想チャネルVC1〜VC4が共有する記憶部であり、各仮想チャネルVC1〜VC4によって伝送されているデータを記憶する。このデータメモリ59も、データメモリ36と同様に、例えば、読み出し用ポートが1つと書き込み用ポートが1つである1R(Read)+1W(Write)タイプのメモリにより構成される。なお、データメモリ59は、書き込み用の複数のポートを持つメモリにより構成されてもよい。この場合には、データメモリ59は、複数の書き込み対象のデータを同時に受け付けることができる。
上記のような記憶部を内蔵しているCPU52Aは、例えば記憶部52Bに格納されているコンピュータプログラムを実行することによって、次のような機能を持つことができる。すなわち、CPU52Aは、機能部として、メモリ制御部57と、書き込み部58と、調停部(アービトレーション部)60と、読み出し部61と、周波数変換部63と、割り当て部64とを備えている。
割り当て部64は、受付装置21の割り当て部38と同様に、データ伝送装置20に接続されている転送先モジュール26に、端子群50と仮想チャネルVC1〜VC4を割り当てる機能を備えている。例えば、割り当て部64は、割り当て部38と同様に、転送先モジュール26のデータ伝送レートを考慮して、各転送先モジュール26a〜26cに端子群50および仮想チャネルVC1〜VC4の一つを割り当てる機能を備えている。具体的には、例えば、転送先モジュール26aには、2つの端子群50a,50bが割り当てられると共に、仮想チャネルVC1が割り当てられているとする。また、転送先モジュール26bには、端子群50cが割り当てられ、かつ、仮想チャネルVC2が割り当てられているとする。さらに、転送先モジュール26cには、端子群50dが割り当てられ、かつ、仮想チャネルVC3が割り当てられているとする。仮想チャネルVC4は使用していないとする。
メモリ制御部57は、受付装置21のメモリ制御部42と同様に、データメモリ59において、仮想チャネルVC1〜VC4に割り当てる記憶領域を決定する機能を備えている。メモリ制御部57は、その各仮想チャネルVC1〜VC4に割り当てたデータメモリ59の記憶領域を表す情報を書き込み部58と読み出し部61に通知する。
書き込み部58は、例えば、受付装置21から通信線23を通して受け取ったデータの転送先である転送先モジュール26を検知し、割り当て部64の割り当て情報等に基づき、その検知した転送先モジュール26に関連付けられている仮想チャネルを検知する。そして、書き込み部58は、受付装置21から通信線23を通して受け取ったデータを、そのデータを伝送する仮想チャネルに関連付けられているデータメモリ59の記憶領域に書き込む。
調停部60は、データメモリ59の格納状況や、制御情報格納部56に格納されているQoS等の制御情報などに基づいて、データメモリ59から読み出すデータの順番を決定する機能を備えている。
読み出し部61には、各仮想チャネルVC1〜VC4に関連付けられている読み出し部66a〜66dが設定されている。各読み出し部66a〜66dは、調停部60からの指示に基づいた順番でもってデータメモリ59から、関連付けられている仮想チャネルVC1〜VC4のデータを読み出す。
周波数変換部63は、各仮想チャネルVC1,VC2,VC3,VC4に関連付けられている変換部67a,67b,67c,67dを備えている。各変換部67a〜67dは、関連付けられている仮想チャネルVC1〜VC4のデータが読み出し部66a〜66dにより読み出されると、その読み出されたデータの動作周波数(基準周波数)を、転送先モジュール26の動作周波数(基準周波数)に変換する。
この第2実施形態のデータ伝送装置20は上記のように構成されている。以下に、具体的な数値を用いてデータ伝送装置20における各構成部分の動作を説明する。
ここでは、受付装置21と転送装置22を接続している通信線23は、高速シリアルリンク通信方式でもってデータ通信を行う通信線であり、そのデータ伝送速度は1Gbpsであるとする。また、このデータ伝送装置20における制御装置30,52の動作周波数(基準周波数)は50MHzであるとする。さらに、データ伝送装置20の内部におけるデータ幅Nは20bitであるとする。さらに、各端子群28,50におけるデータ幅Nは10bitであり、端子群28,50に入力される信号の動作周波数は25MHzであるとする。
図5は、発信元モジュール25と、受付装置21との間で通信される信号の一例を説明する図である。この図5の例で通信される信号は、一般的な同期シリアルインターフェースに基づいた信号である。つまり、発信元モジュール25と、受付装置21との間には、クロック信号clkと、データ信号dataと、制御信号enableと、制御信号fullとの4種の信号が通信される。図6は、それら信号の波形例を表している。
クロック信号clkは、図6に表されるようなパルス信号であり、発信元モジュール25と受付装置21との間の通信信号の基準となる周波数(動作周波数)を表す。データ信号dataは、伝送(転送)対象のデータを伝搬する信号である。図6の例では、データ信号dataは、差動信号であり、例えば10bitのデータを伝搬する。制御信号enableは、データ信号dataが有効であることを表す信号である。つまり、図6の例では、制御信号enableのレベルがハイレベル(Hレベル)である場合にはデータ信号dataが有効であることを表し、制御信号enableのレベルがローレベル(Lレベル)である場合にはデータ信号dataが無効(データ無し)であることを表している。制御信号fullは、受付装置21が何らかの原因によりデータを受け付けられない状態にあることを受付装置21から発信元モジュール25に伝達する信号である。図6の例では、制御信号fullのレベルがハイレベル(Hレベル)である状態が、受付装置21がデータを受け付けられない状態であることを表している。
図6に表される波形例では、クロック信号clkの1サイクル目(制御信号enableがHレベルであり、かつ、制御信号fullがLレベルである状況)において、Aというデータを持つデータ信号dataが受付装置21に入力している。2サイクル目(制御信号enableがHレベルであり、かつ、制御信号fullがLレベルである状況)において、Bというデータを持つデータ信号dataが受付装置21に入力している。3〜5サイクルにおいては、制御信号enableがLレベルであり、発信元モジュール25が出力するデータが無い状態である。6サイクル目においては、制御信号fullがHレベルであり、受付装置21がデータを受け付けられない状態である。7サイクル目(制御信号enableがHレベルであり、かつ、制御信号fullがLレベルである状況)においては、Dというデータを持つデータ信号dataが受付装置21に入力している。
この具体例では、前記の如く、クロック信号clkの周波数(クロック周波数)が25MHzであり、データ信号dataのデータ幅Nが10bitである。この場合には端子群28における最大データ伝送レートは250Mbpsである。
これに対し、発信元モジュール25(ここでは、説明を容易にするために発信元モジュール25aとする)の最大データ伝送レートが500Mbpsであるとする。この場合には、1つの端子群28だけでは発信元モジュール25aの最大データ伝送レートに応じることができない。このため、割り当て部38が、図7に表されているように、発信元モジュール25aに2つの端子群28(28a,28b)を割り当てる。これにより、データ伝送装置20は、発信元モジュール25aの最大データ伝送レートに応じたデータ伝送レートでもって発信元モジュール25aのデータを伝送できる。
ところで、このように1つの発信元モジュール25に複数の端子群28a,28bが割り当てられ当該端子群28a,28bが同じ発信元モジュール25に接続する場合には、端子群28a,28bに同じクロック信号clk、制御信号enableが入力する。また、端子群28a,28bから同じ制御信号fullが発信元モジュール25に出力される。このことを考慮し、例えば、発信元モジュール25と端子群28bとの間におけるクロック信号clkおよび制御信号enable,fullが省略される構成としてもよい。
なお、ここでは、発信元モジュール25の最大データ伝送レートに応じるために2つの端子群28を利用する例を説明している。ただし、要求されるデータ伝送レートによっては、1つの発信元モジュール25に3つ以上の端子群28が割り当て部38によって割り当てられてもよい。
図8は、割り当て部38に入出力する信号の具体例を説明する図である。図8の例では、割り当て部38と、各端子群28a〜28dとの間において、前記同様のクロック信号clkと、データ信号dataと、制御信号enableと、制御信号fullとの4種の信号が通信される。また、割り当て部38と、周波数変換部40の各変換部41a〜41dとの間においては、クロック信号clkと、制御信号enableと、制御信号fullと、各端子群28a〜28dに入力する4つのデータ信号data(data_a〜data_d)とが通信される。
各変換部41a〜41dは、互いに異なる仮想チャネルVC1〜VC4に関連付けられており、割り当て部38と各変換部41a〜41dとの間のデータ通信は、仮想チャネルVC1〜VC4におけるデータ伝送と見なされる。
この割り当て部38と、各変換部41a〜41dとの間の仮想チャネルVC1〜VC4におけるデータ伝送を実現するために、割り当て部38は、次のような制御信号enable_VC1〜enable_VC4を各変換部41a〜41dに出力する。例えば、2つの端子群28a,28bから割り当て部38に制御信号enableが入力している場合には、変換部41aへの制御信号enable_VC1は、端子群28a,28bからの各制御信号enable(1bit)と、2bitの“00”とを含む4bitの制御信号である。なお、2bitの“00”は、データ信号data_c,data_dを使用しないことを通知する情報である。
また、2つの端子群28a,28bの一方のみから割り当て部38に制御信号enableが入力している場合には、変換部41aへの制御信号enable_VC1は、端子群28aからの制御信号enable(2bit)と、2bitの“00”とを含む4bitの制御信号である。
さらに、割り当て部38から変換部41bに出力される制御信号enable_VC2は、端子群28cからの制御信号enable(1bit)と、3bitの“000”とを含む4bitの制御信号である。なお、3bitの“000”は、データ信号data_a,data_b,data_dを使用しないことを通知する情報である。
さらにまた、割り当て部38から変換部41cに出力される制御信号enable_VC3は、端子群28dからの制御信号enable(1bit)と、3bitの“000”とを含む4bitの制御信号である。なお、3bitの“000”は、データ信号data_a,data_b,data_cを使用しないことを通知する情報である。さらに、割り当て部38から変換部41dには、使用されないことを通知する制御信号enable_VC4が出力される。
このような制御信号enable_VC1〜enable_VC4が各変換部41a〜41dに加えられることにより、発信元モジュール25a〜25cから発信されたデータは、割り当て部38から周波数変換部40に仮想チャネルVC1〜VC3でもって伝送される。
図9は、周波数変換部40の各変換部41a〜41dを構成する回路構成例を説明する図である。各変換部41a〜41dは、前記の如く、端子群28に入力したデータ(信号)の動作周波数を、制御装置30における動作周波数に変換する機能を備えている。この機能を実現するために、各変換部41a〜41dは、例えば、図9に表されているような選択回路46により構成される。この選択回路46は、P側とQ側を交互に択一的に選択し、選択した信号を出力する回路である。この例では、この選択回路46には、キャッシュ部35側からクロック信号in_clkが供給される。このクロック信号in_clkは、制御装置30の動作周波数(例えば50MHz)を持つパルス信号である。選択回路46は、そのクロック信号in_clkにおけるパルス信号が立ち上がるタイミングでもって、P側とQ側を交互に切り換え、切り換えられた側の信号をデータ信号dataとして出力する。図10は、選択回路46に入力する入力信号と、選択回路46から出力する出力信号との一例を表すタイムチャートである。
この例では、制御装置30のクロック信号in_clkの1サイクル目において、選択回路46は、P側を選択し、これにより、データ信号data_a,data_bが結合されたデータ信号(20bit)をデータ信号dataとして出力する。このデータ信号dataの1サイクル目には、データA1,B1が含まれているとする。また、制御装置30のクロック信号in_clkの2サイクル目において、選択回路46は、Q側を選択し、これにより、データ信号data_c,data_dが結合されたデータ信号(20bit)をデータ信号dataとして出力する。このデータ信号dataの2サイクル目には、データC1,D1が含まれているとする。さらにまた、制御装置30のクロック信号in_clkの3サイクル目において、選択回路46は、P側を選択し、これにより、データ信号data_a,data_bが結合されたデータ信号をデータ信号dataとして出力する。このデータ信号dataの3サイクル目には、データA2,B2が含まれているとする。
このように、選択回路46は、図10に表されているような制御装置30の動作周波数に基づいたデータ信号dataを出力する。なお、周波数変換部40は、制御信号enableに関しても、同様な回路構成によって動作周波数を変換できる。また、周波数変換部40の変換部41a〜41dは、選択回路46に代えて、例えば、FIFO(First In First Out)型あるいは1R(Read)+1W(Write)型の非同期型メモリを利用して、信号の周波数を変換する回路により構成されてもよい。このように、変換部41a〜41dの構成は、信号の周波数を変換できる構成であれば、特に限定されない。
図11は、周波数変換部40の変換部41aと、キャッシュ部35のキャッシュメモリ37aとの間で通信される信号の具体例を説明する図である。例えば、変換部41aとキャッシュメモリ37aとの間では、データ信号data_VC1と、制御信号enable_VC1,full_VC1と、クロック信号in_clkとが通信される。クロック信号in_clkは、図12に表されているような、制御装置30の動作周波数を持つ信号である。制御信号enable_VC1は、変換部41aに入力した制御信号enable_VC1が変換部41aによって周波変換された後の制御装置30の動作周波数を持つ信号である。制御信号full_VC1も、制御装置30の動作周波数を持つ信号である。データ信号data_VC1は、例えば、変換部41aを構成する選択回路46から出力された図12に表されるようなデータ信号である。
キャッシュメモリ37aは、変換部41aからデータ信号data_VC1を受け取るが、制御信号enable_VC1に基づいて、データ信号data_VC1におけるデータCx,Dx(xは正の整数)は無効である(仮想チャネルVC1の伝送対象ではない)ことを検知する。これにより、キャッシュメモリ37は、データ信号data_VC1に含まれているデータのうち、仮想チャネルVC1の伝送対象であるデータAx,Bx(xは正の整数)を格納する。他のキャッシュメモリ37b,37cに関しても同様であり、キャッシュメモリ37bは、仮想チャネルVC2の伝送対象であるデータCxを格納し、キャッシュメモリ37cは、仮想チャネルVC3の伝送対象であるデータDxを格納する。
図13は、各キャッシュメモリ37a〜37dと、書き込み部43との間で通信される信号の具体例を説明する図である。例えば、キャッシュメモリ37aは、書き込み部43との間において、データ信号data_VC1と、制御信号enable_VC1と、受領信号ack_VC1とが通信される。他のキャッシュメモリ37b〜37dについても同様の各種信号が通信される。
キャッシュメモリ37aは、データの格納容量が例えば記憶限界容量(例えば20bit)に達したタイミングでもって、格納されているデータを含むデータ信号data_VC1を書き込み要求と共に書き込み部43に出力する。図12に表されている例では、キャッシュメモリ37aは、1サイクルおき毎に、データAx、Bxを書き込み要求と共に書き込み部43に出力する。他のキャッシュメモリ37b〜37dについても同様にデータを書き込み要求と共に書き込み部43に出力する。図12の例では、キャッシュメモリ37bは、4サイクル毎に、データCx、C(x+1)を書き込み要求と共に書き込み部43に出力する。キャッシュメモリ37cは、4サイクル毎に、データDx、D(x+1)を書き込み要求と共に書き込み部43に出力する。
ところで、図12に表されている例では、キャッシュメモリ37b,37cが書き込み要求を出力するタイミングが同じであり、当該書き込み要求が衝突する。この場合には、キャッシュメモリ37b,37cから周波数変換部40に向けて、出力停止要求(つまり、ハイレベルの制御信号full)が出力される。なお、この出力停止要求は、周波数変換部40から端子群28を通り発信元モジュール25に伝送されてしまう虞がある。この事態は好ましくないので、このような事態を防止する対策を講じることが好ましい。例えば、その対策としては、書き込み要求を出力するタイミングを決定するデータの容量(例えば20bit)よりも大きな例えば20bit×16wordというような容量を持つバッファによりキャッシュメモリ37を構成することが考えられる。
書き込み部43は、前述したように調停部45からの指示に従った順番でもってキャッシュメモリ37a〜37dからの書き込み要求を受け付ける。そして、書き込み部43は、その書き込み要求に応じて、データを、当該データに関連付けられている仮想チャネルに割り当てられたデータメモリ36の記憶領域に書き込む。
読み出し部44は、前述した調停部45からの指示に従った順番でもってデータを読み出し、通信線23を通して転送装置22に出力する。
転送装置22における制御装置52の各機能部は、上記した受付装置21の制御装置30を流れる信号とは逆向きの信号が流れるように動作する。この各機能部の動作の説明は省略する。
ところで、受付装置21と転送装置22が通信線23を介して通信する場合に、データには次のような処理が実行される。すなわち、図14は、VC layerと再送制御(Framing Layer, Retry layer)およびマルチレーン(Multi-lane layer)を採用したプロトコルレイヤを説明する図である。この図14の例では、各発信元モジュール25から出力されたデータは、受付装置21の制御装置30により実現される仮想チャネルVC1〜VC4を通り、Framing Layer70に供給される。
Framing Layer70は、仮想チャネルVC1〜VC4から受け取ったデータに、図15のモデル図に表されるように、開始フラグおよび終了フラグを挿入し、データを適切な長さにフレーム化するレイヤである。この処理は、データを再送する機能を実現するため、および、後処理にて使用するメモリの容量の抑制を図るために実行される。つまり、データの長さが無限大である場合には、再送するためにRetry layer71で蓄積するデータ量が無限になってしまい、データ伝送を実現できなくなる事態が発生する。このような事態を防止するために、Framing Layer70によるフレーム化の処理がデータに実行される。
Retry Layer71は、エラーフリーな伝送路を実現するために、図16に表されるように、データにエラー検出コード(例えばCRC(Cyclic Redundancy Check))および識別番号(シーケンス番号)を付加するレイヤである。また、Retry Layer71は、データの送信先からNACK(Negative ACKnowledgement)信号を受信した場合には、このNACK信号が発信される原因となったデータ以降に出力されたデータを再送する処理を実行する。
Multi-lane layer72は、Retry layer71から供給されたデータを、図17に表されるように、複数のレーン(Lane)に分配し、各レーンを並列に伝送するレイヤである。また、Multi-lane layer72は、レーン間のスキューを調整する機能も備えている。つまり、レーン間のスキューは、物理的な要因によって起こる(つまり、配線の長さがレーンごとにバラバラであることに因る)場合と、高速シリアル通信で行われるbyte syncなどの原理的な要因によって起こる場合がある。byte syncは1byte単位でデータを同期化する処理であるが、Lane Layer73がその処理によりデータを同期化する位置がレーンごとにずれてしまうことがある。Multi-lane layer72は、そのようなレーン間のスキューを調整する。
Lane Layer73は一つ(single-end)もしくは二つ(differential)の通信線を用いて、データを送信するレイヤである。CML(Current Mode Logic)などの高速シリアル通信では、信号のDC成分を減衰する手法として、8B/10B符号を利用する手法や、内部回路とデータ送信先との動作速度の違いを吸収するためにエラスティクバッファなどを利用する手法がある。
この第2実施形態では、Lane layer73から出力されたデータは、通信線23を通って転送装置22に向けて送信される。転送装置22では、Lane Layer74がそのデータを受け、Multi-lane layer75に出力する。Multi-lane layer75は、受付装置21のMulti-lane layer72とは反対に、受け取った複数のレーンのデータを集約し、一つのデータにする。この集約されたデータは、Retry Layer76に送信される。Retry Layer76は、受け取ったデータに付加されているエラー検出コード(CRC)をチェックし、CRCが正しければ、受付装置21のRetry Layer71に向けてACK(ACKnowledgement)信号を送信する。また、Retry Layer76は、チェックの結果、CRCが正しくなければ、受付装置21のRetry Layer71に向けてNACK信号を送信する。Retry Layer71は、前記の如く、NACK信号を受信すると、データを再送する。
図18には、受付装置21におけるRetry Layer71(送信側)と、転送装置22におけるRetry Layer76(受信側)との間の信号通信が模式的に表されている。この図18の例では、Seq=1〜Seq=3のデータは正常に伝送されており、Retry Layer76(受信側)は、Retry Layer71(送信側)にACK信号(ACK=3)を出力している。また、Seq=4のデータが正常でなったために、Retry Layer76(受信側)は、Retry Layer71(送信側)に、Seq=4のデータが正常でなったことを通知するNACK信号(NACK=3)を出力している。これにより、Retry Layer76(受信側)は、Retry Layer71(送信側)に、Seq=4およびSeq=5のデータを再送している。
このようなRetry Layer71,76によって、エラーフリーな伝送路が実現される。
Framing Layer77は、Retry Layer76から受け取ったデータに付加されている開始フラグおよび終了フラグを取り除き、元のデータフレームを構成する。そして、このFraming Layer78から出力されたデータは、転送装置22の制御装置52により実現される仮想チャネルVC1〜VC4を通り、転送先(伝送先)である転送先モジュール26に伝送される。
図14に表されているプロトコルレイヤは、上記のように構成されている。このプロトコルレイヤを構成するFraming Layer70、Retry Layer71、Multi-lane layer72、Lane Layer73は、例えば、受付装置21における読み出し部44と、通信線接続部31との間に介設される。なお、読み出し部44は、Framing Layer70に含まれる場合がある。
また、図14のプロトコルレイヤを構成するFraming Layer77、Retry Layer76、Multi-lane layer75、Lane Layer74は、例えば、転送装置22における通信線接続部53と、書き込み部58との間に介設される。
ところで、Multi-Lane Layer72,75のように複数の通信線を使用してデータを通信する場合には、パケットの構成によっては、効率良くデータを伝送できない虞がある。例えば、図19に表される時刻3のように、2つのフレームのデータが同じ時刻に(同じサイクルで)伝送される場合がある。主として問題になるのは、Retry Layer76(受信側)である。つまり、Retry Layer76が、時刻3において、フレームAとフレームBの両方のCRCをチェックすることによりエラー検出を行うと共に、ACK信号あるいはNACK信号を送信しなければならない。この場合に、フレームAがNGであり(正常でなく)、フレームBがOKである(正常である)場合がある。このような場合には、Retry Layer76は、フレームAのチェック結果としてNACK信号を送信しなければならない。つまり、各フレームのエラーチェックの結果だけで出力する信号をACK信号とするか、NACK信号とするかが決定されるわけではなく、その前のフレームのエラーチェックの結果をも考慮した信号がRetry Layer71(送信側)に送信されなければならない。
このような時間的に前に処理した処理結果をも考慮しなければならない処理は、回路を実現するうえでクリティカルパスになりやすく、特に、CRCを利用したエラー検出チェックは、その計算が複雑であるためにクリティカルパスになりやすい。この事態は、装置(回路)の動作速度を下げ、これに起因してデータの伝送速度の低下を招く。さらに、例えば、受付装置21におけるデータメモリ36からデータを読み出す場合に、複数の仮想チャネルに関連付けられているデータを読み出す必要が生じる。このため、データメモリ36は、複数のデータを同時に読み出すことが可能なメモリにより構成しなければならなくなる。これはデータメモリ36の大型化を招く。
上記のような問題を解決する手法として、例えば次のような手法がある。その手法とは、1サイクルに1つの仮想チャネルのデータのみが受付装置21から転送装置22に出力されるように、受付装置21が出力するデータを調整する機能を持つ手法である。具体的には、例えば、書き込み部43は、伝送対象のデータを順次データメモリ36に書き込んでいる適宜なタイミングでもって、図20に表されるようなダミーのデータ(例えば、無効な制御コマンド)をデータメモリ36に書き込む。その適宜なタイミングとは、読み出し部44がデータメモリ36からデータを順次読み出す際に、1サイクルで読み出されるデータが1つの仮想チャネルのデータのみとなるように、メモリへの書き込み順を調整可能なタイミングである。
あるいは、書き込み部43がダミーのデータをデータメモリ36に書き込むのに代えて、次のような手法が採用されてもよい。例えば、読み出し部44は、データをデータメモリ36から読み出す際に、1サイクルで1つの仮想チャネルのデータのみが読み出されるように、図20に表されるようなダミーのデータを適宜挿入しながら読み出してもよい。
上記のような手法は、Retry Layer(受信側)76の処理を簡易化するだけでなく、データメモリ36の小型化および構造の簡素化を図ることを可能にする。
この第2実施形態のデータ伝送装置20は、次のような効果を得ることができる。つまり、データ伝送装置20は、複数の仮想チャネルVC1〜VC4が共通のデータメモリ36,59を利用する構成を備えている。このため、データ伝送装置20は、無駄を削減したメモリ使用の形態を実現でき、これにより、メモリ容量の削減を図ることができる。
また、データ伝送装置20は、周波数変換機能およびキャッシュ機能を備えることにより、データメモリ36にデータを書き込む際のデータ衝突を少なくすることができる。これにより、データ伝送装置20は、データ衝突に起因したデータ転送の速度低下を防止することができる。
<第3実施形態>
以下に、本発明に係る第3実施形態を説明する。なお、この第3実施形態の説明において、第2実施形態のデータ伝送装置を構成する構成部分と同様な構成部分には同一符号を付し、その共通部分の重複説明は省略する。
以下に、本発明に係る第3実施形態を説明する。なお、この第3実施形態の説明において、第2実施形態のデータ伝送装置を構成する構成部分と同様な構成部分には同一符号を付し、その共通部分の重複説明は省略する。
図21は、第3実施形態のデータ伝送装置の構成を簡略化して表すブロック図である。この第3実施形態のデータ伝送装置80は、双方向通信に適用できる装置構成を備えている。すなわち、第3実施形態のデータ伝送装置80は、第2実施形態のデータ伝送装置20を構成する受付装置21と転送装置22との組み合わせが二組設けられている。一方の組81は、外部モジュール25から外部モジュール26に信号を伝送する機能を実現し、他方の組82は、外部モジュール26から外部モジュール25に信号を伝送する機能を実現する。
受付装置21と、転送装置22と、それら装置21,22を接続する通信線23との構成は、第2実施形態と同様であり、ここでは、その説明は省略する。
なお、受付装置21と転送装置22の組81,82が単に二組設けられていてもよいが、それらの組81,82において、共有できる構成に関しては共有する構成としてもよい。例えば、組81,82の各受付装置21を構成する制御情報格納部34の制御情報は同じであるので、共有する構成としてもよい。同様に、組81,82の各転送装置22を構成する制御情報格納部56の制御情報は同じであるので、共有する構成としてもよい。さらに、受付装置21を構成する割り当て部38は、組81,82に共通の機能部であってもよい。さらに、転送装置22を構成する割り当て部64は、組81,82に共通の機能部であってもよい。このように、組81,82を構成する機能部の一部や情報を共通化することにより、構成の簡素化を図ることができる。
<その他の実施形態>
なお、本発明は第1〜第3の実施形態に限定されず、様々な実施の形態を採り得る。例えば、第2と第3の実施形態では、受付装置21と転送装置22との間を通信する手段は通信線23である。これに代えて、受付装置21と転送装置22は、例えば、赤外線等を利用した無線通信であってもよい。
なお、本発明は第1〜第3の実施形態に限定されず、様々な実施の形態を採り得る。例えば、第2と第3の実施形態では、受付装置21と転送装置22との間を通信する手段は通信線23である。これに代えて、受付装置21と転送装置22は、例えば、赤外線等を利用した無線通信であってもよい。
さらに、第2と第3の実施形態では、受付装置21と転送装置22の各メモリ制御部42,57は、仮想チャネルVC1〜VC4のデータ伝送レートに基づいてデータメモリ36,59の記憶領域を各仮想チャネルVC1〜VC4に割り当てている例を示している。
あるいは、各メモリ制御部42,57は、各仮想チャネルVC1〜VC4にデータメモリ36,59の記憶領域を等分ずつ割り当てている。これらに代えて、例えば、メモリ制御部42,57は、制御情報に含まれるQoSの情報を利用して、データメモリ36,59の記憶領域を各仮想チャネルVC1〜VC4に割り当ててもよい。
あるいは、各メモリ制御部42,57は、各仮想チャネルVC1〜VC4にデータメモリ36,59の記憶領域を等分ずつ割り当てている。これらに代えて、例えば、メモリ制御部42,57は、制御情報に含まれるQoSの情報を利用して、データメモリ36,59の記憶領域を各仮想チャネルVC1〜VC4に割り当ててもよい。
1,20 データ伝送装置
3,38 割り当て部
4,40 周波数変換部
5,35 キャッシュ部
6,45 調停部
7,36 メモリ
3,38 割り当て部
4,40 周波数変換部
5,35 キャッシュ部
6,45 調停部
7,36 メモリ
Claims (9)
- データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータを割り当てる割り当て部と、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する周波数変換部と、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域に保持するキャッシュ部と、
前記キャッシュ部におけるデータの保持状況に基づいて、前記キャッシュ部に保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とを決定する調停部と
を備えているデータ伝送装置。 - 前記各仮想チャネル毎に前記メモリの記憶領域を割り当てるメモリ制御部がさらに備えられている請求項1に記載のデータ伝送装置。
- 前記メモリ制御部は、前記各仮想チャネルに設定されているデータの伝送レートに基づいて、前記各仮想チャネル毎に前記メモリの記憶領域を割り当てる請求項2に記載のデータ伝送装置。
- 前記メモリ制御部は、前記各仮想チャネルに伝送される前記データを発信した発信元モジュールのQoS(Quolity of Service)情報に基づいて、前記各仮想チャネル毎に前記メモリの記憶領域を割り当てる請求項2に記載のデータ伝送装置。
- 前記調停部は、前記メモリに格納されている前記データが、割り当てられている仮想チャネル毎に、書き込まれた順でもって読み出されるように、前記データの読み出し順を決定する請求項1乃至請求項4の何れか一つに記載のデータ伝送装置。
- 前記メモリから読み出された前記データにおける前記装置内部の動作周波数を、当該データの転送先に応じた動作周波数に変換する変換部がさらに備えられている請求項1乃至請求項5の何れか一つに記載のデータ伝送装置。
- 双方向通信が可能な対を成すモジュールの一方から他方へのデータ伝送に関与する前記割り当て部と前記周波数変換部と前記キャッシュ部と前記調停部を含む装置構成の組と、前記モジュールの他方から一方へのデータ伝送に関与する前記割り当て部と前記周波数変換部と前記キャッシュ部と前記調停部を含む装置構成の組とが設けられ、
前記周波数変換部は、それら二つの組に共通の周波数変換部であり、
前記調停部は、前記二つの組に共通のメモリに書き込まれる前記データの書き込み順と読み出し順を決定する請求項1乃至請求項6の何れか一つに記載のデータ伝送装置。 - データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータをコンピュータが割り当て、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換し、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域にコンピュータが保持し、
前記データの保持状況に基づいて、その保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とをコンピュータが決定するデータ伝送方法。 - データを伝送する仮想的な伝送チャネルである複数の仮想チャネルのうちの一つに、受信したデータを割り当てる処理と、
前記受信したデータの動作周波数を予め定められた装置内部の動作周波数に変換する処理と、
前記受信したデータを、当該データに割り当てられた前記仮想チャネルに応じた記憶領域に保持する処理と、
前記キャッシュ部におけるデータの保持状況に基づいて、前記キャッシュ部に保持されている前記データを、前記複数の仮想チャネルに共通のメモリに書き込む書き込み順と、前記メモリから前記データを読み出す読み出し順とを決定する処理と
をコンピュータに実行させるコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015045488A JP2016167109A (ja) | 2015-03-09 | 2015-03-09 | データ伝送装置、データ伝送方法およびコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015045488A JP2016167109A (ja) | 2015-03-09 | 2015-03-09 | データ伝送装置、データ伝送方法およびコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016167109A true JP2016167109A (ja) | 2016-09-15 |
Family
ID=56898462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015045488A Pending JP2016167109A (ja) | 2015-03-09 | 2015-03-09 | データ伝送装置、データ伝送方法およびコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016167109A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11895414B1 (en) | 2022-08-04 | 2024-02-06 | Qualcomm Incorporated | Virtual channel configuration session of a camera sensor |
-
2015
- 2015-03-09 JP JP2015045488A patent/JP2016167109A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11895414B1 (en) | 2022-08-04 | 2024-02-06 | Qualcomm Incorporated | Virtual channel configuration session of a camera sensor |
WO2024030173A1 (en) * | 2022-08-04 | 2024-02-08 | Qualcomm Incorporated | Virtual channel configuration session of a camera sensor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1775896B1 (en) | Network on chip system employing an Advanced Extensible Interface (AXI) protocol | |
US8352774B2 (en) | Inter-clock domain data transfer FIFO circuit | |
JP4808513B2 (ja) | システムオンチップの大域的非同期通信アーキテクチャ | |
JP2024099640A (ja) | 専用低レイテンシリンクを使用した複数のハードウェアアクセラレータのための統合されたアドレス空間 | |
US20220066969A1 (en) | Mapping high-speed, point-to-point interface channels to packet virtual channels | |
US8924612B2 (en) | Apparatus and method for providing a bidirectional communications link between a master device and a slave device | |
US20150103822A1 (en) | Noc interface protocol adaptive to varied host interface protocols | |
US7536489B2 (en) | Information processing system for determining payload size based on packet-to-payload size ratio | |
KR101699784B1 (ko) | 버스 시스템 및 그것의 동작 방법 | |
US20150242261A1 (en) | Communication device, router having communication device, bus system, and circuit board of semiconductor circuit having bus system | |
US8630358B2 (en) | Data packet flow control across an asynchronous clock domain boundary | |
US10387355B2 (en) | NoC interconnect with linearly-tunable QoS guarantees for real-time isolation | |
US11831543B2 (en) | Flow control for a multiple flow control unit interface | |
TWI717373B (zh) | 用於通用序列匯流排2.0頻寬保留之方法及系統 | |
KR101994929B1 (ko) | 집합 통신 수행 방법 및 이를 이용한 집합 통신 시스템 | |
WO2014141692A1 (ja) | バス制御装置、中継装置およびバスシステム | |
JP2016167109A (ja) | データ伝送装置、データ伝送方法およびコンピュータプログラム | |
US10289598B2 (en) | Non-blocking network | |
US8103788B1 (en) | Method and apparatus for dynamically reallocating buffers for use in a packet transmission | |
US11714655B2 (en) | Pipeline merging in a circuit | |
US10185606B2 (en) | Scalable autonomic message-transport with synchronization | |
US9164914B1 (en) | Multiple port routing circuitry for flash memory storage systems | |
Pruthvija et al. | Simulation of low area and high speed nine port network-on-chip router architecture | |
WO2017177928A1 (en) | Scalable autonomic message-transport with synchronization | |
CN117795913A (zh) | 使用多重变换的数据总线反转 |