(57)【特許請求の範囲】
【請求項１】
それぞれが、２入力の値の乗算を行う複数の乗算器と、
前記複数の乗算器の出力のうちいずれか二つの出力を入力として加算を行う複数の第１加算器と、
前記乗算器の出力または前記第１加算器の出力のうちいずれか二つの出力を入力として加算を行う複数の第２加算器と、
前記乗算器の出力または前記第２加算器の出力のうちいずれか二つの出力を入力として加算を行う複数の第３加算器と、
前記第２加算器に入力される前記乗算器の出力と前記第１加算器の出力とを選択する複数の第１接続選択手段と、
前記第３加算器に入力される前記乗算器の出力と前記第２加算器の出力とを選択する複数の第２接続選択手段とを備えた動的再構成可能演算装置。
【請求項２】
任意の値を保持する複数の記憶素子と、前記複数の記憶素子の出力と所定の入力とを選択する第３接続選択手段を設け、前記複数の乗算器は前記第３接続選択手段の選択結果を、２入力のうちの一方の入力とすることを特徴とする請求項１記載の動的再構成可能演算装置。
【請求項３】
乗算器、第１加算器、第２加算器、第３加算器の出力をそれぞれ保持する記憶素子を設けたことを特徴とする請求項１または請求項２記載の動的再構成可能演算装置。
【請求項４】
請求項１から請求項３のうちのいずれか１項記載の動的再構成可能演算装置を備え、当該動的再構成可能演算装置は、所定の演算処理を指定するプロセッサからの指示に基づいて、当該指示に対応した演算処理を行うと共に、前記動的再構成可能演算装置に入力される演算前のデータまたは演算後のデータのうち、少なくとも一方のデータを格納するバッファを設けたことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動的に演算回路を構成することのできる動的再構成可能演算装置に関するものである。
【背景技術】
【０００２】
従来の動的再構成可能演算装置として、ＤＳＰ（Digital Signal Processor）のような汎用性と、専用回路のような高い性能を併せ持つことのできる動的再構成デバイスがあった。このような従来の動的再構成デバイスでは、演算ユニットであるＡＬＵ（Arithmetic Logic Unit）と、ＤＭＵ（Data Management Unit）、レジスタファイル、バスセレクタ、命令メモリなどが含まれるプロセッサエレメント（ＰＥ）を２次元アレイ状に並べている。そして、命令メモリ内に格納された個々の命令コードにより、ＡＬＵ／ＤＭＵで実行されるべき演算や、ＰＥ間の接続関係を指定していた（例えば、非特許文献１参照）。
【０００３】
【非特許文献１】本村正人、若林一敏、粟島亨、戸井崇雄著、「ＤＲＰのデバイス・アーキテクチャ」、ＣＱ出版、Ｄｅｓｉｇｎ  Ｗａｖｅ  Ｍａｇａｚｉｎｅ  ２００４年８月号、ｐ．６２−６８
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の動的再構成可能演算装置のように、ＡＬＵを含む複数のプロセッサエレメントの組み合わせで構成する場合、多様なアプリケーションを実現できる柔軟性がある反面、回路規模が大きくなってしまう問題があり、また、アプリケーションによっては、多種多様な処理が必要ではないものもあるため面積効率が悪くなるという問題があった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、面積効率の高い動的再構成可能演算装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る動的再構成可能演算装置は、２入力の値の乗算を行う複数の乗算器と、これら複数の乗算器の出力のうちいずれか二つの出力を入力として加算を行う複数の第１加算器と、乗算器の出力または第１加算器の出力のうちいずれか二つの出力を入力として加算を行う複数の第２加算器と、乗算器の出力または第２加算器の出力のうちいずれか二つの出力を入力として加算を行う複数の第３加算器と、第２加算器に入力される乗算器の出力と第１加算器の出力とを選択する複数の第１接続選択手段と、第３加算器に入力される乗算器の出力と第２加算器の出力とを選択する複数の第２接続選択手段とを備えたものである。
【発明の効果】
【０００７】
この発明の動的再構成可能演算装置は、複数の乗算器と、これら複数の乗算器の出力を入力とする複数の第１加算器と、これら複数の第１加算器または複数の乗算器の出力を入力とする第２、第３加算器とを備え、これら乗算器と加算器とをツリー状に接続したので、画像処理や音声処理などで頻繁に用いられる積和演算、バタフライ演算、足し合わせ演算、行列演算に特化した面積効率の高い動的再構成可能な演算装置を得ることができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、この発明の実施の形態１による動的再構成可能演算装置を示す構成図である。
図において、動的再構成可能演算装置は、乗算器１００〜１０７、加算器２００〜２０７、セレクタ３００〜３０７を備えており、これらがツリー状に構成されている。乗算器１００〜１０７は、それぞれが２入力の乗算器であり、乗算器１００には、入力データ１００ａと入力データ１００ｂが入力されるよう構成されている。同様に、乗算器１０１には、入力データ１０１ａと入力データ１０１ｂが、乗算器１０２には、入力データ１０２ａと入力データ１０２ｂが、乗算器１０３には、入力データ１０３ａと入力データ１０３ｂが、乗算器１０４には、入力データ１０４ａと入力データ１０４ｂが、乗算器１０５には、入力データ１０５ａと入力データ１０５ｂが、乗算器１０６には、入力データ１０６ａと入力データ１０６ｂが、乗算器１０７には、入力データ１０７ａと入力データ１０７ｂが、それぞれ接続される。また、出力１００ｃ〜１０７ｃは、それぞれ乗算器１００〜１０７の出力である。
【０００９】
加算器２００〜２０７は、２入力の加算器である。加算器２００の２入力は、乗算器１００，１０１の出力１００ｃ，１０１ｃであり、以下、同様に、加算器２０１の２入力は乗算器１０２，１０３の出力１０２ｃ，１０３ｃ、加算器２０２の２入力は乗算器１０４，１０５の出力１０４ｃ，１０５ｃ、加算器２０３の２入力は乗算器１０６，１０７の出力１０６ｃ，１０７ｃである。また、出力２００ａ〜２０３ａは加算器２００〜２０３の加算結果出力である。以上、加算器２００〜２０３は、複数の乗算器１００〜１０７のうちいずれか二つの出力を入力として加算を行う第１加算器である。更に、加算器２０４の２入力は、セレクタ３００，３０１の出力３００ａ，３０１ａ、加算器２０５の２入力は、セレクタ３０２，３０３の出力３０２ａ，３０３ａ、加算器２０６の２入力は、セレクタ３０４，３０５の出力３０４ａ，３０５ａ、加算器２０７の２入力は、セレクタ３０６，３０７の出力３０６ａ，３０７ａであり、出力２０４ａ〜２０７ａは加算器２０４〜２０７の加算結果出力である。また、加算器２０４，２０５は、乗算器１００〜１０７の出力１００ｃ〜１０７ｃまたは加算器２００〜２０３の出力２００ａ〜２０３ａのうちいずれか二つの出力を入力として加算を行う第２加算器であり、加算器２０６，２０７は、乗算器１００〜１０７の出力１００ｃ〜１０７ｃまたは加算器２０４，２０５の出力２０４ａ，２０５ａのうちいずれか二つの出力を入力として加算を行う第３加算器である。
【００１０】
セレクタ３００〜３０７は、２ｔｏ１セレクタであり、外部から与えられるセレクト信号ｓｅｌ０〜ｓｅｌ７に基づいて、乗算器１００〜１０７と加算器２００〜２０７との接続関係を選択するよう構成されている。セレクタ３００は、その２入力として加算器２００の出力２００ａと乗算器１００の出力１００ｃ、セレクタ３０１は乗算器１０１の出力１０１ｃと加算器２０１の出力２０１ａ、セレクタ３０２は加算器２０２の出力２０２ａと乗算器１０６の出力１０６ｃ、セレクタ３０３は乗算器１０７の出力１０７ｃと加算器２０３の出力２０３ａを入力する。これらセレクタ３００〜３０３は、第２加算器である加算器２０４，２０５に入力される乗算器１００,１０１および乗算器１０６，１０７の出力と、第１加算器である加算器２００，２０１および加算器２０２，２０３の出力とを選択する第１接続選択手段である。
【００１１】
また、セレクタ３０４は、その２入力として加算器２０４の出力２０４ａと乗算器１０２の出力１０２ｃ、セレクタ３０５は乗算器１０３の出力１０３ｃと加算器２０５の出力２０５ａ、セレクタ３０６は加算器２０４の出力２０４ａと乗算器１０４の出力１０４ｃ、セレクタ３０７は乗算器１０５の出力１０５ｃと加算器２０５の出力２０５ａをそれぞれ入力する。また、出力３００ａ〜３０７ａは、セレクタ３００〜３０７の選択出力である。これらセレクタ３０４〜３０７は、第３加算器である加算器２０６，２０７に入力される乗算器１０２〜１０５の出力と第２加算器である加算器２０４，２０５の出力とを選択する第２接続選択手段を構成している。
【００１２】
このように構成された動的再構成可能演算装置では、入力データ１００ａと１００ｂが入力された乗算器１００からは、これら入力データ１００ａと１００ｂの乗算結果出力１００ｃが得られる。同様に、入力データ１０１ａと１０１ｂが入力された乗算器１０１からは、入力データ１０１ａと１０１ｂの乗算結果出力１０１ｃが得られ、入力データ１０２ａと１０２ｂが入力された乗算器１０２からは、入力データ１０２ａと１０２ｂの乗算結果出力１０２ｃが得られ、入力データ１０３ａと１０３ｂが入力された乗算器１０３からは、入力データ１０３ａと１０３ｂの乗算結果出力１０３ｃが得られ、入力データ１０４ａと１０４ｂが入力された乗算器１０４からは、入力データ１０４ａと１０４ｂの乗算結果出力１０４ｃが得られ、入力データ１０５ａと１０５ｂが入力された乗算器１０５からは、入力データ１０５ａと１０５ｂの乗算結果出力１０５ｃが得られ、入力データ１０６ａと１０６ｂが入力された乗算器１０６からは、入力データ１０６ａと１０６ｂの乗算結果出力１０６ｃが得られ、入力データ１０７ａと１０７ｂが入力された乗算器１０７からは、入力データ１０７ａと１０７ｂの乗算結果出力１０７ｃが得られる。
【００１３】
続いて、乗算器１００，１０１で得られた乗算結果出力１００ｃと１０１ｃが加算器２００に入力され、乗算結果出力１００ｃと１０１ｃの加算結果出力２００ａが得られる。同様に、乗算結果出力１０２ｃと１０３ｃが入力された加算器２０１からは、乗算結果出力１０２ｃと１０３ｃの加算結果出力２０１ａが得られ、乗算結果出力１０４ｃと１０５ｃが入力された加算器２０２からは、乗算結果出力１０４ｃと１０５ｃの加算結果出力２０２ａが得られ、乗算結果出力１０６ｃと１０７ｃが入力された加算器２０３からは、乗算結果出力１０６ｃと１０７ｃの加算結果出力２０３ａが得られる。
【００１４】
また、上記演算で得られた加算結果出力２００ａと乗算結果出力１００ｃがセレクタ３００に入力され、外部から入力される１ビットのセレクト信号ｓｅｌ０により選択され、セレクタ出力３００ａが得られる。同様に、加算結果出力２０１ａと乗算結果出力１０１ｃが入力されたセレクタ３０１からは、セレクト信号ｓｅｌ１により選択されたセレクタ出力３０１ａが得られ、加算結果出力２０２ａと乗算結果出力１０６ｃが入力されたセレクタ３０２からは、セレクト信号ｓｅｌ２により選択されたセレクタ出力３０２ａが得られ、加算結果出力２０３ａと乗算結果出力１０７ｃが入力されたセレクタ３０３からは、セレクト信号ｓｅｌ３により選択されたセレクタ出力３０３ａが得られる。
【００１５】
続いて、上記演算で得られたセレクタ出力３００ａと３０１ａが加算器２０４に入力され、セレクタ出力３００ａと３０１ａの加算結果出力２０４ａが得られる。同様に、セレクタ出力３０２ａと３０３ａが入力された加算器２０５からは、セレクタ出力３０２ａと３０３ａの加算結果出力２０５ａが得られる。続いて、これら演算で得られた加算結果出力２０４ａと乗算結果出力１０２ｃがセレクタ３０４に入力され、外部から入力される１ビットのセレクト信号ｓｅｌ４により選択され、セレクタ出力３０４ａが得られる。同様に、加算結果出力２０５ａと乗算結果出力１０３ｃが入力されたセレクタ３０５からは、セレクト信号ｓｅｌ５により選択されたセレクタ出力３０５ａが得られ、加算結果出力２０４ａと乗算結果出力１０４ｃが入力されたセレクタ３０６からは、セレクト信号ｓｅｌ６により選択されたセレクタ出力３０６ａが得られ、加算結果出力２０５ａと乗算結果出力１０５ｃが入力されたセレクタ３０７からは、セレクト信号ｓｅｌ７により選択されたセレクタ出力３０７ａが得られる。続いて、これら演算で得られたセレクタ出力３０４ａと３０５ａが加算器２０６に入力され、セレクタ出力３０４ａと３０５ａの加算結果出力２０６ａが得られる。同様に、セレクタ出力３０６ａと３０７ａが入力された加算器２０７からは、セレクタ出力３０６ａと３０７ａの加算結果出力２０７ａが得られる。尚、以上の演算で得られた加算結果出力２００ａ〜２０７ａは、いずれも外部に出力することができる。
【００１６】
次に、実施の形態１の動的再構成可能演算装置における積和演算を行う場合の具体例について説明する。
図２は、８タップ並列積和演算時の回路構成を示す説明図である。
先ず、８個の乗算器１００〜１０７に、それぞれ入力データ１００ａ〜１０７ａ、１００ｂ〜１０７ｂを入力する。乗算器１００〜１０７からは、それぞれ乗算結果出力１００ｃ＝１００ａ・１００ｂ、１０１ｃ＝１０１ａ・１０１ｂ、１０２ｃ＝１０２ａ・１０２ｂ、１０３ｃ＝１０３ａ・１０３ｂ、１０４ｃ＝１０４ａ・１０４ｂ、１０５ｃ＝１０５ａ・１０５ｂ、１０６ｃ＝１０６ａ・１０６ｂ、１０７ｃ＝１０７ａ・１０７ｂが出力される。次に、加算器２００に上記の乗算結果出力１００ｃと１０１ｃが入力され、加算結果出力２００ａ＝１００ａ・１００ｂ＋１０１ａ・１０１ｂが得られる。同様に、加算器２０１には乗算結果出力１０２ｃと１０３ｃが入力され、加算結果出力２０１ａ＝１０２ａ・１０２ｂ＋１０３ａ・１０３ｂが得られ、加算器２０２には乗算結果出力１０４ｃと１０５ｃが入力され、加算結果出力２０２ａ＝１０４ａ・１０４ｂ＋１０５ａ・１０５ｂが得られ、加算器２０３には乗算結果出力１０６ｃと１０７ｃが入力され、加算結果出力２０３ａ＝１０６ａ・１０６ｂ＋１０７ａ・１０７ｂが得られる。
【００１７】
上記演算で得られた加算結果出力２００ａ〜２０３ａは、それぞれセレクタ３００〜３０３に入力される。セレクタ３００には、加算結果出力２００ａが選択され出力されるようなセレクト信号ｓｅｌ０を入力する。例えば、図面において左の入力を選択する場合はセレクト信号に“０”を、右の入力を選択する場合はセレクト信号に“１”を入力するものとすると、ｓｅｌ０には“０”を設定する。同様に、セレクタ３０１には加算結果出力２０１ａが選択出力されるようなセレクト信号ｓｅｌ１＝“１”を入力し、セレクタ３０２には加算結果出力２０２ａが選択出力されるようなセレクト信号ｓｅｌ２＝“０”を入力し、セレクタ３０３には加算結果出力２０３ａが選択出力されるようなセレクト信号ｓｅｌ３＝“１”を入力する。
【００１８】
セレクタ３００から出力された３００ａ＝２００ａ＝１００ａ・１００ｂ＋１０１ａ・１０１ｂと、セレクタ３０１から出力された３０１ａ＝２０１ａ＝１０２ａ・１０２ｂ＋１０３ａ・１０３ｂは、加算器２０４に入力され、加算結果出力２０４ａ＝１００ａ・１００ｂ＋１０１ａ・１０１ｂ＋１０２ａ・１０２ｂ＋１０３ａ・１０３ｂが得られる。セレクタ３０２から出力された３０２ａ＝２０２ａ＝１０４ａ・１０４ｂ＋１０５ａ・１０５ｂと、セレクタ３０３から出力された３０３ａ＝２０３ａ＝１０６ａ・１０６ｂ＋１０７ａ・１０７ｂは、加算器２０５に入力され、加算結果出力２０５ａ＝１０４ａ・１０４ｂ＋１０５ａ・１０５ｂ＋１０６ａ・１０６ｂ＋１０７ａ・１０７ｂが得られる。このような演算で得られた加算結果出力２０４ａと２０５ａは、それぞれセレクタ３０４と３０５に入力される。
【００１９】
セレクタ３０４には加算結果出力２０４ａが選択出力されるようなセレクト信号ｓｅｌ４＝“０”を入力し、セレクタ３０５には加算結果出力２０５ａが選択出力されるようなセレクト信号ｓｅｌ５＝“１”を入力する。セレクタ３０４から出力された３０４ａ＝２０４ａ＝１００ａ・１００ｂ＋１０１ａ・１０１ｂ＋１０２ａ・１０２ｂ＋１０３ａ・１０３ｂと、セレクタ３０５から出力された３０５ａ＝２０５ａ＝１０４ａ・１０４ｂ＋１０５ａ・１０５ｂ＋１０６ａ・１０６ｂ＋１０７ａ・１０７ｂは、加算器２０６に入力され、加算結果出力２０６ａ＝１００ａ・１００ｂ＋１０１ａ・１０１ｂ＋１０２ａ・１０２ｂ＋１０３ａ・１０３ｂ＋１０４ａ・１０４ｂ＋１０５ａ・１０５ｂ＋１０６ａ・１０６ｂ＋１０７ａ・１０７ｂが得られる。
【００２０】
次に、８入力足し合わせ演算の動作例を説明する。
図３は、８入力足し合わせ演算時の回路構成を示す説明図である。
先ず、８個の乗算器１００〜１０７に、それぞれ入力データ１００ａ〜１０７ａと、１００ｂ〜１０７ｂには固定値“１”を入力する。乗算器１００〜１０７からは、片方の入力が“１”であるため、それぞれ乗算結果出力１００ｃ＝１００ａ、１０１ｃ＝１０１ａ、１０２ｃ＝１０２ａ、１０３ｃ＝１０３ａ、１０４ｃ＝１０４ａ、１０５ｃ＝１０５ａ、１０６ｃ＝１０６ａ、１０７ｃ＝１０７ａが出力される。
【００２１】
次に、加算器２００に上記の乗算結果出力１００ｃと１０１ｃが入力され、加算結果出力２００ａ＝１００ａ＋１０１ａが得られる。同様に、加算器２０１には乗算結果出力１０２ｃと１０３ｃが入力されて加算結果出力２０１ａ＝１０２ａ＋１０３ａが得られ、加算器２０２には乗算結果出力１０４ｃと１０５ｃが入力されて加算結果出力２０２ａ＝１０４ａ＋１０５ａが得られ、加算器２０３には乗算結果出力１０６ｃと１０７ｃが入力されて加算結果出力２０３ａ＝１０６ａ＋１０７ａが得られる。これら演算で得られた加算結果出力２００ａ〜２０３ａは、それぞれセレクタ３００〜３０３に入力される。
【００２２】
セレクタ３００には、加算結果出力２００ａが選択され出力されるようなセレクト信号ｓｅｌ０を入力する。例えば、図面上における左の入力を選択する場合はセレクト信号に“０”を、右の入力を選択する場合はセレクト信号に“１”を入力するものとすると、ｓｅｌ０には“０”を設定する。同様に、セレクタ３０１には加算結果出力２０１ａが選択出力されるようなセレクト信号ｓｅｌ１＝“１”を入力し、セレクタ３０２には加算結果出力２０２ａが選択出力されるようなセレクト信号ｓｅｌ２＝“０”を入力し、セレクタ３０３には加算結果出力２０３ａが選択出力されるようなセレクト信号ｓｅｌ３＝“１”を入力する。セレクタ３００から出力された選択結果出力３００ａ＝２００ａ＝１００ａ＋１０１ａと、セレクタ３０１から出力された選択結果出力３０１ａ＝２０１ａ＝１０２ａ＋１０３ａは、加算器２０４に入力され、加算結果出力２０４ａ＝１００ａ＋１０１ａ＋１０２ａ＋１０３ａが得られる。セレクタ３０２から出力された選択結果出力３０２ａ＝２０２＝１０４ａ＋１０５ａと、セレクタ３０３から出力された選択結果出力３０３＝２０３ａ＝１０６ａ＋１０７ａは、加算器２０５に入力され、加算結果出力２０５ａ＝１０４ａ＋１０５ａ＋１０６ａ＋１０７ａが得られる。
【００２３】
上記演算で得られた加算結果出力２０４ａと２０５ａは、それぞれセレクタ３０４と３０５に入力される。セレクタ３０４には加算結果出力２０４ａが選択出力されるようなセレクト信号ｓｅｌ４＝“０”を入力し、セレクタ３０５には加算結果出力２０５ａが選択出力されるようなセレクト信号ｓｅｌ５＝“１”を入力する。セレクタ３０４から出力された選択結果出力３０４ａ＝２０４ａ＝１００ａ＋１０１ａ＋１０２ａ＋１０３ａと、セレクタ３０５から出力された選択結果出力３０５ａ＝２０５ａ＝１０４ａ＋１０５ａ＋１０６ａ＋１０７ａは、加算器２０６に入力され、加算結果出力２０６ａ＝１００ａ＋１０１ａ＋１０２ａ＋１０３ａ＋１０４ａ＋１０５ａ＋１０６ａ＋１０７ａが得られる。
【００２４】
このように、演算器の機能を乗算器１００〜１０７と加算器２００〜２０７に固定してツリー状に構成し、演算器間をセレクタ３００〜３０７により接続して、セレクタ３００〜３０７へ入力するセレクト信号のみを切り替えることで回路の再構成を行うことにより、画像処理や音声処理などで頻繁に用いられる積和演算、バタフライ演算、足し合わせ演算、行列演算に特化した面積効率のよい動的再構成可能な演算装置を得ることができる。また、演算機能を乗算器１００〜１０７と加算器２００〜２０７に固定しているため、演算機能を指定するための信号が必要なく、回路の構成情報データを削減することができる。
【００２５】
以上のように、実施の形態１の動的再構成可能演算装置によれば、それぞれが、２入力の値の乗算を行う複数の乗算器と、複数の乗算器の出力のうちいずれか二つの出力を入力として加算を行う複数の第１加算器と、乗算器の出力または第１加算器の出力のうちいずれか二つの出力を入力として加算を行う複数の第２加算器と、乗算器の出力または第２加算器の出力のうちいずれか二つの出力を入力として加算を行う複数の第３加算器と、第２加算器に入力される乗算器の出力と第１加算器の出力とを選択する複数の第１接続選択手段と、第３加算器に入力される乗算器の出力と第２加算器の出力とを選択する複数の第２接続選択手段とを備えたので、面積効率の高い動的再構成可能演算装置を得ることができる。
【００２６】
実施の形態２．
実施の形態２は、実施の形態１の構成において乗算器１００〜１０７の一方の入力側にレジスタとセレクタとを備えたものである。
図４−１および図４−２は、実施の形態２における動的再構成可能演算装置を示す構成図である。
図示の動的再構成可能演算装置は、乗算器１００〜１０７、加算器２００〜２０７、セレクタ３００〜３１５、レジスタ４００〜４０７を備えている。ここで、レジスタ４００〜４０７は、それぞれセレクタ３０８〜３１５を介して乗算器１００〜１０７の一方の入力に接続される記憶素子であり、予め所定の値が設定されている。セレクタ３０８〜３１５は、２ｔｏ１のセレクタであり、一方の入力をレジスタ４００〜４０７の出力４００ａ〜４０７ａとして、もう一方の入力を入力データ１００ｂ〜１０７ｂとし、選択結果出力３０８ａ〜３１５ａを乗算器１００〜１０７の入力となるよう接続されている。これらセレクタ３０８〜３１５は、第３接続選択手段を構成している。これ以外の構成は、実施の形態１の構成と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００２７】
レジスタ４００〜４０７には、必要に応じて予め値を設定する。入力データ１００ｂとレジスタ４００の出力４００ａがセレクタ３０８に入力され、外部から入力される１ビットのセレクト信号ｓｅｌ８により選択され、セレクタ出力３０８ａが得られる。同様に、入力データ１０１ｂとレジスタ４０１の出力４０１ａが入力されたセレクタ３０９からは、セレクト信号ｓｅｌ９により選択されたセレクタ出力３０９ａが得られ、入力データ１０２ｂとレジスタ４０２の出力４０２ａが入力されたセレクタ３１０からは、セレクト信号ｓｅｌ１０により選択されたセレクタ出力３１０ａが得られ、入力データ１０３ｂとレジスタ４０３の出力４０３ａが入力されたセレクタ３１１からは、セレクト信号ｓｅｌ１１により選択されたセレクタ出力３１１ａが得られ、入力データ１０４ｂとレジスタ４０４の出力４０４ａが入力されたセレクタ３１２からは、セレクト信号ｓｅｌ１２により選択されたセレクタ出力３１２ａが得られ、入力データ１０５ｂとレジスタ４０５の出力４０５ａが入力されたセレクタ３１３からは、セレクト信号ｓｅｌ１３により選択されたセレクタ出力３１３ａが得られ、入力データ１０６ｂとレジスタ４０６の出力４０６ａが入力されたセレクタ３１４からは、セレクト信号ｓｅｌ１４により選択されたセレクタ出力３１４ａが得られ、入力データ１０７ｂとレジスタ４０７の出力４０７ａが入力されたセレクタ３１５からは、セレクト信号ｓｅｌ１５により選択されたセレクタ出力３１５ａが得られる。
【００２８】
続いて、入力データ１００ａと上記の演算で得られたセレクタ出力３０８ａが入力された乗算器１００からは、１００ａと３０８ａの乗算結果出力１００ｃが得られる。同様に、１０１ａと３０９ａが入力された乗算器１０１からは、１０１ａと３０９ａの乗算結果出力１０１ｃが得られ、１０２ａと３１０ａが入力された乗算器１０２からは、１０２ａと３１０ａの乗算結果出力１０２ｃが得られ、１０３ａと３１１ａが入力された乗算器１０３からは、１０３ａと３１１ａの乗算結果出力１０３ｃが得られ、１０４ａと３１２ａが入力された乗算器１０４からは、１０４ａと３１２ａの乗算結果出力１０４ｃが得られ、１０５ａと３１３ａが入力された乗算器１０５からは、１０５ａと３１３ａの乗算結果出力１０５ｃが得られ、１０６ａと３１４ａが入力された乗算器１０６からは、１０６ａと３１４ａの乗算結果出力１０６ｃが得られ、１０７ａと３１５ａが入力された乗算器１０７からは、１０７ａと３１５ａの乗算結果出力１０７ｃが得られる。
乗算器１００〜１０７のおける乗算結果出力１００ｃ〜１０７ｃ以降の信号に流れについては実施の形態１と同様であるため、ここでの説明は省略する。
【００２９】
次に、実施の形態２における８入力足し合わせ演算の動作例を説明する。
図５−１および図５−２は、実施の形態２の動的再構成可能演算装置を用いた８入力足し合わせ演算時の回路構成を示す説明図である。
実施の形態２においては、図示のように、レジスタ４００〜４０７にそれぞれ固定値“１”を予め設定し、セレクタ３０８〜３１５に、それぞれレジスタ出力４００ａ〜４０７ａを選択出力するようなセレクト信号ｓｅｌ８〜ｓｅｌ１５（＝“１”）を入力する。これにより、図３で示した実施の形態１における回路構成と同様の結果を得ることができる。尚、乗算器１００〜１０７以降の動作は実施の形態１において図３で説明した動作と同様であるため、ここでの説明は省略する。
【００３０】
このようにすることで、例えば８入力足し合わせ演算を入力データを変更しながら繰り返し実行する場合、実施の形態１における図３の構成では、毎回入力データとして固定値“１”を入力しなくてはならなかったところを、省略することができる。
【００３１】
次に、動画像処理で頻繁に用いられるＤＣＴ（離散コサイン変換）演算を例に、バタフライ演算の動作例を示す。ＤＣＴ演算は、下式（１）および（２）で示される。
【数１】
0005196905.tif 000002
【００３２】
ＤＣＴ演算には様々なアルゴリズムが存在するが、ここでは例としてＣｈｅｎのアルゴリズムを用いる。Ｃｈｅｎのアルゴリズムでは、図６に示すようなバタフライ演算を行う。図６において、実線は乗算を示しており、実線上の数値は掛け合わせる数値を示している。数値が示されていない実線は、掛け合わせる数値が“１”、即ち、掛け合わされる数値そのものを伝達することを示す。また、Ｃi,kはｃｏｓ(ｉπ／ｋ)、Ｓi,kはｓｉｎ(ｉπ／ｋ)を示す。図６に示すバタフライ演算は、８タップ並列積和演算回路の構成を用いる場合、５つの部分演算［１］〜［５］に分割して実行できる。
【００３３】
先ず、動的再構成可能演算装置上に、図７−１および図７ー２に示す［１］の部分演算用回路を構成し、［１］の部分演算を実行して出力値ｘ０＋ｘ７、ｘ０−ｘ７、ｘ１＋ｘ６、ｘ１−ｘ６、ｘ２＋ｘ５、ｘ２−ｘ５、ｘ３＋ｘ４、ｘ３−ｘ４を得る。即ち、セレクタ３００〜３０７を、それぞれ乗算結果出力１００ｃ，１０１ｃ，１０６ｃ，１０７ｃ，１０２ｃ，１０３ｃ，１０４ｃ，１０５ｃを選択出力するよう設定する。
【００３４】
次に、動的再構成可能演算装置の回路構成を図８−１および図８−２に示す［２］の部分演算用回路に再構成し、［１］の演算で得られた出力値を入力に［２］の部分演算を実行して、出力値ｘ０＋ｘ７＋ｘ６＋ｘ１、ｘ０＋ｘ７−ｘ６−ｘ１、ｘ４＋ｘ３＋ｘ２＋ｘ５、ｘ４＋ｘ３−ｘ２−ｘ５、Ｃ1,4・（ｘ２−ｘ５＋ｘ４−ｘ３）、Ｃ1,4・（ｘ２−ｘ５−ｘ４＋ｘ３）を得る。ここでは、セレクタ３００，３０１，３０４〜３０７を、それぞれ乗算結果出力１００ｃ〜１０５ｃを選択出力するよう設定し、加算結果出力２００ａ，２０４ａ，２０１ａ，２０６ａ，２０７ａ，２０２ａが出力される。
【００３５】
次に、動的再構成可能演算装置の回路構成を図９−１および図９−２に示す［３］の部分演算用回路に再構成し、［２］の部分演算で得られた出力値を入力に［３］の部分演算を実行して、出力値Ｘ０、Ｘ１、Ｘ２、Ｘ３を得る。ここでは、セレクタ３０６，３０７が乗算結果出力１０４ｃ，１０５ｃを選択するよう設定され、加算結果出力２００ａ〜２０２ａ，２０７ａが出力される。
【００３６】
次に、動的再構成可能演算装置の回路構成を図１０−１および図１０−２に示す［４］の部分演算用回路に再構成し、［１］および［２］の部分演算で得られた出力値を入力に［４］の部分演算を実行し、出力値ｘ６−ｘ１＋Ｃ1,4・(ｘ２−ｘ５−ｘ４＋ｘ３)、ｘ６−ｘ１−Ｃ1,4・(ｘ２−ｘ５−ｘ４＋ｘ３)、ｘ０−ｘ７＋Ｃ1,4・(ｘ２−ｘ５＋ｘ４−ｘ３)、ｘ０−ｘ７−Ｃ1,4・(ｘ２−ｘ５＋ｘ４−ｘ３)を得る。ここでは、セレクタ３００，３０１およびセレクタ３０４，３０５が、それぞれ乗算結果出力１００ｃ〜１０３ｃを選択するよう設定され、加算結果出力２００ａ，２０４ａ，２０１ａ，２０６ａが出力される。
【００３７】
最後に、動的再構成可能演算装置の回路構成を図１１−１および図１１−２に示す［５］の部分演算用回路に再構成し、［４］で得られた出力値を入力に［５］の部分演算を実行して、出力値Ｘ４、Ｘ５、Ｘ６、Ｘ７を得る。ここでは、加算結果出力２００ａ〜２０３ａが出力される。
【００３８】
以上説明したように、本実施の形態の動的再構成可能演算装置により、バタフライ演算を実現することができる。ここでは、ＤＣＴを例にバタフライ演算の動作例を示したが、同様に、バタフライ演算を用いるＦＦＴ（高速離散フーリエ変換）等の処理も実現できる。
【００３９】
次に、２次元のアフィン変換を例に、行列演算の動作例を示す。２次元のアフィン変換は、式（３）の行列演算で示される。
【数２】
0005196905.tif 000003
行列演算の出力は、ｘ’＝ｄ１・ｘ＋ｅ１・ｙ＋ｆ１、ｙ’＝ｄ２・ｘ＋ｅ２・ｙ＋f２のように積和演算により計算される。
【００４０】
図１２−１および図１２−２に２次元アフィン変換の動作例を示す。２次元のアフィン変換の場合、ｘ’とｙ’は３項の積の和となるため、８タップ並列の積和演算回路を用いる場合、ｘ’とｙ’は、それぞれ４タップ並列の積和演算回路を用いて同時に演算することができる。まず、ｄ１、ｅ１、ｆ１、ｄ２、ｅ２、ｆ２を、それぞれレジスタ４００，４０１，４０２，４０４，４０５，４０６に設定する。乗算器１００にはｘとセレクタ３０８により選択出力された３０８ａ＝ｄ１が入力され、乗算結果出力１００ｃ＝ｘ・ｄ１が得られる。同様に、乗算器１０１にはｙとセレクタ３０９により選択出力された３０９ａ＝ｅ１が入力され、乗算結果出力１０１ｃ＝ｙ・ｅ１が得られ、乗算器１０２には“１”とセレクタ３１０により選択出力された３１０ａ＝ｆ１が入力され、乗算結果出力１０２ｃ＝ｆ１が得られ、乗算器１０４にはｘとセレクタ３１２により選択出力された３１２ａ＝ｄ２が入力され、乗算結果出力１０４ｃ＝ｘ・ｄ２が得られ、乗算器１０５にはｙとセレクタ３１３により選択出力された３１３ａ＝ｅ２が入力され、乗算結果出力１０５ｃ＝ｙ・ｅ２が得られ、乗算器１０６には“１”とセレクタ３１４により選択出力された３１４ａ＝ｆ２が入力され、乗算結果出力１０６ｃ＝ｆ２が得られる。
【００４１】
３項の積和の場合、乗算器は３個しか必要なく、乗算器１０３と１０７は演算を行う必要がない。従って、レジスタ４０３および４０７には“０”を設定し、セレクタ３１１、３１５がそれぞれレジスタ出力４０３ａ、４０７ａを選択出力するようなセレクト信号ｓｅｌ１１、ｓｅｌ１５を入力することで、乗算器１０３および１０７の片方の入力が“０”となるため、乗算器１０３の出力１０３ｃ、および、乗算器１０７の出力１０７ｃは、どちらも“０”となる。
【００４２】
上記で得られた乗算結果出力１００ｃと１０１ｃが加算器２００に入力され、加算結果２００ａ＝ｘ・ｄ１＋ｙ・ｅ１が得られ、乗算結果出力１０２ｃと１０３ｃ（＝“０”）が加算器２０１に入力され、加算結果出力２０１ａ＝ｆ１が得られる。得られた加算結果出力２００ａと２０１ａが、それぞれセレクタ３００と３０１から選択出力され加算器２０４に入力され、最終出力ｘ’＝ｘ・ｄ１＋ｙ・ｅ１＋ｆ１が得られる。同様に、上記で得られた乗算結果出力１０４ｃと１０５ｃが加算器２０２に入力され、加算結果出力２０２ａ＝ｘ・ｄ２＋ｙ・ｅ２が得られ、乗算結果出力１０６ｃと１０７ｃ（＝“０”）が加算器２０３に入力され、加算結果出力２０３ａ＝ｆ２が得られる。得られた加算結果出力２０２ａと２０３ａが、それぞれセレクタ３０２と３０３から選択出力され加算器２０５に入力され、最終出力ｙ’＝ｘ・ｄ２＋ｙ・ｅ２＋ｆ２が得られる。
【００４３】
このように、予め値をレジスタ４００〜４０７に設定し、入力データとレジスタ出力４００ａ〜４０７ａとをセレクタ３０８〜３１５で選択できるようにすることで、乗算器１００〜１０７の片方の入力データが固定値である場合に、毎回外部から入力データとして固定値を入力するのにかかっていたサイクル数やバス幅を削減することができる。
【００４４】
以上のように、実施の形態２の動的再構成可能演算装置によれば、任意の値を保持する複数の記憶素子と、複数の記憶素子の出力と所定の入力とを選択する第３接続選択手段を設け、複数の乗算器は第３接続選択手段の選択結果を、２入力のうちの一方の入力とするようにしたので、乗算器への入力データとして毎回入力しなければならないような場合でもこれを省略することができ、データ入力によるサイクル数の削減やバス幅の削減を図ることができる。
【００４５】
実施の形態３．
実施の形態３の動的再構成可能演算装置は、実施の形態２の構成に加えて、乗算器１００〜１０７と加算器２００〜２０７の出力を保持するためのレジスタ（記憶素子）をそれぞれ備えたものである。
図１３−１および図１３−２は、実施の形態３における動的再構成可能演算装置を示す構成図である。
図示の動的再構成可能演算装置は、乗算器１００〜１０７、加算器２００〜２０７、セレクタ３００〜３１５、レジスタ４００〜４２３を備えている。ここで、レジスタ４０８〜４１５は、それぞれ乗算器１００〜１０７の乗算結果出力１００ｃ〜１０７ｃの値を保持するためのレジスタ、レジスタ４１６〜４２３は、それぞれ加算器２００〜２０７の加算結果出力２００ａ〜２０７ａの値を保持するためのレジスタである。これ以外の構成は、図４−１および図４−２に示した実施の形態２の構成と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００４６】
乗算器１００の乗算結果出力１００ｃは、レジスタ４０８に格納する。同様に、乗算器１０１の乗算結果出力１０１ｃをレジスタ４０９に格納し、乗算器１０２の乗算結果出力１０２ｃをレジスタ４１０に格納し、乗算器１０３の乗算結果出力１０３ｃをレジスタ４１１に格納し、乗算器１０４の乗算結果出力１０４ｃをレジスタ４１２に格納し、乗算器１０５の乗算結果出力１０５ｃをレジスタ４１３に格納し、乗算器１０６の乗算結果出力１０６ｃをレジスタ４１４に格納し、乗算器１０７の乗算結果出力１０７ｃをレジスタ４１５に格納する。
【００４７】
続いて、レジスタ４０８の出力４０８ａとレジスタ４０９の出力４０９ａが加算器２００に入力され、得られる４０８ａと４０９ａの加算結果出力２００ａをレジスタ４１６に格納する。同様に、レジスタ４１０の出力４１０ａとレジスタ４１１の出力４１１ａが入力された加算器１０１から得られる４１０ａと４１１ａの加算結果出力２０１ａをレジスタ４１７に格納し、レジスタ４１２の出力４１２ａとレジスタ４１３の出力４１３ａが入力された加算器２０２から得られる４１２ａと４１３ａの加算結果出力２０２ａをレジスタ４１８に格納し、レジスタ４１４の出力４１４ａとレジスタ４１５の出力４１５ａが入力された加算器２０３から得られる４１４ａと４１５ａの加算結果出力２０３をレジスタ４１９に格納する。
【００４８】
続いて、レジスタ４１６の出力４１６ａとレジスタ４０８の出力４０８ａがセレクタ３００に入力され、外部から入力される１ビットのセレクト信号ｓｅｌ０により選択され、セレクタ出力３００ａが得られる。同様に、レジスタ４１７の出力４１７ａとレジスタ４０９の出力４０９ａが入力されたセレクタ３０１からは、セレクト信号ｓｅｌ１により選択されたセレクタ出力３０１ａが得られ、レジスタ４１８の出力４１８ａとレジスタ４１４の出力４１４ａが入力されたセレクタ３０２からは、セレクト信号ｓｅｌ２により選択されたセレクタ出力３０２ａが得られ、レジスタ４１９の出力４１９ａとレジスタ４１５の出力４１５ａが入力されたセレクタ３０３からは、セレクト信号ｓｅｌ３により選択されたセレクタ出力３０３ａが得られる。
【００４９】
続いて、上記演算で得られたセレクタ出力３００ａと３０１ａが加算器２０４に入力され、得られる３００ａと３０１ａの加算結果出力２０４ａをレジスタ４２０に格納する。同様に、３０２ａと３０３ａが入力された加算器２０５から得られる３０２ａと３０３ａの加算結果出力２０５ａをレジスタ４２１に格納する。続いて、レジスタ４２０の出力４２０ａとレジスタ４１０の出力４１０ａがセレクタ３０４に入力され、外部から入力される１ビットのセレクト信号ｓｅｌ４により選択され、セレクタ出力３０４ａが得られる。同様に、レジスタ４２１の出力４２１ａとレジスタ４１１の出力４１１ａが入力されたセレクタ３０５からは、セレクト信号ｓｅｌ５により選択されたセレクタ出力３０５ａが得られ、レジスタ４２０の出力４２０ａとレジスタ４１２の出力４１２ａが入力されたセレクタ３０６からは、セレクト信号ｓｅｌ６により選択されたセレクタ出力３０６ａが得られ、レジスタ４２１の出力４２１ａとレジスタ４１３の出力４１３ａが入力されたセレクタ３０７からは、セレクト信号ｓｅｌ７により選択されたセレクタ出力３０７ａが得られる。
【００５０】
続いて、上記演算で得られたセレクタ出力３０４ａと３０５ａが加算器２０６に入力され、得られる３０４ａと３０５ａの加算結果出力２０６ａをレジスタ４２２に格納する。同様に、３０６ａと３０７ａが入力された加算器２０７から得られる３０６ａと３０７ａの加算結果出力２０７ａをレジスタ４２３に格納する。尚、これらのレジスタ４１６〜４２３の出力４１６ａ〜４２３ａは、いずれも外部に出力できる。
このように、乗算器１００〜１０７と加算器２００〜２０７の演算結果出力を格納するレジスタ４０８〜４２３を備えることで、パイプライン動作が可能となり、装置全体のスループットを向上させることができる。
【００５１】
次に、実施の形態３における８タップ並列積和演算の回路構成と、８入力足し合わせ演算の回路構成を動的に切り替えることにより実現される２４タップＦＩＲフィルタの動作例について説明する。
図１４は、２４タップＦＩＲフィルタの動作イメージを示すものである。図中、ＦＦは遅延素子を表す。
一般に、ＦＩＲフィルタの式は、式（４）で示される。
尚、式（４）において、Ｙ（ｋ）は時刻kにおける出力信号、Ｎはタップ数、ｘは入力信号、ｈはフィルタの係数である。
【数３】
0005196905.tif 000004
【００５２】
８タップ並列積和演算回路を用いる場合、一度に８タップまでの積和演算を行うことができるため、２４タップを８タップずつ３回に分けて積和演算する。１回目は、入力信号ｘ２３〜ｘ１６と係数ｈ０〜ｈ７を入力とし、積和演算結果Ｙ’０（２３）＝ｈ０・ｘ２３＋ｈ１・ｘ２２＋ｈ２・ｘ２１＋ｈ３・ｘ２０＋ｈ４・ｘ１９＋ｈ５・ｘ１８＋ｈ６・ｘ１７＋ｈ７・ｘ１６を得る。２回目は、入力信号ｘ１５〜ｘ８と係数ｈ８〜ｈ１５を入力とし、積和演算結果Ｙ’１(２３)＝ｈ８・ｘ１５＋ｈ９・ｘ１４＋ｈ１０・ｘ１３＋ｈ１１・ｘ１２＋ｈ１２・ｘ１１＋ｈ１３・ｘ１０＋ｈ１４・ｘ９＋ｈ１５・ｘ８を得る。３回目は、入力信号ｘ７〜ｘ０と係数ｈ１６〜ｈ２３を入力とし、積和演算結果Ｙ’２(２３)＝ｈ１６・ｘ７＋ｈ１７・ｘ６＋ｈ１８・ｘ５＋ｈ１９・ｘ４＋ｈ２０・ｘ３＋ｈ２１・ｘ２＋ｈ２２・ｘ１＋ｈ２３・ｘ０を得る。次に、上記で得られた３つの８タップ分積和演算結果Ｙ’０(２３)〜Ｙ’２(２３)を足し合わせ演算回路を用いて足し合わせることにより、出力信号Ｙ（２３）を得られる。
【００５３】
図１５−１および図１５−２〜図２１−１および図２１−２に、実施の形態３の動的再構成可能演算装置を例に、２４タップＦＩＲフィルタ動作例の手順１〜７を示す。
先ず、動的再構成可能演算装置上に８タップ並列積和演算を行う回路を構成し、１回目の８タップ分積和演算結果Ｙ’０（２３）を求めるための入力データであるｘ２３〜ｘ１６とフィルタ係数ｈ０〜ｈ７を入力し、パイプラインの１段目において乗算を行う（図１５−１および図１５−２・手順１）。即ち、入力データ１００ａ〜１０７として、ｘ２３〜ｘ１６をそれぞれ入力し、入力データ１００ｂ〜１０７ｂとしてフィルタ係数ｈ０〜ｈ７を入力する。また、セレクタ３０８〜３１５は、入力データ１００ｂ〜１０７ｂを選択するよう設定され、セレクタ３００〜３０５は、それぞれレジスタ４１６〜４２１の出力４１６ａ〜４２１ａを選択するよう設定される。更に、セレクタ３０４，３０５は、レジスタ４２０，４２１の出力４２０ａ，４２１ａを選択するよう設定される。尚、各セレクタ３００〜３１５の設定は図２１−１および図２１−２に示す手順７まで同様である。
また、図中、１回目の８タップ分積和演算結果Ｙ’０（２３）を求めるための演算を演算５０１で示している。
【００５４】
次のサイクルでは、パイプライン２段目において、手順１により求められたパイプライン１段目の乗算結果を加算器２００〜２０３で加算するのと同時に、パイプライン１段目においては、２回目の８タップ分積和演算結果Ｙ’１（２３）を求めるための入力データであるｘ１５〜ｘ８とフィルタ係数ｈ８〜ｈ１５、入力データ１００ａ〜１０７ａおよび入力データ１００ｂ〜１０７ｂに入力し、乗算器１００〜１０７にて乗算を行う（図１６−１および図１６−２・手順２）。図中、２回目の８タップ分積和演算結果Ｙ’１（２３）を求めるための演算を演算５０２で示している。
【００５５】
次のサイクルでは、パイプライン３段目において、手順２により求められたパイプライン２段目の加算結果を加算器２０４，２０５で加算するのと同時に、パイプライン２段目においては、手順２により求められたパイプライン１段目の乗算結果を加算器２００〜２０３で加算し、パイプライン１段目においては、３回目の８タップ分積和演算結果Ｙ’２（２３）を求めるための入力データであるｘ７〜ｘ０とフィルタ係数ｈ１６〜ｈ２３を入力データ１００ａ〜１０７ａと入力データ１００ｂ〜１０７ｂに入力し、乗算器１００〜１０７で乗算を行う（図１７−１および図１７−２・手順３）。図中、３回目の８タップ分積和演算結果Ｙ’２（２３）を求めるための演算を演算５０３で示している。
【００５６】
次のサイクルでは、パイプライン４段目において、手順３により求められたパイプライン３段目の加算結果を加算器２０６で加算し、１回目の８タップ分積和演算結果Ｙ’０（２３）を得るのと同時に、パイプライン３段目においては、手順３により求められたパイプライン２段目の加算結果を加算器２０４，２０５で加算し、パイプライン２段目においては、手順３により求められたパイプライン１段目の乗算結果を加算器２００〜２０３で加算する（図１８−１および図１８−２・手順４）。
【００５７】
次のサイクルでは、パイプライン４段目において、手順４により求められたパイプライン３段目の加算結果を加算器２０６で加算し、２回目の８タップ分積和演算結果Ｙ’１（２３）を得るのと同時に、パイプライン３段目においては、手順４により求められたパイプライン２段目の加算結果を加算器２０４，２０５で加算する（図１９−１および図１９−２・手順５）。
【００５８】
次のサイクルでは、パイプライン４段目において、手順５により求められたパイプライン３段目の加算結果を加算器２０６で加算し、３回目の８タップ分積和演算結果Ｙ’２（２３）を得る（図２０−１および図２０−２・手順６）。このような手順１〜手順６によって３つの８タップ分積和演算結果Ｙ’０(２３)〜Ｙ’２(２３)が得られた後、回路構成を切り替えて８入力足し合わせ演算回路を構成し、３つの８タップ分積和演算結果Ｙ’０(２３)〜Ｙ’２(２３)を足し合わせ、最終的な出力信号Ｙ(２３)を得る（図２１−１および図２１−２・手順７）。即ち、乗算器１００〜１０２の一方の入力側の入力データ１００ａ〜１０２ａに対して、Ｙ’０(２３)〜Ｙ’２(２３)を入力すると共に、乗算器１００〜１０７の他方の入力側には、レジスタ４００〜４０７に設定された値“１”がセレクタ３０８〜３１５を介して入力される。また、入力データ１０３ａ〜１０７ａには“０”を入力する。尚、８入力足し合わせ演算については、実施の形態１，２で説明した８入力足し合わせ演算と同様であるため、ここでの説明は省略する。
【００５９】
このように、本実施の形態の動的再構成可能演算装置により、ＦＩＲフィルタを実現することができる。また、フィルタ係数を適応的に変更する適応フィルタについても、本実施の形態の動的再構成可能演算装置に備えられている乗算器と加算器を用いて係数の適応化演算用回路を構成することにより、実現することができる。
【００６０】
尚、上記実施の形態１〜３において、積和演算や足し合わせ演算を実施の形態１や実施の形態３で、また、バタフライ演算や行列演算を実施の形態２で説明したが、これら演算は実施の形態１〜３のいずれの実施の形態で実現してもよい。
【００６１】
以上のように、実施の形態３の動的再構成可能演算装置によれば、乗算器、第１加算器、第２加算器、第３加算器の出力をそれぞれ保持する記憶素子を設けたので、演算装置としてパイプライン動作が可能となり、装置全体のスループットを向上させることができる。
【００６２】
実施の形態４．
図２２は、この発明の実施の形態４における半導体装置を示すものである。
図２２において、半導体装置１は、実施の形態１〜３のいずれかである動的再構成可能演算装置２と、動的再構成可能演算装置２に入力される演算前のデータあるいは演算後のデータのうち少なくとも一方のデータを格納する入出力データバッファ３を備える。このような半導体装置１は、所定の演算処理を指定するプロセッサであるＣＰＵ４と、半導体装置１が処理するデータを格納するメモリ５とバスライン６を介して接続されている。
【００６３】
ＣＰＵ４は、動的再構成可能演算装置２において処理する入力データを、ある単位分、メモリ５からバスライン６を介して入出力データバッファ３に格納する。動的再構成可能演算装置２は、ＣＰＵ４からの指示により、入出力データバッファ３から入力データを読み込み、演算を開始する。演算が終了すると、動的再構成可能演算装置２から入出力データバッファ３へ演算後のデータが書き込まれる。ある単位分の演算が終了すると、ＣＰＵ４は入出力データバッファ３に格納されている演算後のデータを、バスライン６を介してメモリ５に書き込む。
【００６４】
以上のように、実施の形態４の半導体装置によれば、動的再構成可能演算装置は、所定の演算処理を指定するプロセッサからの指示に基づいて、その指示に対応した演算処理を行うと共に、動的再構成可能演算装置に入力される演算前のデータまたは演算後のデータのうち、少なくとも一方のデータを格納するバッファを設けたので、プロセッサとの接続が容易な半導体装置を実現することができる。
【図面の簡単な説明】
【００６５】
【図１】この発明の実施の形態１による動的再構成可能演算装置を示す構成図である。
【図２】この発明の実施の形態１の動的再構成可能演算装置を用いた８タップ並列積和演算時の回路構成を示す説明図である。
【図３】この発明の実施の形態１の動的再構成可能演算装置を用いた８入力足し合わせ演算時の回路構成を示す説明図である。
【図４−１】この発明の実施の形態２による動的再構成可能演算装置を示す構成図である。
【図４−２】この発明の実施の形態２による動的再構成可能演算装置を示す構成図である。
【図５−１】この発明の実施の形態２の動的再構成可能演算装置を用いた８入力足し合わせ演算時の回路構成を示す説明図である。
【図５−２】この発明の実施の形態２の動的再構成可能演算装置を用いた８入力足し合わせ演算時の回路構成を示す説明図である。
【図６】この発明の実施の形態２の動的再構成可能演算装置で用いるバタフライ演算の説明図である。
【図７−１】この発明の実施の形態２の動的再構成可能演算装置によるＤＣＴ演算の説明図（その１）である。
【図７−２】この発明の実施の形態２の動的再構成可能演算装置によるＤＣＴ演算の説明図（その１）である。
【図８−１】この発明の実施の形態２の動的再構成可能演算装置によるＤＣＴ演算の説明図（その２）である。
【図８−２】この発明の実施の形態２の動的再構成可能演算装置によるＤＣＴ演算の説明図（その２）である。
【図９−１】この発明の実施の形態２の動的再構成可能演算装置によるＤＣＴ演算の説明図（その３）である。
【図９−２】この発明の実施の形態２の動的再構成可能演算装置によるＤＣＴ演算の説明図（その３）である。
【図１０−１】この発明の実施の形態２の動的再構成可能演算装置によるＤＣＴ演算の説明図（その４）である。
【図１０−２】この発明の実施の形態２の動的再構成可能演算装置によるＤＣＴ演算の説明図（その４）である。
【図１１−１】この発明の実施の形態２の動的再構成可能演算装置によるＤＣＴ演算の説明図（その５）である。
【図１１−２】この発明の実施の形態２の動的再構成可能演算装置によるＤＣＴ演算の説明図（その５）である。
【図１２−１】この発明の実施の形態２の動的再構成可能演算装置による２次元アフィン変換の説明図である。
【図１２−２】この発明の実施の形態２の動的再構成可能演算装置による２次元アフィン変換の説明図である。
【図１３−１】この発明の実施の形態３の動的再構成可能演算装置を示す構成図である。
【図１３−２】この発明の実施の形態３の動的再構成可能演算装置を示す構成図である。
【図１４】この発明の実施の形態３による動的再構成可能演算装置による２４タップＦＩＲフィルタの動作イメージ示す説明図である。
【図１５−１】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順１を示す説明図である。
【図１５−２】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順１を示す説明図である。
【図１６−１】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順２を示す説明図である。
【図１６−２】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順２を示す説明図である。
【図１７−１】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順３を示す説明図である。
【図１７−２】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順３を示す説明図である。
【図１８−１】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順４を示す説明図である。
【図１８−２】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順４を示す説明図である。
【図１９−１】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順５を示す説明図である。
【図１９−２】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順５を示す説明図である。
【図２０−１】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順６を示す説明図である。
【図２０−２】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順６を示す説明図である。
【図２１−１】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順７を示す説明図である。
【図２１−２】この発明の実施の形態３の動的再構成可能演算装置を用いた２４タップＦＩＲフィルタ動作例の手順７を示す説明図である。
【図２２】この発明の実施の形態４による半導体装置を示す構成図である。
【符号の説明】
【００６６】
１  半導体装置、２  動的再構成可能演算装置、３  入出力データバッファ、４  ＣＰＵ、５  メモリ、１００〜１０７  乗算器、１００ａ〜１０７ａ，１００ｂ〜１０７ｂ  入力、１００ｃ〜１０７ｃ  乗算結果出力、２００〜２０７  加算器、２００ａ〜２０７ａ  加算結果出力、３００〜３１５  セレクタ、３００ａ〜３１５ａ  セレクタ出力、４００〜４２３  レジスタ、４００ａ〜４２３ａ  レジスタ出力。
【図１】
0005196905.tif 000005
【図２】
0005196905.tif 000006
【図３】
0005196905.tif 000007
【図４−１】
0005196905.tif 000008
【図４−２】
0005196905.tif 000009
【図５−１】
0005196905.tif 000010
【図５−２】
0005196905.tif 000011
【図６】
0005196905.tif 000012
【図７−１】
0005196905.tif 000013
【図７−２】
0005196905.tif 000014
【図８−１】
0005196905.tif 000015
【図８−２】
0005196905.tif 000016
【図９−１】
0005196905.tif 000017
【図９−２】
0005196905.tif 000018
【図１０−１】
0005196905.tif 000019
【図１０−２】
0005196905.tif 000020
【図１１−１】
0005196905.tif 000021
【図１１−２】
0005196905.tif 000022
【図１２−１】
0005196905.tif 000023
【図１２−２】
0005196905.tif 000024
【図１３−１】
0005196905.tif 000025
【図１３−２】
0005196905.tif 000026
【図１４】
0005196905.tif 000027
【図１５−１】
0005196905.tif 000028
【図１５−２】
0005196905.tif 000029
【図１６−１】
0005196905.tif 000030
【図１６−２】
0005196905.tif 000031
【図１７−１】
0005196905.tif 000032
【図１７−２】
0005196905.tif 000033
【図１８−１】
0005196905.tif 000034
【図１８−２】
0005196905.tif 000035
【図１９−１】
0005196905.tif 000036
【図１９−２】
0005196905.tif 000037
【図２０−１】
0005196905.tif 000038
【図２０−２】
0005196905.tif 000039
【図２１−１】
0005196905.tif 000040
【図２１−２】
0005196905.tif 000041
【図２２】
0005196905.tif 000042