(57)【要約】【課題】  競合する複数のＤＭＡ要求の調停をするに際し、ＤＭＡ実行順序を決定するための比較情報を減少させ、調停回路の回路規模を減らすとともに、制限時間内にＤＭＡ転送を行う。【解決手段】  各ＤＭＡ要求コア１０１，１０２，１０３からＤＭＡ要求を行う際に、ＤＭＡ転送の内容（転送開始アドレス、転送長、ＤＭＡ転送で格納又は読み出される対象資源、読み出し／書き込みの区別等）を表すＤＭＡ転送情報３１，３２，３３とともに、ＤＭＡ実行開始要求時刻情報２１，２２，２３を転送する。ＤＭＡ実行開始要求時刻は、ＤＭＡ実行終了要求時刻からＤＭＡ転送の所要時間を差し引いて得られ、アービタ装置１００に転送される。アービタ装置１００では、ＤＭＡ実行開始要求時刻を見ながらＤＭＡの実行順序を決定し、この順序に従ってＤＭＡが実行される。【選択図】  図１
2006215621.tif 000002
【特許請求の範囲】
【請求項１】
複数チャネルのＤＭＡ（ダイレクトメモリアクセス）を制御するためのＤＭＡ制御装置であって、
複数のＤＭＡ要求コアと、
ＤＭＡ実行順序を調停するためのアービタ装置と、
前記複数のＤＭＡ要求コアと前記アービタ装置とに共通に時刻情報を発行するタイマとを備え、
前記複数のＤＭＡ要求コアは、各々ＤＭＡ要求を発行する際に前記タイマから発行された時刻情報を参照しながら、ＤＭＡ実行終了要求時刻までにＤＭＡ転送が終わるべくＤＭＡ実行開始要求時刻を算出し、ＤＭＡ転送の内容を表すＤＭＡ転送情報とともにＤＭＡ実行開始要求時刻を表す情報を前記アービタ装置へ送り、
前記アービタ装置は、各ＤＭＡ要求コアのＤＭＡ実行開始要求時刻をもとにＤＭＡ実行順序を調停することを特徴とするＤＭＡ制御装置。
【請求項２】
請求項１記載のＤＭＡ制御装置において、
前記アービタ装置は、各ＤＭＡ要求コアのＤＭＡ実行開始要求時刻とＤＭＡ転送長とをもとにＤＭＡ実行終了予定時刻を推定し、各ＤＭＡ要求コアのＤＭＡ実行開始要求時刻及びＤＭＡ実行終了予定時刻をもとにＤＭＡ実行順序を調停することを特徴とするＤＭＡ制御装置。
【請求項３】
請求項１記載のＤＭＡ制御装置において、
前記アービタ装置は、ＤＭＡ要求毎の重要度を定めた参照テーブルを有し、各ＤＭＡ要求コアのＤＭＡ実行開始要求時刻をもとに調停したＤＭＡ実行順序を、前記参照テーブルに定められた重要度をもとに修正することを特徴とするＤＭＡ制御装置。
【請求項４】
請求項３記載のＤＭＡ制御装置において、
前記参照テーブルに定められたＤＭＡ要求毎の重要度は、実際のＤＭＡ転送の実行状況に応じて更新されることを特徴とするＤＭＡ制御装置。
【請求項５】
請求項３記載のＤＭＡ制御装置において、
前記アービタ装置は、ＤＭＡ要求毎の重要度を定めた参照テーブルを有し、各ＤＭＡ要求コアのＤＭＡ実行開始要求時刻とＤＭＡ転送長とをもとにＤＭＡ実行終了予定時刻を推定し、各ＤＭＡ要求コアのＤＭＡ実行開始要求時刻及びＤＭＡ実行終了予定時刻をもとに調停したＤＭＡ実行順序を、前記参照テーブルに定められた重要度をもとに修正することを特徴とするＤＭＡ制御装置。
【請求項６】
請求項１記載のＤＭＡ制御装置において、
前記アービタ装置による調停結果をもとに、新規ＤＭＡ要求の最も早いＤＭＡ実行開始予定時刻を推定するための手段と、
実行待ちのＤＭＡ要求について、前記ＤＭＡ実行開始要求時刻を表す情報と、前記ＤＭＡ実行開始予定時刻を表す情報とを、前記ＤＭＡ転送情報とともにＤＭＡ制御情報として一時保管するための転送キューとを更に備えたことを特徴とするＤＭＡ制御装置。
【請求項７】
請求項６記載のＤＭＡ制御装置において、
前記転送キュー中の全てのＤＭＡ制御情報を前記複数のＤＭＡ要求コアへ伝達するための手段を更に備えたことを特徴とするＤＭＡ制御装置。
【請求項８】
請求項６記載のＤＭＡ制御装置において、
前記複数のＤＭＡ要求コアは、自身が要求したＤＭＡについて前記転送キュー中のＤＭＡ制御情報を変更する機能を更に有することを特徴とするＤＭＡ制御装置。
【請求項９】
請求項１記載のＤＭＡ制御装置において、
実行待ちのＤＭＡ要求に関する情報を順次一時保管するための転送キューを更に備え、
前記複数のＤＭＡ要求コアのうち少なくとも１つは、前記アービタ装置へ情報を送るための複数のＤＭＡ要求バスを持ち、自身の内部の優先順位の高低に応じて複数のＤＭＡ要求を前記複数のＤＭＡ要求バスに振り分けて転送することを特徴とするＤＭＡ制御装置。
【請求項１０】
請求項９記載のＤＭＡ制御装置において、
前記複数のＤＭＡ要求コアのうち少なくとも２つは、共通のＤＭＡ要求バスを持ち、各々当該共通のＤＭＡ要求バスを通して前記アービタ装置へ情報を送る機能を有することを特徴とするＤＭＡ制御装置。
【請求項１１】
請求項６〜１０のいずれか１項に記載のＤＭＡ制御装置において、
前記アービタ装置は、新規ＤＭＡ要求の実行開始要求時刻が現在実行中のＤＭＡの実行開始要求時刻よりも早い場合には、現在実行中のＤＭＡを分割処理して中断し、前記新規ＤＭＡ要求が先行して実行されるように制御することを特徴とするＤＭＡ制御装置。
【請求項１２】
請求項１１記載のＤＭＡ制御装置において、
前記アービタ装置は、新規ＤＭＡ要求が先行実行されることにより前記転送キューにて待機中のＤＭＡ要求の実行が当該待機中のＤＭＡ要求の実行開始要求時刻までに開始されなくなる場合には、各ＤＭＡ要求の実行開始要求時刻をもとにＤＭＡ実行順序を再度調停することを特徴とするＤＭＡ制御装置。
【請求項１３】
請求項１２記載のＤＭＡ制御装置において、
前記アービタ装置は、前記待機中のＤＭＡ要求を発行したＤＭＡ要求コアに対してエラー信号を返送するとともに、前記待機中のＤＭＡ要求の実行開始要求時刻を早めるように変更することで、前記待機中のＤＭＡ要求の実行優先順位を上げるように制御することを特徴とするＤＭＡ制御装置。
【請求項１４】
請求項６〜１３のいずれか１項に記載のＤＭＡ制御装置において、
前記アービタ装置は、新規ＤＭＡ要求の実行開始要求時刻が現在実行中のＤＭＡの実行開始要求時刻より早い場合でも、後者の結果を前者が参照するような依存関係が両者間にあるときには、当該依存関係が反映されるべく前記新規ＤＭＡ要求の実行開始要求時刻を遅らせるように変更することで、前記新規ＤＭＡ要求の実行優先順位を下げるように制御することを特徴とするＤＭＡ制御装置。
【請求項１５】
請求項１〜１４のいずれか１項に記載のＤＭＡ制御装置と、内部メモリと、内部メモリコントローラとを含むことを特徴とするプロセッサ。
【請求項１６】
請求項１５記載のプロセッサにおいて、
前記ＤＭＡ制御装置中のアービタ装置は、前記内部メモリコントローラから通知される前記内部メモリの使用状況に応じて各ＤＭＡ要求コアからの要求に係るＤＭＡの実行順序を調停することを特徴とするプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ、画像処理装置、ネットワーク転送処理装置等のデータ転送処理装置におけるＤＭＡ（ダイレクトメモリアクセス）制御装置に関するものである。
【背景技術】
【０００２】
近年、ＬＳＩデザインツール（ＥＤＡ）の処理技術の向上や０．１３μｍプロセス等のプロセス微細化技術の進歩に伴い、ＬＳＩの集積度の飛躍的な向上が達成され、従来はシステムとして複数のＬＳＩや複数の基板を用いて開発していたシステムが、１つのＬＳＩに集積されたシステムＬＳＩが開発の主流となってきている。
【０００３】
このようなＬＳＩ開発環境の発展に伴い、様々な分野において今まで複数のＬＳＩで構成されていたシステムが１チップに構成され、開発されている。例えば、従来１プロセッサと通信用コントローラ等の複数の周辺チップとで構成されていたＰＣ用ＬＳＩは、複数ＬＳＩを１つのＣＰＵ又は１つの周辺チップとして機能を集約したＬＳＩの開発が行われている。また、ＤＶＤレコーダは、エンコーダＬＳＩ、デコーダＬＳＩ等の複数のＬＳＩで構成されていたが、機能が集約され、１つのＬＳＩとして開発されるようになってきている。
【０００４】
これに伴い、外部メモリ等として複数個のＬＳＩそれぞれに搭載されてきたメモリは、これらを統合して１つのＬＳＩのメモリインタフェースとして構成されることが望まれている。
【０００５】
メモリを統合する際に問題となるのは、システムの動作要求を満たしつつ、かつてそれぞれのＬＳＩに１対１で存在していたメモリに対し並列に行ってきたメモリアクセスを１つのメモリに対して行うことに変更することである。具体的には、それぞれのＬＳＩはメモリアクセスに対し、システムを動作させるため必要な処理時間と、システムが破綻しないための限界となる制限時間とを持って動作する。つまり、メモリアクセスをスケジューリングすることが課題となる。
【０００６】
この課題は、古くはネットワークシステム等のクライアント・サーバを構成するコンピュータ間の接続処理、実行順序処理や、プリンタ等のオフィスの共用資源として少数対多数の関係で配置されるシステムのプロセス処理方法として検討されてきている事柄である。その解決策として、時分割処理と、割り込み処理とが知られている。
【０００７】
まず、時分割処理は、メモリアクセスを要求する各コアに対し、メモリアクセスを行う時間を各コア総当たりで一定時間与え、一定時間内はメモリアクセスを専有化させる処理であって、ラウンドロビン方式とも呼ばれる。
【０００８】
時分割処理の利点は、各メモリアクセス要求を行うコアに対して一定の時間を与えるため、全体の時間管理がしやすく、回路が簡潔に構成できる点である。ただし、時分割処理は一定時間を与える処理であるため、一定時間が算出できないアクセス、例えばＣＰＵのキャッシュアクセスやＣＰＵのデータアクセス等、ＣＰＵの動作プログラムの内容により不確定な動作になる場合や、ＬＳＩの動作の切り替えによりメモリ内容を全て更新する場合等は、そのつどラウンドロビンで設定した処理時間に対し、ＣＰＵやＬＳＩの動作切り替えで要望される時間内に処理を行い、かつ機能切り替えの間満たさなければならない機能が前記アクセス分を減少させた残りのＤＭＡ転送で補えるかどうかの検証、改変を行う必要がある。ところが、こういった検証、改変はシステムＬＳＩにとってかなりの負担となるため、多くの場合は最悪条件を想定し、最悪条件に見合うメモリインタフェースを準備してＬＳＩを実装する。このため得てしてメモリインタフェースがオーバースペックとなる転送能力を持つシステムＬＳＩを開発することとなる。
【０００９】
次によく行われる手法は割り込み処理であって、これは各アクセスを短く設定し、メモリアクセスを優先順位に定められた順序に実行できるよう割り込み等の処理を行いつつ、転送順序を入れ替えながら転送を行う手法である。
【００１０】
割り込み処理の利点は、各メモリアクセス要求を行うコアの状態によって動作を変化させた場合でも予め定められた優先順位で割り込み処理を行うので、コアの要求どおりのメモリアクセス制御を行うことができる点である。しかしながら、この方式の欠点は、頻度が高くアクセス速度が高いメモリアクセスが存在する場合、システムの性能を保持するため、割り込みを容易に行うべく転送長の単位を短く設定しなければならなくなる場合にある。ＳＤＲＡＭ、ＤＤＲ−ＳＤＲＡＭ、ＲＡＭＢＵＳ−ＤＲＡＭ等のバースト転送を連続で行うことによって性能を向上させることを特徴とするメモリでは、ある程度の転送長で転送しないと性能が引き出せない特徴があるのだが、こういったメモリの特徴に反してバースト長を短くする動作を設定しなければ安定した性能が引き出せなくなるといった点が欠点となる。
【００１１】
以上２つの方式の欠点から、ラウンドロビン方式と割り込み方式との両者を併せ持つ特徴を持ち、メモリアクセスを転送長、アドレス、優先度から総合的に判断するメモリアクセス制御方法も提案されている。
【００１２】
通例、外部メモリに対するアクセスはＤＭＡとして処理される。上記メモリアクセスの課題は、ＤＭＡに関しても当てはまる。
【００１３】
ある従来技術によれば、複数のバスマスタ（例えばＤＭＡ要求コア）が共通バスをアクセスする際に、アクセス１回あたりのバス占有量を最適な値に変えたり、優先順位の低いバスマスタのアクセスを一旦中断して優先順位の高いバスマスタに直ちにバス使用権を委譲する（特許文献１参照）。
【００１４】
他の従来技術によれば、複数のＤＭＡ要求を時間的に管理して制限時間内にＤＭＡを完了させるように、アービタ装置が転送長、転送モード、転送制限時間等のＤＭＡ起動要因に応じてＤＭＡ実行順序を調停する（特許文献２参照）。
【特許文献１】特開２０００−１３２５０５号公報
【特許文献２】特開２００２−２０７６９１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
システムＬＳＩの集積化が進むにつれてＤＭＡ制御がより複雑になり、より多数のＤＭＡ要求コアからの制御に対し実行順序の決定、割り込み、時分割といった処理を行わなければならなくなっている。多くのＤＭＡパラメータを用いて比較及び検証を行う回路を実現すればＤＭＡ転送精度は向上するが、その分回路面積やＤＭＡ制御装置の処理の負担、回路の開発における検証時間は大きくなる。
【００１６】
更に、ＤＭＡ処理時間内に転送処理を行うことができない場合にもＤＭＡ転送要求を行うコアが複数相互のコア間でエラー情報を受けて制御を行わないと、システム全体の動作に悪影響を与える場合がある。加えて、ＤＭＡ実行が不可能と判断された場合、そのＤＭＡ処理の情報がなければシステム全体として該実行不可能なＤＭＡが与える影響を認識できず、システムとして有効な対策を実行することができない。
【００１７】
更に、ＤＭＡを行う転送先が他のコアと共用されている場合は、ＤＭＡと他のコアの動作を排他的に実行しないと、ＤＭＡと他コアの動作とが競合した場合、いずれか一方の動作を停止させなければならず、システムとして非効率になる。
【課題を解決するための手段】
【００１８】
上記課題を解決するために、本発明では、各ＤＭＡ要求コアからＤＭＡ要求を行う際にＤＭＡ転送情報とともにＤＭＡ実行開始要求時刻情報を転送する。ＤＭＡ実行開始要求時刻は、ＤＭＡ実行終了要求時刻からＤＭＡ転送の所要時間を差し引いて得られ、アービタ装置に転送される。アービタ装置では、ＤＭＡ実行開始要求時刻を見ながらＤＭＡの実行順序を決定し、この順序に従ってＤＭＡが実行される。
【００１９】
加えて、ＤＭＡ実行開始要求時刻や、ＤＭＡ実行開始予定時刻を全てのＤＭＡ要求コアに提示することで、複数のＤＭＡ要求コア間で共通使用される資源に関するＤＭＡ転送を円滑に行う。
【発明の効果】
【００２０】
本発明によれば、ＤＭＡ要求コアは、ＤＭＡ実行開始要求時刻になったらＤＭＡ転送が行われているものとして、ＤＭＡ実行処理待ちのプロセスを実行することができる。また、ＤＭＡ実行開始要求時刻が示されるため、アービタ装置はＤＭＡ実行順序を決定しやすくなる利点がある。
【００２１】
更に、ＤＭＡ実行開始要求時刻を参照することでＤＭＡ実行を要求したコア以外でも他のコアのＤＭＡ実行開始予定時刻を得ることができる。また、どのＤＭＡが間に合わないかを各コアが知ることができる結果、ＤＭＡ実行が間に合わなくなるような場合でもシステム全体としてＤＭＡが間に合わない場合に備えた対処ができるようになる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態を図面に基づいて詳細に説明する。
【００２３】
《第１の実施形態》
図１は、本発明の第１の実施形態に係るＤＭＡ制御装置の構成を示している。図１のＤＭＡ制御装置は、第１のＤＭＡ要求コア（第１コア）１０１、第２のＤＭＡ要求コア（第２コア）１０２、第３のＤＭＡ要求コア（第３コア）１０３、タイマ１０５、アービタ装置１００、セレクタ１０６から構成され、選択されたＤＭＡ要求をＤＭＡ実行部１０７で実行する。
【００２４】
第１のＤＭＡ要求コア１０１は、ＤＭＡ転送情報生成部１１０と、ＤＭＡ実行開始要求時刻算出部１１１とからなるＤＭＡ要求生成部１１２を持つ。第２及び第３のＤＭＡ要求コア１０２，１０３も第１のＤＭＡ要求コア１０１と同様の内部構造を持つ。
【００２５】
第１〜第３のＤＭＡ要求コア１０１，１０２，１０３は、タイマ１０５より時刻情報１０を常に受け、実行開始要求時刻情報２１，２２，２３と、ＤＭＡ転送の開始アドレス、ＤＭＡ転送長、ＤＭＡ転送で格納又は読み出される対象資源、読み出し／書き込みの区別からなるＤＭＡ転送情報３１，３２，３３とでアービタ装置１００と接続され、ＤＭＡ転送情報３１，３２，３３でセレクタ１０６と接続される。また、アービタ装置１００はセレクタ１０６に対し最優先ＤＭＡ選択信号６５を転送する。ＤＭＡ実行部１０７は、最優先ＤＭＡ選択信号６５に応じてセレクタ１０６により選択されたＤＭＡ転送情報４０を受けてＤＭＡ実行を行う。
【００２６】
図２は、図１中のＤＭＡ転送情報生成部１１０の詳細構成を示している。ＤＭＡ転送情報生成部１１０は、アドレス及びデータ変換回路２０１から構成され、ＣＰＵ、外部インタフェースから初期アドレス設定４１、転送長設定４２を受け、アドレス、転送長、転送対象メモリ情報、要求コアの情報、読み出し／書き込み情報、優先度のうち少なくともアドレス、転送長、転送対象メモリ情報、要求コアの情報、読み出し／書き込み情報を変換又は生成し、ＤＭＡ転送情報３１としてアービタ装置１００とセレクタ１０６とに転送する。
【００２７】
図３は、図１中のＤＭＡ実行開始要求時刻算出部１１１の詳細構成を示している。ＤＭＡ実行開始要求時刻算出部１１１は、加算部３０１、転送所要時間算出部３０２、減算部３０３から構成される。加算部３０１は、予め設定された動作プログラム、外部設定、ＲＯＭによる転送間隔の設定から指定されるＤＭＡ実行時間情報５０と、前述の時刻情報１０とを参照して、システムが動作する最悪のケースから算出されるＤＭＡ実行終了要求時刻情報５４を生成する。例えば、１秒間に５０００回実行されるＤＭＡが存在する場合はＤＭＡ実行時間情報５０が１／５０００＝２００μｓと指定され、時刻情報１０が表す現在時刻に対して２００μｓを加算された時刻を表す情報がＤＭＡ実行終了要求時刻情報５４として設定される。転送所要時間算出部３０２は、転送対象メモリ情報５１、転送開始アドレス５２、転送長５３から、ＤＭＡ転送が実際に開始されてから終了するまでの転送にかかる時間を表すＤＭＡ転送所要時間情報５５を生成する。例えばＤＭＡ転送長が２００バイトであった場合、バス幅２バイト／１サイクルのとき、１００サイクル分の時間がＤＭＡ転送所要時間情報５５として与えられる。以上生成されたＤＭＡ実行終了要求時刻情報５４とＤＭＡ転送所要時間情報５５とを受け、減算部３０３ではＤＭＡ実行終了要求時刻からＤＭＡ転送所要時間を差し引いた値を表すＤＭＡ実行開始要求時刻情報２１を生成し、アービタ装置１００に転送する。
【００２８】
なお、上記全ての時間及び時刻に関する情報は、サイクル数で示した値でもよい。また、ＤＭＡ転送を行う際、ページ切り替え等を加味し、加算部３０１、転送所要時間算出部３０２、減算部３０３で演算を行う場合、マージンとして余裕を持たせた演算を行うのがよい。
【００２９】
図４は、図１中のアービタ装置１００の詳細構成を示している。アービタ装置１００はＤＭＡ実行開始要求時刻順序判定部４０５を有し、第１、第２及び第３コア１０１，１０２，１０３のＤＭＡ実行開始要求時刻情報２１，２２，２３から最優先ＤＭＡ選択信号６５を生成してセレクタ１０６へ転送する。
【００３０】
図５は、図１のＤＭＡ制御装置におけるＤＭＡ要求の模式図である。システムやＤＭＡ要求コア１０１，１０２，１０３のプログラム、システムの外部制御手段、ＤＭＡ転送情報生成部１１０の構成、動作によりＤＭＡ要求開始時刻８０１が決定される。また、各ＤＭＡ要求にはシステムを成立させるための動作限界時間があり、図３にＤＭＡ実行終了要求時刻情報５４として示したようにシステムモデル的にＤＭＡ実行終了要求時刻８０２が定義される。更に、実際のＤＭＡデータ転送に必要な時間としてＤＭＡ転送所要時間８０３が定義される。８０４はＤＭＡ実行開始要求時刻である。ＤＭＡ要求開始時刻８０１からＤＭＡ実行終了要求時刻８０２までの間が各ＤＭＡを実行する場合のシステムの要求時間となり、ＤＭＡ許容転送時間８０５と呼ぶ。そして、ＤＭＡ許容転送時間８０５からＤＭＡ転送所要時間８０３を差し引いたものが、ＤＭＡ転送待機予定時間８０６として定義される。
【００３１】
図６は、図１のＤＭＡ制御装置の動作例を、図５のＤＭＡ要求のモデルに従って表している。図６において、丸印の中心はＤＭＡ要求開始時刻８０１であり、アービタ装置１００が調停動作を実行するタイミングを示す。図６中のＡ〜Ｌの記号は各ＤＭＡ転送におけるＤＭＡ実行開始要求時刻８０４を示す。
【００３２】
図６のような順序でＤＭＡ要求が行われた場合、まず第１コア１０１よりＤＭＡ要求が転送された時刻１でアービタ装置１００によるＤＭＡの調停が行われる。このとき有効なＤＭＡ要求に関する情報は、第１コア１０１のＤＭＡ実行開始要求時刻情報２１及びＤＭＡ転送情報３１のみであり、ＤＭＡ実行開始要求時刻Ａがアービタ装置１００に与えられる。アービタ装置１００は、第１コア１０１から転送されたＤＭＡ転送情報３１を実行すべくセレクタ１０６に対し、第１コア１０１のＤＭＡ転送情報３１を選択するよう最優先ＤＭＡ選択信号６５を出力し、ＤＭＡ実行部１０７へ被選択ＤＭＡ転送情報４０として第１コア１０１のＤＭＡ転送情報３１を転送する。
【００３３】
時刻１から時刻２までの間は第１コア１０１のＤＭＡ転送情報３１が実行されており、アービタ装置１００は停止している。時刻２ではＤＭＡ実行部１０７によるＤＭＡ転送情報３１の実行が終了しているので、アービタ装置１００はＤＭＡ実行開始要求時刻Ｂを参照し、第２コア１０２のＤＭＡ転送情報３２が選択され、ＤＭＡ実行部１０７で実行される。そして、時刻３で第３コア１０３からＤＭＡ転送情報３３及びＤＭＡ実行開始要求時刻Ｃを表す情報２３が転送されても、ここでは第２コア１０２のＤＭＡ転送情報３２がＤＭＡ実行部１０７で実行中のため、第３コア１０３のＤＭＡ転送情報３３は待機状態となる。この間アービタ装置１００は動作を停止している。
【００３４】
第３コア１０３のＤＭＡ転送情報３３が実行可能となった時点で、アービタ装置１００はＤＭＡ実行開始要求時刻Ｃを参照し、第３コア１０３のＤＭＡ転送情報３３が実行される。以下、時刻４では第１コア１０１のＤＭＡ転送情報３１が、時刻５では第３コア１０３のＤＭＡ転送情報３３が、時刻６では第２コア１０２のＤＭＡ転送情報３２がそれぞれ実行される。時刻７では第２コア１０２のＤＭＡ転送情報３２がＤＭＡ実行部１０７で処理中のため、第１コア１０１のＤＭＡ転送情報３１は第２コア１０２のＤＭＡ転送情報３２がＤＭＡ実行部１０７で実行終了した後に実行されるよう設定される。しかしながら、時刻８では第１コア１０１のＤＭＡ実行開始要求時刻Ｈより早い第３コア１０３のＤＭＡ実行開始要求時刻Ｇが入力されるため、第３コア１０３のＤＭＡ転送情報３３が選択され、第３コア１０３のＤＭＡ要求が先行実行され、次いで第１コア１０１のＤＭＡ要求が実行される。時刻９では、第１コア１０１のＤＭＡ転送情報３１が選択される。以下時刻１０〜１２ではそれぞれ第２コア１０２のＤＭＡ転送情報３２、第３コア１０３のＤＭＡ転送情報３３、第１コア１０１のＤＭＡ転送情報３１が実行される。
【００３５】
以上述べてきたように、時刻３、７、８を除く時刻ではＤＭＡ実行開始要求時刻と比較してＤＭＡ実行部１０７の動作状態に余裕があるので、選択されたＤＭＡをＤＭＡ実行部１０７で早期実行することで後続するＤＭＡの実行時間を保証する。実行が重なった場合の時刻８ではＤＭＡ実行開始要求時刻を比較し、早い方を先に実行する。ＤＭＡが先に実行中の時刻３、７では、現在実行中のＤＭＡが終了するまでアービタ装置１００による調停を待機させる。
【００３６】
図６ではＤＭＡ実行開始要求時刻に対し、実際のＤＭＡ転送が余裕を持って実行できているが、ＤＭＡ実行開始要求時刻と比較してＤＭＡ実行部１０７の動作状態に余裕がない場合は各設定されたＤＭＡを遅延させて実行するとともに全ＤＭＡ要求コア１０１，１０２，１０３に実行エラー信号を送り、各コア１０１，１０２，１０３で該当するＤＭＡが実行不可能に陥った場合の措置を実行させる。
【００３７】
以上述べた構成をとることによって、ＤＭＡ要求コア１０１，１０２，１０３でＤＭＡ実行開始要求時刻を算出するため、アービタ装置１００の内部構成が小さくでき、アービタ装置１００がＤＭＡ実行開始要求時刻情報２１，２２，２３を参照することでＤＭＡ実行順序を容易に判定できる。
【００３８】
なお、ＤＭＡ要求の時間間隔や転送長が一定であって競合が少ない場合は、時刻情報１０をより少ないビットの比較で構成できる。例えば、各ＤＭＡ要求コア１０１，１０２，１０３で転送長や転送要求を行うタイミングが一定の場合、一定の転送長に従って時刻情報１０を設定すればよい。
【００３９】
《第２の実施形態》
図７は、本発明の第２の実施形態に係るＤＭＡ制御装置におけるアービタ装置１００の構成を示している。図４と比較して図７では、ＤＭＡ実行開始要求時刻情報２１，２２，２３とＤＭＡ転送情報３１，３２，３３とをＤＭＡ実行終了予定時刻推定部４０１，４０２，４０３で受け、ＤＭＡ実行終了予定時刻情報６１，６２，６３を生成する。ＤＭＡ実行開始要求時刻順序判定部４０５は、ＤＭＡ実行開始要求時刻情報２１，２２，２３を受け、ＤＭＡ実行開始予定順序情報６４を出力する。ＤＭＡ実行終了予定時刻順序判定部４０６は、ＤＭＡ実行終了予定時刻情報６１，６２，６３と、ＤＭＡ実行開始予定順序情報６４とを受け、開始、終了時刻全ての比較を行って、最優先ＤＭＡ選択信号６５を生成する。
【００４０】
図８は、図７のアービタ装置１００を用いたＤＭＡ制御装置の動作例を示している。図８によれば、時刻１〜７では図６と同様の動作を行うが、図８の時刻８で第３コア１０３から図６のときより長い転送長のＤＭＡ要求が発行される。このとき第３コア１０３の実行開始要求時刻情報２３（図８中のＧ）は第１コア１０１の実行開始要求時刻情報２１（図８中のＨ）より前の時刻を指しており、第１の実施形態では第３コア１０３のＤＭＡ転送情報３３を実行してから第１コア１０１のＤＭＡ転送情報３１を実行するが、第３コア１０３のＤＭＡ転送情報３３の転送長が長いため第３コア１０３のＤＭＡ転送情報３３を実行した後で第１コア１０１のＤＭＡ転送情報３１を実行する際に、第１コア１０１のＤＭＡ転送が間に合わなくなる。ところが、第２の実施形態では、ＤＭＡ実行開始要求時刻情報２１，２２，２３に加えＤＭＡ転送情報３１，３２，３３から転送長の情報を受け、ＤＭＡ実行終了予定時刻情報６１，６２，６３を生成し比較することで、総合的な判断を行うようにした。こうすることで時刻８では第１コア１０１のＤＭＡ転送情報３１が選択され、その実行後に第３コア１０３のＤＭＡ転送情報３３が実行されるので、各ＤＭＡの実行終了要求時刻を守ることができる。
【００４１】
以上述べたように第２の実施形態によれば、転送長がまちまちのＤＭＡに関してもＤＭＡ実行終了予定時刻の推定を行い、より正確なＤＭＡ制御を行うことが可能になる。
【００４２】
《第３の実施形態》
図９は、本発明の第３の実施形態に係るＤＭＡ制御装置におけるアービタ装置１００の構成を示している。図４と比較して図９では、ＤＭＡ実行開始要求時刻順序判定部４０５からのＤＭＡ実行開始予定順序情報６４を実行順序決定部４０７で受ける。実行順序決定部４０７は、参照テーブル４０８を参照しながら最優先ＤＭＡ選択信号６５を生成し、出力する。参照テーブル４０８は、ＤＭＡ要求毎に重要度の重み付けを定めている。実行順序決定部４０７は、参照テーブル４０８に定められた重要度を参照してＤＭＡの実行順序を設定しなおす。
【００４３】
図１０は、図９中の参照テーブル４０８の詳細構成を示している。図１０の参照テーブル４０８は、ＤＭＡ要求コア１０１，１０２，１０３、ＤＭＡのデータ転送方向（読み出し、書き込み）、ＤＭＡのデータ転送対象により優先順位の重み付けがされている。ＤＭＡ要求が競合した場合、各ＤＭＡの実行開始要求時刻と時刻情報１０により知られる現在時刻との差分、すなわち残り時間に対し、ＤＭＡ毎に参照テーブル４０８の係数を参照して当該係数で割り算し、重み付き残り時間が最も短い要素に関してＤＭＡを実行する。
【００４４】
なお、図１０の参照テーブル４０８は各要素により固定値の重み付けを用いたが、ＤＭＡ要求コア１０１，１０２，１０３が参照し、書き換えを行う構成であってもよい。また、参照テーブル４０８は今までのＤＭＡの実行状況、例えば実行終了要求時刻までに実行できたかどうかの履歴やアクセス頻度を蓄積し、実行終了要求時刻までに実行できなかった場合には、履歴、頻度に基づきＤＭＡの実行優先設定を向上させるような構成を採用してもよい。
【００４５】
《第４の実施形態》
図１１は、本発明の第４の実施形態に係るＤＭＡ制御装置におけるアービタ装置１００の構成を示している。図１１のアービタ装置１００では、ＤＭＡの実行状況に応じて参照テーブル４０８が更新される。参照テーブル更新部４１１は、最優先ＤＭＡ選択信号６５及び外部入力を参照して参照テーブル４０８を更新する。
【００４６】
参照テーブル更新部４１１は、選択されたＤＭＡの要求コア、要求する方向、要求対象を分析し、選択される毎に参照テーブル４０８の数値を減少させる。その際、減少させる前の数値をチャネルレジスタ４１２に保存する。また、一定時間ＤＭＡ要求入力がない場合には減少させた数値をもとに戻す機能を有する。減少させた数値をもとに戻す時刻は、チャネルレジスタ４１２に保存されている情報から決定される。
【００４７】
図１２及び図１３は、図１１のアービタ装置１００を用いたＤＭＡ制御装置の動作例を示している。図１３には、重み付け係数の推移が参照テーブル４０８の更新例として示されている。
【００４８】
図１２及び図１３によれば、時刻１では第１コア１０１からＤＭＡ転送情報３１が転送され、第１コア１０１が選択される。このとき第１コア１０１は選択されたため、参照テーブル４０８の第１コア１０１の重み付け要素は２０へと３だけ減少する。同様に時刻２では第２コア１０２からのＤＭＡ転送情報３２を受け、回路が動作する。第２コア１０２が選択されたので参照テーブル４０８の第２コア１０２の重み付け要素が１５から１４へ減少する。以下ＤＭＡ要求コア１０１，１０２，１０３が選択されるに従い参照テーブル４０８の重み付け値は減少する。ただし、一定時間ＤＭＡ入力がない場合、例えば時刻３〜５の間の第３コア１０３に対する参照テーブル４０８の値はチャネルレジスタ４１２に保存された経過時刻に現在の時刻が到達したとき、参照テーブル４０８のもとの重み付けに戻る。同様に時刻９〜１２の間の第１コア１０１、第２コア１０２に対する参照テーブル４０８の重み付けも、一定時間ＤＭＡ要求がなかったため初期設定値に戻る。
【００４９】
以上述べたように、第４の実施形態によれば、アービタ装置１００において参照テーブル更新部４１１が最優先ＤＭＡ選択信号６５を参照することでＤＭＡ転送履歴の自己フィードバックを行い、ＤＭＡの実行状態に応じた優先順位を設定できる。また、図１１に「外部入力」として示したように各ＤＭＡ要求コア１０１，１０２，１０３がＤＭＡ実行順序の変更を設定することも可能である。
【００５０】
《第５の実施形態》
図１４は、本発明の第５の実施形態に係るＤＭＡ制御装置におけるアービタ装置１００の構成を示している。図４と比較して図１４では、ＤＭＡ実行開始要求時刻情報２１，２２，２３とＤＭＡ転送情報３１，３２，３３とをＤＭＡ実行終了予定時刻推定部４０１，４０２，４０３で受け、ＤＭＡ実行終了予定時刻情報６１，６２，６３を生成する。ＤＭＡ実行開始要求時刻順序判定部４０５は、ＤＭＡ実行開始要求時刻情報２１，２２，２３を受け、ＤＭＡ実行開始予定順序情報６４を出力する。ＤＭＡ実行終了予定時刻順序判定部４０６は、ＤＭＡ実行終了予定時刻情報６１，６２，６３を受け、終了時刻全てを比較し、ＤＭＡ実行終了予定順序情報６６を生成する。ＤＭＡ実行開始要求時刻順序判定部４０５からのＤＭＡ実行開始予定順序情報６４と、ＤＭＡ実行終了予定時刻順序判定部４０６からのＤＭＡ実行終了予定順序情報６６とを実行順序決定部４０７で受ける。実行順序決定部４０７は、参照テーブル４０８を参照しながら最優先ＤＭＡ選択信号６５を生成し、出力する。
【００５１】
第５の実施形態によれば、時間方向に各ＤＭＡ要求を監視し、実動作時間を保証したＤＭＡ制御装置を提供することができる。
【００５２】
《第６の実施形態》
図１５は、本発明の第６の実施形態に係るＤＭＡ制御装置の構成を示している。図１５中のアービタ装置１００は、上記第１〜第５の実施形態で述べたアービタ装置１００のいずれかである。図１５によれば、アービタ装置１００からセレクタ１０６及びＤＭＡ実行開始予定時刻推定部５４０に対し、最優先ＤＭＡ選択信号６５を出力する。ＤＭＡ実行開始予定時刻推定部５４０は、時刻情報１０と最優先ＤＭＡ選択信号６５により選択されるＤＭＡ転送情報３１，３２，３３に含まれる転送長、転送対象メモリに関する情報とから、転送に必要な時間を現在時刻に加えることで、ＤＭＡ実行開始予定時刻情報６８を推定する。このＤＭＡ実行開始予定時刻情報６８は、ＤＭＡ実行を行う場合の最早での実行開始予定時刻を示す。セレクタ１０６は、図１と同様にＤＭＡ転送情報３１，３２，３３から最優先ＤＭＡ選択信号６５に従い、転送キュー５００にＤＭＡ制御情報４１を転送する。具体的には、ＤＭＡ制御情報４１の内容は、ＤＭＡ転送情報（アドレス、転送量、読み出し／書き込み、対象となるメモリ情報）、ＤＭＡ実行開始要求時刻、ＤＭＡ実行開始予定時刻で構成され、それぞれがＤＭＡ転送情報キュー５０１、ＤＭＡ実行開始要求時刻情報キュー５０２、ＤＭＡ実行開始予定時刻情報キュー５０３に転送される。以上３つの情報が転送された後それぞれのキュー５０１〜５０３を管理すべくそれぞれのポインタ情報をインデックスキー５０４にまとめて管理を行う。ＤＭＡ実行部１０７にはインデックスキー５０４の情報をもとに最優先となっているデータが転送される。新しくＤＭＡ要求が発行された場合はインデックスキー５０４の空き状況を見てアービタ装置１００によりインデックスキー５０４の空き領域に対応するキュー５０１，５０２，５０３に、新しく優先設定されたＤＭＡ制御情報４１がセットされる。
【００５３】
図１６は、図１５のＤＭＡ制御装置の動作例を示している。転送キュー５００によりパイプライン制御ができるため、図１６に示すように、各コア１０１，１０２，１０３からのＤＭＡ要求間隔は短くなっている。これと比して各コア１０１，１０２，１０３のＤＭＡの実行開始要求時刻は遅らせることができるようになる。
【００５４】
図１６において、時刻１では第１〜第３コア１０１，１０２，１０３からＤＭＡ要求がある。ＤＭＡ実行開始要求時刻が一番早い第２コア１０２のＤＭＡ転送情報３２が実行され、第３コア１０３のＤＭＡ転送情報３３が２番目に早いので転送キュー５００の１段目に、第１コア１０１のＤＭＡ転送情報３１が転送キュー５００の２段目に入力される。時刻２で第１コア１０１からＤＭＡ転送情報３１が新たに入力され、転送キュー５００の３段目に転送される。時刻３で第３コア１０３からＤＭＡ転送情報３３が転送され、転送キュー５００の４段目に転送される。最初に実行された第２コア１０２のＤＭＡ転送情報３２の実行が時刻４で終了し、転送キュー５００からＤＭＡ実行部１０７へ、そして転送キュー５００内でも順次データが転送される。逐次時刻５、時刻６で第２コア１０２のＤＭＡ転送情報３２が、時刻７で第３コア１０３のＤＭＡ転送情報３３がそれぞれ転送キュー５００の４段目に入力され、逐次パイプライン処理される。
【００５５】
このように転送キュー５００を持つことで、ＤＭＡ要求コア１０１，１０２，１０３はＤＭＡ要求を出した直後に次の処理に移行することができる利点がある。なお、転送キュー５００に入力されるＤＭＡの転送長は説明では１つのＤＭＡ要求全体の転送長として扱ったが、ＳＤＲＡＭ等に見られるメモリバーストアクセス単位に分割してもよい。
【００５６】
更に図１５の例では、アービタ装置１００で再度ＤＭＡ優先順位を判定する場合にＤＭＡ要求コア１０１，１０２，１０３からの更新情報７１，７２，７３，７４を受け、セレクタ１４１，１４２，１４３，１４４で前に使用したＤＭＡ実行開始予定時刻情報か更新情報かのいずれを使用するか選択する機能を有する。
【００５７】
ＤＭＡの動作状況としてはＤＭＡ実行開始予定時刻情報キュー５０３が存在するため、動作状況を参照し、より早い時期にＤＭＡが終了した方が都合がよいと各ＤＭＡ要求コア１０１，１０２，１０３が判定した場合は、ＤＭＡ実行開始要求時刻情報キュー５０２の情報を更新情報７１，７２，７３，７４により変更することで、アービタ装置１００における優先順位を変更することが可能になる。このことにより、例えばＤＭＡ制御装置に対して急に短い間隔のＤＭＡを要求しなければならなくなった場合に、ＤＭＡ要求コア１０１，１０２，１０３から転送キュー５００の内容を変更することでＤＭＡ転送を効率化することができる。
【００５８】
《第７の実施形態》
図１７は、本発明の第７の実施形態に係るＤＭＡ制御装置の構成を示している。図１７のＤＭＡ制御装置は、図１５と違って、第１、第２及び第３のＤＭＡ要求コア（第１、第２及び第３コア）１０１，１０２，１０３の各々から複数本のＤＭＡ要求をアービタ装置１００に転送する。各コア１０１，１０２，１０３のＤＭＡ要求バスを複数本にすることにより、各コア１０１，１０２，１０３の内部の優先順位の高低に応じて、ＤＭＡ要求を複数のＤＭＡ要求バスに振り分けてアービタ装置１００へ転送することができる。また、転送キュー５００を持ち、並行して入力されたＤＭＡ要求を転送キュー５００に格納することで、第１〜第３コア１０１，１０２，１０３のＤＭＡ処理待ち時間を短縮し、各コア１０１，１０２，１０３から実行開始要求時刻が早いＤＭＡ要求が後から入力された場合でも、その要求に見合った処理することができる。
【００５９】
なお、各コア１０１，１０２，１０３に共通のＤＭＡ要求バスを更に設けておけば、コア毎のＤＭＡ要求バスの本数より多くのＤＭＡ要求を行う必要が生じた場合でも、アービタ装置１００への情報伝送に当該共通のＤＭＡ要求バスを利用することができる。
【００６０】
《第８の実施形態》
図１８は、本発明の第８の実施形態に係るＤＭＡ制御装置の構成を示している。図１７と比較して転送キュー５００のほかにバッファキュー５１０を持つ。新規のＤＭＡ要求の実行開始要求時刻が現在実行中のＤＭＡより早い場合、現在実行中のＤＭＡを中断し、データをバッファキュー５１０に送り返し、実行開始要求時刻の早いＤＭＡを実行するのである。
【００６１】
優先度の高いＤＭＡの実行後又は新規ＤＭＡ要求が入力された場合は、アービタ装置１００はＤＭＡ実行部１０７に対して中断制御１５３を行う。ＤＭＡ実行部１０７で実行中のＤＭＡは中断され、ＤＭＡ実行部１０７は転送情報１５１を分割部５２０に転送する。分割部５２０は実行終了部分と未実行部分とを分割し、未実行部分を残転送情報１５２としてアービタ装置１００に再送し、再度調停を行う。このことにより、ＤＭＡ転送において実行開始要求時刻の早いＤＭＡを先行的に実行できる。
【００６２】
図１９は、図１８のＤＭＡ制御装置の動作例を示している。図１９によれば、時刻１〜５ではＤＭＡ実行開始要求時刻が要求された順序どおりになっているので、そのまま転送キュー５００に入力される。時刻６で第３コア１０３のＤＭＡ転送情報３３が入力されたとき、第３コア１０３のＤＭＡ実行開始要求時刻情報２３が入力され、第１コア１０１のために実行中であるＤＭＡの実行開始要求時刻より第３コア１０３のＤＭＡ実行開始要求時刻の方が早いため、ＤＭＡ実行部１０７は現在のＤＭＡ実行を中断し、中断したＤＭＡについて、転送中のＤＭＡ転送と、未処理のＤＭＡ転送とに情報を分割する。分割方法はＤＭＡ対象がＳＤＲＡＭのような一定処理単位を持つバースト転送を含むメモリの場合、バースト転送処理単位が終了した時点で分割する。ＳＲＡＭのようにランダムアクセスの場合は即時分割を行う。分割を行った後の転送データはバッファキュー５１０に転送され、そこで第３コア１０３のＤＭＡ転送情報３３の実行終了を待つ。第３コア１０３のＤＭＡ転送情報３３の実行が終了した時点で、第１コア１０１の分割データが処理される。時刻７でも同様に処理を行う。以降、蓄積されたＤＭＡを逐次ＤＭＡ実行開始要求時刻に従い転送を行う。なお、図１９には、中断なしの場合に第３コア１０３のＤＭＡ転送が間に合わないことを併せて示している。
【００６３】
以上述べたように、ＤＭＡ転送を中断して実行順序を入れ替えることで、実行開始要求時刻の早いＤＭＡ転送を先行して実行できるＤＭＡ制御装置を提供できる。
【００６４】
なお、ここではＤＭＡ転送は初めにコア１０１，１０２，１０３から要求された転送長を１まとめにして処理する形で説明したが、ＤＭＡ転送を予め一定のサイズに分割し、一定サイズに分割したＤＭＡ転送に関して上記の割り込み処理を実施してもよい。また、読み出し、書き込み等のアクセス方向の切り替わりが発生する場合に時間的要求の厳しいＤＭＡ転送を優先的に配置してもよい。
【００６５】
新規ＤＭＡ要求が先行実行されることにより転送キュー５００で待機中のＤＭＡ要求がＤＭＡ実行開始要求時刻までに実行が開始されなくなる場合には、アービタ装置１００が各ＤＭＡ要求の実行開始要求時刻をもとにＤＭＡ実行順序を再度調整すればよい。この場合、アービタ装置１００は、待機中のＤＭＡ要求を発していたコアに対してエラー信号を返送するとともに、当該待機中のＤＭＡ要求の実行開始要求時刻を早めるように変更することで、当該待機中のＤＭＡ要求の優先順位を上げるようにすればよい。
【００６６】
図２０は、２つのＤＭＡ要求間にデータの依存関係がある場合には上記中断制御１５３等が抑制されることを示している。つまり、アービタ装置１００は、新規ＤＭＡ要求の実行開始要求時刻が現在実行中のＤＭＡの実行開始要求時刻より早い場合でも、後者の結果を前者が参照するような依存関係が両者間にあるときには、当該依存関係が反映されるように新規ＤＭＡ要求の実行開始要求時刻を遅らせるように変更することで、当該新規ＤＭＡ要求の優先順位を下げるように制御するのである。
【００６７】
図２０において、１００１〜１００８は各々ＤＭＡ転送を表す。ＤＭＡ間の依存関係は１００１と１００６、１００４と１００７が同一メモリへのアクセスを行い、１００１のメモリへの書き込みをもとに１００６が実行され、１００４のメモリへの書き込みをもとに１００７が実行されるものとする。時刻６でＤＭＡ転送１００６が要求されるが、ＤＭＡ転送１００１が終了していないため、依存関係が反映されるように、ＤＭＡ転送１００１の終了後までＤＭＡ転送１００６が待機するように、ＤＭＡ転送１００６の実行開始要求時刻を遅らせるべくアービタ装置１００が情報を変更する。同様に時刻７でＤＭＡ転送１００７が要求されるが、ＤＭＡ転送１００４が終了していないため、ＤＭＡ転送１００４の終了後までＤＭＡ転送１００７が待機する。時刻８ではＤＭＡ転送１００８が要求され、依存関係が存在しないためＤＭＡ転送１００８が直ちに実行される。
【００６８】
以上のようにデータ依存関係をＤＭＡ調停の際に監視することで、ＤＭＡ実行の際の追い越しによる動作の意味合いの変更をプログラム制御だけでなくＤＭＡ制御装置でも防止することができる。なお、前述の第６又は第７の実施形態でもデータ依存関係を反映したＤＭＡ調停が有効である。
【００６９】
以上、本発明の第１〜第８の実施形態に係るＤＭＡ制御装置を説明してきた。最後に、これらのＤＭＡ制御装置のプロセッサにおける利用形態を説明する。
【００７０】
図２１は、上記第１〜第８の実施形態のうちのいずれかに係るＤＭＡ制御装置を利用したプロセッサの構成例を示している。図２１のプロセッサは、第１、第２及び第３のＤＭＡ要求コア（第１、第２及び第３コア）１０１，１０２，１０３、ＤＭＡ調停回路９０１、転送キュー５００，５３０、外部メモリコントローラ９０２、内部メモリコントローラ９０３、書き込みＦＩＦＯ９０４、読み出しＦＩＦＯ９０５、内部メモリ９０６から構成される。ＤＭＡ調停回路９０１は、前述のアービタ装置１００、タイマ１０５、セレクタ１０６、ＤＭＡ実行開始予定時刻推定部５４０を含むものである。外部メモリコントローラ９０２及び内部メモリコントローラ９０３は、前述のＤＭＡ実行部１０７に対応する。９０７は外部メモリである。
【００７１】
データの流れを説明すると、第１〜第３コア１０１，１０２，１０３よりＤＭＡ要求が発行され、ＤＭＡ調停回路９０１にて前述の調停が行われる。調停後外部メモリコントローラ９０２、内部メモリコントローラ９０３に調停の結果選択されたＤＭＡ転送情報が転送される。外部メモリコントローラ９０２は、選択されたＤＭＡ転送情報を受け、内部メモリコントローラ９０３からのデータ転送状況やＦＩＦＯ９０４，９０５の空き状況を見て転送可能な状態にあると判断した場合にＤＭＡを実行する。ここで転送可能な状態とは、バースト転送を行う外部メモリ９０７の場合、バースト転送長分の転送が行われても、データの供給（外部メモリ９０７へ書き込みアクセス時）又はデータの転送（外部メモリ９０７からのデータの読み出しアクセス時）がバースト長転送分中断せず実行可能かどうかを判定する。同様に内部メモリコントローラ９０３は、内部メモリ９０６に対しデータの供給（外部メモリ９０７からのデータの読み出しアクセス時）又はデータの転送（外部メモリ９０７へ書き込みアクセス時）を行う。この際、内部メモリコントローラ９０３は、バースト転送長分のアクセスが確保できるかどうかを内部メモリ９０６の競合状況、アクセス状況から判定し、ＤＭＡ調停回路９０１や外部メモリコントローラ９０２に転送する。ＤＭＡ調停回路９０１及び外部メモリコントローラ９０２は、内部メモリコントローラ９０３から内部メモリ９０６の競合情報を受ける。また、外部メモリコントローラ９０２はメモリアクセス実行状況及び実行予定をＤＭＡ調停回路９０１へ伝達する。
【００７２】
ＤＭＡ調停回路９０１は、内部メモリコントローラ９０３から受けたメモリ競合情報と、外部メモリコントローラ９０２からのメモリアクセス実行状況及び実行予定と、ＤＭＡ要求コア１０１〜１０３から与えられたＤＭＡ実行開始要求時刻とを参照し、ＤＭＡ実行開始予定時刻を推定する。ＤＭＡ実行開始予定時刻がＤＭＡ実行開始要求時刻より遅くなる場合には、全てのコア１０１，１０２，１０３に状況を伝達し、各コア１０１，１０２，１０３はＤＭＡの実行が遅れる場合の措置を実行することで、システム全体におけるＤＭＡ実行時間の変動による不具合を減少させる。
【００７３】
以上より、従来はＤＭＡの実行状況によってはデータ転送に破綻が生じ、システム全体に悪影響を与えていた特殊な条件下でのシステムの動作に関して、システム上の保護を達成することができるとともに、特殊な条件下での動作環境を生成して検証するためのテスト条件開発時間、シミュレーション時間を低減することができる。
【産業上の利用可能性】
【００７４】
本発明に係るＤＭＡ制御装置は、ＤＭＡの実行順序判定を簡略化するとともにＤＭＡ転送に係る情報の共有化を達成し、複数チャネルのＤＭＡ転送を制御する場合に有用である。また、通信ネットワークやプリンタ等のオフィスで少数対多数の接続を行う通信システムの情報のやり取り等の用途にも応用できる。
【図面の簡単な説明】
【００７５】
【図１】本発明の第１の実施形態に係るＤＭＡ制御装置の構成を示すブロック図である。
【図２】図１中のＤＭＡ転送情報生成部の詳細構成を示すブロック図である。
【図３】図１中のＤＭＡ実行開始要求時刻算出部の詳細構成を示すブロック図である。
【図４】図１中のアービタ装置の詳細構成を示すブロック図である。
【図５】図１のＤＭＡ制御装置におけるＤＭＡ要求の模式図である。
【図６】図１のＤＭＡ制御装置の動作例を示すタイミング図である。
【図７】本発明の第２の実施形態に係るＤＭＡ制御装置におけるアービタ装置の構成を示すブロック図である。
【図８】図７のアービタ装置を用いたＤＭＡ制御装置の動作例を示すタイミング図である。
【図９】本発明の第３の実施形態に係るＤＭＡ制御装置におけるアービタ装置の構成を示すブロック図である。
【図１０】図９中の参照テーブルの詳細構成を示す概念図である。
【図１１】本発明の第４の実施形態に係るＤＭＡ制御装置におけるアービタ装置の構成を示すブロック図である。
【図１２】図１１のアービタ装置を用いたＤＭＡ制御装置の動作例を示すタイミング図である。
【図１３】図１１のアービタ装置を用いたＤＭＡ制御装置の動作例を参照テーブルの更新例とともに示すタイミング図である。
【図１４】本発明の第５の実施形態に係るＤＭＡ制御装置におけるアービタ装置の構成を示すブロック図である。
【図１５】本発明の第６の実施形態に係るＤＭＡ制御装置の構成を示すブロック図である。
【図１６】図１５のＤＭＡ制御装置の動作例を示すタイミング図である。
【図１７】本発明の第７の実施形態に係るＤＭＡ制御装置の構成を示すブロック図である。
【図１８】本発明の第８の実施形態に係るＤＭＡ制御装置の構成を示すブロック図である。
【図１９】図１８のＤＭＡ制御装置の動作例を示すタイミング図である。
【図２０】図１８のＤＭＡ制御装置において２つのＤＭＡ要求間にデータの依存関係がある場合の動作例を示すタイミング図である。
【図２１】本発明の第１〜第８の実施形態のうちのいずれかに係るＤＭＡ制御装置を利用したプロセッサの構成例を示すブロック図である。
【符号の説明】
【００７６】
１００  アービタ装置
１０１  第１のＤＭＡ要求コア（第１コア）
１０２  第２のＤＭＡ要求コア（第２コア）
１０３  第３のＤＭＡ要求コア（第３コア）
１０５  タイマ
１０６  セレクタ
１０７  ＤＭＡ実行部
１１０  ＤＭＡ転送情報生成部
１１１  ＤＭＡ実行開始要求時刻算出部
１１２  ＤＭＡ要求生成部
１４１〜１４４  セレクタ
２０１  アドレス及びデータ変換回路
３０１  加算部
３０２  転送所要時間算出部
３０３  減算部
４０１〜４０３  ＤＭＡ実行終了予定時刻推定部
４０５  ＤＭＡ実行開始要求時刻順序判定部
４０６  ＤＭＡ実行終了予定時刻順序判定部
４０７  実行順序決定部
４０８  参照テーブル
４１１  参照テーブル更新部
４１２  チャネルレジスタ
５００，５３０  転送キュー
５１０  バッファキュー
５２０  分割部
５４０  ＤＭＡ実行開始予定時刻推定部
９０１  ＤＭＡ調停回路
９０２  外部メモリコントローラ
９０３  内部メモリコントローラ
９０４  書き込みＦＩＦＯ
９０５  読み出しＦＩＦＯ
９０６  内部メモリ
９０７  外部メモリ
【図１】
2006215621.tif 000003
【図２】
2006215621.tif 000004
【図３】
2006215621.tif 000005
【図４】
2006215621.tif 000006
【図５】
2006215621.tif 000007
【図６】
2006215621.tif 000008
【図７】
2006215621.tif 000009
【図８】
2006215621.tif 000010
【図９】
2006215621.tif 000011
【図１０】
2006215621.tif 000012
【図１１】
2006215621.tif 000013
【図１２】
2006215621.tif 000014
【図１３】
2006215621.tif 000015
【図１４】
2006215621.tif 000016
【図１５】
2006215621.tif 000017
【図１６】
2006215621.tif 000018
【図１７】
2006215621.tif 000019
【図１８】
2006215621.tif 000020
【図１９】
2006215621.tif 000021
【図２０】
2006215621.tif 000022
【図２１】
2006215621.tif 000023