(57)【要約】【課題】可変抵抗性記憶素子とセンスアンプとを備える論理回路のエラーを正確に検出可能とする。【解決手段】論理回路は、一対の信号ラインＢＬ、／ＢＬに相補的レベルの信号を出力する演算回路３０と、一対の信号ラインＢＬ、／ＢＬの信号レベルを増幅するセンスアンプ４０と、センスアンプ４０の一対の出力信号の電圧の変化の履歴に基づいてエラーを検出するエラー検出回路５０と、から構成される。演算回路３０は、論理演算回路であり、入力データと可変抵抗性記憶素子を用いた記憶回路１０の記憶データとを演算し、演算結果に対応する相補的レベルの信号を信号ラインに出力する。エラー検出回路５０は、センスアンプ４０が、その一対の出力信号を相補的信号レベルに設定する前に、正常状態では起こりえない共に中間レベルとなったことを検出する。【選択図】図１
2015170378.tif 000002
【特許請求の範囲】
【請求項１】
データを相補的に記憶する一対の可変抵抗性記憶素子を備え一対の信号ラインに相補的信号を出力する信号出力回路と、
前記一対の信号ラインに接続され、前記一対の信号ラインの信号レベルを増幅し、一対の出力信号を出力するセンスアンプと、
前記センスアンプの一対の出力信号の信号レベルの履歴に基づいてエラーを検出するエラー検出回路と、
から構成されることを特徴とする論理回路。
【請求項２】
前記エラー検出回路は、前記センスアンプの一対の出力信号の電圧が、前記センスアンプにより相補的レベルに設定される前の電圧の変化に基づいてエラーを検出する、ことを特徴とする請求項１に記載の論理回路。
【請求項３】
前記エラー検出回路は、前記センスアンプの一対の出力信号の電圧が、予め定められた電圧関係の状態を経過したことに基づいてエラーを検出する、ことを特徴とする請求項１又は２に記載の論理回路。
【請求項４】
前記エラー検出回路は、前記センスアンプの一対の出力信号の電圧が、予め定められた中間電圧に停滞したことに基づいてエラーを検出する、ことを特徴とする請求項１乃至３の何れか１項に記載の論理回路。
【請求項５】
前記エラー検出回路は、前記センスアンプの一対の出力信号の電圧が、正常状態では取りえない電圧を経過したことに基づいてエラーを検出する、ことを特徴とする請求項１乃至４の何れか１項に記載の論理回路。
【請求項６】
前記信号出力回路による相補的信号の出力に先立ち、前記一対の信号ラインを充電するプリチャージ回路を備える、ことを特徴とする請求項１乃至５の何れか１項に記載の論理回路。
【請求項７】
前記信号出力回路は、外部から供給されたデータに従って、前記一対の信号ラインと前記一対の可変抵抗性記憶素子との接続を制御することにより、外部から供給されたデータと前記一対の可変抵抗性記憶素子に記憶されているデータとの演算を実行する演算回路から構成される、ことを特徴とする請求項１乃至６の何れか１項に記載の論理回路。
【請求項８】
前記信号出力回路は、前記一対の可変抵抗性記憶素子に記憶されているデータに対応する電圧レベルの相補的信号を前記一対の信号ラインに出力する記憶回路から構成される、ことを特徴とする請求項１乃至６の何れか１項に記載の論理回路。
【請求項９】
前記論理回路は複数配置されており、各論理回路は、前段の論理回路の出力信号とエラー検出信号を受信し、前段の論理回路のエラー検出回路が出力したエラー検出信号と、自己のエラー検出回路が出力したエラー検出信号との論理を取って、次段の論理回路にエラー検出信号として供給する回路を備える、ことを特徴とする請求項１乃至８の何れか１項に記載の論理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、論理回路に関し、特に、エラー検出機能を備える論理回路に関する。
【背景技術】
【０００２】
不揮発性記憶素子に記憶されているデータと外部から供給されたデータとを演算し、その結果を出力する不揮発性ロジックゲートが知られている。
【０００３】
不揮発性記憶素子として、ＭＴＪ素子、ＲｅＲＡＭ素子等の抵抗値の大小でデータを記憶する可変抵抗性記憶素子が使用されている。これらの可変抵抗性不揮発記憶デバイスにおいて、所望の論理値を記憶できない現象が発生する。つまり、ＲｅＲＡＭ素子に対して書込み操作が不十分な場合やＭＴＪ素子において読出し状態でも記憶状態が確率的に反転してしまうリードディスターブという物理現象が起きることがある。
【０００４】
材料/デバイスの研究では、これらの現象が起こらないような施策が研究されている（例えば、特許文献１から３参照）。
【０００５】
また、回路的見地から、エラーの発生をチェックする手法も提案されている（特許文献４）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１７６３８３号公報
【特許文献２】特開２０１３−２０１２２０号公報
【特許文献３】特開２０１２−８４７６５号公報
【特許文献４】特開２００８−４２６３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
材料的見地とは別に、回路的見地からエラー検出が望まれる。ここで、特許文献４の回路は、ラッチ回路の安定状態にある入力と安定状態にある出力とを比較し、一致する場合に、記憶データが正しいと判別する。遷移状態では、データが変化し、また不安定であるため、データが正しいにもかかわらず、エラーと判別する虞があるからである。
【０００８】
可変抵抗性記憶素子を用いるロジックセルやメモリセルでは、出力電圧振幅を確保するため、或いは、レベル判定の基準を設定するため、２つの可変抵抗性記憶素子にデータを相補的に記憶させ、その出力をセンスアンプにより増幅して出力する回路が採用されることが多い。このような構成の場合、センスアップにより、一対の出力データの信号レベルに仮に異常性がある（例えば、センスアンプが無いとした場合の出力電圧のレベルが異常である）としても、相補データに強引に設定されてしまう。このため、安定状態でデータを比較するだけでは、エラー発生の有無を正しく判別することは困難である。
同様の問題は、可変抵抗性記憶素子とセンスアンプとを使用する論理回路（記憶回路等を含む）でも発生する。
【０００９】
本発明は、このような現状に鑑みてなされたものであり、可変抵抗性記憶素子とセンスアンプとを備える論理回路のエラーを正確に検出可能とすることを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の論理回路は、
データを相補的に記憶する一対の可変抵抗性記憶素子を備え一対の信号ラインに相補的信号を出力する信号出力回路と、
前記一対の信号ラインに接続され、前記一対の信号ラインの信号レベルを増幅し、一対の出力信号を出力するセンスアンプと、
前記センスアンプの一対の出力信号の信号レベルの履歴に基づいてエラーを検出するエラー検出回路と、
から構成される。
【００１１】
前記エラー検出回路は、例えば、前記センスアンプの一対の出力信号の電圧が、前記センスアンプにより相補的レベルに設定される前の電圧の変化に基づいてエラーを検出する。
【００１２】
前記エラー検出回路は、例えば、前記センスアンプの一対の出力信号の電圧が、予め定められた電圧関係の状態を経過したことに基づいてエラーを検出する。
【００１３】
前記エラー検出回路は、例えば、前記センスアンプの一対の出力信号の電圧が、予め定められた中間電圧に停滞したことに基づいてエラーを検出する。
【００１４】
前記エラー検出回路は、例えば、前記センスアンプの一対の出力信号の電圧が、正常状態では取りえない電圧を経過したことに基づいてエラーを検出する。
【００１５】
前記信号出力回路による相補的信号の出力に先立ち、前記一対の信号ラインを充電するプリチャージ回路を備えてもよい。
【００１６】
前記信号出力回路は、例えば、外部から供給されたデータに従って、前記一対の信号ラインと前記一対の可変抵抗性記憶素子との接続を制御することにより、外部から供給されたデータと前記一対の可変抵抗性記憶素子に記憶されているデータとの演算を実行する演算回路から構成される。
【００１７】
前記信号出力回路は、例えば、前記一対の可変抵抗性記憶素子に記憶されているデータに対応する電圧レベルの相補的信号を前記一対の信号ラインに出力する記憶回路から構成される。
【００１８】
例えば、前記論理回路は複数配置されており、各論理回路は、前段の論理回路の出力信号とエラー検出信号を受信し、前段の論理回路のエラー検出回路が出力したエラー検出信号と、自己のエラー検出回路が出力したエラー検出信号との論理を取って、次段の論理回路にエラー検出信号として供給する回路を備える。
【発明の効果】
【００１９】
本発明によれば、可変抵抗性記憶素子とセンスアンプとを備える回路のエラーを正確に検出することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態に係るエラー検出機能付論理演算回路のブロック図である。
【図２】図１に示す記憶回路と書込回路の回路構成図である。
【図３】図１に示す演算回路の一例の回路図である。
【図４】図１に示す演算回路の他例の回路図である。
【図５】図１に示すセンスアンプの回路図である。
【図６】図１に示すエラー検出回路の回路図である。
【図７】図６に示すエラー検出回路の動作を説明するための図であり、（ａ）は、エラー検出回路の回路図、（ｂ）は、一方のインバータ回路の入出力特性を示す図、（ｃ）は他方のインバータ回路の入出力特性を示す図、（ｄ）はＡＮＤ回路の出力を示す図である。
【図８】正常時のエラー検出回路の動作を説明するための図であり、（ａ）はクロック信号ＣＬＫのレベル変化を示すタイミングチャート、（ｂ）はセンスアンプの２つの出力の変化を示すタイミングチャート、（ｃ）は、２つの検出回路の出力を示すタイミングチャート、（ｄ）は、エラー検出回路の出力を示すタイミングチャートである。
【図９】センスアンプの出力が、中間レベルに長時間滞在するというエラーが発生した時のエラー検出回路の動作を説明するための図であり、（ａ）はセンスアンプの２つの出力の変化を示すタイミングチャート、（ｂ）は、２つの検出回路の出力を示すタイミングチャート、（ｃ）は、エラー検出回路の出力を示すタイミングチャートである。
【図１０】センスアンプの出力の単位時間あたりの変化が小さすぎるというエラーが発生した時のエラー検出回路の動作を説明するための図であり、異常時のエラー検出回路の動作を説明するための図であり、（ａ）は、センスアンプの２つの出力の変化を示すタイミングチャート、（ｂ）は、２つの検出回路の出力を示すタイミングチャート、（ｃ）は、エラー検出回路の出力を示すタイミングチャートである。
【図１１】（ａ）は、複数の演算回路が配置されている場合の構成例を示すブロック図。（ｂ）は、（ａ）に示すＲＳフリップフロップの回路構成例を示す図である。
【図１２】エラー信号を演算結果と共に後段の回路に伝達する構成の回路図であり、（ａ）は中段の回路の構成例、（ｂ）は回路全体の構成例を示す。
【図１３】（ａ）と（ｂ）は、それぞれ、実施の形態２に係るメモリ回路の回路例を示す図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照しながら本発明の実施の形態に係る、エラー検出機能を備える論理回路について説明する。
【００２２】
（実施の形態１）
発明の実施の形態１に係る論理回路は、オペアンプとエラー検出機能とを備え、入力データベクトルＸと予め記憶しているデータベクトルＹとの間で演算ｆ（Ｘ，Ｙ）を実行し、演算結果であるデータベクトルＺを生成すると共に演算結果Ｚのエラーを検出する機能を有するエラー検出機能付論理演算回路１００である。簡単のため出力値は１種類のＺとしている。／Ｚは、Ｚの相補信号である。
エラー検出機能付論理演算回路１００は、記憶回路１０と、書込回路２０と、演算回路３０と、センスアンプ４０と、エラー検出回路５０と、インバータ回路６０ａ，６０ｂと、を備える。
【００２３】
記憶回路１０は、ＭＴＪ（Magnetic Tunnel Junction）素子、ＲｅＲＡＭ（Resistance Random Access Memory）素子等の抵抗値の大小でデータを記憶する可変抵抗性記憶素子を使用した記憶回路である。以下では、可変抵抗性記憶素子として、ＭＴＪ素子を使った例を説明するが、ＲｅＲＡＭ素子等を使用する場合も基本構成は同様である。本実施の形態においては、記憶回路１０は、図２に詳細に示すように、互いに同一特性を有する一対のＭＴＪ素子１１と１２とから構成されている。ＭＴＪ素子１１と１２は、ピン層とフリー層とを備え、書き込み電流又は書き込み磁界に応じて、フリー層の磁化の向きが変化する。ＭＴＪ素子１１と１２は、ピン層とフリー層の磁化の向きが揃ったときに、低抵抗となり、ピン層とフリー層の磁化の向きが反対となったときに、高抵抗となる。高抵抗と低抵抗にビットデータ「１」又は「０」を割り当てることにより、ＭＴＪ素子１１と１２にビットデータを記憶させることができる。各層の磁化の向きが横方向の面内方式と縦方向の縦方式がある。
【００２４】
本実施形態においては、ＭＴＪ素子１１と１２は、一端が接地され、他端が演算回路３０との接続ノードＮ１、Ｎ２に接続されている。
【００２５】
ＭＴＪ素子１１と１２は相補的にデータを記憶する。即ち、ＭＴＪ素子１１は、ビットデータＹ（「１」又は「０」）を記憶し、ＭＴＪ素子１２は、ビットデータＹの反転データ／Ｙ（「０」又は「１」）を記憶する。
【００２６】
書込回路２０は、ＭＴＪ素子１１と１２の両端に個別に接続され、ビットデータＹとその反転データ／ＹをＭＴＪ素子１１と１２に書き込む。書込回路が電流書込み方式の場合、必要に応じてＭＴＪ素子１１と１２の接地を切離すスイッチ用のＭＯＳトランジスタを挿入する。
【００２７】
図１に示す演算回路３０は、記憶回路１０に記憶されている相補的データに基づいて一対の信号ラインであるビットラインＢＬと／ＢＬに相補的なレベルの信号を出力する回路の一例であり、実施する演算の内容に応じて適宜設計される。
図３は、演算回路３０が３入力ＸＯＲ回路の２入力部分の例を示す。
この演算回路３０は、転送ゲート３１と、ＸＯＲ演算部３２とを備える。
転送ゲート３１は、クロック信号ＣＬＫに応答して、記憶回路１０とＸＯＲ演算部３２とを遮断し、又は、記憶回路１０の記憶データＹ、／ＹをＸＯＲ演算部３２に供給する。
【００２８】
より具体的には、転送ゲート３１は、ＮチャネルＭＯＳトランジスタ３１１と３１２とから構成される。ＮチャネルＭＯＳトランジスタ３１１は、その電流路の一端が接続ノードＮ１を介してＭＴＪ素子１１の他端に接続され、電流路の他端がＸＯＲ演算部３２に接続され、ゲートにクロック信号ＣＬＫが印加され、クロック信号ＣＬＫがハイレベルのときにオンして、ＭＴＪ素子１１が記憶しているビットデータＹをＸＯＲ演算部３２に供給する。
【００２９】
ＮチャネルＭＯＳトランジスタ３１２は、その電流路の一端が接続ノードＮ２を介してＭＴＪ素子１２の他端に接続され、電流路の他端がＸＯＲ演算部３２に接続され、ゲートにクロック信号ＣＬＫが印加され、クロック信号ＣＬＫがハイレベルのときにオンして、ＭＴＪ素子１２が記憶しているビットデータ／ＹをＸＯＲ演算部３２に供給する。
【００３０】
ＸＯＲ演算部３２は、外部から入力されたビットデータａとｂとに対応して、ビットラインＢＬ、／ＢＬとＭＴＪ素子１１、１２とを接続する経路の導通・非導通を制御することにより、最終的に、外部から入力されたビットデータａとｂと記憶回路１０から転送ゲート３１を介して供給されたビットデータＹとの排他的論理和ａ＾ｂ＾Ｙとを求めるための演算回路である。
【００３１】
一方、図４は、演算回路３０としての多数決ゲートの例を示す。
この多数決回路は、転送ゲート３１と、多数決演算部３３とを備える。
転送ゲート３１は、図３に示す転送ゲート３１と同一の構成である。
多数決演算部３３は、外部より入力されたビットデータａとｂとに対応して、ビットラインＢＬ、／ＢＬとＭＴＪ素子１１、１２とを接続する経路の導通・非導通を制御することにより、最終的に、外部から入力されたビットデータａとｂと記憶回路１０から転送ゲート３１を介して供給されたビットデータＹとのａｂ＋ｂＹ＋Ｙａに相当する値を求めるための演算回路である。
【００３２】
図１に示すセンスアンプ４０は、一対の信号ラインであるビットラインＢＬと／ＢＬに接続され、ビットラインＢＬと／ＢＬ間の電位差を増幅し、対応するビットデータＺとその反転データ／Ｚを出力する。センスアンプ４０の回路構成は任意であるが、図５にその一例を示す。
【００３３】
このセンスアンプ４０は、ＮチャネルＭＯＳトランジスタ４１１と、ＰチャネルＭＯＳトランジスタ４１２と、ＮチャネルＭＯＳトランジスタ４１３と、ＰチャネルＭＯＳトランジスタ４１４とを備える。
【００３４】
ＮチャネルＭＯＳトランジスタ４１１は、ビットラインＢＬに電流路の一端が接続され、電流路の他端がＰチャネルＭＯＳトランジスタ４１２の電流路の一端に接続されている。ＰチャネルＭＯＳトランジスタ４１２は、電流路の一端がＮチャネルＭＯＳトランジスタ４１１の電流路の他端に接続され、電流路の他端が電源ライン４１５に接続されている。
【００３５】
ＮチャネルＭＯＳトランジスタ４１３は、ビットラインバー／ＢＬに電流路の一端が接続され、電流路の他端がＰチャネルＭＯＳトランジスタ４１４の電流路の一端に接続されている。ＰチャネルＭＯＳトランジスタ４１４は、電流路の一端がＮチャネルＭＯＳトランジスタ４１３の電流路の他端に接続され、電流路の他端が電源ライン４１５に接続されている。
【００３６】
ＮチャネルＭＯＳトランジスタ４１１とＰチャネルＭＯＳトランジスタ４１２のゲートは、ＮチャネルＭＯＳトランジスタ４１３とＰチャネルＭＯＳトランジスタ４１４との接続点Ｎ４に接続されている。また、ＮチャネルＭＯＳトランジスタ４１３とＰチャネルＭＯＳトランジスタ４１４とのゲートは、ＮチャネルＭＯＳトランジスタ４１１とＰチャネルＭＯＳトランジスタ４１２との接続点Ｎ３に接続されている。
【００３７】
ＮチャネルＭＯＳトランジスタ４１１とＰチャネルＭＯＳトランジスタ４１２との接続ノードＮ３が、演算結果／Ｚの出力ノードとなる。ＮチャネルＭＯＳトランジスタ４１３とＰチャネルＭＯＳトランジスタ４１４との接続ノードＮ４が、演算結果の反転出力Ｚの出力ノードとなる。
【００３８】
電源ライン４１５と出力ノードＮ３との間には、クロック信号ｃｌｋがゲートに印加されたプリチャージ用ＰチャネルＭＯＳトランジスタ４１６が接続され、電源ライン４１５と反転出力ノードＮ４との間には、クロック信号ＣＬＫがゲートに印加されたプリチャージ用ＰチャネルＭＯＳトランジスタ４１７が接続されている。
【００３９】
図１に示すエラー検出回路５０は、センスアンプ４０の一対の出力信号の信号レベルの履歴、より具体的には、センスアンプ４０が一対の出力信号の信号レベルが相補的レベルに最終的に設定される前の電圧の変化、例えば、予め定められた電圧関係の状態を経過したこと、予め定められた中間電圧に停滞したこと、センスアンプ４０の一対の出力信号の電圧が正常状態では取りえない電圧を経過したこと、等に基づいてエラーを検出するものである。本実施形態では、エラー検出回路５０は、図６に示すように、出力データＺの誤りを検出するエラー検出部５１と、出力データ／Ｚの誤りを検出するエラー検出部５２と、ＡＮＤ回路５３とから構成される。
【００４０】
エラー検出部５１は、チェック対象の出力ビットデータＺが入力するインバータ回路５１１と５１２と、ＡＮＤ回路５１３とを備え、論理回路の形態を取りつつ、ある一定範囲にある中間電位の発生を検出する回路である。より具体的には、インバータ回路５１１は、図７（ｂ）に示すように、閾値が電源電圧ＶＤＤの１／３に設定された反転出力回路である。従って、インバータ回路５１１は、入力信号ｄｉｎの電圧がＶＤＤ／３未満のときにはハイレベルの出力信号ｏｕｔ１を出力し、入力信号ｄｉｎの電圧がＶＤＤ／３より大きいときにはローレベルの信号ｏｕｔ１を出力する。
【００４１】
一方、インバータ回路５１２は、図７（ｃ）に示すように、閾値が電源電圧ＶＤＤの２／３に設定された反転出力回路である。従って、インバータ回路５１２、入力信号ｄｉｎの電圧が２・ＶＤＤ／３未満のときにはハイレベルの出力信号ｏｕｔ２を出力し、入力信号ｄｉｎの電圧が２・ＶＤＤ／３より大きいときにはローレベルの信号ｏｕｔ２を出力する。
【００４２】
このように閾値の異なるインバータ回路は、例えば、インバータ回路を構成するＭＯＳトランジスタのチャネル幅を異なるサイズとすること、或いは、インバータ回路を構成するＭＯＳトランジスタのチャネルの不純物濃度を調整すること等により達成可能である。
【００４３】
ＡＮＤ回路５１３は、インバータ回路５１１の出力信号ｏｕｔ１がローレベルで、且つ、インバータ回路５１２の出力信号ｏｕｔ２がハイレベルのときに、ハイレベルとなり、その他の期間はローレベルとなる出力信号ｄｏｕｔを出力する回路である。この結果、インバータ入力付きＡＮＤ回路５１３は、図７（ｄ）に示すように、入力信号ｄｉｎがＶＤＤ／３より大きく２・ＶＤＤ／３より小さいときに、ハイレベル、その他のときにローレベルとなる信号ｄｏｕｔを出力する。
【００４４】
エラー検出部５２は、エラー検出部５１と実質的に同一の構成と特性を有する。
【００４５】
ＡＮＤ回路５３は、エラー検出部５１と５２の出力信号ｄｏｕｔ１とｄｏｕｔ２との論理積を取って検出信ｄｏｕｔを出力する。
エラー検出部５１と５２とが上記の構成及び特性を有するため、エラー検出回路５０は、センスアンプ４０の出力ノードＮ３が出力するデータＺ、出力ノードＮ４が出力するデータ／Ｚが共に中間レベルの電圧であるときに、エラーを検出したことを示すハイレベルの検出信号ｄｅｔを出力する。
【００４６】
後述するように、記憶回路１０及び演算回路３０が正常な状態では、出力データＺ及び／Ｚが中間電位に停留することはない。従って、出力データの電位が中間電位に一定時間以上停留する場合には、何らかの異常があるとみなすことができる。一方、出力データは、最終的には、センスアンプ４０の作用により、一方がハイレベル、他方がローレベルに設定される。この状態となってしまってからでは、エラーの検出は困難である。エラー検出回路５０は、この過渡期における出力信号の個々の電圧レベルとその組み合わせの異常状態を経過したことを検出するものである。
【００４７】
図１に示すインバータ回路６１と６２は、それぞれ、センスアンプ４０の出力データＺと／Ｚを反転して、このエラー検出機能付論理演算回路１００の出力データ／Ｚ、Ｚとして出力する回路である。
【００４８】
次に、上記構成を有するエラー検出機能付論理演算回路１００の動作を説明する。
【００４９】
まず、正常時の動作について、図８（ａ）〜（ｄ）を参照して説明する。
予め、書込回路２０は、記憶回路１０を構成するＭＴＪ素子１１にビットデータＹを、ＭＴＪ素子１２にビットデータ／Ｙを記憶しておく。
【００５０】
続いて、図８（ａ）に示すように、クロック信号ｃｌｋがローレベルの状態で、データＸが演算回路３０に入力される。図３，４の回路であれば、ビットデータａとｂがそれぞれ、ＸＯＲ演算部３２または多数決演算部３３に供給される。このとき、クロック信号ｃｌｋがローレベルであるため、転送ゲート３１を構成するＮチャネルＭＯＳトランジスタ３１１と３１２は共にオフしており、演算部はまだ演算を行わない。
【００５１】
また、クロック信号ｃｌｋがローレベルであるため、プリチャージ用ＰチャネルＭＯＳトランジスタ４１６と４１７が共にオンし、出力ノードＮ３，Ｎ４をほぼ電源電圧ＶＤＤとする。従って、図８（ｂ）に示すように、出力データＺ、／Ｚは共にハイレベルにプリチャージされる。このときＮチャネルＭＯＳトランジスタ４１１および４１３がオンする。しかしながら転送ゲート３１を構成するＮチャネルＭＯＳトランジスタ３１１と３１２は共にオフしており、ＭＴＪ素子１１と１２を介した放電は始まらない。
【００５２】
クロック信号ｃｌｋがハイレベルとなり評価期間（図ではＥｖａｌｕａｔｅ）が始まると、プリチャージ用ＰチャネルＭＯＳトランジスタ４１６および４１７がオフする。さらに転送ゲート３１を構成するＮチャネルＭＯＳトランジスタ３１１と３１２は共にオンとなり、ビットラインＢＬと反転ビットライン／ＢＬの両方に接地への経路が構成される。ビットラインＢＬと反転ビットライン／ＢＬの接地への抵抗差に応じて放電時間に差が生じる。図８（ｂ）では反転ビットライン／ＢＬ側（ＭＴＪ素子１２）が低抵抗、ビットラインＢＬ側（ＭＴＪ素子１１）が高抵抗の場合の例を示している。反転ビットライン／ＢＬ側が低抵抗であるため放電が速く、ローレベルまで達する。一方、ビットラインＢＬ側は放電が遅い。さらに、ＰチャネルＭＯＳトランジスタ４１４とＮチャネルＭＯＳトランジスタ４１３のインバータ入力となるＮ３がローレベルであるためインバータ出力に当たるＮ４がＶＤＤ側に引き上げられる。
【００５３】
この状態では、第１の検出部５１を構成するインバータ回路５１１と５１２の入力ｄｉｎ（＝Ｚ）は、共にハイレベルとなる。図８（ｃ）に示すように、ＡＮＤ回路５１３の出力ｄｏｕｔ１は入力Ｚがローレベルへの放電動作のため、電源電位の中間レベル、すなわちＶＤＤの１／３と２／３を通過するのでパルス状に一瞬オンとなる。一方、入力／Ｚは中間電位まで放電されることなくＶＤＤに引き上げられるため、第２の検出部５２の出力ｄｏｕｔ２はローレベル固定となる。
【００５４】
信号ｄｏｕｔ１とｄｏｕｔ２が共にハイレベルになることがないので、図８（ｄ）に示すように、エラー検出回路５０の出力ｄｅｔはローレベルを維持する。即ち、エラーは検出されない。
【００５５】
次に、異常時の動作を説明する。
まず、ＭＴＪ素子１１，１２の破損、書込回路２０の書き込みエラーなどの為に、ＭＴＪ素子１１，１２が高抵抗と低抵抗の組み合わせにならず、高抵抗と高抵抗または低抵抗と低抵抗の組合せになってしまったと仮定する。この場合、記憶データＹと／Ｙが（０，１）または（１，０）の正しい値とならない。このため、演算回路３０の演算結果も不良となってしまう。
その結果、センスアンプ４０のノードＮ３とＮ４の電圧（データＺ，／Ｚ）が相補的にならず、図９（ａ）に示すように、共に中間電圧（２・ＶＤＤ／３＞Ｚ，／Ｚ＞ＶＤＤ／３）になって停留し、正常状態では取りえ来あり得ない組み合わせの電圧関係状態になったと仮定する。
この場合、図９（ｂ）に示すように、第１の検出部５１の出力ｄｏｕｔ１と第２の検出部５２の出力ｄｏｕｔ２は共にハイレベルとなる。このため、図９（ｃ）に示すように、エラー検出回路５０の出力ｄｅｔはハイレベルとなる。これにより、エラーが発生していることを検出することができる。この場合も、時間の経過により、出力データＺと／Ｚは、センスアンプ４０の働きにより、一方がハイレベル、他方がローレベルに設定される。
【００５６】
また、同様の理由或いは他の理由により、例えば、図１０（ａ）に示すように、データＺの変化が遅く、或いは、データ／Ｚの電圧の落ち込みが大きくなったと仮定する。この場合も、センスアンプ４０のノードＮ３とＮ４の電圧（データＺ，／Ｚ）が相補的にならず、図１０（ａ）に示すように、共に中間電圧（２・ＶＤＤ／３＞Ｚ，／Ｚ＞ＶＤＤ／３）になってしまう期間が生じる。即ち、センスアンプ４０の出力信号Ｚと／Ｚとが、中間電圧停留し、正常状態では取りえない組み合わせの電圧関係状態になってしまう。
【００５７】
この場合、図１０（ｂ）に示すように、第１の検出部５１の出力ｄｏｕｔ１と第２の検出部５２の出力ｄｏｕｔ２は共にハイレベルとなる期間が発生する。このため、図１０（ｃ）に示すように、エラー検出回路５０の出力ｄｅｔは一時的にハイレベルとなる。これにより、エラーが発生していることを検出することができる。この場合も、出力データＺと／Ｚは、最終的には、センスアンプ４０の働きにより、一方がハイレベルと他方がローレベルに設定される。
【００５８】
以上説明したように、この実施の形態によれば、センスアンプ４０の最終出力としてのデータＺと／Ｚの一致不一致ではなく、センスアンプ４０の出力ノードＮ３とＮ４の電圧の変化履歴（データＺと／Ｚの電圧の変化履歴）を検知して、共に中間レベルになるという正常状態では取りえない不適切な変化をしたときに、エラーを検出している。従って、センスアンプ４０が正常で、データの最終出力が相補的な出力となる場合でも、エラーを検出することができる。
【００５９】
また、エラー検出回路５０は、インバータ回路とＡＮＤ回路で構成可能である。中間電位を検出するために、コンパレータ等を使用すると、エラー検出回路が膨大なサイズとなってしまうが、本実施形態の構成により、シンプル構成で且つ小さいハードウエアでエラーを検出することが可能となる。
【００６０】
上記実施の形態では、１つの演算回路について説明したが、多くの場合には、複数の演算回路が相互に組み合わされて組み合わせ回路として使用される。また、Ｄ（Ｄａｔａ）フリップフロップ（ＦＦ）等の記憶素子を配置することにより順序回路として使用されることも多い。
例えば、図１１（ａ）の例では、演算回路１が入力データａとｂと記憶データＹを演算して、データＺを出力し、演算回路２が演算回路１の出力Ｚと入力データｃとを演算して、データＱを出力し、演算回路３が入力データｄとｅと記憶データＵを演算して、データＲを出力し、演算回路４が演算回路２の出力Ｑと演算回路３の出力Ｒと記憶データＶとを演算してデータＳを出力することにより、演算回路１〜４が１つの組み合わせ回路として動作する例を示す。さらに、このデータＳをエッジトリガＤ−ＦＦで適宜のタイミングで記憶し、何れかの演算回路に供給することにより、順序回路を構成するようにしてもよい。
【００６１】
このような構成の場合、演算回路１〜演算回路４にそれぞれエラー検出回路を配置し、その出力ｄｅｔ１〜４の論理和をＯＲ回路で取ってフリップフロップでラッチするようにすればよい。本例では、フリップフロップとして、図１１（ｂ）に示すＲＳフリップフロップを使用している。
【００６２】
この例では、演算回路１〜演算回路４の何れかでエラーが検出されると、ＯＲ回路の出力がハイレベルとなり、これがＲＳラッチに供給されることで、ＲＳラッチのＱ出力はハイレベルとなる。回路動作の開始時等に、ＲＳラッチをリセットすることにより、何れかのタイミングで、何れかの演算回路でエラーが検出されたときに、ＲＳラッチのＱ出力がハイレベルとなり、演算結果に誤りが含まれている可能性があることがわかる。
【００６３】
なお、図１１（ａ）の複数の演算回路のエラー検出の結果をＯＲ回路に供給した。このような構成では、大規模回路の場合、エラー伝達するための配線が多くなり、ハードウエア構成が大がかりなものとなってしまう虞がある。このような事態を避けるため、例えば、図１２（ａ）に示すように、中間段階の演算回路については、前段の演算回路からのエラー信号（図では、a_errとb_err）と、この演算回路のエラー検出信号det_inとの論理和を取って、次段に供給するように構成すればよい。
このような構成とすれば、図１１（ａ）に示す回路は、図１２（ｂ）に示すように改良でき、回路配線をより簡単なものとすることができる。
【００６４】
以上の説明では、演算回路に本願発明を適用する実施の形態について説明したが、本願発明に係る論理回路はこれに限定されず、種々の変形が可能である。
以下、本願発明を論理回路としてのメモリ回路に適用した例を図１３を参照して説明する。
【００６５】
図１３に示す例では、一対の可変抵抗性記憶素子６１，６２にセンスアンプ６３が接続され、これらが、選択トランジスタをＴ１，Ｔ２を介してビット線ＢＬと／ＢＬに接続されている。選択トランジスタＴ１とＴ２は、ワード線ＷＬ上のワード信号により、オン・オフされる。
【００６６】
このような構成おいて、図１３（ａ）に示すように、ビット線ＢＬと／ＢＬの電圧をエラー検出回路５０に供給すること、或いは、図１３（ｂ）に示すように、可変抵抗記憶素子６１、６２とセンスアンプ６３との一対の接続ライン上の接続ノードＮ５とＮ６の電圧をエラー検出回路５０に供給すること、実施形態１と同様にエラーを検出することが可能である。なお、図１３はＭＲＡＭ（Magnetoresistive Random Access Memory）を例示するが、通常のＳＲＡＭ(Static Random Access Memory）等にも適用可能である。
【００６７】
図１３（ａ）に示す構成では、例えば、ワードラインＷＬの電圧がハイレベルとなって、選択トランジスタＴ１，Ｔ２がオンしてから、プリチャージされているビットラインＢＬ、／ＢＬの電圧の変化を検出することにより、異常を検出することができる。
また、図１３（ｂ）に示す構成では、例えば、パワーゲーティング用の電圧ＰＧとソースライン電圧ＶＳＬが印加され、両者間に電圧が印加されてからの接続ノードＮ５、Ｎ６の電圧の変化を検出することにより、異常を検出することができる。
【００６８】
以上、本発明の実施の形態を説明したが、本発明の構成はこれらに限定されず、種々の変形が可能である。
【００６９】
例えば、上記実施の形態においては、エラーを検出するためにインバータ回路の閾値を２ＶＤＤ／３とＶＤＤ／３に設定したが、これらは任意である。検出対象のノードの電圧について、正常な状態では同時には出現しないような電圧関係を求めておき、その組み合わせを検出できるように閾値を設定しておけばよい。
【００７０】
また、上記実施の形態においては、２つのノードの出力が同時に中間電位となったときに、エラーを検出したが、例えば、図９（ａ）、１０（ａ）の電圧変化で、Ｚ或いは／Ｚが異常に低い電圧、例えば、ＶＤＤ／２以下となったときに、エラーを検出する等してもよい。即ち、エラー検出回路５０は、センスアンプ４０の一対の出力信号の一方又は両方の電圧が、正常状態では取りえない電圧、例えば、基準値以下の電圧、基準値以上の電圧等を経過したことに基づいてエラーを検出してもよい。
【００７１】
また、回路構成なども、同様の機能が実現できるならば、任意に変更可能である。
【符号の説明】
【００７２】
１０              …記憶回路
１１、１２        …ＭＴＪ素子
２０              …書込回路
３０              …演算回路
４０、６３        …センスアンプ
５０              …エラー検出回路
６０ａ、６０ｂ    …インバータ回路
【図１】
2015170378.tif 000003
【図２】
2015170378.tif 000004
【図３】
2015170378.tif 000005
【図４】
2015170378.tif 000006
【図５】
2015170378.tif 000007
【図６】
2015170378.tif 000008
【図７】
2015170378.tif 000009
【図８】
2015170378.tif 000010
【図９】
2015170378.tif 000011
【図１０】
2015170378.tif 000012
【図１１】
2015170378.tif 000013
【図１２】
2015170378.tif 000014
【図１３】
2015170378.tif 000015