(57)【要約】【課題】回路規模や配線資源を大幅に増加することなく、演算精度を容易に変更することのできる並列処理型プロセッサを得る。【解決手段】プロセッサエレメント３ａ〜３ｄを、ＰＥアレイ２−１〜２−Ｎにおける演算の最大粒度となる個数とする。プロセッサエレメント３ａ〜３ｄのゲート回路５は、実現する粒度に基づいて他のプロセッサエレメントの桁上がり信号を入力するか否かを切り替える。メモリ調停回路６は実現する粒度に応じてメモリ７にアクセスする領域を分割する。【選択図】図１
2010086256.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが演算装置を有する複数のプロセッサエレメントと、
前記複数のプロセッサエレメントからのデータを一時保持するメモリと、
前記複数のプロセッサエレメントと前記メモリ間のデータを調停するメモリ調停回路とを有するＰＥアレイを備えた並列処理型プロセッサであって、
前記プロセッサエレメントは、前記ＰＥアレイにおける演算の最大粒度となる個数が設けられると共に、少なくとも、他のプロセッサエレメントからのデータを受けないプロセッサエレメント以外は、他のプロセッサエレメントからの演算データを受けるためのゲート回路を有し、
前記ゲート回路は、実現する粒度に基づいて、他のプロセッサエレメントの桁上がり信号を入力するか否かを切り替えると共に、前記メモリ調停回路は、実現する粒度に応じて前記メモリにアクセスする領域を分割することを特徴とする並列処理型プロセッサ。
【請求項２】
プロセッサエレメントの個数は２のべき乗数で構成されたことを特徴とする請求項１記載の並列処理型プロセッサ。
【請求項３】
複数のＰＥアレイを備え、少なくともいずれか一つのメモリ調停回路は他のメモリ調停回路に対して演算データを出力し、当該演算データを受信したＰＥアレイは、前記演算データに対して演算を行うことを特徴とする請求項１または請求項２記載の並列処理型プロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データの並列処理を行う並列処理型プロセッサに関するものである。
【背景技術】
【０００２】
四則演算や論理演算を行う演算装置（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ：以下、ＡＬＵという）と、ＡＬＵからの演算結果を一時記憶しておくメモリ等から構成されるプロセッサエレメント（Ｐｒｏｃｅｓｓｏｒ  Ｅｌｅｍｅｎｔ：以下、ＰＥという）を複数有したＳｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ（ＳＩＭＤ：以下、ＳＩＭＤという）装置は、単一命令で多数のデータの処理が可能である。その動作は、ＰＥ内部のＡＬＵで演算を行い、その演算結果をＰＥと対となるメモリに格納しながら所望の演算を行っている。
このＳＩＭＤ方式のプロセッサは、演算命令（プログラム）等を自在に書き換えることが可能であるため、同一処理を特定用途向け集積回路で達成するよりも柔軟なデータ処理を行えることが利点に挙げられる。
【０００３】
このようなプロセッサが使われる一例は、一度に大量のデータを同時に処理が可能であることから、画像処理（デジタルスチルカメラ、複写装置、音声処理など）に適している。これらは機能の高性能化が進んでおり、これに伴って画像データの処理の複雑化が進んでいる。他方、処理の複雑化に反して、演算の速度を向上させなければ、処理プロセッサとして成立しないという相反した性能が求められている。
【０００４】
従来の処理プロセッサは、メモリとして複数系統の入出力ポートを有するマルチポートメモリを用いていた（例えば、特許文献１参照）。
【０００５】
【特許文献１】特開平３−２２０６８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の技術では、マルチポートメモリといった特殊なメモリを使用しているため、高コストとなる問題点があった。また、マルチポートメモリは入出力配線が多くなることから、ＬＳＩにて実現しようとした場合は配線が多くなり回路規模が増大するという問題点もあった。
【０００７】
この発明は上記のような課題を解決するためになされたもので、回路規模や配線資源を大幅に増加することなく、演算精度を容易に変更することが可能な並列処理型プロセッサを得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係る並列処理型プロセッサは、複数のプロセッサエレメントと、メモリと、メモリ調停回路とを有するＰＥアレイを備えた並列処理型プロセッサであって、プロセッサエレメントは、ＰＥアレイにおける演算の最大粒度となる個数が設けられると共に、少なくとも、他のプロセッサエレメントからのデータを受けないプロセッサエレメント以外は、他のプロセッサエレメントからの演算データを受けるためのゲート回路を有し、ゲート回路は、実現する粒度に基づいて、他のプロセッサエレメントの桁上がり信号を入力するか否かを切り替えると共に、メモリ調停回路は、実現する粒度に応じてメモリにアクセスする領域を分割するようにしたものである。
【発明の効果】
【０００９】
この発明の並列処理型プロセッサは、プロセッサエレメントをＰＥアレイにおける演算の最大粒度となる個数とし、プロセッサエレメントのゲート回路は、実現する粒度に基づいて他のプロセッサエレメントの桁上がり信号を入力するか否かを切り替え、かつ、メモリ調停回路は実現する粒度に応じてメモリアクセス領域を分割するようにしたので、回路規模や配線資源を大幅に増加することなく、演算精度を容易に変更することができる。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
図１は、この発明の実施の形態１による並列処理型プロセッサを用いたＳＩＭＤ処理装置を示す構成図である。
図１に示すＳＩＭＤ処理装置は、６４０個のＰＥを設け、一つのＰＥアレイ内にＡＬＵを装備したＰＥを四つ保有したＳＩＭＤ処理装置の一例である。このＳＩＭＤ処理装置は、制御部１と、ＰＥアレイ２−１〜２−Ｎを備えている。
【００１１】
制御部１は、処理プログラムを収納する図示しないＲＡＭやＲＯＭや、プログラムカウンタなどを備え、その処理プログラムから各ＰＥの演算処理内容およびその動作などを命令１０２として出力し、ＳＩＭＤ処理装置全体を制御する。また、制御部１は、後述するメモリ調停回路６を介してメモリ７のアドレスも出力する。
【００１２】
それぞれのＰＥアレイ２−１〜２−Ｎは、ＰＥ３ａ〜３ｄと、メモリ調停回路６と、メモリ７とを備えている。ＰＥ３ａ〜３ｄは、入力１０１と制御部１からの命令１０２に基づいて演算処理を行う機能部であり、三つのＰＥ３ａ〜３ｃは、ＡＬＵ４とゲート回路（ゲート）５を有し、ＰＥ３ｄはＡＬＵ４のみ有している。ＡＬＵ４は、加算等の数値演算や倫理和等の論理演算を実行する演算装置である。また、ゲート回路５は、下部ＰＥ（ＰＥ３ａの場合はＰＥ３ｂ、ＰＥ３ｃの場合はＰＥ３ｄ）からの演算結果の桁上がりを示すキャリー信号をゲートする回路である。尚、ＰＥ３ｄがゲート回路５を有しないのは、下位のキャリー信号が存在しないためであるが、ゲート回路５を有していてもよい。即ち、四つのＰＥ３ａ〜３ｄを全てゲート回路５を備えた同一構成としてもよい。
【００１３】
メモリ調停回路６は、各ＰＥ３ａ〜３ｄと接続され、各ＰＥ３ａ〜３ｄとメモリ７とのアクセス時にバスの調停を行う回路である。メモリ７はＰＥ３ａ〜３ｄの演算における一時保持用のメモリである。このメモリ７は、一般的な１ポートメモリと呼ばれる入力と出力がそれぞれ１系統、およびアドレスも１系統のものを用いる。
【００１４】
ここでＰＥアレイ２−１〜２−Ｎは、演算の粒度（演算精度）を変更する場合の最大粒度となる構成でＰＥ３ａ〜３ｄを構成している。例えば、所望の最大粒度を１６ビットとした場合、各ＡＬＵ４の粒度を４ビットとし、このためＰＥアレイ内には４つのＡＬＵを装備している。従って、全ＰＥ数を６４０とした場合は、ＰＥアレイ数は１６０となり、ＰＥアレイ２−ＮはＰＥアレイ２−１６０となる。本実施の形態において、演算粒度の変更は、４ビット、８ビット、１６ビットに変更可能な構成となる。また、メモリ７の構成は４ビット×Ｍワードの構成とし、ＭワードはＰＥが処理に必要な収納量であればよい。
【００１５】
各ＰＥアレイ２−１〜２−Ｎ内のＰＥ３ａ〜３ｄは、メモリ調停回路６を介して、一つのメモリ７を用いるように構成されている。従って、ＰＥアレイ２−１内のＰＥ３ａ〜３ｄはそのＰＥアレイ２−１のメモリ７を用いて演算処理し、同様にＰＥアレイ２−２内のＰＥ３ａ〜３ｄもＰＥアレイ２―２のメモリ７を使用する。
【００１６】
処理すべきデータは入力１０１として図示しない公知の手段（例えばＣＰＵ等のデータバス）により各ＰＥアレイ２−１〜２−Ｎに与えられる。制御部１からは命令１０２が各ＰＥアレイ２−１〜２−Ｎに出力され、ＡＬＵ４及びメモリ調停回路６、メモリ７を用いて所望の演算処理がなされた後、出力３００として得られる。
【００１７】
次に、実施の形態１の動作について説明する。
図２は、一つのＰＥアレイ内を示したもので、ＰＥアレイ内の粒度が４ビットとして動作する場合の構成例である。
ＰＥアレイ内では４ビット×４個のＰＥ３ａ〜３ｄがそれぞれ異なる入力データに対して処理を行う。各ＰＥ３ａ〜３ｄには入力として１６ビットのバスが接続されており、それぞれ４ビットを各ＰＥ３ａ〜３ｄに入力する。但し、この１６ビットのデータは各４ビットのデータが独立しており、バス幅だけ１６ビットであるとする。
【００１８】
制御部１からは、各ＰＥ３ａ〜３ｄに対しＰＥ３ａ〜３ｄ内のゲート回路５に下部ＰＥからのキャリー信号をマスクするように命令が出力される。このことにより下部ＰＥからのキャリー信号は上位のＰＥに対してその演算結果に影響を与えないこととなる。また、メモリ調停回路６には４ビットの粒度モードである情報を制御部１から命令１０２として出力する。
次に、制御部１は、各ＰＥ３ａ〜３ｄに命令１０２、例えば加算命令を出力する。この際、メモリ調停回路６に対しＰＥ３ａ〜３ｄがその演算データをメモリ７に収納するアドレス１０３を出力する。初期状態ではアドレスは０としておく。
【００１９】
次いで、各ＰＥ３ａ〜３ｄは４ビットの加算を実行する。その結果はそれぞれメモリ調停回路６に入力される。メモリ調停回路６では制御部１からの４ビット粒度モードの命令に従い次のような動作を実施する。先ず、制御部１からのアドレス１０３を各ＰＥ３ａ〜３ｄがアクセスする領域に変換する。このモードにおいては、メモリ７のアドレス領域がＭワードのため、各ＰＥ３ａ〜３ｄがアクセスする領域（データの保存アドレス）を少なくとも４分割（Ｍ／４ワード）の領域に分割する。初期状態で制御部１からは０が与えられるため、ＰＥ３ｄがアクセスする領域７ｄは、０アドレス以上Ｍ／４×１アドレス未満、ＰＥ３ｃがアクセスする領域７ｃは、Ｍ／４×１以上Ｍ／４×２アドレス未満、ＰＥ３ｂがアクセスする領域７ｂは、Ｍ／４×２以上Ｍ／４×３未満、ＰＥ３ａがアクセスする領域７ａは、Ｍ／４×３以上（Ｍ−１）／４×４以下、となるようにメモリ７へのアドレス１０３ａとして変換する。
【００２０】
次に、メモリ調停回路６は、ＰＥ３ａ〜３ｄからの演算データを受信し、時分割で上記アドレス変換と同期してデータの調停を行う。ＰＥ３ｄからの処理データは、時刻ｔ１においてメモリ調停回路６から変換されたアドレス１０３ａと共に演算データ２０１としてメモリ７に与えられ、ＰＥ３ｄがアクセスする領域７ｄに収納される。ＰＥ３ｃからの処理データは時刻ｔ２において、アドレス１０３ａと共に演算データ２０１としてメモリ７に与えられ、ＰＥ３ｃがアクセスする領域７ｃに収納される。同様に、ＰＥ３ｂとＰＥ３ａのデータは、時刻ｔ３とｔ４において、それぞれメモリ７のＰＥ３ｂがアクセスする領域７ｂおよびＰＥ３ａがアクセスする領域７ａに収納される。
このようにして、各々のＰＥ３ａ〜３ｄによって演算処理されたデータが独立に一つのメモリ７上に収納でき、４ビット粒度の演算を４個のＰＥで処理することが可能となる。
【００２１】
尚、メモリ７上に収納されたデータを再利用する場合は、データ経路として上記の動作とは逆となるメモリ７〜メモリ調停回路６〜ＰＥ３ａ〜３ｄとなる。この場合も制御部１からの指定されたアドレス１０３をメモリ調停回路６によって変換し、メモリ７のアドレス上のデータ２０２を読み出してメモリ調停回路６で時分割によりＰＥ３ａ〜３ｄに出力し、ＰＥ３ａ〜３ｄはそのデータ２０２について処理を行う。
所望の演算処理を終えた場合は、各ＰＥ３ａ〜３ｄからＰＥアレイ２−１〜２−Ｎ外に出力３００として送出され、図示しないＳＤＲＡＭ等の外部メモリやデータバスに出力される。
【００２２】
図３は、ＰＥアレイ内の粒度が８ビットとして動作する場合の構成例である。尚、図３においては、図２で示す入力信号線の図示は省略している。
この例では、ＰＥ３ｄとＰＥ３ｃ、ＰＥ３ｂとＰＥ３ａでそれぞれ８ビットの粒度を構成する。従って、ＰＥアレイ内のＰＥ数は２となる。前述した４ビット粒度構成による動作と異なる点は、メモリ７のアドレス分割領域が少なくとも２分割され、ＰＥ３ｃとＰＥ３ｄのアクセス領域７ｆとＰＥ３ｂとＰＥ３ａのアクセス領域７ｅにメモリ調停回路６によって調停がなされる。
【００２３】
また、各ＰＥ３ａ〜３ｄ内のゲート回路５は、ＰＥ３ｂのゲート回路５のみをマスクするように制御部１によって制御される。ＰＥ３ｃとＰＥ３ａのゲート回路５はそれぞれＰＥ３ｄとＰＥ３ｂのキャリー信号を通過させるようにゲート回路５をオフにする。このことによってキャリー信号が下位ＰＥから上位ＰＥに伝達され、粒度が４ビットの２倍、即ち８ビットとなる。メモリ調停回路６によるＰＥ３ａ〜３ｄからの演算データ２０１と制御部１からのアドレス１０３の関係は次の通りである。メモリ７のデータ幅が４ビットであるため、先ず、時刻ｔ１ではＰＥ３ｃとＰＥ３ｄのアドレスとＰＥ３ｄのデータがメモリ７に出力されて収納される。次に、時刻ｔ２では、ＰＥ３ｃとＰＥ３ｄのアドレスとＰＥ３ｃのデータが収納される。このことにより８ビットのデータを分割して収納する。同様に、時刻ｔ３ではＰＥ３ｂとＰＥ３ａのアドレス及びＰＥ３ｂのデータが収納され、時刻ｔ４ではＰＥ３ｂとＰＥ３ａのアドレス及びＰＥ３ａのデータが調停されてメモリ７へ収納される。このようにして、ＰＥアレイ内の粒度を８ビット、ＰＥ数を２とする演算動作が可能となる。
【００２４】
図４は、ＰＥアレイ２−１〜２−Ｎ内の粒度が１６ビットとして動作する場合を示したものである。
この例では、ＰＥ３ａ〜ＰＥ３ｃのゲート回路５をオフにし、下位ＰＥのキャリー信号を全て通過させるようにしておく。メモリ７はアドレス分割領域が１となる。即ち、ＰＥ３ａ〜３ｄのアクセス領域７ｇの一つとなる。上述した構成例と同様に、時刻ｔ１ではＰＥ３ｄ〜ＰＥ３ａのアドレスとＰＥ３ｄのデータ、時刻ｔ２ではＰＥ３ｃのデータ、時刻ｔ３ではＰＥ３ｂ、時刻ｔ４ではＰＥ３ａのデータがメモリ７に収納されて所定の演算を行うことができる。
【００２５】
以上のように、ＰＥアレイ２−１〜２−Ｎを最大粒度となるＰＥ３ａ〜３ｄで構成し、ＰＥアレイ２−１〜２−Ｎ内で一つのメモリ７を共有して、メモリ調停回路６により粒度を変更可能な構成としたため、特殊なメモリを使用しなくとも回路規模を増やすことなく、演算精度の変更を行うことが可能なＳＩＭＤ処理装置を得ることができる。また、粒度変更に伴うメモリの確保量もそれに応じて変更することができ、簡易な演算から複雑な演算までを効率よく実行できる。
【００２６】
尚、実施の形態１では、ＡＬＵ４の基本粒度を４ビットとしたがこの限りではなく所望の粒度となる構成でよい。また、ＰＥアレイ２−１〜２−Ｎ内に四つのＰＥ３ａ〜３ｄを有した構成としたが、ＰＥアレイ２−１〜２−Ｎ内のＰＥ数についてもこの限りではない。但し、ＰＥ数は２のべき乗数（２，４，８，１６…）である場合がより簡易に構成することができる。
【００２７】
以上説明したように、実施の形態１の並列処理型プロセッサによれば、それぞれが演算装置を有する複数のプロセッサエレメントと、複数のプロセッサエレメントからのデータを一時保持するメモリと、複数のプロセッサエレメントとメモリ間のデータを調停するメモリ調停回路とを有するＰＥアレイを備えた並列処理型プロセッサであって、プロセッサエレメントは、ＰＥアレイにおける演算の最大粒度となる個数が設けられると共に、少なくとも、他のプロセッサエレメントからのデータを受けないプロセッサエレメント以外は、他のプロセッサエレメントからの演算データを受けるためのゲート回路を有し、ゲート回路は、実現する粒度に基づいて、他のプロセッサエレメントの桁上がり信号を入力するか否かを切り替えると共に、メモリ調停回路は、実現する粒度に応じてメモリにアクセスする領域を分割するようにしたので、回路規模や配線資源を大幅に増加することなく、演算精度を容易に変更することができる。
【００２８】
また、実施の形態１の並列処理型プロセッサによれば、プロセッサエレメントの個数は２のべき乗数で構成するようにしたので、並列処理型プロセッサを簡易に構成することができる。
【００２９】
実施の形態２．
実施の形態２の並列処理型プロセッサは、複数のＰＥアレイを接続するようにしたものである。
図５は、実施の形態２における並列処理型プロセッサの構成図である。
実施の形態２では、複数のＰＥアレイ１０ａ，１０ｂを有し、ＰＥアレイ１０ｂの演算データ２０１がＰＥアレイ１０ａに与えられるようになっている。各々のＰＥアレイ１０ａ，１０ｂは、ＰＥ３ａ〜３ｄ、メモリ調停回路６ａ（または６ｂ）、メモリ７を備えている。ここで、ＰＥ３ａ〜３ｄ、メモリ７および制御部１は、実施の形態１の構成と同様であるため、その説明は省略する。また、メモリ調停回路６ａはＰＥアレイ１０ａ内の回路、メモリ調停回路６ｂはＰＥアレイ１０ｂ内の回路であり、メモリ調停回路６ｂから出力される演算データ２０１がメモリ調停回路６ａに入力されるよう構成されている。この演算データ２０１は、ＰＥアレイ１０ｂ内のメモリ調停回路６ｂによって時間的な調停がなされた後のデータである。この構成により、ＰＥアレイ１０ａとＰＥアレイ１０ｂは最大粒度３２ビット（４ビット×８ＰＥ）として動作することが可能となる。
【００３０】
次に、実施の形態２の動作について説明する。
制御部１からメモリ調停回路６ａ及び６ｂに対し３２ビット動作である命令が出力されると、メモリ調停回路６ａはメモリ調停回路６ｂの演算データ２０１を受け付ける。実施の形態１と同様に入力データに対し制御部１からの命令に従ってＰＥアレイ１０ａおよびＰＥアレイ１０ｂ内のＰＥ３ａ〜３ｄは演算を行う。
【００３１】
ＰＥアレイ１０ｂ内の各ＰＥ３ａ〜３ｄにより計１６ビットの演算が行われる。この演算結果は桁上がり等の情報を含んだ３２ビットの下位データとなる。メモリ調停回路６ｂによってＰＥアレイ１０ｂのメモリ７に収納される。他方、演算データ２０１は、ＰＥアレイ１０ａのメモリ調停回路６ａに出力される。メモリ調停回路６ａは、この１６ビットのデータを受信後、ＰＥアレイ１０ａ内の各ＰＥ３ａ〜３ｄに出力する。ＰＥ３ａ〜３ｄは、前記のデータと入力データの上位１６ビットを演算し、再びメモリ調停回路６ａに出力する。メモリ調停回路６ａはこの各ＰＥからデータを調停してメモリ７へ収納する。このようにして粒度３２ビットとなる演算が達成可能である。
尚、粒度３２ビット未満である粒度１６ビット、８ビット、４ビットの場合は、実施の形態１で示した動作と同様である。
【００３２】
以上のように、ＰＥアレイ１０ａ，１０ｂ間をメモリ調停回路６ａ，６ｂを介して演算処理を行うように構成したため、更に粒度の拡張を行うことができる。例えば、実施の形態１に比して粒度は２倍となり、メモリ空間もそれに応じた領域を使用することができる。
【００３３】
尚、上記の実施の形態２ではＰＥアレイ１０ａ，１０ｂの接続を２としたが、この値に限定されるものではなく、メモリ調停回路の接続を増やすことで更に粒度の拡張が可能である。
【００３４】
以上のように、実施の形態２の並列処理型プロセッサによれば、複数のＰＥアレイを備え、少なくともいずれか一つのメモリ調停回路は他のメモリ調停回路に対して演算データを出力し、演算データを受信したＰＥアレイは、演算データに対して演算を行うようにしたので、更に粒度の拡張を行うことができる。
【図面の簡単な説明】
【００３５】
【図１】この発明の実施の形態１による並列処理型プロセッサを示す構成図である。
【図２】この発明の実施の形態１による並列処理型プロセッサを４ビットの粒度で構成した場合の説明図である。
【図３】この発明の実施の形態１による並列処理型プロセッサを８ビットの粒度で構成した場合の説明図である。
【図４】この発明の実施の形態１による並列処理型プロセッサを１６ビットの粒度で構成した場合の説明図である。
【図５】この発明の実施の形態２による並列処理型プロセッサの構成図である。
【符号の説明】
【００３６】
１  制御部、２−１〜２−Ｎ  ＰＥアレイ、３ａ〜３ｄ  プロセッサエレメント（ＰＥ）、４  ＡＬＵ（演算装置）、５  ゲート回路（ゲート）、６，６ａ，６ｂ  メモリ調停回路、７  メモリ、１０１  入力、１０２  命令、１０３，１０３ａ  アドレス、２０１  演算データ、２０２  メモリデータ、３００  出力。
【図１】
2010086256.tif 000003
【図２】
2010086256.tif 000004
【図３】
2010086256.tif 000005
【図４】
2010086256.tif 000006
【図５】
2010086256.tif 000007