(57)【特許請求の範囲】
【請求項１】
転送開始アドレスと転送量を周辺回路より取り込み保持する転送情報保持手段と、前記周辺回路から入力される起動信号によって前記転送情報保持手段に保持されている前記転送開始アドレスと前記転送量から主記憶手段に対するアドレスとバースト数および転送方向を少なくとも含むコマンドを生成して発行するコマンド発行手段と、前記主記憶手段と前記周辺回路との間でデータ転送を行うデータ転送手段と、を備えたデータ転送制御装置において、
一つの前記転送開始アドレスと前記転送量に対応する全てのコマンド発行が完了したことを検出するコマンド発行完了検出手段と、
一つのデータ転送量に対応する前記データ転送手段のデータ転送が終了するまで前記転送量を保持するデータ転送量保持手段と、を備え、
前記コマンド発行手段が、一つの前記コマンドに対するデータ転送の完了を待たずに次の前記コマンドを発行可能であるとともに、前記コマンド発行完了検出手段が一つの前記転送開始アドレスと前記転送量に対応する全てのコマンド発行完了を検出した場合に、次の前記起動信号を受付可能に構成され、
前記転送情報保持手段が、コマンド発行完了検出手段が一つの前記転送開始アドレスと前記転送量に対応する全てのコマンド発行完了を検出した場合に、次の前記転送開始アドレスと前記転送量を取り込み可能に構成されている
ことを特徴とするデータ転送制御装置。
【請求項２】
転送開始アドレスと転送量が、前記起動信号が入力された直後から前記コマンド発行完了検出手段が検出する一つの前記転送開始アドレスと前記転送量に対応する全てのコマンド発行が完了までの間に入力されることを特徴とする請求項１に記載のデータ転送制御装置。
【請求項３】
前記起動信号として、前記データ転送手段によるデータ転送完了後のデータ転送動作の起動に用いる第一の起動信号と、前記コマンド発行完了検出手段が検出する一つの前記転送開始アドレスと前記転送量に対応する全てのコマンド発行が完了後のデータ転送動作の起動に用いる第二の起動信号と、を備えていることを特徴とする請求項１または２に記載のデータ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡコントローラなどのＤＲＡＭとのデータ転送を制御するデータ転送制御装置に関する。
【背景技術】
【０００２】
ＤＲＡＭ（Dynamic Random Access Memory）と周辺装置とがダイレクトにデータ交換を行う際、ＣＰＵなどの中央演算処理装置を介さずにデータ転送を行うＤＭＡ（Direct Memory Access）という方式がしばしば用いられる。ＤＭＡは転送開始アドレスと転送数を指定し、起動すると、転送全体をＤＲＡＭにとって最適なアドレス、データ転送方向、バースト数を指定するコマンドと呼ばれる単位に分割し、コマンド発行とデータ転送を指定された転送数分完了するまで繰り返す。コマンド発行からデータ転送完了までは、一定の遅延が発生することが知られており、近年では、この遅延によるバス使用効率の低下を回避するために、コマンドとデータのフェーズを分離し、コマンドの先投げが可能な構成を持つＤＭＡコントローラ（ＤＭＡＣ）が考案され、既に知られている。
【０００３】
例えば、特許文献１に記載されたデータ転送制御装置は、コマンドの先投げが可能な構成を持つＤＭＡＣのデータ転送効率の向上目的で、キャッシュメモリと入力されたアドレスに対応するデータがキャッシュメモリに存在するか否かを判定する回路を保持し、ＤＲＡＭへのアクセス回数を減らす構成が提案されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した従来のコマンド先投げ機能付きのＤＭＡＣでは、ＤＭＡ起動後の最初のコマンドを発行してからＤＲＡＭにアクセスしてデータを取得するまで遅延時間が長いという問題が依然として残っており、ＤＭＡの起動を複数回実施した場合に、バス使用効率が十分に上がらないという問題があった。
【０００５】
特許文献１は、キャッシュメモリを用いたＤＭＡＣでＤＲＡＭへのアクセス回数を減らすことでデータ転送効率向上をさせているものの、前記したＤＭＡ起動後の最初のコマンドを発行してからＤＲＡＭにアクセスしてデータを取得するまで遅延時間に関する問題については解消できない。
【０００６】
本発明はかかる問題を解決することを目的としている。
【０００７】
すなわち、本発明は、ＤＭＡによる転送を行う際にデータバスの使用効率を従来よりも向上させることができるデータ転送制御装置を提供することを目的としている。
【課題を解決するための手段】
【０００８】
請求項１に記載された発明は、転送開始アドレスと転送量を周辺回路より取り込み保持する転送情報保持手段と、前記周辺回路から入力される起動信号によって前記転送情報保持手段に保持されている前記転送開始アドレスと前記転送量から主記憶手段に対するアドレスとバースト数および転送方向を少なくとも含むコマンドを生成して発行するコマンド発行手段と、前記主記憶手段と前記周辺回路との間でデータ転送を行うデータ転送手段と、を備えたデータ転送制御装置において、一つの前記転送開始アドレスと前記転送量に対応する全てのコマンド発行が完了したことを検出するコマンド発行完了検出手段と、一つのデータ転送量に対応する前記データ転送手段のデータ転送が終了するまで前記転送量を保持するデータ転送量保持手段と、を備え、前記コマンド発行手段が、一つの前記コマンドに対するデータ転送の完了を待たずに次の前記コマンドを発行可能であるとともに、前記コマンド発行完了検出手段が一つの前記転送開始アドレスと前記転送量に対応する全てのコマンド発行完了を検出した場合に、次の前記起動信号を受付可能に構成され、前記転送情報保持手段が、コマンド発行完了検出手段が一つの前記転送開始アドレスと前記転送量に対応する全てのコマンド発行完了を検出した場合に、次の前記転送開始アドレスと前記転送量を取り込み可能に構成されていることを特徴とするデータ転送制御装置である。
【０００９】
請求項２に記載された発明は、請求項１に記載された発明において、転送開始アドレスと転送量が、前記起動信号が入力された直後から前記コマンド発行完了検出手段が検出する一つの前記転送開始アドレスと前記転送量に対応する全てのコマンド発行が完了までの間に入力されることを特徴とする。
【００１０】
請求項３に記載された発明は、請求項１または２に記載された発明において、前記起動信号として、前記データ転送手段によるデータ転送完了後のデータ転送動作の起動に用いる第一の起動信号と、前記コマンド発行完了検出手段が検出する一つの前記転送開始アドレスと前記転送量に対応する全てのコマンド発行が完了後のデータ転送動作の起動に用いる第二の起動信号と、を備えていることを特徴とする。
【発明の効果】
【００１１】
請求項１に記載の発明によれば、コマンド発行完了検出手段で一つの転送開始アドレスと転送量に対応する全てのコマンド発行が完了したことを検出された場合に、コマンド発行手段が次の起動信号を受付可能に構成され、転送情報保持手段が次の転送開始アドレスと転送量を取り込み可能に構成されているので、起動信号による起動後、一つの転送開始アドレスと転送量に対応する全てのコマンド発行が完了した後、主記憶手段からのデータ取得完了を待たずに、次転送の起動信号が受け付けられ、コマンドの発行動作を行うことができるため、データバスの使用効率を今まで以上に高めることができる。
【００１２】
請求項２に記載の発明によれば、転送開始アドレスと転送量が、起動信号が入力された直後からコマンド発行完了検出手段が検出する一つの転送開始アドレスと転送量に対応する全てのコマンド発行が完了までの間に入力可能となるので、転送開始アドレスと転送量の設定できる期間が広がりＤＭＡＣのタイミング制御などのデータ転送の制御が容易となる。
【００１３】
請求項３に記載の発明によれば、起動信号として、データ転送手段によるデータ転送完了後の起動に用いる第一の起動信号と、コマンド発行完了検出手段が検出する一つの転送開始アドレスと転送量に対応する全てのコマンド発行が完了後の起動に用いる第二の起動信号と、を備えているので、ＤＭＡ起動中か否かで起動信号を使い分けることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態にかかるＤＭＡコントローラの構成図である。
【図２】図１に示されたＤＭＡコントローラの先行起動を使用しない場合の動作を示すタイミングチャートである。
【図３】図１に示されたＤＭＡコントローラの先行起動を使用した場合の動作を示すタイミングチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の一実施形態を、図１ないし図３を参照して説明する。図１は、本発明の一実施形態にかかるＤＭＡコントローラの構成図である。図２は、図１に示されたＤＭＡコントローラの先行起動を使用しない場合の動作を示すタイミングチャートである。図３は、図１に示されたＤＭＡコントローラの先行起動を使用した場合の動作を示すタイミングチャートである。
【００１６】
図１に本発明の一実施形態にかかるデータ転送制御装置としてのＤＭＡコントローラ（ＤＭＡＣ）１を示す。図１に示したＤＭＡＣ１は、コマンド用転送開始アドレス保持部２と、コマンド用転送量保持部３と、コマンド制御部４と、データ用転送量保持部５と、データ制御部６と、を備えている。なお、図１中の信号名［＊］は、バス信号であることを示している。
【００１７】
転送情報保持手段としてのコマンド用転送開始アドレス保持部２は、図示しない周辺回路からＤＭＡ転送における転送開始アドレスが入力されるｓｔａｒｔ＿ａｄｄｒ信号を後述するＤＭＡ起動信号（ｎｏｒｍａｌ＿ｋｉｃｋ信号またはｈｏｔ＿ｋｉｃｋ信号）をトリガとして取り込み保持する。
【００１８】
転送情報保持手段としてのコマンド用転送量保持部３は、図示しない周辺回路からＤＭＡ転送における転送量が入力されるｔｒａｎｓ＿ｓｉｚｅ信号を後述するＤＭＡ起動信号（ｎｏｒｍａｌ＿ｋｉｃｋ信号またはｈｏｔ＿ｋｉｃｋ信号）をトリガとして取り込み保持する。
【００１９】
コマンド発行手段、コマンド発行完了検出手段としてのコマンド制御部４は、ＤＭＡ起動信号（ｎｏｒｍａｌ＿ｋｉｃｋ信号またはｈｏｔ＿ｋｉｃｋ信号）をトリガとして、コマンド用転送開始アドレス保持部２が保持している転送開始アドレスと、コマンド用転送量保持部３が保持している転送量と、から主記憶手段としてのＤＲＡＭ８に対するコマンドを生成してＤＲＡＭコントローラ７に出力する。コマンドは、コマンド発行信号（ｃｏｍ＿ｔｒｇ信号）、メモリアドレス（ｃｏｍ＿ａｄｄｒ信号）、バースト数（ｃｏｍ＿ｂｕｒｓｔ信号）、転送方向（ｃｏｍ＿ｒｗ信号  ０:リード、１:ライト）で構成される。
【００２０】
また、コマンド制御部４は、１つのコマンドに対するデータ転送の完了を待たずに次のコマンドを発行可能である。さらに、コマンド制御部４は、１回のＤＭＡ起動信号のデータ転送に関する全てのコマンドを出力すると、コマンド発行完了信号（ｃｏｍ＿ｅｎｄ信号）を周辺回路に対して出力する。
【００２１】
データ転送量保持手段としてのデータ転送量保持部５は、コマンド用転送量保持部３が保持している転送量を、ＤＭＡ起動信号（ｎｏｒｍａｌ＿ｋｉｃｋ信号）またはデータ制御部６が出力するデータ転送完了信号（ｄａｔａ＿ｅｎｄ信号）をトリガとして取り込み保持する。データ転送量保持部５は、転送量をＤＭＡ起動信号としてｎｏｒｍａｌ＿ｋｉｃｋ信号によりＤＭＡＣ１が起動された場合はｎｏｒｍａｌ＿ｋｉｃｋ信号で取り込み、ＤＭＡ起動信号としてｈｏｔ＿ｋｉｃｋ信号によりＤＭＡＣ１が起動された場合はｄａｔａ＿ｅｎｄ信号で取り込む。
【００２２】
データ転送手段としてのデータ制御部６は、ＤＲＡＭ８からＤＲＡＭコントローラ７を介して読み出されたデータをＲＤ＿ＤＡＴＡ＿Ｕ信号により図示しない周辺回路へ出力したり、図示しない周辺回路から入力されるデータをＷＲ＿ＤＡＴＡ＿Ｍ信号によりＤＲＡＭコントローラ７へ出力する。また、データ制御部６は、１回のＤＭＡ起動信号のデータ転送を完了すると、データ転送完了信号（ｄａｔａ＿ｅｎｄ信号）を出力する。
【００２３】
ＤＲＡＭコントローラ７は、ＤＭＡＣ１から入力されるコマンドに基づいてＤＲＡＭ８のリード／ライトの制御および、ＤＲＡＭ８から読み出されたデータをＲＤ＿ＤＡＴＡ＿Ｍ信号によりＤＭＡＣ１へ出力したりＤＭＡＣ１からＷＲ＿ＤＡＴＡ＿Ｍ信号により入力されたデータをＤＲＡＭ８の書き込みデータとして出力する。
【００２４】
ＤＲＡＭ８は、ＤＲＡＭコントローラ７から出力されるコマンドによってリード／ライトが制御されるメモリであり、例えばＤＤＲ  ＳＤＲＡＭ（Double-Data-Rate Synchronous DRAM）などで構成される。
【００２５】
次に、上述した構成のＤＭＡＣ１において、先行起動を使用しない場合（従来と同様の動作をさせた場合）の動作を図２のタイミングチャートを参照して説明する。
【００２６】
図２に示したタイミングチャートは、上から順にＤＭＡＣ１の入力クロックｃｌｏｃｋ信号、周辺回路から入力され第一の起動信号としてのＤＭＡ起動信号であるｎｏｒｍａｌ＿ｋｉｃｋ信号、周辺回路から入力される転送開始アドレスであるｓｔａｒｔ＿ａｄｄｒ［＊］信号、周辺回路から入力される転送量であるｔｒａｎｓ＿ｓｉｚｅ［＊］信号、コマンド用転送開始アドレス保持部２、コマンド用転送量保持部３、ＤＲＡＭコントローラ７へ出力されるコマンド発行信号であるｃｏｍ＿ｔｒｇ信号、ＤＲＡＭコントローラ７へ出力されるコマンドのメモリアドレスであるｃｏｍ＿ａｄｄｒ［＊］信号、ＤＲＡＭコントローラ７への出力されるコマンドのバースト数であるｃｏｍ＿ｂｕｒｓｔ［＊］信号、ＤＲＡＭコントローラ７への出力されるコマンドの転送方向であるｃｏｍ＿ｒｗ信号、コマンド発行完了信号であるｃｏｍ＿ｅｎｄ信号、データ用転送量保持部５、ＤＲＡＭ８からＤＲＡＭコントローラ７経由で読み出されたデータＲＤ＿ＤＡＴＡ＿Ｍ信号、データ転送完了信号ｄａｔａ＿ｅｎｄ信号を表示している。
【００２７】
図２のタイミングチャートにおいて、ＤＭＡＣ１へｎｏｒｍａｌ＿ｋｉｃｋ信号がアサートされてＤＭＡ起動が時刻Ｔ１のタイミングで実施されると、ｓｔａｒｔ＿ａｄｄｒ信号とｔｒａｎｓ＿ｓｉｚｅ信号がコマンド用転送開始アドレス保持部２とコマンド用転送量保持部３にそれぞれ取り込まれ、コマンド制御部４がコマンド用転送開始アドレス保持部２とコマンド用転送量保持部３の値に基づいてコマンドの生成、発行を開始する。
【００２８】
コマンドはｃｏｍ＿ｔｒｇ信号が“Ｈ”のタイミングで発行（有効なコマンドがＤＲＡＭコントローラ７に出力）され、図２の例では、１回のＤＭＡ起動で４回発行されている。コマンド発行の際には、ｃｏｍ＿ａｄｄｒ信号、ｃｏｍ＿ｂｕｒｓｔ信号、ｃｏｍ＿ｒｗ信号も合わせて出力される。各コマンドは、コマンドに対するデータの応答を待たずに、次のコマンドを発行することができる。図中では、２〜４つ目のコマンドは、１つ目のコマンドに対するＲＤ＿ＤＡＴＡ＿Ｍ信号が入力される前に発行されている。最後のコマンド発行時にｃｏｍ＿ｅｎｄ信号がアサートされる。そして、発行されたコマンドに対し、一定期間のレイテンシをもってリードデータ（ＲＤ＿ＤＡＴＡ＿Ｍ信号）がＤＲＡＭコントローラ７より入力される。図２の例では２バーストの場合を示しており、１回のコマンドに対して２個のデータが転送されている。１回のＤＭＡ起動の最後のデータに同期してｄａｔａ＿ｅｎｄ信号がアサートされる。
【００２９】
１回目の起動が終わると、次転送のｓｔａｒｔ＿ａｄｄｒ信号とｔｒａｎｓ＿ｓｉｚｅ信号が入力され、時刻Ｔ２で再びｎｏｒｍａｌ＿ｋｉｃｋ信号がアサートされ、ＤＭＡ起動をすることができる。
【００３０】
次に、上述した構成のＤＭＡＣ１において、先行起動を使用した場合の動作を図３のタイミングチャートを参照して説明する。
【００３１】
図３に示したタイミングチャートは、図２のタイミングチャートに対して周辺回路から入力される第二の起動信号としてのＤＭＡ起動信号ｈｏｔ＿ｋｉｃｋ信号が追加されている。ｈｏｔ＿ｋｉｃｋ信号はｎｏｒｍａｌ＿ｋｉｃｋ信号と同様にＤＭＡ起動を示す信号であるが、１つのＤＭＡ起動におけるｄａｔａ＿ｅｎｄ信号のアサートを待たずに次転送のＤＭＡ起動を行う信号（先行起動信号）である。
【００３２】
図３のタイミングチャートにおいて、１回目の転送は図２と同じである。異なる点は、時刻Ｔ３の１回目の転送のｃｏｍ＿ｅｎｄ信号がアサートされた時点で、次転送のｓｔａｒｔ＿ａｄｄｒ信号とｔｒａｎｓ＿ｓｉｚｅ信号が入力され、ｈｏｔ＿ｋｉｃｋ信号がアサートされている点である。即ち、ｈｏｔ＿ｋｉｃｋ信号は、前転送に対応する全てのコマンド発行が完了後からデータ転送の完了までの間に次転送を起動する際に用いる信号である。
【００３３】
ｈｏｔ＿ｋｉｃｋ信号がアサートされると、ＤＭＡＣ１は前転送のｄａｔａ＿ｅｎｄ信号を待たずにコマンド用転送開始アドレス保持部２、コマンド用転送量保持部３を後進するとともに、コマンド制御部４を動作させてコマンド発行を開始する。即ち、コマンド発行完了を検出した場合に、次の転送開始アドレスと転送量を取り込み、次のＤＭＡ起動信号を受付けている。一方、データ制御部６は、ｈｏｔ＿ｋｉｃｋ信号がアサートされた時点では、前転送のデータ転送が完了していないため、データ用転送量保持部５の更新は行わず、前転送のデータ転送を続ける。即ち、データ制御部６のデータ転送が終了するまで転送量を保持している。そして、時刻Ｔ３でｃｏｍ＿ｅｎｄ信号がアサートされた時点で、次転送のデータ用転送量保持部５の更新を行いデータ転送を開始する。このとき、コマンドはすでに発行されているため、ＤＲＡＭコントローラ７よりＲＤ＿ＤＡＴＡ＿Ｍ信号が入力される時間が通常起動時よりも早くなる。
【００３４】
図２と図３を比較すると、１回目の起動によるＲＤ＿ＤＡＴＡ＿Ｍ信号と２回目の起動によるＲＤ＿ＤＡＴＡ＿Ｍ信号の間の無効データの期間が明らかに短くなっており、バス転送効率が向上していることが分かる。
【００３５】
本発明は、２回目の起動以降のコマンド発行からデータ転送開始までのデータの無効期間を短縮することが目的のため、１回の起動あたりの転送量が少ないほど効果が大きい。転送効率の向上割合は、レイテンシ期間とデータ転送開始から完了までの期間の割合から見積もることができる。例えば、レイテンシ期間が１μ秒で、データ転送期間が１０μ秒の場合は、本発明の先行起動を利用することで、およそレイテンシ期間分の短縮ができるため約１０％の転送効率向上が見込める。
【００３６】
また、ｎｏｒｍａｌ＿ｋｉｃｋ信号とｈｏｔ＿ｋｉｃｋ信号では上述したようにデータ用転送量保持部５の更新タイミングが異なる。そのため、周辺回路はＤＭＡ転送の起動が行われているか否かを監視していずれかの信号によりＤＭＡ起動を行えばよい。
【００３７】
本実施形態によれば、ＤＭＡＣ１でＤＭＡ転送する際に、前転送のＤＲＡＭ８へのコマンド発行完了信号ｃｏｍ＿ｅｎｄ信号がアサートされた時点で先行起動信号ｈｏｔ＿ｋｉｃｋ信号をアサートして次転送のＤＭＡ起動を行い、次転送のデータ用転送量保持部５の更新は、前転送のｄａｔａ＿ｅｎｄ信号がアサートされた時点で行うように構成さているので、ＤＭＡ起動後、前転送の全てのコマンド発行が完了した後、ＤＲＡＭ８からデータ取得完了を待たずに、次転送のＤＭＡ起動を行うので、データバスの使用効率を従来よりも高めることができる。
【００３８】
なお、上述した実施形態では、ｃｏｍ＿ｅｎｄ信号がアサートされた時点で次転送のｓｔａｒｔ＿ａｄｄｒ信号とｔｒａｎｓ＿ｓｉｚｅ信号を入力していたが、ｎｏｒｍａｌ＿ｋｉｃｋ信号またはｈｏｔ＿ｋｉｃｋ信号のアサート後（例えば１クロック後以降など）に入力するようにしても良い。即ち、ＤＭＡ起動信号が入力された直後からコマンド発行完了までの間に入力しても良い。
【００３９】
なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
【符号の説明】
【００４０】
１   ＤＭＡＣ
２   コマンド用転送開始アドレス保持部（転送情報保持手段）
３   コマンド用転送量保持部（転送情報保持手段）
４   コマンド制御部（コマンド発行手段、コマンド発行完了検出手段）
５   データ用転送量保持部（データ転送量保持手段）
６   データ制御部（データ転送手段）
８     ＤＲＡＭ（主記憶手段）
【先行技術文献】
【特許文献】
【００４１】
【特許文献１】特開２００９−２１７６４０号公報
【図１】
0005423483.tif 000002
【図２】
0005423483.tif 000003
【図３】
0005423483.tif 000004