(57)【要約】【課題】独立した複数のバス間でメモリ間のＭＤＡデータ転送を効率よく実行するデータ転送装置を提供する。【解決手段】本発明のデータ転送装置は、複数のバス間でダイレクトメモリアクセスによりデータを転送するＤＭＡＣ１０１ａおよびＤＭＡＣ１０１ｂと、データ転送を指示するコマンドをキューとして保持するコマンドキュー１０６と、コマンドキュー１０６からコマンドを取得するバス情報取得部１０９と、取得されたコマンドに示される転送元または転送先に基づいて、保持されたコマンドをグループ化するグループ化部１０８と、より多くのコマンドが属するグループを優先して、コマンド発行の順番を決定するスケジュール部１１０と、決定された順番に従って、コマンドを発行するセレクタ１１１とを備える。【選択図】  図１
2006318139.tif 000002
【特許請求の範囲】
【請求項１】
独立したバスである第１、第２および第３バスと、第１バスに接続された第１メモリと、第２バスに接続された第２メモリと、第３バスに接続された第３メモリと、第３バスに接続された第４メモリとを有するシステムにおいてデータ転送を行うデータ転送装置であって、
第１メモリと、第３メモリまたは第４メモリとの間でダイレクトメモリアクセスによりデータを転送する第１転送手段と、
第２メモリと、第３メモリまたは第４メモリとの間でダイレクトメモリアクセスによりデータを転送する第２転送手段と、
データ転送を指示するコマンドをキューとして保持する保持手段と、
保持手段に保持されたコマンドを取得する取得手段と、
取得手段により取得されたコマンドに示される転送元または転送先に基づいて、保持されたコマンドをグループ化するグループ化手段と、
グループに優先度を付与し、優先度の高いグループからコマンド発行の順番を決定するスケジュール手段と、
決定された順番に従って、コマンドを第１転送手段または第２転送手段に発行する発行手段と
を備えることを特徴とするデータ転送装置。
【請求項２】
前記スケジュール化手段は、より多くのコマンドが属するグループに高い優先度を付与する
ことを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記グループ化手段は、転送元のメモリ別にグループ化する
ことを特徴とする請求項２記載のデータ転送装置。
【請求項４】
前記グループ化手段は、転送元に第１メモリが指定されたコマンドと、転送元に第２メモリが指定されたコマンドとを別のグループにする
ことを特徴とする請求項３記載のデータ転送装置。
【請求項５】
前記グループ化手段は、転送先のメモリ別にグループ化する
ことを特徴とする請求項２記載のデータ転送装置。
【請求項６】
前記グループ化手段は、転送先に第１メモリが指定されたコマンドと、転送先に第２メモリが指定されたコマンドとを別のグループにする
ことを特徴とする請求項５記載のデータ転送装置。
【請求項７】
前記グループ化手段は、転送元または転送先に第１メモリが指定されたコマンドと、転送元または転送先に第２メモリが指定されたコマンドとを別のグループにする
ことを特徴とする請求項２記載のデータ転送装置。
【請求項８】
前記コマンドは、ポインタと各種パラメータとを含み、
前記取得手段は、先頭のコマンドから順に、ポインタに従って各種パラメータを取得する
ことを特徴とする請求項２〜７のいずれかに記載のデータ転送装置。
【請求項９】
前記コマンドは固定長であり、
前記取得手段は、固定値を増加させることにより次のコマンド位置を判別する
ことを特徴とする請求項８に記載のデータ転送装置。
【請求項１０】
前記コマンドは次のコマンドへのリンクを含み、
前記取得手段は、前記リンクに従って次のコマンド位置を判別する
ことを特徴とする請求項８に記載のデータ転送装置。
【請求項１１】
前記第１メモリは第１バス上のマスターからメモリアクセスコマンドを受け付け、
前記第２メモリは第２バス上のマスターからメモリアクセスコマンドを受け付け、
前記第３および第４メモリは、前記第１転送手段および第２転送手段のみからメモリアクセスコマンドを受け付ける
ことを特徴とする請求項８に記載のデータ転送装置。
【請求項１２】
前記第１メモリは第２メモリよりも優先度が高く、
前記グループ化手段は、優先度別にグループ化する
ことを特徴とする請求項１１に記載のデータ転送装置。
【請求項１３】
前記データ転送装置は、さらに、第１転送手段または第２転送手段における実行中のコマンドを一時的に退避する退避手段を備える
ことを特徴とする請求項８に記載のデータ転送装置。
【請求項１４】
前記スケジュール手段は、第１転送手段または第２転送手段における実行中のコマンドと、保持手段に保持されたコマンドとを比較して、実行中のコマンドを退避すべきか否かを決定する
ことを特徴とする請求項１３に記載のデータ転送装置。
【請求項１５】
前記スケジュール手段は、第１転送手段または第２転送手段における実行中のコマンドの残り転送サイズと、保持手段に保持された先頭コマンドの転送サイズとに応じて、退避すべきか否かを決定する
ことを特徴とする請求項１３に記載のデータ転送装置。
【請求項１６】
前記コマンドはデータ転送を完了すべき時刻を含み、
前記スケジュール手段は、第１転送手段または第２転送手段における実行中のコマンドのデータ転送が完了すべき時刻と、残り時間とに基づいて、退避すべきか否かを決定する
ことを特徴とする請求項１３に記載のデータ転送装置。
【請求項１７】
前記データ転送装置は、さらに、
保持手段に保持されたいずれかのコマンドを２つ以上のコマンドに分割する分割手段を
備えることを特徴とする請求項８に記載のデータ転送装置。
【請求項１８】
前記データ転送装置は、画像を表すフレームを矩形領域毎に処理する装置に備えられ、
前記分割手段は、前記矩形領域がフレーム境界にまたがる場合に、フレーム内データを転送するフレーム内コマンドと、フレーム外データを転送するフレーム外コマンドとに分割する
ことを特徴とする請求項１７に記載のデータ転送装置。
【請求項１９】
前記フレーム外コマンドは、転送先メモリに対してフレーム枠を示す情報のみを書き込むことを指示する
ことを特徴とする請求項１８に記載のデータ転送装置。
【請求項２０】
前記分割手段は、転送元メモリにおける矩形領域を２以上の小領域に分割し、小領域毎のコマンドに分割する
ことを特徴とする請求項１７に記載のデータ転送装置。
【請求項２１】
前記データ転送装置は、さらに、
第１転送手段または第２転送手段において実行すべきコマンドが存在しない場合に、当該第１転送手段または第２転送手段に対するクロック供給を停止するクロック停止手段を備える
ことを特徴とする請求項８に記載のデータ転送装置。
【請求項２２】
前記クロック停止手段は、保持手段にコマンドが保持されているが、先頭コマンドが発行不可の場合にクロックを停止する
ことを特徴とする請求項２１に記載のデータ転送装置。
【請求項２３】
独立したバスである第１、第２および第３バスと、第１バスに接続された第１メモリと、第２バスに接続された第２メモリと、第３バスに接続された第３メモリと、第３バスに接続された第４メモリと、第１メモリと第３メモリまたは第４メモリとの間でダイレクトメモリアクセスによりデータを転送する第１転送部と、第２メモリと第３メモリまたは第４メモリとの間でダイレクトメモリアクセスによりデータを転送する第２転送部と、データ転送を指示するコマンドをキューとして保持する保持部とを有するシステムにおいてデータ転送を行うデータ転送方法であって、
保持部に保持されたコマンドを取得するステップと、
取得されたコマンドに示される転送元または転送先に基づいて、保持されたコマンドをグループ化するステップと、
より多くのコマンドが属するグループを優先して、コマンド発行の順番を決定するステップと、
決定された順番に従って、コマンドを第１転送手段または第２転送手段に発行するステップと
を有することを特徴とするデータ転送方法。
【請求項２４】
独立したバスである第１、第２および第３バスと、第１バスに接続された第１メモリと、第２バスに接続された第２メモリと、第３バスに接続された第３メモリと、第３バスに接続された第４メモリと、第１メモリと第３メモリまたは第４メモリとの間でダイレクトメモリアクセスによりデータを転送する第１転送部と、第２メモリと第３メモリまたは第４メモリとの間でダイレクトメモリアクセスによりデータを転送する第２転送部と、データ転送を指示するコマンドをキューとして保持する保持部とを有するシステムにおいてデータ転送を実行させるプログラムであって、
保持部に保持されたコマンドを取得するステップと、
取得されたコマンドに示される転送元または転送先に基づいて、保持されたコマンドをグループ化するステップと、
より多くのコマンドが属するグループを優先して、コマンド発行の順番を決定するステップと、
決定された順番に従って、コマンドを第１転送手段または第２転送手段に発行するステップと
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はダイレクトメモリアクセス（以下ＤＭＡと略す）によりデータを転送するデータ転送装置、データ転送方法およびプログラムに関する。
【背景技術】
【０００２】
例えば、特許文献1には、複数の周辺装置とメモリとの間でＤＭＡによるデータ転送を制御するＤＭＡ転送制御装置を開示されている。このＤＭＡ転送制御装置は複数のチャネルを有し、各チャネルには周辺装置が割り当てられている。各周辺装置とメモリとは１つのバスに接続されている。ＤＭＡ転送制御装置は、複数の周辺装置からＤＭＡリクエストが競合する場合に、それらを調停する。すなわり、複数のチャネルはグループ化され、優先度の高いグループのＤＭＡリクエストからＤＭＡ転送が実行される。優先度の低いグループのＤＭＡリクエストは、優先度の高いグループのＤＭＡリクエストが存在しない場合にＤＭＡ転送が実行される。各グループ内のＤＭＡリクエストに対しては循環的にＤＭＡ転送が実行される。
【０００３】
これによりグループ間では優先度のＤＭＡ転送が実行される。また、各グループ内では特定チャネルのみにＤＭＡ転送が独占されることなく均一に実行される。
【特許文献１】特開平５−２０４８３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術によれば、単一のバス上でのＤＭＡ転送についてチャネル間の優先度を制御しているが、近年のメディアプロセッサ等では、独立した複数のバス上でのＤＭＡ転送を効率よく実行することが要求されている。
【０００５】
また、上記従来技術によれば、周辺装置とメモリ間のデータ転送を制御しているが、近年のメディアプロセッサ等では、独立した複数のバスのメモリ間でのＤＭＡ転送の効率化が必要とされている。
【０００６】
上記課題に鑑み本発明は、独立した複数のバス間でメモリ間のＤＭＡデータ転送を効率よく実行するデータ転送装置、データ転送方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明のデータ転送装置は、独立したバスである第１、第２および第３バスと、第１バスに接続された第１メモリと、第２バスに接続された第２メモリと、第３バスに接続された第３メモリと、第３バスに接続された第４メモリとを有するシステムにおいてデータ転送を行うデータ転送装置であって、第１メモリと、第３メモリまたは第４メモリとの間でダイレクトメモリアクセスによりデータを転送する第１転送手段と、第２メモリと、第３メモリまたは第４メモリとの間でダイレクトメモリアクセスによりデータを転送する第２転送手段と、データ転送を指示するコマンドをキューとして保持する保持手段と、保持手段に保持されたコマンドを取得する取得手段と、取得手段により取得されたコマンドに示される転送元または転送先に基づいて、保持されたコマンドをグループ化するグループ化手段と、グループに優先度を付与し、優先度の高いグループからコマンド発行の順番を決定するスケジュール手段と、決定された順番に従って、コマンドを第１転送手段または第２転送手段に発行する発行手段とを備える。
【０００８】
ここで、前記スケジュール化手段は、より多くのコマンドが属するグループに高い優先度を付与するようにしてもよい。
【０００９】
この構成によれば、独立した３つのバスのそれぞれに接続されたメモリ間で、第１転送手段と第２転送手段とが独立してＤＭＡデータ転送をする場合に、３つのバス全体での転送効率を向上させることができる。具体的には、第１転送手段および第２転送手段は、第３メモリまたは第４メモリを対象とするＤＭＡデータ転送において競合が生じ得るが、スケジュール手段においてより多くのコマンドが属するグループを優先することにより、ＤＭＡデータ転送が競合した場合に、コマンド全体のＤＭＡ転送時間を短縮し、バスの使用効率を向上させることができる。
ここで、前記グループ化手段は、転送元のメモリ別にグループ化するようにしてもよい。
【００１０】
この構成によれば、転送パス（転送元と転送先）における転送先が固定的に決まっている場合に、グループ化手段によりグループ化の効率を向上させることができる。
【００１１】
ここで、前記グループ化手段は、転送元に第１メモリが指定されたコマンドと、転送元に第２メモリが指定されたコマンドとを別のグループにするようにしてもよい。
【００１２】
この構成によれば、例えば第１メモリおよび第２メモリの転送先が第３メモリまたは第４メモリに固定的に決まっている場合に、グループ化手段によりグループ化の効率を向上させることができる。
【００１３】
ここで、前記グループ化手段は、転送先のメモリ別にグループ化するようにしてもよい。
【００１４】
この構成によれば、転送パスにおける転送元が固定的に決まっている場合に、グループ化手段によりグループ化の効率を向上させることができる。
【００１５】
ここで、前記グループ化手段は、転送先に第１メモリが指定されたコマンドと、転送先に第２メモリが指定されたコマンドとを別のグループにするようにしてもよい。
【００１６】
この構成によれば、例えば第１メモリおよび第２メモリへの転送元が第３メモリまたは第４メモリに固定的に決まっている場合に、グループ化手段によりグループ化の効率を向上させることができる。
【００１７】
ここで、前記グループ化手段は、転送元または転送先に第１メモリが指定されたコマンドと、転送元または転送先に第２メモリが指定されたコマンドとを別のグループにするようにしてもよい。
【００１８】
この構成によれば、第１メモリおよび第２メモリが場合によって転送元にも転送先にもなり得る場合に、グループ化手段によりグループ化の効率を向上させることができる。
【００１９】
ここで、前記コマンドは、ポインタと各種パラメータとを含み、前記取得手段は、先頭のコマンドから順に、ポインタに従って各種パラメータを取得するようにしてもよい。
【００２０】
ここで、前記コマンドは固定長であり、前記取得手段は、固定値を増加させることにより次のコマンド位置を判別するようにしてもよい。
【００２１】
この構成によれば、保持手段に保持された全てのコマンドを順次取得することを、簡単なポインタ操作で実現することができる。
【００２２】
ここで、前記コマンドは次のコマンドへのリンクを含み、前記取得手段は、前記リンクに従って次のコマンド位置を判別するようにしてもよい。
【００２３】
この構成によれば、保持手段に保持された全てのコマンドを順次取得することを、コマンドが可変長であっても、リンクをたどるというポインタ操作で実現することができる。
【００２４】
ここで、前記第１メモリは第１バス上のマスターからメモリアクセスコマンドを受け付け、前記第２メモリは第２バス上のマスターからメモリアクセスコマンドを受け付け、前記第３および第４メモリは、前記第１転送手段および第２転送手段のみからメモリアクセスコマンドを受け付けるようにしてもよい。
【００２５】
ここで、前記第１メモリは第２メモリよりも優先度が高く、前記グループ化手段は、優先度別にグループ化するようにしてもよい。
【００２６】
この構成によれば、第１メモリおよび第２メモリは、それぞれ他のマスターと共有される場合に、第１から第３のバス全体でもＤＭＡデータ転送を効率よく行うことができる。
【００２７】
ここで、前記データ転送装置は、さらに、第１転送手段または第２転送手段における実行中のコマンドを一時的に退避する退避手段を備えるようにしてもよい。
【００２８】
この構成によれば、例えば実行レイテンシ（データ転送の時間）が遅い場合に、必要に応じて、実行中のコマンドを一時的に退避することができる。
【００２９】
ここで、前記スケジュール手段は、第１転送手段または第２転送手段における実行中のコマンドと、保持手段に保持されたコマンドとを比較して、実行中のコマンドを退避すべきか否かを決定するようにしてもよい。
【００３０】
ここで、前記スケジュール手段は、第１転送手段または第２転送手段における実行中のコマンドの残り転送サイズと、保持手段に保持された先頭コマンドの転送サイズとに応じて、退避すべきか否かを決定するようにしてもよい。
【００３１】
ここで、前記コマンドはデータ転送を完了すべき時刻を含み、
前記スケジュール手段は、第１転送手段または第２転送手段における実行中のコマンドのデータ転送が完了すべき時刻と、残り時間とに基づいて、退避すべきか否かを決定するようにしてもよい。
【００３２】
ここで、前記データ転送装置は、さらに、保持手段に保持されたいずれかのコマンドを２つ以上のコマンドに分割する分割手段を備えるようにしてもよい。
【００３３】
ここで、前記データ転送装置は、画像を表すフレームを矩形領域毎に処理する装置に備えられ、前記分割手段は、前記矩形領域がフレーム境界にまたがる場合に、フレーム内データを転送するフレーム内コマンドと、フレーム外データを転送するフレーム外コマンドとに分割するようにしてもよい。
【００３４】
ここで、前記フレーム外コマンドは、転送先メモリに対してフレーム枠を示す情報のみを書き込むことを指示するようにしてもよい。
【００３５】
この構成によれば、フレーム内データのみを効率よくＤＭＡデータ転送することができる。加えて、フレーム外データとして無効なデータを転送しないので、データ転送効率を向上させることができる。
【００３６】
ここで、前記分割手段は、転送元メモリにおける矩形領域を２以上の小領域に分割し、小領域毎のコマンドに分割するようにしてもよい。
【００３７】
この構成によれば、例えば、小領域のアクセスサイズを転送先メモリのデータ幅にすることにより、データ転送効率を向上させることができる。
【００３８】
ここで、前記データ転送装置は、さらに、第１転送手段または第２転送手段において実行すべきコマンドが存在しない場合に、当該第１転送手段または第２転送手段に対するクロック供給を停止するクロック停止手段を備えるようにしてもよい。
【００３９】
ここで、前記クロック停止手段は、保持手段にコマンドが保持されているが、先頭コマンドが発行不可の場合にクロックを停止するようにしてもよい。
【００４０】
この構成によれば、データ転送装置の消費電力を節約することができ、特に携帯電話機やＰＤＡ等にデータ転送装置が備えられる場合には電池による駆動時間を延ばすことができる。
【００４１】
また、本発明のデータ転送方法およびプログラムについても上記と同様であるので、詳細は省略する。
【発明の効果】
【００４２】
以上のように本発明のデータ転送装置によれば、独立した３つのバスのそれぞれに接続されたメモリ間で、第１転送手段と第２転送手段とが独立してＤＭＡデータ転送をする場合に、３つのバス全体での転送効率を向上させることができる。具体的には、第１転送手段および第２転送手段は、第３メモリまたは第４メモリを対象とするＤＭＡデータ転送において競合が生じ得るが、スケジュール手段においてより多くのコマンドが属するグループを優先することにより、ＤＭＡデータ転送が競合した場合に、コマンド全体のＤＭＡ転送時間を短縮し、バスの使用効率を向上させることができる。
【００４３】
また、転送パス（転送元と転送先）における転送先が固定的に決まっている場合、例えば第１メモリおよび第２メモリの転送先が第３メモリまたは第４メモリに固定的に決まっている場合に、グループ化手段によりグループ化の効率を向上させることができる。
【００４４】
また、転送パスにおける転送元が固定的に決まっている場合に、例えば第１メモリおよび第２メモリへの転送元が第３メモリまたは第４メモリに固定的に決まっている場合に、グループ化手段によりグループ化の効率を向上させることができる。
【００４５】
また、第１メモリおよび第２メモリが場合によって転送元にも転送先にもなり得る場合に、グループ化手段によりグループ化の効率を向上させることができる。
【００４６】
また、全てのコマンドから情報を取得することを、簡単なポインタ操作や、リンクをたどるというポインタ操作によって実現することができる。
【００４７】
また、例えば実行レイテンシ（データ転送の時間）が遅い場合に、必要に応じて、実行中のコマンドを一時的に退避することができる。
【００４８】
また、コマンド分割により、データ転送効率を向上させることができる。
【００４９】
また、消費電力を節約することができる。
【発明を実施するための最良の形態】
【００５０】
（実施の形態１）
図１は、本発明の実施の形態１におけるＤＭＡデータ転送装置（以下データ転送装置と呼ぶ。）の構成を示すブロック図である。このデータ転送装置は、ＤＭＡ実行部１０１、メモリＡ１０２、メモリＢ１０３、メモリＣ１０４、メモリＤ１０５、コマンドキュー１０６、コマンド情報取得部１０７、グループ化部１０８、バス情報取得部１０９、スケジュール部１１０、セレクタ１１１を備える。
【００５１】
ＤＭＡ実行部１０１は、ＤＭＡＣ１０１ａとＤＭＡＣ１０１ｂとを備え、メモリＡ１０２、メモリＢ１０３、メモリＣ１０４、メモリＤ１０５間のＤＭＡデータ転送を実行する。メモリＡ１０２に接続された第１バス、メモリＢ１０３に接続された第２バス、メモリＣ１０４およびメモリＤ１０５に接続された第３バスはそれぞれ独立したバスである。
【００５２】
図２ＡはメモリＡ１０２〜メモリＤ１０５の説明図である。同図のように、メモリＡ１０２およびメモリＢ１０３は共有メモリである。つまり、メモリＡ１０２は第１バス上のマスターからメモリアクセスコマンドを受け付け、メモリＢ１０３は第２バス上のマスターからメモリアクセスコマンドを受け付ける。それゆえ、メモリＡ１０２はＤＭＡＣ１０１ａ以外からも占有されることがあり、ＤＭＡＣ１０１ａがメモリアクセスコマンドを出力したとき必ず占有できるとは限らない。メモリＢ１０３もＤＭＡＣ１０１ｂ以外からも占有されることがあり、ＤＭＡＣ１０１ｂがメモリアクセスコマンドを出力したとき必ず占有できるとは限らない。
【００５３】
図２ＢはＤＭＡＣ１０１ａによるデータ転送の説明図である。同図のように、ＤＭＡＣ１０１ａは、メモリＡ１０２と、メモリＣ１０４またはメモリＤ１０５との間でダイレクトメモリアクセスによりデータを転送する。このデータ転送は双方向に可能であるものとする。
【００５４】
図２ＣはＤＭＡＣ１０１ｂによるデータ転送の説明図である。同図のように、ＤＭＡＣ１０１ｂは、メモリＢ１０３と、メモリＣ１０４またはメモリＤ１０５との間でダイレクトメモリアクセスによりデータを転送する。このデータ転送は双方向に可能であるものとする。
【００５５】
図１におけるコマンドキュー１０６は、ＤＭＡによるデータ転送を指示するコマンドをキューとして保持する。このコマンドは、各バス上のマスター等からコマンドキュー１０６に格納される。コマンドは各種パラメータとポインタとを含む。各種パラメータは転送パス（転送元メモリのスタートアドレスと転送先メモリのスタートアドレス）、転送サイズ、転送を完了すべき時刻などを含む。ポインタは、コマンドキューが物理的なＦＩＦＯメモリではなく論理的なキューとして構成されることから、各種パラメータの格納位置を指す。コマンドは固定長の場合と可変長の場合とがある。
【００５６】
コマンド情報取得部１０７は、コマンドキュー１０６に保持された全てのコマンドを取得する。コマンドが固定長の場合は、コマンド情報取得部１０７は、ポインタに固定値を加算することにより次コマンドの先頭位置を求める。また、コマンドが可変長の場合は、コマンドにリンク情報が含まれ、コマンド情報取得部１０７は、ポインタにリンク情報が示すサイズを加算することにより次コマンドの先頭位置を求める。
【００５７】
グループ化部１０８は、コマンド情報取得部１０７により取得されたコマンドに示される転送元または転送先に基づいて、コマンドキュー１０６に保持されたコマンドをグループ化する。具体的には、グループ化部１０８は、転送元または転送先にメモリＡ１０２が指定されたコマンドと、転送元または転送先にメモリＢ１０３が指定されたコマンドとを別のグループにする。図３にグループ化部１０８におけるグループ化の一例を示す説明図を示す。同図におけるグループＡは、転送元または転送先にメモリＡ１０２が指定されたコマンドのグループである。グループＢは、転送元または転送先にメモリＢ１０３が指定されたコマンドのグループである。例えば、コマンドＡ１は、メモリＡ１０２からメモリＣ１０４（Ａ→Ｃ）へのデータ転送を指示するコマンドである。他のコマンドも同様（転送元→転送先）である。
【００５８】
バス情報取得部１０９は、メモリＡ１０２、メモリＢ１０３、メモリＣ１０４、メモリＤ１０５のそれぞれについて、アクセスされているか否かを示すバス情報を取得する。
【００５９】
スケジュール部１１０は、グループに優先度を付与し、優先度の高いグループからコマンド発行の順番を決定する。このとき、スケジュール部１１０は、より多くのコマンドが属するグループに対して高い優先度を付与する。また、コマンドの発行について、スケジュール部１１０は、各グループの先頭コマンドに対応する転送パスが空き状態であるかどうかをバス情報から判断し、空き状態である場合にはコマンドを発行する。ただし、転送パスが空き状態であるが、グループ間で先頭コマンドの転送パスが競合している場合には、上記の優先度に従ってコマンドを発行する。また、各グループ内ではコマンドキュー１０６における順番でコマンドが発行される。
【００６０】
セレクタ１１１は、スケジュール部１１０の制御の下で、スケジュール部１１０によって決定された順番に従って、コマンドをＤＭＡＣ１０１ａまたはＤＭＡＣ１０１ｂに発行する。
【００６１】
図４Ａは、スケジュール部１１０によるコマンド発行の一例を示す説明図である。同図では、図３に示したようにコマンドがグループ化されているものとする。この場合、コマンドＡ１とコマンドＢ１は、転送先（メモリＣ１０４）が競合している。スケジュール部１１０は、グループＢより多くのコマンドが属するグループＡを優先して、まずコマンドＡ１を発行する。これにより、コマンドＡ１がＤＭＡＣ１０１ａにより実行される。コマンドＡ１によるＤＭＡデータ転送の実行中、グループＢの先頭のコマンドＢ１は、実行できないので、コマンドＡ１が完了するまで待たされることになる。コマンドＡ１の完了後、スケジュール部１１０は、コマンドＡ２をＤＭＡＣ１０１ａに、コマンドＢ１をＤＭＡＣ１０１ｂに発行する。コマンドＡ２とコマンドＢ１とは、転送元同士（メモリＤ１０５とメモリＢ１０３）が競合しないし、転送先同士（メモリＡ１０２メモリＣ１０４）も競合しないからである。この後、スケジュール部１１０は、コマンドＡ３とコマンドＢ２を発行する。
【００６２】
図４Ｂは、図４Ａと退避するための、コマンド発行の好ましくない一例を示す説明図である。仮に、スケジュール部１１０は、より多くのコマンドが属するグループを優先しないとすれば、図４Ｂのような結果となる。ただし、ここでは、全コマンドのデータ転送サイズが同じであり、当該サイズの転送時間を１周期している。図４Ａでは３周期でグループＡおよびグループＢのデータ転送が完了しているのに対して、図４Ｂでは４周期を要してしまう。このように、より多くのコマンドが属するグループを優先することによって、グループ全体の転送に要する時間を短縮し、バスの使用効率を向上させることができる。
【００６３】
図５は、コマンドキューおよびコマンド情報取得部１０７の説明図である。同図のように、コマンドは、ポインタと属性（上記の各種パラメータ）とからなる。各バスのマスターはＤＭＡ要求としてメモリＥ１２０に属性を書き込に、さらに、コマンドキュー１０６にポインタをセットする。ここで、メモリＥ１２０は、いずれかのバス上に存在してもよく、各マスターから直接的または間接的に書き込めればよい。コマンド情報取得部１０７はコマンドキュー１０６にセットされたポインタに従ってメモリＥ１２０から属性を読み出し、コマンドキュー１０６に保持させる。保持された属性は随時コマンド情報取得部１０７によってコマンドキュー１０６に読み出される。
【００６４】
図６は、コマンドキュー１０６に保持されるコマンドのリンクを示す説明図である。コマンド長が、固定長の場合には、次のコマンドの先頭アドレスは、現在のコマンドの先頭アドレスに固定値を加算することにより得られる。コマンド長が、可変長の場合には、次のコマンドの先頭アドレスは、現在のコマンドの先頭アドレスに、現在のコマンドに含まれるリンク情報が示すサイズを加算することにより得られる。いずれにしても、コマンドがリンク付けされることによって、コマンドキュー１０６は、コマンドをキューとして保持する。コマンド情報取得部１０７は、リンクをたどることによって、全てのコマンドから属性を取得することができる。
【００６５】
以上説明してきたように本実施の形態におけるデータ転送装置によれば、独立した第１バスから第３バスのそれぞれに接続されたメモリ間で、ＤＭＡＣ１０１ａとＤＭＡＣ１０ｂとが独立してＤＭＡデータ転送をする場合に、３つのバス全体での転送効率を向上させることができる。具体的には、ＤＭＡＣ１０１ａとＤＭＡＣ１０ｂは、メモリＣ１０４またはメモリＤ１０５を対象とするＤＭＡデータ転送において競合が生じ得るが、スケジュール部１１０においてより多くのコマンドが属するグループを優先することにより、発行すべきコマンド間でＤＭＡデータ転送が競合する場合に、コマンド全体のＤＭＡ転送時間を短縮し、バスの使用効率を向上させることができる。
【００６６】
なお、グループ化部１０８は、転送パスにおける転送元が固定的に決まっている場合には、転送先のメモリ別にグループ化するようにしてもよい。これにより、コマンド情報取得部１０７は、転送先を示すパラメータを取得すればよいので、グループ化の効率を向上させることができる。
【００６７】
また、グループ化部１０８は、転送パスにおける転送先が固定的に決まっている場合には、転送元のメモリ別にグループ化するようにしてもよい。これにより、コマンド情報取得部１０７は、転送元を示すパラメータを取得すればよいので、グループ化の効率を向上させることができる。
【００６８】
（実施の形態２）
図７は、本発明の実施の形態２におけるＤＭＡデータ転送装置の構成を示すブロック図である。このＤＭＡデータ転送装置は、画像を表すフレームを矩形領域毎に処理する装置に備えられ、図１に示したデータ転送装置と比較して、コマンド変更部２０１が追加されている点が異なっている。以下同じ点は説明を省略して異なる点を中心に説明する。
【００６９】
コマンド変更部２０１は、コマンド情報取得部１０７によって取得されたコマンドの属性と、バス情報取得部１０９によって取得されたバス情報とを解析し、コマンドキュー１０６に保持されたいずれかのコマンドを２つ以上のコマンドに分割する。
【００７０】
図８は、コマンド変更部２０１によるコマンド変更の第一例を示す図である。同図において、コマンド１は、コマンドキュー１０６の先頭コマンドであり、画像データ中の長方形の領域を転送すべきデータとしている。この領域が３つの矩形領域１〜３からなり、矩形領域２の転送パスが空いいる場合に、コマンド変更部２０１は、コマンド１を、コマンド１−１、コマンド１−２、コマンド１−３に分割する。コマンド１−１は、矩形領域２を転送するためのコマンドであり、即座に発行可能なコマンドである。コマンド１−２は、矩形領域１を転送するためのコマンドであり、即座には発行できない。コマンド１−３は、矩形領域３を転送するためのコマンドであり、即座には発行できない。分割された３つのコマンドは、コマンド変更部２０１によって、コマンド１の代わりにコマンドキュー１０６に登録される。これにより、バスの空きをさらに有効利用し、グループ全体の転送時間を短縮することができる。
【００７１】
図９は、コマンド変更部２０１によるコマンド変更の第２例を示す図である。同図において、コマンド２は、フレーム境界にまたがる矩形領域を転送すべきデータとしている。この領域は、フレーム内データとフレーム外データとを含んでいるので、コマンド変更部２０１は、フレーム内の矩形領域１のデータを転送するフレーム内コマンド２−１と、フレーム外の矩形領域２のデータを転送するフレーム外コマンド２−２とに分割する。ここで、コマンド２−１は、フレーム内の矩形領域１の実際のデータを転送するコマンドである。コマンド２−２は、フレーム外の矩形領域１のデータは無意味なので、無意味なデータを転送する代わりに、転送先メモリにフレーム枠を示す情報を書き込むコマンドである。例えば、コマンド２−２は、転送元メモリからはフレーム外のデータを矩形領域内の１ライン目のみ読み出して、転送先メモリには当該データを複数回にわたって書き込むことを指示する。これにより、フレーム内データのみを効率よくＤＭＡデータ転送することができる。フレーム外データの矩形領域内２ライン目以降の読み出しを省略して、フレーム外データとして無効なデータを読み出さないので、データ転送効率を向上させることができる。
【００７２】
図１０は、コマンド変更部２０１によるコマンド変更の第３例を示す図である。同図においてコマンド３は、ある矩形幅を有する矩形データの転送を指示するコマンドである。この矩形幅は、転送先メモリのアクセス幅より広い場合（図１０では３倍）に、コマンド変更部２０１は、コマンド３を、転送先メモリのアクセス幅の矩形領域１〜３に対応する３つのコマンド３−１〜コマンド３−３に分割する。これにより転送元から無駄なデータ読み出し、ひいてはアクセス回数を低減することができる。
【００７３】
（実施の形態３）
図１１は、本発明の実施の形態３におけるＤＭＡデータ転送装置の構成を示すブロック図である。このＤＭＡデータ転送装置は、図７に示したＤＭＡデータ転送装置と比較して、ＤＭＡ実行部１０１の代わりにＤＭＡ実行部３０１を備え、新たにコマンド退避部３０２とセレクタ３０３とを備え、スケジュール部１１０の代わりにスケジュール部３１０を備える点が異なっている。以下同じ点は説明を省略して異なる点を中心に説明する。
【００７４】
ＤＭＡ実行部３０１は、ＤＭＡＣ３０１ａとＤＭＡＣ３０１ｂを有している。ＤＭＡＣ３０１ａは、ＤＭＡＣ１０１ａの機能に加えて、ＤＭＡデータ転送の途中で、残りのデータ転送を指示するコマンドをコマンド退避部３０２に出力するように構成されている。ＤＭＡＣ３０１ｂも同様である。
【００７５】
コマンド退避部３０２は、ＤＭＡＣ３０１ａまたはＤＭＡＣ３０１ｂから出力されたコマンドを一時的に保持する。
【００７６】
セレクタ３０３は、コマンドキュー１０６からのコマンドと、コマンド退避部３０２からのコマンドとが入力され、いずれかのコマンドを選択的にＤＭＡ実行部３０１に出力する。
【００７７】
スケジュール部３１０は、ＤＭＡＣ３０１ａまたはＤＭＡＣ３０１ｂにおける実行中のコマンドと、コマンドキュー１０６に保持されたコマンドとを比較して、実行中のコマンドを退避すべきか否かを決定し、さらに、退避したコマンドの復帰を決定する。退避および復帰の決定に従ってセレクタ３０３が制御される。
【００７８】
具体的には、スケジュール部３１０は、ＤＭＡＣ３０１ａまたはＤＭＡＣ３０１ｂにおける実行中のコマンドの残り転送サイズと、コマンドキュー１０６に保持された各グループの先頭コマンドの転送サイズとに応じて、退避すべきか否かを決定する。ただし、残り転送サイズがしきい値よりも大きいときは退避すると決定しない。これは、実行中のコマンドにおける残り転送サイズしきい値よりも小さい場合にだけ退避することによって、復帰したときの悪影響（コマンド受付からＤＭＡデータ転送完了までの遅延）を解消するためである。
【００７９】
このように本実施の形態におけるデータ転送装置によれば、例えば実行レイテンシ（データ転送の時間）が大きいコマンド実行中に、実行中のコマンドを一時的に退避させて、実行レイテンシが小さいコマンドや、転送サイズが小さいコマンドを先に実行させることができる。
【００８０】
なお、スケジュール部３１０は、ＤＭＡＣ３０１ａまたはＤＭＡＣ３０１ｂにおける実行中のコマンドのデータ転送が完了すべき時刻と、残り時間とに基づいて、退避すべきか否かを決定するようにしてもよい。この場合、データ転送を完了すべき時刻は、コマンドの属性としてコマンドに含まれるようにしてもよい。
【００８１】
（実施の形態４）
図１２は、本発明の実施の形態４におけるＤＭＡデータ転送装置の構成を示すブロック図である。このＤＭＡデータ転送装置は、図１１に示したＤＭＡデータ転送装置と比較して、新たにコマンド認識部４０１、ＤＭＡ実行認識部４０２、クロック停止部４０３を備える点が異なっている。以下同じ点は説明を省略して異なる点を中心に説明する。
【００８２】
コマンド認識部４０１は、セレクタ３０３からＤＭＡＣ３０１ａ、ＤＭＡＣ３０１ｂのそれぞれに対して、新たにコマンド発行がされたか否かを認識する。
【００８３】
ＤＭＡ実行認識部４０２は、ＤＭＡＣ３０１ａ、ＤＭＡＣ３０１ｂのそれぞれにおいて、実行すべきコマンドが存在するか否かを認識する。
【００８４】
クロック停止部４０３は、ＤＭＡＣ３０１ａに実行すべきコマンドが存在していない場合に、ＤＭＡＣ３０１ａに対するクロック信号の供給を停止し、停止中に新たにコマンド発行がされた場合に、当該クロック信号の供給を再開する。また、ＤＭＡＣ３０１ｂに実行すべきコマンドが存在していない場合に、ＤＭＡＣ３０１ｂに対するクロック信号の供給を停止し、停止中に新たにコマンド発行がされた場合に、当該クロック信号の供給を再開する。
【００８５】
これによれば、データ転送装置の消費電力を節約することができ、特に携帯電話機やＰＤＡ等にデータ転送装置が備えられる場合には電池による駆動時間を延ばすことができる。
【００８６】
なお、各実施の形態においてスケジュール部１１０、３１０は、より多くのコマンドが属するグループに高い優先度を付与しているが、次のようにしてもよい。すなわち、ｎ（ｎは２以上）回コマンド発行する毎に、より多くのコマンドが属するグループ以外のグループに高い優先度を付与するようにしてもよい。これによれば、マスターからコマンドキュー１０６に設定されるコマンドの総数に偏りがある場合に、コマンド数の少ないグループがコマンド発行待ち状態に陥るのを防止することができる。
【産業上の利用可能性】
【００８７】
本発明は、複数のバス間でダイレクトメモリアクセスによりデータを転送するデータ転送装置に適しており、例えば携帯電話、ＤＶＤ装置、およびデジタルＴＶ装置等で、画像を符号化して符号列を生成し、または符号列を復号化するためのシステムにおけるデータ転送装置に適している。
【図面の簡単な説明】
【００８８】
【図１】本発明の実施の形態１におけるＤＭＡデータ転送装置の構成を示すブロック図である。
【図２Ａ】メモリＡ〜メモリＤの説明図である。
【図２Ｂ】ＤＭＡＣ１０１ａによるデータ転送の説明図である。
【図２Ｃ】ＤＭＡＣ１０１ａによるデータ転送の説明図である。
【図３】グループ化部におけるグループ化の一例を示す説明図である。
【図４Ａ】スケジュール部によるコマンド発行の一例を示す説明図である。
【図４Ｂ】コマンド発行の好ましくない一例を示す説明図である。
【図５】コマンドキューおよびコマンド情報取得部の説明図である。
【図６】コマンドキューにおけるコマンドリンクを示す図である。
【図７】本発明の実施の形態２におけるＤＭＡデータ転送装置の構成を示すブロック図である。
【図８】コマンド変更部によるコマンド変更の第一例を示す図である。
【図９】コマンド変更部によるコマンド変更の第２例を示す図である。
【図１０】コマンド変更部によるコマンド変更の第３例を示す図である。
【図１１】本発明の実施の形態３におけるＤＭＡデータ転送装置の構成を示すブロック図である。
【図１２】本発明の実施の形態３におけるＤＭＡデータ転送装置の構成を示すブロック図である。
【符号の説明】
【００８９】
１０１  ＤＭＡ実行部
１０１ａ  ＤＭＡＣ
１０１ｂ  ＤＭＡＣ
１０２  メモリＡ
１０３  メモリＢ
１０４  メモリＣ
１０５  メモリＤ
１０６  コマンドキュー
１０７  コマンド情報取得部
１０８  グループ化部
１０９  バス情報取得部
１１０  スケジュール部
１１１  セレクタ
１２０  メモリＥ
２０１  コマンド変更部
３０１  ＤＭＡ実行部
３０１ａ  ＤＭＡＣ
３０１ｂ  ＤＭＡＣ
３０２  コマンド退避部
３０３  セレクタ
３１０  スケジュール部
４０１  コマンド認識部
４０２  ＤＭＡ実行認識部
４０３  クロック停止部
【図１】
2006318139.tif 000003
【図２Ａ】
2006318139.tif 000004
【図２Ｂ】
2006318139.tif 000005
【図２Ｃ】
2006318139.tif 000006
【図３】
2006318139.tif 000007
【図４Ａ】
2006318139.tif 000008
【図４Ｂ】
2006318139.tif 000009
【図５】
2006318139.tif 000010
【図６】
2006318139.tif 000011
【図７】
2006318139.tif 000012
【図８】
2006318139.tif 000013
【図９】
2006318139.tif 000014
【図１０】
2006318139.tif 000015
【図１１】
2006318139.tif 000016
【図１２】
2006318139.tif 000017