(57)【要約】【課題】データ転送装置においてデータ転送に必要な動作サイクル数を小さくする。【解決手段】転送レイテンシ情報５９１、５９２により転送元、転送先へのアクセスタイミングを制御するデータ転送制御手段１１０を備えることで、転送元デバイス１２１から出力されるデータを直接転送先デバイス１２２に取り込ませるようにする。これにより、データバッファにデータを一時的に格納するためのデータ転送時間を省略でき、データバッファの削減による回路規模の削減と、データ転送時間の短縮を行なうことができる。【選択図】  図２
2005063351.tif 000002
【特許請求の範囲】
【請求項１】
バスに接続された２つ以上のスレーブデバイス間のデータ転送をバスマスタにより行うデータ転送装置であって、
転送元スレーブデバイスおよび転送先スレーブデバイスの転送情報に応じて、前記転送元スレーブデバイスのデータが前記転送先スレーブデバイスに直接転送されるように前記バスを制御するデータ転送制御手段を備えるデータ転送装置。
【請求項２】
前記データ転送制御手段は、前記転送元スレーブデバイスおよび前記転送先スレーブデバイスの転送レイテンシの差分に応じて前記バスを制御する請求項１記載のデータ転送装置。
【請求項３】
前記データ転送制御手段は、前記転送元スレーブデバイスおよび前記転送先スレーブデバイスから出力される転送情報に応じて前記バスを制御する請求項２記載のデータ転送装置。
【請求項４】
前記データ転送制御手段は、前記転送レイテンシを保持する保持手段を備える請求項２記載のデータ転送装置。
【請求項５】
前記データ転送制御手段は、保持手段に保持した転送レイテンシまたは前記スレーブデバイスから出力される転送情報に応じて前記バスを制御する請求項４記載のデータ転送装置。
【請求項６】
前記データ転送制御手段は、スレーブデバイスの転送レイテンシを制御するためのマスタレディ信号を前記転送元スレーブデバイスまたは前記転送先スレーブデバイスへ送出する請求項２記載のデータ転送装置。
【請求項７】
前記データ転送制御手段は、前記転送レイテンシが少ないスレーブデバイスをウエイトさせるように前記バスを制御する請求項２記載のデータ転送装置。
【請求項８】
前記データ転送制御手段は、前記転送元スレーブデバイスのデータ出力を制御するデータ出力イネーブル信号、および前記転送先スレーブデバイスのアドレス入力を切り替える切り替え信号を送出する請求項２記載のデータ転送装置。
【請求項９】
前記スレーブデバイス間のデータ転送をパイプライン転送およびデータパラレル転送で行う請求項２記載のデータ転送装置。
【請求項１０】
バスに接続された２つ以上のスレーブデバイス間のデータ転送をバスマスタにより行うデータ転送方法であって、
前記転送元スレーブデバイスおよび転送先スレーブデバイスの転送情報を取得する第１のステップと、
前記転送情報に応じて、前記転送元スレーブデバイスのデータが前記転送先スレーブデバイスに直接転送されるように前記バスのアクセスタイミングを制御する第２のステップと、を含むデータ転送方法。
【請求項１１】
前記第２のステップは、
前記転送元スレーブデバイスおよび前記転送先スレーブデバイスの転送レイテンシの差分を算出するステップと、
前記転送元スレーブデバイスの転送レイテンシが前記転送先スレーブデバイスの転送レイテンシより小さい場合、前記転送先スレーブデバイスのデータ入力を開始し、前記転送レイテンシの差分の期間が経過した後、前記転送元スレーブデバイスのデータ出力を行い、前記転送元スレーブデバイスの転送レイテンシが前記転送先スレーブデバイスの転送レイテンシより大きい場合、前記転送元スレーブデバイスのデータ出力を開始し、前記転送レイテンシの差分の期間が経過した後、前記転送先スレーブデバイスのデータ入力を行うステップと、を含む請求項１０記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスに接続された２つ以上のスレーブデバイス間のデータ転送をバスマスタにより行うデータ転送装置および方法に関する。
【背景技術】
【０００２】
従来、この種のデータ転送装置は、バスマスタにデータバッファを備え、転送元スレーブデバイスのアドレスおよび転送先スレーブデバイスのアドレスを指定してデータ転送制御を行う際、データ転送要求があると、転送元のアドレスを基に転送元スレーブデバイスからデータバッファにデータを一時的に格納し、このデータバッファに格納されたデータを転送先のアドレスを基に転送先スレーブデバイスに出力していた（例えば、特許文献１参照）。
【特許文献１】特開平１１−８５６７０号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来のデータ転送装置では、データバッファを設けるので、データバッファ分の実装コストが増加し、また、転送されるデータを一時的にデータバッファに格納するための転送サイクル数を必要とするので、データ転送サイクル数が増加していた。このことは、データ処理を高速化させるために、パイプライン転送を行うデータ転送装置においても、同様に転送サイクル数を増加させる原因となっていた。
【０００４】
本発明は、データバッファを削減し、データ転送に必要な転送サイクル数を少なくすることができるデータ転送装置および方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記のような課題を解決するために、本発明のデータ転送装置は、バスに接続された２つ以上のスレーブデバイス間のデータ転送をバスマスタにより行うデータ転送装置であって、転送元スレーブデバイスおよび転送先スレーブデバイスの転送情報に応じて、前記転送元スレーブデバイスのデータが前記転送先スレーブデバイスに直接転送されるように前記バスを制御するデータ転送制御手段を備えている。
【０００６】
前記データ転送制御手段は、前記転送元スレーブデバイスおよび前記転送先スレーブデバイスの転送レイテンシの差分に応じて前記バスを制御することが望ましい。
【０００７】
その際、前記データ転送制御手段は、前記転送元スレーブデバイスおよび前記転送先スレーブデバイスから出力される転送情報に応じて前記バスを制御するように構成してもよい。
【０００８】
同様に、前記データ転送制御手段は、前記転送レイテンシを保持する保持手段を備えることも望ましい。
【０００９】
さらに、前記データ転送制御手段は、保持手段に保持した転送レイテンシまたは前記スレーブデバイスから出力される転送情報に応じて前記バスを制御するように構成してもよい。
【００１０】
また、前記データ転送制御手段は、スレーブデバイスの転送レイテンシを制御するためのマスタレディ信号を前記転送元スレーブデバイスまたは前記転送先スレーブデバイスへ送出することも望ましい。
【００１１】
さらに、前記データ転送制御手段は、前記転送レイテンシが少ないスレーブデバイスをウエイトさせるように前記バスを制御するように構成してもよい。
【００１２】
また、前記データ転送制御手段は、前記転送元スレーブデバイスのデータ出力を制御するデータ出力イネーブル信号、および前記転送先スレーブデバイスのアドレス入力を切り替える切り替え信号を送出することも望ましい。
【００１３】
その際、前記スレーブデバイス間のデータ転送をパイプライン転送およびデータパラレル転送で行うことが望ましい。
【００１４】
本発明のデータ転送方法は、バスに接続された２つ以上のスレーブデバイス間のデータ転送をバスマスタにより行うデータ転送方法であって、前記転送元スレーブデバイスおよび転送先スレーブデバイスの転送情報を取得する第１のステップと、前記転送情報に応じて、前記転送元スレーブデバイスのデータが前記転送先スレーブデバイスに直接転送されるように前記バスのアクセスタイミングを制御する第２のステップとを含む。
【００１５】
ここで、前記第２のステップは、前記転送元スレーブデバイスおよび前記転送先スレーブデバイスの転送レイテンシの差分を算出するステップと、前記転送元スレーブデバイスの転送レイテンシが前記転送先スレーブデバイスの転送レイテンシより小さい場合、前記転送先スレーブデバイスのデータ入力を開始し、前記転送レイテンシの差分の期間が経過した後、前記転送元スレーブデバイスのデータ出力を行い、前記転送元スレーブデバイスの転送レイテンシが前記転送先スレーブデバイスの転送レイテンシより大きい場合、前記転送元スレーブデバイスのデータ出力を開始し、前記転送レイテンシの差分の期間が経過した後、前記転送先スレーブデバイスのデータ入力を行うステップとを含む。
【発明の効果】
【００１６】
本発明によれば、バスマスタにデータバッファを設けず、バスマスタによるデータ転送制御を行う際、転送元スレーブデバイスから転送先スレーブデバイスに直接データを転送させるように構成することで、バスマスタ内部のデータバッファにデータを格納するためのデータ転送時間を省略でき、データ転送時間を短縮できる。また、データバッファを設けないことにより回路規模を削減でき、実装コストを抑えることができる。このように、データ転送速度の高速化と回路規模の削減との両方の効果を得ることができる。
【００１７】
また、転送方式の異なるデータ転送を連続して行う場合、最適なタイミングでデータ転送を行うことができるので、データ転送効率を高めることができる。
【発明を実施するための最良の形態】
【００１８】
本発明のデータ転送装置およびデータ転送方法の実施の形態について図面を参照しながら説明する。図１は実施の形態１におけるデータ転送装置の概略的な構成を示す図である。データ転送装置は、バスマスタ１００、バススレーブ１２０、アドレスバス１３０およびデータバス１３１から構成される。アドレスバス１３０には、バスマスタ１００およびバススレーブ１２０が接続される。データバス１３１には、バススレーブ１２０が接続される。
【００１９】
バスマスタ１００は、バススレーブ１２０の動作を制御するデータ転送制御手段１１０を有する。このデータ転送制御手段１１０には、転送情報保持部１１１が設けられている。一方、バススレーブ１２０は、任意の複数のスレーブデバイスから構成されるが、ここでは、転送元デバイス１２１および転送先デバイス１２２の２つのスレーブデバイスから構成されている。尚、データ転送制御手段１１０および転送情報保持部１１１の詳細な説明については、後述する。
【００２０】
図２は図１のデータ転送装置の具体的な構成を示す図である。ここでは、バスマスタ１００として、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）に適用された場合を示す。バスマスタとしてのＤＭＡＣ１００は、前述したデータ転送制御手段１１０の他、ＤＭＡレジスタ５００およびアドレス生成回路５３０を有する。ＤＭＡレジスタ５００には、ソースアドレスレジスタ（ＳＡＲ）５０１およびディスティネーションアドレスレジスタ（ＤＡＲ）５０２が設けられており、これらにはＤＭＡ転送動作情報が設定される。また、アドレス生成回路５３０は、転送元デバイス１２１および転送先デバイス１２２に出力されるアドレスを生成する。
【００２１】
データ転送制御手段１１０は、前述した転送情報保持部１１１の他、比較器５１３、レイテンシ差分判定器５１４および制御信号生成回路５２０を有し、アドレス生成回路５３０へのアドレス生成制御信号５９５、バスインターフェース５４０へのバスインターフェース制御信号５９６、および転送元デバイス１２１や転送先デバイス１２２への転送要求コマンド５９７を出力する。
【００２２】
転送情報保持部１１１には、転送元デバイス１２１の転送レイテンシ（転送遅延時間）等の情報が設定される転送情報レジスタＳ５１０、および転送先デバイス１２２の転送レイテンシ等の情報が設定される転送情報レジスタＤ５１１が設けられている。制御信号生成回路５２０には、状態遷移回路５２１が設けられている。
【００２３】
また、データ転送装置には、バスインターフェース５４０が設けられており、このバスインターフェース５４０は、バススレーブ１２０のうち、転送対象となるスレーブデバイスを選択するための選択信号５９８を出力する。
【００２４】
つぎに、データ転送制御手段１１０の動作を示す。転送情報保持部１１１は、ＣＰＵ（図示せず）からデータ転送要求５９０があったとき、転送情報レジスタＳ５１０から供給される転送元デバイス１２１の転送情報５９１、および転送情報レジスタＤ５１１から供給される転送先デバイス１２２の転送情報５９２を比較器５１３に出力する。
【００２５】
転送情報５９１、５９２が比較器５１３に入力されると、比較器５１３は、転送情報５９１、５９２の差分をとるような演算を行う。この演算結果を基に、レイテンシ差分判定部５１４はレイテンシの差分判定を行う。この差分判定結果５９４は制御信号生成回路５２０に入力される。
【００２６】
制御信号生成回路５２０内の状態遷移回路５２１は、差分判定結果５９４に基づいて動作する。そして、制御信号生成回路５２０は、転送元デバイス１２１から出力されるデータを転送先デバイス１２２に直接取り込ませることが可能なタイミングで、バスサイクルを起動し、アドレス生成回路制御信号５９５、バスインターフェース制御信号５９６および転送要求コマンド５９７を生成して出力する。
【００２７】
アドレス生成回路５３０は、アドレス生成回路制御信号５９５のタイミングにしたがって、ソースアドレスレジスタ（ＳＡＲ）５０１およびディスティネーションアドレスレジスタ（ＤＡＲ）５０２にそれぞれ設定されたアドレス値に基づき、アクセスアドレスを生成して出力する。また、バスインターフェース５４０は、バスインターフェース制御信号５９６にしたがって、転送対象デバイスへの選択信号５９８を出力する。このような制御を行うことで、転送元デバイス１２１から出力されたデータは、ＤＭＡＣ１００内のデータバッファなどを経由することなく、転送先デバイス１２２に直接取り込まれる。
【００２８】
実施の形態１におけるデータ転送装置によれば、データバッファを介することなく、転送元デバイスおよび転送先デバイスの異なる転送レイテンシの差分に応じて、最適なタイミングでデータ転送を行うことができる。
【００２９】
図３はデータ転送制御処理手順を示すフローチャートである。まず、ＣＰＵ（図示せず）からデータ転送装置に転送要求が入力されると、データ転送制御を起動する（ステップＳ１）。そして、転送元デバイスおよび転送先デバイスの転送方式を取得する（ステップＳ２）。取得した転送方式に応じて、転送元デバイスおよび転送先デバイスにおけるデータの入出力制御のタイミングが変化し、固定される。
【００３０】
そして、転送元デバイスの転送レイテンシ（α）および転送先デバイスの転送レイテンシ（β）を取得する（ステップＳ３）。取得した転送レイテンシを用いてレイテンシ差分算出処理を行う（ステップＳ４）。このレイテンシ差分算出処理では、δ＝β−αの演算が行われる。レイテンシ差分結果である差分δが正の値であるか否かを判定する（ステップＳ５）。
【００３１】
差分δが正の値である場合、転送先デバイスのデータ入力制御を開始し（ステップＳ６）、転送元デバイスを（β−α）の期間だけウェイトさせる（ステップＳ７）。そして、転送元デバイスのデータ出力制御を開始し、転送元デバイスから転送先デバイスにデータを直接取り込ませる（ステップＳ８）。この後、本処理を終了する。
【００３２】
一方、ステップＳ５で差分δが正の値でない場合、転送元デバイスのデータ出力制御を開始し（ステップＳ９）、転送先デバイスを（α−β）の期間だけウェイトさせる（ステップＳ１０）。そして、転送先デバイスのデータ入力制御を開始し、転送元デバイスから転送先デバイスにデータを直接取り込ませる（ステップＳ１１）。この後、本処理を終了する。尚、本処理は以後の実施の形態においても同様である。また、実施の形態１では、後述するように、差分δが負の値であって、始めに転送元デバイスのデータ出力制御を開始する場合が示される。
【００３３】
つぎに、データ転送動作のタイミングについて示す。図４はデータ転送動作における転送要求コマンド、アドレスバス、データバスおよび状態遷移回路の状態の変化を示すタイミングチャートである。このデータ転送では、転送元デバイスからのデータリードが３サイクル（Ｔ２０１〜Ｔ２０３、Ｔ２０３〜Ｔ２０５）、転送先デバイスへのデータライトが２サイクル（Ｔ２０２〜Ｔ２０３、Ｔ２０４〜Ｔ２０５）である場合が示されている。
【００３４】
バスマスタ（ＤＭＡＣ）１００によるデータ転送制御が起動すると、データ転送制御手段１１０は、転送情報保持部１１１に設定された転送元デバイス１２１のデータ転送方式、転送先デバイス１２２のデータ転送方式、転送元デバイス１２１の転送レイテンシ、転送先デバイス１２２の転送レイテンシ等の転送情報を基に、バスのタイミングを制御する。
【００３５】
すなわち、この場合、転送元デバイスおよび転送先デバイスの両方がパイプライン転送対応かつ固定ウェイトアクセスのものであるので、データ転送制御手段１１０内の状態遷移回路５２１は、転送元デバイスからのデータリードが３サイクル、転送先デバイスへのデータライトが２サイクルであると判断し、転送元デバイス１２１におけるデータの出力タイミングと、転送先デバイス１２２におけるデータの入力タイミングとが同じサイクル（Ｔ２０３、Ｔ２０５）になるように、転送先デバイスへのアクセスタイミングを制御する。
【００３６】
したがって、転送元デバイスからのデータリードが３サイクル、転送先デバイスへのデータライトが２サイクルであるデバイス間のデータ転送では、転送元アドレスを出力するサイクル（Ｔ２０１、Ｔ２０３）の次のサイクル（Ｔ２０２、Ｔ２０４）で転送先アドレスを出力するように制御することで、転送元デバイス１２１におけるデータの出力タイミングと転送先デバイス１２２におけるデータの入力タイミングとが調節され、転送元デバイスから出力されるデータは転送先デバイスに直接取り込まれる。
【００３７】
図５は状態遷移回路５２１の状態遷移を示す図である。図において、ＳＧＯステート（状態）６０４は、ソースアドレス出力タイミングで遷移するステート（状態）である。ＤＧＯステート６１４は、ディスティネーションアドレス出力タイミングで遷移するステート（状態）である。ここで、ソースは転送元を表し、ディスティネーションは転送先を表すものとし、それぞれの用語は同じ定義で使用される。また、ＳＤＲＡＹ−Ａ６０３、ＳＤＲＡＹ−Ｂ６０２、ＳＤＲＡＹ−Ｃ６０１はソース側デバイスのウェイト時に遷移するステート（状態）である。ＤＤＲＡＹ−Ａ６１３、ＤＤＲＡＹ−Ｂ６１２、ＤＤＲＡＹ−Ｃ６１１はディスティネーション側デバイスのウェイト時に遷移するステート（状態）である。
【００３８】
状態遷移回路５２１は、レイテンシ差分判定部５１４のレイテンシ差分判定結果５９４に基づき、ＳＤＲＡＹ−Ａ６０３、ＳＤＲＡＹ−Ｂ６０２、ＳＤＲＡＹ−Ｃ６０１、ＤＤＲＡＹ−Ａ６１３、ＤＤＲＡＹ−Ｂ６１２およびＤＤＲＡＹ−Ｃ６１１のいずれかの状態に遷移し、転送要求コマンド５９７およびアドレス５９９の出力タイミングを遅らせる。
【００３９】
したがって、実施形態１におけるデータ転送動作では、転送レイテンシが転送元デバイスからのリードサイクルよりも転送先デバイスへのライトサイクルの方が１サイクル少ないので、まず、ＳＧＯステート６０４で、転送元デバイスへの転送要求コマンド５９７およびこれに対応するアドレス５９９を出力し、その次のサイクルで、ＤＧＯステート６１４に遷移し、転送先デバイスへの転送要求コマンド５９７およびこれに対応するアドレス５９９を出力する。
【００４０】
このようなデータ転送制御により、転送元デバイス１２１のデータ（１転送語数）を転送先デバイス１２２に格納するまでのサイクル数は３サイクルとなり、これを繰り返しパイプライン転送することにより、データ転送サイクルは１＋２Ｎ（Ｎは転送語数）サイクルとなる。
【００４１】
ここで、実施形態１のデータ転送装置と従来のデータ転送装置におけるデータ転送との相違を示す。図６は従来のデータ転送装置の概略的な構成を示す図である。従来のデータ転送装置におけるバスマスタ３００はデータバッファ３０１を有する。転送元デバイス１２１ａから読み込んだデータは、一旦データバッファ３０１に取り込まれた後、転送先デバイス１２２ａに転送される。
【００４２】
図７は従来のデータ転送動作における転送要求コマンド、アドレスバスおよびデータバスの変化を示すタイミングチャートである。図７では、図４と同様、転送元デバイスからのデータリードが３サイクル（Ｔ４０１〜Ｔ４０３、Ｔ４０４〜Ｔ４０６）、転送先デバイスへのデータライトが２サイクル（Ｔ４０３〜Ｔ４０４、Ｔ４０６〜Ｔ４０７）である場合が示されている。
【００４３】
従来のデータ転送装置では、転送元デバイス１２１ａのデータを転送先デバイス１２２ａに転送する際、必ずデータバッファ３０１を経由するので、転送元デバイス１２１ａからデータバッファ３０１へのデータ転送を行っている間、バスが占有されてしまい、転送先デバイス１２２ａへの転送サイクルに移行できない。したがって、従来のデータ転送装置では、転送元デバイスからのデータを転送先デバイスに格納するまでに４サイクルが費やされ、パイプライン転送の場合、データ転送サイクルは１＋３Ｎ（Ｎは転送語数）サイクルとなる。
【００４４】
図４と図７のタイミングチャートを比較して明らかなように、本実施の形態１のデータ転送装置は、一時的にデータを保持するデータバッファを設けないので、これに費やすデータ転送時間を省略でき、スレーブデバイスに最適なタイミングでデータ転送を行うことができる。したがって、データ転送時間を短縮することができる。また、データ転送に必要な動作サイクル数を少なくできるので、データ転送効率の向上に繋がる。
【００４５】
尚、実施形態１のデータ転送装置のデータ転送動作は、前述したスレーブデバイスを対象とした場合であるが、他の固定ウェイトアクセス数を有するデバイスのデータ転送動作においても、転送元デバイスからのデータのリードサイクル数と転送先デバイスへのデータのライトサイクル数とが異なる場合、転送元デバイスにおけるデータの出力タイミングと転送先デバイスにおけるデータの入力タイミングとが同じサイクルになるように、転送先デバイスへのアドレス出力サイクルを制御することで、データバッファを介さず、高速なデータ転送を実現することができる。
【００４６】
また、実施形態１では、転送元デバイス１２１および転送先デバイス１２２の両方がパイプライン転送対応デバイスであると仮定したが、転送元デバイスおよび転送先デバイスの少なくとも一方がパイプライン転送対応可能なデバイスである限り、本発明を適用することは可能となる。さらに、スレーブデバイスが３つ以上の場合でも、本発明を適用することが可能である。この場合、複数のスレーブデバイスのうち、どのデバイスが転送先になるか、あるいは転送元になるのかを、データ転送制御手段１１０に通知するようにすればよい。例えば、スレーブデバイス毎に一意の識別符号（ＩＤ）を設けておき、それを転送情報保持部１１１に設定することで、複数のスレーブデバイス間の任意のスレーブデバイスの組に対し、本発明を適用することが可能である。
【００４７】
図８は実施の形態２におけるデータ転送装置の具体的な構成を示す図である。実施の形態１と同一の構成要素については、同一の符号を付すことにより、その説明を省略する。実施の形態２では、実施の形態１と同様、バスマスタとしてＤＭＡＣが用いられる。また、実施の形態２では、実施の形態１と異なり、データ転送制御手段７１０内にデータ転送情報保持部が設けられておらず、代わりに転送元デバイス１２１からの転送情報７９１および転送先デバイス１２２からの転送情報７９２がデータ転送制御手段７１０内の比較器５１３に供給される。
【００４８】
また、転送情報７９１、７９２は転送サイクル毎に異なる場合もあり、データ制御部７１０は、転送情報７９１、７９２にしたがって、動的にデータ転送を制御することができる。この他のデータ転送動作は実施の形態１と同様である。
【００４９】
実施形態２のデータ転送装置によれば、転送元デバイスおよび転送先デバイスの転送レイテンシ等の転送情報を予め取得していない、あるいは転送レイテンシがデータ転送毎に変化する場合でも、データバッファを介することなく、最適なタイミングでデータ転送を行うことが可能である。
【００５０】
図９は実施の形態３におけるデータ転送装置の具体的な構成を示す図である。実施の形態１と同一の構成要素については、同一の符号を付すことにより、その説明を省略する。実施形態３では、実施形態１と同様、バスマスタとしてＤＭＡＣが用いられる。
【００５１】
また、実施形態３では、実施形態１と異なり、データ転送制御手段８１０は、転送情報設定レジスタ８５１、転送情報制御回路８５２およびマルチプレクサ８５３を有する。したがって、転送情報制御回路８５２は、ＣＰＵ（図示せず）からデータ転送要求５９０があった場合、転送情報設定レジスタ８５１の設定値に基づき、転送対象となるデバイスの転送情報の参照先を判定し、転送元デバイス１２１および転送先デバイス１２２の転送情報８９０を比較器５１３に出力する。
【００５２】
ここで、転送情報８９０は、転送元デバイスの転送情報が設定された転送情報レジスタＳ５１０の出力である転送情報５９１、転送先デバイスの転送情報が設定された転送情報レジスタＤ５１１の出力である転送情報５９２、転送元デバイス１２１から出力される転送制御情報７９１および転送先デバイス１２２から出力される転送制御情報７９２のうち、転送情報設定レジスタ８５１の設定値に基づく、転送情報制御回路８５２からの指定にしたがってマルチプレクサ８５３で選択され、比較器５１３に供給される。この他のデータ転送動作は前記実施の形態１と同様である。
【００５３】
実施形態３のデータ転送装置によれば、転送レイテンシがデータ転送毎に変動するスレーブデバイスと、転送レイテンシ等の転送情報を出力せず、転送レイテンシが固定されたスレーブデバイスとの間のデータ転送を、データバッファを介することなく、最適なタイミングで行うことができる。
【００５４】
図１０は実施形態４におけるデータ転送装置の概略的な構成を示す図である。実施形態１と同一の構成要素については、同一の符号を付すことにより、その説明を省略する。実施形態４では、実施形態１と同様、バスマスタとしてＤＭＡＣが用いられる。
【００５５】
また、実施形態４における転送元デバイス９２１は、実施形態１の転送元デバイス１２１と異なり、パイプライン転送非対応のスレーブデバイスである。一方、転送先デバイス１２２は、実施形態１と同様、パイプライン転送対応かつ転送レイテンシ制御可能なスレーブデバイスである。
【００５６】
図１１は実施形態４におけるデータ転送装置の具体的な構成を示す図である。実施形態４では、実施形態１と異なり、データ転送制御手段１３１０は、パイプライン転送対応かつ転送レイテンシ制御可能な転送先デバイス１２２に対し、転送レイテンシを制御するためのマスタレディ信号１３９０を出力する。
【００５７】
データ転送制御手段１３１０では、実施形態１と同様、ＣＰＵ（図示せず）からデータ転送要求５９０にしたがって、転送情報５９１、５９２が比較器５１３に入力されると、比較器５１３で演算が行われ、レイテンシ差分判定部５１４はレイテンシ差分判定を行う。
【００５８】
レイテンシ差分判定部５１４からのレイテンシ差分判定結果５９４が制御信号生成回路５２０に出力されると、このレイテンシ差分判定結果５９４に応じて、制御信号生成回路５２０内の状態遷移回路５２１は動作し、転送元デバイス９２１から出力されるデータを転送先デバイス１２２に直接取り込ませるように、アドレス生成回路制御信号５９５、バスインターフェース制御信号５９６および転送要求コマンド５９７を生成して出力する。
【００５９】
実施形態４では、これらの制御信号に加え、パイプライン転送対応可能かつ転送レイテンシ制御可能な転送先デバイス１２２に対し、マスタレディ信号１３９０が出力される。このマスタレディ信号１３９０が出力されると、転送先デバイス１２２は、マスタレディ信号１３９０にしたがって転送レイテンシを遅らせ、データ入力タイミングを調節する。この結果、転送元デバイス９２１から出力されたデータは、転送先デバイス１２２に直接取り込まれるようになる。
【００６０】
実施形態４におけるデータ転送装置によれば、転送元デバイスと転送先デバイスとの転送レイテンシの差に応じて、スレーブデバイスの転送レイテンシを遅らせるので、転送レイテンシの自由度が増し、最小転送レイテンシが同じデバイスであっても、データバッファを介することなく、最適なタイミングでデータ転送を行うことができる。尚、上記実施形態では、マスタレディ信号を転送先デバイスに出力する場合を示したが、転送元デバイスがパイプライン転送対応可能かつ転送レイテンシ制御可能である場合、転送元デバイスにマスタレディ信号を出力するように構成してもよい。さらに、両方のデバイスにマスタレディ信号を出力するように構成してもよい。
【００６１】
図１２はデータ転送動作における転送要求コマンド、アドレスバス、データバス、マスタレディ信号および状態遷移回路の状態の変化を示すタイミングチャートである。転送元デバイスからのデータリードは３サイクル、転送先へのデータライトは最小２サイクルを要するが、マスタレディ信号１３９０によって、データ転送は４サイクルに遅らせる。
【００６２】
バスマスタ１３００によるデータ転送制御が起動すると、状態遷移回路５２１は、転送情報を基に、転送元デバイス９２１がパイプライン転送非対応であり、転送先デバイス１２２がパイプライン転送対応可能かつ転送レイテンシ制御可能であることを判断する。また、転送元デバイス９２１からのデータリードが３サイクル、転送先へのデータライトが最小２サイクルを要するデータ転送であることを判断する。この転送情報には、転送情報保持部１１１に設定された転送元デバイス９２１のデータ転送方式、転送先デバイス１２２のデータ転送方式、転送元デバイス９２１の転送レイテンシ、転送先デバイス１２２の最小転送レイテンシ等が含まれる。
【００６３】
そして、転送元デバイス９２１におけるデータ出力タイミングと転送先デバイス１２２におけるデータ入力タイミングとが同じサイクルになるように、転送先デバイスへのアクセスタイミングを制御する。
【００６４】
すなわち、転送元アドレスを出力する前のサイクルで転送先アドレスを出力し（Ｔ１００２、Ｔ１００６）、転送先アドレスを出力してから３サイクル目（Ｔ１００５、Ｔ１００９）で、マスタレディ信号１３９０をアサート（有効）にする制御を行うことにより、転送元デバイス９２１におけるデータ出力タイミングと転送先デバイス１２２におけるデータ入力タイミングとを調節し、転送元デバイスから出力されるデータを転送先デバイスに直接取り込ませることが可能となる。
【００６５】
このようなデータ転送制御により、転送元デバイス９２１からの１語のデータを転送先デバイス１２２に格納するまでのサイクル数は４サイクルとなる。これを繰り返しパイプライン転送することで、データ転送サイクルは１Ｎ＋３Ｎ（Ｎは転送語数）サイクルとなる。
【００６６】
ここで、従来のデータ転送装置のデータ転送動作と比較する。図１３は従来のデータ転送装置の概略的な構成を示す図である。バスマスタ３００は、データバッファ３０１を有する。転送元デバイス９２１ａから読み込まれたデータは、一旦、バスマスタ３００内部のデータバッファ３０１に取り込まれ、転送先デバイス１２２ａに転送される。
【００６７】
図１４は図１３のデータ転送装置のデータ転送動作における転送要求コマンド、アドレスバスおよびデータバスの変化を示すタイミングチャートである。このデータ転送では、転送元デバイス９２１ａから１語のデータを転送先デバイス１２２ａに格納するまでに５サイクルが費やされる。連続して転送させる場合、データ転送には２Ｎ＋３Ｎ（Ｎは転送語数）サイクルが必要となる。
【００６８】
図１２のタイミングチャートと図１４のタイミングチャートとを比較して明らかなように、実施形態４におけるデータ転送装置は、一時的にデータを保持するデータバッファを設けないので、転送レイテンシを制御することで、最適なタイミングでデータ転送を行うことができ、データ転送時間を短縮できる。したがって、データ転送に必要な動作サイクル数を少なくすることができ、データ転送効率を向上できる。
【００６９】
尚、図１２のデータ転送動作は一例であり、他の転送レイテンシを有するデバイス間のデータ転送動作においても、転送元デバイス９２１におけるデータ出力タイミングと転送先デバイス１２２におけるデータ入力タイミングとが同じサイクルになるように、転送レイテンシを制御することで、データバッファを介さず、高速なデータ転送を実現することが可能である。
【００７０】
また、実施形態４では、転送元デバイス９２１がパイプライン転送非対応であり、転送先デバイス１２２がパイプライン転送対応かつ転送レイテンシ制御可能なデバイスであったが、このような構成に限らず、前述したように、転送元デバイスおよび転送先デバイスの少なくとも一方がパイプライン転送対応可能かつ転送レイテンシ制御可能なデバイスであればよく、本発明は同様に適用可能である。
【００７１】
図１５は実施形態５におけるデータ転送装置の具体的な構成を示す図である。実施形態１と同一の構成要素については、同一の符号を付すことにより、その説明を省略する。実施形態５では、実施形態１と同様、バスマスタとしてＤＭＡＣが用いられる。
【００７２】
また、実施形態５では、実施形態１と異なり、パイプライン転送非対応の転送元デバイス１５２１がバススレーブ１５２０に追加され、３つのスレーブデバイスがアドレスバス１３０およびデータバス１３１に接続されている。また、データ転送制御手段１５１０は、転送開始判断回路１５１１を備え、異なる転送方式のデータ転送が混在している場合、次のデータ転送の開始タイミングを判断する。
【００７３】
転送開始判断回路１５１１は、レイテンシ差分判定部５１４の判定結果１５９０を基に、パイプライン転送であるか、データパラレル転送であるかなど、前のデータ転送および次のデータ転送の転送方式を判断し、これらの転送方式に応じて、次の転送要求コマンド１５９７の出力ウェイトサイクル数を判断し、転送開始信号１５９１を制御信号生成回路５２０に出力する。制御信号生成回路５２０は、転送開始信号１５９１にしたがって、状態遷移回路１５３０を動作させ、転送要求コマンド１５９７を出力する。
【００７４】
図１６はデータ転送動作における転送要求コマンド、アドレスバス、データバスおよび状態遷移回路の状態の変化を示すタイミングチャートである。スレーブデバイス間の連続したデータ転送では、転送元デバイス１２１がパイプライン転送対応であり、そのデータリードは３サイクルを要する。転送元デバイス１５２１はパイプライン転送非対応であり、そのデータリードは２サイクルを要する。転送先デバイス１２２はパイプライン転送対応であり、そのデータライトは４サイクルを要する。
【００７５】
まず、バスマスタ１５００によるデータ転送制御が起動すると、１回目のデータ転送として、転送元デバイス１２１および転送先デバイス１２２間のデータ転送が行われる（Ｔ１４０１〜Ｔ１４０４）。１回目のデータ転送動作中、転送元デバイス１５２１および転送先デバイス１２２間のデータ転送を行うための２回目のデータ転送要求があると、転送開始判断回路１５１１は、１回目と２回目の転送方式の情報を基に、２回目のデータ転送の転送要求コマンド１５９７が出力されるまでのウェイトサイクル数を判断し、転送開始信号１５９１を制御信号生成回路５２０に出力する。そして、状態遷移回路１５３０が動作する。
【００７６】
図１７は状態遷移回路１５３０の状態遷移を示す図である。状態遷移回路１５３０は、転送開始信号１５９１にしたがって、まず１回目のデータ転送の転送先アドレス出力を行うＤＧＯステート６１４（Ｔ１４０１）、次に転送元アドレス出力を行うＳＧＯステート６０４（Ｔ１４０２）に遷移した後、１回目のデータ転送がパイプライン転送であり、２回目のデータ転送がパイプライン非転送であるので、続けてデータ転送動作を行うためにウェイトすることなく、２回目のデータ転送の転送先アドレスを出力するＤＧＯステート６１４（Ｔ１４０３）に遷移する。
【００７７】
この後、転送レイテンシの差により、２回目のデータ転送の転送先アドレス出力を遅らせるためにＳＤＲＡＹ−Ａステート６０３（Ｔ１４０４）に遷移し、さらに転送元アドレス出力を行うＳＧＯステート６０４（Ｔ１４０５）に遷移する。
【００７８】
２回目のデータ転送動作中に、転送元デバイス１２１および転送先デバイス１２２間のデータ転送を行うための３回目のデータ転送要求があると、転送開始判断回路１５１１は、２回目と３回目の転送方式の情報を基に、３回目の転送要求コマンド１５９７が出力されるまでのウェイトサイクル数を判断し、転送開始信号１５９１を制御信号生成回路５２０に出力する。そして、状態遷移回路１５３０が動作する。
【００７９】
状態遷移回路１５３０は、転送開始信号１５９１にしたがって、２回目の転送の転送元アドレス出力を行うＳＧＯステート６０４（Ｔ１４０５）から２回目のデータ転送がパイプライン非転送であるので、２回目のデータ転送が終わるまで３回目のデータ転送のアクセスをウェイトさせるためのＷＡＩＴステート１６０１（Ｔ１４０６）に遷移した後、３回目のデータ転送の転送先アドレスを出力するＤＧＯステート６１４（Ｔ１４０７）に遷移する。
【００８０】
実施形態５におけるデータ転送装置１５００によれば、転送方式の異なる連続したデータ転送において、最適なタイミングでバスサイクルを起動するので、データ転送効率を向上させることができる。尚、上記実施の形態５では、３つのスレーブデバイスが設けられているが、転送方式の異なる４つ以上のスレーブデバイスが設けられていても、同様に実現することができる。
【００８１】
図１８は実施形態６におけるデータ転送装置の具体的な構成を示す図である。実施形態１と同一の構成要素については、同一の符号を付すことにより、その説明を省略する。実施形態６では、実施形態４と同様、バスマスタとしてＤＭＡＣが用いられる。
【００８２】
実施形態６のデータ転送装置では、バスマスタ１８００内のデータ転送制御手段１８１０は、転送先デバイスに出力されるアドレスをデータバス上に出力し、転送元デバイス９２１および転送先デバイス１２２に同時にアクセスする。これにより、実施の形態４に比べてデータ転送速度をさらに向上させることができる。
【００８３】
また、実施形態６では、実施形態４と異なり、データ転送制御手段１８１０は、転送元デバイス９２１または転送先デバイス１２２に出力するアドレスの一方をデータバス１３１に出力してアクセスする際、転送先デバイス１２２にバス切り替え信号１８９０を出力するとともに、データバス１３１上でアドレスとデータが衝突するのを防ぐために、転送元デバイス９２１にデータ出力イネーブル信号１８９１を出力する。
【００８４】
データ転送制御手段１８１０では、ＣＰＵ（図示せず）からデータ転送要求５９０があると、比較器５１３に転送情報５９１、５９２が入力され、比較器５１３で演算が行われる。この演算結果を基に、レイテンシ差分判定部５１４はレイテンシ差分判定を行う。このレイテンシ差分判定結果５９４が制御信号生成回路１８２０に出力されると、制御信号生成回路１８２０内の状態遷移回路５２１は、レイテンシ差分判定結果５９４に応じて動作し、転送元デバイス９２１から出力されるデータを転送先デバイス１２２に直接取り込ませるように、データ転送制御を行う。
【００８５】
データ転送制御では、制御信号生成回路１８２０から、バスインターフェース制御信号５９６、転送要求コマンド５９７、アドレス生成回路制御信号５９５、転送元デバイス９２１へのデータ出力イネーブル信号１８９１、転送先デバイス１２２へのバス切り替え信号１８９０が出力される。アドレス生成回路制御信号５９５は、転送元アドレスや転送先アドレスが出力されるバスの選択制御およびアドレス生成タイミングの制御を行うための信号であり、アドレス生成回路５３０はアドレス生成回路制御信号５９５にしたがって動作する。
【００８６】
データ出力イネーブル信号１８９１は、転送元デバイス９２１に対し、データの出力を制御するための信号であり、具体的に、バスマスタ１８００が転送元デバイスまたは転送先デバイスに出力するアドレスの一方をデータバス１３１に出力してアクセスする際、バスマスタ１８００から出力されるアドレスと転送元デバイス９２１から出力されるデータとが衝突しないように制御するための信号である。転送元デバイス９２１は、このデータ出力イネーブル信号１８９１にしたがって、データバス１３１にデータを出力する。
【００８７】
また、バス切り替え信号１８９０は、転送先デバイス１２２にアクセスするためのアドレスおよびデータの両方がデータバス１３１上に出力されるので、転送先アドレスがデータバス１３１上に出力されるとき、データバス１３１からのアドレスを優先して入力させ、転送元デバイスからのデータがデータバス１３１上に出力されるとき、データバス１３１からのデータを優先して入力させる制御を行うための信号である。転送先デバイス１２２は、バス切り替え信号１８９０にしたがって、使用するバスを切り替える。
【００８８】
図１９はデータ転送動作における転送要求コマンド、アドレスバス、データバス、データ出力イネーブル信号およびバス切り替え信号の変化を示すタイミングチャートである。このデータ転送では、転送元デバイスからのデータリードは３サイクルを要し、転送先デバイスへのデータライトは２サイクルを要する。
【００８９】
バスマスタ１８００によるデータ転送制御が起動すると、データ転送制御手段１８１０は、データ転送情報を基に、転送元デバイス９２１がパイプライン転送非対応かつデータ出力制御可能であり、転送先デバイス１２２がパイプライン転送対応かつバス切り替え可能であるので、転送元デバイスからのデータリードが３サイクル、転送先デバイスへのデータライトが２サイクルであるデバイス間のデータ転送であることを判断する。そして、転送元デバイス９２１におけるデータの出力タイミングと転送先デバイス１２２におけるデータの入力タイミングとが同じサイクルになるように、転送先デバイスへのアクセスタイミングを制御する。データ転送情報には、転送情報保持部１１１に設定された転送元デバイス９２１のデータ転送方式、転送先デバイス１２２のデータ転送方式、転送元デバイス９２１の転送レイテンシ、転送先デバイス１２２の最小転送レイテンシ等の情報が含まれている。
【００９０】
すなわち、最初のサイクル（Ｔ１７０１）で転送元アドレスをアドレスバス１３０に出力し始め、その次のサイクル（Ｔ１７０２）で転送元アドレスの出力と同時に転送先アドレスをデータバス１３１に出力する。このとき、転送先アドレスはデータバス１３１に出力されているので、転送先デバイス１２２は、バス切り替え信号１８９０にしたがって、データバス１３１からアドレスを入力する。
【００９１】
次のサイクル（Ｔ１７０３）でデータ出力イネーブル信号１８９１により転送元デバイス９２１からデータバス１３１に転送されるデータが出力される。このとき、転送されるデータがデータバス１３１に出力されているので、バス接続切り替え１のタイミング（Ｔ１７０２からＴ１７０３の切り替え時）で、バス切り替え信号１８９０にしたがって、データバス１３１からデータを入力する。このように、データバス１３１を使用して転送元アドレスおよび転送先アドレスを同時に出力し、転送元デバイスおよび転送先デバイスに同時にアクセス制御を行うことで、転送元デバイス９２１から出力されるデータが転送先デバイス１２２に直接取り込まれる。
【００９２】
このようなデータ転送制御により、転送元デバイス９２１のデータを転送先デバイス１２２に格納するまでのサイクル数は３サイクルであり、これを繰り返しパイプライン転送することにより、データ転送サイクルは３Ｎ（Ｎは転送語数）サイクルとなる。このデータ転送サイクル数は、同じスレーブデバイスの構成を有する従来例（図１４参照）のデータ転送サイクル数２Ｎ＋３Ｎ（Ｎは転送語数）と比較した場合、大幅に短縮している。さらに、実施形態４（図１２参照）の１Ｎ＋３Ｎ（Ｎは転送語数）と比較しても、効果がある。
【００９３】
実施形態６におけるデータ転送装置１８００によれば、一時的にデータを保持するデータバッファを設けないので、データ転送時間を省略できる。また、転送元デバイスおよび転送先デバイスに対し、データバスを用いて同時にアドレスを出力することで、一方のスレーブデバイスへのアドレス出力サイクル数を省略できるので、更にデータ転送時間を短縮できる。したがって、データ転送に必要な動作サイクル数を少なくすることができ、データ転送効率を向上させることができる。
【００９４】
尚、図１８におけるデータ転送装置のデータ転送動作は一例であり、他の転送レイテンシを有するデバイス間でのデータ転送動作においても、転送元デバイス９２１におけるデータの出力タイミングと転送先デバイス１２２におけるデータの入力タイミングが同じサイクルになるように、アドレス出力タイミングを制御することで、データバッファを介さず、高速なデータ転送を実現することができる。
【００９５】
また、実施形態６では、転送元デバイス９２１がパイプライン転送非対応かつデータ出力制御可能であり、転送先デバイス１２２がパイプライン転送対応かつバス切り替え制御可能であったが、転送元デバイス９２１がデータ出力制御可能なデバイスであり、かつ転送元デバイス９２１および転送先デバイス１２２の少なくとも一方がパイプライン転送対応かつバス切り替え可能なデバイスであってもよい。さらに、実施形態６では、スレーブデバイスがバス切り替え制御およびデータ出力制御を行っているが、バスマスタにバスコントローラを設け、バスマスタがバス切り替え制御およびデータ出力制御を行ってもよい。
【産業上の利用可能性】
【００９６】
本発明のデータ転送装置および方法は、バスマスタにデータバッファを設けず、バスマスタによるデータ転送制御を行う際、転送元スレーブデバイスから転送先スレーブデバイスに直接データを転送させるように構成することで、バスマスタ内部のデータバッファにデータを格納するためのデータ転送時間を省略でき、データ転送時間を短縮できる。また、データバッファを設けないことにより回路規模を削減でき、実装コストを抑えることができる。このように、データ転送速度の高速化と回路規模の削減との両方の効果を得ることができ、バスに接続された２つ以上のスレーブデバイス間のデータ転送をバスマスタにより行うデータ転送装置および方法等として有用である。
【図面の簡単な説明】
【００９７】
【図１】実施の形態１におけるデータ転送装置の概略的な構成を示す図である。
【図２】図１のデータ転送装置の具体的な構成を示す図である。
【図３】データ転送制御処理手順を示すフローチャートである。
【図４】データ転送動作における転送要求コマンド、アドレスバス、データバスおよび状態遷移回路の状態の変化を示すタイミングチャートである。
【図５】状態遷移回路５２１の状態遷移を示す図である。
【図６】従来のデータ転送装置の概略的な構成を示す図である。
【図７】従来のデータ転送動作における転送要求コマンド、アドレスバスおよびデータバスの変化を示すタイミングチャートである。
【図８】実施の形態２におけるデータ転送装置の具体的な構成を示す図である。
【図９】実施の形態３におけるデータ転送装置の具体的な構成を示す図である。
【図１０】実施の形態４におけるデータ転送装置の概略的な構成を示す図である。
【図１１】実施の形態４におけるデータ転送装置の具体的な構成を示す図である。
【図１２】データ転送動作における転送要求コマンド、アドレスバス、データバス、マスタレディ信号および状態遷移回路の状態の変化を示すタイミングチャートである。
【図１３】従来のデータ転送装置の概略的な構成を示す図である。
【図１４】図１３のデータ転送装置のデータ転送動作における転送要求コマンド、アドレスバスおよびデータバスの変化を示すタイミングチャートである。
【図１５】実施の形態５におけるデータ転送装置の具体的な構成を示す図である。
【図１６】データ転送動作における転送要求コマンド、アドレスバス、データバスおよび状態遷移回路の状態の変化を示すタイミングチャートである。
【図１７】状態遷移回路１５３０の状態遷移を示す図である。
【図１８】実施の形態６におけるデータ転送装置の具体的な構成を示す図である。
【図１９】データ転送動作における転送要求コマンド、アドレスバス、データバス、データ出力イネーブル信号およびバス切り替え信号の変化を示すタイミングチャートである。
【符号の説明】
【００９８】
１００  バスマスタ
１１０  データ転送制御手段
１１１  データ転送情報保持部
１２１  転送元デバイス
１２２  転送先デバイス
１３０  アドレスバス
１３１  データバス
５１３  比較器
５１４  レイテンシ差分判定器
５２０  制御信号生成回路
【図１】
2005063351.tif 000003
【図２】
2005063351.tif 000004
【図３】
2005063351.tif 000005
【図４】
2005063351.tif 000006
【図５】
2005063351.tif 000007
【図６】
2005063351.tif 000008
【図７】
2005063351.tif 000009
【図８】
2005063351.tif 000010
【図９】
2005063351.tif 000011
【図１０】
2005063351.tif 000012
【図１１】
2005063351.tif 000013
【図１２】
2005063351.tif 000014
【図１３】
2005063351.tif 000015
【図１４】
2005063351.tif 000016
【図１５】
2005063351.tif 000017
【図１６】
2005063351.tif 000018
【図１７】
2005063351.tif 000019
【図１８】
2005063351.tif 000020
【図１９】
2005063351.tif 000021