(57)【要約】  【課題】  処理性能の劣化を防止しつつ回路規模の増大や消費電力の増大を防止しつつ、要求される複雑なアプリケーションに対応するデータ処理装置を提供する。  【解決手段】  所定の演算処理を行う複数の専用演算部４、５、６と、複数の専用演算部４、５、６に接続される信号線１０と、信号線１０を介して複数の専用演算部に接続される特定の処理を行う共通演算部９を有するデータ処理装置２である。共通演算部９は、複数の専用演算部４、５、６の少なくとも２以上において共通に用いられる。【選択図】  図１
2006155223.tif 000002
【特許請求の範囲】
【請求項１】
所定の演算を行う複数の専用演算部と、
前記複数の専用演算部に接続される信号線と、
前記信号線を介して前記複数の専用演算部に接続され、共通の演算処理を行う共通演算部を備えるデータ処理装置であって、
前記共通演算部は、前記複数の専用演算部の少なくとも２以上において共通に用いられるデータ処理装置。
【請求項２】
前記共通演算部が、前記複数の専用演算部の少なくとも２以上で共通に用いられる積和演算を行う少なくとも１つの共通積和演算部を備える請求項１記載のデータ処理装置。
【請求項３】
前記共通演算部が、前記複数の専用演算部で非共通に用いられる演算を行う少なくとも１つの個別演算部をさらに備える請求項２記載のデータ処理装置。
【請求項４】
前記複数の専用演算部のそれぞれが、前記共通積和演算部と前記個別演算部の組み合わされた演算結果を用いる請求項１から３のいずれか記載のデータ処理装置。
【請求項５】
前記共通演算部が前記個別演算部を複数備え、前記複数の個別演算部から前記専用演算部の要求に対応する所定の個別演算部を選択する選択部をさらに備える請求項３から４のいずれか記載のデータ処理装置。
【請求項６】
前記共通演算部が複数であるとともに、前記複数の専用演算部の個数未満である請求項１から５のいずれか記載のデータ処理装置。
【請求項７】
前記複数の専用演算部が、フィルタ処理部、直交変換処理部、動き検出部、および動き補償部の少なくとも一つである請求項１から６のいずれか記載のデータ処理装置。
【請求項８】
前記共通演算部が、前記専用演算部から独立したクロックを出力するクロック制御部をさらに備える請求項１から７のいずれか記載のデータ処理装置。
【請求項９】
前記クロック制御部は、前記共通演算部が非動作時にクロック信号を未出力とする請求項８記載のデータ処理装置。
【請求項１０】
前記複数の専用演算部の個数をＮ、前記専用演算部のクロック周波数をＦとし、前記共通演算部のクロック周波数をｆとしたときに、前記クロック周波数ｆが
ｆ＝Ｎ＊Ｆ
で定められる請求項８から９のいずれか記載のデータ処理装置。
【請求項１１】
前記共通演算部が、プログラム処理を実行するプロセッサユニットを備える請求項１記載のデータ処理装置。
【請求項１２】
前記プロセッサユニットが、前記複数の専用演算部の少なくとも２以上で共通に用いられる積和演算を実行する共通積和演算プログラムを備える請求項１１記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のデータ処理を実行する専用演算部を搭載したデータ処理装置に関する。
【背景技術】
【０００２】
従来の画像処理やデータ圧縮を行うデータ処理装置は、制御用のメインプロセッサを中心に、特定の演算処理を行う専用演算部が接続される構成を有している。この専用演算部は、それぞれ特定の演算処理を行う専用回路であったり、専用ＬＳＩやＡＳＩＣ（特定用途向けＩＣ）の一部や全部であったりする。
【０００３】
図１４は従来のデータ処理装置のブロック図である。
【０００４】
データ処理装置１００は、メインプロセッサ１０１、および複数の専用演算部１０２を備える、任意のデータ処理を行う装置である。なお、図１４では専用演算部１０２は３つ設けられている。また、メインプロセッサ１０１は必須の構成要素ではなく、複数の専用演算部１０２を制御（同期制御や命令制御など）するものであればよい。
【０００５】
また、専用演算部１０２は、それぞれ異なる演算処理を実行するものでもよく、類似ないしは同一の演算処理を実行するものでもよい。複数の専用演算部１０２が、演算量の多い処理を実行するため、消費電力の低減やリアルタイム処理を可能とする。
【０００６】
なお、データ処理装置１００は、その全てもしくは一部がＬＳＩで実現されることも多い。
【０００７】
図１４に示されるような従来のデータ処理装置の構成が、特許庁資料室ホームページの技術動向トピックス／システムＬＳＩのレイアウト／画像処理用ＬＳＩ／データ圧縮用ＬＳＩに紹介されている。
【０００８】
データ処理装置の例として、ＭＰＥＧ２やＭＰＥＧ４、ＪＰＥＧなどの符号圧縮、復号処理装置や処理ＬＳＩが挙げられる。
【０００９】
また、このようなデータ処理装置での消費電力削減のために、動作周波数制御が有効である（例えば特許文献１、特許文献２参照）。
【００１０】
また、近年は複数の画像処理フォーマットに対応した符号復号化処理の実現や、画像処理に加えた音声処理の実現なども求められている。即ち、一つのデータ処理装置やこれを実現するＬＳＩが処理するアプリケーションの量が増加傾向にある。
【００１１】
しかしながら、従来のデータ処理装置では、次のような問題点を有していた。
【００１２】
一つのデータ処理装置やこれを実現するＬＳＩが処理するアプリケーションの量の増加や複雑化に対して、低消費電力とリアルタイム性を確保するために、搭載する専用演算部１０２の個数や回路規模が増大する問題があった。回路規模の増大により、ＬＳＩで実現されている場合にはＬＳＩのチップ面積の増加が問題となっていた。あるいはコスト面でも問題であった。システムや別回路で実現されている場合であっても、同様に回路規模の増加による実装面積の増加などの問題があった。
【００１３】
また、プログラムで実現されている場合には、プログラム規模の増大に伴い、消費電力増大の問題を有していた。
【特許文献１】特開２００３−２４８５２４号公報
【特許文献２】特開平７−３３４２６７号公報
【特許文献３】特開２０００−２９８６５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
そこで本発明は、処理性能の劣化を防止しつつ、回路規模および消費電力を削減し、要求される複雑なアプリケーションに対応するデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
第１の発明のデータ処理装置は、所定の演算を行う複数の専用演算部と、複数の専用演算部に接続される信号線と、信号線を介して複数の専用演算部に接続され、共通の演算処理を行う共通演算部を備えるデータ処理装置であって、共通演算部は、複数の専用演算部の少なくとも２以上において共通に用いられる構成である。
【００１６】
複数の専用演算部で重複して設けられていた演算部が、共通演算部として専用演算部から削除されて別個設けられた上で、複数の専用演算部に共有されることで、データ処理装置の回路規模を適切に削減することができる。
【００１７】
第２の発明のデータ処理装置は、共通演算部が、複数の専用演算部の少なくとも２以上で共通に用いられる積和演算を行う少なくとも１つの共通積和演算部を備える。
【００１８】
複数の専用演算部で重複する回路規模および消費電力が共に大きな積和演算部が、共通積和演算部として専用演算部から削除されて別個設けられて共有化されることで、データ処理装置の回路規模、消費電力の削減がさらに促進される。
【００１９】
第３の発明のデータ処理装置は、共通演算部が、複数の専用演算部で非共通に用いられる演算を行う少なくとも１つの個別演算部をさらに備える。
【００２０】
複数の専用演算部で共通に用いられる演算部だけでなく、個別に用いられる演算部も共通演算部に設けることで、共通演算部での処理能力を高めて専用演算部の処理負担を軽減でき、回路規模の削減に加えて処理能力の向上も図られる。
【００２１】
第４の発明のデータ処理装置は、複数の専用演算部のそれぞれが、共通積和演算部と個別演算部の組み合わされた演算結果を用いる。
【００２２】
共通演算部の処理能力を高め、結果としてデータ処理装置全体の処理能力を向上させつつ、回路規模の適切な削減が可能となる。
【００２３】
第５の発明のデータ処理装置は、共通演算部が個別演算部を複数備え、複数の個別演算部から専用演算部の要求に対応する所定の個別演算部を選択する選択部をさらに備える。
【００２４】
個別演算部が、専用演算部の要求に適切に対応して演算を実行することで、データ処理装置全体のパフォーマンスを向上させることができる。
【００２５】
第６の発明のデータ処理装置は、共通演算部が複数であるとともに、複数の専用演算部の個数未満である。
【００２６】
専用演算部で重複する演算部を最大限に共通化することで、複雑なアプリケーションに対応する種々の専用演算部を有するデータ処理装置であっても、その回路規模の削減を実現できる。
【００２７】
第７の発明のデータ処理装置は、複数の専用演算部が、フィルタ処理部、直交変換処理部、動き検出部、および動き補償部の少なくとも一つである。
【００２８】
これらの専用演算部は、乗算器や加算器などの回路規模の大きな積和演算部を重複して有するため、共通する演算部を共有化しやすく、複雑な複数のアプリケーションに対応するデータ処理装置であっても回路規模の削減が実現される。
【００２９】
第８の発明のデータ処理装置は、共通演算部が、専用演算部とは別のクロックを出力するクロック制御部をさらに備える。
【００３０】
共通演算部が、別個独立のクロックで動作するので、複数の専用演算部を並列に動作させる場合に、共通に用いられる共通演算部を擬似的に並列に動作させることができるなど、回路共有化による処理能力の低下を防止する。
【００３１】
第９の発明のデータ処理装置は、クロック制御部は、共通演算部が非動作時にクロック信号を未出力とする。
【００３２】
共通に用いられる演算部を共有化したことで実現された消費電力削減を、さらに削減することができる。
【００３３】
第１０の発明のデータ処理装置は、複数の専用演算部の個数をＮ、専用演算部のクロック周波数をＦとし、共通演算部のクロック周波数をｆとしたときに、クロック周波数ｆがｆ＝Ｎ＊Ｆで定められる。
【００３４】
専用演算部の個数に応じて、共通演算部の処理を擬似的に並列処理と同じにでき、専用演算部の全てを同時実行させることができる。
【００３５】
第１１の発明のデータ処理装置は、共通演算部が、プログラム処理を実行するプロセッサユニットを備える。
【００３６】
複数の専用演算部で重複している演算を、別途プログラム処理するプロセッサユニットとして共有化することで、回路規模を削減するとともに、共通演算部での演算係数の変更や処理手順の変更などの事後的な変更にも対応でき、フレキシビリティが向上する。
【００３７】
第１２の発明のデータ処理装置は、プロセッサユニットが、複数の専用演算部の少なくとも２以上で共通に用いられる積和演算を実行する共通積和演算プログラムを備える。
【００３８】
乗算器や加算器などから構成される回路規模の大きな積和演算部を、共通のプログラムにより処理できるので、フレキシビリティも高く、回路規模の削減が図られる。
【発明の効果】
【００３９】
本発明によれば、複数の専用演算部が重複して有する共通の演算処理を、共通演算部として外部に共有して接続することで、回路規模、チップ面積及び実装面積を削減できる。
【００４０】
また、共有化される共通演算部が、独立したクロック制御部を有することで、処理速度の低下を防止すると共に、消費電力を削減できる。
【００４１】
更に、共通演算部をサブプロセッサなどに搭載し、ソフトウェアで実装することで、回路規模の削減のみならず、事後的な仕様変更や係数変更などに、柔軟に対応できる構成のデータ処理装置とすることができる。
【発明を実施するための最良の形態】
【００４２】
以下、図面を参照しながら、本発明の実施の形態を説明する。
【００４３】
（実施の形態１）
まず、本発明の実施の形態１におけるデータ処理装置について、従来技術からの変更点を含めて、図１（ａ）、図１（ｂ）、図２を用いて説明する。
【００４４】
図１（ａ）は、従来のデータ処理装置のブロック図であり、図１（ｂ）は本発明の実施の形態１におけるデータ処理装置のブロック図であり、図１（ａ）は、本発明の実施の形態１におけるデータ処理装置を表す図１（ｂ）との対比のために表されている。図２は、本発明の実施の形態１におけるデータ処理装置のブロック図である。
【００４５】
図１（ａ）に表される従来のデータ処理装置１は、所定の演算を行う複数の専用演算部４、５、６が、信号線８を介して接続されている。複数の専用演算部４、５、６は、それぞれ共通の演算を行う演算部７を重複して含んでいる。
【００４６】
図１（ｂ）に表されるデータ処理装置２は、所定の演算を行う複数の専用演算部４、５、６と、これらの複数の専用演算部４、５、６に接続される信号線１０と、信号線１０を介して複数の専用演算部４、５、６に接続され、共通の演算処理を行う共通演算部９を備えて構成される。共通演算部９は、複数の専用演算部４、５、６の内、少なくとも２以上において共通に用いられる。ここで、信号線８、および１０はシングルビットの信号線でもよく、マルチビットの信号線でもよいものである。
【００４７】
このように、図１（ａ）に表されるように、複数の専用演算部４、５、６で重複していた共通の演算を実行する演算部７が、各専用演算部４、５、６から括り出されて、別途共有化される共通演算部９として接続されることで、効率的に回路規模を削減できる。
【００４８】
なお、図１（ａ）、図１（ｂ）共に、信号線８を介してメインプロセッサ３が接続されているが、メインプロセッサ３は必要に応じて接続される。また、メインプロセッサ３に限らず、適宜制御回路などが接続されてもよいものである。また、専用演算部４、５、６は、図１（ａ）、図１（ｂ）においてそれぞれ３個表されているが、４以上でもよい。
【００４９】
次に、図２には３以上の専用演算部４，５、６、１２を含み、複数の共通演算部９が、信号線１０を介して接続されているデータ処理装置２が表されている。共通演算部は複数個接続されているが、共通演算部の個数は専用演算部の個数未満である。同数では、回路規模の削減にならないからである。このように、共通演算部９は単数であっても、複数であってもよい。
【００５０】
また、図２では、共通演算部９は、さらに共通積和演算部１５と個別演算部１６を含んでいる構成である。共通積和演算部１５は、複数の専用演算部の少なくとも２以上で共通する積和演算を実行する演算ブロックであり、例えば、共通する加算、乗算などを実行する。複数の専用演算部で重複している演算の中でも、加算、乗算の組み合わされる積和演算は非常に回路規模や処理規模、消費電力が大きく、別ブロックとして共有化するメリットが非常に高いからである。
【００５１】
個別演算部１６は、複数の専用演算部で非共通に用いられる演算を実行するブロックであり、必要に応じて共通演算部９に備えられる。この場合には、共通演算部９は、専用演算部の少なくとも２以上で共通に用いられる演算（例えば共通の積和演算）に加えて、個別のデータ加算やビット入れ替えなどの個別演算を実行できる。個別演算部１６をさらに含む場合であっても、個別演算部１６で必要となる回路素子（例えばフリップフロップやシフトレジスタ、加算器や乗算器など）を、共通積和演算部１５の回路素子と共有することもできるので、図１（ａ）に表されるように、それぞれの専用演算部４、５、６のみを設けるよりも回路規模を削減することができる。
【００５２】
次に、図１（ｂ）や図２に表されるデータ処理装置２により、回路規模などが削減できることについての詳細を説明する。
【００５３】
専用演算部４、５、６は、共通の演算処理を実行する演算部７を含んでいる。この演算部７は共通の演算処理を実行する。例えば、専用演算部４がＭＰＥＧ２を実行し、専用演算部５がＭＰＥＧ４を実行し、専用演算部６がＪＰＥＧを実行する場合、離散コサイン変換（以下「ＤＣＴ」という）が共通する演算である。またＤＣＴに含まれる積和演算が共通する演算となる。演算部７は、このような複数の専用演算部４〜６において共通する演算を行うブロックである。従来技術におけるデータ処理装置１では、このように共通する演算部７が、複数の専用演算部４、５、６に渡って重複して含まれていた。このため、無駄が生じ、回路規模の増大を招いていた。
【００５４】
一方、データ処理装置２では、演算部７が専用演算部４、５、６それぞれから抽出されて、バス１０を介して共通演算部９として接続されている。これにより、専用演算部４、５、６に重複して含まれていた演算部７は削除され、各々の専用演算部４、５、６の回路規模は削減されている。
【００５５】
このように、重複して設けられていた演算部７が各専用演算部４、５、６から削除され、共有される共通演算部９として接続されることで、回路規模の大幅な削減が可能となる。
【００５６】
特に、共通演算部９が、複数の専用演算部で重複していた積和演算をくくりだした共通積和演算部１５を備えることで、回路規模の削減がさらに促進されるものである。積和演算は、加算器、乗算器、レジスタなど回路規模の大きくなりやすい回路素子を多く含むからである。
【００５７】
ここで、共通演算部９はバス１０を介して接続されているので、専用演算部４〜６は、各々データをやり取りできる。即ち、共通演算部９を複数の専用演算部４、５、６は共通に使用することができる。
【００５８】
なお、上記のように共通演算部９は、各専用演算部４、５、６に共通する共通積和演算部１５を備えることが多いが、積和演算に限られるものではない。例えば特定の制御演算や、誤り訂正、誤り符号、誤り検出などの共通する演算部を備えるものであっても良い。
【００５９】
また、全ての専用演算部に共通している演算部であることが好ましいが、複数の専用演算部の２以上に共通する演算部であっても良いものである。同様に、回路規模の削減を実現できるからである。
【００６０】
更に、共通演算部は、共通積和演算部１５と個別演算部１６両方を含むものであってもよい。共通積和演算部１５と親和性の高い演算部が、個別演算部１６として共通演算部９に含まれることで処理性能低下を防止できるからである。さらに、個別演算部１６が、共通積和演算部１５と回路素子を共有することで、回路規模も削減可能である。
【００６１】
次に、図３（ａ）、図３（ｂ）を用いて、共通演算部９の他のバリエーションについて説明する。図３（ａ）、図３（ｂ）は本発明の実施の形態１における共通演算部の内部ブロック図である。
【００６２】
図３（ａ）には、共通積和演算部１５と個別演算部１６、および選択部１７により構成された共通演算部９が表されている。
【００６３】
選択部１７は、動作を行っている専用演算部４、５、６に対応する個別演算部１６を選択する。これにより、複数の個別演算部１６の内、必要なものが選択され、専用演算部４、５、６での処理動作が実現される。ここで、選択部１７は、専用演算部４〜６からの制御信号などを基準に対応する個別演算部１６を選択する。更に、このとき、共通積和演算部１５も必要に応じて動作し、選択された個別演算部１６と組み合わされた結果が専用演算部４、５、６に出力される。
【００６４】
以上の動作により、専用演算部４、５、６で必要となる演算結果が、共通演算部９により得られる。
【００６５】
また、図３（ｂ）に表されるように、個別演算部１６ではなく、共通積和演算制御部１８を設けてもよい。
【００６６】
共通積和演算制御部１８は、専用演算部４、５、６で共通する積和演算部での処理動作が、完全同一でない場合に用いられる。例えば、専用演算部４で必要とする積和演算は、乗算が３回まででよいのに対して、専用演算部５で必要とする積和演算は乗算が５回必要である場合である。即ち、同じ乗算器という回路要素を共有するが、その処理結果の要求が異なる場合である。
【００６７】
このような場合には、共通積和演算制御部１８が、共通積和演算部１５での積和演算を、対応する専用演算部の要求に従った制御を行う。上記の例では、共通積和演算制御部１８は、専用演算部４の場合には、共通積和演算部５での乗算を３回で終了するように制御して結果を選択部１７から出力する。専用演算部５の場合には、共通積和演算制御部１８は、共通積和演算部１５での乗算を５回で終了するように制御する。
【００６８】
以上のように、共通積和演算制御部１８は、専用演算部の相違する演算要求に対応した制御を行う。
【００６９】
次に、図４（ａ）、図４（ｂ）を用いて、専用演算部が特定の処理を行う具体的な事例について、従来からの変化を含めて説明する。図４（ａ）は、従来のデータ処理装置のブロック図であり、図４（ｂ）は本発明の実施の形態１におけるデータ処理装置のブロック図である。ここでは、本発明のデータ処理装置２の特徴とメリットを効果的に説明するために、従来技術のデータ処理装置１も並べて表示したものである。
【００７０】
図４では、二つの専用演算部が、それぞれフィルタ処理部２０と直交変換部２１である場合が示されている。
【００７１】
なお、これ以外でも画像圧縮などで用いられる動き検出部、動き補償部などであっても良い。これら、フィルタ処理部２０や直交変換部２１などは、処理が複雑であるため回路規模が非常に大きいのに対して、乗算や加算といった積和演算や、ビットシフトやビット入れ替えなどの共通する演算を重複して含むことが多い。このため、重複する無駄な演算回路が存在し、回路規模を増大させやすい。
【００７２】
例えば、図４（ａ）に表されるように、フィルタ処理部２０も直交変換部２１も共通する積和演算部２２を含んでいる。この積和演算部２２は、フィルタ処理部でのデータ処理に必要な積和演算を実行する、あるいは、直交変換部でのデータ処理に必要な積和演算を実行する。
【００７３】
更に、積和演算部２２は、積和にかかわる係数などに差異があっても、基本的には同等の演算処理を実行するものである。結果として、フィルタ処理部２０、直交変換部２１が回路やＬＳＩで実現されている場合には、回路規模の増大と、チップ面積の増加を招くものである。
【００７４】
このため、データ処理装置２のように、積和演算部２２は、共通演算部９に備えられることが好ましい。このように共有化されることで、回路規模が削減される。
【００７５】
共通演算部９は、重複していた積和演算部２２に相当する共通積和演算部２４と制御部２３を有している。制御部２３は、共通積和演算部２４を、フィルタ処理部２０と直交変換部２１に対応するように制御する。これにより、フィルタ処理部２０及び直交変換部２１に最適な積和演算を、共通積和演算部２４が実現することができる。
【００７６】
例えば、制御部２３は、積和演算に用いる係数をそれぞれで変えたり、積和順序の組換えを行ったりする。
【００７７】
以上のように、フィルタ処理部２０や直交変換部２１、あるいは動き検出部や画像処理、音声処理などを実行する専用演算部に、重複して含まれていた演算部を、共通演算部９として、信号線１０を介して接続することで、重複回路を削減し、回路規模の削減や実装面積の削減、コストの削減を実現できるものである。
【００７８】
なお、共通演算部９はハードウェアによる回路で実現されても良く、ＬＳＩの一部として実現されても良く、単体のＬＳＩで個別に実現されても良く、あるいはソフトウェアとして実現されても良いものである。
【００７９】
回路やＬＳＩなどのハードウェアで実現された場合には、回路規模の削減が実現でき、ソフトウェアで実現された場合には、消費電力の削減やメモリの削減などが実現できる。
【００８０】
また、フィルタ処理部２０などは複数でも良いものであり、共通演算部９が複数であってもよい。
【００８１】
次に、図５、図６を用いて図４に表されているフィルタ処理部２０、および直交変換部２１の動作と、これに対応する共通演算部９での動作をあわせて説明する。回路規模を削減するために共通積和演算部２４を含む共通演算部９が、適切に動作して処理が実行されることが理解される。
【００８２】
図５、図６はそれぞれ本発明の実施の形態１におけるデータ処理装置の動作フローチャートである。
【００８３】
まず、図５を用いてフィルタ処理部２０と共通積和演算部２４との動作を説明する。
【００８４】
まず、ステップ１にて、フィルタ処理部２０ならびに直交変換部２１は、起動後の処理に入る。次に、ステップ２にて、データ処理装置２は積和演算ステージに入る。ここで、フィルタ処理部２０は積和演算ステージ（ステップ２）に入ると、ステップ３にて、共通積和演算部２４に対して使用要求を出力する。ステップ３による使用要求が出力されると、ステップ４にて、積和演算状態が継続する。この積和演算状態は、ステップ５にて、共通積和演算部２４が終了通知を出力するまで継続する。
【００８５】
ステップ４の積和演算状態では、フィルタ処理部２０は、共通積和演算部２４に、必要なデータを出力して積和演算を実行させる。具体的にはデータに所定の係数を乗じ、乗算結果を加算するなどの積和処理が実行される。
【００８６】
積和演算が終了すると、ステップ５にて、共通積和演算部２４は終了通知をフィルタ処理部２０に出力する。ステップ６にて、終了通知を受け取ったフィルタ処理部２０は、次の処理へ移行する。これにより、フィルタ処理部２０の所定の処理動作が終了する。
【００８７】
次に図６を用いて、共通積和演算部２４の動作について説明する。
【００８８】
共通演算部９に含まれる制御部２３は、フィルタ処理部２０や直交変換部２１からの、共通積和演算処理部２４に対する使用要求に対する制御を行う。
【００８９】
制御は、ステップ１１によるキューイング処理と、ステップ１２による共通積和演算部２４の処理に分けられる。
【００９０】
ステップ１１によるキューイング処理を説明する。
【００９１】
まず、ステップ１３にて、フィルタ処理部２０もしくは直交変換部２１が使用要求を出力する。次に、ステップ１４にて、フィルタ処理部２０または直交変換部２１からの使用要求を要求キューにキューイングする。このキューイングにより、使用要求信号がストックされる。
【００９２】
次に、ステップ１２による共通積和演算部２４の処理を説明する。
【００９３】
まず、ステップ１５にて、制御部２３は要求キューにキューイングされている使用要求を取り出す。次いで、ステップ１６にて、制御部２３は要求キューに使用要求が存在することを確認する。使用要求が存在する場合には、ステップ１７にて、制御部２３は共通積和演算部を使用状態とする。
【００９４】
次に、ステップ１８にて、制御部２３は共通積和演算が終了したことを確認する。ステップ１８での共通積和演算の終了確認により、ステップ１９にて、制御部２３はフィルタ処理部２０または直交変換部２１に対して終了通知を出力する。
【００９５】
なお、ここで、ステップ１１によるキューイング処理と、ステップ１２による共通積和演算部処理は並列して行われる。
【００９６】
以上のように、重複して設けられていた演算部７を、外部に共通演算部９として接続して共有することで、回路規模が削減されると共に、動作上においても、上記に説明したフローで実行されるので、性能の劣化などは生じない。
【００９７】
また、図１などでは回路やＬＳＩなどのハードウェアでの実現の場合について説明したが、一部、もしくは全部がソフトウェアの場合でも同様である。特に、共通演算部９がソフトウェアで実現される場合は、プログラムの圧縮と、これに伴うメモリの削減、消費電力の低減が実現される。
【００９８】
図７を用いて、プロセッサユニットを用いてソフトウェア処理する場合について説明する。図７は、本発明の実施の形態１におけるデータ処理装置のブロック図である。
【００９９】
図７には、共通演算がソフトウェアで実現された構成が示されている。
【０１００】
従来のデータ処理装置では、複数の専用演算部３０は、複数の専用演算部３０に重複する積和演算３１と、個別演算３２、３３を含んでいた。
【０１０１】
図７に表される本発明のデータ処理装置２は、これらの重複する積和演算３１と、個別演算３２、３３を、プロセッサユニット３４にソフトウェアプログラムとして格納している。さらに、プロセッサユニット３４は信号線１０を介して、複数の専用演算部３０と接続されている。
【０１０２】
各専用演算部３０で重複していた積和演算３１や個別演算３２、３３を回路ではなく、ソフトウェアプログラムとしてプロセッサユニット３４に設けられることで、回路規模の削減を実現できるものである。さらに、回路として共通化する場合に比べて、係数の変更や処理手順の変更などの事後的な変更にフレキシブルに対応できるメリットもある。
【０１０３】
また、プロセッサユニット３４で共通化されたプログラムが、もともと各専用演算部３０にて重複していたプログラムである場合には、プログラム規模の削減に加えて、消費電力も削減できるメリットがある。
【０１０４】
以上より、ハードウェアの場合と同様、プログラム規模の縮小と消費電力の削減、コストの削減などが実現される。
【０１０５】
なお、動作については、図５、図６を用いて説明した場合と同様である。
【０１０６】
また、共通演算部９として共有化される回路やプログラムは、積和演算のみならず、乗算器や加算器、あるいは、ある程度まとまった処理を行う演算部などであっても良いものである。
【０１０７】
以上の構成により、演算処理上のデメリットを来たさず、回路規模やプログラム規模を、効率的に削減して、ＬＳＩのチップ面積の低減や、回路面積の削減、消費電力の削減が実現される。
【０１０８】
（実施の形態２）
実施の形態２では、クロック制御が共通演算部９に独立に含まれる場合について説明する。
【０１０９】
まず、図８を用いて本発明の実施の形態２におけるデータ処理装置の構成について説明する。図８は、本発明の実施の形態２におけるデータ処理装置のブロック図である。
【０１１０】
図８に表されるデータ処理装置２では、共通演算部９が専用演算部であるフィルタ処理部２０や直交変換部２１で用いられるクロックとは別のクロックを出力するクロック制御部４０をさらに備えている。
【０１１１】
クロック制御部４０は、専用演算部とは独立したクロック信号を共通演算部９に出力する。制御部２３や共通積和演算部２４は、クロック制御部４０から出力されるクロック信号を用いる。
【０１１２】
ここで、フィルタ処理部２０と直交変換部２１を並列動作させたい場合がある。このような場合にフィルタ処理部２０と直交変換部２１におけるクロック周波数と共通演算部９におけるクロック周波数が同一であると、並列動作させることができない。共通演算部９は、フィルタ処理部２０と直交変換部２１に共有化されているためである。即ち、回路規模削減のために、共有化されたことで、フィルタ処理部２０などの専用演算部は、各々の内部に共通の演算部を有していないため、各専用演算部は共通の演算を同時動作できず並列動作ができない。
【０１１３】
一方、フィルタ処理部２０、直交変換部２１の大部分は、メインプロセッサ３を始めとした全体を制御する制御機構とクロックを同一にして、同期を取る必要があるため、これらの処理速度向上には限界がある。
【０１１４】
ここで、クロック制御部４０が、専用演算部など他の部分と別個独立に設けられていることで、共通演算部９の処理速度を個別に制御でき、全体としての処理速度の低下を防止しつつ、回路規模削減を実現できるものである。
【０１１５】
例えば、クロック制御部４０から出力されるクロック周波数が、専用演算部などでのクロック周波数の倍とする。この場合には、共通演算部９はフィルタ処理部２０などの倍の速度で動作する。並列処理される専用演算部が２つである場合でも、共通に使用される共通演算部９が、専用演算部の倍の速度で動作するので、２つの専用演算部は見た目上並列動作しているのと同じである。
【０１１６】
図８に表されるフィルタ処理部２０と直交変換部２１が必要とする積和演算を順次処理しても、結果的には従来と同一クロック数で全体の処理が終了する。即ち、演算部を共有化したために生じる、並列処理の困難性をカバーできる。これにより、見た目上並列処理と変わらないスピードで処理が可能となり、性能低下を防止することができる。
【０１１７】
なお、クロック制御部４０の出力するクロック周波数は、倍速のみならず、３倍速や４倍速（専用演算部の要求に合わせて）、あるいは他の種類、あるいは選択可能とすることも好適である。
【０１１８】
例えば、専用演算部の個数をN、専用演算部のクロック周波数をFとし、共通演算部のクロック周波数をｆとしたときに、クロック周波数ｆが
ｆ＝Ｎ＊Ｆ
の式で表される周波数であれば、Ｎ個の専用演算部を全て並列処理させるのと同一クロック数で処理できる。
【０１１９】
また、共通演算部９が動作しているときのみクロック制御部４０がクロック信号を出力し、非動作時にはクロック信号を未出力とすることで、消費電力の削減などを効果的に行うことができる。クロックの出力、未出力は、例えばゲーテッド・クロックを用いるなどして実現する。
【０１２０】
特に、共通演算部９に含まれる積和演算は、シフトレジスタなどのクロックを用いる順序回路を多く含むため、非動作時にクロック出力を停止することは、消費電力の削減において高い効果を有する。消費電力はクロック周波数に比例して増加するからである。
【０１２１】
次に、図９を用いて共通演算部９の動作を説明する。
【０１２２】
図９は、本発明の実施の形態２における共通演算部の動作フローチャートである。共通演算部９に含まれる制御部２３を動作の基準として説明する。また、ここでは図８に表されるようにフィルタ処理部２０と直交変換部２１を備えたデータ処理装置２として説明する。
【０１２３】
また、メインプロセッサ３、フィルタ処理部２０、直交変換部２１に供給されているクロックの動作周波数は等しいものとし、以降の説明における基準クロックとする。
【０１２４】
制御部２３は、ステップ２１によるフィルタ処理部２０などからの共通演算部使用の要求信号のキューイング処理と、ステップ２２による共通積和演算部２４の動作処理を行う。
【０１２５】
まず、ステップ２１による使用要求のキューイング処理について説明する。
【０１２６】
まず、ステップ１３にて、制御部２３はフィルタ処理部２０、または直交変換部２１が出力した使用要求を確認する。次いで、ステップ１４にて、制御部２３は確認された使用要求を要求キューにキューイングする。
【０１２７】
次に、ステップ２３にて、制御部２３はキューイングと同時にタイムカウントを開始する。タイムカウントは、フィルタ処理部２０、直交変換部２１のそれぞれの使用要求毎にカウントする。これにより、異なる専用演算部が出力した使用要求信号が、適切にキューイングされる。
【０１２８】
次に、ステップ２２における共通積和演算部２４の動作処理について説明する。
【０１２９】
まず、ステップ１５にて、制御部２３は要求キューから要求信号が取り出す。次いで、ステップ１６にて、制御部２３は要求信号の有無を確認する。ステップ２４にて、要求キューに要求信号があれば、制御部２３は要求信号に附随するタイムカウント値を調べた上で、タイムカウント値を閾値ｔｈと比較する。
【０１３０】
ステップ２５にて、タイムカウント値が閾値ｔｈ以上では、クロック制御部４０は基準クロックの倍速のクロックを出力する。一方、ステップ２６にて、タイムカウント値が閾値ｔｈ未満では、クロック制御部４０は基準クロックと同速のクロックを出力する。即ち、タイムカウント値は、同時動作する専用演算部の数を表しているので、これに対応して共通演算部９の動作速度を増減させるものである。
【０１３１】
次いで、ステップ１７にて、共通積和演算部２４が動作状態となり、積和演算が実行される。更に、ステップ１８にて、制御部２３は積和演算の終了を確認する。次に、ステップ１９にて、制御部２３は、積和演算の終了通知を専用演算部であるフィルタ処理部２０、もしくは直交変換部２１、およびクロック制御部４０に出力する。
【０１３２】
さらに、ステップ２７にて、終了通知をうけたクロック制御部４０はクロック信号の供給を停止する。これにより、動作不要の期間に於いては共通演算部９の不要な電力消費が削減される。
【０１３３】
なお、ステップ２１である使用要求に対するキューイング処理と、ステップ２２である共通積和演算部２４の動作処理（２２）は並列に実行される。
【０１３４】
以上のような処理により、共通演算となる回路やプログラムの共有化による処理速度の低下を防止できる。また、共通演算部９での動作が不要な場合にクロック信号を停止することで、消費電力の削減も可能となるものである。
【０１３５】
（実施の形態３）
実施の形態３では、更にアプリケーションの複雑化に伴い、専用演算部が複雑化した場合について説明する。
【０１３６】
まず、図１０（ａ）、図１０（ｂ）を用いて、本発明の実施の形態３におけるデータ処理装置の構成について、従来からの変化を含めて説明する。図１０（ａ）は、従来のデータ処理装置のブロック図であり、図１０（ｂ）は、本発明の実施の形態３におけるデータ処理装置のブロック図である。ここでは、本発明のデータ処理装置のメリットを説明するための対比として、従来のデータ処理装置５０を表している。
【０１３７】
従来のデータ処理装置５０は、動き検出部５２、５３、５４（図１０中では「ＭＥ」と示す）、絶対誤差合計（図１０中では「ＳＡＤ」と示す）演算器５５、フィルタ処理部２０、直交変換部２１、積和演算部２２を備える。ここで、絶対誤差合計演算器５５は動き検出部５２、５３、５４に重複して含まれ、積和演算部２２はフィルタ処理部２０と直交変換部２１に重複して含まれている。即ち、共通の動作を行うブロックが重複して設けられ、回路規模が増加しているものである。
【０１３８】
一方、実施の形態３におけるデータ処理装置５１は、動き検出部５２、５３、５４、フィルタ処理部２０、直交変換部２１、およびこれらと信号線１０を介して接続されるサブプロセッサ６０を備えている。
【０１３９】
さらにサブプロセッサ６０は、エンジンインターフェース５６（図１０中では「エンジンＩ／Ｆ」と表す）、プロセッサユニット５７（図１０中では「ＰＵ」と示す）、絶対誤差合計演算プログラム（図１０中では「ＳＡＤ演算プログラム」と表す）、積和演算プログラム５９を含んでいる。
【０１４０】
このデータ処理装置５０、５１は例えばＭＰＥＧ２とＭＰＥＧ４とＪＰＥＧの全てを一つの処理装置やＬＳＩで実現する場合などに用いられるものである。
【０１４１】
動き検出部５２、５３、５４は、ＭＰＥＧ２などの画像圧縮においてその動きベクトルを検出する。絶対誤差合計演算器５５は、動きベクトル検出での絶対誤差を演算する。積和演算部２２は、フィルタ処理などで必要となる加算や乗算などの積和演算を実行する。
【０１４２】
なお、図１０（ａ）、図１０（ｂ）では、動き検出部５２、５３、５４を３つと、一つのフィルタ処理部２０、一つの直交変換部２１が表されているが、この構成に限られるものではなく、その他のブロックが含まれても良い。
【０１４３】
従来技術のデータ処理装置５０では、絶対誤差合計演算器５５が３つ重複して設けられている。更に、積和演算部２２も２つ重複して設けられている。絶対誤差合計演算器５５と積和演算部２２はそれぞれ同一の演算処理を行うものであり、重複していることで回路規模が不要に増大している。
【０１４４】
このため、本発明のデータ処理装置５１は、重複している絶対誤差合計演算器５５と積和演算部２２を抽出し、まとめることで回路規模の削減を実現している。
【０１４５】
このとき、絶対誤差合計演算器５５と積和演算部２２は、それぞれプログラムで実現され、サブプロセッサ６０に実装されている。サブプロセッサ６０がバス１０を介して、動き検出部５２、５３、５４などの専用演算部と接続されることで、これらのプログラムを共有できる。さらに、共有される演算処理が、ソフトウェアで実装されることで、事後的な変更や各種係数など柔軟な変更に対応できるメリットがある。ソフトウェアは、共有される演算処理を専用の電子回路で実装した場合に比べて柔軟性が高い。勿論、回路により実装されてもよい。
【０１４６】
サブプロセッサ６０は、処理の切り替えやバス１０の制御を行うエンジンインターフェース５６とプロセッサユニット５７を搭載している。プロセッサユニット５７は、絶対誤差合計演算プログラム５８と積和演算プログラム５９を搭載している。
【０１４７】
このような構成により、重複して設けられていた絶対誤差合計演算器５５や積和演算部２２がまとめられ、回路規模を削減できるものである。更に、サブプロセッサ６０への実装で、柔軟性も高くなるものである。
【０１４８】
次に、図１１、図１２を用いてサブプロセッサ６０での動作処理について説明する。図１１は本発明の実施の形態３におけるサブプロセッサ６０の動作フローチャート、図１２は、本発明の実施の形態３における割込み処理のフローチャートである。
【０１４９】
エンジンインターフェース５６は、ステップ１１による使用要求のキューイング処理と、ステップ３１によるプロセッサユニット起動処理とを実行する。
【０１５０】
まず、ステップ１１による使用要求のキューイング処理について説明する。
【０１５１】
最初にステップ１３にて、エンジンインターフェース５６は、動き検出部などが出力した使用要求信号の有無を検出する。次いで、ステップ１４にて、検出した使用要求信号を要求キューにキューイングする（即ちストックする）。
【０１５２】
次に、ステップ３１によるプロセッサユニット起動処理について説明する。
【０１５３】
最初に、ステップ１５にて、エンジンインターフェース５６は要求キューの要求信号の取り出しを行う。次いで、ステップ１６にて、要求信号の有無を確認する。要求信号がある場合には、ステップ３２にて、エンジンインターフェースはプロセッサユニット５７に割り込み信号を出力して、プロセッサユニットを動作状態にする。
【０１５４】
次いで、ステップ１７にて、プロセッサユニット５７に含まれるプログラムが動作状態とされる。動作状態となることで、積和演算などのプログラムが実行される。プログラムによる結果は、動き検出部などに出力される。
【０１５５】
次いで、ステップ１８にて、プログラム動作の終了が確認される。プログラム動作の終了が確認されれば、ステップ１９にて、プロセッサユニット５７は、エンジンインターフェース５６に対して終了通知信号を出力する。これにより、プロセッサユニット５８でのプログラム動作が終了する。さらに、最初の状態に戻り、必要に応じて次の動作処理が開始される。
【０１５６】
次に図１２を用いて、割り込み処理について説明する。
【０１５７】
まず、ステップ４１にて、プロセッサユニット５７の動作が終了している間は、プロセッサユニット５７は、割り込み待ち状態で待機している。
【０１５８】
次に、ステップ４２にて、プロセッサユニット５７は、エンジンインターフェース５６から割り込み要求が発生した場合、割り込みハンドラへ移行する。
【０１５９】
次いで、ステップ４３にて、割込みハンドラは、まず要求元を特定する。さらに、この特定に従って、ステップ４４にて、絶対誤差合計演算プログラムを実行する。あるいは、ステップ４５にて、積和演算プログラムを実行する。
【０１６０】
次いで、ステップ４６にて、演算終了後にこれらのプログラムは、演終了フラグを設定し、割込みハンドラ状態を終了する。これにより、プロセッサユニット５７は、再び割り込み待ち状態となる。
【０１６１】
以上のように、エンジンインターフェース５６を用いて、割込みハンドラにより、要求元と必要な演算を実施することで、多彩な演算処理を、一つのサブプロセッサ６０で実現することができる。
【０１６２】
更に、重複していた演算部をサブプロセッサ６０の中にプログラムとしてまとめることで、回路規模、ＬＳＩのチップ面積、実装面積を削減することができる。
【０１６３】
また、プログラムで実装されることで、柔軟性が高くなるメリットもある。
【０１６４】
なお、キューイング処理とプロセッサユニット起動処理以外に、必要な処理がある場合には、エンジンインターフェース５６が、切り替えを更に実行すればよいものである。
【０１６５】
また、図１３に表されるように、クロック制御部４０が、クロック制御をサブプロセッサ６０において独立に行うことで、処理速度の低下防止や消費電力の削減も実現できるものである。図１３は、本発明の実施の形態３におけるデータ処理装置のブロック図である。
【０１６６】
実施の形態１で説明したように、サブプロセッサ６０がクロックを独立に持つことで、全体の処理速度を低下させないことができる。
【産業上の利用可能性】
【０１６７】
本発明に係るデータ処理装置は、例えば、回路規模を削減して種々のアプリケーションに対応することが必要な技術分野などにおいて好適に利用できる。
【図面の簡単な説明】
【０１６８】
【図１】（ａ）従来のデータ処理装置のブロック図  （ｂ）本発明の実施の形態１におけるデータ処理装置のブロック図
【図２】本発明の実施の形態１におけるデータ処理装置のブロック図
【図３】（ａ）本発明の実施の形態１における共通演算部の内部ブロック図  （ｂ）本発明の実施の形態１における共通演算部の内部ブロック図
【図４】（ａ）従来のデータ処理装置のブロック図  （ｂ）本発明の実施の形態１におけるデータ処理装置のブロック図
【図５】本発明の実施の形態１におけるデータ処理装置の動作フローチャート
【図６】本発明の実施の形態１におけるデータ処理装置の動作フローチャート
【図７】本発明の実施の形態１におけるデータ処理装置のブロック図
【図８】本発明の実施の形態２におけるデータ処理装置のブロック図
【図９】本発明の実施の形態２における共通演算部の動作フローチャート
【図１０】（ａ）従来のデータ処理装置のブロック図  （ｂ）本発明の実施の形態３におけるデータ処理装置のブロック図
【図１１】本発明の実施の形態３におけるサブプロセッサ６０の動作フローチャート
【図１２】本発明の実施の形態３における割込み処理のフローチャート
【図１３】本発明の実施の形態３におけるデータ処理装置のブロック図
【図１４】従来のデータ処理装置のブロック図
【符号の説明】
【０１６９】
１、２、５０、５１  データ処理装置
３  メインプロセッサ
４、５、６、１２  専用演算部
７  演算部
８  信号線
９、１３  共通演算部
１０  信号線
１５  共通積和演算部
１６  個別演算部
１７  選択部
１８  共通積和演算制御部
２０  フィルタ処理部
２１  直交変換部
２２  積和演算部
２３  制御部
２４  共通積和演算部
３０  専用演算部
３１  共通積和演算プログラム
３２、３３  個別演算プログラム
３４  プロセッサユニット
４０  クロック制御部
５２、５３、５４  動き検出部
５５  絶対誤差合計演算器
５６  エンジンインターフェース
５７  プロセッサユニット
５８  絶対誤差合計演算プログラム
５９  積和演算プログラム
１００  データ処理装置
１０１  メインプロセッサ
１０２  演算処理部
【図１】
2006155223.tif 000003
【図２】
2006155223.tif 000004
【図３】
2006155223.tif 000005
【図４】
2006155223.tif 000006
【図５】
2006155223.tif 000007
【図６】
2006155223.tif 000008
【図７】
2006155223.tif 000009
【図８】
2006155223.tif 000010
【図９】
2006155223.tif 000011
【図１０】
2006155223.tif 000012
【図１１】
2006155223.tif 000013
【図１２】
2006155223.tif 000014
【図１３】
2006155223.tif 000015
【図１４】
2006155223.tif 000016