(57)【特許請求の範囲】
【請求項１】
第１のクロックで動作する第１のデバイスと、前記第１のクロックと異なる第２のクロックで動作する第２のデバイスとの間に接続され、
前記第１のデバイスから前記第２のデバイスへ送信された第１のデータを記憶し、前記第２のクロックと逓倍関係または分周関係にありクロック周波数が前記第２のクロックのクロック周波数よりも前記第１のクロックのクロック周波数に近い第３のクロックで読み出される第１のメモリーと、
前記第１のメモリーから読み出した前記第１のデータを前記第２のクロックでサンプリング処理を行なう第１の同期化部と、
前記第１の同期化部でサンプリング処理された前記第１のデータを前記第２のデバイスへ出力する第１の出力部と、
前記第２のデバイスから前記第１のデバイスへ送信された第２のデータを前記第３のクロックでサンプリング処理を行なう第２の同期化部と、
前記第２の同期化部から出力された前記第２のデータを記憶し、前記第１のクロックで読み出される第２のメモリーと、
前記第２のメモリーから読み出された前記第２のデータを前記第１のデバイスへ出力する第２の出力部とを備え、
前記第２のデバイスは、前記第２のデータを前記第１のクロック及び前記第２のクロックと異なる第４のクロックで出力するものであって、
前記第２のデバイスと前記第２の同期化部との間に、前記第２のデータを記憶し、前記第２のクロックで読み出される第３のメモリーをさらに備える
ことを特徴とするデータ転送装置。
【請求項２】
前記第２のデータは、アクセス対象のデバイスを指定する情報を含むものであって、
前記第２のデバイスから入力された前記第２のデータを解析し、前記第１のデバイスへのアクセスにのみ必要な第４のデータを抽出し、前記第４のデータのみを前記第３のメモリーの記憶対象とする
ことを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記第１のデータは、アクセス対象のデバイスへのアクセス内容がライト要求であるか否かを示す情報を含むものであって、
前記第１のデバイスから入力された前記第１のデータを解析し、前記第２のデバイスへのアクセスがライト要求であった場合は、
前記第２のデバイスから入力された、前記第２のデータを無視する
ことを特徴とする請求項１または請求項２に記載のデータ転送装置。
【請求項４】
複数のアドレスを有し、前記アドレス毎に設定情報を予め記憶する第４のメモリーをさらに備え、
前記第１のデバイスは、前記第２のデバイスの設定を変更する場合には、前記第４のメモリーの複数のアドレスのうちの１つを示すデータを含む前記第１のデータを出力し、
前記第１のデータに含まれる前記データにより示される前記第４のメモリーのアドレスから、前記設定情報を読み出す設定データ読出し部をさらに備え、
前記第１の出力部は、前記設定データ読出し部により読み出された設定情報を含むデータを前記第２のデバイスへ出力し、
前記第２のデバイスは、前記第１の出力部により出力されたデータに含まれる設定情報に従って設定する
ことを特徴とする請求項１から請求項３のいずれか１項に記載のデータ転送装置。
【請求項５】
前記第１および前記第２のデータは、アクセス対象のデバイスとその転送領域および転送長を示す情報を含むものであって、
前記第１のデバイスから入力された前記第１のデータを解析し、前記第２のデバイスへの転送長を抽出し、
前記第１のクロックの周波数が前記第２のクロックの周波数よりも高い場合には、前記第２のクロックの周波数に対する前記第１のクロックの周波数の比例倍以上である条件と、前記第２のデータで許容される転送長以下であるの条件とを満たす係数を求め、
前記第２のデバイスへの転送長に前記係数で乗算した値を前記第２のデータの変更後の転送長として前記第１の同期化部に出力する転送長調整部をさらに備える
ことを特徴とする請求項１から請求項４のいずれか１項に記載のデータ転送装置。
【請求項６】
前記第１のクロックの周波数が前記第２のクロックの周波数よりも高い場合には、前記第２のデータの変更後の転送長に到達するまで、前記第１のデバイスから入力されるデータを連結して、前記第２のデバイスに出力する
ことを特徴とする請求項５に記載のデータ転送装置。
【請求項７】
前記第１および前記第２のデータは、アクセス対象のデバイスとその転送領域および転送長を示す情報を含むものであって、
前記第２のデバイスから入力された前記第２のデータを解析し、前記第１のデバイスへの転送長を抽出し、
前記第１のクロックの周波数が前記第２のクロックの周波数よりも低い場合には、前記第１のクロックの周波数に対する前記第２のクロックの周波数の比例倍以上である条件と、前記第１のデータで許容される転送長以下である条件とを満たす第２の係数を求め、前記第１のデバイスへの転送長に前記第２の係数で乗算した値を前記第１のデータの変更後の転送長として前記第２の同期化部に出力する第２の転送長調整部をさらに備える
ことを特徴とする請求項１から請求項６のいずれか１項に記載のデータ転送装置。
【請求項８】
前記第１のクロックの周波数が前記第２のクロックの周波数よりも低い場合には、前記第１のデータの変更後の転送長に到達するまで、前記第２のデバイスから入力されるデータを連結して、前記第１のデバイスに出力する
ことを特徴とする請求項７に記載のデータ転送装置。
【請求項９】
第１のクロックで動作する第１のデバイスと、前記第１のクロックと異なる第２のクロックで動作する第２のデバイスとの間でデータを転送するデータ転送方法であって、
前記第１のデバイスから前記第２のデバイスへ送信された第１のデータを記憶する第１の記憶工程と、
前記第１の記憶工程で記憶した前記第１のデータを、前記第２のクロックと逓倍関係または分周関係にありクロック周波数が前記第２のクロックのクロック周波数よりも前記第１のクロックのクロック周波数に近い第３のクロックで読み出す第１の読み出し工程と、
前記第１の読み出し工程で読み出された前記第１のデータを前記第２のクロックでサンプリング処理を行なう第１の同期化工程と、
前記第１の同期化工程から出力された前記第１のデータを前記第２のデバイスへ出力する第１の出力工程と、
前記第２のデバイスから前記第１のデバイスへ送信された第２のデータを前記第３のクロックでサンプリング処理を行なう第２の同期化工程と、
前記第２の同期化工程から出力された前記第２のデータを記憶する第２の記憶工程と、
前記第２の記憶工程で記憶した前記第２のデータを、前記第１のクロックで読み出す第２の読み出し工程と、
前記第２の読み出し工程で読み出された前記第２のデータを前記第１のデバイスへ出力する第２の出力工程とを備え、
前記第２のデバイスは、前記第２のデータを前記第１のクロック及び前記第２のクロックと異なる第４のクロックで出力するものであって、
前記第２のデバイスから前記第１のデバイスへ送信された前記第２のデータを記憶する第３の記憶工程と、
前記第３の記憶工程で記憶した前記第２のデータを、前記第２のクロックで読み出す第３の読み出し工程とをさらに備え、
前記第２の同期化工程は、前記第３の読み出し工程で読み出された前記第２のデータを前記第３のクロックで前記サンプリング処理を行なう
ことを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、それぞれが異なるクロックで動作する装置間におけるデータ転送方法に関する。
【背景技術】
【０００２】
装置間でデータを転送するシステムにおいて、一方の装置が動作するクロックと他方の装置が動作するクロックとが異なる場合、データの転送を行なうときにデータの抜け又はデータの追い越しが発生することを防ぐために、双方の装置との間に非同期回路を有するデータ転送装置を備えることが一般的である。【０００３】
一般的なデータ転送方法として、一方の装置側から他方の装置への書き込みを指示するＷＲＩＴＥ信号と、他方の装置側から書き込みの準備ができているか否かを示すＲＥＡＤＹ信号とを用いて、受信する側の装置のクロックを入力クロックとするフリップフロップで同期化させて送ることで、データ転送の制御及び非同期信号の同期化を行なう方法があった。しかしながら、この方法では書き込み毎にＲＥＡＤＹ信号が書き込み準備可能を示す信号になるまで待つ必要があり、これによりデータの転送を高速化することが困難であった。ここで、非同期信号の同期化とは、受信する側で非同期信号がずれることなく受信する側で用いるクロックでラッチ可能な状態にすることである。例えば、転送元から同じクロックタイミングで送られた複数ビットの信号が、受信先の装置において複数ビットの信号がビットごとにずれることなく同じクロックタイミングでラッチ可能な状態にすることである。【０００４】
そこで、双方の装置との間に、一方の装置と同じクロックで駆動するライトバッファを有するデータ転送装置を備えることで、ライトバッファから一方の装置へのデータの転送を高速化する方法があった。（例えば、特許文献１参照）。なお、特許文献１では双方の装置がマスター部及び周辺回路、一方の装置が周辺回路、データ転送装置がバスブリッジとして記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１０７６１５号公報（第５−１０頁、第１図）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１のようなバスブリッジでは、ライトバッファと同じクロックで動作する周辺回路からマスター部へのデータ転送をする場合であっても、ライトバッファに一度記憶されることになる。そのため、ライトバッファへの記憶が完了した後に読み出すこととなり、周辺回路へのデータ転送にかかる時間が長くなる、つまり転送効率が悪くなるという問題があった。【０００７】
この発明は、上述のような課題を解決するためになされたもので、それぞれが異なるクロックで動作する装置間で、複雑な非同期回路を実装することなく、より転送効率の良いデータの転送を実現するデータ転送装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係るデータ転送装置においては、第１のクロックで動作する第１のデバイスと、前記第１のクロックと異なる第２のクロックで動作する第２のデバイスとの間に接続され、前記第１のデバイスから前記第２のデバイスへ送信された第１のデータを記憶し、前記第２のクロックと逓倍関係または分周関係にありクロック周波数が前記第２のクロックのクロック周波数よりも前記第１のクロックのクロック周波数に近い第３のクロックで読み出される第１のメモリーと、前記第１のメモリーから読み出した前記第１のデータを前記第２のクロックでサンプリング処理を行なう第１の同期化部と、前記第１の同期化部でサンプリング処理された前記第１のデータを前記第２のデバイスへ出力する第１の出力部と、前記第２のデバイスから前記第１のデバイスへ送信された第２のデータを前記第３のクロックでサンプリング処理を行なう第２の同期化部と、前記第２の同期化部から出力された前記第２のデータを記憶し、前記第１のクロックで読み出される第２のメモリーと、前記第２のメモリーから読み出された前記第２のデータを前記第１のデバイスへ出力する第２の出力部とを備え、前記第２のデバイスは、前記第２のデータを前記第１のクロック及び前記第２のクロックと異なる第４のクロックで出力するものであって、前記第２のデバイスと前記第２の同期化部との間に、前記第２のデータを記憶し、前記第２のクロックで読み出される第３のメモリーをさらに備えることを特徴とするものである。
【発明の効果】
【０００９】
この発明は、第１のデバイスが動作する第１のクロックと、第２のデバイスが動作する第１のクロックと異なる第２のクロックに対して、前記第２のクロックと逓倍関係または分周関係にありクロック周波数が前記第２のクロックのクロック周波数よりも前記第１のクロックのクロック周波数に近い第３のクロックを用いることで、サンプリング処理が容易に行なうことができるので、複雑な非同期回路を実装することなく、より転送効率の良いデータの転送を実現するデータ転送装置を得ることが可能になるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１にかかるデータ転送装置の構成図である。
【図２】異なるプロトコルに従った形式のＭ＿ＴＸＤとＳ＿ＲＸＤとの関係を示す図である。
【図３】第２のクロックＣＬＫ＿Ｃと第３のクロックＣＬＫ＿Ｂとの位相関係を示す図である。
【図４】Ｍ／Ｎ倍同期化モジュール２１３におけるサンプリング処理を示す図である。
【図５】第２のクロックＣＬＫ＿Ｃと第３のクロックＣＬＫ＿Ｂとの位相関係が非同期の関係である場合のサンプリング処理を示す図である。
【図６】第２のクロックＣＬＫ＿Ｃと第３のクロックＣＬＫ＿Ｂとの位相関係が同期の関係である場合のサンプリング処理を示す図である。
【図７】位相調整モジュール２１２におけるタイミングチャートを示す図である。
【図８】送信系統処理ブロック２１０におけるデータの形式変換の様子を示す図である。
【図９】受信系統処理ブロック２１０におけるデータの形式変換の様子を示す図である。
【図１０】従来のデータ転送装置の構成図である。
【図１１】従来のデータ転送装置の同期化タイミングチャートを示す図である。
【図１２】実施の形態１にかかるデータ転送装置の変形例を示す図である。
【図１３】実施の形態２にかかるデータ転送装置の構成図である。
【図１４】実施の形態２にかかるデータ転送装置の変形例を示す図である。
【図１５】映像表示システムを示す図である。
【図１６】映像表示システムにおける表示装置の対応付けを示す図である。
【図１７】実施の形態３にかかる印刷システムを示す図である。
【図１８】実施の形態３にかかるデータ転送装置の構成図である。
【図１９】実施の形態３にかかる印刷装置の各種設定の管理情報を示す図である。
【図２０】設定データ読出しモジュール２１６の動作フローチャートである。
【図２１】実施の形態３に係る印刷システムでのデータＴＤ２の例を示す図である。
【図２２】実施の形態４にかかるデータ転送装置の構成図である。
【図２３】送信系統処理ブロック２６０におけるデータの形式変換の様子を示す図である。
【図２４】受信系統処理ブロック２７０におけるデータの形式変換の様子を示す図である。
【発明を実施するための形態】
【００１１】
実施の形態１．
図１は、本実施の形態にかかるデータ転送装置２００の構成図である。データ転送装置２００は、第１のデバイス１００と第１のバス４００を介して接続される。ここで、第１のデバイス１００は、第１のクロックＣＬＫ＿Ａで動作するデバイスである。また、データ転送装置２００は、第２のデバイス３００と第２のバス５００を介して接続される。第２のデバイス３００は、第２のクロックＣＬＫ＿Ｃで動作するデバイスである。
【００１２】
なお、本実施の形態では、第１のデバイスと第２のデバイスとの関係を、マスター（制御する側）とスレーブ（制御される側）との関係として、第１のデバイスを制御用デバイスと呼び、第２のデバイスを制御対象デバイスと呼ぶこととする。
【００１３】
図１では、制御用デバイス１００が送信するデータ（第１のデータ）をＭ＿ＴＸＤとして示し、制御用デバイス１００が受信するデータをＭ＿ＲＸＤとして示している。また、制御対象デバイス３００が送信するデータ（第２のデータ）をＳ＿ＴＸＤとして示し、制御対象デバイス３００が受信するデータをＳ＿ＲＸＤとして示している。
【００１４】
ここで、制御用デバイス１００がデータを通信するときの送受信の手順を定めた規格（以下、通信プロトコルまたは単純にプロトコルともいう）として第１のプロトコルで通信することが決められている場合は、制御用デバイス１００が送信する第１のデータＭ＿ＴＸＤは、制御用デバイス１００が用いる第１のプロトコルに従った形式のデータ構成で形成されたものであり、Ｍ＿ＲＸＤは第１のプロトコルに従った形式のデータ構成で形成されたものである必要がある。
【００１５】
同様に、制御対象デバイス３００がデータを通信するときの通信プロトコルとして第２のプロトコルで通信することが決められている場合は、制御対象デバイス３００が送信する第２のデータＳ＿ＴＸＤは、制御対象デバイス３００が用いる第２のプロトコルに従った形式のデータ構成で形成されたものであり、Ｓ＿ＲＸＤは第２のプロトコルに従った形式のデータ構成で形成されたものである必要がある。
【００１６】
例えば、共通のバスに接続された複数のデバイス同士がバスを介して通信する場合に、共通のバスに接続されたそれぞれのデバイス同士での通信は、共通のプロトコルに従った通信を行なうことで可能になる。図１において、第１のバス４００を介しての通信が第１のプロトコルで通信することが決められている場合は、第１のバス４００を介して接続された制御用デバイス１００とデータ転送装置２００との通信は、第１のプロトコルに従った形式のデータ構成で通信が行われる。同様に、第２のバス５００を介しての通信が第２のプロトコルで通信することが決められている場合は、第２のバス５００を介して接続されたデータ転送装置２００と制御対象デバイス３００との通信は、第２のプロトコルに従った形式のデータ構成で通信が行われることになる。
【００１７】
図２は、異なるプロトコルに従った形式のＭ＿ＴＸＤとＳ＿ＲＸＤとの関係を示す図である。具体的には、Ｍ＿ＴＸＤは、第１のプロトコルに従った形式のデータであり、Ｓ＿ＲＸＤは、第２のプロトコルに従った形式のデータである。ここで図２において、ＨＤ１は第１のプロトコルに従った形式でのヘッダ情報、Ｈ１１は属性データ、ＡＤＲはアドレス、ＤＴはデータ、ＨＤ２は第２のプロトコルに従った形式でのヘッダ情報、Ｈ２１は宛先アドレス、Ｈ２２は送信元アドレス、そしてＨ２３はフレーム長を示す。
【００１８】
第１のプロトコルに従った形式のデータＭ＿ＴＸＤは、例えば、アクセス要求の属性を示す属性データＨ１１を含むヘッダ情報ＨＤ１、アドレスＡＤＲ、データＤＴ、及びＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）から構成される。ここで、アクセス要求の属性とは、送信元がアクセス先にライト要求（書き込み要求）をしているのかリード要求（読み出し要求）をしているのかなどを示す情報である。例えばアクセス要求の属性がライト要求であれば、アドレスＡＤＲはライトアドレスを示す情報である。同様に例えばアクセス要求の属性がライト要求であれば、データＤＴはライトデータである。ＦＣＳは、データの誤り検出および訂正を行うためのチェックサム符号の情報である。なお、図２においては、アクセス要求の属性がアクセス先にライト要求をしているものとしているため、データ領域にはライトデータがある。
【００１９】
第２のプロトコルに従った形式のデータＳ＿ＲＸＤは、例えば、アクセス先のアドレスを示す宛先アドレスＨ２１、送信元のアドレスを示す送信元アドレスＨ２２、及び送信するデータのフレーム長情報を示すフレーム長Ｈ２３を含むヘッダ情報ＨＤ２と、アクセス要求の属性を示す属性データＨ１１、アドレスＡＤＲ、データＤＴ、及びＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）から構成される。
【００２０】
次に、図１に戻ってデータ転送装置２００について詳細に説明する。図１では、データ転送装置２００は、制御用デバイス１００から制御対象デバイス３００へのデータ送信を処理する送信系統処理ブロック２１０と制御対象デバイス３００から制御用デバイス１００へのデータ送信を処理する受信系統処理ブロック２２０とに分けて示している。まずは送信系統処理ブロック２１０の各要素について説明する。
【００２１】
プロトコル解析モジュール２１１は、制御用デバイス１００から送信された第１のデータＭ＿ＴＸＤについて、第１のバスのプロトコルに従って解析を行ない、制御対象デバイス３００へのアクセスに必要なアクセス要求の属性ＴＡＴＴＲ０、アドレスＴＡＤ０、及びデータＴＤ０を抽出し、出力する。なお、アクセス要求の属性ＴＡＴＴＲ０は、リード要求またはライト要求を示すアクセス要求のコマンドや、第１のデータＭ＿ＴＸＤの送信元である制御用デバイス１００を示す属性や、リードデータまたはライトデータのデータ長などを表す。また、プロトコル解析モジュール２１１は、第１のデータＭ＿ＴＸＤと同じ第１のクロックＣＬＫ＿Ａで動作する。ＴＡＴＴＲ０は図２におけるＨ１１、ＴＡＤ０は図２におけるＡＤＲ、データＴＤ０は図２におけるＤＴに相当する。
【００２２】
位相調整モジュール２１２は、メモリー２１２０（図示せず）を備える。位相調整モジュール２１２は、プロトコル解析モジュール２１１からのアクセス要求の属性ＴＡＴＴＲ０、アドレスＴＡＤ０、及びデータＴＤ０を入力として、それらをメモリー２１２０にライト用のクロックを第１のクロックＣＬＫ＿Ａとして記憶する。そしてリード用のクロックを第３のクロックＣＬＫ＿Ｂとしてメモリー２１２０から読み出す。メモリー２１２０から第３のクロックＣＬＫ＿Ｂで読み出したアクセス要求の属性をＴＡＴＴＲ１とし、アドレスをアドレスＴＡＤ１とし、データをＴＤ１とする。ここで、第３のクロックＣＬＫ＿Ｂは、第１のクロックＣＬＫ＿Ａのクロック周波数をＦａとし、第２のクロックＣＬＫ＿Ｃのクロック周波数をＦｃとした場合に、ＦａとＦｃの比率に近いＮ／Ｍ（ただし、Ｍ及びＮは自然数）を求め、第３のクロックＣＬＫ＿Ｂのクロック周波数Ｆｂは、以下の式で設定する。
【００２３】
【数１】
0006026001.tif 000002
【００２４】
第２のクロックＣＬＫ＿Ｃ及び第３のクロックＣＬＫ＿Ｂの生成について説明する。第２のクロックＣＬＫ＿Ｃ及び第３のクロックＣＬＫ＿Ｂは、第１のクロックを入力とするクロック生成部（図示せず）で生成する。クロック生成部はＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）（図示せず）を備え、第１のクロックＣＬＫ＿Ａから位相が合った第２のクロックＣＬＫ＿Ｃ及び第３のクロックＣＬＫ＿Ｂを生成する。
【００２５】
第３のクロックＣＬＫ＿Ｂのクロック周波数Ｆｂは、式（１）の関係をもつとともに第２のクロックＣＬＫ＿Ｃのクロック周波数Ｆｃよりも第１のクロックＣＬＫ＿Ａのクロック周波数Ｆａに近いものを選択する。ＭとＮは、Ｎ／Ｍができる限りＦａとＦｃの比率に近いものを用いる方が望ましい。
【００２６】
図３は、第２のクロックＣＬＫ＿Ｃ及び第３のクロックＣＬＫ＿Ｂの位相関係を示す図である。図３（Ａ）は、位相が合っていない第２のクロックＣＬＫ＿Ｃ及び第３のクロックＣＬＫ＿Ｂを示す。図３（Ｂ）は、位相が合っている第２のクロックＣＬＫ＿Ｃ及び第３のクロックＣＬＫ＿Ｂを示す。図３（Ａ）では、第２のクロックＣＬＫ＿Ｃの周波数が第３のクロックＣＬＫ＿Ｂ周波数の１／２分周の関係であるが、立ち上がりエッジが同期していないことを表す。また、図３（Ｂ）では、図３（Ａ）と同様に、第２のクロックＣＬＫ＿Ｃの周波数が第３のクロックＣＬＫ＿Ｂ周波数の１／２分周の関係であるが、立ち上がりエッジが同期していることを示す。
【００２７】
このように図３で示すように、本明細書において、位相が合うというのは、クロック周波数の遅い側のクロックの立ち上がりエッジとクロック周波数の早い側のクロックの立ち上がりエッジとの差がないことを表す。クロックを用いる回路が立ち下がりクロックを用いるもので構成する場合は、クロック周波数の遅い側のクロックの立ち下がりエッジとクロック周波数の早い側のクロックの立ち下がりエッジとの差がないことを表す。
【００２８】
生成した第３のクロックＣＬＫ＿Ｂのクロック周波数Ｆｂと第１のクロックＣＬＫ＿Ａのクロック周波数をＦａとが同一になる場合であっても、第３のクロックＣＬＫ＿Ｂは、第２のクロックＣＬＫ＿Ｃとの位相が合うように位相関係を調整したクロックをＰＬＬなどで生成するのが望ましい。
【００２９】
Ｍ／Ｎ倍同期化モジュール２１３は、位相調整モジュール２１２からの第３のクロックＣＬＫ＿Ｂに同期したアクセス要求の属性ＴＡＴＴＲ１、アドレスＴＡＤ１、及びデータＴＤ１を入力として、プロトコル変換モジュール２１４が第２のバス５００へデータＳ＿ＲＸＤを出力する際のビット幅で、それらを予め決めた順番となるよう第２のクロックＣＬＫ＿ＣでデータＴＳＹＮＣ＿ＴＸＤを出力する。この際、第２のクロックＣＬＫ＿Ｃは第３のクロックＣＬＫ＿ＢのＭ／Ｎ倍の周波数で同期しているため、位相調整モジュール２１２からのアクセス要求の属性ＴＡＴＴＲ１、アドレスＴＡＤ１、及びデータＴＤ１を、第３のクロックＣＬＫ＿ＢのＭ／Ｎ倍の周期でサンプリングすることで、それらを第３のクロックＣＬＫ＿Ｂから第２のクロックＣＬＫ＿Ｃへ同期させることができる。
【００３０】
図４は、本実施の形態におけるサンプリング処理に関する説明図である。ここでは、第３のクロックＣＬＫ＿Ｂは第２のクロックＣＬＫ＿Ｃを２逓倍して生成されたクロックを示す。つまり、ここではＭ／Ｎ＝２であって、例えばＭ＝２かつＮ＝１である。
【００３１】
本実施の形態におけるサンプリングとは、入力データを、イネーブル信号等に従い、入力データの同期クロックとは異なるクロックで取り込むことを示す。Ｍ／Ｎ倍同期化モジュール２１３においては、第３のクロックＣＬＫ＿Ｂに同期した属性ＴＡＴＴＲ１、アドレスＴＡＤ１、及びデータＴＤ１などの入力データを、イネーブル信号ＥＮＡＢＬＥに従い、第２のクロックＣＬＫ＿Ｃで取り込み、データＴＳＹＮＣ＿ＴＸＤとして出力する。
【００３２】
図４では、３３ビットのビット幅で入力される属性ＴＡＴＴＲ１のＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）が、有効なデータの入力を示すデータ有効信号ＶＡＬＩＤとして入力される例を示す。Ｍ／Ｎ倍同期化モジュール２１３は、データ有効信号ＶＡＬＩＤがＨ電圧になったことを第２のクロックＣＬＫ＿Ｃの立ち上がりで検知すると、イネーブル信号ＥＮＡＢＬＥをＨ電圧にする。そして、イネーブル信号ＥＮＡＢＬＥがＨ電圧のとき第２のクロックＣＬＫ＿Ｃで入力データを取り込む。従って、図４においてＭ／Ｎ倍同期化モジュール２１３が第２のクロックＣＬＫ＿Ｃで取り込むデータは、ＭＳＢを除いた３２ビットの属性ＴＡＴＴＲ１、３２ビットのアドレスＴＡＤ１、及びデータＴＤ１となる。
【００３３】
さらに図４では、サンプリング処理の出力データＴＳＹＮＣ＿ＴＸＤのビット幅が８ビットであるため、各データのサンプリングを４回に分けて出力する必要があるため第２のクロックＣＬＫ＿Ｃで４Ｃｙｃｌｅかかり、合計１２Ｃｙｃｌｅで１つのサンプリング処理が完了する。
【００３４】
第２のクロックＣＬＫ＿Ｃと第３のクロックＣＬＫ＿Ｂとの位相関係による影響について説明する。図５は、第２のクロックＣＬＫ＿Ｃと第３のクロックＣＬＫ＿Ｂとが図３（Ａ）の関係である場合の、Ｍ／Ｎ倍同期化モジュール２１３の動作の例を示す図である。図５では、アクセス要求の属性ＴＡＴＴＲ１のビット幅が３３ビットであり、ＭＳＢが有効なデータの入力を示すデータ有効信号ＶＡＬＩＤとして入力される例である。この場合、第２のクロックＣＬＫ＿Ｃと第３のクロックＣＬＫ＿Ｂの立ち上がりエッジが非同期であることから、Ｍ／Ｎ倍同期化モジュール２１３は、第３のクロックＣＬＫ＿Ｂに同期した入力信号を第２のクロックＣＬＫ＿Ｃに同期させる非同期回路を内部に備える必要がある。非同期回路では、第３のクロックＣＬＫ＿Ｂに同期した入力信号を第２のクロックＣＬＫ＿Ｃに同期させて出力する際に、出力信号の値が不安定となるメタスタビリティの発生を解消するため、入力信号を２段のＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）回路に入力する。
【００３５】
図５のＴａｓ１で、Ｍ／Ｎ倍同期化モジュール２１３は、位相調整モジュール２１２から第３のクロックＣＬＫ＿Ｂに同期したアクセス要求の属性ＴＡＴＴＲ１、アドレスＴＡＤ１、及びデータＴＤ１が入力されると、Ｍ／Ｎ倍同期化モジュール２１３はそれらを非同期回路に入力する。
【００３６】
次にＴａｓ２で、非同期回路内部の２段目のＦＦ回路の出力である、アクセス要求の属性ＴＡＴＴＲ１’、アドレスＴＡＤ１’、及びデータＴＤ１’を非同期回路の出力として得る。非同期回路に入力したアクセス要求の属性ＴＡＴＴＲ１のＭＳＢ、即ちデータ有効信号ＶＡＬＩＤは、非同期回路からの出力中であることを示す、非同期イネーブル信号ＡＳＹＮＣ＿ＥＮＡＢＬＥとして非同期回路から出力される。
【００３７】
最後に、Ｍ／Ｎ倍同期化モジュール２１３はＴａｓ３で、非同期イネーブル信号ＡＳＹＮＣ＿ＥＮＡＢＬＥがＨ電圧であるため、非同期回路の出力から生成したデータＴＳＹＮＣ＿ＴＸＤを出力する。
【００３８】
以上のように、第２のクロックＣＬＫ＿Ｃと第３のクロックＣＬＫ＿Ｂとの位相が合わない場合、図５の例において、Ｍ／Ｎ倍同期化モジュール２１３に入力信号がＴａｓ１で与えられてから、Ｔａｓ３でデータＴＳＹＮＣ＿ＴＸＤを出力するまで、第３のクロックＣＬＫ＿Ｂで約６Ｃｙｃｌｅ必要となる。
【００３９】
図６は、第２のクロックＣＬＫ＿Ｃと第３のクロックＣＬＫ＿Ｂとが図３（Ｂ）の関係である場合の、Ｍ／Ｎ倍同期化モジュール２１３の動作の例を示す図である。図５と同様に、アクセス要求の属性ＴＡＴＴＲ１のビット幅が３３ビットであり、ＭＳＢが有効なデータの入力を示すデータ有効信号ＶＡＬＩＤとして入力される例である。この場合、第２のクロックＣＬＫ＿Ｃと第３のクロックＣＬＫ＿Ｂの立ち上がりエッジが同期していることから、Ｍ／Ｎ倍同期化モジュール２１３は、前述した通り、非同期回路を内部に備えることなく第３のクロックＣＬＫ＿Ｂに同期した入力信号を第２のクロックＣＬＫ＿Ｃに同期させて出力する。
【００４０】
図６では、Ｔｓ１で位相調整モジュール２１２から第３のクロックＣＬＫ＿Ｂに同期したアクセス要求の属性ＴＡＴＴＲ１、アドレスＴＡＤ１、及びデータＴＤ１が入力される。第２のクロックＣＬＫ＿Ｃの立ち上がりと第３のクロックＣＬＫ＿Ｂの立ち上がりとが同期しているため、Ｔｓ２で、データ有効信号ＶＡＬＩＤがＨ電圧であることを第２のクロックＣＬＫ＿Ｃで検知し、イネーブル信号ＥＮＡＢＬＥをＨ電圧にする。
【００４１】
最後に、Ｍ／Ｎ倍同期化モジュール２１３は、Ｔｓ３でイネーブル信号がＨ電圧となっているため、データＴＳＹＮＣ＿ＴＸＤを出力する。以上によると、図６の例においては、Ｍ／Ｎ倍同期化モジュール２１３に入力信号がＴａｓ１で与えられてから、図５の半分の３ＣｙｃｌｅでデータＴＳＹＮＣ＿ＴＸＤを出力できる。
【００４２】
以上のように、第２のクロックＣＬＫ＿Ｃと第３のクロックＣＬＫ＿Ｂとの位相が合う場合、異なる周波数でのデータ受け渡しにおいても、第２のクロックＣＬＫ＿Ｃの立ち上がりエッジと第３のクロックＣＬＫ＿Ｂの立ち上がりエッジとが図３（Ａ）の関係を保つことで、複雑な非同期回路を実装することなく、より転送効率の良いデータの転送を実現するデータ転送装置を得ることが可能となる。
【００４３】
図７は、位相調整モジュール２１２での処理のタイミングチャートの一例を示す概略図である。図７では、位相調整モジュール２１２に第１のクロックＣＬＫ＿ＡでデータＴＤ０が入力されるタイミングと、Ｍ／Ｎ倍同期化モジュールへ第１のクロックの位相を調整した第３のクロックＣＬＫ＿ＢでデータＴＤ１を出力するタイミングとが示されている。
【００４４】
位相調整モジュール２１２は、時刻Ｔ１で第１のクロックＣＬＫ＿Ａに同期してデータＴＤ０が入力されると、メモリー２１２０に対してデータのライト命令を示すライトイネーブル信号ＷＲＥＮをアサートする。ここでアサートとは、アクティブ状態にする信号を出力することである。つまり、ライトイネーブル信号ＷＲＥＮをアサートしたとき、メモリー２１２０は、ライトイネーブル信号ＷＲＥＮのアサートを検出することでＴＤ０を記憶することになる。
【００４５】
次に、時刻Ｔ２で、メモリー２１２０はデータＴＤ０のライトを完了すると、データを読み出す際のクロックＣＬＫ＿Ｂに同期させて、ライトが完了したことを示すフラグＦＬＧ＿Ｅを所定のサイクル後にアサートする。位相調整モジュール２１２は、フラグＦＬＧ＿Ｅのアサートを検出し、メモリー２１２０へのリード命令を示すリードイネーブル信号ＲＤＥＮをアサートする。
【００４６】
最後に時刻Ｔ３で、メモリー２１２０から読み出したデータが出力されると、位相調整モジュール２１２は、それをデータＴＤ１としてＭ／Ｎ倍同期化モジュールへ出力する。
【００４７】
上記のように、位相調整モジュール２１２は、第１のクロックＣＬＫ＿Ａに同期して入力されたデータＴＤ０をメモリー２１２０にライトし、第１のクロックＣＬＫ＿Ａの位相を調整した、第２のクロックＣＬＫ＿ＣのＮ／Ｍ倍のクロックＣＬＫ＿Ｂでメモリー２１２０から読み出すことで、第１のクロックにおいて６Ｃｙｃｌｅ程度で下位ブロックであるＭ／Ｎ倍同期化モジュールへデータＴＤ１を出力できる。
【００４８】
プロトコル変換モジュール２１４は、Ｍ／Ｎ倍同期化モジュール２１３から入力されるデータＴＳＹＮＣ＿ＴＸＤに応じて、第２のプロトコルの形式に変換し、データＳ＿ＲＸＤとして出力する。この際、プロトコル変換モジュール２１４は、第２のクロックＣＬＫ＿ＣでデータＳ＿ＲＸＤを出力する。ここで、第２のバス５００は、例えばイーサネット（登録商標）としてもよい。この場合、プロトコル変換モジュール２１４は、第２のプロトコルに従い、Ｍ／Ｎ倍同期化モジュール２１３から入力されるデータＴＳＹＮＣ＿ＴＸＤをデータＳ＿ＲＸＤとして出力する前に、データＳ＿ＲＸＤの受信先である制御対象デバイスの宛先アドレス（Ｈ２１）や、送信元であるデータ転送装置の送信元アドレス（Ｈ２２）、フレーム長（Ｈ２３）等を含むヘッダ情報ＨＤ２をデータＳ＿ＲＸＤとして出力する。また、データＴＳＹＮＣ＿ＴＸＤの出力完了後には、ＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）を出力する。
【００４９】
図８は、送信系統処理ブロック２１０において入力された第１のプロトコルに従った形式のデータＭ＿ＴＸＤから、出力する第２のプロトコルに従った形式のデータＳ＿ＲＸＤの関係を示す。図８に示すように、データ転送装置２００の送信系統処理ブロック２１０は、データＭ＿ＴＸＤが入力されると、データＭ＿ＴＸＤのうち制御対象デバイス３００へのアクセスに必要な、データＭ＿ＴＸＤの送信元である制御用デバイス１００を示すリクエスタＩＤ（Ｈ１１１）や、データ長（Ｈ１１２）、リードまたはライトを示すアクセス要求コマンド（Ｈ１１３）を含むヘッダ情報の属性（Ｈ１１）と、アドレス（ＡＤＲ）と、データ（ＤＴ）を抽出し、第２のプロトコルに従った形式でデータＳ＿ＲＸＤを出力する。これにより、データ転送装置２００の送信系統処理ブロック２１０の入力側のバスとは異なるプロトコルおよび異なる同期クロックのバスを介したデータの転送ができる。
【００５０】
次に受信系統処理ブロック２２０の各要素について説明する。
【００５１】
プロトコル解析モジュール２２１は、制御対象デバイス３００から送信された第２のデータＳ＿ＴＸＤについて、第２のバスのプロトコルに従って解析を行ない、データＳ＿ＴＸＤに不正が無いかどうかを示すステータスＲＳＴＡＴＳと、制御対象デバイス３００から入力されたデータＳ＿ＴＸＤのうち、ヘッダ情報等を除いたデータＲＸＤを出力する。また、プロトコル解析モジュール２２１は、第２のデータＳ＿ＴＸＤと同じ第２のクロックＣＬＫ＿Ｃで動作する。なお、ステータスＲＳＴＡＴＳは、入力されたデータＳ＿ＴＸＤに不正がないかを示す複数種類の信号としても良い。例えば、第２のバス５００がイーサネット（登録商標）の場合、入力されたデータＳ＿ＴＸＤから宛先ＭＡＣアドレスやフレーム長等を含むヘッダ情報等を除いた最大１５００Ｂｙｔｅのデータ部を抽出し、データＲＸＤとして出力する。また、入力されたデータＳ＿ＴＸＤがイーサネット（登録商標）のプロトコルに違反していないかを示すステータス信号や、データＲＸＤが有効であることを示すＶＡＬＩＤ信号をステータスＲＳＴＡＴＳとして出力する。
【００５２】
Ｎ／Ｍ倍同期化モジュール２２２は、プロトコル解析モジュール２２１からのステータスＲＳＴＡＴＳ及びデータＲＸＤを入力として、データＲＸＤを解析し、アクセス要求の属性ＲＡＴＴＲ０、アドレスＲＡＤ０、及びデータＲＤ０を抽出して出力する。ここで、データＲＤ０は、データＲＸＤが制御用デバイス１００から制御対象デバイス３００へリード要求に対する返答の場合は、リードデータとなる。また、抽出したアクセス要求の属性をＲＡＴＴＲ１とし、抽出したアドレスをＲＡＤ０とし、抽出したデータＲＤ０をデータＲＤ１として第３のクロックＣＬＫ＿Ｂに同期して出力する。第３のクロックＣＬＫ＿Ｂは第２のクロックＣＬＫ＿ＣのＮ／Ｍ倍の周波数で同期しているため、プロトコル解析モジュール２２１からのステータスＲＳＴＡＴＳ及びデータＲＸＤを、第３のクロックＣＬＫ＿ＢのＭ／Ｎ倍の周期でサンプリングすることで、それらを第２のクロックＣＬＫ＿Ｃから第３のクロックＣＬＫ＿Ｂへ同期させることができる。
【００５３】
位相調整モジュール２２３は、メモリー２２３０（図示せず）を備える。位相調整モジュール２２３は、Ｎ／Ｍ倍同期化モジュール２２２からのアクセス要求の属性ＲＡＴＴＲ０と、アドレスＲＡＤ０と、データＲＤ０を入力として、それらをメモリー２２３０に第３のクロックＣＬＫ＿Ｂで一旦、記憶する。そしてメモリー２２３０は、第１のクロックＣＬＫ＿Ａで読み出される。メモリー２２３０から第１のクロックＣＬＫ＿Ａで読み出したアクセス要求の属性をＲＡＴＴＲ１とし、アドレスをＲＡＤ１とし、データをＲＤ１とする。
【００５４】
プロトコル変換モジュール２２４は、位相調整モジュール２２３から入力されるアクセス要求の属性ＲＡＴＴＲ１、アドレスＲＡＤ１、及びデータＲＤ１に応じて、第１のプロトコルに従った形式に変換し、データＭ＿ＲＸＤとして出力する。この際、第１のプロトコルに従った形式とするために必要なヘッダ情報として、例えばヘッダ情報のサイズを示すフォーマット信号などを付与する。
【００５５】
ここでは、制御用デバイス１００から制御対象デバイス３００へのアクセス要求がライト要求であった場合の制御対象デバイス３００からの返答でも、データＭ＿ＲＸＤを出力していたが、これに限定するものではない。例えば、制御対象デバイス３００が要求されたライト処理が完了したことを制御用デバイス１００に対してデータＭ＿ＲＸＤで通知しなくても良い。例えば、ライト処理が完了したことを、プロトコル解析モジュール２１１へ通知することにより、プロトコル解析モジュール２１１は、制御用デバイス１００から第１のバスを介して出力された、次のデータＭ＿ＴＸＤの解析を開始できる。従って、制御用デバイス１００から制御対象デバイス３００へのデータ転送効率を向上することができる。
【００５６】
図９は、受信系統処理ブロック２２０において入力された第２のプロトコルに従った形式のデータＳ＿ＴＸＤから、出力する第１のプロトコルに従った形式のデータＭ＿ＲＸＤの関係を示す。ここで図９においてＯＵＴ（２２１）はプロトコル解析モジュール２２１の出力、ＯＵＴ（２２２）はＭ／Ｎ倍同期化モジュール２２２の出力、及びＯＵＴ（２２３）は位相調整モジュール２２３の出力を表す。図９に示すように、データ転送装置２００の受信系統処理ブロック２２０は、データＳ＿ＴＸＤが入力されると、データＳ＿ＴＸＤのうち制御用デバイス１００へのアクセスに必要な、データＳ＿ＲＸＤに含まれるリードまたはライトを示すアクセス要求のコマンド（Ｈ１１３）や、データＳ＿ＲＸＤの送信元である制御用デバイス１００を示すリクエスタＩＤ（Ｈ１１１）や、リードまたはライトのデータ長（Ｈ１１２）など含む属性（Ｈ１１）と、アドレス（ＡＤＲ）と、データ（ＤＴ）を抽出し、第１のプロトコルに従った形式でデータＭ＿ＲＸＤを出力する。これにより、データ転送装置２００の受信系統処理ブロック２２０の入力側のバスとは異なるプロトコルおよび異なる同期クロックのバスを介したデータの転送ができる。
【００５７】
上記のように、第１のクロックＣＬＫ＿Ａで動作する制御用デバイス１００と、第２のクロックＣＬＫ＿Ｃで動作する制御対象デバイス３００とのデータ通信を、データ転送装置２００を介して転送することで、複雑な非同期回路が必要なくなり、回路規模の削減ができる。
【００５８】
次に、本実施の形態にかかるデータ転送装置と、従来のデータ転送装置との比較について説明する。図１０は、従来のデータ転送装置２０１の構成図である。データ転送装置２０１は、制御用デバイス１００と第１のバス４００を介して接続される。ここで、制御用デバイス１００は、第１のクロックＣＬＫ＿Ａで動作するデバイスである。また、データ転送装置２００は、制御対象デバイス３００と第２のバス５００を介して接続される。ここで、制御対象デバイス３００は、第２のクロックＣＬＫ＿Ｃで動作するデバイスである。また、制御用デバイス１００から制御対象デバイス３００へのデータ送信を処理するブロックを送信系統処理ブロック２３０、制御対象デバイス３００から制御用デバイス１００へのデータ送信を処理するブロックを受信系統処理ブロック２４０として示す。
【００５９】
従来のデータ転送装置２０１では、それぞれの通信プロトコルへの変換を行なうプロトコル変換モジュール２１１、２１４、２２１、及び２２４については上述したプロトコル変換モジュール２１１、２１４、２２１、及び２２４と同様である。
【００６０】
従来のデータ転送装置２０１の送信系統処理ブロック２３０において、同期化モジュール２３１と要求データ生成モジュール２３２とを備える。同様に、従来のデータ転送装置２０１の受信系統処理ブロック２４０において、同期化モジュール２４１と応答データ生成モジュール２４２とを備える。
【００６１】
同期化モジュール２３１は、構成は位相調整モジュール２１２と同じであるが、メモリー２３１０を読み出すための読み出しクロックが異なる。具体的には、読み出しのクロックは第３のクロックＣＬＫ＿Ｂではなく、第２のクロックＣＬＫ＿Ｃを用いる。これにより、メモリー２３１０から読み出したアクセス要求の属性ＴＡＴＴＲ１、アドレスＴＡＤ１、及びデータＴＤ１は第２のクロックＣＬＫ＿Ｃに同期化される。
【００６２】
要求データ生成モジュール２３２は、同期化モジュール２３１からの第２のクロックＣＬＫ＿Ｃに同期したアクセス要求の属性ＴＡＴＴＲ１、アドレスＴＡＤ１、及びデータＴＤ１を入力として、プロトコル変換モジュール２１４が第２のバス５００へデータＳ＿ＲＸＤを出力する際のビット幅で、それらを予め決めた順番となるよう第２のクロックＣＬＫ＿ＣでデータＴＳＹＮＣ＿ＴＸＤを出力する。Ｍ／Ｎ倍同期化モジュール２１３は、第３のクロックＣＬＫ＿Ｂに同期して入力されて第２のクロックＣＬＫ＿Ｃで出力していたが、要求データ生成モジュール２３２は、第２のクロックＣＬＫ＿Ｃに同期して入力されて第２のクロックＣＬＫ＿Ｃで出力する。
【００６３】
同期化モジュール２４１は、構成は位相調整モジュール２２２と同じであるが、メモリー２３１０に書き込むための書き込みクロックが異なる。具体的には、書き込みのクロックは第３のクロックＣＬＫ＿Ｂではなく、第２のクロックＣＬＫ＿Ｃを用いる。また、プロトコル変換モジュール２２１でプロトコル解析された第２のクロックＣＬＫ＿Ｃに同期したステータスＲＳＴＡＴＳ及びデータＲＸＤを入力データとする。これにより、メモリー２３１０から読み出したステータスＲＳＴＡＴＳ１及びデータＲＸＤ１は第１のクロックＣＬＫ＿Ａに同期化される。
【００６４】
応答データ生成モジュール２４２は、同期化モジュール２４１からの第１のクロックＣＬＫ＿Ｃに同期したステータスＲＳＴＡＴＳ１及びデータＲＸＤ１を入力として、データＲＸＤ１を解析し、アクセス要求の属性ＲＡＴＴＲ１、アドレスＲＡＤ１、及びデータＲＤ１を抽出して出力する。
【００６５】
図１１は、図１０に示す従来のデータ転送装置２０１の同期化モジュール２３１での処理のタイミングチャートの一例を示す概略図である。図１１では、同期化モジュール２３１に第１のクロックＣＬＫ＿ＡでデータＴＤ０が入力されるタイミングと、第２のクロックＣＬＫ＿ＣでデータＴＤ１を出力するタイミングとが示されている。
【００６６】
同期化モジュール２３１は、時刻Ｔａｓ１で第１のクロックＣＬＫ＿Ａに同期してデータＴＤ０が入力されると、メモリー２３１０に対してデータのライト命令を示すライトイネーブル信号ＷＲＥＮをアサートし、データＴＤ０を記憶する。
【００６７】
次に、時刻Ｔａｓ２で、メモリー２３１０はデータＴＤ０のライトを完了すると、メモリー２３１０からデータを読み出す際のクロックＣＬＫ＿Ｃに同期させて、ライトが完了したことを示すフラグＦＬＧ＿Ｅを所定のサイクル後にアサートする。同期化モジュール２３１は、フラグＦＬＧ＿Ｅのアサートを検出し、メモリー２３１０へのリード命令を示すリードイネーブル信号ＲＤＥＮをアサートする。
【００６８】
最後に時刻Ｔａｓ３で、メモリー２３１０から読み出したデータが出力されると、同期モジュール２３１は、それをデータＴＤ１として要求データ生成モジュール２３２へ出力する。
【００６９】
上記のように、同期化モジュール２３１は、第１のクロックＣＬＫ＿Ａに同期して入力されたデータＴＤ０をメモリー２３１０にライトし、第２のクロックＣＬＫ＿Ｃでメモリー２３１０から読み出すことで、第１のクロックにおいて１２Ｃｙｃｌｅ程度で、下位ブロックである要求データ生成モジュール２３２へデータＴＤ１を出力する。
【００７０】
一方、図７について上述したように、本実施の形態にかかるデータ転送装置２００の位相調整モジュール２１２であれば、第１のクロックＣＬＫ＿Ａに同期して入力されたデータＴＤ０をメモリー２１２０にライトし、第１のクロックＣＬＫ＿Ａの位相を調整した、第２のクロックＣＬＫ＿ＣのＮ／Ｍ倍のクロックＣＬＫ＿Ｂでメモリー２１２０から読み出すことで、第１のクロックにおいて６Ｃｙｃｌｅ程度で下位ブロックであるＭ／Ｎ倍同期化モジュールへデータＴＤ１を出力できる。
【００７１】
従って、本実施の形態にかかるデータ転送装置２００は従来のデータ転送装置２０１よりも、転送時間を短縮することが可能であることが分かる。
【００７２】
図１２は、図１に示すデータ転送装置の変形例を示す。図１では、制御用デバイス１００とデータ転送装置２０２とは第１のバス４００を介して接続され、制御対象デバイス３００とデータ転送装置２０２とは第２のバス５００を介して接続されていた。図１２に示すデータ転送装置２０２は、制御用デバイス１００とデータ転送装置２０２とは第１のバス４００を介さずに接続され、制御対象デバイス３００とデータ転送装置２０２とは第２のバス５００を介さずに接続されている。さらに、制御用デバイス１００とデータ転送装置２００とは同じプロトコルを用いて通信を行なう。
【００７３】
このような変形例の場合であっても、本実施の形態にかかるデータ転送装置２０２は、制御用デバイス１００が動作する第１のクロックＣＬＫ＿Ａと、制御対象デバイス３００が動作する第１のクロックＣＬＫ＿Ａと異なる第２のクロックＣＬＫ＿Ｃに対して、前記第２のクロックＣＬＫ＿Ｃと逓倍関係または分周関係にありクロック周波数が前記第２のクロックＣＬＫ＿Ｃのクロック周波数Ｆｃよりも前記第１のクロックＣＬＫ＿Ａのクロック周波数Ｆａに近い第３のクロックＣＬＫ＿Ｂを用いることで、サンプリング処理が容易に行なうことができるので、複雑な非同期回路を実装することなく、より転送効率の良いデータの転送を実現するデータ転送装置を得ることが可能になるという効果を奏する。
【００７４】
また、図１２のように、第１のバス及び第２のバスを介さずに、データ転送装置２０２と制御用デバイス１００と、データ転送装置２０２と制御対象デバイス３００とを直接接続することで、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）やＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の内部で非同期設計が必要なモジュールにおいても、複雑な回路の設計をすることなく、非同期回路を実装することができる。
【００７５】
実施の形態２．
実施の形態１では、第１のクロックＣＬＫ＿Ａで動作する制御用デバイス１００と、第１のクロックＣＬＫ＿Ａと異なる第２のクロックＣＬＫ＿Ｃで動作する制御対象デバイス３００との間のデータ転送を実現するデータ転送装置であった。実施の形態２では、一方のデバイスのデータ出力に用いるクロックがさらに異なるデバイスであった場合のデータ転送装置について述べる。
【００７６】
図１３は、本実施の形態にかかるデータ転送装置２０３の構成図である。データ転送装置２０３は、送信系統処理ブロック２１０と、受信系統処理ブロック２５０とを備える。ここで、送信系統処理ブロック２１０は、上述の送信系統処理ブロック２１０と同じ構成、作用をもつため、ここでは説明を省略する。
【００７７】
制御対象デバイス３０１は、受信モジュール３１０と、送信モジュール３２０とを備える。
【００７８】
受信モジュール３１０は、第２のバス５００を介して出力されたデータＳ＿ＲＸＤを入力として、データＳ＿ＲＸＤの内容を解析し、その内容に応じて、制御対象デバイス３０１が保持する又は接続されたメモリー３１００（図示せず）に対して該当するアドレスのデータをリードまたは該当するアドレスでデータをライトする。このとき、データＳ＿ＲＸＤに含まれるアクセス要求がリード要求を示す場合、データＳ＿ＲＸＤに含まれるリードデータ長の分、メモリー３１００からデータをリードする。一方、データＳ＿ＲＸＤに含まれるアクセス要求がライト要求を示す場合、データＳ＿ＲＸＤに含まれるライトデータをメモリー３１００に記憶する。そして、メモリー３１００に対するデータのリードまたはライトが完了すると、送信モジュール３２０へ通知する。リードを行った場合ではリードデータを送信モジュール３２０へ出力し、ライトを行った場合では、ライトが完了したことを示す信号を出力する。この際、受信モジュール３１０は、第２のクロックＣＬＫ＿Ｃで動作する。
【００７９】
制御対象デバイス３０１の送信モジュール３２０は、受信モジュール３１０からの入力に応じて、応答データＳ＿ＴＸＤを生成し、第２のバス５００を介して出力する。応答データＳ＿ＴＸＤは、受信モジュール３１０がリード処理を行った場合は、受信モジュール３１０からのリードデータを含む応答データＳ＿ＴＸＤを、ライト処理を行った場合はメモリー３１００へのライト処理が完了したことを示す信号を含む応答データＳ＿ＴＸＤを出力する。また、この際送信モジュール３２０は、第４のクロックＣＬＫ＿Ｄに同期してデータＳ＿ＴＸＤを出力する。
【００８０】
データ転送装置２０３の受信系統処理ブロック２５０は、プロトコル解析モジュール２２６と、位相調整モジュール２２７と、Ｎ／Ｍ倍同期化モジュール２２２と、位相調整モジュール２２３と、プロトコル変換モジュール２２４とを備える。受信系統処理ブロック２５０は、制御対象デバイス３０１から第２のバス５００を介して出力された、第４のクロックＣＬＫ＿Ｄに同期したデータＳ＿ＴＸＤを入力として、第１のプロトコルに従った形式に変換し、第１のバス４００を介して第１のクロックＣＬＫ＿Ａに同期したデータＭ＿ＲＸＤとして出力する。
【００８１】
受信系統処理ブロック２５０の、プロトコル解析モジュール２２６と、位相調整モジュール２２７以外のモジュールの機能は、実施の形態１と同様であるため、ここでの説明は省略する。
【００８２】
プロトコル解析モジュール２２６は、第４のクロックＣＬＫ＿Ｄに同期した、制御対象デバイス３０１から第２のバス５００を介して出力されたデータＳ＿ＴＸＤを入力とし、第２のプロトコルに従いデータＳ＿ＴＸＤを解析し、データＳ＿ＴＸＤに不正が無いかどうかを示すステータスＲＳＴＡＴＳ０と、制御対象デバイス３０１から入力されたデータＳ＿ＴＸＤのうち、ヘッダ情報等を除いたデータＲＸＤ０を出力する。なお、ステータスＲＳＴＡＴＳ０は、入力されたデータＳ＿ＴＸＤに不正がないかを示す複数種類の信号としても良い。
【００８３】
位相調整モジュール２２７は、メモリー２２７０（図示せず）を備える。位相調整モジュール２２６は、第４のクロックＣＬＫ＿Ｄに同期した、プロトコル解析モジュール２２１からのステータスＲＳＴＡＴＳ０と、データＲＸＤ０を入力として、それらをメモリー２２７０に記憶し、第２のクロックＣＬＫ＿Ｃで読み出し、ステータスＲＳＴＡＴＳ１と、データＲＸＤ１として出力する。
【００８４】
上記のように、データ転送装置２０３の送信系統処理ブロック２１０と受信系統処理ブロック２５０の動作クロックが異なる場合においても、位相調整モジュール２２７を追加することで、回路の大幅な変更無く非同期回路を実装することができる。
【００８５】
以上の説明では、制御対象デバイス３０１が１つの場合について説明したが、このような例に限定されるものではない。制御対象デバイス３０１は、データ転送装置２００に複数接続されていても良い。
【００８６】
図１４は、制御対象デバイス３０１Ａ、３０１Ｂ、及び３０１Ｃの３台が、データ転送装置２０４に接続されている例を示す概略図である。図１４のデータ転送装置２０４は、第１のバス４００を介して制御用デバイス１００と接続され、第２のバス５００Ａを介して制御対象デバイス３０１Ａと接続され、第２のバス５００Ｂを介して制御対象デバイス３０１Ｂと接続され、第２のバス５００Ｃを介して制御対象デバイス３０１Ｃと接続される。第２のバス５００Ａ、第２のバス５００Ｂ、及び第２のバス５００Ｃは、全て同じプロトコルで従うものとする。
【００８７】
図１４のデータ転送装置２０４は、制御用デバイス１００から第１のバス４００を介して出力されるデータＭ＿ＴＸＤを、それぞれ第２のバス５００Ａを介して制御対象デバイス３０１Ａへ出力するための送信系統処理ブロック２１０Ａを備え、第２のバス５００Ｂを介して制御対象デバイス３０１Ｂへ出力するための送信系統処理ブロック２１０Ｂを備え、第２のバス５００Ｃを介して制御対象デバイス３０１Ｃへ出力するための送信系統処理ブロック２１０Ｃを備える。
【００８８】
データ転送装置２０４にバスを介して複数の制御対象デバイス３０１Ａ、３０１Ｂ、及び３０１Ｃが接続される場合、各送信系統処理ブロック２１０Ａ、２１０Ｂ、及び２１０Ｃのプロトコル解析モジュール２１１は、制御対象デバイス１００から第１のバス４００を介して出力されたデータＭ＿ＴＸＤを解析し、データＭ＿ＴＸＤに含まれるアドレス情報を基に自分宛のデータであるか判定する。
【００８９】
送信系統処理ブロック２１０Ａ、２１０Ｂ、及び２１０Ｃのうちいずれかのプロトコル解析モジュール２１１が自分宛のデータであると判定した場合、これ以降の動作は、図１３と同様であるため、ここでの説明を省略する。一方、自分宛のデータでなかった場合、当該プロトコル解析モジュール２１１は、アクセス要求の属性ＴＡＴＴＲ０と、アドレスＴＡＤ０と、ライトデータＴＤ０は出力しない。即ち、制御用デバイス１００から第１のバス４００を介して次のデータＭ＿ＴＸＤが入力されるまで、動作は行われない。
【００９０】
例えば、送信系統処理ブロック２１０Ａのプロトコル解析モジュール２１１が自分宛のデータであると判定した場合、送信系統処理ブロック２１０Ａのプロトコル解析モジュール２１１は、図１３と同様に、第１のプロトコルに従いデータＭ＿ＴＸＤを解析し、制御対象デバイス３０１Ａへのアクセスに必要な、アクセス要求の属性ＴＡＴＴＲ０と、アドレスＴＡＤ０と、制御用デバイス１００からのアクセス要求がライト要求の場合ライトデータＴＤ０を抽出し、出力する。送信系統処理ブロック２１０Ａのプロトコル解析モジュール２１１の後段に接続された各モジュールは、図１３と同様に動作する。反対に、送信系統処理ブロック２１０Ｂ及び２１０Ｃのプロトコル解析モジュール２１１は自分宛のデータではないと判定するため、アクセス要求の属性ＴＡＴＴＲ０、アドレスＴＡＤ０、及びライトデータＴＤ０を出力せず、後段に接続された各モジュールも動作をしない。
【００９１】
次に、第１のバス４００を介して制御用デバイス１００から出力されたデータＭ＿ＴＸＤが、自分宛のデータであると判定した送信系統処理ブロック２１０Ａ、２１０Ｂ、及び２１０Ｃのいずれかと、５００Ａ、５００Ｂ、及び５００Ｃのいずれかの第２のバスを介して接続されている制御対象デバイス３０１Ａ、３０１Ｂ、及び３０１Ｃのいずれかが行う処理は、図１３と同様であるため、ここでの説明を省略する。一方、それ以外については動作を行わない。
【００９２】
例えば、送信系統処理ブロック２１０Ａから第２のバス５００Ａを介してデータＳ＿ＲＸＤが出力された場合、制御対象デバイス３０１Ａは図１３と同様に動作する。反対に、制御対象デバイス３０１Ｂ、３０１Ｃは、データＳ＿ＲＸＤが入力されないため、動作をしない。
【００９３】
最後に、データＳ＿ＴＸＤを出力する制御対象デバイス３０１Ａ、３０１Ｂ、及び３０１Ｃのいずれかと、５００Ａ、５００Ｂ、及び５００Ｃのいずれかの第２のバスを介して接続されている受信系処理ブロック２５０Ａ、２５０Ｂ、及び２５０Ｃのいずれかが行う処理は、図１３と同様であるため、ここでの説明を省略する。一方、それ以外については動作を行わない。
【００９４】
例えば、制御対象デバイス３０１Ａから第２のバス５００Ａを介してデータＳ＿ＴＸＤが出力された場合、受信系処理ブロック２５０Ａは図１３と同様に動作する。反対に、受信系処理ブロック２５０Ｂ及び２５０Ｃは動作をしない。
【００９５】
上述のように、データ転送装置２０４が接続される制御対象デバイス３０１の台数に応じて、送信系統処理ブロック２１０と受信系統処理ブロック２５０を複数備えることで、制御用デバイス１００と複数の制御対象デバイス３０１との間でのデータ転送が可能となる。そのため、データ転送装置２０４に接続される制御対象デバイス３０１の台数に制限が無くなることから、構築するシステム規模の拡大ができる。
【００９６】
データ転送装置２０４の適用例として映像表示システムを説明する。図１５は、コンピュータと表示装置３１とで構成された映像表示システムを示す図である。コンピュータは、データ転送装置２０４と制御用デバイス１００となるＣＰＵとが第１のバス４００を介して接続されたものを備える。表示装置３１は、表示部を有する制御対象デバイス３０１Ａから３０１Ｉまでの９台で構成される。制御対象デバイス３０１Ａから３０１Ｉまでの９台は、それぞれコンピュータ内のデータ転送装置２０４と第２のバス５００Ａから５００Ｉまでを介して接続されている。
【００９７】
図１５の映像表示システムは、再生する映像コンテンツの各フレームを水平方向に３分割、垂直方向に３分割した合計９画面の各画面を、９台の表示部に表示するものである。９台の表示部は、図１６に示す番号に対応付けられるものとする。
【００９８】
図１５の映像表示システムでは、制御用デバイス１００となるＣＰＵ（図示せず）が、再生する映像コンテンツの各フレームを水平方向に３分割、垂直方向に３分割し、コンピュータ内部でＣＰＵが接続されている第１のバス４００（図示せず）を介して、データ転送装置２０４（図示せず）へ分割後の１画面分の映像データを予め決めた一定時間分出力する。ＣＰＵは、第１に対応づけられた表示部３０１Ａには図１６に示すフレームの上段左端のエリアに該当する映像データを一定時間単位で順次出力する。同じように第２〜第９についても行う。
【００９９】
ＣＰＵから第１のバス４００を介して出力された映像データは、データ転送装置２０４に入力され、プロトコル変換された後、データ転送装置２０４から該当する表示位置に対応づけられた表示部へ第２のバスを介して出力される。第１から第９までの各表示部は、映像データが入力されると、それをモニタに表示する。このとき、データＳ＿ＲＸＤにはタイムスタンプが含まれ、各表示装置はそれに応じて映像を出力することで、第１から第９までの表示部が再生する映像を同期することが可能となる。
【０１００】
上記のように、データ転送装置２０４を映像表示システムに適用することで、複数台の表示部からなる大画面の映像表示システムにおいても、各表示部が同期して映像を再生することができる。
【０１０１】
実施の形態３．
本実施の形態では、他の適用例として、印刷システムに適用したデータ転送装置について説明する、図１７は、写真などの画像データや文書などのテキストデータを印刷装置で印刷する印刷システムを示す図である。図１７の印刷システムは、制御用デバイス１００となるコンピュータのＣＰＵ（図示せず）が、コンピュータ内部で第１のバス４００（図示せず）を介してデータ転送装置２０５（図示せず）と接続されており、データ転送装置２０５が第２のバス５００を介して制御対象デバイス３００となる印刷装置と接続されている。
【０１０２】
図１７の印刷システムでは、コンピュータのＣＰＵが、印刷する画像データやテキストデータを出力する。ＣＰＵから第１のバス４００を介して出力された画像データやテキストデータは、データ転送装置２０５に入力され、プロトコル変換された後、データ転送装置２０５から第２のバス５００を介して印刷装置３２に入力される。印刷装置３２は、画像データやテキストデータが入力されると、それを紙などの出力媒体に印刷する。
【０１０３】
図１８は、本実施の形態にかかるデータ転送装置２０５の構成図である。データ転送装置２０５は、設定データ読出しモジュール２１６を備える。ここで、上述の同じ番号が付されている構成要素については、上述の説明と同じ構成、作用をもつため、ここでの説明を省略する。
【０１０４】
設定データ読出しモジュール２１６は、位相調整モジュール２１２からのアクセス要求の属性ＴＡＴＴＲ１、アドレスＴＡＤ１、及びデータＴＤ１を入力として、アドレスＴＡＤ１が印刷装置３２の設定変更を示すアドレスの場合に、メモリー（図示せず）から詳細な設定情報を読み出す。そして、アクセス要求の属性ＴＡＴＴＲ１をＴＡＴＴＲ２として出力し、アドレスＴＡＤ１をＴＡＤ２として出力し、読み出した詳細な設定情報をデータＴＤ２として出力する。
【０１０５】
このとき、アドレスＴＡＤ１は印刷装置３２の設定を変更する場合にのみ使用する設定変更用アドレスとする。印刷装置３２は、データ転送装置２０５から入力されたＳ＿ＲＸＤを解析し、設定変更用アドレスと判断すると、データＳ＿ＲＸＤに含まれる設定情報に従い、設定レジスタの変更処理を行う。
【０１０６】
また、印刷装置３２の各種設定は設定モード別にメモリーに管理される。図１９は、印刷装置３２の各種設定の管理情報を示す。メモリーは、図１９に示すように、モード毎に設定できる複数の設定レジスタのアドレスと設定値を予め記憶している。ＣＰＵは、設定モードを示すメモリーのアドレスをデータＴＤ１として入力する。図１９では、例えばモード１に関する設定として、設定レジスタ１のアドレス値ＡＤＲ（ＲＥＧ１）及び設定レジスタ１の設定値ＳＥＴ（ＲＥＧ１）と、設定レジスタ７のアドレス値ＡＤＲ（ＲＥＧ７）及び設定レジスタ７の設定値ＳＥＴ（ＲＥＧ７）とを含む情報をメモリーの先頭アドレス０ｘ００８０００００に予め記憶していることを示す。
【０１０７】
図２０は、設定データ読出しモジュール２１６の動作のフローチャートを示す。設定データ読出しモジュール２１６は、位相調整モジュール２１２からアクセス要求の属性ＴＡＴＴＲ１とアドレスＴＡＤ１とデータＴＤ１が入力されると、アドレスＴＡＤ１が印刷装置３２の設定変更用アドレスと一致するか判定する（Ｓ１）。
【０１０８】
アドレスＴＡＤ１が印刷装置３２の設定変更用アドレスと一致すると（Ｓ１：ｙｅｓ）、データＴＤ１が示すメモリーのアドレスから、詳細な設定情報を読み出す（Ｓ２）。最後に設定データ読出しモジュール２１６は、アクセス要求の属性ＴＡＴＴＲ１をＴＡＴＴＲ２として出力し、アドレスＴＡＤ１をＴＡＤ２として出力し、読み出した詳細な設定情報をデータＴＤ２として出力する（Ｓ３）。ここで、図２１にデータＴＤ２の例を示す。図２１は、データＴＤ１が０ｘ００８０００００であり、図１９に示すモード１（アドレス０ｘ００８０００００）を読み出した例である。
【０１０９】
一方、アドレスＴＡＤ１が印刷装置３２の設定変更用アドレスと一致しないと（Ｓ１：ｎｏ）、設定データ読出しモジュール２１６は、位相調整モジュール２１２から入力されたアクセス要求の属性ＴＡＴＴＲ１、アドレスＴＡＤ１、及びデータＴＤ１を、それぞれアクセス要求の属性ＴＡＴＴＲ２、アドレスＴＡＤ２、及びデータＴＤ２として出力する。
【０１１０】
上記のように、データ転送装置２０５を印刷システムに適用することで、印刷装置３２の設定を変更する際、ＣＰＵは印刷装置３２の設定モードを示すアドレスを出力するだけでよく、ＣＰＵが印刷装置３２の詳細な設定情報を出力する必要がないため、ＣＰＵの負荷を低減することができる。
【０１１１】
実施の形態４．
実施の形態４では、制御用デバイス１００と制御対象デバイス３００との間の通信において、一方から他方へ連続した領域に複数のデータを続けて転送するデータ転送装置について説明する。
【０１１２】
図２２は、実施の形態４にかかるデータ転送装置２０６の構成図である。データ転送装置２０６は、制御用デバイス１００と第１のバス４００を介して接続される。ここで、制御用デバイス１００は、第１のクロックＣＬＫ＿Ａで動作するデバイスである。また、データ転送装置２０６は、制御対象デバイス３００と第２のバス５００を介して接続される。制御対象デバイス３００は、第２のクロックＣＬＫ＿Ｃで動作するデバイスである。データ転送装置２０６は、送信系統処理ブロック２６０と受信系統処理ブロック２７０とを備え、送信系統処理ブロック２６０と受信系統処理ブロック２７０との間に転送長調整ブロック２８０をさらに備える。
【０１１３】
送信系統処理ブロック２６０は、プロトコル解析モジュール２１１、位相調整モジュール２１２、及びプロトコル変換モジュール２１４を備える。ここで、プロトコル解析モジュール２１１、位相調整モジュール２１２、及びプロトコル変換モジュール２１４については上述のものと同じ作用をするものであるため、説明を省略する。また、送信系統処理ブロック２６０は、位相調整モジュール２１２とプロトコル変換モジュール２１４との間にＭ／Ｎ倍同期化モジュール２６３をさらに備える。
【０１１４】
受信系統処理ブロック２７０は、プロトコル解析モジュール２２１、位相調整モジュール２２３、及びプロトコル変換モジュール２２４を備える。ここで、プロトコル解析モジュール２２１、位相調整モジュール２２３、及びプロトコル変換モジュール２２４については上述のものと同じ作用をするものであるため、説明を省略する。また、受信系統処理ブロック２７０は、位相調整モジュール２２３とプロトコル変換モジュール２２４との間にＮ／Ｍ倍同期化モジュール２７２をさらに備える。
【０１１５】
転送長調整モジュール２８０について説明する。転送長調整モジュール２８０は、送信系統処理ブロック２６０から、プロトコル解析モジュール２１１から出力されるアクセス要求の属性ＴＡＴＴＲ０に含まれる制御用デバイス１００からのアクセス要求のコマンド、リードデータまたはライトデータのデータ長ＴＬＥＮ０（図示せず）を得るとともに、アドレスＴＡＤ０を入力する。ここで、制御用デバイス１００から続けて転送されるデータ長ＴＬＥＮ０はともに同じデータ長である。
【０１１６】
また、受信系統処理ブロック２７０から、プロトコル解析モジュール２２１から出力されるデータＲＸＤに含まれる制御対象デバイス３００からのアクセス要求のコマンド、リードデータまたはライトデータのデータ長ＲＬＥＮ０（図示せず）を得る。ここで、制御対象デバイス３００から続けて転送されるデータ長ＲＬＥＮ０はともに同じデータ長である。
【０１１７】
転送長調整モジュール２８０は、第１のクロックＣＬＫ＿Ａの周波数Ｆａが、第２のクロックＣＬＫ＿Ｃの周波数Ｆｃよりも大きい場合は、ＴＬＥＮ０に係数Ｐを掛けたＴＬＥＮ１’をＭ／Ｎ倍同期化モジュール２６３に出力し、第１のクロックＣＬＫ＿Ａの周波数Ｆａが第２のクロックＣＬＫ＿Ｃの周波数Ｆｃよりも小さい場合は、ＲＬＥＮ０に係数Ｐを掛けたＲＬＥＮ０’をＮ／Ｍ倍同期化モジュール２７２に出力する。係数Ｐは、自然数であって、以下に示す第２式及び第３式を満たす。ここで、ｉｎｔｅｇｅｒ（Ｘ）とは、Ｘの値以下で最大の自然数を表す。また、Ｐ２ＭＡＸＬＥＮとは、第２のプロトコルで許容される最大フレーム長を表し、Ｐ１ＭＡＸＬＥＮとは、第１のプロトコルで許容される最大フレーム長を表す。
【０１１８】
【数２】
0006026001.tif 000003
【０１１９】
【数３】
0006026001.tif 000004
【０１２０】
Ｍ／Ｎ倍同期化モジュール２６３は、転送長調整モジュール２８０から入力したＴＬＥＮ１’にしたがってＴＳＹＮＣ＿ＴＸＤを出力する。Ｎ／Ｍ倍同期化モジュール２７２は、転送長調整モジュール２８０から入力したＲＬＥＮ０’にしたがってＲＡＴＴＲ０を出力する。
【０１２１】
第１のクロックＣＬＫ＿Ａの周波数Ｆａが第２のクロックＣＬＫ＿Ｃの周波数Ｆｃよりも大きい場合のデータ転送装置２０６の動作について、図２３を用いて説明する。
【０１２２】
図２３は、送信系統処理ブロック２６０におけるデータの形式変換の様子を示す図である。ここで、Ｍ＿ＴＸＤ（ｍ）はｍ番目に制御用デバイス１００から送られてきたデータであり、Ｍ＿ＴＸＤ（ｍ＋１）はｍ＋１番目に制御用デバイス１００から送られてきたデータを示す。Ｈ１１１は、データＭ＿ＴＸＤの送信元である制御用デバイス１００を示すリクエスタＩＤである。Ｈ１１２は、データ長Ｍ＿ＴＸＤで送られてきたデータＤＴのデータ長を示す。Ｈ１１３は、リードまたはライトを示すアクセス要求コマンドを示す。ＡＤＲはアドレスを示す。ＤＴはデータを示す。また、ＯＵＴ（２１１）は、プロトコル解析モジュール２１１の出力を示す。ＯＵＴ（２１２）は、位相調整モジュール２１２の出力を示す。そして、ＯＵＴ（２６３）は、Ｍ／Ｎ倍同期化モジュール２６３の出力を示す。
【０１２３】
図２３は、周波数Ｆａが周波数Ｆｃよりも大きい場合に、送信系統処理ブロック２６０の入力データＭ＿ＴＸＤから出力データＳ＿ＲＸＤまでの形式変換の様子を示したものであり、例として、Ｆａ＝１００ＭＨｚ、Ｆｃ＝５０ＭＨｚ、ＴＬＥＮ０（ｍ）＝５１２、ＴＬＥＮ０（ｍ＋１）＝５１２、そしてＰ２ＭＡＸＬＥＮ＝１，５００のときの動作を説明する。図２３は、水平方向に左から右に向かって時間が経過することを表している。
【０１２４】
このとき、Ｆａ＞Ｆｃであるため、第２式に従って（Ｆａ／Ｆｃ）＝２、ｉｎｔｅｇｅｒ（Ｐ２ＭＡＸＬＥＮ／ＴＬＥＮ０）＝ｉｎｔｅｇｅｒ（１５００／５１２）＝２から、係数Ｐは２を得る。
【０１２５】
転送長調整モジュール２８０は、ＴＬＥＮ０＝５１２に係数Ｐ＝２を掛けたＴＬＥＮ１’＝１，０２４をＭ／Ｎ倍同期化モジュール２６３に出力する。
【０１２６】
Ｍ／Ｎ倍同期化モジュール２６３は、アクセス要求の属性ＴＡＴＴＲ１、アドレスＴＡＤ１、データＴＤ１（ｍ）を入力して、第２のクロックＣＬＫ＿Ｃに同期したＴＳＹＮＣ＿ＴＸＤを出力する際に、ＴＡＴＴＲ１に含まれるデータ長をＴＬＥＮ１’に置き換えて、プロトコル変換モジュール２１４に出力する。
【０１２７】
図２３におけるＭ＿ＴＸＤ、ＴＳＹＮＣ＿ＴＸＤ、Ｓ＿ＲＸＤの水平方向の長さは、それぞれ制御デバイス１００、Ｍ／Ｎ倍同期化モジュール２６３、プロトコル変換モジュール２１４が出力する期間を表しており、ＣＬＫ＿Ａに同期して出力されるＭ＿ＴＸＤに対して、ＣＬＫ＿Ｃに同期して出力されるＴＳＹＮＣ＿ＴＸＤおよびＳ＿ＲＸＤは、約２倍の時間を要することを表している。プロトコル変換モジュール２１４は、Ｍ／Ｎ倍同期化モジュール２６３から出力されるＴＳＹＮＣ＿ＴＸＤに応じて、第２のプロトコルの形式に変換し、データＳ＿ＲＸＤとして出力する。
【０１２８】
Ｍ／Ｎ倍同期化モジュール２６３は、データＴＤ１（ｍ）を第３のクロックＣＬＫ＿Ｂから第２のクロックＣＬＫ＿Ｃに同期しなおしてＴＳＹＮＣ＿ＴＸＤとして、時刻Ｔ＿Ｃ１から時間Ｔ＿Ｃ２までの期間にプロトコル変換モジュール２１４へ出力する。時刻Ｔ＿Ｃ２に到達した時点では、Ｍ／Ｎ倍同期化モジュール２６３はデータ長ＴＬＥＮ１（ｍ）のデータＴＤ１’（ｍ）、即ち転送長調整モジュール２８０で生成した新たなデータ長ＴＬＥＮ１’の２分の１のデータを出力し終える。
【０１２９】
Ｍ／Ｎ倍同期化モジュール２６３は、時刻Ｔ＿Ｃ２までの期間に位相調整モジュール２１２から次のデータＴＤ１（ｍ＋１）の一部が入力されていれば、時刻Ｔ＿Ｃ２以降ＴＤ１（ｍ＋１）を第３のクロックＣＬＫ＿Ｂから第２のクロックＣＬＫ＿Ｃに同期しなおして、時刻Ｔ＿Ｃ２から時刻Ｔ＿Ｃ３までの期間にプロトコル変換モジュール２１４へ出力する。第２のバス５００へは、制御用デバイス１００から第１のプロトコルの形式に従って入力される２組のＭ＿ＴＸＤが１組のＳ＿ＲＸＤとして出力される。
【０１３０】
上述のように、第１のデバイスが動作する第１のクロックＣＬＫ＿Ａの周波数Ｆａが第２のデバイスが動作する第２のクロックＣＬＫ＿Ｃの周波数Ｆｃよりも大きい場合、即ち第１のバス速度の方が第２のバス速度より速い場合、第２のバスへ出力するアクセス要求の属性およびヘッダ情報の出力頻度を抑制することで、速度の遅いバスへのオーバーヘッドを削減し、制御用デバイス１００から制御対象デバイス３００への転送効率の向上が可能となる。
【０１３１】
一方、第１のクロックＣＬＫ＿Ａの周波数Ｆａが第２のクロックＣＬＫ＿Ｃの周波数Ｆｃよりも小さい場合のデータ転送装置２０６の動作について、図２４を用いて説明する。
【０１３２】
図２４は、受信系統処理ブロック２７０におけるデータの形式変換の様子を示す図である。ここで、Ｓ＿ＴＸＤ（ｎ）はｎ番目に制御対象デバイス３００から送られてきたデータであり、Ｓ＿ＴＸＤ（ｎ＋１）はｎ＋１番目に制御用デバイス１００から送られてきたデータを示す。ＯＵＴ（２２１）は、プロトコル解析モジュール２２１の出力を示す。ＯＵＴ（２７２）は、Ｎ／Ｍ倍同期化モジュール２７２の出力を示す。そして、ＯＵＴ（２２３）は、位相調整モジュール２２３の出力を示す。
【０１３３】
図２４は、周波数Ｆａが周波数Ｆｃよりも小さい場合に、受信系統処理ブロック２７０の入力データＳ＿ＴＸＤから出力データＭ＿ＲＸＤまでの形式変換の様子を示したものであり、例として、Ｆａ＝５０ＭＨｚ、Ｆｃ＝１００ＭＨｚ、ＲＬＥＮ０（ｎ）＝１，５００、ＲＬＥＮ０（ｎ＋１）＝１，５００、Ｐ１ＭＡＸＬＥＮ＝４，０９６のときの動作を説明する。図２４は、水平方向に左から右に向かって時間が経過することを表している。
【０１３４】
このとき、Ｆａ＜Ｆｃであるため、第３式に従って（Ｆｃ／Ｆａ）＝２、ｉｎｔｅｇｅｒ（Ｐ１ＭＡＸＬＥＮ／ＲＬＥＮ０）＝ｉｎｔｅｇｅｒ（４０９６／１５００）＝２から、係数Ｐは２を得る。
【０１３５】
転送長調整モジュール２８０は、ＲＬＥＮ０＝１，５００に係数Ｐ＝２を掛けたＲＬＥＮ０’＝３，０００をＮ／Ｍ倍同期化モジュール２７２に出力する。
【０１３６】
Ｎ／Ｍ倍同期化モジュール２７２は、ＲＸＤに含まれるデータ長をＲＬＥＮ０’に置き換えてＲＡＴＴＲ０を構成し、位相調整モジュール２２３に出力する。
【０１３７】
図２４におけるＳ＿ＴＸＤ、Ｍ＿ＲＸＤの各要素の水平方向の長さは、それぞれ制御対象デバイス３００、プロトコル変換モジュール２２４が出力する期間を表しており、ＣＬＫ＿Ｃに同期して出力されるＳ＿ＴＸＤに対して、ＣＬＫ＿Ａに同期して出力されるＭ＿ＲＸＤは、それぞれのクロック周波数Ｆｃ、Ｆａの比率に等しく約２倍の時間を要することを表している。
【０１３８】
（Ｆａ／Ｆｃ）＝０．５となり、第１式に基づいて、ＣＬＫ＿Ｂの周波数ＦｂはＦｂ＝０．５×Ｆｃ＝１００ＭＨｚからＦｃと同じ５０ＭＨｚとなる。これによりＮ／Ｍ倍同期化モジュール２７２出力もＭ＿ＲＸＤと同様にＳ＿ＴＸＤの約２倍の時間を要する。
【０１３９】
位相調整モジュール２２３は、データ長ＲＬＥＮ０’を含むアクセス要求の属性ＲＡＴＴＲ０、アドレスＲＡＤ０、データＲＤ０を入力して、第１のクロックＣＬＫ＿Ａに同期したＲＡＴＴＲ１、アドレスＲＡＤ１、データＲＤ１を出力する。
【０１４０】
プロトコル変換モジュール２２４は、位相調整モジュール２２３から出力されるＲＡＴＴＲ１、アドレスＲＡＤ１、データＲＤ１に応じて、第１のプロトコルの形式に変換し、データＭ＿ＲＸＤとして出力する。
【０１４１】
Ｎ／Ｍ倍同期化モジュール２７２は、データＲＤ０（ｎ）を第２のクロックＣＬＫ＿Ｃから第３のクロックＣＬＫ＿Ｂに同期しなおしてＲＤ０として、時刻Ｔ＿Ｂ１から時刻Ｔ＿Ｂ２までの期間に位相調整モジュール２２３へ出力する。時刻Ｔ＿Ｂ２に到達した時点では、Ｎ／Ｍ倍同期化モジュール２７２はデータ長ＲＬＥＮ０のデータＲＤ０（ｎ）、即ち転送長調整モジュール２８０で生成した新たなデータ長ＲＬＥＮ０’の２分の１のデータを出力し終える。
【０１４２】
Ｎ／Ｍ倍同期化モジュール２７２は、時刻Ｔ＿Ｂ２までの期間にプロトコル解析モジュール２２１から次のデータＲＸＤに含まれるデータＲＤ０（ｎ＋１）の一部が入力されていれば、時刻Ｔ＿Ｂ２以降ＲＤ０ｂを第２のクロックＣＬＫ＿Ｃから第３のクロックＣＬＫ＿Ｂに同期しなおしてＲＤ０として、Ｔ＿Ｂ２からＴ＿Ｂ３までの期間に位相調整モジュール２２３へ出力する。ＲＤ０は、位相調整モジュール２２３にて第１のクロックＣＬＫ＿Ａに同期しなおして、さらにプロトコル変換モジュール２２４にて第１のプロトコルの形式に変換し、データＭ＿ＲＸＤとして出力する。第１のバス４００へは、制御対象デバイス３００から第２のプロトコルの形式に従って入力される２組のＳ＿ＴＸＤが１組のＭ＿ＲＸＤとして出力される。
【０１４３】
上述のように、第１のデバイスが動作する第１のクロックＣＬＫ＿Ａの周波数Ｆａが第２のデバイスが動作する第２のクロックＣＬＫ＿Ｃの周波数Ｆｃよりも小さい場合、即ち第１のバス速度の方が第２のバス速度より遅い場合、第１のバスへ出力するアクセス要求の属性およびヘッダ情報の出力頻度を抑制することで、速度の遅いバスへのオーバーヘッドを削減し、制御対象デバイス３００から制御用デバイス１００への転送効率の向上が可能となる。
【符号の説明】
【０１４４】
１００  制御用デバイス
２００  データ転送装置
２１１、２２１  プロトコル解析モジュール
２１２  位相調整モジュール
２１３、２６３  Ｍ／Ｎ倍同期化モジュール
２１４、２２４  プロトコル変換モジュール
２２２、２７２  Ｎ／Ｍ倍同期化モジュール
２２３  位相調整モジュール
２８０  転送長調整モジュール
３００  制御対象デバイス
【図１】
0006026001.tif 000005
【図２】
0006026001.tif 000006
【図３】
0006026001.tif 000007
【図４】
0006026001.tif 000008
【図５】
0006026001.tif 000009
【図６】
0006026001.tif 000010
【図７】
0006026001.tif 000011
【図８】
0006026001.tif 000012
【図９】
0006026001.tif 000013
【図１０】
0006026001.tif 000014
【図１１】
0006026001.tif 000015
【図１２】
0006026001.tif 000016
【図１３】
0006026001.tif 000017
【図１４】
0006026001.tif 000018
【図１５】
0006026001.tif 000019
【図１６】
0006026001.tif 000020
【図１７】
0006026001.tif 000021
【図１８】
0006026001.tif 000022
【図１９】
0006026001.tif 000023
【図２０】
0006026001.tif 000024
【図２１】
0006026001.tif 000025
【図２２】
0006026001.tif 000026
【図２３】
0006026001.tif 000027
【図２４】
0006026001.tif 000028