(57)【特許請求の範囲】
【請求項１】
２進表現された複数のデータを加算する回路において、前記複数のデータを同時に入力するための端子と、前記複数のデータのビットすべてに対し一括して加算演算を行い、その加算結果と一次の関係のあるアナログもしくは多値信号を発生する手段と、前記アナログもしくは多値信号をデジタル信号に変換する手段と、を備え、
第１のインバータ回路の出力が第２のインバータ回路の入力と第１の接点において接続され、前記第２のインバータの出力が前記第１のインバータの入力と第２の接点において接続され、電極に生じる電圧信号に基づき、前記第１の接点及び第２の接点間に電位差を生じせしめる演算回路を用いたことを特徴とする半導体演算回路。
【請求項２】
前記複数のデータがそれぞれ１ビットの信号で構成され、それを４項以上一括して加算することを特徴とする前記請求項１記載の半導体演算回路。
【請求項３】
複数の連続したビットで構成されたビットグループを複数項一括して加算することを特徴とした前記請求項１記載の半導体演算回路。
【請求項４】
前記アナログ信号を発生する手段として、電気的にフローティングとされた電極と、前記電極と所定の大きさの容量を介して接続された複数の入力端子を有し、前記入力端子に前記データの所定のビット信号を入力する手段を有したことを特徴とする請求項１ないし請求項３のいずれか１項記載の半導体演算回路。
【請求項５】
前記電極により、オン・オフ状態の制御されるＭＯＳ型トランジスタを少なくともｌつ有したことを特徴とする請求項２ないし請求項４のいずれか１項記載の半導体演算回路。
【請求項６】
前記電極が少なくともｌつのスイッチを介して、所定の電位をもった信号線と接続する手段を有したことを特徴とする請求項２ないし請求項５のいずれか１項記載の半導体演算回路。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、半導体演算回路に係わる。特に、多項の加算演算、采算器における多行加算の分野において、高速かつ小型な回路構成とするための半導体演算回路に関する。
【０００２】
【従来の技術】
半導体演算回路における加算は、従来のバイナリ・デジタル処理では入力データ（本明細書で「データ」とは複数のビットで構成される入力の一項全体を示す）をデータのビット（「ビット」とは一桁の２進数値を示す）毎に分割して処理をし、それぞれに全加算器素子を用いることで実現してきた。
【０００３】
全加算器素子は３入力２出力素子であるために、桁上げ信号を１入力と考えれば、２項演算は問題なく処理できる系を構成できる。
しかしながら、多項を加算する場合には多段に全加算器を組み合わせる必要があり、回路の複雑化・大規模化は免れられない。多項加算処理はさまざまな分野で生じる演算処理であるが、特に四則演算の乗算も多数回の加算によって実現されるように演算処理には必須の処理であり、全加算器に変わる多項加算基本素子の開発が望まれている。
【０００４】
【発明が解決しようとしている課題】
そこで本発明は、多項加算処理を高速あるいは小面積で実現するための半導体演算回路を提供することを目的としている。
【０００５】
【課題を解決するための手段】
本発明の半導体演算回路は、２進表現されたデータを加算する回路において、データを同時に入力するための端子を持ち、前記データのビットすべてに対し一括して加算演算を行い、その加算結果と一次の関係のあるアナログ信号を発生する手段と、前記アナログ信号をデジタル信号に変換する手段を備え、第１のインバータ回路の出力が第２のインバータ回路の入力と第１の接点において接続され、前記第２のインバータの出カが前記第１のインバータの入力と第２の接点において接続され、電極に生じる電圧信号に基づき、前記第１の接点及び第２の接点間に電位差を生じせしめる演算回路を用いたことを特徴とする。
【０００６】
【実施例】
以下に実施例を上げ本発明を詳細に説明するが、本発明がこれら実施例に限定されるものではないことはいうまでもない。
特に、一括加算を行う素子としてニューロンＭ０Ｓトランジスタを用いる例を示すが、加算結果と一次の関係のあるアナログ信号を発生する回路素子ならばよく、例えば、加算結果と一次の関係のあるアナログ電流を発生する回路でも構わない。
【０００７】
また、図１に本発明で用いるデータ、ビット、ビットグループという言葉の概念を示す。
（第１の実施例）
図２は、加算器の概念を示したものである。従来は、図２（ａ）に示すようにビットデータを２個または３個入力することで一つのキャリー（桁上げ信号）と一つの加算結果を出力する回路のみ存在していたが、本実施例（図２（ｂ））では、７入力を一括して加算し、計３個のの出力をする回路構成をとるように、４項以上の入力を加算する回路となっている。
【０００８】
図３は、図２（ｂ）をより詳細に示した回路図である。
この回路は、７つの入力ビットデータを一括加算する回路である。７本の出力端子３３１、３３２、３３３、３３４、３３５、３３６、３３７の内バイナリの「０」を出力している端子の数で加算結果を表現する。入力ビットは、３０１、３０２、３０３、３０４、３０５、３０６、３０７の７つの入力端子に与える。この端子は、３１１、３１２、３１３、３１４、３１５、３１６、３１７のフローティングとされた電極に所定の大きさの容量を介して結合し、フローティング電極に入力ビットの加算平均で与えられるアナログ電圧（オフセット電圧があってもよい）を生じさせる。このフローティング電極が、ニューロンＭＯＳトランジスタ（発明者：柴田直、大見忠弘、特開平３−６６７９号公報および特開平４−８１６９７１号公報）のゲート電極となり、このニューロンＭ０Ｓトランジスタはそれぞれ設定しきい値の異なるニューロンＭ０Ｓインバータ回路３２１、３２２、３２３、３２４、３２５、３２６、３２７を構成する。設定しきい値は、入力端子と並列の６端子にＶDDもしくはＧＮＤ電位を与えることで設定した。ニューロンＭ０Ｓインバータ回路３２１は一括加算結果（０〜７）が１以上で、「０」を出力端子３３１に出力し、同インバータ回路３２２が一括加算結果が２以上で「０」を３３２に出力、同インバータ回路３２３〜３２６と続き、そして同インバータ回路３２７が一括加算結果が７以上で「０」を３３７に出力するという回路構成をとる。
【０００９】
なお、本実施例では、７本の出力端子の内バイナリの「０」を出力している端子の数で加算結果を表現する回路構成であるが、出力がバイナリもしくはデジタル信号である回路構成ならば、例えば、０〜７の加算結果を３ビットの２進数で出力しても、０から７の離散値で表現しても構わない。また、本実施例ではニューロンＭＯＳインバータ回路を用いているが、設定しきい値に対しバイナリもしくはデジタル信号出力がなされる回路構成であればよく、例えば、ニューロンＭＯＳセンスアンプ型回路（発明者：小谷光司、柴田直、大見忠弘、特願平７−２４４１号参照。なお、図４に実施例の一つを示す）でも構わない。また、本実施例では設定しきい値を付加した６端子にＶDDもしくはＧＮＤ電位を与えることで設定したが、フローティングゲート電荷をリセットする機能である入力の減算機能を用いてもよく、ニューロンＭＯＳセンスアンプ型回路の左右のノードに与える電位差で設定しても構わない。
【００１０】
（第２の実施例）
本発明の第２の実施例は、複数の連続したビットで構成されたビットグループを複数項一括して加算する半導体演算回路である。
本実施例では、入出力を連続した３ビットのグループビットとして取り扱うことで９項までの一括加算を行う半導体演算回路について示すが、本発明が３ビットのグループ化に縛られることはなく、例えば２ビットのグループ化や４ビットのグループ化でもよい。また、９項の一括加算を例として取り上げるのは、９項一活加算が３ビットのブロック化による最も効率のよい項数であるためであり、従来技術と比較の上では複数項以上の一括加算であれば何項の加算でも構わない。
【００１１】
３ビットブロック化一括加算回路とは、前記図２の（ｂ）で示した一括加算回路の入出力のビットそれぞれが、グループ化されたビットに置き換えられた回路である。このブロック化の効果は１ビットの一括加算器と比較して出力数を抑圧することができるため、少ない項数の加算には特に効果を発揮する。
図５は、３ビットグループ化手法の効果を示した図である。充分な桁数のあるデータを９行加算する演算について、全加算器を用いた場合、ビット一括加算手法を用いた場合、３ビットグループ化手法を用いた場合それぞれについて示している。
【００１２】
（ａ）従来の全加算器を用いた場合、図中の四角で囲った部分一つにつき全加算器が一つ必要であり、それぞれに加算結果と桁上げ信号が生じるため、１段目の全加算器では９行の入力をしたところで６行もの結果が残る。以降図示はしていないが２段目の全加算器で６行を入力し、４行の結果を得、３段目は４行の入力をし、という繰り返しにより加算が進んでいくことになる。この９行が６行になり、ついで４行になるというのは全加算器が３入力２出力回路であることに極めて関係が深く、行数が２／３ずつ減つていくことになる。
【００１３】
（ｂ）前記第１の実施例に示した１ビット一括加算手法を用いると、この一括加算器が９入力４出力であるために、９行の入力データを４行にすることができる。これは全加算器を用いた場合の６行よりも一括加算の効果により行数を大きく削減できるため、高速で加算が実現できる。
（ｃ）本第２の実施例で用いた３ビットのグルーブ化アルゴリズムを用いると、各入力データは３ビットというグループ単位で用いられるため、３ビットグループ９行の加算は図中の四角の中の数値すべてが一括して入力され加算される。例えば、５０１の一括加算により３ビットのグループ化された桁上げ成分５０３と３ビットのグループ化された加算結果５０２が生じることになる。このように３ビット９項の―括加算器は９入力２出力回路となるために、９行の入力データを一気にたった２行に減らすことができ、ビットブロック化手法の効果は歴然としている。
【００１４】
図６は、３ビットのグループ化による９行の一活加算器の回路図である。この回路は大きく分けてステージ１と呼ぶ桁上げ信号（０〜７）発生部６０１とステージ２と呼ばれる加算結果（０〜７）を出力する部分６０２で構成される。それぞれのステージの出力結果は、７本の出力端子６１１〜６１７と６２１〜６２７中「１」を出力している端子数で与えられる。また、ステージ２の加算結果は（一括加算結果一桁上げ信号×８）という演算により実現されるために、ステージ２への入力は一括加算結果と（桁上げ信号＝ステージ１の出力）を切り替える必要がある。そのためのスイッチ群が「ＩＮＰＵＴ／ＣＡＲＲＹＳＥＬＥＣＴＯＲ」６０３である。ステージ１とステージ２はどちらもほぼ同様の構成をとり、図中三角形で示された７つの設定しきい値の異なる論理決定回路で構成される。
【００１５】
図７は、前記論理決定回路としてたニューロンＭ０Ｓセンスアンプ型回路を用いた例である。なお、センスアンプ部は図４に示したものと同じであるが、スイッチとして用いている４つのＭＯＳトランジスタについて省略している。３ビットをグループ化した９つの入力データは、フローティングとされた電極７０１、７０２に上位ビットから４：２：１という結合容量比をもつように入力端子に与えられる。それにより、フローティング電極に入力データの加算平均で与えられるアナログ電圧（オフセット電圧があってもよい）が生じる。このフローティング電極が、ニューロンＭ０Ｓトランジスタ７０３、７０４のゲート電極となっており、それぞれのフローティングゲートの電圧の高低により各々のニューロンＭ０Ｓトランジスタのソース−ドレイン間のコンダクタンスが変化し、そのコンダクタンスにより出力ノード７０５、７０６の電位差を生じさせる。
【００１６】
なお、本実施例のセンスアンプ回路は、両ニューロンＭＯＳトランジスタにデータを入力する構成をとったが、片側にのみデータを入力するセンスアンプでもよく、電圧駆動型のセンスアンプでもよい。また、論理決定回路は、フローティングゲートの電位に基づきしきい演算のできる回路ならどのような回路でもよく、例えばニューロンＭＯＳインバータ回路を用いてもよい。
【００１７】
図８は、ステージ２での減算を実現するためのタイミングチャートである。使用しているダイナミック型センスアンブがリセット、プリチャージ、増幅の３サイクルの繰り返しで動作する（この動作白体は前記センスアンプの特許に詳細を述べてある）。ステージ１の３サイクルに対し、ステージ２は１サイクル遅れて動作することで内部でパイプラインの処理をしている。
【００１８】
図９は、ステージ１の７つのセンスアンプのうち、一括加算結果（０〜６３）に対し、７．５に相当するしきい値を持っセンスアンプと２３．５に相当するセンスアンブ回路についての動作波形である。波形９０１は、リセットクロック、波形９０２はブリチャージクロック、波形９０３は増幅クロックの波形である。波形９０４、９０５は入力した電圧であり、しきい値７．５に相当する回路には加算結果７に相当する電圧と加算結果８になる入力をし、しきい値２３．５に相当するセンスアンプには、加算結果が２３と２４という入力をし、正しいしきい演算を行っていることを測定している。センスアンブの両出力ノードの測定結果が９０６、９０７である。プリチャージ時に両出力ノードはＶDDになり、次の増幅サイクルで結果の判断、その次のサイクルでその結果をラッチしている。すなわち、「０」と「１」に分かれた部分が結果を示している。「７」を入力した場合と「８」を入力した場合で出力結果が反転しているため、正しく「７．５」をしきい値として演算が行われていることがわかる。また、「２３．５」のしきい値についても「２３」と「２４」のそれぞれの入力で結果が反転していることから正確にしきい演算をしていることがわかる。
【００１９】
（第３の実施例）
本発明の第３の実施例は、乗算の加算演算を行う回路を、一括加算器を用いることで高速にかつ小さいサイズで実現することを特徴とする回路である。なお、本発明での一括加算器の使用実施例はこの乗算器のみ記載しているが、用途としてはその他画像処理などにも用いられ、乗算器に限定されるものではない。
【００２０】
１６ビット乗算器の場合、「Ｂｏｏｔｈ  Ｄｅｃｏｄｅｒ」と呼ばれる従来から存在する手法を用いて筆算を展開すると、図１０のように最大９行に展開され、これを高速に加算する必要がある。従来の全加算器はこの加算に５段の全加算器を組み合わせる必要があり、速度的、面積的な問題があったが、図７で示した３ビット９行の一括加算器を図１１のように組み合わせる（図中ＦＳＵが一括加算器である）ことでたった一段の一括加算器で回路が実現できる。
【００２１】
本実施例では、３ビット９項の一括加算器を用いたため１６ビット乗算器に限定したが、乗算器の筆算で生じた行数を一段で一括加算できる加算器を用いればどのような乗算器にも適応でき、例えば、４ビット１７項一括加算器を用いれば最大３３ビットの乗算器を実現できる。
６４ビット乗算器は、「Ｂｏｏｔｈ  Ｄｅｃｏｄｅｒ」を使用することで、最高３３行の行が生じることから、図７の一括加算器を用いると２段の一括加算器の組み合わせで計算が実現できる。この組み合わせを図ｌ２に示す。このユニットを各３ビットのグループ毎に配置することで６４ビット乗算器の連続加算部が実現できる。
【００２２】
また、１段目と２段目の一活加算器間はパイプライン処埋ができ、図１３に示すように１段目と２段目の間は１サイクルのずれで動作する。パイプライン間のメモリは、センスアンブのラッチ機能を使用していることも特徴とされる。
図１４に示したのが、６４ビット乗算器を構成するために従来の全加算器を用いた場合、ビットブロック化をしない回路の例としての代表として図３の７入力３出力の一括加算器を用いた場合と、ビットブロック化として３ビット９行の一括加算器を使用した場合の各パラメータの比較である。速度は、１ミクロンの設計ルールの回路についてシミュレーションで求めた結果である。Ｃａｐ．数はνＭＯＳの容量のサイズを表すもので最小の入力の容量サイズを１としている。７入力３出力の一括加算器を用いた場合、面積も段数もＣＭＯＳ構成よりは少ないが、低速であるという問題がある。３ビット９行一括加算回路を用いた場合がバイプライン処理により最も高速で実現でき、ＣＭＯＳ全加算器の場合と比較して約１／３のトランジスタ数で実現できるが、非常に大きな容量が必要である。ただし、１容量は１トランジスタよりも小さくてよく、更に３次元構造容量、高誘電率絶縁膜の採用などのＤＲＡＭで使用されている様々な技術を適用することでこの容量が占有する面積は極小化され、ＣＭＯＳ全加算器よりも回路規模は小さくできる。また、ＣＭＯＳ構成では、３，０８２個８段もの全加算器を組み合わせるために配置する配線は膨大な面積に及ぶ。一括加算器では使用する加算器数が少ない上、定型的パタ一ンの繰り返しであるために加算器−加算器間の配線も容易である。
【００２３】
本実施例では、３ビット９項の一括加算器を用いたが、一括加算する手法を用いれば何ビットのブロック化したものでもブロック化していないものでも構わない。
【００２４】
【発明の効果】
請求項１に係わる発明によれば、一括加算手法を採用することで多項の加算演算処理が高速にかつ簡易に処理できる。
請求項２に係わる発明によれば、1ビットのデータを高速にかつ簡易に加算でき、また、各入力に重みがないために使用するアナログ信号をデジタル信号に変換する回路のしきい演算精度要求がゆるくてよい。
【００２５】
請求項３に係わる発明によれば、連続したビット列をまとめて処理するために出力される行数が抑制され少ない出力数の一括加算が実現でき、高速加算に寄与できる。
請求項４に係わる発明によれば、容量結合による電圧の加算平均が実現できるために簡潔な回路で加算が実現できる。
【００２６】
請求項５に係わる発明によれば、加算平均された入力がＭＯＳ型のトランジスタにより容易に演算ができる。
請求項６に係わる発明によれば、スイッチを介してフローティング電極に蓄えられた剰余電荷をなくすことができるために高い信頼性を持ちかつ多入力の―括加算器が実現できる。また、スイッチの機能により、フローティングゲート上の減算機能が実現できるために簡潔な回路構成が実現される。
【００２７】
また、請求項１に係わる発明によれば、ポジティブフィードバックのかかる回路構成のために出力が必ずバイナリの「０」もしくは「１」が出力されるための次段への接続に精度の間題が解決される。また、クロック制御が容易であるためにパイプライン処理に適しており、高速化にさらに寄与できる。
【図面の簡単な説明】
【図１】データ、ビットデータ、ビットグループの概念を示す図である。
【図２】加算器の概念図を示し、図２（ａ）は従来使用されてきた全加算器、図２（ｂ）は実施例に係る一活加算器である。
【図３】本発明の第1の実施例を示す回路の構成図である。
【図４】ニューロンＭＯＳ論理決定回路として使用できるセンスアンプ型ニューロンＭＯＳ論値回路の回路図。
【図５】９行のデータの加算において基本素子による出力行数の違い。（ａ）全加算器を使用した場合、（ｂ）１ビット一括加算器を使用した場合、（ｃ）３ビットグループ化手法を用いた一括加算器の場合。
【図６】３ビットグループ化したデータを９行加算する一括加算器の回路図。
【図７】図６の一括加算器の論理決定回路においてセンスアンプ型ニューロンＭＯＳ回路を使用した場合の回路図。
【図８】図６の一括加算器のステージ１とステージ２の間のタイミングチャート。
【図９】図６の一括加算器のステージ１の回路の一部の動作測定図。
【図１０】１６ビット乗算器の筆算。
【図１１】１６ビット乗算器の一括加算器の組み合わせ。
【図１２】３３行の加算を行う一括加算器の組み合わせ。
【図１３】図１２の回路のタイミングチャート。
【図１４】６４ビット乗算器の加算部の基本素子別のバラメータ。
【図１】
0003706869.tif 000002
【図２】
0003706869.tif 000003
【図３】
0003706869.tif 000004
【図４】
0003706869.tif 000005
【図５】
0003706869.tif 000006
【図６】
0003706869.tif 000007
【図７】
0003706869.tif 000008
【図８】
0003706869.tif 000009
【図９】
0003706869.tif 000010
【図１０】
0003706869.tif 000011
【図１１】
0003706869.tif 000012
【図１２】
0003706869.tif 000013
【図１３】
0003706869.tif 000014
【図１４】
0003706869.tif 000015