JP2013069171A - メモリシステムとその制御方法 - Google Patents

メモリシステムとその制御方法 Download PDF

Info

Publication number
JP2013069171A
JP2013069171A JP2011208105A JP2011208105A JP2013069171A JP 2013069171 A JP2013069171 A JP 2013069171A JP 2011208105 A JP2011208105 A JP 2011208105A JP 2011208105 A JP2011208105 A JP 2011208105A JP 2013069171 A JP2013069171 A JP 2013069171A
Authority
JP
Japan
Prior art keywords
data
districts
read
written
memory
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.)
Withdrawn
Application number
JP2011208105A
Other languages
English (en)
Inventor
Hiroshi Sukegawa
博 助川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011208105A priority Critical patent/JP2013069171A/ja
Priority to US13/531,894 priority patent/US9063903B2/en
Publication of JP2013069171A publication Critical patent/JP2013069171A/ja
Priority to US14/712,687 priority patent/US20150248330A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1072Adding 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 multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract


【課題】 データを確実且つ高速に書き込むことが可能なメモリシステムとその制御方法を提供する。
【解決手段】 メモリシステムは、第1、第2のディストリクト31a、31bと、制御部21を含んでいる。第1、第2のディストリクト31a、31bは、それぞれメモリセルアレイ32を有する。制御部21は、第1、第2のディストリクト31a、31bへ同時に第1のデータを書き込むための書き込みコマンド及びアドレスを受け、第1、第2のディストリクト31a、31bに同時に第1のデータを書き込む。
【選択図】図2

Description

本発明の実施形態は、半導体記憶装置、例えばNANDフラッシュメモリを備えたメモリシステムとその制御方法に関する。
近時、NANDフラッシュメモリの記憶容量は増加しており、1チップ内のワード線の数が増加している。
データの書き込みにおいて、1つのワード線により選択されるページ内の一部のビットのエラーは、ECC(Error Correction Code)を用いて訂正することが可能である。しかし、ページ単位のデータのエラー又は欠落は、ECCにより訂正することが困難である。
そこで、従来は、ページ単位のデータを保護するため、書き込みデータと同一のデータを書き込みデータとは別の領域に書き込み、バックアップが作成されていた。
しかし、バックアップのように同じデータを異なる領域に記録するためには、同じデータを2回書き込む必要があるため、書き込みに時間を要し、システムのスループットが低下していた。
特開2008−097403号公報
本実施形態によれば、データを確実且つ高速に書き込むことが可能なメモリシステムとその制御方法を提供しようとするものである。
本実施形態のメモリシステムは、第1、第2のディストリクトと、制御部とを含んでいる。第1、第2のディストリクトは、それぞれメモリセルアレイを有する。制御部は、第1、第2のディストリクトへ同時に第1のデータを書き込むための書き込みコマンド及びアドレスを受け、前記第1、第2のディストリクトに同時に第1のデータを書き込む。
実施形態に適用されるメモリシステムを概略的に示す構成図。 図1の一部を示す構成図。 第1の実施形態に係るコマンドシーケンスの一例を示す図。 従来のコマンドシーケンスの例を示す図。 第1、第2のディストリクトの書き込み動作を説明するために示す図。 第2の実施形態の動作を示すフローチャート。 第3の実施形態の動作を示すフローチャート。
以下、実施の形態について、図面を参照して説明する。
(第1の実施形態)
図1は、本実施形態に係るメモリシステムを概略的に示している。
メモリシステムは、例えばSDカードのようなメモリデバイス11と、ホスト20により構成される。尚、メモリデバイス11は必ずしもカード形状を有している必要は無く、ホスト20に対して挿抜不可能な態様で実装されていても良い。ホスト20は、ホストデバイスとも呼ぶ。
メモリデバイス11は、ホスト20に接続されたときに電源供給を受けて動作し、ホスト20からのアクセスに応じた処理を行う。このメモリデバイス11は、カードコントローラ11aを有している。
カードコントローラ11aは、例えばホストインターフェース(I/F)12、CPU13、ROM(Read only Memory)14、RAM(Random Access Memory)15、バッファ16により構成されている。これらは、バスにより接続されている。さらに、バスには、メモリコントローラ17が接続されている。このメモリコントローラ17には、例えばNANDフラッシュメモリ18が接続されている。
ホストインターフェース12は、カードコントローラ11aとホスト20との間のインターフェース処理を行う。
メモリコントローラ17は、カードコントローラ11aとNANDフラッシュメモリ18との間のインターフェース処理を行う。さらに、メモリコントローラ17は、ECC回路17aを含み、このECC回路17aにより、NANDフラッシュメモリ18から供給されたデータに対してエラー訂正処理を行う。
CPU13は、メモリデバイス11全体の動作を司るものである。CPU13は、ホスト20からライト(書き込み)コマンド、リード(読み出し)コマンド、イレース(消去)コマンドなどを受けてNANDフラッシュメモリ18上の領域をアクセスしたり、バッファ16を介してデータ転送処理を制御したりする。
ROM14は、CPU13により使用される制御プログラムなどのファームウェアの少なくとも一部を格納する。RAM15は、CPU13の作業エリアとして使用され、制御プログラムや各種のテーブルや後述する拡張レジスタを記憶する。
バッファ16は、ホスト20から送られてくるデータを、例えばNANDフラッシュメモリ18へ書き込む際、一定量のデータ(例えば1ページ分)を一時的に記憶したり、NANDフラッシュメモリ18から読み出されたデータをホスト20へ送り出す際、一定量のデータを一時的に記憶したりする。
NANDフラッシュメモリ18は、例えば積層ゲート構造のメモリセル、又はMONOS構造のメモリセルにより構成されている。このNANDフラッシュメモリ18は、例えばユーザデータや、アプリケーションソフトウェア、カードコントローラ11aの動作を制御するシステムソフトウェアなどを記憶している。これらユーザデータやアプリケーションソフトウェア、システムソフトウェアは、FAT(File allocation table)により管理されている。
一方、ホスト20は、例えばデジタルカメラや携帯電話、パーソナルコンピュータなどが適用可能である。ホスト20は、ホストコントローラ21、CPU22、ROM23、RAM24、例えばハードディスク25(SSD(Solid State Drive)を含む)により構成されている。これらはバスにより接続されている。
CPU22は、ホスト全体を制御する。ROM23は、CPU22の動作に必要なファームウェアを記憶している。RAM24は、例えばCPU22の作業領域として使用されるが、CPU22が実行可能なプログラムもここにロードされ実行される。ハードディスク25は、各種データを保持する。ホストコントローラ21は、メモリデバイス11が接続された状態において、メモリデバイス11とのインターフェース処理を行う。すなわち、ホストコントローラ21は、CPU22の指示に従って、後述する各種コマンドを発行する。
図2は、図1に示すNANDフラッシュメモリ18の一例を示している。NANDフラッシュメモリ18は、例えば第1、第2のディストリクト31a、31bにより構成されている。これら第1、第2のディストリクト31a、31bは、同一構成であるため、第1のディストリクト31aについて説明し、第2のディストリクト1bにおいて、第1のディストリクト31aと同一部分には同一符号を付し、説明は省略する。
第1のディストリクト31aにおいて、メモリセルアレイ32は、後述するように、複数のブロックBLK0〜BLK4095を含んでいる。各ブロックは、複数のNANDストリングにより構成されている。各NANDストリングは、直列接続された複数のメモリセルMCと、NANDストリングをビット線BL、及びソース線(図示せず)に接続するための選択トランジスタS1、S2を含んでいる。各メモリセルの制御ゲートはそれぞれワード線WLに接続されている。
各ワード線WLは、ロウデコーダ33、34に接続され、これらロウデコーダ33、34によりワード線が選択される。
また、各ビット線BLは、センスアンプ35にそれぞれ接続されている。各センスアンプ35は、複数のデータレジスタ36、37、38、ロジック回路39にそれぞれ接続されている。各センスアンプ35は、データの書き込み、ベリファイ、読み出し時にビット線BLの電圧を検出する。複数のデータレジスタ36、37、38は、データの書き込み及びベリファイ時、メモリセルに書き込むべきデータを保持し、データの読み出し時、メモリセルから読み出されたデータを保持する。センスアンプ35、データレジスタ36、37、38は、それぞれ1ページ分のデータを保持可能とされている。ロジック回路39は、データレジスタ36、37、38間のデータ転送、書き込み時及び読み出し時におけるデータの反転などの演算を行う。
さらに、第1、第2のディストリクト31a、31bには、周辺回路40が共通接続されている。この周辺回路40は、例えばアドレスデコーダ41を含んでいる。このアドレスデコーダ41は、IOパッド42に接続され、このIOパッド42から供給されるアドレスをデコードし、このデコードしたアドレスを第1、第2のディストリクト31a、31bのうちの一方に供給する。
図3は、第1の実施形態に係るコマンドシーケンスの一例を示している。
第1の実施形態は、第1、第2のディストリクト31a、31bに同一のデータを同時に書き込むことを可能としている。このため、特別な書き込みコマンドXXが定義されている。“XX”は、コマンドの識別子であり、“XX”に限定されるものではなく、メモリシステムにおいて、識別可能な記号又は数字でればよい。
以下、メモリデバイス11が、ホストデバイス20から、「同一データを二重化して記憶する命令」を受信した場合の動作について説明する。同一データを二重化して記憶する命令は、ホストI/F12を介してメモリデバイス11に入力される。CPU13は当該命令を解釈し、メモリコントローラ17が第1、第2のディストリクト31a、31bに同一のデータを同時に書き込むようNANDフラッシュメモリ18を制御する。
また、ホストデバイス20がメモリデバイス11に入力するデータに対して、当該データが重要でありかつ確実な保護を必要とするものであることを示すフラグビットを付加してもよい。CPU13は当該フラグビットを解釈し、メモリコントローラ17が第1、第2のディストリクト31a、31bに同一のデータを同時に書き込むよう制御する。
また、ホストデバイス20がメモリデバイス11に連続して同じデータを入力した場合に、CPU13がこれを解釈し、メモリコントローラ17が第1、第2のディストリクト31a、31bに同一のデータを同時に書き込むよう制御してもよい。
メモリコントローラ17は、先ず、第1、第2のディストリクト31a、31bの同時書き込みコマンドXXをNANDフラッシュメモリ18に発行し、これに続いて、第1のディストリクト31a内のページアドレスAdd(L)を出力する。次いで、メモリコントローラ17は、第1、第2のディストリクト31a、31bを切り換えるコマンド又はコマンド11h(hは、16進数を示す)など、ページアドレスの入力が続くことを示すコマンドをNANDフラッシュメモリ18に発行する。この後、メモリコントローラ17は、第2のディストリクト31b内のページアドレスAdd(R)、及び書き込みデータDT、コマンド10hをNANDフラッシュメモリ18に順次供給する。コマンド10hは、例えば本コマンドシーケンスの最後を示している。コマンド10hが発行されると、レディ(Ready)/ビジー(Busy)信号がレディ状態からビジー状態(B2R)に設定され、第1のディストリクト31aのページアドレスAdd(L)と第2のディストリクト31bのページアドレスAdd(R)にデータDTが同時に書き込まれる。
図4は、従来のコマンドシーケンスを示している。図3に示すコマンドシーケンスは、メモリコントローラ17から第1、第2のディストリクト31a、31bに対する書き込みコマンドXXとページアドレスAdd(L)、Add(R)をメモリデバイス11に供給した後、データDTをメモリコントローラ17からNANDフラッシュメモリ18に一度だけ供給した。
一方、図4に示す従来のコマンドシーケンスは、先ず、第1、第2のディストリクト31a、31bの同時書き込みコマンドXXを発行し、次いで、第1のディストリクト31aに対して、アドレスAdd(L)、及びデータDT、コマンド11hをNANDフラッシュメモリ18に供給する。この後、メモリコントローラ17は、第2のディストリクト31bに対するページアドレスAdd(R)、及びデータDTをNANDフラッシュメモリ18に順次供給し、次いで、コマンド10hを発行する。
図4に示すコマンドシーケンスの場合、同じデータDTを2度、メモリコントローラ17からNANDフラッシュメモリ18に供給する必要がある。
図5は、第1、第2のディストリクト31a、31bに同一データを書き込む場合の概略的な動作を示している。
メモリコントローラ17から第1、第2のディストリクト31a、31bに対する書き込みコマンドXXとページアドレスAdd(L)、Add(R)がNANDフラッシュメモリ18に供給されると、アドレスデコーダ41は、ページアドレスAdd(L)を第1のディストリクト31aに供給し、ページアドレスAdd(R)を第2のディストリクト31bに供給する。また、NANDフラッシュメモリ18に供給されたデータDTは、第1、第2のディストリクト31a、31bのデータレジスタ(XDL)38にそれぞれ保持される。この後、データレジスタ38に保持されたデータが、ロジック回路39、データレジスタ37、36、センスアンプ35にそれぞれ転送され、ページアドレスAdd(L)、Add(R)により指定されたページに同時に書き込まれる。
上記第1の実施形態によれば、第1、第2のディストリクト31a、31bに、同一のデータDTを書き込む書き込みコマンドXXを定義し、この書き込みコマンドXXに対応して、第1、第2のディストリクト31a、31bのページアドレスAdd(L)、Add(R)、及びデータDTを順次、NANDフラッシュメモリ18に供給することにより、第1、第2のディストリクト31a、31bに、同一のデータDTを同時に書き込むことができる。したがって、単一の書き込みコマンドXXにより、第1、第2のディストリクト31a、31bに同一データを同時に書き込むことが可能であり、従来のように、書き込みコマンドを2回発行する必要がない。このため、書き込み処理のスループットを向上することが可能である。
また、第1、第2のディストリクト31a、31bに同一データを同時に書き込んでいるため、書き込みデータが破壊される確率を低下することができる。このため、例えば撮影された写真データのように、再入力が困難なデータを確実に保存する場合、有効である。
なお、本実施形態では、NANDフラッシュメモリ18が2つのディストリクトを備える場合について説明したが、3つ以上のディストリクトを備える場合についても同様に適用可能である。また、第1、第2のディストリクト31a、31bに同一データを同時に書き込むための特別のコマンドを用意せず、NANDフラッシュメモリ18が書き込みデータを受け付けた場合、常に第1、第2のディストリクト31a、31bに同一データを同時に書き込むようにしてもよい。
(第2の実施形態)
図6は、第2の実施形態を示すものであり、例えばメモリコントローラ17の動作を示している。
第1の実施形態は、単一の書き込みコマンドXXにより、第1、第2のディストリクト31a、31bに、同一のデータDTを書き込んだ。
これに対して、第2の実施形態は、第1、第2のディストリクト31a、31bに同一のデータDTを書き込んだ直後に、第1、第2のディストリクト31a、31bの一方を読み出し、そのデータが正常である場合、第1、第2のディストリクト31a、31bに書き込んだデータDTの他方を無効とする。
すなわち、NANDフラッシュメモリ18にデータを書き込む場合において、書き込みが完了すると、NANDフラッシュメモリ18から正常に書き込みが終了した旨のステータスデータが出力される。しかし、この場合においても、ブロック内にデータを書き込むに従って、データが壊れている場合がある。データが破壊されているかどうかは、NANDフラッシュメモリ18からデータを読み出すことにより判明する。データが正常に読み出された場合、そのデータが記録されたブロックは正常と判断される。このため、正常と判断されたブロックを含むディストリクトのデータを残し、別のディストリクトの同一データを含むブロックが無効とされる。
具体的には、図6に示すように、第1の実施形態に従って、単一の書き込みコマンドXXにより、第1、第2のディストリクト31a、31bに、同一のデータDTが書き込まれる(ST11)。
この後、メモリコントローラ17から第1、第2のディストリクト31a、31bに書き込んだデータDTの一方を読み出す読み出しコマンドが発行される。すなわち、例えば第1のディストリクト31aに書き込まれたデータDTを読み出す読み出しコマンドが発行され、第1のディストリクト31aに書き込まれたデータDTが読み出される(ST12)。
第1のディストリクト31aから読み出されたデータDTは、メモリコントローラ17に転送され、ECC回路17aによりエラー訂正処理が実行される。このエラー訂正処理の結果、読み出されたデータが正常であるかどうかが判別される。すなわち、読み出されたデータに含まれたエラーが訂正可能な程度かどうかが判別される(ST13)。
この判別の結果、ECC回路17aで訂正可能な程度のエラーである場合、第1のディストリクト31aから読み出されたデータDTは、正常なデータであると判別され、第1、第2のディストリクト31a、31bの他方のデータ、すなわち、この場合、第2のディストリクト31bに書き込まれた第1のディストリクト31aと同一のデータが無効とされる(ST14)。すなわち、第2のディストリクト31bの第1のディストリクト31aと同一のデータを含むブロックが無効とされる。
一方、上記ステップST13において、読み出されたデータがエラー訂正不可能であると判別された場合、第1、第2のディストリクト31a、31bの他方、例えば第2のディストリクト31bに書き込まれたデータDTを読み出す読み出しコマンドが発行され、第2のディストリクト31bに、第1のディストリクト31aと同時に書き込まれたデータDTが読み出される(ST15)。
この第2のディストリクト31bから読み出されたデータDTは、メモリコントローラ17に転送され、ECC回路17aによりエラー訂正処理が実行される。このエラー訂正処理の結果、読み出されたデータが正常であるかどうかが判別される。すなわち、読み出されたデータに含まれたエラーが訂正可能な程度かどうかが判別される(ST16)。
この判別の結果、ECC回路17aで訂正可能な程度のエラーである場合、第2のディストリクト31bから読み出されたデータDTは、正常なデータであると判別され、第1、第2のディストリクト31a、31bの一方のデータ、すなわち、この場合、第1のディストリクト31aに書き込まれた第2のディストリクト31bと同一のデータを含むブロックが無効とされる(ST17)。
また、上記ステップST16の判別の結果、読み出されたデータがエラー訂正不可能である場合、上記第1、第2のディストリクト31a、31bの同一データを含む両ブロックがエラーであるため、本方式であっても訂正不能データであると認識される(ST18)。
尚、メモリコントローラ17による上記ブロックの無効化は、例えばデータのアクセスを禁止すればよく、物理的に消去する必要はない。また、無効とされたデータの消去は、メモリコントローラ17により必要に応じて実行される。
上記第2の実施形態によれば、第1、第2のディストリクト31a、31bに書き込んだデータDTの一方を読み出し、この読み出されたデータが正常である場合、第1、第2のディストリクト31a、31bに書き込んだデータDTの他方を含むブロックを無効としている。したがって、データを、単一のコマンドにより第1、第2のディストリクト31a、31bのうちの1つに確実に書き込むことが可能である。
例えば従来のように、データを第1、第2のディストリクト31a、31bのうちの一方にのみ書き込む場合、書き込みに失敗した場合、メモリコントローラ17は、再度書き込みコマンドを発行し、アドレス及びデータをメモリデバイス11に転送する必要があるが、RAM15には既に該当データが存在しない場合があり、例えばホスト20がデジタルスティルカメラである場合、撮影したデータは失われることになる。
しかし、第2の実施形態の場合、第1、第2のディストリクト31a、31bの両方に書き込んだデータの両方がエラー訂正不可能な場合は、稀であるため、データを確実に書き込むことが可能であるとともに、書き込みのスループットを向上することが可能である。
しかも、一方のディストリクトのデータが正常である場合、他方のディストリクトの同一データを含むブロックを無効とし、必要に応じて消去されるため、メモリの容量の低減を抑制することが可能である。
(第3の実施形態)
第2の実施形態は、第1、第2のディストリクト31a、31bの指定されたブロックにそれぞれ同一のデータを書き込んだ直後に、メモリコントローラ17から読み出しコマンドを発行して、例えば第1のディストリクト31aの指定されたブロックからデータを読み出し、このデータにエラーがないか、ECCにより訂正可能である場合、第1のディストリクト31aのデータは正常であると判断し、第2のディストリクト31bの同一のデータを含むブロックを無効とした。
これに対して、第3の実施形態は、第1、第2のディストリクト31a、31bにそれぞれ同一のデータを書き込んだ直後に、書き込んだデータを読み出さない。第3の実施形態の場合、第1、第2のディストリクト31a、31bに書き込まれたデータは、当面の間有効とする。すなわち、これら第1又は第2のディストリクト31a、31bに書き込まれたデータが読み出されるまでは、第1、第2のディストリクト31a、31bに書き込まれた両データとも有効と扱われる。
この状態において、図7に示すように、メモリコントローラ17は、CPU13からデータの読み出し要求を受けると(S21)、先ず、第1、第2のディストリクト31a、31bに同一データが書き込まれているかどうかを判別する(ST22)。この場合、メモリコントローラ17は、例えば書き込みコマンドXXの発行履歴及びページアドレスを保存し、この保存されたページアドレスと読み出しアドレスとが比較される。
上記判別の結果、第1、第2のディストリクト31a、31bに同一データが書き込まれている場合、図6に示すステップS12〜S18の動作が実行される(S23)。すなわち、第1、第2のディストリクト31a、31bの一方からデータが読み出される。この読み出されたデータが正常である場合、第1、第2のディストリクト31a、31bの他方に記録された同一データを含むブロックが無効とされる。
また、上記ステップ22の判別の結果、第1、第2のディストリクト31a、31bに同一データが書き込まれていないと判別された場合、通常の読み出し動作が実行される(ST24)。
上記第3の実施形態によれば、第1、第2のディストリクト31a、31bにデータを書き込んだ直後に、書き込みデータが正常かどうかを検証するための読み出しを行わないため、検証に要するオーバーヘッドを低減することができる。したがって、書き込み速度を高速化することが可能である。
尚、上記第1乃至第3の実施形態は、第1、第2のディストリクトを有するNANDフラッシュメモリの動作について説明した。しかし、これに限定されるものではなく、3つ以上のディストリクトを有するNANDフラッシュメモリに本実施形態を適用可能なことは言うまでもない。
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
11…メモリデバイス、18…NANDフラッシュメモリ、20…ホスト、21…ホストコントローラ、31a、31b…第1、第2のディストリクト、32…メモリセルアレイ。

Claims (10)

  1. それぞれメモリセルアレイを有する第1、第2のディストリクトと、
    前記第1、第2のディストリクトへ同時に第1のデータを書き込むための書き込みコマンド及びアドレスを受け、前記第1、第2のディストリクトに前記第1のデータを同時に書き込む制御部と
    を具備することを特徴とするメモリシステム。
  2. 前記制御部に、前記書き込みコマンドを発行するとともに、前記アドレスを供給するメモリコントローラをさらに具備し、
    前記メモリコントローラは、読み出しコマンドを発行して前記第1、第2のディストリクトの一方から前記書き込んだ第1のデータを読み出し、この読み出された第1のデータが正常であるかどうか判別することを特徴とする請求項1記載のメモリシステム。
  3. 前記メモリコントローラは、前記書き込みコマンドを発行し、アドレスを供給した直後に、前記読み出しコマンドを発行することを特徴とする請求項2記載のメモリシステム。
  4. 前記メモリコントローラは、前記読み出された第1のデータが正常である場合、前記第1、第2のディストリクトの他方に書き込まれた前記第1のデータを削除することを特徴とする請求項3記載のメモリシステム。
  5. 前記メモリコントローラは、読み出し要求を受けたとき、前記第1、第2のディストリクトに対する書き込み履歴に基づき、前記第1、第2のディストリクトに前記第1のデータが書き込まれているかどうかを判別し、書き込まれている場合、前記第1、第2のディストリクトの一方から前記書き込んだ第1のデータを読み出し、前記ホストデバイスは、この読み出された第1のデータが正常であるかどうか判別し、
    前記ホストデバイスは、前記履歴に基づき、前記第1、第2のディストリクトに前記第1のデータが書き込まれていない場合、通常の読み出し動作を実行することを特徴とする請求項3記載のメモリシステム。
  6. それぞれメモリセルアレイを有する第1、第2のディストリクトへ第1のデータを書き込むための書き込みコマンド及びアドレスを受け、
    前記第1、第2のディストリクトに同時に前記第1のデータを書き込むことを特徴とするメモリシステムの制御方法。
  7. 読み出しコマンドを発行して前記第1、第2のディストリクトの一方から前記書き込んだ第1のデータを読み出し、この読み出された第1のデータが正常であるかどうか判別することを特徴とする請求項6記載のメモリシステムの制御方法。
  8. 前記読み出しコマンドは、前記書き込みコマンドを発行し、アドレスを供給した直後に、発行することを特徴とする請求項7記載のメモリシステムの制御方法。
  9. 前記読み出された第1のデータが正常である場合、前記第1、第2のディストリクトの他方に書き込まれた前記第1のデータを削除することを特徴とする請求項8記載のメモリシステムの制御方法。
  10. 前記読み出しコマンドが発行されたとき、前記第1、第2のディストリクトに対する書き込み履歴に基づき、前記第1、第2のディストリクトに前記第1のデータが書き込まれているかどうかを判別し、書き込まれている場合、前記第1、第2のディストリクトの一方から前記書き込んだ第1のデータを読み出し、この読み出された第1のデータが正常であるかどうか判別し、
    前記履歴に基づき、前記第1、第2のディストリクトに前記第1のデータが書き込まれていない場合、通常の読み出し動作を実行することを特徴とする請求項8記載のメモリシステムの制御方法。
JP2011208105A 2011-09-22 2011-09-22 メモリシステムとその制御方法 Withdrawn JP2013069171A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011208105A JP2013069171A (ja) 2011-09-22 2011-09-22 メモリシステムとその制御方法
US13/531,894 US9063903B2 (en) 2011-09-22 2012-06-25 Memory system provided with NAND flash memory and method including simultaneously writing data to first and second memory arrays
US14/712,687 US20150248330A1 (en) 2011-09-22 2015-05-14 Memory system provided with nand flash memory and method including simultaneously writing data to first and second districts

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011208105A JP2013069171A (ja) 2011-09-22 2011-09-22 メモリシステムとその制御方法

Publications (1)

Publication Number Publication Date
JP2013069171A true JP2013069171A (ja) 2013-04-18

Family

ID=47912525

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011208105A Withdrawn JP2013069171A (ja) 2011-09-22 2011-09-22 メモリシステムとその制御方法

Country Status (2)

Country Link
US (2) US9063903B2 (ja)
JP (1) JP2013069171A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017045405A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9952784B2 (en) * 2015-03-11 2018-04-24 Sandisk Technologies Llc Multichip dual write
US10481799B2 (en) 2016-03-25 2019-11-19 Samsung Electronics Co., Ltd. Data storage device and method including receiving an external multi-access command and generating first and second access commands for first and second nonvolatile memories

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001167586A (ja) 1999-12-08 2001-06-22 Toshiba Corp 不揮発性半導体メモリ装置
JP2003140963A (ja) * 2001-11-07 2003-05-16 Mitsubishi Electric Corp 半導体記憶システム
US7290109B2 (en) * 2002-01-09 2007-10-30 Renesas Technology Corp. Memory system and memory card
WO2005069150A1 (en) * 2004-01-20 2005-07-28 Trek 2000 International Ltd. Portable data storage device using multiple memory devices
US8041879B2 (en) * 2005-02-18 2011-10-18 Sandisk Il Ltd Flash memory backup system and method
JP2008097403A (ja) 2006-10-13 2008-04-24 Nec Corp 不揮発性メモリ装置
JP2009157515A (ja) * 2007-12-25 2009-07-16 Toshiba Corp 半導体メモリコントローラおよび半導体メモリ
JP2009294869A (ja) 2008-06-04 2009-12-17 Toshiba Corp メモリシステム
CN101872644A (zh) * 2009-04-24 2010-10-27 威刚科技(苏州)有限公司 电子存储装置及其存储方法
JP2012119038A (ja) * 2010-12-02 2012-06-21 Toshiba Corp 不揮発性半導体メモリ及び記憶装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017045405A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
US10353852B2 (en) 2015-08-28 2019-07-16 Toshiba Memory Corporation Memory system that stores data redundantly

Also Published As

Publication number Publication date
US20130080683A1 (en) 2013-03-28
US20150248330A1 (en) 2015-09-03
US9063903B2 (en) 2015-06-23

Similar Documents

Publication Publication Date Title
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US20070214309A1 (en) Nonvolatile storage device and data writing method thereof
TWI446350B (zh) 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器
EP3964941B1 (en) Read-write method and memory device
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
JP2012507070A (ja) データをメモリ装置に再入力することなくページをプログラムするためのページバッファプログラムコマンド及び方法
US20220334960A1 (en) Method for managing flash memory module and associated flash memory controller and electronic device
TWI626541B (zh) 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TW200951979A (en) Data writing method for flash memory and storage system and controller using the same
KR20110121897A (ko) 사용자 장치 및 그것의 프로그램 페일 처리 방법
JP2012128643A (ja) メモリシステム
JPWO2009004674A1 (ja) 記憶装置、ディスク装置、書込み判定方法、制御装置
KR20130069364A (ko) 비휘발성 반도체 기억 장치 및 그 관리 방법
US20100195418A1 (en) Semiconductor memory device and system
JP2007094921A (ja) メモリカードとその制御方法
JP4956230B2 (ja) メモリコントローラ
JP2013069171A (ja) メモリシステムとその制御方法
JP2008191701A (ja) エラー回復処理方法および情報処理装置
US11487655B2 (en) Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations
JP2010128697A (ja) メモリシステム
JP4710918B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN110134322B (zh) 运用dram的储存装置及其相关数据处理方法
US10019186B2 (en) Data maintenance method for error control and data storage device using the same
US20140281226A1 (en) Memory card and host device
JP4235624B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141202