"複数のプロセッサと、前記複数のプロセッサのそれぞれに対応して設けられる複数のキャッシュメモリと、共有バスを介して前記複数のキャッシュメモリに接続され、前記複数のプロセッサからアクセスされる共有メモリを接続するためのインタフェース手段と、複数の共有ローカルメモリとを含み、前記複数の共有ローカルメモリのそれぞれが、前記複数のプロセッサの中の2つのプロセッサに接続される、マルチプロセッサ。前記マルチプロセッサはさらに、前記複数の共有ローカルメモリのそれぞれに対応して設けられ、接続される2つのプロセッサからの書き込みおよび読み出しを制御する複数の制御手段を含む、請求項1記載のマルチプロセッサ。前記複数の共有ローカルメモリのそれぞれは、書き込みおよび読み出しを許可する情報を格納するレジスタを記憶する領域を有し、前記複数の共有ローカルメモリのそれぞれに接続される2つのプロセッサは、前記レジスタを参照して対応する共有ローカルメモリへの書き込みおよび読み出しを行なう、請求項2記載のマルチプロセッサ。前記複数のプロセッサは、マトリクス上に配置され、前記複数の共有ローカルメモリは、前記複数のプロセッサの間に配置されており、前記マルチプロセッサはさらに、前記複数のプロセッサと前記複数の共有ローカルメモリとの間の接続を切り替える複数の切替手段を含み、前記複数の共有ローカルメモリは、前記切替手段を切り替えるための情報を記憶する領域を有する、請求項1~3のいずれかに記載のマルチプロセッサ。前記複数のプロセッサのそれぞれは、接続される共有ローカルメモリに対応する切替手段を切り替えるための情報を格納する、請求項4記載のマルチプロセッサ。前記複数のプロセッサの少なくとも1つは、接続される共有ローカルメモリに、前記複数の切替手段の全てを切り替えるための情報を格納する、請求項4記載のマルチプロセッサ。複数のプロセッサと、複数の共有ローカルメモリと、前記複数の共有ローカルメモリに対応して設けられ、前記複数のプロセッサの中の2つのプロセッサに接続される複数のキャッシュメモリとを含み、前記複数のプロセッサと前記複数のキャッシュメモリとがリング状に接続される、マルチプロセッサ。複数のプロセッサと、複数の共有ローカルメモリと、前記複数のプロセッサの各ポートに対応して設けられ、前記複数の共有ローカルメモリのポートに接続される複数のキャッシュメモリとを含み、前記複数の共有ローカルメモリのそれぞれが、前記複数のキャッシュメモリの中の2つのキャッシュメモリに接続される、マルチプロセッサ。複数のプロセッサと、前記複数のプロセッサのそれぞれに対応して設けられる複数のキャッシュメモリと、共有バスを介して前記複数のキャッシュメモリに接続され、前記複数のプロセッサからアクセスされる共有メモリを接続するためのインタフェース手段と、複数の共有ローカルメモリと、前記複数のプロセッサによって処理された画像データに対して画像処理を行なう画像処理手段と、前記画像処理手段によって処理された後の画像データを表示する表示手段とを含み、前記複数の共有ローカルメモリのそれぞれが、前記複数のプロセッサの中の2つのプロセッサに接続されており、前記複数のプロセッサと前記複数の共有ローカルメモリとがリング状に接続される、画像処理システム。共有メモリ型の対称型マルチプロセッサSymmetricalMultiProcessor:SMPにおいては、共有メモリへのアクセス集中がボトルネックとなるため、プロセッサ数に比例してスケーラブルにマルチプロセッサ性能を向上させることは非常に難しい。また、共有メモリ型のSMPによる並列処理においては、プロセス間の同期制御や排他制御のためのスピンロック処理や、キャッシュコヒーレンシを保持するためのバススヌーピングなどの処理が必須であるが、これらの処理に伴う待ち時間の増大や、バストラフィックの増加に伴うパフォーマンスの低下は、マルチプロセッサの性能向上を阻害する一因ともなっている。一方、非対称マルチプルセッサAsymmetricalMultiProcessor:AMPによる機能分散処理においては、全体の処理を幾つかの部分に分割し、別々のプロセッサがそれらの処理を担当することで、データ処理を効率的に行なうことができる。ただし、従来の共有バス型のAMPは、SMPと同様に、共有メモリへのバスアクセス集中がボトルネックとなり、性能向上が難しいといった問題点があった。ポイントツーポイント接続、クロスバスイッチによる接続、リングバスによる接続には、上述の問題点がある。本発明は、上記問題点を解決するためになされたものであり、その目的は、バスアクセス集中によるボトルネックを解消し、並列処理性能のスケーラビリティを向上させることが可能なマルチプロセッサおよびそれを用いた画像処理システムを提供することである。本発明の一実施例によれば、マルチプロセッサが提供される。マルチプロセッサは、複数のプロセッサユニットと、複数のプロセッサユニットのそれぞれに対応して設けられる複数のキャッシュメモリと、共有バスを介して複数のキャッシュメモリに接続され、複数のプロセッサユニットからアクセスされる共有メモリを接続するためのI/Fと、複数の共有ローカルメモリとを含む。複数の共有ローカルメモリのそれぞれが、複数のプロセッサユニットの中の2つのプロセッサに接続される。本発明の一実施例によれば、複数の共有ローカルメモリのそれぞれが、複数のプロセッサユニットの中の2つのプロセッサに接続されるので、データの共有やデータ転送のバッファリングを容易に行なうことが可能となる。図1は、一般的な共有メモリ型マルチプロセッサシステムの構成例を示す図である。このマルチプロセッサシステムは、n個のプロセッサユニットPU01-0~PUn-11-n-1と、プロセッサユニットのそれぞれに接続されるキャッシュメモリ2-0~2-n-1と、共有メモリ3とを含む。PU0~PUn-11-0~1-n-1は、キャッシュメモリ2-0~2-n-1および共有バス4を介して共有メモリ3にアクセスすることができる。共有メモリ3は、2次キャッシュメモリ、メインメモリ主記憶などによって構成される。半導体プロセス技術の進展によって、多数のプロセッサを半導体チップ上に集積可能となってきたが、図1に示すような一般的な共有バス型マルチプロセッサの構成では、バスアクセスがボトルネックとなり、プロセッサ数に応じたスケーラブルな性能向上が困難となっている。プロセッサ数に応じて処理性能をスケーラブルに向上させるには、プロセッサごとの機能分散と、粒度の大きなパイプライン処理による並列処理が有効である。データ処理を幾つかの処理段階に分け、複数のプロセッサにそれぞれの処理を担当させ、バケツリレー方式でデータを処理することで、高速にデータ処理を行なうことができる。第1の実施の形態図2は、本発明の第1の実施の形態におけるマルチプロセッサの構成例を示すブロック図である。このマルチプロセッサは、n個のプロセッサユニットPU01-0~PUn-11-n-1と、プロセッサユニットのそれぞれに接続されるキャッシュメモリ2-0~2-n-1と、共有メモリ3と、n個の共有ローカルメモリ5-0~5-n-1とを含む。PU0~PUn-11-0~1-n-1は、キャッシュメモリ2-0~2-n-1および共有バス4を介して共有メモリ3にアクセスすることができる。共有ローカルメモリ5-0~5-n-1のそれぞれは、隣接する2つのプロセッサユニットに接続されている。共有ローカルメモリ5-0は、PU01-0とPU11-1とに接続される。同様にして、共有ローカルメモリ5-1は、PU11-1とPU21-2とに接続される。また、共有ローカルメモリ5-n-1は、PUn-11-n-1とPU01-0とに接続され、図2に示すように、PU01-0~PUn-11-n-1および共有ローカルメモリ5-0~5-n-1がリング状に接続される。このように、隣接する2つのプロセッサユニット間に、共有ローカルメモリを用いた通信経路を設ける。すなわち、1つのプロセッサユニットが有するローカルメモリに対して、隣接するプロセッサユニットからもアクセス可能なように専用のデータパスを設け、隣接するプロセッサユニット間でローカルメモリを共有する構成を有してる。図3は、本発明の第1の実施の形態におけるマルチプロセッサの概念的な構成例を示す図である。本実施の形態におけるマルチプロセッサは、共有ローカルメモリ5-0~5-n-1を用いてポイントツーポイントのプロセッサ間接続を行なうものであり、プロセッサユニット間に共有ローカルメモリを配置し、共有ローカルメモリを介して隣接するプロセッサユニット間でのデータ転送を行なうものである。これは、図3に示すように、概念的にはすべての隣接プロセッサ間に共有ローカルメモリを配置したリングバス接続として動作する。共有ローカルメモリ5-0~5-n-1を用いてプロセッサユニット間を接続しているため、データ転送方向に制約はなく、双方向のデータ転送を行なうことが可能である。共有ローカルメモリ5-0~5-n-1には、プログラムコードおよびデータの両方を配置することができる。プロセッサユニットが、対応する共有ローカルメモリ上のプログラムコードを実行中は、共有バス4に対する命令フェッチを実行しない。また、プロセッサユニットは、データ処理に必要なオペランドデータが全て共有ローカルメモリにある場合には、共有バス4を介して共有メモリ3からオペランドデータを読み出す必要がない。このように、プロセッサユニットは、共有ローカルメモリをローカルな命令メモリおよびデータメモリとして使用することで、システムの共有バス4に接続された共有メモリ3にアクセスすることなくデータ処理が実行可能となる。また、プロセッサユニットは対称であり、起点終点が決まっていないため、以前のデータ処理結果に基づいて、直ちに次のデータ処理を実行でき、データの中間結果を共有メモリに書き戻す必要はない。また、PU0~PUn-11-0~1-n-1が処理内容を分担して、対応する共有ローカルメモリ5-0~5-n-1を用いて機能分散処理を行なうことにより、共有バス4のバスボトルネックを回避でき、高速でスケーラブルな並列処理を行なうことが可能となる。図4は、本発明の第1の実施の形態におけるマルチプロセッサを含んだ半導体装置の一例を示す図である。この半導体装置100は、PU0~31-0~1-3と、共有ローカルメモリSLM:SharedLocalMemory0~35-0~5-3と、SLM0~35-0~5-3に対応して設けられる排他制御用同期機構6-0~6-3と、内部バス制御部7と、2次キャッシュ8と、DDR3I/F9と、DMACDirectMemoryAccessController10と、内蔵SRAM11と、外部バス制御部12と、周辺回路13と、汎用入出力ポート14とを含む。なお、図4においては、4つのプロセッサユニットPUと、4つの共有ローカルメモリSLMとが記載されているが、これらの個数は4つに限られるものではない。内部バス制御部7は、共有バス4を介してPU0~31-0~1-3に接続されており、PU0~31-0~1-3からのアクセス要求に応じて2次キャッシュ8に対するアクセスを行なう。2次キャッシュ8は、内部バス制御部7からアクセス要求があったときに、その命令コードまたはデータを保持している場合には、内部バス制御部7にそれを出力する。また、その命令コードまたはデータがない場合には、内部バス15に接続されるDMAC10、内蔵SRAM11、外部バス制御部12に接続される外部メモリ、周辺回路13などや、DDR3I/F9に接続される外部メモリなどにアクセスする。DDR3I/F9は、半導体装置100の外部にある図示しないSDRAMSynchronousDynamicRandomAccessMemoryなどに接続され、そのアクセスを制御する。DMAC10は、PU0~31-0~1-3からの要求に応じて、メモリ-メモリ間またはメモリ-I/O間のDMA転送を制御する。外部バス制御部12は、CSコントローラ、SDRAMコントローラ、PCカードコントローラなどによって構成され、半導体装置100の外部にあるSDRAMやメモリカードなどへのアクセスを制御する。周辺回路13は、ICUInterruptControlUnit、CLKCClockController、TIMERタイマ、UARTUniversalAsynchronousReceiverTransmitter、CSIOClockedSerialInputOutput、GPIOGeneralPurposeInputOutputなどを含む。汎用入出力ポート14は、半導体装置100の外部にある図示しない周辺デバイスなどに接続され、そのアクセスを制御する。また、PU01-0は、命令キャッシュ21と、データキャッシュ22と、MMUMemoryManagementUnit23と、CPU24とを含む。なお、PU1~31-1~1-3も同様の構成を有しているものとする。MMU23は、CPU24による命令コードのフェッチまたはデータアクセスがあるときに、命令キャッシュ21またはデータキャッシュ22にその命令コードまたはデータがあるか否かを調べ、ある場合には、命令キャッシュ21からの命令コードのフェッチ、データキャッシュ22からのデータ読み出し、またはデータキャッシュ22へのデータ書込みを行なう。また、命令コードまたはデータがない場合には、内部バス制御部7を介して2次キャッシュ8にアクセスする。また、CPU24がSLM05-0またはSLM35-3にアクセスする場合には、直接アクセスを行なう。SLM0~35-0~5-3は、小規模SRAMなどの高速メモリによって構成される。PU0~31-0~1-3が大規模なプログラムを実行する場合には、SLM0~35-0~5-3にプログラムコードを置くのではなく、命令キャッシュ21を介して半導体装置100の外部にあるSDRAMなどのメインメモリからプログラムコードをフェッチすることで、プログラムサイズの制約をなくすことができる。図5は、共有ローカルメモリに1ポートメモリを用いた場合のマルチプロセッサの構成例を示す図である。SLMi5-iは、ローカル共有バスを介してPUi1-iおよびPUj1-jに接続される。また、SLMj5-jは、ローカル共有バスを介してPUj1-jおよびPUk1-kに接続される。SEMi6-iは、PUi1-iおよびPUj1-jからSLMi5-iへのアクセスの排他制御を行なう同期機構セマフォである。また、SEMj6-jも同様に、PUj1-jおよびPUk1-kからSLMj5-jへのアクセスの排他制御を行なう同期機構である。1ポートメモリは、2ポートメモリに比べてメモリセル面積が小さく高集積なため、高速で比較的大容量の共有ローカルメモリを実現することができる。1ポートメモリを使用する場合は、共有ローカルメモリへのアクセス調停が必須である。図6は、共有ローカルメモリに2ポートメモリを用いた場合のマルチプロセッサの構成例を示す図である。SLMi5-iのそれぞれのポートは、PUi1-iおよびPUj1-jに接続される。また、SLMj5-jのそれぞれのポートは、PUj1-jおよびPUk1-kに接続される。SEMi6-iは、PUi1-iおよびPUj1-jからSLMi5-iへのアクセスの排他制御を行なう同期機構セマフォである。また、SEMj6-jも同様に、PUj1-jおよびPUk1-kからSLMj5-jへのアクセスの排他制御を行なう同期機構である。2ポートメモリを用いた場合には、メモリセル面積が大きいため容量の大きな共有ローカルメモリを実現することは困難であるが、2つのポートから同時にデータを読み出すことができるため、読み出しアクセスに対する調停が不要である。2ポートメモリを用いる場合にも、データの一貫性を保証するために書き込み処理の排他制御が必要となる。図5および図6に示すように、各プロセッサユニットは、隣接するプロセッサユニットとの間でポイントツーポイント接続のためのポートを有しており、共有ローカルメモリはこれらのポートに接続されている。各プロセッサユニットのポートは、左隣のプロセッサユニットへのポートをポートA、右隣のプロセッサユニットへのポートをポートBと呼ぶことにする。後述のように、プロセッサユニットのこれらのポートに接続された共有ローカルメモリは、それぞれプロセッサユニットからオペランドアクセス可能な空間にメモリマップされており、ポート名で一意に決まるアドレス領域に配置される。ここで、プログラムの同期のための排他制御は、プロセッサの排他制御用命令を使用することによってソフトウェアで実現することもできるが、リソースに対する排他制御をハードウェアの同期機構を用いて実現することもできる。図5および図6に示すマルチプロセッサにおいては、このような同期機構としてハードウェアで実現したセマフォフラグを共有メモリに持たせている。ハードウェアセマフォのフラグビットを、周辺IOの制御レジスタとしてメモリマップにマッピングしておくことで、プログラムからアクセスして、容易に排他制御を実現することが可能である。図7は、セマフォレジスタの一例を示す図である。図7においては、32個のSEMが設けられる場合を示しており、読み書き可能なSビットがセマフォフラグとしてマッピングされている。このSビットには書き込まれた値が保持されるが、プロセッサユニットが内容を読み出すと、読み出した後に自動的にクリアされる。セマフォレジスタのSビットは、0のときにアクセス禁止状態、1のときにアクセス許可状態であることを示している。セマフォレジスタによる排他制御を行なう場合、予めプログラムでアクセス許可状態である1に初期化しておく必要がある。共有リソースごとに、このようなセマフォレジスタを1つ使用することで、プログラムによって共有ローカルメモリの全体、または一部領域を対象とした排他制御アクセスを行なうことができる。図8は、図7に示すセマフォレジスタを用いた排他制御の一例を示すフローチャートである。まず、プロセッサユニットは、対応の共有ローカルメモリのセマフォレジスタの内容を読み出してS11、Sビットの値がアクセス許可状態を示す1であるか否かを判定するS12。Sビットの値が1でなければS12,No、再度Sビットの読み出し動作を繰り返し、アクセス許可状態となるまで待機する。このとき、プロセッサユニットは、ポーリングによって単純にSビットの読み出しを行なうようにしてもよいが、再度の読み出しを行なう前に所定の時間だけ待機したり、待機している間に別タスクの処理を行なうようにしてもよい。Sビットの値がアクセス許可状態を示す1であればS12,Yes、共有リソースに対するアクセス権を獲得して、共有ローカルメモリにアクセスするS13。プロセッサユニットは、共有ローカルメモリに対するアクセスが完了すると、アクセス権を解放して他のプロセッサユニットのアクセス許可を行なうために、セマフォレジスタのSビットに1を設定して、排他アクセス制御を終了する。図9は、半導体チップ上におけるプロセッサユニットおよび共有ローカルメモリの配置例を示す図である。図9aは、プロセッサユニットの2ポート接続の一例を示している。また、図9bは、プロセッサユニットの4ポート接続の一例を示している。図9aおよび図9bに示すように、プロセッサユニットと共有ローカルメモリとが隣接してレイアウトされる。これによって、プロセッサユニットと共有ローカルメモリとの間の配線を最短にすることができ、効率よくプロセッサユニット間のデータ転送経路を配置することができる。図10は、4個のプロセッサユニットの配置例を示す図である。4個のPU0~31-0~1-3を対称に配置する場合には、図8aに示す2ポート接続のプロセッサユニットで実現することができる。プロセッサユニット間には、ポートと共有ローカルメモリとの接続を動的に切り替えるようにするために、スイッチ31-0~31-3が接続されている。このスイッチ31-0~31-3のイネーブル信号e0w、e1s、e2w、e3sを制御することによって、隣接するプロセッサユニット間のポイントツーポイント接続を動的にイネーブル/ディスエーブルすることが可能となっている。さらに多数のプロセッサユニットを2次元的に並べる場合には、図9bに示すような4ポート接続のプロセッサユニットと、図9aに示す2ポート接続のプロセッサユニットとを組み合わせることで、プロセッサユニットと共有ローカルメモリとを規則的に配置することができる。図11は、プロセッサユニットの構成変更の一例を示す図である。図11は、図9bに示す4ポート接続のプロセッサユニット16個をマトリクス状に配置したものであり、各プロセッサユニット間に配置されるスイッチを切り替えることによって、プロセッサユニット間の接続をダイナミックに切り替えることができ、プロセッサユニット構成を自由に変更することができる。図11aは、4個のプロセッサユニットを接続したドメインを4グループ有する構成4コア×4構成を示しており、比較的処理負荷の軽いデータ処理を行なわせるのに適した構成となっている。また、図11bは、16個のプロセッサユニットを接続した構成16コア構成を示しており、より処理負荷の重いデータ処理に適した構成となっている。さらに、図11cは、4個のプロセッサユニットを接続した構成と、12個のプロセッサユニットを接続した構成とを有する構成4コア12コア構成を示している。このように、処理負荷に応じて、プロセッサユニットの接続を適宜変更できる構成を有している。また、システムの負荷が小さい場合には、一部のプロセッサユニットからなるドメインだけを残して、他のドメインのクロック停止、電源遮断を行なうことによってシステムの消費電力を大幅に削減することができる。後述のように、共有ローカルメモリをプロセッサユニットからアクセス可能なメモリ空間にマッピングすることにより、プロセッサユニットから自由に共有ローカルメモリにアクセスすることができる。また、ポイントツーポイント接続を切り替えるスイッチのイネーブル信号を制御するための制御レジスタをメモリマップしておくことで、プログラムで動的にプロセッサユニット間の接続を切り替えることが可能となる。プロセッサユニット間の接続を変更する方式として、1特定または全てのプロセッサから全てのスイッチを切り替え可能とする方式と、2各プロセッサユニットが自身の近傍のスイッチだけを切り替える方式とを挙げることができる。ここで、1の方式は、どのプロセッサユニット間の接続についてもスイッチ切り替えが可能なように、全てのスイッチのイネーブル信号を制御する制御レジスタを、プロセッサユニットからアクセス可能な空間にマッピングして、1つのプロセッサユニットから一括して全プロセッサユニットの接続形態を変更するものである。この方式は、プロセッサユニットの数が多くなると半導体チップ内の配線が困難となるが、プログラムが簡単であり、スイッチ切り替えの時間を短くすることができる。また、2の方式は、スイッチのイネーブル信号を制御する制御レジスタを各プロセッサユニットがローカルにアクセス可能な空間にのみマッピングし、各プロセッサユニットが自身の近傍のスイッチを切り替えてローカルにプロセッサユニット間の接続形態を変更するものである。この方式においては、各プロセッサユニットが接続形態を変更するためのプログラムを実行する必要があるため、プログラムが複雑になり接続形態の変更に時間を要するが、プロセッサ数が増えてもイネーブル信号の配線が容易なため、大規模なシステムを構築しやすいといった特徴がある。図12は、本発明の第1の実施に形態におけるマルチプロセッサの他のバス接続形態を示す図である。図2に示すマルチプロセッサの接続形態と比較して、SLM0~SLM35-0~5-3が共有バス4にも接続されており、共有ローカルメモリに隣接するプロセッサユニット以外のプロセッサユニットからも、共有ローカルメモリにアクセスすることができる点が異なる。なお、図12においては、命令キャッシュおよびデータキャッシュをまとめてキャッシュメモリI,D2-0~2-3としている。図13は、図12に示すバス接続形態の各プロセッサユニットのアドレスマップの一例を示す図である。図13に示すように、各プロセッサユニットにおいて、プロセッサユニットの各ポートに対応した共有ローカルメモリを同一アドレス空間にマッピングしている。たとえば、PU01-0のメモリマップにおいては、SLMA領域にSLM35-3がマッピングされ、SLMB領域にSLM05-0がマッピングされる。これによって、ユーザは、物理的な共有ローカルメモリの番号を意識することなく、接続されるポートだけに着目したプログラミングを行なうことが可能となる。また、図13に示す各プロセッサユニットのメモリマップにおいては、共有ローカルメモリのID番号に応じて、全ての共有ローカルメモリSLM0~SLM3が共有バス4側からアクセス可能なメモリ空間にマッピングされている。このようにすることによって、以下のようなメリットがある。まず、プロセッサユニットが、隣接していない共有ローカルメモリに対して実行プログラムを書き込み、データ処理の初期設定を容易に行なうことができる。たとえば、PU01-0をマスタプロセッサとして使用する場合には、PU01-0がプログラムを実行することによって他のプロセッサユニットに接続された共有ローカルメモリに対して命令コードを書き込むことで、容易にデータ処理を開始できるようになる。また、DMAC10が、共有バス4を介して各共有ローカルメモリに対するDMA転送を行なうことが可能となる。たとえば、PU01-0がマスタプロセッサの場合には、PU01-0がソフトウェアによって各共有ローカルメモリに対するDMA転送を制御することができる。また、図5および図6に示す排他制御用同期機構セマフォをDMA転送のイネーブル制御に用いることによって、DMA転送をハードウェア制御で行なうことも可能である。また、マスタプロセッサが共有ローカルメモリの内容をモニタすることで、実行途中のデータ処理内容を観測することができ、プログラムのデバッグを容易に行なうことが可能となる。また、共有バス4側からも共有ローカルメモリにアクセスできるようにしておくことで、半導体装置をボードに実装した後など、スキャンパス回路でテストが行なえない状況においても、プログラムでメモリテストを行なうことができる。ただし、隣接しているプロセッサユニット以外のプロセッサユニットから共有メモリにアクセス可能とすることによって、実行時のプログラムの安全性を低下させ、セキュリティ上の問題を引き起こすことがないよう、共有バス4側からの共有メモリへのアクセスは、プロセッサユニットがスーパーバイザモードになっているときのみ許可するようにしておくことが望ましい。図14は、本発明の第1の実施の形態におけるマルチプロセッサを画像処理システムに応用した場合の構成例を示す図である。この画像処理システムは、PU0~PU31-0~1-3と、キャッシュメモリ2-0と、共有メモリ3と、SLM0~SLM35-0~5-3と、DMAC10と、画像処理IP33と、表示コントローラ34とを含む。なお、図2~図6に示すマルチプロセッサの構成部分と同じ構成および機能を有する部分については、同じ参照番号を付すものとする。PU1~PU31-1~1-3およびSLM0~SLM35-0~5-3がリング状に接続される。また、SLM05-0およびSLM35-3は、共有バス4にも接続される。メインプロセッサPU01-0がシステム制御用のマスタプロセッサであり、PU1~PU35-1~5-3が画像処理用プロセッサとして使用される。共有メモリ3に置かれた画像データがDMA転送によってSLM05-0に格納され、PU1~31-1~1-3がその画像データを順に処理する。処理データは、SLM15-1およびSLM25-2を介してプロセッサユニット間で転送された後、SLM35-3からDMA転送によって共有メモリ3、画像処理IP33などに転送される。画像処理IP33は、DMA転送などによって共有メモリ3またはSLM35-3から画像データを受け、画像縮小、ブロックノイズ除去、フレーム補間処理などの画像処理を行なう。そして、画像処理後のデータをDMA転送などによって共有メモリ3または表示コントローラ34に転送する。PU1~PU31-1~1-3によるソフトウェア画像処理と、画像処理IP33によるハードウェア画像処理とを組み合わせることによって、非常にフレキシブルで高速な画像データ処理を実現することができる。表示コントローラ34は、共有メモリ3または画像処理IP33からDMA転送によって表示用の画像データを受け、LCDLiquidCrystalDisplayなどの表示装置に画像データを表示する。以上説明したように、本実施の形態におけるマルチプロセッサによれば、それぞれの共有ローカルメモリを、隣接する2つのプロセッサユニットのみで共有し、ポイントツーポイント接続でデータ転送を行なうようにしたので、送信側のプロセッサユニットと受信側のプロセッサユニットとの間で、データ転送のための細かいタイミングの同期を取る必要がなくなり、データの共有やデータ転送のバッファリングを容易に行なうことが可能となった。また、それぞれの共有ローカルメモリが2つのプロセッサユニットのみで共有されるため、バスアクセスがボトルネックになることはない。そのため、AMP構成において、機能分散を行なうことにより、プロセッサユニット数に比例してスケーラブルに性能向上を図ることが可能となった。また、共有ローカルメモリによる接続経路をダイナミックに切り替えるようにしたので、データ処理に利用可能なプロセッサユニットの個数を動的に設定でき、必要十分な処理性能を得るようなマルチプロセッサ構成を構築することが可能となった。また、システムの負荷状況に応じて、未使用状態のプロセッサユニット群のクロック停止、電源遮断などを行なうようにしたので、消費電力を削減することが可能となった。また、共有ローカルメモリを介したポイントツーポイント接続を用いているので、隣接するプロセッサユニット間でデータを共有しながら高速にデータ処理を行なうことができる。すなわち、転送データを共有メモリにバッファリングすることで、受信側のプロセッサユニットが高負荷状態の場合でも、隣接するプロセッサユニット間でデータを共有しながら高速にデータ処理を行なうことが可能となる。さらには、共有ローカルメモリが2つのプロセッサユニット間でのみ共有される場合には、隣接しない他のプロセッサユニットから共有ローカルメモリにアクセスすることができないため、誤動作や不正アクセスによるデータの破壊を防止することができ、システム全体としてのプログラムの安全性やセキュリティ性を高めることが可能となった。第2の実施の形態第1の実施の形態においては、共有メモリ型マルチプロセッサに共有ローカルメモリを搭載した場合について説明した。本発明の第2の実施の形態においては、共有メモリを搭載せずに、共有ローカルメモリのみを搭載した分散メモリ型のマルチプロセッサに関するものである。図15は、本発明の第2の実施の形態におけるマルチプロセッサの構成例を示すブロック図である。このマルチプロセッサは、PUi~PUk1-i~1-kと、SLMiおよびSLMj5-i,5-jと、キャッシュメモリ21-iおよび21-jとを含む。なお、SLMiおよびSLMj5-i,5-jは、1ポートメモリによって構成される。本実施の形態においては、共有メモリを搭載していないため、SLMiおよびSLMj5-i,5-jとして比較的大きなメモリ容量が必要になる。一般的に、大容量のメモリシステムは低速であるため、実行速度を向上させるためにキャッシュメモリ21-iおよび21-jを設けている。キャッシュメモリ21-iおよび21-jは、共有ローカルバスへのアクセス調停後にアクセスされるため、ライトバックおよびライトスルーのどちらのプロトコルを用いることも可能である。図16は、本発明の第2の実施の形態におけるマルチプロセッサの他の構成例を示すブロック図である。このマルチプロセッサは、PUi~PUk1-i~1-kと、SLMiおよびSLMj5-i,5-jと、キャッシュメモリ41~46とを含む。なお、SLMiおよびSLMj5-i,5-jは、2ポートメモリによって構成される。共有ローカルメモリ5-iおよび5-jが2ポートメモリで構成されるため、キャッシュメモリ41~46がプロセッサユニット側に設けられる。この場合、キャッシュコヒーレンシを保つために、これらのキャッシュメモリ41~46にMESIなどのキャッシュコヒーレンシプロトコルを採用することが可能である。しかしながら、AMP型の機能分散処理においては、小さい粒度でのデータ共有や排他制御が可能であることから、ライトスルー型のキャッシュメモリを採用することで、回路規模や複雑さを抑えつつ、実行時のパフォーマンスを改善することが可能となる。以上説明したように、本実施の形態におけるマルチプロセッサによれば、共有メモリを搭載せずに、共有ローカルメモリのみを搭載するようにしたので、第1の実施の形態において説明した効果に加えて、さらにバスアクセスを分散させることが可能となった。今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。"