(57)【要約】【課題】本発明は、主ＣＰＵに接続されたメモリと副ＣＰＵに接続されたメモリとを有効に利用して、副ＣＰＵのデータ処理を行うデータ処理装置を提供することを目的とする。【解決手段】本発明に係るデータ処理装置は、データ処理を行う主ＣＰＵ１と、主ＣＰＵ１に接続された外部メモリ３と、主ＣＰＵ１が行うデータ処理の一部を行う副ＣＰＵ２と、副ＣＰＵ２に接続されたメモリ４と、外部メモリ３に保持されているプログラムをメモリ４に転送する転送手段５とを備えている。そして、主ＣＰＵ１は、外部メモリ３に保持しているプログラムを所定のメモリサイズに分割し、順次メモリ４に転送するように転送手段５を制御する。【選択図】図１
2007310436.tif 000002
【特許請求の範囲】
【請求項１】
データ処理を行う第１処理演算部と、
前記第１処理演算部に接続された第１メモリと、
前記第１処理演算部が行うデータ処理の一部を行う第２処理演算部と、
前記第２処理演算部に接続された第２メモリと、
前記第１処理演算部の指示に基づき、前記第１メモリに保持されている前記第２処理演算部で実行するプログラムを前記第２メモリに転送する転送手段とを備えるデータ処理装置であって、
前記第１処理演算部は、前記第１メモリに保持している前記プログラムを所定のメモリサイズに分割し、順次前記第２メモリに転送するように前記転送手段を制御することを特徴とするデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置であって、
前記第１メモリは、前記第２処理演算部で実行する前記プログラムに必要な処理データ及び係数をさらに保持し、
前記第１処理演算部は、分割した前記プログラムを前記第２メモリに転送する際に、当該分割した前記プログラムに必要な前記処理データ及び前記係数のみを前記第２メモリに転送するように前記転送手段を制御することを特徴とするデータ処理装置。
【請求項３】
請求項２に記載のデータ処理装置であって、
前記第１処理演算部は、前記第２処理演算部での一連の分割した前記プログラムの実行過程において、前記第２メモリに転送した前記処理データ及び前記係数のうち、所定の前記処理データ及び／又は前記係数を、一旦前記第１メモリに転送し、それが必要な所定の分割した前記プログラムを前記第２処理演算部が実行する際に再度前記第２メモリに転送するように前記転送手段を制御することを特徴とするデータ処理装置。
【請求項４】
請求項１乃至請求項３のいずれか１つに記載のデータ処理装置であって、
分割する前記所定のメモリサイズは、固定値であることを特徴とするデータ処理装置。
【請求項５】
請求項１乃至請求項３のいずれか１つに記載のデータ処理装置であって、
分割する前記所定のメモリサイズは、前記第２処理演算部での処理方法に基づき決定される可変値であることを特徴とするデータ処理装置。
【請求項６】
請求項２乃至請求項５のいずれか１つに記載のデータ処理装置であって、
前記第２処理演算部での処理状況を前記第１処理演算部に通知する通知手段をさらに備えることを特徴とするデータ処理装置。
【請求項７】
請求項６に記載のデータ処理装置であって、
前記通知手段は、前記第２処理演算部で処理中の分割した前記プログラム、次処理で用いる分割した前記プログラム、及び次処理で用いる分割した前記プログラムに使用する前記係数を前記処理状況として前記第１処理演算部に通知することを特徴とするデータ処理装置。
【請求項８】
請求項１乃至請求項７のいずれか１つに記載のデータ処理装置であって、
複数の領域に分けられた前記第２メモリの各領域毎に、前記第１処理演算部又は前記第２処理演算部からのアクセスを選択する選択手段と、
前記第１処理演算部又は前記第２処理演算部の指示に基づき、前記選択手段を制御する制御手段とをさらに備えることを特徴とするデータ処理装置。
【請求項９】
請求項８に記載のデータ処理装置であって、
前記第２処理演算部の指示に基づき、前記第２メモリの所定の領域に前記第１処理演算部からのアクセスを禁止するように、前記選択手段を設定する禁止手段をさらに備えることを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に係る発明であって、特に、主処理演算部の一部の処理を行う副処理演算部を備えるデータ処理装置に関するものである。
【背景技術】
【０００２】
近年、データ処理装置は、主たるデータ処理を行う主ＣＰＵ（処理演算部）と、主ＣＰＵの動作をアクセラレートする副ＣＰＵとを備え、データ処理の高速化を図ることが多い。主ＣＰＵが行うデータ処理には、例えば外部とのインタフェース処理、表示処理など様々な処理が含まれている。一方、副ＣＰＵは、主ＣＰＵで行うある特定のデータ処理の一部、もしくは全部を代わりに処理している。なお、副ＣＰＵには、ＤＳＰ（Digital Signal Processor）等を用いる場合がある。
【０００３】
例えば、データ処理装置が圧縮された音楽データを再生する機器の場合、主ＣＰＵは、グラフィックス機能を用いた楽曲データの表示、楽曲の選択など、使用者に使いやすい方式を提供する等のデータ処理を行う。一方、副ＣＰＵは、圧縮データから音楽データを伸張するデータ処理を行う。
【０００４】
また、音声データ復号処理の例について考えると、主ＣＰＵは、外部とのデータの入出力や、副ＣＰＵへの圧縮データの転送などのデータ処理を行い、副ＣＰＵにデータの伸張処理を実行するように指示する。一方、副ＣＰＵは、動作に必要なデータ（例えば音声データ）が主ＣＰＵから転送されてくると、データの伸張処理を行う。そして、副ＣＰＵは、データの伸張処理が終了すると、当該結果を主ＣＰＵへ送る。
【０００５】
このように、主ＣＰＵで行うデータ処理のうち、ある特定のデータ処理（例えば、データの伸張処理）の一部又は全部を副ＣＰＵで処理することにより、データ処理の高速化を図っている。なお、副ＣＰＵは、特定の処理（例えば、データの伸張処理）を行う場合、副ＣＰＵに接続されたメモリを用いて処理を行う必要がある。オーディオデータを圧縮伸張して記録再生する場合に用いるデータ処理装置の例として、例えば特許文献１がある。
【０００６】
【特許文献１】特開２００４−１９４３５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
圧縮データの再生のために、副ＣＰＵでデータの伸張処理を行う場合、副ＣＰＵは、ＦＦＴ（Fast Fourier Transform）やＤＣＴ（Discrete Cosine Transform）などの処理が必要となる。これらの処理には、バッファメモリ、処理途中のデータの退避用メモリや演算に用いる係数データ等の保存用メモリ等、多くのメモリが副ＣＰＵに必要となる。しかし、ＬＳＩのレイアウト等の制限から、副ＣＰＵに接続されるメモリに十分なメモリ量を与えることができない場合があり、当該場合には副ＣＰＵで十分な処理が行えないことがあった。
【０００８】
また、副ＣＰＵでのデータ処理が複雑になると、副ＣＰＵで処理する命令コードのサイズが大きくなる。そのため、複雑なデータ処理を行う命令コードが、副ＣＰＵに接続されたメモリのサイズよりも大きくなる場合、副ＣＰＵは、当該データ処理を行うことができなくなる。
【０００９】
そこで、本発明は、主ＣＰＵと副ＣＰＵとを有するデータ処理装置において、主ＣＰＵに接続されたメモリと副ＣＰＵに接続されたメモリとを有効に利用して、副ＣＰＵのデータ処理を行うデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る解決手段は、データ処理を行う第１処理演算部と、前記第１処理演算部に接続された第１メモリと、前記第１処理演算部が行うデータ処理の一部を行う第２処理演算部と、前記第２処理演算部に接続された第２メモリと、前記第１処理演算部の指示に基づき、前記第１メモリに保持されている前記第２処理演算部で実行するプログラムを前記第２メモリに転送する転送手段とを備えるデータ処理装置であって、前記第１処理演算部は、前記第１メモリに保持している前記プログラムを所定のメモリサイズに分割し、順次前記第２メモリに転送するように前記転送手段を制御することを特徴とする。
【発明の効果】
【００１１】
本発明に記載のデータ処理装置は、第１処理演算部が、第１メモリに保持しているプログラムを所定のメモリサイズに分割し、順次第２メモリに転送するように転送手段を制御するので、第２処理演算部のデータ処理中に必要となる第２メモリのメモリサイズを少なくすることができ、従来実行が困難であったデータ処理を第２処理演算部で実行することが可能となる効果がある。
【発明を実施するための最良の形態】
【００１２】
（実施の形態１）
図１に、本実施の形態に係るデータ処理装置のブロック図を示す。図１には、様々なデータ処理を行う処理演算部（以下、主ＣＰＵ１ともいう）を示している。この主ＣＰＵ１は、例えば、画像・音声の録音再生、外部とのデータの送受信などのデータ処理を行う。また、図１には、主ＣＰＵ１に接続される外部メモリ３が図示されており、当該外部メモリ３は主ＣＰＵ１でのデータ処理に適宜使用される。
【００１３】
さらに、図１には、主ＣＰＵ１のデータ処理の一部を担う処理演算部（以下、副ＣＰＵ２ともいう）、及び副ＣＰＵ２に接続されたメモリ４が図示されている。メモリ４は、副ＣＰＵ２でのデータ処理に適宜使用される。また、図１には、外部メモリ３と副ＣＰＵ２に接続されたメモリ４との間でデータ等の転送を行う転送手段５が図示されている。なお、主ＣＰＵ１、副ＣＰＵ２、及び外部メモリ３の間におけるデータ等の転送は、主ＣＰＵバス６を介して行われる。
【００１４】
図１に示したメモリ４は、副ＣＰＵ２用の命令コードが格納されるプログラムメモリ４１と、処理するデータが格納される処理データメモリ４２とに領域が分けられている。但し、本発明に係るメモリ４はこれに限られず、領域を分けない場合やより多くの領域に分ける場合等であっても良い。
【００１５】
次に、本実施の形態に係るデータ処理装置の動作について説明する。まず、副ＣＰＵ２は、主ＣＰＵ１が実行する様々なデータ処理のうち、１つ以上の特定のデータ処理を実行する。例えば、画像データ再生や音楽データ再生を行うデータ処理装置において、主ＣＰＵ１が行うデータ処理の一部である音楽データの伸張処理を、副ＣＰＵ２が実行する。
【００１６】
副ＣＰＵ２がデータ処理を行う場合、まず、主ＣＰＵ１の外部メモリ３から、副ＣＰＵ２で実行するプログラムをメモリ４にダウンロードする。さらに、プログラムの実行に必要な係数や処理データなども、外部メモリ３からメモリ４にダウンロードする。そして、主ＣＰＵ１が副ＣＰＵ２に必要なデータ処理の実行を指示する。副ＣＰＵ２はデータ処理の終了後、主ＣＰＵ１に終了を通知し、それによって主ＣＰＵ１は次のデータ処理に移ることになる。
【００１７】
データ処理装置は、上述のように動作するが、副ＣＰＵ２に接続されるメモリ４の容量は限られている。そのため、副ＣＰＵ２で実行するデータ処理に必要なメモリ量を、メモリ４に確保できない場合が考えられる。そこで、本実施の形態に係るデータ処理装置では、副ＣＰＵ２のデータ処理で実行されるプログラムを、ある単位で幾つかに分割する。そして、主ＣＰＵ１は、データ処理の内容に基づき、分割されたそれぞれの単位（以下、分割モジュールともいう）毎に、外部メモリ３からメモリ４へダウンロードする。副ＣＰＵ２は、メモリ４にダウンロードされた分割モジュールを実行する。
【００１８】
図２に、本実施の形態に係る分割モジュールの例を示す。図２では、副ＣＰＵ２のデータ処理に必要なプログラムをモジュールＡとして図示している。例えば、圧縮された音声データを伸張するプログラムの場合、１フレーム単位でこのモジュールＡが繰り返し実行される。なお、図２では、縦軸がメモリサイズを表している。
【００１９】
また、図２では、副ＣＰＵ２に接続されたメモリ４のうちプログラムメモリ４１のメモリサイズを示している。さらに、図２には、モジュールＡをプログラムメモリ４１よりも小さいサイズに分割した分割モジュールが図示されている。分割モジュールは、モジュールＡを２つに分割した例であり、分割モジュール１と分割モジュール２とが図２には示されている。図２で示されている例では、分割モジュール１，２のそれぞれのメモリサイズがメモリ４のプログラムメモリ４１のサイズより小さくとっている。
【００２０】
次に、主ＣＰＵ１及び副ＣＰＵ２の動作のフローを図３に示す。図３に示すフローでは、図２に示したモジュールＡを２つの分割モジュール１，分割モジュール２に分割した場合を示している。まず、主ＣＰＵ１は、転送手段５を用いて外部メモリ３から副ＣＰＵ２のメモリ４に分割モジュール１をダウンロードする（ステップ１０１）。次に、主ＣＰＵ１は、副ＣＰＵ２に分割モジュール１の実行指示を行う（ステップ１０２）。
【００２１】
副ＣＰＵ２は、主ＣＰＵ１からの実行指示に従い、メモリ４にダウンロードされた分割モジュール１を実行する（ステップ１０３）。分割モジュール１の実行が終了すると、副ＣＰＵ２は、主ＣＰＵ１に対して実行終了通知を行う（ステップ１０４）。主ＣＰＵ１は、副ＣＰＵ２から実行終了通知を受け取ると、分割モジュール２を選択する（ステップ１０５）。そして、主ＣＰＵ１は、転送手段５を用いて外部メモリ３から副ＣＰＵ２のメモリ４に分割モジュール２をダウンロードする（ステップ１０６）。
【００２２】
以下、同様に、主ＣＰＵ１は、副ＣＰＵ２に分割モジュール２の実行指示を行う（ステップ１０７）。副ＣＰＵ２は、主ＣＰＵ１からの実行指示に従い、メモリ４にダウンロードされた分割モジュール２を実行する（ステップ１０８）。分割モジュール２の実行が終了すると、副ＣＰＵ２は、主ＣＰＵ１に対して実行終了通知を行う（ステップ１０９）。
【００２３】
主ＣＰＵ１は、副ＣＰＵ２から分割モジュール２の実行終了通知を受け取ると、また分割モジュール１を選択し、副ＣＰＵ２のメモリ４にダウンロードしてデータ処理を継続する。図３に示す動作を行うことで、本実施の形態に係る副ＣＰＵ２は、分割モジュールを順に実行し、データを順に処理することができる。
【００２４】
以上のように、本実施の形態に係るデータ処理装置は、主ＣＰＵ１が、外部メモリ３に保持しているモジュール（プログラム）を、所定のメモリサイズ（メモリ４のメモリサイズ以内）に分割し、順次副ＣＰＵ２のメモリ４に転送するように転送手段５を制御するので、副ＣＰＵ２に接続しているメモリ４のメモリサイズより大きなプログラムを実行することができる効果がある。また、本実施の形態に係るデータ処理装置は、一度に実行されるプログラムのサイズが小さくなるので、従来より少ないメモリ４のメモリサイズでも実行することが可能となる。
【００２５】
（実施の形態２）
実施の形態１では、分割されるのはプログラム（モジュール）だけであった。しかし、本実施の形態では、プログラム（モジュール）だけでなく、係数や処理されるデータ（以下、処理データともいう）についても分割してダウンロードする。
【００２６】
本実施の形態に係るデータ処理装置は、図１に示す構成を採用しているが、副ＣＰＵ２の実行時に必要となるプログラム（モジュール）だけではなく、プログラムの実行に必要な係数や処理データも所定の手順に従って分割する。そして、主ＣＰＵ１は、所定の手順に従って、分割したモジュール、処理データ及び係数をメモリ４にダウンロードする構成を採用している。
【００２７】
本実施の形態に係るモジュール、処理データ及び係数について図４を用いて説明する。図４に示す例では、モジュールを２つに分割し、処理データを３分割し、係数を３分割した例である。
【００２８】
本来、副ＣＰＵ２がモジュールＡの実行中に使用する処理データ及び係数は、３種類の処理データ（処理データ１〜３）、３種類の係数（係数１〜３）である。しかし、副ＣＰＵ２のメモリ４が有している処理データメモリ４２のメモリサイズは、処理データ１〜３及び係数１〜３のメモリサイズより小さい。そこで、本実施の形態に係るデータ処理装置は、分割モジュール単位で必要な処理データ・係数を、メモリ４にダウンロードする構成としている。
【００２９】
具体的には、図４に示すように、分割モジュール１で必要となる処理データ１、処理データ２及び係数１とする。主ＣＰＵ１は、分割モジュール１を副ＣＰＵ２で実行させる場合、分割モジュール１とともに、処理データ１、処理データ２及び係数１を、転送手段５を用いて外部メモリ３からメモリ４へダウンロードする。その後、副ＣＰＵ２では、メモリ４にダウンロードされた分割モジュール１を実行する。
【００３０】
さらに、副ＣＰＵ２が分割モジュール１の実行を終了すると、主ＣＰＵ１は、分割モジュール２を外部メモリ３からメモリ４へダウンロードする。分割モジュール２では、図４に示すように、処理データ３、係数１及び係数３が必要となる。そこで、主ＣＰＵ１は、分割モジュール２とともに、処理データ３、係数１及び係数３を、転送手段５を用いて外部メモリ３からメモリ４へダウンロードする。
【００３１】
以上のように、本実施の形態に係るデータ処理装置は、分割モジュール１，２（分割したプログラム）をメモリ４に転送する際に、当該分割モジュール１，２に必要な処理データ及び係数のみをメモリ４に転送するので、プログラムの実行時の処理データメモリ４２のメモリサイズを減らす効果がある。また、本実施の形態に係るデータ処理装置は、副ＣＰＵ２の処理データメモリ４２のメモリサイズが限られている場合であっても、当該メモリサイズよりも大きな処理データや係数を処理できる効果がある。
【００３２】
（実施の形態３）
実施の形態２では、分割モジュール毎に必要となる処理データや係数を副ＣＰＵに接続されたメモリにダウンロードする構成を説明した。本実施の形態では、実行中の分割モジュールで使用しないが、次に実行する分割モジュールで必要となる実行後の処理データや係数を、主ＣＰＵのメモリにアップロードする。そして、アップロードした処理データや係数は、次以降に実行する分割モジュールで必要となった場合に、再度ダウンロードする。
【００３３】
図５は、本実施の形態に係るモジュール、処理データ及び係数について説明するための図である。なお、本実施の形態に係るデータ処理装置も、図１に示す構成を採用している。図５に示すプログラムメモリ４１には、分割モジュール１〜３、処理データメモリ４２にはそれぞれの分割モジュールに必要な処理データ及び係数が保存される。
【００３４】
具体的に説明すると、分割モジュール１では、処理データ１、処理データ２、係数２を使用するので、処理データメモリ４２には処理データ１、処理データ２、係数２が保存される。同様に、分割モジュール２では、処理データ３、係数１、係数２を使用するので、処理データメモリ４２には処理データ３、係数１、係数２が保存される。また、分割モジュール３では、処理データ１、処理データ３、係数３を使用するので、処理データメモリ４２には処理データ１、処理データ３、係数３が保存される。
【００３５】
分割モジュール１から分割モジュール３までを順に実行する場合、分割モジュール１で使用し、更新された処理データ１は、分割モジュール３で再度使用する。分割モジュール２では、処理データ１を使用せず処理データ３と係数１，２のみを使用する。そこで、本実施の形態では、処理データ１を分割モジュール２の実行前に主ＣＰＵ１の外部メモリ３へアップロードする。その後、分割モジュール２で必要な処理データ３、係数１，２をダウンロードする。そして、分割モジュール３を実行する前に、外部メモリ３にアップロードしておいた処理データ１を、メモリ４に再度ダウンロードする。なお、分割モジュール３で使用する処理データ３は、分割モジュール２の実行の際にダウンロードしているため、メモリ４にある処理データ３をそのまま利用する。係数３は、外部メモリ３からメモリ４にダウンロードする。
【００３６】
なお、処理データメモリ４２から外部メモリ３へアップロードする際も、転送手段５を用いて行われている。
【００３７】
以上のように、本実施の形態に係るデータ処理装置は、副ＣＰＵ２での一連の分割モジュールの実行過程において、メモリ４にダウンロードした処理データ及び係数のうち、所定の処理データ及び／又は係数を、一旦外部メモリ３に転送し、それが必要な所定の分割モジュールを副ＣＰＵ２が実行する際に再度前記第２メモリに転送するので、分割モジュールで最低限必要な処理データ等のみを処理データメモリ４２に置くことができ、副ＣＰＵ２のメモリ４を有効的に活用できる。また、本実施の形態に係るデータ処理装置は、副ＣＰＵ２と接続しているメモリ４のサイズ以上の処理を実行することが可能となる。
【００３８】
（実施の形態４）
実施の形態１では、モジュールを分割する際、副ＣＰＵに接続したメモリのサイズ以下であれば、どのようなサイズで分割しても良いとしていた。本実施の形態では、副ＣＰＵに接続したメモリのサイズ以下で、且つ固定値のメモリ単位でモジュールを分割する構成を示している。
【００３９】
図６に、オーディオ復号処理で実行される処理の一例を示している。図６の例では、入力された圧縮データに対し、データ分析、ハフマン復号、逆量子化、逆ＭＤＣＴ（Modified Discrete Cosine Transform）、フィルタバンクの各処理を順に実行する。これらの各処理を行うことで、ＰＣＭ（Pulse Code Modulation）データが得られる構成である。なお、図６に示す処理は、一般的によく利用されるものであるため、本実施の形態では詳細な説明を省略する。また、本実施の形態に係るデータ処理装置も、図１に示す構成を採用している。
【００４０】
図６に示したそれぞれの処理は、様々なプログラムのサイズを有している。しかし、本実施の形態では、それぞれの処理とは無関係に一定のサイズで分割する。図６に示す例では、各処理単位を意識せず、プログラムを４ｋバイト単位で５つの分割モジュールに分割している。具体的に、図６に示すデータ分析は、分割モジュール１の中に含まれるが、図６に示すハフマン復号処理は、分割モジュール１と分割モジュール２とに分けられている。図６に示す他の処理についても同様である。
【００４１】
図６に示す例では、順に４ｋバイト単位で分割しているので、最後のフィルタバンクの処理については４ｋバイト以下になることもある。また、図６に示す例では４ｋバイト単位に分割しているが、この分割する単位は、副ＣＰＵ２に接続しているメモリ４のメモリサイズに応じて決定しても良い。なお、分割する単位を、副ＣＰＵ２に接続しているメモリ４のメモリサイズ以下としても構わない。
【００４２】
以上のように、本実施の形態に係るデータ処理装置は、分割するメモリサイズを固定値としているので、モジュール（プログラム）の分割を単純に行うことが可能となる。
【００４３】
（実施の形態５）
実施の形態４では、モジュールを各処理単位を意識せず、固定のメモリサイズで分割した。しかし、本実施の形態では、モジュールの各処理単位（処理機能）に応じて分割する構成である。
【００４４】
図７に、オーディオ復号処理で実行される処理のフローを示す。図７では、音楽圧縮データを伸張する場合の一般的な例を示している。図７の例では、圧縮データに対して、ビットストリーム分析を行った後、スケール復号、ハフマン復号、逆量子化、ステレオ相関処理、逆ＭＤＣＴ、サブバンド合成、フィルタバンクの各処理を行い、ＰＣＭデータを得る。なお、図７に示す処理は、一般的によく利用されるものであるため、本実施の形態では詳細な説明を省略する。また、本実施の形態に係るデータ処理装置も、図１に示す構成を採用している。
【００４５】
図７に示す例では、オーディオ復号処理を機能面から３つの分割モジュールに分けている。分割モジュール１にはビットストリーム分析処理を、分割モジュール２にはスケールファクタ復号からステレオ相関処理までを、分割モジュール３には、逆ＭＤＣＴ、サブバンド合成及びフィルタバンクの処理を対応させている。つまり、本実施の形態では、分割するモジュールのサイズは、副ＣＰＵ２での処理方法に基づき決定される可変値となる。なお、図７に示す例では、関連する処理をまとめて分割しているが、これに限られずそれぞれの処理単位毎に分割をしても構わない。
【００４６】
以上のように、本実施の形態に係るデータ処理装置では、分割するメモリサイズが、副ＣＰＵ２での処理方法に基づき決定される可変値であるので、処理の機能単位で分割を行うことができ、分割の処理が容易になる。
【００４７】
（実施の形態６）
本実施の形態に係るデータ処理装置は、次に実行する分割モジュールや当該分割モジュールで使用する処理データ等の処理状況を、副ＣＰＵから主ＣＰＵへ通知する手段を設けた構成である。
【００４８】
図８（ａ）に、本実施の形態に係るデータ処理装置の構成の一部を示す。図８（ａ）では、主ＣＰＵ１、主ＣＰＵ１に接続された外部メモリ３、副ＣＰＵ２、副ＣＰＵ２に接続されたメモリ４及び副ＣＰＵ２から主ＣＰＵ１への通知手段が図示されている。なお、図８（ａ）では、図１に示した転送手段５や主ＣＰＵバス６については図示を省略している。また、図８（ａ）に示すメモリ４も、プログラムメモリ４１と処理データメモリ４２とに分けられている。
【００４９】
次に、図８（ａ）に示す本実施の形態に係るデータ処理装置の動作について、以下に説明する。まず、本実施の形態において分割モジュールを作成する場合、各分割モジュールと当該分割モジュールで使用する処理データ等の関係を副ＣＰＵ２のプログラムに予め埋め込んでおく。例えば、図８（ｂ）に示すような分割モジュールと、その分割モジュール実行時に必要な係数を示した対応テーブルを用いて、両者の対応を予め決めておいても良い。なお、図８（ｂ）に示すテーブルは、ライン１１０に分割モジュール１と係数２、ライン１１１に分割モジュール２と係数１，３、ライン１１２に分割モジュール３と係数２，４、ライン１１３に分割モジュール３と係数１，２，４がそれぞれ記載されている。
【００５０】
主ＣＰＵ１から副ＣＰＵ２に分割モジュールをダウンロードし、主ＣＰＵ１が副ＣＰＵ２に実行の指示を通知する。副ＣＰＵ２は、分割モジュールの実行が完了すると、図８（ｂ）の対応テーブルに基づき、次に実行すべき分割モジュールを判断し、分割モジュールの番号及び対応する係数等を読み取る。その後、読み取った分割モジュールの番号等を、通知手段１０に設定する。
【００５１】
図８（ｃ）に、本実施の形態に係る通知手段１０の構成例を示す。図８（ｃ）に示す通知手段１０は、主ＣＰＵ１と副ＣＰＵ２の両方から読み書き可能なものであり、例えば、ハードウェアで構成するとレジスタなどに相当する。また、通知手段１０として、主ＣＰＵ１、あるいは副ＣＰＵ２のメモリの一部を使用する構成でも良い。
【００５２】
通知手段１０は、複数の情報を伝えるためのフィールドをもつ。図８（ｃ）に示す例では、実行中の分割モジュール番号、次実行の分割モジュール番号、次実行の分割モジュールで使用する係数番号１〜ｎを通知手段１０に格納できる。図８（ｃ）では、１つの分割モジュールで使用する係数が、１つ以上の場合を考慮して複数のフィールドを設けている。
【００５３】
次に、本実施の形態に係るデータ処理装置において、通知手段１０を用いたデータ処理のフローを図９に示す。図９に示すフローでは、まず、主ＣＰＵ１が、転送手段５を用いて、図８（ｂ）に示す分割モジュール１及び係数１を外部メモリ３から副ＣＰＵ２のメモリ４にダウンロードする（ステップ１００１）。次に、主ＣＰＵ１は、副ＣＰＵ２に分割モジュール１の実行指示を行う（ステップ１００２）。
【００５４】
副ＣＰＵ２は、主ＣＰＵ１からの実行指示に従い、メモリ４にダウンロードされた分割モジュール１を実行する（ステップ１００３）。副ＣＰＵ２は、通知手段１０に対し、現在実行中の分割モジュールの番号”１”を設定する（ステップ１００４）。分割モジュール１の実行が終了する（ステップ１００５）と、副ＣＰＵ２は、図８（ｂ）のテーブルから次実行の分割モジュールの番号”２”を読み出し、通知手段１０に設定する（ステップ１００６）。さらに、副ＣＰＵ２は、図８（ｂ）のテーブルから次実行の分割モジュールで使用する係数の番号”１，３”を読み出し、通知手段１０に設定する（ステップ１００７）。そして、副ＣＰＵ２は、主ＣＰＵ１に対して実行終了通知を行う（ステップ１００８）。
【００５５】
主ＣＰＵ１は、副ＣＰＵ２から実行終了通知を受け取ると、通知手段１０から次実行の分割モジュールの番号”２”を読み出す（ステップ１０１０）。さらに、主ＣＰＵ１は、通知手段１０から次実行の分割モジュールで使用する係数の番号”１，３”を読み出す（ステップ１０１１）。なお、副ＣＰＵ２からの実行終了通知は、主ＣＰＵ１への割り込みや通知手段１０を用いる構成であっても構わない。
【００５６】
主ＣＰＵ１は、通知手段１０から読み出した分割モジュールの番号及び係数の番号に基づいて分割モジュール２及び係数１，３を、外部メモリ３から副ＣＰＵ２のメモリ４に、転送手段５を用いてダウンロードする（ステップ１０１２）。以下、同様に、主ＣＰＵ１は、副ＣＰＵ２に分割モジュール２の実行指示を行う（ステップ１０１３）。副ＣＰＵ２は、主ＣＰＵ１からの実行指示に従い、メモリ４にダウンロードされた分割モジュール２を実行する（ステップ１０１４）。
【００５７】
以上のように、本実施の形態に係るデータ処理装置は、副ＣＰＵ２での処理状況（実行中の分割モジュールの番号や次実行の分割モジュールの番号等）を主ＣＰＵ１に通知する通知手段１０をさらに備えるので、主ＣＰＵ１で処理に応じて分割モジュールを判断する必要がないため主ＣＰＵ１の処理が簡単になる。また、本実施の形態に係るデータ処理装置は、予め処理手順が決められたテーブルを有するので、副ＣＰＵ２の処理に応じたプログラムを作成する必要がなくなる。
【００５８】
なお、本実施の形態では、図８（ｃ）に示すように分割モジュールの番号と係数の番号を通知手段１０で通知しているが、本発明はこれに限られず、処理データの番号等を追加しても良い。
【００５９】
（実施の形態７）
図１０に、本実施の形態に係るデータ処理装置のブロック図を示す。なお、図１０では、図１に示した転送手段５や主ＣＰＵバス６については図示していないが、本実施の形態に係るデータ処理装置は同様の機能を有している。
【００６０】
図１０では、副ＣＰＵ２に接続されたメモリ４が、第１メモリバンク４５と第２メモリバンク４６の２つの領域に分けられている。なお、図１０では、メモリ４を２つのバンクに分けた例であるが、本発明はこれに限られず、２つ以上の複数のメモリバンクに分けても良い。
【００６１】
さらに、図１０では、メモリバンク毎に、主ＣＰＵ１からのアクセスと副ＣＰＵ２からのアクセスのどちらかを選択する選択手段４７，４８を設けている。図１０では２つのメモリバンクに分ける例を示している。具体的に、選択手段４７が第１メモリバンク４５のアクセスを選択し、選択手段４８が第２メモリバンク４６のアクセスを選択している。
【００６２】
また、図１０では、制御手段４９が選択手段４７，４８を制御し、主ＣＰＵ１あるいは副ＣＰＵ２からのアクセスを、第１メモリバンク４５、第２メモリバンク４６毎に設定している。なお、制御手段４９は、主ＣＰＵ１又は副ＣＰＵ２の指示により、選択手段４７，４８を制御する。
【００６３】
例えば、図１０に示す第１メモリバンク４５は主ＣＰＵ１からアクセスができ、第２メモリバンク４６は副ＣＰＵ２からアクセスできるように設定する。この場合に、選択手段４７は、主ＣＰＵ１からのアクセスを第１メモリバンク４５に通過させるが、副ＣＰＵ２からのアクセスを遮断する。一方、選択手段４８は、副ＣＰＵ２からのアクセスを第２メモリバンク４６に通過させるが、主ＣＰＵ１からのアクセスを遮断する。つまり、本実施の形態に係るデータ処理装置は、第１メモリバンク４５及び第２メモリバンク４６のメモリバス線を互いに独立させ、それぞれのバスに対して独立にアクセスできる構成としている。
【００６４】
図１０に示す構成をとることで、第１メモリバンク４５に主ＣＰＵ１がアクセスしているとき、第２メモリバンク４６は副ＣＰＵ２からのアクセスが可能である。また、図１０に示す構成をとることで、メモリ４に主ＣＰＵ１と副ＣＰＵ２とが同時にアクセスすることが可能となる。
【００６５】
以上のように、本実施の形態に係るデータ処理装置は、複数の領域に分けられたメモリ４の各領域（メモリバンク）毎に、主ＣＰＵ１又は副ＣＰＵ２からのアクセスを選択する選択手段４７，４８と、主ＣＰＵ１又は副ＣＰＵ２の指示に基づき、選択手段４７，４８を制御する制御手段とをさらに備えるので、主ＣＰＵ１と副ＣＰＵ２とが同時にメモリ４にアクセスすることが可能である。そのため、本実施の形態に係るデータ処理装置は、例えば主ＣＰＵ１から分割モジュール２をダウンロードさせながら、副ＣＰＵ２で分割モジュール１を実行することができる。従って、本実施の形態に係るデータ処理装置では、分割モジュール１の実行後に、分割モジュール２のダウンロードを実行する場合に比べ、副ＣＰＵ２でデータ処理時間が短くできる。
【００６６】
（実施の形態８）
図１１に、本実施の形態に係るデータ処理装置のブロック図を示す。図１１に示す構成は、基本的に実施の形態７の図１０で示した構成と同じであるが、禁止手段３０を新たに備えている点が異なる。なお、図１１でも、図１に示した転送手段５や主ＣＰＵバス６については図示していないが、本実施の形態に係るデータ処理装置は同様の機能を有している。
【００６７】
図１１に示す禁止手段３０は、副ＣＰＵ２からの設定により、メモリ４の特定の範囲（例えば、第１メモリバンク４５）を主ＣＰＵ１からのアクセスを禁止する手段である。具体的に説明すると、主ＣＰＵ１からメモリ４の第１メモリバンク４５にアクセスする際、禁止手段３０は、アドレスデコードを行い禁止されているアドレス空間であるか否かを判定する。そして、禁止されているアドレス空間である場合、禁止手段３０は、主ＣＰＵ１から第１メモリバンク４５へのアクセスを禁止するように選択手段４７を設定する。
【００６８】
また、副ＣＰＵ２が第１メモリバンク４５を使用してデータ処理を実行している場合について説明する。この場合、第１メモリバンク４５に対して主ＣＰＵ１が書き込みを行うと、副ＣＰＵ２の動作中に第１メモリバンク４５の内容が書き換えられることになり、副ＣＰＵ２でのデータ処理がおかしくなる。そこで、本実施の形態に係るデータ処理装置では、副ＣＰＵ２が禁止手段３０を用いて、主ＣＰＵ１が第１メモリバンク４５にアクセスできないように制御手段４９を介して選択手段４６を設定する。
【００６９】
禁止手段３０によりアクセスが禁止されているメモリにはアドレスが設定されている。そのため、制御手段４９は、主ＣＰＵ１又は副ＣＰＵ２がメモリ４にアクセスする際にデコードされるアドレス情報を元に、禁止手段３０が設定したアクセス禁止の第１メモリバンク４５にアクセスがあったか否かを判定する。当該判定において第１メモリバンク４５にアクセスがあったとする場合、制御手段４９は、第１メモリバンク４５に対して主ＣＰＵ１がアクセスできないように、選択手段４７を設定する。なお、制御手段４９は、上記の場合に、主ＣＰＵ１が第２メモリバンク４６にアクセスできるように選択手段４８を設定しても良い。
【００７０】
逆に、禁止手段３０は、副ＣＰＵ２が第２メモリバンク４６にアクセスしている場合、制御手段４９を介して、主ＣＰＵ１が第２メモリバンク４６にアクセスできないように選択手段４８を設定する。また、禁止手段３０は、副ＣＰＵ２が第１メモリバンク４５及び第２メモリバンク４６の両方を使用している場合、制御手段４９を介して、両方のメモリバンクにアクセスできないように選択手段４７，４８を設定する。
【００７１】
以上のように、本実施の形態に係るデータ処理装置は、副ＣＰＵ２の指示に基づき、メモリ４の所定の領域（メモリバンク）に主ＣＰＵ１からのアクセスを禁止するように、選択手段４７，４８を設定する禁止手段３０をさらに備えているので、副ＣＰＵ２がアクセスしているメモリバンクに、主ＣＰＵ１からのアクセスが禁止でき、副ＣＰＵ２の動作時に処理データやプログラムが破壊される恐れがなくなり、副ＣＰＵ２のデータ処理が安定して行える。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施の形態１に係るデータ処理装置のブロック図である。
【図２】本発明の実施の形態１に係るデータ処理装置の分割モジュールを説明する図である。
【図３】本発明の実施の形態１に係るデータ処理装置のデータ処理のフロー図である。
【図４】本発明の実施の形態２に係るデータ処理装置のモジュール、処理データ、係数の分割を説明する図である。
【図５】本発明の実施の形態３に係るデータ処理装置の処理データのアップロードを説明する図である。
【図６】本発明の実施の形態４に係るデータ処理装置のモジュールの分割を説明する図である。
【図７】本発明の実施の形態５に係るデータ処理装置のモジュールの分割を説明する図である。
【図８】本発明の実施の形態６に係るデータ処理装置のブロック図である。
【図９】本発明の実施の形態６に係るデータ処理装置のデータ処理のフロー図である。
【図１０】本発明の実施の形態７に係るデータ処理装置のブロック図である。
【図１１】本発明の実施の形態８に係るデータ処理装置のブロック図である。
【符号の説明】
【００７３】
１  主ＣＰＵ、２  副ＣＰＵ、３  外部メモリ、４  メモリ、５  転送手段、６  主ＣＰＵバス、３０  禁止手段、４１  プログラムメモリ、４２  処理データメモリ、４５  第１メモリバンク、４６  第２メモリバンク、４７，４８  選択手段、４９  制御手段。
【図１】
2007310436.tif 000003
【図２】
2007310436.tif 000004
【図３】
2007310436.tif 000005
【図４】
2007310436.tif 000006
【図５】
2007310436.tif 000007
【図６】
2007310436.tif 000008
【図７】
2007310436.tif 000009
【図８】
2007310436.tif 000010
【図９】
2007310436.tif 000011
【図１０】
2007310436.tif 000012
【図１１】
2007310436.tif 000013