JP2011204304A - データ記憶装置、及びその書き込み方法 - Google Patents
データ記憶装置、及びその書き込み方法 Download PDFInfo
- Publication number
- JP2011204304A JP2011204304A JP2010069212A JP2010069212A JP2011204304A JP 2011204304 A JP2011204304 A JP 2011204304A JP 2010069212 A JP2010069212 A JP 2010069212A JP 2010069212 A JP2010069212 A JP 2010069212A JP 2011204304 A JP2011204304 A JP 2011204304A
- Authority
- JP
- Japan
- Prior art keywords
- data
- write
- minimum number
- memory
- memory cell
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
Abstract
【課題】記憶素子に対する物理的負担を出来るだけ少なくし、記憶装置の信頼性を高める。
【解決手段】記憶素子配列部は、M値のデータを記憶可能な記憶素子を複数配列してなる。M値のデータを構成する第1データ〜第Mデータのうち、第Mデータは、記憶素子に対して書き込み動作が行われる以前の消去状態において記憶素子が保持するデータであり、第1データは、M値のデータのうちで最も書き込みのために記憶素子に与える物理的負担が大きいデータである。データ処理部は、第1データ〜第Mデータのうちで、ある書き込みデータの集合に含まれる数が最も小さい最少数データを特定し、最少数データが前記第1データ以外のデータである場合、書き込みデータの集合に含まれる最少数データを第1データと置き換える一方、書き込みデータの集合に含まれる第1データを当該最少数データと置き換える。
【選択図】図14
【解決手段】記憶素子配列部は、M値のデータを記憶可能な記憶素子を複数配列してなる。M値のデータを構成する第1データ〜第Mデータのうち、第Mデータは、記憶素子に対して書き込み動作が行われる以前の消去状態において記憶素子が保持するデータであり、第1データは、M値のデータのうちで最も書き込みのために記憶素子に与える物理的負担が大きいデータである。データ処理部は、第1データ〜第Mデータのうちで、ある書き込みデータの集合に含まれる数が最も小さい最少数データを特定し、最少数データが前記第1データ以外のデータである場合、書き込みデータの集合に含まれる最少数データを第1データと置き換える一方、書き込みデータの集合に含まれる第1データを当該最少数データと置き換える。
【選択図】図14
Description
この発明は、データ記憶装置、及びデータ記憶装置に対するデータ書き込み方法に関するものである。
メモリセル中にデータを不揮発に記憶する不揮発性半導体記憶装置として、様々な形式のものが提案されている。その中でも、NAND型フラッシュメモリは、大容量化が容易であるため、データストレージデバイスとして広く用いられている(例えば、特許文献1参照)。
NAND型フラッシュメモリのセルアレイは、複数のメモリセルを直列接続したNANDセルユニットを配列して構成される。各NANDセルユニットの両端はそれぞれ選択ゲートトランジスタを介してビット線とソース線に接続される。
NANDセルユニット内のメモリセルの制御ゲートはそれぞれ異なるワード線に接続される。NAND型フラッシュメモリは、複数のメモリセルがソース、ドレインを共有して直列接続され、また選択ゲートトランジスタやそれらのビット線コンタクトやソース線コンタクトを複数のメモリセルで共有するため、単位メモリセルのサイズを小さくすることができ、また、ワード線やメモリセルの素子領域の形状が単純なストライプ状に近いため微細化に向いており、大容量のフラッシュメモリが実現されている。
またNAND型フラッシュメモリでは、データ書き込みと消去は、多くのセルで同時にFNトンネル電流を流すことにより行われる。具体的に、1ワード線を共有するメモリセルの集合を1ページ又は2ページとして、データ書き込みはページ単位で行われる。データ消去は、ワード線及び選択ゲート線を共有するNANDセルユニットの集合として定義されるブロック単位で行われる。
ところで、1つのメモリセルに対し書き込み・消去が繰り返し行われると、メモリセルのトンネル絶縁膜が徐々に劣化し、メモリの信頼性が低下するという問題がある。
このため、書き込み電圧、消去電圧によりメモリセルに与えられるストレスをできるだけ緩和することが望まれている。メモリセルへのストレスを緩和することは、メモリの信頼性を高めるとともに、メモリセルの長寿命化に寄与する。
本発明は、記憶装置の信頼性を高めると共に、記憶装置の長寿命化することを目的とする。
本発明の一態様に係るデータ記憶装置は、M値(Mは2以上の自然数)のデータを記憶可能な記憶素子を複数配列してなる記憶素子配列部と、前記記憶素子に書き込むべき書き込みデータを一時保持するデータ保持部と、前記書き込みデータに対するデータ処理を実行するデータ処理部とを備え、前記M値のデータを構成する第1データ〜第Mデータのうち、前記第1データは、前記M値のデータのうちで最も書き込みのために前記記憶素子に与える物理的負担が大きいデータであり、前記データ処理部は、複数個の前記記憶素子の集合に含まれる前記記憶素子に書き込まれるべきデータとして前記データ保持部に保持された前記書き込みデータの集合に対するデータ処理を実行可能に構成され、前記データ処理は、前記第1データ〜第Mデータのうちで、前記書き込みデータの集合に含まれる数が最も小さい最少数データを特定し、前記最少数データが前記第1データ以外のデータである場合、前記書き込みデータの集合に含まれる前記最少数データを第1データと置き換える一方、前記書き込みデータの集合に含まれる前記第1データを前記最少数データと置き換える第1データ処理と、前記最少数データが前記第1データである場合、前記書き込みデータの集合に対するデータ変換を行わず、そのままの状態を維持する第2データ処理とを含むことを特徴とする。
本発明の一態様に係るデータ書き込み方法は、M値(Mは2以上の自然数)のデータを記憶可能な記憶素子を複数配列してなる記憶素子配列部を備えたデータ記憶装置に対するデータの書き込み方法であって、前記M値のデータを構成する第1データ〜第Mデータのうち、前記第1データは、前記M値のデータのうちで最も書き込みのために前記記憶素子に与える物理的負担が大きいデータであり、前記記憶素子に書き込むべき書き込みデータを一時保持するステップと、前記第1データ〜第Mデータのうちで、前記書き込みデータの集合に含まれる数が最も小さい最少数データを特定するステップと、前記最少数データが前記第1データ以外のデータである場合、前記書き込みデータの集合に含まれる前記最少数データを第1データと置き換える一方、前記書き込みデータの集合に含まれる前記第1データを前記最少数データと置き換えるステップと、前記最少数データが前記第1データである場合、前記書き込みデータの集合に対するデータ変換を行わず、そのままの状態に維持するステップとを備えたことを特徴とする。
本発明の一態様に係るデータ書き込み方法は、M値(Mは2以上の自然数)のデータを記憶可能な記憶素子を複数配列してなる記憶素子配列部を備えたデータ記憶装置に対するデータの書き込み方法であって、前記M値のデータを構成する第1データ〜第Mデータのうち、前記第1データは、前記M値のデータのうちで最も書き込みのために前記記憶素子に与える物理的負担が大きいデータであり、前記記憶素子に書き込むべき書き込みデータを一時保持するステップと、前記第1データ〜第Mデータのうちで、前記書き込みデータの集合に含まれる数が最も小さい最少数データを特定するステップと、前記最少数データが前記第1データ以外のデータである場合、前記書き込みデータの集合に含まれる前記最少数データを第1データと置き換える一方、前記書き込みデータの集合に含まれる前記第1データを前記最少数データと置き換えるステップと、前記最少数データが前記第1データである場合、前記書き込みデータの集合に対するデータ変換を行わず、そのままの状態に維持するステップとを備えたことを特徴とする。
この発明によれば、記憶装置の信頼性を高めると共に、記憶装置の長寿命化することができる。
次に、本発明の実施の形態を、図面を参照して詳細に説明する。
[第1の実施の形態]
まず、本発明の第1の実施の形態に係る不揮発性装置を、図1等を参照して説明する。
まず、本発明の第1の実施の形態に係る不揮発性装置を、図1等を参照して説明する。
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係る不揮発性半導体記憶装置(NANDセル型フラッシュメモリ)を含むメモリカードの主要な機能ブロックを示している。図1には、このメモリカードと接続されるホスト装置の機能ブロックも示されている。各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各ブロックがこれらのいずれでもあることが明確となるように、主にそれらの機能の観点から以下に説明する。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も本発明の範疇に含まれる。
図1は、本発明の第1の実施の形態に係る不揮発性半導体記憶装置(NANDセル型フラッシュメモリ)を含むメモリカードの主要な機能ブロックを示している。図1には、このメモリカードと接続されるホスト装置の機能ブロックも示されている。各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各ブロックがこれらのいずれでもあることが明確となるように、主にそれらの機能の観点から以下に説明する。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も本発明の範疇に含まれる。
ホスト装置(以下、ホストと称する)1000は、アプリケーション、オペレーティング・システム等のソフトウェア11を備えている。ソフトウェア11は、ユーザから、メモリカード2000へのデータの書き込み、メモリカード2000からのデータの読み出しを指示される。ソフトウェア11は、データの書き込みおよび読み出しをファイルシステム12に指示する。なお、ここでいう「ソフトウェア」は、プログラムだけでなく、プログラムが記憶されたROM、プログラムに従って指示を出す回路、演算を行うにあたり一時的にデータを保存するためのキャッシュなども含まれる。ファイルシステム12は、管理対象の記憶媒体に記録されているファイルデータを管理するための仕組みであり、記憶媒体の記憶領域内に管理情報を記録し、この管理情報を用いてファイルデータを管理する。
ホスト1000は、SDインターフェース13を有する。SDインターフェース13は、ホスト1000とメモリカード2000との間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなる。ホスト1000は、SDインターフェース13を介してメモリカード2000と通信を行う。SDインターフェース13は、ホスト1000とメモリカード2000とが通信するのに必要な様々な取り決めを規定し、後述のメモリカード2000のSDインターフェース31と相互に認識可能な各種のコマンドの組を備えている。また、SDインターフェース13は、メモリカード2000のSDインターフェース31と接続可能なハードウェア上の構成(ピンの配置、数等)も含む。
メモリカード2000は、NAND型フラッシュメモリ21、メモリ21を制御するためのコントローラ22を有する。メモリカード2000は、ホスト1000に接続されたとき、およびオフ状態のホスト1000に挿入された状態でホスト1000がオンされたときに電源供給を受けて初期化動作を行った後、ホスト1000からのアクセスに応じた処理を行う。
メモリ21は、データを不揮発に記憶し、複数のメモリセルからなるページと呼ばれる単位でデータの書き込みおよび読み出しを行う。ページには、各ページに固有の物理アドレスが割り当てられている。また、メモリ21は、複数のページからなる物理ブロック(消去ブロック)と呼ばれる単位でデータの消去を行う。なお、物理ブロック単位で物理アドレスが割り当てられていることもある。
コントローラ22は、メモリ21によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ(または物理ブロック)が、どの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのページ(または物理ブロック)が消去状態(何も書き込まれていない、または無効なデータを保持している状態)であるかを管理することを含んでいる。
コントローラ22は、SDインターフェース31、MPU(micro processing unit)32、ROM(read only memory)33、RAM(Random Access Memory)34、NANDインターフェース35を含んでいる。
SDインターフェース31は、ホスト1000とコントローラ22との間のインターフェース処理を行うのに必要なハードウェア、ソフトウェアからなり、SDインターフェース13と同様に、両者の通信を可能とする取り決めを規定し、各種のコマンドの組を備え、ハードウェア上の構成(ピンの配置、数等)も含む。メモリカード2000(コントローラ22)は、SDインターフェース31を介してとホスト1000と通信を行う。SDインターフェース31は、レジスタ36を含んでいる。
MPU32は、メモリカード2000全体の動作を司る。MPU32は、例えば、メモリカード2000が電源供給を受けた際に、ROM33内に格納されているファームウェア(制御プログラム)をRAM34上に読み出して所定の処理を実行する。MPU32は、制御プログラムに従って各種のテーブル(後述)をRAM34上で作成したり、ホスト1000から受けたコマンドに従ってメモリ21に対する所定の処理を実行したりする。
ROM33は、MPU32により制御される制御プログラムなどを格納する。RAM34は、MPU32の作業エリアとして使用され、制御プログラムや各種のテーブルを一時的に記憶する。このようなテーブルとして、ファイルシステム12によってデータに割り当てられた論理アドレスを有するデータを実際に記憶しているページの物理アドレスの変換テーブル(論理・物理アドレス変換テーブル)が含まれる。NANDインターフェース35は、コントローラ22とメモリ21とのインターフェース処理を行う。
メモリ21内の記憶領域は、保存されるデータの種類に応じて、例えばシステムデータ領域、機密データ領域、保護データ領域、ユーザデータ領域等を含んでいる。システムデータ領域は、コントローラ22が、その動作に必要なデータを保存するためにメモリ21で確保しておく領域である。機密データ領域は、暗号化に用いる鍵情報や認証時に使用する機密データを保存しており、ホスト1000からアクセスできない。保護データ領域は、重要なデータ、セキュアなデータを格納する。ユーザデータ領域は、ホスト1000が自由にアクセスおよび使用することが可能で、例えばAVコンテンツファイルや画像データ等のユーザデータを格納する。以下の説明で、メモリ21のメモリ空間を指す意味でメモリ21という記述を用いているとき、この記述はユーザデータ領域を指すものとする。なお、コントローラ22は、ユーザデータ領域の一部を確保し、自身の動作に必要な制御データ(論理アドレス・物理アドレス対応テーブル等)を保存する。
なお、メモリカード2000において、メモリ21とコントローラ22とが別チップであることは、このメモリシステムにとって本質的ではない。図2Aは、図1のメモリカード2000を、メモリ21とコントローラ22のロジックコントロールを渾然一体として見た機能ブロック構成を示している。また、図2Bは、図2A中の制御回路6の機能ブロック図である。また、図2Cは、図2Bに示すデータ分割処理部216の機能を示す概念図である。また図3は図1のメモリ21中のメモリセルアレイ構成を示している。
このメモリカード2000は、メモリセルMC(記憶素子)を複数個配列してなるメモリセルアレイ1(記憶素子配列部)を備えている。メモリセルアレイ1は、図3に示すように、複数の電気的書き換え可能な複数の不揮発性メモリセル(図の例では32個のメモリセル)MC0−MC31が直列接続されたNANDセルユニット(NANDストリング)NUを配列して構成される。このようなNANDセルユニットNUが、例えば1024+q本(n=1024)集まってワード線WLを共有して1つのブロックBLKが形成される。メモリセルMCは、後述するように、1メモリセル辺りにM値(Mは2以上の自然数)のデータを格納可能とされている。例えば、M=4、すなわち4値のデータを1つのメモリセルMCに記憶する場合、4値データの各々は、例えばデータ”3”(”11”)、”2”(”01”)、”1”(”10”)、”0”(”00”)と定義され得る。ここで、データの書き込みはワード線WLに書き込み電圧、例えば、15Vを加え、ビット線BLにワード線WLよりも低い電圧、例えば、0Vを加えることにより行われる。
1024+q本のNANDセルユニットNUのうち、1024本のNANDセルユニットNUは、主に外部のホストデバイスから供給される実効データの格納に用いられる。一方、残るq本のNANDセルユニットは、後述するパリティデータを格納するための記憶領域として用いられる。パリティデータは、後述するデータ変換が実行されたか否かを示すと共に、データ変換が実行された場合、M値のデータのうちデータ変換の対象とされたデータの種類を示す。データ変換は、後述するように、できるだけメモリセルMCに与えられる物理的負担がメモリセルアレイ全体においてトータルで小さくなるよう、具体的には、できるだけ多くのメモリセルMCが、消去状態のままとされるように実行される。
1つのブロックBLKは、データ消去動作の一単位を形成する。また、1つのメモリセルMCに2ビットのデータが格納される場合(2ビット/セル)、1つのワード線WLに沿って形成されるメモリセルMCにより、2ページ(上位ページUPPER、下位ページLOWER)のデータが格納される。
図3に示すように、NANDセルユニットNUの一端は、選択ゲートトランジスタS1を介してビット線BLに、他端は選択ゲートトランジスタS2を介して共通ソース線CELSRCに接続される。メモリセルM0−M31の制御ゲートはそれぞれワード線WL0−WL31に接続され、選択ゲートトランジスタS1,S2のゲートは選択ゲート線SGD,SGSに接続される。
ビット線BLの一端側に、セルデータの読み出し及び書き込みに供されるセンスアンプ回路3aが配置され、ワード線WLの一端側にワード線及び選択ゲート線の選択駆動を行うロウデコーダ2(図3では図示せず)が配置される。ロウデコーダ2は、複数のブロックの1つを特定するプリロウデコーダ2aと、1つのブロック中の1つのワード線WLを選択的に駆動するメインロウデコーダ2bとを備えている。
コマンド、アドレス及びデータは、入力制御回路213を介して入力され、チップイネーブル信号/CE、書き込みイネーブル信号/WE、読み出しイネーブル信号/REその他の外部制御信号は、論理回路214に入力され、タイミング制御に用いられる。コマンドは、コマンドレジスタ8でデコードされる。
制御回路6は、データの転送制御及び書き込み/消去/読み出しのシーケンス制御を行う。制御回路6は図1のMPU32に属すると言える。ステータスレジスタ211は、Ready/Busy端子にメモリカード2000のReady/Busy状態を出力する。これとは別に、メモリ2000の状態(Pass/Fail,Ready/Busy等)をI/Oポートを介してホスト1000に知らせるステータスレジスタ212が用意されている。
アドレスは、アドレスレジスタ5を介して、ロウデコーダ(プリロウデコーダ2aとメインロウデコーダ2b)2やカラムデコーダ4に転送される。書き込みデータは、入出力制御回路213を介し、制御回路6を介して一旦データレジスタ215(図1のRAM34に属すると言える)に一時保持された後、後述するデータ変換を受ける。データ変換後の書き込みデータは、センスアンプ回路3(センスアンプ3aとデータレジスタ3b)にロードされ、書き込みの対象とされる。読み出しデータは制御回路6を介して、外部に出力される。
各動作モードに応じて必要とされる高電圧を発生するために、高電圧発生回路10が設けられている。高電圧発生回路10は、制御回路6から与えられる指令に基づいて所定の高電圧を発生する。
図2Bは、制御回路6によって実現されるデータ処理部の機能ブロック図である。制御回路6は、図2Bに示すように、データ分割処理部216、最少数データ判定部217、データ置換部218、及びパリティデータ生成部219を実現するよう、プログラムされている。
ここで、図2Bに示すデータ処理部の機能は、制御回路6によって実現されるだけでなく、ホスト装置1000のソフトウェア11によって実現することも可能である。すなわち、メモリカード2000が図2Bに示すデータ処理部の機能を有さなくても、ホスト装置1000のソフトウェア11が図2Bに示すデータ処理部の機能を有していれば良い。また、ホスト装置1000及びメモリカード2000の双方が、図2Bに示すデータ処理部の機能を有していてもよい。この場合は、図2Bに示すデータ処理をホスト装置1000側で行っても良く、メモリカード2000側で行っても良く、ホスト装置1000側とメモリカード2000側で平行して処理しても良い。
ここで、図2Bに示すデータ処理部の機能は、制御回路6によって実現されるだけでなく、ホスト装置1000のソフトウェア11によって実現することも可能である。すなわち、メモリカード2000が図2Bに示すデータ処理部の機能を有さなくても、ホスト装置1000のソフトウェア11が図2Bに示すデータ処理部の機能を有していれば良い。また、ホスト装置1000及びメモリカード2000の双方が、図2Bに示すデータ処理部の機能を有していてもよい。この場合は、図2Bに示すデータ処理をホスト装置1000側で行っても良く、メモリカード2000側で行っても良く、ホスト装置1000側とメモリカード2000側で平行して処理しても良い。
データ分割処理部216は、メモリセルアレイ1中の1つのワード線WLに沿ったn個のメモリセルMCに書き込むためホスト1000から供給されデータレジスタ215に一時保持されたn個の書き込みデータ(M値のデータ)d1、d2、・・・dnを、m個のデータ集合Gi(i=1〜m、m<n)に分割する機能を有する。複数のデータ集合Giの各々は、複数個のM値のデータdiを含む。なお、各データ集合Giに含まれるM値のデータdiの数は、データ集合Gi毎に異なっていてもよい。また、各データ集合Giに含まれるM値のデータdiの数は、奇数とするのが好ましいが、偶数であっても問題はない。
また、データ集合Giの数mは、データの信頼性の向上の要求と、メモリ装置のビット単価の低減の要求とを併せて考慮して決定される。
また、データ集合Giの数mは、データの信頼性の向上の要求と、メモリ装置のビット単価の低減の要求とを併せて考慮して決定される。
データdiがM値データである場合、あるデータdiは、データ”0”、・・・”M−1”のいずれかである。この実施の形態において、データ”M−1”は、メモリセルMCの消去状態におけるデータを意味するものとする。一方、データ”0”は、それが書き込まれる場合に、最もメモリセルMCに対して大きな物理的負担を与えるデータを意味している。本実施の形態では、メモリセルMCはフラッシュメモリであるので、データ”0”は最も閾値電圧が大きなデータとして定義され、従って、書き込みのために、最も大きな書き込み電圧の印加が必要なデータである。一方、データ”M−1”は書き込み動作を行わないため、最もメモリセルMCに対して小さな物理的負担を与えるデータを意味している。
また、最少数データ判定部217は、そのデータ集合Giに含まれるx個のデータdi(M値データ)の種類を判別し(すなわち、x個のデータdi(M値データ)のそれぞれが、データ”0”・・・、”M−1”のいずれであるのかを判別し)、データ集合Gi中でデータ”0”、・・・、又は”M−1”のいずれが最もその数が少ないデータ(最少数データ)であるのかを特定する機能を有する。データ置換部218は、最少数データ判定部217が判定した最少数データがデータ”0”以外である場合に、その最少数データを、データ”0”と置換する第1データ処理を実行すると共に、最少数データがデータ”0”であった場合には、データ置換を行わずそのままの状態とする第2データ処理を実行可能に構成されている。
パリティデータ生成部218は、前述の第1データ処理がデータ置換部218で実行された場合において、最少数データに応じたパリティデータを生成する機能を有する。
図4及び図5は、メモリセルMC、ならびに選択ゲートS1及びS2の断面構造を示している。図4はメモリセルMCの断面構造を示している。基板41(又はp型ウエル)にはメモリセルMCを構成するMOSFETのソース、ドレインとして機能するn型拡散層42が形成されている。また基板41の上にはゲート絶縁膜43を介して浮遊ゲート(FG)44が形成され、この浮遊ゲート44の上には絶縁膜45を介して制御ゲート(CG)46が形成されている。このようないわゆるフローティングゲート型のメモリセルに代えて、シリコン窒化膜を電荷蓄積層とするMONOS型メモリセルを採用してもよい。
選択ゲートS1、S2は、基板41と、この基板41に形成されたソース、ドレインとしてのn型拡散層47を備えている。基板41の上にはゲート絶縁膜48を介して制御ゲート49が形成されている。
図6は、メモリセルアレイの1つのNANDセルの断面を示している。この例において、1つのNANDセルは、図4に示す構成の32個のメモリセルMCが直列接続されて構成されている。NANDセルのドレイン側、ソース側には、図5に示す構成の第1の選択ゲートS1、第2の選択ゲートS2が設けられている。
次に、本実施の形態において2値データ(M=2)、すなわち1つのメモリセルあたりに1ビットのデータを記憶させる2値記憶方式を実行する場合について図7を参照して説明する。2値記憶方式の場合、データ”1”又は”0”のいずれかがメモリセルMCに書き込まれる。この場合、NANDセル型フラッシュメモリは、1つのメモリセルMCにおける閾値電圧が、2通りの閾値電圧分布E,Aを持ち得るように構成されている。図7は、2値記憶方式のNANDセル型フラッシュメモリのメモリセルに記憶される1ビットの2値データ(データ“1”、“0”)とメモリセルの閾値電圧分布E,Aとの関係を示している。以降、「閾値分布が高い、低い」とは、特に断りがない限り、閾値分布のピークの位置で高い、低い、を判断する。
なお、図7において、電圧VAは2つのデータ”1”、”0”を読み出す場合に選択ワード線に印加される電圧であり、例えば、VA=0Vである。電圧VAVは、閾値電圧分布Aへの書き込みを行う場合において、書き込みが完了したかどうかを確認するために印加されるベリファイ電圧を示している。また、Vreadは、データの読み出しを行う場合に、NANDセル中の非選択メモリセルに対し印加され、その保持データに拘わらず当該非選択メモリセルを導通させる読み出し電圧を示している。さらに、電圧Vevは、メモリセルのデータを消去する場合において、その消去が完了したか否かを確認するためメモリセルに印加される消去ベリファイ電圧であり、例えば、負の値を有する。上述の各電圧の大小関係は、Vev<VA<VAV<Vreadである。
なお、消去ベリファイ電圧Vevは前述の通り負の値であるが、実際に消去ベリファイ動作においてメモリセルMCの制御ゲートに印加される電圧は、負の値ではなく、ゼロ又は正の値である。すなわち、実際の消去ベリファイ動作においては、メモリセルMCのバックゲートに正の電圧を与え、メモリセルMCの制御ゲートには、ゼロ又はバックゲート電圧より小さい正の値の電圧を印加している。換言すれば、消去ベリファイ電圧Vevは、等価的に負の値を有する電圧である。
ブロック消去後のメモリセルの閾値電圧分布Eは、その上限値も負の値であり、データ“1”が割り当てられる。また、書き込み状態のデータ“0”のメモリセルは、閾値電圧分布Aを有する。
次に、本発明の実施の形態において、4値記憶方式(M=4、2ビット/セル)を実行する場合の例を、図8〜図10を参照して説明する。
4値NANDセル型フラッシュメモリは、1つのメモリセルMCにおける閾値電圧が、4通りの閾値電圧分布E,A,B,Cを持ち得るように構成されている。図8は、4値NANDセル型フラッシュメモリのメモリセルに記憶される2ビットの4値データ“11”(”3”)、“10”(”2”)、“01”(”1”)、“00”(”0”)とメモリセルMCの閾値電圧分布E,A,B,Cとの関係を示している。なお、図1において、VA、VB、VCは4つのデータを読み出す場合に選択ワード線に印加される電圧であり(電圧VAは0Vである)、VAV、VBV、VCVは、各閾値電圧分布E,A,B,Cへの書き込みを行う場合において、書き込みが完了したかどうかを確認するために印加されるベリファイ電圧を示している。
また、Vreadは、データの読み出しを行う場合に、NANDセル中の非選択メモリセルに対し印加され、その保持データに拘わらず当該非選択メモリセルを導通させる読み出し電圧を示している。さらに、Vevは、メモリセルのデータを消去する場合において、その消去が完了したか否かを確認するためメモリセルに印加される消去ベリファイ電圧であり、例えば、負の値を有する。上述の各電圧の大小関係は、Vev<VA<VAV<VB<VBV<VC<VCV<Vreadである。
ブロック消去後のメモリセルMCの閾値電圧分布Eは、その上限値も負の値であり、データ“11”(”3”)が割り当てられる。また、書き込み状態のデータ“01”(”2”)、“10”(”1”)、“00”(”0”)のメモリセルは、それぞれ正の閾値電圧分布A、B、Cを有する(閾値電圧分布A、B、Cの下限値も正の値である)。データ“01”(”2”)の閾値電圧分布Aが最も電圧値が低く、データ“00”(”0”)の閾値電圧分布Cが最も電圧値が高く、データ“10”(”1”)の閾値電圧分布Bは、データ“01”とデータ“00”の中間の電圧値を有する。なお、図1に示す閾値電圧分布はあくまでも一例であって、本発明はこれに限定されるものではない。例えば、図1では閾値電圧分布A,B,Cは全て正の閾値電圧分布であるとして説明したが、閾値電圧分布Aは負の電圧の分布であり、閾値電圧分布B、Cが正の電圧の分布であるような場合も、本発明の範囲に含まれる。閾値電圧分布Eが負の電圧の分布であれば良い。
1つのメモリセルMCの2ビットデータ(4値データ)は、下位ページデータと上位ページデータからなり、下位ページデータと上位ページデータは別々の書き込み動作、つまり、2回の書き込み動作により、メモリセルMCに書き込まれる。データ“*@”と標記するとき、*は上位ページデータを、@は下位ページデータを表している。
まず、下位ページデータの書き込みを、図9を参照して説明する。全てのメモリセルは、消去状態の閾値電圧分布Eを有し、データ“11”(”3”)を記憶しているものとする。図9に示すように、下位ページデータの書き込みを行うと、メモリセルの閾値電圧分布Eは、下位ページデータの値(“1”、或いは“0”)に応じて、2つの閾値電圧分布(E、B´)に分けられる。すなわち、下位ページデータの値が“1”の場合には、消去状態の閾値電圧分布Eを維持する。
一方、下位ページデータの値が“0”の場合には、メモリセルのトンネル酸化膜に高電界を印加し、フローティングゲート電極に電子を注入して、メモリセルの閾値電圧Vthを所定量だけ上昇させる。具体的には、ベリファイ電位VBV´を設定し、このベリファイ電圧VBV´以上の閾値電圧となるまで書き込み動作が繰り返される。その結果、メモリセルは、書き込み状態(データ“10”(”1”))に変化する。なお、データ“10”(”1”)の閾値電圧分布B´は、隣接セルへの書き込み動作の影響のため、データ“11”に比べ広い分布となっている。
次に、上位ページデータの書き込みを、図10を参照して説明する。上位ページデータの書き込みは、チップの外部から入力される書き込みデータ(上位ページデータ)と、メモリセルに既に書き込まれている下位ページデータとに基づいて行われる。
即ち、図10に示すように、上位ページデータの値が“1”の場合には、メモリセルのトンネル酸化膜に高電界がかからないようにし、メモリセルの閾値電圧Vthの上昇を防止する。その結果、データ“11”(消去状態の閾値電圧分布E)のメモリセルは、データ“11”(”3”)をそのまま維持し、データ“10”(”1”)(閾値電圧分布B´)のメモリセルは、データ“10”(”1”)をそのまま維持する。ただし、上述のベリファイ電圧VBV´よりも大きい正規のベリファイ電圧VBVを用いて閾値電圧分布の下限値を調整し、これにより閾値電圧分布の幅を狭めた閾値電圧分布Bを形成する。
一方、上位ページデータの値が“0”の場合には、メモリセルのトンネル酸化膜に高電界を印加し、フローティングゲート電極に電子を注入して、メモリセルの閾値電圧Vthを所定量だけ上昇させる。その結果、データ“11”(”3”)(消去状態の閾値電圧分布E)のメモリセルは、閾値電圧分布Aのデータ“01”(”2”)に変化し、データ“10”(”1”)のメモリセルは、閾値電圧分布Cのデータ“00”(”0”)に変化する。このとき、ベリファイ電圧VAV、VCVが用いられて、閾値電圧分布A、Cの下限値が調整される。
以上が、一般的な4値記憶方式におけるデータ書き込み方式の一例である。3ビット(8値)以上の多ビット記憶方式においても、上記の動作に更に上位のページデータに応じ、閾値電圧分布を8通りに分割する動作が加わるのみであるので、基本的な動作は同様である。
また、書き込み方式としては、当初から最終的に得たい閾値電圧分布を得るような書き込み動作を実行してもよいし、最終的に得たい閾値分布とは別の中間分布への書き込み動作を含むような書き込み方式(図9のB’)を採用することも可能である。
また、書き込み方式としては、当初から最終的に得たい閾値電圧分布を得るような書き込み動作を実行してもよいし、最終的に得たい閾値分布とは別の中間分布への書き込み動作を含むような書き込み方式(図9のB’)を採用することも可能である。
このような2値データ、又はそれ以上(4値、8値)のデータをメモリセルMCに書き込む場合、そのデータに対応する閾値電圧が大きいほど、当該メモリセルMCに与える物理的負担が大きくなる(ゲート絶縁膜の劣化が早まる)。従って、書き込みデータを外部から複数のメモリセルMCに与える場合、物理的な負担が小さいデータであるデータ”1”(2値の場合)、”11”(”3”)(4値の場合)が、できるだけ多くの数のメモリセルMCに与えられるようなデータ群とすることが望まれる。
また、大きな閾値電圧に対応するデータが書き込まれる場合には、その書き込み対象のメモリセルMCに対する物理的負担が大きくなるばかりでなく、セル間干渉により、その書き込み対象のメモリセルMCに隣接する隣接メモリセルにおける閾値電圧の変動の度合が大きくなるという問題がある(図11参照)。この閾値変動は、多くのメモリセルが消去状態の閾値電圧分布Eのままとされている場合は、多くのメモリセルが閾値電圧A,B,Cに書き込まれている場合に比べ、小さくなる。すなわち、図12(a)に示すように、メモリセルMCnに隣接するメモリセルの多くが消去状態の閾値電圧分布Eを有していれば、メモリセルMCnは、これら隣接メモリセルからの影響をあまり受けず、メモリセルMCnの閾値電圧が大きく変動することはない。一方、図12(b)に示すように、メモリセルMCnに隣接するメモリセルの多くが閾値電圧分布Eではなく、A,B,Cを有していれば、メモリセルMCnは、これら隣接メモリセルからの影響を受け、メモリセルMCnの閾値電圧が大きく変動する虞がある。
そこで、本実施の形態では、以下のようなデータ処理を行うことにより、できるだけ閾値電圧分布Eが維持される(データ”11”(”3”)が書かれた状態が維持される)メモリセルMCの数が多くなるよう、ホスト1000から与えられたデータにデータ置換を施す。このデータ置換動作は、データ分割処理部216、最少数データ判定部217、データ置換部218により実行される。この最少数データ判定部217、及びデータ置換部218により実行されるデータ置換動作を、図13Aを参照して説明する。
まず、データ分割処理部216は、1つのワード線WLに沿って並ぶn個のメモリセルMCに書き込むためにホスト1000から供給されたn個のM値データd1、d2、・・・dnを、m個のデータ集合Gi(i=1〜m)に分割する(ステップS11)。ここで、データ集合Giは、メモリセルの集合であるページを1つのデータ集合体Giとする場合に限られない。例えば、メモリセルの集合である3ページを合わせてデータ集合Giとする場合や、図12に示した、9個のマトリクス状のメモリセルを1つのデータ集合Giとする場合もある。
続いて、i=1として(ステップS12)、i=mか否かを判定し(ステップS13)、NOであれば、データ集合Gi中に含まれるデータ”0”、・・・”M−1”のうち、最も少ない数のデータはどれであるかを、最少数データ判定部217に判定させる(ステップS14)。ここで、ステップS11において、各データ集合Giに含まれるM値のデータdiの数を奇数とすることにより、例えば、2値データの場合、データ“0”またはデータ“1”のどちらかが最小データとなり、効果的にメモリセルに対する物理的負担を出来るだけ少なくすることができる。
最少数データがデータ”0”であると判定される場合には(S15のYES)、そのデータ集合Giにおいて、データ置換動作は行わず、データ集合Gi中のデータは、ホスト1000から転送されたままの状態とされる(第2データ処理:ステップS17)。
一方、最少数データがデータ”0”以外のデータであると判定される場合には(S15のNO)、データ集合Giの中で最少数データをデータ”0”と置き換えるデータ置換動作を行うと共に、データ”0”を最少数データと置き換えるデータ置換動作を行う(ステップS16:第1データ処理)。その後、置き換えられたデータに対応するパリティデータを生成した後(ステップS20)、iをインクリメントして(ステップS18)、以下、iがmに達するまで上記の動作を繰り返す。
iがmに達したら、ステップS20で生成したパリティデータをデータ集合Giに付与して(ステップS21)、処理を終了する。このようなパリティデータの生成・付与はデータ集合Giの個数が少ない場合や、キャッシュメモリ(例えば、RAM34)の容量が小さい場合に有効である。
図13Bは、別の第1の実施の形態の動作例を示すフローチャートである。図13Bに示すように、ステップS13の「Yes」判定の後に、パリティデータを生成する動作(ステップS20)及びステップS20で生成したパリティデータをデータ集合Giに付与する動作(ステップS21)を連続して実行することが可能である。このようなパリティデータの生成・付与はデータ集合Giの個数が多い場合や、キャッシュメモリ(例えば、RAM34)の容量が大きい場合に有効である。
続いて、i=1として(ステップS12)、i=mか否かを判定し(ステップS13)、NOであれば、データ集合Gi中に含まれるデータ”0”、・・・”M−1”のうち、最も少ない数のデータはどれであるかを、最少数データ判定部217に判定させる(ステップS14)。ここで、ステップS11において、各データ集合Giに含まれるM値のデータdiの数を奇数とすることにより、例えば、2値データの場合、データ“0”またはデータ“1”のどちらかが最小データとなり、効果的にメモリセルに対する物理的負担を出来るだけ少なくすることができる。
最少数データがデータ”0”であると判定される場合には(S15のYES)、そのデータ集合Giにおいて、データ置換動作は行わず、データ集合Gi中のデータは、ホスト1000から転送されたままの状態とされる(第2データ処理:ステップS17)。
一方、最少数データがデータ”0”以外のデータであると判定される場合には(S15のNO)、データ集合Giの中で最少数データをデータ”0”と置き換えるデータ置換動作を行うと共に、データ”0”を最少数データと置き換えるデータ置換動作を行う(ステップS16:第1データ処理)。その後、置き換えられたデータに対応するパリティデータを生成した後(ステップS20)、iをインクリメントして(ステップS18)、以下、iがmに達するまで上記の動作を繰り返す。
iがmに達したら、ステップS20で生成したパリティデータをデータ集合Giに付与して(ステップS21)、処理を終了する。このようなパリティデータの生成・付与はデータ集合Giの個数が少ない場合や、キャッシュメモリ(例えば、RAM34)の容量が小さい場合に有効である。
図13Bは、別の第1の実施の形態の動作例を示すフローチャートである。図13Bに示すように、ステップS13の「Yes」判定の後に、パリティデータを生成する動作(ステップS20)及びステップS20で生成したパリティデータをデータ集合Giに付与する動作(ステップS21)を連続して実行することが可能である。このようなパリティデータの生成・付与はデータ集合Giの個数が多い場合や、キャッシュメモリ(例えば、RAM34)の容量が大きい場合に有効である。
図14は、2値データ(”1”または”0”)が1のメモリセルMCに書き込まれる場合であって、データ集合Giが、3つの2値データbit1〜3からなる場合におけるデータ置換動作を説明している。これはあくまでも一例であり、データ集合Giが4つ以上のデータを有している場合でも、同様の手法によりデータ置換を行うことができることは、以下の説明から理解され得るであろう。図14において、index1〜8は、3つの2値データbit1〜3の組み合わせを示している。
この場合、最少数データ判定部217は、データ集合Giに含まれる3つの2値データbit1〜3の種類(”1”又は”0”のいずれか)を判別し、”0”及び”1”のいずれがデータ集合Gi中でより少ないか(一番少ないか)を判定する。すなわち、”0”、”1”のいずれが最少数データであるのかを判定する。
データ置換部218は、最少数データ判定部217が判定した最少数データがデータ”0”でなく”1”である場合に、データ集合Gi中において、その最少数データであるデータ”1”とデータ”0”とを相互に置換する第1データ処理を実行する。一方、最少数データがデータ”0”であった場合には、データ置換を行わずそのままとする第2データ処理を実行する。そして、第1データ処理が行われた場合には、パリティデータ生成部219は、パリティデータとしてデータ”0”を生成し、そのデータ集合Giに付与する。逆に、パリティデータ生成部219は、第1データ処理を行わず第2データ処理を行う場合(データ置換動作を行わない場合)には、パリティデータとしてデータ”1”を生成し、そのデータ集合Giに付与する。生成されたパリティデータは、パリティデータ記憶部を構成するメモリセル(図3のq本のNANDセルユニットNU)に記憶される。
ここで、図14に、2値データにおいて、この動作が行われることによる効果を説明する。図14は、3ビットのメモリセル(“bit1”、“bit2”、“bit3”)がそれぞれ“0”または“1”のデータを記憶する場合を“index”に通し番号をつけて記載した。また、3ビットのメモリセルにそれぞれ“0”または“1”のデータが記憶される通り数は8通りであり、「全ての通り」の合計を計算により求め、合計の欄に記載した。図14の合計の欄に示すように、パリティデータを含んだとしても、書き込みデータ中のデータ”0”の数を、データ置換動作前(第1データ処理、第2データ処理の実行前)に比べて少なくすることができる(データ”0”の数を12個から10個に減らすことができる)。したがって、メモリセルMCに与える物理的負担を相対的に少なくすることができ、結果としてメモリの信頼性を向上させ、メモリの長寿命化に寄与することができる。
図15は、4値データ(データ”11”(”3”)、”01”(”2”)、”10”(”1”)、”1”(”0”))が1のメモリセルMCに書き込まれる場合であって、データ集合Giが、5つの4値データbit1〜5からなる場合におけるデータ置換動作を説明している。図15は、5ビットのメモリセル(“bit1”、“bit2”、“bit3”、“bit4”、“bit5”)がそれぞれ“0”、“1”、“2”または“3” データを記憶する場合を“index”に通し番号をつけて記載した。また、5ビットのメモリセルにそれぞれ“0”〜“3”のデータが記憶される通り数は1024通りであり、「全ての通り」の合計を計算により求め、合計の欄に記載した。
この場合も、図14と同様に、最少数データを最少数データ判定部217で特定し、その最少数データとデータ”00”(”0”)とをデータ集合Gi中で置換する動作を行う。なお、最少数データが複数個存在する場合には、よりメモリセルMCへの物理的負担が小さいデータへの置換がなされるよう、最少数データが選択される。例えば、図14のindex1では、全てのデータbit1〜5が”0”であり、最少数データは”3”、”2”、”1”であるが、メモリセルMCへの物理的負担を一番小さくできるデータ”3”を最少数データとして特定し、データ”3”と”0”とを置き換える動作を行う。
また、データ”0”と他のあるデータとがいずれも最少数データに該当する場合には、データ”0”を最少数データと定義してデータ置換動作を行う。例えば、図15のindex1022では、最少数データは”0”、”2”であるので、”0”を最少数データとする。結果として、index3では、第1データ置換動作を行わず、データ置換を行わない(第2データ処理を実行する)。その結果、メモリセルに与える物理的負担を効果的に減らすことができる。
この図15におけるデータ置換動作を要約すると、次の通りである。
(1)データ集合Gi中での最少数データがデータ”00”(”0”)である場合には、データ集合Gi中のデータbit1〜5に対し、第1データ処理は行わず(データ置換動作は行わず)、第2データ処理を行う。パリティデータとしてデータ”11”(”3”)を生成し、付与する。
(2)データ集合Gi中での最少数データがデータ”10”(”1”)である場合には、データ集合Gi中のデータbit1〜5に対し、最少数データであるデータ”10”(”1”)をデータ”00”(”0”)と置き換える動作(第1データ処理)を行う。パリティデータとしてデータ”01”(”2”)を生成し、付与する。
(3)データ集合Gi中での最少数データがデータ”01”(”2”)である場合には、データ集合Gi中のデータbit1〜5に対し、最少数データであるデータ”01”(”2”)をデータ”00”(”0”)と置き換える動作(第1データ処理)を行う。パリティデータとしてデータ”10”(”1”)を生成し、付与する。
(4)データ集合Gi中での最少数データがデータ”11”(”3”)である場合には、データ集合Gi中のデータbit1〜5に対し、最少数データであるデータ”11”(”3”)をデータ”00”(”0”)と置き換える動作(第1データ処理)を行う。パリティデータとしてデータ”00”(”0”)を生成し、付与する。
この図15の合計の欄に示したように、図14と同様に、パリティデータを含んだとしても、データ”00”(”0”)の数を少なくすることができる(1280個から741個)。
(1)データ集合Gi中での最少数データがデータ”00”(”0”)である場合には、データ集合Gi中のデータbit1〜5に対し、第1データ処理は行わず(データ置換動作は行わず)、第2データ処理を行う。パリティデータとしてデータ”11”(”3”)を生成し、付与する。
(2)データ集合Gi中での最少数データがデータ”10”(”1”)である場合には、データ集合Gi中のデータbit1〜5に対し、最少数データであるデータ”10”(”1”)をデータ”00”(”0”)と置き換える動作(第1データ処理)を行う。パリティデータとしてデータ”01”(”2”)を生成し、付与する。
(3)データ集合Gi中での最少数データがデータ”01”(”2”)である場合には、データ集合Gi中のデータbit1〜5に対し、最少数データであるデータ”01”(”2”)をデータ”00”(”0”)と置き換える動作(第1データ処理)を行う。パリティデータとしてデータ”10”(”1”)を生成し、付与する。
(4)データ集合Gi中での最少数データがデータ”11”(”3”)である場合には、データ集合Gi中のデータbit1〜5に対し、最少数データであるデータ”11”(”3”)をデータ”00”(”0”)と置き換える動作(第1データ処理)を行う。パリティデータとしてデータ”00”(”0”)を生成し、付与する。
この図15の合計の欄に示したように、図14と同様に、パリティデータを含んだとしても、データ”00”(”0”)の数を少なくすることができる(1280個から741個)。
なお、上記の例(図14、図15)では、M値のデータを含むデータ集合Giにおいて、第Mデータが最も閾値電圧の小さい(メモリセルへの物理的負担が小さい)データであり、以下、第(M−1)データ、第(M−2)データ、・・・の順に与えられる閾値電圧が大きくなり、第1データが最も閾値電圧の大きいデータであると定義する。この場合、データ置換の対象とされたデータが第Pデータ(1<P<M)である場合に、パリティデータとして第(M−P+1)データを付加するようにしている。これにより、パリティデータも含めた書き込みデータ全体において、データ”0”の数を最も少なくすることができる。
また、閾値分布の高いデータ、例えば、4値データにおける“0”データはメモリセルにデータを書き込む際に大きな書き込み電圧が必要となる。ここで、本発明を適用することにより、閾値分布の高いデータの数を減らすことができ、消費電力を抑制することができる。
ここで、データの読み出し時において、本発明の第1実施形態におけるデータの復元化はパリティデータを用いることにより容易に行うことができる。例えば、パリティデータが“0”の時は、メモリセルに保存されたデータのうちデータ“3”とデータ“0”を入れ替えればよい。同様に、パリティデータが“1”の時は、メモリセルに保存されたデータのうちデータ“2”とデータ“0”を入れ替えればよく、パリティデータが“2”の時は、メモリセルに保存されたデータのうちデータ“1”とデータ“0”を入れ替えればよい。また、パリティデータが“3”の時は、メモリセルに保存されたデータの入れ替えを行わない。すなわち、入れ替えの対象とされるデータは、メモリセルへの物理的負担が最も大きいデータ”0”と置き換えられる。そして、パリティデータは、メモリセルへの物理的負担が最も大きいデータ”0”と置き換えられるデータの種類を指し示しているものである。
このように、本発明の第1実施形態におけるデータの復元化は単純な動作であり、物理的負担を与えるデータを複数回入れ替えるような複雑な動作を行わない。その結果、復元化動作を高速化することができる。
また、閾値分布の高いデータ、例えば、4値データにおける“0”データはメモリセルにデータを書き込む際に大きな書き込み電圧が必要となる。ここで、本発明を適用することにより、閾値分布の高いデータの数を減らすことができ、消費電力を抑制することができる。
ここで、データの読み出し時において、本発明の第1実施形態におけるデータの復元化はパリティデータを用いることにより容易に行うことができる。例えば、パリティデータが“0”の時は、メモリセルに保存されたデータのうちデータ“3”とデータ“0”を入れ替えればよい。同様に、パリティデータが“1”の時は、メモリセルに保存されたデータのうちデータ“2”とデータ“0”を入れ替えればよく、パリティデータが“2”の時は、メモリセルに保存されたデータのうちデータ“1”とデータ“0”を入れ替えればよい。また、パリティデータが“3”の時は、メモリセルに保存されたデータの入れ替えを行わない。すなわち、入れ替えの対象とされるデータは、メモリセルへの物理的負担が最も大きいデータ”0”と置き換えられる。そして、パリティデータは、メモリセルへの物理的負担が最も大きいデータ”0”と置き換えられるデータの種類を指し示しているものである。
このように、本発明の第1実施形態におけるデータの復元化は単純な動作であり、物理的負担を与えるデータを複数回入れ替えるような複雑な動作を行わない。その結果、復元化動作を高速化することができる。
[第2の実施の形態]
次に、本発明の第2の実施の形態を、図16を参照して説明する。本実施の形態の構成は、第1の実施の形態(図1〜図3)と同一でよいので、詳細な説明は省略する。この実施の形態では、最少数データ判定部217、及びデータ置換部218における動作が、第1の実施の形態とは異なっている。この第2の実施の形態の動作を、図16を参照して説明する。
動作として異なる点は、ステップS15で最少数データがデータ”0”以外のデータであると判定された後、その最少数データの数がデータ”0”の数とほぼ同数であるか否かが判定される(ステップS19)。もし、両者がほぼ同数であれば、データ置換の効果は非常に限定的であるので、データ置換を行わない第2のデータ処理に移行する(ステップS17)。これにより、無用なデータ置換動作が行われることを回避することができ、メモリ装置の動作速度を向上させることができる。またこのステップS17の場合に付与されるパリティデータは、消去状態“3”のデータであるので、消費電力を抑制することができる。
なお、図16において、図13Bのような手順でパリティデータの生成・付与を行うよう動作手順を変更することも可能である。
次に、本発明の第2の実施の形態を、図16を参照して説明する。本実施の形態の構成は、第1の実施の形態(図1〜図3)と同一でよいので、詳細な説明は省略する。この実施の形態では、最少数データ判定部217、及びデータ置換部218における動作が、第1の実施の形態とは異なっている。この第2の実施の形態の動作を、図16を参照して説明する。
動作として異なる点は、ステップS15で最少数データがデータ”0”以外のデータであると判定された後、その最少数データの数がデータ”0”の数とほぼ同数であるか否かが判定される(ステップS19)。もし、両者がほぼ同数であれば、データ置換の効果は非常に限定的であるので、データ置換を行わない第2のデータ処理に移行する(ステップS17)。これにより、無用なデータ置換動作が行われることを回避することができ、メモリ装置の動作速度を向上させることができる。またこのステップS17の場合に付与されるパリティデータは、消去状態“3”のデータであるので、消費電力を抑制することができる。
なお、図16において、図13Bのような手順でパリティデータの生成・付与を行うよう動作手順を変更することも可能である。
[その他]
以上、発明の実施の形態を説明したが、本発明はこれらの実施の形態に限定されるものではなく、発明の趣旨を逸脱しない範囲内において、様々な追加、置換、削除、組合せ、転用等が可能である。例えば、上記の実施の形態では、NAND型フラッシュメモリを例にとって説明したが、本発明は、記憶素子に物理的負担を与える形式で記憶素子にデータを記憶させるデータ記憶装置一般に広く適用できることは、上記の説明から明らかである。
以上、発明の実施の形態を説明したが、本発明はこれらの実施の形態に限定されるものではなく、発明の趣旨を逸脱しない範囲内において、様々な追加、置換、削除、組合せ、転用等が可能である。例えば、上記の実施の形態では、NAND型フラッシュメモリを例にとって説明したが、本発明は、記憶素子に物理的負担を与える形式で記憶素子にデータを記憶させるデータ記憶装置一般に広く適用できることは、上記の説明から明らかである。
また、上記の実施の形態において、データ置換動作をコントローラ22で実行する例を説明したが、本発明はこれに限定されるものではなく、例えばメモリ21のチップ内で同様の機能を果たすような構成としてもよいし、ホスト1000側で同様の動作を行ってもよい。
また、上記の実施の形態において、パリティデータは、実効データを記憶させる記憶領域とは別の、パリティデータ線用の記憶領域に記憶させる形式を説明したが、パリティデータと実効データを同一の記憶領域に記憶させるような方式にも、本発明を適用することができる。
また、上記の実施の形態では、1つのワード線に沿ったデータを複数の集合Giに分割する動作を行っているが、本発明はこれに限定されるものではなく、集合Giの作り方は、様々な形式が考えられる。例えば、基板に垂直な方向にメモリが積層される3次元形状のメモリ装置において、その3次元方向に隣接する複数のメモリセルに書き込まれるべきデータを複数の集合に分割し、同様のデータ処理を行うことも可能である。
また、本発明の適用は、NAND型フラッシュメモリに限られない。書き込み・消去動作が繰り返し行われることによるメモリの信頼性の低下は、NAND型フラッシュメモリに限らず、例えばNOR型フラッシュメモリにおいても同様に起こり得る。また、フラッシュメモリに限らず、例えば、強誘電体メモリ、磁気メモリ、ハードディスクドライブ装置等の他のデータ記憶装置においても事情は同様である。すなわち、本発明はNAND型フラッシュメモリ以外に適用しても、メモリセル即ち記憶素子に対する物理的負担を出来るだけ少なくし、記憶装置の信頼性を高めると共に、記憶装置の長寿命化することができる。
また、本発明の適用は、NAND型フラッシュメモリに限られない。書き込み・消去動作が繰り返し行われることによるメモリの信頼性の低下は、NAND型フラッシュメモリに限らず、例えばNOR型フラッシュメモリにおいても同様に起こり得る。また、フラッシュメモリに限らず、例えば、強誘電体メモリ、磁気メモリ、ハードディスクドライブ装置等の他のデータ記憶装置においても事情は同様である。すなわち、本発明はNAND型フラッシュメモリ以外に適用しても、メモリセル即ち記憶素子に対する物理的負担を出来るだけ少なくし、記憶装置の信頼性を高めると共に、記憶装置の長寿命化することができる。
1000・・・ホスト装置、 2000・・・メモリカード、1・・・メモリセルアレイ、 2・・・ロウデコーダ、 3・・・センスアンプ回路、 4・・・カラムデコーダ、 5・・・アドレスデコーダ、 6・・・制御回路、 10・・・高電圧発生回路、 11・・・ソフトウエア、 12・・・ファイルシステム、 13、31・・・SDインタフェース、 21・・・メモリ、 22・・・コントローラ、 32・・・MPU、 33・・・ROM、 34・・・RAM、 35・・・NANDインタフェース、 211、212・・・ステータスレジスタ、 213・・・入出力制御回路、 214・・・論理回路、 215・・・データレジスタ。
Claims (5)
- M値(Mは2以上の自然数)のデータを記憶可能な記憶素子を複数配列してなる記憶素子配列部と、
前記記憶素子に書き込むべき書き込みデータを一時保持するデータ保持部と、
前記書き込みデータに対するデータ処理を実行するデータ処理部と
を備え、
前記M値のデータを構成する第1データ〜第Mデータのうち、前記第1データは、前記M値のデータのうちで最も書き込みのために前記記憶素子に与える物理的負担が大きいデータであり、
前記データ処理部は、
複数個の前記記憶素子の集合に含まれる前記記憶素子に書き込まれるべきデータとして前記データ保持部に保持された前記書き込みデータの集合に対するデータ処理を実行可能に構成され、
前記データ処理は、
前記第1データ〜第Mデータのうちで、前記書き込みデータの集合に含まれる数が最も小さい最少数データを特定し、
前記最少数データが前記第1データ以外のデータである場合、前記書き込みデータの集合に含まれる前記最少数データを第1データと置き換える一方、前記書き込みデータの集合に含まれる前記第1データを前記最少数データと置き換える第1データ処理と、
前記最少数データが前記第1データである場合、前記書き込みデータの集合に対するデータ変換を行わず、そのままの状態に維持する第2データ処理とを含む
ことを特徴とするデータ記憶装置。 - 前記Mの数が増えるに従い前記記憶素子に与える物理的負担が小さくなるようにデータを付与した場合、
前記データ処理部は、前記第1データ〜第Mデータのうちの複数のデータが前記最少数データに相当する場合、最も前記記憶素子に対して物理的負担を与えないデータを前記最少数データとして定めて前記第1データ処理を実行する請求項1記載のデータ記憶装置。 - 前記第1データ処理が実行された場合、前記集合に対して、前記第1データ処理の実行の有無、及び前記最少数データの種類を特定するためのパリティデータを生成するパリティデータ生成部を備えたことを特徴とする請求項1記載のデータ記憶装置。
- 前記パリティデータ生成部は、前記最少数データが第1データである場合、前記パリティデータとして前記第Mデータを生成する一方、
前記最少数データが前記第Mデータである場合、前記パリティデータとして前記第1データを生成する
ことを特徴とする請求項3記載のデータ記憶装置。 - M値(Mは2以上の自然数)のデータを記憶可能な記憶素子を複数配列してなる記憶素子配列部を備えたデータ記憶装置に対するデータの書き込み方法であって、
前記M値のデータを構成する第1データ〜第Mデータのうち、前記第1データは、前記M値のデータのうちで最も書き込みのために前記記憶素子に与える物理的負担が大きいデータであり、
前記記憶素子に書き込むべき書き込みデータを一時保持するステップと、
前記第1データ〜第Mデータのうちで、前記書き込みデータの集合に含まれる数が最も小さい最少数データを特定するステップと、
前記最少数データが前記第1データ以外のデータである場合、前記書き込みデータの集合に含まれる前記最少数データを第1データと置き換える一方、前記書き込みデータの集合に含まれる前記第1データを前記最少数データと置き換えるステップと、
前記最少数データが前記第1データである場合、前記書き込みデータの集合に対するデータ変換を行わず、そのままの状態に維持するステップと
を備えたことを特徴とするデータ記憶装置に対する書き込み方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010069212A JP2011204304A (ja) | 2010-03-25 | 2010-03-25 | データ記憶装置、及びその書き込み方法 |
US12/884,882 US20110239096A1 (en) | 2010-03-25 | 2010-09-17 | Data memory device and method of programming to the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010069212A JP2011204304A (ja) | 2010-03-25 | 2010-03-25 | データ記憶装置、及びその書き込み方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011204304A true JP2011204304A (ja) | 2011-10-13 |
Family
ID=44657759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010069212A Pending JP2011204304A (ja) | 2010-03-25 | 2010-03-25 | データ記憶装置、及びその書き込み方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110239096A1 (ja) |
JP (1) | JP2011204304A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016504658A (ja) * | 2012-11-21 | 2016-02-12 | マイクロン テクノロジー, インク. | メモリのための整形符号 |
JP2018045754A (ja) * | 2016-09-13 | 2018-03-22 | 東芝メモリ株式会社 | メモリシステム |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101949987B1 (ko) * | 2012-12-18 | 2019-02-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP6266479B2 (ja) | 2014-09-12 | 2018-01-24 | 東芝メモリ株式会社 | メモリシステム |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62162299A (ja) * | 1986-01-10 | 1987-07-18 | Mitsubishi Electric Corp | 半導体不揮発性メモリデ−タの書込・読出方法 |
JPS62239500A (ja) * | 1986-04-10 | 1987-10-20 | Mitsubishi Electric Corp | 半導体不揮発性メモリデ−タ書込み装置 |
JPS62241199A (ja) * | 1986-04-11 | 1987-10-21 | Mitsubishi Electric Corp | 半導体記憶装置 |
JPH05298894A (ja) * | 1992-04-16 | 1993-11-12 | Sharp Corp | 不揮発性メモリのデータ書込読出制御装置 |
JPH06267283A (ja) * | 1993-03-16 | 1994-09-22 | Mitsubishi Electric Corp | データ書き込み可能な読み出し専用メモリ及びそのデータ書き込み/読み出し方法 |
JPH0745085A (ja) * | 1993-07-30 | 1995-02-14 | Tec Corp | データ書込装置及びデータ読取装置 |
JPH11312396A (ja) * | 1997-12-31 | 1999-11-09 | Samsung Electronics Co Ltd | マルチビット半導体メモリ装置及びその装置の誤り訂正方法 |
JP2005100527A (ja) * | 2003-09-25 | 2005-04-14 | Matsushita Electric Ind Co Ltd | 半導体不揮発性記憶装置 |
JP2005216455A (ja) * | 2004-02-02 | 2005-08-11 | Matsushita Electric Ind Co Ltd | 不揮発性半導体メモリ |
JP2007141365A (ja) * | 2005-11-18 | 2007-06-07 | Matsushita Electric Ind Co Ltd | 光ディスク装置および光ディスク装置の回転速度制御方法 |
JP2009032261A (ja) * | 2007-07-27 | 2009-02-12 | Samsung Electronics Co Ltd | フラッシュメモリ及びそのプログラミング方法 |
JP2009129477A (ja) * | 2007-11-20 | 2009-06-11 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP2009294869A (ja) * | 2008-06-04 | 2009-12-17 | Toshiba Corp | メモリシステム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4313160A (en) * | 1976-08-17 | 1982-01-26 | Computer Automation, Inc. | Distributed input/output controller system |
US4855903A (en) * | 1984-12-20 | 1989-08-08 | State University Of New York | Topologically-distributed-memory multiprocessor computer |
JPH06275098A (ja) * | 1993-03-24 | 1994-09-30 | Mitsubishi Electric Corp | 半導体記憶装置 |
JP3917734B2 (ja) * | 1997-11-07 | 2007-05-23 | 富士通株式会社 | 半導体記憶装置 |
-
2010
- 2010-03-25 JP JP2010069212A patent/JP2011204304A/ja active Pending
- 2010-09-17 US US12/884,882 patent/US20110239096A1/en not_active Abandoned
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62162299A (ja) * | 1986-01-10 | 1987-07-18 | Mitsubishi Electric Corp | 半導体不揮発性メモリデ−タの書込・読出方法 |
JPS62239500A (ja) * | 1986-04-10 | 1987-10-20 | Mitsubishi Electric Corp | 半導体不揮発性メモリデ−タ書込み装置 |
JPS62241199A (ja) * | 1986-04-11 | 1987-10-21 | Mitsubishi Electric Corp | 半導体記憶装置 |
JPH05298894A (ja) * | 1992-04-16 | 1993-11-12 | Sharp Corp | 不揮発性メモリのデータ書込読出制御装置 |
JPH06267283A (ja) * | 1993-03-16 | 1994-09-22 | Mitsubishi Electric Corp | データ書き込み可能な読み出し専用メモリ及びそのデータ書き込み/読み出し方法 |
JPH0745085A (ja) * | 1993-07-30 | 1995-02-14 | Tec Corp | データ書込装置及びデータ読取装置 |
JPH11312396A (ja) * | 1997-12-31 | 1999-11-09 | Samsung Electronics Co Ltd | マルチビット半導体メモリ装置及びその装置の誤り訂正方法 |
JP2005100527A (ja) * | 2003-09-25 | 2005-04-14 | Matsushita Electric Ind Co Ltd | 半導体不揮発性記憶装置 |
JP2005216455A (ja) * | 2004-02-02 | 2005-08-11 | Matsushita Electric Ind Co Ltd | 不揮発性半導体メモリ |
JP2007141365A (ja) * | 2005-11-18 | 2007-06-07 | Matsushita Electric Ind Co Ltd | 光ディスク装置および光ディスク装置の回転速度制御方法 |
JP2009032261A (ja) * | 2007-07-27 | 2009-02-12 | Samsung Electronics Co Ltd | フラッシュメモリ及びそのプログラミング方法 |
JP2009129477A (ja) * | 2007-11-20 | 2009-06-11 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP2009294869A (ja) * | 2008-06-04 | 2009-12-17 | Toshiba Corp | メモリシステム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016504658A (ja) * | 2012-11-21 | 2016-02-12 | マイクロン テクノロジー, インク. | メモリのための整形符号 |
JP2018045754A (ja) * | 2016-09-13 | 2018-03-22 | 東芝メモリ株式会社 | メモリシステム |
Also Published As
Publication number | Publication date |
---|---|
US20110239096A1 (en) | 2011-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5330136B2 (ja) | 半導体記憶装置 | |
JP4648006B2 (ja) | サイクルカウント値を記憶する広い消去ブロックを備える不揮発性半導体メモリ | |
US7660166B2 (en) | Method of improving programming precision in flash memory | |
KR101871546B1 (ko) | 개선된 제 1 패스 프로그래밍을 갖는 비휘발성 메모리 및 방법 | |
JP4907925B2 (ja) | 不揮発性半導体記憶装置 | |
JP4233563B2 (ja) | 多値データを記憶する不揮発性半導体記憶装置 | |
JP4746658B2 (ja) | 半導体記憶システム | |
KR100873825B1 (ko) | 비휘발성 메모리의 멀티 비트 프로그래밍 장치 및 방법 | |
TW201314447A (zh) | 具改善資料擾碼之非揮發性記憶體及方法 | |
KR102140784B1 (ko) | 비휘발성 메모리 장치의 데이터 기록 방법 | |
KR20200117746A (ko) | 비휘발성 메모리 장치, 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치를 포함하는 메모리 시스템 | |
US20150348621A1 (en) | Nonvolatile semiconductor memory device and read method thereof | |
JP2010134992A (ja) | 不揮発性半導体記憶装置とその書き込み方法 | |
JP5204069B2 (ja) | 不揮発性半導体記憶装置 | |
US20240221841A1 (en) | Fast bit erase for upper tail tightening of threshold voltage distributions | |
JP2006164408A (ja) | 不揮発性半導体記憶装置及びそのデータ消去方法。 | |
JP2011204304A (ja) | データ記憶装置、及びその書き込み方法 | |
JP2012064290A (ja) | 不揮発性半導体メモリ | |
JP2007226897A (ja) | 半導体集積回路装置 | |
TWI706249B (zh) | 半導體儲存裝置 | |
KR101227368B1 (ko) | 낸드 플래시 메모리 소자의 프로그래밍 방법 및 데이터읽기 방법. | |
JP2013025845A (ja) | 不揮発性半導体記憶装置 | |
JP2010282492A (ja) | メモリシステム | |
CN112435705A (zh) | 存储器系统 | |
JP2014154191A (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120215 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120613 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120717 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121113 |