【実施例】
【0012】
図1は、本発明の実施例に係る記憶回路の構成を示す図である。同図に示すように、本実施例の記憶回路100は、一対のインバータがクロスカップリングされた双安定回路と、双安定回路に接続された一対の不揮発性記憶回路NV1、NV2とを含んで構成される。ここには、1ビットの相補データを記憶する記憶回路100を例示するが、記憶回路100は、例えば、行列状の複数の双安定回路を含むSRAMまたはラッチ回路であり、このようなSRAMは、NAND型フラッシュメモリを制御するコントローラに搭載することができる。
【0013】
同図に示す記憶回路100は、6つのMOSトランジスタから構成されるSRAMのメモリセルを例示しており、PMOSトランジスタTP1とNMOSトランジスタTN1とから構成される第1のCMOSインバータと、PMOSトランジスタTP2とNMOSトランジスタTN2とから構成される第2のCMOSインバータと、ノードN1に接続されたアクセス用のNMOSトランジスタTN3と、ノードN2に接続されたアクセス用のNMOSトランジスタTN4とを含む。第1のCMOSインバータの出力が第2のCMOSインバータの入力に接続され、第2のCMOSインバータの出力が第1のCMOSインバータの入力に接続され、ノードN1が第1のCMOSインバータの出力に接続され、ノードN2が第2のCMOSインバータの出力に接続され、ノードN1、N2には相補的なデータが保持される。
【0014】
PMOSトランジスタTP1の一方の端子には第1の電圧供給部V1が接続され、NMOSトランジスタTN1の一方の端子にはGNDが接続される。同様に、PMOSトランジスタTP2の一方の端子には第2の電圧供給部V2が接続され、NMOSトランジスタTN2の一方の端子にはGNDが接続される。記憶回路100には、例えば、電源電圧Vccとして、おおよそ2.5Vかそれより大きい電圧が供給され、第1および第2の電圧供給部V1、V2は、電源電圧Vccをレベルシフトした電圧VDDを双安定回路に供給することができる。双安定回路は、電圧供給部V1、V2から電力を供給されている間、ノードN1、N2にデータを保持し、電圧供給部V1、V2からの電力供給が遮断されると、ノードN1、N2に保持されたデータが消去される、いわゆる揮発性の保持回路である。
【0015】
双安定回路に保持されたデータの読出しあるいはデータの書込みは、アクセス用トランジスタTN3、TN4を介して行われる。アクセス用トランジスタTN3の一方の端子がビット線BLmに接続され、他方の端子がノードN1に接続され、ゲートがワード線WLnに接続される。また、アクセス用トランジスタTN4の一方の端子がビット線/BLmに接続され、他方の端子がノードN2に接続され、ゲートがワード線WLnに接続される。
【0016】
読出し動作では、ワード線WLnに正の電圧を印加することでアクセス用トランジスタTN3、TN4を導通状態にし、ビット線BLm、/BLmにノードN1、N2に保持されたデータが読み出される。
【0017】
書込み動作では、ワード線WLnに正の電圧を印加することでアクセス用トランジスタTN3、TN4を導通状態にし、ビット線BLm、/BLmに書込むべきデータを印加する。例えば、ノードN1に保持されたHレベルのデータを書き換える場合には、ビット線BLmにはLレベルのデータが印加される。
【0018】
本実施例の記憶回路100はさらに、ノードN1、N2にそれぞれ接続された一組の不揮発性記憶回路NV1、NV2を含む。不揮発性記憶回路NV1は、ブート用のNMOSトランジスタQ1とこれに直列に接続された可変抵抗素子VR1とを有する。トランジスタQ1の一方の端子がノードN1に接続され、他方の端子が可変抵抗素子VR1に接続され、ゲートにはブート制御線BOOTnに接続される。また、可変抵抗素子VR1の一方の端子がトランジスタQ1に接続され、他方の端子がソース線SLに接続される。
【0019】
不揮発性記憶回路NV2は、リカバリ用のNMOSトランジスタQ2とこれに直列に接続された可変抵抗素子VR2とを有する。トランジスタQ2の一方の端子がノードN2に接続され、他方の端子が可変抵抗素子VR2に接続され、ゲートにはリカバリ制御線RECOVnに接続される。また、可変抵抗素子VR2の一方の端子がトランジスタQ2に接続され、他方の端子がソース線SLに接続される。
【0020】
可変抵抗素子VR1、VR2は、例えば、酸化ハフニウム(HfOx)等の金属遷移酸化物から構成され、可変抵抗素子を低抵抗状態または高抵抗状態に可逆的に変化させることでデータ「0」または「1」を記憶する。一般に、可変抵抗素子を低抵抗状態に書込みすることをセット(SET)、高抵抗状態に書込みすることをリセット(RESET)といい、バイポーラタイプでは、可変抵抗素子に印加する書込み電圧の極性を反転させることで、セットまたはリセットを行う。また、金属遷移酸化物を可変抵抗素子に用いる場合、初期設定として金属遷移酸化物をフォーミングする。通常、フォーミングは、書込み時よりも幾分大きな電圧を可変抵抗素子に印加し、可変抵抗素子を低抵抗状態(セット)にする。
【0021】
図2に、フォーミング時、セット時、リセット時に各部に印加されるバイアス電圧の一例を示す。例えば、可変抵抗素子VR1をフォーミングするとき、ビット線BLmに電源電圧Vccが印加され、ソース線SLにGNDが印加され、ブート用トランジスタQ1のゲート(BOOTn)に1.4Vが印加され、アクセス用トランジスタTN3のゲート(WLn)にVccが印加される。電圧供給部V1のVDDは、Vccよりも低い2.9Vが設定される。可変抵抗素子VR1には、ノードN1からソース線SLに向けてバイアスが印加され、その方向に電流が流されることで、可変抵抗素子VR1が低抵抗状態にフォーミングされる。可変抵抗素子VR2のフォーミングも同様に行われる。
【0022】
セット書込みをする場合、電圧供給部V1のVDDは、2.2Vに設定され、ブート用トランジスタQ1のゲート(BOOTn)に1.7Vが印加され、フォーミングのときよりも幾分小さいバイアス電圧およびバイアス電流が可変抵抗素子VR1に印加される。
【0023】
ノードN1がHレベルであるとき、ビット線BLmのVccがトランジスタTN3を介してノードN1に供給されるので、ノードN1はHレベルのままである。可変抵抗素子VR1には、ノードN1からソース線SLに向けてバイアスが印加され、そのバイアス方向に電流が流れ、その結果、可変抵抗素子VR1が低抵抗状態になる。他方、ノードN1がLレベルであるとき、ノードN1がビット線BLmのVccによりプルアップされ、ノードN1は、LレベルからHレベルに反転する。可変抵抗素子VR1には、ノードN1からソース線SLに向けてバイアスが印加され、そのバイアス方向に電流が流れ、その結果、可変抵抗素子VR1が低抵抗状態になる。
【0024】
リセット書込みをする場合、セット書込みのバイアス方向を反転したバイアスが可変抵抗素子VR1に印加される。つまり、ビット線BLmにGNDが印加され、ソース線SLに2.7Vが印加され、ブート用トランジスタQ1のゲート(BOOTn)に2.9Vが印加され、アクセス用トランジスタTN3のゲート(WLn)にVccが印加され、電圧供給部V1のVDDに2.7Vが設定される。
【0025】
ノードN1がHレベルであるとき、ノードN1がトランジスタTN3を介してビット線BLmのGNDにプルダウンされ、ノードN1がHレベルからLレベルに反転する。可変抵抗素子VR1には、ソース線SLからノードN1に向けてバイアスが印加され、そのバイアス方向に電流が流れ、その結果、可変抵抗素子VR1が高抵抗状態になる。他方、ノードN1がLレベルであるとき、ノードN1はLレベルのままである。可変抵抗素子VR1には、ソース線SLからノードN1に向けてバイアスが印加され、そのバイアス方向に電流が流れ、その結果、可変抵抗素子VR1が高抵抗状態になる。
【0026】
ブートデータは、システムやデバイスが起動されたとき、それらを初期設定するために必要なデータである。ブートデータは、特に限定されるものではないが、例えば、回路のパラメータを設定するためのデータ、センサーをキャリブレーションするためのデータ、温度を補償するデータ、抵抗や電圧を最適に調整するためのトリミングデータ、最初にアクセスすべきアドレスデータなどを含み得る。
【0027】
1つの態様では、ブートデータは、製品出荷前に不揮発性記憶回路NV1に書込まれる。製品出荷後、記憶回路100に電源が投入されたとき、不揮発性記憶回路NV1に記憶されたブートデータが双安定回路のノードN1に読み出される。製品出荷後は、不揮発性記憶回路NV1は、専ら、リードオンリメモリ(ROM)として機能する。
【0028】
従来の一般的な手法では、電源投入時に、ブートデータを格納しているROMがアクセスされ、ROMから読み出されたブートデータが記憶回路100に書込まれる。本実施例では、記憶回路100が不揮発性記憶回路NV1を内蔵しているため、電源投入時に不揮発性記憶回路NV1から読み出されたブートデータを即座に双安定回路のノードN1に設定することができ、従来よりもブートデータの設定に要する時間を短縮させることができる。同時に、ブートデータを格納するためのROMを割愛し、あるいはROMの記憶容量を削減することが可能になる。
【0029】
次に、不揮発性記憶回路NV2について説明する。SRAMを搭載する記憶回路100は、他の揮発性メモリよりもアクセス時間が速いため、キャッシュメモリとして利用される。しかし、揮発性であるため、電源供給が瞬停すると、保持していたデータが失われてしまう。1つの解決方法として、電源供給が不安定になったり、あるいは供給電圧が一定以下に降下したとき、キャッシュメモリに保持されているデータをフラッシュメモリ等へ退避させ、その後、電源再投入時または電源安定化後に、不揮発性メモリに退避させたデータをキャッシュメモリに回復させることが行われている。しかし、フラッシュメモリのプログラミング時間は比較的長いため、キャッシュメモリのデータを適切にバックアップすることができない場合がある。そこで、本実施例の記憶回路100は、不揮発性記憶回路NV2を内蔵し、双安定回路に保持されるデータを不揮発性記憶回路NV2に退避させ、保持していたデータのリカバリを可能にする。
【0030】
次に、不揮発性記憶回路NV2のセット、リセット書込み動作について説明する。この動作は、ここには図示しないコントローラによって制御される。
【0031】
先ず、ノードN2がHレベルのデータを保持しているとき、不揮発性記憶回路NV2は、セット書込みを実施される。このとき、アクセス用トランジスタTN4は、非導通状態であってもよいし、導通状態であってもよい。アクセス用トランジスタTN4を導通状態にする場合には、ビット線/BLmは、電源電圧Vccがプリチャージされたフローティング状態である。可変抵抗素子VR2には、ノードN2からソース線SLに向けてバイアスが印加され、その方向に電流が流れ、可変抵抗素子VR2は、低抵抗状態になる。この場合、ノードN2がHレベルからLレベルに反転する。ビット線/BLmをノードN2に接続させた場合には、ビット線/BLmの電位がGNDに放電されるまで電流が流れる。
【0032】
ノードN2がLレベルを保持しているとき、不揮発性記憶回路NV2は、リセット書込みを実施される。このとき、アクセス用トランジスタTN4は、非導通状態であってもよいし、導通状態であってもよい。可変抵抗素子VR2には、ソース線SLからノードN2に向けてバイアスが印加され、その方向に電流が流れ、可変抵抗素子VR2が高抵抗状態になる。リセット書込みのとき、ソース線SLは2.7Vであり、トランジスタQ2のゲート電圧は2.9Vであり、トランジスタQ2からノードN2には大きなドレイン電流が流れる。このため、ノードN2は、LレベルからHレベルに反転する。
【0033】
コントローラは、双安定回路のノードN2のHレベルまたはLレベルのデータをビット線/BLmを介して読出し、その読出し結果に基づき、ノードN2に保持されたデータを不揮発性記憶回路NV2にセット書込みまたはリセット書込みを行う。
【0034】
また、コントローラは、不揮発性記憶回路NV2にデータの書込みを行った場合、書込みベリファイを実行することができる。書込みベリファイは、不揮発性記憶回路NV2に書込まれたデータを読み出すことにより行われる。つまり、ワード線WLnを介してトランジスタTN4を導通させ、RECOVnを介してトランジスタQ2を導通させ、ビット線/BLmに正の読出し電圧を印加する。
【0035】
また、不揮発性記憶回路NV2に記憶されたデータを双安定回路にリカバリさせる場合、セット書込みを行った不揮発性記憶回路NV2に対してリセット書込みを行う。ソース線SLに2.7Vが印加され、トランジスタQ2が導通され、ノードN2がHレベルにプルアップされる。他方、リセット書込みを行った不揮発性記憶回路NV2に対してはセット書込みを行う。ビット線/BLmにVccが印加され、トランジスタQ2が導通され、ノードN2がソース線SLのGNDにプルダウンされる。
【0036】
なお、不揮発性記憶回路NV2の動作に関して、可変抵抗素子VR2自身からのデータを採取する際に、ノードN2に残る電荷量によって正転・反転を生成することになるが、ワード線WLnがGND状態でノードN1がGNDになっている状態から動作するのが理想的である。そのノードN2の電荷の放電時間の管理は、リカバリ用トランジスタQ2のゲートRECOVnに印加される正のパルス信号によって行われる。
【0037】
図3に、双安定回路に保持されたデータを不揮発性記憶回路NV2に書込むときの動作フローの一例を示す。記憶回路100を制御するコントローラは、ノードN2に保持しているデータを不揮発記憶回路NV2に退避させるか否かを判定する(S100)。どのタイミングで退避させるかは任意であるが、例えば、電源供給が瞬停しそうなとき、電源電圧が変動しているとき、予め決められスケジュール時間になったとき、あるいは一定の時間間隔に該当するとき等に退避させると判定する。データを退避させると判定した場合、コントローラは、行列アドレスに従いSRAMの特定のメモリセルをアクセスし、ノードN2のデータを読出す(S102)。
【0038】
次に、コントローラは、ノードN2のデータがHレベルかLレベルかをチェックする(S104)。Hレベルであれば、不揮発性記憶回路NV2に対してセット書込みを行い(S106)、Lレベルであれば、不揮発性記憶記回路NV2に対してリセット書込みを行う(S108)。次に、コントローラは、不揮発性記憶回路NV2のベリファイ読出しを行い(S110)、不合格であれば、再度のセット書込みまたはリセット書込みを行い、合格であれば、このシーケンスを終了する。なお、書込みデータのベリファイは、任意であってもよい。
【0039】
次に、不揮発性記憶回路NV2に記憶されたデータにより記憶回路をリカバリさせるときの動作フローの一例を
図4に示す。コントローラは、不揮発性記憶回路NV2のデータをリカバリさせるか否かを判定する(S200)。どのタイミングでリカバリさせるかは任意であるが、例えば、電源瞬停後に電源が再投入されたときなどである。
【0040】
リカバリさせると判定すると、コントローラは、行列アドレスに従い特定のメモリセルをアクセスし、不揮発性記憶回路NV2に記憶されたデータを読み出す(S202)。次に、コントローラは、読み出されたデータに基づき、不揮発性記憶回路NV2が低抵抗状態であるか否か(すなわち、データ「0」、「1」)を判定し(S204)、低抵抗状態であれば、リセット書込みを実施し(S206)、高抵抗状態であればセット書込みを実施し(S208)、これにより、不揮発性記憶回路NV2に記憶されていたデータをノードN2にリカバリさせる(S210)。
【0041】
次に、本実施例の記憶回路の適用例について説明する。上記したように、本実施例の記憶回路は、SRAMまたはラッチ回路といて用いることができ、ある実施態様では、ロジックやコントローラに組み込まれる。例えば、複数のNANDフラッシュメモリチップをスタックするメモリデバイスにおいて、各NANDフラッシュメモリチップを制御するコントローラ内に本実施例の記憶回路が組み込まれる。記憶回路は、各フラッシュメモリのブートデータを保持し、また、各フラッシュメモリの更新データをバックアップする。
【0042】
次に、本実施例の記憶回路100を含むシステムの一例を
図5に示す。本実施例のシステム200は、回路210、RAM22、ROM230およびコントローラ240を備えている。コントローラ240は、回路210、RAM220、ROM230を制御する。
【0043】
回路210は、システムに搭載される任意の回路であり、例えば、メモリ(例えば、フラッシュメモリ)、ロジック、ドライバ、A/DまたはD/Aコンバータ、電圧発生回路、レベルシフタなどを含む。
【0044】
RAM220は、例えばSRAMであり、1つのメモリセルは、
図1に示したように、双安定回路と、双安定回路のノードN1、N2に接続された不揮発性記憶回路NV1、NV2を含む。RAM220には、コントローラ240のキャッシュメモリとして機能することが可能であり、システム動作中にキャッシュコード等を不揮発性記憶回路NV2に記憶する。また、RAM220の不揮発性記憶回路NV1には、システム起動時に必要とされるブートデータが格納される。
【0045】
ROM230は、コントローラ240によって実行されるプログラムやソフトウェア等を格納する。例えば、ROM230には、電源投入時に実行されるパワーアップシーケンスプログラムが格納される。コントローラ240は、電源が投入されると、パワーアップシーケンスプログラムを実行し、不揮発性記憶回路NV1に格納されたブートデータを双安定回路のノードN1に設定し、ブートデータに基づき回路210の初期設定等を行う。また、ROM230には、RAM220に保持されたデータを不揮発性記憶回路NV2に退避させたり、退避させたデータによりRAM220をリカバリさせるためのリカバリプログラムが格納される。コントローラ240は、リカバリプログラムを実行し、例えば、電源電圧が不安定になったときに、揮発性のデータを不揮発性記憶回路NV2に退避させ、電源電圧が安定化されたときに、退避させたデータを双安定回路にリカバリさせる。
【0046】
上記実施例では、不揮発性記憶回路NV1、NV2に可変抵抗素子を用いたが、本発明は、これに限らず他の不揮発性記憶素子(例えば、磁性体メモリ、フラッシュメモリなど)を用いるものであってもよい。
【0047】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。