JP5556189B2 - 記憶装置およびデータの書込み方法 - Google Patents
記憶装置およびデータの書込み方法 Download PDFInfo
- Publication number
- JP5556189B2 JP5556189B2 JP2010009890A JP2010009890A JP5556189B2 JP 5556189 B2 JP5556189 B2 JP 5556189B2 JP 2010009890 A JP2010009890 A JP 2010009890A JP 2010009890 A JP2010009890 A JP 2010009890A JP 5556189 B2 JP5556189 B2 JP 5556189B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- page
- write
- memory
- storage unit
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 86
- 230000015654 memory Effects 0.000 claims description 173
- 238000012545 processing Methods 0.000 claims description 29
- 238000010586 diagram Methods 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 239000000758 substrate Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 108090000237 interleukin-24 Proteins 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
このように2ビット以上のデータを多値化して各セルに記憶させることにより、記憶装置の記憶容量を倍増できる。
特に、記憶装置においてページ単位でデータを書き込む場合、ページ単位でデータが消失する可能性がある。
ページ単位で消失したデータは、通常のエラー訂正処理などにより復旧することは難しい。
以下、メモリの記憶単位も、データ単位であるページと同様、「ページ」と称する。
よって、第1の観点では、書込みデータの書込み処理において、既にデータが書き込まれているメモリのページに対して、書込みデータの別のページを書き込まない。
説明は以下の順に行う。
1.第1実施形態(データの書込み時には不揮発性メモリの仮想ブロックへデータを書き込み、その後に仮想ブロックから最終的な格納先のブロックへデータを移動する例。)
2.第2実施形態(仮想ブロックから最終的な格納先のブロックへのデータ移動処理を、バックグランドで処理する例。)
[記憶装置1の全体構成]
図1は、本発明の第1実施形態に係る記憶装置1を含むデータ処理システムの構成を示すブロック図である。
図1の記憶装置1は、インタフェース部(I/F部)11、CPU(Central Processing Unit)12、内部RAM(Random Access Memory)13、アクセス制御部14、バッファRAM15、およびフラッシュメモリ16を有する。
図1の記憶装置1は、ホスト装置2に接続して使用するカード型の記憶装置1である。ホスト装置2は、たとえばコンピュータ装置である。
カード型の記憶装置1には、たとえばホスト装置2に対して着脱可能に装着されるMemory Stick(登録商標)、SDなどがある。
そして、記憶装置1は、複数ページのデータを多値化してフラッシュメモリ16に記憶する。
また、記憶装置1は、複数のページのデータの書込み処理において、まず、複数のページの書込みデータを1ページずつ別々に多値化して仮想ブロックに書き込む。その後、記憶装置1は、仮想ブロックから実際の格納先のブロックへ書込みデータを移動する。
インタフェース部11は、たとえばMemory Stick(登録商標)、SDなどの規格に準拠したものである。
これにより、記憶装置1は、ホスト装置2に接続される。
ホスト装置2は、記憶装置1にアクセスし、記憶装置1にデータを書き込み、記憶装置1からデータを読み出す。
フラッシュメモリ16は、電源供給が遮断された後にも、書き込まれたデータを保持記憶する。
フラッシュメモリ16は、後述するように複数のセルからなるページ(Page)単位で、データの書込みおよび読出しが可能である。
また、フラッシュメモリ16は、複数のページからなるブロック(Block)単位でデータの消去(初期化)が可能である。
内部RAM13は、インタフェース部11と、アクセス制御部14とに接続される。
そして、内部RAM13は、記憶装置1とホスト装置2との間で送受するデータを記憶する。
たとえば内部RAM13は、ホスト装置2から記憶装置1に書き込まれた書込みデータを記憶する。
また、内部RAM13は、フラッシュメモリ16から読み出した読出しデータを記憶する。
なお、内部RAM13は、たとえばフラッシュメモリ16の1ブロック分のデータを記憶できる容量であればよい。
バッファRAM15は、アクセス制御部14と、フラッシュメモリ16とに接続される。
そして、バッファRAM15は、フラッシュメモリ16に書き込むデータ、またはフラッシュメモリ16から読み出すデータを記憶する。
なお、バッファRAM15は、たとえばフラッシュメモリ16の1ページ分のデータを記憶できる容量であればよい。
そして、アクセス制御部14は、フラッシュメモリ16へのアクセスを管理し実行する。
たとえばアクセス制御部14は、フラッシュメモリ16に対するページ単位での書込み処理、ページ単位での読み出し処理、ブロック単位での消去(初期化)処理を実行する。
また、アクセス制御部14は、フラッシュメモリ16の書き込み先のページを選択し、内部RAM13から読み込んだ書込みデータをバッファRAM15に書き込む。
フラッシュメモリ16は、バッファRAM15から書込みデータを読み込んで多値化し、アクセス制御部14により選択されたページに書込み保存する。
書込みデータをフラッシュメモリ16に書き込むと、アクセス制御部14は、論物変換テーブルを作成または更新する。
なお、論物変換テーブルは、データの論理アドレスをフラッシュメモリ16の物理アドレスへ変換するためのテーブルである。
論物変換テーブルは、たとえばバッファRAM15などに記憶される。
具体的には、アクセス制御部14は、論物変換テーブルを用いて読出しデータのアドレスに対応するページを特定し、当該ページの読出しをフラッシュメモリ16に指示する。
フラッシュメモリ16は、読出しデータを含むページのデータをバッファRAM15に書き込む。
アクセス制御部14は、バッファRAM15から、読出しデータを読み込み、内部RAM13に書き込む。
そして、たとえば未使用の初期化されたブロックが不足している場合には、アクセス制御部14は、同一論理ページについての古いデータを記憶するブロックを探索し、当該ブロックからデータを消去する。
消去処理されたブロックは、初期化され、未使用のブロックになる。
CPU12は、インタフェース部11と、アクセス制御部14とに接続される。
そして、CPU12は、インタフェース部11を通じてホスト装置2と通信し、ホスト装置2から受信したアクセスコマンドを解釈し、コマンドを実行する。
また、CPU12は、アクセス制御部14に対して、フラッシュメモリ16へのアクセスを指示する。
アクセス制御部14は、インタフェース部11から内部RAM13に保存された書込みデータをページ単位で読み込み、フラッシュメモリ16に書き込む。
アクセス制御部14による書込み処理が完了すると、CPU12は、インタフェース部11からホスト装置2へ書込み完了を通知する。
アクセス制御部14は、フラッシュメモリ16から読出しデータを読み込み、内部RAM13に書き込む。
内部RAM13に読出しデータが保存されると、CPU12は、インタフェース部11からホスト装置2へ読出し準備完了を通知する。
図2は、図1のフラッシュメモリ16の概略ブロック図である。
フラッシュメモリ16は、メモリアレイ21、ロー回路 (Row Circuit) 22、カラム回路 (Column Circuit) 23、ウェル電圧制御回路24を有する。
これらの回路21〜24は、たとえば図2のレイアウトにより、図示しない半導体基板に形成される。
図2のメモリアレイ21は、m個のブロックBLK(1)〜BLK(m)を有し、各ブロックはn個のページP(1)〜P(n)を有する。
通常、フラッシュメモリ16は、数千個のブロックを有する。
各ページは、図示しない複数のセルを有する。
セルは、フローティングゲートを有する複数のトランジスタを有する。
そして、セルは、このフローティングゲートにより、たとえば2ビットのデータが多値化された4種類の閾値電圧を保持する。
複数のセルには、その配列にしたがって複数のワード線WLが接続される。複数のワード線WLは、ロー回路22に接続される。
複数のセルには、その配列にしたがって複数のビット線BLが接続される。複数のビット線BLは、カラム回路23に接続される。
ロー回路22およびカラム回路23は、複数のメモリセルを、ページ単位またはブロック単位で選択する。
そして、カラム回路23は、たとえば選択したページの各セルの閾値電圧を読み込み、各セルの閾値電圧に対応する2ビットのデータを生成し、読出しデータとして出力する。
ウェル電圧制御回路24は、複数のセルが形成される、たとえばN型の半導体基板のPウェルの電圧を制御する。
Pウェルの電圧を制御することにより、各セルには、2ビットに対応する4種類の閾値電圧のいずれかの電圧が書き込まれる。
図3の縦軸は閾値電圧であり、横軸は複数のセルでの閾値電圧の分布割合である。
図3には、各セルに書き込む4種類の閾値電圧として、第1閾値電圧TH1、第2閾値電圧TH2、第3閾値電圧TH3、第4閾値電圧TH4が記載されている。
第1閾値電圧TH1は、0Vより低い閾値電圧であり、2ビットの値、たとえば「11」に対応する。
第1閾値電圧TH1は、ブロック単位での消去処理によりセルに書き込まれる。
第2閾値電圧TH2は、は、0Vより高い閾値電圧であり、2ビットの値、たとえば「10」に対応する。
第2閾値電圧TH2は、ページ単位でのデータ書込み処理によりセルに書き込まれる。
第3閾値電圧TH3は、第2閾値電圧TH2より高い閾値電圧であり、2ビットの値、たとえば「01」に対応する。
第3閾値電圧TH3は、ページ単位でのデータ書込み処理によりセルに書き込まれる。
第4閾値電圧TH4は、第3閾値電圧TH3より高い閾値電圧であり、2ビットの値、たとえば「00」に対応する。
第4閾値電圧TH4は、ページ単位でのデータ書込み処理によりセルに書き込まれる。
そのため、2ビットを多値化したデータを書き込む処理では、第1閾値電圧TH1が書き込まれたセルに対して、第2閾値電圧TH2の第1サイクルと、第3閾値電圧TH3の第2サイクルと、第4閾値電圧TH4の第3サイクルとを実行する必要がある。
図4には、複数のブロックPhysical Block 0、Physical Block 1、・・・が図示されている。図4において、各行が1個のブロックに対応する。各行のブロックは、複数のページPhysical Page 0、Physical Page 1、・・・により構成されている。
そして、たとえば図4の最も上の第1行の左端2個のページは、多値化され、フラッシュメモリ16の共通するセル群に書き込まれる。すなわち、フラッシュメモリ16の1個のページに書込まれる。
たとえば、左端から1番目のページのビットの値が0であり、2番目のページのビットの値が1である場合、これら2ビットの値が書き込まれるセルには、図3の第3閾値電圧TH3が書き込まれる。
図5には、書込みデータの複数のページPhysical Page 0〜Physical Page 15が図示されている。
図5において、書込みデータの複数のページは、グループ1(Group 1)とグループ2(Group 2)とに分類される。図5において同一行に図示されたグループ1のページとグループ2のページとは、多値化され、フラッシュメモリ16の1個のページに書込まれる。
図5においては、16個の書込みデータのページPhysical Page 0〜Physical Page 15は、フラッシュメモリ16の8個のページP1〜P8に書き込まれる。
たとえば書込みデータのページ0(Physical Page 0)およびページ1(Physical Page 1)は、フラッシュメモリ16の第1ページP1に書き込まれる。
図6には、図5の16個の書込みデータのページ(Physical Page 0〜15)が、フラッシュメモリ16の1個のブロック(Physical Block)に対応するように展開して描画されている。
この場合において書込みデータの第7ページ(Physical Page 7)の書込み処理に失敗すると、第7ページと共通するセル群に既に書き込まれた第6ページ(Physical Page 6)のデータは消失する可能性がある。
よって、書込みデータの第6ページ(Physical Page 6)は、書込みデータの第7ページ(Physical Page 7)の書込み処理の失敗によりダメージを受けることになる。
このように図5のGroup1とGroup2とで同じ行となっている組み合わせのページ(例:Physical Page0とPhysical Page1)は、フラッシュメモリ16上の同じページに保存される。よって、片方の書き込み時にエラーが発生すると、もう片方のデータも一緒に破損してしまう可能性がある。
また、図5において同じ行となっている組み合わせのページには、書き込みが早いページと、遅いページとが傾向的に存在する。
以下では、図5のGroup1のページの書き込みが、Group2のページよりも早く、最初に書き込みがなされるものとして説明する。
図7は、図1のCPU12が、フラッシュメモリ16へのデータ書込み時に使用する仮想ブロック31の説明図である。
図7(A)および(B)は、フラッシュメモリ16についての初期化された未使用のブロックPhysical Block A,Physical Block Bである。
各ブロックは、16個の未使用のページP0〜P15で構成される。
なお、アクセス制御部14は、フラッシュメモリ16の複数組のブロックについて、複数の仮想ブロック31を生成してもよい。
仮想ブロック31は、図7(A)のブロックAから選択された8個の未使用のページP0、P2、P4、P6、・・・、P14と、図7(B)のブロックBから選択された8個の未使用のページP0、P2、P4、P6、・・・、P14とで構成される。
ところで、仮想ブロック31は、フラッシュメモリ16の各組のブロックにおいて、書き込みの早いグループ(図5で言うグループ1)のページだけを使用して設定される。
これにより、フラッシュメモリ16の1個のブロックのすべてのページを仮想ブロック31に設定する場合より、各ページの平均的な書込み速度は、向上する。
また、フラッシュメモリ16の各ブロックについてデータが書き込まれるページを考えた場合、仮想ブロック31の各ページは、図5のグループ1とグループ2とのようにペアの関係に無い。
よって、仮想ブロック31の1個のページにおいて書込みエラーが仮に発生しても、その書き込み中のページのデータが破損するだけである。
仮想ブロック31の他のページのデータは、消失するおそれがない。
同様に、4ビットを多値化する場合には、仮想ブロック31は、フラッシュメモリ16の4個の未使用のブロックにより定義すればよい。
また、5ビットを多値化する場合には、仮想ブロック31は、フラッシュメモリ16の5個の未使用のブロックにより定義すればよい。
この未使用の仮想ブロック31に対する書込み処理を実行することにより、仮想ブロック31に対応するフラッシュメモリ16の未使用のブロックの各セル群には、当該各セル群に書き込み可能な2ページのデータ内の、第1ページ分のデータのみが書き込まれる。
なお、仮想ブロック31は、たとえば内部RAM13、バッファRAM15、フラッシュメモリ16などの記憶領域に、CPU12およびアクセス制御部14などの記憶装置1の制御部によりアクセス可能に保存されればよい。
次に、図1の記憶装置1の書込み処理について詳しく説明する。
図8は、図1の記憶装置1の書込みデータの書込み処理のフローチャートである。
記憶装置1が受信した書込みデータは、内部RAM13に書き込まれる。
ホスト装置2が記憶装置1に書き込む書込みデータは、内部RAM13に蓄積保存される。
CPU12は、たとえばホスト装置2からの書き込み指示がインタフェース部11から入力されたり、または内部RAM13に所定量以上のデータが蓄積されたりすることにより、書込み処理を開始する。
CPU12は、フラッシュメモリ16について設定された複数の仮想ブロック31から、未使用の仮想ブロック31を選択する。
そして、CPU12は、アクセス制御部14に、選択した仮想ブロック31へのデータ書込みを指示する。
よって、未使用の仮想ブロック31に対応するフラッシュメモリ16の複数のブロックは、書込みデータを記憶していない。
そして、アクセス制御部14は、内部RAM13に記憶された書込みデータを1ページずつ読み込み、仮想ブロック31の未使用の各ページに書込む。実際には、アクセス制御部14は、仮想ブロック31の未使用の各ページに対応するフラッシュメモリ16の各ページに、書込みデータを1ページずつ書き込む。
この仮想ブロック31の各ページへの書込み処理では、フラッシュメモリ16についての図5のグループ1のページのみに書込み、グループ2のページには書込まない。
このため、アクセス制御部14は、たとえば各書き込み処理において、第1閾値電圧TH1が書き込まれたセルに対して、たとえば図3に示す4個の閾値のうち、第3閾値電圧TH3をセルに書き込む書込みサイクルのみを実行すればよい。
これにより、書込み後のセルには、2ビットのデータ「01」に対応する第3閾値電圧TH3、または2ビットのデータ「11」に対応する第1閾値電圧TH1が保持される。
この場合、2ビットのデータの内の上位ビットが、内部RAM13から読み込んだデータのビットに対応する。
これにより、2ページ分を多値化して書込む場合のように、第3閾値電圧TH3の第2サイクルと、第4閾値電圧TH4の第3サイクルとを実行する必要が無くなり、仮想ブロック31の各ページへの書込み処理を高速化できる。
なお、いずれかのページでの書込み処理が正常に終了しなかった場合、アクセス制御部14は、当該ページを内部RAM13から再度読み込み、再書込み処理を実行する。
CPU12は、インタフェース部11からホスト装置2へ書込み完了通知を送信する。
アクセス制御部14は、まず、仮想ブロック31からフラッシュメモリ16のブロックへのデータのコピー処理を実行する(ステップST4)。
そして、アクセス制御部14は、仮想ブロック31の有効ページを未使用のブロックへコピーする処理を開始する(ステップST12)。
具体的には、アクセス制御部14は、仮想ブロック31から、有効ページのデータを読み込む(ステップST13)。
また、アクセス制御部14は、読み込んだ有効ページのデータを、選択したフラッシュメモリ16の未使用のブロックに書き込む(ステップST14)。
なお、有効ページとは、同一論理アドレスの最新のページを意味する。
データコピー処理が成功している場合、アクセス制御部14は、当該処理を終了する。
いずれかの有効ページのデータコピー処理が成功していない場合、アクセス制御部14は、ステップST11からST16までの処理を繰り返す。
なお、コピーするデータがシステムデータである場合、アクセス制御部14は、仮想ブロック31からフラッシュメモリ16のブロックへのデータコピー処理は、1ページずつ多値化し、フラッシュメモリ16の各ページに1ページずつ書き込む。
よって、コピー後のシステムデータは、図7(A)および(B)のブロックと同様の状態で、フラッシュメモリ16の他のブロックにコピーされる。
なお、データコピー処理に失敗したフラッシュメモリ16のブロックが存在する場合、アクセス制御部14は、仮想ブロック31とともに当該ブロックの消去処理を実行する(ステップST5)。
そして、書き込んだデータがシステムデータである場合、アクセス制御部14は、コピー先のブロックについて、追加データの書込み禁止を設定する(ステップST7)。
なお、システムデータには、たとえばFAT、Directory Entry、システムのセキュリティデータなどがある。
システムデータが破損すると、記憶装置1に記憶させたファイルが見えなくなったり、記憶装置1を用いた起動処理ができなくなったりする可能性がある。
この場合には、アクセス制御部14は、図8のステップST6、ST7を実行する必要が無い。図8のステップST6、ST7のデータの種類に応じた特別な判断および処理をしなくとも、データが書込まれた第1ページと組になっている第2ページへのデータ追加書込みの失敗により、第1ページのデータが消失することはない。
これにより、第1実施形態では、単位ビット当たりのコストを大幅に削減できる。
しかも、第1実施形態では、仮想ブロック31への各ページのデータの書き込み時には書込みサイクルを省略することにより、書込みデータの単位ページ当たりの書込み時間を削減している。
よって、第1実施形態では、データを多値化して記憶する記憶装置1において不利となる書込み速度の低下を抑制し、かつ、書込み後のデータ保持の信頼性を向上できる。
よって、第1実施形態では、書込み処理中に、メモリ中の既にデータを記憶しているページに対しての追加データの書込み処理が発生しない。
そのため、第1実施形態では、追加ページの書込み処理による、当該書込み対象のページからのデータ消失を防止できる。
フラッシュメモリ16に書き込んだデータは、フラッシュメモリ16への書き込み処理の完了時に消失することがなくなり、確実にフラッシュメモリ16に記憶される。
これに対して、たとえば複数ページ分の書込みデータを、フラッシュメモリ16の各ページに複数ページずつ書き込む場合に、各ページの2回目以降の書込みに失敗すると、当該各ページに既に書き込まれたデータがページ単位で消失する可能性がある。
よって、第1実施形態では、フラッシュメモリ16の各ページに対する書込み処理において、フラッシュメモリ16の各ページに対して最も効率の良い書込み処理を採用できる。
具体的には、第1実施形態では、フラッシュメモリ16の未使用のページに1ページ分のデータを書き込む場合、たとえば第3閾値の1種類の値の書込み処理を実行する。
すなわち、第1実施形態では、書込みデータの各ページの書込み処理において、フラッシュメモリ16の各ページに対して1ビット分のデータのみを書き込む場合と同様の1サイクルの書込み処理を採用する。
このため、第1実施形態では、フラッシュメモリ16の各ページへの書込み処理において、多値データがとり得る値(ここでは4個)のすべての値の書込みサイクル(たとえば3サイクル)を実行する必要が無くなる。
その結果、第1実施形態では、フラッシュメモリ16の各ページに対して書込みデータの複数のページを書き込む場合に比べて、書き込みデータの1ページ当たりの書込み時間を短縮できる。
第1実施形態では、複数ページの書込みデータをフラッシュメモリ16に書き込む場合の書込み時間を総合的に短縮できる。
これにより、第1実施形態では、システムデータと他のデータとを混在して記憶する記憶装置1において、システムデータの保持の信頼性をさらに向上できる。
これに対して、システムデータ以外のデータを記憶するページについては、他のページのデータの追加書き込みがされる。
そのため、このページについては、通常通り、他のページのデータが追加書込みされる。
よって、第1実施形態では、多値化による記憶容量の倍増効果を損なうことなく、システムデータの信頼性を向上できる。
この際、第1実施形態では、仮想ブロック31に一時記憶させたデータについての他のブロックへの書き込みが完了した後に、仮想ブロック31から当該データが消去される。
よって、第1実施形態では、仮想ブロック31から他のブロックへのデータの移動処理中には、フラッシュメモリ16に書き込まれたデータが仮想ブロック31において存在する。
そのため、第1実施形態では、当該他のブロックへのデータ移動に失敗し、当該他のブロックに既に書き込んだデータが消失することがあっても、仮想ブロック31に保持しているデータを用いて、当該他のブロックに対して消失したデータを再書込みできる。
第1実施形態では、この一連の処理により、フラッシュメモリ16に書き込む1ブロック分の書込みデータを、フラッシュメモリ16の1つのブロックに保存することができる。
第2実施形態に係る記憶装置1の構成は、図1から図7に示す第1実施形態の記憶装置1と同様である。
ただし、仮想ブロック31の消去処理と、書込みデータの書込み処理とが、第1実施形態と異なる。
具体的には、仮想ブロック31からフラッシュメモリ16の他のブロックへのデータ移動処理を、データ書込み処理とは別のバックグランド処理により実行する。
なお、第2実施形態に係る記憶装置1の各構成要素は、第1実施形態の同名の構成要素と同じ機能を有するものであり、第1実施形態と同一の符号を使用してその説明を省略する。
アクセス制御部14は、図10の処理を、書込み処理とは別に繰り返し実行する。
そして、アクセス制御部14は、空いている未使用の空きの仮想ブロック31が存在するか否かを判断する(ステップST22)。
未使用の仮想ブロック31が残存する場合、アクセス制御部14は、仮想ブロック31のデータコピー処理を終了する。
アクセス制御部14は、選択した仮想ブロック31のデータを、フラッシュメモリ16の他のブロックへのコピー処理を実行する(ステップST24)。
このコピー処理は、図9に示すコピー処理でよい。
仮想ブロック31のデータについてのフラッシュメモリ16の他のブロックへのコピー処理が完了すると、アクセス制御部14は、当該仮想ブロック31の消去処理を実行する(ステップST25)。
これにより、アクセス制御部14は、未使用の仮想ブロック31を生成する。
記憶装置1がホスト装置2から書込みデータを受信すると(ステップST31)、記憶装置1は、インタフェース部11により書込みデータを受信し、内部RAM13に蓄積保存する。
次に、記憶装置1のCPU12は、内部RAM13に蓄積された書込みデータをフラッシュメモリ16への書込み処理を開始する。
CPU12は、たとえばホスト装置2からの書き込み指示がインタフェース部11から入力されたり、または内部RAM13に所定量以上のデータが蓄積されると、フラッシュメモリ16へ書込み処理を開始する。
そして、未使用の空きとなる仮想ブロック31が残っていない場合、CPU12は、書込み処理とは別の指示により、仮想ブロック31のデータ移動処理をアクセス制御部14に指示する。
アクセス制御部14は、図10の処理により、仮想ブロック31のデータをフラッシュメモリ16の他のブロックへコピーする(ステップST34)。
また、アクセス制御部14は、当該仮想ブロック31のデータを消去する(ステップST35)。
これにより、アクセス制御部14は、未使用の仮想ブロック31を生成する。
CPU12は、まず、未使用の仮想ブロック31を選択し、選択した仮想ブロック31へのデータ書込みをアクセス制御部14に指示する(ステップST36)。
アクセス制御部14による仮想ブロック31への書込み処理が終了すると、CPU12は、ホスト装置2へ書込み完了を通知する(ステップST37)。
CPU12は、インタフェース部11からホスト装置2へ書込み完了通知を送信する。
この場合、CPU12は、たとえばフラッシュメモリ16のすべてのブロックについて仮想ブロック31を設定すればよい。
これにより、書込みデータの書込み処理では、アクセス制御部14は、フラッシュメモリ16の約半分の容量の仮想ブロック31について順番に且つ高速に大量のデータを書き込むことができる。
また、アクセス制御部14は、必要に応じて適宜、図10の未使用の仮想ブロック31の生成処理を実行することにより、データロストを避けつつ、データの書込み速度の向上を図ることができる。
すなわち、フラッシュメモリ16へのデータ書込み時の書き込み処理は、フラッシュメモリ16に対する1回の書込み処理により終了する。
よって、第2実施形態では、フラッシュメモリ16への書込みデータの書込み時間を短縮できる。
これに対して、第1実施形態では、仮想ブロック31への書込みデータの書込み処理と、仮想ブロック31からフラッシュメモリ16の他のブロックへのデータ移動処理とをシーケンシャルに実施しているため、1つのデータについて2回の書込み処理が発生する。
この他にも例えば、フラッシュメモリ16は、書込みデータの3ページ以上についての3ビット以上のデータを多値化し、フラッシュメモリ16に記憶させてもよい。
この場合、制御部は、フラッシュメモリ16の未使用のページに最初に書込まれる第1ページを組み合わせて仮想ブロック31を準備し、書込みデータの書込み処理においては、この仮想ブロック31に対してデータを書き込めばよい。
この他にも例えば、制御部は、仮想ブロック31によらずに、フラッシュメモリ16の未使用のページを個別に選択し、選択した当該ページに対して、1ページ分の書込みデータを書き込んでもよい。
この他にも例えば、制御部は、仮想ブロック31の各ページとともに多値化される他のページの書込みデータが任意の値であるとしてデータを多値化してもよい。
さらに他にも例えば、制御部は、仮想ブロック31の各ページに対応するフラッシュメモリ16のページに、多値化処理していない1ビットのデータを書き込んでもよい。
この他にも例えば、記憶装置1は、UV−EPROM、EEPROMなどの不揮発性メモリを有し、これらの不揮発性メモリにデータを書き込んで保持してもよい。
また、記憶装置1は、RAMなどの揮発性メモリを有し、この揮発性メモリにデータを書き込んでもよい。
この他にも例えば、記憶装置1は、USBメモリ、SSD、eMMCなどの内蔵型の記憶モジュールなどであってもよい。eMMCには、ブート可能な記憶モジュールがある。
この他にも例えば、ホスト装置2は、携帯電話機、電子機器などであってもよい。
Claims (7)
- ページ単位でのデータ書き込みが可能な複数の記憶単位を有し、各記憶単位に複数ページ分の書込みデータを多値化して記憶可能なメモリと、
前記メモリに対してデータを書き込む場合、前記メモリの複数の記憶単位から書き込み先の記憶単位を選択し、選択した前記メモリの各記憶単位に、当該書き込みに係るデータのページを含む複数のページによる2ビット以上のデータを多値化して書き込む制御部と
を有し、
前記制御部は、
複数ページ分の書込みデータを前記メモリに書き込む場合、当該複数ページ分の書込みデータを、ページ毎に多値化し、
前記メモリの未使用の第1記憶単位群、または、前記メモリ以外の他のメモリの未使用の記憶単位群を仮想領域として、該仮想領域の互いに異なる未使用の複数の記憶単位に前記多値化された複数ページ分の書込みデータを1ページずつ書き込み、
前記仮想領域へのデータ書き込み後に、当該書き込まれたデータを前記メモリの前記第1記憶単位群とは異なる第2記憶単位群へコピーし、
前記コピーの後に前記仮想領域のデータを消去する、
記憶装置。 - 前記制御部は、
前記第2記憶単位群へのデータのコピーに際し、未使用の記憶単位群を選択して、選択した未使用の記憶単位群に第1記憶単位群に書き込まれているデータをコピーする、
請求項1記載の記憶装置。 - 前記書込みデータの種類を判断し、当該書込みデータがシステムデータである場合、当該システムデータが1ページずつ書き込まれる前記メモリの第2記憶単位群に対して、他のページのデータの追加書き込みをしない、
請求項1または2記載の記憶装置。 - 前記制御部は、
前記複数のページによる2ビット以上のデータを多値化して書き込む場合に、当該多値がとり得る複数の値のうちの1個の値の書込み処理として、前記仮想領域の各未使用の第1記憶単位群に前記書込みデータを1ページずつ書き込む、
請求項1から3のいずれか一項記載の記憶装置。 - 前記制御部は、
複数ページ分の書込みデータを前記メモリの複数のページに1ページずつ書き込む場合、前記多値化された複数ページ分の書込みデータを、前記メモリの前記第1記憶単位群で構成される仮想ブロックへ1ページずつ書き込み、
前記仮想ブロックに書き込まれたデータを、前記メモリの前記仮想ブロックに属さない前記第2記憶単位群で構成される他のブロックにコピーし、当該他のブロックへのコピーが完了した後に前記仮想ブロックからデータを消去する、
請求項1から4のいずれか一項記載の記憶装置。 - 前記制御部は、
前記メモリに対する複数ページ分の書込みデータの書込み処理を、前記仮想ブロックへの書込み完了により終了し、
前記書込み処理以外のバックグランド処理により、前記仮想ブロックから前記他のブロックへデータを移動する、
請求項5記載の記憶装置。 - ページ単位でのデータ書き込みが可能な複数の記憶単位を有し、各記憶単位に複数ページ分の書込みデータを多値化して記憶可能なメモリに対して、複数ページ分の書込みデータを書き込む場合に、前記メモリの複数の記憶単位から、書き込み先となる未使用の第1記憶単位群を選択する工程と、
前記書込みデータの各ページを、1ページずつ別々に多値化する工程と、
前記書込みデータの各ページについて多値化されたデータを、選択した前記未使用の第1記憶単位群に1ページずつ書き込む工程と、
前記第1記憶単位群へのデータ書き込み後に、当該書き込まれたデータを前記メモリの前記第1記憶単位群とは異なる第2記憶単位群へコピーする工程と、
前記第2記憶単位群へのコピーの後に前記第1記憶単位群のデータを消去する工程と、
を有するデータの書込み方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010009890A JP5556189B2 (ja) | 2010-01-20 | 2010-01-20 | 記憶装置およびデータの書込み方法 |
US13/004,987 US8347056B2 (en) | 2010-01-20 | 2011-01-12 | Storage apparatus and data writing method |
CN201110007169.6A CN102129409B (zh) | 2010-01-20 | 2011-01-13 | 存储装置和数据写入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010009890A JP5556189B2 (ja) | 2010-01-20 | 2010-01-20 | 記憶装置およびデータの書込み方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011150461A JP2011150461A (ja) | 2011-08-04 |
JP5556189B2 true JP5556189B2 (ja) | 2014-07-23 |
Family
ID=44267496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010009890A Active JP5556189B2 (ja) | 2010-01-20 | 2010-01-20 | 記憶装置およびデータの書込み方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8347056B2 (ja) |
JP (1) | JP5556189B2 (ja) |
CN (1) | CN102129409B (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9190162B2 (en) * | 2012-03-13 | 2015-11-17 | Micron Technology, Inc. | Nonconsecutive sensing of multilevel memory cells |
KR102431238B1 (ko) * | 2017-10-11 | 2022-08-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000173281A (ja) * | 1998-12-04 | 2000-06-23 | Sony Corp | 半導体記憶装置 |
JP4282197B2 (ja) * | 2000-01-24 | 2009-06-17 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
JP2003022687A (ja) * | 2001-07-09 | 2003-01-24 | Mitsubishi Electric Corp | 半導体記憶装置 |
JP4357331B2 (ja) * | 2004-03-24 | 2009-11-04 | 東芝メモリシステムズ株式会社 | マイクロプロセッサブートアップ制御装置、及び情報処理システム |
JP2006114078A (ja) * | 2004-10-12 | 2006-04-27 | Toshiba Corp | 不揮発性半導体記憶装置及びその動作方法 |
CN101194238B (zh) * | 2005-06-24 | 2010-05-19 | 松下电器产业株式会社 | 存储器控制器、非易失性存储装置、非易失性存储系统及数据写入方法 |
CN101176074B (zh) * | 2005-12-09 | 2010-12-15 | 松下电器产业株式会社 | 非易失性存储器件,写入数据的方法,和读出数据的方法 |
US7388781B2 (en) * | 2006-03-06 | 2008-06-17 | Sandisk Il Ltd. | Multi-bit-per-cell flash memory device with non-bijective mapping |
JP4805696B2 (ja) * | 2006-03-09 | 2011-11-02 | 株式会社東芝 | 半導体集積回路装置およびそのデータ記録方式 |
JP4866117B2 (ja) * | 2006-03-22 | 2012-02-01 | パナソニック株式会社 | 不揮発性記憶装置、そのデータ書き込み方法、不揮発性記憶システム及びメモリコントローラ |
KR101185617B1 (ko) * | 2006-04-04 | 2012-09-24 | 삼성전자주식회사 | 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법 |
WO2007132456A2 (en) * | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
JP2008077810A (ja) * | 2006-09-25 | 2008-04-03 | Toshiba Corp | 不揮発性半導体記憶装置 |
KR100799688B1 (ko) * | 2007-01-03 | 2008-02-01 | 삼성전자주식회사 | 백업 회로를 갖는 메모리 시스템 및 그것의 프로그램 방법 |
JP2008299919A (ja) * | 2007-05-30 | 2008-12-11 | Sony Corp | 記憶装置及びデータの書き込み方法 |
JP2009104729A (ja) * | 2007-10-24 | 2009-05-14 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP2009129477A (ja) * | 2007-11-20 | 2009-06-11 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP5142685B2 (ja) * | 2007-11-29 | 2013-02-13 | 株式会社東芝 | メモリシステム |
JP2009230407A (ja) * | 2008-03-21 | 2009-10-08 | Toshiba Corp | データの更新方法、メモリシステムおよびメモリデバイス |
US8331168B2 (en) * | 2009-04-30 | 2012-12-11 | International Business Machines Corporation | Increased capacity heterogeneous storage elements |
JP2012212487A (ja) * | 2011-03-30 | 2012-11-01 | Toshiba Corp | メモリシステム |
-
2010
- 2010-01-20 JP JP2010009890A patent/JP5556189B2/ja active Active
-
2011
- 2011-01-12 US US13/004,987 patent/US8347056B2/en active Active
- 2011-01-13 CN CN201110007169.6A patent/CN102129409B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102129409B (zh) | 2015-08-19 |
US20110179244A1 (en) | 2011-07-21 |
CN102129409A (zh) | 2011-07-20 |
JP2011150461A (ja) | 2011-08-04 |
US8347056B2 (en) | 2013-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542675B (zh) | 存储器系统及其操作方法 | |
CN107957961B (zh) | 存储设备、存储系统和计算设备 | |
CN107025178B (zh) | 存储器控制器、非易失性存储器系统及其操作方法 | |
US9805799B2 (en) | Devices and methods of managing nonvolatile memory device having single-level cell and multi-level cell areas | |
US9239782B2 (en) | Nonvolatile memory device and program method thereof | |
KR101861170B1 (ko) | 마이그레이션 관리자를 포함하는 메모리 시스템 | |
KR101635446B1 (ko) | 반도체 메모리 장치의 블록 병합 방법 | |
US10168940B2 (en) | Data storage using SLC and TLC memory banks and data maintenance method thereof | |
US20080239811A1 (en) | Method for controlling a non-volatile semiconductor memory, and semiconductor storage system | |
CN103137199A (zh) | 存储器系统、数据存储设备、存储卡和固态驱动器 | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US20220277802A1 (en) | Grown bad block management in a memory sub-system | |
CN113031856A (zh) | 存储器子系统中的断电数据保护 | |
KR20200086143A (ko) | 저장 장치 및 그것의 데이터 처리 방법 | |
JP4843222B2 (ja) | 半導体記憶装置の制御方法、メモリカード、及びホスト機器 | |
JP2009048680A (ja) | 記憶装置 | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN115145755A (zh) | 用于重新映射存储器子系统中的不良块的系统和方法 | |
CN115454327A (zh) | 基于存储器单元的健康特性进行媒体管理操作 | |
JP5556189B2 (ja) | 記憶装置およびデータの書込み方法 | |
CN111338995B (zh) | 数据存储装置及操作数据存储装置的方法 | |
CN113936721A (zh) | 存储器系统、存储器装置和操作存储器装置的方法 | |
CN114981785A (zh) | 基于改变高速缓存中数据块的写入模式执行媒体管理操作 | |
CN109753230B (zh) | 控制数据存储装置运作的方法及数据存储装置及其控制器 | |
JP4558052B2 (ja) | メモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130107 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131016 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131029 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140218 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140414 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140520 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5556189 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |