(57)【要約】      （修正有）【課題】プログラムの複雑化又はハードウェア（回路）規模の増大という問題を回避し、かつＤＭＡ転送の速度を向上させることのできるＤＭＡコントローラ及び該ＤＭＡコントローラの制御方法を提供する。【解決手段】ＤＭＡコントローラ１０２は、所定のコマンドに基づいてデータを処理するデータ処理部へデータ記憶部に記憶されたデータを転送する転送制御手段を備え、前記データ処理部に対するコマンドを記憶するコマンド記憶手段３０１１ｅと、前記コマンド記憶手段３０１１ｅに記憶されたコマンドの転送先のアドレスを記憶する転送先アドレス記憶手段３０１１ｄとを有し、前記転送制御手段は、前記データ記憶部に記憶されたデータを前記データ処理部へ転送する際に、前記転送先アドレス記憶手段３０１１ｄに記憶されたアドレスに前記コマンド記憶手段３０１１ｅに記憶されたコマンドを転送する。【選択図】図３
2008129944.tif 000002
【特許請求の範囲】
【請求項１】
所定のコマンドに基づいてデータを処理するデータ処理部へデータ記憶部に記憶されたデータを転送する転送制御手段を備えたＤＭＡコントローラであって、
前記データ処理部に対するコマンドを記憶するコマンド記憶手段と、
前記コマンド記憶手段に記憶されたコマンドの転送先のアドレスを記憶する転送先アドレス記憶手段と、を有し、
前記転送制御手段は、前記データ記憶部に記憶されたデータを前記データ処理部へ転送する際に、前記転送先アドレス記憶手段に記憶されたアドレスに前記コマンド記憶手段に記憶されたコマンドを転送するものであることを特徴とするＤＭＡコントローラ。
【請求項２】
請求項１に記載のＤＭＡコントローラは、さらに、
前記コマンド記憶手段に記憶されたコマンド及び前記データ記憶部に記憶されたデータの転送の順番を示すシーケンス情報を記憶するシーケンス情報記憶手段を有し、
前記転送制御手段は、前記シーケンス情報記憶手段に記憶されたシーケンス情報に基づいて前記コマンド及び前記データを転送することを特徴とするＤＭＡコントローラ。
【請求項３】
請求項２に記載のＤＭＡコントローラは、さらに、
前記コマンド記憶手段及び前記コマンド転送先アドレス記憶手段を複数有し、
前記転送制御手段は、前記シーケンス情報記憶手段に記憶されたシーケンス情報に基づいて前記複数のコマンド記憶手段に記憶されたコマンド及び前記データを転送することを特徴とするＤＭＡコントローラ。
【請求項４】
所定のコマンドに基づいてデータを処理するデータ処理部へデータ記憶部に記憶されたデータを転送するＤＭＡコントローラの制御方法であって、
前記データ処理部に対するコマンドを記憶するコマンド記憶ステップと、
前記コマンド記憶ステップにおいて記憶されたコマンドの転送先のアドレスを記憶する転送先アドレス記憶ステップと、
前記データ記憶部に記憶されたデータを前記データ処理部へ転送する際に、前記コマンド記憶ステップにおいて記憶されたコマンドを前記転送先アドレス記憶ステップにおいて記憶された転送先アドレスに転送する転送制御ステップと、を含むことを特徴とするＤＭＡコントローラの制御方法。
【請求項５】
請求項４に記載のＤＭＡコントローラの制御方法は、さらに、
前記コマンド記憶ステップにおいて記憶されたコマンド及び前記記憶部に記憶されたデータの転送の順番を示すシーケンス情報を記憶するシーケンス情報記憶ステップを含み、
前記転送制御ステップにおいて、前記シーケンス情報記憶ステップにおいて記憶されたシーケンス情報に基づいて前記コマンド及び前記データを転送することを特徴とするＤＭＡコントローラの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡコントローラ及びＤＭＡコントローラの制御方法に関し、特に、ＤＭＡ転送の際にデータ処理部に対するコマンドを転送するＤＭＡコントローラ及び該ＤＭＡコントローラの制御方法に関する。
【背景技術】
【０００２】
従来、データ記憶部とデータ処理部との間のデータ転送におけるプロセッサの負担を軽減するための技術として直接メモリアクセス制御装置（ＤＭＡコントローラ）が知られている。ＤＭＡコントローラは、データ記憶部とデータ処理部との間で直接のデータ転送（ＤＭＡ転送）を制御するハードウェア（回路）である。
【０００３】
特許文献１には、転送速度を向上させた直接メモリアクセス制御装置について開示されている。具体的には、特許文献１の直接メモリアクセス制御装置は、制御レジスタ１３、転送アドレスレジスタ１４、転送カウントレジスタ１５、データレジスタ群１６〜１８を備え、複数のデータを連続したアドレス空間の領域に転送するものである（段落００１３〜００２２、図１を参照）。
【０００４】
しかし、プロセッサが転送したデータを処理する場合は、特許文献１の直接メモリアクセス制御装置では、転送の終了を通知するための処理（割込処理）を行う割込プログラムをプロセッサに実装し、終了した転送がどのデータレジスタ群からの転送であるかを判断する必要がある。そのために、データレジスタ群の数に比例して割込プログラムが複雑化するという問題があった。
【０００５】
一方、プログラムが複雑化する問題を回避するために、ディスクリプタテーブルを用いたチェーン方式のＤＭＡコントローラも知られている。このチェーン方式のＤＭＡコントローラは、ディスクリプタテーブルのサイズ分だけ連続して転送を行うものであり、複雑な割込プログラムを必要としないものである。しかし、ディスクリプタテーブルが必要となるので、ハードウェア（回路）規模が増大するという問題があった。
【０００６】
以上のことから、従来のＤＭＡコントローラでは、ＤＭＡ転送の速度を向上させる代わりに、プログラムの複雑化又はハードウェア（回路）規模の増大という問題が生じていた。
【特許文献１】特開平８−２８７００２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、プログラムの複雑化及びハードウェア（回路）規模の増大という問題を回避し、かつ、ＤＭＡ転送の速度を向上させることのできるＤＭＡコントローラ及び該ＤＭＡコントローラの制御方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明の第１の態様によれば、所定のコマンドに基づいてデータを処理するデータ処理部へデータ記憶部に記憶されたデータを転送する転送制御手段を備えたＤＭＡコントローラであって、前記データ処理部に対するコマンドを記憶するコマンド記憶手段と、前記コマンド記憶手段に記憶されたコマンドの転送先のアドレスを記憶する転送先アドレス記憶手段と、を有し、前記転送制御手段は、前記データ記憶部に記憶されたデータを前記データ処理部へ転送する際に、前記転送先アドレス記憶手段に記憶されたアドレスに前記コマンド記憶手段に記憶されたコマンドを転送するものであることを特徴とするＤＭＡコントローラが提供される。
【０００９】
本発明の第２の態様によれば、所定のコマンドに基づいてデータを処理するデータ処理部へデータ記憶部に記憶されたデータを転送するＤＭＡコントローラの制御方法であって、前記データ処理部に対するコマンドを記憶するコマンド記憶ステップと、前記コマンド記憶ステップにおいて記憶されたコマンドの転送先のアドレスを記憶する転送先アドレス記憶ステップと、前記データ記憶部に記憶されたデータを前記データ処理部へ転送する際に、前記コマンド記憶ステップにおいて記憶されたコマンドを前記転送先アドレス記憶ステップにおいて記憶された転送先アドレスに転送する転送制御ステップと、を含むことを特徴とするＤＭＡコントローラの制御方法が提供される。
【発明の効果】
【００１０】
本発明によれば、プログラムの複雑化及びハードウェア（回路）規模の増大という問題を回避し、かつ、ＤＭＡ転送の速度を向上させることができる。
【発明を実施するための最良の形態】
【００１１】
以下に、図面を参照して本発明の実施例について説明する。なお、以下の実施例は、本発明の一形態に過ぎず、本発明の範囲を限定するものではない。
【００１２】
図１は、本発明の実施例に係るデータ処理システムの構成を示すブロック図である。
【００１３】
本発明の実施例に係るデータ処理システムは、マイクロプロセッサ１０１、ＤＭＡコントローラ１０２、複数のデータ処理部１０３、データ記憶部１０４及びメインバス１０５を含む。
【００１４】
マイクロプロセッサ１０１は、データの演算、加工、読み出し、書き込み、転送、保持等の機能を実行するために、ＤＭＡコントローラ１０２やデータ処理部１０３の制御レジスタに所定のコマンドを書き込む。ＤＭＡコントローラ１０２は、データ記憶部１０４に記憶されたデータ１０４ａをデータ処理部１０３に転送するＤＭＡ転送処理の制御を行う。また、ＤＭＡコントローラ１０２は、データ処理部１０３へのデータ１０４ａの転送が終了したことを示す終了信号をマイクロプロセッサ１０１に出力する。データ処理部１０３は、メインバス１０５を介して送信されたコマンドに基づいて、所定のブロック単位でデータ処理を行うものである。また、複数のデータ処理部１０３は並列処理を行うことができる。一般に、特定用途の集積回路（いわゆる「ＡＳＩＣ」）では、コストや性能の観点から、マイクロプロセッサ１０１と複数のデータ処理部１０３とで処理を分担することにより、データ処理システムとしての処理効率を向上させることができる。データ記憶部１０４は、複数のデータ処理部１０３におけるデータ処理の対象となる複数のデータ１０４ａを記憶する。マイクロプロセッサ１０１、ＤＭＡコントローラ１０２、複数のデータ処理部１０３及びデータ記憶部１０４は、メインバス１０５を介して互いに接続される。
【００１５】
図２は、本発明の実施例に係るデータ処理部１０３の構成を示すブロック図である。
【００１６】
本発明の実施例に係るデータ処理部１０３は、メモリ２０１、制御レジスタ２０２、演算ユニット２０３及びバスインタフェース２０４を含む。
【００１７】
メモリ２０１は、記憶部１０４に記憶されたデータ１０４ａを所定のブロック単位で記憶する。制御レジスタ２０２は、メインバス１０５を介して送信された所定のコマンドを記憶する。演算ユニット２０３は、制御レジスタ２０２に記憶されたコマンドに基づいて、メモリ２０１に記憶されたデータに対するデータ処理を行う。メモリ２０１、制御レジスタ２０２、演算ユニット２０３は、バスインタフェース２０４を介してメインバス１０５と接続される。
【実施例１】
【００１８】
以下、本発明の実施例１について図３〜５を参照して説明する。
【００１９】
図３は、実施例１に係るＤＭＡコントローラ１０２の構成を示すブロック図である。
【００２０】
実施例１に係るＤＭＡコントローラ１０２は、複数の転送制御回路３０１及びバス制御回路３０２を有する。
【００２１】
複数の転送制御回路３０１は、それぞれ、制御レジスタ３０１１、アドレス加算回路３０１２、転送サイズ減算回路３０１３及び終了信号出力回路３０１４を有する。また、複数の転送制御回路３０１は、それぞれ、データ記憶部１０４からデータ処理部１０３へのデータ転送を制御する転送制御手段として機能する。
【００２２】
制御レジスタ３０１１は、データ転送先アドレス記憶手段３０１１ａ、データ転送元アドレス記憶手段３０１１ｂ、転送サイズ記憶手段３０１１ｃ、コマンド転送先アドレス記憶手段３０１１ｄ及びコマンド記憶手段３０１１ｅを含む。
【００２３】
データ転送先アドレス記憶手段３０１１ａは、転送の対象となるデータ１０４ａの宛先（データ処理部１０３のメモリ２０１のアドレス）を記憶する。データ転送元アドレス記憶手段３０１１ｂは、転送の対象となるデータ１０４ａの所在（データ記憶部１０４のアドレス）を記憶する。転送サイズ記憶手段３０１１ｃは、転送の対象となるデータ１０４ａのデータサイズを記憶する。コマンド転送先アドレス記憶手段３０１１ｄは、転送の対象となるコマンドの宛先（データ処理部１０３の制御レジスタ２０２のアドレス）を記憶する。コマンド記憶手段３０１１ｅは、制御レジスタ２０２に書き込むためのコマンドを記憶する。また、制御レジスタ３０１１は、マイクロプロセッサ１０１により書き込まれた起動コマンドを記憶する。ＤＭＡコントローラ１０２は、制御レジスタ３０１１に記憶された起動コマンドに基づいて動作する。
【００２４】
アドレス加算回路３０１２は、データ転送先アドレス記憶手段３０１１ａ及びデータ転送元アドレス記憶手段３０１１ｂに記憶されたアドレスを加算する。転送サイズ減算回路３０１３は、転送サイズ記憶手段３０１１ｃに記憶されたデータサイズを減算する。終了信号出力回路３０１４は、転送が終了したことを示す終了信号をマイクロプロセッサ１０１に出力する。
【００２５】
バス制御回路３０２は、転送制御回路３０１とメインバス１０５との間のデータの送受信を制御する。
【００２６】
図４は、実施例１に係るＤＭＡコントローラ制御処理におけるマイクロプロセッサ１０１の処理手順を示すフローチャートである。ＤＭＡコントローラ制御処理は、ＤＭＡコントローラ１０２に後述するＤＭＡ転送処理の開始を指示するための処理である。
【００２７】
マイクロプロセッサ１０１は、データ転送先アドレス記憶手段３０１１ａにデータ１０４ａの宛先を示す転送先アドレス（データ処理部１０３のメモリ２０１のアドレス）をセットする（Ｓ４０１）。続いて、データ転送元アドレス記憶手段３０１１ｂにデータ１０４ａの所在を示す転送元アドレス（データ記憶部１０４のアドレス）をセットする（Ｓ４０２）。続いて、転送サイズ記憶手段３０１１ｃにデータ１０４ａのデータサイズをセットする（Ｓ４０３）。ここでセットされるデータサイズは、データ処理部１０３が一度に処理できるデータサイズである。続いて、データ処理部１０３に対する処理の内容及び処理の起動の命令を示すコマンドの宛先を示すコマンド転送先アドレス（データ処理部１０３の制御レジスタ２０２のアドレス）をコマンド転送先アドレス記憶手段３０１１ｄにセットする（Ｓ４０４）。続いて、コマンド記憶手段３０１１ｅに該コマンドをセットする（Ｓ４０５）。続いて、ＤＭＡ転送の開始命令を示す起動コマンドをＤＭＡコントローラ１０２の制御レジスタ３０１１に書き込む（Ｓ４０６）。
【００２８】
以上の処理手順により、実施例１に係るＤＭＡコントローラ制御処理が完了する。なお、ＤＭＡコントローラ制御処理は、複数の転送制御回路３０１のそれぞれに対して行われる。
【００２９】
図５は、実施例１に係るＤＭＡ転送処理におけるＤＭＡコントローラ１０２の処理手順を示すフローチャートである。ＤＭＡコントローラ１０２は、図４に示されたＳ４０６において制御レジスタ３０１１に書き込まれたＤＭＡ転送の開始命令を示す起動コマンドに基づいてＤＭＡ転送処理を行う。実施例１に係るＤＭＡ転送処理は、データ転送処理（Ｓ５０１）、コマンド転送処理（Ｓ５０２）及び転送終了信号出力処理（Ｓ５０３）から成る。
【００３０】
データ転送処理（Ｓ５０１）では、はじめに、転送サイズ記憶手段３０１１ｃの値が０より大きいか否かを判断する（Ｓ５０１１）。
【００３１】
転送サイズ記憶手段３０１１ｃの値が０より大きい場合は（Ｓ５０１１−Ｙｅｓ）、データ転送元アドレス記憶手段３０１１ｂを参照し、データ転送元アドレスを読み出す（Ｓ５０１２）。続いて、データ転送先アドレス記憶手段３０１１ａを参照し、データ記憶部１０４のデータ転送元アドレスに記憶されたデータ１０４ａをデータ処理部１０３のメモリ２０１のデータ転送先アドレスに書き込む（Ｓ５０１３）。続いて、転送サイズ記憶手段３０１１ｃの値を１転送サイズ分減少させる（Ｓ５０１４）。続いて、データ転送元アドレス記憶手段３０１１ｂの値を１転送サイズ分増加させる（Ｓ５０１５）。続いて、データ転送先アドレス記憶手段３０１１ａの値を１転送サイズ分増加させる（Ｓ５０１６）。Ｓ５０１２〜Ｓ５０１６の処理は、転送サイズ記憶手段３０１１ｃの値が０になる（Ｓ５０１１−Ｎｏ）まで繰り返される。
【００３２】
転送サイズ記憶手段３０１１ｃの値が０の場合は（Ｓ５０１１−Ｎｏ）、コマンド転送処理（Ｓ５０２）を行う。コマンド転送処理（Ｓ５０２）では、はじめに、コマンド記憶手段３０１１ｅからコマンドを読み出す（Ｓ５０２１）。続いて、コマンド転送先アドレス記憶手段３０１１ｄを参照し、データ処理部１０３の制御レジスタ２０２のコマンド転先アドレスに該コマンドを転送する（Ｓ５０２２）。
【００３３】
続いて、転送終了信号をマイクロプロセッサ１０１に出力する（Ｓ５０３）。
【００３４】
以上の処理手順により、実施例１に係るＤＭＡ転送処理が完了する。なお、ＤＭＡ転送処理は、複数の転送制御回路３０１のそれぞれにより行われる。
【００３５】
実施例１によれば、ＤＭＡ転送処理において、データ処理部１０３のレジスタ２０２にコマンドを書き込むので、マイクロプロセッサ１０１からデータ処理部１０３に対するコマンドの出力が不要となる。従って、ＤＭＡ転送の終了を待って起動コマンドを出力するための割込処理に関するプログラムが不要となり、プログラムの複雑化を回避することができる。また、ディスクリプタテーブルが不要であるので、ハードウェア（回路）規模の増大を回避することができる。また、複数の転送制御回路３０１を設けるだけで、複数チャネルのＤＭＡ転送についても同様の効果を達成することができる。
【実施例２】
【００３６】
以下、本発明の実施例２について図６〜８を参照して説明する。実施例１では、ＤＭＡ転送処理において、データ転送処理（Ｓ５０１）の後にコマンド転送処理（Ｓ５０２）を行う例について説明したが、実施例２では、転送の順番を制御する例について説明する。なお、実施例１と同様の内容については説明を省略する。
【００３７】
図６は、実施例２に係るＤＭＡコントローラ１０２の構成を示すブロック図である。
【００３８】
実施例２に係るＤＭＡコントローラ１０２は、制御レジスタ６０１１内に複数のコマンド転送先アドレス記憶手段６０１１ｄ、複数のコマンド記憶手段６０１１ｅ及びシーケンス情報記憶手段６０１１ｆを有する点が実施例１のＤＭＡコントローラ１０２（図３を参照）と異なる。
【００３９】
複数のコマンド転送先アドレス記憶手段６０１１ｄ及び複数のコマンド記憶手段６０１１ｅのそれぞれは、実施例１のコマンド転送先アドレス記憶手段３０１１ｄ及びコマンド記憶手段３０１１ｅ（図３を参照）と同様である。シーケンス情報記憶手段６０１１ｆは、複数のコマンド記憶手段６０１１ｄに記憶されたコマンド及びデータ記憶部１０４に記憶されたデータ１０４ａの転送の順番を示すシーケンス情報を記憶する。
【００４０】
図７は、実施例２に係るＤＭＡコントローラ制御処理におけるマイクロプロセッサ１０１の処理手順を示すフローチャートである。
【００４１】
マイクロプロセッサ１０１は、Ｓ４０１〜４０５（図４を参照）を行った後、シーケンス情報記憶手段６０１１ｆにシーケンス情報をセットする（Ｓ７０１）。続いて、Ｓ４０６（図４を参照）を行う。以上の処理手順により実施例２に係るＤＭＡコントローラ制御処理が完了する。なお、ＤＭＡコントローラ制御処理は、複数の転送制御回路６０１のそれぞれに対して行われる。
【００４２】
図８は、実施例２に係るＤＭＡ転送処理におけるＤＭＡコントローラ１０２の処理手順を示すフローチャートである。
【００４３】
ＤＭＡコントローラ１０２は、シーケンス情報記憶手段６０１１ｆからシーケンス情報を読み出す（Ｓ８０１）。続いて、シーケンス情報に基づいてシーケンス転送処理を行う（Ｓ８０２）。
【００４４】
シーケンス転送処理（Ｓ８０２）は、例えば、データ転送処理（Ｓ５０１）の後にコマンド転送処理（Ｓ５０２）を行うシーケンス１、コマンド転送処理（Ｓ５０２）の後にデータ転送処理（Ｓ５０１）を行うシーケンス２、第１のコマンド転送処理（Ｓ８０２−１）の後にデータ転送処理（Ｓ５０１）を行い、最後に第２のコマンド転送処理（Ｓ８０２−２）を行うシーケンス３等がある。なお、第１のコマンド転送処理（Ｓ８０２−１）及び第２のコマンド転送処理（Ｓ８０２−２）は、コマンド転送処理（Ｓ５０２）と同様に行われる。
【００４５】
シーケンス転送処理（Ｓ８０２）の後は、Ｓ５０３（図５を参照）と同様の処理を行う。以上の処理手順により実施例２に係るＤＭＡ転送処理が完了する。
【００４６】
実施例２によれば、実施例１の効果に加えて、シーケンス情報を切り替えることによりＤＭＡ転送するデータの順番を制御することができるので、様々な仕様のデータ処理部１０３に対するＤＭＡ転送処理を１つのＤＭＡコントローラ１０２で行うことができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施例に係るデータ処理システムの構成を示すブロック図である。
【図２】本発明の実施例に係るデータ処理部１０３の構成を示すブロック図である。
【図３】実施例１に係るＤＭＡコントローラ１０２の構成を示すブロック図である。
【図４】実施例１に係るＤＭＡコントローラ制御処理におけるマイクロプロセッサ１０１の処理手順を示すフローチャートである。
【図５】実施例１に係るＤＭＡ転送処理におけるＤＭＡコントローラ１０２の処理手順を示すフローチャートである。
【図６】実施例２に係るＤＭＡコントローラ１０２の構成を示すブロック図である。
【図７】実施例２に係るＤＭＡコントローラ制御処理におけるマイクロプロセッサ１０１の処理手順を示すフローチャートである。
【図８】実施例２に係るＤＭＡ転送処理におけるＤＭＡコントローラ１０２の処理手順を示すフローチャートである。
【符号の説明】
【００４８】
１０１  マイクロプロセッサ
１０２  ＤＭＡコントローラ
１０３  データ処理部
１０４  データ記憶部
１０５  メインバス
３０１  転送制御回路
３０１１、６０１１  制御レジスタ
３０１１ａ、６０１１ａ  データ転送元アドレス記憶手段
３０１１ｂ、６０１１ｂ  データ転送先アドレス記憶手段
３０１１ｃ、６０１１ｃ  転送サイズ記憶手段
３０１１ｄ、６０１１ｄ  コマンド記憶手段
３０１１ｅ、６０１１ｅ  コマンド転送先アドレス記憶手段
３０１２、６０１２  アドレス加算回路
３０１３、６０１３  転送サイズ減算回路
３０１４、６０１４  終了信号出力回路
３０２、６０２  バス制御回路
６０１１ｆ  シーケンス情報記憶手段
【図１】
2008129944.tif 000003
【図２】
2008129944.tif 000004
【図３】
2008129944.tif 000005
【図４】
2008129944.tif 000006
【図５】
2008129944.tif 000007
【図６】
2008129944.tif 000008
【図７】
2008129944.tif 000009
【図８】
2008129944.tif 000010