(57)【特許請求の範囲】
【請求項１】
演算器とメモリにより構成される複数の演算要素と、
入力データを一時的に記録する入力データ一時記録手段と、
前記入力データ一時記録手段で記録されたデータの配列を変換するデータ配列変換手段であって、前記データの一つのデータ単位は複数のビットにより構成されるものであり、当該データ配列変換手段は、それぞれのデータ単位が、そのデータ単位に対応する一つの演算要素で演算されるように、データの配列を変換するものである、データ配列変換手段とを備え、
前記演算要素は、前記演算器にデータの書き込みを許可するアクセス許可フラグを備え、前記演算要素のメモリにデータを書き込む際に、一旦前記メモリのデータを前記演算器内のレジスタに退避し、前記アクセス許可フラグの内容がアクセス許可である前記レジスタにのみ、書き込み対象のデータを上書きした後、前記レジスタのデータを前記メモリに書き戻す並列処理装置。
【請求項２】
演算要素は、演算器にデータの読み出しを許可するアクセス許可フラグを備え、演算要素のメモリからデータを読み出す際に、一旦、読み出し対象となるデータを演算器内のレジスタに退避し、前記アクセス許可フラグの内容がアクセス許可である前記レジスタにのみ、前記メモリのデータを上書きした後、前記レジスタのデータを前記読み出し対象のデータとして出力することを特徴とする請求項１記載の並列処理装置。
【請求項３】
入力データ一時記録手段のデータを演算要素のメモリに書き込むことを許可する入力データアクセス許可フラグを備え、前記メモリにデータを書き込む際に、前記入力データアクセス許可フラグの内容がアクセス禁止である前記入力データ一時記録手段のデータに対してのみ、前記メモリのデータを一旦退避させた後、前記入力データ一時記録手段の全てのデータを前記メモリに書き戻すことを特徴とする請求項１または請求項２記載の並列処理装置。
【請求項４】
演算要素で演算されたデータを一時記録する出力データ一時記録手段を設けると共に、演算要素のメモリから前記出力データ一時記録手段にデータの読み出しを許可する出力データアクセス許可フラグを備え、前記メモリからデータを読み出す際に、前記出力データアクセス許可フラグの内容がアクセス禁止である前記出力データ一時記録手段のデータに対応したデータのみを、前記メモリに一旦退避させた後、前記メモリの全てのデータを出力データ一時記録手段に書き戻すことを特徴とする請求項１から請求項３のうちのいずれか１項記載の並列処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、演算器とメモリにより構成される複数の演算要素を備え、これら複数の演算要素を用いて、例えば画像データといった一つのデータ単位が複数のビットにより構成されるデータを演算処理する並列処理装置に関するものである。
【背景技術】
【０００２】
外部メモリなどに記録された画像データなどをＳＩＭＤ（Single Instruction stream Multiple Data stream）型の並列処理プロセッサに転送する場合、ＳＩＭＤ型の処理に適した形にデータ配列を変換する必要がある。しかしながら、データ配列の変換をＣＰＵで実施する場合、複雑な制御と変換処理時間に多くの時間を要するため、システム全体の処理速度の低下を招いていた。そこで、例えば特許文献１に示されるように、ＳＩＭＤ型アーキテクチャを処理するデジタル処理において、ＣＰＵでのデータ配列変換を行うことなく、データを予めハードウェアで変換処理してからプロセッサに供給することで高速な変換処理を可能としている並列処理装置があった。
【０００３】
【特許文献１】特開２００４−２１９３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の並列処理装置では、データの配置場所を入れ替えることは考慮されているが、一つのデータを構成するビット単位での配列の変換を実施することについては考えられていなかった。
例えば、画像処理を行う並列処理プロセッサの場合、ＰＥ（Processor Element）を一次元に数百から数千個配置したものがある。この場合、各ＰＥを画像データの１画素に対応させることで、最も効率的な処理が可能となる。通常、外部メモリには、アドレス単位で順番に画素データが記録されているため、このデータ配列の状態で並列処理プロセッサに転送すると、１画素が複数のＰＥに跨ってしまう。例えば、８ビットといった複数ビットの画素データの場合、一番目のＰＥには第１の画素、隣のＰＥには第２の画素、更に隣のＰＥには第３の画素といったように、各ＰＥに１画素を対応させることが必要であるが、データ配列の変換処理を行わないと、一番目のＰＥには第１の画素の０ビット目、隣のＰＥには第１の画素の１ビット目、更に隣のＰＥには第１の画素の２ビットといったように、１画素のデータが複数のＰＥに跨ってしまい、このような配列では並列処理の効率化の妨げになるという問題があった。
【０００５】
この発明は上述のような課題を解決するためになされたもので、第１の目的は、一つのデータ単位が複数のビットにより構成されるデータに対して、並列処理の効率化を図ることのできる並列処理装置を得ることにある。
また、第２の目的は、書き込み対象の任意のデータのみを演算要素に書き込むことができる並列処理装置を得ることにある。
また第３の目的は、読み出し対象となる任意のデータのみを演算要素から読み出すことのできる並列処理装置を得ることにある。
また第４の目的は、入力データ一時記録手段における任意のデータを演算要素に書き込むことができる並列処理装置を得ることにある。
また第５の目的は、演算要素における任意のデータを出力データ一時記録手段に転送することができる並列処理装置を得ることにある。
【課題を解決するための手段】
【０００６】
この発明に係る並列処理装置は、演算器とメモリにより構成される複数の演算要素と、入力データを一時的に記録する入力データ一時記録手段と、入力データ一時記録手段で記録されたデータの配列を変換するデータ配列変換手段であって、データの一つのデータ単位は複数のビットにより構成されるものであり、データ配列変換手段は、それぞれのデータ単位が、そのデータ単位に対応する一つの演算要素で演算されるように、データの配列を変換するものである、データ配列変換手段とを備え、演算要素は、演算器にデータの書き込みを許可するアクセス許可フラグを備え、演算要素のメモリにデータを書き込む際に、一旦メモリのデータを演算器内のレジスタに退避し、アクセス許可フラグの内容がアクセス許可であるレジスタにのみ、書き込み対象のデータを上書きした後、レジスタのデータを前記メモリに書き戻すようにしたものである。
【発明の効果】
【０００７】
この発明の並列処理装置は、データの一つのデータ単位は複数のビットにより構成されるものであり、それぞれのデータ単位が、そのデータ単位に対応する一つの演算要素で演算されるように、データの配列を変換し、かつ、演算要素は、演算器にデータの書き込みを許可するアクセス許可フラグを備え、演算要素のメモリにデータを書き込む際に、一旦メモリのデータを演算器内のレジスタに退避し、アクセス許可フラグの内容がアクセス許可であるレジスタにのみ、書き込み対象のデータを上書きした後、レジスタのデータを前記メモリに書き戻すようにしたので、このようなデータに対して並列処理の効率化を図ることができると共に、書き込み対象の任意のデータのみを演算要素に書き込むことができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、この発明の実施の形態１による並列処理装置を示す構成図である。
図において、並列処理装置は、複数の演算要素（ＰＥ）１、プログラムコントローラ２、データ制御部３を備え、データ制御部３は、入出力データバッファ４、データ配列変換部（データ配列変換手段）５を有している。複数の演算要素１は、それぞれ演算器とメモリを備え、これら演算器とメモリとによって並列演算処理を行うよう構成されている。尚、演算器とメモリの詳細については、実施の形態２で説明する。演算要素１は、例えば、１ビットのＡＬＵ（Arithmetic and Logic Unit）を搭載し、水平方向に１０２４個配置されている。プログラムコントローラ２は、各演算要素１の制御を行うコントローラである。入出力データバッファ４は、入力データ一時記録手段および出力データ一時記録手段を構成するもので、外部メモリである外部ＳＤＲＡＭ６からの入力データおよび外部ＳＤＲＡＭ６への出力データの一時記録を行うバッファである。また、外部ＳＤＲＡＭ６は、例えば３２ビットのデータ幅を備えているものとする。データ配列変換部５は、入出力データバッファ３で記録された一つのデータ単位が複数のビットにより構成されるデータに対して、一つのデータ単位がそれぞれの演算要素１で演算されるようデータの配列を変換する変換部である。即ち、データ配列変換部５は、各演算要素１を外部ＳＤＲＡＭ６に格納されている画像データの１画素に対応させるための変換部である。
【０００９】
次に、データ配列変換部５におけるデータ配列の変換処理について説明する。
図２は、外部ＳＤＲＡＭ６に記録されたＫ（ｗｏｒｄ）×Ｌ（ｂｉｔ）のデータがデータ配列変換部５によってＮ×Ｍのデータ形式に変換されるイメージを示す説明図である。
また、図３は８ビットのデータがビットパックされた状態で記録された３２ビットのデータ幅を備える外部ＳＤＲＡＭを示したものである。図３において、Ｄ１、Ｄ２、Ｄ３、・・・は８ビットの１画素データであり、ここではＫ＝１６、Ｌ＝３２の６４画素分の画素データが記録されていることを示している。図４は図３のデータ変換後のデータ配列の一例を示したもので、Ｎ＝８、Ｍ＝６４に変換されたものである。図５は図３のデータ変換後のデータ配列の一例を示したもので、Ｎ＝１６、Ｍ＝３２に変換されたものである。図６は図３のデータ変換後のデータ配列の一例を示したもので、Ｎ＝３２、Ｍ１６に変換されたものである。
【００１０】
図７は、１２ビットのデータがビットパックされた状態で記録された３２ビットのデータ幅を備える外部ＳＤＲＡＭ６の状態を示したものである。図中、Ｄ１、Ｄ２、Ｄ３、・・・は１２ビットの１画素データであり、ここではＮ＝１６、Ｌ＝３２の４２画素分の画素データが記録されていること示しており、最終Ｄ４３はビットアライメントが一致していないため、ｄｏｎ’ｔ  ｃａｒｅデータとなる。図８は図７のデータ変換後のデータ配列の一例を示したもので、Ｎ＝１２、Ｍ＝４２に変換されたものである。図９は図７のデータ変換後のデータ配列の一例を示したもので、Ｎ＝２４、Ｍ＝２１に変換されたものである。図１０は図７のデータ変換後のデータ配列の一例を示したもので、Ｎ＝４８、Ｍ１１に変換されたものであり、最終２画素についてはｄｕｍｍｙデータが付加されている。
【００１１】
ここで外部ＳＤＲＡＭ６に記録された図３の８ビットデータがデータ配列変換部５によって変換される動作を説明する。
プログラムコントローラ２により、データ配列変換部５に対してデータ長と図２のＫ、Ｌ、Ｎ、Ｍが指定される。ここではデータ長は８となり、Ｋ及びＬには１６と３２が指定され、５１２ビットが変換対象となる。Ｎ及びＭに８と６４を指定すると、８ビットのデータ単位でＤ１、Ｄ２、Ｄ３、・・・の順番で最終Ｄ６４まで、トータル５１２ビットが図４に示すデータ配列に変換される。このように８ビットのデータが水平６４個一列に変換されることにより、１０２４個ある演算要素１の任意の６４個にデータを書き込むことが可能となる。尚、任意の演算要素１にデータを書き込む方法は実施の形態２で説明する。
【００１２】
Ｎ及びＭに１６と３２を指定すると、８ビットのデータ単位で一列目がＤ１〜Ｄ３２の順番で、二列目がＤ３３〜Ｄ６４の順番で、トータル５１２ビットが図５に示すデータ配列に変換される。このように８ビットのデータが水平３２個二列に変換されることにより、１０２４個ある演算要素１の任意の３２個にデータを書き込むことが可能となる。尚、任意の演算要素１にデータを書き込む方法は実施の形態２で説明する。
Ｎ及びＭに３２と１６を指定すると、８ビットのデータ単位で一列目がＤ１〜Ｄ１６の順番で、二列目がＤ１７〜Ｄ３２の順番で、三列目がＤ３３〜Ｄ４８の順番で、四列目がＤ４９〜Ｄ６４の順番でトータル５１２ビットが図６に示すデータ配列に変換される。このように８ビットのデータが水平１６個四列に変換されることにより、１０２４個ある演算要素１の任意の１６個にデータを書き込むことが可能となる。尚、任意の演算要素１にデータを書き込む方法は実施の形態２で説明する。
【００１３】
次に外部ＳＤＲＡＭ６に記録された図７の１２ビットデータがデータ配列変換部５によって変換される動作を説明する。
プログラムコントローラ２により、データ配列変換部５に対してデータ長と図２のＫ、Ｌ、Ｎ、Ｍが指定される。ここではデータ長は１２となり、Ｋ及びＬには１６と３２が指定され５１２ビットが変換対象となるが、実際にはビットアライメントが一致しないＤ４３を除く５０４ビットが変換対象となる。Ｎ及びＭに１２と４２を指定すると、１２ビットのデータ単位でＤ１、Ｄ２、Ｄ３、・・・の順番で最終Ｄ４２まで、トータル５０４ビットが図８に示すデータ配列に変換される。このように１２ビットのデータが水平４２個一列に変換されることにより、１０２４個ある演算要素１の任意の４２個にデータを書き込むことが可能となる。尚、任意の演算要素１にデータを書き込む方法は実施の形態２で説明する。
【００１４】
Ｎ及びＭに２４と２１を指定すると、１２ビットのデータ単位で一列目がＤ１〜Ｄ２１の順番で、二列目がＤ２２〜Ｄ４２の順番で、トータル５０４ビットが図９に示すデータ配列に変換される。このように１２ビットのデータが水平２１個二列に変換されることにより、１０２４個ある演算要素１の任意の２１個にデータを書き込むことが可能となる。尚、任意の演算要素１にデータを書き込む方法は実施の形態２で説明する。
Ｎ及びＭに４８と１１を指定すると、１２ビットのデータ単位で一列目がＤ１〜Ｄ１１の順番で、二列目がＤ１２〜Ｄ２２の順番で、三列目がＤ２３〜Ｄ３３の順番で、四列目がＤ３４〜Ｄ４２の順番でトータル５０４ビットが図１０に示すデータ配列に変換される。このときＮ＝４８、Ｍ＝１１であるため変換後は５２８ビットとなるが、ビットアライメントが一致しないＤ４３を含む２４ビット（５２８−５０４）は無効データとなるので、四列目の最終２画素分は演算要素１への書き込みを禁止することとなる。このように１２ビットのデータが水平１１個四列に変換されることにより、１０２４個ある演算要素１の任意の１１個にデータを書き込むことが可能となる。尚、任意の演算要素１にデータを書き込む方法は実施の形態２で説明する。
【００１５】
上記のような構成と制御を行うことで、ソフトウェアでのデータ変換が不要となり、また、１画素を一つの演算要素１に対応させることで、データ変換処理時間を大幅に削減することが可能となる。
【００１６】
以上のように、実施の形態１の並列処理装置によれば、演算器とメモリにより構成される複数の演算要素と、入力データを一時的に記録する入力データ一時記録手段と、入力データ一時記録手段で記録されたデータの配列を変換するデータ配列変換手段であって、データの一つのデータ単位は複数のビットにより構成されるものであり、データ配列変換手段は、それぞれのデータ単位が、そのデータ単位に対応する一つの演算要素で演算されるように、データの配列を変換するものである、データ配列変換手段とを備えたので、一つのデータ単位が複数のビットにより構成されるデータに対して並列処理の効率化を図ることができる。
【００１７】
実施の形態２．
次に、この発明の並列処理装置の実施の形態２について説明する。
図１１は、実施の形態２における並列処理回路の構成図である。
図１１に示す通り、各演算要素（ＰＥ）は二つのメモリとＡＬＵを含む演算部で構成されるが、ハードウェア規模の観点からメモリには通常ＳＲＡＭ１１が使用される。例えば３２ビットのＳＲＡＭ１１を使用する場合、３２個の演算部１２を一つのＰＥアレイ１０として構成し、外部ＳＤＲＡＭ６とＳＲＡＭ１１間のアクセスは最低３２ビット単位で実施する。
ＳＤＲＡＭコントローラ６ａは、外部ＳＤＲＡＭ６の制御を行うコントローラである。ＰＥアレイ１０は、様々な演算を実施する演算要素を３２個単位にまとめたものであり、演算部１２を水平方向に１０２４個搭載した場合、ＰＥアレイ１０の数は１０２４／３２＝３２個となる。ＳＲＡＭ１１は、ビットコントロール機能を持たない３２ビットのメモリであり、各ビットが演算部１２と接続されている。演算部１２は、ＡＬＵ１３とアクセス許可フラグ１４を有している。アクセス許可フラグ１４は、はプログラムコントローラ２によって制御され、ＳＲＡＭ１１のデータの書き込みまたは読み出しを許可するためのフラグである。
【００１８】
データセレクタ７は、データ制御部３を経由した外部ＳＤＲＡＭ６のデータを３２ビット単位に分割し、３２個存在するＰＥアレイ１０の何れかに転送するデータセレクタである。セレクトされるデータは実施の形態１で示したデータ変換を施されているため、各ビットは各画素に対応しており、本実施の形態では３２画素のデータが並行して転送されることとなる。
【００１９】
図１２は、外部ＳＤＲＡＭ６のデータをＳＲＡＭ１１の任意のビットにのみ書き込む場合の動作（更新処理）を示したものである。図示例では、アクセス許可フラグ１４（ＦＬＧ）＝１（アクセス許可）のＡＬＵ１３に接続されたＳＲＡＭビットのみが書き込み可能となる。
Ｓｔｅｐ１は、ＳＲＡＭ１１のデータを一時退避する動作となる。先ず、ＳＲＡＭ１１の３２ビットデータを一旦ＡＬＵ１３内部のレジスタ（図示せず）にコピーする。次にプログラムコントローラ２は、データ更新したいＳＲＡＭ１１のビットに接続されたアクセス許可フラグ１４に１をセットする。
Ｓｔｅｐ２は、ＡＬＵ１３内部のレジスタデータをＳＲＡＭ１１に書き戻す動作となる。外部ＳＤＲＡＭ６のデータがデータ制御部３及びデータセレクタ７を介してＡＬＵ１３に転送される。このとき、ＦＬＧ＝１のＡＬＵ１３の内部レジスタにのみ外部ＳＤＲＡＭ６のデータが記録され、ＦＬＧ＝０のＡＬＵ１３の内部レジスタはＳｔｅｐ１で退避したＳＲＡＭ１１のデータを保持する。次に、ＡＬＵ１３の内部レジスタに記録された上記状態の３２ビットデータをＳＲＡＭ１１に転送することで、ＳＲＡＭ１１の任意のビットデータのみが更新されたことになる。
【００２０】
例えば、実施の形態１の図１０で示した４列目のＤ３４〜Ｄ４２をＳＲＡＭ１１に転送する場合、Ｄ３４〜Ｄ４２の９個のＦＬＧを１にセットし、Ｄｕｍｍｙの２画素を含む残り２３個のＦＬＧに０をセットすることで、不要なデータの更新が防止できる。
【００２１】
図１３は、ＳＲＡＭ１１の任意のビットデータのみを外部ＳＤＲＡＭ６に転送する動作を示したものである。ＦＬＧ＝１のＡＬＵ１３に接続されたＳＲＡＭビットのみが転送可能となる。
Ｓｔｅｐ１は、外部ＳＤＲＡＭ６のデータを一時退避する動作となる。先ず、外部ＳＤＲＡＭ６の３２ビットデータを一旦ＡＬＵ１３内部のレジスタにコピーする。次にプログラムコントローラ２は、転送したいＳＲＡＭ１１のビットに接続されたアクセス許可フラグ１４（ＦＬＧ）に１をセットする。
Ｓｔｅｐ２は、ＡＬＵ１３内部のレジスタデータを外部ＳＤＲＡＭ６に書き戻す動作となる。ＳＲＡＭ１１のデータがＡＬＵ１３の内部レジスタに転送される。このとき、ＦＬＧ＝１のＡＬＵ１３の内部レジスタにのみＳＲＡＭ１１のデータが記録され、ＦＬＧ＝０のＡＬＵ１３の内部レジスタはＳｔｅｐ１で退避した外部ＳＤＲＡＭ６のデータを保持する。次にＡＬＵ１３の内部レジスタに記録された上記状態の３２ビットデータを外部ＳＤＲＡＭ６に転送することで、ＳＲＡＭ１１の任意のビットデータのみが転送されたことになる。
【００２２】
上記のような構成と制御を行うことで、外部ＳＤＲＡＭ６のデータをＳＲＡＭ１１に書き込む（更新）際に、ＳＲＡＭ１１の任意のビットのみに書き込むことが可能となる。またＳＲＡＭ１１のデータを外部ＳＤＲＡＭ６に読み出す際に、ＳＲＡＭ１１の任意のビットのみから読み出すことが可能となる。これにより、任意のビットのみの書き込みや読み出しが必要な処理を行う場合、演算要素内部でのデータの一時退避処理などの複雑な制御を不要とし、処理サイクルの大幅な削減を可能にする。
【００２３】
以上のように、実施の形態２の並列処理装置によれば、演算要素は、演算器にデータの書き込みを許可するアクセス許可フラグを備え、演算要素のメモリにデータを書き込む際に、一旦メモリのデータを演算器内のレジスタに退避し、アクセス許可フラグの内容がアクセス許可であるレジスタにのみ、書き込み対象のデータを上書きした後、レジスタのデータをメモリに書き戻すようにしたので、書き込み対象の任意のデータのみを演算要素に書き込むことができる。
【００２４】
また、実施の形態２の並列処理装置によれば、演算要素は、演算器にデータの読み出しを許可するアクセス許可フラグを備え、演算要素のメモリからデータを読み出す際に、一旦、読み出し対象となるデータを演算器内のレジスタに退避し、アクセス許可フラグの内容がアクセス許可であるレジスタにのみ、メモリのデータを上書きした後、レジスタのデータを読み出し対象のデータとして出力するようにしたので、読み出し対象となる任意のデータのみを外部に出力することができる。
【００２５】
実施の形態３．
図１４は、実施の形態３における並列処理装置の全体構成を示すものである。
実施の形態３は、並列処理装置への入力データとして、ＣＣＤ（Charge Coupled Devices）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）などの撮像素子（センサ）８からのデータとしたものである。ここで、撮像素子８は１ライン当たり１０２４画素、あるいはそれ以下の画素数を備えるものとする。データ制御部３は、入力データバッファ４ａとデータ配列変換部５とを備えている。入力データバッファ４ａは、撮像素子８から順次転送される画像データを一旦記録するためのバッファであり、少なくとも１ライン１０２４画素のデータを記録可能である。出力データバッファ４ｂは、演算要素１からの出力データを一旦記録するためのバッファであり、少なくとも１ライン１０２４画素のデータを記録可能である。また、データ配列変換部５、演算要素１及びプログラムコントローラ２は、実施の形態１，２と同様であるため、ここでの説明は省略する。
【００２６】
図１５は、入力データバッファ４ａ及びそれに接続される演算要素１の構成を示したものである。
入力データバッファ４ａは３２画素単位に分割され、ＰＥアレイ１０に接続されている。また、入力データバッファ４ａの各画素に対応して、入力データアクセス許可フラグ（ＦＬＧ）４１が備えられている。この入力データアクセス許可フラグ４１は、プログラムコントローラ２によって制御され、入力データバッファ４ａに記録されたデータのＳＲＡＭ１１への転送を許可するか否かを示すフラグである。尚、入力データアクセス許可フラグ４１は、入力データバッファ４ａの各画素に対応していれば、入力データバッファ４ａ以外の部分に設けられていてもよい。
【００２７】
図１６は、入力データバッファ４ａのデータをＳＲＡＭ１１の任意のビットに書き込む場合の動作（更新処理）を示したものである。ＦＬＧ＝１（アクセス許可）の画素データのみがＳＲＡＭ１１に書き込み可能となる。
Ｓｔｅｐ１は、ＳＲＡＭ１１のデータを一時退避する動作となる。先ず、プログラムコントローラ２は、更新したい画素データが存在する入力データアクセス許可フラグ４１に“１”をセットする。次に、ＳＲＡＭ１１の３２ビットデータを一旦入力データバッファ４ａにコピーする。このときＦＬＧ＝０（アクセス禁止）の入力データバッファ４ａにのみＳＲＡＭ１１の該当ビットのデータが記録され、ＦＬＧ＝１の入力データバッファ４ａのデータは保持される。
Ｓｔｅｐ２は、入力データバッファ４ａのデータをＳＲＡＭ１１に書き戻す動作となる。入力データバッファ４ａに記録されたＳｔｅｐ１の状態の３２ビットデータをＳＲＡＭ１１に転送することで、ＳＲＡＭ１１の任意ビットデータのみが更新されたことになる。
【００２８】
尚、ＳＲＡＭ１１の任意のビットデータを出力データバッファ４ｂに読み出す動作についても同様で、先ずプログラムコントローラ２は、読み出したいＳＲＡＭ１１のビットに該当する図示しない出力データアクセス許可フラグに“１”をセットする。尚、このアクセス許可フラグについては、出力データバッファ４ｂかＳＲＡＭ１１、あるいは独立に設けられる等、出力データバッファ４ｂのそれぞれのビットに対応していれば、どこに設けられていてもよい。
次に、出力データバッファ４ｂの３２ビットデータを一旦ＳＲＡＭ１１にコピーする。このときＦＬＧ＝０の出力データバッファ４ｂのデータのみがＳＲＡＭ１１の該当のビットに記録され、ＦＬＧ＝１に該当するＳＲＡＭ１１のビットデータは保持される。ＳＲＡＭ１１に記録されたこの状態の３２ビットデータを出力データバッファ４ｂに転送することで、ＳＲＡＭ１１の任意のビットデータのみが読み出されたことになる。
【００２９】
上記のような構成と制御を行うことで、センサなどのデータを一時記録する入力データバッファ４ａのデータをＳＲＡＭ１１に書き込む（更新する）際に、ＳＲＡＭ１１の任意のビットのみに書き込むことが可能となる。またＳＲＡＭ１１のデータを出力データバッファ４ｂに読み出す際に、ＳＲＡＭ１１の任意のビットのみから読み出すことが可能となる。これにより、任意のビットのみの書き込みや読み出しが必要な処理、例えば拡大縮小を行う場合、演算要素内部でのデータの一時退避処理などの複雑な制御を不要とし、処理サイクルの大幅な削減を可能にする。
【００３０】
尚、上記実施の形態３において、演算部にアクセス許可フラグを設けた実施の形態２と同様の構成を備えていてもよい。
【００３１】
以上のように、実施の形態３の並列処理装置によれば、入力データ一時記録手段のデータを演算要素のメモリに書き込むことを許可する入力データアクセス許可フラグを備え、メモリにデータを書き込む際に、入力データアクセス許可フラグの内容がアクセス禁止である入力データ一時記録手段のデータに対してのみ、メモリのデータを一旦退避させた後、入力データ一時記録手段の全てのデータをメモリに書き戻すようにしたので、入力データ一時記録手段における任意のデータを演算要素に書き込むことができる。
【００３２】
また、実施の形態３の並列処理装置によれば、演算要素で演算されたデータを一時記録する出力データ一時記録手段を設けると共に、演算要素のメモリから出力データ一時記録手段にデータの読み出しを許可する出力データアクセス許可フラグを備え、メモリからデータを読み出す際に、出力データアクセス許可フラグの内容がアクセス禁止である出力データ一時記録手段のデータに対応したデータのみを、メモリに一旦退避させた後、メモリの全てのデータを出力データ一時記録手段に書き戻すようにしたので、演算要素における任意のデータを出力データ一時記録手段に転送することができる。
【図面の簡単な説明】
【００３３】
【図１】この発明の実施の形態１による並列処理装置を示す構成図である。
【図２】この発明の実施の形態１による並列処理装置のＫ×ＬのデータをＮ×Ｍのデータに変換する動作の説明図である。
【図３】この発明の実施の形態１による並列処理装置の８ビットのデータがビットパックされた状態で記録された３２ビットのデータ幅を備えるデータの説明図である。
【図４】この発明の実施の形態１による並列処理装置のＮ＝８、Ｍ＝６４へのデータ変換を示す説明図である。
【図５】この発明の実施の形態１による並列処理装置のＮ＝１６、Ｍ＝３２へのデータ変換を示す説明図である。
【図６】この発明の実施の形態１による並列処理装置のＮ＝３２、Ｍ＝１６へのデータ変換を示す説明図である。
【図７】この発明の実施の形態１による並列処理装置の１２ビットのデータがビットパックされた状態で記録された３２ビットのデータ幅を備えるデータの説明図である。
【図８】この発明の実施の形態１による並列処理装置の図７のデータにおけるＮ＝１２、Ｍ＝４２へのデータ変換を示す説明図である。
【図９】この発明の実施の形態１による並列処理装置の図７のデータにおけるＮ＝２４、Ｍ＝２１へのデータ変換を示す説明図である。
【図１０】この発明の実施の形態１による並列処理装置の図７のデータにおけるＮ＝４８、Ｍ＝１１へのデータ変換を示す説明図である。
【図１１】この発明の実施の形態２による並列処理装置を示す構成図である。
【図１２】この発明の実施の形態２による並列処理装置の更新処理の説明図である。
【図１３】この発明の実施の形態２による並列処理装置の読み出し処理の説明図である。
【図１４】この発明の実施の形態３による並列処理装置を示す構成図である。
【図１５】この発明の実施の形態３による並列処理装置の入力データバッファと演算要素とを示す構成図である。
【図１６】この発明の実施の形態３による並列処理装置の更新処理の説明図である。
【符号の説明】
【００３４】
１  演算要素（ＰＥ）、４  入出力データバッファ、４ａ  入力データバッファ、４ｂ  出力データバッファ、５  データ配列変換部、６  外部ＳＤＲＡＭ、１１  ＳＲＡＭ、１２  演算部、１３  ＡＬＵ、１４  アクセス許可フラグ、４１  入力データアクセス許可フラグ。
【図１】
0005196946.tif 000002
【図２】
0005196946.tif 000003
【図３】
0005196946.tif 000004
【図４】
0005196946.tif 000005
【図５】
0005196946.tif 000006
【図６】
0005196946.tif 000007
【図７】
0005196946.tif 000008
【図８】
0005196946.tif 000009
【図９】
0005196946.tif 000010
【図１０】
0005196946.tif 000011
【図１１】
0005196946.tif 000012
【図１２】
0005196946.tif 000013
【図１３】
0005196946.tif 000014
【図１４】
0005196946.tif 000015
【図１５】
0005196946.tif 000016
【図１６】
0005196946.tif 000017