JP2007199905A - 半導体記憶装置の制御方法 - Google Patents

半導体記憶装置の制御方法 Download PDF

Info

Publication number
JP2007199905A
JP2007199905A JP2006016135A JP2006016135A JP2007199905A JP 2007199905 A JP2007199905 A JP 2007199905A JP 2006016135 A JP2006016135 A JP 2006016135A JP 2006016135 A JP2006016135 A JP 2006016135A JP 2007199905 A JP2007199905 A JP 2007199905A
Authority
JP
Japan
Prior art keywords
block
data
blocks
plane
card
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006016135A
Other languages
English (en)
Inventor
Takashi Oshima
貴志 大嶋
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 JP2006016135A priority Critical patent/JP2007199905A/ja
Priority to US11/626,589 priority patent/US7698497B2/en
Publication of JP2007199905A publication Critical patent/JP2007199905A/ja
Priority to US12/717,718 priority patent/US7917690B2/en
Pending legal-status Critical Current

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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation

Landscapes

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

Abstract

【課題】特定のプレーンにおいてコピー先の空きブロックが無くなることを防止でき、書き込み速度の低下を防止する。
【解決手段】複数の記憶領域3−1は、複数のページを含む複数のブロックを有し、データキャッシュ3−2とページバッファ3−3とをそれぞれ有している。制御部は、前記複数の記憶領域の空きブロック数の下限値を制御する。
【選択図】図1

Description

本発明は、半導体記憶装置、例えばメモリカードに適用されるNAND型フラッシュメモリの制御方法に関する。
近時、NAND型フラッシュメモリは、高速アクセスを可能とするため、例えば複数のプレーンにより構成されている。各プレーンは、複数のページ含む複数のブロックの集合からなるメモリセルアレイとしての記憶領域と、外部とデータを授受するデータキャッシュ、及びデータキャッシュからデータを受け、保持するページバッファにより構成されている。前記ページとは、データの書き込み及び読み出し時におけるアクセス単位であり、前記ブロックとは、データの消去単位である。
各プレーンは、データキャッシュとページバッファの2つのバッファを使用することにより、メモリカードのコントローラがデータキャッシュからデータを読み出している間に、NAND型フラッシュメモリが書き込み動作を行うことができるように構成されている。
ところで、NAND型フラッシュメモリは、ブロック単位でしかデータを消去することができないため、例え1ページでもデータを書き換える場合、複数のページからなるブロックを消去する必要がある。消去されるブロックのうち、書き換えられない残りのページは、他のブロックにコピーする必要がある。ページのコピーは、次のように行なわれる。
先ず、NAND型フラッシュメモリから1ページのデータがページバッファに読み出される。このページバッファのデータはデータキャッシュに転送され、データキャッシュからコントローラに読み出される。この読み出されたデータは、コントローラにより例えばエラー訂正される。この後、コントローラは、コピー先のページを指定し、エラー訂正後のデータをNAND型フラッシュメモリのデータキャッシュに供給する。データキャッシュのデータはページバッファに転送され、ページバッファのデータは、指定されたコピー先のページに書き込まれる。
ここで、高速なデータの書き換えを実現するためには、コピー動作を高速化する必要が有る。コピー動作を複数回行う場合、データの読み出しと書き込みが連続して繰り返される。NAND型フラッシュメモリは、メモリカードのコントローラがデータキャッシュからデータを読み出している間、又はデータキャッシュへデータを書き込でいる間に、ページバッファからメモリセルへデータを書き込むことができる。このように、コントローラとデータキャッシュとの間でデータを転送している間に、ページバッファからメモリセルへデータを書き込む機能をキャッシュ機能と呼ぶ。このキャッシュ機能は、コントローラとデータキャッシュとの間のデータ転送と、ページバッファからメモリセルへの書き込み動作とを別々に行う通常の書き込み動作の場合に比べて、コピー動作を高速に行うことができる。
しかし、このキャッシュ機能は、コピー元のブロックとコピー先のブロックが同一のプレーン内でなければ使用できない。このため、例えば特定のプレーンに不良を有するブロック(以下、不良ブロックと称す)が集中して存在し、コピー先としての空きブロックがプレーン内に無くなった場合、そのプレーンにおいて、コピー先のブロックを割り当てることができなくなることがある。このような場合、キャッシュ機能を使用することができないため、コピー動作が遅くなる。したがって、書き込み速度が低下するという問題がある。
尚、例えばNAND型フラッシュメモリの複数の物理ブロックを複数のグループに分類し、各グループに含まれる不良ブロックの数が所定値以下である場合、互いに異なるグループに属する複数のブロックを仮想的に結合して仮想ブロックを形成する技術が開発されている(例えば特許文献1参照)。
特開2003−15947号公報
本発明は、特定のプレーンにおいてコピー先の空きブロックが無くなることを防止でき、書き込み速度の低下を防止可能な半導体記憶装置の制御方法を提供しようとするものである。
本発明の半導体記憶装置の制御方法の第1の態様は、複数のページを含む複数のブロックを有し、データキャッシュとページバッファとをそれぞれ有する複数の記憶領域を具備し、制御部により、前記複数の記憶領域の空きブロック数の下限値を制御することを特徴とする。
本発明の半導体記憶装置の制御方法の第2の態様は、複数のページを含む複数のブロックを有し、データキャッシュとページバッファとをそれぞれ有する複数の記憶領域を具備し、前記制御部は、前記複数の記憶領域の1つに新規にデータを書き込むとき、空きブロック数が最も多い記憶領域を選択し、この選択された記憶領域のブロックにデータを書き込むことを特徴とする。
本発明によれば、特定のプレーンにおいてコピー先の空きブロックが無くなることを防止でき、書き込み速度の低下を防止可能な半導体記憶装置の制御方法を提供できる。
以下、本発明の実施の形態について、図面を参照して説明する。
(第1の実施形態)
図2は、第1の実施形態に係るメモリカードに搭載されるデバイス類の概略構成を示す斜視図である。
メモリカード1は、PCB(Printed Circuit Board)基板2と、このPCB基板2上に配置されたNAND型フラッシュメモリ3及びコントローラ4とにより構成されている。コントローラ4は、CPU(Central Processing Unit)8やROM(Read-Only Memory)9などの機能ブロックを有している。なお、NAND型フラッシュメモリ3は、1つのメモリセルに1ビットの情報を記憶する2値メモリであっても良いし、1つのメモリセルに1ビットより多い情報(例えば2ビット)を記憶する多値メモリであっても良い。また、図2に示すメモリカードは、PCB基板2上にNAND型フラッシュメモリ3及びコントローラ4が配置された場合を示している。しかし、NAND型フラッシュメモリ3及びコントローラ4は、同一のLSI(Large-scale Integration)基板上に配置されても良い。
図3は、ホスト機器と上記メモリカードとを含む構成を示すブロック図である。図3において、図2と同一部分には同一符号を付している。
ホスト機器(以下、ホストと称す)20は、接続されるメモリカードをアクセスするためのハードウェア及びソフトウェア(システム)を備えている。
メモリカード1は、ホスト20に接続されたときに電源供給を受けて動作し、ホスト20からのアクセスに応じた処理を行う。このメモリカード1は、前述したようにNAND型フラッシュメモリ3及びコントローラ4を有している。
NAND型フラッシュメモリ3は、消去時のブロックサイズ(消去ブロックサイズ)が例えば256kByteに定められた不揮発性メモリである。このNAND型フラッシュメモリ3は、例えば0.09μmプロセス技術を用いて製作される。即ち、NAND型フラッシュメモリ3のデザインルールは、0.1μm未満となっている。
コントローラ4は、前述したCPU8及びROM9のほかに、メモリインターフェース部5、ホストインタフェース部6、バッファ7、及びRAM(Random Access Memory)10を搭載している。
メモリインターフェース部5は、コントローラ4とNAND型フラッシュメモリ3との間のインターフェース処理を行う。ホストインタフェース部6は、コントローラ4とホスト20との間のインターフェース処理を行う。
バッファ7は、ホスト20から送られてくるデータをNAND型フラッシュメモリ3へ書き込む際に、一定量のデータ(例えば1ページ分)を一時的に記憶したり、NAND型フラッシュメモリ3から読み出されるデータをホスト20へ送り出す際に、一定量のデータを一時的に記憶したりする。
CPU8は、メモリカード1全体の動作を司るものである。このCPU8は、例えばメモリカード1が電源供給を受けた際に、ROM9の中に格納されているファームウェア(制御プログラム)をRAM10上にロードして所定の処理を実行する。すなわち、CPU8は、各種のテーブルをRAM10上に作成したり、ホスト20から書き込みコマンド、読み出しコマンド、消去コマンドを受けてNAND型フラッシュメモリ3上の該当領域をアクセスしたり、バッファ7を通じてデータ転送処理を制御したりする。
ROM9は、CPU8により使用される制御プログラムなどを格納するメモリである。RAM10は、CPU8の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶する揮発性メモリである。
図4は、ホスト20が想定しているフラッシュメモリと、実際に使用するフラッシュメモリ(即ち、メモリカード1内のNAND型フラッシュメモリ3)との、データ配置の違いを示している。
ホスト20が想定しているフラッシュメモリにおいて、各ページは528Byte(512Byte分のデータ記憶部+16Byte分の冗長部)を有しており、32ページ分が1つの消去単位(即ち、16kByte+0.5kByte(ここで、kは1024))となる。以下では、このようなフラッシュメモリを搭載したカードを、「小ブロックカード」と称す場合がある。
一方、実際に使用するフラッシュメモリ3において、各ページは2112Byte(例えば512Byte分のデータ記憶部×4+10Byte分の冗長部×4+24Byte分の管理データ記憶部)を有しており、128ページ分が1つの消去単位(即ち、256kByte+8kByte)となる。以下では、このようなフラッシュメモリ3を搭載したカードを、「大ブロックカード」と称す場合がある。なお、以下の説明においては、便宜上、小ブロックカードの消去単位を16kByteと呼び、大ブロックカードの消去単位を256kByteと呼ぶ。
また、ホスト20が想定しているフラッシュメモリと、実際に使用するフラッシュメモリ3とは、それぞれフラッシュメモリに対してデータを入出力するためのページバッファを備えている。ホスト20が想定しているフラッシュメモリに備えられるページバッファの記憶容量は、528Byte(512Byte+16Byte)である。一方、実際に使用するフラッシュメモリ3に備えられるページバッファの記憶容量は、2112Byte(2048Byte+64Byte)である。データ書き込みなどの際において、各ページバッファは、フラッシュメモリに対するデータ入出力処理を、自身の記憶容量に相当する1ページ分の単位で実行する。
図4に示す例は、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト20が想定しているフラッシュメモリの消去ブロックサイズの16倍である場合を示している。しかし、本実施形態はこれに限定されるものではなく、略整数倍であれば別の倍率となるように構成することも可能である。
大ブロックカードを実用上有効な製品とするためには、図4に示したフラッシュメモリ3の記憶容量は1Gビット以上であることが望ましい。フラッシュメモリ3の記憶容量が例えば1Gビットである場合、256kByteブロック(消去単位)の数は、512個となる。
また、図4においては消去単位が256kByteブロックである場合を例示しているが、消去単位が例えば128kByteブロックとなるように構築することも実用上有効である。この場合、128kByteブロックの数は、1024個となる。
また、図4に示す例は、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト20が想定しているフラッシュメモリの消去ブロックサイズよりも大きい場合を示している。しかし、本実施形態はこれに限定されるものではなく、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト20が想定しているフラッシュメモリの消去ブロックサイズよりも小さいものとして構成することも可能である。
図5は、ホスト20側システム及びメモリカード1(大ブロックカード)の各コミュニケーション階層を示す図である。
ホスト20側のシステムは、アプリケーションソフト21、ファイルシステム22、ドライバソフト23、及び小ブロックカード物理アクセス層24を有する。一方、メモリカード1(大ブロックカード)は、小ブロックカード物理アクセス層11、小ブロックカード物理・小ブロックカード論理変換層12、小ブロックカード論理・大ブロックカード物理変換層13、及び大ブロックカード物理アクセス層14を有する。
例えばホスト20側のアプリケーションソフト21がファイルの書き込みをファイルシステム22に要求すると、ファイルシステム22は、小ブロックカードの論理ブロックアドレスに基づきシーケンシャルなセクタ書き込みをドライバソフト23に指示する。これを受けて、ドライバソフト23は、小ブロックカードの論理ブロックアドレスに基づく16kByteブロック毎のシーケンシャルな書き込みを実現する。この際、ドライバソフト23は、論理・物理ブロック変換を行い、小ブロックカード物理アクセス層24を通じて、小ブロックカードの物理ブロックアドレスによるランダムな書き込みコマンドを大ブロックカードに対して発行し、データ転送を行う。
なお、ライトアクセスにおいては、小ブロックカードの場合も大ブロックカードの場合も、プロトコル上、(1)コマンド、(2)ページアドレス(ロウアドレス)、(3)カラムアドレス、(4)データ、(5)プログラム確認コマンド、といった順序で情報の送受が行われることが前提となっている。また、ホストにおいて、論理・物理ブロック変換を行わず、論理アドレスでメモリカードにアクセスしてもよい。
大ブロックカード側における小ブロックカード物理アクセス層11は、ホスト20から小ブロックカードの物理ブロックアドレスによる書き込みコマンドを受けると、物理ブロックアドレスやデータのほか、これに付随する付随データに含まれている論理ブロックアドレスを取得する。
小ブロックカード物理・小ブロックカード論理変換層12は、データ読み出しなどの際に小ブロックカードの物理ブロックアドレス(16kByteブロック分に対応)から小ブロックカードの論理ブロックアドレス(16kByteブロック分に対応)への変換処理を行うための第1のテーブルを有している。変換層12は、小ブロックカード物理アクセス層11が書き込みコマンドを受けて小ブロックカードの論理ブロックアドレスを取得したとき、これを上記第1のテーブルに反映させる。物理ブロックアドレスに関しても、上記第1のテーブルに反映させる。
小ブロックカード論理・大ブロックカード物理変換層13は、データ読み出しなどの際に小ブロックカードの論理ブロックアドレス(シーケンシャルな16kByteブロック×16個分に対応)から大ブロックカードの物理ブロックアドレス(256kByte物理ブロック分に対応)への変換処理を行うための第2のテーブルを有している。変換層12は、小ブロックカード物理アクセス層11が書き込みコマンドを受けて小ブロックカードの論理ブロックアドレスを取得したとき、これを上記第2のテーブルに反映させる。
大ブロックカード物理アクセス層14は、小ブロックカード物理アクセス層11が書き込みコマンドを受けて取得した小ブロックカードの論理ブロックアドレスに基づき、フラッシュメモリ3内部のデータ配置を決定し、256kByte物理ブロック内において2kByte(1ページ)単位でシーケンシャルに16kByte分のデータを書き込む。また、大ブロックカード物理アクセス層14は、取得した小ブロックカードの論理ブロックアドレスや物理ブロックアドレスをフラッシュメモリ3内部における管理データ領域内の所定の領域に格納する。
このようにホスト20は、小ブロックカードの物理ブロックアドレスに基づくコマンドを発行するため、大ブロックカード側は、小ブロックカードの物理ブロックアドレスに対応するデータがどの256kByte物理ブロックの中に存在するかが分かるように管理する。具体的には、16kByteブロック毎に小ブロックカードの論理・物理ブロックアドレスの対応関係を管理すると共に、小ブロックカードの連続した256kByteブロック分の論理ブロックアドレスに対応するデータが、大ブロックカード内のどの256kByte物理ブロックに格納されているかが分かるように管理する。
図6は、ホスト20側から送られてくるコマンドのフォーマットを示す図である。ホスト20側から送られてくるコマンドのパケットは、図6(a)に示すように、コマンド種別情報(ここでは「書き込み」)、アドレス(物理ブロックアドレス)、データ(コンテンツなどの実データ及び付随データ(512Byte+16Byte))といった各種情報を含んでいる。
このようなフォーマットのパケットにおいては、図6(b)に示されるように、付随データ16Byte中の所定の位置に小ブロックカードの「論理ブロックアドレス」(アクセス対象となる16kByteブロックに対応する論理アドレス)が配置されている。大ブロックカードは、コマンド種別情報、物理ブロックアドレス、データを取得するほか、特に上記「論理ブロックアドレス」を取得する。なお、この「論理ブロックアドレス」は、読み出しコマンドの場合には付加されない。
図7は、ホスト20側が想定しているブロック書き込み操作と、メモリカード1(大ブロックカード)側が実際に行う書き込み処理とを、対比して示す図である。
ホスト20側(同図の左側)では、小ブロックカードの論理アドレスに基づく16kByteブロック単位のシーケンシャルな書き込み操作の発生時に、小ブロックカードの物理ブロックアドレスによる16kByteブロック単位のランダムな書き込み操作を行う。
一方、大ブロックカード側(同図の右側)では、ホスト20側から書き込みコマンドを受けた場合、小ブロックカードの論理ブロックアドレスに基づく16kByteブロック単位のデータをNAND型フラッシュメモリ3内にシーケンシャルに書き込む。
ホスト20は、小ブロックの物理アドレスによる16Byte単位のランダムな書き込み操作を行う。このようなランダムな書き込み操作では、一般に、大ブロック(256kByte)の一部のみを書き換えるための処理が多発する。NAND型フラッシュメモリ3はブロック単位でしか消去を行えない。このため、ブロックの一部のみを書き換える場合、先ず、書き換える新データが消去済みの新ブロックに書き込まれる。この後、新データに書き換えられる旧データを含む旧ブロックから、書き換えられない残りのデータが新ブロックにコピーされる。このような動作が実行されることにより、ブロックの一部が書き換えられる。
図1は、第1の実施形態に係るNAND型フラッシュメモリ3を概略的に示している。NAND型フラッシュメモリ3は、例えば複数のプレーンP0〜P3を有している。各プレーンは、例えばメモリセルアレイとしての記憶領域3−1と、外部とデータを授受するデータキャッシュ3−2、及びデータキャッシュからデータを受け、保持するページバッファ3−3を含んでいる。記憶領域3−1は、複数のブロック(大ブロック)を有し、各ブロックは図示せぬ複数のページを含んでいる。各プレーンP0〜P3に対する概略的な書き込み動作は、上述したように実行される。各プレーンP0〜P3に対する本実施形態特有の動作については後述する。
図8は、上記プレーンP0を用いたキャッシュ機能の一例を示している。図8(a)に示すように、例えばメモリカード1のコントローラ4が、データキャッシュ3−2にページ(M+R1)のデータを書き込んでいるとき、ページバッファ3−3に記憶されたデータがページMに書き込まれる。この後、図8(b)に示すように、NAND型フラッシュメモリ3は、データキャッシュ3−2に保持されたページ(M+R1)のデータをページバッファ3−3に移動する。次いで、図8(c)に示すように、NAND型フラッシュメモリ3は、コントローラ4からの読み出し要求に応じて、例えばページ(N+P2)のデータを記憶領域3−1からデータキャッシュ3−2に読み出す。その後、コントローラ4がデータキャッシュ3−2に保持されたページ(N+P2)のデータを読み出している間に、NAND型フラッシュメモリ3がページバッファ3−3に保持されたページ(M+R1)のデータを記憶領域3−1へ書き込む。このように、キャッシュ機能を使用することにより、NAND型フラッシュメモリの書き込み動作と、コントローラの書き込み動作又は読み出し動作を並行して行うことができる。
第1の実施形態は、上記キャッシュ機能を用いたコピー動作を継続的に実行可能とするため、プレーン内の空きブロックの数が次のように制御される。
図1に示すように、NAND型フラッシュメモリ3が、プレーンP0〜P3の4プレーンにより構成され、各プレーンが1024ブロックを有し、合計4096個のブロックが存在するとする。このうち、データ記憶領域として4000ブロックを必要とするメモリカードシステムにおいて、プレーンP0〜P3の初期の不良ブロックBBの数NBBが、それぞれ4,14,24,34ブロックであるとする。すると、プレーンP0〜P3のデータが書き込まれていない空きブロック領域SBに含まれる初期の空きブロックの数NSBは、次のように割り当てられる。
プレーンP0:1020ブロック、
プレーンP1:1010ブロック、
プレーンP2:1000ブロック、
プレーンP3: 990ブロック。
第1の実施形態は、各プレーンP0〜P3において、空きブロックの数NSBの下限値MINが、例えば均等になるように制御される。すなわち、各プレーンP0〜P3において、空きブロック数NSBの下限値MINが、例えば10ブロックとして管理される。
図9は、コントローラ4が管理する管理テーブル4−1の一例を示している。この管理テーブル4−1は、各プレーンP0〜P3に対応して空きブロックの数NSB0〜NSB3、及び不良ブロックBBの数NBB0〜NBB3を管理している。第1の実施形態の場合、初期状態において、各空きブロックの数NSB0〜NSB3の値は、それぞれ“1020”“1010”“1000”“990”であり、不良ブロックBBの数NBB0〜NBB3は、それぞれ“4”、“14”、“24”、“34”である。データの書き込みは、プレーンP0からP1、P2、P3の順に書き込まれる。新たにデータを書き込む場合、新ブロックが割り当てられる。先ず最初、コントローラ4はプレーンP0の新ブロックを割り当て、この新ブロックにデータを書き込む。さらに、管理テーブル4−1の空きブロック数NSB0から“1”を減算する。コントローラ4は、新ブロックを割り当てる毎に管理テーブル4−1の空きブロック数NSB0を減算する。また、未書き込み領域に不良ブロックが後発的に発生すると、そのブロックは使用できなくなる。このため、対応するプレーンの空きブロック数NSB0を減算する。
図10は、第1の実施形態に係る書き込み動作の一例を示している。図10を参照して書き込み動作について説明する。
先ず、書き込み済みのデータの書き換えかどうかが判別される(S11)。この結果、既に記憶領域3−1に書き込まれているデータを更新する場合、そのプレーン内の空きブロックが選択され(S12)、この選択されたブロックを用いてデータの書き換えと、スワップ処理が実行される(S13)。具体的には、更新する新データを消去済みの新ブロックに書き込み、更新される旧データを含む旧ブロックから、更新されない残りのデータが新ブロックにコピーされる。新ブロックは、旧ブロックと同一プレーン内のブロックから選択される。この場合、新ブロックとして1個のブロックが使用される。旧ブロックはスワップ動作の後、消去される。このため、記憶領域3−1の空きブロック数(書き込み済みのブロック数)は変化しない。
一方、前記ステップ(S11)において、既にブロックが割り当てられていない新しいデータを書き込むとき、すなわち、書き込み途中のブロックにデータを追記できないとき、新しいデータを格納するための新ブロックがデータ格納用に割り当てられる。
新ブロックの割り当ては、ステップ(S14−S17)に示すように実行される。
先ず、図9に示す管理テーブル4−1を参照して、書き込み対象プレーンに空きブロックがあるかどうかが判別される。この場合、先ず、プレーンP0に空きブロックがあるか判別される(S14)。すなわち、プレーンP0の空きブロック数NSBは下限値“10”に達しているかどうかが判別される。この結果、下限値に達していず、プレーンP0に空きブロックがある場合、プレーンP0に新ブロックが割り当てられる(S15)。また、プレーンP0に空きブロックがない場合、すなわち、空きブロック数NSBの下限値が“10”に達している場合、同様にして2番目のプレーンP1に空きブロックがあるか確認される(S16、S14)。プレーンP1に空きブロックがある場合、プレーンP1に新ブロックが割り当てられる(S15)。プレーンP1に空きブロックがない場合、3番目のプレーンP2、4番目のプレーンP3の順に空きブロックが検索され、検出された空きブロックが新ブロックとして割り当てられる。このようにして、割り当てられた新ブロックにデータが書き込まれる(S17)。また、新ブロックが割り当てられた場合、管理テーブル4−1の対応する空きブロック数が減算される。
上記第1の実施形態によれば、各プレーンにおいてデータを記憶するための空きブロック領域SBの下限値が設定され、各プレーンは、均等に10ブロックの空きブロックが確保されている。このため、各プレーンにおいて、空きブロックが無くなることを抑制できる。したがって、各プレーンにおいて、コピー先のブロックが無くなることを防止できるため、コピー機能を使用して、高速な書き込み動作を行うことができる。
しかも、各プレーンの後発的な不良ブロックの発生確率が等価である場合、均等に設定された10ブロックに後発的に不良ブロックが発生する確率も等価である。このため、コピー機能を長く使用することが可能となり、書き込み速度の低下を抑制できる。
尚、第1の実施形態において、プレーン毎の空きブロック数の下限値を均等に設定した。しかし、これに限定されるものではなく、プレーン毎の不良ブロックの発生確率が異なる場合、不良ブロックの発生確率に応じて空きブロック数の下限値を変えることも可能である。例えば不良ブロックの発生確率が高いプレーンに対して、不良ブロックの発生確率が低いプレーンより大きな下限値を設定し、多くの空きブロックを設定してもよい。このように空きブロックの数を設定すれば、コピー動作を長く維持することができ、書き込み速度の低下を防止できる。
(第2の実施形態)
第1の実施形態は、各プレーンの空きブロック数に下限値を設定し、各プレーンに均等に空きブロックを設定し、プレーンP0からP4に順次データを書き込む場合について説明した。
これに対して、第2の実施形態は、各プレーンの空きブロック数に下限値を設定せず、データの追記ではなく、新たなデータの書き込みにおいて、空きブロックの数が最も多いプレーンを選択して書き込みを行う。換言すれば、書き込み済みブロック数と初期の不良ブロックの数の合計が最も少ないプレーンを選択し、このプレーンからブロックを割り当てる。
図11は、第2の実施形態に係る書き込み動作の一例を示している。コントローラ4は、先ず、書き込み済みのデータの書き換えかどうかを判断する(S21)。この結果、書き込み済みデータの書き換えである場合、書き込み対象プレーンに空きブロックが有るかどうかを判別する(S22)。この結果、空きブロックがある場合、コピー先として書き換え元のデータと同一のプレーンを選択し(S23)、このプレーンにおいて、データの書き換えと、既に書き込まれたデータのスワップ処理を行なう(S24)。
一方、前記ステップS21において、新たなデータの書き込みであると判別された場合、及び前記ステップS22において、書き込み対象プレーンに空きブロックがないと判別された場合、空きブロック数が最も多いプレーンを選択する(S25)。すなわち、図9に示す管理テーブル4−1を参照して、空きブロック数NSBが最も多いプレーンを選択し(S25)、書き込み処理を行なう(S26)。例えば初期状態において、この条件を満たすプレーンはプレーンP0である。したがって、プレーンP0にデータが書き込まれる。また、仮に、プレーンP0に11ブロックのデータが書き込まれている場合、空きブロック数NSB0は、“1009”となり、プレーンP1の方が空きブロック数が多くなる。したがって、プレーンP1が選択され、このプレーンP1のブロックが新ブロックとして割り当てられ、データが書き込まれる。
上記第2の実施形態によれば、新規データを書き込む場合、空きブロック数の多いプレーンから優先的に選択されて書き込みが行われる。このため、各プレーンの空きブロック数を均等化でき、特定のプレーンから空きブロックが無くなることを防止できる。したがって、コピー機能の使用期間を延ばすことができ、高速な書き込み動作を維持することができる。
尚、上記第1、第2の実施形態は、メモリカードを例に説明した。しかし、本発明はメモリカードに限定されるものではなく、半導体記憶装置を用いた他のシステムに適用可能なことはいうまでもない。
その他、本発明の要旨を変えない範囲において、種々変形実施可能なことは勿論である。
本発明の実施形態に係り、各プレーンに設定された空きブロックの一例を示す図。 本実施形態が適用されるメモリカードの一例を示す斜視図。 ホストと図2に示すメモリカードとを含む構成を示すブロック図。 ホストが想定しているフラッシュメモリと、実際に使用するフラッシュメモリとの関係を示す図。 ホスト側システムとメモリカードの各コミュニケーション階層を示す図。 図6(a)(b)は、ホスト側から送られてくるコマンドのフォーマットを示す図。 ホスト側が想定しているブロック書き込み操作と、メモリカード側が実際に行う書き込み処理とを対比して示す図。 図8(a)(b)(c)は、キャッシュ機能の一例を示す図。 コントローラが管理する管理テーブルの一例を示す図。 第1の実施形態に係る書き込み動作の一例を示すフローチャート。 第2の実施形態に係る書き込み動作の一例を示すフローチャート。
符号の説明
1…メモリカード、3…NAND型フラッシュメモリ、3−1…記憶領域、3−2…データキャッシュ、3−3…ページバッファ、4…コントローラ、4−1…管理テーブル、8…CPU、20…ホスト、P0〜P3…プレーン、NSB…空きブロック領域、BB…不良ブロック。

Claims (5)

  1. 複数のページを含む複数のブロックを有し、データキャッシュとページバッファとをそれぞれ有する複数の記憶領域を具備し、
    制御部により、前記複数の記憶領域の空きブロック数の下限値を制御することを特徴とする半導体記憶装置の制御方法。
  2. 前記複数の記憶領域それぞれに設定される前記空きブロック数の下限値は、前記複数の記憶領域の不良ブロックの発生確率が等価である場合、等しい値に設定されることを特徴とする請求項1記載の半導体記憶装置の制御方法。
  3. 前記複数の記憶領域それぞれに設定される前記空きブロック数の下限値は、不良ブロックの発生確率が高い記憶領域に対して、不良ブロックの発生確率が低い記憶領域より大きく設定されることを特徴とする請求項1記載の半導体記憶装置の制御方法。
  4. 複数のページを含む複数のブロックを有し、データキャッシュとページバッファとをそれぞれ有する複数の記憶領域を具備し、
    前記制御部は、前記複数の記憶領域の1つに新規にデータを書き込むとき、空きブロック数が最も多い記憶領域を選択し、この選択された記憶領域のブロックにデータを書き込むことを特徴とする半導体記憶装置の制御方法。
  5. 前記制御部は、各記憶領域の空きブロック数と、初期の不良ブロック数を管理することを特徴とする請求項1又は4記載の半導体記憶装置の制御方法。
JP2006016135A 2006-01-25 2006-01-25 半導体記憶装置の制御方法 Pending JP2007199905A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006016135A JP2007199905A (ja) 2006-01-25 2006-01-25 半導体記憶装置の制御方法
US11/626,589 US7698497B2 (en) 2006-01-25 2007-01-24 Method of controlling card-shaped memory device
US12/717,718 US7917690B2 (en) 2006-01-25 2010-03-04 Method of controlling card-shaped memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006016135A JP2007199905A (ja) 2006-01-25 2006-01-25 半導体記憶装置の制御方法

Publications (1)

Publication Number Publication Date
JP2007199905A true JP2007199905A (ja) 2007-08-09

Family

ID=38286959

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006016135A Pending JP2007199905A (ja) 2006-01-25 2006-01-25 半導体記憶装置の制御方法

Country Status (2)

Country Link
US (2) US7698497B2 (ja)
JP (1) JP2007199905A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009064251A (ja) * 2007-09-06 2009-03-26 Hitachi Ltd 半導体記憶装置及び半導体記憶装置の制御方法
KR20110094289A (ko) * 2008-10-25 2011-08-23 쌘디스크 3디 엘엘씨 데이터를 메모리 디바이스로 재-입력하지 않고 페이지들을 재프로그램하기 위한 페이지 버퍼 프로그램 명령 및 방법
JP2011197788A (ja) * 2010-03-17 2011-10-06 Toshiba Corp メモリシステム
JP2012133416A (ja) * 2010-12-17 2012-07-12 Toshiba Corp メモリシステム
JP2012159993A (ja) * 2011-01-31 2012-08-23 Sony Corp メモリ装置およびメモリシステム
JP2012519899A (ja) * 2009-03-04 2012-08-30 マイクロン テクノロジー, インク. メモリブロックの選択
US8924636B2 (en) 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594679B2 (en) * 2008-05-01 2017-03-14 Sandisk Il Ltd. Flash cache flushing method and system
CN101446929A (zh) * 2008-12-01 2009-06-03 成都市华为赛门铁克科技有限公司 存储设备操作的方法、控制器及通信***
JP5221332B2 (ja) * 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
US8180994B2 (en) * 2009-07-08 2012-05-15 Sandisk Technologies Inc. Optimized page programming order for non-volatile memory
CN102455975B (zh) * 2010-10-15 2014-08-27 慧荣科技股份有限公司 用来进行数据整形的方法以及其记忆装置及控制器
CN102063380B (zh) * 2010-12-31 2012-11-21 北京握奇数据***有限公司 一种向非易失性存储器写入数据的方法及装置
KR102160598B1 (ko) * 2014-08-05 2020-09-28 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작방법
US10108503B2 (en) * 2015-08-24 2018-10-23 Western Digital Technologies, Inc. Methods and systems for updating a recovery sequence map
US11455254B2 (en) * 2020-12-10 2022-09-27 Macronix International Co., Ltd. Flash memory system and flash memory device thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06124175A (ja) * 1992-08-28 1994-05-06 Sharp Corp 半導体ディスク装置
JPH06259320A (ja) * 1993-03-04 1994-09-16 Hitachi Ltd 不揮発性メモリ装置
US5586285A (en) * 1993-02-19 1996-12-17 Intel Corporation Method and circuitry for increasing reserve memory in a solid state memory disk
JPH11191297A (ja) * 1997-12-26 1999-07-13 Hitachi Ltd 不揮発性メモリを用いた高速書換可能な記憶装置および該記憶装置のデータ書換方法
WO2004021191A1 (ja) * 2002-08-29 2004-03-11 Matsushita Electric Industrial Co., Ltd. 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
JP4220690B2 (ja) * 2001-07-05 2009-02-04 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
TWI237759B (en) * 2001-10-04 2005-08-11 Via Tech Inc Method for data accessing in a computer and the computer thereof
US6901498B2 (en) * 2002-12-09 2005-05-31 Sandisk Corporation Zone boundary adjustment for defects in non-volatile memories
JP3712071B2 (ja) * 2003-10-02 2005-11-02 ソニー株式会社 ファイル管理装置、ファイル管理方法、ファイル管理方法のプログラム及びファイル管理方法のプログラムを記録した記録媒体
JP4608434B2 (ja) * 2003-12-03 2011-01-12 パナソニック株式会社 情報記録媒体のデータ処理装置及びデータ記録方法
US7457910B2 (en) * 2005-06-29 2008-11-25 Sandisk Corproation Method and system for managing partitions in a storage device
US7353331B2 (en) * 2005-10-05 2008-04-01 Intel Corporation Hole-filling content addressable memory (HCAM)

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06124175A (ja) * 1992-08-28 1994-05-06 Sharp Corp 半導体ディスク装置
US5586285A (en) * 1993-02-19 1996-12-17 Intel Corporation Method and circuitry for increasing reserve memory in a solid state memory disk
JPH06259320A (ja) * 1993-03-04 1994-09-16 Hitachi Ltd 不揮発性メモリ装置
JPH11191297A (ja) * 1997-12-26 1999-07-13 Hitachi Ltd 不揮発性メモリを用いた高速書換可能な記憶装置および該記憶装置のデータ書換方法
WO2004021191A1 (ja) * 2002-08-29 2004-03-11 Matsushita Electric Industrial Co., Ltd. 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009064251A (ja) * 2007-09-06 2009-03-26 Hitachi Ltd 半導体記憶装置及び半導体記憶装置の制御方法
KR20110094289A (ko) * 2008-10-25 2011-08-23 쌘디스크 3디 엘엘씨 데이터를 메모리 디바이스로 재-입력하지 않고 페이지들을 재프로그램하기 위한 페이지 버퍼 프로그램 명령 및 방법
JP2012507070A (ja) * 2008-10-25 2012-03-22 サンディスク スリーディー,エルエルシー データをメモリ装置に再入力することなくページをプログラムするためのページバッファプログラムコマンド及び方法
KR101579555B1 (ko) 2008-10-25 2015-12-22 쌘디스크 3디 엘엘씨 데이터를 메모리 디바이스로 재-입력하지 않고 페이지들을 재프로그램하기 위한 페이지 버퍼 프로그램 명령 및 방법
JP2012519899A (ja) * 2009-03-04 2012-08-30 マイクロン テクノロジー, インク. メモリブロックの選択
US8751731B2 (en) 2009-03-04 2014-06-10 Micron Technology, Inc. Memory super block allocation
JP2011197788A (ja) * 2010-03-17 2011-10-06 Toshiba Corp メモリシステム
US8266396B2 (en) 2010-03-17 2012-09-11 Kabushiki Kaisha Toshiba Memory system comprising blocks operable in parallel
JP2012133416A (ja) * 2010-12-17 2012-07-12 Toshiba Corp メモリシステム
JP2012159993A (ja) * 2011-01-31 2012-08-23 Sony Corp メモリ装置およびメモリシステム
US8924636B2 (en) 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device

Also Published As

Publication number Publication date
US20100161891A1 (en) 2010-06-24
US7698497B2 (en) 2010-04-13
US20070174578A1 (en) 2007-07-26
US7917690B2 (en) 2011-03-29

Similar Documents

Publication Publication Date Title
JP2007199905A (ja) 半導体記憶装置の制御方法
TWI700586B (zh) 計算機系統及儲存裝置之控制方法
JP3892851B2 (ja) メモリカード及び半導体装置
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
EP2200045B1 (en) Method of updating contents of a multibit flash memory
JP5026213B2 (ja) ストレージ装置及びデータ重複排除方法
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
JP4828816B2 (ja) メモリカード、半導体装置、及びメモリカードの制御方法
JP2005301591A (ja) 不揮発性メモリを備えた装置及びメモリコントロ−ラ
WO2006067923A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
WO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP2005293205A (ja) 記憶制御装置、制御方法、および制御プログラム。
JP4666081B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4253272B2 (ja) メモリカード、半導体装置、及び半導体メモリの制御方法
JP2006195565A (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JP2006039772A (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
KR20130063244A (ko) 비휘발성 메모리 시스템
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP4751037B2 (ja) メモリカード
JP2007233838A (ja) メモリシステムの制御方法
JP2019212103A (ja) メモリシステム
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2007249662A (ja) メモリカード及びメモリカードの制御方法
JP2013109404A (ja) 情報処理装置
JP2010250534A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080728

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120529

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120710