JP4956593B2 - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP4956593B2
JP4956593B2 JP2009207387A JP2009207387A JP4956593B2 JP 4956593 B2 JP4956593 B2 JP 4956593B2 JP 2009207387 A JP2009207387 A JP 2009207387A JP 2009207387 A JP2009207387 A JP 2009207387A JP 4956593 B2 JP4956593 B2 JP 4956593B2
Authority
JP
Japan
Prior art keywords
page
block
logical
memory
pages
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.)
Expired - Fee Related
Application number
JP2009207387A
Other languages
English (en)
Other versions
JP2011059889A (ja
Inventor
親二 川野
仁司 下野
和則 佐藤
恵里子 千葉
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 JP2009207387A priority Critical patent/JP4956593B2/ja
Priority to US12/821,669 priority patent/US8301850B2/en
Priority to KR1020100085790A priority patent/KR101172976B1/ko
Publication of JP2011059889A publication Critical patent/JP2011059889A/ja
Application granted granted Critical
Publication of JP4956593B2 publication Critical patent/JP4956593B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • 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

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)

Description

本発明は、多値(multi-level)フラッシュメモリのデータ書き込み技術に関する。
フラッシュメモリ、特に、NANDフラッシュメモリは、ストレージメモリとして、メモリカード、SSD(solid state drive)など、様々な分野に適用され始めている。これらの分野において、フラッシュメモリシステムを構成する場合、データ書き込み速度の高速化が一つの重要な課題となっている。
ところで、データ転送速度の向上を図る技術としてインターリーブ(interleaving)動作が知られている(例えば、特許文献1〜4を参照)。従って、この技術をフラッシュメモリに適用すれば、データ書き込み速度の高速化という課題を解決できる可能性がある。
しかし、フラッシュメモリは、メモリセル(フィジカルページ)に対してデータの上書きができない、という特有のデータ書き込み方式を有する。即ち、データの上書き時には、オールドブロックの撤収を行い、ニューブロックにデータを書き直す必要がある。
従って、データ書き込み速度の高速化は、このようなフラッシュメモリのデータ書き込み方式にマッチしたインターリーブ動作を開発することにより実現される。
特開2007−517320号公報 特開2008−524705号公報 特開2007−522542号公報 特開2008−33801号公報
本発明は、フラッシュメモリに対する高速書き込みをインターリーブ動作により実現するためのメモリシステムを提案する。
本発明の例に係わるメモリシステムは、第1テンポラリメモリと第1ブロックとを有する第1メモリチップと、第2テンポラリメモリと第2ブロックとを有する第2メモリチップと、前記第1及び第2メモリチップに対する複数個のロジカルページの書き込みを制御するメモリコントローラとを備える。前記第1及び第2メモリチップは、それぞれ、1つのメモリセルにn(nは、2以上の自然数)ビットを記憶する多値フラッシュメモリである。前記第1及び第2ブロックは、それぞれ、複数のフィジカルページから構成され、前記書き込みは、最下位のフィジカルページから最上位のフィジカルページに向かってフィジカルページごとに行われる。前記最下位のフィジカルページは、書き込み時間が最も短い下位ページを含み、前記最上位のフィジカルページは、書き込み時間が最も長い上位ページを含み、前記最下位のフィジカルページ及び前記最上位のフィジカルページを除く残りの複数のフィジカルページの各々は、下位ページ、(n−2)個の中位ページ及び上位ページからなる第1単位である。前記メモリコントローラは、前記第1テンポラリメモリと前記第1ブロック内の最下位のフィジカルページとからなる前記第1単位のページ数と同じページ数を有する第2単位前記第2テンポラリメモリと前記第2ブロック内の最下位のフィジカルページとからなる前記第1単位のページ数と同じページ数を有する第3単位前記第1ブロック内の前記第1単位及び前記第2ブロック内の前記第1単位の順番で、インターリーブ動作による前記複数個のロジカルページの書き込みを行う。
本発明によれば、フラッシュメモリに対する高速書き込みをインターリーブ動作により実現することができる。
メモリシステムを示す図。 4値の閾値を示す図。 4値の閾値を示す図。 ブロック構成を示す図。 ブロック構成を示す図。 NANDブロックを示す図。 コンベンショナルな書き込みを示す図。 ページシフト動作による書き込みを示す図。 インターリーブ動作による書き込みを示す図。 図9の動作の波形図。 ジグザグインターリーブ動作による書き込みを示す図。 図11の動作の波形図。 撤収時のデータ移動を示す図。 本発明の一実施例による書き込みを示す図。 本発明の一実施例による書き込みを示す図。 本発明の一実施例による書き込みを示す図。 本発明の一実施例による書き込みを示す図。 テンポラリメモリの例を示す図。 本発明の一実施例による書き込みを示す図。 本発明の一実施例による書き込みを示す図。 本発明の一実施例による書き込みを示す図。 本発明の一実施例による書き込みを示す図。 NANDフラッシュメモリの例を示す図。 メモリコントローラの例を示す図。 メモリコントローラの例を示す図。
以下、図面を参照しながら、本発明の例を実施するための最良の形態について詳細に説明する。
1. 基本構成
本発明の例では、フラッシュメモリに対する高速書き込みをインターリーブ動作により実現するため、以下の構成を採用する。
まず、フラッシュチップ(メモリチップ)は、1つのメモリセルにn(nは、2以上の自然数)ビットを記憶する多値フラッシュメモリである。また、フラッシュチップは、複数のブロック(メモリブロック)を有し、複数のブロックは、それぞれ、複数のフィジカルページから構成される。
ここで、ブロックとは、データの記憶エリアとなるメモリセルアレイを複数に区分したときの一区分のことである。また、ページとは、ブロックを複数に区分したときの一区分のことである。従って、ページサイズは、ブロックサイズよりも小さい。
これらの文言は、特に、NANDフラッシュメモリで使用されるが、本発明は、NANDフラッシュメモリに限定されるものではない。
書き込みは、最下位のフィジカルページから最上位のフィジカルページに向かってフィジカルページごとに行われる。
最下位のフィジカルページは、書き込み時間が最も短い下位ページを含み、最上位のフィジカルページは、書き込み時間が最も長い上位ページを含む。最下位のフィジカルページ及び最上位のフィジカルページを除く残りの複数のフィジカルページは、下位ページ、(n−2)個の中位ページ及び上位ページからなる第1単位の繰り返しである。
このような前提の下、本発明の例では、ロジカルページの初期書き込み時及び上書き時に、それぞれ、ロジカルページを一時的に記憶するテンポラリメモリを用意する。
ここで、ロジカルページとは、ホストが指定するページのことであり、フィジカルページとは、フラッシュチップの内部で実際に指定されるページのことである。
また、テンポラリメモリは、例えば、フラッシュチップ内のブロックの書き込み時間が最も短い下位ページ、フラッシュチップ内のページバッファなどである。
そして、インターリーブ動作によるロジカルページの書き込みは、例えば、第1フラッシュチップ内のテンポラリメモリとブロックの最下位のフィジカルページとにより第1単位のページ数と同じページ数を有する第2単位を形成し、第2フラッシュチップ内のテンポラリメモリとブロックの最下位のフィジカルページとにより第1単位のページ数と同じページ数を有する第3単位を形成し、第2単位、第3単位、第1フラッシュチップ内の第1単位及び第2フラッシュチップ内の第1単位の順番で行う。
第2単位及び第3単位は、ページシフト動作によるロジカルページの上書きを、いずれのロジカルページから繰り返し行っても、同一のフラッシュチップ内でのロジカルページの順番を崩すことなく、ロジカルページのデータ移動を同一のフラッシュチップ内のみで行うために採用された構成要件である。
例えば、4値の場合、インターリーブ動作によるニューブロックに対するロジカルページの書き込みは、2個のロジカルページをペアとして、以下の順番で行う。
A. 第1フラッシュチップ内の第2単位(2ページ)
テンポラリメモリ→最下位のフィジカルページ(下位ページ)
B. 第2フラッシュチップ内の第3単位(2ページ)
テンポラリメモリ→最下位のフィジカルページ(下位ページ)
C. 第1フラッシュチップ内の第1単位(2ページ)
下位ページ→上位ページ
D. 第2フラッシュチップ内の第1単位(2ページ)
下位ページ→上位ページ
E. C.とD.の繰り返し
F. テンポラリメモリに書き込まれたロジカルページのコピー
第1フラッシュメモリ内のテンポラリメモリに書き込まれたロジカルページは、第1フラッシュメモリ内のニューブロックの最上位のフィジカルページ(上位ページ)にコピーされ、第2フラッシュメモリ内のテンポラリメモリに書き込まれたロジカルページは、第2フラッシュメモリ内のニューブロックの最上位のフィジカルページ(上位ページ)にコピーされる。
但し、ニューブロックに対して、オールドブロック内の上位ページからロジカルページの上書きを行うとき、上述のA.におけるテンポラリメモリに対する書き込みは省略し、上述のA.における最下位のフィジカルページ(下位ページ)から書き込みを開始する。
この時、上述のF.においては、第2フラッシュメモリ内のテンポラリメモリに書き込まれたロジカルページのコピーのみを行う。
尚、上述のF.におけるコピーに関しては、オールドブロックの撤収時に行うのが最も好ましい。
また、 値(1つのメモリセルにnビットを記憶する)の場合、インターリーブ動作によるニューブロックに対するロジカルページの書き込みは、n個のロジカルページをペアとして、以下の順番で行う。
A. 第1フラッシュチップ内の第2単位(nページ)
テンポラリメモリ→最下位のフィジカルページ(下位ページ→(n−2)個の中位ページ)
B. 第2フラッシュチップ内の第3単位(nページ)
テンポラリメモリ→最下位のフィジカルページ(下位ページ→(n−2)個の中位ページ)
C. 第1フラッシュチップ内の第1単位(nページ)
下位ページ→(n−2)個の中位ページ→上位ページ
D. 第2フラッシュチップ内の第1単位(nページ)
下位ページ→(n−2)個の中位ページ→上位ページ
E. C.とD.の繰り返し
F. テンポラリメモリに書き込まれたロジカルページのコピー
第1フラッシュメモリ内のテンポラリメモリに書き込まれたロジカルページは、第1フラッシュメモリ内のニューブロックの最上位のフィジカルページ内の上位ページにコピーされ、第2フラッシュメモリ内のテンポラリメモリに書き込まれたロジカルページは、第2フラッシュメモリ内のニューブロックの最上位のフィジカルページ内の上位ページにコピーされる。
但し、ニューブロックに対して、オールドブロック内の(n−2)個の中位ページ又は上位ページからロジカルページの上書きを行うとき、上述のA.におけるテンポラリメモリに対する書き込みは省略し、上述のA.における最下位のフィジカルページ内の下位ページから書き込みを開始する。
この時、上述のF.においては、第2フラッシュメモリ内のテンポラリメモリに書き込まれたロジカルページのコピーのみを行う。
尚、上述のF.におけるコピーに関しては、オールドブロックの撤収時に行うのが最も好ましい。
さらに、 値(1つのメモリセルにnビットを記憶する)の場合、インターリーブ動作によるニューブロックに対するロジカルページの書き込みは、以下の順番で行ってもよい。
A. 第1フラッシュチップ内の第2単位(nページ)
テンポラリメモリ(n−1ページ)→最下位のフィジカルページ(下位ページ)
B. 第2フラッシュチップ内の第3単位(nページ)
テンポラリメモリ(n−1ページ)→最下位のフィジカルページ(下位ページ)
C. 第1フラッシュチップ内の第1単位(nページ)
下位ページ→(n−2)個の中位ページ→上位ページ
D. 第2フラッシュチップ内の第1単位(nページ)
下位ページ→(n−2)個の中位ページ→上位ページ
E. C.とD.の繰り返し
F. テンポラリメモリに書き込まれたロジカルページのコピー
尚、上述のF.におけるコピーに関しては、オールドブロックの撤収時に行うのが最も好ましい。
このような構成によれば、ページシフト動作によるロジカルページの上書きを、いずれのロジカルページから繰り返し行っても、同一のフラッシュチップ内でのロジカルページの順番を崩すことがない。言い換えれば、ロジカルページの順番は、ブロックが変わる度に、同一のフラッシュチップ内でシフトするだけである。
従って、オールドブロックの撤収を行うとき、ロジカルページのデータは、同一のフラッシュチップ内での移動のみとなるため、フラッシュチップに搭載されたブロック間でのデータの高速移動機能を利用し、撤収時間の短縮による高速書き込みを実現できる。
2. フラッシュメモリシステム
図1は、本発明の基本となるフラッシュメモリシステムを示している。
フラッシュチップCP0,CP1は、それぞれ、例えば、NANDフラッシュメモリが形成されるチップである。
フラッシュチップCP0,CP1は、m+1個(mは、自然数)のブロックBK0,BK1,…BKmから構成される。ブロックBKi(i=0,1,…m)は、複数のページから構成される。
メモリコントローラ11は、フラッシュチップCP0,CP1に対するデータ書き込み動作を制御する。
ここで、本例では、フラッシュチップCP0,CP1は、2個であるが、3個以上としてもよい。
また、メモリコントローラ11及びフラッシュチップCP0,CP1は、1つのパッケージ内に収められていてもよいし、フラッシュチップCP0が収められるパッケージとフラッシュチップCP1が収められるパッケージとは、異なっていてもよい。
3. 多値フラッシュメモリ
本発明は、多値フラッシュメモリに対するデータ書き込み技術に関する。
ここで、多値とは、1つのメモリセルに3値以上のデータが記憶されることをいう。データの単位である1ビットは、2値であるため、多値フラッシュメモリは、通常、2値(nは、自然数)を有する。1つのメモリセルにnビットが記憶されるとき、そのnビットは、下位ビット(lower bit)、中位ビット(middle bits)及び上位ビット(upper bit)で表されることとする。
多値NANDフラッシュメモリでは、データ書き込みは、ページ単位で行われる。この場合、書き込みデータとしての下位ビットは、下位ページ(lower page)Lと呼ばれ、中位ビットは、中位ページ(middle pages)Mと呼ばれ、上位ビットは、上位ページ(upper page)Uと呼ばれる。
例えば、図2に示すように、4値NANDフラッシュメモリでは、1つのメモリセルに4値(2ビット)が記憶される。このとき、1つのメモリセルに記憶される2ビットは、下位ビット及び上位ビットで表される。
1つのメモリセルに下位ビットのみが記憶された状態では、メモリセルの閾値分布は、第1状態A及び第2状態Mのうちの一つになる。第1状態Aは、消去状態であり、第2状態Mは、LM(lower middle)状態と称される。
1つのメモリセルに下位ビットと上位ビットとが記憶された状態では、メモリセルの閾値分布は、第1状態A、第3状態B、第4状態C及び第5状態Dのうちの一つになる。例えば、第3状態Bは、第1状態Aからの閾値シフトにより得られ、第4及び第5状態C,Dは、それぞれ、第2状態Mからの閾値シフトにより得られる。
但し、閾値のシフト方法は、これに限られることはない。
例えば、図3に示すように、下位ビットのみが記憶された状態では、メモリセルの閾値分布を、第1状態A及び第2状態Bのうちの一つとし、下位ビットと上位ビットとが記憶された状態では、メモリセルの閾値分布を、第1状態A、第2状態B、第3状態C及び第4状態Dのうちの一つとしてもよい。
この場合、第3状態Cは、第2状態Bからの閾値シフトにより得られ、第4状態Dは、第1状態Aからの閾値シフトにより得られる。
4. フラッシュメモリのブロック構成
本発明の前提となるフラッシュメモリのブロック構成について説明する。
図4及び図5は、フラッシュメモリのブロック構成を示している。
ブロックBKi(i=0,1,…m)は、図1のブロックBK0,BK1,…BKmに相当する。
図4は、4値フラッシュメモリのブロック構成である。
1つのブロックBKiは、j+1個(jは、自然数)のフィジカルアドレスPA0,PA1,PA2,…PAj−1,PAjから構成される。
1つのブロックBKi内の最下位のフィジカルアドレスPA0は、フィジカルページPP0の1ページのみから構成される。フィジカルページPP0は、例えば、下位ページLに設定される。
また、1つのブロックBKi内の最上位のフィジカルアドレスPAjは、フィジカルページPP2j−1の1ページのみから構成される。フィジカルページPP2j−1は、例えば、上位ページUに設定される。
フィジカルページPP0,PP2j−1を下位ページに設定するか、又は上位ページに設定するかは、任意である。
残りのフィジカルアドレスPA1,PA2,…PAj−1は、下位ページL及び上位ページUの2ページから構成される。
例えば、フィジカルアドレスPA1は、下位ページLとしてのフィジカルページPP1と上位ページUとしてのフィジカルページPP2とから構成される。
図5は、8値フラッシュメモリのブロック構成である。
1つのブロックBKiは、j+1個(jは、自然数)のフィジカルアドレスPA0,PA1,PA2,…PAj−1,PAjから構成される。
1つのブロックBKi内の最下位のフィジカルアドレスPA0は、フィジカルページPP0の1ページのみから構成される。フィジカルページPP0は、例えば、下位ページLに設定される。
また、1つのブロックBKi内の最上位のフィジカルアドレスPAjは、フィジカルページPP2j−1の1ページのみから構成される。フィジカルページPP2j−1は、例えば、上位ページUに設定される。
フィジカルページPP0,PP2j−1を下位ページに設定するか、又は上位ページに設定するかは、任意である。
残りのフィジカルアドレスPA1,PA2,…PAj−1は、下位ページL、中位ページM及び上位ページUの3ページから構成される。
例えば、フィジカルアドレスPA1は、下位ページLとしてのフィジカルページPP1と、中位ページMとしてのフィジカルページPP2と、上位ページUとしてのフィジカルページPP3とから構成される。
尚、1つのブロックBKi内の最下位のフィジカルアドレスPA0は、下位ページL及び中位ページMの2ページから構成されていてもよい。また、1つのブロックBKi内の最上位のフィジカルアドレスPAjは、中位ページM及び上位ページUの2ページから構成されていてもよい。
図6は、NANDフラッシュメモリのブロック構成を示している。
ここでは、図4のブロック構成に対応させて、4値の例を説明する。
NANDセルユニットCUは、直列接続されるj+1個のメモリセルMCと、その両端に1つずつ接続される合計2つのセレクトゲートトランジスタST1,ST2とから構成される。セレクトゲートトランジスタST1は、ソース線SLに接続され、セレクトゲートトランジスタST2は、ビット線BL0に接続される。
ワード線WL0,WL1,WL2,…WLj−1、WLjは、メモリセルMCに接続され、セレクトゲート線SGS,SGDは、セレクトゲートトランジスタST1,ST2に接続される。
1つのブロックBKiは、j+1個のフィジカルアドレスPA0,PA1,PA2,…PAj−1,PAjから構成される。
1つのブロックBKi内の最下位のフィジカルアドレスPA0は、フィジカルページ(下位ページ)PP0の1ページのみから構成される。
また、1つのブロックBKi内の最上位のフィジカルアドレスPAjは、フィジカルページ(上位ページ)PP2j−1の1ページから構成される。
残りのフィジカルアドレスPA1,PA2,…PAj−1は、下位ページL及び上位ページUの2ページから構成される。
以上の説明では、4値(2ビット)と8値(3ビット)のブロック構成について説明したが、例えば、図5の中位ビットMの数を増やすことにより、容易に、16値(4ビット)、32値(5ビット)、64値(6ビット)…に応用することができる。
これらフラッシュメモリのブロック構成の特徴は、1つのブロックBKi内の最下位のフィジカルアドレスPA0のページ構成(1ページのみ)が、フィジカルアドレスPA1、PA2,…PAj−1のページ構成(複数ページ)と異なっていることにある。
これは、以下に説明するページシフト動作及びジグザグインターリーブ動作を実行するに当って高速書き込みを妨げる一つの要因となる。
5. ページシフト動作
ページシフト動作は、フラッシュメモリにおいて高速書き込みを実現するために開発された技術の一つである。
本発明は、ページシフト動作を前提とするため、以下、これについて説明する。
フラッシュメモリは、例えば、データ消去をブロック単位で行い、データ書き込みをページ単位で行う。一方、データは、ページサイズよりも小さいサイズ、例えば、セクタで管理される。
ここで、フラッシュメモリに新規データを書き込むときは、例えば、データ消去済みの未使用ブロック(ニューブロック)に対して、セクタ単位で管理される新規データを、最下位のフィジカルページから最上位のフィジカルページに向かって、順次、ページ単位で書き込むことができる。
これに対し、データが書き込まれている使用中ブロック(オールドブロック)内のページの一部(例えば、セクタ)を上書きデータ(over writing data)により変更するときは、上書きの対象となるページの一部のみを変更することはできないため、例えば、新たにデータ消去済みの未使用ブロック(ニューブロック)を用意し、この未使用ブロックに上書きデータを書き込む。
図7及び図8は、上書き動作の例を示している。
本例では、1つのブロックは、128ページから構成されるものとする。
まず、未使用ブロックBK−AのフィジカルページPP0,PP1,PP2,PP3,PP4,…PP125,PP126,PP127に対して、ロジカルページLP0,LP1,LP2,LP3,LP4,…LP125,LP126,LP127の新規データをページ単位で順次書き込む。データが書き込まれたブロックBK−Aは、使用中ブロックになる。
この後、ロジカルページLP125,LP126,LP127に対して上書きを行う場合を考える。この場合、まず、使用中ブロックBK−Aとは別の未使用ブロックBK−Bを用意する。
ここで、未使用ブロックBK−Bに対するデータ書き込みは、フィジカルページPP0からフィジカルページPP127に向かって、順次、ページ単位で行われる。
従って、図7の例では、使用中ブロックBK−A内のフィジカルページPP0〜PP124のデータ(有効データ)を未使用ブロックBK−Bにコピーした後、上書きデータとしてのロジカルページLP125〜LP127のデータを未使用ブロックBK−BのフィジカルページPP125〜PP127に書き込む。
しかし、この制御では、データを上書きする前に、常に、使用中ブロックBK−Aから未使用ブロックBK−Bへのデータのコピーを行う必要があるため、データ書き込み速度の高速化を図ることができない。
これに対し、図8の例では、上書きデータは、常に、未使用ブロックBK−Bの最下位のフィジカルページPP0から順次書き込む。具体的には、上書きデータとしてのロジカルページLP125〜LP127のデータは、未使用ブロックBK−BのフィジカルページPP0〜PP2に書き込む。
この制御をページシフト動作と呼ぶ。
ページシフト動作によれば、使用中ブロックBK−A内のページの一部を上書きデータにより変更するときに、使用中ブロックBK−A内のデータを未使用ブロックBK−Bにコピーしなくてよいため、データ書き込み速度の高速化を図ることができる。
但し、ページシフト動作では、コントローラにより、ロジカルページとフィジカルページとの関係を管理することが重要である。
そして、ブロックBK−A内の残りの有効データ、即ち、ロジカルページLP0〜LP124のデータは、適当な時期に、例えば、ブロックBK−A内のフィジカルページPP0〜PP124からブロックBK−B内のフィジカルページPP3〜PP127に移動させる。
ブロックBK−A内の有効データの移動後において、ブロックBK−Aは、無効データのみを有する。このため、ブロックBK−Aに対してデータ消去が行われると、ブロックBK−Aは、再び、未使用ブロックとして取り扱われる。
このように、使用中ブロックが再び未使用ブロックに戻ることを撤収と呼ぶ。
6. ジグザクインターリーブ動作
ジグザグインターリーブ動作も、フラッシュメモリにおいて高速書き込みを実現するために開発された技術の一つである。
本発明は、ジグザグインターリーブ動作を前提とするため、以下、これについて説明する。ジグザグとは、多値フラッシュメモリに対するデータ書き込みにインターリーブ動作を適用したときに、複数のチップのフィジカルページに対するデータ書き込みの順番をジグザグにすると、高速書き込みに貢献できることから付けられた名称である。
(1) ノーマルインターリーブ動作
ジグザグインターリーブ動作を理解するには、まず、ノーマルインターリーブ動作を知っておく必要があるため、これについて説明する。
図9は、ノーマルインターリーブ動作の書き込み手順を示している。
ここでは、インターリーブの対象となるチップ数は、2つとし、1つのブロックは、128ページから構成されるものとする。
初期書き込みでは、2つのフラッシュチップCP0,CP1内の未使用ブロックBK−AのフィジカルページPP0,PP1,PP2,PP3,PP4,…PP125,PP126,PP127に対して、交互に、ロジカルページLP0,LP1,LP2,LP3,LP4,…LP125,LP126,LP127の新規データをページ単位で順次書き込む。
例えば、まず、ロジカルページLP0のデータを、フラッシュチップCP0の未使用ブロックBK−AのフィジカルページPP0(下位ページL)に書き込む。次に、ロジカルページLP1のデータを、フラッシュチップCP1の未使用ブロックBK−AのフィジカルページPP0(下位ページL)に書き込む。
続けて、ロジカルページLP2のデータを、フラッシュチップCP0の未使用ブロックBK−AのフィジカルページPP1(下位ページL)に書き込む。次に、ロジカルページLP3のデータを、フラッシュチップCP1の未使用ブロックBK−AのフィジカルページPP1(下位ページL)に書き込む。
以下、同様に、ロジカルページLP4,LP5,…LP254,LP255のデータを順次書き込む。
データが書き込まれたブロックBK−Aは、使用中ブロックになる。
この後、ロジカルページLP4,LP5,LP6,LP7に対して上書きを行う場合を考える。この場合、まず、使用中ブロックBK−Aとは別の未使用ブロックBK−Bを用意する。
ここで、未使用ブロックBK−Bに対するデータ書き込みは、上述したページシフト動作により、フィジカルページPP0からフィジカルページPP127に向かって、順次、ページ単位で行うものとする。
即ち、上書き動作では、2つのフラッシュチップCP0,CP1内の未使用ブロックBK−BのフィジカルページPP0,PP1に対して、交互に、ロジカルページLP4,LP5,LP6,LP7のデータを書き込む。
具体的には、まず、ロジカルページLP4のデータを、フラッシュチップCP0の未使用ブロックBK−BのフィジカルページPP0(下位ページL)に書き込む。次に、ロジカルページLP5のデータを、フラッシュチップCP1の未使用ブロックBK−BのフィジカルページPP0(下位ページL)に書き込む。
続けて、ロジカルページLP6のデータを、フラッシュチップCP0の未使用ブロックBK−BのフィジカルページPP1(下位ページL)に書き込む。次に、ロジカルページLP7のデータを、フラッシュチップCP1の未使用ブロックBK−BのフィジカルページPP1(下位ページL)に書き込む。
そして、ブロックBK−A内の残りの有効データ、即ち、ロジカルページLP0〜LP3,LP8〜LP255のデータは、適当な時期に、例えば、ブロックBK−A内のフィジカルページPP0,PP1,PP4〜PP127からブロックBK−B内のフィジカルページPP2〜PP127に移動させる。
図10は、ノーマルインターリーブの動作波形を示している。
ノーマルインターリーブ動作では、例えば、2つのフラッシュチップCP0,CP1に対して交互にデータを入力することにより、実質的に、2つのフラッシュチップCP0,CP1に対する書き込みを並行して行うことができ、見かけ上の書き込み速度を向上させることができる。
しかし、上述したフラッシュメモリの特有のブロック構成により、インターリーブが有効に機能せず、書き込み速度を大幅に向上させることが難しい。
なぜなら、多値フラッシュメモリでは、下位ページ、中位ページ及び上位ページに対する書き込み時間がそれぞれ異なっているからである。例えば、下位ページに対する書き込み時間は、最も短く、上位ページに対する書き込み時間は、最も長い。
即ち、ノーマルインターリーブ動作では、フラッシュチップCP0に対する下位ページの書き込み中に、フラッシュチップCP1に対する下位ページの入力を行い、フラッシュチップCP1に対する下位ページの書き込み中に、フラッシュチップCP0に対する上位ページの入力を行い、フラッシュチップCP0に対する上位ページの書き込み中に、フラッシュチップCP1に対する上位ページの入力を行う。
この場合、下位ページの書き込み時間は短いため、例えば、フラッシュチップCP0に対するロジカルページLP2の書き込み(Busy期間)中に、フラッシュチップCP1に対するロジカルページLP3のデータ入力を行うのは好ましくない。
また、上位ページの書き込み時間は長いため、例えば、フラッシュチップCP0に対するロジカルページLP4の上位ページへの書き込み(Busy期間)中に、フラッシュチップCP1に対するロジカルページLP5のデータ入力のみを行うのは効率的ではない。
この例では、ロジカルページLP4の書き込みのために生じる見かけ上のBusy期間Xが長くなるため、インターリーブによる高速書き込みの効果が制限される。
(2) ジグザグインターリーブ動作
ジグザグインターリーブ動作は、ノーマルインターリーブ動作の問題点を解消する。その特徴は、下位ページと上位ページとをペアで書き込むことにある。
図11は、ジグザグインターリーブ動作の書き込み手順を示している。
ここでは、インターリーブの対象となるチップ数は、2つとし、1つのブロックは、128ページから構成されるものとする。
初期書き込みでは、2つのフラッシュチップCP0,CP1内の未使用ブロックBK−AのフィジカルページPP0,PP1,PP2,PP3,PP4,…PP125,PP126,PP127に対して、ジグザクに、ロジカルページLP0,LP1,LP2,LP3,LP4,…LP125,LP126,LP127の新規データをページ単位で順次書き込む。
例えば、まず、ロジカルページLP0のデータを、フラッシュチップCP0の未使用ブロックBK−AのフィジカルページPP0(下位ページL)に書き込む。次に、ロジカルページLP1のデータを、フラッシュチップCP1の未使用ブロックBK−AのフィジカルページPP0(下位ページL)に書き込む。
続けて、ロジカルページLP2,LP3のデータを、フラッシュチップCP0の未使用ブロックBK−AのフィジカルページPP1(下位ページL),PP2(上位ページ)に書き込む。次に、ロジカルページLP4,LP5のデータを、フラッシュチップCP1の未使用ブロックBK−AのフィジカルページPP1(下位ページL),PP2(上位ページ)に書き込む。
以下、同様に、ロジカルページLP6,LP7,…LP254,LP255のデータを順次書き込む。
データが書き込まれたブロックBK−Aは、使用中ブロックになる。
この後、ロジカルページLP2〜LP7に対して上書きを行う場合を考える。この場合、まず、使用中ブロックBK−Aとは別の未使用ブロックBK−Bを用意する。
ここで、未使用ブロックBK−Bに対するデータ書き込みは、上述したページシフト動作により、フィジカルページPP0からフィジカルページPP127に向かって、順次、ページ単位で行うものとする。
即ち、上書き動作では、2つのフラッシュチップCP0,CP1内の未使用ブロックBK−BのフィジカルページPP0,PP1に対して、ジグザグに、ロジカルページLP2〜LP7のデータを書き込む。
具体的には、まず、ロジカルページLP2のデータを、フラッシュチップCP0の未使用ブロックBK−BのフィジカルページPP0(下位ページL)に書き込む。次に、ロジカルページLP3のデータを、フラッシュチップCP1の未使用ブロックBK−BのフィジカルページPP0(下位ページL)に書き込む。
続けて、ロジカルページLP4、LP5のデータを、フラッシュチップCP0の未使用ブロックBK−BのフィジカルページPP1(下位ページL),PP2(上位ページU)に書き込む。次に、ロジカルページLP6,LP7のデータを、フラッシュチップCP1の未使用ブロックBK−BのフィジカルページPP1(下位ページL),PP2(上位ページU)に書き込む。
そして、ブロックBK−A内の残りの有効データ、即ち、ロジカルページLP0,LP1,LP8〜LP255のデータは、適当な時期に、例えば、ブロックBK−A内のフィジカルページPP0,PP3〜PP127からブロックBK−B内のフィジカルページPP3〜PP127に移動させる。
図12は、ジグザグインターリーブの動作波形を示している。
ジグザグインターリーブ動作では、例えば、2つのフラッシュチップCP0,CP1に対してジグザグにデータを入力することにより、実質的に、2つのフラッシュチップCP0,CP1に対する書き込みを並行して行うことができ、見かけ上の書き込み速度を向上させることができる。
また、書き込みは、下位ページと上位ページとをペアにして続けて行うため、常に、1つのフラッシュチップの上位ページの書き込みによって生じるBusy期間を利用して、残りの1つ又は複数のフラッシュチップに対する下位ページ及び上位ページの入力を行う。
例えば、フラッシュチップCP0に対するロジカルページLP3の上位ページへの書き込み(Busy期間)中に、フラッシュチップCP1に対するロジカルページLP4,LP5のデータ入力を行う。
従って、ロジカルページLP3の書き込みのために生じる見かけ上のBusy期間Xが短くなるため、インターリーブによる高速書き込みの効果が最大となる。
この最大の効果は、ジグザクインターリーブの対象となるフラッシュチップの数を、上位ページ書き込みのBusy期間に基づいて最適値に設定することで実現される。
以上のジグザグインターリーブ動作について説明したが、その特徴は、複数のフラッシュチップに対してインターリーブ書き込みを行うに当って、下位ページと上位ページとをペアにして書き込みを行い、上位ページの書き込みによって生じるBusy期間を利用して、下位ページ及び上位ページの入力を行う、ということにある。
従って、この書き込み順序を崩さないことが重要になる。
しかし、上述したフラッシュメモリの特有のブロック構成により、ジグザグインターリーブ動作によっても、インターリーブが有効に機能しないモードがある。
このモードは、上書き時に発生する。
(3) ジグザグインターリーブ動作の課題
ジグザグインターリーブ動作の課題は、データの上書きをページシフト動作により行うときに発生する。
ジグザグインターリーブ動作の特徴は、上述のように、複数のフラッシュチップに対してインターリーブ書き込みを行うに当って、下位ページと上位ページとをペアにして連続して書き込みを行うことにある。
従って、この書き込み順序を崩さずに、ページシフト動作により上書きデータを書き込むことが必要である。
例えば、図11の例では、ロジカルページLP2〜LP7に対して上書きを行う。
ロジカルページLP2のデータは、フラッシュチップCP0の未使用ブロックBK−BのフィジカルページPP0(下位ページL)に書き込まれ、ロジカルページLP3のデータは、フラッシュチップCP1の未使用ブロックBK−BのフィジカルページPP0(下位ページL)に書き込まれる。
また、ロジカルページLP4、LP5のデータは、フラッシュチップCP0の未使用ブロックBK−BのフィジカルページPP1(下位ページL),PP2(上位ページU)に書き込まれ、ロジカルページLP6,LP7のデータは、フラッシュチップCP1の未使用ブロックBK−BのフィジカルページPP1(下位ページL),PP2(上位ページU)に書き込まれる。
この後、ブロックBK−A内の残りの有効データ、即ち、ロジカルページLP0,LP1,LP8〜LP255のデータを、例えば、ブロックBK−A内のフィジカルページPP0,PP3〜PP127からブロックBK−B内のフィジカルページPP3〜PP127に移動させ、ブロックBK−Aの撤収を図る。
しかし、この場合、フラッシュチップCP1内のブロックBK−Aに記憶されているロジカルページLP8,LP9〜LP252,LP253,LP255のデータは、フラッシュチップCP0内のブロックBK−Bにコピーしなければならない(Copy 1)。
また、フラッシュチップCP0内のブロックBK−Aに記憶されているロジカルページLP10,LP11〜LP250,LP251,LP254のデータは、フラッシュチップCP1内のブロックBK−Bにコピーしなければならない(Copy 2)。
このコピーでは、データは、異なる2つのチップ間を移動することになるため、この動作を実行するに当たっては、データを一時的に記憶する外部メモリ、例えば、図13に示すように、メモリコントローラ11内のメモリMが必要になる。
従って、ジグザグインターリーブ動作とページシフト動作とにより、書き込みの高速化を図っても、データ上書き後にブロックBK−Aの撤収を行うに当たって、データの移動に多大な時間を要することになる。この撤収時間の増加により、結果として、書き込み速度の大幅な改善を図ることはできない。
尚、この例では、ロジカルページLP0のデータは、フラッシュチップCP0内のブロックBK−AからブロックBK−Bにコピーされ(Copy 3)、ロジカルページLP255,LP1のデータは、フラッシュチップCP1内のブロックBK−AからブロックBK−Bにコピーされる(Copy 4)。
ところで、フラッシュチップ(例えば、NANDフラッシュメモリ)は、データを一時的に記憶しておくことが可能なページバッファを有している。これを利用すれば、フラッシュチップ内の異なるブロック間でデータを高速移動させることができる。
以下に説明する実施例では、データの上書きを、ジグザグインターリーブ動作及びページシフト動作により行っても、上書き後のブロックの撤収時においては、常に、データコピーが同一のフラッシュチップ内で行われることにより、書き込み速度の大幅な改善を図ることができる技術について提案する。
7. 実施例
本発明の例では、ロジカルページの初期書き込み時及び上書き時に、それぞれ、ロジカルページを一時的に記憶するテンポラリメモリを使用し、オールドブロックの撤収時に異なるフラッシュチップ間でデータ移動が生じることを防ぐことで、ページシフト動作及びインターリーブ動作による高速書き込みを実現する。
以下では、インターリーブ動作を、2つのフラッシュチップで行う場合と、4つのフラッシュチップで行う場合とについて説明する。
(1) 第1実施例
第1実施例は、インターリーブ動作を2つのフラッシュチップで行う場合である。
図14乃至図17は、第1実施例の書き込み手順を示している。
ここでは、1つのブロックは、128ページから構成されるものとする。
初期書き込みでは、テンポラリメモリTを使用し、フラッシュチップCP0,CP1内のニューブロックBK−Aに対するロジカルページの書き込みを、2個のロジカルページをペアとして、以下の順番で行う。
テンポラリメモリTは、例えば、図18に示すように、フラッシュチップCP0,CP1内のブロックBK−(T)の最下位のフィジカルページPP0(下位ページL)とすることができる。また、本例とは関係ないが、8値(3ビット)以上のフラッシュメモリでは、テンポラリメモリTを、ブロックBK−(T)の複数のフィジカルページPP0,PP1,…とすることができる。
まず、第1ステップとして、フラッシュチップCP0内のテンポラリメモリT及びブロックBK−A内のフィジカルページPP0(下位ページL)に対して、2個のロジカルページLP0,LP1をペアにして連続して書き込む。
次に、第2ステップとして、フラッシュチップCP1内のテンポラリメモリT及びブロックBK−A内のフィジカルページPP0(下位ページL)に対して、2個のロジカルページLP2,LP3をペアにして連続して書き込む。
ここで、上述の第1及び第2ステップでは、それぞれ、ロジカルページの書き込み順序が下位ページ→上位ページでないが、テンポラリメモリTをフラッシュチップCP0内のブロックBK−(T)の最下位のフィジカルページPP0(下位ページL)とすれば、高速書き込みが大きく制限されることはない。
次に、第3ステップとして、フラッシュチップCP0内のブロックBK−A内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、2個のロジカルページLP4,LP5をペアにして連続して書き込む。
次に、第4ステップとして、フラッシュチップCP1内のブロックBK−A内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、2個のロジカルページLP6,LP7をペアにして連続して書き込む。
ここで、上述の第3及び第4ステップでは、それぞれ、ロジカルページの書き込み順序が下位ページ→上位ページであるため、フラッシュチップCP0,CP1の一方に対する上位ページの書き込み時に生じるBusy期間を利用して、フラッシュチップCP0,CP1の他方に対する下位ページ及び上位ページの入力を行い、インターリーブ動作による高速書き込みを実現できる。
以下、第3及び第4ステップと同様にして、ロジカルページLP8,LP9,LP10,LP11…LP252,LP253,LP254,LP255を順次書き込む。
最後に、第5ステップとして、フラッシュチップCP0内のテンポラリメモリTに書き込まれたロジカルページLP0を、フラッシュチップCP0内のブロックBK−Aの最上位のフィジカルページPP127(上位ページU)にコピーし、フラッシュチップCP1内のテンポラリメモリTに書き込まれたロジカルページLP2を、フラッシュチップCP1内のブロックBK−Aの最上位のフィジカルページPP127(上位ページU)にコピーする。
ロジカルデータLP0〜LP255が書き込まれたフラッシュチップCP0,CP1内のブロックBK−Aは、使用中ブロック(オールドブロック)になる。
この後、上書きを行う場合を考える。
・ フラッシュチップCP0内の偶数ロジカルページ(LP)からの上書き
この上書きの書き込み手順は、図14に示すようになる。
上書きは、ロジカルページLP4〜LP7に対して行うものとする。
上書きでも、テンポラリメモリTを使用し、フラッシュチップCP0,CP1内のニューブロックBK−Bに対するロジカルページの書き込みを、2個のロジカルページをペアとして、以下の順番で行う。
まず、第1ステップとして、フラッシュチップCP0内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP4,LP5をペアにして連続して書き込む。
次に、第2ステップとして、フラッシュチップCP1内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP6,LP7をペアにして連続して書き込む。
ここで、上述の第1及び第2ステップでは、それぞれ、ロジカルページの書き込み順序が下位ページ→上位ページでないが、テンポラリメモリTをフラッシュチップCP0,CP1内のブロックBK−(T)の最下位のフィジカルページPP0(下位ページL)とすれば、高速書き込みが大きく制限されることはない。
この後、フラッシュチップCP0,CP1内のオールドブロックBK−AからニューブロックBK−Bへ、ロジカルページLP8,LP9〜LP254,LP255及びロジカルページLP0,LP1,LP2,LP3を、それぞれ移動させ(Copy 1, Copy 2)、オールドブロックBK−Aの撤収を図る。
まず、第3ステップとして、フラッシュチップCP0内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP0内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP8,LP9をペアにして連続して書き込む。
次に、第4ステップとして、フラッシュチップCP1内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP1内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP10,LP11をペアにして連続して書き込む。
ここで、上述の第3及び第4ステップでは、それぞれ、ロジカルページの書き込み順序が下位ページ→上位ページであるため、フラッシュチップCP0,CP1の一方に対する上位ページの書き込み時に生じるBusy期間を利用して、フラッシュチップCP0,CP1の他方に対する下位ページ及び上位ページの入力を行い、インターリーブ動作による高速書き込みを実現できる。
また、この第3及び第4ステップでのデータ移動は、常に、同一のフラッシュチップ内のみで行われるため、フラッシュチップに搭載されたブロック間でのデータの高速移動機能を利用し、撤収時間の短縮による高速書き込みを実現できる。
以下、第3及び第4ステップと同様にして、ロジカルページLP12,LP13,LP14,LP15…LP252,LP253,LP254,LP255及びロジカルページLP0,LP1,LP2,LP3を順次書き込む。
最後に、第5ステップとして、フラッシュチップCP0内のテンポラリメモリTに書き込まれたロジカルページLP4を、フラッシュチップCP0内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーし、フラッシュチップCP1内のテンポラリメモリTに書き込まれたロジカルページLP6を、フラッシュチップCP1内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーする。
ロジカルデータLP0〜LP255が書き込まれたフラッシュチップCP0,CP1内のブロックBK−Bは、使用中ブロック(オールドブロック)になる。
以上のような書き込み手順によれば、ページシフト動作によるロジカルページの上書きを、いずれのロジカルページから繰り返し行っても、同一のフラッシュチップ内でのロジカルページの順番を崩すことがない。言い換えれば、ロジカルページの順番は、ブロックが変わる度に、同一のフラッシュチップ内でシフトするだけである。
従って、オールドブロックの撤収を行うとき、ロジカルページのデータは、同一のフラッシュチップ内での移動のみとなるため、フラッシュチップに搭載されたブロック間でのデータの高速移動機能を利用し、撤収時間の短縮による高速書き込みを実現できる。
・ フラッシュチップCP1内の偶数ロジカルページ(LP)からの上書き
この上書きの書き込み手順は、図15に示すようになる。
上書きは、ロジカルページLP2〜LP5に対して行うものとする。
上書きでも、テンポラリメモリTを使用し、フラッシュチップCP0,CP1内のニューブロックBK−Bに対するロジカルページの書き込みを、2個のロジカルページをペアとして、以下の順番で行う。
まず、第1ステップとして、フラッシュチップCP1内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP2,LP3をペアにして連続して書き込む。
次に、第2ステップとして、フラッシュチップCP0内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP4,LP5をペアにして連続して書き込む。
ここで、上述の第1及び第2ステップでは、それぞれ、ロジカルページの書き込み順序が下位ページ→上位ページでないが、テンポラリメモリTをフラッシュチップCP0,CP1内のブロックBK−(T)の最下位のフィジカルページPP0(下位ページL)とすれば、高速書き込みが大きく制限されることはない。
この後、フラッシュチップCP0,CP1内のオールドブロックBK−AからニューブロックBK−Bへ、ロジカルページLP6,LP7〜LP254,LP255及びロジカルページLP0,LP1を、それぞれ移動させ(Copy 1, Copy 2)、オールドブロックBK−Aの撤収を図る。
まず、第3ステップとして、フラッシュチップCP1内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP1内のブロックBK−A内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)の2個のロジカルページLP6,LP7をペアにして連続して書き込む。
次に、第4ステップとして、フラッシュチップCP0内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP0内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP8,LP9をペアにして連続して書き込む。
ここで、上述の第3及び第4ステップでは、それぞれ、ロジカルページの書き込み順序が下位ページ→上位ページであるため、フラッシュチップCP0,CP1の一方に対する上位ページの書き込み時に生じるBusy期間を利用して、フラッシュチップCP0,CP1の他方に対する下位ページ及び上位ページの入力を行い、インターリーブ動作による高速書き込みを実現できる。
また、この第3及び第4ステップでのデータ移動は、常に、同一のフラッシュチップ内のみで行われるため、フラッシュチップに搭載されたブロック間でのデータの高速移動機能を利用し、撤収時間の短縮による高速書き込みを実現できる。
以下、第3及び第4ステップと同様にして、ロジカルページLP10,LP11,LP12,LP13…LP252,LP253,LP254,LP255及びロジカルページLP0,LP1を順次書き込む。
最後に、第5ステップとして、フラッシュチップCP1内のテンポラリメモリTに書き込まれたロジカルページLP2を、フラッシュチップCP1内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーし、フラッシュチップCP0内のテンポラリメモリTに書き込まれたロジカルページLP4を、フラッシュチップCP0内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーする。
ロジカルデータLP0〜LP255が書き込まれたフラッシュチップCP0,CP1内のブロックBK−Bは、使用中ブロック(オールドブロック)になる。
以上のような書き込み手順によれば、ページシフト動作によるロジカルページの上書きを、いずれのロジカルページから繰り返し行っても、同一のフラッシュチップ内でのロジカルページの順番を崩すことがない。言い換えれば、ロジカルページの順番は、ブロックが変わる度に、同一のフラッシュチップ内でシフトするだけである。
従って、オールドブロックの撤収を行うとき、ロジカルページのデータは、同一のフラッシュチップ内での移動のみとなるため、フラッシュチップに搭載されたブロック間でのデータの高速移動機能を利用し、撤収時間の短縮による高速書き込みを実現できる。
・ フラッシュチップCP0内の奇数ロジカルページ(LP)からの上書き
この上書きの書き込み手順は、図16に示すようになる。
上書きは、ロジカルページLP5〜LP7に対して行うものとする。
この上書きでは、フラッシュチップCP1内のテンポラリメモリTのみを使用し、フラッシュチップCP0,CP1内のニューブロックBK−Bに対するロジカルページの書き込みを、2個のロジカルページをペアとして、以下の順番で行う。
まず、第1ステップとして、フラッシュチップCP0内のブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしてのロジカルページLP5を書き込む。
次に、第2ステップとして、フラッシュチップCP1内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP6,LP7をペアにして連続して書き込む。
ここで、上述の第2ステップでは、ロジカルページの書き込み順序が下位ページ→上位ページでないが、テンポラリメモリTをフラッシュチップCP1内のブロックBK−(T)の最下位のフィジカルページPP0(下位ページL)とすれば、高速書き込みが大きく制限されることはない。
この後、フラッシュチップCP0,CP1内のオールドブロックBK−AからニューブロックBK−Bへ、ロジカルページLP8,LP9〜LP254,LP255及びロジカルページLP0,LP1,LP2,LP3,LP4を、それぞれ移動させ(Copy 1, Copy 2)、オールドブロックBK−Aの撤収を図る。
まず、第3ステップとして、フラッシュチップCP0内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP0内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP8,LP9をペアにして連続して書き込む。
次に、第4ステップとして、フラッシュチップCP1内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP1内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP10,LP11をペアにして連続して書き込む。
ここで、上述の第3及び第4ステップでは、それぞれ、ロジカルページの書き込み順序が下位ページ→上位ページであるため、フラッシュチップCP0,CP1の一方に対する上位ページの書き込み時に生じるBusy期間を利用して、フラッシュチップCP0,CP1の他方に対する下位ページ及び上位ページの入力を行い、インターリーブ動作による高速書き込みを実現できる。
また、この第3及び第4ステップでのデータ移動は、常に、同一のフラッシュチップ内のみで行われるため、フラッシュチップに搭載されたブロック間でのデータの高速移動機能を利用し、撤収時間の短縮による高速書き込みを実現できる。
以下、第3及び第4ステップと同様にして、ロジカルページLP12,LP13,LP14,LP15…LP252,LP253,LP254,LP255及びロジカルページLP0,LP1,LP2,LP3,LP4を順次書き込む。
最後に、第5ステップとして、フラッシュチップCP1内のテンポラリメモリTに書き込まれたロジカルページLP6を、フラッシュチップCP1内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーする。
ロジカルデータLP0〜LP255が書き込まれたフラッシュチップCP0,CP1内のブロックBK−Bは、使用中ブロック(オールドブロック)になる。
以上のような書き込み手順によれば、ページシフト動作によるロジカルページの上書きを、いずれのロジカルページから繰り返し行っても、同一のフラッシュチップ内でのロジカルページの順番を崩すことがない。言い換えれば、ロジカルページの順番は、ブロックが変わる度に、同一のフラッシュチップ内でシフトするだけである。
従って、オールドブロックの撤収を行うとき、ロジカルページのデータは、同一のフラッシュチップ内での移動のみとなるため、フラッシュチップに搭載されたブロック間でのデータの高速移動機能を利用し、撤収時間の短縮による高速書き込みを実現できる。
・ フラッシュチップCP1内の奇数ロジカルページ(LP)からの上書き
この上書きの書き込み手順は、図17に示すようになる。
上書きは、ロジカルページLP3〜LP5に対して行うものとする。
この上書きでは、フラッシュチップCP0内のテンポラリメモリTのみを使用し、フラッシュチップCP0,CP1内のニューブロックBK−Bに対するロジカルページの書き込みを、2個のロジカルページをペアとして、以下の順番で行う。
まず、第1ステップとして、フラッシュチップCP1内のブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしてのロジカルページLP3を書き込む。
次に、第2ステップとして、フラッシュチップCP0内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP4,LP5をペアにして連続して書き込む。
ここで、上述の第2ステップでは、ロジカルページの書き込み順序が下位ページ→上位ページでないが、テンポラリメモリTをフラッシュチップCP0内のブロックBK−(T)の最下位のフィジカルページPP0(下位ページL)とすれば、高速書き込みが大きく制限されることはない。
この後、フラッシュチップCP0,CP1内のオールドブロックBK−AからニューブロックBK−Bへ、ロジカルページLP6,LP7〜LP254,LP255及びロジカルページLP0,LP1,LP2を、それぞれ移動させ(Copy 1, Copy 2)、オールドブロックBK−Aの撤収を図る。
まず、第3ステップとして、フラッシュチップCP1内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP1内のブロックBK−A内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)の2個のロジカルページLP6,LP7をペアにして連続して書き込む。
次に、第4ステップとして、フラッシュチップCP0内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP0内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP8,LP9をペアにして連続して書き込む。
ここで、上述の第3及び第4ステップでは、それぞれ、ロジカルページの書き込み順序が下位ページ→上位ページであるため、フラッシュチップCP0,CP1の一方に対する上位ページの書き込み時に生じるBusy期間を利用して、フラッシュチップCP0,CP1の他方に対する下位ページ及び上位ページの入力を行い、インターリーブ動作による高速書き込みを実現できる。
また、この第3及び第4ステップでのデータ移動は、常に、同一のフラッシュチップ内のみで行われるため、フラッシュチップに搭載されたブロック間でのデータの高速移動機能を利用し、撤収時間の短縮による高速書き込みを実現できる。
以下、第3及び第4ステップと同様にして、ロジカルページLP10,LP11,LP12,LP13…LP252,LP253,LP254,LP255及びロジカルページLP0,LP1,LP2を順次書き込む。
最後に、第5ステップとして、フラッシュチップCP0内のテンポラリメモリTに書き込まれたロジカルページLP4を、フラッシュチップCP0内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーする。
ロジカルデータLP0〜LP255が書き込まれたフラッシュチップCP0,CP1内のブロックBK−Bは、使用中ブロック(オールドブロック)になる。
以上のような書き込み手順によれば、ページシフト動作によるロジカルページの上書きを、いずれのロジカルページから繰り返し行っても、同一のフラッシュチップ内でのロジカルページの順番を崩すことがない。言い換えれば、ロジカルページの順番は、ブロックが変わる度に、同一のフラッシュチップ内でシフトするだけである。
従って、オールドブロックの撤収を行うとき、ロジカルページのデータは、同一のフラッシュチップ内での移動のみとなるため、フラッシュチップに搭載されたブロック間でのデータの高速移動機能を利用し、撤収時間の短縮による高速書き込みを実現できる。
(2) 第2実施例
第2実施例は、インターリーブ動作を4つのフラッシュチップで行う場合である。
図19乃至図22は、第2実施例の書き込み手順を示している。
ここでは、1つのブロックは、128ページから構成されるものとする。
初期書き込みでは、テンポラリメモリTを使用し、フラッシュチップCP0,CP1,CP2,CP3内のニューブロックBK−Aに対するロジカルページの書き込みを、2個のロジカルページをペアとして、以下の順番で行う。
テンポラリメモリTは、例えば、図18に示すように、フラッシュチップCP0,CP1,CP2,CP3内のブロックBK−(T)の最下位のフィジカルページPP0(下位ページL)である。
まず、第1ステップとして、フラッシュチップCP0内のテンポラリメモリT及びブロックBK−A内のフィジカルページPP0(下位ページL)に対して、2個のロジカルページLP0,LP1をペアにして連続して書き込む。
次に、第2ステップとして、フラッシュチップCP1内のテンポラリメモリT及びブロックBK−A内のフィジカルページPP0(下位ページL)に対して、2個のロジカルページLP2,LP3をペアにして連続して書き込む。
次に、第3ステップとして、フラッシュチップCP2内のテンポラリメモリT及びブロックBK−A内のフィジカルページPP0(下位ページL)に対して、2個のロジカルページLP4,LP5をペアにして連続して書き込む。
次に、第4ステップとして、フラッシュチップCP3内のテンポラリメモリT及びブロックBK−A内のフィジカルページPP0(下位ページL)に対して、2個のロジカルページLP6,LP7をペアにして連続して書き込む。
次に、第5ステップとして、フラッシュチップCP0内のブロックBK−A内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、2個のロジカルページLP8,LP9をペアにして連続して書き込む。
次に、第6ステップとして、フラッシュチップCP1内のブロックBK−A内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、2個のロジカルページLP10,LP11をペアにして連続して書き込む。
次に、第7ステップとして、フラッシュチップCP2内のブロックBK−A内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、2個のロジカルページLP12,LP13をペアにして連続して書き込む。
次に、第8ステップとして、フラッシュチップCP3内のブロックBK−A内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、2個のロジカルページLP14,LP15をペアにして連続して書き込む。
以下、第5乃至第8ステップと同様にして、ロジカルページLP16,LP17…LPLP510,LP511を順次書き込む。
最後に、第9ステップとして、フラッシュチップCP0内のテンポラリメモリTに書き込まれたロジカルページLP0を、フラッシュチップCP0内のブロックBK−Aの最上位のフィジカルページPP127(上位ページU)にコピーし、フラッシュチップCP1内のテンポラリメモリTに書き込まれたロジカルページLP2を、フラッシュチップCP1内のブロックBK−Aの最上位のフィジカルページPP127(上位ページU)にコピーする。
また、フラッシュチップCP2内のテンポラリメモリTに書き込まれたロジカルページLP4を、フラッシュチップCP2内のブロックBK−Aの最上位のフィジカルページPP127(上位ページU)にコピーし、フラッシュチップCP3内のテンポラリメモリTに書き込まれたロジカルページLP6を、フラッシュチップCP3内のブロックBK−Aの最上位のフィジカルページPP127(上位ページU)にコピーする。
ロジカルデータLP0〜LP511が書き込まれたフラッシュチップCP0,CP1,CP2,CP3内のブロックBK−Aは、使用中ブロック(オールドブロック)になる。
この後、上書きを行う場合を考える。
・ フラッシュチップCP0内の偶数ロジカルページ(LP)からの上書き
この上書きの書き込み手順は、図19に示すようになる。
上書きは、ロジカルページLP8〜LP15に対して行うものとする。
上書きでも、テンポラリメモリTを使用し、フラッシュチップCP0,CP1,CP2,CP3内のニューブロックBK−Bに対するロジカルページの書き込みを、2個のロジカルページをペアとして、以下の順番で行う。
まず、第1ステップとして、フラッシュチップCP0内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP8,LP9をペアにして連続して書き込む。
次に、第2ステップとして、フラッシュチップCP1内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP10,LP11をペアにして連続して書き込む。
次に、第3ステップとして、フラッシュチップCP2内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP12,LP13をペアにして連続して書き込む。
次に、第4ステップとして、フラッシュチップCP3内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP14,LP15をペアにして連続して書き込む。
この後、フラッシュチップCP0,CP1,CP2,CP3内のオールドブロックBK−AからニューブロックBK−Bへ、ロジカルページLP16,LP17〜LP510,LP511及びロジカルページLP0,LP1〜LP6,LP7を、それぞれ移動させ、オールドブロックBK−Aの撤収を図る。
まず、第5ステップとして、フラッシュチップCP0内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP0内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP16,LP17をペアにして連続して書き込む。
次に、第6ステップとして、フラッシュチップCP1内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP1内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP18,LP19をペアにして連続して書き込む。
次に、第7ステップとして、フラッシュチップCP2内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP2内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP20,LP21をペアにして連続して書き込む。
次に、第8ステップとして、フラッシュチップCP3内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP3内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP22,LP23をペアにして連続して書き込む。
以下、第5乃至第8ステップと同様にして、ロジカルページLP24,LP25…LP510,LP511及びロジカルページLP0,LP1〜LP6,LP7を順次書き込む。
最後に、第9ステップとして、フラッシュチップCP0内のテンポラリメモリTに書き込まれたロジカルページLP8を、フラッシュチップCP0内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーし、フラッシュチップCP1内のテンポラリメモリTに書き込まれたロジカルページLP10を、フラッシュチップCP1内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーする。
また、フラッシュチップCP2内のテンポラリメモリTに書き込まれたロジカルページLP12を、フラッシュチップCP2内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーし、フラッシュチップCP3内のテンポラリメモリTに書き込まれたロジカルページLP14を、フラッシュチップCP3内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーする。
ロジカルデータLP0〜LP511が書き込まれたフラッシュチップCP0,CP1,CP2,CP3内のブロックBK−Bは、使用中ブロック(オールドブロック)になる。
以上のような書き込み手順によれば、ページシフト動作によるロジカルページの上書きを、いずれのロジカルページから繰り返し行っても、同一のフラッシュチップ内でのロジカルページの順番を崩すことがない。言い換えれば、ロジカルページの順番は、ブロックが変わる度に、同一のフラッシュチップ内でシフトするだけである。
従って、オールドブロックの撤収を行うとき、ロジカルページのデータは、同一のフラッシュチップ内での移動のみとなるため、フラッシュチップに搭載されたブロック間でのデータの高速移動機能を利用し、撤収時間の短縮による高速書き込みを実現できる。
・ フラッシュチップCP2内の偶数ロジカルページ(LP)からの上書き
この上書きの書き込み手順は、図20に示すようになる。
上書きは、ロジカルページLP12〜LP19に対して行うものとする。
上書きでも、テンポラリメモリTを使用し、フラッシュチップCP0,CP1,CP3,CP4内のニューブロックBK−Bに対するロジカルページの書き込みを、2個のロジカルページをペアとして、以下の順番で行う。
まず、第1ステップとして、フラッシュチップCP2内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP12,LP13をペアにして連続して書き込む。
次に、第2ステップとして、フラッシュチップCP3内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP14,LP15をペアにして連続して書き込む。
次に、第3ステップとして、フラッシュチップCP0内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP16,LP17をペアにして連続して書き込む。
次に、第4ステップとして、フラッシュチップCP1内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP18,LP19をペアにして連続して書き込む。
この後、フラッシュチップCP0,CP1,CP2,CP3内のオールドブロックBK−AからニューブロックBK−Bへ、ロジカルページLP20,LP21〜LP510,LP511及びロジカルページLP0,LP1〜LP10,LP11を、それぞれ移動させ、オールドブロックBK−Aの撤収を図る。
まず、第5ステップとして、フラッシュチップCP2内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP2内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP20,LP21をペアにして連続して書き込む。
次に、第6ステップとして、フラッシュチップCP3内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP3内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP22,LP23をペアにして連続して書き込む。
次に、第7ステップとして、フラッシュチップCP0内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP0内のブロックBK−A内のフィジカルページPP5(下位ページL)及びフィジカルページPP6(上位ページU)の2個のロジカルページLP24,LP25をペアにして連続して書き込む。
次に、第8ステップとして、フラッシュチップCP1内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP1内のブロックBK−A内のフィジカルページPP5(下位ページL)及びフィジカルページPP6(上位ページU)の2個のロジカルページLP26,LP27をペアにして連続して書き込む。
以下、第5乃至第8ステップと同様にして、ロジカルページLP28,LP29…LPLP510,LP511及びロジカルページLP0,LP1〜LP10、LP11を順次書き込む。
最後に、第9ステップとして、フラッシュチップCP2内のテンポラリメモリTに書き込まれたロジカルページLP12を、フラッシュチップCP2内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーし、フラッシュチップCP3内のテンポラリメモリTに書き込まれたロジカルページLP14を、フラッシュチップCP3内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーする。
また、フラッシュチップCP0内のテンポラリメモリTに書き込まれたロジカルページLP16を、フラッシュチップCP0内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーし、フラッシュチップCP1内のテンポラリメモリTに書き込まれたロジカルページLP18を、フラッシュチップCP1内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーする。
ロジカルデータLP0〜LP511が書き込まれたフラッシュチップCP0,CP1,CP2,CP3内のブロックBK−Bは、使用中ブロック(オールドブロック)になる。
以上のような書き込み手順によれば、ページシフト動作によるロジカルページの上書きを、いずれのロジカルページから繰り返し行っても、同一のフラッシュチップ内でのロジカルページの順番を崩すことがない。言い換えれば、ロジカルページの順番は、ブロックが変わる度に、同一のフラッシュチップ内でシフトするだけである。
従って、オールドブロックの撤収を行うとき、ロジカルページのデータは、同一のフラッシュチップ内での移動のみとなるため、フラッシュチップに搭載されたブロック間でのデータの高速移動機能を利用し、撤収時間の短縮による高速書き込みを実現できる。
・ フラッシュチップCP0内の奇数ロジカルページ(LP)からの上書き
この上書きの書き込み手順は、図21に示すようになる。
上書きは、ロジカルページLP9〜LP15に対して行うものとする。
この上書きでは、フラッシュチップCP1,CP2,CP3内のテンポラリメモリTを使用し、フラッシュチップCP0,CP1,CP2,CP3内のニューブロックBK−Bに対するロジカルページの書き込みを、2個のロジカルページをペアとして、以下の順番で行う。
まず、第1ステップとして、フラッシュチップCP0内のブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしてのロジカルページLP9を書き込む。
次に、第2ステップとして、フラッシュチップCP1内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP10,LP11をペアにして連続して書き込む。
次に、第3ステップとして、フラッシュチップCP2内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP12,LP13をペアにして連続して書き込む。
次に、第4ステップとして、フラッシュチップCP3内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP14,LP15をペアにして連続して書き込む。
この後、フラッシュチップCP0,CP1,CP2,CP3内のオールドブロックBK−AからニューブロックBK−Bへ、ロジカルページLP16,LP17〜LP510,LP511及びロジカルページLP0,LP1〜LP6,LP7を、それぞれ移動させ、オールドブロックBK−Aの撤収を図る。
まず、第5ステップとして、フラッシュチップCP0内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP0内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP16,LP17をペアにして連続して書き込む。
次に、第6ステップとして、フラッシュチップCP1内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP1内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP18,LP19をペアにして連続して書き込む。
次に、第7ステップとして、フラッシュチップCP2内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP2内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP20,LP21をペアにして連続して書き込む。
次に、第8ステップとして、フラッシュチップCP3内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP3内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP22,LP23をペアにして連続して書き込む。
以下、第5乃至第8ステップと同様にして、ロジカルページLP24,LP25…LP510,LP511及びロジカルページLP0,LP1〜LP6,LP7,LP8を順次書き込む。
最後に、第9ステップとして、フラッシュチップCP1内のテンポラリメモリTに書き込まれたロジカルページLP10を、フラッシュチップCP1内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーする。
また、フラッシュチップCP2内のテンポラリメモリTに書き込まれたロジカルページLP12を、フラッシュチップCP2内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーし、フラッシュチップCP3内のテンポラリメモリTに書き込まれたロジカルページLP14を、フラッシュチップCP3内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーする。
ロジカルデータLP0〜LP511が書き込まれたフラッシュチップCP0,CP1,CP2,CP3内のブロックBK−Bは、使用中ブロック(オールドブロック)になる。
以上のような書き込み手順によれば、ページシフト動作によるロジカルページの上書きを、いずれのロジカルページから繰り返し行っても、同一のフラッシュチップ内でのロジカルページの順番を崩すことがない。言い換えれば、ロジカルページの順番は、ブロックが変わる度に、同一のフラッシュチップ内でシフトするだけである。
従って、オールドブロックの撤収を行うとき、ロジカルページのデータは、同一のフラッシュチップ内での移動のみとなるため、フラッシュチップに搭載されたブロック間でのデータの高速移動機能を利用し、撤収時間の短縮による高速書き込みを実現できる。
・ フラッシュチップCP2内の奇数ロジカルページ(LP)からの上書き
この上書きの書き込み手順は、図22に示すようになる。
上書きは、ロジカルページLP13〜LP19に対して行うものとする。
この上書きでは、フラッシュチップCP0,CP1,CP3内のテンポラリメモリTを使用し、フラッシュチップCP0,CP1,CP2,CP3内のニューブロックBK−Bに対するロジカルページの書き込みを、2個のロジカルページをペアとして、以下の順番で行う。
まず、第1ステップとして、フラッシュチップCP2内のブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしてのロジカルページLP13を書き込む。
次に、第2ステップとして、フラッシュチップCP3内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP14,LP15をペアにして連続して書き込む。
次に、第3ステップとして、フラッシュチップCP0内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP16,LP17をペアにして連続して書き込む。
次に、第4ステップとして、フラッシュチップCP1内のテンポラリメモリT及びブロックBK−B内のフィジカルページPP0(下位ページL)に対して、上書きデータとしての2個のロジカルページLP18,LP19をペアにして連続して書き込む。
この後、フラッシュチップCP0,CP1,CP2,CP3内のオールドブロックBK−AからニューブロックBK−Bへ、ロジカルページLP20,LP21〜LP510,LP511及びロジカルページLP0,LP1〜LP10,LP11,LP12を、それぞれ移動させ、オールドブロックBK−Aの撤収を図る。
まず、第5ステップとして、フラッシュチップCP2内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP2内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP20,LP21をペアにして連続して書き込む。
次に、第6ステップとして、フラッシュチップCP3内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP3内のブロックBK−A内のフィジカルページPP3(下位ページL)及びフィジカルページPP4(上位ページU)の2個のロジカルページLP22,LP23をペアにして連続して書き込む。
次に、第7ステップとして、フラッシュチップCP0内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP0内のブロックBK−A内のフィジカルページPP5(下位ページL)及びフィジカルページPP6(上位ページU)の2個のロジカルページLP24,LP25をペアにして連続して書き込む。
次に、第8ステップとして、フラッシュチップCP1内のブロックBK−B内のフィジカルページPP1(下位ページL)及びフィジカルページPP2(上位ページU)に対して、フラッシュチップCP1内のブロックBK−A内のフィジカルページPP5(下位ページL)及びフィジカルページPP6(上位ページU)の2個のロジカルページLP26,LP27をペアにして連続して書き込む。
以下、第5乃至第8ステップと同様にして、ロジカルページLP28,LP29…LP510,LP511及びロジカルページLP0,LP1〜LP10,LP11,LP12を順次書き込む。
最後に、第9ステップとして、フラッシュチップCP3内のテンポラリメモリTに書き込まれたロジカルページLP14を、フラッシュチップCP3内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーする。
また、フラッシュチップCP0内のテンポラリメモリTに書き込まれたロジカルページLP16を、フラッシュチップCP0内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーし、フラッシュチップCP1内のテンポラリメモリTに書き込まれたロジカルページLP18を、フラッシュチップCP1内のブロックBK−Bの最上位のフィジカルページPP127(上位ページU)にコピーする。
ロジカルデータLP0〜LP511が書き込まれたフラッシュチップCP0,CP1,CP2,CP3内のブロックBK−Bは、使用中ブロック(オールドブロック)になる。
以上のような書き込み手順によれば、ページシフト動作によるロジカルページの上書きを、いずれのロジカルページから繰り返し行っても、同一のフラッシュチップ内でのロジカルページの順番を崩すことがない。言い換えれば、ロジカルページの順番は、ブロックが変わる度に、同一のフラッシュチップ内でシフトするだけである。
従って、オールドブロックの撤収を行うとき、ロジカルページのデータは、同一のフラッシュチップ内での移動のみとなるため、フラッシュチップに搭載されたチップ内でのデータの高速移動機能を利用し、撤収時間の短縮による高速書き込みを実現できる。
8. 適用例
本発明の適用例としては、例えば、NANDフラッシュメモリがある。
以下では、本発明をNANDフラッシュメモリに適用したときのメモリシステムの例について説明する。
この適用例においては、NANDフラッシュメモリとは、パッケージングされた1個の製品をいうものとする。
(1) 1個のNANDフラッシュメモリ内でのインターリーブ動作
図23は、NANDフラッシュメモリの例を示している。
NANDフラッシュメモリ21は、1個のメモリコントローラ11と、8個のNANDフラッシュチップCP0〜CP7とを有する。
本発明に係わるインターリーブ動作は、メモリコントローラ11により制御される。
メモリコントローラ(コントローラチップ)11は、パッケージ基板(package board)10の一面上に搭載される。8個のNANDフラッシュチップCP0〜CP7は、メモリコントローラ11上に搭載される。
メモリコントローラ11と8個のNANDフラッシュチップCP0〜CP7とは、例えば、ボンディングワイヤ、TSV(through-silicon-via)などにより、互いに電気的に接続され、樹脂12により覆われる。
外部端子としてのバンプ13は、パッケージ基板10の他面上に搭載される。
図24は、メモリコントローラの例を示している。
メモリコントローラ11は、CPU(Central Processing Unit)31、HOSTインターフェイス(HOST-I/F)32、RAM(Random Access Memory)33、ECCインターフェイス(ECC-I/F)34、及び、NANDインターフェイス35を有する。
これら要素は、バス36を介して互いに接続される。
HOSTインターフェイス32は、例えば、USB(Universal Serial Bus)インターフェイスからなり、データ転送規格であるUSB規格に基づいて、ホスト14に対するデータの送受信を制御する。
CPU31は、例えば、ファームウェアを用いてメモリシステムを制御する。
また、CPU31は、ホスト14からの書き込み/読み出し/消去コマンドを受け、8個のNANDフラッシュチップCP0〜CP7に対する書き込み/読み出し/消去動作を制御する。
RAM33は、CPU12の作業エリアとして使用され、データや変換テーブルを一時的に記憶する。
ECCインターフェイス34は、例えば、バス36からのデータに対してエラー訂正処理を行う。NANDインターフェイス35は、8個のNANDフラッシュチップCP0〜CP7に対するデータの送受信を制御する。
(2) 複数個のNANDフラッシュメモリ間でのインターリーブ動作
図25は、メモリコントローラの例を示している。
このシステムでは、チャネル間インターリーブが行われる。1個のチャネルは、1個のNANDフラッシュメモリに対応する。本発明に係わるインターリーブ動作は、チャネル間で行われ、メモリコントローラ11により制御される。
メモリコントローラ11は、CPU31、HOSTインターフェイス(HOST-I/F)32、RAM33、ECCインターフェイス(ECC-I/F)34、及び、NANDインターフェイス35を有する。
これら要素は、バス36を介して互いに接続される。
HOSTインターフェイス32は、例えば、USBインターフェイスからなり、データ転送規格であるUSB規格に基づいて、ホスト14に対するデータの送受信を制御する。
CPU31は、例えば、ファームウェアを用いてメモリシステムを制御する。
また、CPU31は、ホスト14からの書き込み/読み出し/消去コマンドを受け、複数個(本例では、2個)のNANDフラッシュメモリ21−1,21−2に対する書き込み/読み出し/消去動作を制御する。
NANDフラッシュメモリ21−1,21−2は、それぞれ、例えば、図23に示す1個の製品から構成される。
RAM33は、CPU12の作業エリアとして使用され、データや変換テーブルを一時的に記憶する。
ECCインターフェイス34は、例えば、バス36からのデータに対してエラー訂正処理を行う。NANDインターフェイス35は、8個のNANDフラッシュチップCP0〜CP7に対するデータの送受信を制御する。
9. むすび
本発明によれば、フラッシュメモリに対する高速書き込みをインターリーブ動作により実現することができる。
本発明の例は、上述の実施例に限定されるものではなく、その要旨を逸脱しない範囲で、各構成要素を変形して具体化できる。また、上述の実施例に開示されている複数の構成要素の適宜な組み合せにより種々の発明を構成できる。例えば、上述の実施例に開示される全構成要素から幾つかの構成要素を削除してもよいし、異なる実施例の構成要素を適宜組み合わせてもよい。
本発明は、高速ランダム書き込み可能なファイルメモリ、高速ダウンロード可能な携帯端末、高速ダウンロード可能な携帯プレーヤー、放送機器用半導体メモリ、ドライブレコーダ、ホームビデオ、通信用大容量バッファメモリ、防犯カメラ用半導体メモリなどに対して産業上のメリットは多大である。
10: パッケージ基板、 11: メモリコントローラ、 12: 樹脂、 13: バンプ、 21: NANDフラッシュメモリ、 31: CPU、 32: HOSTインターフェイス、 33: RAM、 34: ECCインターフェイス、 35: NANDインターフェイス、 CP0〜CP7: フラッシュチップ。

Claims (5)

  1. 第1テンポラリメモリと第1ブロックとを有する第1メモリチップと、第2テンポラリメモリと第2ブロックとを有する第2メモリチップと、前記第1及び第2メモリチップに対する複数個のロジカルページの書き込みを制御するメモリコントローラとを具備し、
    前記第1及び第2メモリチップは、それぞれ、1つのメモリセルにn(nは、2以上の自然数)ビットを記憶する多値フラッシュメモリであり、
    前記第1及び第2ブロックは、それぞれ、複数のフィジカルページから構成され、前記書き込みは、最下位のフィジカルページから最上位のフィジカルページに向かってフィジカルページごとに行われ、
    前記最下位のフィジカルページは、書き込み時間が最も短い下位ページを含み、前記最上位のフィジカルページは、書き込み時間が最も長い上位ページを含み、前記最下位のフィジカルページ及び前記最上位のフィジカルページを除く残りの複数のフィジカルページの各々は、下位ページ、(n−2)個の中位ページ及び上位ページからなる第1単位であり
    前記メモリコントローラは、前記第1テンポラリメモリと前記第1ブロック内の最下位のフィジカルページとからなる前記第1単位のページ数と同じページ数を有する第2単位前記第2テンポラリメモリと前記第2ブロック内の最下位のフィジカルページとからなる前記第1単位のページ数と同じページ数を有する第3単位前記第1ブロック内の前記第1単位及び前記第2ブロック内の前記第1単位の順番で、インターリーブ動作による前記複数個のロジカルページの書き込みを行う
    ことを特徴とするメモリシステム。
  2. 前記第1メモリチップは、前記第1ブロックと同じ構成を持つ第3ブロックを有し、前記第2メモリチップは、第3テンポラリメモリと前記第2ブロックと同じ構成を持つ第4ブロックとを有し、
    前記複数個のロジカルページのうち前記第1ブロック内の上位ページに書き込まれたロジカルページから連続する1個以上のロジカルページの上書きを行うとき、前記メモリコントローラは、前記第3ブロック内の最下位のフィジカルページ、前記第3テンポラリメモリと前記第4ブロック内の最下位のフィジカルページとからなる前記第1単位のページ数と同じページ数を有する第4単位前記第3ブロック内の前記第1単位及び前記第4ブロック内の前記第1単位の順番で、前記インターリーブ動作による前記複数個のロジカルページの上書きを行う
    ことを特徴とする請求項1に記載のメモリシステム。
  3. 前記第1テンポラリメモリに書き込まれた前記ロジカルページは、前記第1ブロック内の最上位のフィジカルページにコピーされ、前記第2テンポラリメモリに書き込まれた前記ロジカルページは、前記第2ブロック内の最上位のフィジカルページにコピーされることを特徴とする請求項1に記載のメモリシステム。
  4. 前記第1メモリチップは、前記第1ブロックと同じ構成を持つ第3ブロックを有し、前記第2メモリチップは、前記第2ブロックと同じ構成を持つ第4ブロックとを有し、
    前記第1テンポラリメモリは、前記第3ブロックの最下位のフィジカルページを含み、前記第2テンポラリメモリは、前記第4ブロックの最下位のフィジカルページを含むことを特徴とする請求項1に記載のメモリシステム。
  5. 前記第1テンポラリメモリは、前記第1メモリチップ内のページバッファであり、前記第2テンポラリメモリは、前記第2メモリチップ内のページバッファであることを特徴とする請求項1に記載のメモリシステム。
JP2009207387A 2009-09-08 2009-09-08 メモリシステム Expired - Fee Related JP4956593B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009207387A JP4956593B2 (ja) 2009-09-08 2009-09-08 メモリシステム
US12/821,669 US8301850B2 (en) 2009-09-08 2010-06-23 Memory system which writes data to multi-level flash memory by zigzag interleave operation
KR1020100085790A KR101172976B1 (ko) 2009-09-08 2010-09-02 메모리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009207387A JP4956593B2 (ja) 2009-09-08 2009-09-08 メモリシステム

Publications (2)

Publication Number Publication Date
JP2011059889A JP2011059889A (ja) 2011-03-24
JP4956593B2 true JP4956593B2 (ja) 2012-06-20

Family

ID=43648541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009207387A Expired - Fee Related JP4956593B2 (ja) 2009-09-08 2009-09-08 メモリシステム

Country Status (3)

Country Link
US (1) US8301850B2 (ja)
JP (1) JP4956593B2 (ja)
KR (1) KR101172976B1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8417877B2 (en) 2010-08-31 2013-04-09 Micron Technology, Inc Stripe-based non-volatile multilevel memory operation
US8713242B2 (en) * 2010-12-30 2014-04-29 Solid State System Co., Ltd. Control method and allocation structure for flash memory device
JP5929485B2 (ja) * 2012-05-08 2016-06-08 ソニー株式会社 制御装置、記憶装置、データ書込方法
US8832530B2 (en) * 2012-09-26 2014-09-09 Intel Corporation Techniques associated with a read and write window budget for a two level memory system
US9569117B2 (en) 2014-03-11 2017-02-14 Kabushiki Kaisha Toshiba Memory system controlling interleaving write to memory chips
US20160162215A1 (en) * 2014-12-08 2016-06-09 Sandisk Technologies Inc. Meta plane operations for a storage device
US10614886B2 (en) 2017-09-22 2020-04-07 Samsung Electronics Co., Ltd. Nonvolatile memory device and a method of programming the nonvolatile memory device
KR20220072242A (ko) 2020-11-25 2022-06-02 삼성전자주식회사 비휘발성 메모리 장치의 데이터 기입 방법 및 이를 수행하는 비휘발성 메모리 장치

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7290109B2 (en) * 2002-01-09 2007-10-30 Renesas Technology Corp. Memory system and memory card
KR20060134011A (ko) 2003-12-30 2006-12-27 쌘디스크 코포레이션 메모리 플레인 배열을 갖춘 비휘발성 메모리 및 방법
US7631138B2 (en) 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7315916B2 (en) 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
JP2008033801A (ja) 2006-07-31 2008-02-14 Victor Co Of Japan Ltd メモリデータ管理装置
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
US20100325342A1 (en) * 2007-07-20 2010-12-23 Panasonic Corporation Memory controller and nonvolatile storage device using same
TWI358068B (en) * 2007-10-19 2012-02-11 Phison Electronics Corp Writing method for non-volatile memory and control
JP4730846B2 (ja) 2007-11-26 2011-07-20 ルネサスエレクトロニクス株式会社 メモリシステム
US7903462B1 (en) * 2008-04-04 2011-03-08 Link A Media Devices Corporation E/P durability by using a sub-range of a full programming range
JP2010282492A (ja) 2009-06-05 2010-12-16 Toshiba Corp メモリシステム
US8144512B2 (en) * 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding

Also Published As

Publication number Publication date
US8301850B2 (en) 2012-10-30
JP2011059889A (ja) 2011-03-24
US20110060866A1 (en) 2011-03-10
KR20110027578A (ko) 2011-03-16
KR101172976B1 (ko) 2012-08-09

Similar Documents

Publication Publication Date Title
JP4956593B2 (ja) メモリシステム
KR101405741B1 (ko) 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작
US9292428B2 (en) Memory system
US20150255159A1 (en) Method for controlling a non-volatile semiconductor memory, and semiconductor storage system
KR101363766B1 (ko) 논리 유닛 동작
JP5259138B2 (ja) 記憶装置
JP2008108418A (ja) マルチページプログラムの方法、及びこれを行うためのフラッシュメモリ装置
JP2007242163A (ja) 半導体集積回路装置のデータ記録方式
US8593900B2 (en) Method and apparatus for performing multi-block access operation in nonvolatile memory device
US20130176785A1 (en) Method for accessing a flash memory, and associated flash memory system
KR20080074585A (ko) 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를포함한 메모리 시스템
KR20200114149A (ko) 메모리 컨트롤러 및 그 동작 방법
CN106653085A (zh) 储存器件、具有储存器件的存储***及其操作方法
KR20100124087A (ko) 메모리 컨트롤러, 그것을 포함하는 메모리 시스템 그리고 그것의 동작 방법
CN110399092B (zh) 存储装置以及操作存储装置的方法
TW201712678A (zh) 包含三維陣列結構的半導體記憶體裝置和包含其之記憶體系統
US20080168214A1 (en) Memory system and method using scrambled address data
CN108461099B (zh) 半导体存储装置
JP2005339231A (ja) メモリカード、半導体装置、及び半導体メモリの制御方法
JP2007004868A (ja) 半導体記憶装置および半導体記憶装置制御方法
JP2011065736A (ja) 不揮発性半導体記憶装置
JP2007058940A (ja) 記憶装置、ファイル記憶装置、およびコンピュータシステム
JP5091788B2 (ja) Nand型フラッシュメモリ
JP2009129477A (ja) 不揮発性半導体記憶装置
CN111435333A (zh) 存储装置及其操作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111031

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: 20120221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120316

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees