(57)【要約】【課題】  ダイレクトメモリアクセスにおいて、データ転送が行われる全ての二つのユニット間にデュアルポートRAMを配置することは、回路規模の増加につながる。【解決手段】  転送終了通知装置４００は、ＤＭＡＣ２００からのデータ転送終了通知を検出し、データ転送先のアドレス及びデータ転送を行うデータを保持し、システムバスへのアクセスを行って、保持されたアドレスに保持されたデータを転送する。また、データ転送制御装置７００は、内部状態を保持したまま制御を一時停止し、転送終了通知装置４００から送信されるデータを受信することで制御を再開し、CPU１００へ割り込み信号を生成する。【選択図】  図２
2006309320.tif 000002
【特許請求の範囲】
【請求項１】
CPUと、ダイレクトメモリアクセスコントローラと、転送終了通知部と、データ転送制御部により構成されるデータ転送装置において、
CPUは、割り込み信号を受信する割り込み受信手段と、システムバスへのアクセスを行うバスアクセス手段を有し、
ダイレクトメモリアクセスコントローラは、メモリへのデータライト転送およびメモリからのデータリード転送を行うメモリアクセス制御手段と、システムバスへのアクセスを行うバスアクセス手段と、データ転送の終了を通知するデータ転送終了通知手段を有し、
転送終了通知部は、前記ダイレクトメモリアクセスコントローラの前記データ転送終了通知手段により通知されるデータ転送の終了を検出する転送終了検出手段と、転送先のアドレスを保持するアドレス保持手段と、転送先に通知するデータを保持する通知データ保持手段と、システムバスへのアクセスを行うバスアクセス手段と、前記アドレス保持手段により保持されたアドレスに対して前記通知データ保持手段に保持されたデータを前記バスアクセス手段により転送する通知データ転送手段とを有し、
データ転送制御部は、データ転送を制御する転送制御手段と、該データ転送制御部の内部状態を保持する内部状態保持手段と、前記転送終了通知部の前記通知データ転送手段により送信されるデータの受信および該データ転送制御部のシステムバスへのアクセスを実現するバスアクセス手段と、内部状態を保持したまま該データ転送制御部を一時停止するサスペンド手段と、前記転送終了通知部の前記通知データ転送手段により送信されるデータにより該データ転送制御部の制御を再開するレジューム手段と、CPUに対して割り込み信号を生成する割り込み生成手段を有することを特徴とするデータ転送装置。
【請求項２】
前記データ転送制御部において、前記ダイレクトメモリアクセスコントローラの有する前記データ転送終了通知手段により前記データ転送制御部の制御を再開するレジューム手段を有することを特徴とする請求項1に記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダイレクトメモリアクセスコントローラ（DMAC）の制御方式に関する。
【背景技術】
【０００２】
ダイレクトメモリアクセスはCPUのデータ転送に関わる負荷の軽減と処理の高速化のために、CPUを有するシステムにおいて広く利用されている。図１にダイレクトメモリアクセスコントローラ（DMAC）を有するデータ処理ユニットを用いたシステムの構成例を示す。
【０００３】
100はシステム全体を制御するCPUである。3000はシステムのブートプログラムが格納されているROMである。2000はCPU 100が動作するためのシステムワークメモリであり、データ処理ユニット300および600で扱うデータを一時記憶するためのバッファメモリでもあるRAMである。300および600は入力されたデータに所定の処理を施し、また、処理後のデータを出力するデータ処理ユニットである。
【０００４】
200はデータ処理ユニット300および600への入出力データをRAM 2000から読み書きするためのDMACである。ここでは入力チャネルと出力チャネルの２つのチャネルを有しているものとする。入力チャネルはデータ処理ユニット300および600へのデータをメモリから転送するためのチャネルであり、転送先はデータ処理ユニット300および600の入力に固定されている。出力チャネルはデータ処理ユニット300および600で処理したデータをメモリへ転送するためのチャネルであり、入力元はデータ処理ユニット300および600の出力に固定されている。
【０００５】
900はCPU 100、RAM 2000、ROM 3000、DMAC 200 A、DMAC 200 B、データ処理ユニットA 300、データ処理ユニットB 600が接続されるシステムバスである。CPU 100またはシステムバス900はバスアービトレーションの機能を含むものとする。
【０００６】
図１のシステムは以下のような手順で動作する。
【０００７】
ステップ1：CPU 100はデータ処理ユニットA 300を起動する際、DMAC 200 Aの入力チャネルに入力データのアドレスとサイズを設定してDMAC 200 Aを起動する。
【０００８】
ステップ2：DMAC 200 Aの入力チャネルが入力データサイズに設定されたサイズのデータを転送し、データ処理ユニットA 300における処理が終わると、CPU 100に対して割込み信号を生成してデータ転送および処理の終了を知らせる。
【０００９】
ステップ3：CPU 100はデータ処理ユニットA 300で処理されたデータのサイズを読み取り、DMAC 200 Aの出力チャネルに出力先アドレスと先にデータ処理ユニットA 300から読み取ったデータサイズを設定してDMAC 200 Aを起動する。
【００１０】
ステップ4：データ処理ユニットA 300での処理が終了し、DMAC 200 Aにより処理後のデータがRAM 2000に転送された後、CPU 100はデータ処理ユニットB 600を起動する際、DMAC 200 Bの入力チャネルに入力データのアドレスとサイズを設定してDMAC 200 Bを起動する。
【００１１】
ステップ5：DMAC 200 Bの入力チャネルが入力データサイズに設定されたサイズのデータを転送し、データ処理ユニットB 600における処理が終わると、CPU 100に対して割込み信号を生成してデータ転送および処理の終了を知らせる。
【００１２】
ステップ6：CPU 100はデータ処理ユニットB 600で処理されたデータのサイズを読み取り、DMAC 200 Bの出力チャネルに出力先アドレスと先にデータ処理ユニットB 600から読み取ったデータサイズを設定してDMAC 200 Bを起動する。
【００１３】
ステップ7：CPU 100は処理データに続きがあれば、再度ステップ1〜6を実行する。
【００１４】
特許文献１は、上述の異なるデータ処理ユニット間でのデータ転送を実現するために、データの入力と出力を独立して行うことのできるデュアルポートRAMをデータ処理ユニット間に配置し、CPUの処理負荷低減を図るデータ転送装置が記されている。
【特許文献１】特開平5-22368号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、前述した従来例のようにデータ転送が行われる全ての二つのユニット間にデュアルポートRAMを配置することは、回路規模の増加につながる、といった課題があった。このため、デュアルポートRAMの制御を行う専用の回路を追加し、デュアルポートRAMの共有を図ることも考えられるが、回路規模と回路の複雑度とのトレードオフとなり、開発コストの増加を抑えることは難しくなる。さらに、専用DMACを設計してCPU負荷の軽減を図る方法や、複数のDMACを同期させてDMACによって転送されたデータを他のDMACによって転送させる方法も用いられているが、やはり、CPUが介在しなければならずCPUの負荷増加や、回路規模の増加といった課題があった。
【課題を解決するための手段】
【００１６】
上記課題を解決するため、請求項１に記載の発明に係るデータ転送装置では、割り込みを受信する手段とシステムバスへのアクセスを行う手段を有するCPUと、メモリへのデータライトおよびデータリードを行う手段と、データ転送の終了を通知する手段を有するDMACと、DMACからのデータ転送終了通知を検出する手段とデータ転送先のアドレスを保持する手段とデータ転送を行うデータを保持する手段とシステムバスへのアクセスを行う手段と保持されたアドレスに保持されたデータを転送する手段を有する転送終了通知部と、データ転送を制御する手段と内部状態を保持する手段とシステムバスへのアクセスを行う手段と内部状態を保持したまま制御を一時停止する手段と転送終了通知部から送信されるデータを受信することで制御を再開する手段とCPUへ割り込み信号を生成する手段を有するデータ転送制御部とにより構成されることを特徴とする。
【００１７】
また、請求項２に記載の発明に係るデータ転送装置では、請求項１に記載のデータ転送制御部において、さらにDMACからのデータ転送終了通知により制御を再開する手段とCPUへ割り込み信号を生成する手段を有するデータ転送制御部であることを特徴とする。
【発明の効果】
【００１８】
本発明のデータ転送装置は、転送終了通知装置およびデータ転送制御装置を含むことで、CPU負荷の軽減を図りつつ、一連のデータ転送を実現することが可能である。また、転送終了通知装置および転送制御装置は比較的簡単な回路構成で実現可能であり、データ転送装置の回路規模も削減できる。この結果、機能毎に専用のハードウェアを開発する必要がなくなるためハードウェア開発コストの増大も回避できる。
【発明を実施するための最良の形態】
【００１９】
以下で本発明の装置及びその動作について詳細に説明する。
【００２０】
図2は、本発明のデータ転送装置における第一の実施の形態を示す図である。
【００２１】
図2において、データ転送装置1000は、CPU 100と、DMAC 200と、転送終了通知装置400と、データ転送制御装置700とにより構成される。ここでDMAC 200は、従来技術で実現されるDMACを使用する。また、図2において、データ処理ユニット300 Aは、DMAC 200 Aと接続され、データ処理ユニット600 Bは、DMAC 200 Bと接続され、RAM 2000はシステムバス900を介してデータ転送装置1000と接続されている。データ処理ユニット300 Aおよびデータ処理ユニット600 Bは、本発明の実施の形態において、色空間変処理、画像圧縮/伸張処理等の画像処理を実施する。
【００２２】
図3は、本発明の第一の実施の形態で用いられるデータ転送装置1000に含まれるデータ転送制御装置700の構成を示す図である。
【００２３】
図3において、転送制御部701は、システム内に含まれる各DMAC 200の制御を行うことで、全データ転送の制御を行う。本発明の実施の形態では、レジスタを保持する命令実行ユニットで実現され、レジスタに設定された値に基づいて各DMAC 200を制御する。また、異なる実施の形態として、単純なプロセッサとメモリを用いて転送制御部を実現することも可能である。この場合は、メモリにプログラムを転送し、プロセッサでは、メモリ上のプログラムに従い各DMAC 200を制御する。内部状態保持部702は、データ転送制御装置700がサスペンドからレジュームに移行するために必要な内部状態を保持する。バスアクセス部703は、データ転送制御装置700とシステムバス900のインタフェースを実現する。サスペンド部704は、データ転送制御装置700がサスペンド状態に移行する場合の制御を行う。サスペンド部704では、内部状態保持部702に対して指示信号を生成する。レジューム部705は、転送終了通知装置400からのDMAC転送終了通知データを受信することで、データ転送制御装置700をサスペンド状態からレジュームさせる制御を行う。レジューム部705は、内部状態保持部702が保持した状態を読み出し、転送制御部701に設定後、転送制御部701の動作を再開させる。割り込み生成部706は、データ転送制御装置700にて制御するデータ転送が終了した場合に、CPU 100に対して割り込み信号を生成する。
【００２４】
図4は、本発明の第一の実施の形態で用いられるデータ転送装置1000に含まれる転送終了通知装置400の構成を示す図である。
【００２５】
図4において、転送終了検出部401は、DMAC 200のデータ転送終了時に生成される割り込み信号からデータ転送が終了したことを検出する。アドレス保持部402は、転送終了通知部がDMAC 200のデータ転送終了を検出した場合に実行される終了通知データ転送の転送アドレスを保持する。通知データ保持部403は、転送終了通知部がDMAC 200のデータ転送終了を検出した場合に実行される終了通知データ転送の転送データを保持する。バスアクセス部404は、転送終了通知部装置400とシステムバス900のインタフェースを実現する。通知データ転送部405は、システムバス900に対して、転送終了通知装置400がDMAC 200のデータ転送終了を検出した場合に終了通知データの転送を実行する。
【００２６】
図5は、本発明の第一の実施の形態で用いられるデータ転送装置1000のデータ転送フローを示す図である。
【００２７】
また、図5に示す各手順番号（１）から（１５）は、図2中の手順番号１から１５と同義であり、各手順の内容は以下のようになっている。
【００２８】
（１）CPU 100は、データ転送制御装置700を初期化後、データ転送制御装置700を起動。
【００２９】
（２）データ転送制御装置700は、転送終了通知装置400 Aを初期化。
【００３０】
（３）データ転送制御装置700は、転送終了通知装置400 Bを初期化。
【００３１】
（４）データ転送制御装置700は、DMAC 200 Bを初期化。
【００３２】
（５）データ転送制御装置700は、DMAC 200 Aを初期化後、DMAC 200 Aを起動。
【００３３】
（６）DMAC 200 Aは、RAM 2000より画像データをリード後、データ処理ユニット A 300に転送。(データ処理ユニット A 300は、画像処理を実施)。
【００３４】
（７）DMAC 200 Aは、データ処理ユニット A 300の出力データをRAM 2000に転送。
【００３５】
（８）DMAC 200 Aは、転送終了通知装置400 Aにデータ転送の終了を通知。
【００３６】
（９）転送終了通知装置400 Aは、DMAC 200 Aのデータ転送終了を意味するトランザクションをデータ転送制御装置700に発行。
【００３７】
（１０）データ転送制御装置700は、DMAC 200 Bを起動。
【００３８】
（１１）DMAC 200 Bは、RAM 2000より画像データをリード後、データ処理ユニット B 600に転送。(データ処理ユニット B 600は、画像処理を実施)。
【００３９】
（１２）DMAC 200 Bは、データ処理ユニット B 600の出力データをRAM 2000に転送。
【００４０】
（１３）DMAC 200 Bは、転送終了通知装置400 Bにデータ転送の終了を通知。
【００４１】
（１４）転送終了通知装置400 Bは、DMAC 200 Bのデータ転送終了を意味するトランザクションをデータ転送制御装置700に発行。
【００４２】
（１５）データ転送制御装置700は、CPU 100に全データ転送の終了を通知。
また、データ転送を繰り返し行う場合は、データ転送制御装置700が上記手順（２）から（１４）を繰り返し制御する。
【００４３】
図6は、本発明のデータ転送装置における第二の実施の形態を示す図である。
【００４４】
図6において、データ転送装置1100は、CPU 100と、DMAC 200と、転送終了通知装置400と、データ転送制御装置800とにより構成される。また、図6において、データ処理ユニット300 Aは、DMAC 200 Aと接続され、データ処理ユニット600 Bは、DMAC 200 Bと接続され、RAM 2000はシステムバス900を介してデータ転送装置1000と接続されている。データ処理ユニット300 Aおよびデータ処理ユニット600 Bは、本発明の実施の形態において、色空間変処理、画像圧縮/伸張処理等の画像処理を実施する。
【００４５】
図7は、本発明の第二の実施の形態で用いられるデータ転送装置1100に含まれるデータ転送制御装置800の構成を示す図である。
【００４６】
図7において、転送制御部701は、システム内に含まれる各DMAC 200の制御を行うことで、全データ転送の制御を行う。内部状態保持部702は、データ転送制御装置800がサスペンドからレジュームに移行するために必要な内部状態を保持する。バスアクセス部703は、データ転送制御装置800とシステムバス900のインタフェースを実現する。サスペンド部704は、データ転送制御装置800がサスペンド状態に移行する場合の制御を行う。レジューム部801は、DMAC 200からの割り込み信号、あるいは、転送終了通知装置400からのDMAC転送終了通知データを受信することで、データ転送制御装置800をサスペンド状態からレジュームさせる制御を行う。割り込み生成部706は、データ転送制御装置800にて制御するデータ転送が終了した場合に、CPU 100に対して割り込み信号を生成する。
【００４７】
図8は、本発明の第二の実施の形態で用いられるデータ転送装置1100のデータ転送フローを示す図である。
【００４８】
また、図8に示す各手順番号（１）から（１３）は、図8中の手順番号１から１３と同義であり、各手順の内容は以下のようになっている。
【００４９】
（１）CPU 100は、データ転送制御装置800を初期化後、データ転送制御装置800を起動。
【００５０】
（２）データ転送制御装置800は、転送終了通知装置400を初期化。
【００５１】
（３）データ転送制御装置800は、DMAC 200 Bを初期化。
【００５２】
（４）データ転送制御装置800は、DMAC 200 Aを初期化後、DMAC 200 Aを起動。
【００５３】
（５）DMAC 200 Aは、RAM 2000より画像データをリード後、データ処理ユニット A 300に転送。(データ処理ユニット A 300は、画像処理を実施)。
【００５４】
（６）DMAC 200 Aは、データ処理ユニット A 300の出力データをRAM 2000に転送。
【００５５】
（７）DMAC 200 Aは、転送終了通知装置400にデータ転送の終了を通知。
【００５６】
（８）転送終了通知装置400は、DMAC 200 Aのデータ転送終了を意味するトランザクションをデータ転送制御装置に発行。
【００５７】
（９）データ転送制御装置800は、DMAC 200 Bを起動。
【００５８】
（１０）DMAC 200 Bは、RAM 2000より画像データをリード後、データ処理ユニット B 600に転送。(データ処理ユニット B 600は、画像処理を実施)。
【００５９】
（１１）DMAC 200 Bは、データ処理ユニット B 600の出力データをRAM 2000に転送。
【００６０】
（１２）DMAC 200 Bは、データ転送制御装置800にデータ転送の終了を通知。
【００６１】
（１３）データ転送制御装置800は、CPU 100に全データ転送の終了を通知。
【００６２】
また、データ転送を繰り返し行う場合は、データ転送制御装置800が上記手順（２）から（１２）を繰り返し制御する。
【図面の簡単な説明】
【００６３】
【図１】従来のDMACを用いたシステムの構成図である。
【図２】本発明のデータ転送装置における第一の実施の形態を示す図である。
【図３】本発明の第一の実施の形態で用いられるデータ転送装置に含まれるデータ転送制御装置の構成を示す図である。
【図４】本発明の第一の実施の形態で用いられるデータ転送装置に含まれる転送終了通知装置の構成を示す図である。
【図５】本発明の第一の実施の形態で用いられるデータ転送装置のデータ転送フローを示す図である。
【図６】本発明のデータ転送装置における第二の実施の形態を示す図である。
【図７】本発明の第二の実施の形態で用いられるデータ転送装置に含まれるデータ転送制御装置の構成を示す図である。
【図８】本発明の第二の実施の形態で用いられるデータ転送装置のデータ転送フローを示す図である。
【図１】
2006309320.tif 000003
【図２】
2006309320.tif 000004
【図３】
2006309320.tif 000005
【図４】
2006309320.tif 000006
【図５】
2006309320.tif 000007
【図６】
2006309320.tif 000008
【図７】
2006309320.tif 000009
【図８】
2006309320.tif 000010