JP4843222B2 - 半導体記憶装置の制御方法、メモリカード、及びホスト機器 - Google Patents

半導体記憶装置の制御方法、メモリカード、及びホスト機器 Download PDF

Info

Publication number
JP4843222B2
JP4843222B2 JP2005004240A JP2005004240A JP4843222B2 JP 4843222 B2 JP4843222 B2 JP 4843222B2 JP 2005004240 A JP2005004240 A JP 2005004240A JP 2005004240 A JP2005004240 A JP 2005004240A JP 4843222 B2 JP4843222 B2 JP 4843222B2
Authority
JP
Japan
Prior art keywords
data
logical block
written
block address
block
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
JP2005004240A
Other languages
English (en)
Other versions
JP2006195565A (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 JP2005004240A priority Critical patent/JP4843222B2/ja
Priority to US11/085,530 priority patent/US7657697B2/en
Publication of JP2006195565A publication Critical patent/JP2006195565A/ja
Application granted granted Critical
Publication of JP4843222B2 publication Critical patent/JP4843222B2/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5628Programming or writing circuits; Data input circuits

Description

本発明は、不揮発性半導体記憶装置を搭載したメモリカードに係り、特に、その制御方法に関する。
例えばEEPROMを用いたNAND型フラッシュメモリなどの不揮発性半導体記憶装置を用いたメモリカードは、デジタルカメラや携帯電話器等のホスト機器に使用されている。このメモリカードに記憶されたデータは、例えばメモリカードの引き抜きやホスト機器の落下、電源の遮断等の理由により、破壊されることがある。
上記電源遮断等によりデータが破壊されたセクタの修復を可能とし、データの破壊に伴うカードのメモリ空間の実記憶容量の減少を防止した技術が開発されている(例えば特許文献1参照)。
また、データ格納部に格納されているデータから巡回符号を生成し、この生成した巡回符号が対応するブロックに格納されている巡回符号と比較して当該ブロックの正常性を試験することにより、フラッシュメモリの書き込み済みのデータを誤って破壊することを防止した技術が開発されている(例えば特許文献2参照)。
ところで、近時、EEPROMを用いたNAND型フラッシュメモリにおいて、1つのメモリセルに複数のデータを記憶することが可能な多値NAND型フラッシュメモリが開発されている。多値NAND型フラッシュメモリは、1つのメモリセルを複数ページの同一カラムで共有する。例えば4値NAND型フラッシュメモリの場合、2つのページの同一カラムが一つのメモリセルを共有する。
このような多値NAND型フラッシュメモリにおいては、メモリセルを共有する一方のページに書き込みを行った際に、書き込みエラーが発生した場合や、書き込みが何らかの理由により途中で中断された場合、先に書き込まれたもう一方のページの内容が破壊される可能性がある。
すなわち、上記NAND型フラッシュメモリを有するメモリカードを例えばデジタルカメラに使用した場合において、デジタルカメラで写真を撮影した際、写真データがフラッシュメモリに正常に書き込まれたとする。その後、再度撮影を行った際、データの書き込み途中において、例えばメモリカードの引き抜きやカメラ本体の落下、電源の遮断等の理由により、フラッシュメモリへの書き込みを失敗することがある。この場合、書き込み途中のデータが正常に記録できないだけではなく、上記多値NAND型フラッシュメモリのページ管理の性質により、既に書き込んだページの写真データが破壊される可能性がある。
特開平11−306091号公報 特開平11−306800号公報
本発明は、上記課題を解決するものであり、新たなデータを書き込む際、既に書き込まれたデータの破壊を防止可能な半導体記憶装置の制御方法を提供しようとするものである。
本発明の半導体記憶装置の制御方法の第1の態様は、複数のブロックを含む大ブロックを有し、前記ブロックを消去単位としてデータを消去可能で、書き込み済みのデータが格納された小ブロックの論理ブロックアドレスの次の論理ブロックアドレスを期待値として順次データを書き込む半導体記憶装置の制御方法であって、書き込み済みのデータを保護する場合、前記書き込み済みのデータが格納された論理ブロックアドレスの次の論理ブロックアドレスをスキップして別の論理ブロックアドレスを期待値とし、データ書き込み時に、その書き込み対象の論理ブロックアドレスが前記期待値かどうかを判別し、前記書き込み対象の論理ブロックアドレスが前記期待値と異なる場合、前記書き込み済みのデータが格納されたブロックとは別のブロックに、書き込み対象のデータを格納することを特徴とする。
本発明の半導体記憶装置の制御方法の第2の態様は、論理ブロックアドレスの順序に従ってデータを順次論理ブロックに書き込む半導体記憶装置の制御方法であって、電源が投入されたとき、電源が遮断される直前に書き込まれた論理ブロックの論理ブロックアドレスを検出し、前記検出された第1の論理ブロックアドレスの次の第2の論理ブロックアドレスをスキップし、第3の論理ブロックアドレスを期待値として書き込み待ち状態とし、次の書き込みにおいて、前記第3の論理ブロックアドレスが指定された場合、前記第3の論理ブロックアドレスにデータが書き込まれ、次の書き込みにおいて、期待値としての前記第3の論理ブロックアドレスと異なる論理ブロックアドレスが指定された場合、複数の論理ブロックを含む別の空きブロックが検出され、その空きブロック内にデータが書き込まれることを特徴とする。
本発明の半導体記憶装置の制御方法の第3の態様は、論理ブロックアドレスの順序に従ってデータを順次論理ブロックに書き込む半導体記憶装置の制御方法であって、FAT(File Allocation Table)データの書き込みを検出し、前記FATデータの書き込みが検出されたとき、前記FATデータの書き込み直前に第1の記憶領域に書き込まれた論理ブロックの第1の論理ブロックアドレスの次の第2の論理ブロックアドレスをスキップし、第3の論理ブロックアドレスを期待値として書き込み待ち状態とし、次の書き込みにおいて、前記第3の論理ブロックアドレスが指定された場合、前記第3の論理ブロックアドレスにデータが書き込まれ、次の書き込みにおいて、期待値としての前記第3の論理ブロックアドレスと異なる論理ブロックアドレスが指定された場合、複数の論理ブロックを含む別の空きブロックが検出され、その空きブロック内にデータが書き込まれることを特徴とする。
本発明によれば、新たなデータを書き込む際、既に書き込まれたデータの破壊を防止可能な半導体記憶装置の制御方法を提供できる。
以下、本発明の実施の形態について、図面を参照して説明する。
先ず、図2乃至図10を参照して、本実施形態が適用される半導体記憶装置について説明する。
図2は、ホスト機器とメモリカードの構成を示している。メモリカード1は、NAND型フラッシュメモリ3及びコントローラ4を有している。コントローラ4は、CPU(Central Processing Unit)8やROM(Read-Only Memory)9などの機能ブロックを含んでいる。NAND型フラッシュメモリ3は、1つのメモリセルに複数のビット、例えば2ビットを記憶する多値メモリである。
ホスト機器20は、接続されるメモリカードをアクセスするためのハードウェア及びソフトウェア(システム)を備えている。このホスト機器20は、メモリカード内部の物理状態(何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、或いは、何処のブロックが消去状態であるか)を管理し、メモリカード内のフラッシュメモリを直接制御するものとして構築されている。
また、ホスト機器20は、消去時の消去ブロックサイズが16kByteに定められているNAND型フラッシュメモリを使用することを前提として、16kByte単位で論理・物理アドレスの割当を行い、多くの場合、論理アドレス16kByte分に関してシーケンシャルにライトアクセスもしくはリードアクセスを行う(該当するコマンドを発行する)。
メモリカード1は、ホスト機器20に接続されたとき、ホスト機器20から電源供給を受けて動作し、ホスト機器20からのアクセスに応じた処理を行う。
NAND型フラッシュメモリ3は、消去時の消去ブロックサイズ(消去単位のブロックサイズ)が256kByteに定められている不揮発性メモリであり、例えば16kByte単位でデータの書き込み・読み出しを行うようになっている。このNAND型フラッシュメモリ3は、例えば0.09μmプロセス技術を用いて製作される。即ち、NAND型フラッシュメモリ3のデザインルールは、0.1μm未満となっている。
コントローラ4は、前述したCPU8及びROM9の他に、メモリインタフェース(I/F)部5、ホストインタフェース(I/F)部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の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶する揮発性メモリである。
図3は、ホスト機器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ページ分の単位で実行する。
図3に示す例は、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト機器20が想定しているフラッシュメモリの消去ブロックサイズの16倍である場合を示している。しかし、これに限定されるものではなく、略整数倍であれば別の倍率となるように構成することも可能である。
大ブロックカードを実用上有効な製品とするためには、図3に示したフラッシュメモリ3の記憶容量は1Gビット以上であることが望ましい。フラッシュメモリ3の記憶容量が例えば1Gビットである場合、256kByteブロック(消去単位)の数は、512個となる。
また、図3は、消去単位が256kByteブロックである場合を例示しているが、消去単位が例えば128kByteブロックとなるように構築することも実用上有効である。この場合、128kByteブロックの数は、1024個となる。
また、図3に示す例は、実際に使用するフラッシュメモリ3の消去ブロックサイズが、ホスト機器20が想定しているフラッシュメモリの消去ブロックサイズよりも大きい場合を示している。しかし、これに限定されるものではなく、実際に使用するフラッシュメモリ3の消去ブロックサイズを、ホスト機器20が想定しているフラッシュメモリの消去ブロックサイズよりも小さく構成することも可能である。
図4は、ホスト機器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のテーブルを有している。
NAND型フラッシュメモリは、使用上多値であるか2値であるかを意識する必要は全くない。このため、変換層13は、メモリセルに対して持つ必要はなく、物理アドレスに対して持っている。すなわち、小ブロック論理アドレスを大ブロック論理アドレスに変換するテーブルを有している。
変換層12は、小ブロックカード物理アクセス層11が書込コマンドを受けて小ブロックカードの論理ブロックアドレスを取得したとき、これを上記第2のテーブルに反映させる。
大ブロックカード物理アクセス層14は、小ブロックカード物理アクセス層11が書込コマンドを受けて取得した小ブロックカードの論理ブロックアドレスに基づき、フラッシュメモリ3内部のデータ配置を決定し、256kByte物理ブロック内において2kByte(1ページ)単位でシーケンシャルに16kByte分のデータを書き込む。また、大ブロックカード物理アクセス層14は、取得した小ブロックカードの論理ブロックアドレスや物理ブロックアドレスをフラッシュメモリ3内部における管理データ領域内の所定の領域に格納する。
このようにホスト機器20は小ブロックカードの物理ブロックアドレスに基づくコマンドを発行するため、大ブロックカード側は、小ブロックカードの物理ブロックアドレスに対応するデータがどの256kByte物理ブロックの中に存在するのかが分かるように管理する。具体的には、16kByteブロック毎に小ブロックカードの論理・物理ブロックアドレスの対応関係を管理すると共に、小ブロックカードの連続した256kByteブロック分の論理ブロックアドレスに対応するデータが大ブロックカード内のどの256kByte物理ブロックに格納されているかが分かるように管理する。
図5は、ホスト機器20側から送られてくるコマンドのフォーマットを示す図である。
ホスト機器20側から送られてくるコマンドのパケットは、図5(a)に示すように、コマンド種別情報(ここでは「書込コマンド」),アドレス(物理ブロックアドレス),データ(コンテンツなどの実データ及び付随データ(512Byte+16Byte))といった各種情報を含んでいる。
このようなフォーマットのパケットにおいて、図5(b)に示すように、付随データ16Byte中の所定の位置に小ブロックカードの「論理ブロックアドレス」(アクセス対象となる16kByteブロックに対応する論理アドレス)が配置されている。大ブロックカードは、コマンド種別情報,物理ブロックアドレス,データを取得するほか、特に上記「論理ブロックアドレス」を取得する。なお、この「論理ブロックアドレス」は、読出コマンドの場合には付加されない。
図6は、ホスト機器20側が想定しているブロック書込操作と、メモリカード1(大ブロックカード)側が実際に行う書込処理とを、対比して示す図である。
ホスト機器20側(同図の左側)は、小ブロックカードの論理アドレスに基づく16kByteブロック単位のシーケンシャルな書込操作の発生時に、小ブロックカードの物理ブロックアドレスによる16kByteブロック単位のランダムな書込操作を行う。
一方、大ブロックカード側(同図の右側)では、ホスト機器20側から書込コマンドを受けた場合、小ブロックカードの論理ブロックアドレスに基づく16kByteブロック単位のデータをフラッシュメモリ3内にシーケンシャルに書き込む。
前述したように、ホスト機器20は、小ブロックの物理アドレスによる16kByte単位のランダムな書込操作を行う。このようなランダムな書込操作では、一般に、大ブロック(256kByte)の一部のみを書き換えるための処理が多発する。NAND型フラッシュメモリではブロック単位でしか消去を行えないため、ブロックの一部のみを書き換える場合、書き換える新データを消去済みの新ブロックに書き込み、新データに書き換えられる旧データを含む旧ブロックから、書き換えられない残りのデータを新ブロックにコピーする必要がある。このように、ブロックの一部のみを書き換える処理は、書き換えられないデータのコピー動作(以下、「巻き添えデータコピー」と称す)を伴うため、ブロックの一部のみを書き換える処理が多発すると、オーバーヘッドが非常に増大することになる。そこで、ホスト機器20側から得られる論理アドレスの順序に従って、大ブロックカード側で物理アドレスを再度割り当てることにより、ブロックの一部のみの書込の発生を低減し、オーバーヘッドの増大を抑制している。
図7は、大ブロックカード内のNAND型フラッシュメモリ3のブロックフォーマット(消去単位である256kByte物理ブロック分)の一例を示す図である。
大ブロックカードでは、消去単位である256kByte物理ブロックの中に、ホスト機器20側が管理する単位である16kByteに相当するデータを書き込むためのブロック(以下、ホスト管理ブロックと称す)が16個分含まれている。データ書込の際、小ブロックカードの論理ブロックアドレスの順に個々のデータが配置される。
各ホスト管理ブロックは、8個のページで構成される。各ページは、512Byteデータ領域を4個分含むとともに、各データ領域に対応する10ByteECC領域を含んでいる。また、ページ中の最後の512Byteデータ領域(4番目の512Byteデータ領域)の後には、24Byte管理データ領域も設けられる。このため、ページ中の最後の10ByteECC領域は、4番目の512Byteデータ領域と24Byte管理データ領域の両方に対応する構成となっている。
消去単位である256kByte物理ブロックに含まれる128個の24Byte管理データ領域のうち、例えば最後の24Byte管理データ領域には、ホスト機器20側から送られてくるコマンドから取得された物理ブロックアドレスに相当するアドレス情報、及び論理ブロックアドレスに相当するアドレス情報がまとめて格納されるようになっている。これらのアドレス情報は、図4に示す小ブロックカード物理・小ブロックカード論理変換層12が有する第1のテーブルと、小ブロックカード論理・大ブロックカード物理変換層13が有する第2のテーブルとを作成する際に使用される。
図8は、図7とは異なるブロックフォーマットの例を示す図である。
図8に示すブロックフォーマットは、図7に示すブロックフォーマットに比べると、各ページにおけるECC0,ECC1,ECC2の領域の配置が異なる。ただし、各ページにおけるユーザデータの記憶容量は、図7に示すブロックフォーマットと図8に示すブロックフォーマットとでは同じである。即ち、図7に示すブロックフォーマットは、各ページに2048Byte(512Byte+512Byte+512Byte+512Byte)の記憶領域が設けられており、図8に示すブロックフォーマットは、各ページに2048Byte(518Byte+518Byte+518Byte+494Byte)の記憶領域が設けられている。以下では、図8に示すブロックフォーマットを採用した場合を前提にして説明を行う。
図9は、メモリカード1に対してホスト機器20が書込を行う際の、当該メモリカード1のI/OピンとR/Bピンとの信号の例を示すタイミングチャートである。
ホスト機器20は、メモリカードは16kByteの消去ブロックサイズを有する不揮発性メモリであると仮定してメモリカードを制御している。例えば、メモリカードに対する書込の際、ホスト機器20は、シリアルデータインプットコマンド80H(Hは16進を示す)をI/Oピン1〜8へ入力する。次に、ホスト機器20は、カラムアドレスC/AおよびページアドレスP/Aを、I/Oピン1〜8へ入力する。なお、ここで、カラムアドレスC/AおよびページアドレスP/Aは、ホスト機器20がメモリカード1に対して想定している仮想物理アドレス空間におけるカラムアドレスおよびページアドレスである。
更に、ホスト機器20は、書込データを、I/Oピン1〜8の個々に対し、528回入力する。具体的には、ホスト機器20はライトイネーブルピンへの入力信号を528回クロッキングしながら、それぞれのI/Oピンに対し528ビット(すべてのI/Oピン合計で528バイト)のデータを順次シフトインする。データのシフトインが完了すると、ホスト機器20は、プログラムコマンド10HをI/Oピン1〜8へ入力する。これに応答してメモリカードは、そのR/Bピンにローレベルの信号を出力し、メモリカードがビジー状態であることを示す。その後、所定期間後にR/Bピンにハイレベルの信号を出力することでメモリカードがレディ状態になったことを示す。
しかしながら、図9におけるR/Bピンの状態は、あくまでもホスト機器20に対してメモリカード1がどのような状態かを示すものである。つまり、図9において、プログラムコマンド10Hの入力に応答して、R/Bピンがビジー状態(つまりローレベルを出力)を示したとしても、NAND型フラッシュメモリ3に対する書込動作(つまり、ページバッファからメモリセルアレイへのデータ転送)が実際に行われているとは限らない。また、R/Bピンがレディ状態に復帰したとしても、NAND型フラッシュメモリ3に対する書込動作が実際に完了しているとは限らない。
図10は、メモリカード1内のNAND型フラッシュメモリ3に対して、当該メモリカード1内のコントローラ4が書込を行う際の、NAND型フラッシュメモリ3のI/OピンとR/Bピンとの信号の例を示すタイミングチャートである。
コントローラ4は、NAND型フラッシュメモリ3は256kByteの消去ブロックサイズを有する不揮発性メモリであると認識している。例えば、NAND型フラッシュメモリ3に対する書込の際には、コントローラ4は、シリアルデータインプットコマンド80H(Hは16進を示す)をI/Oピン1〜8へ入力する。次に、コントローラ4は、カラムアドレスC/AおよびページアドレスP/Aを、I/Oピン1〜8へ入力する。なお、ここでカラムアドレスC/AおよびページアドレスP/Aは、コントローラ4がNAND型フラッシュメモリ3に対して想定している実物理アドレス空間におけるカラムアドレスおよびページアドレスである。したがって、図9におけるカラムアドレスC/AおよびページアドレスP/Aとは必ずしも一致していない。
更に、コントローラ4は、書込データを、I/Oピン1〜8の個々に対し、2112回入力する。具体的には、コントローラ4は、ライトイネーブルピンへの入力信号を2112回クロッキングしながら、それぞれのI/Oピンに対し2112ビット(すべてのI/Oピン合計で2112バイト)のデータを順次シフトインする。データのシフトインが完了すると、コントローラ4は、プログラムコマンド10HをI/Oピン1〜8へ入力する。これに応答してメモリカードは、そのR/Bピンにローレベルの信号を出力し、メモリカードがビジー状態であることを示す。その後、所定期間後にR/Bピンにハイレベルの信号を出力することでメモリカードがレディ状態になったことを示す。図10におけるR/Bピンの状態は、コントローラ4に対してNAND型フラッシュメモリ3が実際にどのような状態かを示すものである。
なお、上記図9および図10において、カラムアドレスC/AおよびページアドレスP/Aの入力をそれぞれ1つのサイクルで示しているが、メモリカード1の容量またはNAND型フラッシュメモリ3の容量に応じて、適宜2サイクル以上になる場合もある。
上記図9および図10から分かるように、メモリカードがビジー状態でいられる時間には制約があるため、その間にデータ書込を行い、所定期間後には当該メモリカードがレディ状態になったことをホスト側に示さなければならない。
また、本実施形態に適用される多値NAND型フラッシュメモリ3は、4値のデータを記憶し、1つのメモリセルを2ページの同一カラムが共有する。しかし、ユーザは、大ブロックカードのページを意識することなく書き込みを行なうことが可能である。
図11(a)は、コントローラ4側からみた1ブロックのメモリ空間を示し、図11(b)は、NAND型フラッシュメモリ4における1ブロックのメモリ空間を示している。
図11(a)に示すように、ユーザ側からみた1ブロックのメモリ空間は、例えば128ページ×(2048+64Byte)であり、各ページの各カラムに記憶されるデータは、そのページのデータのみにより構成されている。すなわち、例えばページ0のカラム0、ページ0のカラム1…ページ0のカラム2111に、それぞれページ0のデータが記憶される。
一方、図11(b)に示すように、NAND型フラッシュメモリ4における1ブロックのメモリ空間は、64ページ×(2048+64Byte)であり、1ページに2ページ分のデータが記憶される。すなわち、例えばページ0とページ4のデータが1つのページに記憶される。つまり、ページ0のカラム0とページ4のカラム0、ページ0のカラム1とページ4のカラム1…ページ0のカラム2111とページ4のカラム2111が1つのページに記憶される。つまり、1つのカラムに2ビット、“00”、“01”、“10”、“11”のデータが記憶される。
上記のように、メモリセルにデータを書き込む理由は次の通りである。メモリセルの微細化が進むと、ワード線が隣接するメモリセル間の容量カップリングが顕著となる。この場合、隣接するメモリセルの一方にプログラムを行うと、他方のメモリセルも閾値がシフトする可能性がある。この容量カップリングによる閾値変動(ヨーピン効果)を避けるため、図11(b)では、アッパーページにデータを書き込む前に、隣接するメモリセルのロアーページにデータを書き込んでいる。つまり、ページ0のデータが書き込まれたメモリセルのアッパーページにデータを書き込む前に、隣接するメモリセルのロアーページにページ2のデータを書き込み、その後にメモリセルのアッパーページにページ4のデータを書き込んでいる。このように、隣接するメモリセルのロアーページにデータを書き込んでからアッパーページにデータを書き込むことにより、ヨーピン効果を抑制することができる。しかし、このページの割り当て方では、アッパーページのデータ書き込みに失敗すると、4ページ前に書き込まれたロアーページのデータが失われ、従来のページの割り当て方よりも過去のデータが失われてしまう。そこで、この実施形態では次のような制御を行なっている。
(実施形態の動作)
次に、図1、図12を参照して、本実施形態の動作について説明する。
上記のように、本実施形態に適用される多値NAND型フラッシュメモリ3は、4値のデータを記憶し、1つのメモリセルを2つのページの同一カラムが共有する。このため、ページ0のデータが書き込まれたページにページ4を書き込む際、ページ0のデータを破壊する恐れがある。この場合、既に書き込まれているページ0のデータが書き込まれているページにはデータを書き込まないようにスキップする。
スキップの条件は、次のように設定する。例えばデジタルカメラにおいて、電源を投入した後、短時間のうちに何枚か撮影した時点において、何らかの理由により書き込みに失敗した場合、直ぐに撮影し直せば、同様の写真を残すことができるため、書き込み失敗の影響は少ない。これに対して、例えば電源を投入し、撮影を開始した直後に書き込みを失敗した場合、電源投入前に撮った写真データを破壊してしまう恐れがある。このような場合、再度、同様の写真を撮影することは難しい場合が多い。このような状況を回避するため、電源投入直後のデータ書き込みにおいて、電源遮断前にデータを書き込んだページと同一のメモリセルを共有するページをスキップし、電源遮断前に書き込んだデータを保護する。
また、FAT(File Allocation Table)の書き込み後、ユーザ領域の論理ブロックアドレスにデータを書き込む際、既に書き込んだページのデータを保護する必要がある。このため、FATを書き込んだ直後のデータの書き込みにおいて、FAT書き込み前にデータを書き込んだページと同一のメモリセルを共有するページをスキップし、FATが書き込まれる直前までのデータを保護する。
図1、図12は、メモリカード1の動作を示している。図1、図12を参照して、動作について説明する。
図12(a)に示すように、大ブロックBLK(31)は、例えば16個の小ブロック(32)を有している。小ブロックには論理ブロックアドレスLBA0〜LBA15が付されている。ここで、大ブロックBLK(31)は大ブロックカードの物理ブロックに該当し、小ブロック(32)はホスト管理ブロックに該当する。1つの小ブロックは、2112Byte×8ページに設定されている。したがって、小ブロックは8ページ単位で管理されている。また、大ブロックは2112Byte×128ページに設定されている。このため、大ブロックは128ページ単位で管理されている。
上述したように、ホスト機器20は、多くの場合、論理アドレス16kByte分に関してシーケンシャルにライトアクセスもしくはリードアクセスを行う。また、大ブロックカードは、論理ブロックアドレスの順序に従って、小ブロック(32)単位のデータをフラッシュメモリ3内にシーケンシャルに書き込む。このため、メモリカードは、一般にアサインされた大ブロック内の小ブロックが順次選択され、データが書き込まれる。すなわち、先ず例えば論理ブロックアドレスLBA0にデータが書き込まれた場合、次に書き込まれる論理ブロックアドレスLBA1を期待値として書き込み待ちとなる。
この状態において、図12(b)に示すように、論理ブロックアドレスLBA1にデータが書き込まれた場合、次に書き込まれる論理ブロックアドレスLBA2を期待値として書き込み待ちとなる。
一方、前述したように、電源投入時に、図12(c)に示すように、論理ブロックアドレスLBA1にデータが書き込まれている場合、あるいは、図12(a)(b)に示すように、論理ブロックアドレスに順次データを書き込み、図12(c)に示すように、論理ブロックアドレスLBA2を期待値として書き込み待ちとなっている状態において、別の大ブロックの書き込み、例えばFATの書き込みとなった場合、論理ブロックアドレスLBA1のデータを破壊しないため、期待値をLBA2から1つスキップし、例えばLBA3に変更して書き込み待ちとする。
図1、図12を参照して具体的な動作について説明する。
先ず、電源が投入されると(S11)、前回の電源遮断時の新アサインブロック(データの書き換えの際に、新しく論理ブロックアドレスが割り当てられた大ブロック)と旧アサインブロック(書き換えられるデータが格納された大ブロック)、及び新アサインブロックに最後に書かれた論理ブロックアドレスLBA(n)が読み出される(S12)。この後、論理ブロックアドレスLBA(n)に“2”が加算される。すなわち、n=n+2の演算が行なわれる(S13)。これにより期待値が1つスキップされたこととなる。すなわち、例えば前回の書き込み終了時の状態が、図12(c)に示すようである場合、期待値はLBA3となり、期待値を1つスキップした状態で書き込み待ちとなる(S14)。この状態において、次の書き込みにおいて指定された論理ブロックアドレスがLBA3であるかどうかが判別される。
この判別の結果、次の書き込みにおいて指定された論理ブロックアドレスがLBA3である場合、制御がステップ(S15)に移行され、論理ブロックアドレスLBA3の書き込みとなる。このため、図12(d)に示すように、論理ブロックアドレスLBA3にデータが書き込まれる。この後、大ブロック(新アサインブロック)が満杯かどうか判別される(S16)。この結果、大ブロックの全論理ブロックアドレスにデータが書き込まれていない場合、電源が遮断されたかどうかが判別される(S17)。この結果、電源が遮断されていない場合、FATへの書き込みが行なわれたかどうかが判別される(S18)。FATへの書き込みが行なわれていない場合、期待値の論理ブロックアドレスLBAがインクリメントされる(S19)。すなわち、n=n+1の演算が行なわれ、この場合、論理ブロックアドレスLBA4を期待値として書き込みの待ち状態となる(S14)。この後、論理ブロックアドレスLBA4の書き込みが行なわれる場合は、上記と同様の動作が繰り返される。
一方、前記電源投入直後、あるいはFATへの書き込みが行なわれた場合において、ステップ(S14)において、期待値と異なる論理ブロックアドレスが検出された場合、制御がステップ(S21)に移行する。
例えば図12(c)に示す状態において、論理ブロックアドレスLBA3を期待値として書き込み待ちである場合において、論理ブロックアドレスLBA2の書き込みを行なう場合、先ず、空いている大ブロックが検出される(S21)。この結果、検出された大ブロック33に論理ブロックアドレスLBA2のデータが書き込まれる(S22)。この論理ブロックアドレスLBA2に対する書き込みの空き時間に旧アサインブロック34から新アサインブロック35へ必要なデータがコピーされる(S22)。この後、旧アサインブロック34のデータが消去される(S23)。この後、新アサインブロック35が旧アサインブロックとされ、新たに検出されたブロック33が新アサインブロックとされる(S24)。この後、制御がステップS16に移行される。
また、前記ステップS16において、新アサインブロックに空き領域が無くなった場合、ステップS25に移行され、旧アサインブロックが消去され、制御がステップS17に移行される。
さらに、前記ステップS17において、電源が遮断された場合、処理が終了される。
また、前記ステップS18において、FATの書き込みが検出された場合、制御がS13に移行され、FATの書き込み直前の論理ブロックアドレスに“2”が加算され、論理ブロックアドレスを1つスキップして待ち状態とされる。
上記実施形態によれば、電源が投入された直後や、FATにデータが書き込まれた場合、電源が遮断された直前の論理ブロックアドレス、あるいはFATにデータを書き込んだ直前の論理ブロックアドレスに連続するアドレスにデータを書き込まずにスキップし、別の論理ブロックアドレスを期待値として続く書き込みを待っている。このため、続く書き込みが期待値通りであれば、多値NAND型フラッシュメモリにおいて、先に書き込んだページのデータの破壊を防止できる。
また、続く書き込みが期待値と異なる論理ブロックアドレスに対する場合ものである場合、別の大ブロックを検出し、検出した大ブロックに書き込みを行なっている。このため、期待値と異なる論理ブロックアドレスの場合においても、多値NAND型フラッシュメモリにおいて、先に書き込んだページのデータの破壊を防止できる。
尚、図1に示す制御動作は、メモリカード1のコントローラ8により制御したが、これに限定されるものではなく、ホスト機器20のコントローラにより制御することも可能である。
また、上記実施形態において、多値NAND型フラッシュメモリは、1つのメモリセルに2ページのデータを記憶する場合について説明した。しかし、これに限らず、1つのメモリセルに3ページ以上のデータを記憶する場合においても、上記実施形態を適用することが可能である。
また、上記実施形態において、不揮発性半導体記憶装置としてNAND型フラッシュメモリを例に挙げて説明した。しかし、これに限らず、1つのメモリセルに4値以上のデータを記憶する不揮発性半導体記憶装置であれば、他の不揮発性半導体記憶装置についても上記実施形態を適用することができる。
また、上記実施形態において、ホスト機器20が想定しているフラッシュメモリの消去単位と、実際に使用するフラッシュメモリの消去単位とが異なる場合について説明した。しかし、これに限らず、ホスト機器20が想定しているフラッシュメモリの消去単位と、実際に使用するフラッシュメモリの消去単位とが等しい場合においても、上記実施形態を適用することができる。
また、上記実施形態において、小ブロックの論理ブロックアドレスを期待値とし、小ブロック単位でスキップする場合について説明した。しかし、これに限らない。スキップする単位は、既にデータが書き込まれたページと同一のメモリセルを共有するページにデータが書き込まれないものであれば良い。例えば、図11(b)では、ページ2とページ8とが同一のメモリセルを共有している。このようなページの割り当て方において、ページ2までデータが書き込まれた場合は、6ページ分のアドレスをスキップすることにより、ページ2と同一のメモリセルを共有するページ8にデータが書き込まれることを防止することができる。
また、本実施形態をSDTM(Secure Digital)カードや、CFTM(Compact Flash)カードに適用することも可能である。
本実施形態の動作を示すフローチャート。 ホスト機器とメモリカードの構成を示すブロック図。 ホスト機器が想定しているフラッシュメモリと、実際に使用するフラッシュメモリとのデータ配置の違いを示す図。 ホスト機器側システム及びメモリカード(大ブロックカード)の各コミュニケーション階層を示す図。 ホスト機器側から送られてくるコマンドのフォーマットを示す図。 ホスト機器側が想定しているブロック書き込み操作とメモリカード(大ブロックカード)側が実際に行なう書き込み処理とを対比して示す図。 大ブロックカード内のフラッシュメモリのブロックフォーマット(消去単位である256kByte物理ブロック分)の一例を示す図。 図7とは異なるブロックフォーマットの例を示す図。 本実施形態のメモリカードに対してホストが書き込みを行なう際の当該メモリカードのI/OピンとR/Bピンとの信号の例を示すタイミングチャート。 本実施形態のメモリカード内の不揮発性メモリに対して、当該メモリカード内のコントローラが書き込みを行なう際の、メモリカード内の不揮発性メモリI/OピンとR/Bピンとの信号の例を示すタイミングチャート。 図11(a)は、コントローラ側から見た1ブロックのメモリ空間を示し、図11(b)は、1ブロックの実メモリ空間を示す図。 本実施形態の動作を示すブロック図。
符号の説明
1…メモリカード、3…NAND型フラッシュメモリ、8…CPU、20…ホスト機器、31…大ブロック、32…小ブロック、LBA0〜LBA15…論理ブロックアドレス。

Claims (5)

  1. 複数のブロックを含む大ブロックを有し、前記ブロックを消去単位としてデータを消去可能で、書き込み済みのデータが格納された小ブロックの論理ブロックアドレスの次の論理ブロックアドレスを期待値として順次データを書き込む半導体記憶装置の制御方法であって、
    書き込み済みのデータを保護する場合、前記書き込み済みのデータが格納された論理ブロックアドレスの次の論理ブロックアドレスをスキップして別の論理ブロックアドレスを期待値とし、
    データ書き込み時に、その書き込み対象の論理ブロックアドレスが前記期待値かどうかを判別し、
    前記書き込み対象の論理ブロックアドレスが前記期待値と異なる場合、前記書き込み済みのデータが格納されたブロックとは別のブロックに、書き込み対象のデータを格納する
    ことを特徴とする半導体記憶装置の制御方法。
  2. 論理ブロックアドレスの順序に従ってデータを順次論理ブロックに書き込む半導体記憶装置の制御方法であって、
    電源が投入されたとき、電源が遮断される直前に書き込まれた論理ブロックの論理ブロックアドレスを検出し、
    前記検出された第1の論理ブロックアドレスの次の第2の論理ブロックアドレスをスキップし、第3の論理ブロックアドレスを期待値として書き込み待ち状態とし、次の書き込みにおいて、前記第3の論理ブロックアドレスが指定された場合、前記第3の論理ブロックアドレスにデータが書き込まれ、次の書き込みにおいて、期待値としての前記第3の論理ブロックアドレスと異なる論理ブロックアドレスが指定された場合、複数の論理ブロックを含む別の空きブロックが検出され、その空きブロック内にデータが書き込まれることを特徴とする半導体記憶装置の制御方法。
  3. 論理ブロックアドレスの順序に従ってデータを順次論理ブロックに書き込む半導体記憶装置の制御方法であって、
    FAT(File Allocation Table)データの書き込みを検出し、
    前記FATデータの書き込みが検出されたとき、前記FATデータの書き込み直前に第1の記憶領域に書き込まれた論理ブロックの第1の論理ブロックアドレスの次の第2の論理ブロックアドレスをスキップし、第3の論理ブロックアドレスを期待値として書き込み待ち状態とし、次の書き込みにおいて、前記第3の論理ブロックアドレスが指定された場合、前記第3の論理ブロックアドレスにデータが書き込まれ、次の書き込みにおいて、期待値としての前記第3の論理ブロックアドレスと異なる論理ブロックアドレスが指定された場合、複数の論理ブロックを含む別の空きブロックが検出され、その空きブロック内にデータが書き込まれることを特徴とする半導体記憶装置の制御方法。
  4. 請求項1,2,3のいずれかに記載の制御方法を実行する制御部を有することを特徴とするメモリカード。
  5. 請求項1,2,3のいずれかに記載の制御方法を実行する制御部を有することを特徴とするホスト機器。
JP2005004240A 2005-01-11 2005-01-11 半導体記憶装置の制御方法、メモリカード、及びホスト機器 Expired - Fee Related JP4843222B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005004240A JP4843222B2 (ja) 2005-01-11 2005-01-11 半導体記憶装置の制御方法、メモリカード、及びホスト機器
US11/085,530 US7657697B2 (en) 2005-01-11 2005-03-22 Method of controlling a semiconductor memory device applied to a memory card

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005004240A JP4843222B2 (ja) 2005-01-11 2005-01-11 半導体記憶装置の制御方法、メモリカード、及びホスト機器

Publications (2)

Publication Number Publication Date
JP2006195565A JP2006195565A (ja) 2006-07-27
JP4843222B2 true JP4843222B2 (ja) 2011-12-21

Family

ID=36654602

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005004240A Expired - Fee Related JP4843222B2 (ja) 2005-01-11 2005-01-11 半導体記憶装置の制御方法、メモリカード、及びホスト機器

Country Status (2)

Country Link
US (1) US7657697B2 (ja)
JP (1) JP4843222B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4842563B2 (ja) * 2005-05-16 2011-12-21 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
WO2007000862A1 (ja) * 2005-06-24 2007-01-04 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
FI20060427L (fi) * 2006-05-03 2007-11-04 Tellabs Oy Menetelmä ja laitteisto peräkkäistiedoston käsittelemiseksi
WO2008016170A1 (en) 2006-07-31 2008-02-07 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
US9612954B2 (en) 2008-12-31 2017-04-04 Micron Technology, Inc. Recovery for non-volatile memory after power loss
JP2011048725A (ja) 2009-08-28 2011-03-10 Panasonic Corp 不揮発性記憶装置および不揮発性メモリコントローラ
TWI407327B (zh) * 2009-11-24 2013-09-01 Phison Electronics Corp 資料處理方法、系統及儲存裝置控制器
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
US20160216910A1 (en) * 2013-09-27 2016-07-28 Virtium Llc Solving MLC NAND paired page program using reduced spatial redundancy

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818771A (en) * 1996-09-30 1998-10-06 Hitachi, Ltd. Semiconductor memory device
US6034897A (en) * 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
JP3741535B2 (ja) 1998-04-16 2006-02-01 株式会社ルネサステクノロジ 不揮発性記憶装置
JP3314719B2 (ja) 1998-04-17 2002-08-12 日本電気株式会社 フラッシュeepromとその試験方法
JP2000173281A (ja) * 1998-12-04 2000-06-23 Sony Corp 半導体記憶装置
US6694453B1 (en) * 2000-11-14 2004-02-17 Hewlett-Packard Development Company, L.P. Apparatus and method to handle power supply failures for a peripheral device
US7107480B1 (en) * 2000-12-22 2006-09-12 Simpletech, Inc. System and method for preventing data corruption in solid-state memory devices after a power failure
TW539950B (en) * 2000-12-28 2003-07-01 Sony Corp Data recording device and data write method for flash memory
US7542091B2 (en) * 2001-12-11 2009-06-02 Hewlett-Packard Development Company, L.P. Device power management method and apparatus
JP4058322B2 (ja) * 2002-10-07 2008-03-05 株式会社ルネサステクノロジ メモリカード
US7171536B2 (en) * 2002-10-28 2007-01-30 Sandisk Corporation Unusable block management within a non-volatile memory system
US7003620B2 (en) * 2002-11-26 2006-02-21 M-Systems Flash Disk Pioneers Ltd. Appliance, including a flash memory, that is robust under power failure
JP4158526B2 (ja) * 2003-01-09 2008-10-01 松下電器産業株式会社 メモリカード及びメモリへのデータ書き込み方法
JP4256175B2 (ja) * 2003-02-04 2009-04-22 株式会社東芝 不揮発性半導体メモリ
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
JP2004318940A (ja) * 2003-04-14 2004-11-11 Renesas Technology Corp 記憶装置
US20050204115A1 (en) * 2004-01-30 2005-09-15 Kiminori Matsuno Semiconductor memory device, memory controller and data recording method

Also Published As

Publication number Publication date
JP2006195565A (ja) 2006-07-27
US7657697B2 (en) 2010-02-02
US20060155918A1 (en) 2006-07-13

Similar Documents

Publication Publication Date Title
JP3892851B2 (ja) メモリカード及び半導体装置
JP4406339B2 (ja) コントローラ、メモリカード及びその制御方法
JP4843222B2 (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JP4828816B2 (ja) メモリカード、半導体装置、及びメモリカードの制御方法
JP4713867B2 (ja) メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
JPWO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
KR20100094241A (ko) 예비 블록을 포함하지 않는 불휘발성 메모리 장치
JPWO2005083573A1 (ja) 半導体メモリ装置
JP4253272B2 (ja) メモリカード、半導体装置、及び半導体メモリの制御方法
JP4460967B2 (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
JP5592478B2 (ja) 不揮発性記憶装置及びメモリコントローラ
JP4177360B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007011872A (ja) メモリカードとその制御方法
JP4751037B2 (ja) メモリカード
JP2007094639A (ja) メモリコントローラ及びフラッシュメモリシステム
JP4661369B2 (ja) メモリコントローラ
JP2006221743A (ja) 記憶システムと半導体記憶装置の書き込み方法
JP2007233838A (ja) メモリシステムの制御方法
JP2005115562A (ja) フラッシュrom制御装置
JP2008009614A (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP2006178909A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4498341B2 (ja) メモリシステム
TWI649652B (zh) Fast and safe data storage device and method
JP2008077468A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2006331233A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110420

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

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

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

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

Free format text: PAYMENT UNTIL: 20141014

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees