(57)【要約】【課題】  コンパクトで高速なロジック・イン・メモリ等の回路を実現することが可能であると共に、様々な演算が可能であり汎用性の高い演算回路を提供する。【解決手段】  一方の電極と他方の電極との間に異なる極性の電圧を印加することにより、抵抗状態が可逆的に変化する可変抵抗素子Ｒを有するメモリ素子と、このメモリ素子の両端にそれぞれ１個以上接続されたトランジスタＭＲＤ，ＭＲＳ，ＭＷ１，ＭＷ２とを備え、このトランジスタＭＲＤ，ＭＲＳ，ＭＷ１，ＭＷ２を通じて、メモリ素子の両端にそれぞれ電位が供給されることにより、メモリ素子へのデータＳの記憶や、トランジスタのいずれかを介して入力された外部データＸ，Ｗ，Ｙ１，Ｙ２に対する演算が行われ、演算の結果がメモリ素子から出力される演算回路を構成する。【選択図】        図１
2006048298.tif 000002
【特許請求の範囲】
【請求項１】
一方の電極と他方の電極との間に、異なる極性の電圧を印加することにより、抵抗状態が高抵抗状態と低抵抗状態との間を可逆的に変化する可変抵抗素子を有するメモリ素子と、
前記メモリ素子の両端に、それぞれ１個以上接続されたトランジスタとを備え、
前記トランジスタを通じて、前記メモリ素子の両端にそれぞれ電位が供給されることにより、前記メモリ素子へのデータの記憶や、前記トランジスタのいずれかを介して入力された外部データに対する演算が行われ、
前記演算の結果が、前記メモリ素子から出力される
ことを特徴とする演算回路。
【請求項２】
前記メモリ素子は、２つの前記可変抵抗素子の各素子の前記一方の電極を接続して共通端子とし、２つの前記可変抵抗素子の各素子の前記他方の電極を独立させてそれぞれ端子を設けて、合計３端子として構成され、前記メモリ素子の各前記他方の電極に設けられた端子に、それぞれ１個以上前記トランジスタが接続され、前記演算の結果が前記共通端子から出力されることを特徴とする請求項１に記載の演算回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算器とメモリとを一体化させた演算回路に係わる。
【背景技術】
【０００２】
不揮発性デバイスを使って論理回路を構成することにより、電源を切っても情報を失わない回路や、別チップになったＲＡＭとのデータ転送を必要としない回路を実現するために、ロジック・イン・メモリと呼ばれる構成の研究が進められている。
【０００３】
そして、ロジック・イン・メモリで使用する不揮発性デバイスとして、例えばフローティングゲートのＭＯＳトランジスタ，強誘電体デバイス，ＴＭＲデバイス等を用いたものが提案されている（例えば、非特許文献１〜非特許文献４参照）。
【０００４】
ロジック・イン・メモリとは、現在の回路では分かれて配置されている、演算器とメモリ（記憶装置）とを一体化させたものである。演算器とメモリとを一体化させることにより、現在の集積回路で問題となっている、配線遅延に起因する性能のボトルネックを解消することが可能になる。
【０００５】
そして、メモリに演算機能を分散させて持たせようとすると、通常では回路が大きくなってしまうが、不揮発性の記憶機能を有するデバイスを活用すれば、コンパクトで高性能な回路を実現することができる。
このコンパクトで高性能な回路が実現できる理由を、以下に説明する。
【０００６】
通常のディジタル回路では、スタティック回路と呼ばれる構成、即ちＳＲＡＭの基本回路のように双安定なフリップ・フロップを記憶回路として使う構成が採用されている。
この回路は、双安定であるため、高速動作に向いており、静的消費電流も少ないというメリットがある。
しかし、６素子で１ビットのメモリを構成するため高集積化には向いていない。
【０００７】
一方、ダイナミック回路と呼ばれる構成、即ちＤＲＡＭの基本回路を記憶回路として使う構成とすれば、２素子で１ビットのメモリを構成できるので高集積化に向いているというメリットがある。
しかし、この回路は、単安定で破壊読み出しであるため、再書き込み（リフレッシュ）や小信号増幅のためのプリチャージが必要となり、高速動作の障害になると共に消費電流も増加することになる。
このように、ダイナミック回路を採用した場合には、リフレッシュ等の処理をしないと高速で動作させることができないので、一般には採用されていない。
【０００８】
そこで、不揮発性の記憶機能を有するデバイスを記憶回路に導入すれば、再書き込み（リフレッシュ）や小信号増幅のためのプリチャージが不要となり、少ない素子数で実現できる上述のダイナミック回路を用いた論理回路を、動作制限無しで使用することが可能になる。
これにより、コンパクトで高性能な論理回路が実現できることになる。
【０００９】
次に、このダイナミック回路を用いた論理回路の構成と動作原理を説明する。
ダイナミック回路を用いた論理回路では、論理演算を行う回路として、機能パスゲート（ＦＰＧ: Functional PassGate）と呼ばれる構成を採用する。この機能パスゲートとは、演算素子とメモリ素子とパスゲートトランジスタとを有する構成であり、メモリ素子に演算用の記憶データを記憶させ、この記憶データを用いて演算素子により演算を行い、演算素子による演算結果がパスゲートトランジスタのゲートに入力されて、演算結果に応じてパスゲートトランジスタがオン・オフされるものである。
【００１０】
ダイナミック回路では、機能パスゲートのパスゲートトランジスタをマッチラインに接続し、例えば、パスゲートトランジスタの一方の端子側のマッチラインと電源電圧との間に、プリチャージトランジスタを設け、パスゲートトランジスタの他方の端子側のマッチラインとグランド電位との間にＥｖａｌｕａｔｉｏｎトランジスタを設ける。さらに、プリチャージトランジスタ及びＥｖａｌｕａｔｉｏｎトランジスタの各ゲートにプリチャージ線を接続すると共に、プリチャージ線によって、プリチャージトランジスタ及びＥｖａｌｕａｔｉｏｎトランジスタのいずれか一方のみのトランジスタがオンになるように構成する（例えば、非特許文献４の図２及び図４参照）。
【００１１】
機能パスゲートの動作は、書き込み動作と、演算・読み出し動作に大別される。
書き込み動作では、メモリ素子に、例えば書き込み用の電圧又は電流を加えて、記憶データを書き込む。
演算・読み出し動作では、マッチラインをプリチャージする過程と、外部入力と記憶データとの演算を行う過程との順に実行される。具体的には、まず、プリチャージトランジスタをオンにしてマッチラインに電荷をプリチャージする。その後、プリチャージトランジスタをオフにして演算を行う。このとき、マッチラインにプリチャージされた電荷が、パスゲートトランジスタとＥｖａｌｕａｔｉｏｎトランジスタを通ってグランド電位に抜けるか否かが、演算結果に応じて変わるため、これにより出力が１であるか０であるかが決定される。
なお、出力は、次回のプリチャージが始まるまでは保持されるので、機能パスゲートは出力がラッチされる機能を有する。
【００１２】
また、機能パスゲートを直列に接続すればＡＮＤ（論理積）演算になり、並列に接続すればＯＲ（論理和）演算になるので、演算結果同士の演算も簡単にできる。
【００１３】
続いて、各種不揮発性デバイスを使ったロジック・イン・メモリについて、簡単に説明する。
まず、不揮発性デバイスを使ったロジック・イン・メモリの例として、強誘電体メモリ（ＦｅＲＡＭ）素子を使った場合を説明する（非特許文献１参照）。
強誘電体メモリ素子には、ＭＦＳ(Metal Ferroelectric Semiconductor )ＦＥＴと呼ばれる強誘電体デバイスが用いられている。このＭＦＳＦＥＴは、電極・強誘電体薄膜・半導体の３層からなり、通常のＭＯＳＦＥＴ（ＭＯＳ電界効果トランジスタ）におけるＳｉＯ２層を強誘電体薄膜に置き換えた構造をしている。
【００１４】
そして、強誘電体では、外部からある電圧Ｖｃを越える電圧Ｖが印加された場合に、電圧Ｖと強誘電体内の分極Ｐとの関係がヒステリシスを持つ。そのため、ＭＦＳＦＥＴの閾値電圧Ｖｔｈは、強誘電体の残留分極状態によって変化する。
従って、残留分極状態によって変化する閾値電圧を、記憶データの１と０とに対応させることができる。
【００１５】
ＭＦＳＦＥＴをメモリ素子として用いた場合には、次に挙げる利点がある。
（１）フラッシュ・メモリ等に使われているフローティングゲートＭＯＳトランジスタと比較して、書き込み電圧が低く、±６Ｖ程度である。
（２）記憶データを破壊せずに読み出すことができる。
（３）強誘電体内における分極変化が高速であることから、高速書き込みが可能である。
【００１６】
このＭＦＳＦＥＴを用いて、入力データと記憶データとを演算する演算回路を構成することができる。
具体的には、例えば、ＭＦＳＦＥＴの一方の端子Ａを接地し、他方の端子Ｂをマッチライン（電位Ｖｍ）に接続すると共に、他方の端子Ｂにプリチャージ用のトランジスタを接続して、上述した機能パスゲートを構成する（非特許文献１参照）。
そして、ＭＦＳＦＥＴのゲート電位Ｖｇに入力データｓ＝１，０を当てはめると共に、ＭＦＳＦＥＴの閾値電圧Ｖｔｈに記憶データｂ＝１，０を当てはめると、機能パスゲートのスイッチング特性ｆ（ｓ，ｂ）を次のように定義することができる。
ｆ（ｓ，ｂ）＝１(ＡとＢは接続)
ｆ（ｓ，ｂ）＝０（ＡとＢは非接続）
これは、マッチラインの電位Ｖｍが接地電位（ＧＮＤ）に落ちていればｆ（ｓ，ｂ）＝１であり、それ以外であればｆ（ｓ，ｂ）＝０であることを示している。
２種類の電圧閾値Ｖｔｈ０，Ｖｔｈ１が、Ｖｔｈ１＞Ｖｔｈ０であるとき、３種類のゲート電圧Ｖｇ０，Ｖｇ１，Ｖｇ２を、Ｖｇ２＞Ｖｔｈ１＞Ｖｇ１＞Ｖｔｈ０＞Ｖｇ０となるように定義する。
このとき、Ｖｇ０をｂ＝０に、Ｖｇ１をｂ＝１に当てはめれば、Ｓ＝１，ｂ＝０のときだけｆ（ｓ，ｂ）＝１になるので、ｆ（ｓ，ｂ）＝s&~ｂとなって、sと~bの論理積が得られる。一方、Ｖｇ１をｂ＝０ に、Ｖｇ２をｂ＝１に当てはめれば、ｓ＝０，ｂ＝１のときだけｆ（ｓ、ｂ）＝０になるので、ｆ（ｓ，ｂ）＝s|~bとなって、sと~bの論理和が得られる。
このように、入力データｓの１／０に対応するゲート電圧を３値にすれば、記憶データｂとのＯＲ／ＡＮＤ演算を行うことができる。
【００１７】
さらに、この応用例として、連想メモリのひとつであるＣＡＭ（Content Addressable Memory）と呼ばれる一致検索回路を構成することができる。
ビット単位の一致を検出するのはＥＸＯＲ演算であり、このＥＸＯＲ演算は論理積を計算するＦＰＧを２つ並列に接続すれば実行することができる。このＦＰＧを２つ並列に接続した構成を、１ワード分並べて、どれかひとつでも不一致があったら出力が「０」になるように組み合わせることにより、一致検索回路を構成することができる。
そして、このようにＭＦＳＦＥＴで回路を組むことにより、例えば１６ビットの一致検出回路を、ＳＲＡＭベースのスタティック回路では１６０個のトランジスタを要するのに対して、ＭＦＳＦＥＴベースのダイナミック回路では６４個のトランジスタで実現することができる（非特許文献１参照）。
【００１８】
次に、不揮発性デバイスとして強誘電体キャパシタを用いたロジック・イン・メモリについて説明する（非特許文献２及び非特許文献３参照）。
強誘電体キャパシタは、通常のキャパシタの絶縁膜を強誘電体薄膜に置き換えた構造を有するものであり、強誘電体キャパシタの両端に異なる電圧がかかると分極が生じる。そして、強誘電体キャパシタの残留分極の状態が、電圧を印加する前の残留分極の状態及び電圧印加時の電位差によって決まる。
そこで、強誘電体キャパシタの両端に印加する電圧Ｖｙ１，Ｖｙ２を２つの入力データｙ１，ｙ２に当てはめ、残留分極状態を記憶データＳに当てはめることにより、２つの入力データｙ１、ｙ２による演算結果を、残留分極状態として保存することができる。
この演算結果は、電源をオフにしても保存される。
【００１９】
このとき、残留分極状態即ち記憶データＳによって、２つの入力データｙ１，ｙ２間の演算が、ＡＮＤ（論理積）演算又はＯＲ（論理和）演算に変化する。
また、外部入力データｙ１又はｙ２と記憶データＳとの間のＡＮＤ演算やＯＲ演算を行うこともできる。
【００２０】
従って、強誘電体キャパシタにより、論理演算機能とメモリ機能とを同時に実現することが可能である。
そして、強誘電体キャパシタとパスゲートトランジスタとを接続して、前述した機能パスゲートを構成することができる。
さらに、この機能パスゲートをオン・オフするダイナミック回路を構成することにより、通常のＣＭＯＳスタティック回路による論理ゲート及びメモリで構成された基本回路が、１つの機能パスゲートだけで実現できる。例えば、ＣＭＯＳスタティック回路であれば１４個のトランジスタを必要とした論理演算とラッチの回路を、わずか５個のトランジスタで実現することができる（非特許文献３参照）。
このように、強誘電体キャパシタによるダイナミック回路による論理回路を構成すれば、同様機能を有するスタティックなＣＭＯＳ回路による論理回路と比較して、論理回路をコンパクトに構成することができる。
【００２１】
次に、不揮発性デバイスを使ったロジック・イン・メモリの最後の例として、ＭＲＡＭ（磁気ランダムアクセスメモリ）等に使われているＴＭＲ（強磁性トンネル磁気抵抗効果）素子を用いたものを説明する（非特許文献４参照）。
ＴＭＲ素子とは、外部磁界により磁化方向が変化する強磁性層（磁化自由層）と、極薄い絶縁層と、外部磁界に依存せず磁化方向が一定の強磁性層（磁化固定層）の３層が積層された構造である。
このＴＭＲ素子は、外部磁界により磁化自由層の磁化の向きが変化することによって、電気抵抗が増減する性質を有する。即ち、磁化自由層と磁化固定層の磁化の向きが平行であるときに抵抗が小さくなり、反平行であるときに抵抗が大きくなる。
従って、このＴＭＲ素子の抵抗値を、記憶データとして記憶させることができる。
【００２２】
ＴＭＲ素子をメモリ素子として動作させるためには、例えば、各ＴＭＲ素子に対して、磁化自由層の強磁性体の磁化容易軸方向に平行に書き込み線を配置し、磁化自由層の強磁性体の磁化困難軸の方向に平行にビット線を配置する。
そして、ＴＭＲ素子にデータを書き込む際には、ビット線と書き込み線にそれぞれ電流を流すことにより、これらの電流による磁界の合成磁界の向きに応じて、ＴＭＲ素子に「１」「０」のデータが書き込まれる。より正確には、磁化自由層の強磁性体の磁化困難軸の方向に沿って書き込み線による磁界が発生し、これにより磁化自由層の強磁性体の抗磁力を小さくする。同時に、磁化自由層の磁性体の磁化容易軸の方向に沿ってビット線による磁界が発生し、この向きによって 「１」「０」のデータが書き込まれる。
一方、ＴＭＲ素子に書き込まれたデータを読み出す際には、ビット線からＴＭＲ素子に電流を流して、流れる電流の大小によって、データ「１」「０」を判別する。
【００２３】
そして、例えば、２つのＴＭＲ素子Ｒｓ，Ｒｓ´を相補的に配置して、これら２つのＴＭＲ素子Ｒｓ，Ｒｓ´の間に挟まれた読み出し用トランジスタと、パスゲートトランジスタとにより機能パスゲートを構成することができる（非特許文献４の図４参照）。
２つのＴＭＲ素子Ｒｓ，Ｒｓ´のそれぞれに対応してビット線ＢＬ１，ＢＬ２を配置している。
そして、記憶データを書き込む際には、ビット線と書き込み線が発生する磁界により、記憶データを書き込む。
書き込まれたデータを読み出す際には、読み出し用トランジスタをオンにして、ＴＭＲ素子に電流を流す。
演算を行う際には、一方のビット線ＢＬ１に外部入力に対応する電圧を印加する。外部入力と記憶データとの演算結果に応じて、パスゲートトランジスタのゲート電圧が変化して、パスゲートトランジスタのオン・オフ状態が変化する。
このような構成とすることにより、外部入力と記憶データ間のＡＮＤ（論理積）演算を行うことができる。
【００２４】
【非特許文献１】木村、羽生、亀山「強誘電体デバイスを用いたロジックインメモリＶＬＳＩとその応用」電子情報通信学会論文誌  Ｃ，Ｖｏｌ．Ｊ８３−Ｃ，Ｎｏ．８，２０００年８月，ｐ．７４９−７５６
【非特許文献２】木村、羽生、亀山、藤森、中村、高須「強誘電体デバイスを用いたロジックインメモリＶＬＳＩの構成」，電子情報通信学会論文誌  Ｃ，Ｖｏｌ．Ｊ８６−Ｃ，Ｎｏ．８，２００３年８月，ｐ．８８６−８９３
【非特許文献３】高須秀視「強誘電体のロジック応用」ＦＥＤ  Ｒｅｖｉｅｗ．, ｖｏｌ．２，Ｎｏ．７，２００３年２月２４日号，ｐ．１−２４
【非特許文献４】木村、羽生、亀山「不揮発性デバイスを用いたロジックインメモリＶＬＳＩの構成」信学技報  ＴＥＣＨＮＩＣＡＬ  ＲＥＰＯＲＴ  ＯＦ  ＩＥＩＣＥ． ，ＩＣＤ  ２００３−５，２００３年４月，Ｐ．２３−２７
【発明の開示】
【発明が解決しようとする課題】
【００２５】
しかしながら、上述した３種類の不揮発性デバイスを用いてロジック・イン・メモリを構成した場合にも、いくつかの問題点がある。
【００２６】
まず、ＭＦＳＦＥＴを使ったものでは、以下に挙げる問題点がある。
第１に、フローティングゲートＭＯＳトランジスタと比較して、書き込み電圧が低くなるが、それでもまだ通常のＣＭＯＳ回路の電源電圧に比べれば大き過ぎるので、別電源または昇圧回路が必要になる。
第２に、ＡＮＤ演算とＯＲ演算とを切り替えるのに、外部入力データにオフセットを与えているので、ゲート電圧が３値になり、周辺回路が複雑になる。
第３に、外部入力データと記憶データとの間の演算は可能であるが、２つの外部入力データ間の演算をできる構成にはなっていない。
【００２７】
これに対して、強誘電体キャパシタを使ったものでは、２つの外部入力データ間の演算を行うことができ、また外部入力データと記憶データとの間の演算を行うこともできる。
しかし、強誘電体キャパシタを使ったものでは、次に挙げる問題点が残る。
第１に、演算の結果、記憶データの内容が変化するため、セット動作又はリセット動作が必要になる。
第２に、強誘電体キャパシタの占有面積が大きいため、高集積化には向いていない。
【００２８】
また、ＴＭＲ素子を使ったものには、以下に挙げる問題点がある。
第１に、外部入力データと記憶データとの間のＡＮＤ（論理積）演算はできるが、ＯＲ（論理和）演算ができない。
第２に、２つの外部入力データ間の演算をできる構成にはなっていない。
【００２９】
従って、以下の条件を全て満たす不揮発性デバイスがあれば、ロジック・イン・メモリとして理想的な構成とすることができると考えられる。
第１に、高電圧を必要とせず、ＣＭＯＳ回路の電源電圧程度の電圧で動作すること。
第２に、外部入力データと記憶データとのＡＮＤ演算及びＯＲ演算が共に可能であり、これらの演算の切り替えが可能であること。
第３に、２つの外部入力データ間のＡＮＤ演算及びＯＲ演算が共に可能であり、記憶データに応じてＡＮＤ演算とＯＲ演算とが切り替えられること。
第４に、記憶データを破壊せずに演算する場合と、演算結果を記憶データとして残す場合と、使い方に応じて切り替えられること。
【００３０】
上述した問題の解決のために、本発明においては、コンパクトで高速なロジック・イン・メモリ等の回路を実現することが可能であると共に、様々な演算が可能であり汎用性の高い演算回路を提供するものである。
【課題を解決するための手段】
【００３１】
本発明の演算回路は、一方の電極と他方の電極との間に、異なる極性の電圧を印加することにより、抵抗状態が高抵抗状態と低抵抗状態との間を可逆的に変化する可変抵抗素子を有するメモリ素子と、このメモリ素子の両端にそれぞれ１個以上接続されたトランジスタとを備え、このトランジスタを通じて、メモリ素子の両端にそれぞれ電位が供給されることにより、メモリ素子へのデータの記憶や、トランジスタのいずれかを介して入力された外部データに対する演算が行われ、演算の結果がメモリ素子から出力されるものである。
【００３２】
上述の本発明の演算回路の構成によれば、可変抵抗素子を有するメモリ素子と、このメモリ素子の両端にそれぞれ１個以上接続されたトランジスタとを備え、トランジスタを通じてメモリ素子の両端にそれぞれ電位が供給されることにより、メモリ素子へのデータの記憶や、トランジスタのいずれかを介して入力された外部データに対する演算が行われ、演算の結果がメモリ素子から出力されるので、可変抵抗素子の特性により、比較的低電圧で可変抵抗素子の抵抗値を変化させて、メモリ素子にデータを記憶させることができる。
また、メモリ素子の両端に供給される電位を制御することにより、演算後もメモリ素子に記憶されたデータが変更されない非破壊演算と、演算によりメモリ素子に記憶されたデータが変更される破壊演算とを、それぞれ行うことが可能である。
従って、メモリ素子の両端に供給される電位を制御することによって、外部データとメモリ素子に記憶されたデータとの演算や、外部データ同士の演算を、それぞれ行うことが可能である。
さらに、メモリ素子の両端に供給される電位等を変更することにより、非破壊演算及び破壊演算において、それぞれＡＮＤ（論理積）演算とＯＲ（論理和）演算とを切り替えることが可能である。
【００３３】
上記本発明の演算回路において、メモリ素子が、２つの可変抵抗素子の各素子の一方の電極を接続して共通端子とし、２つの可変抵抗素子の各素子の他方の電極を独立させてそれぞれ端子を設けて、合計３端子として構成され、メモリ素子の各他方の電極に設けられた端子に、それぞれ１個以上トランジスタが接続され、演算の結果が共通端子から出力される構成とすることも可能である。
このような構成としたときには、メモリ素子において、２つの可変抵抗素子の一方の電極が共通端子であるので、２つの可変抵抗素子の他方の電極の間に２つの可変抵抗素子が直列に接続されることになる。そして、これら他方の電極間に電圧を印加すると、その電圧が２つの可変抵抗素子の一方の可変抵抗素子に対しては高抵抗状態から低抵抗状態に変化させるように作用し、他方の可変抵抗素子に対しては低抵抗状態から高抵抗状態に変化させるように、即ち相補的に作用する。これにより、一方の可変抵抗素子を低抵抗状態に、他方の可変抵抗素子を高抵抗状態に、それぞれ変化させ、その変化した後の状態を安定して保持することができる。
また、他方の電極間に上述した電圧と逆極性の電圧を印加すると、一方の可変抵抗素子を高抵抗状態に、他方の可変抵抗素子を低抵抗状態に、それぞれ変化させて、これにより、第１の可変抵抗素子及び第２の可変抵抗素子の抵抗状態の組み合わせを変えることができる。
このことを利用して、第１の可変抵抗素子及び第２の可変抵抗素子の抵抗状態の組み合わせが、高抵抗状態・低抵抗状態である場合と、低抵抗状態・高抵抗状態である場合とにより、データをメモリ素子に記憶することが可能になる。
【００３４】
さらに、２つの可変抵抗素子の抵抗状態が変化するときには、高抵抗状態だった可変抵抗素子が先に低抵抗状態に変化して、その後、低抵抗状態だった可変抵抗素子が高抵抗状態に変化するので、２つの可変抵抗素子が共に低抵抗状態となる中間状態を経由することになる。
そして、中間状態となる時間は短く、それ以外は２つの可変抵抗素子のうち一方が高抵抗状態にあるため、メモリ素子全体の合成抵抗が高く一定となり、メモリ素子に流れる電流は小さくなる。これにより、情報の記録・消去や情報の読み出しの際に、メモリ素子に電圧を印加して流れる電流を低減することができる。
さらに、メモリ素子の記憶されたデータの内容である、第１の可変抵抗素子及び第２の可変抵抗素子の抵抗状態の組み合わせによって、メモリ素子の共通端子即ち出力端子の電位が大きく変化するため、演算の結果が出力される出力端子において充分な電位差が得られる。また、出力端子の電圧の値を２値とすることが可能になる。
【発明の効果】
【００３５】
上述の本発明の演算回路によれば、以下の条件をすべて満たした、ロジック・イン・メモリとして理想的と考えられる機能を実現することができる。
第１に、高電圧を必要とせず、ＣＭＯＳ回路の電源電圧程度の電圧で動作すること。
第２に、外部入力データと記憶データとのＡＮＤ（論理積）演算及びＯＲ（論理和）演算が共に可能であり、これらの演算の切り替えが可能であること。
第３に、２つの外部入力データ間のＡＮＤ演算及びＯＲ演算が共に可能であり、記憶データに応じてＡＮＤ演算とＯＲ演算とが切り替えられること。
第４に、記憶データを破壊せずに演算する場合と、演算結果を記憶データとして残す場合とを、使い方に応じて切り替えられること。
【００３６】
特に、メモリ素子を２つの可変抵抗素子を接続した３端子の構成としたときには、演算結果による出力の電位差を大きくすることができるため、出力によりパスゲートトランジスタをオン・オフするにしても、出力をセンスアンプ等で増幅するにしても、安定な動作をするためのマージンを広く確保することができる。
また、出力端子の電圧の値を２値とすることができるので、出力の閾値電圧を１種類とすることができることから、演算回路の次段の構成を簡略化することができる。
そして、閾値電圧を変更しなくても、ソフト的な対応で、論理積と論理和の演算を切り替えることが可能である。
また、安定状態での合成抵抗が高抵抗で一定であるため、可変抵抗素子を流れる電流が小さくなり、消費電力を抑制することができる。
【発明を実施するための最良の形態】
【００３７】
本発明の一実施の形態として、演算回路の概略構成図（回路構成図）を図１に示す。
この演算回路は、前述したロジック・イン・メモリを構成するものであり、１個の不揮発性デバイスと、４個の制御用のＭＯＳトランジスタとにより構成されている。
【００３８】
本実施の形態の演算回路では、特に、前述した各種の不揮発性デバイス（強誘電体、強誘電体キャパシタ、ＴＭＲ素子）の代わりに、不揮発性デバイスとして可変抵抗素子Ｒを使用している。
【００３９】
可変抵抗素子Ｒは、両端に端子Ｚ１と端子Ｚ２が設けられている。
ＭＯＳトランジスタＭＲＤは、ソースが端子Ｚ１に接続され、ドレインが外部入力Ｘの端子に接続され、ゲートにクロックＣＫＸの端子が接続されている。
ＭＯＳトランジスタＭＲＳは、ソースが端子Ｚ２に接続され、ドレインが外部入力Ｗの端子に接続され、ゲートにクロックＣＫＷの端子が接続されている。
ＭＯＳトランジスタＭＷ１は、ソースが端子Ｚ１に接続され、ドレインが外部入力Ｙ１の端子に接続され、ゲートにクロックＣＫＹの端子が接続されている。
ＭＯＳトランジスタＭＷ２は、ソースが端子Ｚ２に接続され、ドレインが外部入力Ｙ２の端子に接続され、ゲートにクロックＣＫＹの端子が接続されている。
なお、ここでは、ドレインとソースとを区別して接続しているように説明したが、ＭＯＳトランジスタではこれらを入れ替えることが可能なため、どちらを外部入力側に接続しても構わない。
【００４０】
可変抵抗素子Ｒは、例えば、図２Ａの断面図に示す膜構成の可変抵抗素子Ｒを使用することができる。
図２Ａに示す可変抵抗素子Ｒは、２つの電極１，２の間に導体膜３と絶縁体膜４が挟まれた膜構成になっている。導体膜３から絶縁体膜４に向かって電流Ｉが流れるように電圧をかけると、可変抵抗素子Ｒが低抵抗に変化してデータが書き込まれ、絶縁体膜４から導体膜３に向かって電流が流れるように電圧をかけると、可変抵抗素子Ｒが高抵抗に変化してデータが消去される。
また、この可変抵抗素子Ｒは、例えば、図２Ｂに示すように、一般の可変抵抗器の回路記号と同様の回路記号で記載することができると共に、矢印の向きを図２Ａに示す書き込み時の電流Ｉの向きと等しくなるようにしている。
【００４１】
可変抵抗素子Ｒを構成する導体膜３としては、例えば、Ｃｕ，Ａｇ，Ｚｎ等の金属元素を含有する金属膜、合金膜（例えばＣｕＴｅ合金膜）、金属化合物膜等が挙げられる。
また、絶縁体膜４としては、例えば、アモルファスＧｄ２Ｏ３や、ＳｉＯ２等の絶縁体が挙げられる。
【００４２】
具体的な膜構成としては、例えば、導体膜３としてＣｕＴｅ膜を膜厚２０ｎｍで形成し、その上に絶縁体膜４としてアモルファスＧｄ２Ｏ３膜を膜厚５ｎｍで形成する。
【００４３】
このような材料膜を用いた場合、導体膜３に含まれるＣｕ，Ａｇ，Ｚｎ等の金属元素が、イオン化して陰極側に引き寄せられる性質を有する。
従って、可変抵抗素子Ｒの上下の電極１，２間に、絶縁体膜４側の電極２が低電位になるように電圧を加えると、金属元素のイオンが電極２に引き寄せられて、絶縁体膜４内に入っていく。そして、イオンが電極２まで到達すると、上下の電極１，２間が導通して抵抗値が下がることになる。
一方、可変抵抗素子Ｒの上下の電極１，２間に、導体膜３側の電極１が低電位になるように電圧を加えると、金属元素がイオン化して電極１に引き寄せられて、絶縁体膜４から抜けていくため、上下の電極１，２間の絶縁性が増して、抵抗値が上がることになる。
このような変化を繰り返すことにより、可変抵抗素子Ｒの抵抗値を、高抵抗状態と低抵抗状態との間で可逆的に変化させることができる。
【００４４】
このような膜構成の可変抵抗素子Ｒは、素子のサイズ依存性がなく、大きい信号を得ることができるため、スケーリングに強いという特長を有する。
また、抵抗変化によるデータ書き込み速度を例えば５ナノ秒程度と速くすることができ、また低電圧（例えば１Ｖ程度）かつ低電流（例えば２０μＡ程度）で動作させることができるという利点を有する。
【００４５】
図１では、可変抵抗素子Ｒを図２Ｂと同様の回路記号で示し、矢印が下向きになるように配置している。即ち、端子Ｚ１から端子Ｚ２に電流が流れるように電圧を印加すると、可変抵抗素子Ｒが低抵抗になり、端子Ｚ２から端子Ｚ１に電流が流れるように電圧を印加すると、可変抵抗素子Ｒが高抵抗になる。
また、ここでは、可変抵抗素子Ｒが高抵抗のときの抵抗値を１００ｋΩとし、低抵抗のときの抵抗値を１００Ωとしている。
さらに、簡単のためにＭＯＳトランジスタのオン抵抗を１００Ωとしている。
これらは、必ずしもこの通りの値になるわけではないが、概ね妥当な値である。
【００４６】
そして、記憶データＳとして、図１に示すように、可変抵抗素子Ｒが低抵抗（１００Ω）である状態を、「Ｓ＝１状態」と定義し、可変抵抗素子Ｒが高抵抗（１００ｋΩ）である状態を「Ｓ＝０状態」と定義することにする。
【００４７】
また、可変抵抗素子Ｒのデータ書き込み閾値をＶｗｒと定義し、データ消去閾値をＶｅｒと定義したときに、
０．３Ｖ＜Ｖｅｒ＜１．０Ｖ，０．３Ｖ＜Ｖｗｒ＜１．０Ｖ  （１）
が成立するものと仮定している。ここで用いている数値も必ずしも正しくないが、概ね妥当な数値になっている。
【００４８】
さらに、各端子に与える信号を、それぞれ以下のように定義する。
外部入力Ｙ１は、Ｙ１＝０のときに端子電圧Ｖｙ１＝０Ｖとし、Ｙ１＝１のときに端子電圧Ｖｙ１＝１Ｖとする。
外部入力Ｙ２は、Ｙ２＝０のときに端子電圧Ｖｙ２＝０Ｖとし、Ｙ２＝１のときに端子電圧Ｖｙ２＝１Ｖとする。
クロックＣＫＸは、ＣＫＸ＝０のときに電圧Ｖｃｋｘ＝０Ｖとし、ＣＫＸ＝１のときに電圧Ｖｃｋｘ＝１Ｖとする。
クロックＣＫＹは、ＣＫＹ＝０のときに電圧Ｖｃｋｙ＝０Ｖとし、ＣＫＹ＝１のときに電圧Ｖｃｋｙ＝１Ｖとする。
クロックＣＫＷは、リセット入力となるものであり、ＣＫＷ＝０のときに電圧Ｖｃｋｗ＝０Ｖとし、ＣＫＷ＝１のときに電圧Ｖｃｋｗ＝１Ｖとする。
外部入力Ｘは、Ｘ＝０のときに端子電圧Ｖｘ＝０．０Ｖとし、Ｘ＝１のときにＶｘ＝０．３Ｖとする。
外部入力Ｗは、Ｗ＝０のときに端子電圧Ｖｗ＝０．０Ｖとし、Ｘ＝１のときにＶｗ＝０．３Ｖとする。
【００４９】
本実施の形態の演算回路の基本的な動作は、ＭＯＳトランジスタを介して可変抵抗素子Ｒに記憶データＳを記憶させた後、いずれかのＭＯＳトランジスタを介して入力された外部データと記憶データＳとの間で論理演算を行い、その結果を可変抵抗素子Ｒの両端の端子Ｚ１，Ｚ２（端子電圧Ｖｚ１，Ｖｚ２）のうちの一方から出力するものである。
【００５０】
そして、本実施の形態の演算回路における演算の態様としては、記憶データＳが演算後も保持される非破壊演算と、記憶データＳが演算により変化する破壊演算の２種類が可能である。
【００５１】
まず、外部入力Ｗ又は外部入力Ｘと、記憶データＳとの間の、非破壊演算を行う場合を説明する。
【００５２】
この場合の動作手順は、次のようになる。
演算に先立ち、可変抵抗素子Ｒに記憶データＳを書き込む。
具体的には、（Ｖｙ１，Ｖｙ２）＝（１Ｖ，０Ｖ）又は（０Ｖ，１Ｖ）に設定した後、ＣＫＹ＝１，ＣＫＸ＝ＣＫＷ＝０とする。
これにより、トランジスタＭＷ１，ＭＷ２がオンになり、トランジスタＭＲＤ，ＭＲＳがオフになるため、Ｒ＝１００Ω又は１００ｋΩとなって、記憶データＳとしてＳ＝１又はＳ＝０が書き込まれる。
【００５３】
次に、外部入力との演算を行う。
具体的には、外部入力Ｗ又は外部入力Ｘの値（１又は０）に応じて、電圧Ｖｘと電圧Ｖｗのうち、一方を０．３Ｖに、他方を０．０Ｖにそれぞれ設定した後、ＣＫＹ＝０，ＣＫＸ＝ＣＫＷ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオフになり、トランジスタＭＲＤ，ＭＲＳがオンになるため、Ｗ，Ｘ，Ｓの各値の組み合わせに応じて、Ｖｚ１，Ｖｚ２に４通りの電圧０Ｖ，０．１Ｖ，０．２Ｖ，０．３Ｖが現れる。
そして、０．０５Ｖ又は０．２５Ｖを閾値Ｖｔｈとして２値化することにより、外部入力Ｘと記憶データＳの論理演算、又は外部入力Ｗと記憶データＳの論理演算の結果が得られる。
【００５４】
表１は、Ｗ＝０に固定して、外部入力Ｘと記憶データＳ間で非破壊論理積を得る場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z1=X&~Sの演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z2=X&Sの演算結果が得られる。
表２は、Ｗ＝１に固定して、外部入力Ｘと記憶データＳ間で非破壊論理和を得る場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z1=X|Sの演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z2=X|~Sの演算結果が得られる。
表３は、Ｘ＝０に固定して、外部入力Ｗと記憶データＳ間で非破壊論理積を得る場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z1=W&Sの演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z2=W&~Sの演算結果が得られる。
表４は、Ｘ＝１に固定して、外部入力Ｗと記憶データＳ間で非破壊論理和を得る場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z1=W|~Sの演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z2=W|Sの演算結果が得られる。
なお、表１〜表４では、Ｖｚ１，Ｖｚ２に２９９μＶという値が現れているが、これは０．０Ｖとして取り扱っている。これ以降でも同様に取り扱うものとする。
【００５５】
【表１】
2006048298.tif 000003
【表２】
2006048298.tif 000004
【表３】
2006048298.tif 000005
【表４】
2006048298.tif 000006
【００５６】
続いて、２つの外部入力Ｙ１，Ｙ２と、記憶データＳとの間の、破壊演算を行う場合を説明する。
【００５７】
この場合の動作手順は、次のようになる。
演算に先立ち、可変抵抗素子Ｒに記憶データＳを書き込む。
具体的には、（Ｖｘ，Ｖｗ）＝（１Ｖ，０Ｖ）又は（０Ｖ，１Ｖ）に設定した後、ＣＫＹ＝０，ＣＫＸ＝ＣＫＷ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオフになり、トランジスタＭＲＤ，ＭＲＳがオンになるため、Ｒ＝１００Ω又は１００ｋΩとなって、記憶データＳとしてＳ＝１又はＳ＝０が書き込まれる。
【００５８】
次に、外部入力Ｙ１，Ｙ２の演算を行う。
具体的には、外部入力Ｙ１及び外部入力Ｙ２を、それぞれ１又は０のいずれか（４通りの組み合わせのいずれか）に設定した後、ＣＫＹ＝１，ＣＫＸ＝ＣＫＷ＝０とする。
これにより、トランジスタＭＷ１，ＭＷ２がオンになり、トランジスタＭＲＤ，ＭＲＳがオフになるため、Ｙ１，Ｙ２の値の組み合わせに応じて、可変抵抗素子Ｒの両端にかかる電圧が変化する。
そして、４通りの組み合わせのうちの１通りだけ（記憶データＳの内容により異なる）で可変抵抗素子Ｒの抵抗値が変化し、記憶データＳの値が書き換えられる。
【００５９】
次に、演算結果を読み出す。
具体的には、（Ｖｘ，Ｖｗ）＝（０．０Ｖ，０．３Ｖ）又は（０．３Ｖ，０．０Ｖ）に設定した後、ＣＫＹ＝０，ＣＫＸ＝ＣＫＷ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオフになり、トランジスタＭＲＤ，ＭＲＳがオンになるため、Ｙ１，Ｙ２，Ｓの各値の組み合わせに応じて、Ｖｚ１，Ｖｚ２に４通りの電圧０Ｖ，０．１Ｖ，０．２Ｖ，０．３Ｖが現れる。
そして、０．０５Ｖ又は０．２５Ｖをしきい値Ｖｔｈとして２値化することにより、外部入力Ｙ１，Ｙ２間の論理演算、外部入力Ｙ１と記憶データＳの論理演算、外部入力Ｙ２と記憶データＳの論理演算の結果が得られる。
【００６０】
表５〜表８の４つの表は、２つの外部入力Ｙ１，Ｙ２間の論理演算（破壊演算）を行う場合の様々な組み合わせを示している。
表５は、記憶データをＳ＝０にセットして、２つの外部入力Ｙ１，Ｙ２間で演算させて、演算結果をＶｗ＝０Ｖ，Ｖｘ＝０．３Ｖで読み出す場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z1=~Y1|Y2の演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z2=Y1&~Y2の演算結果が得られる。
表６は、記憶データをＳ＝０にセットして、２つの外部入力Ｙ１，Ｙ２間で演算させて、演算結果をＶｗ＝０．３Ｖ，Ｖｘ＝０Ｖで読み出す場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z1=Y1&~Y2の演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z2=~Y1|Y2の演算結果が得られる。
表７は、記憶データをＳ＝１にセットして、２つの外部入力Ｙ１，Ｙ２間で演算させて、演算結果をＶｗ＝０Ｖ，Ｖｘ＝０．３Ｖで読み出す場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z1=~Y1&Y2の演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z2=Y1|~Y2の演算結果が得られる。
表８は、記憶データをＳ＝１にセットして、２つの外部入力Ｙ１，Ｙ２間で演算させて、演算結果をＶｗ＝０．３Ｖ，Ｖｘ＝０Ｖで読み出す場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z1=Y1|~Y2の演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z2=~Y1&Y2の演算結果が得られる。
【００６１】
【表５】
2006048298.tif 000007
【表６】
2006048298.tif 000008
【表７】
2006048298.tif 000009
【表８】
2006048298.tif 000010
【００６２】
表９〜表１２の４つの表は、外部入力Ｙ２と記憶データＳの論理演算（破壊演算）を行う場合の様々な組み合わせを示している。
表９は、Ｙ１＝０に固定して、外部入力Ｙ２と記憶データＳ間で演算させて、演算結果をＶｗ＝０Ｖ，Ｖｘ＝０．３Ｖで読み出す場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z1=~S|Y2の演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z2=S&~Y2の演算結果が得られる。
表１０は、Ｙ１＝０に固定して、外部入力Ｙ２と記憶データＳ間で演算させて、演算結果をＶｗ＝０．３Ｖ，Ｖｘ＝０Ｖで読み出す場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z1=S&~Y2の演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z2=~S|Y2の演算結果が得られる。
表１１は、Ｙ１＝１に固定して、外部入力Ｙ２と記憶データＳ間で演算させて、演算結果をＶｗ＝０Ｖ，Ｖｘ＝０．３Ｖで読み出す場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z1=~S&Y2の演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z2=S|~Y2の演算結果が得られる。
表１２は、Ｙ１＝１に固定して、外部入力Ｙ２と記憶データＳ間で演算させて、演算結果をＶｗ＝０．３Ｖ，Ｖｘ＝０Ｖで読み出す場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z1=S|~Y2の演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z2=~S&Y2の演算結果が得られる。
【００６３】
【表９】
2006048298.tif 000011
【表１０】
2006048298.tif 000012
【表１１】
2006048298.tif 000013
【表１２】
2006048298.tif 000014
【００６４】
表１３〜表１６の４つの表は、外部入力Ｙ１と記憶データＳの論理演算（破壊演算）を行う場合の様々な組み合わせを示している。
表１３は、Ｙ２＝０に固定して、外部入力Ｙ１と記憶データＳ間で演算させて、演算結果をＶｗ＝０Ｖ，Ｖｘ＝０．３Ｖで読み出す場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z1=~(Y1|S)の演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z2=Y1|Sの演算結果が得られる。
表１４は、Ｙ２＝０に固定して、外部入力Ｙ１と記憶データＳ間で演算させて、演算結果をＶｗ＝０．３Ｖ，Ｖｘ＝０Ｖで読み出す場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z1=Y1|Sの演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z2=~(Y1|S)の演算結果が得られる。
表１５は、Ｙ２＝１に固定して、外部入力Ｙ１と記憶データＳ間で演算させて、演算結果をＶｗ＝０Ｖ，Ｖｘ＝０．３Ｖで読み出す場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z1=~(Y1&S)の演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z2=Y1&Sの演算結果が得られる。
表１６は、Ｙ２＝１に固定して、外部入力Ｙ１と記憶データＳ間で演算させて、演算結果をＶｗ＝０．３Ｖ，Ｖｘ＝０Ｖで読み出す場合を示している。この場合、Ｖｚ１の閾値Ｖｔｈ＝０．０５Ｖとすることにより、Z1=Y1&Sの演算結果が得られ、Ｖｚ２の閾値Ｖｔｈ＝０．２５Ｖとすることにより、Z2=~(Y1&S)の演算結果が得られる。
【００６５】
【表１３】
2006048298.tif 000015
【表１４】
2006048298.tif 000016
【表１５】
2006048298.tif 000017
【表１６】
2006048298.tif 000018
【００６６】
なお、表５〜表１６に示したいずれの場合でも、Z2=~Z1となっているため、必要に応じて出力端子Ｚ１，Ｚ２を選択することにより、反転出力又は非反転出力を得ることができる。
【００６７】
本実施の形態の演算回路の構成によれば、不揮発性デバイスとして可変抵抗素子Ｒを用いて、演算器とメモリ素子とを備えた演算回路を構成しているので、高速に動作すると共に、演算回路をコンパクトに構成することができる。
そして、可変抵抗素子Ｒの特性により、比較的低電圧（例えば２Ｖ程度）で可変抵抗素子Ｒの抵抗値を変化させて記憶データＳを書き込むことができる。
さらに、非破壊演算、外部入力同士の演算、外部入力と記憶データの演算がいずれも可能であり、それぞれＡＮＤ（論理積）演算とＯＲ（論理和）演算を行うことができる。
【００６８】
また、非破壊演算におけるＡＮＤ演算とＯＲ演算の切り替えは、例えば、表１と表２のように、読み出し時の電圧（Ｖｘ又はＶｗの一方）と出力端子Ｚ１，Ｚ２の閾値電圧Ｖｔｈを変更することにより、切り替えが可能である。
外部入力同士の演算におけるＡＮＤ演算とＯＲ演算の切り替えは、例えば、表５と表６のように、読み出し時の電圧（Ｖｘ及びＶｗ）と出力端子Ｚ１，Ｚ２の閾値電圧Ｖｔｈを変更することにより、切り替えが可能である。
外部入力と記憶データの演算におけるＡＮＤ演算とＯＲ演算の切り替えも、例えば、表９と表１０のように、読み出し時の電圧（Ｖｘ及びＶｗ）と出力端子Ｚ１，Ｚ２の閾値電圧Ｖｔｈを変更することにより、切り替えが可能である。
【００６９】
従って、本実施の形態の演算回路によれば、以下の条件を全て満たした、ロジック・イン・メモリとして理想的と考えられる機能を実現することができる。
第１に、高電圧を必要とせず、ＣＭＯＳ回路の電源電圧程度の電圧で動作すること。
第２に、外部入力データと記憶データとのＡＮＤ演算及びＯＲ演算が共に可能であり、これらの演算の切り替えが可能であること。
第３に、２つの外部入力データ間のＡＮＤ演算及びＯＲ演算が共に可能であり、記憶データに応じてＡＮＤ演算とＯＲ演算とが切り替えられること。
第４に、記憶データを破壊せずに演算する場合と、演算結果を記憶データとして残す場合と、使い方に応じて切り替えられること。
【００７０】
そして、特に図２Ａの膜構成の可変抵抗素子Ｒは、素子のサイズ依存性がなく、大きい信号を得ることができるため、スケーリングに強いという特長を有する。
【００７１】
なお、外部入力やクロックの電圧の具体的な設定は、上述した説明の値に限定されるものではなく、その他様々な設定が可能である。
また、可変抵抗素子Ｒの高抵抗状態及び低抵抗状態の各抵抗値は、膜構成、特に各層の組成や膜厚により、任意に設定することが可能である。
【００７２】
ところで、ＧｅＳｂＴｅ等の材料を記録層に用いて、電流パルスの印加方法によって、記録層を結晶状態とアモルファス状態との間で変化させることにより、抵抗値を変化させる記憶素子（いわゆる相変化記憶素子）がある。
この相変化記憶素子は、大きな抵抗変化が得られ、また不揮発性デバイスとして用いることが可能である。
しかし、この相変化記憶素子は、記録原理として温度変化を利用しており、例えばアモルファス状態から結晶状態へと遷移する温度（結晶化温度）が２００℃程度であるため、外部環境の温度変化やデバイス動作時の温度上昇に伴う温度変化に対して、動作が非常に不安定になる虞がある。
また、結晶状態へと遷移させるためには、ある程度長い時間（少なくとも５０ナノ秒以上）にわたり一定温度以上に保つ必要があるため、高速の論理回路用デバイスへの応用には適していない。
【００７３】
これに対して、図２Ａに示した膜構成の可変抵抗素子Ｒでは、素子のサイズ依存性がなく、大きい信号を得ることができるため、スケーリングに強いという特長を有する。
また、抵抗変化によるデータ書き込み速度を例えば５ナノ秒程度と速くすることができ、また低電圧（例えば１Ｖ程度）かつ低電流（例えば２０μＡ程度）で動作させることができるという利点を有する。
【００７４】
上述した実施の形態の演算回路は、従来の不揮発性デバイスを用いた演算回路では実現できなかった、ロジック・イン・メモリとして理想的と考えられる機能を実現することができる。
ただし、次の３点で改善の余地を残している。
第１に、可変抵抗素子Ｒが低抵抗であるＳ＝１状態では、演算回路に大きい電流が流れるため、消費電力が増加する。
第２に、ＭＯＳトランジスタのオン抵抗と可変抵抗素子Ｒの低抵抗の値がほぼ等しくなるため、読み出しの際の端子電圧Ｖｚ１，Ｖｚ２は、演算回路に印加した電圧Ｖｗ，Ｖｚが分圧された値となる。そのため、演算結果が０の場合と１の場合との電圧レベルの差が小さくなってしまう。
第３に、読み出すときの出力電圧の値が４通り（具体例では０Ｖ，０．１Ｖ，０．２Ｖ，０．３Ｖ）となり、出力を１と０とで識別するために、電圧の閾値が２種類(具体例では０．０５Ｖ，０．２５Ｖ)必要になる。
【００７５】
そこで、これら３点を改善する演算回路の構成を、次に示す。
本発明の他の実施の形態として、演算回路の概略構成図（回路構成図）を図３に示す。
この演算回路は、前述したロジック・イン・メモリを構成するものであり、不揮発性デバイスと、４個の制御用のＭＯＳトランジスタとにより構成されている。
【００７６】
本実施の形態の演算回路では、特に、不揮発性デバイスとして、２個の可変抵抗素子Ｒ１，Ｒ２を相補的（コンプリメンタリ）に直列に接続している。
第１の可変抵抗素子１１（Ｒ１）は、矢印が下向きになっており、下向きに電流が流れるように電圧を印加したときに低抵抗になり、その逆極性の電圧を印加したときに高抵抗になる。
第２の可変抵抗素子１２（Ｒ２）は、矢印が上向きになっており、上向きに電流が流れるように電圧を印加したときに低抵抗になり、その逆極性の電圧を印加したときに高抵抗になる。
これら第１の可変抵抗素子Ｒ１及び第２の可変抵抗素子Ｒ２を直列に接続しているので、電圧の極性に対応して、一方の可変抵抗素子が低抵抗になり、他方の可変抵抗素子が高抵抗になる。
【００７７】
これら２つの可変抵抗素子１１（Ｒ１），１２（Ｒ２）は、例えば、図４Ａに示す構成とすることができる。第１の可変抵抗素子１１（Ｒ１）及び第２の可変抵抗素子１２（Ｒ２）は、いずれも、図２Ａに示した可変抵抗素子Ｒと同様に、電極１，２の間に導体膜３と絶縁体膜４を設けた膜構成となっている。
そして、２つの可変抵抗素子１１，１２において、絶縁体膜４側の電極２を接続して共通端子Ｚとし、導体膜３側の電極１をそれぞれＡ端子とＢ端子に接続することで、コンプリメンタリな３端子のメモリ素子１０を構成している。このように構成することにより、回路記号では、図４Ｂに示すように、２つの可変抵抗素子１１，１２の矢印が向かい合った構成となる。
【００７８】
なお、図４Ａに示す構成の代わりに、図５Ａに示すように、２つの可変抵抗素子１１，１２において、導体膜３側の電極１を接続して共通端子Ｚとし、絶縁体膜４側の電極２をそれぞれＡ端子とＢ端子に接続することで、コンプリメンタリな３端子のメモリ素子２０とした構成を用いてもよい。この場合、回路記号では、図５Ｂに示すように、２つの可変抵抗素子１１，１２の矢印が互いに背を向けた構成となる。
【００７９】
次に、図４Ａに示したメモリ素子１０の構成における、具体的な動作を説明する。
ここでは、可変抵抗素子Ｒ１，Ｒ２が高抵抗のときの抵抗値を１００ｋΩとし、低抵抗のときの抵抗値を１００Ωとしている。
まず、このメモリ素子１０がとり得る４つの状態を、図６Ａ〜図６Ｄに示す。
そして、図６Ａに示すように、端子Ａと接続されている第１の可変抵抗素子１１が低抵抗（１００Ω）で、端子Ｂと接続されている第２の可変抵抗素子１２が高抵抗（１００ｋΩ）である状態を「Ｓ＝１状態」と定義し、図６Ｂに示すように、端子Ａと接続されている第１の可変抵抗素子１１が高抵抗（１００ｋΩ）で、端子Ｂと接続されている第２の可変抵抗素子１２が低抵抗（１００Ω）である状態を「Ｓ＝０状態」と定義することにする。
さらに、図６Ｃに示すように、２つの可変抵抗素子１１，１２が共に低抵抗になっている状態を「中間状態」と呼び、図６Ｄに示すように、２つの可変抵抗素子１１，１２が共に高抵抗になっている状態を「禁止状態」と呼ぶことにする。
【００８０】
続いて、メモリ素子にデータを書き込むために、端子Ａと端子Ｂに書き込みのための電圧Ｖａ，Ｖｂを与えた場合の動作を説明する状態推移図を図７に示す。
図７では、各状態の円内に可変抵抗素子１１，１２の抵抗値として（第１の可変抵抗素子１１の抵抗値／第２の可変抵抗素子１２の抵抗値）を記載し、各状態の推移を矢印で示し、この矢印に対してそれぞれ記憶素子１０の各端子Ａ，Ｂ，Ｚに印加される電圧として｛Ｖａ，Ｖｂ｝／Ｖｚを記載している。
【００８１】
まず、図７の上側の「Ｓ＝１状態」（１００Ω／１００ｋΩ）の場合、端子Ａと接続されている第１の可変抵抗素子１１が低抵抗（１００Ω）で、端子Ｂと接続されている第２の可変抵抗素子１２が高抵抗（１００ｋΩ）である。この状態において、Ｖａ＝２Ｖ，Ｖｂ＝０Ｖという電圧を与えると、端子Ａから端子Ｂに電流が流れるが、これは低抵抗の第１の可変抵抗素子１１にとっても高抵抗の第２の可変抵抗素子１２にとっても安定な方向なので、Ｖｚ＝２．０Ｖになるだけである。従って、図７の「Ｓ＝１状態」を表す円の上の矢印（｛２，０｝／２）で示すように、各可変抵抗素子１１，１２の状態は変化しない。
【００８２】
次に、「Ｓ＝１状態」（１００Ω／１００ｋΩ）において、Ｖａ＝０Ｖ，Ｖｂ＝２Ｖという電圧を与えると、端子Ｂから端子Ａに電流が流れるが、第２の可変抵抗素子１２が高抵抗（１００ｋΩ）であるため、端子Ｚの電位Ｖｚ＝０．０Ｖとなる。これにより、高抵抗の第２の可変抵抗素子１２に書き込み方向の電圧２Ｖが与えられるため、第２の可変抵抗素子１２が低抵抗（１００Ω）に変化して、図７中上側の「Ｓ＝１状態」（１００Ω／１００ｋΩ）から、右側の中間状態（１００Ω／１００Ω）に推移する。
【００８３】
この中間状態（１００Ω／１００Ω）では、２つの可変抵抗素子１１，１２が両方とも低抵抗（１００Ω）であるため、ＡＢ間の２Ｖの電圧が半分ずつ分圧されてＶｚ＝１．０Ｖになっており、第１の可変抵抗素子１１に１Ｖの電圧が消去方向にかかることになる。すると、第１の可変抵抗素子１１が高抵抗（１００ｋΩ）に変化して、従って、図７中右側の中間状態（１００Ω／１００Ω）から、下側の「Ｓ＝０状態」（１００ｋΩ／１００Ω）に推移し、安定状態となってＶｚ＝０．０Ｖとなる。
【００８４】
同様に、図７の下側の「Ｓ＝０状態」（１００ｋΩ／１００Ω）の場合、端子Ａと接続されている第１の可変抵抗素子１１が高抵抗（１００ｋΩ）で、端子Ｂと接続されている第２の可変抵抗素子１２が低抵抗（１００Ω）である。この状態において、Ｖａ＝０Ｖ，Ｖｂ＝２Ｖという電圧を与えると、端子Ｂから端子Ａに電流が流れるが、これは低抵抗の第２の可変抵抗素子１２にとっても高抵抗の第１の可変抵抗素子１１にとっても安定な方向なので、Ｖｚ＝０Ｖになるだけである。従って、図７の「Ｓ＝０状態」を表す円の下の矢印（｛０，２｝／０）で示すように、各可変抵抗素子１１，１２の状態は変化しない。
【００８５】
次に、「Ｓ＝０状態」（１００ｋΩ／１００Ω）において、Ｖａ＝２Ｖ，Ｖｂ＝０Ｖという電圧を与えると、端子Ａから端子Ｂに電流が流れるが、第１の可変抵抗素子１１が高抵抗（１００ｋΩ）であるため、端子Ｚの電位Ｖｚ＝０．０Ｖとなる。これにより、高抵抗の第１の可変抵抗素子１１に書き込み方向の電圧２Ｖが与えられるため、第１の可変抵抗素子１１が低抵抗（１００Ω）に変化して、図７中下側の「Ｓ＝０状態」（１００ｋΩ／１００Ω）から、左側の中間状態（１００Ω／１００Ω）に推移する。
【００８６】
この中間状態（１００Ω／１００Ω）では、２つの可変抵抗素子１１，１２が両方とも低抵抗（１００Ω）であるため、ＡＢ間の２Ｖの電圧が半分ずつに分圧されてＶｚ＝１．０Ｖになっており、第２の可変抵抗素子１２に１Ｖの電圧が消去方向にかかることになる。すると、第２の可変抵抗素子１２が高抵抗（１００ｋΩ）に変化して、図７中左側の中間状態（１００Ω／１００Ω）から上側の「Ｓ＝１状態」（１００Ω／１００ｋΩ）に推移し、安定状態となってＶｚ＝２．０Ｖとなる。
【００８７】
このように、図４Ａに示した構成のメモリ素子１０では、コンプリメンタリに接続されている２つの可変抵抗素子１１，１２が互いに高抵抗と低抵抗という異なる抵抗値であって、どちらの素子が低抵抗になっているかによって、記憶データが１であるか０であるかを区別する点に特徴がある。
また、データが書き換えられる場合には、１個の可変抵抗素子Ｒの動作とは異なり、不安定な「中間状態」を経てから安定な「Ｓ＝１状態」又は「Ｓ＝０状態」に推移する点に特徴がある。
【００８８】
なお、図６Ｄに示した「禁止状態」、即ち２つの可変抵抗素子１１，１２がいずれも高抵抗である状態が、メモリ素子１０の初期状態となる。この状態では、両側の端子Ａ，Ｂに２Ｖの電位差を与えても、どちらの可変抵抗素子１１，１２も低抵抗にはならない。
このため、メモリ素子１０の共通端子Ｚと両側の端子Ａ，Ｂとの間にデータ書き込み閾値Ｖｗｒよりも大きい電圧を与えることによって、不揮発性の可変抵抗素子１１，１２を２つとも又は１つだけ低抵抗にするような操作（初期化）を行う必要がある。この操作を行うことにより、メモリ素子１０が図７に示した状態推移サイクルの中に入り、データ書き込み及びデータ消去の動作が可能になる。
【００８９】
本実施の形態の演算回路では、図４、図６〜図７に説明したメモリ素子１０を用いているので、記憶データＳとして、図３に示すように、第１の可変抵抗素子１１（Ｒ１）が低抵抗（１００Ω）であり第２の可変抵抗素子１２（Ｒ２）が高抵抗（１００ｋΩ）である状態を「Ｓ＝１状態」と定義し、第１の可変抵抗素子１１（Ｒ１）が高抵抗（１００ｋΩ）であり第２の可変抵抗素子１２（Ｒ２）が低抵抗（１００Ω）である状態を「Ｓ＝０状態」と定義することにする。
【００９０】
また、２つの可変抵抗素子１１，１２のデータ書き込み閾値をＶｗｒと定義し、データ消去閾値をＶｅｒと定義したときに、前述した式（１）とは異なり、
０．４Ｖ＜Ｖｅｒ＜０．５Ｖ，０．４Ｖ＜Ｖｗｒ＜２．０Ｖ  （２）
が成立するものと仮定している。さらに、簡単のためにＭＯＳトランジスタのオン抵抗を１００Ωとしている。ここで用いている数値も必ずしも正しくないが、概ね妥当な数値になっている。
【００９１】
本実施の形態の演算回路では、２つの可変抵抗素子１１，１２の間に、出力端子Ｚが設けられ、両端の端子には出力端子を設けていない。
制御用のＭＯＳトランジスタＭＲＤ，ＭＲＳ，ＭＷ１，ＭＷ２及び外部入力Ｘ，Ｗ，Ｙ１，Ｙ２の各端子、クロックＣＫＸ，ＣＫＷ，ＣＫＹの各端子の構成は、図１に示した先の実施の形態の演算回路と同様になっている。
そして、ＭＯＳトランジスタＭＲＤのソース及びＭＯＳトランジスタＭＷ１のソースが、第１の可変抵抗素子１１の一端（図４のＡ端子）に接続され、ＭＯＳトランジスタＭＲＳのソース及びＭＯＳトランジスタＭＷ２のソースが、第２の可変抵抗素子１２の一端（図４のＢ端子）に接続されている。
なお、ここでは、ドレインとソースとを区別して接続しているように説明したが、ＭＯＳトランジスタではこれらを入れ替えることが可能なため、どちらを可変抵抗素子１１，１２側に接続しても構わない。
【００９２】
さらに、各端子に与える信号を、それぞれ以下のように定義する。
外部入力Ｙ１は、Ｙ１＝０のときに端子電圧Ｖｙ１＝０Ｖとし、Ｙ１＝１のときに端子電圧Ｖｙ１＝２Ｖとする。
外部入力Ｙ２は、Ｙ２＝０のときに端子電圧Ｖｙ２＝０Ｖとし、Ｙ２＝１のときに端子電圧Ｖｙ２＝２Ｖとする。
クロックＣＫＸは、ＣＫＸ＝０のときに電圧Ｖｃｋｘ＝０Ｖとし、ＣＫＸ＝１のときに電圧Ｖｃｋｘ＝１Ｖとする。
クロックＣＫＹは、ＣＫＹ＝０のときに電圧Ｖｃｋｙ＝０Ｖとし、ＣＫＹ＝１のときに電圧Ｖｃｋｙ＝１Ｖとする。
クロックＣＫＷは、リセット入力となるものであり、ＣＫＷ＝０のときに電圧Ｖｃｋｗ＝０Ｖとし、ＣＫＷ＝１のときに電圧Ｖｃｋｗ＝１Ｖとする。
外部入力Ｘは、Ｘ＝０のときに端子電圧Ｖｘ＝０．３Ｖとし、Ｘ＝１のときにＶｘ＝０．７Ｖとする。
外部入力Ｗは、Ｗ＝０のときに端子電圧Ｖｗ＝０．３Ｖとし、Ｘ＝１のときにＶｗ＝０．７Ｖとする。
【００９３】
本実施の形態の演算回路の基本的な動作は、ＭＯＳトランジスタを介して２つの可変抵抗素子１１，１２から成るメモリ素子に記憶データＳを記憶させた後、いずれかのＭＯＳトランジスタを介して入力された外部データと記憶データＳとの間で論理演算を行い、その結果を２つの可変抵抗素子１１，１２の間の端子Ｚ（端子電圧Ｖｚ）から出力するものである。
【００９４】
そして、本実施の形態の演算回路における演算の態様としては、記憶データＳが演算後も保持される非破壊演算と、記憶データＳが演算により変化する破壊演算の２種類が可能である。
【００９５】
まず、外部入力Ｗ又は外部入力Ｘと、記憶データＳとの間の、非破壊演算を行う場合を説明する。
【００９６】
この場合の動作手順は、次のようになる。
演算に先立ち、可変抵抗素子１１（Ｒ１），１２（Ｒ２）に記憶データＳを書き込む。
具体的には、（Ｖｙ１，Ｖｙ２）＝（２Ｖ，０Ｖ）又は（０Ｖ，２Ｖ）に設定した後、ＣＫＹ＝１，ＣＫＸ＝ＣＫＷ＝０とする。
これにより、トランジスタＭＷ１，ＭＷ２がオンになり、トランジスタＭＲＤ，ＭＲＳがオフになるため、（Ｒ１，Ｒ２）＝（１００Ω，１００ｋΩ）又は（１００ｋΩ，１００Ω）となって、記憶データＳとしてＳ＝１又はＳ＝０が書き込まれる。
【００９７】
次に、外部入力との演算を行う。
具体的には、外部入力Ｗ又は外部入力Ｘの値（１又は０）に応じて、電圧Ｖｘと電圧Ｖｗのうち、一方を０．７Ｖに、他方を０．３Ｖにそれぞれ設定した後、ＣＫＹ＝０，ＣＫＸ＝ＣＫＷ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオフになり、トランジスタＭＲＤ，ＭＲＳがオンになるため、Ｗ，Ｘ，Ｓの各値の組み合わせに応じて、Ｖｚに２通りの電圧０．３Ｖ，０．７Ｖが現れる。
そして、０．５Ｖをしきい値Ｖｔｈとして２値化することにより、外部入力Ｘと記憶データＳの論理演算、又は外部入力Ｗと記憶データＳの論理演算の結果が得られる。
【００９８】
表１７は、外部入力Ｘと記憶データＳの論理演算、又は外部入力Ｗと記憶データＳの論理演算を行う場合を示している。この場合、Ｖｚの閾値Ｖｔｈ＝０．５Ｖとすることにより、Z=~W&(X&S)|W&(X|~S)の演算結果が得られる。
この演算結果から、Ｗ＝０に固定してＸとＳを演算するとＡＮＤ演算になり、Ｗ＝１に固定してＸとＳを演算するとＯＲ演算になり、Ｘ＝０に固定してＷとＳを演算するとＡＮＤ演算になり、Ｘ＝１に固定してＷとＳを演算するとＯＲ演算になる。
【００９９】
【表１７】
2006048298.tif 000019
【０１００】
本実施の形態では、２つの可変抵抗素子１１，１２から成る３端子のメモリ素子１０を用いているため、出力端子電圧Ｖｚの値が２通りであり、Ｗ，Ｘ，Ｓの各値の組み合わせに応じて、
Z=~W&(X&S)|W&(X|~S)
という論理演算を行うことができるため、先の実施の形態の演算回路と比較して、ずっと取り扱いが簡単になる。
【０１０１】
続いて、２つの外部入力Ｙ１，Ｙ２と、記憶データＳとの間の、破壊演算を行う場合を説明する。
【０１０２】
この場合の動作手順は、次のようになる。
演算に先立ち、可変抵抗素子１１（Ｒ１），１２（Ｒ２）に記憶データＳを書き込む。
具体的には、（Ｖｘ，Ｖｗ）＝（２Ｖ，０Ｖ）又は（０Ｖ，２Ｖ）に設定した後、ＣＫＹ＝０，ＣＫＸ＝ＣＫＷ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオフになり、トランジスタＭＲＤ，ＭＲＳがオンになるため、（Ｒ１，Ｒ２）＝（１００Ω，１００ｋΩ）又は（１００ｋΩ，１００Ω）となって、記憶データＳとしてＳ＝１又はＳ＝０が書き込まれる。
【０１０３】
次に、外部入力Ｙ１，Ｙ２の演算を行う。
具体的には、外部入力Ｙ１及び外部入力Ｙ２を、それぞれ１又は０のいずれか（４通りの組み合わせのいずれか）に設定した後、ＣＫＹ＝１，ＣＫＸ＝ＣＫＷ＝０とする。
これにより、トランジスタＭＷ１，ＭＷ２がオンになり、トランジスタＭＲＤ，ＭＲＳがオフになるため、Ｙ１，Ｙ２の値の組み合わせに応じて、可変抵抗素子１１，１２の両端にかかる電圧が変化する。
そして、４通りの組み合わせのうちの１通りだけ（記憶データＳの内容により異なる）で可変抵抗素子１１，１２の抵抗値Ｒ１，Ｒ２が変化し、記憶データＳの値が書き換えられる。
【０１０４】
次に、演算結果を読み出す。
具体的には、（Ｖｘ，Ｖｗ）＝（０．３Ｖ，０．７Ｖ）又は（０．７Ｖ，０．３Ｖ）に設定した完、ＣＫＹ＝０，ＣＫＸ＝ＣＫＷ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオフになり、トランジスタＭＲＤ，ＭＲＳがオンになるため、Ｙ１，Ｙ２，Ｓの各値の組み合わせに応じて、Ｖｚに２通りの電圧０．３Ｖ，０．７Ｖが現れる。
そして、０．５Ｖをしきい値Ｖｔｈとして２値化することにより、外部入力Ｙ１，Ｙ２間の論理演算、外部入力Ｙ１と記憶データＳの論理演算、外部入力Ｙ２と記憶データＳの論理演算の結果が得られる。
【０１０５】
表１８〜表２１の４つの表は、２つの外部入力Ｙ１，Ｙ２間の論理演算（破壊演算）を行う場合の様々な組み合わせを示している。
表１８は、記憶データをＳ＝０にセットして、２つの外部入力Ｙ１，Ｙ２間で演算させて、演算結果をＶｘ＝０．７Ｖ，Ｖｗ＝０．３Ｖで読み出す場合を示している。この場合、Ｖｚの閾値Ｖｔｈ＝０．５Ｖとすることにより、Z=Y1&~Y2の演算結果が得られる。
表１９は、記憶データをＳ＝０にセットして、２つの外部入力Ｙ１，Ｙ２間で演算させて、演算結果をＶｘ＝０．３Ｖ，Ｖｗ＝０．７Ｖで読み出す場合を示している。この場合、Ｖｚの閾値Ｖｔｈ＝０．５Ｖとすることにより、Z=~Y1|Y2の演算結果が得られる。
表２０は、記憶データをＳ＝１にセットして、２つの外部入力Ｙ１，Ｙ２間で演算させて、演算結果をＶｘ＝０．７Ｖ，Ｖｗ＝０．３Ｖで読み出す場合を示している。この場合、Ｖｚの閾値Ｖｔｈ＝０．５Ｖとすることにより、Z=Y1|~Y2の演算結果が得られる。
表２１は、記憶データをＳ＝１にセットして、２つの外部入力Ｙ１，Ｙ２間で演算させて、演算結果をＶｘ＝０．３Ｖ，Ｖｗ＝０．７Ｖで読み出す場合を示している。この場合、Ｖｚの閾値Ｖｔｈ＝０．５Ｖとすることにより、Z=~Y1&Y2の演算結果が得られる。
【０１０６】
【表１８】
2006048298.tif 000020
【表１９】
2006048298.tif 000021
【表２０】
2006048298.tif 000022
【表２１】
2006048298.tif 000023
【０１０７】
表２２〜表２５の４つの表は、外部入力Ｙ２と記憶データＳの論理演算（破壊演算）を行う場合の様々な組み合わせを示している。
表２２は、Ｙ１＝０に固定して、外部入力Ｙ２と記憶データＳ間で演算させて、演算結果をＶｘ＝０．７Ｖ，Ｖｗ＝０．３Ｖで読み出す場合を示している。この場合、Ｖｚの閾値Ｖｔｈ＝０．５Ｖとすることにより、Z=S&~Y2の演算結果が得られる。
表２３は、Ｙ１＝０に固定して、外部入力Ｙ２と記憶データＳ間で演算させて、演算結果をＶｘ＝０．３Ｖ，Ｖｗ＝０．７Ｖで読み出す場合を示している。この場合、Ｖｚの閾値Ｖｔｈ＝０．５Ｖとすることにより、Z=~S|Y2の演算結果が得られる。
表２４は、Ｙ１＝１に固定して、外部入力Ｙ２と記憶データＳ間で演算させて、演算結果をＶｘ＝０．７Ｖ，Ｖｗ＝０．３Ｖで読み出す場合を示している。この場合、Ｖｚの閾値Ｖｔｈ＝０．５Ｖとすることにより、Z=S|~Y2の演算結果が得られる。
表２５は、Ｙ１＝１に固定して、外部入力Ｙ２と記憶データＳ間で演算させて、演算結果をＶｘ＝０．３Ｖ，Ｖｗ＝０．７Ｖで読み出す場合を示している。この場合、Ｖｚの閾値Ｖｔｈ＝０．５Ｖとすることにより、Z=~S&Y2の演算結果が得られる。
【０１０８】
【表２２】
2006048298.tif 000024
【表２３】
2006048298.tif 000025
【表２４】
2006048298.tif 000026
【表２５】
2006048298.tif 000027
【０１０９】
表２６〜表２９の４つの表は、外部入力Ｙ１と記憶データＳの論理演算（破壊演算）を行う場合の様々な組み合わせを示している。
表２６は、Ｙ２＝１に固定して、外部入力Ｙ１と記憶データＳ間で演算させて、演算結果をＶｘ＝０．７Ｖ，Ｖｗ＝０．３Ｖで読み出す場合を示している。この場合、Ｖｚの閾値Ｖｔｈ＝０．５Ｖとすることにより、Z=S&Y1の演算結果が得られる。
表２７は、Ｙ２＝１に固定して、外部入力Ｙ１と記憶データＳ間で演算させて、演算結果をＶｘ＝０．３Ｖ，Ｖｗ＝０．７Ｖで読み出す場合を示している。この場合、Ｖｚの閾値Ｖｔｈ＝０．５Ｖとすることにより、Z=~S|~Y1の演算結果が得られる。
表２８は、Ｙ２＝０に固定して、外部入力Ｙ１と記憶データＳ間で演算させて、演算結果をＶｘ＝０．７Ｖ，Ｖｗ＝０．３Ｖで読み出す場合を示している。この場合、Ｖｚの閾値Ｖｔｈ＝０．５Ｖとすることにより、Z=S|Y1の演算結果が得られる。
表２９は、Ｙ２＝０に固定して、外部入力Ｙ１と記憶データＳ間で演算させて、演算結果をＶｘ＝０．３Ｖ，Ｖｗ＝０．７Ｖで読み出す場合を示している。この場合、Ｖｚの閾値Ｖｔｈ＝０．５Ｖとすることにより、Z=~S&~Y1の演算結果が得られる。
【０１１０】
【表２６】
2006048298.tif 000028
【表２７】
2006048298.tif 000029
【表２８】
2006048298.tif 000030
【表２９】
2006048298.tif 000031
【０１１１】
本実施の形態の演算回路の構成によれば、不揮発性デバイスとして可変抵抗素子１１，１２を用いて、演算器とメモリ素子とを備えた演算回路を構成しているので、図１に示した先の実施の形態の演算回路と同様に、高速に動作すると共に、演算回路をコンパクトに構成することができる。
そして、可変抵抗素子１１，１２の特性により、比較的低電圧（例えば２Ｖ程度）で可変抵抗素子１１，１２の抵抗値を変化させて記憶データＳを書き込むことができる。
さらに、非破壊演算、外部入力同士の演算、外部入力と記憶データの演算がいずれも可能であり、それぞれＡＮＤ（論理積）演算とＯＲ（論理和）演算を行うことができる。
【０１１２】
また、非破壊演算におけるＡＮＤ演算とＯＲ演算の切り替えは、例えば、表１７において、一方の外部入力（Ｘ又はＷ）を変更することにより、容易にできる。
外部入力同士の演算におけるＡＮＤ演算とＯＲ演算の切り替えも、例えば、表１８と表１９のように、読み出し時の電圧（Ｖｘ及びＶｗ）を変更することにより、容易にできる。
外部入力と記憶データの演算におけるＡＮＤ演算とＯＲ演算の切り替えも、例えば、表２２と表２３のように、読み出し時の電圧（Ｖｘ及びＶｗ）を変更することにより、容易にできる。
本実施の形態の演算回路は、これらの演算におけるＡＮＤ演算とＯＲ演算の切り替えをするために、出力Ｚの閾値電圧Ｖｔｈを変更する必要がないので、切り替えを容易に行うことができる。
【０１１３】
従って、本実施の形態の演算回路によれば、以下の条件を全て満たした、ロジック・イン・メモリとして理想的と考えられる機能を実現することができる。
第１に、高電圧を必要とせず、ＣＭＯＳ回路の電源電圧程度の電圧で動作すること。
第２に、外部入力データと記憶データとのＡＮＤ演算及びＯＲ演算が共に可能であり、これらの演算の切り替えが可能であること。
第３に、２つの外部入力データ間のＡＮＤ演算及びＯＲ演算が共に可能であり、記憶データに応じてＡＮＤ演算とＯＲ演算とが切り替えられること。
第４に、記憶データを破壊せずに演算する場合と、演算結果を記憶データとして残す場合とを、使い方に応じて切り替えられること。
【０１１４】
さらに、本実施の形態の演算回路によれば、２つの可変抵抗素子１１，１２を相補的に接続した３端子のメモリ素子を用いているので、記憶データＳの内容に関わらず、２つの可変抵抗素子１１，１２の合成抵抗が高抵抗で一定の値となるため、消費電力が少なくて済む。
【０１１５】
また、２つの可変抵抗素子１１，１２の合成抵抗の大きさと比較して、ＭＯＳトランジスタＭＲＤ，ＭＲＳのオン抵抗（たとえば１００Ω程度）が充分に小さくなるため、読み出し電圧がＭＯＳトランジスタＭＲＤ，ＭＲＳによって分圧されるこなく、１と０との出力電圧レベルの差が大きい。
また、出力電圧Ｖｚの値が２通りであり、演算結果の１と０とを識別するための閾値電圧が１種類（例えば０．５Ｖ）で済む。
そして、閾値電圧を変更しなくても、読み出し時の電圧の変更だけで、即ちソフト的な対応で、ＡＮＤ演算とＯＲ演算とを容易に切り替えることができる。
【０１１６】
従って、図１に示した先の実施の形態の演算回路に対して、前述した３つの点を改善することができる。
【０１１７】
なお、外部入力やクロックの電圧の具体的な設定は、上述した説明の値に限定されるものではなく、その他様々な設定が可能である。
また、可変抵抗素子Ｒの高抵抗状態及び低抵抗状態の各抵抗値は、膜構成、特に各層の組成や膜厚により、任意に設定することが可能である。
【０１１８】
上述の各実施の形態の演算回路では、いずれも制御用のＭＯＳトランジスタを４個使用して演算回路を構成していた。
これに対して、制御用のＭＯＳトランジスタを２個に減らして、同様の動作が可能な演算回路を構成することができる。
即ち、上述の各実施の形態の演算回路において、２つのＭＯＳトランジスタＭＲＤ，ＭＲＳは同時にオン・オフされるので、これらのゲートに入力されるクロックＣＫＸ，ＣＫＷを共通にすることが可能である。また、ＭＯＳトランジスタＭＲＤ，ＭＲＳとＭＯＳトランジスタＭＷ１，ＭＷ２とは、排他的にオン・オフされるため、これらを共通にすることが可能である。
従って、ＭＯＳトランジスタＭＲＤ，ＭＲＳを削除して、２個のＭＯＳトランジスタＭＷ１，ＭＷ２だけであり、ゲートへの入力クロックは１つだけである、という構成としても同様の動作を実現することが可能である。
【０１１９】
図１に示した演算回路に対して、このような簡略化を行った構成の演算回路の概略構成図（回路構成図）を図８に示す。
図８に示す演算回路では、図１に示した演算回路から、ＭＯＳトランジスタＭＲＤ，ＭＲＳ及びそのゲートやドレインへの入力Ｘ，ＣＫＸ，Ｗ，ＣＫＷの端子を削除して、制御用のＭＯＳトランジスタを２個のＭＯＳトランジスタＭＷ１，ＭＷ２だけとしている。その他の構成は、図１と同様であるので、同一符号を付して重複説明を省略する。
なお、図８では、可変抵抗素子Ｒのデータ書き込み閾値Ｖｗｒと、データ消去閾値をＶｅｒは、
０．３Ｖ＜Ｖｅｒ＜１．０Ｖ，０．３Ｖ＜Ｖｗｒ＜１．０Ｖ  （１）
が成立するものと仮定している。
【０１２０】
図８に示す演算回路は、演算の態様は図１に示した演算回路と同様であり、動作手順もおおむね図１に示した演算回路と同様である。
【０１２１】
まず、外部入力Ｙ１又は外部入力Ｙ２と、記憶データＳとの間の、非破壊演算を行う場合の動作手順は、次のようになる。
演算に先立ち、可変抵抗素子Ｒに記憶データＳを書き込む。
具体的には、（Ｖｙ１，Ｖｙ２）＝（１Ｖ，０Ｖ）又は（０Ｖ，１Ｖ）に設定した後、ＣＫＹ＝１とする。これにより、トランジスタＭＷ１，ＭＷ２がオンになるため、Ｒ＝１００Ω又は１００ｋΩとなって、記憶データＳとしてＳ＝１又はＳ＝０が書き込まれる。
【０１２２】
次に、外部入力との演算を行う。
具体的には、外部入力Ｙ１又は外部入力Ｙ２の値（１又は０）に応じて、電圧Ｖｙ１と電圧Ｖｙ２のうち、一方を０．３Ｖに、他方を０．０Ｖにそれぞれ設定した後、ＣＫＹ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオンになるため、Ｙ１，Ｙ２，Ｓの各値の組み合わせに応じて、Ｖｚ１，Ｖｚ２に４通りの電圧０Ｖ，０．１Ｖ，０．２Ｖ，０．３Ｖが現れる。
そして、０．０５Ｖ又は０．２５Ｖをしきい値Ｖｔｈとして２値化することにより、外部入力Ｙ１と記憶データＳの論理演算、又は外部入力Ｙ２と記憶データＳの論理演算の結果が得られる。
【０１２３】
この非破壊演算を行う場合、図１の演算回路の表１〜表４の各表において、Ｘ（Ｖｘ）をＹ１（Ｖｙ１）に置き換え、Ｗ（Ｖｗ）をＹ２（Ｖｙ２）に置き換えたのと同様の結果が得られる。
【０１２４】
続いて、２つの外部入力Ｙ１，Ｙ２と、記憶データＳとの間の、破壊演算を行う場合の動作手順は、次のようになる。
演算に先立ち、可変抵抗素子Ｒに記憶データＳを書き込む。
具体的には、（Ｖｙ１，Ｖｙ２）＝（１Ｖ，０Ｖ）又は（０Ｖ，１Ｖ）に設定した後、ＣＫＹ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオンになるため、Ｒ＝１００Ω又は１００ｋΩとなって、記憶データＳとしてＳ＝１又はＳ＝０が書き込まれる。
【０１２５】
次に、外部入力Ｙ１，Ｙ２の演算を行う。
具体的には、外部入力Ｙ１及び外部入力Ｙ２を、それぞれ１又は０のいずれか（４通りの組み合わせのいずれか）に設定した後、ＣＫＹ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオンになるため、Ｙ１，Ｙ２の値の組み合わせに応じて、可変抵抗素子Ｒの両端にかかる電圧が変化する。
そして、４通りの組み合わせのうちの１通りだけ（記憶データＳの内容により異なる）で可変抵抗素子Ｒの抵抗値が変化し、記憶データＳの値が書き換えられる。
【０１２６】
次に、演算結果を読み出す。
具体的には、（Ｖｙ１，Ｖｙ２）＝（０．０Ｖ，０．３Ｖ）又は（０．３Ｖ，０．０Ｖ）に設定した後、ＣＫＹ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオンになるため、Ｙ１，Ｙ２，Ｓの各値の組み合わせに応じて、Ｖｚ１，Ｖｚ２に４通りの電圧０Ｖ，０．１Ｖ，０．２Ｖ，０．３Ｖが現れる。
そして、０．０５Ｖ又は０．２５Ｖをしきい値Ｖｔｈとして２値化することにより、外部入力Ｙ１，Ｙ２間の論理演算、外部入力Ｙ１と記憶データＳの論理演算、外部入力Ｙ２と記憶データＳの論理演算の結果が得られる。
【０１２７】
この破壊演算を行う場合、図１の演算回路の表５〜表１６の各表において、Ｘ（Ｖｘ）をＹ１（Ｖｙ１）に置き換え、Ｗ（Ｖｗ）をＹ２（Ｖｙ２）に置き換えたのと同様の結果が得られる。
【０１２８】
上述したように、図１に示した演算回路と同様の演算結果が得られるため、この図８に示す演算回路によっても、図１に示した演算回路と同様に、以下の条件を全て満たした、ロジック・イン・メモリとして理想的と考えられる機能を実現することができる。
第１に、高電圧を必要とせず、ＣＭＯＳ回路の電源電圧程度の電圧で動作すること。
第２に、外部入力データと記憶データとのＡＮＤ演算及びＯＲ演算が共に可能であり、これらの演算の切り替えが可能であること。
第３に、２つの外部入力データ間のＡＮＤ演算及びＯＲ演算が共に可能であり、記憶データに応じてＡＮＤ演算とＯＲ演算とが切り替えられること。
第４に、記憶データを破壊せずに演算する場合と、演算結果を記憶データとして残す場合とを、使い方に応じて切り替えられること。
【０１２９】
そして、ＭＯＳトランジスタの数が２個に減ったことにより、面積効率を向上させることができる。
【０１３０】
ただし、図８に示す構成は、外部入力のタイミングの管理をする必要がある。
図１に示した構成では、クロックＣＫＹを反転させたものをクロックＣＫＸ，ＣＫＷとすれば、ＭＯＳトランジスタを２つずつ交互に動作させることが可能であり、外部入力Ｘ，Ｗ，Ｙ１，Ｙ２の入力タイミングが厳密ではなくて良い。
これに対して、図８に示す構成では、制御用のトランジスタが減って、ゲートのクロックＣＫＹが共通になっていることにより、外部入力Ｙ１，Ｙ２の電圧Ｖｙ１，Ｖｙ２の変更のタイミングを、クロックＣＫＹの０の期間（ＭＯＳトランジスタＭＷ１，ＭＷ２がオフの期間）にうまく合わせるように制御する必要がある。
従って、回路構成の簡略化を優先するか、制御の容易さを優先するかによって、いずれの構成を採用するか選択すればよい。
【０１３１】
続いて、図３に示した演算回路に対して、同様に簡略化を行った構成の演算回路の概略構成図（回路構成図）を図９に示す。
図９に示す演算回路では、図３に示した演算回路から、ＭＯＳトランジスタＭＲＤ，ＭＲＳ及びそのゲートやドレインへの入力Ｘ，ＣＫＸ，Ｗ，ＣＫＷの端子を削除して、制御用のＭＯＳトランジスタを２個のＭＯＳトランジスタＭＷ１，ＭＷ２だけとしている。その他の構成は、図３と同様であるので、同一符号を付して重複説明を省略する。
なお、図９では、可変抵抗素子Ｒのデータ書き込み閾値Ｖｗｒと、データ消去閾値をＶｅｒは、
０．４Ｖ＜Ｖｅｒ＜０．５Ｖ，０．４Ｖ＜Ｖｗｒ＜２．０Ｖ  （２）
が成立するものと仮定している。
【０１３２】
図９に示す演算回路は、演算の態様は図３に示した演算回路と同様であり、動作手順もおおむね図３に示した演算回路と同様である。
【０１３３】
まず、外部入力Ｙ１又は外部入力Ｙ２と、記憶データＳとの間の、非破壊演算を行う場合の動作手順は、次のようになる。
演算に先立ち、可変抵抗素子１１（Ｒ１），１２（Ｒ２）に記憶データＳを書き込む。
具体的には、（Ｖｙ１，Ｖｙ２）＝（２Ｖ，０Ｖ）又は（０Ｖ，２Ｖ）に設定した後、ＣＫＹ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオンになるため、（Ｒ１，Ｒ２）＝（１００Ω，１００ｋΩ）又は（１００ｋΩ，１００Ω）となって、記憶データＳとしてＳ＝１又はＳ＝０が書き込まれる。
【０１３４】
次に、外部入力との演算を行う。
具体的には、外部入力Ｙ１又は外部入力Ｙ２の値（１又は０）に応じて、電圧Ｖｙ１と電圧Ｖｙ２のうち、一方を０．７Ｖに、他方を０．３Ｖにそれぞれ設定した後、ＣＫＹ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオンになるため、Ｙ１，Ｙ２，Ｓの各値の組み合わせに応じて、Ｖｚに２通りの電圧０．３Ｖ，０．７Ｖが現れる。
そして、０．５Ｖをしきい値Ｖｔｈとして２値化することにより、外部入力Ｙ１と記憶データＳの論理演算、又は外部入力Ｙ２と記憶データＳの論理演算の結果が得られる。
【０１３５】
この非破壊演算を行う場合、図３の演算回路の表１７において、Ｘ（Ｖｘ）をＹ１（Ｖｙ１）に置き換え、Ｗ（Ｖｗ）をＹ２（Ｖｙ２）に置き換えたのと同様の結果が得られる。
そして、図９に示す演算回路では、３端子のメモリ素子を用いているため、出力端子電圧Ｖｚの値が２通りであり、Ｙ１，Ｙ２，Ｓの各値の組み合わせに応じて、
Z=~Y2&(Y1&S)|Y2&(Y1|~S)
という論理演算を行うことができるため、図８に示した演算回路と比較して、ずっと取り扱いが簡単になる。
【０１３６】
続いて、２つの外部入力Ｙ１，Ｙ２と、記憶データＳとの間の、破壊演算を行う場合の動作手順は、次のようになる。
演算に先立ち、可変抵抗素子１１（Ｒ１），１２（Ｒ２）に記憶データＳを書き込む。
具体的には、（Ｖｙ１，Ｖｙ２）＝（２Ｖ，０Ｖ）又は（０Ｖ，２Ｖ）に設定した後、ＣＫＹ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオンになるため、（Ｒ１，Ｒ２）＝（１００Ω，１００ｋΩ）又は（１００ｋΩ，１００Ω）となって、記憶データＳとしてＳ＝１又はＳ＝０が書き込まれる。
【０１３７】
次に、外部入力Ｙ１，Ｙ２の演算を行う。
具体的には、外部入力Ｙ１及び外部入力Ｙ２を、それぞれ１又は０のいずれか（４通りの組み合わせのいずれか）に設定した後、ＣＫＹ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオンになるため、Ｙ１，Ｙ２の値の組み合わせに応じて、可変抵抗素子１１（Ｒ１），１２（Ｒ２）の両端にかかる電圧が変化する。
そして、４通りの組み合わせのうちの１通りだけ（記憶データＳの内容により異なる）で可変抵抗素子１１，１２の抵抗値が変化し、記憶データＳの値が書き換えられる。
【０１３８】
次に、演算結果を読み出す。
具体的には、（Ｖｙ１，Ｖｙ２）＝（０．３Ｖ，０．７Ｖ）又は（０．７Ｖ，０．３Ｖ）に設定した後、ＣＫＹ＝１とする。
これにより、トランジスタＭＷ１，ＭＷ２がオンになるため、Ｙ１，Ｙ２，Ｓの各値の組み合わせに応じて、Ｖｚに２通りの電圧０．３Ｖ，０．７Ｖが現れる。
そして、０．５Ｖをしきい値Ｖｔｈとして２値化することにより、外部入力Ｙ１，Ｙ２間の論理演算、外部入力Ｙ１と記憶データＳの論理演算、外部入力Ｙ２と記憶データＳの論理演算の結果が得られる。
【０１３９】
この破壊演算を行う場合、図３の演算回路の表１８〜表２９の各表において、Ｘ（Ｖｘ）をＹ１（Ｖｙ１）に置き換え、Ｗ（Ｖｗ）をＹ２（Ｖｙ２）に置き換えたのと同様の結果が得られる。
【０１４０】
上述したように、図３に示した演算回路と同様の演算結果が得られるため、この図９に示す演算回路によっても、図３に示した演算回路と同様に、以下の条件を全て満たした、ロジック・イン・メモリとして理想的と考えられる機能を実現することができる。
第１に、高電圧を必要とせず、ＣＭＯＳ回路の電源電圧程度の電圧で動作すること。
第２に、外部入力データと記憶データとのＡＮＤ演算及びＯＲ演算が共に可能であり、これらの演算の切り替えが可能であること。
第３に、２つの外部入力データ間のＡＮＤ演算及びＯＲ演算が共に可能であり、記憶データに応じてＡＮＤ演算とＯＲ演算とが切り替えられること。
第４に、記憶データを破壊せずに演算する場合と、演算結果を記憶データとして残す場合とを、使い方に応じて切り替えられること。
【０１４１】
さらに、２つの可変抵抗素子１１，１２を相補的に接続した３端子のメモリ素子を用いているので、記憶データＳの内容に関わらず、２つの可変抵抗素子１１，１２の合成抵抗が高抵抗で一定の値となるため、消費電力が少なくて済む。
また、２つの可変抵抗素子１１，１２の合成抵抗の大きさと比較して、ＭＯＳトランジスタＭＲＤ，ＭＲＳのオン抵抗（たとえば１００Ω程度）が充分に小さくなるため、読み出し電圧がＭＯＳトランジスタＭＲＤ，ＭＲＳによって分圧されることなく、１と０との出力電圧レベルの差が大きい。
また、読み出し電圧Ｖｚの値が２通りであり、演算結果の１と０とを識別するための閾値電圧が１種類（例えば０．５Ｖ）で済む。
【０１４２】
そして、ＭＯＳトランジスタの数が２個に減ったことにより、面積効率を向上させることができる。一方、外部入力のタイミングの管理をする必要がある。
従って、回路構成の簡略化を優先するか、制御の容易さを優先するかによって、図３に示した構成か、図９に示した構成か、いずれの構成を採用するか選択すればよい。
【０１４３】
上述の各実施の形態の演算回路において、表１〜表４及び表１７の各表に示した動作は、演算を行うことによって記憶データＳが変化しない非破壊演算になっている。
この非破壊演算は、記憶データを書き戻すリセットの動作が不要であるというメリットがあるが、その一方で、電源電圧が無くなると演算結果も無くなってしまう揮発性を有している。
【０１４４】
これに対して、表５〜表１６及び表１８〜表２９の各表に示した動作は、演算を行うことによって記憶データＳが変化する破壊演算になっている。
この破壊演算は、記憶データを書き戻すリセットの動作が毎回必要になるという面倒はあるが、その一方で、電源電圧が無くなっても演算結果が保存される不揮発性を有しているというメリットがある。
【０１４５】
上述の各実施の形態の演算回路では、入力データと記憶データの演算を行うための動作は、非破壊演算も破壊演算もどちらのタイプでも可能であるため、それぞれのメリット即ち非破壊演算と不揮発性とを比較して、目的に合った演算タイプを選択することができる。
【０１４６】
なお、上述の各実施の形態では、演算結果を端子Ｚ１，Ｚ２，Ｚの電圧Ｖｚ１，Ｖｚ２，Ｖｚとして読み出すことができるところまでを説明しており、その信号をどう使うかについては、特に限定していない。
【０１４７】
まず、出力信号の基本的な使い方として、演算結果の出力端子Ｚ１，Ｚ２，Ｚに、ＭＯＳトランジスタのゲートを接続し、このＭＯＳトランジスタを出力端子Ｚ１，Ｚ２，Ｚの端子電圧Ｖｚ１，Ｖｚ２，Ｖｚによってオン・オフするパスゲートトランジスタとして用いて、ダイナミック回路における機能パスゲートを構成することが考えられる。
そして、機能パスゲートを直列または並列に２つ以上接続して、非特許文献２や非特許文献４に記載された他の不揮発性デバイスを用いた機能パスゲートと同様に、プリチャージトランジスタ及びＥｖａｌｕａｔｅトランジスタを付加することにより、機能パスゲートの演算結果同士で任意のＡＮＤ／ＯＲ演算を行い、その結果をマッチラインの電圧として出力することができる。
このダイナミック回路の動作については、既に説明したので省略する。
【０１４８】
また、出力信号の他の使い方として、演算結果の出力端子Ｚ１，Ｚ２，Ｚに、センスアンプ等の増幅器の入力端子を接続し、この出力によって次の段の論理回路を駆動させるようにすることもできる。
この場合は、ダイナミック回路に限らず、通常のスタティック回路と合わせて用いることも可能になる。
【０１４９】
上述の各実施の形態では、演算回路を構成する可変抵抗素子Ｒ，１１，１２が、２つの電極間に導体膜及び絶縁体膜を設けた構成である場合を説明したが、可変抵抗素子をその他の構成としてもよい。
例えば、導体膜の代わりに半導体膜を用いたり、絶縁体膜の代わりに半導体膜や導体膜を用いたりしてもよく、積層順序が逆であったり、単層であってもよい。いずれの構成でも、可変抵抗素子が、電圧を印加することにより高抵抗状態と低抵抗状態との間で変化する特性であり、さらに抵抗状態が変化する電圧の閾値を有していればよい。
【０１５０】
本発明は、上述の各実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲でその他様々な構成が取り得る。
【図面の簡単な説明】
【０１５１】
【図１】本発明の一実施の形態の演算回路の概略構成図（回路構成図）である。
【図２】Ａ  図１の可変抵抗素子の膜構成を示す断面図である。  Ｂ  図２Ａの可変抵抗素子の回路記号を示す図である。
【図３】本発明の他の実施の形態の演算回路の概略構成図（回路構成図）である。
【図４】Ａ  図３の演算回路に用いられるメモリ素子の模式的構成図である。  Ｂ  図４Ａのメモリ素子の回路構成図である。
【図５】Ａ  他の構成のメモリ素子の模式的構成図である。  Ｂ  図５Ａのメモリ素子の回路構成図である。
【図６】Ａ〜Ｄ  図４Ａのメモリ素子がとり得る状態を示す図である。
【図７】図４Ａのメモリ素子に書き込み電圧を与えた場合の動作を説明する状態推移図である。
【図８】図１の演算回路を変形した演算回路の概略構成図（回路構成図）である。
【図９】図３の演算回路を変形した演算回路の概略構成図（回路構成図）である。
【符号の説明】
【０１５２】
１，２  電極、３  導体膜、４  絶縁体膜、１０，２０  メモリ素子、１１  第１の可変抵抗素子、１２  第２の可変抵抗素子、Ｒ  可変抵抗素子、ＭＲＤ，ＭＲＳ，ＭＷ１，ＭＷ２，Ｔｒ１，Ｔｒ２  ＭＯＳトランジスタ、ＣＫＸ，ＣＫＹ，ＣＫＷ  クロック
【図１】
2006048298.tif 000032
【図２】
2006048298.tif 000033
【図３】
2006048298.tif 000034
【図４】
2006048298.tif 000035
【図５】
2006048298.tif 000036
【図６】
2006048298.tif 000037
【図７】
2006048298.tif 000038
【図８】
2006048298.tif 000039
【図９】
2006048298.tif 000040