(57)【要約】【課題】記憶素子に対する物理的負担を出来るだけ少なくし、記憶装置の信頼性を高める。【解決手段】記憶素子配列部は、Ｍ値のデータを記憶可能な記憶素子を複数配列してなる。Ｍ値のデータを構成する第１データ〜第Ｍデータのうち、第Ｍデータは、記憶素子に対して書き込み動作が行われる以前の消去状態において記憶素子が保持するデータであり、第１データは、Ｍ値のデータのうちで最も書き込みのために記憶素子に与える物理的負担が大きいデータである。データ処理部は、第１データ〜第Ｍデータのうちで、ある書き込みデータの集合に含まれる数が最も小さい最少数データを特定し、最少数データが前記第１データ以外のデータである場合、書き込みデータの集合に含まれる最少数データを第１データと置き換える一方、書き込みデータの集合に含まれる第１データを当該最少数データと置き換える。【選択図】図１４
2011204304.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ値（Ｍは２以上の自然数）のデータを記憶可能な記憶素子を複数配列してなる記憶素子配列部と、
前記記憶素子に書き込むべき書き込みデータを一時保持するデータ保持部と、
前記書き込みデータに対するデータ処理を実行するデータ処理部と
を備え、
前記Ｍ値のデータを構成する第１データ〜第Ｍデータのうち、前記第１データは、前記Ｍ値のデータのうちで最も書き込みのために前記記憶素子に与える物理的負担が大きいデータであり、
前記データ処理部は、
複数個の前記記憶素子の集合に含まれる前記記憶素子に書き込まれるべきデータとして前記データ保持部に保持された前記書き込みデータの集合に対するデータ処理を実行可能に構成され、
前記データ処理は、
前記第１データ〜第Ｍデータのうちで、前記書き込みデータの集合に含まれる数が最も小さい最少数データを特定し、
前記最少数データが前記第１データ以外のデータである場合、前記書き込みデータの集合に含まれる前記最少数データを第１データと置き換える一方、前記書き込みデータの集合に含まれる前記第１データを前記最少数データと置き換える第１データ処理と、
前記最少数データが前記第１データである場合、前記書き込みデータの集合に対するデータ変換を行わず、そのままの状態に維持する第２データ処理とを含む
ことを特徴とするデータ記憶装置。
【請求項２】
前記Ｍの数が増えるに従い前記記憶素子に与える物理的負担が小さくなるようにデータを付与した場合、
前記データ処理部は、前記第１データ〜第Ｍデータのうちの複数のデータが前記最少数データに相当する場合、最も前記記憶素子に対して物理的負担を与えないデータを前記最少数データとして定めて前記第１データ処理を実行する請求項１記載のデータ記憶装置。
【請求項３】
前記第１データ処理が実行された場合、前記集合に対して、前記第１データ処理の実行の有無、及び前記最少数データの種類を特定するためのパリティデータを生成するパリティデータ生成部を備えたことを特徴とする請求項１記載のデータ記憶装置。
【請求項４】
前記パリティデータ生成部は、前記最少数データが第１データである場合、前記パリティデータとして前記第Ｍデータを生成する一方、
前記最少数データが前記第Ｍデータである場合、前記パリティデータとして前記第１データを生成する
ことを特徴とする請求項３記載のデータ記憶装置。
【請求項５】
Ｍ値（Ｍは２以上の自然数）のデータを記憶可能な記憶素子を複数配列してなる記憶素子配列部を備えたデータ記憶装置に対するデータの書き込み方法であって、
前記Ｍ値のデータを構成する第１データ〜第Ｍデータのうち、前記第１データは、前記Ｍ値のデータのうちで最も書き込みのために前記記憶素子に与える物理的負担が大きいデータであり、
前記記憶素子に書き込むべき書き込みデータを一時保持するステップと、
前記第１データ〜第Ｍデータのうちで、前記書き込みデータの集合に含まれる数が最も小さい最少数データを特定するステップと、
前記最少数データが前記第１データ以外のデータである場合、前記書き込みデータの集合に含まれる前記最少数データを第１データと置き換える一方、前記書き込みデータの集合に含まれる前記第１データを前記最少数データと置き換えるステップと、
前記最少数データが前記第１データである場合、前記書き込みデータの集合に対するデータ変換を行わず、そのままの状態に維持するステップと
を備えたことを特徴とするデータ記憶装置に対する書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ記憶装置、及びデータ記憶装置に対するデータ書き込み方法に関するものである。
【背景技術】
【０００２】
メモリセル中にデータを不揮発に記憶する不揮発性半導体記憶装置として、様々な形式のものが提案されている。その中でも、ＮＡＮＤ型フラッシュメモリは、大容量化が容易であるため、データストレージデバイスとして広く用いられている（例えば、特許文献１参照）。
【０００３】
ＮＡＮＤ型フラッシュメモリのセルアレイは、複数のメモリセルを直列接続したＮＡＮＤセルユニットを配列して構成される。各ＮＡＮＤセルユニットの両端はそれぞれ選択ゲートトランジスタを介してビット線とソース線に接続される。
【０００４】
ＮＡＮＤセルユニット内のメモリセルの制御ゲートはそれぞれ異なるワード線に接続される。ＮＡＮＤ型フラッシュメモリは、複数のメモリセルがソース、ドレインを共有して直列接続され、また選択ゲートトランジスタやそれらのビット線コンタクトやソース線コンタクトを複数のメモリセルで共有するため、単位メモリセルのサイズを小さくすることができ、また、ワード線やメモリセルの素子領域の形状が単純なストライプ状に近いため微細化に向いており、大容量のフラッシュメモリが実現されている。
【０００５】
またＮＡＮＤ型フラッシュメモリでは、データ書き込みと消去は、多くのセルで同時にＦＮトンネル電流を流すことにより行われる。具体的に、１ワード線を共有するメモリセルの集合を１ページ又は２ページとして、データ書き込みはページ単位で行われる。データ消去は、ワード線及び選択ゲート線を共有するＮＡＮＤセルユニットの集合として定義されるブロック単位で行われる。
【０００６】
ところで、１つのメモリセルに対し書き込み・消去が繰り返し行われると、メモリセルのトンネル絶縁膜が徐々に劣化し、メモリの信頼性が低下するという問題がある。
【０００７】
このため、書き込み電圧、消去電圧によりメモリセルに与えられるストレスをできるだけ緩和することが望まれている。メモリセルへのストレスを緩和することは、メモリの信頼性を高めるとともに、メモリセルの長寿命化に寄与する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−３７６７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、記憶装置の信頼性を高めると共に、記憶装置の長寿命化することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様に係るデータ記憶装置は、Ｍ値（Ｍは２以上の自然数）のデータを記憶可能な記憶素子を複数配列してなる記憶素子配列部と、前記記憶素子に書き込むべき書き込みデータを一時保持するデータ保持部と、前記書き込みデータに対するデータ処理を実行するデータ処理部とを備え、前記Ｍ値のデータを構成する第１データ〜第Ｍデータのうち、前記第１データは、前記Ｍ値のデータのうちで最も書き込みのために前記記憶素子に与える物理的負担が大きいデータであり、前記データ処理部は、複数個の前記記憶素子の集合に含まれる前記記憶素子に書き込まれるべきデータとして前記データ保持部に保持された前記書き込みデータの集合に対するデータ処理を実行可能に構成され、前記データ処理は、前記第１データ〜第Ｍデータのうちで、前記書き込みデータの集合に含まれる数が最も小さい最少数データを特定し、前記最少数データが前記第１データ以外のデータである場合、前記書き込みデータの集合に含まれる前記最少数データを第１データと置き換える一方、前記書き込みデータの集合に含まれる前記第１データを前記最少数データと置き換える第１データ処理と、前記最少数データが前記第１データである場合、前記書き込みデータの集合に対するデータ変換を行わず、そのままの状態を維持する第２データ処理とを含むことを特徴とする。
本発明の一態様に係るデータ書き込み方法は、Ｍ値（Ｍは２以上の自然数）のデータを記憶可能な記憶素子を複数配列してなる記憶素子配列部を備えたデータ記憶装置に対するデータの書き込み方法であって、前記Ｍ値のデータを構成する第１データ〜第Ｍデータのうち、前記第１データは、前記Ｍ値のデータのうちで最も書き込みのために前記記憶素子に与える物理的負担が大きいデータであり、前記記憶素子に書き込むべき書き込みデータを一時保持するステップと、前記第１データ〜第Ｍデータのうちで、前記書き込みデータの集合に含まれる数が最も小さい最少数データを特定するステップと、前記最少数データが前記第１データ以外のデータである場合、前記書き込みデータの集合に含まれる前記最少数データを第１データと置き換える一方、前記書き込みデータの集合に含まれる前記第１データを前記最少数データと置き換えるステップと、前記最少数データが前記第１データである場合、前記書き込みデータの集合に対するデータ変換を行わず、そのままの状態に維持するステップとを備えたことを特徴とする。
【発明の効果】
【００１１】
この発明によれば、記憶装置の信頼性を高めると共に、記憶装置の長寿命化することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施の形態に係る不揮発性半導体記憶装置（ＮＡＮＤセル型フラッシュメモリ）を含むメモリカードの主要な機能ブロックを示している。
【図２Ａ】図１のメモリカード２０００を、メモリ２１とコントローラ２２のロジックコントロールを渾然一体として見た機能ブロック構成を示している。
【図２Ｂ】図２Ａ中の制御回路６の機能ブロック図である。
【図２Ｃ】図２Ｂに示すデータ分割処理部２１６の機能を示す概念図である。
【図３】図１のメモリ２１中のメモリセルアレイのセルアレイ構成を示している。
【図４】メモリセルＭＣの断面構造を示している。
【図５】選択ゲートＳ１及びＳ２の断面構造を示している。
【図６】ＮＡＮＤセルユニットＮＵの断面構造を示している。
【図７】２値データ（Ｍ＝２）、すなわち１つのメモリセルあたりに１ビットのデータを記憶させる２値記憶方式を実行する場合について説明する概念図である。
【図８】４値データ（Ｍ＝４）、すなわち１つのメモリセルあたりに２ビットのデータを記憶させる４値記憶方式を実行する場合について説明する概念図である。
【図９】４値データ（Ｍ＝４）、すなわち１つのメモリセルあたりに１ビットのデータを記憶させる２値記憶方式を実行する場合について説明する概念図である。
【図１０】４値データ（Ｍ＝４）、すなわち１つのメモリセルあたりに１ビットのデータを記憶させる２値記憶方式を実行する場合について説明する概念図である。
【図１１】セル間干渉によるメモリセルＣの閾値電圧の変動の様子を示している。
【図１２】セル間干渉によるメモリセルＣの閾値電圧の変動の様子を示している。
【図１３Ａ】第１の実施の形態の動作を示すフローチャートである。
【図１３Ｂ】第１の実施の形態の動作の別の例を示すフローチャートである。
【図１４】２値記憶方式が実行される場合におけるデータ置換動作を示す。
【図１５】４値記憶方式が実行される場合におけるデータ置換動作を示す。
【図１６】第１の実施の形態の動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
次に、本発明の実施の形態を、図面を参照して詳細に説明する。
【００１４】
［第１の実施の形態］
まず、本発明の第１の実施の形態に係る不揮発性装置を、図１等を参照して説明する。
【００１５】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係る不揮発性半導体記憶装置（ＮＡＮＤセル型フラッシュメモリ）を含むメモリカードの主要な機能ブロックを示している。図１には、このメモリカードと接続されるホスト装置の機能ブロックも示されている。各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各ブロックがこれらのいずれでもあることが明確となるように、主にそれらの機能の観点から以下に説明する。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も本発明の範疇に含まれる。
【００１６】
ホスト装置（以下、ホストと称する）１０００は、アプリケーション、オペレーティング・システム等のソフトウェア１１を備えている。ソフトウェア１１は、ユーザから、メモリカード２０００へのデータの書き込み、メモリカード２０００からのデータの読み出しを指示される。ソフトウェア１１は、データの書き込みおよび読み出しをファイルシステム１２に指示する。なお、ここでいう「ソフトウェア」は、プログラムだけでなく、プログラムが記憶されたＲＯＭ、プログラムに従って指示を出す回路、演算を行うにあたり一時的にデータを保存するためのキャッシュなども含まれる。ファイルシステム１２は、管理対象の記憶媒体に記録されているファイルデータを管理するための仕組みであり、記憶媒体の記憶領域内に管理情報を記録し、この管理情報を用いてファイルデータを管理する。
【００１７】
ホスト１０００は、ＳＤインターフェース１３を有する。ＳＤインターフェース１３は、ホスト１０００とメモリカード２０００との間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなる。ホスト１０００は、ＳＤインターフェース１３を介してメモリカード２０００と通信を行う。ＳＤインターフェース１３は、ホスト１０００とメモリカード２０００とが通信するのに必要な様々な取り決めを規定し、後述のメモリカード２０００のＳＤインターフェース３１と相互に認識可能な各種のコマンドの組を備えている。また、ＳＤインターフェース１３は、メモリカード２０００のＳＤインターフェース３１と接続可能なハードウェア上の構成（ピンの配置、数等）も含む。
【００１８】
メモリカード２０００は、ＮＡＮＤ型フラッシュメモリ２１、メモリ２１を制御するためのコントローラ２２を有する。メモリカード２０００は、ホスト１０００に接続されたとき、およびオフ状態のホスト１０００に挿入された状態でホスト１０００がオンされたときに電源供給を受けて初期化動作を行った後、ホスト１０００からのアクセスに応じた処理を行う。
【００１９】
メモリ２１は、データを不揮発に記憶し、複数のメモリセルからなるページと呼ばれる単位でデータの書き込みおよび読み出しを行う。ページには、各ページに固有の物理アドレスが割り当てられている。また、メモリ２１は、複数のページからなる物理ブロック（消去ブロック）と呼ばれる単位でデータの消去を行う。なお、物理ブロック単位で物理アドレスが割り当てられていることもある。
【００２０】
コントローラ２２は、メモリ２１によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ（または物理ブロック）が、どの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのページ（または物理ブロック）が消去状態（何も書き込まれていない、または無効なデータを保持している状態）であるかを管理することを含んでいる。
【００２１】
コントローラ２２は、ＳＤインターフェース３１、ＭＰＵ（micro processing unit）３２、ＲＯＭ（read only memory）３３、ＲＡＭ（Random Access Memory）３４、ＮＡＮＤインターフェース３５を含んでいる。
【００２２】
ＳＤインターフェース３１は、ホスト１０００とコントローラ２２との間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなり、ＳＤインターフェース１３と同様に、両者の通信を可能とする取り決めを規定し、各種のコマンドの組を備え、ハードウェア上の構成（ピンの配置、数等）も含む。メモリカード２０００（コントローラ２２）は、ＳＤインターフェース３１を介してとホスト１０００と通信を行う。ＳＤインターフェース３１は、レジスタ３６を含んでいる。
【００２３】
ＭＰＵ３２は、メモリカード２０００全体の動作を司る。ＭＰＵ３２は、例えば、メモリカード２０００が電源供給を受けた際に、ＲＯＭ３３内に格納されているファームウェア（制御プログラム）をＲＡＭ３４上に読み出して所定の処理を実行する。ＭＰＵ３２は、制御プログラムに従って各種のテーブル（後述）をＲＡＭ３４上で作成したり、ホスト１０００から受けたコマンドに従ってメモリ２１に対する所定の処理を実行したりする。
【００２４】
ＲＯＭ３３は、ＭＰＵ３２により制御される制御プログラムなどを格納する。ＲＡＭ３４は、ＭＰＵ３２の作業エリアとして使用され、制御プログラムや各種のテーブルを一時的に記憶する。このようなテーブルとして、ファイルシステム１２によってデータに割り当てられた論理アドレスを有するデータを実際に記憶しているページの物理アドレスの変換テーブル（論理・物理アドレス変換テーブル）が含まれる。ＮＡＮＤインターフェース３５は、コントローラ２２とメモリ２１とのインターフェース処理を行う。
【００２５】
メモリ２１内の記憶領域は、保存されるデータの種類に応じて、例えばシステムデータ領域、機密データ領域、保護データ領域、ユーザデータ領域等を含んでいる。システムデータ領域は、コントローラ２２が、その動作に必要なデータを保存するためにメモリ２１で確保しておく領域である。機密データ領域は、暗号化に用いる鍵情報や認証時に使用する機密データを保存しており、ホスト１０００からアクセスできない。保護データ領域は、重要なデータ、セキュアなデータを格納する。ユーザデータ領域は、ホスト１０００が自由にアクセスおよび使用することが可能で、例えばＡＶコンテンツファイルや画像データ等のユーザデータを格納する。以下の説明で、メモリ２１のメモリ空間を指す意味でメモリ２１という記述を用いているとき、この記述はユーザデータ領域を指すものとする。なお、コントローラ２２は、ユーザデータ領域の一部を確保し、自身の動作に必要な制御データ（論理アドレス・物理アドレス対応テーブル等）を保存する。
【００２６】
なお、メモリカード２０００において、メモリ２１とコントローラ２２とが別チップであることは、このメモリシステムにとって本質的ではない。図２Ａは、図１のメモリカード２０００を、メモリ２１とコントローラ２２のロジックコントロールを渾然一体として見た機能ブロック構成を示している。また、図２Ｂは、図２Ａ中の制御回路６の機能ブロック図である。また、図２Ｃは、図２Ｂに示すデータ分割処理部２１６の機能を示す概念図である。また図３は図１のメモリ２１中のメモリセルアレイ構成を示している。
【００２７】
このメモリカード２０００は、メモリセルＭＣ（記憶素子）を複数個配列してなるメモリセルアレイ１（記憶素子配列部）を備えている。メモリセルアレイ１は、図３に示すように、複数の電気的書き換え可能な複数の不揮発性メモリセル（図の例では３２個のメモリセル）ＭＣ０−ＭＣ３１が直列接続されたＮＡＮＤセルユニット（ＮＡＮＤストリング）ＮＵを配列して構成される。このようなＮＡＮＤセルユニットＮＵが、例えば１０２４＋ｑ本（ｎ＝１０２４）集まってワード線ＷＬを共有して１つのブロックＢＬＫが形成される。メモリセルＭＣは、後述するように、１メモリセル辺りにＭ値（Ｍは２以上の自然数）のデータを格納可能とされている。例えば、Ｍ＝４、すなわち４値のデータを１つのメモリセルＭＣに記憶する場合、４値データの各々は、例えばデータ”３”（”１１”）、”２”（”０１”）、”１”（”１０”）、”０”（”００”）と定義され得る。ここで、データの書き込みはワード線ＷＬに書き込み電圧、例えば、１５Ｖを加え、ビット線ＢＬにワード線ＷＬよりも低い電圧、例えば、０Ｖを加えることにより行われる。
【００２８】
１０２４＋ｑ本のＮＡＮＤセルユニットＮＵのうち、１０２４本のＮＡＮＤセルユニットＮＵは、主に外部のホストデバイスから供給される実効データの格納に用いられる。一方、残るｑ本のＮＡＮＤセルユニットは、後述するパリティデータを格納するための記憶領域として用いられる。パリティデータは、後述するデータ変換が実行されたか否かを示すと共に、データ変換が実行された場合、Ｍ値のデータのうちデータ変換の対象とされたデータの種類を示す。データ変換は、後述するように、できるだけメモリセルＭＣに与えられる物理的負担がメモリセルアレイ全体においてトータルで小さくなるよう、具体的には、できるだけ多くのメモリセルＭＣが、消去状態のままとされるように実行される。
【００２９】
１つのブロックＢＬＫは、データ消去動作の一単位を形成する。また、１つのメモリセルＭＣに２ビットのデータが格納される場合（２ビット／セル）、１つのワード線ＷＬに沿って形成されるメモリセルＭＣにより、２ページ（上位ページＵＰＰＥＲ、下位ページＬＯＷＥＲ）のデータが格納される。
【００３０】
図３に示すように、ＮＡＮＤセルユニットＮＵの一端は、選択ゲートトランジスタＳ１を介してビット線ＢＬに、他端は選択ゲートトランジスタＳ２を介して共通ソース線ＣＥＬＳＲＣに接続される。メモリセルＭ０−Ｍ３１の制御ゲートはそれぞれワード線ＷＬ０−ＷＬ３１に接続され、選択ゲートトランジスタＳ１，Ｓ２のゲートは選択ゲート線ＳＧＤ，ＳＧＳに接続される。
【００３１】
ビット線ＢＬの一端側に、セルデータの読み出し及び書き込みに供されるセンスアンプ回路３ａが配置され、ワード線ＷＬの一端側にワード線及び選択ゲート線の選択駆動を行うロウデコーダ２（図３では図示せず）が配置される。ロウデコーダ２は、複数のブロックの１つを特定するプリロウデコーダ２ａと、１つのブロック中の１つのワード線ＷＬを選択的に駆動するメインロウデコーダ２ｂとを備えている。
【００３２】
コマンド、アドレス及びデータは、入力制御回路２１３を介して入力され、チップイネーブル信号／ＣＥ、書き込みイネーブル信号／ＷＥ、読み出しイネーブル信号／ＲＥその他の外部制御信号は、論理回路２１４に入力され、タイミング制御に用いられる。コマンドは、コマンドレジスタ８でデコードされる。
【００３３】
制御回路６は、データの転送制御及び書き込み／消去／読み出しのシーケンス制御を行う。制御回路６は図１のＭＰＵ３２に属すると言える。ステータスレジスタ２１１は、Ｒｅａｄｙ／Ｂｕｓｙ端子にメモリカード２０００のＲｅａｄｙ／Ｂｕｓｙ状態を出力する。これとは別に、メモリ２０００の状態（Ｐａｓｓ／Ｆａｉｌ，Ｒｅａｄｙ／Ｂｕｓｙ等）をＩ／Ｏポートを介してホスト１０００に知らせるステータスレジスタ２１２が用意されている。
【００３４】
アドレスは、アドレスレジスタ５を介して、ロウデコーダ（プリロウデコーダ２ａとメインロウデコーダ２ｂ）２やカラムデコーダ４に転送される。書き込みデータは、入出力制御回路２１３を介し、制御回路６を介して一旦データレジスタ２１５（図１のＲＡＭ３４に属すると言える）に一時保持された後、後述するデータ変換を受ける。データ変換後の書き込みデータは、センスアンプ回路３（センスアンプ３ａとデータレジスタ３ｂ）にロードされ、書き込みの対象とされる。読み出しデータは制御回路６を介して、外部に出力される。
【００３５】
各動作モードに応じて必要とされる高電圧を発生するために、高電圧発生回路１０が設けられている。高電圧発生回路１０は、制御回路６から与えられる指令に基づいて所定の高電圧を発生する。
【００３６】
図２Ｂは、制御回路６によって実現されるデータ処理部の機能ブロック図である。制御回路６は、図２Ｂに示すように、データ分割処理部２１６、最少数データ判定部２１７、データ置換部２１８、及びパリティデータ生成部２１９を実現するよう、プログラムされている。
ここで、図２Ｂに示すデータ処理部の機能は、制御回路６によって実現されるだけでなく、ホスト装置１０００のソフトウェア１１によって実現することも可能である。すなわち、メモリカード２０００が図２Ｂに示すデータ処理部の機能を有さなくても、ホスト装置１０００のソフトウェア１１が図２Ｂに示すデータ処理部の機能を有していれば良い。また、ホスト装置１０００及びメモリカード２０００の双方が、図２Ｂに示すデータ処理部の機能を有していてもよい。この場合は、図２Ｂに示すデータ処理をホスト装置１０００側で行っても良く、メモリカード２０００側で行っても良く、ホスト装置１０００側とメモリカード２０００側で平行して処理しても良い。
【００３７】
データ分割処理部２１６は、メモリセルアレイ１中の１つのワード線ＷＬに沿ったｎ個のメモリセルＭＣに書き込むためホスト１０００から供給されデータレジスタ２１５に一時保持されたｎ個の書き込みデータ（Ｍ値のデータ）ｄ１、ｄ２、・・・ｄｎを、ｍ個のデータ集合Ｇｉ（ｉ＝１〜ｍ、ｍ＜ｎ）に分割する機能を有する。複数のデータ集合Ｇｉの各々は、複数個のＭ値のデータｄｉを含む。なお、各データ集合Ｇｉに含まれるＭ値のデータｄｉの数は、データ集合Ｇｉ毎に異なっていてもよい。また、各データ集合Ｇｉに含まれるＭ値のデータｄｉの数は、奇数とするのが好ましいが、偶数であっても問題はない。
また、データ集合Ｇｉの数ｍは、データの信頼性の向上の要求と、メモリ装置のビット単価の低減の要求とを併せて考慮して決定される。
【００３８】
データｄｉがＭ値データである場合、あるデータｄｉは、データ”０”、・・・”Ｍ−１”のいずれかである。この実施の形態において、データ”Ｍ−１”は、メモリセルＭＣの消去状態におけるデータを意味するものとする。一方、データ”０”は、それが書き込まれる場合に、最もメモリセルＭＣに対して大きな物理的負担を与えるデータを意味している。本実施の形態では、メモリセルＭＣはフラッシュメモリであるので、データ”０”は最も閾値電圧が大きなデータとして定義され、従って、書き込みのために、最も大きな書き込み電圧の印加が必要なデータである。一方、データ”Ｍ−１”は書き込み動作を行わないため、最もメモリセルＭＣに対して小さな物理的負担を与えるデータを意味している。
【００３９】
また、最少数データ判定部２１７は、そのデータ集合Ｇｉに含まれるｘ個のデータｄｉ（Ｍ値データ）の種類を判別し（すなわち、ｘ個のデータｄｉ（Ｍ値データ）のそれぞれが、データ”０”・・・、”Ｍ−１”のいずれであるのかを判別し）、データ集合Ｇｉ中でデータ”０”、・・・、又は”Ｍ−１”のいずれが最もその数が少ないデータ（最少数データ）であるのかを特定する機能を有する。データ置換部２１８は、最少数データ判定部２１７が判定した最少数データがデータ”０”以外である場合に、その最少数データを、データ”０”と置換する第１データ処理を実行すると共に、最少数データがデータ”０”であった場合には、データ置換を行わずそのままの状態とする第２データ処理を実行可能に構成されている。
【００４０】
パリティデータ生成部２１８は、前述の第１データ処理がデータ置換部２１８で実行された場合において、最少数データに応じたパリティデータを生成する機能を有する。
【００４１】
図４及び図５は、メモリセルＭＣ、ならびに選択ゲートＳ１及びＳ２の断面構造を示している。図４はメモリセルＭＣの断面構造を示している。基板４１（又はｐ型ウエル）にはメモリセルＭＣを構成するＭＯＳＦＥＴのソース、ドレインとして機能するｎ型拡散層４２が形成されている。また基板４１の上にはゲート絶縁膜４３を介して浮遊ゲート（ＦＧ）４４が形成され、この浮遊ゲート４４の上には絶縁膜４５を介して制御ゲート（ＣＧ）４６が形成されている。このようないわゆるフローティングゲート型のメモリセルに代えて、シリコン窒化膜を電荷蓄積層とするＭＯＮＯＳ型メモリセルを採用してもよい。
【００４２】
選択ゲートＳ１、Ｓ２は、基板４１と、この基板４１に形成されたソース、ドレインとしてのｎ型拡散層４７を備えている。基板４１の上にはゲート絶縁膜４８を介して制御ゲート４９が形成されている。
【００４３】
図６は、メモリセルアレイの１つのＮＡＮＤセルの断面を示している。この例において、１つのＮＡＮＤセルは、図４に示す構成の３２個のメモリセルＭＣが直列接続されて構成されている。ＮＡＮＤセルのドレイン側、ソース側には、図５に示す構成の第１の選択ゲートＳ１、第２の選択ゲートＳ２が設けられている。
【００４４】
次に、本実施の形態において２値データ（Ｍ＝２）、すなわち１つのメモリセルあたりに１ビットのデータを記憶させる２値記憶方式を実行する場合について図７を参照して説明する。２値記憶方式の場合、データ”１”又は”０”のいずれかがメモリセルＭＣに書き込まれる。この場合、ＮＡＮＤセル型フラッシュメモリは、１つのメモリセルＭＣにおける閾値電圧が、２通りの閾値電圧分布Ｅ，Ａを持ち得るように構成されている。図７は、２値記憶方式のＮＡＮＤセル型フラッシュメモリのメモリセルに記憶される１ビットの２値データ（データ“１”、“０”）とメモリセルの閾値電圧分布Ｅ，Ａとの関係を示している。以降、「閾値分布が高い、低い」とは、特に断りがない限り、閾値分布のピークの位置で高い、低い、を判断する。
【００４５】
なお、図７において、電圧ＶＡは２つのデータ”１”、”０”を読み出す場合に選択ワード線に印加される電圧であり、例えば、ＶＡ＝０Ｖである。電圧ＶＡＶは、閾値電圧分布Ａへの書き込みを行う場合において、書き込みが完了したかどうかを確認するために印加されるベリファイ電圧を示している。また、Ｖｒｅａｄは、データの読み出しを行う場合に、ＮＡＮＤセル中の非選択メモリセルに対し印加され、その保持データに拘わらず当該非選択メモリセルを導通させる読み出し電圧を示している。さらに、電圧Ｖｅｖは、メモリセルのデータを消去する場合において、その消去が完了したか否かを確認するためメモリセルに印加される消去ベリファイ電圧であり、例えば、負の値を有する。上述の各電圧の大小関係は、Ｖｅｖ＜ＶＡ＜ＶＡＶ＜Ｖｒｅａｄである。
【００４６】
なお、消去ベリファイ電圧Ｖｅｖは前述の通り負の値であるが、実際に消去ベリファイ動作においてメモリセルＭＣの制御ゲートに印加される電圧は、負の値ではなく、ゼロ又は正の値である。すなわち、実際の消去ベリファイ動作においては、メモリセルＭＣのバックゲートに正の電圧を与え、メモリセルＭＣの制御ゲートには、ゼロ又はバックゲート電圧より小さい正の値の電圧を印加している。換言すれば、消去ベリファイ電圧Ｖｅｖは、等価的に負の値を有する電圧である。
【００４７】
ブロック消去後のメモリセルの閾値電圧分布Ｅは、その上限値も負の値であり、データ“１”が割り当てられる。また、書き込み状態のデータ“０”のメモリセルは、閾値電圧分布Ａを有する。
【００４８】
次に、本発明の実施の形態において、４値記憶方式（Ｍ＝４、２ビット／セル）を実行する場合の例を、図８〜図１０を参照して説明する。
【００４９】
４値ＮＡＮＤセル型フラッシュメモリは、１つのメモリセルＭＣにおける閾値電圧が、４通りの閾値電圧分布Ｅ，Ａ，Ｂ，Ｃを持ち得るように構成されている。図８は、４値ＮＡＮＤセル型フラッシュメモリのメモリセルに記憶される２ビットの４値データ“１１”（”３”）、“１０”（”２”）、“０１”（”１”）、“００”（”０”）とメモリセルＭＣの閾値電圧分布Ｅ，Ａ，Ｂ，Ｃとの関係を示している。なお、図１において、ＶＡ、ＶＢ、ＶＣは４つのデータを読み出す場合に選択ワード線に印加される電圧であり（電圧ＶＡは０Ｖである）、ＶＡＶ、ＶＢＶ、ＶＣＶは、各閾値電圧分布Ｅ，Ａ，Ｂ，Ｃへの書き込みを行う場合において、書き込みが完了したかどうかを確認するために印加されるベリファイ電圧を示している。
【００５０】
また、Ｖｒｅａｄは、データの読み出しを行う場合に、ＮＡＮＤセル中の非選択メモリセルに対し印加され、その保持データに拘わらず当該非選択メモリセルを導通させる読み出し電圧を示している。さらに、Ｖｅｖは、メモリセルのデータを消去する場合において、その消去が完了したか否かを確認するためメモリセルに印加される消去ベリファイ電圧であり、例えば、負の値を有する。上述の各電圧の大小関係は、Ｖｅｖ＜ＶＡ＜ＶＡＶ＜ＶＢ＜ＶＢＶ＜ＶＣ＜ＶＣＶ＜Ｖｒｅａｄである。
【００５１】
ブロック消去後のメモリセルＭＣの閾値電圧分布Ｅは、その上限値も負の値であり、データ“１１”（”３”）が割り当てられる。また、書き込み状態のデータ“０１”（”２”）、“１０”（”１”）、“００”（”０”）のメモリセルは、それぞれ正の閾値電圧分布Ａ、Ｂ、Ｃを有する（閾値電圧分布Ａ、Ｂ、Ｃの下限値も正の値である）。データ“０１”（”２”）の閾値電圧分布Ａが最も電圧値が低く、データ“００”（”０”）の閾値電圧分布Ｃが最も電圧値が高く、データ“１０”（”１”）の閾値電圧分布Ｂは、データ“０１”とデータ“００”の中間の電圧値を有する。なお、図１に示す閾値電圧分布はあくまでも一例であって、本発明はこれに限定されるものではない。例えば、図１では閾値電圧分布Ａ，Ｂ，Ｃは全て正の閾値電圧分布であるとして説明したが、閾値電圧分布Ａは負の電圧の分布であり、閾値電圧分布Ｂ、Ｃが正の電圧の分布であるような場合も、本発明の範囲に含まれる。閾値電圧分布Ｅが負の電圧の分布であれば良い。
【００５２】
１つのメモリセルＭＣの２ビットデータ（４値データ）は、下位ページデータと上位ページデータからなり、下位ページデータと上位ページデータは別々の書き込み動作、つまり、２回の書き込み動作により、メモリセルＭＣに書き込まれる。データ“＊＠”と標記するとき、＊は上位ページデータを、＠は下位ページデータを表している。
【００５３】
まず、下位ページデータの書き込みを、図９を参照して説明する。全てのメモリセルは、消去状態の閾値電圧分布Ｅを有し、データ“１１”（”３”）を記憶しているものとする。図９に示すように、下位ページデータの書き込みを行うと、メモリセルの閾値電圧分布Ｅは、下位ページデータの値（“１”、或いは“０”）に応じて、２つの閾値電圧分布（Ｅ、Ｂ´）に分けられる。すなわち、下位ページデータの値が“１”の場合には、消去状態の閾値電圧分布Ｅを維持する。
【００５４】
一方、下位ページデータの値が“０”の場合には、メモリセルのトンネル酸化膜に高電界を印加し、フローティングゲート電極に電子を注入して、メモリセルの閾値電圧Ｖｔｈを所定量だけ上昇させる。具体的には、ベリファイ電位ＶＢＶ´を設定し、このベリファイ電圧ＶＢＶ´以上の閾値電圧となるまで書き込み動作が繰り返される。その結果、メモリセルは、書き込み状態（データ“１０”（”１”））に変化する。なお、データ“１０”（”１”）の閾値電圧分布Ｂ´は、隣接セルへの書き込み動作の影響のため、データ“１１”に比べ広い分布となっている。
【００５５】
次に、上位ページデータの書き込みを、図１０を参照して説明する。上位ページデータの書き込みは、チップの外部から入力される書き込みデータ（上位ページデータ）と、メモリセルに既に書き込まれている下位ページデータとに基づいて行われる。
【００５６】
即ち、図１０に示すように、上位ページデータの値が“１”の場合には、メモリセルのトンネル酸化膜に高電界がかからないようにし、メモリセルの閾値電圧Ｖｔｈの上昇を防止する。その結果、データ“１１”（消去状態の閾値電圧分布Ｅ）のメモリセルは、データ“１１”（”３”）をそのまま維持し、データ“１０”（”１”）（閾値電圧分布Ｂ´）のメモリセルは、データ“１０”（”１”）をそのまま維持する。ただし、上述のベリファイ電圧ＶＢＶ´よりも大きい正規のベリファイ電圧ＶＢＶを用いて閾値電圧分布の下限値を調整し、これにより閾値電圧分布の幅を狭めた閾値電圧分布Ｂを形成する。
【００５７】
一方、上位ページデータの値が“０”の場合には、メモリセルのトンネル酸化膜に高電界を印加し、フローティングゲート電極に電子を注入して、メモリセルの閾値電圧Ｖｔｈを所定量だけ上昇させる。その結果、データ“１１”（”３”）（消去状態の閾値電圧分布Ｅ）のメモリセルは、閾値電圧分布Ａのデータ“０１”（”２”）に変化し、データ“１０”（”１”）のメモリセルは、閾値電圧分布Ｃのデータ“００”（”０”）に変化する。このとき、ベリファイ電圧ＶＡＶ、ＶＣＶが用いられて、閾値電圧分布Ａ、Ｃの下限値が調整される。
【００５８】
以上が、一般的な４値記憶方式におけるデータ書き込み方式の一例である。３ビット（８値）以上の多ビット記憶方式においても、上記の動作に更に上位のページデータに応じ、閾値電圧分布を８通りに分割する動作が加わるのみであるので、基本的な動作は同様である。
また、書き込み方式としては、当初から最終的に得たい閾値電圧分布を得るような書き込み動作を実行してもよいし、最終的に得たい閾値分布とは別の中間分布への書き込み動作を含むような書き込み方式（図９のＢ’）を採用することも可能である。
【００５９】
このような２値データ、又はそれ以上（４値、８値）のデータをメモリセルＭＣに書き込む場合、そのデータに対応する閾値電圧が大きいほど、当該メモリセルＭＣに与える物理的負担が大きくなる（ゲート絶縁膜の劣化が早まる）。従って、書き込みデータを外部から複数のメモリセルＭＣに与える場合、物理的な負担が小さいデータであるデータ”１”（２値の場合）、”１１”（”３”）（４値の場合）が、できるだけ多くの数のメモリセルＭＣに与えられるようなデータ群とすることが望まれる。
【００６０】
また、大きな閾値電圧に対応するデータが書き込まれる場合には、その書き込み対象のメモリセルＭＣに対する物理的負担が大きくなるばかりでなく、セル間干渉により、その書き込み対象のメモリセルＭＣに隣接する隣接メモリセルにおける閾値電圧の変動の度合が大きくなるという問題がある（図１１参照）。この閾値変動は、多くのメモリセルが消去状態の閾値電圧分布Ｅのままとされている場合は、多くのメモリセルが閾値電圧Ａ，Ｂ，Ｃに書き込まれている場合に比べ、小さくなる。すなわち、図１２（ａ）に示すように、メモリセルＭＣｎに隣接するメモリセルの多くが消去状態の閾値電圧分布Ｅを有していれば、メモリセルＭＣｎは、これら隣接メモリセルからの影響をあまり受けず、メモリセルＭＣｎの閾値電圧が大きく変動することはない。一方、図１２（ｂ）に示すように、メモリセルＭＣｎに隣接するメモリセルの多くが閾値電圧分布Ｅではなく、Ａ，Ｂ，Ｃを有していれば、メモリセルＭＣｎは、これら隣接メモリセルからの影響を受け、メモリセルＭＣｎの閾値電圧が大きく変動する虞がある。
【００６１】
そこで、本実施の形態では、以下のようなデータ処理を行うことにより、できるだけ閾値電圧分布Ｅが維持される（データ”１１”（”３”）が書かれた状態が維持される）メモリセルＭＣの数が多くなるよう、ホスト１０００から与えられたデータにデータ置換を施す。このデータ置換動作は、データ分割処理部２１６、最少数データ判定部２１７、データ置換部２１８により実行される。この最少数データ判定部２１７、及びデータ置換部２１８により実行されるデータ置換動作を、図１３Ａを参照して説明する。
【００６２】
まず、データ分割処理部２１６は、１つのワード線ＷＬに沿って並ぶｎ個のメモリセルＭＣに書き込むためにホスト１０００から供給されたｎ個のＭ値データｄ１、ｄ２、・・・ｄｎを、ｍ個のデータ集合Ｇｉ（ｉ＝１〜ｍ）に分割する（ステップＳ１１）。ここで、データ集合Ｇｉは、メモリセルの集合であるページを１つのデータ集合体Ｇｉとする場合に限られない。例えば、メモリセルの集合である３ページを合わせてデータ集合Ｇｉとする場合や、図１２に示した、９個のマトリクス状のメモリセルを１つのデータ集合Ｇｉとする場合もある。
続いて、ｉ＝１として（ステップＳ１２）、ｉ＝ｍか否かを判定し（ステップＳ１３）、ＮＯであれば、データ集合Ｇｉ中に含まれるデータ”０”、・・・”Ｍ−１”のうち、最も少ない数のデータはどれであるかを、最少数データ判定部２１７に判定させる（ステップＳ１４）。ここで、ステップＳ１１において、各データ集合Ｇｉに含まれるＭ値のデータｄｉの数を奇数とすることにより、例えば、２値データの場合、データ“０”またはデータ“１”のどちらかが最小データとなり、効果的にメモリセルに対する物理的負担を出来るだけ少なくすることができる。
最少数データがデータ”０”であると判定される場合には（Ｓ１５のＹＥＳ）、そのデータ集合Ｇｉにおいて、データ置換動作は行わず、データ集合Ｇｉ中のデータは、ホスト１０００から転送されたままの状態とされる（第２データ処理：ステップＳ１７）。
一方、最少数データがデータ”０”以外のデータであると判定される場合には（Ｓ１５のＮＯ）、データ集合Ｇｉの中で最少数データをデータ”０”と置き換えるデータ置換動作を行うと共に、データ”０”を最少数データと置き換えるデータ置換動作を行う（ステップＳ１６：第１データ処理）。その後、置き換えられたデータに対応するパリティデータを生成した後（ステップＳ２０）、ｉをインクリメントして（ステップＳ１８）、以下、ｉがｍに達するまで上記の動作を繰り返す。
ｉがｍに達したら、ステップＳ２０で生成したパリティデータをデータ集合Ｇｉに付与して（ステップＳ２１）、処理を終了する。このようなパリティデータの生成・付与はデータ集合Ｇｉの個数が少ない場合や、キャッシュメモリ（例えば、ＲＡＭ３４）の容量が小さい場合に有効である。
図１３Ｂは、別の第１の実施の形態の動作例を示すフローチャートである。図１３Ｂに示すように、ステップＳ１３の「Ｙｅｓ」判定の後に、パリティデータを生成する動作（ステップＳ２０）及びステップＳ２０で生成したパリティデータをデータ集合Ｇｉに付与する動作（ステップＳ２１）を連続して実行することが可能である。このようなパリティデータの生成・付与はデータ集合Ｇｉの個数が多い場合や、キャッシュメモリ（例えば、ＲＡＭ３４）の容量が大きい場合に有効である。
【００６３】
図１４は、２値データ（”１”または”０”）が１のメモリセルＭＣに書き込まれる場合であって、データ集合Ｇｉが、３つの２値データｂｉｔ１〜３からなる場合におけるデータ置換動作を説明している。これはあくまでも一例であり、データ集合Ｇｉが４つ以上のデータを有している場合でも、同様の手法によりデータ置換を行うことができることは、以下の説明から理解され得るであろう。図１４において、ｉｎｄｅｘ１〜８は、３つの２値データｂｉｔ１〜３の組み合わせを示している。
【００６４】
この場合、最少数データ判定部２１７は、データ集合Ｇｉに含まれる３つの２値データｂｉｔ１〜３の種類（”１”又は”０”のいずれか）を判別し、”０”及び”１”のいずれがデータ集合Ｇｉ中でより少ないか（一番少ないか）を判定する。すなわち、”０”、”１”のいずれが最少数データであるのかを判定する。
【００６５】
データ置換部２１８は、最少数データ判定部２１７が判定した最少数データがデータ”０”でなく”１”である場合に、データ集合Ｇｉ中において、その最少数データであるデータ”１”とデータ”０”とを相互に置換する第１データ処理を実行する。一方、最少数データがデータ”０”であった場合には、データ置換を行わずそのままとする第２データ処理を実行する。そして、第１データ処理が行われた場合には、パリティデータ生成部２１９は、パリティデータとしてデータ”０”を生成し、そのデータ集合Ｇｉに付与する。逆に、パリティデータ生成部２１９は、第１データ処理を行わず第２データ処理を行う場合（データ置換動作を行わない場合）には、パリティデータとしてデータ”１”を生成し、そのデータ集合Ｇｉに付与する。生成されたパリティデータは、パリティデータ記憶部を構成するメモリセル（図３のｑ本のＮＡＮＤセルユニットＮＵ）に記憶される。
【００６６】
ここで、図１４に、２値データにおいて、この動作が行われることによる効果を説明する。図１４は、３ビットのメモリセル（“ｂｉｔ１”、“ｂｉｔ２”、“ｂｉｔ３”）がそれぞれ“０”または“１”のデータを記憶する場合を“ｉｎｄｅｘ”に通し番号をつけて記載した。また、３ビットのメモリセルにそれぞれ“０”または“１”のデータが記憶される通り数は８通りであり、「全ての通り」の合計を計算により求め、合計の欄に記載した。図１４の合計の欄に示すように、パリティデータを含んだとしても、書き込みデータ中のデータ”０”の数を、データ置換動作前（第１データ処理、第２データ処理の実行前）に比べて少なくすることができる（データ”０”の数を１２個から１０個に減らすことができる）。したがって、メモリセルＭＣに与える物理的負担を相対的に少なくすることができ、結果としてメモリの信頼性を向上させ、メモリの長寿命化に寄与することができる。
【００６７】
図１５は、４値データ（データ”１１”（”３”）、”０１”（”２”）、”１０”（”１”）、”１”（”０”））が１のメモリセルＭＣに書き込まれる場合であって、データ集合Ｇｉが、５つの４値データｂｉｔ１〜５からなる場合におけるデータ置換動作を説明している。図１５は、５ビットのメモリセル（“ｂｉｔ１”、“ｂｉｔ２”、“ｂｉｔ３”、“ｂｉｔ４”、“ｂｉｔ５”）がそれぞれ“０”、“１”、“２”または“３” データを記憶する場合を“ｉｎｄｅｘ”に通し番号をつけて記載した。また、５ビットのメモリセルにそれぞれ“０”〜“３”のデータが記憶される通り数は１０２４通りであり、「全ての通り」の合計を計算により求め、合計の欄に記載した。
【００６８】
この場合も、図１４と同様に、最少数データを最少数データ判定部２１７で特定し、その最少数データとデータ”００”（”０”）とをデータ集合Ｇｉ中で置換する動作を行う。なお、最少数データが複数個存在する場合には、よりメモリセルＭＣへの物理的負担が小さいデータへの置換がなされるよう、最少数データが選択される。例えば、図１４のｉｎｄｅｘ１では、全てのデータｂｉｔ１〜５が”０”であり、最少数データは”３”、”２”、”１”であるが、メモリセルＭＣへの物理的負担を一番小さくできるデータ”３”を最少数データとして特定し、データ”３”と”０”とを置き換える動作を行う。
【００６９】
また、データ”０”と他のあるデータとがいずれも最少数データに該当する場合には、データ”０”を最少数データと定義してデータ置換動作を行う。例えば、図１５のｉｎｄｅｘ１０２２では、最少数データは”０”、”２”であるので、”０”を最少数データとする。結果として、ｉｎｄｅｘ３では、第１データ置換動作を行わず、データ置換を行わない（第２データ処理を実行する）。その結果、メモリセルに与える物理的負担を効果的に減らすことができる。
【００７０】
この図１５におけるデータ置換動作を要約すると、次の通りである。
（１)データ集合Ｇｉ中での最少数データがデータ”００”（”０”）である場合には、データ集合Ｇｉ中のデータｂｉｔ１〜５に対し、第１データ処理は行わず（データ置換動作は行わず）、第２データ処理を行う。パリティデータとしてデータ”１１”（”３”）を生成し、付与する。
（２）データ集合Ｇｉ中での最少数データがデータ”１０”（”１”）である場合には、データ集合Ｇｉ中のデータｂｉｔ１〜５に対し、最少数データであるデータ”１０”（”１”）をデータ”００”（”０”）と置き換える動作（第１データ処理）を行う。パリティデータとしてデータ”０１”（”２”）を生成し、付与する。
（３）データ集合Ｇｉ中での最少数データがデータ”０１”（”２”）である場合には、データ集合Ｇｉ中のデータｂｉｔ１〜５に対し、最少数データであるデータ”０１”（”２”）をデータ”００”（”０”）と置き換える動作（第１データ処理）を行う。パリティデータとしてデータ”１０”（”１”）を生成し、付与する。
（４）データ集合Ｇｉ中での最少数データがデータ”１１”（”３”）である場合には、データ集合Ｇｉ中のデータｂｉｔ１〜５に対し、最少数データであるデータ”１１”（”３”）をデータ”００”（”０”）と置き換える動作（第１データ処理）を行う。パリティデータとしてデータ”００”（”０”）を生成し、付与する。
この図１５の合計の欄に示したように、図１４と同様に、パリティデータを含んだとしても、データ”００”（”０”）の数を少なくすることができる（１２８０個から７４１個）。
【００７１】
なお、上記の例（図１４、図１５）では、Ｍ値のデータを含むデータ集合Ｇｉにおいて、第Ｍデータが最も閾値電圧の小さい（メモリセルへの物理的負担が小さい）データであり、以下、第（Ｍ−１）データ、第（Ｍ−２）データ、・・・の順に与えられる閾値電圧が大きくなり、第１データが最も閾値電圧の大きいデータであると定義する。この場合、データ置換の対象とされたデータが第Ｐデータ（１＜Ｐ＜Ｍ）である場合に、パリティデータとして第（Ｍ−Ｐ＋１）データを付加するようにしている。これにより、パリティデータも含めた書き込みデータ全体において、データ”０”の数を最も少なくすることができる。
また、閾値分布の高いデータ、例えば、４値データにおける“０”データはメモリセルにデータを書き込む際に大きな書き込み電圧が必要となる。ここで、本発明を適用することにより、閾値分布の高いデータの数を減らすことができ、消費電力を抑制することができる。
ここで、データの読み出し時において、本発明の第１実施形態におけるデータの復元化はパリティデータを用いることにより容易に行うことができる。例えば、パリティデータが“０”の時は、メモリセルに保存されたデータのうちデータ“３”とデータ“０”を入れ替えればよい。同様に、パリティデータが“１”の時は、メモリセルに保存されたデータのうちデータ“２”とデータ“０”を入れ替えればよく、パリティデータが“２”の時は、メモリセルに保存されたデータのうちデータ“１”とデータ“０”を入れ替えればよい。また、パリティデータが“３”の時は、メモリセルに保存されたデータの入れ替えを行わない。すなわち、入れ替えの対象とされるデータは、メモリセルへの物理的負担が最も大きいデータ”０”と置き換えられる。そして、パリティデータは、メモリセルへの物理的負担が最も大きいデータ”０”と置き換えられるデータの種類を指し示しているものである。
このように、本発明の第１実施形態におけるデータの復元化は単純な動作であり、物理的負担を与えるデータを複数回入れ替えるような複雑な動作を行わない。その結果、復元化動作を高速化することができる。
【００７２】
［第２の実施の形態］
次に、本発明の第２の実施の形態を、図１６を参照して説明する。本実施の形態の構成は、第１の実施の形態（図１〜図３）と同一でよいので、詳細な説明は省略する。この実施の形態では、最少数データ判定部２１７、及びデータ置換部２１８における動作が、第１の実施の形態とは異なっている。この第２の実施の形態の動作を、図１６を参照して説明する。
動作として異なる点は、ステップＳ１５で最少数データがデータ”０”以外のデータであると判定された後、その最少数データの数がデータ”０”の数とほぼ同数であるか否かが判定される（ステップＳ１９）。もし、両者がほぼ同数であれば、データ置換の効果は非常に限定的であるので、データ置換を行わない第２のデータ処理に移行する（ステップＳ１７）。これにより、無用なデータ置換動作が行われることを回避することができ、メモリ装置の動作速度を向上させることができる。またこのステップＳ１７の場合に付与されるパリティデータは、消去状態“３”のデータであるので、消費電力を抑制することができる。
なお、図１６において、図１３Ｂのような手順でパリティデータの生成・付与を行うよう動作手順を変更することも可能である。
【００７３】
［その他］
以上、発明の実施の形態を説明したが、本発明はこれらの実施の形態に限定されるものではなく、発明の趣旨を逸脱しない範囲内において、様々な追加、置換、削除、組合せ、転用等が可能である。例えば、上記の実施の形態では、ＮＡＮＤ型フラッシュメモリを例にとって説明したが、本発明は、記憶素子に物理的負担を与える形式で記憶素子にデータを記憶させるデータ記憶装置一般に広く適用できることは、上記の説明から明らかである。
【００７４】
また、上記の実施の形態において、データ置換動作をコントローラ２２で実行する例を説明したが、本発明はこれに限定されるものではなく、例えばメモリ２１のチップ内で同様の機能を果たすような構成としてもよいし、ホスト１０００側で同様の動作を行ってもよい。
【００７５】
また、上記の実施の形態において、パリティデータは、実効データを記憶させる記憶領域とは別の、パリティデータ線用の記憶領域に記憶させる形式を説明したが、パリティデータと実効データを同一の記憶領域に記憶させるような方式にも、本発明を適用することができる。
【００７６】
また、上記の実施の形態では、１つのワード線に沿ったデータを複数の集合Ｇｉに分割する動作を行っているが、本発明はこれに限定されるものではなく、集合Ｇｉの作り方は、様々な形式が考えられる。例えば、基板に垂直な方向にメモリが積層される３次元形状のメモリ装置において、その３次元方向に隣接する複数のメモリセルに書き込まれるべきデータを複数の集合に分割し、同様のデータ処理を行うことも可能である。
また、本発明の適用は、ＮＡＮＤ型フラッシュメモリに限られない。書き込み・消去動作が繰り返し行われることによるメモリの信頼性の低下は、ＮＡＮＤ型フラッシュメモリに限らず、例えばＮＯＲ型フラッシュメモリにおいても同様に起こり得る。また、フラッシュメモリに限らず、例えば、強誘電体メモリ、磁気メモリ、ハードディスクドライブ装置等の他のデータ記憶装置においても事情は同様である。すなわち、本発明はＮＡＮＤ型フラッシュメモリ以外に適用しても、メモリセル即ち記憶素子に対する物理的負担を出来るだけ少なくし、記憶装置の信頼性を高めると共に、記憶装置の長寿命化することができる。
【符号の説明】
【００７７】
１０００・・・ホスト装置、  ２０００・・・メモリカード、１・・・メモリセルアレイ、  ２・・・ロウデコーダ、  ３・・・センスアンプ回路、  ４・・・カラムデコーダ、  ５・・・アドレスデコーダ、  ６・・・制御回路、  １０・・・高電圧発生回路、  １１・・・ソフトウエア、  １２・・・ファイルシステム、  １３、３１・・・ＳＤインタフェース、  ２１・・・メモリ、  ２２・・・コントローラ、  ３２・・・ＭＰＵ、  ３３・・・ＲＯＭ、  ３４・・・ＲＡＭ、  ３５・・・ＮＡＮＤインタフェース、  ２１１、２１２・・・ステータスレジスタ、  ２１３・・・入出力制御回路、  ２１４・・・論理回路、  ２１５・・・データレジスタ。
【図１】
2011204304.tif 000003
【図２Ａ】
2011204304.tif 000004
【図２Ｂ】
2011204304.tif 000005
【図２Ｃ】
2011204304.tif 000006
【図３】
2011204304.tif 000007
【図４】
2011204304.tif 000008
【図５】
2011204304.tif 000009
【図６】
2011204304.tif 000010
【図７】
2011204304.tif 000011
【図８】
2011204304.tif 000012
【図９】
2011204304.tif 000013
【図１０】
2011204304.tif 000014
【図１１】
2011204304.tif 000015
【図１２】
2011204304.tif 000016
【図１３Ａ】
2011204304.tif 000017
【図１３Ｂ】
2011204304.tif 000018
【図１４】
2011204304.tif 000019
【図１５】
2011204304.tif 000020
【図１６】
2011204304.tif 000021