"SIMD演算方式の複数の第1のプロセッサと、前記複数の第1のプロセッサのそれぞれに対応して設けられる複数の記憶手段と、複数の第2のプロセッサとを含み、前記複数の第1のプロセッサのそれぞれは、前記複数の記憶手段の中の対応する1つの記憶手段に格納されるデータに対して演算を行ない、前記複数の第2のプロセッサのそれぞれは、前記複数の記憶手段の中の対応する複数個の記憶手段に格納されるデータに対して演算を行なう、データ処理装置。前記第1のプロセッサは可変ビット長データの演算を行ない、前記第2のプロセッサは固定ビット長データの演算を行なうことを特徴とする、請求項1記載のデータ処理装置。前記データ処理装置はさらに、データを直交変換するための直交変換手段を含み、前記直交変換手段は、外部から受けたデータを直交変換して、前記複数の第1のプロセッサ用のデータとして前記複数の記憶手段に格納し、外部から受けたデータをそのまま前記複数の第2のプロセッサ用のデータとして前記複数の記憶手段に格納する、請求項1記載のデータ処理装置。前記直交変換手段は、前記複数の記憶手段に記憶される前記複数の第1のプロセッサによる演算結果を直交変換して外部に出力し、前記複数の記憶手段に記憶される前記複数の第2のプロセッサによる演算結果をそのまま外部に出力する、請求項3記載のデータ処理装置。前記データ処理装置はさらに、前記複数の第1のプロセッサおよび前記複数の第2のプロセッサと、前記複数の記憶手段との間に設けられ、前記複数の記憶手段に格納されるデータを対応する第1のプロセッサ以外の別の第1のプロセッサに移動して供給するデータ移動手段を含む、請求項1~4のいずれかに記載のデータ処理装置。前記データ処理装置はさらに、マイクロコードプログラムを記憶する命令記憶手段と、前記命令記憶手段に記憶されるマイクロコードプログラムを解釈して、前記複数の第1のプロセッサおよび前記複数の第2のプロセッサに選択的に演算処理を行なわせる制御手段とを含む、請求項1~5のいずれかに記載のデータ処理装置。前記複数の第2のプロセッサのそれぞれが浮動小数点演算器によって構成され、前記複数の記憶手段の中の前記浮動小数点演算器のデータ長に対応する個数の記憶手段からデータを受けて演算処理を行なう、請求項1~6のいずれかに記載のデータ処理装置。前記複数の第2のプロセッサのそれぞれが積和演算器によって構成され、前記複数の記憶手段の中の前記積和演算器のデータ長に対応する個数の記憶手段からデータを受けて演算処理を行なう、請求項1~6のいずれかに記載のデータ処理装置。データ処理装置にミリ波レーダの信号処理を行なわせるデータ処理方法であって、前記データ処理装置は、SIMD演算方式の複数の第1のプロセッサと、前記複数の第1のプロセッサのそれぞれに対応して設けられる複数の記憶手段と、前記複数の記憶手段の中の複数個の記憶手段に対応して設けられる複数の第2のプロセッサとを含み、前記複数の第1のプロセッサに前記複数の記憶手段に記憶されるデータの演算を行なわせることにより、前記ミリ波レーダによって得られた情報がデジタルに変換された後のデータに対してゲイン調整およびクリッピング処理を行なわせるステップと、前記複数の第1のプロセッサに、前記クリッピング処理後のデータに対して間引き処理およびフィルタ処理を行なわせるステップと、前記複数の第1のプロセッサまたは前記複数の第2のプロセッサに、前記フィルタ処理後のデータを浮動小数点値に変換させて前記複数の記憶手段に格納させるステップと、前記複数の第2のプロセッサに、前記複数の記憶手段に記憶される前記浮動小数点値を用いた高速フーリエ変換を行なわせるステップとを含む、データ処理方法。上述のように、マトリクス型超並列プロセッサは、1~2ビットの単位でデータに対する演算を行なうため、演算対象データのビット長に応じて処理サイクルが増加するが、任意ビット長の演算が可能である。しかしながら、マトリクス型超並列プロセッサに搭載される細粒度演算器は整数演算を目的としているため、浮動小数点のようなデータに対する演算を行なうためには、デコード、演算およびエンコードの各処理を経る必要があり、非常に低速となってしまう。また、マトリクス型超並列プロセッサは、たとえば1024並列で演算処理を行なうため、まとまった量のデータに対する演算でなければ性能を発揮することができない。したがって、小タップのフィルタ処理など、並列度が小さくデータを頻繁に入れ替える必要がある演算には適していない。一方、浮動小数点演算器は、通常CPUとコプロセッサ接続されており、CPUが命令およびデータの供給を制御している。また、1つの浮動小数点演算器が1度に処理できる演算は1種類であり、1演算は複数サイクルで処理される。したがって、パイプラインに命令を連続的に供給すると共に、レジスタにデータを連続的に供給することによって性能を発揮させることは可能ではあるが、CPUが介在して制御を行なうため効率よく稼動させることは難しい。近年、組み込み機器分野においては、低消費電力と高速演算性能とが要求されており、特に、車載機器などでは安全性向上のために画像処理と信号処理とを組み合わせたシステムが採用されつつある。したがって、このようなシステムでは、画像処理と信号処理とを効率的に行なうことが可能な機構が熱望されている。本発明は、上記問題点を解決するためになされたものであり、その目的は、可変長データに対する演算処理と、固定長データに対する演算処理とを効率的に行なうことが可能なデータ処理装置およびそのデータ処理方法を提供することである。本発明の一実施例によれば、複数のプロセッサを含んだデータ処理装置が提供される。データ処理装置は、SIMD方式の複数のPE1と、複数のPE1のそれぞれに対応して設けられる複数のSRAMと、複数のPE2とを含む。複数のPE1のそれぞれは、複数のSRAMの中の対応する1つのSRAMに格納されるデータに対して演算を行なう。また、複数のPE2のそれぞれは、複数のSRAMの中の対応する複数個のSRAMに格納されるデータに対して演算を行なう。本発明の一実施例によれば、複数のPE1のそれぞれが、複数のSRAMの中の対応する1つのSRAMに格納されるデータに対して演算を行ない、複数のPE2のそれぞれが、複数のSRAMの中の対応する複数個のSRAMに格納されるデータに対して演算を行なうので、複数のSRAMを共有することができ、可変長データに対する演算処理と、固定長データに対する演算処理とを効率的に行なうことが可能となる。第1の実施の形態図1は、本発明の第1の実施の形態におけるデータ処理装置の構成例を示すブロック図である。このデータ処理装置100は、バスコントローラ1と、SRAMStaticRandomAccessMemoryアレイ3と、エントリコミュニケータECM4と、PE1演算アレイ6と、PE2演算アレイ8と、直交変換器10と、命令RAM11と、コントローラ12とを含む。また、このデータ処理装置100は、汎用CPU13、DMACDirectMemoryAccessController14および外部RAM15と接続されている。汎用CPU13は、外部RAM15に格納されるマイクロコードプログラムを読み出し、データ処理装置100の内部バス23を介して命令RAM11に転送する。データ処理装置100は、命令RAM11に格納されたマイクロコードプログラムを実行することによって演算処理を行なう。このマイクロコードプログラムの転送は、DMAC14によるDMA転送であってもよい。また、汎用CPU13は、DMAC14を制御して、外部RAM15に格納される演算対象データをデータ処理装置100にDMA転送することによって、データ処理装置100に演算対象データを与える。バスコントローラ1は、データ処理装置100の内部バスの制御を行なう。たとえば、DMAC14によってDMA転送されたデータを受け、直交変換器10に入力させる。直交変換器10は、入力したデータをそのまま、または直交変換してSRAMアレイ3に書き込む。また、バスコントローラ1は、汎用CPU13からの要求により、SRAMアレイ3からデータを読み出して直交変換器10に出力する。直交変換器10は、入力したデータをそのまま、または直交変換して外部RAM15にDMA転送する。PE1演算アレイ6は、2ビットの細粒度演算コアであるPE15を256個有しており、PE15のそれぞれが少ビット単位で繰り返し演算処理を行なうことにより、任意ビット長データの演算を行なうことができる。PE15による処理時間は処理対象データのビット長に依存しており、主に信号処理の初段の処理、たとえばA/D変換されたデータの入力直後の処理や、画像処理などの短ビット長の単純な整数演算を大量に行なう処理に適している。なお、PE15の数は、これに限られるものではない。PE2演算アレイ8は、32ビットの粗粒度演算コアであるPE27を8個有しており、PE27のそれぞれが固定ビット長データの演算を行なうことができる。PE27による処理時間は処理対象データのビット長には依存せず、演算するデータ数のみに依存する。PE27は、固定ビット長で演算が行なえるため、浮動小数点演算器などのように特殊な演算を行なうことができ、信号処理に適している。また、PE27は、細粒度演算器に比べて並列度が小さいため、少ないデータの処理にも適している。なお、PE27の数は、これに限られるものではない。SRAMアレイ3は、2ビットバスのSRAMs2を256個有している。図1に示すように、256個のPE15と、8個のPE27とがECM4を介して256個のSRAMs2に接続されている。1つのSRAMs2が1つのPE15に対応するように接続され、後述のように全てのPE15が同時にサイクル単位で1ビットまたは2ビットのデータを読み書き可能な構成となっている。なお、SRAMs2の数は、これに限られるものではない。また、32個のSRAMs2が1つのPE27に対応するように接続され、32ビットのデータがビット分解されて、32個のSRAMs2のそれぞれに1ビットずつ格納される。これによって、PE27がサイクル単位で32ビット長のデータの読み出し/書き込みを行なえるようになる。コントローラ12は、命令RAM11に格納されるマイクロコードプログラムを順次読み出して解釈し、SRAMアレイ3、ECM4、PE1アレイ6、PE2アレイ8を制御して、演算処理を行なう。図2は、SRAM2の内部構成をさらに詳細に説明するための図である。SRAM2は、256ビットのSRAM16を4個有しており、これらのSRAM16が連続したアドレスに配置されている。アドレスを指定することによって、SRAM16のそれぞれの任意の位置の1ビットデータ、または偶数ビット番目から格納される連続した2ビットデータを一度に読み出すことができる。これら4つのSRAM16は、同時にデータの読み出し/書込みが可能であり、それぞれをバンク1~バンク4と呼ぶことにする。図3は、PE15の内部構成をさらに詳細に説明するための図である。PE15は、SRAMs2内のあるSRAM16たとえば、バンク4からの2ビットデータの読み出しと、別のSRAM16たとえば、バンク3に対する2ビットデータの読み出し/書き込みとを同時に行なうことができる。また、PE15は、SRAM16内の偶数ビット番目から格納される連続した2ビットデータ、または任意位置の1ビットデータの読み書きが可能である。PE15は、内部に演算用レジスタX0,X117を有しており、バンク4から読み込んだ2ビットのデータをこの演算用レジスタ17に格納する。それと同時に、PE15は、バンク3から2ビットデータを読み出して、演算用レジスタ17に格納される値との演算を行ない、バンク3の同じアドレスに上書きする。PE15は、2ビットの加算器と、ブースデコーダとを有しており、1ビットまたは2ビットデータの加減算、乗算、1ビット単位の論理演算を行なうことができる。加算器は、キャリー情報を内部レジスタに保持するため、1ビットまたは2ビットデータの演算を繰り返すことで、複数サイクルを要することにはなるが、任意ビット長データの演算を行なうことができる。図4は、PE27の内部構成をさらに詳細に説明するための図である。PE27は、32ビットデータの2つ分たとえば、バンク3とバンク4の読み出しと、32ビットデータたとえば、バンク2の書き込みとを同時に行なうことができる。PE87は、32個のSRAM16のそれぞれの下位1ビットをまとめて32ビットのデータとして読み出し/書き込みを行なう。PE27は、内部に2つの32ビットの演算用レジスタR0,R118を有しており、読み出した2つの32ビットデータをこれらの演算用レジスタ18に格納する。また、PE27は、パイプラインを有する構成の演算器であり、複数サイクル後に先程読み出した2つのデータの演算結果を別の内部レジスタR2に出力する。その後、PE27は、内部レジスタR2に格納される演算結果を別バンクの32個のSRAM16に書き込む。このようにして、パイプラインを停止させることなく、コントローラ12によって要求された命令の連続実行が可能となる。図5は、ECM4の内部構成およびその動作を説明するための図である。図5aは、ECM4の内部接続を示している。ECM4は、2のべき乗距離1,2,4,8,16,32,64,128にある演算コアに接続されており、接続されている演算コア間では1サイクルでデータを移動、交換することができる。図5aにおいては、セレクタSEL41のそれぞれが、1,2,4の距離にある演算コアに接続される場合を示している。2のべき乗距離にない演算コアへのデータ移動は、2のべき乗距離にある演算器へのデータ移動を複数回組み合わせることにより、シフトレジスタのような動作によって実現可能である。たとえば、6エントリ分のデータ移動を行なう場合には、4エントリ分の移動2エントリ分の移動のように、2サイクルに分けて実行される。また、PE27によって演算が行なわれる場合には、32のN倍エントリ単位でデータ移動することで、演算コア間のデータ移動に対応することができる。SRAMs2から読み出されたデータは、指定されたECM4内にブロードキャストされる。そして、コントローラ12が全セレクタ41に対して、いずれの距離からのデータを読み出すかを指定し、選択されたデータのみがPE15に入力される。そのため、全エントリのデータは、等しく同じ距離を移動することになる。2ビット演算コアであるPE15に演算を行なわせる場合には、ECM4を使用してデータを移動することで演算対象のデータを入れ替えることができる。また、PE27に演算を行なわせる場合には、演算対象のデータが32個のSRAMs2にまたがって格納されているため、32未満の距離でデータを移動させるとデータのビットシフトを行なうことができる。逆に、32以上の距離でデータを移動させると演算対象のデータを入れ替えることができる。図5bは、ECM4を用いた演算処理の一例を示す図である。まず、ステップ1においては、SRAM16のエントリ0~3に格納されるデータa0~a3がテンポラリレジスタTemp.Reg.にロードされる。ステップ2において、ECM4によってテンポラリレジスタに格納されるデータa0~a3が1ビットずつシフトされる。そして、ステップ3において、SRAM16に格納されるデータb0~b3が読み出されて、テンポラリレジスタに格納されるデータとの演算が行なわれ、SRAM16のデータb0~b3が格納されていたのと同じアドレスに演算結果が上書きされる。図5cは、図5aに示すセレクタ41の内部構成をさらに詳細に説明するための図である。セレクタ41は、NチャネルMOSトランジスタ42-1~42-kと、PチャネルMOSトランジスタ43および46と、インバータ44および45とを含む。VCH_IN_1~VCH_IN_kに、2のべき乗距離にあるエントリの出力が接続される。VCH_SEL_1~VCH_SEK_kのいずれか1つがハイレベル以下、Hレベルと略す。となって、そのNチャネルMOSトランジスタに接続されるエントリの出力が選択される。セレクタSEL51の一方の端子には、セレクタ41によって選択されたエントリの出力が接続され、他方の端子には、そのPE15に対応するSRAMs2の出力が接続される。セレクタSEL51は、VCH_IE信号に応じて、セレクタ41によって選択されたエントリの出力と、PE15に対応するSRAMs2の出力とのいずれかを選択して出力する。テンポラリレジスタ52は、セレクタSEL51からの出力を一時的に保持し、セレクタSEL53に出力する。セレクタSEL53は、テンポラリレジスタ52に保持される値と、PE15に対応するSRAMs2の出力とのいずれかを選択して出力する。他のエントリにデータを転送するときにVCH_OE信号がHレベルとなり、バッファ54がセレクタSEL53から出力される値を他のエントリに出力する。また、セレクタSEL53から出力される値に対して演算を行なう場合には、ALU55がその演算結果ALU_OUTを出力する。たとえば、図5bのステップ1に示すようにテンポラリレジスタにデータa0~a3がロードされる場合には、セレクタSEL51がSRAMs2の出力SRAM_OUTを選択してテンポラリレジスタ52に出力する。テンポラリレジスタ52は、その値を保持する。図5bのステップ2に示すように、テンポラリレジスタが保持する値をシフトする場合には、セレクタ53がテンポラリレジスタ52が保持する値を選択して出力する。バッファ54は、セレクタ53から出力される値をVCH_OUTに出力する。このとき、セレクタ41は、隣のエントリからの出力を選択するように設定されており、セレクタ51は、隣のエントリのデータを選択してテンポラリレジスタ52に出力する。テンポラリレジスタ52は、その値を保持することによって、図5bのステップ2に示すシフト動作が完了する。図5bのステップ3に示すように、PE15が演算を行なう場合には、演算器ALU55が、セレクタSEL53を介してテンポラリレジスタ52に保持される値を受けて演算を行なう。図6は、直交変換器10の動作を説明するための図である。直交変換器10は、2系統のデータ入出力ポートを有しており、一方のポート20を介して外部RAM15に格納されるデータを受け、直交変換した後のデータを他方のポート21を介してSRAM16に格納するか、または、直交変換せずに同じデータを他方のポート21を介してSRAM16に格納する。逆に、直交変換器10は、ポート21を介してSRAM16に格納されるデータを受け、直交変換した後のデータをポート20を介して外部RAM15に転送するか、または、直交変換せずに同じデータをポート20を介して外部RAM15に転送することも可能である。また、直交変換器10は、ポート21を介してSRAM16に格納されるデータを受け、直交変換した後のデータを再度ポート21を介してSRAM16に格納することも可能である。図6aは、PE15用のデータをSRAM16に格納するときの直交変換器10の動作を示している。図6aにおいては、外部RAM15に格納される8ビット長データ8個をPE15用に転送する場合を示している。なお、32ビット長データを32個受けて直交変換し、SRAM16に転送するようにしてもよい。上述のように、PE15が使用するデータは対応する1つのSRAM16内にビットストリームとして格納される必要がある。そのため、直交変換器10は、ポート20を介して外部RAM15から8ビット長のデータを受け、8個のデータを順次バッファリングする。そして、直交変換器10は、バッファリングした各データの同じビット位置にあるデータを8個まとめて、ポート21を介してSRAM16にデータ22を転送する。そして、次のビット位置にあるデータを8個まとめて、次のアドレスのSRAM16に転送する。これを繰り返すことによって、外部から入力されたデータを直交変換し、PE15用データとしてSRAM16に格納することができる。図6bは、PE27用のデータをSRAM16に格納するときの直交変換器10の動作を示している。図6bにおいては、外部メモリ15に格納される8ビット長データをPE27用に転送する場合を示している。なお、32ビット長データを受けて、そのままSRAM16に転送するようにしてもよい。PE27用のデータは、32個のSRAM16にまたがって格納される必要があるため、直交変換器10はレジスタ操作による直交変換を行なわずにデータをSRAM16に転送する。直交変換器10は、ポート20を介して外部RAM15から8ビット長のデータを受け、ビット分割をせずにそのままポート21を介してSRAM16にデータ23を転送する。このようにして、直交変換器10は、同一のSRAM内にPE15用のデータと、PE27用のデータとを混在して格納することが可能となる。図7は、命令RAM11に格納されるマイクロコードプログラムの一例を示す図である。命令には、コントローラ命令、PE1命令、PE2命令の3種類があり、これらを組み合わせたVLIW命令として命令RAM11に格納される。図7aに示すように、MODEレジスタの設定にかかわらず、命令の最上位ビットが1の場合には、コントローラ命令であることを示す。また、命令の最上位ビットが0の場合には、PE1命令またはPE2命令であることを示す。図7bに示すように、MODEレジスタの設定が0であり、かつ命令の最上位ビットが0の場合には、コントローラ命令とPE1命令との混在であることを示す。図7bにおいては、PE1命令として、load命令、alu命令、mode命令が記述されている。なお、mode命令は、1ビットと2ビットとの切り替えを行なう命令である。図7cに示すように、MODEレジスタの設定が1であり、かつ命令の最上位ビットが0の場合には、コントローラ命令とPE2命令との混在であることを示す。図7dに示すように、コントローラ12は、まず命令の最上位ビットをデコードし、これが1の場合にはコントローラ命令、0の場合にはPE1命令またはPE2命令と判断する。そして、コントローラ12は、MODEレジスタの設定によってPE1命令であるか、PE2命令であるかを判断する。コントローラ12は、コントローラ命令によってMODEレジスタ設定を変更することができるため、PE1演算器およびPE2演算器の選択は、命令の実行時に動的に行なうことができる。また、コントローラ12は、命令がPE1命令またはPE2命令とを含む場合には、個々の演算器の命令だけでなくコントローラ命令のサブセットを含めて、複数の命令を同時に実行することができる。コントローラ12は、命令がPE1命令を含む場合には、PE15にload命令とalu命令とを出力する。PE15は、図3に示すように、load命令によって、SRAM16から2ビットデータをPE15内のレジスタに読み込み、alu命令によってSRAM16から読み出したデータとレジスタのデータとの演算を行ない、演算結果をSRAM16の2ビットに上書きする。この動作を1サイクルで行なうことができるため、これを連続的に行なうことによって任意ビット長データの演算を行なうことができる。コントローラ12は、命令がPE2命令を含む場合には、PE27にPE2命令を出力する。PE27は、内部にパイプラインを有した高度な演算を行なうことができる演算コアであり、図4に示すように、演算の途中結果を格納するレジスタ18を有している。PE27は、コントローラ12から受けたPE2命令によって、SRAM16からデータを必要個数だけ読み出し、内部のシーケンサにしたがって演算を行なう。そして、PE27は、演算結果をレジスタを経由して再度SRAM16に遅延書き込みする。一般的に、PE27によるデータの入力から演算結果の出力まで数サイクルを要するが、内部レジスタへのデータ読み出しと内部レジスタからのデータ書き込みとを同時に行なうことができる。したがって、パイプライン処理を行なうことによって、コントローラ12がPE27に対して連続的に演算要求を行なうことができ、見かけ上1演算/サイクルを実現することができる。また、上述のように、SRAM16が4バンクで構成されているため、PE27の演算中であっても、すなわち最大3バンクにアクセスしていても、残り1バンクを用いてデータの入出力を行なうことができる。これによって、PE15またはPE27による演算と、汎用CPU13またはDMAC14による外部RAM15とSRAM16との間のデータ転送とを並行して行なうことができ、システム全体の性能を向上させることができる。図8は、上述のVLIW命令を用いたアドレッシング制御を説明するための図である。なお、ここではアドレッシング制御について間単に説明するが、詳細な説明は第2の実施の形態において説明するものとする。図8aは、コントローラ命令サブセットvi命令を示している。vi0において、mvincmp,r0,r1は、レジスタr0の値をレジスタmpに代入し、レジスタr0の値とレジスタr1の値とを加算してレジスタr0に代入することを示している。また、vi0において、mvincap,r2,r3は、レジスタr2の値をレジスタapに代入し、レジスタr2の値とレジスタr3の値とを加算してレジスタr2に代入することを示している。図8bは、コントローラ命令サブセットとPE2命令FPU命令とを含んだVLIW命令を示している。加算命令faddap2,ap,mpは、レジスタapの値とレジスタmpの値とを加算してレジスタap2に格納することを示している。コントローラ命令として、図8aに示すvi0命令が記述されているため、レジスタapにレジスタr2とレジスタr3とを加算した値が代入される。同様に、レジスタmpにレジスタr0とレジスタr1とを加算した値が代入される。これによって、次にデータを読み出すSRAM16のアドレスap,mpを、レジスタr3またはレジスタr1で制御することができる。また、乗算命令fmulap2,ap,mpは、レジスタapの値とレジスタmpの値とを乗算してレジスタap2に格納することを示している。また、積和命令fmacap,mpは、レジスタapの値とレジスタmpの値とを乗算してアキュムレータの値に順次加算することを示している。これらの命令についても同様に、vi0命令によってアドレッシング制御を行なうことができる。図9は、図1に示すデータ処理装置100を含んだシステムの処理手順を説明するためのフローチャートである。まず、汎用CPU13が、外部RAM15からマイクロコードプログラムを読み出して、データ処理装置100内の命令RAM11に転送するS11。そして、汎用CPU13またはDMAC14によって外部RAM15に格納される処理対象のデータが直交変換器10に転送される。次に、転送される処理対象のデータがPE1用データであるか、PE2用データであるかが判定されるS12。PE1用データであればS12,Yes、直交変換器10が処理対象データに対して直交変換を行ないS13、処理対象データをデータレジスタバンクSRAMs2に転送するS15。また、PE2用データであればS12,No、直交変換器10が処理対象データをそのままデータレジスタバンクSRAMs2に転送するS15。次に、汎用CPU13は、実行開始アドレスを指定してコントローラ12を起動させるS16。コントローラ12は、命令RAM11からの命令読み出しを開始し、読み出した命令をデコードするS17。そして、コントローラ12は、命令がPE1命令であるか、PE2命令であるかを判定するS18。PE1命令であればS18,Yes、コントローラ12は、全てのPE15に対して実行命令を発行しS19、ステップS17に戻って以降の処理を繰り返す。また、PE2命令であればS18,No、コントローラ12は、全てのPE27に対して実行命令を発行しS21、ステップS17に戻って以降の処理を繰り返す。また、PE2命令でもなければ、すなわちコントローラ命令であればS20,No、コントローラ12は、そのコントローラ命令を実行するS22。このとき、演算完了を示す停止命令であればS23,Yes、コントローラ12は、演算結果を外部RAM15に転送しS24、処理を終了する。また、停止命令でなければS23,No、ステップS17に戻って以降の処理を繰り返す。図10は、PE15によるPE1命令実行時の処理手順を説明するためのフローチャートである。まず、PE15は、SRAM16の指定番地1から演算対象データ演算値1を読み出すS31。そして、PE15は、演算値1と内部レジスタ値との演算を行なうS32。次に、PE15は、SRAM16の指定番地1に演算結果を上書きしS33、SRAM16の指定番地2から演算値2を読み出すS34。そして、ECM4によるデータ移動が有効か否かを判定するS35。ECM4によるデータ移動が有効であればS35,Yes、指定されたデータ線エントリからデータを読み込み、PE15の内部レジスタに格納してS36、処理を終了する。また、ECM4によるデータ移動が無効であればS35,No、そのまま処理を終了する。図11は、PE27によるPE2命令実行時の処理手順を説明するためのフローチャートである。まず、PE27は、SRAM16の指定番地1から演算値1を読み出し、内部レジスタに演算値1を格納するS41。また、SRAM16の指定番地2から演算値2を読み出し、内部レジスタに演算値2を格納するS42。次に、PE27は、演算値1と演算値2との演算を行ない、内部レジスタに演算結果を格納するS43。そして、SRAM16の指定番地3に演算結果を格納しS44、処理を終了する。以上説明したように、本実施の形態におけるデータ処理装置によれば、PE15のそれぞれに対応してSRAMs2が設けられると共に、32個のSRAMs2に対応してPE27が設けられるようにしたので、PE15とPE27とがSRAMs2を共有することが可能となった。また、直交変換器10は、PE1用データの場合にはデータに対して直交変換を行なってSRAMs2に格納し、PE2用データの場合にはデータをそのままSRAMs2に格納するようにしたので、SRAMs2にPE1用データとPE2用データとを混在して格納することが可能となった。また、コントローラ12が、MODEレジスタの設定に応じてPE15およびPE27に対して選択的に演算を行なわせるようにしたので、PE15に可変長ビットのデータの演算を行なわせ、PE27に固定長ビットのデータの演算を行なわせるといった、演算器が得意とする演算を選択的に行なわせることが可能となった。第2の実施の形態本発明の第2の実施の形態は、第1の実施の形態において説明したデータ処理装置100を車載機器の1つであるミリ波レーダによる周辺監視システムに適用するものである。したがって、重複する構成および機能の詳細な説明は繰り返さない。図12は、本発明の第2の実施の形態における周辺監視システムのミリ波レーダの信号処理の一例を示す図である。図示しないミリ波レーダによって得られた情報がADCAnalogDigitalConverter61によって12ビット長のデジタルデータに変換されて、外部RAM15に格納される。データ処理装置100は、第1の実施の形態において説明した手順によって、外部RAM15から12ビット長のデータを入力し、桁合わせや符号拡張などによるゲイン処理、クリッピング処理を行なう62。そして、間引き処理を行なった後、データを浮動小数点値に変換してローパスフィルタ等の信号処理演算を行ない63、FFTFastFourierTransformによる周波数解析を行なう64。通常、汎用CPUなどは、16、32ビットの固定ビット長のレジスタを使用して演算を行なうが、ミリ波レーダのADC61から入力される12ビット長のデータを処理する場合、使用しない上位ビット分の面積や消費電力が無駄になってしまう。このようなデータに対しては、細粒度演算器を用いる方が効率的に処理が行なえる。しかしながら、細粒度演算器は、上述のように信号処理に必要な浮動小数点演算を高速に行なうことができない。そこで、本実施の形態における周辺監視システムでは、図12に示すように、細粒度演算コアであるPE15がゲイン調整、クリッピング処理62および間引き処理63を行ない、その演算結果を浮動小数点値に変換した後、粗粒度演算コアであるFPUがフィルタ処理63およびFFTによる周波数解析64を行なうものである。図13は、本発明の第2の実施の形態におけるFPUによって処理される浮動小数点値のデータ構造を説明するための図である。この浮動小数点値は、IEEE754によって規定される単精度の浮動小数点値データ構造であり、最上位の符号ビット1ビットと、8ビットの指数部と、23ビットの仮数部とを含む。図14は、本発明の第2の実施の形態における周辺監視システムのデータ処理装置のデータ配置を説明するための図である。図14に示すデータ処理装置は、図1に示す本発明の第1の実施の形態におけるデータ処理装置100と比較して、PE27をFPU7に置換した点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。また、図15は、本発明の第2の実施の形態における周辺監視システムの処理手順を説明するためのフローチャートである。図14および図15を参照しながら、本実施の形態における周辺監視システムのミリ波レーダの信号処理について説明する。なお、コントローラ12が命令RAM11に格納されるマイクロコードプログラムを実行することによって、これらの処理が行なわれる。まず、外部RAM15に格納されるADC61からの12ビット長のデータが順次直交変換器10に入力される。直交変換器10は、12ビット長のデータ256個を直交変換し、図14のデータ31,32整数値1~16のように格納するS51。なお、図14においては、整数値1~16のみが記載されているが、256個の整数値が256個のSRAMs2に格納されるものとする。次に、コントローラ12は、PE15に整数値1~256の演算を行なわせることによりゲイン調整およびクリッピング処理を行ない、16ビット長のデータに丸めるS52。この処理は、全てのPE15によって並列に実行される。次に、コントローラ12は、ECM4およびPE15を制御して丸めたデータに対して間引き処理およびフィルタ処理を行なうS53。そして、フィルタ演算結果を浮動小数点値に変換し、FPU用データ23として浮動小数点値1~6をSRAMs2に格納するS54。この整数値から浮動小数点値への変換は、PE15によって256個のデータを並列にデコード、エンコードすることによって行なうことができるが、FPU7の機能を用いて行なうことも可能である。次に、コントローラ12は、FPU7に浮動小数点値を用いたFFT演算を行なわせるS55。FFTのバタフライ演算で必要となるデータ交換は、後述のようにECM4を用いて行なうことが可能である。細粒度演算コアであるPE15は256個のデータを並列に演算することが可能であるが、FPU用のデータ構造では演算の並列度が8並列となってしまう。そのため、データ種別や処理内容に応じてPE15による演算と、FPU7による演算とを適宜切り替える必要があるが、上述のようにコントローラ12がマイクロコードプログラムを解釈することによってこの切り替えを動的に行なう。図16は、FPU7による浮動小数点演算の一例を示す図である。図16においては、Cn=BnDn、Gn=FnHnの演算を行なった後、An=FnDn、En=BnHnの演算を行なう場合を示している。まず、図16aに示すように、演算に必要なデータBn,Dn、Fn、Hnがバンク2およびバンク4に転送されて配置される。バンク2の0~31エントリにデータBnが配置され、バンク2の32~63エントリにデータFnが配置される。また、バンク4の0~31エントリにデータDnが配置され、バンク4の32~63エントリにデータHnが配置される。なお、0~31エントリがFPU1に接続され、32~63エントリがFPU2に接続されている。最初に、FPU1およびFPU2が、Cn=BnDnおよびGn=FnHnの演算を同時に行なう。FPU1とFPU2とがSIMD接続されているため、それぞれがエントリの同じ位置にある異なる内容のデータを対象に同じ演算を行なう。汎用CPUなどを用いた場合には、CnとGnとを別々に演算する必要があるが、本実施の形態においては、FPU1およびFPU2がSIMD型並列演算プロセッサによって構成されるため、CnとGnとを同時に演算することができる。次に、図16bに示すように、PE15およびECM4によるエントリ間通信機能によって、データBnとFnとを交換する。上述のように、ECM4は2のべき乗距離にあるエントリに接続しており、1サイクル毎に最大2ビットの値を別エントリに移動、交換することができる。このデータ移動、変換はPE15を用いて行なわれるため、FPU用に格納された浮動小数点値が1ビット毎に分割され、個々のエントリに対応するPE15が32エントリ上下のエントリ値と交換を行なう。このとき、PE15は最大2ビット単位で処理を行なうことができるため、連続的に配置された2つの浮動小数点値を同時に移動、交換することができる。最後に、図16cに示すように、FPU1およびFPU2が、An=FnDnおよびEn=BnHnの演算を同時に行なう。ここで、Bn、Dn、Fn、Hnのそれぞれに属するデータが10個ずつある場合における演算量を考える。汎用CPUなどでは、全ての演算をシーケンシャルに行なう必要があるため、Cn、Gn、An、Enを求めるためにそれぞれ10回ずつの演算が必要であり、合計40回の演算が必要となる。また、データ交換を行なうためには、テンポラリレジスタtmp=Bn、Bn=Fn、tmp=Fnなどのように3回のデータコピーが必要となる。したがって、CnおよびGn、またはAnおよびEnのデータ演算、移動処理回数は、それぞれ103010=50回となる。一方、本実施の形態においては、FPU1およびFPU2がCnおよびGnの演算、またはAnおよびEnの演算を同時に行なうことができるため、演算回数はそれぞれ10回となる。また、PE15およびECM4によって2つの浮動小数点値を同時に交換できる。したがって、図16aに示すステップ1の演算処理が10回、図16bに示すステップ2のデータ移動処理が5回、図16cに示すステップ3の演算処理が10回の合計25回となる。このように、本実施の形態においては、データ演算、データ移動回数を削減することができる。さらに、PE15は、FPU用データのそれぞれのビットに対して個別に処理を行なえるため、たとえば浮動小数点値の絶対値を計算する場合には、図14に示すようにFPU用に格納されたデータの符号ビット33に対応するPE15のみを動作させることで、FPUを動作させることなく絶対値計算を行なえることになり、消費電力を削減することができる。この絶対値計算の処理としては、符号ビットが1であれば符号ビットを0にし、符号ビットが0であればそのままとする。図17は、本発明の第2の実施の形態におけるデータ処理装置のアドレッシングモードの一例を示す図である。信号処理においては様々なアドレッシングモードが必要となるが、図17a~図17cにその具体例を示している。図17aは、配列内の対応する各要素を演算し、その演算結果を別の配列の対応する要素に格納する場合を示す。FPU1がAn=Bn×Cnの演算を行なって演算結果Anを格納する場合であるが、データの読み出すアドレスおよびデータを書き込むアドレスの全てが順次インクリメントされる。図17bは、配列内の全ての要素Bnに固定係数C0を乗算し、その演算結果を別の配列の対応する要素に格納する場合を示す。要素Bnを読み出すアドレスおよび要素Anを書き込むアドレスが順次インクリメントされ、要素C0を読み出すアドレスが固定とされる。図17cは、配列Bnと配列Cnとの乗算結果を順次加算積算してアキュムレータに格納しておき、最後にその総和をA0に格納する場合を示す。要素BnおよびCnを読み出すアドレスが順次インクリメントされ、要素A0を書き込むアドレスが固定とされる。この処理は、配列の対応する要素同士の乗算結果を積算することができるので、信号処理でよく使用される畳み込み積分演算などに有効である。これらのアドレッシングモードは、コントローラ12が実行するVLIW命令によって実現可能である。図8に示したように、コントローラ12が、PE15およびFPU7が演算対象とするデータの位置を演算の種類と共に指定する。コントローラ12は、このデータ位置を内部のレジスタmp,ap,mp2,ap2に保持しており、これらのレジスタの値をFPU7の演算命令と同じサイクルで変更することによって、任意の飛び幅でデータをアクセスすることができる。コントローラ12は、共通命令の1つとして図8aに示すようなvi命令を実行する。vi命令は、よく使用されるコントローラ12のレジスタ演算式を定義した8個の命令群であり、1つの制御命令と2つの操作命令とを同時に指定することができる。どのvi命令を読み出すかはコントローラ命令サブセットによって指定される。残りのビットには、PE15やFPU7の演算命令が記述される。図8bに示すように、1行に記述されたコントローラ命令サブセットとFPU命令とが同時に実行される。たとえば、加算命令が実行されると同時に、コントローラ12がコントローラ命令サブセットで指定されたvi命令を解釈してレジスタの値を更新する。mvincmp,r0,r1においては、レジスタr0に配列の開始位置を指定し、レジスタr1に飛び幅を指定することによって、図17に示すような連続したアドレッシングだけでなく、一定飛び幅のアドレッシングモードも実現することができる。ミリ波レーダ処理で使用されるFFTにおいてはバタフライ演算が行なわれるが、このVLIW命令によってバタフライ演算を効率よく行なうことができる。図18は、本発明の第2の実施の形態におけるシステムの他の一例を示す図である。図18に示すデータ処理装置は、図1に示す本発明の第1の実施の形態におけるデータ処理装置100と比較して、PE27を32ビット整数積和演算器MAC7に置換した点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。PE15によって、図18に示すMAC演算用データ整数値17~22の任意ビット位置のマスク処理を行なったり、ECM4によって整数値17の上位2ビットを整数値20の下位にビットシフトしたりすることが可能となる。一般的なSIMD型並列演算器においては、各演算器に対応したデータを入れ替えたりする機能が不十分であったため、汎用CPUなどがデータ交換を行なったり、ビットシフトしたりする必要があった。本実施の形態においては、MAC用データを256ビットの循環型データと見なすことができ、PE15がこれらの任意ビットを個別に演算することが可能となる。以上説明したように、本実施の形態における周辺監視システムによれば、入力データに応じて使用する演算コアを選択するようにマイクロコードプログラムを作成することにより、効率的に演算処理が行なえるようになり、電力性能比を向上させることが可能となった。また、SIMD接続したFPU7を並列に動作させて浮動小数点演算を行なうようにしたので、単一の演算しか実行できないCPUやDSPよりも高速に演算処理を行なうことが可能となった。また、PE15およびECM4を用いてFPU間のデータ移動、データ交換を行なうようにしたので、少ないオペレーション数でデータ移動、データ交換を行なうことが可能となった。また、データが連続して並んでいない場合であっても、コントローラ12がVLIW命令によるレジスタ演算を行なうことによって、柔軟なアドレッシングモードをサポートすることが可能となった。今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。"