(57)【要約】【課題】データの圧縮処理と暗号化処理とを並列に実行する場合の効率向上を図る。【解決手段】複数のアクセラレータコア（５７，５８）における第１アクセラレータコア（５８）のプログラムを暗号化処理用に再構成して圧縮後のデータの暗号化処理を行う。このとき、１フレーム分のデータの圧縮処理に要する時間と、上記第１アクセラレータコアのプログラム書換え時間、及び蓄積された圧縮後のデータの暗号化処理を上記第１アクセラレータコアで実施するのに要する時間の合計時間とがほぼ等しくなるように管理する。この管理は複数の汎用プロセッサ（５１，５２）における第１汎用プロセッサ（５２）によって行う。ハードウェアが演算を実行しない無駄な時間を低減することによって、データの圧縮処理と暗号化処理とを並列に実行する場合の効率向上を図る。【選択図】図５
2008186345.tif 000002
【特許請求の範囲】
【請求項１】
複数の汎用プロセッサと、それぞれプログラム可能な複数のアクセラレータコアとを用いてデータの圧縮処理を並列実行するデータ処理方法であって、
上記複数のアクセラレータコアにおける第１アクセラレータコアのプログラムを暗号化処理用に再構成して圧縮後のデータの暗号化処理を行う際に、１フレーム分のデータの圧縮処理に要する時間と、上記第１アクセラレータコアのプログラム書換え時間、及び蓄積された圧縮後のデータの暗号化処理を上記第１アクセラレータコアで実施するのに要する時間の合計時間とがほぼ等しくなるように、上記複数の汎用プロセッサにおける第１汎用プロセッサによって圧縮後のデータ量を管理することを特徴とするデータ処理方法。
【請求項２】
複数の汎用プロセッサを用いて、データの圧縮処理と圧縮後のデータの暗号化処理を実行する際に、上記汎用プロセッサで１フレーム分のデータの圧縮処理に要する時間と、蓄積された圧縮後のデータの暗号化処理を上記複数の汎用プロセッサにおける第１汎用プロセッサで実施するのに要する時間とがほぼ等しくなるように、上記第１汎用プロセッサによって圧縮後のデータ量を管理することを特徴とするデータ処理方法。
【請求項３】
上記圧縮後のデータ量の管理は、１フレームのデータ量が個々の汎用プロセッサで計算された後に、上記第１汎用プロセッサ以外の汎用プロセッサそれぞれのフレームのデータ量を上記第１汎用プロセッサの内蔵メモリへ転送させ、そのデータ量の合計値を上記第１汎用プロセッサに計算させる処理を含む請求項１又は２記載のデータ処理方法。
【請求項４】
上記圧縮後のデータ量の管理は、上記圧縮後のデータ量の管理は、１フレームのが個々の汎用プロセッサで計算された後に、上記汎用プロセッサそれぞれのフレームのデータ量を、上記複数のプロセッサによって共有される共有メモリへ転送させ、そのデータ量の合計値を上記第１汎用プロセッサに計算させる処理を含む請求項１又は２記載のデータ処理方法。
【請求項５】
上記圧縮後のデータ量の管理は、１フレームのデータ量が個々の汎用プロセッサで計算された後に、上記汎用プロセッサそれぞれのフレームのデータ量を、上記複数のプロセッサが形成されたチップ外に配置された外部メモリへ転送させ、そのデータ量の合計値を上記第１汎用プロセッサに計算させる処理を含む請求項１又は２記載のデータ処理方法。
【請求項６】
複数の汎用プロセッサと、それぞれプログラム可能な複数のアクセラレータコアとを含むデータ処理装置であって、
上記複数のアクセラレータコアは、暗号化処理用に再構成されて圧縮後のデータの暗号化処理を実行可能にプログラムが書き換えられる第１アクセラレータコアを含み、
複数の汎用プロセッサは、上記第１アクセラレータコアのプログラムを暗号化処理用に再構成して圧縮後のデータの暗号化処理が行われる際に、１フレーム分のデータの圧縮処理に要する時間と、上記第１アクセラレータコアのプログラム書換え時間、及び蓄積された圧縮後のデータの暗号化処理を上記第１アクセラレータコアで実施するのに要する時間の合計時間とがほぼ等しくなるように、圧縮後のデータ量を管理するための第１汎用プロセッサを含んで成ることを特徴とするデータ処理装置。
【請求項７】
上記第１アクセラレータコアは、その論理機能を定義する構成情報を含む制御情報に基づいて上記第１アクセラレータコアの内部状態の管理及び状態遷移制御を可能とする状態遷移管理部と、
上記構成情報の格納と転送を可能とする構成情報管理部と、を含み、
上記構成情報管理部と上記状態遷移管理部とを用いて上記第１アクセラレータコアのプログラムを暗号化処理用に再構成して圧縮後のデータの暗号化処理を可能とする請求項６記載のデータ処理装置。
【請求項８】
上記第１汎用プロセッサは、１フレームのデータ量が個々の汎用プロセッサで計算された後に、上記第１汎用プロセッサ以外の汎用プロセッサそれぞれのフレームのデータ量が転送される内蔵メモリを含み、上記内蔵メモリ内のデータ量の合計値を計算する請求項６記載のデータ処理装置。
【請求項９】
１フレームのデータ量が個々の汎用プロセッサで計算された後に、上記汎用プロセッサそれぞれのフレームの音声データ量が転送される共有メモリを含み、上記第１汎用プロセッサは、上記共有メモリ内の音声データ量の合計値を計算する請求項６記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理技術に関し、例えば音声データの圧縮処理、及び圧縮後音声データの暗号化処理を可能とするデータ処理装置に適用して有効な技術に関する。
【背景技術】
【０００２】
従来、音声データの圧縮処理、及び、圧縮後音声データの暗号化処理を高速に実施する技術として、専用ハードウェアを用いた高速化技術（例えば特許文献１及び特許文献２参照）や、エンコードタスクの優先度決定技術（例えば特許文献３参照）が知られている。
【０００３】
近年のデジタル技術の進歩により、映像データや音楽データをデジタルデータとして圧縮保存することで、記録媒体の経年変化によるデータの劣化を気にすることなく、高精細な映像や音声を楽しむことができるようになっている。特に、音楽データの圧縮方式として従来用いられていたＭＰ３（ＭＰＥＧ  Ａｕｄｉｏ  Ｌａｙｅｒ−３）よりも、高音質、高圧縮率を実現するＭＰＥＧ−２  ＡＡＣ（ＭＰＥＧ−２  Ａｕｄｉｏ  Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ）（以下では、単純にＡＡＣと表記する）が普及し、自動車のナビゲーションや、携帯電話などで高音質な音楽を楽しむことが可能になっている。
【０００４】
デジタル技術では、著作権保護が重要となる。音楽データがデジタルデータとして保存されている場合、そのデータをコピーすることで同一の音楽を劣化なく容易に複製することが可能になってしまう。そのような事態を防ぐため、圧縮処理された音楽データには、特定の音楽再生機器でしか再生できないように暗号化処理が実施される。このように、今後のマルチメディアアプリケーションにおいては、ＡＡＣでの音声データ圧縮処理だけでなく、圧縮後音声データの暗号化処理を含めた高速化が重要な課題となっている。
【０００５】
このような課題に対して、従来のカーナビゲーションや携帯電話向けシステムＬＳＩを始めとしたＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−Ｃｈｉｐ）では、汎用プロセッサに専用ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）を組み合わせることにより処理の高速化を実現していた（特許文献１及び特許文献２参照）。これらの技術では、圧縮処理を実施する専用ＤＳＰと、暗号化処理を実施する専用回路と、全体を制御する汎用プロセッサを組み合わせることで、圧縮処理と暗号化処理がシーケンシャルに実施されている。
【０００６】
また、近年のＳｏＣでは複数の汎用プロセッサと、複数のプログラム可能なアクセラレータコア（例えば特許文献４参照）を搭載することが普通になってきている。
【０００７】
【特許文献１】特開２００４−１７２７７５号公報
【特許文献２】特開２００４−１９９７８５号公報
【特許文献３】特開２００５−３１６７１６号公報
【特許文献４】特開２００６−２８７６７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記のように、近年のＳｏＣでは複数の汎用プロセッサと、複数のプログラム可能なアクセラレータコアを搭載することが普通になってきている。そのため、それらのハードウェアリソースを有効活用するためには前述のＡＡＣ音声圧縮処理と暗号化処理を並列に実施する手法が必須となる。
【０００９】
そこで本願発明者は、複数の汎用プロセッサと、複数のプログラム可能なアクセラレータコアを用いて、音声データのＡＡＣ圧縮処理と圧縮後音声データの暗号化処理を並列に実行する手法を検討した。前述の２つの処理を高速に実行するためには、ハードウェアが演算を実行しない無駄な時間を減らす必要がある。ところが、音声データの圧縮処理はフレームと呼ばれる単位で実行されるが、限られたデータ量を効率良く用いてＡＡＣ圧縮処理を実行するために、フレーム毎に異なるビットレートを適用する可変ビットレート（Ｖａｒｉａｂｌｅ  Ｂｉｔ  Ｒａｔｅ）方式が用いられることが多い。そのため、圧縮処理後の１フレームに割当てられるデータ量は、要求される音質、ソースとなる音楽データに大きく依存してしまう。従って、予め決められたフレーム数ごとに圧縮後音声データの暗号化処理を実行すると暗号化処理に要する時間が大きく変化してしまい、ハードウェアの動作に無駄が生じてしまう。
【００１０】
本発明の目的は、データの圧縮処理と暗号化処理とを並列に実行する場合の効率向上を図ることにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１３】
すなわち、複数のアクセラレータコアにおける第１アクセラレータコアのプログラムを暗号化処理用に再構成して圧縮後のデータの暗号化処理を行う際に、１フレーム分のデータの圧縮処理に要する時間と、上記第１アクセラレータコアのプログラム書換え時間、及び蓄積された圧縮後のデータの暗号化処理を上記第１アクセラレータコアで実施するのに要する時間の合計時間とがほぼ等しくなるように、第１汎用プロセッサによって圧縮後のデータ量を管理するものである。このような管理により、ハードウェアが演算を実行しない無駄な時間を低減する。
【発明の効果】
【００１４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１５】
すなわち、音声データの圧縮処理と暗号化処理とを並列に実行する場合の効率向上を図ることができる。
【発明を実施するための最良の形態】
【００１６】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１７】
〔１〕本発明の代表的な実施の形態に係るデータ処理方法は、複数のアクセラレータコア（５７，５８）における第１アクセラレータコア（５８）のプログラムを暗号化処理用に再構成して圧縮後のデータの暗号化処理を行う際に、１フレーム分のデータの圧縮処理に要する時間と、上記第１アクセラレータコアのプログラム書換え時間、及び蓄積された圧縮後のデータの暗号化処理を上記第１アクセラレータコアで実施するのに要する時間の合計時間とがほぼ等しくなるように、複数の汎用プロセッサ（５１，５２）における第１汎用プロセッサ（５２）によって圧縮後のデータ量を管理するものである。
【００１８】
上記圧縮後のデータ量が一定値を超えた時点で第１アクセラレータコアのプログラムを書き換えて暗号化処理を実行する。このとき、他のアクセラレータコアでは次フレームの圧縮処理が行われる。上記圧縮後のデータ量が一定値以下の場合には上記第１アクセラレータコアは暗号化処理を終了し、再び圧縮処理用のプログラムに書き換えられる。
【００１９】
上記の構成によれば、１フレーム分のデータの圧縮処理に要する時間と、上記第１アクセラレータコアのプログラム書換え時間、及び蓄積された圧縮後のデータの暗号化処理を上記第１アクセラレータコアで実施するのに要する時間の合計時間とがほぼ等しくされる。それによって、ハードウェアが演算を実行しない無駄な時間を低減することができるので、データの圧縮処理と暗号化処理とを並列に実行する場合の効率向上を図ることができる。
【００２０】
〔２〕また、複数の汎用プロセッサを用いて、データの圧縮処理と圧縮後のデータの暗号化処理を実行する際に、上記汎用プロセッサで１フレーム分のデータの圧縮処理に要する時間と、蓄積された圧縮後のデータの暗号化処理を上記複数の汎用プロセッサにおける第１汎用プロセッサで実施するのに要する時間とがほぼ等しくなるように、上記第１汎用プロセッサによって圧縮後のデータ量を管理する。この場合においても、ハードウェアが演算を実行しない無駄な時間を低減することができるので、データの圧縮処理と暗号化処理とを並列に実行する場合の効率向上を図ることができる。
【００２１】
〔３〕上記圧縮後のデータ量の管理には、１フレームのデータ量が個々の汎用プロセッサで計算された後に、上記第１汎用プロセッサ以外の汎用プロセッサそれぞれのフレームのデータ量を上記第１汎用プロセッサの内蔵メモリ（５２１）へ転送させ、そのデータ量の合計値を上記第１汎用プロセッサ（５１）に計算させる処理を含めることができる。
【００２２】
〔４〕上記圧縮後のデータ量の管理には、１フレームが個々の汎用プロセッサで計算された後に、上記汎用プロセッサそれぞれのフレームのデータ量を、上記複数のプロセッサによって共有される共有メモリ（５３）へ転送させ、そのデータ量の合計値を上記第１汎用プロセッサ（５１）に計算させる処理を含めることができる。
【００２３】
〔５〕上記圧縮後のデータ量の管理には、１フレームのデータ量が個々の汎用プロセッサで計算された後に、上記汎用プロセッサそれぞれのフレームのデータ量を、上記複数のプロセッサが形成されたチップ外に配置された外部メモリ（５４）へ転送させ、そのデータ量の合計値を上記第１汎用プロセッサ（５１）に計算させる処理を含めることができる。
【００２４】
〔６〕本発明の代表的な実施の形態に係るデータ処理装置（５０）は、複数の汎用プロセッサ（５１，５２）と、それぞれプログラム可能な複数のアクセラレータコア（５７，５８）とを含む。そして、上記複数のアクセラレータコアは、暗号化処理用に再構成されて圧縮後のデータの暗号化処理を実行可能にプログラムが書き換えられる第１アクセラレータコア（５８）を含み、複数の汎用プロセッサは、上記第１アクセラレータコアのプログラムを暗号化処理用に再構成して圧縮後のデータの暗号化処理が行われる際に、１フレーム分のデータの圧縮処理に要する時間と、上記第１アクセラレータコアのプログラム書換え時間、及び蓄積された圧縮後のデータの暗号化処理を上記第１アクセラレータコアで実施するのに要する時間の合計時間とがほぼ等しくなるように、圧縮後のデータ量を管理するための第１汎用プロセッサ（５２）を含む。
【００２５】
上記の構成によれば、１フレーム分のデータの圧縮処理に要する時間と、上記第１アクセラレータコアのプログラム書換え時間、及び蓄積された圧縮後のデータの暗号化処理を上記第１アクセラレータコアで実施するのに要する時間の合計時間とがほぼ等しくされる。それによって、ハードウェアが演算を実行しない無駄な時間を低減することができるので、データの圧縮処理と暗号化処理とを並列に実行する場合の効率向上を図ることができる。
【００２６】
〔７〕上記第１アクセラレータコアは、その論理機能を定義する構成情報を含む制御情報に基づいて上記第１アクセラレータコアの内部状態の管理及び状態遷移制御を可能とする状態遷移管理部（６０１）と、上記構成情報の格納と転送を可能とする構成情報管理部（６０２）とを含んで構成することができる。その場合に、上記構成情報管理部と上記状態遷移管理部とを用いて上記第１アクセラレータコアのプログラムを暗号化処理用に再構成して圧縮後のデータの暗号化処理を行う。
【００２７】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２８】
尚、実施の形態を説明するための全図において同一の部材には原則として同一の符号を付すことにより、その説明を省略する。
【００２９】
図５には、本発明にかかるデータ処理装置の一例とされるＳｏＣ（System On a Chip）の構成例が示される。
【００３０】
図５に示されるＳｏＣ５０は、システムバスによって外部メモリ（ＭＥＭ）５４に結合される。ＳｏＣ５０は、特に制限されないが、複数のＩＰ（Intellectual Property）を含み、公知の半導体集積回路製造技術により、シリコン基板などの一つの半導体基板に形成される。上記複数のＩＰには、特に制限されないが、汎用プロセッサ（ＣＰＵ）５１，５２、アクセラレータコア（ＰＧＡＣＣ）５７，５８、データ転送モジュール（ＤＭＡＣ）５５、共有メモリ（ＭＥＭ）５３、メモリコントローラ（ＭＥＭＣＴＬ）５６が含まれる。上記汎用プロセッサ５１，５２には、それぞれメモリ（ＭＥＭ）５１１，５１２が内蔵されている。そして上記複数のＩＰは、バスＢＵＳ５を介して互いにデータのやり取り可能に結合されている。汎用プロセッサ５１，５２間では、フレーム圧縮後データの通信や、データ量管理が行われる。フレーム圧縮後のデータの格納先としては、各汎用プロセッサ５１，５２に内蔵されるメモリ５１１，５２１や、共有メモリ５３、外部メモリ５４が挙げられる。上記アクセラレータコア５７，５８は、予め設定されたプログラムに従って動的に再構成が可能であり、動的再構成可能プロセッサとも称される。共有メモリ（ＭＥＭ）５３，５４は構成情報記憶領域を含む。汎用プロセッサ５１は、共有メモリ５３，５４に格納されたＣＰＵ命令を順次実行するとともに、アクセラレータコア５７の論理機能を定義する構成情報を含む制御情報及び演算データの転送制御を行う。
【００３１】
図６には、アクセラレータコア（ＰＧＡＣＣ）５７の構成例が示される。
【００３２】
アクセラレータコア５７は、特に制限されないが、状態遷移管理部（ＳＴＣＴＬ）６０１、構成情報管理部（ＣＯＭＰＣＴＬ）６０２、演算部（ＯＰ）６０４、データメモリ制御部（ＭＥＭＣＴＬ）６０６、データメモリ（ＤＭＥＭ）６０８を含んで構成される。状態遷移管理部（６０１）は外部バスＢＵＳ５、構成情報管理部６０２、演算部６０４及びデータメモリ制御部６０６に接続される。構成情報管理部６０２は、演算部６０４及びデータメモリ制御部６０６に接続される。演算部６０４は、データメモリ制御部６０６に接続される。データメモリ制御部６０６は、データメモリ６０８に接続されている。
【００３３】
状態遷移管理部６０１は、前記制御情報に基づき、アクセラレータコア５７の内部状態の管理や状態遷移制御を行う。構成情報管理部６０２は、構成情報バッファ（ＢＵＦＦ）６０３を含み、構成情報の格納と、演算部６０４及びデータメモリ制御部６０６への構成情報の転送制御を行う。演算部６０４は、構成情報レジスタ（ＲＥＧ）６０５を含む複数の演算器から成り、入力された構成情報の格納及びデコードを行い、演算を実行する。データメモリ制御部６０６は、構成情報レジスタ６０７を含む複数のデータメモリ制御ブロックから成り、入力された構成情報の格納及びデコードを行い、データメモリ６０８へのメモリアクセスを行う。
【００３４】
上記の構成において、演算部６０４は、構成情報管理部６０２から入力された書き込み要求、書き込み先レジスタ情報などに基づき、構成情報レジスタ６０５の該当バンクへ構成情報を格納する。さらに、状態遷移管理部６０１から入力された状態遷移要求に基づき、構成情報レジスタ６０５の該当バンクから構成情報を読み出し、そのデコード結果に基づいて、演算の種類、データメモリ制御部６０６との入出力の接続を決定する。構成情報レジスタ６０５は、構成情報バッファ６０３よりも小容量のレジスタとされ、高速アクセスが可能であり、高速な状態遷移に対応できる。また、構成情報レジスタ６０５は、複数バンク構成とされることで、前記構成情報の転送において、書き込み先バンクと、読み出し元バンクに異なるバンクを指定することができる。それによって、構成情報管理部６０２から構成情報を書き込みながら、命令を読み出してデコードでき、演算部６０４を効率的に利用できる。データメモリ制御部６０６は、構成情報管理部６０２から入力された書き込み要求、書き込み先のレジスタ、書き込み先のバンク番号、構成情報に基づき、構成情報レジスタ６０７の該当バンクへ構成情報を格納する。さらに、状態遷移管理部６０１から入力された状態遷移要求、バンク番号に基づき、構成情報レジスタ６０７の該当バンクから構成情報を読み出し、上記データメモリ制御部６０６の構成を動的に変更する。
【００３５】
図１には、音声データのＡＣＣ圧縮処理と、圧縮後音声データの暗号化処理との並列処理の基本的な同期ポイントが示される。この図１では、ＳｏＣ上の主なＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）の処理内容がブロックで示され、同期のための制御信号が実線矢印で示され、代表的な処理に要する時間が破線矢印で示される。ＩＰとしては、共有メモリ（ＭＥＭ）５３、汎用プロセッサ（ＣＰＵ）５１，５２、プログラム可能なアクセラレータコア（ＰＧＡＣＣ）５７，５８を含む。処理には、フレームデータ送受信処理ＴＲＡＮ＿ＲＥＣ−ＤＡＴＡ１、フレーム圧縮処理ＥＮＣ１１Ａ〜ＥＮＣ１７Ｂ、圧縮済みフレームデータ送信処理ＴＲＡＮ−ＥＮＣＤＡＴＡ１１〜ＴＲＡＮ−ＥＮＣＤＡＴＡ１６、圧縮済みデータ受信処理ＲＥＣ−ＥＮＣＤＡＴＡ１１〜ＲＥＣ−ＥＮＣＤＡＴＡ１６、プログラム書換え処理ＲＥＣＯＮＦ１、ＲＥＣＯＮＦ２、暗号化処理ＣＲＹＰＴ１１―１４、データ量管理処理ＭＤ１０〜ＭＤ１７が含まれる。
【００３６】
尚、データの授受など細かい信号は省略してある。ここでは便宜的に、アクセラレータコア（ＰＧＡＣＣ）５７と汎用プロセッサ（ＣＰＵ）５１のペアで、先のフレームデータの圧縮処理を実施し、アクセラレータコア（ＰＧＡＣＣ）５８と汎用プロセッサ（ＣＰＵ）５２のペアで後のフレームデータの圧縮処理を実施するとして説明するが、フレームデータの順番は逆でも良いし、また、フレーム毎に変えても良い。
【００３７】
次に、各ＩＰでの処理の流れについて説明する。
【００３８】
まず、音声データの１フレーム目のデータが共有メモリ（ＭＥＭ）５３からアクセラレータコア（ＰＧＡＣＣ）５７へ転送され、２フレーム目のデータが共有メモリ（ＭＥＭ）５３からアクセラレータコア（ＰＧＡＣＣ）５８へ転送される。次に、１フレーム目の圧縮処理が汎用プロセッサ（ＣＰＵ）５１とアクセラレータコア（ＰＧＡＣＣ）５７をペアにして実施され、２フレーム目の圧縮処理が汎用プロセッサ（ＣＰＵ）５２とアクセラレータコア（ＰＧＡＣＣ）５８をペアにして実施される。１フレーム目の圧縮処理のうち、汎用プロセッサ（ＣＰＵ）５１で処理する部分がＥＮＣ１１Ａで、アクセラレータコア（ＰＧＡＣＣ）５７で処理する部分がＥＮＣ１１Ｂであり、２フレーム目の圧縮処理のうち、汎用プロセッサ（ＣＰＵ）５２で処理する部分がＥＮＣ１２Ａで、アクセラレータコア（ＰＧＡＣＣ）５８で処理する部分がＥＮＣ１２Ｂである。
【００３９】
汎用プロセッサ（ＣＰＵ）５１は１フレーム目の圧縮後フレームデータ量が確定した時点で、そのデータ量を汎用プロセッサ（ＣＰＵ）５２へ通知する（ＭＤ１１）。一方で、汎用プロセッサ（ＣＰＵ）５２も２フレーム目の圧縮後フレームデータ量が確定した時点で、そのデータ量を汎用プロセッサ（ＣＰＵ）５１へ通知する（ＭＤ１２）。この時点でお互いの汎用プロセッサは、圧縮後フレームデータ量が一定値を越えているかどうか判定し、３フレーム目の圧縮処理と並行して暗号化処理を実施するかどうか、つまりアクセラレータコア（ＰＧＡＣＣ）５８のプログラムを書換えるかどうかを決定する。ここでは、蓄積された圧縮後フレームデータ量が一定値を越えていないと想定しているため、３フレーム目の圧縮処理は汎用プロセッサ（ＣＰＵ）５１とアクセラレータコア（ＰＧＡＣＣ）５７で、４フレーム目の圧縮処理は汎用プロセッサ（ＣＰＵ）５２とアクセラレータコア（ＰＧＡＣＣ）５８で実施すると決定される。この後、各々のアクセラレータコア（ＰＧＡＣＣ）５７とＰＧＡＣＣ１２で次フレームの処理が始まる前に、共有メモリ（ＭＥＭ）５３は必要なフレームデータをそれぞれのアクセラレータコアへ転送しておく。その間、汎用プロセッサ（ＣＰＵ）５１は１フレーム目の圧縮処理終了後に、その圧縮済みフレームデータの汎用プロセッサ（ＣＰＵ）５２への送信処理ＴＲＡＮ−ＥＮＣＤＡＴＡ１１を実施し、その一方で３フレーム目のフレーム圧縮処理ＥＮＣ１３Ａ、ＥＮＣ１３Ｂを、汎用プロセッサ（ＣＰＵ）５１とアクセラレータコア（ＰＧＡＣＣ）５７で開始する。一方、汎用プロセッサ（ＣＰＵ）５２は２フレーム目の圧縮処理終了後に、１フレーム目の圧縮済みフレームデータの汎用プロセッサ（ＣＰＵ）５１からの受信処理ＲＥＣ−ＥＮＣＤＡＴＡ１１を実施し、その間に４フレーム目のフレーム圧縮処理ＥＮＣ１４Ａ、ＥＮＣ１４Ｂを、汎用プロセッサ（ＣＰＵ）５２とアクセラレータコア（ＰＧＡＣＣ）５８で開始する。
【００４０】
次に、汎用プロセッサ（ＣＰＵ）５１は３フレーム目の圧縮後のフレームデータ量が確定した時点で、その圧縮後フレームデータ量を汎用プロセッサ（ＣＰＵ）５２へ通知する（ＭＤ１３）。一方で、汎用プロセッサ（ＣＰＵ）５２も４フレーム目の圧縮後フレームデータ量が確定した時点で、そのデータ量を汎用プロセッサ（ＣＰＵ）５１へ通知する（ＭＤ１４）。この時点で先程と同様に、お互いの汎用プロセッサは、圧縮後フレームデータ量が一定値を越えているかどうか判定し、アクセラレータコア（ＰＧＡＣＣ）５８のプログラムを書換えるかどうかを決定する。ここでは、蓄積された圧縮後フレームデータ量が一定値を越えていたと想定しているため、５フレーム目の圧縮処理だけが汎用プロセッサ（ＣＰＵ）５１とアクセラレータコア（ＰＧＡＣＣ）５７で実施すると決定される。その一方で、アクセラレータコア（ＰＧＡＣＣ）５８では暗号化処理ＣＲＹＰＴ１１―１４の実施が決定されるので、アクセラレータコア（ＰＧＡＣＣ）５８では暗号化処理用へのプログラムの書換えＲＥＣＯＮＦ１が開始される。この後、アクセラレータコア（ＰＧＡＣＣ）５７で次フレームの処理が始まる前に、共有メモリ（ＭＥＭ）５３は必要なフレームデータをアクセラレータコア（ＰＧＡＣＣ）５７へ転送しておく。その間、汎用プロセッサ（ＣＰＵ）５１は３フレーム目の圧縮処理終了後に、そのデータの汎用プロセッサ（ＣＰＵ）５２への送信処理ＴＲＡＮ−ＥＮＣＤＡＴＡ１３を実施し、その間に５フレーム目のフレーム圧縮処理ＥＮＣ１５Ａ、ＥＮＣ１５Ｂを、汎用プロセッサ（ＣＰＵ）５１とアクセラレータコア（ＰＧＡＣＣ）５７で開始する。一方、汎用プロセッサ（ＣＰＵ）５２は４フレーム目の圧縮処理終了後に、３フレーム目の圧縮後のデータの汎用プロセッサ（ＣＰＵ）５１からの受信処理ＲＥＣ−ＥＮＣＤＡＴＡ１３を実施し、アクセラレータコア（ＰＧＡＣＣ）５８のプログラムの書換え完了後に、蓄積された１〜４フレーム目の圧縮後データのアクセラレータコア（ＰＧＡＣＣ）５８への転送処理ＴＲＡＮ−ＥＮＣＤＡＴＡ１１―１４を開始する。
【００４１】
次に、汎用プロセッサ（ＣＰＵ）５１は５フレーム目の圧縮後フレームデータ量が確定した時点で、そのデータ量を汎用プロセッサ（ＣＰＵ）５２へ通知する（ＭＤ１５）。汎用プロセッサ（ＣＰＵ）５２は、そのデータ量の通知信号を受信する一方で（ＭＤ１０）、蓄積された圧縮後データが一定値以下となるまでアクセラレータコア（ＰＧＡＣＣ）５８への転送処理ＴＲＡＮ−ＥＮＣＤＡＴＡ１１―１４を続行する。ここで、蓄積された圧縮後データが一定値以下となるまで転送処理を実行するようにしているのは、一般に、暗号化のデータ量に一定の単位が存在するためである。汎用プロセッサ（ＣＰＵ）５２は、蓄積された圧縮後データが一定値以下となったら、圧縮後データの転送を終了し、アクセラレータコア（ＰＧＡＣＣ）５８のプログラムの圧縮処理用への書換えＲＥＣＯＮＦ２を開始する。この場合は自動的に、６フレーム目の圧縮処理は汎用プロセッサ（ＣＰＵ）５１とアクセラレータコア（ＰＧＡＣＣ）５７で、７フレーム目の圧縮処理は汎用プロセッサ（ＣＰＵ）５２とアクセラレータコア（ＰＧＡＣＣ）５８で実施すると決定される。この後、各々のアクセラレータコア（ＰＧＡＣＣ）５７、ＰＧＡＣ１２で次フレームの処理が始まる前に、共有メモリ（ＭＥＭ）５３は必要なフレームデータをそれぞれのアクセラレータコア（ＰＧＡＣＣ）５７、ＰＧＡＣ１２へ転送しておく。その間、汎用プロセッサ（ＣＰＵ）５１は５フレーム目の圧縮処理終了後に、そのデータの汎用プロセッサ（ＣＰＵ）５２への送信処理ＴＲＡＮ−ＥＮＣＤＡＴＡ１５を実施し、その間に６フレーム目のフレーム圧縮処理ＥＮＣ１６Ａ、ＥＮＣ１６Ｂを、汎用プロセッサ（ＣＰＵ）５１とアクセラレータコア（ＰＧＡＣＣ）５７で開始する。一方、汎用プロセッサ（ＣＰＵ）５２は圧縮処理用へのプログラムの書換えと、５フレーム目の圧縮後のデータの汎用プロセッサ（ＣＰＵ）５１からの受信処理ＲＥＣ−ＥＮＣＤＡＴＡ１５が完了後に、７フレーム目のフレーム圧縮処理ＥＮＣ１７Ａ、ＥＮＣ１７Ｂを汎用プロセッサ（ＣＰＵ）５２とアクセラレータコア（ＰＧＡＣＣ）５８で開始する。以降のフレームの圧縮処理もこの繰り返しとなる。
【００４２】
以上述べてきたような並列処理方式では、フレームデータの圧縮処理時間に圧縮後フレームデータの送信処理時間を加えた時間Ｔ−ＥＮＣ１と、暗号化処理ＣＲＹＰＴ１１―１４に要する時間にアクセラレータコアのプログラム書換え時間ＲＥＣＯＮＦ１、ＲＥＣＯＮＦ２を加えた時間Ｔ−ＣＲＹＰＴ１がほぼ等しくなるように蓄積される圧縮後データ量を管理することで、各ＩＰを効率良く動作させることができ、それによって高速な処理が実行可能となる。
【００４３】
尚、図１に示される例では、２つの汎用プロセッサと、２つのアクセラレータコアを用いたが、それぞれ３つ以上の汎用プロセッサとアクセラレータコアを用いて並列処理を実行しても良い。その場合は、並列処理を実施する全ての汎用プロセッサ間で、圧縮後フレームデータ量を通知し合い、圧縮後フレームデータの蓄積量が一定値を超えた時点で１つのアクセラレータコアのプログラムを暗号化用に書換えて暗号化処理を実行すれば良い。その際に、１フレームの圧縮処理に要する時間と、アクセラレータコアのプログラム書換えに要する時間、及び蓄積された圧縮後フレームデータの暗号化処理に要する時間の合計時間がほぼ等しくなるようにするのは、２つの汎用プロセッサと２つのアクセラレータコアを用いた並列処理の場合と同様である。
【００４４】
図２には、図１の並列処理方式のフレームデータの圧縮処理が具体的に示される。
【００４５】
図２を用て、フレーム圧縮処理のうちアクセラレータコア（ＰＧＡＣＣ）５７，５８に割り当てる処理内容と、圧縮後フレームデータ量管理処理について詳しく述べる。
【００４６】
１フレーム分の圧縮処理は、アクセラレータコアＰＧＡＣＣと汎用プロセッサＣＰＵを１つのペアとして並列に実施される。ここでは便宜的に、アクセラレータコア（ＰＧＡＣＣ）５７と汎用プロセッサ（ＣＰＵ）５１のペアで、先のフレームデータの圧縮処理を実施し、アクセラレータコア（ＰＧＡＣＣ）５８と汎用プロセッサ（ＣＰＵ）５２のペアで後のフレームデータの圧縮処理を実施するものとする。尚、フレームデータの順番は逆でも良いし、また、フレーム毎に変えても良い。ここでは、アクセラレータコア（ＰＧＡＣＣ）５７に１フレーム目のデータが読み込まれ、アクセラレータコア（ＰＧＡＣＣ）５８に２フレーム目のデータが読み込まれるとする。
【００４７】
ＡＡＣなどに代表される１フレーム分の圧縮処理では、一般的にフレームデータ読込み処理（２１１、２４１）、フーリエ変換処理（２１２、２４２）、量子化処理（２１３、２４３）、符号化処理（２２３、２３４）、ビットレート判定処理（２２４、２３５）、パラメータ調整処理（２２５、２３６）、及びデータ量決定処理（２２６、２３７）が実施される。そして本例では、汎用プロセッサとアクセラレータコアを用いて、それらの圧縮処理を並列に実行し、さらに暗号化処理を効率よく実行するために、データ量管理（２２１、２３１）、圧縮後データ送信（２２２）、圧縮後データ受信（２３２）、圧縮後データの蓄積量判定処理（２３３）、暗号化用プログラム書換え処理（２４４）、圧縮後データ送信処理（２３８）、暗号化処理（２４５）、圧縮後データの残存量判定処理（２３９）、及び圧縮用プログラム書換え処理（２４６）が実施される。
【００４８】
上記処理の中で、フーリエ変換処理（２１２、２４２）、量子化処理（２１３、２４３）、符号化処理（２２３、２３４）、暗号化処理（２４５）の負荷が高いが、フーリエ変換処理（２１２、２４２）、量子化処理（２１３、２４３）、及び暗号化処理（２４５）は、アクセラレータコアを用いて比較的容易に高速化可能なので、アクセラレータコア（ＰＧＡＣＣ）５７，５８で処理すると効率が良い。一方の汎用プロセッサ（ＣＰＵ）５１，５２では、それ以外の簡単な処理とアクセラレータコア（ＰＧＡＣＣ）５７，５８の制御を実施する。尚、汎用プロセッサ（ＣＰＵ）で行う処理と，アクセラレータコアで行う処理の分担はこの限りでなく、各処理の負荷、ＩＰの処理能力により適宜変更しても良い。さらにアクセラレータコア（ＰＧＡＣＣ）５７，５８を制御する汎用プロセッサは汎用プロセッサ（ＣＰＵ）５１，５２以外であっても良い。
【００４９】
まず、アクセラレータコア（ＰＧＡＣＣ）５７と汎用プロセッサ（ＣＰＵ）５１ペアの動作から説明する。アクセラレータコア（ＰＧＡＣＣ）５７で１フレーム目のデータの読込み（２１１）、フーリエ変換（２１２）、量子化（２１３）が順に実施された後、汎用プロセッサで符号化など（２２３）が実施される。この結果を受けて、ビットレート値判定（２２４）が実施され、要求値以下でなければパラメータ調整（２２５）が実施され、アクセラレータコア（ＰＧＡＣＣ）５７で量子化（２１３）以降の処理が再度実行される。一方、ビットレート値判定（２２４）で要求値以下となった場合は、フレームデータ圧縮後のデータ量が決定され（２２６）、そのデータ量を汎用プロセッサ（ＣＰＵ）５２と通信し合うことでフレームデータ圧縮後のデータ量を管理し、次に処理するフレームを決定する（２２１）。このとき、データ量の格納先は、汎用プロセッサ（ＣＰＵ）５１，５２、いずれかの内蔵メモリ５１１であっても良いし、バスに接続される共有メモリ５３であっても良いし、チップ外部で接続されるメモリ５４であっても良い。ここでは、アクセラレータコア（ＰＧＡＣＣ）５８と汎用プロセッサ（ＣＰＵ）５２のペアで２フレーム目を処理しているので、次は３フレーム目のデータを処理することになる。その後、１フレーム目の圧縮後データを送信する（２２２）。このとき、データの格納先は、汎用プロセッサ（ＣＰＵ）５１，５２、いずれかの内蔵メモリであっても良いし、バスに接続される共有メモリであっても良いし、チップ外部で接続されるメモリであっても良い。以降は、上記処理が繰り返される。
【００５０】
次に、アクセラレータコア（ＰＧＡＣＣ）５８と汎用プロセッサ（ＣＰＵ）５２ペアの動作を説明する。アクセラレータコア（ＰＧＡＣＣ）５８で２フレーム目のデータの読込み（２４１）、フーリエ変換（２４２）、量子化（２４３）、符号化など（２３４）、ビットレート値判定（２３５）、パラメータ調整（２３６）の実行順序はアクセラレータコア（ＰＧＡＣＣ）５７、汎用プロセッサ（ＣＰＵ）５２のペアと同一である。ここでその結果が要求ビットレート以下に収まっていた場合は、フレームデータ圧縮後のデータ量が決定され（２３７）、そのデータ量を汎用プロセッサ（ＣＰＵ）５１と通信し合うことでフレームデータ圧縮後のデータ量を管理し（２３１）、１フレーム目の圧縮後データが汎用プロセッサ（ＣＰＵ）５１から、汎用プロセッサ（ＣＰＵ）５２に内蔵されるメモリ５２１、あるいは、バスに接続される共有メモリ５３、あるいは、チップ外部のメモリ５４に転送される（２３２）。このとき、圧縮後のデータの蓄積量が指定値以下であれば、４フレーム目のデータが読み込み込まれて圧縮処理が開始される（２４１、２４２、２４３…）。一方、圧縮後のデータの蓄積量が指定値を越えた場合は、アクセラレータコア（ＰＧＡＣＣ）５８のプログラムが暗号化処理用に書換えられ（２４４）、汎用プロセッサ（ＣＰＵ）５２に蓄積された圧縮後のデータをアクセラレータコア（ＰＧＡＣＣ）５８へ暗号化するデータ単位で送信し（２３８）、アクセラレータコア（ＰＧＡＣＣ）５８で逐次暗号化を実行する（２４５）。その間、圧縮後データの残存量が暗号化単位以下になったか判断し（２３９）、暗号化単位以下となった場合はアクセラレータコア（ＰＧＡＣＣ）５８のプログラムを圧縮処理用に書換える（２４６）。この暗号化用のプログラム書換え（２４４）以降の処理を実施している時間で、アクセラレータコア（ＰＧＡＣＣ）５７と汎用プロセッサ（ＣＰＵ）５１のペアでは次フレームの圧縮処理が完了しているので、その圧縮後データのデータ量を受信し、暗号化で残存した圧縮後データ量と合わせて新たな圧縮処理後のデータの蓄積量として管理する（２３１）。以降、上記と同様の処理が繰り返される。
【００５１】
上記例によれば、以下の作用効果を得ることができる。
【００５２】
フレーム単位の音声データの圧縮処理に要する時間と、プログラム可能なアクセラレータコアのプログラム書換え時間、及び、圧縮済み音声データの暗号化処理に要する時間の合計時間をほぼ等しくするため、蓄積された圧縮済みのデータ量を管理し、暗号化処理用にアクセラレータコアのプログラムを書換えるタイミングが制御される。このように蓄積された圧縮済みのデータ量を管理することで、予め決められたフレーム数ごとに暗号化処理を実施するよりもハードウェアを効率的に動作させることができる。搭載される汎用プロセッサやプログラム可能なアクセラレータコアの個数が増えるほど、この性能向上は顕著となる。
【００５３】
次に、別の処理例について説明する。
【００５４】
ＳｏＣ上に複数の汎用プロセッサさえあれば、アクセラレータコアを用いなくても高速な並列処理が可能となる。図３には、その場合の並列処理例が示される。尚、図３において、ＳｏＣ上の主なＩＰの処理内容をブロックで示し、同期するための制御信号を矢印で示し、代表的な処理に要する時間を点線の矢印で示している。
【００５５】
図３に示される並列処理では、図５及び図６に示される共有メモリ（ＭＥＭ）５３、汎用プロセッサ（ＣＰＵ）５１，５２が使用され、アクセラレータコア５７，５８は使用されない。
【００５６】
処理内容は、フレームデータ送受信処理ＴＲＡＮ＿ＲＥＣ−ＤＡＴＡ３、フレーム圧縮処理ＥＮＣ３１〜ＥＮＣ３７、圧縮済みフレームデータ送信処理ＴＲＡＮ−ＥＮＣＤＡＴＡ３１〜ＴＲＡＮ−ＥＮＣＤＡＴＡ３６、圧縮済みデータ受信処理ＲＥＣ−ＥＮＣＤＡＴＡ３１〜ＲＥＣ−ＥＮＣＤＡＴＡ３６、暗号化処理ＣＲＹＰＴ３１―３４から構成される。汎用プロセッサ（ＣＰＵ）５１，５２で実施される圧縮処理中には、データ量管理処理ＭＡＮ−ＤＡＴＡが含まれる。なお、データの授受など細かい信号は省略してある。ここでは便宜的に、アクセラレータコアＰＧＡＣＣ３１と汎用プロセッサ（ＣＰＵ）５１のペアで、先のフレームデータの圧縮処理を実施し、アクセラレータコアＰＧＡＣＣ３２と汎用プロセッサ（ＣＰＵ）５２のペアで後のフレームデータの圧縮処理を実施するとして説明するが、フレームデータの順番は逆でも良いし、また、フレーム毎に変えても良い。
【００５７】
次に、各ＩＰでの処理の流れを説明する。
【００５８】
まず、音声データの１フレーム目のデータが共有メモリ（ＭＥＭ）５３から汎用プロセッサ３１へ転送され、２フレーム目のデータが共有メモリ（ＭＥＭ）５３から汎用プロセッサ３２へ転送される。次に、１フレーム目のフレーム圧縮処理ＥＮＣ３１が汎用プロセッサ（ＣＰＵ）５１で実施され、２フレーム目のフレーム圧縮処理ＥＮＣ３２が汎用プロセッサ（ＣＰＵ）５２で実施される。
【００５９】
汎用プロセッサ（ＣＰＵ）５１は１フレーム目の圧縮後フレームデータ量が確定した時点で、そのデータ量を汎用プロセッサ（ＣＰＵ）５２へ通知する（ＥＮＣ３１内のＭＡＮ−ＤＡＴＡ）。一方で、汎用プロセッサ（ＣＰＵ）５２も２フレーム目の圧縮後フレームデータ量が確定した時点で、そのデータ量を汎用プロセッサ（ＣＰＵ）５１へ通知する（ＥＮＣ３２内のＭＡＮ−ＤＡＴＡ）。この時点でお互いの汎用プロセッサは、蓄積された圧縮後フレームデータ量が一定値を越えているかどうか判定し、３フレーム目の圧縮処理と並行して汎用プロセッサ（ＣＰＵ）５２で暗号化処理を実施するかどうか決定する。ここでは、圧縮後フレームデータ量が一定値を越えていないと想定しているため、３フレーム目のフレーム圧縮処理ＥＮＣ３３は汎用プロセッサ（ＣＰＵ）５１で、４フレーム目のフレーム圧縮処理ＥＮＣ３４は汎用プロセッサ（ＣＰＵ）５２で実施すると決定される。この後、各々の汎用プロセッサ（ＣＰＵ）５１，５２で次フレームの処理が始まる前に、共有メモリ（ＭＥＭ）５３は必要なフレームデータをそれぞれの汎用プロセッサへ転送しておく。その間、汎用プロセッサ（ＣＰＵ）５１は１フレーム目の圧縮処理終了後に、そのデータの汎用プロセッサ（ＣＰＵ）５２への送信処理ＴＲＡＮ−ＥＮＣＤＡＴＡ３１を実施し、その終了後に３フレーム目のフレーム圧縮処理ＥＮＣ３３を汎用プロセッサ（ＣＰＵ）５１で開始する。一方、汎用プロセッサ（ＣＰＵ）５２は２フレーム目の圧縮処理終了後に、１フレーム目の圧縮後のデータの汎用プロセッサ（ＣＰＵ）５１からの受信処理ＲＥＣ−ＥＮＣＤＡＴＡ３１を実施し、その終了後に４フレーム目のフレーム圧縮処理ＥＮＣ３４を汎用プロセッサ（ＣＰＵ）５２開始する。
【００６０】
次に、汎用プロセッサ（ＣＰＵ）５１は３フレーム目の圧縮後フレームデータ量が確定した時点で、そのデータ量を汎用プロセッサ（ＣＰＵ）５２へ通知する（ＥＮＣ３３内のＭＡＮ−ＤＡＴＡ）。一方で、汎用プロセッサ（ＣＰＵ）５２も４フレーム目の圧縮後フレームデータ量が確定した時点で、そのデータ量を汎用プロセッサ（ＣＰＵ）５１へ通知する（ＥＮＣ３４内のＭＡＮ−ＤＡＴＡ）。この時点で先程と同様に、お互いの汎用プロセッサは、圧縮後フレームデータ量が一定値を越えているかどうか判定し、５フレーム目のフレーム圧縮処理ＥＮＣ３５と並行して汎用プロセッサ（ＣＰＵ）５２で暗号化処理を実施するかどうかを決定する。ここでは、蓄積された圧縮後フレームデータ量が一定値を越えていたと想定しているため、５フレーム目のフレーム圧縮処理ＥＮＣ３５は汎用プロセッサ（ＣＰＵ）５１で実施すると決定される。その一方で、汎用プロセッサ（ＣＰＵ）５２では暗号化処理ＣＲＹＰＴ３１―３４の実施が決定される。この後、汎用プロセッサ（ＣＰＵ）５１で次フレームの処理が始まる前に、共有メモリ（ＭＥＭ）５３は必要なフレームデータを汎用プロセッサ３１へ転送しておく。その間、汎用プロセッサ（ＣＰＵ）５１は３フレーム目のフレーム圧縮処理ＥＮＣ３３の終了後に、そのデータの汎用プロセッサ（ＣＰＵ）５２への送信処理ＴＲＡＮ−ＥＮＣＤＡＴＡ３３を実施し、その終了後に５フレーム目のフレーム圧縮処理ＥＮＣ３５を汎用プロセッサ（ＣＰＵ）５１で開始する。一方、汎用プロセッサ（ＣＰＵ）５２は４フレーム目のフレーム圧縮処理ＥＮＣ３４終了後に、３フレーム目の圧縮後のデータの汎用プロセッサ（ＣＰＵ）５１からの受信処理ＲＥＣ−ＥＮＣＤＡＴＡ３３を実施後に、蓄積された１〜４フレーム目の圧縮後データの暗号化処理ＣＲＹＰＴ３１―３４を開始する。
【００６１】
次に、汎用プロセッサ（ＣＰＵ）５１は５フレーム目の圧縮後フレームデータ量が確定した時点で、そのデータ量を汎用プロセッサ（ＣＰＵ）５２へ通知する（ＥＮＣ３５内のＭＡＮ−ＤＡＴＡ）。汎用プロセッサ（ＣＰＵ）５２は、そのデータ量の通知信号を受信する一方で（ＣＲＹＰＴ３１−３４内のＭＡＮ−ＤＡＴＡ）、蓄積された圧縮後データが一定値以下となるまで暗号化処理ＣＲＹＰＴ３１―３４を続行する。ここで、蓄積された圧縮後データが一定値以下とならないようにしているのは、一般に、暗号化時には対象データの最小単位が存在するためである。汎用プロセッサ（ＣＰＵ）５２は、蓄積された圧縮後データが一定値以下となったら暗号化処理を終了する。この場合は自動的に、６フレーム目の圧縮処理は汎用プロセッサ（ＣＰＵ）５１で、７フレーム目の圧縮処理は汎用プロセッサ（ＣＰＵ）５２で実施すると決定される。この後、各々の汎用プロセッサ（ＣＰＵ）５１，５２で次フレームの処理が始まる前に、共有メモリ（ＭＥＭ）５３は必要なフレームデータをそれぞれの汎用ＣＰＵ３１、ＣＰＵ３２へ転送しておく。その間、汎用プロセッサ（ＣＰＵ）５１は５フレーム目の圧縮処理終了後に、そのデータの汎用プロセッサ（ＣＰＵ）５２への送信処理ＴＲＡＮ−ＥＮＣＤＡＴＡ３５を実施し、その終了後に６フレーム目のフレーム圧縮処理ＥＮＣ３６を汎用プロセッサ（ＣＰＵ）５１で開始する。一方、汎用プロセッサ（ＣＰＵ）５２は暗号化処理ＣＲＹＰＴ３１―３４と、５フレーム目の圧縮後のデータの汎用プロセッサ（ＣＰＵ）５１からの受信処理ＲＥＣ−ＥＮＣＤＡＴＡ３５が完了後に、７フレーム目のフレーム圧縮処理ＥＮＣ３７を汎用プロセッサ（ＣＰＵ）５２で開始する。以降のフレームの圧縮処理もこの繰り返しとなる。
【００６２】
以上述べてきたような並列処理方式にでは、フレームデータの圧縮処理時間Ｔ−ＥＮＣ３と、暗号化処理ＣＲＹＰＴ３１―３４に要する時間Ｔ−ＣＲＹＰＴ３がほぼ等しくなるように蓄積される圧縮後データ量を管理することで、各ＩＰが効率的に使用されることにより高速な処理が実行可能となる。
【００６３】
フレームデータの圧縮処理の１フレーム分の詳細フローチャートは、図２においてアクセラレータコア（ＰＧＡＣＣ）５７で実施している処理も汎用プロセッサ（ＣＰＵ）５１で処理し、アクセラレータコア（ＰＧＡＣＣ）５８で実施している処理も汎用プロセッサ（ＣＰＵ）５２で処理した場合に相当する。
【００６４】
尚、図３の例では２つの汎用プロセッサを用いたが、３つ以上の汎用プロセッサを用いて並列処理を実行しても良い。このとき、並列処理を実施する全ての汎用プロセッサ間で、圧縮後フレームデータ量を通知し合い、圧縮後フレームデータの蓄積量が一定値を超えた時点で１つ、またはそれ以上の汎用プロセッサで暗号化処理を実行すれば良い。この場合はアクセラレータコアのプログラムを書換える必要がないため、１フレームの圧縮処理に要する時間と、蓄積された圧縮後フレームデータの暗号化処理に要する時間とがほぼ等しくなるようにすれば良い。
【００６５】
図４には、図３の並列処理方式のフレームデータの圧縮処理が具体的に示される。この図を用いて、フレーム圧縮処理と圧縮後フレームデータ量管理処理について詳しく述べる。フレームの圧縮処理に用いるＩＰとしては、汎用プロセッサ（ＣＰＵ）５１，５２である。ここでは便宜的に、汎用プロセッサ（ＣＰＵ）５１で、先のフレームデータの圧縮処理を実施し、汎用プロセッサ（ＣＰＵ）５２で後のフレームデータの圧縮処理を実施するとして説明するが、フレームデータの順番は逆でも良いし、また、フレーム毎に変えても良い。ここでは、汎用プロセッサ（ＣＰＵ）５１に１フレーム目のデータが読み込まれ、汎用プロセッサ（ＣＰＵ）５２に２フレーム目のデータが読み込まれるものとする。
【００６６】
先ず、汎用プロセッサ（ＣＰＵ）５１の動作から説明する。汎用プロセッサ（ＣＰＵ）５１で１フレーム目のデータの読込み（４１０３）、フーリエ変換（４１０３）、量子化（４１０５）が順に実施された後、符号化処理など（４１０６）が実施される。この結果を受けて、ビットレート値判定（４１０７）が実施され、要求値以下でなければパラメータ調整（４１０８）が実施され、引き続き汎用プロセッサ（ＣＰＵ）５１で量子化（４１０５）以降の処理が再度実行される。一方、ビットレート値判定（４１０７）で要求値以下となった場合は、フレームデータ圧縮後のデータ量が決定され（４１０９）、そのデータ量を汎用プロセッサ（ＣＰＵ）５２と通信し合うことで、フレームデータ圧縮後のデータ量が管理され、次に処理するフレームのビットレート量が決定される（４１０１）。このとき、データ量の格納先は、汎用プロセッサ（ＣＰＵ）５１，５２、いずれかの内蔵メモリ５１１，５２１であっても良いし、バスに接続される共有メモリ５３であっても良いし、チップ外部で接続されるメモリ５４であっても良い。ここでは、汎用プロセッサ（ＣＰＵ）５２で２フレーム目を処理しているので、汎用プロセッサ（ＣＰＵ）５１は次に３フレーム目のデータを処理することになる。その後、汎用プロセッサ（ＣＰＵ）５１は１フレーム目の圧縮後データを送信する（４１０２）。このとき、データ量の格納先は、汎用プロセッサ（ＣＰＵ）５１，５２、いずれかの内蔵メモリ５１１，５２１であっても良いし、バスに接続される共有メモリ５３であっても良いし、チップ外部で接続されるメモリ５４であっても良い。以降は、上記処理が繰り返される。
【００６７】
次に、汎用プロセッサ（ＣＰＵ）５２ペアの動作を説明する。汎用プロセッサ（ＣＰＵ）５２で２フレーム目のデータの読込み（４２０４）、フーリエ変換（４２０５）、量子化（４２０６）、符号化など（４２０７）、ビットレート値判定（４２０８）、パラメータ調整（４２０９）の実行順序は汎用プロセッサ（ＣＰＵ）５２と同一である。ここでその結果が要求ビットレート以下に収まっていた場合は、フレームデータ圧縮後のデータ量が決定され（４２１０）、そのデータ量を汎用プロセッサ（ＣＰＵ）５１と通信し合うことでフレームデータ圧縮後のデータ量を管理する（４２０１）。このとき、データ量の格納先は、前述のように汎用プロセッサ（ＣＰＵ）５１，５２、いずれかの内蔵メモリであっても良いし、バスに接続される共有メモリであっても良いし、チップ外部で接続されるメモリであっても良い。その後、汎用プロセッサ（ＣＰＵ）５１で生成された１フレーム目の圧縮後データの転送が終了したことを確認する（４２０２）。このとき、圧縮後のデータの蓄積量の合計値が指定値以下であれば、４フレーム目のデータを読み込み圧縮処理が開始される。一方、圧縮後のデータの蓄積量が指定値を越えた場合は、汎用プロセッサ（ＣＰＵ）５２で逐次暗号化を実行する（４２１１）。その間、圧縮後データの残存量が暗号化単位以下になったか判断し（４２１２）、暗号化単位以下となった場合は、汎用プロセッサ（ＣＰＵ）５１で次フレームの圧縮処理が終了するのを待つ。汎用プロセッサ（ＣＰＵ）５１での圧縮処理終了後にその圧縮後データのデータ量を受信し、暗号化で残存した圧縮後データ量と合わせて新たな圧縮処理後のデータの蓄積量として管理する（４２０１）。このときのデータ量の格納先は上記の場合と同様に、汎用プロセッサ（ＣＰＵ）５１，５２、いずれかの内蔵メモリ５１１，５２１であっても良いし、バスに接続される共有メモリ５３であっても良いし、チップ外部で接続されるメモリ５４であっても良い。以降、上記と同様の処理が繰り返される。
【００６８】
このように上記の例によれば、ＳｏＣ上のＩＰを効率的に用いて圧縮処理と暗号化処理、あるいは圧縮処理のみを高速に並列処理することが可能となる。そして、高速な並列処理が可能ならば、処理を完了したＩＰの電源を遮断したり、逆に動作周波数を遅くしたりすることで、要求性能を満たしながら低電力な圧縮処理と暗号化処理、あるいは圧縮処理のみを実行することができる。
【００６９】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７０】
上記の例では音声データを処理対象としたが、映像データやその他のデジタルデータを処理対象とすることができる。
【００７１】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるＳｏＣに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種データ処理装置に広く適用することができる。
【図面の簡単な説明】
【００７２】
【図１】本発明にかかるデータ処理装置の一例であるＳｏＣにおける音声データのＡＣＣ圧縮処理と、圧縮後音声データの暗号化処理との並列処理の説明図である。
【図２】図１に示される並列処理の具体的な流れを示すフローチャートである。
【図３】上記ＳｏＣにおける音声データのＡＣＣ圧縮処理と、圧縮後音声データの暗号化処理との並列処理の別の説明図である。
【図４】図３に示される並列処理の具体的な流れを示すフローチャートである。
【図５】上記ＳｏＣの全体的な構成例ブロック図である。
【図６】上記ＳｏＣに含まれるアクセラレータコアの構成例ブロック図である。
【符号の説明】
【００７３】
５０  ＳｏＣ
５１，５２  汎用プロセッサ
５３  共有メモリ
５４  外部メモリ
５１１，５２１  内蔵メモリ
５５  データ転送モジュール
５６  メモリコントローラ
５７，５８  アクセラレータコア
６０１  状態遷移管理部
６０２  構成情報管理部
６０３  構成情報バッファ
６０４  演算部
６０５  構成情報レジスタ
６０６  データメモリ制御部
６０７  構成情報レジスタ
６０８  データメモリ
【図１】
2008186345.tif 000003
【図２】
2008186345.tif 000004
【図３】
2008186345.tif 000005
【図４】
2008186345.tif 000006
【図５】
2008186345.tif 000007
【図６】
2008186345.tif 000008