(57)【要約】【課題】マルチタスク処理を高速化すること。【解決手段】本発明のマルチタスク処理方法は、複数のタスクに対して、入出力データに依存関係のある複数のタスク間でのデータのコピーをＤＭＡコピーで行う。また、本発明のマルチタスク処理プログラムは、複数のタスクに対して、入出力データに依存関係のある複数のタスク間でのデータのコピーをＣＰＵが受け付ける受付ステップと、前記コピーをＤＭＡコントローラに実行させるコピーステップを備える。また、本発明のマルチタスク処理装置は、複数のタスクに対して、入出力データに依存関係のある複数のタスク間でのデータのコピーをＤＭＡコピーで行うＤＭＡコントローラを備える。【選択図】図２
2016126424.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクに対して、入出力データに依存関係のある複数のタスク間でのデータのコピーをＤＭＡコピーで行うことを特徴とするマルチタスク処理方法。
【請求項２】
タスクの出力データを保存するバッファから、前記タスクの出力データに依存関係のあるタスクの入力バッファにＤＭＡコピーを行う請求項１に記載のマルチタスク処理方法。
【請求項３】
入出力データに依存関係のある複数のタスク間でのデータのコピーをアプリケーションにおいて受け付け、前記コピーをＤＭＡコピーで実行することをカーネルから指示する請求項１または２に記載のマルチタスク処理方法。
【請求項４】
ＤＭＡコピー先の領域を物理メモリ上に連続して確保する請求項１から３のいずれかに記載のマルチタスク処理方法。
【請求項５】
複数のＤＭＡチャネルが異なる連続した物理メモリにアクセスして、前記コピーを実行する請求項１から４のいずれかに記載のマルチタスク処理方法。
【請求項６】
コピーするデータ量と帯域幅とに基づいてＤＭＡコピーがＣＰＵコピーより早い場合に、前記コピーをＤＭＡコピーで実行する請求項１から５のいずれかに記載のマルチタスク処理方法。
【請求項７】
複数のタスクに対して、入出力データに依存関係のある複数のタスク間でのデータのコピーをＣＰＵが受け付ける受付ステップと、前記コピーをＤＭＡコントローラに実行させるコピーステップを備えることを特徴とするマルチタスク処理プログラム。
【請求項８】
前記コピーステップは、タスクの出力データを保存するバッファから、前記タスクの出力データに依存関係のあるタスクの入力バッファにＤＭＡコピーを行う請求項７に記載のマルチタスク処理プログラム。
【請求項９】
前記受付ステップは、複数のタスクに対して、入出力データに依存関係のある複数のタスク間でのデータのコピーをアプリケーションにおいて受け付け、
前記コピーステップは、カーネルに前記コピーをＤＭＡコピーで実行させる７または８に記載のマルチタスク処理プログラム。
【請求項１０】
ＤＭＡコピー先の領域を物理メモリ上に連続して確保する確保ステップを有する請求項７から９のいずれかに記載のマルチタスク処理プログラム。
【請求項１１】
前記コピーステップは、複数のＤＭＡチャネルが異なる連続した物理メモリにアクセスして、コピーを実行する請求項７から１０のいずれかに記載のマルチタスク処理プログラム。
【請求項１２】
前記コピーステップは、コピーするデータ量と帯域幅とに基づいてＤＭＡコピーがＣＰＵコピーより早い場合に、前記コピーをＤＭＡコピーで実行する７から１１のいずれかに記載のマルチタスク処理プログラム。
【請求項１３】
複数のタスクに対して、入出力データに依存関係のある複数のタスク間でのデータのコピーをＤＭＡコピーで行うＤＭＡコントローラを備えることを特徴とするマルチタスク処理装置。
【請求項１４】
前記ＤＭＡコントローラは、タスクの出力データを保存するバッファから、前記タスクの出力データに依存関係のあるタスクの入力バッファにＤＭＡコピーを行う請求項１３に記載のマルチタスク処理装置。
【請求項１５】
入出力データに依存関係のある複数のタスク間でのデータのコピーをアプリケーションにおいて受け付けるＣＰＵを備え、前記ＤＭＡコントローラは、カーネルに前記コピーをＤＭＡコピーで実行させる請求項１３または１４に記載のマルチタスク処理装置。
【請求項１６】
前記ＣＰＵは、ＤＭＡコピー先の領域を物理メモリ上に連続して確保する請求項１３から１５のいずれかに記載のマルチタスク処理装置。
【請求項１７】
複数のＤＭＡチャネルが異なる連続した物理メモリにアクセスして、コピーを実行する請求項１３から１６のいずれかに記載のマルチタスク処理装置。
【請求項１８】
コピーするデータ量と帯域幅とに基づいてＤＭＡコピーがＣＰＵコピーより早い場合に、前記ＤＭＡコントローラは、前記コピーをＤＭＡコピーで実行する請求項１３から１７のいずれかに記載のマルチタスク処理装置。
【請求項１９】
メモリの初期化にＤＭＡコピーを用いる処理方法。
【請求項２０】
メモリの初期化を受け付けるステップと、
初期値を保存するアドレスから初期化するアドレスにＤＭＡコピーを実行するステップと、を備える処理プログラム。
【請求項２１】
メモリの初期化に初期値のＤＭＡコピーで行うＤＭＡコントローラを備えることを特徴とする処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマルチタスク処理方法、マルチタスク処理プログラム、マルチタスク処理装置に関する。
【背景技術】
【０００２】
現在、マルチコアを備えるプロセッサの普及に伴い、並列処理や分散処理において、プロセッサを効率よく利用する研究が進められている。
【０００３】
例えば、先行技術文献１、２には、分散処理向けネットワーク計算機の転送パケットを利用する際に並列分散処理とＤＭＡ（Direct Memory Access）転送とを使用することが記載されている。
【０００４】
また、先行技術文献３には、ＣＥＬＬプロセッサを使った例において、ダブルバッファリングのためのＤＭＡ転送について記述している。これらの先行技術文献では、カーネルにおいてＤＭＡコピーを用いることにより処理を高速化している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−１４７２５０号公報
【特許文献２】特開平８−８７４７９号公報
【特許文献３】特開２０１２−１４１８５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のマルチタスク処理方法では、アプリケーションにおいて、マルチタスク間のデータのコピーに時間がかかり、マルチタスク処理が遅いという問題があった。
本発明は、マルチタスク処理を高速化することを目的としている。
【課題を解決するための手段】
【０００７】
本発明のマルチタスク処理方法は、複数のタスクに対して、入出力データに依存関係のある複数のタスク間でのデータのコピーをＤＭＡコピーで行うようにした。
【０００８】
本発明のマルチタスク処理方法は、タスクの出力データを保存するバッファから、前記タスクの出力データに依存関係のあるタスクの入力バッファにＤＭＡコピーを行うようにした。
【０００９】
このような構成によれば、依存関係のあるタスク間のデータのコピーをＤＭＡコピーで行うことにより、マルチタスク処理を高速化できる。
【００１０】
本発明のマルチタスク処理方法は、入出力データに依存関係のある複数のタスク間でのデータのコピーをアプリケーションにおいて受け付け、前記コピーをＤＭＡコピーで実行することをカーネルから指示するようにした。
【００１１】
このような構成によれば、アプリケーションのＤＭＡコピーの指示をＣＰＵからＤＭＡコントローラに出力し、ＤＭＡコントローラにおいてＤＭＡコピーを実行することにより、マルチタスク処理を高速化できる。
【００１２】
本発明のマルチタスク処理方法は、ＤＭＡコピー先の領域を物理メモリ上に連続して確保するようにした。
【００１３】
このような構成によれば、連続した物理メモリを確保することにより、ＤＭＡコピーが高速で処理可能なデータサイズとすることができ、マルチタスク処理を高速化できる。
【００１４】
本発明のマルチタスク処理方法は、複数のＤＭＡチャネルが異なる連続した物理メモリにアクセスして、前記コピーを実行するようにした。
【００１５】
このような構成によれば、同じ物理メモリに対して複数のＤＭＡチャネルがアクセスすることが防げるので、マルチタスク処理を高速化できる。
【００１６】
本発明のマルチタスク処理方法は、コピーするデータ量と帯域幅とに基づいてＤＭＡコピーがＣＰＵコピーより早い場合に、前記コピーをＤＭＡコピーで実行するようにした。
【００１７】
このような構成によれば、コピーするデータ量とＤＭＡコピー及びＣＰＵコピー帯域幅とに基づいてＤＭＡコピーがＣＰＵコピーより早い場合に、ＤＭＡコピーで実行することにより、最適なコピー方法でコピーできるので、マルチタスク処理を高速化できる。
【００１８】
本発明のマルチタスク処理プログラムは、複数のタスクに対して、入出力データに依存関係のある複数のタスク間でのデータのコピーをＣＰＵが受け付ける受付ステップと、前記コピーをＤＭＡコントローラに実行させるコピーステップを備えるようにした。
【００１９】
本発明のマルチタスク処理プログラムは、前記コピーステップは、タスクの出力データを保存するバッファから、前記タスクの出力データに依存関係のあるタスクの入力バッファにＤＭＡコピーを行うようにした。
【００２０】
このような構成によれば、依存関係のあるタスク間のデータのコピーをＤＭＡコピーで行うことにより、マルチタスク処理を高速化できる。
【００２１】
本発明のマルチタスク処理プログラムは、前記受付ステップは、複数のタスクに対して、入出力データに依存関係のある複数のタスク間でのデータのコピーをアプリケーションにおいて受け付け、前記コピーステップは、カーネルに前記コピーをＤＭＡコピーで実行させるようにした。
【００２２】
このような構成によれば、アプリケーションのＤＭＡコピーの指示をＣＰＵからＤＭＡコントローラに出力し、ＤＭＡコントローラにおいてＤＭＡコピーを実行することにより、マルチタスク処理を高速化できる。
【００２３】
本発明のマルチタスク処理プログラムは、ＤＭＡコピー先の領域を物理メモリ上に連続して確保する確保ステップを有するようにした。
【００２４】
このような構成によれば、連続した物理メモリを確保することにより、ＤＭＡコピーが高速で処理可能なデータサイズとすることができ、マルチタスク処理を高速化できる。
【００２５】
本発明のマルチタスク処理プログラムは、前記コピーステップは、複数のＤＭＡチャネルが異なる連続した物理メモリにアクセスして、前記コピーを実行するようにした。
【００２６】
このような構成によれば、同じ物理メモリに対して複数のＤＭＡチャネルがアクセスすることが防げるので、マルチタスク処理を高速化できる。
【００２７】
本発明のマルチタスク処理プログラムは、前記コピーステップは、コピーするデータ量と帯域幅とに基づいてＤＭＡコピーがＣＰＵコピーより早い場合に、前記コピーをＤＭＡコピーで実行するようにした。
【００２８】
このような構成によれば、コピーするデータ量とＤＭＡコピー及びＣＰＵコピー帯域幅とに基づいてＤＭＡコピーがＣＰＵコピーより早い場合に、ＤＭＡコピーで実行することにより、最適なコピー方法でコピーできるので、マルチタスク処理を高速化できる。
【００２９】
本発明のマルチタスク処理装置は、複数のタスクに対して、入出力データに依存関係のある複数のタスク間でのデータのコピーをＤＭＡコピーで行うＤＭＡコントローラを備えるようにした。
【００３０】
本発明のマルチタスク処理装置は、前記ＤＭＡコントローラは、タスクの出力データを保存するバッファから、前記タスクの出力データに依存関係のあるタスクの入力バッファにＤＭＡコピーを行うようにした。
【００３１】
このような構成によれば、依存関係のあるタスク間のデータのコピーをＤＭＡコピーで行うことにより、マルチタスク処理を高速化できる。
【００３２】
本発明のマルチタスク処理装置は、入出力データに依存関係のある複数のタスク間でのデータのコピーをアプリケーションにおいて受け付けるＣＰＵを備え、前記ＤＭＡコントローラは、カーネルに前記コピーをＤＭＡコピーで実行させるようにした。
【００３３】
このような構成によれば、アプリケーションのＤＭＡコピーの指示をＣＰＵからＤＭＡコントローラに出力し、ＤＭＡコントローラにおいてＤＭＡコピーを実行することにより、マルチタスク処理を高速化できる。
【００３４】
本発明のマルチタスク処理装置は、前記ＣＰＵは、ＤＭＡコピー先の領域を物理メモリ上に連続して確保するようにした。
【００３５】
このような構成によれば、連続した物理メモリを確保することにより、ＤＭＡコピーが高速で処理可能なデータサイズとすることができ、マルチタスク処理を高速化できる。
【００３６】
本発明のマルチタスク処理装置は、複数のＤＭＡチャネルが異なる連続した物理メモリにアクセスして、前記コピーを実行するようにした。
【００３７】
このような構成によれば、同じ物理メモリに対して複数のＤＭＡチャネルがアクセスすることが防げるので、マルチタスク処理を高速化できる。
【００３８】
本発明のマルチタスク処理装置は、コピーするデータ量と帯域幅とに基づいてＤＭＡコピーがＣＰＵコピーより早い場合に、前記ＤＭＡコントローラは、前記コピーをＤＭＡコピーで実行するようにした。
【００３９】
このような構成によれば、コピーするデータ量とＤＭＡコピー及びＣＰＵコピー帯域幅とに基づいてＤＭＡコピーがＣＰＵコピーより早い場合に、ＤＭＡコピーで実行することにより、最適なコピー方法でコピーできるので、マルチタスク処理を高速化できる。
【００４０】
本発明の処理方法は、メモリの初期化にＤＭＡコピーを用いるようにした。
【００４１】
本発明の処理プログラムは、メモリの初期化を受け付けるステップと、初期値を保存するアドレスから初期化するアドレスにＤＭＡコピーを実行するステップと、を備えるようにした。
【００４２】
本発明の処理装置は、メモリの初期化に初期値のＤＭＡコピーで行うＤＭＡコントローラを備えるようにした。
【００４３】
このような構成によれば、メモリの初期化にＤＭＡコピーを用いることにより、処理速度が高速化できる。
【発明の効果】
【００４４】
本発明のマルチタスク処理は、アプリケーションにおいて、マルチタスクの処理におけるデータのコピーをＤＭＡコピーで実行することにより、マルチタスク処理を高速化できる。
【図面の簡単な説明】
【００４５】
【図１】実施の形態１に係るマルチタスク処理方法の例を示す図である。
【図２】実施の形態１に係るマルチタスク処理方法の例を示す図である。
【図３】実施の形態１に係るマルチタスク処理プログラムの階層を示す図である。
【図４】実施の形態１に係るマルチタスク処理装置の構成を示すブロック図である。
【図５】ＤＭＡコピーとＣＰＵコピーとの所要時間の比較の図である。
【図６】ＤＭＡコピーの例を示す図である。
【図７】実施の形態２に係るマルチタスク処理方法におけるＤＭＡコピーの例を示す図である。
【図８】ＤＭＡコピーとＣＰＵコピーとのデータサイズ別の帯域幅の比較の図である。
【図９】実施の形態２に係る処理方法の例を示す図である。
【発明を実施するための形態】
【００４６】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。
最初に、各タスクとバッファとの関係について説明する。図１は、実施の形態１に係るマルチタスク処理方法の例を示す図である。図１は、タスク０とタスク１の２つのタスクがそれぞれデータを処理している例を示している。またバッファＡにおいて、処理前のデータ用の領域をＳｒｃＡ、処理後のデータ用の領域をＤｓｔＡとする。同様にバッファＢにおいて、処理前のデータ用の領域をＳｒｃＢ、処理後のデータ用の領域をＤｓｔＢとする。
【００４７】
タスク０は、バッファＡ内のＳｒｃＡにあるデータを読み込み、処理を行う。そしてタスク０で得られたデータをバッファＡのＤｓｔＡに書き込む。
【００４８】
同様に、タスク１は、バッファＢ内のＳｒｃＢにあるデータを読み込み、処理を行う。そしてタスク１で得られたデータをバッファＢのＤｓｔＢに書き込む。
【００４９】
このようにタスク０及び１はそれぞれ、データを読み込み及び書き込むバッファＡ、Ｂをそれぞれ有し、処理前のデータをバッファＡ、ＢのＳｒｃＡ、Ｂに読み込み、処理後のデータをバッファＡ、ＢのＤｓｔＡ、Ｂに書き込む。
【００５０】
ここで、タスク０の出力がタスク１の入力となる依存関係を有する場合、タスク０とタスク１は個々バッファを有するので、タスク０の処理後のデータをタスク０のバッファからタスク１のバッファにコピーする必要がある。本発明のマルチタスク処理方法では、タスク０のバッファＡとタスク１のバッファＢとの間のコピーにおいてＤＭＡコピーを行う。
【００５１】
図２は、実施の形態１に係るマルチタスク処理方法の例を示す図である。図２において、タスク０は、処理により得られたデータをバッファＡのＤｓｔＡに書き込む。ここで、タスク１は、タスク０の処理の結果を利用して処理を行うタスクである。すなわち、タスク０とタスク１は、依存関係にある。
【００５２】
処理により得られたデータがバッファＡのＤｓｔＡに書き込まれた後に、バッファＡのＤｓｔＡの内容をバッファＢのＳｒｃＢにＤＭＡコピーする。
【００５３】
ＤＭＡコピー後、タスク０は、バッファＢのＳｒｃＢに書き込まれたデータを読み込み、処理を行う。
【００５４】
このように、実施の形態１のマルチタスク処理方法は、依存関係のあるタスク間のデータのコピーをＤＭＡコピーで行うことにより、マルチタスク処理を高速化できる。
【００５５】
ところで、一般にＤＭＡコピーは、ＯＳ（Operating System）のカーネルで用いられるものであり、アプリケーションでは、そのままでは利用することができない。
【００５６】
そこで、アプリケーションでＤＭＡコピーを利用するインターフェースを用意する必要がある。図３は、実施の形態１に係るマルチタスク処理プログラムの階層を示す図である。
【００５７】
図３において、アプリケーション層は、アプリケーションと、タスクと、ＮＤＫ（Native development Kit）と、ＤＭＡインターフェースとから構成される。また、カーネル層は、ＯＳと、ＤＭＡエンジンと、ＤＭＡドライバとから構成される。一般的なアプリケーションはＮＤＫを介してＯＳでネイティブアプリケーションとして実行される。
【００５８】
ＤＭＡインターフェースは、アプリケーション層においてＤＭＡコピーの実行を受け付けるインターフェースである。ＤＭＡインターフェースは、アプリケーションまたはタスクからＤＭＡコピーの実行の要求を受け付けた場合、ＤＭＡエンジンにＤＭＡインターフェースにＤＭＡコピーの指示と共に、ＤＭＡコピーに必要な情報を送る。
【００５９】
ＤＭＡエンジンは、アプリケーション側からのＤＭＡコピーの指示をカーネル側で受け付けるエンジンであり、ＤＭＡドライバにＤＭＡコピーの指示と共に、ＤＭＡコピーに必要な情報を送る。
【００６０】
ＤＭＡドライバは、ハードウェアであるＤＭＡコントローラを制御するドライバであり、ＤＭＡエンジンからのＤＭＡコピーの指示とＤＭＡコピーに必要な情報から、ＤＭＡコントローラに対応する指示内容で、ＤＭＡコピーを命令する。
【００６１】
このように、実施の形態１のマルチタスク処理プログラムでは、アプリケーション層にＤＭＡインターフェースを設け、アプリケーション層のＤＭＡインターフェースとカーネル層のＤＭＡエンジンとが通信することにより、アプリケーションがＤＭＡコピーを実行することができる。
【００６２】
次にハードウェアの構成について説明する。図４は、実施の形態１に係るマルチタスク処理装置の構成を示すブロック図である。
【００６３】
図４において、マルチタスク処理装置１０は、ＣＰＵ（Central Processing Unit）１１と、メモリ１２と、ＤＭＡコントローラ１３とを備える。
【００６４】
ＣＰＵ１１は、マルチタスクを処理するプロセッサである。ＣＰＵ１１はマルチコアを有することが好適である。具体的にはＣＰＵ１１は、図１、２のタスク０、１を実行するプロセッサである。また、ＣＰＵ１１は、図３に示すアプリケーション層及びカーネル層の各プログラムを実行する。
【００６５】
メモリ１２は、データ及びプログラムを記憶するメモリである。具体的には、図１、２におけるバッファＡ、Ｂの領域は、メモリ１２に確保される。
【００６６】
ＤＭＡコントローラ１３は、ＣＰＵを介さずにメモリ１２にアクセスし、メモリ１２内のデータをコピーするコントローラである。具体的には、ＤＭＡコントローラ１３は、図２のＤＭＡコピーを実行する。
【００６７】
以下、図４に示すマルチタスク処理装置の動作について説明する。まず、ＣＰＵ１１は、アプリケーションのタスクを処理し、処理により得られたデータをメモリ１２に書き込む。
【００６８】
そして、ＣＰＵ１１は、アプリケーションにおいてタスク間のデータのコピーの実行を受け付けると、データをＤＭＡコピーする命令をＤＭＡコントローラ１３に出力する。
【００６９】
ＤＭＡコントローラ１３は、ＣＰＵの命令に従い、タスク間のデータのコピーを実行する。
【００７０】
このように、実施の形態１のマルチタスク処理方法によれば、アプリケーションのＤＭＡコピーの指示をＣＰＵからＤＭＡコントローラに出力し、ＤＭＡコントローラにおいてＤＭＡコピーを実行する。
【００７１】
次に、ＤＭＡコピーとＣＰＵコピーの所要時間の比較について説明する。
図５は、ＤＭＡコピーとＣＰＵコピーとの所要時間の比較の図である。図５において、横軸はコピーするデータサイズを示し、縦軸はコピーに要した時間を示す。また、図５において、実線はＤＭＡコピーを示し、破線はＣＰＵコピーを示す。
【００７２】
図５では、ＳＰＭｅｓｈ（SimPlificationMeshes）処理においてタスク間でデータをコピーした場合の比較を行っている。
【００７３】
図５に示すように、データサイズが大きくなるほど、ＤＭＡコピーがＣＰＵコピーよりも短時間でコピーを完了している。
【００７４】
このように、実施の形態１のマルチタスク処理装置は、アプリケーションのＤＭＡコピーの指示をＣＰＵからＤＭＡコントローラに出力し、ＤＭＡコントローラにおいてＤＭＡコピーを実行することにより、マルチタスク処理を高速化できる。
【００７５】
また、実施の形態１のマルチタスク処理装置は、依存関係のある複数のタスク間でのデータのコピーをＤＭＡコピーで行うことにより、ＣＰＵより消費電力が少ないＤＭＡコントローラでコピーを行うので、電力消費量を削減することができる。また、実施の形態１のマルチタスク処理装置は、電力消費量の削減に伴い、ＣＰＵの温度上昇を抑制できる。
【００７６】
次に、物理メモリにＤＭＡコピーする具体的な例について説明する。図６は、ＤＭＡコピーの例を示す図である。図６に示すように、ＤＭＡコントローラは、メモリ上の分断された領域をアクセスして、コピーを行う。
【００７７】
図７は、実施の形態２に係るマルチタスク処理方法におけるＤＭＡコピーの例を示す図である。図７に示すように、マルチタスク処理装置は連続した物理メモリを確保し、ＤＭＡコントローラはメモリ上の連続した領域をアクセスして、コピーを行う。
【００７８】
ＤＭＡコントローラによるＤＭＡコピーは、コピーするデータのサイズが一定以上である場合に、特に速度が速くなるという性質を有している。したがって、コピー元またはコピー先、あるいはコピー元及びコピー先に連続した物理メモリを確保して、コピー元、コピー先として割り当て、ＤＭＡコピーを実行することにより、更にマルチタスク処理を高速化できる。
【００７９】
このように、実施の形態１のマルチタスク処理方法によれば、連続した物理メモリを確保することにより、ＤＭＡコピーが高速で処理可能なデータサイズとすることができ、マルチタスク処理を高速化できる。
【００８０】
なお、物理メモリに連続して確保する領域のサイズは、ＤＭＡコントローラが一度にコピーできるデータサイズより大きいことが望ましい。
【００８１】
次に所定の条件を満たした場合にＤＭＡコピーを実行する例について説明する。図８は、ＤＭＡコピーとＣＰＵコピーとのデータサイズ別の帯域幅の比較の図である。図８において、横軸は、コピーするデータの大きさを示し、縦軸は帯域幅を示す。また、図８において、実線はＤＭＡコピーを示し、破線はＣＰＵコピーを示す。
【００８２】
図８に示すように、コピーするデータの大きさが小さい場合、ＣＰＵコピーがＤＭＡコピーより帯域幅が大きい。一方コピーするデータの大きさが大きい場合、ＤＭＡコピーがＣＰＵコピーより帯域幅が大きい。
【００８３】
ＣＰＵコピーの帯域幅とＤＭＡコピーの帯域幅との大小関係は、ＣＰＵ及びＤＭＡコントローラのスペックにより変化する。そこで、ＣＰＵ及びＤＭＡコントローラのスペック及びデータの大きさに基づいて、ＤＭＡコピーがＣＰＵコピーより帯域幅が大きい条件を満たすときに、マルチタスク処理装置がＤＭＡコピーする。
【００８４】
この条件は、ＣＰＵ及びＤＭＡコントローラのスペック及びデータの大きさから計算式またはシミュレーションにより決定することができる。
【００８５】
また、ＤＭＡコピーを行うか否かの判断は、コピーするデータサイズ、ＣＰＵ及びＤＭＡコントローラのスペックに基づいて前もって決めても良いし、アプリケーションまたはＤＭＡインターフェースで判断しても良い。
【００８６】
このように、実施の形態１に係るマルチタスク処理方法は、コピーするデータ量とＤＭＡコピー及びＣＰＵコピー帯域幅とに基づいてＤＭＡコピーがＣＰＵコピーより早い場合に、ＤＭＡコピーで実行することにより、最適なコピー方法でコピーできるので、マルチタスク処理を高速化できる。
【００８７】
（実施の形態２）
実施の形態２では、メモリを初期化する場合に、初期値をＤＭＡコピーする例について説明する。ＤＭＡコピーを行う処理装置及び処理プログラムは実施の形態１と同様である。
【００８８】
図９は、実施の形態２に係る処理方法の例を示す図である。図９において、初期値は、バッファＡのＳｒｃＡにＤＭＡコピーされる。具体的には図４のメモリ１２に記憶された初期値が、ＤＭＡコントローラ１３によりメモリ１２内に確保されたバッファＡのＳｒｃＡにＤＭＡコピーされる。
【００８９】
初期値が、同じ値を繰り返すデータである場合には、最小単位の初期値を繰り返しＤＭＡコピーしても良い。例えば、初期値が１桁の０として、書き込む初期値の大きさに合わせて複数回、バッファＡのＳｒｃＡにＤＭＡコピーすることにより、タスク０の初期値を設定することができる。また、一度、バッファＡのＳｒｃＡにＤＭＡコピーした初期値をコピー元として、バッファＡのＳｒｃＡに複数回、バッファＡのＳｒｃＡにＤＭＡコピーしても良い。
【００９０】
一般に、タスクの初期値はアプリケーションが決定するものであるので、実施の形態１で説明したＤＭＡインターフェースを用いてＤＭＡコピーを実現することが好適である。
【００９１】
このように、実施の形態２に係る処理方法は、メモリの初期化にＤＭＡコピーを用いることにより、処理速度が高速化できる。
【００９２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００９３】
例えば、マルチタスク処理装置がＤＭＡコントローラを複数備え、複数のＤＭＡコントローラが、それぞれ異なるＤＭＡチャネルを有し、それぞれ異なる連続した物理メモリにアクセスして、ＤＭＡコピーを実行しても良い。このような構成によれば、同じ物理メモリに対して複数のＤＭＡチャネルがアクセスすることが防げるので、マルチタスク処理を高速化できる。
【００９４】
また、本発明のマルチタスク処理装置は、マルチタスク処理を行える装置であれば、いずれにも適用できる。例えば、マルチコアのプロセッサを搭載したスマートフォンに適用することもできる。
【００９５】
また、本発明のマルチタスク処理プログラムは、タスク間に依存関係のあるアプリケーションに適用できるものであれば、いずれも適用することができる。例えば、物理Engineの１つであるFluid Simulation()としてSmoothed Particle Hydrodynamics “SPH” アルゴリズムに適用することもできる。この物理Engineの中には、重要かつ処理時間の大きい関数処理SPHupdate, calculatePoints, generateMarchingSquares, Drawが４つ存在している。これらの関数処理に適用することもできる。
【００９６】
また、本発明は、ＡＳＩＣ（Application Specific Integrated Circuit）等のハードウェアまたはソフトウェアで実施できる。また、処理の一部をソフトウェアで実施し、それ以外をハードウェアで実施することとしても良い。ソフトウェアで実施する際には、マイクロプロセッサ等の１つあるいは複数のＣＰＵ（Central Processing Unit）を有するコンピュータシステムに機能ブロックの処理に関するプログラムを実行させればよい。これらのプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）、ＤＶＤ−Ｒ（DVD Recordable）、ＤＶＤ−Ｒ  ＤＬ（DVD-R Dual Layer)、ＤＶＤ−ＲＷ（DVD ReWritable）、ＤＶＤ−ＲＡＭ、ＤＶＤ＋Ｒ、ＤＶＲ＋Ｒ  ＤＬ、ＤＶＤ＋ＲＷ、ＢＤ−Ｒ（Blu-ray（登録商標） Disc Recordable）、ＢＤ−ＲＥ（Blu-ray （登録商標）Disc Rewritable）、ＢＤ−ＲＯＭ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００９７】
マルチタスク処理装置    １０
ＣＰＵ            １１
メモリ            １２
ＤＭＡコントローラ    １３
【図１】
2016126424.tif 000003
【図２】
2016126424.tif 000004
【図３】
2016126424.tif 000005
【図４】
2016126424.tif 000006
【図５】
2016126424.tif 000007
【図６】
2016126424.tif 000008
【図７】
2016126424.tif 000009
【図８】
2016126424.tif 000010
【図９】
2016126424.tif 000011