(57)【要約】【課題】本発明は、動的に回路構造を変更できるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路に関し、半導体チップ内の占有面積を低減できるプロセッシングエレメントと、チップサイズの小型化を図ることができ、高速動作が可能なリコンフィギャラブル回路とを提供することを目的とする。【解決手段】プロセッシングエレメント７は、直列に接続されたｎ段のレジスタ３Ｒ１〜３Ｒｎのうちの最終段レジスタ３Ｒｎの出力端子が初段レジスタ３Ｒ１の入力端子に接続されて、クロック信号に同期してｎ段のレジスタ３Ｒ１〜３Ｒｎ間で保持データとしての係数ａ０１〜ａ０ｎをローテーションするシフトレジスタ３と、ｎ段のレジスタ３Ｒ１〜３Ｒｎのうちの使用段数を決定する段数決定回路４とを有している。【選択図】図１
2008204360.tif 000002
【特許請求の範囲】
【請求項１】
直列に接続されたｎ段のレジスタのうちの最終段レジスタの出力端子が初段レジスタの入力端子に接続されて、クロック信号に同期して前記ｎ段のレジスタ間で保持データをローテーションするシフトレジスタと、
前記ｎ段のレジスタのうちの使用段数を決定する段数決定回路と
を有することを特徴とするプロセッシングエレメント。
【請求項２】
請求項１記載のプロセッシングエレメントにおいて、
前記段数決定回路は、前記ｎ段のレジスタのうちの隣接するレジスタの間にそれぞれ配置され、前記隣接するレジスタのうちの前段レジスタから出力された前記保持データと、前記最終段レジスタから出力された前記保持データとが入力され、前記前段レジスタ又は前記最終段レジスタのいずれかの前記保持データを選択して前記隣接するレジスタのうちの後段レジスタに出力するセレクタを有すること
を特徴とするプロセッシングエレメント。
【請求項３】
請求項１又は２に記載のプロセッシングエレメントにおいて、
前記クロック信号に同期して前記ｎ段のレジスタのいずれか１つから出力された前記保持データと、外部から入力された入力データとを演算する演算部をさらに有すること
を特徴とするプロセッシングエレメント。
【請求項４】
請求項３記載のプロセッシングエレメントにおいて、
前記演算部は、前記最終段レジスタから出力された前記保持データと、前記入力データとを演算すること
を特徴とするプロセッシングエレメント。
【請求項５】
請求項４記載のプロセッシングエレメントにおいて、
前記演算部は、前記保持データと、前記入力データとを乗算する乗算回路を有すること
を特徴とするプロセッシングエレメント。
【請求項６】
請求項５記載のプロセッシングエレメントにおいて、
前記演算部は、前記乗算回路から出力されたデータを累積加算する累積加算回路を有すること
を特徴とするプロセッシングエレメント。
【請求項７】
請求項１又は２に記載のプロセッシングエレメントにおいて、
前記クロック信号に同期して前記ｎ段のレジスタのいずれか１つから出力された前記保持データに基づいて、外部から入力された入力データを演算処理する演算部をさらに有すること
を特徴とするプロセッシングエレメント。
【請求項８】
請求項７記載のプロセッシングエレメントにおいて、
前記演算部は、前記保持データに基づいて、前記入力データの累積加算数が制御される累積加算回路を有すること
を特徴とするプロセッシングエレメント。
【請求項９】
請求項３乃至８のいずれか１項に記載のプロセッシングエレメントにおいて、
前記入力データにビットシフト処理及びビットマスク処理を施して前記演算部に前記入力データを出力するシフト／マスク回路をさらに有すること
を特徴とするプロセッシングエレメント。
【請求項１０】
請求項１乃至９のいずれか１項に記載のプロセッシングエレメントを有することを特徴とするリコンフィギャラブル回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的に回路構造を変更できるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路に関する。
【背景技術】
【０００２】
図１３は、所定の機能を有するプロセッシングエレメント（ＰＥ：Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ）を備えた従来のリコンフィグＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）１０１の概略構成を示している。リコンフィグＬＳＩ１０１は、入力データと所定の係数とを積和演算する積和回路を構成している。図１３に示すように、リコンフィグＬＳＩ１０１は、入力データＤＩの入力数をカウントするカウンタエレメント１０３と、所定のメモリデータＤＩ１が記憶されたＲＡＭエレメント１０４と、入力データＤＩとメモリデータＤＩ１とを乗算する乗算エレメント１０５と、乗算エレメント１０５から出力された乗算データを累積加算する累積加算エレメント１０６とを有している。また、リコンフィグＬＳＩ１０１は、入力データＤＩが乗算エレメント１０５に入力するタイミングを調整するためのデータ遅延エレメント１０７を有している。さらに、リコンフィグＬＳＩ１０１は、カウンタエレメント１０３で生成されたイネーブル信号ＥＮＢが累積加算エレメント１０６に入力するタイミングを調整するためのイネーブル遅延エレメント１０８を有している。
【０００３】
カウンタエレメント１０３は入力データＤＩの入力数を加算する加算器１０３ａと、加算器１０３ａで加算された加算データを一時的に保持するレジスタ１０３ｂと、イネーブル信号ＥＮＢを生成して出力するイネーブル信号生成部１０３ｃとを有している。例えば、イネーブル信号生成部１０３ｃは、加算データに基づいて所定の間隔で「１」のデータになるイネーブル信号ＥＮＢを出力する。加算器１０３ａは、カウンタエレメント１０３に入力データＤＩが入力される毎にレジスタ１０３ｂに保持された加算データに「１」を加える。このため、入力データＤＩは加算器１０３ａから出力される加算データに対応付けられる。
【０００４】
ＲＡＭエレメント１０４はメモリデータＤＩ１を記憶する記憶部１０４ａを有している。記憶部１０４ａのリードアドレス入力端子ＲＡにはカウンタエレメント１０３から出力された加算データＤＯａが入力される。加算データＤＯａは入力データＤＩに対応付けられている。このため、加算データＤＯａを記憶部１０４ａのリードアドレス信号に用いることにより、入力データＤＩと乗算されるメモリデータＤＩ１を読み出すことができる。
【０００５】
カウンタエレメント１０３に入力データＤＩが入力され、ＲＡＭエレメント１０４からメモリデータＤＩ１が出力されるまでには、各エレメント１０３、１０４での処理時間のために所定の時間を必要とする。例えば、カウンタエレメント１０３が入力データＤＩの入力数をカウントして加算データＤＯａを出力するのに１クロックサイクル必要とし、ＲＡＭエレメント１０４が加算データＤＯａに基づいてメモリデータＤＩ１を読み出すのに１クロックサイクル必要とする。この場合、ＲＡＭエレメント１０４から読み出されるメモリデータＤＩ１の出力タイミングは、カウンタエレメント１０３への入力データＤＩの入力タイミングに対して例えば２クロックサイクル遅延する。このため、同じ加算データＤＯａに対応付けられた入力データＤＩ及びメモリデータＤＩ１がほぼ同時に乗算エレメント１０５に入力するように、入力データＤＩはデータ遅延エレメント１０７を介して乗算エレメント１０５に入力する。データ遅延エレメント１０７は、入力データＤＩを遅延させるためのレジスタ群１０７ａを有している。レジスタ群１０７ａは、入力データＤＩを例えば２クロックサイクル遅延させるために２つのレジスタを直列接続した構成を有している。
【０００６】
乗算エレメント１０５は、入力データＤＩ及びメモリデータＤＩ１が入力する乗算器１０５ａと、乗算器１０５ａで乗算された乗算データを一時保持するレジスタ１０５ｂとを有している。累積加算エレメント１０６は、加算器１０６ａと、加算器１０６ａで加算された加算データを一時保持するレジスタ１０６ｂとを有している。加算器１０６ａは、乗算エレメント１０５から出力された乗算データと、レジスタ１０６ｂに保持された加算データとを加算するようになっている。このため、累積加算エレメント１０６は、乗算エレメント１０５での乗算データを累積加算することができる。
【０００７】
累積加算エレメント１０６は、例えば「１」に対応するデータのイネーブル信号ＥＮＢが入力されると、データの累積加算を終了して累積加算データを出力データＤＯとして出力するようになっている。メモリデータＤＩ１の出力タイミングは、ＲＡＭエレメント１０４への加算データＤＯａの入力タイミングに対して例えば１クロックサイクル遅延する。このため、累積加算エレメント１０６が所望の累積数だけ乗算データを累積した後に出力データＤＯを出力するように、イネーブル信号ＥＮＢはイネーブル遅延エレメント１０８を介して累積加算エレメント１０６に入力される。イネーブル遅延エレメント１０８はイネーブル信号ＥＮＢを例えば１クロックサイクル遅延させるためのレジスタ１０８ａを有している。
【０００８】
リコンフィグＬＳＩ１０１では、メモリデータＤＩ１と入力データＤＩとを乗算する際、リコンフィグＬＳＩ１０１内部のＲＡＭエレメント１０４にメモリデータＤＩ１を記憶させて、カウンタエレメント１０３でカウントしたデータ入力数に基づく加算データを使用してＲＡＭエレメント１０４からメモリデータＤＩ１を順次読み出す必要がある。また、リコンフィグＬＳＩ１０１では、積和演算を行う場合、データの累積回数はカウンタエレメント１０３を用いて計算される。さらに、当該累積回数を制御するイネーブル信号ＥＮＢもカウンタエレメント１０３を用いて生成され、累積加算エレメント１０６に入力する必要がある。
【０００９】
リコンフィグＬＳＩ１０１では、累積演算を行うとき、リコンフィグＬＳＩ１０１内部のカウンタエレメント１０３（データを累積する累積加算エレメント１０６とは別のエレメント）で累積したい数をカウントして制御信号を出力し、他の各演算エレメントに制御信号を入力する必要がある。
【００１０】
図１４乃至図１８は、従来の画像処理用リコンフィグＬＳＩ２０１を説明する図である。図１４は、画像処理の対象となる画像領域１１０を示している。図１４に示すように、画像領域１１０はｍ行ｎ列のマトリクス状に配置された複数の画素（不図示）を有している。図１４の図中右側に示すように、複数の画素の一部は画像処理のための演算実行単位となる。図１４では、演算実行単位として隣接する３行３列の９つの画素ｘ２２、ｘ２３、ｘ２４、ｘ３２、ｘ３３、ｘ３４、ｘ４２、ｘ４３、ｘ４４が例示されている。画像処理は、演算実行単位の中央に位置する画素ｘ３３に注目し、画素ｘ３３の周辺の画素ｘ２２、ｘ２３、ｘ２４、ｘ３２、ｘ３４、ｘ４２、ｘ４３、ｘ４４に対して実行される。
【００１１】
図１５は、画像処理用の空間フィルタ１１１を例示している。空間フィルタとは、画像データを１画素毎に１行ずつ読み出し、注目画素及び周辺画素に対して所定の演算を行い、注目画素値を置き換える処理をいう。演算（オペレータ）を変えることで様々な画像処理の結果が得られる。本例では、画像処理の演算実行単位が３行３列であるため、空間フィルタ１１１も３行３列になっている。例えば、空間フィルタ１１１の係数ａ００、ａ１０、ａ２０、ａ０１、ａ１１、ａ２１、ａ０２、ａ１２、ａ２２（以下、「ａ００〜ａ２２」という。）の全てを１／９に設定すると、空間フィルタ１１１は平均値フィルタとして機能する。平均値フィルタとは、注目する画素の近傍の平均値を取り出すフィルタをいう。演算実行単位に含まれる画素の画像データの値を全て加算し、平均値フィルタを用いて加算値を９で割った値を注目画素の新たな画素値とするフィルタ処理を行う。これにより、表示画像はもとの画像をぼやかした画像になる。
【００１２】
図１６は、ラインバッファＬＢ０〜ＬＢ３にそれぞれ格納された３行分の画像データｘ００〜ｘ０ｎ、ｘ１０〜ｘ１ｎ、ｘ２０〜ｘ２ｎを示している。図１７は、ラインバッファＬＢ０、ＬＢ１、ＬＢ２からの画像データｘ００〜ｘ０ｎ、ｘ１０〜ｘ１ｎ、ｘ２０〜ｘ２ｎの読み出し状態を示している。図１６に示すように、注目画素の画像データｘ１１及び注目画素ｘ１１の周辺画素の画像データｘ００、ｘ０１、ｘ０２、ｘ１０、ｘ１２、ｘ２０、ｘ２１、ｘ２２が演算実行単位ｘ１として選択され、ラインバッファＬＢ０、ＬＢ１、ＬＢ２から読み出される。ラインバッファＬＢ０、ＬＢ１、ＬＢ２から読み出された画像データｘ００、ｘ０１、ｘ０２、ｘ１０、ｘ１１、ｘ１２、ｘ２０、ｘ２１、ｘ２２（以下、「ｘ００〜ｘ２２」という。）はカウンタエレメント１３７及びデータ遅延エレメント１３６（図１８参照）に入力される。画像データｘ００、ｘ１０、ｘ２０で構成された入力データＤＩ０、画像データｘ０１、ｘ１１、ｘ２１で構成された入力データＤＩ１及び画像データｘ０２、ｘ１２、ｘ２２で構成された入力データＤＩ２は、この順にカウンタエレメント１３７及びデータ遅延エレメント１３６に入力する。
【００１３】
画像データｘ００〜ｘ０ｎ、ｘ１０〜ｘ１ｎ、ｘ２０〜ｘ２ｎは、図１７に示すように、演算実行単位ｘ１、演算実行単位ｘ２及び演算実行単位ｘ３の順に連続してラインバッファＬＢ０〜ＬＢ２から読み出される。演算実行単位ｘ２に含まれる画像データｘ０１、ｘ０２、ｘ１１、ｘ１２、ｘｓ２１、ｘ２２は、演算実行単位ｘ１に含まれる画像データｘ００〜ｘ２２が全て読み出される前にラインバッファＬＢ０〜ＬＢ２からの読み出しが開始される。これにより、画像処理用リコンフィグＬＳＩ２０１はパイプライン処理が可能になる。
【００１４】
ラインバッファＬＢ０〜ＬＢ２から読み出された演算実行単位ｘ１、ｘ２、ｘ３の画像データｘ００〜ｘ２２等は、空間フィルタ１１１に基づいてフィルタ処理が実行される。空間フィルタ１１１の係数ａ００〜ａ２２が全て１／９に設定されていると、演算実行単位ｘ１、ｘ２、ｘ３のそれぞれの注目画素の画素データｘ１１、ｘ１２、ｘ１３は、フィルタ処理によって、以下の式（１）乃至（３）に示すように新たな画素データｙ１１、ｙ１２、ｙ１３となる。これにより、画像をぼやかすことができる。
【００１５】
ｙ１１＝  （１／９）×ｘ００＋（１／９）×ｘ０１＋（１／９）×ｘ０２
＋（１／９）×ｘ１０＋（１／９）×ｘ１１＋（１／９）×ｘ１２
＋（１／９）×ｘ２０＋（１／９）×ｘ２１＋（１／９）×ｘ２２
・・・（１）
ｙ１２＝  （１／９）×ｘ０１＋（１／９）×ｘ０２＋（１／９）×ｘ０３
＋（１／９）×ｘ１１＋（１／９）×ｘ１２＋（１／９）×ｘ１３
＋（１／９）×ｘ２１＋（１／９）×ｘ２２＋（１／９）×ｘ２３
・・・（２）
ｙ１３＝  （１／９）×ｘ０２＋（１／９）×ｘ０３＋（１／９）×ｘ０４
＋（１／９）×ｘ１２＋（１／９）×ｘ１３＋（１／９）×ｘ１４
＋（１／９）×ｘ２２＋（１／９）×ｘ２３＋（１／９）×ｘ２４
・・・（３）
【００１６】
図１８は、空間フィルタ１１１を用いて画像処理を実行する画像処理用リコンフィグＬＳＩ２０１の概略構成を示している。図１８に示すように、従来の画像処理用リコンフィグＬＳＩ２０１は、入力データＤＩのデータ数をカウントするカウンタエレメント１３７と、空間フィルタ１１１の係数ａ００〜ａ２２の一部がそれぞれ記憶されたＲＡＭエレメント１２１、１２２、１２３と、入力データＤＩにビットシフト処理及びビットマスク処理を施すシフト／マスクエレメント１２４、１２５、１２６と、入力データＤＩをフィルタ処理するフィルタ処理エレメント１２７、１２８、１２９とを有している。また、画像処理用リコンフィグＬＳＩ２０１は、入力データＤＩがシフト／マスクエレメント１２４、１２５、１２６に入力するタイミングを調整するためのデータ遅延エレメント１３６を有している。
【００１７】
カウンタエレメント１３７は入力データＤＩの入力数をカウントするカウンタ１３７ａと、カウントデータを一時保持するレジスタ１３７ｂとを有している。ＲＡＭエレメント１２１は、空間フィルタ１１１の係数ａ００、ａ０１、ａ０２を記憶する記憶部ＲＡＭ０を有している。係数ａ００、ａ０１、ａ０２は、アドレス０、１、２にそれぞれ対応付けられて記憶部ＲＡＭ０に記憶されている。ＲＡＭエレメント１２２は、空間フィルタ１１１内の係数ａ１０、ａ１１、ａ１２を記憶する記憶部ＲＡＭ１を有している。係数ａ１０、ａ１１、ａ１２は、アドレス０、１、２にそれぞれ対応付けられて記憶部ＲＡＭ１に記憶されている。ＲＡＭエレメント１２３は、空間フィルタ１１１の係数ａ２０、ａ２１、ａ２２を記憶する記憶部ＲＡＭ２を有している。係数ａ２０、ａ２１、ａ２２は、アドレス０、１、２にそれぞれ対応付けられて記憶部ＲＡＭ２に記憶されている。ＲＡＭエレメント１２１、１２２、１２３は、カウンタエレメント１３７から出力されたカウントデータと同じアドレスに対応付けられた係数ａ００〜ａ２２を出力するようになっている。
【００１８】
リコンフィグＬＳＩ２０１は、３行３列の空間フィルタ１１１を用いるので、係数ａ００〜ａ２２のうちの３つの係数をＲＡＭエレメント１２１、１２２、１２３にそれぞれ記憶している。リコンフィグＬＳＩ２０１は、カウンタエレメント１３７でカウントされた３つのカウントデータ「０」、「１」及び「２」を用いてＲＡＭエレメント１２１、１２２、１２３から空間フィルタ１１１の係数ａ００〜ａ２２を順次読み出すようになっている。
【００１９】
ＲＡＭエレメント１２１、１２２、１２３から係数ａ００〜ａ２２がそれぞれ出力される出力タイミングは、入力データＤＩがカウンタエレメント１３７に入力するタイミングに対して、カウンタエレメント１３７及びＲＡＭエレメント１２１、１２２、１２３での処理時間だけ遅延する。このため、入力データＤＩはデータ遅延エレメント１３６を介してシフト／マスクエレメント１２４、１２５、１２６に入力するようになっている。データ遅延エレメント１３６は、入力データＤＩを当該処理時間だけ遅延させるためのレジスタ群１３６ａを有している。レジスタ群１３６ａは、例えば直列接続された２つのレジスタを有している。
【００２０】
シフト／マスクエレメント１２４は、シフト／マスク回路１２４ａと、シフト／マスク回路１２４ａでビットシフト処理及びビットマスク処理を施した入力データＤＩを一時保持するレジスタ１２４ｂと、ＲＡＭエレメント１２１から出力された係数ａ００、ａ０１、ａ０２を一時保持するレジスタ１２４ｃとを有している。シフト／マスク回路１２４ａは、フィルタ処理の対象となる画像データｘ００〜ｘ０ｎ（図１６参照）を後段のフィルタ処理エレメント１２７でフィルタ処理できるように、多ビットの入力データＤＩをビットシフトし、フィルタ処理エレメント１２７でフィルタ処理の対象とならない入力データＤＩの一部をビットマスク処理するようになっている。
【００２１】
シフト／マスクエレメント１２５、１２６は、シフト／マスクエレメント１２４と同様の構成を有し、シフト／マスク回路１２５ａ、１２６ａと、シフト／マスク回路１２５ａ、１２６ａでビットシフト処理及びビットマスク処理を施した入力データＤＩをそれぞれ保持するレジスタ１２５ｂ、１２６ｂと、ＲＡＭエレメント１２２、１２３からそれぞれ出力された係数ａ１０、ａ１１、ａ１２及び係数ａ２０、ａ２１、ａ２２をそれぞれ保持するレジスタ１２５ｃ、１２６ｃとを有している。
【００２２】
入力データＤＩとして、例えば図１６に示す入力データＤＩ０、ＤＩ１、ＤＩ２が順次入力される。入力データＤＩは、例えばラインバッファＬＢ０に記憶された画像データｘ００〜ｘ０ｎがＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）側の上位数ビットとなり、ラインバッファＬＢ１に記憶された画像データｘ１０〜ｘ１ｎが次の数ビットとなり、ラインバッファＬＢ２に記憶された画像データｘ２０〜ｘ２ｎがＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）側の下位数ビットとなってデータ遅延エレメント１３４に入力される。また、フィルタ処理エレメント１２７、１２８、１２９は、例えば入力データＤＩの下位数ビットの画像データをフィルタ処理するようになっている。このため、フィルタ処理エレメント１２７、１２８、１２９に入力される入力データＤＩは、フィルタ処理の対象となる画像データをＬＳＢ側にシフトしておく必要がある。そこで、シフト／マスク回路１２４ａは、例えば入力データＤＩ０をビットシフト処理して画像データｘ００をＬＢＳ側に右シフトし、画像データｘ００以外の入力データＤＩ０をビットマスク処理する。同様に、シフト／マスク回路１２５は、例えば入力データＤＩ０をビットシフト処理して画像データｘ１０をＬＢＳ側に右シフトし、画像データｘ１０以外の入力データＤＩ０をビットマスク処理する。画像データｘ２０はシフト／マスクエレメント１２６に入力された時点でＬＳＢ側にあるので、シフト／マスク回路１２６は、例えば入力データＤＩ０のビットシフト処理をせずに、画像データｘ２０以外の入力データＤＩ０をビットマスク処理する。
【００２３】
フィルタ処理エレメント１２７は、図１６に示すラインバッファＬＢ０から読み出された画像データｘ００〜ｘ０ｎとＲＡＭエレメント１２１から読み出された係数ａ００、ａ０１、ａ０２とを乗算する乗算エレメント１３０と、乗算エレメント１３０で乗算された乗算データを演算実行単位毎に累積加算する累積加算エレメント１３１とを有している。乗算エレメント１３０は、画像データｘ００〜ｘ０ｎと、係数ａ００、ａ０１、ａ０２とを乗算する乗算器１３０ａと、乗算結果を一時保持するレジスタ１３０ｂとを有している。累積加算エレメント１３１は、加算器１３１ａと、加算器１３１ａで加算された加算データを一時保持するレジスタ１３１ｂとを有している。加算器１３１ａはレジスタ１３０ｂから出力された乗算データと、レジスタ１３１ｂに保持されたデータとを累積加算する。このため、累積加算エレメント１２７は、乗算エレメント１３０から出力された乗算データを累積加算できる。従って、フィルタ処理エレメント１２７は、例えば演算実行単位ｘ１の画像データｘ００〜ｘ２２に対して、以下の式（４）の処理を実行できる。
【００２４】
ＤＯ０＝ａ００×ｘ００＋ａ０１×ｘ０１＋ａ０２×ｘ０２  ・・・（４）
【００２５】
フィルタ処理エレメント１２８は、フィルタ処理エレメント１２７と同様の構成を有している。フィルタ処理エレメント１２８は、図１６に示すラインバッファＬＢ１から読み出された画像データｘ１０〜ｘ１ｎとＲＡＭエレメント１２２から読み出された係数ａ１０、ａ１１、ａ１２とを乗算する乗算エレメント１３２と、乗算エレメント１３２で乗算された乗算データを演算実行単位毎に累積加算する累積加算エレメント１３３とを有している。フィルタ処理エレメント１２８は、例えば演算実行単位ｘ１の画像データｘ００〜ｘ２２に対して、以下の式（５）の処理を実行できる。
【００２６】
ＤＯ１＝ａ１０×ｘ１０＋ａ１１×ｘ１１＋ａ１２×ｘ１２  ・・・（５）
【００２７】
フィルタ処理エレメント１２９は、フィルタ処理エレメント１２７、１２８と同様の構成を有している。フィルタ処理エレメント１２９は、図１６に示すラインバッファＬＢ２から読み出された画像データｘ２０〜ｘ２ｎとＲＡＭエレメント１２３から読み出された係数ａ２０、ａ２１、ａ２２とを乗算する乗算エレメント１３４と、乗算エレメント１３４で乗算された乗算データを演算実行単位毎に累積加算する累積加算エレメント１３５とを有している。フィルタ処理エレメント１２９は、例えば演算実行単位ｘ１の画像データｘ００〜ｘ２２に対して、以下の式（６）の処理を実行できる。
【００２８】
ＤＯ２＝ａ２０×ｘ２０＋ａ２１×ｘ２１＋ａ２２×ｘ２２  ・・・（６）
【００２９】
画像処理用リコンフィグＬＳＩ２０１は、フィルタ処理エレメント１２７、１２８、１２９から出力された出力データＤＯ０、ＤＯ１、ＤＯ２を加算し、以下の式（７）に示す画素データＹ１１を演算実行単位ｘ１の注目画素の画素データｘ１１の新たな画素データとして算出することができる。
【００３０】
Ｙ１１＝  ａ００×ｘ００＋ａ０１×ｘ０１＋ａ０２×ｘ０２
＋ａ１０×ｘ１０＋ａ１１×ｘ１１＋ａ１２×ｘ１２
＋ａ２０×ｘ２０＋ａ２１×ｘ２１＋ａ２２×ｘ２２  ・・・（７）
【特許文献１】特開平５−３２４６９４号公報
【特許文献２】特開２００３−２９６０９７号公報
【発明の開示】
【発明が解決しようとする課題】
【００３１】
リコンフィグＬＳＩ１０１は、メモリデータＤＩ１を記憶して読み出すためのＲＡＭエレメント１０４と、カウンタエレメント１０３とを必要とする。リコンフィグＬＳＩ１０１は、メモリデータＤＩ１の読み出し用リードアドレス信号を生成するためのカウンタと、イネーブル信号ＥＮＢ作成用のカウンタとが共用されている。当該カウンタを共用としない場合には、リコンフィグＬＳＩ１０１は、リードアドレス生成用とイネーブル信号ＥＮＢ生成用のカウンタエレメントを別個に有する必要がある。また、リコンフィグＬＳＩ１０１は、入力データＤＩ及びイネーブル信号ＥＮＢの遅延をそれぞれ調整するためのデータ遅延エレメント１０７及びイネーブル遅延エレメント１０８を必要とする。さらに、これらの各エレメント１０３、１０４、１０７、１０８を接続するためにネットワークが占有されてしまう。
【００３２】
画像処理用リコンフィグＬＳＩ２０１は、空間フィルタ１０１の係数ａ００〜ａ２２を記憶して読み出すためのＲＡＭエレメント１２１、１２２、１２３と、リードアドレス信号生成用のカウンタエレメント１３７と、入力データＤＩの遅延調整用のデータ遅延エレメント１３６とを必要とする。さらに、これらの各エレメント１２１、１２２、１２３、１３６、１３７を接続するためにネットワークが占有されてしまう。
【００３３】
このように、従来のリコンフィグＬＳＩは、所定のデータを記憶するためのプロセッシングエレメントやデータ遅延調整用のプロセッシングエレメントが必要になる。さらに、リコンフィグＬＳＩはこれらのプロセッシングエレメント間を接続するための配線領域が必要になる。このため、従来のリコンフィグＬＳＩは、チップサイズが大型化してしまうという問題を有している。さらに、従来のリコンフィグＬＳＩは配線負荷が増大し、高速処理が困難になるという問題を有している。
【００３４】
本発明の目的は、半導体チップ内の占有面積を低減できるプロセッシングエレメントを提供することにある。
また、本発明の目的は、チップサイズの小型化を図ることができ、高速動作が可能なリコンフィギャラブル回路を提供することにある。
【課題を解決するための手段】
【００３５】
上記目的は、直列に接続されたｎ段のレジスタのうちの最終段レジスタの出力端子が初段レジスタの入力端子に接続されて、クロック信号に同期して前記ｎ段のレジスタ間で保持データをローテーションするシフトレジスタと、前記クロック信号に同期して前記ｎ段のレジスタのいずれか１つからの前記保持データが出力される出力部と、前記ｎ段のレジスタのうちの使用段数を決定する段数決定回路とを有することを特徴とするプロセッシングエレメントによって達成される。
【００３６】
また、上記目的は、上記本発明のプロセッシングエレメントを有することを特徴とするリコンフィギャラブル回路によって達成される。
【発明の効果】
【００３７】
本発明によれば、半導体チップ内の占有面積を低減できるプロセッシングエレメントが実現できる。
さらに、本発明によれば、チップサイズの小型化を図ることができ、高速動作が可能なリコンフィギャラブル回路が実現できる。
【発明を実施するための最良の形態】
【００３８】
本発明の一実施の形態によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路を図１乃至図１２を用いて説明する。本実施の形態のリコンフィギャラブル回路は、複数の演算器と、遅延調整と等価な機能を発揮する回路とで構成されたプロセッシングエレメントを有している。本実施の形態のリコンフィギャラブル回路は、プロセッシングエレメントの回路構造やネットワーク構造を決定する複数のコンフィギュレーションメモリを有し、数クロックサイクルで回路構造を変更できる特徴を有している。以下、実施例を用いて本実施の形態によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路について説明する。
【００３９】
（実施例１）
本実施の形態の実施例１によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路について図１を用いて説明する。図１は、本実施例によるプロセッシングエレメント７の概略構成を示している。図１に示すように、プロセッシングエレメント７は、直列に接続されたｎ段のレジスタ３Ｒ１〜３Ｒｎのうちの最終段レジスタ３Ｒｎの出力端子が初段レジスタ３Ｒ１の入力端子に接続されて、クロック信号に同期してｎ段のレジスタ３Ｒ１〜３Ｒｎ間で保持データとしての係数ａ０１〜ａ０ｎをローテーションするシフトレジスタ３と、ｎ段のレジスタ３Ｒ１〜３Ｒｎのうちの使用段数を決定する段数決定回路４とを有している。保持データとしての係数ａ０１〜ａ０ｎは、例えば画像処理に用いる空間フィルタの係数である。例えば初期状態において、最終段レジスタ３Ｒｎには係数ａ０１が一時的に保持され、第ｎ−１段レジスタ３Ｒｎ−１には係数ａ０１が一時的に保持され、初段レジスタ３Ｒ１には係数ａ０ｎが一時的に保持される。
【００４０】
段数決定回路４は、ｎ段のレジスタ３Ｒ１〜３Ｒｎのうちの隣接するレジスタの間にそれぞれ配置され、当該隣接するレジスタのうちの前段レジスタから出力された保持データとしての係数と、最終段レジスタ３Ｒｎから出力された保持データとしての係数が入力され、当該前段レジスタ又は最終段レジスタ３Ｒｎのいずれかの保持データとしての係数を選択して隣接するレジスタのうちの後段レジスタに出力するセレクタを有している。なお、図１では、各レジスタ間に配置されたセレクタのうち、隣接する初段レジスタ３Ｒ１及び第２段レジスタ（不図示）の間に配置されたセレクタ４Ｓ１と、隣接する第ｎ−２段レジスタ（不図示）及び第ｎ−１段レジスタ３Ｒｎ−１の間に配置されたセレクタ４Ｓｎ−２と、隣接する第ｎ−１段レジスタ３Ｒｎ−１及び最終段レジスタ３Ｒｎとの間に配置されたセレクタ４Ｓｎ−１とが図示されている。
【００４１】
例えば、セレクタ４Ｓｎ−１は、隣接するレジスタ３Ｒｎ−１、３Ｒｎ間に配置されている。セレクタ４Ｓｎ−１は、レジスタ３Ｒｎ−１、３Ｒｎのうちの第ｎ−１段レジスタ３Ｒｎ−１（前段レジスタ）から出力された係数ａ０２と、最終段レジスタ３Ｒｎの係数ａ０１が入力され、最終段レジスタ３Ｒｎ又は第ｎ−１段レジスタ３Ｒｎ−１のいずれかの係数ａ０１、ａ０２を選択してレジスタ３Ｒｎ−１、３Ｒｎのうちの最終段レジスタ３Ｒｎ（後段レジスタ）に出力するようになっている。段数決定回路４は、セレクタ４Ｓ１〜４Ｓｎ−１のうちのセレクタ４Ｓｉ（１≦ｉ≦ｎ−１）を最終段レジスタ３Ｒｎの保持データを選択することにより、レジスタの使用段数をｎ−ｉ段に決定することができる。段数決定回路４はリコンフィギャラブル回路内に設けられた制御部（不図示）によって制御される。
【００４２】
次に、プロセッシングエレメント７の動作について図１を用いて説明する。図１に示すように、例えば初期設定時に、保持データとしての係数ａ０１〜ａ０ｎはレジスタ３Ｒｎ〜３Ｒ１にそれぞれセットされて一時的に保持される。また、例えば初期設定時に、段数決定回路４は、使用段数をｎ段とするために、全てのセレクタ４Ｓ０〜４Ｓｎ−１が各レジスタ３Ｒ１〜３Ｒｎ−１の保持データを選択するように設定される。
【００４３】
初期設定終了後に不図示のクロック信号が立ち上がると、例えばクロック信号の立ち上がりタイミングに同期して、初段レジスタ３Ｒ１はセレクタ４Ｓ１を介して第２段レジスタ（不図示）に係数ａ０ｎを出力し、不図示の第ｎ−２段レジスタはセレクタ４Ｓｎ−２を介して第ｎ−１段レジスタ３Ｒｎ−１に保持データとしての係数ａ０３（不図示）を出力し、第ｎ−１段レジスタ３Ｒｎ−１はセレクタ４Ｓｎ−１を介して最終段レジスタ３Ｒｎに係数ａ０２を出力し、最終段レジスタ３Ｒｎは初段レジスタ３Ｒ１及びセレクタ４Ｓ１〜４Ｓｎ−１に係数ａ０１を出力する。これにより、初段レジスタ３Ｒ１には係数ａ０１が保持され、第２段レジスタには係数ａ０ｎが保持され、第ｎ−１段レジスタ３Ｒｎ−１には不図示の係数ａ０３が保持され、最終段レジスタ３Ｒｎには係数ａ０２が保持される。以上の動作時に、最終段レジスタ３Ｒｎから出力された係数ａ０１は、当該クロック信号の立ち上がりタイミングに同期して出力端子５から出力される。
【００４４】
以上の動作終了後に再びクロック信号が立ち上がると、クロック信号の立ち上がりタイミングに同期して、初段レジスタ３Ｒ１はセレクタ４Ｓ１を介して第２段レジスタ（不図示）に係数ａ０１を出力し、不図示の第ｎ−２段レジスタはセレクタ４Ｓｎ−２を介して第ｎ−１段レジスタ３Ｒｎ−１に係数ａ０４（不図示）を出力し、第ｎ−１段レジスタ３Ｒｎ−１はセレクタ４Ｓｎ−１を介して最終段レジスタ３Ｒｎに係数ａ０３を出力し、最終段レジスタ３Ｒｎは初段レジスタ３Ｒ１に係数ａ０２を出力する。これにより、初段レジスタ３Ｒ１には係数ａ０２が保持され、第２段レジスタには係数ａ０１が保持され、第ｎ−１段レジスタ３Ｒｎ−１には係数ａ０４が保持され、最終段レジスタ３Ｒｎには係数ａ０３が保持される。以上の動作時に、最終段レジスタ３Ｒｎから出力された係数ａ０２は、当該クロック信号の立ち上がりタイミングに同期して出力端子５から出力される。
【００４５】
シフトレジスタ３は、クロック信号の立ち上がりタイミングに同期して、上記の動作を繰り返し、各レジスタ３Ｒ１〜３Ｒｎ間で係数ａ０１〜ａ０ｎをローテーションすることができる。クロック信号がｎ回立ち上がると、各レジスタ３Ｒ１〜３Ｒｎがそれぞれ保持する係数ａ０１〜ａ０ｎは初期設定時と同じになる。
【００４６】
例えば、段数決定回路４は、初期設定時にセレクタ４Ｓｎ−２のみが最終段レジスタ３Ｒｎからの保持データを選択するように設定されているとする。この場合、ｉ＝ｎ−２となるので、ｎ段のレジスタ３Ｒ１〜３Ｒｎの使用段数は２段（＝ｎ−（ｎ−２）段）となる。
【００４７】
初期設定終了後にクロック信号が立ち上がると、例えばクロック信号の立ち上がりタイミングに同期して、第ｎ−１段レジスタ３Ｒｎ−１はセレクタ４Ｓｎ−１を介して最終段レジスタ３Ｒｎに係数ａ０２を出力し、最終段レジスタ３Ｒｎは初段レジスタ３Ｒ１及びセレクタ４Ｓ０〜４Ｓｎ−１に係数ａ０１を出力する。セレクタ４Ｓｎ−１は最終段レジスタ３Ｒｎからの保持データを選択して第ｎ−１段レジスタ３Ｒｎ−１に出力するように設定されている。このため、以上の動作時に、最終段レジスタ３Ｒｎから出力された係数ａ０１は、セレクタ４Ｓｎ−１を介して第ｎ−１段レジスタ３Ｒｎ−１に入力される。これにより、第ｎ−１段レジスタ３Ｒｎ−１には係数ａ０１が保持され、最終段レジスタ３Ｒｎには係数ａ０２が保持される。以上の動作時に、最終段レジスタ３Ｒｎから出力された係数ａ０１は、当該クロック信号の立ち上がりタイミングに同期して出力端子５から出力される。
【００４８】
以上の動作終了後に再びクロック信号が立ち上がると、クロック信号の立ち上がりタイミングに同期して、第ｎ−１段レジスタ３Ｒｎ−１はセレクタ４Ｓｎ−１を介して最終段レジスタ３Ｒｎに係数ａ０１を出力し、最終段レジスタ３Ｒｎは初段レジスタ３Ｒ１、セレクタ４Ｓ０〜４Ｓｎ−１に係数ａ０２を出力する。セレクタ４Ｓｎ−１は第ｎ−１段レジスタ３Ｒｎ−１に係数ａ０２を出力する。これにより、第ｎ−１段レジスタ３Ｒｎ−１には係数ａ０２が保持され、最終段レジスタ３Ｒｎには係数ａ０１が保持される。以上の動作時に、最終段レジスタ３Ｒｎから出力された係数ａ０２は、当該クロック信号の立ち上がりタイミングに同期して出力端子５から出力される。
【００４９】
上記の動作を繰り返し、シフトレジスタ３は、クロック信号の立ち上がりタイミングに同期して、第ｎ−１段レジスタ３Ｒｎ−１と最終段レジスタ３Ｒｎとの間で係数ａ０１、ａ０２をローテーションすることができる。なお、レジスタ３Ｒ１〜３Ｒ−２及びセレクタ４Ｓ１〜４Ｓｎ−２にも最終段レジスタ３Ｒｎから係数が入力される。しかし、第ｎ−２段レジスタ３Ｒｎ−２で保持した係数は第ｎ-１段レジスタ３Ｒｎ−１に入力されないので、レジスタ３Ｒ１〜３Ｒ−２は保持データとしての係数のシフト動作に寄与しない。このように、プロセッシングエレメント７は、段数決定回路４を用いてシフトレジスタ３の使用段数を決定できる。従って、プロセッシングエレメント７は、シフトレジスタ３の段数に対してローテーションさせる保持データ数が少ない場合には、シフトレジスタ３の使用段数を保持データ数と同じにすることにより、クロック信号に同期して保持データを出力端子５から連続的に出力することができる。
【００５０】
以上説明したように、本実施例によれば、プロセッシングエレメント７は多段のレジスタ３Ｒ１〜３Ｒｎを備えたシフトレジスタ３を有することにより、１つのプロセッシングエレメント内部で複数の係数ａ０１〜ａ０ｎを保持することができる。これにより、プロセッシングエレメントを備えた本実施例のリコンフィギャラブル回路は、プロセッシングエレメント７内部のパイプラインを使って係数ａ０１〜ａ０ｎをローテーションすることができる。このため、リコンフィギャラブル回路は、従来のリコンフィグＬＳＩ１０１と異なりカウンタエレメント１０３及びデータ遅延エレメント１０７が不用になる。これにより、半導体チップ内のプロセッシングエレメントの占有面積が低減される。また、本実施例のリコンフィギャラブル回路は、プロセッシングエレメント数を低減できるのでチップサイズの小型化を図ることができる。さらに、リコンフィギャラブル回路は、従来と異なりカウンタエレメントによりネットワークが占有されなくなるので配線負荷が低減され、高速動作が可能になる。
【００５１】
（実施例２）
本実施の形態の実施例２によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路について図２を用いて説明する。図２は、本実施例によるプロセッシングエレメント７の概略構成を示している。図２に示すように、本実施例によるプロセッシングエレメント７は、上記実施例１のプロセッシングエレメント７の構成に加えて、乗算回路１３を有する演算部を備えた点に特徴を有している。当該演算部は、クロック信号に同期してｎ段のレジスタ３Ｒ１〜３Ｒｎのいずれか１つから出力された保持データとしての係数ａ０１〜ａ０ｎと、外部から入力された入力データＤＩとを演算するようになっている。本実施例では、当該演算部は、最終段レジスタ３Ｒｎから出力された保持データと、入力データＤＩとを演算するようになっているが、最終段レジスタ３Ｒｎに代えて残余のレジスタ３Ｒ１〜３Ｒｎ−１のいずれか１つから出力された保持データを演算してもよい。なお、図２及び以下の図３乃至図１２では、段数決定回路４は、１つのブロックとして図示されているが、図１と同様の構成を有し、ｎ−１個のセレクタ４Ｓ１〜４ｎ−１を有している。
【００５２】
当該演算部に備えられた乗算回路１３は、係数ａ０１〜ａ０ｎと、入力データＤＩとを乗算する乗算器１３ａと、乗算器１３ａから出力された乗算データを一時的に保持して外部に出力するレジスタ１３ｂとを有している。
【００５３】
プロセッシングエレメント７は、出力端子５から順次出力された係数ａ０１〜ａ０ｎと、外部から入力された所定のデータＤｘとを選択して演算回路１３に出力するセレクタ１５を有している。
【００５４】
次に、本実施例のプロセッシングエレメント７の動作について図２を用いて説明する。シフトレジスタ３及び段数決定回路４は上記実施例１と同様に動作して、シフトレジスタ３は、例えばクロック信号の立ち上がりに同期して出力端子５から係数ａ０１〜ａ０ｎを順次出力する。例えば初期設定時に出力端子５からの係数ａ０１〜ａ０ｎを選択するようにセレクタ１５が設定されているとする。セレクタ１５は出力端子５からの係数ａ０１〜ａ０ｎを乗算器１３ａに順次出力する。入力データＤＩは、出力端子５からの係数ａ０１〜ａ０ｎが出力されるのに同期して、例えば１クロックサイクル毎に乗算器１３ａに入力される。乗算器１３ａは入力データＤＩと係数ａ０１〜ａ０ｎとを順次乗算してレジスタ１３ｂに乗算データを順次出力する。レジスタ１３ｂは乗算データを一時的に保持する。レジスタ１３ｂは、例えばクロック信号の立ち上がりに同期して保持している乗算データを出力データＤＯとしてプロセッシングエレメント７外部に出力する。
【００５５】
初期設定時にセレクタ１５は、外部からのデータＤｘを選択するように設定されているとする。この場合、例えば乗算回路１３は、クロック信号の立ち上がりに同期して乗算器１３ａに入力される入力データＤＩ及びデータＤｘを乗算し、レジスタ１３ｂから乗算データを出力データＤＯとしてプロセッシングエレメント７外部に出力する。
【００５６】
以上説明したように、本実施例によれば、プロセッシングエレメント７は、多段のレジスタ３Ｒ１〜３Ｒｎを備えたシフトレジスタ３と、乗算回路１３とを有している。これにより、プロセッシングエレメント７を備えた本実施例のリコンフィギャラブル回路は、プロセッシングエレメント７内部のパイプラインを使って係数ａ０１〜ａ０ｎをローテーションし、係数ａ１０〜ａ０ｎと入力データＤＩとを乗算することができる。このため、リコンフィギャラブル回路は、演算を１つのプロセッシングエレメント内で実行することができるので、入力データＤＩと係数ａ０１〜ａ０ｎとのタイミング調整が不要になる。これにより、リコンフィギャラブル回路は、従来のリコンフィグＬＳＩ１０１と異なりカウンタエレメント１０３及びデータ遅延エレメント１０７が不用になる。従って、本実施例のプロセッシングエレメント７及びそれを備えたリコンフィギャラブル回路は、上記実施例１と同様の効果が得られる。
【００５７】
（実施例３）
本実施の形態の実施例３によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路について図３を用いて説明する。図３は、本実施例によるプロセッシングエレメント７の概略構成を示している。図３に示すように、本実施例によるプロセッシングエレメント７は、上記実施例２によるプロセッシングエレメント７の構成に加えて、シフト／マスク回路１７及びレジスタ１９、２２を備えた点に特徴を有している。シフト／マスク回路１７は、入力データＤＩにビットシフト処理及びビットマスク処理を施して、レジスタ１９を介して演算回路１３に入力データＤＩを出力するようになっている。レジスタ１９は、シフト／マスク回路１７から出力された入力データＤＩを保持し、例えばクロック信号の立ち上がりに同期して乗算回路１３に入力データＤＩを出力する。レジスタ２２はセレクタ１５から出力された係数ａ０１〜ａ０ｎ又はデータＤｘを保持する。レジスタ２２は、例えばクロック信号の立ち上がりに同期して係数ａ０１〜ａ０ｎ又はデータＤｘを乗算回路１３に出力する。レジスタ２２は、レジスタ１９から出力される入力データＤＩと、セレクタ１５から出力される係数ａ０１〜ａ０ｎ又はデータＤｘとのタイミング調整のために配置されている。
【００５８】
シフト／マスク回路１７は、入力データＤＩと係数ａ０１〜ａ０ｎ又はデータＤｘとを乗算回路１３で演算できるように入力データＤＩにビットシフト処理を施し、乗算回路１３で演算処理の対象とならない入力データＤＩの一部にビットマスク処理を施すようになっている。例えば、乗算回路１３が入力データＤＩのＬＳＢ側の下位８ビットと係数ａ０１〜ａ０ｎ又はデータＤｘとを演算処理する機能を有しているとする。入力データＤＩが２４ビットで構成され、ＭＳＢ側の上位８ビットが演算対象であるとする。シフト／マスク回路１７は、入力された入力データＤＩの上位８ビットをＬＳＢ側の下位８ビットに右シフトし、上位１８ビットにマスク処理を施す。これにより、下位８ビットに演算対象となるデータがビットシフトされるので、乗算回路１３は係数ａ０１〜ａ０ｎ又はデータＤｘと、入力データＤＩを構成する演算対象のデータとを演算することができる。
【００５９】
本実施例によるプロセッシングエレメント７の動作は、シフト／マスク回路１７が入力データＤＩにビットシフト処理及びビットマスク処理を施すことを除いて、上記実施例２と同様であるため、説明は省略する。
【００６０】
以上説明したように、本実施例によれば、プロセッシングエレメント７は、シフト／マスク回路１７を有しているので、多ビットの入力データＤＩのうちの一部のビットと、係数ａ０１〜ａ０ｎ又はデータＤｘとを演算することができる。また、本実施例のプロセッシングエレメント７を備えたリコンフィギャラブル回路は、従来のリコンフィグＬＳＩ１０１と異なりカウンタエレメント１０３及びデータ遅延エレメント１０７が不用になる。従って、本実施例のリコンフィギャラブル回路は、上記実施例１及び２と同様の効果が得られる。
【００６１】
（実施例４）
本実施の形態の実施例４によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路について図４を用いて説明する。図４は、本実施例によるプロセッシングエレメント７の概略構成を示している。図４に示すように、プロセッシングエレメント７は、上記実施例２によるプロセッシングエレメント７の構成に加えて、乗算回路１３から出力された乗算データを累積加算する累積加算回路２１を演算部１２に備えた点に特徴を有している。
【００６２】
累積加算回路２１は、当該乗算データが入力する加算器２１ａと、加算器２１ａで加算された加算データを一時的に保持して出力データＤＯとしてプロセッシングエレメント７外部に出力するレジスタ２１ｂとを有している。加算器２１ａは、乗算回路１３から出力された乗算データと、レジスタ２１ｂに一時的に保持された加算データとを加算する。これにより、累積加算回路２１は乗算データを累積加算することができる。レジスタ２１ｂは例えばクロック信号の立ち上がりに同期して出力データＤＯを出力する。
【００６３】
次に、本実施例によるプロセッシングエレメント７の動作について図４を用いて説明する。上記実施例２のプロセッシングエレメント７と同様に動作して、乗算回路１３は乗算データを累積加算回路２１に出力する。累積加算回路２１の加算器２１ａは当該乗算データとレジスタ２１ｂに保持されたデータとを加算し、加算データをレジスタ２１ｂに出力する。レジスタ２１ｂは当該加算データを保持する。レジスタ２１ｂは、例えば次のクロック信号の立ち上がりに同期して保持している加算データを加算器２１ａに出力すると共に出力データＤＯとしてプロセッシングエレメント７外部に出力する。当該クロック信号に同期して、乗算回路１３から乗算データが加算器２１ａに入力される。加算器２１ａは当該乗算データとレジスタ２１ｂから出力されたデータとを加算してレジスタ２１ｂに出力する。プロセッシングエレメント７は上記の動作を繰り返すので、積和エレメントとして機能する。
【００６４】
以上説明したように、本実施例によるプロセッシングエレメント７は入力データＤＩと係数ａ０１〜ａ００とを積和演算することができる。従って、プロセッシングエレメント７を備えたリコンフィギャラブル回路は、従来のリコンフィグＬＳＩ１０１と異なりカウンタエレメント１０３及びデータ遅延エレメント１０７が不用になる。従って、本実施例のプロセッシングエレメント７及びそれを備えたリコンフィギャラブル回路は、上記実施例１乃至３と同様の効果が得られる。
【００６５】
（実施例５）
本実施の形態の実施例５によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路について図５を用いて説明する。図５は、本実施例によるプロセッシングエレメント７の概略構成を示している。図５に示すように、本実施例によるプロセッシングエレメント７は、上記実施例４の構成に加えて、シフト／マスク回路１７及びレジスタ１９、２２を備えた点に特徴を有している。シフト／マスク回路１７は、上記実施例３のプロセッシングエレメント７に備えられたシフト／マスク回路１７と同様の機能を発揮する。従って、本実施例のプロセッシングエレメント７は、多ビットの入力データＤＩのうちの一部のビットと、係数ａ０１〜ａ０ｎ又はデータＤｘとを累積加算することができる。本実施例のプロセッシングエレメント７の動作は、入力データＤＩにシフト／マスク処理が施される点を除いて上記実施例４と同様なので説明は省略する。
【００６６】
以上説明したように、本実施例よれば、プロセッシングエレメント７は、多ビットの入力データＤＩのうちの一部のビットと、係数ａ０１〜ａ０ｎとを累積加算することができる。また、プロセッシングエレメント７を備えたリコンフィギャラブル回路は、従来のリコンフィグＬＳＩ１０１と異なりカウンタエレメント１０３及びデータ遅延エレメント１０７が不用になる。従って、本実施例のプロセッシングエレメント７及びリコンフィギャラブル回路は、上記実施例１乃至４と同様の効果が得られる。
【００６７】
（実施例６）
本実施の形態の実施例６によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路について図６を用いて説明する。図６は、本実施例によるプロセッシングエレメント７の概略構成を示している。図６に示すように、本実施例によるプロセッシングエレメント７は、シフトレジスタ３から出力される保持データの出力位置と、ｎ段のレジスタ３Ｒ１〜３Ｒｎ間でローテーションする保持データが異なる点を除いて、上記実施例１のプロセッシングエレメント７と同様である。
【００６８】
保持データｃ０１〜ｃ０ｎは、不図示の演算部を制御する制御信号データとして用いられる。例えば、保持データｃ０１〜ｃ０ｎ−１は数ビットで構成された「０」のデータであり、保持データｃ０ｎは数ビットで構成された「１」のデータである。シフトレジスタ３は、ｎクロックサイクル毎に出力端子５から「１」の保持データを出力できる。図６では、保持データｃ０１〜ｃ０ｎは、最終段レジスタ３Ｒｎに入力する保持データが出力されるようになっている。出力端子５から出力される保持データｃ０１〜ｃ０ｎは、最終段レジスタ３Ｒｎに入力する保持データではなく、残余のレジスタ３Ｒ１〜３Ｒｎ−１に入力する保持データであってもよい。
【００６９】
本実施例によるプロセッシングエレメント７の動作は、シフトレジスタ３から出力される保持データｃ０１〜ｃ０ｎの出力位置が異なる点を除いて、上記実施例１と同様であるため説明は省略する。
【００７０】
以上説明したように、本実施例によれば、プロセッシングエレメント７は、多段のレジスタ３Ｒ１〜３Ｒｎを備えたシフトレジスタ３を有することにより、１つのプロセッシングエレメント内部で保持データｃ０１〜ｃ０ｎをローテーションすることができる。これにより、プロセッシングエレメント７を備えたリコンフィギャラブル回路は、プロセッシングエレメント７内部のパイプラインを遅延器のように使用して、制御信号データ（例えば、イネーブル信号）として用いる保持データｃ０１〜ｃ０ｎを伝播させることができる。このため、リコンフィギャラブル回路は、従来のリコンフィグＬＳＩ１０１と異なりカウンタエレメント１０３及びイネーブル遅延エレメント１０８が不用になる。これにより、半導体チップ内のプロセッシングエレメントの占有面積が低減される。また、リコンフィギャラブル回路は、プロセッシングエレメント数が低減されるので小型化を図ることができる。さらに、リコンフィギャラブル回路は、従来と異なりカウンタエレメント等によりネットワークが占有されなくなるので配線負荷が低減され、高速動作が可能になる。
【００７１】
（実施例７）
本実施の形態の実施例７によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路について図７を用いて説明する。図７は、本実施例によるプロセッシングエレメント７の概略構成を示している。図７に示すように、本実施例によるプロセッシングエレメント７は、上記実施例６の構成に加えて、出力端子５を介してシフトレジスタ３から出力した保持データｃ０１〜ｃ０ｎで制御されるレジスタ２３を備えた点に特徴を有している。保持データはレジスタ２３の制御端子Ｅに入力するようになっている。レジスタ２３は保持データの値に基づいて、例えばレジスタ２３の保持データをリセットするようになっている。
【００７２】
さらに、プロセッシングエレメント７は、外部から入力された入力データＤＩ及び所定のデータＤｘを演算する乗算回路１３を有している。乗算回路１３は、入力データＤＩと所定のデータＤｘとを乗算する乗算器１３ａと、乗算器１３ａから出力された乗算データを一時的に保持して出力データＤＯとしてプロセッシングエレメント７外部に出力するレジスタ１３ｂとを有している。
【００７３】
次に、本実施例のプロセッシングエレメント７の動作について図７を用いて説明する。シフトレジスタ３は上記実施例６と同様に動作し、例えばクロック信号の立ち上がりタイミングに同期して、レジスタ３Ｒｎ−１に保持された保持データｃ０１を出力端子５を介してレジスタ２３の制御端子Ｅに出力する。外部から入力された入力データＤＩ及びデータＤｘは、例えばクロック信号の立ち上がりタイミングに同期して乗算回路１３の乗算器１３ａに入力する。乗算器１３ａは入力データＤＩとデータＤｘとを乗算してレジスタ１３ｂに乗算データを出力する。レジスタ１３ｂは当該乗算データを保持すると共に出力データＤＯとしてプロセッシングエレメント７外部に出力する。以上の動作を繰り返し、レジスタ１３ｂはクロック信号に同期して出力データＤＯをプロセッシングエレメント７外部に出力する。レジスタ２３は「１」の保持データが制御端子Ｅに入力されると保持データを「０」にリセットする。従って、レジスタ２３はｎクロックサイクル毎に保持データをリセットする。
【００７４】
以上説明したように、本実施例によれば、プロセッシングエレメント７は、シフトレジスタ３と、乗算回路１３とを有している。このため、プロセッシングエレメント７を備えたリコンフィギャラブル回路は、従来のリコンフィグＬＳＩ１０１と異なりカウンタエレメント１０３及びイネーブル遅延エレメント１０８が不用になる。従って、本実施例のリコンフィギャラブル回路は、上記実施例６と同様の効果が得られる。
【００７５】
（実施例８）
本実施の形態の実施例８によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路について図８を用いて説明する。図８は、本実施例によるプロセッシングエレメント７の概略構成を示している。図８に示すように、本実施例によるプロセッシングエレメント７は、上記実施例７によるプロセッシングエレメント７の構成に加えて、シフト／マスク回路１７と、レジスタ１９、２２とを備えた点に特徴を有している。シフト／マスク回路１７及びレジスタ１９、２２は、上記実施例３のシフト／マスク回路１７及びレジスタ１９、２２と同様の構成及び機能を有するので、説明は省略する。
【００７６】
本実施例によるプロセッシングエレメント７の動作は、シフト／マスク回路１７で入力データＤＩがビットシフト処理及びビットマスク処理が施されることを除いて、上記実施例７と同様であるため、説明は省略する。
【００７７】
以上説明したように、本実施例によれば、プロセッシングエレメント７は、シフト／マスク回路１７を有しているので、多ビットの入力データＤＩのうちの一部のビットと、データＤｘとを乗算することができる。また、プロセッシングエレメント７を備えたリコンフィギャラブル回路は、従来のリコンフィグＬＳＩ１０１と異なりカウンタエレメント１０３及びイネーブル遅延エレメント１０８が不用になる。従って、本実施例のリコンフィギャラブル回路は、上記実施例６及び７と同様の効果が得られる。
【００７８】
（実施例９）
本実施の形態の実施例９によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路について図９を用いて説明する。図９は、本実施例によるプロセッシングエレメント７の概略構成を示している。図９に示すように、本実施例によるプロセッシングエレメント７は、上記実施例６によるプロセッシングエレメント７の構成に加えて、クロック信号に同期してｎ段のレジスタ３Ｒ１〜３Ｒｎのいずれか１つから出力された保持データｃ０１〜ｃ０ｎに基づいて、外部から入力された入力データＤＩを演算処理する演算部を備えた点に特徴を有している。当該演算部は、最終段レジスタ３Ｒｎに入力する保持データに基づいて、入力データＤＩを演算処理するようになっている。
【００７９】
当該演算部は、保持データｃ０１〜ｃ０ｎに基づいて、入力データＤＩの累積加算数が制御される累積加算回路２１を有している。累積加算回路２１は、入力データＤＩを累積加算する加算器２１ａと、加算器２１ａで加算された加算データを一時的に保持してプロセッシングエレメント７外部に出力データＤＯとして出力するレジスタ２１ｂと、保持データｃ０１〜ｃ０ｎで制御されるレジスタ２３とを有している。プロセッシングエレメント７は、累積加算回路２１を有することにより、累積加算エレメントとしての機能を発揮できる。
【００８０】
レジスタ２３は加算器２１ａから出力された加算データを一時的に保持すると共に、例えばクロック信号の立ち上がりに同期して当該加算データを加算器２１ａに出力する。加算器２１ａは、レジスタ２３から出力された加算データと入力データＤＩとを加算するので、累積加算回路２１は入力データＤＩを累積加算することができる。また、レジスタ２３は保持データｃ０１〜ｃ０ｎに基づいて、保持しているデータをリセットできるようになっている。さらに、レジスタ２３は、保持データｃ０１〜ｃ０ｎに基づいて、レジスタ２１ｂから出力データＤＯを出力するか否かを制御できるようになっている。このように、累積加算回路２１は、保持データｃ０１〜ｃ０ｎに基づいて、演算処理後のデータの出力タイミングを制御できる。累積加算回路２１は、保持データｃ０１〜ｃ０ｎに基づいて、入力データＤＩの累積加算数と加算データの出力タイミングとを制御できる。レジスタ２１ｂは制御端子Ｅに「１」の保持データが入力されると、それまで累積した加算データを出力データＤＯとして出力するようになっている。
【００８１】
次に、本実施例によるプロセッシングエレメント７の動作について図９を用いて説明する。図９に示すように、例えば初期設定時に、「０」の保持データｃ０１〜ｃ０ｎ−１がレジスタ３Ｒｎ−１（不図示）〜３Ｒ１にそれぞれセットされ、「１」の保持データｃ０ｎがレジスタ３Ｒｎに保持される。また、例えば初期設定時に使用段数をｎ段とするために、段数決定回路４は全てのセレクタ４Ｓ１〜４Ｓｎ−１（不図示）がレジスタ３Ｒ１〜３Ｒｎ−１の保持データをそれぞれ選択するように設定される。さらに、レジスタ２３は「０」のデータを保持するように設定される。
【００８２】
シフトレジスタ３は上記実施例６のシフトレジスタ３と同様に動作して、例えばクロック信号の立ち上がりに同期して保持データｃ０１〜ｃ０ｎを出力端子５を介してレジスタ２３に順次出力する。保持データｃ０１〜ｃ０ｎ−１は「０」のデータであり、保持データｃ０ｎは「１」のデータである。このため、シフトレジスタ３は、初期設定からｎ−１クロックサイクルの間に「０」の保持データｃ０１〜ｃ０ｎ−１をレジスタ２３に出力し、ｎクロック目に「１」の保持データｃ０ｎをレジスタ２３に出力する。その後シフトレジスタ３は、ｎクロックサイクル毎に「１」の保持データｃ０ｎをレジスタ２３に出力する。
【００８３】
一方、入力データＤＩは、例えばクロック信号の立ち上がりタイミングに同期して、加算器２１ａに入力する。累積加算回路２１は、第１番目の入力データＤＩと、レジスタ２３に保持された「０」のデータとを加算した加算データを保持データｃ０１の出力タイミングに同期してレジスタ２１ｂ、２３に出力する。例えば、レジスタ２３は、シフトレジスタ３及び段数決定回路４から出力された保持データが「０」の場合には加算データを保持し、次のクロック信号の立ち上がりで加算器２１ａに当該加算データを出力する。レジスタ２１ｂは加算データを出力データＤＯとしてプロセッシングエレメント７の外部に出力する。
【００８４】
プロセッシングエレメント７は上記の動作を繰り返し、累積加算回路２１は第１番目の入力データＤＩから第ｎ番目の入力データＤＩまでを累積加算する。第１番目から第ｎ番目までの入力データＤＩをｘ０１〜ｘ０ｎとすると、累積加算回路２１は、ｎクロックサイクル後に、出力データＤＯ＝ｘ０１＋ｘ０２＋・・・＋ｘ０ｎを出力する。第ｎ番目の入力データＤＩまでの累積加算データがレジスタ２３に入力されるのに同期して、「１」の保持データｃ０ｎがシフトレジスタ３及び段数決定回路４からレジスタ２３の制御端子Ｅに入力される。これにより、レジスタ２３は保持データを初期設定時の「０」にリセットする。プロセッシングエレメント７は、ｎクロックサイクル毎にレジスタ２３の保持データが「０」にリセットされるため、ｎ個の入力データＤＩを累積加算することができる。以上の説明では、レジスタ２１ｂは加算データが入力される毎に出力データＤＯを出力するように制御されている。しかし、レジスタ２１ｂはレジスタ２３の制御端子Ｅに「１」の保持データが入力される毎に、即ちｎクロックサイクル毎に第１番目から第ｎ番目の入力データＤＩの累積加算データを出力データＤＯとして出力するように制御されてもよい。
【００８５】
以上説明したように、本実施例によるプロセッシングエレメント７は、プロセッシングエレメント７内部のパイプラインを制御信号としての保持データｃ０１〜ｃ０ｎが伝播し、任意のタイミング及び回数でデータを累積したり出力したりすることができる。従って、プロセッシングエレメント７は累積加算エレメントとして機能する。プロセッシングエレメント７を備えたリコンフィギャラブル回路は、１つのプロセッシングエレメント内で演算処理を実行できるので、入力データＤＩと係数ａ０１〜ａ０ｎとのタイミング調整用が不要になる。これにより、本実施例のリコンフィギャラブル回路は、従来のリコンフィグＬＳＩ１０１と異なりカウンタエレメント１０３及びイネーブル遅延エレメント１０８が不用になる。従って、本実施例のリコンフィギャラブル回路は、上記実施例６乃至８と同様の効果が得られる。
【００８６】
（実施例１０）
本実施の形態の実施例１０によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路について図１０を用いて説明する。図１０は、本実施例によるプロセッシングエレメント７の概略構成を示している。図１０に示すように、本実施例によるプロセッシングエレメント７は、上記実施例６のプロセッシングエレメント７の構成に加えて、上記実施例７の乗算回路１３と上記実施例９の累積加算回路２１とを有する演算部１２を備えた点に特徴を有している。これにより、演算部１２は入力データＤＩとデータＤｘとを乗算した乗算データを累積加算することができる。従って、プロセッシングエレメント７は積和演算エレメントとしての機能を発揮できる。
【００８７】
本実施例によるプロセッシングエレメント７の構成及び動作は、累積加算回路２１で加算するデータが乗算回路１３から出力された乗算データである点を除いて、上記実施例９のプロセッシングエレメント７と同様であるため、説明は省略する。
【００８８】
以上説明したように、本実施例によるプロセッシングエレメント７は積和演算エレメントとして機能する。従って、プロセッシングエレメント７を備えたリコンフィギャラブル回路は、従来のリコンフィグＬＳＩ１０１と異なりカウンタエレメント１０３、データ遅延エレメント１０７及びイネーブル遅延エレメント１０８が不用になる。従って、本実施例のリコンフィギャラブル回路は、上記実施例６乃至９と同様の効果が得られる。
【００８９】
（実施例１１）
本実施の形態の実施例１１によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路について図１１を用いて説明する。図１１は、本実施例によるプロセッシングエレメント７の概略構成を示している。図１１に示すように、本実施例によるプロセッシングエレメント７は、上記実施例１０によるプロセッシングエレメント７の構成に加えて、シフト／マスク回路１７及びレジスタ１９、２２を備えた点に特徴を有している。シフト／マスク回路１７及びレジスタ１９、２２は、上記実施例８と同様の機能を発揮する。従って、本実施例のプロセッシングエレメント７は、多ビットの入力データＤＩのうちの一部のビットと、データＤｘとを累積加算することができる。本実施例のプロセッシングエレメント７の動作は、入力データＤＩにビットシフト処理及びビットマスク処理を施すことができる点を除いて上記実施例１０と同様なので説明は省略する。
【００９０】
以上説明したように、本実施例よれば、プロセッシングエレメント７は、多ビットの入力データＤＩのうちの一部のビットと、データＤｘとを積和演算することができる。また、プロセッシングエレメント７を備えたリコンフィギャラブル回路は、従来のリコンフィグＬＳＩ１０１と異なりカウンタエレメント１０３、データ遅延エレメント１０７及びイネーブル遅延エレメント１０８が不用になる。従って、本実施例のリコンフィギャラブル回路は、上記実施例６乃至１０と同様の効果が得られる。
【００９１】
（実施例１２）
本実施の形態の実施例１２によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路について図１２を用いて説明する。図１２は、本実施例によるプロセッシングエレメント７ａ、７ｂ、７ｃ及びそれを備えたリコンフィギャラブル回路１の概略構成を示している。本実施例によるリコンフィギャラブル回路１は、従来の画像処理用リコンフィグＬＳＩ２０１と同様の機能を発揮する。図１２に示すように、本実施例によるリコンフィギャラブル回路１は、上記実施例５によるプロセッシングエレメント７と同様の構成を有し、入力データＤＩの入力端子が互いに接続されたプロセッシングエレメント７ａ、７ｂ、７ｃを有している。プロセッシングエレメント７ａ、７ｂ、７ｃは、シフトレジスタ３を構成するｎ段のレジスタ３Ｒ１〜３Ｒｎのうちの３段のレジスタ３Ｒｎ−２、３Ｒｎ−１、３Ｒｎを用いるように、初期設定時に段数決定回路４が設定されている。
【００９２】
プロセッシングエレメント７ａの各レジスタ３Ｒｎ−２、３Ｒｎ−１、３Ｒｎには、初期設定時に保持データとして例えば図１５に示す空間フィルタ１１１の係数ａ０２、ａ０１、ａ００がそれぞれ保持される。プロセッシングエレメント７ｂの各レジスタ３Ｒｎ−２、３Ｒｎ−１、３Ｒｎには、初期設定時に保持データとして例えば図１５に示す空間フィルタ１１１の係数ａ１２、ａ１１、ａ１０がそれぞれ保持される。プロセッシングエレメント７ｃのレジスタ３Ｒｎ−２、３Ｒｎ−１、３Ｒｎには、初期設定時に保持データとして例えば図１５に示す空間フィルタ１１１の係数ａ２２、ａ２１、ａ２０がそれぞれ保持される。プロセッシングエレメント７ａ、７ｂ、７ｃの残余のレジスタ３Ｒ１〜３Ｒｎ−３（不図示）には、初期設定時に例えば空間フィルタの係数とは無関係の係数ａがそれぞれ保持される。なお、プロセッシングエレメント７ａ、７ｂ、７ｃの構成は上記実施例５のプロセッシングエレメント７の構成と同様であるため、説明は省略する。
【００９３】
次に、本実施例によるプロセッシングエレメント７及びそれを用いたリコンフィギャラブル回路１の動作について図１２を用いて説明する。図１２に示すように、例えば初期設定時に、プロセッシングエレメント７ａ、７ｂ、７ｃの各段数決定回路４は、使用段数を３段とするために、例えば不図示のセレクタ４Ｓｎ−３のみが前段レジスタ（不図示のレジスタ３Ｒｎ−３）の保持データを選択するように設定される。また、プロセッシングエレメント７ａ、７ｂ、７ｃの各レジスタ３Ｒｎ−２、３Ｒｎ−１、３Ｒｎに図１２に示すように空間フィルタの係数ａ００〜ａ２２がそれぞれ保持される。さらに、プロセッシングエレメント７ａ、７ｂ、７ｃの各セレクタ１５は、各最終段レジスタ３Ｒｎの出力データを選択するように設定される。また、プロセッシングエレメント７ａ、７ｂ、７ｃの各レジスタ２１ｂの保持データは、例えば８ビットで構成された「０」に設定される。
【００９４】
初期設定終了後に不図示のクロック信号が立ち上がると、例えばクロック信号の立ち上がりタイミングに同期して、プロセッシングエレメント７ａ、７ｂ、７ｃの各最終段レジスタ３Ｒｎはセレクタ４Ｓｎ−３を介して係数ａ００、ａ０１、ａ２０を第ｎ−２段レジスタ３Ｒｎ−２にそれぞれ出力し、第ｎ−１段レジスタ３Ｒｎ−１はセレクタ４Ｓｎ−１（不図示）を介して係数ａ０１、ａ１１、ａ２１を最終段レジスタ３Ｒｎにそれぞれ出力し、第ｎ−２段レジスタ３Ｒｎ−２はセレクタ４Ｓｎ−２（不図示）を介して係数ａ０２、ａ１２、ａ２２を第ｎ−１段レジスタ３Ｒｎ−１にそれぞれ出力する。また、当該クロック信号の立ち上がりタイミングに同期して、各最終段レジスタ３Ｒｎは出力端子５を介して係数ａ００、ａ０１、ａ２０をセレクタ１５にそれぞれ出力する。各セレクタ１５は、係数ａ００、ａ０１、ａ０２をレジスタ２２にそれぞれ出力する。
【００９５】
各最終段レジスタ３Ｒｎから係数ａ００、ａ１０、ａ２０がそれぞれ出力されるのに同期して、図１６に示す画像データｘ００、ｘ１０、ｘ２０で構成された入力データＤＩ０がプロセッシングエレメント７ａ、７ｂ、７ｃの各シフト／マスク回路１７に入力される。例えば、図１６に示す画像データｘ００〜ｘ２ｎはそれぞれ８ビットで構成されている。入力データＤＩ０はＭＳＢ側の上位８ビットが画像データｘ００であり、次の８ビットが画像データｘ１０であり、ＬＳＢ側の下位８ビットが画像データｘ２０であり、全体として２４ビットのデータになる。なお、図１６に示す入力データＤＩ１〜ＤＩｎも入力データＤＩ０と同様に２４ビットで構成され、上位８ビットがｘ０１〜ｘ０ｎであり、次の８ビットがｘ１１〜ｘ１ｎであり、残余の下位８ビットがｘ２１〜ｘ２ｎである。
【００９６】
乗算回路１３は入力データＤＩのＬＳＢ側の下位８ビットと、８ビットの係数ａ００〜ａ０ｎとを演算処理する機能を有しているとする。そこで、プロセッシングエレメント７ａのシフト／マスク回路１７は、入力データＤＩ０を１６ビット右シフトして画像データｘ００を下位８ビットにビットシフト処理してから上位１８ビットにビットマスク処理を施す。プロセッシングエレメント７ｂのシフト／マスク回路１７は、入力データＤＩ０を８ビット右シフトして画像データｘ１０を下位８ビットにビットシフト処理してから上位１８ビットにビットマスク処理を施す。プロセッシングエレメント７ｃのシフト／マスク回路１７は、ビットシフト処理をせずに上位１８ビットにビットマスク処理を施す。これにより、演算対象となる画像データｘ００、ｘ１０、ｘ２０は下位８ビットにそれぞれシフトされる。各シフト／マスク回路１７でビットシフト処理及びビットマスク処理が施された入力データＤＩ０は、レジスタ１９にそれぞれ出力される。
【００９７】
以上の動作終了後に再びクロック信号が立ち上がると、クロック信号の立ち上がりタイミングに同期して、プロセッシングエレメント７ａ、７ｂ、７ｃの各レジスタ１９は、入力データＤＩ０を乗算器１３ａに出力し、各レジスタ２２は係数ａ００、ａ１０、ａ２０を乗算器１３ａにそれぞれ出力する。プロセッシングエレメント７ａ、７ｂ、７ｃの各乗算器１３ａは、入力データＤＩ０と係数ａ００、ａ１０、ａ２０とをそれぞれ乗算して乗算データをレジスタ１３ｂにそれぞれ出力する。プロセッシングエレメント７ａ、７ｂ、７ｃの各レジスタ１３ｂは乗算データをそれぞれ保持する。
【００９８】
当該クロック信号の立ち上がりタイミングに同期してシフトレジスタ３が動作して、各第ｎ−２段レジスタ３Ｒｎ−１には係数ａ０１、ａ１１、ａ２１がそれぞれ保持され、各第ｎ−１段レジスタ３Ｒｎ−１には係数ａ００、ａ１０、ａ２０がそれぞれ保持され、各最終段レジスタ３Ｒｎには係数ａ０２、ａ１２、ａ２２が保持される。その際、各最終段レジスタ３Ｒｎから出力された係数ａ０１、ａ１１、ａ２１は、レジスタ２２にそれぞれ保持される。さらに、当該クロック信号の立ち上がりタイミングに同期して入力した入力データＤＩ１（図１６参照）は、シフト／マスク回路１７でビットシフト処理及びビットマスク処理が施されてレジスタ１９にそれぞれ保持される。
【００９９】
以上の動作終了後に再びクロック信号が立ち上がると、クロック信号の立ち上がりタイミングに同期して、プロセッシングエレメント７ａ、７ｂ、７ｃの各レジスタ１３ｂからそれぞれ出力された乗算データは、加算器２１ａにそれぞれ出力される。レジスタ２１ｂは「０」のデータを保持しているので、加算器２１ａは、乗算データと「０」のデータとを加算して加算データをレジスタ２１ｂに出力する。プロセッシングエレメント７ａ、７ｂ、７ｃの各レジスタ２１ｂは加算器２１ａから出力された加算データを加算保持データとしてそれぞれ保持する。例えばプロセッシングエレメント７ａについてみると、加算保持データはａ００×ｘ００である。
【０１００】
当該クロック信号の立ち上がりタイミングに同期して、プロセッシングエレメント７ａ、７ｂ、７ｃの各レジスタ１９は、入力データＤＩ１を乗算器１３ａに出力し、各レジスタ２２は係数ａ０１、ａ１１、ａ２１を乗算器１３ａに出力する。プロセッシングエレメント７ａ、７ｂ、７ｃの各乗算器１３ａは、入力データＤＩ１と係数ａ０１、ａ１１、ａ２１とをそれぞれ乗算して乗算データをレジスタ１３ｂにそれぞれ出力する。プロセッシングエレメント７ａ、７ｂ、７ｃの各レジスタ１３ｂは当該乗算データをそれぞれ保持する。
【０１０１】
当該クロック信号の立ち上がりタイミングに同期してシフトレジスタ３が動作して、各第ｎ−２段レジスタ３Ｒｎ−１には係数ａ０２、ａ１２、ａ２２がそれぞれ保持され、各第ｎ−１段レジスタ３Ｒｎ−１には係数ａ０１、ａ１１、ａ２１がそれぞれ保持され、各最終段レジスタ３Ｒｎには係数ａ００、ａ１０、ａ２０が保持される。その際、各最終段レジスタ３Ｒｎから出力された係数ａ０２、ａ１２、ａ２２は、レジスタ２２にそれぞれ保持される。さらに、当該クロック信号の立ち上がりタイミングに同期して入力した入力データＤＩ２（図１６参照）は、シフト／マスク回路１７でビットシフト処理及びビットマスク処理が施されてレジスタ１９にそれぞれ保持される。
【０１０２】
以上の動作終了後に再びクロック信号が立ち上がると、クロック信号の立ち上がりタイミングに同期して、プロセッシングエレメント７ａ、７ｂ、７ｃの各レジスタ２１ｂは、保持しているデータを出力データＤＯａ、ＤＯｂ、ＤＯｃとしてプロセッシングエレメント７ａ、７ｂ、７ｃの外部にそれぞれ出力する。
【０１０３】
当該クロック信号の立ち上がりタイミングに同期して、プロセッシングエレメント７ａ、７ｂ、７ｃの各レジスタ１３ｂは保持している乗算データを加算器２１ａにそれぞれ出力し、レジスタ２１ｂは保持している加算保持データを加算器２１ａに出力する。加算器２１ａは、入力された乗算データ及び加算保持データを加算してレジスタ２１ｂに出力する。プロセッシングエレメント７ａ、７ｂ、７ｃの各レジスタ２１ｂは加算器２１ａから出力された当該加算データを加算保持データとしてそれぞれ保持する。例えばプロセッシングエレメント７ａについてみると、当該加算保持データはａ００×ｘ００＋ａ０１×ｘ０１である。
【０１０４】
当該クロック信号の立ち上がりタイミングに同期して、プロセッシングエレメント７ａ、７ｂ、７ｃの各レジスタ１９は、入力データＤＩ２を乗算器１３ａに出力し、各レジスタ２２は係数ａ０２、ａ１２、ａ２２を乗算器１３ａに出力する。プロセッシングエレメント７ａ、７ｂ、７ｃの各乗算器１３ａは、入力データＤＩ２と係数ａ０２、ａ１２、ａ２２とをそれぞれ乗算して乗算データをレジスタ１３ｂにそれぞれ出力する。プロセッシングエレメント７ａ、７ｂ、７ｃの各レジスタ１３ｂは当該乗算データをそれぞれ保持する。
【０１０５】
当該クロック信号の立ち上がりタイミングに同期してシフトレジスタ３が動作して、各第ｎ−２段レジスタ３Ｒｎ−１には係数ａ００、ａ１０、ａ２０がそれぞれ保持され、各第ｎ−１段レジスタ３Ｒｎ−１には係数ａ０２、ａ１２、ａ２２がそれぞれ保持され、各最終段レジスタ３Ｒｎには係数ａ０１、ａ１１、ａ２１が保持される。その際、各最終段レジスタ３Ｒｎから出力された係数ａ００、ａ１０、ａ２０は、レジスタ２２にそれぞれ保持される。さらに、当該クロック信号の立ち上がりタイミングに同期して入力した入力データＤＩ３（不図示）は、シフト／マスク回路１７でビットシフト処理及びビットマスク処理が施されてレジスタ１９にそれぞれ保持される。
【０１０６】
リコンフィギャラブル回路１は、以上の動作を繰り返し、初期設定状態から５クロックサイクル後に、プロセッシングエレメント７ａが式（４）を満たす出力データＤＯａを出力し、プロセッシングエレメント７ｂが式（５）を満たす出力データＤＯｂを出力し、プロセッシングエレメント７ｃが式（６）を満たす出力データＤＯｃを出力するように動作する。リコンフィギャラブル回路１は、プロセッシングエレメント７ａ、７ｂ、７ｃからの出力データＤＯａ、ＤＯｂ、ＤＯｃを不図示の加算回路で加算することにより、式（７）に示す画素データＹ１１を図１７に示す演算実行単位ｘ１の注目画素の画素データｘ１１の新たな画素データとして算出することができる。また、リコンフィギャラブル回路１は５クロック目以降では、３クロックサイクル毎に、以下の式（８）を満たす画素データＹを注目画素の新たな画素データとして算出することができる。
【０１０７】
Ｙ１１＝  ａ００×ｘ０（ｉ−１）＋ａ０１×ｘ０ｉ＋ａ０２×ｘ０（ｉ＋１）
＋ａ１０×ｘ１（ｉ−１）＋ａ１１×ｘ１ｉ＋ａ１２×ｘ１（ｉ＋１）
＋ａ２０×ｘ２（ｉ−１）＋ａ２１×ｘ２ｉ＋ａ２２×ｘ２（ｉ＋１）
・・・（８）
但し、ｉは、１≦ｉ≦ｎ−１を満たす整数である。
【０１０８】
リコンフィギャラブル回路１は演算実行単位ｘ１に含まれる画像データｘ００〜ｘ２２が全て読み出される前にラインバッファＬＢ０〜ＬＢ２からの読み出しが開始される。従って、リコンフィギャラブル回路１はパイプライン処理が可能になる。
【０１０９】
以上説明したように、本実施の形態によれば、プロセッシングエレメント７ａ、７ｂ、７ｃを備えることにより、リコンフィギャラブル回路１は、従来のリコンフィグＬＳＩ２０１と異なりカウンタエレメント１３７、データ遅延エレメント１３６及びＲＡＭエレメント１２１、１２２、１２３が不要になる。これにより、半導体チップ内のプロセッシングエレメントの占有面積が低減される。また、本実施例のリコンフィギャラブル回路１は、プロセッシングエレメント数が低減するのでチップサイズの小型化を図ることができる。さらに、リコンフィギャラブル回路１は、従来と異なりカウンタエレメント等によりネットワークが占有されなくなるので配線負荷が低減され、高速動作が可能になる。
【０１１０】
以上説明した本実施の形態によるプロセッシングエレメント及びそれを備えたリコンフィギャラブル回路は、以下のようにまとめられる。
（付記１）
直列に接続されたｎ段のレジスタのうちの最終段レジスタの出力端子が初段レジスタの入力端子に接続されて、クロック信号に同期して前記ｎ段のレジスタ間で保持データをローテーションするシフトレジスタと、
前記ｎ段のレジスタのうちの使用段数を決定する段数決定回路と
を有することを特徴とするプロセッシングエレメント。
（付記２）
付記１記載のプロセッシングエレメントにおいて、
前記段数決定回路は、前記ｎ段のレジスタのうちの隣接するレジスタの間にそれぞれ配置され、前記隣接するレジスタのうちの前段レジスタから出力された前記保持データと、前記最終段レジスタから出力された前記保持データとが入力され、前記前段レジスタ又は前記最終段レジスタのいずれかの前記保持データを選択して前記隣接するレジスタのうちの後段レジスタに出力するセレクタを有すること
を特徴とするプロセッシングエレメント。
（付記３）
付記１又は２に記載のプロセッシングエレメントにおいて、
前記保持データは、画像処理に用いる空間フィルタの係数であること
を特徴とするプロセッシングエレメント。
（付記４）
付記１乃至３のいずれか１項に記載のプロセッシングエレメントにおいて、
前記クロック信号に同期して前記ｎ段のレジスタのいずれか１つから出力された前記保持データと、外部から入力された入力データとを演算する演算部をさらに有すること
を特徴とするプロセッシングエレメント。
（付記５）
付記４記載のプロセッシングエレメントにおいて、
前記演算部は、前記最終段レジスタから出力された前記保持データと、前記入力データとを演算すること
を特徴とするプロセッシングエレメント。
（付記６）
付記４又は５に記載のプロセッシングエレメントにおいて、
前記演算部は、前記保持データと、前記入力データとを乗算する乗算回路を有すること
を特徴とするプロセッシングエレメント。
（付記７）
付記６記載のプロセッシングエレメントにおいて、
前記演算部は、前記乗算回路から出力されたデータを累積加算する累積加算回路を有すること
を特徴とするプロセッシングエレメント。
（付記８）
付記１又は２に記載のプロセッシングエレメントにおいて、
前記クロック信号に同期して前記ｎ段のレジスタのいずれか１つから出力された前記保持データに基づいて、外部から入力された入力データを演算処理する演算部をさらに有すること
を特徴とするプロセッシングエレメント。
（付記９）
付記８記載のプロセッシングエレメントにおいて、
前記演算部は、前記最終段レジスタに入力される前記保持データに基づいて、前記入力データを演算処理すること
を特徴とするプロセッシングエレメント。
（付記１０）
付記８又は９に記載のプロセッシングエレメントにおいて、
前記演算部は、前記保持データに基づいて、前記入力データの累積加算数が制御される累積加算回路を有すること
を特徴とするプロセッシングエレメント。
（付記１１）
付記７乃至１０のいずれか１項に記載のプロセッシングエレメントにおいて、
前記演算部は、前記保持データに基づいて、演算処理後のデータの出力タイミングが制御されること
を特徴とするプロセッシングエレメント。
（付記１２）
付記４乃至１１のいずれか１項に記載のプロセッシングエレメントにおいて、
前記入力データにビットシフト処理及びビットマスク処理を施して前記演算部に前記入力データを出力するシフト／マスク回路をさらに有すること
を特徴とするプロセッシングエレメント。
（付記１３）
付記１乃至１２のいずれか１項に記載のプロセッシングエレメントを有することを特徴とするリコンフィギャラブル回路。
【図面の簡単な説明】
【０１１１】
【図１】本発明の一実施の形態の実施例１によるプロセッシングエレメント７の概略構成を示す図である。
【図２】本発明の一実施の形態の実施例２によるプロセッシングエレメント７の概略構成を示す図である。
【図３】本発明の一実施の形態の実施例３によるプロセッシングエレメント７の概略構成を示す図である。
【図４】本発明の一実施の形態の実施例４によるプロセッシングエレメント７の概略構成を示す図である。
【図５】本発明の一実施の形態の実施例５によるプロセッシングエレメント７の概略構成を示す図である。
【図６】本発明の一実施の形態の実施例６によるプロセッシングエレメント７の概略構成を示す図である。
【図７】本発明の一実施の形態の実施例７によるプロセッシングエレメント７の概略構成を示す図である。
【図８】本発明の一実施の形態の実施例８によるプロセッシングエレメント７の概略構成を示す図である。
【図９】本発明の一実施の形態の実施例９によるプロセッシングエレメント７の概略構成を示す図である。
【図１０】本発明の一実施の形態の実施例１０によるプロセッシングエレメント７の概略構成を示す図である。
【図１１】本発明の一実施の形態の実施例１１によるプロセッシングエレメント７の概略構成を示す図である。
【図１２】本発明の一実施の形態の実施例１２によるプロセッシングエレメント７及びそれを備えたリコンフィギャラブル回路１の概略構成を示す図である。
【図１３】従来のリコンフィグＬＳＩ１０１の概略構成を示す図である。
【図１４】従来の画像処理用リコンフィグＬＳＩ２０１を説明する図であって、画像処理の対象となる画像領域１１０を示す図である。
【図１５】従来の画像処理用リコンフィグＬＳＩ２０１を説明する図であって、画像処理用の空間フィルタ１１１を示す図である。
【図１６】従来の画像処理用リコンフィグＬＳＩ２０１を説明する図であって、ラインバッファＬＢ０〜ＬＢ３に格納された３行分の画像データｘ００〜ｘ０ｎ、ｘ１０〜ｘ１ｎ、ｘ２０〜ｘ２ｎを示す図である。
【図１７】従来の画像処理用リコンフィグＬＳＩ２０１を説明する図であって、ラインバッファＬＢ０、ＬＢ１、ＬＢ２からの画像データｘ００〜ｘ０ｎ、ｘ１０〜ｘ１ｎ、ｘ２０〜ｘ２ｎの読み出し状態を示す図である。
【図１８】従来の画像処理用リコンフィグＬＳＩ２０１の概略構成を示す図である。
【符号の説明】
【０１１２】
１  リコンフィギャラブル回路
３  シフトレジスタ
３Ｒ１  初段レジスタ
３Ｒｎ−１  第ｎ−１段レジスタ
３Ｒｎ  最終段レジスタ
４  段数決定回路
４Ｓ１、４Ｓｎ−２、４Ｓｎ−１、１５  セレクタ
５  出力端子
７、７ａ、７ｂ、７ｃ  プロセッシングエレメント
１２  演算部
１３  乗算回路
１３ａ、１０５ａ、１３０ａ、１３２ａ、１３４ａ  乗算器
１３ｂ、１９、２１ｂ、２２、２３、１０３ｂ、１０５ｂ、１０６ｂ、１０８ａ、１２４ｂ、１２４ｃ、１２５ｂ、１２５ｃ、１２６ｂ、１２６ｃ、１３０ｂ、１３１ｂ、１３２ｂ、１３３ｂ、１３４ｂ、１３５ｂ  レジスタ
１７、１２４ａ、１２５ａ、１２６ａ  シフト／マスク回路
２１  累積加算回路
２１ａ、１０３ａ、１０６ａ、１３１ａ、１３３ａ、１３５ａ  加算器
１０１  リコンフィグＬＳＩ
１０３、１３７  カウンタエレメント
１０３ｃ  イネーブル信号生成部
１０４、１２１、１２２、１２３  ＲＡＭエレメント
１０４ａ  記憶部
１０５、１３０、１３２、１３４  乗算エレメント
１０６、１３１、１３３、１３４  累積加算エレメント
１０７、１３６  データ遅延エレメント
１０７ａ、１３６ａ  レジスタ群
１０８  イネーブル遅延エレメント
１１０  画像領域
１１１  空間フィルタ
１２４、１２５、１２６  シフト／マスクエレメント
１２７、１２８、１２９  フィルタ処理エレメント
【図１】
2008204360.tif 000003
【図２】
2008204360.tif 000004
【図３】
2008204360.tif 000005
【図４】
2008204360.tif 000006
【図５】
2008204360.tif 000007
【図６】
2008204360.tif 000008
【図７】
2008204360.tif 000009
【図８】
2008204360.tif 000010
【図９】
2008204360.tif 000011
【図１０】
2008204360.tif 000012
【図１１】
2008204360.tif 000013
【図１２】
2008204360.tif 000014
【図１３】
2008204360.tif 000015
【図１４】
2008204360.tif 000016
【図１５】
2008204360.tif 000017
【図１６】
2008204360.tif 000018
【図１７】
2008204360.tif 000019
【図１８】
2008204360.tif 000020