(57)【要約】【課題】ＤＭＡ転送におけるプロセッサの負荷を軽減する。【解決手段】各プロセッサが有するローカルメモリ１６と各プロセッサが共有するグロールメモリ１５との間のＤＭＡ転送を行うＤＭＡ転送装置１３であって、ＤＭＡ転送終了の通知先を管理するテーブル１４を参照して特定した通知先に対してＤＭＡ転送終了通知を発行する。【選択図】図１
2007207026.tif 000002
【特許請求の範囲】
【請求項１】
各プロセッサが有するローカルメモリと各プロセッサが共有するグロールメモリとの間のＤＭＡ転送を行うＤＭＡ転送装置であって、
ＤＭＡ転送終了の通知先を管理するテーブルと、
前記テーブルを参照して特定した通知先に対してＤＭＡ転送終了通知を発行する制御手段とを備えるＤＭＡ転送装置。
【請求項２】
前記テーブルは、ＤＭＡ転送終了を通知するタイミングを管理し、
前記制御手段は、前記テーブルを参照して特定したタイミングでＤＭＡ転送終了通知を発行する請求項１記載のＤＭＡ転送装置。
【請求項３】
前記テーブルは、未転送データ数又は転送済データ数で定義したタイミングを管理する請求項２記載のＤＭＡ転送装置。
【請求項４】
前記テーブルは、スレーブプロセッサをＤＭＡ転送終了の通知先として管理する請求項１記載のＤＭＡ転送装置。
【請求項５】
前記テーブルは、自身をＤＭＡ転送終了の通知先として管理する請求項１記載のＤＭＡ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のプロセッサを備えるマルチプロセッサシステムに係り、特に、プロセッサ間のＤＭＡ転送を行うＤＭＡ転送装置に関する。
【背景技術】
【０００２】
マルチプロセッサシステムにおいては、複数のプロセッサで演算を並列に実行できる。特に、画像処理分野では、並列性の高い処理が多いため、プロセッサが多く存在すればその分、画像処理に必要な時間を短縮することが可能である。しかし、演算の並列実行を行う前に、複数のプロセッサに処理すべきデータを分割する必要がある。データの分割を行うとき、プロセッサ間のデータ転送がオーバヘッドとして新たに処理時間に加わる。従って、いかにプロセッサ間転送を高速に行って、最終的な演算効率を向上できるかが鍵となる。
【０００３】
プロセッサ間転送を高速化する従来技術として、本来プロセッサが転送するべきデータを、プロセッサとは独立して直接データ転送するＤＭＡと呼ばれる機能が知られている。プロセッサはＤＭＡ転送を行っている間、別の処理を継続することができるため、処理速度の向上を図ることができる。ＤＭＡ転送は、ＤＭＡ転送の起動及びその完了をマスタプロセッサによりモニタし、ＤＭＡ転送が完了した際にマスタプロセッサからスレーブプロセッサに対してその終了を通知する。終了の通知はプロセッサ間に設けられた通信手段を用いてマスタプロセッサからスレーブプロセッサに対して行われる。
【０００４】
図９はＤＭＡ転送シーケンスを示す図である。例えばマスタプロセッサが管理するデータを所定の領域にＤＭＡ転送し、ＤＭＡ転送完了後にスレーブプロセッサがそのデータを用いた処理を実行する場合、マスタプロセッサ１０がＤＭＡ転送装置１４を起動するために転送要求をＤＭＡ転送装置１４に対して発行し、ＤＭＡ転送装置１４はＤＭＡ転送終了後、転送終了通知をマスタプロセッサ１０に対して発行し、マスタプロセッサ１０はプロセッサ間通信を用いてスレーブプロセッサ１１に対してＤＭＡ転送が終了したのでデータ処理開始可能という通知（処理開始ＯＫ）を発行し、通知を受けたスレーブプロセッサ１１はデータ処理を実行する。また、図１０示すようにスレーブプロセッサ１１でのデータ処理を数回に分けて行う必要がある場合、図９で示したＤＭＡ転送シーケンスを複数回行う。
【０００５】
ところで、マルチプロセッサシステムにおいては、全てのプロセッサがマスタプロセッサになり得るため、各プロセッサの制御プログラムには、ＤＭＡ転送終了通知に対する判断処理機能が実装されている。従って、ＤＭＡ転送が完了した際は、全てのプロセッサに対して転送終了通知が発行されため、本来通知の必要無いプロセッサにおいても、転送終了通知に対する判断を行う必要がある（例えば、特許文献１参照）。
【特許文献１】特開２００２−１６３２３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述のように、従来のＤＭＡ転送では、ＤＭＡコントローラから全てのプロセッサに対して発行される転送終了通知を各プロセッサが判断しなければならないため、プロセッサの負荷が増大するという課題がある。また、ＤＭＡ転送終了毎にマスタプロセッサがスレーブプロセッサに対して通知（処理開始ＯＫ）を発行しなければならないため、プロセッサの負荷が増大するという課題がある。
【０００７】
本発明はＤＭＡ転送におけるプロセッサの負荷を軽減することができるＤＭＡコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、各プロセッサが有するローカルメモリと各プロセッサが共有するグロールメモリとの間のＤＭＡ転送を行うＤＭＡ転送装置であって、ＤＭＡ転送終了の通知先を管理するテーブルと、前記テーブルを参照して特定した通知先に対してＤＭＡ転送終了通知を発行する制御手段とを備える。この構成によれば、ＤＭＡ転送装置がマスタプロセッサを介することなく特定の宛先に対して直接転送終了通知を発行するため、マスタプロセッサの負荷が低減される。また、特定のスレーブプロセッサに対してのみ転送終了通知が発行されるため、他のスレーブプロセッサにおいて転送終了通知を判断する必要がなくなるため、プロセッサの負荷を低減することができる。
【０００９】
本発明において、前記テーブルは、ＤＭＡ転送終了を通知するタイミングを管理し、
前記制御手段は、前記テーブルを参照して特定したタイミングでＤＭＡ転送終了通知を発行する。この構成によれば、ＤＭＡ転送終了通知のタイミングを変更できるため、全てのＤＭＡ転送の終了を待つことなく、転送データに対する処理を開始することができる。
【００１０】
本発明において、前記テーブルは、スレーブプロセッサをＤＭＡ転送終了の通知先として、または自身をＤＭＡ転送終了の通知先として管理する。この構成によれば、ＤＭＡ転送終了の通知先を自身のＤＭＡ転送装置に設定した場合は、ＤＭＡ転送を連続して実行することが可能となり複数回のＤＭＡ転送を効率良く実行することができる。
【発明の効果】
【００１１】
本発明によれば、ＤＭＡ転送装置がマスタプロセッサを介することなく特定の宛先に対して直接転送終了通知を発行するため、マスタプロセッサの負荷が低減される。また、特定のスレーブプロセッサに対してのみ転送終了通知が発行されるため、他のスレーブプロセッサにおいて転送終了通知を判断する必要がなくなるため、プロセッサの負荷を低減することができる。
【発明を実施するための最良の形態】
【００１２】
図１は本発明が適用されるマルチプロセッサシステムの構成図を示すものである。図１に示すようにマルチプロセッサシステムは、マスタプロセッサ１０、スレーブプロセッサ１１、スレーブプロセッサ１２、グローバルメモリ１５及びＤＭＡ転送装置１３からなり、バス１７を介して接続されている。なお、プロセッサの数は３つに限る必要は無いが、本実施形態では３つのプロセッサを例に説明する。
【００１３】
各プロセッサはそれぞれローカルメモリ１６をもち、プロセッサ固有の処理を行う際のデータメモリとして用いられる。ローカルメモリ１６は他のプロセッサから直接アクセスすることはできず、プロセッサ間でのデータ転送はグローバルメモリ１５を介してＤＭＡ転送により行われる。グローバルメモリ１５は、各プロセッサが共通で使用可能な共有メモリであり、各プロセッサで使用可能な共通バッファ領域として、また各プロセッサ間で通信する際の共通データの格納先として使用される。
【００１４】
図２はＤＭＡ転送装置１３が有する管理テーブル１４を示す図である。管理テーブル１４には、転送先アドレス及び転送元アドレス並びにＤＭＡ転送終了通知先ＩＤがパラメータとして設定されている。さらに、後述する通知タイミング、ＤＭＡ転送完了フラグ及びＤＭＡチャンネルが設定されている。管理テーブルはこれらのパラメータを１レコードとして複数のレコードを格納する。
【００１５】
図３はＤＭＡ転送シーケンスを示す図である。マスタプロセッサ１０はＤＭＡ転送装置１４に対しＤＭＡ転送要求を発行する。ＤＭＡ転送終了が完了すると、ＤＭＡ転送装置１４は管理テーブルを参照してＤＭＡ転送パラメータ（転送先アドレス、転送元アドレス）に対応して設定されているスレーブプロセッサを特定する通知先ＩＤに対して転送終了通知を発行する。スレーブプロセッサ１１はＤＭＡ転送後の処理を実行した時点で、マスタプロセッサ１０に対して終了通知を発行する。なお、マスタプロセッサ１０に対する終了通知の発行は省略してもよい。また、転送終了通知の発行対象となるスレーブプロセッサを複数設定して各スレーブプロセッサに対して転送終了通知を発行するようにしてもよい。
【００１６】
図４はＤＭＡ転送シーケンスの他の例を示す図である。例えば、マスタプロセッサ１０のローカルメモリ１６に格納されているデータをグローバルメモリ１５にＤＭＡ転送し、そのデータをスレーブプロセッサ１１で処理するという一連の動作を行う場合を説明する。マスタプロセッサ１０はＤＭＡ転送装置１４に対して１回目のＤＭＡ転送要求を発行する。１回目のＤＭＡ転送終了が完了すると、ＤＭＡ転送装置１４は管理テーブルを参照して１回目のＤＭＡ転送パラメータ（転送先アドレス、転送元アドレス）に対応して設定されているスレーブプロセッサを特定する通知先ＩＤに対して転送終了通知を発行する。スレーブプロセッサ１１はＤＭＡ転送後の処理を実行した時点で、マスタプロセッサ１０に対して終了通知を発行する。次にマスタプロセッサ１０はＤＭＡ転送装置１４に対して２回目のＤＭＡ転送要求を発行する。２回目のＤＭＡ転送終了が完了すると、ＤＭＡ転送装置１４は管理テーブルを参照して２回目のＤＭＡ転送パラメータ（転送先アドレス、転送元アドレス）に対応して設定されているスレーブプロセッサを指定する通知先ＩＤに対して転送終了通知を発行する。スレーブプロセッサ１１はＤＭＡ転送後の処理を実行した時点で、マスタプロセッサ１０に対して終了通知を発行する。上述のＤＭＡ転送をＮ回繰り返すことで一連の処理を実行することができる。
【００１７】
図５はＤＭＡ転送シーケンスのさらに他の例を示す図である。図５に示す転送シーケンスは、マスタプロセッサから発行していたＤＭＡ転送要求をスレーブプロセッサから発行するものである。マスタプロセッサ１０はスレーブプロセッサ１１に対して処理開始要求を発行する。スレーブプロセッサ１１は必要な処理を実行した後、ＤＭＡ転送装置１４に対してＤＭＡ転送要求を発行する。ＤＭＡ転送終了が完了すると、ＤＭＡ転送装置１４は管理テーブルを参照してＤＭＡ転送パラメータ（転送先アドレス、転送元アドレス）に対応して設定されているスレーブプロセッサを特定する通知先ＩＤに対して転送終了通知を発行する。以降の処理は図４で説明したＤＭＡ転送シーケンスと同様である。
【００１８】
上記実施形態によれば、ＤＭＡ転送装置がマスタプロセッサを介することなく特定のスレーブプロセッサに対して直接転送終了通知を発行するため、ＤＭＡ転送におけるプロセッサの負荷を低減することができる。
【００１９】
図６はＤＭＡ転送シーケンスの更に他の例を示す図である。ＤＭＡ転送要求を発行するマスタプロセッサ１０はＤＭＡ転送装置１４が有する管理テーブルに対して通知タイミング（図２参照）を設定する。ＤＭＡ転送装置１４は管理テーブルを参照してＤＭＡ転送パラメータ（転送先アドレス、転送元アドレス）に対応して設定されているスレーブプロセッサを特定する通知先ＩＤに対して転送終了通知を発行する。発行タイミングは管理テーブルに設定されている通知タイミングで定義される。従って、通知タイミングとして未転送データ数を定義しておくことで、ＤＭＡ転送中に未転送データが通知タイミングで定義したデータ数以下になると転送終了通知が発行される。ＤＭＡ転送装置１４は未転送データのＤＭＡ転送を継続し、全てのＤＭＡ転送が終了した時点で完了フラグ（図２参照）をセットする。スレーブプロセッサ１１はＤＭＡ転送と並行して処理を先行させる。なお、スレーブプロセッサ１１は管理テーブルの完了フラグを参照することで、全てのＤＭＡ転送の終了を確認することができる。
【００２０】
転送終了通知を発行するタイミングを変更することで、例えば図７に示すように、ヘッダ部と、これに続くペイロード部を有する構造のストリームデータを処理する場合、ヘッダ部のＤＭＡ転送が終了した時点で転送終了通知を発行するように通知タイミングを定義することで、スレーブプロセッサ１１は全てのＤＭＡ転送の終了を待たずにヘッダ関連の処理（ヘッダ解析等）を先行させることができる。なお、通知タイミングとして未転送データ数を定義する代わりに、転送済データ数を定義するようにしてもよい。また、通知タイミングをタイマ管理するようにしてもよい。
【００２１】
図８はマスタプロセッサの有するローカルメモリで確保しているメモリブロック１０，１１，１２，１３のデータを、メモリブロック単位でグローバルメモリを介してスレーブプロセッサの有するローカルメモリのメモリブロック１００、１０１、１０２、１０３にコピーする様子を示している。この場合、マスタプロセッサの有するローカルメモリからグローバルメモリへのＤＭＡ転送（１、３、５、７）と、グローバルメモリからスレーブプロセッサの有するローカルメモリへのＤＭＡ転送（２、４、６、８）が必要になる。
【００２２】
ＤＭＡ転送装置は先ずＤＭＡ転送１を開始する。ＤＭＡ転送１が終了すると、ＤＭＡ転送装置は自己宛に転送終了通知を発行する。ＤＭＡ転送装置は、未使用のＤＭＡチャンネルをＤＭＡ転送２に割り当て、同時にＤＭＡ転送３を開始する。以降同様にして全てのＤＭＡ転送をパイプライン形式で行う。管理テーブルにはＤＭＡ転送順にＤＭＡ転送パラメータを設定しておく。ＤＭＡ転送装置がＤＭＡ転送終了通知を受けてＤＭＡ転送を行うことで、マスタプロセッサを経由する従来のＤＭＡ転送に比べてプロセッサの負荷を軽減させることができる。
【産業上の利用可能性】
【００２３】
本発明のＤＭＡ転送装置は、ＤＭＡ転送装置がマスタプロセッサを介することなく特定の宛先に対して直接転送終了通知を発行するため、マスタプロセッサの負荷が低減される。また、特定のスレーブプロセッサに対してのみ転送終了通知が発行されるため、他のスレーブプロセッサにおいて転送終了通知を判断する必要がなくなるため、プロセッサの負荷を低減することができるという効果を有し、複数のプロセッサを備えるマルチプロセッサシステムにおいてプロセッサ間のＤＭＡ転送を行うＤＭＡ転送装置等として有用である。
【図面の簡単な説明】
【００２４】
【図１】本発明が適用されるマルチプロセッサシステムの構成を示す図
【図２】管理テーブルの構成を示す図
【図３】ＤＭＡ転送シーケンスを示す図
【図４】ＤＭＡ転送シーケンスを示す図
【図５】ＤＭＡ転送シーケンスを示す図
【図６】ＤＭＡ転送シーケンスを示す図
【図７】ストリームデータの構造を示す図
【図８】メモリ間のデータコピーを説明するための図
【図９】従来のＤＭＡ転送シーケンスを示す図
【図１０】複数回のＤＭＡ転送を実行するシーケンスを示す図
【符号の説明】
【００２５】
１０  マスタプロセッサ
１１、１２スレーブプロセッサ
１３  ＤＭＡ転送装置
１４  管理テーブル
１５  グローバルメモリ
１６  ローカルメモリ
１７  バス
【図１】
2007207026.tif 000003
【図２】
2007207026.tif 000004
【図３】
2007207026.tif 000005
【図４】
2007207026.tif 000006
【図５】
2007207026.tif 000007
【図６】
2007207026.tif 000008
【図７】
2007207026.tif 000009
【図８】
2007207026.tif 000010
【図９】
2007207026.tif 000011
【図１０】
2007207026.tif 000012