(57)【要約】【課題】再書込みの時間に起因するオーバーヘッドを削減し、応答性能を向上させる。【解決手段】このＤＭＡ装置は、転送要求を識別する要求番号及び転送要求に必要な転送情報を保持する第１、第２バッファ１０１、１０２と、転送要求と優先レベルが対応付けられた管理テーブルを参照し、新たに入力された転送要求の優先レベルが第２バッファ１０２に保持された転送要求の優先レベルよりも高い場合には、第２バッファ１０２に格納された転送情報を新たに入力された転送要求の転送情報に更新し、新たに入力された転送要求の優先レベルが第２バッファ１０２に保持された転送要求の優先レベルよりも低い場合には、第１バッファ１０１に格納された転送情報を新たに入力された転送要求の転送情報に更新する優先順位比較回路１０５と、を有する。【選択図】図２
2010061620.tif 000002
【特許請求の範囲】
【請求項１】
第１転送要求に必要な第１転送情報を保持する第１バッファ及び第２転送要求に必要な第２転送情報を保持する第２バッファと、
新たに入力された転送要求である現転送要求と、前記第１転送要求及び前記第２転送要求が一致するか否かを判定する転送要求比較回路と、
前記転送要求比較回路において、前記現転送要求と、前記第１転送要求及び前記第２転送要求が一致しないと判定された場合に、前記現転送要求の優先順位が前記第２転送要求の前記優先順位よりも高い場合には、前記第２転送情報を前記現転送要求の転送情報に更新し、前記現転送要求の優先順位が前記第２転送要求の優先順位よりも低い場合には、前記第１転送情報を前記現転送要求の転送情報に更新する優先順位決定回路と、
前記優先順位決定回路によって更新された前記第１バッファ又は前記第２バッファに保持された前記転送情報を用いてＤＭＡ転送を行うＤＭＡ転送制御回路と、を備えたＤＭＡ装置。
【請求項２】
前記優先順位は、予め設定された優先レベル及び／又は１回の転送要求に対して設定されたＤＭＡ転送回数に基づいて設定される
請求項１に記載のＤＭＡ装置。
【請求項３】
前記優先順位比較回路は、前記現転送要求の優先レベルと、前記第２転送要求の優先レベルが同じ場合には、前記現転送要求と前記第２転送要求の前記ＤＭＡ転送回数を比較し、
前記現転送要求の前記ＤＭＡ転送回数が前記第２転送要求の前記ＤＭＡ転送回数よりも多い場合には、前記第１転送情報を前記現転送要求の前記転送情報に更新し、
前記現転送要求の前記ＤＭＡ転送回数が前記第２転送要求の前記ＤＭＡ転送回数よりも少ない場合には、前記第２転送情報を前記現転送要求の前記転送情報に更新する
請求項２に記載のＤＭＡ装置。
【請求項４】
前記現転送要求に対応する前記転送情報を記憶装置から取得して前記第１バッファ又は前記第２バッファに格納する転送情報入出力回路を更に備え、
前記転送情報入出力回路は、前記現転送要求の前記転送情報に基づいて、前記第２バッファの更新を禁止する
請求項１乃至３のうちいずれか１項に記載のＤＭＡ装置。
【請求項５】
前記転送情報入出力回路は、前記現転送要求のＤＭＡ転送回数が多い場合には、前記第２バッファの更新を禁止する
請求項１乃至４のうちいずれか１項に記載のＤＭＡ装置。
【請求項６】
前記優先順位比較回路は、初期状態において前記第２バッファに保持された前記転送情報が存在しない場合には、前記第２バッファに前記現転送要求の前記転送情報を書き込む
請求項１乃至５のうちいずれか１項に記載のＤＭＡ装置。
【請求項７】
第１転送要求に必要な第１転送情報を保持する第１バッファ及び第２転送要求に必要な第２転送情報を保持する第２バッファを備えたＤＭＡ装置を用いたＤＭＡ転送方法であって、
新たに入力された転送要求である現転送要求と、前記第１転送要求及び前記第２転送要求が一致するか否かを判定し、
前記現転送要求と、前記第１転送要求及び前記第２転送要求が一致しないと判定された場合に、転送要求の優先順位を比較し、
前記現転送要求の優先順位が前記第２転送要求の優先順位よりも高い場合には、前記第２転送情報を前記現転送要求の転送情報に更新し、
前記現転送要求の優先順位が前記第２転送要求の優先順位よりも低い場合には、前記第１転送情報を前記現転送要求の転送情報に更新し、
更新された前記第１バッファ又は前記第２バッファに保持された前記転送情報を用いてＤＭＡ転送を行うＤＭＡ転送方法。
【請求項８】
前記優先順位は、予め設定された優先レベル及び／又は１回の転送要求に対して設定されたＤＭＡ転送回数に基づいて設定される
請求項７に記載のＤＭＡ転送方法。
【請求項９】
前記現転送要求の前記優先レベルと、前記第２転送要求の前記優先レベルが同じ場合には、更に前記現転送要求と前記第２転送要求の前記ＤＭＡ転送回数を比較し、
前記現転送要求の前記ＤＭＡ転送回数が前記第２転送要求の前記ＤＭＡ転送回数よりも多い場合には、前記第１転送情報を前記現転送要求の前記転送情報に更新し、
前記現転送要求の前記ＤＭＡ転送回数が前記第２転送要求の前記ＤＭＡ転送回数よりも少ない場合には、前記第２転送情報を前記現転送要求の転送情報に更新する
請求項８に記載のＤＭＡ転送方法。
【請求項１０】
前記ＤＭＡ転送回数が多い前記転送要求については、前記優先順位に関わらず前記第２バッファの更新を禁止し、前記第１バッファを使用することで前記ＤＭＡ転送を実行する
請求項８又は９に記載のＤＭＡ転送方法。
【請求項１１】
初期状態において前記第２バッファに保持された前記第２転送情報が存在しない場合には、前記第２転送情報として前記現転送要求の転送情報を前記第２バッファに書き込む
請求項７乃至１０のうちいずれか１項に記載のＤＭＡ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ（以下、マイコンと称す）に関し、特に、マイコンに内蔵されるＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）装置及びＤＭＡ転送方法に関する。
【背景技術】
【０００２】
マイコンに搭載される周辺Ｉ／Ｏ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｐｏｒｔ）の増加に伴うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）負荷の軽減を目的として、ＤＭＡの多チャネル化の要求がある。一般的に、ＤＭＡは、チャネル数分の転送情報をＤＭＡ装置に内蔵しているため、多チャネル化すると転送情報の内蔵量が増え、ＤＭＡの物理的規模が増加する。
【０００３】
多チャネル化による物理的規模の増加を回避する手段として、転送情報をＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の書き換え可能なメモリに配置し、転送の度にＲＡＭから転送情報を読み出し、読み出した情報をＤＭＡ装置内に配置してＤＭＡ転送を行う手法がある。
【０００４】
ＲＡＭに配置した転送情報を読み出すタイプのＤＭＡでは、多チャネル化による物理規模の増加を回避する事はできるが、転送の度にＲＡＭから転送情報を読み出すことによるオーバーヘッドが発生するため、転送性能の劣化を引き起こすという問題がある。
【０００５】
更に、近年では、マイコン動作クロックの高周波数化に対応するために、データパスの切りなおしが頻繁に行われるようになり、転送クロック数を増大させる傾向にある。また、周辺Ｉ／Ｏの多様化や、システムの複雑化に伴う多重バス化により、ＤＭＡからＲＡＭへのアクセス経路において、異なるバスへの乗せ替えが必要になり、オーバーヘッドは更に増加する傾向にある。そのため、転送情報の読み出しに起因するオーバーヘッドの削減が望まれている。
【０００６】
図９、図１０及び図１１を用いて、特許文献１に開示された従来の装置の構成を説明する。図９に示すように、この装置は、ＤＭＡカウントレジスタ９１、ＤＭＡコマンドレジスタ９２、ＤＭＡアドレスレジスタ９３、ＤＭＡオフセットレジスタ９４及び要求番号レジスタ８１からなる第１バッファと、データ転送を行うデータバス９５、転送要求信号８４、要求信号８４に対応する要求番号８２、要求番号比較器８３、及びＤＭＡ制御回路９９から構成される。この装置は、ＲＡＭに配置した転送情報を読み出すタイプのＤＭＡである。
【０００７】
図１０は、ＲＡＭに配置した転送情報の例である。転送情報は、転送情報ＴＩＡ、ＴＩＢ、ＴＩＣの３ワード分で一つの転送情報として構成される。図１１は、ＲＡＭ上に配置した複数の転送情報の例である。読み出す転送情報は、ＲＡＭ上に、転送情報ＴＩＡ０００、ＴＩＢ０００、・・・のようにユーザープログラムによって予め決められた位置に配置されている。
【０００８】
次に、このように構成された装置の動作について説明する。転送要求は、転送要求信号８２により行われる。転送要求信号８４に対応する要求番号が要求番号８２から与えられる。このとき、要求番号比較器８３では、要求番号８２と要求番号レジスタ８１に格納されている値の比較が行われる。初回では、要求番号レジスタ８１が空であり、要求番号比較器８３での比較結果は一致しない。比較結果が一致しない場合には、要求番号８２を要求番号レジスタ８１に格納し、要求番号８２に対応する転送情報をＲＡＭから読み出す。
【０００９】
まず、転送情報ＴＩＡをＲＡＭから読み出し、ＤＭＡカウントレジスタ９１とＤＭＡコマンドレジスタ９２に配置する。次に、転送情報ＴＩＢ及びＴＩＣを順次ＲＡＭから読み出し、ＤＭＡアドレスレジスタ９３に配置する。そしてＤＭＡ転送を実行する。
【００１０】
次に、前回の要求番号と同じ転送要求が発生すると、要求番号比較器８３では、要求番号８２と要求番号レジスタ８１に格納されている値の比較が行われる。前回の要求番号と同じ転送要求であるため、比較結果が一致することとなり、転送情報ＴＩＡ、ＴＩＢ、ＴＩＣの読み出しをスキップし、即座にＤＭＡ転送を行う。
【００１１】
また、前回の要求番号と異なる転送要求が発生すると、要求番号比較器８３で要求番号８２と要求番号レジスタ８１に格納されている値の比較が行われる。前回の要求番号と異なる転送要求であるため、この比較結果が一致しないこととなる。そこで、前回の要求番号に対応する転送情報ＴＩＡ、ＴＩＢ、ＴＩＣがＤＭＡ装置内部に残っているため、前回の要求番号に対応するＲＡＭ領域に転送情報ＴＩＡ、ＴＩＢ、ＴＩＣを退避するために書き戻す。その後、今回の要求番号８２に対応する転送情報ＴＩＡ、ＴＩＢ、ＴＩＣを読み出して、ＤＭＡ転送を行う。
【００１２】
このように、従来技術では、要求番号比較器８３により、前回の要求番号と今回の要求番号が一致するか否かにより、転送情報の読み出しをスキップするか否かを決定する。
【００１３】
図１２は、要求番号が一致する例であり、従来技術の効果が発揮される様子を示すタイミングチャートである。まず、期間Ｔ０で転送要求と共に、要求番号０２が入力される。ＤＭＡ装置ではこれを受け、要求番号レジスタ８１に要求番号０２を設定し、期間Ｔ０２Ｒに要求番号０２に対応する転送情報ＴＩＡ、ＴＩＢ、ＴＩＣを読み出した後、期間ＴＤＭＡでＤＭＡ転送を行う。次に、期間Ｔ１で前回と同じ要求番号０２の要求が発生すると、要求番号レジスタ８１の値と期間Ｔ１での要求番号が同じであるため、転送情報ＴＩＡ、ＴＩＢ、ＴＩＣのリードをスキップして、期間ＴＤＭＡのサイクルを即座に実行する。
【００１４】
図１３は、前回の要求番号と要求番号が一致しない例である。従来技術では、まず、期間Ｔ０で要求番号００の転送要求が発生すると、期間Ｔ００Ｒで要求番号００に対応する転送情報ＴＩＡ、ＴＩＢ、ＴＩＣの読み出しが行われ、期間ＴＤＭＡでＤＭＡ転送が行われる。次に、期間Ｔ１で要求番号０１の転送要求が発生すると、要求番号０１は、前回の要求番号００と異なる番号であるため、期間Ｔ００Ｗで要求番号００に対応する転送情報ＴＩＡ、ＴＩＢ、ＴＩＣを退避するための書き戻しが行われる。そして、期間Ｔ０１Ｒで要求番号０１に対応する転送情報ＴＩＡ、ＴＩＢ、ＴＩＣを読み出して、この転送情報に基づいてＤＭＡ転送を行う。
【特許文献１】特開２０００−９９４５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
図１３に示すように、従来では、前回の転送要求と異なる要求番号の転送要求が発生すると、必ず期間Ｔ００Ｗと期間Ｔ０１Ｒが発生することとなる。このため、従来技術では、再書込みの時間がオーバーヘッドとなり、応答性能が低下するという問題点がある。
【課題を解決するための手段】
【００１６】
本発明のＤＭＡ装置の一態様は、第１転送要求に必要な第１転送情報を保持する第１バッファ及び第２転送要求に必要な第２転送情報を保持する第２バッファと、新たに入力された転送要求である現転送要求と、前記第１転送要求及び前記第２転送要求が一致するか否かを判定する転送要求比較回路と、前記転送要求比較回路において、前記現転送要求と、前記第１転送要求及び前記第２転送要求が一致しないと判定された場合に、前記現転送要求の優先順位が前記第２転送要求の前記優先順位よりも高い場合には、前記第２転送情報を前記現転送要求の転送情報に更新し、前記現転送要求の優先順位が前記第２転送要求の優先順位よりも低い場合には、前記第１転送情報を前記現転送要求の転送情報に更新する優先順位決定回路と、前記優先順位決定回路によって更新された前記第１バッファ又は前記第２バッファに保持された前記転送情報を用いてＤＭＡ転送を行うＤＭＡ転送制御回路と、を備えたことを特徴とする。
【００１７】
このように、転送情報を保持する第１、第２バッファを設け、転送情報の優先レベルに基づいて第２バッファに保持される転送情報を更新していくことで、優先レベルの高い転送情報が第２バッファに保持され続ける。そのため、例えば、転送頻度の高い転送情報に高い優先レベルを設定しておけば、この優先情報が第２バッファに保持されることとなり、この転送要求が発生した際のオーバーヘッドを削減することができる。これにより、ＤＭＡ装置の応答性能を向上させることができる。
【発明の効果】
【００１８】
本発明に係るＤＭＡ装置の一態様によれば、ＤＭＡ装置の応答性能を向上させることができる。
【発明を実施するための最良の形態】
【００１９】
以下、添付した図面を参照して本発明の最良な実施の形態について説明する。
［第１の実施形態］
【００２０】
図１は、本発明の第１の実施形態に係るＤＭＡ装置を含む上位システムの構成例を示すブロック図である。この上位システムは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１２０、割り込みコントローラ１２１、転送要因セレクタ１１５、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）装置１１６及びバスコントロールユニット１１７を備えている。
【００２１】
ＣＰＵ１２０は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２５に格納された種々のプログラムを実行する。ＣＰＵ１２０は、データバス２２８を介してバスコントロールユニット１１７に接続されている。ＣＰＵ１２０は、ＢＣＵ（Ｂｕｓ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）制御情報２２７及びデータバス２２８を使用し、ＲＡＭ１２５や外部メモリ１２４に格納されたプログラムやデータの呼び出しや書き込みを行う。
【００２２】
割り込みコントローラ１２１は、周辺Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）１２２や外部周辺Ｉ／Ｏ１２３から入力された割り込み要求２２９、２３０に従って、ＣＰＵ１２０上で実行されているプログラムを一時停止させるよう構成されている。
【００２３】
転送要因セレクタ１１５は、周辺Ｉ／Ｏ１２２から出力される割り込み要求２２９及び外部周辺Ｉ／Ｏ１２３から出力される割り込み要求２３０を入力し、予めプログラムされた優先順位に従って、１つの転送要求を選択する。そして、選択された転送要求をＤＭＡ装置１１６に対して行う。転送要因セレクタ１１５は、選択した転送要求２００の要求番号２０２と、この転送要求に対してユーザが予め設定した現優先レベル２０３をＤＭＡ装置１１６に出力する。例えば、転送頻度の多い転送要求に対して高い優先レベルが設定されている。
【００２４】
ＤＭＡ装置１１６は、データバス２２０を介してバスコントロールユニット１１７に接続されている。ＤＭＡ装置１１６は、転送要因セレクタ１１５より、転送要求２００、現優先レベル２０３及び現優先レベル２０３を入力し、バスコントロールユニット１１７に対してＢＣＵ制御情報２２６を入出力する。
【００２５】
バスコントロールユニット１１７は、ＢＣＵ制御情報２２６、データバス２２０、ＢＣＵ制御情報２２７、データバス２２８を使用して、周辺Ｉ／Ｏ１２２と外部周辺Ｉ／Ｏ１２３と外部メモリ１２４とＲＡＭ１２５との間でデータを入出力する。
【００２６】
次に、このように構成された上位システムレベルの動作について説明する。転送要因セレクタ１１５は、周辺Ｉ／Ｏ１２２から出力される割り込み要求２２９及び外部周辺Ｉ／Ｏ１２３から出力される割り込み要求２３０が入力されると、予めプログラムされた優先順位に従って、一つの転送要求を選択し、転送要求２００によって転送要求を行う。このとき、選択した転送要求に対応する現要求番号２０２と現優先レベル２０３を出力する。
【００２７】
ＤＭＡ装置１１６は、現要求番号２０２と現優先レベル２０３と転送要求２００を入力し、現要求番号２０２に対応する転送情報をＲＡＭ１２５から読み出す。そして、ＤＭＡ装置１１６は、ＲＡＭ１２５から読み出した転送情報に従って、ＢＣＵ制御情報２２６及びデータバス２２０を使用し、周辺Ｉ／Ｏ１２２と外部周辺Ｉ／Ｏ１２３と外部メモリ１２４とＲＡＭ１２５との間でＤＭＡ転送を行う。
【００２８】
図２は、ＤＭＡ装置の構成例を示すブロック図である。ＤＭＡ装置１１６は、要求番号比較器１０７、転送情報入出力回路１１２と優先順位制御回路１０５と第１バッファ１０１と第２バッファ１０２、転送情報選択回路１００及びＤＭＡ転送制御回路１１４により構成される。
【００２９】
優先順位制御回路１０５は、優先レベル比較回路１１０、転送回数比較回路１１１、及び判定回路１１３を備えている。優先順位制御回路１０５は、優先順位の高い転送要求を第２バッファ１０２に保持するよう構成されている。具体的には、優先順位制御回路１０５は、新たに入力された転送要求の優先順位が第２バッファ１０２に格納された転送要求の優先順位よりも高い場合には、第２バッファ１０２を選択する。これにより、第２バッファ１０２には、転送情報入出力回路１１２から新たに選択された転送要求に対応する転送情報が格納される。
【００３０】
一方、優先順位制御回路１０５は、新たに入力された転送要求の優先順位が第２バッファ１０２に格納された転送要求よりも低い場合には、第１バッファ１０１を選択する。これにより、第１バッファ１０１には、転送情報入出力回路１１２より、新たに選択された転送要求に対応する転送情報が格納される。なお、転送要求が発生する前の初期状態においては、第１バッファ１０１及び第２バッファ１０２が空の状態であるため、優先順位制御回路１０５は、第２バッファ１０２を選択する。これにより、初期状態では、新たに発生した転送要求は第２バッファ１０２に格納される。
【００３１】
第１バッファ１０１には、要求番号、ソースアドレスレジスタＳＡＲ、ディスティネーションアドレスレジスタＤＡＲ、転送回数レジスタＤＢＣ及びコントロール情報ＣＩが格納される。第２バッファ１０２には、優先レベル要求番号、ソースアドレスレジスタＳＡＲ、ディスティネーションアドレスレジスタＤＡＲ、転送回数レジスタＤＢＣ及びコントロール情報ＣＩが格納される。
【００３２】
要求番号比較器１０７には、転送要因セレクタ１１５から転送要求２００及び現要求番号２０２が入力される。要求番号比較器１０７は、入力された現要求番号２０２と、第１バッファ１０１及び第２バッファ１０２に格納された要求番号とを比較し、比較結果に応じて、転送要求信号２１５、バッファ選択信号２０１、及び転送情報読み出し要求２１０を出力する。
【００３３】
転送要求信号２１５とは、ＤＭＡ転送制御回路１１４に対して、ＤＭＡ転送を要求する信号である。転送情報読み出し要求２１０は、転送情報入出力回路１１２に対して、転送情報をＲＡＭ１２５から呼び出すよう要求する信号である。バッファ選択信号２０１とは、転送情報選択回路１００に対して第１バッファ１０１又は第２バッファ１０２のいずれかを選択するよう命令する信号である。
【００３４】
転送情報入出力回路１１２は、転送情報読み出し要求２１０を入力し、転送回数情報２１６と転送要求信号２１４を出力する。また、転送情報入出力回路１１２は、ＢＣＵ制御情報２２６及びデータバス２２０を使用して、第１バッファ１０１及び第２バッファ１０２との間で転送情報２２１を入出力する。
【００３５】
優先レベル比較回路１１０は、現優先レベル２０３と第２バッファ１０２に格納された優先レベルを入力し、比較結果に応じて比較結果２２５を出力する。また、優先レベル比較回路１１０は、現優先レベル２０３と第２バッファ１０２に格納された優先レベルが同じ場合には、転送回数比較回路１１１に対して転送回数比較要求２１８を出力する。
【００３６】
転送回数比較回路１１１は、転送回数比較要求２１８が入力されると、転送情報入出力回路１１２から新たに入力された転送要求の転送回数情報２１６を入力すると共に、第２バッファ１０２から転送回数情報２１７を入力し、新たに入力された転送要求の１回の転送要求に対して設定されたＤＭＡ転送回数と、第２バッファ１０２に格納された１回の転送要求に対して設定されたＤＭＡ転送回数とを比較する。転送回数比較回路１１１は、この比較結果２３２を判定回路１１３に出力する。
【００３７】
図３は、一般的にシングル転送と呼ばれる転送形態を示すタイミングチャートである。シングル転送では、１回のＤＭＡ要求により１回のＤＭＡ転送が発生する。図７には、１００回のＤＭＡ要求によって、１００回のＤＭＡ転送が行われる様子が示されている。
【００３８】
このシングル転送を、第１バッファ１０１で行う場合は、転送情報ＴＩＡ、ＴＩＢ、ＴＩＣの読み出し、ＤＭＡ転送、転送情報ＴＩＡ、ＴＩＢ、ＴＩＣの書き戻し、という一連の動作が１００回行われるため、転送情報ＴＩＡ、ＴＩＢ、ＴＩＣの読み出しと書き戻しが１００回発生することとなる。
【００３９】
図４は、一般的にブロック転送と呼ばれる転送形態を示すタイミングチャートである。ブロック転送では、１回のＤＭＡ要求で指定回数分の転送を行うものである。図４では、１回のＤＭＡ要求に対して、１００回のＤＭＡ転送が行われる様子を示している。ブロック転送を第１バッファ１０１で行う場合には、最初の１回だけ転送情報ＴＩＡ、ＴＩＢ、ＴＩＣを読み出し、１００回のＤＭＡ転送を行った後、最後の一回だけ転送情報ＴＩＡ、ＴＩＢ、ＴＩＣの書き戻しを行う。
【００４０】
このようなシングル転送及びブロック転送は、更に予め設定された回数分繰り返し実行される。例えば、図３に示すシングル転送の転送要求の繰り返し回数が５回であれば、ＤＭＡ転送はトータルで５回行われる。一方、図４に示すブロック転送の転送要求の繰り返し回数が５回に設定されていれば、ＤＭＡ転送はトータルで５００回実行されることとなる。
【００４１】
転送回数比較回路１１１では、新たに入力された転送要求の１回の転送要求に対して設定されたＤＭＡ転送回数と、第２バッファ１０２に格納された１回の転送要求に対して設定されたＤＭＡ転送回数が同じ場合には、この予め設定されたシングル転送又はブロック転送の繰り返し回数を比較する。そして、予め設定された繰り返し回数の多い転送要求に対して高い優先順位を設定し、比較結果２３２として判定回路１１３に出力する。
【００４２】
判定回路１１３は、優先レベルについての比較結果２２５と、ＤＭＡ転送回数についての比較結果２３２を入力し、これに基づいてバッファ選択信号２１２を出力する。バッファ選択信号２１２は、第１バッファ１０１及び第２バッファ１０２に出力される。
【００４３】
第１バッファ１０１及び第２バッファ１０２は、転送情報入出回路１１２との間で転送情報の入出力を行う。第１バッファ１０１及び第２バッファ１０２は、バッファ選択信号２１２に基づいて転送情報入出力回路１１２から入力される転送情報２２１を取り込む。
【００４４】
第１バッファ１０１は、第１バッファ１０１を選択したことを示すバッファ選択信号２１２が入力されると、転送情報入出力回路１１２より転送情報２２１を取り込んで、転送情報２２２として転送情報選択回路１００に出力する。第２バッファ１０２は、第２バッファ１０２を選択したことを示すバッファ選択信号２１２が入力されると、転送情報入出力回路１１２より転送情報２２１を取り込んで、転送情報２２３として転送情報選択回路１００に出力する。
【００４５】
転送情報選択回路１００は、要求番号比較器１０７より入力されるバッファ選択信号２０１又は優先順位制御回路１０５から入力されたバッファ選択信号２１２に基づいて、第１バッファ１０１から入力される転送情報２２２又は第２バッファ１０２から入力される転送情報２２４を選択し、選択した転送情報２２２又は２２４をＤＭＡ転送制御回路１１４に出力する。
【００４６】
ＤＭＡ転送制御回路１１４は、要求番号比較器１０７から入力された転送要求信号２１５又は転送情報入出力回路１１２から入力された転送要求信号２１４に従って、転送情報選択回路１００によって選択された転送情報２２４をＢＣＵ制御情報２２６を介して外部周辺Ｉ／Ｏ１２３、周辺Ｉ／Ｏ１２２及びＲＡＭ１２５などに出力する。
【００４７】
図５は、第１の実施形態に係るＤＭＡ装置において転送される転送情報を示す図である。転送情報入出力回路１１２によって読み出された転送情報は、転送情報ＴＩＡ、ＴＩＢ、ＴＩＣの３ワード分で一つの転送情報として構成されている。転送情報ＴＩＡには、転送回数レジスタＤＢＣ及びコントロール情報ＣＩが含まれている。転送除法ＴＩＢには、ソースアドレスレジスタＳＡＲが含まれている。転送情報ＴＩＣには、ディスティネーションアドレスレジスタＤＡＲが含まれている。
【００４８】
次に、このように構成された第１の実施形態に係るＤＭＡ装置の動作例について説明する。図６は、第１の実施形態に係るＤＭＡ装置の動作を示すフローチャートである。転送要求が発生すると、現要求番号２０２と、第１バッファ１０１及び第２バッファ１０２の要求番号の比較を行う（Ｓ１）。
【００４９】
現要求番号２０２と第１バッファ１０１の要求番号が一致した場合は（Ａ）、第１バッファ１０１に格納された転送情報をそのまま使用してＤＭＡ転送を行う（Ｓ２）。同様に、現要求番号２０２と第２バッファ１０２の要求番号が一致した場合は（Ｂ）、第２バッファ１０２の転送情報をそのまま使用してＤＭＡ転送を行う（Ｓ６）。
【００５０】
ステップＳ１において、現要求番号２０２が第１バッファ１０１及び第２バッファ１０２の要求番号のいずれにも一致しない場合には（Ｃ）、第２バッファ１０２に格納された転送要求の優先レベルと、新たに発生した転送要求の優先レベルの比較を行う（Ｓ３）。
【００５１】
ステップＳ３において、第２バッファ１０２に格納された転送要求の優先レベルが、新たに発生した転送要求の優先レベルよりも高い場合には（Ａ）、新たに発生した転送要求に対応する転送情報を読み出して第１バッファ１０１に格納し、第１バッファ１０１に格納された転送情報に基づいてＤＭＡ転送を行う（Ｓ５）。
【００５２】
ステップＳ３において、第２バッファ１０２に格納された転送要求の優先レベルが、新たに発生した転送要求のもつ優先レベルよりも低い場合には（Ｂ）、新たに発生した転送要求に対応する転送情報を読み出して、第２バッファ１０２に格納し、第２バッファ１０２に格納された転送情報に基づいてＤＭＡ転送を行う（Ｓ７）。
【００５３】
また、ステップＳ３において、第２バッファ１０２の優先レベルと新た入力された転送要求がもつ優先レベルが同じである場合には（Ｃ）、第２バッファ１０２に保持された転送要求のＤＭＡ転送回数と、新たに発生した転送情報がもつＤＭＡ転送回数を比較する（Ｓ４）。
【００５４】
ステップＳ４において、第２バッファ１０２に保持された転送要求の１回の転送要求に対するＤＭＡ転送回数が、新たに発生した転送要求の１回の転送要求に対するＤＭＡ転送回数よりも少ない場合（Ａ）、具体的には、第２バッファ１０２に保持された転送要求が図３に示す転送要求で、新たに発生した転送要求が図４に示す転送要求である場合には、第２バッファ１０２に保持された転送要求の優先順位が高いと判断する。そして、新たに発生した転送要求の転送情報を第１バッファ１０１に格納し、この転送情報によってＤＭＡ転送を行う（Ｓ５）。
【００５５】
ステップＳ４において、第２バッファ１０２に保持された１回の転送要求に対するＤＭＡ転送回数が、新たに発生した転送要求がもつ１回の転送要求に対するＤＭＡ転送回数よりも多い場合（Ｂ）、具体的には、第２バッファ１０２に保持された転送要求が図４に示す転送要求であり、新たに発生した転送要求が図３に示す転送要求である場合には、新たに発生した転送要求の優先順位よりも高いと判断する。そして、新たに発生した転送要求を第２バッファ１０２に格納し、第２バッファ１０１に格納された転送情報によってＤＭＡ転送を行う（Ｓ７）。
【００５６】
また、新たに入力された転送要求の１回の転送要求に対して設定されたＤＭＡ転送回数と、第２バッファ１０２に格納された１回の転送要求に対して設定されたＤＭＡ転送回数が同じ場合には（Ｃ）、更に、予め設定されたシングル転送又はブロック転送を繰り返す転送回数を比較する（Ｓ８）。そして、予め設定された転送要求を繰り返す転送回数の多い転送要求に対して高い優先順位を設定する。
【００５７】
ステップＳ８において、第２バッファ１０２に格納された繰り返し回数が、新たに発生した転送要求の繰り返し回数よりも多い場合（Ａ）、又は同じ場合には（Ｃ）、第２バッファ１０２を更新せず、第１バッファ１０１に新たに発生した転送要求の転送情報を格納する。そして、第１バッファ１０１に格納された転送情報を用いてＤＭＡ転送を行う（Ｓ５）。
【００５８】
一方、ステップＳ８において、第２バッファ１０２に格納された繰り返し回数が、新たに発生した転送要求の繰り返し回数よりも少ない場合には、第２バッファ１０２を更新して新たに発生した転送要求の転送情報を第２バッファ１０２に格納する。そして、第２バッファ１０２に格納された転送情報を用いてＤＭＡ転送を実行する。このように、１回の転送要求に対するＤＭＡ転送の転送回数が同じ場合には、更に、転送要求を繰り返す回数を比較することで、トータルで転送情報の読み出し及び書き戻しの動作の多い転送情報を第２バッファ１０２に保持することができる。
【００５９】
このように、異なる要求番号がＤＭＡ装置１１６に入力された場合には、優先順位の判定に応じて、新たに入力された転送要求と第２バッファ１０２に格納された転送要求の優先レベル及び転送回数情報が比較され、優先順位判定の結果、第２バッファ１０２の優先順位が高いか、同じである場合は第１バッファ１０１との入れ替えが行われ、第２バッファ１０２の優先順位が低い場合は、第２バッファ１０２との入れ替えが行われる。
【００６０】
次に、ＤＭＡ転送の動作を具体例に沿って説明する。ここで、転送要求について、前回の転送要求と今回の転送要求が同じであるか否かを区別して説明する必要があるため、転送要求"１"と、転送要求"２"という２つの転送要求を例に挙げて説明を行う。
【００６１】
ＤＭＡ装置１１６に転送要求"１"が入力されると、要求番号比較器１０７は、転送要求"１"の現要求番号２０２と、第１バッファ１０１及び第２バッファ１０２に格納された要求番号とを比較する（Ｓ１）。ここで、第１バッファ１０１と第２バッファ１０２は、空の状態であるため、比較結果が一致しない。要求番号比較器１０７は、比較結果が一致しないため、転送情報読み出し要求２１０を転送情報入出力回路１１２に対して出力することで、転送情報入出力回路１１２に転送要求"１"の転送情報を読み出させる。
【００６２】
転送情報入出力回路１１２は、転送情報読み出し要求２１０が入力されることにより、新たに入力された転送要求に対応する転送情報ＴＩＡをＲＡＭ１２５から読み出す。
【００６３】
転送情報ＴＩＡの読み出しが完了すると、優先順位制御回路１０５は、転送要求"１"と、第２バッファ１０２に格納された転送要求の優先順位を判定する（Ｓ３）。優先順位の判定は、２段階の判定によって実行される。まず、優先レベル比較回路１１０により、入力された転送要求の現優先レベル２０３と、第２バッファ１０２に格納済みの優先レベルが比較される。ここで、両者の優先レベルが同じであった場合は、優先レベル比較回路１１０は、転送回数比較回路１１１に対して転送回数比較要求２１８を出力する。
【００６４】
転送回数比較回路１１１は、転送回数比較要求２１８が入力されると、転送情報入出力回路１１２で読み出した転送回数情報２１６と、第２バッファ１０２に格納済みの転送回数情報２１７を比較し、１回の転送要求に対してＤＭＡ転送回数の少ない転送要求を優先順位が高いと判定する。このように２段階の判定によって優先順位を決定する。また、第２バッファ１０２が空である場合には、現優先レベル２０３の優先順位が高いと判定する。
【００６５】
上記の判定方法に従って、優先順位制御回路１０５は、転送要求"１"と第２バッファ１０２の優先順位を比較する（Ｓ４）。第２バッファ１０２は空であるため、優先順位制御回路１０５は、転送要求"１"の方が第２バッファに格納された転送要求によりも優先順位が高いと判定し、バッファ選択信号２１２によって第２バッファ１０２を選択する。また、優先順位制御回路１０５は、転送情報２２１を出力することで、既に読み出し済みの転送情報ＴＩＡを、第２バッファ１０２の転送回数レジスタＤＢＣ及びコントロール情報ＣＩに格納する。
【００６６】
次に、転送情報入出力回路１１２により転送情報ＴＩＢを読み出し、転送情報２２１により第２バッファ１０２のソースアドレスレジスタＳＡＲに格納する。次に、転送情報入出力回路１１２により転送情報ＴＩＣを読み出し、転送情報２２１により第２バッファ１０２のディスティネーションアドレスレジスタＤＡＲに格納する。
【００６７】
転送情報選択回路１００は、判定回路１１３から出力されたバッファ選択信号２１２に基づいて、第２バッファ１０２からの転送情報２２３を選択する。転送情報選択回路１００は、転送情報２２４として選択された第２バッファ１０２に格納された転送情報をＤＭＡ転送制御回路１１４に出力する。これにより、ＤＭＡ転送制御回路１１４によって、第２バッファ１０２に格納された転送情報に基づいてＤＭＡ転送が実行される（Ｓ５）。ここでは、第２バッファ１０２に読み込んだ転送情報については、書き戻しを行わない。
【００６８】
次に、再度、ＤＭＡ装置１１６に転送要求"１"が入力されると、要求番号比較器１０７は、入力された転送要求"１"の要求番号と、第１バッファ１０１及び第２バッファ１０２に格納された要求番号の比較を行う（Ｓ１）。ここで、新たに入力された転送要求"１"は、前回の第２バッファ１０２に格納済みの要求番号と同じであるため、要求番号比較器１０７は、第２バッファ１０２を選択するようバッファ選択信号２０１を転送情報選択回路１００に対して出力する。このように、新たに入力された転送要求"１"が第１バッファ１０１又は第２バッファ１０２に格納されている場合には、第１バッファ１０１及び第２バッファ１０２に格納された転送情報の更新は行わない。
【００６９】
転送情報選択回路１００は、要求番号比較器１０７により入力されたバッファ選択信号２０１によって第２バッファ１０２に格納された転送情報２２３を選択し、この転送情報２２３を転送情報２２４としてＤＭＡ転送制御回路１１４に出力する。ＤＭＡ転送制御回路１１４は、要求番号比較器１０７から入力された転送要求信号２１５に基づいて、転送情報選択回路１００から入力された転送情報２２４に基づいて転送要求"１"のＤＭＡ転送を行う（Ｓ６）。
【００７０】
次に、転送要求"１"とは要求番号が異なる転送要求"２"がＤＭＡ装置１１６に入ると、要求番号比較器１０７は、入力された転送要求"２"の現要求番号２０２と、第１バッファ１０１、第２バッファ１０２に格納された要求番号の比較を行う（Ｓ１）。ここで、第１バッファ１０１は空であり、第２バッファには、転送要求"１"の要求番号が格納された状態である。要求番号比較器１０７は、新たに入力された転送要求"２"が第１バッファ１０１及び第２バッファ１０２に格納済みの要求番号と一致しないので、転送情報読み出し要求２１０を転送情報入出力回路１１２に出力し、転送情報入出力回路１１２に転送要求"２"に対応する転送情報を読み出させる。
【００７１】
転送情報入出力回路１１２は、要求番号比較器１０７より転送情報読み出し要求２１０を入力すると、ＲＡＭ１２５から転送情報ＴＩＡを読み出す。転送情報ＴＩＡの読み出しが完了すると、優先順位制御回路１０５は、第２バッファ１０２の転送要求"１"と、新たに入力された転送要求"２"の優先順位を比較する（Ｓ３）。先に述べたように、はじめに優先レベルの比較を行い、優先レベルが同じである場合には、１回の転送要求に対するＤＭＡ転送回数を比較することにより優先順位を判定する。
【００７２】
この優先順位の比較の結果、第２バッファ１０２の優先順位が高いと判定された場合には、判定回路１１３は、第１バッファ１０１を選択するようバッファ選択信号２１２を第１バッファ１０１、第２バッファ１０２及び転送情報選択回路１００に出力する。これにより、第１バッファ１０１が選択される。転送情報入出力回路１１２は、転送情報２２１として、既に読み出し済みの転送情報ＴＩＡを第１バッファ１０１の転送回数レジスタＤＢＣ及びコントロール情報ＣＩに格納する。
【００７３】
次に、転送情報入出力回路１１２は転送情報ＴＩＢを読み出し、転送情報２２１により第１バッファ１０１のソースアドレスレジスタＳＡＲに格納する。転送情報入出力回路１１２は、転送情報ＴＩＣを読み出して、転送情報２２１により第１バッファ１０１のディスティネーションアドレスレジスタＤＡＲに格納する。
【００７４】
転送情報選択回路１００は、判定回路１１３から入力されたバッファ選択信号２１２によって、第１バッファ１０１に格納された転送情報２２２を選択する。ＤＭＡ転送制御回路１１４は、転送要求信号２１４により転送情報２２４として入力された第１バッファ１０１の転送情報に基づいてＤＭＡ転送を行う（Ｓ５）。ここで、第１バッファ１０１に格納された転送情報については書き戻しを行う。
【００７５】
判定回路１１３による判定の結果（Ｓ３、Ｓ４）、第２バッファ１０２の優先順位の方が低い場合には、バッファ選択信号２１２により、第２バッファ１０２を選択する。第２バッファ１０２には、転送要求"１"の転送情報が既に配置済みであり、配置済みの転送情報を退避するために、第２バッファ１０２の情報を一旦書き戻し、転送情報２２１により、既に読み出し済みの転送情報ＴＩＡを、第２バッファ１０２の転送回数レジスタＤＢＣ及びコントロール情報ＣＩに格納する。
【００７６】
次に、転送情報入出力回路１１２は、転送情報ＴＩＢを読み出し、転送情報２２１により第２バッファ１０２のソースアドレスレジスタＳＡＲに格納する。次に、転送情報入出力回路１１２は、転送情報ＴＩＣを読み出し、転送情報２２１により第２バッファ１０２のディスティネーションアドレスレジスタＤＡＲに格納する。転送情報選択回路１００は、優先順位制御回路１０５から入力されたバッファ選択信号２１２に基づいて、第２バッファ１０２に格納された転送情報２２３を選択して、転送情報２２４としてＤＭＡ転送制御回路１１４に出力する。ＤＭＡ転送制御回路１１４は、入力された転送情報２２３に基づいてＤＭＡ転送を行う（Ｓ７）。
【００７７】
以上に説明したように、要求番号の異なる転送要求が発生した場合には、新たに発生した転送要求と、第２バッファ１０２に格納された転送要求の優先順位を比較し、優先順位の高い転送要求については第２バッファ１０２に格納していくことで、第２バッファ１０２には、優先順位の高い転送要求が配置され続ける。
【００７８】
これにより、例えば、転送頻度の高い転送情報に高い優先レベルを設定しておけば、このような転送情報が第２バッファ１０２に保持されることとなり、この転送要求が発生した際の書き戻しによるオーバーヘッドを削減することができる。これによりＤＭＡ転送処理の高速化を実現することができる。
【００７９】
また、優先レベルが同一の場合でも、１回の転送要求に対してＤＭＡ転送回数の少ない転送要求に高い優先順位を与えることで、第２バッファ１０２にシングル転送のように１回の転送要求に対してＤＭＡ転送回数の少ない転送要求の転送情報が保持されることとなる。これにより、書き戻し動作を低減することでオーバーヘッドを削減することができる。
【００８０】
なお、第１の実施形態では、優先順位の高い転送要求の転送情報を保持する第２バッファ１０２を１つだけ設ける構成としているが、本発明は、これに限られるものではなく、複数の第２バッファ１０２を設けるように構成することもできる。これにより、回路規模は大きくなるが、多くの転送情報を保持することができるため、転送情報の読み出し及び書き戻しという動作を削減することができるようになる。
［第２の実施形態］
【００８１】
図７は、本発明の第２の実施形態に係るＤＭＡ装置の構成例を示すブロック図である。第２の実施形態の特徴は、第１の実施形態における優先順位制御回路１０５を、イネーブル付き優先順位制御回路１０５に変更した点である。また、転送情報入出力回路１１２は、イネーブル付き優先順位制御回路１０５に対してホールドイネーブル信号２１９を出力するように第１の実施形態から変更されている。ホールドイネーブル信号２１９とは、第２バッファ１０２の使用を禁止する信号であり、判定回路１１３の判定にかかわらず第１バッファ１０１を選択し続けるよう命令する信号である。
【００８２】
転送情報入出力回路１１２は、転送情報を入力する際に、ＨＥＮをホールドイネーブル信号２１９として出力する。このホールドイネーブル信号２１９は、判定回路１１３に入力される。判定回路１１３は、入力された転送情報にホールドイネーブル信号２１９が含まれる場合には、判定回路１１３の判定にかかわらず第１バッファ１０１を選択し続けるようにバッファ選択信号２１２を出力する。
【００８３】
ホールドイネーブル信号２１９は、図８に示すように、転送情報のコントロール情報ＣＩ中に、イネーブルビットであるＨＥＮとして設けられる。なお、ホールドイネーブル信号２１９は、図８に示す転送情報に限られず、任意の位置に設けることができる。
【００８４】
上記のように、１回の転送要求に対してＤＭＡ転送回数の多いブロック転送（図４）については、第１バッファ１０１を使用したとしても、シングル転送（図３）が第２バッファ１０２にホールドされ続けている状態と同じ動作となる。ここで、ブロック転送のように、転送情報読み出し及び書き戻しといった動作が少ないＤＭＡ転送に対して高い優先度を設定してしまうと、このような転送情報が第２バッファ１０２に保持され続けるため、シングル転送のように、転送情報の読み出し及び書き戻しという動作の多い転送要求が第２バッファ１０２に保持されず、第２バッファ１０２を有効に使用することができない。
【００８５】
そこで、第２の実施形態に係るＤＭＡ装置では、図４に示すブロック転送のように、１回の転送要求に対してＤＭＡ転送回数の多い（要求間隔は長い）というような特殊な転送要求が存在する場合に、ホールドイネーブル信号２１９によって第２バッファ１０２を使用することを禁止する。これにより、シングル転送のように転送情報の読み出し及び書き戻しが多い他の転送要求が第２バッファ１０２を使用し続けることができ、転送情報の読み出し、及び書き戻しのオーバーヘッドを効果的に削減することができる。
【００８６】
尚、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【図面の簡単な説明】
【００８７】
【図１】本発明の第１の実施形態に係るＤＭＡ装置を含む上位システムを示すブロック図である。
【図２】本発明の第１の実施形態に係るＤＭＡ装置の構成例を示すブロック図である。
【図３】ＤＭＡ装置のシングル転送を示すタイミングチャートである。
【図４】ＤＭＡ装置のブロック転送を示すタイミングチャートである。
【図５】本発明の第１の実施形態に係るＤＭＡ装置の転送情報を示す図である。
【図６】本発明の第１の実施形態に係るＤＭＡ装置の動作を示すフローチャートである。
【図７】本発明の第２の実施形態に係るＤＭＡ装置の構成例を示すブロック図である。
【図８】本発明の第２の実施形態に係るＤＭＡ装置の転送情報を示す図である。
【図９】特許文献１に開示された装置の構成を示すブロック図である。
【図１０】一般的なマイクロコンピュータのメモリマップと、転送情報がＲＡＭに複数配置されたイメージ図である。
【図１１】特許文献１のＲＡＭに配置された転送情報を示す図である。
【図１２】特許文献１に開示された装置において、同一の転送要求が入力された場合のタイミングチャートである。
【図１３】特許文献１に開示された装置において、異なる転送要求が入力された場合のタイミングチャートである。
【符号の説明】
【００８８】
８１    要求番号レジスタ  ８２    要求番号
８３    要求番号比較器  ８４    転送要求信号
９１    カウントレジスタ  ９２    コマンドレジスタ
９３    アドレスレジスタ  ９４    要求番号レジスタ
９５    データバス  ９６    転送要求信号
９７    要求番号  ９８    要求番号比較器
９９    ＤＭＡ制御回路  １００    転送情報選択回路
１０１    第１バッファ  １０２    第２バッファ
１０５    優先順位制御回路  １０７    要求番号比較器
１１０    優先レベル比較回路  １１１    転送回数比較回路
１１２    転送情報入出力回路  １１３    判定回路
１１４    ＤＭＡ転送制御回路  １１５    転送要因セレクタ
１１６    ＤＭＡ装置  １１７    バスコントロールユニット
１２２    周辺Ｉ／Ｏ  １２３    外部周辺Ｉ／Ｏ
１２１    割り込みコントローラ  １２４    外部メモリ
２１９    ホールドイネーブル信号  ２２０    データバス
２２８    データバス  ＣＩ    コントロール情報
ＤＡＲ    ディスティネーションアドレスレジスタ
ＤＢＣ    転送回数レジスタ  ＳＡＲ    ソースアドレスレジスタ
【図１】
2010061620.tif 000003
【図２】
2010061620.tif 000004
【図３】
2010061620.tif 000005
【図４】
2010061620.tif 000006
【図５】
2010061620.tif 000007
【図６】
2010061620.tif 000008
【図７】
2010061620.tif 000009
【図８】
2010061620.tif 000010
【図９】
2010061620.tif 000011
【図１０】
2010061620.tif 000012
【図１１】
2010061620.tif 000013
【図１２】
2010061620.tif 000014
【図１３】
2010061620.tif 000015