(57)【特許請求の範囲】
【請求項１】
ダイレクトメモリアクセスコントローラ及び複数のリクエスト装置が接続されるダイレクトメモリアクセス装置であって、
前記ダイレクトメモリアクセスコントローラは、
前記複数のリクエスト装置のうちの少なくとも１個がリクエスト信号を出力している間はリクエスト信号を入力する１個のリクエスト信号入力端子と、
前記リクエスト信号を入力すると、前記複数のリクエスト装置へパルス状のアクノリッジ信号を出力するための１個のアクノリッジ信号出力端子と、
前記アクノリッジ信号出力端子からアクノリッジ信号を出力した後に、前記リクエスト信号入力端子から入力するリクエスト信号がレベル変化するタイミングに応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御する制御回路と
を有し、
前記各リクエスト装置は、
前記ダイレクトメモリアクセスコントローラが出力するアクノリッジ信号を入力するための１個のアクノリッジ信号入力端子と、
自らリクエスト信号をハイレベルにした後、前記アクノリッジ信号入力端子に入力されるアクノリッジ信号のパルス数に基づいて、前記リクエスト信号をローレベルにするとともに、前記複数のリクエスト装置のうちの少なくとも１個がリクエスト信号を出力している間はリクエスト信号を入力するための１個のリクエスト信号入出力端子と、
前記アクノリッジ信号入力端子からアクノリッジ信号を入力した後にリクエスト装置毎に異なる一定期間経過後に、前記リクエスト信号入出力端子に出力するリクエスト信号のレベルを変化させることによりデータ転送のリクエストを行う制御回路と
を有することを特徴とするダイレクトメモリアクセス装置。
【請求項２】
前記ダイレクトメモリアクセスコントローラの制御回路は、前記リクエスト信号入力端子からリクエスト信号が入力されると、前記アクノリッジ信号出力端子からアクノリッジ信号を出力し、その後、前記リクエスト信号の入力が終了するタイミングに応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御することを特徴とする請求項１記載のダイレクトメモリアクセス装置。
【請求項３】
ダイレクトメモリアクセスコントローラ及び複数のリクエスト装置が接続されるダイレクトメモリアクセス装置であって、
前記ダイレクトメモリアクセスコントローラは、
前記複数のリクエスト装置のうちの少なくとも１個がリクエスト信号を出力している間はリクエスト信号を入力する１個のリクエスト信号入力端子と、
前記リクエスト信号を入力すると、前記複数のリクエスト装置へパルス状のアクノリッジ信号を出力するための１個のアクノリッジ信号出力端子と、
前記アクノリッジ信号出力端子からアクノリッジ信号を出力した後に、前記リクエスト信号入力端子から入力するリクエスト信号がレベル変化するタイミングに応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御する制御回路と
を有し、
前記各リクエスト装置は、
前記ダイレクトメモリアクセスコントローラが出力するアクノリッジ信号を入力するための１個のアクノリッジ信号入力端子と、
自らリクエスト信号をハイレベルにしてからローレベルにした後、前記アクノリッジ信号入力端子に入力されるアクノリッジ信号のパルス数に基づいて、前記リクエスト信号をハイレベルにするとともに、前記複数のリクエスト装置のうちの少なくとも１個がリクエスト信号を出力している間はリクエスト信号を入力するための１個のリクエスト信号入出力端子と、
前記アクノリッジ信号入力端子からアクノリッジ信号を入力した後にリクエスト装置毎に異なる一定期間経過後に、前記リクエスト信号入出力端子に出力するリクエスト信号のレベルを変化させることによりデータ転送のリクエストを行う制御回路と
を有し、
前記ダイレクトメモリアクセスコントローラの制御回路は、前記リクエスト信号入力端子からリクエスト信号が入力されると、前記アクノリッジ信号出力端子からアクノリッジ信号を出力し、その後、前記リクエスト信号の入力が終了した後に再びリクエスト信号を入力開始するタイミングに応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御することを特徴とするダイレクトメモリアクセス装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ダイレクトメモリアクセス技術に関し、特に複数のリクエストが競合する際のダイレクトメモリアクセス技術に関する。
【０００２】
【従来の技術】
マイクロコンピュータに於いては、近年、高速及び高機能化が著しく、その上、低価格のためにコスト削減も重要課題とされている。低コストのためにはチップのサイズの縮小、及び、より端子の少ないパッケージにする必要があり、ダイレクトメモリアクセス（ＤＭＡ）の応答に於いても１本でも端子数を減らすことは即コストダウンに直結する課題となる。
【０００３】
図７は、従来技術によるＤＭＡ装置の構成を示す。マイクロコンピュータ７００は、ＣＰＵ及びＤＭＡコントローラ（ＤＭＡＣ）を内蔵しており、複数のマクロ７０１〜７０３との間でそれぞれリクエスト信号ＲＥＱ及びアクノリッジ信号ＡＣＫの入出力を行う。マクロ７０１〜７０３は、それぞれリクエスト信号ＲＥＱの出力端子及びアクノリッジ信号ＡＣＫの入力端子を有する。マイクロコンピュータ７００は、リクエスト信号ＲＥＱの入力端子及びアクノリッジ信号ＡＣＫの出力端子をマクロ７０１〜７０３の数だけ有する。
【０００４】
各マクロ７０１〜７０３は、リクエスト信号ＲＥＱによりマイクロコンピュータ７００にＤＭＡのリクエストを行うことができる。マイクロコンピュータ７００は、リクエスト信号ＲＥＱを受けると、その許否の判断を行い、マクロ７０１〜７０３のうちの１つにアクノリッジ信号ＡＣＫを出力し、ＤＭＡを行う。すなわち、マイクロコンピュータ７００は、各マクロ７０１〜７０３に対して個々にリクエスト信号ＲＥＱ及びアクノリッジ信号ＡＣＫの入出力を行う。
【０００５】
【発明が解決しようとする課題】
しかし、マクロが１個増えると、マイクロコンピュータ７００の端子が２本増加してしまう。マイクロコンピュータ７００の端子数の制限からＤＭＡを諦めるか、マイクロコンピュータ７００のコストアップを覚悟して端子数を増加するかどちらかしかなかった。
【０００６】
本発明の目的は、ＤＭＡＣ（マイクロコンピュータ）の端子数を増加せずに、複数のマクロ（リクエスト装置）からのリクエストに応じてＤＭＡを行うことである。
【０００７】
【課題を解決するための手段】
本発明の一観点によれば、ダイレクトメモリアクセスコントローラ及び複数のリクエスト装置が接続されるダイレクトメモリアクセス装置であって、前記ダイレクトメモリアクセスコントローラは、前記複数のリクエスト装置のうちの少なくとも１個がリクエスト信号を出力している間はリクエスト信号を入力する１個のリクエスト信号入力端子と、前記リクエスト信号を入力すると、前記複数のリクエスト装置へパルス状のアクノリッジ信号を出力するための１個のアクノリッジ信号出力端子と、前記アクノリッジ信号出力端子からアクノリッジ信号を出力した後に、前記リクエスト信号入力端子から入力するリクエスト信号がレベル変化するタイミングに応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御する制御回路とを有し、前記各リクエスト装置は、前記ダイレクトメモリアクセスコントローラが出力するアクノリッジ信号を入力するための１個のアクノリッジ信号入力端子と、自らリクエスト信号をハイレベルにした後、前記アクノリッジ信号入力端子に入力されるアクノリッジ信号のパルス数に基づいて、前記リクエスト信号をローレベルにするとともに、前記複数のリクエスト装置のうちの少なくとも１個がリクエスト信号を出力している間はリクエスト信号を入力するための１個のリクエスト信号入出力端子と、前記アクノリッジ信号入力端子からアクノリッジ信号を入力した後にリクエスト装置毎に異なる一定期間経過後に、前記リクエスト信号入出力端子に出力するリクエスト信号のレベルを変化させることによりデータ転送のリクエストを行う制御回路とを有することを特徴とするダイレクトメモリアクセス装置が提供される。
本発明の他の観点によれば、ダイレクトメモリアクセスコントローラ及び複数のリクエスト装置が接続されるダイレクトメモリアクセス装置であって、前記ダイレクトメモリアクセスコントローラは、前記複数のリクエスト装置のうちの少なくとも１個がリクエスト信号を出力している間はリクエスト信号を入力する１個のリクエスト信号入力端子と、前記リクエスト信号を入力すると、前記複数のリクエスト装置へパルス状のアクノリッジ信号を出力するための１個のアクノリッジ信号出力端子と、前記アクノリッジ信号出力端子からアクノリッジ信号を出力した後に、前記リクエスト信号入力端子から入力するリクエスト信号がレベル変化するタイミングに応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御する制御回路とを有し、前記各リクエスト装置は、前記ダイレクトメモリアクセスコントローラが出力するアクノリッジ信号を入力するための１個のアクノリッジ信号入力端子と、自らリクエスト信号をハイレベルにしてからローレベルにした後、前記アクノリッジ信号入力端子に入力されるアクノリッジ信号のパルス数に基づいて、前記リクエスト信号をハイレベルにするとともに、前記複数のリクエスト装置のうちの少なくとも１個がリクエスト信号を出力している間はリクエスト信号を入力するための１個のリクエスト信号入出力端子と、前記アクノリッジ信号入力端子からアクノリッジ信号を入力した後にリクエスト装置毎に異なる一定期間経過後に、前記リクエスト信号入出力端子に出力するリクエスト信号のレベルを変化させることによりデータ転送のリクエストを行う制御回路とを有し、前記ダイレクトメモリアクセスコントローラの制御回路は、前記リクエスト信号入力端子からリクエスト信号が入力されると、前記アクノリッジ信号出力端子からアクノリッジ信号を出力し、その後、前記リクエスト信号の入力が終了した後に再びリクエスト信号を入力開始するタイミングに応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御することを特徴とするダイレクトメモリアクセス装置が提供される。
【０００８】
リクエスト信号及びアクノリッジ信号の２本の信号線を使用して、複数のリクエスト装置からのリクエストが実際はどこからきているかをダイレクトメモリアクセスコントローラ及び複数のリクエスト装置の双方にて認識することができる。これにより、ダイレクトメモリアクセスコントローラの端子数を増やすことなくダイレクトメモリアクセスのリクエストを多チャンネル入力することができ、低コスト化と高機能化を実現することができる。
【０００９】
【発明の実施の形態】
（第１の実施形態）
図１は、本発明の実施形態によるダイレクトメモリアクセス（ＤＭＡ）装置の構成を示す。マイクロコンピュータ１００は、中央処理装置（ＣＰＵ）及びＤＭＡコントローラ（ＤＭＡＣ）を内蔵しており、リクエスト信号ＤＭＡＲＥＱの１個の入力端子及びアクノリッジ信号ＤＭＡＡＣＫの１個の出力端子を有する。マクロ１０１〜１０３は、リクエスト装置であり、自らリクエスト信号ＲＥＱ１〜ＲＥＱ３を出力し、リクエスト信号ＤＭＡＲＥＱを入力するためのリクエスト信号入出力端子、及びアクノリッジ信号ＤＭＡＡＣＫを入力するためのアクノリッジ信号入力端子を有する。
【００１０】
マイクロコンピュータ１００は、１本のリクエスト信号ＤＭＡＲＥＱの線及び１本のリクエスト信号ＤＭＡＡＣＫの線を介して、各マクロ１０１〜１０３に接続される。リクエスト信号ＤＭＡＲＥＱの線は、プルダウンされており、複数のマクロ１０１〜１０３のうちの少なくとも１個がリクエスト信号ＲＥＱ１〜ＲＥＱ３を出力している間はハイレベルになり、マクロ１０１〜１０３のいずれもリクエスト信号ＲＥＱ１〜ＲＥＱ３を出力していないときにローレベルになる。マイクロコンピュータ１００は、同一のアクノリッジ信号ＤＭＡＡＣＫを複数のマクロ１０１〜１０３に出力する。
【００１１】
マイクロコンピュータ１００及び各マクロ１０１〜１０３は、バス１０５を介して互いに接続される。バス１０５には、その他、メモリ１０４及び１０６が接続される。バス１０５は、クロック線、アドレス線、データ線、リード／ライト制御線等を含む。
【００１２】
マクロ１０１〜１０３は、リクエスト信号ＲＥＱ１〜ＲＥＱ３を出力することにより、マイクロコンピュータ１００内のＤＭＡＣにＤＭＡをリクエストすることができる。マイクロコンピュータ１００内のＤＭＡＣは、そのリクエストに応じて、メモリ１０４及び１０６間のＤＭＡを制御したり、メモリ１０４又は１０５と入出力装置（Ｉ／Ｏ装置）との間のＤＭＡを制御する。その入出力装置は、入力及び／又は出力装置であり、例えばマクロ１０１〜１０３である。
【００１３】
複数のマクロ１０１〜１０３が存在する場合には、各マクロ１０１〜１０３のリクエストが競合することがある。その際、マイクロコンピュータ１００内のＤＭＡＣは、リクエストしたマクロ１０１〜１０３のうちから優先順位の高いものを選択し、選択したマクロ１０１〜１０３のリクエストに応じたＤＭＡを行う。その制御方法を、次に説明する。
【００１４】
図２は、図１のＤＭＡ装置内のマイクロコンピュータ１００及びマクロ（リクエスト装置）１０１の詳細な構成を示す。マクロ１０２及び１０３は、マクロ１０１と同様な構成である。
【００１５】
マイクロプロセッサ１００は、ＣＰＵ２０１及びＤＭＡＣ２００を有する。ＤＭＡＣ２００は、リクエスト信号受信回路２１１、アクノリッジ信号カウンタ２１２、アクノリッジ信号生成回路２１３、判定回路２１４及びアクセス制御回路２０２を有する。アクセス制御回路２０２は、転送元アドレスレジスタ２０３、転送先アドレスレジスタ２０４及びカウンタ２０５を有する。マクロ１０１は、アクノリッジ信号カウンタ２２１、制御回路２２２及びリクエスト信号生成回路２２３を有する。
【００１６】
図３は、図２のＤＭＡ装置の動作を示すタイミングチャートである。クロックＣＬＫは、ＣＰＵ２０１により生成され、バス１０５を介してマクロ１０１〜１０３に供給される。タイミングｔ１〜ｔ８は、それぞれクロックＣＬＫの立上りエッジのタイミングである。マクロ１０１〜１０３のリクエストが競合した場合、例えば、マクロ１０１が第１の優先順位、マクロ１０２が第２の優先順位、マクロ１０３が第３の優先順位であると、予め決めておく。
【００１７】
タイミングｔ１の後、３個のマクロ１０１〜１０３のリクエスト信号生成回路２２３がリクエスト信号ＲＥＱ１〜ＲＥＱ３をほぼ同時にハイレベルにした場合を例に説明する。リクエスト信号ＤＭＡＲＥＱは、リクエスト信号ＲＥＱ１〜ＲＥＱ３のうちのいずれかがハイレベルになるとハイレベルになり、リクエスト信号ＲＥＱ１〜ＲＥＱ３のすべてがローレベルのときにローレベルになる。
【００１８】
次に、タイミングｔ２では、ＤＭＡＣ２００のリクエスト信号受信回路２１１がハイレベルのリクエスト信号ＤＭＡＲＥＱを受信する。これに応答して、アクノリッジ信号カウンタ２１２は、カウンタ値を１に初期化し、カウンタ値をアクノリッジ信号生成回路２１３に出力する。アクノリッジ信号生成回路２１３は、第１回目のパルスのアクノリッジ信号ＤＭＡＡＣＫを出力する。
【００１９】
次に、マクロ１０３の動作を説明する。アクノリッジ信号カウンタ２２１は、アクノリッジ信号ＤＭＡＡＣＫを受信し、アクノリッジ信号ＤＭＡＡＣＫのパルス数をカウントし、第１回目のパルスであることを認識する。制御回路２２２は、自己のマクロ１０３が最も優先順位が低い第３の優先順位であることを認識しており、上記の第１回目のパルスであるときに、リクエスト信号ＲＥＱ３をローレベルにするようにリクエスト信号生成回路２２３を制御する。リクエスト信号生成回路２２３は、リクエスト信号ＲＥＱ３をローレベルにして出力する。リクエスト信号ＤＭＡＲＥＱは、リクエスト信号ＲＥＱ１及びＲＥＱ２がハイレベルであるのでハイレベルを維持する。制御回路２２２は、リクエスト信号ＤＭＡＲＥＱがハイレベルを維持していると判断し、自己のマクロ１０３のリクエストが受け入れられなかったことを認識することができる。
【００２０】
一方、ＤＭＡＣ２００の判定回路２１４も、同様に、リクエスト信号ＤＭＡＲＥＱがハイレベルのままであると判断し、マクロ１０３のリクエストを拒否すべきことを認識できる。なお、判定回路２１４は、マクロ１０３が第３の優先順位であり、第１回目のパルスの後のタイミング時にマクロ１０３のリクエストの許否を判断すべきことが予めわかっている。
【００２１】
次に、タイミングｔ３では、ＤＭＡ２００のアクノリッジ信号カウンタ２１２がクロックＣＬＫに応じてカウンタ値を２にし、アクノリッジ信号生成回路２１３は、第２回目のパルスのアクノリッジ信号ＤＭＡＡＣＫを出力する。
【００２２】
次に、マクロ１０２の動作を説明する。アクノリッジ信号カウンタ２２１は、アクノリッジ信号ＤＭＡＡＣＫを受信し、第２回目のパルスであることを認識する。制御回路２２２は、自己のマクロ１０２が第２の優先順位であることを認識しており、上記の第２回目のパルスであるときに、リクエスト信号ＲＥＱ２をローレベルにするようにリクエスト信号生成回路２２３を制御する。リクエスト信号生成回路２２３は、リクエスト信号ＲＥＱ２をローレベルにして出力する。リクエスト信号ＤＭＡＲＥＱは、リクエスト信号ＲＥＱ１がハイレベルであるのでハイレベルを維持する。制御回路２２２は、リクエスト信号ＤＭＡＲＥＱがハイレベルを維持していると判断し、自己のマクロ１０２のリクエストが受け入れられなかったことを認識することができる。
【００２３】
一方、ＤＭＡＣ２００の判定回路２１４も、同様に、リクエスト信号ＤＭＡＲＥＱがハイレベルのままであると判断し、マクロ１０２のリクエストを拒否すべきことを認識できる。なお、判定回路２１４は、マクロ１０２が第２の優先順位であり、第２回目のパルスの後のタイミング時にマクロ１０２のリクエストの許否を判断すべきことが予めわかっている。
【００２４】
次に、タイミングｔ４では、ＤＭＡ２００のアクノリッジ信号カウンタ２１２がクロックＣＬＫに応じてカウンタ値を３にし、アクノリッジ信号生成回路２１３は、第３回目のパルスのアクノリッジ信号ＤＭＡＡＣＫを出力する。
【００２５】
次に、マクロ１０１の動作を説明する。アクノリッジ信号カウンタ２２１は、アクノリッジ信号ＤＭＡＡＣＫを受信し、第３回目のパルスであることを認識する。制御回路２２２は、自己のマクロ１０１が第１の優先順位であることを認識しており、上記の第３回目のパルスであるときに、リクエスト信号ＲＥＱ１をローレベルにするようにリクエスト信号生成回路２２３を制御する。リクエスト信号生成回路２２３は、リクエスト信号ＲＥＱ１をローレベルにして出力する。リクエスト信号ＤＭＡＲＥＱは、リクエスト信号ＲＥＱ１〜ＲＥＱ３がすべてローレベルであるのでローレベルに変化する。制御回路２２２は、リクエスト信号ＤＭＡＲＥＱがローレベルに変化したと判断し、自己のマクロ１０１のリクエストが受け入れられたことを認識することができる。
【００２６】
一方、ＤＭＡＣ２００の判定回路２１４も、同様に、リクエスト信号ＤＭＡＲＥＱがローレベルであると判断し、マクロ１０１のリクエストを受け入れるべきことを認識できる。なお、判定回路２１４は、マクロ１０１が第１の優先順位であり、第３回目のパルスの後のタイミング時にマクロ１０１のリクエストの許否を判断すべきことが予めわかっている。
【００２７】
次に、タイミングｔ５では、ＤＭＡ２００のアクノリッジ信号カウンタ２１２がクロックＣＬＫに応じてカウンタ値を４にし、アクノリッジ信号生成回路２１３は、第４回目のパルスのアクノリッジ信号ＤＭＡＡＣＫを出力する。
【００２８】
次に、マクロ１０２及び１０３の動作を説明する。アクノリッジ信号カウンタ２２１は、アクノリッジ信号ＤＭＡＡＣＫを受信し、第４回目のパルスであることを認識する。制御回路２２２は、自己のマクロ１０２又は１０３のリクエストが受け入れられなかったので、再びリクエスト信号ＲＥＱ２及びＲＥＱ３をハイレベルにするようにリクエスト信号生成回路２２３を制御する。リクエスト信号生成回路２２３は、リクエスト信号ＲＥＱ２及びＲＥＱ３をハイレベルにして出力する。リクエスト信号ＤＭＡＲＥＱは、ハイレベルになる。
【００２９】
次に、タイミングｔ６では、アクセス制御回路２０２は、判定回路２１４の判定結果を受けて、リクエストが受け入れられたマクロ１０１のリクエストに応じて、以下のＤＭＡを行う。転送元アドレスレジスタ２０３、転送先アドレスレジスタ２０４及びカウンタ２０５には、それぞれ転送元アドレス、転送先アドレス及び転送データサイズ（転送回数）が格納される。アクセス制御回路２０２は、その格納された情報に応じて、メモリ間のＤＭＡ（データ転送）、又はメモリと入出力装置との間のＤＭＡを制御する。
【００３０】
ＤＭＡが終了すると、タイミングｔ７では、再びＤＭＡＣ２００が第１回目のパルスのアクノリッジ信号ＤＭＡＡＣＫを出力する。すると、マクロ１０３は、リクエスト信号ＲＥＱ３をローレベルにする。
【００３１】
次に、タイミングｔ８では、ＤＭＡＣ２００が第２回目のパルスのアクノリッジ信号ＤＭＡＡＣＫを出力する。すると、マクロ１０２は、リクエスト信号ＲＥＱ３をローレベルにする。リクエスト信号ＤＭＡＲＥＱもローレベルになるので、マクロ１０２のリクエストが受け入れられる。その後、マクロ１０２のリクエストに応じたＤＭＡが行われる。
【００３２】
以上のように、３個のマクロ１０１〜１０３が接続されている場合に、予め優先順位を決めておき、最も優先順位の低いマクロから順にアクノリッジ信号ＤＭＡＡＣＫのパルスに応じてリクエスト信号ＲＥＱ１〜ＲＥＱ３をローレベルにする。このことにより、マクロ１０３は、タイミングｔ２の後、第１回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに応じてリクエスト信号ＲＥＱ３をローレベルにし、それでもリクエスト信号ＤＭＡＲＥＱがハイレベルになっていることから、自分以外のマクロがリクエストを出していることがわかり、自分のリクエストは受け入れられなかったことがわかる。同様に、タイミングｔ３の後、マクロ１０２もリクエストは受け入れられないことがわかる。最後のマクロ１０１は、タイミングｔ４の後、自分がリクエスト信号ＲＥＱ１をローレベルにしたことでリクエスト信号ＤＭＡＲＥＱがローレベルとなったことから、自分のリクエストが受け入れられたことがわかる。その後は、タイミングｔ５で、第４回目のパルスのアクノリッジ信号ＤＭＡＡＣＫが出力され、リクエストが受け入れられなかったマクロ１０２及びマクロ１０３のリクエスト信号ＲＥＱ２及びＲＥＱ３を再度ハイレベルにする。この一連の動作により、２本の信号ＤＭＡＲＥＱ及びＤＭＡＡＣＫの線により３個のマクロ１０１〜１０３のうちのどのマクロのリクエストであるかを判定し、ＤＭＡを行うことができる。
【００３３】
図４は、リクエスト信号ＲＥＱ２及びＲＥＱ３が競合する場合のタイミングチャートである。
タイミングｔ１の後、リクエスト信号ＲＥＱ２及びＲＥＱ３がハイレベル、リクエスト信号ＲＥＱ１がローレベルになる。すなわち、マクロ１０２及び１０３のみがリクエストを行う場合を説明する。
【００３４】
次に、タイミングｔ２の後、第１回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに応じて、リクエスト信号ＲＥＱ３をローレベルにする。この際、リクエスト信号ＤＭＡＲＥＱはハイレベルのままであるので、マクロ１０３のリクエストは受け入れられなかったことがわかる。
【００３５】
次に、タイミングｔ３の後、第２回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに応じて、リクエスト信号ＲＥＱ２をローレベルにする。この際、リクエスト信号ＤＭＡＲＥＱはローレベルに変化するので、マクロ１０２のリクエストは受け入れられたことがわかる。
【００３６】
次に、タイミングｔ５の後、第４回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに応じて、リクエストが受け入れられなかったマクロ１０３のリクエスト信号ＲＥＱ３をハイレベルにする。
【００３７】
次に、タイミングｔ６で、マクロ１０２のリクエストに応じたＤＭＡが行われる。タイミングｔ７の後、再び第１回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに応じて、リクエスト信号ＲＥＱ３をローレベルにする。この際、リクエスト信号ＤＭＡＲＥＱはローレベルに変化するので、マクロ１０３のリクエストは受け入れられたことがわかる。この後、マクロ１０３のリクエストに応じたＤＭＡが行われる。
【００３８】
以上のように、ＤＭＡＣ２００は、リクエスト信号入力端子からリクエスト信号ＤＭＡＲＥＱが入力されると、アクノリッジ信号出力端子からアクノリッジ信号ＤＭＡＡＣＫを出力し、その後、リクエスト信号ＤＭＡＲＥＱの入力が終了するタイミングに応じて、複数のマクロ１０１〜１０３のうちの１個のマクロのリクエスト信号ＲＥＱ１〜ＲＥＱ３に基づくデータ転送（ＤＭＡ）を制御する。その際、ＤＭＡＣ２００は、複数のマクロ１０１〜１０３と上記のリクエスト信号の入力終了タイミングとの関係を記憶しているので、各マクロ１０１〜１０３のリクエストの許否を判断することができる。
【００３９】
一方、各マクロ１０１〜１０３は、リクエスト信号入出力端子からリクエスト信号ＲＥＱ１〜ＲＥＱ３を出力した後、アクノリッジ信号入力端子からアクノリッジ信号ＤＭＡＡＣＫを入力すると、その後にマクロ毎に異なる一定期間経過後にリクエスト信号ＲＥＱ１〜ＲＥＱ３の出力を終了することによりダイレクトメモリアクセスのリクエストを行うことになる。
【００４０】
（第２の実施形態）
図５は、本発明の第２の実施形態によるＤＭＡ装置のタイミングチャートを示す。本実施形態のＤＭＡ装置は、図１及び図２の構成と同じであり、制御方法のみが異なる。３つのリクエスト信号ＲＥＱ１〜ＲＥＱ３が競合する場合を例に説明する。３個のマクロ１０１〜１０３が接続されている場合に予め優先順位を決めておく。
【００４１】
タイミングｔ１の後、リクエスト信号ＲＥＱ１〜ＲＥＱ３がハイレベルになる。次に、タイミングｔ２の後、第１回目のパルスのアクノリッジ信号ＤＭＡＡＣＫにて一旦すべてのリクエスト信号ＲＥＱ１〜ＲＥＱ３をローレベルにする。
【００４２】
次に、タイミングｔ３〜ｔ５で、第２回目〜第４回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに対応し、最も優先順位の高いマクロから順にリクエスト信号ＲＥＱ１〜ＲＥＱ３をハイレベルにする。このことにより、マクロ１０１は、タイミングｔ３の後、第２回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに応じてリクエスト信号ＲＥＱ１をハイレベルにする。その直前のタイミングｔ３で、リクエスト信号ＤＭＡＲＥＱがローレベルであるので、自分のリクエストが受け入れられたことがわかる。
【００４３】
次に、タイミングｔ４の後、マクロ１０２がリクエスト信号ＲＥＱ２をハイレベルにする。その直前のタイミングｔ４では、リクエスト信号ＤＭＡＲＥＱがハイレベルとなっていることから、自分のリクエストは受け入れられなかったことがわかる。
【００４４】
次に、タイミングｔ５の後、同様に、マクロ１０３がリクエスト信号ＲＥＱ３をハイレベルにする。その直前のタイミングｔ５では、リクエスト信号ＤＭＡＲＥＱがハイレベルとなっていることから、自分のリクエストは受け入れられなかったことがわかる。
【００４５】
次に、タイミングｔ６の後、第５回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに応じて、リクエストが受け入れられたマクロ１０１のみがリクエスト信号ＲＥＱ１をローレベルにする。リクエスト信号ＲＥＱ２及びＲＥＱ３は、リクエストが受け入れられなかったのでハイレベルを維持する。
【００４６】
次に、タイミングｔ７の後、リクエストが受け入れられたマクロ１０１のリクエストに応じたＤＭＡが行われる。タイミングｔ８の後、再び第１回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに応じて、リクエスト信号ＲＥＱ２及びＲＥＱ３をローレベルにする。以下、上記と同様の処理を行う。
【００４７】
図６は、リクエスト信号ＲＥＱ２及びＲＥＱ３が競合する場合のタイミングチャートである。
タイミングｔ１の後、リクエスト信号ＲＥＱ２及びＲＥＱ３がハイレベル、リクエスト信号ＲＥＱ１がローレベルになる。すなわち、マクロ１０２及び１０３のみがリクエストを行う場合を説明する。次に、タイミングｔ２の後、第１回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに応じて、リクエスト信号ＲＥＱ２及びＲＥＱ３をローレベルにする。
【００４８】
次に、タイミングｔ３〜ｔ５で、第２回目〜第４回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに対応し、優先順位の高いマクロから順にリクエスト信号ＲＥＱ２及びＲＥＱ３をハイレベルにする。このことにより、マクロ１０２は、タイミングｔ４の後、第３回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに応じてリクエスト信号ＲＥＱ２をハイレベルにする。その直前のタイミングｔ４で、リクエスト信号ＤＭＡＲＥＱがローレベルであるので、自分のリクエストが受け入れられたことがわかる。
【００４９】
次に、タイミングｔ５の後、マクロ１０３がリクエスト信号ＲＥＱ３をハイレベルにする。その直前のタイミングｔ５では、リクエスト信号ＤＭＡＲＥＱがハイレベルとなっていることから、自分のリクエストは受け入れられなかったことがわかる。
【００５０】
次に、タイミングｔ６の後、第５回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに応じて、リクエストが受け入れられたマクロ１０２のみがリクエスト信号ＲＥＱ２を立ち下げる。リクエスト信号ＲＥＱ３は、リクエストが受け入れられなかったのでハイレベルを維持する。
【００５１】
次に、タイミングｔ７の後、リクエストが受け入れられたマクロ１０２のリクエストに応じたＤＭＡが行われる。タイミングｔ８の後、再び第１回目のパルスのアクノリッジ信号ＤＭＡＡＣＫに応じて、リクエスト信号ＲＥＱ３をローレベルにする。以下、上記と同様の処理を行う。
【００５２】
以上のように、ＤＭＡＣ２００は、リクエスト信号入力端子からリクエスト信号ＤＭＡＲＥＱが入力されると、アクノリッジ信号出力端子からアクノリッジ信号ＤＭＡＡＣＫを出力し、その後、リクエスト信号ＤＭＡＲＥＱの入力が終了した後に再びリクエスト信号ＤＭＡＲＥＱを入力開始するタイミングに応じて、複数のマクロ１０１〜１０３のうちの１個のマクロのリクエスト信号に基づくデータ転送（ＤＭＡ）を制御する。その際、ＤＭＡＣ２００は、複数のマクロ１０１〜１０３と上記のリクエスト信号ＤＭＡＲＥＱの入力開始タイミングとの関係を記憶しているので、各マクロ１０１〜１０３のリクエストの許否を判断することができる。
【００５３】
一方、各マクロ１０１〜１０３は、リクエスト信号入出力端子からリクエスト信号ＲＥＱ１〜ＲＥＱ３を出力した後、アクノリッジ信号入力端子からアクノリッジ信号ＤＭＡＡＣＫを入力するとリクエスト信号ＲＥＱ１〜ＲＥＱ３の出力を終了し、その後にマクロ毎に異なる一定期間経過後にリクエスト信号ＲＥＱ１〜ＲＥＱ３の出力を開始することによりダイレクトメモリアクセスのリクエストを行うことになる。
【００５４】
ＤＭＡＣ２００は、第１の実施形態ではリクエスト信号ＤＭＡＲＥＱがローレベルになるタイミングにより、マクロ１０１〜１０３のリクエストの許否を判断し、第２の実施形態ではリクエスト信号ＤＭＡＲＥＱがハイレベルになるタイミングにより、マクロ１０１〜１０３のリクエストの許否を判断する。すなわち、ＤＭＡＣ２００は、リクエスト信号ＤＭＡＲＥＱがレベル変化するタイミングにより、マクロ１０１〜１０３のリクエストの許否を判断することができる。
【００５５】
第１及び第２の実施形態では、リクエスト信号ＤＭＡＲＥＱ及びアクノリッジ信号ＤＭＡＡＣＫの２本の信号線を使用して、アクノリッジ信号ＤＭＡＡＣＫのパルスの回数に応じてリクエスト信号ＤＭＡＡＣＫ（ＲＥＱ１〜ＲＥＱ３）を操作することにより、複数のＤＭＡ要求元であるマクロ１０１〜１０３からのリクエストが実際はどこからきているかをＤＭＡＣ（マスタ）２００とマクロ（スレーブ）１０１〜１０３の双方にて認識ができる。これにより、ＤＭＡＣ２００を内蔵するマイクロコンピュータ１００のパッケージの端子数を増やすことなくＤＭＡ要求を多チャンネル入力することができ、低コスト化と高機能化を実現することができる。
【００５６】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００５７】
本発明の実施形態は、例えば以下のように種々の適用が可能である。
（付記１）複数のリクエスト装置からのデータ転送のリクエスト信号を入力するための１個のリクエスト信号入力端子と、
前記複数のリクエスト装置へアクノリッジ信号を出力するための１個のアクノリッジ信号出力端子と、
前記リクエスト信号入力端子から入力されるリクエスト信号に応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御する制御回路と
を有するダイレクトメモリアクセスコントローラ。
（付記２）前記制御回路は、メモリ間のデータ転送を制御する付記１記載のダイレクトメモリアクセスコントローラ。
（付記３）前記制御回路は、入力及び／又は出力装置とメモリとの間のデータ転送を制御する付記１記載のダイレクトメモリアクセスコントローラ。
（付記４）前記制御回路は、前記アクノリッジ信号出力端子からアクノリッジ信号を出力した後に、前記リクエスト信号入力端子から入力するリクエスト信号がレベル変化するタイミングに応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御する付記１記載のダイレクトメモリアクセスコントローラ。
（付記５）前記制御回路は、前記リクエスト信号入力端子からリクエスト信号が入力されると、前記アクノリッジ信号出力端子からアクノリッジ信号を出力し、その後、前記リクエスト信号の入力が終了するタイミングに応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御する付記４記載のダイレクトメモリアクセスコントローラ。
（付記６）前記制御回路は、前記複数のリクエスト装置と前記リクエスト信号の前記入力終了タイミングとの関係を記憶している付記５記載のダイレクトメモリアクセスコントローラ。
（付記７）前記制御回路は、前記アクノリッジ信号出力端子からパルス状のアクノリッジ信号を出力する付記６記載のダイレクトメモリアクセスコントローラ。
（付記８）前記制御回路は、前記リクエスト信号入力端子からリクエスト信号が入力されると、前記アクノリッジ信号出力端子からアクノリッジ信号を出力し、その後、前記リクエスト信号の入力が終了した後に再びリクエスト信号を入力開始するタイミングに応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御する付記４記載のダイレクトメモリアクセスコントローラ。
（付記９）前記制御回路は、前記複数のリクエスト装置と前記リクエスト信号の前記入力開始タイミングとの関係を記憶している付記８記載のダイレクトメモリアクセスコントローラ。
（付記１０）前記制御回路は、前記アクノリッジ信号出力端子からパルス状のアクノリッジ信号を出力する付記９記載のダイレクトメモリアクセスコントローラ。
（付記１１）ダイレクトメモリアクセスコントローラ及び複数のリクエスト装置が接続されるダイレクトメモリアクセス装置であって、
前記ダイレクトメモリアクセスコントローラは、
前記複数のリクエスト装置のうちの少なくとも１個がリクエスト信号を出力している間はリクエスト信号を入力する１個のリクエスト信号入力端子と、
前記複数のリクエスト装置へアクノリッジ信号を出力するための１個のアクノリッジ信号出力端子と、
前記アクノリッジ信号出力端子からアクノリッジ信号を出力した後に、前記リクエスト信号入力端子から入力するリクエスト信号がレベル変化するタイミングに応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御する制御回路とを有し、
前記各リクエスト装置は、
自らリクエスト信号を出力し、前記複数のリクエスト装置のうちの少なくとも１個がリクエスト信号を出力している間はリクエスト信号を入力するためのリクエスト信号入出力端子と、
前記ダイレクトメモリアクセスコントローラが出力するアクノリッジ信号を入力するためのアクノリッジ信号入力端子と、
前記アクノリッジ信号入力端子からアクノリッジ信号を入力した後にリクエスト装置毎に異なる一定期間経過後に、前記リクエスト信号入出力端子に出力するリクエスト信号のレベルを変化させることによりデータ転送のリクエストを行う制御回路と
を有するダイレクトメモリアクセス装置。
（付記１２）前記ダイレクトメモリアクセスコントローラの制御回路は、前記リクエスト信号入力端子からリクエスト信号が入力されると、前記アクノリッジ信号出力端子からアクノリッジ信号を出力し、その後、前記リクエスト信号の入力が終了するタイミングに応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御する付記１１記載のダイレクトメモリアクセス装置。
（付記１３）前記ダイレクトメモリアクセスコントローラの制御回路は、前記リクエスト信号入力端子からリクエスト信号が入力されると、前記アクノリッジ信号出力端子からアクノリッジ信号を出力し、その後、前記リクエスト信号の入力が終了した後に再びリクエスト信号を入力開始するタイミングに応じて、前記複数のリクエスト装置のうちの１個のリクエスト装置のリクエスト信号に基づくデータ転送を制御する付記１１記載のダイレクトメモリアクセス装置。
（付記１４）自らリクエスト信号を出力し、リクエスト信号線上のリクエスト信号を入力するためのリクエスト信号入出力端子と、
アクノリッジ信号を入力するためのアクノリッジ信号入力端子と、
前記アクノリッジ信号入力端子からアクノリッジ信号を入力した後の一定期間経過後に、前記リクエスト信号入出力端子に出力するリクエスト信号のレベルを変化させることによりダイレクトメモリアクセスのリクエストを行う制御回路とを有するリクエスト装置。
（付記１５）前記制御回路は、前記リクエスト信号入出力端子からリクエスト信号を出力した後、前記アクノリッジ信号入力端子からアクノリッジ信号を入力すると、その後の一定期間経過後に前記リクエスト信号の出力を終了することによりダイレクトメモリアクセスのリクエストを行う付記１４記載のリクエスト装置。
（付記１６）前記制御回路は、前記リクエスト信号の出力終了のタイミングで、前記リクエスト線のレベルが変化するか否かに応じてリクエストの許否を判定する付記１５記載のリクエスト装置。
（付記１７）前記制御回路は、前記リクエスト信号入出力端子からリクエスト信号を出力した後、前記アクノリッジ信号入力端子からアクノリッジ信号を入力するとリクエスト信号の出力を終了し、その後の一定期間経過後に前記リクエスト信号の出力を開始することによりダイレクトメモリアクセスのリクエストを行う付記１４記載のリクエスト装置。
（付記１８）前記制御回路は、前記リクエスト信号の出力開始のタイミングで、前記リクエスト信号線のレベルが変化するか否かに応じてリクエストの許否を判定する付記１７記載のリクエスト装置。
【００５８】
【発明の効果】
以上説明したように、リクエスト信号及びアクノリッジ信号の２本の信号線を使用して、複数のリクエスト装置からのリクエストが実際はどこからきているかをダイレクトメモリアクセスコントローラ及び複数のリクエスト装置の双方にて認識することができる。これにより、ダイレクトメモリアクセスコントローラの端子数を増やすことなくダイレクトメモリアクセスのリクエストを多チャンネル入力することができ、低コスト化と高機能化を実現することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態によるＤＭＡ装置の構成を示すブロック図である。
【図２】第１の実施形態によるＤＭＡ装置の詳細な構成を示すブロック図である。
【図３】第１の実施形態によるＤＭＡ装置の動作を示すタイミングチャートである。
【図４】第１の実施形態によるＤＭＡ装置の動作を示す他のタイミングチャートである。
【図５】本発明の第２の実施形態によるＤＭＡ装置の動作を示すタイミングチャートである。
【図６】第２の実施形態によるＤＭＡ装置の動作を示す他のタイミングチャートである。
【図７】従来技術によるＤＭＡ装置の構成を示すブロック図である。
【符号の説明】
１００  マイクロコンピュータ
１０１〜１０３  マクロ（リクエスト装置）
１０４，１０６  メモリ
１０５  バス
２００  ＤＭＡＣ
２０１  ＣＰＵ
２０２  アクセス制御回路
２０３  転送元アドレスレジスタ
２０４  転送先アドレスレジスタ
２０５  カウンタ
２１１  リクエスト信号受信回路
２１２  アクノリッジ信号カウンタ
２１３  アクノリッジ信号生成回路
２１４  判定回路
２２１  アクノリッジ信号カウンタ
２２２  制御回路
２２３  リクエスト信号生成回路
７００  マイクロコンピュータ
７０１〜７０３  マクロ
【図１】
0004245852.tif 000002
【図２】
0004245852.tif 000003
【図３】
0004245852.tif 000004
【図４】
0004245852.tif 000005
【図５】
0004245852.tif 000006
【図６】
0004245852.tif 000007
【図７】
0004245852.tif 000008