JP2007310436A - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP2007310436A JP2007310436A JP2006136016A JP2006136016A JP2007310436A JP 2007310436 A JP2007310436 A JP 2007310436A JP 2006136016 A JP2006136016 A JP 2006136016A JP 2006136016 A JP2006136016 A JP 2006136016A JP 2007310436 A JP2007310436 A JP 2007310436A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- processing
- data
- data processing
- divided
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】本発明は、主CPUに接続されたメモリと副CPUに接続されたメモリとを有効に利用して、副CPUのデータ処理を行うデータ処理装置を提供することを目的とする。
【解決手段】本発明に係るデータ処理装置は、データ処理を行う主CPU1と、主CPU1に接続された外部メモリ3と、主CPU1が行うデータ処理の一部を行う副CPU2と、副CPU2に接続されたメモリ4と、外部メモリ3に保持されているプログラムをメモリ4に転送する転送手段5とを備えている。そして、主CPU1は、外部メモリ3に保持しているプログラムを所定のメモリサイズに分割し、順次メモリ4に転送するように転送手段5を制御する。
【選択図】図1
【解決手段】本発明に係るデータ処理装置は、データ処理を行う主CPU1と、主CPU1に接続された外部メモリ3と、主CPU1が行うデータ処理の一部を行う副CPU2と、副CPU2に接続されたメモリ4と、外部メモリ3に保持されているプログラムをメモリ4に転送する転送手段5とを備えている。そして、主CPU1は、外部メモリ3に保持しているプログラムを所定のメモリサイズに分割し、順次メモリ4に転送するように転送手段5を制御する。
【選択図】図1
Description
本発明は、データ処理装置に係る発明であって、特に、主処理演算部の一部の処理を行う副処理演算部を備えるデータ処理装置に関するものである。
近年、データ処理装置は、主たるデータ処理を行う主CPU(処理演算部)と、主CPUの動作をアクセラレートする副CPUとを備え、データ処理の高速化を図ることが多い。主CPUが行うデータ処理には、例えば外部とのインタフェース処理、表示処理など様々な処理が含まれている。一方、副CPUは、主CPUで行うある特定のデータ処理の一部、もしくは全部を代わりに処理している。なお、副CPUには、DSP(Digital Signal Processor)等を用いる場合がある。
例えば、データ処理装置が圧縮された音楽データを再生する機器の場合、主CPUは、グラフィックス機能を用いた楽曲データの表示、楽曲の選択など、使用者に使いやすい方式を提供する等のデータ処理を行う。一方、副CPUは、圧縮データから音楽データを伸張するデータ処理を行う。
また、音声データ復号処理の例について考えると、主CPUは、外部とのデータの入出力や、副CPUへの圧縮データの転送などのデータ処理を行い、副CPUにデータの伸張処理を実行するように指示する。一方、副CPUは、動作に必要なデータ(例えば音声データ)が主CPUから転送されてくると、データの伸張処理を行う。そして、副CPUは、データの伸張処理が終了すると、当該結果を主CPUへ送る。
このように、主CPUで行うデータ処理のうち、ある特定のデータ処理(例えば、データの伸張処理)の一部又は全部を副CPUで処理することにより、データ処理の高速化を図っている。なお、副CPUは、特定の処理(例えば、データの伸張処理)を行う場合、副CPUに接続されたメモリを用いて処理を行う必要がある。オーディオデータを圧縮伸張して記録再生する場合に用いるデータ処理装置の例として、例えば特許文献1がある。
圧縮データの再生のために、副CPUでデータの伸張処理を行う場合、副CPUは、FFT(Fast Fourier Transform)やDCT(Discrete Cosine Transform)などの処理が必要となる。これらの処理には、バッファメモリ、処理途中のデータの退避用メモリや演算に用いる係数データ等の保存用メモリ等、多くのメモリが副CPUに必要となる。しかし、LSIのレイアウト等の制限から、副CPUに接続されるメモリに十分なメモリ量を与えることができない場合があり、当該場合には副CPUで十分な処理が行えないことがあった。
また、副CPUでのデータ処理が複雑になると、副CPUで処理する命令コードのサイズが大きくなる。そのため、複雑なデータ処理を行う命令コードが、副CPUに接続されたメモリのサイズよりも大きくなる場合、副CPUは、当該データ処理を行うことができなくなる。
そこで、本発明は、主CPUと副CPUとを有するデータ処理装置において、主CPUに接続されたメモリと副CPUに接続されたメモリとを有効に利用して、副CPUのデータ処理を行うデータ処理装置を提供することを目的とする。
本発明に係る解決手段は、データ処理を行う第1処理演算部と、前記第1処理演算部に接続された第1メモリと、前記第1処理演算部が行うデータ処理の一部を行う第2処理演算部と、前記第2処理演算部に接続された第2メモリと、前記第1処理演算部の指示に基づき、前記第1メモリに保持されている前記第2処理演算部で実行するプログラムを前記第2メモリに転送する転送手段とを備えるデータ処理装置であって、前記第1処理演算部は、前記第1メモリに保持している前記プログラムを所定のメモリサイズに分割し、順次前記第2メモリに転送するように前記転送手段を制御することを特徴とする。
本発明に記載のデータ処理装置は、第1処理演算部が、第1メモリに保持しているプログラムを所定のメモリサイズに分割し、順次第2メモリに転送するように転送手段を制御するので、第2処理演算部のデータ処理中に必要となる第2メモリのメモリサイズを少なくすることができ、従来実行が困難であったデータ処理を第2処理演算部で実行することが可能となる効果がある。
(実施の形態1)
図1に、本実施の形態に係るデータ処理装置のブロック図を示す。図1には、様々なデータ処理を行う処理演算部(以下、主CPU1ともいう)を示している。この主CPU1は、例えば、画像・音声の録音再生、外部とのデータの送受信などのデータ処理を行う。また、図1には、主CPU1に接続される外部メモリ3が図示されており、当該外部メモリ3は主CPU1でのデータ処理に適宜使用される。
図1に、本実施の形態に係るデータ処理装置のブロック図を示す。図1には、様々なデータ処理を行う処理演算部(以下、主CPU1ともいう)を示している。この主CPU1は、例えば、画像・音声の録音再生、外部とのデータの送受信などのデータ処理を行う。また、図1には、主CPU1に接続される外部メモリ3が図示されており、当該外部メモリ3は主CPU1でのデータ処理に適宜使用される。
さらに、図1には、主CPU1のデータ処理の一部を担う処理演算部(以下、副CPU2ともいう)、及び副CPU2に接続されたメモリ4が図示されている。メモリ4は、副CPU2でのデータ処理に適宜使用される。また、図1には、外部メモリ3と副CPU2に接続されたメモリ4との間でデータ等の転送を行う転送手段5が図示されている。なお、主CPU1、副CPU2、及び外部メモリ3の間におけるデータ等の転送は、主CPUバス6を介して行われる。
図1に示したメモリ4は、副CPU2用の命令コードが格納されるプログラムメモリ41と、処理するデータが格納される処理データメモリ42とに領域が分けられている。但し、本発明に係るメモリ4はこれに限られず、領域を分けない場合やより多くの領域に分ける場合等であっても良い。
次に、本実施の形態に係るデータ処理装置の動作について説明する。まず、副CPU2は、主CPU1が実行する様々なデータ処理のうち、1つ以上の特定のデータ処理を実行する。例えば、画像データ再生や音楽データ再生を行うデータ処理装置において、主CPU1が行うデータ処理の一部である音楽データの伸張処理を、副CPU2が実行する。
副CPU2がデータ処理を行う場合、まず、主CPU1の外部メモリ3から、副CPU2で実行するプログラムをメモリ4にダウンロードする。さらに、プログラムの実行に必要な係数や処理データなども、外部メモリ3からメモリ4にダウンロードする。そして、主CPU1が副CPU2に必要なデータ処理の実行を指示する。副CPU2はデータ処理の終了後、主CPU1に終了を通知し、それによって主CPU1は次のデータ処理に移ることになる。
データ処理装置は、上述のように動作するが、副CPU2に接続されるメモリ4の容量は限られている。そのため、副CPU2で実行するデータ処理に必要なメモリ量を、メモリ4に確保できない場合が考えられる。そこで、本実施の形態に係るデータ処理装置では、副CPU2のデータ処理で実行されるプログラムを、ある単位で幾つかに分割する。そして、主CPU1は、データ処理の内容に基づき、分割されたそれぞれの単位(以下、分割モジュールともいう)毎に、外部メモリ3からメモリ4へダウンロードする。副CPU2は、メモリ4にダウンロードされた分割モジュールを実行する。
図2に、本実施の形態に係る分割モジュールの例を示す。図2では、副CPU2のデータ処理に必要なプログラムをモジュールAとして図示している。例えば、圧縮された音声データを伸張するプログラムの場合、1フレーム単位でこのモジュールAが繰り返し実行される。なお、図2では、縦軸がメモリサイズを表している。
また、図2では、副CPU2に接続されたメモリ4のうちプログラムメモリ41のメモリサイズを示している。さらに、図2には、モジュールAをプログラムメモリ41よりも小さいサイズに分割した分割モジュールが図示されている。分割モジュールは、モジュールAを2つに分割した例であり、分割モジュール1と分割モジュール2とが図2には示されている。図2で示されている例では、分割モジュール1,2のそれぞれのメモリサイズがメモリ4のプログラムメモリ41のサイズより小さくとっている。
次に、主CPU1及び副CPU2の動作のフローを図3に示す。図3に示すフローでは、図2に示したモジュールAを2つの分割モジュール1,分割モジュール2に分割した場合を示している。まず、主CPU1は、転送手段5を用いて外部メモリ3から副CPU2のメモリ4に分割モジュール1をダウンロードする(ステップ101)。次に、主CPU1は、副CPU2に分割モジュール1の実行指示を行う(ステップ102)。
副CPU2は、主CPU1からの実行指示に従い、メモリ4にダウンロードされた分割モジュール1を実行する(ステップ103)。分割モジュール1の実行が終了すると、副CPU2は、主CPU1に対して実行終了通知を行う(ステップ104)。主CPU1は、副CPU2から実行終了通知を受け取ると、分割モジュール2を選択する(ステップ105)。そして、主CPU1は、転送手段5を用いて外部メモリ3から副CPU2のメモリ4に分割モジュール2をダウンロードする(ステップ106)。
以下、同様に、主CPU1は、副CPU2に分割モジュール2の実行指示を行う(ステップ107)。副CPU2は、主CPU1からの実行指示に従い、メモリ4にダウンロードされた分割モジュール2を実行する(ステップ108)。分割モジュール2の実行が終了すると、副CPU2は、主CPU1に対して実行終了通知を行う(ステップ109)。
主CPU1は、副CPU2から分割モジュール2の実行終了通知を受け取ると、また分割モジュール1を選択し、副CPU2のメモリ4にダウンロードしてデータ処理を継続する。図3に示す動作を行うことで、本実施の形態に係る副CPU2は、分割モジュールを順に実行し、データを順に処理することができる。
以上のように、本実施の形態に係るデータ処理装置は、主CPU1が、外部メモリ3に保持しているモジュール(プログラム)を、所定のメモリサイズ(メモリ4のメモリサイズ以内)に分割し、順次副CPU2のメモリ4に転送するように転送手段5を制御するので、副CPU2に接続しているメモリ4のメモリサイズより大きなプログラムを実行することができる効果がある。また、本実施の形態に係るデータ処理装置は、一度に実行されるプログラムのサイズが小さくなるので、従来より少ないメモリ4のメモリサイズでも実行することが可能となる。
(実施の形態2)
実施の形態1では、分割されるのはプログラム(モジュール)だけであった。しかし、本実施の形態では、プログラム(モジュール)だけでなく、係数や処理されるデータ(以下、処理データともいう)についても分割してダウンロードする。
実施の形態1では、分割されるのはプログラム(モジュール)だけであった。しかし、本実施の形態では、プログラム(モジュール)だけでなく、係数や処理されるデータ(以下、処理データともいう)についても分割してダウンロードする。
本実施の形態に係るデータ処理装置は、図1に示す構成を採用しているが、副CPU2の実行時に必要となるプログラム(モジュール)だけではなく、プログラムの実行に必要な係数や処理データも所定の手順に従って分割する。そして、主CPU1は、所定の手順に従って、分割したモジュール、処理データ及び係数をメモリ4にダウンロードする構成を採用している。
本実施の形態に係るモジュール、処理データ及び係数について図4を用いて説明する。図4に示す例では、モジュールを2つに分割し、処理データを3分割し、係数を3分割した例である。
本来、副CPU2がモジュールAの実行中に使用する処理データ及び係数は、3種類の処理データ(処理データ1〜3)、3種類の係数(係数1〜3)である。しかし、副CPU2のメモリ4が有している処理データメモリ42のメモリサイズは、処理データ1〜3及び係数1〜3のメモリサイズより小さい。そこで、本実施の形態に係るデータ処理装置は、分割モジュール単位で必要な処理データ・係数を、メモリ4にダウンロードする構成としている。
具体的には、図4に示すように、分割モジュール1で必要となる処理データ1、処理データ2及び係数1とする。主CPU1は、分割モジュール1を副CPU2で実行させる場合、分割モジュール1とともに、処理データ1、処理データ2及び係数1を、転送手段5を用いて外部メモリ3からメモリ4へダウンロードする。その後、副CPU2では、メモリ4にダウンロードされた分割モジュール1を実行する。
さらに、副CPU2が分割モジュール1の実行を終了すると、主CPU1は、分割モジュール2を外部メモリ3からメモリ4へダウンロードする。分割モジュール2では、図4に示すように、処理データ3、係数1及び係数3が必要となる。そこで、主CPU1は、分割モジュール2とともに、処理データ3、係数1及び係数3を、転送手段5を用いて外部メモリ3からメモリ4へダウンロードする。
以上のように、本実施の形態に係るデータ処理装置は、分割モジュール1,2(分割したプログラム)をメモリ4に転送する際に、当該分割モジュール1,2に必要な処理データ及び係数のみをメモリ4に転送するので、プログラムの実行時の処理データメモリ42のメモリサイズを減らす効果がある。また、本実施の形態に係るデータ処理装置は、副CPU2の処理データメモリ42のメモリサイズが限られている場合であっても、当該メモリサイズよりも大きな処理データや係数を処理できる効果がある。
(実施の形態3)
実施の形態2では、分割モジュール毎に必要となる処理データや係数を副CPUに接続されたメモリにダウンロードする構成を説明した。本実施の形態では、実行中の分割モジュールで使用しないが、次に実行する分割モジュールで必要となる実行後の処理データや係数を、主CPUのメモリにアップロードする。そして、アップロードした処理データや係数は、次以降に実行する分割モジュールで必要となった場合に、再度ダウンロードする。
実施の形態2では、分割モジュール毎に必要となる処理データや係数を副CPUに接続されたメモリにダウンロードする構成を説明した。本実施の形態では、実行中の分割モジュールで使用しないが、次に実行する分割モジュールで必要となる実行後の処理データや係数を、主CPUのメモリにアップロードする。そして、アップロードした処理データや係数は、次以降に実行する分割モジュールで必要となった場合に、再度ダウンロードする。
図5は、本実施の形態に係るモジュール、処理データ及び係数について説明するための図である。なお、本実施の形態に係るデータ処理装置も、図1に示す構成を採用している。図5に示すプログラムメモリ41には、分割モジュール1〜3、処理データメモリ42にはそれぞれの分割モジュールに必要な処理データ及び係数が保存される。
具体的に説明すると、分割モジュール1では、処理データ1、処理データ2、係数2を使用するので、処理データメモリ42には処理データ1、処理データ2、係数2が保存される。同様に、分割モジュール2では、処理データ3、係数1、係数2を使用するので、処理データメモリ42には処理データ3、係数1、係数2が保存される。また、分割モジュール3では、処理データ1、処理データ3、係数3を使用するので、処理データメモリ42には処理データ1、処理データ3、係数3が保存される。
分割モジュール1から分割モジュール3までを順に実行する場合、分割モジュール1で使用し、更新された処理データ1は、分割モジュール3で再度使用する。分割モジュール2では、処理データ1を使用せず処理データ3と係数1,2のみを使用する。そこで、本実施の形態では、処理データ1を分割モジュール2の実行前に主CPU1の外部メモリ3へアップロードする。その後、分割モジュール2で必要な処理データ3、係数1,2をダウンロードする。そして、分割モジュール3を実行する前に、外部メモリ3にアップロードしておいた処理データ1を、メモリ4に再度ダウンロードする。なお、分割モジュール3で使用する処理データ3は、分割モジュール2の実行の際にダウンロードしているため、メモリ4にある処理データ3をそのまま利用する。係数3は、外部メモリ3からメモリ4にダウンロードする。
なお、処理データメモリ42から外部メモリ3へアップロードする際も、転送手段5を用いて行われている。
以上のように、本実施の形態に係るデータ処理装置は、副CPU2での一連の分割モジュールの実行過程において、メモリ4にダウンロードした処理データ及び係数のうち、所定の処理データ及び/又は係数を、一旦外部メモリ3に転送し、それが必要な所定の分割モジュールを副CPU2が実行する際に再度前記第2メモリに転送するので、分割モジュールで最低限必要な処理データ等のみを処理データメモリ42に置くことができ、副CPU2のメモリ4を有効的に活用できる。また、本実施の形態に係るデータ処理装置は、副CPU2と接続しているメモリ4のサイズ以上の処理を実行することが可能となる。
(実施の形態4)
実施の形態1では、モジュールを分割する際、副CPUに接続したメモリのサイズ以下であれば、どのようなサイズで分割しても良いとしていた。本実施の形態では、副CPUに接続したメモリのサイズ以下で、且つ固定値のメモリ単位でモジュールを分割する構成を示している。
実施の形態1では、モジュールを分割する際、副CPUに接続したメモリのサイズ以下であれば、どのようなサイズで分割しても良いとしていた。本実施の形態では、副CPUに接続したメモリのサイズ以下で、且つ固定値のメモリ単位でモジュールを分割する構成を示している。
図6に、オーディオ復号処理で実行される処理の一例を示している。図6の例では、入力された圧縮データに対し、データ分析、ハフマン復号、逆量子化、逆MDCT(Modified Discrete Cosine Transform)、フィルタバンクの各処理を順に実行する。これらの各処理を行うことで、PCM(Pulse Code Modulation)データが得られる構成である。なお、図6に示す処理は、一般的によく利用されるものであるため、本実施の形態では詳細な説明を省略する。また、本実施の形態に係るデータ処理装置も、図1に示す構成を採用している。
図6に示したそれぞれの処理は、様々なプログラムのサイズを有している。しかし、本実施の形態では、それぞれの処理とは無関係に一定のサイズで分割する。図6に示す例では、各処理単位を意識せず、プログラムを4kバイト単位で5つの分割モジュールに分割している。具体的に、図6に示すデータ分析は、分割モジュール1の中に含まれるが、図6に示すハフマン復号処理は、分割モジュール1と分割モジュール2とに分けられている。図6に示す他の処理についても同様である。
図6に示す例では、順に4kバイト単位で分割しているので、最後のフィルタバンクの処理については4kバイト以下になることもある。また、図6に示す例では4kバイト単位に分割しているが、この分割する単位は、副CPU2に接続しているメモリ4のメモリサイズに応じて決定しても良い。なお、分割する単位を、副CPU2に接続しているメモリ4のメモリサイズ以下としても構わない。
以上のように、本実施の形態に係るデータ処理装置は、分割するメモリサイズを固定値としているので、モジュール(プログラム)の分割を単純に行うことが可能となる。
(実施の形態5)
実施の形態4では、モジュールを各処理単位を意識せず、固定のメモリサイズで分割した。しかし、本実施の形態では、モジュールの各処理単位(処理機能)に応じて分割する構成である。
実施の形態4では、モジュールを各処理単位を意識せず、固定のメモリサイズで分割した。しかし、本実施の形態では、モジュールの各処理単位(処理機能)に応じて分割する構成である。
図7に、オーディオ復号処理で実行される処理のフローを示す。図7では、音楽圧縮データを伸張する場合の一般的な例を示している。図7の例では、圧縮データに対して、ビットストリーム分析を行った後、スケール復号、ハフマン復号、逆量子化、ステレオ相関処理、逆MDCT、サブバンド合成、フィルタバンクの各処理を行い、PCMデータを得る。なお、図7に示す処理は、一般的によく利用されるものであるため、本実施の形態では詳細な説明を省略する。また、本実施の形態に係るデータ処理装置も、図1に示す構成を採用している。
図7に示す例では、オーディオ復号処理を機能面から3つの分割モジュールに分けている。分割モジュール1にはビットストリーム分析処理を、分割モジュール2にはスケールファクタ復号からステレオ相関処理までを、分割モジュール3には、逆MDCT、サブバンド合成及びフィルタバンクの処理を対応させている。つまり、本実施の形態では、分割するモジュールのサイズは、副CPU2での処理方法に基づき決定される可変値となる。なお、図7に示す例では、関連する処理をまとめて分割しているが、これに限られずそれぞれの処理単位毎に分割をしても構わない。
以上のように、本実施の形態に係るデータ処理装置では、分割するメモリサイズが、副CPU2での処理方法に基づき決定される可変値であるので、処理の機能単位で分割を行うことができ、分割の処理が容易になる。
(実施の形態6)
本実施の形態に係るデータ処理装置は、次に実行する分割モジュールや当該分割モジュールで使用する処理データ等の処理状況を、副CPUから主CPUへ通知する手段を設けた構成である。
本実施の形態に係るデータ処理装置は、次に実行する分割モジュールや当該分割モジュールで使用する処理データ等の処理状況を、副CPUから主CPUへ通知する手段を設けた構成である。
図8(a)に、本実施の形態に係るデータ処理装置の構成の一部を示す。図8(a)では、主CPU1、主CPU1に接続された外部メモリ3、副CPU2、副CPU2に接続されたメモリ4及び副CPU2から主CPU1への通知手段が図示されている。なお、図8(a)では、図1に示した転送手段5や主CPUバス6については図示を省略している。また、図8(a)に示すメモリ4も、プログラムメモリ41と処理データメモリ42とに分けられている。
次に、図8(a)に示す本実施の形態に係るデータ処理装置の動作について、以下に説明する。まず、本実施の形態において分割モジュールを作成する場合、各分割モジュールと当該分割モジュールで使用する処理データ等の関係を副CPU2のプログラムに予め埋め込んでおく。例えば、図8(b)に示すような分割モジュールと、その分割モジュール実行時に必要な係数を示した対応テーブルを用いて、両者の対応を予め決めておいても良い。なお、図8(b)に示すテーブルは、ライン110に分割モジュール1と係数2、ライン111に分割モジュール2と係数1,3、ライン112に分割モジュール3と係数2,4、ライン113に分割モジュール3と係数1,2,4がそれぞれ記載されている。
主CPU1から副CPU2に分割モジュールをダウンロードし、主CPU1が副CPU2に実行の指示を通知する。副CPU2は、分割モジュールの実行が完了すると、図8(b)の対応テーブルに基づき、次に実行すべき分割モジュールを判断し、分割モジュールの番号及び対応する係数等を読み取る。その後、読み取った分割モジュールの番号等を、通知手段10に設定する。
図8(c)に、本実施の形態に係る通知手段10の構成例を示す。図8(c)に示す通知手段10は、主CPU1と副CPU2の両方から読み書き可能なものであり、例えば、ハードウェアで構成するとレジスタなどに相当する。また、通知手段10として、主CPU1、あるいは副CPU2のメモリの一部を使用する構成でも良い。
通知手段10は、複数の情報を伝えるためのフィールドをもつ。図8(c)に示す例では、実行中の分割モジュール番号、次実行の分割モジュール番号、次実行の分割モジュールで使用する係数番号1〜nを通知手段10に格納できる。図8(c)では、1つの分割モジュールで使用する係数が、1つ以上の場合を考慮して複数のフィールドを設けている。
次に、本実施の形態に係るデータ処理装置において、通知手段10を用いたデータ処理のフローを図9に示す。図9に示すフローでは、まず、主CPU1が、転送手段5を用いて、図8(b)に示す分割モジュール1及び係数1を外部メモリ3から副CPU2のメモリ4にダウンロードする(ステップ1001)。次に、主CPU1は、副CPU2に分割モジュール1の実行指示を行う(ステップ1002)。
副CPU2は、主CPU1からの実行指示に従い、メモリ4にダウンロードされた分割モジュール1を実行する(ステップ1003)。副CPU2は、通知手段10に対し、現在実行中の分割モジュールの番号”1”を設定する(ステップ1004)。分割モジュール1の実行が終了する(ステップ1005)と、副CPU2は、図8(b)のテーブルから次実行の分割モジュールの番号”2”を読み出し、通知手段10に設定する(ステップ1006)。さらに、副CPU2は、図8(b)のテーブルから次実行の分割モジュールで使用する係数の番号”1,3”を読み出し、通知手段10に設定する(ステップ1007)。そして、副CPU2は、主CPU1に対して実行終了通知を行う(ステップ1008)。
主CPU1は、副CPU2から実行終了通知を受け取ると、通知手段10から次実行の分割モジュールの番号”2”を読み出す(ステップ1010)。さらに、主CPU1は、通知手段10から次実行の分割モジュールで使用する係数の番号”1,3”を読み出す(ステップ1011)。なお、副CPU2からの実行終了通知は、主CPU1への割り込みや通知手段10を用いる構成であっても構わない。
主CPU1は、通知手段10から読み出した分割モジュールの番号及び係数の番号に基づいて分割モジュール2及び係数1,3を、外部メモリ3から副CPU2のメモリ4に、転送手段5を用いてダウンロードする(ステップ1012)。以下、同様に、主CPU1は、副CPU2に分割モジュール2の実行指示を行う(ステップ1013)。副CPU2は、主CPU1からの実行指示に従い、メモリ4にダウンロードされた分割モジュール2を実行する(ステップ1014)。
以上のように、本実施の形態に係るデータ処理装置は、副CPU2での処理状況(実行中の分割モジュールの番号や次実行の分割モジュールの番号等)を主CPU1に通知する通知手段10をさらに備えるので、主CPU1で処理に応じて分割モジュールを判断する必要がないため主CPU1の処理が簡単になる。また、本実施の形態に係るデータ処理装置は、予め処理手順が決められたテーブルを有するので、副CPU2の処理に応じたプログラムを作成する必要がなくなる。
なお、本実施の形態では、図8(c)に示すように分割モジュールの番号と係数の番号を通知手段10で通知しているが、本発明はこれに限られず、処理データの番号等を追加しても良い。
(実施の形態7)
図10に、本実施の形態に係るデータ処理装置のブロック図を示す。なお、図10では、図1に示した転送手段5や主CPUバス6については図示していないが、本実施の形態に係るデータ処理装置は同様の機能を有している。
図10に、本実施の形態に係るデータ処理装置のブロック図を示す。なお、図10では、図1に示した転送手段5や主CPUバス6については図示していないが、本実施の形態に係るデータ処理装置は同様の機能を有している。
図10では、副CPU2に接続されたメモリ4が、第1メモリバンク45と第2メモリバンク46の2つの領域に分けられている。なお、図10では、メモリ4を2つのバンクに分けた例であるが、本発明はこれに限られず、2つ以上の複数のメモリバンクに分けても良い。
さらに、図10では、メモリバンク毎に、主CPU1からのアクセスと副CPU2からのアクセスのどちらかを選択する選択手段47,48を設けている。図10では2つのメモリバンクに分ける例を示している。具体的に、選択手段47が第1メモリバンク45のアクセスを選択し、選択手段48が第2メモリバンク46のアクセスを選択している。
また、図10では、制御手段49が選択手段47,48を制御し、主CPU1あるいは副CPU2からのアクセスを、第1メモリバンク45、第2メモリバンク46毎に設定している。なお、制御手段49は、主CPU1又は副CPU2の指示により、選択手段47,48を制御する。
例えば、図10に示す第1メモリバンク45は主CPU1からアクセスができ、第2メモリバンク46は副CPU2からアクセスできるように設定する。この場合に、選択手段47は、主CPU1からのアクセスを第1メモリバンク45に通過させるが、副CPU2からのアクセスを遮断する。一方、選択手段48は、副CPU2からのアクセスを第2メモリバンク46に通過させるが、主CPU1からのアクセスを遮断する。つまり、本実施の形態に係るデータ処理装置は、第1メモリバンク45及び第2メモリバンク46のメモリバス線を互いに独立させ、それぞれのバスに対して独立にアクセスできる構成としている。
図10に示す構成をとることで、第1メモリバンク45に主CPU1がアクセスしているとき、第2メモリバンク46は副CPU2からのアクセスが可能である。また、図10に示す構成をとることで、メモリ4に主CPU1と副CPU2とが同時にアクセスすることが可能となる。
以上のように、本実施の形態に係るデータ処理装置は、複数の領域に分けられたメモリ4の各領域(メモリバンク)毎に、主CPU1又は副CPU2からのアクセスを選択する選択手段47,48と、主CPU1又は副CPU2の指示に基づき、選択手段47,48を制御する制御手段とをさらに備えるので、主CPU1と副CPU2とが同時にメモリ4にアクセスすることが可能である。そのため、本実施の形態に係るデータ処理装置は、例えば主CPU1から分割モジュール2をダウンロードさせながら、副CPU2で分割モジュール1を実行することができる。従って、本実施の形態に係るデータ処理装置では、分割モジュール1の実行後に、分割モジュール2のダウンロードを実行する場合に比べ、副CPU2でデータ処理時間が短くできる。
(実施の形態8)
図11に、本実施の形態に係るデータ処理装置のブロック図を示す。図11に示す構成は、基本的に実施の形態7の図10で示した構成と同じであるが、禁止手段30を新たに備えている点が異なる。なお、図11でも、図1に示した転送手段5や主CPUバス6については図示していないが、本実施の形態に係るデータ処理装置は同様の機能を有している。
図11に、本実施の形態に係るデータ処理装置のブロック図を示す。図11に示す構成は、基本的に実施の形態7の図10で示した構成と同じであるが、禁止手段30を新たに備えている点が異なる。なお、図11でも、図1に示した転送手段5や主CPUバス6については図示していないが、本実施の形態に係るデータ処理装置は同様の機能を有している。
図11に示す禁止手段30は、副CPU2からの設定により、メモリ4の特定の範囲(例えば、第1メモリバンク45)を主CPU1からのアクセスを禁止する手段である。具体的に説明すると、主CPU1からメモリ4の第1メモリバンク45にアクセスする際、禁止手段30は、アドレスデコードを行い禁止されているアドレス空間であるか否かを判定する。そして、禁止されているアドレス空間である場合、禁止手段30は、主CPU1から第1メモリバンク45へのアクセスを禁止するように選択手段47を設定する。
また、副CPU2が第1メモリバンク45を使用してデータ処理を実行している場合について説明する。この場合、第1メモリバンク45に対して主CPU1が書き込みを行うと、副CPU2の動作中に第1メモリバンク45の内容が書き換えられることになり、副CPU2でのデータ処理がおかしくなる。そこで、本実施の形態に係るデータ処理装置では、副CPU2が禁止手段30を用いて、主CPU1が第1メモリバンク45にアクセスできないように制御手段49を介して選択手段46を設定する。
禁止手段30によりアクセスが禁止されているメモリにはアドレスが設定されている。そのため、制御手段49は、主CPU1又は副CPU2がメモリ4にアクセスする際にデコードされるアドレス情報を元に、禁止手段30が設定したアクセス禁止の第1メモリバンク45にアクセスがあったか否かを判定する。当該判定において第1メモリバンク45にアクセスがあったとする場合、制御手段49は、第1メモリバンク45に対して主CPU1がアクセスできないように、選択手段47を設定する。なお、制御手段49は、上記の場合に、主CPU1が第2メモリバンク46にアクセスできるように選択手段48を設定しても良い。
逆に、禁止手段30は、副CPU2が第2メモリバンク46にアクセスしている場合、制御手段49を介して、主CPU1が第2メモリバンク46にアクセスできないように選択手段48を設定する。また、禁止手段30は、副CPU2が第1メモリバンク45及び第2メモリバンク46の両方を使用している場合、制御手段49を介して、両方のメモリバンクにアクセスできないように選択手段47,48を設定する。
以上のように、本実施の形態に係るデータ処理装置は、副CPU2の指示に基づき、メモリ4の所定の領域(メモリバンク)に主CPU1からのアクセスを禁止するように、選択手段47,48を設定する禁止手段30をさらに備えているので、副CPU2がアクセスしているメモリバンクに、主CPU1からのアクセスが禁止でき、副CPU2の動作時に処理データやプログラムが破壊される恐れがなくなり、副CPU2のデータ処理が安定して行える。
1 主CPU、2 副CPU、3 外部メモリ、4 メモリ、5 転送手段、6 主CPUバス、30 禁止手段、41 プログラムメモリ、42 処理データメモリ、45 第1メモリバンク、46 第2メモリバンク、47,48 選択手段、49 制御手段。
Claims (9)
- データ処理を行う第1処理演算部と、
前記第1処理演算部に接続された第1メモリと、
前記第1処理演算部が行うデータ処理の一部を行う第2処理演算部と、
前記第2処理演算部に接続された第2メモリと、
前記第1処理演算部の指示に基づき、前記第1メモリに保持されている前記第2処理演算部で実行するプログラムを前記第2メモリに転送する転送手段とを備えるデータ処理装置であって、
前記第1処理演算部は、前記第1メモリに保持している前記プログラムを所定のメモリサイズに分割し、順次前記第2メモリに転送するように前記転送手段を制御することを特徴とするデータ処理装置。 - 請求項1に記載のデータ処理装置であって、
前記第1メモリは、前記第2処理演算部で実行する前記プログラムに必要な処理データ及び係数をさらに保持し、
前記第1処理演算部は、分割した前記プログラムを前記第2メモリに転送する際に、当該分割した前記プログラムに必要な前記処理データ及び前記係数のみを前記第2メモリに転送するように前記転送手段を制御することを特徴とするデータ処理装置。 - 請求項2に記載のデータ処理装置であって、
前記第1処理演算部は、前記第2処理演算部での一連の分割した前記プログラムの実行過程において、前記第2メモリに転送した前記処理データ及び前記係数のうち、所定の前記処理データ及び/又は前記係数を、一旦前記第1メモリに転送し、それが必要な所定の分割した前記プログラムを前記第2処理演算部が実行する際に再度前記第2メモリに転送するように前記転送手段を制御することを特徴とするデータ処理装置。 - 請求項1乃至請求項3のいずれか1つに記載のデータ処理装置であって、
分割する前記所定のメモリサイズは、固定値であることを特徴とするデータ処理装置。 - 請求項1乃至請求項3のいずれか1つに記載のデータ処理装置であって、
分割する前記所定のメモリサイズは、前記第2処理演算部での処理方法に基づき決定される可変値であることを特徴とするデータ処理装置。 - 請求項2乃至請求項5のいずれか1つに記載のデータ処理装置であって、
前記第2処理演算部での処理状況を前記第1処理演算部に通知する通知手段をさらに備えることを特徴とするデータ処理装置。 - 請求項6に記載のデータ処理装置であって、
前記通知手段は、前記第2処理演算部で処理中の分割した前記プログラム、次処理で用いる分割した前記プログラム、及び次処理で用いる分割した前記プログラムに使用する前記係数を前記処理状況として前記第1処理演算部に通知することを特徴とするデータ処理装置。 - 請求項1乃至請求項7のいずれか1つに記載のデータ処理装置であって、
複数の領域に分けられた前記第2メモリの各領域毎に、前記第1処理演算部又は前記第2処理演算部からのアクセスを選択する選択手段と、
前記第1処理演算部又は前記第2処理演算部の指示に基づき、前記選択手段を制御する制御手段とをさらに備えることを特徴とするデータ処理装置。 - 請求項8に記載のデータ処理装置であって、
前記第2処理演算部の指示に基づき、前記第2メモリの所定の領域に前記第1処理演算部からのアクセスを禁止するように、前記選択手段を設定する禁止手段をさらに備えることを特徴とするデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006136016A JP2007310436A (ja) | 2006-05-16 | 2006-05-16 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006136016A JP2007310436A (ja) | 2006-05-16 | 2006-05-16 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007310436A true JP2007310436A (ja) | 2007-11-29 |
Family
ID=38843261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006136016A Pending JP2007310436A (ja) | 2006-05-16 | 2006-05-16 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007310436A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011527465A (ja) * | 2008-06-30 | 2011-10-27 | モミニス リミテッド | コンピュータアプリケーションの生成・配布方法 |
-
2006
- 2006-05-16 JP JP2006136016A patent/JP2007310436A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011527465A (ja) * | 2008-06-30 | 2011-10-27 | モミニス リミテッド | コンピュータアプリケーションの生成・配布方法 |
US8584114B2 (en) | 2008-06-30 | 2013-11-12 | Mo'minis Ltd | Method of generating and distributing a computer application |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5835793A (en) | Device and method for extracting a bit field from a stream of data | |
US7240120B2 (en) | Universal decoder for use in a network media player | |
JP4410768B2 (ja) | マルチスレッドプロセッサを有するリアルタイム制御装置 | |
JP2003510682A5 (ja) | ||
US6272615B1 (en) | Data processing device with an indexed immediate addressing mode | |
JP2008065441A (ja) | デバッグシステム及びデバッグ回路 | |
JP4279317B2 (ja) | データ処理方法及びデータ処理装置 | |
US7598891B2 (en) | Data development device and data development method | |
US6775757B1 (en) | Multi-component processor | |
JP3488160B2 (ja) | 命令セットの拡張を通じて、risc実行可能コードを圧縮する方法及びシステム | |
US8688947B1 (en) | Aligned data access | |
US20070079109A1 (en) | Simulation apparatus and simulation method | |
JP2007310436A (ja) | データ処理装置 | |
US6230278B1 (en) | Microprocessor with functional units that can be selectively coupled | |
US6742083B1 (en) | Method and apparatus for multi-part processing of program code by a single processor | |
US7100017B2 (en) | Method and apparatus for performing distributed processing of program code | |
US6738884B1 (en) | Method and apparatus for processing data with semaphores | |
JP2008059638A (ja) | 音楽再生装置および音楽再生端末 | |
JP4655545B2 (ja) | メモリーカード及び再生装置 | |
JP2006331391A (ja) | データ処理装置及びデータ処理方法 | |
JP2002297198A (ja) | オーディオ復号装置 | |
KR100955122B1 (ko) | 집적 회로 장치 및 오디오 처리 장치 | |
JP2008139360A (ja) | オーディオ再生装置 | |
JP2008071054A (ja) | データ転送制御方法、データ処理装置及び画像処理装置 | |
JP2000235494A (ja) | ディジタル信号処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080611 |