(57)【要約】【課題】並列演算処理装置の各演算ユニットで実施できる処理は決まっており、スケジューリングによっては待ちが発生する。【解決手段】並列演算処理装置１０１は、外部入力手段１０２と、ストリーム入出力手段１０３と、外部出力手段１０４と、バス網１０５と、専用処理回路１０６と、演算ユニット１０７〜１０９と、第１〜第３のクロック１１３〜１１５を選択するセレクタ１１０〜１１２と、外部入力処理、外部出力処理、外部入力処理および外部出力処理以外の処理を適応的に演算ユニット１０７〜１０９に割り当てる制御手段１２２を備える。【選択図】    図１
2004326228.tif 000002
【特許請求の範囲】
【請求項１】
外部入力手段と、外部出力手段と、処理を選択可能な複数の演算ユニットと、制御手段を具備し、
前記制御手段は、前記外部入力手段からの外部入力処理と、前記外部出力手段への外部出力処理と、外部入力および外部出力以外の処理を個々の演算ユニットに割り当てることを特徴とする並列演算処理装置。
【請求項２】
請求項１記載の制御手段は、前記外部入力手段からの外部入力処理と、前記外部出力手段への外部出力処理と、外部入力および外部出力以外の処理を個々の演算ユニットに動的に割り当てることを特徴とする並列演算処理装置。
【請求項３】
外部入出力手段と、処理を選択可能な複数の演算ユニットと、制御手段を具備し、
前記制御手段は、前記外部入出力手段からの外部入出力処理と、外部入出力以外の処理を個々の演算ユニットに割り当てることを特徴とする並列演算処理装置。
【請求項４】
請求項３記載の制御手段は、前記外部入出力手段からの外部入出力処理と、外部入出力以外の処理を個々の演算ユニットに動的に割り当てることを特徴とする並列演算処理装置。
【請求項５】
外部入力手段と、外部出力手段と、処理を選択可能な複数の演算ユニットと、前記演算ユニットに１対１に対応した複数のメモリと、制御手段を具備し、
前記制御手段は、前記外部入力手段からの外部入力処理と、前記外部出力手段への外部出力処理と、外部入力および外部出力以外の処理を個々の演算ユニットとメモリに割り当て、
前記外部入力手段あるいは前記外部出力手段とのデータのやり取りは、前記メモリを介して行うことを特徴とする並列演算処理装置。
【請求項６】
請求項５記載の制御手段は、前記外部入力手段からの外部入力処理と、前記外部出力手段への外部出力処理と、外部入力および外部出力以外の処理を個々の演算ユニットとメモリに動的に割り当てることを特徴とする並列演算処理装置。
【請求項７】
外部入出力手段と、処理を選択可能な複数の演算ユニットと、前記演算ユニットに１対１に対応した複数のメモリと、制御手段を具備し、
前記制御手段は、前記外部入出力手段からの外部入出力処理と、外部入出力以外の処理を個々の演算ユニットとメモリに割り当て、
前記外部入出力手段とのデータのやり取りは、前記メモリを介して行うことを特徴とする並列演算処理装置。
【請求項８】
請求項７記載の制御手段は、前記外部入出力手段からの外部入出力処理と、外部入出力以外の処理を個々の演算ユニットとメモリに動的に割り当てることを特徴とする並列演算処理装置。
【請求項９】
外部入力手段と、外部出力手段と、第１のバッファと、第２のバッファと、処理を選択可能な複数の演算ユニットと、前記演算ユニットに１対１に対応した複数のメモリと、制御手段を具備し、
前記制御手段は、前記外部入力手段からの外部入力処理と、前記外部出力手段への外部出力処理と、外部入力および外部出力以外の処理を個々の演算ユニットとメモリに割り当て、
前記外部入力手段とのデータのやり取りは、前記第１のバッファを介し、前記メモリまたは前記演算ユニットと前記第１のバッファ間で通信し、
前記外部出力手段とのデータのやり取りは、前記第２のバッファを介し、前記メモリまたは前記演算ユニットと前記第２のバッファ間で通信することを特徴とする並列演算処理装置。
【請求項１０】
請求項９記載の制御手段は、前記外部入力手段からの外部入力処理と、前記外部出力手段への外部出力処理と、外部入力および外部出力以外の処理を個々の演算ユニットとメモリに動的に割り当てることを特徴とする並列演算処理装置。
【請求項１１】
外部入出力手段と、バッファと、処理を選択可能な複数の演算ユニットと、前記演算ユニットに１対１に対応した複数のメモリと、制御手段を具備し、
前記制御手段は、前記外部入出力手段からの外部入出力処理と、外部入出力以外の処理を個々の演算ユニットとメモリに割り当て、
前記外部入出力手段とのデータのやり取りは前記バッファを介し、前記メモリまたは前記演算ユニットとバッファ間で通信することを特徴とする並列演算処理装置。
【請求項１２】
請求項１１記載の制御手段は、前記外部入出力手段の外部入出力処理と、外部入出力以外の処理を個々の演算ユニットとメモリに動的に割り当てることを特徴とする並列演算処理装置。
【請求項１３】
請求項１〜１１記載の並列演算処理装置において、
制御手段は、ＢＩＯＳの更新や再起動により、各演算ユニットへの処理を割り当てることを特徴とする並列演算処理装置。
【請求項１４】
請求項１〜１１記載の並列演算処理装置において、
制御手段は、あらかじめ決められた複数種類の動作モードに応じて、各演算ユニットへ処理を割り当てることを特徴とする並列演算処理装置。
【請求項１５】
請求項１〜１１記載の並列演算処理装置において、
制御手段は、各演算ユニットの負荷または処理量または処理時間、あるいはそれらの組み合わせに応じて、各演算ユニットへ処理を割り当てることを特徴とする並列演算処理装置。
【請求項１６】
請求項１〜１１記載の並列演算処理装置において、
制御手段は、各演算ユニットに対する命令に応じて、各演算ユニットへ処理を割り当てることを特徴とする並列演算処理装置。
【請求項１７】
請求項１〜１１記載の並列演算処理装置において、
演算ユニットは、入力クロックの停止機能を具備し、
制御手段は、演算が不要である演算ユニットの前記入力クロックを個別に停止することを特徴とする並列演算処理装置。
【請求項１８】
請求項１７記載の並列演算処理装置において、
演算ユニットは、入力クロックの選択機能を具備し、
制御手段は、ある演算ユニットの動作周波数が高く、また、入力クロックが停止している別の演算ユニットがｎ−１個（ｎはｎ≧２を満たす自然数）存在する場合、合計ｎ個の演算ユニットへの入力クロックに１／ｎに分周された入力クロックを選択し、演算処理させることを特徴とする並列演算処理装置。
【請求項１９】
請求項１〜１２記載の外部入出力処理または外部入力処理または外部出力処理とは、リサイズ、ズーム、補間、ノイズキャンセラ、プリフィルタ、ポストフィルタ、逆γ補正、γ補正、撮像処理、特徴抽出、ＮＴＳＣ／ＰＡＬのエンコード／デコード、補色／ＲＧＢ変換、ＲＧＢ／ＹＵＶ変換、輝度・色合い・色相変換、ＯＳＤ、画像合成、インタレース／プログレッシブ変換のいずれか、または組み合わせであることを特徴とする並列演算処理装置。
【請求項２０】
請求項１〜１２記載の外部入出力以外の処理または、外部入力および外部出力以外の処理とは、映像あるいは音声のコーデック処理であることを特徴とする並列演算処理装置。
【請求項２１】
請求項２０記載のコーデック処理とは、ＭＰＥＧ２またはＭＰＥＧ４のコーデック処理であることを特徴とする並列演算処理装置。
【請求項２２】
請求項２０記載のコーデック処理とは、ＪＰＥＧまたはＪＰＥＧ２０００であることを特徴とする並列演算処理装置。
【請求項２３】
請求項２０記載のコーデック処理とは、ＭＰ３またはＡＣ３であることを特徴とする並列演算処理装置。
【請求項２４】
請求項１〜１８のいずれかの並列演算処理装置に記載の、各手段の機能の全部または一部をコンピュータに実行させるためのプログラムを格納したことを特徴とするプログラム記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は複数の演算ユニットを具備する並列演算装置において、各演算ユニットに適応的に処理を割り当てる並列演算処理装置に関するものである。
【０００２】
【従来の技術】
従来の専用ハードウエア構成によるメディア処理ＬＳＩのブロック図を図９に示す。９０１はＬＳＩであり、９０２は入出力処理手段、９０３、９０６、９０８はＳＲＡＭ、９０４は外部ＳＤＲＡＭ、９０５はＭＥ処理手段、９０７はコーデック処理手段、９０９はストリーム入力手段、９１０はストリーム出力手段である。
【０００３】
入出力処理手段９０２は、外部入力ビデオ信号や外部出力ビデオ信号と同期した処理を行う。例えば、リサイズ、ズーム、補間、ノイズキャンセラ、プリフィルタ、ポストフィルタ、逆γ補正、γ補正、撮像処理、特徴抽出、ＮＴＳＣ／ＰＡＬのエンコード／デコード、補色／ＲＧＢ変換、ＲＧＢ／ＹＵＶ変換、輝度・色合い・色相変換、ＯＳＤ、画像合成、インタレース／プログレッシブ変換などの処理である。
【０００４】
外部から入力されたビデオ信号は、入出力処理手段９０２で入力側の処理をされ、処理後のデータが外部ＳＤＲＡＭ９０４に保存される。ＳＲＡＭ９０３は入出力処理手段９０２でローカルに使用されるメモリである。
【０００５】
図９中の破線は、入出力信号とは非同期の処理、すなわち、内部クロックに同期した処理を示すブロックである。エンコード時には、外部ＳＤＲＡＭ９０４からのデータを受け、ＭＥ処理手段９０５は、動き検出処理を行い、コーデック処理手段９０７は離散コサイン変換（以下ＤＣＴ）や量子化（以下Ｑ）や可変長符号化（以下ＶＬＣ）などの処理を行い、ＭＰＥＧ２やＭＰＥＧ４のストリームは生成され、ストリーム出力手段９１０を介して出力される。ＳＲＡＭ９０６、ＳＲＡＭ９０８は、それぞれＭＥ処理手段９０５、コーデック処理手段９０７でローカルに使用されるメモリである。
【０００６】
また、デコード時には、ストリーム入力手段９０９からのストリームに対し、コーデック処理手段９０７は、可変長復号化（以下ＶＬＤ）や逆量子化（以下ＩＱ）や逆離散コサイン変換（以下ＩＤＣＴ）を行い、外部ＳＤＲＡＭ９０４にデータを保存する。入出力処理手段９０２は、外部ＳＤＲＡＭ９０４からデータを読み出し、出力側の処理を行い、ビデオ出力する。
【０００７】
図９に示した専用ハードウエア構成によるＬＳＩの特徴は、各処理手段毎に処理を最適化することができるため、消費電力を低くすることができる。しかしながら、汎用性に欠け、各手段の処理を変更するためには人数も期間もかかってしまう。例えば、コーデック手段の処理をＭＰＥＧ２からＭＰＥＧ２とＭＰＥＧ４の兼用にする。あるいは、ＪＰＥＧからＪＰＥＧ２０００にするなどといった変更の場合、ハードウエアロジックで該当部分を一から作り直す必要があり、膨大な開発期間、開発コストが必要とされる。
【０００８】
一方、汎用ハードウエア構成によるメディア処理ＬＳＩのブロック図を図１０に示す。１００１はＬＳＩであり、１００２は外部入出力手段、１００３はバス網であり、１００４、１００５、１００６は演算ユニットであり、１００７はストリーム入出力手段、１００８は外部ＳＤＲＡＭである。
【０００９】
ビデオ信号は、外部入出力手段１００２に入力され、データはバス網１００３を介して演算ユニット１００４〜１００６の間でやり取りされる。各演算ユニットでは、外部入出力処理または外部入出力以外の処理（例えばコーデック処理）が設計段階で割り当てられている。なお、外部ＳＤＲＡＭ１００８は演算ユニット１００４〜１００６の各処理で使用され、バス網１００３を介してデータ転送される。
【００１０】
エンコードの場合、例えば、演算ユニット１００４、１００５で外部入出力処理を行い、前記以外の演算ユニットでコーデック処理を行い、バス網１００３を介して外部ＳＤＲＡＭ１００８に保存する。ストリーム入出力手段１００７は外部ＳＤＲＡＭから読み出したストリームを出力する。出力されたストリームは、図示されていないが、メモリカードなどに記録される。
【００１１】
デコードの場合、ＴＶチューナやメモリカードからストリームがストリーム入出力手段１００７を介して供給され、例えば、演算ユニット１００４、１００５以外の演算ユニットでコーデック処理を行い、バス網１００３を介して外部ＳＤＲＡＭ１００８に保存する。演算ユニット１００４、１００５は外部ＳＤＲＡＭ１００８からデータを読み出し、外部入出力処理を行い、外部入出力手段１００２よりビデオ信号が出力される。
【００１２】
図１０に示した汎用ハードウエア構成によるＬＳＩの特徴は、全体で動作周波数が最適化されており、専用ハードウエア構成によるＬＳＩに比べ、その周波数も高くなり、消費電力やチップサイズの面で見劣りする。その反面、開発や変更が容易である点で優れている。
【００１３】
特に最近の市場では、一番最初に新商品を投入した企業がその市場のシェアを占める「先行企業による寡占化」が進んできており、開発の期間短縮が求められている。そのため、規格化の段階で開発を開始せざるを得ない状況も発生しており、ソフトウエアによりロジック変更が可能である汎用的なメディア処理ＬＳＩが求められている（例えば、特許文献１参照）。
【００１４】
【特許文献１】
特開平５−１０８５８６号公報
【００１５】
【発明が解決しようとする課題】
従来の並列演算装置の各演算ユニットでは、あらかじめ各処理への割り当てが決められており変更はできない。例えば外部入出力処理の演算ユニットの処理が空いていても、外部入出力以外の処理を実行している演算ユニットがあれば、空いている演算ユニットではスケジューリングによる待ちが発生していた。この時、空いている演算ユニットは電力を消費しており、消費電力の面で劣っていた。
【００１６】
本発明では、各処理を個々の演算ユニットに適応的に割り当てることにより、上記のような演算ユニットが最適に利用されていないという課題を解決する。
【００１７】
【課題を解決するための手段】
上述した課題を解決するために、第１の本発明（請求項１に記載の本発明に対応）は、外部入力手段と、外部出力手段と、処理を選択可能な複数の演算ユニットと、制御手段を具備し、前記制御手段は、前記外部入力手段からの外部入力処理と、前記外部出力手段への外部出力処理と、外部入力および外部出力以外の処理を個々の演算ユニットに割り当てることを特徴とする並列演算処理装置である。
【００１８】
また、第２の本発明（請求項３に記載の本発明に対応）は、外部入出力手段と、処理を選択可能な複数の演算ユニットと、制御手段を具備し、前記制御手段は前記外部入出力手段からの外部入出力処理と、前記外部入出力手段以外の処理を個々の演算ユニットに割り当てることを特徴とする並列演算処理装置である。
【００１９】
また、第３の本発明（請求項５に記載の本発明に対応）は、外部入力手段と、外部出力手段と、処理を選択可能な複数の演算ユニットと、前記演算ユニットに１対１に対応した複数のメモリと、制御手段を具備し、前記制御手段は、前記外部入力手段からの外部入力処理と、前記外部出力手段への外部出力処理と、外部入力および外部出力以外の処理を個々の演算ユニットとメモリに割り当て、前記外部入力手段あるいは前記外部出力手段とのデータのやり取りは、前記メモリを介して行うことを特徴とする並列演算処理装置である。
【００２０】
また、第４の本発明（請求項７に記載の本発明に対応）は、外部入出力手段と、処理を選択可能な複数の演算ユニットと、前記演算ユニットに１対１に対応した複数のメモリと、制御手段を具備し、前記制御手段は、前記外部入出力手段からの外部入出力処理と、外部入出力以外の処理を個々の演算ユニットとメモリに割り当て、前記外部入出力手段とのデータのやり取りは、前記メモリを介して行うことを特徴とする並列演算処理装置である。
【００２１】
また、第５の本発明（請求項９に記載の本発明に対応）は、外部入力手段と、外部出力手段と、第１のバッファと、第２のバッファと、処理を選択可能な複数の演算ユニットと、前記演算ユニットに１対１に対応した複数のメモリと、制御手段を具備し、前記制御手段は、前記外部入力手段からの外部入力処理と、前記外部出力手段への外部出力処理と、外部入力および外部出力以外の処理を個々の演算ユニットとメモリに割り当て、前記外部入力手段とのデータのやり取りは、前記第１のバッファを介し、前記メモリまたは前記演算ユニットと前記第１のバッファ間で通信し、前記外部出力手段とのデータのやり取りは、前記第２のバッファを介し、前記メモリまたは前記演算ユニットと前記第２のバッファ間で通信することを特徴とする並列演算処理装置である。
【００２２】
また、第６の本発明（請求項１１に記載の本発明に対応）は、外部入出力手段と、バッファと、処理を選択可能な複数の演算ユニットと、前記演算ユニットに１対１に対応した複数のメモリと、制御手段を具備し、前記制御手段は、前記外部入出力手段からの外部入出力処理と、外部入出力以外の処理を個々の演算ユニットとメモリに割り当て、前記外部入出力手段とのデータのやり取りは前記バッファを介し、前記メモリまたは前記演算ユニットとバッファ間で通信することを特徴とする並列演算処理装置である。
【００２３】
【発明の実施の形態】
以下に、本発明の第１〜第６の実施の形態を図１〜図６にて説明する。なお、各実施の形態の制御手段は図７を用いて後述する。同様に、各実施の形態の演算ユニットは図８を用いて後述する。
【００２４】
（第１の実施の形態）
図１は、本発明の第１の実施の形態におけるブロック図である（請求項１記載の本発明に相当）。本発明の第１の実施の形態の並列演算処理装置１０１は、外部入力手段１０２、ストリーム入出力手段１０３、外部出力手段１０４、バス網１０５、専用処理回路１０６、演算ユニット１０７〜１０９、セレクタ１１０〜１１２、第１のクロック１１３、第２のクロック１１４、第３のクロック１１５、セレクタ制御信号１１６〜１１８、ユニット制御信号１１９〜１２１、制御手段１２２、外部ＳＤＲＡＭ１２３で構成される。
【００２５】
外部入力手段１０２から入力されたビデオ信号は、バス網１０５を介して、専用処理回路１０６、演算ユニット１０７〜１０９、外部ＳＤＲＡＭ１２３のいずれかへ転送される。演算ユニット１０７〜１０９は、外部入力処理と、外部出力処理と、コーデック処理のいずれか一つの処理を実行する。前記処理の割り当ては、制御手段１２２のユニット制御信号１１９〜１２１によって実施される。
【００２６】
また、第１のクロック１１３は、外部入力処理に使用される外部入力クロック、第２のクロック１１４は、外部出力処理に使用される外部出力クロック、第３のクロック１１５は、コーデック処理などに使用される内部クロックである。セレクタ１１０〜１１２には、前記３つのクロック１１３〜１１５が入力され、制御手段１２２からのセレクタ制御信号１１６〜１１８によって３つのクロックのいずれか１つが選択されることにより、演算ユニット１０７〜１０９の動作クロックが決定される。
【００２７】
また、専用処理回路１０６は、第３のクロック１１５で動作し、演算ユニット１０７〜１０９で処理を行うよりも専用回路にすることで回路の小規模化が期待されるコーデック処理の一部の演算（例えば、ＤＣＴ／ＩＤＣＴなど）を実行する。
【００２８】
また、外部ＳＤＲＡＭ１２３は、バス網１０５に接続されている各手段におけるデータ処理時に使用される。
【００２９】
また、演算ユニット１０７〜１０９または外部ＳＤＲＡＭ１２３からの出力は、バス網１０５を介して外部出力手段１０４からビデオ出力される。
【００３０】
以上の構成により、並列演算処理装置１０１は、演算ユニット１０７〜１０９に外部入力処理、外部出力処理、コーデック処理を割り当てることができる。また、本構成は、外部入力と外部出力の動作周波数が異なる場合に有効である。
【００３１】
以下に、動作の一例を示す。ＴＶモードのＭＰＥＧ２またはＭＰＥＧ４のようなコーデック処理の場合、制御手段１２２は、演算ユニット１０７に外部入力処理を、演算ユニット１０８に外部出力処理を、演算ユニット１０７、１０８以外の演算ユニット（以下、第１の実施の形態のコーデック処理用演算ユニット）にコーデック処理を割り当てる。すなわち、制御手段１２２は、多くの演算ユニットにコーデック処理を割り当てる。
【００３２】
エンコードの場合、外部入力手段１０２から入力されたビデオ信号は、バス網１０５を介して、演算ユニット１０７で外部入力処理され、外部ＳＤＲＡＭ１２３にデータが保存される。コーデック処理用演算ユニットおよび専用処理回路１０６は、前記データをエンコード処理し、外部ＳＤＲＡＭ１２３にストリームを保存する。ストリーム入出力手段１０３は、前記ストリームを外部ＳＤＲＡＭ１２３より読み出し、ストリームはメモリカードなどに記録される。
【００３３】
デコードの場合、ストリーム入出力手段１０３から入力されたストリームは、バス網１０５を介し、外部ＳＤＲＡＭ１２３に保存される。第１の実施の形態のコーデック用演算ユニットおよび専用処理回路１０６は、デコード処理し、外部ＳＤＲＡＭ１２３にデータを保存する。演算ユニット１０８は、外部ＳＤＲＡＭ１２３のデータを外部出力処理し、外部出力手段１０４はビデオ信号を出力する。
【００３４】
また、カメラモードにおけるＲＡＷデータ出力のような外部入出力処理の場合、制御手段１２２は、演算ユニット１０７、１０８に外部入力処理を割り当て、演算ユニット１０９に外部入力処理および外部出力処理以外の処理を割り当て、前記以外の演算ユニット（以下、第１の実施の形態の外部出力処理用演算ユニット）に外部出力処理を割り当てる。すなわち、制御手段１２２は、多くの演算ユニットに外部入力処理および外部出力処理を割り当てる。
【００３５】
この時、外部入力手段１０２から入力されたビデオ信号は、演算ユニット１０７、１０８で外部入力処理され、外部ＳＤＲＡＭ１２３に保存される。第１の実施の形態の外部出力処理用演算ユニットは、外部ＳＤＲＡＭ１２３から読み出したデータを外部出力処理し、外部出力手段１０４よりビデオ信号を出力する。
【００３６】
なお、上記割り当ては、一例であり、これに限られるものではない。
【００３７】
なお、専用処理回路１０６は存在せず、すべての処理を演算ユニットで行っても構わない。また、複数の専用処理回路（例えばＶＬＣ／ＶＬＤなど）が存在しても構わない。
【００３８】
また、ストリーム入出力手段１０３は、ストリーム入力手段、ストリーム出力手段の２つの構成であっても構わない。
【００３９】
図７は、本発明の第１の実施の形態で使用される制御手段のブロック図である。なお以下に記載する実施の形態２〜６で使用される制御手段についても同様である。制御手段７０１は、命令キャッシュ７０２と、命令デコーダ７０３と、制御回路７０４、ＢＩＯＳ７０５で構成され、ホストからの命令７０６、演算ユニット状態信号７０９、動作モード選択信号７１０、動作状態信号７１１が制御手段７０１への入力であり、ユニット制御信号７０７（図１の１１９〜１２１、図２の２１７〜２１９、図３の３２２〜３２４、図４の４２０〜４２２、図５の５１８〜５２０、図６の６１５〜６１７に相当）、セレクタ制御信号７０８（図１の１１６〜１１８、図２の２１４〜２１６、図３の３１９〜３２１、図４の４１７〜４１９に相当）が出力である。制御回路７０４は、ＢＩＯＳ７０５を更新することにより新しいアルゴリズムで動作変更が可能なものとする。
【００４０】
制御手段７０１は、外部または（図１〜図６では図示していない）内部ホストからの命令７０６を命令キャッシュ７０２に保存し、命令デコーダ７０３は命令キャッシュから読み出した命令をデコードする。制御回路７０４は、デコード結果と演算ユニット状態信号７０９、動作モード選択信号７１０、動作状態信号７１１から各演算ユニットで実行する各種処理の割り当てや動作クロックを変更するために、ユニット制御信号７０７、セレクタ制御信号７０８を出力する。
【００４１】
動作状態信号７１１を制御回路７０４に入力することにより、例えばＢＩＯＳ７０５の更新や再起動（リセット）がなされたことを制御回路７０４は知ることができ、本信号をトリガとしてＢＩＯＳ７０５より新しいプログラムをロードし、新規アルゴリズムでユニット制御信号７０７またはセレクタ制御信号７０８を制御することができる。
【００４２】
また、動作モード選択信号７１０を制御回路７０４に入力することにより、動作モードに応じて各演算ユニットの処理のウェイトを変更することができる。例えばカメラモードとＴＶモードの２種類の動作モードを持つ並列演算処理装置の場合、カメラモードにおけるＲＡＷデータ出力などでは、外部入出力処理の処理ウェイトが高く、ＴＶモードの場合には、コーデック処理の処理ウェイトが高くなると考えられる。ユーザがスイッチで前記動作モードのどの動作モードを選択したかを示す動作モード選択信号７１０を用いることで、カメラモードでは、外部入出力処理に多くの演算ユニットを割り当て、ＴＶモードでは、コーデック処理を多くの演算ユニットに割り当てることができ、より効率的な動作をする並列演算処理装置を提供することができる。なお、動作モードは、この２種類に限定されるものではない。
【００４３】
また、各演算ユニットの動作状態（負荷、処理量、処理時間、動作状態など）を示す演算ユニット状態信号７０９を制御回路７０４にフィードバックすることにより、負荷の高い演算ユニットが実行している演算を空いている演算ユニットに振り分けることができる。さらに、各演算ユニットのスケジュールのタイミングなどを調整することができる。
【００４４】
また、前記動作モード選択信号７１０が（制御回路７０４に入力されず）前記ホストに入力され、動作モード選択をホストからの命令で指示する場合、制御回路７０４にホストからの命令７０６のデコード結果を反映させることにより、各演算ユニットへ処理を割り当てることができる）。なお、制御手段７０１は、前記ホストを含んでいる場合も考えられる。
【００４５】
図８は、本発明の第１の実施の形態で使用される演算ユニットのブロック図である。なお、実施の形態２〜６で使用される演算ユニットについても同様である。演算ユニット８０１は、ローカルバス８０２、積和演算回路８０３、論理演算回路８０４、算術演算回路８０５、シフト演算回路８０６、ＭＥ処理回路８０７、制御回路８０８で構成され、各演算回路や処理回路で処理されるデータはローカルバス８０２を介してバス網８０９を通じてやり取りが行われる。制御回路８０８は、本発明の第１〜第６の実施の形態における制御手段からのユニット制御信号８１０（図１の１１９〜１２１、図２の２１７〜２１９、図３の３２２〜３２４、図４の４２０〜４２２、図５の５１８〜５２０、図６の６１５〜６１７に相当）を入力とし、積和演算回路８０３、論理演算回路８０４、算術演算回路８０５、シフト演算回路８０６、ＭＥ処理回路８０７の処理をそれぞれ設定する。演算ユニット８０１の動作クロックは、第１の実施の形態では、セレクタで選択された第１〜第３のクロック１１３〜１１５のいずれかであり、第３の実施の形態では、第３のクロック３１８であり、第５の実施の形態では、第３のクロック５１７である。
【００４６】
さらに、選択クロック８１１を演算ユニット８０１に直接入力する代わりに、選択クロック８１１を１／ｎにするｎ分周回路８１２と、セレクタ８１３と、フリップフロップ８１４で構成される破線部の回路を追加し、クロック信号８１７を演算ユニット８０１に入力することで、低消費電力化の効果を得られる。セレクタ８１３は、第１〜第６の実施の形態の制御手段が出力する（図７に示していない）分周クロック選択信号８１５により、選択クロック８１１またはそのｎ分周クロックを選択する。フリップフロップ８１４は、前記制御手段が出力する（図７に示していない）クロック制御信号８１６により、セレクタ８１３で選択されたクロックをそのまま出力あるいは出力をホールドする。
【００４７】
以上のように、本構成で前記制御手段は（図７に示していない）クロック制御信号８１６をさらに出力することにより、演算ユニット８０１に供給されるクロックをホールドし、そのスイッチングを低減することができる。その結果、動作周波数の２乗に比例する消費電力を低減することができる。
【００４８】
さらに、前記制御手段は（図７に示していない）分周クロック選択信号８１５を出力し、あわせてｎ個の演算ユニットに処理を割り当てることにより、各演算ユニットの動作周波数を１／ｎに低減し、消費電力を低減することができる。例えば、６６ＭＨｚで動作する１個の演算ユニットがあり、動作停止している演算ユニットが１つある場合、両演算ユニットを１／２に分周した３３ＭＨｚで動作させることにより（消費電力は動作周波数の２乗に比例するため）、トータルの消費電力を低減できる。
【００４９】
なお、演算ユニット８０１に含まれる各種演算回路の一部がなくなり、バス網８０９に汎用プロセッサが接続される場合も考えられる。また、演算ユニット８０１は、図８に示す各種演算回路以外の回路が含まれる場合も考え得る。
【００５０】
（第２の実施の形態）
図２は、本発明の第２の実施の形態におけるブロック図である（請求項３記載の本発明に相当）。本発明の第２の実施の形態の並列演算処理装置２０１は、外部入出力手段２０２、ストリーム入出力手段２０３、バス網２０４、専用処理回路２０５、演算ユニット２０６〜２０８、セレクタ２０９〜２１１、第１のクロック２１２、第２のクロック２１３、セレクタ制御信号２１４〜２１６、ユニット制御信号２１７〜２１９、制御手段２２０、外部ＳＤＲＡＭ２２１で構成される。
【００５１】
外部入出力手段２０２から入力されたビデオ信号は、バス網２０４を介して、専用処理回路２０５、演算ユニット２０６〜２０８、外部ＳＤＲＡＭ２２１のいずれかへ転送される。演算ユニット２０６〜２０８は、外部入出力処理と、コーデック処理のどちらかの処理を実行する。前記処理の割り当ては、制御手段２２０のユニット制御信号２１７〜２１９によって実施される。
【００５２】
また、第１のクロック２１２は、外部入出力処理に使用される外部入出力クロック、第２のクロック２１３は、コーデック処理などに使用される内部クロックである。セレクタ２０９〜２１１には、前記２つのクロック２１２、２１３が入力され、制御手段２２０からのセレクタ制御信号２１４〜２１６によって２つのクロックのどちらか１つが選択されることにより、演算ユニット２０６〜２０８の動作クロックがそれぞれ決定される。
【００５３】
また、専用処理回路２０５は、第２のクロック２１３で動作し、演算ユニット２０６〜２０８で処理を行うよりも専用回路にすることで回路の小規模化が期待されるコーデック処理の一部の演算（例えば、ＤＣＴ／ＩＤＣＴなど）を実行する。
【００５４】
また、外部ＳＤＲＡＭ２２１は、バス網２０４に接続されている各手段におけるデータ処理時に使用される。
【００５５】
また、演算ユニット２０６〜２０８または外部ＳＤＲＡＭ２２１からの出力は、バス網２０４を介して外部入出力手段２０２からビデオ出力される。
【００５６】
以上の構成により、並列演算処理装置２０１は、演算ユニット２０６〜２０８に外部入出力処理、コーデック処理を割り当てることができる。また、本構成は、外部入力と外部出力が同じ動作周波数である場合、あるいは、再生専用機器のように外部出力のみを処理する場合、あるいは、記録専用機器のように外部入力のみを処理する場合に有効である。
【００５７】
以下に、動作の一例を示す。ＴＶモードのＭＰＥＧ２またはＭＰＥＧ４のようなコーデック処理の場合、制御手段２２０は、演算ユニット２０６に外部入出力処理を割り当て、演算ユニット２０７〜２０８にコーデック処理を割り当てる。すなわち、制御手段２２０は、多くの演算ユニットにコーデック処理を割り当てる。
【００５８】
エンコードの場合、外部入出力手段２０２から入力されたビデオ信号は、バス網２０４を介して、演算ユニット２０６で外部入出力処理され、外部ＳＤＲＡＭ２２１にデータが保存される。演算ユニット２０７〜２０８および専用処理回路２０５は、前記データをエンコード処理し、外部ＳＤＲＡＭ２２１にストリームを保存する。ストリーム入出力手段２０３は、外部ＳＤＲＡＭ２２１より前記ストリームを読み出し、ストリームはメモリカードなどに記録される。
【００５９】
デコードの場合、ストリーム入出力手段２０３から入力されたストリームは、バス網２０４を介し、外部ＳＤＲＡＭ２２１に保存される。演算ユニット２０７〜２０８および専用処理回路２０５は、デコード処理し、外部ＳＤＲＡＭ２２１にデータを保存する。演算ユニット２０６は、外部ＳＤＲＡＭ２２１のデータを外部出力処理し、バス網２０４を介し、外部入出力手段２０２からビデオ信号を出力する。
【００６０】
また、カメラモードにおけるＲＡＷデータ出力のような外部入出力処理の場合、制御手段２２０は、演算ユニット２０６に外部入出力処理以外の処理を割り当て、演算ユニット２０７〜２０８に外部入出力処理を割り当てる。すなわち、制御手段２２０は、多くの演算ユニットに外部入出力処理を割り当てる。
【００６１】
外部入出力手段２０２から入力されたビデオ信号は、演算ユニット２０７〜２０８で外部入出力処理され、外部ＳＤＲＡＭ２２１に保存される。演算ユニット２０７〜２０８は、外部ＳＤＲＡＭ２２１から読み出したデータを外部入出力処理し、外部入出力手段２０２よりビデオ信号を出力する。
【００６２】
なお、上記割り当ては、一例であり、これに限られるものではない。
【００６３】
なお、専用処理回路２０５は存在せず、すべての処理を演算ユニットで行っても構わない。また、複数の専用処理回路（例えばＶＬＣ／ＶＬＤなど）が存在していても構わない。
【００６４】
また、ストリーム入出力手段２０３は、ストリーム入力手段、ストリーム出力手段の２つの構成であっても構わない。
【００６５】
（第３の実施の形態）
図３は、本発明の第３の実施の形態におけるブロック図である（請求項５記載の本発明に相当）。本発明の第３の実施の形態の並列演算処理装置３０１は、外部入力手段３０２と、ストリーム入出力手段３０３と、外部出力手段３０４と、バス網３０５と、専用処理回路３０６と、メモリ３０７〜３０９と、演算ユニット３１０〜３１２と、セレクタ３１３〜３１５と、第１のクロック３１６と、第２のクロック３１７と、第３のクロック３１８と、セレクタ制御信号３１９〜３２１と、ユニット制御信号３２２〜３２４と、制御手段３２５と、外部ＳＤＲＡＭ３２６で構成される。
【００６６】
また、第１のクロック３１６は、外部入力処理に使用される外部入力クロック、第２のクロック３１７は、外部出力処理に使用される外部出力クロック、第３のクロック３１８は、コーデック処理などに使用される内部クロックである。
【００６７】
外部入力手段３０２から入力されたビデオ信号は、バス網３０５を介して、専用処理回路３０６、メモリ３０７〜３０９、外部ＳＤＲＡＭ３２６のいずれかへ転送される。演算ユニット３１０〜３１２はメモリ３０７〜３０９とそれぞれ１対１に対応し、外部入力処理と、外部出力処理と、コーデック処理のいずれか一つの処理を実行する。前記処理の割り当ては、制御手段３２５のユニット制御信号３２２〜３２４によって実施される。各演算ユニット３１０〜３１２は、制御手段３２５によって割り当てられた処理に応じて、それぞれメモリ３０７〜３０９とデータのやり取りを行い、必要であれば、外部ＳＤＲＡＭ３２６とメモリ３０７〜３０９間でデータのやり取りを行う。
【００６８】
また、各演算ユニットの動作クロックは、第３のクロック３１８である。メモリ３０７〜３０９は、デュアルポートＲＡＭのようにバス網３０５からのリード・ライトと、演算ユニット３１０〜３１２からのリード・ライトを処理できるものとする。デュアルポートＲＡＭとは、別々のアドレス、データ、及び共通のＲＡＭデータアレイにアクセスするための制御信号をもった、１つのスタティックＲＡＭアレイであり、ランダムにデータにアクセスでき、同一データの複数読み取りが必要な場合に検索が可能である。従って、演算結果を内部メモリに保存し、その結果を演算ユニット間で再利用することができ、また、ＳＤＲＡＭを介さずに他の演算ユニットに渡すことが可能である。これにより、内部メモリに比べ消費電力のかかるＳＤＲＡＭなどへの外部ＩＯへのアクセスよりも低消費電力化を図る事ができる。
【００６９】
セレクタ３１３〜３１５には、第１〜第３のクロック３１６〜３１８が入力され、制御手段３２５からのセレクタ制御信号３１９〜３２１によって３つのクロックのいずれか１つが選択されることにより、メモリ３０７〜３０９の動作クロックがそれぞれ決定される。
【００７０】
また、専用処理回路３０６は、第３のクロック３１８で動作し、演算ユニット３１０〜３１２で処理を行うよりも専用回路にすることで回路の小規模化が期待されるコーデック処理の一部の演算（例えば、ＤＣＴなど）を実行する。
【００７１】
また、外部ＳＤＲＡＭ３２６は、バス網３０５に接続されている各手段におけるデータ処理時に使用される。
【００７２】
また、メモリ３０７〜３０９または外部ＳＤＲＡＭ３２６からの出力は、バス網３０５を介して外部出力手段３０４からビデオ出力される。
【００７３】
以上の構成により、並列演算処理装置３０１は、演算ユニット３１０〜３１２とメモリ３０７〜３０９に外部入力処理、外部出力処理、コーデック処理を割り当てることができる。また、演算ユニット３１０〜３１２や専用処理回路３０６は、同一クロックで動作するため、スケジューリングも容易である。また、本構成は、外部入力と外部出力の動作周波数が異なる場合に有効である。
【００７４】
以下に、動作の一例を示す。ＴＶモードのＭＰＥＧ２またはＭＰＥＧ４のようなコーデック処理の場合、制御手段３２５は、演算ユニット３１０とメモリ３０７に外部入力処理を、演算ユニット３１１とメモリ３０８に外部出力処理を、演算ユニット３１０、３１１以外の演算ユニットとメモリ３０７、３０８以外のメモリ（以下、第３の実施の形態のコーデック処理用演算ユニットとメモリ）にコーデック処理を割り当てる。すなわち、制御手段３２５は、多くの演算ユニットにコーデック処理を割り当てる。
【００７５】
エンコードの場合、外部入力手段３０２から入力されたビデオ信号は、バス網３０５を介して、演算ユニット３１０とメモリ３０７で外部入力処理され、外部ＳＤＲＡＭ３２６にデータが保存される。第３の実施の形態のコーデック処理用演算ユニットとメモリ、および専用処理回路３０６は、前記データをエンコード処理し、外部ＳＤＲＡＭ３２６にストリームを保存する。ストリーム入出力手段３０３は、前記ストリームを外部ＳＤＲＡＭ３２６より読み出し、ストリームはメモリカードなどに記録される。
【００７６】
デコードの場合、ストリーム入出力手段３０３から入力されたストリームは、バス網３０５を介し、外部ＳＤＲＡＭ３２６に保存される。第３の実施の形態のコーデック用演算ユニットとメモリ、および専用処理回路３０６は、デコード処理し、外部ＳＤＲＡＭ３２６にデータを保存する。演算ユニット３１１とメモリ３０８は、外部ＳＤＲＡＭ３２６のデータを外部出力処理し、外部出力手段３０４はビデオ信号を出力する。
【００７７】
また、カメラモードにおけるＲＡＷデータ出力のような外部入出力処理の場合、制御手段３２５は、演算ユニット３１０とメモリ３０７および演算ユニット３１１とメモリ３０８に外部入力処理を割り当て、演算ユニット３１２とメモリ３０９に外部入力処理および外部出力処理以外の処理を割り当て、前記以外の演算ユニット（以下、第３の実施の形態の外部出力処理用演算ユニットとメモリ）に外部出力処理を割り当てる。すなわち、制御手段３２５は、多くの演算ユニットに外部入力処理および外部出力処理を割り当てる。
【００７８】
この時、外部入力手段３０２から入力されたビデオ信号は、演算ユニット３１０とメモリ３０７および演算ユニット３１１とメモリ３０８で外部入力処理され、外部ＳＤＲＡＭ３２６に保存される。第３の実施の形態の外部出力処理用演算ユニットとメモリは、外部ＳＤＲＡＭ３２６から読み出したデータを外部出力処理し、外部出力手段３０４よりビデオ信号を出力する。
【００７９】
なお、上記割り当ては、一例であり、これに限られるものではない。
【００８０】
なお、専用処理回路３０６は存在せず、すべての処理を演算ユニットで行っても構わない。また、複数の専用処理回路（例えばＶＬＣ／ＶＬＤなど）があっても構わない。
【００８１】
また、ストリーム入出力手段３０３は、ストリーム入力手段、ストリーム出力手段の２つの構成であっても構わない。
【００８２】
（第４の実施の形態）
図４は、本発明の第４の実施の形態におけるブロック図である（請求項７記載の本発明に相当）。本発明の第４の実施の形態の並列演算処理装置４０１は、外部入出力手段４０２と、ストリーム入出力手段４０３と、バス網４０４と、専用処理回路４０５と、メモリ４０６〜４０８と、演算ユニット４０９〜４１１と、セレクタ４１２〜４１４と、第１のクロック４１５と、第２のクロック４１６と、セレクタ制御信号４１７〜４１９と、ユニット制御信号４２０〜４２２と、制御手段４２３と、外部ＳＤＲＡＭ４２４で構成される。
【００８３】
また、第１のクロック４１５は、外部入出力処理に使用される外部入出力クロック、第２のクロック４１６は、コーデック処理などに使用される内部クロックである。
【００８４】
外部入出力手段４０２から入力されたビデオ信号は、バス網４０４を介して、専用処理回路４０５、メモリ４０６〜４０８、外部ＳＤＲＡＭ４２４のいずれかへ転送される。演算ユニット４０９〜４１１はメモリ４０６〜４０８とそれぞれ１対１に対応し、外部入出力処理と、コーデック処理のどちらかの処理を実行する。前記処理の割り当ては、制御手段４２３のユニット制御信号４２０〜４２２によって実施される。各演算ユニット４０９〜４１１は、制御手段４２３によって割り当てられた処理に応じて、それぞれメモリ４０６〜４０８とデータのやり取りを行い、必要であれば、外部ＳＤＲＡＭ４２４とメモリ４０６〜４０８間でデータのやり取りを行う。
【００８５】
また、各演算ユニットの動作クロックは、第２のクロック４１６である。メモリ４０６〜４０８は、デュアルポートＲＡＭのようにバス網４０４からのリード・ライトと、演算ユニット４０９〜４１１からのリード・ライトを処理できるものとする。
【００８６】
セレクタ４１２〜４１４には、第１のクロック４１５と第２のクロック４１６が入力され、制御手段４２３からのセレクタ制御信号４１７〜４１９によって２つのクロックのどちらか１つが選択されることにより、メモリ４０６〜４０８の動作クロックがそれぞれ決定される。
【００８７】
また、専用処理回路４０５は、第２のクロック４１６で動作し、演算ユニット４０９〜４１１で処理を行うよりも専用回路にすることで回路の小規模化が期待されるコーデック処理の一部の演算（例えば、ＤＣＴなど）を実行する。
【００８８】
また、外部ＳＤＲＡＭ４２４は、バス網４０４に接続されている各手段におけるデータ処理時に使用される。
【００８９】
また、メモリ４０６〜４０８または外部ＳＤＲＡＭ４２４からの出力は、バス網４０４を介して外部入出力手段４０２からビデオ出力される。
【００９０】
以上の構成により、並列演算処理装置４０１は、演算ユニット４０９〜４１１とメモリ４０６〜４０８に外部入出力処理、コーデック処理を割り当てることができる。また、演算ユニット４０９〜４１１や専用処理回路４０５は、同一クロックで動作するため、スケジューリングも容易である。また、本構成は、外部入力と外部出力が同じ動作周波数である場合、あるいは、再生専用機器のように外部出力のみを処理する場合、あるいは、記録専用機器のように外部入力のみを処理する場合に有効である。
【００９１】
以下に、動作の一例を示す。ＴＶモードのＭＰＥＧ２またはＭＰＥＧ４のようなコーデック処理の場合、制御手段４２３は、演算ユニット４０９とメモリ４０６に外部入出力処理を、演算ユニット４１０〜４１１とメモリ４０７〜４０８にコーデック処理を割り当てる。すなわち、制御手段４２３は、多くの演算ユニットにコーデック処理を割り当てる。
【００９２】
エンコードの場合、外部入出力手段４０２から入力されたビデオ信号は、バス網４０４を介して、演算ユニット４０９とメモリ４０６で外部入出力処理され、外部ＳＤＲＡＭ４２４にデータが保存される。演算ユニット４１０〜４１１とメモリ４０７〜４０８、および専用処理回路４０５は、前記データをエンコード処理し、外部ＳＤＲＡＭ４２４にストリームを保存する。ストリーム入出力手段４０３は、前記ストリームを外部ＳＤＲＡＭ４２４より読み出し、ストリームはメモリカードなどに記録される。
【００９３】
デコードの場合、ストリーム入出力手段４０３から入力されたストリームは、バス網４０４を介し、外部ＳＤＲＡＭ４２４に保存される。演算ユニット４１０〜４１１とメモリ４０７〜４０８、および専用処理回路４０５は、デコード処理し、外部ＳＤＲＡＭ４２４にデータを保存する。演算ユニット４０９とメモリ４０６は、外部ＳＤＲＡＭ４２４のデータを外部出力処理し、外部入出力手段４０２はビデオ信号を出力する。
【００９４】
また、カメラモードにおけるＲＡＷデータ出力のような外部入出力処理の場合、制御手段４２３は、演算ユニット４０９とメモリ４０６に外部入出力処理以外の処理を割り当て、演算ユニット４１０〜４１１とメモリ４０７〜４０８に外部入出力処理を割り当てる。すなわち、制御手段４２３は、多くの演算ユニットに外部入出力処理を割り当てる。
【００９５】
この時、外部入出力手段４０２から入力されたビデオ信号は、演算ユニット４１０〜４１１とメモリ４０７〜４０８で外部入出力処理され、外部ＳＤＲＡＭ４２４に保存される。演算ユニット４１０〜４１１とメモリ４０７〜４０８は、外部ＳＤＲＡＭ４２４から読み出したデータを外部入出力処理し、外部入出力手段４０２よりビデオ信号を出力する。
【００９６】
なお、上記割り当ては、一例であり、これに限られるものではない。
【００９７】
なお、専用処理回路４０５は存在せず、すべての処理を演算ユニットで行っても構わない。また、複数の専用処理回路（例えばＶＬＣ／ＶＬＤなど）があっても構わない。
【００９８】
また、ストリーム入出力手段４０３は、ストリーム入力手段、ストリーム出力手段の２つの構成であっても構わない。
【００９９】
（第５の実施の形態）
図５は、本発明の第５の実施の形態におけるブロック図である（請求項９記載の本発明に相当）。本発明の第５の実施の形態の並列演算処理装置５０１は、外部入力手段５０２と、入力バッファ５０３と、外部出力手段５０４と、出力バッファ５０５と、ストリーム入出力手段５０６と、バス網５０７と、専用処理回路５０８と、メモリ５０９〜５１１と、演算ユニット５１２〜５１４と、第１のクロック５１５と、第２のクロック５１６と、第３のクロック５１７と、ユニット制御信号５１８〜５２０と、制御手段５２１と、外部ＳＤＲＡＭ５２２で構成される。
【０１００】
また、第１のクロック５１５は、外部入力クロック、第２のクロック５１６は、外部出力クロック、第３のクロック５１７は、内部クロックである。
【０１０１】
外部入力手段５０２から入力されたビデオ信号は、入力バッファ５０３に第１のクロック５１５で書き込まれ、第３のクロック５１７で読み出される（ＦＩＦＯメモリ的な動作である）。同様に、出力データは、出力バッファ５０５に第３のクロック５１７で書き込まれ、第２のクロック５１６で読み出され（ＦＩＦＯメモリ的な動作である）、外部出力手段５０４より出力される。
【０１０２】
入力バッファ５０３からのデータは、バス網５０７を介して、専用処理回路５０８、メモリ５０９〜５１１、外部ＳＤＲＡＭ５２２のいずれかへ転送される。演算ユニット５１２〜５１４は、メモリ５０９〜５１１とそれぞれ１対１に対応し、外部入力処理と、外部出力処理と、コーデック処理のいずれか一つの処理を実行する。前記処理の割り当ては、制御手段５２１のユニット制御信号５１８〜５２０によって実施される。各演算ユニット５１２〜５１４は、制御手段５２１によって割り当てられた処理に応じて、それぞれメモリ５０９〜５１１とデータのやり取りを行い、必要であれば、外部ＳＤＲＡＭ５２２とメモリ５０９〜５１１間でデータのやり取りを行う。
【０１０３】
また、演算ユニット５１２〜５１４、メモリ５０９〜５１１の動作クロックは、第３のクロック５１７である。メモリ５０９〜５１１は、デュアルポートＲＡＭのようにバス網５０７からのリード・ライトと、演算ユニット５１２〜５１４からのリード・ライトを処理できるものとする。
【０１０４】
また、専用処理回路５０８は、第３のクロック５１７で動作し、演算ユニット５１２〜５１４で処理を行うよりも専用回路にすることで回路の小規模化が期待されるコーデック処理の一部の演算（例えば、ＤＣＴなど）を実行する。
【０１０５】
また、外部ＳＤＲＡＭ５２２は、バス網５０７に接続されている各手段におけるデータ処理時に使用される。
【０１０６】
また、メモリ５０９〜５１１または外部ＳＤＲＡＭ５２２からの出力は、バス網５０７を介して出力バッファ５０５に書き込まれ、外部出力手段５０４により読み出され、ビデオ出力される。
【０１０７】
以上の構成により、並列演算処理装置５０１は、演算ユニット５１２〜５１４とメモリ５０９〜５１１に外部入力処理、外部出力処理、コーデック処理を割り当てることができる。また、第１、第２のクロックは入力バッファ、出力バッファで切離されるため、演算ユニット５１２〜５１４、専用処理回路５０８、メモリ５０９〜５１１は、第３のクロックのみで動作しており、実施の形態１から４に示した図１〜図４の構成と異なり、演算ユニット、専用処理回路、メモリのクロック切替回路が不要となる。また、メモリ５０９〜５１１や演算ユニット５１２〜５１４や専用処理回路５０８は、同一クロックで動作するため、スケジューリングはさらに容易である。また、本構成は、外部入力と外部出力の動作周波数が異なる場合に有効である。
【０１０８】
以下に、動作の一例を示す。ＴＶモードのＭＰＥＧ２またはＭＰＥＧ４のようなコーデック処理の場合、制御手段５２１は、演算ユニット５１２とメモリ５０９に外部入力処理を、演算ユニット５１３とメモリ５１０に外部出力処理を、演算ユニット５１２、５１３以外の演算ユニットとメモリ５０９、５１０以外のメモリ（以下、第５の実施の形態のコーデック処理用演算ユニットとメモリ）にコーデック処理を割り当てる。すなわち、制御手段５２１は、多くの演算ユニットにコーデック処理を割り当てる。
【０１０９】
エンコードの場合、外部入力手段５０２から入力されたビデオ信号は、入力バッファ５０３に書き込まれる。その後、入力バッファ５０３から読み出され、バス網５０７を介して、演算ユニット５１２とメモリ５０９で外部入力処理され、外部ＳＤＲＡＭ５２２にデータが保存される。第５の実施の形態のコーデック処理用演算ユニットとメモリ、および専用処理回路５０８は、前記データをエンコード処理し、外部ＳＤＲＡＭ５２２にストリームを保存する。ストリーム入出力手段５０６は、前記ストリームを外部ＳＤＲＡＭ５２２より読み出し、ストリームはメモリカードなどに記録される。
【０１１０】
デコードの場合、ストリーム入出力手段５０６から入力されたストリームは、バス網５０７を介し、外部ＳＤＲＡＭ５２２に保存される。第５の実施の形態のコーデック用演算ユニットとメモリ、および専用処理回路５０８は、デコード処理し、外部ＳＤＲＡＭ５２２にデータを保存する。演算ユニット５１３とメモリ５１０は、外部ＳＤＲＡＭ５２２のデータを外部出力処理し、出力バッファ５０５に書き込む。外部出力手段５０４は、出力バッファ５０５より読み出し、ビデオ信号を出力する。
【０１１１】
また、カメラモードにおけるＲＡＷデータ出力のような外部入出力処理の場合、制御手段５２１は、演算ユニット５１２とメモリ５０９および演算ユニット５１３とメモリ５１０に外部入力処理を割り当て、演算ユニット５１４とメモリ５１１に外部入力処理および外部出力処理以外の処理を割り当て、前記以外の演算ユニット（以下、第５の実施の形態の外部出力処理用演算ユニットとメモリ）に外部出力処理を割り当てる。すなわち、制御手段５２１は、多くの演算ユニットに外部入力処理および外部出力処理を割り当てる。
【０１１２】
この時、外部入力手段５０２から入力されたビデオ信号は、入力バッファ５０３に書き込まれる。その後、入力バッファ５０３から読み出され、演算ユニット５１２とメモリ５０９および演算ユニット５１３とメモリ５１０で外部入力処理され、外部ＳＤＲＡＭ５２２に保存される。第５の実施の形態の外部出力処理用演算ユニットとメモリは、外部ＳＤＲＡＭ５２２から読み出したデータを外部出力処理し、出力バッファ５０５に書き込む。外部出力手段５０４は、出力バッファ５０５より読み出し、ビデオ信号を出力する。
【０１１３】
なお、上記割り当ては、一例であり、これに限られるものではない。
【０１１４】
なお、専用処理回路５０８は存在せず、すべての処理を演算ユニットで行っても構わない。また、複数の専用処理回路（例えばＶＬＣ／ＶＬＤなど）があっても構わない。
【０１１５】
また、ストリーム入出力手段５０６は、ストリーム入力手段、ストリーム出力手段の２つの構成であっても構わない。
【０１１６】
（第６の実施の形態）
図６は、本発明の第６の実施の形態におけるブロック図である（請求項１１記載の本発明に相当）。本発明の第６の実施の形態の並列演算処理装置６０１は、外部入出力手段６０２と、入出力バッファ６０３と、ストリーム入出力手段６０４と、バス網６０５と、専用処理回路６０６と、メモリ６０７〜６０９と、演算ユニット６１０〜６１２と、第１のクロック６１３と、第２のクロック６１４と、ユニット制御信号６１５〜６１７と、制御手段６１８と、外部ＳＤＲＡＭ６１９で構成される。
【０１１７】
また、第１のクロック６１３は、外部入出力クロック、第２のクロック６１４は、内部クロックである。
【０１１８】
外部入出力手段６０２から入力されたビデオ信号は、入出力バッファ６０３に第１のクロック６１３で書き込まれ、第２のクロック６１４で読み出される（ＦＩＦＯメモリ的な動作である）。同様に、出力データは、入出力バッファ６０３に第２のクロック６１４で書き込まれ、第１のクロック６１３で読み出され（ＦＩＦＯメモリ的な動作である）、外部入出力手段６０２より出力される。
【０１１９】
入出力バッファ６０３からのデータは、バス網６０５を介して、専用処理回路６０６、メモリ６０７〜６０９、外部ＳＤＲＡＭ６１９のいずれかへ転送される。演算ユニット６１０〜６１２は、メモリ６０７〜６０９とそれぞれ１対１に対応し、外部入出力処理と、コーデック処理のどちらかの処理を実行する。前記処理の割り当ては、制御手段６１８のユニット制御信号６１５〜６１７によって実施される。各演算ユニット６１０〜６１２は、制御手段６１８によって割り当てられた処理に応じて、それぞれメモリ６０７〜６０９とデータのやり取りを行い、必要であれば、外部ＳＤＲＡＭ６１９とメモリ６０７〜６０９間でデータのやり取りを行う。
【０１２０】
また、演算ユニット６１０〜６１２、メモリ６０７〜６０９の動作クロックは、第２のクロック６１４である。メモリ６０７〜６０９は、デュアルポートＲＡＭのようにバス網６０５からのリード・ライトと、演算ユニット６１０〜６１２からのリード・ライトを処理できるものとする。
【０１２１】
また、専用処理回路６０６は、第２のクロック６１４で動作し、演算ユニット６１０〜６１２で処理を行うよりも専用回路にすることで回路の小規模化が期待されるコーデック処理の一部の演算（例えば、ＤＣＴなど）を実行する。
【０１２２】
また、外部ＳＤＲＡＭ６１９は、バス網６０５に接続されている各手段におけるデータ処理時に使用される。
【０１２３】
また、メモリ６０７〜６０９または外部ＳＤＲＡＭ６１９からの出力は、バス網６０５を介して入出力バッファ６０３に書き込まれ、外部入出力手段６０２により読み出され、ビデオ出力される。
【０１２４】
以上の構成により、並列演算処理装置６０１は、演算ユニット６１０〜６１２とメモリ６０７〜６０９に外部入力処理、外部出力処理、コーデック処理を割り当てることができる。また、メモリ６０７〜６０９や演算ユニット６１０〜６１２や専用処理回路６０６は、同一クロックで動作するため、スケジューリングはさらに容易である。また、本構成は、外部入力と外部出力が同じ動作周波数である場合、あるいは、再生専用機器のように外部出力のみを処理する場合、あるいは、記録専用機器のように外部入力のみを処理する場合に有効である。
【０１２５】
以下に、動作の一例を示す。ＴＶモードのＭＰＥＧ２またはＭＰＥＧ４のようなコーデック処理の場合、制御手段６１８は、演算ユニット６１０とメモリ６０７に外部入出力処理を、演算ユニット６１１〜６１２とメモリ６０８〜６０９にコーデック処理を割り当てる。すなわち、制御手段６１８は、多くの演算ユニットにコーデック処理を割り当てる。
【０１２６】
エンコードの場合、外部入出力手段６０２から入力されたビデオ信号は、入出力バッファ６０３に書き込まれる。その後、入出力バッファ６０３から読み出され、バス網６０５を介して、演算ユニット６１０とメモリ６０７で外部入出力処理され、外部ＳＤＲＡＭ６１９にデータが保存される。第６の実施の形態のコーデック処理用演算ユニットとメモリ、および専用処理回路６０６は、前記データをエンコード処理し、外部ＳＤＲＡＭ６１９にストリームを保存する。ストリーム入出力手段６０４は、前記ストリームを外部ＳＤＲＡＭ６１９より読み出し、ストリームはメモリカードなどに記録される。
【０１２７】
デコードの場合、ストリーム入出力手段６０４から入力されたストリームは、バス網６０５を介し、外部ＳＤＲＡＭ６１９に保存される。第６の実施の形態のコーデック用演算ユニットとメモリ、および専用処理回路６０６は、デコード処理し、外部ＳＤＲＡＭ６１９にデータを保存する。演算ユニット６１０とメモリ６０７は、外部ＳＤＲＡＭ６１９のデータを外部入出力処理し、入出力バッファ６０３に書き込む。外部入出力手段６０２は、入出力バッファ６０３より読み出し、ビデオ信号を出力する。
【０１２８】
また、カメラモードにおけるＲＡＷデータ出力のような外部入出力処理の場合、制御手段６１８は、演算ユニット６１０とメモリ６０７に外部入出力処理以外の処理を割り当て、演算ユニット６１１〜６１２とメモリ６０８〜６０９に外部入出力処理を割り当てる。すなわち、制御手段６１８は、多くの演算ユニットに外部入出力処理を割り当てる。
【０１２９】
この時、外部入出力手段６０２から入力されたビデオ信号は、入出力バッファ６０３に書き込まれる。その後、入出力バッファ６０３から読み出され、演算ユニット６１１〜６１２とメモリ６０８〜６０９で外部入出力処理され、外部ＳＤＲＡＭ６１９に保存される。演算ユニット６１１〜６１２とメモリ６０８〜６０９は、外部ＳＤＲＡＭ６１９から読み出したデータを外部入出力処理し、入出力バッファ６０３に書き込む。外部入出力手段６０２は、入出力バッファ６０３より読み出し、ビデオ信号を出力する。
【０１３０】
なお、上記割り当ては、一例であり、これに限られるものではない。
【０１３１】
なお、専用処理回路６０６は存在せず、すべての処理を演算ユニットで行っても構わない。また、複数の専用処理回路（例えばＶＬＣ／ＶＬＤなど）があっても構わない。
【０１３２】
また、ストリーム入出力手段６０４は、ストリーム入力手段、ストリーム出力手段の２つの構成であっても構わない。
【０１３３】
【発明の効果】
以上説明したことから明らかなように、請求項１または請求項５または請求項９に記載の本発明は、外部入力と外部出力の動作周波数が異なる場合に、各演算ユニットに外部入力処理と外部出力処理とコーデック処理を割り当てる並列演算処理装置を提供することができる。
【０１３４】
請求項３または請求項７または請求項１１に記載の本発明は、外部入力と外部出力の動作周波数が同じ場合、あるいは再生専用機器のように外部出力のみを処理する場合、あるいは、記録専用機器のように外部入力のみを処理する場合、各演算ユニットに外部入出力処理とコーデック処理を割り当てる並列演算処理装置を提供することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態における並列演算処理装置のブロック図
【図２】本発明の第２の実施の形態における並列演算処理装置のブロック図
【図３】本発明の第３の実施の形態における並列演算処理装置のブロック図
【図４】本発明の第４の実施の形態における並列演算処理装置のブロック図
【図５】本発明の第５の実施の形態における並列演算処理装置のブロック図
【図６】本発明の第６の実施の形態における並列演算処理装置のブロック図
【図７】本発明の第１〜第６の実施の形態における並列演算処理装置の制御手段のブロック図
【図８】本発明の第１〜第６の実施の形態における並列演算処理装置の演算ユニットのブロック図
【図９】従来の専用ハードウエア構成によるＬＳＩの一例を示すブロック図
【図１０】従来の汎用ハードウエア構成によるＬＳＩの一例を示すブロック図
【符号の説明】
１０１  並列演算処理装置
１０２  外部入力手段
１０３  ストリーム入出力手段
１０４  外部出力手段
１０５  バス網
１０６  専用処理回路
１０７、１０８、１０９  演算ユニット
１１０、１１１、１１２  セレクタ
１１３  第１のクロック
１１４  第２のクロック
１１５  第３のクロック
１１６、１１７、１１８  セレクタ制御信号
１１９、１２０、１２１  ユニット制御信号
１２２  制御手段
１２３  外部ＳＤＲＡＭ
２０１  並列演算処理装置
２０２  外部入出力手段
２０３  ストリーム入出力手段
２０４  バス網
２０５  専用処理回路
２０６、２０７、２０８  演算ユニット
２０９、２１０、２１１  セレクタ
２１２  第１のクロック
２１３  第２のクロック
２１４、２１５、２１６  セレクタ制御信号
２１７、２１８、２１９  ユニット制御信号
２２０  制御手段
２２１  外部ＳＤＲＡＭ
３０１  並列演算処理装置
３０２  外部入力手段
３０３  ストリーム入出力手段
３０４  外部出力手段
３０５  バス網
３０６  専用処理回路
３０７、３０８、３０９  メモリ
３１０、３１１、３１２  演算ユニット
３１３、３１４、３１５  セレクタ
３１６  第１のクロック
３１７  第２のクロック
３１８  第３のクロック
３１９、３２０、３２１  セレクタ制御信号
３２２、３２３、３２４  ユニット制御信号
３２５  制御手段
３２６  外部ＳＤＲＡＭ
４０１  並列演算処理装置
４０２  外部入出力手段
４０３  ストリーム入出力手段
４０４  バス網
４０５  専用処理回路
４０６、４０７、４０８  メモリ
４０９、４１０、４１１  演算ユニット
４１２、４１３、４１４  セレクタ
４１５  第１のクロック
４１６  第２のクロック
４１７、４１８、４１９  セレクタ制御信号
４２０、４２１、４２２  ユニット制御信号
４２３  制御手段
４２４  外部ＳＤＲＡＭ
５０１  並列演算処理装置
５０２  外部入力手段
５０３  入力バッファ
５０４  外部出力手段
５０５  出力バッファ
５０６  ストリーム入出力手段
５０７  バス網
５０８  専用処理回路
５０９、５１０、５１１  メモリ
５１２、５１３、５１４  演算ユニット
５１５  第１のクロック
５１６  第２のクロック
５１７  第３のクロック
５１８、５１９、５２０  ユニット制御信号
５２１  制御手段
５２２  外部ＳＤＲＡＭ
６０１  並列演算処理装置
６０２  外部入出力手段
６０３  入出力バッファ
６０４  ストリーム入出力手段
６０５  バス網
６０６  専用処理回路
６０７、６０８、６０９  メモリ
６１０、６１１、６１２  演算ユニット
６１３  第１のクロック
６１４  第２のクロック
６１５、６１６、６１７  ユニット制御信号
６１８  制御手段
６１９  外部ＳＤＲＡＭ
７０１  制御手段
７０２  命令キャッシュ
７０３  命令デコーダ
７０４  制御回路
７０５  ＢＩＯＳ
７０６  ホストからの命令
７０７  ユニット制御信号
７０８  セレクタ制御信号
７０９  演算ユニット状態信号
７１０  動作モード選択信号
７１１  動作状態信号
８０１  演算ユニット
８０２  ローカルバス
８０３  積和演算回路
８０４  論理演算回路
８０５  算術演算回路
８０６  シフト演算回路
８０７  ＭＥ処理回路
８０８  制御回路
８０９  バス網
８１０  ユニット制御信号
８１１  選択クロック
８１２  ｎ分周回路
８１３  セレクタ
８１４  フリップフロップ
８１５  分周クロック選択信号
８１６  クロック制御信号
８１７  クロック信号
９０１  ＬＳＩ
９０２  入出力処理手段
９０３、９０６、９０８  ＳＲＡＭ
９０４  外部ＳＤＲＡＭ
９０５  ＭＥ処理手段
９０７  コーデック処理手段
９０９  ストリーム入力手段
９１０  ストリーム出力手段
１００１  ＬＳＩ
１００２  外部入出力手段
１００３  バス網
１００４、１００５、１００６  演算ユニット
１００７  ストリーム入出力手段
１００８  外部ＳＤＲＡＭ
【図１】
2004326228.tif 000003
【図２】
2004326228.tif 000004
【図３】
2004326228.tif 000005
【図４】
2004326228.tif 000006
【図５】
2004326228.tif 000007
【図６】
2004326228.tif 000008
【図７】
2004326228.tif 000009
【図８】
2004326228.tif 000010
【図９】
2004326228.tif 000011
【図１０】
2004326228.tif 000012