(57)【要約】【課題】  他の種類の半導体記憶装置と互換性のある動作モードを備えた不揮発性半導体記憶装置を提供する。【解決手段】  本発明の不揮発性半導体記憶装置１０は、複数のメモリ素子を含むメモリアレイ２０と、アドレスデータに基づき前記メモリアレイのメモリ素子を選択する選択手段と、書込みデータによりメモリ素子のデータの上書きを可能にするＲＡＭ動作モード、書込みデータが第１の値のときメモリ素子のデータの上書きを可能にし、第２の値のとき書き換えを禁止するフラッシュモードのいずれかを選択するモード選択部３０と、動作モード選択部３０により選択されたＲＡＭモードまたはフラッシュモードに応じて選択メモリ素子に書込みデータの書込みを行う書込み制御手段とを有する。【選択図】  図２
2018005962.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリ素子を含むメモリアレイと、
アドレスデータに基づき前記メモリアレイのメモリ素子を選択する選択手段と、
書込みデータによりメモリ素子のデータの上書きを可能にする第１の動作モード、書込みデータが第１の値のときメモリ素子のデータの上書きを可能にし、第２の値のとき書き換えを禁止する第２の動作モードのいずれかを選択可能な動作モード選択手段と、
前記動作モード選択手段により選択された第１の動作モードまたは第２の動作モードに応じて、前記選択手段により選択されたメモリ素子に書込みデータの書込みを行う書込み制御手段と、
を含む不揮発性半導体記憶装置。
【請求項２】
第１の動作モードでは、書込みデータが「０」であるとき、メモリ素子のデータが「０」に書き換えられ、書込みデータが「１」であるとき、メモリ素子のデータが「１」に書き換えられ、第２の動作モードでは、書込みデータが「０」であるとき、メモリ素子のデータが「０」に書き換えられ、書込みデータが「１」であるとき、メモリ素子のデータの書き換えが禁止される、請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
前記書込み制御手段は、第２の動作モードが選択されているとき、書込みデータと、選択されたメモリ素子から読み出されたデータの論理積を求め、求められた論理積のデータを選択されたメモリ素子に書込む、請求項１または２に記載の不揮発性半導体記憶装置。
【請求項４】
前記書込み制御手段は、書込みデータを保持するデータ保持手段と、前記データ保持手段に保持された書込みデータをラッチ回路にセットするデータセット手段とを含み、前記データセット手段は、第２の動作モードが選択されているとき、データ保持手段に保持された書込みデータを変換し、変換した書込みデータをラッチ回路にセットし、
前記書込み制御手段は、ラッチ回路にセットされた書込みデータに基づき選択メモリ素子に書込みを行う、請求項１ないし３いずれか１つに記載の不揮発性半導体記憶装置。
【請求項５】
前記データ保持手段は、ｎビットのデータを保持可能であり、前記データセット手段は、前記データ保持手段のｐビット（２≦ｐ＜ｎ）の書込みデータを前記ラッチ回路にセットする、請求項４に記載の不揮発性半導体記憶装置。
【請求項６】
前記データ保持手段は、ｎバイトのデータを保持可能であり、前記データセット手段は、前記データ保持手段のｐビット（２≦ｐ＜ｎ）の書込みデータを前記ラッチ回路にセットする、請求項４に記載の不揮発性半導体記憶装置。
【請求項７】
前記書込み制御手段は、前記データ保持手段に保持された書込みデータのアドレスを検出するアドレス検出手段を含み、
前記データセット手段は、前記アドレス検出手段により検出されたアドレスの書込みデータをラッチ回路にセットする、請求項４に記載の不揮発性半導体記憶装置。
【請求項８】
第２の動作モードが選択されているとき、前記データセット手段は、前記ラッチ回路を初期化し、前記アドレス検出手段により検出されたアドレスの書込みデータをラッチ回路にセットする、請求項７に記載の不揮発性半導体記憶装置。
【請求項９】
第１の動作モードが選択されているとき、前記データセット手段は、前記ラッチ回路を初期化し、前記アドレス検出手段により検出されたアドレスに基づき前記データ保持部に保持された書込みデータまたは選択メモリ素子から読み出されたデータと選択的に前記ラッチ回路にセットする、請求項７または８に記載の不揮発性半導体記憶装置。
【請求項１０】
前記アドレス検出手段は、書込みデータが存在する有効アドレス範囲を検出し、前記データセット手段は、有効アドレス範囲内において前記データ保持手段に保持された書込みデータをラッチ回路にセットし、有効アドレス範囲外において選択メモリ素子から読み出されたデータをラッチ回路にセットする、請求項９に記載の不揮発性半導体記憶装置。
【請求項１１】
前記アドレス検出手段は、入力された列アドレスと書込みデータサイズに基づき開始列と終了列を示す列情報を保持し、前記データ保持手段をアクセスするときのアドレス値が前記列情報に一致するか否かに基づき有効アドレス範囲を設定する、請求項１０に記載の不揮発性半導体記憶装置。
【請求項１２】
前記書込み制御手段は、前記有効アドレス範囲に基づくラップアラウンドシーケンスによる書込みを可能にする、請求項１０または１１に記載の不揮発性半導体記憶装置。
【請求項１３】
前記メモリ素子は、可逆性かつ不揮発性の可変抵抗素子である、請求項１ないし１２いずれか１つに記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置に関し、特に、可変抵抗素子を利用したメモリアレイを含む半導体記憶装置の書込み制御に関する。
【背景技術】
【０００２】
フラッシュメモリに代わる不揮発性メモリとして、可変抵抗素子を利用した抵抗変化型メモリが注目されている。抵抗変化型メモリは、金属酸化物などの膜にパルス電圧を印加し、膜の抵抗を可逆的かつ不揮発的に設定することでデータを記憶するメモリとして知られている。抵抗変化型メモリは、電圧でデータを書き換えることができるため（電流が微量で）消費電力が小さく、また、１トランジスタ＋１抵抗からなる比較的単純な構造のためセル面積が約６F2（Ｆは配線の径で、数十ｎｍ程）と小さく、高密度化が可能であり、さらに、読み出し時間が１０ナノ秒程度とＤＲＡＭ並に高速であるという利点がある（特許文献１、２等）。
【０００３】
図１は、従来の抵抗変化型メモリのメモリアレイの典型的な構成を示す回路図である。１つのメモリセルユニットは、可変抵抗素子とこれに直列に接続されたアクセス用のトランジスタとから構成される。ｍ×ｎ（ｍ、ｎは、１以上の整数）個のセルユニットが二次元アレイ状に形成され、トランジスタのゲートがワード線に接続され、ドレイン領域が可変抵抗素子の一方の電極に接続され、ソース領域がソース線に接続される。可変抵抗素子の他方の電極がビット線に接続される。
【０００４】
可変抵抗素子は、酸化ハフニウム（ＨｆＯｘ）等の金属酸化物の薄膜から構成され、印加されるパルス電圧の大きさおよび極性によって抵抗値を低抵抗状態または高抵抗状態に可逆的にかつ不揮発性に設定することができる。可変抵抗素子を高抵抗状態に設定（または書込み）することをセット（ＳＥＴ）、低抵抗状態に設定（書込み）することをリセット（ＲＥＳＥＴ）という。
【０００５】
セルユニットは、ワード線、ビット線およびソース線によってビット単位で選択することができる。例えば、セルユニットＭ１１に書込みを行う場合には、ワード線ＷＬ１によってトランジスタがオンされ、ビット線ＢＬ１、ソース線ＳＬ１には、セットまたはリセットに応じた電圧が印加される。これにより、可変抵抗素子がセットまたはリセットされる。セルユニットＭ１１の読み出しを行う場合には、ワード線ＷＬ１によってトランジスタがオンされ、ビット線ＢＬ１、ソース線ＳＬ１には読み出しのための電圧が印加される。ビット線ＢＬ１には、可変抵抗素子のセットまたはリセットに応じた電圧または電流が表れ、これがセンス回路によって検出される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−６４２８６号公報
【特許文献２】特開２００８−４１７０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
抵抗変化型メモリは、低消費電力、高密度化、高速動作等の利点を備えるため、フラッシュメモリと同様に、不揮発性半導体装置としては将来性のある有望なデバイスである。しかしながら、フラッシュメモリの市場が抵抗変化型メモリを大きく上回っている現状において、ユーザーは、フラッシュメモリと互換性のある仕様を抵抗変化型メモリに求めている。
【０００８】
例えば、フラッシュメモリでは、データ「０」は、メモリセルのしきい値が正の方向にシフトされたプログラム状態を表し、データ「１」は、メモリセルのしきい値が負の消去状態を表す。このため、フラッシュメモリのプログラム動作において、入力データが「０」であれば、メモリセルにプログラムが行われ、メモリセルのデータは「１」から「０」に書き換えられ、入力データが「１」であれば、メモリセルへのプログラムが禁止され、メモリセルのデータは「０」または「１」の元の状態のままである。
【０００９】
一方、抵抗変化型メモリにおいて、例えば、可変抵抗素子を高抵抗状態にセットすることがデータ「０」、可変抵抗素子を低抵抗状態にリセットすることがデータ「１」に対応すると仮定したとき、入力データ「０」、「１」に応じて可変抵抗素子がセットまたはリセットされ、可変抵抗素子のデータが上書きされる。つまり、書込みされた可変抵抗素子のデータは、入力データに等しい。
【００１０】
このように、フラッシュメモリと抵抗変化型メモリとでは、入力データ「１」の取り扱いが異なるため、外部ホスト装置またはユーザーは、フラッシュメモリと抵抗変化型メモリとを同じ仕様で取り扱うことができない、という課題があった。
【００１１】
本発明は、このような従来の課題を解決するものであり、他の種類の半導体記憶装置と互換性のある動作モードを備えた不揮発性半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る不揮発性半導体記憶装置は、複数のメモリ素子を含むメモリアレイと、アドレスデータに基づき前記メモリアレイのメモリ素子を選択する選択手段と、書込みデータによりメモリ素子のデータの上書きを可能にする第１の動作モード、書込みデータが第１の値のときメモリ素子のデータの上書きを可能にし、第２の値のとき書き換えを禁止する第２の動作モードのいずれかを選択可能な動作モード選択手段と、前記動作モード選択手段により選択された第１の動作モードまたは第２の動作モードに応じて、前記選択手段により選択されたメモリ素子に書込みデータの書込みを行う書込み制御手段と、を含む。
【００１３】
好ましくは、第１の動作モードでは、書込みデータが「０」であるとき、メモリ素子のデータが「０」に書き換えられ、書込みデータが「１」であるとき、メモリ素子のデータが「１」に書き換えられ、第２の動作モードでは、書込みデータが「０」であるとき、メモリ素子のデータが「０」に書き換えられ、書込みデータが「１」であるとき、メモリ素子のデータの書き換えが禁止される。好ましくは、前記書込み制御手段は、第２の動作モードが選択されているとき、書込みデータと、選択されたメモリ素子から読み出されたデータの論理積を求め、求められた論理積のデータを選択されたメモリ素子に書込む。好ましくは、前記書込み制御手段は、書込みデータを保持するデータ保持手段と、前記データ保持手段に保持された書込みデータをラッチ回路にセットするデータセット手段とを含み、前記データセット手段は、第２の動作モードが選択されているとき、データ保持手段に保持された書込みデータを変換し、変換した書込みデータをラッチ回路にセットし、前記書込み制御手段は、ラッチ回路にセットされた書込みデータに基づき選択メモリ素子に書込みを行う。好ましくは、前記データ保持手段は、ｎビットのデータを保持可能であり、前記データセット手段は、前記データ保持手段のｐビット（２≦ｐ＜ｎ）の書込みデータを前記ラッチ回路にセットする。好ましくは、前記データ保持手段は、ｎバイトのデータを保持可能であり、前記データセット手段は、前記データ保持手段のｐビット（２≦ｐ＜ｎ）の書込みデータを前記ラッチ回路にセットする。好ましくは、前記書込み制御手段は、前記データ保持手段に保持された書込みデータのアドレスを検出するアドレス検出手段を含み、前記データセット手段は、前記アドレス検出手段により検出されたアドレスの書込みデータをラッチ回路にセットする。好ましくは、第２の動作モードが選択されているとき、前記データセット手段は、前記ラッチ回路を初期化し、前記アドレス検出手段により検出されたアドレスの書込みデータをラッチ回路にセットする。好ましくは、第１の動作モードが選択されているとき、前記データセット手段は、前記ラッチ回路を初期化し、前記アドレス検出手段により検出されたアドレスに基づき前記データ保持部に保持された書込みデータまたは選択メモリ素子から読み出されたデータと選択的に前記ラッチ回路にセットする。好ましくは、前記アドレス検出手段は、書込みデータが存在する有効アドレス範囲を検出し、前記データセット手段は、有効アドレス範囲内において前記データ保持手段に保持された書込みデータをラッチ回路にセットし、有効アドレス範囲外において選択メモリ素子から読み出されたデータをラッチ回路にセットする。好ましくは、前記アドレス検出手段は、入力された列アドレスと書込みデータサイズに基づき開始列と終了列を示す列情報を保持し、前記データ保持手段をアクセスするときのアドレス値が前記列情報に一致するか否かに基づき有効アドレス範囲を設定する。好ましくは、前記書込み制御手段は、前記有効アドレス範囲に基づくラップアラウンドシーケンスによる書込みを可能にする。好ましくは、前記メモリ素子は、可逆性かつ不揮発性の可変抵抗素子である。
【発明の効果】
【００１４】
本発明によれば、複数の動作モードに応じてメモリ素子に書込みデータの書込みを可能にすることで、他の種類の半導体記憶装置の仕様または書込みに互換性を得ることができる。
【図面の簡単な説明】
【００１５】
【図１】従来の抵抗変化型メモリのアレイ構成を示す図である。
【図２】本発明の実施例に係る不揮発性半導体記憶装置の構成を示すブロック図である。
【図３】本発明の実施例に係る不揮発性半導体記憶装置の構成を示す図である。
【図４】本発明の実施例に係るメモリアレイの構成を示す図である。
【図５】図５（Ａ）は、本実施例のページバッファ、列選択回路およびラッチの関係を示し、図５（Ｂ）は、列選択回路の構成を示す図である。
【図５Ａ】本実施例のデータセット部の一例を示す図である。
【図６】図６（Ａ）は、ＲＡＭモードにおけるデータの書込み例を示し、図６（Ｂ）は、通常のフラッシュメモリのプログラム例を示す。
【図７】本発明の実施例によるフラッシュモード時の書込み動作を示すフローチャートである。
【図８】本発明の実施例によるフラッシュモード時の書込み例を示す図である。
【図９】本発明の第２の実施例による列変換回路１７０の構成を示す図である。
【図１０】本発明の第２の実施例によるフラッシュモード時のバイト非整列のデータフォーマットの書込み例を示す図である。
【図１１】本発明の第２の実施例によるフラッシュモード時のバイト非整列のデータフォーマットの書込み例を示す図である。
【図１２】本発明の第２の実施例によるＲＡＭモード時の非整列フォーマットのバイトデータの書込み例を示す図である。
【図１３】本発明の第２の実施例によるＲＡＭモード時のバイトのランダム書込みの例を示す図である。
【図１４】本発明の第２の実施例によるＲＡＭモード時の非整列フォーマットおよび整列フォーマットを含むワードの書込み例を説明する図である。
【図１５】本発明の第２の実施例によるＲＡＭモード時のラップアラウンド書込み例を示す図である。
【図１６】本発明の第２の実施例によるＲＡＭモード時のラップアラウンド書込み例を示す図である。
【図１７】本発明の第２の実施例によるＲＡＭモード時のラップアラウンド書込みを行うときの有効アドレス範囲を説明する図である。
【発明を実施するための形態】
【００１６】
次に、本発明の実施の形態について図面を参照して詳細に説明する。但し、図面は、分かり易くするために各部を強調して示してあり、実際のデバイスのスケールとは異なることに留意すべきである。
【実施例】
【００１７】
図２は、本発明の実施例に係る不揮発性半導体記憶装置の構成を示すブロック図である。同図に示すように、不揮発性半導体記憶装置１０は、不揮発性メモリ素子が行列状に配置されたメモリアレイ２０と、不揮発性半導体記憶装置１０の動作モードを選択するモード選択部３０と、複数の動作モードの中からモード選択部３０によって選択された動作モードで動作可能なモード実行部４０と、外部との間でデータやアドレス等の入出力を可能にする入出力部５０とを含んで構成される。
【００１８】
モード選択部３０は、例えば、入出力部５０を介して外部からモード選択信号を受け取り、モード選択信号に応じて複数の動作モードの中から１つの動作モードを選択する。ホスト装置に複数の不揮発性半導体記憶装置１０が接続されているとき、複数の半導体記憶装置１０に対して複数のモード選択信号を出力することができる。この場合、複数の不揮発性半導体記憶装置１００と、それぞれ種類が異なるものであってもよく、不揮発性半導体記憶装置１０がそれぞれ互換性のあるモードで動作できるようなモード選択信号が出力されるようにしてもよい。
【００１９】
モード実行部４０は、複数の動作モードを実行することが可能な構成であり、モード選択部３０により選択された動作モードに従い書込みや読出し動作を行う。モード実行部４０が複数の動作モードをサポートし、その動作モードを任意に選択可能とすることで、不揮発性半導体記憶装置１０を複数種の半導体記憶装置の動作モードに対応させることができる。
【００２０】
次に、本実施例の好ましい形態の不揮発性半導体メモリについて説明する。図３は、本実施例の不揮発性半導体メモリの構成を示す図である。不揮発性半導体メモリ１００は、行列状に配列された複数の可変抵抗素子が配置されたメモリアレイ１１０と、外部入出力端子Ｉ／Ｏに接続され、入出力データを受け取る入出力バッファ１２０と、入出力バッファ１２０からのアドレスデータを受け取るアドレスレジスタ１３０と、入出力バッファ１２０からのコマンドデータ等に基づき各部を制御するコントローラ１４０と、コマンドまたは外部制御信号に動作モードを選択し、動作モードの選択情報を保持するステータスレジスタ１５０と、アドレスレジスタ１３０からの行アドレス情報Ａｘをデコードし、デコード結果に基づきワード線の選択および駆動を行うワード線選択回路１６０と、アドレスレジスタ１３０からの列アドレス情報Ａｙをデコードし、デコード結果に基づきビット線の選択および駆動を行う列選択回路１７０と、選択された可変抵抗素子から読み出された信号を検出したり、選択された可変抵抗素子への書込みデータを保持するセンス回路１８０と、入出力データを保持するページバッファ１９０とを含んで構成される。また、ここには図示しないが、不揮発性半導体メモリ１００は、可変抵抗素子のセット、リセット、読出し動作に必要なバイアス電圧を発生させ、これをワード線選択回路１６０およびセンス回路１８０等へ供給する電圧発生回路を包含する。
【００２１】
メモリアレイ１１０は、例えば、図１に示すように、行列方向に配置された複数のメモリ素子Ｍ１１、Ｍ１２、…Ｍｍｎを含み、１つのメモリ素子は、１つの可変抵抗素子と１つの選択用トランジスタとから構成される。ビット線ＢＬとソース線ＳＬとの間に、可変抵抗素子と選択用トランジスタとが直列に接続され、選択用トランジスタのゲートがワード線に接続される。
【００２２】
可変抵抗素子がセットされた状態は、データ「０」または「１」のいずれかに対応し、可変抵抗素子がリセットされた状態は、データ「１」または「０」のいずれかに対応する。コントローラ１４０は、外部からのコマンドに基づき書込み（セット、リセット）や読出し動作等を制御する。ワード線選択回路１６０は、外部から受け取った行アドレス情報Ａｘに基づきワード線を選択し、列選択回路１７０は、外部から受け取った列アドレス情報Ａｙに基づきビット線を選択する。コントローラ１４０の制御により、選択されたワード線、ビット線およびソース線には、書込み（セット、リセット）および読出しに応じたバイアス電圧が印加される。
【００２３】
本実施例の不揮発性半導体メモリ１００は、複数の動作モードを含み、選択された動作モードで動作することが可能である。ステータスレジスタ１５０は、動作モードの選択情報を記憶し、コントローラ１４０は、ステータスレジスタ１５０に記憶された選択情報に従い読出しや書込みを制御する。１つの好ましい例では、不揮発性半導体メモリ１００は、ＮＯＲ型フラッシュメモリと互換性のある動作モード（以下、フラッシュモードという）と、ランダムアクセス可能でありかつ書込みデータによりメモリ素子の上書きを行うメモリと互換性のある動作モード（以下、ＲＡＭモードという）とのいずれかで動作モードで動作することが可能であり、ステータスレジスタ１５０は、フラッシュモードまたはＲＡＭモードを識別するフラグ情報を格納する。フラッシュモードまたはＲＡＭモードは、入出力バッファ１２０からのコマンド、または不揮発性半導体メモリ１００の外部端子に供給される制御信号により選択することが可能である。
【００２４】
図４に、メモリ素子とセンス回路１８０の構成例を示す。１つのメモリ素子は、ソース線ＳＬとビット線ＢＬとの間に直列に接続された可変抵抗素子Ｒと選択用トランジスタＴとを有する。選択用トランジスタＴのゲートＶｇには、ワード線ＷＬが共通に接続される。図４に示す例では、ｎビットのメモリ素子が行方向に配列され、ｎビットのメモリ素子のビット線ＢＬ１〜ＢＬｎがセンス回路１８０に接続される。センス回路１８０は、列アドレスＡｙに基づき１つまたは複数のビット線を選択するためのビット線選択回路２１２を含み、さらにセンス回路１８０は、ビット線選択回路２１２を介して各ビット線に接続されたセンスアンプ（Ｓ／Ａ）２００とラッチ２１０とを含む。読出し動作では、行アドレスＡｘに基づきワード線選択回路１６０によって行が選択され、列アドレスＡｙに基づきビット線選択回路２１２がビット線を選択し、これにより選択されたメモリ素子のビット線に表れる電圧または電流がセンスアンプ２００によって検出され、これがラッチ２１０に保持される。また、書込み動作では、入出力バッファ１２０からページバッファ１９０を介してラッチ２１０に書込みデータが保持され、保持された書込みデータが行アドレスＡｘおよび列アドレスＡｙによって選択されたメモリ素子に書込まれる。
【００２５】
図５（Ａ）は、ページバッファ１９０、列選択回路１７０およびラッチ２１０との関係を示す図であり、図５（Ｂ）は、列選択回路の内部構成を示す図である。ページバッファ１９０は、例えば、内部クロック信号ＣＬＫに同期して入出力バッファ１２０との間で双方向のデータ転送を可能にする。列選択回路１７０は、入力された列アドレスに応じて、ページバッファ１９０に保持されたデータをラッチ２１０にセットし、あるいはラッチ２１０に保持されたデータをページバッファ１９０にセットする。ラッチ２１０は、センスアンプ２００との間で双方向のデータ転送を可能にする。
【００２６】
列選択回路１７０は、列アドレスをデコードする列デコーダ２２０と、ページバッファ１９０に保持されたデータをラッチ２１０にセットし、あるいはラッチ２１０に保持されたデータをページバッファ１９０にセットするデータセット部２３０とを含む。
【００２７】
本実施例の不揮発性半導体メモリ１００は、ビット単位でデータの読出し、書込みを行うことが可能である。ビット単位の書込みを行う場合、列デコーダ２２０は、列アドレスのデコード結果に基づきトランジスタＱ１〜Ｑｎのいずれかをオンさせ、ページバッファ１９０の１ビットのデータがデータセット部２３０によりラッチ２１０にセットまたはロードされる。一方、ビット単位の読出しを行う場合、列デコーダ２２０は、列アドレスのデコード結果に基づきトランジスタＱ１〜Ｑｎのいずれかをオンさせ、ラッチ２１０の１ビットの読出しデータがデータセット部２３０によりページバッファ１９０にセットまたはロードされる。
【００２８】
さらに好ましい例では、本実施例の不揮発性半導体メモリ１００は、複数ビット単位、バイト単位またはワード単位でデータの読出し、書込みを行うことが可能である。好ましい例では、ページバッファ１９０は、メモリ素子の行方向のビット数と等しいｎビットのデータ（すなわち、1ページデータ）を保持することが可能である。以下の説明では、例としてｐビットのデータ（ｐ＜ｎ）の読出し、書込みを行う例を説明する。
【００２９】
書込み動作時、入出力バッファ１２０からの１ページ分の書込みデータが内部クロック信号ＣＬＫに同期してページバッファ１９０にシリアル入力される。列デコーダ２２０は、入力された列アドレスに基づき、トランジスタＱ１〜Ｑｎの中からｐ個のトランジスタをオンさせ、ページバッファ１９０の中から選択されたｐビットの書込みデータがデータセット部２３０によりラッチ２１０にセットされる。ラッチ２１０にセットされたｐビットの書込みデータは、センスアンプ２００およびビット線選択回路２１２を介してｐビットの選択メモリ素子に同時に書込まれる（選択メモリ素子がセットまたはリセットされる）。
【００３０】
読出し動作時、選択メモリ素子からビット線選択回路２１２を介して読み出されたｐビットの読出しデータがセンスアンプ２００でセンスされ、ラッチ２１０に保持される。１つの例では、列デコーダ２２０は、入力された列アドレスのデコード結果に基づきトランジスタＱ１〜Ｑｎのｐ個をオンさせ、ｐビットの読出しデータがデータセット部２３０によりページバッファ１９０にセットされる。ページバッファ１９０に保持された読出しデータは、内部クロック信号ＣＬＫに同期して入出力バッファ１２０にシリアル出力される。上記の例は、読出しデータがページバッファ１９０を介して読み出されるようにしたが、これに限らず、列デコーダ２２０のデコード結果に従い、ラッチ２１０に保持された読出しデータをページバッファ１９０を介さずに直接入出力バッファ１２０へ転送するようにしてもよい。この場合、ページバッファ１９０を介さないのでより高速の読出しが可能になる。
【００３１】
なお、ページバッファ１９０は、必ずしもページサイズに限定されるものではなく、ページサイズと異なるサイズのデータを保持するものであってもよい。また、ページバッファ１９０は、例えば、高速動作が可能なＳＲＡＭやデータレジスタにより構成することができる。一度に書込みまたは読出しを行うメモリ素子の数が増加すると、これに比例して消費電力が増加するため、好ましくは、ｐビットの大きさは、許容される消費電力のピーク値により制限されるようにしてもよい。
【００３２】
図５Ａに、データセット部２３０の構成例を示す。データセット部２３０は、トランジスタＱ１〜Ｑｎのいずれかに接続されるノードＮｋと、１ビットのデータを格納するラッチ２１０＿ｋとの間に、ＮＭＯＳタイプのトランジスタＴ１、Ｔ２、Ｔ３、Ｔ４、ＡＮＤゲート２３２を含む。トランジスタＴ１、Ｔ２、Ｔ３の各ゲートには、書込み動作または読出し動作、およびフラッシュモードまたはＲＡＭモードに応じた論理レベルを有するセット信号ＳＥＴが接続される。例えば、１つの例では、書込み動作時にＲＡＭモードが選択されている場合、セット信号ＳＥＴがＨレベルに駆動され、トランジスタＴ１がオンし、トランジスタＴ２、Ｔ３がオフである。それ故、ノードＮｋ、すなわちページバッファ１９０の１ビットデータがトランジスタＴ１を介してラッチ２１０＿ｋにセット可能となる。他方、書込み動作時にフラッシュモードが選択されている場合、セット信号ＳＥＴがＬレベルに駆動され、トランジスタＴ１がオフし、トランジスタＴ２、Ｔ３がオンする。それ故、ノードＮｋの１ビットデータは、ラッチ２１０＿ｋにセットされず、トランジスタＴ２を介してＡＮＤゲートの一方の入力に供給される。さらにトランジスタＴ３がオンすることでラッチ２１０＿ｋに保持された読出しデータがＡＮＤゲートの他方の入力に供給される。また、トランジスタＴ４のゲートには、書き戻し信号ＷＢが接続され、書き戻し信号ＷＢがＨレベルのとき、アンドゲート２３２の出力がラッチ２１０＿ｋにセット可能になる。
【００３３】
また、１つの例では、読出し動作時、セット信号ＳＥＴがＨレベルとなり、ラッチ２１０＿ｋに保持された読出しデータがトランジスタＱ１０を介してノードＮｋ、すなわちページバッファ１９０にセット可能となる。
【００３４】
図６（Ａ）は、ＲＡＭモードの書込み動作時において、４ビット（Ｐ＝４）の書込みを行うときの例を示している。４ビットの選択メモリ素子に「００１１」のデータが記憶され、４ビットの書込みデータ「０１０１」がラッチ２１０にセットされ、４ビットの書込みデータが書込まれるときの例である。ＲＡＭモードでは、書込みデータ「０１０１」がそのままメモリ素子に上書きされるため、書込み後のメモリ素子のデータは、書込みデータと同じある。
【００３５】
図６（Ｂ）は、一般的なフラッシュメモリでのプログラム例を示している。フラッシュメモリでは、データ「１」は、メモリ素子が消去状態を表し、データ「０」は、メモリ素子がプログラムされた状態を表し、書込み動作時に、書込みデータ（プログラムデータ）が「１」であると、これに該当するメモリ素子へのプログラムは禁止である。従って、書込みデータが「０」であれば、メモリ素子のデータは、書込みデータに従い書き換えられるが、書込みデータが「１」であれば、メモリ素子のデータは、書き換えられないことになる。図６（Ｂ）の場合、メモリ素子に記憶されているデータが「０」であり、書込みデータが「１」であるとき、書込み後のメモリ素子のデータは、「０」のままであり、書込みデータ「１」と異なることになる。
【００３６】
不揮発性半導体メモリ１００においてフラッシュメモリと互換性のある書込みを実現するためには、例えば、図６（Ａ）の例で言えば、書込み後のメモリ素子のデータは、「０００１」にならなければならない。１つの解決方法は、選択メモリ素子に記憶されたデータと書込みデータとの論理積を求め、論理積のデータにより選択メモリ素子のデータを書き換えればよい。それ故、本実施例の列選択回路１７０は、書込み動作においてフラッシュモードが選択された場合には、書込みデータと選択メモリ素子から読み出された読出しデータとの論理積を算出し、この論理積データにより書込みを行う。
【００３７】
図７は、フラッシュモード時の書込み動作フローを示し、図８は、そのときの書込みデータの変換例を示している。先ず、外部ホスト装置から不揮発性半導体メモリ１００に対して、例えば、書込み動作のコマンド、アドレスデータ、書込みデータが出力され、ページバッファ１９０に書込みデータが保持される（Ｓ１００）。次に、コントローラ１４０の制御下において、行アドレスおよび列アドレスにより選択されたｐビットのメモリ素子のデータが読み出され（Ｓ１１０）、これがラッチ２１０に保持される。
【００３８】
次に、データセット部２３０は、書込みデータと、読出しデータとの論理積を求める（Ｓ１２０）。ここで図５Ａを参照すると、セット信号ＳＥＴがＬレベルであるため、トランジスタＴ２がオンし、ノードＮｋの書込みデータがＡＮＤゲート２３２の一方の入力に供給され、かつ、トランジスタＴ３がオンし、ラッチ２１０＿ｋのデータがＡＮＤゲート２３２の他方の入力に供給される。
【００３９】
次に、求められた論理積データがラッチ２１０にセットされる（Ｓ１３０）。図５Ａに示すように、書き戻し信号ＷＢがＨレベルに駆動され、ＡＮＤゲート２３２の出力がラッチ２１０＿ｋにセットされる。
【００４０】
次に、ラッチ２１０に保持された４ビットのデータはセンスアンプ２００へ転送され、センスアンプ２００は、書込みデータに従い選択メモリ素子のセット、リセットし、書込みデータによる上書きを行う（Ｓ１４０）。その結果、図８に示すように、書込み後のメモリ素子のデータは、「０００１」となり、フラッシュメモリのときと同様の書込み結果を得ることができる。
【００４１】
次に、本発明の第２の実施例について説明する。第２の実施例の不揮発性半導体メモリ１００は、ホスト装置側のプロセッサが処理するデータサイズに応じたサイズでリード／ライトすることが可能である。例えば、ホスト装置が３２ビットのワード単位でデータ処理を行うとき、不揮発性半導体メモリ１００は、ワード単位でリード／ライトを可能にする。図９は、３２ビットのワード単位でリード／ライトを行うときの動作を説明する図である。同図に示すページバッファ１９０は、３×ワードのデータを保持する例を示している。
【００４２】
列選択回路１７０は、列アドレスに基づきページバッファ１９０のバイトをアドレスするバイトアドレス部２４０を含む。バイトアドレス部２４０は、列アドレスのデコード結果に基づき、２ビットのアドレスをインクリメントすることでバイト単位のアドレスを可能にする。例えば、アドレス「００」でバイトＢ＿１がアクセスされ、次に、アドレス「０１」でバイトＢ＿２がアクセスされ、アドレス「００」、「０１」「１０」、「１１」を１サイクルとして４バイト（１ワード）をアクセスする。データセット部２３０は、バイトアドレス部２４０によりアクセスされたバイトデータをラッチ２１０にセットし、あるいはラッチ２１０に保持された、選択メモリ素子から読み出されたバイトデータをページバッファ１９０にセットする。図９の例では、ワード＿１の４バイトがラッチ２１０にセットされる例が示されている。バイトアドレス部２４０は、ワード＿１へのアクセスが終了すると、ワード＿２、ワード＿３へのアクセスを順次行うことが可能である。こうして、ワード単位でのリード／ライト動作が可能になる。
【００４３】
さらに本実施例の不揮発性半導体メモリ１００は、ワード単位のみならず、ワードの一部にデータが含まれるような４バイトデータが整列されていないデータフォーマットのリード／ライトを可能にする。以下、このような４バイトのデータが整列されていないフォーマットのデータを、便宜上、非整列ワードデータという。図１０は、フラッシュモード時に、非整列ワードデータを書込むときの例であり、ワード＿１は、４バイト目のデータＢ＿４を含み、このデータＢ＿４のみの書込みが行われる。バイトアドレス部２１２は、ホスト装置から入力された列アドレスに基づきワード＿１内の開始列アドレス「１１」、つまりバイトＢ＿４を検出する。
【００４４】
フラッシュモードにおいて書込みが行われるとき、データセット部２３０は、ラッチ２１０の全バイトを「１」（ＦＦ）に初期化する。バイトアドレス部２１２によりワード＿１のバイトＢ＿４が有効と検出されると、データセット部２１０は、その検出結果に基づきバイトＢ＿４のデータを読出し、これをラッチ２１０の対応する４番目のバイトにセットする。その結果、ラッチ２１０には、バイトＢ＿１〜Ｂ＿３にデータＦＦがセットされ、バイトＢ＿４に書込みデータがセットされる。フラッシュモードでは、データ「１」はプログラム禁止、すなわちメモリ素子のデータをそのまま維持することであり、ラッチ２１０にセットされたデータは、第１の実施例のときと同様に、メモリアレイの選択メモリ素子から読み出された１ワードデータとの論理積が求められ、論理積変換された１ワードデータが選択メモリ素子に書込まれる。
【００４５】
図１１は、ワード＿１の４バイト目のデータ「５５」（１６進数）を書込むときの例を示している。先ず、ラッチ２１０がデータ「１」に初期化される。データセット部２３０は、ページバッファ１９０の４番目のバイトからロードしたデータ「５５」をラッチ２１０にセットする。そして、ラッチ２１０にセットしたデータと選択メモリ素子から読み出された１ワードデータとの論理積を求め、この論理積データを選択メモリ素子に書込む。その結果、バイト１〜３に対応する選択メモリ素子のデータは、元のままであり、バイト４に対応する選択メモリ素子のデータのみが書き換えられる。
【００４６】
一方、ＲＡＭモードの場合、フラッシュモードと同様にラッチ２１０をデータ「１」（ＦＦ）に初期化すると、初期化されたデータによってメモリ素子のデータが書き換えられてしまう。つまり、図１１の例で言えば、バイトＢ＿１〜Ｂ＿３の初期化データにより、対応する選択メモリ素子のデータが全て「１」に書き換えられてしまい、メモリ素子に記憶されていたデータが失われてしまう。
【００４７】
そこで、本実施例のＲＡＭモードの場合、図１２に示すように、ラッチ２１０の初期化を行い、選択メモリ素子のデータを読出し、これをラッチ２１０に保持させ、データセット部２３０は、ワード＿１の４バイト目のデータ「５５」をラッチ２１０の対応する４バイト目にロードする。こうしてセットされた書込みデータが選択メモリ素子に書込まれる。これにより、メモリ素子は、記憶していたデータを破壊されずそのまま保持することができ、４バイト目のメモリ素子のデータのみが書き換えられる。仮に、ワード＿１とワード＿３との間に、４バイトのデータが整列されたフォーマットのワード＿２が含まれる場合には、データセット部２３０は、メモリ素子から読み出されたデータとページバッファ１９０に保持されたデータとを選択的にラッチ２１０にセットする。この動作の詳細は後述する。
【００４８】
図１３は、ＲＡＭモードにおける他の書込み例、すなわちバイトのランダム書込み例を示している。バイトアドレス部２４０は、入力された列アドレスに基づきワード＿１内の２バイト目のアドレスが有効と検出し、その結果に基づきデータセット部２３０は、２バイト目のデータを、ラッチ２１０の２バイト目にロードする。その他の動作は、図１２のときと同様である。
【００４９】
次に、図１２に示すような非整列ワードデータと整列ワードデータとを連続的に書込む場合の動作例を図１４に示す。ここでは、ワード＿１から順にワード＿２、ワード＿３が書込まれるものとする。
【００５０】
バイトアドレス部２４０は、入力された開始列アドレスと書込みデータのサイズとから、ワード＿１〜ワード＿３内の有効アドレス、つまり、書込みデータのアドレスを検出する。１つの好ましい例では、バイトアドレス部２４０は、開始列アドレスと、終了列アドレス（開始列アドレス＋書込みデータのサイズから算出）とをレジスタに格納し、ワード＿１〜ワード＿３の各バイトをアクセスするときのアドレスカウンタの値が開始列アドレスと終了列アドレスに一致するか否かを検出する。
【００５１】
ワード＿１の書込み動作において、データセット部２３０は、ラッチ２１０の全てを「ＦＦ」に初期化する。ワード＿１のアドレス「００」〜「１０」までの３バイトには書込みデータが存在しないため、バイトアドレス部２４０の開始列フラグと終了列フラグはともにＬレベルであり、有効アドレスフラグもＬレベルである。データセット部２４０は、有効アドレスフラグがＬレベルであるとき、選択メモリセル（入力された行アドレスおよび列アドレスにより選択）から読み出された３バイトのデータをラッチ２１０にセットする。選択メモリセルの読出し動作は、通常の読出し動作と同様にコントローラ１４０の制御下において行われる。図１４の例では、選択メモリセルから読み出された「ＤＥ」、「ＡＤ」、「ＢＥ」の３バイトデータがラッチ２１０にセットされた状態が示されている。
【００５２】
バイトアドレス部２４０がワード＿１のアドレス「１１」をアクセスするとき、アドレスカウンタの値がレジスタの開始列に一致するため、開始列フラグがＬからＨに遷移し、これに応答して有効アドレスフラグがＨに遷移する。データセット部２４０は、有効アドレスフラグがＨに遷移したことに応答して、４バイト目のデータをページバッファ１９０からロードし、これをラッチ２１０にセットする。ワード＿１の４バイトのアクセスが終了すると、ラッチ２１０にセットされたデータが選択メモリセルに書込まれる。
【００５３】
次に、ワード＿２の書込みが行われる。ここで留意すべきは、バイトアドレス部２４０の有効アドレスフラグはＨレベルを保持する点である。それ故、データセット部２４０は、バイトアドレス部２３０がワード＿２の各バイトをアクセスすることに応答して、ページバッファ１９０のワード＿２の各バイトデータを読出し、これを順次ラッチ２１０にセットする。その結果、ワード＿２の書込みでは、ページバッファ１９０の４バイトデータが選択メモリセルに書込まれる。
【００５４】
次に、ワード＿３の書込みが行われる。ワード＿３の１バイト〜３バイトの各バイトデータがラッチ２１０にそれぞれセットされる。ワード＿３の３バイト目をアクセスするとき、アドレスカウンタの値がレジスタの終了列に一致するため、バイトアドレス部２４０の終了列フラグが、次の４バイト目でＬからＨに遷移し、これに応答して有効アドレスがＨからＬに遷移する。データセット部２４０は、有効アドレスがＬレベルになったことに応答して、コントローラ１４０が４バイト目の選択メモリ素子の読出しを行い、これがラッチ２１０の４バイト目にセットされる。
【００５５】
このように、ＲＡＭモードにおいて、開始列と終了列とを検出することにより有効アドレス範囲を設定し、有効アドレスの範囲（有効アドレスフラグがＨ）であればページバッファ１９０からデータをロードし、それ以外であればメモリ素子からデータをロードすることでラッチ２１０に書込みデータをセットするようにしたので、非整列ワードおよび整列ワードの連続的な書込みを行うことができる。
【００５６】
次に、本実施例の不揮発性半導体メモリ１００のＲＡＭモードにおいてラップアラウンドシーケンスによる書込みを行う例について説明する。ラップアラウンドシーケンスの書込みは、ページバッファの指定された開始列アドレスから、指定された終了列アドレスまで戻る連続的な書込みである。図１５ないし図１７は、ラップアラウンドシーケンスの書込みを行う例を示している。ここでは、指定されたワードの４バイト目が開始列アドレスであり、同ワードの２バイト目が終了列アドレスとする。
【００５７】
ラップアラウンド前、つまり、３バイト目までは、有効アドレスフラグがＬであるため、ラッチ２１０には、選択メモリ素子から読み出された３バイトデータが格納される。ここで、１バイト目のアクセス終了時のアドレスカウンタの値（つまり、２バイト目のアドレスカウンタの値）が終了列に一致するため、終了列フラグがＨレベルに遷移するが、開始列アドレスがＨレベルに遷移していないので、終了列アドレスの遷移は無視される。４バイト目のとき、アドレスカウンタの値が開始列に一致し、開始列フラグがＬからＨに遷移することに応答して有効アドレスフラグがＨとなり、ページバッファの４バイト目のデータがラッチ２１０にロードされる。そして、ラッチ２１０にセットされたデータが選択メモリ素子に書込まれる。
【００５８】
以後、有効アドレスフラグがＨを保持された状態で、ワード単位の書込みが行われる。この間、有効アドレスフラグはＨであるため、ページバッファ１９０に保持されたワードデータがラッチ２１０にセットされることになる。そして、図１６に示すように、指定されたワードに戻ってきたとき、先頭の２バイトのデータは、ラッチ２１０にセットされるが、２バイト目のアクセス終了時のアドレスカウンタの値が終了列に一致し、終了列フラグがＨレベルに遷移し、これに応答して有効アドレスフラグがＬに遷移する。これにより、３バイト目のアクセスでは、選択メモリ素子からデータが読み出され、これがラッチ２１０にセットされる。４バイト目のアクセス時に、開始列フラグがＨに遷移するが、終了列が既に検出されているため、開始列フラグの遷移は無視される。
【００５９】
以上のように、本実施例の不揮発性半導体メモリは、ＲＡＭモードとフラッシュモードの双方に対応した動作モードを実行することで、フレキシビリティの高いユーザーインターフェースを提供することができる。
【００６０】
上記実施例では、メモリアレイを構成するメモリ素子として可変抵抗型のメモリ素子を例示したが、メモリ素子は、ランダムアクセスが可能であり、かつ書込みデータ「０」、「１」によって上書き可能なものであれば、可変抵抗型以外から構成されてもよい。
【００６１】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６２】
１００：不揮発性半導体メモリ
１１０：メモリアレイ
１２０：入出力バッファ
１３０：アドレスレジスタ
１４０：コントローラ
１５０：ステータスレジスタ
１６０：ワード線選択回路
１７０：列選択回路
１８０：センス回路
１９０：ページバッファ
【図１】
2018005962.tif 000003
【図２】
2018005962.tif 000004
【図３】
2018005962.tif 000005
【図４】
2018005962.tif 000006
【図５】
2018005962.tif 000007
【図５Ａ】
2018005962.tif 000008
【図６】
2018005962.tif 000009
【図７】
2018005962.tif 000010
【図８】
2018005962.tif 000011
【図９】
2018005962.tif 000012
【図１０】
2018005962.tif 000013
【図１１】
2018005962.tif 000014
【図１２】
2018005962.tif 000015
【図１３】
2018005962.tif 000016
【図１４】
2018005962.tif 000017
【図１５】
2018005962.tif 000018
【図１６】
2018005962.tif 000019
【図１７】
2018005962.tif 000020