(57)【要約】【課題】回路規模の増大を抑制しつつ、複数のＣＰＵの間におけるＤＭＡ転送に関する競合処理の負荷を低減する。【解決手段】ＤＭＡコントローラ１００は、ｎ個のＣＰＵ１-1〜１-nと１対１に対応付けて設けられ、ＤＭＡコマンドを格納するｎ個のレジスタ１０-1〜１０-nと、割り当てられたＤＭＡコマンドに従って、データ転送を実行すると共に、当該ＤＭＡコマンドに対応するデータ転送が完了すると、データ転送完了を示す割込みフラグを発行するＤＭＡ転送部３０Ａと、実行するＤＭＡコマンドを決定して、当該ＤＭＡコマンドをＤＭＡ転送部３０Ａに割り当てるディスパッチャー２０と、を具備する。【選択図】図１
2016181126.tif 000002
【特許請求の範囲】
【請求項１】
ｎ個（ｎは２以上の自然数）の処理装置と１対１に対応付けて設けられ、前記ｎ個の処理装置の各々から送信されるデータ転送に関するＤＭＡコマンドを格納するｎ個のレジスタと、
ＤＭＡコマンドに従って、データ転送を実行すると共に、当該ＤＭＡコマンドに対応するデータ転送が完了すると、データ転送完了を示す割込みフラグを発行するデータ転送部と、
前記ｎ個のレジスタに格納されるＤＭＡコマンドのうち実行するＤＭＡコマンドを決定して、当該ＤＭＡコマンドを前記データ転送部に割り当てるデータ転送割当部と、
を具備することを特徴とするＤＭＡコントローラ。
【請求項２】
前記データ転送部は、複数のデータ転送回路を有し、
前記データ転送割当部は、１つのＤＭＡコマンドを少なくとも２つの前記データ転送回路に割り当てる、
ことを特徴とする請求項１に記載のＤＭＡコントローラ。
【請求項３】
前記データ転送部は、前記ｎ個の処理装置のうち完了したデータ転送に対応するＤＭＡコマンドを発行した処理装置に対して前記割込みフラグを送信することを特徴とする請求項１又は２に記載のＤＭＡコントローラ。
【請求項４】
前記データ転送部は、前記ｎ個の処理装置に前記割込みフラグを送信することを特徴とする請求項１又は２に記載のＤＭＡコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡ（Direct Memory Access)方式によりデータを転送するＤＭＡコントローラに関する。
【背景技術】
【０００２】
データを処理するシステムにおいてＣＰＵ（Central Processing Unit）の処理負荷を軽減するため、データ転送をＤＭＡコントローラが担うことがある。また、あるシステムにおいて、複数のＣＰＵが単一のＤＭＡコントローラを共有することがある。この場合、一つのＣＰＵがＤＭＡコントローラを専有するので、他のＣＰＵとの競合を調整する必要がある。
特許文献１には、ＤＭＡコントローラにセマフォの機能を組み込み、あるＣＰＵがＤＭＡコントローラを専有している期間は、専有中であることを示すフラグを所定のレジスタに書き込み、他のＣＰＵがＤＭＡコントローラを使用することを禁止する技術が開示されている。
また、ＤＭＡコントローラに複数のＤＭＡチャネルを設け、各ＣＰＵに専用のＤＭＡチャネルを割り当てることがある。この場合、複数のＤＭＡチャネルの各々は、データ転送回路を独立して備えている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−１１０８２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載されたセマフォを備えたＤＭＡコントローラでは、手順が複雑で、しかもリソースを確保するまでにＣＰＵが待ち状態になるため、ＣＰＵのパフォーマンスが低下するといった問題があった。
また、複数のＤＭＡチャネルを備えたＤＭＡコントローラを用いる場合には、複数のＤＭＡチャネルごとに回路を実装する必要があるので、回路規模が大きくなる。しかも、全てのＣＰＵが常にＤＭＡチャネルを用いてデータ転送を実行していないので、動作率が低下するといった問題があった。
本発明は、上述した事情に鑑みてなされたものであり、回路規模の増大を抑制しつつ、複数のＣＰＵなどの処理装置の間におけるデータ転送に関する競合処理の負荷を低減することを解決課題の一つとする。
【課題を解決するための手段】
【０００５】
以上の課題を解決するために、本発明に係るＤＭＡコントローラは、ｎ個（ｎは２以上の自然数）の処理装置と１対１に対応付けて設けられ、前記ｎ個の処理装置の各々から送信されるデータ転送に関するＤＭＡコマンドを格納するｎ個のレジスタと、ＤＭＡコマンドに従って、データ転送を実行すると共に、当該ＤＭＡコマンドに対応するデータ転送が完了すると、データ転送完了を示す割込みフラグを発行するデータ転送部と、前記ｎ個のレジスタに格納されるＤＭＡコマンドのうち実行するＤＭＡコマンドを決定して、当該ＤＭＡコマンドを前記データ転送部に割り当てるデータ転送割当部と、を具備する。
【０００６】
この発明によれば、複数の処理装置からＤＭＡコントローラを見ると、ＤＭＡコマンドを受け付ける専用のレジスタが見える。従って、複数の処理装置は、複雑なセマフォ方式などの排他制御を行う必要がなく、且つ、複数の処理装置はリソースが確保されるまで処理を待つ必要がない。くわえて、複数の処理装置がデータ転送部を共用するので、複数のＤＭＡチャネルを実装する場合と比較して、ＤＭＡコントローラの回路規模を抑制でき、且つ、動作率を向上させることができる。
【０００７】
上述したＤＭＡコントローラの一態様において、前記データ転送部は、複数のデータ転送回路を有し、前記データ転送割当部は、１つのＤＭＡコマンドを少なくとも２つの前記データ転送回路に割り当てること好ましい。この態様によれば、１つのＤＭＡコマンドしか受け付けていない状態であっても、少なくとも２つのデータ転送回路に割り当てるので、同時にＤＭＡ転送が可能となり、転送速度を向上させることが可能となる。また、ＤＭＡコントローラの動作率が向上する。
【０００８】
上述したＤＭＡコントローラの一態様において、前記データ転送部は、前記ｎ個の処理装置のうち完了したデータ転送に対応するＤＭＡコマンドを発行した処理装置に対して前記割込みフラグを送信することが好ましい。これにより、処理装置は、データ転送が完了したことを検知することができる。よって、ｎ個の処理装置で１つのＤＭＡコントローラを兼用しても、ある処理装置からは、当該ＤＭＡコントローラを仮想的に専有しているように見える。
【０００９】
また、上述したＤＭＡコントローラの一態様において、前記データ転送部は、前記ｎ個の処理装置に前記割込みフラグを送信することが好ましい。この場合、ある処理装置は、他の処理装置が発行したＤＭＡコマンドの処理が終了したことを、知ることができるので、処理装置の間の動作を同期させることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１実施形態に係る処理システムの構成を示すブロック図である。
【図２】ディスパッチャー２０の第１の態様の動作を示す説明図である。
【図３】ディスパッチャー２０の第２の態様の動作を示す説明図である。
【図４】本発明の第２実施形態に係る処理システムの構成を示すブロック図である。
【図５】同実施形態に係るディスパッチャー２０の動作例を示す説明図である。
【図６】本発明の第３実施形態に係る処理システムの構成を示すブロック図である。
【図７】同処理システムの等価回路を示すブロック図である。
【図８】変形例に係るＤＭＡ転送部とその周辺回路の構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
＜第１実施形態＞
図１は、本発明の第１実施形態に係る処理システムの主要部を示すブロック図である。この処理システムは、ｎ個のＣＰＵ１-1〜ＣＰＵ１-n、ＤＭＡコントローラ１００、第1メモリ２００、第２メモリ３００、及びｎ本の配線Ｌ１〜Ｌｎを備える。第１メモリ２００は、第２メモリ３００と比較してアクセス速度が低速である一方、データ容量が大きい。例えば、第１メモリ２００は、画像データを格納したＲＯＭ（Read Only Memory）であり、第２メモリ３００はＲＡＭ（Random Access Memory）である。
ｎ個のＣＰＵ１-1〜ＣＰＵ１-nの各々は、ＤＭＡコマンドを発行し、ＤＭＡコントローラ１００に送信する。ＤＭＡコマンドは、データ転送に関する各種の指令を示す。例えば、ＤＭＡコマンドは、読出アドレスと書込アドレスとの組を含む。また、ＤＭＡコマンドは、当該コマンドのデータ転送を優先する程度を示す優先度を含むものであってもよい。
【００１２】
ＤＭＡコントローラ１００は、ｎ個のＣＰＵ１-1〜ＣＰＵ１-nと１対１に対応して設けられ、ＤＭＡコマンドを格納するｎ個のレジスタ１０-1〜１０-n、ディスパッチャー２０、及びＤＭＡ転送部３０Ａを備える。
【００１３】
ディスパッチャー２０は、ｎ個のレジスタ１０-1〜１０-nに格納されるＤＭＡコマンドのうち実行するＤＭＡコマンドを決定して、当該ＤＭＡコマンドをＤＭＡ転送部３０Ａに割り当てるデータ転送割当部として機能する。より具体的には、ディスパッチャー２０は、ｎ個のレジスタ１０-1〜１０-nに格納されるＤＭＡコマンドを読み出して、その内部メモリに記憶し、記憶したＤＭＡコマンドを所定の規則に従ってＤＭＡ転送部３０Ａに割り当てる。
【００１４】
ＤＭＡ転送部３０Ａは、割り当てられたＤＭＡコマンドに従って、データ転送を実行する。例えば、ＤＭＡコマンドの読出アドレスで指定された第１メモリ２００の領域からデータを読み込み、書込みアドレスで指定された第２メモリ３００の領域に書き込む。そして、当該ＤＭＡコマンドに対応するデータ転送が完了すると、データ転送完了を示す割込みフラグＩＲＱ１〜ＩＲＱｎを発行する。本実施形態において、ＤＭＡ転送部３０Ａは、配線Ｌｊ（ｊは、１からｎまでの任意の自然数）を介して割込みフラグＩＲＱｊをＣＰＵ１-jに送信する。ｎ個の配線Ｌ１〜Ｌｎは、ｎ個の割込みフラグＩＲＱ１〜ＩＲＱｎと１対１に対応するように設けられている。また、ｎ個の配線Ｌ１〜Ｌｎは、ｎ個のＣＰＵ１-1〜１-ｎと１対１に対応するように設けられている。ＤＭＡ転送部３０Ａは、ｎ個のＣＰＵ１-1〜ＣＰＵ１-nのうち完了したデータ転送に対応するＤＭＡコマンドを発行したＣＰＵ１-jに対して、割込みフラグＩＲＱｊを送信する。
【００１５】
上述したようにディスパッチャー２０には、ＤＭＡコマンドをＤＭＡ転送部３０Ａに割り当てる機能がある。本実施形態では、ＤＭＡコントローラ１００は、ｎ個のＣＰＵ１-1〜１-nが発行するｎ個のＤＭＡコマンドを格納するｎ個のレジスタ１０-1〜１０-nを備える。従って、ディスパッチャー２０は、最大、ｎ個のＤＭＡコマンドの中から１個を選択し、これをＤＭＡ転送部３０Ａに割り当てる必要がある。
【００１６】
ディスパッチャー２０の動作には、２つの態様がある。第１の態様は、１つのＤＭＡコマンドの処理が完了するまで、次のＤＭＡコマンドをＤＭＡ転送部３０Ａに割り当てない方式である。第２の態様は、所定の単位時間ＴごとにＤＭＡコマンドをＤＭＡ転送部３０Ａに割り当てる方式である。
【００１７】
まず、第１の態様について具体的に説明する。この例では、図２に示すように、時刻ｔ０においてＣＰＵ１-1が優先度「高」のＤＭＡコマンドＣ１１を発行し、時刻ｔ１においてＣＰＵ１-3が優先度「低」のＤＭＡコマンドＣ３１を発行し、時刻ｔ２においてＣＰＵ１-2が優先度「中」のＤＭＡコマンドＣ２１を発行し、時刻ｔ３においてＣＰＵ１-1が優先度「高」のＤＭＡコマンドＣ１２を発行し、時刻ｔ４においてＣＰＵ１-2が優先度「中」のＤＭＡコマンドＣ２２を発行し、時刻ｔ５においてＣＰＵ１-3が優先度「低」のＤＭＡコマンドＣ３２を発行する。
【００１８】
第１の態様において、ディスパッチャー２０は、ＤＭＡコマンドを決定するために、ＦＩＦＯ方式、優先度方式、およびラウンドロビン方式のいずれかを採用することができる。ＦＩＦＯ方式は、ＤＭＡコマンドが発行された順番でＤＭＡコマンドをＤＭＡ転送部３０Ａに割り当てる。このため、ＦＩＦＯ方式を採用すると、ディスパッチャー２０は、同図に示すようにＤＭＡコマンドＣ１１→ＤＭＡコマンドＣ３１→ＤＭＡコマンドＣ２１→ＤＭＡコマンドＣ１２→ＤＭＡコマンドＣ２２→ＤＭＡコマンドＣ３２の順にＤＭＡコマンドをＤＭＡ転送部３０Ａに割り当てる。
【００１９】
次に、第1の態様の優先度方式において、ディスパッチャー２０は、ＤＭＡコマンドを選択するタイミングにおいて、優先度の最も高いＤＭＡコマンドを選択し、優先度が同じＤＭＡコマンドが複数ある場合には、先に発行されたＤＭＡコマンドを後に発行されたＤＭＡコマンドよりも優先する。同図に示す例では、ＤＭＡコマンドＣ１１が終了した時点では、ＤＭＡコマンドＣ３１のみが発行されているので、ディスパッチャー２０は、ＤＭＡコマンドＣ１１の後にＤＭＡコマンドＣ３１を選択する。ＤＭＡ転送部３０ＡがＤＭＡコマンドＣ３１に対応する処理を開始した後、時刻ｔ２において優先度「中」のＤＭＡコマンドＣ２１が発行され、時刻ｔ３において優先度「高」のＤＭＡコマンドＣ１２が発行される。従って、ＤＭＡコマンドＣ３１の処理が終了した時点では、ＤＭＡコマンドＣ２１とＤＭＡコマンドＣ１２とが発行されている。ＤＭＡコマンドＣ１２はＤＭＡコマンドＣ２１よりも優先度が高いので、ディスパッチャー２０は後に発行されたＤＭＡコマンドＣ１２を先に発行されたＤＭＡコマンドＣ２１よりも優先してＤＭＡ転送部３０Ａに割り当てる。
【００２０】
次に、第1の態様のラウンドロビン方式において、ディスパッチャー２０は、予め定められた順番でＤＭＡコマンドを割り当てる。この例では、ＣＰＵ１-1で発行したＤＭＡコマンド→ＣＰＵ１-2で発行したＤＭＡコマンド→ＣＰＵ１-3で発行したＤＭＡコマンド→ＣＰＵ１-1で発行したＤＭＡコマンド→…の順となる。但し、割り当て実行時に指定されたＣＰＵが発行したＤＭＡコマンドが存在しない場合には、順番を繰り上げてＤＭＡコマンドを実行する。例えば、ＤＭＡコマンドＣ１１が終了した時点ではＣＰＵ１-2が発行したＤＭＡコマンドが無いので、ディスパッチャー２０は順番を繰り上げてＣＰＵ１-3が発行したＤＭＡコマンドＣ３１をＤＭＡ転送部３０Ａに割り当てる。
【００２１】
次に、単位時間ＴごとにＤＭＡコマンドをＤＭＡ転送部３０Ａに割り当てる第２の態様について、図３を参照しつつ具体的に説明する。この例では、時刻ｔ０、ｔ１、ｔ２、ｔ３、ｔ４、及びｔ５において、各ＤＭＡコマンドが発行されるが、この点は、第１の態様と同様である（図２参照）。
第２の態様のＦＩＦＯ方式において、ディスパッチャー２０は、第１の態様のＦＩＦＯ方式と同様に、ＤＭＡコマンドをＤＭＡ転送部３０Ａに割り当てる。これは、単位時間ＴごとにＤＭＡコマンドを割り当てたとしても、ＦＩＦＯ方式ではＤＭＡコマンドの発行順に処理を実行するからである。
【００２２】
次に、第２の態様の優先度方式において、ディスパッチャー２０は、単位時間Ｔごとに、優先度の最も高いＤＭＡコマンドを選択し、優先度が同じＤＭＡコマンドが複数ある場合には、先に発行されたＤＭＡコマンドを後に発行されたＤＭＡコマンドよりも優先する。同図に示す例では、時刻ｔ１１において単位時間Ｔが終了するが、その時点で発行されているＤＭＡコマンドはＤＭＡコマンドＣ１１のみである。このため、ディスパッチャー２０は、時刻ｔ１１から時刻ｔ１２までの単位時間ＴにおいてＤＭＡコマンドＣ１１をＤＭＡ転送部３０Ａに割り当てる。そして、時刻ｔ１２から時刻ｔ１３までの単位時間Ｔでは、ＤＭＡコマンドＣ３１が選択される。時刻ｔ１３において、ＤＭＡコマンドＣ３１の処理は終了していない。しかし、時刻ｔ１３において、ＤＭＡコマンドＣ３１の優先度「低」よりも優先度の高いＤＭＡコマンドＣ２１（優先度「中」）が発行されている。このため、ディスパッチャー２０は、時刻ｔ１３から時刻ｔ１４までの単位時間ＴにおいてＤＭＡコマンドＣ２１をＤＭＡ転送部３０Ａに割り当てる。このように第２の態様では、単位時間Ｔごとに、優先度の判定を行う点で、あるＤＭＡコマンドが終了した時点で優先度を判定する第１の態様の優先度方式と相違する。
【００２３】
次に、第２の態様のラウンドロビン方式において、ディスパッチャー２０は、単位時間Ｔごとに予め定められた順番でＤＭＡコマンドを割り当てる。この例では、第１の態様のラウンドロビン方式と同様に、ＣＰＵ１-1で発行したＤＭＡコマンド→ＣＰＵ１-2で発行したＤＭＡコマンド→ＣＰＵ１-3で発行したＤＭＡコマンド→ＣＰＵ１-1で発行したＤＭＡコマンド→…の順とする。但し、割り当て実行時に指定されたＣＰＵが発行したＤＭＡコマンドが存在しない場合には、順番を繰り上げてＤＭＡコマンドを実行する。
【００２４】
図３に示す例では、時刻ｔ０からＤＭＡコマンドＣ１１の処理が開始され、単位時間Ｔが経過して時刻ｔ１１になると、ディスパッチャー２０は時刻ｔ１１において発行されているＤＭＡコマンドを確認する。この時点では、ＤＭＡコマンドＣ１１のみが発行されているので、ディスパッチャー２０は時刻ｔ１１以降もＤＭＡコマンドＣ１１の割り当てを継続する。この例では、時刻ｔ１２においてＤＭＡコマンドＣ１１の処理が終了する。時刻ｔ１２ではＤＭＡコマンドＣ３１のみが発行されているので、ディスパッチャー２０はＤＭＡコマンドＣ３１をＤＭＡ転送部３０Ａに割り当てる。そして、時刻ｔ１２から単位時間Ｔが経過して時刻ｔ１３に至ると、ディスパッチャー２０は時刻ｔ１３で発行されているＤＭＡコマンドを確認する。この例では、ＣＰＵ１-2が発行したＤＭＡコマンドＣ２１が検知される。ＤＭＡコマンドＣ３１はＣＰＵ１-3が発行したものであるから、本来であれば、予め定められた順番に従って、ＣＰＵ１-1が発行したＤＭＡコマンドが選択されるべきである。しかしながら、時刻ｔ１３では、ＣＰＵ１-1が発行したＤＭＡコマンドが存在しないので、ディスパッチャー２０はＤＭＡコマンドＣ２１をＤＭＡ転送部３０Ａに割り当てる。そして、時刻ｔ１３から単位時間Ｔが経過して時刻ｔ１４に至ると、ディスパッチャー２０はＣＰＵ１-3が発行したＤＭＡコマンドＣ３１をＤＭＡ転送部３０Ａに割り当てる。
【００２５】
本実施形態では、ｎ個のＣＰＵ１-1〜１-nが１個のＤＭＡコントローラ１００を兼用している。そして、ｎ個のＣＰＵ１-1〜１-nの各々が発行するＤＭＡコマンドは、ｎ個のＣＰＵ１-1〜１-nと１対１で対応するように設けられたｎ個のレジスタ１０-1〜１０-ｎに格納される。従って、ＤＭＡコントローラ１００は、仮に、ＣＰＵ１-1が発行したＤＭＡコマンドＣ１を実行中であっても、他のＣＰＵ１-2〜１-nが発行するＤＭＡコマンドＣ２〜Ｃｎを受け付ける。そして、ｊ番目のＣＰＵ１-jが発行したＤＭＡコマンドＣｊの処理が終了すると、ＤＭＡコントローラ１００は割り込みフラグＩＲＱｊを発行し、配線Ｌｊを介してＣＰＵ１-jに送信する。ｊ番目のＣＰＵ１-jから見ると、ＤＭＡコントローラ１００は、専用の装置として機能している。即ち、ｎ個のＣＰＵ１-1〜１-nの各々に対してＤＭＡコントローラが仮想化されている。よって、ｎ個のＣＰＵ１-1〜１-nの間でＤＭＡリソースの競合を調整する処理を無くすことができ、各ＣＰＵ１-1〜１-nの処理負荷を軽減することができる。
【００２６】
また、ＤＭＡコントローラ１００は、ｎ個のＤＭＡチャネルを備えたＤＭＡコントローラと比較して、個別にＤＭＡ転送部を設ける必要がないので、回路規模を小さくすることが可能となる。加えて、ＤＭＡチャネルごとにデータ転送の帯域を確保する必要がないので、動作率を高めることができる。
【００２７】
＜第２実施形態＞
図４は、本発明の第２実施形態に係る処理システムの主要部を示すブロック図である。この処理システムは、ＤＭＡ転送部３０Ａの替わりにＤＭＡ転送部３０Ｂを用いる点、及びディスパッチャー２０の動作を除いて、図１に示す第１実施形態の処理システムと同様に構成されている。
【００２８】
第２実施形態のＤＭＡ転送部３０Ｂは、第１データ転送回路３１及び第２データ転送回路３２を備える。第１データ転送回路３１及び第２データ転送回路３２は同時にデータを転送することが可能である。また、第２実施形態のディスパッチャー２０は、あるＤＭＡコマンドを分割して、第１データ転送回路３１及び第２データ転送回路３２に割り当てることができる。一つのＤＭＡコマンドを複数に分割して割り当てるということは、一つのＤＭＡコマンドで指定する転送元のアドレス空間と転送先のアドレス空間を分割して、分割したアドレス空間毎に、対応するＤＭＡコマンドを割り当てることを意味する。例えば、一つのＤＭＡコマンドが領域Ａから領域Ｂへのデータ転送を指定し、読み出しの領域Ａは領域Ａ０と領域Ａ１とからなり、書き込みの領域Ｂは領域Ｂ０と領域Ｂ１とからなるものとする。この場合、一つのＤＭＡコマンドは、領域Ａ０から領域Ｂ０へのデータ転送を指定するＤＭＡコマンドと、領域Ａ１から領域Ｂ１へのデータ転送を指定するＤＭＡコマンドとに分割することができる。
ディスパッチャー２０は、上述したＤＭＡコマンドの分割を自動的に実行する。
【００２９】
例えば、図５に示すように時刻ｔａにおいて、優先度「高」のＤＭＡコマンドＣｘと優先度「中」のＤＭＡコマンドＣｙ、及び優先度「低」のＤＭＡコマンドＣｚが発行されているものとする。この場合、ディスパッチャー２０は、ＤＭＡコマンドＣｘをＤＭＡコマンドＣｘ１とＤＭＡコマンドＣｘ２とに分割し、ＤＭＡコマンドＣｘ１を第１データ転送回路３１に割り当て、ＤＭＡコマンドＣｘ２を第２データ転送回路３２に割り当てることができる。ＤＭＡ転送部３０Ｂは、ＤＭＡコマンドＣｘ１及びＤＭＡコマンドＣｘ２の処理が終了した時刻ｔｂにおいて、割り込みフラグを生成して、ＤＭＡコマンドＣｘを発行したＣＰＵへ当該割り込みフラグを送信する。この後、ディスパッチャー２０は、ＤＭＡコマンドＣｙを第１データ転送回路３１に割り当て、ＤＭＡコマンドＣｚを第２データ転送回路３２に割り当てる。
このように、第２実施形態に係るＤＭＡコントローラ１００は、一つのＤＭＡコマンドを分割して複数のデータ転送回路に割り当てることができるので、転送速度を高めることができ、且つ、動作率を向上させることが可能となる。
【００３０】
＜第３実施形態＞
図６は、本発明の第３実施形態に係る処理システムの主要部を示すブロック図である。この処理システムは、配線Ｌ１〜Ｌｎの替わりに、配線Ｌｘ１〜Ｌｘｎを用いる点を除いて図１に示す第１実施形態の処理システムと同様に構成されている。
【００３１】
この処理システムによれば、配線ＬｘｊがＣＰＵ１-jだけでなくｎ個のＣＰＵ１-1〜１-nに接続されている。従って、ｎ個のＣＰＵ１-1〜１-nの間でＤＭＡ転送処理の同期をとることができる。例えば、ＣＰＵ１-2は、ＣＰＵ１-1に関わるＤＭＡ転送が完了した後、所定のＤＭＡコマンドを発行してもよい。この場合、ＣＰＵ１-2は、配線Ｌｘ１を介して供給される割り込みフラグＩＲＱ１を検知して、所定のＤＭＡコマンドを発行する。これにより、ＣＰＵ１-1の動作とＣＰＵ１-2の動作を同期させることが可能となる。
【００３２】
図７は、第３実施形態に係る処理システムの等価回路を示すブロック図である。この図に示されるように、ＤＭＡコントローラ１００は、等価的にｎ個の仮想ＤＭＡコントローラＸ１〜Ｘｎを備える。ここで、ＣＰＵ１-1が優先度「中」のＤＭＡコマンドＣ1を発行し、ＣＰＵ１-2が優先度「中」のＤＭＡコマンドＣ2を発行し、ＣＰＵ１-nが優先度「高」のＤＭＡコマンドＣnを発行したとする。
【００３３】
この場合、ＣＰＵ１-1には、専用の仮想ＤＭＡコントローラＸ１が割り当てられているので、ＤＭＡ転送に係るリソースを確保するための手続や、待ち状態が発生しない。なお、ＣＰＵ１-1は、他のＣＰＵ１-2〜１-nに対応する割り込みフラグＩＲＱ２〜ＩＲＱｎを検出しないように設定してもよい。
【００３４】
また、ＣＰＵ１-2は、割り込みフラグＩＲＱ２のみならず、割り込みフラグＩＲＱ１を検出するように設定できる。ここで、ＤＭＡコマンドＣ1が完了して割り込みフラグＩＲＱ１をＣＰＵ１-2が検出すると、ＣＰＵ１-2はＤＭＡコマンドＣ2を発行してもよい。この場合、ＣＰＵ１-2の動作をＣＰＵ１-1の動作に同期させることができる。
【００３５】
また、ＣＰＵ１-nは優先度「高」でＤＭＡコマンドＣnを発行する。ＣＰＵ１-nには、専用の仮想ＤＭＡコントローラＸｎが割り当てられているので、他のＣＰＵ１-1〜１-n-1に実行中のＤＭＡ転送を中断する要求を送信する必要がなくなり、プログラミングが容易になる。
【００３６】
＜変形例＞
以上に例示した形態は多様に変形される。具体的な変形の態様を以下に例示する。以下の例示から任意に選択された２以上の態様は適宜に併合され得る。
【００３７】
（１）前述の各実施形態では、ＤＭＡコマンドを発行する装置の一例として、ＣＰＵを例示したが、本発明はこれに限定されるものではなく、何らかのデータを処理する処理装置であって、ＤＭＡコマンドを発行するものであればよい。
【００３８】
（２）上述した第２実施形態においてＤＭＡ転送部３０Ｂは２個のデータ転送回路を備えていたが、本発明はこれに限定されるものではなく、３以上のデータ転送回路を備えるものであればよい。但し、データ転送回路の数は、回路規模を低減する観点から、ｎ−１個以下であることが好ましい。
【００３９】
（３）上述した第２実施形態において第１データ転送回路３１及び第２データ転送回路３２は、ともに第１メモリ２００及び第２メモリ３００にアクセス可能としたが、本発明はこれに限定されるものではない。例えば、図８に示すように、図４に示す第１メモリ２００を第１メモリ２００Ａと第１メモリ２００Ｂとに分割し、第２メモリ３００を第２メモリ３００Ａと第２メモリ３００Ｂとに分割してもよい。この場合、第１メモリ２００Ａ及び第２メモリ３００Ａは第１データ転送回路３１がＤＭＡ転送を担う専用メモリとして機能し、第１メモリ２００Ｂ及び第２メモリ３００Ｂは第２データ転送回路３２がＤＭＡ転送を担う専用メモリとして機能する。
【００４０】
（４）上述した第３実施形態において割り込みフラグＩＲＱｊは、配線Ｌｘｊを介してｎ個のＣＰＵ１-1〜１-nに送信されたが、本発明はこれに限定されるものではなく、所定数のＣＰＵに送信してもよい。要は、あるＣＰＵのＤＭＡコマンドに係るデータ転送処理と同期させたい他のＣＰＵに当該ＤＭＡコマンドに対応する割り込みフラグを送信すればよい。
【符号の説明】
【００４１】
１-1〜１-n……ＣＰＵ、１０-1〜１０-n……レジスタ、２０……ディスパッチャー、３０Ａ,３０Ｂ……ＤＭＡ転送部、３１……第1データ転送回路、３２……第２データ転送回路、１００……ＤＭＡコントローラ、２００,２００Ａ,２００Ｂ……第１メモリ、３００,３００Ａ,３００Ｂ……第２メモリ、Ｌ１〜Ｌｎ, Ｌx1〜Ｌxn……配線、ＩＲＱ１〜ＩＲＱｎ……割り込みフラグ。
【図１】
2016181126.tif 000003
【図２】
2016181126.tif 000004
【図３】
2016181126.tif 000005
【図４】
2016181126.tif 000006
【図５】
2016181126.tif 000007
【図６】
2016181126.tif 000008
【図７】
2016181126.tif 000009
【図８】
2016181126.tif 000010